How The IBM PC Went 8-Bit – Hackaday


If you were around when the IBM PC rolled out, two things probably caught you by surprise. One is that the company that made the Selectric put that ridiculous keyboard on it. The other was that it had an 8-bit CPU onboard.  It was actually even stranger than that. The PC sported an 8088 which was a 16-bit 8086 stripped down to an 8 bit external bus. You have to wonder what caused that, and [Steven Leibson] has a great post that explains what went down all those years ago.
Before the IBM PC, nearly all personal computers were 8-bit and had 16-bit address buses. Although 64K may have seemed enough for anyone, many realized that was going to be a brick wall fairly soon. So the answer was larger address buses and addressing modes.
Intel knew this and was working on the flagship iAPX 432. This was going to represent a radical departure from the 8080-series CPUs designed from the start for high-level languages like Ada. However, the radical design took longer than expected. The project started in 1976 but wouldn’t see the light of day until 1981. It was clear they needed something sooner, so the 8086 — a 16-bit processor clearly derived from the 8080 was born.
There were other choices, too. The Motorola 68000 was a great design, but it was expensive and not widely available when IBM was selecting a processor. TI had the TMS9900 in production, but they had bet on CPU throughput being the key to success and stuck with the same old 16-bit address bus. That processor, too, had a novel way of storing registers in main memory which was great if your CPU was slow, but as CPU speeds outpaced memory speeds, that was a losing design decision.
That still leaves the question: why the 8088 instead of the 8086? Price. IBM had a goal to pay under $5 for a CPU and Intel couldn’t meet that price with the 8086. Apparently, it wasn’t a technical problem but a contractual one. However, folding the chip to an 8-bit external bus allowed for a smaller die, lower cost, and freedom from contractual obligations that plagued the 8086. That last point was important, as the manufacturing cost wasn’t that different, but setting the price was all about paperwork.
There is a lot more to read. At the bottom of the post, you’ll find links to the source oral history transcripts from the Computer History Museum. Fascinating stuff. If you lived though it, you probably didn’t know all these details and if you didn’t, it gives a good flavor of how many choices there were in those days and how many design trades you had to make to get a product into the marketplace.
We borrowed the title graphic from [Steven’s] post and he, in turn, borrowed it from the well-known [Ken Shirriff].
The 8088 is 16bit, same as the 8086. Just because it had an 8bit databus doesn’t change that. The 68008 was the same.
The story I always heard, and I remember when it came along, was that memory was an issue. 8bts required 8 RAM, plus the one for error checking. At the time of the original IBM PC, there wasn’t 4bit wide dynamic ram. 16 bits required 16 RAM. Maybe ok from the factory, but for expansion you needed all those empty IC sockets, and the user had to add in 16 IC increments.
8bits made it easier.
In that case, the 68000 is 32-bit so you’re contradicting yourself
Similar to the 8088, the 68000 has it’s data accessed by half-words so it only needs a 16-bit wide data bus. They also sold an 8-bit bus version (the 68008) but IDK if that was available at the time. That was used in the Sinclair QL IIRC, and doing 4 bus accesses to get one 32-bit word was apparently not great.
Nevermind, I see you were responding to a different part of the comment, but sadly there isn’t an edit or delete button on this website.
Both the 68000 and 68008 are 32-bit, because the architecture is 32-bit even though they had 16-bit and 8-bit data busses respectively. The data bus width doesn’t define the bit-ness of a processor.
I think they’re specifically talking about data bus widths and how they don’t change the architecture. It seems like this whole thread is in violent agreement
I think that having an 8-bit bus made esaier to use peripheral ICs designed on 8 bit bus, for instance the CRTC or the floppy controller. Olivetti M24 that had an 8086 had to use a bus converter circuitry for the expansion bus and some peripherals, and I think they patented it.
I do remember the introduction of the IBM PC as it was reviewed in the UK magazine Personal Computer World, November 1981. The introduction of the 8086 and 8088 is fascinating, but at least one assertion in this article can’t be correct.
The 8088 and the 8086 have basically the same die. If you compare the 8086 at Ken Shirriff’s blog.
And the 8088 at ieee Spectrum:
You can see, once you rotate them, that they must be virtually identical. This makes sense as, in my naive mind, all you need to do to turn an 8086 into an 8088 is start latching instruction fetches in to the 3rd byte of the instruction queue instead of the first (thus achieving a 4-byte queue instead of 6), and treat all word data fetches as unaligned (an 8086 had 16-bit datapaths internally so an unaligned 16-bit access, .e.g read must read from the first address and latch it in the low byte of its MBR and then increment the address and place the byte in the high byte of its MBR).
I’m pretty sure there are almost no other differences. So, the chip isn’t simpler to make and wouldn’t have a smaller die (except for process shrinks).
Exactly. The linked article says pretty much the same thing. The 8086 and the 8088 are very nearly the same chip, with similar die size and complexity. They were different, though, with different performance and difference part numbers. That difference let Intel sell the 8088 at a price lower than the 8086.
It had nothing to do with the hardware.
Intel had contracts to deliver the 8086 to bunches of customers. If they had sold the 8086 to IBM at a lower price they’d have had angry customers demanding lower prices.
Since Intel sold the 8088 to IBM (and there were no other contracts for it,) Intel could set the price for the 8088 wherever they liked without pissing off other customers.
Purely business details.
The 8088 die is no smaller than the 8086. It uses a smaller package, which cut costs there, and could use 8 bit peripherals, which were in plentiful supply, but cost savings in the silicon wafer did not exist.
I take part of the above back. Both used multiplexed address and data lines, so even the package was the same size at 40 pins.
Ok, so I read the linked article and the reasons are actually as follows:
Intel could not sell discounted 8086 CPUs to IBM because of contracts they had with other companies over the price of the chip (they would have to give the same discount to these other customers also).
The 8088 was a byproduct of a die shrink project for the 8086 (there was a smaller 8086 AND the 8088 which were about the same size). The 8088 was however a new part not covered by the existing contracts so could be discounted for IBM only.
As a plus point it played better with cheap 8 bit IO hardware that was available off the shelf.
What do you mean by “that ridiculous keyboard”?
Are you thinking of the PC Jr.’s original keyboard?
Years of using selectrics and IBM terminals we all assumed it would have a keyboard nicer than what it had. The fact that that keyboard has propagated itself doesn’t mean it was all that great. The Jr keyboard was horrifying, true.
And quickly thereafter, users replaced their 8088/8086s by proper NEC V20/30s.
And.. and they lived happily ever after. ?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)
This site uses Akismet to reduce spam. Learn how your comment data is processed.
By using our website and services, you expressly agree to the placement of our performance, functionality and advertising cookies. Learn more