Storage Matters: Why Xbox and Playstation SSDs Usher In A New Era of Gamingby Billy Tallis on June 12, 2020 9:30 AM EST
- Posted in
- Xbox Series X
- PlayStation 5
Balancing The System With Other Hardware Features
The biggest technological advantage consoles have over PCs is that consoles are a fully-integrated fixed platform specified by a single manufacturer. In theory, the manufacturer can ensure that the system is properly balanced for the use case, something PC OEMs are notoriously bad at. Consoles generally don't have the problem of wasting a large chunk of the budget on a single high-end component that the rest of the system cannot keep up with, and consoles can more easily incorporate custom hardware when suitable off-the-shelf components aren't available. (This is why the outgoing console generation didn't use desktop-class CPU cores, but dedicated a huge amount of the silicon budget to the GPUs.)
By now, PC gaming has thoroughly demonstrated that increasing SSD speed has little or no impact on gaming performance. NVMe SSDs are several times faster than SATA SSDs on paper, but for almost all PC games that extra performance goes largely unused. In part, this is due to bottlenecks elsewhere in the system that are revealed when storage performance is fast enough to no longer be a serious limitation. The upcoming consoles will include a number of hardware features designed to make it easier for games to take advantage of fast storage, and to alleviate bottlenecks that would be troublesome on a standard PC platform. This is where the console storage tech gets actually interesting, since the SSDs themselves are relatively unremarkable.
Compression: Amplifying SSD Performance
The most important specialized hardware feature the consoles will include to complement storage performance is dedicated data decompression hardware. Game assets must be stored on disk in a compressed form to keep storage requirements somewhat reasonable. Games usually rely on multiple compression methods—some lossy compression methods specialized for certain types of data (eg. audio and images), and some lossless general-purpose algorithm, but almost everything goes through at least one compression method that is fairly computationally complex. GPU architectures have long included hardware to handle decoding video streams and support simple but fast lossy texture compression methods like S3TC and its successors, but that leaves a lot of data to be decompressed by the CPU. Desktop CPUs don't have dedicated decompression engines or instructions, though many instructions in the various SIMD extensions are intended to help with tasks like this. Even so, decompressing a stream of data at several GB/s is not trivial, and special-purpose hardware can do it more efficiently while freeing up CPU time for other tasks. The decompression offload hardware in the upcoming consoles is implemented on the main SoC so that it can unpack data after it traverses the PCIe link from the SSD and resides in the main RAM pool shared by the GPU and CPU cores.
Decompression offload hardware like this isn't found on typical desktop PC platforms, but it's hardly a novel idea. Previous consoles have included decompression hardware, though nothing that would be able to keep pace with NVMe SSDs. Server platforms often include compression accelerators, usually paired with cryptography accelerators: Intel has done such accelerators both as discrete peripherals and integrated into some server chipsets, and IBM's POWER9 and later CPUs have similar accelerator units. These server accelerators more comparable to what the new consoles need, with throughput of several GB/s.
Microsoft and Sony each have tuned their decompression units to fit the performance expected from their chosen SSD designs. They've chosen different proprietary compression algorithms to target: Sony is using RAD's Kraken, a general-purpose algorithm which was originally designed to be used on the current consoles with relatively weak CPUs but vastly lower throughput requirements. Microsoft focused specifically on texture compression, reasoning that textures account for the largest volume of data that games need to read and decompress. They developed a new texture compression algorithm and dubbed it BCPack in a slight departure from their existing DirectX naming conventions for texture compression methods already supported by GPUs.
|Compression Offload Hardware|
Xbox Series X
|Algorithm||BCPack||Kraken (and ZLib?)|
|Maximum Output Rate||6 GB/s||22 GB/s|
|Typical Output Rate||4.8 GB/s||8–9 GB/s|
|Equivalent Zen 2 CPU Cores||5||9|
Sony states that their Kraken-based decompression hardware can unpack the 5.5GB/s stream from the SSD into a typical 8-9 GB/s of uncompressed data, but that can theoretically reach up to 22 GB/s if the data was redundant enough to be highly compressible. Microsoft states their BCPack decompressor can output a typical 4.8 GB/s from the 2.4 GB/s input, but potentially up to 6 GB/s. So Microsoft is claiming slightly higher typical compression ratios, but still a slower output stream due to the much slower SSD, and Microsoft's hardware decompression is apparently only for texture data.
The CPU time saved by these decompression units sounds astounding: the equivalent of about 9 Zen 2 CPU cores for the PS5, and about 5 for the Xbox Series X. Keep in mind these are peak numbers that assume the SSD bandwidth is being fully utilized—real games won't be able to keep these SSDs 100% busy, so they wouldn't need quite so much CPU power for decompression.
The storage acceleration features on the console SoCs aren't limited to just compression offload, and Sony in particular has described quite a few features, but this is where the information released so far is really vague, unsatisfying and open to interpretation. Most of this functionality seems to be intended to reduce overhead, handling some of the more mundane aspects of moving data around without having to get the CPU involved as often, and making sure the hardware decompression process is invisible to the game software.
Direct Memory Access (DMA) refers to the ability for a peripheral device to read and write to the CPU's RAM without the CPU being involved. All modern high-speed peripherals use DMA for most of their communication with the CPU, but that's not the only use for DMA. A DMA Engine is a peripheral device that exists solely to move data around; it usually doesn't do anything to that data. The CPU can instruct the DMA engine to perform a copy from one region of RAM to another, and the DMA engine does the rote work of copying potentially gigabytes of data without the CPU having to do a mov (or SIMD equivalent) instruction for every piece, and without polluting CPU caches. DMA engines can also often do more than just offload simple copy operations: they commonly support scatter/gather operations to rearrange data somewhat in the process of moving it around. NVMe already has features like scatter/gather lists that can remove the need for a separate DMA engine to provide that feature, but the NVMe commands in these consoles are acting mostly on compressed data.
Even though DMA engines are a peripheral device, you usually won't find them as a standalone PCIe card. It makes the most sense for them to be as close to the memory controller as possible, which means on the chipset or on the CPU die itself.The PS5 SoC includes a DMA engine to handle copying around data coming out of the compression unit. As with the compression engines, this isn't a novel invention so much as a feature missing from standard desktop PCs, which means it's something custom that Sony has to add to what would otherwise be a fairly straightforward AMD APU configuration.
The IO complex in the PS5's SoC also includes a dual-core processor with its own pool of SRAM. Sony has said almost nothing about the internals of this: Mark Cerny describes one core as dedicated to SSD IO, allowing games to "bypass traditional file IO", while the other core is described simply as helping with "memory mapping". For more detail, we have to turn to a patent Sony filed years ago, and hope it reflects what's actually in the PS5.
The IO coprocessor described in Sony's patent offloads portions of what would normally be the operating system's storage drivers. One of its most important duties is to translate between various address spaces. When the game requests a certain range of bytes from one of its files, the game is looking for the uncompressed data. The IO coprocessor figures out which chunks of compressed data are needed and sends NVMe read commands to the SSD. Once the SSD has returned the data, the IO coprocessor sets up the decompression unit to process that data, and the DMA engine to deliver it to the requested locations in the game's memory.
Since the IO coprocessor's two cores are each much less powerful than a Zen 2 CPU core, they cannot be in charge of all interaction with the SSD. The coprocessor handles the most common cases of reading data, and the system falls back to the OS running on the Zen 2 cores for the rest. The coprocessor's SRAM isn't used to buffer the vast amounts of game data flowing through the IO complex; instead this memory holds the various lookup tables used by the IO coprocessor. In this respect, it is similar to an SSD controller with a pool of RAM for its mapping tables, but the job of the IO coprocessor is completely different from what an SSD controller does. This is why it will be useful even with aftermarket third-party SSDs.
The last somewhat storage-related hardware feature Sony has disclosed is a set of cache coherency engines. The CPU and GPU on the PS5 SoC share the same 16 GB of RAM, which eliminates the step of copying assets from main RAM to VRAM after they're loaded from the SSD and decompressed. But to get the most benefit from the shared pool of memory, the hardware has to ensure cache coherency not just between the several CPU cores, but also with the GPU's various caches. That's all normal for an APU, but what's novel with the PS5 is that the IO complex also participates. When new graphics assets are loaded into memory through the IO complex and overwrite older assets, it sends cache invalidation signals to any relevant caches—to discard only the stale data, rather than flush the entire GPU caches.
What about the Xbox Series X?
There's a lot of information above about the Playstation 5's custom IO complex, and it's natural to wonder whether the Xbox Series X will have similar capabilities or if it's limited to just the decompression hardware. Microsoft has lumped the storage-related technologies in the new Xbox under the heading of "Xbox Velocity Architecture":
Microsoft defines this as having four components: the SSD itself, the compression engine, a new software API for accessing storage (more on this later), and a hardware feature called Sampler Feedback Streaming. That last one is only distantly related to storage; it's a GPU feature that makes partially resident textures more useful by allowing shader programs to keep a record of which portions of a texture are actually being used. This information can be used to decide what data to evict from RAM and what to load next—such as a higher-resolution version of the texture regions that are actually visible at the moment.
Since Microsoft doesn't mention anything like the other PS5 IO complex features, it's reasonable to assume the Xbox Series X doesn't have those capabilities and its IO is largely managed by the CPU cores. But I wouldn't be too surprised to find out the Series X has a comparable DMA engine, because that's kind of feature has historically shown up in many console architectures.
Post Your CommentPlease log in or sign up to comment.
View All Comments
PeachNCream - Friday, June 12, 2020 - linkWhat makes a console a good piece of hardware is that I do not have to even care what is inside the box that runs the games since the games that I buy for said console will just work as intended. Every generation has extensive discussion about hardware and the usual comparing and penis measuring between brands. It all ends up being meaningless when you pick up a controller and play a game on it which is far and above the hassle of PC gaming in terms of equipment apathy. In short, IDGAF what drive is inside the thing. Insert disc (or download digital copy) and game on!
shabby - Friday, June 12, 2020 - linkGames will work just as intended? Are you suggesting console games never suffer from fps dips below 30fps or have lower quality graphics to hit 30fps?
close - Friday, June 12, 2020 - linkIf you played on both console and PC then you know what that means. I do that and yes, on the console it's a lot more hassle-free. Every game is optimized for *that* configuration, perhaps with minor variations between the 2-3 cycle refreshes. No need to worry about "does it work better on the Radeon? Should I use the older driver? Adjust graphics settings to determine which one has the best graphics for *your* PC. Etc. It extracts the most out of that hardware.
On my PC (with a far better config than any console) Assassin's Creed Odyssey freezes for a second (not a figure of speech) every once in a while even if it runs flawlessly otherwise. On the Xbox it works just fine. On the PC I had to adjust graphics because the highest level was just a tad too much but the next lower level left too much performance on the table, so I had to tweak a full screen (or 2) of settings about shadows, aliasing, and whatnot to get "the best for my setup". Maybe. I don't know, I can't be bothered to spend half a day experimenting. Now subjectively it looks better on the Xbox with a 4K screen than on the PC with a 1440p screen.
On the other hand it also means 5 years from now you have an old GPU that you can't swap out. But for console gamers that's a small price to pay.
Retycint - Saturday, June 13, 2020 - linkYou don't need to adjust the graphics configuration or mess with drivers because the option has been taken away from you. Instead of having the choice to slightly lower texture quality to ensure smooth gameplay, for instance, the game devs decide that a dip below 30fps is acceptable and push it onto you.
Very strange to describe the lack of choices as "it just works"
PeachNCream - Saturday, June 13, 2020 - linkThat's a pretty weak argument that doesn't take anything away from the original point of not having to care about the underlying hardware and being assured that a game purchased for a particular console will work properly on said console.
vol.2 - Saturday, June 13, 2020 - link"will work properly" is what people are taking issue with. the argument is that there are games that run crappy on consoles. don't try to pretend that there haven't been plenty of prime examples over the past 10 years or so of games that are poorly optimized for consoles.
On a PC, when that happens, you tweak settings until it's playable. On a console you have a shitty experience. Or maybe you just don't care for whatever reason. That's the point. Is a deal breaker for you, I guess not. It is for some.
close - Sunday, June 14, 2020 - linkI find this suspicious given that I play on both platforms and if anything, games are optimized *for consoles*. From performance, to gameplay, and controls. Devs make *a lot* more money from console sales since piracy is pretty much non existing so it makes sense they'd focus on them.
As an anecdote I found far, far more games misbehaving on PC than on the Xbox. Between driver issues, "optimized for the that other hardware that you don't have" issues, trying to balance all the setting (most of which most people have no idea about), auto detect settings that "guess" what you should use based on some too simplistic checks, and basic game bugs I faced more problems on the PC. Yes, there are issues on consoles but the argument "well you have issues on both therefore the experience must be the same or worse on consoles" comes almost exclusively from people who "read about it", "heard from someone", etc. but never actually tried both for any meaningful period of time.
Yes, for all intents and purposes games "will work properly" and with less hassle on consoles in more cases than on the PC. And I say this as someone who can definitely handle whatever a computing system can throw at them better than 99.9999% of the population. But that doesn't mean I *want* to have to handle that, especially on what's supposed to be my fun, hassle free time.
Not trying to convince you to use either but if if you want to share your opinion the least you can do is be fully informed.
hecksagon - Sunday, June 14, 2020 - linkCouple counter arguments here.
Just because the console game works as intended doesn't mean it doesn't run like shit. No developer ever wanted its fans to play their game at 30fps, just like no developer wanted their fans to play their game at 720p. Unfortunately with consoles its always been compromise. You either optimize for image quality or optimize for steady gameplay, or meet somewhere in-between.
hecksagon - Sunday, June 14, 2020 - linkApparently I'm too stupid to find the edit button.
The other point is that PCs, while more complicated, offer expanded options thanks to that complication. Want high refresh rate gaming? Not gonna get it on a console not only due to performance but due to HDMI limitations. Want to play an RTS? Good luck with a controller. Want an extra wide monitor to handle that increased FOV you are playing at? Your resolution isn't supported on consoles. VR? Don't waste your time with a console. Modding games? Gonna get you banned on a console. Emulation? Not likely on a console, better go get yourself a Playstation Mini.
lunarx3dfx - Monday, June 15, 2020 - linkI think what we have here is a classic case of one screen and two different movies. One argument is being made on subjective experience, and the other is being made from an objective point of view. I could be wrong, but I don't think OP is stating that consoles are more powerful, but more the subjective opinion that the just download game and play is more convenient for them and for a lot of people.
As a dad I can understand this sentiment, which is why since my daughter was born I too have spent more time gaming on console. I find the lack of choice when it comes to performance settings as a bonus because I am that person who, if given the choice, will spend ages tweaking settings to get the best image quality at 60 fps. This however resulted in the limited amount of time I have available to play games being eaten up by time spent tweaking.
In contrast, on my Xbox I just download the game and play. Is it an objectively better experience than running the game at maxed out settings on a PC at 60+ fps? No. Not at all. But the convenience is a factor in my overall enjoyment these days. However, there are some types of games I will NEVER play on a console. Doom for isntance. That is a PC only game in my eyes. You just can't beat a keyboard and mouse for that game. Period.
I think where this argument always ends up coming from is personal opinion based on what is important to the end user. PCs are so much easier to build, setup, and play games on than in the 80's and 90's when I first got into PC gaming, but for many users it's still intimidating. That's why the console market is so large, and will continue to be. At the end of the day, many consumers still prefer the ease of setup and use that consoles afford, and you can't really put a price on that. A lot of people want to just take the machine out of the box, plug in two cables, download a game, and get playing.