CN106155936B - 一种缓存替换方法与相关装置 - Google Patents

一种缓存替换方法与相关装置 Download PDF

Info

Publication number
CN106155936B
CN106155936B CN201510152125.0A CN201510152125A CN106155936B CN 106155936 B CN106155936 B CN 106155936B CN 201510152125 A CN201510152125 A CN 201510152125A CN 106155936 B CN106155936 B CN 106155936B
Authority
CN
China
Prior art keywords
cache
target
replaced
llc
blocks
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
CN201510152125.0A
Other languages
English (en)
Other versions
CN106155936A (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.)
Institute of Computing Technology of CAS
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201510152125.0A priority Critical patent/CN106155936B/zh
Publication of CN106155936A publication Critical patent/CN106155936A/zh
Application granted granted Critical
Publication of CN106155936B publication Critical patent/CN106155936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种缓存替换方法,用于提升多核inclusive存储系统中缓存的命中率。本发明实施例方法包括:在LLC中确定多个待替换的缓存块;根据多个待替换的缓存块,确定目标L1 Cache;向目标L1 Cache发送多个待替换的缓存块的信息;从L(N‑1)Cache处接收目标缓存块信息;在LLC中替换目标缓存块。本发明实施例还提供了相关的缓存替换装置。

Description

一种缓存替换方法与相关装置
技术领域
本发明涉及数据存储领域,尤其涉及一种缓存替换方法与相关装置。
背景技术
高速缓冲存储器(Cache)(以下简称缓存)是存储系统中至关重要的组成部分,它位于主存储器和处理器之间,具有较小的容量和较高的速度。为了提升存储系统的性能,现阶段的技术中的存储系统大都为采用包含(inclusive)组织结构的多级缓存的inclusive存储系统。在inclusive存储系统中,下级缓存总是包括上级缓存中的所有缓存块。
缓存最重要的技术指标是它的命中率,制定合理的缓存替换方法以提升缓存的命中率具有重要的实际应用价值。根据程序局部性规律可知:程序在运行中,总是频繁地使用那些最近被使用过的指令和数据。在此理论基础上,现阶段的技术中提供了一种最近最少使用(LRU,Least Recently Used)算法,用于根据缓存中各缓存块的使用情况,选择最近最少使用的缓存块进行替换。
但是在inclusive存储系统中,下级缓存总是包括上级缓存中的所有缓存块。因此若是下级缓存中要替换的缓存块在上级缓存中存在,为了保证系统的inclusive组织结构,需要将上级缓存中的该缓存块无效掉,而该缓存块在上级缓存中有可能是热点缓存块。这样就导致了缓存中的热点缓存块被无效,影响了缓存的命中率。
发明内容
本发明实施例提供了一种缓存替换方法,用于提升多核inclusive存储系统的缓存的命中率。
本发明实施例第一方面提供了一种缓存替换方法,适用于多核包含inclusive存储系统,所述存储系统包括M个核,并包括所述M个核对应的M个第一级缓存L1Cache、M个第2级缓存L2Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数,所述方法包括:
在所述LLC中确定多个待替换的缓存块;
根据所述多个待替换的缓存块,确定目标L1Cache;
向所述目标L1Cache发送所述多个待替换的缓存块的信息;
从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1Cache在确定了目标缓存块后逐级下发;
在所述LLC中替换所述目标缓存块。
结合本发明实施例的第一方面,本发明实施例的第一方面的第一种实现方式中,所述在所述LLC中确定多个待替换的缓存块包括:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
结合本发明实施例的第一方面或第一方面的第一种实现方式,本发明实施例的第一方面的第二种实现方式中,所述根据所述多个待替换的缓存块,确定目标L1Cache包括:
确定每个L1Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1Cache确定为目标L1Cache。
结合本发明实施例的第一方面、第一方面的第一种或第二种实现方式,本发明实施例的第一方面的第三种实现方式中,所述在所述LLC中替换所述目标缓存块之前还包括:
判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则通知所述LLC之外的缓存无效所述目标缓存块。
结合本发明实施例的第一方面、第一方面的第一种至第三种实现方式中的任一项,本发明实施例的第一方面的第四种实现方式中,所述目标缓存块为所述目标L1Cache中的非热点缓存块。
本发明实施例的第二方面提供了一种缓存替换装置,适用于多核包含inclusive存储系统,所述存储系统包括M个核,并包括所述M个核对应的M个第一级缓存L1Cache、M个第2级缓存L2Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数,所述装置包括:
缓存块确定模块,用于在所述LLC中确定多个待替换的缓存块;
缓存确定模块,用于根据所述多个待替换的缓存块,确定目标L1Cache;
信息发送模块,用于向所述目标L1Cache发送所述多个待替换的缓存块的信息;
信息接收模块,用于从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1Cache逐级下发;
缓存块替换模块,用于在所述LLC中替换所述目标缓存块。
结合本发明实施例的第二方面,本发明实施例的第二方面的第一种实现方式中,所述缓存块替换模块具体用于:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
结合本发明实施例的第二方面或第二方面的第一种实现方式,本发明实施例的第二方面的第二种实现方式中,所述缓存确定模块具体用于:
确定每个L1Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1Cache确定为目标L1Cache。
结合本发明实施例的第二方面、第二方面的第一种或第二种实现方式,本发明实施例的第二方面的第三种实现方式中,所述装置还包括:
缓存块判断模块,用于判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则触发所述信息发送模块执行:通知所述LLC之外的缓存无效所述目标缓存块。
结合本发明实施例的第二方面、第二方面的第一种至第三种实现方式中的任一项,本发明实施例的第二方面的第四种实现方式中,所述目标缓存块为所述目标L1Cache中的非热点缓存块。
本发明实施例的第三方面提供了一种缓存系统,所述缓存系统包括M个第一级缓存L1Cache、M个第2级缓存L2Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数,所述LLC用于执行以下步骤:
在所述LLC中确定多个待替换的缓存块;
根据所述多个待替换的缓存块,确定目标L1Cache;
向所述目标L1Cache发送所述多个待替换的缓存块的信息;
从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1Cache逐级下发;
在所述LLC中替换所述目标缓存块。
结合本发明实施例的第三方面,本发明实施例的第三方面的第一种实现方式中,所述在所述LLC中确定多个待替换的缓存块包括:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
结合本发明实施例的第三方面或第三方面的第一种实现方式,本发明实施例的第第三方面的第二种实现方式中,所述根据所述多个待替换的缓存块,确定目标L1Cache包括:
确定每个L1Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1Cache确定为目标L1Cache。
结合本发明实施例的第三方面、第三方面的第一种或第二种实现方式,本发明实施例的第三方面的第三种实现方式中,所述在所述LLC中替换所述目标缓存块之前还包括:
判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则通知所述LLC之外的缓存无效所述目标缓存块。
结合本发明实施例的第三方面、第三方面的第一种至第三种实现方式中的任一项,本发明实施例的第三方面的第四种实现方式中,所述目标缓存块为所述目标L1Cache中的非热点缓存块。
本发明实施例的第四方面提供了一种处理器,其特征在于,所述处理器包括M个核,以及本发明实施例的第三方面、第三方面的第一种至第四种实现方式中的任一项所述的缓存系统。
本实施例提供的一种缓存替换方法包括:在LLC中确定多个待替换的缓存块;根据多个待替换的缓存块,确定目标L1Cache;向目标L1Cache发送多个待替换的缓存块的信息;从L(N-1)Cache处接收目标缓存块信息;在LLC中替换目标缓存块。本发明实施例中LLC不再直接确定用于替换的目标缓存块,而是确定多个待替换的缓存块,根据该多个待替换的缓存块选择目标L1Cache,并将该多个待替换的缓存块的信息发送给目标L1Cache,由目标L1Cache在该多个待替换的缓存块中选择用于替换的目标缓存块。通过将原本由LLC执行的选择目标缓存块的操作交由目标L1Cache执行,可以避免因LLC无法获知各个L1Cache中的各个缓存块的热点程度而导致的L1Cache中的热点缓存块被无效掉的情况,减少了L1Cache中热点缓存块被无效的次数,使得存储系统的缓存的命中率得到了提升。
附图说明
图1为多核inclusive存储系统中多级缓存的层级结构示意图;
图2为本发明实施例中缓存替换方法一个实施例流程图;
图3为本发明实施例中缓存替换方法一个应用场景流程图;
图4为本发明实施例中缓存替换装置一个实施例结构图;
图5为本发明实施例中缓存系统架构图;
图6为本发明实施例中处理器结构图。
具体实施方式
本发明实施例提供了一种缓存替换方法,用于提升多核inclusive存储系统中缓存的命中率。
多核inclusive存储系统中多级缓存的层级结构请参阅图1。该存储系统中包括M个核(Processor),分别为Processor 1、Processor 2、……Processor M;该存储系统还包括N级缓存,分别为第1级缓存L1Cache、第2级缓存L2Cache、……第N级缓存L(N)Cache。其中,L(n)Cache称为L(n+1)Cache的上级缓存,L(n+1)Cache称为L(n)Cache的下级缓存,1≤n≤N。其中,L(N)Cache是存储系统中最接近内存的缓存,因此也被称为最后一级缓存(LLC,Last Level Cache)。存储系统中每个核都对应有各自的L1Cache、L2Cache、……L(N-1)Cache,但整个存储系统只有一个LLC。
若存储系统采用inclusive组织结构,则该N级缓存中,下级缓存包括上级缓存的全部缓存块,即:Processor(m)所对应的L(n+1)Cache中包括Processor(m)所对应的L(n)Cache中的所有缓存块,其中,Processor(m)表示存储系统的M个核中的任一个核,1≤m≤M。
多核inclusive存储系统中的LLC根据LRU算法计算得到待替换的某个缓存块时,该缓存块可能在某个核对应的L1Cache中是热点缓存块,为了保证存储系统的inclusive组织结构,就需要将L1Cache中的该缓存块无效掉,这样就导致了L1Cache中被频繁使用的热点缓存块被无效,影响了缓存的命中率。为了保证存储系统的缓存的命中率,应尽量避免L1Cache中的热点缓存块被无效掉,但是LLC本身仅保存了存储系统中各个缓存所包括的缓存块信息,而无法获知各个L1Cache中的各个缓存块的热点程度,因此存储系统的缓存的命中率得不到保障。
为了提升多核inclusive存储系统的缓存的命中率,本发明实施例提供了一种缓存替换方法,其基本流程请参阅图2,包括:
201、在LLC中确定多个待替换的缓存块;
本发明实施例提供的缓存替换方法涉及到了一种缓存替换装置,该缓存替换装置位于多核inclusive存储系统的LLC中,具体可以为LLC中的逻辑电路或其它形式,本发明实施例不做限定。
本实施例中,缓存替换装置在LLC中确定多个待替换的缓存块。确定待替换的缓存块的方法有很多,具体将在后面的实施例中详述,此处不做限定。
其中,该多个待替换的缓存块仅为确定的可以被替换出LLC的缓存块,并非是必须被替换出LLC的缓存块。
202、根据该多个待替换的缓存块,确定目标L1Cache;
缓存替换装置根据该多个待替换的缓存块,在存储系统的M个L1Cache中,确定目标L1Cache。具体的确定方法有很多,将在后面的实施例中详述,此处不做限定。
203、向目标L1Cache发送该多个待替换的缓存块的信息;
缓存替换装置确定了目标L1Cache后,向该目标L1Cache发送该多个待替换的缓存块的信息,以告知该目标L1Cache哪些缓存块是待替换的缓存块。具体的,该多个待替换的缓存块的信息中可以包括该多个待替换的缓存块的地址信息,也可以包括该多个待替换的缓存块的其他信息,此处不做限定。
204、从L(N-1)Cache处接收目标缓存块信息;
缓存替换装置从目标L1Cache所对应的L(N-1)Cache处接收目标缓存块信息,该目标缓存块信息用于指示该多个待替换的缓存块中的目标缓存块,该目标缓存块信息中可以包括目标缓存块的地址信息,也可以包括目标缓存块的其他信息,此处不做限定。其中,目标缓存块信息由目标L1Cache在确定了目标缓存块后逐级缓存的下发,即由目标L1Cache下发给目标L1Cache对应的L2Cache,再由目标L1Cache对应的L2Cache下发给目标L1Cache对应的L3Cache……最后由目标L1Cache对应的L(N-1)Cache下发给LLC。
205、在LLC中替换目标缓存块。
缓存替换装置从L(N-1)Cache处接收目标缓存块信息后,在LLC中替换目标缓存块。
本实施例提供了一种缓存替换方法,包括在LLC中确定多个待替换的缓存块;根据多个待替换的缓存块,确定目标L1Cache;向目标L1Cache发送多个待替换的缓存块的信息;从L(N-1)Cache处接收目标缓存块信息;在LLC中替换目标缓存块。本实施例中LLC不再直接确定用于替换的目标缓存块,而是确定多个待替换的缓存块,根据该多个待替换的缓存块选择目标L1Cache,并将该多个待替换的缓存块的信息发送给目标L1Cache,由目标L1Cache在该多个待替换的缓存块中选择用于替换的目标缓存块。通过将原本由LLC执行的选择目标缓存块的操作交由目标L1Cache执行,可以避免因LLC无法获知各个L1Cache中的各个缓存块的热点程度而导致的L1Cache中的热点缓存块被无效掉的情况,减少了L1Cache中热点缓存块被无效的次数,使得存储系统的缓存的命中率得到了提升。
优选的,作为本发明的又一个实施例,步骤201中,缓存替换装置可以根据LRU算法来确定多个代替换的缓存块。具体的,缓存替换装置可以确定LLC中每个缓存块在预置时间段内的被访问频率,并将被访问频率最低的前P个缓存块确定为该多个待替换的缓存块,其中P为大于1的整数,具体可以为预置的数值,也可以为动态变化的数值。缓存替换装置也可以将预置时间段内被访问频率低于预置频率的缓存块确定为该多个待替换的缓存块,本实施例中不做限定。
步骤202中,缓存替换装置可以通过很多方法来确定目标L1Cache,如将存储系统的M个L1Cache中被核访问最频繁的L1Cache确定为目标L1Cache。优选的,作为本发明的又一个实施例,缓存替换装置可以确定存储系统的M个L1Cache中,每个L1Cache所包含的待替换的缓存块的个数,然后将包含待替换的缓存块的个数最多的L1Cache确定为目标L1Cache。
可以理解的,为了保证存储系统的inclusive组织结构,目标L1Cache在逐级下发目标缓存块信息时,目标L1Cache以及目标L1Cache对应的每一级缓存应都无效各自包括的目标缓存块。但是,目标缓存块也可能存在于非目标L1Cache的缓存中,因此LLC在替换目标缓存块之前,还应判断该目标缓存块是否还存在于LLC之外的缓存中,若判断结果为是,则通知包括该目标缓存块的缓存无效该目标缓存块。
可以理解的,目标L1Cache从LLC处接收到多个待替换的缓存块的信息后,可以通过很多方法来确定目标缓存块,如目标L1Cache根据LRU算法,将该多个待替换的缓存块在目标L1Cache中被访问频率最低的缓存块确定为目标缓存块。或目标L1Cache根据最近最多算法(MRU,Most Recently Used)算法确定目标L1Cache中的热点缓存块与非热点缓存块,然后将该多个待替换的缓存块属于目标L1Cache的非热点缓存块确定为目标缓存块。目标L1Cache也可以根据其它方法确定目标缓存块,此处不做限定。
为了便于理解上述实施例,下面以上述实施例的一个具体应用场景为例进行描述。请参阅图3,在4核inclusive存储系统中存在3级缓存,分别为与每个核对应的4个L1Cache、4个L2Cache和1个LLC。存储系统具体的缓存替换流程包括:
301、确定4个待替换的缓存块。缓存替换装置将LLC中在近20个小时内被访问频率最低的前4个缓存块A、B、C、D确定为待替换的缓存块。
302、确定目标L1Cache。缓存替换装置确定存储系统的4个L1Cache所包含该4个待替换的缓存块的个数,得到第一个L1Cache包含0个待替换的缓存块、第二个L1Cache包含1个待替换的缓存块、第三个L1Cache包含2个待替换的缓存块、第四个L1Cache包含3个待替换的缓存块.于是缓存替换装置将第四个L1Cache确定为目标L1Cache。
303、向目标L1Cache发送4个待替换的缓存块的信息。具体的,缓存替换装置向该第四个L1Cache发送4个待替换的缓存块的地址信息。
304、从4个待替换的缓存块中确定目标缓存块。该第四个L1Cache中具有逻辑电路,能够实现简单的缓存块确定、替换或无效等功能。该第四个L1Cache确定其所包括的3个待替换的缓存块A、B、C的被访问频率,得到缓存块B的被访问频率最低,于是确定缓存块B为目标缓存块。
305、无效目标缓存块。第四个L1Cache无效自身所包括的缓存块B。
306、将目标缓存块信息下发给L2Cache。第四个L1Cache将缓存块B的地址信息下发给其所对应的L2Cache,即第四个L2Cache。
307、无效目标缓存块。第四个L2Cache无效自身所包括的缓存块B。
308、将目标缓存块信息下发给LLC。第四个L2Cache将缓存块B的地址信息下发给LLC。
309、替换目标缓存块。LLC的缓存替换装置接收到目标缓存块信息后,确定存储系统中所有的L1Cache和L2Cache中都不包括缓存块B,然后在LLC中替换该缓存块B。
本发明还提供了相关的缓存替换装置,适用于多核inclusive存储系统的LLC中,能够实现图2所示的缓存替换方法。该缓存替换装置可以为LLC中的逻辑电路,也可以为其他形式,其结构请参阅图4,包括:
缓存块确定模块401,用于在LLC中确定多个待替换的缓存块;
缓存确定模块402,用于根据多个待替换的缓存块,确定目标L1Cache;
信息发送模块403,用于向目标L1Cache发送该多个待替换的缓存块的信息;
信息接收模块404,用于从L(N-1)Cache处接收目标缓存块信息,该目标缓存块信息用于指示该多个待替换的缓存块中的目标缓存块,该目标缓存块信息由目标L1Cache逐级下发;
缓存块替换模块405,用于在LLC中替换目标缓存块。
本实施例提供的一种缓存替换装置中,缓存块确定模块401在LLC中确定多个待替换的缓存块;缓存确定模块402根据多个待替换的缓存块,确定目标L1Cache;信息发送模块403向目标L1Cache发送多个待替换的缓存块的信息;信息接收模块404从L(N-1)Cache处接收目标缓存块信息;缓存块替换模块405在LLC中替换目标缓存块。本实施例中LLC的缓存替换装置不再直接确定用于替换的目标缓存块,而是确定多个待替换的缓存块,根据该多个待替换的缓存块选择目标L1Cache,并将该多个待替换的缓存块的信息发送给目标L1Cache,由目标L1Cache在该多个待替换的缓存块中选择用于替换的目标缓存块。通过将原本由LLC执行的选择目标缓存块的操作交由目标L1Cache执行,可以避免因LLC无法获知各个L1Cache中的各个缓存块的热点程度而导致的L1Cache中的热点缓存块被无效掉的情况,减少了L1Cache中热点缓存块被无效的次数,使得存储系统的缓存的命中率得到了提升。
优选的,作为本发明的又一个实施例,缓存块替换模块405具体用于:确定LLC中每个缓存块在预置时间段内的被访问频率;将被访问频率最低的前P个缓存块,确定为该多个待替换的缓存块,其中P为大于1的整数。
优选的,作为本发明的又一个实施例,缓存确定模块402具体用于:确定每个L1Cache所包含的待替换的缓存块的个数;将包含待替换的缓存块的个数最多的L1Cache确定为目标L1Cache。
优选的,作为本发明的又一个实施例,缓存替换装置还可以包括缓存块判断模块406,用于判断目标缓存块是否还存在于LLC之外的缓存中;若判断结果为是,则触发信息发送模块403执行:通知所述LLC之外的缓存无效所述目标缓存块。其中,缓存块判断模块406为可选模块。
优选的,作为本发明的又一个实施例,目标缓存块为该多个待替换的缓存块中,被访问频率最低的缓存块。
为了便于理解上述实施例,下面以上述实施例的一个具体应用场景为例进行描述。请仍参阅图3,在4核inclusive存储系统中存在3级缓存,分别为与每个核对应的4个L1Cache、4个L2Cache和1个LLC。其中,LLC中包括缓存替换装置。存储系统具体的缓存替换流程包括:
301、确定4个待替换的缓存块。缓存替换装置的缓存块确定模块401将LLC中在近20个小时内被访问频率最低的前4个缓存块A、B、C、D确定为待替换的缓存块。
302、确定目标L1Cache。缓存替换装置的缓存确定模块402确定存储系统的4个L1Cache所包含该4个待替换的缓存块的个数,得到第一个L1Cache包含0个待替换的缓存块、第二个L1Cache包含1个待替换的缓存块、第三个L1Cache包含2个待替换的缓存块、第四个L1Cache包含3个待替换的缓存块。于是缓存确定模块402将第四个L1Cache确定为目标L1Cache。
303、向目标L1Cache发送4个待替换的缓存块的信息。具体的,缓存替换装置的信息发送模块403向该第四个L1Cache发送4个待替换的缓存块的地址信息。
304、从4个待替换的缓存块中确定目标缓存块。该第四个L1Cache中具有逻辑电路,能够实现简单的缓存块确定、替换或无效等功能。该第四个L1Cache确定其所包括的3个待替换的缓存块A、B、C的被访问频率,得到缓存块B的被访问频率最低,于是确定缓存块B为目标缓存块。
305、无效目标缓存块。第四个L1Cache无效自身所包括的缓存块B。
306、将目标缓存块信息下发给L2Cache。第四个L1Cache将缓存块B的地址信息下发给其所对应的L2Cache,即第四个L2Cache。
307、无效目标缓存块。第四个L2Cache无效自身所包括的缓存块B。
308、将目标缓存块信息下发给LLC。第四个L2Cache将缓存块B的地址信息下发给LLC。
309、替换目标缓存块。LLC的缓存替换装置中的信息接收模块404接收到目标缓存块信息后,缓存块判断模块406确定存储系统中所有的L1Cache和L2Cache中都不包括缓存块B,然后缓存块替换模块405在LLC中替换该缓存块B。
上面从单元化功能实体的角度对本发明实施例中的缓存替换装置进行了描述,下面从硬件处理的角度对本发明实施例中的缓存替换装置进行描述。
请参阅图5,本发明实施例提供了一种缓存系统,该缓存系统包括M个第一级缓存L1Cache、M个第2级缓存L2Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数。其中,所述LLC用于执行以下步骤:
在所述LLC中确定多个待替换的缓存块;
根据所述多个待替换的缓存块,确定目标L1Cache;
向所述目标L1Cache发送所述多个待替换的缓存块的信息;
从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1Cache逐级下发;
在所述LLC中替换所述目标缓存块。
本发明的一些实施例中,LLC通过如下方法在所述LLC中确定多个待替换的缓存块:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
本发明的一些实施例中,LLC通过如下方法确定目标L1Cache:
确定每个L1Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1Cache确定为目标L1Cache。
本发明的一些实施例中,LLC在所述LLC中替换所述目标缓存块之前还执行如下步骤:
判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则通知所述LLC之外的缓存无效所述目标缓存块。
本发明的一些实施例中,所述目标缓存块为所述目标L1Cache中的非热点缓存块。
本发明实施例还提供了一种处理器,请参阅图6。该处理器包括M个核,并包括图5所示的缓存系统。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种缓存替换方法,适用于多核包含inclusive存储系统,所述存储系统包括M个核,并包括所述M个核对应的M个第一级缓存L1 Cache、M个第2级缓存L2 Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数,其特征在于,所述方法包括:
在所述LLC中确定多个待替换的缓存块;
根据所述多个待替换的缓存块,确定目标L1 Cache;
向所述目标L1 Cache发送所述多个待替换的缓存块的信息;
从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1 Cache在确定了目标缓存块后逐级下发,所述目标缓存块为所述目标L1Cache中的非热点缓存块;
在所述LLC中替换所述目标缓存块。
2.根据权利要求1所述的缓存替换方法,其特征在于,所述在所述LLC中确定多个待替换的缓存块包括:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
3.根据权利要求1或2所述的缓存替换方法,其特征在于,所述根据所述多个待替换的缓存块,确定目标L1 Cache包括:
确定每个L1 Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1 Cache确定为目标L1 Cache。
4.根据权利要求1或2所述的缓存替换方法,其特征在于,所述在所述LLC中替换所述目标缓存块之前还包括:
判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则通知所述LLC之外的缓存无效所述目标缓存块。
5.一种缓存替换装置,适用于多核包含inclusive存储系统,所述存储系统包括M个核,并包括所述M个核对应的M个第一级缓存L1 Cache、M个第2级缓存L2 Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数,其特征在于,所述装置包括:
缓存块确定模块,用于在所述LLC中确定多个待替换的缓存块;
缓存确定模块,用于根据所述多个待替换的缓存块,确定目标L1 Cache;
信息发送模块,用于向所述目标L1 Cache发送所述多个待替换的缓存块的信息;
信息接收模块,用于从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1 Cache逐级下发,所述目标缓存块为所述目标L1Cache中的非热点缓存块;
缓存块替换模块,用于在所述LLC中替换所述目标缓存块。
6.根据权利要求5所述的缓存替换装置,其特征在于,所述缓存块替换模块具体用于:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
7.根据权利要求5或6所述的缓存替换装置,其特征在于,所述缓存确定模块具体用于:
确定每个L1 Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1 Cache确定为目标L1 Cache。
8.根据权利要求5或6所述的缓存替换装置,其特征在于,所述装置还包括:
缓存块判断模块,用于判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则触发所述信息发送模块执行:通知所述LLC之外的缓存无效所述目标缓存块。
9.一种缓存系统,所述缓存系统包括M个第一级缓存L1 Cache、M个第2级缓存L2Cache……和M个第N-1级缓存L(N-1)Cache,以及最后一级缓存LLC,M、N均为大于1的整数,其特征在于,所述LLC用于执行以下步骤:
在所述LLC中确定多个待替换的缓存块;
根据所述多个待替换的缓存块,确定目标L1 Cache;
向所述目标L1 Cache发送所述多个待替换的缓存块的信息;
从L(N-1)Cache处接收目标缓存块信息,所述目标缓存块信息用于指示所述多个待替换的缓存块中的目标缓存块,所述目标缓存块信息由所述目标L1 Cache逐级下发,所述目标缓存块为所述目标L1 Cache中的非热点缓存块;
在所述LLC中替换所述目标缓存块。
10.根据权利要求9所述的缓存系统,其特征在于,所述在所述LLC中确定多个待替换的缓存块包括:
确定所述LLC中每个缓存块在预置时间段内的被访问频率;
将被访问频率最低的前P个缓存块,确定为所述多个待替换的缓存块,其中P为大于1的整数。
11.根据权利要求9或10所述的缓存系统,其特征在于,所述根据所述多个待替换的缓存块,确定目标L1 Cache包括:
确定每个L1 Cache所包含的待替换的缓存块的个数;
将包含待替换的缓存块的个数最多的L1 Cache确定为目标L1 Cache。
12.根据权利要求9或10所述的缓存系统,其特征在于,所述在所述LLC中替换所述目标缓存块之前还包括:
判断所述目标缓存块是否还存在于LLC之外的缓存中;
若判断结果为是,则通知所述LLC之外的缓存无效所述目标缓存块。
13.一种处理器,其特征在于,所述处理器包括M个核,以及权利要求9至12中任一项所述的缓存系统。
CN201510152125.0A 2015-04-01 2015-04-01 一种缓存替换方法与相关装置 Active CN106155936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510152125.0A CN106155936B (zh) 2015-04-01 2015-04-01 一种缓存替换方法与相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510152125.0A CN106155936B (zh) 2015-04-01 2015-04-01 一种缓存替换方法与相关装置

Publications (2)

Publication Number Publication Date
CN106155936A CN106155936A (zh) 2016-11-23
CN106155936B true CN106155936B (zh) 2019-04-12

Family

ID=57337379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510152125.0A Active CN106155936B (zh) 2015-04-01 2015-04-01 一种缓存替换方法与相关装置

Country Status (1)

Country Link
CN (1) CN106155936B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126434B (zh) * 2016-06-22 2019-04-30 中国科学院计算技术研究所 中央处理器的缓存区的缓存行的替换方法及其装置
CN106909518B (zh) * 2017-01-24 2020-06-26 朗坤智慧科技股份有限公司 一种实时数据缓存机制
CN108551490B (zh) * 2018-05-14 2021-06-18 西京学院 一种工业流数据编码解码系统及方法
CN111221749A (zh) * 2019-11-15 2020-06-02 新华三半导体技术有限公司 数据块写入方法、装置、处理器芯片及Cache

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127005A (zh) * 2006-03-13 2008-02-20 英特尔公司 在相容高速缓存分级结构中同步最近信息
CN101313285A (zh) * 2005-12-19 2008-11-26 英特尔公司 高速缓存包含性的按组放宽
CN103049399A (zh) * 2012-12-31 2013-04-17 北京北大众志微系统科技有限责任公司 一种针对包容性末级高速缓存的替换方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378148B2 (en) * 2013-03-15 2016-06-28 Intel Corporation Adaptive hierarchical cache policy in a microprocessor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313285A (zh) * 2005-12-19 2008-11-26 英特尔公司 高速缓存包含性的按组放宽
CN101127005A (zh) * 2006-03-13 2008-02-20 英特尔公司 在相容高速缓存分级结构中同步最近信息
CN103049399A (zh) * 2012-12-31 2013-04-17 北京北大众志微系统科技有限责任公司 一种针对包容性末级高速缓存的替换方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种针对片上众核结构共享末级缓存的改进的LFU替换算法;张轮凯;《计算机应用与软件》;20130131;第30卷(第1期);第1-10页 *
末级高速缓存性能优化关键技术研究;黄涛;《中国博士学位论文全文数据库(信息科技辑)》;20130915(第2013年第10期);第I137-12页,正文第19,33,65-66页 *

Also Published As

Publication number Publication date
CN106155936A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
US9569270B2 (en) Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
CN106155936B (zh) 一种缓存替换方法与相关装置
EP3089039B1 (en) Cache management method and device
CN105302830B (zh) 一种地图瓦片缓存方法及装置
CN105677580A (zh) 访问缓存的方法和装置
TWI606340B (zh) 用於資料快取之方法、電腦可讀取儲存媒體及系統
KR20120017471A (ko) 스레드 시프트 : 스레드들의 코어들로의 할당
CN104980478A (zh) 内容分发网络中缓存共享方法、设备及系统
Fukuda et al. Caching memcached at reconfigurable network interface
CN108984130A (zh) 一种分布式存储的缓存读取方法及其装置
CN105095495B (zh) 一种分布式文件系统缓存管理方法和系统
JP2019525330A (ja) キャッシュテスト領域に基づくプリフェッチデータに対するキャッシュ転送ポリシーの選択
CN107111557A (zh) 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制
CN108282522A (zh) 基于动态路由的数据存储访问方法及系统
CN103927136B (zh) 输入输出io类型的识别方法和装置
CN104346404B (zh) 一种访问数据的方法、设备及系统
JP2014186397A (ja) キャッシュメモリ装置、情報処理装置及びキャッシュメモリ制御方法
CN105095104B (zh) 数据缓存处理方法及装置
CN110413545A (zh) 存储管理方法、电子设备和计算机程序产品
CN103699435B (zh) 负载均衡方法及装置
CN107291630B (zh) 一种高速缓冲存储器处理方法及装置
JP2020181474A (ja) 情報処理装置、分散処理システム及び分散処理プログラム
US11256628B2 (en) Volatile read cache in a content addressable storage system
CN105988724B (zh) 多副本写入存储设备的方法及存储设备
CN114390069B (zh) 基于分布式缓存的数据访问方法与系统、设备及存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20220907

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Patentee after: Institute of Computing Technology, Chinese Academy of Sciences

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right