基于L1D-L2缓存的别名处理系统、方法及相关设备技术方案

技术编号:38199407 阅读:11 留言:0更新日期:2023-07-21 16:39
本发明专利技术适用于硬件芯片设计领域,尤其涉及一种基于L1D

【技术实现步骤摘要】
基于L1D

L2缓存的别名处理系统、方法及相关设备


[0001]本专利技术适用于硬件芯片设计领域,尤其涉及一种基于L1D

L2缓存的别名处理方法、系统及相关设备。

技术介绍

[0002]随着工业上对于处理器芯片的性能要求日益提高,处理器芯片被应用于更多场景,作为影响现代计算机系统性能的最重要的模块之一,多级缓存技术被广泛讨论和研究。
[0003]现代多级缓存子系统大多包括三级缓存,即L1、L2、L3,其中L1缓存中又包括L1D缓存(一级数据缓存)和L1I缓存(一级指令缓存)。现代L1D缓存大多会设计成VIPT(虚拟地址索引)类型,这种设计有利于使CPU核心发送来的虚拟地址可以并行访问TLB(转译后备缓冲)和L1D缓存以提高性能,且不会出现歧义问题,如图1所示。此外,L1D缓存通常执行写分配、写回策略,即来自CPU核心的写请求会被分配进L1D缓存,只在被驱逐或被命令写回的时刻才写回主存。
[0004]但这种利用虚拟地址索引的方法会出现缓存别名(cache alias)问题的风险,缓存别名是由于多个虚拟地址映射到同一物理地址却被缓存于不同的缓存行导致的,如图2所示。举例来说,假设映射到相同物理地址的虚拟地址VA1和VA2最初分别被填回至L1D缓存的set x和set y(数据组),此时进程A通过VA1写入数据Dx,之后进程B通过VA2写入数据Dy,再之后进程A读取VA1的数据,按照程序执行顺序,此时,进程A本应读取数据Dy(VA1和VA2对应的是同一个物理地址),但是因为该读请求在L1D缓存中被判定在set x中击中,所以读取了数据Dx,从而造成了一致性错误。若L1D缓存设计为32KB大小,4路组相联,共有128个组,需要7位VA来索引,而物理页索引只有6位,如图3所示,这就会导致本应索引到同一组的虚拟地址索引到不同组。
[0005]现有技术有如下四种方法来解决缓存别名问题:一、通过修改L1D缓存尺寸或组相联程度来解决,以保证虚拟地址索引的位数小于或等于物理地址索引的位数,但是这种方法对硬件架构限制很大,极大压缩了缓存的存储规模,会大幅降低处理器芯片的性能;二、在软件层面,通过操作系统使用page coloring(页染色)等技术强制将虚拟地址的别名位保持相同,即使得虚拟地址一定会映射到同一个缓存的数据组内,但是这种方法会增加操作系统设计的负担,并降低处理器芯片兼容操作系统的能力;三、在硬件层面,通过VIPT缓存中增加bank的方式,根据别名位划分bank,在发生写操作时同时写两个bank中的缓存行(姚永斌,超标量处理器设计,清华大学出版社,2014),但是这种方法会降低缓存的存储能力,增加写请求的带宽压力,提升缓存模块的功耗,同时该方案不具备可扩展性,即bank的个数随着别名位的增加呈指数型上升;四、在硬件层面,利用下游缓存的目录,在L2缓存的目录中记录对应L1D缓存行的别名位来侦测别名问题,当检测到来自同一物理地址的读请求且与目录中的别名位相左时,即发生别名问题,此时强制将L1D缓存中保存的对应物理地址的数据驱逐再将新的虚拟
地址对应的数据填回,同时更改L2缓存的目录中记录的别名位,但是这种方法需要将缓存子系统设计成基于目录的类型,这种类型对于基于snoop(嗅探)的缓存子系统并不适用。
[0006]综上所述,现有技术用以解决别名问题的方式存在硬件架构、缓存子系统类型、可拓展性上的限制。

技术实现思路

[0007]本专利技术提供一种基于L1D

L2缓存的别名处理方法、系统及相关设备,旨在解决现有技术处理别名问题时存在硬件架构、缓存子系统类型、可拓展性上的限制问题。
[0008]第一方面,本专利技术提供一种基于L1D

L2缓存的别名处理方法,所述别名处理方法包括以下步骤:建立标签复制随机缓存,所述标签复制随机缓存用于复制L1D缓存中的标签随机缓存,所述标签随机缓存和所述标签复制随机缓存均由多个数据组组成;建立有效数组,并使用所述有效数组标记所述标签复制随机缓存中每个数据组的数据有效性;获取L1D缓存发送的检查请求,所述检查请求由L1D向L2缓存请求数据时发出;基于所述有效数组在所述标签复制随机缓存中进行检查,并判断所述检查请求是否命中所述标签复制随机缓存中的数据组,若是:在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存;向L1D缓存发送具有对应所述检查请求的物理地址的清空请求,所述清空请求用于删除L1D缓存中对应所述物理地址的数据组。
[0009]更进一步地,所述标签随机缓存的数据组相联为N路,所述标签复制随机缓存的数据组相联为2N路。
[0010]更进一步地,所述在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存的步骤后,还包括步骤:接收L1D缓存发出的对应所述物理地址的缓存行,释放所述检查请求至L2缓存。
[0011]更进一步地,所述别名处理方法还包括以下步骤:获取L1D缓存发送的填充请求,所述填充请求由L1D缓存向L2缓存填充数据时发出;基于所述填充请求,在所述标签复制随机缓存中写入与所述填充请求相同物理地址的数据组,并更新所述有效数组以标记所述标签复制随机缓存中数据组的有效性。
[0012]更进一步地,所述在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存的步骤后,还包括步骤:将所述物理地址对应的数据组在所述有效数组中标记为无效。
[0013]第二方面,本专利技术还提供一种基于L1D

L2缓存的别名处理系统,所述别名处理系统包括:标签复制模块,用于建立标签复制随机缓存,所述标签复制随机缓存用于复制L1D缓存中的标签随机缓存,所述标签随机缓存和所述标签复制随机缓存均由多个数据组组成;有效数组模块,用于建立有效数组,并使用所述有效数组标记所述标签复制随机
缓存中每个数据组的数据有效性;填回缓冲模块,用于获取L1D缓存发送的检查请求,所述检查请求由L1D向L2缓存请求数据时发出;控制单元模块,用于基于所述有效数组在所述标签复制随机缓存中进行检查,并判断所述检查请求是否命中所述标签复制随机缓存中的数据组,若是:在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存;向L1D缓存发送具有对应所述检查请求的物理地址的清空请求,所述清空请求用于删除L1D缓存中对应所述检查请求的数据组。
[0014]更进一步地,所述控制单元模块还用于:接收L1D缓存发出的对应所述物理地址的缓存行,释放所述检查请求至L2缓存。
[0015]更进一步地,所述控制单元模块还用于:获取L1D缓存发送的填充请求,所述填充请求由L1D缓存向L2缓存填充数据时发出;基于所述填充请求,在所述标签复制随机缓存中写入与所述填充请求相同物理地址的数据组,并更新所述有效数组以标记所述标签复制随机缓存中数据组的有效性。
[0016]第三方面,本专利技术还提供一种计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于L本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于L1D

L2缓存的别名处理方法,其特征在于,所述别名处理方法包括以下步骤:建立标签复制随机缓存,所述标签复制随机缓存用于复制L1D缓存中的标签随机缓存,所述标签随机缓存和所述标签复制随机缓存均由多个数据组组成;建立有效数组,并使用所述有效数组标记所述标签复制随机缓存中每个数据组的数据有效性;获取L1D缓存发送的检查请求,所述检查请求由L1D缓存向L2缓存请求数据时发出;基于所述有效数组在所述标签复制随机缓存中进行检查,并判断所述检查请求是否命中所述标签复制随机缓存中的数据组,若是:在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存;向L1D缓存发送具有对应所述检查请求的物理地址的清空请求,所述清空请求用于删除L1D缓存中对应所述物理地址的数据组。2.如权利要求1所述的基于L1D

L2缓存的别名处理方法,其特征在于,所述标签随机缓存的数据组相联为N路,所述标签复制随机缓存的数据组相联为2N路。3.如权利要求1所述的基于L1D

L2缓存的别名处理方法,其特征在于,所述在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存的步骤后,还包括步骤:接收L1D缓存发出的对应所述物理地址的缓存行,释放所述检查请求至L2缓存。4.如权利要求1所述的基于L1D

L2缓存的别名处理方法,其特征在于,所述别名处理方法还包括以下步骤:获取L1D缓存发送的填充请求,所述填充请求由L1D缓存向L2缓存填充数据时发出;基于所述填充请求,在所述标签复制随机缓存中写入与所述填充请求相同物理地址的数据组,并更新所述有效数组以标记所述标签复制随机缓存中数据组的有效性。5.如权利要求1所述的基于L1D

L2缓存的别名处理方法,其特征在于,所述在L2缓存中将所述检查请求进行无效化处理,并将所述检查请求保存的步骤后,还包括步骤:将所述物理地址对应的数据组在所述有效数组中标记为无效。6.一种基于L1D

L2缓存的别名处理系统,其特征在于,所述别名处理系统包括:标签复制模块,用于建立标签复制随机缓存,所述标签复制随机缓存...

【专利技术属性】
技术研发人员:刘沐阳陈荣杨峙垒
申请(专利权)人:睿思芯科深圳技术有限公司
类型:发明
国别省市:

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

1