NVM Express has published a major update to the NVMe specification that adds a handful of optional features to the protocol. The new 1.3 revision is the first significant update in nearly two and a half years and it comes right as NVMe is starting to squeeze into the mainstream market.
Cost is still the primary roadblock preventing NVMe solid state drives from overthrowing SATA-based SSDs, at least in the consumer market. Even though the best NVMe drives are typically much faster than their SATA-based brethren, the difference in performance is only truly noticeable in certain situations rather than across the board. This is different from upgrading a mechanical hard drive to an SSD where the performance gains can be felt even when just navigating Windows.
That said, the 1.3 revision brings some welcome changes to the protocol. One of them is a self-test feature that is similar to SMART. This allows the host machine to tell the drive to initiate a self-test without having to mount volumes. Exactly what gets tested is up to the vendor, though it’s reasonable to expect short and extended tests to determine data integrity and potential hardware failures.
The new protocol also adds support for boot partitions that do not need to be stored in UEFI firmware. Drives that implement the feature will also have two boot partitions to reduce the risk of failure during a botched firmware upgrade. How this works is updates get applied to the secondary partition, and once the data is verified, the drive can swap which partition is active.
According to AnandTech, this latter feature is not something that will be useful or even implemented on user-upgradeable drives, but it’s a feature that will help cut costs in embedded systems that use NVMe BGA SSDs for high performance storage.
The 1.3 revision also calls for a Sanitize feature that is a carryover from other storage standards. It is a more secure way of erasing data, as it wipes the data clean not only from the main NAND flash memory chips, but also the controller memory buffer and the drive’s various caches. The feature also lets the host specify exactly how the data should be wiped, whether it’s through block erase operations, overwriting, or destroying the encryption key.