|2014-03 SATA Express & NVM Express|
This note focuses on two new related standards called SATA Express and Non-Volatile Memory Express (NVMe) respectively for SSD on PCIe. This note is a bit forward looking and needs real life verifications over time.
Traditional Approach for SSD Connection: In a desktop situation, SATA ports are supported by the South Bridge (noting that the North Bridge has been absorbed into the CPU these days). Some PCI Express slots are also supported by the South Bridge although they are mostly on Generation 2 (noting that some CPU provides Generation 3 support). We may say that SATA ports and PCIe v2 slots are on the same level on the access hierarchy. SSD with SATA interface and SSD with PCIe interface have been developed separately.
NVMe (Non-Volatile Memory Express)
o Some SSD vendors have been ambitious in breaking the SAS2 limit by aggregating multiple SSD onto a PCIe card. A read rate of 3GB/s has been published for products with an interface of PCIe v2x8. Developments have been in different directions until NVM Express is agreed on as an industry standard for SSD on PCIe. (Ref: 1B = 8b or 10b depending on the encoding scheme)
o SATA3 SSD supports a single command queue with up to 32 commands while NVMe supports up to 64K queues and 64K commands per queue.
o Windows 8.1 and Server 2012R2 have native support of NVMe. Linux 3.3 has included NVMe driver support from Intel.
o Whilst SATA Express limits a SSD to have an interface of 2 PCIe lanes, NVMe does not.
o Sandforce announced in 2014-01 the release of SF3700 SSD controller that is compliant with NVMe for PCIe version 2 interface as well as SATA3.