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

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

Info

Publication number
CN108958798B
CN108958798B CN201810618308.0A CN201810618308A CN108958798B CN 108958798 B CN108958798 B CN 108958798B CN 201810618308 A CN201810618308 A CN 201810618308A CN 108958798 B CN108958798 B CN 108958798B
Authority
CN
China
Prior art keywords
instruction
formatted
trap
macroinstruction
translator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810618308.0A
Other languages
English (en)
Other versions
CN108958798A (zh
Inventor
宋晨晨
费晓龙
凌爱民
管应炳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201810618308.0A priority Critical patent/CN108958798B/zh
Priority to US16/105,975 priority patent/US10776116B2/en
Publication of CN108958798A publication Critical patent/CN108958798A/zh
Application granted granted Critical
Publication of CN108958798B publication Critical patent/CN108958798B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Abstract

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

Description

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

Claims (18)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810618308.0A CN108958798B (zh) 2018-06-15 2018-06-15 指令翻译电路、处理器电路及其执行方法
US16/105,975 US10776116B2 (en) 2018-06-15 2018-08-21 Instruction translation circuit, processor circuit and executing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810618308.0A CN108958798B (zh) 2018-06-15 2018-06-15 指令翻译电路、处理器电路及其执行方法

Publications (2)

Publication Number Publication Date
CN108958798A CN108958798A (zh) 2018-12-07
CN108958798B true CN108958798B (zh) 2021-04-20

Family

ID=64489537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810618308.0A Active CN108958798B (zh) 2018-06-15 2018-06-15 指令翻译电路、处理器电路及其执行方法

Country Status (2)

Country Link
US (1) US10776116B2 (zh)
CN (1) CN108958798B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221576B (zh) * 2019-06-12 2022-03-22 上海兆芯集成电路有限公司 指令执行方法及指令执行装置
CN111679857B (zh) * 2020-06-15 2024-01-23 上海兆芯集成电路股份有限公司 高效能复杂指令译码的微处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866279A (zh) * 2009-08-14 2010-10-20 威盛电子股份有限公司 微处理器及其相关方法
CN102707926A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 可执行x86指令集及ARM指令集指令的微处理器及其运作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463421A (en) * 1980-11-24 1984-07-31 Texas Instruments Incorporated Serial/parallel input/output bus for microprocessor system
DE68927783T2 (de) * 1988-05-03 1997-09-25 Wang Laboratories Mikroprozessor mit äusserem steuerungsspeicher
US5809271A (en) * 1994-03-01 1998-09-15 Intel Corporation Method and apparatus for changing flow of control in a processor
US5774711A (en) * 1996-03-29 1998-06-30 Integrated Device Technology, Inc. Apparatus and method for processing exceptions during execution of string instructions
US7263599B2 (en) * 2004-02-06 2007-08-28 Infineon Technologies Thread ID in a multithreaded processor
US7360203B2 (en) * 2004-02-06 2008-04-15 Infineon Technologies North America Corp. Program tracing in a multithreaded processor
US7454598B2 (en) * 2005-05-16 2008-11-18 Infineon Technologies Ag Controlling out of order execution pipelines issue tagging
US8560810B2 (en) 2009-08-14 2013-10-15 Via Technologies, Inc. Microprocessor with microtranslator and tail microcode instruction for fast execution of complex macroinstructions having both memory and register forms
US9207940B2 (en) * 2013-03-15 2015-12-08 Intel Corporation Robust and high performance instructions for system call
US10409763B2 (en) * 2014-06-30 2019-09-10 Intel Corporation Apparatus and method for efficiently implementing a processor pipeline

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866279A (zh) * 2009-08-14 2010-10-20 威盛电子股份有限公司 微处理器及其相关方法
CN102707926A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 可执行x86指令集及ARM指令集指令的微处理器及其运作方法

Also Published As

Publication number Publication date
US10776116B2 (en) 2020-09-15
CN108958798A (zh) 2018-12-07
US20190384599A1 (en) 2019-12-19

Similar Documents

Publication Publication Date Title
CN1331044C (zh) 于一微处理器中处理一分离式载入作业的装置与方法
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5867684A (en) Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction
JP3857400B2 (ja) 自己変更コードの競合を検出するマイクロプロセッサ及びこのマイクロプロセッサを動作させる方法
US20080276072A1 (en) System and Method for using a Local Condition Code Register for Accelerating Conditional Instruction Execution in a Pipeline Processor
US20070043934A1 (en) Early misprediction recovery through periodic checkpoints
JPH10232776A (ja) 複合分岐予測およびキャッシュ先取りをするマイクロプロセッサ
CN101876889A (zh) 执行多个快速条件分支指令的方法以及相关的微处理器
US6760835B1 (en) Instruction branch mispredict streaming
EP0498067A2 (en) Microcode generation for a scalable compound instruction set machine
KR100188502B1 (ko) 처리 시스템 및 그의 동작 방법
JP2006313422A (ja) 演算処理装置及びデータ転送処理の実行方法
EP3171264A1 (en) System and method of speculative parallel execution of cache line unaligned load instructions
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US5041968A (en) Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location
KR100209831B1 (ko) 처리 시스템 및 그의 동작 방법
JPH0736155B2 (ja) 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置
CN108958798B (zh) 指令翻译电路、处理器电路及其执行方法
US5961632A (en) Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
JP3611304B2 (ja) 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法
EP0592404A1 (en) Apparatus and method for providing a stall cache
US20230367595A1 (en) Gather buffer management for unaligned and gather load operations
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
KR0145035B1 (ko) 처리 시스템 및 그의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.