Kas ir Nand Flash un Bad bloks?
Oct 25, 2022
1 NAND zibspuldze
1.1. NAND zibatmiņas ieviešana
NAND zibatmiņa, ķīniešu nosaukuma zibatmiņa. Savu nosaukumu tas ieguvis ātrā dzēšanas ātruma dēļ.
NAND FLASH izgudroja Fudžio Masuoka no Japānas Toshiba Group. Atšķirībā no citām atmiņas ierīcēm NAND FLASH datu līnijas un adrešu līnijas ir multipleksētas, un adrešu līnijas nevar izmantot nejaušai adresēšanai. Tāpēc NAND FLASH izmanto lappušu lapas kā lasīšanas vienību (parasti viena lapa ir 2K baiti) un blokus kā dzēšanas vienību. (Parasti viens bloks ir 128 KB vai 256 KB). Pēc dzēšanas komandas nosūtīšanas NAND FLASH izdzēš visus blokus pa vienam, un viss iekšējais saturs kļūst par 0xFF. Tā kā dzēšanas laiks ir ļoti īss, tas ir tikpat ātrs kā zibens. Tāpēc mēs šo atmiņu saucam par FLASH Memory.
1.2. NAND FLASH aparatūras ieviešanas mehānisms
NAND FLASH pamatvienība ir MOSFET ar peldošiem vārtiem.
Dati tiek glabāti elektriskā lādiņa veidā zibatmiņas šūnās. Uzglabātās uzlādes apjoms ir atkarīgs no ārējiem vārtiem pievadītā sprieguma. Datu attēlojums tiek attēlots ar to, vai saglabātā lādiņa spriegums pārsniedz noteiktu Vth slieksni, un, ja saglabātais lādiņš ir pietiekams un pārsniedz Vth slieksni, tas ir 1. Rakstīšanai 0 ir izlāde. un maksa tiek samazināta līdz Vth, kas nozīmē 0.
2 Slikts bloks
2.1. Sliktā bloka definīcija
Tā kā NAND Flash process nevar garantēt NAND atmiņas masīva veiktspējas uzticamību tā dzīves cikla laikā, NAND ražošanas un lietošanas laikā radīsies slikti bloki. Slikto bloku īpašības ir šādas: programmējot/dzēšot šo bloku, dažus bitus nevar pacelt augstu, kas radīs kļūdas Page Program un Block Erase darbībās.
2.2. Slikto bloku klasifikācija: rūpnīcas sliktais bloks FBB un lietots sliktais bloks GBB
(1) FBB: Factory Bad Block, rūpnīcas sliktais bloks, slikts bloks, kas tikko ir pametis rūpnīcu, tiek saukts par maskētu sliktu bloku vai sākotnējo sliktu/nederīgu bloku. Kad NAND Flash pamet rūpnīcu, ražošanas procesa dēļ būs zināms daudzums sliktu bloku. Tajā pašā laikā sākotnējā rūpnīca pārbaudīs NAND FLASH pirms izbraukšanas no rūpnīcas, un arī testam izmantotos blokus sākotnējā rūpnīca var atzīmēt kā sliktus blokus.
Pirms rūpnīcas atstāšanas sākotnējā rūpnīca atzīmēs sliktos blokus. Īpaša atzīme ir tāda, ka parastajam NAND Flash ar lapas izmēru 2K, NAND zibspuldzei slikta bloka atzīme parasti atrodas katra bloka pirmajā lapā. Lapas rezerves apgabala pirmais baits. Konkrēti, jūs varat pieprasīt dažādu produktu datu lapas. Ja tas nav 0xFF, tas nozīmē, ka tas ir slikts bloks. Attiecīgi visi parastie bloki, labie bloki un visi tajos esošie dati ir 0xFF.
(2) GBB: Grown Bad Block, izmantojot sliktus blokus. NAND Flash lietošanas laikā, tā kā NAND Flash dzēšanas un rakstīšanas ilgums ir ierobežots (parasti ne vairāk kā 100,000 reizes), pēc noteikta lietošanas perioda rodas arī slikti bloķējumi. . Ja tiek atrasta Block Erase vai Page Program kļūda, bloku var atzīmēt kā sliktu bloku. Lai nodrošinātu atbilstību raksturīgajai slikta bloka informācijai, rezerves apgabala pirmais baits (baits) tiks atzīmēts arī ar citām vērtībām, kas nav 0xFF.
2.3 Slikta bloku tabula:
Pirmajam zibspuldzes blokam ir jābūt labam, kad tā iziet no rūpnīcas, pretējā gadījumā tas nozīmē, ka visu zibspuldzi nevar izmantot. Tā kā parasti pirmais bloks tiks izmantots, lai saglabātu sliktu bloku tabulu (BBT, Bad Block Table). Sliktas bloku pārvaldības (Bad Block Management) darbības mehānisma dēļ NAND Flash draiverī Linux kodola MTD arhitektūrā un UBOOT NAND Flash draiverī pēc draivera ielādes, ja nepievienojat parametrus, jūs aktīvi lūdzat izlaist. slikta bloka skenēšana. Ja tā, tas aktīvi meklēs sliktos blokus un izveidos nepieciešamo BBT vēlākai sliktas bloku pārvaldībai.
2.4. Slikto bloku skaits un atrašanās vieta
Sākotnējā NAND FLASH rūpnīcā būs standarts sliktu bloku skaitam un atrašanās vietai. Sākotnējā rūpnīca parasti sola, ka slikto bloku skaits nepārsniedz 2 procentus, bet slikto bloku atrašanās vieta netiek garantēta (bet pirmajam blokam ir jābūt labam, kad tas iziet no rūpnīcas. , jo pirmais tiks izmantots veikals BTT). Piemēram, NAND mikroshēmā ir 2048 bloki, 2048*0.02=40.96, tāpēc slikto bloku skaits nepārsniegs 40. Bet kur parādās sliktie bloki, vai tie ir nepārtraukti. vai nejauši, garantijas nav.
2.5. Slikto bloku ietekme uz labiem blokiem
Slikts bloks neietekmē labu bloku veiktspēju, jo tas ir izolēts no bitu līnijām ar atlasītajiem vārtiem)
2.6. Sliktu bloku noteikšana
Šiem blokiem, kas atzīmēti kā "slikti bloki", tiek veikta "dzēšanas" darbība. Ja rodas kļūda Block Erase, tas pierāda, ka bloks ir patiešām slikts bloks.
2.7. Piezīmes par dzēšanas darbību
Faktiski mēs varam arī izdzēst atzīmētos sliktos blokus. Pēc šādā veidā piespiedu dzēšanas sliktā bloka informācija vairs nepastāv. Rūpnīcas sliktiem blokiem parasti nav ieteicams dzēst atzīmēto informāciju.
UBOOT ir komanda ar nosaukumu "nand scrub", kas izdzēš visu bloka saturu, tostarp sliktā bloka atzīmi, neatkarīgi no tā, vai tā ir rūpnīcas vai jaunā atzīme, kas parādās vēlākā lietošanas procesā. Parasti to nav ieteicams lietot. Kad tiek ražota NAND FLASH rūpnīca, NAND sliktie bloki tiek pārbaudīti un marķēti salīdzinoši plašā temperatūras un sprieguma diapazonā. Šie sliktie bloki joprojām var darboties zem noteiktas temperatūras vai sprieguma, taču tos var mainīt citā laikā, kad mainās apstākļi. neveiksmi, kļūstot par potenciālu tikšķu bumbu ar laika degli. Ja tiek izdzēsti sākotnējās rūpnīcas atzīmētie sliktie bloki, ir viegli saskarties ar datu zuduma problēmu, rakstot un saglabājot datus.
Labāk ir izmantot "nand erase", lai dzēstu tikai labos blokus, blokiem, kas jau ir atzīmēti kā slikti bloki, nedzēst.
3 Slikta bloku pārvaldība
Ierīces vai FLASH kontrolieris pārvaldīs sliktos blokus, kas ir BBM (Bad Block Management). Mēs to pievienosim vēlāk.
Piezīme
1 Kāpēc labs bloks ir apzīmēts ar 0xff: tā kā Nand Flash dzēšana paredz visus attiecīgā bloka bitus mainīt uz 1, rakstīšanas darbības laikā katru mikroshēmas bitu var mainīt tikai no 1 uz 0, bet ne. Mainiet no 0 uz 1. 0XFF nozīmē, ka visu var dzēst uz 11111111. Tas norāda, ka to var veiksmīgi izdzēst, un tas ir labs bloks.
———————————————
Paziņojums par autortiesībām: šis raksts ir oriģināls CSDN emuāra autora "Alexander{{0}}Lai" raksts, un tas atbilst CC 4.0 BY-SA autortiesību līgumam. Lūdzu, pievienojiet oriģinālā avota saiti un šo paziņojumu atkārtotai drukāšanai.







