En este contexto (equipo de consumo económico), Optane se refiere claramente a un SSD pequeño / rápido conectado a NVMe que utiliza memoria 3D XPoint (en lugar de flash NAND), lo que le otorga una resistencia de escritura muy alta. (Por lo tanto, no se desgastará si se usa como espacio de intercambio).
Esto todavía va a succionar para muchas cargas de trabajo, porque todavía se necesita un error de página y muchos microsegundos para acceder, frente a ~ 70 nanosegundos para un acceso DRAM (falta de caché) ; no está directamente mapeado en memoria en el bus de memoria de la CPU. Además, la ejecución fuera de orden / precarga HW / otro paralelismo de memoria puede mantener ~ 10 errores de caché en vuelo por núcleo físico, pero se está serializando un error de página . No se puede realizar ningún trabajo útil (en este hilo) mientras el sistema operativo está reparando una falla de página, por lo que no hay oportunidad para que el ejecutivo de OoO oculte ninguna de esas latencias de falla de página dura. (Pero incluso 70ns es demasiado largo para esconderse completamente de todos modos. Aún así, tener múltiples errores en el vuelo a diferentes líneas ayuda mucho a mitigarlo para algunas cargas de trabajo).
Usar una cantidad de RAM paralizante y pequeña y depender de un SSD rápido para el espacio de intercambio / archivo de paginación no es el único caso de uso para este tipo de Optane. (Y probablemente ni siquiera un buen caso de uso). Como https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html describe, su principal caso de uso es como un caché transparente para un disco duro magnético. Creo que Intel proporciona controladores de Windows para que esto suceda. Puede comprar discos duros SATA que tengan almacenamiento magnético giratorio con algo de flash incorporado como búfer / caché para las partes del disco a las que se accede con frecuencia. Los controladores Optane HW + pueden hacer esto para cualquier disco.
Optane NVMe aparentemente tiene un rendimiento de lectura aleatorio muy bueno a baja profundidad de cola (espere a que termine una lectura antes de comenzar otra, lo que desafortunadamente sucede cuando un programa tiene que leer un bloque antes de que pueda averiguar qué hacer a continuación, y la captación previa de software no está No estoy ayudando). Por lo tanto, debería ser excelente para acelerar los tiempos de inicio del programa y el arranque.
No es particularmente sorprendente para grandes escrituras contiguas de archivos grandes; es de esperar que el software del controlador sepa evitar el caché de Optane e ir directamente al disco magnético subyacente para eso. La página principal de Intel Optane enlaza con https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html que muestra sus 16GB M .2 Optane tiene una lectura secuencial de 900 MB / s, pero solo una escritura secuencial de 145 MB / s. La versión de 32 GB es más rápida, a 1350 MB / s de lectura, 290 MB / s de escritura. Pero de nuevo, esos no son lo que Optane es mejor. Su IOPS de lectura secuencial y aleatoria son 240k IOPS, con una latencia de lectura de 7 µs.
Intel tiene algo llamado IMDT (Tecnología Intel Memory Drive)que es un hipervisor que crea la ilusión de un espacio de direcciones de memoria principal más grande para el sistema operativo. Algunas páginas se asignarán a la memoria principal DRAM real, mientras que otras se asignarán a la memoria SSD. Cuando se accede a una página asignada a la SSD, IMDT detecta un error de página, lo que hará que la página sea traída de la SSD a la memoria principal (lo que podría desalojar una página de la memoria a la SSD). IMDT intentará captar previamente las páginas en DRAM para aliviar el ancho de banda inferior y la latencia de la SSD. También intentará mantener las páginas más populares en la memoria principal para que se pueda acceder a ellas con una penalización mínima (la única penalización puede provenir de las capas de paginación adicionales debido a la virtualización). El sistema operativo es en su mayoría ajeno a esta asignación y funciona normalmente. Este tipo de sistema de memoria se llama memoria definida por software (SDM). El buenoel documento titulado "Evaluación del rendimiento de la tecnología Intel Drive Drive para aplicaciones científicas" proporciona una evaluación del rendimiento de IMDT y lo compara con un sistema que tiene la misma cantidad de memoria principal DRAM. No he leído completamente el documento, pero parece que IMDT puede migrar páginas entre nodos NUMA para acercarlos al nodo donde más se necesitan.
Dicho esto, IMDT solo es compatible con procesadores Intel de nivel de servidor. Su objetivo es crear servidores rentables y de bajo consumo con un impacto potencialmente pequeño en el rendimiento.
http://www.lmdb.tech/bench/optanessd/imdt.html tiene algunos puntos de referencia con un SSD Optane DC P4800X. (La versión de centro de datos de gama alta, no material de consumo. Capacidad de escritura sostenida mucho mayor).
No he investigado esto, por lo que no estoy seguro de si es relevante en absoluto sobre cómo Windows podría aprovechar un SSD Optane para el consumidor.
La marca Optane es (algo confusa) también usada para algo exótico mucho más interesante:
DIMM no volátiles 3D XPoint , también conocido como "Optane DC Persistent Memory". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass es el nombre de la primera generación de Optane DC PM. Consulte esto para obtener información sobre las generaciones futuras.
Intel tiene su propia página de marketing en su mayoría aquí , con algunos enlaces a detalles tecnológicos. El "DC" significa Data-Centric, aparentemente.
Este es un almacenamiento no volátil que se conecta a una ranura DDR4 DIMM y aparece como memoria física real. Aparentemente, solo es totalmente compatible con la próxima generación de Xeons (no la actual serie de procesadores escalables Skylake-X, alias Skylake).
Existen otros tipos de NVDIMM, por ejemplo, DRAM normal respaldada por batería (opcionalmente con flash para volcar los datos para un apagado a largo plazo, por lo que solo necesitan un supercondensador en lugar de una batería química). https://en.wikipedia.org/wiki/NVDIMM tiene algunos detalles.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot tiene información más general sobre NVDIMM (y la estandarización JEDEC de ellos, y cómo las aplicaciones OS + pueden cooperar para permitir que las aplicaciones se comuniquen directamente con una región de memoria asignada de almacenamiento NV, asegurando el pedido de confirmación y así sucesivamente). El punto principal es que en realidad difuminan la línea entre la RAM y el almacenamiento (en el sentido de la arquitectura de la computadora, no en el sentido estrictamente de marketing del anuncio engañoso de la computadora portátil que viste que reclamaba 4 + 16GB).
El sistema operativo puede permitir que un proceso asigne esta memoria física no volátil a su propio espacio de direcciones virtuales para que puedan acceder al almacenamiento directamente con cargas de espacio de usuario y almacenes en direcciones de memoria, sin ninguna llamada al sistema, permitiendo que el hardware de la CPU continúe fuera de ejecución de órdenes mientras haya lecturas / escrituras pendientes . (Hay bibliotecas de software que permiten a los desarrolladores aprovechar esto, incluida la capacidad flush()
y la seguridad de que los datos se escriban realmente en el almacenamiento persistente.
Este mapeo puede incluso reescribirse en caché, por lo que el uso de los datos se beneficia completamente del caché L3 / L2 / L1d hasta que sea el momento de volver a escribirlo (si se modifica). Para la mayoría de los datos leídos, este tipo de Optane realmente podría llamarse 4 + 16GB de RAM. (Por supuesto, el caso de uso actual del centro de datos para NVDIMM Optane usaría DIMM mucho más grandes, como 512 GB).
(No es como un mmap
archivo ed en un disco normal en el que simplemente asigna el caché de páginas del sistema operativo para el archivo, y el sistema operativo se encarga de hacer E / S en segundo plano para sincronizar páginas RAM sucias con el dispositivo de almacenamiento).
Es esencial asegurarse de que algunos datos hayan alcanzado el almacenamiento NV antes que otros (para permitir la recuperación de fallos como un sistema de archivos o un diario de base de datos) es esencial. Con las llamadas al sistema, aquí es donde usarías POSIX fsync
o fdatasync
. Pero dado que la aplicación tiene el almacenamiento verdaderamente mapeado en memoria, aquí es donde entran las llamadas a funciones de la biblioteca.
En x86 asm, estamos accediendo al almacenamiento con cargas / almacenes normales, pero nos importa cuándo los datos se vuelven a escribir en el NVDIMM (donde está a salvo de la pérdida de energía), no cuando son visibles para otros núcleos o para DMA coherente con la memoria caché (tan pronto como se confirma desde el búfer de la tienda al caché L1d), por lo que las reglas normales de ordenación de memoria de x86 no se ocupan por completo de todo. Necesitamos instrucciones especiales para eliminar las líneas de caché seleccionadas del caché de la CPU. (Para uso de las bibliotecas de almacenamiento NV).
La clflush
instrucción asm ha existido durante un tiempo, pero el almacenamiento NV es una de las principales razones por las cuales Intel agregó clflushopt
en Skylake (aunque también tiene otros casos de uso), y está agregando clwb
en Ice Lake (reescritura sin desalojo).
Dan Luu escribió un artículo interesante hace un tiempo sobre los beneficios de quitar el sistema operativo para el acceso al almacenamiento, detallando los planes de Intel en ese momento para clflush
/ clwb
y su semántica de ordenamiento de memoria. Fue escrito mientras Intel todavía planeaba requerir una instrucción llamada pcommit
(confirmación persistente) como parte de este proceso, pero Intel más tarde decidió eliminar esa instrucción: Despreciar la instrucción PCOMMIT tiene información interesante sobre por qué y cómo funcionan las cosas. .
(Esto se desvió del tema en los detalles de bajo nivel de almacenamiento NV x86. Debería encontrar otro lugar para publicar la mayor parte de esta sección, pero creo que)
También hay SSD DC de Optane , como una tarjeta PCIe x4 o 2.5 " . La versión de 750 GB realiza una lectura secuencial de hasta 2500 MB / s, escritura secuencial de 2200 MB / s y lectura o escritura aleatoria de 550000 IOPS. La latencia de lectura es ligeramente peor que el M.2 NVMe, a 10 µs.
Esto es lo que desea si desea un servidor de base de datos o algo así (si no puede usar NVDIMM), pero no haría que su computadora portátil de 4GB sea mucho más rápida (para la mayoría de los casos de uso típicos) que la Optane de 16GB con la que la venden. El intercambio de espacios de intercambio a menudo produce muchas lecturas dependientes ya que una página debe ser paginada y acceder antes de que el código que falló en la página pueda continuar con lo que sea que vaya a hacer a continuación. Si la memoria es realmente escasa, el sistema operativo no tiene páginas de repuesto para buscar previamente agresivamente, por lo que esperaría bajas profundidades de cola para las cuales el consumidor Optane está optimizado. (Baja latencia.)
El SSD Intel Optane ofrece una buena compensación de rendimiento, potencia y costo. Los SSD básicamente no consumen energía cuando no se accede a ellos. Por el contrario, el consumo de energía estática (principalmente debido a la actualización) en los chips DRAM es significativo. Por lo tanto, la cantidad de DRAM en un sistema idealmente debe coincidir con el conjunto de trabajo de la carga de trabajo típica. El sistema que ha comprado se diseñó para una carga de trabajo típica que requiere aproximadamente 4 GB de memoria principal o menos. En este caso, si el sistema tuviera 8 GB de memoria principal, innecesariamente consumirá más energía, lo que reduciría la duración de la batería. Sin embargo, el SSD Optane le permite ejecutar ocasionalmente cargas de trabajo que requieren un poco más de memoria principal con una degradación mínima del rendimiento (en comparación con los SSD o HDD basados en NAND).
La memoria DRAM actualmente cuesta alrededor de USD 4.5 $ por 1GB, mientras que el Intel Optane SSD cuesta alrededor de USD 2 $ por 1GB. Entonces, una SSD Optane de 16GB es más costosa que un módulo DRAM de 4GB, pero más barata que un módulo DRAM de 8GB. Entonces, si saca el SSD Optane y agrega 4 GB más de memoria, obtendrá un sistema más barato, que también es más rápido en promedio para cargas de trabajo típicas con conjuntos de trabajo de más de 4 GB. Pero el manejo difícil de fallas de página, la captación previa de páginas y el intercambio de páginas serían más lentos desde el HDD. Es por eso que el sistema de 8GB probablemente será más lento que el sistema de 4GB DRAM + 16GB Optane SSD si la carga de trabajo típica requiere menos de (o aproximadamente) 4GB de memoria.
Su computadora portátil es excelente si solo la va a usar para navegar por Internet o editar texto. El SSD Optane ayuda con el tiempo de arranque, proporciona acceso rápido a los archivos a los que se accede con más frecuencia y se puede usar como almacenamiento secundario adicional. Entonces, aunque está pagando más SSD Optane de 16 GB que 4 GB de DRAM, está obteniendo ciertos beneficios únicos para eso. Pero algunas de las otras aplicaciones que mencionó, como RStudio, requieren un mínimo de 4 GB de memoria. Si normalmente usará un navegador y RStudio al mismo tiempo (y tal vez otras aplicaciones), entonces debería obtener un sistema con al menos 8 GB de memoria. Sin embargo, Optane SSD es bueno tener.