会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 微处理器 / 微处理器及其相关方法

微处理器及其相关方法

阅读:1056发布:2020-06-12

IPRDB可以提供微处理器及其相关方法专利检索,专利查询,专利分析的服务。并且微处理器及其相关方法。该微处理器包括第一指令转译器,转译微处理器的指令集架构的指令。上述指令可指定第一形式或第二形式,第一形式指示微处理器将其结果写入至目的寄存器,第二形式指示微处理器将其结果写入至存储器。第一指令转译器相应于遇到上述指令时,产生上述指令为第一形式或第二形式的指示。微码存储器,相应于遇到上述指令时,存储一尾部指令,作为第一指令转译器调用的微码例程的一部分。第二指令转译器,从微码存储器中接收尾部指令及上述指示,并且若上述指示指出第一形式时,回应地产生第一微运算,若上述指示指出第二形式时,回应地产生第二微运算,第一微运算是将结果写入至目的寄存器,第二微运算是将结果写入至存储器。,下面是微处理器及其相关方法专利的具体信息内容。

1.一种微处理器,包括:

一第一指令转译器,用以转译一微处理器的一指令集架构的一指令,其中上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微处理器将其结果写入至一目的寄存器,上述第二形式指示上述微处理器将其结果写入至一存储器,其中上述第一指令转译器更用以相应于遇到上述指令时,产生上述指令为上述第一形式或上述第二形式的一指示;

一微码存储器,用以相应于遇到上述指令时,存储一尾部指令,作为上述第一指令转译器所调用的一微码例程的一部分;以及一第二指令转译器,用以从上述微码存储器中接收上述尾部指令以及上述指示,其中若上述指示指出上述第一形式时,上述第二指令转译器回应地产生一第一微运算,其是将上述结果写入至上述目的寄存器,其中若上述指示指出上述第二形式时,上述第二指令转译器回应地产生一第二微运算,其是将上述结果写入至上述存储器。

2.如权利要求1所述的微处理器,其中上述微码例程中的上述尾部指令禁能在一条件分支指令的上述微码例程中的执行。

3.如权利要求1所述的微处理器,还包括:

一寄存器,用以从上述第一指令转译器中接收上述指示并且用以提供上述指示至上述第二指令转译器。

4.如权利要求1所述的微处理器,其中上述第一指令转译器更用以相应于遇到上述指令时,产生微运算的一前端,其中上述前端以及上述微码例程实现上述指令。

5.如权利要求4所述的微处理器,还包括:

一或多个执行单元,用以相应于遇到上述指令时,接收并执行上述第一指令转译器所产生的上述前端的上述微运算,并且用以相应于上述尾部指令,接收并执行上述第二指令转译器所产生的上述第一微运算或上述第二微运算。

6.如权利要求4所述的微处理器,其中于上述指令指出上述第一形式时,上述第一指令转译器所产生的上述前端包含用以从一来源寄存器读取一来源运算元的一微运算,其中于上述指令指出上述第二形式时,上述第一指令转译器所产生的上述前端包含用以从上述存储器中读取一来源运算元的一微运算。

7.如权利要求4所述的微处理器,其中于上述指令指出上述第二形式时,上述第一指令转译器所产生的上述前端包含用以初始上述写入上述结果至上述存储器的一微运算。

8.如权利要求1所述的微处理器,其中实际操作上述指令需要比上述第一指令转译器能够产生于上述微处理器的一时钟周期中的微指令的最大个数更多的微指令。

9.如权利要求1所述的微处理器,其中上述微处理器更用以相应于遇到上述指令时,产生上述微码例程的一地址至上述微码存储器。

10.如权利要求1所述的微处理器,其中上述指令包括一旋转指令,其中上述旋转指令包括一x86架构经由进位标志的向右旋转(RCR)指令。

11.一种用于微处理器的方法,包括:

存储一尾部指令于上述微处理器的一微码存储器中,作为一微码例程的一部分;

遇到上述微处理器的一指令集架构中的一指令,其中上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微处理器将其结果写入至一目的寄存器,而上述第二形式指示上述微处理器将其结果写入至一存储器;

相应于上述遇到上述指令:

产生上述指令为上述第一形式或上述第二形式的一指示;

调用上述微码例程;以及

相应于接收上述尾部指令以及上述指示:

如果上述指示指出上述第一形式时,产生将上述结果写入至上述目的寄存器的一第一微运算;以及如果上述指示指出上述第二形式时,产生将上述结果写入至上述存储器的一第二微运算。

12.如权利要求11所述的方法,其中上述微码例程中的上述尾部指令禁能在上述微码例程中执行一条件分支指令。

13.如权利要求11所述的方法,其中上述遇到上述指令、上述产生上述指示以及上述调用上述微码例程的步骤由上述微处理器的一第一指令转译器所执行,其中上述产生上述第一微运算或上述第二微运算的步骤由上述微处理器的一第二指令转译器所执行。

14.如权利要求13所述的方法,其中实际操作上述指令需要比上述第一指令转译器能够产生于上述微处理器的一时钟周期中的微指令的最大个数更多的微指令。

15.如权利要求11所述的方法,还包括:

相应于上述遇到上述指令时,产生微运算的一前端,其中上述前端以及上述微码例程实现上述指令。

16.如权利要求15所述的方法,还包括:

执行上述前端的上述微运算以及上述第一微运算或上述第二微运算,其中上述执行步骤由上述微处理器的一或多个执行单元所执行。

17.如权利要求15所述的方法,其中于上述指令指出上述第一形式时,上述前端包含用以从一来源寄存器读取一来源运算元的一微运算,其中于上述指令指出上述第二形式时,上述前端包含用以从上述存储器中读取一来源运算元的一微运算。

18.如权利要求15所述的方法,其中于上述指令指出上述第二形式时,上述前端包含用以初始上述写入上述结果至上述存储器的一微运算。

19.如权利要求11所述的方法,其中上述调用上述微码例程的步骤包括相应于上述遇到上述指令时,产生上述微码例程的一地址至上述微码存储器。

20.如权利要求11所述的方法,其中上述指令包括一旋转指令,其中上述旋转指令包括一x86架构经由进位标志的向右旋转(RCR)指令。

说明书全文

微处理器及其相关方法

技术领域

[0001] 本发明涉及微处理器领域,特别涉及包含微码的微处理器。

背景技术

[0002] 许多当代的微处理器包含一个有别于其架构或宏架构(macroarchitecture)的微架构(micro-architecture)。此类微处理器的特色在于其包含一个指令转译器,此指令转译器可将微处理器中的宏指令(例如x86指令)的指令集架构转译为微架构指令集中的一或多个微指令或微运算(micro-operation)。当指令转译器遇到一个必须转译为比指令转译器每秒所能产生的微运算更多的微运算时,指令转译器将产生微运算的一个前端(prolog)。接着,由一微码只读存储器(ROM)中提取用来执行前述宏指令的指令的剩余部分。由微码只读存储器中提取出的指令序列被称为”微码尾部(microcode tail)”。由转译器所产生的前端的微运算可以依指令的形式来客制化。最常见的客制化是对一宏指令的一存储器形式与对此宏指令的一寄存器形式产生一不同前端。对一个以存储器为基础的形式而言,转译器产生一载入指令,用来将来源运算元载入至微处理器的一个暂时寄存器中;而,对一个以寄存器为基础的形式而言,转译器产生一移动指令,用来将来源运算元移动至暂时寄存器中。问题出在于微码尾部。对存储器形式而言,其需要一个存储微运算来将结果存储至存储器中;而对寄存器形式而言,则需将其结果移动至目的寄存器中。
[0003] 一般而言,微码尾部将包含一条件分支指令以跳至以存储器为基础的形式的一个尾部或以寄存器为基础的形式的一个尾部执行。然而,条件分支指令将对效能产生极大影响。

发明内容

[0004] 有鉴于此,本发明实施例提供一种微处理器,包括一第一指令转译器,用以转译一微处理器的一指令集架构的一指令。上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微处理器将其结果写入至一目的寄存器,上述第二形式指示上述微处理器将其结果写入至一存储器。上述第一指令转译器相应于遇到上述指令时,产生上述指令为上述第一形式或上述第二形式的一指示。一微码存储器,用以相应于遇到上述指令时,存储一尾部指令(tail instruction),作为上述第一指令转译器所调用的一微码例程的一部分。一第二指令转译器,用以从上述微码存储器中接收上述尾部指令以及上述指示,并且若上述指示指出上述第一形式时,上述第二指令转译器回应地产生一第一微运算,而若上述指示指出上述第二形式时,上述第二指令转译器回应地产生一第二微运算,其中上述第一微运算是将上述结果写入至上述目的寄存器,上述第二微运算是将上述结果写入至上述存储器。
[0005] 本发明实施例还提供一种方法。方法包含存储一尾部指令于一微处理器的一微码存储器中,作为一微码例程(microcode routine)的一部分。方法也包含遇到上述微处理器的一指令集架构中的一指令。上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微处理器将其结果写入至一目的寄存器,而上述第二形式指示上述微处理器将其结果写入至一存储器。方法也包含,相应于上述遇到上述指令时,产生上述指令为上述第一形式或上述第二形式的一指示并调用上述微码例程。方法也包含,相应于接收上述尾部指令以及上述指示,如果上述指示指出上述第一形式时,产生将上述结果写入至上述目的寄存器的一第一微运算以及若上述指示指出上述第二形式时,产生将上述结果写入至上述存储器的一第二微运算。
[0006] 为使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举出优选实施例,并配合附图,作详细说明如下。

附图说明

[0007] 图1是显示依据本发明施例的一微处理器的区块图。
[0008] 图2是显示依据本发明实施例的图1的微处理器的操作流程图。
[0009] 【主要元件符号说明】
[0010] 100~微处理器;
[0011] 102~指令快取;
[0012] 104~宏转译器;
[0013] 106~多工器(MUX);
[0014] 108~寄存器别名表(RAT);
[0015] 112~保留站;
[0016] 114~执行单元;
[0017] 116~寄存器集;
[0018] 118~重排序缓冲器(ROB);
[0019] 122~微转译器;
[0020] 124~微码只读存储器;
[0021] 126~指令间接寄存器;
[0022] 132~宏指令;
[0023] 134~陷阱地址;
[0024] 136~宏指令信息;
[0025] 138~微运算之前端;
[0026] 142~微码指令的尾部;
[0027] 144~微运算;
[0028] 202、204、206、208、212、214、216~执行步骤。

具体实施方式

[0029] 为了解决前述的效能问题,本发明提供一个新的微码指令,称为TAIL指令。当一个微转译器转译宏指令时,微转译器依据宏指令为一寄存器形式或一存储器形式的判断(其指示于设置于具有必要信息的指令转译器中的一个寄存器中),将TAIL指令转译为适当的存储微运算序列或移动微运算序列。如此一来,可免除于微码尾部中执行条件分支指令的需求。
[0030] 参见图1,是显示依据本发明实施例的一微处理器100的区块图。微处理器100包含一指令快取102,用以快取微处理器100的指令集架构中的指令,这些指令称为宏指令132。举例来说,在一实施例中,此指令集架构大致上符合x86指令集架构。
[0031] 一宏转译器104从指令快取102中接收宏指令132并将其转译为多个微运算138。宏转译器104可将一个宏指令132转译为最多N个微运算138。在一实施例中,N为3。因此,如果宏指令132足够地复杂而使得宏指令132需要比N个微运算138更多的微运算来实际操作时,宏转译器104将产生一个微运算的前端138并且也将产生一陷阱地址(trap address)134至一微码只读存储器(ROM)124。
[0032] 宏转译器104也产生写入至一指令间接寄存器(instruction indirection register,IIR)126的宏指令信息136。举例来说,存储于指令间接寄存器126中的宏指令信息136包含用以识别宏指令132所指定的来源寄存器与目的寄存器以及宏指令132的形式的信息,例如,宏指令132运算于微处理器100的存储器或一结构寄存器116中的一个运算元(operand)上。如此将致能微码例程(routine)为一般的,亦即,每个来源和/或目的结构寄存器116不用具有一个不同的微码例程。
[0033] 微码只读存储器124存储并输出微码例程的微码指令142。微码只读存储器124为一个包含一个微定序器(microsequencer)(未绘示)的较大的微码单元(未绘示)的一部分,其中此微定序器可提供一提取地址(未绘示)至微码只读存储器124,以指定用来输出下一个微码指令142的地址。此初始提取地址为宏转译器104所提供的陷阱地址134。微码指令142可被视为相对于共同用来实现宏指令132的前端138的微码指令142的一尾部。特别来说,微码指令142可包含一个新的指令,称为TAIL指令,此TAIL指令将详细讨论于下。在一实施例中,每个微码指令142的宽度为38位元。
[0034] 微转译器122从微码只读存储器124中接收微码指令142并将其转译为多个微运算144。此外,微转译器122接收指令间接寄存器126的内容。特别地,如同以下将详细讨论的,微转译器122将依据从指令间接寄存器126所接收到的信息,特别依据宏指令132的形式,来将TAIL微码指令转译为不同序列的微运算144。在一实施例中,每个微运算144的宽度近似于200位元。在一实施例中,微转译器122可从一微码指令142中产生最多三个微运算。
[0035] 一多工器(MUX)106从宏转译器104中接收前端微运算138以及从微转译器122中接收尾部微运算144,并且提供适当的多个微运算至微处理器100的一寄存器别名表(register alias table,RAT)108。寄存器别名表108用以产生上述接收的微运算的相依性。寄存器别名表108提供微运算以及相依性信息至持有这些微运算的保留站112,直到这些微运算准备好要被发送至其中一个执行单元114为止。执行单元114从微处理器100的寄存器集116中接收运算元,其中寄存器集116包含由微结构指令集所使用的结构寄存器集以及一暂时寄存器集。一重排序缓冲器(ROB)118从执行单元114中接收微运算结果并且依照程序执行顺序将这些结果引退(retire)至微处理器100的结构状态。
[0036] 接着参见图2,是显示一依据本发明实施例的图1的微处理器100的操作流程图。流程开始在步骤202。
[0037] 在步骤202,宏转译器104遇到一个需要比宏转译器104所能够产生的最大个数的微指令更多的微指令来实际操作的宏指令132。接着执行步骤204。
[0038] 在步骤204,宏转译器104依据宏指令132的形式,相应于宏指令132,产生微运算的一个前端138。特别来说,如果宏指令132为一存储器形式时,前端138包含用于将来源运算元从存储器载入至一暂时寄存器116中的微运算,并且若宏指令132为一寄存器形式时,前端138则包含用于将来源运算元从宏指令132所指定的来源寄存器移动至暂时寄存器116中的微运算。此外,宏转译器104亦将宏指令信息136写入至指令间接寄存器126中。最后,宏转译器104产生陷阱地址134,以指定于微码只读存储器124中包含宏指令132的微码尾部的微码例程。接着执行步骤206。
[0039] 在步骤206,宏转译器104在陷阱地址134上造成一陷阱至微码只读存储器124中的微码例程。其中,微码例程包含一个TAIL微码指令。接着执行步骤208。
[0040] 在步骤208,微码只读存储器124提供微码指令142至微转译器122,其包含TAIL指令。接着执行步骤212。
[0041] 在步骤212,微转译器122依据存储于指令间接寄存器126中的信息,将TAIL指令转译为适当的微运算144。特别来说,如果指令间接寄存器126指出宏指令132为一存储器形式时,微转译器122产生一个用于存储暂时寄存器中的结果至存储器的微运算;反之,如果指令间接寄存器126指出宏指令132为一寄存器形式时,微转译器122产生用于将结果从暂时寄存器移动至指令间接寄存器126所指定的结构目的寄存器116中的微运算。接着执行步骤214。在一实施例中,如果指令间接寄存器126指出宏指令132为一存储器形式时,宏转译器104所产生的上述前端138包含用以初始(initiate)写入暂时寄存器中的结果至存储器的一微运算。
[0042] 在步骤214,微转译器122提供转译后的微运算144至多工器106。接着执行步骤216。
[0043] 在步骤216,执行单元114执行微运算144。有益地,执行单元114并不需要执行在TAIL指令出现之前所要求的一个条件分支指令。流程结束在步骤216。
[0044] 一个依据本发明实施例的需要超过三个微指令的宏指令132的例子为x86RCR(rotate through carry right,经由进位标志的向右旋转)指令。此RCR指令可指定其来源运算元于存储器中或于一般用途寄存器116中。依据一实施例,当宏转译器104在步骤202遇到一RCR指令时,其将产生如下的寄存器形式的微运算前端138:
[0045] mov temp1,Src;//moves the source register(Src)into temp 1register[0046] and temp2,0x1F;//mask off all but lowest 5 bits of the count[0047] 而宏转译器104将产生如下的存储器形式的微运算前端138:
[0048] ldsta temp1,srcBase,srcIndex,srcSeg;//load memory operand into temp1[0049] //and generate store address using same address
[0050] //operands used to generate load address;
[0051] //this is a merged load/store address instruction
[0052] //described in U.S.Application 12/100,616
[0053] //(CNTR.2339),filed 04/10/2008,which is
[0054] //hereby incorporated by reference.
[0055] and temp2,0x1F;//mask off all but lowest 5 bits ofthe count[0056] 微码只读存储器124中的微码例程包含:
[0057] rcr_trap_addr:
[0058] loop:
[0059] RCR temp1,temp1, 1;//rotate right temp1through carry one bit[0060] LOOPE temp2, 1, exit;//decrement count and goto exit if equals 1[0061] JMP loop; //jump back to top of loop
[0062] exit:
[0063] TAIL temp1;//write the result in temp 1 to destination
[0064] //destination depends on IIR register information
[0065] 微转译器122将TAIL指令转译为如下的寄存器形式的微运算序列:
[0066] mov Dest,temp 1;//move the result in temp1 to the architectural[0067] //destination register specified in IIR
[0068] 微转译器122将TAIL指令转译为如下的存储器形式的微运算序列:
[0069] std temp1;//store the result in temp 1to memory
[0070] 须提醒的是,前述的程序代码为简化的伪程序代码(pseudo-code),仅用以方便说明,并非用以将程序代码进行实际操作。
[0071] 前述的微处理器的其中一项优点在于其消除了其他为了符合宏指令的各种形式的情形下所必须包含于微码中的一或多个条件分支指令。在一实施例中,其中上述微码例程中的上述尾部指令禁能在上述微码例程中执行一条件分支指令。如此特别的有好处,因为条件分支指令,尤其是由微码单元所产生的条件分支指令,可能对效能有极大的影响。此至少一部分基于微码单元,在一实施例中,并不包含分支预测器。当执行管线的长度成长时,这样的效能代价亦将随着增加。
[0072] 另一项优点在于,由于微码只读存储器可包含较少的条件分支指令,因此可缩小微码只读存储器的尺寸。
[0073] 虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书所界定者为准。例如,软件可致能,例如,功能、制造、模型化、模拟、描述和/或测试本发明所述的装置以及方法。上述可通过使用一般程序语言(例如:C、C++)、硬件描述语言(HDL)包括Verilog HDL、VHDL等等或其他有效的程序语言来实现。此类软件可以以程序代码的类型包含于实体介质,例如任何其他机器可读取(如计算机可读取)存储介质如半导体、软盘、硬盘或光盘(例如:CD-ROM、DVD-ROM等等),其中,当程序代码被机器,如计算机载入且执行时,此机器变成用以实行本发明的装置。本发明的方法与装置也可以以程序代码类型通过一些传送介质,如电线或电缆、光纤、或是任何传输类型进行传送,其中,当程序代码被机器,如计算机接收、载入且执行时,此机器变成用以实行本发明的装置。当在一般用途处理器实际操作时,程序代码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。本发明所述的装置以及方法可包含于一半导体智财核心例如一微处理器核心(嵌入于HDL),并转换于集成电路生产时转换为硬件产品。此外,本发明所述的装置以及方法可实际操作于包含具有硬件以及软件的组合的实体实施例。因此本发明的保护范围当视所附权利要求书所界定者为准。特别地,本发明可被实际操作于一微处理器装置中,其可被用于一一般用途计算机上。最后,本领域技术人员,可基于本发明所公开的概念以及特定实施例,在不脱离本发明的精神和范围内,可做些许更动与润饰以达到本发明的相同目的。
高效检索全球专利

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

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

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用