Inleiding: betaalbare snelheid
Solid state drives zijn sinds hun introductie niet alleen in korte tijd veel beter, maar ook goedkoper geworden. Sinds enige tijd is de rek er echter een beetje uit. Ze worden niet heel veel goedkoper meer en erger: de groei in prestaties is sterk afgevlakt. Dat komt voornamelijk door de sata-interface; ssd's hebben te kampen met de legacy van harde schijven omdat ze nog met technologie uit het schijventijdperk worden aangestuurd. Nvme moet daar verandering in brengen, met controllers en drivers die speciaal voor solid state drives zijn ontwikkeld.
Chipfabrikant Intel heeft op 2 april zijn 750-serie ssd's uitgebracht: De 750-ssd's zijn de eerste drives die geen sata/ahci-interface hebben, maar een next-gen nvme-interface. Daarmee zouden ssd's niet meer met de legacy-methode van harde schijven worden aangesproken, maar op een manier die meer lijkt op een interface met geheugen. Net als geheugen moet dat een zeer snelle opslaggeneratie tot gevolg hebben; weg met de sata-bottleneck dus.
/i/2000595634.jpeg?f=imagenormal)
De 750-ssd is stiekem niet de eerste nvme-ssd die Intel uitbrengt. Al in de zomer van 2014 bracht het bedrijf zijn DC P3600- en P3700-drives. Die waren echter niet bedoeld voor consumenten, maar voor de zakelijke markt, zoals voor gebruik in servers, en hadden een navenante prijs. De drives slechtten niet alleen de sata-barrière, maar versplinterden die, net als je budget. De drives, als pci-express-insteekkaart, behalen overdrachtsnelheden van ruim boven de 2000MB/s, waar de gemiddelde sata-drive rond 500MB/s blijft steken.
We zijn inmiddels verwend met prijzen van ruim minder dan vijftig cent per gigabyte voor onze ssd's en de nvme-drives van Intel doen het zesvoudige. Met een prestatie die tot vier keer beter is, lijkt dat voor consumenten niet de aantrekkelijkste upgrade. De nieuwe 750-serie ssd's krijgt echter een prijs van minder dan een euro per gigabyte.
De 750-serie is als 2,5"-versie en als insteekkaart verkrijgbaar, vooralsnog in de capaciteiten 400GB en 1,2TB. De drives hebben een nvme-interface, de opvolger van sata, en beloven stukken sneller te zijn dan drives met een sata-interface. We namen de insteekkaart met een capaciteit van 1,2TB onder handen om te kijken hoeveel sneller de nvme-ssd's zijn dan de ssd's met andere interfaces.
Nvme: het hoe en waarom
Zoals waarschijnlijk bekend is, zijn harde schijven al decennia oud; de eerste stamt uit 1956. Sinds die tijd is er uiteraard flinke vooruitgang geboekt, maar met de komst van solid state drives lopen we toch tegen een probleem aan. Interfaces als ide, pata en het huidige sata zijn gemaakt voor mechanische schijven, met een platter en lees- en schrijfkoppen. De geheugencellen van een nand-chip zijn inherent parallel te benaderen, maar ons seriële ata-protocol is daar niet zo geschikt voor.
Nvme is volgens de industrie de oplossing. Die interface is speciaal ontwikkeld om solid state geheugen aan te sturen, getuige de naam: non-volatile memory express. Nvme is een universele interface die pci-express-opslagapparaten toegankelijk maakt voor het besturingssysteem. De standaard maakt dus gebruik van pci-express-lanes om data te transporteren en is daardoor schaalbaar. Met vier gen3-pcie-lanes is er ruwweg 4GB/s aan bandbreedte beschikbaar, tegenover de 600MB/s die sata biedt. Met meer lanes is meer bandbreedte beschikbaar, maar voorlopig zien we producten met het genoemde aantal lanes.
/i/1379591723.png?f=imagenormal)
De toegenomen bandbreedte is niet de enige factor die nvme-drives sneller maakt dan ahci-alternatieven als sata. De commando-set is een stuk eenvoudiger dan bij ahci: er zijn tien admin-commando's en drie i/o-commando's benodigd voor nvme-drives. Binnen acht stappen kan in een nvme-drive een commando verwerkt worden, waar dat met sata langer duurt. Bovendien is het queue-management uitgebreid tot 64k command queues met ieder een queue depth van 64k, waar dat bij sata slechts respectievelijk 1 en 32 is. Ook de software-overhead is veel kleiner. Bij de Linux storage stack wordt de nvme-driver direct vanuit de block layer aangesproken, terwijl daar bij een sas-driver nog verschillende stappen tussen zitten, wat leidt tot een twee keer zo grote latency.
/i/1379591566.png?f=imagenormal)
Drives met nvme-ondersteuning kunnen in theorie ook zuiniger zijn. De driver schakelt automatisch naar lage power states, waartussen snel geschakeld kan worden. Ten slotte is nvme-ondersteuning standaard in Windows 8.1 gebakken en ook in Linux, vanaf kernel 3.3, is een driver aanwezig. De besturingssystemen van consumenten en 'prosumers' zijn dus klaar en de eerste drives voor die markten zijn inmiddels te koop.
De 750-drive en vergelijking
Intels eerste nvme-ssd voor consumenten is de 750-serie, die als 2,5"-drive met sata-express-interface en pcie-kaart verkrijgbaar is. Beide drives zijn in capaciteiten van 400GB en 1,2TB verkrijgbaar, met adviesprijzen van 389 en 1029 dollar. Dat is fors goedkoper dan Intels eerdere nvme-drives voor de zakelijke markt.
/i/2000595635.jpeg?f=imagenormal)
Wat koop je voor dat geld? De drives zijn opgebouwd rond Intels eigen controller, die het 20nm-mlc-nand aanstuurt. De controller is een nvme-controller en heeft een directe interface met de pcie-bus. De meeste pcie-ssd's voor consumenten die we tot dusver zagen, zijn daarentegen opgebouwd uit verschillende standaard-sata-controllers die via een raid-controller met de pcie-bus communiceren. Feitelijk zijn dat dus sata-ssd's die in raid staan.
Drive | Controller | Geheugen | Configuratie | Prijs/GB |
Intel 750 1,2TB |
Intel nvme-controller |
20nm mlc IMFT |
Nand - nvme-controller - pcie 3.0 (x4) - chipset |
~1,00 |
OCZ Revodrive 350 480GB |
4x SF2281 |
19nm mlc Toshiba |
Nand - sata-controllers - ahci-bridge - pcie 2.0 (x8) - chipset |
~1,60 |
Samsung XP941 512GB |
Samsung S4LNO53X01 |
19nm mlc Samsung |
Nand - ahci-controller - pcie 2.0 (x4) - chipset |
~1,00 |
Crucial MX100 512GB |
Marvell 88SS9189 |
16nm mlc IMFT |
Nand - sata-controller - ahci-bridge - pcie 2.0 (x1) - chipset |
~0,40 |
Samsung 840 Pro 256GB (raid0) |
Samsung MDX |
21nm tlc Samsung |
2x (nand - sata-controller) - ahci-bridge - pcie 2.0 (x1) - chipset |
~0,60 |
We vergelijken het 1,2TB-model met de snelste ssd's die we in ons testlab hebben liggen. Dat is de OCZ Revodrive 350, met een pcie-x8-interface en 480GB capaciteit. Onder de motorkap is dat een drive met vier SF2281-controllers die via een OCZS-sas/sata raid-controller aan elkaar zijn gekoppeld en die op acht lanes pcie 2.0-interface aansluit. Een tweede ssd die we als vergelijking nemen, is een Samsung XP941-ssd. Dat is een m2-ssd met vier pcie 2.0-lanes. We hebben de 512GB-versie daarvan getest. Ten slotte nemen we een van de snelste ssd's waarvan we twee identieke exemplaren hebben, de Samsung 840 EVO Pro van 256GB, mee in een raid0-opstelling en voor de volledigheid nemen we de Crucial MX100 512GB als single drive mee in de vergelijking. Meer sata-600-ssd's testen achten we niet zinvol, omdat de verschillen onderling in vergelijking met de verschillen met de overige testkandidaten te gering zijn.
Links een gewone ssd, in het midden de huidige generatie pcie-ssd's en rechts Intels 750-ssd
Prestaties: AS-SSD
Bij de sequentiële leesacties zien we een flink snellere Intel 750-ssd vergeleken met de Revodrive. Zetten we de drive af tegen de XP941, dan zien we een tweemaal zo hoge leessnelheid en tegenover een enkele sata-drive is de drive ruim viermaal zo snel. Bij het schrijven zijn de verschillen tussen de Revodrive en XP941 een stuk kleiner. Ook voor de beide sata-drives in single- en raid-configuratie is het verschil kleiner, maar nog altijd is de 750 ruim tweemaal zo snel.
De 4k-leesprestaties schelen onderling zeer weinig, zelfs procentueel zien we een maximaal verschil van net twintig procent. Bij het schrijven van 4k-bestandjes is de 750-nvme-drive wel een stuk sneller dan de rest; de prestatiewinst bedraagt minstens 63 procent.
Bij een groter aantal threads laat de nvme-drive pas goed zien hoe snel deze techniek is. Bij lezen zien we een winst van ongeveer driehonderd procent en vergeleken met de reguliere sata-drive is de nvme-drive zelfs 4,4 keer zo snel. De schrijfprestaties zijn wat minder uitgesproken. Hierbij moeten we wel opmerken dat de prestaties met de standaard-nvme-driver van Windows 8.1 hoger zijn dan met de Intel-nvme-driver. Dat geldt overigens ook voor de toegangstijden van de drive.
Prestaties: traces
Onze traces geven een beeld van het dagelijks gebruik van de drives. De traces zijn opgebouwd uit diverse componenten, zoals het installeren van software, het openen van applicaties en het kopiëren van data. In totaal wordt ruim 46 gigabyte gelezen en 39 gigabyte geschreven. De resultaten zijn het gemiddelde van drie runs, waarbij we de drive steeds verder vullen met random data.
In de Home & Office-test scoort de sata-600-ssd het best, gevolgd door de nvme-drive. Deze mix van een desktopwerklast met surfen, het lezen van mail en het openen van documenten profiteert vooral van lage latencies. In de Gaming-test, waarbij de traces van vijf games gespeeld worden, scoort de nvme-drive als beste, snel gevolgd door de m2-drive.
De workstationwerklast bestaat grotendeels uit het bewerken van foto's in Lightroom en Photoshop, met wat achtergrondprocessen als muziek afspelen en het bewerken van videobestanden. De raid-opstelling volgt dicht op de snelste drive, Intels 750 nvme-drive, terwijl de gewone sata-ssd flink achterblijft.
De raid-opstelling wint het dankzij zijn striping in de data-workload, die vooral uit het kopiëren van data bestaat. De bottleneck is een combinatie van controllers en bandbreedte.
Wanneer we de prestaties van alle traces middelen, blijkt de nvme-drive de winnaar. De verschillen met de overige drives zijn echter niet zo groot als je op basis van de synthetische benchmarks zou verwachten. De m2-drive met pcie-x4-interface is bijna net zo snel en ook de pci-express-insteekkaart en de raidopstelling zijn minder dan dertig procent langzamer. Zelfs de enkele sata-ssd scoort vergelijkbaar in de traces.
Prestaties: IOMeter
Een transfer size van 4kB, zoals in de AS-SSD-test, is slechts een van de vele soorten transacties die een ssd in de praktijk te verwerken krijgt. Om een compleet beeld van de prestaties te krijgen hebben we met behulp van IOMeter ook de lees- en schrijfsnelheden gemeten bij sequentiële en random-i/o's met een exponentieel oplopende transfergrootte van 512 bytes tot en met 256kB.
Om te onderzoeken in hoeverre de ssd's voor command queuing geoptimaliseerd zijn, zijn de tests met een queue-diepte van achtereenvolgens een en acht gelijktijdige i/o's uitgevoerd. Een wachtrij van acht i/o's kan in zware multitaskingscenario's voorkomen. Een grotere queue-diepte is voor desktopgebruik onwaarschijnlijk.
Bij een queue depth van 1 lezen de pci-expressdrives weliswaar wat sneller dan de standaard-ssd met sata-600-aansluiting, maar grote verschillen zijn er niet. Die zijn er wel als we het aantal uitstaande i/o's vergroten naar acht; de sata-ssd blijft steken op ongeveer 500MB/s voor de grootste bestanden, terwijl de pcie-drives snel uitlopen. De nvme-drive laat de op sata-gebaseerde drives echter ver achter zich.
Met het schrijven van kleine bestanden zien we al een groot verschil tussen de nvme-drive en de op sata gebaseerde ssd's, zelfs bij slechts één uitstaande i/o. Schroeven we dat op naar acht uitstaande i/o's, dan blaast de nvme-drive de concurrentie helemaal weg.
Conclusie: klaar voor de toekomst
Op papier en in synthetische benchmarks is de eerste nvme-drive voor de consumentenmarkt een stuk sneller dan alles wat we getest hebben. Net als m2-drives met pcie-interfaces slechten relatief dure insteekkaarten weliswaar de sata-bottleneck, maar in de praktijk levert dat minder grote prestatieverbeteringen op dan de overstap van harde schijf naar ssd.
In synthetische benchmarks merk je de winst van een nvme-drive boven een ahci-drive dus goed, maar in de praktijk een stuk minder. Natuurlijk is dat sterk afhankelijk van je gebruik. Bij surfen en lichte werkzaamheden maakt het weinig uit welke ssd je gebruikt, maar bij data-intensieve werklasten profiteer je wel degelijk van nvme. En zoals uit de IOMeter-resultaten blijkt, is de nvme-interface in potentie stukken sneller dan ahci-alternatieven. Hoewel onze traces een hogere snelheid niet ondubbelzinnig naar voren halen, is het mogelijk dat een Windows 8.1-systeem in de praktijk meer profiteert van de nvme-interface. Onze traces zijn immers gemaakt met Windows 7, een besturingssysteem dat minder geoptimaliseerd is voor solid state drives.
Is dat het hele verhaal? Nee, ten eerste heeft Intel met de 750-serie een nvme-drive op de markt gezet die goedkoper is dan alternatieven als pcie-drives en even duur is als m2-drives met pcie-bus. Dat geeft de consument meer keus en mogelijk snellere hardware.
Bovendien maakt nvme driveprestaties weer schaalbaar. Lange tijd hebben we tegen de sata-bottleneck aangehikt en toen we die eenmaal overschreden met pcie-drives en m2-drives, bleek dat nog niet zeer schaalbaar. Vooral pcie-drives maken immers gebruik van legacycomponenten; een sata-controller stuurt de ssd's aan, om via een ahci-bridge-chip op de pcie-bus te worden aangesloten. Met nvme-drives communiceert de nand-controller rechtstreeks met de pcie-bus. Zo kunnen ssd's met krachtigere controllers bijvoorbeeld via zestien pcie-lanes aangesloten worden zonder door extra hard- en softwarelagen beperkt te worden.
In onze synthetische benchmarks zien we dus een grote snelheidswinst van nvme-drives ten opzichte van gewone ssd's, pcie-ssd's en m2-ssd's, maar in de praktijk zal de prestatiewinst sterk afhankelijk zijn van de werklast. Dat neemt niet weg dat deze eerste nvme-ssd niet alleen een prijs- en prestatiedoorbraak voor respectielijk nvme-drives en ssd's betekent, maar ook nog eens laat zien dat nvme een schaalbare en toekomstvaste interface voor ssd's vormt.