Xbox One graphics capabilities, odd SoC architecture, and bus bandwidth confirmed by Microsoft
Share This article
Microsoft has finally lifted the curtain on the Xbox One, with a great deal of technical detail on display at the Hot Chips conference. For the first time, we’ve got a view into how the architecture is laid out and what its capabilities are. The chip is built on a 28nm process by TSMC and measures a sizeable (though not enormous) 363mm sq. It’s capable of running at as little as 2.5% of active power thanks to aggressive power gating — leaving the system running won’t destroy your power bill. The chip is built on TSMC’s HPM process, which is designed to offer simultaneous benefits of high performance and low leakage power.
What follows is a quick dive into what we now know.
Inside the SoC
The Xbox One SoC appears to be implemented like an enormous variant of the Llano/Piledriver architecture we described for the PS4. One of our theories was that the chip would use the same “Onion” and “Garlic” buses. That appears to be exactly what Microsoft did.
That slide is from Llano/Piledriver. Microsoft’s slide from the Hot Chips presentation is here:
Here’s the important points, for comparison’s sake. The CPU cache block attaches to the GPU MMU, which drives the entire graphics core and video engine. Of particular interest for our purposes is this bit: “CPU, GPU, special processors, and I/O share memory via host-guest MMUs and synchronized page tables.” If Microsoft is using synchronized page tables, this strongly suggests that the Xbox One supports HSA/hUMA and that we were mistaken in our assertion to the contrary. Mea culpa.
You can see the Onion and Garlic buses represented in both AMD’s diagram and the Microsoft image above. The GPU has a non-cache-coherent bus connection to the DDR3 memory pool and a cache-coherent bus attached to the CPU. Bandwidth to main memory is 68GB/s using 4×64 DDR3 links or 36GB/s if passed through the cache coherent interface. Cache coherency is always slower than non-coherent access, so the discrepancy makes sense.
Let’s talk about the cache blocks at the bottom of the image, as there’s some very curious data here.
The interesting ESRAM cache
First, there’s the fact that while we’ve been calling this a 32MB ESRAM cache, Microsoft is representing it as a series of four 8MB caches. Bandwidth to this cache is apparently 109GB/s “minimum” but up to 204GB/s. The math on this is… odd. It’s not clear if the ESRAM cache is actually a group of 4x8MB caches that can be split into chunks for different purposes or how its purposed. The implication is that the cache is a total of 1024 bits wide, running at the GPU’s clock speed of ~850MHz for 109GB/s in uni-directional mode — which would give us the “minimum” talked about. But that has implications for data storage — filling four blocks of 8MB each isn’t the same as addressing a contiguous block of 32MB. This is still unclear.
The other major mystery of the ESRAM cache is the single arrow running from the CPU cache linkage down to the GPU-ESRAM bus. It’s the only skinny black arrow in the entire presentation and its use is still unclear. It implies that there’s a way for the CPU to snoop the contents of ESRAM, but there’s no mention of why that capability isn’t already provided for on the Onion/Garlic buses and it’s not clear why they’d represent this option with a tiny black arrow rather than a fat bandwidth pipe.
Even with this new information, the use and capabilities of the ESRAM remain mysterious. It’s not clear what Microsoft expects it to be used for — if it’s for caching GPU data, why break it into 8MB chunks, and why does the CPU have a connection to it?
CPU, GPU, what we now know
The GPU and CPU blocks look like we expected and detailed in our Xbox One graphics preview. DirectX 11.1+ is listed as supported and the GPU stats are matched well to the prediction that this was a Bonaire-derived core. Microsoft claims a total of 15 non-CPU processing blocks, which works out to 12 for the GPU, two for audio, and an “other” possibly related to I/O or Kinect. The CPU, as previously reported, is an eight-core Jaguar variant. Microsoft claims the audio engine contains multiple discrete function blocks with their own impressive hardware stats, but a description of audio capability is beyond the scope of this discussion.
The big picture takeaway from this is that the Xbox One probably is HSA capable, and the underlying architecture is very similar to a super-charged APU with much higher internal bandwidth than a normal AMD chip. That’s a non-trivial difference — the 68GB/s of bandwidth devoted to Jaguar in the Xbox One dwarfs the quad-channel DDR3-1600 bandwidth that ships in an Intel X79 motherboard. For all the debates over the Xbox One’s competitive positioning against the PS4, this should be an interesting micro-architecture in its own right. There are still questions regarding the ESRAM cache — breaking it into four 8MB chunks is interesting, but doesn’t tell us much about how those pieces will be used. If the cache really is 1024 bits wide, and the developers can make suitable use of it, then the Xbox One’s performance might surprise us.
This technical unveil confirms much of what we suspected about the chip, but throws us for some curves in other areas. All in all, a great session.