日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nandflash地址的物理地址,逻辑地址,spare地址等理解

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nandflash地址的物理地址,逻辑地址,spare地址等理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
物理地址中所講的block ,page column地址都是值得nandflash底層的物理地址,而我們實際使用的nandread nandwrite等命令中的flash地址則是邏輯地址,在mtd層中都會維護這樣一個邏輯地址===> 物理地址的映射表,而文件系統的操作又是基于邏輯地址來的,在mtd層之上,這個映射表的維護是發揮mtd層作用的核心。 在mtd層通過mtdutils工具nandread,nandwrite等對nanflash上的某地址進行讀寫操作都是基于每一頁的data area來的,spare area是不包含在內的;假如你想對spare area中的數據進行讀取,就只能在mtd層往下的物理地址范疇內進行操作即block,page,colum這一層的地址進行操作,此時要讀些spare區則column設為2048. 因為1page又是由bitline即字節或word組成的,所以?1page= column?(列)x?? bitline?(行) 所以,column地址實際上就是本頁的第幾個字節而已,所以在找spare area區域地址的時候,column地址就是2048開始的地址(前面2048個字節是data area,這里開始就是spare area了),我是這樣理解的。。 參考下文。

==================

?

?

?

NAND Flash 的數據是以bit 的方式保存在memory cell,一般來說,一個cell 中只能存儲一個bit。這些cell 以8 個或者16 個為單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device 的位寬。這些Line 會再組成Page,(Nand Flash 有多種結構,我使用的Nand Flash 是K9F1208,下面內容針對三星的K9F1208U0M),每頁528Byte,每32 個page 形成一個Block,

Sizeof(block)=16kByte 。

block=16kbyte,

512Mbit=64Mbyte,

Numberof(block)=4096 1block=32page,

?1page=528byte=512byte(Main Area)+16byte(Spare Area)


Nand flash 以頁為單位讀寫數據,而以塊為單位擦除數據。按照這樣的組織方式可以形成所謂的三類地址: --Block Address -- Page Address --Column Address 。

對于NAND Flash 來講,地址和命令只能在I/O[7:0]上傳遞,數據寬度是8 位。

512byte需要9bit來表示,對于528byte系列的NAND,這512byte被分成1st half和2nd half,各自的訪問由地址指針命令來選擇,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,則block address用A[26:24]表示。

而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 步。

下面,就x16 的NAND flash 器件稍微進行一下說明。 由于一個page 的main area 的容量為256word,仍相當于512byte。但是,這個時候沒有所謂 的1st halfpage 和2nd halfpage 之分了,所以,bit8就變得沒有意義了,也就是這個時候 bit8 完全不用管,地址傳遞仍然和x8 器件相同。除了,這一點之外,x16 的NAND使用方法和 x8 的使用方法完全相同。

正如硬盤的盤片被分為磁道,每個磁道又分為若干扇區,一塊nand flash也分為若干block,每個block分為如干page。一般而言,block、page之間的關系隨著芯片的不同而不同,典型的分配是這樣的:

?

總結

以上是生活随笔為你收集整理的nandflash地址的物理地址,逻辑地址,spare地址等理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。