CN116048402A - 一种缓存替换方法、装置及存储介质 - Google Patents
一种缓存替换方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116048402A CN116048402A CN202310009051.XA CN202310009051A CN116048402A CN 116048402 A CN116048402 A CN 116048402A CN 202310009051 A CN202310009051 A CN 202310009051A CN 116048402 A CN116048402 A CN 116048402A
- Authority
- CN
- China
- Prior art keywords
- page
- hit
- cache
- mapping
- value
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种缓存替换方法,应用于固态硬盘中,所述固态硬盘缓存有多个映射页;所述映射页包括多个连续的逻辑区块地址LBA和物理地址之间的映射关系;所述缓存替换方法包括:当对所述固态硬盘进行读写操作时,如果待读写数据的LBA未命中所述固态硬盘缓存的映射页,则从所述固态硬盘的存储阵列中获取所述待读写数据的LBA与物理地址之间的映射页;根据所述固态硬盘所缓存的每个映射页的决断值选取待淘汰的映射页;将从所述固态硬盘的存储阵列中获取到的映射页替换所述待淘汰的映射页。上述技术方案可以使缓存替换规则更加适应系统访问规律,提高缓存的命中率。
Description
技术领域
本发明涉及但不限于计算机领域,尤其涉及缓存替换方法、装置及存储介质。
背景技术
在固态硬盘的实际设计中,为了降低成本,通常选择将映射表的一部分放置在固态硬盘主控内部的缓存空间SRAM中,当系统需要读取固态硬盘存储空间数据时,固态硬盘固件查找缓存在SRAM中的部分映射表,如果没有命中,则从存储阵列将对应的映射表读到缓存SRAM中,同时淘汰缓存SRAM中部分映射表;如果命中,则直接获得LBA所对应的PPA,固态硬盘固件根据PPA读出存储阵列的数据返回给系统应用。
现有技术通常采用LRU算法淘汰缓存中的映射表,即缓存中将保留最近一段时间内经常使用的数据,而淘汰最近未被经常使用的数据。LRU基于这样一个事实:在最近一段时间内经常被使用的数据在未来一段时间内也会被经常使用,而未被经常使用的数据在未来很长时间内不会被用到。因此在替换内容时只需要找出最近最少使用那些数据进行替换即可。
LRU算法将最近一次被访问的内容优先级提至最高。然而最近被访问的内容不一定是最热的,这将导致非热门的内容次序较高,影响缓存的命中效率。
发明内容
本申请所要解决的技术是提供一种缓存替换方法、装置及存储介质,可以使缓存替换规则更加适应系统访问规律,提高缓存的命中率。
为了解决上述技术问题,本申请提供了一种缓存替换方法,应用于固态硬盘中,所述固态硬盘缓存有多个映射页;所述映射页包括多个连续的逻辑区块地址LBA和物理地址之间的映射关系;所述缓存替换方法包括:
当对所述固态硬盘进行读写操作时,如果待读写数据的LBA未命中所述固态硬盘缓存的映射页,则从所述固态硬盘的存储阵列中获取所述待读写数据的LBA与物理地址之间的映射页;
根据所述固态硬盘所缓存的每个映射页的决断值选取待淘汰的映射页;
将从所述固态硬盘的存储阵列中获取到的映射页替换所述待淘汰的映射页;
其中,映射页的决断值根据该映射页的命中次数、在缓存中的时长以及后续命中概率计算得出。
在一种示例性实施例中,映射页的所述决断值根据下式进行计算:
Y=a1*K+a2*T+a3*P;
Y为决断值;a1为设定的第一权重,a2为设定的第二权重,a3为设定的第三权重;
K用于标识映射页的命中次数;T用于标识映射页在所述缓存中的时长;P用于标识后续命中概率,所述后续命中概率根据该映射页连续命中次数和预设规则得出。
在一种示例性实施例中,所述方法还包括:
当对所述硬盘进行读写操作时,对于每个映射页,根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P。
在一种示例性实施例中,所述根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P包括:
如果本次读写操作命中该映射页并且该映射页连续命中的次数大于或者等于设定的第一阈值,则K值更新为K+m1,T值更新为T+m2,P值更新为m3;
如果本次读写操作命中该映射页并且该映射页连续命中的次数小于设定的第一阈值,或者,本次读写操作命中该映射页并且该映射页未连续命中,则K值更新为K+m1,T值更新为T+m2,P值保持不变;
其中,m1、m2和m3均为正数。
在一种示例性实施例中,所述根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P还包括:
如果本次读写操作未命中该映射页并且当前P值为0,则K值保持不变,T值更新为T+m2,P值保持不变;
如果本次读写操作未命中该映射页、当前P值大于0,则K值保持不变,T值更新为T+1,P值更新为max(P-m4,0);
其中,m4为小于m3的正数。
在一种示例性实施例中,所述方法还包括:
根据设定时间长度的第一周期内读写操作命中缓存映射页的次数和未命中缓存映射页的次数更新所述a1。
在一种示例性实施例中,所述根据设定时间长度的周期内读写操作命中缓存的次数和未命中缓存的次数更新所述a1包括:
根据设定时间长度的周期内所有读写操作命中缓存的总次数和未命中缓存的总次数得出本周期的第一命中率;
计算所述第一命中率和设定的期望命中率之间的差值,得到本周期的命中率误差;根据本周期的命中率误差和上一周期的命中率误差确定本周期的误差变化率;
对所述命中率误差和所述误差变化率进行模糊化处理,得出更新后的a1,以在下一个第一周期中根据更新后的a1计算决断值。
在一种示例性实施例中,所述对所述命中率误差和所述误差变化率进行模糊化处理,得出更新后的a1包括:
根据所述命中率误差得出模糊化处理后的命中率误差,根据所述误差变化率得出模糊化处理后的误差变化率;
根据所述模糊化处理后的命中率误差和模糊化处理后的误差变化率,从预先设定的模糊控制规则表中确定模糊化后的a1,标记为a1f:
将a1更新为a1f*r+a1,其中,r为设定的正数。
本申请还一种缓存替换装置,设置于固态硬盘,包括:存储器和处理器;
所述存储器,用于保存用于缓存替换的程序;
所述处理器,用于读取所述用于缓存替换的程序,执行前述任一所述的缓存替换方法。
本申请还提供一种非瞬态计算机可读存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行前述任一所述的缓存替换方法。
本申请提供一种缓存替换方法,应用于固态硬盘中,所述固态硬盘缓存有多个映射页;所述映射页包括多个连续的逻辑区块地址LBA和物理地址之间的映射关系;所述缓存替换方法包括:当对所述固态硬盘进行读写操作时,如果待读写数据的LBA未命中所述固态硬盘缓存的映射页,则从所述固态硬盘的存储阵列中获取所述待读写数据的LBA与物理地址之间的映射页;根据所述固态硬盘所缓存的每个映射页的决断值选取待淘汰的映射页;将从所述固态硬盘的存储阵列中获取到的映射页替换所述待淘汰的映射页;其中,映射页的决断值根据该映射页的命中次数、在缓存中的时长以及后续命中概率计算得出。上述技术方案可以使缓存替换规则更加适应系统访问规律,提高缓存的命中率。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请实施例一的缓存替换方法的流程图;
图2是本申请实施例一的模糊控制表的示意图;
图3是本申请实施例一的缓存替换装置的示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
固态硬盘作为一种新型的存储装置,相比于传统的机械硬盘,固态硬盘具有容量大,可靠性高,读写速度快,防震抗摔,功耗低,无噪音等优点。因为上述优点,固态硬盘在消费级PC领域和企业级服务器领域得到了大规模的应用。
固态硬盘的存储阵列主要是由多个Nand Flash Die组成,多个Die构成多个channel,多个bank。每个Die由多个block构成,每个block由多个page(页)构成。每个page物理大小是16KB。固态硬盘存储数据的顺序是先确定存储阵列的channel,bank再确定block,page。
系统应用在向固态硬盘写入数据时,根据LBA(Logical Block Address,逻辑区块地址)访问固态硬盘的存储空间。固态硬盘内部的固件需要将系统应用访问的LBA翻译成存储阵列的物理地址PPA(即数据存储所在的channel,bank,block,page)。LBA和PPA的一一映射关系便构成了固态硬盘的逻辑地址到物理地址的映射表。系统应用在从固态硬盘读出数据时,固态硬盘固件会根据LBA查找映射表,得到PPA,即数据实际存放在存储阵列的位置。固态硬盘固件根据PPA读出存储阵列的数据返回给系统应用。
在固态硬盘的实际设计中,为了提升查找映射表的效率,固件设计者有时会将完整的映射表缓存在固态硬盘内部的外置缓存DRAM(Dynamic Random Access Memory,动态随机存取存储器)中。但由于DRAM的成本较高,为了降低固态硬盘成本,固态硬盘的设计者可能会选择将映射表的一部分放置在固态硬盘主控内部的缓存空间SRAM(Static Random-Access Memory,静态随机存取存储器)中,固态硬盘就不需要外置缓存DRAM,从而降低固态硬盘成本。当系统需要读取固态硬盘存储空间数据时,固态硬盘固件查找缓存在SRAM中的部分映射表,如果没有命中,则从存储阵列将对应的映射表读到缓存SRAM中,同时淘汰缓存SRAM中部分映射表;如果命中,则直接获得LBA所对应的PPA,固态硬盘固件根据PPA读出存储阵列的数据返回给系统应用。上述方案缓存部分映射表在内部SRAM中,虽然存在没有命中的情况下,需要从Nand Flash读取映射表的问题。但是由于该设计方案没有外置缓存DRAM,则固态硬盘的成本大大降低。提升缓存在SRAM中的映射表命中的效率是提高系统应用访问固态硬盘效率,减小应用响应的时延关键。
假定固态硬盘的存储空间为N,则固态硬盘的映射表中的映射关系的个数为N/512Byte个。在将部分映射表缓存在固态硬盘主控的内部缓存SRAM的方案中,可以将若干个连续的LBA的映射关系组成一个映射应用在未命中缓存中映射表时,则固件会将新的page从存储阵列读出到缓存SRAM中,同时淘汰部分旧的page。现假定为M个连续的LBA映射关系组成一个page。则存储空间为N的映射表有N/512Byte/M个page,内部缓存SRAM可以存放X个page,其中X<<N/512Byte/M;
实施例一
如图1所示,本实施例提供一种缓存替换方法,应用于固态硬盘中,所述固态硬盘缓存有多个映射页;所述映射页包括多个连续的逻辑区块地址LBA和物理地址之间的映射关系;所述缓存替换方法包括:
步骤S101、当对所述固态硬盘进行读写操作时,如果待读写数据的LBA未命中所述固态硬盘缓存的映射页,则从所述固态硬盘的存储阵列中获取所述待读写数据的LBA与物理地址之间的映射页;
步骤S102、根据所述固态硬盘所缓存的每个映射页的决断值选取待淘汰的映射页;
步骤S103、将从所述固态硬盘的存储阵列中获取到的映射页替换所述待淘汰的映射页;
其中,映射页的决断值根据该映射页的命中次数、在缓存中的时长以及后续命中概率计算得出。
通过上述技术方案,根据该映射页的命中次数、在缓存中的时长以及后续命中概率计算确定待淘汰映射页,使得缓存替换规则更加适应系统访问规律,从而可以提高缓存的命中率。
本实施例中,当对所述固态硬盘进行读写操作时,如果待读写数据的LBA命中所述固态硬盘缓存的映射页,则可以直接根据命中的映射页获取待读取的数据。
需要说明的是,上述步骤S101中从所述固态硬盘的存储阵列中获取所述待读写数据的LBA与物理地址之间的映射页,与步骤S102的执行顺序不做具体限定。
在一种示例性实施例中,映射页的所述决断值根据下式进行计算:
Y=a1*K+a2*T+a3*P;
Y为决断值;a1为设定的第一权重,a2为设定的第二权重,a3为设定的第三权重;a1、a2和a3均为正数。
K用于标识映射页的命中次数,即可以标识映射页的工作负载;T用于标识映射页在所述缓存中的时长;P用于标识后续命中概率,即标识映射页的受欢迎程度,所述后续命中概率根据该映射页连续命中次数和预设规则得出,K的初始值为0、T的初始值为1,P的初始值为0。
本实施例中,K的初始值可以设置为0、T的初始值可以设置为1,P的初始值可以设置为0。上述初始值仅为示例性的取值,还可以取其它初始值,在此不做具体限定。
映射页可以多次加载到缓存,每次加载到缓存时,均设置该映射页对应的K、T、P的初始值。例如,映射页A先加载到缓存,此后作为待淘汰的映射页被移出缓存,然后在后续的处理时再次加载到缓存。在映射页A每次加载到缓存时,均需要设置映射页K、T、P的初始值,即映射页A再次加载到缓存时,设置K为0,T为1,P为0。
在一种示例性实施例中,所述方法还包括:
当对所述硬盘进行读写操作时,对于每个映射页,根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P。
本实施例中,K、T和P均是基于上一次计算得出的取值进行更新。第一次读写操作时,K、T和P是基于初始值进行更新。
在一种示例性实施例中,所述根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P包括:
如果本次读写操作命中该映射页并且该映射页连续命中的次数大于或者等于设定的第一阈值,则K值更新为K+m1,T值更新为T+m2,P值更新为m3;
如果本次读写操作命中该映射页并且该映射页连续命中的次数小于设定的第一阈值,或者,本次读写操作命中该映射页并且该映射页未连续命中,则K值更新为K+m1,T值更新为T+m2,P值保持不变;
其中,m1、m2和m3均为正数。m1、m2和m3的取值范围可以是大于0的任意正数,m1、m2和m3的取值可以根据场景变化而具体设定。例如,m1可以设置为1,m2设置为1,m3设置为100%或者1。假设m1设置为1时,每次映射页被命中时,k加1,假设设置为5,每次映射页被命中时,k加5。
在一种示例性实施例中,所述根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P还包括:
如果本次读写操作未命中该映射页并且当前P值为0,则K值保持不变,T值更新为T+m2,P值保持不变;
如果本次读写操作未命中该映射页、当前P值大于0,则K值保持不变,T值更新为T+1,P值更新为max(P-m4,0);
其中,m4为小于m3的正数。m4的取值范围可以是大于0并且小于m3的任意正数。
在一种示例性实施例中,所述方法还包括:
根据设定时间长度的第一周期内读写操作命中缓存映射页的次数和未命中缓存映射页的次数更新所述a1。
在一种示例性实施例中,所述根据设定时间长度的周期内读写操作命中缓存的次数和未命中缓存的次数更新所述a1包括:
根据设定时间长度的周期内所有读写操作命中缓存的总次数和未命中缓存的总次数得出本周期的第一命中率;
计算所述第一命中率和设定的期望命中率之间的差值,得到本周期的命中率误差;根据本周期的命中率误差和上一周期的命中率误差确定本周期的误差变化率;
对所述命中率误差和所述误差变化率进行模糊化处理,得出更新后的a1,以在下一个第一周期中根据更新后的a1计算决断值。
在一种示例性实施例中,所述对所述命中率误差和所述误差变化率进行模糊化处理,得出更新后的a1包括:
根据所述命中率误差得出模糊化处理后的命中率误差,根据所述误差变化率得出模糊化处理后的误差变化率;
根据所述模糊化处理后的命中率误差和模糊化处理后的误差变化率,从预先设定的模糊控制规则表中确定模糊化后的a1,标记为a1f:
将a1更新为a1f*r+a1,其中,r为设定的正数。
例如,可以将本周期的命中率误差记为Qi,将上一周期的命中率误差记为Q,本周期的误差变化率E=Qi-Q;计算误差变化率EC=(E-Ei)/A。其中A为常数,Ei的初始值为0,r=5;
对误差E和误差变化率EC进行模糊化处理,误差E模糊化后处理的值记为Ef,误差变化率EC模糊化后的值是ECf,误差E的取值范围是[-50,+50],误差变化率EC的取值范围是[-30,+30],如表1和表2所示:
E | [-50,-30] | [-29,-10] | [-9,-5] | [-4,+4] | [+5,+9] | [+10,+29] | [+30,+50] |
<![CDATA[E<sub>f</sub>]]> | -4 | -2 | -1 | 0 | 1 | 2 | 4 |
表1
EC | [-30,-20] | [-19,-10] | [-9,-3] | [-2,+2] | [+3,+9] | [+10,+19] | [+20,+30] |
<![CDATA[EC<sub>f</sub>]]> | -4 | -3 | -2 | 0 | 2 | 3 | 4 |
表2
根据模糊化后的误差Ef和误差变化率ECf,查询如图2所示的模糊控制表,得到模糊化后的a1f,将查询模糊控制表得到的a1f进行去模糊化操作,即得到更新后的a1=a1f*5+a1。
通过上述技术方案可以动态调整权重,使得决断值可以更加准确地反映系统访问规律,从而提高缓存命中率。
示例一
现假设缓存中能存储4个page(下文简称page),page0能表征的LBA范围是LBA0~LBA99,page1能表征的LBA范围是LBA100~LBA199,依此类推。假设a1=a2=a3=1;m1、m2均设为1,m3设为100%。
如表3所示,初始化时,page0~page3被加载进缓存中的取值如下:
表3
现在主机读LBA0,则命中缓存中的page0,完成LBA0读操作后,更新缓存中所有page的K、T、P,如表4所示:
表4
现在主机读LBA100,则命中缓存中的page1,完成LBA100读操作后,更新缓存中所有page的K、T、P,如表5所示:
表5
现在主机读LBA200,则命中缓存中的page2,完成LBA200读操作后,更新缓存中所有page的K、T、P,如表6所示:
表6
现在主机读LBA400,则命中缓存中的page4,因为page4现在不在缓存中,需要从闪存中将page4读出,加载到缓存中,此时需要计算现有缓存中所有page的决断值,再决定淘汰哪个page。
由表6可以得出,page0的决断值为5,page1的决断值为5,page2的决断值为5,page3的决断值为4,page3的决断值最小,因此将page3作为待淘汰映射页。将page4加载到缓存,替换page3所在的位置,此时缓存各page的K、T、P如下,如表7所示:
表7
现在主机读LBA401,则继续命中缓存中的page4,更新缓存中page的K、T、P,如表8所示:
表8
现在主机读LBA402,则继续命中缓存中的page4,更新缓存中page的K、T、P,如表9所示:
表9
现在主机读LBA403,则继续命中缓存中的page4,可以认为主机是连续读命令,即后续的命令继续命中page4的概率很高,则将page4的p值设置为100,更新缓存中page的K、T、P,如表10所示:
表10
需要说明的是,在其它示例中,如果判定当前读命令是连续读命令,可以将连接命中的page对应K值的增幅提高,例如,可以将page4的K值更新为5,也就是非连续读命令时m1为1,连续读命令时m1为2。
现在主机读LBA404,则继续命中缓存中的page4,更新缓存中page的K、T、P,如表11所示:
表11
现在主机读LBA0,则命中缓存中的page0,更新缓存中page的K、T、P,如表12所示:
表12
现在主机读LBA100,则命中缓存中的page1,更新缓存中page的K、T、P,如表13所示:
表13
现在主机读LBA500,LBA500对应page5,由于page5不在缓存,需要从闪存中将page5读出,加载到缓存中。此时需要计算现有缓存中所有page的决断值,再决定淘汰哪个page。
由表13可以得出,page0的决断值为13,page1的决断值为13,page2的决断值为12,page4的决断值为112,page2的决断值最小,因此将page2作为待淘汰映射页。将page5加载到缓存,替换page2所在的位置,此时缓存的各page的K、T、P如表14所示:
表14
现在主机读LBA600,LBA600对应page6,由于page6不在缓存,需要从闪存中将page6读出,加载到缓存中。此时需要计算现有缓存中所有page的决断值,再决定淘汰哪个page。
由表14可以得出,page0的决断值为14,page1的决断值为14,page5的决断值为2,page4的决断值为113,page5的决断值最小,因此将page5作为待淘汰映射页。将page6加载到缓存,替换page5所在的位置。此外由于page4连续多次读写操作未被命中,故将page4的P从100减为80。
此时缓存的各page的K、T、P如表15所示:
表15
现在主机读LBA601,则命中page6,同时page4继续没有命中,则将page4的P从80减为60,此时,缓存的各page的K、T、P如表16所示:
表16
现在主机读LBA602,则继续命中page6,同时page4继续没有命中,则将page4的P从60减为40,此时,缓存的各page的K、T、P如表17所示:
表17
现在主机读LBA603,则继续命中page6,同时page4继续没有命中,则将page4的P从40减为20,此时,缓存的各page的K、T、P如表18所示:
表18
现在主机读LBA604,则继续命中page6,可以判定主机是连续读命令,即后续的命令继续命中page6的概率很高,将page6的p=100。同时page4继续没有命中,则将page4的P从20减为0。此时,缓存的各page的K、T、P如表19所示:
表19
现在主机读LBA700,LBA700对应page7,由于page7不在缓存,需要从闪存中将page7读出,加载到缓存中。此时需要计算现有缓存中所有page的决断值,再决定淘汰哪个page。
由表19可以得出,page0的决断值为19,page1的决断值为19,page6的决断值为110,page4的决断值为18,page4的决断值最小,因此将page4作为待淘汰映射页。将page7加载到缓存,替换page4所在的位置。此时缓存的各page的K、T、P如表20所示:
表20
上述技术方案有以下技术效果:
第一、本申请通过K、T和P分别标识映射page的工作负载、在缓存的时长以及后续命中的概率,在进行缓存替换的时,可以基于多重因素进行缓存替换,包括系统访问的规律(是否为连续读写),用户的使用习惯(是否频繁的访问某些数据),以及冷热数据(缓存时间的长短);同时,使用a1,a2和a3来表示K、T和P的权重系数,使用决断公式Y=a1*K+a2*Ti+a3*P计算每个映射page的决断值,系统固件在进行缓存替换时,优先将决断值小的缓存page替换掉,使得缓存替换规则更加适应系统访问规律,从而可以提高缓存命中率。
第二、通过模糊控制算法,使用反馈机制动态调整a1的值,通过调整权重系数,使得缓存替换规则更加智能,更能适应系统应用的访问规律和用户的使用习惯,从而提高缓存的命中率。
如图3所示,本实施例还提供一种缓存替换装置,设置于固态硬盘,包括:存储器10和处理器11;
所述存储器10,用于保存用于缓存替换的程序;
所述处理器11,用于读取所述用于缓存替换的程序,执行前述任一所述的缓存替换方法。
本实施例还提供一种非瞬态计算机可读存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行前述任一所述的缓存替换方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种缓存替换方法,应用于固态硬盘中,其特征在于,所述固态硬盘缓存有多个映射页;所述映射页包括多个连续的逻辑区块地址LBA和物理地址之间的映射关系;所述缓存替换方法包括:
当对所述固态硬盘进行读写操作时,如果待读写数据的LBA未命中所述固态硬盘缓存的映射页,则从所述固态硬盘的存储阵列中获取所述待读写数据的LBA与物理地址之间的映射页;
根据所述固态硬盘所缓存的每个映射页的决断值选取待淘汰的映射页;
将从所述固态硬盘的存储阵列中获取到的映射页替换所述待淘汰的映射页;
其中,映射页的决断值根据该映射页的命中次数、在缓存中的时长以及后续命中概率计算得出。
2.如权利要求1所述的缓存替换方法,其特征在于,映射页的决断值根据下式进行计算:
Y=a1*K+a2*T+a3*P;
Y为决断值;a1为设定的第一权重,a2为设定的第二权重,a3为设定的第三权重;
K用于标识映射页的命中次数;T用于标识映射页在所述缓存中的时长;P用于标识后续命中概率,所述后续命中概率根据该映射页连续命中次数和预设规则得出。
3.如权利要求2所述的缓存替换方法,其特征在于,所述方法还包括:
当对所述硬盘进行读写操作时,对于每个映射页,根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P。
4.如权利要求3所述的缓存替换方法,其特征在于,所述根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P包括:
如果本次读写操作命中该映射页并且该映射页连续命中的次数大于或者等于设定的第一阈值,则K值更新为K+m1,T值更新为T+m2,P值更新为m3;
如果本次读写操作命中该映射页并且该映射页连续命中的次数小于设定的第一阈值,或者,本次读写操作命中该映射页并且该映射页未连续命中,则K值更新为K+m1,T值更新为T+m2,P值保持不变;
其中,m1、m2和m3均为正数。
5.如权利要求4所述的缓存替换方法,其特征在于,所述根据该映射页的命中状态更新以下内容中的一个或者多个:该映射页对应的K、T和P还包括:
如果本次读写操作未命中该映射页并且当前P值为0,则K值保持不变,T值更新为T+m2,P值保持不变;
如果本次读写操作未命中该映射页并且当前P值大于0,则K值保持不变,T值更新为T+1,P值更新为max(P-m4,0);
其中,m4为小于m3的正数。
6.如权利要求2至5任一所述的缓存替换方法,其特征在于,所述方法还包括:
根据设定时间长度的第一周期内读写操作命中缓存映射页的次数和未命中缓存映射页的次数更新所述a1。
7.如权利要求6所述的缓存替换方法,其特征在于,所述根据设定时间长度的周期内读写操作命中缓存的次数和未命中缓存的次数更新所述a1包括:
根据设定时间长度的周期内所有读写操作命中缓存的总次数和未命中缓存的总次数得出本周期的第一命中率;
计算所述第一命中率和设定的期望命中率之间的差值,得到本周期的命中率误差;根据本周期的命中率误差和上一周期的命中率误差确定本周期的误差变化率;
对所述命中率误差和所述误差变化率进行模糊化处理,得出更新后的a1,以在下一个第一周期中根据更新后的a1计算决断值。
8.如权利要求7所述的缓存替换方法,其特征在于,所述对所述命中率误差和所述误差变化率进行模糊化处理,得出更新后的a1包括:
根据所述命中率误差得出模糊化处理后的命中率误差,根据所述误差变化率得出模糊化处理后的误差变化率;
根据所述模糊化处理后的命中率误差和模糊化处理后的误差变化率,从预先设定的模糊控制规则表中确定模糊化后的a1,标记为a1f:
将a1更新为a1f*r+a1,其中,r为设定的正数。
9.一种缓存替换装置,设置于固态硬盘,包括:存储器和处理器;其特征在于:
所述存储器,用于保存用于缓存替换的程序;
所述处理器,用于读取所述用于缓存替换的程序,执行如权利要求1至8任一所述的方法。
10.一种非瞬态计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8中任一所述的缓存替换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310009051.XA CN116048402A (zh) | 2023-01-04 | 2023-01-04 | 一种缓存替换方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310009051.XA CN116048402A (zh) | 2023-01-04 | 2023-01-04 | 一种缓存替换方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048402A true CN116048402A (zh) | 2023-05-02 |
Family
ID=86126926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310009051.XA Pending CN116048402A (zh) | 2023-01-04 | 2023-01-04 | 一种缓存替换方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048402A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116360711A (zh) * | 2023-06-02 | 2023-06-30 | 杭州沃趣科技股份有限公司 | 一种分布式存储处理方法、装置、设备及介质 |
-
2023
- 2023-01-04 CN CN202310009051.XA patent/CN116048402A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116360711A (zh) * | 2023-06-02 | 2023-06-30 | 杭州沃趣科技股份有限公司 | 一种分布式存储处理方法、装置、设备及介质 |
CN116360711B (zh) * | 2023-06-02 | 2023-08-11 | 杭州沃趣科技股份有限公司 | 一种分布式存储处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3210121B1 (en) | Cache optimization technique for large working data sets | |
US10241919B2 (en) | Data caching method and computer system | |
US6393525B1 (en) | Least recently used replacement method with protection | |
US20170235681A1 (en) | Memory system and control method of the same | |
JP6613375B2 (ja) | プロファイリングキャッシュ置換 | |
KR101443231B1 (ko) | 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템 | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20110231598A1 (en) | Memory system and controller | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
JP2011530133A (ja) | キャッシュコンテンツの記憶管理 | |
US20120144109A1 (en) | Dynamic adjustment of read/write ratio of a disk cache | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN110532200B (zh) | 一种基于混合内存架构的内存系统 | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN116048402A (zh) | 一种缓存替换方法、装置及存储介质 | |
CN108459972B (zh) | 一种多通道固态硬盘的高效缓存管理设计方法 | |
CN109002400B (zh) | 一种内容感知型计算机缓存管理系统及方法 | |
US9846647B2 (en) | Cache device and control method threreof | |
CN111506517B (zh) | 一种基于访问局部性的闪存页级地址映射方法及其系统 | |
CN111651120B (zh) | 预取数据的方法及装置 | |
US9268700B2 (en) | Cache control device, cache control method, and program thereof | |
US11080195B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
CN111758086B (zh) | 用于ssd的映射表的刷新方法 | |
US20210390054A1 (en) | Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information | |
JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 |
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 |