“…then we hold the world ransom for one million dollars!” – Dr. Evil, “Austin Powers”
When you think of a “megaprocessor,” what do you imagine? An ultra-high-performance machine, one step up from a supercomputer? The ultimate computing architecture, powerful enough to simulate all the world’s weather? A parallel processing machine? Maybe a massive neural network?
It’s bound to be big, right? Like, room-sized big. And really, really fast. Like, 20-KHz fast.
That’s right, James Newman’s enormous “Megaprocessor” runs at an astonishing 20-KHz clock frequency, fast enough to… uh… do integer arithmetic. If you’re patient.
It is indeed massively room-sized. And it has the requisite blinky lights, apropos of a 1970s sci-fi thriller or an original Star Trek episode. The only things missing are the gravelly synthesized voice and the gratuitous reel-to-reel tape recorder spinning back and forth.
But it works. It’s alive! And it was all designed and built by hand, by one man working alone in his spare time. Thankfully, Newman has documented the entire process from start to finish, laying out the details of Megaprocessor’s architecture and good-naturedly sharing his mistakes along the way.
So what is Megaprocessor? It’s a larger-than-life implementation of a computer, built entirely out of individual transistors. As in, actual hold-it-in-your-hand, three-legged, 2N7000-series NMOS FETs. You can see every single transistor, gate, flip-flop, and memory bit because they’re all hand-built from discrete components on large printed-circuit cards. The entire machine stands six feet high and is more than 25 feet wide. A room-sized computer, indeed.
Close your eyes, though, and it could be almost any 8-bit microcontroller CPU. It’s got registers, RAM, an instruction set, a compiler, debug tools, and everything you’d expect from a real microprocessor – in 1975. Newman said that he initially considered implementing one of the many existing 8-bit CPU architectures (why reinvent that particular wheel?), but blanched at the thought of hand-soldering some of the more arcane features of the 6502, Z80, or 8086. So he borrowed ideas from all of them and came up with his own hybrid 8/16-bit architecture more suited to discrete implementation.
A quarter-million solder joints, 42,000 transistors, 50,000 resistors, 1500 feet of rainbow-colored ribbon cable, 10,000 LEDs, and $60,000 later, Newman has a working processor that you can actually see working. And that was the point. He wanted to watch the data and logic flow, to demonstrate to himself and to others how a computer actually functions. Every Megaprocessor circuit is liberally sprinkled with red LEDs so you can see every data bit stored in RAM, monitor the state of every flip-flop, and watch operands cascade through adders, multiplexers, and registers. It’s quite a light show when it’s running. You can watch it in action here.
The machine weighs about 1,000 pounds but, remarkably, uses only about 500 watts of power. Most of that goes to the LEDs, which, in hindsight, Newman wishes he’d made dimmer. But he wasn’t about to un-solder and replace thousands of 470-ohm current-limiting resistors.
Before he started, Newman was hoping that Megaprocessor’s clock rate might hit 1 MHz. After all, individual FETs are pretty fast, and he chose 2N7000 MOSFETs for their good fanout characteristics. He later downgraded his expectations to “hundreds of megahertz,” before finally achieving “tens of kilohertz.”
The critical path turned out to be the machine’s 16-bit ripple adder, which is about 30 levels of logic deep. Counting pre- and post-adder gates, Newman estimates it’s about 50 gates deep overall, and the loading on some of the transistors pushes up their switching time. Megaprocessor runs reliably at about 20 KHz today, a frequency within the range of human hearing. It’s likely you can actually hear Megaprocessor working as well as seeing it.
Not counting the transistors driving all those LEDs, Newman estimates the processor logic took about 6800 transistors. That’s roughly the same level of complexity as a Z80 CPU, with about the same features. As CPU designs go, Megaprocessor is a pretty respectable one.
The only injury incurred during roughly two years of construction is one slight burn from shorting his wristwatch on a live board.
Why build an entire microprocessor out of transistors, resistors, wire, and LEDs? “Why not?” is the obvious answer, and the one Newman most often gives. “I started by wanting to learn about transistors. Things got out of hand.”
If the Megaprocessor were more portable, it would make a great teaching aid for first-year electronics or computer students. As it is, you have to come see it; it’s not coming to you. But through the magic of YouTube, blogging, and the interwebs, we can all watch and learn about how Megaprocessor works. Its miniaturized descendants (or are they predecessors?) have enabled everyone to share in Newman’s success. Good job.