CN104145252A - 两级高速缓存系统中的自适应高速缓存提升 - Google Patents
两级高速缓存系统中的自适应高速缓存提升 Download PDFInfo
- Publication number
- CN104145252A CN104145252A CN201380012272.7A CN201380012272A CN104145252A CN 104145252 A CN104145252 A CN 104145252A CN 201380012272 A CN201380012272 A CN 201380012272A CN 104145252 A CN104145252 A CN 104145252A
- Authority
- CN
- China
- Prior art keywords
- speed cache
- page
- cache
- reference count
- speed
- 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
Links
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/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- 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/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
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)列表的LRU端。响应于确定该参考计数小于或等于零,将该页面添加至第一高速缓存中的LRU列表的最近最多使用(MRU)端。
Description
技术领域
本发明涉及两级高速缓存系统中的自适应高速缓存提升。
背景技术
高速缓存管理系统由于比存储所请求页面的存储设备更快的存取存储设备中的读取和写入操作而将页面缓冲在最近访问的存储设备中。与从较慢的存取存储返回所请求页面相比,针对更快的存取高速缓存存储器中的页面的后续读取请求以更快的速率返回,因此减少了读取延时。在指向存储设备的修改页面被写入高速缓存存储器之后以及在该修改页面被写出到诸如硬盘的存储设备之前,高速缓存管理系统还可以返回针对写请求的完成。到存储设备的写入延时通常明显比针对高速缓存存储器的写入的延时更长。因此,使用高速缓存还减少了写入延时。
高速缓存管理系统可以保存针对高速缓存中所存储的每个页面具有一个条目的链接列表,其可以包括在写入到存储设备或读取数据之前在高速缓存中缓冲的写数据。在普遍使用的最近最少使用(LRU)高速缓存技术中,如果高速缓存中的页面被存取,即高速缓存“命中”,则LRU列表中所存取页面的条目被移动到该列表的最近最多使用(MRU)端。如果所请求的页面并不在高速缓存中,即高速缓存未命中,则高速缓存中其条目处于该列表的LRU端的页面可以被去除(或者离台回到存储)并且从存储装入高速缓存的页面数据的条目被添加到LRU列表的MRU端。利用该LRU高速缓存技术,存储更为频繁的页面可能保留在高速缓存中,而较不频繁存取的数据更可能从该列表的LRU端去除而在高速缓存中为新存取的页面留出空间。
LRU高速缓存技术寻求对时间局域性(locality)进行优化从而使得最不可能被马上重写的页面离台,以便使得离台操作的数量最小化,即如果并未离台的写入被重写,则该重写写入的离台被避免,因此节约了从高速缓存向磁盘写入数据的时间和工作。另一方面,还期望以对空间局域性加以利用的方式进行离台,这意味着数据被写入互相最为接近的存储位置以便使得存储设备写入机制和存储媒体需要移动以到达下一个待写入存储位置的距离最小化。
一种用于利用时间和空间局域性的技术是写智慧排序(WiseOrdering for Writes,WOW)算法。WOW算法利用循环链接列表或时钟,其中该环形链接列表针对高速缓存中所缓冲的每个写入请求具有一个条目。该条目在链接列表中根据相关联的写入请求所指向的存储位置进行排序以便对空间局域性的益处加以利用。另外,每个条目包括指示高速缓存中的存储位置的写入数据在近期是否已经被更新的比特。条目的该比特在该条目的写入数据被更新时进行设置。指针指向循环链接列表中的当前条目。使用WOW算法的任务对指针所寻址的条目进行存取。如果条目的比特指示高速缓存中该条目的数据在最近已经被更新,则该比特被设置为指示写入数据最近并未更新,并且指针递增以指向下一个条目而使得具有在空间接近度上下一个与之前写入的存储位置最为接近的存储位置的写入数据的条目得以被考虑。针对在空间接近度上与最后写入的存储位置最为接近的写入选择条目并且其比特指示该条目的写入数据在最近并没有更新。
因此,利用WOW算法,由于出于在空间接近度上与最后离台的写入请求最为接近的考虑而选择所要写入的下一个条目,所以空间局域性被加以利用。另外,由于最近已经被写入的条目将被跳过直至指针循环回到要考虑的该跳过条目,所以时间局域性被加以利用。
磁盘驱动器可以实施WOW算法以及考虑写入页面的线性和角位置二者的其它算法,并且关于当前写入头部位置针对二者进行优化而确定最小的总体服务时间。该处理被称作“基于搜寻和旋转优化的命令重新排序”。磁盘驱动器逻辑板将对写请求进行分析并且基于寻找各种柱面和所要写入的页面的角位置将需要多少时间,以及等待数据在旋转到头部之下将过去多少时间来确定首先要做什么。
本领域需要一种用于使用二级高速缓存系统的有所改进的技术。
发明内容
提供了一种用于管理第一高速缓存和第二高速缓存中的数据的计算机程序产品、系统和方法。当页面被存储在第二高速缓存中时,针对该页面在第二高速缓存中维护参考计数。确定页面将从第二高速缓存提升至第一高速缓存。响应于确定该参考计数大于零,将该页面添加至第一高速缓存中的最近最少使用(LRU)列表的LRU端。响应于确定该参考计数小于或等于零,将该页面添加至第一高速缓存中的LRU列表的最近最多使用(MRU)端。
附图说明
现在将参考附图仅通过示例对本发明的实施例进行描述,其中:
图1图示了计算环境的实施例。
图2图示了第一高速缓存管理信息的实施例。
图3图示了第二高速缓存管理信息的实施例。
图4图示了第一高速缓存控制块的实施例。
图5图示了第二高速缓存控制块的实施例。
图6图示了空间索引条目的实施例。
图7图示了用于使得未修改页面从第一高速缓存降级的操作的实施例。
图8图示了用于使得修改页面从第一高速缓存离台的操作的实施例。
图9图示了用于将页面添加至第一高速缓存的操作的实施例。
图10图示了用于将页面提升至第二高速缓存的操作的实施例。
图11图示了用于释放第二高速缓存中的空间的操作的实施例。
图12图示了用于使得修改页面从第二高速缓存离台的操作的实施例。
图13图示了用于处理针对读取请求所返回的页面的请求的操作的实施例。
图14图示了二级高速缓存系统和存储的实施例。
图15图示了用于将页面从第二高速缓存添加至第一高速缓存的操作的实施例。
具体实施方式
图1图示了计算环境的实施例。多个主机2a、2b…2n可以通过网络6向存储控制器4提交输入/输出(I/O)请求以访问耦合至存储控制器4的存储10中的卷8(例如,逻辑单元编号、逻辑设备、逻辑子系统等)处的数据。存储控制器4包括处理器组(processorcomplex)12,其包括具有单个或多个核心的一个或多个处理器、第一高速缓存14、用于备份高速缓存14中的页面的第一高速缓存备份设备16和第二高速缓存18。第一高速缓存14和第二高速缓存18对在主机2a、2b…2n和存储10之间传输的数据进行高速缓存。第一高速缓存备份设备16可以对第一高速缓存14中的页面提供非易失性存储。在另外的实施例中,第一高速缓存备份设备16可以位于不同于第一高速缓存14的功率边界上的集群或硬件之中。
存储控制器4具有存储器20,其包括用于管理在主机2a、2b…2n和存储10之间传输的页面的传输进行管理的存储管理器22,以及对第一高速缓存14、第一高速缓存备份设备16和第二高速缓存18中的在主机2a、2b…2n和存储10之间传输的数据进行管理的高速缓存管理器24。页面可以包括在存储10中进行配置的任意数据单元,诸如页面、逻辑块地址(LBA)等,其是诸如卷、逻辑设备等的更大页面群组的一部分。高速缓存管理器24保存第一高速缓存管理信息26和第二高速缓存管理信息28以管理第一高速缓存14和第二高速缓存18中的读取(未修改)和写入(经修改)页面。第一高速缓存备份设备索引30提供了针对第一高速缓存备份设备16中的位置的页面标识符的索引。
存储管理器22和高速缓存管理器24在图1中被示为加载到存储器20中并且由处理器组12执行的程序代码。可替换地,一些或全部功能可以在存储控制器4中以硬件设备实施,诸如专用集成电路(ASIC)。
第二高速缓存18可以在日志结构阵列(LSA)32中存储页面,其中页面以所接收的连续顺序进行写入,因此提供了写入第二高速缓存18的页面的时间排序。在LSA中,已经存在于LSA中的页面的后期版本在LSA 32的末端写入。在可替换实施例中,第二高速缓存18可以以不同于LSA中的格式存储数据。
在某些实施例中,第一高速缓存14可以包括随机访问存储器(RAM),诸如动态随机访问存储器(DRAM);第二高速缓存18可以包括闪存,诸如固态设备;并且存储10由一个或多个连续存取存储设备所组成,诸如硬盘驱动器和磁带。存储10可以包括单个连续存取存储设备或者可以包括存储设备的阵列,诸如简单磁盘捆绑(JBOD)、直接访问存储设备(DASD)、独立磁盘冗余阵列(RAID)、虚拟化设备等。存储10耦合至第一高速缓存14和第二高速缓存18中的至少一个。在某些实施例中,第一高速缓存14是比第二高速缓存18更快的存取设备,并且第二高速缓存18是比存储10更快的存取设备。另外,第一高速缓存14可以具有比第二高速缓存18更大的每存储单元成本,并且第二高速缓存18可以具有比存储10更大的每存储单元成本。此外,在某些实施例中,第二高速缓存18可以远大于第一高速缓存14。
第一高速缓存14可以是存储器20的一部分或者以诸如DRAM的单独存储器设备来实施。在某些实施例中,第一高速缓存备份设备16可以包括非易失性备份存储(NVS),诸如非易失性存储器,例如电池备份随机访问存储器(RAM)、静态RAM(SRAM)等。
网络6可以包括存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、互联网和企业内部网,等等。
虽然这里的某些实施例参考了页面的高速缓存索引粒度,但是其它实施例应用于不同高速缓存索引粒度的数据,诸如轨道或区域(extent)。
图2图示了第一高速缓存管理信息26的实施例,其包括提供第一高速缓存14中的页面的索引以对控制块目录52中的控制块进行控制的页面索引50;未修改的连续LRU列表54,其提供第一高速缓存14中未修改的连续页面的时间排序;修改LRU列表56,其提供了第一高速缓存14中经修改的连续和非连续页面的时间排序;未修改的非连续LRU列表58,其提供了第一高速缓存14中未修改的非连续页面的时间排序;参考计数器60;和加速LRU 62。
图3图示了的第二高速缓存管理信息28的实施例,其包括向控制块目录72中的控制块提供第二高速缓存18中的页面的索引的页面索引70;未修改列表74,其提供第二高速缓存18中的未修改页面的时间排序;空间索引76,其基于存储10中存储修改页面的物理位置而提供第二高速缓存18中的修改页面的空间排序;和参考计数器78。
所有LRU列表54、56、58和74可以包括第一高速缓存14和第二高速缓存18中的页面的页面ID,上述页面根据所识别页面最后被存取的时间进行排序。LRU列表54、56、58和74具有指示最近最多存取页面的最近最多使用(MRU)端以及指示最近最少使用或存取页面的LRU端。添加至高速缓存14和18的页面的页面ID被添加至LRU列表的MRU端或LRU端(根据页面的热度)并且从高速缓存14和18所降级的页面从LRU端进行存取。页面索引50和70以及空间索引76可以包括散射指数表(SIT)。可替换类型的数据结构可以被用来提供高速缓存14和18中的页面的时间排序以及第二高速缓存18中的页面的空间排序。
非连续页面可以包括联机事务处理(OLTP)页面,其经常包括并非完全随机并且具有一定的参考局域性的小块写入,即具有被重复存取的概率。
图4图示了控制块目录52中的第一高速缓存控制块100的实施例,其包括控制块标识符(ID)102、第一高速缓存14中的页面的物理位置的第一高速缓存位置104、指示页面是被修改还是未修改的信息106,以及指示页面是连续还是非连续存取的信息108。
图5图示了第二高速缓存控制块目录72中的第二高速缓存控制块120的实施例,其包括控制块标识符(ID)122、页面在LSA 32中所处的LSA位置124,以及指示页面是被修改还是未修改的信息126。
图6图示了空间索引条目140的实施例,其包括第二高速缓存18中的页面的页面标识符142以及页面在存储10中进行存储的物理位置144,诸如柱面、圆形磁片、块地址和存储设备标识符。
图7图示了高速缓存管理器24所执行的用来使得未修改页面从第一高速缓存14降级的操作的实施例。该降级操作可以在确定释放第一高速缓存14中的空间时被发起。在发起(在框200)操作以确定是否从第一高速缓存14去除页面以释放第一高速缓存14中的空间时,高速缓存管理器24基于针对不同类型的未修改页面的预期命中而确定(在框202)是否使得非连续或连续的未修改页面降级。如果(在框204)确定使得未修改的连续页面降级,则高速缓存管理器24使用(在框206)未修改的连续LRU列表54来确定要从列表的LRU端降级的并未被提升至第二高速缓存18的未修改连续页面。如果(在框204)确定使得未修改的非连续页面降级,则高速缓存管理器使用未修改的非连续LRU列表58来确定(在框208)要降级的未修改非连续页面。未修改的非连续页面被提升(在框210)至第二高速缓存18。
图8图示了由高速缓存管理器24所执行的用于使得修改页面从第一高速缓存14离台的操作的实施例。高速缓存管理器24可以作为调度操作的一部分而定期离台页面并且在第一高速缓存备份设备16中需要空间的情况下提高离台率。当发起(在框250)用于离台经修改页面的操作时,高速缓存管理器24对经修改的LRU列表56进行处理(在框252)以确定要从LRU列表56的LRU端离台的经修改页面。如果(在框254)所确定的经修改页面是连续的,则高速缓存管理器24将所确定的经修改的连续页面写入(在框256)到存储10,绕过第二高速缓存18。如果(在框254)经修改的页面是非连续的,则高速缓存管理器24将所确定的经修改的非连续页面提升(在框258)至第二高速缓存18并且从第一高速缓存备份设备16丢弃(在框260)所确定的经修改页面的拷贝。
利用图7和8的操作,非连续页面被降级而并不被提升至第二高速缓存。连续的经修改页面(写入)被直接写入到存储10,绕过第二高速缓存。连续的非修改页面(读取)被丢弃而并不在其它地方进行复制,并且从第一高速缓存14降级的未修改的非连续页面被提升至第二高速缓存18。
图9图示了高速缓存管理器24所执行的用于将页面添加即提升至第一高速缓存14的操作的实施例,该页面可以包括来自主机2a,2b…2n的写入或经修改页面或者并未在高速缓存14或18中找到并且从存储10所获取的读取请求数据。当接收(在框300)要添加至第一高速缓存14的页面时,高速缓存管理器24为待添加页面创建(在框301)控制块100(图4),其指示第一高速缓存14中的位置104以及该页面是否是经修改/未修改的106以及连续/非连续的108。该控制块100被添加至第一高速缓存14的控制块目录52。高速缓存管理器24将条目添加(在框302)至第一高速缓存页面索引50,其具有待添加页面的页面ID以及针对控制块目录52中所创建的高速缓存控制块100的索引。条目被添加(在框304)至待添加页面的页面类型的LRU列表54、56或58的MRU端。如果(在框306)待添加页面是经修改的非连续页面,则待添加页面也被复制(在框308)到第一高速缓存备份设备16并且条目被添加至所添加页面的第一高速缓存设备索引30。如果(在框306)待添加页面是未修改的连续的,则控制结束。
图10图示了高速缓存管理器24所执行的用于将从第一高速缓存14降级的非连续页面提升至第二高速缓存18的操作的实施例。当发起(在框350)用于将页面提升至第二高速缓存18的操作时,高速缓存管理器24在第二高速缓存18中添加(在框352)被提升至LSA 32的页面,并且针对待添加页面创建(在框354)控制块120(图5),其指示LSA 32中的页面位置124以及该页面是否是经修改/未修改的126。条目被添加(在框356)至第二高速缓存页面索引70,其具有所提升页面的页面ID以及针对第二高速缓存18的控制块目录72中所创建的高速缓存控制块120的索引。如果(来自框358的否分支)被提升的页面是未修改数据,则高速缓存管理器24诸如通过向页面ID添加到MRU端而指示(在框360)在未修改LRU列表74的MRU端的提升页面。如果(在框258)所提升的页面是修改数据,则高速缓存管理器24确定(在框362)要在存储10上写入经修改的提升页面的物理位置并且将条目添加(在框364)至指示所提升页面的页面ID和所确定的提升页面在存储10上的物理位置144的空间索引76。
图11图示了高速缓存管理器24所执行的用于为要添加至第二高速缓存18的页面释放第二高速缓存18中的空间的操作,上述页面即从第一高速缓存14所降级的页面。当发起该操作(在框400)时,高速缓存管理器24从未修改LRU列表74的LRU端确定(在框402)第二高速缓存18中的未修改页面,并且使得所确定的未修改页面无效(在框404)而并不将被无效的未修改页面离台至存储10,并且还从未修改LRU列表74去除被无效的未修改页面。
图12图示了由高速缓存管理器24所执行的用于将第二高速缓存12中的经修改页面离台至存储10的操作的实施例。当发起(在框420)该离台操作时,高速缓存管理器24使用(在框422)空间索引76以基于它们在空间索引76中的顺序而将第二高速缓存18中的修改页面确定至处于存储10上的接近物理位置的群组,诸如处于按位置排序的空间索引76中的连续条目140(图6)的页面群组。所确定的分组的修改页面从第二高速缓存18离台(在框424)至存储10。
图12的操作通过令存储10在存储10的写表面上在物理上最为接近的物理位置写入页面而对针对存储10的写入操作进行优化,该存储10包括连续存取的存储设备,由此使得用于将第二高速缓存18中的页面写入到存储10的存储10的写入头的寻找和移动的数量最小化。页面基于时间因素而并非按照针对诸如硬盘驱动器的连续存取存储10的连续写入进行优化的顺序从第一高速缓存16提升至第二高速缓存18,上述时间因素诸如其在LRU列表54、56、58中的位置。因此,图12的操作基于它们在存储10上的空间位置而对按时间排序的修改页面进行优化以对存储10处的写入进行优化。
图13图示了高速缓存管理器24所执行的用于针对读取请求而从高速缓存14和18以及存储10获取所请求页面的操作。处理该读取请求的存储管理器22可以将针对所请求页面的请求提交至高速缓存管理器24。当接收到(在框450)针对页面的请求时,高速缓存管理器24使用(在框454)第一高速缓存页面索引50来确定是否所有的所请求页面都处于第一高速缓存14中。如果(在框454)所有所请求的页面都处于第一高速缓存14中,则高速缓存管理器24使用(在框456)第二高速缓存页面索引70来确定第二高速缓存18中的任意所请求页面并不处于第一高速缓存14中。如果(在框458)存在并未在第一高速缓存14和第二高速缓存18中找到的请求页面,则高速缓存管理器24根据第二高速缓存页面索引70确定(在框460)存储10中的任意请求页面并不处于第一高速缓存14和第二高速缓存18中。高速缓存管理器24随后将在第二高速缓存18和存储10中所确定的任意页面提升(在框462)至第一高速缓存14。高速缓存管理器24使用(在框464)第一高速缓存页面索引50从第一高速缓存14获取所请求页面以针对读取请求返回。所获取页面的条目被移动(在框466)至LRU列表54、56、58的包括所获取页面的条目的MRU端。利用图13的操作,在去往存储10之前,高速缓存管理器24首先从最高级别的高速缓存14获取所请求页面,其次为第二高速缓存18,因为高速缓存14和18将具有所请求页面的最近修改的版本。最近版本首先在第一高速缓存14中找到,随后如果并不处于第一高速缓存14中则在第二高速缓存18找到,并且随后如果不在高速缓存14、18中则在存储10中找到。
利用图13的操作,在去往存储10之前,高速缓存管理器24首先从最高级别的高速缓存14获取所请求页面,其次为第二高速缓存18,因为高速缓存14和18将具有所请求页面的最近修改的版本。最近版本首先在第一高速缓存14中找到,随后如果并不处于第一高速缓存14中则在第二高速缓存18找到,并且随后如果不在高速缓存14、18中则在存储10中找到。
所描述的实施例提供了允许在主要或第一级高速缓存和存储之间使用第二级高速缓存的技术,以在最快速存取的第一高速缓存14具有最为昂贵的空间、每字节成本时增加高速缓存空间,并且比第一高速缓存廉价但是比存储更快的第二高速缓存能够被用来增加系统中高速缓存数据的数量。增加更快存取的高速缓存存储空间在所请求数据处于高速缓存之中时改善了针对高速缓存数据的存取并且能够从高速缓存进行返回而并非必须从存取更慢、较为廉价的存储获取。另外,在所描述的实施例中,页面基于在第一高速缓存中的时间顺序而添加至第二高速缓存中,并且随后基于在连续存取的存储中的空间物理位置在第二高速缓存中进行排序,从而离台页面以页面群组在存储中的接近或连续物理位置进行写入以便优化页面向存储的写入。
图14图示了两级高速缓存系统14、18与存储10的实施例。两个级别的高速缓存为第一高速缓存14和第二高速缓存18。
高速缓存管理器24对两级高速缓存系统14、18中的第一高速缓存14进行优化,其中第一高速缓存14和第二高速缓存18是形成该两级高速缓存系统的两个高速缓存。高速缓存管理器24在页面从第二高速缓存18提升至第一高速缓存14中时预测页面的使用。基于该页面使用,高速缓存管理器24通过在适当LRU列表54、56、58中的适当位置插入页面而对第一高速缓存14进行优化。
高速缓存管理器24对第一高速缓存14的利用进行改善而使得第一高速缓存14中从第二高速缓存18提升的页面以使得第一高速缓存14中的命中比率最大化的方式被插入第一高速缓存14中的LRU列表54、56、58中。
在某些实施例中,页面在参考时被放入第一高速缓存14。因此,页面在该页面在第二高速缓存18中的每次命中时被提升至第一高速缓存14。然而,如果页面在第二高速缓存18中的热度为“冷”(即,并不频繁存取),则高速缓存管理器24并不想冷的页面长期占据第一高速缓存14的页面框;因此,高速缓存管理器24将冷的页面插入第一高速缓存14的LRU列表而不是MRU,而使得冷的页面被很快逐出。高速缓存管理器24可以将“热”(即,被频繁存取的)页面插入第一高速缓存14的LRU列表的MRU。
高速缓存管理器24通过维护第一高速缓存14和第二高速缓存18中的参考计数器60、78而在页面驻留在第一和第二高速缓存14、18中时识别页面的热度。由于高速缓存在第二高速缓存18中的任何页面之前都处于第一高速缓存14中并且超出第一高速缓存14的期限,所以高速缓存管理器24利用以下规则来识别当前高速缓存在第二高速缓存18中的页面仍然很热还是已经变冷(即,分别应当提升至第一高速缓存14的LRU列表的MRU端还是第一高速缓存14的LRU列表的LUR端):如果与页面之前高速缓存在第一高速缓存14时所看到的页面命中相比,已经在第二高速缓存18上看到页面更多的命中,则来自第二高速缓存18的页面被提升至第一高速缓存14的LRU列表的MRU端。特别地:
1.对于第一高速缓存14和第二高速缓存18,对每个页面维护参考计数器60、78。令cR和cF分别是第一高速缓存14和第二高速缓存18的那些计数器。
2.当页面被高速缓存在第一高速缓存14中时,cR在每次参考该页面时递增。
3.当页面从第一高速缓存14降级至第二高速缓存18时,如果cF<0,则cF被初始化为kcR(其中k=1,2,3,…)。k是用来调节页面热度的常数。
4.当页面高速缓存在第二高速缓存上的同时,在参考页面时,cF递减,并且:
如果cF>0,则页面被提升至第一高速缓存14的LRU列表的LRU端;
否则,该页面被提升至第一高速缓存14的LRU列表的MRU端。
以这种方式,长期保持热度的页面占据第一高速缓存14中的框。开始变冷的页面被推出到第二高速缓存18并且在那里保持更长时间,从而如果那些页面在在不久的将来变热就会得到第二次进入第一高速缓存14的LRU列表的MRU位置的机会。在某些实施例中,如果第二高速缓存18中已经看到至少K次命中的页面应当被提升到第一高速缓存14的LRU列表的MRU位置,则cF能够被初始化为kcR和常数K的最大值。
在某些实施例中,k是静态配置参数并且由系统管理员进行设置。在某些可替换实施例中,k是(例如,由高速缓存管理器24)自动调节的动态配置参数。在这些可替换实施例的一些中,k被确定为两个高速缓存14、18的平均热度。因此,k表示两个高速缓存14、18的适当缩放因数。
在某些实施例中,冷的页面从第二高速缓存18提升至被加速的LRU列表62而不是被添加至第一高速缓存14的另一个LRU列表的LRU端。当页面要从第一高速缓存14被逐出时,要被逐出的页面从加速的LRU列表62进行选择。
图15图示了由高速缓存24所执行的用于将页面添加即提升至第一高速缓存14的操作的实施例,该页面可以包括第二高速缓存18中被读取请求并且因此从第二高速缓存18移动至第一高速缓存14的非连续页面。当接收(在框500)页面以添加至第一高速缓存14时,高速缓存管理器24为待添加页面创建(在框502)控制块100(图4),其指示第一高速缓存14中的位置104以及该页面是否是经修改/未修改的106以及连续/非连续的108。该控制块100被添加至第一高速缓存14的控制块目录52。高速缓存管理器24向第一高速缓存页面索引50添加(在框504)具有待添加页面的页面ID以及针对控制块目录52中所创建的高速缓存控制块100的索引的条目。
在框506,高速缓存管理器24针对该页面确定是否cf>0。如果是,则处理继续进行至框510,否则,处理继续进行至框512。条目被添加(在框508)至待添加页面的页面类型的LRU列表54、56或58的MRU端。条目被添加(在框510)至待添加页面的页面类型的LRU列表54、56或58的LRU端。如果(在框512)待添加页面是经修改的非连续页面,则待添加页面还被复制(在框514)到第一高速缓存备份设备16并且条目针对所添加的页面而被添加至第一高速缓存备份设备索引30。如果(在框512)待添加页面是未修改的连续的,则控制结束。
因此,实施例针对两级高速缓存中的提升,其中页面要从第二级高速缓存(即,第二高速缓存18)被置于第一级高速缓存(即,第一高速缓存14中)。实施例查看被提升页面的近期历史。如果该页面相对热,则高速缓存管理器24将热的页面放在第一级高速缓存的LRU列表的MRU端。如果该页面已经相对冷,则高速缓存管理器24将该页面置于要被快速逐出的条件(即,放在第一级高速缓存的MRU列表的LRU端)。
所描述的操作可以使用标准编程和/或工程技术而被实施为方法、装置或计算机程序产品以产生软件、固件、硬件或者其任意组合。因此,实施例的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者将软件和硬件方面相结合的实施例的形式,它们在这里全部都可以被称作“电路”、“模块”或“系统”。此外,实施例的各方面可以采用以具有记录于其上的计算机可读程序代码的一个或多个计算机可读介质实现的计算机程序产品的形式。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
计算机程序指令还可以被加载到计算机、其它可编程数据处理装置或者其它设备上而使得一系列操作步骤得以在计算机、其它可编程装置或其它设备上执行以产生计算机实施的处理而使得在计算机或其它可编程装置上执行的指令提供用于实施以流程图和/或框图中的一个或多个框中所指定的功能/动作的处理。
除非另外明确指出,否则术语“一个实施例”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一个或多个实施例”、“一些实施例”和“一实施例”意味着“(多个)本发明的一个或多个(但并非全部)实施例”。
除非另外明确指出,否则术语“包含”、“包括”、“具有”及其变化形式表示“包括但并不局限于”。
除非另外明确指出,否则按编号列举的事项并非意味着任意或全部事项是互相排斥的。
除非另外明确指出,否则术语“一个”“一种”(“a”、“an”和“the”)意味着“一个或多个”。
除非另外明确指出,否则互相进行通信的设备不需要互相持续通信。此外,互相进行通信的设备可以直接通信或者通过一个或多个中介进行通信。
对具有互相通信的若干组件的实施例的描述并非意味着所有这些组件都是必须的。相反,对各种可选组件进行描述以阐述本发明的各种可能实施例。
另外,虽然处理步骤、方法步骤、算法等可以按连续顺序进行描述,但是这样的处理、方法和算法可以被配置为以可替换顺序进行工作。换句话说,可以描述的任意步骤序列或顺序并非必然表示该步骤以该顺序执行的要求。这里所描述的处理步骤实际上可以以任意顺序来执行。另外,一些步骤可以同时执行。
当这里描述单个设备或物品时,将会轻易显而易见的是,多于一个的设备/物品(无论它们是否协同操作)可以替代单个设备/物品使用。类似地,在描述多于一个的设备或物品(无论它们是否协同操作)的情况下,将会轻易显而易见的是,单个设备/物品可以替代多于一个的设备/物品使用,或者可以替代所示出数量的设备或程序使用不同数量的设备/物品。设备的功能和/或特征可以可替换地由并未明确被描述为具有这样的功能/特征的一个或多个其它设备来体现。因此,本发明的其它实施例无需包括设备自身。
所图示的图7-图13和15的操作示出了以某种顺序发生的某些事件。在可替换实施例中,某些操作可以以不同顺序执行、被修改或去除。此外,可以向以上所描述的逻辑添加步骤并且仍然符合所描述的实施例。另外,这里所描述的操作可以顺序进行或者某些操作可以并行处理。再进一步地,操作可以由单个处理单元湖综合分布式处理单元来执行。
已经出于说明和描述的目的给出了以上对本发明的各个实施例的描述。其并非意在是穷举的或者将本发明限制为所公开的确切形式。考虑到以上教导,许多修改和变化都是可能的。本发明的范围并非意在由该详细描述所限制,而是由所附权利要求进行限制。以上说明书、示例和数据提供了本发明合成物的制造和使用的完整描述。由于能够在不背离本发明精神和范围的情况下形成本发明的许多实施例,所以本发明以随后所附的权利要求所体现。
Claims (9)
1.一种用于管理第一高速缓存和第二高速缓存中的数据的方法,包括:
当页面被存储在第二高速缓存中时,使用计算机的处理器针对所述页面在所述第二高速缓存中维护参考计数;
确定所述页面将从所述第二高速缓存提升至所述第一高速缓存;
响应于确定所述参考计数大于零,将所述页面添加至所述第一高速缓存中的最近最少使用LRU列表的LRU端;以及
响应于确定所述参考计数小于或等于零,将所述页面添加至所述第一高速缓存中的所述LRU列表的最近最多使用(MRU)端。
2.根据权利要求1所述的方法,其中所述第一高速缓存和所述第二高速缓存被耦合至存储。
3.根据权利要求1或权利要求2所述的方法,其中所述第一高速缓存是比所述第二高速缓存更快的存取设备,并且其中所述第二高速缓存是比所述存储更快的存取设备。
4.根据权利要求1所述的方法,其中所述第一高速缓存包括随机存取存储器(RAM),所述第二高速缓存包括闪存设备,并且所述存储包括连续写入设备。
5.根据前述任一项权利要求所述的方法,其中所述参考计数包括第一参考计数,并且进一步包括:
当所述页面被存储在所述第一高速缓存中时,针对所述页面在所述第一高速缓存中维护第二参考计数,其中针对所述第一高速缓存中的所述页面的所述第二参考计数在每次参考所述第一高速缓存中的所述页面时递增。
6.根据前述任一项权利要求所述的方法,进一步包括:
在每次参考所述第二高速缓存中的所述页面时递减针对所述第二高速缓存中的所述页面的所述参考计数。
7.根据权利要求1所述的方法,其中所述参考计数包括第一参考计数,并且进一步包括:
响应于确定所述页面从所述第一高速缓存降级至所述第二高速缓存,
确定所述第一参考计数是否小于零;以及
响应于确定所述第一参考计数小于零,将所述第一参考计数设置为等于第二参考计数的常数(k)倍。
8.一种用于对第一高速缓存和第二高速缓存中的数据进行管理的计算机程序产品,所述计算机程序产品包括具有体现于其中的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码执行以实施根据权利要求1至7中任一项所述的方法。
9.一种用于管理数据的系统,包括:
第一高速缓存;
第二高速缓存;
处理器;
计算机可读存储介质,具有由所述处理器执行以执行根据权利要求1至7中任一项所述的方法的代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/412,412 | 2012-03-05 | ||
US13/412,412 US8930624B2 (en) | 2012-03-05 | 2012-03-05 | Adaptive cache promotions in a two level caching system |
PCT/IB2013/051313 WO2013132370A1 (en) | 2012-03-05 | 2013-02-18 | Adaptive cache promotions in a two level caching system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104145252A true CN104145252A (zh) | 2014-11-12 |
CN104145252B CN104145252B (zh) | 2017-03-29 |
Family
ID=49043503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380012272.7A Active CN104145252B (zh) | 2012-03-05 | 2013-02-18 | 两级高速缓存系统中的自适应高速缓存提升 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8930624B2 (zh) |
JP (1) | JP6113199B2 (zh) |
CN (1) | CN104145252B (zh) |
DE (1) | DE112013001284B4 (zh) |
GB (1) | GB2514501B (zh) |
WO (1) | WO2013132370A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN106844231A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存软硬件协作分区域管理系统及管理方法 |
CN107111558A (zh) * | 2014-12-26 | 2017-08-29 | 英特尔公司 | Nfvs和其他生产者‑消费者工作负载vm间通信性能和能量改进的硬件/软件协同优化 |
CN107526689A (zh) * | 2016-06-17 | 2017-12-29 | 希捷科技有限公司 | 读高速缓存管理 |
CN109857680A (zh) * | 2018-11-21 | 2019-06-07 | 杭州电子科技大学 | 一种基于动态页面权重的lru闪存缓存管理方法 |
CN110058964A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 数据恢复方法、数据恢复系统和计算机程序产品 |
CN110413214A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、设备和计算机程序产品 |
CN111915763A (zh) * | 2020-07-24 | 2020-11-10 | 东风汽车有限公司 | 一种汽车高级驾驶辅助功能异常信息采集方法及电子设备 |
CN114138186B (zh) * | 2021-11-10 | 2024-02-23 | 杭州当虹科技股份有限公司 | 一种可动态调节的缓存方法和装置 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700861B1 (en) * | 2012-03-28 | 2014-04-15 | Emc Corporation | Managing a dynamic list of entries for cache page cleaning |
JP2015517697A (ja) * | 2012-05-23 | 2015-06-22 | 株式会社日立製作所 | 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法 |
US9733991B2 (en) | 2012-09-14 | 2017-08-15 | International Business Machines Corporation | Deferred re-MRU operations to reduce lock contention |
US9547604B2 (en) | 2012-09-14 | 2017-01-17 | International Business Machines Corporation | Deferred RE-MRU operations to reduce lock contention |
US8990524B2 (en) * | 2012-09-27 | 2015-03-24 | Hewlett-Packard Development Company, Lp. | Management of data elements of subgroups |
US9286219B1 (en) * | 2012-09-28 | 2016-03-15 | Emc Corporation | System and method for cache management |
US9851923B2 (en) * | 2013-12-30 | 2017-12-26 | Teradata Us, Inc. | Management of data in multi-storage systems that can include non-volatile and volatile storages |
US10268410B2 (en) | 2014-10-20 | 2019-04-23 | Netapp, Inc. | Efficient modification of storage system metadata |
US9965196B2 (en) * | 2014-10-20 | 2018-05-08 | Netapp, Inc. | Resource reservation for storage system metadata updates |
CN105938447B (zh) * | 2015-03-06 | 2018-12-14 | 华为技术有限公司 | 数据备份装置及方法 |
US9652406B2 (en) | 2015-04-30 | 2017-05-16 | International Business Machines Corporation | MRU batching to reduce lock contention |
US10320936B2 (en) | 2015-10-20 | 2019-06-11 | International Business Machines Corporation | Populating a secondary cache with unmodified tracks in a primary cache when redirecting host access from a primary server to a secondary server |
US10127152B2 (en) | 2015-10-20 | 2018-11-13 | International Business Machines Corporation | Populating a second cache with tracks from a first cache when transferring management of the tracks from a first node to a second node |
US10033810B2 (en) | 2015-12-03 | 2018-07-24 | International Business Machines Corporation | Recovery point objective via dynamic usage of bind segments in a global mirror environment |
KR20170109133A (ko) * | 2016-03-17 | 2017-09-28 | 에스케이하이닉스 주식회사 | 하이브리드 메모리 장치 및 그의 데이터 관리 방법 |
KR20170130011A (ko) * | 2016-05-17 | 2017-11-28 | 삼성전자주식회사 | 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법 |
US10235283B2 (en) | 2017-03-14 | 2019-03-19 | International Business Machines Corporation | Techniques for supporting in-place updates with a log-structured array controller |
CN110413545B (zh) * | 2018-04-28 | 2023-06-20 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
US10983922B2 (en) * | 2018-05-18 | 2021-04-20 | International Business Machines Corporation | Selecting one of multiple cache eviction algorithms to use to evict a track from the cache using a machine learning module |
US11151057B2 (en) * | 2019-12-06 | 2021-10-19 | EMC IP Holding Company LLC | Method and system for efficiently evicting data from memory slots in a storage system |
US11022014B1 (en) | 2020-04-28 | 2021-06-01 | Faurecia Emissions Control Technologies, Usa, Llc | Exhaust aftertreatment system with heated flash-boiling doser |
US11379382B2 (en) * | 2020-12-08 | 2022-07-05 | International Business Machines Corporation | Cache management using favored volumes and a multiple tiered cache memory |
US11372778B1 (en) | 2020-12-08 | 2022-06-28 | International Business Machines Corporation | Cache management using multiple cache memories and favored volumes with multiple residency time multipliers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860131A (en) * | 1996-06-17 | 1999-01-12 | Helix Software Co. | Method for providing dynamic cache management in a computer system |
US6141731A (en) * | 1998-08-19 | 2000-10-31 | International Business Machines Corporation | Method and system for managing data in cache using multiple data structures |
US20060136668A1 (en) * | 2004-12-17 | 2006-06-22 | Rudelic John C | Allocating code objects between faster and slower memories |
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61131142A (ja) | 1984-11-30 | 1986-06-18 | Casio Comput Co Ltd | Lru機構 |
US5381539A (en) | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
JPH0652060A (ja) | 1992-07-28 | 1994-02-25 | Hitachi Ltd | Lruリスト制御方式 |
JP2001109664A (ja) | 1999-10-08 | 2001-04-20 | Ricoh Co Ltd | 情報処理装置およびそのバッファ管理方法 |
US6738865B1 (en) | 2000-06-09 | 2004-05-18 | International Business Machines Corporation | Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data |
CA2312444A1 (en) | 2000-06-20 | 2001-12-20 | Ibm Canada Limited-Ibm Canada Limitee | Memory management of data buffers incorporating hierarchical victim selection |
US6507893B2 (en) | 2001-01-26 | 2003-01-14 | Dell Products, L.P. | System and method for time window access frequency based caching for memory controllers |
US6785771B2 (en) * | 2001-12-04 | 2004-08-31 | International Business Machines Corporation | Method, system, and program for destaging data in cache |
JP2004355365A (ja) * | 2003-05-29 | 2004-12-16 | Fujitsu Ltd | キャッシュ管理装置およびキャッシュメモリ管理方法 |
US7769974B2 (en) | 2004-09-10 | 2010-08-03 | Microsoft Corporation | Increasing data locality of recently accessed resources |
US20070067575A1 (en) | 2005-09-20 | 2007-03-22 | Morris John M | Method of managing cache memory based on data temperature |
US8363519B2 (en) | 2006-06-30 | 2013-01-29 | Seagate Technology Llc | Hot data zones |
US20080104323A1 (en) | 2006-10-26 | 2008-05-01 | Colglazier Daniel J | Method for identifying, tracking, and storing hot cache lines in an smp environment |
US7711905B2 (en) | 2007-07-16 | 2010-05-04 | International Business Machines Corporation | Method and system for using upper cache history information to improve lower cache data replacement |
US8171224B2 (en) * | 2009-05-28 | 2012-05-01 | International Business Machines Corporation | D-cache line use history based done bit based on successful prefetchable counter |
US8880835B2 (en) | 2009-07-07 | 2014-11-04 | International Business Machines Corporation | Adjusting location of tiered storage residence based on usage patterns |
US20110107042A1 (en) | 2009-11-03 | 2011-05-05 | Andrew Herron | Formatting data storage according to data classification |
JP2011150684A (ja) * | 2009-12-21 | 2011-08-04 | Sony Corp | キャッシュメモリおよびキャッシュメモリ制御装置 |
JP5434738B2 (ja) | 2010-03-26 | 2014-03-05 | 日本電気株式会社 | ディスク装置 |
-
2012
- 2012-03-05 US US13/412,412 patent/US8930624B2/en active Active
- 2012-05-08 US US13/466,861 patent/US8935479B2/en active Active
-
2013
- 2013-02-18 CN CN201380012272.7A patent/CN104145252B/zh active Active
- 2013-02-18 JP JP2014560468A patent/JP6113199B2/ja active Active
- 2013-02-18 DE DE112013001284.7T patent/DE112013001284B4/de active Active
- 2013-02-18 WO PCT/IB2013/051313 patent/WO2013132370A1/en active Application Filing
- 2013-02-18 GB GB1414607.0A patent/GB2514501B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860131A (en) * | 1996-06-17 | 1999-01-12 | Helix Software Co. | Method for providing dynamic cache management in a computer system |
US6141731A (en) * | 1998-08-19 | 2000-10-31 | International Business Machines Corporation | Method and system for managing data in cache using multiple data structures |
US20060136668A1 (en) * | 2004-12-17 | 2006-06-22 | Rudelic John C | Allocating code objects between faster and slower memories |
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111558B (zh) * | 2014-12-26 | 2021-06-08 | 英特尔公司 | 处理器及其上实现的方法 |
US11513957B2 (en) | 2014-12-26 | 2022-11-29 | Intel Corporation | Processor and method implementing a cacheline demote machine instruction |
CN107111558A (zh) * | 2014-12-26 | 2017-08-29 | 英特尔公司 | Nfvs和其他生产者‑消费者工作负载vm间通信性能和能量改进的硬件/软件协同优化 |
CN107526689A (zh) * | 2016-06-17 | 2017-12-29 | 希捷科技有限公司 | 读高速缓存管理 |
CN107526689B (zh) * | 2016-06-17 | 2024-01-16 | 希捷科技有限公司 | 读高速缓存管理 |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN106844231A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存软硬件协作分区域管理系统及管理方法 |
CN110058964A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 数据恢复方法、数据恢复系统和计算机程序产品 |
CN110058964B (zh) * | 2018-01-18 | 2023-05-02 | 伊姆西Ip控股有限责任公司 | 数据恢复方法、数据恢复系统和计算机可读介质 |
CN110413214A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、设备和计算机程序产品 |
CN110413214B (zh) * | 2018-04-28 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、设备和计算机程序产品 |
CN109857680A (zh) * | 2018-11-21 | 2019-06-07 | 杭州电子科技大学 | 一种基于动态页面权重的lru闪存缓存管理方法 |
CN111915763A (zh) * | 2020-07-24 | 2020-11-10 | 东风汽车有限公司 | 一种汽车高级驾驶辅助功能异常信息采集方法及电子设备 |
CN114138186B (zh) * | 2021-11-10 | 2024-02-23 | 杭州当虹科技股份有限公司 | 一种可动态调节的缓存方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2015516613A (ja) | 2015-06-11 |
WO2013132370A1 (en) | 2013-09-12 |
JP6113199B2 (ja) | 2017-04-12 |
CN104145252B (zh) | 2017-03-29 |
US20130232294A1 (en) | 2013-09-05 |
US20130232295A1 (en) | 2013-09-05 |
GB2514501B (en) | 2015-03-25 |
DE112013001284B4 (de) | 2022-07-07 |
GB201414607D0 (en) | 2014-10-01 |
US8935479B2 (en) | 2015-01-13 |
GB2514501A (en) | 2014-11-26 |
US8930624B2 (en) | 2015-01-06 |
DE112013001284T5 (de) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104145252A (zh) | 两级高速缓存系统中的自适应高速缓存提升 | |
US10482032B2 (en) | Selective space reclamation of data storage memory employing heat and relocation metrics | |
US7783839B2 (en) | Using different algorithms to destage different types of data from cache | |
US7721043B2 (en) | Managing write requests in cache directed to different storage groups | |
CN103562843B (zh) | 用于管理顺序存取存储设备中的数据的方法和设备 | |
US8775729B2 (en) | Prefetching data tracks and parity data to use for destaging updated tracks | |
US9026732B2 (en) | Demoting partial tracks from a first cache to a second cache | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
CN103257932B (zh) | 用于管理计算机可读高速缓存系统中的数据的方法和系统 | |
US20130185514A1 (en) | Cache management of track removal in a cache for storage | |
EP2805241B1 (en) | Populating a first stride of tracks from a first cache to write to a second stride in a second cache | |
CN103562887A (zh) | 用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理 | |
US10503645B1 (en) | Data protection | |
JP2854668B2 (ja) | ディスク・キャッシュ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |