麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

用于避免數據饑餓的集成電路和方法

文檔序號:7608764閱讀:218來源:國知局
專利名稱:用于避免數據饑餓的集成電路和方法
技術領域
本發明涉及一種集成電路,該集成電路包括一個網絡,該網絡包括多個路由器,這些路由器中的至少一個包括多個輸入端口,這些輸入端口用于接收與至少兩種業務類別相對應的輸入數據,所述路由器還包括多個隊列,這些隊列用于存儲與單個業務類別相對應的輸入數據,其中上述輸入端口與這些隊列中的至少兩個相耦合,所述路由器還包括一個交換器。
本發明還涉及一種用于在集成電路中避免數據饑餓(starvation)的方法,該集成電路包括一個網絡,該網絡包括多個路由器,這些路由器中的至少一個包括多個輸入端口,這些輸入端口接收與至少兩種業務類別相對應的輸入數據,所述路由器還包括多個隊列,其中這些隊列存儲與單個業務類別相對應的輸入數據,上述輸入端口與這些隊列中的至少兩個相耦合,所述路由器還包括一個交換器。
背景技術
由于對現有功能進行創新和改進的需要不斷增加,硅上系統(system on silicon)在復雜程度上持續增高。通過提高元件集成在集成電路上的密度能使上述情況變成可能。同時,電路運行的時鐘速度也有升高的趨勢。更高的時鐘速度與增大的元件密度相結合會減少在相同時鐘域內同步運行的電路面積。這產生了對模塊化方法的需要。根據這樣的模塊化方法,處理系統包括多個相對獨立、復雜的模塊。在傳統的處理系統中,模塊經由總線互相通信。然而隨著模塊數目的增加,這種通信方式由于以下原因而不再實用。首先,大量的模塊形成太高的總線負載;其次,由于許多模塊將耦合到總線而使時鐘頻率下降;第三,由于總線只能使一個器件向它發送數據,所以總線會形成通信瓶頸。
一種通信網絡形成了克服這些缺陷的有效方法。在文章“Tradeoffs in the Design of a Router with Both Guaranteed and Best-EffortServices for Networks on Chip”published at the Conference on Design,Automation and Test in Europe,7March 2003,Munich(Germany)中描述了這種網絡的優點。另外,這種網絡能夠組織和管理全局互接線路,并共享這些線路,從而降低了線路數目并提高了線路的利用率。
上述通信網絡包括多個部分連接的節點。來自模塊的請求可以通過這些節點改變方向傳到一個或多個其他節點。文獻和當前的研究顯示,對于大型片上系統來說這些片上網絡是不可避免的。這樣的網絡典型地包括經由諸如導線的物理連接而互相連接的路由器。
因為輸入排隊緩沖結構在低成本下能提供合適的性能,所以片上網絡(NoC)中路由器的已知結構就是輸入排隊緩沖結構。在傳統輸入排隊中,單個隊列耦合到路由器的每一輸入端口。將路由器的輸入數據分類成多個業務類別,這些業務類別定義了輸入數據所屬于的數據類別。傳統輸入排隊不能區分來自不同業務類別的輸入數據,因而只能支持單個業務類別。
通過多個網絡可以實現需要多個業務類別的系統,但是將多個網絡合并成單個網絡具有共享用來連接路由器的物理連接的優點。因此,希望擁有一種支持多個業務類別的單個網絡。獲得該單個網絡的標準方法是擴展路由器的輸入排隊機制使得每一輸入端口接收多個隊列。通常,因為一個大存儲器比多個小存儲器具有更高的面積效率,所以耦合到一個輸入端口的隊列集合映射到一個存儲單元(例如RAM存儲器)。在圖1B中說明了這種支持多個業務類別的路由器的標準結構。
路由器在離散時間點做出決策,上述離散時間點將時間劃分成所謂的“時隙”。路由器可能在一個時隙內試圖通過相同鏈路(即相同輸出)發送多個數據項;這個問題稱為競爭。因為在一個時隙內通過一個鏈路只能傳送一個數據項,所以在該多個數據項中必須做出選擇;這種處理稱為競爭解決。競爭解決典型地是通過對業務進行調度來進行的;例如調度器可以在選擇與低優先級業務相對應的數據項之前,選擇與高優先級業務相對應的數據項。調度通常通過一個或者多個仲裁器來執行,上述仲裁器能夠允許和拒絕時隙之內的請求;每一時隙只允許一個傳到輸出端口的請求。
該標準結構具有兩個主要問題。第一個問題是可能發生饑餓。饑餓意味著某一輸入數據,例如屬于低優先級業務類別的數據,永遠得不到服務而因此使輸入數據“滯留”在路由器里。事實上,這意味著在該網絡中該數據永遠不能到達它的目的地。饑餓可以分成兩種類型。第一種類型的饑餓主要是由網絡引起,其原因是分配到路由器的輸出端口的數據項比輸出端口的帶寬允許的數據項更多。在這種情況下,輸出端口的業務被稱為“不容許的業務(non-admissible traffic)”。第二種類型的饑餓是由路由器自身所引起的,例如因為沒有適當地執行競爭解決。在這種情況中,輸出端口的業務稱為“容許的業務(admissible traffic)”。本發明涉及與容許的業務相對應的數據項;本文檔的其余部分只考慮容許的業務。
第二個問題與仲裁器的設計有關,仲裁器必須對輸出端口的訪問進行調度。每一輸出端口對應一個仲裁器。仲裁器必須在路由器中執行競爭解決。這些仲裁器的設計是相對復雜的。

發明內容
本發明的一個目的是提供一種可以用在集成電路的網絡內的路由器,該路由器能夠處理屬于多種業務類別的輸入數據,并且在容許的業務下保證所有輸入數據能以可接受的代價被充分地處理和輸出。通過提供一種以權利要求1的特征部分為特征的集成電路實現上述目的。也可以通過提供一種以權利要求6的特征部分為特征的方法實現該目的。
本發明基于以下理解競爭問題是由輸入競爭和輸出競爭這兩個具體問題組成的。當耦合到輸入端口的多個隊列都包含數據時,在該輸入端口發生輸入競爭。當多個輸入端口試圖同時(即在一個時隙中)訪問單個輸出端口時,發生輸出競爭。
已知的路由器結構典型地包括多個復用器和一個交換器,上述復用器允許在一個時隙內每個輸入端口最多一個隊列接受服務。本發明還基于以下理解所述復用器可以省略,因為設計一個能夠同時為耦合到輸入端口的多個隊列服務的交換器是可能的。饑餓問題是由持續優先選擇高優先級業務而不選低優先級業務而導致的,該問題可以通過允許在服務包含來自高優先級業務類別的數據的隊列的同時,也服務包含來自低優先級業務類別的數據的隊列而解決。因為不再存在輸入競爭的問題,所以可簡化仲裁器的設計。包括在路由器中的交換器必須適合于同時處理來自每個輸入端口的多個隊列的輸入,這將在優選實施例的描述中進行說明。
在權利要求2中定義了上述集成電路的一個實施例,其中隊列的第一選擇用于存儲與高優先級業務類別相對應的輸入數據,隊列的第二選擇用于存儲與低優先級業務類別相對應的輸入數據。該實施例的優點在于可分別對高優先級業務和低優先級業務進行調度。權利要求3定義了另一個實施例,其中所述第一選擇用于在網絡中提供確保通信服務(guaranteed communication service)。所述第二選擇用于在網絡中提供盡力而為通信服務(best-effort communication service)。
如果所述業務類別中的至少一個的仲裁器(例如高優先級業務類別的仲裁器)執行預定調度,那么在網絡中源和目的地之間可獲得業務的無競爭處理。該實施例在權利要求4中進行了定義。
在權利要求5中定義的實施例提供了依據本發明的交換器的一種可能實現。


下文中將通過參考附圖對本發明進行更加詳細地描述,其中圖1A說明了一種包括具有路由器的網絡的集成電路;圖1B說明了集成電路上的網絡中包括的已知路由器的一種結構;圖2說明了在這樣一種結構中屬于多個業務類別的輸入數據的饑餓問題;
圖3說明了幾個隊列的狀態,用于解釋圖2所示的饑餓問題;圖4說明了在所述結構中導致饑餓的周期性撤銷(retraction)的一個例子;圖5說明了幾個隊列的狀態,用于解釋圖4所示的饑餓問題;圖6說明了這樣一種結構中交換器的實現;圖7說明了依據本發明的集成電路上的網絡內的路由器的結構;圖8說明了依據本發明的交換器的實現。
具體實施例方式
圖1A說明了一種已知的集成電路IC,該集成電路IC包括一個具有路由器R1、R2直到并包括Rx的網絡。路由器R1、R2直到并包括Rx用于傳遞數據通過網絡。將路由器R1、R2直到并包括Rx的輸入數據分類成多個業務類別,這些業務類別定義了輸入數據所屬于的數據類別。本發明涉及能夠傳遞屬于多個業務類別的數據的路由器。本領域的技術人員知道,所述網絡可擴展到一個或者多個其它集成電路,使得集成電路IC和其它集成電路共享單個網絡。在這種情況下,NoC跨越多個芯片。本發明也涉及在這樣一個共享網絡中的路由器。
圖1B說明了在集成電路上的網絡內包括的路由器的一種結構。在該例中,路由器包括控制器100,該控制器100耦合到多個輸入端口102、104、106并耦合到交換器120,該交換器120也稱為縱橫交換器。注意可能存在其它可供選擇的結構。輸入端口102、104、106接收輸入數據input_1、input_2、inupt_3,這些輸入數據屬于多個業務類別;將這些輸入數據傳遞給隊列108a、108b、110a、110b、112a、112b。隊列108a、108b、110a、110b、112a、112b中的每個都能存儲屬于單個業務類別的輸入數據input_1、input_2、input_3。因此,每一輸入端口耦合到多個隊列;隊列的數目取決于所支持的業務類別的數目。在所給實施例中,每一輸入端口有兩個隊列,例如隊列108a和108b與輸入端口102相對應,這意味著支持屬于兩種業務類別的輸入數據。很清楚存在其它可能的實施例,并且依據所支持業務類別數目的不同,每一輸入端口的隊列數目將會不同。
上述路由器也包括多個復用器114、116、118,該復用器允許在每單位時間(時隙)每一輸入端口最多有一個隊列接受服務。通常,復用器114、116、118也與控制器100相接(沒有示出)。控制器100包括多個執行調度機制的仲裁器(沒有示出),例如控制器100計算交換器的設置。
如果在一個輸入端口的多個隊列都包含數據,那么在該輸入端口會發生輸入競爭。同樣,當多個輸入端口試圖訪問單個輸出端口時,則發生輸出競爭。用在該結構中的交換器102用來接收臨時存儲在隊列中的輸入數據input_1、input_2、input_3,在這個約束下,在一個時間單元(時隙)內每一輸入端口的最多一個隊列接受服務。在該例中,交換器102可以最多同時接收來自三個隊列的數據,但它不能同時接收來自耦合到同一輸入端口的兩個隊列的數據。然后交換器102傳送數據,作為輸出數據Output_1、Output_2、Output_3,這些輸出數據將由網絡進一步處理。
圖2說明了圖1所示結構中屬于多個業務類別的輸入數據的饑餓問題。饑餓是網絡的一個主要問題。在該例中,耦合到輸入端口102、104、106的上部隊列108a、110a、112a包含屬于高優先級業務類別的數據,而耦合到輸入端口102、104、106的下部隊列108b、110b、112b包含屬于低優先級業務類別的數據。圖2中的虛線箭頭表示獲得對交換器120的特殊輸出端口(沒有示出)進行訪問的請求。換句話說,臨時存儲在隊列108b中的輸入數據將改變方向傳到交換器120的第二輸出端口并作為輸出數據Output_2輸出。然而,正如圖3所說明的,從隊列108b到交換器120的第二輸出端口的請求不會被允許。圖3說明了隊列108a、108b、110a的狀況。當分別在偶數和奇數時隙期間允許隊列108a和110a(包含屬于高優先級業務類別的數據)訪問輸出端口時,隊列108b得不到服務,這是因為因為復用器114約束隊列108a、108b中每次只有一個能得到服務,所以隊列108b不能和隊列108a同時得到服務;因為隊列110a“占用”隊列108b請求訪問的輸出端口,并且隊列110a包含來自更高優先級業務類別的數據,所以隊列108b不能和隊列110a同時得到服務。
如果上面描述的在奇數和偶數時隙期間發生的模式不斷重復,那么隊列108b不會得到服務并產生數據的饑餓。
已經采取若干克服上述問題的嘗試,特別是以仲裁器應用的仲裁機制的形式,所有這些嘗試都沒有得到真正的解決辦法。而且,實現這些方案會更加困難,并會導致硬件設計變得復雜。典型地,這些方案也會降低低優先級業務的性能。
在下文中將討論下列仲裁機制撤銷請求;鎖定請求;隨機仲裁;多級優先。
第一種已知的仲裁機制使用一種稱為撤銷請求的方法。這意味著如果發生來自于相同輸入端口或者輸出到相同輸出端口的請求,并且假定來自該輸入端口的數據或者送到該輸出端口的數據屬于高優先級業務類別(也稱為高優先級請求),則撤銷從包含屬于低優先級業務類別的輸入數據的隊列來的訪問輸出端口的請求(也稱為低優先級請求)。這種方法的硬件代價低,但低優先級仲裁器(調度低優先級請求)只能在高優先級仲裁器(調度高優先級請求)結束后起動。這會導致更高的計算延遲。而且,這種仲裁機制并不公平,并甚至會導致單個隊列的低優先級請求的周期性撤銷。該隊列可能再次發生饑餓。
在圖4和圖5中給出了導致隊列饑餓的周期性撤銷的例子。來自第一輸入端口102的屬于低優先級業務類別的輸入數據Input_1被傳送到隊列108b,然而屬于高優先級業務類別的輸入數據Input_1被傳送到隊列108a。隊列110b和112b分別包含屬于低優先級業務類別的輸入數據Input_2、Input_3。從圖5中可以看出隊列108b得不到服務,這是因為因為復用器114約束隊列108a和108b中每次只有一個能接受服務,所以隊列108b不能和隊列108a同時接受服務;
因為隊列108a對應于相同的輸入端口,所以從隊列108b來的低優先級請求被撤銷;在撤銷后調度器可以服務隊列110b、112b,但是如果隊列108b再次需要得到服務,且又有從隊列108a來的高優先級請求,則從隊列108b來的低優先級請求再次被撤消,等等。
另一種仲裁機制使用一種稱為鎖定請求的方法。為了避免撤銷請求的長時間延遲,并避免周期性撤銷,通過只考慮輸出競爭,該方法同時對高和低優先級業務類別進行調度。如果在某一輸入端口已允許的低優先級請求和高優先級請求之間發生輸入競爭,則忽略該低優先級請求的允許,并在允許任何其它低優先級請求之前,把低優先級仲裁器鎖定到首先允許剛剛被忽略的低優先級。如果在圖4所示例子中使用該仲裁機制,則如果隊列110b和112b曾經尋址過包含輸出數據Ouput_2的輸出端口,那么該鎖定除了導致隊列108b饑餓外,還會導致隊列110b和112b發生饑餓。這意味著低優先級請求不會得到有效服務,并且低優先級帶寬的利用也遠沒達到最佳狀況。
另一個仲裁機制由上文說明的請求撤銷與隨機仲裁器相結合構成。隨機仲裁器在每一輸出端口隨機地允許“競爭請求”(尋址相同輸出端口的請求)中的一個。這樣,通過隨機選擇就解決了周期性撤銷的問題。然而,該仲裁機制的缺點是隨機仲裁器的實現是相對昂貴的。
最后,在本文檔其余部分將介紹一種使用稱為多級優先的方法的仲裁機制。該方法與上面說明的撤銷請求相結合,在低優先級業務類別范圍內提供多個優先級。如果一個請求被撤銷,則遞增該請求的優先級,使得該請求被允許的機會也增加。那么用于低優先級業務類別的仲裁器需要是優先化的仲裁器,然而該仲裁機制的缺點是,由于該優先化的仲裁器和對優先級的管理導致硬件相對復雜且成本相對較高。
現有技術中已知的路由器采用在圖6中說明的交換器120。在本例中采用3×3縱橫交換器。該交換器120具有三條輸入線,分別表示復用器114、116、118的輸出。交換器120本身也包括三個復用器600、602、604。根據所尋址的輸出端口,數據經由每條輸入線被送到復用器600、602、604。復用器600為第一輸出端口接收作為輸出數據Output_1輸出的數據,復用器602為第二輸出端口接收作為輸出數據Output_2輸出的數據,復用器604為第三輸出端口接收作為輸出數據Output_3輸出的數據。該交換器120運行如下。例如,屬于高優先級業務類別的輸入數據Input_3經由輸入端口106傳到隊列112a。讓我們假設隊列112a請求訪問具有輸出數據Output_2的輸出端口。那么復用器118首先轉接該數據,然后該數據經由下部輸入線進入交換器120。隨后,復用器602轉接該數據,并且最終將該數據作為輸出數據Output_2輸出。
結果,因為輸入競爭不再出現并且調度機制更加簡單,所以可以簡化控制器100。現有技術的路由器也有持續“線端阻塞(head-of-lineblocking)”的問題;其結果是在一個輸入端口的隊列頭部發生數據的饑餓,將導致該輸入端口處所有數據的饑餓。在依據本發明的路由器中,線端阻塞不會無限地發生并且其發生的頻率比現有技術的路由器更低,這對于路由器的性能也有積極的效果。
在一個實施例中,高優先級業務類別和低優先級業務類別之間的差異可被有利地用來提供一種路由器,該路由器一方面能夠提供確保服務,另一方面可提供盡力而為服務。在文章“Trade offs in theDesign of a Router with Both Guaranteed and Best-Effort Services forNetworks on Chip”,published at the conference on Design,Automationand Test in Europe,7March 2003,Munich(Germany).中對這樣一種組合路由器結構進行了描述。應該通過網絡傳送的數據,如果其傳送具有諸如確保吞吐量和確保延遲等方面的要求,則將它分類為高優先級業務。對于其傳送要求在盡力而為的基礎上來執行的數據,則適合將它分類為低優先級業務。如果采用稱為靜態調度的方法,也就是一種預定的仲裁機制,那么在網絡中在源和目的地之間可獲得高優先級業務的無競爭業務處理。在這種情況下,源和目的地之間的連接是在編譯時間而不是在運行時間建立的;建立這些連接是為了提供有保證的服務。
圖7說明了依據本發明在集成電路上的網絡內的路由器的結構。該結構消除了現有技術中的約束,該約束也就是,對于輸入端口102、104、106中的每個端口,每次只能使用隊列108a、108b、110a、110b、112a、112b中的一個。這是通過將隊列108a、108b、110a、110b、112a、112b中的每個直接耦合到交換器700來實現的。換句話說,可以省略復用器114、116、118。在這種方式中,該結構不會遭受輸入競爭。依據本發明的交換器700必須將上述情況變成可能,這顯示在圖8中。交換器700是6×3縱橫交換器,能夠從六條輸入線而不是三條輸入線(圖6實施例中的情況)接收數據。交換器700還包括三個復用器800、802、804。這些復用器800、802、804用于從六條輸入線接收輸入,其中每條輸入線與從隊列108a、108b、110a、110b、112a、112b中的一個來的數據相對應。因此,交換器700用于同時接收來自所有隊列108a、108b、110a、110b、112a、112b的輸入。
注意本發明的保護范圍不限于在這里描述的實施例。本發明的保護范圍也不受權利要求中參考符號的限制。單詞“包括”不排除權利要求所提到的那些部分以外的部分。元件前的單詞“一個”并不排除多個這樣的元件。構成本發明一部分的裝置既可以以專用硬件的形式也可以以可編程通用處理器的形式來實現。本發明體現在每個新的特點或者這些特點的綜合中。
權利要求
1.一種集成電路(IC),其包括一個網絡,所述網絡包括多個路由器(R1,R2直到并包括Rx),所述多個路由器中的至少一個包括多個輸入端口(102,104,106),所述輸入端口用于接收與至少兩個業務類別相對應的輸入數據(Input_1,Input_2,Input_3),所述路由器還包括多個隊列(108a,108b,110a,110b,112a,112b),所述隊列用于存儲與單個業務類別相對應的輸入數據,其中所述輸入端口耦合到所述隊列中的至少兩個,所述路由器還包括交換器(700),其特征在于,所述交換器(700)用于同時接收來自所述多個隊列(108a,108b,110a,110b,112a,112b)的數據。
2.如權利要求1所述的集成電路(IC),其中所述多個隊列中的第一選擇(108a,110a,112a)用于存儲與高優先級業務類別相對應的輸入數據,并且其中所述多個隊列中的第二選擇(108b,110b,112b)用于存儲與低優先級業務類別相對應的輸入數據。
3.如權利要求2所述的集成電路(IC),其中所述第一選擇(108a,110a,112a)用于在網絡中提供確保通信服務,并且其中所述第二選擇(108b,110b,112b)用于在網絡中提供盡力而為通信服務。
4.如權利要求1所述的集成電路(IC),還包括控制器(100),該控制器(100)耦合到輸入端口(102,104,106)并耦合到交換器(700),該控制器(100)包括多個仲裁器,其中所述業務類別中的至少一個的所述仲裁器執行預定調度。
5.如權利要求1所述的集成電路(IC),其中所述交換器包括多個復用器(800,802,804),每個復用器耦合到一個輸出端口,并且所述多個復用器中的每個用于接受存儲在所述隊列(108a,108b,110a,110b,112a,112b)中的輸入數據,作為輸入。
6.一種用于在集成電路(IC)中避免數據饑餓的方法,所述集成電路包括一個網絡,該網絡包括多個路由器(R1,R2直到并包括Rx),所述多個路由器中的至少一個包括多個輸入端口(102,104,106),所述輸入端口用于接收與至少兩個業務類別相對應的輸入數據(Input_1,Input_2,Input_3),所述路由器還包括多個隊列(108a,108b,110a,110b,112a,112b),其中所述隊列存儲與單個業務類別相對應的輸入數據,所述輸入端口耦合到所述隊列中的至少兩個,所述路由器還包括交換器(700),其特征在于,所述交換器(700)同時接收來自所述多個隊列(108a,108b,110a,110b,112a,112b)的輸入。
全文摘要
本發明提供一種能夠用在集成電路的網絡內的路由器。該路由器能夠處理屬于多個業務類別的輸入數據。該路由器還能保證在容許的業務內,所有輸入數據能以可接受的代價被充分處理和輸出。本發明基于以下理解競爭問題是由輸入競爭和輸出競爭這兩個具體問題組成。因為將路由器所包括的交換器設計成能同時為多個耦合到輸入端口的隊列服務,所以不再產生輸入競爭的問題。由于持續優先選擇高優先級業務而不選擇低優先級業務而導致的饑餓問題,通過允許在服務包含來自高優先級業務類別的數據的隊列的同時,也服務包含來自低優先級業務類別的數據的隊列而得到解決。
文檔編號H04L12/54GK1875584SQ200480032059
公開日2006年12月6日 申請日期2004年10月20日 優先權日2003年10月31日
發明者約翰努斯·T·M·H·德伊列森, 埃德溫·里吉皮科瑪 申請人:皇家飛利浦電子股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 南康市| 桐乡市| 建阳市| 陆河县| 盐山县| 瑞丽市| 拉萨市| 大姚县| 云南省| 柞水县| 通城县| 西青区| 略阳县| 海原县| 宁河县| 天水市| 库车县| 从江县| 工布江达县| 安仁县| 江西省| 晋宁县| 荆门市| 高青县| 忻州市| 凤庆县| 沾化县| 长兴县| 恭城| 师宗县| 淮安市| 新竹县| 罗源县| 屏东县| 安义县| 三原县| 奈曼旗| 伊金霍洛旗| 安化县| 浏阳市| 巢湖市|