The NVMe standards organization announces the NVMe 1.3 standard
The NVMe standards organization has released the latest NVMe 1.3 standard, bringing many new features to the consumers and servers. Like the previous standard updates, most of the features are optional. Several new NVMe features, based on existing features of other storage interfaces such as eMMC and ATA, can help NVMe improve some of its existing deficiencies.
New features include:
Device Self Tests
Actually similar to the SMART self-test feature on ATA devices, now NVMe provides an optional interface for the system to instruct the device to perform a self-test. The specific testing content is provided by the equipment supplier. Equipped with two self-test methods: fast self-test for no more than two minutes and extended self-test for long time, the equipment must retain the user data and the SSD must be kept running during the test. For the extended test, The SSD must provide how long the test takes and provide a progress indicator during the test.
The boot partitions, actually the feature on eMMC, are used for smartphones and tablets using these embedded NVMe BGA SSD systems. NVMe 1.3 introduces the supports for boot partitions that can be accessed using the smallest subset of the NVMe agreement. Boot partitions is designed to reduce or eliminate the need for the host system to include other storage devices to store the boot firmware, which is equivalent to integrating the UEFI system in the BIOS into the SSD, thus reducing the cost of these devices. The SSD that implements the boot partitions will include a pair of boot partitions to allow secure firmware updates to be written to the secondary partitions and validate the data before swapping which partition is active. The boot partitions can also be tampered by using the feature of the Replay Protected Memory Block introduced in NVMe 1.2.
Sanitize is actually a more direct data cleanup command than Secure Erase, which erases the mapping table and marks invalid data, while Sanitize completely erases the data on the SSD directly from the block level. The command is supported by both SATA and SAS hard disks, and finally added to the NVMe agreement.
Previous versions of the NVMe specification allowed controllers to support virtualization through Single Root I/O Virtualization (SR-IOV), but did not specify implementation details. Version 1.3 introduces a standard virtualization feature set that defines how to configure and use SR-IOV functionality. NVMe SSDs that support the new virtualization enhancements will use the main controller as SR-IOV physical function and consider one or more secondary controllers as SR-IOV virtual function which can be assigned to virtual machines.
Namespace Optimal IO Boundary
You may know that SSD to 4K alignment is actually changing the sector allocation unit size to 4KB when partitioning. The sector size equal to the NAND page size is the best SSD performance. However, the size of current NAND flash page is actually not 4KB, for example, the current 3D NAND page is 16KB in size. In fact these things are not understood by many people. Now NVMe 1.3 introduces the namespace optimal IO boundary, which will be for the system to mention the best sector size indicates that you can set the sector size by looking at the instructions.
Directives and Streams
This is probably the most useful feature in the NVMe 1.3 standard, which provides more consistent write performance, better read prefetching and lower write magnification for multi-threaded workloads. In the past, when executing multi-threaded writes, the master controller pay no attention to the source of the writing commands, but directly write the data to the physical layer continuously. As a result, the data from different sources are staggered. Currently, after the data source is identified, the data from different sources are continuously placed together. It might make sense to look at the picture.
Non-Operational Power State Permissive Mode
The power state operation of NVMe devices using PCI-E channels is much more flexible than that of SATA devices. NVMe SSDs have several different power states, including multiple operational and non-operational idle states. In fact, NVMe 1.1 introduces APST power control functions. At present, NVMe 1.3 is added two important new features to power management. One of both is the non-operational power state permissive mode, which is a switch that controls whether background operations such as garbage collection can be performed beyond the idle power limit in idle state. This feature is turned off when the energy-saving mode is maximized, and may be allowed in other states.
Host Control led Thermal Management
This is the second feature to NVMe power management. Previously, SSD overheat protection was spontaneous and independent of the system. The new feature about host control thermal management allows the system to specify two temperature thresholds at which the SSD should perform light and severe throttling to reduce SSD's temperature. Most of the details of thermal throttling are still the responsibility of the supplier. For instance, how the various temperature sensors of the SSD are combined to form a composite temperature for threshold application, and the throttling hysteresis (the distance below the temperature threshold stops before throttling). SSDs will continue to include their own built-in temperature limits to prevent damage, but now compact machines like smartphones, tablets and ultrabooks can prevent their SSDs from lifting other components to undesirable temperatures.