the red hill cpu guide

in the beginning

Practically no-one uses or even remembers the really old chips now, but these were vitally important in their day. In fact, they still are, because all modern CPUs are based in some way or another on these early designs. This is particularly so for PC users, because the X86 family of chips like the Pentium 4 and the Athlon 64 are essentially updated versions of the original 8080 and 8086. Even non-PC designs like the Amiga and the Power Mac were influenced by their own history — but PCs are absolutely steeped in history, dominated by it.

Generally regarded as the very first single-chip microprocessor, the 4004 was designed almost by accident. Intel was contracted to create a custom chip for a desktop calculator — the firm had done three or four of those already — but decided it could do the job more efficiently with a flexible, multi-purpose chip, which could be re-used again and again in different applications. This was the very modest start of a truly great idea. It didn't power any computers as we understand the term today — the microcomputer was not invented yet — just simpler machines.

The tiny 0.74MHz 4-bit 4004 had a short and unspectacular market life, and very little power even by the standards of the day, but it was the forerunner of the more successful 8-bit 8008 and then the first really successful CPU, the Intel 8080.

The classic Intel CPU. This was the heart of most of the world's first microcomputers, including the Altair 8800. (Pictured in the 8085 entry below.) All modern PCs use descendants of the 8080. Indeed, an Athlon 64 or a Core i7 can still run something very like 8080 code!

Despite its huge influence and massive sales, the 8080 was soon overshadowed in the marketplace by the more advanced Zilog Z-80, which built on the 8080's success and owed a lot to it. Introduced at 2MHz, as time went by the 8080 was pushed up to just over 3MHz.

(If you want to nit-pick, a dwindling, almost extinct, handful of relatively modern machines used CPUs that were quite unrelated to the 8080: mostly the Motorola 68000 family, the DEC Alpha, or the PowerPC. Examples included the Commodore Amiga, Acorn Archemedes, and older models of the Apple Mac. Strictly speaking, they were indeed microcomputers, but they were not PCs. By definition, a PC uses an X86 CPU.)

A development of the Motorola 6800 by ex-Motorola engineers, the 6502 and its numerous variants powered many of the high-profile early micros, including the Commodore Pet, Apple II, and Commodore 64, not to mention the hordes of marginally compatible Apple clones.

Programmers used to get fanatical about the 6502 because of its simple, elegant architecture. (Old-timers still do.) Even in those days, the computer world was divided into two camps: Z-80 programmers were not good at seeing the subtle power of the 6502 design and felt cramped by it, 6502 fans found the large Z-80 instruction set chaotic and intimidating. Note that the 6502 was very clock-efficient (it was more nearly scalar) and despite clocking only half as fast as a Z-80 or an 8085 it was round about as powerful. It remained in large-scale production for many years; only the Z-80 and the 8088 have been more successful.

Zilog was formed by a group of ex-Intel engineers who set out to improve on the 8080 but still maintain compatibility with it. The Z-80 sold in huge quantities, and was at the heart of most of the microcomputers of the CPM era. Apple and Commodore used the 6502, but nearly all the other successful manufacturers used a Z-80. Programmers loved it for its power and simplicity and Zilog pushed it to faster and faster clock speeds over the years. It was more than a match for the clumsy first-generation 16-bit CPUs like the Intel 8086 and can still do useful work today. Incredibly, versions of the
40 -year-old 8-bit Z-80 are still in production!

Zilog's follow-up designs, however, were over-ambitious, and the 16 and 32-bit Z-800 and Z-8000 were very late to market and suffered from teething troubles. The Z-80, by the way, introduced the idea of SIMD (Single Instruction, Multiple Data) with its block move and copy instructions. These were considered very powerful at the time: real mainframe stuff. Modern SSE instructions work on highly advanced versions of this same basic principle.

The illustration at right is an 8080-powered Altair 8800, generally accepted as the very first microcomputer. The switches were the only means of programming it, and different patterns on the LEDs the only output.

The 8085, Intel's replacement for the 8080, had considerable success, but always played second-fiddle to the Z-80. Much improved over the 8080, it powered a fair number of industry-standard CPM machines, especially in the United States.

It was handicapped by an inability to run Z-80 extensions, and by Intel's haphazard programming tools — 8080/8085 assembler mnemonics were very poorly thought out. Most programmers much preferred the dauntingly complex but very logical Z-80. (In those days, all the best programs were hand-coded in assembler for speed and efficiency, and the design of the CPU made a big difference to the way you wrote the program. Today, nearly everything is written in C or C++, which is easier for the programmer but results in vastly bigger and significantly slower software. It is, however, a relatively easy job to port software from one CPU type to another — from X86 to Power PC for example — a task that was near-impossible with assembler code.

In practice, the 8085's main significance was that it kept Intel going until they got their incredibly successful 16-bit 8086 onto the market.

The chip that powered the original IBM PC, and thousands of other models too. All later X86 designs (286, 386, 486, Pentium, and so on) have built on this foundation.

There were four main 16-bit CPUs at this time. The Texas Instruments TI 9900 was an early leader but badly marketed. The Zilog Z-800 was powerful but late and buggy. The expensive Motorola 68000 was generally regarded as the best choice with its combination of simplicity and power. But the 8086 family ended up as easily the most successful of them all.

The main reasons were its compatibility with the 8080/8085 and Z-80 family, its relatively low price, and above all, the 8088 variant. The 8088 was a hybrid 8/16-bit design: 16-bit internally, with 8-bit I/O. This meant that system designers could use cheap and readily available 8-bit support chips, and reduce the cost of the system by hundreds of dollars. Performance wasn't outstanding, and the lean, mean Z-80 and 8085 machines were often superior, but the 8088 sold well.

It got its biggest break when a small sub-division of IBM couldn't afford to pay cash for their first choice CPU, the Motorola 68000, and used the 8088 for the IBM PC. This made the 8088 respectable and the rest, as they say, was history. It sold in countless millions and, as an all time success story, is second only to the Z-80. (Those who claim the reverse order are showing their youth.)

Unfortunately, Intel made some very bad design decisions with this chip. First, it used a segmented architecture (see 286 below). Secondly, for some incomprehensible reason, Intel chose to organise its memory access in such a way that IBM felt constrained to limit the theoretical maximum RAM of the original PC to 640k. Even in those early days, these were short-sighted decisions, and we have all suffered from them ever since. If you've ever had an 'out of memory' error message, then you have met this design fault yourself. DOS, Windows, and even Windows 98 all have base-memory problems which are directly caused by the 640k barrier. Only true 32-bit operating systems like Linux, OS/2 and Windows 2000 escape this problem, and for these we had to wait seven more years for the 386.

The 68000 powered almost everything that didn't have an 8086 or 8088: Apple Lisa, Apple Mac, Commodore Amiga, Atari ST, and many others. The simple, practical design lasted well, and was updated with the 68020, 68030 and 68040. Programmers loved the 68000 (no-one ever loved an 8088) and 68000 code tends to be small, fast and efficient. Notice how 68000 powered Amigas and Macs used to do things in 1MB or 2MB of RAM that you needed 16MB and a 486 to do on a PC.

Like the Z-80 and the 386, the 68000 lives on as an embedded processor for industrial automation work.

It's not meaningful to give transistor count and clock speed figures here, as there have been numerous variations and developments within the 68000 family — much like the X86 family with its 8086, 286, 386 and so on. The last of them were roughly equivalent to the Pentium. By that time, Apple had switched to the Power PC, and most of the other 68000-based manufacturers had disappeared.

NEC was another of the licensed second-source producers of the 8086 and 8088, but was not content to simply reproduce: NEC wanted to improve the breed. (And, of course, improve its margins.) We only ever saw two or three V20s in the flesh, but they seemed to go remarkably well.

The V20 is of interest because it was a faster 8088 (and the V30 the 8086) — the first clone CPU, if you like — and Intel's lawyers were not impressed about it. As they were to do with every X86 chip until just recently, the litigious Intel tried to take it off the market. Eventually, NEC was given the go-ahead by the courts, but by then the 286 was the thing to have and it was too late for either NEC or the computer buying public to benefit much.

There is no need these days to win patent disputes — in fact winning doesn't really matter — it's only necessary to tie your competitor up with delaying actions for a year or two and their market opportunity is gone forever. The pace of change in the computer industry is such that our glacial Nineteenth Century legal systems are quite unable to arrive at just solutions while it matters, and the bigger, smarter operators are well aware of this. The alert reader will have already thought of several more recent and better publicised examples. These form a recurrent theme which runs right through the development of the modern computer.

A long-forgotten variant of the 8086 that brought on-board some of the functions of the support chipset. It was not really designed to produce a performance increase, just to reduce cost, size, and power consumption. Not many of these sold as they weren't quite 8086 compatible and the 286 came out soon after. There was an 80188 too. Last time we looked, the licensed AMD version was still made for the embedded industrial processor market — you'll never see one in a PC, but it's nice to think of what's essentially an 8088 at 40MHz!

The original 286 (more properly, 80286) was a vast power increase over the 8086/8088, particularly the 8/16-bit hybrid 8088. The 8MHz ones were very rare, as by the time most people could afford to buy 286s they were buying 12 and 16MHz ones.

Like the 8086, the 286 had a segmented architecture — you couldn't just nominate a place in memory you wanted to go to, you had to separately set a segment register and an offset, so there were many ways to get to the same place. This created significant extra work and complication for programmers and had a lot to do with the unpopularity of the world's most popular CPU family. Bill Gates is most famous for saying it, but nearly all programmers called the 286 'brain damaged'.

Gates was actually referring to another less than ideal aspect of the 286 when he said this, but the point remains: we all run variations of the X86 family because they run all our old programs, but even Intel would be hard-pressed to describe the X86 architecture as efficient. The 286 was particularly ugly because although it could access more than 1MB of RAM, to do so it had to switch into 'protected mode', and it can't get back into the normal 'real mode' without a complete reset. In short, it was a terrible kludge.

Oddly enough, the 286 was actually designed some time after the much more powerful 386. While the 386 design was clearly superior, it was just too large and complex and expensive to manufacture at first, and the 286 came into being as a temporary measure — a temporary measure that sold in millions and was in volume production for over ten years!

→ Illustration: a very rare 286 indeed. We can't remember ever seeing a 286-8, though we may well have done at some time, but we are quite certain we have never seen a 6MHz 286 like the one at right, nor indeed heard of one outside a one-word mention in Adrian Offerman's Chiplist. In fact, the picture raises more questions than it answers: first, it is the only 286 we can remember seeing in PGA (Pin Grid Array) packaging, though this was to become common with 386 parts and all but universal through the 486 and Pentium eras. Second, if it ever found its way into an AT style system, what speed did the I/O bus run at? (And thanks for sending the picture, Alexei.)

Motherboards for the higher-clocked 286 variants, unlike 8086 and 8088 main boards, had a decoupled expansion bus: the ISA cards, in other words, ran at 8MHz, no matter what speed the CPU itself ran at. This was the first very small step towards the modern multi-clock arrangement, where each of the major sub-systems — mainboard, CPU, RAM, and the various expansion buses — run at their best possible speed and none of them is unnecessarily held back by the larger, slower components they are attached to. It simply wasn't possible to run an ISA bus at the same speeds that the 286 was to become capable of later on: by putting it on a separate clock it became practical to take the CPU and main board to the limit of their potential. Later still, the 486DX/2 would extend this idea to separating the CPU and mainboard clocks, but this was still ten years away.

Quite a common part, the first of the 286 chips to appear in reasonable volume. Perhaps if we had sampled them while they were still on the leading edge we would have seen things differently, but by comparison to the much smaller and more practical 286-12 mainboards that came along a little later, they were very slow. A good XT was not disgraced by one. (The only one of us who was out of short pants in 1985 was still a happy Z-80 user long after the 286 was old news.)

→ Illustration: as you can see from the unidentified but typical motherboard at left, most main boards that shipped while the 286-10 was selling were complex, cumbersome things with a very high chip count, and few of them survived in working order for very long. At the top left is the RAM: 36 individual 64kb and 256kb chips, making up 640KB in total (counting parity); the two white-labelled chips at centre-left are the Award BIOS; the mid-sized square chip is the CPU itself, and the big square VLSI chips in sockets make up the mainboard chipset — no less than five of them! At far right is the Phoenix keyboard controller.