Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the TidBITS Content Network for Apple consultants.

Caching Your Chips

Beginning in TidBITS-334, we published a series of articles explaining the technical guts of a PowerPC-based Mac. We examined differences between PowerPC 601, 603, and 604 processors; Level 1 and Level 2 processor caches, the importance of the system bus, the 68K emulator, and other items.


Since then, the PowerPC world has changed. What is the PowerPC 750, and how is it different than the 603e and 604e chips in other Macs? Why is Apple touting the 750 so heavily? What's a backside cache? This article will answer those questions - and maybe a few more.

PowerPC 750 -- The newest member of the PowerPC processor family is the PowerPC 750, codenamed G3 by Motorola and Arthur by IBM. Like the 601, 603, and 604 series of processors, the PowerPC 750 is a 32-bit RISC processor that's software compatible with the rest of the PowerPC line - meaning that the PowerPC 750 should have virtually flawless compatibility with all PowerPC-based Macintosh software.

The PowerPC 750 provides incremental improvements over previous PowerPC chips. It has larger data and instruction caches (32K each) and is optimized for integer operations, which makes it more spritely at common computing tasks. (The potential downside is that the PowerPC 750 isn't as fast at floating point math as the earlier 604e.) The PowerPC 750 can run from two to eight times faster than a computer's clock, so (in theory) PowerPC processor upgrade cards running as fast as 528 MHz could be designed for Apple's just-introduced G3 Macs.

In addition, branch prediction in the PowerPC 750 has been improved, providing another across-the-board performance increase. In general terms, branch prediction is a low-level technique that processors use when code can do different things depending on the value of particular data. When the processor reaches a point where it must wait to learn a value in order to continue executing code, it makes a reasonable guess at what the value is likely to be and continues processing, instead of waiting simply around for an answer from RAM or an even slower subsystem. When the appropriate data is returned from memory or a subsystem, the processor looks at it and makes a decision. If the processor "predicted" the right path, it's already well on its way to finishing the task (or even done); otherwise, if the prediction was inaccurate, the processor starts again from the decision point, which is what it would have had to do if it hadn't guessed in the first place. Earlier PowerPC processors also do branch prediction; the PowerPC 750 improves on their model by making cached instructions immediately available once a path is resolved, rather than loading the cached instructions separately.

Finally - and perhaps most interestingly - the PowerPC 750 is the first PowerPC chip designed for the Mac OS. This means the chip recognizes and efficiently handles types of byte sequences produced by (reportedly) Apple's and Metrowerks' compilers. All other things being equal (which they aren't; see above) a PowerPC 750 is better at running typical Macintosh software than a PowerPC 604e at the same speed.

Watts the Deal? Most Macs available today use either the 603e or 604e processor. The 604e was meant to be a high-performance chip for workstations, while the 603e was designed as a low-power, higher-speed version of the original PowerPC 601. That's why you've never seen a 604 processor in a PowerBook: they're too hot and they consume too much power.

However, unlike the PowerPC 604 series, the PowerPC 750 offers high performance and low power consumption, using just five watts of power at 250 MHz. In comparison, the PowerPC 604e consumes nearly 20 watts at 200 MHz. Portable machines using the 750 can (in theory) rival the performance of desktop workstations. The PowerPC 750 features four power-saving modes which kick in automatically when functional units of the processor are idle, reducing power consumption and heat dissipation without impacting performance. The PowerPC 750 also includes a thermal assist unit which enables manufacturers to interrupt or slow down processing in response to temperature increases.

Exposing Your Backside -- So what's with the "backside" caches always mentioned in relation to PowerPC 750 systems? Well, a backside cache is just a faster version of a Level 2 cache.

Level 2 caches are comparatively small units of high speed memory (256K to 1 MB) where PowerPC processors stash frequently used instructions and bits of data. Remember that in comparison to almost everything else on a PowerPC-based Macintosh, the processor itself is quite fast. That means it spends much of its time waiting for other systems, like RAM, video, networks, and disk drives. A fast Level 2 cache makes it so the processor can rapidly access frequently needed items and thus spend less time twiddling its thumbs, waiting for slower systems to respond. Increasing the amount of Level 2 cache in a PowerPC-based Mac is one of the cheapest and most effective ways to enhance performance.

The problem with Level 2 caches on earlier PowerPC- based Macs is that the processor accesses the Level 2 cache by crossing the system bus, which acts like a traffic cop for almost every subsystem on the computer. On PCI-based machines, the system bus runs at a comparatively slow 33 to 50 MHz; Apple's new G3 desktop Macs use a 66 MHz system bus.

The PowerPC 750, however, offers a built-in controller for Level 2 cache on a separate, private bus, so the processor need not touch the system bus to use the Level 2 cache. This separate bus can run anywhere from one-third the speed to the full speed of the PowerPC 750, so it's almost always faster than the main system bus. The bus handling the backside cache for Apple's G3 Power Macs runs at half the speed of the PowerPC processor, although some third-party PowerPC 750 processor upgrade cards run at the same clock speed as the PowerPC chip.

Why not make the main system bus faster, rather than having a separate bus for Level 2 cache? In theory, that would be great: we'd all love for our system buses to run at 250 or 300 MHz. In reality, it's much harder and more expensive to engineer a system bus (and its requisite controllers for RAM, disks, networking, and other systems) to run that fast than it is to make a high-speed bus that does just one thing. However, increasing the speed of the system bus always improves performance, and you can expect to see 83 MHz system buses from Apple in future models.

More Info -- Motorola has good technical information about the PowerPC at the first URL below (although, unfortunately, mostly in PDF format). In addition Apple has posted a succinct overview of the PowerPC architecture (including the G4 processors expected in 1999), and IBM also has made some information available.

<http://www.mot.com/SPS/PowerPC/products/ semiconductor/ cpu/750.html>
<http://www.apple.com/powermac/technologies/ ppcroadmap.html>
<http://www.chips.ibm.com/products/ppc/documents /datasheets/ 750/604_750.html>


READERS LIKE YOU! Support TidBITS by becoming a member today!
Check out the perks at <http://tidbits.com/member_benefits.html>
Special thanks to Roger Moffat, jurij mojsiak, Lance Shapiro, and
Peter Murphy for their generous support!