Inicio Artículos ¿Tiene sentido utilizar NVMe en las soluciones integradas?

¿Tiene sentido utilizar NVMe en las soluciones integradas?

NVM Express (NVMe) ya está dando mucho que hablar entre las empresas y los consumidores, pero algunos se preguntan si este protocolo ultrarrápido de unidades de estado sólido (SSD) también tendrá algún futuro en el marco de las soluciones integradas. Diseñado pensando en la velocidad, NVMe ha ido superando todas las referencias de rendimiento desde el primer día. Centrándose en el paralelismo, ha sido capaz de aprovechar todo el potencial de las mejores SSD empresariales y de consumo actuales. No obstante, los mercados de soluciones integradas e industriales presentan objetivos muy diferentes a los de las empresas y los consumidores. En lugar de velocidad, las implementaciones de aplicaciones integradas e industriales suelen centrarse en aspectos como la fiabilidad, el consumo de energía y el formato. Existen dudas acerca de si las recientes mejoras en las especificaciones de NVMe le permitirán competir en el terreno de las soluciones integradas, o acerca de si los ingenieros que tienen que trabajar con ese tipo de aplicaciones harían bien en seguir optando por el contrastado y probado protocolo SATA.
Qué es NVMe
Lanzado en 2012, NVMe es un protocolo de almacenamiento diseñado para unidades flash que funciona a través de un bus eléctrico PCI Express (PCIe). Mientras que los protocolos anteriores, como SATA, se concibieron en la época de los discos giratorios, NVMe se diseñó desde el primer momento con el objetivo de aprovechar todo el potencial del almacenamiento flash. Para ello, aprovecha el paralelismo inherente a los sistemas informáticos actuales, así como el carácter de acceso aleatorio del almacenamiento flash. En lugar de la cola de comandos única de SATA, que admite hasta 32 comandos, NVMe admite hasta 64 000 colas, cada una de las cuales puede contener hasta 64 000 comandos. Dado que funciona a través del bus PCIe, NVMe es una interfaz completamente escalable que admite velocidades máximas muy elevadas. Mientras que SATA III alcanza su límite en 600 MB/s, la velocidad de bus de NVMe viene determinada por el número de carriles PCIe admitidos.
Con los carriles con velocidad de transmisión de datos de 1 GB/s que admiten los PCIe de tercera generación, el rendimiento puede multiplicarse varias veces. NVMe es un protocolo que se ejecuta directamente en el bus PCIe, por lo que tampoco necesita un controlador de E/S ni un adaptador de bus host, como sí exigen SATA o SCSI. De este modo, se reducen tanto la latencia como el consumo de energía general del sistema. A diferencia de SATA, su principal competidor, que define un conector, un bus y un protocolo lógico (AHCI), NVMe describe simplemente una capa de protocolo lógico que se ejecuta a través del bus eléctrico PCIe. Los dispositivos NVMe pueden presentarse en multitud de formatos y conectarse a través de un conector físico PCIe, M.2 o U.2. En comparación con SATA, NVMe no solo ofrece mayores velocidades, sino que funciona con mayor eficiencia en general. Mientras que AHCI requiere cuatro lecturas de registro no almacenables en caché para emitir un comando, NVMe no precisa ninguna, lo que de nuevo permite observar una menor latencia.
Emplea también un conjunto de comandos simplificado que necesita menos de la mitad de ciclos de reloj de CPU que SATA para procesar una solicitud de E/S. Las pequeñas operaciones de E/S aleatorias también pueden procesarse con mayor eficiencia. Una solicitud de lectura de 4 kB necesita dos instrucciones en el caso de SATA, mientras que con NVMe solo se necesita una.
Implementación integrada de NVMe
Aunque las ventajas de NVMe para el almacenamiento de las empresas de perfil alto y los consumidores son obvias, lo que no está tan claro a primera vista es si NVMe resulta adecuado para implementarlo en las modernas aplicaciones integradas. Después de todo, SATA se ha utilizado con éxito durante muchos años y, si algo funciona, ¿por qué cambiarlo? No obstante, NVMe ofrece algo más que velocidad. Aunque se diseñó inicialmente pensando en las necesidades específicas de los clientes empresariales, las eficiencias intrínsecas que presenta el protocolo ofrecen ventajas tangibles para los ingenieros de soluciones integradas.
Aspectos energéticos
Las aplicaciones integradas de baja energía suponen un mercado enorme. Ya sea para dispositivos de IoT, balizas Bluetooth, smartphones o tecnología portátil, se trata de dispositivos que generalmente funcionan con batería y en los que el ahorro de energía es un factor clave. En este mercado, la velocidad no suele ser lo principal. En cambio, los objetivos fundamentales son una elevada fiabilidad, un formato compacto y, sobre todo, un consumo reducido de energía. NVMe dispone de funciones avanzadas de gestión y notificación de errores, incluida la protección de datos integral. Esta protección utiliza etiquetas de metadatos para garantizar que los datos que se escriben en la unidad y los datos que se leen de dicha unidad en el sistema son correctos; una característica muy útil para aquellas aplicaciones en las que la integridad de los datos es esencial. Aunque NVMe no exige limitarse a un tamaño y forma particulares, es compatible con el formato M.2, uno de los formatos de SSD más pequeños y densos del mercado. El estándar M.2 permite unos módulos con unas anchuras de 12 a 30 mm y unas longitudes de entre 16 y 110 mm. Mientras que las SSD M.2 de consumo suelen tener que recurrir a formatos más largos para ofrecer mayor capacidad, M.2 permite trabajar con sistemas integrados que no requieren capacidades tan amplias y, por tanto, puede utilizar unas SSD extremadamente pequeñas. Además de M.2, las SSD NVMe pueden presentarse en paquetes BGA, lo que les permite competir directamente con las SSD eMMC. La tecnología NVMe permite también un consumo de energía muy reducido. Si hablamos de la eficiencia de procesamiento, sus operaciones de E/S, como ya se ha indicado, necesitan menos ciclos de CPU para ejecutarse que las operaciones de E/S de SATA, gracias a un conjunto de comandos más optimizado.
Dado que se eliminan las lecturas de registro sin almacenamiento en caché y que las operaciones de escritura necesitan como máximo una lectura de registro, las pequeñas operaciones de E/S aleatorias pueden ser también extremadamente eficientes. El protocolo simplificado y el rápido rendimiento de NVMe permite una mayor eficiencia energética cuando la unidad está activa. Además, su compatibilidad con funciones de gestión de la energía de PCIe aumentan la eficiencia aunque la unidad esté inactiva. El enlace PCIe puede consumir una gran cantidad de energía (hasta 50 mW) incluso en su habitual estado de inactividad L1, y por este motivo se añadieron unos modos de gestión de la energía avanzados que redujeron aún más el consumo en el modo inactivo. El subestado L1.1 reduce el uso de energía manteniendo la tensión del modo común, mientras que el subestado L1.2 desconecta los circuitos de alta velocidad.
Dado que admiten estos dos modos, las SSD NVMe pueden lograr un consumo de energía en modo inactivo de tan solo 2,5 mW, un 50% menos que el correspondiente modo de inactividad DevSLP de la mayoría de las SSD SATA. Además, mientras que DevSLP de SATA necesita una señal enviada por el sistema operativo para entrar en el modo de ahorro de energía, las unidades NVMe pueden utilizar transiciones de estados de potencia autónomas, programadas en el controlador de la unidad. De esta forma, la unidad puede entrar y salir rápidamente de forma autónoma del modo de ahorro de energía en el nivel del hardware, con lo que se maximiza el tiempo en modo inactivo y se minimizan las latencias de activación de la unidad. Aunque NVMe no es un competidor tan fuerte para flash eMMC desde el punto de vista de los dispositivos integrados de baja energía más asequibles, su combinación de pilas optimizadas, consumo de energía reducido y pequeño formato lo convierten en una buena opción a la hora de sustituir una mSATA por la nueva generación de dispositivos integrados que funcionan con baterías.
NVMe para dispositivos móviles e informática periférica
Además de los dispositivos de baja potencia, la informática móvil y periférica (“edge computing”) son sectores en crecimiento dentro de las soluciones integradas. Entre estas aplicaciones se incluyen smartphones, tablets, ordenadores portátiles, routers y pasarelas diseñadas para procesar y analizar datos en la periferia de la red. Los dispositivos móviles funcionan con baterías y tienen reservas de energía limitadas, pero la capacidad de almacenamiento es notable y el rendimiento en este sentido es importante. Para estos dispositivos, NVMe es una muy buena opción gracias a su rendimiento, a su reducido formato y a su bajo consumo de energía, además de por su integración directa sin necesidad de un chip controlador de almacenamiento host. NVMe 1.2 ha introducido también la función Host Memory Buffer (HMB). Esta función permite a las SSD NVMe utilizar una parte de la DRAM del sistema host para sustituir la DRAM que normalmente está integrada en el controlador SSD.
Gracias a esta característica, la SSD NVMe puede ser más pequeña, notablemente más barata y más eficiente desde el punto de vista energético, sin renunciar a un rápido rendimiento de almacenamiento. Junto a la informática móvil, la informática periférica es otra área en la que la capacidad de almacenamiento y el rendimiento son primordiales. Presente en vehículos autónomos, drones, routers y pasarelas que procesan datos, la informática periférica parte de la premisa de que no todo puede, o debe, hacerse en la nube. En una fábrica muy automatizada, una pasarela de IoT puede enviar datos de producción a la nube para analizar grandes cantidades de datos (“big data”), pero también puede realizar algunos análisis básicos en dichos datos que faciliten información en tiempo real, a fin de mejorar la eficiencia en la fabricación.
En este caso, la respuesta de la nube puede tardar demasiado para que los datos procesados resulten útiles. Estas pasarelas pueden no tener los mismos requisitos de rendimiento que los servidores empresariales, pero la latencia y el ancho de banda siguen siendo de extrema importancia a la hora de realizar un procesamiento de datos en tiempo real. En este sentido, NVMe es una alternativa evidente.
NVMe para almacenamiento integrado
El mercado del almacenamiento integrado es amplio y diverso, con distintas necesidades que abarcan desde un bajo consumo de energía hasta un rendimiento al nivel de los ordenadores de sobremesa o incluso de los servidores. Aunque NVMe se ha centrado especialmente en las elevadas operaciones de entrada/salida por segundo (IOPS) para centros de datos y similares, las eficiencias de este nuevo protocolo lo convierten en una solución cada vez más atractiva para las aplicaciones de almacenamiento integrado. En el caso de los dispositivos integrados de baja energía, NVMe puede ajustarse a los formatos más reducidos. Su ligera pila de software y su interfaz directa con el bus PCIe significan rapidez, eficiencia y facilidad de implementación. Su capacidad para admitir estados de baja energía de PCIe ayuda también a mantener un consumo de energía mínimo.
Aunque probablemente NVMe nunca sustituirá a eMMC, sus ventajas lo convierten en un buen candidato para las aplicaciones que actualmente utilizan mSATA. Gracias a su interfaz PCIe Gen3 x4 NVMe, el módulo 600p Series 3D NAND SSD de Intel es hasta 17 veces más rápido que una HDD y 3 veces más rápido que las SSD convencionales basadas en SATA. Permite reducir el consumo de energía en más de un 90% en comparación con una HDD y ampliar de ese modo notablemente la vida útil de la batería. En la Flash Memory Summit 2017, celebrada este verano, Swissbit presentó su N-10. Se trata de un prototipo de módulo NVMe PCIe M.2 SSD con una disposición de 2 carriles y 4 canales destinada específicamente a diseños de sistema con limitaciones de energía y espacio en el ámbito integrado. Ofrecerá el doble de rendimiento que una SSD con capacidad de interfaz SATA de 6 Gb/s y además reducirá notablemente el consumo de energía.