用于完全可综合的超级流水线vliw处理器的系统和方法

文档序号:6416409阅读:127来源:国知局
专利名称:用于完全可综合的超级流水线vliw处理器的系统和方法
技术领域
本发明涉及一种用于创建完全可综合的超级流水线VLIW(超长指令字)处理器的方法,该处理器产生高频工作处理器和高性能处理器。
背景技术
VLIW中央处理器单元(CPU)是一种公知的CPU体系结构,该CPU体系结构与其他CPU体系结构相比,在每一硅面积上具有非常好的性能,特别是信号处理和其他可并行计算方面尤其如此。为了说明VLIW CPU设计,请参考Computer ArchitectureA QuantitativeApproach’,John L.Hennessy,David A.Patterson,David Goldberg,Morgan Kaufmann Publishers;ISBN1558605967;3rdedition(May15,2002)。
在相同工艺和相同设计风格的情况下,VLIW CPU通常达到的时钟速度接近但稍低于RISC处理器。例如,按照0.12u CMOS工艺,完全可综合的ARM和MIPS RISC CPU达到250-350MHz的最坏情况时钟速度,而诸如Philips TriMedia TM3260 CPU内核这样的完全可综合的VLIW CPU可以达到240MHz的时钟速度。尽管VLIW CPU的时钟速度稍微低于RISC CPU的时钟速度,但是其能并行执行更多的操作,从而在可并行应用方面具有相当高的性能。
VLIW CPU的时钟速度受几个问题的限制,特别是受以下几种问题的限制1.内部静态RAM存储器的速度;2.功能单元中执行基本算术运算的固有逻辑门深度;以及3.所谓的基本VLIW CPU旁路回路。
VLIW CPU旁路回路具有通道,信号能够沿着从VLIW CPU的功能单元的输出端回到同一个或另一VLIW CPU功能单元的输入端。该通道包括旁路网络(通常以全交叉开关实现)。
如下所述,超级流水线能够解决问题1和2。问题3,即VLIW CPU旁路回路是个主要问题。旁路回路也存在于RISC CPU中,但是由于RISC CPU的旁路回路与VLIW CPU相比,包括较少的源(或输入端数量)和目标(输出端数量),所以RISC CPU能够稍快于VLIW CPU运行其时钟。
图1示出了简单流水线VLIW处理器100实例的数据通道,其包括寄存器文档114,旁路网络120,单周期功能单元(FU)102以及双周期FU 104。在每一时钟周期中,数据通道能够启动5个或更少的计算;每一功能单元上的计算以及数据首先在寄存器106中进行时钟控制(寄存器也称为流水线寄存器)。在已钟控后,数据作为FU输入122进入功能单元(FU),并作为FU输出118离开。来自于旁路网络120并进入单周期功能单元(FU)102的数据经过单一寄存器106以及单级功能单元(FU)108传递。来自于旁路网络120并进入双周期FU 104的数据经过两个寄存器,寄存器106和寄存器107,级111和级112传递。每一计算的自变量可以来自中央寄存器文档114作为寄存器输出116,也可以来自在先前周期中完成的计算结果,即FU的输出118。
可以如下理解旁路回路速度的限制◆功能单元‘m’的最后一级在时钟周期‘i’所产生的结果可能需要作为功能单元‘n’在时钟周期‘i+1’的左或右自变量◆因此,需要从每一FU输出118到功能单元的每一输入,即FU输入122的连接,其越过至多一个流水线寄存器(延迟不多于一个时钟周期)◆基本回路工作的速度是由技术,特别是由总线路长度和每一功能单元的输入流水线寄存器上的多路复用器的输入数量来确定的(图1中的旁路网络120包括用于每一功能单元输入的一个多路复用器,作为其输入的一个寄存器文档输出和所有的功能单元输出)◆线路长度随着功能单元数量的增加而增加,并且多路复用器中输入的数量也是如此请注意VLIW CPU数据通道可以有许多变型,例如结合于此作为参考的US 6122722(1999年3月17日提交的;申请号为09/271202;发明人Gerrit Slavenburg)教导了在不显著降低性能的情况下,如何减少中央寄存器文档读端口的数量和写端口的数量,以及回写总线的数量。另一VLIW CPU机可以将VLIW CPU划分为两部分用于整数计算的数据通道,具有专用的中央寄存器文档;以及用于浮点计算的数据通道,具有专用的中央寄存器文档,它们之间通过少数的通信总线互连以便发送整数结果用于浮点计算,反之亦然。也可以将流水线级置于功能单元的输出端而不置于功能单元的输入端,和/或者置于别处。所有这些变型都会导致基本上相似的单周期旁路回路信号延迟,具有相关的基本速度限制。
一种使得CPU较快地执行处理器指令的已知技术是一种称为超级流水线的技术。图2a示出了在CPU的典型流水线逻辑级中从输入到输出的数据流。数据在寄存器206进行钟控,并且在具有门深度为P的组合逻辑208中进行处理,然后在另一寄存器206中进行钟控。图2b示出了在CPU的典型超级流水线逻辑级中从输入到输出的数据流。数据在寄存器206中进行钟控,并且在具有门深度为P/2的组合逻辑211中进行处理,然后在寄存器206中进行钟控,在具有门深度为P/2的组合逻辑212中处理,最后在寄存器206中再一次进行钟控。图3a示出了CPU中的一个典型流水线存储器级,并且图3b示出了CPU中的一个典型超级流水线存储器级。通过在组合逻辑的中间插入一个额外的流水线寄存器,可以两倍地超级流水线传送所述逻辑级,因此可以将时钟之间的门深度降低2倍。这使得能够将时钟加速接近于2的倍数,但是这要为每一输出值花费一个以上时钟周期的延迟。请注意由于经过流水线寄存器的时钟歪斜、建立时间以及延迟时间的原因,时钟加速稍微小于2x。如图3b所示,CPU中的存储器级通过以交替时钟使用存储器的两个拷贝(存储器拷贝1,344以及存储器拷贝3,346)而能够进行2x超级流水线操作。图3b进一步包括偶数周期时钟地址寄存器358、奇数周期时钟地址寄存器360、奇数/偶数存储器输出选择器340以及寄存器356。两个存储器拷贝344和346在写期间—其中需要向存储器提供相同的数据—需要有相同的内容,其需要插入特殊的操作,可能包括停顿周期。
请注意可能以大于2的倍数进行超级流水线操作,尽管由于每一被添加的流水线寄存器的时钟歪斜、建立以及延迟时间的原因而使得较大的倍数变得效率较低。对于0.12u CMOS工艺来说,通过2x超级流水线操作,可实现大约1.8x的时钟加速。
在不需解决旁路回路的问题的情况下,超级流水线操作VLIW CPU通常将不对工作频率加速,这是因为旁路回路是限制因数,或者接近于平衡的VLIW CPU设计的限制因数。如果旁路回路自身也进行超级流水线操作,例如通过将一个额外的流水线级插入其中,那么VLIWCPU立即将有效地以1.8x的时钟速度运行,但是时钟周期内对于每一计算的关键路径加倍,因为所有动作现在将花费两倍的更多时钟,从而导致没有实际上的加速。请注意稍许加速是可能的,因为每一时间单位内能够进行更多的操作;但是对于由计算的关键路径所限制的程序来说,也就是,在原始的VLIW CPU中不缺少功能单元,那么不能够获得整体的速度优势。

发明内容
提供了一种超级流水线VLIW CPU的新的设计以及设计方法。超级流水线操作VLIW CPU的新方法是基于对程序的基准集的分析。所有操作的等待时间将加倍(以便超级流水线操作所述整体设计),并然后选择操作的子集,以便◆能够以最小的逻辑门深度执行所述子集的任何操作;并且◆当(利用一个周期的基本回路)执行所述子集的操作时,在时钟周期数方面将产生至少接近于原始基准执行时间。
另外的优点以及新颖性特征将在以下的描述中进行阐述,并且一旦分析之后,其对于本领域技术人员来说将变得显而易见,或者可通过本发明的实践而领会。


下面将通过实施例的方式并参考附图来更加详细地解释本发明,其中图1示出了现有技术中典型的VLIW处理器的实例图;图2a示出了现有技术中典型的流水线逻辑级的图;图2b示出了现有技术中典型的超级流水线逻辑级的图;图3a示出了现有技术中典型的流水线存储器级的图;图3b示出了现有技术中典型的超级流水线存储器级的图;图4示出了一个新的超级流水线VLIW CPU的图;以及图5示出了另一新的超级流水线VLIW CPU的图。
具体实施例方式
图4示出了根据本发明的一个新的超级流水线VLIW CPU 400的实例设计图(CPU也称为处理器)。该新的超级流水线VLIW CPU 400包括寄存器文档414,旁路网络420,快速功能单元(FU)集群430以及标准FU集群440。快速FU集群430包括小数量的功能单元(FU),其在仅具有回路中单个寄存器延迟的基本回路中实施选择的操作子集。在VLIW CPU 400中示出的该标准FU集群440的任何其他功能单元或其集群,在这个基本的核心周围进行连接,但作为包含多个时钟周期的基本回路部分。快速FU集群430示出了围绕着快速FU 460的三个表面上相同的拷贝的电路和线路。应该注意在实际的VLIW CPU设计中,快速FU的数量是可以变化的,围绕它们的线路和寄存器以及每一快速FU 460可以具有相同或不同的设计。从旁路网络420流到快速FU集群430的数据通过快速选择器403(也称为快速多路复用器)、寄存器406a、快速FU 460。数据在快速FU输入端422进入快速FU 460,而在快速FU输出端424输出。在该点上,所述数据将流到快速选择器403和寄存器406b,其输出将路由到标准FU集群440。从旁路网络420流到标准FU集群440的数据通过寄存器406c、标准选择器405(也称为标准多路复用器)、标准FU 470。所述数据在标准FU输入端426进入标准FU 470,通过标准FU级1 411、寄存器406d以及标准FU级2 412,并在快速FU标准428处离开标准FU470。在这点上,数据将流到寄存器406e,其输出被路由到旁路网络420。
图4中快速FU集群430的基本回路信号通道包括快速FU 460、4输入快速多路复用器403(也称为快速选择器),以及位于每一快速FU 460的每一输入端之前的延迟寄存器406a。该基本回路仅具有相对短的线路,并且其信号通道仅具有很小的扇出,以便允许所述基本回路高速运行。通常,标准FU级1 411中的组合逻辑不深,或者甚至为空。从寄存器406b(连接到快速FU 460)到标准选择器405的相当大的线路长度所产生的延迟,使得由标准FU级411的组合逻辑所产生的可允许延迟更加受限。快速FU的集群内(或者标准FU的集群内)的线路通常相对较短。然而,快速FU集群与标准FU集群之间的线路通常相对较长。在此之上,在快速FU集群与标准FU集群之间的线路通常具有较多的扇出(虽然图4仅示出了两个标准FU,但标准FU的数量能够很多,例如为20)。由于相对长的线路以及高扇出,这些线路之上的信号延迟通常将相对的长。所以,FU的快速集群内的旁路回路延迟通常将显著小于从快速集群经由旁路进入标准FU的延迟。
根据技术参数,其他的变型也是可能的。图4示出了以0.12u CMOS技术实施的基本回路的最佳实现模式。图5示出了本发明新的超级流水线VLIW CPU的另一实施例,其中快速选择器403位于寄存器406之后。图5说明了具有其他特性的技术,其中最好在寄存器406a的后面具有快速选择器403(图中示为4选1的选择器)。在快速核心中还可以具有多于或少于3个的快速功能单元(功能单元也称为ALU,并且可以在其输出端包括钟控寄存器)。通常,标准功能单元的数量远远大于快速功能单元的数量。
以下描述最佳模式实施的实例。其通过以下内容而进行描述,即通过将超级流水线的新方法应用到具有Philips PNX1300的操作集合和功能单元布置的5-发送(5-issue)VLIW处理器(对于5-发送VLIW处理器及其操作集合的详细描述,将‘TriMedia TM-1300 mediaprocessor data-book’结合于此作为参考)。
现有技术的VLIW CPU(PNX1300)


在现有技术的VLIW处理器中,下列操作处于一个周期长度的旁路回路中CONSTimm,uimmALUiadd isub igtr igeq ieql ineq ileqi igtri igeqi ilesi ieqli ineqi ugtr ugeq uleqi ugtri ugeqiulesi ueqli uneqi bitand bitor bitxor bitandinv bitinv h_iabs sex16 iaddi isubi carry izeroinonzero packbytes mergemsb mergelsb pack16msb pack16lsb ubytesel ibyteselSHIFTERasli roli asri lsri sal rol asr lsr dualasr mergedual16lsb funshift1 funshift2funshift3在本发明中,基于逻辑电路的性能分析以及简单性而选择下列操作子集imm,uimm,iadd,isub,iaddi,isubi,bitor,bitand,bitxor,bitandinv,bitinv。例如相对简单的操作以及频繁使用的操作通常落入诸如常用操作的这种子集中,像加、减以及简单的位运算等等。
本发明的超级流水线VLIW包括快速单元核心,具有一个周期旁路回路。优选地但不排除已经测试的实施例,其包括ALU1功能单元的3个拷贝,其仅实施选定操作的子集(与图4所示相似)。在新的ALU功能单元的3个拷贝上执行其他ALU操作,其为旁路回路而花费两个周期(2x超级流水线)。在图4中示出了为旁路回路而花费2个周期的两个ALU功能单元。相似的,所有其他的单元具有(接近)2x的原始等待时间的等待时间。例如,相对复杂的操作和不频繁使用的操作通常落入诸如乘法、除法和复杂数学运算等等的操作子集中。

<p>[表3] (线速度5.3m/s)

上述内容仅说明了本发明的原理。所以能够意识到本领域的技术人员将能够设计出不同的方案,尽管未在此明显地描述和示出,但是具体化了本发明的原理,并且因此属于本发明的精神和范围内。例如,没有特别地在说明书中陈述以下内容,即从一个元件到另一元件的连接可以或者不可以包括寄存器。并且诸如图4和5中所示的功能单元都可以具有不同的复杂度并且快速和标准功能单元的数量可以改变。参考该发明,这些和其他系统配置以及最佳化特征对于普通领域的技术人员来说是显而易见的,并且被包含在所附权利要求的范围内。
权利要求
1.一种VLIW处理器(400),包括快速功能单元(FU)集群(430);以及标准FU集群(440);寄存器文档(414),包括寄存器文档输出;交叉开关(420),包括连接到寄存器文档输出的第一交叉输入;(如果需要,连接到快速FU集群输出的第二交叉输入);连接到标准FU集群输出的第三交叉输入;连接到第一快速FU多路复用器(快速多路复用器)输入的第一交叉输出;以及连接到第一标准FU多路复用器(标准多路复用器)输入的第二交叉输出,以及其中所述快速FU集群包括快速FU集群输入和快速FU集群输出;快速FU包括快速FU输入和快速FU输出;所述快速多路复用器,包括第一快速多路复用器输入;以及连接到所述快速FU集群输出的第二快速多路复用器输入;连接到第一级FU输入的快速多路复用器输出,以及其中标准FU集群包括标准FU集群输入和标准FU集群输出;标准FU包括标准FU输入和标准FU输出;标准多路复用器包括连接到第二交叉输出的第一标准多路复用器输入;以及连接到快速FU输出的第二标准多路复用器输入;连接到标准FU输入的标准多路复用器输出,其中快速FU输出到快速FU输入之间的第一信号通道包括单个寄存器;标准FU输出到标准FU输入之间的第二信号通道包括两个锁存寄存器,快速FU输出到标准FU输入之间的第三信号通道包括单个锁存寄存器。
2.根据权利要求1的VLIW处理器,包括一个n-发送槽VLIW处理器,其中n大于1。
3.根据权利要求2的VLIW处理器,其中至少一个快速FU的数目与至少一个标准FU的数目相加大于或等于n。
4.根据权利要求1的VLIW处理器,其中所述快速FU包括相对简单的操作与频繁使用的操作其中之一。
5.根据权利要求4的VLIW处理器,其中所述简单的操作包括加法和减法其中之一。
6.根据权利要求4的VLIW处理器,其中简单的操作包括加载和存储其中之一。
7.根据权利要求1的VLIW处理器,其中标准FU包括相对复杂的操作和较少使用的操作其中之一。
8.根据权利要求7的VLIW处理器,其中所述复杂的操作包括乘法和除法其中之一。
9.根据权利要求1的VLIW处理器,其中任一标准FU包括多于任一快速FU的至少一个锁存器级。
10.根据权利要求1的VLIW处理器,其中快速旁路回路延迟基本上小于快速FU和标准FU之间的任一旁路回路延迟。
11.一种VLIW处理器(400),包括快速功能单元(FU;460),包括快速FU输入和快速FU输出;以及标准FU(470),包括标准FU输入和标准FU输出,其中快速FU输出和快速FU输入之间的第一信号通道包括单个锁存寄存器;标准FU输出与标准FU输入之间的第二信号通道包括两个锁存寄存器;以及快速FU输出与标准FU输入之间的第三信号通道包括单个锁存寄存器。
12.根据权利要求11的VLIW处理器,包括一个n-发送槽VLIW处理器,其中n大于1。
13.根据权利要求12的VLIW处理器,其中至少一个快速FU的数目与至少一个标准FU的数目相加大于或等于n。
14.根据权利要求11的VLIW处理器,其中所述快速FU包括相对简单的操作与频繁使用的操作其中之一。
15.根据权利要求14的VLIW处理器,其中所述简单的操作包括加法和减法其中之一。
16.根据权利要求14的VLIW处理器,其中简单的操作包括加载和存储其中之一。
17.根据权利要求11的VLIW处理器,其中标准FU包括相对复杂的操作和较少使用的操作其中之一。
18.根据权利要求17的VLIW处理器,其中所述复杂的操作包括乘法和除法其中之一。
19.根据权利要求11的VLIW处理器,其中任一标准FU包括多于任一快速FU的至少一个锁存器级。
20.根据权利要求11的VLIW处理器,其中快速旁路回路延迟基本上小于任一标准旁路回路延迟。
全文摘要
本发明涉及一种用于创建完全可综合的超级流水线VLIW处理器的方法,所述处理器产生高频率运算处理器和高性能处理器。提议将VLIW的运算单元分成两个子集。当尽管连接在第一单元周围的其他单元具有循环中常规的延迟,第一子集单元执行基本循环,而循环中仅有单个寄存器。
文档编号G06F9/38GK1682182SQ03822007
公开日2005年10月12日 申请日期2003年9月17日 优先权日2002年9月17日
发明者G·斯拉文布格, J·-W·范德瓦尔德特 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1