(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211341478.1
(22)申请日 2022.10.31
(71)申请人 之江实验室
地址 310023 浙江省杭州市余杭区文一西
路1818号人工智能小镇10号楼
(72)发明人 曾令仿 毛波 吴素贞 杜春锋
陈光 李勇 朱世强
(74)专利代理 机构 杭州求是专利事务所有限公
司 33200
专利代理师 邱启旺
(51)Int.Cl.
G06F 3/06(2006.01)
G06F 16/22(2019.01)
G06F 16/2455(2019.01)
(54)发明名称
提高闪存可靠性的缓存管理方法、 装置、 设
备和储存介质
(57)摘要
本发明公开了提高闪存可靠性的缓存管理
方法、 装置、 设备和储存介质, 该装置包括主控模
块、 缓存管理模块和可靠性记录表, 该方法是通
过主控模块进行闪存的控制和管 理, 缓存管理模
块管理读缓存和写缓存, 可靠性记录表记录数据
块在缓存中的驻留时间。 此方法减 轻闪存块由于
接近擦除极限而导致的数据丢失问题, 从而在保
证闪存存储性能的同时提高了闪存存储的可靠
性。
权利要求书2页 说明书6页 附图6页
CN 115469815 A
2022.12.13
CN 115469815 A
1.一种提高闪存可靠性的缓存管理方法, 其特 征在于, 所述方法包括以下步骤:
(1) 初始化: 主控模块查看闪存状态日志, 判断历史缓存数据是否存在于闪存存储中;
然后读取保存在闪存中的历史缓存数据, 并初始 化缓存元数据 表, 再清空缓存数据, 并重置
缓存元数据表;
(2) 读缓存管理: 经由第一步初始化后, 当用户发起的请求类型是读请求, 进入读缓存
管理模块, 该模块进行读缓存的管理工作并处 理用户发起的读 请求;
(3) 写缓存管理: 经由第一步初始化后, 当用户发起的请求类型是写请求, 进入写缓存
管理模块, 该模块进行写缓存的管理工作并处理用户发起的写请求, 且进入读缓存管理模
块还是写缓存管理模块是由用户发起的请求类型决定;
(4) 结束步骤: 当用户发出指令关闭闪存时, 将可靠性记录表保存到闪存的预留空间
中, 将写缓存数据更新到闪存设备中, 完成后关闭闪存设备, 释放相关的资源。
2.根据权利要求1所述的一种提高闪存可靠性的缓存管理方法, 其特征在于, 所述读缓
存管理, 具体为:
(2.1) 当有新读请求到达时, 读 缓存管理模块检查读 缓存中是否有该读请求的数据, 若
是, 转入过程 (2.2) , 否则转入过程 (2.5) ;
(2.2) 缓存管理模块从缓存中返回该读请求的数据块, 同时查看可靠性记录表获取该
数据块在缓存中的驻留时间, 判断该驻留时间是否大于阈值, 若 是, 则转入过程 (2.3) , 否则
转入过程 (2.6) ;
(2.3) 从闪存中读取该数据块, 并与缓存中的数据进行对比, 判断两份数据是否相同,
若是, 则转入过程 (2.6) , 否则转入过程 (2.4) ;
(2.4) 将缓存中的数据块写入到闪存中, 并更新闪存的映射表, 转入过程 (2.6) ;
(2.5) 从闪存中读取该读请求的数据, 更新可靠性记录表中该数据块的驻留时间, 转入
过程 (2.6) ;
(2.6) 将该 数据块信息更新到LRU链 表的表头, 转入过程 (2.1) 。
3.根据权利要求1所述的一种提高闪存可靠性的缓存管理方法, 其特征在于, 所述写缓
存管理, 具体为:
(3.1) 当新请求不是读请求时, 则是写请求, 有新数据要写入缓存中, 缓存管理模块检
查读缓存中是否有 要写入地址的数据, 若是, 则转入过程 (3.2) , 否则转入过程 (3.3) ;
(3.2) 更新读缓存中的数据块, 转入过程 (3.3) ;
(3.3) 缓存管理模块检查写缓存 空间是否已满, 若是, 则转入过程 (3.4) , 否则转入过程
(3.8) ;
(3.4) 缓存管理模块从 缓存LRU链 表中取出尾节点, 转入过程 (3.5) ;
(3.5) 查看该节点数据所属的闪存块并检索可靠性记录表, 判断该闪存块的擦除次数
是否大于阈值, 若是, 则转入过程 (3.6) , 否则转入过程 (3.7) ;
(3.6) 缓存管理模块从LRU链 表中取出当前节点的前一个节点数据, 转入过程 (3.5) ;
(3.7) 将该节点数据块写回 闪存, 转入过程 (3.8) ;
(3.8) 将新数据写入缓存并插 入到LRU链 表的表头, 转入过程 (3.1) 。
4.根据权利要求3所述的一种提高闪存可靠性的缓存管理方法, 其特征在于, 所述阈值
是一个能任意设置的值, 阈值范围取闪存擦除寿命值的5 0%‑100%。权 利 要 求 书 1/2 页
2
CN 115469815 A
25.根据权利要求1所述的一种提高闪存可靠性的缓存管理方法, 其特征在于, 所述读缓
存管理或写缓存管理执行完会再次检查用户发送的请求类型, 这样反复执行, 直到用户发
送关闭闪存系统命令时, 才进入结束步骤。
6.一种提高闪存可靠性的缓存管理装置, 其特征在于, 该装置包括: 主控模块、 读缓存
管理模块、 写缓存管理模块和结束模块;
主控模块: 用于查看闪存状态日志, 判断历史缓存数据是否存在于闪存存储中, 如果存
在于闪存存储中, 则读取保存在闪存中的历史缓存 数据, 并初始 化缓存元数据 表; 若没有存
在于闪存 存储中, 则清空缓存数据, 并重 置缓存元 数据表;
读缓存管理模块: 用于新读请求到达时检查读缓存中是否有该读请求的数据: A1) 如
果有读请求的数据, 则从缓存中返回该读请求的数据块, 同时查看可靠性记录表获取该数
据块在缓存中的驻留时间, 判断该驻留时间是否大于阈值, B1)如果驻留时间大于阈值, 则
从闪存中读取该数据块, 并与缓存中的数据进行对比, 判断两份数据是否相同, C1)如果两
份数据相同,则将该数据块信息更新到LRU链表的表头, C2)如果两份数据不相同则将缓存
中的数据块写入到闪存中, 并更新闪存的映射表; B2)如果驻留时间小于阈值, 则将该数据
块信息更新到LRU链表的表头; A2)如果没有该读请求的数据, 则从闪存中读取该读请求的
数据, 更新可靠性记录表中该数据块的驻留时间, 然后将该数据块信息更新到L RU链表的表
头;
写缓存管理模块, 用于有新数据要写入缓存时, 写缓存管理模块首先检查读缓存中是
否有要写入地址的数据: A1)如果有要写入地址的数据, 则更新读缓存中的数据块, 然后检
查写缓存空间是否已满, B1)如果写缓存空间已满, 则缓存管理模块从缓存LRU链表中取出
尾节点, 查看该节点数据所属的闪存块并检索可靠性记录表, 判断该闪存块的擦除次数是
否大于阈值, C1)如果大于阈值, 则缓存管理模块从LRU链表中取出当前节点的前一个节点
数据, 然后将该节点数据块写回闪存, C2)如果小于阈值, 则缓存管理模块将该节点数据块
写回闪存, 最后将新数据写入缓存并插入到LRU链表的表头, B2) 如果写缓存空间不满, 则
将新数据写入缓存并插入到LRU链表的表头, A2)如果没有要写入地址的数据, 则不需要更
新读缓存中的数据块; 所述可靠性记录表用于记录数据块在缓存中的驻留时间;
结束模块: 当用户发出指令关闭闪存时, 将可靠性记录表保存到闪存的预留空间中, 将
写缓存数据更新到闪存设备中, 完成后关闭闪存设备, 释放相关的资源。
7.一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计
算机可读指 令, 其特征在于, 所述处理器执行所述计算机可读指 令时执行如权利要求 1‑5任
一项所述的方法的步骤。
8.一种计算机可读存储介质, 所述计算机可读存储介质上存储有计算机可读指令, 其
特征在于, 所述计算机可读指 令被处理器执行时, 使 得所述处理器执行如权利要求 1‑5任一
项所述的方法的步骤。权 利 要 求 书 2/2 页
3
CN 115469815 A
3
专利 提高闪存可靠性的缓存管理方法、装置、设备和储存介质
文档预览
中文文档
15 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:33:08上传分享