基于NAND技术的模块化闪存管理系统技术方案

技术编号:7012007 阅读:239 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于NAND技术的模块化闪存管理系统。主要包括:一用来抽象并管理NAND设备的MTD模块;一用来管理flash的block资源,并做坏块处理和磨损平衡的UBI模块;一用来管理flash的page资源,用页映射的方式,实现页资源的分配和回收的FTL模块;一用来管理SRAM内存的分配,并在SRAM中把相邻连续的sector收集成page的BUF模块;所述BUF模块首先把相邻逻辑地址的sector收集成一个page,所述FTL模块将page的逻辑页地址映射到逻辑块地址和块内页偏移,所述UBI模块将逻辑块地址映射到物理块地址,所述MTD模块将数据写入物理块的物理页中,完成实际的对NAND设备的写操作。

【技术实现步骤摘要】

本专利技术涉及数据存储与NAND闪存
,特别涉及一种基于NAND技术的模块化闪存管理系统
技术介绍
众所周知,NAND闪存在消费电子、工业控制、数据处理等方面已经成为一种重要的存储介质。究其原因是因为NAND闪存有很多优异的特性,譬如耗电低、抗震动、读写无需寻道时间等。这些特性让NAND技术可以替代或改善机械硬盘。但是,NAND闪存技术在某些方面也存在限制和不足,譬如在对一个页(page)执行写入(program)操作前,一定要先擦除(erase)该页所在的块(block)。每个块的擦除次数(Erase Count,EC)有一定的限制,而且页和块的大小并不一致。这些特点使得我们不可能像硬盘那样直接读写和修改NAND闪存上的数据。
技术实现思路
鉴于上述技术问题,本专利技术提供一种基于NAND技术的模块化闪存管理系统。目的是通过在NAND之上设立一个闪存管理系统(闪存转译层,FTL),来管理NAND闪存,这样从技术上利用NAND的优势,屏蔽其不足,并提供一个sector层次的读写接口,使得NAND设备可以像硬盘那样读写和修改任意sector的数据。为了实现上述本专利技术目的的具体技术方案如下基于NAND技术的模块化闪存管理系统,主要包括一用来抽象并管理NAND设备的MTD模块;一用来管理flash的block资源,并做坏块处理和磨损平衡的UBI模块;一用来管理flash的page资源,用页映射的方式,实现页资源的分配和回收的FTL 模块;一用来管理SRAM内存的分配,并在SRAM中把相邻连续的sector收集成page的 BUF模块;所述BUF模块首先把相邻逻辑地址的sector收集成一个page,所述FTL模块将 page的逻辑页地址映射到逻辑块地址和块内页偏移,所述UBI模块将逻辑块地址映射到物理块地址,所述MTD模块将数据写入物理块的物理页中,完成实际的对NAND设备的写操作。上述方案中,所述系统在外部接口和NAND闪存介质之间还设有一个双端口的 SRAM,通过DMA,数据可以并行地在两个端口上传送,形成数据流的两段流水线。本专利技术系统支持完全的掉电恢复、坏块处理和负载平衡,提供各种错误恢复机制, 形成一个健壮的高可靠性系统。页映射算法可以减小垃圾回收带来的开销,减小写入放大比,进一步提高性能和可靠性。以下结合附图和具体实施方式来进一步说明本专利技术。附图说明图1为本专利技术所述的模块化闪存管理系统的硬件系统结构框图。图2为本专利技术所述的模块化闪存管理系统中四个主要功能模块的结构图。具体实施例方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本专利技术。如图1和图2所示,本专利技术所述的基于NAND技术的模块化、高性能、高可靠性的模块化闪存管理系统,其核心分为四个模块:MTD模块,抽象并管理闪存设备;UBI模块,管理闪存的物理块资源,提供抽象的逻辑块操作的接口,并执行坏块处理和磨损平衡操作;FTL 模块,管理闪存的物理页资源,采用页映射机制,实现物理页资源的分配和回收,并维护逻辑页到物理页的映射;BUF模块,管理内存的分配,将内存分配给不同的逻辑页,用于缓存用户数据,并在内存中把相邻的连续的数据拼接成单个逻辑页的数据。在写入数据时,BUF模块首先把相邻逻辑地址的数据拼接成一个逻辑页的数据。 FTL模块将分配物理页资源,并记录逻辑页地址到物理页地址的映射关系。物理页地址分成逻辑块地址和块内物理叶偏移两部分。UBI模块将逻辑块地址映射到物理块地址,并通过 MTD模块将数据写入物理块的物理页便宜中,从而完成实际的对闪存设备的写操作。在读取数据时,BUF模块通过FTL模块读取一个逻辑页地址的数据。FTL模块将逻辑页地址映射到物理页地址,同样包括逻辑块地址和物理页偏移两部分。UBI模块将逻辑块地址映射到物理块地址,并通过MTD模块读取该物理块的物理页偏移上的数据,从而完成实际的对闪存设备的读操作。用不同的模块来管理内存和闪存的设备、块、页等不同的资源,有利于模块和抽象封装的设计和实现,方便系统的调试和测试,最终提高了闪存管理系统的质量和可靠性。另外,数据通过外部接口,如SD、USB等,写入系统。为提高数据读写的性能,在外部接口和NAND闪存控制器(NFC)之间,设立一个双端口的SRAM,并通过DMA,并行地在两个端口上传送数据,形成数据流的两段流水线。uC不能直接访问该SRAM,而是通过DMA来控制外部接口、双端口 SRAM和NAND介质之间的数据流。在uC上运行的代码存放在ROM上, 也可以使用Flash,以支持代码升级。RAM为代码运行提供内存空间。NAND介质被连接到不同的通道,每个通道有独立的NAND闪存控制器(NFC),向该通道上的多个芯片发送命令和数据。数据的读写可以在该通道上的多个芯片上面同时发生,以提高NFC带宽的利用效率。理论上,每个通道的NAND芯片数目为(NFC通道的带宽+NAND芯片的写入速度)。NFC数据的传递也可以同时在多个通道上面同时发生,以提高外部总线带宽的利用效率。理论上,NFC通道数目为(外部总线的带宽+每个NFC通道的带宽)。这样的配置可以最大化系统的读写性能。以下为本专利技术系统中各功能模块以及运行过程的具体介绍(一)BUF 模块;BUF模块管理双端口数据内存SRAM的空间分配和回收,以逻辑页为单位存放读写的数据。在接受数据之前,BUF模块先从数据内存中分配一个逻辑页大小的内存。若没有足够数据内存可用,则向外部接口返回拒绝命令,直到有足够的数据内存被释放。如果将要写入的数据不是页边界对齐并完整的,BUF模块先通过FTL读出该逻辑页的数据,然后用新的数据覆盖,最后再通过FTL写入该页。在确认写入成功之前,数据保存在BUF模块管理的数据内存中,直到确认写入成功后释放。若写入失败,UBI模块负责坏块替换和数据拷贝,并将保存在数据内存中的数据再次尝试写入闪存。在读取数据时,可以根据历史情况,尝试读取下一个有可能被访问的逻辑页的数据,提高闪存系统的响应速度。需要设置足够大的数据内存,使得所有的通道和芯片可以并行工作,避免因等待数据内存释放而影响读写性能。(二)FTL 模块;FTL模块工作在UBI模块之上。FTL模块实现了页映射算法,负责物理页资源的分配和回收,并记录逻辑页到物理页的映射关系。FTL模块包含HDI、PMT、DBT、ROOT、日志、数据等子模块。每个子模块都使用一个或若干连续的逻辑块来保存管理数据或用户数据。HDI子模块负责区分热数据和冷数据。将热数据和冷数据写入不同的逻辑块,可以提高脏页的集中程度,从而提高页空间回收的效率。所谓脏页,就是对于逻辑页空间上的数据被修改的页,其数据已经不是最新的有效数据。PMT子模块记录逻辑页地址到物理页地址的映射关系。PMT子模块将全部的映射记录通过B+树记录在闪存中,B+树可以有若干层,每层有若干个节点,需要占用若干逻辑块空间。PMT子模块同时在内存中缓存部分B+树的节点,以提高访问和修改B+树的性能。 提交缓存时,按照从低向上,最后写入根节点的次序,将所有缓存节点写入闪存。通过记录其实地址和页数目,可以减小连续写形成的连续分配的逻辑页空间的映射记录,减小B+树的节点数,减少PMT子模块的提交操作。本文档来自技高网...

【技术保护点】
1.基于NAND技术的模块化闪存管理系统,其特征在于,包括:一用来抽象并管理NAND设备的MTD模块;一用来管理flash的block资源,并做坏块处理和磨损平衡的UBI模块;一用来管理flash的page资源,用页映射的方式,实现页资源的分配和回收的FTL模块;一用来管理SRAM内存的分配,并在SRAM中把相邻连续的sector收集成page的BUF模块;所述BUF模块首先把相邻逻辑地址的sector收集成一个page,所述FTL模块将page的逻辑页地址映射到逻辑块地址和块内页偏移,所述UBI模块将逻辑块地址映射到物理块地址,所述MTD模块将数据写入物理块的物理页中,完成实际的对NAND设备的写操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:储章生储鹤
申请(专利权)人:宜兴市华星特种陶瓷科技有限公司
类型:发明
国别省市:32

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1