專利名稱:用于彈性的集成電路架構(gòu)的組件控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大致上是關(guān)于集成電路,尤其是關(guān)于具有用于可轉(zhuǎn)移的功能、容錯(cuò) 及彈性的分布式且可組態(tài)設(shè)定的電路組件、分布式通訊電路組件、以及分布式 控制電路組件的集成電路。
背景技術(shù):
制造后可被組態(tài)設(shè)定的集成電路傳統(tǒng)上已經(jīng)是以場可程序化I' "1陣列
("FPGA")為主,F(xiàn)PGA提供一個(gè)數(shù)組的相同的邏輯閘或其它組件。在某些集成 電路的實(shí)施例中,該門陣列也耦接至一或多個(gè)樣i處理器核心,以讓FPGA構(gòu)件 提供所選的計(jì)算的可組態(tài)設(shè)定的、特殊應(yīng)用的加速。在FPGA中的邏輯組件典 型是非常"精細(xì)粒度的",因?yàn)殚T陣列可以透過資料輸入與輸出來連接以提供一 更高等的功能,舉例而言,加法、減法或比較,而不需要個(gè)別的硬件聯(lián)機(jī)的特 殊應(yīng)用的構(gòu)件來直接提供此種高等的功能。用于組態(tài)設(shè)定FPGA的門陣列的方 法是相對較慢的,其典型是透過一串行組態(tài)設(shè)定總線,因而FPGA—般來說尚 未能夠做實(shí)時(shí)的重新組態(tài)設(shè)定,以用于功能上的立即改變。
于其它情況下,可組態(tài)設(shè)定的IC已涉及到大型(或是"粗略粒度的")可組態(tài) 設(shè)定的邏輯組件,其能夠執(zhí)行重要功能,舉例而言,多4某體處理、算術(shù)處理、 以及通訊功能。盡管這些大型可組態(tài)設(shè)定的邏輯組件提供極有能力的加速,但 是每個(gè)群組的可組態(tài)設(shè)定的邏輯組件典型是不同的,并且需要個(gè)別的程序化以
執(zhí)行其功能。另外,此種大型可組態(tài)設(shè)定的邏輯組件是不能轉(zhuǎn)換到其它功能的, 其呈現(xiàn)特殊應(yīng)用的IC("ASIC")的類似的限制。
可組態(tài)設(shè)定的功能也已經(jīng)被增加到微處理器、ASIC及內(nèi)存IC中。舉例而 言,在內(nèi)存IC中,額外或是冗余的列與行被制作出;當(dāng)后續(xù)的測試可能透露 所選的列與行有缺陷時(shí),受影響的IC區(qū)域被禁能,但是該內(nèi)存IC的剩余部分是潛在可利用的,并且利用該冗余之下,該內(nèi)存IC仍然可能符合內(nèi)存容量的 規(guī)格。在其它情況中,可加入某個(gè)量的可配置性,以在IC已經(jīng)制造出之后校
正設(shè)計(jì)錯(cuò)誤及其它缺陷、或是容許修改輸入與輸出,舉例而言是用于可組態(tài)設(shè)
定的I/O及可組態(tài)設(shè)定的數(shù)據(jù)路徑寬度。
此外,在組態(tài)設(shè)定的后且在動(dòng)作期間,此種FPGA、 ASIC、處理器、以及 其它可組態(tài)設(shè)定的邏輯并不呈現(xiàn)出彈性。舉例而言,若該IC的一部份在動(dòng)作 期間變成是有缺陷的,則該整個(gè)IC立即失效,喪失所有的功能。盡管該IC可 以使其離線或是移開、診斷、并且依據(jù)損壞而可能被重新組態(tài)設(shè)定,但是此種 IC并不能夠?qū)崟r(shí)的重新組態(tài)設(shè)定并且將功能轉(zhuǎn)移至該IC的未受影響的部份。
另一種由IBM設(shè)計(jì)且被稱為"eFuse,,的技術(shù)利用電遷移來產(chǎn)生微觀的電子 熔線,其禁能該IC的所選的部份或是有缺陷的部份,利用軟件來開路或閉路 閘以重新指定路由給芯片邏輯至該IC的其余良好的部份,舉例而言,以校正 設(shè)計(jì)瑕瘋、制造缺陷、并且管理功率消耗。舉例而言,該eFuse技術(shù)可以禁能 有缺陷的內(nèi)存列與行,并且eFuse軟件可以改變內(nèi)存地址使得數(shù)據(jù)將會(huì)儲存在 內(nèi)存的無缺陷的部4分中。
然而,這些技術(shù)都未能解決現(xiàn)在發(fā)生于次100nm的IC制造上的增加的缺 陷數(shù)目問題。更具體而言,隨著IC特征尺寸持續(xù)降低到90nm以下,存在有 增加的缺陷程度以及降低的IC良率。此外,盡管IC最初可能沒有過多的缺陷 而能夠?yàn)榱似渌挠猛緛磉\(yùn)作,但是較小的特征尺寸也增加在動(dòng)作期間IC 失效的機(jī)率,舉例而言,由于穿隧及電遷移的影響所造成的。
此外,盡管這些現(xiàn)有技術(shù)分別有其本身的優(yōu)點(diǎn),舉例而言,校正設(shè)計(jì)瑕疵 以及回避較小的制造缺陷來運(yùn)作的功能,但是這些現(xiàn)有技術(shù)都未能在IC動(dòng)作 期間隨著時(shí)間提供保持一定的彈性。不論缺陷是在制造期間產(chǎn)生、或是在很后 面的IC使用期間產(chǎn)生,這些現(xiàn)有的技術(shù)就是無法包容某些種類的缺陷以及某 些程度的缺陷,因而整個(gè)IC完全地失效。此種失效通常是災(zāi)難的,使得整個(gè) IC立刻失效而無任何警告。舉例而言,若一個(gè)微處理器的一個(gè)區(qū)域失效,則 整個(gè)微處理器立刻變成沒有用的。
為了嘗試提供某種程度的彈性,這些各式各樣的技術(shù)只是增加某些冗余。舉例而言,多個(gè)處理器將被設(shè)置在相同的IC上,使得若一個(gè)缺陷造成一個(gè)處 理器失效,則一個(gè)冗余的處理器是可利用來取代之。然而,在這些情況中,該 冗余的處理器先前是完全地閑置且未使用的、或者是其先前的運(yùn)作已被廢棄且
完全地失去。在任一種事件中,此種彈性是花費(fèi)大約兩倍的IC面積并且顯著
地增加制造成本。此外,此種基本的冗余的努力并未能照顧到所有的冗余的構(gòu) 件內(nèi)可能會(huì)發(fā)生的缺陷,因?yàn)榧词剐〉娜毕菀部赡苁沟么朔N構(gòu)件失效。
因此,仍對于一種盡管有著可能會(huì)影響任何構(gòu)件的制造或使用上的缺陷, 但仍然是非常有彈性且強(qiáng)韌且沒有損失原本是未使用的冗余的集成電路架構(gòu)
有著需求。此種IC應(yīng)該提供不間斷的調(diào)整,使得當(dāng)一個(gè)缺陷發(fā)生時(shí),功能可 實(shí)時(shí)或接近實(shí)時(shí)地被轉(zhuǎn)移至一個(gè)未受影響的區(qū)域。此種技術(shù)應(yīng)該提供用于IC
的組態(tài)設(shè)定(程序化或是其它軟件),此容許有此種可轉(zhuǎn)移的功能,而不需要整
個(gè)程序被轉(zhuǎn)移至一個(gè)完全為冗余的處理器。此外,此種IC應(yīng)該提供隨著缺陷 或問題增加而優(yōu)雅降級(gracefUl degradation),而不是一個(gè)突難的失效。
發(fā)明內(nèi)容
本發(fā)明示范性的實(shí)施例提供一種集成電路架構(gòu),其能夠有相當(dāng)大的彈性, 而無原本有的未使用的冗余。示范性的IC實(shí)施例可持續(xù)不斷地被調(diào)整,如同 在缺陷的事件中可能是必要的、或是如同為了納入新的程序或功能而可能是所 期望的。舉例而言,在缺陷發(fā)生的事件中,功能可以實(shí)時(shí)或接近實(shí)時(shí)地被轉(zhuǎn)移 至一個(gè)未受影響的區(qū)域。用于該IC的示范性的架構(gòu)及軟件也容許有此種可轉(zhuǎn) 移的功能,而不需要整個(gè)程序被轉(zhuǎn)移至一個(gè)完全為冗余的處理器或原本是未使 用的計(jì)算區(qū)塊。此外,示范性的IC實(shí)施例隨著在使用(除了制造之夕卜)期間可 能會(huì)發(fā)生的缺陷或問題增加而提供優(yōu)雅降級及通知,而不是災(zāi)難的失效。
在一個(gè)示范性的實(shí)施例中, 一種裝置被提出,其包括多個(gè)復(fù)合電路組件、 耦接至該多個(gè)復(fù)合電路組件的多個(gè)通訊組件、以及一個(gè)耦接至該多個(gè)復(fù)合電路 組件及該多個(gè)通訊組件的狀態(tài)機(jī)組件。每個(gè)復(fù)合電路組件包括一個(gè)對應(yīng)的組件 接口以及一個(gè)具有多個(gè)電路組件類型的對應(yīng)的電路組件,其中每個(gè)復(fù)合電路組 件具有至少一個(gè)輸入以及至少一個(gè)輸出,并且該多個(gè)復(fù)合電路組件中的一個(gè)第一復(fù)合電路組件具有該多個(gè)電路組件類型的一個(gè)第一電路組件類型,并且該多 個(gè)復(fù)合電路組件中的一個(gè)第二復(fù)合電路組件具有該多個(gè)電路組件類型的一個(gè) 第二電路組件類型。該狀態(tài)機(jī)組件適配于指定一個(gè)第一動(dòng)作給該第一復(fù)合電路 組件,指定一個(gè)第二動(dòng)作給該第二復(fù)合電路組件,并且透過該多個(gè)通訊組件中 的 一個(gè)所選的通訊組件來提供一個(gè)從該第 一復(fù)合電路組件的至少 一個(gè)輸出至
該第二復(fù)合電路組件的至少 一 個(gè)輸入的第 一虛擬的教:據(jù)鏈路。
在一個(gè)示范性的實(shí)施例中,該多個(gè)電路組件類型包括以下的電路組件類型 中的至少一個(gè)多個(gè)可組態(tài)i殳定的組件類型、 一個(gè)內(nèi)存組件類型、多個(gè)通訊組 件類型、以及多個(gè)非可組態(tài)設(shè)定的組件類型。舉例而言,該第一電路組件類型 是該多個(gè)可組態(tài)設(shè)定的組件類型中的一第一可組態(tài)設(shè)定的組件類型,該第二電 路組件類型是該多個(gè)可組態(tài)設(shè)定的組件類型中的一第二可組態(tài)設(shè)定的組件類 型,并且其中該狀態(tài)機(jī)組件進(jìn)一步適配于指定該第一動(dòng)作為該第一復(fù)合電路組 件的一第一組態(tài)設(shè)定以及指定該第二動(dòng)作為該第二復(fù)合電路組件的一第二組 態(tài)設(shè)定。該狀態(tài)機(jī)組件可進(jìn)一步適配于在該第一動(dòng)作及第二動(dòng)作的執(zhí)行時(shí)結(jié)合 的期間,從一個(gè)第一符號的電路描述文件(netlist)組件獲得該第一組態(tài)設(shè)定以 及第一可組態(tài)設(shè)定的組件類型,并且從一個(gè)第二符號的電路描述文件組件獲得 該第二組態(tài)設(shè)定以及第二可組態(tài)設(shè)定的電路組件類型。此外,該第一符號的電 路描述文件組件更包括一個(gè)指標(biāo),該指標(biāo)指派該第一虛擬的數(shù)據(jù)鏈路作為前往 該第二復(fù)合電路組件的至少一個(gè)輸入的數(shù)據(jù)通訊,并且該第二符號的電路描述 文件組件可進(jìn)一步包括一個(gè)指標(biāo),該指標(biāo)指派該虛擬的數(shù)據(jù)鏈路作為來自該第 一復(fù)合電路組件的至少一個(gè)輸出的數(shù)據(jù)通訊。
該狀態(tài)機(jī)組件可進(jìn)一步適配于在一項(xiàng)判斷該第一復(fù)合電路組件以及第二 復(fù)合電路組件兩者都正確地操作以后,指定該第 一動(dòng)作給該第 一復(fù)合電路組件 以及指定該第二動(dòng)作給該第二復(fù)合電路組件。該操作判斷是以下的判斷中的至 少一個(gè)由該多個(gè)復(fù)合電路組件中的至少一個(gè)復(fù)合電路組件所執(zhí)行的一個(gè)周期 性的診斷;被執(zhí)行作為該多個(gè)復(fù)合電路組件中的至少一個(gè)復(fù)合電路組件的一個(gè) 所選的背景的一個(gè)背景診斷;或是由具有相同的電路組件類型的多個(gè)復(fù)合電路 組件所執(zhí)行的一個(gè)比較測試。該狀態(tài)機(jī)組件進(jìn)一步適配于響應(yīng)該第一復(fù)合電路組件的一個(gè)偵測到的錯(cuò) 誤,以指定該第一動(dòng)作給該多個(gè)復(fù)合電路組件的一個(gè)第三復(fù)合電路組件,該第 三復(fù)合電路組件具有一個(gè)具有第 一 電路組件類型的電路組件,并且該狀態(tài)機(jī)組 件進(jìn)一步適配于透過該多個(gè)通訊組件中的一個(gè)通訊組件,提供從該第三復(fù)合電 路組件的至少一個(gè)輸出至該第二復(fù)合電路組件的至少一個(gè)輸入的一第二虛擬 的數(shù)據(jù)鏈路?;蛘撸摖顟B(tài)機(jī)組件進(jìn)一步適配于響應(yīng)該第一電路組件的一個(gè)偵 測到的錯(cuò)誤,以指定該第一動(dòng)作給該多個(gè)復(fù)合電路組件的一個(gè)第三復(fù)合電路組 件,該第三復(fù)合電路組件具有一個(gè)具有一第三電路組件類型的電路組件,并且 該狀態(tài)機(jī)組件進(jìn)一步適配于透過該多個(gè)通訊組件中的一個(gè)通訊組件,提供從該 第三復(fù)合電路組件的至少一個(gè)輸出至該第二復(fù)合電路組件的至少一個(gè)輸入的 一第三虛擬的數(shù)據(jù)鏈路。在一個(gè)示范性的實(shí)施例中,該狀態(tài)機(jī)組件進(jìn)一步適配 于使用 一個(gè)儲存的轉(zhuǎn)換表,該儲存的轉(zhuǎn)換表具有一個(gè)指向用于該第一動(dòng)作的移 轉(zhuǎn)的第三復(fù)合電路組件的參照。
該多個(gè)復(fù)合電鴻4a件也可以適配于周期性地儲存一個(gè)當(dāng)時(shí)目前的狀態(tài),并 且響應(yīng)于一個(gè)偵測到的錯(cuò)誤,以擷取該儲存的狀態(tài)并且利用該儲存的狀態(tài)重新 開始操作。
此外,在一個(gè)示范性的實(shí)施例中,每個(gè)對應(yīng)的組件接口包括 一個(gè)耦接至
該對應(yīng)的電路組件的第一內(nèi)存,該第一內(nèi)存適配于儲存多個(gè)組態(tài)設(shè)定作為對應(yīng)
的背景; 一個(gè)耦接至該對應(yīng)的電路組件的組件控制器;以及一個(gè)耦接至該對應(yīng) 的電路組件的第二內(nèi)存,該第二內(nèi)存適配于提供多個(gè)輸入隊(duì)列給輸入到該對應(yīng) 的電路組件的數(shù)據(jù)。每個(gè)對應(yīng)的背景定義該對應(yīng)的電路組件的一個(gè)組態(tài)設(shè)定、 以及一或多個(gè)數(shù)據(jù)輸入來源或一或多個(gè)數(shù)據(jù)輸出目的地。該組件接口可進(jìn)一步 包括一個(gè)耦接至該電路組件的第三內(nèi)存,該第三內(nèi)存適配于提供多個(gè)輸出隊(duì)列 給從該電路組件輸出的數(shù)據(jù)?;蛘呤牵摻M件接口可包含用于輸出隊(duì)列的第三 內(nèi)存,而不包含用于輸入隊(duì)列的第二內(nèi)存。在一個(gè)示范性的實(shí)施例中,該組件 控制器適配于當(dāng) 一個(gè)對應(yīng)于該所選的背景的所選的輸入隊(duì)列具有輸入數(shù)據(jù),當(dāng) 一個(gè)對應(yīng)于該所選的背景的所選的輸出隊(duì)列具有儲存輸出數(shù)據(jù)的容量,并且當(dāng) 一個(gè)對應(yīng)于該所選的背景的狀態(tài)位被設(shè)定用于執(zhí)行時(shí),針對該多個(gè)背景中之一所選的背景,導(dǎo)引該所選的背景利用該電路組件的執(zhí)行。另外,該組件控制器 可進(jìn)一步適配于儲存一第一背景的一部分的執(zhí)行的目前的狀態(tài)在該第一內(nèi)存 中,執(zhí)行一第二背景,并且擷取該目前的狀態(tài)并且恢復(fù)繼續(xù)該第一背景的執(zhí)行。 該組件控制器可進(jìn)一步適配于在多個(gè)備妥用于執(zhí)行的背景之間做仲裁,并 且由于該仲裁而選擇一用于執(zhí)行的對應(yīng)的背景。舉例而言,該仲裁實(shí)施以下的
仲裁方法中的至少一個(gè)循環(huán)的、優(yōu)先級、最近執(zhí)行的、最久未執(zhí)行的、或是 排定的執(zhí)行。
在一個(gè)示范性的實(shí)施例中, 一個(gè)復(fù)合電子電路包含 一個(gè)可組態(tài)設(shè)定的電 路組件,其具有多個(gè)背景,該可組態(tài)設(shè)定的電路組件適合于組態(tài)設(shè)定成用于多 個(gè)資料運(yùn)算,以響應(yīng)于多個(gè)背景的一個(gè)對應(yīng)的背景;多個(gè)數(shù)據(jù)輸入隊(duì)列,其耦 接至該可組態(tài)設(shè)定的電路組件;多個(gè)數(shù)據(jù)輸出隊(duì)列,其耦接至該可組態(tài)設(shè)定的 電路組件;及一個(gè)組件控制器,其耦接至該可組態(tài)設(shè)定的電路組件,該組件控 制器適合于當(dāng)輸入數(shù)據(jù)出現(xiàn)于用于一個(gè)第一背景的所有有效的數(shù)據(jù)輸入隊(duì)列 上、用于該第一背景的所有有效的數(shù)據(jù)輸出隊(duì)列具有接受輸出數(shù)據(jù)的狀態(tài)且一 個(gè)用于該第一背景的執(zhí)行狀態(tài)為被致能時(shí),允許該可組態(tài)設(shè)定的電路組件的多 個(gè)背景的該第一背景執(zhí)行多個(gè)資料運(yùn)算的一個(gè)第一數(shù)據(jù)運(yùn)算。該組件控制器可 以進(jìn)一步適合于當(dāng)一個(gè)狀態(tài)備妥狀態(tài)為被致能時(shí),允許第一背景執(zhí)行該資料運(yùn)算。
典型地, 一個(gè)內(nèi)存可以耦接至該組件控制器,且該組件控制器進(jìn)一步適合 于使用多個(gè)儲存于該內(nèi)存內(nèi)的組態(tài)設(shè)定位,而對于多個(gè)背景的一個(gè)所選的背景 組態(tài)設(shè)定該可組態(tài)^殳定的電i 各組件。此外,該內(nèi)存可以進(jìn)一步適合于對于該多 個(gè)背景的每一個(gè)背景而言,儲存用于一個(gè)數(shù)據(jù)來源或一個(gè)數(shù)據(jù)目的地的一個(gè)地 址或一個(gè)識別。另外,該組件控制器可以進(jìn)一步適合于導(dǎo)致該可組態(tài)設(shè)定的電 路組件于一個(gè)單一步驟模式或于一個(gè)固定模式下執(zhí)行該第一數(shù)據(jù)運(yùn)算。該組件 控制器也可以仲裁多個(gè)背景的所選的背景哪些準(zhǔn)備好對應(yīng)的數(shù)據(jù)運(yùn)算的執(zhí)行, 其可以進(jìn)一步適合于鏈接多個(gè)背景的所選的背景,以于一個(gè)所選的順序執(zhí)行, 且其可以進(jìn)一步適合于鏈接多個(gè)數(shù)據(jù)輸出隊(duì)列的所選的輸出,以用于在一個(gè)所 選的順序下數(shù)據(jù)輸出。在一個(gè)示范性的實(shí)施例中,該組件控制器包含組合邏輯閘,或者包含組合邏輯閘及一個(gè)有限狀態(tài)機(jī)。
在一個(gè)示范性的實(shí)施例中,該多個(gè)數(shù)據(jù)輸入隊(duì)列可耦接至一個(gè)互連組件, 對于多個(gè)背景的每一個(gè)背景而言,其適合于可組態(tài)設(shè)定地連接至該互連組件的 一個(gè)所選的總線,以提供來源為基礎(chǔ)的尋址。此外, 一個(gè)狀態(tài)機(jī)組件耦接至該 組件控制器,且該狀態(tài)機(jī)組件適合于致能多個(gè)背景的每一個(gè)背景的執(zhí)行狀態(tài)。
在另 一個(gè)示范性的實(shí)施例中, 一個(gè)復(fù)合電子電路可操作于一個(gè)數(shù)據(jù)流模式
中且包含 一個(gè)可組態(tài)設(shè)定的電路組件;多個(gè)數(shù)據(jù)輸入隊(duì)列,其耦接至該可組 態(tài)設(shè)定的電路組件;多個(gè)數(shù)據(jù)輸出隊(duì)列,其耦接至該可組態(tài)設(shè)定的電路組件; 及一個(gè)組件控制器,其耦接至該可組態(tài)設(shè)定的電路組件,該組件控制器適合于 當(dāng)輸入數(shù)據(jù)出現(xiàn)于所有有效的數(shù)據(jù)輸入隊(duì)列上、用于第一背景的所有有效的數(shù) 據(jù)輸出隊(duì)列具有接受輸出數(shù)據(jù)的狀態(tài)且一個(gè)用于該第一背景的執(zhí)行狀態(tài)為被 致能時(shí),提供該可組態(tài)設(shè)定的電路組件的數(shù)據(jù)運(yùn)算的執(zhí)行。該可組態(tài)設(shè)定的電 路組件具有多個(gè)組態(tài)設(shè)定背景,且適合于組態(tài)設(shè)定成用于多個(gè)資料運(yùn)算,以響 應(yīng)于多個(gè)背景的一個(gè)對應(yīng)的背景,且該組件控制器進(jìn)一步適合于^f吏用多個(gè)J渚存 于該內(nèi)存內(nèi)的組態(tài)設(shè)定位,而對于多個(gè)背景的一個(gè)所選的背景組態(tài)設(shè)定該可組 態(tài)設(shè)定的電路組件。該可組態(tài)設(shè)定的電路組件為多個(gè)可組態(tài)設(shè)定的電路組件的 多個(gè)型式的一個(gè)可組態(tài)設(shè)定的電路組件的一個(gè)所選的型式,其形成可組態(tài)設(shè)定 的電路組件的一個(gè)計(jì)算上完整的集合。
另一個(gè)示范性的實(shí)施例提供電子電路,其可操作于一個(gè)數(shù)據(jù)流之中,其包 含 一個(gè)可組態(tài)設(shè)定的電路組件,其具有多個(gè)背景,該可組態(tài)設(shè)定的電路組件 適合于組態(tài)設(shè)定成用于多個(gè)資料運(yùn)算,以響應(yīng)于多個(gè)背景的一個(gè)對應(yīng)的背景; 一個(gè)內(nèi)存,其耦接至該可組態(tài)設(shè)定的電路組件,且適合于儲存對應(yīng)于該多個(gè)背 景的多個(gè)組態(tài)設(shè)定位;多個(gè)數(shù)據(jù)輸入隊(duì)列,其耦接至該可組態(tài)設(shè)定的電路組件, 該多個(gè)數(shù)據(jù)輸入隊(duì)列可組態(tài)設(shè)定用于來源為基礎(chǔ)的尋址;多個(gè)數(shù)據(jù)輸出隊(duì)列, 其耦接至該可組態(tài)設(shè)定的電路組件;及一個(gè)組件控制器,其耦接至該可組態(tài)設(shè) 定的電路組件及至該內(nèi)存,該組件控制器適合于使用對應(yīng)的組態(tài)設(shè)定位,而組 態(tài)設(shè)定用于多個(gè)背景的一個(gè)所選的背景的可組態(tài)設(shè)定的電路組件,且其進(jìn)一步 適合于當(dāng)輸入數(shù)據(jù)出現(xiàn)于用于一個(gè)所選的背景的所有有效的數(shù)據(jù)輸入隊(duì)列上、用于該所選的背景的所有有效的數(shù)據(jù)輸出隊(duì)列具有接受輸出數(shù)據(jù)的能力且 所選的背景被致能時(shí),對于多個(gè)數(shù)據(jù)運(yùn)算的一個(gè)對應(yīng)的數(shù)據(jù)運(yùn)算,提供該可組 態(tài)設(shè)定的電路組件的多個(gè)背景的所選的背景的執(zhí)4亍。且該組件控制器可以進(jìn)一 步適合于仲裁多個(gè)背景的所選的背景哪些準(zhǔn)備好對應(yīng)的資料運(yùn)算的執(zhí)行。
類似地,在一個(gè)示范性的實(shí)施例中,該多個(gè)通訊組件的每個(gè)通訊組件更包 括一個(gè)對應(yīng)的組件接口以及一個(gè)對應(yīng)的通訊電路組件,并且該狀態(tài)機(jī)組件更包 括一個(gè)對應(yīng)的組件接口以及一個(gè)對應(yīng)的狀態(tài)機(jī)電路組件。
在一個(gè)示范性的實(shí)施例中,該多個(gè)通訊組件進(jìn)一步包括多個(gè)第一通訊組 件,該多個(gè)第一通訊組件適配于指定路由給至少一個(gè)第一數(shù)據(jù)字以及切換至少 一個(gè)第二數(shù)據(jù)字;以及一個(gè)耦接至該多個(gè)復(fù)合電^各組件以及該多個(gè)第一通訊組 件的全互連(flill interconnect)組件,該全互連組件適配于耦接該多個(gè)復(fù)合電路 組件中的一個(gè)復(fù)合電路組件的任何輸出至該多個(gè)復(fù)合電路組件的另 一個(gè)復(fù)合 電路組件的任何輸入、或是至該多個(gè)第一通訊組件。該全互連組件可以散布在 多個(gè)開關(guān)、傳輸晶體管、多任務(wù)器或解多任務(wù)器之間。在其它示范性的實(shí)施例 中,該全互連組件是一個(gè)縱橫式開關(guān)。另外,該全互連組件可適配于提供以下 的實(shí)體數(shù)據(jù)鏈路中的至少一個(gè)多個(gè)一對一的輸入與輸出數(shù)據(jù)鏈路、 一個(gè)一對 多的廣播數(shù)據(jù)鏈路、 一個(gè)多對一的數(shù)據(jù)鏈路。
該狀態(tài)機(jī)組件可以透過該多個(gè)第一通訊組件中的一個(gè)所選的第一通訊組 件或是透過該全互連組件來提供該第一虛擬的數(shù)據(jù)鏈路。一個(gè)所選的通訊組件 可進(jìn)一步適配于從該第一虛擬的數(shù)據(jù)鏈路決定從該第一復(fù)合電路組件的至少
一個(gè)輸出至該第二復(fù)合電路組件的至少 一個(gè)輸入的多個(gè)實(shí)體數(shù)據(jù)鏈路中的至 少一個(gè)第一實(shí)體數(shù)據(jù)鏈路。此外,該所選的通訊組件進(jìn)一步適配于利用一個(gè)儲 存在一個(gè)對應(yīng)的內(nèi)存中的指定路由表,以在一個(gè)所選的時(shí)間或是一個(gè)所選的頻 率周期產(chǎn)生該多個(gè)實(shí)體數(shù)據(jù)鏈路。
在示范性的實(shí)施例中,該多個(gè)通訊組件進(jìn)一步包括多個(gè)第二通訊組件,該 多個(gè)第二通訊組件適配于指定路由或切換至少一個(gè)第三數(shù)據(jù)字在該多個(gè)復(fù)合 電路組件的一個(gè)第一數(shù)組以及該多個(gè)復(fù)合電路組件的一個(gè)第二數(shù)組之間。該多 個(gè)通訊組件也可包括一個(gè)叢集間的隊(duì)列適配于緩沖來自該多個(gè)復(fù)合電路組件的一個(gè)第 一數(shù)組的至少 一個(gè)第三數(shù)據(jù)字,并且傳輸該至少一個(gè)第三數(shù)據(jù)字至該 多個(gè)復(fù)合電路組件的一個(gè)相鄰的第二數(shù)組。
于另 一個(gè)示范性的實(shí)施例中,該多個(gè)通訊組件進(jìn)一步包括多個(gè)叢集隊(duì)列及 一個(gè)連接至該多個(gè)復(fù)合電路組件的一個(gè)全互連組件,該全互連組件適配于耦4妻 該多個(gè)復(fù)合電路組件中的一個(gè)復(fù)合電路組件的任何輸出至該多個(gè)復(fù)合電路組 件中的另 一個(gè)復(fù)合電路組件的任何輸入或者至該多個(gè)叢集隊(duì)列。該全互連組件 可以分散于多個(gè)開關(guān)、傳輸晶體管、多任務(wù)器或解多任務(wù)器之間,或者可以一
個(gè)縱橫式開關(guān),且其也可以適合于提供以下的實(shí)體數(shù)據(jù)鏈路中的至少一個(gè)多 個(gè)一對一的輸入與輸出數(shù)據(jù)鏈路、 一個(gè)一對多的廣播數(shù)據(jù)鏈路、 一個(gè)多對一的 數(shù)據(jù)鏈路。該多個(gè)通訊組件也可以更包括 一個(gè)耦接至該狀態(tài)機(jī)組件的訊息管 理器電路,該訊息管理器電路適合于指定至少一個(gè)第一數(shù)據(jù)字的路由及切換至 少一個(gè)第二資料字。此外,該多個(gè)通訊組件也可以進(jìn)一步包括一或多個(gè)叢集間
的隊(duì)列,其適配于緩沖來自該多個(gè)復(fù)合電路組件的一個(gè)第一數(shù)組的至少一個(gè)第 三數(shù)據(jù)字并且傳輸該至少一個(gè)第三數(shù)據(jù)字至該多個(gè)復(fù)合電路組件的一個(gè)相鄰 的第二數(shù)組。該狀態(tài)機(jī)組件也可以進(jìn)一步適配于透過該多個(gè)叢集隊(duì)列的 一個(gè)所 選的叢集隊(duì)列或是透過該全互連組件來提供該第 一虛擬的數(shù)據(jù)鏈路。
示范性的實(shí)施例也可包含一個(gè)耦接至該狀態(tài)機(jī)組件的訊息管理器電路,該 訊息管理器電路適配于提供一個(gè)通訊接口至一個(gè)外部的總線或是一個(gè)外部的 內(nèi)存。此外,該訊息管理器電路也可以提供一個(gè)一致的地址空間給一個(gè)散布的 多個(gè)內(nèi)存復(fù)合電路組件。
在示范性的實(shí)施例中,該多個(gè)電路組件類型可包括以下的電路組件類型中 的任一個(gè)可組態(tài)設(shè)定的算術(shù)邏輯單元、可組態(tài)設(shè)定的乘法器、可組態(tài)設(shè)定的 位重新排列組件、可組態(tài)設(shè)定的乘與累加組件、可組態(tài)設(shè)定的Galois乘法器、 可組態(tài)設(shè)定的桶形移位器、可組態(tài)設(shè)定的查找表、可程序化的控制器、可組態(tài) 設(shè)定的控制器、以及可組態(tài)設(shè)定的多個(gè)算術(shù)邏輯單元。
在示范性的實(shí)施例中,該狀態(tài)機(jī)組件可以直接或是透過該多個(gè)通訊組件中 的至少 一個(gè)通訊組件耦接至該多個(gè)復(fù)合電路組件。在其它示范性的實(shí)施例中, 該狀態(tài)機(jī)組件是一個(gè)透過該多個(gè)通訊組件中的至少一個(gè)通訊組件耦接至該多個(gè)復(fù)合電路組件的外部的控制器或是外部的處理器。典型地,該狀態(tài)機(jī)組件更
包括 一個(gè)有限狀態(tài)機(jī)電路以及一個(gè)適配于儲存狀態(tài)信息的內(nèi)存。
在示范性的實(shí)施例中,另一操作模式被提供。在此模式中,該狀態(tài)機(jī)組件 透過該所選的通訊組件提供一個(gè)從該第 一 復(fù)合電路組件的至少 一個(gè)輸出至該 第二復(fù)合電路組件的至少一個(gè)輸入的第一實(shí)體數(shù)據(jù)鏈路,并且其中該狀態(tài)機(jī)組 件進(jìn)一步適配于提供該第一動(dòng)作以及該第二動(dòng)作的執(zhí)行。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括(l)多個(gè)電路數(shù)組,該 多個(gè)電路數(shù)組的每個(gè)電路數(shù)組包括(a)多個(gè)復(fù)合電路組件,每個(gè)復(fù)合電路組件 包括一個(gè)組件接口以及具有多個(gè)電路組件類型的電路組件,每個(gè)復(fù)合電路組件 具有至少一個(gè)輸入以及至少一個(gè)輸出,該多個(gè)電路組件類型包括多個(gè)可組態(tài)設(shè) 定的組件類型;(b)—個(gè)耦接至該多個(gè)復(fù)合電路組件的全互連組件,該全互連 組件適配于耦接該多個(gè)復(fù)合電路組件中的 一 個(gè)第 一 復(fù)合電路組件的任何輸出 至該多個(gè)復(fù)合電路組件中的一個(gè)第二復(fù)合電路組件的任何輸入;(c)多個(gè)耦接至 該全互連組件的第一通訊組件;(d)—個(gè)狀態(tài)機(jī)組件,其耦接至該多個(gè)復(fù)合電 路組件、該全互連組件、以及該多個(gè)第一通訊組件;以及(2)—個(gè)耦接至該多 個(gè)電路數(shù)組的互連,該互連包括耦接至該多個(gè)第一通訊組件的多個(gè)第二通訊組 件,該多個(gè)第二通訊組件適配于從該多個(gè)電路數(shù)組的一個(gè)第一電路數(shù)組傳輸數(shù) 據(jù)至一個(gè)第二電路數(shù)組。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)電路數(shù)組,該多個(gè)電 路數(shù)組的至少兩個(gè)電路數(shù)組包括(a)多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件,每個(gè)復(fù) 合電路組件包括一個(gè)組件接口以及一個(gè)具有多個(gè)可組態(tài)設(shè)定的電路組件類型 的可組態(tài)設(shè)定的電路組件,每個(gè)復(fù)合電路組件具有多個(gè)輸入以及多個(gè)輸出;(b) 一個(gè)耦接至該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件的互連組件,該互連組件適配于 耦接該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件的 一個(gè)第 一可組態(tài)設(shè)定的復(fù)合電路組 件的一個(gè)輸出至該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件的一個(gè)第二可組態(tài)設(shè)定的 復(fù)合電路組件的一個(gè)輸入;(c)多個(gè)耦接至該互連組件的第一通訊組件;以及(d) 一個(gè)狀態(tài)機(jī)組件,其耦接至該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件、該全互連組件、 以及該多個(gè)第一通訊組件,該狀態(tài)機(jī)組件適配于指定一個(gè)第一動(dòng)作給該多個(gè)可組態(tài)設(shè)定的電路組件類型的一個(gè)第一電路組件類型的一個(gè)第一可組態(tài)設(shè)定的 復(fù)合電路組件,指定一個(gè)第二動(dòng)作給該多個(gè)可組態(tài)設(shè)定的電路組件類型的一個(gè) 第二電路組件類型的一個(gè)第二可組態(tài)設(shè)定的復(fù)合電路組件,并且提供從該第一 復(fù)合電路組件的多個(gè)輸出的 一個(gè)第 一輸出至該第二復(fù)合電路組件的多個(gè)輸入 的一個(gè)第一輸入的一第一數(shù)據(jù)鏈路,該第一數(shù)據(jù)鏈路透過該互連組件或是透過 該多個(gè)第 一通訊組件的一個(gè)第 一通訊組件。
在另一示范性的實(shí)施例中, 一種發(fā)明的集成電路包括(l)多個(gè)電路數(shù)組, 其中該多個(gè)電路數(shù)組的每個(gè)電路數(shù)組包括(a)多個(gè)復(fù)合電路組件,每個(gè)復(fù)合電 路組件包括一個(gè)組件接口以及具有多個(gè)電路組件類型的電路組件,每個(gè)復(fù)合電 路組件具有至少一個(gè)輸入以及至少一個(gè)輸出,該多個(gè)電路組件類型包括多個(gè)可 組態(tài)設(shè)定的組件類型;(b)—個(gè)耦接至該多個(gè)復(fù)合電i 各組件的全互連組件,該 全互連組件適配于耦接該多個(gè)復(fù)合電路組件中的一個(gè)第一復(fù)合電路組件的任 何輸出至該多個(gè)復(fù)合電路組件中的一個(gè)第二復(fù)合電路組件的任何輸入;(c)多個(gè) 耦接至該全互連組件的第一通訊組件;(d)—個(gè)狀態(tài)機(jī)組件,其耦接至該多個(gè) 復(fù)合電i 各組件、該全互連組件、以及該多個(gè)第一通訊組件,該狀態(tài)機(jī)組件適配 于指定一個(gè)第一動(dòng)作給該多個(gè)電路組件類型的一個(gè)第一電路組件類型的一個(gè) 第一復(fù)合電路組件,指定一個(gè)第二動(dòng)作給該多個(gè)電路組件類型的一個(gè)第二電路 組件類型的一個(gè)第二復(fù)合電路組件,提供一從該第一復(fù)合電路組件的至少一個(gè) 輸出至該第二復(fù)合電路組件的至少一個(gè)輸入的第一數(shù)據(jù)鏈路,并且響應(yīng)于該第 一復(fù)合電路組件的一個(gè)偵測到的錯(cuò)誤,以指定該第一動(dòng)作給該多個(gè)復(fù)合電路組 件的 一 個(gè)第三復(fù)合電路組件并且提供一從該第三復(fù)合電路組件的至少 一 個(gè)輸 出至該第二復(fù)合電路組件的至少一個(gè)輸入的第二數(shù)據(jù)鏈路;以及(2)—個(gè)耦接 至該多個(gè)電路數(shù)組的互連,該互連包括耦接至該多個(gè)第一通訊組件的多個(gè)第二 通訊組件,該多個(gè)第二通訊組件適配于從該多個(gè)電路數(shù)組的一個(gè)第一電路數(shù)組 傳輸數(shù)據(jù)至一個(gè)第二電路數(shù)組。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)復(fù)合電路組件,每 個(gè)復(fù)合電路組件包括一個(gè)組件接口以及具有多個(gè)電路組件類型的電路組件,每 個(gè)復(fù)合電路組件具有一個(gè)輸入以及一個(gè)輸出;以及一個(gè)耦接至該多個(gè)復(fù)合電路組件的狀態(tài)機(jī)組件,該狀態(tài)機(jī)組件適配于指定一個(gè)第一功能給該多個(gè)組件類型 的一第一組件類型的一個(gè)第一復(fù)合電路組件,以指定一個(gè)第二功能給該多個(gè)組 件類型的一第二組件類型的一個(gè)第二復(fù)合電路組件,并且提供一從該第一復(fù)合 電路組件的輸出至該第二復(fù)合電路組件的輸入的第一數(shù)據(jù)鏈路。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)復(fù)合電路組件,每 個(gè)復(fù)合電路組件包括一個(gè)對應(yīng)的組件接口以及一個(gè)具有多個(gè)電路組件類型的 對應(yīng)的電路組件,該多個(gè)復(fù)合電路組件中的一個(gè)第一復(fù)合電路組件具有該多個(gè) 電路組件類型的一個(gè)第一電路組件類型,該多個(gè)復(fù)合電路組件中的一個(gè)第二復(fù) 合電路組件具有該多個(gè)電路組件類型的一個(gè)第二電路組件類型;耦接至該多個(gè) 復(fù)合電路組件的多個(gè)通訊組件;以及一個(gè)耦接至該多個(gè)通訊組件的狀態(tài)才幾組 件,該狀態(tài)機(jī)組件在執(zhí)行期間適配于指定一個(gè)第一動(dòng)作給該第一復(fù)合電路組 件,指定一個(gè)第二動(dòng)作給該第二復(fù)合電路組件,并且提供一在該第一復(fù)合電路 組件以及該第二復(fù)合電路組件之間的第一數(shù)據(jù)鏈路。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)復(fù)合電路組件,每 個(gè)復(fù)合電路組件包括一個(gè)組件接口以及具有多個(gè)電路組件類型的電路組件;以 及一個(gè)耦接至該多個(gè)復(fù)合電路組件的狀態(tài)機(jī)組件,該狀態(tài)機(jī)組件適配于指定一 個(gè)第一功能給一個(gè)第一復(fù)合電路組件,指定一個(gè)第二功能給一個(gè)第二復(fù)合電路 組件,并且提供一在該第一復(fù)合電路組件以及該第二復(fù)合電路組件之間的第一 數(shù)據(jù)鏈路;該狀態(tài)機(jī)組件進(jìn)一步適配于響應(yīng)該第一復(fù)合電路組件的不可利用, 以指定該第一功能給該多個(gè)復(fù)合電路組件的一個(gè)第三復(fù)合電路組件,并且提供 一在該第三復(fù)合電路組件以及該第二復(fù)合電路組件之間的第二數(shù)據(jù)鏈路。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)通訊組件;耦接至 該多個(gè)通訊組件的多個(gè)復(fù)合電路組件,每個(gè)復(fù)合電^各組件包括一個(gè)組件接口以 及一個(gè)具有多個(gè)電路組件類型的電路組件,該多個(gè)復(fù)合電路組件中的一個(gè)第一 復(fù)合電路組件具有一指定的第一動(dòng)作,該多個(gè)復(fù)合電路組件中的一個(gè)第二復(fù)合 電路組件具有一指定的第二動(dòng)作,該第一復(fù)合電路組件具有一第一數(shù)據(jù)鏈路至 該第二復(fù)合電路組件;以及一個(gè)耦接至該多個(gè)通訊組件的狀態(tài)機(jī)組件,該狀態(tài) 機(jī)組件適配于響應(yīng)該第一復(fù)合電路組件的不可利用,以指定該第一動(dòng)作給該多個(gè)復(fù)合電路組件的一個(gè)第三復(fù)合電路組件,并且提供一在該第三復(fù)合電路組件 以及該第二復(fù)合電路組件之間的第二數(shù)據(jù)鏈路。
在示范性的實(shí)施例中,該第一復(fù)合電路組件由于一個(gè)偵測到的錯(cuò)誤而可能 是無法利用的。該錯(cuò)誤可以通過以下的操作判斷的至少一個(gè)操作判斷來偵測
出 一個(gè)由該多個(gè)復(fù)合電路組件中的至少一個(gè)復(fù)合電路組件所執(zhí)行的周期性的 診斷; 一個(gè)被執(zhí)行作為該多個(gè)復(fù)合電路組件中的至少一個(gè)復(fù)合電路組件的一個(gè) 所選的背景的背景診斷;或是一個(gè)由具有相同的電路組件類型的多個(gè)復(fù)合電路 組件所執(zhí)行的比較測試。在示范性的實(shí)施例中,該狀態(tài)機(jī)組件進(jìn)一步適配于中 斷該第一復(fù)合電路組件的所有活動(dòng),并且在一個(gè)所儲存的可利用性表或?qū)τ潮?中將該第一復(fù)合電路組件指定為無法利用的。此外,該第一復(fù)合電路組件可能 是由于由一個(gè)具有比該第一動(dòng)作高的優(yōu)先級的第三動(dòng)作的狀態(tài)機(jī)組件之一指 定而為無法利用的。
在示范性的實(shí)施例中,該第一復(fù)合電路組件以及該第三復(fù)合電路組件分別 具有該多個(gè)可組態(tài)設(shè)定的組件類型中的一第一可組態(tài)設(shè)定的組件類型,該第二 復(fù)合電路組件具有該多個(gè)可組態(tài)設(shè)定的組件類型中的一第二可組態(tài)設(shè)定的組 件類型,并且該狀態(tài)機(jī)組件進(jìn)一步適配于指定該第一動(dòng)作為該第三復(fù)合電路組 件的一第一組態(tài)設(shè)定。該狀態(tài)機(jī)組件可進(jìn)一步適配于從一個(gè)第一符號的電路描 述文件組件獲得該第一組態(tài)設(shè)定以及第一可組態(tài)設(shè)定的組件類型。該第一符號 的電if各描述文件組件可進(jìn)一步包括一個(gè)符號的指針,該符號的指針指派該第二 數(shù)據(jù)鏈路作為在該第三復(fù)合電路組件以及該第二復(fù)合電路組件之間的虛擬的 數(shù)據(jù)通訊。
在示范性的實(shí)施例中,該第一復(fù)合電路組件具有該多個(gè)可組態(tài)設(shè)定的組件 類型中的一第一可組態(tài)設(shè)定的組件類型,該第二復(fù)合電路組件具有該多個(gè)可組 態(tài)設(shè)定的組件類型中的一第二可組態(tài)設(shè)定的組件類型,該第三復(fù)合電路組件具 有該多個(gè)可組態(tài)設(shè)定的組件類型中的一第三可組態(tài)設(shè)定的組件類型,并且該狀 態(tài)機(jī)組件進(jìn)一步適配于指定該第一動(dòng)作為該第三復(fù)合電路組件的一第一組態(tài) 設(shè)定。該狀態(tài)機(jī)組件可進(jìn)一步適配于使用一個(gè)儲存的轉(zhuǎn)換表,該轉(zhuǎn)換表具有一 個(gè)指向用于該第一動(dòng)作的移轉(zhuǎn)的第三復(fù)合電路組件的參照。在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)第一通訊組件;一 個(gè)耦接至該多個(gè)第一通訊組件的互連組件;多個(gè)耦接至該多個(gè)第一通訊組件以 及該互連組件的可組態(tài)設(shè)定的復(fù)合電路組件,每個(gè)可組態(tài)設(shè)定的復(fù)合電路組件 包括一個(gè)組件接口以及一個(gè)具有多個(gè)可組態(tài)設(shè)定的電路組件類型的可組態(tài)設(shè) 定的電路組件,每個(gè)復(fù)合電路組件具有至少一個(gè)輸入以及至少一個(gè)輸出,該多 個(gè)可組態(tài)設(shè)定的復(fù)合電路組件的一個(gè)第一可組態(tài)設(shè)定的復(fù)合電路組件具有一 個(gè)第一動(dòng)作,該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件的一個(gè)第二可組態(tài)設(shè)定的復(fù)合 電路組件具有一個(gè)第二動(dòng)作,該第一可組態(tài)設(shè)定的復(fù)合電路組件的至少一個(gè)輸 出具有一透過該互連組件或是該多個(gè)通訊組件中的一個(gè)所選的通訊組件的第 一數(shù)據(jù)鏈路至該第二可組態(tài)設(shè)定的復(fù)合電路組件的至少一個(gè)輸入;以及一個(gè)狀 態(tài)機(jī)組件,其耦接至該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件、該互連組件以及該多 個(gè)通訊組件,該狀態(tài)機(jī)組件適配于響應(yīng)該第 一可組態(tài)i殳定的復(fù)合電路組件的一 個(gè)偵測到的錯(cuò)誤,以指定該第一動(dòng)作給該多個(gè)復(fù)合電路組件中的一個(gè)第三可組 態(tài)設(shè)定的復(fù)合電路組件,并且透過該互連組件或是該多個(gè)通訊組件中的一個(gè)所 選的通訊組件以提供一從該第三復(fù)合電路組件的至少 一個(gè)輸出至該第二復(fù)合 電路組件的至少 一個(gè)輸入的第二數(shù)據(jù)鏈路。
在示范性的實(shí)施例中,當(dāng)該第一可組態(tài)設(shè)定的復(fù)合電路組件以及該第三可 組態(tài)設(shè)定的復(fù)合電路組件具有相同的可組態(tài)設(shè)定的電路組件類型時(shí),該狀態(tài)機(jī) 組件進(jìn)一步適配于傳輸該第一可組態(tài)設(shè)定的復(fù)合電路組件的至少一個(gè)組態(tài)設(shè) 定至該第三可組態(tài)設(shè)定的復(fù)合電路組件。此外,該狀態(tài)機(jī)組件可進(jìn)一步適配于 維持該多個(gè)可組態(tài)設(shè)定的復(fù)合電路組件中可利用的可組態(tài)設(shè)定的復(fù)合電路組 件的一個(gè)計(jì)數(shù),并且響應(yīng)于該具有多個(gè)用于對應(yīng)的功能的執(zhí)行的背景的第一可 組態(tài)設(shè)定的復(fù)合電路組件的錯(cuò)誤的偵測,以提供該多個(gè)背景至該多個(gè)可組態(tài)設(shè) 定的復(fù)合電路組件中之一或多個(gè)可利用的可組態(tài)設(shè)定的復(fù)合電路組件以執(zhí)行 該些對應(yīng)的功 肯b。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括(l)多個(gè)電路數(shù)組,該 多個(gè)電路數(shù)組的每個(gè)電路數(shù)組包括 一個(gè)互連組件;多個(gè)耦接至該互連組件的 第一通訊組件;多個(gè)耦接至該互連組件的復(fù)合電路組件,每個(gè)復(fù)合電路組件包括一個(gè)組件接口以及一個(gè)具有多個(gè)電路組件類型的電路組件,該多個(gè)復(fù)合電路 組件中的一個(gè)第一復(fù)合電路組件具有一個(gè)第一動(dòng)作,該多個(gè)復(fù)合電路組件中的 一個(gè)第二復(fù)合電路組件具有一個(gè)第二動(dòng)作,該第一復(fù)合電路組件具有一透過該
互連組件或是該多個(gè)第 一通訊組件中的一個(gè)所選的第 一通訊組件的第 一數(shù)據(jù)
鏈路至該第二可組態(tài)設(shè)定的復(fù)合電路組件;以及一個(gè)狀態(tài)機(jī)組件,其耦接至該 多個(gè)復(fù)合電路組件、全互連組件、以及該多個(gè)第一通訊組件,該狀態(tài)機(jī)組件適 配于響應(yīng)該第一復(fù)合電路組件的不可利用,以指定該第一動(dòng)作給該多個(gè)復(fù)合電 路組件的一個(gè)第三復(fù)合電路組件,并且透過該互連組件或是該多個(gè)第一通訊組 件中的一個(gè)所選的第一通訊組件以提供一在該第三復(fù)合電路組件以及該第二 復(fù)合電路組件之間的第二數(shù)據(jù)鏈路;以及(2)耦接至該多個(gè)第一通訊組件的多 個(gè)第二通訊組件,該多個(gè)第二通訊組件適配于從該多個(gè)電路數(shù)組的一個(gè)第一電 路數(shù)組傳輸數(shù)據(jù)至 一 個(gè)第二電路數(shù)組。
在示范性的實(shí)施例中,該第一電路數(shù)組的一個(gè)第一狀態(tài)機(jī)組件進(jìn)一步適配 于提供該第一數(shù)據(jù)鏈3各,其是借助透過一個(gè)第二通訊組件來傳輸一指定if各由的 請求至該多個(gè)電路數(shù)組的其它電路數(shù)組的多個(gè)其它狀態(tài)機(jī)組件并且通過將該 第 一數(shù)據(jù)鏈路指定路由至 一個(gè)第 一通訊組件。
在另 一示范性的實(shí)施例中, 一種發(fā)明的自我復(fù)原(self-healing)集成電路被 提出,該集成電路包括第一多個(gè)復(fù)合電路組件,該第一多個(gè)復(fù)合電路組件的 一個(gè)第一復(fù)合電路組件適配于執(zhí)行一第一功能;多個(gè)耦接至該第一多個(gè)復(fù)合電 路組件的通訊組件;第二多個(gè)復(fù)合電路組件,其透過第一多個(gè)數(shù)據(jù)鏈路、透過 該多個(gè)通訊組件中的至少一個(gè)通訊組件耦接至該第一復(fù)合電路組件用于該第 一功能的執(zhí)行;以及一個(gè)狀態(tài)機(jī)組件,其耦接至該第一多個(gè)復(fù)合電路組件并且 適配于響應(yīng)該第一復(fù)合電路組件的不可利用,以調(diào)整該第一多個(gè)復(fù)合電路組件 中的一個(gè)第二復(fù)合電路組件來提供該第一功能并且提供在該第二復(fù)合電路組 件以及該第二多個(gè)復(fù)合電路組件之間的第二多個(gè)數(shù)據(jù)鏈路用于該第 一功能的 執(zhí)行。
在另一示范性的實(shí)施例中, 一種發(fā)明的裝置包括多個(gè)復(fù)合電路組件,每 個(gè)復(fù)合電路組件包括一個(gè)組件接口以及一個(gè)具有多個(gè)電路組件類型的電路組件;以及一個(gè)耦接至該多個(gè)復(fù)合電路組件的狀態(tài)機(jī)組件,該狀態(tài)才幾組件適配于 指定一第一功能給一個(gè)第一復(fù)合電路組件,指定一個(gè)第二功能給一個(gè)第二復(fù)合 電路組件,并且提供一在該第一復(fù)合電路組件以及該第二復(fù)合電路組件之間的 第一數(shù)據(jù)鏈路;該狀態(tài)機(jī)組件進(jìn)一步適配于響應(yīng)該第一復(fù)合電路組件的一個(gè)偵 測到的錯(cuò)誤,以指定該第 一功能給該多個(gè)復(fù)合電路組件的 一個(gè)第三復(fù)合電路組 件并且提供一在該第三復(fù)合電路組件以及該第二復(fù)合電路組件之間的第二數(shù) 據(jù)鏈路。
這些實(shí)施例以及另外的實(shí)施例在以下更詳細(xì)地加以論述。本發(fā)明的許多其 它優(yōu)點(diǎn)及特點(diǎn)從以下的本發(fā)明詳細(xì)說明以及本發(fā)明的實(shí)施例、從申請專利范圍 并且從所附的圖式來看將會(huì)變成相當(dāng)明顯的。
本發(fā)明的目的、特點(diǎn)及優(yōu)點(diǎn)在參考以下結(jié)合構(gòu)成本說明書的一部份的所附 的圖式及實(shí)例的揭露內(nèi)容之后將會(huì)是更容易體會(huì)的,其中相同的參考圖號被用 來識別在各個(gè)圖式中相同的構(gòu)件,且其中,具有字母字體的組件符號使用于識 別各種圖內(nèi)已選的構(gòu)件實(shí)施例的額外的類型、舉例或變化,其中
圖1為以高階或是概念上的層級來描繪根據(jù)本發(fā)明的教示的一個(gè)示范性 的裝置實(shí)施例的彈性的圖2為描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的第一裝置實(shí)施例的方塊圖; 圖3為描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的第二裝置實(shí)施例的方塊圖; 圖4為描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的數(shù)據(jù)封包及數(shù)據(jù)字序列的
圖5為描繪根據(jù)本發(fā)明的教示的一個(gè)第一示范性的電路叢集的方塊圖; 圖6為描繪根據(jù)本發(fā)明的教示的一個(gè)第二示范性的電路叢集的方塊圖; 圖7為描繪根據(jù)本發(fā)明的教示的一個(gè)第三示范性的電路叢集的方塊圖; 圖8為更加詳細(xì)地描繪根據(jù)本發(fā)明的教示的一個(gè)在一示范性的電路叢集 內(nèi)的示范性的復(fù)合電路組件的方塊圖9為根據(jù)本發(fā)明的教示的一個(gè)示范性的乘法器可組態(tài)設(shè)定的組件的方塊圖10為根據(jù)本發(fā)明的教示的 一個(gè)示范性的三ALU的可組態(tài)設(shè)定的組件的 方塊圖11為以高階來描繪才艮據(jù)本發(fā)明的教示的一個(gè)示范性的編譯方法的流程
圖12為以高階來描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的操作系統(tǒng)或方法 的流程圖13為描繪根據(jù)本發(fā)明的教示,在一個(gè)示范性的裝置內(nèi)的用于背景可利 用性的判斷的示范性的組合邏輯電路的方塊圖14為劃分成圖14A、圖14B、圖14C及圖14D,其描繪根據(jù)本發(fā)明的 教示的一個(gè)示范性的算法或是符號的電路描述文件的執(zhí)行時(shí)的結(jié)合過程的流 程圖15為描繪4艮據(jù)本發(fā)明的教示的一個(gè)第一示范性的重新指定及再次結(jié)合 過程的流程圖16為描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的組態(tài)設(shè)定以及控制字的
圖17為描繪根據(jù)本發(fā)明的教示,在一個(gè)示范性的裝置內(nèi)的用于背景預(yù)備 判斷的示范性的組合邏輯電路的方塊圖18為描繪根據(jù)本發(fā)明的教示的一個(gè)第四示范性的電路叢集的方塊圖; 圖19為描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的第三裝置實(shí)施例的方塊圖。
具體實(shí)施例方式
雖然本發(fā)明容許有許多不同形式的實(shí)施例,但是本發(fā)明的特定實(shí)例及實(shí)施 例仍被展示在圖式中并且在此將會(huì)詳細(xì)地加以描述,而認(rèn)知到本發(fā)明的揭露內(nèi) 容是將被視為本發(fā)明的原理的例證,并且非打算限制本發(fā)明至所說明的特定實(shí) 例及實(shí)施例,并且許多從所述的實(shí)施例所為的變化或修改都是可能的且被視為 等同的。就此方面而言,在詳細(xì)解釋與本發(fā)明一致的至少一個(gè)實(shí)施例之前,將了解到的是,本發(fā)明在其應(yīng)用上并不限于在以上及以下所闡述、在圖式中所繪、 或是在實(shí)例中所述的結(jié)構(gòu)以及構(gòu)件的組態(tài)設(shè)定的細(xì)節(jié)。與本發(fā)明一致的方法、 系統(tǒng)及裝置能夠有其它實(shí)施例,并且能夠以各種方式實(shí)施與執(zhí)行。另外,將了 解到的是,在此所用的措辭及術(shù)語以及內(nèi)含在以下的摘要是為了說明的目的且 不應(yīng)該被一見為限制。
如上所指出地,本發(fā)明的IC架構(gòu)的最新穎特點(diǎn)中之一是其彈性,此對于
在IC的使用期間可能出現(xiàn)的制造缺陷、瑕瘋提供調(diào)整,以及對于新的特點(diǎn)、 服務(wù)、算法及其它事件提供可調(diào)整性。本發(fā)明的IC架構(gòu)的彈性及強(qiáng)健度容許 IC制造有增加良率,因?yàn)楸恢圃斐鰩в懈鞣N缺陷的本發(fā)明的IC仍然將會(huì)是相
當(dāng)有用且完全作用的。
此外,在動(dòng)作期間,此種彈性可被描述為"神經(jīng)的"或是生物的自我復(fù)原,
因?yàn)樵贗C的一部份受損或是變成不能利用的事件中,該IC的另 一部份有效地
"被征召"或是重新指派來取代及執(zhí)行的功能該受損的部份。此外,如同在以下 更加詳細(xì)所述,當(dāng)功能被重新指派時(shí),新的控制及數(shù)據(jù)路徑也被產(chǎn)生,因而被
轉(zhuǎn)移的運(yùn)算與其它IC運(yùn)算不間斷地繼續(xù)執(zhí)行。此種適應(yīng)的彈性及自我復(fù)原可
以實(shí)時(shí)或是幾乎實(shí)時(shí)地產(chǎn)生,此依據(jù)所選的實(shí)施例而定。假設(shè)有足夠的計(jì)算資
源保持操作,此容許IC能夠無中斷地繼續(xù)運(yùn)作。在IC損壞的事件中,此種彈
性提供效能的優(yōu)雅降級,而不是災(zāi)難的失效,因而此在健康及安全的應(yīng)用中尤 其是重要的。
如同在以下更加詳細(xì)論述的,本發(fā)明示范性的實(shí)施例的數(shù)個(gè)特點(diǎn)使得此種
彈性、連續(xù)的動(dòng)作以及最終的優(yōu)雅降級成為可能的。首先,該IC或其它組件 是由多個(gè)"復(fù)合的"電路組件(其包括各種類型的計(jì)算組件、 一個(gè)一致的I/O接 口、以及一個(gè)一致的控制結(jié)構(gòu))所構(gòu)成;這些復(fù)合電路組件是可有效互換的或 是可有效取代的,使得在損失一個(gè)組件的功能的事件中,當(dāng)有另一復(fù)合電路組 件(相同或是類似的)可利用的時(shí)候,其功能可被該另一復(fù)合電路組件取代。第 二,該多個(gè)計(jì)算的組件被選擇來使得實(shí)際上任何功能的執(zhí)行都是可行的,換言 之,該等組件在計(jì)算上是完整的。第三,控制功能是分散在多個(gè)電路"叢集" 控制器(在此稱為"狀態(tài)機(jī)組件"或是"有限狀態(tài)機(jī)組件")之間,使得控制功能可隨所需地被轉(zhuǎn)移在這些分布式控制器之間。第四,該些復(fù)合電路組件及/或其 互聯(lián)機(jī)是可組態(tài)設(shè)定的,以助于數(shù)據(jù)與控制路徑的功能及任何對應(yīng)的路由的轉(zhuǎn) 移。第五,所有所選的運(yùn)算在最初的執(zhí)行時(shí)間被指定且結(jié)合在該組件之內(nèi),并 且接著隨可能是所需地可被重新指定及重新結(jié)合以轉(zhuǎn)移對應(yīng)的功能至其它復(fù) 合電路組件并且繼續(xù)運(yùn)算。
圖1是以高階或是概念上的層級來描繪根據(jù)本發(fā)明的教示的一個(gè)示范性
的裝置100實(shí)施例的此種彈性的圖。如在圖1中所繪,體現(xiàn)為一個(gè)IC的裝置 100的各種部件(舉例而言,參考圖2至3所繪及所述的各種矩陣150)被利用 以同時(shí)執(zhí)行多個(gè)功能,舉例而言,可能與典型的汽車、其它交通工具或計(jì)算機(jī) 化的系統(tǒng)或是復(fù)雜的系統(tǒng)相關(guān)連的功能。在時(shí)間期間"a"中, 一個(gè)IC部份102 提供防死鎖煞車(ABS)功能, 一個(gè)IC部份104提供循跡控制功能, 一個(gè)IC部 份106提供視訊或其它多纟某體功能,并且一個(gè)IC部份108舉例而言是透過衛(wèi) 星或無線電鏈路來提供導(dǎo)航功能。
在時(shí)間期間"P"中,IC部份102的一個(gè)區(qū)域IIO(以"X"標(biāo)示)已變成不能利 用的,其舉例而言是因?yàn)樵揑C的有形磨損或是其它損壞。此種損壞可透過自 我測試或是透過在以下更加詳細(xì)描述的其它手段來加以判斷出。由于ABS是 一項(xiàng)高度優(yōu)先的功能,所以在區(qū)域110之內(nèi)執(zhí)行的功能接著被重新指定(或結(jié) 合)至區(qū)域112,區(qū)域112先前是在執(zhí)行^L訊功能,該:f見訊功能在交通工具的環(huán) 境中具有較低的動(dòng)作優(yōu)先級。如同在以下更加詳細(xì)論述的,作為此重新指定方 法的部份的是,新的數(shù)據(jù)及控制路徑也將會(huì)被產(chǎn)生,因而該新指定的區(qū)域繼續(xù) 與該IC的其它區(qū)域正常通透地通訊,就像是該重新指定不曾發(fā)生過一般。依 據(jù)指定到此區(qū)域的新功能的本質(zhì)及范圍,IC部份106可繼續(xù)或是可不繼續(xù)執(zhí) 行其視訊功能、或是可以用較低的頻寬或速度執(zhí)行此功能。在任一種情形中, 盡管IC100有損壞,較高優(yōu)先級的ABS仍然繼續(xù)作用為操作的,因而沒有災(zāi) 難的失效發(fā)生。
接著,在時(shí)間期間'Y,, IC部份108的區(qū)域114及116(以"X,,標(biāo)示)已變成 不能利用的,并且其功能分別被重新指定至區(qū)域118及120。在此例中,由于 (區(qū)域104的)循跡控制一般可具有高于該導(dǎo)航系統(tǒng)的動(dòng)作的優(yōu)先級,所以區(qū)域118是可利用的,且并非完全被該循跡控制功能利用是可能的(舉例而言, 一或 多個(gè)復(fù)合電路組件及/或背景是可利用的,即如下所^論述者)。然而,隨著該IC 中更多部份變差,一信號或其它指示可被提供給使用者,舉例而言,使得該交 通工具在不久的未來送修以更換IC。此外,如上所4是及且如同在以下更加詳 細(xì)論迷的,根據(jù)用于將被重新指定的功能的目標(biāo)目的地的可利用性并且根據(jù)該 功能是如何被重新指定,該些被重新指定的功能可能不再最佳地執(zhí)行(舉例而 言,它們可能是較慢的、或是具有較小的頻寬),但是仍然可執(zhí)行。同樣地, 此種在效能上的下滑是漸進(jìn)的,而非災(zāi)難的,其具有得以提供充分警告的功負(fù)L
接著,在時(shí)間期間"S", IC部份104的區(qū)域122、 124、 126以及128(以"X" 標(biāo)示)已變成不能利用的,并且其功能分別被重新指定至區(qū)域132、 138、 134 以及136。在此例中,由于(區(qū)域104的)循跡控制一般會(huì)具有比IC部份106的 視訊系統(tǒng)的動(dòng)作高的優(yōu)先級,所以那些較高優(yōu)先級的功能被重新指定至該IC 的未受影響的區(qū)域。在此例中,看起來有道理的是視訊功能可能會(huì)完全停止, 因?yàn)樵揑C剩余可用的部份正在執(zhí)行那些較高優(yōu)先級的功能,舉例而言,煞車 及循跡控制。然而,隨著該IC中更多部份變差, 一警告、信號或其它指示也 可被提供給使用者,舉例而言,使得該交通工具立即送修以更換IC。同樣地, 此種在效能上的下滑是漸進(jìn)的,而非災(zāi)難的,其具有供高的優(yōu)先級的功能繼續(xù) 運(yùn)作的能力,盡管在該IC的許多部份中有著原本會(huì)使得現(xiàn)有技術(shù)的IC完全、 突然且可能是災(zāi)難性地失效的重大的故障。
在裝置100的運(yùn)算上的生物學(xué)的平行性是引人注目的。由于在一個(gè)可治愈 本身的生物學(xué)系統(tǒng)(舉例而言,神經(jīng)學(xué)系統(tǒng))中,在舉例而言是損失神經(jīng)元及對 應(yīng)的神經(jīng)功能的中風(fēng)的損害事件中,其它現(xiàn)有的神經(jīng)元被征用,其中新的連接 (突觸)被產(chǎn)生,以取代及回復(fù)先前由受損的神經(jīng)元所執(zhí)行的功能。在該裝置100 的情形中,在該IC的一或多個(gè)部件損壞的事件中,該IC的其它現(xiàn)有部份(電 路叢集與復(fù)合電路組件(在以下論述之))被征用,其中新的連接被產(chǎn)生,以取代
及回復(fù)先前由該IC受損的區(qū)域所執(zhí)行的功能。因此,如同在生物學(xué)系統(tǒng)中, 盡管IC受損,該裝置100自我復(fù)原,此使得不間斷的功能成為可行的。 A.裝置架構(gòu)圖2至3是以漸增的詳細(xì)程度來描繪根據(jù)本發(fā)明的教示的示范性的第 一及
第二裝置100、 140的方塊圖,該第一及第二裝置IOO、 140典型是體現(xiàn)為一個(gè) IC或是一個(gè)IC的部份。如同所繪,該裝置100、 140是高度分散的,且計(jì)算 上是"平的",其中所有的計(jì)算都是由多個(gè)復(fù)合電路組件260所執(zhí)行的。 一項(xiàng)"動(dòng) 作"是指將由一個(gè)復(fù)合電路組件260(透過其內(nèi)含的計(jì)算或其它類型的電路組件 270)所執(zhí)行的功能或活動(dòng)的類型,舉例而言,乘法或位處理。如同所繪,有各 種類型的復(fù)合電路組件260,其被描繪為不同類型的復(fù)合電路組件(等同地被稱 呼且縮寫為"復(fù)合的組件,,("CE"))CEA、 CEB、 CEC、 CED、 CEE以及CEM,
繪及所述)。作為一個(gè)第一編組的多個(gè)復(fù)合電路組件260以及以下論述的其它 電路結(jié)構(gòu)被聚集為對應(yīng)的多個(gè)電路"叢集"200。各種的編組也可以對應(yīng)的層級 而被視為多個(gè)復(fù)合電路組件260的數(shù)組。
于是,裝置100、 140可以在邏輯上被劃分為多個(gè)層級、或是由多個(gè)層級 所構(gòu)成,其中,此較低的層級被稱為一"叢集,,層級(或是一個(gè)第一數(shù)組),該多 個(gè)電路叢集200接著透過各種的(第二)通訊組件210以及一個(gè)第二信道(或是總 線結(jié)構(gòu))220而被聚集為一中間的層級(或是一個(gè)第二^t組),以作為一個(gè)第二編 組,其被稱為一叢集編組的或是"超叢集(supercluster)"層級(多個(gè)超叢集185), 其接著進(jìn)一步透過各種的(第三)通訊組件190以及第三信道(或是總線結(jié)構(gòu))195 而被聚集為一較高的層級,以作為一個(gè)第三編組,其被稱為一個(gè)"矩陣"層級(多 個(gè)矩陣150)或是單元層級(或是一個(gè)第三數(shù)組),其進(jìn)一步透過一個(gè)第四信道(或 是總線結(jié)構(gòu))160而被聚集為該裝置100、 140或組件層級,以作為一個(gè)第四編 組或#丈組。
該各種的通訊信道(舉例而言,總線或總線結(jié)構(gòu))160、 195、 220以及通訊 組件190、 210、 250整體可被稱呼且定義為本發(fā)明的互連155,其容許數(shù)據(jù)及 控制信息能夠在各種叢集200的任一個(gè)叢集200以及其它IC構(gòu)件之間通訊。
每個(gè)該裝置IOO、 140典型體現(xiàn)為一個(gè)集成電路,并且可以是一個(gè)別的IC 或是一個(gè)較大的系統(tǒng)上芯片("SOC,,)的部份或是一個(gè)網(wǎng)絡(luò)的IC的部份,舉例而 言,其耦接至在一個(gè)電路板、布線網(wǎng)絡(luò)、網(wǎng)絡(luò)網(wǎng)格等等之上的其它IC。該兩個(gè)裝置實(shí)施例100、 140不同之處只有在各種的叢集200中被利用以提供輸入 與輸出("I/0")至其它外部的或是非集積的IC或其它組件,舉例而言,外部的 內(nèi)存(舉例而言,DDR-2)或是外部的通訊信道或總線(舉例而言,PCI或 PCI-Express(PCI-e))的構(gòu)件位置(及/或類型)。對于裝置而言,此種外部的 I/O已集中在一個(gè)所選的矩陣150之內(nèi),而對于裝置100而言,此種外部的I/O 已分散在多個(gè)矩陣150。在所有其它的方面中,裝置100、 140是相同的。因 此,任何參照至裝置100都將會(huì)被理解為表示且包含被描繪為裝置140的第二 實(shí)施例,并且裝置140將不會(huì)被進(jìn)一步論述為一個(gè)別的實(shí)施例。另外,盡管圖 2與3描繪兩個(gè)矩陣150,但應(yīng)了解的是,裝置IOO、 140可包含一或多個(gè)矩陣 150,并且示范性的實(shí)施例可包含任意數(shù)目的矩陣150,此依據(jù)所選的應(yīng)用以 及各種的設(shè)計(jì)參數(shù)(舉例而言,IC面積以及功率需求)而定。
請參照圖2至3,如上所指出地,該裝置IOO邏輯上被劃分為多個(gè)矩陣150、 或是由多個(gè)矩陣150所構(gòu)成。每個(gè)矩陣150透過對應(yīng)的多個(gè)第三通訊組件190 以及一個(gè)第四通訊信道(或是總線結(jié)構(gòu))160來加以耦接,并且每個(gè)矩陣150具 有至少兩個(gè)輸入以及兩個(gè)輸出數(shù)據(jù)及控制路徑,其個(gè)別被描繪為(第四信道(或 是總線結(jié)構(gòu))160的)輸入與輸出("I/O")170及I/0 180。 4艮據(jù)所選的實(shí)施例,該 第四信道(或總線結(jié)構(gòu))160(以及I/O 170以及180)可能已經(jīng)利用相同的總線結(jié) 構(gòu)來結(jié)合控制及數(shù)據(jù)I/0路徑(如圖所繪)與數(shù)據(jù)、組態(tài)設(shè)定及控制信息、或是 此種數(shù)據(jù)、組態(tài):沒定及控制可以分開到不同的總線或互連結(jié)構(gòu)(未個(gè)別地繪出) 上。在一個(gè)示范性的實(shí)施例中,在此矩陣150的層級,此多個(gè)第三通訊組件 190透過示范性的通訊電路,舉例而言,封包指定路由或是路點(diǎn)(waypoint)電 路來加以實(shí)施。在一個(gè)第三通訊組件190 A/或該I/O 170、 180中的一個(gè)、或 是該些組件的任何部份失效的事件中,另一個(gè)第三通訊組件190以及剩余的 1/0 170、 180是可利用來提供相同的功能,盡管在可利用的通訊頻寬上可能會(huì) 降低。在一個(gè)示范性的實(shí)施例中,該第三通訊組件19(^皮實(shí)施為單一組合的電 路組件,其具有四個(gè)獨(dú)立的上傳通道以及四個(gè)獨(dú)立的下載信道(以及對應(yīng)的總 線結(jié)構(gòu));或者是,該等各種的通道也可以被實(shí)施以提供全雙工通訊。
在示范性的實(shí)施例中,此種多個(gè)(至少兩個(gè))通訊組件以及總線結(jié)構(gòu)的對應(yīng)的I/O部份(具有組合的控制及數(shù)據(jù)I/O路徑)的使用是在各種的邏輯、階層式
層級的每個(gè)層級處都重復(fù),此在各種的通訊組件或1/0路徑中的任一個(gè)失效的 事件中提供對應(yīng)的彈性。然而,對于需要較少彈性或是受到其它限制的選定的
實(shí)施例,此種一或多個(gè)額外的通訊組件及對應(yīng)的1/0組是選配的且可被省略。
用于在各種層級之間通訊的電路,舉例而言,該多個(gè)第三通訊組件190適配于 執(zhí)行封包為主的指定路由、自我指定路由、通道(tunneling)、或是其它類型的 數(shù)據(jù)、組態(tài)設(shè)定以及控制通訊。更明確地說, 一個(gè)矩陣150邏輯上被劃分為多 個(gè)超叢集185,該些超叢集185透過該多個(gè)第三通訊組件190以及第三信道(或 總線結(jié)構(gòu))195來彼此耦接,并且經(jīng)由第四信道(或是總線結(jié)構(gòu))160以及其它對 應(yīng)的第三通訊組件190來進(jìn)一步耦接至其它矩陣150的超叢集185。
于是,該些超叢集185邏輯上被劃分為對應(yīng)的多個(gè)電路叢集200(被縮寫且 在此就稱為多個(gè)"叢集,,或是一個(gè)"叢集,,),該些電路叢集200于是由多個(gè)以下論 述的被稱為復(fù)合電路組件260(或是等同地被稱呼且縮寫為"復(fù)合的組 件,,("CE")260)以及其它構(gòu)件(包含第一通訊組件250及狀態(tài)機(jī)組件290)的電路 組件所構(gòu)成。在這些各種叢集200之間的通訊透過多個(gè)第二通訊組件210(也可 提供封包為主的指定路由、自我指定路由、通道、或是其它類型的數(shù)據(jù)、組態(tài) 設(shè)定以及控制通訊)以及一個(gè)第二信道(或是總線結(jié)構(gòu))220來提供的。在一個(gè)超 叢集185之內(nèi)的各種叢集200接著進(jìn)一步耦接至相同或其它矩陣150的其它超 叢集185的其它叢集200,此經(jīng)由第二信道(或是總線結(jié)構(gòu))220、第二通訊組件 210、第三信道(或是總線結(jié)構(gòu))195、以及第三通訊組件190,并且接著經(jīng)由第 四信道(或是總線結(jié)構(gòu))160來耦接至其它矩陣。此外,作為一個(gè)選配的變化, 可在相鄰的叢集之間提供"快速的路徑,,連接,其在圖2中被描繪為聯(lián)機(jī)215, 并且在以下更加詳細(xì)描述。
各種的第二及第三通訊組件210、 190以及通訊信道(總線結(jié)構(gòu))160、 195、 220的層級整體構(gòu)成本發(fā)明的一個(gè)互連結(jié)構(gòu)155。如上所指出地,該第二及第 三通訊組件210、 190可如同在此項(xiàng)技術(shù)中已知地被實(shí)施、或是如同變成已知 地被實(shí)施,用于數(shù)據(jù)的傳輸、指定路由或是交換、組態(tài)設(shè)定以及控制往返于可尋址的叢集200。該第二以及第三通訊組件210、 190可被實(shí)施為指定路由的 組件、自我指定路由的組件、路點(diǎn)的組件、電路交換的組件、混合式指定路由 及電路交換的組件、其它交換器為基礎(chǔ)的通訊組件、或是其它類型的通訊組件、 以及被視為等同者。該些各種的通訊信道(總線結(jié)構(gòu))160、 195、 220可利用在 IC制造及處理中可利用的任何導(dǎo)電路徑來加以實(shí)施。
在示范性的實(shí)施例中,此互連155(通訊信道(總線結(jié)構(gòu))160、 195、 220)大 致將會(huì)是"n,,位寬,其中該數(shù)目"n,,是依據(jù)所選的實(shí)施例的目的來加以選定的。 舉例而言,在一個(gè)示范性的實(shí)施例中,"n"是17或更多的位,其提供一個(gè)16 位數(shù)據(jù)字以及一或多個(gè)控制或信號位。該互連155除了包括一或多個(gè)如在圖2 至3中所繪的總線、導(dǎo)線、導(dǎo)體、傳輸媒體或連接結(jié)構(gòu)之外,該互連155也包 含多個(gè)容納n位寬度的通訊組件(190、 210),該些通訊組件在矩陣150、超叢 集185、以及叢集200之間提供數(shù)據(jù)字(或封包)指定路由或是其它的發(fā)送、組 態(tài)設(shè)定字(或封包)、以及/或是控制字(或封包)。在示范性的實(shí)施例中,根據(jù)將 要提供的互連度,這些通訊組件(190、 210)也可以提供仲裁或是其它的指定路 由沖突解決。
在叢集200的層級內(nèi),第一通訊組件250提供叢集I/0,除了叢集間的數(shù) 據(jù)、組態(tài)設(shè)定及控制指定路由之外,該叢集1/0提供叢集內(nèi)的電路為基礎(chǔ)的(或 是電路交換的)連接功能,產(chǎn)生往返于在一個(gè)叢集200內(nèi)的構(gòu)件的直接的通訊 鏈路或連接、以及往返于其它叢集200的構(gòu)件的數(shù)據(jù)、組態(tài)設(shè)定及控制指定路 由。在示范性的實(shí)施例中,在一個(gè)叢集200或超叢集185內(nèi)的訊息管理器265 也被利用以提供組態(tài)設(shè)定及控制的叢集間的通訊以及任何類型的數(shù)據(jù)、組態(tài)設(shè) 定及控制的外部的輸入與輸出通訊。
應(yīng)注意到的是,在任何特定的實(shí)施例中,裝置100內(nèi)的層級數(shù)的選擇是可 對于特定數(shù)目的計(jì)算的組件而改變的,作為將被利用的實(shí)體互連數(shù)量相較于指 定路由的復(fù)雜度的平衡。在該示范性的實(shí)施例中,對于相同數(shù)目的復(fù)合電路組 件260而言,舉例而言,四個(gè)層級(矩陣、超叢集、叢集、以及復(fù)合電路組件 層級)的使用相較于三個(gè)層級(其中每個(gè)層級有較多的構(gòu)件)使得在互連的總線 及導(dǎo)線的數(shù)量上顯著的降低成為可能的,此導(dǎo)致面積節(jié)省及電容降低,而其代價(jià)則是額外的指定路由復(fù)雜度。
請繼續(xù)參考圖2與3,作為一個(gè)選項(xiàng)或替代例的是,才艮據(jù)所選的實(shí)施例, 一或多個(gè)額外的控制器175可被利用在各種矩陣150、超叢集185或叢集200 層級的任一者。舉例而言,執(zhí)行時(shí)結(jié)合的示范性的實(shí)施例(以下參考圖14論述) 可以利用此種額外的控制器(或者同意義地,多個(gè)處理器)175,也可以利用一 或多個(gè)狀態(tài)機(jī)組件290(以下論述)作為一或多個(gè)控制器、或兩者皆是。于一個(gè) 示范性的實(shí)施例中,該控制器或者處理器175使用一個(gè)商業(yè)上可取得的處理器 或微處理器而實(shí)施,舉例而言ARM或Micro-Blaze。該處理器175也可以于一 個(gè)分離的系統(tǒng)內(nèi),或者可以整合成為該裝置100、 140的芯片的一部分,等等, 且可以為任何類型的處理器或控制器,或者也可以使用 一或多個(gè)狀態(tài)機(jī)組件 290而實(shí)施。此外,該裝置IOO(或140)也可包含其它構(gòu)件,舉例而言是任何可 以整合或耦接該裝置的其它電路或其它組件,舉例而言,射頻或蜂巢式通訊電 路、內(nèi)存電路、處理器、微處理器、等等,所有此種變化都被視為在本發(fā)明的 范疇之內(nèi)。
接著介紹該裝置100的動(dòng)作,數(shù)據(jù)計(jì)算及處理透過復(fù)合電路組件260而被 執(zhí)行在該多個(gè)叢集200之中。這些電路組件260被稱為"復(fù)合的"電路組件260 是因?yàn)樵谑痉缎缘膶?shí)施例中,其由一個(gè)第一固定或不變的部份以及一個(gè)第二可 變的部份所構(gòu)成,其可組態(tài)設(shè)定的或是非可組態(tài)設(shè)定的(依據(jù)復(fù)合電路組件260 的類型而定)。更具體而言,每個(gè)復(fù)合電路組件260由所構(gòu)成(l)一個(gè)一致或 固定的組件接口及控制280,對于每個(gè)復(fù)合電路組件260而言都是相同的;以 及(2)—個(gè)從多個(gè)類型的計(jì)算的組件270(可組態(tài)設(shè)定的、或是非可組態(tài)設(shè)定的) 所選的類型的"計(jì)算的,,或是其它電路組件270,其參考圖5至8而更加詳細(xì)地 被描繪及論述。
在復(fù)合電路組件260內(nèi)的計(jì)算的電路組件270(也就只是稱為組件270或電 路組件270)會(huì)在類型及可組態(tài)設(shè)定性有所變化;該計(jì)算的組件270被稱為"計(jì) 算的,,只是便于參考用,因?yàn)楦鞣N類型的電路組件270都可具有就任何嚴(yán)格意 義而言都不算是計(jì)算的功能,舉例而言,內(nèi)存功能、有限狀態(tài)機(jī)功能、通訊功 能、等等。舉例而言,某些電路組件270可以是具有多個(gè)類型的靜態(tài)或可組態(tài)設(shè)定的計(jì)算的組件、具有多個(gè)類型的靜態(tài)或可組態(tài)設(shè)定的內(nèi)存組件、具有多個(gè) 類型的靜態(tài)或可組態(tài)設(shè)定的通訊組件或接口 、靜態(tài)或可組態(tài)設(shè)定的狀態(tài)4幾組
件、等等,此導(dǎo)致有多個(gè)類型的復(fù)合電路組件260,舉例而言,可組態(tài)設(shè)定的 復(fù)合電路組件260、可組態(tài)設(shè)定的或是非可組態(tài)設(shè)定的內(nèi)存復(fù)合電路組件 260M、或是可組態(tài)設(shè)定的或是非可組態(tài)設(shè)定的復(fù)合的I/O或是其它通訊電路 組件260(其可提供用于舉例而言是外部的通訊的1/0接口)。于是,除非背景 需要或是另有指出,否則任何在此參照至一個(gè)復(fù)合電路組件260都將會(huì)被理解 為表示及包含復(fù)合電路組件260的各種類型、特殊的實(shí)例或是特定的實(shí)例或舉 例中的任一種,舉例而言,可組態(tài)設(shè)定的復(fù)合電路組件260、狀態(tài)機(jī)組件290、 第 一通訊組件250 、以及復(fù)合的內(nèi)存組件260M。
此外,該第一通訊組件250(叢集1/0)舉例而言可被實(shí)施為一個(gè)類型的復(fù)合 電路組件260,其具有一個(gè)呈現(xiàn)給其它復(fù)合電路組件260的組件接口及控制 280,并且具有一個(gè)設(shè)計(jì)用于通訊功能的計(jì)算的組件270,并且該計(jì)算的組件 270可以是或可以不是可組態(tài)設(shè)定的。此外,如下所論述,典型體現(xiàn)為一個(gè)狀 態(tài)機(jī)且被稱為一個(gè)"訊息管理器"電路265的額外的電路被設(shè)置在各種的叢集 或是所選的叢集200之內(nèi)以執(zhí)行外部的通訊功能,舉例而言,提供通訊接口至 外部的內(nèi)存、總線及通訊系統(tǒng),舉例而言,提供符合各種通訊及其它數(shù)據(jù)傳輸 標(biāo)準(zhǔn)的接口,并且當(dāng)該裝置IOO被體現(xiàn)為一個(gè)SOC的部份時(shí),也可包含用于 與一個(gè)IC的其它部份通訊的接口。舉例而言,根據(jù)所選的實(shí)施例, 一個(gè)訊息 管理器265(作為專用的硬件)或是一個(gè)復(fù)合電路組件260(具有一個(gè)適用于通訊 功能的計(jì)算的組件270)可被利用于此種外部的通訊,舉例而言,提供一個(gè)以太 網(wǎng)絡(luò)接口、 一個(gè)PCI接口、 一個(gè)PCI Express接口、 一個(gè)USB或USB2接口 、 一個(gè)DDR SDRAM接口或是其它類型的內(nèi)存接口 、 一個(gè)無線接口、 一個(gè)至另 一IC的接口、等等。在示范性的實(shí)施例中,該訊息管理器也可被利用于在該 裝置100內(nèi)的通訊,舉例而言,在叢集200之間的通訊以及在狀態(tài)機(jī)組件290 之間的通訊,即如同在以下更加詳細(xì)論述的,舉例而言是用于組態(tài)設(shè)定及控制 的發(fā)送訊息。
于其它示范性的實(shí)施例中,外部通訊(舉例而言用于DDR-2、 PCI、 PCI-e)由耦合至該互連155的其它構(gòu)件提供,且該訊息管理器電路265提供一個(gè)超叢 集185及/或叢集200內(nèi)的串流為基礎(chǔ)的通訊以及互連網(wǎng)絡(luò)220、 195、 160、 170及180上的以封包為基礎(chǔ)的通訊之間接口連接,基本上取代諸如于超叢集 185C及叢集200C實(shí)施例中的第一及/或第二通訊組件250、 210。于此實(shí)施 例中,該訊息管理器電路265也可以實(shí)施為一個(gè)有限狀態(tài)機(jī)或者作為一個(gè)有限 狀態(tài)機(jī)結(jié)合各種組合邏輯閘,且該訊息管理器電路265處理三種訊息種類進(jìn) 來的訊息、出去的確認(rèn)收到及出的訊息,所有訊息皆經(jīng)過互連155。兩種型式 的訊息被使用數(shù)據(jù)寫入訊息及數(shù)據(jù)拷貝訊息。數(shù)據(jù)寫入訊息導(dǎo)致該訊息內(nèi)的 酬載數(shù)據(jù)被寫入至該訊息中指定的地址。數(shù)據(jù)寫入訊息,舉例而言,可以為使 用者工作寫入,寫入至第二內(nèi)存組件255,或者經(jīng)由組態(tài)設(shè)定/控制總線285
者寫入以組態(tài)設(shè)定一個(gè)叢集200內(nèi)任何復(fù)合的電路組件260。于此實(shí)施例中, 也用于舉例,該訊息管理器電路265可以寫入至狀態(tài)機(jī)組件290,以提供狀態(tài) 機(jī)組件290的控制。數(shù)據(jù)拷貝訊息導(dǎo)致一個(gè)數(shù)據(jù)寫入訊息自 一個(gè)指定的來源地 址被傳送至一個(gè)指定的目的地地址。出去的確認(rèn)收到由該訊息管理器電路265 產(chǎn)生,以響應(yīng)一個(gè)請求響應(yīng)的進(jìn)來的數(shù)據(jù)寫入訊息,且出去的確認(rèn)收到本身為 數(shù)據(jù)寫入訊息。出去的訊息于第二內(nèi)存組件255(舉例而言,叢集200隨機(jī)存取 內(nèi)存)被狀態(tài)機(jī)組件290所組合,且接著被該訊息管理器電路265傳送,諸如 通過設(shè)定一個(gè)指針給該訊息的開始處且指定該訊息大小而完成。此訊息組合可 以應(yīng)用于不需要確認(rèn)收到的出去的訊息或者延伸至需要確認(rèn)收到的出去的訊 臺
在一示范性的實(shí)施例中,形成叢集200隨機(jī)存取內(nèi)存的第二內(nèi)存組件255 實(shí)施為8K乘上16個(gè)區(qū)塊,且地址產(chǎn)生器設(shè)置于該內(nèi)存類型的復(fù)合電路組件 260M之內(nèi),而非使用狀態(tài)機(jī)組件290,以用于地址產(chǎn)生。 一個(gè)額外的緩存器 也可以被使用,其假如被設(shè)定,則該額外的緩存器保存該內(nèi)存類型的復(fù)合電路 組件260M,以由狀態(tài)機(jī)組件290使用,諸如用于儲存指令集,且其假如不被 設(shè)定,則致能由其它復(fù)合的電路組件260所使用。地址產(chǎn)生可以包含,舉例而 言,先進(jìn)先出(FIFO)、區(qū)塊讀取/寫入(包含計(jì)數(shù)及跨越(striding))及二維或三維地址產(chǎn)生。第二內(nèi)存組件255也能夠?yàn)橐粋€(gè)具有或不具有分頁或高速緩存結(jié) 構(gòu)的階層式內(nèi)存。用于輸入數(shù)據(jù)至第二內(nèi)存組件255的優(yōu)先次序典型地為該 訊息管理器電路265,以避免互連155上的數(shù)據(jù)備份;其后接著該內(nèi)存類型的 復(fù)合電路組件260M,再接著狀態(tài)機(jī)組件290。該內(nèi)存類型的復(fù)合電路組件 260M具有額外的特色,諸如為同步的,且進(jìn)一步允許多個(gè)程序/背景同時(shí)執(zhí) 行(只要無數(shù)據(jù)碰撞存在)。
在另一示范性的實(shí)施例中,該訊息管理器電路265也被組態(tài)設(shè)定或適配于 管理散布于整個(gè)裝置100的內(nèi)存類型的復(fù)合電路組件260M。舉例而言,該訊 息管理器電路265適配于提供一個(gè)一致的地址空間給散布的多個(gè)內(nèi)存復(fù)合電 路組件。透過訊息管理器電路265的此種用途,該散布的多個(gè)內(nèi)存類型的復(fù)合 電路組件260呈現(xiàn)給其它的復(fù)合電路組件260并且可被管理為一個(gè)大的內(nèi)存數(shù) 組。
每個(gè)可組態(tài)設(shè)定的計(jì)算的組件270都是由組合邏輯(即,構(gòu)成一個(gè)功能單 元的一個(gè)邏輯閘群組,舉例而言,加法器、乘法器、算術(shù)邏輯單元("ALU")、 等等)所構(gòu)成的,其具有適配于可改變的、或是能夠被修改的輸入、輸出、以 及其它內(nèi)部的聯(lián)機(jī)。更明確地說,每個(gè)可組態(tài)設(shè)定的計(jì)算的組件270被設(shè)計(jì)成 使得其邏輯閘或其它的功能單元可以透過交換電路、組件或是其它交換結(jié)構(gòu), 舉例而言,開關(guān)、多任務(wù)器、解多任務(wù)器、傳輸晶體管、縱橫式開關(guān)、指定路 由組件、或是其它的晶體管組態(tài)設(shè)定,以多個(gè)方式的任一個(gè)方式來加以耦接或 連接(或是解除耦接或斷開),以執(zhí)行對應(yīng)的多個(gè)功能。每個(gè)連接各種間(或功能 單元)的不同的方式是一種"組態(tài)設(shè)定",并且一個(gè)所選的組態(tài)設(shè)定可被表示為 多個(gè)位,該多個(gè)位控制對應(yīng)的開關(guān)、多任務(wù)器、解多任務(wù)器、傳輸晶體管、或 是其它的晶體管或交換配置,此產(chǎn)生該所選的組態(tài)設(shè)定的特定的連接。舉例而 言,加法器、乘法器以及緩存器可以用任意數(shù)目的各種方式加以耦接以執(zhí)行廣 泛種類的功能,從簡單的算術(shù)至離散余弦轉(zhuǎn)換。在其它情況中, 一個(gè)組態(tài)設(shè)定 也可以指出輸入資料是如何被解釋或利用,舉例而言,帶正負(fù)號的或是不帶正 負(fù)號的、常數(shù)或是變數(shù)、可消耗的或是非可消耗的、等等。其它的組態(tài)設(shè)定類 型以及組態(tài)設(shè)定的方式是電子技術(shù)中已知的、被視為等同的且在本發(fā)明的范疇內(nèi)。
用于一個(gè)可組態(tài)設(shè)定的計(jì)算的組件270的每個(gè)可利用的組態(tài)設(shè)定、或是所 選的組態(tài)設(shè)定都被本地儲存在該復(fù)合電路組件260的組件接口及控制280的一 個(gè)內(nèi)存之內(nèi)。如同在以下更加詳細(xì)論述的,每個(gè)這些組態(tài)設(shè)定結(jié)合其它信息(舉 例而言,所選的輸入、輸出目的地及控制信息)被定義為、或是包括一個(gè)對應(yīng) 的"背景"。舉例而言,組件的相同組態(tài)設(shè)定可具有多個(gè)背景,其中每個(gè)背景利 用不同的輸入并且提供輸出至不同的位置、或是利用不同的常數(shù)。此外,不同 的組態(tài)設(shè)定舉例而言也將會(huì)提供不同的背景,即使是不同的組態(tài)設(shè)定會(huì)利用相 同的輸入且提供輸出至相同的目的地也是如此。在討論本發(fā)明示范性的實(shí)施例 中所利用的內(nèi)部及外部的通訊及尋址之后,復(fù)合電路組件260的動(dòng)作及控制在 以下參考圖5至8與16更加詳細(xì)描述。
在示范性的實(shí)施例中,在一個(gè)叢集200內(nèi)的復(fù)合電路組件260之間的各種 聯(lián)機(jī)以及從一個(gè)叢集至另一叢集的指定路由或信道(經(jīng)由通訊組件250、 210或 190)在執(zhí)行時(shí)借助該裝置100的操作系統(tǒng)來加以建立,用于一個(gè)所選的程序、 算法或功能的實(shí)施。此外,此種聯(lián)機(jī)可以隨著時(shí)間過去而改變,并且根據(jù)所選 的實(shí)施例,其一般將會(huì)隨著時(shí)間過去而如可能是所需地改變,即如在以上參考 圖1簡短論述及如同在以下更加詳細(xì)論述的,用于新功能的產(chǎn)生、改變背景及 組態(tài)設(shè)定、改變功能、或是彈性的自我復(fù)原。在本發(fā)明的范疇內(nèi)的替代的實(shí)施 例中,舉例而言對于可能沒有彈性上的要求的應(yīng)用而言,該各種的聯(lián)機(jī)也可以 在執(zhí)行時(shí)之前被建立,并且被維持在該裝置IOO內(nèi)的一個(gè)內(nèi)存中,其具有后續(xù) 隨著可能是必要或是所期望地修改的可能性。
請參照圖2與3, 一個(gè)矩陣150邏輯上被劃分為或是包括多個(gè)超叢集185 以及一或多個(gè)第三通訊組件190。該第三通訊組件190是通訊電路(舉例而言, 路由器、路點(diǎn)、網(wǎng)關(guān)、開關(guān)、或是信道組件),其提供數(shù)據(jù)及控制進(jìn)出一個(gè)矩 陣150的封包的指定路由、交換、混合式指定路由及交換、或是信道,用于數(shù) 據(jù)、組態(tài)設(shè)定及控制信息的通訊,并且可被視為構(gòu)成互連155的部份。該第三 通訊組件190也可被視為路點(diǎn)或網(wǎng)關(guān),并且是根據(jù)本發(fā)明所利用的數(shù)個(gè)通訊結(jié) 構(gòu)中的一個(gè)結(jié)構(gòu)。在一個(gè)利用至少兩個(gè)或多個(gè)第三通訊組件190的第一所選的實(shí)施例中,每個(gè)第三通訊組件190耦接至一個(gè)所選的矩陣150的每個(gè)超叢集 185以及其它的第三通訊組件190(經(jīng)由總線結(jié)構(gòu)160),使得往返于每個(gè)超叢集 185的通訊可以透過任一第三通訊組件190而產(chǎn)生。于是,在第三通訊組件190 中的任一個(gè)的失效的事件中,另一第三通訊組件190是一個(gè)所選的矩陣150 的每個(gè)超叢集185可利用的,以提供相同的通訊功能。盡管被描繪為個(gè)別的第 三通訊組件190,但將會(huì)了解到的是,這些獨(dú)立的電路可被結(jié)合成為一或多個(gè) 提供相同的獨(dú)立通訊功能的較大的電路結(jié)構(gòu)。舉例而言,在一個(gè)所選的實(shí)施例 中, 一個(gè)單一第三通訊組件190被利用,其類似地連接至每個(gè)超叢集185以及 其它的第三通訊組件190,其中每個(gè)第三通訊組件190提供多個(gè)且獨(dú)立的通訊 路徑(舉例而言,4個(gè)向下的鏈路以及4個(gè)向上的鏈路),使得在一或多個(gè)鏈路 失效的事件中,額外的鏈路可利用的。同樣地,在此種失效的事件中,重要的 功能在優(yōu)雅降級且非災(zāi)難的失效之下被維持。
每個(gè)超叢集185進(jìn)一步邏輯上被劃分為多個(gè)叢集200、或是包括多個(gè)叢集 200以及一或多個(gè)第二通訊組件210。該第二通訊組件210也是提供數(shù)據(jù)及控 制的封包指定路由、通道、交換或是其它傳輸進(jìn)出一個(gè)超叢集185的通訊電路, 用于數(shù)據(jù)、組態(tài)設(shè)定以及控制信息的通訊,并且也可被-魄為構(gòu)成互連155的部 份。該第二通訊組件210也可被視為路點(diǎn)或網(wǎng)關(guān),并且是根據(jù)本發(fā)明所用的數(shù) 個(gè)通訊結(jié)構(gòu)中的一個(gè)通訊結(jié)構(gòu)。在一個(gè)利用至少兩個(gè)第二通訊組件210的第一 所選的實(shí)施例中,每個(gè)第二通訊組件210耦接至一個(gè)所選的超叢集185的每個(gè) 叢集200,使得往返于每個(gè)叢集200的通訊可以透過任一個(gè)第二通訊組件210 來產(chǎn)生。于是,在一個(gè)第二通訊組件210失效的事件中,另一個(gè)第二通訊組件 210是可供一個(gè)所選的超叢集185的每個(gè)叢集200利用的,以提供相同的通訊 功能。在一個(gè)所選的實(shí)施例中,這些獨(dú)立的電路可被結(jié)合成為一或多個(gè)提供相 同的獨(dú)立通訊功能的較大的電路結(jié)構(gòu)。此外,舉例而言一個(gè)單一組合的第二通 訊組件210被利用,其是類似地連接至每個(gè)叢集200以及一或多個(gè)第三通訊組 件190。在此實(shí)施例中,每個(gè)第二通訊組件210提供多個(gè)且獨(dú)立的通訊路徑(舉 例而言,4個(gè)向下的鏈路以及4個(gè)向上的鏈路),使得在一或多個(gè)鏈路失效的事 件中,額外的鏈路是可利用的。同樣地,在此種失效的事件中,重要的功能在優(yōu)雅降級且非災(zāi)難的失效之下被維持。
因此,從矩陣150層級移動(dòng)到超叢集185層級以及叢集200層級,該互連 155提供數(shù)據(jù)、組態(tài)設(shè)定以及控制信息的封包指定路由、自我指定路由、通道、 交換或是其它傳輸,此透過多個(gè)通訊組件190及210以及通訊信道(總線結(jié) 構(gòu))160、 195、 220。此外,如下所論述,在一個(gè)叢集200之內(nèi),該互連155也 透過第一通訊組件250來提供電路交換(或是電路為基礎(chǔ)的)通訊。確實(shí),本發(fā) 明的架構(gòu)中的一個(gè)新穎的特點(diǎn)是一個(gè)提供封包為主以及電路交換的通訊的互 連結(jié)構(gòu)155的使用。
請繼續(xù)參考圖2與3,該示范性的互連155包括(l)多個(gè)指定路由(通道、 路點(diǎn)或網(wǎng)關(guān))組件,即,多個(gè)第三通訊組件190、多個(gè)第二通訊組件210、以及 多個(gè)第一通訊組件250; (2)多個(gè)電路交換組件,即,該多個(gè)第一通訊組件250; 以及(3)其對應(yīng)的總線、導(dǎo)線或是其它形式的實(shí)體聯(lián)機(jī)或數(shù)據(jù)傳輸媒體(舉例而 言,被描繪為恭哉或?qū)Ь€160、 195及220,如上所論述,其是"n"位寬的)。在 一個(gè)矩陣150之內(nèi), 一或多個(gè)第三通訊組件190提供數(shù)據(jù)、組態(tài)設(shè)定以及控制 信息的封包指定路由、自我指定路由、通道、交換或是其它傳輸,往返于其它 矩陣150(經(jīng)由第一總線160及1/0 170、 180),并且經(jīng)由在每個(gè)此種超叢集185 之內(nèi)的一或多個(gè)第二通訊組件210而往返于多個(gè)超叢集185。于是,在此種超 叢集185之內(nèi)的一或多個(gè)第二通訊組件210提供數(shù)據(jù)、組態(tài)設(shè)定以及控制信息 的封包指定路由、自我指定路由、通道、交換或是其它傳輸,往返于該第三通 訊組件190,并且經(jīng)由在每個(gè)此種叢集200之內(nèi)的一或多個(gè)第一通訊組件250 而往返于在該超叢集185之內(nèi)的多個(gè)叢集200。
于是,在一個(gè)叢集200之內(nèi)的一或多個(gè)第一通訊組件250提供數(shù)據(jù)、組態(tài) 設(shè)定以及控制信息的封包指定路由、自我指定路由、通道、交換或是其它傳輸 往返于該叢集200,經(jīng)由該第二通訊組件210而舉例而言是往返于其它叢集 200,并且其提供用于在該叢集200之內(nèi)的數(shù)據(jù)及控制的電路交換的通訊,此 致能在其它叢集200以及在該叢集200之內(nèi)的復(fù)合電路組件260、狀態(tài)機(jī)組件 290、訊息管理器265、內(nèi)存組件255及/或其它構(gòu)件之間的通訊。舉例而言, 從在叢集200之內(nèi)的一個(gè)復(fù)合電路組件260產(chǎn)生的數(shù)據(jù)可以透過直接的聯(lián)機(jī)或是電路交換的聯(lián)機(jī)而輸出至該多個(gè)第一通訊組件250中的一個(gè),該第一通訊組 件250接著轉(zhuǎn)換該數(shù)據(jù)成為封包形式并且指定路由給該數(shù)據(jù)封包至該第二通 訊組件210,以用于發(fā)送至另一叢集200、另一超叢集185或是另一矩陣150。 類似地,當(dāng)一個(gè)可能是來自另一叢集200、另一超叢集185或是另一矩陣150 的數(shù)據(jù)封包經(jīng)由一個(gè)第二通訊組件210到達(dá)時(shí),該第一通訊組件250抽取出該 數(shù)據(jù)并且傳輸該一或多個(gè)數(shù)據(jù)字至在該叢集200內(nèi)的對應(yīng)的復(fù)合電路組件 260、狀態(tài)機(jī)組件290、內(nèi)存組件255或是其它構(gòu)件。
這些各種通訊組件(第三通訊組件190、第二通訊組件210、第一通訊組件
任何所選的容量,舉例而言是從全互連性至較為有限的互連性。舉例而言,并 非是設(shè)置在該示范性的實(shí)施例中的提供一個(gè)復(fù)合電路組件260的任何輸出以 同時(shí)耦接至一個(gè)復(fù)合電路組件260的任何輸入的全互連組件275或分布式全互 連組件295(其例外是相同的輸入或輸出有沖突或竟?fàn)帟r(shí)),取而代之的是在該 叢集200之內(nèi)可以設(shè)置較為有限的互聯(lián)機(jī)或是部分的互聯(lián)機(jī),舉例而言,此通 過利用一個(gè)部分的互連組件或是一個(gè)分布式部分的互連組件(未個(gè)別地繪出)。 此外,舉例而言在示范性的實(shí)施例中,除了一或多個(gè)往返于一個(gè)叢集200的復(fù) 合電路組件260及其它構(gòu)件的同時(shí)的聯(lián)機(jī)之外,該第一通訊組件250可以提供 2或多個(gè)同時(shí)的聯(lián)機(jī)或指定路由,舉例而言,兩個(gè)向上的鏈路至第二通訊組件 210以及來自第二通訊組件210的兩個(gè)向下的鏈路。在任何特定的實(shí)施例中也 可以設(shè)置更大的連接性,其取舍是可能與IC面積有所沖突。此外,在提供小 于全互連性的情形中,該各種通訊組件(第三通訊組件190、第二通訊組件210、 以及第一通訊組件250)也可以提供一項(xiàng)仲裁功能,該仲裁功能可以是才艮據(jù)優(yōu)先 級、循環(huán)、順序的、等等而定,其在任何特定的時(shí)間選擇一聯(lián)機(jī)或指定路由以 用于數(shù)據(jù)傳輸。
盡管被描繪為具有叢集200、超叢集185、矩陣150以及裝置100層級, 但將會(huì)被熟悉此項(xiàng)技術(shù)者理解的是,在任何所選的實(shí)施例中層級的數(shù)目可被延 伸或是減少。舉例而言,多個(gè)第四通訊組件(未繪出)以及其它互連155可被利 用來在該裝置IOO之內(nèi)產(chǎn)生階層的另一層級,依此類推,此在該裝置100的階層內(nèi)產(chǎn)生任何所選的層級數(shù)目。
圖4是描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的資料發(fā)送序列的圖。在該示
范性的實(shí)施例中,數(shù)據(jù)^/或控制封包通過該些各種的指定路由組件(第三通訊
組件190、第二通訊組件210以及第一通訊組件250)而被指定路由在互連155 之上作為數(shù)據(jù)字的一"長列(train)"或通道,藉此降低原本與個(gè)別被尋址的數(shù)據(jù) 字的指定路由相關(guān)連的尋址的負(fù)擔(dān)。更明確地說,請參考圖4, 一個(gè)數(shù)據(jù)發(fā)送 序列300由多個(gè)字(字段或數(shù)據(jù)結(jié)構(gòu))305與310所構(gòu)成,并且是"n"位寬的。每 個(gè)此種字305或310順序地一個(gè)接著另一個(gè)被傳送。第一字或字段305包括具 有一個(gè)數(shù)據(jù)開始指示符的地址標(biāo)題。該地址標(biāo)題可包括一個(gè)目的地地址、或是 可包括一個(gè)目的地地址以及一個(gè)來源地址(此可能需要超過一個(gè)字)。在該示范 性的實(shí)施例中,此種地址具有[矩陣號碼,超叢集號碼,叢集號碼]的格式,其 中被利用來指明地址的位數(shù)目是依據(jù)在該所選的實(shí)施例中所實(shí)施的矩陣150、 超叢集185以及叢集200的數(shù)目而定。
舉例而言,當(dāng)八個(gè)或是較少的矩陣150被實(shí)施,并且其中每個(gè)矩陣150 包含八個(gè)或是較少的超叢集185,并且其中每個(gè)超叢集185包含八個(gè)或是較少 的叢集200時(shí),9個(gè)位是足以提供尋址為[MMM, SSS, CCC]。在第一字或字 段305內(nèi)的數(shù)據(jù)開始指示符可包括一個(gè)具有一默認(rèn)值的第一旗標(biāo)(舉例而言, 旗標(biāo)被設(shè)定、或是其它的第一預(yù)設(shè)的或是預(yù)先指定的位是一所選的值),其指 出目前的字305是一個(gè)地址標(biāo)題,并且所有后續(xù)的封包是將被指定路由至相同 被尋址的目的地的數(shù)據(jù)字。因此,所有在該第一字段305之后的"m"個(gè)字或字 段310的數(shù)據(jù)被指定且傳送為數(shù)據(jù)字,即,數(shù)據(jù)字3100、3101、3102至310(m-l), 該些數(shù)據(jù)字自動(dòng)地被指定路由至相同被尋址的目的地,而每個(gè)數(shù)據(jù)字并不需要 任何個(gè)別或額外的標(biāo)題或地址。額外的旗標(biāo)或位也可被利用于其它目的,舉例 而言,指定后續(xù)的數(shù)據(jù)字是占位符號(placeholder)值以用于同步,特別是用于 分支動(dòng)作。被描繪為字或字段310(m-l)的最后一個(gè)數(shù)據(jù)字包括數(shù)據(jù)以及一個(gè)數(shù) 據(jù)結(jié)束指示符,以指出目前的資料字是被傳輸?shù)淖詈笠粋€(gè)數(shù)據(jù)字,并且可包括 一個(gè)具有一默認(rèn)值的第二旗標(biāo)(或是具有一所選的值的其它第二預(yù)先指定的 位)。此數(shù)據(jù)的信道在一個(gè)示范性的實(shí)施例中實(shí)施為封包指定路由以及電路交
換的組合或混合。更具體而言,各種的指定路由組件(第三通訊組件190以及 第二通訊組件210)提供在叢集200之間建立一或多個(gè)連接,其利用該第一字或 字段305的地址標(biāo)題,并且保留及建立一專用的路徑從一個(gè)來源叢集200至一 個(gè)目的地叢集200。該專用的路徑可通過在舉例而言是一個(gè)路點(diǎn)或網(wǎng)關(guān)內(nèi)的電 路交換的聯(lián)機(jī)或其它聯(lián)機(jī)而被形成。到達(dá)該通訊組件(第三通訊組件190、第二 通訊組件210)的剩余的數(shù)據(jù)字(數(shù)據(jù)字3100、 3101、 3102至310(m-l))可被緩 沖并且接著自動(dòng)地在該通訊組件之內(nèi)利用該地址標(biāo)題建立的交換的或是其它 專用的路徑上傳輸為一個(gè)封包。該專用的路徑被維持直到完整的封包已經(jīng)被傳 送為止,在此之后,各種的路徑組件被釋出來用于其它通訊。多個(gè)路徑可同時(shí) 被利用以支持一種廣播;漠式。此外,在該示范性的實(shí)施例中,多個(gè)此種資料發(fā) 送可以在相同的通訊組件之間同時(shí)發(fā)生,舉例而言,其借助利用先前針對于一
數(shù)據(jù)串流的同時(shí)發(fā)送。因此,在該示范性的實(shí)施例中,該多個(gè)通訊組件(包含 第一通訊組件250)支持任何所選的通訊;漠式,舉例而言, 一對一的輸入與輸出 數(shù)據(jù)鏈路、 一對多的(廣播)數(shù)據(jù)鏈路、以及多對一的數(shù)據(jù)鏈路。
相對地, 一個(gè)第一通訊組件250典型是經(jīng)由該全互連組件275順序地(每 一或多個(gè)頻率周期一個(gè)數(shù)據(jù)字)從叢集200的各種構(gòu)件接收數(shù)據(jù)字,提供一個(gè) 地址標(biāo)題,并且傳送該序列至一個(gè)第二通訊組件210以用于發(fā)送至另一叢集 200,其一般是傳送整個(gè)序列為一個(gè)封包叢發(fā)。對于來自其它叢集200的數(shù)據(jù), 該第 一通訊組件250接收及緩沖該多個(gè)數(shù)據(jù)字(3100 、 3101 、 3102至310(m-1)),
的構(gòu)件。在示范性的實(shí)施例中,該來源及/或目的地地址可以儲存在多個(gè)構(gòu)件 的任一個(gè)中,舉例而言,在各種的指定路由組件(第三通訊組件190、第二通訊 組件210、以及第一通訊組件250)的任一個(gè)之內(nèi),并且該等地址是在該結(jié)合過 程(以下論述)期間利用叢集間的通訊對于每個(gè)背景加以建立。
更具體而言,執(zhí)行該結(jié)合過程("結(jié)合器")的一或多個(gè)狀態(tài)機(jī)組件 ("SME")290(或是其它控制器175或是芯片外的控制器或處理器)指定動(dòng)作(即,功能或背景)給各種的復(fù)合電路組件260,并且在該復(fù)合電路組件260之間建立 一個(gè)"虛擬的"數(shù)據(jù)鏈路或指定路由,即,在一或多個(gè)復(fù)合電路組件260之間指 定一數(shù)據(jù)鏈路,而不須指明該數(shù)據(jù)鏈路實(shí)際上要如何產(chǎn)生。各種的通訊組件(第 一通訊組件250、第二通訊組件210、第三通訊組件190、全互連組件275及/
于決定實(shí)體指定路由給對應(yīng)的數(shù)據(jù)傳輸,此產(chǎn)生實(shí)體數(shù)據(jù)鏈路。舉例而言,經(jīng) 由交換及/或指定路由,在通訊組件之間或是在通訊組件之內(nèi)的一個(gè)第 一實(shí)體 數(shù)據(jù)路徑或鏈路可對于一個(gè)數(shù)據(jù)封包(舉例而言, 一連串的數(shù)據(jù)字)在兩個(gè)叢集 200之間的傳輸?shù)囊粋€(gè)實(shí)例而被建立(并且接著被釋放),其中一個(gè)不同的實(shí)體 數(shù)據(jù)路徑或鏈路對于一個(gè)數(shù)據(jù)封包在該兩個(gè)叢集200之間的傳輸?shù)囊粋€(gè)后續(xù) 的實(shí)例而被建立。舉例而言,此種實(shí)體數(shù)據(jù)鏈路可^皮儲存及維持在該通訊組件 內(nèi)的各種的內(nèi)存之中,舉例而言在對應(yīng)的組件接口及控制280(以下"i侖述)的內(nèi) 存之中被儲存為一個(gè)指定路由表,其中任何所選的實(shí)體數(shù)據(jù)鏈路由通訊復(fù)合電 路組件260的對應(yīng)的組件控制器325所決定。類似地,在時(shí)間或頻率周期上的 任何時(shí)點(diǎn),不同的實(shí)體數(shù)據(jù)鏈路可對于在該叢集200之內(nèi)的數(shù)據(jù)通訊而被建立 (及釋放)。在其它示范性的實(shí)施例中,其并非建立一個(gè)虛擬的數(shù)據(jù)鏈路,而是 該實(shí)體數(shù)據(jù)鏈路也可通過該結(jié)合器而被建立,作為該結(jié)合過程的部份。
圖5是描繪才艮據(jù)本發(fā)明的教示的一個(gè)第一示范性的叢集200的方塊圖。圖 6是描繪根據(jù)本發(fā)明的教示的一個(gè)第二示范性的叢集200A的方塊圖。在叢集 200中, 一個(gè)全互連組件275(作為單一或單式的電路構(gòu)件)被利用以在每個(gè)復(fù) 合電路組件260以及其它叢集構(gòu)件的輸入與輸出之間提供完全的互聯(lián)機(jī),即如 圖所繪。舉例而言,全互連組件275可被實(shí)施為一個(gè)縱橫式開關(guān)。在叢集200A 中, 一個(gè)分布式全互連組件295(作為分布式多個(gè)電路構(gòu)件)被利用以在每個(gè)復(fù) 合電路組件260以及其它叢集構(gòu)件的輸入與輸出之間提供完全的互聯(lián)機(jī),即如 圖所繪。舉例而言,分布式全互連組件295可被實(shí)施為多個(gè)多任務(wù)器及/或解 多任務(wù)器,舉例而言,在圖8中所繪的多任務(wù)器335以用于一個(gè)所選的復(fù)合電 路組件260。在所有的其它方面上,該叢集200、 200A是相同的。因此,任何 對于叢集200的參照都將會(huì)被理解為表示及包含被描繪為叢集200A的第二實(shí)施例(以及在圖7中被描繪為叢集200B的第三實(shí)施例),因?yàn)閰布?00的一或 多個(gè)變化以及叢集200A(及叢集200B)都將不會(huì)進(jìn)一步被論述為一個(gè)別的實(shí)施例。
如在圖5與6中所繪,該示范性的叢集200(200A)包括多個(gè)復(fù)合電路組件 260(或復(fù)合的組件260);多個(gè)通訊組件,即, 一或多個(gè)第一通訊組件250以及 一個(gè)全互連組件275或是一個(gè)分布式全互連組件295(也^f皮稱為一個(gè)全通訊組 件或是全互連總線("FIBus")); —個(gè)狀態(tài)機(jī)組件(SME)290; —個(gè)訊息管理器 265;以及各種的通訊結(jié)構(gòu),舉例而言,總線或其它類型的通訊媒體。應(yīng)注意 到的是,并非在每個(gè)叢集200中都需要一個(gè)狀態(tài)機(jī)組件290以及訊息管理器 265;在各種的實(shí)施例中,依據(jù)要執(zhí)行的應(yīng)用,所選的叢集200可包括主導(dǎo)的 復(fù)合電路組件260(舉例而言,具有數(shù)字信號處理("DSP")功能),而其中狀態(tài)機(jī) A/或訊息管理功能是由其它叢集200的狀態(tài)機(jī)組件290及訊息管理器265來 提供(利用經(jīng)由該第 一通訊組件250的對應(yīng)的通訊)。在其它示范性的實(shí)施例中, 在叢集200之內(nèi)并不包含或是除了包含一或多個(gè)狀態(tài)機(jī)組件290之外,對應(yīng)的 功能可透過一或多個(gè)外部的控制器175或是其它芯片外的控制器、狀態(tài)機(jī)或處 理器的使用而被實(shí)施。在所選的實(shí)施例中,舉例而言,該全互連組件275可被 實(shí)施為一個(gè)縱橫式開關(guān)或是傳輸晶體管(其具有或是不具有仲裁功能),而該分 布式全互連組件295可被實(shí)施為多個(gè)開關(guān)、傳輸晶體管、多任務(wù)器及/或解多 任務(wù)器。
此外,在所選的實(shí)施例中,作為各種選項(xiàng)或變化的是, 一個(gè)示范性的叢集 200也可包含額外的內(nèi)存,舉例而言,第二內(nèi)存組件255,其可以是一種類型 的隊(duì)列,舉例而言, 一個(gè)長的隊(duì)列;也可包含一個(gè)叢集間的隊(duì)列245,舉例而 言, 一個(gè)FIFO、緩沖器或是其它內(nèi)存結(jié)構(gòu),以用于在相鄰的叢集200之間數(shù) 據(jù)、控制及/或組態(tài)設(shè)定信息的傳輸,而未利用到各種的第一通訊組件250及 第二通訊組件210(此產(chǎn)生在圖2中所繪的"快速的路徑"聯(lián)機(jī)215);并且也可包 含一個(gè)別的或是額外的通訊結(jié)構(gòu)用于在該叢集200之內(nèi)的SME 290及其它構(gòu) 件之間的通訊,其被描繪為組態(tài)設(shè)定/控制總線285。
未個(gè)別地描繪在圖5與6中的是,每個(gè)組件接口及控制280也包含一個(gè)內(nèi)存、多個(gè)輸入隊(duì)列、以及一個(gè)組件控制器(由多個(gè)條件邏輯結(jié)構(gòu)(閘)所構(gòu)成),
其參考圖8更加詳細(xì)地論述。此外,第一通訊組件250也可包含一個(gè)內(nèi)存結(jié)構(gòu), 以傳輸進(jìn)入的數(shù)據(jù)至一個(gè)所選的復(fù)合電路組件260,并且尋址及指定路由給來 自一個(gè)所選的復(fù)合電路組件260的向外的數(shù)據(jù)。盡管圖5與6描繪一個(gè)叢集 200(200A)包括六個(gè)復(fù)合電3各組件260、兩個(gè)第一通訊組件250、 一個(gè)狀態(tài)機(jī)組 件("SME")290、 一個(gè)訊息管理器265、以及一個(gè)全互連組件275或分布式全互 連組件295,以及可能的舉例而言是第二內(nèi)存組件255的額外的內(nèi)存以及舉例 而言是一或多個(gè)叢集間的隊(duì)列245的各種的通訊結(jié)構(gòu),但是將會(huì)被熟悉電子技 術(shù)者理解的是,這些構(gòu)件的任何數(shù)量及組合都可被利用,并且此種數(shù)量及組合 的任一個(gè)及全部都被;f見為等同的且在本發(fā)明的范疇內(nèi)。
每個(gè)復(fù)合電路組件260由一個(gè)計(jì)算的電路組件270以及一個(gè)一致的(固定 的)組件接口及控制280所構(gòu)成。盡管一般被稱為一個(gè)"計(jì)算的,,電路組件270, 但將了解到的是, 一個(gè)電路組件270可以執(zhí)行除了計(jì)算之外的功能,舉例而言, 位重新排列、內(nèi)存功能、控制功能、狀態(tài)機(jī)功能、通訊功能、指令處理,并且 所有此種非計(jì)算的功能或其它功能都被視為在本發(fā)明的電路組件270的范疇 之內(nèi),而不i侖命名為4可。
在一個(gè)叢集200之內(nèi),該復(fù)合電路組件260具有(計(jì)算的)組件270,其可 以具有相同或不同的類型,并且可用任何所選的組合或混合來內(nèi)含在該叢集 200之內(nèi),并且可以是靜態(tài)(非可組態(tài)設(shè)定的)或是可組態(tài)設(shè)定的。如在圖5中 所繪,該組件270是一個(gè)可組態(tài)設(shè)定的組件(類型"A")270A、兩個(gè)可組態(tài)i殳定 的組件(類型"B")270B、 一個(gè)可組態(tài)設(shè)定的組件(類型"D")270D、 一個(gè)可組態(tài)設(shè) 定的組件(類型"E")270E、以及一個(gè)可組態(tài)設(shè)定的或是非可組態(tài)設(shè)定的第一內(nèi) 存電路組件270M。 一個(gè)通訊電路組件270C被利用在該第一通訊組件250中, 其典型是非可組態(tài)設(shè)定的,但是其可能被實(shí)施為可組態(tài)設(shè)定的。此外,任何所 選的組件270也可被實(shí)施為非可組態(tài)設(shè)定的,并且所有的此種變化都是在本發(fā) 明的范疇內(nèi)。該可組態(tài)設(shè)定的計(jì)算的組件270 —般執(zhí)行計(jì)算及/或位處理,并 且舉例而言可以是可組態(tài)設(shè)定的算術(shù)邏輯單元(ALU)、可組態(tài)設(shè)定的三重的 ALU、可組態(tài)設(shè)定的乘與累加(MAC)單元、可組態(tài)設(shè)定的位重新排列組件(BREO)、可組態(tài)設(shè)定的乘法器、可組態(tài)設(shè)定的Galois乘法器、可組態(tài)設(shè)定的 桶形移位器、可組態(tài)設(shè)定的查找表、可組態(tài)設(shè)定且可程序化的控制器、超級或 大的ALU(其能夠進(jìn)行廣泛種類的算術(shù)計(jì)算、功能、比較以及處理)、等等。該 可組態(tài)設(shè)定的計(jì)算的組件270 —般由組合邏輯閘所構(gòu)成,但是也可隨必要或是 所期望地包含條件邏輯結(jié)構(gòu),舉例而言,評估一個(gè)條件或事件的存在。示范性 的可組態(tài)設(shè)定的組件270被描繪在圖9與10中。
如上所述,組件270也可被實(shí)施以提供通訊功能,可以是可組態(tài)設(shè)定的或 是非可組態(tài)設(shè)定的,并且可提供用于內(nèi)部的通訊、外部的通訊、以及內(nèi)存存取 的接口。在一個(gè)示范性的實(shí)施例中,此種外部的通訊功能透過該訊息管理器 265來提供,該訊息管理器265提供多個(gè)通訊功能中之一所選的通訊功能,該 多個(gè)通訊功能在各種的叢集之間典型是有所不同的。舉例而言,該多個(gè)通訊功 能可包含提供以太網(wǎng)絡(luò)接口、 PCI接口、 PCI Express接口、 USB或USB2接 口、 DDR SDRAM接口或是其它類型的內(nèi)存接口、無線接口、至另一IC的接 口、等等。典型地, 一個(gè)特定的叢集200的訊息管理器265提供一種類型的通 訊功能,而其它叢集200的訊息管理器265則對應(yīng)地提供其它類型的通訊功能。 舉例而言, 一個(gè)第一叢集200的訊息管理器265可提供一個(gè)PCI Express接口 , 而一個(gè)第二叢集200的訊息管理器265可提供一個(gè)DDR-2接口 , 一個(gè)第三叢 集200的訊息管理器265可提供一個(gè)以太網(wǎng)絡(luò)接口 。
此外,該訊息管理器265也可具有一個(gè)直接聯(lián)機(jī)至該互連155,或是更具 體而言,直接聯(lián)機(jī)至該第二通訊信道或總線220,用于獨(dú)立于各種第一通訊組 件250之外的叢集間通訊,舉例而言,用于在該狀態(tài)機(jī)組件290以及其它構(gòu)件 之間的組態(tài)設(shè)定及/或控制信息的通訊。舉例而言,在執(zhí)行時(shí)的結(jié)合期間,各 種的組態(tài)設(shè)定及數(shù)據(jù)指定路由可經(jīng)由該訊息管理器265而被傳送至該狀態(tài)機(jī) 組件290作為訊息。因此,該訊息管理器265被描繪為直接耦接至該狀態(tài)機(jī)組 件290、或是作為該狀態(tài)機(jī)組件290的部份(舉例而言,沒有中介或個(gè)別的總線 或通訊結(jié)構(gòu))。
該第一內(nèi)存電路組件270M、第二內(nèi)存組件255 A/或在該組件接口及控制 280之內(nèi)的內(nèi)存可以是任何形式的內(nèi)存、機(jī)器可讀取的儲存或內(nèi)存媒體、不論是揮發(fā)性或非揮發(fā)性,其在無限制之下包含RAM、快閃、DRAM、 SDRAM、 SRAM、 MRAM、 FeRAM、 ROM、 EPROM或E2PROM、或是《壬^T已知的或 變成已知的其它類型的內(nèi)存、儲存i某體、或是數(shù)據(jù)儲存裝置或電路、或是其組 合。在一個(gè)第一示范性的實(shí)施例中,該第 一內(nèi)存組件270M以及在該組件接口 及控制280之內(nèi)的內(nèi)存被做成為內(nèi)容可尋址的內(nèi)存("CAM")。在一個(gè)第二示范 性的實(shí)施例中,該第一內(nèi)存組件270M以及在該組件4妄口及控制280之內(nèi)的內(nèi) 存4皮估文成為SDRAM。
該第一通訊組件250類似于該復(fù)合電^各組件260,其包含一個(gè)組件接口及 控制280以及一個(gè)電3各組件270(在此例中是通訊組件270C),該電i 各組件270
設(shè)定可發(fā)生來決定在該通訊組件270C之內(nèi)的交換或指定路由的路徑。該通訊 組件270C提供往返于該互連155的封包交換的數(shù)據(jù)發(fā)送及接收、以及在該叢 集200之內(nèi)的電路交換的通訊。
類似地,該狀態(tài)機(jī)組件290也包括一個(gè)組件接口及控制280,其"計(jì)算的" 組件(270)是狀態(tài)機(jī)組件最特定的實(shí)例,根據(jù)所選的實(shí)施例也可以是可組態(tài)設(shè) 定的或非可組態(tài)設(shè)定的。用于一個(gè)狀態(tài)機(jī)實(shí)施例的各種內(nèi)存330以及輸入與輸 出隊(duì)列320、 315或者是可以被設(shè)置為內(nèi)部的緩存器。如下所論述,利用該組 件接口及控制280也提供該狀態(tài)機(jī)組件290具有多個(gè)背景,舉例而言用于多執(zhí) 行緒。此外,該狀態(tài)機(jī)組件290被描繪為具有直接的存取至該復(fù)合電路組件 260的組件接口及控制280(經(jīng)由組態(tài)設(shè)定/控制總線285)以便于直接植入組態(tài) 設(shè)定、控制以及接收中斷,并且具有直接連接至該第一內(nèi)存組件270M(及/或 第二內(nèi)存組件255)(舉例而言,透過一個(gè)雙埠RAM的一個(gè)端口),以促進(jìn)對于 指令/碼處理的對應(yīng)的內(nèi)存存取以及其它數(shù)據(jù)存取。如上所述,該狀態(tài)機(jī)組件 290結(jié)合任何可利用的內(nèi)存(舉例而言,復(fù)合的內(nèi)存組件260M或第二內(nèi)存組件 255)構(gòu)成在本發(fā)明的范疇內(nèi)的一個(gè)"控制器",舉例而言,叢集控制器、超叢集 控制器、矩陣控制器、等等。此種控制器也可包含該訊息管理器265或類似的 功能。
通過利用相同的(或類似的)組件接口及控制280,該第一通訊組件250以及狀態(tài)機(jī)組件290對于該叢集200內(nèi)的復(fù)合電路組件260而言看似另 一復(fù)合電 路組件260,其具有以下論述的對應(yīng)優(yōu)點(diǎn)。舉例而言,該另一復(fù)合電路組件260 于是不需要知道其輸出被提供至一個(gè)第一通訊組件250或是一個(gè)狀態(tài)機(jī)組件 290、或是輸入接收自一個(gè)第一通訊組件250或是一個(gè)狀態(tài)機(jī)組件290,并且 不需要兼容任何不同類型的數(shù)據(jù)接收或發(fā)送。
在示范性的實(shí)施例中,該復(fù)合電路組件260可包含通過復(fù)合電路組件260 的類型或種類(即,在該復(fù)合電路組件260內(nèi)的電路組件270的類型)的某種形 式的識別,以助于借助狀態(tài)機(jī)組件("SME")290(或控制器175)的識別。此種識 別可用廣泛種類的形式而被保存在該叢集200內(nèi)的一個(gè)可利用的內(nèi)存中,舉例 而言,在制造期間被硬件聯(lián)機(jī)為在復(fù)合電路組件260內(nèi)的ROM、在開機(jī)過程 期間被加載一個(gè)內(nèi)存、等等。舉例而言,此種類型識別可被維持在內(nèi)存復(fù)合的 組件260、第二內(nèi)存255中、或是在該組件接口及控制280以下論述的內(nèi)存330 之內(nèi)。
該組件接口及控制280提供(l)一個(gè)一致的接口,用于輸入至且輸出自每 個(gè)可組態(tài)設(shè)定的電路組件270、內(nèi)存組件、通訊組件或狀態(tài)機(jī)組件;以及(2) 一個(gè)一致的控制結(jié)構(gòu),并且其在以下參考圖8與16更加詳細(xì)描述。因?yàn)槊總€(gè) 組件接口及控制280都具有相同的結(jié)構(gòu)用于在每個(gè)叢集200內(nèi)的每個(gè)復(fù)合電路 組件260、第一通訊組件250以及狀態(tài)機(jī)組件290,所以每個(gè)此種組件260、 250、 290都可以用一種一致的可重復(fù)的方式加以控制,而無關(guān)組件的類型, 舉例而言,不"i侖該組件(270)是一個(gè)可組態(tài)設(shè)定的ALU、 一個(gè)可組態(tài)設(shè)定的桶 形移位器、 一個(gè)通訊組件、或是一個(gè)狀態(tài)機(jī)組件。此外,每個(gè)此種復(fù)合電路組 件260、第一通訊組件250以及狀態(tài)機(jī)組件290都可以用一種一致的可重復(fù)的 方式來和任何其它復(fù)合電路組件260、第一通訊組件250以及狀態(tài)機(jī)組件290 通訊,而無關(guān)組件的類型(舉例而言, 一個(gè)可組態(tài)設(shè)定的電路組件270)。更具 體而言,每個(gè)復(fù)合電路組件260、第一通訊組件250以及狀態(tài)才幾組件290都可 以用一種一致的方式,透過以上論述的尋址方式而被尋址。
此種一致性的第一個(gè)結(jié)果是,復(fù)合電路組件260、第一通訊組件250以及 狀態(tài)機(jī)組件290都不需要知道有關(guān)其所接收輸入的或是提供輸出的任何其它復(fù)合電路組件260、第一通訊組件250以及狀態(tài)才幾組件290的任何事,即,每 個(gè)復(fù)合電路組件260以及第一通訊組件250大致上可以忽略有關(guān)其周遭及功 能。(依據(jù)實(shí)施方式,狀態(tài)機(jī)組件290可具有額外的功能用于監(jiān)視、測試及控 制其它組件,使得其可知道有關(guān)其周遭及功能)。此種一致性的第二個(gè)結(jié)果是, 每個(gè)復(fù)合電路組件260、第一通訊組件250以及狀態(tài)才幾組件290都可用 一種一 致的方式被組態(tài)設(shè)定、被尋址及查詢,同樣無關(guān)于組件的類型(舉例而言,電 路組件270的類型)。
第三且非常重要的結(jié)果是,每個(gè)具有一所選的類型的電路組件270的復(fù)合 電路組件260是實(shí)際上完全地可和任何其它具有相同所選的類型的電路組件 270的復(fù)合電路組件260互換的,但是對于一特定的計(jì)算或算法的執(zhí)行有任何 局部性(距離)限制的范圍除外。因此,受到此種限制之下,對于一個(gè)特定算法 的執(zhí)行而言,通過具有一所選的類型的電路組件270的任何所選的復(fù)合電路組 件260所執(zhí)行的運(yùn)算可以自由地被指定或是傳輸至另一具有相同所選的類型 的電路組件270的復(fù)合電路組件260,而無任何不利的影響。在一個(gè)具有一所 選的類型的電路組件270的特定的復(fù)合電路組件260中有失效或缺陷的事件 中,其運(yùn)算可被轉(zhuǎn)移至(l)另一具有相同所選的類型的電路組件270的可利 用的復(fù)合電路組件260; (2)全體能夠執(zhí)行相同的運(yùn)算的一個(gè)群組的可利用的復(fù) 合電路組件260;或是(3)—個(gè)原本已經(jīng)執(zhí)行另一運(yùn)算或一個(gè)較低優(yōu)先級運(yùn)算而 無法利用的具有相同所選的類型的電路組件270的復(fù)合電路組件260(或是群 組的復(fù)合電路組件260)。舉例而言,在一個(gè)具有三重的ALU可組態(tài)設(shè)定的組 件270的復(fù)合電路組件260失效的事件中,其運(yùn)算可被轉(zhuǎn)移至三個(gè)復(fù)合電路組 件260,而每個(gè)復(fù)合電路組件260具有單一 ALU可組態(tài)設(shè)定的組件270,于是 該等復(fù)合電路組件260可被組態(tài)設(shè)定以執(zhí)行該三重的ALU的運(yùn)算。類似地, 由 一個(gè)第 一通訊組件250或一個(gè)狀態(tài)機(jī)組件290所執(zhí)行的功能也可隨需要而被 轉(zhuǎn)移至其它可利用的第一通訊組件250以及狀態(tài)機(jī)組件290。
分別可被實(shí)施為一個(gè)全縱橫式開關(guān)或是為開關(guān)、多任務(wù)器、解多任務(wù)器或 是其它晶體管配置的另一種配置的全互連組件275及/或分布式全互連組件 295提供給任何復(fù)合電路組件260、第一通訊組件250以及狀態(tài)機(jī)組件290的任何輸出,以被耦接至任何(其它)復(fù)合電路組件260、第一通訊組件250以及 狀態(tài)機(jī)組件290的任何輸入,及/或耦接至在其叢集200之內(nèi)的任何其它構(gòu)件 或是經(jīng)由叢集間的隊(duì)列245耦接至一個(gè)相鄰的叢集200的全互連組件275及/ 或分布式全互連組件295(用于輸入至該相鄰的叢集200的任何復(fù)合電路組件 260、第一通訊組件250以及狀態(tài)機(jī)組件290或是其它構(gòu)件)。(在所選的實(shí)施 例中,在相同的復(fù)合電路組件內(nèi)的輸出到輸入的回授可以在復(fù)合電路組件260 內(nèi)部達(dá)成,舉例而言,其透過一個(gè)未個(gè)別地繪出的多任務(wù)器或其它交換組態(tài)設(shè) 定。)在一個(gè)示范性的實(shí)施例中,對于每個(gè)復(fù)合電路組件260而言, 一個(gè)復(fù)合 電路組件260、第一通訊組件250以及狀態(tài)機(jī)組件2卯的任何輸出可以平行且 同時(shí)透過全互連組件275 A/或分布式全互連組件295,而被提供作為一個(gè)輸入 至任何其它復(fù)合電路組件260、第 一通訊組件250以及狀態(tài)才幾組件2卯,此容 許在所有的復(fù)合電路組件260、第一通訊組件250以及狀態(tài)機(jī)組件290之間有 完全且同時(shí)的通訊(其例外是需要仲裁或其它解決方式的可能沖突情形)。
根據(jù)所選的實(shí)施例,來自 一個(gè)復(fù)合電路組件260的輸出可以用多種方式被 交換,所有的方式都在本發(fā)明的范疇內(nèi)。舉例而言, 一個(gè)選配的輸出交換組件 380(描繪在圖8中)可對于每個(gè)復(fù)合電路組件260都被設(shè)置,其可以交換該些 輸出以用于該復(fù)合電路組件260的內(nèi)部的回授、交換該些輸出至全互連組件 275或分布式全互連組件295、直接交換該些輸出至一個(gè)第一通訊組件250、 或是直接交換該些輸出至狀態(tài)機(jī)組件290。在以下參考圖8所論述的所選的實(shí) 施例中,內(nèi)部的回授可以從一個(gè)計(jì)算的組件270之內(nèi)的任何階段加以提供,并 且該計(jì)算的組件270的輸出被提供至一個(gè)輸出內(nèi)存(或是輸出隊(duì)列或緩存 器)315并且接著直接提供至全互連組件275,用于交換至其它復(fù)合電路組件 260、狀態(tài)機(jī)組件290、或是第一通訊組件250。類似地, 一個(gè)復(fù)合電路組件 260的輸入可以用多種方式加以提供,舉例而言,來自全互連組件275或分布 式全互連組件295、或是直接來自全互連組件275以及其它來源,舉例而言, 來自第二內(nèi)存組件255、狀態(tài)機(jī)組件290、及/或第一通訊組件250。
此通訊功能可根據(jù)數(shù)據(jù)來源及/或數(shù)據(jù)目的地的任一者或兩者而被實(shí)施。 對于以目的地為基礎(chǔ)的通訊,每個(gè)背景的目的地地址典型是儲存在一個(gè)輸出隊(duì)列315(圖8)的一個(gè)指定路由表中。對于對應(yīng)的地址的輸出接著被提供,其中
定。對于此實(shí)施例而言,當(dāng)來自一個(gè)復(fù)合電路組件260的一個(gè)輸出將被施加作 為輸入至超過一個(gè)復(fù)合電路組件260時(shí),這些額外的輸入可以順序地被提供。 在其它示范性的實(shí)施例中,額外的輸出扇形散開可被提供,使得一個(gè)復(fù)合電路 組件260的一個(gè)輸出可以同時(shí)輸入到多個(gè)其它復(fù)合電路組件260,其同樣是經(jīng) 由全互連組件275、分布式全互連組件295或其它通訊結(jié)構(gòu)。交握協(xié)議也可被 利用,其中該目的地在數(shù)據(jù)的收到的際傳送或不傳送一個(gè)回應(yīng)。
對于以來源為基礎(chǔ)的通訊而言,在一個(gè)示范性的實(shí)施例中所實(shí)施的是,每 個(gè)背景的來源地址典型是儲存在輸入隊(duì)列320中。每個(gè)來源在全互連組件275 或分布式全互連組件295之一所選的總線或是多個(gè)通訊在線提供其輸出。對于 進(jìn)入的數(shù)據(jù)而言,對應(yīng)的輸入隊(duì)列320判斷該數(shù)據(jù)是否來自其一或多個(gè)背景所 指定的一個(gè)來源,并且若是的話,當(dāng)內(nèi)存空間是可利用的時(shí)候,該輸入隊(duì)列 320接收該對應(yīng)的數(shù)據(jù)。此種以來源為基礎(chǔ)的通訊提供群體廣播或廣播的便利 性,因?yàn)槿我磺胰康哪康牡囟急恢履軄硗瑫r(shí)接收在所選的數(shù)據(jù)在線傳送的任 何所關(guān)注的數(shù)據(jù)。交握協(xié)議也可被利用,其中該目的地在其無法接收該所傳送 的數(shù)據(jù)時(shí)傳送或是不傳送一項(xiàng)拒絕或其它不可利用的訊息(藉此提供給該來源 以在其它時(shí)間重新傳送該數(shù)據(jù))。
在另一示范性的實(shí)施例中,沒有交握或其它類型的通訊響應(yīng)被利用。實(shí)體 數(shù)據(jù)鏈路可在執(zhí)行時(shí)被建立,做為該結(jié)合過程的部份,其中所有對應(yīng)的計(jì)算過 程都被允許執(zhí)行,而不需要判斷輸入數(shù)據(jù)的可利用性或是用于輸出數(shù)據(jù)的空間 可利用性。此種實(shí)施方式對于管線化作業(yè)是有用的,舉例而言,用于各種算法 的內(nèi)部核心。此外,當(dāng)一項(xiàng)數(shù)據(jù)處理可能正在等待進(jìn)入的數(shù)據(jù)因而影響到其它 處理的數(shù)據(jù)處理量時(shí),此種實(shí)施方式是有用于避免數(shù)據(jù)停頓或是數(shù)據(jù)回返的壓 力。此外,這些實(shí)施方式的組合也可被利用,舉例而言,各種利用數(shù)據(jù)流為主 的作業(yè)的構(gòu)件以及其它非利用數(shù)據(jù)流為主的作業(yè)的構(gòu)件。舉例而言,數(shù)據(jù)流為 主的作業(yè)可以和其它作業(yè)(舉例而言是通訊作業(yè)的動(dòng)作):故利用于一個(gè)叢集200
之內(nèi)的作業(yè),其被容許只是執(zhí)行(舉例而言,指定路由及交換)而已。請繼續(xù)參考圖5與6,該全互連組件275以及分布式全互連組件295為了 說明的方便及清楚起見而大致上被描繪,以大致表示在一個(gè)叢集200之內(nèi)的通 訊類型,舉例而言用以提供任何復(fù)合電路組件260的輸入與輸出以耦接至其 它復(fù)合電路組件260、狀態(tài)機(jī)組件290、訊息管理器265、或是第一通訊組件 250或叢集間的隊(duì)列245的任一者(或是兩者),以用于往或返其它叢集200得 數(shù)據(jù)傳輸;在狀態(tài)機(jī)組件(SME)290以及任何的復(fù)合電路組件260(包含內(nèi)存組 件及通訊組件)之間的通訊;在SME 290以及第一通訊組件250的任一或是兩 者之間的通訊,用于控制信息、查詢、查詢的響應(yīng)、等等的傳輸;在訊息管理 器265以及互連155之間的通訊;以及在第一通訊組件250以及在叢集200 之內(nèi)的各種內(nèi)存(舉例而言,在叢集200的各種構(gòu)件之內(nèi)的第二內(nèi)存組件255 及其它內(nèi)存)之間的通訊;以及在一個(gè)叢集200之內(nèi)的構(gòu)件組合之間的任何其 它通訊。將會(huì)被熟悉此項(xiàng)技術(shù)者理解的是,廣泛種類的通訊結(jié)構(gòu)及通訊媒體是 可利用的,并且所有此種變化都被視為等同的且在本發(fā)明的范疇內(nèi)。
該狀態(tài)機(jī)組件(SME)290作用為 一個(gè)(相當(dāng)小的)微處理器(或微控制器),舉 例而言, 一個(gè)RISC處理器,用于指令的執(zhí)行、條件及事件的判斷、操作系統(tǒng) 的管理以及復(fù)合電路組件260的控制。該SME 290可被利用至實(shí)施傳統(tǒng)的C 程序及實(shí)施復(fù)合電路組件260原本無狀態(tài)的數(shù)據(jù)流作業(yè)的狀態(tài)。該狀態(tài)機(jī)組件 290適配于作用為一個(gè)順序的處理器,以及其運(yùn)算是由在相同的叢集200之內(nèi) 的復(fù)合電i^各組件260所增補(bǔ)。該SME 290也可具有內(nèi)部的內(nèi)存,可以利用該 第二內(nèi)存組件255、 一個(gè)內(nèi)存復(fù)合電路組件260M、或是在一個(gè)復(fù)合電路組件 260之內(nèi)的內(nèi)存330,用于數(shù)據(jù)及指令(或運(yùn)算)的儲存。舉例而言,該第二內(nèi) 存組件255可被實(shí)施為多個(gè)"長的"隊(duì)列,其具有足夠的深度以儲存可被狀態(tài)機(jī) 組件290利用的指令。該SME 290可利用該復(fù)合電路組件260的任一個(gè)來執(zhí) 行在其程序的執(zhí)行(舉例而言,相加或比較兩個(gè)數(shù)目)中將會(huì)需要的計(jì)算或其它 功能。該狀態(tài)機(jī)組件2卯執(zhí)行計(jì)算的控制功能,舉例而言,在程序語言中利用 舉例而言是IF、 CASE、 WHILE、 FOR、等等的陳述表示的條件的判斷。該 SME290也可具有控制緩存器或其它類型的內(nèi)部的內(nèi)存,舉例而言,用以定義 及追蹤其控制功能。如先前所述,并非每個(gè)叢集200都需要有一個(gè)狀態(tài)機(jī)組件2卯。
此外,除了直接存取到復(fù)合電路組件260的組件接口及控制280(經(jīng)由組態(tài) 設(shè)定/控制總線285)之外,該狀態(tài)機(jī)組件290被描繪為具有直接的聯(lián)機(jī)至第一 內(nèi)存組件270M(及/或第二內(nèi)存組件255),以助于指令/碼處理的對應(yīng)的內(nèi)存存 取以及其它的數(shù)據(jù)存取。取代使用組態(tài)設(shè)定/控制總線285的是,舉例而言, 此種通訊可經(jīng)由全互連組件275或分布式全互連組件295而祐j是供。
該狀態(tài)機(jī)組件290被利用來實(shí)施一硬件操作系統(tǒng),并且在一個(gè)監(jiān)督模式 中,其存取到在其叢集200之內(nèi)的所有資源,因而能夠程序化、控制以及監(jiān)視 在該叢集200之內(nèi)的所有復(fù)合電路組件260。對于其中一或多個(gè)叢集200并沒 有一個(gè)狀態(tài)機(jī)組件2卯內(nèi)含在叢集200之內(nèi)的實(shí)施方式而言,其它叢集200 的一或多個(gè)其它狀態(tài)機(jī)組件290將會(huì)執(zhí)行這些功能及運(yùn)算。除了工作控制之 夕卜,該狀態(tài)機(jī)組件290被利用在叢集資源的自我測試、加載或指定工作(動(dòng)作(或 指令))、結(jié)合動(dòng)作(或指令)(舉例而言,執(zhí)行時(shí)的結(jié)合)至復(fù)合電路組件260、以 及產(chǎn)生在各種的復(fù)合電路組件260以及叢集200之間的聯(lián)機(jī)中。該指定及結(jié)合 過程參考圖14而更加詳細(xì)地加以論述。在叢集200之內(nèi)的SME 290全體是作 用為一個(gè)高度分布式控制器,其是在有或沒有其它控制器175下執(zhí)行該裝置 100的操作系統(tǒng)(結(jié)合任何所需的復(fù)合電路組件260)。在示范性的實(shí)施例中, 各種的SME 290可以取代額外的功能,舉例而言,執(zhí)行一個(gè)系統(tǒng)開機(jī)過程、 運(yùn)作為一個(gè)主控制器、以及判斷及對映功能及非功能的復(fù)合電路組件260及其 它構(gòu)件。該SME290的動(dòng)作也在以下參考圖8-14更加詳細(xì)地加以解釋。
舉例而言,該SME 290可以開始在該叢集200之內(nèi)的復(fù)合電路組件260 的一項(xiàng)被結(jié)合的(bound)工作、中止(suspend)—項(xiàng)工作、中止一個(gè)復(fù)合電路組件 260的一個(gè)作用或功能(作為一個(gè)整體工作的部分)、停止(halt)—項(xiàng)工作并且釋 出其資源(舉例而言,用以加載及執(zhí)行一項(xiàng)較高優(yōu)先級的工作)、設(shè)定一項(xiàng)工作 以在 一種單 一 步驟的模式中執(zhí)行、以及將一項(xiàng)工作移至另 一位置(舉例而言, 用以執(zhí)行目前執(zhí)行該工作的復(fù)合電路組件260的自我測試)。
在該第一叢集200以及第二叢集200A的實(shí)施例中,該訊息管理器265被 利用于該裝置100外部的通訊,舉例而言,用于以太網(wǎng)絡(luò)接口、內(nèi)存接口(舉例而言,DDR-2 SDRAM)、 PCI-Express界面、等等。該訊息管理器265直接被耦接至該SME 290,并且更一^:來說,其也可耦接至該全互連組件275或分布式全互連組件295、第一通訊組件250、及/或復(fù)合電路組件260(未個(gè)別地繪出)。舉例而言,由全互連組件275所提供的數(shù)據(jù)字可由該訊息管理器265而被輸出,用于儲存在一個(gè)外部的內(nèi)存中。類似地,且是舉例來說,進(jìn)入的數(shù)據(jù)、組態(tài)設(shè)定或控制可被轉(zhuǎn)移至SME290(或是儲存在第二內(nèi)存組件255中),舉例而言,用以提供指令給SME290或是傳輸至一個(gè)復(fù)合電路組件260,用于在計(jì)算中的使用及消耗。此外,在一個(gè)示范性的實(shí)施例中,該訊息管理器265也耦接至(該互連155的)第二通訊信道或總線220。
在一個(gè)示范性的實(shí)施例中,作為一個(gè)額外的替代方式的是,該訊息管理器265也被利用于在該裝置100內(nèi)的通訊。在此實(shí)施例中,該訊息管理器265也被利用于叢集200至叢集200的通訊,以及用于SME 2卯至SME 290的通訊。舉例而言,該訊息管理器265被利用于一個(gè)第一叢集200的一個(gè)復(fù)合電路組件260傳輸信息至一個(gè)第二叢集200的另 一復(fù)合電路組件260。
另夕卜,在一個(gè)示范性的實(shí)施例中,并非在一個(gè)矩陣150中的所有訊息管理器265都被實(shí)施以提供外部的通訊。舉例而言,在一個(gè)利用四個(gè)矩陣150的替代的實(shí)施例中,每個(gè)矩陣150被設(shè)置有六個(gè)對應(yīng)的叢集200(在一個(gè)其中超叢集185是等同地做成的實(shí)施例中,每個(gè)超叢集185有一個(gè)叢集200)的訊息管理器265所做成的總數(shù)六個(gè)PCI-express界面。類似地,在此四個(gè)矩陣的實(shí)例中,每個(gè)矩陣150被設(shè)置有總數(shù)一或兩個(gè)DDR-2接口 ,其是透過一或兩個(gè)對應(yīng)的叢集200的訊息管理器265來加以做成的。于是,有剩余的叢集200是具有對應(yīng)的訊息管理器265并未提供用于外部通訊的接口及控制。對于這些剩余的叢集200而言,其對應(yīng)的訊息管理器265傳輸數(shù)據(jù)至這些具有DDR-2或PCI-express接口的其它叢集200,分別用于儲存在內(nèi)存中或是在一個(gè)PCI-express總線之上的外部通訊,其是透過第二通訊組件210(超叢集層級)或是第三通訊組件190(矩陣層級)。
該訊息管理器265可根據(jù)所選的實(shí)施例,用廣泛種類的方式被實(shí)施。在一個(gè)第一所選的實(shí)施例中,該訊息管理器265被做成為一個(gè)有限狀態(tài)機(jī),并且其是實(shí)施通訊標(biāo)準(zhǔn),舉例而言在以上所提及的那些通訊標(biāo)準(zhǔn)。當(dāng)被做成為一個(gè)狀
態(tài)機(jī)時(shí),該訊息管理器265可被個(gè)別地實(shí)施或是組合成為該SME 290的一部分。在一個(gè)第二所選的實(shí)施例中,該訊息管理器265纟皮啦支成為專用的計(jì)算邏輯閘,也用于一個(gè)通訊接口的提供,其中該SME 29(H皮利用以執(zhí)行任何條件邏輯或是其它的狀態(tài)機(jī)功能。
在示范性的實(shí)施例中,如上所指出地,該復(fù)合電路組件260將會(huì)包含利用復(fù)合電路組件260的類型或種類(即,在該復(fù)合電路組件260之內(nèi)的電路組件270的類型)的某種形式的識別,以助于利用一個(gè)狀態(tài)機(jī)組件("SME")2卯的識別。 一般來說, 一個(gè)SME 290將會(huì)判斷在其叢集200之內(nèi)的復(fù)合電路組件260的類型及背景可利用性(并且若必要的話也會(huì)才艮告至其它的SME290),以用于執(zhí)行時(shí)的結(jié)合。舉例而言,對于該所繪的叢集200而言,該SME 290可判斷出該叢集具有一個(gè)可組態(tài)設(shè)定的桶形移位器類型的組件(對應(yīng)于類型"A")270A、兩個(gè)可組態(tài)設(shè)定的三ALU類型的組件(對應(yīng)于類型"B")270B、 一個(gè)可組態(tài)設(shè)定的Galois乘法器類型的組件(對應(yīng)于類型"C")270C、 一個(gè)可組態(tài)設(shè)定的位重新排列("BREO,,)類型的組件(對應(yīng)于類型"D")270D、以及一個(gè)內(nèi)容可尋址的內(nèi)存組件(對應(yīng)于類型"M,,)270M。該SME 290也可能在另一時(shí)間判斷及^J艮告其叢集200的BREO類型的組件不再正常地運(yùn)作,因而其BREO類型的組件的作業(yè)可被轉(zhuǎn)移至另一叢集200的一個(gè)BREO類型的組件。
請繼續(xù)參考圖5與6,該第二內(nèi)存組件255可以直接或間接地經(jīng)由全互連組件275或分布式全互連組件295,從多個(gè)來源接收輸入以及提供輸出(被寫入至以及讀取自),舉例而言(1)往返于該第一通訊組件250(用于從其它叢集200的輸入,舉例而言數(shù)據(jù)、指令或其它控制信息的輸入用于供SME 290使用、或是用于隊(duì)列(queuing)數(shù)據(jù)以供復(fù)合電路組件260使用);(2)往返于在相同的叢集200之內(nèi)的一或多個(gè)復(fù)合電路組件260(包含內(nèi)存復(fù)合電路組件260M); (3)往返于SME 290;或是(4)往返于訊息管理器265。
圖7是描繪根據(jù)本發(fā)明的教示的一個(gè)作為叢集200的另 一變化的第三示范性的叢集200B實(shí)施例的方塊圖。在此實(shí)施例中,該叢集200B包含具有通訊功能的復(fù)合電路組件260,舉例而言,用以提供外部的通訊功能,舉例而言是用于如在圖3中所繪的集中在一個(gè)所選的矩陣150之內(nèi)的通訊功能。另外,在此實(shí)施例中,作為一個(gè)選項(xiàng)的是,該訊息管理器265并未被利用于此種外部的通訊,該外部的通訊反而是被設(shè)置在專用的通訊復(fù)合電路組件260之內(nèi),該專
施例中,每個(gè)通訊復(fù)合的組件260被利用以提供一個(gè)標(biāo)準(zhǔn)的I/O接口用于往返于該裝置100的(外部的)通訊,舉例而言,DDR-2或PCI-e接口。此外,該通訊復(fù)合的組件260可具有額外的輸入與輸出總線或媒體結(jié)構(gòu)以提供此種接口 ,因而其并不限于透過該第一通訊組件250來向叢集201外進(jìn)行通訊。根據(jù)所選的實(shí)施例,額外的通訊復(fù)合的組件260可提升彈性以及免于災(zāi)難的失效而被利用。在所有其它方面,叢集200、 200B是相同的,并且進(jìn)一步與叢集200A不同的是在于使用一個(gè)全互連組件275而不是一個(gè)分布式全互連組件295。因此,任何對叢集200的參照都將會(huì)被理解為表示及包含該纟皮描繪作為叢集200的一種變化或更特定的實(shí)例的叢集200B的第三實(shí)施例,因而叢集200B也不會(huì)進(jìn)一步加以論述為一個(gè)別的實(shí)施例。然而,應(yīng)該注意到的是,該第一叢集200實(shí)施例也可被利用于如在圖3中所繪的集中在一個(gè)所選的矩陣150之內(nèi)的通訊功能。
對于該些叢集實(shí)施例而言,因?yàn)槭窍嗤木仃?、超叢集以及叢集尋址并且因?yàn)槭窍嗤慕M件接口及控制280,所以任何其它叢集200(或復(fù)合電路組件260)都可以用和任何其它復(fù)合電路組件260或叢集200通訊相同的任何方式,和該通訊復(fù)合的組件260以及其叢集201通訊、或是和具有一個(gè)有一外部的通訊接口的訊息管理器265的叢集200通訊。于是,當(dāng)一個(gè)叢集200或是復(fù)合電路組件260有一個(gè)在裝置100的外部的通訊時(shí),所需要的只有該叢集200或復(fù)合電路組件260須具有對應(yīng)的通訊復(fù)合的組件260的地址(其具有對應(yīng)于該所選的形式的通訊的接口)及/或其叢集201、或是一個(gè)具有一帶有對應(yīng)于該所選的形式的通訊的接口的訊息管理器265的叢集200的地址。舉例而言,此種尋址可由在該叢集200內(nèi)的各種的構(gòu)件,舉例而言,訊息管理器265、 SME2卯或第一通訊組件250而被提供。此種外部的通訊借此而透過虛擬的尋址,舉例而言,經(jīng)由一個(gè)訊息管理器265或叢集200、或是經(jīng)由一個(gè)通訊復(fù)合的組件260或叢集201而被提供,并且該復(fù)合的組件260并不需要有關(guān)該外部的接口的位置或類型的任何進(jìn)一步信息。舉例而言, 一個(gè)叢集200或復(fù)合電路組件260并不需要有關(guān)其外部的通訊是利用DDR SDRAM或是經(jīng)由以太網(wǎng)絡(luò)協(xié)議、或是這些接口可在在該裝置100上的何處被找出的任何信息。類似地,對于內(nèi)部的通訊而言, 一個(gè)復(fù)合電路組件260也不需要有關(guān)其通訊是在相同的叢集200內(nèi)或是在一個(gè)不同的叢集200內(nèi)的另 一復(fù)合電路組件260之內(nèi)的任何信息。
圖18是描繪根據(jù)本發(fā)明的教示的一個(gè)第四示范性的電路叢集的方塊圖。該第四示范性的電路叢集200C與先前敘述的叢集的實(shí)施例不同在于其拓樸具有內(nèi)部階層的一個(gè)程度,第四示范性的電路叢集200C分割成為多個(gè)區(qū)域201,描繪為區(qū)域201A、 201B、 201C及201D,且每一個(gè)區(qū)域具有4個(gè)復(fù)合電路組件260(如圖所描繪),該4個(gè)復(fù)合電路組件260連接至一個(gè)分離的互連275 、295(其可以為完全的或分散的),且于每一個(gè)區(qū)域201之間的通訊透過多個(gè)叢集隊(duì)列245A(其實(shí)際上與先前敘述的叢集間的隊(duì)列245相同)而產(chǎn)生。該些叢集隊(duì)列245A使用于一個(gè)叢集200C內(nèi)的通訊,且不僅用于叢集200內(nèi)的"快速追蹤"通訊。該完全的或分散的互連275、 295也為來源為基礎(chǔ)的,如更詳細(xì)敘述如下文,且每一個(gè)目的地復(fù)合電路組件260監(jiān)4見該互連275、 295,以用于自其對應(yīng)的數(shù)據(jù)來源的通訊。作為一個(gè)均等的替代方式,該互連275、 295是可以為目的地為基礎(chǔ)的,如于本文所敘述。
電路叢集200C不包含第一通訊組件250。反而是,與其它叢集200、超叢集185、矩陣150或外部通訊(諸如透過第二信道(或總線結(jié)構(gòu))220至一個(gè)PCI-e總線)的通訊是透過該訊息管理器265而完成,其纟是供第一通訊組件250的額外的以封包為基礎(chǔ)及電路切換的通訊功能。每一個(gè)復(fù)合電路組件260,其描繪為CE0至CE14,是耦接至完全的或分散的互連275、 295,如上文所述,且具有4個(gè)輸入及2個(gè)輸出至每一個(gè)復(fù)合電路組件260及自復(fù)合電路組件260而來。如圖所示的叢集隊(duì)列245A12至245A16提供于電路叢集200C內(nèi)的復(fù)合電路組件260的各種區(qū)域201之間的通訊。
典型地,叢集隊(duì)列245A實(shí)施為多個(gè)單向埠,其是使用于本文所敘述的任何型式的內(nèi)存,且實(shí)施成提供區(qū)域201之間雙向上數(shù)個(gè)通訊路徑(至一個(gè)電路叢集200C內(nèi)的任何目的地的"跳躍(hop),,,且在無其它數(shù)據(jù)來源而來的竟?fàn)幹拢?一個(gè)"跳躍"是于每一個(gè)周期內(nèi)產(chǎn)生)或電路叢集200C之間的數(shù)個(gè)通訊路徑(一或兩個(gè)周期或至一個(gè)相鄰叢集200C的"跳躍",及一或更多個(gè)周期或至任何其它目的地的"跳躍")。于一個(gè)示范性的實(shí)施例中,每一個(gè)叢集隊(duì)列245A提供4個(gè)通訊路徑,于每一個(gè)方向上2個(gè)。舉例而言,叢集隊(duì)列245A15提供自區(qū)域201B(作為一個(gè)數(shù)據(jù)來源)至區(qū)域201D(作為一個(gè)數(shù)據(jù)目的地)的2個(gè)通訊路徑,且提供自區(qū)域201D(作為一個(gè)數(shù)據(jù)來源)至區(qū)域201B(作為一個(gè)數(shù)據(jù)目的地)的2個(gè)通訊路徑。于一個(gè)示范性的實(shí)施例中,每一個(gè)叢集隊(duì)列245A也具有8個(gè)背景,其提供每一個(gè)叢集隊(duì)列245A于每一個(gè)方向上及用于每一個(gè)通訊路徑的8個(gè)虛擬連結(jié)。
因此,對于此實(shí)施例而言,于本發(fā)明的范疇內(nèi),叢集隊(duì)列245A及訊息管理器265也凈皮認(rèn)為"通訊組件"。
圖19是描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的第三裝置實(shí)施例的方塊圖,其包含一個(gè)超叢集185C。使用此用于電路叢集200C的拓樸,電路叢集200C可以有效地彼此鋪排(tiled)或成數(shù)組,以形成一個(gè)超叢集185,如描繪為超叢集185C,其具有16個(gè)電路叢集200C,描繪為CO至C15。電路叢集200C的每一個(gè)透過多個(gè)叢集隊(duì)列245A而與相鄰電路叢集200C通訊。接著,如此的超叢集185C不利用一或多個(gè)第二通訊組件210,且反而是透過超叢集185C內(nèi)之一或多個(gè)訊息管理器265而連接至一或多個(gè)第三通訊組件190。
再次參照圖18,對于此實(shí)施例而言,叢集隊(duì)列245A也提供與相鄰電路叢集200C的叢集間通訊,且可以祐^見為叢集間的隊(duì)列245的一個(gè)更一^化的形式。如圖所示,周圍的叢集隊(duì)列245A提供電路叢集200C及其相鄰電路叢集200C之間的通訊。對于叢集間通訊而言,叢集隊(duì)列245A可以實(shí)施成提供每一個(gè)方向上一或兩個(gè)通訊^各徑,其是才艮據(jù)所選的實(shí)施例而定。舉例而言,于一個(gè)示范性的實(shí)施例中,該周圍的叢集隊(duì)列245A提供每一個(gè)方向上一個(gè)通訊路徑。使用典型的幾何坐標(biāo),舉例而言,叢集隊(duì)列245A0提供電路叢集200C及一個(gè)相鄰的"西北方的"電路叢集200C之間的通訊,叢集隊(duì)列245A1及叢集隊(duì)列245A2提供電路叢集200C及一個(gè)相鄰的"北方的"電路叢集200C之間的通訊,叢集隊(duì)列245A3及叢集隊(duì)列245A4提供電路叢集200C及一個(gè)相鄰的"西方的,,電路叢集200C之間的通訊,且叢集隊(duì)列245A5提供電路叢集200C及一個(gè)相鄰的"西南方的,,電路叢集200C之間的通訊。類似地,叢集隊(duì)列245All(其可以被認(rèn)為一個(gè)相鄰的電路叢集200C的一部分)提供電路叢集200C及一個(gè)相鄰的"東北方的"電路叢集200C之間的通訊,叢集隊(duì)列245A10及叢集隊(duì)列245A9(其可以被認(rèn)為一個(gè)相鄰的電路叢集200C的一部分)提供電路叢集200C及一個(gè)相鄰的"東方的"電路叢集200C之間的通訊,叢集隊(duì)列245A8(其可以被認(rèn)為一個(gè)相鄰的電路叢集200C的一部分)提供電路叢集200C及一個(gè)相鄰的"東南方的"電路叢集200C之間的通訊,且叢集隊(duì)列245A6及叢集隊(duì)列245A7(其可以被認(rèn)為一個(gè)相鄰的電路叢集200C的一部分)提供電路叢集200C及一個(gè)相鄰的"南方的,,電路叢集200C之間的通訊。
此外,對于數(shù)據(jù)路由指定而言,諸如于下文所述的執(zhí)行時(shí)的結(jié)合(run-timebinding),而非透過一個(gè)第二通訊組件210至或由一個(gè)超叢集185而來及/或透過一個(gè)第一通訊組件250至或由一個(gè)電路叢集200而來的路由數(shù)據(jù)或其它信
制,透過一個(gè)訊息管理器265至或由一個(gè)超叢集185或一個(gè)電路叢集200而來,及由指定路由經(jīng)過任何各種的叢集隊(duì)列245A至超叢集185C或一個(gè)電路叢集200C內(nèi)的一個(gè)指定復(fù)合電路組件260,而產(chǎn)生。與使用第一通訊組件250相較之下,只要多個(gè)字不需要組合成一個(gè)封包列(train),此種使用叢集隊(duì)列245A用于叢集間通訊具有減少的延遲的潛在優(yōu)點(diǎn),且反而是可以隨多個(gè)字被產(chǎn)生而傳通。除此之外,超叢集185C及電路叢集200C分別于本文作用為任何超叢集185及電路叢集200。因此,任何提及超叢集185或電路叢集200應(yīng)該被了解為分別對應(yīng)地意謂及包含一個(gè)超叢集185C或一個(gè)電路叢集200C。
圖8是更加詳細(xì)地描繪根據(jù)本發(fā)明的教示的在一個(gè)示范性的叢集200內(nèi)的一個(gè)示范性的復(fù)合電路組件260的方塊圖。如在圖8中所繪,該復(fù)合電路組件260包括一個(gè)組件接口及控制280以及一個(gè)電路組件270(也被稱為計(jì)算的組件270),該電路組件270—般是一個(gè)可組態(tài)設(shè)定的計(jì)算的組件,但是其也可以是一個(gè)非可組態(tài)設(shè)定的計(jì)算的組件、一個(gè)可組態(tài)設(shè)定的或非可組態(tài)設(shè)定的通訊組件、 一個(gè)可組態(tài)設(shè)定的或非可組態(tài)設(shè)定的有限狀態(tài)機(jī)組件、可以是一個(gè)可組態(tài)
設(shè)定的或非可組態(tài)設(shè)定的內(nèi)存組件、或可以是針對于一個(gè)裝置100的任何特定
應(yīng)用所選的其它形式的電路。
在一個(gè)示范性的實(shí)施例中,該組件接口及控制280包括(l)一個(gè)組件控制器325; (2)—個(gè)內(nèi)存330(舉例而言,內(nèi)容可尋址的內(nèi)存("CAM,,)或是舉例而言SDRAM的隨機(jī)存取內(nèi)存),其儲存背景及控制信息(舉例而言,組態(tài)設(shè)定字);(3)輸入隊(duì)列320(作為一種形式的內(nèi)存);以及(4)輸出隊(duì)列(或緩存器)315(也作為一種形式的內(nèi)存)。在其它示范性的實(shí)施例中,該組件接口及控制280可包含該組件控制器325、內(nèi)存330以及該輸入隊(duì)列320或輸出隊(duì)列315,但非兩者。在額外的示范性的實(shí)施例中,該組件接口及控制280可包含該內(nèi)存330以及該輸入隊(duì)列320或該輸出隊(duì)列315,但并不包含該組件控制器325。在后者的實(shí)施例中, 一旦一個(gè)SME 290已經(jīng)指定動(dòng)作并且建立數(shù)據(jù)的指定路由之后,在該復(fù)合電路組件260之內(nèi)便不利用個(gè)別的或是額外的控制,其中該復(fù)合電路組件260被允許自由且/或持續(xù)地執(zhí)行一個(gè)指定的背景。
如上所述,在所選的實(shí)施例中,該組件接口及控制280也可包含一個(gè)選配的輸出交換組件380,舉例而言, 一或多個(gè)開關(guān)、晶體管、多任務(wù)器或解多任
還提供直接的交換功能給輸出數(shù)據(jù),舉例而言,用于在該復(fù)合電路組件260內(nèi)的內(nèi)部的回授、或是用于提供輸出數(shù)據(jù)至該SME2卯、訊息管理器265、或是第一通訊組件250。如上所述,該內(nèi)存330、輸入隊(duì)列320以及輸出隊(duì)列315可被實(shí)施為任何形式的內(nèi)存,其包含(但非限制)先前所述的任何內(nèi)存類型,舉例而言,CAM或SDRAM。
該些輸入隊(duì)列320提供多個(gè)輸入365到該被描繪為示范性的四個(gè)輸入的可組態(tài)設(shè)定的電路組件270中,每個(gè)輸入具有一個(gè)16位的數(shù)據(jù)字的寬度?;蛘呤牵搶挾瓤梢允歉鼘挼?,舉例而言,包含一個(gè)指定一占位符號的位。該些輸入隊(duì)列320可以是彼此獨(dú)立的、或可以是彼此相依的,舉例而言,為了一個(gè)組合的32位的數(shù)據(jù)字而利用2個(gè)輸入。在示范性的實(shí)施例中,輸入隊(duì)列320被提供給每個(gè)進(jìn)入電路組件270的輸入,其中每個(gè)輸入隊(duì)列320對于每個(gè)可被該電路組件270利用的背景提供一個(gè)別的隊(duì)列。此外,該些輸入隊(duì)列320可被實(shí)施為"短的隊(duì)列",其具有1或2個(gè)數(shù)據(jù)字的深度,盡管較深的隊(duì)列以及其它形式的內(nèi)存也是在本發(fā)明的范疇內(nèi)。對于一個(gè)示范性的實(shí)施例而言,對于4輸入的每個(gè)輸入利用八個(gè)背景,其具有至少2個(gè)資料字的深度。背景也可被結(jié)合,舉例而言,對于一個(gè)所選的背景實(shí)施一個(gè)較大的隊(duì)列,舉例而言,16個(gè)字。
依據(jù)交換的組態(tài)設(shè)定,該些輸入隊(duì)列320可以直接或是經(jīng)由該全互連組件275或分布式全互連組件295,從多個(gè)輸入來源的任一個(gè)來源接收數(shù)據(jù),舉例而言(1)從第一通訊組件250(用于來自其它叢集200的輸入);(2)從在相同的叢集200內(nèi)的一或多個(gè)其它復(fù)合電路組件260(包含內(nèi)存復(fù)合的組件260M); (3)從該第二內(nèi)存組件255; (4)從該訊息管理器265;或是(5)從該SME 290(舉例而言,當(dāng)被該SME 290利用于一個(gè)值的計(jì)算或是2個(gè)值的比較,舉例而言,用以求值一個(gè)條件或是一個(gè)事件)。如在圖8中所繪,該些輸入隊(duì)列320從被描繪為一個(gè)示范性的多任務(wù)器335的全互連組件275或分布式全互連組件295接收數(shù)據(jù)。對于一個(gè)示范性的實(shí)施例而言,該多任務(wù)器335為一個(gè)16至1的多任務(wù)器,其允許輸入隊(duì)列320通過選擇用于輸入數(shù)據(jù)的互連組件275、 295的總線,自任何指定的來源獲得數(shù)據(jù)。 一個(gè)來自電路組件270的輸出也可透過輸入隊(duì)列320或是直接在該組件270的電路之內(nèi),經(jīng)由一個(gè)以上所提及的輸出交換組件380、或只是經(jīng)由該全互連組件275而被回授,以被提供作為一個(gè)輸入。
在一個(gè)示范性的實(shí)施例中,兩個(gè)輸出隊(duì)列(緩存器或是其它形式的內(nèi)存)315被設(shè)置,每個(gè)輸出隊(duì)列具有對應(yīng)的八個(gè)背景,每個(gè)背景具有16位的數(shù)據(jù)字的寬度,并且具有l(wèi)、 2或更多的數(shù)據(jù)字的所選的深度?;蛘呤?,該寬度可以是較寬的,舉例而言,包含一個(gè)指定一占位符號的位。該些輸出隊(duì)列315也可以是彼此獨(dú)立的、或可以是彼此相依的,舉例而言,為了一個(gè)組合的32位的數(shù)據(jù)字而利用2個(gè)輸出隊(duì)列315。該些背景也可被組合,舉例而言,用以對于一個(gè)所選的背景實(shí)施一個(gè)較大的隊(duì)列,舉例而言,8至16個(gè)字。除了儲存輸出數(shù)據(jù)之外,該些輸出隊(duì)列315(利用一個(gè)被納入的狀態(tài)機(jī))也可復(fù)制輸出數(shù)據(jù),舉例而言,為了分布至額外的目的地而提供相同的輸出資料至額外的背景。
多個(gè)輸出375是從該被描繪為兩個(gè)輸出的電路組件270的輸出隊(duì)列315被提供,每個(gè)輸出也具有一個(gè)16位的數(shù)據(jù)字的寬度(或是如上所論述地更寬的,舉例而言,用于內(nèi)含一個(gè)占位符號位、控制信息或其它數(shù)據(jù))。該些輸出375也可以是彼此獨(dú)立的、或可以是彼此相依的,舉例而言,為了一個(gè)組合的32位的數(shù)據(jù)字而利用2個(gè)輸入。該些輸出375被提供至全互連組件275或分布式全互連組件295(或是選配的輸出交換組件380),其可以獨(dú)立地提供該多個(gè)輸出375的每個(gè)輸出375至以下的任一者(經(jīng)由對應(yīng)的通訊結(jié)構(gòu)或總線350): (1)至該第一通訊組件250(用于輸出至其它叢集200); (2)至一或多個(gè)在相同的叢集200內(nèi)的(其它)復(fù)合電路組件260(其包含內(nèi)存復(fù)合的組件260M); (3)至SME290(舉例而言,當(dāng)被SME 290利用于一個(gè)值的計(jì)算或是2個(gè)值的比較(舉例而言,用以求值一個(gè)條件或是一個(gè)事件));(4)至該訊息管理器265;或是(5)至一個(gè)選配的第二內(nèi)存組件255,舉例而言, 一個(gè)用于輸入到SME290或其它構(gòu)件的長的隊(duì)列。如上所迷,該選配的輸出交換組件380以及其它的輸出交換組態(tài)設(shè)定也為可利用的,并且對于熟悉電子技術(shù)者而言將會(huì)是明顯的,被-f見為等同的且在本發(fā)明的范疇內(nèi)。
在一個(gè)所選的實(shí)施例中,該內(nèi)存330裙j故成為 一個(gè)CAM,以助于所儲存的工作識別符(工作ID)以及所儲存的動(dòng)作識別符(作用ID)的搜尋及識別。在另一實(shí)施例中,該內(nèi)存330被做成為RAM,其中搜尋及識別是利用其它搜尋方法,舉例而言,二進(jìn)制搜尋來加以執(zhí)行。然而,其它類型及組合的內(nèi)存也可被利用,因而全部都被視為等同的且在本發(fā)明的范疇內(nèi),不論是揮發(fā)性或非揮發(fā)性,其在無限制之下包含任何類型或組合的RAM、快閃、DRAM、 SDRAM、SRAM、 MRAM、 FeRAM、 ROM、 EPROM或E2PROM、或是任何已知的或變成已知的其它類型的內(nèi)存、儲存媒體、或是數(shù)據(jù)儲存裝置或電路、或是其組合,其根據(jù)所選的實(shí)施例而定。
該內(nèi)存330在該示范性的實(shí)施例中被利用來儲存背景及控制信息,被利用以組態(tài)設(shè)定該可組態(tài)設(shè)定的組件270以及導(dǎo)引其動(dòng)作。在該示范性的實(shí)施例中,此種背景及控制信息被儲存為一個(gè)組態(tài)設(shè)定字,作為多個(gè)信息字段,并且其以下參考圖16力卩以論述。此外,透過該狀態(tài)機(jī)組件290,此種組態(tài)設(shè)定字 可被改變、刪除、取代、增加、等等,并且通過修改在該組態(tài)設(shè)定字內(nèi)的各種 的位,由該電路組件270的動(dòng)作執(zhí)行也可加以控制。此種背景及控制信息的本 地儲存提供極為快速的執(zhí)行功能,因?yàn)榻M態(tài)設(shè)定或指令不需要從一個(gè)遠(yuǎn)程的內(nèi) 存來提取及讀出,而是立即可供利用作為背景,以用于電路組件270的立即的 組態(tài)設(shè)定及控制。就其本身而論,該裝置IOO并未受到該限制典型的處理器的 執(zhí)行功能的"馮紐曼(von Neumann),,瓶頸。事實(shí)上,各種的內(nèi)存330作用為一 個(gè)大的、非常高度分布式指令內(nèi)存,其可有利地被利用,舉例而言,在一個(gè)構(gòu) 件失效的事件中用于分布式處理、分布式數(shù)字信號處理、分布式程序化、以及 分布式的指令(或動(dòng)作)再次結(jié)合。
此種背景的使用以及本地的儲存也容許有復(fù)合電路組件260、第一通訊組 件250以及狀態(tài)機(jī)組件2卯的動(dòng)作的重要的時(shí)間多任務(wù)處理。舉例而言,當(dāng)一 個(gè)所選的復(fù)合電路組件260的一個(gè)背景可能需要尚未被另 一復(fù)合電路組件260 產(chǎn)生的輸入數(shù)據(jù)時(shí),另一背景可能是可被執(zhí)行在該所選的復(fù)合電路組件260 上,而不是讓該復(fù)合電路組件260為閑置的。類似地,多個(gè)背景通過一個(gè)狀態(tài) 機(jī)組件290的使用容許多執(zhí)行緒的運(yùn)算。舉例而言, 一個(gè)SME 290可以利用 一用于一第一背景的特定的第一數(shù)據(jù)組來開始第一程序代碼的執(zhí)行,儲存中間 (interim)結(jié)果以及一個(gè)第一程序代碼的指標(biāo),利用 一用于一第二背景的第二資 料組來開始第二程序代碼的執(zhí)行并且提供一個(gè)輸出,接著是利用該第一程序代 碼指標(biāo)以及該儲存的中間結(jié)果以回到該第 一 背景以用于繼續(xù)該第 一 程序代碼 的執(zhí)行。此種時(shí)間多任務(wù)的背景的使用是進(jìn)一步容許工作的交錯(cuò)以及原本可能 會(huì)是閑置的資源的利用,其容許工作分享資源因而增加IC整體的資源利用率。
該組件控制器325可透過組合邏輯閘而被實(shí)施及/或被實(shí)施為一個(gè)有限狀 態(tài)機(jī),并且利用儲存在內(nèi)存330中的組態(tài)設(shè)定字(背景及控制信息)而被利用以 控制該電路組件270是如何被組態(tài)設(shè)定以及該電路組件270何時(shí)運(yùn)作。更明確 地說,在示范性的實(shí)施例中,該電路組件270是根據(jù)數(shù)據(jù)流運(yùn)作,使得當(dāng)其在 輸入處有數(shù)據(jù)時(shí),當(dāng)其具有一個(gè)可利用的目的地用以儲存或消耗將被產(chǎn)生的輸 出數(shù)據(jù)時(shí),以及當(dāng)被該組件控制器325授權(quán)時(shí),該電路組件270都將會(huì)開始動(dòng)該組件控制器325是^f艮據(jù)多個(gè)條件及優(yōu)先級(以及其它在內(nèi)存330中4皮7賭存為 一或多個(gè)組態(tài)設(shè)定字的信息)來控制此數(shù)據(jù)流的動(dòng)作。舉例而言,當(dāng)超過一個(gè) 背景是備妥用于執(zhí)行時(shí),該組件控制器325可以仲裁誰先執(zhí)行,舉例而言,其 是透過循環(huán)、或是一或多個(gè)優(yōu)先級的評估、 一個(gè)活動(dòng)的排定的執(zhí)行、或是該活 動(dòng)最后發(fā)生是在何時(shí)(舉例而言, 一個(gè)最近執(zhí)行的動(dòng)作在該仲裁中可能具有一 個(gè)較低的優(yōu)先級,而一個(gè)最久未執(zhí)行的動(dòng)作在該仲裁中可能具有一個(gè)較高的優(yōu) 先級)。
該組件控制器325可用各種復(fù)雜度而被實(shí)施。如上所述,在一個(gè)實(shí)施例中, 該組件控制器325并未被實(shí)施,其中該復(fù)合電路組件260實(shí)質(zhì)上是操作在一個(gè) 連續(xù)的模式中,而受到其它限制(舉例而言,來自各種的SME290的任一種的 控制)。在另一種極端的情形,該組件控制器325可以提供電路組件270的多 執(zhí)行緒的運(yùn)算,舉例而言通過儲存一第一背景的一部分的執(zhí)行的目前的狀態(tài)在 該(第一)內(nèi)存330中,執(zhí)行一第二背景(經(jīng)由該電路組件270),并且擷取目前的 狀態(tài)以及由該電路組件270重新繼續(xù)該第一背景的執(zhí)行。
示范性的可組態(tài)設(shè)定的計(jì)算的組件270被描繪在圖9與10中 圖9是一 個(gè)示范性的乘法器類型的可組態(tài)設(shè)定的組件270F的方塊圖,而圖IO是一個(gè)示 范性的三ALU類型的可組態(tài)設(shè)定的組件270G的方塊圖。如同所繪,其分別 具有四個(gè)16位的輸入365以及兩個(gè)16位的輸出375,并且依據(jù)該背景,其分 別能夠利用所有的輸入365及輸出375。對應(yīng)于一個(gè)所選的背景的組態(tài)設(shè)定被 提供用于對應(yīng)的多任務(wù)器、解多任務(wù)器以及其它交換組件的模式選擇,以實(shí)施 該所選的組態(tài)設(shè)定。
如在圖9中所繪,該示范性的乘法器類型的可組態(tài)設(shè)定的組件270F是可 組態(tài)設(shè)定用于數(shù)個(gè)操作模式,舉例而言,用于32位的乘法、16位的乘法、累 加、以及16位及32位的算術(shù)的混合。作為簡要高層級的解說的是,該乘法器 類型的可組態(tài)設(shè)定的組件270F可利用4個(gè)多任務(wù)器383、 384、 385、 386,利 用32位的輸出選擇387,并且利用其它輸入到加法器/減法器382及乘法器381 的組態(tài)設(shè)定位而被組態(tài)設(shè)定。該32位的輸出選擇387是指定加法器/減法器382的低位32位^皮輸出或是該64位的累加緩存器388的哪個(gè)部份被輸出。該多任 務(wù)器385(A選擇)是指定進(jìn)入該加法器/減法器382的A-輸入為零、II、 12或 是累加緩存器388;該多任務(wù)器386(B選擇)是指定進(jìn)入該加法器/減法器382 的B-輸入的對齊為來自該乘法器381的64位的輸出的四個(gè)16位的部份中的 一個(gè)部份;并且進(jìn)入該加法器/減法器382的組態(tài)設(shè)定位進(jìn)一步指明該A-輸入 是帶正負(fù)號的或是不帶正負(fù)號的、以及該B-輸入被加上或是減去。該多任務(wù) 器383(P選擇)是指明進(jìn)入該乘法器381的P-輸入為13或12、以及是帶正負(fù) 號的或是不帶正負(fù)號的。該多任務(wù)器384(Q選擇)是指明進(jìn)入該乘法器381的 Q-輸入為Il或IO、以及是帶正負(fù)號的或是不帶正負(fù)號的。此外,該乘法器類 型的可組態(tài)設(shè)定的組件270F也描繪在該組件270之內(nèi),從該64位的累加緩存 器388至多任務(wù)器385的輸出回授。
如在圖IO中所繪,該示范性的三ALU類型的可組態(tài)設(shè)定的組件270G可 組態(tài)設(shè)定用于廣泛種類的功能,其包含舉例而言是乘法、加法以及減法(在帶 正負(fù)號的算術(shù)中)、屏蔽(masking)、算術(shù)平均、以及四舍五入(rounding)。此外, 該示范性的三ALU類型的可組態(tài)設(shè)定的組件270G可輸出一個(gè)常數(shù),傳輸一 個(gè)值(復(fù)制A或B至其輸出),執(zhí)行邏輯功能(NOT、 AND、 OR、 XOR),并且 可以執(zhí)行條件式或無條件式的數(shù)據(jù)流。如在圖10中所繪,依據(jù)該些組態(tài)設(shè)定 位,每個(gè)移位器393、 394及395是向左(正)或向右(負(fù))移位其對應(yīng)的輸入指定 的量。ABS區(qū)塊389、 399也是根據(jù)該些組態(tài)設(shè)定位來計(jì)算該輸入的絕對值或 是傳輸該輸入。該狀態(tài)多任務(wù)器396是利用來自每個(gè)ALU390、 391及392的 旗標(biāo)位(其可被提供至SME290)來產(chǎn)生一個(gè)狀態(tài)字,其中一個(gè)旗標(biāo)位指明一個(gè) 進(jìn)位或比較, 一個(gè)第二旗標(biāo)位指出該結(jié)果是最高有效位, 一個(gè)第三旗標(biāo)位指出 該結(jié)果是一個(gè)負(fù)l(-l),并且一個(gè)第四旗標(biāo)位指出該結(jié)果是零。該條件交換的 多任務(wù)器397及398被利用以在輸入13、 12上提供條件的執(zhí)行,并且根據(jù)該 結(jié)果,傳輸10 A/或II至輸出375,并且在被復(fù)制到輸出375之前進(jìn)一步提供 輸入的交換。
如上所述,除了這些類型的可組態(tài)設(shè)定的組件270之外,其它可預(yù)期的可 組態(tài)設(shè)定的組件270是包含位位重新排列組件("BREO")、單一 ALU組件、"超級,,ALU組件(32位的ALU)、桶形移位器組件、查找表組件、內(nèi)存組件、可程 序化的控制器組件、通訊組件、等等。 B.用于該裝置的程序編譯
圖11是描繪根據(jù)本發(fā)明的教示的一種示范性的編譯方法的流程圖。應(yīng)了 解的是,以下的討論是為了解釋本發(fā)明的目的的非常高的層級。該編譯方法可 利用任何計(jì)算機(jī)系統(tǒng)或網(wǎng)絡(luò)、工作站、處理組件、 一或多個(gè)孩史處理器、電子設(shè) 計(jì)自動(dòng)化("EDA")工具、電子系統(tǒng)層級的("ESL,,)工具、等等而被執(zhí)行。
請參照圖11,該方法開始(開始步驟400)以一個(gè)算法的選擇以用于編譯(步 驟405)。此一算法可以用廣泛種類的方式,舉例而言從數(shù)學(xué)的說明至用于一個(gè) 微處理器的原始碼或目的碼列來加以表示。該算法被轉(zhuǎn)換或分解為多個(gè)"工 作,,(步驟410),其是功能或方法的高階說明,舉例而言是執(zhí)行逆快速傅立葉轉(zhuǎn) 換(IFFT)。 一項(xiàng)工作是接著從該多個(gè)工作中選出并且^皮指定一個(gè)工作識別符 ("工作ID,,)(步驟415),該工作ID典型是一個(gè)足夠是唯一的識別符以區(qū)別工作 與相同的算法的其它的工作事例、或是與也將會(huì)同時(shí)在該裝置100上執(zhí)行的其 它算法的工作區(qū)別。
該所選的工作接著被轉(zhuǎn)換或分解為一或多個(gè)動(dòng)作,以由一個(gè)復(fù)合電路組件 260(包含計(jì)算的、狀態(tài)機(jī)及/或通訊復(fù)合的組件260、 290、 250)進(jìn)行以執(zhí)行該 工作(步驟420)。如上所述, 一項(xiàng)"動(dòng)作"是將被一個(gè)復(fù)合電路組件260執(zhí)行的 功能或活動(dòng)的類型,舉例而言,乘法、位處理以及指令處理,并且可被視為等 同于一個(gè)將由一個(gè)處理器執(zhí)行的指令、或是一項(xiàng)由一個(gè)ASIC或FPGA執(zhí)行的 功能,以達(dá)成相同的結(jié)果。舉例而言, 一個(gè)IFFT工作可被分解為多個(gè)"蝴蝶 (butterfly),,步驟,舉例而言,乘法、加法以及累積步驟,每個(gè)步驟或是所有的 步驟將會(huì)構(gòu)成一個(gè)動(dòng)作(或指令),舉例而言'"a,乘以'b,(axb)",并且將會(huì)對應(yīng)于 該些復(fù)合電路組件260中的一個(gè)的操作組態(tài)設(shè)定中之一。于是,如同在此的用 法,該些用語"動(dòng)作"、"功能,,或"活動(dòng)"等同地被使用,并且可互換地表示任何 此種電路過程。(于是,此種動(dòng)作(或指令)一旦被指定及結(jié)合之后,將會(huì)是在該 IC上以一或多個(gè)的組件270的組態(tài)設(shè)定的形式)。該一或多個(gè)動(dòng)作(或是指令) 中, 一個(gè)動(dòng)作(或指令)被選出且被指定一個(gè)作用識別符("動(dòng)作ID")(步驟425),該動(dòng)作ID是一個(gè)足夠唯一的識別符以區(qū)別該動(dòng)作(或指令)與該所選的工作的 其它動(dòng)作(或指令)。該工作ID以及動(dòng)作ID被利用在該執(zhí)行時(shí)的結(jié)合過程中, 其在以下參考圖14論述之。
每個(gè)動(dòng)作(或指令)接著由將被利用的復(fù)合電路組件類型而被對映或指定 為一或多個(gè)復(fù)合電路組件260的一或多個(gè)背景(步驟430),并且未被對映或指 定至該架構(gòu)內(nèi)的任何特定的復(fù)合電路組件260或特定的地址,以產(chǎn)生一個(gè)"符 號的"通稱或非特定的編譯,其并未拘束到特殊的硬件構(gòu)件。舉例而言, 一個(gè) 乘法及加法動(dòng)作(或指令)可被對映為一個(gè)ALU類型的復(fù)合的組件260(—個(gè)具 有一 ALU類型的電路組件270的復(fù)合的組件260)的單一背景,而未被對映至 一個(gè)在一特定的叢集200內(nèi)的特定的ALU類型的復(fù)合的組件260。較復(fù)雜的 動(dòng)作(或指令)可被對映至多個(gè)類型的復(fù)合電路組件260的多個(gè)背景。之后,作 為該結(jié)合過程的部份的是,該所選的類型之一或多個(gè)特定的復(fù)合電路組件260 將會(huì)被指定來執(zhí)行該動(dòng)作(或是等同地執(zhí)行該指令),作為其可利用的背景中之 一或多個(gè)。此種區(qū)別是重要的,因?yàn)槭侨菰S該動(dòng)作(或指令)最初被指定給一或 多個(gè)復(fù)合電路組件260,并且接著在該裝置IOO的動(dòng)作期間隨著可能是所需地, 可被重新指定至其它復(fù)合電路組件260。此外,如同所指出的,在示范性的實(shí) 施例中,此個(gè)別的結(jié)合過程可指定該動(dòng)作(或指令)為一或多個(gè)該所選的類型的 復(fù)合電路組件260可利用的背景,其中其它的背景可能仍然是可利用于其它動(dòng) 作(或指令)的指定。
作為此方法的部分的是,對于每個(gè)動(dòng)作(或指令)的對應(yīng)的"關(guān)連"也以此通 稱的、符號的或非特定的層級被決定(步驟435),即,被決定為通稱或符號的"指 針,,對于每個(gè)動(dòng)作而言,有關(guān)用于輸入數(shù)據(jù)的來源或是用于數(shù)據(jù)輸出的目的 地、或是兩者的信息被產(chǎn)生及維持。舉例而言,除了對映至一個(gè)ALU類型的 復(fù)合的組件260之外,工作"418"的動(dòng)作號碼"512"將會(huì)具有關(guān)連的信息為其將 會(huì)從工作"229"的動(dòng)作號碼"414"接收其輸入、或是其將會(huì)提供其輸出至工作 "319"的動(dòng)作號碼"811"(或是兩者)。假設(shè)該信息的設(shè)定對于所有的動(dòng)作(或指令) 都是一致地被產(chǎn)生,只需要此種輸入關(guān)連或輸出關(guān)連的其中一組,因?yàn)樽詣?dòng)地輸入(目的地),并且反之亦然。在所選的實(shí)施例中,擁有兩組i/o關(guān)連信息可
能是有用的。此種透過通稱或符號的指針在輸入與輸出之間的關(guān)系或"關(guān)連",
也有用于作為以下論述的工作及動(dòng)作(或指令)結(jié)合過程的部分。步驟435的此
的步驟被執(zhí)行。舉例而言,此決定可在步驟440或445以后被執(zhí)行,舉例而言, 當(dāng)用于一項(xiàng)工作的所有的動(dòng)作(或指令)已經(jīng)被決定且對映至復(fù)合電路組件260 的類型、或是當(dāng)所有的動(dòng)作(或指令)以及工作已經(jīng)被決定及對映至復(fù)合電路組 件260的類型時(shí)。
該編譯方法也判斷在程序或算法中的任何時(shí)序上的限制,該程序或算法將 會(huì)對應(yīng)地需要某個(gè)程度的接近或局部性由各種的復(fù)合電路組件260的執(zhí)行,并 且對于受影響的工作及/或動(dòng)作(或指令)提供對應(yīng)的區(qū)域的限制(步驟440)。舉 例而言,對于各種的時(shí)序要求而言,某些程序可能需要在單一叢集200之內(nèi)或 是在在相同的超叢集185內(nèi)的一個(gè)群組的叢集200之內(nèi)被執(zhí)行,以避免任何可 能從在該互連155上指定路由給數(shù)據(jù)封包往返于其它叢集200或其它超叢集 185引起的延遲。在這些情況中, 一個(gè)區(qū)域的要求是在該編譯后的輸出(以下論 述的"符號的電路描述文件")中被提供,舉例而言借助 一個(gè)"區(qū)域"命令或指令的 指定,舉例而言,用以提供之后的動(dòng)作(或指令)必須在單一叢集200之內(nèi)或是 在單一超叢集185之內(nèi)被執(zhí)行,其接著是一個(gè)用于受限至該單一叢集200或單 一超叢集185的動(dòng)作(或指令)的"結(jié)束區(qū)域"的指示。根據(jù)所選的實(shí)施例,如此 的區(qū)域限制也可以被延伸至一個(gè)電路叢集200內(nèi)的區(qū)域201,電路叢集200諸 如電路叢集200C。
在步驟440以后,該方法是判斷是否有額外的動(dòng)作(或指令)將被指定一個(gè) 識別符且被對映至復(fù)合電路組件260的類型(步驟445),并且若有的話,該方 法返回到步驟425并且重復(fù)之,以選擇下一個(gè)動(dòng)作(或指令)且前往步驟425、 430(可能有435)以及440。當(dāng)該工作的所有動(dòng)作(或指令)都已經(jīng)在步驟440中 被指定一個(gè)識別符且被對映至復(fù)合電路組件260的類型(并且可能的輸入或輸 出連結(jié))時(shí),該方法前進(jìn)至步驟450,并且其是判斷是否額外的工作將被編譯。 當(dāng)在步驟450中額外的工作將被編譯時(shí),該方法返回到步驟415并且重復(fù)之,其是選擇下一個(gè)工作、指定一個(gè)工作ID、等等。
當(dāng)所有的工作都已經(jīng)在步驟450中處理,使得該所選的算法已經(jīng)轉(zhuǎn)換成為 多個(gè)工作及動(dòng)作(或指令),該工作及動(dòng)作(或指令)接著已經(jīng)符號(通稱或非明確 地)對映至復(fù)合電路組件260的類型并且借助數(shù)據(jù)輸入來源或數(shù)據(jù)輸出目的地 (或是兩者)(舉例而言,利用符號的指針)而符號地連結(jié)時(shí),該方法產(chǎn)生一個(gè)復(fù) 合電路組件并且指定路由的"符號的電路描述文件"或符號的編譯(步驟455)。 此符號的電路描述文件、表列或編譯是包括多個(gè)符號的電路描述文件組件,其 中每個(gè)此種符號的電路描述文件組件對應(yīng)于且包含用于該算法或程序的每個(gè) 工作的每個(gè)動(dòng)作的執(zhí)行的信息。更具體而言,每個(gè)符號的電路描述文件組件包 含信息為有關(guān)(l)該工作ID; (2)該動(dòng)作ID; (3)—或多個(gè)類型的復(fù)合電路組件 260以及對用于該對應(yīng)的工作ID及作用ID的動(dòng)作(或指令)的執(zhí)行的每個(gè)類型 的復(fù)合電路組件260所需的背景的數(shù)目;(4)輸入或輸出(或是兩者)關(guān)連信息; 以及(5)對于該對應(yīng)的工作或動(dòng)作(或指令)的任何區(qū)域的(即,接近)限制。此夕卜,
185C及電路叢集200C的拓樸。
作為在步驟430中的對映至一或多個(gè)類型的復(fù)合電路組件260以及在步驟 435中的連結(jié)指令的一種替代的是,動(dòng)作(或指令)也可以被對映至"宏定義,,或 "程序館"。此種"宏定義,,或"程序館"實(shí)質(zhì)上是具有一個(gè)對應(yīng)的符號的電路描述 文件的預(yù)先編譯的工作或動(dòng)作,其已經(jīng)被對映至復(fù)合電路組件260的類型并且 已經(jīng)對應(yīng)地連結(jié)(在區(qū)域的限制下,若有的話)。舉例而言,IFFT可被對映至一 個(gè)IFFT程序館,其包含利用該裝置100來執(zhí)行IFFT的所有復(fù)合的組件類型 及復(fù)合的組件關(guān)連的信息。此種程序館的產(chǎn)生可以發(fā)生在各種的層級中的任一 層級,舉例而言,對映用于串流媒體的R264的各種算法。
另夕卜,對于任何所選的動(dòng)作或工作可能有多組此種對映及關(guān)連,其可以針 對不同的目標(biāo)加以最佳化,每一組可能產(chǎn)生一個(gè)不同的符號的電^各描述文件。 舉例而言,如上所述,將由一個(gè)三ALU類型的復(fù)合的組件260執(zhí)行的工作可 被對映至三個(gè)單一 ALU類型的復(fù)合的組件260。盡管此可能會(huì)減低執(zhí)行的頻 寬或速度,但是當(dāng)其它較高的優(yōu)先級算法正在利用所有的可利用的三個(gè)ALU類型的復(fù)合的組件260的所有可利用的背景時(shí),其可以容許由該裝置100來執(zhí) 行之。類似地,將通過一個(gè)ALU類型的復(fù)合的組件260執(zhí)行的工作可被對映 至多個(gè)加法及乘法類型的復(fù)合的組件260,此也產(chǎn)生另一種對映及連結(jié)變化。
由于這些對映及連結(jié)變化是可利用的,所以任何所選的算法都可以使得多 個(gè)符號的電路描述文件被產(chǎn)生,每個(gè)電路描述文件是針對于一個(gè)不同的目標(biāo)而 被最佳化或選擇,舉例而言,執(zhí)行的速度、功率最小化、在減少的資源下執(zhí)行 的能力、安全、冗余、沖突解決、等等。舉例而言,請參考圖1,在該IC的 一大部份受損,使得用于ABS的最佳算法不再具有充分的IC資源來執(zhí)行的事 件中,該ABS功能的另 一(次佳的)版本可被加載及結(jié)合在該IC中,此使得一 項(xiàng)重要的功能可在另一 IC(舉例而言,標(biāo)準(zhǔn)的微處理器)將會(huì)完全失效的情況下 繼續(xù)運(yùn)作并且避免潛在有害的結(jié)果。
在步驟450中的符號的電路描述文件產(chǎn)生之后,該編譯方法是判斷是否有 額外的算法將被編譯、或是如上所論述,用于一個(gè)所選的算法的額外的版本或 替代者將被編譯(步驟455),并且若有的話,該方法返回到步驟405并且重復(fù) 之。當(dāng)步驟455中沒有進(jìn)一步算法或是算法的版本將被編譯時(shí),該方法可以結(jié) 束,而返回步驟460。
C.操作系統(tǒng)
圖12是以高階描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的操作系統(tǒng)或方法的 流程圖。應(yīng)了解的是,為了解釋本發(fā)明的目的,以下的討論是非常高階的。除 了通過各種的SME 290執(zhí)行之外,或者是,此操作系統(tǒng)的功能可通過一或多 個(gè)額外的控制器175執(zhí)行。
該方法開始于(以步驟500開始)裝置IOO被導(dǎo)通電源,該裝置100舉例而 言是一個(gè)SOC的部分或是在另一系統(tǒng)之內(nèi),舉例而言,交通工具、計(jì)算機(jī)、 復(fù)雜的系統(tǒng)、行動(dòng)電話、個(gè)人數(shù)字助理、MP3播放器、等等。 一項(xiàng)自我測試 典型是通過每個(gè)狀態(tài)機(jī)組件290而被執(zhí)行(步驟505),該些狀態(tài)機(jī)組件290可 以測試其本身,并且在示范性的實(shí)施例中,可以測試在其對應(yīng)的叢集200或其 它叢集200(舉例而言,用于那些實(shí)施為不具有對應(yīng)的SME 290的叢集200)內(nèi) 的各種的復(fù)合電路組件260、第一通訊組件250、全互連組件275或分布式全互連組件295、其它狀態(tài)機(jī)組件290、以及其它邏輯、通訊或內(nèi)存組件。有廣 泛種類的方法來判斷這些各種構(gòu)件是否正確地操作。在一個(gè)示范性的實(shí)施例 中,該操作判斷通過一個(gè)復(fù)合電路組件(其中復(fù)合電路組件以其包含的 (inclusive)意義被利用,其包含在對應(yīng)的叢集200或其它叢集200內(nèi)的所有各 種的復(fù)合電路組件260、第一通訊組件250、全互連組件275或分布式全互連 組件295、其它狀態(tài)機(jī)組件2卯、以及其它邏輯、通訊或內(nèi)存組件)而被才丸行, 并且其是以下的判斷類型中的至少 一個(gè)通過該多個(gè)復(fù)合電路組件中的至少一 個(gè)復(fù)合電路組件所執(zhí)行的一個(gè)周期性的診斷;被執(zhí)行作為該多個(gè)復(fù)合電路組件
中的至少一個(gè)復(fù)合電^4a件的一個(gè)所選的背景的一個(gè)背景"^斷;或是通過具有 相同的電路組件類型的多個(gè)復(fù)合電路組件所執(zhí)行的一個(gè)比較測試。舉例而言,
各種類型的復(fù)合電路組件的每個(gè)類型(包含組件270的類型)都可以分別執(zhí)行一
項(xiàng)診斷的自我測試,接著是比較其對應(yīng)的結(jié)果。若一個(gè)第一復(fù)合電路組件的結(jié)
果舉例而言通過比較其它具有相同類型的復(fù)合電路組件260的結(jié)果而不符合 預(yù)期的結(jié)果時(shí),該第一復(fù)合電路組件被認(rèn)為是有缺陷的或是未正常操作的,因 而不內(nèi)含在可利用的資源的對映表或表列之內(nèi)(在以下的步驟515)。
SME 290(或控制器175)中的一或多個(gè)接著將會(huì)獲得及執(zhí)行一個(gè)開機(jī)程序 (步驟510),舉例而言, 一個(gè)針對于該裝置IOO所設(shè)計(jì)的程序,且儲存在一個(gè) 關(guān)連的內(nèi)存(舉例而言,快閃或其它EEPROM內(nèi)存)或是其它數(shù)據(jù)儲存組件(舉 例而言,硬盤機(jī)、光驅(qū)、等等)中,其可以是相同的IC或關(guān)連的系統(tǒng)的部份。
兩項(xiàng)重要的功能是在步驟515以及520中被執(zhí)行為操作系統(tǒng)的開機(jī)過程的 部份。SME 290的一或多個(gè)是產(chǎn)生可利用的裝置100資源的一個(gè)對映表或表 列,舉例而言,在一個(gè)叢集200或超叢集185之內(nèi)的一個(gè)表列,在叢集200 或超叢集185中的復(fù)合電路組件260、第一通訊組件250、以及其它構(gòu)件是正 常地運(yùn)作(步驟515)(舉例而言,類似于對一個(gè)內(nèi)存或磁盤驅(qū)動(dòng)器產(chǎn)生一個(gè)損壞 或良好區(qū)段的對映表)。步驟515可舉例而言是通過每個(gè)SME 290對于其對應(yīng) 的叢集200而被執(zhí)行、或是通過一或多個(gè)SME 290(預(yù)先指定或是如同在該開 機(jī)程序中被決定)對于一整個(gè)超叢集185或矩陣150而被執(zhí)行。在一個(gè)示范性 的實(shí)施例中,如在圖13中所繪且如下參考圖13所論述,步驟515是通過組合邏輯組件而被執(zhí)行,該組合邏輯組件可被設(shè)置或分散在一個(gè)復(fù)合電路組件
260、 一個(gè)叢集200、以及整個(gè)矩陣階層之內(nèi)。此外,在步驟520中, 一個(gè)主 控制器被決定,其可以是運(yùn)作為一個(gè)主控制器的一個(gè)所選的SME 290或多個(gè) SME290、或可以是一或多個(gè)額外的控制器175或其它芯片外的控制器、處理 器或狀態(tài)機(jī)。在一個(gè)示范性的實(shí)施例中, 一個(gè)主控制器是^f皮決定為一個(gè)具有最 低地址的SME 290(在當(dāng)時(shí))。
該操作系統(tǒng)透過一或多個(gè)狀態(tài)機(jī)組件290(或控制器175)以及可能的使用 者輸入,其是接著判斷或選擇哪些程序、算法或功能將被執(zhí)行(步驟525),舉 例而言,選擇先前論述的ABS、循跡控制、視訊以及導(dǎo)航程式。接著,在步 驟530中,該操作系統(tǒng)結(jié)合該所選的程序的符號的電路描述文件至該可利用的 資源(在步驟515中判斷出的),其通過指定一項(xiàng)工作及動(dòng)作(或指令)至一個(gè)所 選的復(fù)合電路組件260(作為一或多個(gè)背景)、通過連結(jié)該所選的復(fù)合電路組件 260的輸入至其它為該所選的復(fù)合電路組件260的數(shù)據(jù)來源的對應(yīng)的復(fù)合電路 組件260,以提供其輸入數(shù)據(jù)(該操作系統(tǒng)也對應(yīng)地連結(jié)這些數(shù)據(jù)來源輸出至該 所選的復(fù)合電路組件260的輸入作為數(shù)據(jù)目的地)、及/或通過連結(jié)該所選的復(fù) 合電路組件260的輸出(作為數(shù)據(jù)來源)至其它為該所選的復(fù)合電路組件260的 數(shù)據(jù)目的地的對應(yīng)的復(fù)合電路組件260,以利用由該所選的復(fù)合電路組件260 產(chǎn)生的數(shù)據(jù)(該操作系統(tǒng)也對應(yīng)地連結(jié)這些數(shù)據(jù)目的地的輸入至該所選的復(fù)合 電路組件260的輸出(作為一個(gè)數(shù)據(jù)來源))。
一旦所有的工作及動(dòng)作(或指令)被結(jié)合(指定及連結(jié))之后,該裝置100開 始該對應(yīng)的程序或動(dòng)作的執(zhí)行或運(yùn)行(步驟535),舉例而言,操作該ABS及循 跡控制系統(tǒng)、播放視訊給乘客、以及提供實(shí)時(shí)的導(dǎo)航顯示給駕駛。該結(jié)合(指 定及鏈路)過程詳細(xì)地在以下參考圖14加以論述。在每個(gè)復(fù)合電路組件260中 的程序(或操作)的執(zhí)行方法的控制在以下參考圖16更加詳細(xì)描述。
該操作系統(tǒng)也可以判斷是否需要新的或是不同的功能(步驟540),舉例而 言,當(dāng)使用者或操作者選擇一個(gè)額外的程序、或是某些情況需要在功能上的改 變時(shí),舉例而言,此是透過一個(gè)偵測一特殊狀況的傳感器。舉例而言,在一種 交通工具環(huán)境中, 一個(gè)傳感器可以偵測在駕駛或道路狀況上的改變,并且相應(yīng)地調(diào)整各種的程序。當(dāng)在步驟540中需要新的或是不同的功能時(shí),該方法再次 結(jié)合(重新指定及再次連結(jié))受影響的工作及動(dòng)作(或指令)(步驟545),并且該裝 置IOO是在這些各種的改變之下持續(xù)運(yùn)作。該工作及動(dòng)作(或指令)可被移到新 的位置、或是現(xiàn)有的或新的工作及動(dòng)作(或指令)可被加載、指定及結(jié)合。該操 作系統(tǒng)也可以重新結(jié)合或再次結(jié)合一整個(gè)程序或功能。此再次結(jié)合的步驟545 也可包含解開結(jié)合,換言之,完全地消除一項(xiàng)指定的功能,舉例而言,通過從 內(nèi)存刪除其對應(yīng)的背景。舉例而言,此種解開結(jié)合可以發(fā)生在該裝置100已經(jīng) 是在最大能力運(yùn)作,因而必須產(chǎn)生用于該新的或不同的功能的空間。此種解開 結(jié)合描述在圖1中,當(dāng)視訊功能隨著該裝置100因?yàn)镮C損壞而漸增地?fù)p失能 力時(shí)。
該裝置100是透過一或多個(gè)執(zhí)行該操作系統(tǒng)(或是作為一個(gè)內(nèi)建的自我測 試("BIST")的部份)的狀態(tài)機(jī)組件290(或控制器175)周期性地執(zhí)行一個(gè)有限的 或完整的自我測試(步驟550),以偵測在資源的可利用性上的任何改變(步驟 555)。舉例而言,該自我測試可以透露出一個(gè)BREO類型的電路組件270不再 正常地運(yùn)作,因此應(yīng)該不再是可利用于該裝置IOO之中。當(dāng)此種功能的損壞或 損失在步驟555中發(fā)生時(shí),該操作系統(tǒng)(透過該SME 2卯或控制器175)對應(yīng)地 修改可利用的資源的對映表或表列(步驟560),利用該修改過的表列或?qū)τ潮?來再次結(jié)合受影響的工作及動(dòng)作(或指令)(步驟565),并且該裝置100是在這些 各種的改變之下持續(xù)運(yùn)作。
當(dāng)在步驟555中沒有此種功能的損壞或損失發(fā)生時(shí)、或是在步驟565以后, 該方法都前進(jìn)至步驟570。在步驟570中,該裝置IOO可以繼續(xù)操作,返回至 步驟535。在動(dòng)作在步驟570中將要停止的事件中,舉例而言,由該使用者選 擇以關(guān)斷具有該裝置IOO的組件,該裝置IOO可以關(guān)閉或關(guān)機(jī),返回步驟575。
在另一示范性的實(shí)施例中,并未個(gè)別地在圖12中描繪出,該多個(gè)復(fù)合電 路組件260可被實(shí)施或適配于周期性地儲存一個(gè)當(dāng)時(shí)的目前狀態(tài),舉例而言, 其目前動(dòng)作的一個(gè)"快照(snapshot)"。接著,響應(yīng)于一個(gè)偵測到的錯(cuò)誤,該復(fù)合 電路組件260適配于擷取該儲存的狀態(tài)并且利用該儲存的狀態(tài)重新開始操作。
D.符號的電路描述文件指定及執(zhí)行時(shí)的結(jié)合在了解此背景在下,該執(zhí)行時(shí)的結(jié)合過程現(xiàn)在可加以解說。如上所指出地, 本發(fā)明的架構(gòu)和一個(gè)符號的電路描述文件(或其它程序編譯)的執(zhí)行時(shí)的結(jié)合
一起致能該裝置100的自我復(fù)原及彈性。更具體而言,當(dāng)該復(fù)合電路組件260、 SME 290、第一通訊組件250、全互連組件275或分布式全互連組件295、其 它叢集200構(gòu)件、或是指定路由或其它通訊組件(190、 210)的任一個(gè)最初未正 常地執(zhí)行(如同在該開機(jī)過程的測試部份的期間在步驟515中被判斷出)、或是 在以后的動(dòng)作期間(如同在自我測試期間被判斷出或是如同利用其它構(gòu)件判斷 出(步驟550、 555))時(shí),其分別未被置放到可利用的資源的對映表或表列、或 是從該對映表或表列被移除。若最初未正常地執(zhí)行時(shí),則該受影響的構(gòu)件絕對 不會(huì)在步驟530中指定任何功能。若該受影響的構(gòu)件原先在運(yùn)作而現(xiàn)在不再運(yùn) 作時(shí)(步驟555),其從可利用的資源的表列或?qū)τ潮肀灰瞥?,并且其指定的?能被轉(zhuǎn)移或被加載到另 一可利用的構(gòu)件并且被重新指定路由,此是個(gè)別地或是 作為步驟565的對應(yīng)的工作或指令的再次結(jié)合的部份。若已經(jīng)判斷出該資料已 經(jīng)受損,則該控制工作被通知,因而可以采取適當(dāng)?shù)膭?dòng)作。此結(jié)合過程在以下 詳細(xì)地加以解釋。 l.資源可利用性
圖13是描繪根據(jù)本發(fā)明的教示的用于在一個(gè)示范性的裝置100內(nèi)的背景 可利用性的判斷的示范性的組合邏輯電路600的方塊圖。此種電路600可內(nèi)含 在每個(gè)復(fù)合電路組件260之內(nèi)(舉例而言,在一個(gè)電路組件270、 一個(gè)組件控制 器325之內(nèi))、在一個(gè)SME 290之內(nèi)、或是作為個(gè)別的組合邏輯(未個(gè)別地在圖 8中繪出)。如上所述,用于每個(gè)類型的復(fù)合電路組件260的可利用的背景數(shù)目 被判斷出,以用于結(jié)合(或再次結(jié)合)一個(gè)程序或算法以用于在該裝置100之內(nèi) 執(zhí)行。此種判斷可以由一或多個(gè)SME 2卯、控制器(或其它處理器)175、或是 如在圖13中所繪的專用的組合邏輯電路600來完成。
請參照圖13,作為儲存在每個(gè)復(fù)合電路組件260內(nèi)的內(nèi)存330中的信息 的部份的是對于每個(gè)背景的一個(gè)狀態(tài)位以及一個(gè)第 一狀況位。該狀態(tài)位指出該 背景是否已經(jīng)被指定或是配置給一個(gè)動(dòng)作(或指令),并且因此是空閑或可利用 來被指定的(邏輯高或1)、或不是空閑而可利用來被指定的(邏輯低或O)?;蛘叩谋尘笆橇慊蚴欠橇愣慌袛喑觯酥赋鍪强衫玫?未被指定或配置動(dòng)作ID
及工作ID)或是無法利用的(已經(jīng)指定或配置動(dòng)作ID及工作ID),并且接著被 反相以被利用作為在圖13中的狀態(tài)位。該第一狀況位是指出該復(fù)合電路組件 260是操作的(邏輯高或l)或是非操作的(邏輯低或0),如同從上述的各種示范 性的自我測試過程判斷出的。對于("m,,個(gè)背景中的)每個(gè)背景而言, 一個(gè)第一 AND運(yùn)算是在對應(yīng)的狀態(tài)位及第一狀況位上被執(zhí)行,其經(jīng)由AND閘605(被 描繪為該多個(gè)AND閘6050、 6051至605(m-l),使得該AND運(yùn)算的結(jié)果指出 該背景是可利用的,并且該復(fù)合電^各組件260是正常地工作(邏輯高或1)、或 是指出該背景是不可利用的或該復(fù)合電路組件260并未正常地工作(邏輯低或 0)。
一個(gè)第二控制器(SME 290)狀況位是被利用來指出該SME 290(在該叢集 200之內(nèi))是操作的(邏輯高或l)或是非操作的(邏輯低或0),也如同從上述的各 種示范性的自我測試過程判斷出的,并且可被儲存在在該復(fù)合電路組件260 或叢集200內(nèi)的各種的內(nèi)存的任一者之中。 一個(gè)第二 AND運(yùn)算是利用此第一 AND結(jié)果(狀態(tài)及第 一狀況位)以及該第二控制器狀況位而被執(zhí)行(經(jīng)由多個(gè) AND閘6100、 6101至610(m-l)),使得該第二 AND運(yùn)算的結(jié)果指出該背景是 可利用的,并且該復(fù)合電路組件260以及SME 290是正常地工作(邏輯高或1)、 或是指出該背景是不可利用的、該復(fù)合電路組件260非正常地工作、或是該 SME 290非正常地工作(邏輯低或0)。該第一及第二 AND運(yùn)算也可被執(zhí)行為 單一組合的AND運(yùn)算,其具有至少三個(gè)輸入(狀態(tài)位、第一狀況位以及第二狀 況位)。用于每個(gè)背景的第二AND運(yùn)算的結(jié)果可被相加,舉例而言是通過利用 一個(gè)"一位熱碼(one-hot)"加法器615(或是一個(gè)SME 290或其它控制器),其是 提供每個(gè)具有一工作的SME 290的復(fù)合電路組件260空閑的背景數(shù)目。
如同所繪,此方法可以繼續(xù)往上到矩陣階層,其中對于在一個(gè)叢集200 內(nèi)的每個(gè)類型的復(fù)合電路組件260,每個(gè)復(fù)合電路組件260的空閑背景數(shù)目被 加在一起,接著對于在一個(gè)超叢集185內(nèi)的每個(gè)類型的復(fù)合電路組件260加在 一起,接著對于在一個(gè)矩陣150內(nèi)的每個(gè)類型的復(fù)合電路組件260加在一起,并且接著對于在該裝置100內(nèi)的每個(gè)類型的復(fù)合電路組件260加在一起。這些 額外的ADD運(yùn)算可利用專用的加法器(舉例而言,620、 625、 630)、或是由利 用被組態(tài)設(shè)定成用于ADD運(yùn)算且在其對應(yīng)的SME 290的控制下的復(fù)合電路組 件260而被執(zhí)行。于是,對于每個(gè)類型的復(fù)合電路組件260的可利用性計(jì)數(shù)可 在每個(gè)層級,即,在叢集200層級、超叢集185層級、矩陣150層級、以及裝 置層級被判斷且維持之。
此種在這些各種層級的計(jì)數(shù)是特別有用于判斷一個(gè)超叢集185或叢集200 是否具有可利用性以滿足一項(xiàng)區(qū)域的限制,舉例而言,當(dāng)一些動(dòng)作必須在時(shí)序 限制下利用在一個(gè)叢集200或是超叢集185內(nèi)的某種類型的復(fù)合電路組件260 被執(zhí)行時(shí)。此外,利用此種組合邏輯電路之下,復(fù)合電路組件260的可利用性 是快速地對于所有的叢集200同時(shí)且平行地被判斷且維持之,具有僅來自數(shù)個(gè) AND及ADD運(yùn)算的延遲(舉例而言,對于一整個(gè)矩陣150而言,總共兩個(gè)AND 延遲以及四個(gè)ADD延遲)。
作為一個(gè)用于可利用性判斷的替代方式是,該SME 290可被利用以查詢 或檢查在叢集200內(nèi)的對應(yīng)的復(fù)合電路組件260的所有內(nèi)存330的各種緩存 器,并且依照每個(gè)叢集的復(fù)合電路組件260的類型加總結(jié)果,其中一或多個(gè)所 選的SME 2卯接著加總對于每個(gè)超叢集185及矩陣150的結(jié)果。此種可利用 性的判斷可以是在矩陣階層中由上往下的,舉例而言是由 一個(gè)主控制器(其可 以是被指定的SME290或是控制器175)起始、或是在矩陣階層中由下往上的, 舉例而言是圖13中所繪或是由在每個(gè)叢集200內(nèi)的每個(gè)SME 290所提供。對 于熟悉電子技術(shù)者而言,將會(huì)明顯的是存在無數(shù)種的方式來提供此種可利用性 的判斷,其利用組合式、條件式或控制邏輯,其全部被視為等同的且在本發(fā)明 的范疇內(nèi)。
2.符號的電路描述文件的指定
圖14被劃分為圖14A、 14B、 14C及14D,其是描繪根據(jù)本發(fā)明的教示的 一個(gè)示范性的算法或是符號的電路描述文件的執(zhí)行時(shí)的結(jié)合過程的流程圖,并 且進(jìn)一步描繪與分散在整個(gè)裝置100的狀態(tài)機(jī)組件290相關(guān)連的重要的功能。 或者是,此功能可由一或多個(gè)額外的控制器175執(zhí)行,舉例而言,被指定為一個(gè)用于該裝置100的主控制器的控制器175。除了所描繪的結(jié)合過程之外,熟 悉此項(xiàng)技術(shù)者將會(huì)認(rèn)知到該方法的許多變化都是可利用的,并且被視為等同的 且在本發(fā)明的范疇內(nèi)。至少一個(gè)此種變化也在以下論述之。
如上所述,該裝置100是執(zhí)行一個(gè)被提供作為符號的電路描述文件的算法 的一個(gè)執(zhí)行時(shí)的結(jié)合動(dòng)作,其可被視為類似于一個(gè)用于具有可程序化的指定路 由的可程序化的資源的設(shè)置及指定路由的動(dòng)作。在此例中,該可程序化的資源 本身已經(jīng)設(shè)置在該IC上,并且該結(jié)合過程接著指定一個(gè)動(dòng)作(或指令)(作為一 個(gè)工作的部份)至一或多個(gè)可利用的資源的一或多個(gè)背景,并且提供輸入與輸 出的對應(yīng)的指定路由或連結(jié)。相對于可能花費(fèi)數(shù)小時(shí)或數(shù)天來執(zhí)行的現(xiàn)有技術(shù) 的設(shè)置及指定路由的方法,本發(fā)明的方法相當(dāng)快速地以數(shù)微秒或數(shù)毫秒至數(shù)秒 的數(shù)量級操作。
請參照圖14A(圖14A),該方法開始(開始步驟700)以對于每個(gè)類型的復(fù)合 電路組件260的可利用性計(jì)數(shù)的判斷及/或維持,如上所論述,其較佳是在叢 集、超叢集以及矩陣的層級。該第一(或是下一個(gè))動(dòng)作(即,功能或指令)作為 符號的電路描述文件組件,其被提供至一個(gè)主控制器(步驟705),其舉例而言 可以是一或多個(gè)被指定的SME 290或一或多個(gè)控制器175。該被指定的SME 290或控制器175接著判斷該動(dòng)作(功能或是指令)是否包含一個(gè)區(qū)域的或接近 限制(步驟710),并且若有的話,其前進(jìn)至步驟715。當(dāng)在步驟710中該動(dòng)作(或 指令)并不包含一個(gè)區(qū)域的限制時(shí),該動(dòng)作(或指令)被提供至對于該指令具有足 夠的資源可利用性的一個(gè)超叢集以及一個(gè)叢集層級(步驟750),舉例而言,具 有用于在該符號的電路描述文件中提供的一或多個(gè)類型的復(fù)合電路組件260 的足夠數(shù)目的可利用的背景。
可利用的一或多個(gè)叢集200之一或多個(gè)SME 290指定動(dòng)作(或指令)至該叢 集200中之一或多個(gè)可利用的復(fù)合電路組件260(步驟755),其通過儲存對應(yīng) 的信息(組態(tài)設(shè)定、工作ID、動(dòng)作ID以及來源(或目的地)工作ID及動(dòng)作ID) 在每個(gè)此種復(fù)合電路組件260的對應(yīng)的內(nèi)存330中、或是儲存在一個(gè)內(nèi)存復(fù)合 電路組件260、第二內(nèi)存組件255、或是其它該SME290以及該復(fù)合電路組件 260可存取的內(nèi)存中。儲存的信息量及位置可以隨著所選的實(shí)施例而變化。在一個(gè)示范性的實(shí)施例中,該動(dòng)作(或指令)是和對應(yīng)的連結(jié)信息(用于輸入的數(shù)據(jù)
來源或是用于輸出的數(shù)據(jù)目的地,其也利用工作ID及動(dòng)作ID來識別)一起被 本地儲存在該內(nèi)存330中(或是在該叢集200之內(nèi))作為 一個(gè)組態(tài)設(shè)定、工作ID, 動(dòng)作ID。在該指定之后,該可利用性計(jì)數(shù)被修改(步驟760),舉例而言,如同 以上對于圖13所述地自動(dòng)被修改、或是當(dāng)舉例而言各種的計(jì)數(shù)是由一個(gè)被指 定的SME290或控制器175所維持時(shí),由減量在一個(gè)緩存器中所維持的計(jì)數(shù)。 該方法接著判斷是否所有的動(dòng)作(或指令)都已經(jīng)被指定(步驟765)。當(dāng)有剩 余將被指定的動(dòng)作(或指令)時(shí),該方法接著判斷是否有剩余的可利用的資源(步 驟770)。當(dāng)在步驟770中有剩余可利用的資源時(shí),該方法返回到步驟705并且 重復(fù)之,其選擇及指定下一個(gè)動(dòng)作(或指令)。當(dāng)沒有剩余的動(dòng)作(或指令)用于 指定時(shí),該方法前進(jìn)至步驟800以開始指定路由(即,連結(jié))所有的被指定的動(dòng) 作(或指令)。
當(dāng)在步驟765中有剩余將被指定的動(dòng)作(或指令),但是在步驟770中不再 有可利用的資源時(shí),此指出該所選的算法可能無法運(yùn)作在目前組態(tài)設(shè)定(或可 利用的)裝置100上, 一個(gè)錯(cuò)誤或例外訊息被產(chǎn)生(步驟775),并且該方法可以 結(jié)束,返回步驟780,因?yàn)樵撍x的程序的符號的電if各描述文件目前無法纟皮指 定。在該事件中,有許多可能的動(dòng)作途徑。舉例而言,被指定的SME 290或 控制器175可以刪除正在消耗或利用資源的較低優(yōu)先級的程序或動(dòng)作,以提供 空間給該所選的程序或動(dòng)作并且容許該所選的程序4丸行在該裝置100上。在其 它實(shí)例中,該被指定的SME 290或控制器175可以選擇可能是可在不移除此 種其它程序下被指定的程序的另一版本。在其它實(shí)例中,其可以指出對于該所 選的應(yīng)用需要一個(gè)具有較多資源的較大裝置100。
當(dāng)在步驟710中該所選的動(dòng)作(或指令)包含一個(gè)區(qū)域的限制時(shí),該方法前 進(jìn)至步驟715,即如在圖14B中所繪者。此種區(qū)域的限制可具有格式為舉例而
區(qū)域3超叢集
區(qū)域1叢集動(dòng)作Il, 12
II12
結(jié)束區(qū)域
區(qū)域2叢集動(dòng)作I3, 14
13
14
結(jié)束區(qū)域 結(jié)束區(qū)域
其中一個(gè)超叢集區(qū)域的(接近)限制包含兩個(gè)叢集層級的區(qū)域的限制,每個(gè) 限制已經(jīng)包含受到該限制的動(dòng)作(或指令)("受限的動(dòng)作")。如上文所述,區(qū)域 201限制也可以被使用。如在此實(shí)例中所繪,動(dòng)作(或指令)I1及I2(作為符號的 電路描述文件組件)必須被指定在相同的叢集200之內(nèi),并且動(dòng)作(或指令)13 及14(作為符號的電路描述文件組件)必須被指定在相同的叢集200之內(nèi)(作為 區(qū)域2,其可以是相同或是不同于Il及12的區(qū)域1叢集的叢集)。然而,兩個(gè) 叢集200都必須是在相同的超叢集中,即如納入在該超叢集限制之內(nèi)(區(qū)域3)。
在步驟715中,該被指定的SME 2卯或控制器175判斷該限制是否為一 項(xiàng)超叢集限制,其將會(huì)需要該組受限的動(dòng)作被指定在相同的超叢集185之內(nèi)。 當(dāng)在步驟715中該區(qū)域的限制是用于一個(gè)超叢集時(shí),該被指定的SME 290或 控制器175提供該超叢集限制至所有符合該限制的可利用性要求的可利用的 超叢集185,并且暫時(shí)指定或標(biāo)示那些一或多個(gè)超叢集為候選者(步驟720)。 在步驟720以后、或是當(dāng)在步驟715中該限制并非一個(gè)超叢集限制時(shí),該受限 的動(dòng)作是被提供至所有符合該第一叢集限制的可利用的叢集200(若為先前的 限制所需的話,則在一或多個(gè)超叢集之內(nèi)),舉例而言是各種符合該實(shí)例的區(qū) 域l限制的叢集,并且那些叢集200暫時(shí)被指定為候選者(步驟725)。若有的 話,下一組叢集層級的受限的動(dòng)作被提供至所有符合下一個(gè)叢集限制的可利用 的叢集200(若為先前的限制所需的話,則在一或多個(gè)超叢集之內(nèi)),舉例而言 是各種符合該實(shí)例的區(qū)域2限制的叢集,并且那些叢集200也暫時(shí)被指定為候 選者(步驟730)。此外,那些先前曾經(jīng)是候選者,但是現(xiàn)在并不包含足夠可利 用的叢集來符合這些額外的限制的超叢集或叢集現(xiàn)在可被釋放,且不再被指定為對于該些區(qū)域的限制的候選者。雖然未分別描繪,相同的方法也可以采用于
任何區(qū)域201限制。當(dāng)有額外的限制將被處理時(shí)(步驟735),該方法返回到步 驟730,并且繼續(xù)該暫時(shí)的指定過程。
當(dāng)在步驟735中沒有進(jìn)一步限制需要被處理時(shí),該方法判斷是否已經(jīng)找到 一或多個(gè)符合(超叢集及/或叢集的層級)(步驟740)。當(dāng)在步驟740中已經(jīng)找到 一或多個(gè)符合時(shí),該被指定的SME 290或控制器175選擇至少一個(gè)此種符合, 指定該些受限的動(dòng)作(或指令)至該所選的候選組,釋放所有其它的初步的指 定,并且前進(jìn)至步驟760,以如上所論述地修改該可利用性計(jì)數(shù)且繼續(xù)該指定 過程。當(dāng)在步驟740中沒有找到符合時(shí),此指出該所選的算法可能無法運(yùn)作在 目前組態(tài)設(shè)定(或可利用的)裝置100上,該方法返回到步驟775并且產(chǎn)生一個(gè) 錯(cuò)誤或例外訊息,并且該方法可以結(jié)束,返回步驟780,因?yàn)榫哂性撔┫拗频?所選的程序的符號的電路描述文件目前無法被指定。如上所述,在該事件中, 有許多可能的動(dòng)作途徑。舉例而言,被指定的SME 290或控制器175可以刪 除較低優(yōu)先級的程序或動(dòng)作、或是可利用該程序的可能較容易被指定的另一版 本。
3.執(zhí)行時(shí)的結(jié)合
當(dāng)在步驟765中所有的動(dòng)作(或指令)都已經(jīng)-故指定時(shí),該些動(dòng)作(或指令) 可被連接或指定路由,以建立在該裝置100的動(dòng)作期間將會(huì)被利用的所有數(shù)據(jù) 通訊路徑,以執(zhí)行該所選的程序或算法。如上所指出地,每個(gè)動(dòng)作(或指令)具 有和用于一個(gè)所選的復(fù)合電路組件260的所選的背景的組態(tài)設(shè)定一起用符號 儲存的輸入或輸出信息。更明確地說,該輸入或輸出信息有效地被儲存為指標(biāo), 其中一個(gè)工作ID及動(dòng)作ID指向另 一工作ID及動(dòng)作ID以作為其數(shù)據(jù)來源(用 于輸入數(shù)據(jù))或是數(shù)據(jù)目的地(以提供輸出數(shù)據(jù))。此種信息是用符號或是通稱地 被儲存,因?yàn)樵谠搫?dòng)作(或指令)指定之前,用于該數(shù)據(jù)來源或凄t據(jù)目的地的實(shí) 際的地址是未知的。假設(shè)數(shù)據(jù)來源信息被一致地利用、或是數(shù)據(jù)目的地信息被 一致地利用時(shí),只需要一組此種信息,盡管兩者都可被利用以潛在地增加彈性。 根據(jù)該示范性的實(shí)施例,對于每個(gè)背景,此種數(shù)據(jù)來源或數(shù)據(jù)目的地信息被利 用來連接一個(gè)復(fù)合電路組件260的數(shù)據(jù)輸入(用于輸入隊(duì)列320),以及另一復(fù)合電路組件260(或是相同的復(fù)合電路組件260,以用于一個(gè)回授的組態(tài)設(shè)定) 的一個(gè)背景的資料輸出375(經(jīng)由輸出隊(duì)列315)。此是產(chǎn)生直接的數(shù)據(jù)聯(lián)機(jī)(在 一個(gè)叢集200之內(nèi)的電路交換)或是封包指定路由的(在叢集之間的混合式封包 指定路由以及電路交換的)數(shù)據(jù)聯(lián)機(jī)用于數(shù)據(jù)流,并且在任一種情形中,數(shù)據(jù) 是在不需要數(shù)據(jù)儲存在緩存器中以及數(shù)據(jù)從緩存器提取的中間或個(gè)別的步驟 之下被提供。根據(jù)所選的實(shí)施例,諸如用于超叢集185C及電路叢集200C,該 些數(shù)據(jù)聯(lián)機(jī)可以全部為電路交換的,其經(jīng)過叢集隊(duì)列245A及對應(yīng)的完全的或 分散的互連275、 295。
在步驟765以后,該指定路由的過程開始(步驟800),即如在圖14C中所 繪者。在圖14C所繪的示范性的實(shí)施例中,該過程是"由下而上的",其開始在 叢集200的層級(或者區(qū)域201及叢集200C層級),并且隨需要地前進(jìn)到較高 的層級(超叢集及矩陣層級)。未個(gè)別繪出的是,該過程也可以從一種"由而上下 的"觀點(diǎn)起始,舉例而言由該被指定的SME290或控制器175傳送一個(gè)請求至 該叢集200的SME290,以開始步驟800的指定路由的過程。
請參照圖14C的步驟800,對應(yīng)的叢集200之一或多個(gè)SME 290開始該 指定路由的過程,其通過選^l奪一個(gè)復(fù)合電路組件260的一第一背景的一個(gè)動(dòng)作 (或指令),并且決定^^皮儲存為該所選的動(dòng)作(或指令)的部份的來源(或目的地) 工作及動(dòng)作識別符。在示范性的實(shí)施例中,此過程可由每個(gè)叢集200的每個(gè) SME 2卯被執(zhí)行為一個(gè)平行的方法,此是產(chǎn)生非常高度有效率的結(jié)合指定路由 的過程。于其它實(shí)例的實(shí)施例中,假如并非每一個(gè)叢集200具有一個(gè)SME 290, 該超叢集185內(nèi)的另一個(gè)SME290可以被使用。
如上所指出地,在所選的實(shí)施例中,這些來源(或目的地)工作及動(dòng)作ID 被儲存在該復(fù)合電路組件260的組件接口及控制280的內(nèi)存330中。在替代的 實(shí)施例中,該來源(或目的地)工作及動(dòng)作識別符可被儲存在其它內(nèi)存組件中, 舉例而言, 一個(gè)內(nèi)存類型的復(fù)合電路組件260M、第二內(nèi)存組件255、或是其 它可內(nèi)含在一個(gè)叢集200內(nèi)的內(nèi)存組件。為了助于指定路由,該內(nèi)存330(或其 它內(nèi)存組件)可被實(shí)施為一個(gè)如上所述的內(nèi)容可尋址的內(nèi)存("CAM")、或是實(shí) 施為任何其它類型的內(nèi)存。因此,在步驟805中,為了在階層的第一層級指定
78路由, 一個(gè)SME 290可以依照該第一背景(將被指定路由的復(fù)合電路組件260 的背景)的這些來源(或目的地)工作及動(dòng)作識別符來檢查在其叢集200內(nèi)的所 有的內(nèi)存(330、 255、 260M、等等),以找出符合這些來源(或目的地)工作及動(dòng) 作識別符的另 一第二背景的對應(yīng)的動(dòng)作(或指令)。當(dāng)其它形式的內(nèi)存(舉例而 言,SDRAM)被利用來取代CAM時(shí),則該SME 290可以執(zhí)行內(nèi)存(330、 255、 260M、或是其它儲存該工作ID及動(dòng)作ID的內(nèi)存)的搜尋(舉例而言是二分搜 尋),以找出符合這些來源(或目的地)工作及動(dòng)作識別符的另一第二背景的對應(yīng) 的動(dòng)作(或指令)。
當(dāng)在步驟810中, 一個(gè)復(fù)合電路組件260的一第二背景的符合的動(dòng)作(或 指令)(具有對應(yīng)的工作及動(dòng)作識別符)已經(jīng)在一個(gè)內(nèi)存(330、 255、 260M、等等) 之內(nèi)找到時(shí),該SME 2卯于是知道指定路由給該所選的第一背景至此具有符 合的或?qū)?yīng)的動(dòng)作(或指令)的第二背景。因此,在步驟815中,當(dāng)來源工作及 動(dòng)作識別符被儲存時(shí),該SME 290指定路由給該第一背景(作為一個(gè)資料目的 地)的輸入至該第二背景(作為一個(gè)資料來源)的對應(yīng)的輸出,并且當(dāng)目的地工作 及動(dòng)作識別符被儲存時(shí),該SME 290指定路由給該第一背景(作為一個(gè)資料來 源)的輸出至該第二背景(作為一個(gè)資料目的地)的對應(yīng)的輸入。在該叢集200 或區(qū)域201之內(nèi),該SME 290是經(jīng)由全互連組件275或分布式全互連組件295 來建立這些內(nèi)部的叢集聯(lián)機(jī)。在步驟815之后,當(dāng)在步驟820中有額外的動(dòng)作 (或指令)將被指定路由時(shí),該方法反復(fù)地繼續(xù),其返回至步驟800,其中一個(gè) SME 290或其它控制器選擇下一個(gè)將被指定路由的動(dòng)作(或指令)。
當(dāng)在步驟810中, 一個(gè)復(fù)合電路組件260的一第二背景的符合的動(dòng)作(或 指令)(具有對應(yīng)的工作及動(dòng)作識別符)未在其叢集200的內(nèi)存(330、 255、 260M、 等等)之內(nèi)找到時(shí),該SME 290于是知道該對應(yīng)的資料來源或目的地并未在其 叢集200(被稱為第一叢集200)之內(nèi)。因此,在步驟825中,該SME 290: (1) 指定路由給該所選的第一背景至該第一叢集200的外圍(至第一通訊組件250 中的一個(gè),以用于經(jīng)由互連155,透過全互連組件275、分布式全互連組件295、 或是訊息管理器265的數(shù)據(jù)發(fā)送、或否則是直接至該第一通訊組件250);以及 (2)產(chǎn)生一個(gè)指定路由請求(查詢)至該超叢集層級的控制器(其可以是一個(gè)具有此被指定的任務(wù)的被指定的SME 2卯或控制器175),以在其超叢集185的另 一叢集200中找出一可能具有符合的或?qū)?yīng)的動(dòng)作(或指令)的第二背景。從該 第一叢集200的SME 2卯的角度來看,其第一背景的指定路由是完成的,并 且其可以繼續(xù)其它背景(動(dòng)作(或指令))(若有的話)的指定路由,返回至步驟 820,其中該超叢集控制器(被指定的SME 290或控制器175)接著前進(jìn)至步驟 830。
在步驟830中,在已經(jīng)接收到一個(gè)指定路由請求(指派該第二背景)之下, 該超叢集控制器傳送一項(xiàng)請求或查詢至在其超叢集185內(nèi)的所有的(其它)叢集 200,給那些SME 290來判斷該對應(yīng)的動(dòng)作(或指令)是否位在其內(nèi)存(330、 255、 260M、等等)的一個(gè)中,用于在階層的第二層級下指定路由。當(dāng)其中一個(gè)這些 其它叢集200(作為一個(gè)第二叢集200)具有該符合的或?qū)?yīng)的動(dòng)作(或指令)(即, 具有該第一背景的來源(或目的地)工作及動(dòng)作識別符)作為其中一個(gè)復(fù)合電路 組件260的一第二背景時(shí)(步驟835),此第二叢集200于是知道此第二背景是 用于是當(dāng)被指定路由往返另一第一叢集200的資料的來源或目的地。因此,在 步驟840中,該第二叢集200的第二 SME 290將此第二背景指定路由至該第 二叢集200的外圍(至第一通訊組件250中的一個(gè),以用于經(jīng)由互連155,透過 全互連組件275、分布式全互連組件295、或是訊息管理器265的數(shù)據(jù)發(fā)送、 或否則是直接至該第一通訊組件250),并且傳送一個(gè)對應(yīng)的訊息至該超叢集控 制器(被指定的SME290或控制器175),此是指出或提供信息為其擁有該具有 該符合的或是對應(yīng)的動(dòng)作(或指令)的第二背景。于是,對于該些對應(yīng)的背景, 該超叢集控制器在該第一叢集200以及第二叢集200之間產(chǎn)生一對應(yīng)的連結(jié) (步驟845),舉例而言是通過儲存對應(yīng)的指定路由信息在一個(gè)第二通訊組件210 中,并且該叢集至叢集的指定路由是完成的。從該第二叢集200的SME 290 的觀點(diǎn)來看,其指定路由也是完成的,并且其可以繼續(xù)它的其它背景(動(dòng)作(或 指令))(若有的話)的指定路由,其也返回至步驟820。
雖然未分別描繪,于另一個(gè)變異形式之中,諸如對于超叢集185C而言, 于該超叢集185C內(nèi)之一或多個(gè)SME290可以實(shí)施一個(gè)叢集200C內(nèi)或于整個(gè) 超叢集185C內(nèi)的所有如此的指定路由,其全部透過各種的叢集隊(duì)列245A。參照圖18, 一個(gè)SME 290可以提供(l)于一個(gè)所選的區(qū)域201B內(nèi)的對應(yīng)指 定路由,諸如直接自CE4至CE5而來,舉例而言,其透過完全的或分散的互 連275、 295; (2)于一個(gè)所選的電路叢集200C內(nèi)的對應(yīng)指定路由,諸如直接自 CE4至CE15而來,舉例而言,其透過完全的或分散的互連275、 295及叢集 隊(duì)列245A15; (3)至一個(gè)所選的相鄰電路叢集200C的對應(yīng)指定路由,諸如透 過完全的或分散的互連275、 295、任何中介的(區(qū)域至區(qū)域)叢集隊(duì)列245A及 接著經(jīng)由一個(gè)周圍的叢集隊(duì)列245A,諸如叢集隊(duì)列245A10,而直接自CE4 至該超叢集185C內(nèi)的另一個(gè)叢集200C的另一個(gè)復(fù)合電路組件260; (4)至該 超叢集185C內(nèi)的一個(gè)所選的非相鄰電路叢集200C的對應(yīng)指定路由,諸如透 過完全的或分散的互連275、 295、任何中介的(區(qū)域至區(qū)域)叢集隊(duì)列245A及 典型地多個(gè)周圍的叢集隊(duì)列245A,而直接自CE4至另一個(gè)叢集200C的另一 個(gè)復(fù)合電路組件260;及(5)透過一個(gè)訊息管理器265至不在該超叢集185C內(nèi) 的一個(gè)電路叢集200C的對應(yīng)指定路由。
舉例而言,當(dāng)透過任一個(gè)叢集隊(duì)列245A而指定^^由時(shí),任何所選的叢集 隊(duì)列245A(具有一個(gè)對應(yīng)的選定背景)為一個(gè)用于產(chǎn)生復(fù)合電路組件260的所 選數(shù)據(jù)背景的數(shù)據(jù)目的地,且接著為一個(gè)用于消耗復(fù)合電路組件260的所選數(shù) 據(jù)背景或者叢集隊(duì)列245A的另 一個(gè)所選背景(諸如透過多個(gè)叢集隊(duì)列245A的 數(shù)據(jù)指定路由,諸如用于叢集200C間的數(shù)據(jù)指定路由,舉例而言,其使用來 源為基礎(chǔ)的或目的地為基礎(chǔ)的通訊,如于本文所敘述)的數(shù)據(jù)來源。
在步驟835中,當(dāng)在該所選的第一超叢集185內(nèi)的這些其它叢集200在其 —個(gè)復(fù)合電路組件260的一第二背景中都不具有該符合的或是對應(yīng)的動(dòng)作(或 指令)(以及第一背景的來源(或目的地)工作及動(dòng)作識別符)時(shí),該超叢集控制器 于是知道該對應(yīng)的數(shù)據(jù)來源或目的地并未在其超叢集185(被稱為第一超叢集 185)之內(nèi)。因此,在步驟860中(在圖14D中描繪),該第一超叢集控制器(1) 指定路由給該第一背景至該第一超叢集185的外圍(即,至其中一個(gè)第二通訊 組件210或至訊息管理器265之一);以及(2)產(chǎn)生一項(xiàng)指定路由的請求至該矩 陣層級的控制器(其也可以是一個(gè)具有此指定的任務(wù)的被指定的SME 290或控 制器175),以在其矩陣150的另一超叢集185中找出一第二背景可能具有該符合的或?qū)?yīng)的動(dòng)作(或指令),以用于在階層的第三層級下指定路由。從該第一
超叢集185的被指定的SME 290或控制器175的觀點(diǎn)來看,其指定路由是完 成的,并且該方法返回到步驟820,以隨可能需要地繼續(xù)用于其它動(dòng)作的指定 路由的過程,并且也前進(jìn)至步驟865。
在已經(jīng)收到一項(xiàng)指定路由的請求(指派該第二背景),在步驟865中,該矩 陣控制器傳送一項(xiàng)請求或查詢至所有在其矩陣150內(nèi)的(其它)叢集200,以供 那些SME290來判斷該對應(yīng)的動(dòng)作(或指令)是否位在其中一個(gè)內(nèi)存(330、 255、 260M、等等)中,以用于在階層的此第三層級下指定路由。此指定路由請求可 被直接傳送至叢集200的SME290、或是可經(jīng)由超叢集控制器而被傳送。當(dāng)這 些其它叢集200中之一作為一個(gè)第二叢集200而具有該符合的或?qū)?yīng)的動(dòng)作 (或指令)(即,具有該第一背景的來源(或目的地)工作及動(dòng)作識別符)作為其一個(gè) 復(fù)合電路組件260的一第二背景時(shí)(步驟870),此第二叢集200于是知道此第 二背景是用于將被指定路由往返另 一第一叢集200的資料的來源或目的地。因 此,在步驟875中,該第二叢集200的第二SME 290指定路由此第二背景至 該第二叢集200的外圍(至其中一個(gè)第一通訊組件250,用于經(jīng)由互連155,透 過全互連組件275、分布式全互連組件295、訊息管理器265的數(shù)據(jù)發(fā)送、或 是直接至該第一通訊組件250),并且傳送一個(gè)對應(yīng)的訊息至該矩陣控制器(被 指定的SME 290或控制器175),其指出或提供信息為其擁有該具有該符合的 或?qū)?yīng)的動(dòng)作(或指令)的第二背景。于是,該矩陣控制器在該第一叢集200以 及第二叢集200之間產(chǎn)生一個(gè)對應(yīng)的連結(jié),以用于該對應(yīng)的背景(步驟880), 舉例而言通過儲存對應(yīng)的指定路由信息在一個(gè)第三通訊組件190以及一個(gè)第 二通訊組件210中,并且該超叢集至超叢集的指定路由是完成的。從第二叢集 200的SME290的觀點(diǎn)來看,其指定路由也是完成的,因而其可以繼續(xù)它的其 它背景(動(dòng)作(或指令))(若有的話)的指定路由,而同樣返回至步驟820。
在步驟870中,當(dāng)在該所選的第一矩陣150內(nèi)的這些其它叢集200在其一 個(gè)復(fù)合電路組件260的一第二背景中都不具有該符合的或是對應(yīng)的動(dòng)作(或指 令)(以及第一背景的來源(或目的地)工作及動(dòng)作識別符)時(shí),該矩陣控制器于是 知道該對應(yīng)的數(shù)據(jù)來源或目的地并未在第一矩陣150之內(nèi)。因此,在步驟885中,該第一矩陣150: (1)指定路由給該第一背景至該第一矩陣150的外圍(即, 至其中一個(gè)第三通訊組件190);以及(2)產(chǎn)生一個(gè)指定路由的請求至其它矩陣 層級的控制器(也可以是一個(gè)具有此指定的任務(wù)的被指定的SME 290或控制器 175),以在該組件100的另一矩陣150中找出一可能具有該符合的或?qū)?yīng)的動(dòng) 作(或指令)的第二背景,以用于在階層的第四層級下指定路由。從該第一矩陣 150的被指定的SME290或控制器175的觀點(diǎn)來看,其指定路由是完成的,并 且該方法返回至步驟820,以隨可能需要地對于其它動(dòng)作繼續(xù)該指定路由的過 程,并且該方法在該裝置100的層級下隨需要地重復(fù)步驟865-880。
當(dāng)所有的動(dòng)作(或指令)都已經(jīng)在先前被指定時(shí),該符合的或?qū)?yīng)的動(dòng)作(或 指令)是在其中一個(gè)矩陣150的一個(gè)超叢集185的一個(gè)叢集200中的一個(gè)復(fù)合 電路組件260的一第二背景中,并且該方法是隨需要地向上搜尋至矩陣或裝置 層級,其中那些對應(yīng)的矩陣或裝置層級的控制器(被指定的SME290或控制器 175)是利用互連155來指定路由至其對應(yīng)的外圍(舉例而言,第三通訊組件190 以及任何中介的第二通訊組件210),并且傳送查詢至其對應(yīng)的較低層級的超叢 集185與叢集200。
于是,所有的動(dòng)作(或指令)都變成被指定路由的,此是分別連接所有的數(shù) 據(jù)來源或數(shù)據(jù)目的地以及其對應(yīng)的數(shù)據(jù)目的地或數(shù)據(jù)來源,其是在相同的叢集 200之內(nèi)(步驟815)或是在相同的超叢集185內(nèi)的叢集200之間(步驟825、 840 及845)、或是在相同的矩陣150之內(nèi)(步驟875及880)、或只是在該裝置100 之內(nèi)。當(dāng)所有的動(dòng)作(或指令)都已經(jīng)在步驟820中被指定路由時(shí),該被指定的 SME 290或控制器175對于該特定的工作ID設(shè)定或致能該執(zhí)行狀態(tài)(步驟 850)。當(dāng)有剩余將被指定路由的動(dòng)作的 一個(gè)程序或算法的額外的工作(步驟 855),該方法持續(xù),其返回至步驟800,并且當(dāng)沒有其它具有將被指定路由的 動(dòng)作的工作時(shí),該方法可以結(jié)束,其返回步驟780。也應(yīng)該注意的是,當(dāng)所有 的工作都已經(jīng)被指定路由時(shí),對于該特定的工作設(shè)定或致能該執(zhí)行狀態(tài)的步驟 850也可在步驟855之后被執(zhí)行。
如下所論述,該執(zhí)行狀態(tài)是一個(gè)利用在用于一背景的組態(tài)設(shè)定字中的字段 (儲存在內(nèi)存330中),并且被該組件控制器325利用來判斷該電路組件270是否應(yīng)該執(zhí)行一個(gè)所選的背景(即,執(zhí)行對應(yīng)的動(dòng)作)。在此例中,其指出該工作 已經(jīng)完全被組態(tài)設(shè)定,其中所有的動(dòng)作(或指令)都被指定且指定路由,使得假 設(shè)其它條件也符合時(shí),其可以備妥以執(zhí)行,即如下所論述者。該執(zhí)行狀態(tài)也可 被利用來開始或停止所選的工作,或是清除一個(gè)所選的工作,舉例而言,將一 個(gè)新的工作加載在其位置中。
此外,對于熟悉電子技術(shù)者而言,將會(huì)明顯的是圖14的方法的一些變化 可等同地被實(shí)施且在本發(fā)明的范疇內(nèi)。舉例而言,在該動(dòng)作(或指令)并未本地 儲存在內(nèi)存330中、或是在內(nèi)存復(fù)合的組件260中、或是在第二內(nèi)存組件255 中,而是在中心地被儲存在一個(gè)別的內(nèi)存中的事件中, 一種由上往下的方法可 被利用。繼續(xù)該實(shí)例來說,舉例而言是矩陣層級的控制器的最高層級的控制器 (被指定的SME290或控制器175)可以開始該指定路由的過程、;險(xiǎn)查該儲存及 連結(jié)的動(dòng)作(或指令),決定在該各種的叢集之內(nèi)以及之間的指定路由,并且傳 送各種的組態(tài)設(shè)定(作為背景)至受影響的復(fù)合電路組件260。作為另一變化的 是,舉例而言是矩陣層級的控制器的最高層級的控制器(被指定的SME290或 控制器175)可以只是傳送該對應(yīng)的動(dòng)作(或指令)至該叢集200,其接著開始如 同以上參考圖14C與14D所述的指定路由的過程。
另外,盡管 一或多個(gè)控制器175可被利用以實(shí)施該指定以及指定路由的過 程,但同樣明顯的是, 一個(gè)被指定的SME 290的使用是一個(gè)較強(qiáng)健且彈性的 解決方案。在這些情況中,(對應(yīng)的多個(gè)叢集200的)多個(gè)SME290的任一個(gè)都 可以執(zhí)行超叢集185的控制器、矩陣150的控制器、或是裝置100的控制器的 各種的角色。在對于一個(gè)特定的SME 290損害或損壞的事件中,無數(shù)的其它 SME 290都是可利用來承擔(dān)這些角色的任一個(gè)角色。
顯著地,對于此指定以及指定路由的過程牽涉到的時(shí)間是線性相關(guān)于動(dòng)作 (或指令)的數(shù)目"k",并且相當(dāng)快速地進(jìn)行,因?yàn)槠涫且源罅科叫械倪^程被同時(shí) 執(zhí)行在每個(gè)叢集200之內(nèi)。舉例而言,依據(jù)牽涉到的"n,,個(gè)叢集、超叢集以及 矩陣層級數(shù)目,對于將被傳送的訊息以及將被完成的指定路由至每個(gè)層級的對 應(yīng)的外圍而言,每個(gè)背景(或指令)的最壞情況的時(shí)間量典型是3n+l或是4n+l 個(gè)頻率或計(jì)算周期。此是明顯對比于現(xiàn)有技術(shù)的指定路由方法,其中該指定路由時(shí)間最少是k2的一個(gè)函數(shù),并且若被最佳化,其是非決定性的,因而具有 一不可預(yù)期的指定路由時(shí)間。
本發(fā)明的此指定及結(jié)合過程的另一優(yōu)點(diǎn)是指定及指定路由給工作及動(dòng)作 (或指令)至多個(gè)異質(zhì)的叢集200的能力。更具體而言,叢集200并不需要是相 同的,因而可以是相當(dāng)不同的,其中不同類型的復(fù)合電路組件260的混合,而 不沖擊到程序化該所產(chǎn)生的組件的能力。舉例而言,任何具有許多乘法器類型 的復(fù)合電路組件260的叢集200都將會(huì)具有更大的可利用性于乘法運(yùn)算的指 定,使得那些類型的動(dòng)作(或指令)將會(huì)自動(dòng)地被吸引至那些類型的叢集200。 此外,對于同質(zhì)或異質(zhì)的叢集200而言,指定及結(jié)合時(shí)間將會(huì)是相同的。
如上參考圖1所論述,在在一個(gè)叢集200之內(nèi)的一或多個(gè)構(gòu)件,舉例而言, 一個(gè)復(fù)合電路組件260或SME 290損壞或失效的事件中,該叢集200或個(gè)別 的構(gòu)件可被指定或標(biāo)示為無法利用的。在這些情況下,被指定至一個(gè)受影響的 復(fù)合電路組件260的任何工作及/或動(dòng)作(或指令)都應(yīng)該被設(shè)置一或多個(gè)其它 復(fù)合電路組件260,并且此可用廣泛種類的方式被執(zhí)行。
圖15是描繪根據(jù)本發(fā)明的教示的一個(gè)第一示范性的重新指定及再次結(jié)合 過程的流程圖。在此第一解決方式中,其開始以步驟900,舉例而言,由于在 自我測試期間的失效指示, 一或多個(gè)SME 290(若未受該損壞或失效影響的話, 則是來自在相同的叢集200之內(nèi)、或是來自另 一叢集200)標(biāo)示或指定該受影響 的復(fù)合電路組件260為無法利用的(步驟905),并且導(dǎo)引該受影響的復(fù)合電路 組件260的組件控制器325以停止執(zhí)行所有的背景(步驟910),其典型是利用 該執(zhí)行狀態(tài)位。該SME 290也將傳送一個(gè)訊息至連結(jié)的數(shù)據(jù)來源的復(fù)合電路 組件260,導(dǎo)引那些復(fù)合電路組件260以停止產(chǎn)生數(shù)據(jù)并且停止傳輸該數(shù)據(jù)至 該受影響的復(fù)合電路組件260(步驟915)。該SME 290接著判斷(若有的話)其 它復(fù)合電路組件260是否可利用來取代該受影響的功能(即,曾經(jīng)由該受影響 且現(xiàn)在無法利用的復(fù)合電路組件260所執(zhí)行的功能),并且復(fù)制儲存在該受影 響的復(fù)合電路組件260的內(nèi)存330中的背景至具有相同類型的具有可利用的背 景的可利用的復(fù)合電路組件260之一或多個(gè)內(nèi)存330(步驟920)。在一個(gè)示范 性的實(shí)施例中,該SME 290可儲存及維持一個(gè)轉(zhuǎn)換表,該轉(zhuǎn)換表指出哪些復(fù)合電路組件260具有可利用性,且具有用于此種功能傳輸?shù)乃桀愋偷碾娐方M 件270。該SME2卯也可以復(fù)制相關(guān)連的輸入隊(duì)列320的內(nèi)容至可利用的復(fù)合 電路組件260的輸入隊(duì)列320(步驟925);或者是,對于某些類型的實(shí)時(shí)數(shù)據(jù), 該輸入數(shù)據(jù)可被拋棄、或等同的是被容許保持在該相關(guān)連的輸入隊(duì)列中,其中 動(dòng)作利用新產(chǎn)生的數(shù)據(jù)而重新繼續(xù)在可利用的復(fù)合電路組件260。
該SME 290接著重新指定路由給往返于該可利用的復(fù)合電路組件260的 聯(lián)機(jī)(步驟930),舉例而言通過進(jìn)行如上所論述的來源(或目的地)工作及動(dòng)作識 別符的搜尋,并且此外,若來源及目的地工作及動(dòng)作識別符信息都未被儲存, 則在其它復(fù)合電路組件260的其它內(nèi)存330中執(zhí)行一項(xiàng)對于該受影響的動(dòng)作 (或指令)的搜尋,以決定對應(yīng)的數(shù)據(jù)目的地(或來源)來完成該指定路由。如上 所論述的其它指定路由步驟也可隨需要地被利用(舉例而言,用于在叢集200 之間指定路由)。在步驟935中,該SME290接著重置被轉(zhuǎn)移的背景的對應(yīng)的 執(zhí)行狀態(tài)位,以重新致能該受影響的動(dòng)作(或指令)由可利用的復(fù)合電if各組件 260的執(zhí)行,并且該重新指定及再次結(jié)合過程可以結(jié)束,其返回步驟940。
在一第二解決方式中,該工作可被重新指定及再次結(jié)合(舉例而言,如同 在圖12至14中所繪),并且假設(shè)該受影響的構(gòu)件是不再可利用的,則沒有動(dòng) 作(或指令)將會(huì)被指定給它們。此種解決方式也具有保存任何局部性限制的優(yōu) 點(diǎn),因?yàn)榇朔N限制將會(huì)內(nèi)含在該工作的動(dòng)作(或指令)之內(nèi)。此外,由于該指定 以及結(jié)合過程的持續(xù)期間是線性相關(guān)于動(dòng)作(或指令)的數(shù)目,此重新指定及再 次結(jié)合過程是以最小的中斷快速地進(jìn)行,特別當(dāng)受影響的動(dòng)作(或指令)的數(shù)目 是相對較小的時(shí)候。作為此過程的部份的是,其中一個(gè)被指定的SME 290也 可以導(dǎo)引受影響的復(fù)合電路組件260的組件控制器325來停止執(zhí)行所有的背 景,傳送一個(gè)訊息至連結(jié)的數(shù)據(jù)來源的復(fù)合電路組件260以導(dǎo)引該來源復(fù)合電 路組件260停止產(chǎn)生數(shù)據(jù)并且停止傳輸數(shù)據(jù)至該受影響的復(fù)合電路組件260, 復(fù)制該相關(guān)連的輸入隊(duì)列320的內(nèi)容至該新指定的可利用的復(fù)合電路組件 260,并且重置用于該可利用的復(fù)合電路組件260的轉(zhuǎn)移的背景的執(zhí)行狀態(tài)位。
因此, 一個(gè)已經(jīng)對于該裝置100而被編譯為一個(gè)符號的電路描述文件的程 序或算法已經(jīng)被指定及指定路由在該裝置100之內(nèi),此是產(chǎn)生所有的復(fù)合電路組件260組態(tài)設(shè)定(被儲存為背景)以及數(shù)據(jù)路徑聯(lián)機(jī)(經(jīng)由全互連組件275、分 布式全互連組件295、或是互連155)。盡管該裝置100已經(jīng)被指定以實(shí)時(shí)地致 能此種指定以及指定路由,但是不需要被實(shí)時(shí)地執(zhí)行,而是可事先被執(zhí)行,所 有此種指定以及指定路由都是在本發(fā)明的范疇內(nèi)。在此背景說明下,在該裝置 100內(nèi)的執(zhí)行的動(dòng)作及控制現(xiàn)在可加以解說。 E.裝置執(zhí)行的動(dòng)作及控制
圖16是描繪根據(jù)本發(fā)明的教示的一個(gè)示范性的組態(tài)設(shè)定及控制字1000 的圖。如在圖16中所繪,該示范性的組態(tài)設(shè)定字1000是由多個(gè)數(shù)據(jù)域位所構(gòu) 成,并且包括至少兩個(gè)或多個(gè)以任何的順序的以下的數(shù)據(jù)域位 一個(gè)組件組態(tài) 設(shè)定字段1010; —個(gè)工作ID字段1015; —個(gè)動(dòng)作ID字段1020; —個(gè)目的地 (及/或來源)地址字段1025(指定一個(gè)目的地(或來源)復(fù)合電路組件260、 一個(gè)端 口以及背景); 一個(gè)選配的"分岔(fork),,字段1030; —個(gè)重要的輸入("SI")字段 1035; —個(gè)重要的輸出("SO")字段1040; —個(gè)選配的周期("CY")字段1045; 一個(gè)執(zhí)行狀態(tài)區(qū)位1050; —個(gè)選配的優(yōu)先級字段1055; —個(gè)選配的狀態(tài)備妥 字段1060; —個(gè)選配的下一個(gè)字段1065; —個(gè)選配的最后一個(gè)背景字段1070; 一個(gè)選配的中斷字^殳1075; —個(gè)選配的單一步驟的字^: 1080;以及一個(gè)選配 的常數(shù)模式字段1085。 一個(gè)對應(yīng)的組態(tài)設(shè)定及控制字IOOO將被利用于復(fù)合電 路組件260的每個(gè)背景。對于熟悉電子技術(shù)者而言,將會(huì)明顯的是,額外的或 是較少的字段都可被利用,此是依據(jù)所選的裝置100以及任何納入的系統(tǒng)的應(yīng) 用及目的而定,并且所有此種變化都是在本發(fā)明的范疇內(nèi)。
多個(gè)組態(tài)設(shè)定字(每個(gè)背景各一個(gè))被組件控制器325利用來控制一個(gè)可組 態(tài)設(shè)定的組件270的組態(tài)設(shè)定及執(zhí)行。每個(gè)組態(tài)設(shè)定字借助背景號碼來索引。 該一或多個(gè)控制該可組態(tài)設(shè)定的組件270如何;故組態(tài)i殳定或是數(shù)據(jù)如何:故解 譯的組態(tài)設(shè)定位被儲存在組件組態(tài)設(shè)定字段1010中。類似地,該指定以及指 定路由(結(jié)合)動(dòng)作(或指令)被儲存為對應(yīng)的工作ID在字段1015中以及動(dòng)作ID 在字段1020中。
該數(shù)據(jù)輸出及/或數(shù)據(jù)輸入位置,作為結(jié)合的目的地(及/或來源)地址被儲 存在字段1025中?;蛘呤?,該數(shù)據(jù)輸入及/或數(shù)據(jù)輸出指針(作為來源/目的地工作ID及動(dòng)作ID)可依據(jù)為了可能的重新指定路由所實(shí)施的方法而被儲存。 舉例而言,當(dāng)一整個(gè)工作被重新指定且重新再次結(jié)合時(shí),新的指定路由信息將 會(huì)被產(chǎn)生,而不是利用先前儲存的來源及目的地信息。剩余的控制字段被利用 以控制是否與何時(shí)一個(gè)特定的背景被執(zhí)行(對于一個(gè)將被電路組件270執(zhí)行的 對應(yīng)的動(dòng)作)、中斷要如何由SME 290來服務(wù)的、以及輸出數(shù)據(jù)如何被提供至 —或多個(gè)目的地地址。
在示范性的實(shí)施例中,該組件控制器325包括組合邏輯閘或組件,舉例而 言AND、 OR以及反相器閘,其根據(jù)儲存在該示范性的組態(tài)設(shè)定及控制字1000 的各種字段(舉例而言,1035、 1040、 1050、 1060)中的位值來提供一個(gè)結(jié)果(一 個(gè)特定的背景執(zhí)行或不執(zhí)行)。圖17是描繪根據(jù)本發(fā)明的教示的用于在一個(gè)示 范性的裝置內(nèi)的背景備妥的判斷的示范性的組合邏輯電路1100的方塊圖。
如上所述,在一個(gè)數(shù)據(jù)流環(huán)境中,當(dāng)具有足夠的輸入數(shù)據(jù)以及足夠空閑或 可利用的目的地用于該所產(chǎn)生的輸出資料時(shí), 一個(gè)背景(工作)可以執(zhí)行。由于 有多個(gè)輸入及對應(yīng)的多個(gè)輸入隊(duì)列320到該可組態(tài)i殳定的組件270中,該重要 的輸入(SI)位(1035)指定那些輸入中的哪些將被利用在該所選的背景中。此外, 該輸入隊(duì)列320適配于提供一第一信號(被稱為"足夠的輸入"("EI")),其指出有 足夠的數(shù)據(jù)在該對應(yīng)的輸入隊(duì)列320中。舉例而言,在該組件控制器325中, 每個(gè)SI位被反相,并且每個(gè)反相的SI位以及其對應(yīng)的EI信號被OR運(yùn)算(OR 閘11100至1110n),其中所有其對應(yīng)的OR結(jié)果(四個(gè)輸入有四個(gè)結(jié)果)接著一 起被AND運(yùn)算(AND閘1115),以提供一"數(shù)據(jù)輸入備妥"信號,使得該AND 結(jié)果(數(shù)據(jù)輸入備妥)指出在輸入處有足夠的數(shù)據(jù)可供利用,該資料將會(huì)被該所 選的背景利用。更明確地說,該數(shù)據(jù)輸入備妥信號在(l)在該重要的輸入處有 足夠的輸入數(shù)據(jù)以及(2)任何其它剩余的輸入都不是重要的時(shí)候被提供。
類似地,由于來自可組態(tài)設(shè)定的組件270有多個(gè)輸出隊(duì)列315及輸出375, 所以該重要的輸出(SO)位(1040)指定那些輸出以及對應(yīng)的隊(duì)列中的哪些是將被 利用在該所選的背景中。此外, 一第二信號(被稱為一"有空間供更多使 用"("RFM")信號)被提供以指出該對應(yīng)的目的地具有足夠的空間可利用于輸出 數(shù)據(jù),其是來自該輸出隊(duì)列315或是來自數(shù)據(jù)目的地的輸入隊(duì)列320、或可能是來自一個(gè)追蹤輸出數(shù)據(jù)消耗的輸出緩存器。同樣是例如,在該組件控制器
325中,該SO位被反相,并且每個(gè)反相的SO位以及其對應(yīng)的RFM信號被 OR運(yùn)算(OR閘11200至1120n),其中所有的其對應(yīng)的OR結(jié)果(兩個(gè)結(jié)杲用于 兩個(gè)輸出)接著一起被AND運(yùn)算(AND閘1125),以提供一"數(shù)據(jù)輸出備妥"信 號,使得該AND結(jié)果(數(shù)據(jù)輸出備妥)指出有足夠的內(nèi)存空間可利用于利用該 所選的背景的數(shù)據(jù)輸出,即,有可利用在對應(yīng)的輸出隊(duì)列315(或目的地的輸入 隊(duì)列320(或其它內(nèi)存))中的空間。更明確地說,該數(shù)據(jù)輸出備妥信號是在(l) 在該重要的輸出處有空間用于輸出數(shù)據(jù)以及(2)任何其它剩余的輸出都不是重 要的時(shí)候被提供。
這兩個(gè)結(jié)果(該數(shù)據(jù)輸入備妥及數(shù)據(jù)輸出備妥)接著可一起被AND運(yùn)算 (AND閘1130),以對于一個(gè)所選的背景提供一個(gè)整體資料"備妥"狀態(tài)。舉例 而言,當(dāng)該數(shù)據(jù)輸入以及數(shù)據(jù)輸出都備妥時(shí),該備妥狀態(tài)等于一個(gè)邏輯1,否 則即為0?;蛘呤?,如在圖17中所繪,該數(shù)據(jù)輸入備妥及數(shù)據(jù)輸出備妥結(jié)果 可以和其它字段(以下論述的狀態(tài)備妥以及執(zhí)行狀態(tài))一起被AND運(yùn)算,以提 供一個(gè)整體指示為該背景是備妥用于執(zhí)行(一個(gè)"背景備妥"信號)。
儲存在字段1050中的執(zhí)行狀態(tài)指出該背景是否已經(jīng)被致能用于執(zhí)行,并 且由該SME 290而可在該結(jié)合過程中的數(shù)據(jù)輸入-輸出的指定路由之后被設(shè) 定、或是在其它時(shí)間^皮設(shè)定(或重置)。舉例而言,該工作(其中該所選的背景是 一部分)仍然可以是在對于其它可組態(tài)設(shè)定的組件270組態(tài)設(shè)定及指定路由的 過程中,因而在此種指定路由完成之前不應(yīng)被致能。在其它情況中,其中一個(gè) SME290可能已經(jīng)停止一項(xiàng)工作,而可能在其它時(shí)間恢復(fù)繼續(xù)、或可能是在刪 除工作的過程中。因此,該組件控制器325將只有在被致能(如同由在字段1050 中的執(zhí)行狀態(tài)所指出的)時(shí)才會(huì)執(zhí)行一個(gè)背景。
該SME 290也可根據(jù)各種條件或其它事件來利用 一或多個(gè)狀態(tài)備妥位(儲 存在選配的字段1060中)以控制背景執(zhí)行。舉例而言,當(dāng)一個(gè)條件(舉例而言 初始化)已經(jīng)符合時(shí), 一個(gè)所選的背景可能需要接著被執(zhí)行,因而被指定以該 狀態(tài)備妥位。所有這些位(執(zhí)行狀態(tài)、狀態(tài)備妥、數(shù)據(jù)輸出備妥信號、數(shù)據(jù)輸 入備妥信號)都可以被AND運(yùn)算(AND閘1130),因而該結(jié)果也可被儲存在該執(zhí)行狀態(tài)區(qū)位1050或是組件控制器325可存取的另一字段之內(nèi)。因此,該狀 態(tài)備妥位、數(shù)據(jù)輸入備妥、數(shù)據(jù)輸出備妥以及執(zhí)行狀態(tài)指示器的結(jié)合 (conjunction)提供一項(xiàng)指示以使得該組件控制器325容許執(zhí)行該所選的背景。 或者是,可以透過使用該執(zhí)行狀態(tài)(的字段1050)來加以控制操作,而不需該狀 態(tài)備妥位,此容許SME 290能夠只需指定該背景是否被致能用于執(zhí)行。
該選配的周期字段1045被利用來指定執(zhí)行對應(yīng)的動(dòng)作所需的頻率周期的 數(shù)目。此字段被利用以避免另一第二背景在一第一背景的計(jì)算仍然是在進(jìn)行中 被執(zhí)行。
該選配的單一步驟的字段1080被利用以提供一個(gè)背景以只是執(zhí)行一次, 舉例而言,用于將由該SME 290執(zhí)行的結(jié)果。各種的測試背景經(jīng)常是執(zhí)行在 單一步驟的模式中,其中該SME 290設(shè)定或清除一個(gè)單一步驟的位(舉例而言, 用于一項(xiàng)將在所選的時(shí)間執(zhí)行,但并非總是可利用來執(zhí)行的測試)。
在一個(gè)所選的實(shí)施例中,該選配的背景字段1070可被利用作為多個(gè)背景 的可能的執(zhí)行之間的仲裁的部分。當(dāng)一個(gè)背景已經(jīng)執(zhí)行時(shí),最后一次的背景位 被設(shè)定(并且其它背景的最后一次的背景位被重置至零)。在竟?fàn)巶渫子糜趫?zhí)行 的背景的事件中,該最后一次的背景位被利用來判斷是否其中一個(gè)背景剛被執(zhí) 行,并且若有的話,此是容許其它的背景來執(zhí)行,以避免在該可組態(tài)設(shè)定的組 件270中一個(gè)背景完全地主導(dǎo)執(zhí)行。此外,在竟?fàn)幉⒎莿倛?zhí)行的背景的事件中, 一或多個(gè)選配的優(yōu)先級位(儲存在字段1055中)可被利用來仲裁及容許較高優(yōu) 先級的背景先執(zhí)行。
在一個(gè)示范性的實(shí)施例中,該選配的下一個(gè)指示器(儲存在字段1065中) 也被稱為一個(gè)"連鎖(chain)"指示器,其被利用來決定下一個(gè)執(zhí)行的背景,并且 特別是有用于控制背景被執(zhí)行所用的序列,即,將一序列的動(dòng)作連鎖在一起。 在此實(shí)施例中,當(dāng)在以上所述的其它條件已經(jīng)符合時(shí),該組件控制器325可以 開始"連鎖開頭的"背景(該連鎖的第一背景,也如同被指定在字段1065之內(nèi)者) 的執(zhí)行。之后,同樣是當(dāng)其它條件(舉例而言,EI、 RFM、等等)已經(jīng)符合時(shí), 該組件控制器325將會(huì)執(zhí)行在該序列中的下一個(gè)背景,如同在該字段1065中 被指定的,否則將會(huì)等待下一個(gè)背景變成是可利用的為止。若下一個(gè)背景是相同于目前的背景,則該序列的執(zhí)行已經(jīng)完成。此字段1065也可包含一項(xiàng)指示 是關(guān)于該數(shù)據(jù)輸入是否將會(huì)被消耗。
在另一示范性的實(shí)施例中,當(dāng)以目的地為基礎(chǔ)的(而不是對于以來源為基 礎(chǔ)的)數(shù)據(jù)發(fā)送被利用,當(dāng)相同的輸出將要提供(或被復(fù)制)到多個(gè)目的地時(shí),該 選配的"分盆,,字段1030被利用于輸出復(fù)制。額外的背景被利用以儲存這些額 外的目的地。在此實(shí)施例中,當(dāng)上述其它條件都已經(jīng)符合時(shí),該組件控制器 325可以開始"分岔開頭的"背景(該分岔的第一背景,也如同在字段1030之內(nèi) 被指定者)的執(zhí)行。之后,當(dāng)該分岔字段1030的一或多個(gè)位指出另一背景時(shí), 目前的輸出將會(huì)被提供(順序地復(fù)制)作為用于該背景的輸出,此是避免需要根 據(jù)相同的數(shù)據(jù)重新執(zhí)行一個(gè)背景以提供相同的輸出而只是到一個(gè)不同的位置。 其它不是該"分岔"序列的部份的背景并未在此順序的輸出復(fù)制期間被執(zhí)行。若 下一個(gè)背景是相同于目前的背景,則該分岔的執(zhí)行(輸出復(fù)制)已經(jīng)完成。當(dāng)在 字段1030中沒有指出分岔時(shí),該組件控制器325只是判斷有哪些其它背景可 以備妥用于執(zhí)行,并且依此來進(jìn)行。
在一個(gè)所選的實(shí)施例中, 一個(gè)選配的"中斷,,字段1075也可被提供。此字 段(作為該組態(tài)設(shè)定字1000的部份)可以指定中斷的設(shè)定、遮蔽及偵測,其包 含一個(gè)背景在何時(shí)執(zhí)行。這些中斷是由SME 290所服務(wù)。
此外在一個(gè)所選的實(shí)施例中, 一個(gè)選配的常數(shù)模式字段1085可4皮利用, 以指定該輸入數(shù)據(jù)字的一或多個(gè)是一個(gè)常數(shù)。對于此種常數(shù)而言,其一般是被 維持(直到改變?yōu)橹?,所以該常數(shù)并未在數(shù)據(jù)動(dòng)作期間被消耗。在此實(shí)施例中, 該常數(shù)模式字段1085的所選的位也被利用來指出該下一個(gè)數(shù)據(jù)讀取位置(舉例 而言,在兩個(gè)字的輸入隊(duì)列320中的哪個(gè)數(shù)據(jù)字),舉例而言,用于在兩個(gè)或 是多個(gè)常數(shù)值的間切換或交換。
因此,如上所論述,該組件控制器325可利用多個(gè)組合邏輯閘而被實(shí)施, 其對于每個(gè)背景求值該組態(tài)設(shè)定及控制字1000的各種字段(以及其它控制信 號)。當(dāng)該各種字段以及其它信號指出一個(gè)背景備妥且應(yīng)該被執(zhí)行時(shí),該組件 控制器325加載該背景的組態(tài)設(shè)定,并且對應(yīng)的工作或動(dòng)作(或指令)被執(zhí)行。
總結(jié)而言,本發(fā)明提供具有自我復(fù)原的功能的彈性及適應(yīng)性的集成電路。示范性的實(shí)施例的許多優(yōu)點(diǎn)是相當(dāng)明顯的。本發(fā)明的IC架構(gòu)是彈性的,其對 于在IC的使用期間可能出現(xiàn)的制造缺陷、瑕瘋提供適應(yīng)性,并且可適應(yīng)于新
的特點(diǎn)、服務(wù)、算法以及其它事件。此IC架構(gòu)是自我復(fù)原的,因?yàn)樵贗C的一 部份受損或是變成不能利用的事件中,該IC的另一部份有效地"被征用"或是
被重新指定以取代及執(zhí)行該受損部份的功能。本發(fā)明容許單一構(gòu)件被切換出, 并且并不具有現(xiàn)有技術(shù)的固定布線。此外,當(dāng)功能被重新指定時(shí),新的控制及
數(shù)據(jù)路徑也被產(chǎn)生,因而該轉(zhuǎn)移的動(dòng)作不間斷地利用其它IC動(dòng)作來繼續(xù)執(zhí)行。
根據(jù)所選的實(shí)施例,此種適應(yīng)性的彈性及自我復(fù)原可以實(shí)時(shí)地或是幾乎實(shí)時(shí)地
產(chǎn)生。此種彈性提供在該IC損壞的事件中的執(zhí)行的優(yōu)雅降級,而不是災(zāi)難的
失效,并且在健康與安全性的應(yīng)用中尤其是重要的。
將了解到的是,此申請案揭示一種用于具有自我復(fù)原的功能的彈性且適應(yīng) 性的集成電路的系統(tǒng)、裝置、軟件及方法。盡管本發(fā)明是參考示范性的實(shí)施例 而特定地予以描繪及描述,這些實(shí)施例僅為例示性的且非限制本發(fā)明。于本文 的敘述中,許多特定細(xì)節(jié)被提供,諸如電子組件、電子及結(jié)構(gòu)連結(jié)、材料及結(jié) 構(gòu)上的變化,以提供本發(fā)明的實(shí)施例的完整了解。然而,熟悉本項(xiàng)技術(shù)者將認(rèn)
知本發(fā)明的實(shí)施例能夠在無一或多個(gè)特定細(xì)節(jié)或者在具有其它裝置、系統(tǒng)、 組件、組件、材料、構(gòu)件等等之下實(shí)施。于其它實(shí)例中,眾所周知的結(jié)構(gòu)、材 料或操作未特定地詳細(xì)顯示或^l述,以避免^f莫糊本發(fā)明的實(shí)施例的態(tài)樣。此外, 各個(gè)圖不以相同比例繪制,且不應(yīng)被認(rèn)為有限制的。
于本文所使用的"處理器"可以為任何型式的控制器或處理器,且可以實(shí) 施為一或多個(gè)處理器175,其適合于實(shí)施于本文所述的功能。處理器可以于一 個(gè)分離的系統(tǒng)內(nèi),或者可以整合成為該裝置100、 140的芯片的一部分,等等, 且可以為任何型式的處理器或控制器,諸如一個(gè)商業(yè)上可取得的處理器或微處 理器而實(shí)施,舉例而言ARM或Micro-Blaze,或者可以使用一或多個(gè)狀態(tài)機(jī)組 件290而實(shí)施。如同處理器一詞于本文所使用, 一個(gè)處理器可以包含使用一個(gè) 單一集成電路,或者可以包含使用多個(gè)集成電路或其它連接、配置或群組在一 起的構(gòu)件,諸如控制器、微處理器、數(shù)字訊號處理器、平行處理器、多重核心 處理器、客制化集成電路、特殊應(yīng)用的IC("ASIC,,)、場可程序化門陣列("FPGA,,)、適應(yīng)性計(jì)算集成電路、結(jié)合的內(nèi)存(諸如RAM、 DRAM、 ROM)及 其它集成電路及構(gòu)件。因此,如于本文所述,處理器一詞應(yīng)該被了解成均等地 意謂及包含一個(gè)單一集成電路,或者客制化集成電路、特殊應(yīng)用集成電路、處 理器、微處理器、控制器、場可程序化門陣列、適應(yīng)性計(jì)算集成電路的配置, 或?qū)嵤┫挛乃懻摰墓δ艿木哂薪Y(jié)合的內(nèi)存的某些其它集成電路的群組,結(jié)合 的內(nèi)存是諸如微處理器內(nèi)存或額外的RAM、DRAM、 SDRAM、 SRAM、MRAM、 ROM、快閃、EPROM或E2PROM。 一個(gè)具有其結(jié)合的內(nèi)存的處理器(諸如處 理器1215)可以適合于或組構(gòu)成(透過程序設(shè)計(jì),場可程序化門陣列互連,或硬 接線)實(shí)施本發(fā)明的方法。舉例而言,該方法可以程序設(shè)計(jì)及儲存于一個(gè)具有 其相關(guān)內(nèi)存(及/或其它內(nèi)存)及其它均等構(gòu)件的處理器/控制器175之中,作 為一組程序指令或其它碼(或均等組態(tài)或其它程序),以用于當(dāng)該處理器操作 (即,開機(jī)及作用)時(shí)后續(xù)的執(zhí)行。同樣地,當(dāng)該處理器1215可以整體或部分 實(shí)施為場可程序化門陣列、客制化集成電路及/或特殊應(yīng)用的集成電路,場可 程序化門陣列、客制化集成電路及/或特殊應(yīng)用的集成電路也可以被設(shè)計(jì)、組 構(gòu)及/或硬接線,以實(shí)施發(fā)明的方法。舉例而言,該處理器可以實(shí)施為處理器、 控制器、微處理器、數(shù)字訊號處理器及/或特殊應(yīng)用的集成電路的一個(gè)配置, 處理器、控制器、微處理器、數(shù)字訊號處理器及/或特殊應(yīng)用的集成電路集體 稱為一個(gè)"控制器"或"處理器",其個(gè)別被程序設(shè)計(jì)、設(shè)計(jì)、調(diào)適或組構(gòu), 以結(jié)合一個(gè)內(nèi)存而實(shí)施本發(fā)明的方法。
于本文所使用的"內(nèi)存"可以包含一個(gè)數(shù)據(jù)儲存體(或數(shù)據(jù)庫),其可以使 用任何數(shù)量的形式而實(shí)施,包含于任何計(jì)算機(jī)或其它機(jī)器可讀取數(shù)據(jù)儲存媒體 之內(nèi)、內(nèi)存裝置或其它儲存器或用于儲存或通訊信息的通訊裝置、目前已知或 將來變成可取得的裝置,包含但不限于一個(gè)內(nèi)存集成電路或一個(gè)集成電路的內(nèi) 存部分(諸如一個(gè)處理器內(nèi)的剩余內(nèi)存)、是否為揮發(fā)性的或非揮發(fā)性的、是否 為可移除式的或非可移除式的、包含不作為限制的RAM、快閃、DRAM、 SDRAM、 SRAM、 MRAM、 FeRAM、 ROM、 EPROM或E2PROM,或者任何 其它形式的內(nèi)存裝置,諸如一個(gè)磁硬盤機(jī)、光驅(qū)、磁盤驅(qū)動(dòng)器或磁帶機(jī)、硬盤 機(jī)、其它機(jī)器可讀取儲存器或內(nèi)存媒體,諸如軟盤機(jī)、 一個(gè)CDROM、 CD-RW、數(shù)字激光^L盤(DVD)、或其它光學(xué)內(nèi)存、或者任何其它型式的內(nèi)存、儲存4某體、 或數(shù)據(jù)儲存裝置或電路,其為眾所周知或變成眾所周知,其根據(jù)所選的實(shí)施例 而定。此外,諸如計(jì)算機(jī)可讀取媒體包含具體化計(jì)算機(jī)可讀取指令的任何型式 的通訊媒體、數(shù)據(jù)結(jié)構(gòu)、程序模塊或于一個(gè)數(shù)據(jù)訊號或調(diào)變訊號內(nèi)的其它數(shù)據(jù)、 諸如電磁或光學(xué)載波或其它傳輸機(jī)制,包含任何信息傳送媒體,其可以編碼數(shù) 據(jù)或一個(gè)訊號內(nèi)的其它信息,接線的或無線的,包含電石茲、光學(xué)、聲音、射頻 或紅外線訊號,等等。內(nèi)存可以適合于儲存(本發(fā)明的軟件的)各種查找表、參 數(shù)、系數(shù)、其它信息及數(shù)據(jù)、程序或指令,及其它型式的表,諸如數(shù)據(jù)庫表。
如上文所指出,處理器/控制器175使用本發(fā)明的軟件及數(shù)據(jù)結(jié)構(gòu)而被程 序設(shè)計(jì),以實(shí)施本發(fā)明的編譯方法。因此,本發(fā)明的系統(tǒng)及方法可以具體化為 提供如此的程序設(shè)計(jì)或其它指令的軟件,其它指令諸如具體化于一個(gè)計(jì)算機(jī)可 讀取媒體內(nèi)的一組指令及/或元數(shù)據(jù)。此外,元資料也可以被使用于定義一個(gè) 查找表或一個(gè)數(shù)據(jù)庫的各種數(shù)據(jù)結(jié)構(gòu)。如此的軟件可以為來源或目的碼的形 式,其僅作為實(shí)例而不作限制。來源碼進(jìn)一步可以被編譯成指令或目的碼的某 種形式的指令(包含匯編語言指令或組態(tài)信息)。本發(fā)明的軟件、來源碼或元數(shù) 據(jù)可以具體化為任何型式的碼,諸如C, C++, SystemC, LISA, XML, Java, Brew, SQL及其變化形式(舉例而言,SQL99或SQL的專用版本),DB2, Oracle,或?qū)?施于本文所討論的功能的任何其它型式的程序語言,包含各種硬件定義或硬件 模型化語言(舉例而言,Verilog, VHDL, RTL)及造成的數(shù)據(jù)文件(舉例而言, GDSII)。因此,如于本文所同意義使用的"結(jié)構(gòu)"、"程序構(gòu)成"、"軟件構(gòu)成"、 或"軟件"意謂及指具有任何語法或符號的任何型式的程序語言,其提供或能 夠解釋成提供所指定的相關(guān)功能或方法(當(dāng)舉例說明或加載一個(gè)處理器或計(jì)算 機(jī)及執(zhí)行時(shí),舉例而言,包含該處理器1215)。
本發(fā)明的軟件、元數(shù)據(jù)或其它來源碼及任何造成的位檔案(目的碼,數(shù)據(jù) 庫或查找表)可以具體化于任何有形的儲存媒體之內(nèi),諸如任何計(jì)算機(jī)或其它 機(jī)器可讀取數(shù)據(jù)儲存i某體,而作為計(jì)算機(jī)可讀取指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或 其它數(shù)據(jù),諸如上文參照內(nèi)存1220所敘述,舉例而言一個(gè)軟盤, 一個(gè)CD-ROM, 一個(gè)CD-RW, —個(gè)數(shù)字激光視盤, 一個(gè)磁硬盤, 一個(gè)光驅(qū),或任何其它型式的數(shù)據(jù)儲存裝置或々某體,如上文所述。
任何I/0接口可以被實(shí)施為已知的,或者可以變成該:技術(shù)中已知的,且可 以包含阻抗匹配能力、用于一個(gè)低電壓處理器的電壓轉(zhuǎn)換以與一個(gè)較高電壓的 控制總線作接口連接以及各種切換機(jī)制(舉例而言晶體管)以響應(yīng)于自該處理 器而來的訊號導(dǎo)通或關(guān)閉線或連接器。此外,1/0接口也可以調(diào)適成接收及/ 或傳送系統(tǒng)外部的訊號,諸如舉例而言透過硬接線、紅外線或射頻訊號,以接 收諸如舉例而言用于編譯的算法的信息。該I/O界面可以使用任何選擇的架構(gòu) 而提供至任何型式的總線或網(wǎng)絡(luò)結(jié)構(gòu)或i某體的連結(jié)。利用實(shí)例且非作為限制,
如此的架構(gòu)包含工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、加強(qiáng)型工業(yè)標(biāo)準(zhǔn)架構(gòu)(EISA)總線、 微信道架構(gòu)(MCA)總線、周邊構(gòu)件互連(PCI)總線、SAN總線或任何其它通訊 或發(fā)訊媒體,諸如以太網(wǎng)絡(luò)、ISDN、 Tl、衛(wèi)星、無線等等。1/0接口可以實(shí)施 為已知的,或者可以變成該技術(shù)中已知的,以使用任何可應(yīng)用的標(biāo)準(zhǔn)(舉例而 言,各種PCI、 USB或以太網(wǎng)絡(luò)標(biāo)準(zhǔn)之一,其為舉例且不作為限制),而提供 處理器及網(wǎng)絡(luò)之間的數(shù)據(jù)通訊。
于整個(gè)說明書中提及"一個(gè)實(shí)施例"、"一實(shí)施例"或一特定的"實(shí)施例" 意謂與該實(shí)施例有關(guān)所敘述的一特別的特色、結(jié)構(gòu)或特性包含于本發(fā)明的至少
一個(gè)實(shí)施例之中,且不必須于所有實(shí)施例中,且進(jìn)一步地,不必須指相同的實(shí) 施例。另外,本發(fā)明的任何特定實(shí)施例的特別的特色、結(jié)構(gòu)或特性可以使用任 何適當(dāng)?shù)姆绞浇Y(jié)合以及以任何適當(dāng)?shù)慕M合與一或多個(gè)其它的實(shí)施例結(jié)合,包含 使用所選的特色而不對應(yīng)使用其它特色。此外,許多修改可以被實(shí)施,以調(diào)適 一個(gè)特別的應(yīng)用、情況或材料成符合本發(fā)明的基本的范疇及精神。應(yīng)了解的是, 在觀看本文的教示之下,本文所敘述及描繪的本發(fā)明的實(shí)施例的其它變化及修 改是可能的,且祐:認(rèn)為本發(fā)明的精神及范疇的一部分。
也應(yīng)體認(rèn)的是,當(dāng)根據(jù)一特別的應(yīng)用為有用的時(shí),示于圖式中之一或多個(gè) 組件也能夠以一個(gè)更分離的或整合的方式實(shí)施,或者于某些情況下甚至被移除 或使得不操作。構(gòu)件的整合形成的組合也于本發(fā)明的范疇之內(nèi),特別是對于分 離的構(gòu)件的分離或組合是不清楚的或難識別的的實(shí)施例而言。此外,于本文所 使用的"耦接" 一詞包含其各種形式,諸如"耦接"或"可耦接"意謂及包含任何直接的或間接的電性上、結(jié)構(gòu)上或磁性上的耦接、連結(jié)或連接,或者對于 如此的直接的或間接的電性上、結(jié)構(gòu)上或磁性上的耦接、連結(jié)或連接的調(diào)適或 能力,包含整合形的構(gòu)件及透過或經(jīng)過另一個(gè)構(gòu)件耦接的構(gòu)件。
另外,圖式/圖內(nèi)的任何訊號箭頭應(yīng)該被認(rèn)為僅為例示性的且非限制性 的,除非特別注明。步驟的構(gòu)成的組合也將被認(rèn)為于本發(fā)明的范疇之內(nèi),特別 是在分離或結(jié)合的能力是不清楚的或可預(yù)測之下。于本文所使用及下列申請專 利范圍的整個(gè)申請專利范圍所使用的反意連接詞"或",大致上意指"及/或", 其具有連接的及反意連接的意義(且不受限于一個(gè)"排他的"意義),除非有所 指示。如于本文的說明中及整個(gè)后附申請專利范圍所使用,"一個(gè)"、"一,,及 "該"包含多個(gè)的意義,除非前后文清楚地指出。此外,如于本文的說明中及 整個(gè)后附申請專利范圍所使用,"在...之內(nèi)"包含"在...之內(nèi)"及"在...之 上",除非前后文清楚地指出。
本發(fā)明的描繪的實(shí)施例的上述說明,包含于發(fā)明內(nèi)容及摘要內(nèi)所敘述的說 明,不意欲為窮舉的或者限制本發(fā)明成為于本文所揭示的精準(zhǔn)形式。由上文, 應(yīng)體認(rèn)到,許多變化及修改在此可被完成,而不脫離本發(fā)明的新穎概念的精神 與范疇。將了解到的是,并不打算或是應(yīng)該推論對于在此所描繪的特定方法及 裝置的限制。當(dāng)然,所要的是由所附的申請專利范圍涵蓋所有的此種修改為落 在該申請專利范圍的范疇之內(nèi)。
權(quán)利要求
1.一種復(fù)合電子電路,其包含一個(gè)可組態(tài)設(shè)定的電路組件,其具有多個(gè)背景,所述可組態(tài)設(shè)定的電路組件適合于組態(tài)設(shè)定成用于多個(gè)資料運(yùn)算,以響應(yīng)于多個(gè)背景的一個(gè)對應(yīng)的背景;多個(gè)數(shù)據(jù)輸入隊(duì)列,其耦接至所述可組態(tài)設(shè)定的電路組件;多個(gè)數(shù)據(jù)輸出隊(duì)列,其耦接至所述可組態(tài)設(shè)定的電路組件;及一個(gè)組件控制器,其耦接至所述可組態(tài)設(shè)定的電路組件,所述組件控制器適合于當(dāng)輸入數(shù)據(jù)出現(xiàn)于用于一個(gè)第一背景的所有有效的數(shù)據(jù)輸入隊(duì)列上、用于所述第一背景的所有有效的數(shù)據(jù)輸出隊(duì)列具有接受輸出數(shù)據(jù)的狀態(tài)且一個(gè)用于所述第一背景的執(zhí)行狀態(tài)為被致能時(shí),允許所述可組態(tài)設(shè)定的電路組件的多個(gè)背景的所述第一背景執(zhí)行多個(gè)資料運(yùn)算的一個(gè)第一數(shù)據(jù)運(yùn)算。
2. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步適 合于當(dāng)一個(gè)狀態(tài)備妥狀態(tài)為被致能時(shí),允許第一背景執(zhí)行所述資料運(yùn)算。
3. 如權(quán)利要求1所述的復(fù)合電子電路,其進(jìn)一步包含 一個(gè)內(nèi)存,其耦接至所述組件控制器;且其中,所述組件控制器進(jìn)一步適合于使用多個(gè)儲存于所述內(nèi)存內(nèi)的組態(tài) 設(shè)定位,而對于多個(gè)背景的一個(gè)所選的背景組態(tài)設(shè)定所述可組態(tài)設(shè)定的電路組 件。
4. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述內(nèi)存進(jìn)一步適合于對 于所述多個(gè)背景的每一個(gè)背景而言,儲存用于一個(gè)數(shù)據(jù)來源或一個(gè)數(shù)據(jù)目的地 的一個(gè)地址或一個(gè)識別。
5. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步適 合于導(dǎo)致所述可組態(tài)設(shè)定的電路組件于一個(gè)單一步驟模式下執(zhí)行所述第一數(shù) 據(jù)運(yùn)算。
6. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步適 合于導(dǎo)致所述可組態(tài)設(shè)定的電路組件于一個(gè)固定模式下執(zhí)行所述第一數(shù)據(jù)運(yùn)算。
7. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步適 合于仲裁多個(gè)背景的所選的背景哪些準(zhǔn)備好對應(yīng)的資料運(yùn)算的執(zhí)行。
8. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步適 合于鏈接多個(gè)背景的所選的背景,以于一個(gè)所選的順序執(zhí)行。
9. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步適 合于鏈接多個(gè)數(shù)據(jù)輸出隊(duì)列的所選的輸出,以用于在一個(gè)所選的順序下數(shù)據(jù)輸 出。
10. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述多個(gè)數(shù)據(jù)輸入隊(duì)列可 耦接至一個(gè)互連組件,且對于多個(gè)背景的每一個(gè)背景而言,其適合于可組態(tài)設(shè) 定地連接至所述互連組件的 一個(gè)所選的總線,以提供來源為基礎(chǔ)的尋址。
11. 如權(quán)利要求1所述的復(fù)合電子電路,其進(jìn)一步包含 一個(gè)狀態(tài)機(jī)組件,其耦接至所述組件控制器,所述狀態(tài)機(jī)組件適合于致能多個(gè)背景的每 一 個(gè)背景的執(zhí)行狀態(tài)。
12. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器包含組合 邏輯閘。
13. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述組件控制器包含組合 邏輯閘及一個(gè)有限狀態(tài)機(jī)。
14. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述可組態(tài)設(shè)定的電路組 件為多個(gè)可組態(tài)設(shè)定的電路組件的多個(gè)型式的一個(gè)可組態(tài)設(shè)定的電路組件的 一個(gè)所選的型式。
15. —種復(fù)合電子電路,其可操作于一個(gè)凄t據(jù)流才莫式中,其包含 一個(gè)可組態(tài)設(shè)定的電路組件;多個(gè)數(shù)據(jù)輸入隊(duì)列,其耦接至所述可組態(tài)設(shè)定的電路組件; 多個(gè)數(shù)據(jù)輸出隊(duì)列,其耦接至所述可組態(tài)設(shè)定的電路組件;及 一個(gè)組件控制器,其耦接至所述可組態(tài)設(shè)定的電^各組件,所述組件控制器 適合于當(dāng)輸入數(shù)據(jù)出現(xiàn)于所有有效的數(shù)據(jù)輸入隊(duì)列上、用于第一背景的所有 有效的數(shù)據(jù)輸出隊(duì)列具有接受輸出數(shù)據(jù)的狀態(tài)且一個(gè)用于所述第一背景的執(zhí)行狀態(tài)為被致能時(shí),提供所述可組態(tài)設(shè)定的電路組件的數(shù)據(jù)運(yùn)算的執(zhí)行。
16. 如權(quán)利要求15所述的復(fù)合電子電路,其中,所述可組態(tài)設(shè)定的電路 組件具有多個(gè)組態(tài)設(shè)定背景,且適合于組態(tài)設(shè)定成用于多個(gè)資料運(yùn)算,以響應(yīng) 于多個(gè)背景的一個(gè)對應(yīng)的背景。
17. 如權(quán)利要求16所述的復(fù)合電子電路,其進(jìn)一步包含 一個(gè)內(nèi)存,其耦接至所述組件控制器;且其中,所述組件控制器進(jìn)一步適合于使用多個(gè)儲存于所述內(nèi)存內(nèi)的組態(tài) 設(shè)定位,而對于多個(gè)背景的一個(gè)所選的背景組態(tài)設(shè)定所述可組態(tài)設(shè)定的電路組 件。
18. 如權(quán)利要求17所述的復(fù)合電子電路,其中,所述內(nèi)存進(jìn)一步適合于 對于所述多個(gè)背景的每一個(gè)背景而言,儲存用于一個(gè)數(shù)據(jù)來源或一個(gè)數(shù)據(jù)目的 地的一個(gè)地址或一個(gè)識別。
19. 如權(quán)利要求17所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步 適合于仲裁多個(gè)背景的所選的背景哪些準(zhǔn)備好對應(yīng)的資料運(yùn)算的執(zhí)行。
20. 如權(quán)利要求17所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步 適合于鏈接多個(gè)背景的所選的背景,以于一個(gè)所選的順序執(zhí)行,及鏈接多個(gè)數(shù) 據(jù)輸出隊(duì)列的所選的輸出,以用于在一個(gè)所選的順序下數(shù)據(jù)輸出。
21. 如權(quán)利要求16所述的復(fù)合電子電路,其中,所述組件控制器進(jìn)一步 適合于導(dǎo)致所述可組態(tài)設(shè)定的電路組件于一個(gè)單一步驟模式下或于一個(gè)固定 模式下執(zhí)行所述數(shù)據(jù)運(yùn)算。
22. 如權(quán)利要求15所述的復(fù)合電子電路,其中,所述多個(gè)數(shù)據(jù)輸入隊(duì)列 可耦接至一個(gè)互連組件,對于多個(gè)背景的每一個(gè)背景而言,其適合于可組態(tài)設(shè) 定地連接至所述互連組件的一個(gè)所選的總線,以提供來源為基礎(chǔ)的尋址。
23. 如權(quán)利要求1所述的復(fù)合電子電路,其中,所述可組態(tài)設(shè)定的電路組 件為多個(gè)可組態(tài)設(shè)定的電路組件的多個(gè)型式的一個(gè)可組態(tài)設(shè)定的電路組件的 一個(gè)所選的型式,其形成可組態(tài)設(shè)定的電路組件的一個(gè)計(jì)算上完整的集合。
24. —種電子電路,其可操作于一個(gè)數(shù)據(jù)流之中,其包含 一個(gè)可組態(tài)設(shè)定的電路組件,其具有多個(gè)背景,所述可組態(tài)設(shè)定的電路組件適合于組態(tài)設(shè)定成用于多個(gè)資料運(yùn)算,以響應(yīng)于多個(gè)背景的 一個(gè)對應(yīng)的背景;一個(gè)內(nèi)存,其耦接至所述可組態(tài)設(shè)定的電路組件,且適合于儲存對應(yīng)于所 述多個(gè)背景的多個(gè)組態(tài)設(shè)定位;多個(gè)數(shù)據(jù)輸入隊(duì)列,其耦接至所述可組態(tài)設(shè)定的電路組件,所述多個(gè)數(shù)據(jù) 輸入隊(duì)列可組態(tài)設(shè)定用于來源為基礎(chǔ)的尋址;多個(gè)數(shù)據(jù)輸出隊(duì)列,其耦接至所述可組態(tài)設(shè)定的電路組件;及一個(gè)組件控制器,其耦接至所述可組態(tài)設(shè)定的電路組件及至所述內(nèi)存,所 述組件控制器適合于使用對應(yīng)的組態(tài)設(shè)定位,而組態(tài)設(shè)定用于多個(gè)背景的一個(gè) 所選的背景的可組態(tài)設(shè)定的電路組件,且其進(jìn)一步適合于當(dāng)輸入數(shù)據(jù)出現(xiàn)于 用于一個(gè)所選的背景的所有有效的數(shù)據(jù)輸入隊(duì)列上、用于所述所選的背景的所 有有效的數(shù)據(jù)輸出隊(duì)列具有接受輸出數(shù)據(jù)的能力且所選的背景為被致能時(shí),對 于多個(gè)數(shù)據(jù)運(yùn)算的一個(gè)對應(yīng)的數(shù)據(jù)運(yùn)算,提供所述可組態(tài)設(shè)定的電路組件的多 個(gè)背景的所選的背景的執(zhí)行,且其進(jìn)一步適合于仲裁多個(gè)背景的所選的背景哪 些準(zhǔn)備好對應(yīng)的資料運(yùn)算的執(zhí)行。
全文摘要
示范性的實(shí)施例提供一種彈性集成電路。一個(gè)示范性的IC包括多個(gè)復(fù)合電路組件、一個(gè)狀態(tài)機(jī)組件(SME)、以及多個(gè)通訊組件。每個(gè)復(fù)合電路組件包括一個(gè)組件控制器、一個(gè)組件接口以及一個(gè)所選的電路組件,該所選的電路的組件類型可以變化,并且可以是可組態(tài)設(shè)定的。該狀態(tài)機(jī)組件是根據(jù)組件類型來指定各種的功能,舉例而言,指定一第一組態(tài)設(shè)定至一第一組件類型,指定一第二組態(tài)設(shè)定至一第二組件類型,并且提供一第一數(shù)據(jù)鏈路給對應(yīng)的指定。該組件控制器控制電路組件的數(shù)據(jù)運(yùn)算的執(zhí)行。對于廣泛種類的程序及算法而言,功能指定、指定路由、錯(cuò)誤偵測、以及重新指定與數(shù)據(jù)重新指定路由可以實(shí)時(shí)地產(chǎn)生,此是提供該IC繼續(xù)相同的運(yùn)作,盡管缺陷可能在動(dòng)作期間發(fā)生。
文檔編號G01R31/28GK101563621SQ200780027489
公開日2009年10月21日 申請日期2007年6月20日 優(yōu)先權(quán)日2006年6月21日
發(fā)明者史帝文·韓尼克·凱倫, 布萊恩·A.·巴克斯 申請人:基質(zhì)Cxi有限公司