Šta je Nand Flash i Bad block?

Oct 25, 2022

1 NAND FLASH

1.1 Uvođenje NAND FLASH memorije

NAND FLASH memorija, kineski naziv flash memorija. Ime je dobio zbog velike brzine brisanja.

NAND FLASH je izumio gospodin Fujio Masuoka iz japanske Toshiba grupe. Za razliku od drugih uređaja za skladištenje, NAND FLASH linije podataka i adresne linije su multipleksirane, a adresne linije se ne mogu koristiti za nasumično adresiranje. Stoga, NAND FLASH koristi stranice kao jedinicu za čitanje (obično jedna stranica ima 2K bajta), a blokove kao jedinicu za brisanje. (Generalno je jedan blok 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. Pošto je vrijeme brisanja vrlo kratko, brzo je poput munje. Zato ovu memoriju nazivamo FLASH memorijom.


1.2 Mehanizam implementacije hardvera NAND FLASH-a

Osnovna jedinica NAND FLASH-a je MOSFET sa floating gate-om.

Podaci se pohranjuju u obliku električnog naboja u fleš memorijskim ćelijama. Količina pohranjenog naboja ovisi o naponu primijenjenom na vanjski gejt. Reprezentacija podataka je predstavljena time da li napon pohranjenog naboja prelazi određeni prag Vth, a ako je pohranjeni naboj dovoljan i premašuje prag Vth, to predstavlja 1. Za pisanje 0, to je za pražnjenje i punjenje se smanjuje na manje od Vth, što znači 0.


2 Loš blok

2.1 Definicija lošeg bloka

Pošto proces NAND Flash ne može garantovati pouzdanost performansi NAND memorijskog niza tokom njegovog životnog ciklusa, loši blokovi će se pojaviti tokom proizvodnje i upotrebe NAND. Karakteristike loših blokova su: prilikom programiranja/brisanja ovog bloka, neki bitovi se ne mogu povući visoko, što će uzrokovati greške u operacijama Programa stranice i Brisanja bloka.


2.2 Klasifikacija loših blokova: fabrički loš blok FBB i korišteni loš blok GBB

(1) FBB: Fabrički loš blok, fabrički loš blok, loš blok koji je upravo napustio fabriku, naziva se maskirani loš blok ili početni loš/nevažeći blok. Kada NAND Flash napusti tvornicu, postojat će određena količina loših blokova zbog procesa proizvodnje. Istovremeno, originalna fabrika će testirati NAND FLASH pre nego što napusti fabriku, a blokovi koji se koriste za testiranje takođe mogu biti označeni kao loši blokovi od strane originalne fabrike.

Prije napuštanja tvornice, originalna fabrika će označiti loše blokove. Specifična oznaka je da se za uobičajeni NAND Flash sa 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. Konkretno, možete tražiti tablicu podataka različitih proizvoda. Ako nije 0xFF, to znači da je loš blok. Shodno tome, svi normalni blokovi, dobri blokovi i svi podaci u njima su 0xFF.

(2) GBB: Grown Bad Block, koristeći loše blokove. Tokom upotrebe NAND Flash-a, budući da je vijek brisanja i pisanja NAND Flash-a ograničen (obično ne više od 100,000 puta), loši blokovi će se također pojaviti nakon određenog perioda korištenja . Ako se pronađe greška brisanja bloka ili programa stranice, blok se može označiti kao loš blok. Kako bi bili u skladu s inherentnim informacijama o lošem bloku, prvi bajt (bajt) rezervne oblasti će također biti označen drugim vrijednostima osim 0xFF.


2.3 Tablica loših blokova:

Prvi blok blica mora biti dobar kada izađe iz fabrike, inače to znači da se ceo blic ne može koristiti. Zato što će se generalno prvi blok koristiti za spremanje tabele loših blokova (BBT, Bad Block Table). Zbog mehanizma rada lošeg upravljanja blokovima (Bad Block Management) u NAND Flash drajveru pod MTD arhitekturom Linux kernela i NAND Flash drajveru UBOOT-a, nakon učitavanja drajvera, ako ne dodate parametre, aktivno tražite da preskočite skeniranje lošeg bloka. Ako je tako, aktivno će skenirati loše blokove i uspostaviti neophodan BBT za kasnije upravljanje lošim blokovima.


2.4 Broj i lokacija loših blokova

Originalna NAND FLASH fabrika će imati standard za broj i lokaciju loših blokova. Originalna fabrika generalno obećava da broj loših blokova ne prelazi 2 procenta, ali lokacija loših blokova nije zagarantovana (ali prvi blok mora biti dobar kada izađe iz fabrike., jer će se prvi koristiti za prodavnica BTT). Na primjer, NAND čip ima 2048 blokova, 2048*0.02=40.96, tako da broj loših blokova neće preći 40. Ali gdje se pojavljuju loši blokovi, da li su kontinuirani ili nasumično, nema garancije.


2.5 Uticaj loših blokova na dobre blokove

Loš blok ne utiče na performanse dobrih blokova jer je izolovan od bitnih linija odabranim vratima)


2.6 Detekcija loših blokova

Operacija "brisanja" se izvodi na ovim blokovima označenim kao "loši blokovi". Ako dođe do greške Block Erase, to dokazuje da je blok stvarno loš blok.


2.7 Napomene o operaciji brisanja

U stvari, također možemo izbrisati označene loše blokove. Nakon nasilnog brisanja na ovaj način, informacije o lošem bloku više ne postoje. Za fabričke loše blokove, generalno se ne preporučuje brisanje označenih informacija.

U UBOOT-u postoji naredba koja se zove "nand scrub", koja briše sav sadržaj u bloku, uključujući oznaku lošeg bloka, bilo da se radi o fabričkoj ili novoj oznaci koja se pojavljuje u procesu kasnije upotrebe. Općenito se ne preporučuje da se ovo koristi. Kada se proizvodi NAND FLASH fabrika, NAND loši blokovi se testiraju i obeležavaju u relativno širokom temperaturnom i naponskom opsegu. Ovi loši blokovi i dalje mogu raditi pod određenom temperaturom ili naponom, ali se mogu promijeniti u nekom drugom trenutku kada se uslovi promijene. neuspjeh, postajući 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 Loše upravljanje blokovima

Kontroler uređaja ili FLASH-a će upravljati lošim blokovima, što je BBM (Bad Block Management). Ovo ćemo dodati kasnije.


Napomena

1 Zašto je dobar blok označen sa 0xff: pošto brisanje Nand Flash-a znači promjenu svih bitova odgovarajućeg bloka u 1, tokom operacije pisanja, svaki bit čipa može se promijeniti samo od 1 za 0, ali ne. Promijenite iz 0 u 1. 0XFF znači da se sve može izbrisati na 11111111. Označava da se može uspješno izbrisati i to je dobar blok.

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

Izjava o autorskim pravima: Ovaj članak je originalni članak CSDN blogera "Alexander{{0}}Lai" i slijedi ugovor o autorskim pravima CC 4.0 BY-SA. Molimo priložite originalni izvorni link i ovu izjavu za ponovno štampanje.