NVMe drives are just beginning to hit the mainstream, and the interface's designers have published the 1.3 revision of the NVMe specification. Version 1.3 is the spec's first big revision since 2014, and is notable for the inclusion of several features found in other storage protocols including the venerable ATA and SATA, as well as the decidedly low-end eMMC. Most of the new features are optional, but we expect at least a portion of them will become widespread on consumer drives due to their usefulness.
NVMe version 1.3 includes support for boot partitions, a feature found in eMMC. Boot partitions offer a simplified bootstrap mechanism that should make for simpler firmware and possibly dispense with the need for an SPI flash chip to store boot firmware. Drives that support boot partitions will have to provide two of them, for use in a scheme where only one partition is written at a time for redundancy's sake. This feature probably isn't meant for commonly-available NVMe drives, but will come in handy for mobile devices.
Perhaps one of the coolest features in the new spec is support for streams. Simplifying: with the current spec, if multiple files are being written to a drive simultaneously, chances are that their individual blocks will end up interleaved on the drive. With support for the streams directive, the controller can tell the drive how to physically store the data it's sending. Using the previous example, all the data for each file could end up physically sequential on the drive, possibly improving read speeds and potentially lowering write amplification. The concept should be familiar to anyone that's old enough to have watched a defragmentation graph.
The new specification also includes a device self-test feature, similar to the SMART features present in ATA and SATA drives since the mid-1990s. The spec calls for short and long tests. The tests may temporarily decrease device performance but won't disrupt device availability. The short test must finish in less than two minutes without disturbing the contents of the device. The long tests may write to the device, but all user data must be preserved and drives have to offer an estimate of the time until the test completes.
Another new feature is a sanitize command, also already available on SATA devices. The sanitize feature renders all data on a drive unrecoverable and ensures that any data in the drive's cache or buffers is equally cleared. Systems may also specify what kind of method the drive should use for wiping the data: block erase, overwriting, or encryption key destruction (on applicable drives).
New namespace, virtualization, telemetry, and thermal management features are also included in the new specification. Storage-obsessed gerbils can read a summary of the new features here, and the true masochists can read the complete 282-page specification document.