Como lo entiendo, nivelar el desgaste en Memorias USB / unidades flash será:
- Ayuda a hacer el último más largo. (reducir el "desgaste", que una celda de flash físico solo se puede escribir XX veces)
- Sólo puede funcionar realmente si hay celdas de memoria flash sin usar para cambiar. (Cuanto más llena esté la memoria USB, menos celdas alternativas habrá para nivelar el desgaste)
En el peor de los casos, en un momento dado, he agotado todas y cada una de las memorias de la memoria USB. Entonces es menos probable que se produzca alguna nivelación de desgaste. ¿Puedo / (¿Cómo) revertiría este estado?
Quiero decir en términos de dispositivos USB lo que está vacío
0000 0000 0000 0000
(Relleno cero) me parece que es tan válido como un dato
1111 1111 1111 1111
o 1010 1110 0011 1111
o cualquier otro patrón de bits.
El firmware de la memoria USB de alguna manera necesita saber qué se considera un "no usado" Flash-cell, para que pueda usarlo de nuevo para nivelar el desgaste. ¿Pero después de que una vez haya llenado toda la memoria USB, tengo problemas para ver cómo el firmware podrá determinar qué datos pueden "sobrescribirse" ya que no contienen datos?
Así que mi pregunta es: ¿El llenado a cero puede ser una forma de restablecer la nivelación del desgaste de una memoria USB?
Aunque me temo que esto dependerá a menudo de la implementación ("firmware" y "fabricante"), sigo pensando que este enfoque podría tener una lógica para asumir que el "llenado a cero" puede restablecer la memoria USB en ciertos mejor diseñado- Memorias usb .
La lógica que imagino sería que la nivelación de desgaste del firmware reconocería que un bloque completo (es decir, 512 bytes o 2 kbytes) se establecería solo en ceros.
Bloquear antes: 1101 1011 1000 0010 ... 0001 0011
Bloquear después de: 0000 0000 0000 0000 ... 0000 0000
Cuando leo de este Bloque, me gustaría recibir, por supuesto, esta información:
Bloquear después de: 0000 0000 0000 0000 ... 0000 0000
Pero esta información podría generarse sobre la marcha almacenando ese
Bloque XYZ = vacío en una determinada celda flash solo disponible para el firmware.
Si este fuera el caso, el grupo cuando "reiniciar" (mediante el llenado a cero) se habilitaría para otros fines, ya que la información se almacena en la parte de la memoria del firmware BLOCK XYZ = vacío.
He leído que debería haber algunas memorias USB que tengan ese firmware y, por lo tanto, se puedan restablecer. ¿Puede esto ser verdad? Me gustaría saber, por la pregunta, una "tendencia" tal vez respaldada por información de un fabricante destacado. Tal vez exista incluso una lista que enumere dispositivos USB que puedan restablecerse de esta manera. Para que la respuesta pueda contener un enlace a dicha lista.
También asumo que no hay "un nuevo firmware" diseñado por cada dispositivo USB producido y tal vez hay un firmware USB prominente (que se usa a menudo) que hace tal nivel de desgaste. Entonces, la pregunta podría responderse con respecto a ese firmware.
En el mejor de los casos, alguna persona inteligente podría encontrar una manera de responder a la pregunta en esa forma que contiene algunas instrucciones que nos permitieron a los usuarios (de superusuario) "averiguar" si esta nivelación de desgaste está habilitada o no.
algunos antecedentes de mi pregunta
Las memorias USB / unidades de memoria flash son una buena cosa segura. Pero el problema es que la forma en que almacenan los datos se desgasta, lo que significa que después de solo XX ¡Escribe en una celda de datos! ¡BINGO! tu palo esta muerto
Una forma de aliviar el problema (que Células de memoria flash solo se puede escribir en un número bastante pequeño de veces) es "nivelación de desgaste". Lo que importará es que, si es posible, los datos no siempre se escriban en el mismo. celdas de memoria flash .
La forma en que funciona es que, en lugar de escribir los datos siempre en las mismas celdas físicas, los datos (cuando se modifican) se escriben en otras celdas físicas nuevas. Esto reduce el "estrés" porque, en el mejor de los casos, esto seguirá así.
Para ayudar a entender algunos niveles básicos de desgaste, incluí este concepto a continuación, que muestra cómo la información de "hola", "salut", "hola" y "hi" se almacena posteriormente en una celda de datos lógica llamada datos , que en realidad se escribe en una memoria flash física diferente cada vez (por lo tanto, un pequeño "concepto" de nivelación de desgaste).
state 1: [CELL1: e-m-p-t-y] [CELL2:e-m-p-t-y] [CELL3: e-m-p-t-y] => write data "hello" state 2: [CELL1: hello] [CELL2:e-m-p-t-y] [CELL3: e-m-p-t-y] data=CELL1 => update data to "salut" state 3: [CELL1: hello] [CELL2: salut] [CELL3: e-m-p-t-y] data=CELL2 => update data to "hola" state 4: [CELL1: hello] [CELL2: salut] [CELL3: hola] data=CELL3 => update data to "hi" state5 [CELL1: hi] [CELL2: salut] [CELL3: hola] data=CELL1
Observa cómo después de escribir 4 veces. datos Cada celda en promedio solo fue escrita 1.33 veces. Observe también que la información de qué celda contiene la "lógica datos "también debe almacenarse y actualizarse (lo que requiere que el firmware realice esta contabilidad, usando algo de memoria reservada para esto también)