一种组相联自适应扩展的缓存架构及其访问处理方法与流程

文档序号:36289507发布日期:2023-12-07 02:15阅读:27来源:国知局
一种组相联自适应扩展的缓存架构及其访问处理方法与流程

本发明涉及集成电路数字ic,特别涉及一种组相联自适应扩展的缓存架构及其访问处理方法。


背景技术:

1、在现代处理器设计中,内存访问速度已成为制约处理器性能的关键瓶颈,多层次高速缓存架构被普遍认为是解决“存储墙”问题的重要途径。缓存以及层次化存储结构的有效性是基于内存访问的时间局部性和空间局部性。传统缓存一般采用组相联度数目固定的架构,将缓存的存储空间均匀划分成若干个组,每组包含相同数目、相同大小的缓存块,所有缓存块等概率使用。但是,受实际运行的程序或程序片段的影响,缓存的组访问、块访问在缓存空间上的分布往往呈现出不均匀的特性,即存在一些缓存块访问频次高,冲突缺失多,而同时另外一些缓存块访问频次少,长期处于闲置状态,导致缓存空间的整体利用率低,降低系统的整体性能。

2、目前解决访存特性对处理器性能影响的方法,一是在程序运行过程中基于对程序访存行为特性的统计,进行动态缓存参数配置的方法;另外一种是利用全局访存信息进行缓存块的使用。这些方法主要存在统计特性准确率低,统计模块消耗硬件资源多,统计到配置延时高而使得统计失效,以及全局信息增加访问时延等问题,难以在实际应用中实施。


技术实现思路

1、本发明旨在针对缓存访问的不均匀特性,提供一种组相联自适应扩展的缓存(cache)架构及其访问处理方法,动态地利用非活跃缓存组扩展当前已满缓存组的存储容量,降低缓存组的冲突缺失,提升系统性能。

2、为解决上述技术问题,本发明提供了一种组相联自适应扩展的缓存架构,建立在传统cache架构的基础上,还包括:扩展标志项extflag、扩展状态项extstate、扩展索引项extindex以及组访问统计模块setaccessstats;

3、在当前缓存组set a访问缺失时,利用组访问统计模块setaccessstats获取可用于扩展的缓存组set b的索引号index b,通过设置当前缓存组set a的扩展状态项extstate=1、扩展索引项extindex=index b,设置扩展的缓存组set b的扩展状态项extstate=2、扩展索引项extindex=index a,以及对应组的扩展标志项extflag=1,来扩展当前缓存组set a的存储容量。

4、优选的,还包括:每个缓存块对应有一个扩展标志项extflag;在扩展的缓存组setb中,当缓存块的扩展标志项extflag=0时,表示此缓存块存储的内容属于扩展的缓存组setb;当缓存块的扩展标志项extflag=1时,表示此缓存块存储的内容属于当前缓存组set a。

5、优选的,还包括:每个缓存组对应有一对扩展状态项extstate和扩展索引项extindex,当扩展状态项extstate=0时,表示当前缓存组set a无扩展,此时扩展索引项extindex值无效;当扩展状态项extstate=1时,表示当前缓存组set a有扩展,被扩展的缓存组set b的索引号即为扩展索引项extindex中的值;当扩展状态项extstate=2时,表示当前缓存组set a是被扩展的,其扩展的缓存组set b的索引号即为扩展索引项extindex中的值。

6、优选的,还包括:每个缓存空间对应有一个组访问统计模块setaccessstats,其组访问统计模块setaccessstats根据缓存访问和命中缺失情况,统计出各个缓存组的活跃程度。

7、本发明还提供了一种组相联自适应扩展的缓存架构的访问处理方法,采用如上述所述的一种组相联自适应扩展的缓存架构,包括如下步骤:

8、步骤1:根据输入的tag和index信息,对当前缓存组set a进行搜索,如果命中,则返回命中的缓存块并结束缓存访问;如果未命中,则进行扩展缓存块的访问;

9、步骤2:对扩展缓存块的访问,首先要根据当前缓存组set a的扩展状态项extstate值来确认当前缓存块是否有扩展缓存块;如果尚未建立扩展关系,在当前缓存组set a未满时,不创建扩展关系,直接在当前缓存组set a中通过组替换策略挑选victimblock并返回,结束缓存访问;

10、步骤3:在当前缓存组set a未命中,且已满时,如果当前缓存组set a未建立扩展关系,则从setaccessstats模块获取一个合适的扩展的缓存组set b,并通过将扩展的缓存组set b的index b写入当前缓存组set a的扩展索引项extindex,以及将当前缓存组set a的index a写入扩展的缓存组set b的扩展索引项extindex,来建立前缓存组set a到扩展的缓存组set b的扩展关系,同时设置当前缓存组set a的扩展状态项extstate为1,设置扩展的缓存组set b的扩展状态项extstate为2;

11、步骤4:如果当前缓存组set a已建立了扩展关系,则通过其扩展索引项extindex值对扩展的缓存组set b进行访问;

12、步骤5:如果在扩展的缓存组set b中命中,则返回扩展缓存组set b中命中的缓存块并结束缓存访存;如果在扩展缓存组set b中也未命中,则在扩展的缓存组set b中通过组替换策略挑选victim block并返回;

13、步骤6:如果扩展的缓存组set b中已经没有当前缓存组set a的扩展项,即扩展的缓存组setb的扩展标志项extflag项均为0,则从组访问统计模块setaccessstats获取当前空闲缓存组set b’,并通过将当前空闲缓存组set b’的index写入当前缓存组set a的扩展索引项extindex来建立当前缓存组set a到当前空闲缓存组set b’的新的扩展关系;

14、步骤7:当当前缓存组set a的扩展项写入扩展的缓存组set b的缓存块时,对应的扩展标志项extflag应设置为1。

15、本发明与现有技术相比,具有如下有益效果:

16、本发明能够利用非活跃缓存组扩展当前已满缓存组的容量,在典型实施用例中,基于cpu spec 2017测试集的仿真结果显示,本发明所述架构能够有效减少冲突缺失,缺失总数最大减少了54.2%,非常适合在嵌入式处理器等缓存容量有限制的应用中实施。本发明解决了缓存访问不均匀导致的冲突缺失问题,可有效提升处理器系统的性能。



技术特征:

1.一种组相联自适应扩展的缓存架构,建立在传统cache架构的基础上,其特征在于,还包括:扩展标志项extflag、扩展状态项extstate、扩展索引项extindex以及组访问统计模块setaccessstats;

2.如权利要求1所述的一种组相联自适应扩展的缓存架构,其特征在于,还包括:每个缓存块对应有一个扩展标志项extflag;在扩展的缓存组set b中,当缓存块的扩展标志项extflag=0时,表示此缓存块存储的内容属于扩展的缓存组set b;当缓存块的扩展标志项extflag=1时,表示此缓存块存储的内容属于当前缓存组set a。

3.如权利要求2所述的一种组相联自适应扩展的缓存架构,其特征在于,还包括:每个缓存组对应有一对扩展状态项extstate和扩展索引项extindex,当扩展状态项extstate=0时,表示当前缓存组set a无扩展,此时扩展索引项extindex值无效;当扩展状态项extstate=1时,表示当前缓存组set a有扩展,被扩展的缓存组set b的索引号即为扩展索引项extindex中的值;当扩展状态项extstate=2时,表示当前缓存组set a是被扩展的,其扩展的缓存组set b的索引号即为扩展索引项extindex中的值。

4.如权利要求3所述的一种组相联自适应扩展的缓存架构,其特征在于,还包括:每个缓存空间对应有一个组访问统计模块setaccessstats,其组访问统计模块setaccessstats根据缓存访问和命中缺失情况,统计出各个缓存组的活跃程度。

5.一种组相联自适应扩展的缓存架构的访问处理方法,采用如权利要求1-4任一项所述的一种组相联自适应扩展的缓存架构,其特征在于,包括如下步骤:


技术总结
本发明涉及集成电路数字IC技术领域,特别涉及一种组相联自适应扩展的缓存架构及其访问处理方法。建立在传统Cache架构的基础上,还包括:扩展标志项extFlag、扩展状态项extState、扩展索引项extIndex以及组访问统计模块setAccessStats;在当前缓存组Set A访问缺失时,利用组访问统计模块setAccessStats获取可用于扩展的缓存组Set B的索引号Index B。本发明动态地利用非活跃缓存组扩展当前已满缓存组的存储容量,降低缓存组的冲突缺失,提升系统性能。

技术研发人员:高杨,罗庆,赖安洲,邵健
受保护的技术使用者:中电科申泰信息科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1