寄存器文档电路的制作方法

文档序号:6568572阅读:279来源:国知局
专利名称:寄存器文档电路的制作方法
技术领域
本发明涉及一种寄存器文档电路,可在诸如处理器或处理器内核中应用。本发明还涉及可在诸如处理器或处理器内核的管道环中应用的一种寄存器重命名法。
背景技术
在高性能计算过程中,通常要求目标机(如微处理器)高速执行指令,软件管道环中循环寄存器重命名的需求随之增大。指令执行时间一般由应用程序中的环结构决定。为高速执行指令,处理器可以划分多个单独的执行单元,其中每个单元可在其它执行单元执行指令时并行地执行一条或多条指令。
通过这些指令执行单元,可设定由多个单个的等级构成的所谓的软件管道。每个软件管道等级与特定指令执行单元没有固定的物理对应关系。当应用程序中的环结构被编译时,构成环的某个迭代的机器指令被列入执行进程表,以便由不同的指令执行单元根据软件管道进程表来执行。该进程表分成连续的等级,采用一种允许不同的指令执行单元以重叠方式进行多重迭代的方法,将机器指令列入进程表,其中在各连续迭代的初始点之间有选定环初始时间间隔。当迭代i第一级结束进入第二级时,下一个迭代i+1第一级开始执行。这样,迭代i+1的第一级指令与迭代i的第二级指令同时执行。
在这样的软件管道环中,每一时刻通常存在某一个环的部分完成态下的多个迭代。因而,该环内每个计算值可能有多个活拷贝。为区分这些值并相对于当前迭代对其进行识别,寄存器内存放的每个值的名称需要在环执行期间的各个确定时刻进行变更。这些更名点对编译器已知,编译器还确定每条指令内所需的寄存器名,以便根据计算每个值的迭代访问该值。
就每条汇编码指令内的寄存器标识符而言,寄存器内存放的值的名称对程序或编译器已知。静态寄存器的重命名是为了确定一种方案,以使得这些寄存器的标识符可以在程序运行期间,基于程序或编译器可预知的某种转换方案转换为实际的寄存器编号。
例如,若给迭代1所用寄存器r1赋值x,一种典型的重命名方案是使该值也可用于迭代2所用寄存器r2和迭代3所用寄存器r3,依此类推。编译器或程序负责采用一种能保证环正常运行的方式给每个值分配寄存器标识符。
在软件管道环中,通常会有需要在管道中不同指令间相互联系的环变量值,即需要在环的每个不同迭代中重新计算的表达式。为处理这样的环变量值,可以将它们存放在所谓的循环寄存器文档中。在这种情况下,给每个环变量值在循环寄存器文档内分配一个逻辑寄存器编号,此逻辑寄存器编号在不同的迭代中保持不变。在循环寄存器文档内,每个逻辑寄存器编号被映象到该寄存器文档内的一个物理寄存器上,每当开始进行一个新迭代,即每当管道边界关闭的时候,这种映象就循环一次。这样,不同迭代中的相关指令都可引用同一个逻辑寄存器编号,使编译过的指令简单,同时避免一个迭代得出的值被随后执行的其它迭代指令重写。
若采用这种寄存器重命名方案,那么在处理器执行指令前,对于软件管道环中的每一次寄存器访问,首先必需进行寄存器映象处理将寄存器标识符转换成实际的寄存器编号。该映象过程在程序运行期间完成,从而在对速度,要求很高的活动中,对处理器提出了额外的时间要求。因此希望映象过程所花的时间尽可能短。
在我们共同提交待批的英国专利申请No.0004582.3中,介绍了能够进行这种映象的映象电路。该映象电路接收逻辑寄存器编号作为输入值,在预先选定的允许值范围内产生输出值,来表示实际的物理寄存器编号。该电路同时产生两个备选输出值,第一个备选输出值与收到的输入值相差第一偏量值,第二个备选输出值与收到的输入值相差第二偏量值。对于预先选定的允许输入值范围内的任一输入值,第一个与第二个备选输出值中有一个位于预先选定的输出值范围内,而另一个则超出了该范围。该电路确定哪一个备选输出值位于预先选定的输出值范围内,并选定其作为最后的输出值。位于范围内的备选输出值的确定也与第一及第二备选输出值本身的产生同时进行。尽管该映象电路在大多数实际应用中运行得相当快,人们仍然希望设计出映象进行得更快的寄存器文档电路。

发明内容
根据本发明的第一方面,寄存器文档电路包括多个物理寄存器;分别对应于物理寄存器的多个标记存储部分,其中每一个部分存放表示一个逻辑寄存器标识符(ID)的标记,该标识符被分配给相对应的物理寄存器;寄存器选择装置,用于接收逻辑寄存器ID并选择所述标记与收到的逻辑寄存器ID相匹配的那一个物理寄存器;以及标记变更装置,可通过将至少一个标记存储部分存放的标记转移到另一个所述标记存储部分,变更所存放的标记,从而改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系。
根据本发明的第二方面,寄存器文档电路包括多个物理寄存器;分别对应于物理寄存器的多个标记存储部分,其中每一个部分存放表示一个逻辑寄存器ID的标记,该ID被分配给相对应的物理寄存器;寄存器选择装置,用于接收逻辑寄存器ID并选择所述标记与收到的逻辑寄存器ID相匹配的那一个物理寄存器;标记变更装置,用于变更所存放的标记从而改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系;以及物理寄存器指定装置,用于从所述多个寄存器中指定至少一个物理寄存器作为静态命名的物理寄存器,其所述标记不能通过前述标记变更装置进行改变。
根据本发明的第三方面,寄存器文档电路包括多个物理寄存器;分别对应于物理寄存器的多个标记管理单元,其中每个标记管理单元包含一个标记存储部分以存放表示一个逻辑寄存器ID的标记,该ID被分配给该单元相对应的物理寄存器,每个标记管理单元可以改变存放在其自身单元所述标记存储部分的标记;寄存器选择装置,用于接收逻辑寄存器ID并选择所述标记与收到的逻辑寄存器ID相匹配的那一个物理寄存器;两个或更多的所述标记管理单元,它们可以同时引起所述物理寄存器之一与至少一个逻辑寄存器ID之间映象关系的改变。
根据本发明的第四方面,适用于划分有用于执行指令的一系列管道等级的处理器的寄存器文档电路,包括多个物理寄存器;第一组多个标记存储部分,这些部分分别对应于物理寄存器,设置在管道等级系列中的第一级,每个部分存放表示一个逻辑寄存器ID的工作标记,该ID被分配给相对应的物理寄存器;第二组多个标记存储部分,这些部分分别对应于物理寄存器,存放分别与工作标记相对应的各个完成(committed)标记;完成标记更新装置,该装置与所述第二组标记存储部分相连,用于随着管道等级执行指令时更新完成标记;以及工作标记重载装置,该装置与所述第一及第二组标记存储部分相连,当出现异常前的最后一条有效指令到达最后一个管道等级时,该装置可用相应的完成标记对每个工作标记进行重载。
根据本发明的第五方面,提供的处理器中带有根据本发明前述第一至第五方面的寄存器文档电路。
根据本发明的第六方面,提供了适用于带有多个物理寄存器的寄存器文档电路的一种寄存器重命名法,包括将标记存放在多个标记存储部分,这些部分分别对应于物理寄存器,存放的每个标记表示一个逻辑寄存器ID,该ID被分配给相对应的物理寄存器;通过将至少一个标记存储部分存放的标记转移到另一个所述标记存储部分,变更所存放的标记,从而改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系。


下面参照附图举例说明,其中附图1所示为实施本发明的带有寄存器文档电路的处理器的结构;附图2所示为实施本发明的一个寄存器文档实例;附图3所示为实施本发明的寄存器文档电路的框图;附图4所示为根据本发明第一实施例的寄存器文档电路组成部分的电路图;
附图5更详细地示出了附图4所示寄存器文档电路的结构;附图6所示为用于本发明第一实施例的标记管理单元结构;附图7所示为说明第一实施例工作过程的流程图;附图8-12所示为说明第一实施例工作过程的示意图;附图13所示为用于提供第一实施例控制信号的控制信号产生电路的结构;附图14所示为说明第一实施例所用控制信号的示意图;附图15所示为说明附图6标记管理单元工作过程的流程图;附图16所示为用于本发明第二实施例的标记管理单元的结构;附图17所示为说明第二实施例所用控制信号的示意图;附图18(A)和18(B)所示为说明附图16标记管理单元工作过程的流程图;附图19所示为根据本发明第三实施例的寄存器文档电路结构的电路图;以及附图20更详细地示出了附图19所示电路的结构。
具体实施例方式
附图1所示为实施本发明的带有寄存器文档电路的处理器的结构。在此例中,处理器为特长指令字(VLIW)处理器,带有硬件支持软件管道和循环寄存器重命名操作。处理器1中包括指令发布单元10,进度表存储单元12,第一、第二、第三执行单元14、16、18,以及寄存器文档电路20。指令发布单元10有三个时隙IS1,IS2和IS3分别与第一、第二和第三执行单元14、16和18相连。第一总线22使三个执行单元14、16、18与寄存器文档电路20相连。通过第二总线24,第一及第二执行单元14及16(本例中第三执行单元18没有连接)与存储器26连接,本例中该存储器为处理器内部的类似高速缓冲存储器的随机存取存储器(RAM)。存储器26也可以是外部RAM。
顺便说明一下,虽然附图1中连接执行单元与寄存器文档电路20及存储器26的为共享总线22和24,但每个执行单元也可以分别与寄存器文档电路及存储器单独连接。另外,给执行单元14、16及18分别配各自的寄存器文档电路。
处理器1进行一系列处理循环。在每个处理循环中,指令发布单元10可在发布时隙IS1至IS3各发布一条指令。指令是根据进度表存储单元12所存的软件管道进度表(在后面说明)进行发布的。
指令发布单元10通过不同的发布时隙发布的指令由相应的执行单元14、16及18执行。在此例中,每个执行单元可同时执行一条以上的指令,因而在同一单元发布的前一条指令执行完之前就可开始执行一条新指令。
为执行指令,执行单元14、16及18都需通过第一总线22访问寄存器文档电路20。这样,寄存器文档电路20中的寄存器存放的数值可被执行单元14、16及18读取并写入。此外,第一及第二执行单元14和16可经由第二总线24访问存储器26,从而使存放在存储器26内的存储位置的数值可被读取并写入。在本例中,第三执行单元18不能访问存储器26,因而只能处理寄存器文档电路20中的数据。
附图2所示为附图1所示处理器的寄存器文档电路20的一个实例的示意图。附图2所示的寄存器文档电路20中包含D个物理寄存器。在此例中,D等于32。在这D个寄存器中,编号偏低的K个寄存器为静态命名的,编号偏高的D-K个寄存器为动态命名的(可重命名)。在此例中,K等于16。静态命名寄存器组成寄存器文档的静态命名区20S,可重命名寄存器组成寄存器文档的可重命名区20R。
要求访问寄存器文档内的物理寄存器的每条处理器指令,都采用一个逻辑寄存器编号R来表示其寄存器操作数。R是0到D-1之间的一个m位二进制整数,其中m=[log2(D)]。此例中m等于5。每个物理寄存器编号P也是0到D-1之间的一个m位二进制整数,直接标识一个实际的硬件寄存器(物理寄存器)。
对于静态命名区20S中的寄存器,即P位于0到K-1之间的物理寄存器,逻辑寄存器编号R到物理寄存器编号P的映象关系为P=R。
对于动态命名区20R中的寄存器,即P位于K到D-1之间的寄存器,逻辑寄存器编号R到物理寄存器编号P的映象关系为
P=K+|R-K+OFFSET|D-K(1)在上述符号中,|y|x表示y模x。OFFSET(偏移量)为一个映象偏置变量(整数),随着动态命名区20R中的寄存器重命名而增大(或减小)。
OFFSET在0到D-K-1之间变化。
在本例中,因D=32,K=16,上述等式1就变换为P=16+|R-16+OFFSET|16附图2所示为OFFSET=6的映象。
虽然附图2中静态命名区20S是由编号偏低的K个寄存器组成的,静态命名区也可由编号偏高的寄存器(如K或D-K个编号偏高的寄存器)组成。后面将说明,若映象偏置变量OFFSET在寄存器重命名时增大,采用编号偏低的K个寄存器更好;若映象偏置变量OFFSET在寄存器重命名时减小,采用编号偏高的寄存器作为静态命名寄存器更好。
附图3所示为附图1所示处理器的寄存器文档电路20的结构。电路20中包括D个物理寄存器320至32D-1、D个标记存储部分340至34D-1。这些标记存储部分340至34D-1分别对应于物理寄存器320至32D-1。每个标记存储部分存放TAG0至TAGD-1中的一个标记,这些标记分别表示分配给相应物理寄存器320至32D-1的逻辑寄存器标识符。
附图3所示电路中还包括一个寄存器选择单元36,该单元接收逻辑寄存器标识符R,从物理寄存器320至32D-1中选取标记(TAG0至TAGD-1)与所收到的逻辑寄存器标识符R匹配的那个物理寄存器。采用这种方法选取物理寄存器320至32D-1中之一后,预期的操作就在选中的寄存器上进行,如一个访问(读或写)操作。
附图3所示电路中还包括一个标记变更单元38,该单元可改变所存的标记TAG0至TAGD-1以改变分配给一个或多个物理寄存器320至32D-1的逻辑寄存器标识符。
附图4所示为根据本发明第一优选实施例的寄存器文档电路40结构图。附图4中仅示出了“端”(第一个及最后一个)寄存器320及32D-1的某些组件。在这个实施例中,物理寄存器320至32D-1中的每一个都是一个存放n位数据字(如n=32)的n位寄存器。附图4以物理寄存器320的基本单元1320,0和1320,n-1,以及物理寄存器32D-1的基本单元132D-1,0和132D-1,n-1为例。在物理寄存器320中基本单元1320,0用于存放n位数据字的第0位,基本单元1320,n-1用于存放同一数据字的第n-1位。同样地,基本单元132D-1,0和132D-1,n-1分别用于存放物理寄存器32D-1所存的n位数据字的第0位和第n-1位。应理解,物理寄存器320和32D-1中的其它所有位都各有其它寄存器基本单元,其它所有物理寄存器也都有同样的寄存器基本单元结构。
附图4所示实施例中还包括n个输出单元440至44n-1。物理寄存器320至32D-1中的每一位(bit)都有一个输出单元44。每个输出电路44i(i=0至n-1)接收D个选择信号SEL0至SELD-1。每个输出电路44i还接收D个数据信号DS0,i至DSD-1,i。每个输出电路44i包含D个与门(AND)460至46D-1,每一个与门分别接收选择信号SEL0至SELD-1之一和数据信号DS0,i至DSD-1,I之一作为其两个输入信号。与门460至46D-1分别产生输出信号OP0至OPD-1。这些输出信号分别作为D输入或门(OR)48的输入。或门48产生对应于输出单元44i的一个位信号Bi。这样,如附图4所示,输出单元440产生位信号B0,输出单元44n-1产生位信号Bn-1。
附图4所示电路中还包括D个标记管理单元420至42D-1。物理寄存器320至32D-1中的每一个都有一个这样的标记管理单元。在此实施例中,每个标记管理单元42i(i=0至D-1)中包含附图3所示标记存储部分340至34D-1中的一个标记存储部分(第34i部分)。标记存储部分34i对应于物理寄存器32i。
在此实施例中,每个标记管理单元42中还包含一个复用器52。标记管理单元42的结构及工作过程将在后面参照附图5作更详细地说明。
附图4所示电路40中还包括D个比较器单元540至54D-1,每一个单元对应于物理寄存器320至32D-1中的一个。这D个比较器单元540至54D-1整体对应于附图3所示的寄存器选择单元38。每个比较器单元54接收表示选中物理寄存器的逻辑寄存器编号的信号R作为其第一输入。每个比较器单元54同时接收相应物理寄存器的标记存储部分34i(注原文中为340)所存的标记作为其第二输入。例如,比较器单元540接收物理寄存器320对应的标记存储部分340所存的标记TAG0作为其第二输入。比较器单元540至54D-1分别产生上述用于输出单元440至44n-1的选择信号SEL0至SELD-1。
附图5对附图4所示标记管理单元42作了更详细地图示。附图5中示出了三个标记管理单元42i-2、42i-1及42i。每个标记管理单元42中的复用器52有一组数据输入,附图5所示有三个。第一数据输入I1为相应标记管理单元42中的标记存储部分34的输出信号的反馈。因此,第一数据输入I1接收单元自身所存的标记。第二数据输入I2接到所有单元共用的总线58上。总线58接到最后一个标记管理单元42D-1中的标记存储部分34D-1的输出上。因此,第二数据输入I2接收标记TAGD-1。第三数据输入I3连接到前一个标记管理单元42中的标记存储部分34的输出上。因此,第三数据输入I3接收前一个标记管理单元42中所存的标记。例如,标记管理单元42i-1中的复用器52i-1接收前一个标记管理单元42i-2中所存的标记TAGi-2作为其第三数据输入I3。
每个标记管理单元42中的复用器52也有一个数据输出连接到相应标记管理单元中的标记存储部分34的一个输入上。
每个标记管理单元中的标记存储部分34的输出也连接到相应比较器单元540至54D-1的第二输入上,前面已有说明。
每个标记管理单元42还带有通过总线60接收控制信号的控制输入。这些用于控制标记管理单元工作的控制信号由一个控制信号发生单元(附图5中未示出)产生,后面将参照附图13详细说明。
附图6所示为标记管理单元42i中的复用器52i。除前面提及的第一至第三数据输入I1-I3以外,该复用器还有第四输入I4接收一个固定值i,即其标记管理单元42i的单元号。第四输入I4可用来在复位(reset)操作时对每个标记管理单元42所存的标记进行初始化,后面将详细说明。
下面参照附图7说明第一实施例的工作流程。附图7所示的工作流程在每一次处理器循环中都会进行。
步骤S1确定寄存器文档电路是否需要复位。例如,当处理器加电或寄存器文档的静态命名区20S与动态命名区20R之间的界限改变的时候,需要这样的复位操作。若步骤s1中确定需要复位,每个标记管理单元420至42D-1促使其复用器52选择第四数据输入(附图6中的I4)。结果是,复用器52输出相应标记管理单元的单元号;在下一个有效时钟边沿,这些单元号被存入标记管理单元的标记存储部分34(步骤S5)。处理过程随后结束。
若步骤s1中确定不需要复位,步骤S2检查寄存器文档中动态命名区20R内的寄存器是否需要重命名。当软件管道环中开始一个新迭代的时候,可能需要这样的重命名操作。例如在这种情况下,处理器可能发出一个RENAME(重命名)控制信号,该信号施加于寄存器文档电路20(见附图1)。
若不需要重命名操作,处理过程结束。否则,在步骤S3和S4中,与寄存器文档动态命名区20R内的物理寄存器相对应的标记被“循环”一次。
特别是在步骤S3中,每一个标记管理单元42i(i=K+1至D-1)促使其复用器52选择第三输入(附图6中的I3)。结果是,复用器52输出前一个标记管理单元42i-1的标记存储单元34i-1中所存的标记TAGi-1。在下一个有效时钟边沿,标记TAGi-1被存入标记管理单元42i的标记存储单元34i中。
最后一个标记管理单元42D-1中存放的标记必须回绕至动态命名区20R内第一个物理寄存器对应的标记管理单元42K中。因而在步骤S4中,标记管理单元42K使其复用器52选择第二输入(附图6中的I2)。结果是,该单元的复用器52输出通过总线58从标记管理单元42D-1接收的标记TAGD-1。在下一个有效时钟边沿,标记TAGD-1被存入标记存储单元34K中。
应理解,在附图7所示的工作流程中,除需要复位的情况外,与静态命名区20S中的物理寄存器相对应的标记TAG0至TAGK-1保持不变。这样,这些标记保持值0至K-1,这些标记在步骤S5复位操作时分别初始化为这些值。因此,对于寄存器文档中静态命名区20S内的物理寄存器,逻辑寄存器编号总是直接映象到相同的物理寄存器编号,例如物理寄存器320总有逻辑寄存器编号0(即TAG0=0),物理寄存器321总有逻辑寄存器编号1(即TAG1=1)等。
应理解,在附图4所示实施例中,与动态命名区内物理寄存器相应的标记的变更可通过以循环方式使标记移位(循环)经过与那些物理寄存器相应的标记存储部分来简单地实现。这种循环移位可快速进行,因为其中不需要算术或其它复杂的数据处理过程。
比较器单元540至54D-1与输出电路440至44n-1共同组成一个读取端口,该端口根据信号R选取标记与由信号R指定的逻辑寄存器编号匹配的相应物理寄存器,输出被选中的物理寄存器所存的n位数字作为位信号B0至Bn-1。
由于物理寄存器相应的标记总是互不同的,即便在寄存器重命名以后,在任一时刻仅有一个比较器单元54内存放的标记可与由信号R指定的逻辑寄存器编号匹配。这样,仅有那一个比较器单元将其选择信号SEL置为有效(1),其它所有选择信号都为无效(0)。因此,在440至44n-1每一个输出单元中,仅有一个与门46收到有效的选择信号SEL而被置为有效,其它的与门都置为无效。唯一有效的与门46的输出信号OP等于寄存器基本单元132(与该与门相连)存放的数据字位。所有无效的与门的输出信号OP都为无效(0)。这样,每个输出单元44内的或门48只传送唯一有效与门46的输出信号OP(即该与门收到的寄存器基本单元位)作为其位信号B。
由于比较器单元540至54D-1彼此并行工作,寄存器选择操作进行得非常快。同样地,由于输出单元440至44n-1彼此并行工作,对选中的寄存器的读取也进行得非常快。
附图4所示实施例的工作过程将参照附图8-12所示实例予以说明。此例中为简单起见,假设寄存器文档总共仅有4个物理寄存器(D=4),开始仅有物理寄存器0位于静态命名区,其余物理寄存器1、2、3位于动态命名区(K=1)。
附图8中所示为紧跟复位操作后的标记状态。
附图9所示为进行第一次重命名操作后的标记情况。标记TAG0仍为0。如附图9中粗箭头所示,物理寄存器1、2及3对应的标记已循环移动一位。这样,若给比较器单元540至54D-1输入逻辑寄存器编号R=2,物理寄存器3由于其对应的标记值为2而被选中。
附图10所示为进行第二次重命名操作后的标记情况。操作后逻辑寄存器编号2被存储在与物理寄存器1对应的标记中。因此,若给比较器单元540至54D-1输入逻辑寄存器编号R=2,物理寄存器1就被选中。
进行第三次重命名操作后,标记情况如附图11所示,与附图8所示状态(复位状态)相同。这样,若逻辑寄存器编号为2,则物理寄存器2被选中。
达到附图11所示状态后,假设K从原值1改为新值2。仅当标记被复位至附图8所示状态以后,才允许这样改变K值。在此例中,标记在K值改变之前已返回如附图11所示的复位状态。但是在一般情况下,对K作任何改变之前必须进行复位操作。
附图12所示为改变K值并进行第一次重命名操作后的标记情况。由于K=2,重命名后物理寄存器0和1的标记仍分别为0和1。位于动态命名区内的物理寄存器2和3的标记被循环移动。这样,若逻辑寄存器编号为2,则物理寄存器3被选中。
可以改变附图4所示实施例,使其不止具有一个读取端口。这很容易实现对每一个另加的读取端口,加装与附图4所示比较器单元540至54D-1相应的另一组D个比较器单元,与附图4所示输出单元440至44n-1相应的另一组n个输出单元。若按这种方法装好两个或更多的读取端口,这些读取端口彼此并行工作,每一组比较器单元接收一个不同的信号R,该信号指定要通过相应读取端口读取的物理寄存器的逻辑寄存器编号。
读取端口的输出单元440至44n-1可采用多种不同于附图4所示的方法来实现。例如,读取端口的输出单元可采用D个三态驱动器,其中每一个由不同的一个选择信号SEL0至SELD-1激活以输出相应物理寄存器所存放的数据字。这些三态驱动器的输出统一接到读取端口的一个输出上,其中每个未激活的三态驱动器都将其输出设成高阻抗状态。
此外,可以采用不同于附图4所示读取端口的其它适当的电路,对选中的物理寄存器进行预期的操作,例如写操作或清除操作。
在附图4所示实施例中,标记管理单元420至42D-1由通过控制信号发生单元产生的控制信号进行控制。附图13示出了适用于附图4所示实施例的控制信号发生单元的组成部分。
附图13所示控制信号发生单元62中包括一个寄存器64、一个解码器66以及多个或门681至6831。在此例中,假定寄存器文档电路内物理寄存器的总数D为32。这意味着此例中所需或门数为31,其原因将不言而喻。
此例中寄存器64为用于存放当前K值的5位寄存器。所存的K值作为解码器66的一个输入。解码器66是一个“5到32”解码器,有32个输出。解出的信号Kdecoded
至Kdecoded[31]分别位于解码器66的输出上。每个或门在其第一输入接收解码信号Kdecoded
至Kdecoded[31]之一。或门682至6831中的每一个都接收其前一个或门(681至6830)的输出信号(rotatingRegion[1]至rotatingRegion[30])作为第二输入。对于或门681,第二输入为解出的信号Kdecoded
。解出的信号Kdecoded
直接提供后面的输出信号rotatingRegion
。输出信号rotatingRegion
至rotatingRegion[31]分别送到附图4所示的标记管理单元420至4231。
控制信号发生单元62的工作过程如下解码器66接收所存的K值,将解出信号Kdecoded[K]置为有效状态(1),其它解出的信号都置为无效(0);这样,或门68K将其输出信号rotatingRegion[K]置为有效状态(1)(若K=0,由于解出的信号Kdecoded
为有效,输出信号rotatingRegion
直接成为有效)。
输出信号rotatingRegion[K]的有效状态随即“传递”给或门68K+1至6831,使得输出信号rotatingRegion[K+1]至rotatingRegion[31]都同样置为有效(1)。
由此可看出,管理与寄存器文档动态命名区20R内物理寄存器32K至3231对应的标记的标记管理单元42K至4231,分别接收处于有效状态的输出信号rotatingRegion[K]至rotatingRegion[31],而其它的标记管理单元420至42K-1分别接收无效的输出信号rotatingRegion
至rotatingRegion[K-1]。通过这种方法,每个标记管理单元收到的控制信号确定其相应的物理寄存器位于区20S还是区20R。
如附图14中所示,每个标记管理单元42i除接收控制信号rotatingRegion[i]以外,还接收来自控制信号发生单元62的另外两个控制信号RESET(复位)和ROTATION(循环)。当需要对标记进行复位时(附图7中步骤S1检查),该RESET信号被置为有效状态(1)。当ROTATION信号为无效时(0),不需要对寄存器重命名(附图7中步骤S2检查)。每个标记管理单元42i还接收来自控制信号发生单元62的解出信号Kdecoded[i]。
下面参见附图15说明通道管理单元42i根据收到的控制信号进行的操作。
步骤S10检查RESET信号是否为有效(1)。若有效,则进到步骤S16,复用器52i选择其第四数据输入,即单元自身的识别号i。处理过程结束。
若在步骤S10中RESET信号为无效,步骤S11检查ROTATION信号与rotatingRegion[i]信号是否都为有效(1)。若其中有一个无效,则进到步骤S15,复用器52i选择其第一数据输入I1。在这种情况下,保持所存放的标记TAGi不变。
若在步骤S11中ROTATION信号与rotatingRegion[i]信号都有效(1),则进到步骤S12。步骤S12检查Kdecoded[i]信号以确定标记管理单元42i相应的物理寄存器32i是否为寄存器文档动态命名区20R内的第一个寄存器。若是,那么Kdecoded[i]信号为有效(1),进到步骤S14,复用器52i(注原文中为32i)选择其第二数据输入。结果所存放的标记改为TAGD-1。
若在步骤S12中Kdecoded[i]信号为无效,则标记管理单元42i不是动态命名区内的第一个寄存器,进到步骤S13,复用器52i选择其第三数据输入I3。在这种情况下,所存放的标记改为等于前一个标记管理单元42i-1中的TAGi-1。
由附图15可看出,由于所存放的标记在动态命名区20R内根据映象偏置值OFFSET(见附图2,寄存器每重命名一次该偏置值就增加一次)循环移动,动态命名区20R内最后一个物理寄存器总是寄存器文档的最后一个物理寄存器32D-1。这样,尽管任何一个物理寄存器都可被指定为动态命名区20R内第一个物理寄存器32K,以致于每个标记管理单元需能接收与最后一个物理寄存器32D-1相应的所存标记TAGD-1(标记“回绕(wrap-around)”),每个标记管理单元只需要标记存储部分34D-1作为一个源标记存储部分以便允许这样的标记回绕,而不需其它每个标记存储部分作为源标记存储部分。这样可使每个标记管理单元中的复用器因使用门数少而简单,也可使复用器运行速度快。
在另一个实施例中,动态命名寄存器为编号偏低的物理寄存器,第一个物理寄存器320总是动态命名区20R内的第一个物理寄存器。在这种情况下,当标记存储部分320(唯一)为其它所有标记存储部分的源标记存储部分时,可能进行标记回绕。此时,寄存器每重命名一次,映象偏置值OFFSET就减少一次。
在附图4所示实施例中,处理器每循环一次只能进行一次重命名操作。不过,根据处理器中使用寄存器文档电路的执行单元的个数,可允许处理器每循环一次进行一次以上的重命名操作。
在根据本发明第二实施例的寄存器文档电路中,处理器每循环一次可最多进行两次重命名操作。附图16示出了第二实施例中的一个标记管理单元142i的组成部分。采用了一个有六个数据输入I1至I6的复用器152i代替附图6中所示复用器52i。输入I1至I4的连接与第一实施例中相同。第五数据输入I5连接到标记管理单元42i-2中数据存储部分34i-2的输出上。第六数据输入I6接到一条总线上(未标出,与附图5中所示总线58类似),该总线连接到倒数第二个标记管理单元42D-2中标记存储部分34D-2的输出上。
在第二实施例中,如附图17所示,每个标记管理单元142还需要来自控制信号发生单元的另外的控制信号。特别是第二实施例中每个标记管理单元142i都连接有ROTATEBYTWO信号。若当前处理器循环中需要两次重命名操作,则该控制信号为有效(1);若当前处理器循环中需要一次重命名操作,则ROTATEBYTWO信号为无效(0)而ROTATION信号为有效(1);若当前处理器循环中不需要重命名操作,则ROTATION控制信号为无效(0)而ROTATEBYTWO信号可为无效或有效(“无关”)。此外,附图17所示第二实施例中每个标记管理单元142i还接收解出的信号Kdecoded[i-1]。第二实施例中加到标记管理单元142i上其余的控制信号与第一实施例中一样(见附图14)。
下面参照附图18(A)和18(B)说明第二实施例中标记管理单元142i的工作流程。在附图18(A)和18(B)中,凡与那些已结合附图15说明过的步骤相同的步骤,给出相同的参照号而省略对这些步骤的说明。附图18(A)和18(B)中增加了步骤S20至S25。
在第二实施例中,标记管理单元142i不仅需确定其相应的物理寄存器是否为动态命名区20R内的第一个寄存器,而且(在当前循环要求两次重命名操作的情况下)还需确定其相应的物理寄存器是否为动态命名区20R内的第二个寄存器。若步骤S12已确定其相应的物理寄存器不是区20R内的第一个寄存器后,在步骤S20中检查其相应的寄存器是否为该区内的第二个寄存器。若是,步骤S21检查在此次处理器循环中是否需要两次重命名操作(ROTATEBYTWO信号有效)。若需要两次重命名操作,该标记管理单元必须选择与最后一个物理寄存器(也是动态命名区20R内的最后一个物理寄存器)相应的标记管理单元142D-1中的标记TAGD-1。
若在步骤S21中ROTATEBYTWO信号为无效,则表示当前循环中仅需一次重命名操作。这样,在步骤S13中象第一实施例中一样选择前一级的标记TAGi-1。
若在步骤S12中确定标记管理单元142i的相应物理寄存器32i为区20R内的第一个物理寄存器,则进到步骤S24。在这种情况下,若当前处理器循环中需要两次重命名操作(ROTATEBYTWO信号有效),那么在步骤S25中复用器152i选择其第六数据输入,使得与倒数第二个物理寄存器相应的标记TAGD-2被存入。否则,当前处理器循环中仅需一次重命名操作,象第一实施例中一样执行步骤S14。
在第二实施例中,寄存器文档在每次处理器循环中可进行0、1或2次重命名操作。应理解,在其它实施例中,通过增加每个复用器的输入以及用于产生所需附加控制信号的相关控制逻辑电路,可使本发明支持每次循环中进行任意次重命名操作。
采用本发明实施例的寄存器文档电路的处理器,其执行单元可以是管道化的。在这种情况下,需要提供一种异常处理装置以使寄存器文档电路中开始状态信息可逆。同时,需要给寄存器文档电路提供一种停滞控制装置。
附图19所示为根据本发明第三优选实施例的寄存器文档电路80的组成结构示意框图。在此例中寄存器文档电路80用于一个有五级(0至4级)执行单元管道的处理器中。在此实施例中,寄存器文档电路80中每个物理寄存器除了有标记存储部分340至3431以外,另外增加了一组标记存储部分1340至13431。标记存储部分340至3431内存放的标记用作工作标记,而标记存储部分1340至13431内存放的标记用作完成标记。
电路80中还包含第一系列寄存器级(K寄存器级)820至824以及第二系列寄存器级(TCP寄存器级)840至843。
K寄存器级820至824中每一个都用于存放一个K值。K寄存器级824中存放的K值用作完成的K值。K寄存器级820至823组成完成K值更新单元182的一部分。在K寄存器级820的输入与K寄存器级824的输出之间接有一个复用器86。
TCP寄存器级840至843中每一个都用于存放一组标记变更参数(TCP),这些参数被标记管理单元用来改变工作标记。例如,所存放的TCP来源于ROTATION和(若使用了)ROTATEBYTWO控制信号。TCP寄存器级840至843组成完成标志更新单元184的一部分。
在正常操作中(无异常、无停顿),当一条指令进入第一管道级(0级)时,当前适用的TCP被记入寄存器级840中。同样地,当前适用的K值也被记入寄存器级820中。当连续的指令进入管道时,TCP和K值经过第一和第二系列寄存器级,每组TCP和每个K值与执行单元管道中相应的指令保持同步。
在每次处理器循环中,完成标记更新单元184根据寄存器级843内存放的TCP对完成标记进行更新。这样,完成标记对应于退出最后管道级的指令(最后完成的指令)所用的标记,而工作标记对应于进入第一管道级的指令所用的标记。中间管道级指令所用的标记不被存储,只有中间管道级的K值和TCP被存储。
如附图19所示,每个管道级还有一个异常标志和一个停滞标志。对于异常和停滞情况,需要采用不同的方法处理。
对于异常处理情况,处理器中可能出现一些无法恢复的异常情况,如由于试图对一个无效操作码进行解码而导致的程序错误;也可能出现其它一些消除异常原因后可恢复的异常情况,如虚拟存储器转换错误。这样的异常情况在任何管道级都可能出现。当检测到异常情况时,出现异常的管道级i(“异常管道级”)设置其异常标志。处于其后i+1级以后的指令必须执行完,而处于异常级i以及之前的所有级的指令必须有效废除。
因此,当管道级i中出现异常时,与异常管道级i对应的TCP寄存器级84i以及之前所有的寄存器级840至84i-1将它们的TCP复位为0(不需要重命名操作)。K寄存器级820至82i-1中的K值不变,但标明为无效。在每次处理器循环中,处理异常情况的同时TCP及K寄存器级继续向前推进。处于异常管道级i之后的K及TCP寄存器级继续正常运行,以保证K值和TCP传递到寄存器级823至843中。由于0至i-1级的TCP组已被复位为0,当它们到达级843时不会影响完成标记。同样地,只有前一级823中有一个有效K值且没有未处理完的异常或停滞情况时,完成K值更新单元182才更新其后级824中的完成K值。这样,即使0至i-1级的K值到达级823,完成K值也不会更新,因为这些K值已在出现异常时被标明为无效。通过这种方法,就可保证寄存器级824至843中的内容对应于最后执行完的指令状态。
一旦在出现异常情况之前最后一条有效指令到达完成级(即最后管道级),标记存储部分1340至13431内存放的完成标记就被重载至标记存储部分340至3431。同样地,寄存器824内存放的完成K值也通过复用器86被重载至820。
在停滞控制情况下,处理器试图一直保持管道满载以保证指令高速执行。然而,有可能因为某种原因(可能由于指令需要访问一个低速存储器或计算一个多循环),指令没能在一个时钟周期内穿过某个管道级。这样的事故被视为停滞。当i级停滞时,位于i-1级的指令不能前进,即使位于i-1级的指令自身并未停滞。它又返回来令i-2级停滞,依次轮回至0级。
在附图19所示实施例中,当i级停滞时,与停滞管道级i及其以前所有的寄存器级相对应的K寄存器级820至82i以及TCP寄存器级840至84i将其现有的值在停滞期间进行再循环。作为0级输入的TCP在停滞期间被完成标记更新单元184复位至0(不需要重命名)。尽管TCP寄存器级84i+1至843从前面的停滞级收到“空”TCP(复位至0)以防止停滞管道级的TCP影响完成标记,其它的寄存器级82i+1至823以及84i+1至843仍继续管道化操作,直到停滞结束,停滞的指令开始前进以退出管道为止。
附图20更详细地示出了TCP寄存器级的组成部分。附图20只示出了级840、841及842的电路组成,而且只示出了处理其中一个TCP的电路组成。其它每个TCP都有相同或类似的电路。
如附图20所示,每个寄存器级中包含一个寄存器基本单元102,以及由一个复用器104与一个逻辑门106组成的停滞控制电路。复用器104有一个选择输入连接相应管道级的停滞标志。若某级中出现停滞,其停滞标志就被置为1;否则就被置为0。复用器104还有第一及第二数据输入。当停滞标志无效(0)时,第一数据输入(“0”)被选中;当停滞标志有效(1)时,第二数据输入(“1”)被选中。复用器104的第二输入为相应寄存器级中寄存器基本单元102的数据输出Q的反馈信号。这样,当某级的停滞标志无效时,来自前一寄存器级的TCP参数在下一个有效时钟沿被存入该级的寄存器基本单元102中;而当停滞标志有效时,该级的寄存器基本单元102内存有的当前TCP状态通过复用器104,从寄存器基本单元102的输出返回到输入端进行重复循环,使得当前TCP状态保持不变。
每级中的逻辑门106接收停滞标志和该级中寄存器基本单元102的当前状态。只要停滞标志有效,逻辑门106的输出就为无效(0)。
这样,当在管道级i中设置停滞标志时,寄存器级i-1中的寄存器基本单元102i-1送给下一寄存器级i的输入端一个无效的标记变更参数。这种方法可保证在停滞期间,对于未停滞管道级i+1及其以后级中的指令,完成标记(存放在标记存储部分1340至13431中)会根据需要改变(循环),然后停止改变,而不论停滞级0至i中寄存器基本单元内存放的TCP为何种状态。
用于处理与RESET信号相应的TCP参数的TCP寄存器级不必包含逻辑门106,即每个寄存器基本单元102i的输出Q直接连到复用器104i+1的“0”输入上。若所有寄存器级820至823中的K值都有效且没有未处理完的异常或停滞情况,用于RESET信号的TCP寄存器最后一级的输出则仅用来更新(复位)完成标记。
如前所述,根据本发明实施例提供寄存器文档电路,其静态命名与可重命名区之间可以有一个完全可编程的边界,而同时可使选择及访问所需物理寄存器所占用的时间最少。一般地,访问一个处理器寄存器文档的关键路径是针对整个处理器的关键路径之一,因此减少寄存器文档内的路径延时可使整个处理器采用更高频率的时钟。
虽然前面结合实例的说明基于具备软件管道执行能力的VLIW处理器,本发明也适用于不具备这些特点的处理器。实施本发明的处理器可作为处理器“内核”安装在高度集成的“位于一个芯片上的系统”(SOC)中,这种系统可用于多媒体应用程序、网络路由、视频移动电话、智能汽车、数字电视、语音识别、三维游戏等。
权利要求
1.一种寄存器文档电路,其中包括多个物理寄存器;多个标记存储部分,分别对应于物理寄存器,其中每一个部分存放表示一个逻辑寄存器ID的标记,该ID被分配给相对应的物理寄存器;寄存器选择装置,用于接收逻辑寄存器ID并选择所述标记与收到的逻辑寄存器ID相匹配的那一个物理寄存器;标记变更装置,可通过将至少一个标记存储部分存放的标记转移到另一个所述标记存储部分,变更所存放的标记,从而改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系。
2.根据权利要求1的电路,其中所述标记变更装置可使所存的标记在与部分或全部多个物理寄存器分别对应的标记存储部分中循环移动。
3.根据权利要求1或2的电路,其中还包括物理寄存器指定装置,用于从所述多个寄存器中指定至少一个物理寄存器作为静态命名的物理寄存器,其所述标记不能通过所述标记变更装置进行改变。
4.根据权利要求3的电路,其中所述物理寄存器指定装置将所述多个物理寄存器分成至少一个静态命名区和一个动态命名区,所述每个区内有一个或多个物理寄存器;所述标记变更装置可以改变所述动态命名区内每个物理寄存器所存的标记,但不能改变所述静态命名区内每个物理寄存器所存的标记。
5.根据权利要求3或4的电路,其中所述静态命名区和所述动态命名区之间的边界可编程。
6.根据前述任一权利要求的电路,其中每个物理寄存器相对应的标记存储部分在所述多个标记存储部分中有一个预先确定的源标记存储部分;以及对于所述每个标记存储部分,所述标记变更装置可将预先确定的源标记存储部分中存放的标记移到该标记存储部分中。
7.根据前述任一权利要求的电路,其中每个物理寄存器相对应的标记存储部分在多个标记存储部分中有两个或更多个预先确定的源标记存储部分;以及对于所述每个标记存储部分,所述标记变更装置可从所述两个或更多个预先确定的源标记存储部分中选择一个,并将选中的那个源标记存储部分中存放的标记移到该标记存储部分中。
8.根据权利要求6或7的电路,其中,对于每个物理寄存器相对应的标记存储部分,该这样的或一个这样的源标记存储部分为与相邻的那个物理寄存器相对应的标记存储部分。
9.根据权利要求6至8中之一的电路,其中,对于每个物理寄存器相对应的标记存储部分,该这样的或一个这样的源标记存储部分为最末端物理寄存器相对应的标记存储部分。
10.根据权利要求6至9中之一的电路,其中,对于每个物理寄存器相对应的标记存储部分,该这样的或一个这样的源标记存储部分为再下一个物理寄存器相对应的标记存储部分。
11.根据权利要求6至10中之一的电路,其中,对于每个物理寄存器相对应的标记存储部分,该这样的或一个这样的源标记存储部分为倒数第二个物理寄存器相对应的标记存储部分。
12.根据前述任一权利要求的电路,其中还包括复位装置,用来将每个物理寄存器内的标记设置为预先选定的分配给该物理寄存器的初始逻辑寄存器ID。
13.根据前述任一权利要求的电路,其中包括多个标记管理单元,分别对应于物理寄存器,其中每个标记管理单元包含对应于该单元相应物理寄存器的所述标记存储部分,每个标记管理单元可以改变存放在其自身单元所述标记存储部分的标记;两个或更多个所述标记管理单元,可以同时引起所述映象关系的所述改变。
14.根据权利要求13的电路,其中每个标记管理单元中包含一个复用器,该复用器有用于接收不同备选标记值的多个输入,还有一个输出与该单元中所述标记存储部分相连;该复用器可根据送到该标记管理单元上的一个或多个控制信号,将从不同的备选标记值中被选取的一个送到所述标记存储部分存放。
15.根据权利要求14的电路,其中还包括物理寄存器指定装置,用于从所述多个寄存器中指定至少一个物理寄存器作为静态命名的物理寄存器,其所述标记不能通过所述标记变更装置进行改变,其中该这样的或一个这样的控制信号表明那个标记管理单元相应的物理寄存器是否为这样的一个静态命名寄存器。
16.根据权利要求14或15的电路,其中每个物理寄存器相对应的标记存储部分在多个标记存储部分中有两个或更多个预先确定的源标记存储部分;以及对于所述每个标记存储部分,所述标记变更装置可从所述两个或更多个预先确定的源标记存储部分中选择一个,并将选中的那个源标记存储部分中存放的标记移到该标记存储部分中;所述标记管理单元根据所述控制信号中至少一个来选择所述源标记存储部分。
17.根据前述任一权利要求的电路,其中所述寄存器选择装置中包含多个比较器单元,分别与物理寄存器对应,当某个物理寄存器内存放的标记与所述收到的逻辑寄存器ID匹配时,比较器单元可产生一个选择信号。
18.根据权利要求17的电路,其中还包括多个输出单元,每一个对应物理寄存器的一个不同的位,而且每一个与所述多个比较器单元相连以接收每个比较器单元产生的所述选择信号;每个输出单元对所述比较器单元之一产生的所述选择信号作出响应,以读取该比较器单元相对应的所述物理寄存器存放的数据字的所述相对应的位。
19.根据权利要求18的电路,其中所述寄存器选择装置以及所述多个输出单元属于该电路的第一读取端口;该电路中还可以增加至少一个包含这样的寄存器选择装置和这样的多个输出单元的读取端口。
20.根据前述任一权利要求的电路,适用于有一系列用于执行指令的管道级的处理器,其中所述多个标记存储部分组成位于该系列第一管道级的第一组标记存储部分,以存放各工作标记;该电路中还包括第二组标记存储部分,分别对应于物理寄存器,用于存放与工作标记一一对应的各完成标记;完成标记更新装置,与所述第二组标记存储部分连接,用于随指令沿管道级往前执行时更新完成标记;以及工作标记重载装置,与所述第一及第二组标记存储部分连接,若最后一条有效指令在出现异常情况之前已到达最后一个管道级,该装置可采用其相应的完成标记对每个工作标记进行重载。
21.根据权利要求20的电路,其中所述完成标记更新装置中包含一系列寄存器级,除所述最后一个管道级以外的每个管道级都对应于所述系列寄存器级中之一,所述第一寄存器级用于接收并存放至少一个标记变更参数,该参数表示当一条指令进入管道时所应用的一次标记变更,除所述第一寄存器级以外的每个所述寄存器级与相邻前一级连接,以便接收并存放所述至少一个标记变更参数。
22.根据权利要求21的电路,其中,当管道级i中出现异常时,所述完成标记更新装置可根据寄存器级i+1及其之后的任意寄存器级内所存的标记变更参数更新完成标记,避免根据寄存器级0至i内存放的标记变更参数更新完成标记。
23.根据权利要求21或22的电路,其中,当管道级i中出现停滞时,所述完成标记更新装置可根据寄存器级i+1及其之后的任意寄存器级内所存的标记变更参数,在停滞期间更新完成标记,保持寄存器级0至i内存放的标记变更参数不变,直至停滞解除,使得停滞解除时那些保持不变的标记变更参数可用于更新完成标记。
24.寄存器文档电路,其中包括多个物理寄存器;多个标记存储部分,分别对应于物理寄存器,其中每一个部分存放表示一个逻辑寄存器ID的标记,该ID被分配给相对应的物理寄存器;寄存器选择装置,用于接收逻辑寄存器ID并选择所述标记与收到的逻辑寄存器ID相匹配的那一个物理寄存器;标记变更装置,用于变更所存放的标记,从而改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系;物理寄存器指定装置,用于从所述多个寄存器中指定至少一个物理寄存器作为静态命名的物理寄存器,其所述标记不能通过所述标记变更装置进行改变。
25.寄存器文档电路,其中包括多个物理寄存器;多个标记管理单元,分别对应于物理寄存器,其中每个标记管理单元包含一个标记存储部分,用于存放表示分配给该单元相应物理寄存器的逻辑寄存器ID的标记,每个标记管理单元可以改变存放在其自身单元所述标记存储部分的标记;寄存器选择装置,用于接收逻辑寄存器ID并选择所述标记与收到的逻辑寄存器ID相匹配的那一个物理寄存器;两个或更多个所述标记管理单元,可以同时改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系。
26.适用于有一系列用于执行指令的管道级的处理器的寄存器文档电路,其中包括多个物理寄存器;第一组标记存储部分,分别对应于物理寄存器,位于系列中第一管道级,每一个用于存放表示分配给相应物理寄存器的逻辑寄存器ID的一个工作标记;第二组标记存储部分,分别对应于物理寄存器,用于分别存放与工作标记一一对应的完成标记;完成标记更新装置,与所述第二组标记存储部分连接,用于随指令沿管道级往前执行时更新完成标记;以及工作标记重载装置,与所述第一及第二组标记存储部分连接,若最后一条有效指令在出现异常情况之前已到达最后一个管道级,该装置可采用其相应的完成标记对每个工作标记进行重载。
27.一种处理器,其中包含根据前述任一权利要求的寄存器文档电路。
28.一种寄存器重命名方法,适用于有多个物理寄存器的寄存器文档电路,所述方法包括将标记存放在分别对应于物理寄存器的多个标记存储部分,所存的每一个标记表示分配给相应物理寄存器的一个逻辑寄存器ID;通过将至少一个标记存储部分存放的标记转移到另一个所述标记存储部分,变更所存放的标记,从而改变所述物理寄存器之一与至少一个逻辑寄存器ID之间的映象关系。
29.根据权利要求28的一种方法,其中包括使所存的标记在与部分或全部多个物理寄存器分别对应的标记存储部分中循环移动。
30.参照附图在前面进行了充分说明的寄存器文档电路。
31.参照附图在前面进行了充分说明的一种处理器。
32.参照附图在前面进行了充分说明的一种寄存器重命名方法。
全文摘要
可用于处理器或处理器内核中的寄存器文档电路,它包含多个物理寄存器(3文档编号G06F9/38GK1357825SQ0113728
公开日2002年7月10日 申请日期2001年11月2日 优先权日2000年11月2日
发明者乔纳森·迈克尔·哈里斯, 艾德里安·菲利普·怀斯, 奈杰尔·彼德·托法姆 申请人:斯罗扬有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1