FTL no tiene mapeo, ¿cuál es la diferencia de pagar salarios sin dinero?

Hola a todos, soy May.

prefacio

FTL (Flash Translation Layer), es decir, la capa de traducción flash, es el algoritmo central de varios dispositivos de almacenamiento.Su función es convertir la dirección lógica transmitida por el Host en una dirección física, es decir, mapeada.

El mapeo de direcciones es la función más primitiva y básica de FTL.

Entonces, ¿cómo completa FTL el trabajo de mapeo?

tipo de mapeo

En primer lugar, debe saber que hay tres tipos de mapeo:

1. Mapeo de bloques
2. Mapeo de páginas
3. Mapeo híbrido (mapeo de bloques + mapeo de páginas)

mapa de bloques

Con Bloque como unidad de asignación, un bloque lógico se puede asignar a cualquier bloque físico, por lo que el desplazamiento de cada página dentro del bloque permanece sin cambios.

También se requiere una tabla de mapeo para registrar la relación de mapeo entre bloques lógicos y bloques físicos.

Ventajas: Debido a que la tabla de mapeo solo necesita el mapeo de bloques, el espacio que ocupa la tabla de mapeo es pequeño.

Desventajas: Bajo rendimiento. Si el usuario quiere operar una página lógica, necesita leer los datos de todo el bloque, luego modificar la página lógica y luego escribirla en flash, por lo que el rendimiento de escribir datos de tamaño pequeño es extremadamente bajo.

mapeo de página

Con la página como granularidad de asignación, una página lógica se puede asignar a cualquier página física, por lo que el desplazamiento de cada página en el bloque puede variar ampliamente.

Se necesita una tabla de mapeo para registrar la relación de mapeo entre cada página lógica y la página física.

Ventajas: los usuarios pueden operar una página lógica en cualquier momento y escribir datos directamente en la página física correspondiente, lo cual es conveniente y rápido, y tiene un rendimiento excelente.

Desventajas: dado que hay una tabla de mapeo para cada página lógica y página física, y la cantidad de páginas es mucho mayor que la cantidad de bloques, la tabla de mapeo ocupa un gran espacio.

mapeo híbrido

El mapeo híbrido es un híbrido de mapeo de bloques y mapeo de páginas.

Un bloque lógico se puede mapear a cualquier bloque físico, y el método de mapeo de página se adopta en el bloque, y la página lógica en el bloque se puede mapear a cualquier página física en el bloque físico correspondiente.

Por lo tanto, tanto el rendimiento como el espacio se encuentran entre el mapeo de bloques y el mapeo de páginas.

Aquí hay una comparación entre las diferentes asignaciones:

principio de mapeo

El host accede a Flash enviando la dirección lógica LBA, y el tamaño de cada LBA es de 1 segundo.

Cada segundo tiene un tamaño diferente, incluidos 512 B, 4 KB y 8 KB. En la mayoría de los casos, es 512 B, lo que a menudo se denomina paquete de datos en la industria.

proceso de escritura

Flash está escrito en unidades de páginas, por lo que los datos de LAB+ enviados por el host no se escribirán en él de inmediato, sino que se almacenarán en caché en Dbuf primero y no se escribirán en Flash hasta que se reúna el volumen de datos de 1 página.

Cada vez que un usuario escribe 1 página de datos, FTL primero buscará la asignación para ver si existe una relación de asignación correspondiente con el LBA. Si no la encuentra, encontrará una página física para escribir los datos del usuario y crear una nuevo mapeo al mismo tiempo.

Luego, se genera un mapeo entre la dirección lógica del usuario y la dirección física.

Cada vez que se escribe una página lógica, se generará o actualizará una tabla de mapeo.

proceso de lectura

Cuando un usuario lee un área determinada y envía un LBA para acceder, FTL primero buscará en el grupo de tablas de mapeo para encontrar la tabla de mapeo correspondiente al LBA, y luego FTL sabrá de qué página física de Flash leer los datos.

Si el proceso de lectura no encuentra la tabla de mapeo, el proceso de lectura falla.

ubicación del mapa

DRACMA

La mayoría de los dispositivos de almacenamiento tienen DRAM integrada y la tabla de mapeo se puede almacenar en DRAM

Función: puede acceder rápidamente a la tabla de mapeo, lectura y escritura rápidas

Desventaja: con más y más tablas de mapeo, la DRAM ocupada será cada vez más grande, lo que aumenta el costo y el consumo de energía.

Destello

La corriente principal posterior es que la mayoría de las tablas de mapeo se almacenan en Flash, y una pequeña parte de las tablas de mapeo que se utilizan actualmente se almacena en DRAM.

Función: reduzca el costo y el consumo de energía, y evite la pérdida de información de mapeo causada por fallas de energía.Además, el espacio Flash es grande y la tabla de mapeo se puede almacenar tanto como desee.

Cuando el host envía el LBA, FTL buscará primero en DRAM. Si no se encuentra la tabla de mapeo correspondiente, irá a Flash para leer la tabla de mapeo y luego operará la página física correspondiente de acuerdo con la relación de mapeo.

Desventajas: necesita leer Flash dos veces, una para la tabla de mapeo y otra para los datos del usuario. El ancho de banda subyacente se reduce. Para operaciones aleatorias, la eficiencia es un poco menor.

Actualización de la tabla de mapeo

Con la adición, eliminación y sobrescritura de la tabla de mapeo, la tabla de mapeo debe escribirse en Flash para su almacenamiento en un punto determinado, a fin de evitar la pérdida de una gran cantidad de tablas de mapeo cuando se apaga la alimentación.

Escriba la tabla de mapeo en Flash de vez en cuando, incluso si ocurre una falla de energía anormal repentina, solo se pierde una pequeña parte de la relación de mapeo y se puede restaurar más tarde al reconstruir la tabla de mapeo.

El tiempo de escritura de la tabla de mapeo.

1. El número de nuevas tablas de mapeo se ha acumulado hasta cierto límite
2. La cantidad de datos escritos por los usuarios se ha acumulado hasta cierto límite
3. El número restante de bloques de memoria flash libres ha alcanzado cierto límite

política de escritura

1. Actualizar todo

Escriba todas las tablas de mapeo, sin importar si son nuevas o existentes, en Flash.

Ventajas: El firmware es simple de implementar y no es necesario considerar qué tablas de mapeo son nuevas y cuáles ya existen.

Desventajas: una gran cantidad de datos escritos afecta el rendimiento y el retraso, y aumenta la amplificación de escritura.
  
2. Actualizaciones incrementales

Solo escriba la tabla de mapeo recién generada en Flash.

Ventajas: la cantidad de datos recién escritos es pequeña, el rendimiento es bueno y la puntualidad es alta.

Desventajas: la implementación del firmware es complicada y es necesario distinguir entre las tablas de mapeo recién agregadas y las que se sobrescriben.

La decisión de escritura a elegir se debe considerar de acuerdo con la arquitectura del hardware y la situación real.

Bueno, esta vez escribiré aquí primero, te deseo una vida feliz.

Supongo que te gusta

Origin blog.csdn.net/weixin_41904238/article/details/131210395
Recomendado
Clasificación