OS Case Study: The Xbox 360 Instructor: Rob Nash Readings: See citations in the slides Where We’re At & Where We’re Going Today: A new guest Operating System Performance analysis of Windows on a multi- core architecture Nifty new tools in VS 2010 A Segment on Memory Management Last 20-30 minutes will be dedicated to the lab Xbox V1.0 – A Brief History Xbox = DirectX Box The first Xbox was made with standard PC parts The second follows this tradition, but alters the platform Xbox V2.0 with the PPC(Xenon) First, a Plug… “The Xbox 360 represents a technological breakthrough only possible because of the hard work of hundreds of masterminds around the world who converged to create the ultimate gaming machine. Unreal Engine 3-powered games running at 1280x720 with full screen antialiasing? Not a problem for the Xbox 360. “ (From hardware.teamxbox.com) Dedicated Operating Systems Designed with a specific set of goals DirectX Box OS is a lightweight wrapper for Direct3D calls and basic resource management What are the resources here? The graphics card + shader pipeline DVD optical drive Main memory (shared) 6 hardware-supported threads Optional removable HD Many APIs from Win32 are seen in Xbox code CreateThread, WaitForSingleObject Graphics handled through a variation of Direct3D Not much HAL here – usually direct communication with the graphics hardware Microsoft worked with IBM, ATI, and Silicon Integrated Systems to develop the hardware Architectural Summary 3 Core PowerPC, 3.2 Ghz Each is symmetric (SMT), so 2 HW threads per core 512 MB of GDDR3 RAM (integrated) 700 Mhz DDR bus ATI graphics (roughly ATI radeon X1950) SIMD A SIMD Aside “As the name suggests, SIMD processing increases the work a single instruction performs so that it operates on multiple data items simultaneously. “ I.e. “short vector” processing for graphics (2,3,and 4D) Why 4D? See IBM’s site for more information http://domino.watson.ibm.com/comm/research.nsf/ pages/r.arch.simd.html The Xenon (PowerPC) http://en.wikipedia.org/wiki/Xenon_(processor) The Custom ATI GPU 500 MHz GPU Unified shader architecture 48-way parallel shader pipelines 48 billion shader ops per sec 10MB Dedicated frame buffer Poly Count 500 million triangles per sec 4x MSAA Memory Subsystem Memory Interface bus bandwidth: 22.4GB/s Front-side bus: 21.6GB/s Memory references use inverted page tables Respectable transfer rates, but offers no new solutions to the CPU/Memory speed gap Caches Streaming data Cross-Cutting OS Issues What is the responsibility of this OS? i.e. What is this hardware supposed to accomplish? What languages are supported? What tools are offered? How portable are the applications? Compiler and Language Support C/C++ still the leading language due to speed and legacy Recent support was added to the kernel for managed code (C#) Effectively used in XNA Still some scalability & GC issues Visual Studio offers a tightly integrated IDE A Thin OS 16MB for the entire OS Compare this to even the graphics card frame buffer! 10MB Has access to 32MB for OS operations The Audio Subsystem Multichannel surround sound 48 KHZ 16-bit audio 32-bit processiong More than 256 audio channels Extending the OS… MS uses network and disk updates for its OS The “dashboard” is the user’s interface Updated frequently Custom design for the OS primarily centers around device drivers Imagine G5s Lining the Walls.. “From a hardware point of view the Xbox 360 represents an evolution from the Xbox, but when you see the new console as part of a whole platform, the Xbox 360 represents a true REVOLUTION. “ An odd site at Microsoft, but this was our platform and architecture. Alternate OS – Same Architecture Windows NT (3.51 and 4.0) Mac OS X up to 10.5.8 Solaris 2.5.1 (PowerPC edition) Amiga OS4 Free60 – porting BSD, Linux and other systems to the 360 Embedded & Special Purpose Cisco IOS WII (“Broadway”) Questions?