專利名稱:用于完全可綜合的超級流水線vliw處理器的系統(tǒng)和方法
技術領域:
本發(fā)明涉及一種用于創(chuàng)建完全可綜合的超級流水線VLIW(超長指令字)處理器的方法,該處理器產(chǎn)生高頻工作處理器和高性能處理器。
背景技術:
VLIW中央處理器單元(CPU)是一種公知的CPU體系結(jié)構(gòu),該CPU體系結(jié)構(gòu)與其他CPU體系結(jié)構(gòu)相比,在每一硅面積上具有非常好的性能,特別是信號處理和其他可并行計算方面尤其如此。為了說明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內(nèi)核這樣的完全可綜合的VLIW CPU可以達到240MHz的時鐘速度。盡管VLIW CPU的時鐘速度稍微低于RISC CPU的時鐘速度,但是其能并行執(zhí)行更多的操作,從而在可并行應用方面具有相當高的性能。
VLIW CPU的時鐘速度受幾個問題的限制,特別是受以下幾種問題的限制1.內(nèi)部靜態(tài)RAM存儲器的速度;2.功能單元中執(zhí)行基本算術運算的固有邏輯門深度;以及3.所謂的基本VLIW CPU旁路回路。
VLIW CPU旁路回路具有通道,信號能夠沿著從VLIW CPU的功能單元的輸出端回到同一個或另一VLIW CPU功能單元的輸入端。該通道包括旁路網(wǎng)絡(通常以全交叉開關實現(xiàn))。
如下所述,超級流水線能夠解決問題1和2。問題3,即VLIW CPU旁路回路是個主要問題。旁路回路也存在于RISC CPU中,但是由于RISC CPU的旁路回路與VLIW CPU相比,包括較少的源(或輸入端數(shù)量)和目標(輸出端數(shù)量),所以RISC CPU能夠稍快于VLIW CPU運行其時鐘。
圖1示出了簡單流水線VLIW處理器100實例的數(shù)據(jù)通道,其包括寄存器文檔114,旁路網(wǎng)絡120,單周期功能單元(FU)102以及雙周期FU 104。在每一時鐘周期中,數(shù)據(jù)通道能夠啟動5個或更少的計算;每一功能單元上的計算以及數(shù)據(jù)首先在寄存器106中進行時鐘控制(寄存器也稱為流水線寄存器)。在已鐘控后,數(shù)據(jù)作為FU輸入122進入功能單元(FU),并作為FU輸出118離開。來自于旁路網(wǎng)絡120并進入單周期功能單元(FU)102的數(shù)據(jù)經(jīng)過單一寄存器106以及單級功能單元(FU)108傳遞。來自于旁路網(wǎng)絡120并進入雙周期FU 104的數(shù)據(jù)經(jīng)過兩個寄存器,寄存器106和寄存器107,級111和級112傳遞。每一計算的自變量可以來自中央寄存器文檔114作為寄存器輸出116,也可以來自在先前周期中完成的計算結(jié)果,即FU的輸出118。
可以如下理解旁路回路速度的限制◆功能單元‘m’的最后一級在時鐘周期‘i’所產(chǎn)生的結(jié)果可能需要作為功能單元‘n’在時鐘周期‘i+1’的左或右自變量◆因此,需要從每一FU輸出118到功能單元的每一輸入,即FU輸入122的連接,其越過至多一個流水線寄存器(延遲不多于一個時鐘周期)◆基本回路工作的速度是由技術,特別是由總線路長度和每一功能單元的輸入流水線寄存器上的多路復用器的輸入數(shù)量來確定的(圖1中的旁路網(wǎng)絡120包括用于每一功能單元輸入的一個多路復用器,作為其輸入的一個寄存器文檔輸出和所有的功能單元輸出)◆線路長度隨著功能單元數(shù)量的增加而增加,并且多路復用器中輸入的數(shù)量也是如此請注意VLIW CPU數(shù)據(jù)通道可以有許多變型,例如結(jié)合于此作為參考的US 6122722(1999年3月17日提交的;申請?zhí)枮?9/271202;發(fā)明人Gerrit Slavenburg)教導了在不顯著降低性能的情況下,如何減少中央寄存器文檔讀端口的數(shù)量和寫端口的數(shù)量,以及回寫總線的數(shù)量。另一VLIW CPU機可以將VLIW CPU劃分為兩部分用于整數(shù)計算的數(shù)據(jù)通道,具有專用的中央寄存器文檔;以及用于浮點計算的數(shù)據(jù)通道,具有專用的中央寄存器文檔,它們之間通過少數(shù)的通信總線互連以便發(fā)送整數(shù)結(jié)果用于浮點計算,反之亦然。也可以將流水線級置于功能單元的輸出端而不置于功能單元的輸入端,和/或者置于別處。所有這些變型都會導致基本上相似的單周期旁路回路信號延遲,具有相關的基本速度限制。
一種使得CPU較快地執(zhí)行處理器指令的已知技術是一種稱為超級流水線的技術。圖2a示出了在CPU的典型流水線邏輯級中從輸入到輸出的數(shù)據(jù)流。數(shù)據(jù)在寄存器206進行鐘控,并且在具有門深度為P的組合邏輯208中進行處理,然后在另一寄存器206中進行鐘控。圖2b示出了在CPU的典型超級流水線邏輯級中從輸入到輸出的數(shù)據(jù)流。數(shù)據(jù)在寄存器206中進行鐘控,并且在具有門深度為P/2的組合邏輯211中進行處理,然后在寄存器206中進行鐘控,在具有門深度為P/2的組合邏輯212中處理,最后在寄存器206中再一次進行鐘控。圖3a示出了CPU中的一個典型流水線存儲器級,并且圖3b示出了CPU中的一個典型超級流水線存儲器級。通過在組合邏輯的中間插入一個額外的流水線寄存器,可以兩倍地超級流水線傳送所述邏輯級,因此可以將時鐘之間的門深度降低2倍。這使得能夠?qū)r鐘加速接近于2的倍數(shù),但是這要為每一輸出值花費一個以上時鐘周期的延遲。請注意由于經(jīng)過流水線寄存器的時鐘歪斜、建立時間以及延遲時間的原因,時鐘加速稍微小于2x。如圖3b所示,CPU中的存儲器級通過以交替時鐘使用存儲器的兩個拷貝(存儲器拷貝1,344以及存儲器拷貝3,346)而能夠進行2x超級流水線操作。圖3b進一步包括偶數(shù)周期時鐘地址寄存器358、奇數(shù)周期時鐘地址寄存器360、奇數(shù)/偶數(shù)存儲器輸出選擇器340以及寄存器356。兩個存儲器拷貝344和346在寫期間—其中需要向存儲器提供相同的數(shù)據(jù)—需要有相同的內(nèi)容,其需要插入特殊的操作,可能包括停頓周期。
請注意可能以大于2的倍數(shù)進行超級流水線操作,盡管由于每一被添加的流水線寄存器的時鐘歪斜、建立以及延遲時間的原因而使得較大的倍數(shù)變得效率較低。對于0.12u CMOS工藝來說,通過2x超級流水線操作,可實現(xiàn)大約1.8x的時鐘加速。
在不需解決旁路回路的問題的情況下,超級流水線操作VLIW CPU通常將不對工作頻率加速,這是因為旁路回路是限制因數(shù),或者接近于平衡的VLIW CPU設計的限制因數(shù)。如果旁路回路自身也進行超級流水線操作,例如通過將一個額外的流水線級插入其中,那么VLIWCPU立即將有效地以1.8x的時鐘速度運行,但是時鐘周期內(nèi)對于每一計算的關鍵路徑加倍,因為所有動作現(xiàn)在將花費兩倍的更多時鐘,從而導致沒有實際上的加速。請注意稍許加速是可能的,因為每一時間單位內(nèi)能夠進行更多的操作;但是對于由計算的關鍵路徑所限制的程序來說,也就是,在原始的VLIW CPU中不缺少功能單元,那么不能夠獲得整體的速度優(yōu)勢。
發(fā)明內(nèi)容
提供了一種超級流水線VLIW CPU的新的設計以及設計方法。超級流水線操作VLIW CPU的新方法是基于對程序的基準集的分析。所有操作的等待時間將加倍(以便超級流水線操作所述整體設計),并然后選擇操作的子集,以便◆能夠以最小的邏輯門深度執(zhí)行所述子集的任何操作;并且◆當(利用一個周期的基本回路)執(zhí)行所述子集的操作時,在時鐘周期數(shù)方面將產(chǎn)生至少接近于原始基準執(zhí)行時間。
另外的優(yōu)點以及新穎性特征將在以下的描述中進行闡述,并且一旦分析之后,其對于本領域技術人員來說將變得顯而易見,或者可通過本發(fā)明的實踐而領會。
下面將通過實施例的方式并參考附圖來更加詳細地解釋本發(fā)明,其中圖1示出了現(xiàn)有技術中典型的VLIW處理器的實例圖;圖2a示出了現(xiàn)有技術中典型的流水線邏輯級的圖;圖2b示出了現(xiàn)有技術中典型的超級流水線邏輯級的圖;圖3a示出了現(xiàn)有技術中典型的流水線存儲器級的圖;圖3b示出了現(xiàn)有技術中典型的超級流水線存儲器級的圖;圖4示出了一個新的超級流水線VLIW CPU的圖;以及圖5示出了另一新的超級流水線VLIW CPU的圖。
具體實施例方式
圖4示出了根據(jù)本發(fā)明的一個新的超級流水線VLIW CPU 400的實例設計圖(CPU也稱為處理器)。該新的超級流水線VLIW CPU 400包括寄存器文檔414,旁路網(wǎng)絡420,快速功能單元(FU)集群430以及標準FU集群440??焖貴U集群430包括小數(shù)量的功能單元(FU),其在僅具有回路中單個寄存器延遲的基本回路中實施選擇的操作子集。在VLIW CPU 400中示出的該標準FU集群440的任何其他功能單元或其集群,在這個基本的核心周圍進行連接,但作為包含多個時鐘周期的基本回路部分。快速FU集群430示出了圍繞著快速FU 460的三個表面上相同的拷貝的電路和線路。應該注意在實際的VLIW CPU設計中,快速FU的數(shù)量是可以變化的,圍繞它們的線路和寄存器以及每一快速FU 460可以具有相同或不同的設計。從旁路網(wǎng)絡420流到快速FU集群430的數(shù)據(jù)通過快速選擇器403(也稱為快速多路復用器)、寄存器406a、快速FU 460。數(shù)據(jù)在快速FU輸入端422進入快速FU 460,而在快速FU輸出端424輸出。在該點上,所述數(shù)據(jù)將流到快速選擇器403和寄存器406b,其輸出將路由到標準FU集群440。從旁路網(wǎng)絡420流到標準FU集群440的數(shù)據(jù)通過寄存器406c、標準選擇器405(也稱為標準多路復用器)、標準FU 470。所述數(shù)據(jù)在標準FU輸入端426進入標準FU 470,通過標準FU級1 411、寄存器406d以及標準FU級2 412,并在快速FU標準428處離開標準FU470。在這點上,數(shù)據(jù)將流到寄存器406e,其輸出被路由到旁路網(wǎng)絡420。
圖4中快速FU集群430的基本回路信號通道包括快速FU 460、4輸入快速多路復用器403(也稱為快速選擇器),以及位于每一快速FU 460的每一輸入端之前的延遲寄存器406a。該基本回路僅具有相對短的線路,并且其信號通道僅具有很小的扇出,以便允許所述基本回路高速運行。通常,標準FU級1 411中的組合邏輯不深,或者甚至為空。從寄存器406b(連接到快速FU 460)到標準選擇器405的相當大的線路長度所產(chǎn)生的延遲,使得由標準FU級411的組合邏輯所產(chǎn)生的可允許延遲更加受限。快速FU的集群內(nèi)(或者標準FU的集群內(nèi))的線路通常相對較短。然而,快速FU集群與標準FU集群之間的線路通常相對較長。在此之上,在快速FU集群與標準FU集群之間的線路通常具有較多的扇出(雖然圖4僅示出了兩個標準FU,但標準FU的數(shù)量能夠很多,例如為20)。由于相對長的線路以及高扇出,這些線路之上的信號延遲通常將相對的長。所以,F(xiàn)U的快速集群內(nèi)的旁路回路延遲通常將顯著小于從快速集群經(jīng)由旁路進入標準FU的延遲。
根據(jù)技術參數(shù),其他的變型也是可能的。圖4示出了以0.12u CMOS技術實施的基本回路的最佳實現(xiàn)模式。圖5示出了本發(fā)明新的超級流水線VLIW CPU的另一實施例,其中快速選擇器403位于寄存器406之后。圖5說明了具有其他特性的技術,其中最好在寄存器406a的后面具有快速選擇器403(圖中示為4選1的選擇器)。在快速核心中還可以具有多于或少于3個的快速功能單元(功能單元也稱為ALU,并且可以在其輸出端包括鐘控寄存器)。通常,標準功能單元的數(shù)量遠遠大于快速功能單元的數(shù)量。
以下描述最佳模式實施的實例。其通過以下內(nèi)容而進行描述,即通過將超級流水線的新方法應用到具有Philips PNX1300的操作集合和功能單元布置的5-發(fā)送(5-issue)VLIW處理器(對于5-發(fā)送VLIW處理器及其操作集合的詳細描述,將‘TriMedia TM-1300 mediaprocessor data-book’結(jié)合于此作為參考)。
現(xiàn)有技術的VLIW CPU(PNX1300)
在現(xiàn)有技術的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在本發(fā)明中,基于邏輯電路的性能分析以及簡單性而選擇下列操作子集imm,uimm,iadd,isub,iaddi,isubi,bitor,bitand,bitxor,bitandinv,bitinv。例如相對簡單的操作以及頻繁使用的操作通常落入諸如常用操作的這種子集中,像加、減以及簡單的位運算等等。
本發(fā)明的超級流水線VLIW包括快速單元核心,具有一個周期旁路回路。優(yōu)選地但不排除已經(jīng)測試的實施例,其包括ALU1功能單元的3個拷貝,其僅實施選定操作的子集(與圖4所示相似)。在新的ALU功能單元的3個拷貝上執(zhí)行其他ALU操作,其為旁路回路而花費兩個周期(2x超級流水線)。在圖4中示出了為旁路回路而花費2個周期的兩個ALU功能單元。相似的,所有其他的單元具有(接近)2x的原始等待時間的等待時間。例如,相對復雜的操作和不頻繁使用的操作通常落入諸如乘法、除法和復雜數(shù)學運算等等的操作子集中。
<p>[表3] (線速度5.3m/s)
上述內(nèi)容僅說明了本發(fā)明的原理。所以能夠意識到本領域的技術人員將能夠設計出不同的方案,盡管未在此明顯地描述和示出,但是具體化了本發(fā)明的原理,并且因此屬于本發(fā)明的精神和范圍內(nèi)。例如,沒有特別地在說明書中陳述以下內(nèi)容,即從一個元件到另一元件的連接可以或者不可以包括寄存器。并且諸如圖4和5中所示的功能單元都可以具有不同的復雜度并且快速和標準功能單元的數(shù)量可以改變。參考該發(fā)明,這些和其他系統(tǒng)配置以及最佳化特征對于普通領域的技術人員來說是顯而易見的,并且被包含在所附權利要求的范圍內(nèi)。
權利要求
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.根據(jù)權利要求1的VLIW處理器,包括一個n-發(fā)送槽VLIW處理器,其中n大于1。
3.根據(jù)權利要求2的VLIW處理器,其中至少一個快速FU的數(shù)目與至少一個標準FU的數(shù)目相加大于或等于n。
4.根據(jù)權利要求1的VLIW處理器,其中所述快速FU包括相對簡單的操作與頻繁使用的操作其中之一。
5.根據(jù)權利要求4的VLIW處理器,其中所述簡單的操作包括加法和減法其中之一。
6.根據(jù)權利要求4的VLIW處理器,其中簡單的操作包括加載和存儲其中之一。
7.根據(jù)權利要求1的VLIW處理器,其中標準FU包括相對復雜的操作和較少使用的操作其中之一。
8.根據(jù)權利要求7的VLIW處理器,其中所述復雜的操作包括乘法和除法其中之一。
9.根據(jù)權利要求1的VLIW處理器,其中任一標準FU包括多于任一快速FU的至少一個鎖存器級。
10.根據(jù)權利要求1的VLIW處理器,其中快速旁路回路延遲基本上小于快速FU和標準FU之間的任一旁路回路延遲。
11.一種VLIW處理器(400),包括快速功能單元(FU;460),包括快速FU輸入和快速FU輸出;以及標準FU(470),包括標準FU輸入和標準FU輸出,其中快速FU輸出和快速FU輸入之間的第一信號通道包括單個鎖存寄存器;標準FU輸出與標準FU輸入之間的第二信號通道包括兩個鎖存寄存器;以及快速FU輸出與標準FU輸入之間的第三信號通道包括單個鎖存寄存器。
12.根據(jù)權利要求11的VLIW處理器,包括一個n-發(fā)送槽VLIW處理器,其中n大于1。
13.根據(jù)權利要求12的VLIW處理器,其中至少一個快速FU的數(shù)目與至少一個標準FU的數(shù)目相加大于或等于n。
14.根據(jù)權利要求11的VLIW處理器,其中所述快速FU包括相對簡單的操作與頻繁使用的操作其中之一。
15.根據(jù)權利要求14的VLIW處理器,其中所述簡單的操作包括加法和減法其中之一。
16.根據(jù)權利要求14的VLIW處理器,其中簡單的操作包括加載和存儲其中之一。
17.根據(jù)權利要求11的VLIW處理器,其中標準FU包括相對復雜的操作和較少使用的操作其中之一。
18.根據(jù)權利要求17的VLIW處理器,其中所述復雜的操作包括乘法和除法其中之一。
19.根據(jù)權利要求11的VLIW處理器,其中任一標準FU包括多于任一快速FU的至少一個鎖存器級。
20.根據(jù)權利要求11的VLIW處理器,其中快速旁路回路延遲基本上小于任一標準旁路回路延遲。
全文摘要
本發(fā)明涉及一種用于創(chuàng)建完全可綜合的超級流水線VLIW處理器的方法,所述處理器產(chǎn)生高頻率運算處理器和高性能處理器。提議將VLIW的運算單元分成兩個子集。當盡管連接在第一單元周圍的其他單元具有循環(huán)中常規(guī)的延遲,第一子集單元執(zhí)行基本循環(huán),而循環(huán)中僅有單個寄存器。
文檔編號G06F9/38GK1682182SQ03822007
公開日2005年10月12日 申請日期2003年9月17日 優(yōu)先權日2002年9月17日
發(fā)明者G·斯拉文布格, J·-W·范德瓦爾德特 申請人:皇家飛利浦電子股份有限公司