论文部分内容阅读
闪存有两种类型:NOR型闪存和NAND闪存,它们在硬件接口、读写单元的大小、读写速度上、以及制造成本等都有很大不同。NOR型闪存主要用来存储代码,NAND型闪存则主要用来存储数据。近年来,NAND型闪存发展迅猛,其存储密度以每年增加1倍的速度增长。随着NAND存储容量迅速提升,其应用领域越来越广。
目前,闪存上的数据管理方法主要有两种:一,采用中间转换层技术,通过将闪存模拟成一个普通块设备,从而可以使用传统的磁盘文件系统来管理闪存上的数据;二,采用专门针对闪存存储特性而设计的闪存专用文件系统来管理闪存上的数据。
无论是采用上述两种方法中的哪一种,目前的管理方法在管理大容量闪存时,都会面临运行时间、内存消耗等增加的问题。本文从闪存数据管理的两个重要方面--数据映射和垃圾回收入手,着重研究在大容量闪存下,如何减少用于维护映射数据的内存消耗、通过闪存中的热数据分开存储来提高垃圾回收效率。具体工作可以概括为以下几个方面:
(1)层次型冷热数据识别框架。冷热数据分开存储对于提高闪存垃圾回收效率、提高闪存写吞吐量、延长闪存寿命都有着重要意义。针对大容量闪存下存储数据多,冷热数据识别困难的问题,本文提出了一种层次型识别框架。它主要利用数据的访问模式和闪存存储特点,在多个层次上高效地记录更新数据信息,尽可能地过滤掉无用和冗余信息,从而可以在占用较少系统资源的情况下,有效地识别出热数据。并且,该框架的有效性和相对于现有冷热数据识别方法的优越性被通过实验验证。
(2)混合维护型数据映射。由于闪存采用特殊的更新数据方式--非本地更新,使得在闪存数据管理系统中,需要在内存中维护数据逻辑地址到物理地址间的映射关系。随着闪存容量的增大,系统就需要大量的内存来维护这些映射数据。为了减少这样的内存消耗,本文提出了一种混合维护型数据映射。它使用内存和闪存来共同维护映射数据,利用闪存来存储映射数据,利用内存来完成映射数据的更新,从而达到减少维护映射数据所需内存,并且并不降低映射数据维护效率的目的。实验结果表明,该数据映射方法可以有效减少用于维护映射数据的内存。
(3)基于硬盘的NAND型闪存模拟器。本文设计了一种基于硬盘的闪存模拟器,该模拟器通过将上层用户对于闪存的读写操作转嫁到磁盘文件上来为用户虚拟出一个NAND型闪存。由于该闪存模拟器是基于硬盘来模拟闪存的,相对于现有的基于内存来模拟闪存的闪存模拟器,其优点是:可以模拟硬盘容量级别的闪存。因此,基于硬盘的闪存模拟器,可以模拟出现有大部分大容量闪存产品,进而帮助程序员开发大容量闪存数据管理系统。并且,在该模拟器的帮助下,本文的实验得以完成。