XBOX One – Architecture Overview for Developers
XBOX One, the latest gaming console from Microsoft, represents the bleeding edge of technology built into a gaming console.
Not only does it have great hardware specs, it even has a great platform to run applications. Before we dive into the features of interest for XBOX One developers, here is a quick recap of the top salient features of XBOX One hardware.
- Single System-On-Chip from AMD – 2 quad-core modules totaling 8 x86-64 cores clocked at 1.75 GHz.
- Powerful GPU
- 8 GB of DDR3 RAM, with 3 GB reserved for operating system and the remaining 5 GB available for games and applications.
- Memory subsystem features 32 MB of embedded static RAM (ESRAM), with a bandwidth of 109 GB/s.
- Supports 4K resolution and 7.1 surround sound.
Features of XBOX One
XBOX One is designed for playing online. With the built-in Kinect camera, XBOX One supports Voice and gesture control. It also supports identity and recognition, and the built-in camera supports HD chat over Skype.
XBOX One Operating System
The XBOX One operating system was designed with two themes in mind:
- Support predictability and power
- Support unpredictable future
To support the above scenarios, the OS was architecture as under:
Image Source: Microsoft Build Windows 2014 slides
There are three partitions of the XBOX One OS:
The host OS boots the console and it owns all the resources and memory. It also controls all the traffic and it acts as the security layer. The Host layer is insulated to game developers.
The host OS hosts 2 partitions:
- Shared partition – This runs Windows 8 in a Virtual Machine and runs app. It is also responsible for XBOX shell (UI), system services (networking stack, audio, etc.). It gets 2 CPU cored and 3 GB RAM. This boots up after the Host OS finishes loading.
- Exclusive partition - This is the last one to fire up and is invoked when we play games. If the game needs any resources, this partition requests them to get the performance it needs. For example, for certain DirectX commands, these go directly to the host OS to be services. The exclusive partition also runs Windows 8, albeit heavily trimmed, which is extremely lean and mean. It supports Win32 API as well as WinRT API.
XBOX One has built-in support for cloud storage. This will help game developers to avoid writing code to figure out where to store.
XBOX One supports 32 MB of high speed memory. It is dedicated and very high bandwidth in duplex mode. It is intended for render and depth targets, shadow maps, lightmaps, and other resources that need high-bandwidth.
This works for buffers, texture 1D, 2D and 3D. Also, there are no swap chains in ESRAM.
XBOX One Cloud Computing
One of the upcoming features is the ability to use cloud computing for game processing. This feature (currently in preview stage) runs on Microsoft Azure, and allows games to compute beyond the current hardware currently in the living room. (Titanfall makes extensive use of this feature).
The SharedOS (running on shared partition) is always running, so this results in the following process modes running on the box.
1. SharedOS and normal Exclusive OS – when a game is being played.
2. SharedOS and constrained Exclusive OS – when a game is being played in the background.
3. SharedOS and suspended Exclusive OS – when a game is being suspended.
4. Just SharedOS – when no game is being played (not even in the background).
5. Low power mode .
When a game is constrained, the number of resources available to it is reduced (including cores and GPU).
All of the above features result in providing a great platform for gaming.
In this article, we got an overview of XBOX One architecture. I hope you found this information useful when building your XBOX games.
About the Author
Vipul Patel is a Program Manager currently working at Amazon Corporation. He has formerly worked at Microsoft in the Lync team and in the .NET team (in the Base Class libraries and the Debugging and Profiling team). He can be reached at email@example.com