通過選擇多個候選輸出隊(duì)列之一決定最終輸出隊(duì)列的調(diào)度器及相關(guān)方法
【專利說明】通過選擇多個候選輸出隊(duì)列之一決定最終輸出隊(duì)列的調(diào)度器及相關(guān)方法
[0001]【相關(guān)申請的交叉引用】
[0002]本申請要求申請日為2013年4月26日,美國臨時申請?zhí)枮?1/816,261,以及申請日為2014年4月14日,美國臨時申請?zhí)枮?4/252,722的美國臨時申請案的優(yōu)先權(quán),上述臨時申請案的內(nèi)容一并并入本申請。
【【背景技術(shù)】】
[0003]本發(fā)明的實(shí)施例有關(guān)于轉(zhuǎn)發(fā)分組,更具體來說,有關(guān)于用于通過選擇多個候選輸出隊(duì)列之一來決定最終輸出隊(duì)列的調(diào)度器以及相關(guān)方法。
[0004]網(wǎng)絡(luò)交換機(jī)(network switch)是鏈接不同電子設(shè)備的計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備。舉例來說,網(wǎng)絡(luò)交換機(jī)接收與其連接的源電子設(shè)備所產(chǎn)生的輸入分組,并將從已接收的分組導(dǎo)出的輸出分組傳輸至一個或多個目的電子設(shè)備,其中所述已接收的分組原本是由一個或多個目的電子設(shè)備接收。一般來說,網(wǎng)絡(luò)交換機(jī)具有分組緩沖器用于緩沖自輸入端口(ingressport)接收的分組的分組數(shù)據(jù),以及將儲存在分組緩沖器的分組通過輸出端口(egressport)轉(zhuǎn)發(fā)。
[0005]關(guān)于待通過相同輸出端口轉(zhuǎn)發(fā)的入口分組(ingress packet),入口分組來自連接不同輸入端口的源電子設(shè)備。從而,網(wǎng)絡(luò)交換器可創(chuàng)建用于多個入口分組的多個輸出隊(duì)列,其中多個入口分組分別自不同輸入端口接收。舉例來說,對應(yīng)于相同輸出端口的多個輸出隊(duì)列的每一個可簡單的通過儲存分組的分組標(biāo)示(identifier,簡寫為ID)來創(chuàng)建,以記錄分組鏈接表(packet linked list),其中分組鏈接表用于指示實(shí)際儲存在分組緩沖器中的分組的輸出順序。由于存在多個輸出隊(duì)列,需要調(diào)度器來執(zhí)行多個調(diào)度操作,每一個調(diào)度操作用于做出一個輸出隊(duì)列決定,以指示哪一個輸出隊(duì)列被授權(quán)輸出一個分組到輸出端口。
[0006]通常,單一調(diào)度操作所需的處理時間應(yīng)當(dāng)短于最小分組傳輸時間(例如,64字節(jié)分組的傳輸時間)以獲取所需線速率(line rate)。當(dāng)線速率變得更高時,最小分組傳輸時間相應(yīng)變得更短。舉例來說,當(dāng)網(wǎng)絡(luò)交換器用于10千兆以太網(wǎng)(Gigabit Ethernet,簡寫為1GbE)環(huán)境時,最小分組傳輸時間可為67.2ns (納秒);當(dāng)網(wǎng)絡(luò)交換器用于40千兆以太網(wǎng)(40GbE)環(huán)境時,最小分組傳輸時間可為16.8ns (納秒);當(dāng)網(wǎng)絡(luò)交換器用于100千兆以太網(wǎng)(10GbE)環(huán)境時,最小分組傳輸時間可為6.72ns (納秒)。從而,對于高速網(wǎng)絡(luò)應(yīng)用,如何設(shè)計(jì)滿足嚴(yán)格的調(diào)度時間限制的網(wǎng)絡(luò)交換器對本領(lǐng)域設(shè)計(jì)人員來說是一個挑戰(zhàn)。
【
【發(fā)明內(nèi)容】
】
[0007]依據(jù)本發(fā)明的范例性實(shí)施例,通過選擇多個候選輸出隊(duì)列之一來決定最終輸出隊(duì)列的調(diào)度器及相關(guān)方法被提出來解決上述問題。
[0008]依據(jù)本發(fā)明的第一個設(shè)想,一種用于執(zhí)行多個調(diào)度操作的調(diào)度器被揭露,其中每一調(diào)度操作調(diào)度自與輸出端口相關(guān)的多個輸出隊(duì)列中選定的一個輸出隊(duì)列。范例的調(diào)度器包含候選決策邏輯以及最終決策邏輯。候選決策邏輯決定用于當(dāng)前調(diào)度操作的多個候選輸出隊(duì)列,而不管由至少一先前調(diào)度操作決定的至少一調(diào)度輸出隊(duì)列的分組傳輸?shù)淖罱K狀態(tài)。在獲取由至少一先前調(diào)度操作決定的至少一調(diào)度輸出隊(duì)列的分組傳輸?shù)淖罱K狀態(tài)之后,最終決策邏輯選擇多個候選輸出隊(duì)列之一作為由當(dāng)前調(diào)度操作決定的調(diào)度輸出隊(duì)列。
[0009]依據(jù)本發(fā)明的第二個設(shè)想,一種用于執(zhí)行多個調(diào)度操作的調(diào)度方法被揭露,其中每一調(diào)度操作調(diào)度自與輸出端口相關(guān)的多個輸出隊(duì)列中選定的一個輸出隊(duì)列。范例的方法包含:決定用于當(dāng)前調(diào)度操作的多個候選輸出隊(duì)列,而不管由至少一先前調(diào)度操作決定的至少一調(diào)度輸出隊(duì)列的分組傳輸?shù)淖罱K狀態(tài);以及在獲取由至少一先前調(diào)度操作決定的至少一調(diào)度輸出隊(duì)列的分組傳輸?shù)淖罱K狀態(tài)之后,選擇多個候選輸出隊(duì)列之一作為由當(dāng)前調(diào)度操作決定的調(diào)度輸出隊(duì)列。
[0010]本領(lǐng)域技術(shù)人員在讀完下述利用不同附圖展示的較佳實(shí)施例的詳細(xì)描述之后,將了解本發(fā)明的上述及其他目的。
【【附圖說明】】
[0011]圖1是依據(jù)本發(fā)明一個實(shí)施例的網(wǎng)絡(luò)交換器的示意圖。
[0012]圖2是依據(jù)本發(fā)明一個實(shí)施例釋放響應(yīng)時間限制的建議解決方案的時序圖。
[0013]圖3是依據(jù)本發(fā)明一個實(shí)施例的調(diào)度輸出隊(duì)列的方法的流程示意圖。
【【具體實(shí)施方式】】
[0014]在說明書及權(quán)利要求書當(dāng)中使用了某些詞匯來指稱特定的組件。所屬領(lǐng)域中的技術(shù)人員應(yīng)可理解,制造商可能會用不同的名詞來稱呼同樣的組件。本說明書及權(quán)利要求書并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的基準(zhǔn)。在通篇說明書及權(quán)利要求書當(dāng)中所提及的「包含」是開放式的用語,故應(yīng)解釋成「包含但不限定于」。另外,「耦接」一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表第一裝置可直接電氣連接于第二裝置,或透過其它裝置或連接手段間接地電氣連接至第二裝置。
[0015]本發(fā)明的設(shè)想是通過在確認(rèn)消息準(zhǔn)備好之前作出多個候選輸出隊(duì)列決定以釋放受限于確認(rèn)消息(acknowledgment message)的響應(yīng)時間,所述確認(rèn)消息指示調(diào)度輸出隊(duì)列的分組傳輸?shù)淖罱K狀態(tài)(resultant status) ο以這種方式,在多數(shù)情況下,分組泡沫(packet bubble)(亦即,空閑輸出端口)概率可被降低,以維持所需線速率。一般來說,當(dāng)入口分組足夠時(亦即,輸入至輸入端口的分組3自輸出鍋輸出的分組),分組泡沫可被完全避免。下面將結(jié)合附圖來詳細(xì)說明本發(fā)明的調(diào)度設(shè)計(jì)。
[0016]圖1是依據(jù)本發(fā)明一個實(shí)施例的網(wǎng)絡(luò)交換器的示意圖。網(wǎng)絡(luò)交換器100包含緩沖存儲設(shè)備102、出列(dequeue)設(shè)備104和調(diào)度器106。緩沖存儲設(shè)備102包含分組緩沖器112和隊(duì)列管理器114。舉例來說,分組緩沖器112可利用動態(tài)隨機(jī)存取存儲器(dynamicrandom access memory,簡寫為DRAM)來實(shí)施,而隊(duì)列管理器114可包含靜態(tài)隨機(jī)存取存儲器(static random access memory,簡寫為SRAM)以儲存多個分組鏈接列表,其中所述多個分組鏈接列表分別作為多個輸出隊(duì)列115_1-115_N。當(dāng)分組自網(wǎng)絡(luò)交換器100的多個輸入端口之一被接收時,分組被緩沖于分組緩沖器112中,并被排入輸出隊(duì)列115_1-115_N2一。舉例來說,自輸入端口 I (未描繪于圖中)接收并被要求待通過輸出端口 J(未描繪于圖中)轉(zhuǎn)發(fā)的分組被排入至相同輸出隊(duì)列OQu。為簡潔起見,圖1中僅展示了一個輸出端口。因此,自輸入端口(例如,端口 1-端口 N)之一接收并被決定待通過上述輸出端口轉(zhuǎn)發(fā)的分組由分組處理器(未描繪于圖中)依據(jù)其分組屬性使用多個查找表來處理。從而,分組被排入由隊(duì)列管理器114維持的輸出隊(duì)列115_1-115_N之一。調(diào)度器106通過各優(yōu)先級配置適當(dāng)調(diào)度輸出隊(duì)列115_1-115_N,優(yōu)先級配置例如待通過相同輸出端口轉(zhuǎn)發(fā)的多個分組的速率限制。然而,以上僅用作說明之用,并非為本發(fā)明的限制。
[0017]為釋放輸出隊(duì)列115_1_115_N的存儲器需求,鏈接列表結(jié)構(gòu)被米用來作為一個輸出隊(duì)列。舉例來說,輸出隊(duì)列115_1-115_N中的每一個是一個分組鏈接列表,其中分組鏈接列表由自相同輸入端口接收且待被自一個輸出端口轉(zhuǎn)發(fā)的多個分組的分組ID組成。因此,當(dāng)特定分組自一個輸出隊(duì)列出列時,儲存該特定分組的分組ID的節(jié)點(diǎn)自分組鏈接列表被移除,且該特定分組自分組緩沖器112被讀取并被輸出至下一級(例如,出列設(shè)備104),以通過輸出端口進(jìn)行分組轉(zhuǎn)發(fā)。
[0018]由于待通過輸出端口轉(zhuǎn)發(fā)的分組可能來自任一輸入端口,調(diào)度器106逐個執(zhí)行多個調(diào)度操作,其中每一調(diào)度操作作出一個輸出隊(duì)列決定,用于決定輸出隊(duì)列115_1-115_N中的哪一個被授權(quán)輸出其分組數(shù)據(jù)。亦即,調(diào)度器106適當(dāng)調(diào)度具有待通過相同輸出端口轉(zhuǎn)發(fā)的分組的輸出隊(duì)列115_1-115_N。
[0019]在常規(guī)的設(shè)計(jì)中,調(diào)度器作出一個輸出隊(duì)列決定以授權(quán)一個輸出隊(duì)列之后,直到收到指示調(diào)度輸出隊(duì)列的分組傳輸?shù)淖罱K狀態(tài)的確認(rèn)消息之前,調(diào)度器并不會作出下一個輸出隊(duì)列決定。因此,常規(guī)調(diào)度器所執(zhí)行的一個調(diào)度操作包含至少等待對應(yīng)于當(dāng)前優(yōu)勝輸出隊(duì)列的分組傳輸?shù)拇_認(rèn)消息的操作以及自多個輸出隊(duì)列中選擇下一優(yōu)勝輸出隊(duì)列的操作。換句話說,常規(guī)調(diào)度器執(zhí)行的一個調(diào)度操作所需的處理時間至少包含等待時間及作出決定時間。
[0020]舉例來說,確認(rèn)消息EmptyQ_ACK可指示調(diào)度輸出隊(duì)列被當(dāng)前分組傳