Kas yra Nand Flash ir Bad blokas?

Oct 25, 2022

1 NAND BLYSTĖ

1.1 NAND FLASH atminties pristatymas

NAND FLASH atmintis, kiniško pavadinimo flash atmintis. Jis gavo savo pavadinimą dėl greito trynimo greičio.

NAND FLASH išrado ponas Fujio Masuoka iš Japonijos „Toshiba Group“. Skirtingai nuo kitų saugojimo įrenginių, NAND FLASH duomenų linijos ir adresų linijos yra multipleksuojamos, o adresų eilutės negali būti naudojamos atsitiktiniam adresavimui. Todėl NAND FLASH naudoja puslapius kaip skaitymo bloką (paprastai vienas puslapis yra 2K baitų), o blokus kaip trynimo vienetą. (Paprastai vienas blokas yra 128 KB arba 256 KB). Išsiuntus trynimo komandą, NAND FLASH ištrina visus blokus po 1, o visas viduje esantis turinys tampa 0xFF. Kadangi trynimo laikas yra labai trumpas, tai greita kaip žaibas. Taigi mes vadiname šią atmintį FLASH Memory.


1.2 NAND FLASH aparatinės įrangos diegimo mechanizmas

Pagrindinis NAND FLASH įrenginys yra MOSFET su plūduriuojančiais vartais.

Duomenys saugomi elektros krūvio pavidalu Flash atminties ląstelėse. Saugomo krūvio dydis priklauso nuo įtampos, tiekiamos išoriniams užtvarai. Duomenų atvaizdavimas parodomas pagal tai, ar saugomo krūvio įtampa viršija tam tikrą V-ąją slenkstį, o jei saugomo krūvio pakanka ir jis viršija V-ąją slenkstį, tai reiškia 1. Rašant 0, tai yra iškrauti. ir mokestis sumažinamas iki mažesnio nei V, o tai reiškia 0.


2 Blogas blokas

2.1 Blogo bloko apibrėžimas

Kadangi NAND Flash procesas negali garantuoti NAND atminties masyvo veikimo patikimumo per jo gyvavimo ciklą, gaminant ir naudojant NAND atsiras blogų blokų. Blogų blokų charakteristikos yra tokios: programuojant/trinant šį bloką kai kurie bitai negali būti ištraukti aukštyn, todėl gali atsirasti klaidų Page Program ir Block Erase operacijose.


2.2 Blogų blokų klasifikavimas: gamyklinis blogas blokas FBB ir naudojamas blogas blokas GBB

(1) FBB: Factory Bad Block, gamyklos blogas blokas, blogas blokas, kuris ką tik išėjo iš gamyklos, vadinamas Masked blog block arba pradinis blogas / netinkamas blokas. Kai NAND Flash paliks gamyklą, dėl gamybos proceso bus tam tikras blogų blokų kiekis. Tuo pačiu metu originali gamykla išbandys NAND FLASH prieš išvažiuodama iš gamyklos, o bandymui naudotus blokus originali gamykla taip pat gali pažymėti kaip blogus blokus.

Prieš išvykstant iš gamyklos, originali gamykla pažymės blogus blokus. Ypatingas ženklas yra tas, kad įprastai NAND Flash, kurios puslapio dydis yra 2K, o NAND Flash atveju blogo bloko ženklas paprastai yra pirmame kiekvieno bloko puslapyje. Pirmasis puslapio atsarginės srities baitas. Tiksliau, galite pateikti užklausą skirtingų produktų duomenų lapuose. Jei jis nėra 0xFF, tai reiškia, kad tai blogas blokas. Atitinkamai, visi įprasti blokai, geri blokai ir visi juose esantys duomenys yra 0xFF.

(2) GBB: Grown Bad Block, naudojant blogus blokus. Naudojant NAND Flash, kadangi NAND Flash trynimo ir rašymo trukmė yra ribota (paprastai ne daugiau kaip 100,000 kartų), blogų blokų taip pat atsiras po tam tikro naudojimo laikotarpio. . Jei randama bloko trynimo arba puslapio programos klaida, blokas gali būti pažymėtas kaip blogas blokas. Kad būtų suderinta su būdinga blogo bloko informacija, pirmasis atsarginės srities baitas (baitas) taip pat bus pažymėtas kitomis reikšmėmis, išskyrus 0xFF.


2.3 Netinkama blokų lentelė:

Pirmasis blykstės blokas turi būti geras, kai iškeliauja iš gamyklos, kitaip tai reiškia, kad negalima naudoti visos blykstės. Kadangi paprastai pirmasis blokas bus naudojamas blogų blokų lentelei išsaugoti (BBT, Bad Block Table). Dėl blogo blokų valdymo (Bad Block Management) veikimo mechanizmo NAND Flash tvarkyklėje pagal Linux branduolio MTD architektūrą ir NAND Flash tvarkyklėje UBOOT, įkėlus tvarkyklę, jei nepridedate parametrų, aktyviai prašote praleisti blogas bloko nuskaitymas. Jei taip, jis aktyviai ieškos blogų blokų ir nustatys reikiamą BBT, kad vėliau būtų galima valdyti blogus blokus.


2.4 Blogų blokų skaičius ir vieta

Originali NAND FLASH gamykla turės blogų blokų skaičiaus ir vietos standartą. Originali gamykla paprastai žada, kad blogų blokų skaičius neviršija 2 procentų, tačiau blogų blokų vieta negarantuojama (tačiau pirmasis blokas turi būti geras, kai iškeliauja iš gamyklos. , nes pirmasis bus naudojamas parduotuvė BTT). Pavyzdžiui, NAND lustas turi 2048 blokus, 2048*0.02=40.96, todėl blogų blokų skaičius neviršys 40. Bet kur atsiranda blogi blokai, ar jie yra ištisiniai arba atsitiktinai, garantijos nėra.


2.5 Blogų blokų poveikis geriems blokams

Blogas blokas neturi įtakos gerų blokų veikimui, nes jis yra atskirtas nuo bitų linijų pasirinktais vartais)


2.6 Blogų blokų aptikimas

Šiems blokams, pažymėtiems kaip „blogi blokai“, atliekama „ištrynimo“ operacija. Jei įvyksta Block Erase klaida, tai įrodo, kad blokas yra tikrai blogas blokas.


2.7 Pastabos dėl trynimo operacijos

Tiesą sakant, mes taip pat galime ištrinti pažymėtus blogus blokus. Tokiu būdu priverstinai ištrynus blogos bloko informacijos nebėra. Gamyklinių blogų blokų atveju paprastai nerekomenduojama ištrinti pažymėtos informacijos.

UBOOT yra komanda, vadinama „nand scrub“, kuri ištrina visą bloko turinį, įskaitant blogo bloko ženklą, nesvarbu, ar tai gamyklos, ar naujas ženklas, kuris atsiranda vėlesnio naudojimo procese. Paprastai nerekomenduojama to naudoti. Gaminant NAND FLASH gamyklą, NAND blogieji blokai yra testuojami ir žymimi gana plačiame temperatūrų ir įtampos diapazone. Šie blogi blokai vis tiek gali veikti esant tam tikrai temperatūrai ar įtampai, bet gali būti pakeisti kitu metu, kai pasikeičia sąlygos. nesėkmė, tapusi potencialia tiksinčia bomba. Jei ištrinami originalios gamyklos pažymėti blogi blokai, rašant ir išsaugant duomenis nesunku susidurti su duomenų praradimo problema.

Geriau naudoti "nand erase", jei norite ištrinti tik gerus blokus, blokų, kurie jau pažymėti kaip blogi blokai, netrinti.


3 Blogas blokų valdymas

Įrenginio arba FLASH valdiklis valdys blogus blokus, tai yra BBM (blogų blokų valdymas). Tai pridėsime vėliau.


Pastaba

1 Kodėl geras blokas pažymėtas 0xff: kadangi Nand Flash ištrynimas reiškia, kad visi atitinkamo bloko bitai pakeičiami į 1, rašymo operacijos metu kiekvienas lusto bitas gali būti pakeistas tik iš 1 į 0, bet ne. Pakeiskite iš 0 į 1. 0XFF reiškia, kad viską galima ištrinti iki 11111111. Tai rodo, kad jį galima sėkmingai ištrinti, ir tai yra geras blokas.

———————————————

Pareiškimas dėl autorių teisių: šis straipsnis yra originalus CSDN tinklaraštininko „Alexander{{0}}Lai“ straipsnis ir atitinka CC 4.0 BY-SA autorių teisių sutartį. Pridėkite pirminio šaltinio nuorodą ir šį teiginį, kad galėtumėte pakartotinai spausdinti.