Chinaunix首页 | 论坛 | 博客
  • 博客访问: 626170
  • 博文数量: 144
  • 博客积分: 5037
  • 博客等级: 大校
  • 技术积分: 1581
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-30 21:49
文章存档

2010年(16)

2009年(128)

分类: LINUX

2009-06-23 11:25:27

    NAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据以bit的方式保存在memory cell,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成byte(x8)/word(x16),这就是NAND的数据宽度。
    
    这些Line会再组成Page,典型情况下:通常是528Byte/page或者264Word/page。然后,每32个page形成一个Block,Sizeof(block)=16.5kByte。其中528Byte = 512Byte+16Byte,前512Byte为数据区,后16Byte存放数据校验码等,因此习惯上人们称1page有512个字节,每个Block有16Kbytes;
    现在在一些大容量的FLASH存贮设备中也采用以下配置:2112 Byte /page 或 1056 Word/page;64page/Block;Sizeof(block) = 132kByte;同上:2112 = 2048 +64,人们习惯称一页含2k个字节,一个Block含有64个页,容量为128KB;

    Block是NAND Flash中最大的操作单元,擦除可以按照block或page为单位完成,而编程/读取是按照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 总容量64M Byte+512kbyte的NAND器件为例:
因为
1page=528byte=512byte(Main Area)+16byte(Spare Area)
1block=32page = 16kbyte
64Mbyte = 4096 Block

用户数据保存在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来表示,例如64MB的NAND,共4096block,因此,需要12个bit来表示,即A[25:14],如果是1Gbit的528byte/page的NAND Flash,共8192个block,则block address用A[30:14]表示。

NAND Flash的地址表示为:
Block Address | Page Address in block | half page pointer | Column Address
地址传送顺序是Column Address , Page Address , Block Address。

例如一个地址:0x00aa55aa
     0000 0000 1010 1010 0101 0101 1010 1010

由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。
例如,对于64MBx8的NAND flash,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效的。
    
    以NAND_ADDR为例:
    第1步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0]上, 而halfpage pointer即bit8是由操作指令决定的,即指令决定在哪个halfpage上进行读写,而真正的bit8的值是don

阅读(2245) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~