论文部分内容阅读
闪存作为一种新型的固态存储介质,由于具有体积小、重量轻、非易失、高速、高抗震、低功耗等优良特性,近年来已经被广泛应用于各种嵌入式系统和便携式设备。闪存的独特物理特性对数据管理技术提出了新的挑战,例如闪存存储管理、闪存数据索引、面向闪存的缓冲区管理等。其中,缓冲区管理作为提高闪存存取性能的一种重要且非常有效的手段,近年来已成为闪存数据管理领域的一个研究热点。然而,目前已有的缓冲区置换策略大多针对的是传统的磁盘存储系统,没有考虑闪存不同于磁盘的特性,只着眼于提高缓冲区的命中率,如果直接它们应用在闪存上,闪存的总访问开销会非常大。因此,针对闪存的特性,研究高效的缓冲区置换策略对降低闪存的访问开销具有重要意义。本论文首先对目前已有的基于闪存的缓冲区管理算法进行了总结,然后分析了基于闪存的缓冲区管理的关键问题,并重点研究了缓冲区置换策略,最后提出了相应的解决方法。具体而言,本文的主要工作有:(1)提出了一种新型的面向闪存系统的缓冲区置换算法CCF-LRU。该算法使用双LRU链表维护缓冲区中的数据,其中,一个混合LRU链表维护缓冲区中的脏数据页和热的干净数据页,而另一个冷的干净LRU链表只维护缓冲区中的冷的干净数据页。当缓冲区空间不足时,优先置换出冷的干净LRU链表中最近最少访问的干净数据页,否则当冷的干净链表为空时置换出混合的LRU链表中冷的脏数据页。利用这一策略, CCF-LRU算法可以有效地解决缓冲区一次性扫描式访问污染问题,减少了闪存的写操作;此外,算法在减少闪存的写操作同时还保持了较高的命中率,从而提高了闪存的访问性能。(2)针对置换算法CCF-LRU中出现的0-1跃变问题,本文对置换算法CCF-LRU进行了改进,提出了可控的冷干净数据页优先置换算法CCCF-LRU。与置换算法CCF-LRU不同的是,该算法对缓冲区中的冷的干净LRU链表的长度做了限制,规定冷的干净LRU链表的长度不能小于minCCL,否则将从混合的LRU链表中选择冷的脏数据页置换出去。相对于CCF-LRU而言,CCCF-LRU算法可以防止初始加载到缓冲区中并即将会被频繁访问的干净数据页很快被置换出去,在增加少量闪存写操作的同时较大幅度地提高了缓冲区的命中率。