Clustered Pi Picos made to run original Transputer code
Parallel retrocomputing project of the week, er, month, no, year
The astonishing PicoPuter emulation project can run a transputer emulator on multiple Raspberry Pi Picos, and clustering them using the transputer's native inter-processor link protocol.
The Raspberry Pi Pico is a surprisingly capable device at $4 apiece, and one of its less well-known features is its eight programmable IO state-machines on board. As programmer-archaeologist Andrew Menadue wrote in a blog post:
While I was looking at the RP2040, it suddenly occurred to me that the four links on a transputer could be implemented using the eight PIO state machines on an RP2040. Each state machine handles data in one direction, leaving the processor(s) free for other work. What other work? Well, how about running an emulator of a transputer on the core?
So he went and made it happen. One of each Pico's 133MHz ARM Cortex M0+ cores runs a modified version of the T4 transputer emulator, and the PIO state machines run the
os-link inter-processor communications channels, separately and without burdening the CPU.
These inter-chip channels were one of the key features of the revolutionary transputer processors, as The Reg mentioned when it profiled the device's lead architect a decade ago. Transputers were used to build multiprocessor computers where each microprocessor had its own local memory, along with fast links to its four neighboring chips, which was suited for parallel processing. It was nifty for the 1980s.
- Fedora backs down on removing BIOS support… for now
- Did you know Twitter has an open-source arm? This is what it's been up to
- Unity and Trinity: New releases for forks of abandoned Linux desktops
- Mozilla browser Firefox hits the big 100
Menadue has also made a series of seven videos showing the process of building the hardware and getting the software running. He has also shared the source code on GitHub. He's even designed and built a RAM upgrade board for the Pi Pico, which piggybacks onto one end of the tiny PCB and adds another 8MB of RAM. Since existing expansions for bigger Pis are already called "hats," he's dubbed this expansion… Underpants.
One of many remarkable elements of his setup is that he used original Inmos IMSC011 silicon to connect the transputer links to a PC via an Arduino, and he's also demonstrated his interface talking equally well to original transputer hardware.
Although the transputers themselves were not a commercial success, a lot of software and hardware came out of the project, including the now open-source HeliOS parallel operating system and the Occam parallel programming language. In the 1980s, transputers were used to add extra grunt to both Atari and Amiga hardware. More recently, the processors' design inspired the XMos XCore processor, used among other things as a coprocessor in a modern Amiga. ®
The term "programmer-archaeologist" is taken from Vernor Vinge's classic novel A Deepness in the Sky. The definition, a few paragraphs long, is on Goodreads here and is well worth reading – as is the novel.