Kaj je Nand Flash in Bad block?

Oct 25, 2022

1 NAND FLASH

1.1 Predstavitev pomnilnika NAND FLASH

NAND FLASH Memory, kitajsko ime flash memory. Ime je dobil zaradi visoke hitrosti brisanja.

NAND FLASH je izumil gospod Fujio Masuoka iz japonske skupine Toshiba. Za razliko od drugih naprav za shranjevanje so podatkovne linije NAND FLASH in naslovne vrstice multipleksirane, naslovnih vrstic pa ni mogoče uporabiti za naključno naslavljanje. Zato NAND FLASH uporablja strani strani kot bralno enoto (običajno je posamezna stran 2K bajtov) in bloke kot enoto za brisanje. (Na splošno je en blok velik 128 KB ali 256 KB). Po pošiljanju ukaza za brisanje NAND FLASH izbriše vse bloke po 1 naenkrat in vsa vsebina znotraj postane 0xFF. Ker je čas brisanja zelo kratek, je hitro kot blisk. Zato temu pomnilniku pravimo FLASH pomnilnik.


1.2 Mehanizem strojne izvedbe NAND FLASH

Osnovna enota NAND FLASH je MOSFET s plavajočimi vrati.

Podatki so shranjeni v obliki električnega naboja v celicah Flash pomnilnika. Količina shranjenega naboja je odvisna od napetosti na zunanjih vratih. Predstavitev podatkov je predstavljena s tem, ali napetost shranjenega naboja presega določen prag Vth, in če je shranjeni naboj zadosten in presega prag Vth, predstavlja 1. Za pisanje 0 pomeni izpraznitev in naboj se zmanjša na manj kot Vth, kar pomeni 0.


2 Slab blok

2.1 Opredelitev slabega bloka

Ker proces NAND Flash ne more zagotoviti zanesljivosti delovanja pomnilniškega polja NAND v njegovem življenjskem ciklu, se bodo med proizvodnjo in uporabo NAND pojavili slabi bloki. Značilnosti slabih blokov so: pri programiranju/brisanju tega bloka nekaterih bitov ni mogoče dvigniti visoko, kar bo povzročilo napake v operacijah Page Program in Block Erase.


2.2 Razvrstitev slabih blokov: tovarniško slab blok FBB in uporabljen slab blok GBB

(1) FBB: Factory Bad Block, tovarniško slab blok, slab blok, ki je pravkar zapustil tovarno, se imenuje maskirani slab blok ali začetni slab/neveljaven blok. Ko NAND Flash zapusti tovarno, bo zaradi proizvodnega procesa določena količina slabih blokov. Istočasno bo prvotna tovarna preizkusila NAND FLASH, preden bo zapustila tovarno, in bloke, uporabljene za preizkus, lahko tudi prvotna tovarna označi kot slabe bloke.

Preden zapusti tovarno, bo prvotna tovarna označila slabe bloke. Posebna oznaka je, da je za običajen NAND Flash z velikostjo strani 2K, za NAND flash, oznaka slabega bloka običajno na prvi strani vsakega bloka. Prvi bajt rezervnega območja strani. Natančneje, poizvedujete lahko po podatkovnem listu različnih izdelkov. Če ni 0xFF, to pomeni, da je slab blok. V skladu s tem so vsi normalni bloki, dobri bloki in vsi podatki v njih 0xFF.

(2) GBB: Grown Bad Block, uporaba slabih blokov. Med uporabo NAND Flash, ker je življenjska doba brisanja in zapisovanja NAND Flash omejena (na splošno ne več kot 100,000-krat), se po določenem času uporabe pojavijo tudi slabi bloki . Če je najdena napaka Block Erase ali Page Program, se lahko blok označi kot slab blok. Da bi bil skladen z inherentnimi informacijami o slabem bloku, bo prvi bajt (bajt) rezervnega območja označen tudi z drugimi vrednostmi, ki niso 0xFF.


2.3 Tabela slabih blokov:

Prvi blok bliskavice mora biti dober, ko zapusti tovarno, sicer to pomeni, da celotne bliskavice ni mogoče uporabiti. Ker bo na splošno prvi blok uporabljen za shranjevanje tabele slabih blokov (BBT, Bad Block Table). Zaradi delovnega mehanizma upravljanja slabih blokov (Bad Block Management) v gonilniku NAND Flash pod arhitekturo MTD jedra Linux in gonilniku NAND Flash UBOOT po nalaganju gonilnika, če ne dodate parametrov, aktivno zahtevate preskok skeniranje slabega bloka. Če je tako, bo aktivno iskal slabe bloke in vzpostavil potreben BBT za kasnejše upravljanje slabih blokov.


2.4 Število in lokacija slabih blokov

Prvotna tovarna NAND FLASH bo imela standard za število in lokacijo slabih blokov. Prvotna tovarna na splošno obljublja, da število slabih blokov ne presega 2 odstotkov, vendar lokacija slabih blokov ni zajamčena (vendar mora biti prvi blok dober, ko zapusti tovarno, ker bo prvi uporabljen za trgovina BTT). Čip NAND ima na primer 2048 blokov, 2048*0.02=40.96, tako da število slabih blokov ne bo preseglo 40. Toda kje se pojavijo slabi bloki, ali so neprekinjeni ali naključno, ni nobenega jamstva.


2.5 Vpliv slabih blokov na dobre bloke

Slab blok ne vpliva na delovanje dobrih blokov, ker je izoliran od bitnih linij z izbranimi vrati)


2.6 Odkrivanje slabih blokov

Operacija "brisanja" se izvede na teh blokih, označenih kot "slabi bloki". Če pride do napake Block Erase, to dokazuje, da je blok res slab blok.


2.7 Opombe o operaciji brisanja

Pravzaprav lahko izbrišemo tudi označene slabe bloke. Po prisilnem izbrisu na ta način informacije o slabem bloku ne obstajajo več. Za tovarniško poškodovane bloke na splošno ni priporočljivo izbrisati označenih informacij.

V UBOOT-u obstaja ukaz, imenovan "nand scrub", ki izbriše vso vsebino v bloku, vključno z oznako slabega bloka, ne glede na to, ali gre za tovarniško ali novo oznako, ki se pojavi v kasnejšem postopku uporabe. Na splošno ni priporočljivo uporabljati tega. Ko je tovarna NAND FLASH izdelana, so slabi bloki NAND testirani in označeni v razmeroma širokem temperaturnem in napetostnem območju. Ti slabi bloki lahko še vedno delujejo pod določeno temperaturo ali napetostjo, vendar se lahko spremenijo ob drugem času, ko se spremenijo pogoji. neuspeh in postane potencialna tempirana bomba. Če so poškodovani bloki, ki jih je označila prvotna tovarna, izbrisani, lahko zlahka naletite na težavo izgube podatkov pri zapisovanju in shranjevanju podatkov.

Bolje je uporabiti "nand erase", da izbrišete samo dobre bloke, za bloke, ki so že označeni kot slabi, ne izbrišite.


3 Upravljanje slabih blokov

Krmilnik naprave ali FLASH bo upravljal slabe bloke, kar je BBM (Bad Block Management). To bomo dodali pozneje.


Opomba

1 Zakaj je dober blok označen z 0xff: ker brisanje Nand Flash pomeni spremembo vseh bitov ustreznega bloka v 1, je med operacijo pisanja vsak bit čipa mogoče spremeniti samo od 1 na 0, vendar ne. Spremenite iz 0 v 1. 0XFF pomeni, da je vse mogoče izbrisati na 11111111. Označuje, da ga je mogoče uspešno izbrisati in je dober blok.

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

Izjava o avtorskih pravicah: Ta članek je izvirni članek blogerja CSDN "Alexander{{0}}Lai" in sledi pogodbi o avtorskih pravicah CC 4.0 BY-SA. Priložite izvirno povezavo do vira in to izjavo za ponatis.