NAND FLASH 讀寫尋址方式

來自小不懂的不懂的網易blog:http://fangjian0518.blog.163.com/blog/static/55919656201121043421718/


NAND Flash的尋址方式和NAND Flash的memory組織方式緊密相關。NAND Flash的數據是以bit的方式保存在memory cell,一般來說,一個cell中只能存儲一個bit。這些cell以8個或者16個爲單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device的位寬。

     這些Line會再組成Page,通常是528Byte/page或者264Word/page。然後,每32個page形成一個Block,Sizeof(block)=16kByte.
     Block是NAND Flash中最大的操作單元,擦除就是按照block爲單位完成的,而編程/讀取是按照page爲單位完成的。
     所以,按照這樣的組織方式可以形成所謂的三類地址:
     -Block   Address
     -Page    Address
     -Column Address
     首先,必須清楚一點,對於NAND Flash來講,地址和命令只能在I/O[7:0]上傳遞,數據寬度可以是8位或者16位,但是,對於x16的NAND Device,I/O[15:8]只用於傳遞數據。
     清楚了這一點,我們就可以開始分析NAND Flash的尋址方式了。
     以528Byte/page 總容量512Mbit+512kbyte的NAND器件爲例:
因爲,
     1 block=16kbyte,
     512Mbit=64Mbyte,
     Numberof(block)=1024
     1block=32page,
     1page=528byte=512byte(Main Area)+16byte(Spare Area)
用戶數據保存在main area中。
     512byte需要9bit來表示,對於528byte系列的NAND,這512byte被分成1st half和2nd half,各自的訪問由所謂的pointer operation命令來選擇,也就是選擇了bit8的高低。因此A8就是halfpage pointer,A[7:0]就是所謂的column address。
     32個page需要5bit來表示,佔用A[13:9],即該page在塊內的相對地址。Block的地址是由A14以上的bit來表示,例如512Mb 的NAND,共4096block,因此,需要12個bit來表示,即A[25:14],如果是1Gbit的528byte/page的NAND Flash,共8192個block,則block address用A[26:14]表示。而page address就是blcok address|page address in block
NAND Flash的地址表示爲:
      Block Address|Page Address in block|halfpage pointer|Column Address
地址傳送順序是Column Address,Page Address,Block Address。
由於地址只能在I/O[7:0]上傳遞,因此,必須採用移位的方式進行。
     例如,對於512Mbit x8的NAND flash,地址範圍是0~0x3FF_FFFF,只要是這個範圍內的數值表示的地址都是有效的。
以NAND_ADDR爲例:
     第1步是傳遞column address,就是NAND_ADDR[7:0],不需移位即可傳遞到I/O[7:0]上而halfpage pointer即bit8是由操作指令決定的,即指令決定在哪個halfpage上進行讀寫,而真正的bit8的值是don't care的。
     第2步就是將NAND_ADDR右移9位,將NAND_ADDR[16:9]傳到I/O[7:0]上;
     第3步將NAND_ADDR[24:17]放到I/O上;
     第4步需要將NAND_ADDR[25]放到I/O上;
     因此,整個地址傳遞過程需要4步才能完成,即4-step addressing。

     如果NAND Flash的容量是256Mbit以下,那麼,block adress最高位只到bit24,因此尋址只需要3步。



相關文章



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章