martedì 25 agosto 2009

Wear leveling statico e dinamico

Nel precedente articolo Wear leveling NAND FLASH ho specificato che la tecnica del wear leveling dinamico, al contrario di quanto possa sembrare a prima vista, non può essere considerata in assoluto una tecnica equa.


Mentre per quando riguarda il wear leveling statico, questa volta vengono utilizzati tutti i blocchi per fare in modo che l’usura si distribuisca uniformemente su tutta la memoria, offrendo di fatto un netto aumento della vita del dispositivo rispetto a quanto previsto dalla tecnica del wear leveling dinamico.

Il principio di funzionamento è semplice: ogni blocco è dotato di un contatore che tiene traccia dei suoi erase count, quindi per ogni operazione di I/O viene scelto di volta in volta quello con il valore più basso.Come sappiamo il wear leveling dinamico non offre un trattamento equo tra i blocchi contenenti dati statici e quelli contenenti dati dinamici; con il wear leveling statico viene introdotta invece una raffinatezza tecnica che consente di rimettere in gioco anche i blocchi che sembrerebbero destinati a una situazione di guasto. Viene quindi fissata una soglia sull’erase count di utilizzo di ciascun blocco, soglia al di sotto della quale un blocco viene dichiarato come riutilizzabile anche se contiene dati statici che non necessiterebbero quindi di essere modificati. Il trattamento di tali dati prevede semplicemente lo spostamento in un’altra locazione con erase count più elevato.Questa tecnica è evidentemente più complessa rispetto al wear leveling dinamico ma bisogna considerare un fattore che in alcuni dispositivi può rivelarsi: il calo di performance dovuto allo spostamento di dati che altrimenti non sarebbero coinvolti nelle normali operazioni di I/O. Tale svantaggio può però essere ben visto nell’ottica di un consistente aumento della vita media del dispositivo. Lo sviluppo dei dispositivi NAND Flash e in continuo sviluppo.




Nessun commento: