引腳名稱 |
引腳功能 |
CLE |
命令鎖存功能 |
ALE |
地址鎖存功能 |
/CE |
芯片使能 |
/RE |
讀使能 |
/WE |
寫使能 |
/WP |
寫保護 |
R/B |
就緒/忙輸出信號 |
Vcc |
電源 |
Vss |
地 |
N.C |
不接 |
IO0~IO7 |
數據傳輸、命令、地址 |
二、存儲組織形式

一個plane就是一個存儲矩陣。包括若干個Block
OOB/Spare Area
每個頁,相應另一塊區域。叫做空暇區域(SpareArea)。在Linux系統中。一般叫做OOB(Out of Band)。
數據在讀寫的時候相對easy錯誤,所以為了保證數據的正確性。必需要有相應的檢測和糾正機制,此機制叫做ECC/EDC,所以設計了多余的區域,用於存放數據的校驗值。
OOB的讀寫是隨着隨着頁的操作一起完畢的。
OOB的詳細用途包含下面幾個方面:
► 標記所處的block是否為壞塊
► 存儲ECC數據
► 存儲一些和文件系統相關的數據。如jaffs2就會用到這些空間存儲一些特定信息。而yaffs2文件系統。會在 oob中存放非常多和自己文件系統相關的信息
一個16G的NAND的存儲結構大致例如以下:

一個16G的NANDFlash須要34位地址,而傳輸地址的IO口是8位的。因此須要5個循環來傳輸地址信息。
NAND Flash中的壞塊
Nand Flash 中。一個塊中含有1 個或多個位是壞的,就稱為其為壞塊Bad Block。壞塊的穩定性是無法保證
的。也就是說,不能保證你寫入的數據是對的。或者寫入對了。讀出來也不一定對的。與此相應的正常的塊。肯定
是寫入讀出都是正常的。
壞塊有兩種:
(1)出廠時就有存在的壞塊:
一種是出廠的時候。也就是,你買到的新的,還沒用過的Nand Flash,就能夠包括了壞塊。此類出廠時就 有的壞塊,被稱作factory (masked) bad block 或initial bad/invalid block,在出廠之前,就會做相應的標記,
標為壞塊。
(2) 使用過程中產生的壞塊:
第二類叫做在使用過程中產生的,因為使用過程時間長了,在擦塊除的時候,出錯了,說明此塊壞了,也
要在程序執行過程中,發現。而且標記成壞塊的。詳細標記的位置。和上面一樣。這類塊叫做worn-out
bad block。即用壞了的塊。
SLC和MLC的實現機制
NANDFlash依照內部存儲數據單元的電壓的不同層次。也就是單個內存單元中。是存儲1位數據,還是多位數 據,能夠分為SLC和MLC。
► SLC(Single Level Cell)
單個存儲單元僅僅存儲1位,表示1或0。
對於Nand Flash寫入1,就是控制ExternalGate去充電。使得存儲的電荷夠多,超過閾值Vth,就表示1了。
而對於寫入0。就是將其放電。電荷降低到小於Vth,就表示0了
► MLC(Multi Level Cell)
與SLC相應的,就是單個存儲單元能夠存儲多個位。比方2位、4位等。
事實上現機制就是,通過控制內部電荷
的多少。分成多個閾值,從而儲存為不同的數據。
單個存儲單元能夠存儲2位數據的,稱作2的2次方 = 4 LevelCell