專利名稱:加權(quán)隨機調(diào)度的制作方法
技術(shù)領域:
本發(fā)明尤其涉及通信和計算機系統(tǒng);更具體而言,本發(fā)明涉及尤其可應用到分組交換系統(tǒng)的加權(quán)隨機調(diào)度(weighted random scheduling)。
背景技術(shù):
通信工業(yè)正在快速變化以適應不斷涌現(xiàn)的技術(shù)和不斷增長的用戶需求。這種對新應用和現(xiàn)有應用的更高性能的用戶需求正在驅(qū)動通信網(wǎng)絡和系統(tǒng)提供商采用具有更快速度和更大容量(例如更大帶寬)的網(wǎng)絡和系統(tǒng)。在嘗試實現(xiàn)這些目標的過程中,很多通信提供商常用的方法是使用分組交換技術(shù)。越來越多的公共和私有通信網(wǎng)絡正被利用各種分組技術(shù)(例如因特網(wǎng)協(xié)議(IP))構(gòu)建和擴展。注意,本文檔中描述或引用的內(nèi)容除非明確指明,否則不被認為是本申請的現(xiàn)有技術(shù)。
諸如交換機或路由器之類的網(wǎng)絡設備通常接收、處理和轉(zhuǎn)發(fā)或丟棄分組。存在很多不同調(diào)度算法,這些算法在集中調(diào)度的輸入排隊型交換機(centrally scheduled,inputs queued switch)內(nèi)實現(xiàn)百分之百的吞吐量。輸入排隊型交換機通常將想去往不同目的地的分組存儲在單個隊列中,這會導致阻塞(blocking)狀況的發(fā)生。為了避免這種隊列頭部阻塞,很多網(wǎng)絡設備在每個輸入處具有多個虛擬輸出隊列(VoQ),其中一個或多個隊列對應于各個網(wǎng)絡設備的每個輸出。這種體系結(jié)構(gòu)需要對從這多個VoQ的分組發(fā)送進行調(diào)度(而不是在單個輸入隊列頭部選擇分組)?,F(xiàn)有系統(tǒng)使用基于最大權(quán)重匹配的調(diào)度算法和虛擬輸出隊列(VoQ)的組合。但是,這些調(diào)度算法的實際實現(xiàn)方式在高速硬件中實現(xiàn)起來非常復雜和昂貴,并且隨著線路速率的不斷增長變得問題越來越多。
例如,SLIP是一種用于對通過N×N交換機的分組發(fā)送進行調(diào)度的算法。在一種實現(xiàn)方式中,執(zhí)行以下三個步驟
1.每個不匹配的輸入向所有它對其具有已排隊的單元(cell)的輸出發(fā)送請求。
2.如果不匹配的輸出接收到任何請求,則選擇在從最高選擇優(yōu)先級元素開始的固定循環(huán)調(diào)度中接下來出現(xiàn)的那一個。輸出告知每個輸入其請求是否被準予(granted)。當且僅當在第一次迭代的步驟3中準予被接受時,到循環(huán)調(diào)度的最高選擇優(yōu)先級元素的指針被遞增(模N)到超出被準予的輸入一個位置。該指針在隨后的迭代中不再遞增。
3.如果輸入接收到準予,則它接受在從最高選擇優(yōu)先級元素開始的固定循環(huán)調(diào)度中接下來出現(xiàn)的那一個。到循環(huán)調(diào)度的最高選擇優(yōu)先級元素的指針被遞增(模N)到超出接受的輸出一個位置。
I-SLIP是這樣一種調(diào)度算法,其包括SLIP算法的多次迭代,用于確定針對每一輪發(fā)送分組(而不是僅針對一次SLIP迭代)對分組的調(diào)度。
每個輸出調(diào)度器利用旋轉(zhuǎn)選擇優(yōu)先級在有序的競爭請求的集合中進行判定。當請求輸入被準予并且該輸入接受該準予時,該輸入在下一單元時間中在該輸出處將具有最低選擇優(yōu)先級。而且,在輸出處無論哪個輸入具有最高選擇優(yōu)先級,都將在每個連續(xù)的時隙期間被持續(xù)準予,直到該輸入被服務為止。這確保了連接不會饑餓輸出處的最高選擇優(yōu)先級連接將在不超過N個單元時間中一直被輸入所接受。
移動指針不僅防止了饑餓,還往往使調(diào)度器失去同步。在前一時隙匹配的每個輸出將具有不同的最高選擇優(yōu)先級輸入。因此,它們將分別準予不同的輸入??紤]兩個輸入請求相同的兩個輸出的示例。最初,兩個輸出可以準予同一輸入;在此情況下,在第一迭代中只建立一個連接。
成功的輸出將遞增其指針,并且在下一單元時間中,輸出將不再競爭一個輸出將繼續(xù)進行到準予另一輸入,而另一輸出將準予與之前相同的輸入。這使得在下一單元時間的第一迭代中有更好的匹配。這是因為輸出調(diào)度器彼此已失去同步(或“滑動”)。這使得即使對于SLIP的單次迭代也能有更高性能。
由于指針的循環(huán)移動,該算法往往在競爭連接之間提供公平的帶寬分配并將減少突發(fā)。在所有輸入隊列都被占用的高負載情況下,這種突發(fā)減少最容易理解該算法將輪流訪問每個競爭連接,從而即使針對同一輸出的單元突發(fā)到達輸入,如果存在競爭流量,突發(fā)也將在時間上擴散。
在1996年3月19日授權(quán)的Nicholas W.McKeown的美國專利No.5,500,858“Method and Apparatus for Scheduling Cells in an Input-QueuedSwitch”中描述了一種示例實現(xiàn)方式,據(jù)此通過引用并入該專利。在2001年4月3日授權(quán)的Nicholas W.McKeown的美國專利No.6,212,182“Combined Unicast and Multicast Scheduling”中描述了另一種示例實現(xiàn)方式,據(jù)此通過引用并入該專利。
發(fā)明內(nèi)容
本發(fā)明公開了用于尤其可應用到分組交換系統(tǒng)的加權(quán)隨機調(diào)度的方法、裝置、數(shù)據(jù)結(jié)構(gòu)、計算機可讀介質(zhì)、機構(gòu)和手段等等。一個實施例針對交換機的每個輸入生成向交換機的輸出之一發(fā)送分組的請求,其方式是通過加權(quán)隨機地選擇所述輸出中該特定輸入要向其發(fā)送一個或多個分組的一個輸出。針對已對其生成一個或多個請求的每個不同輸出,準予請求之一。分組在與被準予的請求相對應的輸入和輸出之間發(fā)送。
在一個實施例中,由生成請求、準予請求之一和發(fā)送分組構(gòu)成的一輪在每個分組時間中至少被執(zhí)行兩次,其中所述分組時間對應于為在輸入處接收來自外部源的分組所分配的時間量。在一個實施例中,交換機被配置為在發(fā)送分組之前建立與被準予的請求相對應的交換機輸入和輸出之間的連接。在一個實施例中,準予請求之一的步驟包括針對已對其生成一個或多個請求的每個輸出,隨機選擇請求之一。一個實施例通過如下操作來執(zhí)行一輪或多輪生成請求的步驟加權(quán)隨機地在所有輸出或輸出的子集中進行選擇,并且在準予請求之一之后和在發(fā)送分組之前有選擇地準予與可用帶寬相對應的請求。
在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組的數(shù)目來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù)來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于與多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于由以下項目構(gòu)成的群組中的至少兩個項目來加權(quán)的(a)多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組的數(shù)目,(b)多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目,(c)多個輸入中的相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù),以及(d)與多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類。
所附權(quán)利要求具體闡述了本發(fā)明的特征。從以下結(jié)合附圖的詳細描述中可以最充分地理解本發(fā)明及其優(yōu)點,在附圖中圖1A-C和圖2A-B是無限多個使用分組的加權(quán)隨機調(diào)度的實施例中的一些的框圖;圖3是在一個實施例中用于執(zhí)行加權(quán)隨機調(diào)度的組件的框圖;圖4A是示出在一個實施例中執(zhí)行的請求和準予的生成的圖;圖4B是示出在一個實施例中執(zhí)行的請求和準予的生成的圖;圖5A是在一個實施例中用于執(zhí)行分組的加權(quán)隨機調(diào)度的過程的流程圖,該過程包括在交換機輸入處基于對未決分組的目的地的加權(quán)隨機選擇來確定請求;圖5B是在一個實施例中用于響應于接收到的請求確定準予的過程的流程圖;以及圖6是在一個實施例中用于執(zhí)行分組的加權(quán)隨機調(diào)度的過程的流程圖。
具體實施例方式
本發(fā)明公開了用于尤其可應用到分組交換系統(tǒng)的加權(quán)隨機調(diào)度的方法、裝置、數(shù)據(jù)結(jié)構(gòu)、計算機可讀介質(zhì)、機構(gòu)和手段等等。
這里描述的實施例包括各種元素和限制,其中沒有一種元素或限制被看作必不可少的元素或限制。每個權(quán)利要求單獨從整體上陳述本發(fā)明的一個方面。此外,這里描述的某些實施例可以包括(但不限于)系統(tǒng)、網(wǎng)絡、集成電路芯片、嵌入式處理器、ASIC、方法和包含指令的計算機可讀介質(zhì)等等。一個或多個系統(tǒng)、設備、組件等等可以包括一個或多個實施例,這些實施例可以包括由相同或不同系統(tǒng)、設備、組件等執(zhí)行的權(quán)利要求的某些元素或限制。下文中描述的實施例體現(xiàn)了本發(fā)明的范圍和精神內(nèi)的各個方面和配置,其中附圖示出了示例性而非限制性的配置。
這里使用的術(shù)語“分組”指的是所有類型的分組或任何其他信息或數(shù)據(jù)單元,包括(但不限于)固定長度的信元和可變長度的分組,它們中的每一個可能能夠被劃分成更小的分組或信元,也可能不能被劃分成更小的分組或信元。這里使用的術(shù)語“分組”還指分組本身或分組指示,例如(但不限于)分組或分組頭部的全部或部分、數(shù)據(jù)結(jié)構(gòu)值、指針或索引,或者分組或與其相關聯(lián)的信息的任何其他部分或直接或間接標識。例如,路由器通常對分組(尤其是頭部)的一個或多個字段進行操作,因此分組的主體通常被存儲在單獨的存儲器中,而分組頭部被操縱,并且基于對分組(即本示例中的分組頭部)的處理結(jié)果,整個分組被轉(zhuǎn)發(fā)或丟棄等等。另外,這些分組可以包含一種或多種類型的信息,包括(但不限于)語音、數(shù)據(jù)、視頻和音頻信息。術(shù)語“項目”在這里一般用來指分組或任何其他信息或數(shù)據(jù)單元或片斷、設備、組件、元件或任何其他實體。短語“處理分組”和“分組處理”通常指基于分組內(nèi)容(即分組頭部或其他字段)執(zhí)行某些步驟或動作,并且這些步驟或動作可以包括也可能不包括修改、存儲、丟棄和/或轉(zhuǎn)發(fā)分組和/或相關聯(lián)的數(shù)據(jù)。
術(shù)語“系統(tǒng)”在這里一般用來描述任何數(shù)目的組件、元件、子系統(tǒng)、設備、分組交換元件、分組交換機、路由器、網(wǎng)絡、計算機和/或通信設備或機構(gòu)或者它們的組件的組合。術(shù)語“計算機”在這里一般用來描述任何數(shù)目的計算機,包括(但不限于)個人計算機、嵌入式處理元件和系統(tǒng)、控制邏輯、ASIC、芯片、工作站、大型機等等。術(shù)語“處理元件”在這里一般用來描述任何類型的處理機構(gòu)或設備,例如處理器、現(xiàn)場可編程門陣列、計算機等等。術(shù)語“設備”在這里一般用來描述任何類型的機構(gòu),包括計算機或系統(tǒng)或其組件。術(shù)語“任務”和“過程”在這里一般用來描述任何類型的運行程序,包括(但不限于)計算機進程、任務、線程、執(zhí)行應用、操作系統(tǒng)、用戶進程、設備驅(qū)動器、原碼、機器或其他語言等等,并且可以是交互式的和/或非交互式的,在本地和/或遠程執(zhí)行,在前臺和/或后臺執(zhí)行,在用戶和/或操作系統(tǒng)地址空間中執(zhí)行,是庫和/或獨立應用的例程,并且并不局限于任何特定存儲器分區(qū)技術(shù)。附圖中示出的步驟、連接和信號與信息的處理(包括,但不限于,任何框圖和流程圖以及消息序列圖)通常可以按相同或不同的串行或并行順序執(zhí)行,和/或利用不同的組件和/或進程、線程等執(zhí)行,和/或在不同的連接上執(zhí)行和與其他實施例中的其他功能組合起來,除非這使實施例無法工作或者明示或暗示要求某種序列(例如,對于讀取值、處理值的序列,值必須在處理前先被獲得,但是某些相關聯(lián)的處理可能在讀取操作之前、同時和/或之后執(zhí)行)。此外,術(shù)語“識別”一般被用來描述用于直接或間接確認某物的任何方式或機構(gòu),這可以包括(但不限于)接收、從存儲器檢索、確定、限定、計算、生成等等。
此外,術(shù)語“網(wǎng)絡”和“通信機構(gòu)”在這里一般用來描述一種或多種網(wǎng)絡、通信介質(zhì)或通信系統(tǒng),包括(但不限于)因特網(wǎng)、私有或公共電話、蜂窩、無線、衛(wèi)星、線纜、局域、城域和/或廣域網(wǎng)絡、線纜、電子連接、總線等等以及諸如消息傳遞、進程間通信、共享存儲器等的內(nèi)部通信機構(gòu)。術(shù)語“消息”在這里一般被用來描述一條信息,該信息可以是也可以不是但通常是經(jīng)由任何類型的一個或多個通信機構(gòu)來傳輸?shù)摹?br>
術(shù)語“存儲機構(gòu)”包括任何類型的存儲器、存儲設備或用于以任何格式保存指令或數(shù)據(jù)的其他機構(gòu)?!坝嬎銠C可讀介質(zhì)”是可擴展的術(shù)語,包括任何存儲器、存儲設備、存儲機構(gòu)和其他存儲和信令機構(gòu),包括諸如網(wǎng)絡接口卡之類的接口和設備以及其中的緩沖器,以及任何通信設備和接收與發(fā)送的信號,以及計算機系統(tǒng)可以解釋、接收和/或發(fā)送的其他當前技術(shù)和正在開發(fā)的技術(shù)。術(shù)語“存儲器”包括任何隨機訪問存儲器(RAM)、只讀存儲器(ROM)、閃存、集成電路和/或其他存儲器組件或元件。術(shù)語“存儲設備”包括任何固態(tài)存儲介質(zhì)、盤驅(qū)動器、磁盤、聯(lián)網(wǎng)服務、磁帶驅(qū)動器和其他存儲設備。存儲器和存儲設備可以存儲將由處理元件和/或控制邏輯執(zhí)行的計算機可執(zhí)行的指令,以及由處理元件和/或控制邏輯操縱的數(shù)據(jù)。術(shù)語“數(shù)據(jù)結(jié)構(gòu)”是可擴展的術(shù)語,其指的是可應用到數(shù)據(jù)以幫助解釋數(shù)據(jù)或?qū)?shù)據(jù)執(zhí)行操作的任何數(shù)據(jù)元素、變量、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫和/或一個或多個組織方案,例如(但不限于)存儲單元或設備、集合、隊列、樹、堆棧、列表、鏈表、陣列、表、指針等等。數(shù)據(jù)結(jié)構(gòu)通常被保存在存儲機構(gòu)中。術(shù)語“指針”和“鏈接”一般用來標識某種用來引用或標識另一元素、組件或其他實體的機構(gòu),可以包括(但不限于)對存儲器或其他存儲機構(gòu)或其中的位置的引用、數(shù)據(jù)結(jié)構(gòu)中的索引、值等等。
術(shù)語“一個實施例”在這里用來指特定實施例,其中每次提到“一個實施例”可以指不同的實施例,并且在描述相關聯(lián)的特征、元素和/或限制時對該術(shù)語的重復使用并不建立每個和所有實施例都必須包括的相關聯(lián)的特征、元素和/或限制的累積集合,但是實施例通常可以包括所有這些特征、元素和/或限制。另外,短語“用于XXX的裝置”通常包括包含用于執(zhí)行XXX的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
另外,術(shù)語“第一”、“第二”等等通常被用來代表不同單元(例如第一元件、第二元件)。在這里使用這些術(shù)語不一定意味著某種順序,例如一個單元或事件在另一單元或事件之前發(fā)生或到來,而是提供了用于在特定單元之間進行區(qū)分的機制。另外,單數(shù)名詞的使用是非限制性的,其使用通常包括一個或多個特定事物而非僅有一個(例如,詞語“存儲器”的使用通常指一個或多個存儲器,而不一定要指定“一個存儲器或多個存儲器”、“一個或多個存儲器”或“至少一個存儲器”等等)。此外,短語“基于x”和“響應于x”被用來指示引發(fā)或?qū)е履呈碌捻椖縳的最小集合,其中“x”是可擴展的,不一定描述了對其執(zhí)行操作的項目的完整列表等等。另外,短語“耦合到”被用來指示兩個元件或設備之間某種級別上的直接或間接連接,其中耦合設備修改或不修改被耦合的信號或傳輸?shù)男畔?。術(shù)語“子集”被用來指示集合的全部或部分元素的群組。術(shù)語“子樹”被用來指示樹的全部或一部分。此外,術(shù)語“或”被用來表示選擇相關項目中的一個或多個(包括全部)。另外,術(shù)語“包括(comprising)”與“包括(including)”“包含(containing)”或“其特征是(characterized by)”同義,它可以是包含性的或開放性的,并且不排除附加的、未提到的元素或方法步驟。
本發(fā)明公開了用于尤其可應用到分組交換系統(tǒng)的加權(quán)隨機調(diào)度的方法、裝置、數(shù)據(jù)結(jié)構(gòu)、計算機可讀介質(zhì)、機構(gòu)和手段。一個實施例針對交換機的每個輸入生成向交換機的輸出之一發(fā)送分組的請求,其方式是通過加權(quán)隨機地選擇所述輸出中特定輸入要向其發(fā)送一個或多個分組的一個輸出。對于已對其生成一個或多個請求的每個不同輸出,請求之一被準予。分組在對應于被準予的請求的輸出和輸入之間發(fā)送。
在一個實施例中,由生成請求、準予請求之一和發(fā)送分組構(gòu)成的一輪在每個分組時間中至少被執(zhí)行兩次,其中所述分組時間對應于為在輸入處接收來自外部源的分組所分配的時間量。在一個實施例中,交換機被配置為在發(fā)送分組之前建立與被準予的請求相對應的交換機輸入和輸出之間的連接。在一個實施例中,準予請求之一的步驟包括針對已對其生成一個或多個請求的每個輸出,隨機選擇請求之一。一個實施例通過如下操作來執(zhí)行一輪或多輪生成請求的步驟加權(quán)隨機地在所有輸出或輸出的子集中進行選擇,并且在準予請求之一之后和在發(fā)送分組之前有選擇地準予與可用帶寬相對應的請求。
在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組的數(shù)目來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù)來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于與多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于由以下項目構(gòu)成的群組中的至少兩個項目來加權(quán)的(a)多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組的數(shù)目,(b)多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目,(c)多個輸入中的相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù),以及(d)與多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類。
一個實施例包括多個請求生成器和耦合到這些請求生成器的一個或多個準予仲裁器。每個請求生成器都被配置為針對其在交換機的多個輸入中的關聯(lián)輸入,加權(quán)隨機地生成請求,該請求包括對交換機的輸出之一的加權(quán)隨機選擇。一個或多個準予仲裁器被配置為準予接收自請求生成器的請求,以使得針對每個被請求的輸出有一個請求被準予。輸入被配置為發(fā)送與所述被準予的請求相對應的分組。
一個實施例包括這樣的控制,即將交換機配置為在與所述被準予的請求相對應的所述輸入和所述輸出之間建立連接。在一個實施例中,一個或多個準予仲裁器針對特定輸出,從對該特定輸出接收的所述請求中隨機地選擇請求來準予。在一個實施例中,輸入被配置為發(fā)送來自它們各自與被準予的請求相對應的虛擬輸出隊列的分組。一個實施例包括多個線路卡和包括交換機在內(nèi)的交換板。在一個實施例中,虛擬輸出隊列位于線路卡上。在一個實施例中,虛擬輸出隊列位于交換板上。
在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組或字節(jié)的數(shù)目來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于多個輸入中的相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù)來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于與多個輸入中的相應輸入要向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來加權(quán)的。在一個實施例中,加權(quán)隨機選擇是基于由以下項目構(gòu)成的群組中的至少兩個項目來加權(quán)的(a)相應輸入要向多個輸出中的每個輸出發(fā)送的分組的數(shù)目,(b)相應輸入要向多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目,(c)相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù),以及(d)與相應輸入要向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類。
一個實施例針對每個特定輸入,生成第一請求,包括加權(quán)隨機地選擇輸出之一。針對已對其生成了一個或多個所述第一請求的每個不同輸出,第一請求之一被準予。對于其第一請求未被準予的每個特定輸入,生成第二請求,這包括加權(quán)隨機地選擇輸出之一(可能局限于那些尚不具有先前準予的請求的輸出)。針對尚未被準予相應的第一請求并且已對其生成一個或多個所述第二請求的每個不同輸出,所述第二請求之一被準予。
在一個實施例中,加權(quán)隨機選擇是基于相應輸入要向多個輸出中的每個輸出發(fā)送的分組或字節(jié)的數(shù)目來加權(quán)的。在一個實施例中,分組在基于所述被準予的第一和第二請求的所述輸入和所述輸出之間發(fā)送。在一個實施例中,在每個分組時間中只執(zhí)行兩個請求階段,所述兩個請求階段由所述生成第一請求的步驟和所述生成第二請求的步驟構(gòu)成。在一個實施例中,針對每個特定輸出的所述第一請求和第二請求中要被準予的每個特定請求都是從針對所述特定輸出的所有相應的所述第一請求或所述第二請求中隨機選擇的。
一個實施例包括多個請求生成器和耦合到這些請求生成器的一個或多個準予仲裁器。每個請求生成器被配置為針對其在交換機輸入中的關聯(lián)輸入,加權(quán)隨機地生成第一輪請求并按需要加權(quán)隨機地生成第二輪請求,其中第一輪請求包括對輸出之一的第一加權(quán)隨機選擇,第二輪請求包括在第一輪請求未被準予的情況下對輸出之一的第二加權(quán)隨機選擇。準予仲裁器被配置為準予接收自請求生成器的請求,以使得針對第一輪請求中每個被請求的輸出有一個請求被準予,并且如果針對第一輪請求中的請求沒有生成對所述被請求的輸出的準予,則針對第二輪請求中每個被請求的輸出有一個請求被準予。
在一個實施例中,一個或多個準予仲裁器針對一個輸出,從對該輸出接收的請求集合中隨機地選擇請求來準予。在一個實施例中,加權(quán)隨機生成是基于相應輸入要向多個輸出中的每個輸出發(fā)送的分組或字節(jié)的數(shù)目來加權(quán)的。
一個實施例針對每個交換機輸入,隨機地挑選出候選虛擬輸出隊列之一/目的地,其中隨機選擇是根據(jù)該輸入的每個隊列的長度來加權(quán)的。隨后,調(diào)度請求被發(fā)送到所選目的地。每個目的地在獲得了來自所有候選輸入的請求之后,向隨機選出的輸入發(fā)回準予。獲得從目的地發(fā)回的準予的輸入將在相應的分組時間中發(fā)送相應的分組。兩級隨機選擇過程代表加權(quán)隨機選擇過程的單個階段。第二階段是針對那些尚未接收到準予的交換機輸入和針對那些在第一階段中沒有對其生成準予的目的地(即在第一階段中沒有生成請求)執(zhí)行的。以此方式,所招致的調(diào)度開銷量最小,并且當在為通過交換機發(fā)送一個或多個分組所分配的時間中執(zhí)行了這兩個調(diào)度階段時,所需流量吞吐量被接收。一個實施例在為通過交換機發(fā)送一個或多個分組所分配的時間中執(zhí)行多于兩個調(diào)度階段。
圖1A-C和2A-B是使用分組的加權(quán)隨機調(diào)度的無限多個實施例中的一些的框圖。首先參考圖1A,其示出系統(tǒng)100,該系統(tǒng)包括交換機構(gòu)(例如物理交換單元、交換架構(gòu)、縱橫式交換機(crossbar)、總線或任何其他用于交換分組的機構(gòu)等等)102、具有調(diào)度器和存儲器的控制器101和多個線路卡103-104。系統(tǒng)100利用加權(quán)隨機調(diào)度來調(diào)度在線路卡103-104之間發(fā)送的分組。注意,加權(quán)隨機調(diào)度可以與阻塞或非阻塞交換機聯(lián)合使用。
圖1B示出使用分組的加權(quán)隨機調(diào)度的系統(tǒng)110。在該示例性實施例中,線路卡111-112各自包含虛擬輸出隊列,并且交換板120包括具有調(diào)度器和存儲器的控制器121、多個緩沖器122-123和交換機構(gòu)125。線路卡111-112基于加權(quán)隨機選擇生成調(diào)度請求。分組隨后根據(jù)已確定的加權(quán)隨機調(diào)度被發(fā)送到輸入緩沖器122-123,其中所應用的特定權(quán)重通?;谔摂M輸出隊列的占用率(occupancy)和/或分組特性(例如分組或字節(jié)數(shù)目、分組年齡、服務質(zhì)量等等)。注意,在一個實施例中,輸入緩沖器122-123可以各自存儲多個分組,因此當針對隨后的分組時間執(zhí)行調(diào)度時,先前被加權(quán)隨機調(diào)度的分組可以被排隊。具有調(diào)度器和存儲器的控制器121通?;诮邮盏恼{(diào)度請求生成準予,并且控制交換機構(gòu)125的配置以允許通過其發(fā)送被調(diào)度的分組。
圖1C示出使用分組的加權(quán)隨機調(diào)度的系統(tǒng)140。在該示例性實施例中,線路卡141-142與交換板150傳輸分組,并且交換板150包括具有調(diào)度器和存儲器的控制器151、虛擬輸出隊列152-153和交換機構(gòu)155。在此實施例中,分組的加權(quán)隨機調(diào)度由具有調(diào)度器和存儲器的控制器151執(zhí)行,其中所應用的特定權(quán)重通?;谔摂M輸出隊列152-153的占用率和/或分組特性(例如分組或字節(jié)數(shù)目、分組年齡、服務質(zhì)量等等)。隨后利用交換機構(gòu)155的配置,根據(jù)已確定的加權(quán)隨機調(diào)度將分組從虛擬輸出隊列152-153發(fā)送。
圖2A示出使用分組的加權(quán)隨機調(diào)度的系統(tǒng)200。分組201被接收并放在分組隊列202中。隊列占用率211被傳輸?shù)矫總€交換機輸入的加權(quán)隨機請求生成器210(這里也稱之為交換機輸入),該交換機輸入還與(一個或多個)準予生成器220(例如一個準予生成器、每個目的地的一個準予生成器,等等)通信。準予生成器220基于生成的準予217將已確定的交換機配置221傳輸?shù)浇粨Q機構(gòu)225,并且加權(quán)隨機請求生成器210向分組隊列202提供發(fā)送指令,以發(fā)送與經(jīng)加權(quán)隨機調(diào)度的分組相對應的分組。分組203通過據(jù)此配置的交換機構(gòu)204從分組隊列202發(fā)送出,以產(chǎn)生經(jīng)交換的分組205。
圖2B示出使用分組的加權(quán)隨機調(diào)度的系統(tǒng)230。分組231被接收并放在分組隊列232中。隊列占用率241被傳輸?shù)矫總€交換機構(gòu)輸入的加權(quán)隨機請求生成器210。加權(quán)隨機請求和準予生成器250使用一個或多個過程和/或定制的控制邏輯來執(zhí)行分組的加權(quán)隨機調(diào)度,并通知分組隊列232發(fā)送分組(243)以及通知交換機構(gòu)234相應的交換機配置251。分組213通過據(jù)此配置的交換機構(gòu)234從分組隊列232發(fā)送出,以產(chǎn)生經(jīng)交換的分組235。
圖3是在一個實施例中用于執(zhí)行加權(quán)隨機調(diào)度(例如用于生成加權(quán)隨機請求和/或準予)的組件300的框圖。在一個實施例中,組件300執(zhí)行與這里示出或以其他方式描述的流程圖之一相對應的一個或多個過程。
在一個實施例中,系統(tǒng)或組件300包括處理元件301、存儲器302、存儲設備303和用于發(fā)送與接收分組、項目和/或其他信息(例如隊列占用率、發(fā)送分組的指令、對以通信方式耦合的交換機的交換機配置等等)的接口304,這些元件通常經(jīng)由一個或多個通信機構(gòu)309(例如被示為總線)耦合。在一個實施例中,存儲器302和/或存儲設備303被用來存儲被執(zhí)行分組的加權(quán)隨機調(diào)度的分組。
組件300的各個實施例可以包括更多或更少的元件。組件300的操作通常由處理元件301使用存儲器302和存儲設備303來控制,以執(zhí)行一個或多個任務或過程。存儲器302是一種計算機可讀介質(zhì),通常包括隨機訪問存儲器(RAM)、只讀存儲器(ROM)、閃存、集成電路和/或其他存儲器組件。存儲器302通常存儲將被處理元件301執(zhí)行的計算機可執(zhí)行的指令和/或由處理元件301操縱用來實現(xiàn)根據(jù)實施例的功能的數(shù)據(jù)。存儲設備303是另一類計算機可讀介質(zhì),通常包括固態(tài)存儲介質(zhì)、盤驅(qū)動器、磁盤、聯(lián)網(wǎng)服務、磁帶驅(qū)動器和其他存儲設備。存儲設備303通常存儲將被處理元件301執(zhí)行的計算機可執(zhí)行的指令和/或由處理元件301操縱用來實現(xiàn)根據(jù)實施例的功能的數(shù)據(jù)。
圖4A是示出一個實施例中使用的請求和準予的生成的圖。加權(quán)隨機請求生成器400針對每個交換機輸入確定一個請求,如處理411所指示的。該選擇是基于虛擬輸出隊列的占用率和/或分組特性(例如分組或字節(jié)數(shù)目、分組年齡、服務質(zhì)量,即優(yōu)先級更高的流量被給予更大的權(quán)重)等等)來加權(quán)的。
例如,假設存在四個交換機輸出,在一個輸入處有八個分組被排隊,其中一個分組被排隊用于第一輸出,兩個分組被排隊用于第二輸出,一個分組被排隊用于第三輸出,四個分組被排隊用于第四輸出。一個實施例使用被排隊的分組數(shù)目的直接加權(quán)比例,而一個實施例基于虛擬輸出隊列的占用率使用不同的比例計算。在此示例中,一個實施例使用權(quán)重1/8發(fā)送來自與交換機輸出/目的地1相對應的隊列的分組;使用權(quán)重1/4發(fā)送來自與交換機輸出/目的地2相對應的隊列的分組;使用權(quán)重1/2發(fā)送來自與交換機輸出/目的地3相對應的隊列的分組;并且使用權(quán)重1/8發(fā)送來自與交換機輸出/目的地4相對應的隊列的分組。然后,按如下方式生成隨機數(shù)(即真隨機數(shù)、偽隨機數(shù)或任何近似隨機值)相應的目的地4被選擇的可能性是目的地1或3的四倍,是目的地2的兩倍。存在很多用于確定這種加權(quán)選擇的技術(shù)。例如,一個實施例將每個目的地的百分比映射到0和1之間的累積分數(shù)值,并0和1之間的隨機值被生成。在此示例中,目的地1對應于0.00到0.125,目的地2對應于0.126到0.375,目的地3對應于0.376到0.500,而目的地4對應于0.501到1.000。
返回圖4A,針對每個交換機輸入的已確定的加權(quán)隨機請求412被傳輸?shù)綔视枭善?02,準予生成器402針對已對其發(fā)出請求的每個目的地,隨機地或以其他方式選擇請求之一(如處理413所示)。這些準予414被傳輸?shù)郊訖?quán)隨機請求生成器400(或在一個實施例中,被傳輸?shù)接糜诎l(fā)送分組的控制器和/或用于配置交換機的控制器)。分組根據(jù)準予被發(fā)送,如標號431所示。在一個實施例中,通常對于每個準予發(fā)送一個分組,因為這是一次能從交換機的一個輸入向一個輸出發(fā)送的最大數(shù)目。但是,在一個實施例中,一次可以從輸入發(fā)送多個分組和/或由輸出接收多個分組,因此針對一個輸入生成的請求的數(shù)目和針對一個輸出生成的準予的數(shù)目也相應地被調(diào)整。
圖4B類似于圖4A,但其中添加了在一個實施例中用于在發(fā)送與生成的準予相對應的分組之前執(zhí)行多輪請求/準予的過程。加權(quán)隨機請求生成器400針對每個交換機輸入確定一個請求,如處理411所指示的。該選擇是基于虛擬輸出隊列的占用率和/或分組特性(例如分組或字節(jié)數(shù)目、分組年齡、服務質(zhì)量,即優(yōu)先級更高的流量被給予更大的權(quán)重,等等)來加權(quán)的。針對每個交換機輸入的已確定的加權(quán)隨機請求412被傳輸?shù)綔视枭善?02,準予生成器402針對已對其發(fā)出請求的每個目的地,隨機地或以其他方式選擇請求之一(如處理413所示)。這些準予414被傳輸?shù)郊訖?quán)隨機請求生成器400。
沒接收到準予的每個請求生成器隨后執(zhí)行附加請求階段,包括基于基于虛擬輸出隊列的占用率和/或其隊列中的分組的特性的加權(quán)隨機選擇來確定其請求(415)。在一個實施例中,附加請求可能在接收到準予414之前就已被確定。在一個實施例中,所有目的地在附加階段中保持對請求可用。在一個實施例中,準予414包括對準予的目的地的指示,因此在第二階段期間識別請求針對的目的地時,這些目的地可以從競爭中排除。在一個實施例中,附加階段請求確定將在前一階段中請求的目的地排除在附加階段中的加權(quán)隨機選擇之外(因為它已被準予給不同的請求者并且在附加階段期間不可用)。在一個實施例中,在分組時間中可以從輸入發(fā)送多于一個分組和/或可以由輸出接收多于一個分組,因此請求和/或準予的數(shù)目也相應地增大。
針對在分組時間中可以發(fā)送多個分組的交換機輸入(例如它們前一階段的請求沒有被準予)的加權(quán)隨機請求416被傳輸?shù)綔视枭善?02,準予生成器402隨后針對在分組時間中可以接受附加分組的目的地(例如在一個實施例中是在前一階段期間沒有接收/準予請求的那些目的地)隨機地或以其他方式在接收的請求416中進行選擇(417)。隨后,附加階段準予418被傳輸?shù)郊訖?quán)隨機請求生成器400(或在一個實施例中,傳輸?shù)接糜诎l(fā)送分組的控制器和/或用于配置交換機的控制器)。分組根據(jù)準予被發(fā)送,如標號441所示。不同實施例中請求/準予階段的輪數(shù)可以不同,包括可以包括一輪、兩輪或甚至多于兩輪。
圖5A是一個實施例中用于通過針對特定交換機輸入的請求生成器來執(zhí)行分組的加權(quán)隨機調(diào)度的過程的流程圖。處理開始于過程塊500,并前進至過程塊502,其中通過基于加權(quán)隨機選擇識別可能目的地之一(即識別目的地/交換機輸出、虛擬輸出隊列或其他相應值)來生成請求,其中所述加權(quán)隨機選擇是基于虛擬輸出隊列的分組占用率和/或分組特性(例如分組或字節(jié)數(shù)目、分組年齡、服務質(zhì)量,即優(yōu)先級更高的流量被給予更大的權(quán)重,等等)作出的。按照過程塊504中所確定的,如果請求被準予,則在過程塊506中,分組被從對應于目的地的虛擬輸出隊列發(fā)送到目的地。如過程塊508所指示的,處理完成。
圖5B是在一個實施例中用于從接收的請求確定準予的過程的流程圖。處理開始于過程塊520并前進至過程塊522,其中針對每個特定目的地接收零個或多個請求,并且針對每個特定目的地,隨機地或以其他方式選擇這些請求之一,并且將相應的準予傳輸?shù)秸埱笳?。在過程塊524中,如果需要,交換機被基于準予的請求而配置,從而使分組可被發(fā)送(例如在圖5A的過程塊506中)。如過程塊526所指示的,處理完成。
圖6是在一個實施例中用于在分組時間中執(zhí)行分組的加權(quán)隨機調(diào)度的過程的流程圖,其中分組時間對應于為在交換機的輸入處從外部源接收一個分組所分配的時間量。處理開始于過程塊600并前進至過程塊602,其中基于加權(quán)隨機選擇來針對具有要發(fā)送的一個或多個分組的每個交換機輸入生成請求。在過程塊604中,針對每個被請求的目的地的請求之一被隨機地或以其他方式準予。在過程塊606中,如果需要,交換機被配置以適應準予的請求,并且分組被從相應輸入發(fā)送到相應輸出。按照過程塊608中所確定的,如果在該分組時間中還有更多輪的請求/準予/發(fā)送分組要執(zhí)行,處理則返回過程塊602。否則,如過程塊610所指示的,處理完成。
鑒于本發(fā)明的原理可應用到很多可能的實施例,將意識到,這里針對附圖/圖示描述的實施例及其多個方面僅僅是示例性的,而不應被理解為對本發(fā)明范圍的限制。例如,本領域技術(shù)人員將發(fā)現(xiàn),很多過程塊操作可被重新排序,以在其他操作之前、之后執(zhí)行或與其他操作基本同時執(zhí)行。而且,很多不同形式的數(shù)據(jù)結(jié)構(gòu)可被用在各個實施例中。這里描述的發(fā)明設想可以落入所附權(quán)利要求及其等同物的范圍內(nèi)的所有這樣的實施例。
權(quán)利要求
1.一種方法,包括針對交換機的多個輸入中的每個輸入生成從所述輸入向所述交換機的多個輸出中的一個輸出發(fā)送分組的請求,所述生成請求的步驟包括加權(quán)隨機地選擇所述交換機的多個輸出中所述輸入要向其發(fā)送分組的一個輸出;針對所述多個輸出中已對其生成了一個或多個所述請求的每個不同輸出,準予所述請求之一;以及在與所述被準予的請求相對應的所述輸入和所述輸出之間發(fā)送分組。
2.如權(quán)利要求1所述的方法,其中由所述生成請求的步驟、所述準予所述請求之一的步驟和所述發(fā)送分組的步驟構(gòu)成的一輪在每個分組時間中至少被執(zhí)行兩次,所述分組時間對應于為在所述交換機的輸入處從外部源接收分組所分配的時間量。
3.如權(quán)利要求2所述的方法,包括將所述交換機配置為在所述發(fā)送分組的步驟之前,在與所述被準予的請求相對應的所述輸入和所述輸出之間建立連接。
4.如權(quán)利要求1所述的方法,其中所述準予所述請求之一的步驟包括針對所述多個輸出中已對其生成一個或多個所述請求的每個輸出,隨機地選擇所述請求之一。
5.如權(quán)利要求1所述的方法,其中所述加權(quán)隨機選擇是基于所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組的數(shù)目來加權(quán)的。
6.如權(quán)利要求1所述的方法,其中所述加權(quán)隨機選擇是基于所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目來加權(quán)的。
7.如權(quán)利要求1所述的方法,其中所述加權(quán)隨機選擇是基于過去從所述多個輸入中的相應輸入向所述多個輸出中的每個輸出發(fā)送分組的次數(shù)來加權(quán)的。
8.如權(quán)利要求1所述的方法,其中所述加權(quán)隨機選擇是基于與所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來加權(quán)的。
9.如權(quán)利要求1所述的方法,其中所述加權(quán)隨機選擇是基于由以下項目構(gòu)成的群組中的至少兩個項目來加權(quán)的(a)所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組的數(shù)目,(b)所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目,(c)過去從所述多個輸入中的相應輸入向所述多個輸出中的每個輸出發(fā)送分組的次數(shù),以及(d)與所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類。
10.如權(quán)利要求1所述的方法,包括一輪或多輪如下步驟通過加權(quán)隨機地在所述多個輸出的全部或子集之間進行選擇來生成請求,并且在所述針對每個輸入生成請求的步驟和所述準予所述請求之一的步驟之后并在所述發(fā)送分組的步驟之前,有選擇地準予與可用帶寬相對應的所述請求。
11.一種裝置,包括多個請求生成器;耦合到所述多個請求生成器的一個或多個準予仲裁器;其中所述多個請求生成器中的每一個被配置為針對其在交換機的多個輸入中的關聯(lián)輸入,加權(quán)隨機地生成請求,該請求包括對所述交換機的多個輸出之一的加權(quán)隨機選擇;其中所述一個或多個準予仲裁器被配置為準予接收自所述多個請求生成器的請求,以使得針對每個被請求的輸出有一個請求被準予;以及其中所述多個輸入被配置為發(fā)送與所述被準予的請求相對應的分組。
12.如權(quán)利要求11所述的裝置,包括用于將所述交換機配置為在與所述被準予的請求相對應的所述輸入和所述輸出之間建立連接的控制器。
13.如權(quán)利要求11所述的裝置,其中所述一個或多個準予仲裁器針對特定輸出,從所述針對該特定輸出接收的所述請求中隨機地選擇請求來準。
14.如權(quán)利要求11所述的裝置,其中所述加權(quán)隨機選擇是基于所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組的數(shù)目來加權(quán)的。
15.如權(quán)利要求11所述的裝置,其中所述加權(quán)隨機選擇是基于所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目來加權(quán)的。
16.如權(quán)利要求11所述的裝置,其中所述加權(quán)隨機選擇是基于過去從所述多個輸入中的相應輸入向所述多個輸出中的每個輸出發(fā)送分組的次數(shù)來加權(quán)的。
17.如權(quán)利要求11所述的裝置,其中所述加權(quán)隨機選擇是基于與所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來加權(quán)的。
18.如權(quán)利要求11所述的裝置,其中所述加權(quán)隨機選擇是基于由以下項目構(gòu)成的群組中的至少兩個項目來加權(quán)的(a)所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組的數(shù)目,(b)所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的字節(jié)的數(shù)目,(c)過去從所述多個輸入中的相應輸入向所述多個輸出中的每個輸出發(fā)送分組的次數(shù),以及(d)與所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類。
19.如述權(quán)利要求11所的裝置,其中所述多個輸入被配置為從它們各自對應于所述被準予的請求的虛擬輸出隊列發(fā)送分組。
20.如述權(quán)利要求19所的裝置,其中所述裝置包括多個線路卡和包括所述交換機在內(nèi)的交換板,并且其中所述虛擬輸出隊列位于所述線路卡上。
21.如述權(quán)利要求19所的裝置,其中所述裝置包括多個線路卡和包括所述交換機在內(nèi)的交換板,并且其中所述虛擬輸出隊列位于所述交換板上。
22.一種裝置,包括用于生成從交換機的輸入向所述交換機的輸出發(fā)送分組的請求的裝置,所述用于生成所述請求的裝置包括用于針對所述輸入中具有要發(fā)送的分組的每個輸入,加權(quán)隨機地選擇所述交換機的多個輸出中所述輸入要向其發(fā)送分組的一個輸出的裝置;用于針對所述多個輸出中已對其生成了一個或多個所述請求的每個不同輸出,準予所述請求之一的裝置;以及用于在與所述被準予的請求相對應的所述輸入和所述輸出之間發(fā)送分組的裝置。
23.如權(quán)利要求22所述的裝置,包括用于將所述交換機配置為在所述發(fā)送分組的步驟之前,在與所述被準予的請求相對應的所述輸入和所述輸出之間建立連接的裝置。
24.如權(quán)利要求22所述的裝置,其中所述用于加權(quán)隨機地進行選擇的裝置包括用于基于相應輸入要發(fā)送到所述輸出中的每個輸出的分組的數(shù)目來確定權(quán)重的裝置。
25.如權(quán)利要求22所述的裝置,其中所述用于加權(quán)隨機地進行選擇的裝置包括用于基于過去從所述多個輸入中的相應輸入向所述多個輸出中的每個輸出發(fā)送分組的次數(shù)來確定權(quán)重的裝置。
26.如權(quán)利要求22所述的裝置,其中所述用于加權(quán)隨機地進行選擇的裝置包括用于基于與所述多個輸入中的相應輸入要向所述多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來確定權(quán)重的裝置。
27.一種用于調(diào)度分組的方法,該方法包括針對多個輸入中的每個特定輸入生成第一請求,包括加權(quán)隨機地選擇多個輸出之一;針對所述多個輸出中已對其生成了一個或多個所述第一請求的每個不同輸出,準予所述多個輸出的所述第一請求之一;針對所述多個輸入中其第一請求未被準予的每個特定輸入生成第二請求,包括加權(quán)隨機地選擇所述多個輸出之一;以及針對所述多個輸出中尚未被準予相應的第一請求并且已對其生成了一個或多個所述第二請求的每個不同輸出,準予所述多個輸出的所述第二請求之一。
28.如權(quán)利要求27所述的方法,其中所述加權(quán)隨機選擇是基于相應輸入要發(fā)送到所述多個輸出中的每個輸出的分組或字節(jié)的數(shù)目來加權(quán)的。
29.如權(quán)利要求27所述的方法,其中分組在基于所述被準予的第一和第二請求的所述輸入和所述輸出之間發(fā)送。
30.如權(quán)利要求27所述的方法,其中在每個分組時間中只執(zhí)行兩個請求階段,所述兩個請求階段由所述生成所述第一請求的步驟和所述生成所述第二請求的步驟構(gòu)成,所述分組時間對應于為在輸入處接收來自外部源的分組所分配的時間量。
31.如權(quán)利要求27所述的方法,其中針對每個特定輸出的所述第一請求和所述第二請求中要被準予的每個特定請求是從針對所述特定輸出的相應的所述第一請求或所述第二請求中隨機選擇的。
32.一種裝置,包括多個請求生成器;耦合到所述多個請求生成器的一個或多個準予仲裁器;其中所述多個請求生成器中的每一個被配置為針對其在交換機的多個輸入中的關聯(lián)輸入,加權(quán)隨機地生成第一輪請求,并按需要加權(quán)隨機地生成第二輪請求,所述第一輪請求包括對多個輸出之一的第一加權(quán)隨機選擇,而所述第二輪請求包括在所述第一輪請求未被準予的情況下,對所述輸出之一的第二加權(quán)隨機選擇;以及其中所述一個或多個準予仲裁器被配置為準予接收自所述多個請求生成器的請求,以使得針對第一輪的請求中的每個被請求的輸出有一個請求被準予,并且如果針對第一輪的請求中的請求沒有生成對所述被請求的輸出的準予,則針對第二輪的請求中的每個被請求的輸出有一個請求被準予。
33.如權(quán)利要求32所述的裝置,其中所述一個或多個準予仲裁器針對一個輸出,從針對該輸出接收的請求集合中隨機地選擇請求來準予。
34.如權(quán)利要求32所述的裝置,其中所述加權(quán)隨機生成是基于相應輸入將發(fā)送到所述多個輸出中的每個輸出的分組或字節(jié)的數(shù)目來加權(quán)的。
全文摘要
加權(quán)隨機調(diào)度被執(zhí)行,其尤其可以應用到分組交換系統(tǒng)。針對多個交換機輸入中的每個特定輸入,通過隨機選擇該特定輸入要向其發(fā)送一個或多個分組的輸出之一來生成向交換機的輸出之一發(fā)送分組的請求。針對已對其生成一個或多個請求的每個不同輸出,準予請求之一。分組在與被準予的請求相對應的輸入和輸出之間發(fā)送。加權(quán)隨機選擇通常是基于多個輸入中的相應輸入向多個輸出中的每個輸出發(fā)送的分組或字節(jié)的數(shù)目、多個輸入中的相應輸入過去向多個輸出中的每個輸出發(fā)送分組的次數(shù),和/或與多個輸入中的相應輸入向多個輸出中的每個輸出發(fā)送的分組相關聯(lián)的服務類來加權(quán)的。
文檔編號H04L12/56GK1938992SQ200580010422
公開日2007年3月28日 申請日期2005年3月2日 優(yōu)先權(quán)日2004年4月12日
發(fā)明者瑞娜·帕尼格拉海, 艾瓦斯·賓·內(nèi)馬特 申請人:思科技術(shù)公司