TW200900916A - Program binding system, method and software for a resilient integrated circuit architecture - Google Patents

Program binding system, method and software for a resilient integrated circuit architecture Download PDF

Info

Publication number
TW200900916A
TW200900916A TW096146976A TW96146976A TW200900916A TW 200900916 A TW200900916 A TW 200900916A TW 096146976 A TW096146976 A TW 096146976A TW 96146976 A TW96146976 A TW 96146976A TW 200900916 A TW200900916 A TW 200900916A
Authority
TW
Taiwan
Prior art keywords
component
communication
circuit
computing
data
Prior art date
Application number
TW096146976A
Other languages
English (en)
Inventor
Steven Hennick Kelem
Original Assignee
Element Cxi Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/471,875 external-priority patent/US7429870B2/en
Priority claimed from US11/471,832 external-priority patent/US7427871B2/en
Application filed by Element Cxi Llc filed Critical Element Cxi Llc
Publication of TW200900916A publication Critical patent/TW200900916A/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17362Indirect interconnection networks hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/007Fail-safe circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)
  • Hardware Redundancy (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Display Devices Of Pinball Game Machines (AREA)
  • Devices For Executing Special Programs (AREA)
  • Pinball Game Machines (AREA)

Description

-200900916 九、發明說明: L毛明所屬之技術領域】 本發明大致上係關於用於積體電路之程式連姓,尤其 於可轉移的功能、容錯及彈性之分散式” 、電路疋件、分散式通訊電路元件、 控制電路元件之程式規劃積體電路。 及刀散式 相關申請案交互參照 r 本申睛案係為Kelem,Steven Hennick等人於2_年6 月21日申4且名稱為“容錯積體電路架構”( 申請幻之美國專射請案第11/471,832號案之部分= 案,且主張該案之優先權,該案及本案係共同讓與,該案 整體係以參照方式於此併入,且主張所有共同已揭示之: 題的優先權。 本申請案亦為Kelem,steven Henniek等人巾請於繼 年6月21日名稱為“彈性的積體電路架構,,(第二相關 ^申請案)之美國專利中請案第11/471,875號案之部分接續 V案,且主張該索之優先權,該案及本案係共同讓與,該案 整體係以參照方式於此併入,且主張所有共同已揭示之^ 題的優先權。 【先前技術】 電路傳統上係 FPGA提供一 已經是以場 個陣列之相 施例中,該 製造後可被組態設定的積體 可程式化閘陣列(“FPGA”)為主, 同的邏輯閘或其它元件。在某些積體電路的實 6 200900916 r 閘陣列亦耦接至一或多個微處理器核心,以讓FpGA構件 提仏所選的計算之可組態設定的、特殊應用的加速。在 FPGA中的邏輯元件典型是非常“精細粒度的,,,因為閘陣 列可以透過資料輸入與輸出來連接以提供一更高等的功 能,舉例而言’加法、減法或比較,而不需要個別的硬體 連線之特殊應用的構件來直接提供此種高等的功能。用於 組態設S FPGA的閘陣列之方法是相對較慢的,其典型是 透過-串列組態設定匯流排,因@ FPGA 一般來說尚未能 夠做即時的重新組態m用於功能上之立即改變。 於其它情況下,可組態設定w IC係已涉及到大型(或 是“粗略粒度的,,)可組態設定的邏輯元件,其係能夠執行重 η:舉例而言,多媒體處理 '算術處理、以及通訊功 儘官這些大型可組態設定的邏輯元件提供極有能力的 …但是每個群組的可組態設定的邏輯元件典型是不同 的,並且需要個別的程式化以 , 机仃具功迠。再者’此種大 可、、且悲設定的邏輯元件是不 呈現特殊應用的IC(“ASIC,,)之:轉換到其它功能的’其係 、匕)之頰似的限制。 可組態設定的功能係亦已
乃々卜立触 ‘被增加到微處理器、ASIC = 卜舉例而言,在記憶體IC中,額外或是冗 與行有缺陷時’受影…:能透露所選的列 體IC的剩餘部分是潛 4:被-能’但是該記憶 該記憶體K:仍然可能符合並且利用該冗餘之下’ 11隐體容量的規格。在其它情 可加入某個量的可配置性,以在^已經製造出之 7 .200900916 後校正設計錯誤及其它缺陷、或是容許修改輸入與輸出, 舉例而言是用於可組態設定的1/0及可組態設定的資料路 徑寬度。 此外,在組態設定之後且在動作期間,此種FPGA、 ASIC、處理器、以及其它可組態設定的邏輯係並不呈現出 彈性。舉例而言,若該IC % 一部份在動作期間變成是有 缺陷的’則該整個IC纟即失效,此係喪失所有的功能。 儘管該IC T以使其離線或是移%、診斷、並且依據損壞 而可能被重新組態設;t,但是此帛IC並不能夠即時的重 新組態設定並且將功能轉移至該Ic<未受影響的部份。 另一種由職設計且被稱為“eFuse,,的技術係利用電 料來產生微觀的電子料,其禁能胃IC之所選的部份 或是有缺陷的部份,利用軟體來開路或閉路閘以重新指定 路由給晶片邏輯至肖IC之其餘良好的部份,舉例而言, 正設計瑕疵、製造缺陷、並且管理功率消耗。舉例而 °及eFUSe技術可以禁能有缺陷的記憶體列與行,並且 eFuse軟體可以改變記憶體位址使得資料將會儲存在記憶 體之無缺陷的部份中。 然而’這些技術係都未能解決現在發生於次i〇〇nm的 IC製造上之增加的缺陷數目問題。更具體而言,隨著IC 特徵尺寸持續降㈣術m以下,存在有增加的缺陷程度 以及降低的IC良率。此外,儘管IC最初可能沒有過多的 缺陷而能夠為了其所要的用途來運作,但是較小的特徵尺 寸亦增加在動作㈣IC失效的機率,舉例而言,由於穿 8 200900916 隧及電遷移的影響所造成的。
此外,儘管這些習知技術係分別有其本身的優點,舉 例而言,校正設計瑕疵以及迴避較小的製造缺陷來運作的 功能’但是這些習知技術都未能在ic動作期間隨著時間 提供保持一定的彈性。不論缺陷是在製造期間產生、或是 在很後面的1C使用期間產生,這些已知的技術就是無法 包谷某些種類的缺陷以及某些程度的缺陷,因而整個1C 完全地失效。此種失效通常是災難的,使得整個IC立刻 失效而無任何警告。舉例而言,若一個微處理器之一個區 域失效,則整個微處理器立刻變成沒有用的。 為了嘗試提供某種程度的彈性,這些各式各樣的技術 只是增加某些冗餘。舉例而[多個處理器將被設置在相 同的1C上,使得若一個缺陷造成一個處理器失效,則一 個冗餘的處理器是可利用來取代之。然而,在這些情況中, 該=餘的處理MW完全地閒置且未使用的、或者是其 时的運作已被廢棄且完全地失去。在任—種事件中,此 種彈)·生疋化費大約兩倍# IC面積並且顯著地增加製造成 本。此外,j;!*錄A 4· ϋ 土 、几餘之努力並未能照顧到所有的冗 餘的構件内可能合蘇 θ χ生的缺陷,因為即使小的缺陷也可能 使仔此種構件失效。 因此,仍董+於—Λ Μ 、Α 、 種I官有著可能會影響任何構件之製 失二:本二:的缺’但仍然是非常有彈性且強韌且沒有損 传庫^#使用的冗餘之積體電路架構有著需求。此種IC 係應遠W斷的調整,使得卜個缺时生時,功能 9 200900916 可即時或接近即時地被轉移至一個未受影響的區域 技術應《供用於IC的組態設定(程式化或是 :係容::此種可轉移的功能,而不需要整個程二 個’王為儿餘的處理器。因此’係持續需要一個能夠 =定及重新指定程式執行的功能及資料^路由彈性的積 月立電路所程式執行的程式連結器。 【發明内容】 本發明示範性之實施例係提供一種用於積體電路架構 的編譯器,該積體電路架構係能夠有相當大的彈性,而盈 原本有的未使用的冗餘。示範性之IC實施例可持續不斷 地被調整,如同在缺陷的事件中可能是必要的、或是如同 為了納入新的程式或功能而可能是所期望的。舉例而言, 在缺陷發生的事件中,功能係可以即時或接近即時地被轉 移至-個未$影響的區域。用於肖Ic之示範性之架構及 軟體亦今#有此種可轉移的功能,而不需要整個程式被轉 移至一個完全為冗餘的處理器或原本是未使用的計算區 塊。此外,示範性之IC實施例係隨著在使用(除了製造之 卜)』間可此會發生的缺陷或問題增加而提供優雅降級及通 知,而不是災難的失效。 在一個不範性之實施例中,一種裝置係被提出,其包 括複數個複合電路元件、耦接至該複數個複合電路元件的 i數们通几元件、以及一個輕接至該複數個複合電路元件 及及複數個通訊元件的狀態機元件。每個複合電路元件係 10 200900916 包括一個對應的元件介面以及一個具有複數個 型之對應的電路元件,其中每個複合電路元件係具有至Ζ 一個輸入以及至少一個輪出,並且該複數個複合電路元二 中的-個第一複合電路元件係具有該複數個電:元件:型 的-個第-電路^件_,並且該複數個複合電路元件中 的-個第二複合電路元件係具有該複數個電路元件類型的 一個第二電路元件類型。該狀態機元件係適配於指定一個 Γ =-動作給該第-複合電路元件,指定一個第二動作給該 第二複合電路元件,並且透過該複數個通訊元件中之一個 所選的通訊元件來提供—個從該第一複合電路元件的至少 -個輸出至該第二複合電路元件的至少一個輸入之 擬的資料鏈路。 亚 在一個不耗性之實施例中,該複數個電路元件類型係 ,括以下的電路元件類型中的至少—冑:複數個可組態設 定的元件類型、一個記憶體元件類型、複數個通訊元件類 ,、以及複數個非可組態設定的元件類型。舉例而言,該 弟:電路元件類型是該複數個可組態設定的元件類型中之 :第一可組態設定的元件類型,該第二電路元件類型是該 硬,個可組態設定的元件類型中之一第二可組態設定的元 件頦型,並且其中該狀態機元件係進一步適配於指定該第 :動作為4第複合電路元件的—第—組態設定以及指定 該:二動作為該第二複合電路元件的-第二組態設定。該 狀=機70件可進—步適配於在該第一動作及第二動作的執 仃寸'、、口口的期間,從一個第—符號的電路描述棺㈣山叫元 200900916 件獲得該第-、組態設定以及第一可組態設定的元件類型, 並且從-個第二符號的電路描述^件獲得㈣二組態設 定以及第二可組態設定的電路元件類型。此夕卜,該第 ,的電路描述以件係、更包括—個指#,該指標係指派該 弟-虛擬的資料鏈路作為前往該第二複合電路元件的至少 一個輸人的資料通訊,並且該第二符號的電路描述槽元件 步包括—個指標,該指標係指派該虛擬的 :為來自該第-複合電路元件的至少-個輸出的資料通 八該狀態機元件係可進一步適配於在一項判斷該第 弟-…路-件兩者都正確地操作以 二動Γ 該第—複合電路元件以及指定該第 :t給㈣二複合電路元件。該操作判斷是以下的判斷 2至少-個:藉由該複數個複合電路元件中的至少—個 杈D電路几件所執行的一個週期性的診斷 複數個複合電路元件中的至少一個複=作為該 選的背景之-個背景診斷;或是藉由具有 ㉙'之複數個複合電路元件所執行的—個比較測試。π 该狀態機元件係進一步適配於響應該第—複合 々的一個^貞測到的錯誤,以指定該第m 兀 合電路元件的一個第三複合電路元件,該第:::·個複 件具有-個具有第一電路元件類型的電路元::电路兀 =:件=:於;_複數個〜二= 、…三複合電路元件的至少-個輸出至該 12 200900916 f" 第二複合電路 路。或者,該 元件的一個偵 複合電路元件 元件具有一個 該狀態機元件 個通訊元件, 至該第二複合 料鏈路。在一 步適配於使用 個指向用於 昭 元件的至少一個輸入的一第二虛擬的資料鏈 狀態機元件係進一步適配於響應該第一電路 /貝!到的錯誤’以指定該第—動作給該複數個 的一個第三複合電路元件,該第三複合電路 具有一第三電路元件類型的電路元件,並且 進一步適配於透過該複數個通訊元件中的一 提供從該第三複合電路元件的至少一個輸出 電路元件的至少一個輸入的一第三虛擬的資 個示範性之實施例中’該狀態機元件係進一 —個儲存的轉換表,該儲存的轉換表係具有 該第一動作的移轉的第三複合電路元件之參 '在一個示範性之實施例中,—種用於—個積體電路之 程式連結方法係、被提供,其中,該積體電路係具有複數個 計算元件及複數個通訊元件之類型,且具有已經被編譯以 指定-個用於計算元件的動作及一個資料轉移連結之程 式。該示範的方法係包含1定一第—動作至一個第一計 算元件,其係、具有複數個計算元件的類型之一個第一類 型;指定-第二動作至一個第二計算元件,其係具有複數 個計算S件的類型之-”二類型; 及該第二計算元件之間經過複數個通訊元件之一個所選的 通讯元件之一個第一資料指定路由。 舉例而言,該第—資料指定路由係可以於作為一個資 料來源的第一計算元件及作為-個資料目的地之第二計算 13 200900916 元件之間’或者於作為-個資料目的地之第-計算元件及 作為一個資料來源之第二計算元件之間。此外舉例而I 該示範性之方法係亦可以包含藉由-個對應的q識^ 應的動作識別符而識別該第—資料指定路由,或 :-個識別該第-動作之資料來源或資料目的 應的扣標器,識別該第一資料指定路由。 、 一在個不I巳性之實施例中,該方法亦可以包含諸如 由實施該積體電路之—個自 藉 Ο \ 使用電路資源。該示範性的方法係:了 近限制時,可以二 第—動作係具有-個接 計算元件之第-及第二類型。此外,,方法亦可有 :該第-資料指定路由之後,修改電路資源之可用性之計 产=地’㈣-動作係對應於計算元件之第—類型的 二:之::”亥第二動作係對應於計算元件之第二類型的 ^二,功% °編譯係可以為一個符號的電路描述槽,其係 匕3第類型的計算元件、一個第一工作識別冑、一個第 ;動:識別符:一個第二工作識別符及一個第二動作識別 〃中邊第二工作識別符及該第二動作識別符係對應 於一個資料輪入連結或對應於一個用於該第—動 輸出連結。 ’ 一該示範性的方法係可以包含:於偵測到該所選的通訊 凡件内一個錯誤時,建立該第一計算元件及該第二計算元 14 200900916 件之間經過該複數個通訊元件的另一個所選的通訊元件之 -個第二資料指定路由。類似地,該方法係亦可以包入. 於㈣到該第-計算元件内—個錯誤時,指定該第^作 給-個具有第-類型的第三計算元件;及建立該第 疋件及該第二計算元件之間經過該複數個通訊元 個所選的通訊元件之—個第二資料指定路由。此外,於;; :到該第,計算元件内—個錯誤時,該方法係亦可以包 含·指定該第二動作給—個具有第二類 r V, 件;及建立該第-計算元件及該第三計算元件之=异70 複數個通訊元件的另-個所選的通訊元件之一個 Γ路由:此外,當該第—計算元件係位於複數個二陣 電路陣列之一個第二電路陣於編 傳送一個指定路由請求給該複數個電路陣列且=包3 以包含提供該第一資料指定路…:陣列,且進-步可 R s 疋硌由、、,α δ亥弟—電路陣列之一個 了:件:給該第二電路陣列之—個周邊通訊元件。 機二 性之實施例中,該方法係於諸如-個狀態 件執订一個啟動程式之後,由該積體電路之至少一個 免理裔實施。在另一個示範性之實施例中 個計算系統所實施,且該方法係 该方法係由- 指定路由資訊載人該積體電 ^將該些指定及 個5己憶體之中。 在另一個示範性之實施例中,1 其中’該積體電路係包含··複數個計曾::種積體電路, 數個類型,·複數個通訊元件 :φ ’其係具有稷 〃係耦接至該複數個計算元 15 200900916 件,及個處理器,其係輕接至該複數個通訊元 理器係適合於:指定一個第一動作給一個第一計算心處 其係具有複數計篁;社槪丑兀牛 t异凡件類型之一個第一類型; 二動作給一個第-呌筲&从 ^ 疋個第 少μ 其係、具有複數計算元件類型 之一個第二類别.aw貝! 孓,及建立§亥第一計算元件及該第二 件之間經過複數钿、s 1 异70 是數個通§fl 7G件之一個所選的通訊 第一資料指定路由。矽卢搜哭办 件之一個 由貫施該藉靜带V办1 “s稍· r 件及… 我測試,m決定複數個計督元 件及稷數個通訊元件之可 ^ 實施上述方式之協調。 該處…可以適合於 另一個示範性之實施例係 電路之系、統,以實施一個演算法,且;=式規劃積體 數個類型之計算元件及禎 豆路係具有複 係包含:一個二Γ: 元件。該示範性的系統 處理器,呈適合於儲存—個程式;及-個 亥5己憶體,該處理器係適合於:指定 弟一動作至該積體電路之一 扣疋 複數個上+曾-土 计异凡件’其係具有 /口计舁π件的類型之一個第—類型;指 至该積體電路之一個第_ i ν _ —動作 個苐一计异兀件,其係具有複數個叶瞀 -件的類型之一個第二類型;建立該第—計 一计算元件之間經過複數 °亥第 .^ 個通訊70件之—個所選的通邙;
件之一個第一資料指 afl7L 於竇f> °亥糸統之處理器亦可以適合 於貫靶實施上述方式之協調。 週口 1係、j固丁粑14之實施例係提供-種電腦可讀取媒體, /、係以一個電腦程式編 、 1包細私式係具有指令,以用 16 200900916 於程式規劃積體電路,以實施—個演算法,且該積體電路 係具有複數個類型之計算元件及複數個通訊元件。示範性 的電腦程式指令係包含:複數個程式構造之-個第-程式 構、,丨係、適合於指定一第一動作至一個第一計算元件, 其係具有複數個計算元件的類型之一個第一類型;複數個 私式構&之一個第二程式構造,其係適合於指定一第二動 作至一個第一計算元件,其係具有複數個計算元件的類型 之一個第二類型;及複數個程式構造之一個第三程式構 ^其係適合於建立該第一計算元件及該第二計算元件之 間經過複數個通訊元件之—個所選的通訊元件之—個第一 資料指定路由。 ,另外的實施例係亦可以包含:複數個程式構造之一個 第四程式構造,其係適合於決定複數個計算元件及複數個 通訊元件之可使祕;複數個程式構造之-個第五程式構 造,其係適合於決定是否該第一動作係具有一個接近限 制且虽s玄第一動作係具有一個接近限制時,決定是否計 算元件之—個第-陣列係具有計算元件之第-及第二類 型;複數個程式構造之-個第六程式構造,其係適合於: =測到該所選的通訊元件内—個錯誤時,建立該第一計 尤兀件及4第一 δ十算兀件之間經過該複數個通訊元件的另 一個所選的通訊元件之-個第二資料指定路由;複數個程 亡構造之-個第七程式構造’其係適合於:於债測到該第 -計算元件内一個錯誤時,指定該第—動作給一個具有第 滿型的第三計算元件·及逢暫 T t兀忏及建立该第三計算元件及該第二 17 200900916 計算元件之間經過該複數個通訊元件的另一個所選的通訊 元件之一個第二資料指定路由;或者複數個程式構造之一 個第八程式㈣,其係、適合於H則到該第二計算元件 内一個錯誤時,指定該第二動作給一個具有第二類塑的第 二計算7Ό件;及建立該第一計算元件及該第三計算元件之 間經過該複數個通訊元件的另—個所選的通訊元件之一個 苐二貧料指定路由。 在一個不範性之實施例中,一種用於一個積體電路之 私式規劃方法係被提供,該積體電路係具有複數個類型之 複合電路7L件及複數個通訊元件,且該程式係已經被編譯 以指定一個用於複合電路元件的動作及一個資料轉移連 ° 4示範的程式規劃方法係包含··決定積體電路上之可 使用電路資源;指定一第一動作至一個第一複合電路元 件’其係具有複數個複合電路元件的類型之一個第一類 型,私定一第二動作至一個第二複合電路元件,其係具有 複數個複合電路元件的類型之一個第二類型;及建立該第 一複合電路件及該第二複合電路元件之間經過複數個通 Λ 7G件之一個所選的通訊元件之一個第一資料指定路由。 再次參照本發明性的架構,該複數個複合電路元件係 亦可以適配於週期性地儲存一個當時目前的狀態,並且響 應於個偵測到的錯誤,以擷取該儲存的狀態並且利用該 儲存的狀態重新開始操作。 此外’在一個示範性之實施例中,每個對應的元件介 面係包括:一個耦接至該對應的電路元件之第一記憶體, 18 200900916 該第一記憶體係適配於儲存複數個組態設定作為對應的背 景;一個耦接至該對應的電路元件之元件控制器;以及一 個耦接至該對應的電路元件之第二記憶體,該第二記憶體 係適配於提供複數個輸入佇列給輸入到該對應的電路元件 的資料。每個對應的背景係定義該對應的電路元件的一個 組態設定、以及一或多個資料輸入來源或一或多個資料輸 出目的地。該元件介面可進一步包括一個耦接至該電路元 件的第二記憶體,該第三記憶體係適配於提供複數個輸出 佇列給從該電路元件輸出的資料。或者是,該元件介面可 包含用於輸出佇列的第三記憶體,而不包含用於輸入佇列 的第-記憶體。在-個示範性之實施例中,該元件控制器 係適配於當-個對應於該所選的背景之所選的冑入符列具 有輸入資# ’當—個對應於該所選的f景之所選的輸出仔 =有儲存輸出資料的容量,並且當—個對應於該所選的 Μ之狀態位元被設定用於執行時,針對該複數個背景中 ,。所選的背^ ’導引該所選的背景藉由該電路元件的執 丁再者,s亥兀件控制器可進一步適配於儲存一第一背景 :的執仃之目前的狀態在該第一記憶體中,執行— 景:H並且擷取該目前的狀態並且恢復繼續該第一背 行的:;===可進一步適配於在複數個備妥用於執 之對應的背景。舉例而而選擇-用於執行 個·循%的、優先順序、 ^ 取近執行的、最久未 19 200900916 執行的、或是排定的執行。 類似地’在-個示範性之實施例中,該複數個通訊元 件的每個通訊元件係更包括一個對應的元件介面以及一個 對應的通訊電路元件,並且該狀態機元件係更包括—個對 應的元件介面以及一個對應的狀態機電路元件。 在個不範性之實施例中,該複數個通訊元件係進一 步包括:複數個第一诵却4彳生 ^ V. _ . 逋讯兀*件,该複數個第一通訊元件適 配:指:路由給至少—個第一資料字以及切換至少_個第 i料子,以及個耦接至該複數個複合電路元件以及該 複數個第-通訊元件的全互連(full interco麵叫元件,該 全互連兀件係適配於耦接該複數個複合電路元件中的一個 複t電路元件的任何輸出至該複數個複合電路元件的另一 個複合電路元件的任何輸入、或是至該複數個第一通訊元 :。该全互連元件可以散佈在複數個開關、傳輸電晶體、 夕工态或解多工器之間。在其它示範性之實施例中,該全 互t元件是一個縱橫式開關。再者,該全互連元件可適配 於提供以下的實體資料鏈路中的至少一個:複數個一對一 的輸入與輸出資料鏈路、一個_ 個多對一的資料鏈路。 δ亥狀態機元件係可以透過該複數個第一通訊元件中之 Μ個所選的第一通訊元件或是透過該全互連元件來提供該 第:虛擬的資料鏈路。一個所選的通訊元件可進一步適Ζ ;Υ該第虛擬的資料鏈路決定從該第一複合電路元件的 至夕個輸出至該第二複合電路元件的至少一個輸入的複 20 200900916 數個實體資料鏈路中的至少一 y旳主夕個弟—實體資料鏈路。此 外’該所選的通訊元件俜進—牛 仟你進步適配於利用一個儲存在一 個對應的記憶體中的指定路由表, ^ Μ任一個所選的時間戋 是一個所制時脈週期產生該複數個實體資料鏈路。/ 、在不範性之實施例中’該複數個通訊元件係進一步包 括複數個第二通訊元件’該複數個第:通訊元件係適配於 指定路由或切換至少_㈣三㈣字在該複數個複合電路 几件的—個第L及該複數個複合電路㈣的-個第 二陣列之間。該複數個通訊元件亦可包括一個叢集間的仵 列適配於緩衝來自該複數個複合電路元件的一個第一陣列 的至少-個第三資料字,並且傳輸該至少—個第三資料字 至該複數個複合電路元件之一個相鄰的第二陣列。 示範性之實施例係亦可包含一個轉接至該狀態機元件 的訊息管理器電路’該訊息f理器電路係適配於提供一個 通訊介面至一個外部的匯、.ώ M斗、s _ , 扪匯抓排或疋一個外部的記憶體。此 外,該訊息管理器電路亦可以提供一個一致的位址空間給 一個散佈的複數個記憶體複合電路元件。 在示範ί生之只%例中,該複數個電路元件類型係可包 括=下的電路元件類型中的任:可組態較的算術邏 輯單兀彳組態δ又疋的乘法器、可組態設定的位元重新排 列元件、可組態設定的乘與累加元件、可組態設定的Galois 乘法器、可組態設定的桶形移位器、可組態設定的查找表、 可私式化的控制态、可組態設定的控制器、以及可組態設 定的複數個算術邏輯單元。 21 200900916 在示範性之實施例中,該狀態機元件係可以直接或是 透過該複數個通訊元件中的至少—個通訊元件耗接至該複 數個複合電路元件。在其它示範性 既之實施例中,該狀態機 兀件是一個透過該複數個通訊元件中的至少—個通訊元件 耗接至該複數個複合電路元件之外部的控制器或是外部的 =器。典型土也’該狀態機元件係更包括:一個有限狀態 機電路以及一個適配於儲存狀態資訊的記憶體。 在示範性之實施例中,另—操作模式係被提供。在此 模式中,該狀態機元件係透過該所選的通訊元件提供一個 從該第一複合電路元件的少一 一 调輸出至該第二複合電路 凡件的至少一個輸入的第一實體眘 自枓鏈路’並且其中該狀 心、枝凡件係進一步適配於提供 的執行。 促世為弟動作以及該第二動作 在另—示範性之實施例中,一接η 、一垂“一 員财I發明的裝置係包括:⑴ 祓數個电路陣列,該複數個 列的母個電路陣列係包 個元牛複合電路元件’每個複合電路元件係包括-==面以及具有複數個電路元件類型的電路元件,每 元件係具有至少一個輸入以及至少-個輸出, 型·丨Μ彳複數個可組態設定的元件類 i,(b)—個耦接至該複數個 吁入方、奈-扯 反D电路兀件的全互連元件, 該王互連几件係適配於耦 個& 1 合電路兀件中的- 中的一個篦-y人 -亥硬數個複合電路元件 兮入走- 了輪入,(C)複數個耦接至 5亥全互連兀件的第一通訊元件 安主 () 個狀態機元件,其係 22 200900916 耦接至該複數個複合電路元件、該全互連元件、以及該複 數個第一通訊元件;以及(2) —個耦接至該複數個電路陣列 的互連,該互連係包括耦接至該複數個第一通訊元件的複 數個第二通訊元件,該複數個第二通訊元件係適配於從該 複數個電路陣列的一個第一電路陣列傳輸資料至一個第二 電路陣列。 在另一示範性之實施例中,一種發明的裝置係包括複 數個電路陣列,該複數個電路陣列的至少兩個電路陣列係 Η 包括:(a)複數個可組態設定的複合電路元件,每個複合電 路元件係包括一個元件介面以及一個具有複數個可組態設 定的電路元件類型之可組態設定的電路元件,每個複合電 路元件係具有複數個輸入以及複數個輸出;(b) —個耦接至 該複數個可組態設定的複合電路元件之互連元件,該互連 元件係適配於耦接該複數個可組態設定的複合電路元件之 一個第一可組態設定的複合電路元件的一個輸出至該複數 個可組態設定的複合電路元件之一個第二可組態設定的複 〇 合電路元件的一個輸入;(c)複數個耦接至該互連元件的第 一通訊元件;以及(d) —個狀態機元件,其係耦接至該複數 個可組態設定的複合電路元件、該全互連元件、以及該複 數個第一通訊元件,該狀態機元件係適配於指定一個第一 動作給該複數個可組態設定的電路元件類型的一個第一電 路元件類型的一個第一可組態設定的複合電路元件,指定 一個第二動作給該複數個可組態設定的電路元件類型的一 個第二電路元件類型的一個第二可組態設定的複合電路元 23 .200900916 件,並且提供從該第一複合電路元件的複數個輸出的一個 第一輸出至該第二複合電路元件的複數個輸入的—個第一 輸入的一第一資料鏈路,該第一資料鏈路係透過該互連元 件或是透過該複數個第一通訊元件的—個第一通訊元件兀 在另-示範性之實施例中,-種發明的積體電路係包 括:⑴複數個電路陣列,其中該複數個電路陣列的每個電 路陣列係包括··⑷複數個複合電路元件,每個複合電路元 r 件係包括-個元件介面以及具有複數個電路元件類型的: 路元件,每個複合電路元件係具有至少一個輸入以及至少 :個輸出,該複數個電路元件類型係包括複數個可組態設 定的元件類型;⑻-個耗接至該複數個複合電路元件= 互連元件,該全互連元件係適配於輕接該複數個複合電路 元件中的一個第一複人雷政分炎口电路 合何輪出至該複數個複 ::a ▲的一個第二複合電路元件的任何輸入;⑷複 元:全互連元件的第一通訊元件;⑷-個狀態機 凡件,其係㈣至該複數個複合電路元件、該全互連元件、 二及該複數個第-通訊元件’該狀態機元件係適配於指定 動作給該複數個電路元件類型的一個第一電路元 !:型的一個第一複合電路元件,指定-個第二動作给該 馒數個電路元件類型的— 、 > iu矛—罨路兀件類型的一個第二 ::電路元件’提供-從該第-複合電路元件的至上 輪出至該第二複合電政 稷口電路70件的至少一個輸入 路,並且響應於該第— 貝针鑓 誤 複電路70件的一個偵測到的錯 、,以k該第-動作給該複數個複合電路元件的一個第 24 200900916 二複合電路元件並且提供— —、 -個輸出至該第二複人_ '"弟二複合電路元件的至少 料鍵路,·以及⑺-個_二==一個輸入的第二資 互連係包括輕接至該複數個第__ :陣列的互連,讀 訊元件’該複數個第 、° 70㈣數個第二通 陣列的—個第 70係、適配於從該複數個電路 弟-路陣列傳輪資料至— 在另-示範性之實施例-電路陣列。 複數個複合電路元件,每的裝置係包括·· 介面以及具有複數個電路電路70件係包括-個元件 文双调電路兀件類型 電路元件係具有-個輸入以及—個輸出::’:個複合 該複數個複合電路元件的狀態機元件,兮=機個輕接至 配於指定一個第—功心 以狀L機疋件係適 弟功忐給該複數個元件類型的—笛 類型的一個第-複合電路元件,以指定-個第二功:件 複數個元件類型的—第二元件類型的—個第二:::給該 二^且:供一從該第一複合電路元件的輸出至::路: 合電路兀件的輸入的第-資料鏈路。 4第二複 在另-示範性之實施例中,一種發明 複數個複合電路元件,每個複合電路元件係包括=包括: 的^件介面以及—個具有複數個電路元件類型之對個對應 路元件,該複數個複合電路元件中的_個第士應的電 件係具有該複數個電路元件類型的一個第電路元 型,該複數個複合電路元件中的—個第二複二,件類 具有該複數個電路元件類型的一個第二電路=路元件係 接至該複數個複合電路元件的複數個通訊 0 ;耦 以及一個 25 200900916 耦接至該複數個通訊元件的狀態機元件,該狀態機元件係 在執=間適配於指定一個第一動作給該第一複合電路元 件才曰&個第—動作給該第二複合電路元件,並且提供 -在該第—複合電路元件以及該第二複合電路元件之間: 第一資料鏈路。 …在另-示範性之實施例中’一種發明的裝置係包括: 複數個複合電路^件,每個複合電路元件係包括-個元件 介面以及具有複數個電路元件類型的電路元件;以及一個 耗接至該複數個複合電路元件的狀態機元件,該狀態機元 件係適配於指定一個第一功能給一個第一複合電路元件, 指定一個第二功能給一個第二複合電路元件,並且提供— 在該第一複合電路元件以及該第二複合電路元件之間的第 一貢料鏈路;該狀態機元件係進一步適配於響應該第一複 合電路元件的不可利用,以指定該第—功能給該複數個複 合電路元件的—個第三複合電路元件,並且提供一在該第 三複合電路元件以及該第二複合電路元件之間的第二資料 鏈路。 在另一不範性之實施例中,一種發明的裝置係包括: 複數個通訊元件;耦接至該複數個通訊元件的複數個複合 電路元件,每個複合電路元件係包括—個元件介面以及_ 個具有複數個電路元件類型的電路元件,該複數個複合電 路元件中的一個第一複合電路元件係具有一指定的第一動 作,該複數個複合電路元件中的—個第二複合電路元件係 具有一指定的第二動作,該第一複合電路元件係具有一第 26 200900916 一資料鍵路至該第二複合電路元件;以及一個耦接至該複 數個通訊元件的狀態機元件,該狀態機元件係適配於響應 該第-複合電路元件的不可利用,以指定該第—動作給: 複數個複合電路元件的一個第三複合電路 u 1千’並且提供 一在該第三複合電路元件以及該第二複合電路元件之間的 第一貧料键路。 ' 在示範性之實施例中,該第一複合電路元件由於一個 偵測到的錯誤而可能是無法利用的。該錯誤係可以藉由以 下的操作判斷的至少一個操作判斷來偵測出:一個萨 複,個複合電路元件中的至少一個複合電路元件爾: 週』性的診斷;—個被執行作為該複數個複合電路元件中 =二—個複合電路元件的一個所選的背景之背景診斷; 元:所:错由具有相同的電路元件類型之複數個複合電路 執仃的比較測試。在示範性之實 元件係進一舟、态_丄 邊狀態機 動,並且在二:::該第一複合電路元件的所有活 複合電路元件的可利用性表或對映表中將該第-元件可能是由二::法利用的。此外,㈣-複合電路 之第三動作的狀二-一個具有比該第—動作高的優先順序 在_ 、怎機70件之一指定而為無法利用的。 丁 &性之實施例中,該第一複合電路元件以及^ 三複合電路元侔尨、 歿口電路兀件以及垓第 型中之一第—„ 、为別具有該複數個可组態設定的元件類 件係具有C的元件類型’該第二複合電路元 態設定的元件類划態設定的元件類型中之-第二可舨 1,並且該狀態機元件係進一步適配於指 27 200900916 '定該第一動作為該第三複合電路元件的一第一組態設定。 該狀態機元件可進一步適配於從一個第一符號的電路描述 檔元件獲得該第一組態設定以及第一可組態設定的元件類 型。該第一符號的電路描述檔元件可進一步包括一個符號 的指標,該符號的指標係指派該第二資料鏈路作為在該第 三複合電路元件以及該第二複合電路元件之間的虛擬的資 料通訊。 在示範性之實施例中,該第一複合電路元件係具有該 Η 複數個可組態設定的元件類型中之一第一可組態設定的元 件類型,該第二複合電路元件係具有該複數個可組態設定 的元件類型中之一第二可組態設定的元件類型,該第三複 合電路元件係具有該複數個可組態設定的元件類型中之一 第三可組態設定的元件類型,並且該狀態機元件係進一步 適配於指定該第一動作為該第三複合電路元件的一第一組 態設定。該狀態機元件可進一步適配於使用一個儲存的轉 換表,該轉換表係具有一個指向用於該第一動作的移轉的 I 第三複合電路元件之麥照。 在另一示範性之實施例中,一種發明的裝置係包括: 複數個第一通訊元件;一個耦接至該複數個第一通訊元件 的互連元件;複數個耦接至該複數個第一通訊元件以及該 互連元件之可組態設定的複合電路元件,每個可組態設定 的複合電路元件係包括一個元件介面以及一個具有複數個 可組態設定的電路元件類型之可組態設定的電路元件,每 個複合電路元件係具有至少一個輸入以及至少一個輸出, 28 200900916 該複數個可組態設定的複合電路元件之一個第一可組態設 定的複合電路元件係具有一個第一動作,該複數個可組態 設定的複合電路元件之一個第二可組態設定的複合電路元 件係具有一個第二動作,該第一可組態設定的複合電路元 件的至少一個輸出係具有一透過該互連元件或是該複數個 通訊元件中之一個所選的通訊元件的第一資料鏈路至該第 二可組態設定的複合電路元件的至少一個輸入;以及一個 狀態機元件,其係耦接至該複數個可組態設定的複合電路 f 元件、該互連元件以及該複數個通訊元件,該狀態機元件 係適配於響應該第一可組態設定的複合電路元件之一個偵 測到的錯誤,以指定該第一動作給該複數個複合電路元件 中之一個第三可組態設定的複合電路元件,並且透過該互 連元件或是該複數個通訊元件中之一個所選的通訊元件以 提供一從該第三複合電路元件的至少一個輸出至該第二複 合電路元件的至少一個輸入的第二資料鏈路。 在示範性之實施例中,當該第一可組態設定的複合電 I 路元件以及該第三可組態設定的複合電路元件係具有相同 的可組態設定的電路元件類型時,該狀態機元件係進一步 適配於傳輸該第一可組態設定的複合電路元件的至少一個 組態設定至該第三可組態設定的複合電路元件。此外,該 狀態機元件可進一步適配於維持該複數個可組態設定的複 合電路元件中可利用的可組態設定的複合電路元件的一個 計數,並且響應於該具有複數個用於對應的功能之執行的 背景之第一可組態設定的複合電路元件的錯誤的偵測,以 29 200900916 提供該複數個背景至該複數個 中之一或多個可利用的可組態 该些對應的功能。 可組態設定的複合電路元件 設定的複合電路元件以執行 在另—示範性之實施例中’ 一種發明的裝 :复數輪陣列,該複數個電路陣列的每個電路:列係(:) 括·-個互連元件;複數個麵接至該互連元 ^ :件;複數個輕接至該互連元件的複合電路元件,每= :二路几件係包括一個元件介面以及一個具有複數個電路 兀件類型的電路元件,該複數個複合電路元件中的 =電路元件係具有一個第一動作,該複數個複合電: 二中二個第二複合電路元件係具有—個第二動作,該 第n % Γ Γ件係具有""透過該互連元件或是該複數個 凡件中之一個所選的第-通訊元件的第-資料鏈 路至該第二可組態設定的複合電路元件;以及—個狀= 兀件,其係耦接至該複數個複合電路元件、全互連元 以及該複數個第-通訊元件’該狀態機元件係適配:塑應 该苐-複合電路元件的不可利用,以指定該第一動作ς該 複數個複合電路元件的—個第三複合電路元件,並且透= 該互連元件或是該複數個第-通訊元件中之_個所選的^ -通訊元件以提供一在該第三複合電路元件以及兮第二— 合電路元件之間的第二資料鏈路;以及⑽接至該複數: 第-通訊元件的複數個第二通訊元件,該複數個第二通訊 几件係適配於從該複數個電路陣列的—個第_電路傳 輸資料至一個第二電路陣列。 30 200900916 在示範性之貫施例中,該第— 態機元件係進-步適配於提供該第—:陣列的-個第-狀 >料鏈路,其係择由 透過一個第二通訊元件來傳輸一指 、y、曰 疋路由的請求至ΐ玄; 個電路陣列的其它電路陣列的複數個: 藉由將該第-資料鏈路指定路由、‘▲件亚且 々 彳口弟一通訊元件。 在另一示犯性之實施例中,_ ^ , 種兔明的自我復原(self-
heaHng)積體電路係被提出,該龍電路係包括:第一複數 個複合電路元件’I亥第-複數個複合電路元件的一個第一 複合電路S件係適配於執行—第—功能;複數個耗接至該 第一複數個複合電路元件的通訊元件;第二複數個複合電 路元件,其係透過第—複數個資料鏈路、透過該複數個通 訊元件中的至少一個通訊元件耦接至該第一複合電路元件 用於§亥第功月b的執行,以及一個狀態機元件,其係輕接 至該第一複數個複合電路元件並且適配於響應該第一複合 電路元件的不叮利用,以調整該第一複數個複合電路元件 中的一個第二複合電路元件來提供該第一功能並且提供在 該第二複合電路疋件以及該第二複數個複合電路元件之間 的第二複數個資料鏈路用於該第一功能的執行。 在另/示範性之實施例中,一種發明的裝置係包括: 複數個複合電路元件’每個複合電路元件係包括一個元件 介面以及,個具有複數個電路元件類变的電路元件;以及 一個耦接炱該複數個複合電路元件的狀態機元件,該狀態 機元件係適配於指定—第一功能給〆個第一複合電路元 件,指定〆個第一功能給一個第二複合電路元件,並且提 31 200900916 i、一在该第—複合電路元件以及 的第-資料鏈路.兮m s電路7^件之間 -複人電路-杜… 7^件係進一步適配於響應該第 複“路凡件的,測到的錯誤,以指 給該複數個複合電路元件的—個 —、力月匕 供-在該第三複八電路 -路兀件並且提 的第二資料_ 凡^及㈣二複合電路元件之間 l —實她例以及另外的實施例係在以下更詳細地加以 論述:本發明的許多其它優點及特點從以下的本發明詳細 說明以及本發明的實施例、&申請專利範圍並且從所附的 圖式來看將會變成相當明顯的。 【實施方式】 雖然本發明容許有許多不同形式的實施例,但是本發 明的特定實例及實施例仍被展示在圖式中並且在此將會詳 細地加以描述,而認知到本發明的揭露内容是將被視為本 發明的原理的例證,並且非打算限制本發明至所說明之特 定貝例及貫施例’並且許多從所述的實施例所為的變化或 修改都是可能的且被視為等同的。就此方面而言,在詳細 解釋與本發明一致的至少一個實施例之前,將瞭解到的 是’本發明在其應用上並不限於在以上及以下所闡述、在 圖式中所繪、或是在實例中所述的結構以及構件的組態設 定之細節。與本發明一致的方法、系統及裝置係能夠有其 它實施例,並且能夠以各種方式實施與執行。再者,將瞭 解到的是,在此所用的措辭及術語以及内含在以下的摘要 32 200900916 是為了說明之目的且不應該被視為限制。 胃:上所指出地,本發明的IC架構的最新穎特點中之一 疋其彈性,此係對於在1(:的使 陷、瑕-提供調整,以及對於新的=可::現的製造缺 其它事件提供可調整性。m μ 声在Μ… c架構的彈性及強健 又二 有增加良率’因為被製造出帶有各種缺 的本《明的Ic仍'《會是相當有用且完全作用的。 ^ ’在動作期間,此種彈性係可被描述為“神經的,, ==我復原,因為在1C的—部份受損或是變成 ^ 、件中,該1c的另一部份係有效地“被徵召,,或 是重新指派來取代及執行的功能該受損的部份。此外二 斜::加:平細所述’當功能被重新指派時’新的控制 貝;、⑬亦被產生’因而被轉移的運算係與A t 運 ^不間斷地繼續執行。此種適應的彈性及自我復原可以即 :或是幾乎即時地產生,此係依據所選的實施例而定。假 认有足夠的计异貧源保持操作,此係容許IC能夠無 地、、k續運作。纟Ic損壞的事件中,此種彈性係提供效能 的優雅降級’而不是災難的失效,因而此在健康及安全的 應用中尤其是重要的。 一本發明之連結系統、方法及軟體係設計成符合這些獨 一無二的需求。本發明性之編譯器係於啟始時(或執S時 間)轉換—個演算法成為一個適合於連結該些運算及該積 體電路之形式,且接著可以於該積體電路之-部分係損壞 或者變成不能使用之情況了,再連結該錢算。因此,、本 33 200900916 發明性之編譯器係轉換演算法成為工作及用於每一個工作 Π5且接著識別計算元件之類型及其之資料輸入或資 積:雷腺以用於實施每一個如此之工作,而非指定動作給 ㈣電路上之元件類型的真正情況或例子。 係編譯成-個,,«的電路描«,,(symbGUe副ist),= ===真::rr於執行時間時被指定及 重新,定“ 隨著需要或建議而被 r. ,:. 重新連結。舉例而言,該程式規劃或連結方法 :包;定指:一第-動作至-具有第-類型之第-計算元 曰弟-動作至-具有第二類型之第二計算元件, :夕:-個所選的通訊元件之該第一計算元件及該第二 。# 7〇件之間之一個第一資料指定路由。 的數=:' = =述範性之實施例 降級成為可能的。首 、:的動作以及最終的優雅 合的,,電路元件以勺扭’。lC A其它元件“複數個“複 1/〇介面件(其包括各種類型的計算元件、-個-致的 路元件是可個—致的控制結構)所構成;這些複合電 個元件的功能的事件中,#有另—複使=知失一 候,其功能可被該;一複== 何功能二η:的來:Γ- 完整的1 ^ _ 4凡件在計算上是 器(在此稱;狀:::功能是分散在複數個電路“叢集,,控制 為狀恶機元件”或是“有限狀態機元件,,)之間, 34 200900916 使得控制功能死 間。第四,,此所需地被轉移在這些分散式控制器之 的,以助於電路元件及/或其互連線是可組態設定 移。第五,所右制路徑之功能及任何對應的路由的轉 結合在該元件之Γ選的運算在最初的執行時間係被指定且 定及重新結’並且接著隨可能是所需地可被重新指 繼續運算。軚移對應的功能至其它複合電路元件並且 教示I 一1個係高階或是概念上的層級來描繪根據本發明的 範11之裝置1 〇〇實施例的此種彈性之圖。如 在圖1中所緣,赞 例而言,參考圖:見為—個IC的裝置100的各種部件(舉 m .. n "至3所繪及所述的各種矩陣1 50)係被利 其、才仃複數個功能,舉例而言,可能與典型的汽車、 :::::工具或電腦化的系統或是複雜的系統相關連的功 ^時^期間“α”中’—個IC部份1()2係、提供防鎖死煞 )力月b 個1C部份104係提供循跡控制功能,一 α ^106係提供視訊或其它多媒體功能,並且一個1C ^ 108舉w而言是透過衛星或無線電鏈路來提供導航功 月& 。 * —在時間期間“P”中,IC部份1〇2的一個區域n〇(以“X” 矛T )係已變成不能利用的,其舉例而言是因為該1C的有 ϋ #或是其它損Μ。此種損€可透過自我測試或是透過 在以下更加詳細描述的其它手段來加以判斷 abs θ 疋—項高度優先的功能,所以在區域11〇之内執行的功能 係接著被重新指定(或結合)至區域112,區域112先前是 35 200900916 在執行視訊功能,該視訊功能在交通工具的環境中具有較 低的動作優先順序。如同在以下更加詳細論述的,作為此 重新指定方法的部份的是,新的資料及控制路徑亦將會被 產生,因而該新指定的區域繼續與該ic的其它區域正常 料地通訊,就像是該重新指定不曾發生過—般。依據指 ,到此區域的新功能的本質及範圍,1C部份106可繼續或 疋可不繼續執行其視訊功能、或是可以用較低的頻寬或速 度執行此功能。在任一種情形中,儘管IC100有損壞,較 高優先順序的ABS仍然繼續作用為操作的,因而沒有災難 的失效發生。 “接著,在時間期間、,,,IC部份108的區域114及116(以 “tx^標示)係已變成不能利用的,並且其功能係分別被重新 扣疋至區域u 8及1 20。在此例中,由於(區域1 04的)循 跡控制-般可具有高於該導航系統的動作之優先順序,所 以,域118是可利用#,且並非完全被該循跡控制功能利 ^二可能的(舉例而言,一或多個複合電路元件及/或背景 是可利用的,即如下所論述者)。然而,隨著該1C中更多 _ 一1§就或其它指示可被提供給使用者,舉例而 ° ’使仔该交通工具在不久的未來送修以更換1C。此外, 如上所提及且如同在以下更加詳細論述的,根據用於將被 T新心疋的功能的目標目的地之可利用性並且根據該功能 P如何被重新指定,該些被重新指定的功能可能不再最佳 2執订(舉例而言’它們可能是較慢的、或是具有較小的頻 )彳一是仍然可執行。同樣地,此種在效能上的下滑是漸 36 200900916 進的’而非災難的’其具有得以提供充分警告的功能。 接著,在時間期間“δ”,IC部份1〇4的區域122、124、 126以及128(以X”標示)係已變成不能利用的,並且其功 能係分別被重新指定至區域132、138、134以及136。在 此例中,由於(區域! 〇4的)循跡控制一般會具有比W部份 106的視α孔系統的動作高的優先順序,所以那些較高優先 順序的功此係被重新指定至該IC之未受影響的區域。在 此例中’看起來有道理的是視訊功能可能會完全停止,因 為省1C剩餘可用的部份正在執行那些較高優先順序的功 月b舉例而3,煞車及循跡控制。然而,隨著該IC:中更 夕。卩知义差,一警告、信號或其它指示亦可被提供給使用 者舉例而σ使得该交通工具立即送修以更換1C。同樣 地,此種在效能上的下滑是漸進的,而非災難的,其具有 供高的優先順序的功能繼續運作的能力,儘管在該/IC的 許多部份中有著原本會使得習知技㈣IC完全、突然且 可此疋尺難性地失效之重大的故障。 在裝置100的運算上之生物學的平行性是引人注目 的/由於在一個可治癒本身的生物學系統(舉例而t,神經 子系統)中’在舉例而言是損失神經元及對應的神經功能之 中風的知害事件中,其它現有的神經元係被徵用,其中新 的連接(突觸)被產生,以取代及回復先前由受損的神經元 所執行的功能。在該裝£ 100的情形中’在該Ic的一或 m.貝壞的事件中,該1C的其它現有部份(電路叢集 ^ δ電路兀件(在以下論述之))係被徵用,其中新的連接 37 200900916 被產生’以取代及回復先前由兮ΤΓ戽招认r 月J审δ亥1C丈杈的區域所執行的 功能。因此,如同在生物學系統中,儘管Ic受損,該裝 置100係自我復原,此係使得不間斷的功能成為可行的。 A.裝置架構
圖2至3是以漸增的詳細程度來描綠根據本發明的教 示之示範性之第-及第二裝£ 1〇〇、14〇之方塊圖,該第 一及第二裝置100、140典型是體現為一個Ic或是一個 的部份。如同所繪,該裝置1〇〇、14〇是高度分散的,且 計算上是“平^’,*中所彳的計算都m複數個複合電 路元件260所執行的。一項“動作,,是指將藉由一個複合電 路元件260(透過其内含的計算或其它類型的電路元件 所執行的功能或活動的類型,舉例而言,乘法或位元處理。 如同所繪,有各種類型的複合電路元件26〇,其係被描繪 為不同類型的複合電路元件(等同地被稱呼且縮寫為“複合 的元件,,(“CE,,))CEa、CEb、CEc、CEd、% 以及 %,其 係執行不同的動作且為可組態設定的或是非可組態設定的 (如參考圖5至8所繪及所述)。作為一個第一編組的複數 個複合電路元件260以及以下論述的其它電路結構係被聚 集為對應的複數個電路“叢集,,2 〇 〇。各種的編組亦可以對應 的層級而被視為複數個複合電路元件260的陣列。 於是,裝置100、140可以在邏輯上被劃分為複數個層 級、或是由複數個層級所構成,其中,此較低的層級被稱 為一“叢集,,層級(或是一個第一陣列),該複數個電路叢集 2〇〇接著透過各種的(第二)通訊元件21〇以及一個第二通 38 200900916 遏(或是匯流排結構)220而被聚集為一中間的層級(或是一 個第二陣列),以作為一個第二編組,其係被稱為一叢集編 的或疋超叢集(SUpercluster)”層級(複數個超叢集ία), 其接者進—步透過各種的(第三)通訊元件190以及第三通 道(或疋匯流排結構)195而被聚集為一較高的層級,以作 為個第二編組,其係被稱為一個“矩陣,,層級(複數個矩陣 150)或疋早元層級(或是一個第三陣列),其係進一步透過 们第四通道(或是匯流排結構)丨6〇而被 —或元件層級,以作為一個第四編組:广置 該各種的通訊通道(舉例而言,匯流排或匯流排結 構)160、195、22()以及通訊元件19()、21()、w整體可被 稱呼且定義為本發明的互連155,其係料資料及控制資 訊能夠在各種叢集200的任一個叢集200以及其它IC構 母個該裝置_、14〇典型係體現為—個積體電路,並 且係可以是一個別的IC或是-個較大的系統上晶片(“soc”) :份=個網路的1C的部份,舉例而言,其係耗接 在一们電路板、佈線網路、網路網格等等之上的1 — =個裝置實施―。不同之處只有在各種的二: 中破利用W提供輸人與輸 積的1C戋1~ I 升匕外邛的或是非集 n 件,舉例而言,外部的記憶體(舉例而t, DR-2)或疋外部的通訊通道或匯流排(舉例而t, m-EXp⑽(PCl_e))的構件位置(及/或 / ^ 而言,此種外部的卯已集中在一個所選的矩陣ΓΛ置内140 39 200900916 ⑽衣 而言,此種外部的ι/ο已分散在複數個矩 陣15〇。在所有其它的方面中,裝置ι〇〇、ΐ4〇是相同的。 因此’任何參照至裝置⑽都將會被理解為表示且包含被 描繪為裝£ 140的第二實施例’並且裝置140將不會被進 -步論述為-個別的實施例。再者,儘管圖2肖3描緣兩 個矩陣150,但應瞭解的是,裝置100、140可包含一或多 個矩陣1 5〇,並且不範性之實施例可包含任意數目的矩陣 W0,此係依據所選的應用以及各種的設計參數(舉例而言, 1C面積以及功率需求)而定。 、睛參照圖2至3,如上所指出地,該裝置1〇〇邏輯上 被刀為複數個矩陣丨5 〇、或是由複數個矩陣1 5 〇所構成。 每個矩陣150係透過對應的複數個第三通訊元件19〇以及 一個第四通訊通道(或是匯流排結構)160來加以耦接,並 且每個矩陣15〇具有至少兩個輸入以及兩個輸出資料及控 制路徨,其個別被描繪為(第四通道(或是匯流排結構口 的)輸入與輸出(“I/〇,,)17〇及I/O 180。根據所選的實施例, 該第四通道(或匯流排結構)160(以及I/O 170以及180)可能 已經利用相同的匯流排結構來結合控制及資料I/O路徑(如 圖所%)與資料、組態設定及控制資訊、或是此種資料、組 悲設定及控制可以分開到不同的匯流排或互連結構(未個別 地螬'出)上。在一個示範性之實施例中,在此矩陣1 5 0的層 級’此等複數個第三通訊元件1 90係透過示範性之通訊電 舉例而言’封包指定路由或是路點(waypoint)電路來 力乂貫施。在一個第三通訊元件190及/或該I/O 1 70、18〇 200900916 中的—個'或是該些元件的任何部份失效的事件中,另一 個第三通訊元# 190以及剩餘# I/O 170、U0 {可利用來 提供相同的功能’儘管在可利用的通訊頻寬上可能會降 低在個不範性之實施例中,該第三通訊元件190係被 實施為單一組合的電路元件,其係具有四個獨立的上傳通 道^及四個獨立的下載通道(以及對應的匯流排結構);或 者疋,忒等各種的通道亦可以被實施以提供全雙工通訊。 在示範性之實施例中,此種複數個(至少兩個)通訊元 件以及匯流排結構之對應的I/O部份(具有組合的控制及資 料I/O路徑)的使用是在各種的邏輯、階層式層級的每個層 級處都重複,此係在各種的通訊元件或I/O路徑中的任一 個失效的事件中提供對應的彈性。然而,對於需要較少彈 生或疋叉到其它限制之選定的實施例,此種一或多個額外 的通§fl元件及對應的I/O組是選配的且可被省略。 於是’每個矩陣1 50在邏輯上係被劃分為各種的階層 層級或子群組,亦具有用於在各種層級之間通訊的電路, 舉例而言,該複數個第三通訊元件19〇係適配於執行封包 為主的指定路由、自我指定路由、通道(tunneling)、或是 其它類型的資料、組態設定以及控制通訊。更明確地說, ~個矩陣150邏輯上被劃分為複數個超叢集185,該些超 叢集1 8 5係透過該複數個第三通訊元件i 90以及第三通道 (或匯流排結構)1 9 5來彼此搞接,並且經由第四通道(或是 匯流排結構)160以及其它對應的第三通訊元件19〇來進一 步轉接至其它矩陣15〇的超叢集185。 200900916 於是’該些超叢集185邏輯上係被劃分為對應的複數 個電路叢集200(被縮寫且在此就稱為多個“叢集,,或是一個 “叢集”)’該些電路叢集200於是由複數個以下論述的被稱 為複合電路元件260(或是等同地被稱呼且縮寫為“複合的 元件’(“CE’’)260)以及其它構件(包含第一通訊元件25〇及 狀態機元件290)的電路元件所構成。在這些各種叢集2〇〇 之間的通訊係透過複數個第二通訊元件21〇(亦可提供封包 為主的指定路由、自我指定路由、通道、或是其它類型的 資料、組態設定以及控制通訊)以及一個第二通道(或是匯 流排結構)220來提供的。在一個超叢集185之内的各種叢 集200係接著進一步耦接至相同或其它矩陣15〇的其它超 叢集185的其它叢集200,此係經由第二通道(或是匯流排 結構)220、第二通訊元件21〇、第三通道(或是匯流排結 構)195、以及第三通訊元件19〇,並且接著經由第四通道(或 是匯流排結構)1 60來耦接至其它矩陣。此外,作為—個選 配的變化,可在相鄰的叢集之間提供“快速的路徑,,連接, 其係在圖2中被描繪為連線215,並且在以下更加詳細描 述。 各種的第二及第三通訊元件21〇、19〇以及通訊通道(匯 流排結構)1 60、195、220的層級整體係構成本發明的—個 互連結構1 5 5。如上所指出地,該第二及第三通訊元件2、 190可如同在此項技術中已知地被實施、或是如同變成已 知地被實施,用於資料的傳輸、指定路由或是交換、組態 設定以及控制往返於可定址的叢集2〇〇。該第二以及第三 42 200900916 通訊元件2 10、1 90可被實施為指定路由的元件、自我指 定路由的元件、路點的元件、電路交換的元件、混合式指 定路由及電路交換的元件、其它交換器為基礎的通訊元 件、或是其它類型的通訊元件、以及被視為等同者。該些 各種的通訊通道(匯流排結構)16 0、19 5、2 2 0可利用在IC 製造及處理中可利用的任何導電路徑來加以實施。 在示範性之實施例中,此互連1 55(通訊通道(匯流排結 構)160、195、220)大致將會是“η”位元寬,其中該數目“η” 是依據所選的實施例之目的來加以選定的。舉例而言,在 一個示範性之實施例中’ “η”是17或更多的位元,其係提 供一個1 ό位元資料字以及一或多個控制或信號位元。該 互連155除了包括一或多個如在圖2至3中所繪的匯流排、 導線、導體、傳輸媒體或連接結構之外,該互連1 5 5亦包 δ複數個谷納η位元見度的通訊元件(1 9 〇、2 1 〇 ),該此通 訊元件係在矩陣150、超叢集185、以及叢集2〇〇之間提 供資料字(或封包)指定路由或是其它的發送、組態設定字 (或封包)、以及/或是控制字(或封包)。在示範性之實施例 中,根據將要提供的互連度,這些通訊元件(19〇、21…亦 可以提供仲裁或是其它的指定路由衝突解決。 在叢集200的層級内,第一通訊元件25〇係提供叢集 I/O,除了叢集間的資料、組態設定及控制指定路由之外, 該叢集I/O係提供叢集内的電路為基礎的(或是電路交換的) 連接功能,產生往返於在—個叢集200内的構件之直接的 通訊鏈路或連接、以及往返於其它叢集200的構件之資料、 43 200900916 組態設定及控制指定路由。 叢集200或超叢集185内·、=丨實施例中,在-個 供組態設定及控制之F q °心S理益265亦被利用以提 組態設定及控制之外邛及任何類型的資料、 、 卜邛的輪入與輸出通訊。 應注意到的是,在任 每 荷疋的焉施例中,驶菩 的層級數之選擇是可對 4置100内 的祚盔肱4 、、特疋數目的計算的元件而改變 的,作為將被利用的實體互 卢的平衛 t 4 一味 較於指定路由的複雜 度的千衡。在该不範性之實施例 電路元件26G而言,舉例^ ^相同數目的複合 叢隼、以Μ八士 ’層級(矩陣、超叢集、 :集以及複合電路元件層級)的使用相較於三個 中母個層級有較多的構件) 八 势旦⑽— 、使传在互連的匯流排及導線的 數置上顯者的降低成為可能 勹“匕的,此係導致面積節省及電容 〜低’而其代價則是額外的指定路由複雜度。 請繼續參考圖2肖3,作為一個選項或替代例的是, 根據所選的實施例,-或多個額外的控制1 ”5可被利用 在各種矩陣150、超叢集185或叢集2〇〇層級的任一者。 舉例而吕,執打時結合之示範性之實施例(以下參考圖Μ 論述)可以利用此種額外的控制器(或者同意義地,複數個 處理器)175,也可以利用一或多個狀態機元件29〇(以下 論述)作為一或多個控制器、或兩者皆是。於一個示範性之 實施例中,該控制器或者處理器175係使用—個商業上可 取得的處理器或微處理器而實施,舉例而言arm或 MiCr〇-Blaze。該處理器175亦可以於一個分離的系統内, 或者可以整合成為該裝置100、140之晶片的—部分,等 44 200900916 ' 等,且可以為任何類型的處理器或控制器,或者亦可以使 用一或多個狀態機元件290而實施。此外,該裝置100(或 1 40)亦可包含其它構件,舉例而言是任何可以整合或耦接 該裝置的其它電路或其它元件,舉例而言,射頻或蜂巢式 通訊電路、記憶體電路、處理器、微處理器、等等,所有 此種變化都被視為在本發明的範疇之内。 接著介紹該裝置1 〇〇的動作,資料計算及處理透過複 合電路元件260而被執行在該複數個叢集200之中。這些 C ' 電路元件260被稱為“複合的”電路元件260是因為在示範 性之實施例中,其係由一個第一固定或不變的部份以及一 個第二可變的部份所構成,其係可組態設定的或是非可組 態設定的(依據複合電路元件260的類型而定)。更具體而 言,每個複合電路元件260係由所構成:(1) 一個一致或固 定的元件介面及控制280,對於每個複合電路元件260而 言都是相同的;以及(2) —個從複數個類型的計算的元件 270(可組態設定的、或是非可組態設定的)所選的類型的“計 (, 算的”或是其它電路元件270,其係參考圖5至8而更加詳 細地被描繪及論述。 在複合電路元件260内之計算的電路元件270(亦就只 是稱為元件270或電路元件270)會在類型及可組態設定性 有所變化;該計算的元件270被稱為“計算的”只是便於參 考用,因為各種類型的電路元件270都可具有就任何嚴格 意義而言都不算是計算的功能,舉例而言,記憶體功能、 有限狀態機功能、通訊功能、等等。舉例而言,某些電路 45 200900916 · 元件270可以是具有複數個類型的靜態或可組態設定的計 算的元件、具有複數個類型的靜態或可組態設定的記憶體 元件、具有複數個類型的靜態或可組態設定的通訊元件或 介面、靜態或可組態設定的狀態機元件、等等,此係導致 有複數個類型的複合電路元件260,舉例而言,可組態設 定的複合電路元件260、可組態設定的或是非可組態設定 的記憶體複合電路元件260M、或是可組態設定的或是非可 組態設定的複合的I/O或是其它通訊電路元件260(其可提 f 供用於舉例而言是外部的通訊之I/O介面)。於是,除非背 景需要或是另有指出,否則任何在此參照至一個複合電路 元件260都將會被理解為表示及包含複合電路元件260之 各種類型、特殊的實例或是特定的實例或舉例中的任一 種,舉例而言,可組態設定的複合電路元件260、狀態機 元件290、第一通訊元件250、以及複合的記憶體元件260m。 此外,該第一通訊元件250(叢集I/O)舉例而言係可被 實施為一個類型的複合電路元件260,其係具有一個呈現 、: 給其它複合電路元件260之元件介面及控制280,並且具 有一個設計用於通訊功能的計算的元件270,並且該計算 的元件270可以是或可以不是可組態設定的。此外,如下 所論述,典型體現為一個狀態機且被稱為一個“訊息管理器” 電路265之額外的電路係被設置在各種的叢集或是所選的 叢集200之内以執行外部的通訊功能,舉例而言,提供通 訊介面至外部的記憶體、匯流排及通訊系統,舉例而言, 提供符合各種通訊及其它資料傳輸標準的介面,並且當該 46 200900916 亦可包含用於與一 裝置100被體現為一個SOC的部份時 個1C的其匕部份通訊的介面。舉例而言,根據所選的實 施例,-個訊息管理器265(作為專用的硬體)或是一個複 合電路7L件260(具有一個適用於通訊功能的計算的元件 270)可被利用於此種外部的通訊,舉例而言,提供一個乙 太網路介面、-個PCI介面 '一個pci Ε_ ;面、_
個USB或USB2介面、一個職SDRAM介面或是其它類 型的記憶體介面、一個無線介面、一個至另一…的介面、 等等。在示範性之實施例中,該訊息管理器亦可被利用於 在該裝置⑽内的通訊,舉例而纟,在叢集2〇〇之間的通 訊以及在狀態機元# 29〇之間的通訊,即如同在以下更加 洋細論述的’舉例而言是用於組態設定及控制的發送訊 於其他示範性之實施例中,外部通訊(舉例而言用於 DDR-2 PCI、PCI-e)係由竊合至該互連155之其他構件提 供,且該訊息管理器電路265係提供一個超叢集185及/ 或叢集200内的串々IL為基礎的通訊以及互連網路wo、丨、 160 170及180上之以封包為基礎的通訊之間介面連接, 基本上係取代諸如於超叢集185C及叢集2〇〇c實施例中之 第:及/或第二通訊元件250、210。於此實施例中,該訊 g理為電路265係、亦可以實施為一個有限狀態機或者作 為-個有限狀態機結合各種組合邏輯閘,且該訊息管理器 電路265係處理三種訊息種類:進來的訊息、出去的確認 收到及出的訊息’所有訊息係皆經過互連i 55。兩種型式 47 200900916 之訊息被使用:資料寫八訊息及 訊息係導致該訊息内的酬載:拷貝訊息。資料寫入 位址。資料寫入訊息,舉::被窝入至該訊息"旨定之 入,寫入至第二記憶體元彳255,。系可以為使用者工作寫 匯流排285寫入,諸如用於 或者經由組態設定/控制 狀態機元件290之可執行碼…’或^態機70件㈣且修改 集200内任何複合的電路元^ 入以組態设定一個叢 於舉例,該訊息管理器電路於此貝施例中,亦用 一提屬機元件二 息自,定的來源位址被傳二 路-產生,以回應該訊息管理器電 g + . 月表回應的進來的資料寫入訊息, 且出去的確認收到本身係 於第二記憶體元件卿息。出去的訊息係 ^ At (牛例而吕,叢集200隨機存取記 體)被狀恶機元件29 電路二二息管理器 且指定該訊息大小而m自έ : 心之開始處 凡成此3凡心組合係可以應用於不需 要確認收到的出去的訊息或者延伸至需要確認收到的出去 的訊息。 雕::乾性之實施例中,开技叢# 2〇〇隨機存取記憶 肢之二記憶體元件255係實施為8Κ乘上1 6個區塊, 且位址產生器係設置於該記憶體類型的複合電路元件26〇μ 之内’而非使用狀態機元件290,以用於位址產生。一個 額外的暫存考係亦π # 保亦可以被使用,其假如被設定,則該額外 48 200900916
V ./ 的暫存器係保存該記憶體類型的複合電路元件26〇M,以 狀態機兀件290使用,諸如用於儲存指令集,且其假如由 被設定,則致能由其他複合的電路元件26〇所使用。位f 產生係可以包含,舉例而言,先進先出(fif〇)、區塊= 取/寫入(包含計數及跨越(striding))及二維或三維位 址產生。第二記憶體元件255係亦能夠為一個具有或不具 有分頁或快取記憶體結構之階層式記憶體。用於輸入資料 至第二記憶體元件255的優先次序典型地係為:該訊息管 理器電路265,以避免互連155上之資料備份;其後= 該記憶體類型的複合電路元# 26〇m ’再接著狀態機元件 290。該記憶體類型的複合電路元件26〇m係具有額外的特 色,諸如為同步的,且進一步允許複數個程序/背景同時 執行(只要無資料碰撞存在)。 在另一示範性之實施例中,該訊息管理器電路265亦 被組態設定或適配於管理散佈於整個裝置1〇〇的記憶體類 型的複合電路元件26〇M。舉例而言,該訊息管理器電路265 係適配於提供一個一致的位址空間給散佈的複數個記憶體 複合電路元件。透過訊息管理器電路265的此種用途,該 散佈的複數個記憶體類型的複合電路元件26〇係呈現給其 它的複合電路元件260並且可被管理為一個大的記憶體陣 列。 每個可組態設定的計算的元件270都是由組合邏輯(亦 即,構成一個功能單元的一個邏輯閘群組,舉例而言,加 法器、乘法器、算術邏輯單元(“ALU”)、等等)所構成的, 49 200900916 其係具有適配於可改變的、或是能夠被修改的輸人、輸出、 以及其它内部的連線。更明碟地說,每個可組態設定的計 算的元件270係㈣計成使得其邏輯問或其它的功能單元 可以透過交換電路、元件或是其它交換結構,舉例而言’ ,關、多工器、解多工器、傳輸電晶體、縱橫式開關、指 定路由元件、或是其它的電晶體組態設定,以複數個方式 的任-個方式來加以叙接或連接(或是解除㈣或斷開), .以執行對應的複數個功能。每個連接各種問(或功能單元) ‘之不同的方式是一種“組態設定,,,並且一個所選的組態設 定可被表示為複數個位元,該複數個位元係控制對應的開 關:多工器、解多工器、傳輸電晶體、或是其它的電晶體 或又換配置,此係產生該所選的組態設定之特定的連接。 舉例而5 ’加法器、乘法器以及暫存器可以用任意數目的 各種方式加以耦接以執行廣泛種類的功能,從簡單的算術 至離散餘弦轉換。在其它情況中,一個組態設定亦可以指 (口出,人f料是如何被解釋或㈣,舉例而言,帶正負號的 或疋不π正負號的、常數或是變數、可消耗的或是非可消 =的、等等。其它的組態設定類型以及組態設定的方式是 %子技術巾已知㈤、被視為等同的且在本發明的範疇内。 用於—個可組態設定的計算的元件27〇之每個可利用 =組恶设定、或是所選的組態設定都被本地儲存在該複合 電路兀件260的元件介面及控制28〇的一個記憶體之内。 同在以下更加詳細論述的,每個這些組態設定結合其它 I (牛例而5 ,所選的輸入、輸出目的地及控制資訊)係 50 200900916 . 被定義為、或是包括一個對應的“背景”。舉例而古,一 的相同組態設定可具有多個背景,其中每個背景係利=不 同的輸入並且提供輸出至不同的位置、或是利用不同的常 數。此外,不同的組態設定舉例而言亦將會提供不同的背 景,即使是不同的組態設定會利用相同的輸入且提供輸出 至相同的目的地也是如此。在討論本發明示範性之實施例 中所利用的内部及外部的通訊及定址之後,複合電路元^ 260的動作及控制係在以下參考圖5至8與16更加詳= Π 述。 、田 在示範性之實施例中,在一個叢集200内的複合電路 元件26〇之間的各種連線以及從一個叢集至另一叢集的指 定路由或通道(經由通訊元件250、21〇或19〇)係在執行時 藉由該裝置100的作業系統來加以建立,用於一個所選^ 程式、演算法或功能的實施。此外,此種連線可以隨著時 2過去而改變,並且根據所選的實施例,其一般將會隨著 (/時間過去而如可能是所需地改變,即如在以上參考圖丄簡 短論述及如同在以下更加詳細論述的,用於新功能的產 生、改變背景及組態設定、改變功能、或是彈性的自我復 原。在本發明的範疇内之替代的實施例中,舉例而言對於 可能沒有彈性上的要求的應用而言,該各種的連線亦可以 在執行時之前被建立,並且被維持在該裝置100内的一個 L體中,其具有後續隨著可能是必要或是所期望地修改 的可能性。 ^ 凊參照圖2與3,一個矩陣150係邏輯上被劃分為或 51 200900916 -· ”括複數個超叢集185以及一或多個第三通訊元件Η。。 乂第—通Λ 70件190是通訊電路(舉例而言,路由器、路點、 開道、開關、或是通道元件),其係提供資料及控制進出一 ,矩陣150之封包的指定路由、交換、混合式指定路由及 乂換或疋通逼,用於資料、組態設定及控制資訊的通訊, 並且可被視為構成互連155的部份。該第三通訊元件19〇 亦可被視為路點或閘道,並且是根據本發明所利 ^訊結構中之-個結構。在一個利用至少兩個或多個第三 I訊兀件190 4第一所選的實施例中,每個第三通訊元件 190係_接至—個所選的矩陣bo的每個超叢集185以及 其它的第三通訊元件190(經由匯流排結構16〇),使得往返 方;母個超叢集185的通訊可以透過任一第三通訊元件⑽ = 在第:通訊元件190中的任-個的失效的 — 弟—通δί1兀件190是一個所選的矩陣15〇的 母個超叢集185可利用的,以提供相同的通訊功能。儘管 υ ^描繪為個別的第三通訊元件190,但將會瞭解到的是, k二獨立的電路可被結合成為一或多個提供相同的獨立通 訊功能之較大的電路結構。舉例而言,在一個所選的實施 例中,-個單一第三通訊元件19〇係被利用,其係類似地 連接至每個超叢集185以及其它的第三通訊元件1⑽其 中=個第三通訊元件190提供多個且獨立的通訊路徑(舉例 而口 4個向下的鏈路以及4個向上的鏈路),使得在一或 多個鏈路失效的事件中’額外的鏈路係可利用的。同樣地, 在此種失效的事件中’重要的功能係在優雅降級且非災難 52 200900916 的失效之下被維持。 每個超叢集185進-步邏輯上被劃分為複數個叢集 2〇〇、或是包括複數個叢集2〇〇以及—或多個第二通訊元 件210。6亥第二通訊元件21〇也是提供資料及控制的封包 指定路由、通道、交換或是其它傳輸進出一個超叢集 的通訊電路,用於資料、組態設定以及控制資訊的通訊, 並且亦可被視為構成互連155的部份。該第二通訊元件21〇 亦可被視為路點或閘道,並且是根據本發明所用的數個通 訊結構中之-個通訊結構。在一個利用至少兩個第二通訊 兀件210之第一所選的實施例中,每個第二通訊元件 係耦接至一個所選的超叢集185的每個叢集2〇〇,使得往 返於每個叢集200的通訊可以透過任一個第二通訊元件 來產生。於是,在—個第二通訊元件㈣失效的事件中, 另一個第二通訊元件210是可供一個所選的超叢# 185的 每個叢集200利用的,以提供相同的通訊功能。在一個所 選的實施射,這些獨立的電路可被結合成為一或多個提 供相同的獨立通訊功能之較大的電路結構。此外,舉例而 言-個單-組合的第二通訊元件21〇係被利用,其係類似 地連接至每個叢集_以及—或多個第三心元件19卜 在此實施例中,每個第二通訊元# 21Q係提供多個且獨立 的通訊路徑(舉例而言,4個向下的鏈路以及4個向上的鏈 路)’使得在-或多個鏈路失效的事件中,額外的鏈路係可 利用的。同樣地,在此種失效的事件中,重要的功能係在 優雅降級且非災難的失效之下被維持。 53 200900916 因此,從矩陣150層級移動到超叢集185層級以及叢 集200層、級’該互連155係提供資料、組態設定以及控制 資訊的封包指定路由、自我指定路由、通道、交換或是其 它傳輸,此係透過複數個通訊元件19〇及21〇以及通訊通 道(匯流排結構)160、195、22〇。此外,如下所論述,在一 個叢集200之内 該互連B5亦透過第—通訊元件25〇來 提供電路父換(或是電路為基礎的)通訊。確實,本發明的
架構中之-個冑穎的特點& 一個提供冑包為主以及電路交 換的通訊的互連結構155之使用。 睛繼績參考圖2與3 ’該示範性之互連丨55係包括:(1) 複數個指定路由(通道、路點或閘道)元件,亦即,複數個 第三通訊元件I90、複數個第二通訊元件210、以及複數 個第一通訊元件25〇 ; (2)複數個電路交換元件,亦即,該 複數個第-通訊元# 25G;以及(3)其對應的匯流排、導線 或是其它形式的實體連線或資料傳輸媒體(舉例而言,被描 繪為匯流排或導線16〇、195及22〇,如上所論述,其係%” 位元寬的)。在一個矩陣15〇之内’一或多個第三通訊元件 190係提供資料、組態設定以及控制資訊的冑包指定路由、 自我指定路由、通道、交換或是其它傳輸,往返於其它矩 陣150(經由第_匯流排16〇及1/〇 17〇、18〇),並且經由在 每個此種超叢t 185之内的一或多個第二通訊元件21〇而 往返於複數個超叢集185。於是,在此種超叢集185之内 的一或多個第二通訊元件21〇係提供資料、組態設定以及 控制資訊的封包指定路由、自我指定路由、通道、交換或 54 200900916 是其它傳輸,往返於該第三通訊元件190,並且經由在每 個此種叢集200之内的一或多個第一通訊元件250而往返 於在該超叢集185之内的複數個叢集2〇〇。 於是,在一個叢集200之内的一或多個第一通訊元件 250係提供資料、組態設定以及控制資訊的封包指定路由、
自我指定路由 '通道、交換或是其它傳輸往返於該叢集 2 0 〇 ’經由該第二通訊元件2 1 0而舉例而言是往返於其它 叢集200 ’並且其係提供用於在該叢集2〇〇之内的資料及 控制的電路交換的通訊,此係致能在其它叢集2〇〇以及在 該叢集200之内的複合電路元件260、狀態機元件29〇、 sfL息管理器2 6 5、記憶體元件2 5 5及/或其它構件之間的通 5fl。舉例而言,從在叢集2 0 〇之内的一個複合電路元件2 6 〇 產生的資料可以透過直接的連線或是電路交換的連線而輪 出至該複數個第一通訊元件250中的一個,該第_通訊元 件250接著轉換該資料成為封包形式並且指定路由給該資 料封包至該第二通訊元件210,以用於發送至另一叢集 2〇0、另一超叢集185或是另一矩陣mo。類似地,當一個 可能是來自另一叢集200、另一超叢集185或是另一矩陣 150的資料封包經由一個第二通訊元件21〇到達時,該第 一通訊元件250係抽取出該資料並且傳輸該—或多個資料 字至在該叢集200内之對應的複合電路元件26〇、狀態機 元件290、記憶體元件255或是其它構件。 這些各種通訊元件(第三通訊元件19〇、第二 21。、第-通訊元件25。、全互連元件275以及以== 55 200900916 :件295)可被設計成具有任何所選的容量, 牛1 口疋從全互連性至較為有限的互連性 該示範性之實施例中之提供-心電:元 壬可輸出以同時耦接至-個複合電路元件260的 :可:入的全互連元件275或分散式全互連2 :疋相同的輸入或輸出有衝突或競爭時),取而代之的是在 °亥叢集2〇0之内可以設置較為有限的互連線或是部分的互 連線,舉例而言’此係藉由利用一個部分的互連元件或是 一個分散式部分的互連元件(未個別輯出)。此外’舉例 而§在不範性之實施例中’除了-或多個往返於一個叢集 2〇二的複合電路元#細及其它構件之同時的連線之外, 〜第通紅件25G可以提供2或多個㈣的連線或指定 路由’舉例而言’兩個向上的鏈路至第二通訊元件㈣以 及來自第二通訊元# 21G的兩個向下的鏈路。在任何特定 的實施例中亦可以設置更大的連接性,其取捨是可能與K 面積有所衝突。此外’在提供小於全互連性的情形中,該 各種通件(第二通訊元件19〇、第二通訊元件、以 ^第一通訊25G)亦可以提供—項仲裁功能,該仲裁功 能可以是根據優先順序、循環、順序的、等等而定,其係 :任何特定的時間選擇一連線或指定路由以用於資料傳 儘管被描繪為具有叢集2〇〇、超叢集185、矩陣15〇以 及裝置100層級,但將會被熟習此項技術者理解的是,在 任何所選的實施例中層級的數目可被延伸或是減少。舉例 56 200900916 ’ 而言,複數個第四通訊元件(未繪出)以及其它互連155可 被利用來在該裝置1 〇〇之内產生階層的另一層級,依此類 推,此係在該裝置1 〇〇的階層内產生任何所選的層級數目。 圖4是描續·根據本發明的教示之一個示範性之資料發 送序列之圖。在該示範性之實施例中,資料及/或控制封包 係藉由該些各種的指定路由元件(第三通訊元件19〇、第二 通§fL元件210以及第一通訊元件250)而被指定路由在互連 1 5 5之上作為資料字的一 “長列(train),’或通道,藉此降低原 ί 本與個別被定址的資料字之指定路由相關連的定址的負 擔。更明確地說’請參考圖4,一個資料發送序列300係 由複數個字(攔位或資料結構)305與31〇所構成,並且是“η” 位元寬的。每個此種字305或3 1〇係順序地一個接著另_ 個被傳送。第一字或欄位3〇5係包括具有一個資料開始指 示符的位址標題。該位址標題可包括一個目的地位址、或 疋可包括一個目的地位址以及一個來源位址(此可能需要超 過一個字)。在該示範性之實施例中,此種位址係具有[矩 ' 陣號碼,超叢集號碼,叢集號碼]的格式,其中被利用來指 明位址的位元數目是依據在該所選的實施例中所實施的矩 陣15〇、超叢集I85以及叢集200的數目而定。 舉例而言,當八個或是較少的矩陣丨5〇被實施,並且 其中每個矩陣150包含八個或是較少的超叢集185,並且 其中母個超叢集185包含八個或是較少的叢集2〇〇時,9 個位元是足以提供定址為[ΜΜΜ,SSS,CCC]。在第一字 或攔位3〇5内之資料開始指示符可包括一個具有一預設值 57 200900916 的^旗M舉例而言,旗標被設^、或是其它的第一預設 30::預先.曰疋的位元是一所選的值),其係指出目前的字 疋一個位址標題,並且所有後續的封包是將被指定路 至相同被定址的目的地之資料字。因此,所有在該第一 〇5之後的m”個字或欄位310的資料係被指定且傳 料字,亦即,資料字3102至310^, Μ貧料字係自動地被指定路由至相同被定址的目的地, r 而母個資料字並不需要任何個別或額外的標題或位址。額 外的旗標或位元亦可被利用於其它目@,舉例而言,指定 後,的資料字是佔位符號⑻⑽㈤如)值以用於同步,特 別疋用於分支動作。被描繪為字或欄位3iQ(mD的最後—個 資^字係包括資料以及—個資料結束指示#,以指出目前 的貝料子疋被傳輸的最後一個資料字,並且可包括一個具 有預°又值的第二旗標(或是具有一所選的值之其它第二預 先指定的位元)。 此貝料的通道係在一個示範性之實施例中實施為封包 扎疋路由以及電路交換的組合或混合。更具體而言,各種 的♦曰定路由元件(第三通訊元件1 90以及第二通訊元件2 1 〇) 係提ί、在叢集2〇〇之間建立一或多個連接,其係利用該第 子或欄位305的位址標題,並且保留及建立一專用的路 仫攸一個來源叢集200至一個目的地叢集200。該專用的 路I可藉由在舉例而言是一個路點或閘道内之電路交換的 連線或其它連線而被形成。到達該通訊元件(第三通訊元件 1 90、第二通訊元件2丨〇)之剩餘的資料字(資料字3丨、 58 200900916 一 1、3丨〇2至可被缓衝並且接著自動地在該通訊 =件之内利用該位址標題建立之交換的或是其它專用的路 性上傳輸為—個封包。該專用的路徑係被維持直到完整的 封包已經被傳送為止,在此之後,各種的路徑元件係被釋 出來=於其它通訊。複數個路徑可同時被利用以支援一種 =模式。此外’在該示範性之實施針,複數個此種資 料=可以在相同的通訊元件之間同時發生,舉例而言,、 其係猎由利用先前針對於一個示範性之實施例所提及之四 個向上的鏈路以及四個向下的鍵路’此係容許多個資料串 *的同k發运。因此’在該示範性之實施例中,該複數個 通訊凡件(包含第_通訊元# _係支援任㈣ 核式’舉例而言’一對一的輸入與輸出資料鍵路、—對多 的(廣播)資料鏈路、以及多對一的資料鏈路。 _相對地’一個第-通訊元件250典型是經由該全互連 _ 丨員序地(母一或多個時脈週期一個資料字)從叢集 ⑽的各種構件接收資料字,提供一個位址標題,並且傳 达该序列至—個第二通_ 21〇以用於發送至另一叢集 0:,其一般是傳送整個序列為一個封包叢發。對於來自 ,、匕叢集200的資料,★女笛— _ 一 D弟—通訊兀件250係接收及緩衝 個貝料子(31〇。、31〇1、31〇2至3i〇(m ^,並且典型 疋經由全互連元件27S沾·*- 、父換而順序地提供它們至該叢集 〇〇中減的構件。在示範性之實施例中,該來源及/或目 的地位址可以儲存在複數個構件的任_個中,舉例而言, 在各種的指定路由元件(第三通訊元件Η。、第二通訊元件 59 200900916 210以及弟通§孔元件250)的任一個之内,並且該等位 址是在該結合過程(以下論述)期間利用叢集間的通訊對於 每個背景加以建立。 更具體而言,執行該結合過程(“結合器,,)的一或多個 狀態機元件(“SME,,)290(或是其它控制器175或是晶片外的 控制器或處理器)係指定動作(亦即,功能或背景)給各種的 複合電路7L件260,並且在該複合電路元件26〇之間建立 〆一個“虛擬的,,資料連結或指定路由,亦即,在一或多個複 ί 合電路it件260之間減一資料連結,*不須指明該資料 連結實際上要如何產生。各種的通訊元件(第一通訊元件 250、第二通訊元件210、第三通訊元件190、全互連元件 275+及/或分散式全互連元件295)係每個週期或在任何特定 的曰守間被提供時脈,接著適配於決定實體指定路由給對應 的貝料傳輸,此係產生實體資料連結。舉例而言,經由交 換及/或指定路由,在通訊元件之間或是在通訊元件之内的 I 一個第一實體資料路徑或鏈路可對於一個資料封包(舉例而 曰,一連串的資料字)在兩個叢集2〇〇之間的傳輸的一個實 例而被建立(並且接著被釋放),其中一個不同的實體資料 路t或鍵路係對於一個資料封包在該兩個叢集2〇〇之間的 傳輸之-個後續的實例而被建立。舉例而言,此種實體資 料鏈路可被儲存及維持在該通訊元件内之各種的記憶體之 中舉例而s在對應的元件介面及控制280(以下論述)的 。己體之中被儲存為一個指定路由表,其中任何所選的實 體貝料鏈路係由通訊複合電路元件26〇之對應的元件控制 200900916 器325所決;類似地,在時間或時脈週期上的任何時點, 不同的實體資料鏈路可對於在該叢集彻之内的資料通訊 而被建立(及釋放)。在其它示範性之實施射,其並^建 立-個虛擬的資料鏈路’而是該實體資料連結亦可 結合器而被建立’作為該結合過程的部份。 胃" .r 圖5是描纷根據本發明的教示之一個第一示範性 木一200之方塊圖。6是描繪根據本發明的教示之—個 二示範性之叢集200A之方塊圖。在叢集2〇",一個入 ^連兀件275(作為單一或單式的電路構件)係被利用以在
母個複合電路元件2 6 0 L7 3» I 以及其匕叢集構件的輸入與輸出之 間提供完全的互連線,即如圖所緣。舉例而言,全互連元 件275可被實施為一個縱橫式開關。在叢集200A中,一 個分散式全互遠亓杜、 牛 5(作為5?散式複數個電路構件)係
被利用以在每個複合電路元件26〇以;3 1 β # A t μ 丁 ζου以及其它叢集構件的輪 入14輸出之間提供完全的万、查涵 的互連線’即如圖所繪。舉例而言, 式互連兀# 295可被實施為複數個多工器及/或解多 工器,舉例而言,在圖8 在3 8中所繪的多工器335以用於一個 所選的複合電路元件 。在所有的其它方面上,該叢隼 200、200Α 熹 i日 π λα m 將合被理解。^ 任何對於叢集2〇0的參照都 , 解為表示及包含被描緣為叢集2〇〇A的第二實施 例(以及在圖7中被描緣我f隹1Λ 、為叢集200Β的第三實施例),因為 最术2〇0的—或多個變 變化以及叢集200Α(及叢集200Β)都 將不會進-步被論述為_個別的實施例。 圖5與6中所缘,該示範性之叢集200(200Α)包 61 200900916 括複數個複合電路元件26〇(或複合的元件260);複數個通 訊元件’亦即,一或多個第一通訊元件25〇以及一個全互 連元件275或是一個分散式全互連元件295(亦被稱為一個 全通訊元件或是全互連匯流排(“FIBus,,)); 一個狀態機元件 (SME)290 ; —個訊息管理器265 ;以及各種的通訊結構, 舉例而§ ’匯流排或其它類型的通訊媒體。應注意到的是, 亚非在每個叢集200中都需要一個狀態機元件290以及訊
息官理265 ;在各種的實施例中’依據要執行的應用, 所選的叢集200可包括主導的複合電路元件26〇(舉例而 吕’具有數位信號處理(“Dsp”)功能),而其中狀態機及/或 訊息管理功能是藉由其它叢集2〇〇的狀態機元件29〇及訊 息官理|§ 265來提供(利用經由該第一通訊元件25〇之對應 的通訊)。在其它示範性之實施例中,在叢集200之内並不 包含或是除了包含一或多個狀態機元件29〇之外對應的 功能可透過-或多個外部的控制$ 175或是其它晶片外的 控制器、狀態機或處理器的使用而被實施。在所選的實施 例中,舉例而言,該全互連元件奶可被實施為—個縱橫 關或是傳輸電晶體(其具有或是不具有仲裁功能),而 =刀散式全互連元# 295可被實施為複數個開關、傳輸電 晶體、多工器及/或解多工器。 此外,在所選的實施例 , ,砀合禋選項或變化的是, 個示範性之叢集2〇〇亦可包含額冰 ^ 匕3頜外的記憶體,舉例而言, 弟一§己憶體元件2 5 5,JL可以县 _ ^ ^ 了以疋—種類型的佇列,舉例而 。,一個長的佇列,·亦可包含一個 1固最集間的许列245,舉 62 200900916 例而言,一個FIF〇、緩衝器或是其它記憶體結構,以用於 在相鄰的叢集200之間資料、控制及/或組態設定資訊的傳 輸’而未利用到各種的第一通訊元件250及第二通訊元件 210(此係產生在圖2中所繪的“快速的路徑”連線215);並 且亦可包含一個別的或是額外的通訊結構用於在該叢集 200之内的SME 290及其它構件之間的通訊,其係被描繪 為組態設定/控制匯流排2 8 5。 ( V, 未個別地描繪在圖5與6中的是,每個元件介面及控 制280亦包含-個記憶體、多個輸入佇列、以及一個元件 控制器(由複數個條件邏輯結構(閑)所構成”其係參考圖8 更加詳細地論述。此外’第一通爾25〇亦可包含一個 記憶體結構’以傳輸進人的資料至—個所選的複合電路元 件260,並且疋址及指定路由給來自一個所選的複合電路 兀件260之向外的資料。儘f圖5與6係_—個 包括六個複合電路元件、兩個第 林 一個狀態機元件(“SME,,)29〇、—個訊息管理器。件 以及-個全互連…75或分散式全互連元件295,以及 ^的舉例而言是第二記憶體元彳255之額外 及舉例而言是—或多個叢集間的件列245 二體乂 構’但是將會被熟習電子技術者理解 何數量及袓合都ϋ a &些1構件的任 J數里及、.且口都可被利用,並且此種數量及組 及全《被視為等同的^在本發明的料内^的任—個 母個複合電路开你9 A ^ 以及-個一致的(固定的人計算的電路元件27。 (口疋的^件介面及控制⑽所構成。儘 63 200900916 • 管一般被稱為一個“計算的”電路元件270,但將瞭解到的 是,一個電路元件270可以執行除了計算之外的功能,舉 例而言,位元重新排列、記憶體功能、控制功能、狀態機 功能、通訊功能、指令處理,並且所有此種非計算的功能 或其它功能都被視為在本發明的電路元件270的範疇之 内,而不論命名為何。 在一個叢集200之内,該複合電路元件260係具有(計 算的)元件270,其可以具有相同或不同的類型,並且可用 f' 任何所選的組合或混合來内含在該叢集200之内,並且可 以是靜態(非可組態設定的)或是可組態設定的。如在圖5 中所繪,該元件 270是一個可組態設定的元件(類型 “A”)270a、兩個可組態設定的元件(類型“B”)270b、一個可 組態設定的元件(類型“D”)270d、一個可組態設定的元件(類 型“E”)270e、以及一個可組態設定的或是非可組態設定的 第一記憶體電路元件27〇m。一個通訊電路元件27〇c係被 利用在該第一通訊元件250中,其典型是非可組態設定的, v 但是其可能被實施為可組態設定的。此外,任何所選的元 件270亦可被實施為非可組態設定的,並且所有的此種變 化都是在本發明的範疇内。該可組態設定的計算的元件270 一般係執行計算及/或位元處理,並且舉例而言可以是可組 態設定的算術邏輯單元(ALU)、可組態設定的三重的ALU、 可組態設定的乘與累加(MAC)單元、可組態設定的位元重 新排列元件(BREO)、可組態設定的乘法器、可組態設定的 Galois乘法器、可組態設定的桶形移位器、可組態設定的 64 200900916 ' 查找表、可組態設定且可程式化的控制器、超級或大的 ALU(其能夠進行廣泛種類的算術計算、功能、比較以及處 理)、等等。該可組態設定的計算的元件27〇 一般係由組合 邏輯閘所構成,但是亦可隨必要或是所期望地包含條件邏 輯結構,舉例而言,評估一個條件或事件的存在。示範性 之可組態設定的元件270係被描繪在圖9與i 〇中。 如上所述,元件270係亦可被實施以提供通訊功能, 可以是可組態設定的或是非可組態設定的,並且可提供用 ( 於内部的通訊、外部的通訊、以及記憶體存取的介面。在 一個示範性之實施例中,此種外部的通訊功能係透過該訊 息管理器265來提供,該訊息管理器265係提供複數個通 訊功能中之一所選的通訊功能’該複數個通訊功能在各種 的叢集之間典型是有所不同的。舉例而言,該複數個通訊 功能可包含提供乙太網路介面、PCI介面、PCI Express介 面、USB或USB2介面、DDR SDRAM介面或是其它類型 的記憶體介面、無線介面、至另一 1C的介面、等等。典 ί, 型地,一個特定的叢集200之訊息管理器265係提供一種 類型的通訊功能,而其它叢集200的訊息管理器265則對 應地提供其它類型的通訊功能。舉例而言,一個第一叢集 200的訊息管理器265可提供一個pCI Express介面,而一 個第二叢集200的訊息管理器265可提供一個DDR-2介 面,一個第三叢集200的訊息管理器265可提供一個乙太 網路介面。 此外’ 5玄δίΐ息管理為2 6 5亦可具有一個直接連線至該 65 200900916 •互連155,《是更具體而言,直接連、線至該第二通訊通道 或匯流排220,用於獨立於各種第一通訊元件25〇之外的 f集間通訊,舉例而言,用於在該狀態機元件29〇以及其 它構件之間的組態設定及/或控制資訊的通訊。舉例而言, 在執仃柃的結合期間,各種的組態設定及資料指定路由可 、工由"亥訊息官理器265而被傳送至該狀態機元件29〇作為 訊^。因此,該訊息管理器265係被描繪為直接耦接至該 广s狀悲機疋件290、或是作為該狀態機元件290的部份(舉例 、 而言,沒有中介或個別的匯流排或通訊結構)。 該第一記憶體電路元件27〇m、第二記憶體元件255及 /或在該元件介面及控制28〇之内的記憶體可以是任何形式 的圮憶體、機器可讀取的儲存或記憶體媒體、不論是揮發 性或非揮發性,其在無限制之下包含:RAM、快閃、DRAM、 SDRAM、SRAM、MRAM、FeRAM、R〇M、EpR〇M 或 PROM、或疋任何已知的或變成已知的其它類型的記憶 I:體、儲存媒體、或是資料儲存裝置或電路、或是其組合。 在一個第一示範性之實施例中,該第一記憶體元件27〇m以 及在及元件η面及控制2 8 〇之内的記憶體係被做成為内容 可定址的記憶體(“CAM”)。在一個第二示範性之實施例中, 5玄第一記憶體元件27〇m以及在該元件介面及控制28〇之内 的記憶體係被做成為SDRAM。 該第一通訊元件250係類似於該複合電路元件26〇, 其包含一個元件介面及控制28〇以及一個電路元件27〇(在 此例中是通訊元件27〇c),該電路元件27〇是根據所選的 66 200900916 實施例而為可組態設定的或是非可組態設定的。舉例而 言,組態設定可發生來決定在該通訊元件270c之内的交換 或指定路由的路徑。該通訊元件270c係提供往返於該互連 1 55之封包交換的資料發送及接收、以及在該叢集200之 内的電路交換的通訊。 類似地,該狀態機元件 制28〇,其“計算的,,元件(270)是狀態機元件最特定的實例, r 根據所選的實施例也可以是可組態設定的或非可組態設定 的。用於一個狀態機實施例的各種記憶體33〇以及輸入舆 輸出佇列320、315或者是可以被設置為内部的暫存器。 如下所論述’利用該元件介面及控制280亦提供該狀態機 兀件290具有複數個背景,舉例而言用於多執行緒。此外, °亥狀恶機元件2 9 0係被描繪為具有直接的存取至該複合電 路凡件260的元件介面及控制28〇(經由組態設定/控制匯流 排285)以便於直接植入組態設定、控制以及接收中斷,並 且具有直接連接至該第一記憶體元件27〇M(及/或第二記憶 體凡件255)(舉例而言,透過一個雙埠RAM的一個埠”以 促進對於指令/碼處理之對應的記憶體存取以及其它資料存 如上所述,该狀態機元件29〇結合任何可利用的記憶 25:例而言,複合的記憶體元件26〇m或第二記憶體元件 )係構成在本發明的範嘴内之一個“控制器”,舉例而言, =制器、超叢集控制器、矩陣控制器、等 心亦可包含該訊息管理器265或類似的功能。 藉由利用相同的γ 、 的(次頰似的)元件介面及控制28〇,該第 67 200900916 通訊元件250以及狀態機元件290對於該叢集200内之 杈α黾路元件260而言看似另一複合電路元件26〇,其具 有以下論述的對應優點。舉例而言,該另一複合電路元件 於疋不為要知道其輸出係被提供至一個第一通訊元件 25〇或是一個狀態機元件29〇、或是輸入係接收自一個第 通Λ元件250或是一個狀態機元件29〇,並且不需要相 容任何不同類型的資料接收或發送。 在示範性之實施例中,該複合電路元件26〇係可包含 ( 藉由複合電路元件260的類型或種類(亦即,在該複合電路 元件260内之電路元件27〇的類型)之某種形式的識別,以 助於藉由狀態機元件(“SME,,)29〇(或控制器175)的識別。 此種識別可用廣泛種類的形式而被保存在該叢集2〇〇内之 個可利用的記憶體中,舉例而言,在製造期間被硬體連 線為在複合電路元件260内之R〇M、在開機過程期間被載 入一個記憶體、等等。舉例而言,此種類型識別可被維持 在記憶體複合的元件260、第二記憶體255中、或是在該 、 元件介面及控制280以下論述的記憶體33〇之内。 該元件介面及控制280係提供(1)一個一致的介面,用 於輸入至且輸出自每個可組態設定的電路元件27〇、記憶 體元件、通訊元件或狀態機元件;以及(2) —個一致的控制 結構’並且其係在以下參考圖8與16更加詳細描述。因 為每個元件介面及控制280都具有相同的結構用於在每個 叢集200内之每個複合電路元件260、第一通訊元件25〇 以及狀態機元件290,所以每個此種元件260、250、290 68 200900916 都可以用一種一致的可重複的方式加以控制,而無關元件 的類型,舉例而言’不論該元件(270)是一個可組態設定的 ALU、一個可組態設定的捅形移位器、一個通訊元件、或 是一個狀態機元件。此外’每個此種複合電路元件260、 第一通訊元件250以及狀態機元件290都可以用一種一致 的可重複的方式來和任何其它複合電路元件260、第一通 元件2 5 0以及狀態機兀件2 9 0通訊,而無關元件的類型(舉 例而言’ 一個可組態設定的電路元件270)。更具體而言, 每個複合電路元件260、第一通訊元件25〇以及狀態機元 件290都可以用一種一致的方式,透過以上論述的定址方 式而被定址。 此禋一致性的第 一通訊元件250以及狀態機元件29〇係都不需要知道有關 其所接收輸入的或是提供輸出的任何其它複合電路元件 260、第一通訊元件250以及狀態機元件29〇的任何事, 亦即,每個複合電路元件260以及第—通訊元件25〇大致 上可以忽略有關其週遭及功能。(依據實施方式,狀態機元 件290可具有額外的功能用於監視、測試及控制其它元件, 使=其可知道有關其週遭及功能)。此種_致性的第二個結 果是’每個複合電路元件260、第一通訊元件2 : 態機元件290都可用一種一致的方★、由4 & 及狀 及杳詢m 式破組態設定、被定址 同樣無關於元件的類型(舉例而言,電路元件77n 的類型)。 电紛兀件270 第三且非常重要的結果是,每個具有一所選的類型的 69 200900916 電路元件270 a 何其它且有1 元件260是實際上完全地可和任 件選㈣型的電路元件270之複合電路元 任何局邻性、、—疋對力#定的計算或演算法的執行有 之下,心)限制的範圍除外。因此,受到此種限制 η 特定演算法的執行而言,藉由具有-所選 的類型的電路元株?7Π+,, ^所選 執行的、軍* 、之任何所選的複合電路元件26〇所 、$ §异可以自由地被指定或是傳輸至另一具有相同所 ::類旦型的電路元請之複合電路元件,而無任何 二的如響。在一個具有—所選的類型的電路元件270之 曾口、、複口電路兀彳26G中有失效或缺陷的事件中,其運 可被If夕至·⑴另一具有相同所選的類型的電路元件Μ !可利用的複合電路元件26〇;⑺全體能夠執行相同的運 异之一個群組之可利用的複合電路元件260;或是(3) 一個 原本已輕執仃另—運算或一個較低優先順序運算而益法利 用的具:相同所選的類型的電路元件27〇之複合電路元件 260(或是群組的複合電路綱)。舉例而言,在—個具 有三重的ALU可組態設定的元件27〇之複合電路元件26〇 失效的事件中,其運算可被轉移至三個複合電路元件260, 而每们複。電路元件260具有單一 ALU可組態設定的元件 270,於是該等複合電路元件26〇可被組態設定以執行該 三重的ALU的運算。類似地,藉由一個第一通訊元件 或一個狀恶機元件290所執行的功能亦可隨需要而被轉移 至其它可利用的第一通訊元件25〇以及狀態機元件29〇。 分別可被實施為一個全縱橫式開關或是為開關、多工 70 200900916 - 器、解多工器或是其它電晶體配置的另一種配置的全互連 元件275及/或分散式全互連元件295係提供給任何複合電 路元件260、第一通訊元件25〇以及狀態機元件29〇的任 何輸出’以被耦接至任何(其它)複合電路元件2 6 〇、第一 通訊7G件250以及狀態機元件29〇的任何輸入,及/或耦接 至在其叢集200之内的任何其它構件或是經由叢集間的件 列245輕接至一個相鄰的叢集2〇〇之全互連元件275及/或 分散式全互連元件295(用於輸入至該相鄰的叢集2〇〇之任 ‘ 何複合電路元件260、第一通訊元件250以及狀態機元件 290或是其它構件)。(在所選的實施例中,在相同的複合 電路元件内之輪出到輸入的回授可以在複合電路元件26〇 内部達成,舉例而言,其係透過一個未個別地繪出的多工 益或其它交換組態設定。)在一個示範性之實施例中,對於 每個複合電路元件260而言,一個複合電路元件26〇、第 —通汛元件250以及狀態機元件29〇的任何輸出可以平行 ^ 且同時透過全互連元件275及/或分散式全互連元件295 , 而被提供作為一個輸入至任何其它複合電路元件26〇、第 通汛το件250以及狀態機元件29〇,此係容許在所有的 複合電路兀件260、第一通訊元件250以及狀態機元件29〇 之間有完全且同時的通訊(其例外是需要仲裁或其它解決方 式的可能衝突情形)。 根據所選的實施例,來自一個複合電路元件260的輪 出係可以用複數種方式被交換,所有的方式都在本發明的 乾疇内。舉例而言,一個選配的輸出交換元件380(描綠在 71 200900916 f'· 圖8中)可對於每個複合電路元件260都被設置,其可以交 換該些輪出以用於該複合電路元# 26〇之内部的回授、交 換該些輪出至全互連元# 275或分散式全互連元件⑼、 直接交換該些輸出至—個第—通訊_ 25()、或是直接交 換a亥些輸出至狀態機元# 29G。在以下參考圖8所論述之 所選的實施例中’内部的回授可以從一個計算的元件Μ 之内的任何階段加以提供,並且該計算的元件27〇的輸出 係被提供至一個輸出記憶體(或是輸出佇列或暫存器)315 並且接著直接提供至全互連元件275,用於交換至其它複 合電路元件260、狀態機元件29〇、或是第一通訊元件I”。 類似地,一個複合電路元件26〇的輸入可以用複數種方式 加以提供,舉例而言,來自全互連元件275或分散式全互 連元件295、或是直接來自全互連元件275以及其它來源, 舉例而言,來自第二記憶體元件255、狀態機元件29〇、 及/或第一通訊元件250。 此通訊功能可根據資料來源及/或資料目的地之任一者 或兩者而被實施。對於以目的地為基礎的通訊,每個背景 之目的地位址典型是儲存在一個輸出佇列3丨5(圖的一個 指定路由表中。對於對應的位址之輸出係接著被提供,其 中全互連元件275或分散式全互連元件295係對於該對應 的目的地位址而被組態設定。對於此實施例而言,當來自 一個複合電路元件260的一個輸出將被施加作為輸入至超 過一個複合電路元件260時,這些額外的輸入可以順序地 被提供。在其它示範性之實施例中,額外的輸出扇形散開 72 200900916 可被提供’使得一個複合電路元件260的一個輸出可以同 時輸入到複數個其它複合電路元件260,其同樣是經由全 互連元件275、分散式全互連元件295或其它通訊結構。 父握協疋亦可被利用,其中該目的地在資料的收到之際係 傳送或不傳送一個回應。 對於以來源為基礎的通訊而言,在一個示範性之實施 例中所實施的是,每個背景的來源位址典型是儲存在輸入 佇列320中。每個來源係在全互連元件275或分散式全互 連το件295之一所選的匯流排或是多個通訊線上提供其輸 出。對於進入的資料而言,對應的輸入佇列32〇係判斷該 貧料是否來自其一或多個背景所指定的一個來源,並且若 是的話,當記憶體空間是可利用的時候,該輸入佇列32〇 係接收該對應的資料。此種以來源為基礎的通訊係提供群 體廣播或廣播的便利性,因為任一且全部的目的地都被致 能來同時接收在所選的資料線上傳送之任何所關注的資 料。交握協定亦可被利用,纟中該目的地係在其無法接收 該所傳送的資料時傳送或是不傳送—項拒絕或其它不可利 用m(藉此提供給該來源以在其它時間重新傳送該資 在另 不之實施例中,沒有交握或其它類型的通 ,回應係被利用。實體f料鏈路可在執行時被建立,做為 石亥結合過程的部份盆φ新古魂丄 " &其巾所有對應的計算過㈣被允許執 仃,而不需要判斷輸入資料的可 L & 不用丨生或疋用於輸出資料 的二間可利用性。此種實 、 八對於官線化作業是有用 73 200900916 的,舉例而言,用於各種演算 工首咨袓忐™ 円0 p核心。此外,當一 員貝枓處理可能正在等待進 田 疋八幻貝科因而影鲤至丨丨1 a 的貧料處理量時,此種實施方 a z、匕 异眘料Π、)5 β 有用於避免資料停頓或 疋貝枓回返的壓力。此外, 宁貝次 田輿/ , — I苑方式的組合亦可被利 用’牛例而言,各種利用資料 它非利用資料流為主的作業的構# Z作業的構件以及其 J讣杲的構件。舉例而言, 主的作業可以和苴它作辈(整仓丨品丄 貝针机為 ,、匕作業(舉例而言是通訊作業的動作 利用於一個叢集200之内的作業
_ 的作業其破容許只是執行(舉例 而吕’指定路由及交換)而已。 請繼續參考圖5肖6,該全互連元件275以及分散式 全互連元# 295係為了說明的方便及清楚起見而大致上被 為、會以大致表不在-個叢集之内的通訊類型,舉例 而言:用以提供任何複合電路^ 26Q的輸人與輪出以輕 接至其它複合電路元件26〇、狀態機元件29〇、訊息管理 器265、或是第一通訊元件25〇或叢集間的佇列245之任 一者(或是兩者),以用於往或返其它叢集2〇〇得資料傳輸; 在狀態機元件(SME)290以及任何的複合電路元件26〇(包 含記憶體元件及通訊元件)之間的通訊;在SME 29〇以及 第一通§fl元件2 5 0之任一或是兩者之間的通訊,用於控制 資訊、查詢、查詢的響應、等等的傳輸;在訊息管理器265 以及互連155之間的通訊;以及在第一通訊元件25〇以及 在叢集200之内的各種記憶體(舉例而言,在叢集2〇0的各 種構件之内的第二記憶體元件255及其它記憶體)之間的通 訊;以及在一個叢集200之内的構件組合之間的任何其它 74 200900916 通訊。將會被熟習此項技術者理解的是,廣泛種類的通訊 結構及通訊媒體是可利用的,並且所有此種變化都被視為 等同的且在本發明的範疇内。 該狀態機元件(SME)290係作用為一個(相當小的)微處 理器(或微控制器),舉例而言,一個RISC處理器,用於指 令的執行、條件及事件的判斷]乍業系統的管理以及複合 電路元件260的控制。該麵29〇可被利用至實施傳統的 C程式及實施複合電路元件細原本無狀態的資料流作業 嶋。該狀態機元件290係適配於作用為一個順序的處 理以及其運异係藉由在相同的叢集200之内的複合電 路元件260所增補。該議29〇亦可具有内部的記憶體, 可乂利用該第_ 5己憶體凡件255、一個記憶體複合電路元 件260M、或是在一個複合電路元件26〇之内的記憶體33〇, 用於資料及指令(或運算)的儲存。舉例而言,該第二記憶 體几件255可被實施為複數個“長的,,仔列,其具有足夠的 深度以儲存可被狀態機元件29 ιτ ζνυ利用的指令。該sme 290 可利用該複合電路元件2 6 〇沾^工.. _ 干60的任一個來執行在其程式的執 行(舉例而言,相加或比鲂 較兩個數目)中將會需要的計算或 其它功能。該狀態機元件29 干290係執行計算的控制功能,舉 例而言’在程式語言中利用無 用舉例而言是IF、CASE、WHILE、 FOR、等等的陳述表示 仏件的判斷。該SME 290亦可具 有控制暫存器或其它類创沾& a 匕頰型的内部的記憶體,舉例而言,用 以定義及追蹤其控制功能。 如先月丨】所述’並非每個叢集200 都需要有一個狀態機元件29 75 200900916 此外’除了直接存取到複合電路元件260的元件介面 及控制280(經由組態設定/控制匯流排285)之外,該狀態 機το件290係被描繪為具有直接的連線至第一記憶體元件 27〇M(及/或第二記憶體元件255),以助於指令/碼處理之對 應的記憶體存取以及其它的資料存取。取代使用組態設定/ 控制匯流排285的是,舉例而言,此種通訊可經由全互連 兀件275或分散式全互連元件295而被提供。 該狀態機元件290係被利用來實施
V 並且在一個監督模式中,其存取到在其叢集200之内的所 有貢源,因而能夠程式化、控制以及監視在該叢集2〇〇之 内的所有複合電路元件260。對於其中一或多個叢集2〇〇 亚沒有一個狀態機元件29〇内含在叢集2〇〇之内的實施方 式而3 ,其它叢集200的一或多個其它狀態機元件29〇將 會執行這些功能及運算。除了卫作控制之外,該狀態機元 件290係被利用在叢集資源的自我測試、載入或指^工作 (動作(或指令))、結合動作(或指令)(舉例而言,執行時的 結合)至複合電路元件26〇、以及產生在各種的複合電路元 件260以及叢集200之間的連線中。該指定及結合過程係 參考圖I4而更加詳細地加以論述。在叢集200之内的 290全體係作用為一個高度分散式控制器,其係在有或支 有其它控制器175下執行該裝置100的作業系統(結心 所需的複合電路以牛260)。在示範性之實施例中 咖29〇彳以取代額外的功能,舉例而言,執行—雜 開機過程、運作為-個主控制器、以及判斷及對映功^及 76 200900916 非功能的複合電路元件260及其它構件。該sME 290的動 作亦在以下參考圖8_丨4更加詳細地加以解釋。 舉例而言,該SME 290可以開始在該叢集2〇〇之内的 複合電路元件260的一項被結合的(b〇und)工作、中止 (――項工作、中止-個複合電路元件260的一個作 用或功能(作為一個整體工作的部分)、停止㈣一項工作 並且釋出其資源(舉例而言’用以載人及執行—項較高優先 員序的作)、设定一項工作以在一種單一步驟的模式中執 以及將-項工作移至另-位置(舉例而言,用以執行目 前執行該工作的複合電路元件260的自我測試)。
在該第—叢集200以及第二叢集2〇〇A的實施例中, 該訊息管理3 265係被利用於該裝置1〇〇外部的通訊,舉 例而吕,用於乙太網路介面、記憶體介面(舉例而言, SDRAM)、PCI_Express介面、等等。該訊息管理器265係 直接被耦接至該SME 290,並且更一般來說,其亦可耦接 至該全互連το件275或分散式全互連元件295、第一通訊 兀件250、及/或複合電路元件26〇(未個別地繪出舉例 而言,由全互連元件275所提供的資料字可藉由該訊息管 理器265而被輸出,用於儲存在一個外部的記憶體中。類 似地,且是舉例來說,進入的資料、組態設定或控制可被 轉移至SME 290(或是儲存在第二記憶體元件255中),舉 例而言,用以提供指令給SME 29〇或是傳輸至一個複合電 路凡件260,用於在計算中的使用及消耗。此外,在一個 不範性之實施例中,該訊息管理器265亦耦接至(該互連ι55 77 200900916 ' 的)第二通訊通道或匯流排220。 在一個示範性之實施例中,作為一個額外的替代方式 的是,該訊息管理器265亦被利用於在該裝置丨〇〇内之通 訊。在此實施例中’該訊息管理器2 65亦被利用於叢集2 〇 〇 至叢集200的通訊,以及用於SME 290至SME 290的通 訊。舉例而言,該訊息管理器265係被利用於—個第一叢 集200的一個複合電路元件260傳輸資訊至一個第二叢集 20 0的另一複合電路元件260。 (: 再者,在一個示範性之實施例中,並非在一個矩陣15〇 中的所有訊息管理器265都被實施以提供外部的通訊。舉 例而言’在一個利用四個矩陣1 50之替代的實施例中,每 個矩陣1 50係被設置有六個對應的叢集2〇〇(在一個其中超 叢集1 8 5是等同地做成的實施例中,每個超叢集1 8 5有一 個叢集200)的说息管理器265所做成的總數六個pci-express 介面。 類似地 ,在此 四個 矩陣的 實例中 ,每 個矩陣 1 5 0係被設置有總數一或兩個DDR-2介面,其係透過—或 I 兩個對應的叢集200的訊息管理器265來加以做成的。於 疋’有剩餘的叢集200是具有對應的訊息管理器265並未 提供用於外部通訊的介面及控制。對於這些剩餘的叢集2〇〇 而5 ,其對應的§fL息管理器265係傳輸資料至這些具有 DDR-2或PCI-express介面的其它叢集2〇〇,分別用於儲存 在3己憶體中或是在一個PCI-express匯流排之上的外部通 訊,其係透過第二通訊元件210(超叢集層級)或是第三通 訊元件190(矩陣層級)。 78 200900916 • ㈣息管判265彳根據所選的實施例,用廣泛種類 j方式被實施。在—個第—所選的實施例中,該訊息管理 器265係被做成為一個有限狀態機,並且其係實施通訊標 準舉例而5在以上所提及的那些通訊標準。當被做成為 一個狀態機時,該訊息管理器265可被個別地實施或是組 合成為該SME 290的一部分。在一個第二所選的實施例中、, 該訊息管理H 265係、被做成為專用的計算邏輯開亦用於 一個通訊介面的提供,其中該㈣謂被利用以執行任何 條件邏輯或是其它的狀態機功能。 在示範性之實施例中,如上所指出地,該複合電路元 件260將會包含藉由複合電路元件26〇的類型或種類(亦 即,在該複合電路元件260之内的電路元件27〇的類型)之 某種形式的識別,以助於藉由一個狀態機元件(“sme”)29〇 的識別。一般來說,一個SME 29〇將會判斷在其叢集2〇〇 之内的複合電路元件260的類型及背景可利用性(並且若必 要的話也會報告至其它的SME 29〇),以用於執行時的結 ’合。舉例而言’對於該所繪的叢集200而言,該SME 29〇 可判斷出該叢集具有一個可組態設定的桶形移位器類型的 元件(對應於類型A”)270a、兩個可組態設定的三ALU類 型的兀件(對應於類型“B”)270b、一個可組態設定的Gal〇is 乘法器類型的元件(對應於類型“c”)27〇c、一個可組態設定 的位元重新排列(“BREO”)類型的元件(對應於類型 D )270D、以及一個内容可定址的記憶體元件(對應於類型 M’’)270m。該SME 290亦可能在另一時間判斷及報告其叢 79 200900916 集200的BREO類型 υ 1干你+冉正常地運 BREO類型的元件的作業
寻秒主另一叢集200的—個 BREO類型的元件。 W 1U 請繼續參考圖5與6,噹篦-々浩挪一 μ第一6己憶體兀件2 5 5可以首 接或間接地經由全互連元件275或分散式全互連元件⑼, 從複數個來源接收輸入以及提供輸出(被寫入至以及讀取 自)’舉例而言:(1)往该於兮·赞 ^ 返於該第一通讯兀件250(用於從立 r 匕叢集200的輸入,舉例而+眘祖拉人山# 平例而δ貝枓、指令或其它控制資訊 的輸入用於供SME 290 #用、十e m +人h , 更用或疋用於^丁列(queuing)資料 以供複合電路元件260使用);⑺往返於在相同的叢集2〇〇 之内的一或多個複合電路元件26〇(包含記憶體複合電路元 件260M); (3)往返於SME 29〇;或是(4)往返於訊息管理器 265。 圖7疋描繪根據本發明的教示之一個作為叢集2〇〇的 另一變化的第三示範性之叢集2〇〇B實施例之方塊圖。在 此實施例中,該叢集200B係包含具有通訊功能的複合電 路元件260 ,舉例而言,用以提供外部的通訊功能,舉例 而言是用於如在圖3中所繪之集中在一個所選的矩陣15〇 之内的通讯功能。亦外,在此實施例中,作為一個選項的 是’該訊息管理器265並未被利用於此種外部的通訊,該 外部的通訊反而是被設置在專用的通訊複合電路元件26〇 之内’該專用的通訊複合電路元件260可以是可組態設定 的或是非可組態設定的。在此實施例中,每個通訊複合的 元件260係被利用以提供一個標準的j/〇介面用於往返於 80 200900916 " 該裝置100之(外部的)通訊’舉例而言,DDR-2或pCI e 介面。此外’該通訊複合的元件260可具有額外的輪入與 輸出匯流排或媒體結構以提供此種介面,因而其並不限於 透過該第一通訊元件250來向叢集201外進行通訊。根據 所選的實施例’額外的通訊複合的元件260可提升彈性以 及免於災難的失效而被利用。在所有其它方面,叢集2〇〇、 2〇〇B是相同的,並且進一步與叢集2〇〇A不同的是在於使 用一個全互連元件275而不是一個分散式全互連元件295。 (因此,任何對叢集2〇〇的參照都將會被理解為表示及包含 β玄被描繪作為叢集200之一種變化或更特定的實例之叢集 200Β的第三實施例,因而叢集2〇〇β也不會進一步加以論 述為一個別的實施例。然而,應該注意到的是,該第一叢 集200實施例亦可被利用於如在圖3中所繪之集中在一個 所選的矩陣1 50之内的通訊功能。 對於該些叢集實施例而言,因為是相同的矩陣、超叢 ( 集以及叢集定址並且因為是相同的元件介面及控制280, 所以任何其它叢集200(或複合電路元件260)都可以用和任 何其它複合電路元件26〇或叢集2〇〇通訊相同的任何方 式,和该通訊複合的元件26〇以及其叢集2〇丨通訊、或是 和具有一個有一外部的通訊介面.之訊息管理器265的叢集 200通訊。於是,當一個叢集2〇〇或是複合電路元件26〇 有個在裝置100的外部之通訊時,所需要的只有該叢集 2〇0或複合電路元件26〇須具有對應的通訊複合的元件260 的位址(其具有對應於該所選的形式之通訊的介面)及/或其 81 200900916 叢集201、或是一個具有一帶有對應於該所選的形式之通 訊的介面之訊息管理器265的叢集2〇〇的位址。舉例而言, 此種定址可藉由在該叢集200内之各種的構件,舉例而言, 訊息管理器265、SME 290或第一通訊元件25〇而被提供。 此種外部的通訊係藉此而透過虛擬的定址,舉例而言,經 由一個訊息管理器265或叢集2〇〇、或是經由一個通訊^ 合的7G件260或叢集201而被提供,並且該複合的元件26〇 , 亚不需要有關該外部的介面的位置或類型的任何進一步資 ( 訊。舉例而言,一個叢集200或複合電路元件26〇並不需 要有關其外部的通訊是利用DDR SDRAM或是經由乙太網 路協定、或是這些彳面可在在該裝4 1〇〇 ±之何處被找出 的任何資訊。類似地,對於内部的通訊而言,一個複合電 路元件260亦不需要有關其通訊是在相同的叢集2⑼内或 疋在個不同的叢集200内之另一複合電路元件26〇之内 的任何資訊。 〔 圖18是描繪根據本發明的教示之一個第四示範性之電 U 路叢集之方塊圖。該第四示範性之電路叢集200C與先前 敘述之叢集的實施例不同在於:其之拓樸係具有内部階層 之一個程度,第四示範性之電路叢集2〇〇c係分割成為複 數個區域2〇1,描繪為區域2〇1A、2〇1B、2〇lc及2〇id, 且每一個區域係具有4個複合電路元件26〇 (如圖所描 繪),該4個複合電路元件260係連接至一個分離的互連 275、295 (其係可以為完全的或分散的),且於每一個區 域201之間的通訊係透過複數個叢集佇列245 A (其係實際 82 200900916 上與先剛敘述之叢集間的佇列245相同)而產生。該些叢 集fr列245 A係使用於一個叢集2〇〇c内之通訊,且係不僅 用於叢集200内之“快速追蹤”冑訊。該完全的或分散的 互連275、295係亦為來源為基礎的,如更詳細敘述如下 文,且每—個目的地複合電路元件260係監視該互連275、 295,以用於自其之對應的資料來源之通訊。作為一個均 等的替代方式,該互連275、295係可以為目的地為基礎 的’如於本文所敘述。
電路叢集200C係不包含第一通訊元件25〇。反而是, 與其他叢集200、超叢集185、矩陣ι5〇或外部通訊(諸 如透過第二通道(或匯流排結構)22〇至一個pci_e匯流 排)之通訊係透過該訊息管理器、265 Μ#,其係提供第 通Λ元件250之頜外的以封包為基礎及電路切換的通訊 功能。每一個複合電路元件26〇,其係描繪為ce。至€Ει4, 係耦接至完全的或分散的互連275、295,如上文所述,且 …有4個輸入及2個輸出至每一個複合電路元件26〇及自 複合電路元件260而來。如圖所示之叢集佇列245Ai2至 245Α1δ係提供於電路叢集2〇〇c内之複合電路元件26〇的 各種區域201之間的通訊。 典型地,叢集佇列245A係實施為複數個單向埠,其 係使用於本文所敘述的任何型式之記憶體,且係實施成提 供區域2〇1之間雙向上數個通訊路徑 内之任何目的地之“跳躍(—),,,且在 料來源而來的競爭之下’一個“跳躍”係於每一個週期内 83 200900916 二叢集2°°C之間之數個通訊路徑(-或兩個 週=個相鄰叢集2。〇。之“跳躍,,,及一或更多個 —5壬何其他目的地之“跳躍,,)。於一個示賞· 實施例中,每—個業隹^ 、 範性之 於 们叢集仔列245A係提供4個通訊路徑, 自區域201 ^上2個。舉例而言,叢集仔列245Al5係提供 二S B (作為一個資料來源)至區域2〇1D (作為— 固資料目的地)之2個通訊路徑,且提供自區域咖( f. 為-個資料來源)至區域編(作為一個資料目的地)之 ,個通矾路徑。於一個示範性之實施例中,每一個叢集佇 们45A係亦具有8個背景,其係提供每―個叢集彳宁列2似 於母個方向上及用於每一個通訊路徑之8個虛擬連結。
^因此,對於此實施例而言,於本發明之範疇内,叢集 佇列245A及訊息管理器265係亦被認為“通訊元件,,。八 圖19疋描繪根據本發明的教示之一個示範性之第三裝 ,實施例之方塊圖,其係包含一個超叢集185C。使用此用 於電路叢集200C之拓樸,電路叢集2〇〇c係可以有效地彼 此舖排(tiled )或成陣列,以形成一個超叢集i 85,如描 繪為超叢集185C,其係具有χ 6個電路叢集2〇〇(:,描繪 為匸〇至C15。電路叢集2〇〇c之每一個係透過複數個叢集 件列245A而與相鄰電路叢集2〇〇c通訊。接著,如此之超 叢集185C係不利用一或多個第二通訊元件21〇,且反而是 透過超叢集185C内之一或多個訊息管理器265而連接至 —或多個第三通訊元件190。
245A 再次參照圖1 8 ’對於此實施例而言,叢集件列 84 200900916 " 係亦提供與相鄰電路叢集200C之叢集間通訊,且係可以 被視為叢集間的佇列245之一個更一般化的形式。如圖所 示,周圍的叢集佇列245A係提供電路叢集200C及其相鄰 電路叢集200C之間之通訊。對於叢集間通訊而言,叢集 佇列245A係可以實施成提供每一個方向上一或兩個通訊 路徑,其係根據所選之實施例而定。舉例而言,於一個示 範性之實施例中,該周圍的叢集佇列245 A係提供每一個 方向上一個通訊路徑。使用典型的幾何座標,舉例而言, ” 叢集佇列245A。係提供電路叢集200C及一個相鄰的“西 北方的”電路叢集200C之間之通訊,叢集佇列245A1及 叢集佇列245A2係提供電路叢集200C及一個相鄰的“北 方的”電路叢集200C之間之通訊,叢集佇列245A3及叢 集佇列245入4係提供電路叢集200C及一個相鄰的“西方 的”電路叢集200C之間之通訊,且叢集佇列245A5係提 供電路叢集200C及一個相鄰的“西南方的”電路叢集 200C之間之通訊。類似地,叢集佇列245ΑΠ (其係可以 I 被認為一個相鄰的電路叢集200C的一部分)係提供電路 叢集200C及一個相鄰的“東北方的”電路叢集200C之間 之通訊,叢集佇列245A1G及叢集佇列245A9 (其係可以被 認為一個相鄰的電路叢集200C的一部分)係提供電路叢 集200C及一個相鄰的“東方的”電路叢集200C之間之通 訊,叢集佇列245A8 (其係可以被認為一個相鄰的電路叢 集200C的一部分)係提供電路叢集200C及一個相鄰的“東 南方的”電路叢集200C之間之通訊,且叢集佇列245A6 85 200900916 及叢术彳丁列245八7 (其係可以被認為一個相鄰的電路隹 200C的一部分)係提供電路叢集2〇〇(:及一個相鄰的 方的”電路叢集200C之間之通訊。 此外,對於資料路由指定而言,諸如於下文所述之執 行時的結合(run-time binding),而非透過一個第二通吨 元件210至或由一個超叢集185而來及/或透過—個 通訊元件250至或由一個電路叢集2〇〇而來的路由資料或 f'其他資訊。指定路由係可以使用於此所敘述之來源為基礎 的或目的地為基礎的通訊機制,透過一個訊息管理器 至或由一個超叢集185或一個電路叢集2〇〇而來,及藉由 指定路由經過任何各種的叢集佇列245Α至超叢集iMC曰或 —個電路叢集200C内之一個指定複合電路元件26〇,而^ 生。與使用第一通訊元件25〇相較之下,只要複數個字係 不需要組合成一個封包列(train),此種使用叢集佇列245a 用於叢集間通訊係具有減少的延遲之潛在優點,且反而是 可以隨複數個字被產生而傳通。除此之外,超叢集} 85C 及電路叢集200C係分別於本文作用為任何超叢集185及 兒路叢集200。因此,任何提及超叢集185或電路叢集2〇〇 人應<7亥被瞭解為分別對應地意謂及包含一個超叢集1 8 5 C 或一個電路叢集200C。 圖8是更加詳細地描繪根據本發明的教示之在一個示 乾性之叢集200内之一個示範性之複合電路元件26〇之方 塊圖。如在圖8中所繪,該複合電路元件260係包括一個 元件介面及控制280以及一個電路元件270(亦被稱為計算 86 200900916 ' 的元件270),該電路元件270 —般是一個可組態設定的計 算的元件’但是其亦可以是一個非可組態設定的計算的元 件、一個可組態設定的或非可組態設定的通訊元件、一個 可組態設定的或非可組態設定的有限狀態機元件、可以是 一個可組態設定的或非可組態設定的記憶體元件、或可以 是針對於一個裝置1 00的任何特定應用所選的其它形式的 電路。 在一個示範性之實施例中,該元件介面及控制280係 ( 包括:(1)一個元件控制器325 ; (2)—個記憶體330(舉例而 言’内容可定址的記憶體(“CAM”)或是舉例而言SDRAM 的隨機存取記憶體)’其係儲存背景及控制資訊(舉例而言, 組態設定字);(3)輸入佇列320(作為一種形式的記憶體); 以及(4)輸出件列(或暫存器)3 15(亦作為一種形式的記憶 體)。在其它示範性之實施例中,該元件介面及控制2 8 〇可 包含該元件控制益325、記憶體330以及該輸入仔列320 或輸出佇列3 1 5,但非兩者。在額外的示範性之實施例中, 该元件介面及控制280可包含該記憶體33〇以及該輸入佇 列3 20或該輸出佇列3 1 5,但並不包含該元件控制器325。 在後者的實施例中,一旦一個SME 29〇已經指定動作並且 建立資料的指定路由之後,在該複合電路元件26〇之内便 不利用個別的或是額外的控制,其中該複合電路元件26〇 被允許自由且/或持續地執行一個指定的背景。 如上所述在所選的貫施例中,該元件介面及控制2 8 0 亦可包含一個選配的輪出交換元件38〇,舉例而言,一或 87 200900916 夕個開關、電晶體、多工器或解多工器’ & 了提供輸出資 料至该全互連7L件275或分散式全互連元件295之外,還 提供直接的交換功能給輸出資料,舉例而言,用於在該複 合電路元# 260内之内部的回授、或是用於提供輸出資料 至該SME 290、訊息管理器265、或是第—通訊元件25〇。 如上所述,該記憶體330、輸入佇列32〇以及輸出佇列3 i 5 可被實施為任何形式的記憶體,其包含(但非限制)先前所 述的任何記憶體類型,舉例而言,CAM或sdram。 該些輸入符列320係提供複數個輸入⑹到該被描繪 為示範性之四個輸入之可組態設定的電路元件27〇中,每 個輸入係具有一個16位元的資料字的寬度。或者是,該 寬度可以是更寬的’舉例…包含一個指定一佔位符號 的位元。該些輸入佇列320可以是彼此獨立的、或可以是 彼此相依的,舉例而言,為了一個組合的32位元的資料 字而利用2個輸入。在示範性之實施例令,輸入件列32〇 係被提供給每個進入電路元# 27〇的輸入,其中每個輸入 仔列320係對於每個可被該電路元件⑽利用的背景提供 -個別的佇列。此外,該些輸入佇列32〇可被實施為“短的 仵列,,’其具有1或2個資料字的深度,儘管較深的狩列以 及其它形式的記憶體也是在本發明的範疇内。對於一個示 範性之實施例而言’…輸入的每個輸入係利用八個; 景’其具有至少、2個資料字的深度。背景亦可被結合,舉 例而言,對於一個所選的背景實施一個較大的仔列,舉例 而言,16個字。 88 200900916 . 依據交換的組態設定,該些輸入佇列320可以直接或 是經由該全互連元件275或分散式全互連元件295,從複 數個輸入來源的任一個來源接收資料,舉例而言:(丨)從第 一通訊元件250(用於來自其它叢集200的輸入);(2)從在 相同的叢集200内之一或多個其它複合電路元件26〇(包含 記憶體複合的元件260m); (3)從該第二記憶體元件255; (4) 從s亥息管理器265 ;或是(5)從該SME 290(舉例而t,者 f 被該SME 290利用於一個值的計算或是2個值的比較,^ 例而言,用以求值一個條件或是一個事件)。如在圖8中所 繪,該些輸入佇列320係從被描繪為一個示範性之多工器 335的全互連元件275或分散式全互連元件295接收資料°。 對於一個示範性之實施例而言,該多工器335係為一個工 6至1的多工器,其係允許輸入佇列32〇藉由選擇用於輪 入資料之互連元件275、295之匯流排,自任何指定的來 源獲得資料。一個來自電路元件27〇的輪出亦可透過輪入 ( 佇列320或是直接在該元件270的電路之内,經由一個以 I’上所提及的輸出交換元件380、或只是經由該全互連元件 275而被回授,以被提供作為一個輸入。 在一個示範性之實施例中,兩個輸出佇列(暫存器或是 其它形式的記憶體)315係被設置,每個輸出佇列係具有= 應的八個背景’每個背景具有16位元的資料字的寬度, 並且具有1、2或更多的資料字之所選的深度。或者是, 該寬度可以是較寬的,舉例而言,包含一個指定—佔:符 號的位元。該些輸出佇列315亦可以是彼此獨立的、或可 89 200900916 以是彼此相依的,枭 次4sl〜 舉例而言,為了一個組合的32位元& 貝枓子而利用2個輪出 70的 舉例而言,用以斜你 可被組合, 列,舉例而言,8至二個所選的背景實施-個較大的仵 些輸出件列315^用。除了儲存輸出資料之外,該 資料,舉例而 ㈣皮納入的狀態機)亦可複製輸出 輸出資料至額夕^^景了分布至額外的目的地而提供相同的 Γ 27。IT個輪出Μ係從該被描繪為兩個輸出的電路元件 270的輪出件列 的資料… 每個輸出亦具有-個16位元 於肉人 見度(或是如上所論述地更寬的,舉例而言,用 出3 —個佔位符號位元、控制資訊或其它資料該些輸 :375亦可以是彼此獨立的、或可以是彼此相依的,舉例 二為了一個組合的32位元的資料字而利用2個輸入。 =輸出375係、被提供至全互連元件⑺或分散式全互連 、(或疋選配的輸出交換元件38〇) ’其可以獨立地提 :該複數個輸出375的每個輸出375至以下的任一者(經由 對應的通訊結構或匯流# 35G):⑴至該第—通訊元件 (用於輸出至其匕叢集2〇〇);⑺至一或多個在相同的叢 :、 内之(其匕)複合電路元件260(其包含記憶體複合的 件260m) ’(3)至SME 290(舉例而言,當被SME 29〇利 用於-個值的計算或是2個值的比較(舉例而言,用以求值 一個條件或是—個事件)),·(4)至㈣息管判265;或是(5) 至-個選配的第二記憶體元# 255,舉例而言,一個用於 輸入到SME 290或其它構件之長的佇列。如上所述,該選 200900916 • 配的輸出交換元件380以及其它的輸出交換組態設定亦為 可利用的,並且對於熟習電子技術者而言將會是明顯的: 被視為等同的且在本發明的範_内。 在一個所選的實施例中,該記憶體33〇係被做成為一 個CAM,以助於所儲存的工作識別符(工作ID)以及所儲存 的動作識別符(作用ID)的搜尋及識別。在另一實施例中, 及兄憶體330係被做成為RAM,其中搜尋及識別是利用其 p 它搜尋方法,舉例而言,二進位搜尋來加以執行。然而, ' 其它類型及組合的記憶體亦可被利用,因而全部都被視為
等同的且在本發明的範疇内,不論是揮發性或非揮發性, 其在無限制之下包含:任何類型或組合的ram、快閃、 DRAM > SDRAM ^ SRAM ^ MRAM > FeRAM > ROM ^ EPR〇M RQM或疋任何已知的或變成已知的其它類型的記 憶體、儲存媒體、或是資料料裝置或電路、或是其組合, 其係根據所選的實施例而定。 〔/ A旦θδ己憶冑33Q係在該示範性之實施例中被利用來儲存 月厅、及控制貝訊,被利用以組態設定該可組態設定的元件 270以及導引其動作。在該示範性之實施例中,此種背景 及&制I訊係被儲存為一個組態設定纟,作為複數個資訊 櫚,,並且其係以下參考圖16加以論述。此外,透過該 ^機元件290,此種組態設定字可被改變、刪除、取代、 一—等等,並且藉由修改在該組態設定字内之各種的位 北旦藉由°亥電路凡彳270的動作執行亦可加以控。此種 U及控制資訊的本地儲存係提供極為快速的執行功能, 91 200900916 因為組態設定或指令不需要從一個遠端的 啼们5己憶體來提取及 讀出’而是立即可供利用作為背景,以用 π V、电路兀件270 之立即的組態設定及控制。就其本身而論,該裝置1〇〇並 未受到該限制典型的處理器的執行功 〇〜 紐曼(ν〇η f
Neumann)”瓶頸。事實上,各種的記憶體33〇係作用為一 個大的、非常高度分散式指令記憶體,其可有利地被利用, 舉例而言’在-個構件失效的事件中用於分散式處理、分 散式數位信號處理、分散式程式化、以及分散 動作)再次結合。 A 此種背景的使用以及本地的儲存亦容許有複合電路元 件26〇、帛一通訊元件25〇以及狀態機元件29〇的動作之 重要的犄間多工處理。舉例而言,當一個所選的複合電路 一 的個月景可能需要尚未被另一複合電路元件26〇 產^的輸人資料時’另―背景可能是可被執行在該所選的 稷合電路元件9 里认 上,而不是讓該複合電路元件260為閒 置的。翻彳e/ n 、 ’複數個背景藉由一個狀態機元件290的使 用係容許容抽^ 竹緒的運算。舉例而言,一個SME 29〇可以 利用—用於一笛北 ,-rff 弟—老景之特定的第一資料組來開始第一程 式碼的執行, ,,,t 储存中間(interim)結果以及一個第一程式碼 的扣榡,利用—m ..,用於一第二背景之第二資料組來開始第二 輕式碼的執 铒扣柄 並且提供一個輸出,接著是利用該第一程式 石馬知標以及哕 續該第—μ辟存的中間結果以回到該第一背景以用於繼 一 +办私式碼的執行。此種時間多工的背景的使用係進 ν各許工作沾丄 的父錯以及原本可能會是閒置的資源之利 92 200900916 用,其係容許工作分享資源因而增加ic整體的資源利用 率 〇 該元件控制器325玎透過組合邏輯閘而被實施及/或被 實施為—個有限狀態機,並且利用儲存在記憶體330中的 組態設定字(背景及控制資訊)而被利用以控制該電路元件 270是如何被組態設定以及該電路元件270何時運作。更 明確地說’在示範性之實施例中,該電路元件270係根據 資料流運作,使得當其在輸入處有資料時,當其具有:個 可利用的目的地用以儲存或消耗將被產生的輪出資料時, 以及當被該元件控制器325授權時’該電路元件27〇都將 會開始動作(或起動)並且在該輸入資料上執行其計算或處 理並且提供對應的輸出資料。該元件控制器⑵: 數個條件及優先順序(以及其它在記憶體330中被儲存L 或多個組態設定字的資訊)來控制此資料流 ; 言,當超過—個背景是備妥用於執行時,該㈣控制而 可以仲裁誰先執行,舉例而言,其係透過循環、或:_25 夕個k先順序的評估、一個活動之排定的執行、或b談3 ㈣《生是在何時(舉例而言,—個最近 :二 仲裁中可能且亡 作在該 了此有一個較低的優先順序,而— 的動作在該仲裁中可AtB 士 , 取久未執行 _ r哉中可忐具有一個較高的優先順 該元件控制q1 π ^ σ 可用各種複雜度而被督 厂-個實施例中,該元件控制…=二上所 中該複合電路元件26()實質上係操作在未:實施’其 中’而受料它限制( 4續的模式 來自各種的SME 29〇的 93 200900916 任一種的控制)。在另一種極端的情形,該元件控制器 可以提供電路元件270之多執行緒的運算,舉例而^藉由 儲存一第—背景之一部分的執行之目前的狀態在該(第一) 記憶體330 t,執行一第二背景(經由該電路元件, 並且擷取目前的狀態以及藉由該電路元件27〇重新繼續該 第一背景的執行。 示範性之可組態設定的計算的元件27〇係被描繪在圖 。9與10中。圖9是-個示範性之乘法器類型之可組態設定 、 的兀件270F的方塊圖,而圖10是一個示範性之三類 型之可組態設定的元件270(3的方塊圖。如同所繪,其分別 具有四個16位元的輸入365以及兩個16位元的輸出375, 亚且依據該背景,其分別能夠利用所有的輸入365及輸出 375。對應於一個所選的背景之組態設定係被提供用於對 應的多工器、解多工器以及其它交換元件的模式選擇,以 實施該所選的組態設定。 ,, 如在圖9中所繪,該示範性之乘法器類型之可組態設 定的元件270F是可組態設定用於數個操作模式,舉例而 吕,用於3 2位元的乘法、16位元的乘法、累加、以及丄6 位兀及32位元的算術的混合。作為簡要高層級的解說的 是’該乘法器類型之可組態設定的元件270F可利用4個多 工器383、384、385、386,利用32位元的輸出選擇387, 並且利用其它輸入到加法器/減法器382及乘法器38 1的組 ’%叹疋位元而被組態設定。該3 2位元的輸出選擇3 8 7係 指定加法器/減法器382的低位32位元被輪出或是該64位 94 200900916 凡的累加智 ^ 子态388的哪個部份被輸出。該多工器385(Α / I系礼定進入該加法器/減法器382的Α-輸入為零、L、 上3疋^加暫存器388 ;該多工器386(B選擇)係指定進入 =咸法器382的B_輸入的對齊為來自該乘法器38 1 的64位元的輸出之四個16位元的部份中之一個部份;並 進入4加法器/減法器382的組態設定位元進一步指明該 、'是▼正負唬的或是不帶正負號的、以及該Β-輸入係 Γ、被加上或是減去。該多工器383(Ρ選擇)係指明進入該乘法 I 1§381的ρ·仏λ达τ』 •輸入為Ι3或“、以及是帶正負號的或是不帶正 負唬的。4多工器384(Q選擇)係指明進入該乘法器381的 Q輸入為1,或1〇、以及是帶正負號的或是不帶正負號的。 此外°亥乘法器類型之可組態設定的元件270F亦描繪在該 兀件270之内,從該64位元的累加暫存器388至多工器 的輸出回授。 如在圖10中所繪,該示範性之三ALU類型之可組態 (°又疋的70件270G係可組態設定用於廣泛種類的功能,其包 3舉例而言是乘法、加法以及減法(在帶正負號的算術中)、 遮罩(masking)、算術平均、以及四捨五入(r〇unding)。此 外,該示範性之三ALU類型之可組態設定的元件27〇(3可 輪出一個常數,傳輸一個值(複製A或B至其輸出),執行 邏輯功能(NOT、AND、OR、XOR),並且可以執行條件式 或無條件式的資料流。如在圖10中所繪,依據該些組態 設定位元,每個移位器393、394及395係向左(正)或向右 (負)移位其對應的輸入指定的量。ABS區塊389、399也是 95 200900916 根據該些組態設定位元來計算該輪入的絕對值或是傳輸該 輸入°亥狀態夕工器396係利用來自每個ALU 39〇、391 及392的旗標位元(其可被提供至_ 29够產生一個狀 態字’其中一個旗標位元係指明-個進位或比較,一個第 二旗標位元係指出該結果是最高有效位元,一個第三旗標 位元係指出該結果是一個自〗,舞 疋個負1(_1),並且一個第四旗標位元 係指出該結果是零。命你妓4么 该條件父換的多工器397及398係被 利用以在輸入13、上提供格杜Μ & ^ 仏條件的執行’並且根據該結果, 傳輸1〇及/或I丨至輪出、 並且在被複製到輸出3 75之前 進一步提供輸入的交換。 如上所述,除了這些類型的可組態設定的元件2川之 外,其它可預期的可組離母定 '、且I-又疋的兀件270係包含 重新排列元件(%1^〇,,)、單一 70位70 ^早 ALU兀件、“超級”ALU元 件(32位元的Alu)、桶形蒋你哭-批 ^ 糾元件多15凡件、查找表元件、記憶 件、可耘式化的控制器元件、通訊元件、等等。 的程式鎞1 圖u是描緣根據本發明的教示之_種示範 法之流程圖。痺瞼絃的θ 届#方 口應瞭解的疋,以下的討論是 之目的之非赍古认S· Μ 鮮釋本發明 非常呵的層級。該編譯方法可利用 / 或網路、工作站、卢 何電細糸統 作站、處理兀件、一或多個微 計自動化(“EDA,,:)i#_15、電子設 丹 電子系統層級的(“Est,,、 等而被執行。 〜ML )工具、等 ^請參照圖U,該方法係開始(開始步驟 ^ 算法的選擇以用於編譯(步冑405)。此一、'寅算/—個演 肩异法可以用廣 96 200900916 泛種類的方戎 π 舉例而言從數學的說明至用於一個微處理
杰之原始石馬或B 曰的碼列來加以表示。該演算法係被轉換或 分解為複數個“ 工作”(步驟410),其係功能或方法的高階說 明,舉例而令θ 。疋執行逆快速傅立葉轉換(IFFT)。一項工作 係接著從該複I柄 致個工作中選出並且被指定一個工作識別符 (“工作ID”)(牛_ v鄉415),該工作ID典型是一個足夠是唯一 的識別符以區別 〜工作與相同的演算法之其它的工作事例、 或疋與亦將會同g本— 夺在該裝置1〇〇上執行的其它演算法之工 作區別。 、—°亥所^的工作係接著被轉換或分解為一或多個動作, 以猎由-個複合電路元件26()(包含計算的、狀態機及/或通 訊複合的元件跡29()、25_行以執行該K步驟々Μ)。
V 上所述 項動作”是將被一個複合電路元件26〇執行 的功能或活動的類型,舉例而言,乘法、位元處理以及指 令處理’並且可被視為等同於一個將藉由一 的指令 '或是—項藉由-個趟C4FpGA執行㈣^ Μ達成相同的結果。舉例而言,—個刪卫作可被 為複數個“蝴蝶(butterfly),,步驟,皇如 & 刀 乃v騍,舉例而言,乘法、加 及累積步驟’母個步驟或是所有的步驟將會構成—個 (或指令)’舉例而言“‘a,乘以‘b’(axb),’,並且將會: 些複合電路元# 260中的—個的操作組態設定中^…亥 是’如同在此的用法,該些用語“動作,,、“功能 。於 係等同地被使用,並且可互換地表示任何此種,動” 是,此種動作(或指令)—旦被指定及結合之 私。(於 ^ 將會是在 97 200900916 該IC上以一或多個的元件270的組態設定的形式 — =個動作(或是指令)中一㈣物指销被選出: 才曰疋一個作用識別符(“動作ID”)(步驟425),該動作出β皮 個足夠唯一的識別符以區別該動作(或指令)與該所選= ==它動作(或指令)。該工作ID以及動作出係被利 用在§亥執行時的結合過程中,其 之。 M下麥考圖14論述 Γ— 每個動作(或指令)係接著藉由將被 件類型而被對映或指定為―戋多 、°路70 次多個複合電路元件260的一 =二景(步驟,,並且未被對映或指定至該架構内 /叫疋的複合電路元件26Q或特定的位址,以產生一 個符號的,,通稱或非特定的編嗶, 體槿杜斑 &的、'扁"睪其並未拘束到特殊的硬 映為—個牛例而S ’ 一個乘法及加法動作(或指令)可被對 型的雷ALU類型之複合的元件26〇( 一個具有—ALU類 對映件27〇之複合的元件260)的單一背景,而未被 人的至:個在—料的叢集_内之料的⑽類型之複 :的::勝較複雜的動作(或指令)可被對映至多個類 =合電路元件26。的多個背景。之後,作為該結合過 元玉^份的是’該所選的類型之一或多個特定的複合電路 :〇將會被指定來執行該動作(或是等同地執行該指 為其可利用的背景中之—或多個。此種區別是重要 人電:為是容許該動作(或指令)最初被指定給—或多個複 口軍路元件260,並且拯 可处θ 且接考在该裝置100的動作期間隨著 疋所需地’可被重新指定至其它複合電路元件%0。 98 200900916 此外,如同所指 合過程可指定該、,在示範性之實施例中,此個別的結 複合電路元::動作(或指令)為-或多個該所選的類型之 然是可利用於其它〇可利:的背景,其中其它的背景可能仍 匕動作(或指令)的指定。 作為此方法的邱八 應的“關連,,亦以此、°甬 對於每個動作(或指令)之對 (步驟435),、稱的、符號的或非特定的層級被決定 個叙你& + 破決定為通稱或符號的“指標,,:對於每 有關用於輪入資料的來源或是用於資料輪出 •^日的地、亦革工叫 者之資訊係被產生及維持。舉例而言, =了對映至叫固ALU類型之複合的元件⑽ ^»229„ ’’將會具有關連的資訊為其將會從工 乍229的動作號碼“ 輸出至工作“319,,的μ 或是其將會提供其 *… 1Γ,(或是兩者)。假設該資 ^ 所有的動作(或指令)都是一致地被產生,只 k. 輪入關連或輪出關連的其中一組,因為自動地連 其資㈣料連結„料來源 !利用該賴的輸人(目的地),並且反之《。在所選: 、貝施:中二擁有兩、组1/0關連資訊可能是有用的。此種透 過通稱或符號的指標在輸入與輸出之間的關係或‘‘關連”, Η用於作為以下論述^作及動作(或指令)結合過㈣ ^用二驟435的此種輸入或輸出關連決定可在該編譯方 法中㈣泛種類的順序且依據任何各種的步驟被執行。舉 用此決定可在㈣440 < 445以後被執行,舉例而 5,虽用於-項卫作之所有的動作(或指令)已經被決定且 99 200900916 對映至複合電路亓 令)以及工作已二件260的類型、或是當所有的動作(或指 時。 “破決定及對映至複合電路元件26G的類型 限制,咳程判斷在程式或演算法中之任何時序上的 I以法將會對應地需要某個程度的接近或 ::性錯由各種的複合電路元件26〇的執行,並且對於受 r \
41Γ作及/或動作(或指令)提供對應的區域的限制(步驟 At牛⑽言’對於各種的.時序要求而冑,某些程序可 在單叢集200之内或是在在相同的超叢集185内 個群組的叢集2⑽之内被執行,以避免任何可能從在 S 一 5上扣定路由給資料封包往返於其它叢集200或 -匕超叢_ 185引起的延遲。在這些情況中,一個區域的 求係在4編澤後的輸出(以下論述的“符號的電路描述檐”) 中被提供’舉例而言藉由-個“區域”命令或指令的指定, 丨而σ用以提供之後的動作(或指令)必須在單一叢集 200之内或是在單一超叢集185之内被執行,其接著是/ 個用於受限至該單一叢集20〇或單一超叢集185的動作(或 私令)的“結束區域”的指示。根據所選的實施例,如此之區 域限制係亦可以被延伸至一個電路叢集2〇〇内之區域2〇1, 電路叢集200係諸如電路叢集2〇〇c。 在步驟440以後,該方法係判斷是否有額外的動作(或 才曰令)將被指定一個識別符且被對映至複合電路元件26〇的 類型(步驟445),並且若有的話,該方法係返回到步驟425 並且重複之,以選擇下一個動作(或指令)且前往步驟425、 100 200900916 43〇(可能有435)以及440。當該工作的所有動作(或指令)都 已經在㈣440中被指定-個識別符且被對映至複合電路 元件26。的類型(並且可能的輸入或輸出連結)時,該方法 係前進至步驟45〇,並且其係判斷是否額外的工作將被編 譯。當在步驟45G中額外的工作將被編譯時,該方法返回 到步驟415並且重複之,其係選擇下一個工作、指定—個 工作ID、等等。 當所有的工作都已經在步驟州中處理,使得該所選 的演算法已經轉換成為複數個工作及動作(或指令),該工 作及動作(或指㈠接著已經符號(通稱或非明確地)對映至複 合電路元件260的類型並日^ + 員1並且糟由資料輸入來源或資料輸出 目的地是兩者)(舉例而言’利用符號的指標)而符號地連 結時’該方法係產生一個複合電路元件並且指定路由的‘‘符 號的電路描述檔,,或符號的編譯(步驟455)。此符號的電路 描述標、表列或編譯係包括複數個符號的電路描述標元 件,其中每個此種符號的電路描述槽元件係對應於且包含 用於該演算法或程式的每個工作的每個動作的執行的資 訊。更具體而言,每個符號的電路描述檔元件係包含資訊 為有關:⑴該工作ID;⑺該動作ID ; (3)_或多個類型的 複合電路元件260以及對用於該對應的工作⑴及作用ι〇 之動:(或指令)的執行的每個類型的複合電路元彳㈣所 需之背景的數目;⑷輸入或輸出(或是兩者)關連資訊;以 及(5)對於該對應的卫作或動作(或指令)之任何區域的(亦 即,接近)限制。此外,此編譯方法係可應用於本文所述之 101 200900916 包含超叢集185C及電 各種電路及互連拓樸的任何一個 路叢集200C的拓樸。
作為在步驟430中的對映至—或多個類型的複合電路 ^細以及在步驟435中的連結指令之一種替代的是, 動‘作(或指令)亦可以被對映至“巨集定義,,或“程式館,,。此 ^集定義”或“程式館,,實質上是具有-個對應的符號的 人“棺之㈣編譯的卫作或動作,其已經被對映至複 口電:凡件260的類型並且已經對應地連結(在區域的限制 下,若有的話)。舉例而言,IFFT可被對映至一個_程 式館〃係包3利用該裝置刚來執# ifft的所有複合 的元件類型及複合的元件關連的資訊。此種程式館的產生 可以發生在各種的層級中之任一層級’舉例而言,對映用 於串仙_媒體之H.264的各種演算法。 再者’對於任何所冑的動作或工作可能有多組此種對 映及關連’其可以針對不同的目標加以最佳化,每一組可 能產生-個不同的符號的電路描述檔。舉例而$,如上所 述:將藉由一個三ALU類型之複合的元件260執行的工作 可:對映至三個單-ALU類型之複合的元件260。儘管此 可=減低執行的頻寬或速度,但是當其它較高的優先順 序演异法正在利用所有的可利用的三個ALU類型之複合的 一牛260之所有可利用的背景時,其可以容許藉由該裝置 100來執行之。類似地,將藉由一個ALU類型之複合的元 執行的工作可被對映至複數個加法及乘法類型之複 -的元件260,此亦產生另一種對映及連結變化。 102 200900916 由於這二對映及連結變化是可利用的,所以任何所選 的濟#法都可以使得多個符號;的電路描述檔被產生,每個 %路4田述檔係針對於—個不同的目標而被最佳化或選擇, 舉'而言’執行的速度、功率最小化、在減少的資源下執 仃的旎力、安全、冗餘、衝突解決、冑等。舉例而言,請 =考圖1,在該IC的一大部份受損,使得用於ABS的最 、算去不再具有充分的1C資源來執行的事件中,該$ f、力此的另一(次佳的)版本可被載入及結合在該1C中,此係 t 使,一項重要的功能可在另-IC(舉例而言,標準的微處 里器)將會疋全失效的情況下繼續運作並且避免潛在有害的 結果。 在步驟450中之符號的電路描述檔產生之後,該編譯 方法係判斷是否有額外的演算法將被編譯、或是如上所論 述,用於一個所選的演算法之額外的版本或替代者將被編 譯(步驟455),並且若有的話,該方法返回到步驟4〇5並 {}且重複之。當步驟455中沒有進一步演算法或是演算法的 版本將被編譯時,該方法可以結束,而返回步驟46〇。 業系統 圖12是以高階描繪根據本發明的教示之一個示範性之 業系統或方法之流程圖。應瞭解的是,為了解釋本發明 之目的’以下的討論是非常高階的。除了藉由各種的SME 290執行之外,或者是,此作業系統的功能可藉由—或多 個額外的控制器175執行。 5亥方法開始於(以步驟500開始)裝置1〇〇被導通電源, 103 200900916 該裝置100舉例而言是一個soc的部分或是在另一系統之 内,舉例而言,交通工具、電腦、複雜的系統、行動電話、 個人數位助理、MP3播放器、等等。一項自我測試典型是 藉由每個狀態機元件290而被執行(步驟505),該些狀2 機元件290可以測試其本身,並且在示範性之實施例中悲 可以測試在其對應的叢集200或其它叢集200(舉例而言, 用於那些實施為不具有對應的SME 29〇之叢集2〇〇)内之各 種的複合電路元件260、第一通訊元件25〇、全互連元件a” 或分散式全互連元件295、其它狀態機元件29〇、以及其 匕邏輯、通訊或記憶體元件。有廣泛種類的方法來判斷這 些各種構件是否正確地操作。在—個示範性之實施例中, 該操作判斷係藉由一個複合電路元件(其中複合電路元件係 以其包含的(inclusive)意義被利用,其包含在對應的叢集 或其它叢# 2GG内之所有各種的複合電路元件26〇、 弟一通訊元件25〇、全互連元件275《分散式全互連元件 29:、其它狀態機元件29〇、以及其它邏輯、通訊或記憶體 凡件)而被執行,並且其係以下的判斷類型中的至少一個· :由該複數個複合電路元件中的至少一個複合電路元件所 —仃的-個週期性的診斷;被執行作為該複數個複合電路 :::的至少一個複合電路元件的一個所選的背景之一個 月豕移斷;或是藉由具有 人+ 丨」的電路几件類型之複數個複 ::::件所執行的一個比較測試。舉例而言,各種類型 ’硬。電路元件的每個類型(包含 兀件270的類型)都可以 項㈣的自我測試,接以比較其對應的結 104 200900916 果。若-個第-複合電路元件的結果舉例而言藉由比較其 它具有相同類塑的複合電路元件260的結果而不符合預期 的結果時,該第-複合電路元件係被認為是有缺陷的或是 未正常操作的,因而不内含在可利用的資源的對映表或表 列之内(在以下的步驟515)。 一 議29〇(或控制器175)中的—或多個接著將會獲得及 執行-個開機程式(步驟51〇),舉例而言,—個針對於該 才置10G所。又#的程式,且儲存在—個關連的記憶體(舉例 而言,快閃或其它EEPR〇M記憶體)或是其它資料儲存元 件(舉例而言’硬碟機、光碟機、等等)中,其可以是相同 的1C或關連的系統之部份。 兩項重要的功能係在步驟515以及似中被執行為作 業糸統的開機過程的部份。咖29(^一或多個係產生可 2用的裝置100資源之一個對映表或表列,舉例而言,在
一個叢集200或超業隹L 蕞集185之内的-個表列,在叢集200 次超叢集185中的德人當政-η, 、 H電路讀26G、第-通訊元件25〇、 以及其它構件是正常地運作〆牛踩[ 也運作(步驟515)(舉例而言,類似於 :-個記憶體或磁碟機產生—個損壞或良好區 表)。步驟515可舉例而+ θ茲山—加。 、 例而5疋藉由母個SME MO對於其對 心、々叢集2 0 0而被勃杆、斗,Η 執仃或疋藉由一或多個SME 290(預先 =疋如同在該開機程式中被決定)對於一整個超叢 185或矩陣15〇而 -、 λ g,, 皮執仃。在一個示範性之實施例♦,如 在圖〗3中所緣且如下炎 組人 下> 考圖13所論述,步驟515係藉由 口 4輯几件而被勃并 仃該組合邏輯元件可被設置或分散 105 200900916 在一個複 合電路元件260、一個叢隼 最集200、以及整個矩陣 階層之内。此外’在步驟520中,—彻+ ± 個主控制器係被決定, 其可以是運作為-個主控制器之_個所選的讀2 數個讀290、或可以是-或多個額外的控制器Μ# 它晶片外的控制器、處理器或狀離撒 > L機。在一個示範性之實 施例中,一個主控制器係被決定為_ 隱290(在㈣)。 定為個具有最低位址的 該作業系統透過一或多個狀能她_ & 狀態機几件290(或控制器 175)以及可能的制者輸人,其係接著判斷或選擇料程 式二演算法或功能將被執行(步驟⑵),舉例而言,選擇 先刖淪述的ABS、循跡控制、視 ^ „ 尼u及導航程式。接著, 在步驟53〇中,該作業系統係結 雷跋扣、+,# s # 口 °亥所選的程式之符號的 電路祂述祂至s亥可利用的資源 並你茲山北— 、甘夕驟515中判斷出的), 係精由扣疋一項工作及動作 , 日令)至一個所選的複合 电路凡件260(作為—或多個背 合電路元件的輸入至…由連、"所選的複 之資料來诉… 所選的複合電路元件260 料(該作業έt 電兀件260,以提供其輸入資 複合電路元杜一貧枓來源輸出至該所選的 ^ ^ 的輪入作為資料目的地)、及/或由連 結該所選的禧合啻 久/ 4精由連
^ ^ 兀*件260的輪出(作為資料來源)至A 匕為该所選的複合貝针术源)至其 合電路元株7ΑΛ 之資料目的地的對應的複 生的資料(該作業V!利用由該所選的複合電路元件260產 至該所選的複合電Γ::應地連結這些資料目的地的輸人 複电路疋件260的輸出(作為一個資料來 106 200900916 源)) 一旦所有的工作及動作(哎八 後, — )破結合(指定及連結)之 使5亥裝置10〇係開始該對應的鞀令+壬 7應的程式或動作的執行或運行 ^ 5 ,舉例而言,操作該ABS 3S % 放祸π仏悉# ABS及循跡控制系統、播 孜視汛給乘客、以及提供即時 定及鉍政吋的導航顯不給駕駛。該結合(指 個、細地在以下參考圖14加以論述。在每 们複口電路凡件260中的 飞(次知作)的執行方法的控制 係在以下參考圖16更加詳細描述。 (半亦可以判斷是否需要新的或是不同的功能 : 例而言,當使用者或操作者選擇一個額外 此係二況需要在功能上的改變時,舉例而言, :係透過-個侦測一特殊狀況的感测器。舉例而言,在一 況=ΓΓ,一個感測器可以債測在駕駛或道路狀 V.. 且相應地調整各種的程式。當在步驟540 或是不同的功能時’該方法再次結合(重新指定 及再次連結)受影響的工作及動作㈣令κ步驟545): 且«置1〇〇係在這些各種的改變之下持續運作。該工作 :=(或指令)可被移到新的位置、或是現有的或新的工 作及動作(或指令)可被載入、指 -X ,ν ^ ,4- ^ ^ 疋夂、,,〇合。該作業系統亦 可乂重新、.、口 a或再次結合一整個程式 匕 άΛ m ^ 4力月b。此再次結合 Π:可包含解開結合’換言之,完全地消除-項 才日疋的功此,舉例而t,拉L你#格 j句。错由攸^憶體刪除其對應的背景。 牛例而言’此種解開結合可以發生在該|置⑽已滅是在 最大能力運作’因而必須產生用於該新的或不同的㈣之 107 200900916 空間。此種解開結合係描述在圖1中,當視訊功能隨著該 I置1 00因為1C損壞而漸增地損失能力時。
該裝置100係透過一或多個執行該作業系統(或是作為 一個内建的自我測試(“BIST”)之部份)的狀態機元件290(或 控制益175)週期性地執行一個有限的或完整的自我測試(步 驟550),以偵測在資源的可利用性上的任何改變(步驟 555)。舉例而言,該自我測試可以透露出一個BREO類型 的電路元件270不再正常地運作,因此應該不再是可利用 於遠裝置100之中。當此種功能的損壞或損失在步驟奶 毛生日^ °亥作業系統(透過該SME 290或控制器1 75)係 對應地修改可利用的資源的對映表或表列(步驟560),利 用§亥修改過的表列或對映表來再次結纟受影響的工作及動 作(或指令)(步驟565),並且該裝置1〇〇係在這些各種的改 變之下持續運作。 。b當在步驟555中沒有此種功能的損壞或損失發生時、 或是在㈣565以後,該方法都前進至步驟570。在步驟 57〇中,該裝置100可以繼續操作,返回至步驟。在
動作在步驟570中脾n古,L T將要停止的事件中,舉例而言,藉由該 使用者選擇以關斷且右 、 /、有-亥裝置1〇〇的元件,該裝置100可 以關閉或關機,返回步驟5 7 5。 在另一示範性之實施例中,並未個別地在圖12中描繪 =該複數個複合電路元件26Q可被實施或適配於週期性 地儲存一個當時的 狀&,舉例而言,其目前動作的一 们快照(snapshot),,。接基 鄕你 接者’響應於一個偵測到的錯誤,該 108 200900916 複合電路元件2 6 0係適g?於掷& # 邶週配於擷取該儲存的狀態並且利用該 儲存的狀恐重新開始操作。 號的電的結合 在瞭解此背景在下,該鈾杆± Θ軌饤日XJ·的結合過程現在可加以 角午說。如上所指出地,本發g^ & + \刊的^構和一個符號的電路描 述標(或其匕程式編譯)的勃件昧认4人 ^ π钒仃時的結合一起係致能該裝置 100的自我復原及彈性。#呈舻丄 灵八體而§ ’當該複合電路元件 260 ' SME 290 ' ^ — ίΐ ^ - ιύ. ^ f. 、讯几件250、全互連元件275或分 散式全互連元件295、並它業隹 匕叢集200構件、或是指定路由 或其它通訊元件(1 90、? 1 n、iA VT , „ 1 210)的任一個最初未正常地執行(如 同在該開機過程的測試部份 丨仍旳期間在步驟5 1 5中被判斷 )或疋在乂後的動作期間(如同在自我測試期間被判斷 出或是如同藉由其它構件判斷出(步驟550、555))時,其係 分別未被置放到可利用的資 負碌的對映表或表列、或是從該 對映表或表列被移除。芒屏4 战 、 取初未正常地執行時,則該受影 姜的構件絕對不會在步驟q Λ & + 妨 B在少驟530中指定任何功能。若該受影
f的構件原先在運作而招y_ τ I 見在不再運作時(步驟555),其係 從可利用的資源的表列π戈針 A 4對映表被移除,並且其指定的功 能係被轉移或被載入到另一 力 了利用的構件並且被重新指定 路由,此係個別地或是作為步驟⑹的對應的卫作或指令 :再次結合的部份。若已經判斷出該資料已經受損,則該 〇 向了以知取適當的動作。此結合過 私係在以下詳細地加以解釋。 用性 109 200900916 圖13疋拖繪根據本發明的教示之用於在一個示範性之 裝置1 00内之者厅、可利用性的判斷之示範性之組合邏輯電 路600之方塊圖。此種電路6〇〇可内含在每個複合電路元 件260之内(舉例而言,在一個電路元件謂、一個元件控 制器325之内)、在-個隱29〇之内、或是作為個別的 組合邏輯(未個別地在圖8中繪出)。如上所述,用於每個 類型的複合電路元件 忏260之可利用的背景數目係被判斷 出,以用於結合(或異-分奸· 、 . 丹-人、、、〇 δ ) —個程式或演算法以用於在 該裝置100之内執行。此種判斷可以藉由一或多個義 290、控制器(或其他處理器)175、或是如在圖η中所 緣之專用的組合邏輯電路600來完成。 。月參照® 1 3 ’作為儲存在每個複合電路元件细内之 記憶體330中的資訊之部份的是對於每個背景的一個狀態 位疋以及-個第一狀況位元。該狀態位元係指出該背景是 否已經被指定或是配置給一個動作(或指令),並且因此是 空閒或可制來被指定的(邏輯高或1)、或不是空閒而可 利用來被指定的(邏輯低或0)。或者是,該狀態可藉由檢 查該記憶體330來判斷該動作ID及卫作m攔位對於該所 選的背景是零或是非零而被判斷出,☆匕係指出是可利用的 (未被指定或配置動作ID及工# ID)或是無法利用的(已經 才曰定或配置動作ID及工作ID),並且接著被反相以被利用 作為在圖i…狀態位元。該第一狀況位元係指出該複 合電路元彳260是操作的(邏輯以υ或是非操作的(邏輯 低或〇),如同從上述的各種示範性之自我測試過程判斷出 110 200900916 ' 的。對於(“m”個昔旦*认、—斗 月牙、中的)母個背景而言,一個第—ANn 運算係在對應的狀離位开另筮 ^ 一 狀L位7L及第一狀況位元上被執行,且 、二由AND閘6〇5(被描繪為該複數個AND閘6〇5〇、6〇5至 6〇5(m.n’使得該ΑΝ〇運算的結果係指出該背景是可利用 的,並且該複合電路元件26〇是正常地工作(邏輯高或 或是指出該背景是不可利用的或該複合電路元件260並未 正常地工作(邏輯低或〇)。 n —個第二控制器(SME 290)狀況位元係被利用來指出該 SME 29〇(在該叢集2〇〇之内)是操作的(邏輯高或^或是非 操作的(邏輯低或〇),亦如同從上述的各種示範性之自我 測試過程判斷出的,並且可被儲存在在該複合電路元件260 或叢集200内之各種的記憶體的任一者之中。一個第二AND 運异係利用此第一 AND結果(狀態及第一狀況位元)以及該 第一控制器狀況位元而被執行(經由複數個AND閘610〇、 610,至610(m_1}),使得該第二and運算的結果係指出該背 I 景是可利用的,並且該複合電路元件260以及SME 290是 正常地工作(邏輯高或1)、或是指出該背景是不可利用的、 該複合電路元件260非正常地工作、或是該SME 29〇非正 常地工作(邏輯低或〇)。該第一及第二AND運算亦可被執 行為單一紐合的AND運算,其具有至少三個輸入(狀態位 元、第一狀況位元以及第二狀況位元)。用於每個背景的第 二AND運算的結果可被相加,舉例而言是藉由利用一個“一 位熱碼(〇ne-h〇t),,加法器615(或是一個SME 290或其它控 制器)’其係提供每個具有一工作的SME 290之複合電路 111 200900916 疋件260空閒的背景數目。 如同所繪,此方法可以繼續往上到矩陣階層,其中對 於在—個叢集200内之每個類型的複合電路元件26〇,每 個複合電路元件260的空閒背景數目被加在一起,接著對 於在-個超叢集185内之每個類型的複合電路元件26〇加 起,接著對於在—個矩陣15〇内之每個類型的複合電 凡件260加在一起,並且接著對於在該裝置1〇〇内之每 =型的複合電路元件⑽加在—起。這些額外的麵 β开可利用專用的加法器(舉例而言,62〇、、63〇)、或 2疋糟由利用被組態設定成用於細運算且在其對應的議 的控制下之複合電路元件26〇而被執行。於是,對於 :固:型的複合電路元件26。之可利用性計數可在每個層 声:、即’在叢集200層級、超叢集185層級、矩陣15〇 ^ 、以及裝置層級被判斷且維持之。 K,'j 此種在這些各制級的計數是特別有料麟一個超 叢集是否具有可利用性以滿足一項區域的 個叢隼 言,當—些動作必須在時序限制下利用在- = 是超叢集185内之某種類型的複合電路元件 0被執行時。此外,利用此種組合邏輯電路之下,複合 ^牛260的可利用性係快速地對於所有的叢集同 運算2 判斷且維持之,具有僅來自數個細及柳 延遲(舉例而言,對於一整個矩陣Η十, 個_延遲以及四個ADD延遲)。 a、.〜、兩 作為—個用於可利用性判斷的替代方式是,該議綱 112 200900916 可被利用以查詢或檢杳在叢 # 260的〜 内之對應的複合電路元 件260的所有記憶體3 隼的複合電L 的各種暫存器,並且依照每個叢 ⑼%件26G的_加總結果,其中多個所 選的SME 290接著加總對於 $多個所 、、口果。此種可利用性的判斷可以是在矩陣階層中由上往下 的,舉例而言是藉由一個主、^ ^ ΟΟΛ a ^ , 市』盗(其可以疋被指定的SM£ $疋工!l Is 175)起始、或是在矩陣階層中由下往上的, f 舉例而言是圖13中所纷或是藉由在每個叢集200内之每 個議290所提供。對於熟習電子技術者而言,將會明顯 的疋存在無數種的方式來提供此種可利用性的判斷,其係 利用組合式 '條件式或控制邏輯,其全部被視為等同的且 在本發明的範鳴;内。 2..·符號的電路描述撥的拍定_ 圖14被劃分為圖14A、14B、14C及ud,其係描繪 根據本發明的教示之-個示範性之演算法或是符號的^路 描述槽之執行時的結合過程之流程圖,並且進一步描繪與 为散在整個裝置1 00的狀態機元件29〇相關連之重要的功 迠。或者是,此功能可藉由一或多個額外的控制器i75執 行,舉例而言,被指定為一個用於該裝置100的主控制器 之控制器1 75。除了所插繪的結合過程之外,熟習此項技 術者將會認知到该方法的許多變化都是可利用的,並且被 視為等同的且在本發明的範疇内。至少一個此種變化亦^ 以下論述之。 如上所述,該裝置100係執行一個被提供作為符號的 113 200900916 電路描述檔之演算法的一個執行時的結合動 為類似於一個用於具有可程式化的指定:π其可被視 資源之設置及指定路由的動作。在此 程式化的 資源本身已經設置在該ic上, w可程式化的 定一個動作(或指令綱-個工接著指 ::資源的一或多個背景,並且提供輸入與輪出 私疋路由或連結。相對於可能花費數小 ,、 習知技術的設置及指定路由的方法,本發執行之 快速地以數微秒或數毫秒至數秒的數量級操作/係相* = ::,14A)’該方法係開始(開始步驟 以對於母個類型的複合電路元件260的可利用性計) 斷及/或維持,如上所論述,其較佳是在叢集 作AAA f a 力月b或才曰令) 驟、^的電路描述檔元件,其係被提供至—個主控制器 ^ 卜其舉例而言可以是—或多個被指定的SME29〇 或-或夕個控制器175。該被指定的SME29〇或控制 係接者判斷該動作(功能或是指令)是否包含―個區 步驟71〇),並且若有的話,其係前進至步驟 士 v驟71〇中§亥動作(或指令)並不包含一個區域的限制 % ’該動作(或指令)係被提供至對於該指令具有足夠的次 源可利用性之—個超叢集以及一個叢集層級(步驟750)貝 舉例而t,且» ’ 。 八有用於在該符號的電路描述檔中提供的— 夕個類i的複合電路元# t足夠數目的可利用的: 景。 月 200900916
可利用的一或多個叢集200之一或多個SME 290係指 定動作(或指令)至該叢集200中之一或多個可利用的複合 電路元件260(步驟755),其係藉由儲存對應的資訊(組態 設定、工作ID、動作id以及來源(或目的地)工作ID及動 作ID)在每個此種複合電路元件260之對應的記憶體33〇 中、或是儲存在一個記憶體複合電路元件26〇、第二記情 體元件255、或是其它該SME 290以及該複合電路元件26〇 可存取的記憶體中。儲存的資訊量及位置可以隨著所選的 實施例而變化。在一個示範性之實施例中,該動作(或指令) 係和對應的連結資訊(用於輸入的資料來源或是用於輸出的 資料目的地,其亦藉由工作ID及動作ID來識別)一起被本 地儲存在該記憶體330中(或是在該叢集2〇〇之内)作為一 個組態設定、工作ID,動作ID。在該指定之後,該可利 用性計數係被修改(步驟760),舉例而言,如同以上對於 圖13所述地自動被修改、或是當舉例而言各種的計數是 藉由一個被指定的SME 290或控制器175所維持時,藉由 减量在一個暫存器中所維持的計數。 …係接者㈣走否所有的動作(或指令)都已經被 指定765)。t有剩餘將被指定的動作(或指令)時,該 方法係接著判斷是否有剩餘的可利用的資源(步驟77〇)。 2在步驟770中有剩餘可制的資源時,該Μ返回到步 並且重複之,其係選擇及指定下一個動作(或指令)。 有剩餘的動作(或指令)用於指定時,該方法係前進至 )驟_㈣始指定路由(亦即,連結)所有的被指定的動 115 200900916 作(或指令)。 當在步驟765中有剩餘將被指定的動 Β Λ. ^ 指令),但 疋在v驟770中不再有可利用的資源時, ,、宫曾,土 此指出該所選的 〜斤法可能無法運作在目前組態設定(或可利用的)裒置1〇〇 上,—個錯誤或例外訊息係被產生(步驟 ^ 卿//5),並且該方 = 回步驟78。,因為該所選的程式之符號的 田逑才田目則無法被指定。在該事件中,有許多可能的 作途捏。舉例而言,被指定的赚290或控制器175可 肖資源之較低優先順序的程式或動 ^供空間給該所選的程式或動作並且容許該所選的 矛王式執行在該裝置100上。在
〇〇Λ 隹^匕貫例中,該被指定的SME 或控制器1 7 5可以選擇可妒β ^禪了犯疋可在不移除此種其它程 式下被指定的程式的另一肱 φ ., 版本。在其它實例中,其可以指 出對於該所選的應用需 — 1()〇。 而要一個具有較多資源的較大裝置 當在步驟710中兮所、径& < & μ所選的動作(或指令)包含一個區域 的限制時,該方法係侖、# s 土 a '、j進至步驟715,即如在圖14B中所 、、冒者。此種區域的限制 刊』具有格式為舉例而言_· 區域3超叢集 區域1叢集動作π,12 11 12 結束區域 區域2叢集動作13,14 116 200900916 13 14 結束區域 結束區域 其中—個超叢集區域的(接近 級的區域的限制’每個限制已經包含受到 叢集: …區域^制^ ,被使用。如在此實例中所繪,動作(或指令⑴及 符號的電路描述標元件)必須被指定在相同 .、, 内,,並且動作(或指令)13及14(作為符號的電路描f之 必須被指定在相同的叢集200之内(作為區域2,其^ 相同或疋不同於11及12的區域1叢集的叢集)。炒乂疋 個叢集200都必須是在相同的超叢集,,即如納:= 叢集限制之内(區域3)。 在"亥超
KJ 在步驟715中,該被指定的咖別 判斷該限制是否為-項超叢集限制,其將會需工:二175係 的動作被指定在相同的超叢集而要:一限 該區域的限制是用於—個超叢集時,該被指mi5中 或控制器Μ係提供該超叢集限制 290 利:性要求之可利用的超叢“5,並且暫時#=可 ,或多個超叢集為候選者(步驟7叫。在 ;不 後、或是當在步驟715中該 〃 720以 該受限的動作係被提供至所V符Γ二個叢τ限制時, 117 200900916 之内)’舉例而言是各種符合該實例的區域"艮制的叢 :’亚且那些叢集200係暫時被指定為候選者(步驟725)。 右有的这’下一組叢集層級之受限的動作係被提供至所有 符合下一個叢集限制之可 斤有 所需的話,則在一或多::=叢集2°°(右為先前的限制 人上一 夕個超叢集之内),舉例而言是各種符 &该貫例的區域2限制& fI 、 限制的叢集,並且那些叢集200亦暫時 被才日定為候選者(步驟73 , 寺 f. 1. 者,但是現在並不包含足二m些先…是候選 的限制的超叢集或叢隼 —顆外 Μ此叢集現在可被釋放,且不再被指定為對 於該些區域的限制之候選者。雖然 法係亦可以採用於任何區域 刀:、:’目同的方 被處理時(步驟735),対= 的限制將 )'玄方法返回到步驟730,並且繼螬# 暫時的指定過程。 亚^續§亥 :在步驟735中沒有進一步限制需要被處理時,該方 "糸判斷是否已經找到—或多個符合(超叢集及/或叢集的 :(步驟74〇)。當在步驟74"已經找到-或多個符a 今丄該被指定的義290或控制器i75選擇至少—個此種 所Γ該些受限的動作(或指令)至該所選的候選組, 上所其它的初步的指定’並且前進至步驟760,以如 斤論述地修改該可利純計數且繼續該減 步驟740中沒有找到符合時, 田在 無法運作在目前組態設定(或=選的演算法可能 法返回到步驟775並且產生裝置1〇❹上’該方 方法可以結束,返回步.驟780 =或㈣訊息’並且該 因為具有該些限制之所選 118 200900916
的私式之符號的電路描述檔目前無法被指定。如上所述, 在該事侏φ,士 A Ύ 有沣多可能的動作途徑。舉例而言,被指定 的SME 290或控制器175可以刪除較低優先順序的程式或 動作、或是可利用該程式的可能較容易被指定的另一版 本0 于時的娃合 " ------ 當在步驟765中所有的動作(或指令)都已經被指定時, "亥二動作(或指令)可被連接或指定路由,以建立在該裝置 1 00的動作期間將會被利用的所有資料通訊路徑以執行 。亥所遥的程式或演算法。如上所指出地,每個動作(或指令) 係具有和用於一個所選的複合電路元件260之所選的背景 的組態設定一起用符號儲存的輸入或輸出資訊。更明確地 s兒’該輸入或輸出資訊係有效地被儲存為指標,其中一個 工作ID及動作ID係指向另一工作id及動作ID以作為其 >料來源(用於輸入資料)或是資料目的地(以提供輸出資 f 料)。此種資訊係用符號或是通稱地被儲存,因為在該動作 ^ / (或指令)指定之前,用於該資料來源或資料目的地之實際 的位址是未知的。假設資料來源資訊被一致地利用、或是 資料目的地資訊被一致地利用時’只需要一組此種資訊, 儘管兩者都可被利用以潛在地增加彈性。根據該示範性之 實施例,對於每個背景’此種資料來源或資料目的地資訊 係被利用來連接一個複合電路元件260的資料輸入(用於輸 入佇列320),以及另一複合電路元件260(或是相同的複合 電路元件260,以用於一個回授的組態設定)的一個背景的 119 200900916 貝料輸出375(經由輸出佇列315)。此係產生直接的資料連 線(在一個叢集200之内的電路交換)或是封包指定路由的 (在叢集之間的混合式封包指定路由以及電路交換的)資料 2線用於資料流,並且在任一種情形中,資料係在不需要 資料儲存在暫存器中以及資料從暫存器提取之中間或個別 的步驟之下被提供。根據所選的實施例,諸如用於超叢集 85C及電路叢集2〇〇c,該些資料連線係可以全部為電路 交換的,其係經過叢集仵列245A及對應的完全的或分散 的互連275、295。 在v驟765以後,該指定路由的過程係開始(步驟 _) ’即如在圖14C中所繪者。在14C所繪之示範性之 貫施例中,該過程是“由下而上的”,其開始在叢集200的 f級(或者區域2(H及叢集鹰層級),並且隨需要地 刖進到較高的層級(超叢集及矩陣層級)。未個別缚出的是, 該過程亦可以從—錄《 + r , , 種由而上下的,,觀點起始,舉例而言藉 由該被指定的纖29G或控制^75傳送—個請求至該叢 集200的SME 290,以開始步驟_的指定路由的過程。 請參照圖14C的步驟_,對應的叢集200之-或多 個SME 290係開始纺社6 , … °^日疋路由的過程,其係藉由選擇一個 複口屯路το件260的—第—背景的一個動作(或指令),並 且決定被儲存為該所選的缸 斤選的動作(或指令)的部份之來源(或目 的地)工作及動作識別符。在示範性之實施例中,此過程可 精由每個叢集200的每個29〇被執行為—個平行的方 法,此係產生非常高度有效率的結合指定路由的過程。於 120 200900916 其他實例的實施例中,假如 作又令並非母一個叢集200係具有一 個SME 290,該超叢隼 木内之另一個290係可以被 使用。 如上所#曰出地’在所選的實施例中,這些來源(或目的 也)作及動作ID係被儲存在該複合電路元件鳩的元件 介面及控制2 8 0的記情艘)q Λ + 、 ύ u體33〇中。在替代的實施例中,該 來源(或目的地)工作及動作钟 _ 動作識別符可被儲存在其它記憶體 f '元件中舉例而5 ’ —個記憶體類型的複合電路元件260M、 第…己隐體兀件255、或是其它可内含在一個叢集2⑻内 之。己隐體元件。為了助於指定路由,該記憶體33〇(或豆它 記憶體元件)可被實施為一個如上所述之内容可定址⑽己憶 體(“CAM”)、或是實施為任何其它類型的記憶體。因此, 在步驟805中,為了在階層的第一層級指定路由,一個sme 29〇可以依照該第一背景(將被指定路由的複合電路元件 260之背景)的這些來源(或目的地)工作及動作識別符來檢 (; 查在其叢集200内之所有的記憶體(33〇、255、26〇M、等等), 以找出符合這些來源(或目的地)工作及動作識別符的另一 第一者景之對應的動作(或指令)。當其它形式的記憶體(舉 例而言,SDRAM)係被利用來取代CAM時,則該SME 29〇 可以執行記憶體(330、255、260M'或是其它儲存該工作1〇 及動作ID的記憶體)的搜尋(舉例而言是二分搜尋),以找 出符合這些來源(或目的地)工作及動作識別符之另一第一 背景之對應的動作(或指令)。 當在步驟810中’一個複合電路元件260的一第二背 121 200900916 景之符合的動作「赤 經在-個記,令)(具有對應的工作及動作識別符)已 麗290於是矣首〇、255、26〇M、等等)之内找到時,該 符合的或對應的該:選的第-背景至此具有 川中,當來界工Γ 背景。因此,在步驟 作及動作識別符被儲存時,該SME 290 係‘疋路由給該第—旦 此旦 彦豕(作為一個資料目的地)的輸入至 ::7、作為—個資料來源)之對應的輸出,並且當目 的地工作及動作辦 给辞楚一北旦D符被儲存時,該SME 290係指定路由 —次“(作為—個資料來源)的輸出至該第二背景(作 為一個資料目的地) ,耵應的輸入。在该叢集200或區域201 一 係經由全互連元件275或分散式全互連 兀件295來建立這些内部的叢集連線。在步驟之後, 當在步驟820中有額外的動作(或指令)將被指定路由時, 忒方法係反覆地繼續,其係返回至步驟其中—個議 〇或,、匕控制益係選擇下一個將被指定路由的動作(或指 令)。 當在步驟810中,一個複合電路元件260的一第二背 景之符合的動作(或指令)(具有對應的工作及動作識別符)未 在其叢集200的記憶體(33〇、⑸、26〇m、等等)之内找到 日守’該SME 290於是知道該對應#資料來源 < 目的地並未 在其叢集200(被稱為第一叢集2〇〇)之内。因此,在步驟 中,該SME 290 : (1)指定路由給該所選的第一背景至該第 一叢集200的週邊(至第一通訊元件25〇中的一個,以用於 經由互連155,透過全互連元件275、分散式全互連元件 122 200900916 291 2 3 4、或是訊息 該第-通訊元件250).65的資料發送、或否則是直接至 詢)至該超叢集層級的;^=產了生一個指定路由請求(查 的任務之鮮〜 (其可以是—個具有此被指定 185^ ^的SME29G或控制器175),以在其超叢集 作:令:第集T:找出一 ^ 角度來看從該第一叢集200的隱290的 =二動:背景的指定路由係完成的,並且其可以 Γ
KJ 至步驟820,…若有的話)的指定路由’返回 制器㈣===❹(™㈣或控 节第::830巾在已經接收到-個指定路由請求(指派 = ’該超叢集_器係傳送一項請求或查詢 290 Γ Μ内之所有的(其它)叢集,給那些纖 來判斷該對應的動作(或指令)是否位在其記憶體(33〇、 、等請Γ個中,用於在階層的第二層級下指 疋。當其中一個這些其它叢集200(作為一個第二叢集 123 1 ⑻)具有該符合的或對應的動作(或指令)(亦即,具有該第 一背景的來源(或目的地)工作及動作識別符)作為立中一個 複合電路元件㈣的_第二背景時(步驟叫,㈣二叢 2 集_於是知道此第二背景是用於是當被指定路由往返另 一第—叢集_的資料之來源或目的地。因此,在步驟84〇 3 中’該第二叢集200的第二SME 29〇係將此第二背景指定 路由至該第二叢集200的週邊(至第一通訊元件25〇二的曰2 4 個,以用於經由互連154,透過全互連元件奶、分散式 200900916 王^連τΜ牛295、或是訊息管理器265的資料發送、或否 至該第—通訊元件25〇)’並且傳送-個對應的訊 心μ α叢集控制器(被指定的SME 290或控制器175), ::指出或提供資訊為其擁有該具有該符合的或是對應的 (或指令)之I背景。於是,對於該些對應的背景, 該超叢集控制器係在該第_叢集以及第二叢集⑽之 間產生-對應的連結(步驟⑷),舉例而言是藉由儲存對
應的私疋路由資訊在—個第二通訊元件21〇中,並且該叢
Mt# Μ以由是完成的。從該第二叢集2〇〇的纖 的觀點來看,其指定路由也是完成的,並且其可以繼 々它的其它背景(動作(或指令))(若有的話)的指定路由其 亦返回至步驟820。 '、 雖然未分別描繪,於另一個變異形式之中,諸如對於 超叢集185C而言,於該超叢集185C内之一或多個sME_ 係可以實施一個叢集200C内或於整個超叢集i85c内之所 有如此之指定路由,其係全部透過各種的叢集佇列245a。 參照圖18,一個SME 290係可以提供:〇)於一個所選的 區域201B内之對應指定路由,諸如直接自CE4至ca而 來,舉例而言,其係透過完全的或分散的互連275、; (2)於一個所選的電路叢集2〇〇c内之對應指定路由,諸如 直接自CE4至CE】5而來,舉例而言,其係透過完全的或分 散的互連275、295及叢集佇列245A】5,·(3)至一個所選的 相鄰電路叢集200C之對應指定路由,諸如透過完全的或 分散的互連275、295、任何中介的(區域至區域)叢集佇 124 200900916 ^ 245A及接著經由—個周圍的叢集件列245A,諸如叢集 佇列245Al°,而直接自CE4至該超叢集185C内之另一個 叢集2〇〇C的另一個複合電路元件260:(4)至該超叢集185C 内之一個所選的非相鄰電路叢集霞之對應指定路由, 诸如透過完全的或分散的互連275、295、任何中介的(區 域至區域)叢集仲列245A及典型地複數個周圍的叢集^宁 而直接自CE4至另一個叢集200C之另一個複合 電路元件260 ;及(5)透過一個訊息管理器265至不在㈣ 叢集185C内之—個電路叢集2G0C之對應指定路由。 舉例而言,當透過任一個叢集佇列245A而指定路由 :何所‘的叢集仔歹245A (具有一個對應的選定背景) 係為一個用於產生複合電路元件260的所選資料背景之資 广、的地且接著係為一個用於消耗複合電路元件26〇的 所選資料背景或者叢集佇列245Α的另一個所選背景(諸 如透過複數個叢集仔列245Α之資料指定路由,諸如用於 f木2〇〇C間之資料指定路由,舉例而言,其係使用來源 為基礎的或目的地為基礎的通訊’如於本文所敘述)的 料來源。 ' 此2步驟835中,當在該所選的第一超叢集185内之這 二”匕叢集200在其之一個複合電路元件26〇的一第二背 11都不具有該符合的或是對應的動作(或指令)(以及第一 月景的來源(或目的地)工作及動作識別符)時,該超叢集控 制器於是知道該對應的資料來源或目的地並未在其超叢集 185(破稱為第一超叢集185)之内。因此,在步驟860中(在 125 200900916 圖==),該第—超叢集控制器 弟一方景至該第一超叢集185的 田、口该 二通訊元件21〇或至訊息管理器26/、二至其中-個第 -項指定路由的請求至該矩陣 :)並:及⑺產生 個具有此指定的任務之被以= 以在其…50的另一超叢华185: 90或控制器175), 且古人最木185中找出一第二背景可能
乍戍才曰令),以用於在階層的第 一層級下私疋路由。從該第—
ΟΟΛ ,, . 超叢集185之被指定的SME 290或控制器175的觀點步4 "μ, 的觀點來看’其指定路由是完成的,並 儿孩万法係返回到步驟5^ 2〇 ’以隨可能需要地繼續用於其 它動作之指定路由的過葙, 亚且亦前進至步驟865。 在已經收到一箱并中, 、私疋路由的請求(指派該第二背景), 在步驟865中,贫拓陆知+丨 °矩陣控制器係傳送一項請求或查詢至所 有在其矩陣150内之(其亡 、丹匕)叢集200,以供那些SME 290 來判斷該對應的動作(七人、 乍(成&令)是否位在其中一個記憶體 (330、255、260M、耸装 M 寻导)中’以用於在階層的此第三層級 下指疋路由。此指定'政士 Λ主> 疋路由凊求可被直接傳送至叢集200的 S Μ E 2 9 0、或是可疏上 a由超叢集控制器而被傳送。當這些其 它叢集200中之—於去 作馬—個第二叢集200而具有該符合的 或對應的動作(或指令)(亦即,具有該第—背景的來源(或目 的地)工作及動作識別符)作為其一個複合電路元件26〇的 第一者不時(步驟870),此第二叢集200於是知道此第 一月厅、疋用於將被指定路由往返另一第一叢集200的資料 的來源或目的地。mtL . _ _ 因此’在步驟875中,該第二叢集200 126 200900916 '第一 SME 290係指定路由此第二背景至該第二叢集200 的週邊(至其中—個第-通訊元件250,用於經由互連155, f過全互連元# 275、分散式全互連元件295、訊息管理 器265的資料發送、或是直接至該第-通訊元件250),並 且傳达-個對應的訊息至該矩陣控制器⑽指定的s·, 或匕制态1 75),其係指出或提供資訊為其擁有該具有該符 合的或對應的動作(或指令)之第二背景。於是,該矩陣控 制器係在該第-叢集_以及第二叢# 之間產生一個 對應的連結,以用;^ @ θ u + 用於β亥對應的背景(步驟88〇),舉例而言 藉由儲存對應的指定路由資訊在—個第三通訊元件19〇 ^ :一個第二通訊元# 210中’並且該超叢集至超叢集的指 疋路由疋70成的。攸第二叢集2〇〇的SME 29〇的觀點來看, /、扣疋路由也疋完成的,因而其可以繼續它的其它背景(動 作(或扣令))(右有的話)的指定路由’⑥同樣返回至步驟 820 ° 在步驟870中,當在該所選的第-矩陣150内之這些 其它叢集200在其之—個複合電路元件26〇的一第二背景 中都不具有該符合的或是對應的動作(或指令)(以及第一; 景的來源(或目的地)工作及動作識別符)時,該矩陣控制器 於是知道該對應的資料來源或目的地並未在第一矩陣MO 之内。因此’在步驟885巾,該第一矩陣15〇 :⑴指定路 由給該第-背景至該第一矩$ 15〇的週邊(亦即,至其中一 個第三通訊元件i,以及⑺產生_個指定路由的請求至 其它矩陣層級的控制器(亦可以是一個具有此指定的任務之 127 200900916 被指定的SME 290或控制器175),以在該元件ι00的另一 矩陣1 50中找出一可能具有該符合的或對應的動作(或指令) 之第二背景,以用於在階層的第四層級下指定路由。從該 第一矩陣150的被指定的SME 290或控制器175的觀點來 看’其指定路由是完成的,並且該方法係返回至步驟82〇, 以隨可能需要地對於其它動作繼續該指定路由的過程,並 且該方法在該裝置的層級下隨需要地重複步驟865_ 880 〇
當所有的動作(或指令)都已經在先前被指定時,該符 合的或對應的動作(或指令)是在其中一個矩陣15〇的二個 超叢集185的一個叢集2〇〇中的一個複合電路元件26〇之 p第二背景中,並且該方法係隨需要地向上搜尋至矩陣或 二層級八中那些對應的矩陣或裝置層級的控制器(被指 定的SME 290或控制器175)係利用互連155來指定路由至 其對應的週邊(舉例而言’第三通訊元件190以及任何甲介 的弟二通訊元件210 Ί,计日捕、笔* )並且傳送查詢至其對應的較低層級 的超叢集185與叢集2〇〇。 鄆™或知令)都變成被指疋峪由的,此 糸分別連接所有的資料來源^ η 制 貝针來源或資枓目的地以及其對應的資 ;;目的地或資料來源,其係在相同^ t # 々 社祁门的叢集200之内(步驟815) 或是在相同的超叢隼185内 金 果5内之叢集200之間(步驟825、840 及845)、或是在相同的矩陣 早50之内(步驟875及880)、 或只是在該裝置100之内。洛 .^ w所有的動作(或指令)都已經 在v驟820中被指定路由時 必筏指定的SME 290或控制 128 200900916 器175係對於該特定 驟850)。杏有#丨& 、 °又疋或致能該執行狀態(步 *之額外二 步驟_,並rtr:;二方法係持續,其係返回至 作時,該方法可 "匕八有將被指定路由的動作之工 的是,當=Ι::Γ其係返回步驟78〇。亦應該注意 工作設定或致卩^被指定路由時,對於該特定的 後被執行執行狀態的步驟_亦可在步驟-之 , 下所,述該執行狀態是一個利用在用於一背旦的 二也設定字t之欄位(儲存在記憶冑咖中),尤:的 牛控…25利用來判斷該電路元件 :疋 ::^叫執行對應的動作)。在此 以工作已經完全被組態設定,盆 ’、’、 都被指定且指定路由,使得有的動作(或指令) 以備妥以執行,即如下所:::二:件亦符合時,其可 末開始或停止所選的工作,或是清 = 例而言,將-個新的工作載入在其位置中。“的工作,舉 於熟習電子技術者而言,將會明顯的是圖u 兴例而一 &變化可等同地被實施且在本發明的範疇内。 :例而:在在該動作(或指令)並未本地儲存在記憶體33〇 二憶體複合的“26。中、或是在第二記憶體 事件由而是在中心地被儲存在-個別的記憶體中的 ”,一種由上往下的方法可被利用。繼續該實例來說, 牛列而吕是矩陣層級的控制器之最高層級的控制器(被指定 129 200900916 的SME 290或控制器175)可以開始該指定路由的過程、檢 查該儲存及連結的動作(或指令),決定在該各種的叢集之 内以及之間的指定路由,i且傳送各種的組態設定(作為背 景)至受影響的複合電路元件260。作為另一變化的是,舉 例而言是矩陣層級的控制器之最高層級的控制器(被指定的 SME 290或控制器175)可以只是傳送該對應的動作(或指令) 至該叢集 2 0 0 ’ jSl 接-ψ pa jt » ρ-, ”接者開始如同以上參考圖與所 述之指定路由的過程。 再者儘g或多個控制器1 7 5可被利用以實施該指 定以及指定路由的過程’但同樣明顯的是,一個被指定的 SME 290的使用是一個較強健且彈性的解決方案。在這些 凊況中(對應的複數個叢集200之)複數個SME 29〇的任 個都可以執行超叢集185的控制器、矩陣150的控制器、 或疋衣置100的控制器之各種的角色。在對於一個特定的 SME 290損害或損壞的事件中,無數的其它隱29〇都是 可利用來承擔這些角色的任一個角色。 』著也對於此指疋以及指定路由的過程牽涉到的時 間是線性相關於動作(或指令)的數目“k,,,並且相當快速地 進订’因為其係以大量平行的過程被同時執行在每個叢集 之内。舉例而言,依據牵涉到的“ n,,個叢集、超叢集以 及矩陣層級數目,對於將被傳送的訊息以及將被完成的指 定路由至每個層級之對應的週邊而言,每個背景(或指令) 之最壞情泥的時間量典型是3n+1或是4η+ι個時脈或計算 週期。此係明顯對比於習知技術的指定路由方法,其中該 130 200900916 =由時間最少是k2的一個函數,並且若被最佳化,其 係非決定性的,因而具有-不可_的指定路由時間。 本發明的此指定及結合過程的另一優點是指定及指定 2由給工作及動作(或指令)至複數個異質的叢集_之能 J具體而言,叢集200並不需要是相同的,因而可以 疋相^同的,其中不同類型的複合電路元件細的混合, 而不衝擊到程式化該所產生的元件之能力。舉例而古,任 =有許多乘法器類型的複合電路元件26〇之叢集2〇〇都 =1更大的可利用性於乘法運算的指定,使得那些類 2〇 (或·")將會自動地被吸引至那些類型的叢集 二。此外,對於同質或異質的叢集2〇〇而言,指定及結 s時間將會是相同的。 如上參考圖i所論述,在-個叢集2〇〇之内的一或多 m,舉例而言’一個複合電路元件260或_携損 、2政的事件中’該叢集纖或個別的 v 標示為無法利用的。在這些情況下,被指定至二 被電:…60之任何工作及/或動作(或指令)都應該 種個其它複合電路元# ,並且此可用廣泛 種類的方式被執行。 、 新指二是,::據本發明的教示之一個第-示範性之重 冉-人結合過程之流程圖。在此第一解決 =始以…。。,舉例而言,由於在自我測試期二 :-或多個SME 290(若未受該損壞或失效影響的 ° 、疋來自在相同的叢集200之内、或是來自另—叢集 131 200900916 200)係標示或指定該受影響 用的(步驟905),並且導引兮/路凡件260為無法利 的元綱導引該文影響的複合電路元件㈣ …= 以停止執行所有的背景(步驟_),立 典型疋利用該執行狀態位元。該SME 29〇亦腺心 自? i卓社沾次』丨+ 亦將傳送一個訊 心至連為料來源之複合電路元件26〇, 電路兀件260以停止產生資料並且停止值 一 —° 影塑的複人雷踗_ & 1 、 傳輸該貧料至該受 複°電路_26()(步㈣5) 1咖2 斷(若有的話)其它複合電路元# 260是否可利用 受影響的功能(亦即,曾經藉由 :取代該 所執行的功能),並且複製儲存在該受影 曰的複"路π件260的記憶體330 類型的具有可利用的景/、有相同 之可利用的複合電路元件260之 體33。(步驟92〇)。在一個示範性之 二IT及維持一個轉換表,該轉換表係指 出丨U路讀26G具有可利用性 功能傳輸的所需類型的雷敗— > 八有用於此種 狀 件270。該SME 290亦可以 : 連的輸入仵列320的内容至可利用的複合電路元 件260的輸入件列3步驟 的即砗眘袓_ 及者疋,對於某些類型 二=’該輸入資料可被拋棄、或等同的是 ==連的輸入謝,其中動作係利用新產生的資 4重新域續在可利用的複合電路元件260。 忒SME 290接著重新指定路由給往返於 : = :Γ的連線(步驟,舉例而言藉由= 。两的來源(或目的地)工作及動作識別符的搜尋,並 132 200900916 且此外,若;^ β。 來源及目的地工作及動作識別符 存,則在复女遥A J付貝讯都未破儲 一磁斜认:複口電路兀件260的其它記憶體330中執行 、·^亥文影響的動作(或指令)之搜尋,以決 的地《來源)來完成該指定路由。如上:論二: “疋路由步驟亦可隨需要地被利用(舉例而言二在I 集200之間#令女山 用於在叢 著重置二::= 步驟935中’該8—系接 該受影響二應的執行狀態位元,以重新致能 動作(或心令)糟由可利用的複合電路元件260 的執仃,並且該重新指定及再次結合 返回步驟940。 ’其係 入第二解決方式中’該"作可被重新指定及再次結 :心,如同在圖12至14中所緣),並且假設該受 j的構件是不再可利用的,則沒有動作(或指令)將會被 指疋給它們。此種解決方彳 、式亦〃有保存任何局部性限制的 優點’因為此種限制將會内含在該工作的動作(或指令)之 内此外由於該指定以及結合過程的持續期間是線性相 關於動作(或指令)的數目,此重新指定及再次結合過程係 以最小的中斷快速地進行,特別當受影響的動作(或指令) 的數目是相對較小的時候。作為此過程的部份的是,其中 -個被指定的SME 290亦可以導引受影響的複合電路元件 260的元件控制器325來停止執行所有的背景,傳送一個 訊息至連結的資料來源之複合電路…6〇以導引該來源 複合電路元件260停止连吐咨粗、, ^ 屋生貝料亚且停止傳輸資料至該受 似響的複口电路兀# 260 ’複製該相關連的輸入佇列32〇 133 200900916 的内容至該新指定的可利用的複合電路元件260,並且重 置用於該可利用的複合電路元件26G的轉移的背景之執行 狀態位元。 式指定及i拿钴 作為實把指定及連結程序之一或多個SME 29〇或其他 晶片上處理器或控制器175之替代方式,替代的方法及系 統係可使用於可能需要較少或不需要彈性或容錯之實施例 的程式指定及連結。舉例而言,一旦—個程式(演算法) 已經被轉換成一個符號的電路描述檔,任何型式之系統係 可以貫施該指定及連結程序,諸如用任何電腦系統或網 路、工作站、處理裝置、一或多個微處理器、電子設計自 動工具、電子系統級工具等等。如此之系統亦可以被使用 於實施編譯,如上文所述。此外,當亦實施編譯程序時, 如此之系統係可以開始該指定及連結程序,而不需要產生 中間的符號的電路描述檔’且反而是,當資訊係產生關於 複合電路元件260及資料輸入連結或資料輸出連結時,該 系統(例如1200 )係可以直接進行指定該動作給複合電路 元件260之一個所選的範例型式,且指定資料輸入或資料 輪出連結,如上文所述。此亦可以被有利地使用作為設計 及發展程序之一部分,特別是用於積體電路模擬、模仿及 除錯程序。 、 圖2 0係為一個描繪根據本發明的教示之一個示範性之 替代程式連結系統1 200實施例之方塊圖。如示於圖2〇, 程式連結系統1200係可以被實施或具體化為任何形式之 134 200900916 電月自糸統(例如,一個*槐雨^《 主機電細,一個個人電腦,一個 腦工作站,飼月g哭 斗、 电 艮时,或任何其他具有足以執行 例的方法之處理能力的 〈扼 月匕刀的電腦或裝置),其係包含一個 及輸出介面12〇5, — 5¾夕Act & 怎夕個處理器121 5,及一個記情 1220,其係儲存任何型 ⑽體 式之貝科(諸如一或多個資料庫 檀案系統(個別或隼薇磁& _欠 J $木體%為資料儲存器)1225。該資料廑 1225係可以被整人,亦p〇 _ 貝针厚 ° 亦P ’貧矾係駐留於一個單一、同位 置或I央化的資料庫結構或輪廓之内,或者可以為-個分 散式貝料庫’且貧訊係分散於複數個資料庫之間及之内, 其之一些係可以與其他資料庫 十準還距6又置。如於此所使用之 一個資料儲存器”、“資料座” β (< 外私 貝枓庫、及資料倉庫,,係被 :為可互換的且係可以為相關的、物件導向的、物件相關 的,或者使用檔案或平的檔案,或者上述之任何組合。 一個“處理器1215”係可w/ ,, 係了以為任何型式之控制器或處 理盗,且係可以實施為一或多 4夕個處理态1215(或175),並 係適合於實施於本文所述之 八 / 刀月b 處理斋可以於一個分離 的系統1200内,或者可以整合成為該裝置100、140之晶 ΓΓ部分,等等’且係可以為任何型式之處理器或控制 為’諸如一個商業上可取得的處 卞幻蛟理态或微處理器而實施, 舉例而言ARM或Micr〇_Blaze,戍者 a 4有了以使用一或多個狀 悲機το件290而實施。如同處裡明 ^ U處理益一詞於本文所使用,一 個處理器1215係可以包含使用一 ^ no 、 便用個早一積體電路,或者 可以包含使用複數個積體 吩4具他連接、配置或群組在 一起之構件’諸如控制器、微虚 儆慝理器、數位訊號處理器、 135 200900916 手4亍處理斋、多曹祐、、步 董核。處理盗、客製化積體電路、特殊應 用的 IC(“ASIC,,、、ίθ -Γ &』 ^ )每可私式化閘陣列(“FPGA”)、適應性計 算積體電路、結合的記憶體(諸如RAM、DRAM、ROM) 及其他積體電路及構件。因&,如於本文所述,處理器一 詞係應該被瞭解成均等地意謂及包含-個單-積體電路, 或=客製化積體電路、特殊應用積體電路、處理器、微處 理益控制為、場可程式化閘陣列、適應性計算積體電路
V..〆 置或貫鈿下文所討論之功能之具有結合的記憶體的 某些其他積體電路的群組,結合的記憶體係諸如微處理器 記憶體或額外的 RAM、DRAM、SDRam、sram、、 ROM、快閃、咖⑽或E2pR〇M。_個具有其結合的記憶 體的處理器(諸如處理器1215)係可以適合於或組構成(透 過程式設計’場可程式化閘陣列互連,或硬接線)實施本 發明之方法。舉例而言,該方法係可以程式設計及儲存於 一個具有其相關記憶體(及/或其他記憶體122〇)及其他 均等構件的處理器1215之中,作為—組程式指令或其他 碼(或均等組態或其他程式),以用於當該處理器係操作 (亦即,開機及作用)時後續的執行。同樣地,當該處理 器1215係可以整體或部分實施為場可程式化閘陣列、客 製化積體電路及/或特殊應用的積體電路,場可程式化閘 陣列、客製化積體電路及/或特殊應用的積體電路係亦可 以被设計、組構及/或硬接線,以實施發明之方法。舉例 而言,該處理器1215係可以實施為處理器、控制器、微 處理器、數位訊號處理器及/或特殊應用的積體電路的— 136 200900916 個配置’處理器、控制器、微處理器、數位訊號處理器及 (‘或特殊應用的積體電路係集體稱為一 “控制器,,或 處理器” ’其係個別被程式設計、設計、調適或組構, 以結合一個記憶體1220而實施本發明之方法。 。己憶體1220係可以包含—個資料儲存體(或資料庫) 1225,其係可以使用任何數量的形式而實施,包含於任何 Τ腦或其他機器可讀取資料儲存媒體之内、記憶體裝置或 二他儲存器或用於儲存或通訊資訊的通訊裝置、目前已知 或將來變成可取得的裝詈, 卡 置匕3但不限於一個記憶體積體 为或—個積體電路之記憶體部分(諸如-個處理器1215 内的剩餘記憶體)、是否Α禮 疋舍為揮發性的或非揮發性的、是否 為可移除式的或非可移除十沾 非了移除式的、包含不作為限制之RAM、 决閃、DRAM、SDRAM、SRAM、1UP A u ΡΡρηλ,, . MRAM、FeRAM、ROM、 EPROM或e2PR〇M,或者任 ,t 彳7具他形式的記憶體裝置,諸 —個磁硬碟機、光碟機、 他媸哭蜂獨4磁▼機、硬碟機、其 他機裔可續取儲存器或記 CDR·… 匕®體媒體’諸如軟碟機、-個 、CD-RW、數位影立止池, 呓情舻〜9先碟(DVD)、或其他光學 、體、或者任何其他㈣的記 儲存裝置戋雷踗,苴总* 爾仔螺體、或貧料 衣置次電路,其係為眾所周知或變成 根據所選的實施例而定。此外……、 含具體化電腦可讀取指令的任= …取媒體係包 構、程式模組或於一個 ^之通讯媒體、資料結 料噹1°〜或調變訊號内的豆他資 科、诸如電磁或光學載泳 Π旳异犯貝 推 皮或其他傳輪機制,包合杠 傳送媒體,其係可以編码資料 匕“壬何貝成 個^唬内的其他資訊, 137 200900916 接線的或無線的,包含電磁、 訊號’等等。記憶體—可以適;;;頻:紅外線 軟體之)各種杳找类.^ 、儲存(本發明的 各種查找表、參數、係數、其他資訊 式或才",及其他型式的表,諸如資料庫表。、 以如上文所指出,處理器1215係使用本發明的軟體及資 =構而被程式設計’以實施本發明的編譯方法。因此,、 本發明的系統及方法係可以具體化 或其他指令的軟於,复仙4t入~ 如此的程式设计 讀取媒體内的a ’、曰“糸諸如具體化於-個電腦可 指…或元資料。此外,元資料係亦 構。如此之二個查找表或一個資料庫的各種資料結 為實识Γ 為來源或目的碼的形式,其係僅作 =:::限制。來源碼係進-步可以被編譯成指〃 二的碼:某種形式的指令(包含組合語言指令或組態資 :二本發明的軟體、來源碼或元資料係可以具
V 艾㈣式(舉例而言’SQL99或SQL的專用版本), 白_,,或實施於本文所討論的功能之任何其他型式 勺j式°° 5,包含各種硬體定義或硬體模型化語言(舉例 +。 Venlog,VHDL,RTL)及造成的資料檔案(舉例而 GDSII )。因此,如於本文所同意義使用的“結構,、 弋構成、軟體構成”、或“軟體”係意謂及指具 夠任何語^或符號的任何型式之程式語言,其係提供或能 '解釋成提供所指定的相關功能或方法(當舉例說明或載 入—個處理器或電腦及執行時,舉例而言,包含該處理器 138 200900916 1215)〇 r \ 一本發明之軟體、元資料或其他來源碼及任何造成的位 凡檔案(目的碼,資料庫或查找表)係可以具體化於任何 有形的儲存媒體之内,諸如任何電腦或其他機器可讀取資 料儲存媒冑’而作為電腦可讀取指令、資料結構、程式模 、、且或其他資料’諸如上文參照記憶體1220所敘述,舉例 =:一個軟碟’—個⑶-ROM —個CD-RW,-個數位影 音光碟,一個磁硬碟,一個光碟機,或任何其他型式的= 料儲存裝置或媒體,如上文所述。 、輸入/輸出介面12〇5係可以被實施為已知的,或者可 以變成该技術中已知的,且係可以包含阻抗匹配能力、用 於古個低電壓處理器之電麼轉換以與一個較高電慶的控制 匯流排215作介面連接以及各種切換機制(舉 =曰 應於自該處一而來的訊號導通或二I I ""此外,輸人/輸出介面12G5係、亦可以調適成 收及/或傳送系統外部的訊號,諸如舉例而言透過 紅外線或射頻訊號,以接收諸如舉例而言用於編 澤的凓舁法之資訊。古歹於 貝汛。亥輸入/輸出介面1205係可以使用 =選擇的架構而提供至任何型式的匯流排或網路結構或 媒體的連結。心實例且非作為限制,如此 =標準架構〇SA)匯流排、加強型工業標準架構⑽A) 匯〜排、微通道架構(MCA)S流排、周邊構件互連(p⑴ ,流排、SAN匯流排或任何其他通訊或發訊媒體,諸如乙 太網路、⑽N、T1、衛星、無線等等。輸人/輸 139 200900916 係可以實施為已知的,或者可以變成該技術中已知的,以 使用任何可應用的標準(舉例而言,各種pci、刪或乙 太網路標準之-,其係為舉例且不作為限制),而提供處 理器12 1 5及網路1 80之間之資料通訊。 ▲.除了示於圖20中之組態之外’熟習本項技術者將體 認:於本發明之範脅内之無數個該領域中均等的組態、配 置、種類及型式之控制電路係適用於實施本發明性之程式 連結器。 $ i. 因此 個已經對於該裝置1 〇〇而被編譯為一個符號 的電路描述檔之程式或演算法已經被指定及指定路由在該 裝置100之内,此係產生所有的複合電路元件26〇組態設 疋(被儲存為背景)以及資料路徑連線(經由全互連元件 275、分散式全互連元件295、或是互連155)。儘管該裝置 1 〇〇已經被指定以即時地致能此種指定以及指定路由,但 是不需要被即時地執行,而是可事先被執行,所有此種指 疋以及4曰疋路由都是在本發明的範_内。在此背景說明 下’在該裳置100内之執行的動作及控制現在可加以解說。 的動作及拮制 圖丨6是描繪根據本發明的教示之一個示範性之組態設 定及控制字1000之圖。如在圖16中所繪,該示範性之組 恐设定字1000係由複數個資料欄位所構成,並且包括至 少兩個或多個以任何的順序之以下的資料攔位:一個元件 組態没定攔位1010 ; —個工作ID欄位1015 ; —個動作ID 攔位1020 ;—個目的地(及/或來源)位址欄位1025(指定一 140 200900916 個目的地(或來源)複合電路元件260、一個埠以及背景); 一個選配的“分岔(fork),,攔位1〇3(); 一個重要的輸入(“SI”) 欄位1035 ; —個重要的輸出(“s〇,,)欄位ι〇4〇 ; 一個選配的 週期(C Y )欄位1045,一個執行狀態攔位丨〇5 〇 ; 一個選配 的優先順序欄位10 5 5 ;—個選配的狀態備妥欄位丨〇60 ; 一個選配的下一個欄位1065 ; 一個選配的最後一個背景欄 位1070; —個選配的中斷攔位1〇75; 一個選配的單一步 驟的欄位1 080 ;以及一個選配的常數模式欄位丨〇85。一 個對應的組態設定及控制字1〇〇〇將被利用於複合電路元 件260的每個背景。對於熟習電子技術者而言,將會明顯 的是,額外的或是較少的欄位都可被利用,此係依攄所選 的裝置100以及任何納入的系統之應用及目的而定,並且 所有此種變化都是在本發明的範疇内。 複數個組態設定字(每個背景各一個)係被元件控制器 325利用來控制一個可組態設定的元件27〇之組態設定及 執打。每個組態設定字係藉由背景號碼來索引。該一或多 個控制該可組態設定的元件27〇如何被組態設定或是資料 如何被解譯的組態設定位元係被儲存在元件組態設定襴位 1 0 1 0中。頬似地,該指定以及指定路由(結合)動作(或指人 係被儲存為對應的工作ID在攔位1015中以及動作7 ) 攔位1020中。 在 該貧料輸出及/或資料輸入位置,作為結合之目的地(及 /或來源)位址係被儲存在攔位1025中。或者是,該資料、 入及/或資料輸出指標(作為來源/目的地工作ID及動作Id) 141 200900916 可依據為了可能的重新指定路由所實施的方法而被儲存。 舉例而s,t —整個工作被重新指定且重新再次結合時, 新的指定路由資訊將會被產生,而不是利用先前儲存的來 源及目的地資訊。剩餘的控制攔位係被利用以控制是否與 何時一個特定的背景被執行(對於一個將被電路元件執 行之對應的動作)、中斷要如何藉由SME 29〇來服務之、 以及輸出資料如何被提供至一或多個目的地位址。 f 在不範性之實施例中,該元件控制器325係包括組合 Γ 邏輯閘或元件,舉例而言AND、〇R以及反相器閘,其係 根據儲存在該示範性之組態設定及控制字1〇〇〇的各種攔 位(舉例而言,1035、1〇4〇、1〇5〇、1〇6〇)中的位元值來提 供一個結果(一個特定的背景係執行或不執行)。圖17是描 多冒根據本發明的教示之用於在一個示範性之裝置内之背景 備妥的判斷之示範性之組合邏輯電路丨1〇〇之方塊圖。 如上所述,在一個資料流環境中,當具有足夠的輸入 , 資料以及足夠空閒或可利用的目的地用於該所產生的輸出 V 資料時’一個背景(工作)可以執行。由於有多個輸入及對 應的多個輸入佇列320到該可組態設定的元件27〇中,該 重要的輸入(SI)位元(1035)係指定那些輸入中的哪些將被利 用在該所選的背景中。此外,該輸入佇列32〇係適配於提 供一第一信號(被稱為“足夠的輸入,,(“El”)),其係指出有足 夠的資料在該對應的輸入佇列320中。舉例而言,在該元 件控制器3 2 5中,每個SI位元係被反相’並且每個反相的 SI位元以及其對應的EI信號係被OR運算(〇R閘n至 142 200900916 1 〇n)八中所有其對應的〇R結果(四個輸入有四個結果) 接著一起被AND運算(AND閘1115),以提供一“資料輸入 備妥”信號,使得該AND結果(資料輪入備妥)係指出在輪 入處有足夠的資料可供利用,該資料將會被該所選的背景 和用。更明確地說,H料輸人備妥信號係在⑴在該重要 的輸入處有足夠的輸人資料以及⑺任何其它剩餘的輸入都 不是重要的時候被提供。
^類似地,由於來自可組態設定的元件270有多個輸出 ::315及輸出375 ’所以該重要的輸出⑽位元〇_)係 ^疋那些輸出以及對應的仵列中的哪些是將被利用在該所 選的背景中。此外,一第二信號(被稱為一“有空間供更多 使用’’(“RFM”)信號)係被提供以指出該對應的目的地具有足 ,的空間可利用於輸出資料,其係來自該輸出仔列315或 :來自資料目的地之輸入佇歹"2〇、或可能是來自一個追 蹤?出資料消耗的輸出暫存器。同樣是例如,在該元件控 制态325中’該S0位元係被反相,並且每個反相的SO位 1兀以及其對應的RFM信號係被〇R運算(〇R閘1 Μ心至 於Π)叾中所有的其對應的QR,结果(兩個結果用於兩個 ;别出)接著一起被AND運算(AND閘1125),以提供資 ^出傷妥”信號’使得該纖結果(資料輪出備妥)係^ :足夠的記憶體空間可利用於藉由該所選的背景之資料 ^ ’亦即’有可利用在對應的輸出㈣315(或目的地之 二Π,或其它記憶體))中的空間。更明確地說,該 1出備女信號係在⑴在該重要的輸出處有㈣用於輸 143 200900916 =貧料以及(2)任何其它剩餘的輸出都不是重要的時候被提 一每兩個結果(該資料輸入備妥及資料輸出備妥)接著可 =被伽運算(AND閘謂),以對於一個所選的背景 R = 妥”狀態。舉例而言,當該資料輸入 以及貝料輸出都備妥時,該備妥狀態係等於—個 1, 否則即為0。.或去县,上士㈤, ^疋如在圖17中所繪,該資料輸入備妥 及負料輸出備妥《士莫I # ° 和其匕攔位(以下論述的狀態備妥 以及執行狀態)一起被AMn .$管 1 狀〜彳有女 旦 ND運算,以提供一個整體指示為 “月不係備妥用於執行(―個“背景備妥,,信號)。 、儲存在攔位1050中的執行狀態係指出該背景是否已經 被致:用於執仃’並且藉由該SME 29〇而可在該結合過程 中的資料輸入-輸出的指定路由之後被設定、或是在其它時 間被5又疋(或重置)°舉例而言’該工作(其中該所選的背景 是一部分)仍然可以是在對於其它可組態設定的元件270組 狀定及指定路由的過程中’因而在此種指定路由完成之 前不應被致能。在:&它,降、w + 朴丄 ^ 牡’、匕情況中,其中一個SME 290可能已 經停止一項工作,而 处 了月b在其匕時間恢復繼續、或 在刪除工作的過程中。因& 1肊疋 Τ 因此,該兀件控制器325將只有在 ㈣能(如同藉由在欄位i㈣中的執行狀態所指出的 會執行一個背景。 ’ 該SME 290亦可椒诚々仏,知, 』根據各種條件或其它事件來利用— 多個狀態備妥位元(儲存在選配的搁位ι〇 ^ 執行。舉例而言,當一個格制月豕 個條件(舉例而言初始化)已經符合 144 200900916 時’:個所選的背景可能f要接著被執行’因而被指定以 該狀態備妥位元。所有這些位元(執行狀態、狀態備:、資 料輸出備妥信號、資料輸入備妥信號)都可以被AND運算 ::,〇),因而該結果亦可被儲存在該執行狀態欄位 1謂或d件控制器325可存取的另—欄位之内。因此, 該^態備妥位元、資料輸入備妥、資料輸出借妥以及執行 狀恶指不器的結合(conjuncti _ ^y ^1項札不以使得該 、工制器325容許執行該所選的背景。或者是,可以透 過使用4執饤狀態(的攔位1G5G)來加以控制操作,而不需 該狀態備妥位元,此係容許贿29〇能夠只需指定該背景 是否被致能用於執行。 «配的週期攔位购係被利用來^執行對應的動 作所减的時脈週期的數目。此攔位係被利用以避免另一第 二背景在H景的計算仍然是在進行中被執行。 旦、該,配的單—步驟的欄位1_係被利用以提供-個背 、疋執行人,舉例而言,用於將藉由該SME 290執 2的結果。各種的測試背景經常是執行在單一步驟的模式 /、中4 SME 290设定或清除一個單—步驟的位元(舉 =言,用於一項將在所選的時間執行,但並非總是可利 用來執行的測試)。 在-個所選的實施例中,該選配的背景欄位卿可被 1用作為複數個背景之可能的執行之間的仲裁之部分。當 =景已經執行時’最後—次的背景位元係被設定(並且 〆、匕月景的最後一次的择旦 煮厅、位70係被重置至零)。在競爭備 145 200900916 =執行的背景的事件中’該最後一次的背景位元係被 士判斷是否其中-個背景剛被執行,並且若有的話, 此係谷4其它的背景來執行以避免在該可組態設定的元 件>270中一個背景完全地主導執行。此外,在競爭並非剛 執仃的背景之事件中,一或多個選配的優先順序位元(儲存 在搁位1055中)可被利用來仲裁及容許較高優先順序的背 景先執行。 在一個示範性之實施例中,該選配的下一個指示器(儲 存在欄位1065中)亦被稱為一個“連鎖㈣如),,指示器,其 係被利用來決定下—個執行的,並且特別是有用於控 制背景被執行所用的序列,料,將—序列的動作連鎖: 一起。在此實施例中’當在以上所述的其它條件已經符合 %,該το件控制器325可以開始“連鎖開頭的,,背景(該連鎖 的第一背景,亦如同被指定在攔位1〇65之内者)的執行。 之後,同樣是當其它條件(舉例而言,耵、RFM、等等)已 經符合時’該元件控制器、325將會執行在該序歹,】中的下— 個背景’ b同在該攔& 1G65中被指定的,否則將會等待 下二個背景變成是可利用的為止。若下一個背景是相同於 目前的背景,則該序列的執行已經完成。此攔& —亦 可包含一項指示是關於該資料輸入是否將會被消耗。 在另一示範性之實施例中,當以目的地為基礎的(而不 是對於以來源為基礎的)資料發送被利用,當相同的輪出將 要提供(或被複製)到多個目的地時,該選配的“分岔,,搁位 1030係被利用於輸出複製。額外的背景係被利用以儲存= 146 200900916
些額外的目的地。在此實施例中’當上述其它條件都已植 符合時,該元件控制n 325可以開始“分盆開頭的”背 分岔的第-背景,亦如同在攔位咖之内被指定旬的執 行。之後,當該分岔攔位1030的一或多個位元指出另— :景時’目前的輸出將會被提供(順序地複製)作為用於該 ,景的輸出,此係避免需要根據相同的資料重新執行一個 背景以提供相同的輸出而只是到_個不同的位置。其它不 是該“分岔,’序列的部份之背景並未在此順序的輸出複二 間被執行。若下-個背景是相同於目前的背景,則該分= 的執订(輸出複製)已經完成。當在攔位1〇3〇中沒有指出分 岔時,該元件控制器325只是判斷有哪些其它背景^ : 妥用於執行,並且依此來進行。 在―個所選的實施例中,一個選配的“中斷,,攔位1075 =可被提供。此攔位(作為該組態設定字丨的部份)可以 指定:斷的設定、遮蔽及们則,其包含一個背景在何時^ 行。這些中斷係由SME 290所服務。 此外在一個所選的實施例中,一個選配的常數模式攔 位1085可被利用,以指定該輸入資料字的—或多個是一 :吊數。對於此種常數而言,其一般是被維持(直到改變為 )所以該常數並未在資料動作期間被消耗。在此實施例 中,該常數模式欄位1085之所選的位元亦被利用來指出 該下一個資料讀取位置(舉例而言,在兩個字的輪入:列 中的那個資料字),舉例而言,用於在兩個或是多摘堂 數值之間切換或交換。 夕個常 147 200900916 人因此,如上所論述,該元件控制器325可利用複數個 組曰邏_而被實施,其係對於每個背景求值該組態設定 及控制子1000的各種攔位(以及其它控制信號 欄位以及其它作获户Ψ ^ β , 田。茨谷種 :、匕m出-個背景係備妥且應該被執行時, 1 1制@ 325係載人該背景的組態設定,並且對庫的 工作或動作(或指令)係被執行。 〜 …而。,本發明係提供一種程式連结器, ί 具有自我復原的功能之彈性及適應性的積體電路,、或3 二::::劃:::::原的功能之彈性及適應性的 的。本發明的Ic竿構彈\的施例的許多優點是相當明顯 間可能出現的Λ缺陷 其係對於在1q使用期 新的特點、服務:演算法==性,並且可適應於 我復原的,以在ICM “事件。此1C架構是自 事件中,,Tr為纟1C的—部份受損或是變成不能利用的 定以取…一部份係有效地“被徵用,,或是被重新指 部份的功能。本發明係容許單-構 當功能被重新指定時Γ習知技術的固定佈線。此外,
性之符號的電路=禮制及資料路徑亦使用本發明 斷地利用其它Ic動:而被產生’因而該轉移的動作不間 損壞的事續執行。此種彈性係提供在該1C 且在健康與安全性而不是災難的失效,並 r生的應用中尤其是重要的。 儘管本發明县灸本_ _ 及描述,這此眘/不軌性之實施例而特定地予以描繪 —、她例係僅為例示性的且非限制本發明。於 148 200900916 本文之敘述中,奸多特定細節係被提供,諸如電子元件、 電子及結構連結、材料及結構上的變化,以提供本發明之 實施例的完整瞭解。然而,熟習本項技術者將認知:本發 明之實施例係能夠在無一或多個特定細節或者在具有其他 裝置、系統、組件、;从 70件、材料、構件等等之下實施。於 其他實例中,眾所周知 _ 之、·、°構、材料或操作係未特定地詳 細顯示或敘述,以避免描# 尤楔糊本發明之貫施例的態樣。此外, 各個圖係不以相同屮私丨給_制 j比例繪製,且不應被認為有限制的。 於:個”兒明書中提及“ 一個實施例”、“ 一實施例,, 3纟定的f %例係' 意謂與該實施例有關所敘述的〆 特別的特色、結構或转 -特生係包含於本發明之至少一個實施 例之中’且係不必猪协% 士 & ^ 貝於所有實施例中,且進一步地,係不 必須指相同的實施例。 ’ 再者’本發明的任何特定實施例的 特別的特色、結構或特+ 、 一、生係可以使用任何適當的方式結合 以及以任何適當的纟日人, 的、、且σ與一或多個其他的實施例結合,包 含使用所選的特$而尤讲丄由 V,, 邑而不對應使用其他特色。此外,許多修 改係可以被貫施,以綱、& 咏 周適一個特別的應用、情況或材料成 付合本發明之基本的結綠n u 的範可及精神。應瞭解的是,在觀看本 文的敎示之下,太令如从、ι、 ^ 所敘述及描繪的本發明之實施例的其 他變化及修改係可能沾 ,,且係被認為本發明的精神及範♦ 的一部分。 , 亦應體5忍的是,告· # 田根據一特別的應用為有用的時,示 於圖式中之一或多個开 调兀件係亦能夠以一個更分離的或整合 的方式實施,或者於笨 芬於某些情況下甚至被移除或使得不操 149 200900916
日冓件的正σ形成的組合係亦於本發明的範疇之内,特 每:;刀離的構件的分離或組合係不清楚的或難識別的 :只%例而5。此外’於本文所使用之“耦接,’一詞係包 :其之各種形式,諸如‘、接,、“可耗接,,係意謂及包 “壬何直接的或間接的電性上、結構上或磁性上的耦接、 連或連接,或者對於如此之直接的或間接的電性上、結 冓,或磁f生上的叙接、連結或連接的調適或能力,包含整 口化的構件及透過或經過另—個構件耗接的構件。 _再者圖式/圖内的任何訊號箭頭應該被認為僅為例 了 )生的且非限制性的’除非特別註明。步驟的構成的組合 係亦將被δ忍為於本發明之範疇之内,特別是在分離或結合 :能力係不清楚的或可預測之下。於本文所使用及下列申 :‘專利範圍的整個申請專利範圍所使用的反意連接詞 立或,係大致上意指“及/或,,,其係具有連接的及反 意連接的意義(且係不受限於一<固“排他的,,意義),除 非有所私不。如於本文之說明中及整個後附申請專利範圍 所使用,“一個” 及“該”係包含複數的意義, 除非前後文清楚地指出。此外,如於本文之說明中及整個 後附申請專利範圍所使用,“在·.·之内,,係包含“在..· 之内”及“在.· ·之上” 除非前後文清楚地指出。 本發明之描繪的實施例之上述說明,係包含於發明内 容及摘要内所敘述的說明,係不意欲為窮舉的或者限制本 發明成為於本文所揭示的精準形式。由上文,應體認到, 介多變化及修改在此可被完成,而不脫離本發明的新穎概 150 200900916 念的精神與範疇。將瞭解到的θ + 幻的疋,並不打算或是應該推論 對於在此所描繪的特定方法 裝置的限制。當然,所要的 是由所附的申請專利範圍涵蓋 ''' *由 益所有的此種修改為落在該申
請專利範圍的範疇之内。 ~ A # d T 【圖式簡單說明】 本發明之目的、特點及優點在參考以下結合構成本說 明書的一部份之所附的圄彳B盘 傅風+ π 的圖式及實例的揭露内容之後將會是 更容易體會的,:i:中相土 ,、中相冋的參考圖號係被用來識別在各個 圖式中相同的構件,且立+ B^ 仵且#中,具有字母字體之元件符號係 使用於識別各種圖内e堡 門巳、之構件貫轭例的額外的類型、 例或變化,其中. 圖1係以高階或是概念上的層級來描繪根據本發明的 教示之一個示範性之裝置實施例的彈性之圖。 圖2係描繪根據本發明的教示之一個示範性之第一 置實施例之方塊圖。 、 圖3係撝續'根據本發明的教示之一個示範性之第二 置實施例之方塊圖。 圖4係描繪根據本發明的教示之一個示範性之資料 包及資料字序列之圖。 、 圖5係描繪根據本發明的教示之一個第一示範性 路叢集之方塊圖。 ' 圖6係描繪根據本發明的教示之一個第二示範性命 路叢集之方塊圖。 $ 151 200900916 圖7係描繪根據本發明的教示之一個第三示範性之電 路叢集之方塊圖。 圖8係更加詳細地描繪根據本發明的教示之一個在一 不範性之電路叢集内之示範性之複合電路元件之方塊圖。 圖9係根據本發明的教示之一個示範性之乘法器可組 態設定的元件之方塊圖。 圖1 0係根據本發明的教示之一個示範性之三ALU的 可組態設定的元件之方塊圖。 f') ^ 圖11係以高階來描繪根據本發明的教示之一個示範性 之編譯方法之流程圖。 圖12係以高階來描繪根據本發明的教示之一個示範性 之作業系統或方法之流程圖。 圖1 3係描纷根據本發明的教示,在一個示範性之裝置 内之用於背景可利用性的判斷之示範性之組合邏輯電路之 方塊圖。 圖14係劃分成圖14A、圖14B、圖14C及圖l4D,其 係描緣根據本發明的教示之一個示範性之演算法或是符號 的電路描述檔之執行時的結合過程之流程圖。 圖15係描繪根據本發明的教示之一個第一示範性之重 新指定及再次結合過程之流程圖。 —圖1 6係描繪根據本發明的教示之一個示範性之組態設 定以及控制字之圖。 ^ 圖Π係描繪根據本發明的教示,在一個示範性之裝置 内之用於责景預備判斷之示範性之組合邏輯電路之^塊 152 200900916 • 圖。 圖1 8係描繪根據本發明的教示之一個第四示範性之電 路叢集之方塊圖。 圖19係描繪根據本發明的教示之一個示範性之第三裝 置實施例之方塊圖。 圖20係描繪根據本發明的教示之一個示範性之替代程 式連結系統實施例之方塊圖。 Γ 【主要元件符號說明】 100第一裝置 102、104、106、108 1C 部份 110、1 12、114、116、118、120 區域 122 ' 124、126、128、132、138、134、136 區域 140第二裝置 1 5 0矩陣 155互連 〆 1 160 第四通道 170、180 I/O 175控制器 185超叢集 190 第三通訊元件 195 第三通道 200、200A、200B、200C 叢集 201 區域 153 200900916 201A、201B、201C 及 201D 區域 2 1 0第二通訊元件 215連線 220 第二通道 245叢集間的佇列 245A叢集佇列 245Ai至245A1S叢集佇列 250第一通訊元件 255第二記憶體元件 260複合電路元件 260M記憶體複合電路元件 265訊息管理器 270電路元件 270A可組態設定的元件 270B可組態設定的元件 270e通訊電路元件 270D可組態設定的元件 270E可組態設定的元件 270F乘法器類型之可組態設定的元件 27(^三ALU類型之可組態設定的元件 270M第一記憶體電路元件 275全互連元件 280元件介面及控制 285組態設定/控制匯流排 154 200900916 290狀態機元件 295分散式全互連元件 300資料發送序列 305第一欄位 310攔位 310。、310!、3102〜310(.,)資料字 3 1 5輸出佇列 320輸入佇列 325元件控制器 330記憶體 3 3 5多工器 350通訊結構或匯流排 365輸入 375輸出 3 80輸出交換元件 3 8 1乘法器 3 82加法器/減法器 383 、 384 、 385 、 386 多工器 387輸出選擇 388累加暫存器 3 89、399 ABS 區塊
390、391、392 ALU 3 93、3 94、3 95 移位器 396狀態多工器 155 200900916 397、398 多工器 600組合邏輯電路 605、6050、605广605(m_”、6100、610^610(^) AND 閘 6 1 5 —位熱碼加法器 620、625、630 加法器 1000組態設定及控制字 1 0 1 0元件組態設定欄位 1015工作ID欄位 1020動作ID欄位 1025目的地(及/或來源)位址攔位 1030分岔欄位 1035 重要的輸入欄位 1040重要的輸出欄位 1045週期欄位 1050執行狀態欄位 1055優先順序攔位 1060狀態備妥欄位 1065 下一個欄位 1070最後一個背景攔位 1075中斷欄位 1080單一步驟的欄位 1085常數模式欄位 1100組合邏輯電路 1110〇〜1110n、1 1200~1120nOR 閘 156 200900916 1125、1 130 AND 閘 1200程式連結系統 1205輸入及輸出介面 1 2 1 5處理器 1220記憶體 1225 資料庫 1227 CEQ至CE14複合電路元件 C0至C15電路叢集 157

Claims (1)

  1. 200900916 十、申請專利範園: 種用於一個積體電路之程式連結方法,該積體電 :、具*數個計算元件及複數個通訊元件之類型,該程 武係已經被編譯以指定一個用 料 十异件的動作及-個資 十轉移連結,該方法係包含: 個,:定—第一動作至-個第-計算元件,其係具有複數 。十异7C件的類型之—個第一類型; 個,Ϊ定:第二動作至—個第二計算元件’其係具有複數 。十异凡件的類型之—個第二類型;及 個、_ ~ Λ第汁异疋件及該第二計算元件之間經過複數 由。§ -牛之個所選的通訊元件之一個第一資料指定路 I二申請專利範圍第1項之方法,其係進一步包含: 决疋積體電路之可使用電路資源。 電路
    次申°月專利範圍帛2項之方法,其中,決定可使用 貧源係進一步包含: 實施δ亥積體電路之一個自我測試。 4·1申請專利範圍第1項之方法,其係進-步包含: =疋疋否該第一動作係具有一個接近限制。 者申π專利範圍第4項之方法,其係進一步包含: 元件第動作係具有一個接近限制時,決定是否計算 個第一陣列係具有計算元件之第—及第二類型。 申明專利範圍第1項之方法,其係一步包含: 於該第—-欠 、μ罘一-貝料指定路由之後,修改電路資源之可用性 158 200900916 之計數。 7. 如申請專利範圍第1項之方法, 丹甲,該第一攻^也L 指定路由係於作為一個資料來源的第一 v 一貝料 °卞算元件及作盔_ 個資料目的地之第二計算元件之間。 ’、、、 8. 如申請專利範圍第1項之方法, 头中,該第一咨粗 指定路由係於作為一個資料目的地之第— ’ 一個資料來源之第二計算元件之間。 為 9. 如申請專利範圍第1項之方法, 丹係進一步包含. 藉由一個對應的工作識別符及一個 ’ 十應的動作識另,丨效 而識別該第一資料指定路由。 、 10·如申請專利範圍第Μ之方法,其係進—步包含. 藉由一個識別該第-動作之資料來源或資料目的:之 對應的指標器,識別該第一資料指定路由。 11.如申請專利範圍帛i項之方法,其中,該第— 係對應於計算元件之第一類型的環境之功能,且其中,該 第二動作係對應於計算元件之第二類型的環境之功能。Μ 12·如申請專利範圍帛1項之方法,其中,該方法係於 個啟動程式執行之後’由該積體電路之至少—個處理器 實施。 11 1。。3_如申請專利範圍第1項之方法,其中,該至少一個 處理器係為—個狀態機元件。 :4:如申請專利範圍,1項之方法,其中,該方法係由 一個計算系、统所實施,且該方法係亦進一步包含: 將°亥些指定及指定路由資訊栽入該積體電路之一個記 159 200900916 憶體之中。 15如申叫專利範圍第1項之方法,其係進-步包含: 二、、'!至]該所選的通訊元件内—個錯誤時,建立該第 一計算元件及該第二巧 .^ . °十异元件之間輕過該複數個通訊元件 的另一個所選的通邙;^ 疋町通及7L件之一個第二資料指定路由。 1 6 ·如申請專利範圖窜1 g J轭圍第1項之方法,其係進一步包含: 於债測到該第—計算元件内一個錯誤時,指定該第一 動作給—個具有第-類型的第三計算元件;及 建立該第一叶算疋件及該第二計算元件之間經過該複 數個通訊元件的另—個所選的通訊元件之一個第二資料指 定路由。 17. 如申請專利範圍第Μ之方法,其係進—步包含: 於谓測到该第二計算元件内一個錯誤時,指定該第二 動作給一個具有第二類型的第三計算元件;及 建立β玄第一计异元件及該第三計算元件之間經過該複 ϋ 數個通訊元件的另—個所選的通訊元件之一個第二資料指 定路由。 18. 如申請專利範圍第1項之方法,其係進一步包含: 當該第一計算元件係位於複數個電路陣列之一個第一 電路陣列内且該第二計算元件係位於複數個電路陣列之一 彻第二電路陣列内時,傳送一個指定路由請求給該複數個 電路陣列。 19.如申請專利範圍第18項之方法,其係進一步包含·· 提供該第一資料指定路由給該第一電路陣列之一個周 200900916 邊通訊元件及給該第二電路陣列之一個周邊雨“ 2〇·如申請專利範圍第丨項之方法,其中成70件。 個符號的電路描述標,其係包含第1類型的譯係為一 個第-工作識別符、一個第一動兀件 付一個第二工作 識別符及一個第二動作識別符,其中,該弟_ 及該第二動作識別符係對應於—個資料輪 Ζ識別付 -個用於該第-動作的t料輸出連結。也。或對應於 21.一種積體電路,其係包含·· η
    複數個計算元件,其係具有複數個類型; 複數個通訊元件,其係耦接至該複數個計算元件;及 一個處理器,其係耦接至該複數個通訊元件,該處理 益係適合於:指定一個第一動作給一個第一計算元件,其 係具有複數計算元件類型之—個第—類型;指^ _個第^ 動作給-個第二計算元件,其係具有複數計算元件類型之 一個第二類型;及建立該第一計算元件及該第二計算元件 之間經過複數個通訊元件之一個所選的通訊元件之—個第 一資料指定路由。 22.如申請專利範圍第21項之積體電路,其中,該處 里器係進步適合於決定複數個計算元件及複數個通訊元 件之可使用性。 23‘如申請專利範圍第22項之積體電路,其中,決定 可使用性係進一步包含: 實施該積體電路之一個自我測試。 24·如申睛專利範圍第21項之積體電路,其中,該處 161 200900916 • 理器係進一步適合於決定是否嗜笛 ^ 限制。 否動作係具有—個接近 25. 如申請專利範圍第21項之積體電路 理器係進一步適合於: 、 °裹處 當該第-動作係具有一個接近限制時,決 凡件之-個苐-陣列係具有計算元件之第一 。 26. 如申請專利範圍第21項之 一’、員型。 理器係進一步適合於: … 其中,該處 於該第一資料指定路由尨 之計數。 疋路由之後,修改電路資源之可用性 。„27·如中請專利範圍第21項之積體電路,其中,好 理益係進一步適合於建立寸 〇处 資料卞s认锋 、建立該弟一資料指定路由於作為—個 枓來源的第—計算元件及作為—個資料目 鼻元件之間。 、罘一汁 28. 如申請專利範圍帛 理器係推一半、吞人 領姐电场井T,該處 j資料h、於建立該第—資料指定路由於作為—個 二的地之第一計算元件及作為一料來 异凡件之間。 中一寸 29. 如申請專利範 理器係、鱼一丰$ 項之積體電路,其中,該處 M V 合於使用—個對應的工作識別符及一個對 應的動作識別符而建立該第一資料指定路由。 理器传如申β\專利範圍第21項之積體電路’其中,該處 或資耝進一步適合於使用—個識別該第-動作之資料來源 —、目的地之對應的指標器’而建立該第-資料指定路 162 200900916 由0 31.如申請專利範圍第21項之積體電路,其中,該第 一動作係對應於計算元件之第一類型的環境之功能,且其 中,該第二動作係對應於計算元件之第二類型的環境之功 能0 3 2 _如申請專利範圍第21項之積體電路,其中,該處 理器係進一步適合於在指定該第一及第二動作及建立該第 一資料指定路由之前,執行一個啟動程式。 33. 如申請專利範圍第21項之積體電路’其中,該處 理器係包含一個狀態機元件。 34. 如申請專利範圍第21項之積體電路,其中,該處 理器係進一步適合於: 於偵測到該所選的通訊元件内一個錯誤時,建立該第 一計算元件及該第二計算元件之間經過該複數個通訊元件 的另一個所選的通訊元件之一個第二資料指定路由。
    35. 如申請專利範圍第21項之積體電路’其中,該處 理器係進一步適合於: 於偵測到該第一計算元件内一個錯誤時,指定該第一 動作、’’5 —個具有第—類型的第三計算元件;及 建立該第ϋ元件及該第二計|元件之間經過該複 婁文個通訊元件的另 — 乃 個所璲的通訊7L件之一個第二資料指 定路由。 36.如申凊專利範圍第21項之積體電路,其中,該 理器係進一步適合於 163 200900916 於軸該第二計算元件内—個 動作給-個具有第二類型的第三計算元件^定該第二 建立該第-計算元件及該第三’及 數個通訊元件的另-個所選的通訊元件之間經過該複 定路由。 個第二資料指 37.如申請專利範 y 圍第21項之積體電路,复击 理器係進一步適合於:杏 _ /、中,該處 路陣列之-個第一電 : * &件係位於複數個電 晃路陣列内且該第二 _ 數個電路陣列之—佃货 _ 叶#疋件係位於複 干^個第二電路陣列内時 由請求給該複數個電路陣列。 、個扣定路 3 8.如申請專利筋圍笛 〇〇 圍第37項之積體電路,其 理斋係進一步適合於提供一次 '、 人 敗陆々一 該第貝枓指定路由給該第一電 路陣列之一個周邊通訊元件 邊通訊元件。 亥第—電路陣列之一個周 …39’種用於程式規劃積體電路之系統,以實施一個演 -法-亥積體電路係具有複數個類型之計算元件及複數個 通訊元件,該系統係包含: 一個記憶體,其係適合於儲存一個程式;及 個處理器’其係耦接至該記憶體,該處理器係適合 於:指定一第一動作至該積體電路之一個第一計算元件, f係具有複數個計算元件的類型之一個第一類麼;指定一 第二動作至該積體電路之一個第二計算元件,其係具有複 數個計算元件的類型之—個第二類型;建立該第一計算元 件及該第二計算元件之間經過複數個通訊元件之一個所選 164 200900916 的通訊元件之一個第-資料指定路由。 …40.如申請專利範圍第%項之系統,其中,該處理器 係ί曰步適合於:當該第一動作係具有一個接近限制時I 决疋疋否D十算凡件之一個第一陣列係具有計算元件第一 及第二類型。 乐 申請專利編39項之系統,其中 係進一步適合於:於該第-資料指定路由之後,: 資源之可用性之計數。 又晃路 f 如申请專利範圍第 係進-步適合於建立該第一資其中,該處理器 件之間。件及作為-個資料目的地之第二計算元 係進4-3=Γ專利範圍第3 9項之系統,其令,該處理哭 係進一步適合於建立砵筮—次处埋益 目的地之第-計算元 f 路由於作為一個資料 件之間。 件及作為-個資料來源之第二計算元 44:申請專利範圍第39項之 係進一步適合於使用—個對應該處理器 動作識別符而建立該第—資料指定路由。別付及—個對應的 45_如申請專利範圍第39項之系祐 係進一步適合於使用—個識別該其中’該處理器 料目的地之對應的指標器,而建立^之貧料來源或資 46·如申請專利範圍第39項二一資料指定路由。 係進-步適合於:於_到該所選的心其:’該處理器 k 41兀件内一個錯誤 165 200900916 守建立该第一計算元件 m ,s ^ ^ ^ 及°亥弟一叶算元件之間經過該複 數個通讯兀件的另一個所 定路由。 斤選的通矾元件之一個第二資料指 47. 如申請專利範圍第 係谁一牛、s入π 唄又糸統,其中,該處理器 時,指定該第-動作彳! 件内一個錯誤 件;及建立該第三計:元:及具二弟—類型的第三計算元 複數個通訊元件的另一 ;;第—計算元件之間經過該 指定路由。 所選的通訊元件之-個第二資料 48. 如申請專利範圍第 係進一步適合 、之糸統,其中,該處理器 時,指定該第二動作& ^ —十^几件内一個錯誤 件;及建立該第-計算一丛、有第二類型的第三計算元 异及*件' 及对' 结一 複數個通訊元件的另— ^三計算元件之間經過該 指定路由。 自所選的通訊㈣之-個第二資料 49. 如申請專利範圍第 係進一步適合於:當該第―士 =之系統,其中,該處理器 列之一個第一電路陣列内且^算元件係位於複數個電路陣 電路陣列之一個第二 〜第一計算元件係位於複數個 —电路陣列内昧 求給該複數個電路陣列。 、專送一個指定路由請 5〇.如申請專利範園第49 係進一步適合於提供該第—土 之系統,其中,該處理器 歹1J之一個周邊通訊元件及給^料指定路由給該第一電路陣 訊元件。 "該第二電路陣列之一個周邊通 166 200900916 如申叫專利範圍第49項之系統,其中,該處理器 及該記憶體係共同位於該積體電路上。 種電胳可續取媒體,其係以一個電腦程式編碼, 該電腦程式传且古4t人 ’、八韦知々’以用於程式規劃積體電路,以實 施一個演算法,兮择辨 、 積體电路係具有複數個類型之計算元件 及複數個通訊元杜,# @ tL几件’该電腦程式指令係包含: 複數個裎#错+ t ^ 式構&之—個第一程式構造,其係適合於指 疋第動作至一個第一計算元件,其係具有複數個計算 P 元件的類型之一個第一類型; 〜:复數個程式構造之—個第二程式構造,其係適合於指 疋第一動作至一個第二計算元件,其係具有複數個計算 元件的類型之一個第二類型;及 上:數個%式構造之一個第三程式構造,其係適合於建 人尊汁算7L件及該第二計算元件之間經過複數個通吨 元件之-個所選的通訊元件之一個第一資料指定路由。° t ' •々申叫專利範圍第52項之電腦可讀取媒體,其係 、,進一步包含: 、“ 十、复數個程式構造之—個第四程式構造,其係適合於決 定複數個計算元件及複數個通訊元件之可使用性。 、 54_如申印專利範圍第52項之電腦可讀取媒體,其 進一步包含: 一複數:程式構造之一個第五程式構造,其係適合於決 疋疋否3亥第-動作係具有一個接近限制,且當該第一動作 係-有自接近限制時,決定是否計算元件之一個第—陣 167 200900916 列係具有計算元件之第-及第二類型。 上々一 士申。月專利範圍第52項之電腦可讀取媒體,其中, δ亥弟二程式構造係進—牛、入认 十 V適S於使用一個對應的工作識別 符及-個對應的動作識別符而建立該第一資料指定路由。 …/6·如申^月專利範圍帛52項之電腦可讀取媒體,其中, 該第三程式構造係進一步適合於使用一個識別該第一動作 之資料來源或資料目的地之對應的指標器,而建立該第一 資料指定路由。 57·如申清專利範圍第52項之電腦可讀取媒體,其係 進一步包含: 複數個程式構造之一個第六程式構造,其係適合於: 於偵測到s亥所選的通訊元件内—個錯誤時,建立該第—計 算元件及戎第二計算元件之間經過該複數個通訊元件的另 一個所選的通訊元件之一個第二資料指定路由。 58·如申請專利範圍第52項之電腦可讀取媒體,其係 進一步包含: / ': J 複數個程式構造之一個第七程式構造,其係適合於: 於偵測到該第一計算元件内一個錯誤時,指定該第一動作 給一個具有第一類塑的第三計算元件;及建立該第三計算 元件及該第二計算元件之間經過該複數個通訊元件的另〜 個所選的通訊元件之一個第二資料指定路由。 59.如申請專利範圍第52項之電腦玎讀取媒體,其係 進一步包含: 複數個程式構造之一個第八程式構造,其係適合於: 168 200900916 於谓測到該第二計算元件内—個錯誤時,指 ^個f有第型的第三計算元件;及建立=二= < m "Ό70件之間經過該複數個通訊元件的# 個所選的通訊元件之一個第二資料指定路由。的另〜 6〇.-種用於-個積體電路之程式規劃方法, ==:類型之t合電路元件及複數個通訊元J 及-個資料轉移連結,該方法係包含: 的動作 決定積體電路上之可使用電路資源; —扣疋第一動作至一個第一複合電路元件,其係星古 禝數個複合電路元件的類型之一個第一類型; ” 、卜指定一第二動作至一個第二複合電路元件,其係呈右 禝數個複合電路元件的類型之一個第二類型;及 ’、 建立該第-複合電路元件及該第二複合電路元件之間 經過複數個通訊元件之一個所選的通訊元 料指定路由。 K個第貧 61. 如申請專利範圍第61項之方法,其係進一步包含: ^貞測到該所選的通訊元件内一個錯誤時’建立該第 -計算元件及該第二計算元件之間經過該複數個通訊元件 的另一個所選的通訊元件之一個第二資料指定路由。 62. 如申請專利範圍第61項之方法,其係進一步包含: 於偵測到該第—計算元件内一個錯誤時,指定該第一 動作給一個具有第一類型的第三計算元件;及 建立忒第二計算元件及該第二計算元件之間經過該複 169 200900916 數個通訊元件的另一個所選的通訊元件之一個第二資料指 定路由。 63·如申請專利範圍第61項之方法,其係進一步包含: 於偵測到該第二計算元件内一個錯誤時,指定該第二 動作給一個具有第二類型的第三計算元件;及 建立該第一計算元件及該第三計算元件之間經過該複 數個通訊元件的另一個所選的通訊元件之一個第二資料指 定路由。 4 . 十一、圖式: 如次頁。 / 170
TW096146976A 2006-06-21 2007-12-10 Program binding system, method and software for a resilient integrated circuit architecture TW200900916A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/471,875 US7429870B2 (en) 2006-06-21 2006-06-21 Resilient integrated circuit architecture
US11/471,832 US7427871B2 (en) 2006-06-21 2006-06-21 Fault tolerant integrated circuit architecture
US11/765,906 US8516427B2 (en) 2006-06-21 2007-06-20 Program binding system, method and software for a resilient integrated circuit architecture

Publications (1)

Publication Number Publication Date
TW200900916A true TW200900916A (en) 2009-01-01

Family

ID=38834089

Family Applications (3)

Application Number Title Priority Date Filing Date
TW096146976A TW200900916A (en) 2006-06-21 2007-12-10 Program binding system, method and software for a resilient integrated circuit architecture
TW096146978A TWI436590B (zh) 2006-06-21 2007-12-10 彈性的積體電路架構
TW096146977A TWI441078B (zh) 2006-06-21 2007-12-10 用於彈性的積體電路架構之元件控制器

Family Applications After (2)

Application Number Title Priority Date Filing Date
TW096146978A TWI436590B (zh) 2006-06-21 2007-12-10 彈性的積體電路架構
TW096146977A TWI441078B (zh) 2006-06-21 2007-12-10 用於彈性的積體電路架構之元件控制器

Country Status (6)

Country Link
US (17) US8516427B2 (zh)
EP (2) EP2033316A4 (zh)
JP (2) JP5420401B2 (zh)
KR (1) KR101444075B1 (zh)
TW (3) TW200900916A (zh)
WO (5) WO2007149495A2 (zh)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8390325B2 (en) * 2006-06-21 2013-03-05 Element Cxi, Llc Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration
US8407429B2 (en) * 2006-06-21 2013-03-26 Element Cxi, Llc Multi-context configurable memory controller
US8395414B2 (en) * 2006-06-21 2013-03-12 Element Cxi, Llc Hierarchically-scalable reconfigurable integrated circuit architecture with unit delay modules
US8456191B2 (en) * 2006-06-21 2013-06-04 Element Cxi, Llc Data-driven integrated circuit architecture
WO2007149495A2 (en) * 2006-06-21 2007-12-27 Element Cxi, Llc Program binding system, method and software for a resilient integrated circuit architecture
US8156480B2 (en) * 2006-09-29 2012-04-10 Intel Corporation Methods and apparatus to form a resilient objective instruction construct
US8510481B2 (en) * 2007-01-03 2013-08-13 Apple Inc. Memory access without internal microprocessor intervention
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US8327114B1 (en) * 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US20100010965A1 (en) * 2008-07-08 2010-01-14 International Business Machines Corporation Query Management Systems
JP2010128572A (ja) * 2008-11-25 2010-06-10 Fuji Xerox Co Ltd データ制御装置、記憶装置及びデータ制御装置の接続方法
US8529346B1 (en) * 2008-12-30 2013-09-10 Lucasfilm Entertainment Company Ltd. Allocating and managing software assets
TWI415000B (zh) * 2009-08-05 2013-11-11 Dfi Inc 一種即時選擇子系統之主機板
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US8766666B2 (en) * 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
TWI437390B (zh) 2011-01-07 2014-05-11 Ind Tech Res Inst 混合模擬系統及方法
US8869087B2 (en) * 2011-05-06 2014-10-21 Xcelemor, Inc. Computing system with data and control planes and method of operation thereof
US9543956B2 (en) * 2011-05-09 2017-01-10 Intel Corporation Systems and methods for configuring an SOPC without a need to use an external memory
US9130596B2 (en) * 2011-06-29 2015-09-08 Seagate Technology Llc Multiuse data channel
US9720668B2 (en) 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9665411B2 (en) * 2012-05-01 2017-05-30 Red Hat, Inc. Communication between a server orchestration system and a messaging system
US8850514B2 (en) 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US8935040B2 (en) * 2012-08-27 2015-01-13 GM Global Technology Operations LLC Method and system for actively locating bus faults
CN103092807B (zh) * 2012-12-24 2015-09-09 杭州华为数字技术有限公司 节点控制器、并行计算服务器系统以及路由方法
CN105027446B (zh) 2013-03-01 2019-06-21 軸子研究株式会社 数据处理装置及其控制方法
US10454999B2 (en) 2013-03-14 2019-10-22 Red Hat, Inc. Coordination of inter-operable infrastructure as a service (IAAS) and platform as a service (PAAS)
JP6225444B2 (ja) * 2013-03-26 2017-11-08 船井電機株式会社 同調回路
US9098352B2 (en) * 2013-07-17 2015-08-04 Deja Vu Security, Llc Metaphor based language fuzzing of computer code
US9461815B2 (en) * 2013-10-18 2016-10-04 Advanced Micro Devices, Inc. Virtualized AES computational engine
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
US9448872B2 (en) * 2014-02-12 2016-09-20 Apple Inc. Hardware state data logger for silicon debug
US8875073B1 (en) * 2014-02-20 2014-10-28 Xilinx, Inc. Generation of internal interfaces for a block-based design
WO2015149329A1 (zh) 2014-04-03 2015-10-08 华为技术有限公司 一种现场可编程门阵列及通信方法
TWI644253B (zh) * 2014-07-18 2018-12-11 軸子研究有限公司 Data processing device and control method thereof
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US9952915B2 (en) * 2014-11-06 2018-04-24 Microsoft Technology Licensing, Llc Event processing development environment
JP6607966B2 (ja) * 2015-06-12 2019-11-20 華為技術有限公司 オンチップ光学相互接続構造およびネットワーク
CN104991507B (zh) * 2015-06-17 2017-08-22 东莞市诚博自动化设备有限公司 一种全自动上盘机
JP6489954B2 (ja) 2015-06-19 2019-03-27 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
US9356642B1 (en) 2015-07-27 2016-05-31 Qrc, Inc. Dba Qrc Technologies Systems and methods for managing reconfigurable integrated circuit applications on a radiofrequency transceiver device
US9898261B1 (en) 2015-09-30 2018-02-20 Open Text Corporation Method and system for configuring processes of software applications using activity fragments
US9477451B1 (en) * 2015-11-06 2016-10-25 International Business Machines Corporation Generating dynamic measurement metadata for efficient compilation and optimization on a target device
US9698794B1 (en) * 2015-12-22 2017-07-04 Altera Corporation Systems and methods for coalescing regions on a virtualized programmable logic device
RU168894U1 (ru) * 2016-07-01 2017-02-27 Акционерное общество "Всероссийский научно-исследовательский институт радиотехники" Устройство обработки цифровых сигналов и информации
JP6713410B2 (ja) * 2016-11-21 2020-06-24 日立オートモティブシステムズ株式会社 電子制御装置
US10996658B1 (en) * 2017-01-05 2021-05-04 6Th Street, Inc. Dynamically reallocating state machines
US10963265B2 (en) 2017-04-21 2021-03-30 Micron Technology, Inc. Apparatus and method to switch configurable logic units
SG11202005567QA (en) 2017-12-13 2020-07-29 Nchain Holdings Ltd System and method for securely sharing cryptographic material
US10481818B2 (en) * 2018-02-28 2019-11-19 Micron Technology, Inc. Meta data processing during startup of storage devices
CN108259976B (zh) * 2018-03-07 2021-02-26 海信视像科技股份有限公司 电视频道的排序方法及电视
US20190042329A1 (en) * 2018-06-29 2019-02-07 Utkarsh Y. Kakaiya System with programmable multi-context accelerator circuitry
JP7201381B2 (ja) * 2018-10-05 2023-01-10 日立Astemo株式会社 電子制御装置、並列処理方法
US10853541B1 (en) * 2019-04-30 2020-12-01 Xilinx, Inc. Data processing engine (DPE) array global mapping
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
US11303306B2 (en) 2020-01-20 2022-04-12 Parsons Corporation Narrowband IQ extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
CN112507652B (zh) * 2020-12-11 2022-12-23 恒为科技(上海)股份有限公司 一种双倍速率同步动态随机存储器的分组方法及装置
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions
CN117250439B (zh) * 2023-11-08 2024-01-30 国网四川省电力公司电力科学研究院 一种面向多源接地故障的三层式研判分析系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4419701A (en) * 1981-09-21 1983-12-06 Quantum Corporation Data transducer position control system for rotating disk data storage equipment
US6480995B1 (en) * 1996-04-15 2002-11-12 Altera Corporation Algorithm and methodology for the polygonalization of sparse circuit schematics
GB2317245A (en) * 1996-09-12 1998-03-18 Sharp Kk Re-timing compiler integrated circuit design
US6091258A (en) 1997-02-05 2000-07-18 Altera Corporation Redundancy circuitry for logic circuits
US6611932B2 (en) * 1997-12-05 2003-08-26 Lightspeed Semiconductor Corporation Method and apparatus for controlling and observing data in a logic block-based ASIC
US6175247B1 (en) * 1998-04-14 2001-01-16 Lockheed Martin Corporation Context switchable field programmable gate array with public-private addressable sharing of intermediate data
US6530036B1 (en) * 1999-08-17 2003-03-04 Tricord Systems, Inc. Self-healing computer system storage
US6426650B1 (en) * 1999-12-28 2002-07-30 Koninklijke Philips Electronics, N.V. Integrated circuit with metal programmable logic having enhanced reliability
US6574763B1 (en) * 1999-12-28 2003-06-03 International Business Machines Corporation Method and apparatus for semiconductor integrated circuit testing and burn-in
JP2001202236A (ja) * 2000-01-20 2001-07-27 Fuji Xerox Co Ltd プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法
US6650694B1 (en) * 2000-02-18 2003-11-18 Texas Instruments Incorporated Correlator co-processor for CDMA RAKE receiver operations
US6904475B1 (en) * 2000-11-06 2005-06-07 Sony Corporation Programmable first-in first-out (FIFO) memory buffer for concurrent data stream handling
US7164669B2 (en) * 2001-01-19 2007-01-16 Adaptix, Inc. Multi-carrier communication with time division multiplexing and carrier-selective loading
US6986021B2 (en) * 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7010778B2 (en) * 2002-06-24 2006-03-07 International Business Machines Corporation Method, apparatus, and program for a state machine framework
US7415594B2 (en) * 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US20040027155A1 (en) * 2002-08-08 2004-02-12 Schlansker Michael S. System and method for self configuration of reconfigurable systems
AU2003265891A1 (en) * 2002-09-04 2004-03-29 Mentor Graphics (Holdings) Ltd. Polymorphic computational system and method in signals intelligence analysis
JP4023281B2 (ja) * 2002-10-11 2007-12-19 株式会社日立製作所 パケット通信装置及びパケットスイッチ
US7121639B2 (en) * 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
EP1676208A2 (en) * 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
JP4004052B2 (ja) 2003-09-24 2007-11-07 株式会社東芝 論理回路装置、プログラマブル論理回路の動作方法
US20060070067A1 (en) * 2004-06-03 2006-03-30 Dell Products L.P. Method of using scavenger grids in a network of virtualized computers
JP2006011705A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd プロセッサおよび半導体装置
JP4547198B2 (ja) 2004-06-30 2010-09-22 富士通株式会社 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
US7427871B2 (en) * 2006-06-21 2008-09-23 Element Cxi, Llc Fault tolerant integrated circuit architecture
WO2007149495A2 (en) * 2006-06-21 2007-12-27 Element Cxi, Llc Program binding system, method and software for a resilient integrated circuit architecture
US7429870B2 (en) * 2006-06-21 2008-09-30 Element Cxi, Llc Resilient integrated circuit architecture

Also Published As

Publication number Publication date
US20140351782A1 (en) 2014-11-27
KR20090051158A (ko) 2009-05-21
US20080036489A1 (en) 2008-02-14
TWI441078B (zh) 2014-06-11
US20120153989A1 (en) 2012-06-21
US20100033207A1 (en) 2010-02-11
US7982489B2 (en) 2011-07-19
TWI436590B (zh) 2014-05-01
US20150135191A1 (en) 2015-05-14
WO2007149472A2 (en) 2007-12-27
JP5420401B2 (ja) 2014-02-19
KR101444075B1 (ko) 2014-09-26
JP2009542098A (ja) 2009-11-26
US8384416B2 (en) 2013-02-26
US8776001B2 (en) 2014-07-08
US20120098565A1 (en) 2012-04-26
WO2007149527A3 (en) 2009-02-05
US20080036488A1 (en) 2008-02-14
EP2033315A4 (en) 2010-08-11
US8850411B2 (en) 2014-09-30
EP2033315B1 (en) 2013-11-27
EP2033316A2 (en) 2009-03-11
WO2007149494A2 (en) 2007-12-27
US20130305205A1 (en) 2013-11-14
US20100308862A1 (en) 2010-12-09
US20080036493A1 (en) 2008-02-14
WO2007149527A2 (en) 2007-12-27
WO2007149532A3 (en) 2008-12-18
US20080040727A1 (en) 2008-02-14
US20130127491A1 (en) 2013-05-23
TW200901032A (en) 2009-01-01
US7616024B2 (en) 2009-11-10
TW200901624A (en) 2009-01-01
US20080040722A1 (en) 2008-02-14
JP5491176B2 (ja) 2014-05-14
US20130229204A1 (en) 2013-09-05
US8618830B2 (en) 2013-12-31
US8446166B2 (en) 2013-05-21
US20110260750A1 (en) 2011-10-27
WO2007149532A2 (en) 2007-12-27
US8516427B2 (en) 2013-08-20
EP2033316A4 (en) 2010-08-11
US7750672B2 (en) 2010-07-06
JP2009541853A (ja) 2009-11-26
WO2007149472A3 (en) 2009-02-26
US8072239B2 (en) 2011-12-06
US7397275B2 (en) 2008-07-08
WO2007149494A3 (en) 2008-12-04
WO2007149495A3 (en) 2008-12-18
US7880497B2 (en) 2011-02-01
EP2033315A2 (en) 2009-03-11
WO2007149495A2 (en) 2007-12-27
US7548084B2 (en) 2009-06-16
US20080297196A1 (en) 2008-12-04
US20100244889A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
TW200900916A (en) Program binding system, method and software for a resilient integrated circuit architecture
TW200818706A (en) Fault tolerant integrated circuit architecture
US11675734B2 (en) Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
US11567766B2 (en) Control registers to store thread identifiers for threaded loop execution in a self-scheduling reconfigurable computing fabric
TW200824278A (en) Resilient integrated circuit architecture
US11531543B2 (en) Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric
US11288074B2 (en) Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue
US10990392B2 (en) Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric
US20240045676A1 (en) Execution or Write Mask Generation for Data Selection in a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric
US11635959B2 (en) Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
US8395414B2 (en) Hierarchically-scalable reconfigurable integrated circuit architecture with unit delay modules
US8456191B2 (en) Data-driven integrated circuit architecture
US8390325B2 (en) Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration
US8407429B2 (en) Multi-context configurable memory controller
US20210263872A1 (en) Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric
CN107430566A (zh) 直接存储器访问描述符处理
US20080282007A1 (en) METHOD AND SYSTEM FOR CONTROLLING TRANSMISSION and EXECUTION OF COMMANDS IN AN INTEGRATED CIRCUIT DEVICE
CN105938466A (zh) 用于处理器间通信的电路和方法
CN105808585A (zh) 一种流式数据的处理方法和装置
Großpietsch et al. Fehlertolerierende Rechensysteme: 2. GI/NTG/GMR-Fachtagung/Fault-Tolerant Computing Systems 2nd GI/NTG/GMR Conference/Bonn, 19.–21. September 1984
Beebe A Bibliography of Publications in Computer Systems Science and Engineering and International Journal of Computer Systems Science and Engineering