[发明专利]Cache的管理方法及装置有效
申请号: | 201410032035.3 | 申请日: | 2014-01-23 |
公开(公告)号: | CN104809076B | 公开(公告)日: | 2018-02-06 |
发明(设计)人: | 黄永兵;陈明宇;张坤 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F12/0811 | 分类号: | G06F12/0811 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | cache 管理 方法 装置 | ||
技术领域
本发明涉及通信领域,尤其涉及一种Cache(高速缓冲存储器)的管理方法及装置。
背景技术
在计算机技术发展过程中,主存储器存取速度一直比CPU(处理器)处理速度慢得多,使的CPU的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响。为了缓和CPU和主存储器之间速度不匹配的矛盾,一种较常用的方法是在存储层次上采用cache(高速缓存器)进行缓存。例如,可以将cache可以集成在CPU中,以便于CPU较快的获取数据。图1提供了一种N路(way)组相联的Cache的结构示意图。如图1所示,cache中所有的cache行(Cacheline)的大小都是相同的,每个cache行包括tag域和data域,所述tag域用于标识cache行,所述data域用于存储待缓存数据。具体的,cache行具体的大小一般由经验值决定,主要跟CPU的性能有关;CPU的性能越高,cache行越大。cache行的大小决定了相同容量下cache行的行数,同时也决定了数据从内存读到cache、以及数据在不同层次cache间传输的功耗。一般的,cache行的规格大于单个访问请求所访问数据的规格。
目前,cache的缓存机制是:接收一个访问请求,为该访问请求分配一个cache行;根据所述访问请求的地址(该地址对应的数据即为待访问数据),基于空间局部性原理,从内存中读取待访问数据、以及所述待访问数据相邻地址的数据,将其一并写入为该访问请求分配的cache行中。如果接下来的访问请求需要访问的数据已经缓存在该cache行中,则直接从该cache行读取;如果接下来的访问请求需要访问的数据没有缓存到该cache行中,则按照上述缓存机制为接下来的访问请求分配cache行并从内存中读取数据。
在采用上述方法进行缓存时,存在如下问题:当待访问数据的空间局部性较强时,cache行无法缓存足够多的相邻地址数据,导致在接收到后续访问请求时仍然需要重新分配cache行并从内存中读取数据,一方面会影响数据读取速度,另一方面,在cache行有限的情况下,会使得cache行中的数据被频繁替换,影响cache行的寿命;当待访问数据的空间局部性较差时,缓存到cache行中的数据很可能不会被后续访问请求所访问,造成cache行资源的浪费,同时会浪费内存和cache之间的内存带宽。
发明内容
本发明的实施例提供一种Cache的管理方法及装置,能够解决如何提高cache资源利用率的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种cache(高速缓存器)的管理方法,所述cache中设置多个cache子单元,每个所述cache子单元包括多个cache行;其中,每个cache子单元中所包括的cache行长度与其他cache子单元所包括的cache行长度互不相同;每个所述的cache子单元用于存储对应等级的数据,所述等级为数据的空间局部性强弱等级,其中,所述cache子单元与所述等级的对应关系为:所述cache子单元中包括的cache行长度与数据的空间局部性强度正相关;所述方法包括:
接收访问请求,确定所述访问请求需要访问的待访问数据;
判断所述待访问数据的空间局部性的强弱等级;
根据所述待访问数据的空间局部性的强弱等级,为待访问数据分配与所述等级对应的cache子单元。
结合第一方面,在第一种可能的实现方式中,所述判断所述待访问数据的空间局部性的强弱等级,包括:
记录各访问请求需要访问的待访问数据的地址,统计所述待访问数据的地址的访问规律,所述访问规律包括所述地址的相邻地址数据被其他访问请求所访问的次数或概率;
按照所述待访问数据的地址的相邻地址数据被其他访问请求所访问的次数或概率,对所述待访问数据的空间局部性进行等级划分。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
在预设时间段内,统计待访问数据的空间局部性的强弱等级,计算第一比值,所述第一比值用于表征不同等级空间局部性的待访问数据之间的比例关系;
计算第二比值,所述第二比值用于表征所述cache中包括不同cache行长度的cache子单元之间的比例关系;
当所述第一比值和第二比值的差距大于预设阈值时,对所述cache子单元中的cache行数量进行调整,直至调整后的第二比值和所述第一比值之间的差距在所述预设阈值范围内。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410032035.3/2.html,转载请声明来源钻瓜专利网。