CONSOLE ARCHITECTURE
Introduction Part 1 What is a console? Console components Differences between consoles and PCs Benefits of console development The development environment Console game design
What is a Console? Consoles are dedicated game machines Nintendo Wii Nintendo GameCube (NGC) Nintendo64 (N64) Sony Playstation 3 (PS3) Sony Playstation 2 (PS2) Sony Playstation (PSX) Microsoft Xbox 360 Microsoft Xbox Sega Dreamcast (DC) Nintendo DS (DS)
Console Evolution Super Nintendo (1991) 3.58 MHz 65816 (16 bit 6502) 128 Kb RAM Cartridge-based storage (~4 MB / cart) Sony Playstation (1995) 33 MHz MIPS R3000 derivative 2 MB RAM CD-based storage (~650 MB / disc) Sony Playstation 2 (2000) 300 MHz MIPS R5000 derivative 32 MB RAM DVD-based storage (~4 GB / disc) Sony Playstation 3 (2005) 3.2 GHz Power-PC 512 MB Total RAM Blu-Ray (~50GB)
Console Hardware Trends Memory wall The "memory wall" is the growing disparity of speed between CPU and memory outside the CPU chip. An important reason for this disparity is the limited communication bandwidth beyond chip boundaries. From 1986 to 2000, CPU speed improved at an annual rate of 55% while memory speed only improved at 10%. This is getting worse, currently potentially hundreds of cycles for cache miss Need to learn how to write cache efficient code Frequency wall CPUs aren't getting faster as quickly as they used to Power wall Moore's Law is starting to run into the laws of Thermodynamics
Power Density Wall
Multi-core, parallel architectures Solution to many hardware challenges Increased performance without increased frequency Simpler CPU architecture No Out of Order Execution Makes the software much harder though Need to learn how to write parallel code Simpler CPU architecture makes memory wall more important
Business Trends The rise of the little guy (Wii) Much broader market appeal Rise and Fall of accessories Guitar, DJ turntable, Skateboard, etc. Publishers vs. Gamestop Used game sales are a problem for publishers Games are adding features to delay resale Online, Downloadable Content
Differences Over PC Games Output to TV rather than monitor Lower resolution HD helps, but it's still lower resolution Poor colour reproduction (NTSC) HD helps a lot here Limited permanent storage Low capacity memory cards No virtual memory No complex saved games Hard drives available on some Next-Gen consoles (PS3, 360) No keyboard, mouse Makes control systems for FPS, RTS games difficult Custom Controllers Wiimote, steering wheel, guitar
Consoles Small memory Slow CPU But has lots of hardware to help out Little, or no operating system This helps the speed deficit somewhat DIY memory management lots of hardware level programming interrupt handlers DMA task scheduling assembly
Benefits Fixed target Consoles are dedicated to games Bigger market Consoles are cheaper More people have them PC hardware market is bigger, but a lot of that is for businesses More people buy games More $$$ for developers
The Development Environment Programs are written on a host machine PC Mac Linux Games are compiled on the host with a cross-compiler, and downloaded to development system through a network connection
The Development Environment The game runs on the development system. Debugging is done remotely Can be across regular network connection (360, PS3) Or custom connection (GameCube, earlier consoles) Rather than burning DVDs, a CD/DVD emulator is used to allow games to test streaming systems, etc. Gamecube has reusable cartridges that emulate discs Xbox has connection to host PC
The Development Environment There is no operating system, but there are usually some libraries to help you get started. Lots of variation between consoles PS3 had very sketchy early libraries and tools XBox has great library support Documentation is usually weak, especially when a console is young. PS2 documentation was poorly translated from Japanese, and near useless Xbox & Wii documentation is pretty good
Game Design Console architecture can have a large effect on game design: limited memory: reduce size of world or stream from DVD limited network support this is changing low resolution large saved games are not usually possible Controllers affect types of input Console gamers represent a different market Console games are played in a different environment Living room, TV, stereo Party gaming
A Third Generation 3D Console XBox 360 released in 2005 3.2 GHz Xenon (PowerPC) CPU 3 symmetrical 2 way multithreaded cores 512 MB unified memory DVD-ROM ATI Custom Graphics Chip
CPU IBM Xenon processor PowerPC instruction set 165 million transistors Three symmetrical cores, two way SMT-capable,clocked at 3.2 GHz SIMD: VMX128 with 2 (128 128 bit) register files for each core. 1 MB L2 cache (lockable by the GPU) running at half-speed (1.6 GHz) with a 256-bit bus 51.2 gigabytes per second of L2 memory bandwidth (256 bit 1600 MHz) 21.6 GB/s Front-Side Bus Dot product performance: 9.6 billion per second 115.2 GFLOPS theoretical peak performance Restricted to In-order code execution
Graphics ATI Xenos 500 MHz GPU, 232 million transistors 10 MB daughter embedded DRAM framebuffer 48-way parallel floating-point dynamically-scheduled shader pipelines Unified shading architecture (each pipeline is capable of running either pixel or vertex shaders) Maximum vertex count: 1.6 billion vertices per second Maximum polygon count: 500 million triangles per second Maximum shader operations: 96 billion per second Maximum Dot product operations: 24 billion per second Support for a superset of DirectX 9.0c API and Shader Model 3.0+
Development Environment Visual Studio Graphics uses Direct3D API Documentation, tools and libraries are pretty good Microsoft is a software company
Another Third Gen 3D Console PlayStation 3 (PS3) Announced in 2005 Released in 2007 3.2 GHz Cell (Power PC) 1 PPE (main CPU) 8 SPE (vector processors) 256MB Main Memory 256MB VRAM BluRay Drive NVidia Graphics Chip (RSX)
CPU IBM Cell Processor PPE PowerPC instruction set Single core, two way SMT-capable, clocked at 3.2 GHz SIMD: VMX/AltiVec 512 KB L2 cache Restricted to In-order code execution SPE (x8) Vector processor Programmable in C 128bit SIMD registers 256KB embedded RAM (Local Store) Memory Flow Controller (DMA)
Graphics NVidia RSX 'Reality Synthesizer' 550 MHz GPU, 300+ million transistors Based on NV47 Chip (Nvidia GeForce 7800 Architecture) Multi-way programmable parallel floating-point shader pipelines Independent pixel/vertex shader architecture 24 parallel pixel-shader ALU pipes 8 parallel vertex pipelines Maximum texel fillrate: 13.2 GigaTexels per second Maximum Dot product operations: 51 billion per second Supports PSGL (OpenGL ES)
In Closing Consoles present many interesting challenges. The fixed platform that consoles offer is both advantageous and limiting.