15 Nov 2006

Intel Releases 4004 Schematics - Great for Students

Intel today released the schematics of the 4004, the world's first microprocessor on a chip. The 4004 was released 35 years ago today, on November 15, 1971. This revolutionary chip had only 2,300 transistors (compare that with the millions of transistors found on microprocessors today). It supported a maximum clock speed of 740kHz and used 4-bit data words. Today's chips are 5-6 orders of magnitude faster and use 32- or 64-bit words.

No human alive is capable of analyzing today's processors at the transistor level. Digital design these days happens largely at the block level. Simply put, a group of engineers design the individual blocks (arithmetic unit, floating-point unit, registers, data control, bus, etc.) and then another group combines the blocks to create the processor. Specialized software programs, called CAD or Computer Aided Design tools, exist to make this process simpler. They determine how the millions of transistors will be laid out and how they will be wired together.

The 4004, on the other hand, was designed during an era where computers were mostly glorified calculators. Every one of the 2,300 transistors used in the chip was lovingly drawn into the schematic by an engineer. This makes it possible for anyone who has taken at least a semester of logic design to grasp the majority of what's going on in this chip. These schematics are invaluable for undergraduates who are seeking comprehensive examples beyond those provided by the textbook of complete but simple digital systems. I would have loved to be able to look at these last year and see how my classroom knowledge lined up with a real, commercial product.

The 4004 design is still somewhat relevant when considering today's Intel microprocessors. The chips that followed the 4004 were the 4040, the 8008 (the first 8-bit processor), and the 8080. Then came the 8086, which was the first of the ubiquitous x86 generation of chips which are at the heart of most computers today. The x86 generation is defined by, among other things, its backwards compatibility. Every new x86 chip must be able to run programs written for previous x86 chips without recompiling. The instruction set can only be added to in successive generations. The backwards compatibility requirement gives x86 processors some inherent shortcomings. For example, all x86 chips are CISC (Complex Instruction Set Computers). However, RISC (Reduced Instruction Set Computer) chips are more efficient, because they implement every instruction in hardware. CISC offers a larger instruction set, but at a tradeoff; some instructions must be simplified into three or four component instructions before they can be executed in hardware. The Pentium is actually a RISC core interfacing with a CISC translator - it could be so much faster without the CISC layer! The PowerPC chips found in Apple's computers (until a year ago) are RISC chips. This is one reason why some chips cannot be compared using clock speed alone.

To understand the 4004 and the tradeoffs made during its design helps to gain insight into the processors made today. Some of the tradeoffs made when designing the 4004 propagated through the generations and vestiges of them can still be seen in Intel's chips today. Besides that, it is empowering to know that I can at least partially understand what was state of the art so recently. Of course, the reason at the bottom of all this is that I am a nerd and I love computer history and doing things like reading schematics and learning about computer architecture in my spare time. But regardless of what I specify as the reason, I plan to spend a little bit of time in the near future with the schematics and my Digital Logic book and see exactly how the first ever microprocessor works. There is also a simulator coded in Java on the 4004 site that I plan to check out.