Cache的管理方法及装置制造方法及图纸

技术编号:11791804 阅读:152 留言:0更新日期:2015-07-29 17:20
本发明专利技术公开了一种Cache的管理方法及装置,涉及通信领域,用于解决如何提高cache资源利用率的问题。本发明专利技术提供的方法包括:接收访问请求,确定所述访问请求需要访问的待访问数据;判断所述待访问数据的空间局部性的强弱等级;根据所述待访问数据的空间局部性的强弱等级,为待访问数据分配与所述等级对应的cache子单元。本发明专利技术适用于通信领域,用于实现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行数量进行调整,直至调整后的第二比值和所述第一比值之间的差距在所述预设阈值范围内。结合第一方面、或第一方面的第一种可能的实现方式、或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收访问请求,确定所述访问请求需要访问的待访问数据之后,还包括:根据所述待访问数据的空间局部性的强弱等级,确定待缓存数据的大小;根据所述待缓存数据的大小,对cache子单元中的cache行长度进行调整,将调整后的cache行分配给所述待缓存数据;所述调整后的cache行长度与所述待缓存数据的大小相匹配;基于cache子单元中cache行长度的变化,建立并维护索引位图,所述索引位图用于指不cache行中的tag域和data域。结合第一方面,在第四种可能的实现方式中,所述cache中设置多个cache子单元,包括:在所述cache中按路way、和/或组set进行划分,确定所述多个cache子单元,设定每个cache子单元的cache行长度。结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述访问请求中包括物理地址,所述物理地址用于标识所述待访问数据,所述物理地址中包括所述待访问数据的tag域和set域;所述方法还包括:将所述访问请求发送给每个所述cache子单元;确定所述待访问数据的set域在每个所述cache子单元中对应的一个或多个cache行,将所述一个或多个cache行的tag域与所述待访问数据的tag域进行比较,将所述一个或多个cache行中与所述待访问数据的tag域相同的cache行确定为存储有所述待访问数据cache行。结合第一方面的第三种可能的实现方式,在第六种可能的实现方式中,所述访问请求中包括物理地址,所述物理地址用于标识所述待访问数据,所述物理地址中包括所述待访问数据的tag域和set域;所述方法还包括:为每个cache子单元维护一个列表,所述列表用于记录每个cache子单元中所存储数据的特征值; 当接收到访问请求时,确定所述访问请求需要访问的待访问数据的特征值;将记录有所述待访问数据的特征值的列表对应的cache子单元确定为目标cache子单元;将所述访问请求发送给所述目标cache子单元,确定所述待访问数据的set域在所述目标cache子单元中对应的一个或多个cache行,将所述一个或多个cache行的tag域与所述待访问数据的tag域进行比较,将所述一个或多个cache行中与所述待访问数据的tag域相同的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子单元。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄永兵陈明宇张坤
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1