Nand Flash va Bad blok nima?

Oct 25, 2022

1 NAND FLASH

1.1 NAND FLASH xotirasini joriy qilish

NAND FLASH Xotira, Xitoy nomidagi flesh xotira. Tez o'chirish tezligi tufayli uning nomini oldi.

NAND FLASH Yaponiyaning Toshiba guruhidan janob Fujio Masuoka tomonidan ixtiro qilingan. Boshqa saqlash qurilmalaridan farqli o'laroq, NAND FLASH ma'lumotlar liniyalari va manzil satrlari multiplekslangan va manzil satrlarini tasodifiy manzillash uchun ishlatib bo'lmaydi. Shuning uchun NAND FLASH sahifa sahifalarini o'qish birligi sifatida ishlatadi (odatda bitta sahifa 2K baytni tashkil qiladi), bloklardan esa o'chirish birligi sifatida. (Odatda bitta blok 128KB yoki 256KB). Oʻchirish buyrugʻi yuborilgandan soʻng, NAND FLASH barcha bloklarni bir vaqtning oʻzida 1 ga oʻchirib tashlaydi va ichidagi barcha tarkiblar 0xFF boʻladi. O'chirish vaqti juda qisqa bo'lgani uchun u chaqmoq kabi tezdir. Shunday qilib, biz bu xotirani FLASH xotira deb ataymiz.


1.2 NAND FLASH ning apparat ta'minotini amalga oshirish mexanizmi

NAND FLASH ning asosiy birligi suzuvchi eshikli MOSFET hisoblanadi.

Ma'lumotlar Flash xotira hujayralarida elektr zaryadi ko'rinishida saqlanadi. Saqlangan zaryad miqdori tashqi eshikka qo'llaniladigan kuchlanishga bog'liq. Ma'lumotlarning ko'rinishi saqlangan zaryadning kuchlanishining Vth ma'lum bir chegaradan oshib ketishi bilan ifodalanadi va agar saqlangan zaryad etarli bo'lsa va Vth chegarasidan oshsa, u 1 ni ifodalaydi. 0 yozish uchun u zaryadsizlanishdir. u va to'lov Vth dan kamroqgacha kamayadi, bu 0 degan ma'noni anglatadi.


2 yomon blok

2.1 Yomon blokning ta'rifi

NAND Flash jarayoni NAND xotira massivining ishlash muddati davomida ishonchliligini kafolatlay olmasligi sababli, NAND ishlab chiqarish va foydalanish jarayonida yomon bloklar paydo bo'ladi. Yomon bloklarning xarakteristikalari quyidagilardir: ushbu blokni dasturlash/o'chirishda ba'zi bitlarni yuqoriga tortib bo'lmaydi, bu esa Sahifa dasturi va Blokni o'chirish operatsiyalarida xatolarga olib keladi.


2.2 Yomon bloklarning tasnifi: zavoddagi yomon blok FBB va ishlatilgan yomon blok GBB

(1) FBB: Factory Bad Block, zavodning noto'g'ri bloki, zavoddan chiqqan yomon blok, Masked bad block yoki boshlang'ich yomon/yaroqsiz blok deb ataladi. NAND Flash zavodni tark etganda, ishlab chiqarish jarayoni tufayli ma'lum miqdorda yomon bloklar bo'ladi. Shu bilan birga, asl zavod zavoddan chiqishdan oldin NAND FLASH-ni sinab ko'radi va sinov uchun ishlatiladigan bloklar ham asl zavod tomonidan yomon bloklar sifatida belgilanishi mumkin.

Zavoddan chiqishdan oldin, asl zavod yomon bloklarni belgilaydi. O'ziga xos belgi shundaki, sahifa o'lchami 2K bo'lgan umumiy NAND Flash uchun, NAND flesh uchun yomon blok belgisi odatda har bir blokning birinchi sahifasida joylashgan. Sahifaning zaxira maydonining birinchi bayti. Xususan, siz turli xil mahsulotlarning ma'lumotlar jadvalini so'rashingiz mumkin. Agar u 0xFF bo'lmasa, bu yomon blok ekanligini bildiradi. Shunga mos ravishda, barcha oddiy bloklar, yaxshi bloklar va ulardagi barcha ma'lumotlar 0xFF.

(2) GBB: yomon bloklardan foydalangan holda o'stirilgan yomon blok. NAND Flash-dan foydalanish paytida, NAND Flash-ni o'chirish va yozish muddati cheklanganligi sababli (odatda 100,000 martadan ko'p bo'lmagan), ma'lum muddat foydalanishdan keyin ham yomon bloklar paydo bo'ladi. . Blokni o'chirish yoki sahifa dasturi xatosi aniqlansa, blok yomon blok sifatida belgilanishi mumkin. O'ziga xos noto'g'ri blok ma'lumotlariga mos kelishi uchun zaxira maydonning birinchi bayti (bayti) 0xFF dan boshqa qiymatlar bilan ham belgilanadi.


2.3 Yomon blok jadvali:

Chiroqning birinchi bloki zavoddan chiqqanda yaxshi bo'lishi kerak, aks holda bu butun chirog'ni ishlatish mumkin emasligini bildiradi. Chunki odatda birinchi blok yomon bloklar jadvalini (BBT, Bad Block Table) saqlash uchun ishlatiladi. Linux yadrosi MTD arxitekturasi ostidagi NAND Flash drayverida va UBOOT NAND Flash drayveridagi noto'g'ri bloklarni boshqarish (Bad Block Management) ish mexanizmi tufayli drayverni yuklaganingizdan so'ng, agar siz parametrlarni qo'shmasangiz, faol ravishda o'tkazib yuborishni so'raysiz. yomon bloklarni skanerlash. Agar shunday bo'lsa, u noto'g'ri bloklarni faol ravishda tekshiradi va keyinchalik yomon bloklarni boshqarish uchun kerakli BBT ni o'rnatadi.


2.4 Yomon bloklarning soni va joylashuvi

Asl NAND FLASH zavodi yomon bloklarning soni va joylashuvi uchun standartga ega bo'ladi. Asl zavod odatda yomon bloklar soni 2 foizdan oshmasligini va'da qiladi, lekin yomon bloklarning joylashuvi kafolatlanmaydi (lekin birinchi blok zavoddan chiqqanda yaxshi bo'lishi kerak. , chunki birinchi blok ishlatiladi. BTT do'konida). Misol uchun, NAND chipida 2048 ta blok bor, 2048*0.02=40.96, shuning uchun yomon bloklar soni 40 dan oshmaydi. Lekin yomon bloklar paydo bo'ladigan joyda, ular doimiy bo'lsin. yoki tasodifiy, hech qanday kafolat yo'q.


2.5 Yomon bloklarning yaxshi bloklarga ta'siri

Yomon blok yaxshi bloklarning ishlashiga ta'sir qilmaydi, chunki u tanlangan eshiklar tomonidan bit chiziqlaridan ajratilgan)


2.6 Yomon bloklarni aniqlash

"Yomon bloklar" deb belgilangan bu bloklarda "o'chirish" operatsiyasi bajariladi. Blokni o'chirish xatosi yuzaga kelsa, bu blok haqiqiy yomon blok ekanligini isbotlaydi.


2.7 O'chirish operatsiyasi bo'yicha eslatmalar

Aslida, biz belgilangan yomon bloklarni ham o'chirib tashlashimiz mumkin. Shu tarzda majburan o'chirilgandan so'ng, yomon blok ma'lumotlari endi mavjud emas. Zavoddagi yomon bloklar uchun odatda belgilangan ma'lumotlarni o'chirish tavsiya etilmaydi.

UBOOT-da "nand scrub" deb nomlangan buyruq mavjud bo'lib, u blokdagi barcha tarkibni, shu jumladan yomon blok belgisini, zavod yoki keyingi foydalanish jarayonida paydo bo'ladigan yangi belgini o'chirib tashlaydi. Umuman olganda, undan foydalanish tavsiya etilmaydi. NAND FLASH zavodi ishlab chiqarilganda, NAND yomon bloklari nisbatan keng harorat va kuchlanish oralig'ida sinovdan o'tkaziladi va belgilanadi. Ushbu yomon bloklar hali ham ma'lum bir harorat yoki kuchlanish ostida ishlashi mumkin, ammo shartlar o'zgarganda boshqa vaqtda o'zgartirilishi mumkin. muvaffaqiyatsizlik, potentsial vaqtli bombaga aylanish. Agar asl zavod tomonidan belgilangan yomon bloklar o'chirilsa, ma'lumotlarni yozish va saqlashda ma'lumotlarni yo'qotish muammosiga duch kelish oson.

Faqat yaxshi bloklarni o'chirish uchun "nand eraase" dan foydalanish yaxshiroqdir, allaqachon yomon bloklar bilan belgilangan bloklar uchun o'chirmang.


3 Bloklarni noto'g'ri boshqarish

Device yoki FLASH boshqaruvchisi yomon bloklarni boshqaradi, ya'ni BBM (Bad Block Management). Buni keyinroq qo'shamiz.


Izoh

1 Nima uchun yaxshi blok 0xff bilan belgilanadi: chunki Nand Flash-ni o'chirish mos keladigan blokning barcha bitlarini 1 ga o'zgartirishdir, yozish jarayonida chipning har bir bitini faqat 1 dan o'zgartirish mumkin. 0 ga, lekin emas. 0 dan 1 ga oʻzgartiring. 0XFF 11111111 ga hammasini oʻchirib tashlash mumkinligini bildiradi. Bu uni muvaffaqiyatli oʻchirish mumkinligini bildiradi va bu yaxshi blok.

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

Mualliflik huquqi bayonnomasi: Bu maqola CSDN bloggerining “Alexander{0}}Lai” asl maqolasi boʻlib, CC 4.0 BY-SA mualliflik huquqi shartnomasiga amal qiladi. Iltimos, asl manba havolasini va ushbu bayonotni qayta chop etish uchun ilova qiling.