NvME 1.3 vs NvME 1.4 – What are the differences?


What is NvME?

NVMe (Non-Volatile Memory Express) is a specification for accessing data stored on PCIe-based SSDs. NVMe was designed from the ground up to take advantage of the unique attributes of flash memory, specifically to optimize performance and reduce latency. The result is a significant improvement in storage performance, making NVMe the ideal choice for enterprise applications that require the highest levels of throughput and efficiency. NVMe is supported by all major flash manufacturers and is now the standard interface for PCIe-based SSDs.

What are the differences between NvME 1.3 and NvME 1.4?

The latest version of the Non-Volatile Memory Express (NVMe) specification is version 1.4, which was released in March 2021. Version 1.3 of the specification was released in April 2017. Some of the significant changes in NVMe 1.4 include:

  • Support for Host Memory Buffer Access command set, which allows the host to directly access an NVM device’s memory buffers, reducing latency and CPU overhead.
  • A new End-to-End Data Protection command set, which allows the host to specify that data written to an NVM device should be protected against errors throughout the data path.
  • Enhancements to Passive State Power Management, including a new Host Controlled Thermal Management feature that allows the host to control temperature thresholds and cooling strategies for NVMe devices.
  • Support for Package Symphony Flow Control, which allows multiple NVMe devices to be connected in a daisy-chain configuration with flow control between them.
  • A new Write Error Recovery Notification primitive, which allows the host to be notified if an error occurs during a write operation.

NVMe 1.4 also includes several other minor changes and enhancements.

What were the bottlenecks of NvMe 1.3?

NvME 1.3 was created to address the shortcomings of 1.2, which was widely considered to be too slow. 1.3 improved upon 1.2 in several key ways, including increasing the data transfer rate and reducing the latency. However, 1.3 still suffers from some bottlenecks that prevent it from being as fast as possible.

  • One such bottleneck is the use of a serial interface, which limits the speed at which data can be transferred.
  • Another is the lack of support for multiple queues, which can cause delays when multiple commands are issued simultaneously.

Despite these limitations, NvME 1.3 is a significant improvement over 1.2 and is essential for anyone looking to get the most out of their NVMe drive.

What are the bottlenecks of NvME 1.4?

The 1.4 revision of the NVM Express specification introduces several new features and capabilities, most notably increased performance thanks to a more efficient command set and greater flexibility in terms of supported form factors and topologies. However, 1.4 also introduces a number of potential bottlenecks that could limit its effectiveness in certain applications.

  • One such bottleneck is the lack of support for multiple simultaneous commands, which can reduce performance in multithreaded workloads.
  • Additionally, 1.4’s reliance on the PCIe bus can introduce latency and jitter issues in some systems.
  • Finally, 1.4’s increased focus on enterprise-class features may make it difficult to adopt in consumer-oriented applications.

Despite these potential challenges, 1.4 remains a powerful and versatile specification that is sure to have a significant impact on the storage industry.

I am a computer engineer holding a bachelor's degree in Computer Science, complemented by a Master's in Business Administration from University of Strathclyde, Scotland. I currently work as a Senior IT Consultant in Melbourne, Australia. With over 15 years of...