Advocacy

  Myths
  Press

Dojo (HowTo)

  General
  Hack
  Hardware
  Interface
  Software

Reference

  Standards
  People
  Forensics

Markets

  Web

Museum

  CodeNames
  Easter Eggs
  History
  Innovation
  Sightings

News

  Opinion

Other

  Martial Arts
  ITIL
  Thought



The Next Generation

By:David K. Every
©Copyright 1999


 

G2 - the Sequel

When the 601 PowerPC chip evolved into the second generation of PowerPC's, AIM (Apple-IBM-Motorola) split the design into two separate families. The 603's were geared towards fast, inexpensive, low-power systems that still delivered exceptional performance. The 604's were faster still. For the 604's, the designers were willing to use more power, chip size, and increase cost, to achieve more performance than the 603's.

When AIM went from G1 (601's) to the G2 (603/604's), they got rid of all the legacy instructions that were unneeded. This made the chip smaller and less expensive (more efficient) than the 601's (1).

(1) This "conversion" is an interesting contrast to Intel, which is still dragging around baggage in the newest Pentiums, that can be traced back to the 4004's.

CPU

603
603e
Stretch
603p
Valiant
603et
Goldeneye

Speed

50 - 80 MHz
75/85 Spec92
100-133 MHz
3.9/3.1 Spec95
188 MIPS
2.8/1.3 Byte
166-200 MHz
5.6/4.9 Spec95
283 MIPS
4.9/4.3 Byte
200-300 MHz
7.4/6.1 Spec95
423 MIPS

Size

1.6 million transistors
.5µm process
4 levels, 240 Pins
7.4x11mm = 81mm2
2.6 million transistors
.5µm process
4 levels, 240 Pins
7.5 x 10.5 = 98mm2
2.6 million transistors
.35µm process
5 levels, 240 Pins
81mm2
2.6 million transistors
.29µm process
5 levels, 255 Pins
42mm2

Power

3W @ 80MHz
3.3v
4-5.3W @133MHz
3.3v
4-5W @200MHz
2.5v
4-6W @300MHz
2.5v

Cache

8K i + 8K d
2-way associative
16K i + 16K d
4-way associative
16K i + 16K d
4-way associative
16K i + 16K d
4-way associative

Units

3 i/cycle (2+b)
5 Units
3 i/cycle (2+b)
5 Units
3 i/cycle (2+b)
5 Units
3 i/cycle (2+b)
5 Units

Date

'95
'96
'97
'97

603

AIM added power management functions so this CPU could be used in laptops. In designing the 603 the goal was to create a very efficient chip. For the same costs they could produce a chip running at higher MHz and achieve higher performance, all while requiring less power. Power consumption also adds to the cost of the entire system, because of larger power supplies, fans to deal with more heat, and other design and manufacturing issues. The 603 not only cost less individually, but its power efficiency allows for less expensive computer designs. Getting back to a design that allows users to afford a higher speed chip -- which give users more performance.

This processor became prolific, and had far more variants than any other PowerPC. Not counting all the embedded flavors of this chip.

603e (603+ / Stretch)

There was a bit of a problem with the 603. While it was fast, they cache had shrunk and been split (from a unified model into independent data and instruction caches). This wouldn't have mattered normally, but Apple's 68000 emulator, built into the PPC Macs, was very cache intensive. This meant that while the 603 was plenty fast native, it was far slower than the 601 when running 68000 (emulated) code. This prompted a quick upgrade to the 603+, officially released as the 603e, which had a L1 cache that was at least twice as large -- and cured the emulation performance problems.

The combination of an L1 cache size increase and a few (frequently used) instruction tweaks resulted in a general performance bump of about 30% (at the same clock rate) -- for some things (like the emulator) it was even larger. Technically the 603e's are a little faster than the 601 at the same MHz for INT and about the same or a bit slower for FP, but the 603e's are produced at higher clock rates. In fact that was the main purpose of the redesign was to allow for higher clock rates. So the 603's became available at 160MHz (and beyond)-- while the 601 capped out at 110-120 MHz. The 603e's were much faster overall, and about as fast at the same speed. They were an obvious improvement over the 603's in every way.

603ev, 603p (Valiant)

The 603e got a second bump with a processor called the 603ev (valiant) - but the names were only used inside of development. The manufacturing changes allowed for more speed and lower cost - they did not change the design (just how it was made), so outside of development circles it is known as the 603e (just like the other 603e, only at faster MHz).

603r, 603er (Goldeneye)

The 603e got another manufacturing change (code named GoldenEye), which lead to even faster 603e's -- up to 300MHz. Again, this did not significantly change the design of the chip. So outside of development circles it is still called the 603e.

If you really want to know which of the 603's you have, the easiest way to tell is by speed. The table above, and the speed of your processor should tell you what version of 603 you have. There are slightly different model numbers depending on if they are IBM's or Motorola's part.  

CPU

604
604e
Sirocco
604t
HelmWind
604r
Mach5

Speed

100 - 150 MHz
200/200 Spec92
 
 
180-233 MHz
9.4/8.7 Spec95
418 MIPS
6.1/5.0 Byte
233 - 250 MHz
11.1/7.8 Spec95
 
 
250-350 MHz
14.6/9 Spec95
629 MIPS
 

Size

3.6M transistors
.5µm process
5 levels, 240 Pins
197mm2
5.1M transistors
.35µm process
5 levels, 240 Pins
148mm2 (12.9x11.7)
5.5M transistors
.35µm process
5 levels, 240 Pins
96mm2
5.1M transistors
.25µm process
5 levels, 255 Pins
47mm2

Power

14-17W @133MHz
3.3v
16-18W @233MHz
2.5v
7-13W@233MHz
1.9v
8-14W@300MHz
1.8v

Cache

16K i + 16K d
4-way associative
32K i + 32K d
4-way associative
32K i + 32K d
4-way associative
32K i + 32K d
4-way associative

Units

4 i/cycle
6 Units (2i)
4 i/cycle
7 Units (3i)
4 i/cycle
7 Units (3i)
4 i/cycle
7 Units (3i)

Date

'95
'96
'97
'97

604

The Powerhouse of G2 line! When the second generation of PPC came out, the processors were split into two different families (the 603's and the 604's). The 604's were meant to be the bad boys of the desktop. Power and cost considerations were not as important as pure blinding speed. The 604's started at 100 MHz and went up to 150 MHz (and one model by IBM that went to 180MHz). Of course the family of 604's kept evolving far beyond that (up to 350 MHz).

All PowerPC's use a trick known as Superscalar --which is basically the CPU trying to do multiple instructions at one time. The 601's and 603's can try to execute as many as 3 instructions at one time -- those instructions are broken down into the 5 basic parts of the processor. The 604's try to do as many as 4 instructions at one time - broken down into one of the 6 basic parts of this processor. So the Superscalar capabilities of the 604's are better than that of the 603's or 601's. This is what helps make it faster at the same clock rate -- it tries to do more in each tick of the clock.

Furthermore, the 604's also had tweaks to improve its ability to run inside of its larger L2 cache. A cache is a pool of very high speed memory, so the computer does not have to slow down to access the relatively slow RAM (main) memory. The 604 was also the first mainstream processor to use something called "Dynamic Branch Prediction". This increased the performance even further. (Since processors take big performance penalties if they can't preload the cache, being able to accurately "guess" the most likely used path can help keep the cache "preloaded", and increase processor performance).

The biggest difference is in the floating point unit, which is much faster on a 604 than on the other PowerPC's that came before it. They did this by improving the cache system and pipelining, as well as optimizing the unit itself. In general, because floating point math requires more data than integer math, the FP units can become very dependant on cache and memory performance -- so improvement in one area, can help in others.

The results are a processor that is around 20% faster than the 603 at integer, and roughly 70% faster in floating point (and a processor that is just over twice as fast as the Pentiums of the same time). This is a screaming processor, but the performance difference is much larger in floating point tasks than in normal tasks. Because of this the 604 based machines are sold more to businesses and engineering than in the home -- because business and engineering are more likely to need that type of performance, and their apps are more likely to use floating point math. Some people assume more is always better, but I feel that value is a balance between performance, costs and needs. Certainly the 604's are faster than the 603's, but since most people don't need that performance (as they are not using apps that require it), it is often NOT the better value. That is something that benchmarks don't measure well -- your needs.

System performance can also exaggerate the Processors performance. A 604 is 20% faster at the same clock rate than the 603e's (Integer) -- but the computer that the processor is in may increase that lead. Higher end business and engineering Computers (not just the processors) have other improvements, like better memory access, faster disk drives, special support chips, and so on, that make these systems even faster still. In many cases these system design tweaks can make much more of a difference than the processor itself. So Processor speed is only one variable in total system performance.

604e's (Sirocco)

After a year or so, the 604 also needed an upgrade (for manufacturing) so they could take it to higher speeds (and reduce costs and power consumption). However, when they did this manufacturing upgrade they tweaked the design (core) a little bit as well. This became the 604e. They doubled the size of the internal caches from 16k to 32k, which makes a dramatic difference in many cases. Some other tweaks improved the processor as well, like improvements to misaligned instructions, and splitting the condition and branch executions units, they also improved the extra integer unit.

The end result of the improvements is that the 604e is about 14% faster (integer) and about 24% faster at (floating point) than the 604 at the same clock rate, and it is available in faster flavors. The 604 topped out at about 150 MHz, but the 604e was available up to 233 MHz.

604t (HelmWind)

The 233 and 250MHz 604e's are another technology update, code name HelmWind. This was IBM changing to a different process. This means the 233's and 250's are smaller and use less power (run cooler), and cost less to manufacture than the other 604e's, but no design changes (that I know of). IBM only had this chip out for a few months before the Mach5 version, which was better still, so I'm not completely sure of their reasoning for doing such a short lived process change.

604r (Mach5)

This is the last of the 604e's. This was a die shrink, as well as a change in process, and reduced the size and cost of the 604e, and increased performance dramatically. This chip runs at 250-350 MHz and is a real performer for its time. It took Intel about a year to catch up in MHz (at over twice the power budget), and it will be far longer than that before they catch up in actual performance.


Created: 05/26/97
Revised: 07/02/98
Updated: 11/09/02


Top of page

Top of Section

Home