A Note About Drivers

The Intel SSD 750, the Samsung 950 Pro and the OCZ RD400 were all reviewed with the NVMe drivers supplied by the SSD vendors. In the past, vendors have sometimes cited performance as an advantage to using their NVMe driver over the one built in to Windows, but the primary reason has been that Microsoft's driver implements a limited feature set. The driver that was made available as an update to add NVMe support to Windows 7 SP1 and Windows Server 2008 SP1 did not include the necessary interfaces for updating SSD firmware, and even on Windows 8.1 and later the vendor-specific management tools require their own driver for performing tasks like a secure erase.

Samsung's NVMe driver for the 960 Pro was not ready in time for this review. They are planning to release it in mid-November in conjunction with their Magician 5.0 utility. The Samsung NVMe driver will be required to support Magician 5.0's new "Magic Vault" secure archive/backup feature and the new secure file erase feature.

In the meantime, rather than try to hack Samsung's NVMe driver for the 950 Pro to work with the 960 Pro, this review is relying on Microsoft's NVMe driver built-in to Windows 8.1. While most SSD vendors (especially the smaller ones) now say that Microsoft's NVMe driver offers adequate performance and that there is no need for a custom driver to get full performance, there are some pitfalls.

Windows provides two settings for drive write caching policy. By default, write caching is enabled on internal drives and there is an unselected option to turn off write cache buffer flushing. Both options have warnings attached about the possibility of data loss in the event of a power failure. It is normal for SSDs to cache and combine writes rather than immediately send all written data straight to the flash, and this is necessary to overcome the fact that NAND flash write operations are inherently much slower than read operations. Without write caching on the SSD, we would never see good random write performance, let alone random write performance that exceeds random read performance.

The default write caching policy settings work fine for SATA SSDs. This is not the case for NVMe SSDs when using Microsoft's driver. Microsoft's NVMe driver in the default configuration is extremely conservative about write caching, leading to extremely poor performance on some tests. Checking the second box gives performance that is as expected while leaving it unchecked for a high-end NVMe drive can lead to worse performance than a low-end SATA drive. Normally I would not review a drive with an obscure setting like this changed, especially since it can increase the risk of data loss, but Microsoft's default is clearly broken and not in line with the industry standard practices. The 960 Pro was benchmarked with the settings as shown above, and a more thorough comparison of how NVMe drivers and operating system versions affect performance will be coming in the future.

Introduction Performance Consistency
POST A COMMENT

72 Comments

View All Comments

  • DanNeely - Tuesday, October 18, 2016 - link

    Does your mobo power the m.2 slot, or just the LEDs? Baring evidence to the contrary I'd assume it's only the latter that are getting power, and enough residual power to run a few LEDs for a minute would only give a few seconds for the 960 in its deepest power saving modes, or far less while doing writes. Reply
  • bji - Tuesday, October 18, 2016 - link

    How does your computer know to shut down in that event? Is there a signal to the operating system from the power supply to notify it that power has been lost and that it should shut down? Because if not, all that will happen is that 1 minute more of data will be written to the drive, only to be lost when the power abruptly cuts out when the capacitors lose their charge. Reply
  • ddriver - Tuesday, October 18, 2016 - link

    Obviously it doesn't matter if the PSU doesn't send a signal to the system, which it doesn't. It wouldn't matter even if you have an UPS that could last an hour if it can't signal the system to shut down or at least flush caches before power runs out completely. Reply
  • noeldillabough - Tuesday, October 18, 2016 - link

    I was thinking the exact same thing ACK no battery/capacitors? I'd never turn off buffer flushing. Reply
  • Billy Tallis - Tuesday, October 18, 2016 - link

    I agree that what you've described is what those options *seem* to mean. But the semantics behind those checkboxes are clearly very different for NVMe drives and SATA drives, and it is an outright bug for Microsoft to apply the same description to both cases. The Samsung 960 Pro is also not the only drive to severely underperform without disabling write cache buffer flushing; the 950 Pro without Samsung's driver seems to be similar and I've seen this behavior on at least other vendor's NVMe controller. This is a serious concern that requires further investigation, but I'm not ready to lay the blame on the Samsung 960 Pro. If Microsoft's defaults for NVMe drives is the most reasonable behavior for consumer workloads (including the risk of power loss), then that would imply that most or all of the vendor-specific NVMe drivers are playing fast and loose with data safety, and possibly so are Microsoft's SATA/AHCI drivers. Reply
  • shodanshok - Tuesday, October 18, 2016 - link

    "that would imply that most or all of the vendor-specific NVMe drivers are playing fast and loose with data safety, and possibly so are Microsoft's SATA/AHCI drivers"

    This can be quite true, especially considering as some vendors publish "turbo-cached mode" that supposedly enhance disk write speed. By the way the storage controller drives is such a critical kernel component that I will try hard to stay with Microsoft own driver, unless extensive testing on vendor-specific drivers confirms their stability.
    Reply
  • HollyDOL - Tuesday, October 18, 2016 - link

    Wouldn't INT 0 (power loss) fire fast enough to execute flush command in time for decent PSU to handle that before running out of power? Most of "decent+" PSUs seem to have quite a power buffer in capacitors to survive that long... with 300k IOPS it should manage to save with a decent margin.
    Even my old Corsair TX manages to survive micro-outages without computer shutting down or crashing. Afaic ATX2.01 PSU is required to endure at least 17ms power outage without losing output power. With 330k IOPS at hand it should be enough to quick save.

    Not that I'd be all out to go and try :-)
    Reply
  • beginner99 - Wednesday, October 19, 2016 - link

    This would be something guys at anandtech could test. It would also probably help to build back the sites reputation and output of interesting articles.

    Create a script that does some file system operations, then pull the plug. Repeat 10 times for each drive, driver and settings and see what happens. Yeah a lot of work.
    Reply
  • leexgx - Tuesday, October 25, 2016 - link

    only intel SSDs that have super caps never lose data ,, Intel 320 and S3500 (some site tested it and only intel SSDs never corrupted some SSDs flat out failed the Crucial M4)
    http://lkcl.net/reports/ssd_analysis.html
    http://www.extremetech.com/computing/173887-ssd-st...
    normal SSDs that have small caps (not super caps) that say they have power loss protection that is only there to protect the page table from bee trashed not the data it self that is currently been written that still be loss
    Reply
  • Gigaplex - Tuesday, October 18, 2016 - link

    "then that would imply that most or all of the vendor-specific NVMe drivers are playing fast and loose with data safety"

    I would not be surprised if that's exactly what they're doing.
    Reply

Log in

Don't have an account? Sign up now