The Pentium: An Architectural History of the World’s Most Famous Desktop Processor (Part I)

John "Hannibal" Stokes kicks off a series on the growth and development of the …

Introduction

I'll never forget when Intel first announced that the name for the successor to the 486 would be "Pentium." I and most of my fellow computer nerds thought the name was silly and not suitably geeky. Everyone knew that computer components were supposed to have names with numbers in them; after all, Star Wars droids, Star Trek ships, software versions, Compuserve e-mail addresses, and every other kind of computer-related thing you could think of had a moniker consisting of some mix of numbers and letters. So what's with a name that vaguely suggests the concept of "fiveness," but would be more appropriate for an element or a compound?

To this day, I still have no idea who or what was responsible for the name "Pentium," but I suppose it no longer matters. A question that's still worth asking, though, is why the Pentium name has stuck around as the brand name for Intel's main processor product line through no less than four major architectural changes. In a nutshell, the answer is that the Pentium brand name, having somehow made the transition from the original Pentium architecture to the radically different Pentium Pro (or P6) architecture, became synonymous with the most successful desktop microprocessor architecture of all time ? in fact, in its heyday "Pentium" became virtually synonymous with "PC."

This series of articles takes a look at the consumer desktop processors that have borne the Pentium name, beginning with the original Pentium up through today's Pentium 4 (Prescott) and Pentium M divisions. The overview is general enough that for the most part it should be accessible to the nonspecialist, and it should give you a sense of the major differences between each generation of Pentiums. In keeping with the Ars tag line, the article does not attempt to tell you everything about every iteration of the Pentium; instead, it covers only what you need to know.

The original Pentium

Pentium Vitals Summary Table

The original Pentium is an extremely modest design by today's standards, and when it was introduced in 1993 it wasn't exactly a blockbuster by the standards of its RISC contemporaries, either. While its superscalar design (Intel's first) certainly improved on the performance of its predecessor, the 486, the main thing that the Pentium had going for it was x86 compatibility. In fact, Intel's decision to make enormous sacrifices of performance, power consumption, and cost for the sake of maintaining the Pentium's backwards compatibility with legacy x86 code was probably the most strategically-important decision that the company has ever made.

The choice to continue along the x86 path inflicted some serious short- and medium-term pain on Intel, and a certain amount of long-term pain on the industry as a whole (how much pain depends on who you talk to), but as we'll see the negative impact of this critical move has gradually lessened over time.

The Pentium's two-issue superscalar architecture was fairly straightforward. It had two five-stage integer pipelines, which Intel designated U and V, and one six-stage floating-point pipeline. The chip's front-end could do dynamic branch prediction, but as we'll learn in a moment most of its front-end resources were spent on maintaining backwards compatibility with the x86 architecture.

Figure 1: Pentium architecture

The Pentium's U and V integer pipes were not fully symmetric. U, as the default pipe, was slightly more capable and contained a shifter, which V lacked. The two pipelines weren't fully independent, either; there was a set of restrictions, which I won't waste anyone's time outlining, that placed limits on which combinations of integer instructions could be issued in parallel. All told, though, the Pentium's two integer pipes provided solid enough integer performance to be competitive, especially for integer-intensive office apps.

Floating-point, however, simply went from awful on the 486 to just mediocre with the Pentium ? an improvement, to be sure, but not enough to make it even remotely competitive with comparable RISC chips on the market at that time. First off, you could only issue both a floating-point and an integer operation simultaneously under extremely restrictive circumstances. This wasn't too bad, because floating-point and integer code are rarely mixed. The killer, though, was the unfortunate design of the x87 stack-based floating-point architecture.

I've covered in detail the problems related to x87 before, so I won't repeat that here. Modern x86 architectures have workarounds, like rename registers and a "free" FXCH instruction, for alleviating ? but not eliminating ? the performance disadvantages of x87's register-starved (only eight architectural registers) and stack-based architecture. The Pentium, however, had none of these, so it suffered mightily compared to its RISC competitors. In the days before rise of PC gaming, though, when most Pentium purchasers just wanted to run DOS spreadsheet and word-processing applications, this didn't really matter too much. It simply kept the Pentium out of the scientific/workstation market, and relegated it to the growing home and business markets.