首页 / 专利库 / 电脑零配件 / 微指令翻译器 / 指令翻译电路、处理器电路及其执行方法

指令翻译电路、处理器电路及其执行方法

阅读:688发布:2020-05-11

专利汇可以提供指令翻译电路、处理器电路及其执行方法专利检索,专利查询,专利分析的服务。并且本 发明 提出一种指令翻译 电路 、处理器电路及其执行方法。指令翻译电路适于设置在处理器电路中。指令翻译电路包括格式化指令队列、第一指令翻译器、指令侦测电路以及第二指令翻译器。格式化指令队列存储多个格式化宏指令。第一指令翻译器翻译所述多个格式化宏指令的第一格式化宏指令,并且输出第一微指令。当指令侦测电路判断在第一格式化宏指令当中的陷阱位经设置,且第一格式化宏指令的一部分可被提前翻译时,指令侦测电路输出第一陷阱信息。第二指令翻译器依据第一陷阱信息来提前翻译第一格式化宏指令的一部分,以输出第二微指令。,下面是指令翻译电路、处理器电路及其执行方法专利的具体信息内容。

1.一种指令翻译电路,适于设置在处理器电路中,包括:
格式化指令队列,用以存储多个格式化宏指令;
第一指令翻译器,耦接所述格式化指令队列,用以翻译所述多个格式化宏指令的第一格式化宏指令,并且输出第一微指令;
指令侦测电路,耦接所述格式化指令队列,其中当所述指令侦测电路判断在所述多个格式化宏指令的所述第一格式化宏指令当中的陷阱位经设置,且所述第一格式化宏指令的一部分可被提前翻译时,所述指令侦测电路输出第一陷阱信息;以及
第二指令翻译器,耦接所述指令侦测电路,用以依据所述第一陷阱信息来提前翻译所述第一格式化宏指令的一部分,以输出第二微指令。
2.根据权利要求1所述的指令翻译电路,其中所述第二指令翻译器输出所述第二微指令的机器周期早于所述第一指令翻译器输出所述第一微指令的机器周期,并且所述第一微指令以及所述第二微指令整合为完整微指令。
3.根据权利要求1所述的指令翻译电路,其中当所述第一陷阱信息包括陷阱地址,或所述第一格式化宏指令属于特定的指令类型时,所述指令侦测电路判断所述第一格式化宏指令的一部分可被提前翻译。
4.根据权利要求1所述的指令翻译电路,还包括:
陷阱位侦测器,耦接所述格式化指令队列,其中当在所述多个格式化宏指令的第二格式化宏指令当中的陷阱位经设置时,所述陷阱位侦测器输出第二陷阱信息;以及多工器逻辑,耦接所述指令侦测电路以及所述陷阱位侦测器,用以接收所述指令侦测电路输出的所述第一陷阱信息以及所述陷阱位侦测器输出的所述第二陷阱信息。
5.根据权利要求4所述的指令翻译电路,其中当所述格式化宏指令的一部分可被提前翻译时,所述多工器逻辑判断所述第二指令翻译器是否为闲置状态,以将所述第一陷阱信息输出至所述第二指令翻译器。
6.根据权利要求4所述的指令翻译电路,其中所述第二指令翻译器将产生的所述第二微指令暂存至暂存器,当所述陷阱位侦测器依据所述第一格式化宏指令输出第三陷阱信息时,并且判断到所述第一格式化宏指令所对应的提前陷阱指示信号经设定时,所述陷阱位侦测器指示寄存器别名表从所述暂存器读取所述第二微指令。
7.根据权利要求4所述的指令翻译电路,其中当所述多工器逻辑接收到所述第二陷阱信息时,所述多工器逻辑判断所述第二格式化宏指令所对应的提前陷阱指示信号是否经设定,
其中当第二格式化宏指令所对应的所述提前陷阱指示信号未经设定时,所述多工器逻辑将所述第二陷阱信息输出至所述第二指令翻译器,以使所述第二指令翻译器依据所述第二陷阱信息来产生第三微指令,
其中当第二格式化宏指令所对应的所述提前陷阱指示信号经设定时,所述多工器逻辑将所述第一陷阱信息输出至所述第二指令翻译器,以使所述第二指令翻译器依据所述第一陷阱信息来产生所述第二微指令。
8.根据权利要求1所述的指令翻译电路,其中所述指令侦测电路包括:
发现逻辑,耦接所述格式化指令队列,用以依序搜寻存储在所述格式化指令队列当中的所述多个格式化宏指令,以指向所述第一格式化宏指令,其中所述第一格式化宏指令是具有经设置的所述陷阱位的格式化宏指令中最早进入所述格式化指令队列的。
9.根据权利要求8所述的指令翻译电路,其中所述指令侦测电路还包括:
提前陷阱位侦测器,耦接所述格式化指令队列,用以侦测所述发现逻辑所指向的所述第一格式化宏指令,以判断所述第一格式化宏指令的一部分是否可被提前翻译;以及提前指令内容信息产生器,耦接所述格式化指令队列,
其中当所述提前陷阱位侦测器判断所述第一格式化宏指令的一部分可被提前翻译时,所述提前陷阱位侦测器输出所述第一陷阱信息,并且所述提前指令内容信息产生器输出第一指令内容信息供所述第二指令翻译器据以产生所述第二微指令。
10.根据权利要求9所述的指令翻译电路,其中当所述提前陷阱位侦测器判断所述第一格式化宏指令的一部分不可被提前翻译时,所述发现逻辑停止搜寻存储在所述格式化指令队列当中的所述多个格式化宏指令,以停留指向于所述第一格式化宏指令。
11.一种处理器电路,包括:
指令翻译电路,包括:
格式化指令队列,用以存储多个格式化宏指令;
第一指令翻译器,耦接所述格式化指令队列,用以翻译所述多个格式化宏指令的第一格式化宏指令,并且输出第一微指令;
指令侦测电路,耦接所述格式化指令队列,其中当所述指令侦测电路判断在所述多个格式化宏指令的所述第一格式化宏指令当中的陷阱位经设置,且所述第一格式化宏指令的一部分可被提前翻译时,所述指令侦测电路输出第一陷阱信息;以及
第二指令翻译器,耦接所述指令侦测电路,用以依据所述第一陷阱信息来提前翻译所述第一格式化宏指令的一部分,以输出第二微指令;以及
寄存器别名表,耦接所述第一指令翻译器以及所述第二指令翻译器,用以接收所述第一微指令以及所述第二微指令。
12.根据权利要求11所述的处理器电路,其中所述第二指令翻译器输出所述第二微指令的机器周期早于所述第一指令翻译器输出所述第一微指令的机器周期,并且所述第一微指令以及所述第二微指令整合为完整微指令。
13.根据权利要求11所述的处理器电路,其中当所述第一陷阱信息包括陷阱地址,或所述第一格式化宏指令属于特定的指令类型时,所述指令侦测电路判断所述第一格式化宏指令的一部分可被提前翻译。
14.根据权利要求11所述的处理器电路,其中所述指令翻译电路还包括:
陷阱位侦测器,耦接所述格式化指令队列,其中当在所述多个格式化宏指令的第二格式化宏指令当中的陷阱位经设置时,所述陷阱位侦测器输出第二陷阱信息;以及多工器逻辑,耦接所述指令侦测电路以及所述陷阱位侦测器,用以接收所述指令侦测电路输出的所述第一陷阱信息以及所述陷阱位侦测器输出的所述第二陷阱信息。
15.根据权利要求14所述的处理器电路,其中当所述格式化宏指令的一部分可被提前翻译时,所述多工器逻辑判断所述第二指令翻译器是否为闲置状态,以将所述第一陷阱信息输出至所述第二指令翻译器。
16.根据权利要求14所述的处理器电路,其中所述第二指令翻译器将产生的所述第二微指令暂存至暂存器,当所述陷阱位侦测器依据所述第一格式化宏指令输出第三陷阱信息时,并且判断到所述第一格式化宏指令所对应的提前陷阱指示信号经设定时,所述陷阱位侦测器指示所述寄存器别名表从所述暂存器读取所述第二微指令。
17.根据权利要求14所述的处理器电路,其中当所述多工器逻辑接收到所述第二陷阱信息时,所述多工器逻辑判断所述第二格式化宏指令所对应的提前陷阱指示信号是否经设定,
其中当第二格式化宏指令所对应的所述提前陷阱指示信号未经设定时,所述多工器逻辑将所述第二陷阱信息输出至所述第二指令翻译器,以使所述第二指令翻译器依据所述第二陷阱信息来产生第三微指令,
其中当第二格式化宏指令所对应的所述提前陷阱指示信号经设定时,所述多工器逻辑将所述第一陷阱信息输出至所述第二指令翻译器,以使所述第二指令翻译器依据所述第一陷阱信息来产生所述第二微指令。
18.根据权利要求11所述的处理器电路,其中所述指令侦测电路包括:
发现逻辑,耦接所述格式化指令队列,用以依序搜寻存储在所述格式化指令队列当中的所述多个格式化宏指令,以指向所述第一格式化宏指令,其中所述第一格式化宏指令是具有经设置的所述陷阱位的格式化宏指令中最早进入所述格式化指令队列的。
19.根据权利要求18所述的处理器电路,其中所述指令侦测电路还包括:
提前陷阱位侦测器,耦接所述格式化指令队列,用以侦测所述发现逻辑所指向的所述格式化宏指令,以判断所述格式化宏指令的一部分是否可被提前翻译;以及提前指令内容信息产生器,耦接所述格式化指令队列,
其中当所述提前陷阱位侦测器判断所述第一格式化宏指令的一部分可被提前翻译时,所述提前陷阱位侦测器输出所述第一陷阱信息,并且所述提前指令内容信息产生器输出第一指令内容信息供所述第二指令翻译器据以产生所述第二微指令,
其中当所述提前陷阱位侦测器判断所述第一格式化宏指令的一部分不可被提前翻译时,所述发现逻辑停止搜寻存储在所述格式化指令队列当中的所述多个格式化宏指令,以停留指向于所述第一格式化宏指令。
20.一种执行方法,适于指令翻译电路,所述执行方法包括:
藉由格式化指令队列存储多个格式化宏指令;
当指令侦测电路判断在所述多个格式化宏指令的第一格式化宏指令中的陷阱位经设置,且所述格式化宏指令的一部分可被提前翻译时,藉由所述指令侦测电路输出第一陷阱信息;
藉由第二指令翻译器依据所述第一陷阱信息来提前翻译所述格式化宏指令的一部分,以输出第二微指令;以及
藉由第一指令翻译器翻译所述第一格式化宏指令的另一部分,并且输出第一微指令。

说明书全文

指令翻译电路、处理器电路及其执行方法

技术领域

[0001] 本发明是有关于一种复杂指令翻译技术,且特别是有关于一种指令翻译电路、处理器电路及其执行方法。

背景技术

[0002] 一般而言,在传统的x86架构处理器中,当格式化指令队列(Formatted Instruction Queue,FIQ)提供一个格式化宏指令(formatted macro instruction)至指令翻译器(XLATE)时,若此格式化宏指令为复杂指令(complex instruction),则陷阱位(trap bit)侦测器在指令翻译器完成指令翻译后,才能进一步提供陷阱位信息至微码(microcode/ucode)翻译器(有的甚至需要先提供陷阱位信息至寄存器别名表,由寄存器别名表再进一步提供该陷阱位信息给微码翻译器),以使微码翻译器依据陷阱位信息来进行进一步的指令翻译。也就是说,微码翻译器需要等待指令翻译器对格式化宏指令的一部分完成指令翻译后,才会接着对格式化宏指令的另一部分执行指令翻译。因此,在传统的x86架构处理器中,复杂指令翻译需花费较长的时间,而造成处理器的执行效率不佳。有鉴于此,以下将提出几个解决方案。

发明内容

[0003] 本发明提供的一种指令翻译电路、处理器电路及其执行方法,可藉由提前翻译格式化宏指令的一部分,以有效地加快处理器的执行效率。
[0004] 本发明的一种指令翻译电路适于设置在处理器电路中。指令翻译电路包括格式化指令队列、第一指令翻译器、指令侦测电路以及第二指令翻译器。格式化指令队列用以存储多个格式化宏指令。第一指令翻译器耦接格式化指令队列。第一指令翻译器用以翻译多个格式化宏指令的第一格式化宏指令,并且输出第一微指令。指令侦测电路耦接格式化指令队列。当指令侦测电路判断在多个格式化宏指令的第一格式化宏指令当中的陷阱位经设置,且第一格式化宏指令的一部分可被提前翻译时,指令侦测电路输出第一陷阱信息。第二指令翻译器耦接指令侦测电路。第二指令翻译器用以依据第一陷阱信息来提前翻译第一格式化宏指令的一部分,以输出第二微指令。
[0005] 本发明的一种处理器电路包括指令翻译电路以及寄存器别名表。指令翻译电路包括格式化指令队列、第一指令翻译器、指令侦测电路以及第二指令翻译器。格式化指令队列用以存储多个格式化宏指令。第一指令翻译器耦接格式化指令队列。第一指令翻译器用以翻译多个格式化宏指令的第一格式化宏指令,并且输出第一微指令。指令侦测电路耦接格式化指令队列。当指令侦测电路判断在多个格式化宏指令的第一格式化宏指令当中的陷阱位经设置,且第一格式化宏指令的一部分可被提前翻译时,指令侦测电路输出第一陷阱信息。第二指令翻译器耦接指令侦测电路。第二指令翻译器用以依据第一陷阱信息来提前翻译第一格式化宏指令的一部分,以输出第二微指令。寄存器别名表耦接第一指令翻译器以及第二指令翻译器。寄存器别名表用以接收第一微指令以及第二微指令。
[0006] 本发明的一种执行方法适于指令翻译电路。执行方法包括以下步骤:藉由格式化指令队列存储多个格式化宏指令;当在多个格式化宏指令的第一格式化宏指令当中的陷阱位经设置,且第一格式化宏指令的一部分可被提前翻译时,藉由指令侦测电路输出第一陷阱信息;藉由第二指令翻译器依据第一陷阱信息来提前翻译第一格式化宏指令的一部分,以输出第二微指令;以及藉由第一指令翻译器翻译第一格式化宏指令的另一部分,并且输出第一微指令。
[0007] 基于上述,本发明的指令翻译电路、处理器电路及其执行方法可藉由指令侦测电路的设计,以预先判断存储在格式化指令队列当中的多个格式化宏指令的第一格式化宏指令的较复杂一部分是否可被提前翻译,以藉由第二指令翻译器提前针对第一格式化宏指令的较复杂的一部分进行翻译。因此,本发明的指令翻译电路、处理器电路及其执行方法可有效加快处理器电路执行指令的速度,以及减少处理器资源的闲置情况。
[0008] 为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

[0009] 图1是依照本发明的一实施例的一种指令翻译电路的示意图。
[0010] 图2是依照本发明的一实施例的一种处理器电路的示意图。
[0011] 图3是依照本发明的一实施例的一种适用于指令翻译电路的执行方法的流程图
[0012] 符号说明:
[0013] 20:处理器电路
[0014] 100、200:指令翻译电路
[0015] 110、210:格式化指令队列
[0016] 120、220:第一指令翻译器
[0017] 130、230:指令侦测电路
[0018] 140、240:第二指令翻译器
[0019] 231:发现逻辑
[0020] 232:提前陷阱位侦测器
[0021] 233:提前指令内容信息产生器
[0022] 250:陷阱位侦测器
[0023] 260:多工器逻辑
[0024] 300:寄存器别名表
[0025] 310:暂存器
[0026] Instr_1~Instr_n:格式化宏指令
[0027] Trap bit 1~Trap bit n:陷阱位
[0028] Ti1、Ti2:陷阱信息
[0029] iir:指令内容信息
[0030] S410~S440:步骤

具体实施方式

[0031] 为了使本公开的内容可以被更容易明了,以下特举实施例作为本公开确实能够据以实施的范例。另外,凡可能之处,在附图及实施方式中使用相同标号的组件/构件/步骤,代表相同或类似部件。
[0032] 图1是依照本发明的一实施例的一种指令翻译电路的示意图。参考图1,指令翻译电路100包括格式化指令队列(Formatted Instruction Queue,FIQ)110、第一指令翻译器120、指令侦测电路130以及第二指令翻译器140。格式化指令队列110耦接第一指令翻译器
120以及指令侦测电路130。指令侦测电路130耦接第二指令翻译器140。在本实施例中,处理器电路100为具有指令管线化(instruction pipeline)的一种超标量(superscalar)管线(乱序执行)处理器(ambitious CPU),但本发明并不限于此。在一实施例中,处理器电路100例如是任何类型的微处理器(microprocessor)、中央处理单元(CPU)或微控制器(Microcontroller Unit,MCU)等诸如此类的处理单元。或者是,处理器电路100包括任何类型的处理器配置,例如是集成在芯片上的处理单元或包括整合在系统芯片(System on Chip,SOC)当中的集成电路(Integrated Circuit,IC)。
[0033] 在本实施例中,指令翻译电路100适于配置在处理器电路中,并且用以提供指令翻译功能(又称为译码)。举例而言,在处理器执行指令的过程中,指令翻译电路100接收并存储由指令快取(instruction cache)(未绘示)提供的格式化宏指令(formatted macro instruction),并且输出翻译后的微指令(micro instruction)至寄存器别名表(Register Alias Table,RAT)(未绘示),寄存器别名表处理这些微指令后,再将其发射(issue)至处理器后端电路进行调度(schedule)、派遣(dispatch)及执行等操作,请注意微指令又被称为微操作(micro-operation/μop)。在本实施例中,格式化指令队列110用以存储由指令快取(未绘示)提供的多个格式化宏指令。格式化宏指令例如是x86指令集架构的宏指令,其中格式化宏指令例如包括操作码Opcode、ModRM、指令类型、陷阱位(trap bit)、陷阱信息(trap information)、指令内容(information content inclusion relation)信息、异常信息、立即数、分支预测相关(branch  prediction)信息、指令地址相关信息以及位移(displacement)等,本发明并不限于此。
[0034] 在本实施例中,格式化宏指令可分为复杂指令(complex instruction)以及非复杂指令。非复杂指令是指格式化宏指令指需通过第一指令翻译器120来进行指令翻译,即可取得对应的微指令。复杂指令是指格式化宏指令除了通过需通过第一指令翻译器120翻译格式化宏指令的一部分(较简易的部分),并且还需要通过第二指令翻译器140翻译格式化宏指令的另一部分(较复杂的部分),在一实施例中,第二指令翻译器140为微码(microcode/ucode)翻译器,将格式化宏指令的另一部分通过微码翻译为多个微指令。然而,属于复杂指令的格式化宏指令又可进一步分为可被提前翻译以及无法被提前翻译的指令类型。因此,在本实施例中,指令翻译电路100通过指令侦测电路130预先判断格式化宏指令是否为复杂指令,并且进一步判断此格式化宏指令是否可被提前翻译。
[0035] 在本实施例中,格式化指令队列110例如存储有多个格式化宏指令,并且第一指令翻译器120依序读取所述多个格式化宏指令,以进行指令翻译。在本实施例中,第一指令翻译器120可并行读取多个格式化宏指令来进行翻译,其中例如是2个、3个或5个等(以下举例为第一格式化宏指令或第二格式化宏指令),本发明并不加以限制。在本实施例中,第一指令翻译器120在一个机械周期(machine cycle)中翻译指令的数量可依据不同的处理器类型或设计而决定。在本实施例中,在第一指令翻译器120执行指令翻译的过程中,指令侦测电路130可同时且依序侦测存储于格式化指令队列110中剩下的其它格式化宏指令,以判断这些剩下的格式化宏指令是否具有需要经由第二指令翻译器140执行进一步翻译的复杂指令。
[0036] 具体而言,当指令侦测电路130判断到一个第一格式化宏指令当中的陷阱位(trap bit)经设置,且此第一格式化宏指令的一部分可被提前翻译时,指令侦测电路130输出第一陷阱信息。第二指令翻译器140依据此第一陷阱信息来预先对此第一格式化宏指令的一部分进行翻译,以产生第二微指令。在本实施例中,当指令侦测电路130侦测到存储在格式化指令队列110中的多个格式化宏指令当中需要经由第二指令翻译器140执行进一步翻译的最老(oldest)的(“最老”即意味着最早进入格式化指令队列110)那一个时,将其作为前述的第一格式化宏指令,指令侦测电路130进一步判断此第一格式化宏指令的一部分(较复杂的部分)是否可被提前翻译。
[0037] 值得注意的是,在一实施例中,若格式化宏指令当中的陷阱位(trap bit)经设置,则表明其需要经由第二指令翻译器140执行进一步翻译。并且,若此第一格式化宏指令的一部分可被提前翻译,则指令侦测电路130将此第一格式化宏指令的陷阱信息提供至第二指令翻译器140,以使此第二指令翻译器140依据此陷阱信息来进行指令翻译,并且输出第一格式化宏指令的复杂部分所对应的多个微指令。然而,当第一指令翻译器120依序读取到第一格式化宏指令时,第一指令翻译器120将翻译第一格式化宏指令,且产生不需要进行微码翻译(即不需要第二指令翻译器140翻译)的第一格式化宏指令的那部分的微指令。也就是说,在本实施例中,第二指令翻译器140可提前于第一指令翻译器120来翻译此第一格式化宏指令,以使第二指令翻译器140输出微指令的机器周期早于第一指令翻译器120输出微指令的机器周期,并且由第一指令翻译器120输出的微指令以及由第二指令翻译器140输出的微指令可整合为格式化宏指令所对应的完整微指令。第一指令翻译器120输出的微指令在指令顺序上位于第二指令翻译器140输出的微指令之前。
[0038] 图2是依照本发明的一实施例的一种处理器电路的示意图。参考图2,本实施例的处理器电路20包括指令翻译电路200以及寄存器别名表300。指令翻译电路200包括格式化指令队列210、第一指令翻译器220、指令侦测电路230、第二指令翻译器240、陷阱位侦测器250以及多工器逻辑260。寄存器别名表300包括暂存器310。指令侦测电路230包括发现逻辑
231、提前陷阱位侦测器232以及提前指令内容信息产生器233。在本实施例中,格式化指令队列210耦接第一指令翻译器220、指令侦测电路230以及陷阱位侦测器250。多工器逻辑260耦接指令侦测电路230、第二指令翻译器240以及陷阱位侦测器250。寄存器别名表300耦接第一指令翻译器220以及第二指令翻译器240。
[0039] 在本实施例中,格式化指令队列210依序存储多个格式化宏指令Instr_1~Instr_n,每个格式化宏指令Instr_1~Instr_n具备对应的陷阱位trap bit 1~trap bit n。在本实施例中,如果是一般宏指令,则对应的陷阱位不会被设置(例如为0)。如果是需要经由第二指令译码器240进行进一步微码翻译的复杂宏指令,则对应的陷阱位被设置(例如为1)。
[0040] 举例而言,第一指令翻译器220由格式化指令队列210中依序读取一个或多个格式化宏指令Instr_1~Instr_i来进行指令翻译,并且输出对应的一个或多个第一微指令至寄存器别名表300,其中i为大于1的正整数。第一指令翻译器220读取的格式化宏指令Instr_1~Instr_i的数量i为处理器可并行翻译的宏指令的数量,并且可由处理器的结构设计决定。在本实施例中,陷阱位侦测器250侦测格式化宏指令Instr_1~Instr_i的陷阱位是否经设置,并且在第一指令翻译器220完成指令翻译后的某个机器周期(例如在第一指令翻译器220完成指令翻译的2个机器周期之后)提供陷阱信息至多工器逻辑260。然而,在本实施例中,在第一指令翻译器220对所述多个格式化宏指令Instr_1~Instr_i执行指令翻译的过程中,发现逻辑231将会同时侦测在格式化指令队列210中所剩下的多个格式化宏指令Instr_(i+1)~Instr_n,以侦测是否有特定的格式化宏指令需由第二指令翻译器240执行复杂部分的指令翻译,并且可被提前翻译。
[0041] 再举例而言,在第一指令翻译器220翻译格式化宏指令Instr_1~Instr_3(以可并行翻译的指令数量i=3来举例说明,但本发明并不限于此)的过程中,若发现逻辑231侦测到第一格式化宏指令Instr_7(格式化宏指令Instr_7仅为举例说明,本发明并不限于此)是陷阱位(trap bit)经设置的格式化宏指令中最早进入格式化指令队列210的,则提前陷阱位侦测器232进一步依据此第一格式化宏指令Instr_7的是否属于特定的指令类型,或依据此第一格式化宏指令Instr_7是否可被提前翻译出陷阱地址(trap address),以判断此第一格式化宏指令Instr_7的一部分可被提前翻译。
[0042] 值得注意的是,格式化指令队列210中的格式化宏指令会按照先进先出的原则,其中越早进入格式化指令队列210(也即越老)的格式化宏指令会被越先弹出格式化指令队列210处理。因此,在此范例实施中,当发现逻辑231判断此第一格式化宏指令Instr_7的一部分可被提前翻译时,提前陷阱位侦测器232输出此第一格式化宏指令Instr_7的第一陷阱信息Ti1至多工器逻辑260。并且,在一实施例中,提前指令内容信息产生器233输出该第一格式化宏指令Instr_7的第一指令内容信息iir至多工器逻辑260。
[0043] 在此范例实施中,若提前陷阱位侦测器232判断第一格式化宏指令Instr_7的一部分可被提前翻译,则多工器逻辑260判断第二指令翻译器240是否为闲置(idle)状态,以将第一陷阱信息Ti1以及第一指令内容信息iir提供至第二指令翻译器240。第二指令翻译器240依据第一陷阱信息Ti1以及指令内容信息iir来产生至少一个第二微指令,并且第二指令翻译器240将第二微指令暂存至暂存器310,直到第一指令翻译器220提供第一格式化宏指令Instr_7所对应的第一微指令至寄存器别名表300。值得注意的是,在此范例实施中,暂存器310可设置于寄存器别名表300,但本发明并不局限于此。在此范例实施中,寄存器别名表300可整合并存储第一微指令以及第二微指令为第一格式化宏指令Instr_7所对应的完整微指令,以使第一微指令在指令顺序上位于第二微指令之前。
[0044] 在此范例实施中,当第一指令译码器220依序处理到第一格式化宏指令Instr_7时,翻译第一格式化宏指令Instr_7产生第一微指令。接着,陷阱位侦测器250会针对第一格式化宏指令Instr_7输出第三陷阱信息。此时,若判断到第一格式化宏指令Instr_7对应的一个提前陷阱指示信号(early trap indication)经设定,则指示第一格式化宏指令Instr_7由第二指令翻译器240对第一格式化宏指令Instr_7进行了提前翻译处理,并且陷阱位侦测器250指示寄存器别名表300从暂存器310读取第二微指令。
[0045] 在此范例实施中,陷阱位侦测器250针对第一格式化宏指令Instr_7输出第三陷阱信息的机器周期可能晚于第一指令翻译器220输出第一微指令的机器周期,例如晚2个机器周期。然而,背景技术需要在陷阱位侦测器250输出第三陷阱信息之后,才将第三陷阱信息输出至第二指令翻译器240(或者甚至需要先输出至寄存器别名表300,由寄存器别名表300转发给第二指令翻译器240)。并且,由于复杂部分的翻译操作较为费时,因此得到第二微指令的时间可能是在第二指令翻译器240收到第三陷阱信息之后的4个机器周期左右。对此,本实施例的指令翻译电路200在陷阱位侦测器250针对第一格式化宏指令Instr_7输出第三陷阱信息之后,将立即能够从暂存器310读取到提前翻译好的第二微指令,因此本实施例的指令翻译电路200可有效地提升格式化宏指令的翻译效率。此外,在另一实施例中,提前陷阱指示信号在第二指令翻译器240接收到第一陷阱信息Ti1开始对第一格式化宏指令Instr_7进行翻译时被设定,在陷阱位侦测器250依序处理第一格式化宏指令Instr_7之后被清除。
[0046] 反之,在此范例实施中,若提前陷阱位侦测器232判断此第一格式化宏指令Instr_7的一部分不可被提前翻译时(值得注意的是,虽然第一格式化宏指令Instr_7的陷阱位经设置表明其需要提前翻译,但其可能属于不可被提前翻译的格式化宏指令,例如提前陷阱位侦测器232判断到第一格式化宏指令Instr_7的不属于特定的指令类型,或第一格式化宏指令Instr_7不能被提前翻译出陷阱地址(trap address),则判定此第一格式化宏指令Instr_7的复杂指令部分不可被提前翻译),发现逻辑231停止搜寻存储在格式化指令队列
210当中的多个格式化宏指令Instr_1~Instr_n,以停留指向此第一格式化宏指令Instr_
7。直到,当第一指令翻译器220依序翻译到此格式化宏指令Instr_7时,若陷阱位侦测器250侦测到此格式化宏指令Instr_7当中的陷阱位经设置,则陷阱位侦测器250会在第一指令翻译器220产生第一微指令之后(例如2个机器周期之后)输出第三陷阱信息Ti3(未绘示)至多工器逻辑260。
[0047] 在此范例实施中,由于第一格式化宏指令Instr_7没有经由第二指令译码器250进行提前翻译处理,其对应的提前陷阱指示信号(early trap indication)不会被设定。若多工器逻辑260判定第一格式化宏指令Instr_7对应的提前陷阱指示信号没有被设定,则多工器逻辑260将第三陷阱信息Ti3输出至第二指令翻译器240,以使第二指令翻译器240依据第三陷阱信息Ti3以及对应的指令内容信息来产生前述的第二微指令。寄存器别名表300将第一微指令以及第二微指令整合为完整微指令。并且,发现逻辑231继续搜寻存储在格式化指令队列210当中的多个格式化宏指令Instr_1~Instr_n。需注意的是,上述的第二微指令是指此第一格式化宏指令Instr_7需要由第二指令翻译器240执行进一步指令翻译的复杂指令,但是无法提前翻译。因此,这种情形下的第二微指令是由第二指令翻译器240依据陷阱位侦测器250提供的第三陷阱信息Ti3以及对应的指令内容信息(由陷阱位侦测器250或由寄存器别名表300提供)来产生的。
[0048] 也就是说,在本实施例中,指令翻译电路200可藉由第一指令翻译器220依序翻译存储在格式化指令队列210的多个格式化宏指令Instr_1~Instr_n。并且,若所述多个格式化宏指令Instr_1~Instr_n的至少其中的一个为复杂指令,在一实施例中,复杂指令的陷阱位被设置(例如设置为1)。当指令侦测电路230判断到其中的格式化宏指令当中的陷阱位经设置(即判定为复杂指令),且此格式化宏指令的一部分可被提前翻译(例如此格式化宏指令属于特定指令类型或可提前获得陷阱地址)时,指令翻译电路200可藉由第二指令翻译器240提前翻译此复杂指令,并且将翻译结果暂存至暂存器310中。换句话说,当此复杂指令被第一指令翻译器220依序翻译时,第一指令翻译器220无需等待第二指令翻译器240,因为第二指令翻译器240的翻译结果已经暂存至暂存器310中。当第一指令翻译器220完成翻译后,寄存器别名表300即可立即取得完整的微指令。因此,本实施例的处理器电路200可有效率地执行指令翻译,并且可有效减少处理器资源的闲置情况。
[0049] 以下描述在一实施例中,多工器逻辑260可同时接收到2路陷阱信息时的工作原理。在前面叙述的指令侦测电路230处理第一格式化宏指令Instr_7的同时,第一指令翻译器220同时正在依序处理多个格式化宏指令Instr_1~Instr_i中的第二格式化宏指令(例如为第二格式化宏指令Instr_3),其中第二格式化宏指令Instr_3的陷阱位也经设置,且在格式化指令队列210中的顺序比第一格式化宏指令Instr_7老。因此,当陷阱位侦测器250侦测到第二格式化宏指令Instr_3当中的陷阱位经设置时,陷阱位侦测器250输出第二格式化宏指令Instr_3的第二陷阱信息Ti2。并且,当多工器逻辑260同时接收指令侦测电路230输出的第一格式化宏指令Instr_7的第一陷阱信息Ti1以及陷阱位侦测器250输出的第二格式化宏指令Instr_3的第二陷阱信息Ti2时,多工器逻辑260判断第二格式化宏指令Instr_3对应的提前陷阱指示信号(early trap indication)是否被设定以判定其是否进行了提前翻译处理。
[0050] 在此一实施例中,若第二格式化宏指令Instr_3对应的提前陷阱指示信号没有被设定,则多工器逻辑260将第二陷阱信息Ti2输出至第二指令翻译器240,以使第二指令翻译器240依据第二陷阱信息Ti2来产生第二格式化宏指令Instr_3对应的第三微指令,并且将另一路接收的、来自指令侦测电路230的第一格式化宏指令Instr_7的第一陷阱信息Ti1删除。在此一实施例中,若第二格式化宏指令Instr_3对应的提前陷阱指示信号被设定,则多工器逻辑260将第一格式化宏指令Instr_7的第一陷阱信息Ti1输出至第二指令翻译器240,以使第二指令翻译器240在空闲状态下依据第一陷阱信息Ti1来产生第一格式化宏指令Instr_7对应的第二微指令。也就是说,对于第二指令翻译器240来说,陷阱位侦测器250送来的第二格式化宏指令Instr_3的正常翻译操作的优先级高于指令侦测电路230发送来的第一格式化宏指令Instr_7的提前翻译操作的优先级。正常翻译操作的优先级以及提前翻译操作的优先级可分别通过多工器逻辑260的选择来实现。
[0051] 图3是依照本发明的一实施例的一种适用于指令翻译电路的执行方法的流程图。本实施例的执行方法可适用于图1的指令翻译电路100以及图2的指令翻译电路200。以下流程以图1的指令翻译电路100来说明。参考图1以及图3,在步骤S410中,指令翻译电路100藉由格式化指令队列110存储多个格式化宏指令。在步骤S420中,当指令侦测电路130判断在多个格式化宏指令的第一格式化宏指令当中的陷阱位经设置,且第一格式化宏指令的一部分可被提前翻译时,指令翻译电路100藉由指令侦测电路130输出第一陷阱信息至第二指令翻译器140。在步骤S430中,第二指令翻译器140依据第一陷阱信息来提前翻译第一格式化宏指令的一部分,以输出第二微指令。在步骤S440中,指令翻译电路100藉由第一指令翻译器120翻译第一格式化宏指令的另一部分,并且输出第一微指令。
[0052] 也就是说,本实施例的执行方法可在第一指令翻译器120依序处理其它格式化宏指令(例如Instr_1~Instr_3)时,藉由指令侦测电路130来侦测在格式化指令队列210中剩下的可被提前翻译的格式化宏指令(复杂指令),例如第一格式化宏指令Instr_7,以藉由第二指令翻译器140对可被提前翻译的第一格式化宏指令的一部分(较复杂的部分)进行指令翻译,并且产生第二微指令。直到,当第一指令翻译器120依序处理到此第一格式化宏指令Instr_7,并且翻译此第一格式化宏指令Instr_7的另一部分(较简易的部分)时,第一指令翻译器120输出第一微指令。此时,第一微指令以及第二微指令将可立即整合为第一格式化宏指令Instr_7所对应的完整微指令。因此,本实施例的执行方法可藉由第二指令翻译器140提前于第一指令翻译器120来翻译属于复杂指令的格式化宏指令,以使第二指令翻译器
140输出第二微指令的机器周期早于第一指令翻译器120输出第一微指令的机器周期。
[0053] 另外,关于本实施例的指令翻译电路100的其他技术特征以及实施细节可参照上述图1以及图2的实施例内容而获致足够的教示、建议以及实施说明,因此不予赘述。
[0054] 综上所述,本发明的指令翻译电路、处理器电路及其执行方法在第一指令翻译器进行指令翻译的过程中,可藉由指令侦测电路来侦测其他格式化宏指令是否需由第二指令翻译器进行进一步指令翻译,并且可被提前翻译。并且,第二指令翻译器可将提前翻译所产生的微指令暂存在暂存器当中。当对应的格式化宏指令被第一指令翻译器翻译后,寄存器别名表可同时取得由第一指令翻译器提供的第一微指令以及由第二指令翻译器提前翻译而提供的第二微指令。第一微指令以及第二微指令可整合为格式化宏指令所对应的完整微指令。也就是说,第二指令翻译器无需等待第一指令翻译器,即可提前执行指令翻译。因此,本发明的指令翻译电路、处理器电路及其执行方法可有效加快指令翻译的速度,并且有效地降低第二指令翻译器的闲置情况。
[0055] 虽然本发明已以实施例公开如上,然其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附的权利要求书所界定者为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈