Čo je blok Nand Flash a Bad?

Oct 25, 2022

1 NAND BLESK

1.1 Predstavenie NAND FLASH pamätí

NAND FLASH Memory, čínsky názov flash pamäť. Svoje meno dostal vďaka rýchlej rýchlosti vymazávania.

NAND FLASH vynašiel pán Fujio Masuoka z japonskej Toshiba Group. Na rozdiel od iných úložných zariadení sú dátové linky NAND FLASH a adresné linky multiplexované a adresné linky nemožno použiť na náhodné adresovanie. Preto NAND FLASH používa stránky stránok ako čítaciu jednotku (všeobecne jedna stránka má 2 kB) a bloky ako jednotku vymazávania. (Vo všeobecnosti je jeden blok 128 KB alebo 256 KB). Po odoslaní príkazu na vymazanie NAND FLASH vymaže všetky bloky po 1 a všetok obsah vo vnútri sa zmení na 0xFF. Keďže čas vymazania je veľmi krátky, je rýchly ako blesk. Takže túto pamäť nazývame FLASH Memory.


1.2 Hardvérový implementačný mechanizmus NAND FLASH

Základnou jednotkou NAND FLASH je MOSFET s plávajúcou bránou.

Dáta sú uložené vo forme elektrického náboja v pamäťových bunkách Flash. Množstvo uloženého náboja závisí od napätia aplikovaného na vonkajšiu bránu. Reprezentácia údajov je reprezentovaná tým, či napätie uloženého náboja presahuje špecifickú hranicu Vth, a ak je uložený náboj dostatočný a presahuje prahovú hodnotu Vth, predstavuje 1. Pre zápis 0 je to vybitie a poplatok sa zníži na menej ako Vth, čo znamená 0.


2 Zlý blok

2.1 Definícia zlého bloku

Keďže proces NAND Flash nemôže zaručiť spoľahlivosť výkonu NAND Memory Array počas jeho životného cyklu, počas výroby a používania NAND sa vyskytnú zlé bloky. Charakteristiky chybných blokov sú: pri programovaní/vymazávaní tohto bloku sa niektoré bity nedajú vytiahnuť vysoko, čo spôsobí chyby v operáciách Page Program a Block Erase.


2.2 Klasifikácia chybných blokov: chybný blok z výroby FBB a použitý chybný blok GBB

(1) FBB: Factory Bad Block, továrenský zlý blok, zlý blok, ktorý práve opustil továreň, sa nazýva Maskovaný zlý blok alebo počiatočný zlý/neplatný blok. Keď NAND Flash opustí továreň, bude existovať určitý počet zlých blokov spôsobených výrobným procesom. Pôvodná továreň zároveň otestuje NAND FLASH pred opustením továrne a bloky použité na test môžu byť v pôvodnej továrni označené ako zlé bloky.

Pred opustením továrne pôvodná továreň označí zlé bloky. Špecifická značka je, že pre bežný NAND Flash s veľkosťou stránky 2K, pre NAND flash sa značka zlého bloku spravidla nachádza na prvej stránke každého bloku. Prvý bajt náhradnej oblasti stránky. Konkrétne sa môžete dotazovať na údajový list rôznych produktov. Ak to nie je 0xFF, znamená to, že ide o zlý blok. Všetky normálne bloky, dobré bloky a všetky údaje v nich sú 0xFF.

(2) GBB: Grown Bad Block s použitím zlých blokov. Počas používania NAND Flash, pretože životnosť vymazávania a zápisu NAND Flash je obmedzená (vo všeobecnosti nie viac ako 100,000-krát), sa po určitom čase používania vyskytnú aj zlé bloky . Ak sa nájde chyba vymazania bloku alebo programu stránky, blok môže byť označený ako chybný blok. Aby boli konzistentné s inherentnými informáciami o chybnom bloku, prvý bajt (bajt) náhradnej oblasti bude tiež označený inými hodnotami ako 0xFF.


2.3 Tabuľka zlých blokov:

Prvý blok blesku musí byť dobrý, keď opustí továreň, inak to znamená, že celý blesk sa nedá použiť. Pretože vo všeobecnosti sa prvý blok použije na uloženie tabuľky zlých blokov (BBT, tabuľka zlých blokov). Kvôli pracovnému mechanizmu zlého manažmentu blokov (Bad Block Management) v ovládači NAND Flash pod architektúrou MTD linuxového jadra a ovládačom NAND Flash UBOOT, ak nepridáte parametre, po načítaní ovládača aktívne požiadate o preskočenie zlé skenovanie blokov. Ak áno, bude aktívne vyhľadávať zlé bloky a vytvorí potrebné BBT pre neskoršiu správu zlých blokov.


2.4 Počet a umiestnenie zlých blokov

Pôvodná továreň NAND FLASH bude mať štandard pre počet a umiestnenie zlých blokov. Pôvodná továreň vo všeobecnosti sľubuje, že počet zlých blokov nepresiahne 2 percentá, ale umiestnenie zlých blokov nie je zaručené (ale prvý blok musí byť dobrý, keď opustí továreň. , pretože prvý bude použitý na ukladať BTT). Čip NAND má napríklad 2048 blokov, 2048*0.02=40.96, takže počet zlých blokov nepresiahne 40. Kde sa však zlé bloky objavia, či sú súvislé alebo náhodné, neexistuje žiadna záruka.


2.5 Vplyv zlých blokov na dobré bloky

Zlý blok neovplyvňuje výkon dobrých blokov, pretože je izolovaný od bitových riadkov vybranými bránami)


2.6 Detekcia zlých blokov

Na týchto blokoch označených ako "zlé bloky" sa vykoná operácia "vymazania". Ak sa vyskytne chyba vymazania bloku, dokazuje to, že blok je skutočne zlý blok.


2.7 Poznámky k operácii vymazania

V skutočnosti môžeme vymazať aj označené zlé bloky. Po násilnom vymazaní týmto spôsobom už informácie o zlých blokoch neexistujú. V prípade chybných blokov z výroby sa vo všeobecnosti neodporúča vymazať označené informácie.

V UBOOT existuje príkaz s názvom „nand scrub“, ktorý vymaže všetok obsah v bloku, vrátane značky zlého bloku, či už ide o továrenskú alebo novú značku, ktorá sa objaví v neskoršom procese používania. Vo všeobecnosti sa to neodporúča používať. Pri výrobe továrne NAND FLASH sa zlé bloky NAND testujú a označujú v relatívne širokom rozsahu teplôt a napätia. Tieto zlé bloky môžu stále pracovať pri určitej teplote alebo napätí, ale môžu sa zmeniť v inom čase, keď sa zmenia podmienky. zlyhanie, ktoré sa stáva potenciálnou časovanou bombou. Ak sa vymažú chybné bloky označené pôvodnou továrňou, je ľahké naraziť na problém straty dát pri zápise a ukladaní dát.

Je lepšie použiť "nand erase" na vymazanie iba dobrých blokov, pre bloky už označené zlé bloky nemazať.


3 Zlé riadenie bloku

Ovládač zariadenia alebo FLASH bude spravovať zlé bloky, čo je BBM (Bad Block Management). Toto doplníme neskôr.


Poznámka

1 Prečo je dobrý blok označený 0xff: pretože vymazanie Nand Flash znamená zmeniť všetky bity zodpovedajúceho bloku na 1, počas operácie zápisu je možné každý bit čipu zmeniť iba od 1 do 0, ale nie. Zmeňte z 0 na 1. 0XFF znamená, že všetko je možné vymazať na 11111111. Znamená to, že sa dá úspešne vymazať a je to dobrý blok.

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

Vyhlásenie o autorských právach: Tento článok je pôvodným článkom blogera CSDN „Alexander{0}}Lai“ a riadi sa zmluvou o autorských právach CC 4.0 BY-SA. Pripojte odkaz na pôvodný zdroj a toto vyhlásenie na opätovné vytlačenie.