论文部分内容阅读
闪存是一种被广泛使用在数码电子产品中的存储介质,其具有读写速度快、体积小、能耗低、抗震性好等优势,所以越来越多的被使用在日常生活中。但是闪存也有自己的一些局限性,如容量低、写一次性、有限擦除次数等,这些因素限制了闪存性能的发展以及产品的普及。随着消费电子领域的迅猛发展,智能手机和超级本等对闪存产品提出了日益强烈的需求,如何有效提升闪存的访问性能和使用寿命日益成为闪存领域的研究热点。
传统的缓存管理算法一般只是注重局部性原理在时间上的运用,并且只是面向传统的HDD硬盘,并不适合于闪存。比如说,闪存的读写性能差异巨大,而在HDD中就几乎没有差别,所以缓存管理算法需要针对闪存的这一特点进行适当的调整。
本文基于闪存的主要特点,并结合已有的缓冲区管理算法,提出了两种缓冲区管理算法LRU-BLL和LRU-MCBLL,其中LRU-BLL算法将缓存中的页面按照数据块分组组织在LRU链表中,当数据块被访问,将其移至MRU端,延缓换出。当缓存空间不足,选取LRU端的数据块作为候选块,优先换出其中的干净页,最后换出脏页。该算法有效提升了缓存的命中率,并且减少了对闪存的脏页回写次数。
针对访问中存在的一次性访问问题,本文对LRU-BLL算法作了进一步的改进。为每个数据块分组引入标记值,用于记录对应数据块的相对引用次数,每次数据块的访问都会递加对应标记值。当缓存空间不足时,算法从链表LRU端选取标记值为0的数据块作为候选块换出,换出方式同LRU-BLL算法。实验表明,LRU-MCBLL算法进一步提升了缓存的命中率,并且减少了脏页的回写次数,有效提升了闪存的访问性能。
最后,本文利用一种简单的能耗模型比较了各算法的性能,结果表明LRU-BLL和LRU-MCBLL算法取得了很好的性能提升。