CN109783027B - 命令存储管理方法、装置、计算机设备及存储介质 - Google Patents

命令存储管理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109783027B
CN109783027B CN201910037169.7A CN201910037169A CN109783027B CN 109783027 B CN109783027 B CN 109783027B CN 201910037169 A CN201910037169 A CN 201910037169A CN 109783027 B CN109783027 B CN 109783027B
Authority
CN
China
Prior art keywords
command
low
level buffer
counter
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.)
Active
Application number
CN201910037169.7A
Other languages
English (en)
Other versions
CN109783027A (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.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
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 Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201910037169.7A priority Critical patent/CN109783027B/zh
Publication of CN109783027A publication Critical patent/CN109783027A/zh
Application granted granted Critical
Publication of CN109783027B publication Critical patent/CN109783027B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及命令存储管理方法、装置、计算机设备及存储介质,该方法包括获取新命令;判断缓冲区是否存储有命令;若否,将新命令存储于低级缓冲区内的第一个位置;将其计数器内的数值叠加固定值;若是,判断新命令是否与低级缓冲区内的命令命中;若是,获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;判断统计次数值是否超过阈值;若否,则将新命令存储于低级缓冲区内;对低级缓冲区计数器内的数值及命令进行更新处理;设置定时器获取计数器统计的时间;达到设定时间时将计数器右移;若不命中且低级缓冲区无空位,根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器。本发明实现提高高速缓冲存储器的利用效率。

Description

命令存储管理方法、装置、计算机设备及存储介质
技术领域
本发明涉及固态硬盘,更具体地说是指命令存储管理方法、装置、计算机设备及存储介质。
背景技术
当前用户对SSD(固态硬盘,Solid State Drives)的性能要求越来越高,半导体特性决定了Nand颗粒的读写速度比较慢,而且读写次数有寿命限制的。随着SSD的容量越来越大,SSD都会将频繁读写的数据存储在SSD高速缓冲存储器中而不是直接存入Nand,减少了对Nand的频繁读写,既提高了***的读写性能,又延长了Nand的使用寿命。高速缓冲存储器的管理策略就非常重要,高速缓冲存储器的利用率越高,Nand读写次数就会减少,***的性能就会越高,Nand的寿命也会延长。
传统的SSD高速缓冲存储器的管理策略主要对SSD高速缓冲存储器中每个数据块的访问热度进行实时跟踪,根据访问热度对数据块进行热数据锁定和冷数据驱除,整个流程如下:当新来的命令的逻辑块地址和高速缓冲存储器里的某个数据相同,则该命令命中了,将该命令存入高速缓冲存储器,并且该命令对应的数据置为最热的数据,优先级最高,原来优先级比它高的数据依次后移;每次命令命中都是重复上述的步骤,当高速缓冲存储器满了,就将末端最冷的数据移出高速缓冲存储器,也就是采用LRU(最近最久未使用,Least Recently Used)保证***最近访问数据的命中率,以提升***性能,但是这种方式只代表最新的访问时间,对访问次数没有统计,这样对数据的热程度的判别只有时间的最新,没有任何命中次数,这个判别标准有一定的缺陷。传统LFU(最不常用,LeastFrequently Used)算法根据数据的历史访问频率来淘汰数据的算法可以避免这个问题,用统计命中的次数来做标准,但这样统计的旧的命中的次数一直在里面,不能体现最近时间里被使用的频率,对SSD这样的大数据量,而高速缓冲存储器的空间又非常小的应用场景下,更不合适,因此传统SSD的高速缓冲存储器都使用LRU算法,这对高速缓冲存储器的利用效率有很大的影响。
上述的两种方式均存在增加控制器的处理负担,影响整个***的性能,且降低了高速缓冲存储器的利用效率。
因此,有必要设计一种方法,以实现提高高速缓冲存储器的利用效率。
发明内容
本发明的目的在于克服现有技术的缺陷,提供命令存储管理方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:命令存储管理方法,包括:
设置低级缓冲区和高级缓冲区;
对低级缓冲区内每个位设置计数器;
获取新命令;
判断低级缓冲区内是否已存储有命令;
若低级缓冲区内不是已存储有命令,则将新命令存储于低级缓冲区内的第一个位置;
将第一个位置的计数器内的数值置为一个固定值,并返回至所述获取新命令的步骤;
若低级缓冲区内已存储有命令,则判断所述新命令是否与低级缓冲区内的命令命中;
若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
判断所述统计次数值是否超过阈值;
若所述统计次数值不超过阈值,则将新命令存储于低级缓冲区;
对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
设置定时器,获取计数器统计的时间;
判断所述时间是否达到设定时间;
若达到设定时间,则将每个计数器右移;
若不命中,则判断低级缓冲区内是否有空位置;
若低级缓冲区内有空位置,则将新命令存储于低级缓冲区内的空位置,并返回至所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤;
若低级缓冲区内没有空位置,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回至所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤。
其进一步技术方案为:所述判断所述新命令是否与低级缓冲区内的命令命中,包括:
获取所述新命令对应的逻辑块地址;
判断所述新命令对应的逻辑块地址是否与低级缓冲区内已存储的命令的逻辑块地址一致;
若是,则所述新命令与低级缓冲区内的命令命中;
若否,则所述新命令与低级缓冲区内的命令不命中。
其进一步技术方案为:所述将新命令存储于低级缓冲区,包括:
将新命令覆盖与新命令命中的低级缓冲区内的命令;
对与新命令命中的低级缓冲区内的命令所在位置的计数器内的数值进行叠加一个固定值。
其进一步技术方案为:所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理,包括:
判断新命令所在低级缓冲区内的位置的计数器内的数值是否大于前一个位置的计数器内的数值;
若新命令所在低级缓冲区内的位置的计数器内的数值大于前一个位置的计数器内的数值,则将新命令与前一个位置所存储的命令进行互换;
将新命令所在低级缓冲区内的位置的计数器内的数值与前一个位置的计数器内的数值进行互换;
判断所述新命令所在的位置是否为低级缓冲区内的第一个位置;
若所述新命令所在的位置不是低级缓冲区内的第一个位置,则返回至所述将新命令与前一个位置所存储的命令进行互换的步骤;
若所述新命令所在的位置为低级缓冲区内的第一个位置,则判断新命令所在低级缓冲区内的位置的计数器内的数值是否不大于前一个位置的计数器内的数值;
若新命令所在低级缓冲区内的位置的计数器内的数值大于前一个位置的计数器内的数值,则返回至所述将新命令与前一个位置所存储的命令进行互换的步骤。
其进一步技术方案为:所述将新命令存储于低级缓冲区内的空位置,包括:
将所述新命令存入低级缓冲区内的最后一个位置;
将低级缓冲区内的最后一个位置所对应的计数器内的数值置为固定值。
其进一步技术方案为:所述根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,包括:
判断所述低级缓冲区内的最后一个位置的计数器内的数值是否大于固定值;
若否,则将低级缓冲区内的最后一个位置所存储的命令移出低级缓冲区;
将新命令存入所述低级缓冲区内最后一个位置;
对与新命令存储的低级缓冲区内所在位置的计数器内的数值进行叠加一个固定值。
本发明还提供了命令存储管理装置,包括:
缓冲区设定单元,用于设置低级缓冲区和高级缓冲区;
计数器设定单元,用于对低级缓冲区内每个位设置计数器;
新命令获取单元,用于获取新命令;
存储情况判断单元,用于判断低级缓冲区内是否已存储有命令;
第一存储单元,用于若低级缓冲区内不是已存储有命令,则将新命令存储于低级缓冲区内的第一个位置;
第一叠加单元,用于将第一个位置的计数器内的数值置为一个固定值,并返回所述获取新命令;
命中判断单元,用于若低级缓冲区内已存储有命令,则判断所述新命令是否与低级缓冲区内的命令命中;
数值获取单元,用于若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
阈值判断单元,用于判断所述统计次数值是否超过阈值;
命令更新单元,用于若所述统计次数值不超过阈值,则将新命令存储于低级缓冲区;
数值更新单元,用于对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
计时单元,用于设置定时器,获取计数器统计的时间;
时间判断单元,用于判断所述时间是否达到设定时间;
计数器右移单元,用于若达到设定时间,则将每个计数器右移;
空位判断单元,用于若不命中,则判断低级缓冲区内是否有空位置;
空位存储单元,用于若低级缓冲区内有空位置,则将新命令存储于低级缓冲区内的空位置,并返回至所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤;
第二存储单元,用于若低级缓冲区内没有空位置,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回对所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤。
其进一步技术方案为:所述命中判断单元包括:
地址获取子单元,用于获取所述新命令对应的逻辑块地址;
一致性判断子单元,用于判断所述新命令对应的逻辑块地址是否与缓冲区内已存储的命令的逻辑块地址一致;若是,则所述新命令与低级缓冲区内的命令命中;若否,则所述新命令与低级缓冲区内的命令不命中。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过设置缓冲区,对缓冲区内的每个位置设置计数器统计对应位置所存储的命令的命中次数,且设置阈值,将命中次数超过阈值的新命令存储到高速缓冲存储器内,既考量了命令命中次数,又考量了命令命中的时间,两个指标的结合更好地为高速缓冲存储器的管理提供更好的策略,提高了高速缓冲存储器的利用效率,可以更好的减少对Nand的读写次数,既可以提高读写速度,又延长了Nand的寿命。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的命令存储管理方法的流程示意图;
图2为本发明实施例提供的命令存储管理装置的示意性框图;
图3为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的命令存储管理方法的示意性流程图。该命令存储管理方法应用于带有固态硬盘的服务器内,在执行来自终端对SSD读写命令时,对命令的存储进行管理,从而达到对高速缓冲存储器的优化管理。
图1是本发明实施例提供的命令存储管理方法的流程示意图。如图2所示,该方法包括以下步骤S110至S150。
S110、设置低级缓冲区和高级缓冲区。
在本实施例中,低级缓冲区是一个用于存放未命中的命令的缓存候选缓冲区;而高级缓冲区指代的是高速缓冲存储器。
S120、对低级缓冲区内每个位设置计数器。
在本实施例中,计数器是一个用于统计对应位置上存储的命令命中的次数。
S130、获取新命令。
在本实施例中,终端发起对SSD执行读写命令且高速缓冲存储器没有命中的命令称为新命令,一般会在高速缓冲存储器的每个位置设置一个计数器,进行每个位置所存储的命令的命中次数的统计,当命中次数在设定时间内最小,则移除该命令,使其成为新命令,按照下述步骤处理后,可再次进入高速缓冲存储器内进行存储。
S140、判断所述低级缓冲区内是否已存储有命令。
在本实施例中,判断低级缓冲区内是否已存储有命令是为了辨别是否能直接存储新命令。
S150、若低级缓冲区内不是已存储有命令,则将新命令存储于低级缓冲区内的第一个位置;
S160、将第一个位置的计数器内的数值置为一个固定值,并返回所述获取新命令。
每当新来一个没有与高级缓冲区所存储的命令命中的命令P0,如果低级缓冲区里还没有存储命令,直接存入低级缓冲区中第一个位置,并标记tag0,这个tag0对应的计数器内的数值就会加一个固定值b,该固定值b是一个衰减系数的分子。
S170、若低级缓冲区内已存储有命令,则判断所述新命令是否与低级缓冲区内的命令命中。
当低级缓冲区内存储有命令,则需要进行新命令的命中情况的判定,以实现对新命令存储的对应处理。
在一实施例中,上述的步骤S170可包括步骤S171~S174。
S171、获取所述新命令对应的逻辑块地址;
S172、判断所述新命令对应的逻辑块地址是否与低级缓冲区内已存储的命令的逻辑块地址一致;
S173、若是,则所述新命令与低级缓冲区内的命令命中;
S174、若否,则所述新命令与低级缓冲区内的命令不命中。
当再来一个新命令P1,低级缓冲区里已有命令P0,新命令P1的LBA(逻辑块地址,Logic Block Address)如果和低级缓冲区里的命令P0的LBA地址相同,就是新命令命中了;反之则新命令不命中。
S180、若命中,则获取每个位置的计数器内的数值,以得到统计次数值;
在本实施例中,统计次数值是指每个位置所存储命令的命中次数。
S190、判断所述统计次数值是否超过阈值;
S200、若所述统计次数值超过阈值,则将新命令移出低级缓冲区,并移至高级缓冲区。
当低级缓冲区中的命令命中次数多了超过了门限值,就可以置入高级缓冲区,这样提高了进入高速缓冲存储器的门槛,另外,为了更好地提高高速缓冲存储器的利用效率,阈值可以自适应设置,比如高级缓冲区里面空位置的比较多,阈值就可以降低;高级缓冲区里面空位置的比较少,阈值就可以提高,可以设置多档的阈值供选择。
S210、若所述统计次数值不超过阈值,则将新命令存储于低级缓冲区内。
在一实施例中,上述的步骤S210可包括步骤S211~S212。
S221、将新命令覆盖与新命令命中的低级缓冲区内的命令;
S212、对与新命令命中的低级缓冲区内的命令所在位置的计数器内的数值进行叠加一个固定值。
具体地,当再新来一个新命令P1,低级缓冲区里已有命令P0,则第一个位置tag0对应的计数器的数值就会加b,命令P0被新命令P1覆盖,也就是第一个位置的命令被新命令覆盖。
另外,当再新来一个新命令P1,低级缓冲区里已有若干个命令P0~Pn;比如位置tagn内所存储的命令Pk的LBA地址与新命令P1的LBA地址相同,则该位置tagn对应的计数器数值就会加b,而命令Pk被新命令P1覆盖,命令Pk的数据也被新新命令P1的数据覆盖了,不需要发给Nand了。
使用了LFU和LRU,实现热数据的程度判别,既要统计一定时间内的命中频率,又要考虑数据的时间性,提高了高速缓冲存储器的利用效率,实时对命中的命令所在位置的计数器数值进行更新,高速缓冲存储器里每个位置的命令都有一个寄存器做计数器统计命中的次数,既有时间的权重,也有次数的权重,两个指标的结合更好地为高速缓冲存储器的管理提供更好的策略。
S220、对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理。
在一实施例中,上述的步骤S220可包括步骤S221~S225。
S221、判断新命令所在低级缓冲区内的位置的计数器内的数值是否大于前一个位置的计数器内的数值;
S222、若新命令所在低级缓冲区内的位置的计数器内的数值大于前一个位置的计数器内的数值,则将新命令与前一个位置所存储的命令进行互换;
S223、将新命令所在低级缓冲区内的位置的计数器内的数值与前一个位置的计数器内的数值进行互换;
S224、判断所述新命令所在的位置是否为低级缓冲区内的第一个位置;
若所述新命令所在的位置不是低级缓冲区内的第一个位置,则返回所述S222;
S225、若所述新命令所在的位置为低级缓冲区内的第一个位置,则判断新命令所在低级缓冲区内的位置的计数器内的数值是否不大于前一个位置的计数器内的数值;
若否,则返回所述S222。
上述的步骤具体是为了对新命令在低级缓冲区内的存储位置进行调整,保持其在低级缓冲区内的第一个位置,而低级缓冲区内的位置是从所存储数据的热程度依次降低的顺序排序的,这样子的排序从时间的角度体现了对命令的热程度的判别,而计数器的数值则从命中次数对命令的热程度进行判别,两个指标结合可提高高速缓冲存储器的利用效率。该排序方式也适用于高速缓冲存储器里面数据的排队管理。
举个例子:更新后的新命令所存储的位置对应的计数器数值Counter n与前面的Counter(n-1)比较,Countern>Counter(n-1),就将新命令所存储的位置tagn的命令P1与tag(n-1)的命令Pn互换,Countern与Counter(n-1)的数值也要互换;如果n-1不是0,即n-1不是队列的头,tag(n-1)不是第一个位置,新的Counter(n-1)继续与前面的Counter(n-2)比较,重复上面的过程,直到Counter不大于前面的位置的计数器数值,从而将新命令存储到第一个位置,且第一个位置的计数器数值也更新为新命令起初存储所在位置对应的计数器数值,以便将热数据存储至高速缓冲存储器内,对高速缓冲存储器内部数据的管理也提出了新的排序策略,提高进入高速缓冲存储器的数据的门槛,提高了高速缓冲存储器的利用效率,更好的减少对Nand的读写次数,既可以提高读写速度,又延长了Nand的使用寿命。
S230、设置定时器,获取计数器统计的时间;
S240、判断所述时间是否达到设定时间;
S250、若达到设定时间,则将每个计数器右移;
若未达到设定时间,则返回步骤S130。
设置定时器,计算计数器统计的时间,到一定时间后,每个计数器的数值都要进行衰减,衰减系数可以任意设置,比如7/8,13/16,为了更容易实现,分母用2的整数次幂,每次衰减用移位就可以实现;每次命中,增加的次数就不是1,而是衰减系数的分子;定时器在设定的时间到达后,每个计数器都会被右移a位,做2a的衰减。
将没有被高速缓冲存储器命中的命令保存在缓冲区中,当缓冲区中的命令命中次数多了超过了门限值,就可以置入高速缓冲存储器,这样提高了进入高速缓冲存储器的门槛。这就是LFU算法,但LFU统计次数的时间太长不利于体现最近的时间段内命中情况,因此置一个定时器,到达一定时间后,缓冲区中的每个命令对应的计数器的次数都要衰减一点这样最近的命令的命中次数加权,也就是将LFU和LRU算法的结合起来,提高了高速缓冲存储器的利用效率。
S260、若不命中,则判断低级缓冲区内是否有空位置。
在本实施例中,若新命令不命中,则需要看低级缓冲区内是否有空位置可存储该新命令。
S270、若是,则将新命令存储于低级缓冲区内的空位置,并返回所述步骤S220。
在一实施例中,上述的步骤S270可包括步骤S271~S272。
S271、将所述新命令存入低级缓冲区内的最后一个位置;
S272、将低级缓冲区内的最后一个位置所对应的计数器内的数值置为固定值。
一般最后一个位置是命中次数最少的位置,将新命令存储在该位置,再重复上述的S210,便可实现对缓冲区内每个位置按照命中次数从高到低的顺序进行排序。
S280、若否,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回步骤S220。
在一实施例中,上述的步骤S280可包括步骤S281~S285。
S281、判断所述低级缓冲区内的最后一个位置的计数器内的数值是否大于固定值;
S282、若否,则将低级缓冲区内的最后一个位置所存储的命令移出低级缓冲区;
S283、将新命令存入所述低级缓冲区内最后一个位置;
S284、对与新命令存储的低级缓冲区内所在位置的计数器内的数值进行叠加一个固定值;
S285、若是,则新命令进入高级缓冲区。
如果没有空位置,队尾最后一个位置的计数器数值大于b,那么新来的命令不进入低级缓冲区,如果队尾最后一个位置的计数器数值不大于b,该最后一个位置所存储的命令移出低级缓冲区,新命令存入队尾最后一个位置,且最后一个位置的计数器数值置b,再重复上述的S210,便可实现对低级缓冲区内每个位置按照命中次数从高到低的顺序进行排序。
针对SSD的高速缓冲存储器的管理提出将LFU和LRU的算法结合起来,考虑实时处理的可行性;对没有在高速缓冲存储器命中的数据设置了低级缓冲区和高级缓冲区进行管理,可以提高进入高速缓冲存储器的数据的门槛,提高了高速缓冲存储器的利用效率。在高速缓冲存储器和缓冲区里每个命令存储的位置都对应一个寄存器作为计数器,每次命中都加1,进行命中的次数统计,可以设置阈值,每当统计的命中次数超过阈值,该命令就可以移出缓冲区,存入高速缓冲存储器。为了更好地提高高速缓冲存储器的利用效率,阈值可以自适应设置,比如高级缓冲区里面空的比较多,阈值就可以降低;高级缓冲区里面空的比较少,阈值就可以提高,可以设置多档的阈值供选择。可以更好的减少对Nand的读写次数,既可以提高读写速度,又延长了Nand的寿命。
上述的LFU算法根据数据的历史访问频率来淘汰数据,其核心思想是如果数据过去被访问多次,那么将来被访问的频率也更高,体现了访问频率,对于LRU算法而言,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小,只体现了访问的最近的程度。
上述的命令存储管理方法,通过设置低级缓冲区和高级缓冲区,对低级缓冲区内的每个位置设置计数器统计对应位置所存储的命令的命中次数,且设置阈值,将命中次数超过阈值的新命令存储到高级缓冲区内,既考量了命令命中次数,又考量了命令命中的时间,两个指标的结合更好地为高速缓冲存储器的管理提供更好的策略,提高了高速缓冲存储器的利用效率,可以更好的减少对Nand的读写次数,既可以提高读写速度,又延长了Nand的寿命。
图2是本发明实施例提供的一种命令存储管理装置300的示意性框图。如图2所示,对应于以上命令存储管理方法,本发明还提供一种命令存储管理装置300。该命令存储管理装置300包括用于执行上述命令存储管理方法的单元,该装置可以被配置于服务器中。
具体地,请参阅图2,该命令存储管理装置300包括:
缓冲区设定单元301,用于设置低级缓冲区和高级缓冲区;
计数器设定单元302,用于对低级缓冲区内每个位设置计数器;
新命令获取单元303,用于获取新命令;
存储情况判断单元304,用于判断低级缓冲区内是否已存储有命令;
第一存储单元305,用于若低级缓冲区内不是已存储有命令,则将新命令存储于低级缓冲区内的第一个位置;
第一叠加单元306,用于将第一个位置的计数器内的数值置为一个固定值,并返回所述获取新命令;
命中判断单元307,用于若低级缓冲区内已存储有命令,则判断所述新命令是否与低级缓冲区内的命令命中;
数值获取单元308,用于若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
阈值判断单元309,用于判断所述统计次数值是否超过阈值;
命令更新单元310,用于若所述统计次数值不超过阈值,则将新命令存储于低级缓冲区;
数值更新单元311,用于对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
计时单元312,用于设置定时器,获取计数器统计的时间;
时间判断单元313,用于判断所述时间是否达到设定时间;
计数器右移单元314,用于若达到设定时间,则将每个计数器右移;
空位判断单元315,用于若不命中,则判断低级缓冲区内是否有空位置;
空位存储单元316,用于若低级缓冲区内有空位置,则将新命令存储于低级缓冲区内的空位置,并返回所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
第二存储单元317,用于若低级缓冲区内没有空位置,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回对所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理。
在一实施例中,所述命中判断单元307包括:
地址获取子单元,用于获取所述新命令对应的逻辑块地址;
一致性判断子单元,用于判断所述新命令对应的逻辑块地址是否与低级缓冲区内已存储的命令的逻辑块地址一致;若是,则所述新命令与低级缓冲区内的命令命中;若否,则所述新命令与低级缓冲区内的命令不命中。
在一实施例中,所述命令更新单元310包括:
覆盖子单元,用于将新命令覆盖与新命令命中的低级缓冲区内的命令;
数值叠加子单元,用于对与新命令命中的低级缓冲区内的命令所在位置的计数器内的数值进行叠加一个固定值。
在一实施例中,所述数值更新单元311包括:
数值判断子单元,用于判断新命令所在低级缓冲区内的位置的计数器内的数值是否大于前一个位置的计数器内的数值;
命令互换子单元,用于若是,则将新命令与前一个位置所存储的命令进行互换;
数值互换子单元,用于将新命令所在低级缓冲区内的位置的计数器内的数值与前一个位置的计数器内的数值进行互换;
位置判断子单元,用于判断所述新命令所在的位置是否为低级缓冲区内的第一个位置;若否,则返回所述将新命令与前一个位置所存储的命令进行互换;
第一数值判断子单元,用于若是,则判断新命令所在低级缓冲区内的位置的计数器内的数值是否不大于前一个位置的计数器内的数值;若否,则返回所述将新命令与前一个位置所存储的命令进行互换。
在一实施例中,所述空位存储单元316包括:
队尾处理子单元,用于将所述新命令存入低级缓冲区内的最后一个位置;
第一数值设置子单元,用于将低级缓冲区内的最后一个位置所对应的计数器内的数值置为固定值。
在一实施例中,所述第二存储单元317包括:
第二数值判断子单元,用于判断所述低级缓冲区内的最后一个位置的计数器内的数值是否大于固定值;
移出子单元,用于若否,则将低级缓冲区内的最后一个位置所存储的命令移出低级缓冲区;
队尾存入子单元,用于将新命令存入所述低级缓冲区内最后一个位置;
第二数值设置子单元,用于对与新命令存储的低级缓冲区内所在位置的计数器内的数值进行叠加一个固定值。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述命令存储管理装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述命令存储管理装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是带有固态硬盘的服务器,其中,带有固态硬盘的服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图3,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种命令存储管理方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种命令存储管理方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
设置低级缓冲区和高级缓冲区;
对低级缓冲区内每个位设置计数器;
获取新命令;
判断低级缓冲区内是否已存储有命令;
若否,则将新命令存储于低级缓冲区内的第一个位置;
将第一个位置的计数器内的数值置为一个固定值,并返回所述获取新命令;
若是,则判断所述新命令是否与低级缓冲区内的命令命中;
若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
判断所述统计次数值是否超过阈值;
若否,则将新命令存储于低级缓冲区;
对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
设置定时器,获取计数器统计的时间;
判断所述时间是否达到设定时间;
若达到设定时间,则将每个计数器右移;
若不命中,则判断低级缓冲区内是否有空位置;
若是,则将新命令存储于低级缓冲区内的空位置,并返回所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
若否,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回对所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理。
在一实施例中,处理器502在实现所述判断所述新命令是否与低级缓冲区内的命令命中步骤时,具体实现如下步骤:
获取所述新命令对应的逻辑块地址;
判断所述新命令对应的逻辑块地址是否与低级缓冲区内已存储的命令的逻辑块地址一致;
若是,则所述新命令与低级缓冲区内的命令命中;
若否,则所述新命令与低级缓冲区内的命令不命中。
在一实施例中,处理器502在实现所述将新命令存储于低级缓冲区步骤时,具体实现如下步骤:
将新命令覆盖与新命令命中的低级缓冲区内的命令;
对与新命令命中的低级缓冲区内的命令所在位置的计数器内的数值进行叠加一个固定值。
在一实施例中,处理器502在实现所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理步骤时,具体实现如下步骤:
判断新命令所在低级缓冲区内的位置的计数器内的数值是否大于前一个位置的计数器内的数值;
若是,则将新命令与前一个位置所存储的命令进行互换;
将新命令所在低级缓冲区内的位置的计数器内的数值与前一个位置的计数器内的数值进行互换;
判断所述新命令所在的位置是否为低级缓冲区内的第一个位置;
若否,则返回所述将新命令与前一个位置所存储的命令进行互换;
若是,则判断新命令所在低级缓冲区内的位置的计数器内的数值是否不大于前一个位置的计数器内的数值;
若否,则返回所述将新命令与前一个位置所存储的命令进行互换。
在一实施例中,处理器502在实现所述将新命令存储于低级缓冲区内的空位置步骤时,具体实现如下步骤:
将所述新命令存入低级缓冲区内的最后一个位置;
将低级缓冲区内的最后一个位置所对应的计数器内的数值置为固定值。
在一实施例中,处理器502在实现所述根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器步骤时,具体实现如下步骤:
判断所述低级缓冲区内的最后一个位置的计数器内的数值是否大于固定值;
若否,则将低级缓冲区内的最后一个位置所存储的命令移出低级缓冲区;
将新命令存入所述低级缓冲区内最后一个位置;
对与新命令存储的低级缓冲区内所在位置的计数器内的数值进行叠加一个固定值。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
设置低级缓冲区和高级缓冲区;
对低级缓冲区内每个位设置计数器;
获取新命令;
判断低级缓冲区内是否已存储有命令;
若否,则将新命令存储于低级缓冲区内的第一个位置;
将第一个位置的计数器内的数值置为一个固定值,并返回所述获取新命令;
若是,则判断所述新命令是否与低级缓冲区内的命令命中;
若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
判断所述统计次数值是否超过阈值;
若否,则将新命令存储于低级缓冲区;
对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
设置定时器,获取计数器统计的时间;
判断所述时间是否达到设定时间;
若达到设定时间,则将每个计数器右移;
若不命中,则判断低级缓冲区内是否有空位置;
若是,则将新命令存储于低级缓冲区内的空位置,并返回所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
若否,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回对所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理。
在一实施例中,所述处理器在执行所述判断所述新命令是否与低级缓冲区内的命令命中步骤时,具体实现如下步骤:
获取所述新命令对应的逻辑块地址;
判断所述新命令对应的逻辑块地址是否与低级缓冲区内已存储的命令的逻辑块地址一致;
若是,则所述新命令与低级缓冲区内的命令命中;
若否,则所述新命令与低级缓冲区内的命令不命中。
在一实施例中,所述处理器在执行所述将新命令存储于低级缓冲区步骤时,具体实现如下步骤:
将新命令覆盖与新命令命中的低级缓冲区内的命令;
对与新命令命中的低级缓冲区内的命令所在位置的计数器内的数值进行叠加一个固定值。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理步骤时,具体实现如下步骤:
判断新命令所在低级缓冲区内的位置的计数器内的数值是否大于前一个位置的计数器内的数值;
若是,则将新命令与前一个位置所存储的命令进行互换;
将新命令所在低级缓冲区内的位置的计数器内的数值与前一个位置的计数器内的数值进行互换;
判断所述新命令所在的位置是否为低级缓冲区内的第一个位置;
若否,则返回所述将新命令与前一个位置所存储的命令进行互换;
若是,则判断新命令所在低级缓冲区内的位置的计数器内的数值是否不大于前一个位置的计数器内的数值;
若否,则返回所述将新命令与前一个位置所存储的命令进行互换。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将新命令存储于低级缓冲区内的空位置步骤时,具体实现如下步骤:
将所述新命令存入低级缓冲区内的最后一个位置;
将低级缓冲区内的最后一个位置所对应的计数器内的数值置为固定值。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器步骤时,具体实现如下步骤:
判断所述低级缓冲区内的最后一个位置的计数器内的数值是否大于固定值;
若否,则将低级缓冲区内的最后一个位置所存储的命令移出低级缓冲区;
将新命令存入所述低级缓冲区内最后一个位置;
对与新命令存储的低级缓冲区内所在位置的计数器内的数值进行叠加一个固定值。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.命令存储管理方法,其特征在于,包括:
设置低级缓冲区和高级缓冲区;
对低级缓冲区内每个位设置计数器;
获取新命令;
判断低级缓冲区内是否已存储有命令;
若低级缓冲区内不是已存储有命令,则将新命令存储于低级缓冲区内的第一个位置;
将第一个位置的计数器内的数值置为一个固定值,并返回至所述获取新命令的步骤;
若低级缓冲区内已存储有命令,则判断所述新命令是否与低级缓冲区内的命令命中;
若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
判断所述统计次数值是否超过阈值;
若所述统计次数值不超过阈值,则将新命令存储于低级缓冲区;
对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
设置定时器,获取计数器统计的时间;
判断所述时间是否达到设定时间;
若达到设定时间,则将每个计数器右移;
若不命中,则判断低级缓冲区内是否有空位置;
若低级缓冲区内有空位置,则将新命令存储于低级缓冲区内的空位置,并返回至所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤;
若低级缓冲区内没有空位置,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回至所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤。
2.根据权利要求1所述的命令存储管理方法,其特征在于,所述判断所述新命令是否与低级缓冲区内的命令命中,包括:
获取所述新命令对应的逻辑块地址;
判断所述新命令对应的逻辑块地址是否与低级缓冲区内已存储的命令的逻辑块地址一致;
若是,则所述新命令与低级缓冲区内的命令命中;
若否,则所述新命令与低级缓冲区内的命令不命中。
3.根据权利要求1所述的命令存储管理方法,其特征在于,所述将新命令存储于低级缓冲区,包括:
将新命令覆盖与新命令命中的低级缓冲区内的命令;
对与新命令命中的低级缓冲区内的命令所在位置的计数器内的数值进行叠加一个固定值。
4.根据权利要求3所述的命令存储管理方法,其特征在于,所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理,包括:
判断新命令所在低级缓冲区内的位置的计数器内的数值是否大于前一个位置的计数器内的数值;
若新命令所在低级缓冲区内的位置的计数器内的数值大于前一个位置的计数器内的数值,则将新命令与前一个位置所存储的命令进行互换;
将新命令所在低级缓冲区内的位置的计数器内的数值与前一个位置的计数器内的数值进行互换;
判断所述新命令所在的位置是否为低级缓冲区内的第一个位置;
若所述新命令所在的位置不是低级缓冲区内的第一个位置,则返回至所述将新命令与前一个位置所存储的命令进行互换的步骤;
若所述新命令所在的位置为低级缓冲区内的第一个位置,则判断新命令所在低级缓冲区内的位置的计数器内的数值是否不大于前一个位置的计数器内的数值;
若新命令所在低级缓冲区内的位置的计数器内的数值大于前一个位置的计数器内的数值,则返回至所述将新命令与前一个位置所存储的命令进行互换的步骤。
5.根据权利要求1所述的命令存储管理方法,其特征在于,所述将新命令存储于低级缓冲区内的空位置,包括:
将所述新命令存入低级缓冲区内的最后一个位置;
将低级缓冲区内的最后一个位置所对应的计数器内的数值置为固定值。
6.根据权利要求1所述的命令存储管理方法,其特征在于,所述根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,包括:
判断所述低级缓冲区内的最后一个位置的计数器内的数值是否大于固定值;
若否,则将低级缓冲区内的最后一个位置所存储的命令移出低级缓冲区;
将新命令存入所述低级缓冲区内最后一个位置;
对与新命令存储的低级缓冲区内所在位置的计数器内的数值进行叠加一个固定值。
7.命令存储管理装置,其特征在于,包括:
缓冲区设定单元,用于设置低级缓冲区和高级缓冲区;
计数器设定单元,用于对低级缓冲区内每个位设置计数器;
新命令获取单元,用于获取新命令;
存储情况判断单元,用于判断低级缓冲区内是否已存储有命令;
第一存储单元,用于若低级缓冲区内不是已存储有命令,则将新命令存储于低级缓冲区内的第一个位置;
第一叠加单元,用于将第一个位置的计数器内的数值置为一个固定值,并返回所述获取新命令;
命中判断单元,用于若低级缓冲区内已存储有命令,则判断所述新命令是否与低级缓冲区内的命令命中;
数值获取单元,用于若命中,则获取命中位置的计数器内的数值并叠加固定值,以得到统计次数值;
阈值判断单元,用于判断所述统计次数值是否超过阈值;
命令更新单元,用于若所述统计次数值不超过阈值,则将新命令存储于低级缓冲区;
数值更新单元,用于对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理;
计时单元,用于设置定时器,获取计数器统计的时间;
时间判断单元,用于判断所述时间是否达到设定时间;
计数器右移单元,用于若达到设定时间,则将每个计数器右移;
空位判断单元,用于若不命中,则判断低级缓冲区内是否有空位置;
空位存储单元,用于若低级缓冲区内有空位置,则将新命令存储于低级缓冲区内的空位置,并返回至所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤;
第二存储单元,用于若低级缓冲区内没有空位置,则根据最后一个位置计数器内的数值对新命令进行存储并更新该位置的计数器,并返回对所述对低级缓冲区内每个位置的计数器内的数值以及所存储的命令进行更新处理的步骤。
8.根据权利要求7所述的命令存储管理装置,其特征在于,所述命中判断单元包括:
地址获取子单元,用于获取所述新命令对应的逻辑块地址;
一致性判断子单元,用于判断所述新命令对应的逻辑块地址是否与缓冲区内已存储的命令的逻辑块地址一致;若是,则所述新命令与低级缓冲区内的命令命中;若否,则所述新命令与低级缓冲区内的命令不命中。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法。
CN201910037169.7A 2019-01-15 2019-01-15 命令存储管理方法、装置、计算机设备及存储介质 Active CN109783027B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910037169.7A CN109783027B (zh) 2019-01-15 2019-01-15 命令存储管理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910037169.7A CN109783027B (zh) 2019-01-15 2019-01-15 命令存储管理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109783027A CN109783027A (zh) 2019-05-21
CN109783027B true CN109783027B (zh) 2022-03-29

Family

ID=66500426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910037169.7A Active CN109783027B (zh) 2019-01-15 2019-01-15 命令存储管理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109783027B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639817A (zh) * 2009-03-13 2010-02-03 青岛海信信芯科技有限公司 一种存储器的控制方法、存储器控制器和存储器控制***
CN102722448A (zh) * 2011-03-31 2012-10-10 国际商业机器公司 管理高速存储器的方法和装置
CN103389413A (zh) * 2013-07-09 2013-11-13 中国电子科技集团公司第四十一研究所 一种频谱直方图的实时统计方法
CN105095104A (zh) * 2014-04-15 2015-11-25 华为技术有限公司 数据缓存处理方法及装置
CN105205014A (zh) * 2015-09-28 2015-12-30 北京百度网讯科技有限公司 一种数据存储方法和装置
CN108920387A (zh) * 2018-06-06 2018-11-30 深圳忆联信息***有限公司 降低读延迟的方法、装置、计算机设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578089B2 (en) * 2010-10-29 2013-11-05 Seagate Technology Llc Storage device cache
JP6012263B2 (ja) * 2011-06-09 2016-10-25 株式会社半導体エネルギー研究所 半導体記憶装置
US20140082252A1 (en) * 2012-09-17 2014-03-20 International Business Machines Corporation Combined Two-Level Cache Directory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639817A (zh) * 2009-03-13 2010-02-03 青岛海信信芯科技有限公司 一种存储器的控制方法、存储器控制器和存储器控制***
CN102722448A (zh) * 2011-03-31 2012-10-10 国际商业机器公司 管理高速存储器的方法和装置
CN103389413A (zh) * 2013-07-09 2013-11-13 中国电子科技集团公司第四十一研究所 一种频谱直方图的实时统计方法
CN105095104A (zh) * 2014-04-15 2015-11-25 华为技术有限公司 数据缓存处理方法及装置
CN105205014A (zh) * 2015-09-28 2015-12-30 北京百度网讯科技有限公司 一种数据存储方法和装置
CN108920387A (zh) * 2018-06-06 2018-11-30 深圳忆联信息***有限公司 降低读延迟的方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN109783027A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109471875B (zh) 基于缓存数据的热度管理方法、服务器及存储介质
US8880807B2 (en) Bounding box prefetcher
CN105095116B (zh) 缓存替换的方法、缓存控制器和处理器
EP2372560B1 (en) Combined L2 cache and L1D cache prefetcher
US20170371807A1 (en) Cache data determining method and apparatus
EP2372561A1 (en) Bounding box prefetcher with reduced warm-up penalty on memory block crossings
WO2016028561A1 (en) System and method for reverse inclusion in multilevel cache hierarchy
CN107247675B (zh) 一种基于分类预测的缓存选择方法和***
CN106372007B (zh) 缓存使用率估计
CN110147331B (zh) 缓存数据处理方法、***及可读存储介质
CN110297787B (zh) I/o设备访问内存的方法、装置及设备
US20050240731A1 (en) Managing a multi-way associative cache
CN115757203B (zh) 访存策略管理方法及装置、处理器和计算设备
US10853250B2 (en) Storage management method, electronic device and computer program product
CN103345368A (zh) 一种在缓冲存储器中缓存数据的方法
US7844777B2 (en) Cache for a host controller to store command header information
CN115617712A (zh) 一种基于组相联高速缓存Cache的LRU替换算法
US7555610B2 (en) Cache memory and control method thereof
CN109783019B (zh) 一种数据智能存储管理方法与装置
JPH08147218A (ja) キャッシュ制御装置
CN109783027B (zh) 命令存储管理方法、装置、计算机设备及存储介质
CN109669881B (zh) 一种基于Cache空间预约算法的计算方法
CN114253458A (zh) 内存缺页异常的处理方法、装置、设备及存储介质
WO2003019385A1 (en) Cache memory control in a multi-tasking environment
US20230297382A1 (en) Cache line compression prediction and adaptive compression

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