One of the ways we store data in electronic systems such as microcontrollers (MCUs) is in registers. Some registers consist of one bit/bit, while other registers consist of multiple bits. The term "register file" refers to a set of registers that share common functions and purposes.
The characteristics of registers are similar to semiconductor memory, for example, each element/unit can store a binary number or bit (represented in the form of 0 or 1). However, memory is often used to store a relatively large amount of information (instructions and data), while registers are more specialized, used to remember configuration and control information, save input/output values, and temporarily store the results of logic or arithmetic operations Wait for the task.
Another difference is that memory cells are often relatively simple, requiring as few transistors as possible to complete the work. This is because there are too many of them, so they should be kept small, fast and simple in terms of power consumption. In contrast, the number of registers is much smaller, so there are fewer constraints in terms of size and power consumption, and they usually have more advanced special controls and functions related to the hardware.
The core of each register unit is a bistable circuit, based on which information can be stored in the form of 0 or 1. This circuit may have one or more control inputs, may have one data input, and one or two outputs. If there is a second complementary QB output, it will assume the opposite or complementary logic value to the main output Q.
As far as control signals are concerned, this circuit can be level triggered (asynchronous, transparent or opaque) or edge triggered (synchronous or clock). An example of the former is a set reset latch (SR latch), and an example of the latter is a data type flip-flop (D-type flip-flop).
The term flip-flop is often used in the context of this circuit because this circuit triggers a flip back and forth between two states. Historically, the term "trigger" usually includes two types: level trigger and edge trigger. But recently, the term "latch" is commonly used to refer to the level-triggered version, while the term "trigger" is used to refer to the edge-triggered version.
Multivibrator is an electronic circuit used to realize various simple two-state functions. There are three types of multivibrators:
• The astable multivibrator is unstable in both states, and will constantly switch from one state to the other (no external trigger is needed), so it acts as a relaxation oscillator.
• The monostable multivibrator is stable in only one state. Under the excitation of the trigger pulse, it will enter an unstable state, and remain in this state for a set period of time, and then return to a stable state. The monostable multivibrator is also called "single trigger" and can be used to generate pulses of a fixed duration as a response to certain external trigger events.
• The bistable multivibrator is stable in any state, and it can be switched from one state to another by applying an external trigger pulse.
The reason why the multivibrator is mentioned here is because the bistable multivibrator can be used to store one bit of information, which is the so-called flip-flop.