One of the many advantages of holding stocks for the long term is that it gives us the chance to steadily learn more about each of our companies. Today and for the rest of this week, I'm going to take a closer look at how Intel's (Nasdaq: INTC) microprocessor designs have evolved over the years. At the end of the week, I'm going to compare Intel's next-generation "Merced" designs with Transmeta's new "Crusoe" processors, hopefully without using a single new concept or term that wasn't thoroughly explained earlier in the week. Impossible? We'll see.

Way back, I wrote three columns (4/21/98, 4/22/98, and 4/23/98) about how microchips get made, and how improvements in the manufacturing process can make those chips faster and cheaper. As those first three articles explain, microchips are basically layers of metal and chemicals laid on top of flat silicon crystals -- basically by a big photocopier. Half the reason microprocessors get faster every year is improved manufacturing technology that lays down the same pattern of wires and chemicals in a smaller space, resulting in shorter wires so signals have less distance to travel, and smaller electrical components that take less electricity to fill up. This means each function the chip can perform gets completed faster, so it can do more of them per second. This also means you can fit more chips on each silicon wafer, and if the price of the ingredients stays the same while the number of chips you can make from them goes up, the price of each individual chip goes down.

All together now, one-two-three: "Ooooooh." "Aaaaahhhh." I spent a week on that last time.

This week, I'm going to talk about the design end of things, which is responsible for the other half of the speed improvements. Officially, this series is called, "The evolution of microprocessor optimization strategies." Unofficially, it's called, "A bunch of really clever ways to be lazy so stuff can get done quicker, and how the way they're doing it now is so much better than the way they used to do it."

To see how they used to do it, let's have Sherman set the wayback machine to 1985 to see what state-of-the-art laziness was like back when Intel introduced the 80386 microprocessor ("the 386"). But first, let's talk about what microprocessors actually DO. Which is? Simple: They follow instructions.

The IA32 Instruction Set

Software consists of a bunch of individual instructions, which are the numbers a processor fetches out of the computer's memory that tell it what action to take next. A single instruction could say to add two other numbers from the computer's memory together, or to draw a dot on the screen, or any of several hundred other things the processor has built-in circuitry to do. All of it is controlled by numbers. It's no wonder Intel invented the first microprocessor almost three decades ago for use in a calculator.

The 386 wasn't Intel's first microprocessor. It wasn't even the first one to go into the IBM PC. But the 386 introduced new capabilities as the first 32-bit processor from Intel, meaning it understood how to do math with much bigger numbers, and how to access much more memory than Intel's older 16-bit chips could. Although the 386 could also act like one of the older, less capable chips and run the old programs written for the previous processors, the new capabilities of the 386 were so useful that almost all software was eventually rewritten to use the new 32-bit instructions. (If you wonder why having your software and device drivers be "32-bit" is such a big deal, this is it.)

All modern "Intel-Compatible" PC software is written using the "IA32" (Intel Architecture 32 bit) instruction set introduced with the 386 processor. Newer PC processors (like the 486, Pentium, Pentium Pro/II/III, and clones like AMD's Athlon) still use the old 386's instructions (with a few optional new instructions like the "MMX" Multimedia Extensions sprinkled on top). These newer processors use the IA32 instruction set because that's what all the software they'll be running is written in, and no other processor introduced since has been so inherently cool that everyone was willing to rewrite all their existing software for it. Thus, most new software written today would still run on a 386 processor, albeit very, very slowly. IA32 is the common language of the modern PC.

So, if they're running literally the same programs, why is an 80486 processor faster than an 80386 running at the same clock speed? And why is a Pentium faster than a 486? Well, it's because they changed the design under the hood. The new design still runs the same instructions, but faster. Let's start with how the 386 was clever in the first place.

The 80386 -- Variable Length Instructions

I already said the 386 was Intel's first 32-bit processor, but what does that mean? It means it was the first processor from Intel built to handle data in 4-byte chunks. So what's a byte? A byte is eight bits. What's a bit? A bit is a little electric circuit that can hold two numbers (zero or one), so eight bits can hold 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 or 256 different numbers (0-255). 32 bits acting together can hold a value up to four billion and change. (You don't really have to know that part to understand the rest, I just thought you might be curious.)

But if every single 32-bit instruction was 4 bytes long, programs written for it would be twice as big as the same program written for a 16-bit processor, and that would be four times as big as programs written for an old 8-bit processor. Saving memory was especially important 15 years ago, when most PCs had less than one megabyte of RAM, and a 40 meg hard drive was just enormous. Having this ultra-powerful processor was great, but who could afford enough RAM to fuel it with?

So the engineers got clever. On the 386, the most simple, commonly used instructions (and their data, such as what numbers to add together) take up only one byte of memory each. Other more complicated instructions (and corresponding data) are bigger, taking up two bytes, four bytes, or whatever they need. By using short instructions where possible and longer ones only where necessary, the 386 saved memory by making the programs it ran smaller. (This is actually a trick they used back with their 16-bit processors by using a lot of 8-bit instructions, but applying it to a 32-bit instruction set really allowed it to shine.)

So how does the chip tell how many bytes long its next instruction is? By looking at it to see which one it is. It's a bit like having a bunch of different phone numbers all lumped together into one big long number. If the first digit is a 1, it's a long distance number with an area code (for a total of 11 digits), and if the first digit is anything else it's only a seven digit phone number, unless of course it's an oddball three digit number like 911 and 411. Decoding 386 instructions is even MORE complicated than that, but the principle's the same.

Variable length instructions were a big win in the 386. They made its programs smaller and saved a lot of memory and disk space, which meant the rest of the computer could be cheaper because the processor could do more with less resources. But in the process, it made the 386's circuitry a lot more complicated than it would have been otherwise, and made sure that future chip designs that wanted to run 386 software would have to be at least as complicated as the 386, probably more.

So how did Intel improve upon the 386's design? With the 486, of course. And later, the Pentium. More about those tomorrow.

Hey, just a reminder that Wednesday is the last day to sign up for the Rule Breaker Seminar. Beginning February 28 and through 10 installments over four weeks, David Gardner will offer his latest thoughts on how to uncover the next generation of Rule Breakers. Expect to be educated, amused, and enriched. And, in Foolish fashion, if you're not totally satisfied with the experience, we'll give you your money back -- no questions asked. This is an excellent opportunity for Rule Maker investors to learn about the revolutions that are building new kingdoms in the decade ahead.

- Oak