缓存器、共享缓存管理方法及控制器与流程

文档序号:15724729发布日期:2018-10-23 15:50阅读:190来源:国知局

本发明涉及计算机领域,特别涉及一种缓存器、共享缓存管理方法及控制器。



背景技术:

随着计算机领域的不断发展,多核处理器的应用越来越广泛,能否有效管理共享高速缓存对于系统的性能会产生重要的影响。

在现有的共享缓存管理方案中,通常为多核系统中的每个内核分配共享缓存中的一部分缓存块,多核系统中的某一个内核在访问缓存(读取或者写入)未命中并进行缓存块重填操作时,在该内核对应的缓存块中确定待替换的缓存块,并用待读取或者待写入的数据替换该待替换的缓存块中原有的数据。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

现有的共享缓存管理方案中,内核只能从对应的一部分缓存块中确定待替换的缓存块,在实际应用中很可能出现一些内核对应的缓存块被频繁重用而其它内核对应的缓存块则长时间空闲的情形,导致共享缓存利用率不高,影响系统性能。



技术实现要素:

为了解决现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的缓存利用率不高的问题,本发明实施例提供了一种缓存器、共享缓存管理方法及控制器。所述技术方案如下:

第一方面,提供了一种缓存器,所述缓存器包括:

缓存单元、状态寄存器、优先级计算单元和控制器;

所述缓存单元分别与所述状态寄存器和所述控制器相连接;所述状态寄存器分别与所述缓存单元和所述优先级计算单元连接;所述优先级计算单元分别与所述状态寄存器和所述控制器相连接;所述缓存单元包括共享缓存以及N个阴影标签,所述N个阴影标签分别与处理器的N个内核相对应;N≥2,且N为整数;

所述状态寄存器,用于记录所述N个内核各自对所述缓存单元的第一访问信息,所述第一访问信息包括:访问所述共享缓存的次数、占用所述共享缓存中的缓存块的数量、访问所述共享缓存并命中的次数以及访问所述阴影标签并命中的次数;

所述优先级计算单元,用于根据所述状态寄存器记录的所述N个内核各自对所述缓存单元的第一访问信息计算所述N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

所述控制器,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取所述N个内核各自的替换优先级,并从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

在第一方面的第一种可能实现方式中,所述控制器,还用于

根据性能目标为所述N个内核分配各自的目标缓存占用量,所述性能目标包括整体命中率最大化、公平性或者服务质量中的至少一种;

获取替换优先级最高的内核的实际缓存占用量;

检测所述实际缓存占用量是否不大于所述目标缓存占用量;

若检测结果为所述实际缓存占用量不大于所述目标缓存占用量,则控制所述优先级计算单元重新计算所述N个内核各自的替换优先级。

在第一方面的第二种可能实现方式中,所述状态寄存器还与所述控制器相连;

所述状态寄存器,还用于记录所述共享缓存中的各个缓存块各自对应的第二访问信息,所述第二访问信息包括被所述N个内核分别占用的次数;

所述控制器,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述状态寄存器获取替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息,并根据所述替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息确定所述待替换的缓存块。

结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述控制器,用于

从所述替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,所述第一类型缓存块为被所述替换优先级最高的内核占用的次数最少的缓存块;

从所述第一类型缓存块中确定第二类型缓存块,所述第二类型缓存块为被所述N个内核占用的总次数最少的缓存块;

根据替换算法从所述第二类型缓存块中确定所述待替换的缓存块。

第二方面,提供了一种共享缓存管理方法,用于如上述第一方面或者第一方面的任一可能实现方式所述的缓存器中,其特征在于,所述方法包括:

在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取处理器的N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

在第二方面的第一种可能实现方式中,所述方法包括:

根据性能目标为所述N个内核分配各自的目标缓存占用量,所述性能目标包括整体命中率最大化、公平性或者服务质量中的至少一种;

获取替换优先级最高的内核的实际缓存占用量;

检测所述实际缓存占用量是否不大于所述目标缓存占用量;

若检测结果为所述实际缓存占用量不大于所述目标缓存占用量,则控制所述优先级计算单元重新计算所述N个内核各自的替换优先级。

在第二方面的第二种可能实现方式中,所述状态寄存器还用于记录所述共享缓存中的各个缓存块各自对应的第二访问信息,所述第二访问信息包括被所述N个内核分别占用的次数;所述从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块,包括:

从所述状态寄存器获取替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息;

根据所述替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息确定所述待替换的缓存块。

结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述根据所述替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息确定所述待替换的缓存块,包括:

从所述替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,所述第一类型缓存块为被所述替换优先级最高的内核占用的次数最少的缓存块;

从所述第一类型缓存块中确定第二类型缓存块,所述第二类型缓存块为被所述N个内核占用的总次数最少的缓存块;

根据替换算法从所述第二类型缓存块中确定所述待替换的缓存块。

第三方面,提供了一种控制器,用于如上述第一方面或者第一方面的任意可能实现方式所述的缓存器中,其特征在于,所述控制器包括:

第一获取模块,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取处理器的N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

确定模块,用于从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

在第三方面的第一种可能实现方式中,所述控制器包括:

分配模块,用于根据性能目标为所述N个内核分配各自的目标缓存占用量,所述性能目标包括整体命中率最大化、公平性或者服务质量中的至少一种;

第二获取模块,用于获取替换优先级最高的内核的实际缓存占用量;

检测模块,用于检测所述实际缓存占用量是否不大于所述目标缓存占用量;

控制模块,用于若检测结果为所述实际缓存占用量不大于所述目标缓存占用量,则控制所述优先级计算单元重新计算所述N个内核各自的替换优先级。

在第三方面的第二种可能实现方式中,所述确定模块,包括:

获取单元,用于从所述状态寄存器获取替换优先级最高的内核当前占用的各个缓存块各自对应的第二访问信息;

确定单元,用于根据所述替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息确定所述待替换的缓存块;

其中,所述状态寄存器还用于记录所述共享缓存中的各个缓存块各自对应的所述第二访问信息,所述第二访问信息包括被所述N个内核分别占用的次数。

结合第三方面的第二种可能实现方式,在第三方面的第三种可能实现方式中,所述确定单元,包括:

第一确定子单元,用于从所述替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,所述第一类型缓存块为被所述替换优先级最高的内核占用的次数最少的缓存块;

第二确定子单元,用于从所述第一类型缓存块中确定第二类型缓存块,所述第二类型缓存块为被所述N个内核占用的总次数最少的缓存块;

第三确定子单元,用于根据替换算法从所述第二类型缓存块中确定所述待替换的缓存块。

本发明实施例提供的技术方案的有益效果是:

通过状态寄存器记录N个内核各自对缓存单元的第一访问信息,优先级计算单元根据状态寄存器记录的第一访问信息计算N个内核各自的替换优先级,控制器根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的缓存器的结构示意图;

图2是本发明另一实施例提供的缓存器的结构示意图;

图3是本发明另一实施例提供的缓存单元的构成示意图;

图4是本发明另一实施例提供的状态寄存器的构成示意图;

图5是本发明一个实施例提供的共享缓存管理方法的方法流程图;

图6是本发明另一实施例提供的共享缓存管理方法的方法流程图;

图7是本发明一个实施例提供的控制器的结构示意图;

图8是本发明另一实施例提供的控制器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

请参考图1,其示出了本发明一个实施例提供的缓存器的结构示意图。该缓存器可以应用与多核系统中。该缓存器可以包括:缓存单元102、状态寄存器104、优先级计算单元106和控制器108;

所述缓存单元102分别与所述状态寄存器104和所述控制器108相连接;所述状态寄存器104分别与所述缓存单元102和所述优先级计算单元106连接;所述优先级计算单元106分别与所述状态寄存器104和所述控制器108相连接;所述缓存单元102包括共享缓存1022以及N个阴影标签1024,所述N个阴影标签1024分别与处理器的N个内核相对应;N≥2,且N为整数;

所述状态寄存器104,用于记录所述N个内核各自对所述缓存单元102的第一访问信息,所述第一访问信息包括:访问所述共享缓存1022的次数、占用所述共享缓存1022中的缓存块的数量、访问所述共享缓存1022并命中的次数以及访问所述阴影标签1024并命中的次数;

所述优先级计算单元106,用于根据所述状态寄存器104记录的所述N个内核各自对所述缓存单元102的第一访问信息计算所述N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

所述控制器108,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取所述N个内核各自的替换优先级,并从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

在本实施例中,状态寄存器记录各个内核分别对共享缓存的访问信息,优先级计算单元根据各个内核分别对共享缓存的访问信息计算各个内核的替换优先级,控制器在进行缓存块重填操作时,根据各个内核的替换优先级确定待替换的缓存块,能够根据各个内核对共享缓存的实际访问情况进行待替换缓存块的确定,从而提高共享缓存的利用率。

综上所述,本发明实施例提供的缓存器,通过状态寄存器记录N个内核各自对缓存单元的第一访问信息,优先级计算单元根据状态寄存器记录的第一访问信息计算N个内核各自的替换优先级,控制器根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

请参考图2,其示出了本发明另一实施例提供的缓存器的结构示意图。该缓存器可以应用与多核系统中。该缓存器可以包括:缓存单元202、状态寄存器204、优先级计算单元206和控制器208;

所述缓存单元202分别与所述状态寄存器204和所述控制器208相连接;所述状态寄存器204分别与所述缓存单元202和所述优先级计算单元206连接;所述优先级计算单元206分别与所述状态寄存器204和所述控制器208相连接;所述缓存单元202包括共享缓存2022以及N个阴影标签2024,所述N个阴影标签2024分别与处理器的N个内核相对应;N≥2,且N为整数;

其中,以处理器包含4个内核为例,请参考如图3所示的缓存单元的构成示意图,其中,缓存单元包括一个共享缓存和4个阴影标签,共享缓存中包含有n个缓存块,每个阴影标签也各自包含n个存储单元,且共享缓存中的每个缓存块各自对应每个阴影标签中的一个存储单元。共享缓存中的每个缓存块分为4个部分:当前占用该缓存块的内核ID(Identity,身份标识号码)、有效标识、标签信息和数据;阴影标签中的每个存储单元包括两个部分:有效标识和标签信息。当处理器中的一个内核访问缓存单元中的共享缓存和阴影标签时,通过64位地址中的低位地址确定对应的存储块和各个阴影标签的存储单元的地址,并从确定的地址中提取有效标识和标签信息,若提取到的有效标识为有效,且标签信息与64位地址中的高位地址中包含的信息匹配,则确定本次访问命中,否则,确定本次访问未命中。

所述状态寄存器204,用于记录所述N个内核各自对所述缓存单元202的第一访问信息,所述第一访问信息包括:访问所述共享缓存2022的次数、占用所述共享缓存2022中的缓存块的数量、访问所述共享缓存2022并命中的次数以及访问所述阴影标签2024并命中的次数;

在内核访问共享缓存时,状态寄存器可以通过计数器实时记录内核对共享缓存和阴影标签的访问命中情况,以图4所示的状态寄存器的构成示意图为例,状态寄存器中可以对应每个内核维护4个计数器,分别为访问次数计数器(CNT_Acc)、缓存占用计数器(CNT_Size)、缓存命中计数器(Cnt_Shared Hit)和标签命中计数器(Cnt_Shadow Hit),其中,CNT_Acc对应某一内核访问共享缓存的次数,CNT_Size对应某一内核占用共享缓存中的缓存块的数量,Cnt_Shared Hit对应某一内核访问共享缓存并命中的次数,Cnt_Shadow Hit对应某一内核访问阴影标签并命中的次数。以内核i访问共享缓存和阴影标签为例,各个计数器的更新情况如下:

当处理器内核i对共享缓存进行访问操作(读操作或者写操作)时,若命中共享缓存,则Cnt_Acc(i)和Cnt_Shared Hit(i)加1,若命中阴影标签,则Cnt_Shadow Hit(i)加1;若未命中共享缓存,则当存在有空闲的缓存块时,Cnt_Acc(i)与Cnt_Size(i)加1,若不存在空闲的缓存块,则Cnt_Acc(i)计数器加1,同时确定替换优先级最高的内核A,若内核A不为内核i,则从内核A占用的缓存块中确定待替换的缓存块并执行Write Back(写回)操作,且将Cnt_Size(A)的值减1,若内核A为内核i,则Cnt_Size(A)的值保持不变;若未命中阴影标签,则Cnt_Shadow Hit(i)保持不变。

所述优先级计算单元206,用于根据所述状态寄存器204记录的所述N个内核各自对所述缓存单元202的第一访问信息计算所述N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

优先级计算单元206可以依据上述各个内核的第一访问信息以及替换概率计算模型计算出每个内核的替换概率,形成概率分布,其中替换概率最高的内核则为替换优先级最高。

其中,该替换概率计算模型如下:

假设任一间隔内发生访问未命中的次数为W。且在这W次访问未命中内,内核i所占的比例为Mi。则在该间隔内,内核i发生访问未命中的次数为Mi×W。若内核i在这一间隔开始时所占用的缓存块在该间隔内未被替换掉,则在间隔结束时,内核i的缓存占用比例将变为(Ci+(Mi×W/m)),m为缓存块的总数;Ci为内核i在这一间隔开始时所占用的缓存块数量的比例。

假设这W次访问未命中的缓存块替换概率为Ei,则有Ei×W个缓存块在该间隔内被替换掉。这相当于内核i的缓存占用比例又减少了Ei×W/m,因此在该间隔后内核i的缓存占用比例为τi=Ci+((Mi-Ei)×W/m)。由于最小分配单位是缓存块,因此与Ci相比,τi的最小改变量为1/m(这里Ci与τi的含义是百分比)。

使用Ti表示内核i达到一个给定的性能目标,得到的期望目标占用Ti=τi=Ci+((Mi-Ei)×W/m)。则可推导出替换概率Ei的表达式如下:

所述控制器208,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取所述N个内核各自的替换优先级,并从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

其中,控制器可以根据LRU(Least Recently Used,最近最少使用)替换算法从替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。或者,控制器也可以根据其它替换算法确定待替换的缓存块,对此,本实施例不作具体限定。

所述控制器208,还用于根据性能目标为所述N个内核分配各自的目标缓存占用量,所述性能目标包括整体命中率最大化、公平性或者服务质量中的至少一种;获取替换优先级最高的内核的实际缓存占用量;检测所述实际缓存占用量是否大于所述目标缓存占用量;若检测结果为所述实际缓存占用量不大于所述目标缓存占用量,则控制所述优先级计算单元重新计算所述N个内核各自的替换优先级。

为了进一步提高共享缓存的利用率,需要根据各个内核对共享缓存的访问情况更新各个内核的替换优先级。具体的,控制器可以首先根据性能目标(比如整体命中率最大化、公平性或者服务质量等)为各个内核分配目标缓存占用量,控制器还从缓存单元获取第一访问信息,并从第一访问信息中获取替换优先级最高的内核的实际缓存占用量(替换优先级最高的内核的实际缓存占用量可以根据替换优先级最高的内核占用所述共享缓存中的缓存块的数量确定),若替换优先级最高的内核的实际缓存占用量小于等于该替换优先级最高的内核的目标缓存占用量,则说明该替换优先级最高的内核占用的共享缓存的缓存块数量不足,若继续从该替换优先级最高的内核当前占用的缓存块中确定待替换的缓存块,则会出现共享缓存利用率不高的问题,此时,控制器可以向优先级计算单元发送控制指令,以控制该优先级计算单元重新计算N个内核各自对应的替换优先级。

所述状态寄存器204还与所述控制器208相连;所述状态寄存器204,还用于记录所述共享缓存2022中的各个缓存块各自对应的第二访问信息,所述第二访问信息包括被所述N个内核分别占用的次数;

所述控制器208,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述状态寄存器204获取替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息,并根据所述替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息确定所述待替换的缓存块。

其中,所述控制器208,具体用于从所述替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,所述第一类型缓存块为被所述替换优先级最高的内核占用的次数最少的缓存块;从所述第一类型缓存块中确定第二类型缓存块,所述第二类型缓存块为被所述N个内核占用的总次数最少的缓存块;根据替换算法从所述第二类型缓存块中确定所述待替换的缓存块。

为了进一步提高共享缓存中的各个缓存块的利用率,平均使用各个缓存块,避免缓存块的重用局部性,本实施例还结合各个缓存块被占用的次数来确定待替换的缓存块。具体的,状态寄存器还将共享缓存中的各个缓存块被各个内核分别占用的次数记录为各个缓存块对应的第二访问信息,在后续内核访问共享缓存未命中并进行缓存块重填时,首先从替换优先级最高的内核当前占用的缓存块中确定被该替换优先级最高的内核占用次数最少的缓存块,再从该替换优先级最高的内核占用次数最少的缓存块中确定被所有内核占用的总次数最少的缓存块,最后根据LUR等替换算法从被所有内核占用的总次数最少的缓存块中确定待替换的缓存块。上述方法能够倾向于选择出被重用次数最少的缓存块,从而兼顾了缓存块的重用局部性和缓存块被所有内核共享的程度。

综上所述,本发明实施例提供的缓存器,通过状态寄存器记录N个内核各自对缓存单元的第一访问信息,优先级计算单元根据状态寄存器记录的第一访问信息计算N个内核各自的替换优先级,控制器根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

此外,本发明实施例提供的缓存器,通过检测替换优先级最高的内核的实际缓存占用量与替换优先级最高的内核的目标缓存占用量之间的大小关系,当实际缓存占用量不大于目标缓存占用量时,控制优先级计算单元重新计算各个内核的替换优先级,从而进一步提高共享缓存的利用率。

最后,本发明实施例提供的缓存器,通过从替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,第一类型缓存块为被替换优先级最高的内核占用的次数最少的缓存块;从第一类型缓存块中确定第二类型缓存块,第二类型缓存块为被N个内核占用的总次数最少的缓存块;根据替换算法从第二类型缓存块中确定待替换的缓存块,从而兼顾了缓存块的重用局部性和缓存块被所有内核共享的程度,进一步提高共享缓存中的各个缓存块的利用率。

请参考图5,其示出了本发明一个实施例提供的共享缓存管理方法的方法流程图。该方法可以在如图1或图2所示的缓存器中对内核的访问进行控制。该共享缓存管理方法可以包括:

步骤302,在发生访问该共享缓存未命中并进行缓存块重填操作时,从优先级计算单元中获取处理器的N个内核各自的替换优先级;该替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

步骤304,从该N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

综上所述,本发明实施例提供的共享缓存管理方法,通过从优先级计算单元获取N个内核各自的替换优先级,根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

请参考图6,其示出了本发明另一实施例提供的共享缓存管理方法的方法流程图。该方法可以在如图1或图2所示的缓存器中对内核的访问进行控制。该共享缓存管理方法可以包括:

步骤402,在发生访问该共享缓存未命中并进行缓存块重填操作时,从优先级计算单元中获取处理器的N个内核各自的替换优先级;

其中,该替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度。

其中,该替换优先级为优先级计算单元根据状态寄存器记录的对应于各个内核的第一访问信息计算获得,该状态寄存器记录第一访问信息的具体过程以及优先级计算单元计算各个内核的优先级的过程请参考图2对应的实施例中的描述,此处不再赘述。

步骤404,从状态寄存器获取替换优先级最高的内核当前占用的各个缓存块各自对应的该第二访问信息;

其中,状态寄存器还用于记录共享缓存中的各个缓存块各自对应的第二访问信息,该第二访问信息包括被N个内核分别占用的次数。

步骤406,根据该替换优先级最高的内核当前占用的各个缓存块各自对应的该第二访问信息确定待替换的缓存块。

控制器可以从该替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,该第一类型缓存块为被该替换优先级最高的内核占用的次数最少的缓存块;从该第一类型缓存块中确定第二类型缓存块,该第二类型缓存块为被该N个内核占用的总次数最少的缓存块;根据替换算法从该第二类型缓存块中确定待替换的缓存块。

为了进一步提高共享缓存中的各个缓存块的利用率,平均使用各个缓存块,避免缓存块的重用局部性,本实施例还结合各个缓存块被占用的次数来确定待替换的缓存块。具体的,状态寄存器还将共享缓存中的各个缓存块被各个内核占用的次数记录为各个缓存块对应的第二访问信息,在后续内核访问共享缓存未命中并进行缓存块重填时,首先从替换优先级最高的内核当前占用的缓存块中确定被该替换优先级最高的内核占用次数最少的缓存块,再从该替换优先级最高的内核占用次数最少的缓存块中确定被所有内核占用的总次数最少的缓存块,最后根据LUR等替换算法从被所有内核占用的总次数最少的缓存块中确定待替换的缓存块。

此外,控制器还根据性能目标为该N个内核分配各自的目标缓存占用量,该性能目标包括整体命中率最大化、公平性或者服务质量中的至少一种;获取替换优先级最高的内核的实际缓存占用量;检测该实际缓存占用量是否不大于该目标缓存占用量;若检测结果为该实际缓存占用量不大于该目标缓存占用量,则控制该优先级计算单元重新计算该N个内核各自的替换优先级。

为了进一步提高共享缓存的利用率,需要根据各个内核对共享缓存的访问情况更新各个内核的替换优先级。具体的,控制器可以首先根据性能目标(比如整体命中率最大化、公平性或者服务质量等)为各个内核分配目标缓存占用量,控制器还从缓存单元获取第一访问信息,并从第一访问信息中获取替换优先级最高的内核的实际缓存占用量(替换优先级最高的内核的实际缓存占用量可以根据替换优先级最高的内核占用所述共享缓存中的缓存块的数量确定),若替换优先级最高的内核的实际缓存占用量小于等于该替换优先级最高的内核的目标缓存占用量,则说明该替换优先级最高的内核占用的共享缓存的缓存块数量不足,若继续从该替换优先级最高的内核当前占用的缓存块中确定待替换的缓存块,则会出现共享缓存利用率不高的问题,此时,控制器可以向优先级计算单元发送控制指令,以控制该优先级计算单元重新计算N个内核各自对应的替换优先级。

综上所述,本发明实施例提供的共享缓存管理方法,通过从优先级计算单元获取N个内核各自的替换优先级,根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

此外,本发明实施例提供的共享缓存管理方法,通过检测替换优先级最高的内核的实际缓存占用量与替换优先级最高的内核的目标缓存占用量之间的大小关系,当实际缓存占用量不大于目标缓存占用量时,控制优先级计算单元重新计算各个内核的替换优先级,从而进一步提高共享缓存的利用率。

最后,本发明实施例提供的共享缓存管理方法,通过从替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,第一类型缓存块为被替换优先级最高的内核占用的次数最少的缓存块;从第一类型缓存块中确定第二类型缓存块,第二类型缓存块为被N个内核占用的总次数最少的缓存块;根据替换算法从第二类型缓存块中确定待替换的缓存块,从而兼顾了缓存块的重用局部性和缓存块被所有内核共享的程度,进一步提高共享缓存中的各个缓存块的利用率。

请参考图7,其示出了本发明一个实施例提供的控制器的结构示意图。该控制器可以在如图1或图2所示的缓存器中对内核的访问进行控制。该控制器可以包括:

第一获取模块501,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取处理器的N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

确定模块502,用于从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

综上所述,本发明实施例提供的控制器,通过从优先级计算单元获取N个内核各自的替换优先级,根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

请参考图8,其示出了本发明另一实施例提供的控制器的结构示意图。该控制器可以在如图1或图2所示的缓存器中对内核的访问进行控制。该控制器可以包括:

第一获取模块601,用于在发生访问所述共享缓存未命中并进行缓存块重填操作时,从所述优先级计算单元中获取处理器的N个内核各自的替换优先级;所述替换优先级用于表征对应的内核所占用的缓存块被替换的优先程度;

确定模块602,用于从所述N个内核中替换优先级最高的内核当前占用的共享缓存的缓存块中确定待替换的缓存块。

所述控制器包括:

分配模块603,用于根据性能目标为所述N个内核分配各自的目标缓存占用量,所述性能目标包括整体命中率最大化、公平性或者服务质量中的至少一种;

第二获取模块604,用于获取替换优先级最高的内核的实际缓存占用量;

检测模块605,用于检测所述实际缓存占用量是否不大于所述目标缓存占用量;

控制模块606,用于若检测结果为所述实际缓存占用量不大于所述目标缓存占用量,则控制所述优先级计算单元重新计算所述N个内核各自的替换优先级。

所述确定模块602,包括:

获取单元6021,用于从所述状态寄存器获取替换优先级最高的内核当前占用的各个缓存块各自对应的第二访问信息;

确定单元6022,用于根据所述替换优先级最高的内核当前占用的各个缓存块各自对应的所述第二访问信息确定所述待替换的缓存块;

其中,所述状态寄存器还用于记录所述共享缓存中的各个缓存块各自对应的所述第二访问信息,所述第二访问信息包括被所述N个内核分别占用的次数。

所述确定单元6022,包括:

第一确定子单元6022a,用于从所述替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,所述第一类型缓存块为被所述替换优先级最高的内核占用的次数最少的缓存块;

第二确定子单元6022b,用于从所述第一类型缓存块中确定第二类型缓存块,所述第二类型缓存块为被所述N个内核占用的总次数最少的缓存块;

第三确定子单元6022c,用于根据替换算法从所述第二类型缓存块中确定所述待替换的缓存块。

综上所述,本发明实施例提供的控制器,通过从优先级计算单元获取N个内核各自的替换优先级,根据N个内核各自的替换优先级确定共享缓存中待替换的缓存块,解决了现有技术中内核只能从对应的一部分缓存块中确定待替换的缓存块而导致的共享缓存利用率不高的问题,达到提高共享缓存利用率和系统性能的效果。

此外,本发明实施例提供的控制器,通过检测替换优先级最高的内核的实际缓存占用量与替换优先级最高的内核的目标缓存占用量之间的大小关系,当实际缓存占用量不大于目标缓存占用量时,控制优先级计算单元重新计算各个内核的替换优先级,从而进一步提高共享缓存的利用率。

最后,本发明实施例提供的控制器,通过从替换优先级最高的内核当前占用的缓存块中确定第一类型缓存块,第一类型缓存块为被替换优先级最高的内核占用的次数最少的缓存块;从第一类型缓存块中确定第二类型缓存块,第二类型缓存块为被N个内核占用的总次数最少的缓存块;根据替换算法从第二类型缓存块中确定待替换的缓存块,从而兼顾了缓存块的重用局部性和缓存块被所有内核共享的程度,进一步提高共享缓存中的各个缓存块的利用率。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1