Zirkuläre Puffer und eine Klingel

Bei NVMe werden Kommandos und Antworten mittels einfacher zirkulärer Puffer ausgetauscht. Sie heißen schlicht Command und Completion Queue; die Command Queue ist eine Warteschlange mit abzuarbeitenden Befehlen. Zirkuläre Puffer sind Speicherbereiche fester Größe, zu denen jeweils ein Schreib- und ein Leseindex gehören. Hat einer davon das Ende der Liste erreicht, wird er zurück auf 0 gesetzt.

Der Vorteil: Die Indizes und Listen werden jeweils exklusiv vom Prozessor oder dem Controller des damit angesprochenen Geräts beschrieben. Damit entfällt etwa das Lesen eines Statusregisters, das bei Sata erforderlich ist, bevor ein neues Kommando übergeben werden kann. Der Treiber kann Kommandos in die Warteschlange einfügen, im Extremfall, bis sie voll ist. Anschließend setzt er den Schreibindex, der in einem Register des NVMe-Controllers liegt.

Durch das Schreiben des Registers erkennt der Controller, dass neue Befehle vorliegen und beginnt sie abzuarbeiten. Der Mechanismus wird als Doorbell, also Klingel, bezeichnet und funktioniert ähnlich wie ein Interrupt.

Den wiederum kann der Controller nutzen, um den Treiber über abgearbeitete Kommandos zu informieren. Dazu schreibt er diese zuerst in die Completion Queue, setzt dann deren Schreibzeiger und löst einen Interrupt aus. Anhand der Completion Queue passt der Treiber dann den Leseindex der Command Queue an.

Warteschlangen sind für SSDs extrem wichtig

Um einen Datenträger möglichst effizient beschäftigt zu halten, ist eine Befehlswarteschlange unumgänglich. Daher wird sie mindestens seit dem AHCI von Host-Controllern verwendet. Allerdings kennt hier erst einmal nur der Host-Controller die Warteschlange, was noch immer dazu führt, dass der Festplatten-Controller auf den nächsten Befehl warten muss, nachdem er einen abgearbeitet hat.

Dieses Problem löste Sata-II 2004 mit einer Technik namens Native Command Queueing (NCQ, ein White Paper von Intel gibt einen guten Überblick [PDF]). Damit lassen sich mehrere Befehle direkt an den Festplatten-Controller schicken, der sie dann in beliebiger Reihenfolge abarbeitet. Der Kerngedanke dabei war, dass mechanische Festplatten Lese- und Schreibbefehle umsortieren können sollten, um sie bestmöglich mit der Bewegung der Platten und der Lese-Schreib-Köpfe abzustimmen.

Für SSDs ist das besonders wichtig, da sie, anders als mechanische Festplatten (mit Ausnahme von Modellen mit unabhängigen Schreib-Lese-Köpfen), mehrere Befehle parallel abarbeiten können. Der Flash-Speicher ist über mehrere Kanäle angebunden, die unabhängig bedient werden. Genau hier kommt NCQ an seine Grenzen: Es gibt nur eine Warteschlange, und die ist mit lediglich 32 ausstehenden Kommandos auch noch sehr klein. Sie zu erweitern, wäre kompliziert, da AHCI für die Verwaltung der Einträge ein 32-Bit-Register verwendet. Die SSD hat damit wenig Auswahl, um alle Kanäle beschäftigt zu halten; klappt es doch, ist die Queue schnell leer, was Leerlauf aufgrund der erforderlichen Kommunikation mit dem Treiber bedeutet.

Viel mehr und viel größere Warteschlangen

Die Beschränkung auf eine Queue hat noch ganz andere Nachteile: Sie stammt noch aus einer Zeit, in der Prozessoren nur einen Kern hatten. Wollen Prozesse auf mehreren Kernen auf die eine Queue zugreifen, müssen sie sich synchronisieren, was Zeitaufwand bedeutet.

NVMe greift deshalb in die Vollen: 65.535 Warteschlangen sind möglich, eine ist für Verwaltungsaufgaben vorgesehen. So kann quasi jeder Thread eine eigene Warteschlange nutzen, sie können zudem noch mit Prioritäten versehen werden. Nicht nur gibt es wesentlich mehr Queues, jede kann zudem 65.535 Befehle aufnehmen. So können Prozessor und Speichermedium lange Zeit ungestört arbeiten, ohne sich abstimmen zu müssen.

Wer NVMe hört, denkt sehr wahrscheinlich PCIe gleich mit. Und das aus gutem Grund, denn ohne Letzteres ist Ersteres kaum vorstellbar.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Festplatten: Das macht NVMe anders (und besser) als SataNVMe ohne PCIe: Kaum denkbar 
  1.  
  2. 1
  3. 2
  4. 3
  5.  


RienSte 16. Mär 2023 / Themenstart

Wohl eher 2 Minuten (HDD) vs. 20 Sekunden (SATA SSD) vs. 18 Sekunden (NVMe SSD). 1...

mgutt 11. Mär 2023 / Themenstart

Setzt ja leider voraus, dass man einen Chipsatz hat, der auf mehreren PCIe Steckplätzen...

Brian Kernighan 11. Mär 2023 / Themenstart

Was ist da attraktiv? Grade bei größeren Kapazitäten sind SATA SSDs bedeutend...

charlemagne 11. Mär 2023 / Themenstart

Der Artikel weist auf die historisch bedingten Unzulänglichkeiten von SATA hin. Zahlen...

Kommentieren



Aktuell auf der Startseite von Golem.de
USA
Amateurfunker nutzen 22-Meter-Skulptur als Antenne

Mit nur fünf Watt Sendeleistung konnten Studenten in New York fast die gesamten östlichen USA abdecken - dank einer Skulptur als Antenne.

USA: Amateurfunker nutzen 22-Meter-Skulptur als Antenne
Artikel
  1. E-Fuels: VDA begrüßt Verbrennerkompromiss, Greenpeace übt Kritik
    E-Fuels
    VDA begrüßt Verbrennerkompromiss, Greenpeace übt Kritik

    Die Einigung zwischen EU-Kommission und Bundesregierung zu Verbrennermotoren ruft erste Reaktionen hervor.

  2. Angeblicher ARD-Plan: Rundfunkbeitrag könnte auf über 25 Euro steigen
    Angeblicher ARD-Plan
    Rundfunkbeitrag könnte auf über 25 Euro steigen

    Laut einem Bericht wollen die öffentlich-rechtlichen Sender eine Anhebung des Rundfunkbeitrags auf bis zu 25,19 Euro pro Monat fordern.

  3. Elektrifizierung von Kommunalfahrzeugen: Radnabenantrieb von Schaeffler serienreif
    Elektrifizierung von Kommunalfahrzeugen
    Radnabenantrieb von Schaeffler serienreif

    Schaeffler setzt auf Radnabenantriebe für die Elektrifizierung von Fahrzeugen, die nicht schnell fahren und beispielsweise in der Stadt eingesetzt werden.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • MediaMarkt-Osterangebote • 3 Spiele kaufen, 2 zahlen • Cyberport Jubiläums-Deals • MSI Optix 30" WFHD/200 Hz 289€ • Verbatim 1-TB-SSD 42,90€ • Creative Sound Blaster X G6 99,99€ • Thrustmaster T300 RS GT PC/PS 290€ • Logitech G535 Lightspeed 69,99€ • NBB Black Weeks [Werbung]
    •  /