A transistorized computer, the PDP-1, was first delivered to Bolt, Beranek, and Newman in November, 1960, made by an up-and-coming computer company, the Digital Equipment Corporation. It had an 18-bit word. Another specimen of this model was sold to MIT, and some students there occasionally used it to play Spacewar.
The next model of computer sold by DEC was the PDP-4. It also had an 18 bit word, but it was not compatible with the PDP-1. It had a simpler design; for example, the opcode field in each instruction was five bits long in the PDP-1, but four bits long in the PDP-4, so the latter had about half as many instructions that involved working with data at an address in memory. The instruction set was even more constrained because it included two versions of most binary arithmetic instructions, one that used one's complement arithmetic and one that used two's complement arithmetic.
They then made an even simpler computer, initially envisaged for industrial process control applications, although from the start it was suitable for general-purpose use, the PDP-5. This computer had a word length of only 12 bits. It used memory location 0 to store its program counter.
They later made a large-scale computer, the PDP-6, with a 36-bit word and hardware floating-point, and a new model of computer compatible with the PDP-4, the PDP-7.
And then DEC made history with the PDP-8 computer. An early publicity photo from DEC of that computer is shown at right. In a small configuration, it could sit on a table top, despite still being made from discrete transistors, placed on circuit cards referred to as FLIP CHIP modules. It was similar to the PDP-5, but with some minor incompatibilities; for one thing, it had a real program counter, and so it moved the interrupt save locations one position earlier in memory; also, the PDP-8 allowed some relatively less useful combinations of operate instructions which the PDP-5 did not; however, nearly all the combinations likely to actually be useful were also allowed on the PDP-5. This was not a serious problem, as few PDP-5 computers were sold, and only a limited amount of software was developed for them.
A later photo, in color, but less detailed, is shown at left. Incidentally, both of these photographs are of prototypes, instead of the actual production PDP-8. In the case of the color photograph, the only distinguishing factor is that all the switches at the bottom of the front panel are of white plastic, rather than mostly being in alternating groups of three white switches and three brown switches. In the case of the black-and-white image, this is also true, but in addition, the three lights indicating the data field are below the three lights indicating the instruction field, instead of being to their left. As well, there was a space between the light for the Link (or carry bit) and the twelve lights for the accumulator contents, while on the production units and the later prototype, that light is directly adjacent to the lights for the accumulator, with all thirteen lights having uniform spacing. (On the PDP-5, the light for the Link was instead with a group of other status lights to the right of the lights for the registers.)
No, I am not kidding. Below is a detail from a significantly more recent color photograph which shows how the front panel looked on a production PDP-8. In another part of the photograph from which this detail is taken, not shown, there was also a prototype of the later PDP-8/S model (all of its switches were white, when again, on the production version of the PDP-8/S, the switches alternated in color).
The original PDP-8 sold for $18,000. It was introduced on March 22, 1965. It is considered to have begun the era of minicomputers. There were computers before that weren't giant mainframes that filled whole rooms; the Bendix G-15 filled one corner of a room, being a bit larger than a refrigerator, despite being made with vacuum tubes; the Recomp II was a box that sat on the floor beside a desk, being about as high as the desk and half as wide.
In 1961, the Packard-Bell pb205 computer was not that much bulkier than a PDP-8 would later be. However, to make it affordable, it used magnetostrictive delay lines instead of core as memory; by then, most computers did use core memory, and unwillingness to give up the convenience that offered may have limited its success. Also, the price was $40,000.
The later PDP-8/S, announced on August 23, 1966, set new milestones in the minicomputer era. It sold for under $10,000, and it could be delivered from stock at the factory - and each regional office would even have one in stock as well, for those who were truly in a hurry. The advertisement shown at right advised prospective customers of this new situation. And it was much more compact than the original PDP-8. However, it achieved its low cost by using much slower core memory, and a serial arithmetic unit, so its lesser performance limited its popularity.
On the previous page, where the impact of the integrated circuit on computers was discussed, a number of minicomputers were shown as examples of computers using integrated circuits. The PDP-8 and the PDP-8/S stand alone as minicomputers made with discrete transistors; once integrated circuits became generally available, thanks to monolithic integrated circuits reaching affordable prices, several companies entered the field to compete with DEC, and, of course, DEC also made use of the new technology.
DEC then implemented this architecture with integrated circuits, providing two models, the full-featured PDP-8/I, which we will see in its two radically different enclosure styles further down on this page, and the less-expensive PDP-8/L for which some options were not available for expansion: the PDP-8/L had the same simple box style as the PDP-11/20 and the later PDP-8/e.
A revised integrated-circuit model included some modifications to the optional feature, the Extended Arithmetic Element, which provided hardware multiplication. This was the PDP-8/e. Introduced in the summer of 1970, its price was initially $6,500, and that price was later reduced to $4,995. DEC encouraged its sale to schools and colleges. Before there were microcomputers, a group called the "People's Computer Company" encouraged individuals to attempt to purchase one if they could afford it; they had a magazine that featured game programs written in BASIC.
Before leaving the topic of the PDP-8 minicomputer, I must also mention another computer with a 12-bit word the story of which was deeply intertwined with that of the PDP-8: the LINC.
One year before the PDP-5 computer became available from DEC in 1963, the LINC, a small computer designed for laboratory instrumentation use, was first delivered. This computer was an academic design, but it was constructed from DEC circuit modules, and DEC was closely involved with the project.
A tape drive included in the LINC, the LINCtape, allowed random access to information on the tape. Its design was the basis for the DECtape units available for DEC minicomputers.
Despite the fact that the LINC used one's complement arithmetic, while the PDP-8 used two's complement arithmetic, DEC made two products, the LINC-8 from 1966, and the PDP-12 from 1969, which could run both PDP-8 and LINC programs.
Along with the PDP-12, DEC introduced their Floating Point Processor-12, which could also be attached to several models of PDP-8 computers. This behaved like a separate computer sharing main memory with the host computer, with its own program counter. FPP-12 programs included instructions that were both 12 bits and 24 bits in length, the latter being used for normal memory reference. At the time, a PDP-8 computer with an attached FPP-12 offered a very high level of computational power for its price.
Other companies besides DEC made minicomputers.
The Honeywell 316 computer, first made available in 1969, was a minicomputer that followed in the architectural tradition of the Computer Control Company (3c) DDP-116 from 1964; its predecessor, the DDP-516, may have been too large to have been termed a minicomputer, but it was also constructed from integrated circuits. The Hewlett Packard 2116, from 1967, was the first in a line of minicomputers from that company, but I've just recently learned that it was influenced by a computer made by a company acquired by HP: the DSI 1000; but that computer had a 12-bit word length.
I've actually managed to find a picture of this obscure computer. It had a serial ALU, like the PDP-8/S or the Honeywell 112, but in addition, its memory, containing 2,048 words of 12 bits each, consisted of acoustic delay lines made of glass, rather than being of random-access core memory.
On the left is a picture of the HP 2115 itself; this member of the HP 211x series had a front panel similar to that of the top-of-the-line 2116, but it was a compact unit that did not take up a substantial portion of a rack mount enclosure.
Both the Honeywell 316 and the Hewlett-Packard 2116 had 16 bit words; their basic architecture was similar to that of the PDP-8, the PDP-4, or the PDP-1, in that instructions did calculations between an accumulator and one memory location, the memory location was indicated by a short address which included one bit to indicate whether it referred to a location on the same page of memory as the current instruction or a location on the globally shared page zero of memory, and there was also an indirect bit in instructions to allow these short addresses to point to an address that took up a whole word (whether of 12, 16, or 18 bits) to allow broader access to memory. Some of the larger computers of this group also had an index register, and a bit to indicate if its contents would be added to the address before use.
When DEC decided to make its own minicomputer in the popular 16 bit word length, however, rather than designing something similar to the Honeywell 316 and the Hewlett-Packard 2114 with the PDP-8 and the PDP-4 as sources of inspiration, it did something quite different.
The first PDP-11/20 computers were delivered in the spring of 1970.
This computer's instruction word consisted of a four-bit opcode field, followed by two operand fields, each six bits long, consisting of three bits to indicate an addressing mode, and three bits to indicate a register.
If the addressing mode for either or both operands was indexed addressing, for each operand in that mode, a sixteen-bit address was appended to the instruction. The register field was used to indicate a register to use as an index register for the instruction.
So instructions could be 16, 32, or 48 bits in length, and they could be register-to-register, memory-to-register, register-to-memory, or memory-to-memory.
This was more than a little reminiscent of the IBM System/360 computer.
In one important respect, however, the PDP-11 was very unlike the System/360. The System/360 included instructions that worked with packed decimal numbers, and instructions to convert directly between them and character strings. So decimal and binary numbers in memory were organized the same way strings of digits in text were organized - with the most significant part in the lowest memory address. This is known as the "big-endian" numeric representation.
An optional feature for the Hewlett-Packard 2116 computer and some of its relatives, as one example, gave it instructions to multiply two 16-bit numbers and produce a 32-bit product, and to load and store a 32-bit number in the A and B registers in a single operatiion. These instructions placed the most significant part of the product in the B register, but stored the contents of the A register in the first 16-bit location used, and the contents of the B-register in the second location used.
It was not as fancy as a System/360 mainframe, and so to make things simple for performing a 16-bit addition with two ordinary addition instructions, this design permitted picking up the least significant 16 bits of a 32-bit number from one word, then performing that part of the addition and saving the carry for later use, and then picking up the most significant bits of the 32-bit number from the next word; although, since there was no single instruction for a 32-bit add from memory, but this operation was done by two separate instructions, which could easily have been pointed at the appropriate locations, it seems that there really was no reason to do this that way (unlike the Honeywell 316, which did have an instruction for a 32-bit add from memory, and yet was consistently big-endian, despite having an excuse).
It addressed memory as 16-bit words, not as 8-bit bytes. When character data was packed into 16-bit words, the first of two characters would be in the left, or most significant, half of the word.
So if you put the character string "ABCD" into such a computer, and read it out as a 32-bit integer, that integer would be composed of the ASCII codes for the letters in this order: C, D, A, and B. At the time, this was not much of a concern, but it seemed inelegant.
The PDP-11 addressed memory in 8-bit bytes, as the IBM System/360 did. But it, too, was a small minicomputer intended to be much cheaper than the IBM System/360. So, like the Honeywell 316, when it worked with 32-bit integers, it put the least significant 16-bit word first, and the most significant 16-bit word second.
How to be as beautifully consistent as the System/360, instead of messy like the Honeywell 316?
Well, while much later packed decimal and string hardware became available as options for larger PDP-11 models, it didn't start out with them. So the idea came to them: why not, when packing two characters of text in a 16-bit word, place the first character in the least significant half of the word? And so give that byte the lower address, since here individual bytes were addressable.
So now the ASCII codes for "ABCD" would be found in a 32-bit number in the order D, C, B, and A, which was at least systematic.
The PDP-11 originated the idea of making a computer that was consistently little-endian. A floating-point hardware option made for it, however, put the most significant portions of floating-point numbers in words with lower addresses, thus marring that consistency. But it is still the PDP-11 that inspired many later designs, particularly microprocessors such as the Intel 8008, 8080, 8086, 80386, and so on, the MOS Technology 6502, and the National Semiconductor 16032 to be little-endian. In contrast, the Texas Instruments 9900, as well as the Motorola 6800 and 68000, were big-endian.
One minicomputer that avoided lights and switches on the front panel, instead using Nixie tubes and a keypad, was the Spiras-65 computer, shown at left. It had a 16-bit word length, but offered hardware floating-point.
Later, however, other systems used such a scheme as well. Pictured below is the Interdata 8/16, one of a series of computers with similar front panels, also including the 7/16, 7/32, and 8/32.
The latter two, having a 32-bit architecture, belonged to the "supermini" category.
Note that this front panel indicated the contents of the selected register both with seven-segment LEDs and with LED lights for each individual bit.
These are the computers in which Interdata expanded the instruction set, originally a subset of the System/360 instruction set, to address more memory, but in an original way which differed from that of the System/360.
Another example of a minicomputer with a 32-bit word, but with a conventional front panel, is the Honeywell H632 computer, shown at left.
Its instruction word actually contained the same fields, with the same length, as did the computers in the Xerox Sigma series, but the instruction set was still different, and the fields also were placed in the word in a different order.
Some people view the original PDP-8 as the first minicomputer, as a result of its being small in size and low in price, and thus starting the minicomputer phenomenon. It was indeed very popular. And so...
there were clones of it made. Digital Computer Controls began by making the D-112, a clone of the PDP-8 architecture. The image at left is of the D-112H, a later model with a faster memory.
Later on, before the Intersil 6100 microprocessor came out (which implemented the PDP-8 instruction set) but after LSI became available, Fabri-Tek, a company best known for making core memories for use by computer manufacturers or by computer users who wanted to expand the memories of their computers more economically, made the MP-12, a very compact implementation of the PDP-8 architecture that could fit in a rack-mountable enclosure, pictured at right.
Below is a picture of the PDP-8/I, from an advertisement that ran in late 1967. The PDP-8/I actually became available around May of 1968, but the units in the photograph don't embody any noticeable differences from the production units, unlike some prototypes of the original PDP-8.
On the right of the photograph is an example of the rack mounted form of the PDP-8/I of which a great many were sold, and which is quite familiar.
But whatever posessed DEC to also offer the PDP-8/I in the form factor shown on the left?
One possibility is that the PDP-8/I simply would not fit in a box that looked like a pdp-8e or a PDP-8/L or a PDP-8/S, that simply extended directly behind the front panel. Inside the rack mount enclosure, the internals of the PDP-8/I were about as wide as the front panel was high, but they were considerably higher than the front panel was wide.
Note that the pedestal model on the left has a bit of extra width to the right of the front panel area, sufficient to accomodate this extra volume.
However, around that time, the PDP-8/I wasn't the only minicomputer to come in a pedestal model. The Data General Nova, although it normally came in a box with a black front panel - and which even used ordinary toggle switches - was also shown in its pedestal mount enclosure in many advertisements, in a top view such as is shown at right. On the left, an image from a much later advertisement of theirs showing the much more common ordinary form of their computer is shown.
Edson de Castro previously worked for DEC before starting Data General; he is said to have left due to dissatisfaction over their plans for the PDP-11 minicomputer.
Is the idea of making minicomputers in pedestal enclosures a secret DEC plan that he walked away with? And if so, why wasn't there a lawsuit? Well, the answer is no; this was not DEC's idea. A third company was also making their minicomputers in pedestal enclosures around that time, and I believe it was the first.
At left we see an image of the humble Honeywell 316 minicomputer. It has an ordinary enough front panel, but with only one row of lights; the five push-buttons in the row below the main array of front-panel switches select which register is displayed.
A ruggedized version of the Honeywell 316 minicomputer was used as the Interface Message Processor at several nodes of the ARPAnet, the network of the Advanced Research Projects Agency (ARPA) of the U.S. Department of Defense which was the direct ancestor of the Internet, giving it some historical importance.
This image is from a brochure, as most of their advertisements at the time in which the 316 is pictured tended to use certain fancy zoom effects.
But below is an image from the same brochure of the Honeywell 316 computer in its pedestal form factor.
And why did Honeywell make the 316 in this form? Well, it was to satisfy the requirements of a particular customer.
The image at left is from the 1969 Christmas catalog of Neiman-Marcus. Neiman-Marcus is an American catalog sales company that has as its unique claim to fame that it offers exotic items of merchandise that other catalog sales outlets are far too pedestrian to include among their offerings.
Yes. The Honeywell 316 was also the notorious Neiman-Marcus "Kitchen Computer".
Data General offered the Supernova as well as the Nova in a pedestal enclosure; this may be partly due to the fact that the Supernova came out very shortly after the Nova, and was ver similar in shape and size - so the tooling was there, and it fit. But the PDP-8/I was DEC's first and only minicomputer in a pedestal enclosure, and the Honeywell 316 minicomputer was the same for Honeywell.
Pictured at left is the original PDP-11 computer, which would later be designated as the PDP-11/20 as the line was extended with numerous compatible systems differing in power and speed.
Like many other minicomputers, it is a box with lights and switches. Indeed, it doesn't look much different from the PDP-8/e, or the PDP-8/L which came before it.
Except that since the PDP-8 took brown, the PDP-12 took green and yellow, the PDP-9 took red, and the PDP-15 took blue, the PDP-11 was left with... purple and shocking pink. All the good colors were taken.
Appearances, however, can be deceiving. The PDP-11, in fact, was a major departure for the Digital Equipment Corporation from all the previous computers it had made.
The previous computers from DEC basically all followed in the pattern established by the IBM 704. The word lengths were multiples of six bits. In most cases, the assembler mnemonics were all three letters long (however, the PDP-6 and its compatible successor, the PDP-10, broke from that part of the pattern).
The PDP-11, however, was designed as a modern minicomputer; specifically, it manifested DEC's reaction to the earth-shattering impact of the IBM System/360.
It had a 16-bit word length.
Addresses were byte addresses, not the addresses of 16-bit words, just as they were byte addresses, and not the addresses of 32-bit words, on the IBM System/360.
Basic memory-reference instructions had the form:
(4 bits) Opcode (3 bits) Destination operand mode (3 bits) Destination operand register (3 bits) Source operand mode (3 bits) Source operand register
One possible mode used the register field to indicate an index register, with the address following the instruction in an additional 16-bit word. Therefore, instructions could be 16-bit long register to register instructions, 32-bit long instructions involving one register and one memory location, and 48-bit long memory-to-memory instructions.
This was just like the IBM System/360, except that these operations only operated on bytes or 16-bit words, not floating-point numbers or character strings, and except that the PDP-11 instruction set was highly orthogonal; that is, it was very regular, in that the same addressing modes applied both to the source and the destination.
Incidentally, while registers 0 to 5 were general registers, register 6 was the stack pointer, and register 7 was the program counter. This gave the computer additional addressing modes; for example, using the program counter as an index register would give you program-relative addressing "for free".
Advertising for the MOS Technology 6502 chip, I believe, claimed that their chip was inspired by the PDP-11, and this may also have been true of advertising for the Intel 8080 as well. However, the people at Texas Instruments, when they came out with the TMS9900, presumably decided that discretion was the better part of valor.
Basic memory-reference instructions on the 9900 had the form:
(4 bits) Opcode (2 bits) Destination operand mode (4 bits) Destination operand register (2 bits) Source operand mode (4 bits) Source operand register
All the sixteen registers were general registers, but they were in memory, at a place indicated by a Workspace Pointer register. This allowed a 16-bit chip to be put on a single die at what was an early stage in the development of the microprocessor.
Unlike the PDP-11, the 9900 was big-endian rather than little-endian, but it was far more similar to the PDP-11 than either the 6502 or the 8080.
There was an... unfortunate débâcle... with the floating-point option for the PDP-11, no doubt caused by miscommunication. But the PDP-11 was intended to be a consistent little-endian machine.
That is: since, to do arithmetic on 32-bit values, the computer fetched the least significant part from the first word, and the most significant part later, from the second word, after the carries were ready from working on the least significant parts... it also gave the least significant byte of a 16-bit word the lower address.
So the word at address CA30 would have the byte at address CA31 on the left, and the byte at address CA30 on the right.
This was very confusing to people, as it is the opposite of the way we read and write numbers in relation to text (the letters in text strings were stored sequentially in bytes of increasing addresses).
The PDP-11 was, as far as I know, the first time in the history of the world that a consistent little-endian computer was attempted, and so in my opinion it explains what happened with the floating-point unit: the engineers working on it simply assumed the floating-point unit would divide floating-point numbers into 16-bit words in big-endian fashion, because they simply could not imagine that doing it the other way around could possibly be desired, and were either not aware of the byte order within a word on the PDP-11, or at least did not realize its implications.
Because the PDP-11 was much admired, and it was also the computer from which UNIX came to the wider world (the earliest work on UNIX took place on a PDP-7 computer, it must be noted), it was highly influential, and thus a number of early microprocessors were designed as little-endian. I personally believe that in that one respect, at least, the PDP-11 was a bad influence.
For the most part, of course, big-endian versus little-endian is merely a convention that can be put down to personal taste.
One argument for little-endian bit numbering is that the same bit number stands for the same place value regardless of bus width, and this can be helpful in circuit design (i.e. putting a 12-bit analog-to-digital converter (ADC) on a 16-bit bus)
I finally came up with a real argument for big-endian. If a computer includes a packed decimal data type, then the argument for big-endian is as follows:
Character strings are stored in memory in bytes with successive addresses. The character representation of a number, therefore, is inherently "big-endian".
Conversion from numbers in character form to packed decimal is obviously much simpler if both are stored in memory in the same order. So packed decimal numbers should be big-endian.
Decimal arithmetic can be implemented so that the same ALU handles both decimal arithmetic and binary arithmetic, by changing the threshhold for carries out of each four-bit nybble of the word. This would obviously work best if binary and packed decimal numbers had the same endianness.
And, of course, as originally implemented, the PDP-11 did not have a packed decimal type, unlike the big-endian IBM System/360. Much later in its development, some larger versions of the PDP-11 did have a commercial feature option that included decimal arithmetic. To which being little-endian was not a serious obstacle, of course.
As noted, faster and more powerful versions of the PDP-11 were made, such as the PDP-11/70, pictured at left. Although this was still based on a 16-bit architecture, it had 32-bit internal data paths for higher performance. Later, DEC made the 32-bit VAX, the design of which derived in many ways from the PDP-11, although it was a very different machine, as a successor to the PDP-11. The VAX-11/780 is shown at right: it was the first version of the VAX that was made, and it included the ability to run PDP-11 software as well. With both the PDP-11 and the VAX, DEC shifted emphasis towards them and away from the other minicomputers at the low end, and the DECsystem-20, the successor to the PDP-10, at the high end, to the chagrin of many customers.