NVMe borra la diferencia entre memoria y almacenamiento





La historia del almacenamiento es una carrera entre el almacenamiento y la potencia de procesamiento. En el camino hacia el nirvana informático, hay un cuello de botella: el almacenamiento de miles de millones de ceros y unos. El jugador más nuevo en este campo es Non-Volatile Memory Express (NVMe), que es algo así como un híbrido de varias soluciones técnicas anteriores.



La primera generación de ordenadores domésticos utilizaba disquetes y casetes compactos como dispositivos de almacenamiento. pero a medida que crecieron las computadoras, también lo hizo la importancia del almacenamiento. En la década de 1990, los discos duros se generalizaron, lo que le permitió almacenar primero megabytes y luego gigabytes de información. Como resultado, ha aumentado la necesidad de un sistema de comunicación rápido entre el variador y el resto del sistema. En ese momento, la interfaz ATA (IDE) se usaba más comúnmente en el modo Entrada-Salida programada (PIO).



Como resultado, las tecnologías se han trasladado al acceso directo a memoria (DMA), UDMA, también conocido como Ultra ATA y Parallel ATA, e interfaces basadas en SCSI en computadoras Apple y la mayoría de los servidores. Como resultado, Parallel ATA se convirtió en Serial ATA (SATA) y Parallel SCSI se convirtió en Serial Attached SCSI (SAS). SATA se usó principalmente en computadoras portátiles y de escritorio antes de la llegada de NVMe y unidades de estado sólido.



Todas estas interfaces fueron diseñadas para mantenerse al día con los dispositivos de almacenamiento. En este sentido, NVMe está fuera de escena con su integración en el sistema. NVMe también se diferencia en que no está vinculado a ninguna interfaz o conector específico, lo que puede resultar confuso. ¿Quién puede separar M.2 y U.2, y mucho menos qué protocolo usa la interfaz, ya sea SATA o NVMe?



Entendamos el maravilloso y extraño mundo de NVMe.



Apariencia engañosa





Elementos SATA Express, funcionalmente similares a M.2.



Pídale a cualquiera que le muestre la ranura NVMe en la placa base y lo más probable es que se le muestre una imagen de la ranura M.2, ya que se ha convertido en la unidad de estado sólido (SSD) más popular en la electrónica de consumo. Al mismo tiempo, incluso una ranura M.2 con una unidad de estado sólido insertada en ella puede no pertenecer a NVMe, ya que esta interfaz también usa SATA.



La placa junto a la ranura M.2 a menudo indica qué tecnología admite. También es una buena idea leer las instrucciones de la placa base. La razón de la confusión es que inicialmente había un estándar Mini-SATA (mSATA) para TTN, que usaba el factor de forma de la Mini Tarjeta PCIe, que luego evolucionó al factor de forma M.2 y la interfaz U.2. Este último se parece más a las interfaces SATA y SAS, y combina dos canales, SATA y PCIe, en una interfaz para conectar TTN.



Mientras tanto, el estándar M.2 (después de una breve excursión al estándar SATA Express de corta duración) se expandió para admitir no solo SATA, sino también AHCIcon NVMe. Por lo tanto, las ranuras M.2 a menudo se denominan incorrectamente "ranuras NVMe", cuando en realidad NVMe es un protocolo basado en PCIe que no define ningún factor de forma o tipo de conector.





Interfaz M.2 con teclas B y M



Mientras tanto, el factor de forma M.2 en sí es bastante versátil, o confuso, es como cualquiera. Físicamente puede tener 12, 16, 22 y 30 mm de ancho, y longitudes de soporte de 16 a 110 mm. En el borde de la ranura, se aplica una secuencia de etiquetas para indicar la funcionalidad y hacer coincidir las etiquetas en la ranura misma. La mayoría de las veces se trata de etiquetas B y M de la lista de etiquetas de teclas, que, por ejemplo, contiene lo siguiente:



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

B: PCIe x2, SATA, USB 2.0 / 3.0, audio, etc.

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

M: PCIe x4, SATA y SMBus.



Resulta que el tamaño físico de la tarjeta de expansión M.2 es de hasta 32 piezas, y esto es incluso antes de que tengamos en cuenta 12 posibles modificaciones de la lista. Afortunadamente, la industria en general parece haber adoptado un estándar común de 22 mm de ancho para tarjetas de almacenamiento con longitudes limitadas. Como resultado, los TTN de NVMe están marcados como "2242", lo que significa 22 mm de ancho y 42 mm de largo. Las tarjetas TTN se pueden marcar con las letras B, M o ambas.



Es importante tener en cuenta que hoy en día las ranuras M.2 se utilizan activamente como expansión PCIe en condiciones de hacinamiento. Por lo tanto, las tarjetas WiFi suelen tener el formato M.2.



Definición de NVMe



Esto nos lleva a la definición básica de NVMe: es una interfaz estándar para unidades PCIe de conexión directa. Se diferencia de SATA en que el primero convierte el protocolo PCIe en el protocolo SATA, que luego debe ser interpretado por un chip especial en la unidad antes de que se pueda ejecutar cualquier comando relacionado con el almacenamiento de datos.



En cambio, NVMe define una interfaz que se puede utilizar directamente en cualquier sistema operativo que tenga un controlador NVMe. Los comandos se envían a la unidad NVMe, que los realiza para leer o escribir o realizar algún tipo de operaciones de mantenimiento como TRIM... Dado que se puede confiar en que cualquier dispositivo que afirme ser un dispositivo NVMe sea un TTN (NAND Flash, 3D XPoint, etc.), el protocolo NVMe está diseñado con baja latencia y altas tasas de transferencia de paquetes en mente.





Optane SSD de Intel como 3D XPoint funciona sin problemas independientemente de la carga de trabajo



Recientemente, una característica de NVMe como un búfer de memoria local, Host Memory Buffer ( HMB ), ganó popularidad . Este es un intento de deshacerse de la necesidad de almacenar datos en memoria intermedia en DRAM usando NAND Flash tipo TTN. La función usa parte de la memoria del sistema como búfer, mientras que pierde relativamente poco rendimiento, mientras que el búfer se usa principalmente para almacenar en caché la tabla de direcciones.



A largo plazo, dado el ritmo de desarrollo del almacenamiento, tecnologías como 3D XPoint hacen que incluso esos trucos sean innecesarios. La velocidad de acceso al mismo XPoint 3D está más cerca de DRAM que de NAND Flash. Dado que los TTN de tipo 3D XPoint no necesitan un búfer DRAM, su aumento de popularidad puede llevar al hecho de que NVMe ya estará optimizado para ellos.



Hackear NVMe





Memoria en núcleos magnéticos 64 × 64 (4 kB)



Vale la pena pensar en qué más se puede hacer con NVMe, excepto cómo comprar un TTN y ponerlo en una ranura M.2 B o M. Que sea solo una especie de DRAM o SRAM), o la propia ranura M.2.



Las ranuras PCIe de longitud completa son grandes y las tarjetas de expansión brindan mucho espacio para componentes voluminosos como chips BGA y sistemas de enfriamiento gigantes. Por el contrario, las tarjetas de expansión M.2 están diseñadas para soluciones pequeñas y compactas que pueden caber en una computadora portátil. Puede, por ejemplo, combinar una FPGA con el hardware SerDes y PCIe requerido en el factor de forma M.2 para crear una tarjeta de expansión compacta para computadoras portátiles y dispositivos integrados.



Hacks recientes sugieren agregar soporte NVMe a la Raspberry Pi, reemplazar el TTN en la Pinebook Pro con una tarjeta WiFi y leer la unidad flash NVMe del iPhone usando un adaptador PCIe ZIF.



Al mismo tiempo, nadie prohíbe intentar combinar algo muy extraño, por ejemplo, una unidad NVMe en núcleos magnéticos.



Conclusión



Mirando hacia atrás en décadas de tecnología informática, está claro que la distinción entre memoria y almacenamiento siempre ha existido. Además, la memoria siempre ha servido como dispositivos volátiles como SRAM o DRAM. Recientemente, esta distinción se ha vuelto cada vez menos significativa. NAND Flash con interfaz NVMe ya nos promete una latencia potencialmente muy baja y velocidades de varios gigabytes por segundo (especialmente usando PCIe 4.0) pero este no es el final de la historia.



El producto nuevo más popular son los DIMM de "memoria persistente", que se encuentran en las ranuras de memoria normales. Utilizan tecnología de estado sólidoIntel Optane para ampliar la memoria del sistema hasta 512 GB por módulo. Estos módulos, por supuesto, funcionan solo en servidores Intel hasta ahora. Se utilizan para almacenar en búfer bases de datos, cuyos grandes volúmenes no permiten utilizar la memoria ordinaria como búfer (por ejemplo, terabytes de DDR4 DIMM).



Si tenemos un dispositivo de almacenamiento muy rápido y no volátil conectado directamente al controlador de memoria del procesador, podemos reducir la latencia al mínimo absoluto. Y aunque 3D XPoint (como una especie de memoria de cambio de fase) aún no es tan rápido como DDR SDRAM, nos muestra lo que puede aparecer después de NVMe, cuando la diferencia entre "memoria del sistema" y "almacenamiento de datos" desaparece por completo o cambia a irreconocible .



All Articles