loading...

miércoles, 29 de junio de 2011

SSD Disco Duros Rígidos. Conociendo su tecnología. NAND Flash MLC y SLC

 

Durante todos estos años los fabricantes de chips de memorias como Samsung, Hynix, Infineon, Buffalo, por nombrar alguno, han ido mejorando la manufactura de este tipo de memorias, optimizando los procesos y técnicas de fabricación, lo que ha traído consigo dos ventajas bien importantes como lo es el Factor de Forma de los chips o dicho de una manera mas simple el tamaño físico del chip y también un incremento en la densidad de datos de estos y por consiguiente mejores velocidades de lectura y escritura, entre otros beneficios importantes como tiempos de acceso reducidos y el menor consumo eléctrico.

Las memorias NAND Flash se utilizan en un gran número de dispositivos como: Cámaras digitales, PDA, Teléfonos celulares, PMP (Portal Media Player), GPS, instrumentos musicales, reproductores de música MP3, consola de videojuegos, dispositivos de comunicación, discos SSD, discos híbridos etc etc y desde luego dispositivos de almacenamiento tan populares y utilizados como los Pendrive.

La información en las memorias NAND Flash, se almacena en Celdas y cada una de estas celdas tienen un tiempo de vida determinado que se expresa en ciclos de escritura, si bien no son eternas estas celdas, los ciclos de escritura aseguran una vida útil, mas allá de lo que demoremos en actualizar el dispositivo. Es así que dependiendo del tipo de memoria NAND Flash (MLC o SLC) las celdas pueden tener 10.000 o 100.000 ciclos de escritura por sector físico, llegando a ser mas que suficientes 10.000 ciclos para borrar y escribir completamente el contenido de un array de celdas en un chip de memoria Nand Flash, una vez por día durante 27 años. En 27 años más probablemente las memorias NAND Flash estén obsoletas.

NAND Flash MLC y SLC: Actualmente los fabricantes de memorias NAND Flash están utilizando dos técnicas para fabricar estos chips, en virtud de la capacidad y costos de producción, uno de estos métodos es lo que se denomina MCL (Multi Level Cell) y SLC (Single Level Cell).

MLC (Multi Level Cell): Este método también llamado apilamiento de moldes o "die-stacking" es bastante utilizado por los fabricantes de memorias Flash para ofrecer chips más económicos y de mayor densidad y/o capacidad. Cuando el fabricante de Semiconductores corta un wafer de silicio para obtener el molde o chip de memoria, este apila uno o mas moldes para formar un solo chip de mayor capacidad, por ejemplo si el fabricante de semiconductores une dos moldes de memoria Flash de 256Mbits (32MB) entonces obtendrá un chip de memoria de 512Mbits (64MB) y así con chips de mayor capacidad. Esta forma de apilamiento es lo que da forma a las memorias Flash del tipo MLC. Pero esto trae consigo algunas desventajas también, esto por que la arquitectura o estructura lógica de funcionamiento de las memorias MLC es mas complejo que las SLC, esto por que poseen cuatro estados: erased (11), two thirds (10), one third (01) y programmed (00), por esta razón los chips de memoria MLC suelen tener velocidades de lectura y escritura más reducidos, además de la cantidad de bit por celda que pueden almacenar (2 bit per Cell). La vida útil en tanto como dijimos mas arriba llega a los 10.000 ciclos de escritura y lectura. Finalmente, utilizar esta técnica de apilamiento trae consigo ahorros en la manufactura que hace que estos chips sean mas económicos y que sean integrados en dispositivos de bajo coste o que no requieran de grandes velocidades de lectura y escritura como lo son un teléfono celular convencional o Pendrive genéricos.

SLC (Single Level Cell): Este método es todo lo contrario que el anterior, aquí no existe el apilamiento de moldes o "die-stacking" simplemente el fabricante de semiconductores corta el wafer de silicio y obtiene el chips de memoria respectivo, este tipo de chip se denomina también chip de memoria monolítico, por su composición única. La ventaja de este tipo de chips es que son mucho mas rápidos que los MLC, ya que pueden lograr tasas de lectura y escritura superiores, menor consumo y además una vida útil 10 veces superior con 100.000 ciclos de lectura y escritura, el tiempo de acceso también es menor, aunque traen el inconveniente de que la densidad de datos puede resultar menor que los chips MLC y el precio suele ser superior. Este tipo de chips puede almacenar 1 bit de datos por celda, y solo poseen dos estados erased (1) y programmed (0), por esta razón logran incrementar sus velocidades de escritura y lectura. Las memorias del tipo SLC suelen utilizarse en dispositivos que entregan alto desempeño y larga durabilidad, como por ejemplo Discos Híbridos, discos SSD (Solid Satate Disk), tarjetas de memorias etc. Para resumir esto los dejo con esta imagen de comparación entre memorias SLC y MLC.

Bueno, después de leer estos párrafos te preguntarás, ¿Qué relación tiene esto con el review?, déjeme decirle estimado lector que mucha!, ya que el Corsair Voyager GT incorpora este último tipo de memorias en formato SLC (Single Level Cell) y es por esto que el Voyager GT está calificado como un dispositivo de alto desempeño con altas velocidades de lectura y escritura. Aunque debido a la limitante de tamaño del formato de chips de memorias SLC y el controlador de memoria dual channel interno, es que Corsair ofrece un tamaño máximo de 8GB para su línea GT, en relación a los 16GB como capacidad máxima que ofrece la línea clásica de los Corsair Voyager (NAND Flash MLC), con velocidades menores en todo caso que el modelo GT. De todas formas Corsair ya está trabajando para ver si puede ofrecer una versión de 16GB del Voyager GT.

Ahora, después de Leer estos párrafos sabrás que en ocasiones se esconde mucho más de lo que parece en tres simples acrónimos como SLC o MLC y que comúnmente vienen dentro de las especificaciones de dispositivos como el Corsair Flash Voyager GT.

Las características de fiabilidad y el rendimiento son más importantes para un sistema de archivos flash. En particular, considerar estas limitaciones vs MLC SLC:

  1. La tasa de error de flash MLC es muy alta en comparación con el SLC, por lo menos de 4-bit ECC se requiere frente a 1-bit para SLC. Esto es demasiado lento en software, por lo que necesita un controlador MLC NAND con una función de 4-bit ECC controlador. Un pequeño número de SoC de tener un controlador construido adentro De lo contrario, es necesario agregar un controlador externo para el diseño o la compra de la propiedad intelectual para incluir en su ASIC o FPGA. Los siguientes son los procesadores ARM pocos que se han incorporado en el ECC suficiente para soportar MLC:

  • NXP procesador LPC3180/3250 ha incorporado en el controlador MLC y Reed-Solomon motor ECC
  • TI DM355 Davinci ha incorporado en el motor ECC de 1-bit y 4-bit ECC
  • Procesador TI OMAP 35xx ha incorporado en el motor ECC de 1-bit (Hamming) y 4-bit (BCH)


Cuando ECC se calcula en el hardware, el rendimiento sólo se reduce en forma mínima. En una prueba que hicimos, el rendimiento de escritura sólo se redujo un 1,3%. Por el contrario, el uso de software para el cálculo de ECC en nuestro sistema de archivos flash con el rendimiento del software reduce a un rastreo:

Sin ECC
600 KB / s

1-bit ECC
300 KB / s

4-bit ECC
5 KB / s    (en software)

Es evidente que de 4-bit ECC en el software es inaceptable. Incluso para un 512 MHz ARM11 hemos conseguido sólo 30 KB / s. Hay varios algoritmos para el cálculo de 4 bits (o más) ECC. BCH (Bose, Ray Chaudhuri, Hocquenghem) es muy popular debido a su rendimiento mejorado a lo largo de Reed-Solomon. Sin embargo, incluso las necesidades de los ciclos de microprocesador BCH demasiados. A 256 KB de flash bloque tiene 256 * 1024 * 8 = 2 Mbit. Los cálculos de ECC (hecho por cada 256 bytes) necesita 48 ciclos por poco, y para cada bit se ejecuta alrededor de 10 instrucciones. Así que totalmente se necesita 2M * 48 * 10 (alrededor de mil millones) las instrucciones para calcular los códigos ECC de un bloque de 256 KB de flash. Incluso en un PC de 2 GHz Windows, que necesita unos milisegundos 400-500.

  1. CTM apoya sólo 1 / 10 el número de ciclos de borrado / programa de SLC. El software de gestión flash debe tener un sistema de caché muy bien pensada y reduce el número de ciclos de borrado / programa. Además, las necesidades de la aplicación debe ser considerada. MLC no es adecuado para aplicaciones que deben hacer pequeñas operaciones frecuentes para escribir datos.
  2. No hay programación parcial de la página. El software de gestión flash no se puede cambiar o añadir nuevos datos a una página después de que los datos se han escrito en esa página. Flash algoritmos del sistema de archivos generalmente dependen de esta capacidad para la eficiencia y para reducir el desgaste en el flash. Esto es especialmente importante teniendo en cuenta la máxima más baja de borrado / programa de conteo de ciclo.
  3. La programación debe ser secuencial, de LSB a MSB. El software de gestión flash debe asegurarse de que su algoritmo no va a escribir páginas al azar dentro de un bloque.

Un sistema de archivos flash diseñado para SLC flash no es probable que funcione en flash MLC, sin modificaciones significativas.Dependiendo de los algoritmos utilizados, puede ser imposible sin reescribirlo. Hemos leído este es el caso de JFFS2. En el caso de nuestro conductor flash ( smxNAND , utilizado por smxFFS y smxFS ), relativamente pocas modificaciones eran necesarias. Ellos estaban relacionados con la gestión de bloque de tabla y ECC. Afortunadamente, no se necesitan cambios en otras áreas, tales como el manejo de los bloques de datos. Sin embargo, el controlador modificado es un poco menos eficiente en el uso de las páginas flash, causando un desgaste un poco más en el flash. Pero si usted elige un significativamente mayor parte flash MLC de lo que necesita (que puede ser más barato que un chip SLC de la capacidad que necesita), la nivelación de desgaste estático y dinámico, el conductor se extenderá el uso sobre el área de Flash más grande, el uso de las células a un nivel intermedio y aceptable posible.

¿Por qué utilizar MLC?
Por lo general, se recomienda utilizar SLC en los típicos sistemas embebidos. Sin embargo, en los productos de alto volumen (millones), es probable que tenga sentido considerar MLC. Por ejemplo, un cliente nuestro, no le importa mucho la capacidad de flash, que acaba de comprar el chip más barato flash. En su caso, el chip MLC es de $ 1.50 más barato que el chip SLC, en la cantidad que compran, lo que les ahorraría millones de dólares.

Otras opciones
En vez de usar los chips NAND primas, puede utilizar los dispositivos gestionados NAND, como eMMC, EDS, iNAND, y microSD. Esto pone el software NAND flash en el propio dispositivo para manejar la gestión de bloques, ECC, de nivelación de desgaste, etc El software del sistema no tiene por qué saber los detalles y sólo puede acceder al disco flash como un dispositivo de bloque normal. No hay software de controlador de flash es necesario, sólo un sistema de archivos con un controlador para el dispositivo. Esto podría ser una buena opción si desea utilizar un menor costo y baja el rendimiento del procesador, o una que no tiene MLC + ECC controlador, o si está desarrollando un típico y de bajo volumen de productos integrados. Además de evitar la necesidad de un sistema de archivos flash MLC, esto también reduce los requisitos de su sistema de memoria RAM, ROM, y la potencia de la CPU. Algunos dispositivos son extraíbles y algunos pueden estar soldado a la placa. Tenga en cuenta que los dispositivos extraíbles se pueden poner totalmente dentro de su recinto para evitar la extracción de usuario.

Referencias útiles

  1. SLC vs MLC: un análisis de memoria flash www.supertalent.com / fichas / 20whitepaper.pdf SLC_vs_MLC%
  2. Implementar MLC NAND Flash de costo-efectivas, memoria de alta capacidad www.data-io.com/pdf/NAND/MSystems/Implementing_MLC_NAND_Flash.pdf
  3. SSD MLC Siempre son de seguridad en aplicaciones empresariales? http://www.storagesearch.com/ssd-slc-mlc-notes.html
  4. Compatibilidad con archivos de sistema en la célula multinivel (MLC) de flash en código abiertohttp://www.celinux.org/elc08_presentations/ELC2008%% 20Filesystem 20support% 20de%%%% 20Multi 20Level 20Cell 20flash 20open% 20en% 20source.ppt%

No hay comentarios:

Publicar un comentario