Performance - An Update

The Chipworks PS4 teardown last week told us a lot about what’s happened between the Xbox One and PlayStation 4 in terms of hardware. It turns out that Microsoft’s silicon budget was actually a little more than Sony’s, at least for the main APU. The Xbox One APU is a 363mm^2 die, compared to 348mm^2 for the PS4’s APU. Both use a similar 8-core Jaguar CPU (2 x quad-core islands), but they feature different implementations of AMD’s Graphics Core Next GPUs. Microsoft elected to implement 12 compute units, two geometry engines and 16 ROPs, while Sony went for 18 CUs, two geometry engines and 32 ROPs. How did Sony manage to fit in more compute and ROP partitions into a smaller die area? By not including any eSRAM on-die.

While both APUs implement a 256-bit wide memory interface, Sony chose to use GDDR5 memory running at a 5.5GHz data rate. Microsoft stuck to more conventionally available DDR3 memory running at less than half the speed (2133MHz data rate). In order to make up for the bandwidth deficit, Microsoft included 32MB of eSRAM on its APU in order to alleviate some of the GPU bandwidth needs. The eSRAM is accessible in 8MB chunks, with a total of 204GB/s of bandwidth offered (102GB/s in each direction) to the memory. The eSRAM is designed for GPU access only, CPU access requires a copy to main memory.

Unlike Intel’s Crystalwell, the eSRAM isn’t a cache - instead it’s mapped to a specific address range in memory. And unlike the embedded DRAM in the Xbox 360, the eSRAM in the One can hold more than just a render target or Z-buffer. Virtually any type of GPU accessible surface/buffer type can now be stored in eSRAM (e.g. z-buffer, G-buffer, stencil buffers, shadow buffer, etc…). Developers could also choose to store things like important textures in this eSRAM as well, there’s nothing that states it needs to be one of these buffers just anything the developer finds important. It’s also possible for a single surface to be split between main memory and eSRAM.

Obviously sticking important buffers and other frequently used data here can definitely reduce demands on the memory interface, which should help Microsoft get by with only having ~68GB/s of system memory bandwidth. Microsoft has claimed publicly that actual bandwidth to the eSRAM is somewhere in the 140 - 150GB/s range, which is likely equal to the effective memory bandwidth (after overhead/efficiency losses) to the PS4’s GDDR5 memory interface. The difference being that you only get that bandwidth to your most frequently used data on the Xbox One. It’s still not clear to me what effective memory bandwidth looks like on the Xbox One, I suspect it’s still a bit lower than on the PS4, but after talking with Ryan Smith (AT’s Senior GPU Editor) I’m now wondering if memory bandwidth isn’t really the issue here.

Microsoft Xbox One vs. Sony PlayStation 4 Spec comparison
  Xbox 360 Xbox One PlayStation 4
CPU Cores/Threads 3/6 8/8 8/8
CPU Frequency 3.2GHz 1.75GHz 1.6GHz
CPU µArch IBM PowerPC AMD Jaguar AMD Jaguar
Shared L2 Cache 1MB 2 x 2MB 2 x 2MB
GPU Cores   768 1152
GCN Geometry Engines   2 2
GCN ROPs   16 32
GPU Frequency   853MHz 800MHz
Peak Shader Throughput 0.24 TFLOPS 1.31 TFLOPS 1.84 TFLOPS
Embedded Memory 10MB eDRAM 32MB eSRAM -
Embedded Memory Bandwidth 32GB/s 102GB/s bi-directional (204GB/s total) -
System Memory 512MB 1400MHz GDDR3 8GB 2133MHz DDR3 8GB 5500MHz GDDR5
System Memory Bus 128-bits 256-bits 256-bits
System Memory Bandwidth 22.4 GB/s 68.3 GB/s 176.0 GB/s
Manufacturing Process   28nm 28nm

In order to accommodate the eSRAM on die Microsoft not only had to move to a 12 CU GPU configuration, but it’s also only down to 16 ROPs (half of that of the PS4). The ROPs (render outputs/raster operations pipes) are responsible for final pixel output, and at the resolutions these consoles are targeting having 16 ROPs definitely puts the Xbox One as the odd man out in comparison to PC GPUs. Typically AMD’s GPU targeting 1080p come with 32 ROPs, which is where the PS4 is, but the Xbox One ships with half that. The difference in raw shader performance (12 CUs vs 18 CUs) can definitely creep up in games that run more complex lighting routines and other long shader programs on each pixel, but all of the more recent reports of resolution differences between Xbox One and PS4 games at launch are likely the result of being ROP bound on the One. This is probably why Microsoft claimed it saw a bigger increase in realized performance from increasing the GPU clock from 800MHz to 853MHz vs. adding two extra CUs. The ROPs operate at GPU clock, so an increase in GPU clock in a ROP bound scenario would increase performance more than adding more compute hardware.

The PS4's APU - Courtesy Chipworks

Microsoft’s admission that the Xbox One dev kits have 14 CUs does make me wonder what the Xbox One die looks like. Chipworks found that the PS4’s APU actually features 20 CUs, despite only exposing 18 to game developers. I suspect those last two are there for defect mitigation/to increase effective yields in the case of bad CUs, I wonder if the same isn’t true for the Xbox One.

At the end of the day Microsoft appears to have ended up with its GPU configuration not for silicon cost reasons, but for platform power/cost and component availability reasons. Sourcing DDR3 is much easier than sourcing high density GDDR5. Sony managed to obviously launch with a ton of GDDR5 just fine, but I can definitely understand why Microsoft would be hesitant to go down that route in the planning stages of Xbox One. To put some numbers in perspective, Sony has shipped 1 million PS4s thus far. That's 16 million GDDR5 chips, or 7.6 Petabytes of RAM. Had both Sony and Microsot tried to do this, I do wonder if GDDR5 supply would've become a problem. That's a ton of RAM in a very short period of time. The only other major consumer of GDDR5 are video cards, and the number of cards sold in the last couple of months that would ever use that RAM is a narrow list. 

Microsoft will obviously have an easier time scaling its platform down over the years (eSRAM should shrink nicely at smaller geometry processes), but that’s not a concern to the end user unless Microsoft chooses to aggressively pass along cost savings.

Introduction, Hardware, Controller & OS Image Quality - Xbox 360 vs. Xbox One
Comments Locked

286 Comments

View All Comments

  • djboxbaba - Wednesday, November 20, 2013 - link

    you have the cutest name ever bra, "wolfpup" kudos ^^
  • melgross - Wednesday, November 20, 2013 - link

    Hey noob, it doesn't work that way. SRAM is not equivalent to high speeds GDDR5. This has been well established already. You do get some boost, at some points, but it's not covering every area of performance the way GDDR5 is.
  • CubesTheGamer - Wednesday, November 20, 2013 - link

    Newb talk? No, you can't add them together. Let me tell you why, in technical terms.

    ESRAM is meant to be a cache, and what a cache does is take some data that you're going to need a lot (let's say there's some instruction code or some other code / data that needs to be read frequently. You put that data in the ESRAM, and it gets read 10+ times before being swapped for some other data. What you're saying makes it seem like we can constantly write and read from the ESRAM. That's not how it works.

    tl;dr: You can't add them together because you should only use the ESRAM 1/10th the amount of times as you should the main DDR3 RAM that the Xbox One has. So you're argument is invalid, and don't say things that you don't know about.
  • smartypnt4 - Thursday, November 21, 2013 - link

    He's indeed wrong, but I'd be willing to bet good money your hit rate on that eSRAM is way higher than 10% if it's used as a cache. Usual last level caches have a hit rate getting into the 80% range due to prefetching, and large ones like this have even higher hit rates.

    If it's hardware mapped like the article indicates(aka not a global cache, but more like it was on the 360), it won't hit quite as often with a naive program, but a good developer could ensure that the bulk of the memory accesses hit that eSRAM and not main memory.
  • Da W - Friday, November 22, 2013 - link

    XBone is ROP bound. Will you stop bitching around with your geometry and bandwith? Its all about ROP!
  • MadMan007 - Wednesday, November 20, 2013 - link

    I can add $2 and a whore together too, that doesn't make it good.
  • looncraz - Thursday, November 21, 2013 - link

    You actually only get about 100GB/s READ or 100GB/s WRITE... The best-case scenario on the XBox One is 68GB/s + 100GB/s - still NOT matching the PS4's capabilities for reading/writing ANY memory... and only in certain situations where you are streaming from both memory systems.

    Xbone PEAKS below PS4's AVERAGE memory performance.
  • daverasaro - Saturday, November 23, 2013 - link

    Huh? Actually you are wrong. The Xbox One uses 8GB of DDR3 RAM at 2133 MHz for 68.3 GB/s of bandwidth, but also adds an extra 32 MB of ESRAM for 102 GB/s of embedded memory bandwidth. The the PS4 uses 8GB of GDDR5 RAM at 5500 MHz for 170.6 GB/s of bandwidth.
  • daverasaro - Saturday, November 23, 2013 - link

    32GB*
  • SunLord - Wednesday, November 20, 2013 - link

    I don't get this constant worrying about power usage on non-mobile devices they plug into a wall and as long as it's not some obscene (300+W) amount of draw I don't care damn it... Heat can be an issue but I'm personally not even remotely concerned that it might cost me $3 more a year in power usage to use my $400 PS4 if I was i shouldn't be buying a PS4 or Xbox One let alone games for them.

Log in

Don't have an account? Sign up now