The PC Register, IRE, and ISA
A register machine is an electronically readable place accessible by the microprocessor of a computer. Most registers may be either write-protected or read-only, and generally consist of some relatively small amount of memory, though some registers are controlled by a dedicated hardware device, and can be read or write-protected. These devices are called register remotes. There are two types of registers: permanent and temporary.
The permanent register resides on the CPU core. It is accessed every time the CPU requests a constant value from it. The contents of this register are set at startup and whenever values are accessed by the program. The contents of this register are then read and executed when the program is complete. This register is not to be confused with the ROM, which is an exception register, but is used in the case of a boot ROM.
A normal computer does not have any memory except for the Program Counter, which is accountable for maintaining a count of all instructions executed in the CPU. The Program Counter keeps track of all instructions issued by the software. This register also records the instructions and their effect on the CPU. The Program Counter is also responsible for keeping track of all data transferred to the CPU (such as from an application), making it possible for the CPU to make efficient use of the data it acquires. A normal computer however has no knowledge about how these data are stored, hence the need for a register to store them.
Another type of register is the internal register. An internal register is used mainly for storing local user code and function keys. Since this register is saved along with each instruction, the PC can refer to the contents of this register for any given instruction without needing to examine the execution details of the particular instruction. A few examples of internal registers are the PC register, IRE register, and the ALU register.
A third type of register is the fast register. Fast register stores instructions that execute frequently within a microprocessor. Like the PC register, it maintains information that is continuously used for executing the same instructions repeatedly. As each instruction is executed, the contents of this register is updated. A fast register may be a significant advantage for an application, but it may also cause a performance hit because this register is updated every time an instruction is executed.
A PC register contains only a single value or address. On the other hand, an IRE or ISA holds more than one value. A few examples of PC registers include the Bootstrap Register, Stack Register, and Instructions Register. A data register is used to hold the information used by the Program Counter to determine the start up of the CPU. The Data Register is used during programming languages to define the types of data an application will handle, while Stack Register stores pointers to larger memory areas. The IRE is connected to the Program Counter through an interrupt.