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

一种指令处理方法、处理器、芯片和电子设备与流程

2022-06-05 08:03:25 来源:中国专利 TAG:


1.本发明实施例涉及计算机技术领域,具体涉及一种指令处理方法、处理器、芯片和电子设备。


背景技术:

2.处理器在执行cisc(complex instruction set computer,复杂指令集计算机)指令的过程中,通常会将指令译码成一个或多个微指令,并将这些微指令并行发送到不同的执行单元,以使用更少的时钟周期实现与指令相同的功能。
3.但是,微指令之间不可避免会存在架构寄存器使用冲突的问题。一般采用的方法是使用临时寄存器,来保存会导致架构寄存器使用冲突的微指令的结果。但是,这样又会导致微指令数量增加,导致指令执行的时间和功耗增加。


技术实现要素:

4.有鉴于此,本发明实施例提供一种指令处理方法、处理器、芯片和电子设备,以解决因使用临时寄存器导致的微指令数量增加的问题。
5.为实现上述目的,本发明实施例提供如下技术方案。
6.第一方面,本发明提供了一种指令处理方法,包括:
7.获取目标指令;
8.对所述目标指令进行译码,以获得多个微指令;
9.若所述多个微指令包括第一微指令和第二微指令,所述第二微指令用于修改重命名表中所述目标架构寄存器的映射关系,所述第一微指令为所述第二微指令之前最后一个读取所述目标架构寄存器的值的微指令,则将所述第二微指令的操作信息添加到所述第一微指令中;
10.根据所述第一微指令携带的操作信息,修改重命名表中所述目标架构寄存器的映射关系。
11.第二方面,本发明提供了一种处理器,包括:
12.取指单元,用于获取目标指令;
13.译码单元,用于对所述目标指令进行译码,以获得多个微指令;
14.控制单元,用于在所述多个微指令包括第一微指令和第二微指令,且所述第二微指令用于修改重命名表中所述目标架构寄存器的映射关系,所述第一微指令为所述第二微指令之前最后一个读取所述目标架构寄存器的值的微指令时,将所述第二微指令的操作信息添加到所述第一微指令中;
15.重命名单元,用于根据所述第一微指令携带的操作信息,修改重命名表中所述目标架构寄存器的映射关系。
16.第三方面,本发明提供了一种芯片,包括本发明实施例所述的处理器。
17.第四方面,本发明提供了一种电子设备,包括本发明实施例所述的芯片。
18.本发明实施例提供的指令处理方法、处理器、芯片和电子设备,获取目标指令之后,将目标指令译码成多个微指令,若多个微指令包括第一微指令和第二微指令,第二微指令用于修改重命名表中目标架构寄存器的映射关系,第一微指令为第二微指令之前最后一个读取目标架构寄存器的值的微指令,则将第二微指令的操作信息添加到第一微指令中,并根据第一微指令携带的操作信息,修改重命名表中目标架构寄存器的映射关系,从而不需要再执行第二微指令,进而可以丢弃第二微指令,进而可以减少微指令的数量,减少指令的执行时间,提前释放物理寄存器资源。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
20.图1为一种处理器的架构示意图;
21.图2为理想情况下执行交换指令时,架构寄存器a和架构寄存器b的数据交换方式示意图;
22.图3为一种实际情况下执行交换指令时,架构寄存器a和架构寄存器b的数据交换方式示意图;
23.图4为本发明实施例提供的一种处理器的架构示意图;
24.图5为本发明一个实施例提供的指令处理方法的流程图;
25.图6为本发明一个实施例提供的目标架构寄存器与微指令的关系示意图;
26.图7为本发明一个实施例提供的处理器的架构示意图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.处理器是计算机体系的运算和控制核心。例如,中央处理单元(cpu),各种复杂指令集计算(cisc)处理器、各种精简指令集计算(risc)处理器、各种超长指令字(vliw)处理器等。处理器一般设置为流水线作业,包括取指阶段、译码阶段、重命名阶段、执行阶段和提交阶段。
29.如图1所示,图1为一种处理器的架构示意图,处理器10可以包括:取指单元101、译码单元102、执行单元103、重命名表104、物理寄存器堆105和重命名单元106。
30.其中,在取指阶段,取指单元101可根据取指指令提取指令,例如根据处理器前端的分支预测单元预测的取指指令,从指令缓存中提取指令。
31.在译码阶段,译码单元102可对取指单元101获取的指令进行译码解析。译码单元102译码后的指令可以是解析指令所得出的可由机器执行的操作信息,例如解析指令的opcode(operation code,操作码)、操作数和控制字段从而形成的机器可执行的uop(微指
令)。另外,译码单元102根据指令集架构设定,将当前指令进行译码,得到指令的opcode中在后续执行单元执行的具体操作,获取指令的源操作数和目的操作数存放的架构寄存器以及其他所需要的信息。指令在经过译码单元102译码后,可展开成处理器内部需要的格式,此时译码后的指令可携带多个属性,比如opcode、操作数等。
32.在重命名阶段,重命名单元106用于对重命名表104中架构寄存器与物理寄存器的映射关系进行修改。其中,重命名表104可以记录实际分配的物理寄存器与架构寄存器之间的映射关系。重命名单元106可以通过修改重命名表104中的映射关系,实现重新建立或修改物理寄存器堆105中的物理寄存器与架构寄存器之间的映射关系。重新建立或修改映射关系之后的物理寄存器会被标识为已占用,在该标识的物理寄存器被释放之前,该物理寄存器不会被分配给其他架构寄存器,以防止后面指令在重命名时重复使用物理寄存器造成混乱。
33.需要说明的是,架构寄存器为指令集架构上指定的寄存器,同时也是程序员在使用汇编语言时所能够使用的寄存器,而物理寄存器为处理器中实际存在的硬件资源。
34.在执行阶段,执行单元103可基于译码后的指令执行运算,产生执行结果。执行单元103根据译码单元102译码后的源操作数和目的操作数存放的架构寄存器,结合重命名表104中的表项得到架构寄存器对应的物理寄存器的编号;根据物理寄存器的编号,从物理寄存器堆105中获取实际存储的数据,得到实时存储结果;根据物理寄存器中的实时存储结果进行计算,得到执行结果。
35.在提交阶段,将执行结果写回目的寄存器对应的物理寄存器中。
36.需要说明的是,图1所示取指单元101、译码单元102、执行单元103、物理寄存器堆105和重命名单元106可以是处理器10中的逻辑电路单元。另外,可以理解的是,图1仅示例性的示出了处理器10的部分可选结构,处理器10也可以包括可能的其他器件,例如处理器也可以包括对理解本发明实施例公开内容不是必需的其他电路器件,鉴于其他电路器件对于理解本发明实施例公开内容并不是必需的,本发明实施例就不再展开说明。
37.需要进一步说明的是,微指令之间不可避免的存在架构寄存器使用冲突的问题。例如,微指令向架构寄存器写入的新数据覆盖该架构寄存器的旧数据之后,导致该微指令后续的其他微指令无法读取该架构寄存器的旧数据,导致该架构寄存器存在使用冲突。
38.如图2所示,图2为理想情况下执行交换指令时,架构寄存器a和架构寄存器b的数据交换方式示意图,交换指令至少会被译码成微指令1和微指令2,微指令1会将架构寄存器a的a值赋给架构寄存器b,微指令2会将架构寄存器b的b值赋给架构寄存器a。
39.在处理器重命名阶段,重命名单元106按顺序对每个微指令进行重命名。具体重命名操作为每个微指令根据源操作数的架构寄存器号,查找重命名表,获取该架构寄存器号对应的物理寄存器号,接着为目的寄存器分配一个新的物理寄存器号。
40.同时因为重命名是按序进行的,所以先对微指令1进行重命名,架构寄存器b被分配了一个新的物理寄存器,该物理寄存器存储了新的a值。而等到微指令2进行重命名时,因为微指令1修改了重命名表,所以微指令2去读取源操作数的架构寄存器号对应的物理寄存器号时,只能得到微指令1新分配的物理寄存器,并且里面存储的是新的a值。因此,会导致微指令2无法获得架构寄存器b存储的旧的b值,进而无法将架构寄存器b的b值赋给架构寄存器a,进而无法实现架构寄存器a与架构寄存器b的数据交换。
41.目前的处理器在遇到架构寄存器使用冲突的问题时,一般采用的方法是使用临时寄存器来保存会导致架构寄存器使用冲突的微指令的结果。如图3所示,图3为一种实际情况下执行交换指令时,架构寄存器a和架构寄存器b的数据交换方式示意图,交换指令至少会被译码成微指令1、微指令2和微指令3,微指令1会将架构寄存器a的a值赋给临时寄存器t,微指令2会将架构寄存器b的b值赋给架构寄存器a,微指令3会将临时寄存器t的a值赋给架构寄存器b。
42.由于微指令2需要读取的是架构寄存器b的b值,而不是微指令3执行之后架构寄存器b存储的a值,因此,在所有读取架构寄存器b的b值的微指令结束之前,任何微指令都不能向架构寄存器b中写入数据。当微指令不需要保留执行前的架构寄存器的b值时,即所有需要读取架构寄存器b的b值的微指令都已经执行结束时,架构寄存器b就不存在使用冲突的问题,此时,只需要将暂时存储在临时寄存器t中的a值移动到架构寄存器b中即可。
43.但是,使用临时寄存器t来解决微指令间架构寄存器使用冲突的问题,显而易见会增加微指令的数量,导致指令的执行时间增加。并且,使用临时寄存器t还会增加微指令对物理寄存器的消耗,导致物理寄存器资源紧缺,影响其他需要物理寄存器的指令的执行。
44.发明人研究发现,由于处理器可以采用移动消除(move elimination)技术对寄存器之间的赋值进行优化,因此,可以通过使重命名表中临时寄存器对应的物理寄存器和架构寄存器对应的物理寄存器保持一致,使得临时寄存器和架构寄存器可以共享一个物理寄存器的值,使得临时寄存器可以将其存储的第二值赋给架构寄存器。也就是说,仅通过修改重命名表即可实现寄存器之间的赋值。
45.基于此,本发明实施例提供了一种指令处理方案,通过将修改重命名表的微指令与其他微指令合并,来减少微指令的数量,减少复杂指令的执行时间,提前释放物理寄存器资源。
46.作为本发明实施例公开内容的一种可选实现,本发明实施例提供了一种指令处理方法,用于对指令进行处理,以实现指令译码成的微指令之间的合并。
47.本发明实施例提供的指令处理方法的执行主体可以为处理器,也可以为处理器中的功能模块。下面以指令处理方法的执行主体为处理器为例,对本发明实施例提供的指令处理方法作示例性的说明。
48.如图4所示,图4为本发明实施例提供的一种处理器的架构示意图,该处理器包括取指单元40、译码单元41和控制单元42。其中,控制单元42包括重命名单元,即控制单元42可以实现重命名单元的修改或建立重命名表等功能。当然,该处理器还包括执行单元43、重命名表44、物理寄存器堆45、重命名单元46等,该处理器中的各单元的功能可参照前文相应部分的描述,在此不再赘述。
49.如图5所示,图5为本发明一个实施例提供的指令处理方法的流程图,该指令处理方法包括:
50.s501:获取目标指令;
51.在取指阶段,取指单元40可根据取指指令获取目标指令,例如根据处理器前端的分支预测单元预测的取指指令,从指令缓存中提取目标指令。该目标指令包括cisc指令。
52.s502:对目标指令进行译码,以获得多个微指令;
53.在译码阶段,译码单元41可对取指单元40获取的目标指令进行译码解析,获得多
个微指令。需要说明的是,本发明实施例中的微指令指的是对目标指令进行译码后得到的机器可执行的uop。
54.s503:若多个微指令包括第一微指令和第二微指令,第二微指令用于修改重命名表中目标架构寄存器的映射关系,第一微指令为第二微指令之前最后一个读取目标架构寄存器的值的微指令,将第二微指令的操作信息添加到第一微指令中;
55.在译码阶段,控制单元42检测译码单元41获得的多个微指令是否包括第一微指令和第二微指令,若是,将第二微指令的操作信息添加到第一微指令中,即将第一微指令和第二微指令合并。
56.在一个可选示例中,目标指令为交换指令,该交换指令用于使源架构寄存器如架构寄存器a和目标架构寄存器如架构寄存器b交换保存的值。但是,由于目标架构寄存器如架构寄存器b具有使用冲突,或者说,目标架构寄存器如架构寄存器b是具有寄存器使用冲突的架构寄存器,因此,会将源架构寄存器如架构寄存器a的值赋给临时寄存器,然后再将临时寄存器的值赋给目标架构寄存器如架构寄存器b。
57.由于基于移动消除技术对寄存器之间的赋值的优化,将临时寄存器的值赋给目标架构寄存器的微指令,只涉及修改重命名表中目标架构寄存器的映射关系,即该条微指令不需要执行单元43执行,只需要重命名单元46执行即可,因此,可以将该条微指令对重命名表的修改交给其他条微指令执行。
58.基于此,控制单元42只需检测多个微指令中是否有将临时寄存器的值赋给目标架构寄存器的微指令,若有,即可将该条微指令确定为第二微指令,将该第二微指令之前最后一个读取架构寄存器的值的微指令判定为第一微指令,然后再将该第二微指令的操作信息添加到第一微指令中。
59.其中,可以根据寄存器的编号确定一条微指令是否是将临时寄存器的值赋给目标架构寄存器的微指令。并且,通常情况下,第一微指令为第二微指令的前一条微指令,因此,确定第二微指令之后,即可将第二微指令前一条微指令确定为第一微指令。
60.当然,本发明并不仅限于此,在另一些实施例中,即便目标架构寄存器不存在使用冲突的问题,或者说,目标架构寄存器不是具有寄存器使用冲突的架构寄存器,但是,若存在仅修改重命名表中目标架构寄存器的映射关系的微指令,即可将该微指令判定为第二微指令,将该第二微指令之前最后一个读取目标架构寄存器的值的微指令判定为第一微指令。也就是说,只要存在仅修改重命名表中目标架构寄存器的映射关系的微指令,就可将该微指令与对应的第一微指令合并。
61.需要说明的是,可以根据目标指令的译码结果,获得第二微指令的操作信息,然后,将第二微指令的操作信息添加到第一微指令中。
62.s504:根据第一微指令携带的操作信息,修改重命名表中目标架构寄存器的映射关系。
63.在重命名阶段,重命名单元46对第一微指令进行重命名时,会先根据第一微指令本身的操作信息进行重命名,如根据第一微指令本身携带的寄存器编号修改重命名表,之后,再根据第一微指令额外携带的操作信息进行重命名,即,根据第一微指令额外携带的操作信息,修改重命名表中目标架构寄存器的映射关系。基于此,重命名单元46会对第一微指令进行两次重命名,即重命名单元46会根据第一微指令修改两个重命名表项。
64.由于将第二微指令的操作信息添加到第一微指令中,并根据第一微指令携带的操作信息,修改重命名表中目标架构寄存器的映射关系之后,不需要再执行第二微指令,相当于将第一微指令和第二微指令合并了,因此,可以减少微指令的数量,减少指令的执行时间,提前释放物理寄存器资源。
65.在一些可选示例中,将第二微指令的操作信息添加到第一微指令中之后,会将微指令分发到执行队列等待执行,此时可以忽略第二微指令,使得第二微指令不会被分发到执行队列。即,可以在将第二微指令的操作信息添加到第一微指令中之后,将第二微指令从分发队列中丢弃,使得第二微指令不再向后传递,使得第二微指令不再占用处理器中各种队列的资源,从而不仅可以缩短指令的执行时间,还可以更快地释放第二微指令占用的物理寄存器,提升处理器的性能。
66.在一些可选示例中,如图6所示,图6为本发明一个实施例提供的目标架构寄存器与微指令的关系示意图,目标架构寄存器当前存储的数据为第一值。第一微指令用于从目标架构寄存器中读取第一值,具体地,第一微指令可以为从该目标架构寄存器中读取第一值,并将第一值写入另一架构寄存器的微指令。
67.第二微指令用于修改重命名表中目标架构寄存器的映射关系。在一些可选示例中,第二微指令用于将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系,以将临时寄存器的第二值赋给目标架构寄存器,即将临时寄存器的第二值写入到目标架构寄存器中。
68.并且,第一微指令为第二微指令之前最后一个读取目标架构寄存器的第一值的微指令。虽然在第一微指令执行结束之后,所有需要从目标架构寄存器中读取第一值的微指令就都执行结束了,第二微指令再修改重命名表中目标架构寄存器的映射关系,不存在目标架构寄存器使用冲突的问题,但是,仍然会存在导致微指令的数量增加的问题,或者,存在微指令数量较多的问题。
69.例如,在使用临时寄存器解决架构寄存器使用冲突的问题时,第一微指令用于将架构寄存器b的b值赋给架构寄存器a,第二微指令用于将临时寄存器t的a值赋给架构寄存器b,在第一微指令执行结束之后,架构寄存器b不存在使用冲突了。但是,临时寄存器的使用会导致微指令的数量增加。
70.而本发明实施例中,将第二微指令对应的操作信息添加到第一微指令中,并根据第一微指令携带的操作信息,将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系,可以在避免目标架构寄存器使用冲突的基础上,进一步减少微指令的数量,减少微指令对处理器中各种队列资源的占用,并且相对于之前的方案,提前了一个微指令对临时寄存器所占用的物理寄存器进行释放,提升了处理器的性能。
71.并且,将第二微指令的操作信息添加到第二微指令之前最后一个读取目标架构寄存器的值的第一微指令中,可以避免根据第一微指令携带的操作信息,执行第二微指令对应的操作之后,仍有微指令需要从目标架构寄存器中读取第一值,进而可以保证处理器的指令执行的正确性。
72.需要说明的是,在另一些可选示例中,修改重命名表中目标架构寄存器的映射关系也可以是将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构
寄存器与其他架构寄存器对应的物理寄存器的映射关系,在此不再赘述。其中,临时寄存器可以是架构寄存器。
73.在一些可选示例中,添加到第一微指令中的操作信息可以包括目标架构寄存器的编号和临时寄存器的编号。
74.在此基础上,根据第一微指令携带的操作信息,将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系包括:根据临时寄存器的编号,从重命名表中临时寄存器对应的重命名表项中,获得与临时寄存器具有映射关系的物理寄存器的编号;根据物理寄存器编号以及目标架构寄存器的编号,将重命名表中目标架构寄存器对应的重命名表项中,目标架构寄存器的映射关系修改为目标架构寄存器与物理寄存器的映射关系。
75.当然,本发明并不仅限于此,在另一些可选示例中,添加到第一微指令中的操作信息可以包括目标架构寄存器的编号和临时寄存器对应的物理寄存器的编号。在此基础上,根据第一微指令携带的操作信息,将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系包括:根据物理寄存器编号以及目标架构寄存器的编号,将目标架构寄存器对应的微架构重命名表项中,目标架构寄存器与其他物理寄存器的映射关系修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系。
76.为了更方便地判断微指令是否携带额外的操作信息,以及微指令是否还需要执行,可以在微指令中添加标识进行区分,该标识可以是一些特殊信号。在一些可选示例中,将第二微指令的操作信息添加到第一微指令中之后,还包括:在第一微指令中添加第一标识,在第二微指令中添加第二标识;第一标识用于标识第一微指令携带有额外的操作信息,第二标识用于标识丢弃第二微指令。
77.在第一微指令中添加第一标识,在第二微指令中添加第二标识之后,还包括:根据第一标识,从第一微指令中获取操作信息,以根据操作信息,执行第二微指令对应的操作;根据第二标识,将第二微指令从分发队列中丢弃。
78.也就是说,在第一微指令中添加第一标识,在第二微指令中添加第二标识之后,在分发微指令到不同的执行队列等待执行的时候,会忽略所有携带第二标识的微指令,使得第二微指令会被从分发队列中丢弃,使得第二微指令不会被分发到执行队列中。
79.在第一微指令中添加第一标识,在第二微指令中添加第二标识之后,若识别到携带第一标识的第一微指令,相较于其他的微指令,还需要另外读取第一微指令额外携带的操作信息,以使控制单元42根据第一微指令携带的操作信息,执行第二微指令对应的操作。
80.需要说明的是,目的指令是按照顺序进行译码和拆分成微指令的,微指令同样按序进行重命名,虽然可以通过微指令乱序执行来提高处理器的性能,但是,为了保证目的指令执行的语义和程序保持一致,还需要在指令执行结束以后按序进行提交。因此,在处理器中通常会维护一个微架构重命名表和架构重命名表,微架构重命名表是在重命名阶段被修改的重命名表,架构重命名表是指令按序提交阶段被修改的重命名表,也就是在最后指令提交阶段被修改的重命名表。
81.因为在分支指令后预测了错误的分支方向,所以,重命名阶段被修改的重命名表可能是根据错误的指令来记录的。由于在后续会发现并纠正分支预测错误,因此,在确定指
令正确之后,才会在指令提交阶段修改架构重命名表,以保证指令执行的正确性。
82.基于此,在一些可选示例中,根据第一微指令携带的操作信息,修改重命名表中架构寄存器的映射关系包括:根据第一微指令携带的操作信息,修改微架构重命名表中架构寄存器的映射关系。
83.例如,根据第一微指令携带的操作信息,将微架构重命名表中架构寄存器与其他物理寄存器的映射关系,修改为架构寄存器与临时寄存器对应的物理寄存器的映射关系,以将临时寄存器的值赋给架构寄存器。
84.当然,在此基础上,本发明一些实施例提供的指令处理方法还包括:修改架构重命名表中架构寄存器的映射关系,使架构重命名表中架构寄存器的映射关系与微架构重命名表中架构寄存器的映射关系一致。
85.也就是说,在重命名阶段,根据第一微指令携带的操作信息,修改微架构重命名表中架构寄存器的映射关系之后,在指令提交阶段,还需根据微架构重命名表中架构寄存器的映射关系,修改架构重命名表中架构寄存器的映射关系,以使架构重命名表中架构寄存器的映射关系与微架构重命名表中架构寄存器的映射关系一致,以保证处理器执行指令的正确性。
86.作为本发明实施例公开内容的另一种可选实现,本发明实施例提供了一种处理器,用于对指令进行处理,以实现指令译码成的微指令之间的合并。如图7所示,图7为本发明一个实施例提供的处理器的架构示意图,该处理器包括:
87.取指单元40,用于获取目标指令;
88.译码单元41,用于对目标指令进行译码,以获得多个微指令;
89.控制单元42,用于在多个微指令包括第一微指令和第二微指令,且第二微指令用于修改重命名表中目标架构寄存器的映射关系,第一微指令为第二微指令之前最后一个读取目标架构寄存器的值的微指令时,将第二微指令的操作信息添加到第一微指令中;
90.重命名单元46,用于根据第一微指令携带的操作信息,修改重命名表中目标架构寄存器的映射关系。
91.当然,参考图4,该处理器还可以包括执行单元43、重命名表44和物理寄存器堆45等,在此不再赘述。
92.在一些可选示例中,目标架构寄存器为产生寄存器使用冲突的架构寄存器。
93.在一些可选示例中,重命名单元46根据第一微指令携带的操作信息,修改重命名表中目标架构寄存器的映射关系包括:
94.根据第一微指令携带的操作信息,修改微架构重命名表中目标架构寄存器的映射关系;微架构重命名表为重命名阶段被修改的重命名表。
95.在一些可选示例中,第二微指令用于将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系,以将临时寄存器的值赋给目标架构寄存器;
96.重命名单元根据第一微指令携带的操作信息,修改重命名表中目标架构寄存器的映射关系包括:根据第一微指令携带的操作信息,将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系,以将临时寄存器的值赋给目标架构寄存器。
97.在一些可选示例中,操作信息包括架构寄存器的编号和临时寄存器的编号。在此基础上,在一些可选示例中,重命名单元46根据第一微指令携带的操作信息,将重命名表中目标架构寄存器与其他物理寄存器的映射关系,修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系包括:
98.根据临时寄存器的编号,从重命名表中临时寄存器对应的重命名表项中,获得与临时寄存器具有映射关系的物理寄存器的编号;
99.根据物理寄存器编号以及目标架构寄存器的编号,将重命名表中目标架构寄存器对应的重命名表项中,目标架构寄存器与其他物理寄存器的映射关系修改为目标架构寄存器与临时寄存器对应的物理寄存器的映射关系。
100.在一些可选示例中,重命名单元46还用于修改架构重命名表中目标架构寄存器的映射关系,使架构重命名表中目标架构寄存器的映射关系与微架构重命名表中目标架构寄存器的映射关系一致;架构重命名表为指令提交阶段被修改的重命名表。
101.在一些可选示例中,控制单元42还用于在将第二微指令的操作信息添加到第一微指令中之后,将第二微指令从分发队列中丢弃。
102.在一些可选示例中,控制单元42还用于在将第二微指令的操作信息添加到第一微指令中之后,在第一微指令中添加第一标识,在第二微指令中添加第二标识;第一标识用于标识第一微指令携带有额外的操作信息,第二标识用于标识丢弃第二微指令。
103.在一些可选示例中,控制单元42还用于在将第二微指令的操作信息添加到第一微指令中之后,根据第一标识,从第一微指令中获取操作信息,以根据操作信息,执行第二微指令对应的操作;根据第二标识,将第二微指令从分发队列中丢弃。
104.作为本发明实施例公开内容的另一种可选实现,本发明实施例提供了一种芯片,该芯片包括本发明任一实施例提供的处理器。
105.作为本发明实施例公开内容的另一种可选实现,本发明实施例提供了一种电子设备,该电子设备包括本发明任一实施例提供的芯片。该电子设备可以是终端设备,也可以是云端服务器设备。
106.上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
107.虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
再多了解一些

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

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

相关文献