Half a century ago, the puzzling phrase “special register groups” started showing up in definitions of “CPU”, and it is still there. In this blog post, I uncover how special register groups went from an obscure feature in the Honeywell 800 mainframe to appearing in the Washington Post.
While researching old computers, I found a strange definition of “Central Processing Unit” that keeps appearing in different sources. From a book reprinted in 2017:1
“Central Processor Unit (CPU)—Part of a computer system which contains the main storage, arithmetic unit and special register groups. It performs arithmetic operations, controls instruction processing and provides timing signals.”")](http://static.righto.com/images/registergroups/def-reliability-engineering.jpg)
At first glance, this definition seems okay, but a few moments thought reveals some problems. Storage is not part of the CPU. But more puzzling, what are special register groups? A CPU has registers, but “special register groups” is not a normal phrase.
It turns out that this definition has been used extensively for over half a century, even though it doesn’t make sense, copied and modified from one source to another. Special register groups were a feature in the Honeywell 800 mainframe computer, introduced in 1959. Although this computer is long-forgotten2, its impact inexplicably remains in many glossaries. The Honeywell 800 allowed eight programs to run on a single processor, switching between programs after every instruction.3 To support this, each program had a “special register group” in hardware, its own separate group of 32 registers (program counter, general-purpose registers, index registers, etc.).
That’s interesting. I always assumed the “special register groups” were registers that are architectural external to the CPU, like switch registers, IO mixers, etc – I had no idea!