Co to jest Nand Flash i Bad Block?
Oct 25, 2022
1 BŁYSK NAND
1.1 Wprowadzenie pamięci NAND FLASH
Pamięć flash NAND, pamięć flash z chińską nazwą. Otrzymuje swoją nazwę ze względu na dużą szybkość kasowania.
NAND FLASH został wynaleziony przez pana Fujio Masuoka z japońskiej grupy Toshiba. W odróżnieniu od innych urządzeń pamięci masowej, linie danych i adresy NAND FLASH są multipleksowane, a linie adresowe nie mogą być używane do adresowania losowego. Dlatego pamięć NAND FLASH używa stron stron jako jednostki odczytu (zazwyczaj jedna strona to 2K bajtów) i bloków jako jednostki kasującej. (Zazwyczaj pojedynczy blok ma 128 KB lub 256 KB). Po wysłaniu polecenia kasowania, NAND FLASH kasuje wszystkie bloki do 1 na raz, a cała zawartość wewnątrz staje się 0xFF. Ponieważ czas kasowania jest bardzo krótki, jest szybki jak błyskawica. Tak więc nazywamy tę pamięć FLASH Memory.
1.2 Mechanizm implementacji sprzętowej pamięci NAND FLASH
Podstawową jednostką NAND FLASH jest MOSFET z pływającą bramką.
Dane są przechowywane w postaci ładunku elektrycznego w komórkach pamięci Flash. Ilość zmagazynowanego ładunku zależy od napięcia przyłożonego do bramki zewnętrznej. Reprezentacja danych jest reprezentowana przez to, czy napięcie przechowywanego ładunku przekracza określony próg Vth, a jeśli zmagazynowany ładunek jest wystarczający i przekracza próg Vth, to oznacza 1. Do zapisu 0 jest to rozładowanie go, a opłata zostaje zmniejszona do wartości mniejszej niż V, co oznacza 0.
2 zły blok
2.1 Definicja złego bloku
Ponieważ proces NAND Flash nie może zagwarantować niezawodności działania macierzy pamięci NAND podczas jej cyklu życia, podczas produkcji i użytkowania NAND wystąpią złe bloki. Cechy złych bloków to: podczas programowania/kasowania tego bloku, niektóre bity nie mogą być wyciągnięte wysoko, co spowoduje błędy w operacjach programu strony i kasowania bloku.
2.2 Klasyfikacja złych bloków: fabryczny zły blok FBB i używany zły blok GBB
(1) FBB: Factory Bad Block, zły blok fabryczny, zły blok, który właśnie opuścił fabrykę, nazywa się zły blok zamaskowany lub zły/nieprawidłowy blok początkowy. Gdy pamięć NAND Flash opuści fabrykę, z powodu procesu produkcyjnego pojawi się pewna ilość uszkodzonych bloków. W tym samym czasie oryginalna fabryka przetestuje pamięć NAND FLASH przed opuszczeniem fabryki, a bloki użyte do testu mogą być również oznaczone jako złe bloki przez oryginalną fabrykę.
Przed opuszczeniem fabryki oryginalna fabryka oznaczy uszkodzone bloki. Specyficzny znak jest taki, że w przypadku zwykłej pamięci flash NAND o rozmiarze strony 2K, w przypadku pamięci flash NAND, znacznik złego bloku znajduje się zazwyczaj na pierwszej stronie każdego bloku. Pierwszy bajt obszaru zapasowego strony. W szczególności możesz zapytać o arkusz danych różnych produktów. Jeśli nie jest 0xFF, oznacza to, że jest to zły blok. Odpowiednio, wszystkie normalne bloki, dobre bloki i wszystkie zawarte w nich dane to 0xFF.
(2) GBB: Grown Bad Block, wykorzystujący złe bloki. Podczas korzystania z pamięci NAND Flash, ponieważ trwałość wymazywania i zapisywania pamięci NAND Flash jest ograniczona (zwykle nie więcej niż 100,000 razy), nieprawidłowe bloki wystąpią również po pewnym okresie użytkowania . Jeśli zostanie znaleziony błąd usuwania bloku lub programu strony, blok może zostać oznaczony jako zły blok. Aby zachować spójność z nieodłączną informacją o złym bloku, pierwszy bajt (bajt) obszaru zapasowego będzie również oznaczony innymi wartościami niż 0xFF.
2.3 Zła tabela bloków:
Pierwszy blok lampy musi być dobry, gdy opuszcza fabrykę, inaczej oznacza to, że nie można użyć całej lampy. Ponieważ generalnie pierwszy blok będzie używany do zapisania tabeli uszkodzonych bloków (BBT, Bad Block Table). Ze względu na działający mechanizm zarządzania złymi blokami (Bad Block Management) w sterowniku NAND Flash pod architekturą jądra Linux MTD i sterowniku NAND Flash UBOOT, po załadowaniu sterownika, jeśli nie dodasz parametrów, aktywnie prosisz o pominięcie zły skan bloku. Jeśli tak, będzie aktywnie skanować w poszukiwaniu uszkodzonych bloków i ustala niezbędne BBT do późniejszego zarządzania uszkodzonymi blokami.
2.4 Liczba i lokalizacja złych bloków
Oryginalna fabryka NAND FLASH będzie miała standard liczby i lokalizacji złych bloków. Oryginalna fabryka ogólnie obiecuje, że liczba złych bloków nie przekroczy 2 procent, ale lokalizacja złych bloków nie jest gwarantowana (ale pierwszy blok musi być dobry, gdy opuszcza fabrykę. , ponieważ pierwszy będzie używany do sklep BTT). Na przykład chip NAND ma 2048 bloków, 2048*0.02=40.96, więc liczba złych bloków nie przekroczy 40. Ale gdzie pojawiają się złe bloki, czy są ciągłe lub losowo, nie ma gwarancji.
2.5 Wpływ złych bloków na dobre bloki
Zły blok nie wpływa na wydajność dobrych bloków, ponieważ jest izolowany od linii bitowych przez wybrane bramki)
2.6 Wykrywanie uszkodzonych bloków
Na blokach oznaczonych jako „złe bloki” wykonywana jest operacja „wymazywania”. Jeśli wystąpi błąd Block Erase, dowodzi to, że blok jest naprawdę zły blok.
2.7 Uwagi dotyczące operacji kasowania
W rzeczywistości możemy również usunąć zaznaczone uszkodzone bloki. Po wymuszonym usunięciu w ten sposób informacje o złym bloku już nie istnieją. W przypadku fabrycznych uszkodzonych bloków generalnie nie zaleca się usuwania zaznaczonych informacji.
W UBOOT znajduje się polecenie o nazwie „nand scrub”, które usuwa całą zawartość bloku, w tym uszkodzony znak bloku, niezależnie od tego, czy jest to fabryczny, czy nowy znak, który pojawia się w późniejszym procesie użytkowania. Generalnie nie zaleca się korzystania z tego. Kiedy fabryka NAND FLASH jest produkowana, uszkodzone bloki NAND są testowane i znakowane w stosunkowo szerokim zakresie temperatur i napięć. Te uszkodzone bloki mogą nadal działać w określonej temperaturze lub napięciu, ale mogą zostać zmienione w innym czasie, gdy zmienią się warunki. porażka, stając się potencjalną tykającą bombą zegarową. Jeśli uszkodzone bloki oznaczone przez oryginalną fabrykę zostaną usunięte, łatwo można napotkać problem utraty danych podczas zapisywania i zapisywania danych.
Lepiej jest używać "nand erase" do kasowania tylko dobrych bloków, dla bloków już oznaczonych złych bloków nie kasuj.
3 Złe zarządzanie blokami
Kontroler Device lub FLASH będzie zarządzał uszkodzonymi blokami, czyli BBM (Bad Block Management). Dodamy to później.
Uwaga
1 Dlaczego dobry blok jest oznaczony 0xff: ponieważ kasowanie Nand Flash polega na zmianie wszystkich bitów odpowiedniego bloku na 1, podczas operacji zapisu każdy bit chipa można zmienić tylko z 1 do 0, ale nie. Zmień z 0 na 1. 0XFF oznacza, że wszystko można skasować do 11111111. Oznacza to, że można go pomyślnie skasować i jest to dobry blok.
———————————————
Oświadczenie o prawach autorskich: ten artykuł jest oryginalnym artykułem blogera CSDN „Alexander{{0}}Lai” i jest zgodny z umową dotyczącą praw autorskich CC 4.0 BY-SA. Proszę załączyć oryginalny link do źródła i to oświadczenie do ponownego druku.







