The UNIBUS architecture for DEC’s PDPs and Vaxxen was a stroke of genius. If you wanted more memory in your minicomputer, just add another card. Need a drive? Plug it into the backplane. Of course, with all those weird cards, these old UNIBUS PDPs are hard to keep running. The UniBone is the solution to this problem. It puts Linux on a UNIBUS bridge, allowing this card to serve as a memory emulator, a test console, a disk emulator, or any other hardware you can think of.
The key to this build is the BeagleBone, everyone’s second-favorite single board computer that has one feature the other one doesn’t: PRUs, or a programmable real-time unit, that allows you to blink a lot of pins very, very fast. We’ve seen the BeagleBone be used as Linux in a terminal, as the rest of the computer for an old PDP-10 front panel and as the front end for a PDP-11/03.
In this build, the Beaglebone’s PRU takes care of interfacing to the UNIBUS backplane, sending everything to a device emulator running as an application. The UniBone can be configured as memory or something boring, but one of these can emulate four RL02 drives, giving a PDP-11 an amazing forty megabytes of storage. The real killer app of this implementation is giving these emulated drives a full complement of glowing buttons for load, ready, fault, and write protect, just like the front of a real RL02 drive. This panel is controlled over the I2C bus on the Beaglebone, and it’s a work of art. Of course, emulating the drive means you can’t use it as the world’s largest thumb drive, but that’s a small price to pay for saving these old computers.
Nice touch with the RL02 control panel buttons :-)
This is level 500k wizardry! Respect!!!!
I worked for DEC back in the day, and back when the prop time of signals over a bit of wire wasn’t such a big deal, the asynchronous nature of the Unibus was indeed genius. It was easy to have multiple bus masters, varying response speeds for things, and as long as you didn’t drive a bus already in the middle of a cycle, it was yours to toy with. I reused the…hmm, protcol?… in several later designs with motorola 68k chips and bit-slice as it was so useful even in multi processor setups even if they weren’t all the same kind.
When the first winchester disks came out, an outfit even hired me to help them design controllers for Unibus as it was “mysterious” to their engineers ;~). Nice paycheck, but I moved on. It’s a really simple, elegant design.
“Protocol” is the right word. I found a good description here: http://www.pdp-11.nl/unibus-sys/unibus-intro.html
In my undergrad computer systems architecture class (back in 1979), we used the PDP-11 as a case-study for the class. I really did come to appreciate the UNIBUS design from a theoretical viewpoint (and then, later with much more hands-on with bus grant cards and wire-wrap tools). I have a vivid memory of an example question where we were to describe what the SSYN (Slave Sync) signal on the bus was used for. I knew the answer to that question at the time, not quite a sure these days..
So what does the FAULT button do and how do you avoid the temptation of pressing it at an inappropriate time?
The fault indicator is not a button, it is just an indicator, usually that your removable pack is hosed.
On UniBone I light FAULT if theres a problem with the disk image file.
Aww, so you cannot press it. Another mystery resolved in a non-exciting way.
On the previous model that function was fulfilled by the magic/more magic switch…
http://www.catb.org/jargon/html/magic-story.html
I remember that switch! (I was a student at MIT at the time).
In addition to showing actual hardware faults, it’s a quick check that your drives are cabled to a working controller — it lights up if there’s no signal from the controller in the PDP-11.
Nice job on the PRU to Unibus! Seeing this makes me miss the PDP 11-34 that heated my apartment in my college years. As an itinerant engineer, I could not keep it.
Yesh. Am I the only one to not get nostalgic when I hear PDP-x? I still get an eye twitch thinking about the old PDP-8 that we had to use in our lab. Octal bootstrap entered from the front panel, 8″ floppies with hundreds of K of storage (Wow! :-P), programs on paper tape that we traded on DECUS, 1K of core memory that would have to be scrubbed (literally) to knock off the rust, etc.
Actually thinking about it now those experiences makes me appreciate modern computing MUCH more.
Reading this article makes me think that there is somebody out there who has in fact gotten Linux to run on a dead badger. He or she is probably not posting it for fear of PETA.