[发明专利]用于替换缓存块的方法和系统无效
申请号: | 200810083947.8 | 申请日: | 2008-04-29 |
公开(公告)号: | CN101571836A | 公开(公告)日: | 2009-11-04 |
发明(设计)人: | 沈晓卫;王华勇;侯锐;李彧 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F12/12 | 分类号: | G06F12/12 |
代理公司: | 北京市金杜律师事务所 | 代理人: | 王茂华 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 替换 缓存 方法 系统 | ||
技术领域
本发明涉及信息技术领域,更具体地,本发明涉及用于替换缓存块的方法和系统。
背景技术
在当前,在标准的计算机系统中,缓存器(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)事务占用的系统资源。对于活跃的事务,占用资源越少意味着已经执行的时间越短,因此可以优先替换掉。
发明内容
根据本发明的一个方面,提出了一种针对共享缓存器的缓存块进行替换的方法,所述方法包括步骤:通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序;记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源;以及在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块。
根据本发明的另一个方面,提出了一种针对共享缓存器的缓存块进行替换的系统,所述系统包括:用于通过色彩标记,记录各个缓存块分别属于哪个处理器上的程序的装置;用于记录每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源的装置;以及用于在需要进行缓存块替换时,根据上述记录的每个处理器上的程序所占用的缓存块的数目、每个处理器上的程序的优先级及每个处理器上的程序所消耗的系统资源中的部分或者全部信息,选择出用于替换的缓存块的装置。
根据本发明,在替换缓存块的时候,能够保证不同程序之间的公平性。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810083947.8/2.html,转载请声明来源钻瓜专利网。