stringtranslate.com

Controlador de memoria flash

Memoria USB Lexar 8 GB - Silicon Motion SM3253L - Controlador flash monocanal USB 2.0.

Un controlador de memoria flash (o controlador flash ) administra los datos almacenados en la memoria flash (generalmente flash NAND ) y se comunica con una computadora o dispositivo electrónico . Los controladores de memoria flash pueden diseñarse para funcionar en entornos de ciclo de trabajo bajo, 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 en un ciclo de trabajo bajo. Los controladores flash también pueden diseñarse para entornos de ciclo de trabajo más alto, 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

Una vez que se fabrica un dispositivo de almacenamiento flash, el controlador flash se utiliza primero para formatear la memoria flash. Esto garantiza que el dispositivo funcione correctamente, identifica las celdas de memoria flash defectuosas y asigna celdas de repuesto para reemplazar las celdas que fallen en el futuro. Una parte de las celdas de repuesto también se utiliza para almacenar el firmware que opera el controlador y otras características especiales para un dispositivo de almacenamiento en particular. Se crea una estructura de directorio para permitir que el controlador convierta las solicitudes de sectores lógicos en las ubicaciones físicas en los chips de memoria flash reales. [1]

Leer, escribir y borrar

Cuando el sistema o dispositivo necesita leer o escribir datos en la memoria flash, se comunicará con el controlador de memoria flash. Los dispositivos más simples, como las tarjetas SD y las unidades flash USB, suelen tener una pequeña cantidad de chips de memoria flash conectados simultáneamente. Las operaciones están limitadas a la velocidad de cada chip de memoria flash individual. Por el contrario, 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 flash. [ cita requerida ]

Nivelación de desgaste y selección de bloques

La memoria flash puede soportar un número limitado de ciclos de borrado de programas. Si un bloque de memoria flash en particular se programara y borrara repetidamente sin escribir en ningún otro bloque, ese bloque se desgastaría antes que todos los demás, terminando así prematuramente la vida útil del dispositivo de almacenamiento. Por este motivo, los controladores flash utilizan una técnica denominada nivelación del desgaste para distribuir las escrituras de la forma más uniforme posible entre todos los bloques flash del SSD. En un escenario perfecto, esto permitiría que cada bloque se escribiera hasta alcanzar su vida útil máxima, de modo que todos fallaran al mismo tiempo. [2]

Capa de traducción flash (FTL) y mapeo

Por lo general, los controladores de memoria flash también incluyen la "capa de traducción flash" (FTL), una capa debajo del sistema de archivos que asigna las direcciones de bloque lógico (LBA) del lado del host o del sistema de archivos a la dirección física de la memoria flash (asignación lógica a física). Las LBA se refieren a números de sector y a una unidad de asignación de 512 bytes. Todas las LBA que representan el tamaño lógico visible y administrado por el sistema de archivos se asignan a una ubicación física (ID de bloque, ID de página e ID de sector) de la memoria flash. Como parte de la nivelación del desgaste y otros algoritmos de administración de la memoria flash (administración de bloques defectuosos, administración de perturbaciones de lectura, manejo seguro de la memoria flash, etc.), la ubicación física de una LBA puede cambiar dinámicamente con frecuencia. Las unidades de asignación de una FTL pueden diferir, de modo que las LBA se asignan en función de bloques, páginas o incluso subpáginas. Según el patrón de uso, una granularidad de asignación más fina puede reducir significativamente el desgaste de la memoria flash y maximizar la resistencia de un medio de almacenamiento basado en memoria flash. [3] [4] [5] La función de deduplicación para eliminar datos redundantes y escrituras duplicadas también se agrega en FTL. [6]

Como los metadatos FTL ocupan su propio espacio flash, necesitan protección en caso de pérdida de energía. Además, es posible que la tabla de mapeo se desgaste antes que otras partes de la memoria flash, terminando prematuramente la vida útil de un dispositivo de almacenamiento. Esto generalmente se evita en dispositivos empresariales asignando un espacio de gran tamaño para repuestos, aunque también se han propuesto formas de almacenamiento más duraderas como MRAM para FTL. [ cita requerida ] La relación entre el tamaño de los metadatos FTL y la capacidad de almacenamiento suele ser de 1:1000; por ejemplo, un dispositivo de almacenamiento flash de 1 TB puede tener 1 GB de metadatos FTL.

Recolección de basura

Una vez que se ha escrito una vez cada bloque de un dispositivo de almacenamiento de estado sólido, el controlador flash deberá volver a algunos de los bloques iniciales que ya no tienen datos actuales (también llamados bloques obsoletos). Los datos en estos bloques fueron reemplazados por bloques recién escritos y ahora están esperando ser borrados para que se puedan escribir nuevos datos en ellos. Este es un proceso llamado recolección de basura (GC). Todos los SSD, tarjetas CF y otros dispositivos de almacenamiento flash incluirán algún nivel de recolección de basura. La velocidad a la que un controlador flash hará esto puede variar. [7]

Referencias

  1. ^ ab "Guía de memoria flash" (PDF) . kingston.com . Consultado el 7 de marzo de 2013 .
  2. ^ Chang, Li-Pin (11 de marzo de 2007). "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. "Concesiones de diseño en una capa de traducción Flash" (PDF) . Archivado desde el original (PDF) el 23 de junio de 2015.
  4. ^ "Entender Flash: La capa de traducción de Flash". 17 de septiembre de 2014.
  5. ^ Heidrich, Susan (febrero de 2015). "La nueva arquitectura de gestión de flash permite el uso de MLC para el almacenamiento industrial" (PDF) . Archivado desde el original (PDF) el 23 de junio de 2015. Consultado el 23 de junio de 2015 .
  6. ^ Chen, Feng; Luo, Tian; Zhang, Xiaodong (2011). CAFTL: una capa de traducción flash que reconoce el contenido y mejora la vida útil de las unidades de estado sólido basadas en memoria flash. FAST' 11. p. 6.
  7. ^ "SSDs - Amplificación de escritura, TRIM y GC" (PDF) . OCZ Technology. Archivado desde el original (PDF) el 2012-05-26 . Consultado el 2010-05-31 .