使用指令地址映射绕过加载指令的存储器访问制造技术

技术编号:22268841 阅读:40 留言:0更新日期:2019-10-10 18:03
公开了用于执行绕过对加载指令的存储器访问的预测加载的系统、方法和计算机可读介质。被预测为存储将由加载指令加载的值的第一物理寄存器被识别,并且存储在第一物理寄存器中的值被复制到第二物理寄存器以由消费者操作使用。识别对应于加载指令的预测存储指令,并访问映射表以获得与预测的存储指令相关联的数据。评估数据以确定预测的加载是否满足依赖性约束。作为执行预测加载的结果,消费者操作可以直接利用存储在第一物理寄存器中的数据并绕过执行加载指令所需的高速缓冲存储器访问。

Memory access bypassing loading instructions using instruction address mapping

【技术实现步骤摘要】
【国外来华专利技术】使用指令地址映射绕过加载指令的存储器访问
技术介绍
执行计算机程序指令可以包括将数据存储在物理寄存器中。在程序执行期间,存储在物理寄存器中的数据可能需要存储在存储器位置中,并且存储在存储器位置中的数据可能需要被加载到物理寄存器中。在微体系结构设计(例如,中央处理单元(CPU))中,指令执行单元更靠近物理寄存器而不是存储器。因此,将数据从存储器位置(甚至高速缓冲存储器位置)加载到物理寄存器中通常比从另一物理寄存器复制数据花费更长的时间。
技术实现思路
在本公开的一个或多个示例实施例中,公开了一种用于绕过加载指令的存储器访问的方法。该方法包括至少部分地通过访问由与加载指令相关联的指令地址(IA)索引的第一数据结构确定对应于与加载指令相关联的加载IA的预测IA,并利用预测IA的至少一部分以i)访问第二数据结构以确定存储与加载指令相关联的值的第一物理寄存器或ii)访问第三数据结构以代替访问第二数据结构以便获得与加载指令相关联的值。所述方法还包括至少部分地通过将第二物理寄存器设置为与加载指令相关联的值执行预测加载。在本公开的一个或多个其他示例实施例中,公开了一种用于绕过加载指令的存储器访问的系统。该系统包括至少一个存储计算机可执行指令的存储器和至少一个处理器,其被配置成访问至少一个存储器并执行计算机可执行指令以执行一组操作。这些操作包括至少部分地通过访问由与加载指令相关联的指令地址(IA)索引的第一数据结构确定对应于与加载指令相关联的加载IA的预测IA,并利用预测IA的至少一部分以i)访问第二数据结构以确定存储与加载指令相关联的值的第一物理寄存器或ii)访问第三数据结构以代替访问第二数据结构以便获得与加载指令相关联的值。所述操作还包括至少部分地通过将第二物理寄存器设置为与加载指令相关联的值执行预测加载。在本公开的一个或多个其他示例实施例中,公开了一种用于绕过加载指令的存储器访问的计算机程序产品,其包括可由处理电路读取的非暂时性存储介质,存储介质存储由处理电路执行的指令以使方法被执行。该方法包括至少部分地通过访问由与加载指令相关联的指令地址(IA)索引的第一数据结构确定对应于与加载指令相关联的加载IA的预测IA,并利用预测IA的至少一部分以i)访问第二数据结构以确定存储与加载指令相关联的值的第一物理寄存器或ii)访问第三数据结构以代替访问第二数据结构以便获得与加载指令相关联的值。所述方法还包括至少部分地通过将第二物理寄存器设置为与加载指令相关联的值执行预测加载。附图说明参考附图阐述详细描述。提供附图仅用于说明的目的,并且仅描绘了本公开的示例实施例。提供附图是为了便于理解本公开,并且不应视为限制本公开的广度、范围或适用性。在附图中,附图标记的最左边的数字标识附图标记首次出现的附图。使用相同的附图标记表示相似但不一定一样或相同的部件。然而,不同的附图标记也可用于识别类似的组件。各种实施例可以利用除附图中示出的元件或组件之外的元件或组件,并且一些元件和/或组件可以不存在于各种实施例中。取决于上下文,使用单数术语来描述组件或元件可以包含多个这样的组件或元件,反之亦然。图1是示意性地描绘根据本公开的一个或多个示例实施例的执行预测加载以绕过加载指令的存储器访问的框图。图2是根据本公开的一个或多个示例实施例的用于执行预测加载以绕过加载指令的存储器访问的说明性方法的过程流程图。图3是根据本公开的一个或多个示例实施例的用于确定是否执行预测加载以绕过加载指令的存储器访问的说明性方法的过程流程图。图4是被配置为实现本公开的一个或多个示例实施例的说明性计算设备的示意图。具体实施方式本专利技术的示例实施例尤其包括用于执行绕过对加载指令的存储器访问的预测加载的系统、方法、计算机可读介质、技术和方法。在某些示例实施例中,识别被预测为存储将由加载指令加载的值的第一物理寄存器,并且将存储在第一物理寄存器中的值复制到第二物理寄存器以供消费者操作使用。可以识别对应于加载指令的预测存储指令,并且可以访问映射表以获得与预测的存储指令相关联的数据。数据可以包括第一物理寄存器的标识以及生成/修改存储在第一物理寄存器中的值的生成器操作的标识(例如,指令标识符)。作为执行预测加载的结果,从生成器操作获得所需数据,并且可以绕过执行加载指令以及将数据从存储器位置复制到物理寄存器所需的高速缓冲存储器访问。图1是示意性地描绘根据本公开的一个或多个示例实施例的执行预测加载以绕过加载指令的存储器访问的框图。图2是根据本公开的一个或多个示例实施例的用于执行预测加载以绕过加载指令的存储器访问的说明性方法200的过程流程图。图3是根据本公开的一个或多个示例实施例的用于确定是否执行预测加载以绕过加载指令的存储器访问的说明性方法300的过程流程图。以下将结合图1描述图2和3中的每一个。方法200和/或方法300的每个操作可以由图1中描绘的一个或多个组件(例如,引擎)执行。这些组件可以以硬件、软件和/或固件的任何组合来实现。在某些示例实施例中,这些组件中的一个或多个可以至少部分地实现为包含或者是包括计算机可执行指令的一个或多个程序模块的集合的软件和/或固件,所述计算机可执行指令当由处理电路执行时,导致执行一个或多个操作。这里描述的被配置为实现本公开的示例实施例的系统或设备可以包括一个或多个处理电路,每个处理电路可以包括一个或多个处理单元或节点。计算机可执行指令可以包括计算机可执行程序代码,当由处理单元执行时,该计算机可执行程序代码可以使得包含在计算机可执行程序代码中或由计算机可执行程序代码引用的输入数据被访问和处理,以产生输出数据。首先参照图1,描绘了引擎集合,包括预测引擎102,寄存器跟踪引擎104,读/写引擎106和指令执行引擎108。这些引擎可以以硬件、软件和/或固件的任何组合来实现。在某些示例实施例中,这些引擎可以在具有图4中所示的说明性配置的一个或多个设备上执行。现在结合在一起参照图1和图2,在框202,可以执行指令执行引擎108的计算机可执行指令以使得执行生成器操作,该生成器操作生成/修改与已经在微体系结构中定义的该组架构寄存器128的特定架构寄存器相关联的值。为了便于解释,在下文中可以使用附图标记128来表示上面引用的特定架构寄存器。在某些示例实施例中,可以将一组架构寄存器指定为微架构设计的一部分。这组架构寄存器可以映射到微体系结构中的一组物理寄存器。在某些示例实施例中,多个物理寄存器可以大于或等于多个架构寄存器。这样,架构寄存器128可以映射到不同的物理寄存器以用于不同的指令和/或可以同时映射到多个物理寄存器。更具体地,与架构寄存器128相关联的值可以同时存储在用于不同指令和/或多个物理寄存器的不同物理寄存器中。作为非限制性示例,生成器操作可以将两个寄存器中的值相加并将得到的和存储在寄存器之一中。例如,如果R1表示架构寄存器128,则生成器操作可以是R1=R1+R2,其中R2是不同的架构寄存器。如前所述,架构寄存器128(例如,R1)最初可以映射到例如物理寄存器20(pR20)。类似地,架构寄存器R2可以映射到物理寄存器22(pR22)。作为生成器操作的结果,可以对存储在pR20和pR22中的值求和,并且可以将得到的和存储在物理寄存器21(pR21)中。物理寄存器pR2本文档来自技高网...

【技术保护点】
1.一种用于绕过加载指令的存储器访问的计算机实现的方法,所述方法包括:至少部分地通过访问由与加载指令相关联的指令地址(IA)索引的第一数据结构确定对应于与加载指令相关联的加载IA的预测IA;利用预测IA的至少一部分以:i)访问第二数据结构以确定存储与加载指令相关联的值的第一物理寄存器或ii)访问第三数据结构以代替访问第二数据结构以便获得与加载指令相关联的值;以及至少部分地通过将第二物理寄存器设置为与加载指令相关联的值,执行预测加载作为加载指令的一部分。

【技术特征摘要】
【国外来华专利技术】2017.02.24 US 15/441,6041.一种用于绕过加载指令的存储器访问的计算机实现的方法,所述方法包括:至少部分地通过访问由与加载指令相关联的指令地址(IA)索引的第一数据结构确定对应于与加载指令相关联的加载IA的预测IA;利用预测IA的至少一部分以:i)访问第二数据结构以确定存储与加载指令相关联的值的第一物理寄存器或ii)访问第三数据结构以代替访问第二数据结构以便获得与加载指令相关联的值;以及至少部分地通过将第二物理寄存器设置为与加载指令相关联的值,执行预测加载作为加载指令的一部分。2.如权利要求1所述的计算机实现的方法,其中预测IA是与存储指令相关联的预测的存储IA,并且其中访问第二数据结构包括:访问由预测的存储IA的至少一部分索引的第二数据结构中的条目;从第二数据结构中的条目确定与预测的存储IA相关联的第一物理寄存器;以及从第一个物理寄存器获得与加载指令相关联的值。3.如权利要求1所述的计算机实现的方法,还包括:确定与预测IA相关联的置信度值;以及确定置信度值满足阈值。4.如权利要求1所述的计算机实现的方法,其中确定对应于与加载指令相关联的加载IA的预测IA包括:利用至少一部分加载IA访问第一数据结构中的条目;以及从第一数据结构中的条目识别预测IA。5.如权利要求4所述的计算机实现的方法,还包括:至少部分地基于与预测IA相关联的第一操作数地址和与加载IA相关联的第二操作数地址之间的匹配来识别预测IA和加载IA之间的数据配对;以及至少部分地基于数据配对在第一数据结构中生成条目。6.如权利要求4所述的计算机实现的方法,其中,第一数据结构是分支预测数据结构。7.如权利要求1所述的计算机实现的方法,其中预测IA是预测的恒定加载IA,以及其中访问第三数据结构以获得与加载指令相关联的值包括:访问由预测的恒定加载IA的至少一部分索引的第三数据结构中的条目;以及从第三数据结构中的条目确定与加载指令相关联的值。8.如权利要求1所述的计算机实现的方法,其中加载指令是第一加载指令,加载IA是第一加载IA,以及预测IA是第一预测IA,所述方法还包括:确定对应于与第二加载指令相关联的第二加载IA的第二预测IA,所述确定包括:用模式哈希第二加载IA以获得哈希值;利用哈希值来索引模式表,以识别模式表中的匹配条目;以及从模式表中的匹配条目确定第二预测IA。9.如权利要求1所述的计算机实现的方法,其中第一数据结构由第一组加载IAs索引,并且第三数据结构由第二组存储IAs索引。10.一种用于绕过加载指令的存储器访问的系统,所述系统包括:至少一个存储计算机可执行指令的存储器;和至少一个处理器,可操作地耦合到至少一个存储器,并且被配置为访问至少一个存储器以执行计算机可执行指令以:至少部分地通过访问由与加载指令相关联的指令地址(IA)索引的第一数据结构确定对应于与加载指令相关联的加载IA的预测IA;利用预测IA的至少一部分以:i)访问第二数据结构以确定存储与加载指令相关联的值的第一物理寄存器或ii)访问第三数据结构以代替访问第二数据结构以便获得与加载指令相关联的值;以及至少部分地通过将第二物理寄存器设置为与加载指令相关联的值,...

【专利技术属性】
技术研发人员:BR普拉斯基岑中龙C斯塔彭贝克DA施罗特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

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

1