Book Review: The Pentium Chronicles

The Pentium Chronicles
The People, Passion, and Politics behind Intel's Landmark Chips
by Robert P. Colwell
John Wiley & Sons, 2006.

Bob Colwell was the lead architect of the Intel P6 project, which became the Pentium Pro processor. The marketing name suggests that the P6 was only a small evolutionary improvement to the original Pentium, but the engineering reality is far different. The original Pentium (P5) was designed at Intel’s original facilities in California, by many of the same engineers that had worked on the 80486 and 80386. The P6, by contrast, was designed by a brand new team in Oregon, charged with securing Intel’s dominance of the microprocessor world by bringing the full range of RISC techniques to the x86 platform. The first engineer to join that team was Bob Colwell.

The P6 was ultimately released in 1995 as the Pentium Pro, which then served as the basis for the Pentium II and Pentium III. After its ostensible displacement by the Netburst architecture for the Pentium 4, the power-efficient P6 came back to serve as the basis for the Pentium M mobile processor. Not until the Core microarchitecture was released in 2006 would the P6 truly be supplanted on Intel’s flagship chips. Eleven years is an eternity in the computer industry, carrying Intel from the desktop world into the world of workstations, servers, and mobile.

By any criteria, then, P6 was a significant milestone in Intel history, and in the history of computing. It was a large-scale engineering project, truly breathtaking in scope. With hundreds, even thousands of engineers, how do you allocate your engineering resources so that they’re all pulling their weight and contributing to the project? How do you schedule such a large project, given the uncertain nature of creative work? How do you test the project adequately so that you do not end up with an expensive recall? How do you resolve the design issues that come up in an engineering project, and how do you keep the project moving from phase to phase?

Colwell tackles these issues in The Pentium Chronicles. About half the book is spent generally discussing the management of a large engineering project. Although there are some interesting anecdotes in this first part, much of it will seem like common sense to anyone who’s worked on a large-scale engineering project. The really interesting details are found in the other half of the book, which discusses specific engineering problems, typical workday at Intel, and interactions between coworkers. This is why I wanted to read the book.

You do not need to be a computer architect to appreciate the book, but you may appreciate the book more if you have a basic understanding of computer architecture. I found Colwell’s technical discussions to be written at just about the right level for a software developer who has only taken one introductory course in computer architecture. Topics are discussed in sufficient detail so as not to bore you with vague handwaving, but not so much that you need to be an architecture expert to understand it.

Technological context

When Colwell arrived at Intel in 1990, the company had a dominant position in the desktop processor market. This dominant position had come about fairly recently, for IBM had a policy of dual-sourcing its components, and Intel was forced to license the 8088 and 80286 to its future archrival AMD. In 1985, Intel finally took a stand with the 80386 chip, refusing to license out the chip’s design and counting on the proliferation of PC clones to force IBM’s hand. Having seized control of its destiny, Intel then aggressively marketed the 386, flooding the computer trade press with ads featuring the numbers “286” crossed-out.

Yet at the time, it seemed that the future of computing did not lie with x86. Computer engineers at top research universities had developed a new concept for processors: the Reduced Instruction Set Computer (RISC). By discarding the complex instruction sets of legacy processors, RISC chips could use exotic architectures to execute a sequential list of instructions in parallel, speculatively, and out-of-order – producing results much faster than executing that same list of instructions sequentially and in-order.

RISC chips were thus an ideal fit for high-performance engineering workstations from Sun and Silicon Graphics, which were used for design, computer graphics, and other CPU-intensive tasks. RISC chips had good floating-point performance, crucial for numerical calculations, and it was also possible to use them in a multiprocessor system for even better parallel performance. Computer companies fully expected RISC to move downmarket from workstations to desktop PCs. In 1993, Microsoft released Windows NT, its first operating system that was not tied to Intel’s x86 processors. In 1994, Apple ditched its Motorola heritage and adopted IBM PowerPC RISC chips across its Macintosh lineup.

Many RISC advocates believed that the Intel x86 instruction set was simply too complicated to take advantage of advanced CPU architectures. The x86 instruction set had grown essentially by accretion from 1971, collecting a number of strange and complicated instructions that appeared to be irreconcilable with the RISC concept. Although the Pentium (P5) dipped its toes into the superscalar world with a 5-stage pipeline, this did not begin to approach what was already being done on RISC chips.

The P6 proved all the skeptics wrong. It turned out that many CISC instructions were so strange that they were used very infrequently by software in the real world. Thus, it was possible to optimize a small subset of the CISC instructions – and then to handle the uncommon ones with a slower design. Because of the faster clock speed, the legacy CISC instructions would still execute faster than on previous chips, but only marginally. As software developers tuned their code for speed, the slower instructions would eventually fall into disuse. Using this key insight and after a great deal of engineering work, Intel managed to beat the RISC vendors at their own game. P6 could match the performance of RISC, and still remain fully compatible with consumer Windows as well as Windows NT.

The RISC-based engineering workstations fell before the P6 onslaught. Linux allowed you to run a UNIX environment on commodity x86 hardware. Graphics cards made x86 competitive with Silicon Graphics (SGI), driving the company into bankruptcy. In 1997, AutoCAD gave up on UNIX/RISC and went Windows/x86 only with Release 14. Sun managed to stave off the x86 tide for a while by supplying high-priced servers to dot-coms, but its fat margins disappeared when the dot-com bubble burst.