Dr. Scott M. Baker's MasterBlaster Puts Eight Intel 8008s to Work in a Game of Life "Supercomputer"
Named for characters from Mad Max Beyond Thunderdome, MasterBlaster spreads the work across multiple 1970s CPUs.
Dr. Scott M. Baker has built a supercomputer, of sorts, which puts eight processors to work churning through Conway's Game of Life — though as they're all Intel 8008s, performance isn't exactly high by modern standards.
"I've been looking to do a parallel computing project for a while," Baker explains of the project, which blends more modern parallel processing with some of Intel's first eight-bit CPUs. "I've toyed around with lots of different ideas — everything from 8086 to Z8000. But lately I had done a few 8008 CPU projects and I decided to finally take the multiprocessor leap and design myself a small multiprocessor computer."
The resulting design, dubbed MasterBlaster for reasons which will become clear, is based around eight Intel 8008 CPUs. First released in 1972, the 8008 is an eight-bit design clocked at between 500kHz and 800kHz — and yes, that's kilohertz, not megahertz — capable of addressing just 16kB of memory. Made up of a mere 3,500 transistors, it's a device dwarfed by even the cheapest of modern microcontrollers let along Intel's current output — but it remains an interesting piece of history, particularly owing to its place in Intel's development of the still-extant x86 architecture.
Contemporaneous systems built with the Intel 8008 typically used just one, but Baker's design uses eight. As the device wasn't made with symmetric multiprocessing in mind, the retro-themed "supercomputer" is split into seven "brawn" devices and one "brain" device — named Blaster and Master respectively, for the characters in the post-apocalyptic Mad Max Beyond Thunderdome, Baker explains. Master is given a 16kB ROM as well as RAM, but the seven Blasters have to make do with just RAM.
"I wanted keep things relatively simple, so I went with a synchronously shared memory design," Baker writes. "I’m calling it synchronously shared because there is a distinct order to who has access to Blaster’s memory. Either Blaster is running and using the memory, or Blaster has halted and Master can use the memory. It’s not possible for both of them to use the memory at the same time."
An initial prototype of the MasterBlaster system revealed a problem: given the job of calculating Conway's Game of Life, the device would run for a few hundred cycles then crash. Baker traced this to a clash between an interrupt signal being sent to a halted Blaster to restart it and the O1 clock being dropped. "Move it just a few nanoseconds earlier or a few nanoseconds later," Baker writes of the instruction, "and it's fine. I ended up solving this by using a flipflop to ensure I only interrupt on the low-to-high transition of O1, and never on the high-to-low transition."
The finished device divides a Conway's Game of Life grid into four-row blocks — which gives six of the Blaster boards something to do, though the seventh remains idle. "It would potentially [introduce] more overhead due to the complexity of trying to use him than just to ignore him," Baker explains.
The full project write-up is available on Baker's website, while schematics and source code are available on GitHub under an unspecified license. The Gerber files for producing PCBs, meanwhile, had not been published at the time of writing, with Baker saying they would be available "soon after I fix the next revision."
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.