Apa itu Nand Flash dan blok Buruk?

Oct 25, 2022

1 NAND FLASH

1.1 Pengenalan Memori FLASH NAND

Memori FLASH NAND, memori flash nama Cina. Itu mendapatkan namanya karena kecepatan penghapusannya yang cepat.

NAND FLASH ditemukan oleh Mr. Fujio Masuoka dari Grup Toshiba Jepang. Berbeda dari perangkat penyimpanan lain, jalur data dan jalur alamat NAND FLASH dimultipleks, dan jalur alamat tidak dapat digunakan untuk pengalamatan acak. Oleh karena itu, NAND FLASH menggunakan halaman halaman sebagai unit bacaan (umumnya satu halaman berukuran 2K Bytes), dan blok sebagai unit penghapus. (Umumnya satu blok adalah 128KB atau 256KB). Setelah mengirim perintah hapus, NAND FLASH menghapus semua blok menjadi 1 sekaligus, dan semua konten di dalamnya menjadi 0xFF. Karena waktu penghapusannya sangat singkat, secepat kilat. Jadi kita sebut memori ini FLASH Memory.


1.2 Mekanisme Implementasi Perangkat Keras NAND FLASH

Unit dasar NAND FLASH adalah MOSFET dengan gerbang mengambang.

Data disimpan dalam bentuk muatan listrik dalam sel memori Flash. Jumlah muatan yang disimpan tergantung pada tegangan yang diberikan ke gerbang eksternal. Representasi data diwakili oleh apakah tegangan muatan yang disimpan melebihi ambang tertentu Vth, dan jika muatan yang disimpan cukup dan melebihi ambang Vth, itu mewakili 1. Untuk menulis 0, itu adalah untuk melepaskan itu, dan muatannya dikurangi menjadi kurang dari V, yang berarti 0.


2 Blok Buruk

2.1 Definisi Blok Buruk

Karena proses NAND Flash tidak dapat menjamin keandalan kinerja Array Memori NAND selama siklus hidupnya, blok buruk akan terjadi selama produksi dan penggunaan NAND. Ciri-ciri blok yang buruk adalah: ketika memprogram/menghapus blok ini, beberapa bit tidak dapat ditarik tinggi, yang akan menyebabkan kesalahan dalam operasi Page Program dan Penghapusan Blok.


2.2 Klasifikasi blok buruk: blok buruk pabrik FBB & blok buruk bekas GBB

(1) FBB: Factory Bad Block, factory bad block, bad block yang baru saja keluar dari pabrik, disebut Masked bad block atau initial bad/invalid block. Ketika NAND Flash meninggalkan pabrik, akan ada sejumlah blok buruk karena proses pembuatannya. Pada saat yang sama, pabrik asli akan menguji NAND FLASH sebelum meninggalkan pabrik, dan blok yang digunakan untuk pengujian juga dapat ditandai sebagai blok buruk oleh pabrik asli.

Sebelum meninggalkan pabrik, pabrik asli akan menandai blok buruk. Tanda khusus adalah bahwa untuk Flash NAND umum dengan ukuran halaman 2K, untuk flash NAND, tanda blok buruk umumnya terletak di halaman pertama setiap blok. Byte pertama dari area cadangan halaman. Secara khusus, Anda dapat menanyakan lembar data produk yang berbeda. Jika bukan 0xFF, berarti blok tersebut buruk. Sejalan dengan itu, semua blok normal, blok bagus, dan semua data di dalamnya adalah 0xFF.

(2) GBB: Grown Bad Block, menggunakan bad block. Selama penggunaan NAND Flash, karena masa penghapusan dan penulisan NAND Flash terbatas (umumnya tidak lebih dari 100,000 kali), blok buruk juga akan terjadi setelah periode penggunaan tertentu . Jika ditemukan kesalahan Penghapusan Blok atau Program Halaman, blok tersebut dapat ditandai sebagai blok buruk. Agar konsisten dengan informasi blok buruk yang melekat, byte pertama (byte) dari area cadangan juga akan ditandai dengan nilai lain selain 0xFF.


2.3 Tabel blok buruk:

Blok pertama flashdisk harus bagus saat keluar dari pabrik, jika tidak berarti seluruh flash tidak bisa digunakan. Karena umumnya blok pertama akan digunakan untuk menyimpan tabel blok buruk (BBT, Tabel Blok Buruk). Karena mekanisme kerja manajemen blok buruk (Bad Block Management) pada driver NAND Flash di bawah arsitektur MTD kernel Linux dan driver NAND Flash UBOOT, setelah memuat driver, jika Anda tidak menambahkan parameter, Anda secara aktif meminta untuk melewati pemindaian blok yang buruk. Jika demikian, ia akan secara aktif memindai blok buruk dan menetapkan BBT yang diperlukan untuk manajemen blok buruk nanti.


2.4 Jumlah dan lokasi blok buruk

Pabrik NAND FLASH asli akan memiliki standar untuk jumlah dan lokasi blok buruk. Pabrik asli umumnya menjanjikan jumlah blok buruk tidak melebihi 2 persen, tetapi lokasi blok buruk tidak dijamin (tetapi blok pertama harus baik ketika meninggalkan pabrik. , karena yang pertama akan digunakan untuk menyimpan BTT). Misalnya, chip NAND memiliki 2048 blok, 2048*0.02=40.96, jadi jumlah blok buruk tidak akan melebihi 40. Tetapi di mana blok buruk muncul, apakah itu kontinu atau acak, tidak ada jaminan.


2.5 Dampak blok buruk pada blok baik

Blok yang buruk tidak mempengaruhi kinerja blok yang baik karena diisolasi dari jalur bit oleh gerbang tertentu)


2.6 Deteksi blok buruk

Operasi "hapus" dilakukan pada blok ini yang ditandai sebagai "blok buruk". Jika terjadi kesalahan Block Erase, itu membuktikan bahwa blok tersebut adalah blok yang benar-benar buruk.


2.7 Catatan tentang Operasi Penghapusan

Bahkan, kita juga bisa menghapus blok buruk yang ditandai. Setelah dihapus secara paksa dengan cara ini, informasi blok buruk tidak ada lagi. Untuk blok pabrik yang buruk, umumnya tidak disarankan untuk menghapus informasi yang ditandai.

Ada perintah di UBOOT yang disebut "nand scrub", yang menghapus semua konten di blok, termasuk tanda blokir yang buruk, apakah itu pabrik atau tanda baru yang muncul di proses penggunaan nanti. Biasanya tidak disarankan untuk menggunakan ini. Ketika pabrik NAND FLASH diproduksi, blok buruk NAND diuji dan ditandai dalam rentang suhu dan tegangan yang relatif lebar. Blok buruk ini masih dapat bekerja di bawah suhu atau tegangan tertentu, tetapi dapat diubah di lain waktu ketika kondisinya berubah. kegagalan, menjadi bom waktu yang potensial. Jika blok buruk yang ditandai oleh pabrik asli dihapus, mudah untuk menghadapi masalah kehilangan data saat menulis dan menyimpan data.

Lebih baik menggunakan "nand erase" untuk menghapus hanya blok yang baik, untuk blok yang sudah ditandai blok buruk, jangan dihapus.


3 Manajemen blok yang buruk

Controller Device atau FLASH akan mengatur bad block, yaitu BBM (Bad Block Management). Kami akan menambahkan ini nanti.


Komentar

1 Mengapa blok yang baik ditandai dengan 0xff: karena penghapusan Nand Flash adalah mengubah semua bit dari blok yang sesuai menjadi 1, selama operasi tulis, setiap bit chip hanya dapat diubah dari 1 ke 0, tetapi tidak. Ubah dari 0 menjadi 1. 0XFF berarti semua dapat dihapus ke 11111111. Ini menunjukkan bahwa itu dapat dihapus dengan sukses, dan itu adalah blok yang bagus.

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

Pernyataan hak cipta: Artikel ini adalah artikel asli oleh blogger CSDN "Alexander{{0}}Lai" dan mengikuti perjanjian hak cipta CC 4.0 BY-SA. Harap lampirkan tautan sumber asli dan pernyataan ini untuk dicetak ulang.