限制指令宽度处理器中增加寄存器寻址空间的系统与方法

文档序号:6633904阅读:206来源:国知局
专利名称:限制指令宽度处理器中增加寄存器寻址空间的系统与方法
技术领域
本发明是有关于一种计算机架构,尤其是一种计算机处理器。
背景技术
超长指令字或者VLIW(very long instruction word;VLIW)处理器是为公知技术,而图1是展示其一范例。如图1中所示,一传统处理器是包含一指令译码器105、一控制次序硬件115、一输入/输出缓冲器130、一个或多个寄存器阵列110以及一个或多个功能单元120(其亦被称为发送槽(issue slot))。
在此架构中,指令是从一外部资源进入指令译码器105。指令译码器105将所接收的指令转换成为一较宽但却较容易处理的已解码内部格式。随后此已译码的指令是用以控制数据路径组件(包含输入/输出缓冲器130、寄存器组110以及功能单元120)的操作。由于传统处理器的各项操作是为熟习此技术者所知悉,因此在这里仅提供此类处理器的简短讨论。
保留暂时工作数据的寄存器组110,其相对于外部存储器而言是可相当快速地存取数据。功能单元(或称为发送槽)120是执行与处理器相关的实际计算工作。
在图2中,其展示控制次序硬件115、寄存器组110及功能单元120更多细节。如图2中所示,控制次序硬件115发送一指令字组,此指令字组包含与寄存器组110相关的控制位(RFC)以及与每一功能单元120相关的控制位(FnC)。在此多功能单元120a、…、120d的条件下,图2的处理器是可在每一脉冲周期执行多项操作。一更具体的范例是提供参照图3。
图3具体展示控制次序硬件115是耦合至一64信道、32位寄存器组310以及四个功能单元322、324、326、328。在具有此四个功能单元322、324、326、328的条件下,图3的处理器是可在每一脉冲周期执行四项操作。为图解说明的目的,图3的四个功能单元是一第一加法器322、一第二加法器324、一第一乘法器326以及一第二乘法器328。因此,上述的四项操作是包含两加法运算以及两乘法运算。
每一功能单元322、324、326、328是具有两读取端(功能单元透过此读取端接收数据)以及一写出端(功能单元透过写出端输出数据)。换言之,就图3的范例而言,每一功能单元是接收两个值,并以此两个值执行一运算且输出所执行运算的结果的单一值。具体而言,如图3所示,第一加法器322从寄存器组310接收R1与R2,并且亦从控制次序硬件315接收控制信号A1C。第一加法器322响应控制信号A1C执行一R1与R2的加法运算,然后运算的结果是输出如W1。同理,第二加法器324接收R3与R4,并且响应控制信号A2C输出W2。第一乘法器326接收R5与R6,并且响应控制信号M1C输出W3,以及第二乘法器328接收R7与R8,并且响应控制信号M2C输出W4。
当寄存器组310是一64信道(entry)、32位寄存器组时,则存取此64信道的寄存器组310是需要6位。因此,如果每一指令是具有一2位运算字段以及6位用以存取此64信道的寄存器组310,则处理器将操作80位指令字组(在此标示为INST[79:0])。例如R1至R8的值(即出现在寄存器组310的每一读取端的值)、W1至W4的值(即出现在寄存器组310的每一写出端的值)以及用于每一功能单元的控制位是可被表示为R1=INST[79:74]R2=INST[73:68]W1=INST[67:62]A1C=INST[61:60]R3=INST[59:54]
R4=INST[53:48]W2=INST[47:42]A2C=INST[41:40]R5=INST[39:34]R6=INST[33:28]W3=INST[27:22]M1C=INST[21:20]R7=INST[19:14]R8=INST[13:08]W4=INST
M2C=INST[1:0]在图3的64信道、32位寄存器组310及要求2位运算的条件下,寄存器组需要(64信道)×(32位)×(8读取端+4写出端口)=24576位众所周知,就极长指令(VLIW)处理器而言,每一指令在每一运算是经常包含数个操作数的地址字段。在此类处理器的高指令宽度的条件下,当芯片外接指令(off-chipinstruction)的效率减少时,晶载储存(on-chip storage)的成本则增加。此经常为系统性能的主要限制因素。至少就上述的理由,在此工业界是存在一迄今仍未被指出的需求。
参考附图有利于更好的理解本发明内容。图中的组成部分与本发明没有比例关系,而只是为了清楚的表示本发明。另外,在几个不同视图中的相似标号代表相应部分。
在一些较佳实施例中,提供了一种处理器寄存器空间的修改方案以容许由指令对寄存器进行较大量的存取。这种修改是允许较短指令字组用于多发送装置,由此减少指令的存取带宽并且相应地减少与指令字组相关的晶载储存成本。
其它系统、装置、方法、特征及优点在依据下列的图示及详细描述后,对于熟习该项技术者将是或变成是显而易见的。也就是说,所述附加系统、方法、特征及优点均为本发明的保护范围,均受到从属权利要求的保护。

发明内容
本发明的目的在于,提供一种限制指令宽度处理器中增加寄存器寻址空间的系统与方法,其可减少指令的存取带宽并且相应地减少与指令字组相关的晶载储存成本。
本发明一种指令执行系统,其特征在于,包括k个功能单元,k是一整数,每一个所述功能单元包含一第一读取输入;一第二读取输入;及一写输出;k个2×1多任务器,每一个所述多任务器对应至所述功能单元其中之一,每一个所述多任务器包括一控制线;一第一输入;一第二输入;及一输出,电性耦合至对应所述功能单元的所述第二读取输入;k个局部寄存器组,每一个所述局部寄存器组对应至所述多任务器其中之一,每一所述局部寄存器组更对应至所述k个功能单元其中之一,每一个所述局部寄存器组包含n个寄存器,n是一整数,每一该n个寄存器是一m位寄存器,m是一整数;一第一局部读取端,电性耦合至对应功能单元的该第一读取输入;一第二局部读取端,电性耦合至对应2×1多任务器的该第一输入;及一局部写入端,电性耦合至对应功能单元的该写输出;总体寄存器组,包含n个寄存器,每一该n个寄存器是一m位寄存器;一总体读取端,电性耦合至每一2×1多任务器的该第二输入;及一总体写入端;以及一k×1多任务器,包含一控制线;k个输入,每一输入对应至该k个功能单元其中之一,每一输入是电性耦合至对应功能单元的该写输出;及一输出,电性耦合至该总体寄存器组的该总体写入端。
还包括一指令译码器,电性耦合至每一2×1多任务器的该控制线,该指令译码器还电性耦合至该k×1多任务器的该控制线,该指令译码器还提供一总体控制输入至该k×1多任务器,该局部控制输入是与该总体控制输入相关联。
其中,所述的m是2的幂次方。
其中上述的n是2的幂次方。
其中上述的k是2的幂次方。
本发明一种指令执行系统,其特征在于,包括k个功能单元,k是一整数,每一功能单元包含一第一读取输入;一第二读取输入;及一写输出;k个2×1多任务器,每一2×1多任务器对应至该k个功能单元其中之一,每一2×1多任务器包含一控制线;
一第一输入;一第二输入;及一输出,电性耦合至对应功能单元的该第二读取输入;k个局部寄存器组,每一局部寄存器组对应至该k个2×1多任务器其中之一,每一局部寄存器组还对应至该k个功能单元其中之一,每一局部寄存器组包含n个寄存器,n是一整数,每一该n个寄存器是一m位寄存器,m是一整数;一第一局部读取端,电性耦合至对应功能单元的该第一读取输入;一第二局部读取端,电性耦合至对应2×1多任务器的该第一输入;及一局部写入端,电性耦合至对应功能单元的该写输出;以及一总体寄存器组,包含n个寄存器,每一该n个寄存器是一m位寄存器;k个总体读取端,每一总体读取端对应至该k个2×1多任务器其中之一,每一总体读取端是电性耦合至对应2×1多任务器的该第二输入;及k个总体写入端,每一总体写入端对应至该k个功能单元其中之一,每一总体写入端是电性耦合至对应功能单元的该写输出。
还包括一指令译码器,电性耦合至每一2×1多任务器的该控制线,该指令译码器是配置以提供一局部控制输入至该2×1多任务器。
其中上述的m是2的幂次方。
其中上述的n是2的幂次方。
其中上述的k是2的幂次方。


如下几个实施例和附图详细揭露本发明,然而并非用于限定本发明。相反的,对发明中特征的选择、修改和等同替换都在保护范围的内,其中图1是一传统中央处理单元或处理器的方块图;图2是图1的传统中央处理单元的控制次序硬件、寄存器组及功能单元的一般排列的较详细的方块图;图3是图2的组件的一具体范例的方块图;图4是一提供较短指令字组处理器的一较佳实施例的方块图;以及图5是一容纳较短指令字组处理器的另一较佳实施例的方块图。
具体实施例方式
在极长指令(VLIW)处理器内的指令,其等在每一运算是经常包含数个操作数的地址字段。这些高指令宽度是导致此类指令的晶载储存(on-chip storage)成本增加。并且相应地,这些高指令宽度亦降低了系统效率。此经常为系统性能的主要限制因素。
在处理器空间一具体架构内配置组件的技术是被揭露,由此容许在单一脉冲周期内以较短指令字组进行多个运算。这些缩短的指令字组是由附加的硬件组件提供至处理器的寄存器空间以及一额外的预先处理步骤,此额外的预先处理步骤可由编译器在码产生期间执行。图4及图5揭露数个配置容纳缩短指令字组处理器的实施例。
如图4所示,处理器空间是包含一总体寄存器组210及多个局部寄存器组220a、…220d,其是策略性配置用以减少与指令晶载储存相关的成本。为了与那些图2的传统处理器100内所示的类似的晶载成本比较,相对的寄存器值是被选取用于图4所示的处理器的实施例。
进行一相当对等的比较,图4的总体寄存器组210是一具有一单一读取端GR及一单一写入端口GW的16信道、32位的寄存器组210。同理,图4的局部寄存器组220a、…、220d亦展示是16信道、32位寄存器组,每一局部寄存器组是具有两读取端以及一单一写出端。此特殊的配置使得一晶载成本是{(4局部)×(16信道)×[(32位)×(2读取端+1写出端)]}+{(1总体)×(16信道)×(32位)×(1读取端+1写出端)]}=7168位与图3所示的传统处理器,其导致的需求量大约为(64信道)×(32位)×(8读取端+4写出端口)=24576位两相比较下,则图4的处理器使得寄存器组占据硅晶范围减少将近71%。
并且,如图4所示,每一功能单元(或发送槽)240a、…、240d是具有通道至一局部寄存器组220a、…、220d以及总体寄存器组210。因此,当每一局部寄存器组220a、…、220d与总体寄存器组210是配置成16信道、32位的寄存器组时,则每一功能单元220a、…、220d是具有信道至共32个寄存器(例如16个总体寄存器以及16个局部寄存器)。因此每一功能单元仅要求5位用以寻址32个寄存器,而不是要求6位用以寻址64个寄存器(如图2所示)。
因此,不同于图2的传统结构,其要求(4指令/频率)× =80位指令在图4的实施例的处理器,其要求(4指令/频率)×[2运算位+{(2输入端口+1输出端口)}×5寻址位]=68位指令相应地,每一指令的大小(例如每一指令的位数)是减少将近15%。
更广泛地,就执行k个指令于一单一脉冲周期的实施例而言,当运算字段是j位且每一寄存器组是具有n个寄存器时,则指令字组的大小将为(k指令/频率)×{j位运算字段+[(2输入端+1输出端)×(2×√n寄存器)]}并且在k指令字组处理器内的寄存器组对应的晶载成本4各为(k局部寄存器组)×(n寄存器/组×m位×[2输入端口+1输出端])+(1总体寄存器组)×(n寄存器/组×m位×[1输入端口+1输出端])为了在晶载硅晶范围内达成此类的增加,并且相对增加处理器效率,各种寄存器组的布局是被修改,由此提供比传统处理器所允许对寄存器空间进行更大量的存取。修改布局的一较佳实施例,如图4所示,其使用多任务器230a、…、230d,这些多任务器230a、…、230d是选择性地提供从各寄存器组210、220a、…、220d所接收的输入,并且输出至功能单元240a、…、240d。每一多任务器230a、…、230d对应至一局部寄存器组220a、…、220d与一功能单元240a、…、240d。
图4所示是一般k指令字组处理器的部分,其中k是任何非负数的整数。此类k指令字组的一处理器包含k个功能单元,每一功能单元是具有一第一读取输入、一第二读取输入以及一写出输出。在图4的具体实施例中,k的值是为4,由此容许透过4个功能单元240a、…、240d在每一脉冲周期执行4个指令。
对应至k个功能单元,k指令字组处理器是包含k个2×1多任务器(2输入1个输出的多任务器)。每一2×1多任务器是对应至功能单元其中之一,且每一2×1多任务器是具有一第一输入、一第二输入以及一输出,此输出是电性耦合至所对应的功能单元的第二读取输入。此外,每一2×1多任务器是包含一控制线(未绘出)用以选取两输入其中之一。再者,对图4而言,其中k=4,有4个2×1多任务器230a、…、230d。
在k个2×1多任务器之外,k指令字组处理器包含k个局部寄存器组,每一局部寄存器组是对应至一个别2×1多任务器与一个别功能单元。每一k个局部寄存器组是包含n个寄存器,且每一寄存器是可储存m个位。其中n与m是非负数的整数,而较理想的情况是n为2的幂次方(a power of2)。而每一局部寄存器组是具有至少两读取端。当第二局部读取端是电性耦合全其所对应的2×1多任务器的第一输入时,则第一局部读取端是电性耦合至其所对应的功能单元的第一读取输入。除了读取端口之外,每一寄存器组是包含一写出端,此写出端是电性耦合至其所对应的功能单元的写出输出。图4所示是4个局部寄存器组220a、…、220d,而其等是对应至个别2×1多任务器230a、…230d与个别功能单元240a、…、240d。
k指令字组处理器还包含一个k×1多任务器(亦即k个输入一个输出的多任务器)。每一k输入是电性耦合至k个功能单元其中之一,由此k个功能单元的写出输出可出现在所对应的k×1多任务器的k个输入。k×1多任务器是具有一控制线用以选取k个输入其中之一,而被选取的输入是被放置于k×1多任务器的输出。因此,假设k=4,第一功能单元240a的输出是被放置于4×1多任务器250的第一输入;第二功能单元240b的输出是被放置于4×1多任务器250的第二输入;第三功能单元240c的输出是被放置于4×1多任务器250的第三输入…等等。
k指令字组处理器还包含一总体寄存器组的n个寄存器。每一n个寄存器是一m个位寄存器。总体寄存器组是包含一总体读取端以及一总体写入端。而总体写入端是耦合至k×1多任务器的输出,因此k×1多任务器的输出是显现在总体寄存器组的写入端口。而总体寄存器组的读取端口是电性耦合至每一2×1多任务器的第二输入。
当图4的配置是包含额外组件(例如各种多任务器250、230a、…、230d)时,则可以推知的是,可用相当少数的附加组件而达到较高的效率。
图4的k指令字组处理器的效能是可由多端化(multi-porting)每一寄存器组而增加。当寄存器组的多端口化可能增加效能时,则在寄存器组所增加的多个输出/入端亦增加了晶裁成本。其中多端口寄存器组的一较佳实施例是参照如图5所示。
如图5所示,图4的4×1多任务器250与1读1写的总体寄存器组210是被一单一4读4写的总体寄存器组510所替代。在如此替代的条件下,则每一功能单元240a、…、240d此刻将其等的输出W1、W2、W3、W4写至总体寄存器组510的一相对写入输入GW1、GW2、GW3、GW4。
因此,对k指令字组处理器而言,是将使用一k读k写的总体寄存器组。相应地,其晶载成本是计算如下(k局部寄存器组)×(n寄存器/组×m位×[2读取+1写出])+(1总体寄存器组)×(n寄存器/组×m位×[k读取+1写出])并且,更具体对一4指令字组处理器而言,其晶载成本将为(4局部寄存器组)×(16寄存器/组×32位×[2读取/1写出])+(1总体寄存器组)×(16寄存器/组×32位×[4读取+4写出])=10240位如图4及图5所示的实施例,对一具有n个寄存器及可在每一脉冲周期发送k个指令的机器而言,在传统处理器内的单一排(bank)寄存器是由将近k排n/(k+1)寄存器所替代,每一用于一功能单元(或发送槽)。此外,由任何功能单元内的指令,一总体排寄存器是被提供用以存取。处理器空间如此重新排列使得晶载硅晶范围大量的节省,并且亦使得指令字组大小减少。由于许多高速处理器的效能是受限于指令字组大小(或宽度),因此由提供一容许较小指令字组的硬件配置增加处理器或系统的效能。
虽然示范的实施例已展现并且描述,然而对于熟习该项技术者而言是显而易知的是改变数量、修改或是对所描述发明的替换。例如当所揭露的实施例是具有32位寄存器时,熟习该项技术者将可推知各种大小的寄存器是可在本发明中使用而对本发明范围并无不利的影响。例如8位寄存器、16位寄存器、24位寄存器、64位寄存器、128位寄存器或是任何m位寄存器(m是一整数),其等可轻易替代32位寄存器。
同理,当一较佳实施例是展现64个寄存器时,寄存器的数量是可被修改以适应各种设计的需要。在此关系中,寄存器排的数量并非用以当成一限制条件,仅提供用以说明的目的,且n个寄存器排是可被实现,其中n是一整数。
同理,当在每一脉冲周期发送4个指令的一机器展现时,则熟习该项技术者将可推知发送多指令机器,其无论同时发送的指令数量为何,是可使用本发明所揭露的结构而设计。在此关系中,是可推知任何k指令机器(其中k是一整数)是可依照所揭露的实施例而设计。并且,当指令如所揭露的实施例所示是具有2位运算字段时,则熟习该项技术者将可推知任何j位运算字段(其中j是一整数)是可轻易地被实现。亦可推知的是,j、k、m以及n是可为任意整数值,在此关系中,j、k、m以及n是可为不同的整数值,或者,在一些实施例中,其等亦可为相同的整数值。
并且,在所揭露架构的条件下,熟习该项技术者将可以决定在码产生期间由编译器所要求的对应预先处理步骤。因此此处并不讨论其细节。
所有此类的改变、修改以及替换应被了解是在本揭露的范围内。
显然地,依照上面实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述详细的描述外,本发明还可以广泛地在其它的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。
权利要求
1.一种指令执行系统,其特征在于,包括k个功能单元,k是一整数,每一个所述功能单元包含一第一读取输入;一第二读取输入;及一写输出;k个2×1多任务器,每一个所述多任务器对应至所述功能单元其中之一,每一个所述多任务器包括一控制线;一第一输入;一第二输入;及一输出,电性耦合至对应所述功能单元的所述第二读取输入;k个局部寄存器组,每一个所述局部寄存器组对应至所述多任务器其中之一,每一所述局部寄存器组更对应至所述k个功能单元其中之一,每一个所述局部寄存器组包含n个寄存器,n是一整数,每一该n个寄存器是一m位寄存器,m是一整数;一第一局部读取端,电性耦合至对应功能单元的该第一读取输入;一第二局部读取端,电性耦合至对应2×1多任务器的该第一输入;及一局部写入端,电性耦合至对应功能单元的该写输出;总体寄存器组,包含n个寄存器,每一该n个寄存器是一m位寄存器;一总体读取端,电性耦合至每一2×1多任务器的该第二输入;及一总体写入端;以及一k×1多任务器,包含一控制线;k个输入,每一输入对应至该k个功能单元其中之一,每一输入是电性耦合至对应功能单元的该写输出;及一输出,电性耦合至该总体寄存器组的该总体写入端。
2.如权利要求1所述的指令执行系统,其特征在于,还包括一指令译码器,电性耦合至每一2×1多任务器的该控制线,该指令译码器还电性耦合至该k×1多任务器的该控制线,该指令译码器还提供一总体控制输入至该k×1多任务器,该局部控制输入是与该总体控制输入相关联。
3.如权利要求1所述的指令执行系统,其特征在于,其中,所述的m是2的幂次方。
4.如权利要求1所述的指令执行系统,其特征在于,其中上述的n是2的幂次方。
5.如权利要求1所述的指令执行系统,其特征在于,其中上述的k是2的幂次方。
6.一种指令执行系统,其特征在于,包括k个功能单元,k是一整数,每一功能单元包含一第一读取输入;一第二读取输入;及一写输出;k个2×1多任务器,每一2×1多任务器对应至该k个功能单元其中之一,每一2×1多任务器包含一控制线;一第一输入;一第二输入;及一输出,电性耦合至对应功能单元的该第二读取输入;k个局部寄存器组,每一局部寄存器组对应至该k个2×1多任务器其中之一,每一局部寄存器组还对应至该k个功能单元其中之一,每一局部寄存器组包含n个寄存器,n是一整数,每一该n个寄存器是一m位寄存器,m是一整数;一第一局部读取端,电性耦合至对应功能单元的该第一读取输入;一第二局部读取端,电性耦合至对应2×1多任务器的该第一输入;及一局部写入端,电性耦合至对应功能单元的该写输出;以及一总体寄存器组,包含n个寄存器,每一该n个寄存器是一m位寄存器;k个总体读取端,每一总体读取端对应至该k个2×1多任务器其中之一,每一总体读取端是电性耦合至对应2×1多任务器的该第二输入;及k个总体写入端,每一总体写入端对应至该k个功能单元其中之一,每一总体写入端是电性耦合至对应功能单元的该写输出。
7.如权利要求6所述的指令执行系统,其特征在于,还包括一指令译码器,电性耦合至每一2×1多任务器的该控制线,该指令译码器是配置以提供一局部控制输入至该2×1多任务器。
8.如权利要求6所述的指令执行系统,其特征在于,其中上述的m是2的幂次方。
9.如权利要求6所述的指令执行系统,其特征在于,其中上述的n是2的幂次方。
10.如权利要求6所述的指令执行系统,其特征在于,其中上述的k是2的幂次方。
全文摘要
本发明揭露一种指令执行系统,其中在一些较佳实施例中,此系统是包含多个功能单元、多个区域多任务器、多个局部寄存器组以及一个总体寄存器组,它们彼此通信地耦合并用以容纳多发送处理器内的缩短指令字组。这些组件是被安排用以容许由指令对寄存器进行较大量的存取,由此与传统极长指令处理器相比,是容许字组长度的减少。
文档编号G06F9/318GK1740964SQ20051008855
公开日2006年3月1日 申请日期2005年8月4日 优先权日2004年11月1日
发明者柏瑞斯·柏克潘克, 提莫·佩塔西, 德瑞克·格兰丁 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1