一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

利用超标量处理器进行指令融合的方法及相关设备与流程

2022-07-30 16:46:55 来源:中国专利 TAG:


1.本技术涉及指令融合技术领域,尤其涉及一种利用超标量处理器进行指令融合的方法及相关设备。


背景技术:

2.目前,在超标量处理器中,一条运算指令所经过的阶段主要有:取指、译码、乱序调度、执行和写回、提交。当需要运算的指令较多时,超标量处理器的性能会受到影响。因而出现了使得超标量处理器得到优化的一些方法,可以通过软件优化或者硬件优化的方法,其中软件方法主要是对编译器进行优化,而硬件方法主要是指令消除、指令融合等。但是现有的指令融合技术,对融合后的指令需要额外的硬件逻辑进行处理,会造成超标量处理器运行复杂。


技术实现要素:

3.针对上述问题,本技术提供了一种利用超标量处理器进行指令融合的方法及相关设备,有利于减少超标量处理器执行的指令数量,加快处理器处理效率,同时可以实现融合指令与非融合指令复用同一指令执行单元,降低对超标量处理器维护成本。
4.为实现上述目的,本技术实施例第一方面提供了一种用于指令融合的超标量处理器,包括译码单元、融合译码单元和指令执行单元,指令执行单元包括融合指令执行单元;
5.译码单元,用于获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元;
6.融合译码单元,用于获取由多条指令中每相邻的两条指令组成的至少一个指令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对;若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令;
7.融合指令执行单元,用于按照融合指令的运算逻辑执行融合指令。
8.结合第一方面,在一种可能的实施方式中,融合译码单元,还用于若多个指令对中不存在与任意一个指令对相匹配的指令对,则设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
9.结合第一方面,在一种可能的实施方式中,融合译码单元,还用于在第一指令的源操作数与目的操作数不相等或第一指令的目的操作数与第二指令的任意一个源操作数均不相等的情况下,设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
10.结合第一方面,在一种可能的实施方式中,融合译码单元,还用于生成融合指令的
第二指令控制信号,设定融合指令的有效位为第一状态、标记位为第一状态,以及设定第二指令的有效位为第二状态、标记位为第二状态。
11.结合第一方面,在一种可能的实施方式中,指令执行单元还包括非融合指令执行单元;
12.指令执行单元,用于接收保留站发送的经过乱序调度后的第一指令和第二指令,判断经过乱序调度后的第一指令和第二指令的标记位是否为第二状态,若是,则将经过乱序调度后的第一指令和第二指令发送给非融合指令执行单元;
13.非融合指令执行单元,用于按照第一指令的运算逻辑执行第一指令、按照第二指令的运算逻辑执行第二指令。
14.结合第一方面,在一种可能的实施方式中,指令执行单元,还用于接收保留站发送的经过乱序调度后的融合指令,判断经过乱序调度后的融合指令的标记位是否为第一状态,若是,则将经过乱序调度后的融合指令发送给融合指令执行单元。
15.结合第一方面,在一种可能的实施方式中,第二指令控制信号包括融合指令的操作类型、目的操作数所在的目的寄存器号和源操作数所在的寄存器号。
16.本技术实施例第二方面提供了一种利用第一方面提供的超标量处理器进行指令融合的方法,超标量处理器包括译码单元、融合译码单元和指令执行单元,指令执行单元包括融合指令执行单元;
17.译码单元获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元;
18.融合译码单元获取由多条指令中每相邻的两条指令组成的至少一个指令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对;若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令;
19.融合指令执行单元按照融合指令的运算逻辑执行融合指令。
20.本技术实施例第三方面提供了一种计算机设备,该计算机设备处理器和存储器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得计算机设备执行如第二方面中的方法步骤。
21.本技术实施例第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现如第二方面中的方法步骤。
22.本技术的上述方案至少包括以下有益效果:
23.本技术实施例中,超标量处理器包括译码单元、融合译码单元和指令执行单元,指令执行单元包括融合指令执行单元。首先,通过译码单元获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元,用于辨别每条指令的第一指令控制信号。然后,融合译码单元获取由多条指令中每相邻的两条指令组成的至少一个指令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中
的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对,若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令。其中,指令融合是为了减少指令执行数量,判断两条相邻的指令的第一指令控制信号是否符合预设的指令模式和寄存器模式,在都符合的时候,可以将这两条指令进行融合,得到融合指令。最后,融合指令执行单元按照融合指令的运算逻辑执行融合指令。该融合指令经过指令融合处理后,其控制信号内容发生改变,融合指令执行单元按照融合指令的运算逻辑进行指令执行。
24.本技术方案通过融合译码单元进行指令融合可以减少超标量处理器指令的执行数量,从而减少执行时间,加快运行效率。同时,本方案经过指令融合处理后得到的融合指令与原有指令含有同样数量的目的操作数和源操作数,可以复用原有的指令执行单元,不用对融合指令添加单独的指令执行单元,降低成本。
附图说明
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为本技术实施例提供的一种利用超标量处理器进行指令融合的方法的流程示意图;
27.图2为本技术实施例提供的一种指令缓冲区发送指令的示意图;
28.图3为本技术实施例提供的一种超标量处理器的整体处理逻辑的示意图;
29.图4为本技术实施例提供的一种指令融合示意图;
30.图5为本技术实施例提供的一种判断相邻两条指令是否符合指令融合模式的整体示意图;
31.图6为本技术实施例提供的一种用于指令融合的超标量处理器的结构示意图;
32.图7为本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
33.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
34.本技术说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
35.请参见图1,图1为本技术实施例提供的一种利用超标量处理器进行指令融合的方法的流程示意图,其中,超标量处理器包括译码单元、融合译码单元和指令执行单元,指令执行单元包括融合指令执行单元。该方法包括步骤101-103:
36.101:译码单元获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元。
37.102:融合译码单元获取由多条指令中每相邻的两条指令组成的至少一个指令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对,若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令。
38.103:融合指令执行单元按照融合指令的运算逻辑执行融合指令。
39.在对相邻两条指令进行指令融合判断之前,指令缓冲区要获取进行判断的多条指令。示例性的,超标量处理器还包括基础预译码单元,基础预译码单元,用于获取指令缓存中的多条指令,并将多条指令发送至指令缓冲区,以使指令缓冲区将获取的多条指令发送至译码单元。同时,如图2所示,图2为本技术实施例提供的一种指令缓冲区发送指令的示意图。指令缓冲区还将多条指令(比如图2中的6条指令)中每相邻的两条指令组成指令对,由此得到至少一个指令对,并将至少一个指令对发送至融合译码单元。
40.具体的,译码单元对多条指令中的每条指令进行译码,得到每条指令的指令控制信号,并将该指令控制信号给到融合译码单元。融合译码单元判断指令对中的相邻两条指令的指令控制信号是否符合预设的指令融合模式,指令融合模式中包括指令模式和寄存器模式。同时符合以上两种模式的相邻两条指令才能够进行指令融合得到融合指令,由指令执行单元中的融合指令执行单元按照融合指令的运算逻辑执行该融合指令。如果不符合以上两种模式中的任意一种模式,将无法进行指令融合,无法进行指令融合的指令将由指令执行单元按照指令原来的运算逻辑进行执行。因此,在本方案中,存在三种情况:其一,为相邻两条指令符合以上两种模式,进行指令融合,其二,为相邻两条指令不符合指令模式,不进行指令融合,按照指令原来的运算逻辑执行,其三,为相邻两条指令符合指令模式,但不符合寄存器模式,不进行指令融合,按照指令原来的运算逻辑执行。以下将针对上述三种实施例进行具体解释。
41.本技术方案通过融合译码单元进行指令融合可以减少超标量处理器指令的执行数量,从而减少执行时间,加快运行效率。同时,本方案经过指令融合处理后得到的融合指令与原有指令含有同样数量的目的操作数和源操作数,可以复用原有的指令执行单元,不用对融合指令添加单独的指令执行单元,降低成本。
42.请参见图3,图3为本技术实施例提供的一种超标量处理器的整体处理逻辑的示意图,其中,超标量处理器包括译码单元、融合译码单元和指令执行单元,指令执行单元包括融合指令执行单元和非融合指令单元。整体逻辑为指令缓冲区获取从指令缓存获得的多条指令,由译码单元进行译码处理,并将多条指令的第一控制信号发送至融合译码单元,由融合译码单元判断多条指令的第一控制信号是否符合指令模式,将符合的指令对生成融合指
令并发送至保留站,将不符合的指令的第一控制信号直接发送至保留站。最终由指令执行单元的融合指令执行单元按照融合指令的逻辑执行融合指令,非融合指令单元按照指令逻辑执行指令。基于图3对上述三种情况进行说明。
43.第一种情况为相邻两条指令符合以上两种模式,进行指令融合:
44.首先,译码单元获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元。
45.具体而言,译码单元获取从指令缓存区中发送过来的多条指令后,进行译码操作,得到多条指令中的每条指令的指令控制信号(即第一指令控制信号)和该每条指令的有效位,该第一指令控制信号包含指令的目的操作数和源操作数。例如,指令1:slli r1,r1,1,其中,第一位的r1为指令1的目的操作数,第二位的r1为指令1的源操作数,第三位的1为指令1的源操作数。为了对多条指令进行指令融合模式判断,译码单元将译码后的多条指令中每条指令的第一指令控制信号发送至融合译码单元,进行判断。
46.然后,融合译码单元获取由多条指令中每相邻的两条指令组成的至少一个指令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对;若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令。
47.其中,第一指令可以是指令对中的任意一条指令,比如第一条指令,第二指令可以是指令对除第一指令以外的另一条指令,比如第二条指令。具体而言,融合译码单元在获取到多条指令中的每条指令的第一指令控制信号之后,对任意一个指令对中相邻两条指令的第一指令控制信号进行判断。首先,需要相邻两条指令中第一指令为i类型指令,第二指令为i类型指令或r类型指令,例如,指令对1:slli r1,r1,32和srli r1,r1,31,其中,第一条指令slli r1,r1,32为i类型指令,第二条指令srli r1,r1,31为i类型指令。在满足相邻两条指令中第一指令为i类型指令,第二指令为i类型指令或r类型指令任意一种的情况下,需要判断预设的多个指令对中是否存在与该任意一个指令对相匹配的指令对。其中,预设的多个指令对缓存在融合译码单元中,将该任意一个指令对中相邻两条指令的第一指令控制信号与预设的多个指令对中的指令的指令控制信号进行匹配。若预设的多个指令对中存在相匹配的指令对,则确定该任意一个指令对符合指令融合模式的指令模式。
48.在符合指令融合模式的指令模式的情况下,若想要对相邻两条指令进行指令融合处理,还需要进行寄存器模式判断。寄存器模式要求,第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等。例如,指令对1:slli r1,r1,32和srli r1,r1,31,其中,第一指令slli r1,r1,32的目的操作数为r1,与第二指令srli r1,r1,31的目的操作数r1相等,且第一指令slli r1,r1,32的目的操作数r1与第二指令srli r1,r1,31的源操作数r1相等,符合寄存器模式,综上,指令对1:slli r1,r1,32和srli r1,r1,31符合指令融合模式,进行指令融合处理。在符合指令模式和寄存器模式的情况下,对符合的相邻两条指令进行指令融合操作,得到融合指令。同时,生成融合指令的指令控制信号(即第二指令控制信号),设定融合指令的有效位为第一状态、标记位为第一状
态,以及设定第二指令的有效位为第二状态、标记位为第二状态。其中,第一状态为真,第二状态为假,将第二指令的有效位设定为第二状态、标记位设定为第二状态表示第二指令为无效指令。其中,第二指令控制信号包括融合指令的操作类型、目的操作数所在的目的寄存器号和源操作数所在的寄存器号。例如,指令对1:slli r1,r1,32和srli r1,r1,31经过指令融合处理后得到融合指令为szew1 rd,rs1,rs2。其中,szew1为该融合指令的操作类型对应的指令名称,rd为目的寄存器号,rs1,rs2为源操作数所在的寄存器号。因为融合指令和原来的指令的指令控制信号均含有一个目的操作数和两个源操作数,因此,可以复用同一执行单元。
49.最后,融合指令执行单元按照融合指令的运算逻辑执行融合指令。
50.具体而言,指令执行单元用于接收保留站发送的经过乱序调度后的融合指令,判断经过乱序调度后的融合指令的标记位是否为第一状态(即是否为真)。若是,则将经过乱序调度后的融合指令发送给融合指令执行单元。如图4所示,图4为本技术实施例提供的一种指令融合示意图。融合译码单元处理后得到的每条指令除了存在对应的第二指令控制信号和有效位以外,还会增加对应的标记位,有效位、标记位均为假的情况下,表示该条指令已经与其他指令一起生成了融合指令。比如图4中,指令3与指令2生成了融合指令,融合指令在指令2的位置,指令3相应被标记为无效指令。融合指令与未融合的指令一起经过重命名、分派、访问寄存器等乱序调度的步骤后到达保留站等待调度发出。
51.需要说明的是,本技术实施方案中的融合指令执行单元并非独立于指令执行单元的功能单元,融合指令与未融合的指令复用同一指令执行单元,也就是说,该指令执行单元中包含两种逻辑。其一,为未融合的指令原来的执行逻辑,其二,为融合指令的执行逻辑。而融合指令执行单元即按照融合指令的运算逻辑执行融合指令。
52.本实施例通过融合译码单元进行指令融合可以减少超标量处理器指令的执行数量,从而减少执行时间,加快运行效率。同时,本方案经过指令融合处理后得到的融合指令与原有指令含有同样数量的目的操作数和源操作数,可以复用原有的指令执行单元,不用对融合指令添加单独的指令执行单元,降低成本。
53.第二种情况为为任意一个指令对中相邻两条指令不符合指令模式,不进行指令融合,按照指令原来的运算逻辑执行:
54.首先,译码单元获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元。
55.具体而言,译码单元获取从指令缓存区中发送过来的多条指令后,要进行指令融合模式判断前,译码单元进行译码操作,得到多条指令中的每条指令的第一指令控制信号,该第一指令控制信号包含指令的目的操作数和源操作数。例如,指令1:slli r1,r1,1,其中,第一位的r1为指令1的目的操作数,第二位的r1为指令1的源操作数,第三位的1为指令1的源操作数。为了对多条指令进行指令融合模式判断,译码单元将译码后的多条指令中每条指令的第一指令控制信号发送至融合译码单元,进行判断。
56.然后,相邻的两条指令在预设的多个指令对中不存在相匹配的指令对,则确定相邻的两条指令不符合指令模式,融合译码单元则设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
57.最后,指令执行单元接收保留站发送的经过乱序调度后的第一指令和第二指令,
判断经过乱序调度后的第一指令和第二指令的标记位是否为第二状态,若是,则将经过乱序调度后的第一指令和第二指令发送给非融合指令执行单元。其中,第二状态为假。在指令执行单元中包含融合指令执行单元和非融合指令执行单元。其中,融合指令执行单元按照融合指令的逻辑执行融合指令,非融合指令执行单元按照第一指令的运算逻辑执行第一指令、按照第二指令的运算逻辑执行第二指令。
58.第三种情况为任意一个指令对中相邻两条指令不符合寄存器模式,不进行指令融合,按照指令原来的运算逻辑执行:
59.首先,译码单元获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元。
60.具体而言,译码单元获取从指令缓存区中发送过来的多条指令后,要进行指令融合模式判断前,译码单元进行译码操作,得到多条指令中的每条指令的第一指令控制信号,该第一指令控制信号包含指令的目的操作数和源操作数。例如,指令1:slli r1,r1,1,其中,第一位的r1为指令1的目的操作数,第二位的r1为指令1的源操作数,第三位的1为指令1的源操作数。为了对多条指令进行指令融合模式判断,同时译码单元将译码后的多条指令中每条指令的第一指令控制信号发送至融合译码单元,进行判断。
61.然后,融合译码单元在第一指令的源操作数与目的操作数不相等或第一指令的目的操作数与第二指令的任意一个源操作数均不相等的情况下,设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。其中,第一状态为真,第二状态为假。
62.最后,指令执行单元接收保留站发送的经过乱序调度后的第一指令和第二指令,判断经过乱序调度后的第一指令和第二指令的标记位是否为第二状态,若是,则将经过乱序调度后的第一指令和第二指令发送给非融合指令执行单元。其中,第二状态为假。在指令执行单元中包含融合指令执行单元和非融合指令执行单元。其中,融合指令执行单元按照融合指令的逻辑执行融合指令,非融合指令执行单元按照第一指令的运算逻辑执行第一指令、按照第二指令的运算逻辑执行第二指令。
63.请参见图5,图5为本技术实施例提供的一种判断相邻两条指令是否符合指令融合模式的整体示意图。
64.具体而言,判断指令对中的第一指令是否为i类型指令、第二指令是否为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对,即指令模式。若不符合,则按照普通指令译码。若符合,判断第一指令的源操作数与目的操作数是否相等且第一指令的目的操作数与第二指令的至少一个源操作数是否相等,若不符合,则按照普通指令译码。若符合,对第一指令和第二指令进行指令融合,得到融合指令。
65.基于上述利用超标量处理器进行指令融合的方法实施例的描述,请参见图6,图6为本技术实施例提供的一种用于指令融合的超标量处理器的结构示意图,如图6所示,包括译码单元601、融合译码单元602和指令执行单元603,指令执行单元603包括融合指令执行单元6031,其中:
66.译码单元601,用于获取待执行的多条指令中每条指令的第一指令控制信号,并将第一指令控制信号发送给融合译码单元602;
67.融合译码单元602,用于获取由多条指令中每相邻的两条指令组成的至少一个指
令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对;若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令;
68.融合指令执行单元6031,用于按照融合指令的运算逻辑执行融合指令。
69.在一种可能的实施方式中,融合译码单元602,还用于若多个指令对中不存在与任意一个指令对相匹配的指令对,则设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
70.在一种可能的实施方式中,融合译码单元602,还用于在第一指令的源操作数与目的操作数不相等或第一指令的目的操作数与第二指令的任意一个源操作数均不相等的情况下,设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
71.在一种可能的实施方式中,融合译码单元602,还用于生成融合指令的第二指令控制信号,设定融合指令的有效位为第一状态、标记位为第一状态,以及设定第二指令的有效位为第二状态、标记位为第二状态。
72.在一种可能的实施方式中,指令执行单元还包括非融合指令执行单元;
73.指令执行单元603,用于接收保留站发送的经过乱序调度后的第一指令和第二指令,判断经过乱序调度后的第一指令和第二指令的标记位是否为第二状态,若是,则将经过乱序调度后的第一指令和第二指令发送给非融合指令执行单元;
74.非融合指令执行单元,用于按照第一指令的运算逻辑执行第一指令、按照第二指令的运算逻辑执行第二指令。
75.在一种可能的实施方式中,指令执行单元603,还用于接收保留站发送的经过乱序调度后的融合指令,判断经过乱序调度后的融合指令的标记位是否为第一状态,若是,则将经过乱序调度后的融合指令发送给融合指令执行单元6031。
76.在一种可能的实施方式中,第二指令控制信号包括融合指令的操作类型、目的操作数所在的目的寄存器号和源操作数所在的寄存器号。
77.其中,图6所示的超标量处理器的具体实现方式在图1-图5所示的实施例中已有相关说明,且能达到相同或相似的有益效果,为避免重复,此处不再赘述。
78.基于上述实施例的描述,本技术实施例还提供一种计算机设备。请参见图7,图7为本技术实施例提供的一种计算机设备的结构示意图。该计算机设备至少包括处理器701和存储器702。其中,处理器701与存储器702相连,存储器701用于存储计算机程序,处理器701用于执行存储器702中存储的计算机程序。存储器702可以存储在计算机设备的存储器中,存储器702用于存储计算机程序,计算机程序包括程序指令,处理器701用于执行存储器702存储的程序指令。处理器701(或称cpu(central processing unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
79.在一个实施例中,本技术实施例提供的计算机设备的处理器701可以用于进行一
系列指令融合的方法的处理:
80.获取待执行的多条指令中每条指令的第一指令控制信号;
81.获取由多条指令中每相邻的两条指令组成的至少一个指令对,对于至少一个指令对中的任意一个指令对,根据任意一个指令对中的指令的第一指令控制信号,确定任意一个指令对中的第一指令为i类型指令、任意一个指令对中的第二指令为i类型指令或r类型指令,以及判断预设的多个指令对中是否存在与任意一个指令对相匹配的指令对;若存在,则在第一指令的源操作数与目的操作数相等且第一指令的目的操作数与第二指令的至少一个源操作数相等的情况下,对第一指令和第二指令进行指令融合,得到融合指令;
82.按照融合指令的运算逻辑执行融合指令。
83.再一个实施例中,处理器701还用于若多个指令对中不存在与任意一个指令对相匹配的指令对,则设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
84.再一个实施例中,处理器701还用于在第一指令的源操作数与目的操作数不相等或第一指令的目的操作数与第二指令的任意一个源操作数均不相等的情况下,设定第一指令的有效位为第一状态、标记位为第二状态,以及设定第二指令的有效位为第一状态、标记位为第二状态。
85.再一个实施例中,处理器701还用于生成融合指令的第二指令控制信号,设定融合指令的有效位为第一状态、标记位为第一状态,以及设定第二指令的有效位为第二状态、标记位为第二状态。
86.再一个实施例中,处理器701还用于判断经过乱序调度后的第一指令和第二指令的标记位是否为第二状态,若是,则按照第一指令的运算逻辑执行第一指令、按照第二指令的运算逻辑执行第二指令。
87.再一个实施例中,在按照融合指令的运算逻辑执行融合指令之前,处理器701还用于判断经过乱序调度后的融合指令的标记位是否为第一状态。
88.再一个实施例中,第二指令控制信号包括融合指令的操作类型、目的操作数所在的目的寄存器号和源操作数所在的寄存器号。
89.示例性的,计算机设备可以是服务器、电脑、虚拟机等,处理器701可以是图6中所示的用于指令融合的超标量处理器,计算机设备包括但不仅限于处理器701和存储器702。本领域技术人员可以理解,示意图仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
90.需要说明的是,由于计算机设备执行计算机程序时实现上述的利用超标量处理器进行指令融合的方法中的步骤,因此上述利用超标量处理器进行指令融合的方法的实施例均适用于该计算机设备,且均能达到相同或相似的有益效果。
91.本技术实施例还提供了一种计算机可读存储介质(memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是
高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器701的计算机可读存储介质。在一个实施例中,可由处理器701加载并执行计算机可读存储介质中存放的一条或多条指令,以实现上述有关利用超标量处理器进行指令融合的方法的相应步骤。
92.示例性的,计算机可读存储介质的计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
93.需要说明的是,由于计算机可读存储介质的计算机程序被处理器执行时实现上述的利用超标量处理器进行指令融合的方法中的步骤,因此上述利用超标量处理器进行指令融合的方法的所有实施例均适用于该计算机可读存储介质,且均能达到相同或相似的有益效果。
94.以上对本技术实施例进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献