基于数据访问计数的NAND闪存缓存管理算法
发布时间:2021-11-12 04:28
针对现有的NAND闪存缓存管理算法对缓冲区替换页选择和替换代价考虑不足,以及算法时间开销大的问题,提出基于数据访问计数的NAND闪存缓存管理算法.该算法首先考虑NAND闪存读写代价的不同以及数据访问频度的差异,对数据页进行冷干净、冷脏、热干净、热脏划分并分别采用LRU队列进行管理.然后,根据提出的数据访问计数策略计算数据页的访问计数值.最后,结合队列长度和数据页访问计数值给出了新的数据页替换策略.基于QEMU和Linux的仿真实验结果表明,与LRU、CF-LRU、LRU-WSR、CCF-LRU、LLRU等现有算法相比,所提算法能够有效降低写闪存次数,减少程序运行时间.
【文章来源】:微电子学与计算机. 2020,37(05)北大核心
【文章页数】:6 页
【部分图文】:
AC-LRU算法图解
图2为使用不同算法在1M-5M缓冲区大小情况下,测试T1、T2和T3数据请求类型时写闪存次数实验对比结果.由图可知,AC-LRU算法的写闪存次数均小于LRU、CFLRU、LRU-WSR、CCF-LRU和LLRU.由表1可知,与T3请求类型相比,T1和T2数据请求类型中写操作较多.当缓存容量变大时,由图2(a)和图2(b)可知,AC-LRU的写操作次数明显降低.这是由于AC-LRU算法在选择替换页时,在冷干净队列长度低于最小窗体值从而需要替换冷脏页时,先考虑热干净队列LRU页是否为伪热页,从而优先替换代价更低的热干净队列LRU页,从而有效地减少了写闪存次数.另外,在图2(c)中,由于在T3请求类型中读请求较多,根据LLRU算法,热干净页面由于命中次数较多,会被较多的保留在缓冲区中,命中次数较少的脏页会被替换,且缓冲区越大越能显示这种状况.因此在图2(c)中能看到LLRU算法在缓冲区较大时效果较差.
图3为使用不同算法在缓冲区变化情况下,运行时间在不同请求数据类型下的对比结果.由图可知,AC-LRU算法的运行时间均低于LRU、CFLRU、LRU-WSR、CCF-LRU和LLRU.程序运行时间为程序运行I/O时间与CPU时间之和, I/O时间表示为:
本文编号:3490166
【文章来源】:微电子学与计算机. 2020,37(05)北大核心
【文章页数】:6 页
【部分图文】:
AC-LRU算法图解
图2为使用不同算法在1M-5M缓冲区大小情况下,测试T1、T2和T3数据请求类型时写闪存次数实验对比结果.由图可知,AC-LRU算法的写闪存次数均小于LRU、CFLRU、LRU-WSR、CCF-LRU和LLRU.由表1可知,与T3请求类型相比,T1和T2数据请求类型中写操作较多.当缓存容量变大时,由图2(a)和图2(b)可知,AC-LRU的写操作次数明显降低.这是由于AC-LRU算法在选择替换页时,在冷干净队列长度低于最小窗体值从而需要替换冷脏页时,先考虑热干净队列LRU页是否为伪热页,从而优先替换代价更低的热干净队列LRU页,从而有效地减少了写闪存次数.另外,在图2(c)中,由于在T3请求类型中读请求较多,根据LLRU算法,热干净页面由于命中次数较多,会被较多的保留在缓冲区中,命中次数较少的脏页会被替换,且缓冲区越大越能显示这种状况.因此在图2(c)中能看到LLRU算法在缓冲区较大时效果较差.
图3为使用不同算法在缓冲区变化情况下,运行时间在不同请求数据类型下的对比结果.由图可知,AC-LRU算法的运行时间均低于LRU、CFLRU、LRU-WSR、CCF-LRU和LLRU.程序运行时间为程序运行I/O时间与CPU时间之和, I/O时间表示为:
本文编号:3490166
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3490166.html