Great Moments in Microprocessor History
An anonymous reader writes "The microprocessor changed the world: how did we get from the first 4-bit models in the 1970s to today's 64-bit multicore monsters? This article covers the history of the micro from the vacuum tube to today's dual-core multithreaded madnes."
Wow, it is pretty amazing how far we have come in CPU technologies. My introduction to computing came in the form of the MOS 6502 chip in my Apple II plus computer with a whopping 64k of RAM and a disk drive ! and a handset modem which I then used to talk to people all over the world. Pretty cool stuff for a twelve year old back in 1982. For my uses at the time however, that CPU speed was plenty and I was not processor bound in any of the tasks I handed it. Later uses however, started pushing the limits of CPU's and my computational (and financial) expenditures increased significantly. I realized that for our uses, the MIPS folks had the right concept going and I ended up buying SGI machines for our work in molecular modeling and statistics at the time, but those systems were soooo expensive. For comparison however, I have kept a standard dataset for years that has become my benchmark of sorts and have run calculations on it with a number of systems I've owned. On my old Indigo and Mac Quadra 840av's and Pentium I systems, this dataset would run for about three days before finishing. Just for kicks, I ran the same calculation on my new G5 and I was astounded to see it finish almost as quickly as I could press the "run" button. The G5 from IBM is truly amazing and I can get this performance in a dual G5 system all for a cost 1/8th of my SGI Octane.
Visit Jonesblog and say hello.
My question is this: Are all of these "Pent"iums still of the "586" generation? If not, which of these were in the same generation? What is the "X86" generation equivilent of the most-recent Pentium IV that we are currently in? Anyone know?
I am guessing lightning rods have been around since people first created metal rods and stood out in fields during lightning storms. The hard part isn't making a lightning rod, but staying alive long enough to claim to be the inventor.
I Am My Own Worst Enemy
It appears the server was alive for mere moments before being slashdotted to death. With only 9 comments the site is completely dead.
In the end they will lay their freedom at our feet and say to us, Make us your slaves, but feed us. - Fyodor Dostoyevsky
The Pentium MMX, II and III were just beefed up iterations of the original Pentium (increased bus and clock speeds, smaller and smaller dye sizes, more extensions such as SSE, MMX, etc).
Not true. The jump to the PII was a big one. The Pentium had dual integer execution units, and it was a big deal to manually reorder code in order to keep both units working. The PII was where cycle counting lost all meaning, as it included out of order execution, a huge bank of internal behind-the-scenes registers, register renaming--the works. That was the first of the super-complex modern processors in the x86 family tree.
I'd like to know why you consider the P4 to be the most innovative of the Pentium line since the original?
That article has a great deal of IBM bias, as one might expect. Great Microprocessors of the Past and Present is a much more detailed, comprehensive and informative look at microprocessor history. It deals with some very strange and innovative designs that the IBM article doesn't mention.
Stick Men
There's an excellent book on the subject, small and very readable, called The Chip: How Two Americans Invented the Microchip and Launched a Revolution . I read this last year and found it to be a good story.
quiquid id est, timeo puellas et oscula dantes.
What a great company. Too bad they were late with both the R6000 and the R4000 processors, back-to-back. That pretty much killed them, or drove them into SGI's arms (same thing). Don't know much about v2, but v1 was a damn fine place to work. The buildings on Arques in Sunnyvale also went on to house Crescendo (remember CDDI?), Cisco's first acquisition, and Mosaic/Netscape in it's early time.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
The jump from the 6502 to the 68000 (a scant four years apart), was a huge one. Ditto for many of the x86 generations. But performance has leveled off quite obviously in the last few years. The difference between a 3GHz P4 and a 3.6GHz P4 is fairly small, as both tend to be memory bound for real-world applications. And at the same time the power consumption for the 3.6GHz has increased more than the performance.
So what's going to be the next big leap for desktops and notebooks? 64-bit processors are here, yes, but all else remaining the same these run *slower* than 32-bit processors, because the cache effects of 64-bit pointers more than offsets the ability to do 64-bit integer math (note that the x86 FPU has been 80-bit since its inception). Dual core is nice...but it's only a win for multithreaded applications or when you're running multiple applications at the same time. Even then, the effect of multiple threads sharing a cache can result in lower performance than many people expect.
Surely someone is going to set the PC world on its ear with a massive performance leap that doesn't require 1000 watt power supplies?
TI didn't make the TRS80, of course. That was Radio Shack.
Slashdot's name? When my compiler sees
Prior to the release of that processor, all Intel compatible CPU's essentially licensed Intel microcode.
The Nx586 was a risc processor that translated Intel instructions into its native format. To this day, this is how all subsequent processors have functioned, including Intel processors starting with the Pentium II. The success of NexGen also spelled the death of the PowerPC breaking into the mainstream. There was no need to limit yourself to CISC's limitations when you could virtualize the whole architecture inside a RISC processor.
In 1994, everyone complained about Intel's oppressive licensing and told us RISC processors would take over the world. Then came NexGen and they were wrong. What's funny is IBM manufactured most of the Nx586 processors...
I don't read or respond to AC posts
My first experience with a "real" CPU was a RCA 1802-based Elf computer I built (from a kit) when I was 13. From the article:
The slow clock speed (and static CMOS design) were actually blessings in disguise. With a simple bit of hardware logic, you could stop the clock, and single-step the CPU at the clock-cycle level. In fact, this was the standard way to debug code on the Elf -- it had only a 16-key hex keyboard and two-digit hex display. Those were the days...
8086 was a fairly average 16-bit chip (with the 8088 variant which had an 8-bit external bus being more popular). Also available as a separate chip was the 8087 maths coprocessor (FPU).
80186 was basically an 8086 with a few other bits on die. Quite popular as a microcontroller in the telecommunications arena.
(80)286 was a beefed up 8086 with some added bonuses. I believe support for paged and segmented memory addressing was added in this generation. The coolest thing about the 286 was the chip form factor (like a gold square, with the `pins' along the side). 80287 also avaliable.
386 was the first IA32 chip. Added some horrible extensions to an already fairly horrible architecture. 387 also available. Not to worry though, everyone will be moving to i860 soon...
486 added an FPU on die. Later the 486SX was introduced, without the FPU and an external FPU module was available (which was really just a 486DX which disabled the original CPU when you plugged it in). `Clock doubling' (running the CPU at twice and later three times the clock speed of the mother board was introduced in this generation. Early 486 chips, while slower on paper than the i860, performed significantly faster since it was very hard to generate optimal code for the i860 (remind anyone of the Itanium?) i860s found a home as graphics coprocessors in several workstations, including the high end NeXT Cubes (and if you think current Macs are expensive, this beast - from which modern Macs are a direct descendent - cost around $10,000).
The Pentium was a pipelined superscalar chip. Out-of-order execution was the buzzword of the day. Out-of-order had another meaning for initial versions of this chip - in 1994 a bug in the FPU caused Intel to recall the lot of them in exchange for free replacements at a cost of around half a billion dollars.
The Pentium Pro was a workstation chip. It had support for 2- and 4- way SMP configurations and had the level 2 cache in the same package (but not the same die). The Pentium Pro also added a hack which allowed the OS to address up to 64GB of RAM. Applications can also make use of more than 4GB of address space, but they must use special instructions to do this (standard pointers are still 32-bit). The Pentium Pro was targeted at users of Windows NT, since it did not handle 16-bit code as well as the Pentium (it was faster for pure 32-bit stuff though).
The Pentium MMX was a slightly faster (around 10%) version of the original Pentium, which included a primitive vector unit. MMX was almost as hideous to code for as the rest of IA32, and lacked a number of important features.
The Pentium II was a Pentium Pro with MMX. It came in a slot form-factor, unlike the Pentium Pro (which was a two-die chip). This made it cheaper to produce, since the cache and the core could be tested independently before assembling into a unit. By this stage, no one really cared about performance of 16-bit code.
The Pentium III (or !!! as Intel liked to write it) was a variant of the Pentium II with a newer vector unit (KNI, later known as SSE). These chips `made the Internet faster' and were (allegedly) made by men in psychedelic bunny suits[1]. Later generations moved the level 2 cache on die and came in a socket form factor.
The Pentium IV was a typical Intel project - hugely complicated and full of features that sounded so good on paper. The pipeline is so long that it can have around 200 instructions in-flight at once. This makes a branch prediction failure incredibly expensive. There are some novel features (as well as yet another attempt to produce a useful vector unit), such as the trace cache, which stores decoded micro-ops in non-branching blocks. The long pipeline meant that they could be clocked at insane speeds, unfortunately this did not convey a corresponding performance boost (as AMD and IBM have show).
The Pentium M is a descendent of the Pentium III with a faster external bus and significantly better power management. Clock for clock (and watt for watt) it performs significantly better than the Pentium IV.
[1] A bunny suit is the name given to the whole-body covering worn in clean rooms.
I am TheRaven on Soylent News
I can't believe they didnt mention the evolution of the 68000. It didnt just end at the 68060 (which isnt mentioned either) but evolved into the ColdFire chips and the DragonBall cpu's that were used in Palm PDA's until fairly recently.
-- Senior Software Engineer, Attorney appearance services, locallawyerapp.com.
The 80286 was the first Intel CPU that had support for multitasking. By this, I mean that the processor would prevent programs from overwriting arbritrary memory locations. Plus several useful instructions to help this. And it could access more than 1 Mbyte of RAM (technically the 8086 and 8088 could do this, but only with cludges like EMS memory, which swapped memory into the accessible 1 Mbyte a page at a time, under direct control of the applications).
386 had math emulation.
This is a bit of an understatement, because the 80386 was the first 32-bit CPU from Intel. Also, it had support for running multiple "virtual" 8086 machines - fantastic stuff!
In my mind, the 80386 is when the PC became a "real" computer.
486 was better than 386 ;)
True. The biggest innovation of the 80486, IMHO, was that it included the equivalent of the earlier math co-processors (which cost hundreds of dollars) on the CPU. All of the tricks I'd learned to do integer math became obsolete overnight - and I was glad!
To be fair, the 80486 moved a lot of instructions that had been performed in microcode into hard-wired circuits. The majority of commonly-used instructions were now executed in one CPU cycle. In fact, with the 80486 a lot of earlier specialised instructions became obsolete.
Pentium is basically the 586.
The Pentium is, indeed, the 80586, but Intel was reacting to competitors making cheaper chips that implemented the same instruction set and selling them with the same name. The courts ruled that Intel couldn't trademark a number (486), so all future CPU's have names. Branding!
The Pentium didn't add that much in terms of features, but it did support a kind of super-scalar processing (meaning running more than 1 instruction per CPU cycle), in a very cumbersome and strange way, with one "pipeline" that could execute a limited subset of instructions in parallel with the other, main pipeline. This is the beginning of the end for hand-crafted assembly code as a way of life.
Pentium Pro isn't supposed to be good at multimedia, it's supposed to be a math processor, chunking out numbers like crazy, a lot like todays xeons..
The Pentium Pro was the bomb! Your summary does a huge disservice to this CPU.
The Pentium Pro was, in my mind, a work of genius. The folks at Intel did not ignore the results that the RISC folk were using. Instead they hit upon a way to get (most of) the advantages of RISC and maintain compatibility with the CISC instruction set. They broke the Intel instructions up into RISC-like instructions, and those were executed RISC-style by the processor, and then "retired" one CISC instruction at a time.
As others have mentioned, this allowed out-of-order instructions, multiple execution cores, and all of the goodness that we still rely on today.
Pentium II was the big one. MMX multimedia functions, out of order processing etc ..
The Pentium II was just a Pentium Pro targeted at desktops rather than at servers. A good thing, mind you.
Of course, MMX was added, but in the first MMX instructions only had a very limited set of applications, and MMX had already been present on some of the earlier Pentium models.
Pentium III/IV are leaps and bounds of improvements and innovations from the it's predesessors.
The Pentium III is not a big improvement over the Pentium II, or indeed over the Pentium Pro! The MMX (or rather SSE) was improved again, and gave compiler writers better control over cache behaviour, which did result in impressive gains in certain applications.
The Pentium 4 is the first truly different architecture since the Pentium Pro - and Intel appears to be moving away from it towards the Pentium M-style chips (which are basically the Pentium Pro again, with emphasis on low power). The idea with the Pentium 4 was to have a very, very long pipeline to allow the processor to scale up to ridiculous speeds. It worked! But as Mac fanatics will be happy to tell you, processor performance is more than just high megahertz.
Later Pentium 4's had hyper-threading, which is cool, and indeed a bit of a departure, and will be present on all desktops soon enough. Yay!
These things aren't at all inevitable.
First, the 20 year delay between Lilienfeld and the realization of the transistor should be evidence alone of the fact that something more than "the inevitable" was going on with the transistor. Additional evidence is that the inventors of the transistor did their work against orders from Bell Labs management to stop work. they actually had to hide their work on a roller-cart which they hid in a closet until their management was gone when they would roll it out and continue their work. It could easily have been 20 more years -- or more -- if they hadn't risked their jobs to do what Bell Labs management tried to stop them from doing.
Secondly, all you need to do to observer that "ripe" technological advances are not inevitable is just look at what NASA has done to kill the spirit of enterprise in launch vehicles for the last 30 years or more. You can kill almost any technology by simply creating a government bureaucracy chartered to develop it which continues to get money to "solve" the problem so long as the problem remains unsolved. They'll have billions per year to make sure it never happens -- and when it comes to lowering the price per lb to low earth orbit they have succeeded in that task beyond anyone's wildest expectations.
Seastead this.
Then there are the uncounted numbers of anonymous microcontrollers in just about everything you can think of. How many are in your PC, let alone your entire house and car?
Mea navis aericumbens anguillis abundat
Let's face it. CPU's have gotten so fast that they are essentially outrunning almost every other component on the computer itself.
Fortunately, things are getting better. I can cite the following improvements in the last 4-5 years:
1. Faster memory access. System RAM memory speeds has gone from running at 33/66 MHz for many years to today's DDR400 (PC3200) DDR-SDRAM, with even faster speeds coming over the next 18 months or so.
2. Faster graphics cards. With AGP 8x and now PCI Express, graphics cards can process and display highly-complex 3-D graphics that would have been the realm of extremely expensive dedicated workstations just a few years ago.
3. Faster disk access. Thanks to ATA-100/133 IDE, Serial ATA (and soon Serial ATA-II) IDE, and UltraSCSI 160/320 interfaces, not to mention hard drives with 7200 to 10,000 RPM spin speeds and 8-16 MB of hard drive memory cache, you can access data on a hard drive very quickly nowadays. Even optical drives have become quite fast thanks to these interfaces.
4. Better motherboard designs. Motherboard interconnects have gotten quite a bit faster, thanks to much-improved chipset designs and the use of HyperTransport and similar technologies.
5. Faster external data access. 100 mbps 100Base-T Ethernet connections are common on motherboards now, and some motherboards now even have 1000Base-T Gigabit Ethernet connections. External devices that used to connect to the computer through slow serial ports now connect through vastly faster USB and IEEE-1394 ports, fast enough that USB 2.0 and IEEE-1394 connections can support the downloading of video data from digital camcorders!
The 386 finally added the ability for the control program to switch back to real mode. With that it carried a bug that allowed the user to set a segment limit of 4GB while in protected mode and then quickly switch back to real mode, giving the user access to a 4GB address space in real mode (where only a 1MB address space should be available). Many games and demos circa 1992-1993 exploited this "Unreal-mode" feature like Ultima 7 and Zone 66, and were known to be the nastiest, most incompatible programs ever to exist, never getting along with any memory manager or multitasking operating system. If only game programmers had used something sane like DPMI back then!
Yes, it added an 8KB on-chip instruction cache - to the dismay of many legacy programs which used precisely timed tight loops for program timing.LRC, the best-read libertarian site on the web