CN112395223A - 基于对高速缓存列表的不同区域的访问来管理被访问磁道到高速缓存列表的mru端的指示 - Google Patents
基于对高速缓存列表的不同区域的访问来管理被访问磁道到高速缓存列表的mru端的指示 Download PDFInfo
- Publication number
- CN112395223A CN112395223A CN202010816353.4A CN202010816353A CN112395223A CN 112395223 A CN112395223 A CN 112395223A CN 202010816353 A CN202010816353 A CN 202010816353A CN 112395223 A CN112395223 A CN 112395223A
- Authority
- CN
- China
- Prior art keywords
- track
- cache
- accessed
- access
- region
- 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
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000003860 storage Methods 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 17
- 230000001186 cumulative effect Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种计算机程序产品、系统和方法,用于基于对高速缓存列表的不同区域的访问来管理将被访问磁道添加到高速缓存列表中。高速缓存具有最近最少使用(LRU)端和最近最多使用(MRU)端。基于对在从高速缓存列表的MRU端开始的磁道的高访问区域中的磁道的访问次数,确定高访问区域。响应于确定被访问磁道在高访问区域中,针对被访问磁道设置指示在LRU端处处理被访问磁道后被访问磁道在MRU端处的标志。在设置标志之后,被访问磁道保持在被访问之前在高速缓存列表中的当前位置。
Description
技术领域
本发明涉及一种计算机程序产品、系统和方法,用于在高速缓存中基于对高速缓存列表的不同区域的访问来管理被访问磁道到高速缓存列表的最近最多使用端的添加。
背景技术
作为在比存储所请求的磁道的存储设备更快的访问存储设备(例如,存储器)中的读取和写入操作的结果,高速缓存管理系统在最近访问的存储设备中缓冲磁道。与从更慢的访问存储设备返回所请求的磁道相比,对更快的访问高速缓存存储器中的磁道的后续读取请求以更快的速度返回,从而减少了读取延迟。当将指向存储设备的已修改磁道写入高速缓存存储器时,以及在将已修改磁道写出至诸如硬盘驱动器的存储设备之前,高速缓存管理系统也可返回完成写入请求。通常,存储设备的写入延迟比写入高速缓存存储器的延迟长得多。因此,使用高速缓存还减少写入延迟。
高速缓存管理系统可维持对存储在高速缓存中的每个磁道具有一个条目的链表,该磁道可包括在写入存储设备之前在高速缓存中缓冲的写入数据或者读取数据。在通用的最近最少使用(LRU)高速缓存技术中,如果高速缓存中的磁道被访问,即高速缓存“命中”,则LRU高速缓存列表中针对被访问磁道的条目将被移至列表的最近最多使用(MRU)端。如果所请求的磁道不在高速缓存中,即高速缓存未命中,则高速缓存中其条目在列表的LRU端的磁道可被移除并降级,并且针对从存储设备中进入高速缓存中的磁道数据的条目被添加到LRU列表的MRU端。使用此LRU高速缓存技术,被访问频率较高的磁道很可能会保留在高速缓存中,而被访问频率较低的数据更可能会从列表的LRU端移除,从而在高速缓存中为新访问的磁道腾出空间。
为了在磁道被访问时将磁道移动到MRU端,管理高速缓存的进程需要获得LRU高速缓存列表上的锁定。由于许多进程都强烈寻求该锁定,因此为了获得该锁定可能会存在大量的锁定争用。
解决锁定争用的一种技术是将需要移动到MRU端的磁道批量处理到MRU数组中。当MRU数组已满时,MRU数组中的所有磁道将移至高速缓存列表的MRU端。解决锁定争用的另一种技术是高速缓存分区,其中为不同的磁道分区维持多个LRU列表,其中每个分区都有自己的LRU锁定。
在本领域中需要用于在磁道被访问时将磁道移向高速缓存的MRU端的改进技术。
发明内容
提供了一种计算机程序产品、系统和方法,用于在高速缓存中基于对高速缓存列表的不同区域的访问来管理被访问磁道到高速缓存列表的最近最多使用端的添加。用于高速缓存的高速缓存列表具有最近最少使用(LRU)端和最近最多使用(MRU)端,其中,在高速缓存列表中指示高速缓存中的磁道。基于对在从高速缓存列表的MRU端开始的磁道的高访问区域中的磁道的访问次数,确定该高访问区域。确定被访问磁道是否在从MRU端开始的磁道的高访问区域中。响应于确定被访问磁道在高访问区域中,针对被访问磁道设置指示在LRU端处处理被访问磁道后该被访问磁道在MRU端处的标志。在设置标志之后,被访问磁道保持在被访问之前在高速缓存列表中的当前位置。
附图说明
图1示出了计算环境的实施例。
图2示出了最近最少使用(LRU)列表的实施例。
图3示出了高速缓存控制块的实施例。
图4示出了用于高速缓存列表的区域的区域信息的实例的实施例。
图5示出了从高速缓存列表的最近最多使用(MRU)端确定高速缓存列表的高访问区域的操作的实施例。
图6示出了处理对磁道的访问请求的操作的实施例。
图7示出了启动降级扫描以从高速缓存列表的LRU端降级磁道的操作的实施例。
图8示出了处理MRU数组中的磁道的操作的实施例。
图9示出了图1的组件在其中实现的计算环境。
具体实施方式
在现有技术中,被访问磁道可被批量处理,然后将这批磁道重新定位在高速缓存列表的MRU端。用于将磁道的指示移入和移出高速缓存列表的操作导致在处理读/写请求以获得用于将磁道移入和移出高速缓存列表所需的锁定时的延迟。所描述的实施例通过提供增强的决策来确定被考虑降级的磁道(例如,在高速缓存列表中的最近最少使用(LRU)端处)是否应被添加回MRU端,对计算机高速缓存技术提供改进。在所描述的实施例中,在将在高速缓存中的被访问磁道移回到MRU端之前,要基于被访问磁道的磁道高速缓存驻留时间来考虑在高速缓存列表中包括被访问磁道的区域是否在高速缓存列表的高访问区域中,该高访问区域从磁道区域的MRU端延伸,在时间间隔内具有高速缓存访问的预定百分比。如果被访问磁道在高访问区域内,则针对被访问磁道设置响应于确定被访问磁道在高访问区域中而指示被访问磁道在MRU端处的标志。在设置标志之后,被访问磁道保持在被访问之前在高速缓存列表中的当前位置。
图1示出了计算环境的实施例。多个主机1021、1022……102n可通过网络106向存储控制器104提交输入/输出(I/O)请求,以访问存储设备110中的卷108处的数据(例如,逻辑单元编号,逻辑设备,逻辑子系统等)。存储控制器104包括一个或多个处理器112和存储器114,该存储器114包括针对存储设备110来高速缓存数据的高速缓存116。处理器112可包括单独的中央处理单元(CPU),单个CPU上的一个内核或多个内核的组,或一个或多个CPU上的一组处理资源。高速缓存116中缓冲在主机1021、1022……102n与存储设备110的卷108之间传送的数据。
存储器114进一步包括:存储管理器118,其用于管理在主机1021、1022……102n与存储设备110之间传送的磁道的传送;以及高速缓存管理器120,其中管理在主机1021、1022……102n与存储设备110之间传送的在高速缓存116的数据。磁道可包括在存储设备110中配置的任何数据单元,例如磁道,逻辑块地址(LBA),存储单元,单元组(例如,单元的列,行或数组),扇区,字段等,它们可能是更大的磁道分组(例如卷,逻辑设备等)的一部分。
高速缓存管理器120在存储器114中维持高速缓存管理信息122以管理高速缓存116中的读取(未修改)和写入(已修改)磁道。高速缓存管理信息122可包括:最近最少使用(LRU)高速缓存列表200,在该列表中指示高速缓存116中的磁道;磁道索引124,其提供高速缓存116中的磁道到控制块目录300中的高速缓存控制块的索引,其中,对于高速缓存116中的每个磁道存在一个高速缓存控制块,其提供高速缓存116中的磁道上的元数据,并且高速缓存列表200可指示目录300中的高速缓存控制块300i;最近最多使用(MRU)数组126,也称为MRU列表,其具有添加到高速缓存116中尚未在高速缓存列表200中指示的磁道,以允许一次将一批磁道添加到高速缓存列表200以提高高速缓存处理效率,因为可使用单个锁定请求来将多个新添加的磁道添加到高速缓存列表200中的高速缓存116;降级准备列表128,其指示从高速缓存列表200的LRU端204移除的、准备从高速缓存116降级的磁道;区域信息400,其具有关于高速缓存列表200中的不同连续磁道区域的信息;基于对高速缓存列表200的区域的访问的高访问区域132,在该区域中,被访问磁道没有被重新MRU,而是保持在其在高速缓存列表200中的当前位置;以及在进行这种测量的间隔134中的输入/输出(I/O)操作的总数。
处理器112执行用于扫描高速缓存列表200的降级扫描任务130以确定要添加到降级准备列表128的未修改磁道。
随着程序代码被加载到存储器114中并由一个或多个处理器112执行,存储管理器118、高速缓存管理器120和降级扫描任务130在图1中被示出。可选地,一些或全部功能可被实现为存储控制器104中的硬件设备中的微代码或固件,例如在专用集成电路(ASIC)中。
存储设备110可包括一个或多个本领域已知的存储设备,例如由固态电子设备组成的固态存储设备(SSD)、NAND存储单元,EEPROM(电可擦除可编程只读存储器)、闪存、闪存盘、随机存取存储器(RAM)驱动器、存储级存储器(SCM)、相变存储器(PCM)、电阻式随机存取存储器(RRAM)、自旋转移扭矩存储器(STM-RAM)、导电桥接RAM(CBRAM)、磁硬盘驱动器,光盘,磁带等。存储设备可进一步被配置为设备阵列,例如,简单磁盘捆绑(JBOD)、直接访问存储设备(DASD)、独立磁盘冗余阵列(RAID)阵列、虚拟化设备等。此外,存储设备可包括来自不同供应商或来自同一供应商的异构存储设备。
存储器114可包括合适的易失性或非易失性存储设备,包括上述的那些。
网络106可包括存储区域网络(SAN),局域网(LAN),广域网(WAN),互联网和内联网等。可替代地,主机1021、1022……102n可通过总线接口(例如,外围组件互连(PCI)总线接口和本领域已知的其他接口)连接到存储控制器104。
图2示出了作为最近最少使用(LRU)列表200的高速缓存列表200的实施例,其具有最近最多使用(MRU)端202和最近最少使用(LRU)端204。最近最多使用(MRU)端202标识最近添加到高速缓存116或最近在高速缓存116中访问的磁道。从最近最少使用(LRU)端204开始被标识在LRU端处的磁道被选择从高速缓存116降级。当将磁道添加到MRU端202时,其他磁道朝下向LRU端204移动。如果没有足够的空间用于将磁道添加到MRU端202,则可从LRU端204降级磁道,以腾出空间供新磁道添加到高速缓存列表200。
图3示出了用于高速缓存116中的一个磁道的高速缓存控制块300i的实例的实施例,该高速缓存控制块300i包括但不限于:高速缓存控制块标识符302,诸如高速缓存控制块300i的索引值;高速缓存列表304,其中指示了磁道相关联的高速缓存控制块300i;LRU高速缓存列表306中指示磁道的位置;最后访问时间戳308,其指示在高速缓存116中最后一次访问(例如读取)磁道的时间;重新MRU标志310,其指示:例如如果磁道在高速缓存列表200中被指示时被访问,是否需要在高速缓存列表200的MRU端202处指示该磁道;降级状态312,其指示由高速缓存控制块300i标识的磁道是否要从高速缓存116降级以及是否在降级准备列表128中被指示。高速缓存控制块300i中可包括在本文未提及的用于管理高速缓存116中的磁道的附加信息。
在某些实施例中,可将时间戳308设置为例如在每个时钟周期或几毫秒内周期性递增的序列编号。
图4示出了区域信息400中的区域信息400i的实例的实施例。区域信息400i包括:区域编号402,其中最低的区域编号可在MRU端202处开始;在高速缓存列表中的高速缓存列表条目404,连续的条目可由区域编号和区域中的条目/磁道的数量来确定;以及对区域402的访问次数406或读取次数。针对区域400i的高速缓存命中率可通过将访问次数406除以间隔134值中的总I/O操作来确定。
图5示出了由高速缓存管理器120执行的用于确定从高速缓存列表200的MRU端202开始的高访问区域132的操作的实施例。该确定可在测量间隔之后针对I/O操作总数134来做出,或者可响应对磁道的每个访问请求来做出,以确定是否对磁道进行重新MRU,即响应于命中而向MRU端202移动。(在框500处)在启动确定高访问区域132的操作时,(在框502处)将变量i设置为1,并且(在框504处)将累计访问次数初始化为区域1(从MRU端202开始的区域)中的访问次数406。(在框506处)将阈值确定为所有区域400i的总访问次数406的固定百分比(例如25%)。高速缓存列表中从MRU端202开始的具有25%或一些其他固定百分比的累计访问的阈值百分比代表将来可能经历高速缓存命中的高访问区域。
(在框508处)区域i被添加到高访问区域132中,该区域132包括从MRU端202开始的连续区域的子集。如果(在框510处)累计访问次数未超过阈值,则(在框512处)i递增,并且(在框514处)将针对区域i的访问次数406加到累计访问次数。控制前进回到框508,以考虑是否将下一区域(i+1)包括在高访问区域132中。如果(在框510处)来自区域子集的累计访问次数超过阈值,则(在框516处)基于添加到高访问区域132的区域子集来确定高访问区域132。高访问区域132可被表示为从MRU端202开始延伸的高速缓存列表200的百分比。
在一个实施例中,基于添加到高访问区域的区域子集来确定高访问区域132可通过将区域子集中的命中的累计次数除以所有区域的总访问次数来计算。在另一个实施例中,高访问区域132可通过将区域子集中的总条目数量除以高速缓存列表200中的总条目数量来计算。在又一实施例中,高访问区域132可通过将在MRU端202处的最后访问时间戳与在该区域子集的最后一个区域中最后一个磁道的最后访问时间戳之差除以在高速缓存列表200的MRU端202处的最后访问时间戳与在LRU端204处的最后访问时间戳之差来计算。
采用图5的实施例,针对从MRU端开始的每个区域的访问次数被加到累计访问次数中,直到累计访问次数超过阈值为止。以此方式,高访问区域132包括从MRU端开始的加到累计次数的每个区域,直到累计访问次数超过阈值为止。采用图5的该实施例,高访问区域132被确定为包括对所有区域贡献阈值访问次数的区域子集,例如命中/访问的25%,其指示高速缓存列表200中很有可能继续被访问的高访问区域。
图6示出了由高速缓存管理器120执行的用于处理对磁道的访问请求(诸如读取或写入)的操作的实施例。(在框600处)在接收到访问请求时,如果(在框602处)磁道在高速缓存116中,则(在框604处)将在高速缓存控制块300i中针对被访问磁道的最后访问时间戳308设置为当前系统时间戳。如果(在框606处)高速缓存116大小小于阈值情况大小,则(在框608处)从高速缓存列表200中移除在高速缓存列表200中的被访问磁道的指示,并且当满足条件(诸如,MRU数组126已满)时,(在框610处)在MRU数组126中指示被访问磁道被批量添加到MRU端202。如果(在框606处)高速缓存116大小大于(或者大于或等于)阈值高速缓存大小,则(在框612处)确定包括被访问磁道的被访问区域400a,该被访问磁道可包括磁道高速缓存驻留时间(自上次访问以来被访问磁道已位于高速缓存中的时间)作为整个高速缓存驻留时间的百分比。在一个实施例中,磁道高速缓存驻留时间包括当前时间戳和最后访问时间戳308之差,其指示被处理磁道何时在高速缓存中最后一次被访问。整个高速缓存驻留时间包括在MRU端处的磁道被最后访问的最后访问时间戳308与在LRU端处的磁道的最后访问时间戳308之差。(在框614处)被访问区域400a的访问次数406递增。
在框616处,确定被访问区域400a是否被包含在高访问区域132内。可通过确定可被表示为高速缓存列表200的百分比的被访问区域是否小于高访问区域132(其也是高速缓存列表200的百分比)来做出该确定。如果(在框616处)被访问区域400a被包含在高访问区域132内,则(在框618处)在高速缓存控制块300i中针对被访问磁道设置重新MRU标志310以指示重新MRU该磁道,并且该磁道被留在其在高速缓存列表200中的当前位置。然而,因为被访问磁道的最后访问时间戳308被更新,该磁道现在在高速缓存驻留的上部的顶部,即在高速缓存中的时间段是所有磁道中最短的。如果(在框616处)该被访问区域400a不在高访问区域132中,则控制进行到框608以从高速缓存列表200中移除该磁道的指示以添加到MRU数组126中。
如果(在框602处)被访问磁道不在高速缓存116中,则(在框620处)将该磁道从卷108暂存到高速缓存116。(在框622处)用于暂存的磁道的高速缓存控制块300i被添加到高速缓存控制块目录300,将最后访问时间戳308设置为当前时间戳,并将重新MRU标志310设置为指示不进行重新MRU。然后,在MRU数组126中指示被访问磁道与在MRU数组126中指示的其他磁道一起被批量添加到MRU端202。
采用图6的实施例中,在高速缓存列表200中指示的在从MRU端202开始的在高速缓存列表中具有阈值数量的高速缓存命中的高访问区域中的被请求磁道在高速缓存列表200中保持在其当前位置,而无需添加到MRU数组126。这减少了高速缓存访问延迟,因为由于其连续更新的被访问时间戳308而具有更低的磁道高速缓存驻留时间的最近更多被访问磁道没有连续移动到MRU数组126并在MRU端202批量指示,而是在高速缓存列表200中保留在其当前位置,其中,其最后访问时间戳被更新308。仅在框618处设置重新MRU标志310并且不将磁道添加到MRU数组126,避免了将磁道添加到MRU数组126并处理MRU数组126以将磁道批量添加到MRU端202所需的延迟,因为从高速缓存列表200中移除磁道或将其添加到MRU端202需要锁定。但是,在高访问区域132之外的高速缓存区域中的被访问磁道从高速缓存列表200中移除,并被添加到MRU数组126,因为与上部范围中最近更多被访问磁道相比,它们不太可能再次被访问。通过将更多最近被访问磁道保留在高速缓存列表200中,同时将已经在高速缓存中相对更长时间且不太可能被访问的磁道移动到MRU数组126,进一步提高了高速缓存命中率。
图7示出了由降级扫描任务130执行的操作的实施例,降级扫描任务130被周期性地调用以从高速缓存列表200的LRU端204开始处理磁道以从高速缓存降级。当(在框700处)在LRU端204处处理磁道以降级时,如果(在框702处)未设置重新MRU标志310,其指示该磁道自从上次被添加到高速缓存116以来最近未被访问,则(在框704处)被处理磁道从高速缓存列表200中移除,并降级,例如添加到降级准备列表128中,来自该降级准备列表128的磁道从高速缓存列表中移除。如果(在框702处)重新MRU标志310指示重新MRU或将磁道移向MRU端202,则(在框706处)确定包括被处理磁道的区域,该区域可被计算为磁道高速缓存驻留时间占总高速缓存驻留时间的百分比。如果(在框708处)高速缓存列表200的包括被处理磁道的所确定区域或百分比不在高访问区域132内,例如,高速缓存列表200的所确定区域小于高速缓存列表200的高访问区域百分比,则基于命中次数/访问次数,该磁道不在高访问区域132中,并且控制前进至框704,以从高速缓存列表200中移除被处理磁道并降级,例如添加到降级准备列表128。
如果(在框708处)所确定磁道在高访问区域132中,则(在框710中)从高速缓存列表200中移除该磁道的指示,并(在框712处)在MRU阵列126中指示该磁道。
采用图7的实施例,如果使重新MRU标志310设置为指示该磁道在高速缓存列表200中时被访问并且该磁道在高速缓存列表200的高访问区域132中,则该磁道不被降级。在这种情况下,磁道在高速缓存116中时被访问,因为该磁道被标识为仍保留在高访问区域中,因此其被添加到MRU阵列126以重新MRU。重新MRU高高速缓存命中区域中的磁道提高了高速缓存命中率。
在一个实施例中,用于确定是否向图7中的MRU阵列126添加磁道的高访问区域可与用于确定是否设置图6中的重新MRU标志310的高访问区域不同。例如,相比于图7中使用的高访问区域132,在图6中使用的高访问区域132可基于所有区域的高速缓存命中的更低阈值(例如,25%)来计算,其中,图7中使用的高访问区域132可基于所有区域的高速缓存命中的更高阈值(例如,50%)来计算。
图8示出了由高速缓存管理器120和/或降级扫描任务130执行的用于处理MRU数组126以将磁道添加到高速缓存列表200的MRU端202的操作的实施例。当磁道数量等于阈值或者MRU数组126已满时,MRU数组126可被处理。(在框800处)在启动MRU数组126中的磁道的处理时,控制继续以执行图7的操作,直到降级扫描任务130将与MRU数组126中将被添加到高速缓存列表200的磁道数量相等数量的磁道降级。然后控制继续以(在框804处)获得对高速缓存列表200的锁定并将在MRU数组126中的磁道添加到高速缓存列表200的MRU端202。
采用图8的实施例中,添加到高速缓存116或确定为要重新MRU的磁道没有立即被指示到MRU端202,这将导致获得对高速缓存列表200的锁定的延迟推迟。代替地,添加到高速缓存116的磁道被指示在MRU数组126中并被批处理以移动到MRU端202,即在针对高速缓存列表200保持锁定的同时将其添加到MRU端202,以避免用于指示MRU端202处的磁道的锁定争用。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
图1的计算组件(包括主机1021、1022……102n和存储控制器104)可在一个或多个计算机系统中实现,例如图9所示的计算机系统902。计算机系统/服务器902可在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述。通常,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可在分布式云计算环境中实践,在该分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质二者中。
如图9所示,计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可包括但不限于:一个或多个处理器或处理单元904、系统存储器906、以及将包括系统存储器906的各种系统组件耦接到处理器904的总线908。总线908代表多种总线结构中的任何一种或多种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线、图形加速端口、以及处理器或本地总线。作为示例而非限制,这样的体系结构包括行业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、和外围组件互连(PCI)总线。
计算机系统/服务器902通常包括各种计算机系统可读介质。这种介质可以是计算机系统/服务器902可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器906可包括具有易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机系统/服务器902可进一步包括其他可移动/不可移动的易失性/非易失性计算机系统存储介质。仅通过示例,存储系统913可被提供用于读取和写入不可移动的非易失性磁性介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是可提供用于读取和写入可移动的非易失性磁盘(例如“软盘”)的磁盘驱动器,以及用于读取或写入可移动的非易失性光盘(CD-ROM,DVD-ROM或其他光学介质)的光盘驱动器。在这样的情况下,每一个都可通过一个或多个数据介质接口连接到总线908。如将在下面进一步描绘和描述的,存储器906可包括至少一个程序产品,该程序产品具有被配置为执行本发明的实施例的功能的一组(例如,至少一个)程序模块。
具有一组(至少一个)程序模块916的程序/实用工具914可以作为示例而非限制地存储在存储器906中,以及操作系统、一个或多个应用程序、其他程序模块、以及程序数据中。操作系统、一个或多个应用程序、其他程序模块、以及程序数据、或它们的某种组合中的每一个可包括联网环境的实现。计算机902的组件可被实现为程序模块916,其通常执行本文所述的本发明的实施例的功能和/或方法。图1的系统可在一个或多个计算机系统902中实现,其中,如果它们在多个计算机系统902中实现,则该计算机系统可通过网络进行通信。
计算机系统/服务器902还可与一个或多个外部设备918进行通信,例如键盘、指示设备、显示器920等;与一个或多个使用户能够与计算机系统/服务器902交互的设备进行通信;和/或与使计算机系统/服务器902与一个或多个其他计算设备进行通信的任何设备(例如,网卡,调制解调器等)进行通信。这种通信可经由输入/输出(I/O)接口922发生。然而,计算机系统/服务器902仍可通过网络适配器924与一个或多个网络(诸如局域网(LAN)、通用广域网(WAN)、和/或公共网络(例如互联网))进行通信。如图所示,网络适配器924通过总线908与计算机系统/服务器902的其他组件通信。应理解,尽管未示出,但是其他硬件和/或软件组件可与计算机系统/服务器902结合使用。示例包括但不限于:微代码、设备驱动程序、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器、和数据备份存储系统等。
除非另外明确指出,否则术语“实施例”,“多个实施例”,“该实施例”,“该多个实施例”,“一个或多个实施例”,“一些实施例”和“一个实施例”表示“本发明的实施例中的一个或多个(但不是全部)”。
除非另外明确指出,否则术语“包括”,“包含”,“具有”及其变体表示“包括但不限于”。
除非另外明确指出,否则所列举的项目列表并不意味着任何或所有项目都是互斥的。
除非另外明确指出,否则术语“一”,“一个”和“该”表示“一个或多个”。
除非另外明确指出,否则彼此通信的设备不需要彼此持续通信。另外,彼此通信的设备可直接通信或通过一个或多个中间设备间接通信。
具有多个彼此通信的组件的实施例的描述并不暗示所有这种组件都是需要的。相反,描述了各种可选组件以说明本发明的大范围的各种可能的实施例。
当在本文中描述单个设备或物品时,将显而易见的是,可使用多于一个的设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,在本文描述了多于一个设备或物品的情况下(无论它们是否合作),很明显的是可使用单个设备/物品来代替多于一个的设备或物品,或者不同数量的设备/物品可被用于代替所示数量的设备或程序。设备的功能和/或特征可以可替代地由一个或多个未明确描述为具有这种功能/特征的其他设备来体现。因此,本发明的其他实施例不需要包括设备本身。
为了说明和描述的目的,已经给出了本发明的各种实施例的前述描述。其并非旨在穷举或将本发明限制为所公开的精确形式。根据以上教导,许多修改和变化是可能的。本发明的范围不旨在由该详细描述限制,而是由所附权利要求书限制。以上说明、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于可以在不脱离本发明的精神和范围的情况下做出本发明的许多实施例,因此本发明体现在所附权利要求书中。
Claims (22)
1.一种用于在高速缓存中管理存储设备中的磁道的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质中体现有计算机可读程序代码,所述计算机可读程序代码在被执行时执行操作,所述操作包括:
维持用于所述高速缓存的高速缓存列表,所述高速缓存列表具有最近最少使用LRU端和最近最多使用MRU端,其中,在所述高速缓存列表中指示所述高速缓存中的磁道;
基于对在从所述高速缓存列表的所述MRU端开始的磁道的高访问区域中的所述磁道的访问次数,确定所述高访问区域;
确定被访问磁道是否在从所述MRU端开始的磁道的所述高访问区域中;以及
响应于确定所述被访问磁道在所述高访问区域中,针对所述被访问磁道设置指示在所述LRU端处处理所述被访问磁道后所述被访问磁道在所述MRU端处的标志,其中,在设置所述标志之后,所述被访问磁道保持在被访问之前在所述高速缓存列表中的当前位置。
2.根据权利要求1所述的计算机程序产品,其中,所述操作还包括:
维持针对所述高速缓存列表中从所述MRU端到所述LRU端的多个连续磁道区域中的每个区域的访问次数;
确定从所述MRU端开始的累计访问次数超过阈值的区域子集;以及
基于所述区域子集来确定所述高访问区域。
3.根据权利要求2所述的计算机程序产品,其中,基于所述区域子集来确定所述高访问区域包括确定以下之一:
所述区域子集中的所述累计访问次数除以所有区域的总访问次数;
所述区域子集中的总条目数量除以所述高速缓存列表中的总条目数量;以及
在所述MRU端处的最后访问时间戳与所述区域子集的最后一个区域中的最后一个磁道的最后访问时间戳之差除以在所述高速缓存列表的所述MRU端处的磁道的最后访问时间戳与在所述LRU端处的磁道的最后访问时间戳之差。
4.根据权利要求2所述的计算机程序产品,其中,所述阈值包括针对所有区域的总访问次数的百分比。
5.根据权利要求2所述的计算机程序产品,其中,所述操作还包括:
接收对所述高速缓存列表中指示的磁道的读取访问;
确定包括所述被访问磁道的区域;以及
增加所确定区域的访问次数。
6.根据权利要求2所述的计算机程序产品,其中,确定所述区域子集包括:
将从所述MRU端开始的每个区域的访问次数加到所述累计访问次数中,直到所述累计访问次数超过所述阈值,其中,所述高访问区域包括从所述MRU端开始的被加到所述累计次数中直到所述累计访问次数超过所述阈值的每个区域。
7.根据权利要求1所述的计算机程序产品,其中,确定所述被访问磁道是否在所述高访问区域中包括:
确定自从被访问磁道在所述高速缓存列表中时最后一次被访问以来的磁道高速缓存驻留时间;
将被访问区域确定为所述磁道高速缓存驻留时间除以整个高速缓存驻留时间;以及
确定所述被访问区域是否被包含在所述高访问区域中,其中,响应于确定所述被访问区域被包含在所述高访问区域中,所述被访问磁道在所述高访问区域中。
8.根据权利要求7所述的计算机程序产品,其中,
其中,所述磁道高速缓存驻留时间包括当前时间戳与最后访问时间戳之差,所述最后访问时间戳指示所述被访问磁道在所述高速缓存中最后被访问的时间,
其中,所述整个高速缓存驻留时间包括在所述MRU端处的磁道最后被访问的最后访问时间戳与在所述LRU端处的磁道的最后访问时间戳之差。
9.根据权利要求1所述的计算机程序产品,其中,所述操作还包括:
处理在所述高速缓存列表的所述LRU端处的磁道以考虑降级;
确定针对被处理磁道的所述标志是否被设置为指示所述磁道在所述MRU端处;以及
响应于确定针对所述被处理磁道的所述标志未被设置为指示所述磁道在所述MRU端处,降级所述被处理磁道。
10.根据权利要求9所述的计算机程序产品,其中,所述操作还包括:
确定所述被处理磁道是否在从所述MRU端开始的磁道的所述高访问区域中;
响应于确定所述被处理磁道在所述高访问区域中,指示所述被处理磁道在所述高速缓存列表的所述MRU端处;以及
响应于确定所述被处理磁道不在所述高访问区域中,降级所述被处理磁道。
11.根据权利要求1所述的计算机程序产品,其中,所述操作还包括:
确定所述高速缓存的高速缓存大小是否小于阈值高速缓存大小;以及
响应于确定所述高速缓存大小小于所述阈值高速缓存大小,从所述高速缓存列表中移除所述被访问磁道的指示以添加到MRU数组,其中,在所述MRU数组中指示的磁道被批量添加到所述高速缓存列表的所述MRU端,其中,确定所述被访问磁道是否在所述高访问区域中是响应于确定所述高速缓存大小大于所述阈值高速缓存大小来执行的。
12.一种用于管理存储设备中的磁道的系统,包括:
处理器;
存储器设备中的高速缓存;
计算机程序产品,其包括计算机可读存储介质,所述计算机可读存储介质中体现有计算机可读程序代码,所述计算机可读程序代码在被执行时执行操作,所述操作包括:
维持用于所述高速缓存的高速缓存列表,所述高速缓存列表具有最近最少使用LRU端和最近最多使用MRU端,其中,在所述高速缓存列表中指示所述高速缓存中的磁道;
基于对在从所述高速缓存列表的所述MRU端开始的磁道的高访问区域中的所述磁道的访问次数,确定所述高访问区域;
确定被访问磁道是否在从所述MRU端开始的磁道的所述高访问区域中;以及
响应于确定所述被访问磁道在所述高访问区域中,针对所述被访问磁道设置指示在所述LRU端处处理所述被访问磁道后所述被访问磁道在所述MRU端处的标志,其中,在设置所述标志之后,所述被访问磁道保持在被访问之前在所述高速缓存列表中的当前位置。
13.根据权利要求12所述的系统,其中,所述操作还包括:
维持针对所述高速缓存列表中从所述MRU端到所述LRU端的多个连续磁道区域中的每个区域的访问次数;
确定从所述MRU端开始的累计访问次数超过阈值的区域子集;以及
基于所述区域子集来确定所述高访问区域。
14.根据权利要求13所述的系统,其中,基于所述区域子集来确定所述高访问区域包括确定以下之一:
所述区域子集中的所述累计访问次数除以所有区域的总访问次数;
所述区域子集中的总条目数量除以所述高速缓存列表中的总条目数量;以及
在所述MRU端处的最后访问时间戳与所述区域子集的最后一个区域中的最后一个磁道的最后访问时间戳之差除以在所述高速缓存列表的所述MRU端处的磁道的最后访问时间戳与在所述LRU端处的磁道的最后访问时间戳之差。
15.根据权利要求13所述的系统,其中,确定所述区域子集包括:
将从所述MRU端开始的每个区域的访问次数加到所述累计访问次数中,直到所述累计访问次数超过所述阈值,其中,所述高访问区域包括从所述MRU端开始的被加到所述累计次数中直到所述累计访问次数超过所述阈值的每个区域。
16.根据权利要求12所述的系统,其中,确定所述被访问磁道是否在所述高访问区域中包括:
确定自从被访问磁道在所述高速缓存列表中时最后一次被访问以来的磁道高速缓存驻留时间;
将被访问区域确定为所述磁道高速缓存驻留时间除以整个高速缓存驻留时间;以及
确定所述被访问区域是否被包含在所述高访问区域中,其中,响应于确定所述被访问区域被包含在所述高访问区域中,所述被访问磁道在所述高访问区域中。
17.一种用于在高速缓存中管理存储设备中的磁道的方法,包括:
维持用于所述高速缓存的高速缓存列表,所述高速缓存列表具有最近最少使用LRU端和最近最多使用MRU端,其中,在所述高速缓存列表中指示所述高速缓存中的磁道;
基于对在从所述高速缓存列表的所述MRU端开始的磁道的高访问区域中的所述磁道的访问次数,确定所述高访问区域;
确定被访问磁道是否在从所述MRU端开始的磁道的所述高访问区域中;以及
响应于确定所述被访问磁道在所述高访问区域中,针对所述被访问磁道设置指示在所述LRU端处处理所述被访问磁道后所述被访问磁道在所述MRU端处的标志,其中,在设置所述标志之后,所述被访问磁道保持在被访问之前在所述高速缓存列表中的当前位置。
18.根据权利要求17所述的方法,还包括:
维持针对所述高速缓存列表中从所述MRU端到所述LRU端的多个连续磁道区域中的每个区域的访问次数;
确定从所述MRU端开始的累计访问次数超过阈值的区域子集;以及
基于所述区域子集来确定所述高访问区域。
19.根据权利要求18所述的方法,其中,基于所述区域子集来确定所述高访问区域包括确定以下之一:
所述区域子集中的所述累计访问次数除以所有区域的总访问次数;
所述区域子集中的总条目数量除以所述高速缓存列表中的总条目数量;以及
在所述MRU端处的最后访问时间戳与所述区域子集的最后一个区域中的最后一个磁道的最后访问时间戳之差除以在所述高速缓存列表的所述MRU端处的磁道的最后访问时间戳与在所述LRU端处的磁道的最后访问时间戳之差。
20.根据权利要求18所述的方法,其中,确定所述区域子集包括:
将从所述MRU端开始的每个区域的访问次数加到所述累计访问次数中,直到所述累计访问次数超过所述阈值,其中,所述高访问区域包括从所述MRU端开始的被加到所述累计次数中直到所述累计访问次数超过所述阈值的每个区域。
21.根据权利要求17所述的方法,其中,确定所述被访问磁道是否在所述高访问区域中包括:
确定自从被访问磁道在所述高速缓存列表中时最后一次被访问以来的磁道高速缓存驻留时间;
将被访问区域确定为所述磁道高速缓存驻留时间除以整个高速缓存驻留时间;以及
确定所述被访问区域是否被包含在所述高访问区域中,其中,响应于确定所述被访问区域被包含在所述高访问区域中,所述被访问磁道在所述高访问区域中。
22.一种计算机系统,所述系统包括分别用于执行根据权利要求17至21中任一项所述的方法的步骤的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/543396 | 2019-08-16 | ||
US16/543,396 US10901916B1 (en) | 2019-08-16 | 2019-08-16 | Managing indication of accessed tracks in cache to a most recently used end of a cache list based on accesses to different regions of the cache list |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112395223A true CN112395223A (zh) | 2021-02-23 |
Family
ID=74190868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010816353.4A Pending CN112395223A (zh) | 2019-08-16 | 2020-08-14 | 基于对高速缓存列表的不同区域的访问来管理被访问磁道到高速缓存列表的mru端的指示 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10901916B1 (zh) |
CN (1) | CN112395223A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277243A (zh) * | 2022-08-04 | 2022-11-01 | 陈锦汇 | 一种基于lru高速缓存的网络通信方案 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11720500B2 (en) * | 2021-09-03 | 2023-08-08 | International Business Machines Corporation | Providing availability status on tracks for a host to access from a storage controller cache |
US11726913B2 (en) | 2021-09-03 | 2023-08-15 | International Business Machines Corporation | Using track status information on active or inactive status of track to determine whether to process a host request on a fast access channel |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967507A (zh) * | 2005-11-18 | 2007-05-23 | 国际商业机器公司 | 数据存储控制器及用于管理其中的高速缓存数据的方法 |
CN103207839A (zh) * | 2012-01-17 | 2013-07-17 | 国际商业机器公司 | 存储的高速缓存内的轨道清除的高速缓存管理方法和系统 |
US20160140053A1 (en) * | 2014-11-18 | 2016-05-19 | International Business Machines Corporation | Re-mru of metadata tracks to reduce lock contention |
CN105612499A (zh) * | 2013-10-29 | 2016-05-25 | 华中科技大学 | 混合高速缓存管理 |
US20170344493A1 (en) * | 2016-05-31 | 2017-11-30 | International Business Machines Corporation | Using an access increment number to control a duration during which tracks remain in cache |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650354B2 (en) * | 2011-07-22 | 2014-02-11 | International Business Machines Corporation | Prefetching tracks using multiple caches |
KR101861170B1 (ko) * | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
US9733991B2 (en) | 2012-09-14 | 2017-08-15 | International Business Machines Corporation | Deferred re-MRU operations to reduce lock contention |
US10114753B2 (en) | 2015-08-21 | 2018-10-30 | International Business Machines Corporation | Using cache lists for multiple processors to cache and demote tracks in a storage system |
-
2019
- 2019-08-16 US US16/543,396 patent/US10901916B1/en active Active
-
2020
- 2020-08-14 CN CN202010816353.4A patent/CN112395223A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967507A (zh) * | 2005-11-18 | 2007-05-23 | 国际商业机器公司 | 数据存储控制器及用于管理其中的高速缓存数据的方法 |
CN103207839A (zh) * | 2012-01-17 | 2013-07-17 | 国际商业机器公司 | 存储的高速缓存内的轨道清除的高速缓存管理方法和系统 |
CN105612499A (zh) * | 2013-10-29 | 2016-05-25 | 华中科技大学 | 混合高速缓存管理 |
US20160140053A1 (en) * | 2014-11-18 | 2016-05-19 | International Business Machines Corporation | Re-mru of metadata tracks to reduce lock contention |
US20170344493A1 (en) * | 2016-05-31 | 2017-11-30 | International Business Machines Corporation | Using an access increment number to control a duration during which tracks remain in cache |
Non-Patent Citations (1)
Title |
---|
王光忠;王翰虎;陈梅;马丹;: "基于闪存的混合存储系统缓冲区管理算法", 计算机工程与设计, no. 06, 16 June 2012 (2012-06-16) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277243A (zh) * | 2022-08-04 | 2022-11-01 | 陈锦汇 | 一种基于lru高速缓存的网络通信方案 |
CN115277243B (zh) * | 2022-08-04 | 2024-03-08 | 陈锦汇 | 一种基于lru高速缓存的网络通信方法 |
Also Published As
Publication number | Publication date |
---|---|
US10901916B1 (en) | 2021-01-26 |
US20210049109A1 (en) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10380035B2 (en) | Using an access increment number to control a duration during which tracks remain in cache | |
US10229064B2 (en) | Using cache lists for processors to determine tracks to demote from a cache | |
US10318156B2 (en) | Invoking input/output (I/O) threads on processors to demote tracks from a cache | |
US10114753B2 (en) | Using cache lists for multiple processors to cache and demote tracks in a storage system | |
US9921974B2 (en) | Assigning cache control blocks and cache lists to multiple processors to cache and demote tracks in a storage system | |
US10642755B2 (en) | Invoking demote threads on processors to demote tracks from a cache based on free cache segments | |
US9971689B2 (en) | Invoking input/output (I/O) threads and demote threads on processors to demote tracks from a cache | |
US11074185B2 (en) | Adjusting a number of insertion points used to determine locations in a cache list at which to indicate tracks | |
US11093395B2 (en) | Adjusting insertion points used to determine locations in a cache list at which to indicate tracks based on number of tracks added at insertion points | |
US10628331B2 (en) | Demote scan processing to demote tracks from cache | |
US10430348B2 (en) | Selecting cache lists indicating tracks in a cache to process for demotion | |
US10067884B2 (en) | Distributing a plurality of tracks to add to cache to lists assigned to processors | |
CN112395223A (zh) | 基于对高速缓存列表的不同区域的访问来管理被访问磁道到高速缓存列表的mru端的指示 | |
US11048631B2 (en) | Maintaining cache hit ratios for insertion points into a cache list to optimize memory allocation to a cache | |
US11281593B2 (en) | Using insertion points to determine locations in a cache list at which to indicate tracks in a shared cache accessed by a plurality of processors | |
US11144475B2 (en) | Managing indication of accessed tracks in cache to a most recently used end of a cache list | |
US11068415B2 (en) | Using insertion points to determine locations in a cache list at which to move processed tracks |
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 |