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

技术编号:39653981 阅读:8 留言:0更新日期:2023-12-09 11:22
本发明专利技术涉及集成电路数字

【技术实现步骤摘要】
一种组相联自适应扩展的缓存架构及其访问处理方法


[0001]本专利技术涉及集成电路数字
IC

,特别涉及一种组相联自适应扩展的缓存架构及其访问处理方法


技术介绍

[0002]在现代处理器设计中,内存访问速度已成为制约处理器性能的关键瓶颈,多层次高速缓存架构被普遍认为是解决“存储墙”问题的重要途径

缓存以及层次化存储结构的有效性是基于内存访问的时间局部性和空间局部性

传统缓存一般采用组相联度数目固定的架构,将缓存的存储空间均匀划分成若干个组,每组包含相同数目

相同大小的缓存块,所有缓存块等概率使用

但是,受实际运行的程序或程序片段的影响,缓存的组访问

块访问在缓存空间上的分布往往呈现出不均匀的特性,即存在一些缓存块访问频次高,冲突缺失多,而同时另外一些缓存块访问频次少,长期处于闲置状态,导致缓存空间的整体利用率低,降低系统的整体性能

[0003]目前解决访存特性对处理器性能影响的方法,一是在程序运行过程中基于对程序访存行为特性的统计,进行动态缓存参数配置的方法;另外一种是利用全局访存信息进行缓存块的使用

这些方法主要存在统计特性准确率低,统计模块消耗硬件资源多,统计到配置延时高而使得统计失效,以及全局信息增加访问时延等问题,难以在实际应用中实施


技术实现思路

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

[0005]为解决上述技术问题,本专利技术提供了一种组相联自适应扩展的缓存架构,建立在传统
Cache
架构的基础上,还包括:扩展标志项
extFlag、
扩展状态项
extState、
扩展索引项
extIndex
以及组访问统计模块
setAccessStats
;在当前缓存组
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
的存储容量

[0006]优选的,还包括:每个缓存块对应有一个扩展标志项
extFlag
;在扩展的缓存组
Set B
中,当缓存块的扩展标志项
extFlag=0
时,表示此缓存块存储的内容属于扩展的缓存组
Set B
;当缓存块的扩展标志项
extFlag=1
时,表示此缓存块存储的内容属于当前缓存组
Set A。
[0007]优选的,还包括:每个缓存组对应有一对扩展状态项
extState
和扩展索引项
extIndex
,当扩展状态项
extState=0
时,表示当前缓存组
Set A
无扩展,此时扩展索引项
extIndex
值无效;当扩展状态项
extState=1
时,表示当前缓存组
Set A
有扩展,被扩展的缓
存组
Set B
的索引号即为扩展索引项
extIndex
中的值;当扩展状态项
extState=2
时,表示当前缓存组
Set A
是被扩展的,其扩展的缓存组
Set B
的索引号即为扩展索引项
extIndex
中的值

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

[0009]本专利技术还提供了一种组相联自适应扩展的缓存架构的访问处理方法,采用如上述所述的一种组相联自适应扩展的缓存架构,包括如下步骤:步骤1:根据输入的
Tag

Index
信息,对当前缓存组
Set A
进行搜索,如果命中,则返回命中的缓存块并结束缓存访问;如果未命中,则进行扩展缓存块的访问;步骤2:对扩展缓存块的访问,首先要根据当前缓存组
Set A
的扩展状态项
extState
值来确认当前缓存块是否有扩展缓存块;如果尚未建立扩展关系,在当前缓存组
Set A
未满时,不创建扩展关系,直接在当前缓存组
Set A
中通过组替换策略挑选
Victim Block
并返回,结束缓存访问;步骤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;步骤4:如果当前缓存组
Set A
已建立了扩展关系,则通过其扩展索引项
extIndex
值对扩展的缓存组
Set B
进行访问;步骤5:如果在扩展的缓存组
Set B
中命中,则返回扩展缓存组
Set B
中命中的缓存块并结束缓存访存;如果在扩展缓存组...

【技术保护点】

【技术特征摘要】
1.
一种组相联自适应扩展的缓存架构,建立在传统
Cache
架构的基础上,其特征在于,还包括:扩展标志项
extFlag、
扩展状态项
extState、
扩展索引项
extIndex
以及组访问统计模块
setAccessStats
;在当前缓存组
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
的存储容量
。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任一项所述的一种组相联自适应扩展的缓存架构,其特征在于,包括如下步骤:步骤1:根据输入的
Tag

Index
信息,对当前缓...

【专利技术属性】
技术研发人员:高杨罗庆赖安洲邵健
申请(专利权)人:中电科申泰信息科技有限公司
类型:发明
国别省市:

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

1