自一個調(diào)度輸出隊(duì)列出列多個封包及/或使用過調(diào)度來調(diào)度輸出隊(duì)列的封包輸出控制器 ...的制作方法
【專利說明】自一個調(diào)度輸出隊(duì)列出列多個封包及/或使用過調(diào)度來調(diào)度輸出隊(duì)列的封包輸出控制器以及相關(guān)方法
[0001]【相關(guān)申請的交叉引用】
[0002]本申請要求申請日為2013年4月26日,美國臨時申請?zhí)枮?1/816,251,以及申請日為2014年4月17日,美國申請?zhí)枮?4/254,893的美國申請案的優(yōu)先權(quán),上述申請案的內(nèi)容一并并入本申請。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明的實(shí)施例有關(guān)于轉(zhuǎn)發(fā)封包,更具體來說,有關(guān)于自一個調(diào)度輸出隊(duì)列出列多個封包及/或使用過調(diào)度(over-scheduling)來調(diào)度輸出隊(duì)列的封包輸出控制器以及相關(guān)方法。
【【背景技術(shù)】】
[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,簡寫為lOGbE)環(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)(100GbE)環(huán)境時,最小封包傳輸時間可為6.72ns(納秒)。若自通過一個輸出隊(duì)列決定選擇的輸出隊(duì)列中出列的一個封包的封包傳輸已經(jīng)完成,而且調(diào)度器未能及時作出另一輸出隊(duì)列決定,輸出端口的線速率可由于沒有封包傳輸而降低。從而,關(guān)于高速網(wǎng)絡(luò)應(yīng)用,如何設(shè)計(jì)滿足嚴(yán)格的調(diào)度時間限制(timing constraint)的網(wǎng)絡(luò)交換器對業(yè)內(nèi)設(shè)計(jì)者來說是一個挑戰(zhàn)?!?br/>【發(fā)明內(nèi)容】
】
[0007]依據(jù)本發(fā)明的范例性實(shí)施例,自一個調(diào)度輸出隊(duì)列出列多個封包及/或使用過調(diào)度來調(diào)度輸出隊(duì)列的封包輸出控制器以及相關(guān)方法被提出來解決上述問題。
[0008]依據(jù)本發(fā)明的第一個方面,一種范例的封包輸出控制器被揭露。范例的封包輸出控制器包含調(diào)度器及出列設(shè)備。調(diào)度器執(zhí)行單一調(diào)度操作以調(diào)度輸出隊(duì)列,其中輸出隊(duì)列自與輸出端口相關(guān)聯(lián)的多個輸出隊(duì)列中選出。出列設(shè)備自由單一調(diào)度操作所決定的調(diào)度輸出隊(duì)列出列多個封包。
[0009]依據(jù)本發(fā)明的第二個方面,另一種范例的封包輸出控制器被揭露。范例的封包輸出控制器包含調(diào)度器及出列設(shè)備。調(diào)度器執(zhí)行多個調(diào)度操作,其中每一調(diào)度操作調(diào)度自與輸出端口相關(guān)聯(lián)的多個輸出隊(duì)列中選出的輸出隊(duì)列,其中調(diào)度器執(zhí)行當(dāng)前調(diào)度操作,而不管由先前調(diào)度操作決定的調(diào)度輸出隊(duì)列的封包傳輸?shù)淖罱K狀態(tài)。出列設(shè)備在由先前調(diào)度操作決定的調(diào)度輸出隊(duì)列的封包傳輸完成之后,自由當(dāng)前調(diào)度操作決定的調(diào)度輸出隊(duì)列出列至少一封包。
[0010]依據(jù)本發(fā)明的第三個方面,一種范例的封包輸出方法被揭露。范例的封包輸出方法包含執(zhí)行單一調(diào)度操作以調(diào)度輸出隊(duì)列,其中輸出隊(duì)列自與輸出端口相關(guān)聯(lián)的多個輸出隊(duì)列中選出;以及自由單一調(diào)度操作所決定的該調(diào)度輸出隊(duì)列出列多個封包。
[0011]依據(jù)本發(fā)明的第四個方面,另一種范例的封包輸出方法被揭露。范例的封包輸出方法包含執(zhí)行多個調(diào)度操作,其中每一調(diào)度操作調(diào)度自與輸出端口相關(guān)聯(lián)的多個輸出隊(duì)列中選出的輸出隊(duì)列,其中不管由先前調(diào)度操作決定的調(diào)度輸出隊(duì)列的封包傳輸?shù)淖罱K狀態(tài),當(dāng)前調(diào)度操作被執(zhí)行;以及在由先前調(diào)度操作決定的調(diào)度輸出隊(duì)列的封包傳輸完成之后,自由當(dāng)前調(diào)度操作決定的調(diào)度輸出隊(duì)列出列至少一封包。
[0012]本領(lǐng)域技術(shù)人員在讀完下述利用不同附圖展示的較佳實(shí)施例的詳細(xì)描述之后,將了解本發(fā)明的上述及其他目的。
【【附圖說明】】
[0013]圖1是依據(jù)本發(fā)明第一實(shí)施例的網(wǎng)絡(luò)交換器的示意圖。
[0014]圖2為依據(jù)本發(fā)明一個實(shí)施例的釋放調(diào)度時間限制的第一解決方案的時序圖。
[0015]圖3為依據(jù)本發(fā)明一個實(shí)施例的封包輸出方法的流程示意圖。
[0016]圖4是依據(jù)本發(fā)明第二實(shí)施例的網(wǎng)絡(luò)交換器的示意圖。
[0017]圖5為依據(jù)本發(fā)明一個實(shí)施例的釋放調(diào)度時間限制的第二解決方案的時序圖。
[0018]圖6為依據(jù)本發(fā)明第三實(shí)施例的網(wǎng)絡(luò)交換器的示意圖。
[0019]圖7為依據(jù)本發(fā)明另一實(shí)施例的封包輸出方法的流程示意圖。
[0020]圖8為依據(jù)本發(fā)明第四實(shí)施例的網(wǎng)絡(luò)交換機(jī)的示意圖。
【【具體實(shí)施方式】】
[0021]在說明書及權(quán)利要求書當(dāng)中使用了某些詞匯來指稱特定的組件。所屬領(lǐng)域中的技術(shù)人員應(yīng)可理解,制造商可能會用不同的名詞來稱呼同樣的組件。本說明書及權(quán)利要求書并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的基準(zhǔn)。在通篇說明書及權(quán)利要求書當(dāng)中所提及的「包含」是開放式的用語,故應(yīng)解釋成「包含但不限定于」。另外,「耦接」一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表第一裝置可直接電氣連接于第二裝置,或透過其它裝置或連接手段間接地電氣連接至第二裝置。
[0022]本發(fā)明的構(gòu)思是通過自由單一調(diào)度操作調(diào)度的一個輸出隊(duì)列出列多個封包及/或使用過調(diào)度來加速輸出隊(duì)列決策(decis1n-making)來釋放調(diào)度時間限制。以這種方式,在多數(shù)情況下,封包泡沫(packet bubble)(亦即,空閑輸出端口 )概率可被降低,以維持所需線速率。下面將結(jié)合附圖來詳細(xì)說明本發(fā)明的調(diào)度/出列設(shè)計(jì)。
[0023]圖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一。舉例來說,自輸入端口 1(未描繪于圖中)接收并被要求通過輸出端口 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ā)明的限制。
[0024]為釋放輸出隊(duì)列115_1_115_N的存儲器需求,鏈接列表結(jié)構(gòu)被采用來作為一個輸出隊(duì)列。舉例來說,輸出隊(duì)列115_1-115_N中的每一個是一個封包鏈接列表,其中封包鏈接列表由自相同輸入端口接收且待被自輸出端口轉(zhuǎn)發(fā)的多個封包的封包ID組成。因此,當(dāng)特定封包自一個輸出隊(duì)