Program counter

The instruction cycle[8] begins with a fetch, in which the CPU places the value of the PC on the address bus to send it to the memory.

[9]) Following the fetch, the CPU proceeds to execution, taking some action based on the memory contents that it obtained.

On some processors, the width of the program counter instead depends on the addressable memory; for example, some AVR microcontrollers have a PC which wraps around after 12 bits.

This approach permits a PC with fewer bits by assuming that most memory units of interest are within the current vicinity.

This research also led to ways to making conventional, PC-based, CPUs run faster, including: Modern high-level programming languages still follow the sequential-execution model and, indeed, a common way of identifying programming errors is with a “procedure execution” in which the programmer's finger identifies the point of execution as a PC would.

Front panel of an IBM 701 computer introduced in 1952. Lights in the middle display the contents of various registers. The instruction counter is at the lower left.