NVMe löscht den Unterschied zwischen Speicher und Speicher





Die Geschichte der Speicherung ist ein Wettlauf zwischen Speicher- und Verarbeitungsleistung. Auf dem Weg zum Computer-Nirvana gibt es einen Engpass - die Speicherung von Milliarden von Nullen und Einsen. Der neueste Player auf diesem Gebiet ist NVMe ( Non-Volatile Memory Express ), eine Art Hybrid aus mehreren früheren technischen Lösungen.



Die erste Generation von Heimcomputern verwendete Disketten und Kompaktkassetten als Speichergeräte Mit dem Wachstum der Computer wuchs auch die Bedeutung der Speicherung. In den neunziger Jahren verbreiteten sich Festplatten, sodass Sie zuerst Megabyte und dann Gigabyte an Informationen speichern konnten. Infolgedessen ist der Bedarf an einem schnellen Kommunikationssystem zwischen dem Laufwerk und dem Rest des Systems gewachsen. Zu dieser Zeit wurde die ATA (IDE) -Schnittstelle am häufigsten im Programmed Input-Output (PIO) -Modus verwendet.



Infolgedessen wurde die Technologie auf Direct Memory Access (DMA), UDMA, auch bekannt als Ultra ATA und Parallel ATA, und SCSI-basierte Schnittstellen in Apple-Computern und den meisten Servern umgestellt. Infolgedessen wurde Parallel ATA zu Serial ATA (SATA) und Parallel SCSI zu Serial Attached SCSI (SAS). SATA wurde vor der Einführung von NVMe- und Solid-State-Laufwerken hauptsächlich in Laptops und Desktops verwendet.



Alle diese Schnittstellen wurden entwickelt, um mit Speichergeräten Schritt zu halten. In diesem Sinne ist NVMe mit seiner Integration in das System nicht im Bilde. NVMe unterscheidet sich auch darin, dass es nicht an eine bestimmte Schnittstelle oder einen bestimmten Anschluss gebunden ist, was verwirrend sein kann. Wer kann M.2 und U.2 trennen, geschweige denn welches Protokoll die Schnittstelle verwendet, sei es SATA oder NVMe?



Lassen Sie uns die wunderbare und seltsame Welt von NVMe verstehen.



Täuschendes Aussehen





SATA Express-Elemente, funktional ähnlich wie M.2.



Wenn Sie jemanden bitten, Ihnen den NVMe-Steckplatz auf dem Motherboard zu zeigen, wird Ihnen höchstwahrscheinlich ein Bild des M.2-Steckplatzes angezeigt, da dieser zum beliebtesten Solid State Drive (SSD) in der Unterhaltungselektronik geworden ist. Gleichzeitig gehört möglicherweise auch ein M.2-Steckplatz mit einem eingesteckten Solid-State-Laufwerk nicht zu NVMe, da diese Schnittstelle auch SATA verwendet.



Die Karte neben dem M.2-Steckplatz zeigt häufig an, welche Technologie unterstützt wird. Es ist auch eine gute Idee, die Anweisungen für das Motherboard zu lesen. Der Grund für die Verwirrung ist, dass es anfangs einen Mini-SATA-Standard (mSATA) für TTN gab, der den PCIe Mini Card-Formfaktor verwendete, der sich später zum M.2-Formfaktor und zur U.2-Schnittstelle entwickelte. Letzteres ähnelt eher SATA- und SAS-Schnittstellen und kombiniert zwei Kanäle, SATA und PCIe, zu einer Schnittstelle für den Anschluss von TTN.



In der Zwischenzeit wurde der M.2-Standard (nach einem kurzen Ausflug in den kurzlebigen SATA Express-Standard) erweitert, um nicht nur SATA, sondern auch AHCI zu unterstützenmit NVMe. Daher werden M.2-Steckplätze häufig fälschlicherweise als "NVMe-Steckplätze" bezeichnet, obwohl NVMe tatsächlich ein PCIe-basiertes Protokoll ist, das keine Formfaktoren oder Steckertypen definiert.





M.2-Schnittstelle mit B- und M-Tasten



In der Zwischenzeit ist der M.2-Formfaktor selbst sehr vielseitig - oder verwirrend, wie jeder andere auch. Physikalisch kann es 12, 16, 22 und 30 mm breit sein und Stützlängen von 16 bis 110 mm haben. Am Rand des Steckplatzes wird eine Reihe von Beschriftungen angebracht, um die Funktionalität anzuzeigen und mit den Beschriftungen auf dem Steckplatz selbst übereinzustimmen. Am häufigsten sind dies die B- und M-Markierungen aus der Liste der Schlüsselmarkierungen, die beispielsweise Folgendes enthält:



A: 2x PCIe x1, USB 2.0, I2C und DP x4.

B: PCIe x2, SATA, USB 2.0 / 3.0, Audio usw.

E: 2x PCIe x1, USB 2.0, I2C usw.

M: PCIe x4, SATA und SMBus.



Es stellt sich heraus, dass die physische Größe der M.2-Erweiterungskarte bis zu 32 Stück beträgt, und dies noch bevor wir 12 mögliche Änderungen aus der Liste berücksichtigen. Glücklicherweise scheint die allgemeine Industrie einen gemeinsamen 22 mm breiten Standard für Speicherkarten mit begrenzten Längen übernommen zu haben. Infolgedessen sind NVMe-TTNs als "2242" gekennzeichnet, was 22 mm breit und 42 mm lang bedeutet. TTN-Karten können mit den Buchstaben B, M oder beiden gekennzeichnet werden.



Es ist wichtig zu beachten, dass heute M.2-Steckplätze unter beengten Bedingungen aktiv als PCIe-Erweiterung verwendet werden. Daher haben WiFi-Karten häufig den M.2-Formfaktor.



NVMe definieren



Dies bringt uns zur grundlegenden Definition von NVMe: Es ist eine Standardschnittstelle für direkt angeschlossene PCIe-Laufwerke. Es unterscheidet sich von SATA dadurch, dass das erstere das PCIe-Protokoll in das SATA-Protokoll konvertiert, das dann von einem speziellen Chip auf dem Laufwerk interpretiert werden muss, bevor Befehle zur Datenspeicherung ausgeführt werden können.



Stattdessen definiert NVMe eine Schnittstelle, die direkt auf jedem Betriebssystem mit einem NVMe-Treiber verwendet werden kann. Befehle werden an das NVMe-Laufwerk gesendet, das sie zum Lesen oder Schreiben oder zum Ausführen von Wartungsvorgängen wie TRIM ausführt ... Da jedes Gerät, das behauptet, ein NVMe-Gerät zu sein, als TTN (NAND Flash, 3D XPoint usw.) verwendet werden kann, wurde das NVMe-Protokoll mit Blick auf niedrige Latenz und hohe Paketübertragungsraten entwickelt.





Optane SSD von Intel wie 3D XPoint funktioniert unabhängig von der Arbeitslast reibungslos.



In letzter Zeit hat die NVMe-Funktion als lokaler Speicherpuffer, Host Memory Buffer ( HMB ), an Popularität gewonnen . Dies ist ein Versuch, die Notwendigkeit zu beseitigen, Daten im DRAM mit TTN vom Typ NAND Flash zu puffern. Die Funktion nutzt einen Teil des Systemspeichers als Puffer, während relativ wenig Leistung zu verlieren, während der Puffer wird hauptsächlich verwendet , um die Adresse Tabelle zwischenzuspeichern.



Angesichts des Tempos der Speicherentwicklung machen Technologien wie 3D XPoint auf lange Sicht sogar solche Tricks unnötig. Die Zugriffsgeschwindigkeit auf denselben 3D-XPoint liegt näher am DRAM als am NAND-Flash. Da TTNs vom Typ 3D XPoint keinen DRAM-Puffer benötigen, kann ihre zunehmende Beliebtheit dazu führen, dass NVMe bereits für sie optimiert ist.



NVMe hacken





Speicher auf Magnetkernen 64 × 64 (4 kB)



Es lohnt sich zu überlegen, was mit NVMe noch alles möglich ist, außer wie man ein TTN kauft und es in einen M.2 B- oder M.-Steckplatz steckt. Dort müssen Sie entscheiden, was ist für Sie interessanter - das Hacken des Laufwerks (es sei nur eine Art DRAM oder SRAM) oder des M.2-Steckplatzes selbst.



PCIe-Steckplätze in voller Länge sind groß, und Erweiterungskarten bieten viel Platz für sperrige Komponenten wie BGA-Chips und gigantische Kühlsysteme. Im Gegenteil, M.2-Erweiterungskarten sind für kleine und kompakte Lösungen konzipiert, die in einen Laptop passen. Sie können beispielsweise ein FPGA mit der erforderlichen SerDes- und PCIe-Hardware im M.2-Formfaktor kombinieren, um eine kompakte Erweiterungskarte für Laptops und eingebettete Geräte zu erstellen.



Jüngste Hacks schlagen vor, dem Raspberry Pi NVMe-Unterstützung hinzuzufügen , das TTN im Pinebook Pro durch eine WiFi-Karte zu ersetzen und das NVMe-Flash-Laufwerk mithilfe eines PCIe-ZIF-Adapters vom iPhone zu lesen .



Gleichzeitig verbietet niemand, etwas sehr Seltsames zu kombinieren - zum Beispiel ein NVMe-Laufwerk auf Magnetkernen.



Fazit



Rückblickend auf Jahrzehnte der Computertechnologie ist klar, dass die Unterscheidung zwischen Speicher und Speicher schon immer bestand. Darüber hinaus hat der Speicher immer als flüchtige Geräte wie SRAM oder DRAM gedient. In letzter Zeit hat diese Unterscheidung immer weniger an Bedeutung gewonnen. NAND Flash mit NVMe-Schnittstelle verspricht uns bereits eine möglicherweise sehr geringe Latenz und Geschwindigkeit von mehreren Gigabyte pro Sekunde (insbesondere bei Verwendung von PCIe 4.0), aber dies ist noch nicht das Ende der Geschichte.



Die heißeste neue Funktion sind die "Nur-Lese-Speicher" -DIMMs, die sich in regulären Speichersteckplätzen befinden. Sie verwenden FestkörpertechnologieIntel Optane zur Erweiterung des Systemspeichers auf bis zu 512 GB pro Modul. Diese Module funktionieren natürlich bisher nur auf Intel-Servern. Sie werden zum Puffern von Datenbanken verwendet, deren große Volumes die Verwendung von normalem Speicher als Puffer nicht zulassen (z. B. Terabyte DDR4-DIMM).



Wenn wir ein sehr schnelles und nichtflüchtiges Speichergerät haben, das direkt an den Speichercontroller des Prozessors angeschlossen ist, können wir die Latenz auf ein absolutes Minimum reduzieren. Und obwohl 3D XPoint (als eine Art Phasenwechselspeicher) noch nicht so schnell wie DDR SDRAM ist, zeigt es uns, was nach NVMe auftreten kann, wenn der Unterschied zwischen "Systemspeicher" und "Datenspeicher" vollständig verschwindet oder sich in Unkenntlichkeit ändert .



All Articles