当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]为了实现一种嵌入式设备存储系统的解决方案,对嵌入式设备广泛采用的大容量存储设备NAND Flash 进行了深入的研究。设计了一种嵌入式设备中NAND Flash 存储系统的解决方案,介绍了其功能用途和系统结构,分层介绍了系统的具体设计,重点介绍了比较独特的块设备驱动层和FTL 层的设计方法以及对驱动初始化的优化。通过实际设计NAND

0 引言

嵌入式系统主要由微处理器、存储设备、总线标准、I/O外设等几大部分构成。随着制造工艺的成熟和体系结构的不断优化,如今无论面向低端应用还是高端应用,从8 位到64 位,都有很大的选择范围,能够很好的完成复杂的数据信息处理。现在需要的更多的是如何有效的存储和管理越来越多的数据,随着对大容量存储需求的日益迫切,NAND Flash因为其自身的特点成为了嵌入式设备,特别是消费类手持嵌入式设备的最主要存储解决方案。目前针对NAND Flash 的研究主要集中在硬件和软件两大块,硬件方面的研究主要希望尽一步加大存储容量,提高读写速度及数据可靠性,降低制造成本,统一各厂家的标准等;软件方面的研究主要集中在如何实现一个更优秀NAND Flash 的驱动程序。NAND Flash的驱动程序中牵涉到很多问题,比如如何更好的进行垃圾收集,负载均衡,坏块管理等等。本文主要介绍我们的NANDFlash 存储系统的驱动程序设计,主要是基于Linux 操作系统。

1 NAND Flash 存储系统的总体设计
NAND Flash 存储系统的分层结构如图1 所示。它由用户层、内核层与硬件层组成:用户层就是直接与用户联系,实际对存储器提出读写请求的应用程序,比如cp、rm 等命令,比如对存储器有读写请求的应用程序;内核层主要包括文件系统,比如EXT3、EXT2、FAT32 等文件系统,由于我们在接下来的块设备层中实现了闪存翻译层(FTL),所以文件系统可以采用任何通用的文件系统,而不需要采用特殊的针对NAND Flash 的文件系统,比如JFFS2 等,块设备驱动层,主要实现统一的Linux 块设备驱动,主要完成块设备注册、定义块设备操作、请求处理等工作,NAND Flash 设备驱动层,在这里NAND Flash设备驱动又分为FTL(flash translation layer)层与LLD(low leveldriver)层,由于NAND Flash 是一个特殊的存储设备,具有自身的特点,不同于一般的块设备,所以需要FTL层来进行一个转换和翻译的功能,使得上层可以像对一般块设备进行操作那样来对NAND Flash 进行操作,使得NAND Flash 的特殊性对于FTL 层以上是透明的不可见的,LLD 层主要用来直接驱动控制器来完成底层的具体操作,例如最基本的页读、页写、块擦除等操作;硬件层由NAND Flash 控制器和具体的NAND Flash 芯片构成。

嵌入式设备NANDFlash存储系统的设计与实现.pdf

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭