NAND Flash Wear Leveling Algorithm
Aug 27, 2022
Eftersom antalet skrivoperationer i flashminnet är begränsat, om 100 000 skrivoperationer har utförts på vissa enheter, kan skrivtillförlitligheten för dessa enheter inte garanteras, och vissa enheter kan misslyckas. Till exempel skrivs vissa loggar för hanteringsdatasystem om ofta, medan vissa statiska fildata nästan aldrig skrivs om. Om de inte kontrolleras, kommer vissa block att skadas i förväg på grund av upprepade raderingar, och vissa block har inte skrivits om. För att lösa detta problem fördelas skrivoperationer jämnt till alla flashminnesceller för att skapa en balans i det hela för att undvika misslyckande hos enskilda celler. Slitageutjämning är en algoritm som ofta används för att lösa detta problem.
Slitageutjämning är att tillhandahålla en blockmappningsmekanism för att sprida skrivförlusten mellan olika block. Det kommer inte att göra att vissa block skrivs ner först och ogiltigförklarar hela SSD-disken. Istället kommer vissa reserverade block att ersätta de block som misslyckas före den förväntade livslängden. Denna algoritm gör att hela enhetens livslängd är densamma som den maximala livslängden för blixten.
I allmänhet används en sidbaserad fillagringsalgoritm för att realisera slitageutjämning. Det finns ingen en-till-en-överensstämmelse mellan den fysiska adressen och den logiska adressen för flashminnet. När SSD:n tar emot en dataskrivbegäran kommer den inte att skriva i ordning, utan hitta enheten med minst skriv. Vid dynamisk allokering av fysiska block för skrivdata kommer därför motsvarande prioriteringar att allokeras i enlighet med användningen av varje block, för att balansera livslängden för varje cell i hela minnet.







