欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

集成電路器件的制作方法

文檔序號(hào):6357562閱讀:238來(lái)源:國(guó)知局
專利名稱:集成電路器件的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路器件,其中多個(gè)操作單元布置成矩陣。
相關(guān)技術(shù)FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)傳統(tǒng)上認(rèn)為是如下的一種集成電路器件,其中邏輯門(mén)布置成陣列,且邏輯門(mén)之間的連接能夠自由改變。FPGA的結(jié)構(gòu)可以粗略地分為多個(gè)邏輯模塊和連接這些邏輯模塊的布線。一個(gè)邏輯模塊就是一個(gè)含有查詢表和觸發(fā)器的電路單元,且通過(guò)改變查詢表中的設(shè)定值,其能夠在位單位(bit units)上起邏輯門(mén)的作用,用以獲得邏輯功能,如“與”或“或”。多個(gè)邏輯模塊布置成陣列或矩陣,并且通過(guò)行布線和列布線相互連接。行布線和列布線在布線之間的交叉點(diǎn)處通過(guò)開(kāi)關(guān)矩陣或類似物相連,從而使布線可重組。通過(guò)重組布線,能夠改變邏輯模塊的設(shè)置。
FPGA制造成能夠在晶體管水平改變其連接的結(jié)構(gòu),是即使在FPGA制成之后也能夠改變其一定程度可執(zhí)行功能的集成電路器件。因此,F(xiàn)PGA是如下的一種結(jié)構(gòu),其中通過(guò)相同的硬件能夠?qū)崿F(xiàn)多種專用計(jì)算電路,并且可能對(duì)機(jī)能實(shí)現(xiàn)一定限制程度的動(dòng)態(tài)控制。為了提供能夠應(yīng)用于廣泛用途的結(jié)構(gòu),構(gòu)成FPGA的邏輯模塊具有相同的結(jié)構(gòu),且每個(gè)邏輯模塊所能夠?qū)崿F(xiàn)的邏輯功能僅限制于“與”、“或”或“與非”水平。待處理的數(shù)據(jù)在位單元內(nèi)操作,從而每個(gè)邏輯模塊僅提供有一個(gè)由大約4位的SRAM構(gòu)成的查詢表。
FPGA通過(guò)使用含有查詢表的邏輯模塊而實(shí)現(xiàn)邏輯門(mén)的功能,如“與”門(mén)和“或”門(mén),并通過(guò)用一系列可重組的布線連接該邏輯模塊而實(shí)現(xiàn)多種專用計(jì)算電路的功能。因此相對(duì)于所能夠?qū)崿F(xiàn)的功能,面積效率(area efficiency)較低,且計(jì)算速度也不是特別地高。在改變FPGA待實(shí)現(xiàn)的功能時(shí),必須改變極大數(shù)量的邏輯模塊的功能,從而難以實(shí)現(xiàn)動(dòng)態(tài)改變。即使通過(guò)提供特殊的用于直接分別控制每個(gè)邏輯模塊的硬件可能使改變功能所需的時(shí)間減少,但是在應(yīng)用程序執(zhí)行期間還是難以動(dòng)態(tài)控制該特殊的硬件,而且這種解決辦法也不經(jīng)濟(jì)。
本發(fā)明的發(fā)明人提出了一種集成電路器件,其包括多種類型的操作單元,這些操作單元配備有適合于所需或?qū)S锰幚淼臄?shù)據(jù)路徑(硬件邏輯或電路),其中通過(guò)改變操作單元之間的連接便可能將集成電路器件的機(jī)能定義成所期望的專用處理單元。使用這種集成電路器件,不需要象使用FPGA時(shí)的情況那樣在晶體管水平上改變所有的連接,從而硬件能夠在較短時(shí)間內(nèi)重組。因?yàn)樵摻Y(jié)構(gòu)不需要象FPGA那樣具有晶體管水平上通用適用性,所以封裝密度能夠提高,從而能夠制造出緊湊、經(jīng)濟(jì)的系統(tǒng)。也能夠消除冗余部件,從而提高處理速度,改善AC性能。
然而,因?yàn)镕PGA由多個(gè)較小的功能單元或功能模塊構(gòu)成,所以將這些功能模塊布置成矩陣并且在它們之間安置行布線和列布線的布局過(guò)程具有高度的規(guī)律性,這使得FPGA的設(shè)計(jì)比較容易,并導(dǎo)致元件水平上的面積效率較高。另一方面,含有適合于專用處理的數(shù)據(jù)路徑的操作單元,其數(shù)據(jù)路徑根據(jù)待執(zhí)行的專用處理而不同,所以操作單元并不都具有相同的電路結(jié)構(gòu)。這意味著,在硅基片上制造操作單元所需的面積對(duì)于所有的操作單元并不相等。為了能夠以和由單一類型功能模塊構(gòu)成的FPGA相同的方式制造矩陣,可能要對(duì)各種類型的操作單元進(jìn)行布置使每個(gè)操作單元都占據(jù)相同的面積,而不考慮操作單元中所含有的數(shù)據(jù)路徑。換言之,可能要將多個(gè)操作單元布置在一個(gè)矩陣內(nèi),其中每個(gè)操作單元所給的面積都與需要面積最大的操作單元所占用的面積相同。然而這會(huì)降低面積效率,導(dǎo)致集成電路極其地大,還會(huì)導(dǎo)致AC性能惡化。這使得不能夠完全實(shí)現(xiàn)這種集成電路器件的基本優(yōu)點(diǎn),其由具有適合于專用處理的數(shù)據(jù)路徑的操作單元構(gòu)成。
由上,本發(fā)明的一個(gè)目標(biāo)是設(shè)計(jì)一種實(shí)際的集成電路器件,其包括各種類型具有適合于專用處理的數(shù)據(jù)路徑的操作單元,并提一種集成電路器件,其能夠利用這種操作單元的優(yōu)點(diǎn)。本發(fā)明進(jìn)一步的目的是提供一種緊湊、經(jīng)濟(jì)的集成電路器件,其具有較高的處理速度和良好的AC性能。
本發(fā)明公開(kāi)本發(fā)明的集成電路器件包括數(shù)據(jù)處理模塊,其含有多個(gè)沿著矩陣的第一和第二方向布置的操作單元;多個(gè)第一布線組,其沿著第一方向相應(yīng)于多個(gè)操作單元沿著第一方向的布置伸展,并傳遞每個(gè)操作單元的輸入數(shù)據(jù)和/或輸出數(shù)據(jù);多個(gè)第二布線組,其沿著第二方向相應(yīng)于多個(gè)操作單元沿著第二方向的布置伸展,并傳遞每個(gè)操作單元的輸入數(shù)據(jù)和/或輸出數(shù)據(jù);和多個(gè)切換單元,其設(shè)置在第一和第二布線組的每個(gè)交叉點(diǎn)處,并能夠選擇和連接第一布線組中所含的任何一條布線與第二布線組中所含的任何一條布線。在該集成電路器件中,多個(gè)操作單元包括多種類型的操作單元,其具有適合于專用處理的不同數(shù)據(jù)路徑,或者分成多種類型的操作單元,相同類型的操作單元形成沿著第一或第二方向的布置。
在本說(shuō)明書(shū)中,表達(dá)“操作單元”是指小規(guī)模單元,其(1)以位或字單位處理數(shù)據(jù),(2)配備有適合于專用或特殊處理的數(shù)據(jù)路徑,且(3)能夠執(zhí)行專用或特殊算術(shù)運(yùn)算、專用或特殊邏輯運(yùn)算、或者兩者的組合。這些操作單元也指稱為元件、邏輯元件、邏輯單元或電路單元。在半導(dǎo)體基片上制造多種類型操作單元,其含有不同的或唯一的適合于專用處理的數(shù)據(jù)路徑,所需的面積,很可能對(duì)每種類型的操作單元都不相同。然而,對(duì)于相同類型的操作單元,所占用的面積是相同的。因此,通過(guò)使相同類型的操作單元沿著第一方向或第二方向形成布置,便能夠消除由于操作單元尺寸的差異而導(dǎo)致的波動(dòng)。如果第一方向是行方向(水平方向,側(cè)向或?qū)挾确较?,第二方向便是列方向(垂直方向,徑向或高度方向)。作為一個(gè)實(shí)例,如果相同類型的操作單元形成沿著第一方向的布置,那么便能夠布置該多個(gè)操作單元從而形成具有相同寬度的直帶。因此,多個(gè)操作單元,其數(shù)據(jù)路徑根據(jù)類型而不同且其尺寸也很可能不同,便能夠沿著第一方向布置成直線,而不會(huì)在第二方向上產(chǎn)生冗余空間。因?yàn)椴僮鲉卧刂谝环较虿贾贸芍本€且無(wú)尺寸波動(dòng),所以便可能將至少沿著第一方向的布線組布置成直線。這便有可能提高面積效率和集成電路器件的集成度,從而能夠提供經(jīng)濟(jì)并具有高處理速度和良好AC性能的集成電路器件,在該集成電路器件中,含有不同數(shù)據(jù)路徑的操作單元布置成矩陣。
在布置大量相同類型的操作單元時(shí),操作單元能夠布置成沿著第一或第二方向形成的多條直線。當(dāng)一種類型操作單元的數(shù)目,例如第一類型操作單元,遠(yuǎn)遠(yuǎn)大于第二類型操作單元的數(shù)目時(shí),如果第一類型操作單元簡(jiǎn)單地根據(jù)第二類型操作單元布置的長(zhǎng)度而布置,那么最終數(shù)據(jù)處理模塊的整體形狀會(huì)太長(zhǎng)太細(xì),這會(huì)降低面積效率。在這種情況下,優(yōu)選地通過(guò)將第一類型操作單元的布置與第二類型操作單元的布置相連從而改善數(shù)據(jù)處理模塊的形狀。在這種情況下,在至少部分的數(shù)據(jù)處理模塊中,也就是說(shuō),在與第二類型操作單元的布置一樣寬的范圍內(nèi),相同類型操作單元的布置沿著第一或第二方向形成。
當(dāng)相同類型的操作單元沿著第一方向布置時(shí),甚至其尺寸根據(jù)操作單元的類型而不同的操作單元也能夠無(wú)波動(dòng)地布置成直線或線性線路(linear line),盡管不能保證操作單元沿著第二方向布置成直線。因此,優(yōu)選地將多種類型的操作單元以相等的間隔沿著第一方向布置,從而保證操作單元沿著第二方向布置成直線。在這種情況下,第二方向上的布線組能夠布置成直線,從而能夠使連接操作單元的布線長(zhǎng)度最小化。此外,有可能將第一布線組和第二布線組都布置成直線,從而能夠容易地設(shè)計(jì)如下的集成電路器件,其中具有不同數(shù)據(jù)路徑的操作單元布置成矩陣。當(dāng)?shù)谝环较蛏细鞣N類型操作單元的尺寸不同時(shí),在第二方向上便不可能獲得最有效的布置。然而,通過(guò)設(shè)計(jì)每種類型的操作單元使第二方向上各種類型的操作單元所需要的面積差值相等,并抵消第一方向上的差異,各種類型的操作單元便能夠有效地加以布置,使第一和第二方向上都具有盡可能高的密度。
除了由用于傳遞數(shù)據(jù)的數(shù)據(jù)總線構(gòu)成的總線布線之外,第一和第二布線組應(yīng)當(dāng)優(yōu)選地包括用于傳遞進(jìn)位信號(hào)(carry signal)的進(jìn)位布線(carry wire)。利用這種結(jié)構(gòu),進(jìn)位信號(hào)和顯示真或假的信號(hào)能夠從一個(gè)操作單元通過(guò)與數(shù)據(jù)總線相同的路由傳遞到另一個(gè)操作單元。
操作單元可以從第一布線組或第二布線組中的任何一個(gè)輸入數(shù)據(jù),并可以向這兩者中的任何一個(gè)輸出數(shù)據(jù)。然而,通過(guò)設(shè)定一條規(guī)則,即從一個(gè)布線組輸入數(shù)據(jù)并向另一個(gè)布線組輸出數(shù)據(jù),數(shù)據(jù)便能夠一直從一個(gè)操作單元僅通過(guò)一個(gè)切換單元傳遞到另一個(gè)操作單元。因此,操作單元優(yōu)選地包括用于從第二布線組中的任何一條布線輸入信號(hào)的裝置,和用于向第一布線組中的任何一條布線輸出信號(hào)的裝置。
每一個(gè)操作單元都含有適合于專用處理的數(shù)據(jù)路徑,從而每個(gè)操作單元都能夠具有合適的用于處理(例如算術(shù)運(yùn)算、邏輯運(yùn)算等,甚至處理需要多條輸入數(shù)據(jù)的運(yùn)算)的數(shù)據(jù)路徑。優(yōu)選地,第二布線組形成輸入布線,并且包括一對(duì)布線組,其沿著第二方向在操作單元布置的兩側(cè)上伸展,通過(guò)該布線,便能夠容易地通過(guò)操作單元獲得多條輸入數(shù)據(jù)。
當(dāng)矩陣所含操作單元的數(shù)目增加時(shí),如果這些操作單元以靈活的方式加以連接,則布線的需要量與操作單元一致,從而需要極大數(shù)量的布線。出于這個(gè)原因,優(yōu)選地將矩陣分割成多個(gè)矩陣,將適合于處理延遲數(shù)據(jù)傳遞的操作單元布置在位置相鄰的第一和第二矩陣的邊界上,將第一和第二布線組分隔在第一和第二矩陣之間,和使僅在第一和第二矩陣之間傳送的信號(hào)同時(shí)使用第一和第二矩陣的布線。
同樣優(yōu)選地,具有適合于專用處理的數(shù)據(jù)路徑的操作單元包括多種類型的操作單元,其含有適合于至少一種不同指令或指令級(jí)(instruction level)的處理的數(shù)據(jù)路徑。在本說(shuō)明書(shū)中,除非特別指出,否則表達(dá)“指令”指稱任何指令,其構(gòu)成用于書(shū)寫(xiě)程序的指令組的一部分,并且包括復(fù)合指令、宏指令、函數(shù)調(diào)用等。因此,每一個(gè)操作單元以8位的字節(jié)單位,或者以16、32、或64位的字單位處理數(shù)據(jù)。如果該集成電路器件所執(zhí)行的處理能夠用操作單元所支持指令的編程語(yǔ)言加以描述,那么通過(guò)將程序替換成操作單元的定位和選路,便能夠容易地設(shè)計(jì)和制造出用于執(zhí)行該程序的集成電路器件。
換言之,本發(fā)明提供了一種集成電路器件,其由數(shù)據(jù)處理模塊構(gòu)成,數(shù)據(jù)模塊包括多種類型的沿著矩陣的第一和第二方向布置的操作單元和連接該多種類型操作單元的布線組,多種類型的操作單元包括不同類型的具有適合于執(zhí)行至少一種不同指令的數(shù)據(jù)路徑的操作單元。在設(shè)計(jì)該集成電路器件時(shí),該集成電路器件所執(zhí)行處理至少要部分地轉(zhuǎn)變成用編程語(yǔ)言書(shū)寫(xiě)的中間描述(intermediatedescription),編程語(yǔ)言包括由該多種類型操作單元中的一種或多種支持的或者能夠由其執(zhí)行的指令。接著生成能夠執(zhí)行該中間描述的多種類型操作單元的執(zhí)行配置,并生成數(shù)據(jù)處理模塊,其中對(duì)多種類型操作單元加以布置從而獲得該執(zhí)行配置。這樣,便能夠容易地在短時(shí)間內(nèi)設(shè)計(jì)和制造出能夠執(zhí)行所提交處理的集成電路器件。該設(shè)計(jì)和制造方法所提供的集成電路器件用硬件執(zhí)行所提交的處理,從而具有較高的處理速度。
至于含有適合于在指令級(jí)上進(jìn)行處理的數(shù)據(jù)路徑的操作單元,能夠獲得如下類型的操作單元但不僅限于此。第一種類型的操作單元含有適合于數(shù)據(jù)輸入處理的數(shù)據(jù)路徑。第二種類型的操作單元含有適合于處理表示輸入數(shù)據(jù)地址的數(shù)據(jù)路徑。第三種類型的操作單元含有適合于數(shù)據(jù)輸出處理的數(shù)據(jù)路徑。第四種類型的操作單元含有適合于處理表示待輸出數(shù)據(jù)地址的數(shù)據(jù)路徑。第五種類型的操作單元含有適合于算術(shù)運(yùn)算,如加或減整數(shù),和/或邏輯運(yùn)算(如比較和選擇)的數(shù)據(jù)路徑。乘法也可以包含在第五種類型的操作單元中,盡管這會(huì)使第五種類型的操作單元變得過(guò)大,但比劃分出含有適合于乘法處理的數(shù)據(jù)路徑的第六種類型操作單元要更有效。通過(guò)使用這些類型的操作單元,便可能執(zhí)行描述或定義搜索處理或計(jì)算處理的指令,該處理作為大量處理的一部分會(huì)消耗大量的時(shí)間。對(duì)于以高頻率重復(fù)執(zhí)行的處理,例如信號(hào)處理或循環(huán)處理,通過(guò)使用或分配給大量硬件資源則能夠以較高速度加以執(zhí)行。
換言之,利用本發(fā)明,用傳統(tǒng)的軟件方法,即僅重復(fù)使用少量的硬件資源,執(zhí)行速度不能夠提高的處理,能夠通過(guò)提供或分配大量的硬件資源并執(zhí)行同步處理而加以執(zhí)行,從而使性能改善成為可能。
為了布置用于在數(shù)據(jù)處理模塊中形成平穩(wěn)數(shù)據(jù)流的操作單元,具有適合于處理數(shù)據(jù)輸入指令和/或數(shù)據(jù)輸出指令的數(shù)據(jù)路徑的操作單元優(yōu)選地布置在數(shù)據(jù)處理模塊的兩端。為了執(zhí)行類似流水線的處理,需要確定每個(gè)操作單元消耗時(shí)鐘的數(shù)目。出于這個(gè)原因,優(yōu)選地給每個(gè)操作單元提供用于鎖存輸入數(shù)據(jù)的輸入觸發(fā)器和用于鎖存輸出數(shù)據(jù)的輸出觸發(fā)器。然而,適合于處理輸入指令或輸出指令的數(shù)據(jù)路徑能夠自身作為觸發(fā)器,鎖存字節(jié)或字單位的數(shù)據(jù),且在這種情況下,輸入數(shù)據(jù)和輸出數(shù)據(jù)能夠用單一的觸發(fā)器鎖存。
當(dāng)內(nèi)在數(shù)據(jù)路徑不同時(shí),每個(gè)操作單元所消耗的時(shí)鐘數(shù)目也不同。當(dāng)數(shù)據(jù)處理模塊中所采用的路徑不同時(shí),數(shù)據(jù)到達(dá)操作單元的時(shí)限也不同。出于這個(gè)原因,優(yōu)選地提供第七種類型的操作單元,其含有適合于處理延遲數(shù)據(jù)傳遞時(shí)間的數(shù)據(jù)路徑。在生成操作單元的配置時(shí),生成了包括這種用于調(diào)節(jié)時(shí)限的操作單元的執(zhí)行配置。
為了增加該操作單元所能夠執(zhí)行的處理范圍,有效地是使用第八種類型的操作單元,其含有適合于處理連接位于數(shù)據(jù)處理模塊外部的計(jì)算電路的數(shù)據(jù)路徑。同樣有效地是使用第九種類型的操作單元,其含有能夠根據(jù)查詢表選擇其處理的數(shù)據(jù)路徑。此外,通過(guò)使相同類型的操作單元沿著相同的方向布置,多個(gè)相同類型的操作單元便可以互連從而提供擴(kuò)展的計(jì)算功能。為此,優(yōu)選地使相同類型的操作單元沿著相同的方向布置,其含有用于連接該沿著相同方向布置的多個(gè)相同類型操作單元從而提供擴(kuò)展計(jì)算功能的路徑。作為一個(gè)實(shí)例,在適合于處理算術(shù)運(yùn)算的操作單元實(shí)例中,通過(guò)將低精度的操作單元沿著相同的方向布置便能夠執(zhí)行高精度的計(jì)算處理。
通過(guò)提供多個(gè)數(shù)據(jù)處理模塊和用于連接這些數(shù)據(jù)處理模塊的第三布線組,操作單元配置所能夠操作的處理范圍能夠大大地?cái)U(kuò)展。
利用本發(fā)明的集成電路器件,提供給操作單元的數(shù)據(jù)所采用的路由能夠通過(guò)控制切換單元而加以改變,從而能夠改變用于數(shù)據(jù)處理的操作單元的配置,切換單元能夠選擇和連接第一布線組中的任何布線與第二布線組中的任何布線。因此,本發(fā)明提供了一種集成電路器件,其包括數(shù)據(jù)處理模塊,其中定位了多種類型的操作單元,且用于數(shù)據(jù)處理的多種類型操作單元的配置能夠通過(guò)改變由布線組提供給多種類型操作單元的數(shù)據(jù)所采用的路由而加以改變,該多種類型的操作單元包括不同類型的操作單元,其含有適合于至少一種指令級(jí)上的不同處理的數(shù)據(jù)路徑。利用該集成電路器件,數(shù)據(jù)處理模塊的功能和所執(zhí)行的處理內(nèi)容能夠在集成電路器件已經(jīng)制造出之后加以改變。與FPGA趨向于在晶體管水平上映射(map)電路不同,具有適合于專用處理的數(shù)據(jù)路徑的操作單元的配置能夠改變,從而處理內(nèi)容能夠在短時(shí)間內(nèi)改變。因此,可能提供一種集成電路器件,其中硬件所執(zhí)行的處理內(nèi)容能夠動(dòng)態(tài)地加以改變。
盡管該集成電路器件的數(shù)據(jù)處理模塊具有全部的通用適用性,通過(guò)它能夠執(zhí)行不同的處理,但是每個(gè)操作單元都是一個(gè)專用的電路單元,具有適合于專用或特殊處理的數(shù)據(jù)路徑,使得每個(gè)操作單元的適用性降低。這減少了電路方面的冗余量,從而對(duì)處理無(wú)用的電路幾乎不會(huì)留下,結(jié)果提供了一種緊湊、經(jīng)濟(jì)、具有高處理速度的集成電路器件。
為了提高操作單元配置的靈活性,操作單元優(yōu)選地含有用于從第一布線組和第二布線組中選擇出任何布線并輸入或輸出信號(hào)的裝置。操作單元還優(yōu)選地含有用于存儲(chǔ)布線選擇的可重寫(xiě)配置存儲(chǔ)器,且切換單元也優(yōu)選地含有用于存儲(chǔ)布線選擇的可重寫(xiě)配置存儲(chǔ)器。通過(guò)重寫(xiě)配置存儲(chǔ)器如寄存器的內(nèi)容,數(shù)據(jù)處理模塊的功能能夠動(dòng)態(tài)地加以改變。通過(guò)預(yù)先將待改變的內(nèi)容存儲(chǔ)在存儲(chǔ)器內(nèi),由較寬范圍的操作單元構(gòu)成的功能便能夠容易地在一個(gè)時(shí)鐘內(nèi)加以改變。
通過(guò)安裝用于將配置存儲(chǔ)器的內(nèi)容重寫(xiě)在集成電路器件上的控制單元,便可能提供一種集成電路器件,其中硬件所執(zhí)行的處理內(nèi)容能夠通過(guò)程序而加以改變??刂茊卧梢允切∫?guī)模部件如序列發(fā)生器或微碼存儲(chǔ)器。然而控制單元優(yōu)選地是具有足夠功能以根據(jù)程序改變操作單元配置的處理單元。通過(guò)組合數(shù)據(jù)處理單元,其中操作單元(邏輯元件或邏輯單元)布置成矩陣,與通用處理器如RISC處理器,便提供了一種器件,其中適合于重復(fù)使用有限硬件資源的傳統(tǒng)軟件方法的處理能夠通過(guò)通用處理器而執(zhí)行,執(zhí)行速度不能提高的處理則能夠通過(guò)數(shù)據(jù)處理模塊而執(zhí)行。通用處理器的處理和數(shù)據(jù)處理模塊的處理還有可能平行地加以執(zhí)行。而且,由數(shù)據(jù)處理器構(gòu)成的操作單元有可能設(shè)定另一個(gè)操作單元的配置存儲(chǔ)器。
對(duì)于能夠通過(guò)程序加以控制的集成電路器件,集成電路器件的執(zhí)行程序能夠通過(guò)如下的方法而生成,(I)對(duì)待用編程語(yǔ)言執(zhí)行的處理進(jìn)行中間描述,編程語(yǔ)言包括操作單元所支持的指令,和(II)包括表示能夠執(zhí)行該中間描述的多種類型操作單元執(zhí)行配置的指令。中間語(yǔ)言優(yōu)選地是類似匯編程序的語(yǔ)言,具有較高的線性度從而能夠容易地生成數(shù)據(jù)流程序(data flowgrams)。
在數(shù)據(jù)處理模塊中,硬件所能執(zhí)行的功能和處理的范圍能夠通過(guò)提供如下的操作單元而加以擴(kuò)展,其含有用于改變和/或選擇操作單元部分內(nèi)部數(shù)據(jù)路徑的裝置。內(nèi)部數(shù)據(jù)路徑的改變和/或選擇能夠存儲(chǔ)在操作單元的配置存儲(chǔ)器中。適合于在指令級(jí)上進(jìn)行處理的操作單元的內(nèi)部數(shù)據(jù)路徑是適合于執(zhí)行至少一種指令的數(shù)據(jù)路徑。設(shè)計(jì)集成電路器件和生成執(zhí)行程序的處理過(guò)程生成了一種執(zhí)行配置,其包括內(nèi)部數(shù)據(jù)路徑的選擇和/或改變,還生成了一種執(zhí)行程序,其含有表示選擇和/或改變內(nèi)部數(shù)據(jù)路徑的指令。
附圖簡(jiǎn)述

圖1是顯示根據(jù)本發(fā)明實(shí)施例的集成電路器件結(jié)構(gòu)的框圖。
圖2顯示了矩陣的結(jié)構(gòu)。
圖3顯示了圖2所示矩陣的放大圖。
圖4顯示了傳遞進(jìn)位信號(hào)的布線的布置,其出自圖2所示矩陣中的布線組。
圖5顯示了切換單元的實(shí)例。
圖6顯示了適合于處理輸入數(shù)據(jù)指令的數(shù)據(jù)路徑單元的實(shí)例。
圖7顯示了適合于處理輸出地址指令的數(shù)據(jù)路徑單元的實(shí)例。
圖8顯示了適合于處理執(zhí)行算術(shù)運(yùn)算和/或邏輯運(yùn)算指令的數(shù)據(jù)路徑單元的實(shí)例。
圖9顯示了適合于處理延遲數(shù)據(jù)傳遞時(shí)限的數(shù)據(jù)路徑單元的實(shí)例。
圖10顯示了適合于處理乘法指令的數(shù)據(jù)路徑單元的實(shí)例。
圖11(a)顯示了適合于處理連接位于外部的計(jì)算電路的數(shù)據(jù)路徑單元的實(shí)例。圖11(b)顯示了根據(jù)查詢表選擇其處理的數(shù)據(jù)路徑單元的實(shí)例。
圖12是顯示根據(jù)本發(fā)明的另一個(gè)集成電路器件結(jié)構(gòu)的框圖。
圖13顯示了相連了多個(gè)LSI的幾種實(shí)例。
圖14顯示了本發(fā)明集成電路器件的設(shè)計(jì)和制造方法。
圖15是顯示定位和選路選擇處理的流程圖。
圖16是顯示發(fā)現(xiàn)一個(gè)數(shù)據(jù)流程序配置處理的流程圖。
圖17顯示了中間語(yǔ)言描述的實(shí)例。
圖18顯示了在矩陣中實(shí)現(xiàn)的數(shù)據(jù)流程序的實(shí)例。
圖19顯示了一個(gè)實(shí)例,其中數(shù)據(jù)流程序由操作單元配置構(gòu)成。
圖20顯示了一個(gè)實(shí)例,其中數(shù)據(jù)流程序已經(jīng)映射到矩陣上。
圖21是顯示用于在矩陣中實(shí)現(xiàn)數(shù)據(jù)流程序的配置的實(shí)例。
執(zhí)行本發(fā)明的最佳模式下面參考附圖對(duì)本發(fā)明進(jìn)行說(shuō)明。圖1顯示了一個(gè)實(shí)例,其中系統(tǒng)LSI10設(shè)定成根據(jù)本發(fā)明的集成電路器件。該系統(tǒng)LSI10包括通用處理器11,例如用于執(zhí)行通用處理的RISC處理器,包括根據(jù)執(zhí)行程序3中的指令執(zhí)行的出錯(cuò)處理(error handling),和數(shù)據(jù)處理模塊(下文稱之為“矩陣單元”或“矩陣”)20,其中適合于專用數(shù)據(jù)處理的數(shù)據(jù)流或偽數(shù)據(jù)流由多個(gè)布置成矩陣的操作單元形成。通用處理器(下文也稱作“RISC”)11也根據(jù)執(zhí)行程序3控制矩陣20的配置,從而能夠動(dòng)態(tài)地改變矩陣20的配置。系統(tǒng)LSI10還包括用于控制矩陣20中斷操作的中斷控制單元12、用于向矩陣20提供操作時(shí)鐘信號(hào)的時(shí)鐘發(fā)生器13、使計(jì)算電路能夠更靈活地加以構(gòu)建的FPGA單元14,和用于控制從/向外部輸入和輸出數(shù)據(jù)的總線控制單元15。處理器單元11和矩陣20通過(guò)數(shù)據(jù)總線17,通過(guò)它數(shù)據(jù)能夠在處理器11和矩陣20之間相互交換,和指令總線18,其允許處理器11控制矩陣20的配置和操作。中斷信號(hào)也從矩陣20通過(guò)信號(hào)線19供應(yīng)給中斷控制單元12,從而當(dāng)矩陣20所進(jìn)行的處理結(jié)束時(shí),如果在處理期間出現(xiàn)了錯(cuò)誤,矩陣20的狀態(tài)便能夠反饋給處理器11。
矩陣20和FPGA14通過(guò)數(shù)據(jù)總線21相連。數(shù)據(jù)從矩陣20提供給FPGA14,執(zhí)行處理,且結(jié)果返回給矩陣20。矩陣20通過(guò)負(fù)載總線22和存儲(chǔ)總線23與總線控制單元15相連,并用系統(tǒng)LSI10的外部數(shù)據(jù)總線交換數(shù)據(jù)。因此,數(shù)據(jù)能夠從外部DRAM2或其它外部設(shè)備輸入到矩陣20內(nèi),且矩陣20處理這些數(shù)據(jù)的結(jié)果能夠輸出返回給外部設(shè)備。處理器11也能夠通過(guò)數(shù)據(jù)總線11a和總線控制單元15的組合體向/從外部設(shè)備輸入和輸出數(shù)據(jù)。如果處理器11構(gòu)建成具有內(nèi)部編碼RAM或ROM,那么處理器11的執(zhí)行程序(目標(biāo)程序)3就能夠預(yù)先存儲(chǔ)在處理器11內(nèi)。執(zhí)行程序3還能夠通過(guò)總線11a從LSI10的外部提供。
圖2顯示了矩陣20的結(jié)構(gòu)。矩陣20由68個(gè)操作單元(操作元件)30構(gòu)成,它們布置成17條沿著水平或側(cè)面方向(行方向)伸展的直線,和4條沿著垂直或長(zhǎng)度方向(列方向)伸展的直線,從而多個(gè)操作單元30布置成陣列或矩陣。沿著水平方向伸展的行布線組51和沿著垂直方向伸展的列布線組52布置在這些操作單元30之間。列布線組52包括一對(duì)布線組52x和52y,其分別由列方向上位于操作單元30左側(cè)和右側(cè)的布線構(gòu)成。數(shù)據(jù)通過(guò)這些布線組52x和52y提供給每一個(gè)操作單元30。列布線組52在從頂部數(shù)第9行的操作單元(DEL單元)處分開(kāi),且矩陣20分割成兩個(gè)部分,其由第一矩陣28(其位于頂部并含有8行和4列操作單元30),和第二矩陣29(其位于底部并含有9行和4列操作單元30)構(gòu)成。
圖3顯示了操作單元30和切換單元55的放大圖,切換單元55設(shè)置在行布線組51和列布線組52之間的交叉點(diǎn)處。行布線組51含有足夠的布線,以便從每個(gè)沿著行方向布置的操作單元30(在該實(shí)例中是4個(gè)操作單元30)傳遞字節(jié)(8位)數(shù)據(jù)或字(16位或32位)數(shù)據(jù),也就是說(shuō),8-32位的數(shù)據(jù)。在本實(shí)施例的矩陣20中,行布線組51是具有用于至少4個(gè)通道的足夠布線的總線。還提供了用于傳遞足夠數(shù)量進(jìn)位信號(hào)(其相應(yīng)于數(shù)據(jù)量)的布線。
列布線組52也包括足夠的用于向每個(gè)操作單元30提供字節(jié)或字單位數(shù)據(jù)的布線。在矩陣20的一個(gè)部分中,8個(gè)操作單元30布置成一列直線,從而本實(shí)施例中的列布線組52是具有用于足夠8個(gè)通道的布線總線。還提供了用于傳遞相應(yīng)于數(shù)據(jù)量的足夠數(shù)量的進(jìn)位信號(hào)的布線。
圖4顯示了在本實(shí)施例矩陣20的行布線組51和列布線組52中用于傳遞進(jìn)位信號(hào)而提供的布線51c、52cx和52cy。進(jìn)位信號(hào)能夠用作顯示進(jìn)位的信號(hào)或用作顯示真假的信號(hào),且在矩陣20中,進(jìn)位信號(hào)Ci由操作單元30中的如下單元所使用,即適合于算術(shù)運(yùn)算和邏輯運(yùn)算的數(shù)據(jù)路徑單元(SMA)32b,用于延遲的數(shù)據(jù)路徑單元(DEL)32c,和面向FPGA的數(shù)據(jù)路徑單元(FPG)。因此進(jìn)位信號(hào)布線51c、52cx和52cy設(shè)置成與含有這些數(shù)據(jù)路徑單元的操作單元30相連。
設(shè)置在行布線組51和列布線組52之間每一個(gè)交叉點(diǎn)上的切換單元55構(gòu)建成字節(jié)或字單位數(shù)據(jù)的可重組傳遞路徑,并切換和連接行布線組51中的任何一個(gè)通道與列布線組52中的任何一個(gè)通道。圖3所示的切換單元55包括多個(gè)用于選擇行布線組51中的一個(gè)通道并將該通道與列布線組52相連的選擇器58,和用于存儲(chǔ)這些選擇器58的設(shè)定的配置RAM59。配置RAM59中的數(shù)據(jù)根據(jù)處理器11所提供的數(shù)據(jù)而重寫(xiě),從而行布線組51與列布線組52之間的連接能夠在處理器11的控制下如所期望地加以動(dòng)態(tài)控制。
圖5所示的不同類型的切換單元56含有縱橫交換器57,每一個(gè)縱橫交換器57均與構(gòu)成行布線組51的通道的布線和構(gòu)成列布線組52的通道的布線相連,從而能夠改變通道間的連接。這種類型的切換單元56還含有配置RAM或寄存器59,其中數(shù)據(jù)能夠由處理器11加以設(shè)定,并能夠自由地改變行布線組51和列布線組52之間的連接。
如圖2所示,布置成矩陣20的每個(gè)操作單元30都含有一對(duì)選擇器31x和31y,其用于分別從列布線組52x和52y選擇輸入數(shù)據(jù),和數(shù)據(jù)路徑單元32,其對(duì)選擇器31x和31y所選擇出的輸入數(shù)據(jù)dix和diy執(zhí)行專用處理并將輸出數(shù)據(jù)d0輸出到行布線組51。布置成矩陣20的多個(gè)操作單元30包括多種種類或類型的操作單元,其配備有適合于不同種類專用或特殊處理的數(shù)據(jù)路徑。構(gòu)成每一行的操作單元30,每一個(gè)都配備有相同的數(shù)據(jù)路徑32,其提供相同類型的處理。也就是說(shuō),配備有用于執(zhí)行不同處理的數(shù)據(jù)路徑32的操作單元30布置在不同的行上。
布置在第1行上的元件或操作單元30與負(fù)載總線22相連,并含有適合于處理負(fù)載數(shù)據(jù)的數(shù)據(jù)路徑單元32f。負(fù)載數(shù)據(jù)路徑單元(LD)32f結(jié)構(gòu)的一個(gè)實(shí)例如圖6所示。LD32f含有鎖存輸入數(shù)據(jù)和輸出數(shù)據(jù)的觸發(fā)器41,和在需要轉(zhuǎn)換輸出數(shù)據(jù)通道的情況下存儲(chǔ)通道選擇信息的配置RAM39。LD32f是用于執(zhí)行輸入指令即“輸入”或“裝載”的單元。LD32f從負(fù)載總線22接收數(shù)據(jù)并將數(shù)據(jù)輸出給行布線組51。應(yīng)當(dāng)注意,圖2所示的“LD”及其它隨后將加以解釋的縮寫(xiě)如“BAL”、“LDA”、“SMA”和“DEL”,在本說(shuō)明書(shū)中用于表示數(shù)據(jù)路徑單元32和含有該類數(shù)據(jù)路徑單元32的操作單元30的類型。
下面要說(shuō)明的各種操作單元30每一個(gè)都具有配置RAM39,且通過(guò)用RISC11設(shè)定這些配置RAM39的內(nèi)容,操作單元30與行布線組51和列布線組52之間的連接能夠動(dòng)態(tài)地轉(zhuǎn)換。當(dāng)向操作單元30提供能夠用選擇器加以轉(zhuǎn)換、改變和/或選擇的數(shù)據(jù)路徑和/或其中條件和參數(shù)(包括初始值)能夠設(shè)定的功能時(shí),數(shù)據(jù)路徑和/或該功能能夠通過(guò)設(shè)定配置RAM39中的數(shù)據(jù)而加以控制。
布置在第2和第3行上的操作單元30,其每一個(gè)都含有適合于處理輸出負(fù)載數(shù)據(jù)地址的數(shù)據(jù)路徑單元32a。這些數(shù)據(jù)路徑單元(BLA和LDA)32a結(jié)構(gòu)的一個(gè)實(shí)例如圖7所示。BLA和LDA32a是用于根據(jù)指令如“input.address_external”和“input.address_internal”執(zhí)行表示輸入數(shù)據(jù)地址的指令(函數(shù))的單元。BLA和LDA32a包括由計(jì)數(shù)器和其它元件構(gòu)成的地址發(fā)生器38。地址通過(guò)地址發(fā)布電路(address issuing circuit)38作為輸出數(shù)據(jù)d0而輸出,并通過(guò)行布線組51和列布線組52作為輸入數(shù)據(jù)dix或diy而提供。每個(gè)數(shù)據(jù)路徑單元32a還包括選擇器42,其用于選擇任何一個(gè)作為輸入數(shù)據(jù)而提供的地址,和觸發(fā)器41,其用于鎖存輸入數(shù)據(jù)和輸出數(shù)據(jù)。因此,所裝載的地址數(shù)據(jù)da從矩陣20輸出到總線控制單元15。這些操作單元30的每一個(gè)還包括用于設(shè)定地址發(fā)生器38和選擇器42狀態(tài)的配置RAM39。配置RAM39的內(nèi)容(數(shù)據(jù))由處理器11設(shè)定,從而行布線組51與列布線組52的連接能夠動(dòng)態(tài)地加以改變,且地址發(fā)布電路38的設(shè)定能夠自由地改變。
構(gòu)成矩陣20第2行的操作單元30的BLA32a發(fā)布模塊負(fù)載的地址。另一方面,構(gòu)成第3行的操作單元30的LDA32a發(fā)布用于從模塊已裝載的數(shù)據(jù)中裝載期望數(shù)據(jù)的地址。盡管數(shù)據(jù)路徑單元BLA和LDA在細(xì)節(jié)結(jié)構(gòu)上可以有一些不同,但這些單元分享相同的整體結(jié)構(gòu),如圖7所示。
布置在第4和第5行上的操作單元30,其每一個(gè)都包括適合于算術(shù)運(yùn)算和邏輯運(yùn)算的數(shù)據(jù)路徑單元32b。這些數(shù)據(jù)路徑單元(SMA)32b結(jié)構(gòu)的一個(gè)實(shí)例如圖8所示。SMA32b是用于計(jì)算的基本元件,包括位移電路43和掩蔽電路(mask circuit)44,其用于以位單位取出輸入數(shù)據(jù)dix和diy,其以字節(jié)或字單位提供。每個(gè)SMA32b還包括ALU(算術(shù)邏輯單位)45,其能夠?qū)斎霐?shù)據(jù)dix和diy進(jìn)行加法、減法、比較、邏輯“與”或邏輯“非”。一些SMA32b進(jìn)一步包括用于合并和/或選擇相鄰SMA32b計(jì)算結(jié)果的邏輯單位(LU)46。
SMA32b還包括用于存儲(chǔ)數(shù)據(jù)的配置RAM39,這些數(shù)據(jù)選擇和/或改變對(duì)位移電路43、掩蔽電路44、ALU45和LU46的處理。SMA32b還包括用于鎖存輸入數(shù)據(jù)的觸發(fā)器48、用于鎖存輸出數(shù)據(jù)的觸發(fā)器49、和另一個(gè)用于調(diào)節(jié)時(shí)限的觸發(fā)器FF或類似物。
SMA32b支持算術(shù)運(yùn)算指令和邏輯運(yùn)算指令,如在書(shū)寫(xiě)具有加法、減法、比較、選擇和其他邏輯運(yùn)算功能的程序時(shí)所廣泛使用的“加”、“減”、“比較”、“移位”、“與”和“選擇”。這些計(jì)算處理中的哪一個(gè)或一些應(yīng)當(dāng)單獨(dú)或組合執(zhí)行的設(shè)置,能夠根據(jù)配置RAM39的內(nèi)容(其由RISC11設(shè)定)自由地加以控制,并且能夠在任何時(shí)候加以改變。同樣,固定或即刻數(shù)值能夠用配置RAM39設(shè)定為輸入數(shù)據(jù)dix和diy。進(jìn)位信號(hào)Cix和Ciy的設(shè)定條件相同。通過(guò)提供向ALU45反饋輸出數(shù)據(jù)d0的路徑,還可能構(gòu)建出狀態(tài)機(jī)或計(jì)數(shù)器。還支持輸入數(shù)據(jù)dix和diy的對(duì)換功能,且該功能也能夠用于提高列布線組52的選擇自由度和利用效率。
數(shù)據(jù)路徑單位32b提供有能夠輸入和選擇進(jìn)位信號(hào)Cix和Ciy的路徑,通過(guò)它便可能根據(jù)這些進(jìn)位信號(hào)控制ALU45和LU46。還提供有用于輸出與ALU45的操作結(jié)果相關(guān)的進(jìn)位信號(hào)C0的路徑。對(duì)相鄰SMA32b的進(jìn)位信號(hào)所執(zhí)行的操作結(jié)果能夠輸入到ALU45和LU46,而不是僅僅選擇進(jìn)位信號(hào)。從而能夠?qū)σ粚?duì)進(jìn)位信號(hào)執(zhí)行操作,進(jìn)而能夠以極大的自由度使用該進(jìn)位信號(hào)。
安裝在SMA32b左-右對(duì)中其中一個(gè)SMA32b上的LU46,能夠?qū)ψ髠?cè)SMA32b的ALU和右側(cè)SMA32b的ALU的輸出執(zhí)行邏輯運(yùn)算。為此,LU46由配置RAM39加以控制,并能夠通過(guò)沿著行方向布置成相鄰左-右位置的兩個(gè)SMA32b執(zhí)行擴(kuò)展功能。作為一個(gè)實(shí)例,當(dāng)輸入數(shù)據(jù)dix為32位長(zhǎng)時(shí),兩條輸入數(shù)據(jù)dix和diy能夠表達(dá)成一條輸入數(shù)據(jù),從而以雙精度(64位)執(zhí)行處理。
在本實(shí)施例的矩陣20中,含有SMA32b的執(zhí)行單元30形成了第7、8、11和13行。
安裝在第6行的操作單元30每一個(gè)都含有數(shù)據(jù)路徑單元32c,其適合于處理延遲傳遞數(shù)據(jù)的時(shí)限。數(shù)據(jù)路徑單元(DEL)32c結(jié)構(gòu)的一個(gè)實(shí)例如圖9所示。DEL32c包括延遲電路47,其每一個(gè)都由多個(gè)選擇器和觸發(fā)器的組合構(gòu)成,輸入側(cè)觸發(fā)器48,輸出側(cè)觸發(fā)器49,和用于選擇電路的選擇器42。每個(gè)延遲電路47的延遲能夠由配置RAM39中的數(shù)據(jù)設(shè)定為0-5時(shí)鐘(clock),且X和Y系統(tǒng)中1-7時(shí)鐘的延遲能夠分別加以控制。根據(jù)配置RAM39的設(shè)定,X系統(tǒng)和Y系統(tǒng)能夠串聯(lián)起來(lái)從而施加雙倍延遲時(shí)間。與數(shù)據(jù)一起由行布線組51和列布線組52攜帶的進(jìn)位信號(hào)Cix和Ciy也能夠通過(guò)類似的數(shù)據(jù)路徑延遲和輸出。
通過(guò)提供配備有延遲數(shù)據(jù)路徑DEL32c的操作單元30,各種類型數(shù)據(jù)路徑單元32內(nèi)的信號(hào)延遲便能夠按照需要加以調(diào)節(jié)。因此,便可能通過(guò)組合用于算術(shù)運(yùn)算和邏輯運(yùn)算的SMA32b和用于乘法運(yùn)算的MUL32d(后面將進(jìn)行說(shuō)明)來(lái)調(diào)節(jié)在數(shù)據(jù)流形成時(shí)出現(xiàn)的延遲時(shí)間的差異,而不必給每個(gè)數(shù)據(jù)路徑單元32都提供用于調(diào)節(jié)延遲的觸發(fā)器和選擇器。這簡(jiǎn)化了每個(gè)數(shù)據(jù)路徑單元32的結(jié)構(gòu),提高了數(shù)據(jù)路徑單元32的適用性,并且可能使每個(gè)數(shù)據(jù)路徑單元32所占用的面積最小化。每個(gè)數(shù)據(jù)路徑單元32可以配備有用于關(guān)閉輸入數(shù)據(jù)的輸入側(cè)觸發(fā)器48和用于鎖存輸出數(shù)據(jù)的輸出側(cè)觸發(fā)器49,或者用于同時(shí)鎖存輸入數(shù)據(jù)和輸出數(shù)據(jù)的觸發(fā)器41,從而用于輸出未經(jīng)處理或已經(jīng)過(guò)處理的輸入數(shù)據(jù)所需的等待時(shí)間(潛伏時(shí)間)能夠控制在時(shí)鐘單位內(nèi)。因此,通過(guò)DEL32c的功能能夠容易地補(bǔ)償潛伏時(shí)間的差異,并且能夠維持操作單元30組合體流水線計(jì)算的時(shí)限。
數(shù)據(jù)路徑單元DEL32c也起作用,從而將列布線組52提供的數(shù)據(jù)傳遞給行布線組51。布置在第9行上的操作單元30選擇由第一矩陣28的列布線組52提供的數(shù)據(jù),并將該數(shù)據(jù)輸出到第二矩陣29的行布線組51。這樣,第一矩陣28的數(shù)據(jù)能夠用延遲數(shù)據(jù)路徑單元DEL 32c的功能加以選擇,并提供給第二矩陣29,從而第一矩陣28的列布線組52能夠與第二矩陣29的列布線組52分開(kāi)。因此,列布線組52的布線數(shù)量能夠保持在如下數(shù)量,即覆蓋一定數(shù)目的構(gòu)成第一矩陣28或第二矩陣29的操作單元所需的數(shù)量,這便有可能減少布線占用的面積,從而簡(jiǎn)化切換單元55或56的結(jié)構(gòu),其用于從由布線組構(gòu)成的布線組中選擇數(shù)據(jù)。
當(dāng)在矩陣20中構(gòu)建數(shù)據(jù)流時(shí),DEL32c自動(dòng)嵌入以進(jìn)行時(shí)限調(diào)節(jié)或類似功能。還可能在程序中書(shū)寫(xiě)“延遲”指令,從而調(diào)節(jié)數(shù)據(jù)流之間或數(shù)據(jù)流與RISC處理器之間的時(shí)限,且在此情況下,DEL32c用作執(zhí)行延遲指令的操作單元。
布置在第10行上的操作單元30每一個(gè)都含有數(shù)據(jù)路徑單元32d,其適合于執(zhí)行“乘法”指令所表示的乘法處理。數(shù)據(jù)路徑單元(MUL)32d結(jié)構(gòu)的一個(gè)實(shí)例如圖10所示。四個(gè)MUL32d中的每一個(gè)都含有一個(gè)沿著行方向布置的16位*16位(32位結(jié)果)的乘法器MUL61。還提供數(shù)據(jù)路徑62和63,用于對(duì)四個(gè)乘法器MUL61中每一個(gè)的輸出執(zhí)行計(jì)算處理。本實(shí)施例中用于乘法處理的數(shù)據(jù)路徑單元MUL32d的功能,能夠通過(guò)組合該四個(gè)沿著行方向布置的MUL32d而加以擴(kuò)展。作為一個(gè)實(shí)例,乘法能夠以二倍精度執(zhí)行。因此,MUL61、CSA62、CPA63和選擇器64的功能由如下數(shù)據(jù)加以控制,其設(shè)定在數(shù)據(jù)路徑單元32d的配置RAM39內(nèi)。
更詳細(xì)地講,最左邊的MUL61(AH*BH)將較高16位的輸入數(shù)據(jù)dix與較高16位的輸入數(shù)據(jù)diy相乘,下一個(gè)MUL61(AH*BL)將較高16位的輸入數(shù)據(jù)dix與較低16位的輸入數(shù)據(jù)diy相乘,MUL61(AL*BH)將較低16位的輸入數(shù)據(jù)dix與較高16位的輸入數(shù)據(jù)diy相乘,而MUL61(AL*BL)將較低16位的輸入數(shù)據(jù)dix與較低16位的輸入數(shù)據(jù)diy相乘。之后,乘法器的結(jié)果通過(guò)CSA62和CPA63加和在一起,從而沿著行方向布置的4個(gè)MUL32d作為32位*32位(64位結(jié)果)的乘法器進(jìn)行操作。盡管通過(guò)用SMA32b加和每個(gè)MUL32d的乘法結(jié)果,也可能獲得相同的結(jié)果,其中加和是通過(guò)將MUL32d沿著行方向布置成直線并為執(zhí)行加法的計(jì)算器添加少量專用布線而實(shí)現(xiàn)的,但是相同的結(jié)果也能夠用較短的延遲、較少量的門(mén)而獲得。
不對(duì)MUL32d進(jìn)行布置,通過(guò)給SMA32b添加乘法功能而制造的數(shù)據(jù)路徑單元(SMAM)可以設(shè)置在SMA32b的位置上或者與SMA32b布置在一起。一個(gè)操作單元30含有多少計(jì)算功能,以及如何通過(guò)設(shè)定配置RAM39選擇和使用操作單元的功能,取決于矩陣20的設(shè)計(jì)概念,并且可以與實(shí)施例不同。在本發(fā)明中,矩陣20包括多種類型的含有不同數(shù)據(jù)路徑的操作單元30,雖然每個(gè)操作單元30能夠處理的處理內(nèi)容在范圍或適用性上存在差異。因此,與如下矩陣相比,即其中布置了具有相同結(jié)構(gòu)并支持所有類型處理的處理單元,顯然減少了冗余和無(wú)用空間的數(shù)量,減少了冗余和無(wú)用處理時(shí)間,改善了AC性能。
布置在第14行上的操作單元30每一個(gè)都含有數(shù)據(jù)路徑單元32,其作為安裝在矩陣20外部的FPGA14界面。起界面功能的數(shù)據(jù)路徑單元(FPG)32e的結(jié)構(gòu)如圖11(a)所示。FPG32e包括用于選擇輸入數(shù)據(jù)的選擇器42、用于鎖存輸入數(shù)據(jù)并將輸入數(shù)據(jù)提供給脫片(offchip)FPGA14的觸發(fā)器48、和用于鎖存脫片(offchip)FPGA14的輸出并設(shè)定該輸出作為輸出數(shù)據(jù)的觸發(fā)器49。通過(guò)使用該FPG32e,矩陣20內(nèi)的處理便能夠通過(guò)向中斷芯片F(xiàn)PGA14提供輸入數(shù)據(jù)并在FPGA14內(nèi)進(jìn)行處理之后將數(shù)據(jù)返回給矩陣20而連續(xù)執(zhí)行。對(duì)支持如下指令的操作單元,即在LSI10所執(zhí)行的應(yīng)用程序中出現(xiàn)非常頻繁的指令,加以選擇、設(shè)計(jì)和布置,作為安裝在矩陣20內(nèi)的操作單元30。一旦安裝,功能適用性有限的操作單元30將降低面積效率,所以這種操作單元30不布置在矩陣20內(nèi)。通過(guò)提供數(shù)據(jù)路徑單元FPG32e,該適用性有限的處理和功能就能夠用硬件以高速加以處理。
每個(gè)FPG32e都是向矩陣引入外部界面的數(shù)據(jù)路徑單元,具有良好的通用適用性,并具有能夠不僅限于連接FPGA的外部處理電路。FPG32e能夠連接ASIC或其它LSI,其可以包括本實(shí)施例的矩陣20。
布置在第15和16行上的操作單元30含有數(shù)據(jù)路徑單元STA和BSA,其適合于發(fā)布用于存儲(chǔ)操作的地址。數(shù)據(jù)路徑單元STA和BSA執(zhí)行表示輸出地址的指令,指令形式與上面提到的表示輸入地址的指令相同。與圖7所示數(shù)據(jù)路徑單元32a相同類型的電路能夠用作發(fā)布地址的功能元件。有兩種類型的地址會(huì)發(fā)布給存儲(chǔ)器,即用數(shù)據(jù)路徑單元BSA發(fā)布用于存儲(chǔ)已轉(zhuǎn)換給模塊的數(shù)據(jù)的地址,和用數(shù)據(jù)路徑單元STA發(fā)布用于前模塊的地址。
含有數(shù)據(jù)路徑單元ST(其適合于根據(jù)諸如“輸出”和“存儲(chǔ)”指令輸出數(shù)據(jù))的操作單元30布置在位于底部的第17行上。盡管這些數(shù)據(jù)路徑單元也稱作數(shù)據(jù)路徑單元ST,但是也能夠使用結(jié)構(gòu)與用于算術(shù)運(yùn)算的數(shù)據(jù)路徑單元32b基本相同的數(shù)據(jù)路徑單元。當(dāng)為矩陣20內(nèi)的算術(shù)運(yùn)算結(jié)果指出外部存儲(chǔ)地址時(shí),數(shù)據(jù)便通過(guò)操作單元ST而輸出。
本發(fā)明中操作單元30的類型并不僅限于上面給出的例子。圖11(b)顯示了數(shù)據(jù)路徑單元(RAM)32g的結(jié)構(gòu),其包括用于查詢表的SRAM65。輸入數(shù)據(jù)dix能夠用作地址,而輸入數(shù)據(jù)diy能夠用作數(shù)據(jù),從而當(dāng)數(shù)據(jù)和地址同時(shí)提供時(shí)便能夠執(zhí)行寫(xiě)入,而當(dāng)僅提供地址時(shí)便執(zhí)行讀出。SRAM65配備有多個(gè)存儲(chǔ)體(bank),其使用能夠根據(jù)配置RAM39的設(shè)定而切換。當(dāng)四個(gè)RAM32g沿著行方向布置成直線時(shí),RAM32g便能夠當(dāng)四個(gè)8位RAM、兩個(gè)16位RAM或一個(gè)32位RAM使用。數(shù)據(jù)路徑單元32g能夠當(dāng)查詢表使用,其根據(jù)對(duì)字節(jié)或字單位的輸入數(shù)據(jù)所執(zhí)行的期望功能而獲得輸出數(shù)據(jù)。這在通過(guò)矩陣20實(shí)現(xiàn)余弦轉(zhuǎn)換處理或CRC計(jì)算時(shí)是有用的。
本發(fā)明的系統(tǒng)LSI10是集成電路器件的一個(gè)實(shí)例,含有多個(gè)操作單元30,其沿著第一方向(在本實(shí)施例中是行或水平方向)和第二方向(在本實(shí)施例中是列方向或垂直方向)布置成矩陣。該多個(gè)操作單元30包括多種種類或類型的操作單元,其都含有適合于不同專用處理的數(shù)據(jù)路徑單元32,數(shù)據(jù)路徑單元32具有適合于輸入數(shù)據(jù)的數(shù)據(jù)路徑單元32f、適合于處理發(fā)布數(shù)據(jù)地址的數(shù)據(jù)路徑單元32a、適合于處理或邏輯運(yùn)算的數(shù)據(jù)路徑單元32b、適合于乘法處理的數(shù)據(jù)路徑單元32d、和上面作為例子給出的適合于處理延遲數(shù)據(jù)傳遞的數(shù)據(jù)路徑單元32c。在多種類型操作單元30之間傳遞數(shù)據(jù)的行布線組51和列布線組52之間的連接由切換單元55加以控制,并通過(guò)改變這些操作單元30之間的連接,能夠在矩陣20內(nèi)定義執(zhí)行期望數(shù)據(jù)處理的數(shù)據(jù)流類型專用計(jì)算電路。這意味著,本實(shí)施例的矩陣20能夠在短時(shí)間內(nèi)通過(guò)改變操作單元30之間的連接而重組為具有不同處理內(nèi)容的專用計(jì)算電路,而不必象FPGA那樣改變所有晶體管之間的連接。與FPGA的邏輯模塊不同,操作單元30不具有如下的結(jié)構(gòu),即要求在晶體管水平上具有通用適用性,且每個(gè)操作單元30都含有用于專用處理的數(shù)據(jù)路徑單元32,從而能夠省去冗余電路并提高封裝密度。因此,有可能提供一種緊湊、經(jīng)濟(jì)的系統(tǒng),其中硬件的處理內(nèi)容能夠加以改變。冗余部件的數(shù)量能夠顯著減少,從而與FPGA相比,處理速度能夠大幅上升,AC性能也能夠改善。
如圖6-11所示,適合于不同處理的數(shù)據(jù)路徑單元32a-32g具有不同的結(jié)構(gòu)。因此每個(gè)數(shù)據(jù)路徑單元都能夠以高速度執(zhí)行其所傾向的處理,但是每個(gè)數(shù)據(jù)路徑單元所占用的面積存在差異。出于這個(gè)原因,在本實(shí)施例的矩陣20中,含有相同功能數(shù)據(jù)路徑單元32的操作單元30沿著行方向布置成直線,從而即使操作單元30所占用的面積根據(jù)操作單元30中數(shù)據(jù)路徑單元32的類型而不同,也能夠維持行方向上的線性。即使數(shù)據(jù)路徑單元32的類型不同,通過(guò)使各行之間的間隔相等從而使行方向上的斜度相同,同樣能夠維持列方向上的線性。這使得以線性方式布置行布線組51和列布線組52成為可能。
也就是說(shuō),通過(guò)將具有相同數(shù)據(jù)路徑單元32的操作單元30沿著行方向且之間以相同的間隔布置,操作單元30之間尺寸的差異便能夠由列方向上的間隔抵消,從而即使列方向上的間隔每行之間均不同,也能夠維持線性,且布線也能夠象行布線組51一樣加以線性布置。也有可能設(shè)計(jì)出行方向和列方向互換的矩陣20,這種矩陣也在本發(fā)明的范圍之內(nèi)。
如上所述,有可能以極高的效率將尺寸不同且所具有的數(shù)據(jù)路徑單元32的結(jié)構(gòu)也不同的操作單元30布置成矩陣。還有可能對(duì)連接這些操作單元30的行和列布線組的布線組(總線)加以線性布置。因此能夠提供更加緊湊、成本低廉且制成后仍能夠設(shè)定功能的可重組集成電路器件。相對(duì)于FPGA,能夠進(jìn)行高速處理并具有良好AC性能的操作單元30能夠布置成更加緊湊的布置并且用盡可能短的布線連接,從而便能夠提供可進(jìn)行最高速度處理的集成電路器件。
這樣,當(dāng)矩陣20起數(shù)據(jù)流類型處理器件或裝置的功能時(shí),將具有相同功能數(shù)據(jù)路徑單元32的操作單元30沿著行方向進(jìn)行布置是有效的。作為一個(gè)實(shí)例,在上面的情況下,用于輸入數(shù)據(jù)的操作單元30沿著位于列方向一端的第1行進(jìn)行布置,用于輸出數(shù)據(jù)的操作單元30沿著位于列方向另一端的第17行進(jìn)行布置。當(dāng)從寬的視角進(jìn)行觀察時(shí),在矩陣20內(nèi)形成了一條或多條從頂部朝向底部的數(shù)據(jù)流,其中適合于其他處理的操作單元30相應(yīng)于數(shù)據(jù)流進(jìn)行布置。使用行布線組51和列布線組52還可能形成一條或多條從底部朝向頂部的數(shù)據(jù)流,從而可能執(zhí)行如下的數(shù)據(jù)處理,其能夠最大地利用布置在矩陣20內(nèi)的操作單元30。
正如適合于算術(shù)運(yùn)算的數(shù)據(jù)路徑單元32b和適合于乘法的數(shù)據(jù)路徑單元32d一樣,相同類型的操作單元30能夠通過(guò)將操作單元30沿著相同的方向布置而連接在一起。在矩陣20中,操作單元30能夠分離地使用,且擴(kuò)展計(jì)算功能,如具有更高精度的操作,也能夠通過(guò)編組或連接沿著行方向布置的操作單元而提供。
每個(gè)操作單元30、每個(gè)切換單元55或56都含有配置存儲(chǔ)器,通過(guò)配置存儲(chǔ)器,這些單元能夠由處理器11的設(shè)定數(shù)據(jù)分別地加以控制。因此,操作單元30的配置能夠由處理器11自由地加以改變,并且與電路在晶體管水平進(jìn)行映射的FPGA不同,有可能改變的操作單元30的配置,其含有適合于事先執(zhí)行或構(gòu)建的專用處理的數(shù)據(jù)路徑單元32,從而能夠在短時(shí)間內(nèi),幾乎在一個(gè)時(shí)鐘內(nèi),改變操作單元30組合體所執(zhí)行的功能。
此外,在每個(gè)操作單元30中,構(gòu)成數(shù)據(jù)路徑單元32的邏輯門(mén)(如選擇器和ALU)的功能,能夠由處理器11通過(guò)配置RAM39而分別地加以設(shè)定。結(jié)果,操作單元30自身的功能能夠在數(shù)據(jù)路徑單元32所能夠提供的功能范圍內(nèi)靈活地加以改變。利用本實(shí)施例的矩陣20,數(shù)據(jù)流或偽數(shù)據(jù)流能夠處理極寬范圍的功能。有可能要選擇和布置操作單元30的類型,其適合于使用LSI10的應(yīng)用,如網(wǎng)絡(luò)處理或圖象處理,從而能夠?qū)崿F(xiàn)具有高封裝效率的集成電路器件。
應(yīng)當(dāng)注意,在本實(shí)施例中,除了有可能如上所述地交換行布線組51和列布線組52之外,行和列也能夠象操作單元30的布置方向一樣進(jìn)行交換。數(shù)據(jù)也可以通過(guò)行布線組和列布線組中的任何一個(gè)從/向操作單元30輸入/輸出。然而,如上面說(shuō)明的矩陣20所示,通過(guò)設(shè)定如下規(guī)則,即數(shù)據(jù)由一個(gè)布線組輸入(在上面的例子中是列布線組52)并由另一個(gè)布線組輸出(在上面的例子中是行布線組51),通常數(shù)據(jù)能夠從一個(gè)操作單元30通過(guò)一個(gè)切換單元55轉(zhuǎn)移到另一個(gè)操作單元。
圖12顯示了與本發(fā)明相關(guān)的LSI的不同實(shí)例。在圖12中,省略了中斷控制單元12和時(shí)鐘發(fā)生單元13,盡管在圖1所示的LSI中含有相同類型的單元。在本實(shí)例LSI10的矩陣20中,六個(gè)操作單元30布置在第二行之后的行上。其中左側(cè)的四個(gè)操作單元30是每一個(gè)都含有數(shù)據(jù)路徑單元32g(其起RAM的作用)的操作單元30;每一個(gè)都含有數(shù)據(jù)路徑單元32a(其起發(fā)布待裝載數(shù)據(jù)地址的BLA作用)的操作單元30;和每一個(gè)都含有數(shù)據(jù)路徑單元32a(其也起發(fā)布地址的LDA作用)的操作單元30。然而位于每行右側(cè)的兩個(gè)操作單元30是每一個(gè)都含有數(shù)據(jù)路徑單元32b(其起支持算術(shù)和邏輯運(yùn)算的SMA作用)的操作單元30。這是因?yàn)樵谶x擇操作單元30時(shí),起SMA32b作用的操作單元的選擇數(shù)量需要比其他類型的操作單元更多,以滿足本LSI10所要求的規(guī)格。和前面一樣,通過(guò)將SMA32b邏輯單元按照與其他類型操作單元相同的布置方式加以布置有可能設(shè)計(jì)出矩陣20,其中每一行有四個(gè)操作單元30布置成直線。盡管依賴于構(gòu)成LSI10的其他單元的布置,但是單考慮矩陣20,這種布置在高度或長(zhǎng)度(列)方向上拉長(zhǎng)了,這降低了面積效率。同樣,因?yàn)殚L(zhǎng)度方向上行數(shù)的增加,列布線組52載荷的增加和段(segment)數(shù)的增加,結(jié)果需要DEL32c邏輯單元,并降低了處理速度。
在本實(shí)例的矩陣20中,大量具有SMA32b的操作單元30通過(guò)添加其他類型的操作單元30而沿著行方向布置,從而矩陣20的整體形狀近似于正方形。在該矩陣20中,布置在相同行上的所有操作單元并不需要是相同的類型。然而,在布置有較少量操作單元30(其含有例如RAM32g、BLA和LDA)的區(qū)域內(nèi),相同類型的操作單元30沿著行方向布置,從而能夠保持行方向上的線性。列方向的線性如較早前所說(shuō)明的通過(guò)將各種類型的操作單元30以相等的斜度沿著行方向布置而加以保持。
在本實(shí)例的矩陣20中,6個(gè)輸入緩沖器24和6個(gè)輸出緩沖器25分別布置在負(fù)載總線22和存儲(chǔ)總線23上。其中,2個(gè)輸入緩沖器24和2個(gè)輸出緩沖器25在總線控制單元15位置處分別與擴(kuò)展輸入(擴(kuò)充或無(wú)限制)界面26和擴(kuò)展輸出(擴(kuò)充或無(wú)限制)界面27相連。擴(kuò)展界面26和27用作矩陣20之間的界面。因此,有可能將多個(gè)矩陣20布置在同一個(gè)芯片上,并有可能用擴(kuò)展界面26和27連接矩陣20,或用擴(kuò)展界面26和27將多個(gè)芯片10與矩陣20相連。
通過(guò)使用擴(kuò)展界面26和27,數(shù)據(jù)流類型計(jì)算機(jī)或處理器能夠通過(guò)使用多個(gè)含有矩陣20的LSI10加以擴(kuò)展或伸展。通過(guò)增加可被連接的矩陣20的數(shù)目,便能夠增加可被連接的操作單元30的數(shù)目,從而有可能執(zhí)行更復(fù)雜的處理。這還能通過(guò)改變操作單元30的配置而增加矩陣能夠重組的范圍,從而能夠提供更加靈活的集成電路器件。具有改進(jìn)性能(例如平行性增加)的操作單元30的配置,也能夠靈活地加以選擇。還可能通過(guò)沿著三個(gè)方向布置多個(gè)矩陣20構(gòu)建出三維矩陣。
圖13(a)顯示了計(jì)算處理系統(tǒng)或集成電路器件9,其中矩陣20通過(guò)用擴(kuò)展界面26和27連接n個(gè)LSI10而有效地?cái)U(kuò)展了n倍。這些LSI能夠組合成二維或三維。
在連接有多個(gè)LSI10的系統(tǒng)9中,有可能使用擴(kuò)展界面26和27作為用于向多個(gè)矩陣20或含有該矩陣20的LSI10傳遞所需信息的總線。圖13(b)-13(d)顯示了各種實(shí)例。在圖13(b)中,LSI10通過(guò)擴(kuò)展界面而連接成鏈。在圖13(c)中,LSI10連接成樹(shù)狀形式。在圖13(d)中,LSI10連接成環(huán)狀形式。
可以使用簡(jiǎn)單的運(yùn)算法則傳遞數(shù)據(jù),作為一個(gè)實(shí)例,可以事先提供簡(jiǎn)單的程序從而為每個(gè)LSI10發(fā)送初始設(shè)定。用于控制系統(tǒng)9的LSI(在使用鏈狀連接形式時(shí)是鏈中的第一個(gè)LSI,在使用樹(shù)狀連接形式時(shí)是樹(shù)頂部的LSI,或LSI環(huán)中的任何一個(gè)LSI),為下一個(gè)LSI10提供數(shù)據(jù)形式的信息和權(quán)標(biāo)(token),且接收該信息的LSI將該信息作為自身使用的信息(information intended for itself)加以處理并同時(shí)將該信息傳遞給下一個(gè)LSI10。在每個(gè)矩陣20中,信息內(nèi)容的判斷以及至于信息是否準(zhǔn)備由該矩陣20使用,能夠用矩陣20中的任何一個(gè)操作單元30加以定義。信息的傳遞終點(diǎn)可以是含有RAM功能元件的操作單元30、處理器11的RAM或每個(gè)操作單元30的配置RAM39。
發(fā)送的信息包括用于RISC處理器11的程序3、設(shè)定在矩陣20的配置RAM39內(nèi)的信息及類似信息。為了將信息設(shè)定在配置RAM39內(nèi),從擴(kuò)展輸入界面26接收的設(shè)定信息能夠通過(guò)輸入總線23和總線控制單元15用矩陣20的存儲(chǔ)功能元件表示操作單元30配置RAM39的地址而寫(xiě)入。信息可以暫時(shí)存儲(chǔ)在外部DRAM2中,并能夠用處理器11的功能元件傳遞給配置RAM39。
傳遞信息還包括用于控制過(guò)時(shí)限的信息。數(shù)據(jù)能夠以恒定周期(如1秒間隔)作為系統(tǒng)9的基本時(shí)鐘而加以傳遞,從而能夠使構(gòu)成系統(tǒng)9的多個(gè)LSI10內(nèi)的處理同步化。
圖14顯示了本實(shí)施例LSI10的設(shè)計(jì)和制造方法。一旦提供了待由LSI10執(zhí)行的作為規(guī)范(specification)71的處理,便執(zhí)行用于將規(guī)范71轉(zhuǎn)換成源文件73的處理72,源文件73用編程語(yǔ)言書(shū)寫(xiě)并由LSI10執(zhí)行。該轉(zhuǎn)換處理72參考操作單元庫(kù)79并將用標(biāo)準(zhǔn)高級(jí)語(yǔ)言如ANSI-C書(shū)寫(xiě)的規(guī)范71轉(zhuǎn)換成中間表達(dá)73,其用編程語(yǔ)言書(shū)寫(xiě)(下文稱作“中間語(yǔ)言”)并包括操作單元30所支持的指令。該轉(zhuǎn)換處理72可以手動(dòng)執(zhí)行,或者用軟件如編譯程序執(zhí)行。
在構(gòu)成矩陣20的操作單元30中,操作單元LD含有數(shù)據(jù)路徑單元32f并適合于處理用于輸入數(shù)據(jù)的輸入指令。操作單元BLA和LDA含有數(shù)據(jù)路徑單元32a并適合于處理表示輸入數(shù)據(jù)地址的指令。操作單元ST適合于處理用于輸出數(shù)據(jù)的輸出指令。操作單元BSA和STA含有數(shù)據(jù)路徑單元32a并適合于處理表示待輸出數(shù)據(jù)地址的指令。操作單元SMA含有數(shù)據(jù)路徑單元32b并適合于處理算術(shù)運(yùn)算指令和/或邏輯運(yùn)算指令,而操作單元MUL含有數(shù)據(jù)路徑單元32d并適合于處理乘法指令。這些操作單元30以字節(jié)或字單位處理數(shù)據(jù),因此,一個(gè)操作單元30適合于執(zhí)行一個(gè)指令或多個(gè)指令的處理。
因此,構(gòu)成矩陣20的多種類型操作單元30能夠支持?jǐn)?shù)據(jù)的輸入和輸出指令、算術(shù)運(yùn)算指令和邏輯運(yùn)算指令,從而數(shù)據(jù)的輸入和輸出處理、算術(shù)處理和邏輯處理能夠用操作單元30所支持的指令系列(中間語(yǔ)言)加以描述。對(duì)于重復(fù)執(zhí)行輸入/輸出處理、信號(hào)處理和算術(shù)運(yùn)算處理和/或邏輯運(yùn)算處理的處理,也就是說(shuō)循環(huán)處理,如果使用RISC處理器11并用有限的硬件資源在軟件中進(jìn)行重復(fù)處理的話,將難以提高處理速度。另一方面,利用本實(shí)施例的矩陣20,該處理能夠分配在大量的硬件資源上,該硬件資源能夠以操作單元的形式實(shí)現(xiàn),從而能夠通過(guò)使這些操作單元同時(shí)平行地進(jìn)行操作而提高性能。因此,處理速度能夠以簡(jiǎn)單的方式加以提高,即用性能分析器或類似物發(fā)現(xiàn)該處理,然后將該處理轉(zhuǎn)換入硬件。
通過(guò)轉(zhuǎn)換所提供的規(guī)范73而產(chǎn)生的中間表達(dá),包括用C語(yǔ)言書(shū)寫(xiě)并由RISC處理器11執(zhí)行的部分73a,和用中間語(yǔ)言書(shū)寫(xiě)并能夠由矩陣20執(zhí)行的部分73b。該部分73b,其是中間語(yǔ)言形式的中間表達(dá),如圖17所示。部分73b反映(reflect)了操作單元30所支持的指令,是以某種方式表達(dá)處理過(guò)程的描述,其能夠轉(zhuǎn)換成數(shù)據(jù)流程序或具有附加控制信息的控制數(shù)據(jù)流程序。因此,與HDL(硬件描述語(yǔ)言)或類似物不同,該系統(tǒng)的規(guī)范能夠被設(shè)計(jì)者理解,從而在改變或修改系統(tǒng)時(shí),這些改變或修正能夠容易地用中間描述73b加以反映。中間語(yǔ)言的一種類型是類似匯編的語(yǔ)言,例如類似宏匯編的語(yǔ)言。這些語(yǔ)言的難度比C語(yǔ)言低且容易保持線性度,從而能夠容易地生成數(shù)據(jù)流程序,且當(dāng)該數(shù)據(jù)流程序映射到矩陣20上時(shí),人們能夠容易地了解所使用的配置是什么。因此,該語(yǔ)言有利于矩陣20和程序的開(kāi)發(fā),調(diào)試和維持也變得容易。
用中間語(yǔ)言描述的部分73b用操作單元30所支持的指令加以書(shū)寫(xiě),從而該部分73b的處理能夠表達(dá)為矩陣20中操作單元30的配置。然后,定位和選路處理75生成操作單元30的一個(gè)或多個(gè)配置(“執(zhí)行配置”)76,其能夠執(zhí)行用中間語(yǔ)言加以描述的處理73b。該過(guò)程通過(guò)編譯程序(軟件)執(zhí)行。一旦生成了執(zhí)行配置76,便輸出矩陣20,(其中設(shè)置有操作單元30以實(shí)現(xiàn)執(zhí)行配置76)的信息78。如果矩陣20是根據(jù)該信息78而制造的,那么LSI10的基礎(chǔ)設(shè)計(jì)便完成了,并且以此為基礎(chǔ)便能夠制造出LSI10。同時(shí)還生成了用于表示執(zhí)行配置76的指令80。然后,在中間語(yǔ)言描述73b的位置處生成C源文件74,其包括表示執(zhí)行配置76的指令80和運(yùn)行該配置的指令,并用C編譯程序進(jìn)行編譯從而生成由LSI10執(zhí)行的程序(目標(biāo)程序)3。
如果不需要改變矩陣20內(nèi)操作單元30的配置從而執(zhí)行所提供的規(guī)范71,則不需要生成表示配置的指令,這足以生成含有如下操作單元30的矩陣20,該操作單元30能夠執(zhí)行用中間語(yǔ)言書(shū)寫(xiě)的部分73b的處理。在用現(xiàn)有的矩陣20執(zhí)行所提供的規(guī)范71時(shí),并不生成矩陣20。在這種情況下,生成用于將操作單元30(其已經(jīng)布置在矩陣20內(nèi))的配置設(shè)定在執(zhí)行配置76內(nèi)的指令80,用于代替用中間語(yǔ)言書(shū)寫(xiě)的部分73b,然后進(jìn)行編譯從而生成執(zhí)行程序3。
為了調(diào)節(jié)操作單元30之間處理的時(shí)限,在定位和選路處理75中必須產(chǎn)生包括延遲操作單元DEL(其含有數(shù)據(jù)路徑單元32c)的執(zhí)行配置76。在定位和選路處理75中,需要通過(guò)重復(fù)執(zhí)行具有不同布局的矩陣20的設(shè)計(jì)步驟來(lái)發(fā)現(xiàn)合適的配置,并證實(shí)是否所有的執(zhí)行配置都能夠用合適的運(yùn)算法則加以應(yīng)用。
在每個(gè)操作單元30中,內(nèi)部數(shù)據(jù)路徑的配置能夠用配置RAM39加以改變或選擇。在含有數(shù)據(jù)路徑單元32b的操作單元SMA中,操作的內(nèi)容或細(xì)節(jié)需要用配置RAM39加以設(shè)定。因此,在定位和選路處理75中,需要產(chǎn)生如下的執(zhí)行配置,其包括已組合操作單元30的內(nèi)部數(shù)據(jù)路徑32的配置。操作單元30的設(shè)定提供給矩陣20,從而在每個(gè)操作單元30的配置RAM39中,這些設(shè)定能夠用表示該配置的執(zhí)行程序3的指令激活。
下面參考圖15-21描述生成操作單元30的配置的過(guò)程。圖15是顯示編譯程序75的處理過(guò)程的流程圖,其用于執(zhí)行定位和選路處理。首先,在步驟91,圖18所示的數(shù)據(jù)流程序(DFG)101由圖17所示的中間語(yǔ)言描述73b生成。在需要多個(gè)數(shù)據(jù)流程序101時(shí),要生成多個(gè)數(shù)據(jù)流程序101。接著,在步驟92生成矩陣20,其具有合適的布置并含有能夠構(gòu)成這些數(shù)據(jù)流程序101的操作單元30,然后在步驟93,為每個(gè)數(shù)據(jù)流程序101分別執(zhí)行定位和選路(placing androuting),從而能夠發(fā)現(xiàn)矩陣20的布置(其中能夠分配所有的數(shù)據(jù)流程序101)和相應(yīng)于矩陣20的執(zhí)行配置。在步驟94,當(dāng)定位和選路處理中不可能存在一個(gè)或多個(gè)數(shù)據(jù)流程序101時(shí),便認(rèn)為定位和選路處理的結(jié)果不可能用于本矩陣,且處理返回到步驟92,在其中生成一個(gè)具有新布置的矩陣20。執(zhí)行輸出數(shù)據(jù)處理的操作單元ST定位在矩陣20的輸出側(cè),如果數(shù)據(jù)流程序101能夠用最多全部操作單元ST進(jìn)行分配,便認(rèn)為定位和選路處理的結(jié)果是成功的。
在圖16中,流程圖顯示了用于生成操作單元30的配置以執(zhí)行一個(gè)數(shù)據(jù)流程序101的處理。為了能夠容易地保持線性,優(yōu)選地將操作單元30依次從數(shù)據(jù)流程序101下游端開(kāi)始進(jìn)行分配。因此,在步驟111,接下來(lái)確認(rèn)是否能夠在合適的位置處發(fā)現(xiàn)數(shù)據(jù)流程序101端部分的操作單元,以及該操作單元是否能夠與輸出數(shù)據(jù)的操作單元ST連線。在步驟112,如果能夠發(fā)現(xiàn)合適的操作單元30和連接操作單元30的布線組,該步驟中定位和選路處理的結(jié)果便認(rèn)為是成功的。接著在步驟113,標(biāo)記所發(fā)現(xiàn)的資源,即操作單元30和布線組,并且將端部操作單元30標(biāo)記為已完成布局。之后在步驟114,通過(guò)從下游端到上游端追蹤數(shù)據(jù)流程序而確認(rèn)是否能夠發(fā)現(xiàn)變成為所標(biāo)記的已完成布局的操作單元30的輸入源的一個(gè)操作單元30,并且是否可能對(duì)其進(jìn)行布線和選路。在步驟115,當(dāng)輸入源操作單元30能夠在合適的位置被發(fā)現(xiàn)并且能夠?qū)ζ溥M(jìn)行路由選擇,能夠發(fā)現(xiàn)和布局所有的輸入源操作單元30并可能對(duì)其進(jìn)行布線,數(shù)據(jù)流程序101便配置在矩陣20內(nèi)。
圖18所示的數(shù)據(jù)流程序101執(zhí)行兩種條件的兩條輸入數(shù)據(jù)以獲得輸出數(shù)據(jù),并能夠用圖19所示的操作單元30的配置替代。更詳細(xì)地講,從下游端開(kāi)始,該配置包括輸出操作單元ST、兩個(gè)用于算術(shù)運(yùn)算的操作單元SMA和兩個(gè)輸入邏輯單元LD。兩個(gè)時(shí)鐘由兩個(gè)用于算術(shù)運(yùn)算的操作單元SMA共同消耗,從而用于調(diào)節(jié)該時(shí)鐘(延遲)的延遲邏輯單元DEL包含在該配置內(nèi)。同樣,取決于矩陣20的布置,用于調(diào)節(jié)延遲的DEL需要適當(dāng)?shù)匕谠撆渲脙?nèi)。
圖20顯示的是如何將數(shù)據(jù)流程序101分配在矩陣20內(nèi)。位于流程序端部的操作單元SMA在與用于輸出操作單元SMA所產(chǎn)生數(shù)值的操作單元ST相同的列內(nèi)發(fā)現(xiàn)。操作單元DEL,其是由該操作單元SMA進(jìn)行加和的某一數(shù)值的輸入源,在與操作單元SMA相同的列內(nèi)發(fā)現(xiàn),同時(shí)作為其他輸入源的操作單元SMA在相鄰的列內(nèi)發(fā)現(xiàn)。圖20所示的矩陣20分為三個(gè)片段29,從而操作單元LD,其是同一列內(nèi)的操作單元DEL的輸入源,能夠通過(guò)兩個(gè)另外的操作單元DEL與該操作單元DEL相連。同樣,操作單元LD,其是相鄰列內(nèi)的操作單元SMA的輸入源,能夠通過(guò)兩個(gè)操作單元DEL與操作單元SMA相連。因此,映射到矩陣20上的數(shù)據(jù)流程序101的實(shí)際配置如圖21所示。表示該配置的指令80合并在含有該矩陣20的LSI10的執(zhí)行程序3內(nèi),RISC處理器11依據(jù)指令80控制矩陣20的配置。這樣,中間描述73b的處理便由矩陣20中的硬件加以執(zhí)行。
如上所述,本發(fā)明的集成電路器件包括數(shù)據(jù)處理模塊(矩陣),其中布置有含有適合于專用處理的數(shù)據(jù)路徑的不同類型操作單元,并通過(guò)選擇和定義各種類型操作單元的配置或多種配置,而能夠在極短的時(shí)間內(nèi)設(shè)計(jì)和制造出能夠執(zhí)行硬件中所提供的部分或全部規(guī)范的集成電路器件。布置在數(shù)據(jù)處理模塊中的操作單元安裝有用于執(zhí)行指令的功能元件,從而僅通過(guò)將所提供的規(guī)范轉(zhuǎn)換成用中間語(yǔ)言,其包括操作單元所支持的指令,書(shū)寫(xiě)的描述,軟件處理便能夠轉(zhuǎn)換成硬件處理。同樣,由該數(shù)據(jù)處理模塊執(zhí)行的處理能夠僅通過(guò)發(fā)現(xiàn)操作單元的配置而加以定義。這意味著,為了制造用于執(zhí)行所提供規(guī)范的硬件,不需要使用硬件描述語(yǔ)言,不需要在晶體管水平執(zhí)行配置的邏輯合成然后生成硬件,或者執(zhí)行轉(zhuǎn)換成能夠裝載到FPGA內(nèi)的信息的轉(zhuǎn)換。所產(chǎn)生的用于生成操作單元配置的中間語(yǔ)言描述,是能夠使設(shè)計(jì)者可以容易地掌握該處理的編程語(yǔ)言,并可能以很大的靈活性在短時(shí)間內(nèi)進(jìn)行修正和修改。
布置在數(shù)據(jù)處理模塊內(nèi)的操作單元并不是全都必須具有廣泛的適用性、每一個(gè)都要有相同的結(jié)構(gòu),于是含有不同的或單一的適合于執(zhí)行指令所表達(dá)處理的數(shù)據(jù)路徑,結(jié)果在電路中幾乎沒(méi)有冗余。這便有可能提供緊湊、經(jīng)濟(jì)的集成電路器件。還有可能提供具有較高處理速度和良好AC性能的集成電路器件。在該集成電路器件中,由多個(gè)操作單元構(gòu)成或設(shè)定的功能能夠較容易地在一個(gè)時(shí)鐘內(nèi)加以改變,從而包括操作單元和布線組的資源,其構(gòu)成了數(shù)據(jù)路徑模塊,能夠有效地用于多種處理。
上面說(shuō)明的實(shí)施例僅是本發(fā)明的一個(gè)實(shí)例,且如本專利說(shuō)明所公開(kāi)的,可能有各種的變本。作為一個(gè)實(shí)例,數(shù)據(jù)流程序,其由布置在矩陣內(nèi)的操作單元的配置定義,包括所有的從固定在矩陣中的數(shù)據(jù)流程序到能夠由矩陣中的程序進(jìn)行動(dòng)態(tài)重建的數(shù)據(jù)流程序。對(duì)操作單元的配置和操作單元內(nèi)數(shù)據(jù)選擇的控制并不僅限于RISC處理器的指示,從而能夠由另一個(gè)LSI、另一個(gè)矩陣,或者甚至由矩陣內(nèi)的一個(gè)操作單元加以指示。上面說(shuō)明的操作單元是含有適合于專用處理(如算術(shù)運(yùn)算、邏輯運(yùn)算、乘法、延遲等)的數(shù)據(jù)路徑的實(shí)例,但是操作單元所含有的數(shù)據(jù)路徑的功能和結(jié)構(gòu)并不僅限于這些實(shí)例。同樣,布置在矩陣中的操作單元的類型也不僅限于上面說(shuō)明的實(shí)例。本發(fā)明的效果也能夠通過(guò)生成各種類型的操作單元、布置這些操作單元并用總線連接這些操作單元而獲得,這些操作單元含有具有如下功能的數(shù)據(jù)路徑,即適合于待由本發(fā)明數(shù)據(jù)處理裝置執(zhí)行的應(yīng)用。
工業(yè)應(yīng)用本發(fā)明的集成電路器件或裝置可以提供作為能夠執(zhí)行各種數(shù)據(jù)處理的系統(tǒng)LSI。同樣,本發(fā)明的集成電路器件并不僅限于電子電路,也能夠適用于光學(xué)電路或光電子電路。本發(fā)明的集成電路器件能夠用可重建的硬件以較高速度執(zhí)行數(shù)據(jù)處理,并能夠優(yōu)選地用作需要高速、實(shí)時(shí)操作的數(shù)據(jù)處理裝置,如用于網(wǎng)絡(luò)處理或圖象處理的數(shù)據(jù)處理裝置。
權(quán)利要求
1.一種集成電路器件,包括數(shù)據(jù)處理模塊,該數(shù)據(jù)處理模塊包括多個(gè)操作單元,其沿著一個(gè)矩陣的第一和第二方向布置;多個(gè)第一布線組,其相應(yīng)于沿著第一方向的多個(gè)操作單元的布置而沿著第一方向延伸,并傳遞每個(gè)操作單元的輸入數(shù)據(jù)和/或輸出數(shù)據(jù);多個(gè)第二布線組,其相應(yīng)于沿著第二方向的多個(gè)操作單元的布置而沿著第二方向延伸,并傳遞每個(gè)操作單元的輸入數(shù)據(jù)和/或輸出數(shù)據(jù);和多個(gè)切換單元,其位于第一布線組和第二布線組之間的每個(gè)交叉點(diǎn)處,并能夠選擇和連接第一布線組中含有的任何布線與第二布線組中含有的任何布線,其中所述多個(gè)操作單元被分為包含適合于專用處理的不同數(shù)據(jù)路徑的多種類型的操作單元,并且相同類型的操作單元至少在一部分?jǐn)?shù)據(jù)處理模塊中形成沿第一方向或第二方向的布置,以及
2.根據(jù)權(quán)利要求1的集成電路器件,其中多種類型的操作單元以相等的間隔沿著第一方向布置。
3.根據(jù)權(quán)利要求1的集成電路器件,其中多種類型的操作單元包括不同類型的操作單元,它們包含適合于指令級(jí)的至少一種不同的處理的數(shù)據(jù)路徑。
4.根據(jù)權(quán)利要求1的集成電路器件,其中多種類型的操作單元包括如下的操作單元,它們包含適合于處理輸入和/或輸出數(shù)據(jù)并且布置在數(shù)據(jù)處理模塊一端和另端上的數(shù)據(jù)路徑。
5.根據(jù)權(quán)利要求1的集成電路器件,其中每個(gè)操作單元包括用于鎖存輸入數(shù)據(jù)的觸發(fā)器和用于鎖存輸出數(shù)據(jù)的觸發(fā)器。
6.根據(jù)權(quán)利要求1的集成電路器件,其中多種類型的操作單元包括至少一種如下類型的操作單元,其包含用于鏈接另一個(gè)沿著相同方向布置的操作單元并提供擴(kuò)展的操作功能的路徑。
7.根據(jù)權(quán)利要求1的集成電路器件,其中每個(gè)操作單元包含用于選擇第一布線組和/或第二布線組中所含的布線并輸入和/或輸出信號(hào)的裝置。
8.根據(jù)權(quán)利要求7的集成電路器件,其中每個(gè)操作單元包含用于存儲(chǔ)布線選擇的可重寫(xiě)配置存儲(chǔ)器,且每個(gè)切換單元包含用于存儲(chǔ)布線選擇的可重寫(xiě)配置存儲(chǔ)器。
9.根據(jù)權(quán)利要求8的集成電路器件,其中每個(gè)操作單元包含用于改變和/或選擇部分內(nèi)部數(shù)據(jù)路徑的裝置,并且該配置存儲(chǔ)器存儲(chǔ)內(nèi)部數(shù)據(jù)路徑的改變和/或選擇。
10.根據(jù)權(quán)利要求9的集成電路器件,其中內(nèi)部數(shù)據(jù)路徑適合于至少一種指令級(jí)的處理。
11.根據(jù)權(quán)利要求8的集成電路器件,進(jìn)一步包括能夠重寫(xiě)配置存儲(chǔ)器內(nèi)容的通用處理器。
12.根據(jù)權(quán)利要求1的集成電路器件,進(jìn)一步包括多個(gè)數(shù)據(jù)處理模塊和連接該多個(gè)數(shù)據(jù)處理模塊的第三布線組。
13.根據(jù)權(quán)利要求1的集成電路器件,其中每個(gè)操作單元都以字節(jié)單位和/或字單位處理數(shù)據(jù)。
14.根據(jù)權(quán)利要求1的集成電路器件,其中第一和第二布線組包括用于傳遞數(shù)據(jù)的總線布線和用于傳遞進(jìn)位信號(hào)的進(jìn)位布線。
15.根據(jù)權(quán)利要求1的集成電路器件,其中每個(gè)操作單元包含用于從第二布線組中所包含的任何布線輸入信號(hào)的裝置,和用于向第一布線組中所包含的任何布線輸出信號(hào)的裝置,以及所述第二布線組包含一對(duì)沿著第二方向在多個(gè)操作單元排列的兩側(cè)延伸的布線組。
16.根據(jù)權(quán)利要求1的集成電路器件,其中數(shù)據(jù)處理模塊包括第一矩陣和第二矩陣,它們通過(guò)多種類型的操作單元中的這樣的操作單元的排列而連接,即包含適合于進(jìn)行處理以便延遲數(shù)據(jù)的傳遞的數(shù)據(jù)路徑的操作單元。
17.根據(jù)權(quán)利要求1的集成電路器件,其中多種類型的操作單元至少包含如下操作單元中的一種第一類操作單元,包含適合于數(shù)據(jù)輸入處理的數(shù)據(jù)路徑;第二類操作單元,包含適合于表示輸入數(shù)據(jù)地址的處理的數(shù)據(jù)路徑;第三類操作單元,包含適合于數(shù)據(jù)輸出處理的數(shù)據(jù)路徑;第四類操作單元,包含適合于表示待輸出數(shù)據(jù)地址的處理的數(shù)據(jù)路徑;第五類操作單元,包含適合于處理算術(shù)運(yùn)算和/或邏輯運(yùn)算的數(shù)據(jù)路徑;第六類操作單元,包含適合于乘法處理的數(shù)據(jù)路徑;第七類操作單元,包含適合于進(jìn)行處理以便延遲數(shù)據(jù)的傳遞時(shí)間的數(shù)據(jù)路徑;第八類操作單元,包含適合于連接位于數(shù)據(jù)處理模塊外部的計(jì)算電路的處理的數(shù)據(jù)路徑;和第九類操作單元,包含用查詢表選擇其處理的數(shù)據(jù)路徑。
18.一種集成電路器件,包括數(shù)據(jù)處理模塊,該數(shù)據(jù)處理模塊包括多種類型的操作單元和用于連接所述多種類型操作單元的布線組,其中該多種類型的操作單元包括不同類型的操作單元,所述不同類型的操作單元包含適合于執(zhí)行至少一種不同指令的數(shù)據(jù)路徑。
19.根據(jù)權(quán)利要求18的集成電路器件,其中多種類型的操作單元至少包括如下操作單元中的一種第一類操作單元,包含適合于執(zhí)行數(shù)據(jù)的輸入指令的數(shù)據(jù)路徑;第二類操作單元,包含適合于執(zhí)行表示輸入數(shù)據(jù)地址的指令的數(shù)據(jù)路徑;第三類操作單元,包含適合于執(zhí)行數(shù)據(jù)的輸出指令的數(shù)據(jù)路徑;第四類操作單元,包含適合于執(zhí)行表示待輸出數(shù)據(jù)地址的指令的數(shù)據(jù)路徑;第五類操作單元,包含適合于執(zhí)行算術(shù)運(yùn)算指令和/或邏輯運(yùn)算指令的數(shù)據(jù)路徑;第六類操作單元,包含適合于執(zhí)行乘法指令的數(shù)據(jù)路徑。
20.根據(jù)權(quán)利要求19的集成電路器件,其中多種類型的操作單元進(jìn)一步包括如下操作單元中的至少一種第七類操作單元,包含適合于進(jìn)行處理以便延遲數(shù)據(jù)的傳遞時(shí)間的數(shù)據(jù)路徑;第八類操作單元,包含適合于連接位于數(shù)據(jù)處理模塊外部的計(jì)算電路的處理的數(shù)據(jù)路徑;和第九類操作單元,包含用查詢表選擇其處理的數(shù)據(jù)路徑。
21.根據(jù)權(quán)利要求18的集成電路器件,其中所述多種類型的操作單元中的每一個(gè)包含用于鎖存輸入數(shù)據(jù)的觸發(fā)器和用于鎖存輸出數(shù)據(jù)的觸發(fā)器。
22.根據(jù)權(quán)利要求18的集成電路器件,其中該多種類型操作單元沿著矩陣的第一和第二方向布置。
23.根據(jù)權(quán)利要求22的集成電路器件,其中該多種類型的操作單元包括如下的操作單元,即包含適合于執(zhí)行數(shù)據(jù)輸入指令和/或輸出指令的數(shù)據(jù)路徑并且布置在數(shù)據(jù)處理模塊一端和另一端上的操作單元。
24.根據(jù)權(quán)利要求22的集成電路器件,其中布線組包括多個(gè)第一布線組,其相應(yīng)于沿著第一方向的多種類型操作單元的布置而沿著第一方向延伸,并傳遞每個(gè)操作單元的輸入數(shù)據(jù)和/或輸出數(shù)據(jù);多個(gè)第二布線組,其相應(yīng)于沿著第二方向的多種類型操作單元的布置而沿著第二方向延伸,并傳遞每個(gè)操作單元的輸入數(shù)據(jù)和/或輸出數(shù)據(jù);和多個(gè)切換單元,其位于第一布線組與第二布線組之間的每個(gè)交叉點(diǎn)處,并能夠選擇和連接第一布線組所包含的任何布線與第二布線組所包含的任何布線,其中所述多個(gè)操作單元中的每一個(gè)包含用于選擇第一布線組和/或第二布線組所包含的任何布線并輸入和/或輸出信號(hào)的裝置。
25.根據(jù)權(quán)利要求18的集成電路器件,其中布線組通過(guò)改變提供給該多種類型操作單元的數(shù)據(jù)的路由而改變用于數(shù)據(jù)處理的該多種類型操作單元的配置。
26.根據(jù)權(quán)利要求25的集成電路器件,其中該多種類型操作單元的每一種包含用于存儲(chǔ)布線選擇的可重寫(xiě)配置存儲(chǔ)器,并且切換單元的每一個(gè)包含用于存儲(chǔ)布線選擇的可重寫(xiě)配置存儲(chǔ)器。
27.根據(jù)權(quán)利要求26的集成電路器件,其中該多種類型的操作單元包括至少一種如下類型的操作單元,即包含適合于執(zhí)行至少一種指令的內(nèi)部數(shù)據(jù)路徑和用于選擇和/或改變部分內(nèi)部數(shù)據(jù)路徑的裝置的操作單元,該至少一種類型操作單元中的配置存儲(chǔ)器存儲(chǔ)內(nèi)部數(shù)據(jù)路徑的選擇和/或改變。
28.根據(jù)權(quán)利要求26的集成電路器件,進(jìn)一步包含用于根據(jù)程序重寫(xiě)配置存儲(chǔ)器內(nèi)容的控制單元。
29.根據(jù)權(quán)利要求25的集成電路器件,進(jìn)一步包括用于根據(jù)程序控制該多種類型操作單元配置的控制單元。
30.根據(jù)權(quán)利要求29的集成電路器件,其中該多種類型的操作單元包括至少一種如下類型的操作單元,即包含適合于執(zhí)行至少一種指令的內(nèi)部數(shù)據(jù)路徑和用于選擇和/或改變部分內(nèi)部數(shù)據(jù)路徑的裝置的操作單元,以及所述控制單元還控制內(nèi)部數(shù)據(jù)路徑的選擇和/或改變。
31.根據(jù)權(quán)利要求29的集成電路器件,其中控制單元是通用處理器。
32.根據(jù)權(quán)利要求18的集成電路器件,進(jìn)一步包括多個(gè)數(shù)據(jù)處理模塊和另一個(gè)用于連接該多個(gè)數(shù)據(jù)處理模塊的布線組。
33.一種集成電路器件,包括數(shù)據(jù)處理模塊,該數(shù)據(jù)處理模塊包括多個(gè)操作單元和用于連接該多個(gè)操作單元的布線組,其中該多個(gè)操作單元分成多種類型的操作單元,所述多種類型的操作單元包含適合于專用處理的不同數(shù)據(jù)路徑,并且每個(gè)操作單元以字節(jié)單位和/或字單位處理數(shù)據(jù)。
34.根據(jù)權(quán)利要求33的集成電路器件,其中多種類型的操作單元包括不同類型的操作單元,這些不同類型的操作單元包含適合于至少一個(gè)不同指令級(jí)處理的數(shù)據(jù)路徑。
35.一種集成電路器件的設(shè)計(jì)方法,該集成電路器件包括由多種類型操作單元和布線組構(gòu)成的數(shù)據(jù)處理模塊,其中所述操作單元沿著第一方向和第二方向布置成矩陣,所述布線組連接該多種類型的操作單元,該多種類型的操作單元包括不同類型的操作單元,所述不同類型的操作單元包含適合于處理至少一種不同指令的數(shù)據(jù)路徑,該設(shè)計(jì)方法包括如下步驟將集成電路器件中所執(zhí)行的至少一部分處理轉(zhuǎn)換成用編程語(yǔ)言書(shū)寫(xiě)的中間描述,該編程語(yǔ)言包含由該多種類型操作單元中的相應(yīng)類型操作單元執(zhí)行的指令;產(chǎn)生該多種類型操作單元的執(zhí)行配置,該執(zhí)行配置能夠執(zhí)行中間描述的處理;和產(chǎn)生數(shù)據(jù)處理模塊,其中布置有多種類型的操作單元從而能夠?qū)崿F(xiàn)所述執(zhí)行配置。
36.根據(jù)權(quán)利要求35的設(shè)計(jì)方法,包括在產(chǎn)生執(zhí)行配置的步驟中,為了調(diào)節(jié)時(shí)限,產(chǎn)生包括如下操作單元的執(zhí)行配置,其含有適合于處理延遲數(shù)據(jù)傳遞時(shí)間的數(shù)據(jù)路徑。
37.一種集成電路器件的設(shè)計(jì)方法,該集成電路器件包括如下數(shù)據(jù)處理模塊,其中布置有多種類型的操作單元,且其中用于數(shù)據(jù)處理的該多種類型操作單元的配置通過(guò)改變由布線組提供給該多種類型操作單元的數(shù)據(jù)的路由而改變,該多種類型的操作單元包括不同類型的操作單元,所述不同類型的操作單元包含適合于處理至少一種不同指令的數(shù)據(jù)路徑,該設(shè)計(jì)方法包括如下步驟將集成電路器件中所執(zhí)行的至少一部分處理轉(zhuǎn)換成用編程語(yǔ)言書(shū)寫(xiě)的中間描述,該編程語(yǔ)言包含由該多種類型操作單元中的相應(yīng)類型操作單元執(zhí)行的指令;產(chǎn)生包括該多種類型操作單元的執(zhí)行配置,該執(zhí)行配置能夠執(zhí)行中間描述的處理;產(chǎn)生數(shù)據(jù)處理模塊,其中布置有執(zhí)行配置所需的多種類型操作單元;和產(chǎn)生用于該集成電路器件的執(zhí)行程序,該執(zhí)行程序包括表示執(zhí)行配置的指令。
38.根據(jù)權(quán)利要求37的設(shè)計(jì)方法,其中該多種類型操作單元中至少一種類型的操作單元包含適合于處理至少一種指令的內(nèi)部數(shù)據(jù)路徑和用于選擇和/或改變部分內(nèi)部數(shù)據(jù)路徑的裝置,并且在用于產(chǎn)生執(zhí)行配置的步驟中包括,產(chǎn)生還包括內(nèi)部數(shù)據(jù)路徑的選擇和/或改變的執(zhí)行配置。
39.一種為集成電路器件生成執(zhí)行程序的方法,該集成電路器件包括數(shù)據(jù)處理模塊,其中布置有多種類型的操作單元,并且其中用于數(shù)據(jù)處理的多種類型操作單元的配置通過(guò)改變由布線組提供給多種類型操作單元的數(shù)據(jù)的路由而改變,該多種類型操作的單元包括不同類型的操作單元,所述不同類型的操作單元包含適合于處理至少一種不同指令的數(shù)據(jù)路徑,該生成方法包括如下步驟將集成電路器件中所執(zhí)行的至少一部分處理轉(zhuǎn)換成用編程語(yǔ)言書(shū)寫(xiě)的中間描述,該編程語(yǔ)言包括由該多種類型操作單元中的相應(yīng)類型操作單元執(zhí)行的指令;產(chǎn)生包括該多種類型操作單元的執(zhí)行配置,該執(zhí)行配置能夠執(zhí)行中間描述的處理;和產(chǎn)生執(zhí)行程序,其包括用于表示執(zhí)行配置的指令。
40.根據(jù)權(quán)利要求39的設(shè)計(jì)方法,包括在產(chǎn)生執(zhí)行配置的步驟中,為了調(diào)節(jié)包含適合于指令處理的數(shù)據(jù)路徑的操作單元的處理的時(shí)限,產(chǎn)生包括如下操作單元的執(zhí)行配置,其含有適合于處理延遲數(shù)據(jù)傳遞時(shí)間的數(shù)據(jù)路徑。
41.根據(jù)權(quán)利要求39的生成方法,其中該多個(gè)操作單元中的至少一個(gè)包含適合于處理至少一種指令的內(nèi)部數(shù)據(jù)路徑和用于選擇和/或改變部分內(nèi)部數(shù)據(jù)路徑的裝置,并且在用于產(chǎn)生執(zhí)行配置的步驟中包括,產(chǎn)生還包括內(nèi)部數(shù)據(jù)路徑的選擇和/或改變的執(zhí)行配置。
全文摘要
本發(fā)明提供了一種具有數(shù)據(jù)處理模塊的集成電路器件,該數(shù)據(jù)處理模塊包括多個(gè)布置成矩陣的操作單元、多個(gè)沿著矩陣的第一方向伸展并傳遞每個(gè)操作單元輸入數(shù)據(jù)的第一布線組、多個(gè)沿著矩陣的第二方向伸展并傳遞每個(gè)操作單元輸出數(shù)據(jù)的第二布線組、和多個(gè)布置在第一和第二布線組之間的每個(gè)交叉點(diǎn)上并能夠選擇和連接第一布線組中的任何布線與第二布線組中的任何布線的切換單元。該多個(gè)操作單元包括多種類型的操作單元,其具有適合于專用處理的不同數(shù)據(jù)路徑,第一方向或第二方向上相同類型操作單元的布置在至少部分的數(shù)據(jù)處理模塊中形成。該集成電路器件的功能能夠通過(guò)改變操作單元的設(shè)置而動(dòng)態(tài)地加以改變,且集成電路器件由具有適合于專用處理的不同數(shù)據(jù)路徑的操作單元構(gòu)成,從而該集成電路器件既緊湊又經(jīng)濟(jì)。
文檔編號(hào)G06F17/50GK1518798SQ02810418
公開(kāi)日2004年8月4日 申請(qǐng)日期2002年5月24日 優(yōu)先權(quán)日2001年5月24日
發(fā)明者池田顯士, 志村大, 佐藤友美, 美 申請(qǐng)人:Ip菲力股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
滦平县| 故城县| 石屏县| 武邑县| 钟祥市| 桑植县| 贵溪市| 弥渡县| 建水县| 中西区| 宿州市| 昆山市| 乌拉特中旗| 孝感市| 修水县| 桃园市| 桂东县| 都兰县| 台前县| 新源县| 中方县| 民乐县| 崇明县| 桓台县| 广水市| 镇原县| 方山县| 禄丰县| 长武县| 黎川县| 鄂托克前旗| 海城市| 民和| 汽车| 丰台区| 平昌县| 岑巩县| 讷河市| 桂平市| 闽清县| 和田县|