引腳名稱spa |
引腳功能設計 |
CLEip |
命令鎖存功能內存 |
ALEci |
地址鎖存功能flash |
/CEit |
芯片使能table |
/REclass |
讀使能循環 |
/WE |
寫使能 |
/WP |
寫保護 |
R/B |
就緒/忙輸出信號 |
Vcc |
電源 |
Vss |
地 |
N.C |
不接 |
IO0~IO7 |
數據傳輸、命令、地址 |
2、存儲組織形式
一個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