Memorias FLASH: Preguntas y Respuestas sobre los Dispositivos de Almacenamiento Masivo
En el artículo que aquí nos ocupa hemos creído conveniente dar respuesta a algunas de las preguntas más frecuentes que aparecen cuando trabajamos con memorias flash en sus distintos formatos y tecnologías.
Repasaremos, además, aunque sin entrar en detalles, las distintas tecnologías existentes, su pasado, presente y su tendencia futura.
Nos centraremos únicamente en las memorias de almacenamiento masivo. En artículos futuros, pondremos la mirada en las tecnologías de memorias estáticas y dinámicas, así como en otras tecnologías de menor alcance, pero no por ello menos interesantes.
¿Qué es una Memoria Flash?
Existen diferentes tecnologías para el almacenamiento de información de forma masiva. Atrás han quedado ya los discos duros magnéticos que, si bien son rentables para grandes capacidades de almacenamiento, presentan muchos más inconvenientes superados a día de hoy por los discos de estado sólido y otros formatos basados en su mayoría en memorias del tipo NAND Flash.
¿Qué es un disco de estado sólido?
Un disco de estado sólido, comúnmente SSD (Solid State Disc), no es más que una carcasa de plástico equivalente en medidas a los tradicionales discos duros de 2,5” o 3,5” pero que en lugar de almacenar la información en discos magnéticos que giran accionados por un motor, almacenan los bits en uno o varios chips NAND Flash.
Diagrama de bloques de un disco SSD
Si la unidad es de gran capacidad, dispondrá de un banco de chips de memoria dispuestos en uno o varios canales. La gestión del espacio de almacenamiento se hace a través de un controlador integrado en el propio disco SSD. Este controlador es el que se encarga de comunicarse con la CPU. En su forma más corriente, estaríamos hablando de una interfaz SATA. En los discos antiguos, esta comunicación se realizaba a través de interfaz IDE paralelo.
¿Qué formato es mejor?
El abanico de posibilidades es bastante amplio, sobre todo si entramos en los formatos típicamente industriales. No hay un formato mejor ni peor.
Unidades de almacenamiento masivo con diferentes factores de forma.
Un SSD ofrece más capacidades, al ser más grande. Pero el conector es un potencial punto de problemas para entornos con vibraciones. Los módulos del tipo M.2 y mSATA son soluciones compactas, aunque limitadas en espacio para capacidades superiores.
Los memorias USB, SD y microSD son perfectas para unidades portátiles. Sin embargo, el conector acaba siendo un punto de ruptura por desgaste si se conecta y desconecta continuamente.
Os invitamos a ver el resto de soluciones del catálogo de nuestro partner UDInfo.
¿Por qué mi disco SATA III no funciona todo lo rápido que cabría esperar?
Las velocidades de transferencia entre una unidad de almacenamiento y una CPU dependen de varios factores. Una interfaz SATA II puede alcanzar tasas de 300 MB/s y un SATA III 600 MB/s. Pero esto sólo es válido cuando el host y la unidad funcionan a la máxima velocidad y esto no siempre ocurre.
Para empezar, existe una negociación inicial en la que ambos dispositivos fijan la velocidad en base a sus capacidades y condiciones. Un cable SATA de peor calidad o excesivamente largo reducirá la velocidad. Una CPU “lenta” puede no ser capaz de procesar toda la información que le llega de la unidad. Pero si disponemos de una CPU suficientemente potente, el caso más habitual que impide desarrollar la máxima velocidad del bus suele ser la configuración del disco SSD.
Muchos de los discos SSD del mercado de consumo tienden a utilizar el menor número de chips posible. Esto simplifica el diseño y el coste final. El cuello de botella se sitúa, pues, en la entrada al chip. Las unidades que utilizan multichannel, evitan este cuello de botella. El resultado es una unidad de almacenamiento más rápida, a costa de aumentar el número de chips, pero también el precio. Sin embargo, ocurre que pocos fabricantes advierten de esta característica, el número de canales, en sus especificaciones.
Lo explicado hasta aquí aplica igualmente a discos SSD tanto SATA como IDE, unidades USB, módulos M.2 en sus variantes PCIexpress y SATA, módulos mSATA e incluso CompactFlash y CFAST.
En el caso de unidades SD y microSD, por el reducido tamaño, se utilizan soluciones monochip. La velocidad en estos casos viene impuesta por el controlador utilizado y su programación.
¿Qué es mejor M.2 o mSATA?
El formato mSATA (MO-300) es en esencia un disco de estado sólido reducido a la mínima expresión: memorias, controlador SATA y PCB en formato miniPCIexpress. No tiene conectores. El mismo PCB hace de conector. Es lo que se conoce como conector EDGE.
Disco formato mSATA
Se impuso como alternativa a los discos SATA y SSD en el mercado industrial porque no necesita cables y proporciona una solución final más compacta, libre de fallos y robusta ante vibraciones y golpes.
El formato M.2, también denominado NGFF (New Generation Form Factor), es un formato paralelo a mSATA que estandariza no solo unidades de almacenamiento, sino también otros periféricos como modem celulares, WIFI o tarjetas de comunicaciones. Ha sido impulsado por el mercado de consumo para facilitar la expansión en portátiles y tabletas.
Módulos formato M.2.
El pinout M.2 contempla diversos interfaces como SATA, PCIe, USB, I2C, UART…
En su versión con interfaz SATA, M.2 y mSATA son equivalentes en velocidad y capacidad, aunque no son intercambiables. El precio viene impuesto la capacidad de memoria, por lo que a la practica, no es un factor diferenciador entre ambos formatos. En resumen, entre un M.2 SATA y un mSATA, no hay diferencias notables en precio y prestaciones.
El factor de forma M.2, no obstante, sí que ofrece unas claras ventajas por lo que ha sido plenamente adoptado para las nuevas plataformas PC y ARM tanto del mercado de consumo como del industrial.
¿Los módulos de memoria M.2 funcionan en todos los dispositivos?
El estándar M.2 permite no solo unidades de almacenamiento, sino también distintos dispositivos periféricos como módulos WIFI, BT o módem Celular. No todas las funcionalidades son posible en un mismo slot y cada fabricante de placas decide la funcionalidad que le da a sus slots. Esto se define con el Keying.
Keying M.2
Por otro lado, cuando nos referimos a unidades de almacenamiento, típicamente keying B, M o B+M, hemos de tener en cuenta, además, que hay distintos tamaños de módulos. El estado del arte permite a fecha de este artículo, integrar hasta 512 GB en un módulo M.2 2242 (22 mm ancho x 42 largo). Pero para más capacidad, se usan formatos más grandes como 2260 (60 mm largo) y 2280 (80 mm largo) o incluso 22110 (110 mm largo).
El keying y el formato son los dos principales puntos a tener en cuenta para asegurar la compatibilidad con nuestra placa.
Pero aun encajando perfectamente en nuestra placa podemos notar que no funciona como esperamos. Esto se debe a que hay que tener en cuenta el interface. Los factores de forma más grande como el M.2 2280 pueden disponer de interface SATA o PCIe Gen3. El estándar PCIe Gen3 ofrece compatibilidad con unidades de almacenamiento gracias a la incorporación del protocolo NVMe (Non-Volatile-Memory-express).
Su ventaja frente a SATA es clara: mientras con un interface SATA III estamos limitados a 600 MB/s, con PCIe Gen3 podemos llegar hasta casi 1 GB/s por lane (carril). El estándar PCIe es escalable hasta 16 lanes: PCIex1, PCIex2,…PCIex16. El interface PCIe del formato M.2 2280 define hasta 4 lanes, PCIex4, pudiendo llegar a velocidades de transferencia de hasta 3.5GB/s. Evidentemente, siempre y cuando la placa disponga de esos 4 lanes. Superar esta velocidad es posible, pero hemos de saltar ya a módulos NVMe en formato PCIe (full o halfsize) que pueden incorporar más lanes.
Así que, en resumidas cuentas, para asegurarnos la máxima compatibilidad de un módulo M.2 con una placa en concreto, no solo hemos de tener en cuenta el factor de forma (2242, 2260, 2280) y el keying, sino también los interface disponibles en los módulos de memoria y en la placa (SATA, PCIex1, PCIex2 o PCIex4).
¿Por qué mi tarjeta SD (uSD) funciona en unos dispositivos y en otros no?
Otro caso típico de incompatibilidad se da en los formatos microSD y SD. Ambos formatos emplean el mismo bus de comunicaciones basado en SPI.
Pero el interface SD presenta diferentes formatos de transmisión y diferentes velocidades según la aplicación esté orientada a propósito general, alta velocidad UHS o video.
Clasificación tarjetas SD según velocidad y aplicación
Si adquirimos memorias SD o microSD de consumo, suelen entregarnos las últimas versiones con controladores muy rápidos orientados a la grabación de vídeo (Video Speed Class). Estas unidades no funcionaran con dispositivos antiguos que no aceptan trabajar a altas velocidades y probablemente tengamos problemas para albergar un sistema operativo.
Sin embargo, los controladores de las tarjetas SD y microSD son programables y se puede acotar su velocidad para garantizar la compatibilidad con nuestro procesador.
¿Por qué mi sistema operativo montado en una unidad USB presenta un comportamiento inestable?
Las memorias USB o pendrives pueden programarse como unidades extraíbles o como discos fijos. La manera en que el sistema operativo trata a cada unidad es diferente y define su comportamiento.
Para el caso de una unida USB programada como disco fijo, el sistema crea un archivo de intercambio en memoria para optimizar las transacciones entre la CPU y la unidad. El sistema operativo no espera que esta unidad sea retirada de forma repentina, cosa que podría producir errores en la estructura de archivos y pérdida de datos.
Una unidad extraíble, en cambio, puede ser retirada del conector USB en cualquier momento por lo que para garantizar la integridad de los datos, el sistema operativo vuelca la información en el dispositivo con mayor frecuencia.
La mayoría de unidades USB que se venden están programadas como unidades extraíbles (renovable). Los fabricantes orientados al mundo Industrial como UDInfo ofrecen ambos productos sin coste añadido ya que es una opción más de la programación de su firmware.
¿Por qué mi unidad de 1 TB solo dispone de 960 GB libres?
El motivo es por el Over Provisioning (OP). OP es una técnica que se utiliza con independencia del formato y en casi todas las unidades cuando la capacidad es grande.
¿Qué es el OP (Over Provisioning)?
El OP es una porción del espacio de memoria que el controlador se reserva para reemplazar las celdas que se degradan con el tiempo.
Con la aparición de nuevas tecnologías como 3D-TLC que permiten una capacidad de integración más alta (más capacidad de almacenamiento en menos espacio de silicio), se hacen más notables los defectos inherentes al propio proceso de fabricación y cualquier imperfección en el proceso de fabricación provoca celdas defectuosas. Así que el controlador identifica y marca esas celdas para no ser usadas. Con el tiempo, las celdas también se degradan. El controlador es capaz de detectar las celdas sobreusadas y asignar una nueva celda física del espacio reservado a la posición de memoria lógica.
Un porcentaje típico de OP es 6%. Si nos encontramos discos con un porcentaje de OP mayor, lo primero que hemos de pensar es que la calidad de las memorias es mala y por eso se reserva más espacio.
No obstante, aplicaciones donde se pide alta integridad de datos como médicas, seguridad o defensa, pueden requerir de un porcentaje mayor para poder garantizar un MTBF mayor (Mean Time Between Failures), en definitiva, más años de uso.
Si este es nuestro caso, hemos de recurrir a fabricantes de soluciones industriales que pueden modificar el OP durante el proceso de fabricación.
¿Cuál es el límite de escrituras de una unidad de almacenamiento?
El límite de escrituras lo fija la tecnología. No es un número fijo, sino estadístico.
La tecnología en memorias Flash que ofrece más número de escrituras por celda es la SLC (Single Level Cel), donde se guarda un bit de datos por celda de memoria. Por poner un número, podemos estar hablando de cientos de miles de escrituras por posición.
Para memorias del tipo MLC o TLC, el número de escrituras por posición se reduce casi por 10.
En este whitepaper sobre la fiabilidad de las memorias flash podéis encontrar más información.
Pero existe una manera de incrementar este valor y es gracias al algoritmo de escritura pseudoaleatoria (wear-leveling algorithm) que cada fabricante implementa en su controlador.
Para entender cómo funciona este algoritmo pongamos un ejemplo: Si tenemos los datos de un contador de reloj almacenado en la memoria, la posición que alberga los segundos se ve actualizada a cada segundo. Si la tecnología de nuestra memoria permite 100.000 escrituras por posición, al cabo de 28 horas los datos de segundos de nuestra memoria perderán integridad porque se habrán degradado las celdas que lo albergan. El algoritmo de leveling lo que hace es ir cambiando aleatoriamente la celda física asociada a cada posición lógica de la memoria.
La eficacia de este algoritmo prolonga la vida del dispositivo de almacenamiento notoriamente, pero siempre y cuando el disco no esté completamente lleno. Es conveniente no superar el 60% de la capacidad del disco de forma continuada.
El algoritmo de leveling tiene un efecto secundario: la búsqueda de posiciones físicas libres lleva un tiempo, por lo que la escritura es más lenta. Una mayor diferencia entre el tiempo de escritura y el de lectura de un dispositivo concreto, denota un algoritmo de leveling más seguro.
El grado de seguridad del algoritmo de leveling puede ser modificado por firmware por el fabricante.
Mi unidad ha muerto antes de tiempo, ¿cuáles son las posibles causas?
Cómo causas externas, la temperatura y las fluctuaciones de alimentación provocadas por una mala fuente de alimentación, provocan un deterioro avanzado.
Pero lo más probable es que hayamos estado utilizando durante mucho tiempo la unidad ocupando gran parte de su capacidad sin dejar espacio para que el algoritmo de leveling funcione correctamente.
En aplicaciones extremas, donde la alimentación de las placas electrónicas registra fuertes picos de interferencias y desvanecimientos, por ejemplo sistemas electrónicos de trenes, autobuses y vehículos en general, las unidades de almacenamiento se pueden ver afectadas e incluso perder datos importantes. Algunas unidades de almacenamiento, típicamente formatos CFAST, SSD, mSATA y M.2, pueden incorporar un circuito de seguridad llamado PLP (Power Lost Protection). Esta característica evita que se pierdan datos y se ponga en riesgo la integridad del sistema de archivos cuando ocurren caídas repentinas de la alimentación durante una operación de escritura.
Os invito a ver este vídeo para ver cómo funciona este sistema de protección:
Vídeo sobre PLP (Power Lost Protection)
¿Qué tecnologías flash existen a día de hoy y cuáles son sus características?
A día de hoy, el estado del arte dispone de tres tecnologías básica de silicio, hablando siempre de unidades para almacenamiento masivo. Estamos hablando de SLC, MLC, TLC.
Para conocer las diferencias entre estas tecnologías, os invito a reproducir este video:
Vídeo sobre tecnologías de almacenamiento (SLC, MLC y TLC)
Desde su aparición a nivel comercial en 2019, TLC ha ido ganando terreno hasta el punto de que el año 2021 se presenta como un año de cambio ya que la curva de precio de la memoria TLC baja por debajo de las MLC mientras que sus características técnicas son iguales o superiores. MLC está por tanto en proceso de desaparición.
No ocurrirá lo mismo con SLC, al menos por el momento, ya que la capacidad de retención es mucho mayor (años) por lo que siguen siendo la tecnología preferente para aplicaciones en las que se requiere la máxima seguridad e integridad de los datos, aunque a un coste por MB hasta 10 veces superior que TLC.
Más información sobre Memorias
En Venco disponemos de una amplia gama de memorias para almacenamiento de datos en distintos formatos con rango de temperatura extendida. UDInfo es nuestro partner proveedor de soluciones de memorias embedded NAND y módulos DRAM. UDInfo destaca por la alta fiabilidad y durabilidad en el suministro de sus productos, enfocados principalmente a aplicaciones industriales, médicas y automotrices. Puedes descargarte su catálogo en nuestra web.
Venco Electrónica es proveedor de soluciones para Electrónica Industrial en España y Portugal desde hace más de treinta años. Tenemos línea directa con los fabricantes que nos proporcionan información detallada y actualizada de todos sus productos.
Pregúntanos sin compromiso y te asesoraremos en la mejor solución para tu aplicación o proyecto.
Vías de contacto:
-
-
- Formulario de Contacto: https://www.vencoel.com/contacto/
- Web-Chat: https://www.vencoel.com/
- Teléfono: (+34) 93 263 33 54
-