|
1 | 1 | # Hardware |
2 | 2 |
|
3 | | -TODO: talk about the gamecube's hardware (cpu, memory, flipper, etc) |
| 3 | +- CPU: IBM PowerPC Gekko |
| 4 | + - Runs at 486 Mhz |
| 5 | + - 32-bit |
| 6 | + - 64-bit Floating Point Unit |
| 7 | + - 32 KiB L1 Instruction Cache |
| 8 | + - 32 KiB L1 Data Cache[^dcache] |
| 9 | + - 256 KiB L2 Unified Cache |
| 10 | + - Single core |
| 11 | + - Pipelined (instructions are divided into multiple stages of execution, allowing multiple |
| 12 | + instructions to be at different stages at the same time) |
| 13 | + - Superscalar (contains multiple execution units which can work on independent instructions at |
| 14 | + the same time) |
| 15 | + - Contains a SIMD extension geared torwards 3D graphics called "Paired Singles" |
| 16 | + |
| 17 | +[^dcache]: The data cache can be split into two 16 KiB sections and one of them can be mapped into |
| 18 | +memory to be used as a "scratchpad" (super fast RAM). |
| 19 | + |
| 20 | +- GPU: ATI Flipper |
| 21 | + - Runs at 162 Mhz |
| 22 | + - While most of it is a GPU, it is actually a complex IC with multiple services embedded into it, |
| 23 | + such as a DSP, I/O controller and more |
| 24 | + |
| 25 | +- Memory: 43 MiB total |
| 26 | + - RAM: 24 MiB (2 x 12 MiB) 1T-SRAM[^1tsram] running at 324 MHz |
| 27 | + - VRAM: 3 MiB 1T-SRAM[^1tsram] memory embedded within Flipper, 2 MiB for framebuffers and 1 MiB |
| 28 | + for textures |
| 29 | + - ARAM: 16 MiB DRAM connected to Flipper, used as Auxiliary RAM, usually for audio |
| 30 | + |
| 31 | +[^1tsram]: A kind of pseudo-static RAM (PSRAM). Internally it's just DRAM, but it's made to behave |
| 32 | +like SRAM from an outside point of view. |
| 33 | + |
| 34 | +- Audio: Macronix DSP |
| 35 | + - Integrated within Flipper |
| 36 | + |
| 37 | +- DVD Reader: |
| 38 | + - Reads miniDVD sized Nintendo optical discs. |
| 39 | + - Discs are 1.46 GiB, read at constant angular velocity (in practice, this means data in the outer |
| 40 | + part of the disc is read faster than data in the inner part) |
| 41 | + |
| 42 | +Here's an overview of the GameCube's motherboard, with the most important components labeled: |
| 43 | + |
| 44 | +<img src="images/gc-motherboard.png" width="80%"> |
| 45 | +<div class="caption"> |
| 46 | +Image by Rodrigo Copetti, |
| 47 | +<a href="resources.html#gamecube-architecture---a-pratical-analysis">Gamecube Architecture - A Pratical Analysis</a> |
| 48 | +</div> |
| 49 | + |
| 50 | +And here's a diagram of the architecture: |
| 51 | + |
| 52 | +<img src="images/arch-diagram.png" width=100%> |
| 53 | +<div class="caption"> |
| 54 | +Image by Rodrigo Copetti, |
| 55 | +<a href="resources.html#gamecube-architecture---a-pratical-analysis">Gamecube Architecture - A Pratical Analysis</a> |
| 56 | +</div> |
| 57 | + |
| 58 | +A note on buses: |
| 59 | +- Northbridge: Connects the CPU to the Flipper. It is 64-bit and runs on the Flipper clock. |
| 60 | +- Southbridge: Connects both 12 MiB 1T-SRAM chips to the Flipper. It is 64-bit and runs at double |
| 61 | + the Flipper clock. |
| 62 | +- Eastbridge: Connects ARAM to the Flipper. It is 8-bit and runs at half the Flipper clock. |
0 commit comments