« GameCube Architecture (index)

GameCube Architecture

Chapter 3: CPU


Table of Contents

  1. The origins of PowerPC
    1. The commercial milestone
    2. Reaching the average user
    3. Popularising the PowerPC
  2. Contemporary work
    1. Individual developments
    2. Joining forces again
    3. The band splits for good
  3. The PowerPC Gekko
  4. IBM's enhancements
  5. A step forward or a step backwards?
  6. Clever memory system
  7. Making the most of ARAM

After the loss of SGI's dominance in the graphics market, Nintendo needed new players to partner up with.

A promising candidate seems to be IBM: Apart from their famous work on mainframes, they recently joined forces with Motorola and Apple to create a CPU powerful enough to compete with Intel's ruling in the PC market. The resulting product is a series of processors carrying the name PowerPC, which were selected to power 99% of Apple's Macintoshes, IBM's workstations and some embedded systems.

Image
The PowerPC Gekko chip. This is what the GameCube houses.

To understand what this means for the GameCube, let's first take a look at the chain of innovation that culminated in the PowerPC CPU.

The origins of PowerPC

IBM was one of the three early forces pushing for the emerging RISC CPU design into the mainstream market. During the 80s, while Berkeley was busy developing the 'RISC CPU' and Stanford academics just founded MIPS, IBM had already produced the 801 and ROMP CPUs. These were ground-breaking yet commercially-unsuccessful silicon implementing a set of guidelines later known as the 'RISC model' .

The commercial milestone

Entering the 90s, IBM tried again with a new series of UNIX workstations called 'IBM RS/6000', and within it, a new in-house RISC CPU: POWER1. With a focus on instruction-level parallelism, the latter featured attractive advancements such as :

Nevertheless, the POWER1 CPU was a large and expensive package comprised of multiple chips. So, for their follow-up venture, IBM shrank down its design to fit in a single chip. While still POWER-compliant, this came at the cost of housing a 32-bit FPU, a von Neumann cache architecture and reverting to in-order execution. The new chip was called RISC Single Chip (or 'RSC') and shipped with the low-end line of their RS/6000 workstations.

Reaching the average user

Image
IBM's POWER development board (1992), used by Apple.

In the midsts of these developments, IBM also agreed to join forces with Apple and Motorola to tackle the Intel-Microsoft monopoly in the desktop market, forming the AIM alliance. Thus, a new project was conceived for a competitive CPU in the low-end arena. This would be made of intellectual property from the three companies, including:

Keith Diefendorff, a member of the Motorola 88110 team, was recruited as the lead architect and, in 1993, the project culminated in the following:

Popularising the PowerPC

To make sure the new line would be both technically competitive and commercially viable, the PowerPC 601 attempted to bring certain advancements of instruction parallelism to the masses, to name a few :

For the end user, this new CPU would now be found in IBM's low-end RS/6000 series and in Apple's new line of Macintosh computers called 'Power Macintosh'.

Contemporary work

The PowerPC 601 was meant to kickstart momentum for the PowerPC line, but the following years saw turbulent changes in the microarchitecture.

Individual developments

Once the 601 shipped, Motorola and IBM decided to separately work on the follow-up generation. This would be a pure PowerPC implementation (removing traces of the POWER ISA) materialising as two separate product lines :

Even though the 603 should've shined for its power efficiently, existing business applications ended up eclipsing its novelties. For instance, Apple's software architecture was still relying on emulating 68000 instructions, which bottlenecked the 603's small cache size.

As a side note, IBM also developed the PowerPC 4xx series, conceived as a microcontroller solution instead of a desktop CPU . They bundle small cache and skip sophisticated modules such as the MMU and FPU. However, their variants were offered as a customisable package to tailor it to the manufacturer's needs. That being said, while the 4xx is not of particular interest for this article, a famous competitor did adopt it for secondary tasks.

Joining forces again

Ultimately, the second generation of desktop PowerPC chips was deemed either too expensive or downright uncompetitive against Intel. Thus, Apple got IBM and Motorola to collaborate again in a new unified generation that brought out the best of both worlds. The energy-efficient 603 was chosen as the foundation for the new design. To improve upon this basis, certain decisions were taken:

This became the 750 line, popularised by Apple as the PowerPC G3. From then on, IBM and Motorola continued working on variants and enhancements of the 750. These focused on greater clock speeds, larger cache and smaller fabrication process.

Interestingly, it's always the most energy-efficient CPUs that manage to weather development turmoil, as others (MIPS, Intel and ARM) will later corroborate.

The band splits for good

As time passed, the three companies became increasingly distant. Two years after the PowerPC G3 was unveiled, Motorola delivered by itself a new line called the 7400 (which Apple named the G4). This featured a 64-bit FPU, a faster bus architecture called 'MPX' and a set of SIMD instructions called 'Altivec'. Despite its popularity in the desktop market (thanks to Apple), IBM only devoted attention to its exclusive POWER CPU line.

Years later, in 2003, Motorola finally gave up on the CPU business and divested its semiconductor division, leading to the incorporation of 'Freescale'. The latter wasn't interested in working on PowerPC chips either, and so the AIM alliance came to an end. Be as it may, Apple still needed new CPUs, so IBM continued the line of succession by grabbing its POWER4 design and scaling it down, leading to the PowerPC 970 CPU (also called the 'G5').

And this is where the history section ends. Thus, it's time to take a look at the GameCube's unique CPU (which sits between the 750/G3 and the 7400/G4). Now, I'll be focusing on the GameCube hardware from now on, but if this detour got your attention, you may want to read the PlayStation 3, Xbox 360 and Wii U studies next.

The PowerPC Gekko

Back to the year 2001, Nintendo required something powerful but cheap. So, to comply with those red lines, IBM grabbed one of its past designs, an enhanced G3 called the PowerPC 750CXe (found on the late iMac G3, known as the Early-Summer 2001), and beefed it up with capabilities that would please game developers. The result was the PowerPC Gekko and runs at 486 MHz.

Image
Construction of Gekko.

Let's find out what makes Gekko so special, and to do that we need to first look at the offerings of the 750CXe. Now, having gone through the history of PowerPC, you may find that a lot this information overlaps with previous designs (that's the point of these studies!). That being said, the 750CXe offers :

Additionally, this CPU also includes dedicated units to speed up specific computations :

And, of course, some cache is also included to speed up memory bandwidth:

IBM's enhancements

While the previous lists of features are very appreciated (compared to previous generations), this CPU still falls behind others on gaming performance (let's not forget that this is still a general-purpose CPU, good at spreadsheets but average at physics). To compensate, IBM added the following tweaks that will constitute Gekko :

Apart from handling the game logic (physics, collisions, etc), these enhancements will allow the CPU to implement parts of the graphics pipeline (geometry transformations, lighting, etc) with acceptable performance. This is very important since the GPU can only accelerate a limited set of operations, so the end result is not conditioned by the GPU's limitations.

A step forward or a step backwards?

On your Nintendo 64 article, you explained that the system has a 64-bit CPU, but the GameCube one is 32-bit. Did Nintendo downgrade their console?

Indeed Gekko implements a 32-bit PowerPC specification, while the MIPS R4300i can switch between 32-bit and 64-bit modes. To answer whether this is an improvement or not, you have to ask yourself: Why would you need '64-bitness'?

As you can see, the GameCube already enjoys the advantages of 64-bit systems without being called a '64-bit console'. This is why you and I can't summarise two complex machines by their 'number of bits'.

Clever memory system

During the design of the next-gen architecture, Nintendo's architects performed a post-mortem analysis of their previous design and discovered that using a Unified Memory architecture together with some high-latency components (RDRAM) resulted in one of the biggest causes of bottlenecks (almost 50% of CPU cycles were wasted while idling) . Moreover, the inclusion of multiple independent units contributed to a concerning competition for the memory bus.

For that reason the GameCube's architects came up with a new memory system strictly based on providing dedicated memory space and using low-latency chips. With the new design, GPU and CPU will no longer compete for the same RAM (causing fill-rate issues) since the GPU will now have its own internal and amazingly fast memory. On the other side, the GPU will still be in charge of arbitrating access to I/O too.

Image
Memory layout of this system.

The result was a system organised with two main buses:

Additionally, this design contains an additional (yet unusual) bus where more memory can be found:

Overall, this means that while ARAM provides a considerable amount of RAM, it will be limited to less critical tasks, like acting as an audio buffer or being used by certain accessories (explained in the I/O section).

Making the most of ARAM

So far, we've seen that, on paper, the memory capabilities are undoubtedly superior to its predecessor, but there's still room for improvement. For instance, Nintendo could've fitted more hardware to incorporate ARAM into the CPU's memory map.

On a related note, let's revisit the MMU used in Gekko. The CPU, with its 32-bit address bus, can access up to 4 GB of memory, but the system houses nowhere near that quantity. So, to prevent exposing unpopulated (and unpredictable) memory addresses, 'virtual memory' addressing is activated by default to mask physical addresses with a safer, easily-cacheable and continuous 'virtual' address map .

To make this work, Gekko (and other PowerPC architectures) translate virtual addresses to physical ones with the following process:

  1. Perform Block Address Translation (BAT): There are eight pairs of programmable registers (four for data and four for instructions) where each pair map a range of virtual address to a continuous range of physical addresses. The MMU attempts to find the physical address if it's found within those ranges.
  2. If BAT didn't work, read the Page Table: The MMU also stores a table that catalogues the physical location of pages (block of virtual addresses).
    • The MMU can take time to read a page table, so a Translation look-aside buffer (TLB) is included to cache recent reads.
    • Other architectures such as x86 or MIPS provide paging as well, though not all of them will offer a TLB.
  3. Finally, if the requested virtual address can't still be translated, then the MMU triggers a 'page fault' exception in the CPU and lets the operating system decide what to do next.

So what use does this have for developers? Well, it turns out Nintendo released some libraries that extend main RAM using ARAM with the help of paging. To recap, ARAM is not addressable, but the CPU may call DMA to fetch and store data from there. Thus, the CPU can move pages out of main RAM to make room for other resources and temporarily store them in ARAM. Afterwards, whenever a page fault occurs, the OS contains routines to look for the missing pages in ARAM and restore them to their original location in main RAM.

In conclusion, with some clever tricks, these general-purpose capabilities enabled GameCube games to enjoy more memory than technically allowed, thereby reaching higher levels of quality. However, it's important to bear in mind that such tricks may come with some performance penalties (especially if they're taken for granted).


Previous: 2. A quick introduction

Next: 4. Graphics


Rodrigo Copetti © 2026 RSS Feed

Switch to modern edition

Home · Writings · Support · About author · About website