用于替换缓存块的方法和系统.pdf

上传人:r7 文档编号:1029489 上传时间:2018-03-26 格式:PDF 页数:21 大小:986.81KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810083947.8

申请日:

2008.04.29

公开号:

CN101571836A

公开日:

2009.11.04

当前法律状态:

终止

有效性:

无权

法律详情:

专利权的视为放弃IPC(主分类):G06F 12/12放弃生效日:20091104|||实质审查的生效|||公开

IPC分类号:

G06F12/12

主分类号:

G06F12/12

申请人:

国际商业机器公司

发明人:

沈晓卫; 王华勇; 侯 锐; 李 彧

地址:

美国纽约阿芒克

优先权:

专利代理机构:

北京市金杜律师事务所

代理人:

王茂华

PDF下载: PDF下载
内容摘要

本发明公开了一种针对共享缓存器的缓存块进行替换的方法和系统。在本发明的方法中,首先,通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序。然后,记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源。最后,在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块。根据本发明,在替换缓存块的时候,能够保证不同程序之间的公平性。

权利要求书

1.  一种针对共享缓存器的缓存块进行替换的方法,所述方法包括步骤:
通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序;
记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源;以及
在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块。

2.
  根据权利要求1所述的方法,还包括步骤:
记录表示各个缓存块有效的有效标记,以及
选择出用于替换的缓存块的步骤包括无效掉记录的那些选择出的缓存块的有效标记。

3.
  根据权利要求1所述的方法,其中所述系统资源包括从如下选择的一种或多种:
处理器上的程序在一个时间段内已经执行的部分或者全部指令的数目、
处理器上的程序在一个时间段内占用的内存大小、
处理器上的程序在一个时间段内的处理器利用率、以及
曾经或者正在一个处理器上运行的程序的状态。

4.
  根据权利要求3所述的方法,其中所述时间段是指一个事务的运行时间,所述事务是指在事务内存技术中的事务。

5.
  根据权利要求4所述的方法,其中在只有一个活跃事务的情况下,选择所述缓存器中色彩度最高的缓存块进行替换,色彩度定义为在整个缓存器中与一个缓存块色彩相同的缓存块的数量。

6.
  根据权利要求4所述的方法,其中在同时有多个活跃事务的情况下,选择所述缓存器中色彩度最低的缓存块进行替换,色彩度定义为在整个缓存器中与一个缓存块色彩相同的缓存块的数量。

7.
  根据权利要求4所述的方法,其中在计算密集型事务的情况下,选择消耗系统资源最少的事务所占用的缓存块进行替换。

8.
  根据权利要求7所述的方法,还包括步骤:
记录每个已经执行的指令的类型,
其中如果访问内存指令占所有已经执行的指令的比例大于一个阈值,那么该事务是数据密集型事务,否则就是计算密集型事务。

9.
  根据权利要求8所述的方法,其中所述阈值的取值范围是20%~40%。

10.
  一种针对共享缓存器的缓存块进行替换的系统,所述系统包括:
用于通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序的装置;
用于记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源的装置;以及
用于在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块的装置。

11.
  根据权利要求10所述的系统,还包括:
用于记录表示各个缓存块有效的有效标记的装置,以及
用于选择出用于替换的缓存块的装置包括用于无效掉记录的那些选择出的缓存块的有效标记的装置。
12根据权利要求10所述的系统,其中所述系统资源包括从如下选择的一种或多种:
处理器上的程序在一个时间段内已经执行的部分或者全部指令的数目、
处理器上的程序在一个时间段内占用的内存大小、
处理器上的程序在一个时间段内的处理器利用率、以及
曾经或者正在一个处理器上运行的程序的状态。

13.
  根据权利要求12所述的系统,其中所述时间段是指一个事务的运行时间,所述事务是指在事务内存技术中的事务。

14.
  根据权利要求13所述的系统,其中在只有一个活跃事务的情况下,选择所述缓存器中色彩度最高的缓存块进行替换,色彩度定义为在整个缓存器中与一个缓存块色彩相同的缓存块的数量。

15.
  根据权利要求13所述的系统,其中在同时有多个活跃事务的情况下,选择所述缓存器中色彩度最低的缓存块进行替换,色彩度定义为在整个缓存器中与一个缓存块色彩相同的缓存块的数量。

16.
  根据权利要求13所述的系统,其中在计算密集型事务的情况下,选择消耗系统资源最少的事务所占用的缓存块进行替换。

17.
  根据权利要求16所述的系统,还包括:
用于记录每个已经执行的指令的类型的装置,
其中如果访问内存指令占所有已经执行的指令的比例大于一个阈值,那么该事务是数据密集型事务,否则就是计算密集型事务。

18.
  根据权利要求17所述的系统,其中所述阈值的取值范围是20%~40%。

说明书

用于替换缓存块的方法和系统
技术领域
本发明涉及信息技术领域,更具体地,本发明涉及用于替换缓存块的方法和系统。
背景技术
在当前,在标准的计算机系统中,缓存器(cache)是一种普通的组件,其中,一个缓存器包括多个缓存块(cache line)。当缓存器满了以后,需要进行缓存块的替换。目前,最流行的替换算法是LRU(最近最少使用)算法。然而,近些年来,出现了一些新的技术(例如事务内存(transactional memory)技术),对于这些新的技术来说,LRU算法并不合适,如下面将详细描述的。
这里对事务内存技术进行一些介绍。
事务内存允许应用程序以并行但原子的方式来访问共享数据。事务内存可以提高并行程序的性能。可以参考由Maurice Herlihy,J.Eliot B.Moss在1993年发表的文章“Transactional Memory:Architectural Support for Lock-Free Data Structures”(文献1),来了解事务内存的实现以及有关的一些术语或概念。
一般地,事务内存采用硬件部件来记录事务执行的中间状态数据,包括事务读数据的内存地址、事务写数据的内存地址、以及要写入的数据等。
更具体地,在将一个事务的数据写入到内存之前,先将该数据及其内存地址暂时写入到一个缓存器,以备冲突检测(conflictdetection)。当两个事务要访问相同的内存地址,并且至少有一个事务要修改该地址中的数据时,就发生了冲突。其中一个事务必须放弃(abort),并且在将来重新执行。其中放弃意味着删除该事务在缓存器中的所有纪录。
如果事务结束时依然没有发生冲突,则将临时存储在缓存器中的有关该事务的数据写入到内存系统中。这个动作叫做提交(commit)。
在实际中,很难为每一个事务分配一个专用的缓存器,因此有必要让多个事务共享一个缓存器。
在这样的情况下,为了区分缓存器中每个缓存块所存储的数据属于哪个事务,缓存器中的每个缓存块具有一个相应的色彩标记。该色彩标记记录了事务ID。也就是说,该色彩标记指示了哪一个事务写了这个缓存块。
当该缓存器满了,但是处理器还需要将数据写入到该缓存器中时,就要发生缓存块替换。必须要有一种算法,来找出要被替换掉的缓存块。传统的缓存块替换算法是LRU算法。LRU算法的原理是选择最近最少使用的缓存块用于替换。然而,在事务内存的情况下,就不能使用LRU算法了,理由如下。
根据事务内存技术,一旦一条缓存块被替换,该缓存块所属的事务必须被放弃。更具体地,选择用于替换的缓存块实际上是选择要放弃的事务。因此,不能仅凭一条缓存块的访问频率来确定要被放弃的事务。
为保护替换的公平性,需要考虑下面这些因素的影响:
1)事务是否活跃。在有些系统中,允许事务在执行期间被暂停,让处理器去执行其他的事务,过一会再回来继续执行被中断的事务。被暂停的事务称为非活跃的事务。它们的中间状态数据往往会占用缓存器很久,因此需要优先替换掉它们。
2)事务的优先级。显然优先级低的事务应该先被替换。事务的优先级有很多来源,比如来自所属线程的优先级。
3)事务占用的系统资源。对于活跃的事务,占用资源越少意味着已经执行的时间越短,因此可以优先替换掉。
发明内容
根据本发明的一个方面,提出了一种针对共享缓存器的缓存块进行替换的方法,所述方法包括步骤:通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序;记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源;以及在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块。
根据本发明的另一个方面,提出了一种针对共享缓存器的缓存块进行替换的系统,所述系统包括:用于通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序的装置;用于记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源的装置;以及用于在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块的装置。
根据本发明,在替换缓存块的时候,能够保证不同程序之间的公平性。
附图说明
通过以下结合附图的说明,并且随着对本发明的更全面了解,本发明的其他目的和效果将变得更加清楚和易于理解,其中:
图1示意性地示出了可以在其中实现本发明实施例的环境100;
图2示意性地示出了一个缓存器的例子;
图3示意性地示出了缓存器的缓存块的使用情况;
图4示意性地示出了根据本发明的一个实施方式的实现色彩标记和色彩统计的电路结构图;
图5示出了根据本发明的一个实施方式的用于替换缓存块的方法的流程图。
图6示出了根据本发明一个实施方式的针对共享缓存器的缓存块进行替换的系统。
在所有的上述附图中,相同的标号表示具有相同、相似或相应的特征或功能。
具体实施方式
本发明适用于事务内存技术领域,以下说明将以事务内存的运行环境为例,即:处理器上运行的程序包含若干事务,事务使用共享缓存器来存储中间状态数据,缓存块替换发生在事务运行过程中,色彩标记指示事务的标识号。当然,本领域的技术人员应该理解,本发明不限于此,而是可以将事务抽象到更一般的概念程序,因为事务是程序的一部分。
图1示意性地示出了本发明可以在其中实现的环境100,该环境支持事务内存技术。
如图1所示,所述环境100包括软件部分200、硬件部分300和操作系统400。
其中,硬件部分300包括若干处理器310、320、330和340,若干缓存器350、360、370和380,以及连接处理器和缓存器的网络390。
换句话说,在图1所示的硬件部分300中,缓存器350、360、370和380被处理器310、320、330和340共享,处理器310、320、330和340可以访问缓存器350、360、370和380中的任何一个。
当然,本领域的技术人员应当理解,缓存器350、360、370和380与处理器310、320、330和340也可以通过总线连接,甚至可以通过直接链路而连接。
本领域的技术人员也应当理解,缓存器以及处理器的数目不一定非要是图中所示的4个,而可以是其他的值。
在本发明的另一个实施方式中,缓存器与处理器的关系是固定的。例如,缓存器350被固定为只能由处理器310和320使用;缓存器360被固定为只能由处理器320和330使用;缓存器370被固定为只能由处理器330和340使用;而缓存器380被固定为只能由处理器310和340使用。
软件部分200包括线程210、220、230、240、250、260、270、280,每一个线程可包括多个事务,例如如图所示,线程210包括事务2101、2102、2103、...、线程280包括事务2801、2802、2803。
线程210、220、230、240、250、260、270、280可以属于同一个进程,也可以属于不同的进程。
在环境100中,线程210、220、230、240、250、260、270、280的执行是并行的,而每一个线程中的多个事务的执行是串行的。
当然,本领域的技术人员应当理解,线程的数目不一定非要是图中所示的8个,而可以是其他的值。并且每一个线程中的事务的数目也不一定非要是图中所示的3个,而可以是其他的值。
按照本本发明的一个实施例,缓存器350、360、370和380可用于记录线程210、220、230、240、250、260、270、280中的各个事务的中间状态数据,包括事务读数据的内存地址、事务写数据的内存地址、以及要写的数据。
图2示意性地示出了一个缓存器20的例子。该缓存器20例如是缓存器350、360、370或380。
该缓存器20是一个4路组相联缓存器。其中,一个组包括4个缓存块(每个缓存块分别属于4路中的某一个),并且该缓存器20总共包括128个组。
通过索引21可以寻址到一个组。选择器23根据标签22从所选择的组中选择出1个缓存块。
对于本领域的技术人员来说,可以理解4路组相联缓存器是如何工作的,即可以理解如何向4路组相联缓存器写入数据和从4路组相联缓存器读出数据。因此为了简洁的目的,这里就不对此进行过多的描述。同时应该理解,真实系统可以使用任何路数和组数的组相联缓存器,甚至使用全相联或者直接映射的缓存器,本发明并不在乎使用什么样的缓存器。
图3示意性地示出了图2中的缓存器20的部分缓存块的使用情况。
其中例如,当某个缓存块的色彩标记等于1(“色彩=1”)时,说明该缓存块已经分配给第一事务;类似地,“色彩=2”表明相应的缓存块已经分配给第二事务;而当还没有色彩标记时说明该缓存块还没有分配给任何事务。
图4示意性地示出了根据本发明的一个实施方式的实现色彩标记和色彩统计的电路结构图。
如图4所示,该电路40包括查找元件阵列42、计数器阵列44和地址解码部分46。其中查找元件阵列42包括N个查找元件42-1、42-2、...、42-N,其中N等于缓存块的数目。也就是说,每一个缓存块具有一个查找元件。可以用缓存块的地址来寻址每个查找元件。查找元件42-1、42-2、...、42-N中的每一个包括色彩标记寄存器、有效标记寄存器和一个比较器。例如,查找元件42-1包括色彩标记寄存器421-1、有效标记寄存器422-1和比较器423-1,查找元件42-2包括色彩标记寄存器421-2、有效标记寄存器422-2和比较器423-2,...,查找元件42-N包括色彩标记寄存器421-N、有效标记寄存器422-N和比较器423-N。
其中,色彩标记寄存器421-1、421-2、...、421-N用于存储对应缓存块的色彩标记。按照本发明一个实施例,每个色彩标记寄存器可以存储3个比特,也就是说,总共可以支持23=8种色彩。换句话说,每条缓存块可以具有8种色彩中的一种色彩,相应地,该共享缓存器可以同时支持8个事务。
有效标记寄存器422-1、422-2、...、422-N用于存储对应色彩标记的有效标记。即,有效标记寄存器422-1用于存储色彩标记寄存器421-1的色彩标记的有效标记;有效标记寄存器422-2用于存储色彩标记寄存器421-2的色彩标记的有效标记;有效标记寄存器422-N用于存储色彩标记寄存器421-N的色彩标记的有效标记。
例如,当有效标记为1时,说明相应的色彩标记寄存器中的色彩标记有效。当有效标记为0时,说明相应的色彩标记寄存器中的色彩标记无效。换句话说,当有效标记为1时,说明相应的缓存块已经被使用。当有效标记为0时,说明相应的缓存块没有被使用,或者虽然已经被使用过,不过现在又空闲了。
比较器423-1、423-2、...、423-N的作用在下面会有描述。
电路40具有如下的输入线:地址信号线401、读信号线402、写信号线403、写入值信号线404、无效信号线405、色彩信号线406和统计读信号线407。
地址信号线401表示要访问的缓存块的地址,即要访问的查找元件的地址。
读信号线402有效表示当前操作是读操作。读操作读取由地址信号线401中的数据指定的色彩标记寄存器和有效标记寄存器中的内容,并从输出信号线408输出相应的内容。
写信号线403有效表示当前操作是写操作。
写入值信号线404中的数据是写操作的数据(色彩标记)。
写操作在由地址信号线401中的数据指定的色彩标记寄存器和有效标记寄存器中写入相应的内容。
写操作将导致计数器阵列44中的相应色彩计数器增加1。
在图示的本发明实施方式中,计数器阵列44包括8个色彩计数器44-1、44-2、...、44-8。当有一个色彩写入到色彩标记寄存器中时,与该色彩相对应的色彩计数器的值就增加1。
无效信号线405有效,说明当前进行的是无效操作。无效操作通过把对应缓存块的有效标记寄存器中的有效标记无效掉(例如,把有效标记设置为零),来无效掉该缓存块,也就是说,选择该缓存块用于替换。其中,不像flush操作那样,无效操作并不将缓存块中的数据写回到内存中。
无效操作有两种模式:
1)给定一个地址,无效掉这个地址对应的缓存块。这时,地址信号线401上传递的就是这个地址。
2)给定一个色彩,无效掉所有具有这个色彩的缓存块。这个操作叫做无效特定色彩缓存块操作。这时,色彩信号线406上传递的就是这个色彩。此时,比较器423-1、423-2、...、423-N将色彩信号线406上的数据与对应色彩标记寄存器中的色彩标记相比较。如果命中,则将相应有效标记寄存器中的有效标记置零。同时,该无效操作将导致计数器阵列44中的相应的色彩计数器置0。
统计读信号线407有效表示当前操作是读取计数器阵列44中的相应色彩计数器中的值。此时,从输出信号线408输出由色彩信号线406指示的那个色彩计数器中的值。
总结一下,在本发明的实施方式中,主要有如下类型的操作:
1.读一条缓存块的色彩标记和该色彩标记对应的有效标记。此时地址信号线401上的地址是该缓存块的地址。此时,从输出信号线408输出的是该选择的缓存块的查找元件中的色彩标记和有效标记。
2.写一条缓存块的色彩标记和该色彩标记对应的有效标记。此时地址信号线401上的地址是该缓存块的地址。此时,将写入值信号线404上的值写入到该选择的缓存块的查找元件中的色彩标记寄存器中。同时,写操作将该选择的缓存块的查找元件中的有效标记寄存器的有效标记设置成有效。此外,写操作使得计数器阵列44中相应的色彩计数器增加1。
3.读取某个色彩标记的总的计数值。从计数器阵列44中的相应色彩计数器中读出值。
4.无效掉特定的缓存块,即无效掉特定的缓存块的查找元件的有效标记寄存器中的有效标记。在本发明的实施方式中,无效操作将无效掉所有具有某个色彩的缓存块。无效操作将相应有效标记寄存器中的有效标记设置为无效(例如置0)。同时,该无效操作将导致计数器阵列44中的相应的色彩计数器置0。
在本发明的实施方式中,地址信号线401、读信号线402、写信号线403、写入值信号线404、无效信号线405、色彩信号线406和统计读信号线407上的数据来自于操作系统400,并且输出信号线408的信号输出到操作系统400。
图5示出了根据本发明的一个实施方式的用于替换缓存块的方法的流程图。
首先,在步骤S501,通过色彩标记,记录各个缓存块分别属于哪个事务。已经参考图4描述了如何记录各个缓存块分别属于哪个事务。
然后,在步骤S503,记录每个事务所具有的缓存块的数目,以及记录每个事务占用的系统资源。已经参考图4描述了如何记录每个事务所具有的缓存块的数目。
所述系统资源包括从如下选择的一种或多种:
事务在一个时间段内已经执行的部分或者全部指令的数目、
事务在一个时间段内占用的内存大小、
事务在一个时间段内的处理器利用率、以及
曾经或正在一个处理器上运行的事务的状态,例如睡眠或活跃。
可以通过为每个事务增加一个硬件指令计数器,来记录每个事务已经执行的部分或者全部指令的数目。可以通过在操作系统中添加软件计数器来统计事务的内存消耗情况和处理器利用率。而事务的状态和优先级可以直接从操作系统中获得。本领域的技术人员需要理解,获得上述信息的方法多种多样,而且多数已为本领域的常识。本发明并不关注如何获得上述信息。本发明的是利用上述信息来选择缓存块的方法。
然后,在步骤S505,在需要进行缓存块的替换的情况下,依据情况,选择需要替换的缓存块。定义事务所占用的缓存块的数目为N,事务已经执行的指令数目为I,优先级为P,消耗内存为M,处理器利用率为R,状态为S,利用以下公式计算每个事务的一个用于比较的数值
value=α×N+β×I+γ×P+λ×M+ε×R+τ×S
其中α,β,γ,λ,ε,τ为小于等于1的非负数,且满足α+β+γ+λ+ε+τ=1。α,β,γ,λ,ε,τ的具体取值依赖于不同的应用环境(下面给出了一些例子)。选择缓存块的方法包括:给定一个阈值,选择所述数值大于或者小于该阈值的事务所对应的缓存块;或者对各个事务的所述数值进行排序,选择所述数值最大或者最小的事务所对应的缓存块进行替换。
以下举例说明。
在只有一个活跃事务的情况下,选择占用缓存块最多的事务所对应的缓存块用于替换。简述理由如下。在允许事务切换的情况下,每次只有一个事务是活跃的。由于切换出去的事务一般要等比较长的时间才能切换回来,因此,选择占用缓存块最多的事务所对应的缓存块用于替换比较合适。对应到上述公式,取值α=1,β=0,γ=0,λ=0,ε=0,τ=0。然后对各个事务的所述数值排序,选择所述数值最大的事务所对应的缓存块进行替换即可。
在同时有多个活跃事务的情况下,选择占用缓存块最少的事务所对应的缓存块用于替换。简述理由如下。在不允许事务切换的情况下,同时可能有多个活跃事务。此时,由于占用具有较多数目缓存块的事务不久将要结束,因此,选择属于占用缓存块最少的事务所对应的缓存块用于替换比较合适。对应到上述公式,取值α=1,β=0,γ=0,λ=0,ε=0,τ=0。然后对各个事务的所述数值排序,选择所述数值最小的事务所对应的缓存块进行替换即可。
针对计算密集型事务,选择执行最少指令的事务所对应的缓存块用于替换。因为针对计算密集型事务,就不能用所占用缓存块的多少来决定是否替换掉某个事务。对应到上述公式,取值α=0,β=1,γ=0,λ=0,ε=0,τ=0。然后对各个事务的所述数值排序,选择所述数值最小的事务所对应的缓存块进行替换即可。
在本发明的一个实施方式中,在步骤S503,或者在步骤S505之前,还包括步骤:记录每个已经执行的指令的类型。
其中如果访问内存指令占所有已经执行的指令的比例大于一个阈值,那么该事务是数据密集型事务,否则就是计算密集型事务。
在本发明的一个实施方式中,该阈值的取值范围是20%-40%。
在本发明的一个实施方式中,在步骤S503,或者在步骤505之前,还包括步骤:记录表示各个缓存块有效的有效标记。
在该实施方式中,在选择出用于替换的缓存块的步骤S505中包括无效掉记录的那些选择出的缓存块的有效标记。可以采用上面描述的无效特定色彩缓存块操作来无效掉记录的那些选择出的缓存块的有效标记。
图6示出了根据本发明一个实施方式的针对共享缓存器的缓存块进行替换的系统。
所述系统600包括:用于通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序的装置610;用于记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源的装置620;以及用于在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块的装置630。
在本发明的一个实施方式中,该系统600还包括:用于记录表示各个缓存块有效的有效标记的装置640,以及用于选择出用于替换的缓存块的装置630包括用于无效掉记录的那些选择出的缓存块的有效标记的装置6301。
其中,所述系统资源包括从如下选择的一种或多种:
处理器上的程序在一个时间段内已经执行的部分或者全部指令的数目、
处理器上的程序在一个时间段内占用的内存大小、
处理器上的程序在一个时间段内的处理器利用率、以及
曾经或者正在一个处理器上运行的程序的状态。
其中,所述时间段是指一个事务的运行时间,所述事务是指在事务内存技术中的事务。
其中,在只有一个活跃事务的情况下,选择所述缓存器中色彩度最高的缓存块进行替换,色彩度定义为在整个缓存器中与一个缓存块色彩相同的缓存块的数量。
其中,在同时有多个活跃事务的情况下,选择所述缓存器中色彩度最低的缓存块进行替换,色彩度定义为在整个缓存器中与一个缓存块色彩相同的缓存块的数量。
其中,在计算密集型事务的情况下,选择消耗系统资源最少的事务所占用的缓存块进行替换。
在本发明的一个实施方式中,系统600还包括:用于记录每个已经执行的指令的类型的装置650,其中如果访问内存指令占所有已经执行的指令的比例大于一个阈值,那么该事务是数据密集型事务,否则就是计算密集型事务。
在本发明的一个实施方式中,所述阈值的取值范围是20%~40%。
应当注意,为了使本发明更容易理解,上面的描述省略了对于本领域的技术人员来说是公知的、并且对于本发明的实现可能是必需的更具体的一些技术细节。
提供本发明的说明书的目的是为了说明和描述,而不是用来穷举或将本发明限制为所公开的形式。对本领域的普通技术人员而言,许多修改和变更都是显而易见的。本领域技术人员还应该理解,可以通过软件、硬件、固件或者它们的结合的方式,来实现本发明实施例中的方法和装置。例如,本发明可以实现为一种计算机程序产品,包含存储在计算机可读的介质上的程序代码,其在被计算机执行时执行本发明实施例中所述的方法。
因此,选择并描述实施方式是为了更好地解释本发明的原理及其实际应用,并使本领域普通技术人员明白,在不脱离本发明实质的前提下,所有修改和变更均落入由权利要求所限定的本发明的保护范围之内。

用于替换缓存块的方法和系统.pdf_第1页
第1页 / 共21页
用于替换缓存块的方法和系统.pdf_第2页
第2页 / 共21页
用于替换缓存块的方法和系统.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《用于替换缓存块的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于替换缓存块的方法和系统.pdf(21页珍藏版)》请在专利查询网上搜索。

本发明公开了一种针对共享缓存器的缓存块进行替换的方法和系统。在本发明的方法中,首先,通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序。然后,记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源。最后,在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1