Groups of storage devices are used to store all kinds of values in a computer. Of course, every computer has a main memory, but there are other groupings of storage as well, even in the ALU. These groupings are often made of flip-flops and are called registers.
Registers usually store a binary number, hence the ordering of the flip-flops is important. We humans tend to think of binary numbers being stored in the same way we commonly write them on paper, namely left to right. Decimal numbers are stored in the same way. For example:
90356
represents ninety-thousand, three hundred fifty-six. This is a lot larger than 65309, which is what we get if we read from left to right.
The rightmost digit is called the least significant digit while the leftmost digit is the most significant digit. This terminology comes about because changing the value of the least significant digit changes the number the least, whereas changing the value of the most significant digit changes the value the most. For instance, changing the 6 to 7 in 90356 gets us a value that is only 1 greater than 90356, whereas changing 9 to 8 causes a decrease of 10,000.
Binary numbers are also written from left to right, so they have a least significant bit and a most significant bit. These are often abbreviated as LSB and MSB, respectively. The flip-flop that stores the LSB is called the least significant flip-flop. There is also a most significant flip-flop that stores the MSB.
In Fig. 5.5.1, a four-bit register is implemented using clocked D-latches. Notice that there are four separate inputs and four separate outputs, one for each bit. But there is only one clock input because all inputs are stored into the latches at the same time, when the CK wire is strobed.
Fig 5.5.2 is a schematic, block diagram of the same four bit register. The individual latches are no longer important and some details are left out.
The number of flip-flops in a register usually reflects the size of the adder or the size of the bus or the size of a main memory cell. Many computers have 32-bit registers, although there are special purpose registers that may be wider or narrower.
A group of registers is called the general purpose registers, which are used by assembly programmers to store intermediate values. It was common until recently to have 16 of these, each 32-bits wide. Since they exist in the main CPU, they are comprised of gates and are very fast. Modern RISC chips may have hundreds of registers, and some older computers have only a few. As of 2010, 64-bit registers are now the norm.
The general purpose registers each have a numerical address, from 0 to 15, if there are 16 of them. Assembly programs refer to them usually as R0, R1, R2, ... R15, although all sorts of other notations are common.