解决高速缓冲存储器地址二义性问题的方法和装置制造方法及图纸

技术编号:31928599 阅读:28 留言:0更新日期:2022-01-15 13:17
本公开提供一种解决高速缓冲存储器地址二义性问题的方法和装置,属于电子技术领域。所述方法包括:基于接收到的访问指令,确定对应的第一虚地址;当基于所述第一虚地址访问未命中时,查询地址维护列表,确定所述第一虚地址对应的目标项,所述目标项所记录的信息包括目标Tag、目标地址二义性位和目标Cache;基于所述第一虚地址和所述目标项,确定第二虚地址,将所述第二虚地址的信息置为无效,其中,所述第二虚地址与所述第一虚地址映射到同一物理地址;获取所述访问地址对应的信息,并写回所述第一虚地址。采用本公开,可以在解决地址二义性的同时提高处理效率。二义性的同时提高处理效率。二义性的同时提高处理效率。

【技术实现步骤摘要】
解决高速缓冲存储器地址二义性问题的方法和装置


[0001]本公开涉及电子
,尤其涉及一种解决高速缓冲存储器地址二义性问题的方法和装置。

技术介绍

[0002]在电子
中,计算机设备可以通过程序计数器确定取指令的地址,通过访存指令确定访问存储器的地址,进而从地址所指示的物理地址中取出指令,或读取、写入数据。
[0003]如图1所示的存储器地址示意图,从操作系统的角度而言,存储器地址可以分为虚地址(Virtual Address;简称VA)和物理地址(Physical Address,简称PA)。其中,虚地址可以分为两部分:虚页号(Virtual Page Number,简称VPN)和页偏移(Page Offset);物理地址(Physical Address,简称PA)可以分为两部分:物理页号(Physical Page Number,简称PPN)和页偏移(Page Offset)。
[0004]从处理器的Cache(高速缓冲存储器)的角度而言,存储器地址可以分为三部分:高速缓冲存储器标签(Cache Tag)、高速缓冲存储器索引(Cache Index)和高速缓冲存储器块偏移(Cache Block Offset)。
[0005]若用虚地址作为高速缓冲存储器的索引,在高速缓冲存储器索引(Cache Index)和高速缓冲存储器块偏移(Cache Block Offset)的位数之和大于页偏移的位数时,可能存在两个存储器地址的Index中超出页偏移的高位不同。这是同一物理地址映射到不同的虚地址引起的,从而出现基于Index可以寻址到不同的Cache行,实际上是同一物理地址的情况,即存在地址二义性的问题。相对应的,高速缓冲存储器索引(Cache Index)中虚地址和物理地址不一致的对应位,在本公开中可以称为地址二义性位。

技术实现思路

[0006]为了解决现有技术的问题,本公开实施例提供了一种解决高速缓冲存储器地址二义性问题的方法、装置、电子设备和非瞬时计算机可读存储介质。技术方案如下:根据本公开的一方面,提供了一种解决高速缓冲存储器地址二义性问题的方法,所述方法包括:基于接收到的访问指令,确定对应的第一虚地址;当基于所述第一虚地址访问未命中时,查询地址维护列表,确定所述第一虚地址对应的目标项,所述目标项所记录的信息用于指示目标Tag、目标地址二义性位和目标Cache;基于所述第一虚地址和所述目标项,确定第二虚地址,将所述第二虚地址的信息置为无效,其中,所述第二虚地址与所述第一虚地址映射到同一物理地址;获取所述访问指令对应的信息,并写回所述第一虚地址。
[0007]根据本公开的另一方面,提供了一种解决高速缓冲存储器地址二义性问题的装
置,所述装置包括:接收模块,用于基于接收到的访问指令,确定对应的第一虚地址;查询模块,用于当基于所述第一虚地址访问未命中时,查询地址维护列表,确定所述第一虚地址对应的目标项,所述目标项所记录的信息包括目标Tag、目标地址二义性位和目标Cache;无效模块,用于基于所述第一虚地址和所述目标项,确定第二虚地址,将所述第二虚地址的信息置为无效,其中,所述第二虚地址与所述第一虚地址映射到同一物理地址;获取模块,用于获取所述访问指令对应的信息,并写回所述第一虚地址。
[0008]根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述解决高速缓冲存储器地址二义性问题的方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述解决高速缓冲存储器地址二义性问题的方法。
[0010]本公开中,可以采用地址维护列表来确定是否存在地址二义性,若存在,则可以基于地址维护列表来维护虚地址和物理地址的一致性。并且,地址维护列表数据量少,维护简单,可以在解决地址二义性的同时提高处理效率。
附图说明
[0011]在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:图1示出了根据本公开示例性实施例提供的存储器地址示意图;图2示出了根据本公开示例性实施例提供的Cache结构示意图;图3示出了根据本公开示例性实施例提供的组相连的Cache结构示意图;图4示出了根据本公开示例性实施例提供的Index+ Block Offset和Page Offset的位数比较示意图;图5示出了根据本公开示例性实施例提供的解决高速缓冲存储器地址二义性问题的方法流程图;图6示出了根据本公开示例性实施例提供的访问方法流程图;图7示出了根据本公开示例性实施例提供的地址维护列表示意图;图8示出了根据本公开示例性实施例提供的另一地址维护列表示意图;图9示出了根据本公开示例性实施例提供的解决高速缓冲存储器地址二义性问题的装置的示意性框图;图10示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
[0012]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些
实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0013]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0014]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0015]需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0016]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0017]为了清楚描述本公开实施例提供的方法,下面对所使用的技术进行介绍。
[0018]1、Cache高速缓冲存储器,位于CPU(Central Processing Unit,中央处理单元)和主存储器DRAM(Dynamic Random Access Memory,动态随机存取存储器)之间,通常由SRAM(Static Random

Access M本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述方法包括:基于接收到的访问指令,确定对应的第一虚地址;当基于所述第一虚地址访问未命中时,查询地址维护列表,确定所述第一虚地址对应的目标项,所述目标项所记录的信息用于指示目标标签Tag、目标地址二义性位和目标高速缓冲存储器Cache;基于所述第一虚地址和所述目标项,确定第二虚地址,将所述第二虚地址的信息置为无效,其中,所述第二虚地址与所述第一虚地址映射到同一物理地址;获取所述访问指令对应的信息,并写回所述第一虚地址。2.根据权利要求1所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述方法还包括:基于所述第一虚地址,更新所述地址维护列表。3.根据权利要求2所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述基于所述第一虚地址,更新所述地址维护列表,包括:当所述第一虚地址的地址二义性位与所述目标地址二义性位不一致时,将所述目标地址二义性位,更新为所述第一虚地址的地址二义性位。4.根据权利要求1所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述目标Cache,至少包括以下任意一种:当前处理器核的指令Cache或数据Cache,或,其他处理器核的指令Cache或数据Cache,其中,所述当前处理器核用于接收所述访问指令。5.根据权利要求1所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述基于接收到的访问指令,确定对应的第一虚地址,包括:当接收到取指令时,获取所述取指令对应的第一虚地址,所述取指令对应的第一虚地址用于访问指令Cache;或当接收到访存指令时,确定所述访存指令对应的第一虚地址,所述访存指令对应的第一虚地址用于访问数据Cache。6.根据权利要求5所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述获取所述取指令对应的第一虚地址,包括:基于程序计数器,获取所述取指令对应的第一虚地址。7.根据权利要求1所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述查询地址维护列表,确定所述第一虚地址对应的目标项,包括:基于地址维护列表,确定与所述第一虚地址的Tag一致的目标项。8.根据权利要求7所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述基于地址维护列表,确定与所述第一虚地址的Tag一致的目标项,包括:遍历所述地址维护列表,确定每一项的Tag是否与所述第一虚地址的Tag一致;如果一致,则将对应的一项作为所述第一虚地址的目标项;或基于所述物理地址的索引Index,在所述地址维护列表中获取所述Index对应的至少一项;在所述至少一项中,将与所述第一虚地址的Tag一致的一项作为目标项。9.根据权利要求1所述的解决高速缓冲存储器地址二义性问题的方法,其特征在于,所述方法还包括:如果所述地址维护列表中不存在所述第一虚地址对应的目标项,则生成所述目标项,
并添加到所述地址维护列表中。10....

【专利技术属性】
技术研发人员:李祖松郇丹丹
申请(专利权)人:北京微核芯科技有限公司
类型:发明
国别省市:

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

1