A register is a device for storing data.
Historically, a register was a sign on which people could write, often with chalk. It can also be used to mean a paper register such as one would keep of a check book.
In music register refers to the pitch level of an instrument, a high register indicates higher pitches.
In digital circuits, a register is a component for storing information, such as a memory address, or the operands or results of a computation. Registers are always tied to a clock, and are only written once per machine cycle. It is common to measure a register by the number of bits it can hold, for example, "8-bit register" or "32-bit register". Registers are usually implemented as an array of SRAMs.
In computer architecture, the term register is sometimes used to refer only to the group of registers that can be directly indexed for input or output of an instruction, as defined by the instruction set. More properly, these are called the "architected registers". For instance, the x86 instruction set defines a set of eight 32-bit registers, but a CPU that implements the x86 instruction set will contain many more registers than just these eight. These registers are the top of the memory hierarchy, and are the fastest way for the system to manipulate data.
There are several other classes of registers:
- Data registers are used to store integer numbers.
- Address registers hold memory addresses and are used to access memory.
- General Purpose registers can store both data and addresses.
- Floating Point registers are used to store floating point numbers.
- Constant registers hold read-only values (e.g zero or one).
- Vector registers hold data for Single Instruction Multiple Data (SIMD) instructions.
- Special Purpose registers which store internal CPU data like the stack pointer or processor status words.
The first is to have an electronic switch, such as a flip flop, for each bit of the register. This system is stable, and is standard engineering practice.
The other method is to map several states to the charge in one capacitor. This approach can sometimes be used to save money. For example, most digital cameras use a charge coupled device as their sensor. Capacitors are the standard way to store data in electronic random access computer storage.
One of the more significant developments of computer architecture was the discovery that binary numbers were the least expensive form for fast electronic storage. A ten state device needs ten switches. One can encode the same ten states as eight switches encoding four binary bits. Ten is greater than eight, therefore a decimal storage unit is more expensive than a binary unit.