In diesem Zusammenhang (Budget Consumer Gear) bezieht sich Optane ganz klar nur auf eine kleine / schnelle mit NVMe verbundene SSD, die 3D XPoint-Speicher (anstelle von NAND-Flash) verwendet und daher eine sehr hohe Schreibsicherheit bietet. (Es nutzt sich also nicht ab, wenn es als Swap Space verwendet wird.)
Dies wird für viele Workloads immer noch ärgerlich sein, da ein Seitenfehler und viele Mikrosekunden für den Zugriff erforderlich sind, im Gegensatz zu ~ 70 Nanosekunden für einen DRAM-Zugriff (Cache-Miss) . Es ist nicht direkt auf den Speicherbus der CPU abgebildet. Außerdem kann die Ausführung außerhalb der Reihenfolge / HW-Prefetch / andere Speicherparallelität ~ 10 Cache-Fehler pro physischem Kern im Flug halten, aber ein Seitenfehler wird serialisiert . Während das Betriebssystem einen Seitenfehler bearbeitet, kann (in diesem Thread) keine nützliche Arbeit geleistet werden. Daher gibt es für OoO Exec keine Möglichkeit, die Latenzzeit für Hard-Page-Fehler zu verbergen. (Aber selbst 70 ns sind zu lang, um sich vollständig zu verstecken. Trotzdem trägt die Tatsache, dass mehrere Fehler im Flug zu verschiedenen Linien gemacht wurden, erheblich dazu bei, die Belastung für einige Workloads zu verringern.)
Die Verwendung einer äußerst geringen Menge an RAM und abhängig von einer schnellen SSD für Auslagerungsspeicher / Auslagerungsdatei ist nicht der einzige Anwendungsfall für diese Art von Optane. (Und wahrscheinlich nicht einmal ein guter Anwendungsfall). Wie unter https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html beschrieben, dient es hauptsächlich als transparenter Cache für eine magnetische Festplatte. Ich denke, Intel bietet Windows-Treiber, um dies zu ermöglichen. Sie können SATA-Festplatten mit rotierendem Magnetspeicher und integriertem Flash als Puffer / Cache für Teile der Festplatte kaufen, auf die häufig zugegriffen wird. Optane HW + -Treiber können dies für jede Festplatte tun.
Optane NVMe hat anscheinend eine sehr gute zufällige Leseleistung bei geringer Warteschlangentiefe (warten Sie, bis ein Lesevorgang abgeschlossen ist, bevor Sie einen anderen starten) nicht helfen). Es sollte also großartig sein, um die Programmstartzeiten und den Systemstart zu beschleunigen.
Nicht besonders erstaunlich für große zusammenhängende Schreibvorgänge mit großen Dateien. Hoffentlich kann die Treibersoftware den Optane-Cache umgehen und direkt zur darunter liegenden Magnetplatte wechseln. Die Optane-Hauptseite von Intel enthält Links zu https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html, die ihre 16 GB M anzeigen .2 Optane hat ein sequentielles Lesen von 900 MB / s, aber nur ein sequentielles Schreiben von 145 MB / s. Die 32-GB-Version ist mit 1350 MB / s Lese- und 290 MB / s Schreibgeschwindigkeit schneller. Aber auch das ist nicht das, was Optane am besten kann. Die sequentiellen und zufälligen Lese-IOPS sind beide 240.000 IOPS mit einer Leselatenz von 7 µs.
Intel hat so etwas wie IMDT (Intel Memory Drive Technology)Dies ist ein Hypervisor, der die Illusion eines größeren Hauptspeicheradressraums für das Betriebssystem erzeugt. Einige Seiten werden dem eigentlichen DRAM-Hauptspeicher zugeordnet, während andere dem SSD-Speicher zugeordnet werden. Wenn auf eine Seite zugegriffen wird, die der SSD zugeordnet ist, tritt ein Seitenfehler auf, der von IMDT abgefangen wird und dazu führt, dass die Seite von der SSD in den Hauptspeicher verschoben wird (wodurch möglicherweise eine Seite aus dem Speicher auf die SSD verschoben wird). IMDT versucht, Seiten vorab in den DRAM zu laden, um die geringere Bandbreite und Latenz der SSD zu verringern. Es wird auch versucht, die heißesten Seiten im Hauptspeicher zu belassen, damit mit minimalem Aufwand auf sie zugegriffen werden kann (der einzige Nachteil kann durch die zusätzliche Paging-Ebene aufgrund der Virtualisierung verursacht werden.) Das Betriebssystem bemerkt diese Zuordnung meistens nicht und funktioniert normal. Diese Art von Speichersystem wird als Software-Defined Memory (SDM) bezeichnet. Der netteDas Dokument "Evaluation of Intel Memory Drive Technology Performance für wissenschaftliche Anwendungen" bietet eine Leistungsbewertung von IMDT und vergleicht es mit einem System mit der gleichen Menge an DRAM-Hauptspeicher. Ich habe das Papier nicht gründlich gelesen, aber es scheint, dass IMDT Seiten zwischen NUMA-Knoten migrieren kann, um sie näher an den Knoten zu bringen, auf dem sie am häufigsten benötigt werden.
IMDT wird jedoch nur auf Intel-Prozessoren mit Serverqualität unterstützt. Es soll kostengünstige, stromsparende Server mit potenziell geringen Auswirkungen auf die Leistung schaffen.
http://www.lmdb.tech/bench/optanessd/imdt.html hat einige Benchmarks mit einer Optane DC P4800X SSD. (Die High-End-Version für Rechenzentren, nicht für Endverbraucher. Weitaus höhere dauerhafte Schreibfähigkeit.)
Ich habe mir das noch nicht angesehen, daher bin ich mir nicht sicher, ob es überhaupt relevant ist, wie Windows von einer Optane-SSD für Endverbraucher profitieren kann.
Der Markenname Optane wird (etwas verwirrend) auch für eine viel interessantere exotische Sache verwendet:
Nichtflüchtige 3D XPoint-DIMMs , auch bekannt als "Optane DC Persistent Memory". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass ist der Name des Optane DC PM der ersten Generation. Siehe diese Informationen über die künftigen Generationen.
Intel hat seine eigene meist-Marketing - Seite für sie hier , mit einigen Links zu Tech - Details. Das "DC" steht anscheinend für Data-Centric.
Dies ist ein nichtflüchtiger Speicher, der in einen DDR4-DIMM-Steckplatz eingesteckt und als tatsächlicher physischer Speicher angezeigt wird. Anscheinend wird es nur von Xeons der nächsten Generation voll unterstützt (nicht von der aktuellen Skylake-X aka Skylake Scalable Processor-Serie).
Es gibt andere Arten von NVDIMMs, z. B. batteriegepufferte reguläre DRAMs (optional mit Flash, um die Daten für ein langfristiges Ausschalten zu speichern, sodass sie nur einen Superkondensator anstelle einer chemischen Batterie benötigen). https://en.wikipedia.org/wiki/NVDIMM enthält einige Details.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot enthält einige allgemeinere Informationen zu NVDIMMs (und deren JEDEC-Standardisierung) und wie OS + -Anwendungen zusammenarbeiten können, damit Anwendungen direkt mit diesen kommunizieren können eine Speicherregion, in der der NV-Speicher zugeordnet ist, um die Festschreibungsreihenfolge zu gewährleisten usw.). Der wichtigste Punkt ist, dass sie tatsächlich die Grenze zwischen RAM und Speicher verwischen (im Sinne der Computerarchitektur, nicht im Sinne der strengen Vermarktung der betrügerischen Laptop-Anzeige, die Sie gesehen haben und die 4 + 16 GB beansprucht).
Das Betriebssystem kann einen Prozess diesen nichtflüchtigen physischen Speicher in seinen eigenen virtuellen Adressraum abbilden lassen, sodass er ohne Systemaufrufe direkt auf den Speicher zugreifen und ihn unter Speicheradressen speichern kann, so dass die CPU-Hardware nicht mehr aus dem Speicher kommt. Auftragsausführung bei ausstehenden Lese- / Schreibvorgängen . (Es gibt Softwarebibliotheken, mit denen Entwickler diese Vorteile nutzen können, einschließlich der Möglichkeit flush()
, sicherzustellen, dass Daten tatsächlich in einen dauerhaften Speicher geschrieben werden.
Diese Zuordnung kann sogar zurückgeschrieben werden , sodass die Nutzung der Daten vollständig vom L3 / L2 / L1d-Cache profitiert, bis es Zeit ist, sie zurückzuschreiben (falls geändert). Für meistens lesbare Daten kann diese Art von Optane zu Recht als 4 + 16 GB RAM bezeichnet werden. (Natürlich würde der aktuelle Anwendungsfall für Rechenzentren für Optane NVDIMMs viel größere DIMMs wie 512 GB verwenden.)
(Es ist nicht wie eine mmap
ed-Datei auf einer normalen Festplatte, bei der Sie nur den Seiten-Cache des Betriebssystems für die Datei zuordnen, und das Betriebssystem übernimmt die E / A-Vorgänge im Hintergrund, um fehlerhafte RAM-Seiten mit dem Speichergerät zu synchronisieren.)
Es muss unbedingt sichergestellt werden, dass einige Daten bereits vor anderen den NV-Speicher erreicht haben (um eine Wiederherstellung nach einem Absturz wie ein Dateisystem oder ein Datenbankjournal zu ermöglichen). Bei Systemaufrufen verwenden Sie hier POSIX fsync
oder fdatasync
. Aber da die Anwendung den Speicher wirklich speicherabgebildet hat, kommen hier Bibliotheksfunktionsaufrufe ins Spiel.
In x86 asm greifen wir mit normalen Lasten / Speichern auf den Speicher zu, es ist jedoch wichtig, wann Daten tatsächlich auf das NVDIMM zurückgeschrieben werden (wo sie vor Stromausfall geschützt sind), nicht, wenn sie für andere Kerne oder für Cache-kohärenten DMA sichtbar sind (Sobald es vom Speicherpuffer in den L1d-Cache geschrieben wurde), kümmern sich die normalen Speicherordnungsregeln von x86 nicht vollständig um alles. Wir benötigen spezielle Anweisungen, um ausgewählte Cache-Zeilen aus dem Cache der CPU zu löschen. (Zur Verwendung durch die NV-Speicherbibliotheken.)
Die clflush
asm-Anweisung gibt es schon eine Weile, aber NV-Speicher ist ein Hauptgrund, warum Intel clflushopt
Skylake hinzugefügt hat (obwohl es auch andere Anwendungsfälle gibt) und clwb
Ice Lake hinzufügt (Rückschreiben ohne Räumung).
Dan Luu hat vor einiger Zeit einen interessanten Artikel über die Vorteile des Wegfalls des Betriebssystems für den Speicherzugriff geschrieben, in dem er Intels Pläne zu diesem Zeitpunkt für clflush
/ clwb
und ihre Semantik der Speicherreihenfolge ausführlich beschreibt . Es wurde geschrieben, als Intel noch vorhatte, eine Anweisung namens pcommit
(persistentes Festschreiben) als Teil dieses Prozesses zu fordern , aber Intel entschied sich später, diese Anweisung zu entfernen: Die PCOMMIT-Anweisung zu verwerfen, enthält einige interessante Informationen darüber, warum und wie die Dinge unter der Haube funktionieren .
(Dieses Thema hat die Details des x86-NV-Speichers auf niedriger Ebene weit hinter sich gelassen. Ich sollte den größten Teil dieses Abschnitts an einer anderen Stelle veröffentlichen, aber ich denke, dass dies der Fall ist.)
Es gibt auch Optane DC-SSDs als PCIe x4-Karte oder 2,5 " . Die 750 GB-Version bietet sequentielles Lesen mit bis zu 2500 MB / s, sequentielles Schreiben mit 2200 MB / s und zufälliges Lesen oder Schreiben mit 550000 IOPS. Die Leselatenz ist geringfügig schlechter als der M.2 NVMe bei 10 us.
Dies ist, was Sie wollen, wenn Sie für einen Datenbankserver oder etwas (wenn Sie nicht NVDIMM verwenden können), aber es würde Ihren 4 GB Laptop nicht viel schneller machen (für die meisten typischen Anwendungsfälle) als die 16 GB Optane, mit denen sie es verkaufen. Swap Space Thrashing führt häufig zu vielen abhängigen Lesevorgängen, da eine Seite eingelesen und aufgerufen werden muss, bevor der Code, bei dem ein Seitenfehler aufgetreten ist, mit den nächsten Schritten fortgesetzt werden kann. Wenn der Arbeitsspeicher sehr knapp ist, verfügt das Betriebssystem nicht über Ersatzseiten, in die aggressiv vorab geladen werden kann, sodass Sie mit geringen Warteschlangentiefen rechnen müssen, für die Optane für Endverbraucher optimiert ist. (Geringe Wartezeit.)
Die Intel Optane SSD bietet einen guten Kompromiss zwischen Leistung, Stromverbrauch und Kosten. SSDs verbrauchen grundsätzlich keinen Strom, wenn nicht darauf zugegriffen wird. Im Gegensatz dazu ist der statische Stromverbrauch (hauptsächlich aufgrund von Auffrischung) in DRAM-Chips signifikant. Die Menge an DRAM in einem System sollte daher idealerweise der Arbeitsmenge der typischen Arbeitslast entsprechen. Das von Ihnen erworbene System wurde für eine typische Arbeitslast entwickelt, die maximal 4 GB Hauptspeicher benötigt. Wenn das System stattdessen über 8 GB Hauptspeicher verfügt, wird unnötigerweise mehr Strom verbraucht, was die Batterielebensdauer verkürzt. Mit der Optane-SSD können Sie jedoch gelegentlich Workloads ausführen, die etwas mehr Hauptspeicher erfordern, wobei die Leistung nur minimal beeinträchtigt wird (im Vergleich zu NAND-basierten SSDs oder HDDs).
Der DRAM-Speicher kostet derzeit ca. USD 4,5 USD pro 1 GB, während die Intel Optane SSD ca. USD 2 USD pro 1 GB kostet. Eine 16-GB-Optane-SSD ist also teurer als ein 4-GB-DRAM-Modul, aber billiger als ein 8-GB-DRAM-Modul. Wenn Sie also die Optane-SSD herausnehmen und 4 GB mehr Speicher hinzufügen, erhalten Sie ein billigeres System, das bei typischen Workloads mit mehr als 4 GB Arbeitsspeicher auch im Durchschnitt schneller ist. Die Behandlung von Seitenfehlern, das Vorabrufen von Seiten und das Austauschen von Seiten von der Festplatte sind jedoch langsamer. Aus diesem Grund ist das 8-GB-System wahrscheinlich langsamer als das 4-GB-DRAM + 16-GB-Optane-SSD-System, wenn die typische Arbeitslast weniger als (oder ungefähr) 4 GB Arbeitsspeicher benötigt.
Ihr Laptop eignet sich hervorragend, wenn Sie ihn nur zum Surfen im Internet oder zur Textbearbeitung verwenden möchten. Die Optane-SSD hilft beim Booten, bietet schnellen Zugriff auf die Dateien, auf die am häufigsten zugegriffen wird, und kann als zusätzlicher sekundärer Speicher verwendet werden. Obwohl Sie also mehr 16 GB Optane SSD als 4 GB DRAM bezahlen, erhalten Sie dafür bestimmte, einzigartige Vorteile. Einige der anderen von Ihnen erwähnten Anwendungen, wie z. B. RStudio, erfordern jedoch mindestens 4 GB Arbeitsspeicher. Wenn Sie in der Regel gleichzeitig einen Browser und RStudio (und möglicherweise andere Apps) verwenden, sollten Sie ein System mit mindestens 8 GB Arbeitsspeicher erwerben. Optane SSD ist allerdings noch zu haben.