Gate-level blueprints restored for anniversary
Pics Chip geeks have produced an interactive blueprint of the ARM1 – the granddaddy of the processor cores powering billions of gadgets today, from Apple iPhones to Raspberry Pis, cameras, routers and Android tablets.
The peeps behind the fascinating blog visual6502.org normally reverse-engineer chips by pulling the silicon out of their plastic packages, photographing the circuitry using ultra-high-resolution imaging systems, and visualizing the electronics after painstakingly analyzing the semiconductor gate construction – here’s the 6502 CPU from the BBC Micro, Commodore 64, Nintendo Entertainment System, Apple IIe, and many other computers.
In the case of the ARM1, to celebrate the 25th anniversary of Brit chip architects ARM, the team have managed to lay their hands on the original designs of the 32-bit RISC processor core, and visualized it for the web: you can single-step, or race through, instructions, and watch how the ARM1’s transistor gates operate as code and data is clocked through the circuitry in your browser. You can also zoom in and out of the blueprints, and rove around the layout, exploring the core’s subsystems.
The ARM1 is a milestone in British engineering: in late 1983, Steve Furber and Sophie Wilson – two engineers based at Acorn Computers in Cambridge, UK – visited and observed chip designers in America, and decided processor design wasn’t as scary as they first imagined. So they set about formally sketching out a 32-bit RISC microprocessor to power future Acorn microcomputers, at one point modeling the instruction set in BBC BASIC.
Eventually, about 18 months later, they produced the ARM1 – a tiny, low-power, efficient CPU fabricated by VLSI Technology with roughly 25,000 transistors using a 3,000nm (3μm) process. Today, a quad-core Intel Skylake Core i7 processor, with builtin GPU, has 1,350,000,000 transistors using a 14nm process.
The ARM1 was essentially a prototype, and was quickly followed by the ARM2, which was used to launch Acorn’s Archimedes family of computers. The ARM2 had pretty much the same instruction set as the ARM1, although featured new multiplication and (later) atomic swap instructions. Next came the ARM3 with an integrated data and instruction cache that really made programs run like butter off a hot knife.
Then we jumped to the ARM6 (an ARMv3 chip) that moved the architecture to a full 32-bit address space, and the rest is history: today the ARMv7 and ARMv8 architectures in Cortex-A cores power the world’s smartphones, tablets and other devices. Their Cortex-M cousins are used as microcontrollers, and Cortex-R cores are used in real-time systems, such as hard drive controllers.
More or less, the 32-bit RISC ARM instruction set hasn’t changed too much since the mid-1980s; a more compact instruction set called Thumb was introduced by ARM for handhelds and small embedded gizmos, and the 64-bit ARMv8 instruction set, launched in 2011, resembles MIPS64.
One very nice thing about the 32-bit instruction set is its pervasive conditional execution, which helps one avoid branching over code. For example, this sequence of instructions resets the register r0 to 0 if its value is equal to or less than zero, or forces its value to 1 if its value is greater than zero:
CMP r0, #0 ; if (r0
Get real time update about this post categories directly on your device, subscribe now.