Roundup: PCI-Express-SSDs mit NVMe

Storage & Speicher | HT4U.net | Seite 3

NVMe vs. AHCI


Diese beiden Protokollstandards definieren die Kommunikation zwischen dem Speichermedium auf der einen Seite und dem Rechner bzw. dessen Memory auf der anderen Seite. AHCI (Advanced Host Controller Interface) wurde 2004 von einer von Intel geführten Arbeitsgruppe auf den Weg gebracht. Dieses Protokoll sollte den Umgang mit SATA-Geräten vereinheitlichen und stark vereinfachen. Letztlich wurde es aber mit Hinblick auf Festplatten mit rotierenden Scheiben entwickelt, wo Millisekunden vergehen konnten, bis der Schreib-/Lesekopf an der korrekten Position war und die notwendigen Positionen nacheinander ansteuern musste. ACHI führte dabei u. a. das NCQ (Native Command Queuing) ein, womit ausstehende Befehle bei Bedarf umsortiert werden konnten, wenn der Schreib-/Lesekopf dadurch Bewegungen einsparen konnte.

Flash-basierte Datenträger verhalten sich anders: Wo bei einer Festplatte ein Zugriff Millisekunden dauern konnte, sind es bei einer SSD nur Mikrosekunden. Wo eine Festplatte die Daten von den Positionen auf den Plattern nur nacheinander holen konnte, kann eine SSD dagegen parallel aus mehreren NAND-Blöcken lesen.

Dies war bei SATA-SSDs für den Endverbraucher kein Problem, denn die SSDs waren dennoch schnell genug. Für den Einsatz in Datacentern, wo niedrige Latenzen und viele IOPS zentrale Punkte sind, bestand jedoch Handlungsbedarf.

Gegenüber AHCI besitzt NMVe unter anderem folgende Vorteile, die in der Praxis für Heimanwender aber kaum spürbar sind:

  • Größere Kommando-Warteschlange (Queue): AHCI-1-Queue mit 32 Kommandos, NVMe-65535-Queues mit jeweils 65.536 Kommandos.
  • Kürzere Latenzen: AHCI benötigte zusätzliche register reads pro Kommando, diese entfallen bei NVMe.
  • Höhere Kommandoeffizienz: Für ein 4-KB-Kommando benötigt NVMe eine 64-Byte-Abfrage, während AHCI auf zwei serialisierte Abfragen angewiesen ist.
  • Parallelität: Bei NVMe entfallen beim Erteilen eines Befehls sog. Synchronisierungs-Locks, die bei AHCI noch notwendig waren.

Windows unterstützt NVMe nativ seit Version 8.1. Einige SSD-Hersteller bieten dennoch eigene Treiber an, welche die Performance erhöhen oder eventuelle Probleme mit dem nativen Windows-Treiber umgehen sollen. OS X unterstützt NVMe seit 10.10.4 und Linux seit Kernelversion 3.3.

Für NVMe-SSDs im Bereich der Heimanwender lässt sich also zusammenfassen: NVMe ist das Protokoll, PCI Express der elektrische Bus und M.2 die Bauform des Konnektors. Die Vorteile durch NVMe sind außerhalb des Serverbereiches kaum spürbar, aber der höhere Durchsatz des PCI-Express-Busses ist auch für Heimanwender nutzbar.