專利名稱:合格優(yōu)先權(quán)隊(duì)列調(diào)度器的制作方法
數(shù)據(jù)通信交換機(jī)在多個輸入上接收分組并且在多個輸出上發(fā)送分組。有時,分組來自兩個或更多指向相同輸出的輸入。為了最小化這樣的分組之間的沖突,使用排隊(duì)機(jī)制。隊(duì)列臨時存儲某些分組,而其它分組則使用向一個輸出傳送排隊(duì)分組所必需的帶寬。
通常由一個調(diào)度器協(xié)調(diào)競爭輸出帶寬的隊(duì)列分組釋放。許多調(diào)度器傾向使用嚴(yán)格的優(yōu)先權(quán)調(diào)度規(guī)則,也就是說,隊(duì)列被分配不同的優(yōu)先權(quán)等級并且允許具有相對較高優(yōu)先權(quán)等級的隊(duì)列在具有相對較低優(yōu)先權(quán)等級的隊(duì)列之前釋放分組。嚴(yán)格的優(yōu)先權(quán)調(diào)度允許時間要求相對嚴(yán)格的數(shù)據(jù)流動優(yōu)先于時間要求相對不嚴(yán)格的數(shù)據(jù)流動。
盡管有普遍效力,但嚴(yán)格的優(yōu)先權(quán)調(diào)度并非沒有問題。一種不期望的效應(yīng)是優(yōu)先權(quán)阻塞。當(dāng)從相對較低優(yōu)先權(quán)隊(duì)列提交分組因較高優(yōu)先級隊(duì)列的服務(wù)被延遲時,優(yōu)先權(quán)阻塞就發(fā)生了。在等候釋放時優(yōu)先權(quán)阻塞最終可以導(dǎo)致阻塞隊(duì)列中的分組被改寫,這種情況被稱為丟棄。丟棄不期望地干擾了被丟棄分組所涉及的數(shù)據(jù)流。
盡管在設(shè)計時假定優(yōu)先權(quán)調(diào)度為某些隊(duì)列提供更快的服務(wù),但在某些情況下違背嚴(yán)格優(yōu)先權(quán)規(guī)則可以是允許的。例如,“填充”單獨(dú)一個具有接收非關(guān)鍵或冗余(例如,在一個未分解擴(kuò)散樹環(huán)路的情況下)業(yè)務(wù)的優(yōu)先權(quán)等級的隊(duì)列就會產(chǎn)生優(yōu)先權(quán)阻塞。嚴(yán)格堅(jiān)持優(yōu)先權(quán)調(diào)度會使這種“填充”實(shí)際上鎖住所有輸出帶寬,受損害的是低優(yōu)先權(quán)隊(duì)列。
相應(yīng)地,需要一種合格,通過在通用優(yōu)先權(quán)劃分策略上強(qiáng)加合理的限制來減少阻塞的優(yōu)先權(quán)調(diào)度方法。還需要有效的調(diào)度硬件來實(shí)現(xiàn)合格優(yōu)先權(quán)調(diào)度。
本發(fā)明提供了用于一個數(shù)據(jù)排隊(duì)結(jié)構(gòu)的一個合格優(yōu)先權(quán)調(diào)度方法和裝置,其中包含多組競爭一個輸出的帶寬的隊(duì)列。每個隊(duì)列組具有至少一個隊(duì)列并且被關(guān)聯(lián)一個不同的優(yōu)先權(quán)等級。并且,至少一個隊(duì)列組內(nèi)的至少一個隊(duì)列是一個帶寬限制隊(duì)列,即具有一個不能超過的帶寬約束。
根據(jù)隊(duì)列調(diào)度方法,選擇與當(dāng)前優(yōu)先權(quán)等級關(guān)聯(lián)的隊(duì)列組中的一個(i)有數(shù)據(jù)要輸出隊(duì)列(ii)具有可用帶寬,即沒有違背其帶寬約束的隊(duì)列向輸出釋放數(shù)據(jù)。如果有多個這樣的隊(duì)列,則使用循環(huán)排序確定在多個隊(duì)列中選擇哪個隊(duì)列。開始時把當(dāng)前優(yōu)先權(quán)等級設(shè)置到最高優(yōu)先權(quán)等級上,并且遞減當(dāng)前優(yōu)先權(quán)等級直到選擇了一個隊(duì)列或已經(jīng)檢查了所有的優(yōu)先權(quán)等級,不管首先發(fā)生什么情況。隊(duì)列可以限制或不限制帶寬。無限制帶寬隊(duì)列總具有可用的帶寬,而限制帶寬隊(duì)列只在其有信用的情況下才會有可用帶寬。周期性地為限制帶寬隊(duì)列分配信用并且根據(jù)釋放數(shù)據(jù)的長度減少信用。根據(jù)信用來釋放數(shù)據(jù)。
根據(jù)隊(duì)列調(diào)度裝置,一個選擇器根據(jù)一個關(guān)于多個隊(duì)列狀態(tài)變量的函數(shù)從多個隊(duì)列中選擇一個隊(duì)列,并且發(fā)送隊(duì)列選擇信息。選擇器最好包含多個表示涉及不同隊(duì)列的一個隊(duì)列狀態(tài)變量的狀態(tài)的位屏蔽碼,其中通過一個位與操作混合位屏蔽碼以確定可以選擇哪些隊(duì)列向輸出釋放數(shù)據(jù)。選擇器最好還包含一個仲裁器,用于接收確定結(jié)果,從可選擇隊(duì)列中選擇一個單隊(duì)列循環(huán),并且向一個從選定隊(duì)列釋放數(shù)據(jù)的驅(qū)動器發(fā)送循環(huán)選擇的結(jié)果。
參照結(jié)合附圖所進(jìn)行的下列詳細(xì)描述可以更加理解本發(fā)明的這些和其它方面。
圖1是一個具有調(diào)度特征的示例性共享輸出排隊(duì)結(jié)構(gòu)的策略級圖例;圖2是一個用于共享輸出排隊(duì)結(jié)構(gòu)和相關(guān)排隊(duì)結(jié)構(gòu)的最優(yōu)調(diào)度裝置的模塊圖;圖3是圖2的多級選擇器的模塊圖;圖4是圖2的循環(huán)仲裁器的模塊圖;圖5是圖2的統(tǒng)計的模塊圖;圖6是優(yōu)先權(quán)帶寬隊(duì)列選擇步驟的流程圖7是限制循環(huán)仲裁的隊(duì)列選擇步驟的流程圖;圖8是獲取循環(huán)仲裁的隊(duì)列選擇步驟的流程圖。
本發(fā)明涉及一個進(jìn)行調(diào)度以便從多個競爭同一輸出的帶寬的隊(duì)列釋放數(shù)據(jù)的方法和裝置。在圖1中,在策略級別上示出了一個示例性的,具有調(diào)度特征的共享輸出排隊(duì)結(jié)構(gòu)。在所示的結(jié)構(gòu)中,有5個競爭輸出60的帶寬的隊(duì)列10,20,30,40,50。對隊(duì)列10,20,30,40,50的數(shù)據(jù)釋放進(jìn)行調(diào)度,即時間多路復(fù)用以避免沖突。根據(jù)優(yōu)先權(quán)等級確定隊(duì)列10,20,30,40,50的特征以便向輸出60釋放數(shù)據(jù),其中包含高優(yōu)先權(quán)隊(duì)列10,中優(yōu)先權(quán)隊(duì)列20,30和低優(yōu)先權(quán)隊(duì)列40,50。還根據(jù)帶寬類型來確定隊(duì)列10,20,30,40,50的特征以便向輸出60釋放數(shù)據(jù)。高優(yōu)先權(quán)隊(duì)列10是一個無限制帶寬隊(duì)列。中優(yōu)先權(quán)隊(duì)列20,30均為限制帶寬隊(duì)列。一個低優(yōu)先權(quán)隊(duì)列40是一個無限制帶寬隊(duì)列,而另一個低優(yōu)先權(quán)隊(duì)列50是一個限制帶寬隊(duì)列。還根據(jù)數(shù)據(jù)流類型,即單向流或全向流來確定隊(duì)列10,20,30,40,50的特征。但數(shù)據(jù)流類型在數(shù)據(jù)被釋放到輸出60的順序方面沒有獨(dú)立的含義。當(dāng)然,圖1圖解的共享輸出排隊(duì)結(jié)構(gòu)只是這種結(jié)構(gòu)的一個例子;根據(jù)期望實(shí)現(xiàn)的策略,隊(duì)列的數(shù)量,優(yōu)先權(quán)等級和帶寬類型在其它根據(jù)本發(fā)明操作的共享輸出排隊(duì)結(jié)構(gòu)中會有所不同。
在針對一個共享輸出排隊(duì)結(jié)構(gòu)的一個最優(yōu)調(diào)度方法中,選擇與當(dāng)前優(yōu)先權(quán)等級關(guān)聯(lián)的隊(duì)列組中的一個有數(shù)據(jù)要釋放到輸出并且具有可用帶寬,即沒有違背其帶寬約束的隊(duì)列向輸出釋放數(shù)據(jù)。如果有多個這樣的隊(duì)列,則使用循環(huán)排序確定在多個隊(duì)列中選擇哪個隊(duì)列。如此后所述,可以對這個基本調(diào)度方法進(jìn)行各種改進(jìn)。不管怎樣,雖然明顯簡單,但這個基本方法在根本上被認(rèn)為帶來了超越現(xiàn)有技術(shù)調(diào)度方法的顯著進(jìn)步。
把最優(yōu)調(diào)度方法應(yīng)用到圖1的共享輸出排隊(duì)結(jié)構(gòu),如果無限制帶寬高優(yōu)先權(quán)隊(duì)列10有數(shù)據(jù)要釋放到輸出60,則選擇隊(duì)列10。如果沒有選擇隊(duì)列10,則檢查限制帶寬中優(yōu)先權(quán)隊(duì)列20,30。更具體地,如果隊(duì)列20,30均有要釋放到輸出60的數(shù)據(jù)并且均有可用帶寬,則用循環(huán)順序從隊(duì)列20,30中選擇下一個隊(duì)列。如果隊(duì)列20,30均有要釋放的數(shù)據(jù)并且隊(duì)列20,30中只有一個具有可用帶寬,則選擇隊(duì)列20,30中有可用帶寬的隊(duì)列。如果隊(duì)列20,30中只有一個具有要釋放的數(shù)據(jù)和可用帶寬,則選擇隊(duì)列20,30中的這個隊(duì)列。如果隊(duì)列20,30均未被選擇,則檢查低優(yōu)先權(quán)隊(duì)列40,50。更具體地,如果隊(duì)列40,50均有要釋放到輸出60的數(shù)據(jù)并且限制帶寬低優(yōu)先權(quán)隊(duì)列50有可用帶寬,則用循環(huán)順序從隊(duì)列40,50中選擇下一個隊(duì)列。如果隊(duì)列40,50均有要釋放的數(shù)據(jù)并且但限制帶寬低優(yōu)先權(quán)隊(duì)列50沒有可用帶寬,則選擇限制帶寬低優(yōu)先權(quán)隊(duì)列隊(duì)列40。如果只有隊(duì)列40有數(shù)據(jù)要釋放,則選擇隊(duì)列40。如果只有隊(duì)列50有數(shù)據(jù)要釋放,則在隊(duì)列50有可用帶寬的情況下選擇隊(duì)列50。如果沒有選擇隊(duì)列40,50,則沒有數(shù)據(jù)被釋放到輸出60。
現(xiàn)在參照圖2,其中在部件級別上示出了一個最優(yōu)共享輸出調(diào)度裝置和一個相關(guān)的排隊(duì)結(jié)構(gòu)。排隊(duì)結(jié)構(gòu)210包含分別在輸入0至輸入N 212上接收數(shù)據(jù)并且釋放數(shù)據(jù)到輸出214的數(shù)據(jù)隊(duì)列0至數(shù)據(jù)隊(duì)列N。調(diào)度器200控制從排隊(duì)結(jié)構(gòu)210釋放數(shù)據(jù)。調(diào)度器200包含管理器220,多級選擇器230,驅(qū)動器240和統(tǒng)計250。管理器220從統(tǒng)計250檢索數(shù)據(jù)并且更新選擇器230和統(tǒng)計250。選擇器230包含選擇屏蔽碼232,優(yōu)先權(quán)帶寬選擇器234和實(shí)現(xiàn)隊(duì)列選擇的循環(huán)仲裁器236。選擇器230選擇釋放數(shù)據(jù)到輸出214的數(shù)據(jù)隊(duì)列并且向驅(qū)動器240發(fā)送隊(duì)列選擇信息。驅(qū)動器240接收隊(duì)列選擇信息,從統(tǒng)計250檢索數(shù)據(jù),更新統(tǒng)計250,并且控制從選擇的隊(duì)列釋放數(shù)據(jù)。
現(xiàn)在參照圖3,其中更詳細(xì)地示出了選擇器230。選擇器230具有選擇屏蔽碼232,其中包含使能屏蔽碼312,等待屏蔽碼314,帶寬屏蔽碼316和優(yōu)先權(quán)屏蔽碼318。每個屏蔽碼針對每個隊(duì)列0至N在存儲器單元210中均維護(hù)一個狀態(tài)位。使能屏蔽碼312指示在隊(duì)列0至N中允許向輸出214發(fā)送數(shù)據(jù)的隊(duì)列。在為隊(duì)列保留的位位置中的“1”表示使能,而“0”表示沒有使能。等待屏蔽碼314指示在隊(duì)列0至N中有等待發(fā)送到輸出214的數(shù)據(jù)的隊(duì)列。在為隊(duì)列保留的位位置中的“1”表示出現(xiàn)等待數(shù)據(jù),而“0”表示沒有等待數(shù)據(jù)。帶寬屏蔽碼316指示在隊(duì)列0至N中有向輸出214發(fā)送數(shù)據(jù)的帶寬的隊(duì)列?!?”表示帶寬可用,“0”表示帶寬不可用。優(yōu)先權(quán)屏蔽碼318集中指示隊(duì)列0至N的優(yōu)先權(quán)等級。針對每個優(yōu)先權(quán)等級維護(hù)一個單獨(dú)的優(yōu)先權(quán)屏蔽碼。在優(yōu)先權(quán)屏蔽碼中為隊(duì)列保留的位位置中的“1”表示為隊(duì)列分配屏蔽碼所表示的優(yōu)先權(quán)等級,“0”表示沒有分配優(yōu)先權(quán)等級。屏蔽碼232可以由管理器220配置。管理器220根據(jù)從統(tǒng)計250檢索的信息更新等待屏蔽碼314和帶寬屏蔽碼316。
選擇屏蔽碼232被連接到優(yōu)先權(quán)帶寬選擇器234。選擇器234通過把選擇縮減成在參與隊(duì)列中進(jìn)行的循環(huán)選擇來實(shí)現(xiàn)隊(duì)列選擇。當(dāng)允許參與選擇時,使能屏蔽碼312,等待屏蔽碼314,帶寬屏蔽碼316和一個優(yōu)先權(quán)屏蔽碼318被一起提交到屏蔽碼比較324進(jìn)行位與操作。優(yōu)先權(quán)計數(shù)器328確定被提交進(jìn)行位與操作的一個優(yōu)先權(quán)屏蔽碼318,這指示多路復(fù)用器根據(jù)計數(shù)器328的當(dāng)前值釋放一個優(yōu)先權(quán)屏蔽碼318。對于各個參與選擇輪次,計數(shù)器328首先選擇最高優(yōu)先權(quán)屏蔽碼并且選擇優(yōu)先權(quán)遞減的優(yōu)先權(quán)屏蔽碼,直到在當(dāng)前優(yōu)先權(quán)等級上指示出優(yōu)勝選擇使能,或者已經(jīng)提交了所有的優(yōu)先權(quán)屏蔽碼。
屏蔽碼比較324執(zhí)行的位與操作的結(jié)果是一個指示在當(dāng)前優(yōu)先權(quán)等級上的隊(duì)列被指定參與在循環(huán)仲裁器236中執(zhí)行的優(yōu)勝選擇的屏蔽碼。具體地,得到的屏蔽碼在為允許釋放到輸出端口214,具有等待數(shù)據(jù),有可用帶寬并且處在當(dāng)前優(yōu)先權(quán)等級上的隊(duì)列而保留的所有位上均具有“1”,并且在其它位位置上具有“0”。這樣,結(jié)果屏蔽碼通過“1”表示所有的參與隊(duì)列,通過“0”表示所有的未參與隊(duì)列。結(jié)果屏蔽碼被提交到優(yōu)勝選擇使能326進(jìn)行或操作。如果結(jié)果屏蔽碼中至少一個位位置上有“1”,則或操作結(jié)果為“1”并且在當(dāng)前優(yōu)先權(quán)等級上使能優(yōu)勝選擇。否則,或操作結(jié)果為“0”,沒有在當(dāng)前優(yōu)先權(quán)等級上使能優(yōu)勝選擇并且在下一個優(yōu)先權(quán)等級上進(jìn)行位與操作?;虿僮鹘Y(jié)果被當(dāng)作反饋提供給計數(shù)器328以便通知計數(shù)器328是否需要一次附加的優(yōu)先權(quán)屏蔽選擇??梢岳斫?,位與操作在所有優(yōu)先權(quán)等級上均產(chǎn)生一個“空”屏蔽碼,則不使能優(yōu)勝選擇并且不進(jìn)行循環(huán)仲裁。
優(yōu)先權(quán)帶寬選擇器234被連接到循環(huán)仲裁器236。循環(huán)仲裁器236通過在選擇器234確定的參與隊(duì)列進(jìn)行循環(huán)選擇來確定出一個優(yōu)勝隊(duì)列。參照圖4,其中更詳細(xì)地示出了循環(huán)仲裁器236。當(dāng)使能優(yōu)勝選擇時,參與隊(duì)列屏蔽碼,即在選擇器234中執(zhí)行的位與操作產(chǎn)生的屏蔽碼被提交到一個合格隊(duì)列確定的初級選擇陣列410。具體地,陣列410中的各個初級選擇單元從參與隊(duì)列屏蔽碼接收一個位子集并且從參與隊(duì)列中選擇一個所代表的單合格隊(duì)列。更具體地,在最后的循環(huán)仲裁中被最終選擇420將其合格隊(duì)列選擇成優(yōu)勝隊(duì)列的初級選擇單元將其參與隊(duì)列中按循環(huán)順序排列的下一個隊(duì)列選擇成合格隊(duì)列。其它初級選擇單元將其相應(yīng)的參與隊(duì)列中的第一個隊(duì)列選擇成合格隊(duì)列。合格隊(duì)列選擇和來自任意初級選擇單元的,不表示任何參與隊(duì)列的任意“無合格”通知一起被提交給最終選擇420。并且,如果在選擇過程中其合格隊(duì)列被選擇成最后的優(yōu)勝隊(duì)列的初級選擇單元發(fā)生回繞,即按照循環(huán)順序從其最后的隊(duì)列返回到第一個隊(duì)列,則初級選擇單元向最終選擇420提交一個“回繞”通知。最終選擇420把來自初級選擇單元的合格隊(duì)列選擇成優(yōu)勝隊(duì)列,除非初級選擇單元提交一個“無合格”或“回繞”通知,其中初級選擇單元的合格隊(duì)列被選擇成最后優(yōu)勝隊(duì)列。如果初級單元提交一個“無合格”或“回繞”通知,則最終選擇420把來自初級選擇單元按循環(huán)順序排列的下一個單元的合格隊(duì)列選擇成優(yōu)勝隊(duì)列。最終選擇420在完成循環(huán)仲裁時向隊(duì)列驅(qū)動器240發(fā)送優(yōu)勝隊(duì)列標(biāo)識。優(yōu)勝隊(duì)列標(biāo)識也被當(dāng)作反饋提交到陣列410以便被初級選擇單元用于后續(xù)的合格隊(duì)列選擇。
現(xiàn)在參照圖2和圖5,根據(jù)從選擇器230接收的優(yōu)勝隊(duì)列標(biāo)識,驅(qū)動器240查詢統(tǒng)計250以檢索出隊(duì)列狀態(tài)信息并且控制從優(yōu)勝隊(duì)列釋放數(shù)據(jù)到輸出214。統(tǒng)計250為排隊(duì)結(jié)構(gòu)210中的各個隊(duì)列0至N保留多字段入口,其中包含一個隊(duì)列標(biāo)識,一個報頭指針,一個報尾指針,當(dāng)前深度,最大深度,當(dāng)前信用值和總信用值。優(yōu)勝隊(duì)列標(biāo)識被用來在統(tǒng)計250中“查找”對應(yīng)的入口。預(yù)定的信用量被加到對應(yīng)入口的當(dāng)前信用值上。最好可以根據(jù)一個按照特定協(xié)議格式化的分組的最大長度,例如以太網(wǎng)分組的1518字節(jié),來選擇一個量值。驅(qū)動器240控制從優(yōu)勝隊(duì)列向輸出214釋放數(shù)據(jù),其中從對應(yīng)入口內(nèi)的報頭指針指示的隊(duì)列位置上的數(shù)據(jù)開始,直到從優(yōu)勝隊(duì)列中釋放出所有數(shù)據(jù),當(dāng)前信用值已經(jīng)用完,或者在限制帶寬隊(duì)列的情況下總信用值已經(jīng)用完,無論先發(fā)生哪種情況,其處理均是如此。當(dāng)數(shù)據(jù)被釋放時,驅(qū)動器240更新對應(yīng)入口的報頭指針,當(dāng)前深度,總信用值和當(dāng)前信用值以便反映改變的隊(duì)列狀態(tài)。如果所有數(shù)據(jù)已被釋放,則當(dāng)前信用值被“清0”,在使用限制帶寬隊(duì)列的情況下,在當(dāng)前信用值之前用完總信用值。
管理器220查詢統(tǒng)計250以保證選擇屏蔽碼232反映驅(qū)動器240做出的隊(duì)列狀態(tài)改變。查詢?nèi)肟谥械漠?dāng)前深度值以便刷新等待屏蔽碼312,并且查詢?nèi)肟谥械目傂庞弥狄员闼⑿聨捚帘未a316。管理器220還周期性地刷新為限制帶寬隊(duì)列保留的入口中的總信用值。
現(xiàn)在參照圖6,其中示出了優(yōu)先權(quán)帶寬隊(duì)列選擇的流程圖。參與選擇被使能(610)并且最高優(yōu)先權(quán)被選擇成當(dāng)前優(yōu)先權(quán)(620)。根據(jù)隊(duì)列使能,等待和帶寬狀態(tài)和優(yōu)先權(quán)來確定當(dāng)前優(yōu)先權(quán)上的參與隊(duì)列(630)。如果當(dāng)前優(yōu)先權(quán)上至少有一個參與隊(duì)列(640),則使能優(yōu)勝選擇并且通知循環(huán)仲裁器(650)。如果沒有,則下一個最高優(yōu)先權(quán)被選擇成當(dāng)前優(yōu)先權(quán)(660)。如果沒有檢查所有的優(yōu)先權(quán),則流程返回到步驟630;否則,流程退出(670)。
參照圖7,其中針對一個代表性初級選擇單元示出了在循環(huán)仲裁中進(jìn)行合格隊(duì)列選擇的流程圖。該單元接收其代表的隊(duì)列的信息(710),并且檢查最后的優(yōu)勝隊(duì)列是否單元的最后合格隊(duì)列(720)。如果最后優(yōu)勝隊(duì)列是單元的最后合格隊(duì)列,則單元選擇其代表的,按照循環(huán)順序排列的下一個(參與或未參與)隊(duì)列(730)。如果最后優(yōu)勝隊(duì)列不是單元的最后合格隊(duì)列,則單元把其代表的第一個(參與或未參與)隊(duì)列選擇成當(dāng)前隊(duì)列(740)。不管怎樣,單元檢查是否已經(jīng)確定當(dāng)前隊(duì)列參與了這個選擇輪次(750)。如果確定當(dāng)前隊(duì)列已經(jīng)參與,則單元在這個選擇輪次中沒有合格隊(duì)列并且通知最終選擇器(755)。如果沒有檢查當(dāng)前隊(duì)列是否參與,則進(jìn)行檢查(760)。如果當(dāng)前隊(duì)列是一個參與隊(duì)列,則當(dāng)前隊(duì)列是合格隊(duì)列并且通知最終選擇器(765)。如果當(dāng)前隊(duì)列不是參與隊(duì)列,則進(jìn)行進(jìn)一步的檢查以確定當(dāng)前隊(duì)列是否單元代表的最后隊(duì)列(770)。如果當(dāng)前隊(duì)列是代表的最后隊(duì)列,則單元回繞,通知最終選擇器并且流程返回到步驟740。如果當(dāng)前隊(duì)列不是代表的最后隊(duì)列,則流程返回到步驟730。
參照圖8,其中示出了循環(huán)仲裁中的優(yōu)勝隊(duì)列選擇的流程圖。接收合格隊(duì)列,“無合格”通知和“回繞”通知(810)并且其合格隊(duì)列贏得最后仲裁的初級選擇被選擇成當(dāng)前單元(820)。進(jìn)行檢查以確定在這個選擇輪次中當(dāng)前單元是否具有一個合格隊(duì)列(830)。如果在這個選擇輪次中當(dāng)前單元具有一個合格隊(duì)列,進(jìn)行檢查以確定當(dāng)前單元是否回繞(840)。如果當(dāng)前單元沒有回繞,則來自當(dāng)前單元的合格隊(duì)列是優(yōu)勝隊(duì)列,通知隊(duì)列驅(qū)動器和單元并且流程退出(850)。但如果當(dāng)前單元沒有一個合格隊(duì)列或者當(dāng)前單元發(fā)生回繞,則按照循環(huán)順序排列的下一個單元被選擇成當(dāng)前單元(860)。如果在這個選擇輪次中已經(jīng)檢查了新的當(dāng)前單元(870),則前面的單元被還原成當(dāng)前單元并且流程前進(jìn)到步驟850。如果在這個選擇輪次中沒有檢查新的當(dāng)前單元,則流程返回到步驟830。
本領(lǐng)域的技術(shù)人員可以理解,在不偏離本發(fā)明的宗旨或必要特征的前提下可以通過其它特定形式實(shí)現(xiàn)本發(fā)明。因而本描述在總體上被認(rèn)為是說明性的和非限制性的。本發(fā)明的范圍由所附權(quán)利要求書規(guī)定,在其等人描述的含義和范圍內(nèi)的所有修改均被包括其中。
權(quán)利要求
1.一種針對一個排隊(duì)結(jié)構(gòu)的隊(duì)列調(diào)度方法,該排隊(duì)結(jié)構(gòu)具有多個釋放數(shù)據(jù)到一個輸出的隊(duì)列,其中包含一個由一或多個具有一個第一優(yōu)先權(quán)的隊(duì)列構(gòu)成的隊(duì)列組和一個由一或多個具有一個第二優(yōu)先權(quán)的隊(duì)列構(gòu)成的隊(duì)列組,其中第一和第二優(yōu)先權(quán)是不同的,并且一個隊(duì)列具有受限制帶寬,該方法包括檢查由一或多個具有一個第一優(yōu)先權(quán)的隊(duì)列構(gòu)成的隊(duì)列組以確定一個具有要釋放的數(shù)據(jù)和可用帶寬的隊(duì)列;如果在第一優(yōu)先權(quán)上找到一或多個具有要釋放的數(shù)據(jù)和可用帶寬的隊(duì)列,則從一個找到的隊(duì)列向輸出釋放數(shù)據(jù)。
2.如權(quán)利要求1所述的隊(duì)列調(diào)度方法,其中還包括的步驟有如果在第一優(yōu)先權(quán)上沒有找到多個具有要釋放的數(shù)據(jù)和可用帶寬的隊(duì)列,檢查第二優(yōu)先權(quán)上的隊(duì)列組以確定一個具有要釋放的數(shù)據(jù)和可用帶寬的隊(duì)列。
3.如權(quán)利要求1所述的隊(duì)列調(diào)度方法,其中還包括的步驟有如果在第一優(yōu)先權(quán)上找到多個具有要釋放的數(shù)據(jù)和可用帶寬的隊(duì)列,選擇被找到隊(duì)列的循環(huán)以向輸出釋放數(shù)據(jù)。
4.如權(quán)利要求1所述的隊(duì)列調(diào)度方法,其中還包括在釋放數(shù)據(jù)到輸出的隊(duì)列帶寬受限制的情況下減小釋放數(shù)據(jù)到輸出的隊(duì)列的可用帶寬的步驟。
5.如權(quán)利要求1所述的隊(duì)列調(diào)度方法,其中還包括增加釋放數(shù)據(jù)到輸出的隊(duì)列的信用值的步驟。
6.如權(quán)利要求5所述的隊(duì)列調(diào)度方法,其中還包括根據(jù)釋放數(shù)據(jù)的長度減少釋放數(shù)據(jù)到輸出的隊(duì)列的信用值的步驟。
7.如權(quán)利要求5所述的隊(duì)列調(diào)度方法,其中還包括周期性增加一個具有受限制帶寬的隊(duì)列的可用帶寬的步驟。
8.一個隊(duì)列選擇器,其中包括多個屏蔽碼,每個屏蔽碼具有多個位,每個位表示與多個被連接到一個輸出的隊(duì)列中一個不同的隊(duì)列的一個隊(duì)列狀態(tài)變量相關(guān)的狀態(tài),其中在一個位與操作中混合屏蔽碼以確定在多個隊(duì)列中可以被選擇釋放數(shù)據(jù)到輸出的隊(duì)列。
9.如權(quán)利要求8所述的隊(duì)列選擇器,其中隊(duì)列狀態(tài)變量包含等待。
10.如權(quán)利要求8所述的隊(duì)列選擇器,其中隊(duì)列狀態(tài)變量包含帶寬可用性。
11.如權(quán)利要求8所述的隊(duì)列選擇器,其中隊(duì)列狀態(tài)變量包含優(yōu)先權(quán)。
12.如權(quán)利要求8所述的隊(duì)列選擇器,其中還包括一個從可選擇隊(duì)列中選擇一個釋放數(shù)據(jù)到輸出的隊(duì)列的仲裁器。
13.如權(quán)利要求12所述的隊(duì)列選擇器,其中進(jìn)行循環(huán)選擇。
14.針對一個排隊(duì)結(jié)構(gòu)的調(diào)度裝置,該排隊(duì)結(jié)構(gòu)具有多個分別在各個輸入上接收數(shù)據(jù)并且向一個輸出釋放數(shù)據(jù)的隊(duì)列,其中包括一個選擇器,該選擇器根據(jù)關(guān)于多個隊(duì)列的狀態(tài)變量從多個隊(duì)列中選擇一個隊(duì)列,并且發(fā)送隊(duì)列選擇信息;一個驅(qū)動器,該驅(qū)動器接收隊(duì)列選擇信息并且控制選定隊(duì)列的數(shù)據(jù)釋放。
15.如權(quán)利要求14所述的調(diào)度裝置,其中隊(duì)列狀態(tài)變量包含等待。
16.如權(quán)利要求14所述的調(diào)度裝置,其中隊(duì)列狀態(tài)變量包含帶寬可用性。
17.如權(quán)利要求14所述的調(diào)度裝置,其中隊(duì)列狀態(tài)變量包含優(yōu)先權(quán)。
18.如權(quán)利要求14所述的調(diào)度裝置,其中還包括一個管理器,該管理器根據(jù)一或多個隊(duì)列狀態(tài)變量更新多個隊(duì)列的狀態(tài)。
全文摘要
一個用于一個數(shù)據(jù)排隊(duì)結(jié)構(gòu)的優(yōu)先權(quán)調(diào)度方法和裝置,該結(jié)構(gòu)包含多個具有不同優(yōu)先權(quán)并且具有競爭一個輸出的帶寬優(yōu)先權(quán)的隊(duì)列。該方法在當(dāng)前優(yōu)先權(quán)上選擇一個有數(shù)據(jù)釋放到輸出并且有可用帶寬釋放數(shù)據(jù)到輸出的隊(duì)列。如果有多個這樣的隊(duì)列,則進(jìn)行循環(huán)重新排序以便在多個隊(duì)列中確定要選擇的隊(duì)列。該裝置包含多個位屏蔽碼,每個屏蔽碼表示與不同隊(duì)列的一個隊(duì)列狀態(tài)變量相關(guān)的狀態(tài),其中在一個位與操作中混合屏蔽碼以確定可以被選擇釋放數(shù)據(jù)到輸出的隊(duì)列。
文檔編號H04L12/56GK1322091SQ0111093
公開日2001年11月14日 申請日期2001年3月1日 優(yōu)先權(quán)日2000年3月2日
發(fā)明者德魯·伯塔格納 申請人:阿爾卡塔爾互聯(lián)網(wǎng)運(yùn)行公司