A register is a small set of data holding places in the memory of a computer processor. They are used for temporarily storing instructions, storage addresses and any kind of data (such as a bit sequence or individual characters). Some instructions may specify registers to store the result of an operation in. A register also is a unit of internal storage in a CPU allowing it to process instructions quickly by storing frequently accessed values in fast internal memory and reducing the need to access slower main memory as often thereby improving processor speed and efficiency.
The word register can be a noun meaning the actual book that records an act, event, name or number, a record of charges on your credit card, or the range of sound your voice or musical instrument can make, or it can be a verb that means to mark down officially, as when you sign up for classes at school or the DMV, or to show emotion: “She registered her shock.”
In computing, a register is an important part of the hardware of a computer. It is a form of fast internal storage in the CPU that can hold instructions, addresses and any type of data facilitating quick and efficient processing. It is used extensively in arithmetic and logic operations and for temporary holding of operands and intermediate results during instruction execution. Registers are also essential for the implementation of CPU pipelining as they enable overlapping of instructions to increase performance.
There are two types of register: architecture-specific and general purpose. The former are defined by the design of a processor and are visible to software. They can be renamed by the underlying hardware to modify the register’s functionality. The latter are not exposed to software and are called the “internal” registers by programmers. They are used to store the CPU’s state during context switching. They are also used to buffer data during input/output operations – the MAR and MDR registers are involved in memory addressing while the GPR register holds the contents of an output function.
Registers are a vital component of a computer’s memory hierarchy as they allow the processor to work with small amounts of data and avoid unnecessary and costly main memory accesses. They are allocated either automatically by a compiler in the code generation phase or manually by an assembly language programmer. The size of a register depends on the architecture of the CPU and can vary from 64 bits to 4096 cores.
Linguistics scholars talk about the way people speak using different registers depending on the social occasion and context of the conversation. For example, people speak very differently in a casual setting with close friends than they do at a formal dinner party or job interview. People also use a more informal, familiar register when speaking with someone they know well or in private conversations with family members. The more formal register is reserved for professional, academic and legal settings where the tone must be respectful, uninterrupted, and restrained.