專利名稱:可重配置集成電路的制作方法
技術領域:
本發(fā)明涉及一種集成電路,該集成電路具有多個處理元件,用于基本上并行地執(zhí)行多個指令的至少一個子集;發(fā)布裝置,用于通過向多個處理元件發(fā)布程序計數器驅動指令流來配置多個處理元件;以及可配置互連裝置,用于將多個處理元件的每個處理元件連接到多個處理元件的其他處理元件的至少一個子集上。
日益縮減的半導體尺寸已經導致且仍然導致集成在半導體器件(例如,集成電路)的可用區(qū)域上構建塊的數目增加。因此,這種設備變得更為通用,并因此提高了對這種設備的性能需求。特別是對于設計成執(zhí)行專用任務的電路的情況,例如視頻信號處理的實時數字音頻,并且其包括所謂的專用指令集處理機(ASIP),其可以具有在起始段落中定義的體系結構。
對ASIP日益增加的性能需求與縮減尺寸技術相結合,通常意味著對于下一代ASIP而言,不只將更多的處理元件集成到設計中,而且還要重新再設計IC結構,這是因為上一代處理元件的性能已不再能夠滿足新一代ASIP的要求。
然而,這個趨勢與對于即將來臨的集成電路技術來說成為日益難于克服的問題有關。增加這些集成電路中的處理元件、以及上述未來的IC中這些處理元件有限的可再用性意味著,將增加這些IC的設計者的設計工作。此外,包括在IC設計中的處理元件數量的增加使設計復雜化,這是因為這些處理元件之間的必要的互連變得日益復雜。這已經開始導致困難的布線問題,兩個處理元件之間的互連線可以變得如此長,以至于導致線上的傳輸延遲危及或者甚至妨礙了滿足性能要求。這是非常嚴重的問題,由于對IC來說,所要求的投放市場時間變得越來越短,這和上述的設計復雜化增加明顯地存在沖突。
本發(fā)明的一個目的是提供一種在起始段中描述的集成電路,其可以以相對小量的設計工作來更新。
本發(fā)明由獨立權利要求定義。有利的實施例在從屬權利要求中定義。
根據本發(fā)明,處理體系結構所需的資源在每個處理元件中組合,并且分布在規(guī)則網格形式的可用硅實體(real estate)之上,例如兩維的重復性布局。與現有的ASIC相比,盡管因為所有的或至少大部分處理元件將包括可在特定時鐘周期期間使用的構建塊,因此這明顯地產生了一些面積開銷,但是應強調的是,由于發(fā)展中的半導體尺寸縮減允許將越來越多的功能集成到集成電路上,因此并不認為這是一種缺陷。更重要的是,主導性同類的處理元件和規(guī)則網格的組合允許快速及廉價地重新設計處理體系結構。與其中通常不得不都重新開始設計兩個應用領域的兩個體系結構的現有集成電路相比,本發(fā)明的集成電路通過重新定義處理元件之間的互連結構,或通過只重新設計單一處理元件,就可以簡單地重新使用一個設計,因此極大地減少了第二個IC的市場投放時間。此外,因為除了定義互連的掩模,例如VIA掩模之外,可以完全重新使用第一IC的光刻掩模組,因此第二個IC將以更低的成本生產。此外,當集成到第一設計中的資源數量不再足以滿足IC的性能需求時,通過在網格上增加附加行或列的處理元件,就可以簡單地擴展該IC,而這只需要較小的設計工作。
如果集成電路包括超長指令字(VLIW)處理器體系結構,并且多個指令的子集包括超長指令字,那么這尤其有利。越來越多的處理元件正被集成到VLIW處理器中,這導致了各個處理元件之間嚴重的布線問題。通過根據本發(fā)明的教導而實現的VLIW處理器,獲得了一種處理器體系結構,其中因為每個處理元件總是接近于所需資源而避免了布線問題。
如果可配置互連裝置將每個處理元件連接到網格中的最鄰近處理元件上,那么將更為有利。因此,這產生一種具有完全連通性的規(guī)則網格。這就增加了使用這種集成電路的靈活性。例如,處理元件的網格可被用作數據流機,其中每個處理元件通過發(fā)布裝置進行配置并且保持該配置幾個時鐘周期,數據從網格的一側脈動到網格的另一側。這對于循環(huán)執(zhí)行來說是特別有利的,因為能夠將網格的維數調節(jié)到循環(huán)本體的維數,這樣能夠導致整個循環(huán)或循環(huán)的大數據自主(data-autonomous)部分映射在網格上。從而,因為極大地減少了發(fā)布裝置和/或具有數據和指令存儲器的處理元件之間的慢速通信,因此將顯著地提高循環(huán)執(zhí)行的性能。顯而易見的是,即使與具有完全連通性的網格相比減少了靈活性,例如其中每個處理元件都連接到其所有的最鄰近上的網格,但是這種數據流應用還可以在缺乏完全連通性的網格上執(zhí)行。
另一方面,處理元件還可以在逐周期的基礎上利用指令級并行性從而以常規(guī)的VLIW方式運行。這樣,因為在操作期間,IC的結構可以從數據流模式切換到常規(guī)的VLIW模式,因此可以將IC看作為一種可重配置的裝置。
在這一點上,應強調的是,在已知的如現場可編程門陣列(FPGA)的可重配置裝置和根據本發(fā)明的規(guī)則構造的IC之間,有著非常重要的基本差異。不僅是因為在配置該裝置期間,不得不訪問大量的重配置點而使得已知的可重配置裝置通常非常慢,而且已知的可重配置裝置不能夠進行例外情況的處理,例如配置環(huán)境的切換,即,在執(zhí)行跳轉指令或執(zhí)行如分支指令的條件表達式之后,處理器體系結構的超長指令字。因此,由于這些結構既不提供必要的性能又不提供所需的功能,因此設計高性能IC領域中的熟練技術人員將把目光從相關于FPGA的領域中轉移出來。
如果可配置的互連裝置包括用于旁路多個處理元件中的一個處理元件的旁路裝置,那么將是另一個優(yōu)點。在處理元件中或在其周圍使用旁路元件,例如多路復用器或其他開關元件,可進一步地改善IC的性能,這是因為如果兩個通信處理元件之間的處理元件被旁路,那么不相鄰的處理元件可以彼此直接相連。另外,在兩個不同的處理元件之間可以有一個以上的連接路徑可用,如多路復用器這樣的可配置的布線裝置,可用于選擇將使用哪個連接路徑。此外,可以提供更長距離的連接路徑,連接不是最鄰近的處理元件。再者,可配置布線裝置可被用于選擇適當的連接路徑。
如果多個處理元件中的一個處理元件包括數據存儲單元、功能單元、和將功能單元耦合到數據存儲單元的內部相互通信網絡,那么則又是一個優(yōu)點。通過為每個處理元件提供功能單元和數據存儲元件,例如小存儲器或分布式寄存器文件,則可以避免或至少可以減少功能單元和中央存儲器和/或寄存器文件之間的慢速通信,從而提高了IC的性能。如果將數據存儲元件也耦合到可配置互連裝置上,則更為明顯,這是因為其還可以作為其他處理元件中功能單元的數據提供者。
在本發(fā)明的一個具體實施例中,處理元件包括至少一個促進(further)單元;功能單元,促進單元和數據存儲單元被組織為超長指令字(VLIW)處理器數據路徑。這體現了分層VLIW體系結構,該結構提高了設計的靈活性。促進單元可以是功能單元或是數據存儲單元。
有利的是,在該實施例中,發(fā)布裝置分布在處理元件上。例如,每個VLIW處理元件配備有其自己的用于保持控制字的操作寄存器,該控制字配置VLIW處理元件的數據和控制路徑,例如功能單元的功能性以及功能單元和數據存儲元件之間的布線。因此,獲得了不受位置限制的發(fā)布體系結構,其在性能方面再次是具有優(yōu)勢的。
根據本發(fā)明的又一方面,提供一種如權利要求8所要求保護的電子設備。將根據本發(fā)明的IC集成到電子設備中,可使得電子設備具有提高的功能靈活性和較低的成本價格,這實質上改善了這種設備的可銷售性。
根據本發(fā)明的又一方面,提供了一種如權利要求9所要求保護的設計集成電路的方法。例如通過計算機輔助設計(CAD)工具應用該方法,將導致具有權利要求1所要求保護的所有有利特征的集成電路設計。
如果將多個處理元件中的每個處理元件連接到多個處理元件中的其他處理元件的至少一個子集的步驟,包括將每個處理元件連接到網格中的每個最鄰近的處理元件上,則是一個優(yōu)點。通過將處理元件連接到其所有的最近鄰,可以獲得具有完全互連的網格的IC設計,這產生具有權利要求3所要求保護的IC的有利特征的IC設計。
本發(fā)明是通過非限制性實例的方式并參考附圖來詳細地描述的,其中
圖1描述根據本發(fā)明的集成電路;圖2描述根據本發(fā)明的處理元件的示例性具體實施例;圖3描述根據本發(fā)明的處理元件的另一示例性具體實施例,以及;圖4描述根據本發(fā)明的方法的流程圖。
在圖1中,集成電路100具有處理器,該處理器包括多個以規(guī)則網格形式組織的處理元件120。處理元件120基本上都彼此類似,例如具有基本上相同的功能,并且通過可重配置的互連網絡140互連,可重配置的互連網絡例如為可尋址的數據通信總線或硬連線多路復用器網絡。在每個處理元件120都連接于其最近鄰的意義上講,互連網絡140可以是完全的,或者其可以實現一種不完全的網絡。就后者來說,缺少處理元件120之間的一些互連,如圖1虛線所示。另外,可在兩個處理元件之間提供多個連接路徑,或者可以提供更長距離的線來連接并非是最近鄰的處理元件。出于簡明的原因,在圖1中沒有描述這些替換。
處理元件120耦合于發(fā)布裝置160,如圍繞處理元件120的虛線框所表示的。發(fā)布裝置160負責從中央存儲器180發(fā)送全局通信,例如指令到多個處理元件120。此外,發(fā)布裝置負責處理處理元件120網格中的例外情況和其他的配置環(huán)境切換,例如VLIW的變化。簡而言之,發(fā)布裝置160負責程序排序以及處理元件120的控制。
例如,發(fā)布裝置160將根據其程序計數器的值從中央存儲器180取出指令捆,如VLIW指令,并且將該指令捆分割,并發(fā)送單獨的指令到適當的處理元件120。在下一步驟中,發(fā)布裝置的程序計數器將被定期地改變,例如遞增地增加或減少,并且將取出下一指令捆。然而,如果處理元件120之一發(fā)出檢測到例外情況的信號,例如獲得跳轉指令或滿足分支條件,或者如果被通知中斷等等,那么發(fā)布裝置160將根據例外情況對其程序計數器進行復位,并且必要時將根據程序計數器的復位值,在將新指令發(fā)布到處理元件120之前從處理元件120中刷除冗余數據。本領域熟練的技術人員將認為其是一種眾所周知的方式,來控制實現指令級并行性的處理體系結構。
然而,將集成電路100所需的處理器功能映射到處理器的每個處理元件120上,與具有處理元件120之間的至少部分互連的以規(guī)則網格組織處理元件120相組合,提供了一種優(yōu)于現有的指令級并行化處理器體系結構的重要優(yōu)點。在根據本發(fā)明的集成電路100中,任何處理元件120和相鄰處理元件之間的直接數據通信具有貫穿整個網絡的相同等待時間。因此,根據定義,如果滿足了任何處理元件120和所連接的相鄰處理元件之間的時序約束,那么其就適用于處理元件120的所有(連接的)最近鄰。這不僅意味著處理器體系結構的設計變得更加簡單,而且還提供了數據流驅動處理模式,該模式一般不與指令級并行化的處理有關。
在數據流模式中,一組指令被映射在集成電路100的處理元件120上,并且配置互連網絡140以便將處理元件120連接到其的適當的鄰居上。現在,在一段時間內,例如若干個時鐘周期,將這種配置固定不變,從而使得數據能夠以經典的數據流方式脈動穿過網格。如果網格大得足以映射完整的循環(huán)體,那么這將尤其有用,其意味著可以以高效和并行方式實現循環(huán)執(zhí)行。另外,如果循環(huán)太大而無法將其全部映射到網格上,那么通過將循環(huán)分解為較小的循環(huán),數據依賴性允許(data dependencies permitting),其能夠被整體地映射在網格上,則仍然可以利用數據流概念。反之,如果循環(huán)體太小而不能使網格中的大多數處理元件都工作,那么可以應用軟件流水線處理,如果處理元件120具有像一部分分配的寄存器文件或隨機存取存儲器這樣的數據存儲單元,那么這是尤為有效的,因為中間結果可以被存儲在本地存儲單元中,并且必要時可將其轉發(fā)到相鄰的處理元件。這能夠實現高速度的分布式通信,其一般指在集成電路100的處理器體系結構中發(fā)生極少的通信沖突,假如這種沖突存在的話??梢酝ㄟ^簡單的時鐘周期計數器來對網格保持在數據流模式中的時間段進行監(jiān)視,該時鐘周期計數器耦合并且可集成在發(fā)布裝置160中,但是其他的控制方案也是可行的,像以同步或異步數據流模式監(jiān)視數據或控制輸出。為了進一步的提高靈活性,相互通信(intercommunication)網絡140可以包括硬件以便旁路網格中的單個處理元件120,例如借助于提供穿過處理元件120或在處理元件120周圍直接布線的多路復用器,或者借助硬連線旁路。
現在,將回來參考圖1來描述隨后的附圖及其詳細說明。相應的參考數字將具有相同的含義,除非明確地說明。在圖2中,描述了處理元件120的示例性實施例。處理元件120具有數據存儲單元122,例如為存儲器或分配的寄存器文件的一部分,和功能單元124,其可以為算術邏輯單元(ALU)、地址計算單元(ACU)、乘法器、乘加單元(MAC)等。數據存儲單元122通過內部相互通信網絡140b耦合于功能單元124,其可直接耦合于外部相互通信網路140a或者通過控制單元142耦合于外部相互通信網絡140a??刂茊卧?42例如可以是分布式總線控制器,或響應于發(fā)布裝置160的多路復用器網絡。可以將一起構成相互通信網絡140的內部通信網絡140b和外部通信網絡140a實現為點對點硬連線網絡、數據通信總線、或它們的組合。
在回來參考圖2及其詳細說明而描述的圖3中,給出了處理元件120的另一示例性實施例。多路復用器220a-b、220c-d和220e-f分別通過緩沖器,例如寄存器文件222a-f,耦合于功能單元224、促進單元226和數據存儲單元228。促進單元226可以是促進功能單元或是促進數據存儲單元。這只是通過非限制性實例的方式,在不脫離本發(fā)明的范圍的情況下可以想到其他結構,例如其中幾個單元共享一個緩沖器的結構。在圖3的實施例中,功能單元224可以為2輸入ALU,其數據輸入分別耦合于緩沖器222a和222b。促進單元226可以為2輸入MAC,其數據輸入分別耦合于緩沖器222c和222d,并且數據存儲單元228可以為隨機存取存儲器,其地址輸入耦合于緩沖器222e且數據輸入耦合于緩沖器222f,但是其他許多結構也是可能的。
多路復用器220a-220f的輸入耦合于外部互聯網絡140a和內部互連網絡140b。外部互連網絡140a通過數據輸入側上的數據輸入端口152a-c、和通過輸出端上的輸出裝置260而耦合于處理元件120。數據輸入端口的數量由處理元件120所連接的鄰居的數量限定。輸出裝置250具有多路復用器252、可選的緩沖器254和將用于處理元件120耦合到其相鄰處理元件的輸出端口256。這保證了只有相關數據通過輸出端口256而被廣播到所連接的相鄰處理元件。應當指出,輸出裝置250還可以作為處理元件120的旁路;通過多路復用器252的適當配置,可以將通過輸入端口152a-c接收的數據輸入直接轉發(fā)到其他處理元件。在圖3中,內部互連網絡140b是完全連接的,例如單元224,226和228的每個輸出都耦合于多路復用器220a-f和多路復用器252。應強調的是,這只是通過非限制實例的方式,在不脫離本發(fā)明的范圍的情況下可以替換地使用部分連接的互聯網絡140b。
發(fā)布裝置160可以分布在處理元件120上。在圖3中,本地發(fā)布裝置260通過控制多路復用器220a-f的配置、發(fā)布操作碼給功能單元、發(fā)布地址給數據存儲單元、并且可選地控制多路復用器252的配置,從而負責處理單元120的數據路徑的控制。本地發(fā)布裝置260可以具有其自己的本地操作寄存器,如此通過鏈接所有的本地操作寄存器可簡單地構成全局VLIW指令??蛇x地,可將處理器指令存儲器本身分割為多個存儲器塊,每個存儲器塊對于處理元件120是本地的,每個存儲器塊包含與它的相應處理元件有關的超長指令字的部分。在進一步的實施例中,具有其自己的本地指令存儲器塊和本地操作寄存器的每個本地發(fā)布裝置260,能夠與其自己的本地程序順序和控制邏輯、以及其自己的程序計數器(PC)相關聯,這意味著每個處理元件120可作為VLIW處理器本身運行。
在這一點上,應強調的是,根據本發(fā)明的集成電路100的高度靈活性能夠在其結構中實現超大規(guī)模并行性的集成,其提供了適用于迫切需要的計算性能的集成電路100,例如寬帶數字信號處理,如果當前并非不可能的話,所述迫切需要的計算性能很難以已知的體系結構來實現。因此,由于集成電路100有限的設計成本,因此,將根據本發(fā)明的集成電路100集成到要求這種需要計算的電子設備中,例如,未來一代的移動通信設備,將不僅能夠實現這種未來技術的可行性,而且還能夠使該技術可以負擔的起。
在圖4中,流程圖400描述了用于設計具有根據本發(fā)明的處理體系結構的集成電路的關鍵步驟。
在第一步驟420中,將多個處理元件中的處理元件設計為基本上彼此類似,并且將多個處理元件中的每個處理元件設計為能夠執(zhí)行多個指令中的每個指令。很明顯的是,由于網格中的所有其它處理元件應大體地類似于該單一處理元件120,因此只對單一處理元件120進行設計。這個方法顯著地減少了利用指令級并行性對于這種超大規(guī)模集成電路電路所進行的設計工作。
在第二步驟440中,多個處理元件被布置在規(guī)則網格中,其中在第一方向上多個處理元件中的一個處理元件和多個處理元件中最鄰近的處理元件之間的距離基本上與第二方向上的該處理元件和多個處理元件中最鄰近處理元件之間的距離是相同的。在規(guī)則網格中組織處理元件不僅能夠實現集成電路100的上述可重配置行為,例如在數據流模式和指令級并行性模式之間切換的能力,而且當需要另一互連結構時,還提供了重新使用邏輯布局用于其它應用的可能性。
這可在第三步驟460中實現,其中多個功能單元中的每個處理元件120連接于多個處理元件中的其他處理元件的至少一個子集??蛇x的是,每個處理元件120可以連接于網格中的每個最鄰近的處理元件,以便生成在每個處理元件120連接于每個最鄰近處理元件的意義上講是完全連接的二維網格。用于處理元件120的網格的不同互連網絡140的定義使得能夠根據相同的整體邏輯布局來重新使用處理元件120的網格用于其他應用。在這種情況下,只需要重新定義互連,這意味著只需要小量的設計工作,以及只需要重新開發(fā)一個或幾個互連掩模(例如,VIA掩模,或上層金屬掩模)。這些優(yōu)點在繼續(xù)進行的IC設計的發(fā)展過程中實現了實質的成本降低。
應注意,上述具體實施例只是說明但不限制本發(fā)明,本領域熟練的技術人員將能夠在不脫離附加權利要求的范圍的情況下設計許多替代具體實施例。在權利要求中,置于括號內的任何參考符號都不應看作是對權利要求的限制?!灏ā逡辉~不排除在權利要求中已列出的部件或步驟之外的其他部件或步驟的存在。在元件之前的″一個″一詞不排除多個這種元件的存在。本發(fā)明可以通過包括幾個不同元件的硬件來實現,也可以通過適當編程的計算機來實現。在列舉了幾個裝置的設備權利要求中,這些裝置中的幾個裝置可以通過一個和相同的硬件來體現。在相互不同的從屬權利要求中描述某一措施的事實,不表示不能有利地組合這些措施。
權利要求
1.一種集成電路,包括多個處理元件,用于基本上并行地執(zhí)行多個指令的至少一個子集;發(fā)布裝置,用于通過將程序計數器驅動指令流發(fā)布到多個處理元件來配置多個處理元件;以及可配置的互連裝置,用于將多個處理元件中的每個處理元件連接到多個處理元件中其他處理元件的至少一個子集上;其特征在于多個處理元件中的處理元件基本上都彼此類似,多個處理元件中的每個處理元件都能夠執(zhí)行多個指令中的每個指令;以及多個處理元件以規(guī)則網格的形式布局,其中在第一方向上一個處理元件和多個處理元件中的鄰近處理元件之間的距離基本上與在不同于第一方向的第二方向上該處理元件和多個處理元件中的鄰近處理元件之間的距離相同。
2.根據權利要求1所述的集成電路,其中集成電路包括超長指令字處理器體系結構,而且多個指令的子集包括超長指令字。
3.根據權利要求1所述的集成電路,其特征在于可配置互連裝置將每個處理元件連接到網格中每個最鄰近的處理元件。
4.根據權利要求1或3所述的集成電路,其特征在于可配置的互連裝置包括旁路裝置,用于旁路多個處理元件中的處理元件。
5.根據權利要求1或3所述的集成電路,其特征在于多個處理元件中的處理元件包括數據存儲單元、功能單元和將功能單元耦合到數據存儲單元的內部相互通信網絡。
6.根據權利要求5所述的集成電路,其特征在于處理元件包括至少一個促進單元;功能單元、促進單元和數據存儲單元被組織為超長指令字處理器數據路徑。
7.根據權利要求6所述的集成電路,其特征在于發(fā)布裝置分布在處理元件上。
8.一種數據處理設備,具有輸入端用于接收數字數據流,和具有輸出端用于發(fā)送由數字數據流產生的人力可感知的數據結果,其特征在于輸入端通過權利要求1-7中任一權利要求所述的集成電路耦合到輸出端,該集成電路被設置用于從數字數據流中提取數據結果。
9.一種用于設計集成電路的方法,該集成電路包括多個處理元件,用于基本上并行地執(zhí)行多個指令的至少一個子集;發(fā)布裝置,用于通過將程序計數器驅動指令流發(fā)布到多個處理元件來配置該多個處理元件;以及可配置的互連裝置,用于將多個處理元件中的每個處理元件連接到該多個處理元件中的其他處理元件的至少一個子集上;其特征在于該方法包括步驟將多個處理元件中的處理元件設計為基本上彼此類似,且多個處理元件中的每個處理元件能夠執(zhí)行多個指令中的每個指令;以規(guī)則網格的形式布局多個處理元件,其中在第一方向上一個處理元件和多個處理元件中的鄰近處理元件之間的距離基本上與第二方向上該處理元件和多個處理元件中的鄰近處理元件之間的距離相同;以及將多個處理元件中的每個處理元件連接到多個處理元件中的其他處理元件的至少一個子集上。
10.根據權利要求9所述的方法,其特征在于將多個處理元件中的每個處理元件連接到多個處理元件中的其他處理元件的至少一個子集上的步驟包括,將每個處理元件連接到網格中每個最鄰近的處理元件上。
全文摘要
本發(fā)明描述了一種集成電路(100),其具有由以規(guī)則網格形式組織的多個相同的,或者至少非常類似的處理元件(120)構成的處理器。每個處理元件(120)能夠執(zhí)行處理器的所需功能。處理元件(120)通過可配置的互連網絡(140)互連,并且由程序排序發(fā)布裝置(160)控制,該發(fā)布裝置能夠通過處理元件(120)處理指令流中的例外情況。因此,可以輕易地重新設計集成電路(100),從而減少了設計工作和這種體系結構的市場投放時間。
文檔編號H01L21/822GK1659540SQ03812744
公開日2005年8月24日 申請日期2003年5月21日 優(yōu)先權日2002年6月3日
發(fā)明者B·德奧里維拉卡斯特魯普佩雷拉 申請人:皇家飛利浦電子股份有限公司