Hvad er Nand Flash og Bad blok?
Oct 25, 2022
1 NAND FLASH
1.1 Introduktion af NAND FLASH-hukommelse
NAND FLASH hukommelse, kinesisk navn flash hukommelse. Den har fået sit navn på grund af dens hurtige slettehastighed.
NAND FLASH blev opfundet af Mr. Fujio Masuoka fra Japans Toshiba Group. Til forskel fra andre lagerenheder er NAND FLASH-datalinjer og adresselinjer multipleksede, og adresselinjer kan ikke bruges til tilfældig adressering. Derfor bruger NAND FLASH sidesider som læseenhed (generelt er en enkelt side 2K bytes), og blokke som sletteenhed. (Generelt er en enkelt blok 128KB eller 256KB). Efter at have sendt en slettekommando, sletter NAND FLASH alle blokke til 1 ad gangen, og alt indholdet indeni bliver 0xFF. Fordi slettetiden er meget kort, er den hurtig som lynet. Så vi kalder denne hukommelse FLASH Hukommelse.
1.2 Hardwareimplementeringsmekanisme for NAND FLASH
Den grundlæggende enhed i NAND FLASH er en MOSFET med en flydende port.
Data lagres i form af elektrisk ladning i Flash-hukommelsesceller. Mængden af lagret ladning afhænger af den spænding, der påføres den eksterne port. Repræsentationen af dataene er repræsenteret ved, om spændingen af den lagrede ladning overstiger en specifik tærskel Vth, og hvis den lagrede ladning er nok og overstiger tærskel Vth, repræsenterer den 1. For at skrive 0 er det at aflade det, og afgiften reduceres til mindre end femte, hvilket betyder 0.
2 Dårlig blok
2.1 Definition af dårlig blok
Da processen med NAND Flash ikke kan garantere pålideligheden af ydeevnen af NAND Memory Array i dets livscyklus, vil der opstå dårlige blokeringer under produktion og brug af NAND. Karakteristika for dårlige blokke er: når du programmerer/sletter denne blok, kan nogle bits ikke trækkes højt, hvilket vil forårsage fejl i sideprogram- og bloksletningsoperationer.
2.2 Klassificering af dårlige blokke: fabriks dårlig blok FBB & brugt dårlig blok GBB
(1) FBB: Factory Bad Block, den dårlige fabriksblok, den dårlige blok, der lige har forladt fabrikken, kaldes Masked Bad Block eller initial dårlig/ugyldig blok. Når NAND Flash forlader fabrikken, vil der være en vis mængde dårlige blokke på grund af fremstillingsprocessen. Samtidig vil den originale fabrik teste NAND FLASH, inden den forlader fabrikken, og de blokke, der bruges til testen, kan også blive markeret som dårlige blokke af den originale fabrik.
Inden den forlader fabrikken, vil den originale fabrik markere de dårlige blokke. Det specifikke mærke er, at for den almindelige NAND Flash med en sidestørrelse på 2K, for NAND flash, er det dårlige blokmærke generelt placeret på den første side af hver blok. Den første byte i sidereserveområdet. Specifikt kan du forespørge databladet for forskellige produkter. Hvis det ikke er 0xFF, betyder det, at det er en dårlig blok. Tilsvarende er alle normale blokke, gode blokke og alle data i dem 0xFF.
(2) GBB: Grown Bad Block, ved hjælp af dårlige blokke. Under brugen af NAND Flash, fordi slette- og skrivelevetiden for NAND Flash er begrænset (normalt ikke mere end 100,000 gange), vil der også forekomme dårlige blokeringer efter en vis brugsperiode . Hvis der findes en bloksletnings- eller sideprogramfejl, kan blokken markeres som en dårlig blok. For at være i overensstemmelse med den iboende dårlige blokinformation, vil den første byte (byte) i reserveområdet også være markeret med andre værdier end 0xFF.
2.3 Dårligt blokbord:
Den første blok af en blitz skal være god, når den forlader fabrikken, ellers betyder det, at hele blitzen ikke kan bruges. For generelt vil den første blok blive brugt til at gemme den dårlige bloktabel (BBT, Bad Block Table). På grund af arbejdsmekanismen for dårlig blokstyring (Bad Block Management) i NAND Flash-driveren under Linux-kernens MTD-arkitektur og NAND Flash-driveren i UBOOT, efter indlæsning af driveren, hvis du ikke tilføjer parametre, beder du aktivt om at springe over den dårlige blokscanning. Hvis det er tilfældet, vil den aktivt scanne for dårlige blokke og etablere den nødvendige BBT til senere dårlig blokhåndtering.
2.4 Antal og placering af dårlige blokke
Den originale NAND FLASH-fabrik vil have en standard for antallet og placeringen af dårlige blokke. Den oprindelige fabrik lover generelt, at antallet af dårlige blokke ikke overstiger 2 procent, men placeringen af de dårlige blokke er ikke garanteret (men den første blok skal være god, når den forlader fabrikken. , fordi den første vil blive brugt til at butik BTT). For eksempel har en NAND-chip 2048 blokke, 2048*0.02=40.96, så antallet af dårlige blokke vil ikke overstige 40. Men hvor de dårlige blokke optræder, om de er kontinuerlige eller tilfældigt, er der ingen garanti.
2.5 Indvirkningen af dårlige blokke på gode blokke
En dårlig blok påvirker ikke ydeevnen af gode blokke, fordi den er isoleret fra bitlinjerne af udvalgte porte)
2.6 Detektering af dårlige blokke
En "slet"-operation udføres på disse blokke, der er markeret som "dårlige blokke". Hvis bloksletningsfejlen opstår, beviser det, at blokken er en rigtig dårlig blok.
2.7 Bemærkninger om sletning
Faktisk kan vi også slette markerede dårlige blokke. Efter tvangsslettet på denne måde eksisterer den dårlige blokinformation ikke længere. For fabriksskadede blokke anbefales det generelt ikke at slette den markerede information.
Der er en kommando i UBOOT kaldet "nand scrub", som sletter alt indholdet i blokken, inklusive det dårlige blokmærke, uanset om det er fabriksmærket eller det nye mærke, der dukker op i den senere brugsproces. Det anbefales generelt ikke at bruge dette. Når NAND FLASH fabrikken produceres, testes og mærkes NAND dårlige blokke i et relativt bredt temperatur- og spændingsområde. Disse dårlige blokke kan stadig arbejde under en bestemt temperatur eller spænding, men kan ændres på et andet tidspunkt, når forholdene ændrer sig. fiasko, bliver en potentiel tikkende bombe. Hvis de dårlige blokke markeret af den oprindelige fabrik slettes, er det let at støde på problemet med tab af data, når du skriver og gemmer data.
Det er bedre at bruge "nand erase" til kun at slette gode blokke, for blokke, der allerede er markeret med dårlige blokke, skal du ikke slette.
3 Dårlig blokstyring
Controlleren for Device eller FLASH vil administrere dårlige blokke, som er BBM (Bad Block Management). Vi tilføjer dette senere.
Bemærkning
1 Hvorfor er en god blok markeret med 0xff: fordi sletningen af Nand Flash er at ændre alle bits i den tilsvarende blok til 1, under skriveoperationen, kan hver bit af chippen kun ændres fra 1 til 0, men ikke. Skift fra 0 til 1. 0XFF betyder, at alle kan slettes til 11111111. Det indikerer, at det kan slettes med succes, og det er en god blok.
———————————————
Copyrighterklæring: Denne artikel er en original artikel af CSDN-bloggeren "Alexander{{0}}Lai" og følger CC 4.0 BY-SA copyright-aftalen. Vedlæg venligst det originale kildelink og denne erklæring til genoptrykning.







