In questo contesto (attrezzatura per i consumatori a basso costo), Optane si riferisce chiaramente a un SSD piccolo / veloce connesso a NVMe che utilizza la memoria XPoint 3D (anziché il flash NAND), conferendogli una resistenza di scrittura molto elevata. (Quindi non si usurerà se usato come spazio di scambio).
Ciò continuerà a fare schifo per molti carichi di lavoro, perché ci vuole ancora un errore di pagina e molti microsecondi per accedere, contro ~ 70 nanosecondi per un accesso DRAM (cache miss) ; non è direttamente mappato in memoria sul bus di memoria della CPU. Inoltre, l'esecuzione fuori ordine / prefetch HW / altro parallelismo della memoria può mantenere ~ 10 errori cache in volo per core fisico, ma un errore di pagina sta serializzando . Nessun lavoro utile può accadere (in questo thread) mentre il sistema operativo sta riparando un errore di pagina, quindi non c'è alcuna opportunità per il dirigente di OoO di nascondere quella latenza di errore di pagina dura. (Ma anche 70ns è troppo lungo per nascondersi completamente. Comunque, avere più missioni in volo su linee diverse fa molta strada per mitigarlo per alcuni carichi di lavoro.)
L'uso di una quantità di RAM ridicolmente piccola e in base a un SSD veloce per lo spazio di scambio / file di paging non è l'unico caso d'uso per questo tipo di Optane. (E probabilmente nemmeno un buon caso d'uso). Come https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html descrive, il suo caso d'uso principale è come una cache trasparente per un disco rigido magnetico. Penso che Intel fornisca i driver di Windows per farlo accadere. È possibile acquistare dischi rigidi SATA con memoria magnetica rotazionale con alcuni flash integrati come buffer / cache per le parti del disco a cui si accede frequentemente. I driver Optane HW + possono farlo per qualsiasi disco.
Optane NVMe sembra avere ottime prestazioni di lettura casuale a bassa profondità di coda (attendere che una lettura termini prima di avviarne un'altra, cosa che sfortunatamente accade quando un programma deve leggere un blocco prima che possa capire cosa fare dopo, e il prefetching del software non è sta aiutando). Quindi dovrebbe essere ottimo per accelerare gli orari di avvio del programma e l'avvio.
Non particolarmente sorprendente per grandi scritture contigue di file di grandi dimensioni; si spera che il software del driver sappia bypassare la cache di Optane e passare direttamente al disco magnetico sottostante. La pagina Optane principale di Intel si collega a https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html che mostra i loro 16GB M .2 Optane ha una lettura sequenziale di 900 MB / s, ma solo una scrittura sequenziale di 145 MB / s. La versione da 32 GB è più veloce, a 1350 MB / s in lettura, 290 MB / s in scrittura. Ma ancora una volta, quelli non sono i migliori Optane. I suoi IOPS sequenziali e casuali sono entrambi IOPS 240k, con latenza di lettura di 7 µs.
Intel ha qualcosa chiamato IMDT (Intel Memory Drive Technology)che è un hypervisor che crea l'illusione di uno spazio di indirizzi di memoria principale più grande per il sistema operativo. Alcune pagine verranno associate alla memoria principale DRAM effettiva, mentre altre verranno associate alla memoria SSD. Quando si accede a una pagina mappata all'SSD, si verifica un errore di pagina rilevato da IMDT, che causerà il trasferimento della pagina dall'SSD alla memoria principale (eliminando potenzialmente una pagina dalla memoria all'SSD). IMDT tenterà di precaricare le pagine nella DRAM per alleviare la larghezza di banda e la latenza inferiori dell'SSD. Cercherà anche di mantenere le pagine più calde nella memoria principale in modo che sia possibile accedervi con una penalità minima (l'unica penalità potrebbe provenire dai livelli di paginazione aggiuntivi a causa della virtualizzazione). Il sistema operativo è per lo più ignaro di questa mappatura e funziona normalmente. Questo tipo di sistema di memoria è chiamato memoria definita dal software (SDM). Il belloun documento intitolato "Valutazione delle prestazioni della tecnologia Intel Memory Drive per applicazioni scientifiche" fornisce una valutazione delle prestazioni di IMDT e la confronta con un sistema che ha la stessa quantità di memoria principale DRAM. Non ho letto attentamente il documento, ma sembra che IMDT possa migrare le pagine tra i nodi NUMA per avvicinarli al nodo in cui sono maggiormente necessari.
Detto questo, IMDT è supportato solo su processori Intel di livello server. Ha lo scopo di creare server economici ed efficienti dal punto di vista energetico con un impatto potenzialmente ridotto sulle prestazioni.
http://www.lmdb.tech/bench/optanessd/imdt.html ha alcuni benchmark con un SSD Optane DC P4800X. (La versione di data center di fascia alta, non roba di consumo. Capacità di scrittura sostenuta molto più alta.)
Non ho esaminato questo, quindi non sono sicuro se sia rilevante per il modo in cui Windows potrebbe trarre vantaggio da un SSD Optane di consumo.
Il marchio Optane è (un po 'confuso) anche usato per una cosa esotica molto più interessante:
DIMM non volatili 3D XPoint , alias "Optane DC Persistent Memory". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass è il nome di Optane DC PM di prima generazione. Fare riferimento a questo per informazioni sulle generazioni future.
Intel ha una propria pagina di marketing principalmente per questo qui , con alcuni collegamenti ai dettagli tecnici. Il "DC" sta per Data-Centric, a quanto pare.
Questa è memoria non volatile che si collega a uno slot DIMM DDR4 e appare come memoria fisica effettiva. Apparentemente è supportato completamente solo dagli Xeon di prossima generazione (non dall'attuale serie Skylake-X aka Skylake Scalable Processor Processor).
Esistono altri tipi di NVDIMM, ad esempio DRAM normale con batteria (facoltativamente con flash per scaricare i dati per lo spegnimento a lungo termine, quindi hanno solo bisogno di un supercondensatore invece di una batteria chimica). https://en.wikipedia.org/wiki/NVDIMM ha alcuni dettagli.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot ha alcune informazioni più generali sugli NVDIMM (e sulla loro standardizzazione JEDEC e su come le applicazioni OS + possono collaborare per consentire alle applicazioni di comunicare direttamente con una regione di memoria mappata memoria NV, garantendo l'ordinamento del commit e così via). Il punto principale è che in realtà sfocano il confine tra RAM e memoria (in un senso di architettura del computer, non nel senso strettamente commerciale dell'annuncio ingannevole del laptop che hai visto che sosteneva 4 + 16 GB.)
Il sistema operativo può consentire a un processo di mappare questa memoria fisica non volatile nel proprio spazio di indirizzi virtuale in modo da poter accedere all'archiviazione direttamente con carichi di spazio utente e archiviare su indirizzi di memoria, senza alcuna chiamata di sistema, lasciando che l'hardware della CPU continui a rimanere fuori dal- esecuzione dell'ordine mentre ci sono letture / scritture in sospeso . (Esistono librerie di software che consentono agli sviluppatori di trarne vantaggio, inclusa la possibilità di flush()
assicurarsi che i dati vengano effettivamente scritti in archivi permanenti.
Questa mappatura può anche essere memorizzata nella cache di write-back , quindi l'utilizzo dei dati beneficia completamente della cache L3 / L2 / L1d fino al momento di riscriverla (se modificata). Per i dati prevalentemente a lettura, questo tipo di Optane potrebbe davvero essere chiamato 4 + 16 GB di RAM. (Naturalmente, l'attuale caso d'uso del data center per gli NVDIMM Optane userebbe DIMM molto più grandi, come 512 GB.)
(Non è come un mmap
file ed su un normale disco in cui è sufficiente mappare la cache della pagina del sistema operativo per il file e il sistema operativo si occupa di eseguire l'I / O in background per sincronizzare le pagine RAM sporche con il dispositivo di archiviazione.)
È essenziale assicurarsi che alcuni dati abbiano effettivamente raggiunto l'archiviazione NV prima di altri (per consentire il ripristino di crash come un filesystem o un journal del database) è essenziale. Con le chiamate di sistema, è qui che utilizzeresti POSIX fsync
o fdatasync
. Ma poiché l'applicazione ha l'archiviazione realmente mappata in memoria, è qui che arrivano le chiamate alle funzioni di libreria.
In x86 asm, accediamo all'archiviazione con carichi / archivi normali, ma ci preoccupiamo quando i dati vengono effettivamente riscritti su NVDIMM (dove sono al sicuro dalla perdita di energia), non quando sono visibili ad altri core o al DMA coerente con la cache (non appena passa dal buffer del negozio alla cache L1d), quindi le normali regole di ordinamento della memoria di x86 non si occupano completamente di tutto. Abbiamo bisogno di istruzioni speciali per svuotare le linee di cache selezionate dalla cache della CPU. (Per l'utilizzo da parte delle librerie di archiviazione NV.)
L' clflush
istruzione asm esiste da un po ', ma lo storage NV è uno dei motivi principali per cui Intel ha aggiunto clflushopt
Skylake (anche se ha anche altri casi d'uso) e sta aggiungendo clwb
in Ice Lake (riscrittura senza sfratto).
Dan Luu ha scritto un articolo interessante qualche tempo fa sui vantaggi di rimuovere il sistema operativo dall'accesso allo storage, descrivendo in dettaglio i piani di Intel a quel punto per clflush
/ clwb
e la loro semantica di ordinamento della memoria. È stato scritto mentre Intel stava ancora pianificando di richiedere un'istruzione chiamata pcommit
(commit persistente) come parte di questo processo, ma Intel ha successivamente deciso di rimuovere tale istruzione: Deprecare l'istruzione PCOMMIT ha alcune informazioni interessanti sul perché e su come funzionano le cose .
(Questo è andato fuori tema nei dettagli di basso livello dello storage x86 NV. Dovrei trovare altrove per pubblicare la maggior parte di questa sezione, ma penso che)
Esistono anche SSD DC Optane , come una scheda PCIe x4 o 2,5 " . La versione da 750 GB esegue fino a 2500 MB / s in lettura sequenziale, 2200 MB / s in scrittura sequenziale e 550000 IOPS in lettura o scrittura casuale. Leggere la latenza è leggermente peggiore di M.2 NVMe, a 10 µs.
Questo è ciò che desideri se utilizzi un server di database o qualcosa del genere (se non puoi utilizzare NVDIMM), ma non renderebbe il tuo laptop da 4 GB molto più veloce (per i casi d'uso più comuni) rispetto all'Opane da 16 GB con cui lo vendono. Il blocco dello spazio di swap spesso produce molte letture dipendenti poiché una pagina deve essere paginata e acceduta prima che il codice su cui si è verificata la pagina possa continuare su qualunque cosa stesse per fare in seguito. Se la memoria è davvero ridotta, il sistema operativo non ha pagine di riserva in cui eseguire il prefetch aggressivo, quindi ti aspetteresti basse profondità di coda per le quali il consumatore Optane è ottimizzato. (Bassa latenza.)
L'SSD Intel Optane offre un buon compromesso tra prestazioni e potenza. Gli SSD sostanzialmente non consumano energia quando non sono accessibili. Al contrario, il consumo di energia statica (principalmente dovuto all'aggiornamento) nei chip DRAM è significativo. Quindi la quantità di DRAM in un sistema dovrebbe corrispondere idealmente all'insieme di lavoro del carico di lavoro tipico. Il sistema acquistato è stato progettato per un carico di lavoro tipico che richiede circa 4 GB di memoria principale o meno. In questo caso, se invece il sistema avesse 8 GB di memoria principale, consumerebbe più energia, il che ridurrebbe la durata della batteria. Tuttavia, l'SSD Optane consente di eseguire occasionalmente carichi di lavoro che richiedono un po 'più di memoria principale con un degrado minimo delle prestazioni (rispetto agli SSD o agli HDD basati su NAND).
La memoria DRAM attualmente costa circa $ 4,5 $ per 1 GB, mentre l'SSD Intel Optane costa circa $ 2 $ per 1 GB. Quindi un SSD Optane da 16 GB è più costoso di un modulo DRAM da 4 GB, ma più economico di un modulo DRAM da 8 GB. Quindi, se si estrae l'SSD Optane e si aggiunge 4 GB di memoria in più, si otterrà un sistema più economico, che è anche più veloce in media per carichi di lavoro tipici con set di lavoro più grandi di 4 GB. Ma la gestione degli errori di pagina, il prefetch e lo scambio di pagine sarebbero più lenti dall'HDD. Ecco perché il sistema da 8 GB sarà probabilmente più lento del sistema DRAM Optane da 4 GB DRAM + 16 GB Optane se il carico di lavoro tipico richiede meno di (o circa) 4 GB di memoria.
Il tuo laptop è eccezionale se lo utilizzerai solo per la navigazione in Internet o la modifica del testo. Optane SSD aiuta con l'avvio, fornisce un accesso rapido ai file a cui si accede più frequentemente e può essere utilizzato come memoria secondaria aggiuntiva. Quindi, anche se stai pagando più SSD Optane da 16 GB rispetto a 4 GB di DRAM, stai ottenendo determinati vantaggi unici per questo. Ma alcune delle altre applicazioni che hai citato, come RStudio, richiedono un minimo di 4 GB di memoria. Se in genere utilizzerai un browser e RStudio contemporaneamente (e forse altre app), dovresti ottenere un sistema con almeno 8 GB di memoria. Optane SSD è fino a buon punto però.