NAND FLash基礎概念介紹

1、引腳介紹

引腳名稱spa

引腳功能設計

CLEip

命令鎖存功能內存

ALEci

地址鎖存功能flash

/CEit

芯片使能table

/REclass

讀使能循環

/WE

寫使能

/WP

寫保護

R/B

就緒/忙輸出信號

Vcc

電源

Vss

N.C

不接

IO0~IO7

數據傳輸、命令、地址


    1. 命令、地址、數據都經過8個I/O口傳輸
    2. 寫命令、地址、數據時,都需要將WE、CE信號同一時候拉低
    3. 數據在WE信號的上升沿被NAND Flash鎖存
    4. 命令鎖存信號CLE和地址鎖存信號ALE用來分辨、鎖存命令或地址
    5. 在CLE上升沿,命令被鎖存
    6. 在ALE上升沿,地址被鎖存



2、存儲組織形式

    1. NAND芯片內部分爲die, plane,block, page
    2. chip是指芯片,一個封裝好的芯片就是一個chip
    3. die是晶圓上的小方塊,一個芯片裏可能封裝若干個die, 由於flash的工藝不同,技術不同。由此產生了die
        的 概念。 常見的有Mono Die,a Die。 b die等,一個chip包括N個die
    4. plane是NAND能夠依據讀、寫、擦除等命令進行操做的最小單位

        一個plane就是一個存儲矩陣。包括若干個Block

    5.  Block是NANDFlash的最小擦除單位,一個Block包括了若干個Page
    6.  Page是NANDFlash的最小讀寫單位。一個Page包括若干個Byte

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

相關文章
相關標籤/搜索