專利名稱:具有內部通信網絡的集成電路的制作方法
技術領域:
本發明涉及一種集成電路,包括多個數據處理電路和相互連接所述 數據處理電路的通信網絡。
背景技術:
在Terry Tao Ye、 Luca Benini禾口 Giovanni de Micheli等人d 的Journal of Systems Architecture 50 (2004)的81-104頁的標題為 "Packetization and routing analysis of on-chip multiprocessor networks"的文章中描述了數據處理電路之間的芯片上通信的使用。
這種"芯片上網絡"使得可以選擇通過網絡的多個可能路由的任意 一個,用于在一對處理電路之間傳遞信息。因此,即使一個可能的通信 路由被另一對處理電路之間的通信占據,這對處理電路也能夠通信。此 外,可以通過網絡的相同部分將時隙復用用于實現不同對處理電路之間 的路由。
要求路由控制電路懸在將用于將信息通過網絡的路由。可以使用各 種選擇技術。例如Terry Tao Ye等人(在前引用)提出了一種"提前查 看競爭"的技術,其中網絡中的本地路由電路基于來自鄰居路由器的信 息來決定路由,使得路由避免了非常繁忙的路由器電路。路由器電路意 欲實現最短可能的傳輸時間,如果這將有助于避免非常繁忙的路由器處 的較長緩沖器延遲,繞路發送信息。該技術本身動態地適應于網絡負載, 但是不能確保滿足實時要求。此外,該技術要求相當復雜的本地路由器 電路。
在Evgeny Bolotin、 Israel Cidob、Ran Ginosar禾口 Avinoam Kolodny 等人在2004年的Journal of Systems Architecture 50的105-128頁 中出版的標題為"QnoC": Qos architecture and design process fornetwork on a chip"的文章中也描述了芯片上網絡的設計。該文章描述 了需要確保網絡上的實時傳輸,即確保傳輸永遠不要求超過預定量的時 間。例如,這對于表現視頻和/或音頻數據是必要的。該文獻建議使在集 成電路的設計階段使路由器電路個數和選定路由器之間設置的帶寬適 應,使得可以針對集成電路設計的應用來滿足傳輸要求。使用局部地確 定具有的簡單路由器,選擇從源到目的地的最短路由作為路由器的X、 Y 坐標的函數和網絡中的目的地。
盡管該技術確保了將滿足實時要求,該技術是以電路開銷和適應性 的代價實現的。
發明內容
特別地,本發明的目的是提供一種具有芯片上網絡的集成電路,其 中可在要求最小電路開銷的同時可以傳輸分組的實時流。
特別,本發明的可選目的是提供一種具有芯片上網絡的集成電路, 其中無需妨礙針對現有流的實時保證就可以通過網絡開始和路由分組的 新的實時流。
本發明提供了一種根據權利要求1所述的集成電路。所述集成電路 提供了一種用于各個數據流的可編程路徑,使得將通過用于數據流的芯 片上網絡傳輸的每一個數據項目沿針對所述數據流的已編程路徑進行傳 輸。根據本發明,將調度電路配置用于在原始數據的傳輸已經開始之后, 向多個原始數據流提供用于田間附加數據流的請求。至少如果沒有找到 適合的新路徑,調度電路至少針對原始數據流之一重新路由路徑,以騰 出用于新路徑的連接。優選地,在常量要求仍然保持滿足的限制下選擇 重新路由的路徑,即通過重新路由引起的任意延遲小于通過吞吐量要求 強加的最大延遲。調度電路無需中斷用于其他數據流的數據項目的傳輸 就對重新路由的路徑重新編程,并且對新路徑編程。
典型地,原始數據流在時隙(slot)的周期性重復圖案中占據路徑中 的連接。在這種情況下對于其他數據流不會中斷圖案中時隙的使用。在 這種情況下為了滿足吞吐量要求,優選地,在新的時隙中的第一傳輸和 根據用于原始路由的時隙的第一非傳輸之間、在沿由于重新路由導致的
路徑長度變化加上由于重新時隙化導致的任意時隙偏移的變化不超過通 過吞吐量要求限定的最大轉變延遲值的限制下,選擇其中沿重新路由路
徑發送數據的重新路由路徑的路徑長度和時隙(time slot)。
優選地,將調度電路配置用于對不超過一個的原始電路重新路由。 這簡化了重新路由。同樣優選地,調度電路執行搜索,在所述搜索中訪 問用于數據流的路徑的各個組合,并且確定所訪問的組合是否包含連接 的抵觸使用,直到檢測到沒有抵觸使用的組合為止。這是識別可能路徑 的有效方式。
在各種實施例中,在調度電路能夠選擇的重新具有路徑上強加各種 限制,以便避免重新路由將導致來自流的數據項目的次序顛倒。在一個 實施例中,重新路由的路徑總是具有與原始路徑相同的長度。在另一個 實施例中,重新路由的路徑總是具有等于或大于原始路徑的長度。在其 中重新路由的路徑可能小于原始路徑的其他實施例中,其中將沿重新路 由的路徑傳輸的數據項目的時隙相對于原始路徑變化,以便防止遞送的 順序顛倒,或者針對該目的省略在選定時隙中的傳輸。
本發明還涉及一種用于操作所述集成電路的方法,以及諸如在其上 存儲了程序的計算機可讀盤之類的計算機可編程產品、包括用于對調度 電路編程以根據本發明執行的這種程序或計算機可讀下載信號的電子存 儲器。
使用附圖中所示實施例的示例來描述本發明的這些和其他目的和 優勢。
圖1示出了集成電路上的數據處理系統
圖2示出了路由器電路
圖3示出了網絡接口
圖4、圖4a示出了調度過程的流程圖
圖5a-d示出了連接和時隙的占據
圖6a-c示出了可能的路徑
圖7a-c示出了另外的可能路徑
具體實施例方式
圖1示出了集成電路上的數據處理系統。數據處理系統包括數據處
理電路IO、網絡12、網絡接口 14和調度電路16。網絡12包括路由器 電路120和路由器電路120之間的連接122。作為示例將路由器電路120 示出為網格結構中的相互連接,其中每一個路由器電路120均與網格中 的相鄰路由器電路120 (沒有全部示出)相連。應該理解的是本發明不 局限于該網格結構,或者不局限于所示路由器電路120的個數。可以使 用其他結構和/或具有與其他路由器電路120的其他個數的連接的路由 器電路120。
一些路由器電路120與各個網絡接口 14相連,網絡接口 14依次與 數據處理電路10相連。數據處理電路10可以是任意類型的,例如具有 本地存儲器的計算電路(例如數字信號處理器電路),或者接收地址和數 據以將數據寫入已尋址的位置或者接收地址并且從這些地址讀取和返回 數據的存儲器電路、或者系統等的數據輸入電路或數據輸出電路。網絡 接口 14與調度電路16相連。盡管在網絡接口 14和調度電路16之間示 出了直接的連接,應該理解的是可以使用任意連接,例如通信總線或者 甚至是經由網絡12的連接。
在操作中,數據處理電路10產生數據流,并且向它們相應的網絡 接口 14提供這些數據流。網絡接口 14形成來自數據流的一系列網絡數 據項目,并且將這些數據項目饋送至路由器電路120。路由器電路120 將這些數據項目沿連接122的選定路徑通過網絡12來傳遞,直到它們到 達作為數據流的目的地的數據處理電路10的網絡接口 14為止。
網絡接口 14將路由信息插入到每一個數據項目中,用于控制路由 器電路120將傳遞數據的路徑。通過調度電路16來控制路由信息的內容。 當網絡接口 14從數據流將開始的相關聯數據處理電路IO接受信號時, 網絡接口 14向調度電路16發送請求以針對通過用于通信所述流的網絡 12傳輸的數據項目分配路由和/或時隙。結果,調度電路16返回網絡接 口 14將用于路由數據項目的路由信息。
圖2示出了路由器電路120的實施例。在該實施例中,路由器電路 120包括多個緩沖存儲器20和復用電路22。路由器電路具有端口 24a-d,
每一個均具有與各個緩沖存儲器20相連的輸入端和與各個復用電路22 的輸出端相連的輸出端。每一個緩沖存儲器20均具有與復用電路22相 連的輸出端。
在操作中,路由器電路120在連續的傳輸周期中操作。在每一個傳 輸周期中,每一個緩沖存儲器20 (即便要)從各個端口 24a-d接收并且 存儲數據項目。在下一個傳輸周期中,每一個復用器電路22向其相關聯 的輸出端輸出在前一個傳輸周期中存儲在緩沖存儲器20的相應選定緩 沖存儲器中的數據項目。通過復用電路22對緩沖存儲器20的選擇通過 緩沖存儲器20的數據項目中的路由信息來控制。
典型地,每一個數據項目在預定位置包含預定個數的控制比特以表 示應該向其傳輸數據項目的端口 24a-d,并且將復用電路22設計用于因 此響應于這些控制比特。優選地,還將復用電路22配置用于更新數據項 目,使得將用于下一個路由器電路120的控制比特移動到通過下一個路 由器電路120使用的數據項目中的預定位置。典型地,通過網絡接口 14 將控制比特插入到數據項目中。
圖3示出了網絡接口 14的實施例。在該實施例中,網絡接口 14包 括輸入部分30,輸入部分30具有多個輸入緩沖隊列存儲器300、隊列復 用器302、路由信息復用器304、時隙表存儲器306和連接表存儲器308。 另外,網絡接口包括控制單元32、輸出單元34和用于與調度電路16相 連的連接36 (未示出)。
輸入緩沖隊列存儲器300具有與網絡接口相關聯的數據處理電路相 連的輸入端和與隊列復用器302相連的輸出端。隊列復用器302具有與 路由信息復用器304的第一輸入端相連的輸出端,所述路由信息復用器 304具有與芯片上通信網絡(未示出)的路由器電路(未示出)相連的 輸出端。時隙表存儲器306具有與隊列復用器302的控制輸入端和連接 表存儲器308的輸入端相連的輸出端。連接表存儲器308具有與路由信 息復用器304的第二輸入端相連的輸出端。
在操作中,與網絡接口相關聯的數據處理電路(未示出)向用于實 現先進先出緩沖器的輸入緩沖器隊列存儲器300提供數據。通過網絡接 口傳輸已緩沖的數據在傳輸周期中發生。網絡接口定義了重復的網絡時
間段。每一個網絡時間段包括多個連續的傳輸周期。將網絡時間段處傳
輸周期的相互集合稱為時隙。時隙表存儲器306包括針對各個時隙的存 儲器位置,每一個存儲器位置存儲表示與時隙相關聯的輸入緩沖隊列存 儲器300的隊列選擇信息。在連續的傳輸周期中,網絡接口引起時隙表 存儲器306根據連續的傳輸周期所屬的各個時隙來輸出隊列選擇信息。
在傳輸周期中,隊列選擇信息控制隊列復用器302,針對傳輸周期 所屬時隙的選定隊列,從輸入緩沖器隊列存儲器300傳遞數據。隊列選 擇信息控制連接表存儲器308,針對傳輸周期所屬的時隙來輸出路由信 息。將該路由信息提供給路由信息復用器304,所述路由信息復用器304 與來自輸入緩沖器隊列存儲器300的數據一起輸出該路由信息。將該路 由信息和來自輸入緩沖器隊列存儲器300的數據提供給網絡中的第一路 由器(未示出)。
應該理解的是,圖3的實施例至示出了網絡接口 14的輸入部分的 組織結構,并且是非常示意性的。實際上,網絡接口可以包含具有存儲 器的處理器(未示出),以執行任意或全部上述功能。例如,時隙表存儲 器306和連接表存儲器308可以使用相同存儲器的不同位置來實現,對 所述存儲器進行尋址以檢索所要求的信息。作為另一個示例,可以通過 來自存儲器的選擇性檢索來實現復用功能。此外,依賴于實現,可以與 路由信息一起串行地(其中傳輸周期包括多個數據周期的情況下)或并 行地傳輸來自輸入緩沖隊列存儲器300的數據。因此,可以將路由信息 復用器304配置用于在一個數據周期傳輸路由信息,而在一個或更多其 他數據周期中傳輸隊列數據,或者在相同的數據周期中與隊列數據并行 地傳輸。
如果一次只需要實現一個數據流,單獨的輸入緩沖器隊列存儲器 300就足夠了,并且不需要隊列復用器302。即使可以使用多于一個的數 據流,可以使用單獨的隊列存儲器,復用器針對不同時隙中的選定隊列 讀取數據。
輸出單元34從網絡(未示出)接收數據,并且如果在緩沖之后需 要,將該數據傳遞到網絡接口 14的相關聯數據處理電路。
控制單元32從網絡接口 14的相關聯數據處理電路接收請求,并且
及經由連接36向調度電路(未示出)傳遞請求。所述請求包括針對不確 定數量的網絡時間段設立通過網絡12與選定目的地的連接、或者拆卸這 種連接的請求。調度電路返回信息以表示是否已經準予所述請求。另外, 根據集成電路的操作要求,調度電路16將信息寫入到時隙表存儲器306 和/或連接表存儲器38中。例如,可以將調度電路16實現為用處理請求 的程序進行編程的已編程數據處理電路。
輸出單元34典型地包含用于緩沖接收到的數據的FIFO緩沖器(未 示出)。在實施例中,可以在成對的網絡接口之間實現雙向流。任選地, 這可以用于實現基于信用的流控制,其中數據接收網絡接口 14發回信用 信息,表示到目前為止已經處理了多少接收到的數據項目,以致于其不 再需要網絡接口中的緩沖空間,并且如果已經發送的數據項目的個數和 已經接收回的信用信息不能確保接收端可用的緩沖空間,數據發送接口 暫停傳輸。在這種情況下,典型地,將輸入單元30和輸出單元40之間 的連接(未示出)配置用于反饋接收到的信息。
圖4示出了調度電路16處理設立針對不確定個數的網絡時間段的 實時流連接得請求的操作的流程圖。在第一步驟41中,接收到請求。典 型地,所述請求說明了流的源和目的地(g卩,應該將流發送的網絡接口), 以及任選地還說明了所要求的帶寬和最大傳輸等待時間(transmission latency),但是,后兩者也可以通過缺省的標準值來實現。
在步驟42中,調度電路16通過通信網絡12執行針對一組信道的 搜索,所述通信網絡將滿足請求并且支持已經在先建立的數據流。每一 個信道包含通過網絡的路徑,即路由器電路120之間的一系列連接122 和其中將使用這些連接122的時隙。
圖5a示出了信道對連接122和時隙的占據。不同的行(a、 b、 c、...) 與不同的連接122相對應,并且不同的列(0、 1、 2、...)與時間連續的 傳輸周期相對應。交叉表示其中信道占據了連接122的傳輸周期。在圖 a中,已經假設8個傳輸周期的網絡時間段。這樣,所述時隙包含重復 每8個傳輸周期的傳輸周期。因此,交叉的圖案在該圖示中每8個傳輸 周期進行重復。區分列的數字標識了時隙。
所述圖案使得在連續時隙中占據的連接122將與共享的路由電路
120相連。在圖5a中,連接共享的路由器電路120的網絡連接122不必 總是由連續的行表示,使得在圖案中可以出現垂直的跳躍。圖5b示出了 信道占據的連接122,其中數字表示其中占據連接的時隙。
圖5c示出了針對由叉、圓圈和正方形表示的三個信道的組合的時 隙和連接122的占據。圖5d示出了這些信道占據的連接。
典型地,當調度電路16接收用于打開新信道的請求時,時隙和連 接122就已經被分配給多個在前請求的信道,并且這些時隙和連接將用 于通過這些信道傳輸數據流。當調度電路16接收添加信道的請求時,調 度電路16搜索用于時隙和連接122來實現那個信道。
根據本發明的調度電路16,這種搜索不局限于時隙和網絡連接122 的分配,所述分配針對未修改的在先存在的信道來保留時隙和網絡連接 122的在先分配。調度電路16還考慮按照不千擾這些信道上的數據傳輸 的方式來針對現存的信道修改所述時隙和/或網絡連接122。
在第一實施例中,調度電路16不會考慮修改其中針對各個現存信 道占據了網絡連接的時隙,但是針對每一個現存信道在全部相等長度的 組中進行搜索,所述路徑包括信道的相同源和目的地之間的各個不同系 列的連接。
圖6a-c示出了這種類型的不同路徑。如果已經在先地分配了標記 為"i" (i=0、 1、...)的多個信道,并且針對信道i存在這種類型的Ni 個可選路徑,那么針對這些現存的信道i存在N二N。XN,XN2X…種不同組 合的路徑。當處理用于建立新信道的請求時,調度電路16考慮針對新信 道滿足所要求的等待時間的全部路徑(即,不需要超過預定個數的傳輸 周期以從源到目的地傳輸數據)。如果存在M個這種路徑,那么針對現存 信道加上新信道存在NX M個不同組合的路徑。
對于NXM個不同組合的每一個,調度電路16針對所請求的新信道 考慮P個不同的起始時隙(P是網絡時間段中傳輸周期的個數)。在該實 施例中,調度電路只考慮針對現存信道的在先起始時隙。對于P個不同 起始時隙的NXM中組合中,調度電路16可以估計其中不同信道在相同 時隙中使用相同網絡連接122的那些組合。調度電路16選擇剩余組合之
原理上可以將搜索步驟42實現為調度電路連續訪問具有時隙之
一的NXMXP中可能組合的每一種,直到已經發現其中在相同時隙中網 絡連接122的使用未超過一次的組合為止。
圖4a示出了其中例如搜索步驟42從第一搜索子步驟421開始的實 施例,用于根據針對現存信道的網絡連接的組合來產生新的組合。在該 第一搜索子步驟421中,調度電路16首先考慮對于所請求信道的M種可 能路徑和P種可能起始時隙,是否存在針對P中開始點的至少之一的M 種路徑的至少之一,使得其與現存路徑的組合將在相同的時隙中使用網 絡連接122不超過一次。如果存在這種路徑和起始時隙,在第一搜索子 步驟之后搜索步驟終止。
如果不能找到路徑和起始時隙,執行第二子步驟422,其中調度電 路選擇使用作為針對所要求信道的M種可能路徑的至少一個的一部分的 網絡連接122的現存信道。接下來,調度電路16選擇針對所請求信道和 現存信道的路徑組合,其中選定的現存信道沿與之前不同的路徑行進, 并且剩余的信道沿與以前相同的路徑行進。針對所請求的信道選擇一個 可能的起始時隙。在第三子步驟中423中,調度電路16測試選定的組合 是否在相同的時隙中未使用網絡連接122超過一次。如果是這樣,搜索 步驟終止。
如果選定的組合進行連接的抵觸使用,調度電路16執行第四子步 驟424,以選擇針對所請求信道和現存信道的另一種可能路徑組合,其 中選定的現存信道沿不同的路徑行進,而其余信道沿與以前相同的路徑 行進。如果需要,重復第三搜索子步驟423,直到已經考慮了針對所請 求信道(M)和選定信道(NO的MXNi種可能的路徑組合以及針對所請 求信道的P中可能起始時隙為止。否則,第五子步驟425引起第二子步 驟422的重復,以選定用于重新路由的另一個現存信道。
如果不能找到路徑和起始點的適當組合,報告不能滿足所述請求的 故障。任選地,可以執行另外的搜索子步驟,其中調度電路16分別考慮 同時針對兩個現存信道和更多個數現存信道的子集的可選路徑。優選地, 調度電路選擇現存信道的這些子集,使得其在以下意義上相關在子集 中的現存信道的至少一個使用作為針對新請求的連接的M種可能路徑的
一部分的網絡連接122,并且子集中的每一個接下來的現存信道使用作 為M個可能路徑的一部分或由子集中在先存在的信道使用的網絡連接 122。
依賴于調度電路16可接受的復雜性,可以將搜索步驟42限制到有 限個數的這種搜索子步驟。
優選地,將搜索限制在確保針對信道的吞吐量保證仍然滿足的重新 路由路徑。在一個示例中,可以將吞吐量保證表示為可以由于重新路由 而添加的時隙的個數的最大延遲D (例如,D二O)。針對重新路由路徑的 實際延遲是
dS+dL
其中dS是根據原始路徑的第一未使用時隙SO和根據重新路由的路 徑的第一使用的時隙Sl之間的距離SI-S0。 dL是原始路徑L0和重新路 由的路徑L1之間的長度差(連接122的個數)L1-L0。優選地,在滿足 dS+dL等于或小于D的條件的搜索期間只考慮路徑和時隙。在典型的示 例中,D等于O,并且如果dS也等于O, dL因此應該小于等于O。如果 dSM),應該使用更小的dL。
在搜索步驟42之后,調度電路16執行第三步驟43。第三步驟43 測試是否已經找到有效的組合。如果沒有,第三子步驟向第四步驟44 傳遞控制,如果針對新請求的信道沒有找到合適的路徑,向請求的網絡 接口發回拒絕。
如果在搜索步驟42中已經找到了合適的路徑,調度電路16轉移到 第五步驟45,其中調度電路16向現存信道起點處的那些網絡接口 14發 送命令,在搜索子步驟中已經針對所述現存信道選擇了替換的路徑。所 述命令控制對所涉及的連接表存儲器308或網絡接口 14的存儲器308 的更新。在連接表存儲器308,將限定了替換路徑的新的路由信息寫入。 例如,如果調度電路16在上述第一搜索子步驟中已經找到路徑組合,則 向選定現存信道起點處的網絡接口發送命令以更新針對所述信道的路由
"(曰息。
隨后,調度電路16執行第六步驟46,其中調度電路16將路由信息 編程到新請求信道的起點處的網絡接口 14的連接表存儲器380。另外,
調度電路16將新請求信道的選定時隙的標識編程到網絡接口的時隙表 存儲器306中。
在第七步驟47中,調度電路16向新請求信道起點處的網絡接口的 控制單元32發送確認信號。響應于所述確認信號,控制單元32向數據 處理電路10信號通知請求被接受并且流可以開始。隨后,網絡接口 14 將在通過調度電路16表示的時隙中發送帶有路由信息的數據,并且路由 器120將根據所述路由信息,通過通信網絡12路由所述數據。
在實施例中,在現存信道的重新路由和新信道的激活之間使用延 遲,使得新信道只在針對通信網絡中的現存信道的全部數據遵循新路由 的情況下開始,或者至少沒有可能與新信道抵觸的數據仍然遵循舊路由。 當同時重新路由多于一個信道時,可能需要對重新路由進行同步,或者 搜索一系列步驟,其中一個接一個地重新路由所述信道以便避免重新路 由期間的抵觸。
可選地,可以使用確認機制,例如通過將網絡接口 14配置為在重 新路由之后接收到己經被標記為第一數據項目的數據項目之后,向調度 電路16提供確認。在這種情況下,調度電路16在已經針對全部重新路 由的信道檢測到確認之后激活新的信道。例如,可以通過在網絡接口 14 中的預定存儲器位置處設定標記來提供確認,調度電路在重新路由的信 道的末端處的網絡接口中對標記進行輪詢。替換地,網絡接口可以發送 確認。代替調度電路16,可以將一些其他電路配置用于檢查是否已經產 生確認,并且用于觸發新信道的開始。盡管針對簡單的示例說明了本發 明,本發明并不局限于這些示例。例如,應該理解的是可以將本發明應 用于通信網絡12中的連接122的任意圖案。典型地,每一個可能的網絡 針對網絡接口的至少一部分之間的信道,允許通過多個路由器的多條不 同路徑。另外,本發明當然不局限于四個端子的路由器電路120。可以 使用具有更少或更多端子的路由器電路120。另外,盡管優選的是使用 非常簡單的路由器電路,在其中接收到數據的傳輸周期之后立即在所述 傳輸周期中轉發所述數據,應該理解的是,可以使用更復雜的路由器電 路,例如在可選擇數目的傳輸周期期間提供緩沖的路由器電路。在這種 情況下,搜索還涉及針對路由器電路120的不同緩沖時間段,并且路由
信息涉及針對各個路由器電路120的所請求緩沖時間段的表示。
另外,在每一個示例中,針對每一個信道使用一個時隙,使得將一 個傳輸周期用于每一個網絡時間段中的信道。然而,如果要求更大的傳 輸帶寬,可以使用更多時隙。在這種情況下,搜索可以包括大量的時隙, 例如如果使用兩個時隙來代替一個時隙,包括P(P-l)對時隙。在這種情 況下,將相同的隊列選擇寫入用于時隙表存儲器306中的不同時隙的條 目中。優選地,將相同的路徑用于兩個時隙中的傳輸,因為這確保了數 據的順序遞送。搜索針對具有與現存信道相同長度的現存信道的替換路 徑的優勢在于所得到的替換路徑將不會影響其中在這種情況下遞送數 據的順序。
替換地,可以將不同的路徑用于不同時隙中的相同信道。在這種情 況下,必須將標識針對不同時隙的不同路徑的路由信息寫入到連接表存 儲器308中,并且必須根據激活的時隙(而不是根據信道)來對連接表 存儲器308尋址。這增加了找到合適路徑的可能性。在這種情況下,優 選地使用相等長度的路徑,因為這保證了數據的順序遞送。但是替換地, 可以使用不同長度的路徑,只要使時隙之間的距離至少足夠大以防止數 據遞送的次序混亂。
在另外的實施例中,搜索步驟42中的搜索還涉及針對可能具有與 原始路徑不同的長度的現存信道的替換路徑,即可以包含不同個數的連 接,優選地,在吞吐量要求保持滿足的限制下(dS+dL等于或小于D,例 如D=0)。路徑長度dL的變化承受數據將順序混亂地到達目的地的網絡 接口的風險。如果信道每個網絡時間段只使用一個時隙,在新路徑不大 于網絡時間段P減去短于原始路徑的一個連接的情況下,將避免該風險。 因此,優選地,調度電路16因此限制了路徑搜索。當信道每個網絡時間 段涉及多于一個時隙時,優選地,路徑長度變化將不比相同信道的先前 時隙短得大于該時隙距離。
然而,如果網絡接口 14可以保留針對已變化信道的一個或更多時 隙未使用,無需強加這種限制,即在沿新信道開始傳輸之前暫停信道, 以確保在第一數據沿新路徑到達之前,全部在先發送的數據已經到達。 例如,可以通過在傳輸發生之前替換將導致不希望傳輸的網絡接口中信
息來實現暫停,以便防止傳輸和隨后的重寫。但是可以使用其他機制, 例如在明確表示不應該將特定信息用于開始傳輸的網絡接口中存儲另外 的信息。另外,可以在網絡接口中使用緩沖器(未示出),以在遞送給數
據處理電路10之前緩沖從網絡中接收到的數據。只要足夠的緩沖數據是
可用的,未使用的時隙將對于遞送沒有效果。緩沖的已接收數據的實用
性放寬了吞吐量要求(增加了D)。
當然,該技術只有在通過增加暫停時間段沒有超過針對信道的最大 可允許等待時間的情況下是可行的。如上所述,通過限制改變的路徑的 長度使得不可能出現順序混亂的遞送,避免了可允許等待時間的問題。 在這種情況下,可以無需暫停地繼續數據傳輸。
在另外的實施例中,搜索步驟42中的搜索還涉及針對比現存路徑 長、但不長于通過最大可允許等待時間允許的現存信道的替換路徑。與 其中針對信道的路徑對于信道的全部起始時隙都相同的實施例相結合, 這具有在路徑改變期間保持順序地遞送的保證的優點。
圖7a-c示出了可以這樣考慮的一些附加路徑。該另外實施例的效 果是在搜索期間將考慮更多的路徑,使得存在針對新請求路信道找到路 徑的更好機會。與具有其中針對選定現存路徑來考慮替換路徑的第一搜 索子步驟的實施例結合,將存在Mi〉Ni條替換路徑。但是可以按照類似的 方式執行其他搜索。
如所述的,可以無需暫停的考慮更短路徑,只要通過替換路徑實現 的縮短不會超過與最近的前一個時隙的距離。這避免了路徑變化期間順 序混亂的遞送。在替換實施例中,可以考慮具有與現存路徑相比不同長 度的替換路徑可以與形成網絡接口的傳輸的起始時隙中的相應變化相 連,使得遞送的時隙保持相同,或者至少不會提前地太多,使得在路徑 變化之前預先移動最后時隙用于遞送。
在更復雜的實施例中,可以通過針對現存信道考慮更多替換路徑和 /或替換起始時隙、并且隨后刪除當路徑變化時將導致順序混亂地遞送的 路徑和時隙的組合,在搜索中允許更多的自由度。
盡管優選地,通過調度電路16選擇全部信道,應該理解的是至少 初始地一些信道可以使用在集成電路的設計期間已經選擇的預定路徑。
在這種情況下,調度電路16需要提供在運行時必須添加的附加信道。在 實施例中,可以對全部初始限定的信道重新路由以實現新的信道,但是 替換地可以將一些信道從重新路由中排除,例如,因為將非可編程網絡 接口用于那些信道。
現在應該理解的是,通過本發明提供一種針對通過集成電路中的通 信網絡的實時流的信道的運行時間添加的改進機制。通過網絡管理全部 信道的調度電路16從網絡接口搜索針對所述信道的可用路徑和用于傳 輸數據的時隙。調度電路16不但通過尋找沒有由現存連接使用的時隙中 的連接、而且尋找通過經由替換路徑重新路由現存連接而可用的連接和 時隙,來搜索路徑和時隙。優選地,選擇替換路徑使得重新路由將不會 影響通過信道的數據遞送的順序。如果找到合適的路徑,首先對現存信 道重新路由,然后創建新的信道。
權利要求
1.一種集成電路,包括多個數據處理電路(10);連接在數據處理電路(10)之間的通信網絡(12),通信網絡(12)包括連接(122)和連接在連接(122)之間的路由器電路(120),通信網絡(12)和/或數據處理電路(10)和/或通信網絡(10)和數據處理電路(12)之間的另外電路是可編程的,以存儲針對各個數據流的沿連接(122)的各個路徑的定義,用于控制路由器(120),以便沿針對相應數據流編程的相應路徑傳輸來自每一個相應數據流的每一個數據項目;調度電路(16),與通信網絡(12)和/或數據處理電路(10)和/或所述另外電路相連,用于選擇和編程各個路徑,所述調度電路(16)配置用于通過針對至少一個原始數據流重新路由路徑、并且為新的數據流選擇占據通過針對至少一個原始數據流的路徑的所述重新路由騰出的連接(122)的新路徑、以及對原始數據流的路徑的定義重新編程并且對新路徑的定義進行編程,在原始數據流的傳輸已經開始之后服務于向多個原始數據流添加附加數據流的請求,而無需中斷除了所述至少一個原始數據流之外的原始數據流的數據項目傳輸。
2. 根據權利要求1所述的集成電路,其中將調度電路配置用于在 選定的時隙內向各個數據流分配連接,原始數據流在時隙的周期性重復 圖案中占據路徑中的連接,所述調度電路(16)被配置為當新路徑開始 時,而保留針對除了所述至少一個原始數據流之外的原始數據流未中斷 的圖案中的時隙的使用。
3. 根據權利要求2所述的集成電路,其中將路由器電路(120)配 置用于在接收之后的預定延遲,沿所述路徑轉發接收到的數據項目,使 得其中數據項目進入網絡(12)的起始時隙確定了其中數據項目占據各 個連接(122)的時隙。
4. 根據權利要求2所述的集成電路,包括網絡接口 (30),每一個 與相應的一個或一組數據處理電路(10)相連,每一個網絡接口 (30)包括用于存儲至少一個定義的存儲器(306、 308),所述網絡接口 (30) 配置用于將從各個存儲器(306、 308)中已存儲的定義得出的路由信息 包含到包括來自所述數據流的數據的數據項目中,路由器電路(120)配 置用于在所述路由信息的控制下對每一個數據項目進行路由,調度電路(16)配置用于通過將新定義在新路徑起點處編程到網絡接口 (30)的 存儲器(306、 308)中來實現新路徑,并且配置用于根據針對網絡接口(30)中的至少一個數據流的已重新路由的路徑,在已重新路由的路徑 的起點處替換已存儲的一個或更多定義,所述網絡接口 (30)在所述定 義的編程和重新編程之后激活新路徑。
5. 根據權利要求2所述的集成電路,其中將調度電路(16)配置 用于根據通過調度電路(16)的結構限定的可選擇組合來選擇針對原始 數據流和新的數據流的路徑組合,所述可選擇組合只包括其中針對至少 一個原始數據流的己重新路由的路徑具有與針對至少一個原始數據流的 原始路徑相同長度的組合。
6. 根據權利要求2所述的集成電路,其中將調度電路(16)配置 用于根據通過調度電路(16)的結構限定的可選擇組合來選擇針對原始 數據流和新的數據流的路徑組合,所述可選擇組合不包括其中針對至少 一個原始數據流的已重新路由的路徑短于針對至少一個原始數據流的原 始路徑的組合。
7. 根據權利要求2所述的集成電路,其中將調度電路(16)配置 用于根據通過調度電路(16)的結構限定的可選擇組合來選擇針對原始 數據流和新的數據流的路徑組合,所述可選擇組合包括其中針對至少一 個原始數據流的已重新路由的路徑短于原始路徑的組合,所述調度電路(16)配置用于引起通信網絡針對至少一個原始數據流在周期性重復圖 案中插入暫停,其中在使用針對至少一個原始數據流的已重新路由路徑 的第一起始時隙之前,針對至少一個原始數據流的原始路徑相關的最后 一個起始時隙保持為未被占據。
8. 根據權利要求2所述的集成電路,其中將調度電路(16)配置 用于根據通過調度電路(16)的結構限定的可選擇組合來選擇針對原始 數據流和新的數據流的路徑組合,所述可選擇組合包括其中針對至少一個原始數據流的已重新路由的路徑短于原始路徑的組合,所述調度電路 (16)配置用于針對至少一個原始數據流的已重新路由的路徑的新的起始時隙,選 擇與針對原始數據流的原始路徑的原始起始時隙不同的位置,新起始時 隙和原始起始時隙之間的距離至少與原始路徑和已重新路由的路徑的長 度之間的差一樣大;在沿重新路由的路徑的新的起始時隙中傳輸第一數據項目之前,引 起通信網絡保留原始時隙的最后一個實例未使用。
9. 根據權利要求2所述的集成電路,其中調度電路(16)配置用 于根據通過調度電路(16)的結構限定的可選擇組合來選擇針對原始數 據流和新的數據流的路徑組合,所述可選擇的組合只包括其中不超過一 個已重新路由的路徑與原始路徑不同的組合。
10. 根據權利要求2所述的集成電路,其中將調度電路(16)配置 用于根據通過調度電路(16)的結構限定的可選擇組合來選擇針對原始 數據流和新的數據流的路徑組合,所述調度電路配置用于執行搜索,其 中訪問針對數據流的各個路徑組合,并且調度電路(16)確定所訪問的 組合是否包含連接的抵觸使用,直到檢測到沒有抵觸使用的組合為止。
11. 一種操作集成電路的方法,其中所述集成電路包括多個數據 處理電路(10);連接在數據處理電路(10)之間的通信網絡(12),通 信網絡(12)包括連接(122)和連接在連接(122)之間的路由器電路(120),通信網絡(12)和/或數據處理電路(10)和/或通信網絡(10) 和數據處理電路(12)之間的另外電路是可編程的,以存儲針對各個數 據流的沿連接(122)的各個路徑的定義,用于控制路由器(120),以便 沿針對相應數據流編程的相應路徑傳輸來自每一個相應數據流的每一個 數目項目;所述方法包括定義針對一組原始數據流的原始路徑;開始原始數據流的數據項目的傳輸;隨后識別針對附加數據流的新路徑,根據包括至少一個組合的可選 擇組合,結合針對原始數據流的未來路徑來選擇新路徑,在所述至少一 個組合中,己經相對于原始路徑重新路由了針對至少一個原始數據流的原始路徑。
12. 根據權利要求1所述的方法,包括對針對所述數據流的連接進 行時隙復用,原始數據流在時隙的周期性重復圖案中占據原始路徑中的 連接,針對還作為選定組合一部分的至少那些原始數據流,所述圖案在 新路徑的添加期間無需中斷而繼續。
13. 根據權利要求12所述的方法,其中根據可選擇組合的預定集 合來選擇針對原始數據流和新數據流的路徑組合,所述預定集合只包括 其中針對至少一個原始數據流的已重新路由路徑具有與針對至少一個原 始數據流的原始路徑相同的長度的組合。
14. 根據權利要求12所述的方法,其中根據可選擇組合的預定集 合來選擇針對原始數據流和新數據流的路徑組合,所述預定集合不包括 其中針對至少一個原始數據流的已重新路由路徑短于針對至少一個原始 數據流的原始路徑的組合。
15. 根據權利要求12所述的方法,其中根據可選擇組合的預定集 合來選擇針對原始數據流和新數據流的路徑組合,所述預定集合包括其 中針對至少一個原始數據流的已重新路由路徑短于原始路徑的組合,針 對至少一個原始數據流在周期性重復圖案中插入暫停,其中在使用針對 至少一個原始數據流的已重新路由路徑的第一起始時隙之前,將針對至 少一個原始數據流的原始路徑相關的最后起始時隙保持為未被占據。
16. 根據權利要求12所述的方法,其中根據可選擇組合的預定集 合來選擇針對原始數據流和新數據流的路徑組合,所述預定集合包括其 中針對至少一個原始數據流的已重新路由路徑短于原始路徑的組合,所 述方法包括針對至少一個原始數據流的已重新路由的路徑的新的起始時隙,使 用與針對原始數據流的原始路徑的原始起始時隙不同的時間位置,新起 始時隙和原始起始時隙之間的距離至少與原始路徑和已重新路由的路徑 的長度之間的差一樣大;在沿重新路由的路徑在新的起始時隙中傳輸第一數據項目之前,保 留原始時隙的最后一個實例未使用。
17. 根據權利要求12所述的方法,其中根據可選擇組合的預定集 合來選擇針對原始數據流和新數據流的路徑組合,所述預定集合只包括 其中不超過一個已重新路由的路徑與原始路徑不同的組合。
18. —種計算機產品,包括用于集成電路中的可編程調度電路(16)的指令,所述集成電路包括多個數據處理電路(10)和連接在數據處理電路(10)之間的通信網絡(12),通信網絡(12)包括連接(122) 和連接在連接(122)之間的路由器電路(120),通信網絡(10)禾n/或 數據處理電路(12)和/或通信網絡(10)和數據處理電路(12)之間的 另外電路是可編程的,以存儲針對各個數據流的沿連接(122)的各個路 徑的定義,用于控制路由器(120),以便沿針對相應數據流編程的相應 路徑傳輸來自每一個相應數據流的每一個數目項目;當通過可編程調度 電路執行所述指令時,所述指令引起可編程調度電路進行以下步驟在通過多個原始數據流的數據流傳輸已經開始之后,識別針對附加 的數據流的新路徑,根據包括其中針對至少一個原始數據流的未來路徑 是已重新路由的路徑的至少一個組合的可能組合、結合針對原始數據流 的未來路徑來選擇新路徑;引起通信網絡重新路由針對至少一個原始數據流的原始路徑,無需 中斷沿也是選定組合的一部分的至少那些原始路徑的數據項目的傳輸, 隨后開始沿新路徑的數據項目傳輸。
全文摘要
集成電路包括多個數據處理電路(10);連接在數據處理電路(10)之間的通信網絡(12)。通信網絡(12)包括連接(122)和在連接(122)之間連接的路由器電路(120)。存儲器是配置用于存儲針對各個數據流的沿連接(122)的各個路徑的定義,用于控制路由器(120)沿針對所述各個數據流編程的各個路徑從每一個相應數據流傳輸每一個數目項目。定義并且開始用于一組原始數據流的原始路徑。隨后可以添加附加的數據流。如果這樣,結合針對原始數據流的未來路徑來選擇新路徑。新路徑和未來路徑的組合采取包括其中針對至少一個原始數據流的原始路徑已經相對于原始路徑重新路由至少一種組合的可選擇組合。如果在選定組合中重新路由針對原始數據流的路徑,對針對至少一個原始數據流的原始數據重新編程,而無需中斷除了所述至少一個原始數據流之外的原始數據流的數據項目傳輸。隨后,開始沿新路徑的數據項目傳輸。
文檔編號H04L12/54GK101180842SQ200680018032
公開日2008年5月14日 申請日期2006年5月17日 優先權日2005年5月23日
發明者埃德溫·里杰克瑪, 約翰·迪埃里森 申請人:Nxp股份有限公司