Algoritmul de nivelare a uzurii blitzului NAND

Aug 27, 2022

Deoarece numărul de operațiuni de scriere a memoriei flash este limitat, dacă s-au efectuat 100000 de operații de scriere pe unele unități, fiabilitatea de scriere a acestor unități nu poate fi garantată, iar unele unități pot eșua. De exemplu, unele jurnale ale sistemului de date de management sunt rescrise frecvent, în timp ce unele date de fișiere statice nu sunt aproape niciodată rescrise. Dacă nu sunt controlate, unele blocuri vor fi deteriorate în avans din cauza ștersăturilor repetate, iar unele blocuri nu au fost rescrise. Pentru a rezolva această problemă, operațiunile de scriere sunt distribuite uniform în toate celulele de memorie flash pentru a face un echilibru pe ansamblu pentru a evita eșecul celulelor individuale. Nivelarea uzurii este un algoritm utilizat pe scară largă pentru a rezolva această problemă.

Nivelarea uzurii este de a oferi un mecanism de mapare a blocurilor pentru a distribui pierderea de scriere între diferite blocuri. Nu va face ca unele blocuri să fie scrise mai întâi și va invalida întregul disc SSD. În schimb, unele blocuri rezervate vor înlocui blocurile care eșuează înainte de durata de viață așteptată. Acest algoritm face ca durata de viață a întregului dispozitiv să fie la fel ca durata maximă a blițului.

În general, un algoritm de stocare a fișierelor bazat pe pagină este utilizat pentru a realiza nivelarea uzurii. Nu există o corespondență unu-la-unu între adresa fizică și adresa logică a memoriei flash. Când SSD-ul primește o solicitare de scriere a datelor, nu va scrie în ordine, dar va găsi unitatea cu cea mai mică scriere. Prin urmare, la alocarea dinamică a blocurilor fizice pentru datele de scriere, prioritățile corespunzătoare vor fi alocate în funcție de utilizarea fiecărui bloc, astfel încât să se echilibreze durata de viață a fiecărei celule din întreaga memorie.