On this page
The commands ARM processors understand go back to a design Sophie Wilson started at Acorn Computers in Cambridge in 1983. Here is how she did it, and how to read one of her instructions yourself.
Who is Sophie Wilson?
Sophie Wilson is a British computer scientist, born in Leeds in 1957, who studied computer science at Cambridge and joined Acorn Computers, according to her Computer History Museum fellow profile. With Steve Furber she built the prototype of the BBC Microcomputer, and she wrote its BBC BASIC interpreter. Her line on that profile is worth pinning above a desk: “Not knowing something is impossible has interesting effects on your work.”
How did Sophie Wilson design the ARM instruction set?
In her 2012 oral history for the Computer History Museum, Wilson explains that Acorn could build fast memory but could not find a microprocessor quick enough to use it. In early 1983 she and Furber visited the makers of the BBC Micro's 6502 chip, found a small team designing processors in bungalows, and decided Acorn could do it too. Andy Hopper then put the first RISC papers from Berkeley and Stanford on her desk. “So I started designing an instruction set,” she says.
An instruction set is the complete list of commands a processor understands, with the binary pattern for each one. The team tested Wilson's design before any silicon existed: Furber wrote a model of the ARM in BBC BASIC, and Wilson led a group writing test programs to check how every instruction behaved. VLSI Technology made the chip, and it came back on 26 April 1985. They plugged it in, BBC BASIC ran, and they opened champagne. “There were only 25 thousand transistors in it. Why shouldn't it work the first time?” she recalls.
What made the ARM instruction set different?
Ken Shirriff, who reverse-engineered the ARM1's circuits, reports that it had about 25,000 transistors, against 275,000 in Intel's 386, and used about 1/10 watt, against nearly 2 watts for the 386. He links the low power directly to the small transistor count.
Two features stand out:
Every instruction can be conditional. On the ARM1, the top four bits of each 32-bit instruction pick one of 16 conditions, so a program can skip an instruction without jumping around the code, as Shirriff's study of ARM1 conditional instructions explains.
A built-in shifter. Most instructions can shift or rotate a value by 0 to 31 bits on its way into the calculation, according to his ARM1 reverse-engineering post.
How do you read an ARM instruction?
ARM's instruction set chapter for the ARM7TDMI-S, a later ARM core, gives the layout of a data-processing instruction: a 4-bit condition, two zero bits, an immediate flag I, a 4-bit opcode, a set-flags bit S, the first register Rn, the destination register Rd, and a 12-bit second operand.
Take ADD R0, R1, R2, which means R0 = R1 + R2:
No condition is written, so it is AL (always): 1110.
Bits 27 and 26 are 00. I = 0, because the second operand is a register.
ADD is opcode 0100. S = 0, so the flags stay as they are.
Rn = R1 = 0001, and Rd = R0 = 0000.
Operand 2: no shift (eight zero bits), then R2 = 0010.
Joined up: 1110 0000 1000 0001 0000 0000 0000 0010, or E0810002 in hexadecimal, the pattern in the diagram above.
Now change only the top four bits to 0000, the code for EQ. You get 00810002, or ADDEQ R0, R1, R2: the same addition, done only if the zero flag is set, say after a comparison found two values equal.
If binary and hexadecimal still feel slippery, the computing lessons in the Fermi Concept Library take them one idea at a time.
Why is ARM in most phones today?
Arm's official history says Advanced RISC Machines Ltd was founded in November 1990 as a joint venture of Acorn Computers, Apple and VLSI Technology. Wilson told the museum in her oral history that its model of licensing designs instead of making chips is what let it survive.
More than 99 percent of the world's smartphones are based on Arm technology, according to Arm's official history, which also says more than 350 billion chips with Arm technology have shipped.
For the steps before ARM, read how Federico Faggin designed the Intel 4004 microprocessor, how Lynn Conway simplified VLSI chip design, and what Gordon Moore predicted about chips in 1965.
What can you learn from how Wilson worked?
Borrow her method for your next coding practical:
Write the rules first. Wilson designed the instruction set before the chip was built. Write down what your program must do before coding.
Build a cheap model. A slow BASIC model caught mistakes before anyone paid for silicon. Try your idea on paper first.
Test every case. Her group checked every instruction's behaviour. Test zero, negatives and empty inputs too.
Stuck on where to begin? Fermi's AI tutor can work out what you already know and build a plan for the session.



