基于合并地址差值序列的CPU缓存数据预取方法技术

技术编号:30829400 阅读:33 留言:0更新日期:2021-11-18 12:38
本发明专利技术提供一种基于合并地址差值序列的CPU缓存数据预取方法,包括:收集待预取的数据缓存当前的访存信息,在收集到时试图从历史信息表中获取信息来更新得到当前差值序列段;根据当前差值序列段更新历史信息表、差值映射数组和差值序列段子表,去除其首项差值以得到待预测差值序列;利用待预测差值序列去多重匹配动态映射模式表中保存的完整序列段的前缀子序列,得到最佳匹配的完整序列段和对应的预测目标差值;将当前的访存信息中的访存地址加上所述预测目标差值得到预测目标地址。本发明专利技术解决了现有技术需要多表级联才能保存多长度差值序列的问题,仅使用一个表来保存,简化了访存模式的存储和查询逻辑。存模式的存储和查询逻辑。存模式的存储和查询逻辑。

【技术实现步骤摘要】
基于合并地址差值序列的CPU缓存数据预取方法


[0001]本专利技术属于CPU芯片硬件架构
,具体涉及一种基于合并地址差值序列的CPU缓存数据预取方法。

技术介绍

[0002]CPU访存高延迟是阻碍其性能提高的主要瓶颈之一。缓存数据预取器通过预测CPU计算所需的数据地址,提前将数据从内存加载到缓存当中,从而降低平均访存延迟,提升CPU整体性能。其中覆盖率、准确性和及时性是衡量预取器性能的三大要素。
[0003]目前主流预取方法设计主要分为两大类:Spatial预取和Temporal预取。其中,Temporal预取因其所需硬件开销过大,且需要操作系统提供额外支持,尚未被业界所广泛采用,故不在本文讨论范畴。Spatial预取利用某一较小地址区域内的地址序列之间的相关性,去预测未来该区域内可能的访存地址。Spatial大类的预取设计还包括VLDP、SPP、SMS等。其中,VLDP是一种先进的基于多表的多长度差值序列匹配的预取方法(参见【Manjunath Shevgoor,Sahil Koladiya,Rajeev Balasubram本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于合并地址差值序列的CPU缓存数据预取方法,其特征在于,包括:步骤S0:提供与待预取的数据缓存相连的历史信息表(1)、差值映射数组(2)和差值序列段子表(3),其中差值映射数组(2)和差值序列段子表(3)构成了动态映射模式表;步骤S1:利用待预取的数据缓存来获取来自于CPU的一个核心的访存请求的序列,以通过旁路收集该序列中的当前的访存信息,所述访存信息包括访存地址和其对应的PC,PC为程序计数器值;在每一次收集到当前的访存信息时试图从历史信息表(1)中获取信息来更新得到当前差值序列段;在得到当前差值序列段时根据当前差值序列段更新所述历史信息表(1)、差值映射数组(2)和差值序列段子表(3),同时去除其首项差值以得到待预测差值序列;步骤S2:利用待预测差值序列去多重匹配动态映射模式表中保存的完整序列段的前缀子序列,所述的多重匹配是指先查询命中动态映射表中的差值映射数组(2)的数据项,再与差值序列段子表(3)中对应的数据组的各数据项进行匹配,其中匹配标签的长度为多种,从而得到最佳匹配的完整序列段和对应的预测目标差值;步骤S3:将当前的访存信息中的访存地址加上所述预测目标差值得到预测目标地址,将其发送给缺失状态处理寄存器等待对预测目标地址进行访存,实现数据预取。2.根据权利要求1所述的基于合并地址差值序列的CPU缓存数据预取方法,其特征在于,所述历史信息表(1)用于存储多项的历史信息表记录,每项历史信息表记录包括PC标签、页标签、上次的页内偏移、合并地址差值序列段和有效位,所述历史信息表(1)以PC低位为索引,并保存PC的高位部分作为PC标签;所述差值映射数组(2)由一块多项全相连缓存组成,所述差值映射数组(2)包括多个数据项,每个数据项包括首项差值、置信数和有效位;所述差值序列段子表(3)由一块多路组相连的缓存组成,其数据组的数量与差值映射数组(2)的数据项的数量一致,每个数据组具有多个数据项,每个数据项包括差值序列段、置信数和有效位;差值映射数组(2)和差值序列段子表(3)均以统计得到的各数据项的命中次数的处理结果作为其置信数;差值序列段子表(3)的数据组与差值映射数组(2)中的数据项的编号一一对应。3.根据权利要求2所述的基于合并地址差值序列的CPU缓存数据预取方法,其特征在于,在所述步骤S1中,根据当前的访存信息试图从历史信息表(1)中获取对应于同一PC和页地址的合并地址差值序列段和上次的页内偏移,并在成功获取到的合并地址差值序列段和上次的页内偏移时,根据合并地址差值序列段、上次的页内偏移和当前的访存信息更新得到当前差值序列段。4.根据权利要求3所述的基于合并地址差值序列的CPU缓存数据预取方法,其特征在于,在所述步骤S1中,根据当前的访存信息试图从历史信息表(1)中获取信息来更新得到当前差值序列段,在得到当前差值序列段时根据其更新所述历史信息表(1)、差值映射数组(2)和差值序列段子表(3),包括:步骤S11:利用当前的访存信息的PC低位索引所述历史信息表(1),随后将其PC高位经过hash后得到PC标签并与索引到的历史信息表记录进行匹配;若匹配成功,则获取相应的页标签、上次的页内偏移、合并地址差值序列段;再将获取的页标签与当前的访存信息中的
访存地址的hash结果进行匹配,若两者匹配成功则进行步骤S12,否则结束当前流程;步骤S12:将当前的页内偏移减去上次的页内偏移,得到当前的差值并利用当前的差值更新历史信息表(1),确认历史信息表(1)中存储的合并地址差值序列段中的过去的差值的数量是否完整,若确认数量完整,则将当前的差值与所述合并地址差值序列段一起构成由4个差值组成的当前差值序列段,从而作为待学习的差值序列段;步骤S13:利用当前差值序列段中的首项差值来查询命中所述差值映射数组(2)中的数据项,统计差值映射数组(2)中的各数据项的命中次数以更新各个数据项及其置信数;步骤S14:根据步骤S13的命中结果,利用当前差值序列段的后续部分来更新差值序列段子...

【专利技术属性】
技术研发人员:蒋实知慈轶为杨秋松李明树
申请(专利权)人:中国科学院上海高等研究院
类型:发明
国别省市:

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

1