
Estoy tratando de entender esto. Digamos que tengo un SSD de 256 GB, de los cuales 180 GB ya están ocupados por archivos permanentes (sistema operativo, programas instalados, etc.). Los 70 GB restantes aproximadamente se crean y eliminan nuevos archivos. ¿No significa esto que los chips NAND de esa parte se desgastarán antes que el área cuyos archivos no se modifican? ¿O SSD también mueve los archivos que no cambian con el paso del tiempo?
Respuesta1
El SSD mueve archivos que no cambian a lo largo del tiempo.
En primer lugar, están los sectores virtuales que están expuestos al sistema operativo (que no deben confundirse con los clústeres del sistema de archivos) y luego están las celdas físicas en los chips flash. A medida que el controlador flash asigna/desasigna celdas, reasigna los sectores virtuales en consecuencia para que sea transparente para el sistema operativo (los mismos sectores virtuales pueden aparecer en diferentes ubicaciones de las celdas flash en diferentes momentos).
En segundo lugar, los SSD en realidad tienen celdas de repuesto que no se pueden utilizar como espacio libre. Están reservados específicamente para nivelar el desgaste, mitigar la amplificación de escritura y reasignar células muertas. De esa manera, incluso si su SSD no tiene bytes de espacio libre, el controlador flash aún tiene espacio para nivelar el desgaste.
Digamos que tienes un SSD de 500 GB que está 100% lleno. Ahora digamos que 499 GB de esos datos es un archivo que nunca cambia, pero tienes un archivo de 1 GB que cambia todo el tiempo. Si elimina ese archivo de 1 GB y luego copia otro archivo de 1 GB, el controlador flash hará una de dos cosas en ese momento:
- Todos o algunos de los datos nuevos se asignarán a celdas sobrantes, dejando las celdas antiguas en un estado aún recortado.
- 1 GB de celdas dentro de los 499 GB de datos que nunca cambian se copiarán a otras celdas disponibles. Luego, las celdas antiguas se borrarán y se reescribirán con los datos nuevos.
En ambos casos, los sectores virtuales presentados al sistema operativo nunca cambian, por lo que el sistema operativo no se da cuenta de lo que realmente está sucediendo. El controlador flash mantiene una tabla de mapeo de celdas de memoria a sectores virtuales.
El objetivo del algoritmo de nivelación de desgaste en la vida es intentar ejercitar todas las celdas de manera uniforme, incluso si eso implica mover datos para lograrlo. Este proceso ralentiza la unidad y (irónicamente) provoca un desgaste adicional de las celdas flash. Se llamaescribe amplificaciony es un problema importante con los SSD. Los algoritmos de nivelación de desgaste reales empleados por los SSD y las formas en que mitigan la amplificación de escritura son secretos comerciales patentados entre los fabricantes de SSD, por lo que esta es solo una descripción general del proceso.