The Program Counter

This note is too elementary for the audience for the rest of these pages. I wonder, however, what fraction of today’s CS graduates could describe a program counter.

Perhaps the program counter is the seminal element of the von Neumann computer.† Turing certainly had the idea earlier. It is too simple an idea to deserve accounting for its invention. It came about with storing programs in the same sort of memory as the data where information is stored in numbered cells. Remembering a number thus sufficed for the computer to remember what it was doing as it finishes obeying an instruction from some program in memory. It reminded the rest of the machine what instruction it was working on just now. The most basic operation of the machine was to fetch the instruction indicated by the PC, and concurrently:

Thus does the computer obey a program.
† Although I first learned the instruction set of the SWAC where each instruction carried the address of the next instruction. At that point descriptions of other machines seemed mysterious for they thought it unnecessary to mention the program counter.

Actually the program counter would be better named the instruction address register and some architectures call it that.