【Nand flash 的特点】
Nand flash 的操作,和其他一些常见的设备,如硬盘等,不同,其有自己特殊的方式。
其特殊就在于:
1.Nand flash 的最小单位是页 page,而不是其他很多设备所说的位 bit。
2.写入数据之前必须先进行擦除 erase 操作
3.写的时候,最小单位是页 page,对也进行写操作,也称作“页编程”,page programming
4.擦除的最小单位是块 block
5.由于物理特性,容易出错,所以无论是读还是写,都要采取检测和校验,即 EDC。
6.nand flash 出厂时候,就有一定坏的块 block,成为换块,并且做了一定标记。
7.nand flash 中有个额外的空间,叫做 spare area/oob
【 spare area/oob】
Nand 由于最初硬件设计时候考虑到,额外的错误校验等需要空间,专门对应每个页,额外设计
了叫做 spare area 空区域,在其他地方,比如 jffs2 文件系统中,也叫做 oob(out of band)
数据。
其具体用途,总结起来有:
1. 标记是否是坏快
2. 存储 ECC 数据
3. 存储一些和文件系统相关的数据,如 jffs2 就会用到这些空间存储一些特定信息。
【常见 Nand Flash 的大小及参数】
常见的 nand flash 的大小,由最开始的小于 256M,到现在的常见的 1G,2G,甚至更大。
以前的 nand flash 的 Pagesize 页大小,多为 512B+16B 的 oob,例如 K9F1208,其相关数据为:
1block=32page;
1page=528byte=512byte(Main Area)+16byte(Spare Area)。
总容量为=4096(block 数量)*32(page/block)*512(byte/page)=64Mbyte
NandFlash 以页为单位读写数据,而以 块 为单位擦除数据。按照 k9f1208 的组织方式可以分四类
地址: Column Address、halfpage pointer、Page Address 、Block Address。
A[0:25]表示数据在 64M 空间中的地址。
Column Address:表示数据在半页中的地址,大小范围 0~255,用 A[0:7]表示;
halfpage pointer:表示半页在整页中的位置,即在 0~255 空间还是在 256~511 空间,用 A[8]
表示;
Page Address:表示页在块中的地址,大小范围 0~31,用 A[13:9]表示;
Block Address:表示块在 flash 中的位置,大小范围 0~4095,A[25:14] 表示;
现在目前市场上见到的,绝大多数,都是新的 nand flash,其 Pagesize 页大小多为 2KB+64B
的 oob,block 大小多为 64pages 页=64*(2K+64B)=128KB+4KB,一个 nand flash 中的芯片,
一般含有 4096 个块,比如 samsung 的 K9F4G08U0M,所以这个 nand flash 大小就是
4096 Blocks = 4096 * 64 *(2K+64B)=512MB
即:
1 Page = (2K + 64)Bytes
1 Block = (2K + 64)B x 64 Pages = (128K + 4K) Bytes
1 Device = (2K+64)B x 64Pages x 4,096 Blocks = 4,224 Mbits =512MB
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
评论0
最新资源