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?