The PDP-11 was the most successful minicomputer in the world in the 1970’s to 1990’s. It was the first 16-bit machine to be built by Digital Equipment Corporation (DEC), based on a novel architecture invented at Harvard University displacing all those used previously by DEC in their highly popular PDP-8 mini, and its big brothers the PDP-9 and PDP-10, which was a full blown mainframe.
The history is also interesting as there were two competing designs for it, the Harvard architecture, and one designed by Edson De Castro, who had been DEC’s system designer, responsible for all the architectures up to that point. When the president of the company, Ken Olsen, decided to go with the new architecture, De Castro left the company and formed Data General as a competitor, and his design was brought to market as the ‘Nova’.
One of DEC’s Achilles heels was their insistence on keeping a form factor that dated back to the company’s roots of selling logic modules as early as the 1950’s. The basic module was about 3″ in height, but came in doubles, quads and hex heights, increasing the density of components on the board. However, they had to be interconnected by expensive backplanes, which were also a source of eventual failure as contacts became dirty. De Castro decided to go another route and put all the components on a much larger board, thus eliminating the backplane and reducing the cost. If he could not compete with DEC on design technology, he was able to on price alone, and built a successful business around it.
The PDP-11 was also the first machine to use a unified bus architecture, called the UNIBUS, for all memory and peripheral devices. The sheer number of connections required that it be built on a quad height module, with the exception of memory, depending on the type and size, occupied a hex height module. At the end of the UNIBUS was a terminator.
Probably the largest contribution that the 11 series brought to the world was the invention of the C language, today the most popular programming language. It was invented by Kernigan, Ritchie, Thompson and Snyder at Bell Labs in Murray Hill, NJ. At the time the operating system, UNIX, had been developed on the PDP-7, and eventually ported to the PDP-11, but in the native machine assembly language. The invention of C came about from constructing utilities for Unix, which was derived from a stripped-down version of BCPL, a popular portable language of the time. It achieved its machine independence by being compiled to an intermediate language first, then targeted to a specific machine with a second compilation. This technique still prevails today, with languages such as Pascal, Java and Python which compile to a Virtual Machine intermediate code, however the second compilation step is replaced by an implementation of the VM itself.
BCPL was stripped down into ‘B’ was then further refined into the ‘C’ language, by taking advantage of the PDP-11’s capabilities of having a stack and also byte addressability, thus entrenching the machine architecture into the language itself. Today it is very difficult to implement a C compiler on a machine that does not mimic the basic PDP-11 architecture of registers, memory, addressing modes and stacks. The success of the C language enabled the bulk of the UNIX kernel to be recoded in C, leaving only a small amount of assembly code mostly for performance purposes.
The success of the PDP-11 series drove development in two directions: up and down. DEC formed a relationship with Western Digital, a chip maker, and produced a smaller version based on a chip set called the LSI-11. This was a quad height module that was compatible with the rest of the series. At the same time the upward development led to a 32-bit version, called the VAX (Virtual Address Extended). This machine was backward compatible with its predecessor, and extended the instruction set and memory addressing capability beyond the limits of physical memory at the time, thus introducing a ‘virtual’ memory concept, where non-existent memory was stored offline and loaded into ‘real’ memory when it was required.
By the time this was popular in the 1980’s, Intel had already announced a microcontroller called the 8080, which was gaining popularity in embedded systems. To compete with this, DEC shrank the size of their LSI-11 to one-half of its original size, by redesigning the UNIBUS into the Q-BUS, which used multiplexing to decrease the number of signals, a technique that Intel had also used to reduce the number of pins on its CPU chips. The new board was called the LSI-11/2.
Also at this time hobbyists were starting to become interested in home computers, there was a large movement growing around several different processors, from a variety of new companies including Apple, Commodore, Altair and Atari, just to name a few. DEC did not pursue this market, which was a mistake that eventually contributed to their downfall. This was disappointing, as they were already there with the LSI-11 and even with a later LSI PDP-8 built by Intersil, and both were sold in word processing machines called ‘DecMates’, which were not user programmable (an example of one can be seen on the desk of the receptionist in the popular movie ‘GhostBusters’,when they move into their new location). Also in that era there was fierce competition in the office automation with other companies such as AES, MiCom and Wang, all of which were replaced eventually by the IBM PC. Including DEC. And its minicomputers.
I acquired a copy of one of these boards, complete with a backplane and power supply made by a company called ‘Transduction’, which packaged the board with custom memory and peripherals. I also have some memory and a quad serial port board, so I can download it from a laptop, but so far I am lacking a disk controller. If you have one available, I would like to know about it. Maybe I will break down and build one for an IDE drive, as I have a bucketful of those kicking around.
I have captured a schematic and laid out a backplane in KiCAD, and have sourced some compatible connectors for the original board. I also have a template for the double height module if you want to roll your own boards. It may be interesting to write an emulator for it on something like an ARM processor, which could run faster than the original machine.
Now I just need an incentive!