8 ms·
A history of ARM, part 1: Building the first chip
- snvzz 4y agoThe take-home, IMO: >Let’s step back for a moment and reflect on what an amazing accomplishment this was. The entire ARM design team consisted of Sophie Wilson, Steve Furber, a couple of additional chip designers, and a four-person team writing testing and verification software. This new 32-bit CPU based on an advanced RISC design was created by fewer than 10 people, and it worked correctly the first time. In contrast, National Semiconductor was up to the 10th revision of the 32016 and was still finding bugs. Remember: Complexity is poisonous.
- samizdis 4y agoIndeed. And I was also impressed by this: > Because of the simplicity of the design and the low clock rate, the actual power draw ended up at 0.1 watts. > In fact, one of the first test boards the team plugged the ARM into had a broken connection and was not attached to any power at all. It was a big surprise when they found the fault because the CPU had been working the whole time. It had turned on just from electrical leakage coming from the support chips.
- amzans 4y agoDefinitely agree. I think the problem is that it’s usually easier to arrive at complex solution than a simple one.
- sbuk 4y agoAlways work with the following in mind: Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.
- amelius 4y agoPerhaps this was simply because the National Semiconductor people were allowed to make mistakes, whereas for ARM it was crucial to get it right the first time. It also tells that designing hardware is perhaps not as hard as most software engineers make it out to be.
- pavlov 4y agoAs the article notes, the ARM v1 CPU had 27,000 transistors. Designing a RISC processor that small is hard in a different way. It’s probably similar to designing a useful CAD application whose code fits in 30 kilobytes on an operating system which only provides file I/O. (That would be the original AutoCAD.) The difficulty of both hardware and software has changed towards dependency management rather than squeezing the most out of a handful of transistors or program bytes. There’s no reason for anyone to create ARM v1 or AutoCAD 1.0 today.
- klelatti 4y agoAgree 100% with the thrust of your argument but isn't the challenge still there today for a Cortex-M0 equivalent say?
- bell-cot 4y agoMore perspective on the 32016 vs. the ARM1: There were about 25K transistors total, in the KISS-or-die ARM1 chip ( https://www.theregister.com/2015/11/28/arm1_visualized/ https://www.theregister.com/2015/11/28/arm1_visualized/ ). vs. There were about 60K transistors in the NS32016 chip, which had to implement features like virtual memory ( http://cpu-ns32k.net/CPUs.html http://cpu-ns32k.net/CPUs.html ). A quote on the 32016, from the latter source: "It is one thing to define a superior architecture on paper. But it is another thing to implement all the required functionality with a limited budget of time and man power." Sounds like NS was really skimping on resources for the 32016. (Wikipedia claims NS had $1 billion in annual sales by 1981, which was Serious Money back then. Vs. the article makes it pretty clear how much leaner things were at Acorn Computer.)
- Taniwha 4y agoThe big difference of course is tooling (CAD tooling) ten years after that I was knocking out that many timed gates a year myself, 5 years later, maybe 5 times more again - that world has changed a lot from the 6502 which was done with litho and modelling knives
- robomartin 4y ago> This new 32-bit CPU based on an advanced RISC design was created by fewer than 10 people A small motivated team with sufficient domain knowledge will always outperform large teams, regardless of funding. The history of business is full of examples of this. Not to go too far, the entire consumer computer industry came out of places like Apple (1 engineer!), Microsoft (a couple of guys), Compaq (three guys), etc.
- cmrdporcupine 4y agoEntirely different market 320xx vs ARM (at the time and even now). The simplicity you're advocating as successful for ARM was not applicable for the market NSC was attempting to compete in. The 320xx, like the 68k, was targeting the nascent Unix workstation market and minicomputer-competition. It was explicitly VAX like -- except simplified (apparently 32xx was quite a clean and consistent architecture). As others have pointed out, it supported everything needed for virtual memory (better than the 68k, actually) I am not sure ARMv1 (and v2) even had supervisor vs user mode, etc.? (It may have, Google isn't helping me here) Eventually the 68k ended up in consumer microcomputers (Amiga, Atari ST, etc.) but it started out in that same market. People who wanted to take a bite out of VAX's lunch (which was big money back then.) The ARM was built by a microcomputer company, for the next generation of their microcomputers. And then for the nest 30 years it was used in various forms for embedded and portable / low-power systems (apart from the ill-fated Archimedes line which was kind of Atari/Amiga/Mac level competition) . It's only in the last few years that we're seeing it in server and workstation class systems. Note that Apple was an investor and user in ARM from the very earliest days but only in the last couple of years has seen it wise to put it into that class of machine. They went from 68k to PowerPC, and from PowerPC to Intel without choosing ARM for the job, even though they were already a huge ARM customer and had already ported their OS. Different market, different kind of project.
- talex5 4y ago> I am not sure ARMv1 (and v2) even had supervisor vs user mode, etc.? (It may have, Google isn't helping me here) v2 at least had 4 modes: user mode, supervisor, IRQ and FIQ. They were encoded in the low 2 bits of r15 (which weren't otherwise needed, since the PC was always word-aligned). The original Archimedes was intended to run a "preemptively multi tasking, multi-threaded, multi-user, written in Acorn-extended Modula2+" system called ARX. But when that wasn't ready in time, they ended up just porting the 8-bit BBC Micro MOS to the new 32-bit machines! This is a great read about it all: http://www.rougol.jellybaby.net/meetings/2012/PaulFellows/index.html http://www.rougol.jellybaby.net/meetings/2012/PaulFellows/in...
- klelatti 4y ago
- HarHarVeryFunny 4y agoOne of the interesting things about the ARM instruction set (at least in the Acorn era - not sure if this is still true of more recent ARM iterations) is that ALL instructions, not just branch, were conditional, which meant that you could avoid the need for branch instructions in some cases - rather than conditionally branch past some instructions, just make them conditional and "execute" them regardless. Smaller code and faster execution! The article cites Hermann pushing IBM's RISC approach, but as I recall (I worked at Acorn at the time) the inherently RISC-like simplicity of the 6502 that Acorn was using was itself part of the inspiration.
- tadfisher 4y agoI found this article that goes into a bit more detail about ARMv1's conditional instructions. http://www.righto.com/2016/01/conditional-instructions-in-arm1.html http://www.righto.com/2016/01/conditional-instructions-in-ar...
- joezydeco 4y agoThe conditional execution was the key to making pipelining work back in those days. Modern processors do way way more to try and predict where branches will go and minimize breaking the pipeline flow.
- rrss 4y agothis (and the barrel shifter being available in all instructions) was at least partially due to the limitation mentioned in the article that the processor had no data or instruction cache. If single instructions could have these extra capabilities, the processor could do more work between stalling waiting to read the next instruction from memory.
- fulafel 4y agoIt seems there was a reboot in the AAarch64 (aka 64-bit ARM), and the general predication was jettisoned. Along with some other traditional ARM characteristic features like loading / storing multiple registers with one instruction.
- 4y ago
- DrBazza 4y agoThis takes me back. For those somewhat younger than me... This was the first 32 bit machine widely and cheaply available in the UK. It shipped, briefly with Arthur OS (as mentioned in article), and then RiscOS came out which was so much better. C was supported. Apps were a folder containing the code, plus a "magic" file called !Boot, which was scanned and ...executed... by the OS. Which lead to the first bunch of viruses. An upgrade chip was available a couple of years afterwards (33Mhz IIRC). The software wasteland as described in the article wasn't as bad as it sounds, there was lots of "home brew" software being distributed via floppy disks in the school playground (no internet kids!), including a hypertext/markup editor (that I can't find the link to) but for static docs, not internet ones. Impressions [1] was the word processor of choice. And was leagues ahead of WordPerfect and Word. Published magazines were also full of code (that you had to type in), as well as the beginnings of "free disk on the cover of this magazine". The archimedes shipped with !Draw and a few other built in apps. !Draw was a vector drawing app, that was again, unlike anything on any other machine. So many (mainstream) firsts, but just didn't "win" (a bit like a lot of tech today). It's just such a shame that Acorn didn't have any reach into America and sell it in volume. 1. http://www.computinghistory.org.uk/cgi/archive.pl?type=Software&platform=Acorn%20Archimedes http://www.computinghistory.org.uk/cgi/archive.pl?type=Softw...
- stevekemp 4y agoI remember when I went to sixth form in the early nineties they had a couple of the Archimedes machines around the place - but all the kids, and staff, used the x86 machines (running GEM IIRC) instead. I had a couple of friends at the time who'd owned BBC Machines, but most people had the ZX Spectrum or Commodore 64. I never knew anybody who personally owned an Archimedes at all, and other than seeing them at the sixth form I never saw any at all in the wild.
- DrBazza 4y agoMy school back then went from BBC micros straight to PCs as well (I suspect it might have been govt policy, or lack thereof). And the PCs then were awful compared to the Arch. Can't remember if it was an early version of Windows or OS/2, but back then the PC gui desktop was absolutely shocking in comparison to the Archimedes and Macintosh.
- poofmagicdragon 4y agoWilson later went on to co-found Element 14 and design the FirePath architecture, which is specialised for bulk data processing. The company was later acquired by Broadcom, and for many years such processors have been and are currently used in much of its product range related to networking. For example, if you've ever used a DSL modem, it's likely that the transceiver at the telephone exchange end is a FirePath chip. I find it truly impressive how the processor design work of this one individual had so much influence in both the general purpose computing and telecommunications fields.
- bicolao 4y ago> A disadvantage of the RISC design was that since programs required more instructions, they took up more space in memory. Back in the late 1970s, when the first generation of CPUs were being designed, 1 megabyte of memory cost about $5,000. So any way to reduce the memory size of programs (and having a complex instruction set would help do that) was valuable. This is why chips like the Intel 8080, 8088, and 80286 had so many instructions. > But memory prices were dropping rapidly. By 1994, that 1 megabyte would be under $6. So the extra memory required for a RISC CPU was going to be much less of a problem in the future. I think this is still a problem? Not memory size, but the speed of the memory bus.
- kimixa 4y agoCaches are also very much size-constrained. Compressed instruction formats phase in an our of favor to this day, trading size for decode complexity.
- snvzz 4y ago>A disadvantage of the RISC design was that since programs required more instructions, It's important to understand that, while that was the case back then, today, RISC-V has best 64-bit code density, whereas best 32-bit is still ARM thumb2, with RISC-V being a close 2nd, and actually better with current B and Zc extensions, to be ratified soon. This is achieved with very little complexity required in the decode, which becomes a net win if there's any ROM or cache in the chip.
- bluedino 4y agoI just remember reading the name StrongARM in signatures on newsgroups in the 90's
- pmyteh 4y agoThe StrongARM was a DEC-designed offshoot of ARM which (amongst other things) traded off some of the low power consumption of ARM for greater performance. The last-generation Acorn computer (the RiscPC) had swappable processor cards and Acorn more-or-less force-fit the SA110 into the last generation of RiscPCs because it was so much faster than the ARM8 that was in the roadmap. There were a bunch of software incompatibilities, partly because it used a different ISA (ARM v4 instead of the v3 used by the CPUs on the existing cards) and partly because it had separate instruction and data caches that broke a lot of existing self-modifying code. An Acorn application note with differences is online[0]. Honestly, those of us with StrongARMs were prone to showing off about it because it was such a speed upgrade over the existing machine. I didn't acquire mine until 1999, well after the whole Acorn ecosystem was obsolescent, but I might well have put it in my sig anyway... [0]: http://chrisacorns.computinghistory.org.uk/docs/Acorn/AN/295.pdf http://chrisacorns.computinghistory.org.uk/docs/Acorn/AN/295...
- klelatti 4y agoThe thing that has always impressed me about the ARM1 is that they didn't just take the RISC model from the papers they read: they adapted it to suit their own needs. Adding the barrel shifter, conditional execution, removing features that made the design more complex, and squeezing it into a gate count that meant that they could produce it at an acceptable cost. As Wilson said later - "MIPS for the masses" - and not for workstations. It wasn't just a technical achievement it was a commercial achievement too - although Acorn failed to make use of it of course.
- didip 4y agoYou can get a pretty good story here: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/a-brief-history-of-arm-part-1 https://community.arm.com/arm-community-blogs/b/architecture...
- bogomipz 4y agoI have a question about the relationship between the "simplified transistor" animated gif and the "Simplified AND and OR gates, using transistors" animated gif here: https://cdn.arstechnica.net/wp-content/uploads/2022/09/and-or-gate-anim.gif https://cdn.arstechnica.net/wp-content/uploads/2022/09/and-o... The image in the URL above represents two transistors in each gate type, where the transistor is shows as a circle with 3 rectangles in it. Is my understanding of this relationship correct if I assume the following? The line labeled "input" in the animated gif maps to the gate in the transistor. The line labeled "output" in the animated gif maps to the drain in the transistor. The line labeled "voltage" in the animated gif maps to the to source in the transistor. In other words gate equates to input, the output equates to drain and voltage equates to source and the distinction between these is really whether we are talking about the transistor or a circuit(gate) made up of those transistors?
- JeremyReimer 4y agoYou've got it right. I was going to label the inputs in the transistors in the second animation, but it made the diagram rather crowded, so I left it out. The diagrams are simplified because they leave out things like connections to ground, attached resistors that mitigate the total current, etc. But I wanted to convey, as simply as possible, how transistors worked and how gates could be made very simply out of a small number of transistors. The actual CMOS chips in use by ARM (and still in use today) complicate things more, because you have different types of silicon (NMOS and PMOS) on the same substrate, so the transistors work slightly differently and you can simplify making things like NAND gates, which themselves can be combined to make all other types of gates. For this article, I didn't want to get that deep into the woods, though. :)
- bogomipz 4y agoHi, thanks for the article, I'm looking forward to the next installment! I hope you post it here when it comes out. I actually appreciated the simplicity of the diagrams and I think most literature follows this where terminals(I think that's the correct term) are marked source, gate and drain and then the circuits are denoted input, output, voltage/vss. I've never seen it stated bluntly that "gates mean this in this context and we refer to as an input in the circuit context." Maybe it's just considered too obvious but it's always made me question my own understanding. Thanks for the confirmation.
- bonzini 4y agoOlivetti went terribly wrong in the 90s, but it was no typewriter company in the 80s! It started as a calculator company and even NASA used its stored program calculators, effectively one of the first desktop computers (https://en.m.wikipedia.org/wiki/Programma_101 https://en.m.wikipedia.org/wiki/Programma_101). In the 80s they bought the rights to the Thomson MO6 and the BBC Micro in an attempt to use their brand to enter the home computer market in Italy, but they were already selling both PC compatible computers and custom designs such as the M10 (an improved Tandy 100).
- cbm-vic-20 4y agoThe article mentions WDC's 65C816, which you can still buy today at the usual electronic parts distributors.