CN115469815A - 提高闪存可靠性的缓存管理方法、装置、设备和储存介质 - Google Patents

提高闪存可靠性的缓存管理方法、装置、设备和储存介质 Download PDF

Info

Publication number
CN115469815A
CN115469815A CN202211341478.1A CN202211341478A CN115469815A CN 115469815 A CN115469815 A CN 115469815A CN 202211341478 A CN202211341478 A CN 202211341478A CN 115469815 A CN115469815 A CN 115469815A
Authority
CN
China
Prior art keywords
cache
data
flash memory
read
cache management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211341478.1A
Other languages
English (en)
Other versions
CN115469815B (zh
Inventor
曾令仿
毛波
吴素贞
杜春锋
陈�光
李勇
朱世强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202211341478.1A priority Critical patent/CN115469815B/zh
Publication of CN115469815A publication Critical patent/CN115469815A/zh
Application granted granted Critical
Publication of CN115469815B publication Critical patent/CN115469815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了提高闪存可靠性的缓存管理方法、装置、设备和储存介质,该装置包括主控模块、缓存管理模块和可靠性记录表,该方法是通过主控模块进行闪存的控制和管理,缓存管理模块管理读缓存和写缓存,可靠性记录表记录数据块在缓存中的驻留时间。此方法减轻闪存块由于接近擦除极限而导致的数据丢失问题,从而在保证闪存存储性能的同时提高了闪存存储的可靠性。

Description

提高闪存可靠性的缓存管理方法、装置、设备和储存介质
技术领域
本发明涉及计算机存储领域,尤其涉及提高闪存可靠性的缓存管理方法、装置、设备和储存介质。
背景技术
随着设计和制造工艺的进步,闪存存储密度不断扩大,成本不断降低,使得基于闪存的固态盘已经逐渐取代传统的机械磁盘成为主流的计算机存储设备。在闪存存储密度不断提高的同时,其可靠性、耐用性和性能等指标受到了不同程度的影响,其中,闪存块错误发生率的增加成为了影响固态盘可靠性的主要因素。随着闪存块擦除次数逐渐增多,发生错误的可能性也随之增加,因此闪存可靠性也逐步降低。
导致闪存发生错误的原因主要包括三类:保留错误、编程/擦除周期时错误、读干扰错误。(1)保留错误是闪存单元编程后,随着数据在设备上的保留时间推移而产生的单元内电荷泄漏引起的,在所有类型的闪存错误中占据主导地位;(2)编程/擦除周期时错误通常有两种情况:(a)当主控制器发送擦除指令时,单元的状态未恢复至待编程状态;(b)当对单元执行编程操作时,未能将闪存单元设置为目标状态;(3)读干扰是指从某个闪存单元读取数据时,可能导致同一个块中其它未被读取单元的阈值电压向右偏移至更高的值。尽管单个阈值电压偏移很小,但这种偏移会随时间累积,最终变得足够大,足以更改某些单元的状态,从而产生读干扰错误。
另一方面,缓存是计算机系统中不可或缺的一部分,存在于计算机系统的各个层次中,主要用于缓存热点数据,提高存储系统的数据访问性能。目前,使用最广泛的缓存替换方法是最近最少使用算法(Least Recently Used,简称LRU),即挖掘数据访问的局部性,将最近最少使用的数据从缓存中删除从而为新数据提供空间。但是,现有的缓存管理方法都是通过提高缓存命中率、减少缺失代价、提高缓存命中时间等来提高数据访问性能,没有考虑闪存介质的可靠性。在面向闪存的缓存管理中,除了数据的访问性能外,闪存可靠性也是需要考虑的一个重要因素。例如,在缓存中长时间驻留的热点读数据,由于其在闪存中对应的闪存块数据长时间没有访问,进而引发保留错误,当系统重启再次从闪存中读取该闪存块数据时就会发生数据丢失的可能,严重降低了闪存可靠性。
发明内容
针对现有技术的不足,本发明提供一种提高闪存可靠性的缓存管理方法、装置、设备和储存介质,同时考虑请求访问局部性和闪存介质可靠性的缓存数据管理方法和提升闪存的性能和可靠性。
本发明是采用以下技术方案来实现的:
本发明的第一方面,一种提高闪存可靠性的缓存管理的方法,所述方法包括以下步骤:
(1)初始化:主控模块查看闪存状态日志,判断历史缓存数据是否存在于闪存存储中;然后读取保存在闪存中的历史缓存数据,并初始化缓存元数据表,再清空缓存数据,并重置缓存元数据表;
(2)读缓存管理:经由第一步初始化后,当用户发起的请求类型是读请求,进入读缓存管理模块,该模块进行读缓存的管理工作并处理用户发起的读请求;
(3)写缓存管理:经由第一步初始化后,当用户发起的请求类型是写请求,进入写缓存管理模块,该模块进行写缓存的管理工作并处理用户发起的写请求,所述是读缓存管理还是写缓存管理是由用户发起的请求类型决定;
(4)结束步骤:当用户发出指令关闭闪存时,将可靠性记录表保存到闪存的预留空间中,将写缓存数据更新到闪存设备中,完成后关闭闪存设备,释放相关的资源。
进一步地,所述读缓存管理,具体为:
(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.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)。
具体地,所述阈值是一个能任意设置的值,阈值范围取闪存擦除寿命值的50%-100%。
具体地,所述读缓存管理或写缓存管理执行完会再次检查用户发送的请求类型,这样反复执行,直到用户发送关闭闪存系统命令时,才进入结束步骤。
本发明的第二方面,一种提高闪存可靠性的缓存管理装置,该装置包括:主控模块、读缓存管理模块、写缓存管理模块和结束模块;
主控模块:用于查看闪存状态日志,判断历史缓存数据是否存在于闪存存储中,如果存在于闪存存储中,则读取保存在闪存中的历史缓存数据,并初始化缓存元数据表;若没有存在于闪存存储中,则清空缓存数据,并重置缓存元数据表;
读缓存管理模块:用于新读请求到达时检查读缓存中是否有该读请求的数据:A1)如果有读请求的数据,则从缓存中返回该读请求的数据块,同时查看可靠性记录表获取该数据块在缓存中的驻留时间,判断该驻留时间是否大于阈值,B1)如果驻留时间大于阈值,则从闪存中读取该数据块,并与缓存中的数据进行对比,判断两份数据是否相同,C1)如果两份数据相同,则将该数据块信息更新到LRU链表的表头,C2)如果两份数据不相同则将缓存中的数据块写入到闪存中,并更新闪存的映射表;B2)如果驻留时间小于阈值,则将该数据块信息更新到LRU链表的表头;A2)如果没有该读请求的数据,则从闪存中读取该读请求的数据,更新可靠性记录表中该数据块的驻留时间,然后将该数据块信息更新到LRU链表的表头;
写缓存管理模块,用于有新数据要写入缓存时,写缓存管理模块首先检查读缓存中是否有要写入地址的数据:A1)如果有要写入地址的数据,则更新读缓存中的数据块,然后检查写缓存空间是否已满,B1)如果写缓存空间已满,则缓存管理模块从缓存LRU链表中取出尾节点,查看该节点数据所属的闪存块并检索可靠性记录表,判断该闪存块的擦除次数是否大于阈值,C1)如果大于阈值,则缓存管理模块从LRU链表中取出当前节点的前一个节点数据,然后将该节点数据块写回闪存,C2)如果小于阈值,则缓存管理模块将该节点数据块写回闪存,最后将新数据写入缓存并插入到LRU链表的表头,B2) 如果写缓存空间不满,则将新数据写入缓存并插入到LRU链表的表头,A2)如果没有要写入地址的数据,则不需要更新读缓存中的数据块;所述可靠性记录表用于记录数据块在缓存中的驻留时间C1)如果大于阈值,则缓存管理模块从LRU链表中取出当前节点的前一个节点数据,然后将该节点数据块写回闪存,C2)如果小于阈值,则缓存管理模块将该节点数据块写回闪存,最后将新数据写入缓存并插入到LRU链表的表头,B2) 如果写缓存空间不满,则将新数据写入缓存并插入到LRU链表的表头,A2)如果没有要写入地址的数据,则不需要更新读缓存中的数据块;所述可靠性记录表用于记录数据块在缓存中的驻留时间,C1)如果大于阈值,则缓存管理模块从LRU链表中取出当前节点的前一个节点数据,然后将该节点数据块写回闪存,C2)如果小于阈值,则缓存管理模块将该节点数据块写回闪存,最后将新数据写入缓存并插入到LRU链表的表头,B2) 如果写缓存空间不满,则将新数据写入缓存并插入到LRU链表的表头,A2)如果没有要写入地址的数据,则不需要更新读缓存中的数据块;所述可靠性记录表用于记录数据块在缓存中的驻留时间;结束模块:当用户发出指令关闭闪存时,将可靠性记录表保存到闪存的预留空间中,将写缓存数据更新到闪存设备中,完成后关闭闪存设备,释放相关的资源。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时执行如上述任一项所述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行如上述任一项所述的方法的步骤。
本发明的有益效果如下:
本发明充分利用存储系统应用的数据访问时间局部性和空间局部性以及闪存存储的介质特性,通过在缓存管理中同时挖掘数据访问局部性和闪存介质的可靠性参数提高闪存存储系统的性能和可靠性。当热点读数据长期驻留在缓存中时,缓存管理模块通过检查读数据块的驻留时间,将驻留时间大于阈值的数据块从闪存中重新读入并进行比对,若比对结果不同则将读缓存中的数据块重新写入闪存中以降低闪存单元由于长期不访问而引起的驻留错误。同时,对于写缓存,则将那些属于接近擦除阈值的闪存块中的数据块赋予更高的优先级,更长时间地保留在缓存中,减轻闪存块由于接近擦除极限而导致的数据丢失问题,从而在保证闪存存储性能的同时提高了闪存存储的可靠性。
另外,本发明所述的提高闪存可靠性的缓存管理方法和装置能够和闪存转换层模块协同工作,并且可以被嵌入到现有的固态盘控制器中。适用于构造具有高性能和高可靠性的固态盘存储系统。
附图说明
图1为本发明实施例的装置示意图;
图2为本发明的装置流程示意图;
图3为本发明实施例的步骤组成示意图;
图4为本发明实施例中的初始化步骤的过程示意图;
图5为本发明实施例中的读缓存管理步骤的过程示意图;
图6为本发明实施例中的写缓存管理步骤的过程示意图;
图7为本发明实施例中的结束步骤的过程示意图。
具体实施方式
本实施例所述一种提高闪存可靠性的缓存管理方法和装置,在闪存设备中设置有主控模块、缓存管理模块和可靠性记录表;下面结合附图说明缓存管理方法的各步骤:
参见图1,是一个经典的固态盘内部结构图,固态盘主要由主机接口控制器、ARM处理器、缓存控制器、闪存控制器、DRAM缓存和闪存芯片等组成。用户请求通过主机接口控制器接收,ARM处理器负责加载闪存转换层程序,实现如地址的映射、损耗均衡、垃圾回收、坏块管理等主要功能。缓存控制器存储用户热点读写数据和地址映射表。闪存控制器实现对后端闪存芯片的连接和控制等功能。本发明的一种提高闪存可靠性的缓存管理方法可应用在固态盘的缓存控制器中。
如图2所示,本发明的装置流程示意图,一种提高闪存可靠性的缓存管理装置,该装置包括:主控模块、读缓存管理模块、写缓存管理模块和结束模块;
主控模块:用于查看闪存状态日志,判断历史缓存数据是否存在于闪存存储中,如果存在于闪存存储中,则读取保存在闪存中的历史缓存数据,并初始化缓存元数据表;若没有存在于闪存存储中,则清空缓存数据,并重置缓存元数据表;
读缓存管理模块:用于新读请求到达时检查读缓存中是否有该读请求的数据:A1)如果有读请求的数据,则从缓存中返回该读请求的数据块,同时查看可靠性记录表获取该数据块在缓存中的驻留时间,判断该驻留时间是否大于阈值,B1)如果驻留时间大于阈值,则从闪存中读取该数据块,并与缓存中的数据进行对比,判断两份数据是否相同,C1)如果两份数据相同,则将该数据块信息更新到LRU链表的表头,C2)如果两份数据不相同则将缓存中的数据块写入到闪存中,并更新闪存的映射表;B2)如果驻留时间小于阈值,则将该数据块信息更新到LRU链表的表头;A2)如果没有该读请求的数据,则从闪存中读取该读请求的数据,更新可靠性记录表中该数据块的驻留时间,然后将该数据块信息更新到LRU链表的表头;
写缓存管理模块,用于有新数据要写入缓存时,写缓存管理模块首先检查读缓存中是否有要写入地址的数据:A1)如果有要写入地址的数据,则更新读缓存中的数据块,然后检查写缓存空间是否已满,B1)如果写缓存空间已满,则缓存管理模块从缓存LRU链表中取出尾节点,查看该节点数据所属的闪存块并检索可靠性记录表,判断该闪存块的擦除次数是否大于阈值,C1)如果大于阈值,则缓存管理模块从LRU链表中取出当前节点的前一个节点数据,然后将该节点数据块写回闪存,C2)如果小于阈值,则缓存管理模块将该节点数据块写回闪存,最后将新数据写入缓存并插入到LRU链表的表头,B2) 如果写缓存空间不满,则将新数据写入缓存并插入到LRU链表的表头,A2)如果没有要写入地址的数据,则不需要更新读缓存中的数据块;所述可靠性记录表用于记录数据块在缓存中的驻留时间;
结束模块:当用户发出指令关闭闪存时,将可靠性记录表保存到闪存的预留空间中,将写缓存数据更新到闪存设备中,完成后关闭闪存设备,释放相关的资源。
参见图3,首先进行初始化:主控模块查看闪存状态日志,判断历史缓存数据是否存在于闪存存储中;然后读取保存在闪存中的历史缓存数据,并初始化缓存元数据表,再清空缓存数据,并重置缓存元数据表;
初始化步骤完成后进入并行的读缓存管理步骤和写缓存管理步骤,当用户发出关闭指令时,进入结束步骤。
参见图4,根据用户指令,主控模块查看闪存状态日志,判断历史缓存数据是否存在于闪存存储中;若是,则读取保存在闪存中的历史缓存数据,并初始化缓存元数据表;若是否,则主控模块清空缓存数据,并重置缓存元数据表。
参见图5,经由第一步初始化后,当用户发起的请求类型是读请求,缓存管理模块首先检查读缓存中是否有该读请求的数据,若是则从缓存中返回该读请求的数据块,查看可靠性记录表获取该数据块在缓存中的驻留时间,判断该驻留时间是否大于阈值,若是则从闪存中读取该数据块,并与缓存中的数据进行对比,判断两份数据是否相同,若相同则将该数据块信息更新到LRU链表的表头,否则将缓存中的数据块写入到闪存中,并更新闪存的映射表,然后将该数据块信息更新到LRU链表的表头;若驻留时间不大于阈值,则将该数据块信息更新到LRU链表的表头;若读缓存中没有该读请求的数据块,则从闪存中读取该读请求的数据,更新可靠性记录表中该数据块的驻留时间,然后将该数据块信息更新到LRU链表的表头。
参见图6,经由第一步初始化后,当用户发起的请求类型是写请求,缓存管理模块首先检查读缓存中是否有要写入地址的数据,若有则更新读缓存中的数据块。然后缓存管理模块检查写缓存空间是否已满,若已满则缓存管理模块从缓存LRU链表中取出尾节点,查看该节点数据所属的闪存块并检索可靠性记录表,判断该闪存块的擦除次数是否大于阈值,若是则从LRU链表上取出当前节点的前一个节点数据,以此类推,直到找到一个节点的数据所属闪存块的擦除次数小于阈值则将该节点数据块写回闪存,然后将新数据写入缓存并插入到LRU链表的表头;若写缓存空间没有满,则直接将新数据写入缓存并插入到LRU链表的表头。
参见图7,最后,主控模块将优先将可靠性记录表保存到闪存的预留空间中,将写缓存数据更新到闪存设备中,完成后关闭闪存设备,释放相关的资源。
虽然已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在它们的范围内包括这样的过程、设备、手段、方法或者步骤。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (8)

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所述的一种提高闪存可靠性的缓存管理方法,其特征在于,所述阈值是一个能任意设置的值,阈值范围取闪存擦除寿命值的50%-100%。
5.根据权利要求1所述的一种提高闪存可靠性的缓存管理方法,其特征在于,所述读缓存管理或写缓存管理执行完会再次检查用户发送的请求类型,这样反复执行,直到用户发送关闭闪存系统命令时,才进入结束步骤。
6.一种提高闪存可靠性的缓存管理装置,其特征在于,该装置包括:主控模块、读缓存管理模块、写缓存管理模块和结束模块;
主控模块:用于查看闪存状态日志,判断历史缓存数据是否存在于闪存存储中,如果存在于闪存存储中,则读取保存在闪存中的历史缓存数据,并初始化缓存元数据表;若没有存在于闪存存储中,则清空缓存数据,并重置缓存元数据表;
读缓存管理模块:用于新读请求到达时检查读缓存中是否有该读请求的数据:A1) 如果有读请求的数据,则从缓存中返回该读请求的数据块,同时查看可靠性记录表获取该数据块在缓存中的驻留时间,判断该驻留时间是否大于阈值,B1)如果驻留时间大于阈值,则从闪存中读取该数据块,并与缓存中的数据进行对比,判断两份数据是否相同,C1)如果两份数据相同,则将该数据块信息更新到LRU链表的表头,C2)如果两份数据不相同则将缓存中的数据块写入到闪存中,并更新闪存的映射表;B2)如果驻留时间小于阈值,则将该数据块信息更新到LRU链表的表头;A2)如果没有该读请求的数据,则从闪存中读取该读请求的数据,更新可靠性记录表中该数据块的驻留时间,然后将该数据块信息更新到LRU链表的表头;
写缓存管理模块,用于有新数据要写入缓存时,写缓存管理模块首先检查读缓存中是否有要写入地址的数据:A1)如果有要写入地址的数据,则更新读缓存中的数据块,然后检查写缓存空间是否已满,B1)如果写缓存空间已满,则缓存管理模块从缓存LRU链表中取出尾节点,查看该节点数据所属的闪存块并检索可靠性记录表,判断该闪存块的擦除次数是否大于阈值,C1)如果大于阈值,则缓存管理模块从LRU链表中取出当前节点的前一个节点数据,然后将该节点数据块写回闪存,C2)如果小于阈值,则缓存管理模块将该节点数据块写回闪存,最后将新数据写入缓存并插入到LRU链表的表头,B2) 如果写缓存空间不满,则将新数据写入缓存并插入到LRU链表的表头,A2)如果没有要写入地址的数据,则不需要更新读缓存中的数据块;所述可靠性记录表用于记录数据块在缓存中的驻留时间;
结束模块:当用户发出指令关闭闪存时,将可靠性记录表保存到闪存的预留空间中,将写缓存数据更新到闪存设备中,完成后关闭闪存设备,释放相关的资源。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时执行如权利要求1-5任一项所述的方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时,使得所述处理器执行如权利要求1-5任一项所述的方法的步骤。
CN202211341478.1A 2022-10-31 2022-10-31 提高闪存可靠性的缓存管理方法、装置、设备和储存介质 Active CN115469815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211341478.1A CN115469815B (zh) 2022-10-31 2022-10-31 提高闪存可靠性的缓存管理方法、装置、设备和储存介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211341478.1A CN115469815B (zh) 2022-10-31 2022-10-31 提高闪存可靠性的缓存管理方法、装置、设备和储存介质

Publications (2)

Publication Number Publication Date
CN115469815A true CN115469815A (zh) 2022-12-13
CN115469815B CN115469815B (zh) 2023-04-18

Family

ID=84337414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211341478.1A Active CN115469815B (zh) 2022-10-31 2022-10-31 提高闪存可靠性的缓存管理方法、装置、设备和储存介质

Country Status (1)

Country Link
CN (1) CN115469815B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117666968A (zh) * 2023-12-20 2024-03-08 之江实验室 一种固态盘存储系统的选择性数据压缩方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012166050A1 (en) * 2011-05-30 2012-12-06 Agency For Science, Technology And Research Buffer management apparatus and method
CN104636285A (zh) * 2015-02-03 2015-05-20 北京麓柏科技有限公司 一种闪存存储系统及其读写、删除方法
CN105138277A (zh) * 2015-07-23 2015-12-09 厦门大学 一种固态盘阵列的缓存管理方法
US20170024326A1 (en) * 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table
US10289549B1 (en) * 2016-06-28 2019-05-14 EMC IP Holding Company LLC Checkpointing cache status information
CN110245095A (zh) * 2019-06-20 2019-09-17 华中科技大学 一种基于数据块图谱的固态盘缓存优化方法和系统
US20200089894A1 (en) * 2018-09-18 2020-03-19 Nuvoton Technology Corporation Data-processsing device and data-protection method thereof
CN111580754A (zh) * 2020-05-06 2020-08-25 西安交通大学 一种写友好的闪存固态盘缓存管理方法
CN113590665A (zh) * 2021-08-12 2021-11-02 平安普惠企业管理有限公司 缓存监控管理方法、装置、系统、设备和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012166050A1 (en) * 2011-05-30 2012-12-06 Agency For Science, Technology And Research Buffer management apparatus and method
CN104636285A (zh) * 2015-02-03 2015-05-20 北京麓柏科技有限公司 一种闪存存储系统及其读写、删除方法
US20170024326A1 (en) * 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table
CN105138277A (zh) * 2015-07-23 2015-12-09 厦门大学 一种固态盘阵列的缓存管理方法
US10289549B1 (en) * 2016-06-28 2019-05-14 EMC IP Holding Company LLC Checkpointing cache status information
US20200089894A1 (en) * 2018-09-18 2020-03-19 Nuvoton Technology Corporation Data-processsing device and data-protection method thereof
CN110245095A (zh) * 2019-06-20 2019-09-17 华中科技大学 一种基于数据块图谱的固态盘缓存优化方法和系统
CN111580754A (zh) * 2020-05-06 2020-08-25 西安交通大学 一种写友好的闪存固态盘缓存管理方法
CN113590665A (zh) * 2021-08-12 2021-11-02 平安普惠企业管理有限公司 缓存监控管理方法、装置、系统、设备和存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GU, JUNQING等: "《HOTIS:A Hot Data Identification Scheme to Optimize Garbage Collection of SSDs》", 《2017 15TH IEEE INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING WITH APPLICATIONS AND 2017 16TH IEEE INTERNATIONAL CONFERENCE ON UBIQUITOUS COMPUTING AND COMMUNICATIONS(ISPA/IUCC 2017)》 *
周权彪等: "基于缓存映射项重用距离的闪存地址映射方法", 《计算机研究与发展》 *
贺秦禄等: "移动闪存的重复数据删除技术", 《西安电子科技大学学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117666968A (zh) * 2023-12-20 2024-03-08 之江实验室 一种固态盘存储系统的选择性数据压缩方法及装置

Also Published As

Publication number Publication date
CN115469815B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
US7568068B2 (en) Disk drive with cache having volatile and nonvolatile memory
KR100526190B1 (ko) 플래시 메모리의 재사상 방법
US9128847B2 (en) Cache control apparatus and cache control method
US8745310B2 (en) Storage apparatus, computer system, and method for managing storage apparatus
JP4956922B2 (ja) 記憶装置
US8180955B2 (en) Computing systems and methods for managing flash memory device
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
CN111752487B (zh) 一种数据恢复方法、装置及固态硬盘
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US20100332726A1 (en) Structure and method for managing writing operation on mlc flash memory
CN107710169A (zh) 一种闪存设备的访问方法和装置
JP2008146255A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
KR20100009464A (ko) 메모리 스토리지 장치 및 그 제어 방법
CN109697033B (zh) 瓦记录磁盘感知的存储缓存方法及系统
JP2008146254A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
US20040193781A1 (en) Flash memory access apparatus and method
CN106445401B (zh) 表格更新方法、存储器储存装置及存储器控制电路单元
CN115469815B (zh) 提高闪存可靠性的缓存管理方法、装置、设备和储存介质
US20150205538A1 (en) Storage apparatus and method for selecting storage area where data is written
JP5338859B2 (ja) 記憶装置および情報処理システム
US20110138110A1 (en) Method and control unit for performing storage management upon storage apparatus and related storage apparatus
CN111580757B (zh) 数据写入方法、系统和固态硬盘
CN116540950B (zh) 一种存储器件及其写入数据的控制方法
US11249920B2 (en) Non-volatile memory device using efficient page collection mapping in association with cache and method of operating the same
CN110275678B (zh) 一种基于stt-mram的固态存储器件随机访问性能提升方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant