Picking apart the circuits in the ARM1 – the ancestor of your smartphone's brain
Silicon layout reverse-engineered
Pic Ever since the silicon blueprints of the ARM1 – the grandfather of today's smartphone processors – were recovered in November, hardware guru Ken Shirriff has been poring over the layout and reverse-engineering the landmark chip.
The ARM1, designed in 1985 by Acorn engineers, was a prototype 32-bit RISC CPU with 25,000 transistors. The ARM architecture has undergone many, many revisions since then, yet if you're au fait with today's ARM A32 instruction set, the ARM1 will seem very familiar to you. Today, modern ARM cores appear in phones, tablets, smartcards, hard drives, handhelds, and plenty more.
The only oddity you may note is the ARM1's 26-bit address space. That's right, 16 32-bit registers, a 32-bit data bus, and a 26-bit address space. That's because the processor's status flags are stored in the high bits of the 32-bit program counter. These flag bits are set or cleared depending on the previous arithmetic operations or comparison; for example, the zero flag is set to '1' if the outcome was zero.
You can also turn on and off interrupts, and set the processor in user or kernel mode, by flipping the right status bits. These can be controlled using just normal bitwise instructions, rather than special instructions, which keeps the design clean and simple. When the architecture moved to a 32-bit program counter, the status bits were moved out to a separate register.
If you're familiar with digital logic circuits, you might expect the ARM1 to use bog-standard flip-flops or latches to hold each individual status bit. In fact, the CPU uses dynamic flip-flops that use stray capacitance to store data. This approach is smaller and faster than static logic, requires a constant clock signal, and relies on careful design to ensure bits aren't lost between cycles.
All of this and more is documented in a detailed article by Shirriff, who has studied the ARM1's layout right down to the transistor level to understand how the designs work.
The ARM1 labelled ... Source: Ken Shirriff
"The flags are not the simple 8-bit register I expected, but are stored in dynamic latches with many control lines and inputs, Shirriff concluded.
"With careful examination, it is possible to explain how the features and special cases described in the manual are implemented in the circuits. Studying the flags also explains the function of several of the control signals generated by the instruction decoder."
If you want a masterclass in CPU operation, right down to the silicon, check out the reverse-engineers other posts: he's covered conditional execution; the priority decoder that allows multiple registers to be read from memory or written to memory in one go as a block; and the basic building blocks of the prototype's design.
"The ARM1 processor led to the amazingly successful ARM processor architecture that powers your smartphone," Shirriff noted. "The simple RISC architecture of the ARM1 makes the circuitry of the processor easy to understand, at least compared to a [contemporary] chip such as the 386." ®