nand格式怎么写( 二 )


写入性能
NAND型闪存的写步骤分为:发送寻址信息→将数据传向页面寄存器→发送命令信息→数据从寄存器写入页面 。其中命令周期也是一个 , 我们下面将其和寻址周期合并 , 但这两个部分并非连续的 。K9K1G08U0M写一个页需要:5个命令、寻址周期*50ns+(512+16)*50ns+200μs=226.7μs 。K9K1G08U0M实际写传输率:512字节÷226.7μs=2.2MB/s 。K9K4G08U0M写一个页需要:6个命令、寻址周期*50ns+(2K+64)*50ns+300μs=405.9μs 。K9K4G08U0M实际写传输率:2112字节/405.9μs=5MB/s 。因此 , 采用2KB页容量比512字节页容量提高写性能两倍以上 。
2.如何实现nand flash的读,写,擦除操作Fisrt part : NAND flash和NOR flash的不同 NOR flash采用位读写 , 因为它具有sram的接口 , 有足够的引脚来寻址 , 可以很容易的存取其内部的每一个字节 。
NAND flash使用复杂的I/O口来穿行地存取数据 。8个引脚用来传送控制、地址和数据信息 。
NAND的读和写单位为512Byte的页 , 擦写单位为32页的块 。● NOR的读速度比NAND稍快一些 。
● NAND的写入速度比NOR快很多 。● NAND的4ms擦除速度远比NOR的5s快 。
● 大多数写入操作需要先进行擦除操作 。● NAND的擦除单元更小 , 相应的擦除电路更少 。
在NOR器件上运行代码不需要任何的软件支持 , 在NAND器件上进行同样操作时 , 通常需要驱动程序 , 也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD 。---------摘抄自网上流传很广的《NAND 和 NOR flash的区别》 Second part: NAND Flash结构与驱动分析 一、NAND flash的物理组成 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) , 每页528Bytes(512byte(Main Area)+16byte(Spare Area)) , 每32个page形成一个Block(32*528B) 。
具体一片flash上有多少个Block视需要所定 。我所使用的三星k9f1208U0M具有4096个block , 故总容量为4096*(32*528B)=66MB , 但是其中的2MB是用来保存ECC校验码等额外数据的 , 故实际中可使用的为64MB 。
NAND flash以页为单位读写数据 , 而以块为单位擦除数据 。按照这样的组织方式可以形成所谓的三类地址: Column Address:Starting Address of the Register. 翻成中文为列地址 , 地址的低8位 Page Address :页地址 Block Address :块地址 对于NAND Flash来讲 , 地址和命令只能在I/O[7:0]上传递 , 数据宽度是8位 。
二、NAND Flash地址的表示 512byte需要9bit来表示 , 对于528byte系列的NAND , 这512byte被分成1st half Page Register和2nd half Page Register , 各自的访问由地址指针命令来选择 , A[7:0]就是所谓的column address(列地址) , 在进行擦除操作时不需要它 , why?因为以块为单位擦除 。32个page需要5bit来表示 , 占用A[13:9] , 即该page在块内的相对地址 。
A8这一位地址被用来设置512byte的1st half page还是2nd half page,0表示1st,1表示2nd 。Block的地址是由A14以上的bit来表示 。
例如64MB(512Mb)的NAND flash(实际中由于存在spare area , 故都大于这个值) , 共4096block , 因此 , 需要12个bit来表示 , 即A[25:14] , 如果是128MB(1Gbit) 的528byte/page的NAND Flash , 则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 。