NAND_Flash结构与驱动分析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NAND_Flash结构与驱动分析

一、NANDflash 的物理组成 NANDFlash 的数据是以bit 的方式保存在memorycell ,一般来说,一个cell 中只能存储 一个bit 。这些cell 以8 个或者16 个为单位,连成bitline ,形成所谓的byte(x8)/word(x16) , 这就是NANDDevice 的位宽。这些Line 会再组成Page ,(NANDFlash 有多种结构,我使用 的NANDFlash 是K9F1208,下面内容针对三星的K9F1208U0M) ,每页 528Bytes(512byte(MainArea)+16byte(SpareArea)),每32 个page 形成一个Block(32*528B) 。 具体一片flash 上有多少个Block 视需要所定。我所使用的三星k9f1208U0M 具有4096 个 block ,故总容量为4096*(32*528B)=66MB ,但是其中的2MB 是用来保存ECC 校验码等额 外数据的,故实际中可使用的为64MB 。 NANDflash 以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以 形成所谓的三类地址: ColumnAddress :StartingAddressoftheRegister.翻成中文为列地址,地址的低8 位 PageAddress :页地址 BlockAddress :块地址 对于NANDFlash 来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8 位。 二、NANDFlash 地址的表示 512byte 需要9bit 来表示,对于528byte 系列的NAND ,这512byte 被分成 1sthalfPageRegister 和2ndhalfPageRegister ,各自的访问由地址指针命令来选择,A[7:0]就是 所谓的columnaddress(列地址) ,在进行擦除操作时不需要它,why? 因为以块为单位擦除。 32 个page 需要5bit 来表示,占用A[13:9] ,即该page 在块内的相对地址。A8 这一位地址被 用来设置512byte 的1sthalfpage 还是2ndhalfpage ,0 表示1st,1 表示2nd 。Block 的地址是 由A14 以上的bit 来表示。 例如64MB(512Mb)的NANDflash(实际中由于存在sparearea,故都大于这个值) ,共 4096block ,因此,需要12 个bit 来表示,即A[25:14] ,如果是128MB(1Gbit)的528byte/page 的NANDFlash ,则blockaddress 用A[26:14]表示。而pageaddress 就是 blcokaddress|pageaddressinblockNANDFlash 的地址表示为: BlockAddress|PageAddressinblock|halfpagepointer|ColumnAddress 地址传送顺序是 ColumnAddress,PageAddress,BlockAddress 。 由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。例如,对于512Mbitx8 的NANDflash ,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效 的。以NAND_ADDR 为例: 第1 步是传递columnaddress,就是NAND_ADDR[7:0] ,不需移位即可传递到I/O[7:0] 上,而halfpagepointer 即A8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读写, 而真正的A8 的值是不需程序员关心的。 第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-stepaddressing 。如果NANDFlash 的 容量是32MB(256Mbit) 以下,那么,blockadress 最高位只到bit24 ,因此寻址只需要3 步。 下面,就x16 的NANDflash 器件稍微进行一下说明。由于一个page 的mainarea 的容量 为256word ,仍相当于512byte 。但是,这个时候没有所谓的1sthalfpage

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档