Što je Nand Flash i Bad block?
Oct 25, 2022
1 NAND FLASH
1.1 Uvod u NAND FLASH memoriju
NAND FLASH memorija, kineski naziv flash memorija. Ime je dobio zbog velike brzine brisanja.
NAND FLASH izumio je g. Fujio Masuoka iz japanske Toshiba grupe. Za razliku od drugih uređaja za pohranu, NAND FLASH podatkovne linije i adresne linije su multipleksirane, a adresne linije se ne mogu koristiti za nasumično adresiranje. Stoga NAND FLASH koristi stranice stranice kao jedinicu za čitanje (općenito jedna stranica ima 2K bajta), a blokove kao jedinicu za brisanje. (Općenito jedan blok iznosi 128 KB ili 256 KB). Nakon slanja naredbe za brisanje, NAND FLASH briše sve blokove do 1 odjednom, a sav sadržaj unutar postaje 0xFF. Budući da je vrijeme brisanja vrlo kratko, brzo je kao munja. Stoga ovu memoriju nazivamo FLASH memorija.
1.2 Hardverski mehanizam implementacije NAND FLASH-a
Osnovna jedinica NAND FLASH je MOSFET s plutajućim vratima.
Podaci se pohranjuju u obliku električnog naboja u ćelijama Flash memorije. Količina pohranjenog naboja ovisi o naponu primijenjenom na vanjska vrata. Prikaz podataka predstavlja prelazi li napon pohranjenog naboja određeni prag Vth, a ako je pohranjeni naboj dovoljan i premašuje prag Vth, predstavlja 1. Za pisanje 0, to je pražnjenje to, a naboj se smanjuje na manje od Vth, što znači 0.
2 Loš blok
2.1 Definicija lošeg bloka
Budući da proces NAND Flash ne može jamčiti pouzdanost performansi NAND memorijskog niza tijekom njegovog životnog ciklusa, loši blokovi će se pojaviti tijekom proizvodnje i upotrebe NAND-a. Karakteristike loših blokova su: prilikom programiranja/brisanja ovog bloka, neki bitovi se ne mogu povući visoko, što će uzrokovati pogreške u operacijama Programiranja stranice i Brisanja bloka.
2.2 Klasifikacija loših blokova: tvornički loši blok FBB i korišteni loši blok GBB
(1) FBB: Tvornički loš blok, tvornički loš blok, loš blok koji je upravo napustio tvornicu, naziva se maskirani loš blok ili početni loš/nevažeći blok. Kada NAND Flash napusti tvornicu, bit će određena količina loših blokova zbog procesa proizvodnje. U isto vrijeme, izvorna tvornica će testirati NAND FLASH prije napuštanja tvornice, a blokovi korišteni za testiranje također mogu biti označeni kao loši blokovi od strane originalne tvornice.
Prije napuštanja tvornice, originalna tvornica će označiti loše blokove. Specifična oznaka je da se za uobičajeni NAND Flash s veličinom stranice od 2K, za NAND Flash, oznaka lošeg bloka općenito nalazi na prvoj stranici svakog bloka. Prvi bajt rezervnog područja stranice. Točnije, možete tražiti podatkovnu tablicu različitih proizvoda. Ako nije 0xFF, to znači da je loš blok. Sukladno tome, svi normalni blokovi, dobri blokovi i svi podaci u njima su 0xFF.
(2) GBB: Grown Bad Block, korištenje loših blokova. Tijekom upotrebe NAND Flasha, budući da je vijek brisanja i pisanja NAND Flasha ograničen (općenito ne više od 100,000 puta), loši blokovi također će se pojaviti nakon određenog razdoblja korištenja . Ako se pronađe pogreška Block Erase ili Page Program, blok se može označiti kao loš blok. Kako bi bio u skladu s inherentnom lošom informacijom o bloku, prvi bajt (bajt) rezervnog područja također će biti označen drugim vrijednostima osim 0xFF.
2.3 Tablica loših blokova:
Prvi blok bljeskalice mora biti ispravan kada izađe iz tvornice, inače to znači da se cijela bljeskalica ne može koristiti. Budući da će se općenito prvi blok koristiti za spremanje tablice loših blokova (BBT, Bad Block Table). Zbog radnog mehanizma upravljanja lošim blokovima (Bad Block Management) u NAND Flash upravljačkom programu pod Linux kernel MTD arhitekturom i NAND Flash upravljačkom programu UBOOT-a, nakon učitavanja upravljačkog programa, ako ne dodate parametre, aktivno tražite preskakanje skeniranje loših blokova. Ako je tako, aktivno će skenirati loše blokove i uspostaviti potreban BBT za kasnije upravljanje lošim blokovima.
2.4 Broj i mjesto loših blokova
Izvorna NAND FLASH tvornica imat će standard za broj i lokaciju loših blokova. Izvorna tvornica općenito obećava da broj loših blokova ne prelazi 2 posto, ali lokacija loših blokova nije zajamčena (ali prvi blok mora biti dobar kada napusti tvornicu, jer će se prvi koristiti za trgovina BTT). Na primjer, NAND čip ima 2048 blokova, 2048*0.02=40.96, tako da broj loših blokova neće premašiti 40. Ali gdje se loši blokovi pojavljuju, jesu li kontinuirani ili nasumično, nema jamstva.
2.5 Utjecaj loših blokova na dobre blokove
Loš blok ne utječe na izvedbu dobrih blokova jer je izoliran od bitnih linija odabranim vratima)
2.6 Otkrivanje loših blokova
Operacija "brisanja" izvodi se na ovim blokovima označenim kao "loši blokovi". Ako se pojavi pogreška Block Erase, to dokazuje da je blok stvarno loš blok.
2.7 Napomene o operaciji brisanja
Zapravo, također možemo obrisati označene loše blokove. Nakon prisilnog brisanja na ovaj način, informacije o lošem bloku više ne postoje. Za tvornički loše blokove općenito se ne preporučuje brisanje označenih informacija.
U UBOOT-u postoji naredba pod nazivom "nand scrub", koja briše sav sadržaj u bloku, uključujući oznaku lošeg bloka, bilo da se radi o tvorničkoj ili novoj oznaci koja se pojavljuje u procesu kasnijeg korištenja. Općenito se ne preporuča koristiti ovo. Kada se proizvodi NAND FLASH tvornica, NAND loši blokovi se testiraju i označavaju u relativno širokom temperaturnom i naponskom rasponu. Ovi loši blokovi i dalje mogu raditi pod određenom temperaturom ili naponom, ali se mogu promijeniti u nekom drugom trenutku kada se uvjeti promijene. neuspjeh, postaje potencijalna tempirana bomba. Ako se loši blokovi označeni originalnom tvornicom izbrišu, lako je naići na problem gubitka podataka prilikom pisanja i spremanja podataka.
Bolje je koristiti "nand erase" za brisanje samo dobrih blokova, za blokove koji su već označeni lošim blokovima, nemojte brisati.
3 Upravljanje lošim blokovima
Kontroler uređaja ili FLASH upravljat će lošim blokovima, što je BBM (Bad Block Management). Ovo ćemo dodati kasnije.
Napomena
1 Zašto je dobar blok označen s 0xff: budući da brisanje Nand Flasha znači promjenu svih bitova odgovarajućeg bloka u 1, tijekom operacije pisanja svaki bit čipa može se promijeniti samo od 1 na 0, ali ne. Promijenite s 0 na 1. 0XFF znači da se sve može obrisati do 11111111. Označava da se može uspješno obrisati i da je to dobar blok.
———————————————
Izjava o autorskim pravima: Ovaj je članak izvorni članak CSDN blogera "Alexander{{0}}Lai" i slijedi ugovor o autorskim pravima CC 4.0 BY-SA. Priložite poveznicu izvornog izvora i ovu izjavu za ponovno tiskanje.







