There’s much been made of the Xbox One’s specs, but despite the fact it’s giving up some GPU grunt to the Playstation 4, the largest criticism leveled at the console is likely at the eSRAM. The eSRAM is 32MB of memory situated directly on the Xbox One’s main SoC. The purpose of this memory is to make up for the lack of bandwidth created by the systems DDR3 memory, as opposed to the GDDR5 RAM that’s used inside Sony’s PS4 (and other high performance GPU’s).
GamingBolt recently spoke with Wolfgang Engel on the topic, and despite much of the information being common knowledge he did provide a few additional insights into the overall workings of the system.
“eSRAM is very fast memory. In general the biggest challenge that game developers are facing are memory access patterns, so while we have a lot of computation power, the memory access cost is increasing substantially over the last ten years, compared to the cost of arithmetic instructions.
“As long as you are in registers you are fine but as soon as you need to access memory, it becomes slower. So the challenge is to access memory in the most efficient way.
“Therefore memory access patterns are the most important optimization strategies. So it’s not about counting cycles but it’s about thinking how can we re-factor an algorithm so that we can access memory in a more efficient way. eSRAM is part of that.
“For example with a compute shader you can access cache memory (thread group shared memory) so you can re-factor your algorithm so that it uses this memory better, resulting in a huge and substantial speed ups. With the Xbox One, the introduction of eSRAM has a similar idea.
“The memory expensive draw calls can be rendered into eSRAM. When you don’t need so much memory bandwidth, you use the regular system memory. You have to plan ahead, you have to think how you are going to use the memory, in the most optimal way. So eSRAM gives you an advantage if you do this. For one of our games, we used eSRAM by creating an excel sheet first, that shows how we are going to use eSRAM through the stages of the rendering pipeline. This helped us utilize the speed improvements that were coming from the eSRAM.”
On the subject of the system’s access patterns, specifically with registers and cache this has been discussed by Naughty Dog with Sony’s Playstation 4. The Jaguar CPU in both consoles follows a pretty similar layout, 8 CPU cores split over two modules. Each module contains it’s own level two cache, but cross reads / writes between module cache can result in large performance penalty – the latency being as high as accessing the PS4’s main system RAM.
It’s likely that the eSRAM won’t be a downfall of the Xbox One, which many said would be the case upon hearing the systems specs, but instead will just add an additional layer of complexity – but likely this’ll only affect developers who’re requesting the bleeding edge. As we’ve discussed in our Xbox One vs Playstation 4 graphics analysis of Watch Dogs both titles play fairly similar, but the PS4 version simply appears more polished (with a higher resolution and nicer shadows for example). It’s also worthy to remember that much of this will come down to developer tools too. But quite simply put, those developers wishing to squeeze every last drop of performance out of the Xbox One will likely run into issues and have a greater need to fuss over optimization than say an indie game.
Xbox One will also be receiving DirectX 12 next year, which will likely help to simplify the overhead a little – and it’s possible that the lower level access will help with that and provide additional memory mapping tools for the eSRAM. This is particularly true after various statements were made of a possible 30 percent increase in performance and regarding the memory allocation issues of regular DX11 (albeit primiarly focused on PC)- but really all of this is speculation as yet.