Articulo de referencia

controlador de memoria flash

Memoria USB Lexar de 8 GB - Silicon Motion SM3253L - Controlador de memoria flash USB 2.0 de un solo canal. Un controlador de memoria flash (o controlador flash ) administra los...

Memoria USB Lexar de 8 GB - Silicon Motion SM3253L - Controlador de memoria flash USB 2.0 de un solo canal.

Un controlador de memoria flash (o controlador flash ) administra los datos almacenados en la memoria flash (generalmente memoria flash NAND ) y se comunica con una computadora o dispositivo electrónico . Los controladores de memoria flash pueden diseñarse para operar en entornos de bajo ciclo de trabajo , como tarjetas de memoria u otros medios similares para su uso en PDA , teléfonos móviles , etc. Las unidades flash USB utilizan controladores de memoria flash diseñados para comunicarse con computadoras personales a través del puerto USB con un bajo ciclo de trabajo. Los controladores flash también pueden diseñarse para entornos de mayor ciclo de trabajo, como unidades de estado sólido (SSD) utilizadas como almacenamiento de datos para sistemas de computadoras portátiles , hasta matrices de almacenamiento empresarial de misión crítica . [ 1 ]

Configuración inicial

Tras la fabricación inicial de un dispositivo de almacenamiento flash, el controlador flash se utiliza primero para formatear la memoria flash. Esto garantiza el correcto funcionamiento del dispositivo, identifica las celdas de memoria flash defectuosas y asigna celdas de reserva para sustituir a las que fallen en el futuro. Parte de las celdas de reserva también se utiliza para almacenar el firmware que controla el controlador y otras funciones especiales del dispositivo. Se crea una estructura de directorios que permite al controlador convertir las solicitudes de sectores lógicos en las ubicaciones físicas de los chips de memoria flash. [ 1 ]

Leer, escribir y borrar

Cuando el sistema o dispositivo necesita leer o escribir datos en la memoria flash, se comunica con el controlador de memoria flash. Los dispositivos más sencillos, como las tarjetas SD y las unidades flash USB, suelen tener un número reducido de chips de memoria flash conectados simultáneamente. Las operaciones están limitadas por la velocidad de cada chip de memoria flash. En cambio, una unidad de estado sólido de alto rendimiento tendrá más chips organizados con rutas de comunicación paralelas para permitir velocidades mucho mayores que las de un solo chip de memoria flash.

Nivelación del desgaste y selección de bloques

Flash memory can withstand a limited number of program-erase cycles. If a particular flash memory block were programmed and erased repeatedly without writing to any other blocks, the one block would wear out before all the other blocks thereby prematurely ending the life of the storage device. For this reason flash controllers use a technique called wear leveling to distribute writes as evenly as possible across all the flash blocks in the SSD. In a perfect scenario this would enable every block to reach its terabytes written threshold.[2]

Flash translation layer (FTL) and mapping

Usually, flash memory controllers also include the "flash translation layer" (FTL), a layer below the file system that maps host side or file system logical block addresses (LBAs) to the physical address of the flash memory (logical-to-physical mapping). The LBAs refer to sector numbers and to a mapping unit of 512 bytes. All LBAs that represent the logical size visible to and managed by the file system are mapped to a physical location (block ID, page ID and sector ID) of the flash memory. As part of the wear leveling and other flash management algorithms (bad block management, read disturb management, safe flash handling etc.), the physical location of an LBA might dynamically change frequently. The mapping units of an FTL can differ so that LBAs are mapped block-, page- or even sub-page-based. Depending on the usage pattern, a finer mapping granularity can significantly reduce the flash wear out and maximize the endurance of a flash based storage media.[3][4][5] The deduplication function to eliminate redundant data and duplicate writes is also added in FTL.[6]

As the FTL metadata takes up its own flash space, it needs protection in case of power loss. In addition, it is possible for the mapping table to wear out before other parts of the flash memory has, prematurely ending the life of a storage device. This is usually avoided in enterprise devices by allocating an oversized space for spares, although more durable forms of storage like MRAM has been proposed for FTL too.

The FTL may have three types: page mapping, block mapping, and hybrid mapping. Page mapping can have higher performance, but it has bigger FTL metadata size and higher cost, and is usually used on solid state drives. Block mapping can have smaller metadata size and lower cost, but it has lower performance, and is usually used on USB flash drives. On page mapping FTL implementations, the ratio of FTL metadata size and storage capacity is usually 1:1000, for example, a 1TB flash storage device may have 1GB of FTL metadata.

Por lo general, la FTL se implementa mediante firmware que se ejecuta en un controlador de memoria flash integrado en el dispositivo de almacenamiento (como casi todas las SSD, eMMC, tarjetas SD, unidades flash USB, etc.). Sin embargo, algunos sistemas conectan el procesador principal directamente a chips de memoria flash sin un controlador de hardware intermedio, y en su lugar gestionan los bloques defectuosos y la nivelación del desgaste con software que se ejecuta en el procesador principal. [ 7 ]

Recogida de basura

Una vez que se ha escrito una vez en cada bloque de un dispositivo de almacenamiento de estado sólido, el controlador de memoria flash deberá volver a algunos de los bloques iniciales que ya no contienen datos (también llamados bloques obsoletos). Los datos de estos bloques se reemplazaron con bloques recién escritos y ahora esperan a ser borrados para poder escribir nuevos datos en ellos. Este proceso se denomina recolección de basura (GC). Todos los SSD, tarjetas CF y otros dispositivos de almacenamiento flash incluyen algún nivel de recolección de basura. La velocidad a la que un controlador de memoria flash realiza esta tarea puede variar. [ 8 ]

Referencias

  1. 1 2 "Guía de memoria flash" (PDF) . kingston.com . Consultado el 7 de marzo de 2013 .
  2. Chang, Li-Pin (2007-03-11). "Sobre la nivelación eficiente del desgaste para sistemas de almacenamiento de memoria flash a gran escala". CiteSeerX 10.1.1.103.4903 . 
  3. Goodson, Garth; Iyer, Rahul. "Compromisos de diseño en una capa de traducción Flash" (PDF) . Archivado del original (PDF) el 23 de junio de 2015.
  4. "Comprendiendo Flash: La capa de traducción de Flash" . 17 de septiembre de 2014.
  5. Heidrich, Susan (febrero de 2015). "Nueva arquitectura de gestión de memoria flash habilita MLC para almacenamiento industrial" (PDF) . Archivado del original (PDF) el 23 de junio de 2015. Recuperado el 23 de junio de 2015 .
  6. Chen, Feng; Luo, Tian; Zhang, Xiaodong (2011). CAFTL: una capa de traducción flash sensible al contenido que mejora la vida útil de las unidades de estado sólido basadas en memoria flash . FAST' 11. pág. 6. 
  7. "UBIFS - Sistema de archivos UBI: memoria flash sin procesar frente a dispositivos FTL" .
  8. "SSDs - Amplificación de escritura, TRIM y GC" (PDF) . OCZ Technology. Archivado del original (PDF) el 26 de mayo de 2012. Consultado el 31 de mayo de 2010 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Flash_memory_controller&oldid=1322050714#Flash_translation_layer_(FTL)_and_mapping "