[发明专利]一种面向NAND闪存的页面置换方法有效
申请号: | 201610637855.4 | 申请日: | 2016-08-05 |
公开(公告)号: | CN106294197B | 公开(公告)日: | 2019-12-13 |
发明(设计)人: | 王芳;冯丹;华宇;李楚 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/121 |
代理公司: | 42201 华中科技大学专利中心 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向NAND闪存的页面置换方法,属于数据存储领域。本发明使用冷的干净页链表和其他混合页链表分别管理冷干净页和其它缓存页,还使用预留的幽灵页链表记录近期被淘汰的缓存页的元数据信息;处理页访问时先初始化,若该页在其他混合页链表或冷的干净页链表中命中,则将该页标记为热页并移动到其他混合页链表的最近被访问端;如果该页在幽灵页链表命中,则删除幽灵页链表中该页的记录,为该页分配一个新的缓存页并标记为热页,再将该页移动到其他混合页链表的最近被访问端;最后判断该页如果是读/写请求,则将数据读出/写入缓存页并返回。本发明的方法解决了减少闪存写操作的同时尽量维持较好的缓存命中率的技术问题。 | ||
搜索关键词: | 一种 面向 nand 闪存 页面 置换 方法 | ||
【主权项】:
1.一种面向NAND闪存的页面置换方法,其特征在于,所述方法包括以下步骤:/n(1)当一个I/O请求P到达时,首先初始化变量第一标志位和第二标志位为0,之后在缓存中的CL(冷的干净页链表)、ML(其他混合页链表)和GL(幽灵页链表)中查询P;/n(2)若没有在ML和CL中命中P则进入步骤(3),否则跳转到步骤(9);/n(3)判断是否在GL中有P的元数据信息,若有则进入步骤(4),否则跳转到步骤(5);/n(4)删除GL中包含P的元数据信息的节点,并且将变量第一标志位置为1;/n(5)为请求P执行缓存分配过程,为其分配缓存页;/n(6)若第一标志位等于0并且该请求是读操作,则跳入到步骤(12),否则进入步骤(7);/n(7)将新分配的缓存页P移动到ML的MRU(最近被访问)端;/n(8)若第一标志位等于1,进入步骤(10)否则跳入步骤(11);/n(9)将缓存页P移动到ML的MRU端,并将第二标志位赋值为1;/n(10)将缓存页P标记为热页;/n(11)若是读请求,则进入步骤(13),否则跳转到步骤(16);/n(12)将缓存页P加入到CL的MRU端;/n(13)若第二标志位等于0,则进入到步骤(14),否则跳入步骤(15);/n(14)将数据从闪存读入到新分配的缓存页P;/n(15)将缓存页P中的数据返回给上层,请求结束;/n(16)将数据写入到新分配的缓存页P,并将缓存页P标记为脏页,请求结束;/n所述步骤(5)中分配缓存页包括以下子步骤:/n(21)判断是否有空闲的缓存页,若有则跳转到步骤(211),否则进入步骤(22);/n(22)初始化将要被回收的缓存页标记为牺牲页,使之为空;/n(23)判断链表CL是否为空,如果为空则进入步骤(24),否则跳转到步骤(27);/n(24)从链表ML的LRU(最久未被访问)端向MRU(最近被访问)端扫描,依次判断LRU端的缓存页P是否为冷页,如果不是冷页,则转入步骤(25),否则跳转到步骤(28);/n(25)将缓存页P标记为冷页,若缓存页P为干净页,则将其移动到CL的MRU端;否则将缓存页P移动到ML的MRU端;/n(26)若ML中的页还没有扫描完毕,则跳转到步骤(24),否则跳转到步骤(23);/n(27)将CL链表中的LRU端缓存页作为牺牲页,跳转到步骤(29);/n(28)将缓存页P作为牺牲页;/n(29)若GL链表已满,则将其LRU端的节点释放;将牺牲页的元数据信息加入到GL的MRU端;/n(210)若牺牲页是脏页,则将该页的数据写回到闪存;将牺牲页设为空闲页;/n(211)选取一个空闲页返回,请求结束。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610637855.4/,转载请声明来源钻瓜专利网。