So, you've heard people say that GameCube's architecture is efficient, and clean, but what does this really mean? Perhaps it's time you found out.
Most people compare specs and screenshots of a system without any real idea of what is actually going on inside the box. In all the spec-mongering that goes on, one thing that is almost always overlooked is the RAM (Random Access Memory).
Why? I don't know. I imagine it's because the only thing anyone can really latch onto is the size of the RAM. And in the case of CPU cache (fancy name for a specialized bit of RAM) the fact that GameCube's processor has twice as much as the Xbox's processor doesn't seem to stick with most people. It's just a tiny processor cache after all, it can't be that important... can it?
Well, as you're about to find out, it can be that important. I'll be referencing this article a few times, and I recommend that you take a look at the whole thing if you have time.
First let's take a look at what kinds and configurations of memory GameCube has.
On the main processor (Gekko) there is a 256k Level 2 cache, and a 64k L1 cache (the Xbox's Pentium III has 128k and 32k of cache by comparison). A CPU's cache serves as a scratch pad or nearby storage of sorts. It's a lot easier for a CPU to get things from its cache than it is to get it from main memory.
The graphics chip (Flipper) has 3 megabytes of 1T-SRAM on the chip for intensive graphics work.
1T-SRAM (one transistor-static RAM): GameCube has two banks of this RAM with 12 MB in each bank for a total of 24 MB. This RAM is one of the reasons GameCube has such high performance at it's low price point of $200 dollars. In comparison, typical SRAM has "four to six" transistors making it very expensive.
DRAM (Dynamic RAM): GameCube has 16 Megs of this RAM. Compared to the 1T-SRAM, this RAM is a slow moving dinosaur, but it's not a problem because it's serving as a cache for data that doesn't need to be moved quickly (sound data for example).
So what does it all mean? Let's begin with a paragraph from How Stuff Works (third paragraph from the top of this page).
"Many high performance CPUs now have the level 2 cache actually built into the CPU chip itself. Therefore, the size of the level 2 cache and whether it is onboard (on the CPU) is a major determining factor in the performance of a CPU."
GameCube's cache is onboard, and it is also very large. Why is this a major factor in CPU performance? Well, the simple explanation is that a processor often has to wait and simply do nothing until it gets the information it needs. Level 2 cache is fast (Level 1 cache is faster) and normal memory is not so fast. While a processor is waiting for memory to return the information it needs, clock cycles (i.e. 482 MHz = 482,000,000 clock cycles) are generally being thrown in the garbage. Remember that GameCube's processor has twice as much Level 1 and Level 2 cache as Xbox's Pentium III processor. The difference in cache size is part of the reason that GameCube's main processor is more powerful than the Xbox's. This extra power can be used for practically anything. Nintendo even released a technical document earlier this year explaining that the processor can assist the graphics chip with custom lighting and geometry effects.
Now let's take a look at the main memory which is composed of 1T-SRAM. Let's see what How Stuff Works has to say about this kind of RAM (fourth paragraph).
"A particular type of RAM, static random access memory (SRAM), is used primarily for cache. ... [SRAM] does not have to be continually refreshed like DRAM. Each cell will maintain its data as long as it has power. Without the need for constant refreshing, SRAM can operate extremely fast."
Notice that this RAM is usually reserved for cache only. This is because it's normally prohibitively expensive. However, 1T-SRAM is inexpensive because there is only one transistor per cell as opposed to the usual 4-6. This difference adds up when you consider that a bank of memory is made of millions of cells. So, how much faster is 1T-SRAM than other types of RAM? Well that depends on what kind of RAM you're talking about. Rambus DRAM (used in the N64 and PS2) has a response time of 50-70 nanoseconds. Microsoft did a better job than Sony. Their 64 MB of DDR RAM responds in about 25-40 nanoseconds. However, GameCube's 1T-SRAM responds in 5-10 nanoseconds! Earlier I showed you that CPU caches help a CPU because it doesn't have to access the slow main memory as often, but in GameCube's case, even if the CPU does access the main memory, it's still very fast.
The true benefit of 1T-SRAM is demonstrated by the GPU (graphics processing unit), Flipper. A GPU cannot draw a texture to a scene unless it is in the texture cache. GameCube has a one megabyte texture cache. This may seem big enough, but more texture cache would be better (although it's much bigger than Xbox's texture cache which is rumored to be less thatn 256k). Fortunately, because of the 1T-SRAM's speed Flipper can begin accessing a new texture from main memory in less than 10 billionths of a second. At 162 MHz, Flipper has a clock period of about 6.2 nanoseconds, thus it wastes one or two clock cycles in this time. In comparison, the XBox's GPU runs at 250 MHz giving it a clock period of 4 nanoseconds, yet its RAM responds in 25 billionths of a second at best. Thus, Xbox will waste 5-6 clock cycles while waiting for a texture. Now, I'm not a computer engineer (yet o_O), so don't take these numbers too seriously, but it should give you some idea of the importance that RAM speed plays in a computer. In fact, the actual number of clock cycles wasted may be worse (especially for XBox).
I'll let Nintendo's Iwata-san finish up for us. In an interview conducted by ASCII's monthly computer-y magazine and translated by Video Senki he was asked:
Q: How is 1T-SRAM better suited for consoles?
Iwata: There's a major difference in random-access time between RDRAM and 1T-SRAM. RDRAM's most distinctive feature is that the first read from memory is very latent, but if you read in a lot of consecutive data at once, the latency gradually shrinks down. The problem is, games access memory very haphazardly, reading little fragments here and there again and again. The merits of RDRAM aren't geared towards this type of usage. A typical memory wait is a few dozen nanoseconds, and on a 480MHz processor or a 160MHz video chip that's a few dozen cycles wasted waiting for memory.
note: RDRAM is Rambus brand DRAM
Q: So memory latency can downgrade console performance.
Iwata: Exactly. CPU pipelines have made huge advances, and chips are clocked to run faster and faster, so now memory is the main factor which dictates how fast the entire machine runs. With 1T-SRAM, though, it uses SRAM so reading and writing data is a lot faster generally. It's about ten times faster than using DRAM, so the processor only has to wait a tenth of the time... or, really, not at all, usually. 1T-SRAM is absolutely perfect for game systems. You could almost say the Gamecube doesn't have a main memory -- it just has a giant level-3 cache.
Check out the rest of the interview for more great information. For example, Iwata explains that the graphic chip can directly access memory itself (to be fair, XBox's GPU can do this as well). In other systems, the graphics chip has to ask the main processor to dive into memory for it making the already slow response time even slower.
In closing, I hope you can see that RAM is a very important part of a console. Hardware developers often implement larger processor caches to prevent the CPU's from wasting precious power while waiting for RAM to respond. In the case of GameCube, not only has the L2 and L1 cache been increased significantly over standard sizes, the main memory that usually prompts this change is very fast as well. This is what is meant when someone says, "GameCube is an efficient console". The processors are driven to the hilt and developers can really harness the power of the system because of the lightning quick memory. Of course, it's the games that matter...