微处理机存储指令的融合制造技术

技术编号:37708360 阅读:10 留言:0更新日期:2023-06-01 23:58
提供了一种用于融合微处理器中的存储指令的方法。该方法包括识别微处理器的执行管线中的两条指令。该方法还包括确定两条指令满足融合准则。响应于确定两条指令满足融合准则,将两条指令重新编码成融合的指令。执行融合的指令。指令。指令。

【技术实现步骤摘要】
【国外来华专利技术】微处理机存储指令的融合

技术介绍

[0001]本专利技术总体上涉及计算领域,并且更具体地涉及在微处理器中融合指令。
[0002]微处理器是在一个或多个集成电路(IC)上结合中央处理单元的功能的计算机处理器。处理器基于时钟周期执行指令(例如,存储指令)。时钟周期或简称为“周期”是处理器的单个电子脉冲。通常,处理器能够每周期执行单条指令。

技术实现思路

[0003]本专利技术的实施例包括用于融合微处理器中的存储指令的方法、计算机程序产品和系统。该方法包括识别微处理器的执行管线中的两条指令。该方法还包括确定两条指令满足融合准则。响应于确定两条指令满足融合准则,将两条指令重新编码成融合的指令(fused instruction)。执行融合的指令。
[0004]实施例还包括被配置成融合指令的微处理器。该微处理器包括指令获取单元、指令排序单元和加载

存储单元。指令获取单元被配置为确定从存储器获取的两个存储指令是可融合的。指令获取单元进一步被配置为将两个存储指令重新编码为融合的存储指令。指令排序单元被配置为从指令获取单元接收融合的存储指令并且将融合的指令存储为发布队列中的条目。融合的存储指令的第一半存储在发布队列的第一半中,并且融合的存储指令的第二半存储在发布队列的第二半中。所述加载

存储单元被配置为从所述发布队列接收所述融合的存储指令,使用所述融合的存储指令的第一半生成存储地址,将所述存储地址存储在存储重排序队列中,以及将来自所述融合的存储指令的第二半的数据存储在存储数据队列中。r/>[0005]以上概述并不旨在描述本专利技术的每个所示实施例或每个实现方式。
附图说明
[0006]包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。它们展示了本专利技术的实施例,并且与说明书一起用于解释本专利技术的原理。附图仅是对典型实施例的说明,并不限制本专利技术。
[0007]图1示出了根据本专利技术实施例的示例处理器微架构的各种部件的高级框图。
[0008]图2示出了根据本专利技术实施例的被配置为融合指令的处理器的示例微架构的框图。
[0009]图3A示出了根据本专利技术实施例的图2的示例指令获取单元(IFU)的框图。
[0010]图3B展示了根据本专利技术的实施例的图2的示例指令排序单元(ISU)的框图。
[0011]图3C示出根据本专利技术实施例的图2的示例矢量/标量单元(VSU)和示例加载

存储单元(LSU)的框图。
[0012]图3D示出了根据本专利技术实施例的图2的完成和异常处理的框图。
[0013]图4示出了根据本专利技术实施例的用于融合由微处理器执行的指令的示例性方法的流程图。
[0014]图5示出了根据本专利技术实施例的可用于实现本文所描述的方法、工具和模块和任何相关功能中的一个或多个的示例性计算机系统的高级框图。
[0015]虽然在此描述的实施例服从不同修改和替代形式,但是其细节已经通过举例在附图中示出并且将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,本专利技术旨在覆盖落在本专利技术的范围内的所有修改、等同物以及替换物。
具体实施方式
[0016]本专利技术的各方面一般涉及计算领域,尤其涉及在微处理器中融合存储指令。虽然本专利技术不必限于这些应用,但是可以通过使用上下文的各个实例的讨论来理解本专利技术的各个方面。
[0017]当前,在微处理器核或线程内执行的存储指令被单独地处理(即,一次一个)。照此,单个加载

存储指令能够随每个时钟周期发布,从而限制处理器的执行带宽。添加更多的核或硬件线程可以克服提高性能,但是每个核/硬件线程占据处理器管芯上的相当大的空间。
[0018]本专利技术的实施方式被设计为改善执行带宽,并且对部件的尺寸具有中等影响,从而增加微处理器的性能。本专利技术的实施例包括检查前面的执行流(例如,在指令获取期间)和识别可以融合和一起执行的指令(例如,存储指令)。然后,在本文中称为“可融合指令”的这些指令重新编码成具有在本文中称为“融合的指令”的新iop(指令操作码)的新指令。融合的指令看起来像用于原子地进行两个存储的单条指令。融合的指令可缓冲到执行流中且作为单条指令来执行,从而仅需要单个时钟周期来完成两条指令。
[0019]在一些实施例中,当指令获取单元(IFU)从L2高速缓存获取指令时分析指令以查看它们是否可被融合。IFU使用一组融合准则来确定指令是否可以被融合。例如,IFU可在它们进入核时寻找访问相邻存储器的两个存储指令。这可以在指令被放置在指令高速缓存(Icache)中之前由硬件逻辑执行。在一些实施例中,当重新编码/融合指令时,IFU可摆脱不必要的位(例如,将32位指令降低到20位,保持类型(加载/存储)和大小)。
[0020]在一些实施例中,指令可能必须是连续的,以便融合。然而,在其他实施例中,可融合指令可在其间具有一条或多条指令,条件是其不是中间的分支指令。另外,在一些实施例中,融合要求指令具有相同的基址寄存器,具有相同的大小,并且偏移是特定大小。例如,如果存储指令都是8位存储,则偏移必须具有8位的差异(假设指令具有相同的基址寄存器)以确保它们被写到连续的存储器位置。
[0021]本专利技术的实施例支持上升和下降的存储融合。例如,对于8位存储,指令可分别从基址寄存器移位x+0和从基址寄存器移位x+8,或相反地,分别为x+8和x+0。换言之,只要两条指令要向相邻的存储器区域写入(例如,通过它们的偏移之间的差等于存储大小证明),则它们被取回的顺序无关紧要。如果取出指令使得第二指令被写入第一存储器位置(即,直接在第一指令之前的存储器位置),那么系统可以在融合之后“翻转(flip)”指令的顺序。在这些实施例中,发布队列(ISQ)被告知在将指令发送到加载

存储单元(LSU)之前交换指令。指令是否需要翻转以及它们是否可融合的确定是预解码的一部分,并且比特标记是否存在交换。因此,在一些实施例中,存在用作标志的两个位:第一位表示指令是否将被融合,并且第二位表示是否交换它们的顺序。这些位可覆盖用于现有iops的现有位。在任何情况下,指
令仍将以适当的顺序加载用于原子执行。
[0022]本专利技术的实施例可仅取决于处理器的架构来支持多种存储大小的融合。例如,一些实施例可以被配置为融合包括单个位、半个字、单个字(SW)、双字(DW)和四个字(QW)的存储。取决于队列、总线和存储的大小,较大的存储可能需要额外的处理。例如,如果存储队列为16字节宽,则能够使用单个发布和单个STAG处理两个双字到16字节存储的融合(如本文所讨论的)。然而,将两个四字融合到32字节存储中可能需要指令发布两次并且写入两个连续的STAG。
[0023]尽管本文使用16字节(128位)存储队列描述了本专利技术的实施例,但应当理解,这样做是为了说明的目的。如普通技术人员将认识到的,在此描述的实施例可以适用于其他大小的存储队列,并且本专利技术不局限于16字节的存储队列。...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:识别微处理器的执行管线中的两条指令;确定所述两条指令满足融合准则;响应于确定所述两条指令满足所述融合准则,将所述两条指令重新编码为融合的指令;以及执行所述融合的指令。2.根据权利要求1所述的方法,其中,所述两条指令包括第一指令和第二指令,并且其中,确定所述两条指令满足所述融合准则包括:确定所述第一指令和所述第二指令具有相同的指令类型、相同的指令长度,并且所述第一指令和所述第二指令将被存储在连续的存储器位置中。3.根据权利要求1所述的方法,其中,所述方法进一步包括:在执行所述融合的指令时识别异常;刷新融合的指令;以及重新获取所述两条指令。4.根据权利要求3所述的方法,其中,所述方法进一步包括:在重新获取所述两条指令之后,分别执行所述两条指令。5.根据权利要求3所述的方法,所述方法进一步包括:确定所述异常与所述两条指令中的第一指令相关;以及对照所述第一...

【专利技术属性】
技术研发人员:B
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1