Program Counter
Hard Drive Recovery - Program Counter
The program counter, also known as instruction pointer or instruction address register, is a processor register that indicates the instruction sequence of a computer. The presence of program counter in the CPU has far-reaching consequences in the programming of computers. It is also a significant component in the von Neumann architecture.
The program counter is one of the several registers in the hardware of the CPU. It consists of a bank of binary latches (flip-flop) with one flip-flop per bit in the integer that is to be stored. In the case of the program counter, the integer represents the address in the memory unit that is to be fetched next. Once the instruction has been received on the data bus, the program counter is incremented. In some CPUs this is achieved by adding 000..001 to its contents and latching the result into the register to be its new contents.
In most CPUs, program counter is implemented as a register that is internally wired so that it counts up to the next value when a specific signal is applied to it externally. These registers are known as binary counter, and hence the name ‘program counter.’
Depending on the details of a computer, program counter may differ in its functionality. It may hold either the address of the instruction being executed or the address of the next instruction to be executed. It imposes a strict sequential ordering on the fetching of instructions from the memory unit even where no sequentiality is implied by the algorithm itself.


