Types of CPU Registers and Their Functions
What is a Register? How many types of registers are there in the CPU? CPU registers are high-speed storage locations inside the microprocessor used for Memory addressing, data operation, and processing.
Important types of CPU registers are Accumulative Register (AR), Stack Control (ACR), Instruction Pointer (IPR), Address or Segment Register (AR or SR) & Flag Register (FR).
What is a CPU Register?
A register is a small high-speed memory inside the CPU. It is used to store temporary results. Registers are designed to be assessed at a much higher speed than conventional memory. Some registers are general purpose while others are classified according to the function they perform.
Generally, registers can have the following items:
- Data: The processor stores data which includes numbers (in some newer architectures, data can also include characters or arrays) in its registers.
- Addresses: Registers can hold addresses for data in the Main Memory.
- Analog Vs Digital Computer
- Computer Components
- Types Of Computers
- Communication Channels
- Types Of Application Software
Functions Of Registers
It’s not wrong to say that registers are the most important and useful memory in processing. Because most of the commands can never be processed directly by the CPU and deliver the output. These commands can necessarily be processed before delivering the output.
In such situations, the CPU replaces the main command into a group of commands with the help of an assembler unit. This set of commands is called sub-commands.
Following the processing, the ALU (Arithmetic & Logic Unit) of the processor is used to processes each of the sub-commands and store the output in one of its registers. The result of each sub-command is affected by the output of the other sub-command.
Due to this reason, registers will have to work logically, unlike other memories. Because one stability can affect another. Registers, therefore, have the responsibility of storing (temporarily) the outputs of each sub-command.
Size Of CPU Register
Register size determines how much information it can store. The size of the register is bytes. Each byte can store one character of data. in addition, a register can be of one, two, four, or eight bytes. The bigger size of a register can also increase the performance of the CPU.
CPU Registers And Their Functions
The registers in the processor based on their functions can be categorized into the following two major groups:
- User Accessible Registers
- Internal Registers
User Accessible Registers
These types of CPU registers can be accessible by the user by entering commands.
Some major accessible registers are:
- General Purpose Registers: The user can access these types of registers and change them. it can also include operand data or addresses.
- Special Purpose Registers: The user can’t directly access such types of registers and are for the processor itself. For example, special registers can hold Program Counter (PC), which is responsible for addressing commands for processing.
- Program Counter: This register is responsible for keeping the address of the next command in the main memory to be processed, and normally after every command, the number 1 is added to indicate the next address location.
These types of CPU registers can’t be accessible to the user and can only be accessed by the processor itself while processing. Some major internal registers are:
- Instruction Register: This register can be accessed using commands on some processors (such as the Intel i7). Grammatical consistency keeps track of the upcoming processing command. Normally, this command is encrypted from a security perspective and is encrypted at this registry.
- Memory Address Register: This register is used for maintaining the address of all requested items (the address of a data or command) which is going to be written to or read from memory.
- Memory Buffer Register: This register is used to store data temporarily when sending or receiving memory.
- The Memory Data Register: When the data is received in the memory buffer register, then it is stored in this register until it is changed.
Types of CPU Registers
CPU Registers are classified into two categories, general-purpose and some are reserved for certain functions. Common types of CPU Registers are Accumulative Register (AR), Stack Control Register (ACR), Instruction Pointer Register (IPR), Address, or Segment Register (AR or SR), Flag Register (FR).
Major types of computer registers in the microprocessor are:
- Memory Address Register or MAR
- Stack Control Register (ACR)
- Memory Data Register or MDR
- Flag Register (FR)
- Accumulator Register or AC
- Instruction Pointer Register (IPR)
- Data Register
- Address or Segment Register (AR or SR)
- Memory Buffer Register (MBR)
- Index Register
- Program Counter or PC
Memory Address Register or MAR
This Register is used to holds memory addresses from data and instructions. The purpose of this Register is to access data and instructions from RAM during the execution process of instructions. For example, the CPU needs to store some data in RAM, or vice versa. When it wants to retrieve data from RAM. MAR stores that data temporarily. Because if MAR did not do this, the CPU won’t know where the instructions should be stored in RAM. So logically, there is a registry called MAR.
Stack Control Register (SCR)
A stack is a set of memory locations in which data is stored and retrieved in order. This order is called Last-In-First-Out (LIFO). The data item stored at the top of the stack is retrieved before retrieving the item below it. Furthermore, stack control registers are used to manage the stack in the computer.
Two special registers SP and BP are used for this purpose. DI, SI, SP, and BP can either be used as 2-byte registers or 4-byte registers. The names of 4-byte stack control registers are EDI, ESI, ESP, and EBP.
Memory Data Register or MDR
This type of Register is considered to be the most important CPU register. The MDR register is like the CU unit register of the processor and stores information that must be stored in the system RAM or other memory. MDR also contains data that can be fetched or already fetched from a storage device.
The MDR register works like a buffer and holds a copy of information shifted from RAM to the register during the Fetch operations being processed by the CPU.
Flag Register (FR)
Flag registers are used to indicate a particular condition. The size of the flag register is one or two bytes. Each byte of flag registers is further divided into eight bits. Each bit of the flag register indicates a flag or condition.
In addition, the data in the flag register is stored in 8 distinct bits. Some flag registers are Zero flags, Carry flag, Parity flag, Sign flag, and Overflow flags.
Accumulator Register (AC)
The function of accumulative registers is to handle mathematical and logical operations. These registers are part of ALU. Almost, there are four types of accumulative registers called EAX, EBX, ECX, and EDX also. The size of these registers can be 1 to 4 bytes.
The two-byte data registers (AX, BX, CX, DX) contain two parts of an 8-bit size. Furthermore, these parts are separately accessible. The lower order bytes are designated as AL, BL, CL, and DL. The high-order bytes are designated as AH, BH, CH, and DH.
Instruction Pointer Register (IPR)
The instruction pointer register is used to store the memory location of the next instruction to be executed. It is a special register that holds a sequence of instructions to be performed. It almost works along with the segment registers.
Data Register (DX)
This type of CPU register is used to store data read or written from storage devices temporarily. In technical terms, The Data Register is also known as DX.
Address or Segment Register (AR or SR)
The address or segment register is used to store the memory location of the instruction that is being executed. This is a group of 4 or 6 registers of two bytes named CS, DS, ES, and SS, FG, GS. These registers are used with either the IP register or two index registers DI and SI.
Memory Buffer Register (MBR)
This Register stores the contents of data or commands that are read from memory or written to it. In other words, the function of this register is to store data or instructions that are called from memory or loaded on it. The MBR register is similar to the MDR register and they are no different at all.
Index Register (BX)
The purpose of this register is to store numbers or values in the processor that can be minus from or included as a part of the address of an instruction to transform it into an effective and efficient address. The Index Register is sometimes called the Base Register.
Index Register is generally a registry within a computer processor which functions to change operand addresses during the execution of a program. In technical terms, Index Register is also called BX.
Program Counter or PC
The Program Counter called PC for short is also known as the Instruction Pointer or IP. This register is often pronounced as the Instruction Address Register. This register stores the address memory path of the instruction which is going to be processed after the current instruction is finished successfully.
In other words, the function of this Register is to contain the memory address of the next instruction until the current instruction is processed successfully.
I hope you will get the right information about what you are looking for? Do share on your social accounts which will help others to get access to more useful content. We always looking forward to suggestions from our visitors to improve our content. Feel free to write in the comment section for any queries.