可配置处理器的制作方法

文档序号:6409695阅读:140来源:国知局
专利名称:可配置处理器的制作方法
技术领域
本发明涉及一种处理器,包括一个主控制器;多个处理单元,每个处理单元包含一个局部控制器和至少一个可由局部控制器控制的功能元件,局部控制器与主控制器相连;一个具有至少一条指令的指令集,该指令用于增加至少一个处理单元的活性。
背景技术
并行处理技术能够提高处理器的性能,要求在处理器结构中引入某些形式的并行性。处理器能够采用两种形式的并行性。第一种是指令并行性,该并行性中,在同一任务内同时执行多条指令。第二种涉及任务级并行性,在该并行性中,处理器同时执行多个任务。所必须执行的应用程序决定了所能采用的最大指令并行性和任务并行性的数量。
可配置处理器是一种预先制造的设备,能够经定制实现特定的功能。可配置处理器的一个例子是可缩放VLIW(Very Large InstructionWord超长指令字)处理器;也即,具有大量功能元件的VLIW处理器。VLIW处理器允许在程序中采用指令级并行性,从而同时执行多条指令。多个互相独立的功能元件用来并行执行多个操作。对于很长的指令,VLIW处理器执行多功能元件操作。每个VLIW在空间上对用于计算的处理器数据路径进行有效地配置,也即并行计算。
允许处理器并行执行多任务操作,从而如果在应用程序中存在任务级并行性,利用任务级并行性,能够提高VLIW处理器的灵活性。在传统的VLIW处理器中,只能执行单个任务,原因是只存在一个单一控制器以及相应的单一程序计数器。然而,具有分块控制器的VLIW处理器,能够利用任务并行性,该原理在Architecture and implementationof a VLIW supercomputer,Colwell R.et.al.,Proc ofSupercomputing’90,纽约,NY,美国,1990年10月12-16中有描述。每个控制器控制处理器中的一段,并且,原理上能够采用两种操作模式。在第一种模式中,控制器独立操作,而在第二种模式中,所有控制器连锁在一起。在第一种模式中,其实际效果相当于具有一个多处理器系统,允许同时执行多个任务并因此利用任务级并行性。在第二种模式中,获得了一种经典的VLIW处理器。在计算过程中能够在两种模式之间互相切换。
在处理器结构和其他方面引入并行性所带来的问题,涉及功能元件数目的增加以及相应的通信开销的增加,如果这些元件在给定的时间内不能得到充分使用,那么上述功能元件将导致不必要的功率消耗。例如,在具有分块控制器的可缩放VLIW处理器中,如果没有足够的指令并行性或者在特定的应用程序中存在任务级并行性,那么功能元件就保持未使用。但是这些功能元件仍然消耗相当可观的功率。
美国6219796的VLIW处理器具有针对专用指令的处理单元,例如睡眠指令,该指令至少部分关闭相关的执行元件。执行元件可以由另一条专用的指令再一次激活,例如,唤醒指令;或者激活命令的接收,也即一个非睡眠指令。因此,处理器的激活配置能够通过VLIW指令流中的专用指令加以改变,从而减少了活动处理器的功率消耗。专用指令由编译器插入到VLIW中。上述过程通过以下步骤得以实现,首先检测一段用于给定功能元件的非活动指令,例如NOPS,随后,用诸如睡眠指令替换所述指令段中的第一个非活动指令,而用唤醒指令替换指令段中的最后一个非活动指令。
现有技术处理器的一大缺点在于处理单元不能被完全关断。为了能处理再一次使单元处于活动状态的指令,某些控制逻辑不得不一直保持导通状态。
发明公布本发明的一个目标是提供一种能够完全关断一个或多个处理单元的处理器结构。该目标通过先前描述的处理器来实现,其特点在于主控制器经配置用来处理至少一个用于增加至少一个处理单元活性的指令。
处理器的一个或多个处理单元能够完全关断,包括对应的局部控制器,由于用于处理单元的导通的质量不是由对应的局部控制器处理,而是通过主控制器本身。在完全关断的处理单元中,避免了漏电流。在应用程序计算期间,依赖于应用程序中在给定的时刻,存在的大量指令级并行性和任务并级行性,主控制器能够关断处理单元,并能够随后将其导通。而且,可以通过降低性能来换取功率消耗的减少。在要求较低功率消耗的应用程序计算中,能够通过完全关断一个或多个处理单元来实现,从而以降低性能为代价,减少了功率消耗。
本发明的一个实施例其特点在于指令组还具有至少一个用于减少至少一个处理单元的活性的指令,而主控制器经配置处理用来减少至少一个处理单元的性活性的至少一条指令。该实施例的一大优点是通过执行一条指令,多个处理单元的活性可同时得到降低。此外,降低了局部控制器的复杂性。
本发明的一个实施例其特点在于用于减少至少一个处理单元活性的指令,是一个完全关断处理单元的指令,而用于提高至少一个处理单元活性的指令,是一个完全导通处理单元的指令。在具有大量处理单元的处理器中,如果在特定的应用程序中没有足够的指令级并行性和任务级并行性,那么某些处理单元将保持未使用。这些处理单元仍然消耗相当多的功率,而通过完全关断一个或多个处理单元,可以避免不必要的功率消耗。该实施例的优点是一个或多个处理单元的关断或导通能够在主控制器的硬件中实现,从而减小了VLIW的尺寸以及减少了处理单元关断和导通的响应时间。
本发明的一个实施例其特点在于处理单元还包含一个局部指令存储器。该实施例的一大优点是一旦处理单元被关断,对应的局部指令存储器也能够被关断。
本发明的一个实施例其特点在于处理单元还包括一个局部程序计数器。局部程序计数器允许处理单元独立于其他处理单元而运行。
本发明的一个实施例其特点在于所述至少一个处理单元进一步包括一个寄存器堆,寄存器堆可供功能元件访问。寄存器堆用于存储功能元件的输入数据并且允许对这些数据的快速访问,从而提高了处理器的性能。
本发明的一个实施例其特点在于寄存器堆是一个分布式寄存器堆。分布式寄存器堆的一大优点是每个寄存器堆段需要较少的读和写端口,从而导致较小的寄存器堆带宽。此外,与中央寄存器堆相比,它改善了处理器的可缩放性。
本发明的一个实施例其特点在于处理单元还包含一个通信网络,用于连接处理单元的功能元件和所述处理单元的寄存器堆。通信网络允许把功能元件输出的值直接从功能元件传递给寄存器堆,从而提高了处理器的性能。
本发明的一个实施例其特点在于通信网络是一个部分连接的通信网,也即并不是每个处理单元的功能元件和每个所述处理单元的寄存器堆都是相连的。部分连接的通信网络的使用减小了代码的尺寸,这归功于较小的可寻址寄存器以及较小的功率消耗。此外,与全连接通信网络相比,部分通信网改善了处理器的可缩放性。
本发明的一个实施例其特点在于处理器是一个可配置的处理器。可配置处理器的一大优点是其灵活性,这是由于处理器经定制为能够在某个特定领域的应用程序上计算,而不是某个特定的应用程序。
附图
简述所描述的实施例的特征将通过参考附图作进一步的阐述单一附图是根据本发明的一个实施例的VLIW处理器的示意图。
优选实施例说明参照附图,示意框图示出了一个VLIW处理器,包括多个处理单元1-9以及一个主控制单元11。每个处理单元1-7具有一个对应的功能元件FU1-FU7,一个对应的寄存器堆RF1-RF7,一个对应的局部控制器CTR1-CTR7,一个对应的局部程序计数器PC1-PC7和一个对应的局部指令存储器IM1-IM7。每个寄存器堆RF1-RF7可以由对应的功能元件FU1-FU7访问。处理单元9具有一个功能元件FU9,一个控制器CTR9,一个局部程序计数器PC9和一个局部指令存储器IM9。主控制单元11具有一个主控制器CTR11,一个程序计数器PC11和一条指令存储器IM11。处理器进一步包括一个通信网络13,用于连接功能元件FU1-FU9和寄存器堆RF1-RF7,允许从功能元件FU1-FU9中输出的值传递给寄存器堆RF1-RF7。主控制器CTR11经由连接15与局部控制器CTR1-CTR9相连。局部控制器CTR1-CTR9经由连接17-23互相连接。
每个局部控制器CTR1-CTR9控制其相应的处理单元1-9。主控制器CTR11控制主控制单元11。编译器把传输给处理器的VLIW分解成6个段,每个段传送给指令存储器IM1-IM11中的其中一个。每个局部指令存储器IM1-IM9保存待相应局部控制器CTR1-CTR9处理的指令。局部程序计数器PC1-PC9参考对应局部指令存储器IM1-IM9的地址,在存储器IM1-IM9中保存待处理的下一条指令。局部控制器CTR1-CTR9把待执行的下一条指令从对应的局部指令存储器IM1-IM9中取出,并对其进行解码。随后,所产生的操作代码和寄存器地址分别发送给对应的功能元件和寄存器堆。待主控制单元11处理的指令保存在指令存储器IM11中。程序计数器PC1参考存储器IM11的地址,存储器IM11的地址存储有待主控制器CTR11处理的下一条指令。主控制器CTR11从指令存储器IM11中取出待执行的下一条指令,对指令解码,并执行操作。
在第一种操作模式中,局部控制器CTR1-CTR9以所谓的锁步的模式运行。这种模式最好通过使所有局部程序计数器PC1-PC9指向对应局部指令存储器IM1-IM9的相同的逻辑地址。实际的局部程序计数器PC1-PC9取决于局部控制器CTR1-CTR9中的其中一个,并且经由连接17-23传递给其他的局部控制器。由于指令是从局部指令存储器IM1-IM9的相同的逻辑地址取出的,处理器以只在一个任务中有效执行一条VLIW,从而充当一个经典的VLIW处理器。在第二种操作模式中,每个局部控制器CTR1-CTR9独立工作,为用于取出指令的局部程序计数器决定自身的值。在这种操作模式中,存在一个多处理器系统,能够并行计算五个独立的任务。在不同的操作模式中,也能够是第一种操作模式和第二种操作模式的结合。例如,局部控制器CTR1和CTR3能够以锁步的模式运行,执行各自的任务,并且能够利用有限程度的指令级并行性。局部控制器CTR5-CTR9也能够以锁步的模式运行,执行各自的任务。与第一种操作模式相比,在这种模式中,处理器执行两个独立的任务,在每个任务内可以采用有限程度的指令级并行性,第一种操作模式中,所有局部控制器CTR1-CTR9以锁步模式运行。
主控制器处理用于减少以及增加一个或多个处理单元的活性的指令。保留在指令存储器IM11中的指令包含多个字段,表明了不得不由主控制器CTR11执行的操作的类型,以及该操作为哪个局部控制器所保留。例如,在必须减低处理单元1和3的活性的情况中,可以采用叫做“睡眠”的操作。这可以通过一条指令来实现,将该指令发送给指令存储器IM11,指令存储器包含一个字段“睡眠”和其他位字段,表明该指令仅仅为处理单元1和3而保留。可选地,操作可以编码成预定的指令字段,表明操作为哪个处理单元所保留。主控制器CTR11读取来自指令存储器IM11的指令,对指令进行解码并且随后减低处理单元1和3的活性。在后一时刻,处理单元1和3的活性可以通过所谓的“唤醒”操作来增加。上述发送给指令存储器IM11的指令,包含一个“唤醒”字段和其他的位字段,表明该指令仅仅为处理单元1和3而保留。主控制器CTR11读取来自指令存储器IM11的指令,对其进行解码并且随后增加处理单元1和3的性能。
编译器检测处理单元是否将具有一个非活动指令代码段。如果给定的应用程序不具有足够的指令级并行性或任务级并行性来为所有处理单元安排激活指令,可能出现该情况,。在非活动指令代码段的起始,向VLIW添加一条指令来减少对应处理单元的活性,而主控制单元11处理后面的指令。在处理单元非活动指令的代码断尾部,向VLIW添加一条指令来增加对应处理单元的活性,而后面的指令由主控制单元11操作。该指令也可以在非活动指令代码断的结束之前添加,其目的是在向处理单元安排活动指令之前,允许处理单元具有更多的时间来增加其活性。发送给主控制单元11的指令也可以引发两个或者更多处理单元同时减低各自的活性。随后,可以在不同的时间点执行引发增加各自的活性的指令,该时间点取决于各自非活动指令的代码段的尺寸。
在一个优选实施例中,“睡眠”操作完全关断一个或多个处理单元1-9,而操作“唤醒”则完全导通一个或多个处理单元1-9。该实施例的一大优点是最大限度上减少了功率消耗,同样降低了对应局部控制器,对应寄存器堆和对应处理单元的局部指令存储器的功率消耗。由于用于导通处理单元的指令并不是必须由对应的局部控制器来处理,而可以由主控制器CTR11来操作,处理单元能被完全关断。因为完全关断,处理单元的漏电流就可以得到避免。该实施例的另一大优点是允许降低性能来减少功率消耗。在计算要求低功率消耗的应用程序的情况下,这可以通过完全关断一个或多个处理单元,从而以降低性能的代价减少功率消耗来实现。在其他的实施例中,“睡眠”操作仅仅关断一个或多个处理单元1-9中所选择的部分,而“唤醒”操作仅仅导通一个或多个处理单元1-9中所选择的部分。例如,“睡眠”操作可能仅仅关断一个或多个处理单元对应的功能元件以及对应的逻辑控制器。该实施例的一大优点是,“唤醒”操作应用时刻,准备就绪的响应时间要比全关断处理单元要短。而且,局部指令存储器能够保留其所存储的指令,即使该存储器是一个易失性存储器。在另一个实施例中,局部指令存储器可以是非易失性存储器,比如ROM,这也能够使得局部指令存储器关掉后,不会丢失数据。
在不同的实施例中,由主控制器11处理的指令可以仅仅包含位字段,用于控制处理单元1-9中哪些应当关断或导通。该必须实现的操作是固定的,并且在主控制器CTR11的硬件中实现。该实施例的一大优点是减少了VLIW的尺寸并且减少了关断和导通处理单元的响应时间。
在其他的实施例中,在一条指令集中可以定义多种类型的指令来将处理单元置于经降低活性后的不同的状态。例如,可以定义两个降低功耗命令来减少全活性处理单元的活性其中一个命令将处理单元置于部分非活动状态,而另一个则完全关断处理单元。通过第二个降低功耗命令可以一步关断完全活动处理单元,或者通过第一个降低功耗指令随后为第二个降低功耗命令在连续两步内完全关断。而且,可以定义两个增加功耗命令来增加处理单元的活性,当被完全关断后其中一个命令将处理单元置于部分非活动状态,而另一个则引发处理单元使其成为全活性状态。通过第二个增加功耗命令可以一步导通完全关断的处理单元,或者通过第一个增加功耗指令随后为第二个增加功耗命令在连续两步内导通。在该实施例中,一个或多个处理单元可以置于比完全关断状态消耗更多功率的状态,但是也具有更短的再次准备就绪待用的响应时间。该实施例的一大优点是,通过将处理单元置于部分活动状态,减少了恢复完全活性所必须的时间延迟。
在另一个实施例中,用于减少处理单元1-9中某一个的活性的指令,直接发送给与之对应的局部指令存储器IM1-IM9,并且由对应的局部控制器CTR1-CTR9处理。随后,主控制器可以通过处理用于增加一个或多个处理单元的活性的指令来把处理单元置于更高的活动状态。该实施例的一大优点是降低了主控制器CTR11的复杂性以及主控制器CTR11和局部控制器CTR1-CTR9之间的通信开销。局部控制器能够完全关断与其对应的处理单元,包括其本身,由于主控制器CTR11总能把处理单元置于更高的活动状态。
在一个较好的实施例中,处理单元1-9具有一个对应的寄存器堆RF1-RF7用于存储功能元件的输入数据,并且允许对这些数据进快速访问。
在一个优选实施例中,寄存器对RF1-RF7是分布式寄存器堆,也即,多个寄存器堆,每个寄存器堆用于有限数量的功能元件,用来替代所有功能元件FU1-FU9的中央寄存器堆。分布式寄存器堆的一大优点是每个寄存器堆代码段要求较少的读和写端口,从而导致较少的寄存器堆带宽。而且,与中央寄存器堆相比,改善了处理器的可缩放性。
在一个较好的实施例中,存在一个通讯网络13,该通行网络连接功能元件FU1-FU9和寄存器堆RF1-RF7。通信网络13允许直接将功能元件FU1-FU9其中之一的输出值传递给寄存器堆RF1-RF7的其中之一。
在一个优选实施例中,通信网络13是一个部分连接的通信网络,也即,不是每个功能元件FU1-FU9都与每个寄存器堆RF1-RF7相连。部分连接通信网络的使用减少了代码的尺寸以及功率消耗,并且也允许提高处理器的性能。而且,与完全连接的通信网络相比,改善了处理器的可缩放性。
需要注意的是,上述提到的实施例示例而非限制了本发明,那些该领域的技术人员能够设计多种不同的实施例,而不会背离附属权利要求中的范围。在权利要求中,任何括号中的参考符号不应该被解释为对本发明的限制。词“包括”不排除那些权利要求中所列出的之外的元件或步骤。加在元件之前的词“一个”不排除多个这种元件。在列举出多个装置的设备权利要求中,多个装置能够用一个和多个相同的硬件来实现。在互相不同的、彼此依赖的权利要求中叙述的特定的措施这个名义上的事实,并不表明这些措施不能通过互相结合使用来提供优点。
权利要求
1.一个处理器包括一个主控制器;多个处理单元,每个处理单元包括一个局部控制器和至少一个可由局部控制器控制的功能元件,局部控制器与主控制器相连;-指令集,具有至少一条用于增加至少一个处理单元的活性的指令;其特征在于主控制器经配置用来处理至少一条指令。
2.根据权利要求1的处理器,其中指令集还具有至少一条用于减少至少一个处理单元活性的指令;主控制器经配置用来处理该至少一条指令。
3.根据权利要求2的处理器,其中用于减少至少一个处理单元活性的指令是一条用于完全关断处理单元的指令;用于增加至少一个处理单元活性的指令是一条用于完全导通处理单元的指令。
4.根据权利要求1的处理器,其中处理单元进一步包括一个局部指令存储器。
5.根据权利要求4的处理器,其中处理单元进一步包括一个局部程序计数器。
6.根据权利要求1的处理器,其中至少一个处理单元进一步包括一个寄存器堆,寄存器堆能够由功能元件访问。
7.根据权利要求6,其中寄存器堆是一个分布式寄存器堆。
8.根据权利要求6的处理器,其中处理器进一步包括一个通信网络,用于连接处理单元的功能元件和所述处理单元的寄存器堆。
9.根据权利要求8的处理器,其中通信网络是一个部分连接的通信网络。
10.根据任何前述权利要求的处理器,其中处理器是一个可配置的处理器。
全文摘要
一个处理器,包括一个主控制器(CTR11)和多个处理单元(1-9)。每个处理单元(1-9)具有一个局部控制器(CTR1-CTR9)以及至少一个可由局部控制器(CTR1-CTR9)控制的功能元件(FU1-FU9)。处理单元(1-9)的局部控制器(CTR11-CTR9)与主控制器(CTR11)相连(15)。处理器进一步包括一个指令集,该指令集具有至少一条用于增加至少一个处理单元(1-9)的活性的指令。处理器的一个或多个处理单元(1-9)能够被完全关断,包括对应的局部控制器(CTR1-CTR9),这是由于用于处理单元(1-9)的导通的指令不是由对应的局部控制器(CTR1-CTR9)控制的,而是受主控制器(CTR11)本身所控制。
文档编号G06F1/32GK1656446SQ03811753
公开日2005年8月17日 申请日期2003年4月28日 优先权日2002年5月24日
发明者B·德奥里维拉卡斯特鲁普佩, V·S·乔德哈里 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1