NVMe-oC

NVMe-oCNVMe over CXL. This uses CXL requests to tell an MS-SSD to put data into its controller’s DRAM, which forms part of a CXL memory pool. This enables a host to read data from the SSD’s DRAM without waiting for that data to be fetched from the SSD’s NAND, which takes longer. Jim Handy of Objective Analysis writes: “The basic idea is that many SSD reads are for smaller chunks of data than the standard 4KB delivered by an SSD access. Why move all that data over CXL-io or NVMe over PCIe if the processor only needs one 64-byte cache line of it?  NVMe-oC is expected to both reduce the I/O traffic and the effort spent by the host to move the data itself.”

This enables the SSD to pre-fetch data for the host and place it in the controller’s DRAM ready to be read. NVMe-oC uses uses CXL.io to access the SSD and CXL.mem to access the memory. Handy writes: “Special commands tell the SSD to write data into that memory or to write from the memory into the SSD, without any interaction from the host, to reduce host-device data movement.”The host needs an NVMe-oC driver.