Citat:
Ursprungligen postat av
WbZV
Var står det att frigjorda block raderas i bakgrunden? Minnescellerna tål bara ett begränsat antal skrivningar och skulle frigjorda block nollas innan de återanvändes för ny skrivning, så skulle livslängden halveras till ingen nytta. Det jag hört är att frigjorda block flyttas till poolen av lediga block utan att nollas, allt annat vore ekonomiskt vansinne.
Programmerade flashsektorer måste raderas innan det går att skriva till dem igen. Så fungerar allt flashminne. Man kan göra denna radering i samband med skrivning, men det är smartare att göra det i förväg och i bakgrunden när inget annat behöver göras, eftersom det då går snabbare när man väl behöver skriva. Det är inget slöseri, eftersom man i båda fallet raderar sektorn exakt en gång - det är bara fråga om när man gör det.
Det här är allmänbildning inom mitt område (civilingenjör datateknik som jobbat mycket med flashbaserade inbyggda system) men om du vill ha något att läsa är det väl bara att leta upp valfritt datablad.
EDIT: Att kalla det "nollning" är f.ö. lite missvisande eftersom konventionen brukar vara sådan att raderade flashsektorer presenteras som enbart ettor. När man sedan skriver till sektorn sker det genom att nolla de celler som ska innehålla nollor. Att omvandla en nolla till en etta kräver däremot att hela sektorn raderas, och eftersom skrivningar normalt innebär att detta behövs, kan man lite förenklat uttrycka det som att en skriven sektor måste raderas innan den kan skrivas igen. På NAND-flash finns dessutom komplikationen att radering sker på blocknivå medan skrivning sker på sidnivå, där varje block innehåller multipla sidor. För att slita på NAND-flash så lite som möjligt är det därför bäst att vänta med radering av ett block tills alla dess sidor är skrivna. Hur som helst behöver kontrollern hålla reda på vilka block som är raderade och inte, och när den vet att en sida ligger på ett raderat block kan den ju presentera detta som "enbart nollor" för datorn även om det ser annorlunda ut rent fysiskt.