NVMe PCIe 5.0 standard: features and differences from 4.0

NVMe PCIe 5.0 standard

The first flash controllers for NVMe SSDs to support PCIe 5.0 are now a reality and have the ability to achieve gigabyte drives per second in double figures for the first time. But what are the benefits of adopting NVMe PCIe 5.0 technology at home and what are the challenges?

One of the maxims in performance is that a system is only as slow as the slowest part of it allows. That is why, in order to achieve performance, it is seeking not only to increase the speed of components such as processors and RAM, but also of storage units. Which is being achieved by adopting the different PCIe standards for NVMe drives.

What is a flash controller?

Controladora Flash NVMe PCIe

A flash controller is a piece of hardware that sits between NVMe memory or any other type of NAND Flash memory and the CPU or GPU that wants to access it. Its job is to translate virtual addresses into physical addresses that allow direct access to the NVMe memory blocks that make up the SSD storage unit.

Today, when a CPU or GPU accesses any memory space, it does so using a common addressing in which all the memories they have access to within the hierarchy are unified. The different MMUs integrated in both the CPU and the GPU are responsible for communicating with the different types of memory in the system, RAM, VRAM, but also non-volatile RAM or NVRAM, which is the NVMe memory in SSDs.

But virtual addressing is different from physical addressing and hence a translation process is needed, which is carried out by the flash controller. For this it makes use of a memory from which it stores the address conversion tables, the source data in the form of virtual addressing and the destination data in the form of physical addressing. Such memory can be found on the NVMe SSD, it can be the system RAM in the case of a DRAM-Less design, or it can be embedded as embedded memory within the flash controller itself.

Flash Drivers for NVMe PCIe 5.0, a review

Marvel Bravera SC5 NVMe PCIe 5.0

One of the first Flash controllers to support PCI Express 5.0 is the Marvell Bravera SC5 . Which allows data to be transmitted with a bandwidth of 14 GB / s under a 4-line PCI Express 5.0 bus, which means doubling the bandwidth with respect to the same number of lines under PCI Express 4.0, but it does not mean saturating the bus in both cases, since they can reach 16 GB / s and 7 GB / s respectively.

It must be taken into account that a flash controller works in the same way as the interfaces that communicate the RAM or VRAM memory with the CPUs and GPUs. They are in charge of processing the read and write requests made by the processor. And since today we already have several cores in the CPU, it is very important that there is a large number of access channels in a flash controller. The Marvell Bravera SC5 has 16 channels in total, so up to 16 single channel or 8 dual channel NAND Flash chips can be connected to it.

Channels are the number of NVMe memory chips that the flash controller can talk to simultaneously. The low-end NVMe SSDs usually have 2 or 4 channels, the high-end 8 channels and we have special cases like the PlayStation 5 SSD with 12 channels. The fact that the Marvell Bravera SC5 has 16 channels not only allows it to have a large storage capacity, but shows that it is a controller designed for the server market and not for home PCs.

High bandwidth requires high computing capacity

Puente BInario

Moving data from one memory to another is one of the biggest nightmares hardware architects have faced in the entire history of computing. Bulk moving requires the CPU or GPU to spend a good time running the relevant executions for it. That is why, since the dawn of time, hardware systems have been created that transfer data from one memory to another without the participation of the main CPU and that do it in much less time.

The fact of giving access to the memory of an NVMe SSD through the PCI Express port to a GPU for example, does not mean that access can be done directly without affecting performance. In new generation consoles such as PlayStation 5 and both Xbox Series X, the inclusion of NVMe SSD units has brought with it the integration of specialized units in charge of carrying out the transfer, compression and decompression of data from the SSD to memory, which they seek relieve both the CPU and GPU of such systems of such load.

On PC, on the other hand, only NVIDIA and AMD graphics cards with support for DirectX 12 Ultimate have such units. Which leads to the need to pull computing power in order to manage the movement of data. If the CPU or GPU are not fast enough to carry out this management then a chain effect is generated that causes all subsequent requests to be delayed, causing the total data to be sent per fraction of time to be delayed.

What do NVMe PCIe 5.0 SSDs bring other than more speed?

CXL

Because they are a linear evolution with respect to those that use the PCIe 4.0 interface, we could say that rather little, but the launch of domestic NVMe SSDs with PCIe 5.0 will coincide with the deployment of the NVMe 2.0 standard, which will provide a series of advantages that go beyond the increase of the bus speed. Therefore, both factors will be combined in order to improve this type of storage in the near future.

Although if we have to highlight an improvement in PCIe 5.0 especially it is the support of Compute Express Link or CXL. This is a feature. which will initially only be on servers and simplifies hardware access. The reason? It allows direct access to an NVMe SSD without going through the IOMMU of the Southbridge, reducing access latency and making it possible to implement the flash controller in the CPU, GPU or APU itself or even to use the PCIe CXL interface for the direct access to DIMMs that integrate NVMe and DDR5 chips together.