NAND Flash嵌入式存储系统结构分析嵌入式存储系统结构分析
目前市场上闪存芯片主要有两类,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash
ROM)。前者具有容量大、读写速度快、芯片面积小、单元密度高、擦除速度快、成本低等特点,更适合于大
批量数据存储的嵌入式系统。如今Windows仍是桌面系统的主流,对FAT文件系统提供了天然的支持。然而就
技术而言,FAT文件系统并不适合Flash,因为Flash设备并不是块设备[1],为了不破坏兼容性,并在NAND
型闪存中应用FAT文件系统,国际上提出了闪存转译层FTL(Flash Translation Layer)的解决方案。
目前市场上闪存芯片主要有两类,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash ROM)。前者具
有容量大、读写速度快、芯片面积小、单元密度高、擦除速度快、成本低等特点,更适合于大批量数据存储的
1 NAND Flash嵌入式存储系统结构
基于NAND Flash的存储系统的设计首先要解决坏块问题。由于NAND Flash自身存在固有坏块并在擦除和编程中又随机
产生坏块,因此为了提高设备的可靠性应该将这两种操作分散在闪存不同的块中,以避免对某块的过度操作。
一般的基于NAND Flash嵌入式存储系统驱动结构分为三个层次:最底层是硬件操作接口,负责将主控芯片与Flash的控制
管脚相连,这方面的
根据以上两个方面,既要在驱动中实现坏块管理,又要进行块模拟,所以可用的方法有两种[2]:一是在上层文件系统
中解决坏块问题,驱动层只实现本身的功能,文件系统为驱动层提供不变的接口,为上层应用程序提供可靠透明的服务。这种
方法较简单,开发周期比较短,但只对特定应用的嵌入式系统有很强的适应性;第二种方法是在驱动层的NFTL中解决坏块问
题,将不可靠的NAND Flash虚拟成可靠的存储设备,为上层文件系统提供可靠透明服务,这种方法较第一种更复杂,但是此
法具有较强的可移植性并能彻底断绝与文件系统的联系,其他文件系统也同样适用。
本文是以Samsung的NAND Flash K9F2808U0C作为存储芯片,设计了一种在NFTL上实现坏块管理并且实现连续数据读
取的方法。
2 设计思想
2.1 闪存空间划分
K9F2808U0C是16 MB×8 bit的NAND Flash,共有1 024个Block,1 Block=16 KB,32 Page/Block,1 Page=528
B=(512 B+16 B),其中16 B为备用区,主要存放NAND Flash出厂坏块标记、ECC校验码以及用户自定义区。
K9F2808U0C地址空间是24 bit,分三个周期依次送入NAND Flash的地址锁存器。本文使用的地址均为字节地址,数据类型
为DWORD(4 B)。
将K9F2808U0C的存储空间划分为四个区:坏块映射表存放区、交换块区、坏块映射区和实际数据存放区。文件系统管
理的空间就是实际的数据存放空间,如图2所示。
评论1
最新资源