×

NAND Flash存储系统解决方案

消耗积分:1 | 格式:rar | 大小:0.6 MB | 2017-10-19

分享资料个

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 芯片构成。
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !