[发明专利]一种面向NAND闪存的缓冲区管理方法有效
申请号: | 201911107839.4 | 申请日: | 2019-11-13 |
公开(公告)号: | CN110888600B | 公开(公告)日: | 2021-02-12 |
发明(设计)人: | 伍卫国;宫继伟;解超;聂世强;张驰;张晨 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 高博 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 nand 闪存 缓冲区 管理 方法 | ||
1.一种面向NAND闪存的缓冲区管理方法,其特征在于,把闪存缓冲区分成页单位的三个逻辑存储区域,并分别用链表结构进行组织管理,三个存储区域对应的链表分别为冷干净链表、冷脏链表和混合链表,三个链表中数据页以访问时间标记值作为逻辑编号;在整体逻辑上,把缓冲区的组织结构作为一个按逻辑编号顺序组织的LRU单链表;在此基础上提出时间窗口概念,时间窗口代表当前系统访问时间至前面某一时刻的一个时间向量,覆盖距离当前访问时间最近的数据页;当发生缓冲替换时,按冷干净链表、冷脏链表和混合链表的优先顺序,检查链表尾部指向的数据页是否在时间窗口内,选择不在时间窗口内的数据页进行缓存替换,包括以下步骤:
S1、设置系统计数器,表示系统访问数据页的次数或系统的访问时间,其初始值为0;
S2、采用最近最少使用原则将闪存缓冲区的冷干净链表、冷脏链表和混合链表进行组织;设置缓冲区时间窗口大小表示最近访问的数据页范围;
S3、当上层应用发出对固态硬盘数据的读写操作请求时,首先将系统计数器值加1,代表系统访问数据页次数加1或系统访问时间加1,并在闪存缓冲区中检查请求数据是否存在;若存在,则调整数据页位置,并更新数据页访问时间以及中冷热标记和脏标记,然后将数据返回给上层应用,结束;若闪存缓冲区中不存在请求的数据,则执行步骤S4;
S4、检查缓冲区是否还有空闲空间容纳新的数据页,若缓冲区有空余空间,执行步骤S5;若缓冲区没有空余空间,则执行步骤S6;
S5、从固态硬盘中读取请求数据,并根据当前的请求类型,把该数据页插入冷干净链表的MRU端或冷脏链表的MRU端,同时设置该数据页相应的脏标记为0或1,把该数据页的冷热标识值置1,代表该数据页为冷数据页,把当前系统计数器值赋值给该数据页的访问时间标记值,然后把数据返回给上层应用,结束;
S6、按照冷干净链表、冷脏链表和混合链表的优先级,判断链表LRU端数据页是否在时间窗口,选择不在时间窗口的数据页作为替换数据页;首先判断冷干净链表是否为空:若冷干净链表不为空且冷干净链表LRU端数据页不在时间窗口内,则直接剔除冷干净链表LRU端数据页,然后执行步骤S5;否则,判断冷脏链表是否为空,若不为空且LRU端数据页不在时间窗口内,则把该冷干净链表LRU端数据页写回闪存中,然后执行步骤S5;否则,执行步骤S7;
S7、选择混合链表的LRU端数据页,如果混合链表的LRU端数据页为干净页,则直接剔除,执行步骤S5,若混合链表的LRU端数据页为脏页,把混合链表的LRU端数据页写回闪存后,执行步骤S5。
2.根据权利要求1所述的面向NAND闪存的缓冲区管理方法,其特征在于,步骤S1中,将缓冲区中数据页在整体逻辑上组织成按数据页访问时间标记值排序的逻辑LRU链表结构,用时间窗口覆盖逻辑链表MRU端的区域,代表链表中新鲜的数据页长度。
3.根据权利要求2所述的面向NAND闪存的缓冲区管理方法,其特征在于,以缓冲区容纳数据页数量的10%作为时间窗口大小,表示缓冲区中有10%的数据页被视为新鲜页。
4.根据权利要求1所述的面向NAND闪存的缓冲区管理方法,其特征在于,步骤S2中,冷干净链表存放被读操作访问过一次的数据页;冷脏链表存放被写操作访问过一次的数据页或新写入的数据页;混合链表存放在缓冲区命中的数据页,即访问两次或两次以上的数据页;将闪存缓冲区中的数据页进行访问时间标记、脏标记和冷热标记;把修改后的数据页或新写入数据页标记为脏页;将第一次存入缓冲区的数据页标记为冷数据页,将在缓冲区命中的数据页标记为热数据页。
5.根据权利要求1所述的面向NAND闪存的缓冲区管理方法,其特征在于,步骤S3中,对系统计数器以及缓冲区中所有数据页时间标记值进行重置操作,具体步骤为:
S301、对比冷干净链表、冷脏链表和混合链表的LRU端数据页的访问时间标记值,找出其中访问时间标记值最小的一个,记为min_t;
S302、将缓冲区中每一个数据页的访问时间标记值都减去最小的访问时间标记值作为该数据页的当前访问时间标记值;
S303、将计数器值减去上述中最小的访问时间标记值min_t后的值作为当前系统计数器值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911107839.4/1.html,转载请声明来源钻瓜专利网。