En una unidad de estado sólido (SSD)
La función del host: 1. El front-end implementa interfaces estándar para comunicarse con el host (interfaz SATA, SAS, PCIe); 2. El back-end implementa la comunicación con la memoria flash; 3. Se ejecuta; el algoritmo FTL interno del SSD.
La interfaz SATA implementa el protocolo AHCI; PCIe implementa el protocolo NVMe;
Memoria flash: memoria no volátil, las unidades de almacenamiento incluyen SLC, MLC y TLC (almacenando respectivamente 1 bit). , datos de 2 y 3 bits).
? Una memoria flash tiene varios canales de conexión de troquel (o LUN), cada troquel tiene varios planos (comunes 1, 2, 4), cada plano tiene varios bloques, cada bloque tiene varias páginas y cada página corresponde a una línea de palabras, cada palabra línea consta de miles de células de memoria.
? Funciones de la memoria flash: leer, escribir, borrar (la escritura no se puede sobrescribir, borrar primero; borrar por bloque, leer y escribir por página)
? Problemas de memoria flash: 1. Bloques defectuosos de memoria flash; 2. Interferencia de lectura; 3. Interferencia de escritura; 4. Acoplamiento entre celdas de almacenamiento; 5. Fuga de carga; Comunicación frontal SSD: a través de SATA, SAS; , Interfaz PCIe Conéctese con el host para implementar los protocolos correspondientes como ATA, SCSI, NNMe, etc.
Comunicación backend SSD: sigue el protocolo ONFI o de conmutación y se comunica con la memoria flash.
Algoritmo FTL: 1. Gestión de bloques incorrectos; 2. Traducción de direcciones 3. Recolección de basura 4. Equilibrio de desgaste 5. Procesamiento de interferencias de lectura; Gestión: La memoria flash es inherentemente bloques defectuosos. Con el uso de SSD, cada vez hay más bloques defectuosos. El síntoma de los bloques defectuosos es un error de borrado o de lectura (ECC no puede corregir errores de datos), por lo que se adopta una estrategia de omisión o un mecanismo de reemplazo. La estrategia de salto conduce a un paralelismo bajo, el mecanismo de reemplazo tiene un efecto de barril y está limitado por moldes deficientes.
Traducción de direcciones: tabla de mapeo, completa la conversión de la dirección lógica del host a la dirección física flash. El tamaño de la tabla de mapeo es generalmente 1/1024 de la capacidad del SSD. La tabla de mapeo se almacena en la memoria del host, en la DRAM SSD semicargada (de uso común) o en la memoria. Hay tres métodos de mapeo: mapeo de bloques, mapeo de páginas y mapeo híbrido. El mapeo de bloques se caracteriza por un buen rendimiento de lectura y escritura para datos de gran tamaño, pero un rendimiento de escritura deficiente para datos de tamaño pequeño. El mapeo de páginas se caracteriza por un buen rendimiento de lectura y escritura, pero requiere más espacio para almacenar la tabla de mapeo. El espacio y el rendimiento necesarios para el mapeo híbrido se encuentran en algún lugar entre el mapeo de bloques y el mapeo de páginas.
Recolección de basura: debido a la actualización de datos fuera del sitio, los datos originales dejan de ser válidos y se genera basura. La recolección de basura elimina datos válidos de uno o más bloques, los concentra en un bloque libre y borra estos bloques después de eliminar los datos válidos. La recolección de basura provocará amplificación de escritura (WA), lo que desgastará la memoria flash y ocupará ancho de banda. También desgastará la memoria flash y afectará su vida útil. Cuanto más pequeña sea la WA, mejor. Cuanto mayor sea el espacio reservado (OP), menor será la cantidad de escritura. Cuanto mayor sea el OP, menores serán los datos efectivos de cada bloque de memoria flash, más basura, menos datos reescritos y menor será la cantidad de escritura.
Nivelación de desgaste: la memoria flash tiene una vida útil y el número de borrados por bloque de memoria flash es limitado. FTL debe garantizar que cada bloque flash se escriba de manera equilibrada. Se divide en equilibrio de desgaste dinámico y equilibrio de desgaste estático. La nivelación dinámica del desgaste se refiere a escribir datos calientes en bloques jóvenes. La nivelación de desgaste estático se refiere a escribir datos fríos en bloques antiguos (datos fríos, datos que no se actualizan con frecuencia; datos calientes, datos de Hu que se actualizan con frecuencia; bloques antiguos, bloques de memoria flash que se borran más veces; bloques jóvenes, que se borran menos veces). de bloques de memoria flash)