專利名稱:多端口多流的調(diào)度方法、裝置及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù),尤其涉及一種多端口多流的調(diào)度方法、裝置及設(shè)備,屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
在數(shù)據(jù)中心系統(tǒng)中,海量數(shù)據(jù)經(jīng)過交換芯片進行轉(zhuǎn)發(fā),交換芯片也會有大量的數(shù)據(jù)包發(fā)送至CPU進行處理。由于CPU只有有限的數(shù)據(jù)包處理資源,所以,重要的數(shù)據(jù)包到 CPU的延遲要求盡可能的短,不重要的數(shù)據(jù)包可以停滯甚至丟棄。因此,需要根據(jù)每個端口的流量類別來區(qū)分不同的數(shù)據(jù)包,然后通過CPU的權(quán)值配置和調(diào)度算法來合理分配流量的帶寬。常用的輪轉(zhuǎn)調(diào)度算法包括簡單優(yōu)先排隊(PQ),公平排隊(FQ)和加權(quán)輪轉(zhuǎn)(WRR)。 其中,簡單優(yōu)先排隊的基本原理在于只要高優(yōu)先級隊列中有報文,就會不處理低優(yōu)先級隊列。該算法簡單,但對于低優(yōu)先級的隊列可能會一直得不到服務(wù)。公平排隊的基本原理在于在一個調(diào)度周期中,對每個隊列輪流進行調(diào)度,空隊列跳過。加權(quán)輪轉(zhuǎn)的基本原理在于 按照服務(wù)質(zhì)量(Quality of Service,簡稱為QoS)的需求,將數(shù)據(jù)分為不同的隊列,然后給每個隊列設(shè)定一個權(quán)值,隊列之間按照權(quán)值分配調(diào)度機會。一般情況下有兩種實現(xiàn)方法。 第一種是在一個調(diào)度周期中,每次讓高優(yōu)先級隊列的報文發(fā)送不止一個單包,再繼續(xù)下一個隊列的調(diào)度。如此反復(fù)完成一個加權(quán)調(diào)度周期的隊列按權(quán)值輪轉(zhuǎn)的數(shù)據(jù)調(diào)度。另一種方法是按照隊列順序進行間隔調(diào)度,即首先調(diào)度一個隊列,然后按照順序調(diào)度另一個隊列, 權(quán)值已耗盡的隊列則不再調(diào)度。上述幾種輪轉(zhuǎn)調(diào)度算法僅涉及一個端口的數(shù)據(jù),而對于多個端口之間多個流隊列的調(diào)度沒有涉及。然而隨著科學(xué)技術(shù)的不斷發(fā)展,如何進行多端口多流調(diào)度也將成為本領(lǐng)域技術(shù)人員有待解決的問題。
發(fā)明內(nèi)容
為了實現(xiàn)多端口多流的調(diào)度,本發(fā)明的第一個方面是提供一種多端口多流的調(diào)度方法,包括分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,所述在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中所述類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和;根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級;根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列。本發(fā)明的另一個方面是提供一種多端口多流的調(diào)度裝置,包括
信用值確定模塊,用于分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,所述在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中所述類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和;優(yōu)先級確定模塊,用于根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級;數(shù)據(jù)流調(diào)度模塊,用于根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列。本發(fā)明的還一個方面是提供一種多端口多流的調(diào)度設(shè)備,包括 端口、調(diào)度模塊、 bd管理模塊、接口適配模塊以及CPU,所述調(diào)度模塊如上所述的多端口多流的調(diào)度裝置。本發(fā)明的技術(shù)效果是分別根據(jù)每一類數(shù)據(jù)流上一調(diào)度周期內(nèi)的信用值、權(quán)重以及在上一調(diào)度周期內(nèi)已發(fā)送的數(shù)據(jù)長度獲得每一類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,再根據(jù)信用值確定調(diào)度優(yōu)先級,進而確定在當前調(diào)度周期內(nèi)調(diào)度的數(shù)據(jù)流隊列,有效實現(xiàn)了多端口多流的情況下數(shù)據(jù)流的調(diào)度。
圖I為本發(fā)明實施例一提供的用于完成數(shù)據(jù)傳輸?shù)挠布到y(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例一提供的數(shù)據(jù)傳輸?shù)姆椒鞒虉D;圖3為本發(fā)明實施例二提供的多端口多流的調(diào)度方法流程圖;圖4為本發(fā)明實施例二提供的隊列調(diào)度結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例三提供的多端口多流的調(diào)度方法流程圖;圖6為本發(fā)明實施例四提供的多端口多流的調(diào)度裝置結(jié)構(gòu)示意圖。
具體實施例方式為了滿足數(shù)據(jù)中心網(wǎng)絡(luò)融合的需求,美國電氣和電子工程師協(xié)會(Institute of Electrical and Electronics Engineers,簡稱為IEEE)數(shù)據(jù)中心橋(Data Center Bridge,簡稱為DCB)工作組對傳統(tǒng)以太網(wǎng)協(xié)議進行了增強,使得以太網(wǎng)除了承載傳統(tǒng)的 IP流量之外,還能夠承載存儲和高性能集群計算業(yè)務(wù)。基于優(yōu)先級的流量控制(Priority Flow Control,簡稱為PFC)和增強傳輸選擇(Enhanced Transmission Selection,簡稱為ETS)是該工作組制定的兩個標準。其中,PFC將實際的物理鏈路虛擬成基于802. Ip優(yōu)先級的8條邏輯鏈路,為每個邏輯鏈路單獨提供不丟包的服務(wù),使其能夠與同一端口上的其他流量共存,某個業(yè)務(wù)的擁塞不會影響到其他業(yè)務(wù)。而ETS支持對802. Ip類別中的流量進行分類,分成多個傳輸類(Traffic Class),對每個傳輸類進行帶寬分配。當其中一個傳輸類沒有使用完分配給他的帶寬時,其他傳輸類可以使用剩下的帶寬。本發(fā)明實施例即是建立在上述兩種標準的基礎(chǔ)上。需要說明的是,在數(shù)據(jù)傳輸?shù)倪^程中,通常會涉及到多個硬件設(shè)備/硬件單元的參與,本發(fā)明實施例一中提供了這樣一個硬件系統(tǒng),用于完成數(shù)據(jù)的調(diào)度傳輸,該硬件系統(tǒng)的結(jié)構(gòu)示意圖可以如圖I所示,在圖I中,包括端口、緩存描述符(buffer descriptor,簡稱為bd)管理模塊、調(diào)度模塊、接口適配模塊和CPU。其中,每個端口有8個流隊列,每個流隊列對應(yīng)一個傳輸類的服務(wù)等級。bd管理模塊主要的作用在于定期輪詢CPU的bd環(huán),實現(xiàn)讀取bd和回寫bd的功能,bd管理模塊和調(diào)度模塊的相互配合可以共同完成傳輸?shù)腷d管理。其中,bd的主要作用在于提供當前bd和下一個bd地址、標識當前bd的所有者(CPU 或FPGA)、標記數(shù)據(jù)包的開始和結(jié)束、標明緩存有效數(shù)據(jù)字節(jié)數(shù)以及錯誤指示等信息。調(diào)度模塊即為實現(xiàn)下述數(shù)據(jù)流的調(diào)度方法的執(zhí)行主體,調(diào)度模塊主要的作用在于獲知流隊列 (FQ)有數(shù)據(jù)包待上傳,并且bd管理模塊中有空閑的緩存地址,則將FQ過來的數(shù)據(jù)傳輸給 CPU,最后通知bd管理模塊回寫緩存并提供相應(yīng)信息。該調(diào)度模塊與bd管理模塊均可以通過現(xiàn)場可編程門陣列(Field Programmable Gate Array,簡稱為FPGA)芯片實現(xiàn)。接口適配模塊主要的作用在于適配FPGA芯片與CPU之間的數(shù)據(jù)接口。圖2為本發(fā)明實施例一提供的數(shù)據(jù)傳輸?shù)姆椒鞒虉D,如圖2所示,該方法可以包括201、CPU根據(jù)用戶的需求設(shè)置每一個流隊列的權(quán)限值;202、某個端口的數(shù)據(jù)包進入調(diào)度模塊時,根據(jù)報文的分類暫存在相應(yīng)的流隊列中,并通告bd管理模塊。203、調(diào)度模塊根據(jù)本發(fā)明后續(xù)實施例提供的數(shù)據(jù)流的調(diào)度方法進行數(shù)據(jù)流的調(diào)度,并向bd管理模塊申請相應(yīng)流的緩存信息并進行端口的調(diào)度;204、bd管理模塊根據(jù)調(diào)度模塊的緩存請求,向CPU發(fā)起bd讀請求;如果收到可用bd,將可用bd中的數(shù)據(jù)緩存地址信息回送給調(diào)度模塊。205、調(diào)度模塊判斷是否收到數(shù)據(jù)緩存地址等信息;如果收到,則將步驟203中調(diào)度的數(shù)據(jù)寫入步驟204中的數(shù)據(jù)緩存地址,數(shù)據(jù)傳輸完畢,向bd管理模塊提供已傳輸字節(jié)數(shù)、端口號和錯誤等緩存更新信息;如果沒收到,回到步驟203。206、bd管理模塊向CPU回寫bd,并上報中斷或其他通知信息。下面,對步驟203中所說的數(shù)據(jù)流的調(diào)度方法進行詳細的說明。圖3為本發(fā)明實施例二提供的多端口多流的調(diào)度方法流程圖,如圖3所示,該方法包括步驟301、數(shù)據(jù)流的調(diào)度裝置分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、該類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)該類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,其中在上一個調(diào)度周期內(nèi)該類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中該類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和。需要說明的是,隊列是報文在轉(zhuǎn)發(fā)過程中的一種存儲形式。當流量的速率超過端口帶寬或者超過為該流量設(shè)置的帶寬時,報文就會以隊列的形式存儲在端口的緩存中。報文離開隊列的時間、順序以及各個隊列之間報文離開的相互關(guān)系由本發(fā)明實施例提供的方法決定。流隊列(FQ)是實體隊列,用于緩存用戶各個業(yè)務(wù)流的數(shù)據(jù)報文,報文進入和離開隊列時會有延遲。而虛擬的隊列不存在實際的緩存單元,不能暫存數(shù)據(jù)報文,報文進入和離開隊列時沒有延遲。本發(fā)明實施例中所說的每一類數(shù)據(jù)流即為集合了全部端口中的該類數(shù)據(jù)流隊列的數(shù)據(jù)流的總稱。也即,如圖4所示的隊列調(diào)度結(jié)構(gòu)示意圖,將每個端口的流隊列進行重新排列組合,將同種類型的流合并,相當于將各條流(本實施例以8條為例,但不用以限定流隊列的實際數(shù)目)匯總,每條流由多個端口(本實施例以8個端口為例,但不用以限定端口的實際數(shù)目)中的相應(yīng)類數(shù)據(jù)流隊列組成。每一類數(shù)據(jù)流的權(quán)重均由CPU進行設(shè)定。參見步驟201中的描述“CPU根據(jù)用戶的需求設(shè)置每一個流隊列的權(quán)限值”,也即同一類數(shù)據(jù)流隊列組成的數(shù)據(jù)流所擁有的權(quán)重即為步驟201中CPU設(shè)定的權(quán)限值。其中,假設(shè)第N類數(shù)據(jù)流的權(quán)重為Wn,則以Wn可以取 O 255之間的任意值為例進行權(quán)重的具體說明當Wn為O時,可以表示不給該類數(shù)據(jù)流分配任何帶寬;當Wn為255時,可以表示按照流ID (如O 7)的順序分配固定優(yōu)先級(PQ)的帶寬;當Wn為I 254時,可以表示該類數(shù)據(jù)流分配的帶寬比例為
I
「 Wn active ι
Σ丄
ttw,其中,權(quán)重值越高,獲得所分配的帶寬越低,而且只在有效的隊列之間分配總帶寬。上標active用于表示有數(shù)據(jù)的流隊列,對于無數(shù)據(jù)的流隊列不考慮其占用帶寬。具體的,第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值的計算可以如下式所示Credn = Credn_prev+ffn*An_prev其中,Credn表示第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,Credn_prev表示第N 類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值,fc表示第N類數(shù)據(jù)流的權(quán)重,An_preV表示在上一個調(diào)度周期內(nèi)第N類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度。其中,An_preV可以以字節(jié)為單位。需要說明的是,上述第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值的計算公式還可以具有多種變形。例如Credn = Credn_prev+An_prev/Wn。再如,對Credn_prev進行定時或者觸發(fā)式的清零等,即Credn = Wn*An_prev,或者,Credn = An_prev/ffn等等。此處不做贅述。步驟302、根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級。從上式中可以看出,信用值越高,也即累積越多、權(quán)重越高或者數(shù)據(jù)的發(fā)送量越大,該類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級就越低。因此,可以將各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值分別進行比較,信用值越小,調(diào)度優(yōu)先級越高。具體的,信用值之間可以采用兩兩選擇的思路,例如第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值與第M類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值相比較,N和M可以取任意值。也即在有效的流隊列組成的數(shù)據(jù)流中,信用值越小,相應(yīng)的數(shù)據(jù)流的調(diào)度優(yōu)先級越高。如果信用值相等,則選擇編號較小的一方。步驟303、根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列。具體的,在各類數(shù)據(jù)流中,選擇調(diào)度優(yōu)先級最高的第M類數(shù)據(jù)流所對應(yīng)的數(shù)據(jù)流隊列進行調(diào)度。本發(fā)明實施例提供的多端口多流的調(diào)度方法,分別根據(jù)每一類數(shù)據(jù)流上一調(diào)度周期內(nèi)的信用值、權(quán)重以及在上一調(diào)度周期內(nèi)已發(fā)送的數(shù)據(jù)長度獲得每一類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,再根據(jù)信用值確定調(diào)度優(yōu)先級,進而確定在當前調(diào)度周期內(nèi)調(diào)度的數(shù)據(jù)流隊列,有效實現(xiàn)了多端口多流的情況下數(shù)據(jù)流的調(diào)度。其中,基于有效隊列進行實時仲裁,不會浪費時間去查詢無效的隊列。由于FPGA內(nèi)部有現(xiàn)成的乘法器IP去實現(xiàn)信用值的計算,也有大量的選擇器去實現(xiàn)所謂的“兩兩選擇”,因此可以在固定的時鐘周期內(nèi)快速輸出調(diào)度結(jié)果。下面,對步驟203中所說的端口的調(diào)度方法進行詳細的說明。如圖5所示的本發(fā)明實施例三提供的多端口多流的調(diào)度方法流程圖,在上述實施方式的基礎(chǔ)上,步驟303之后, 該方法還可以包括步驟304、根據(jù)組成該第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度從高到低的順序,調(diào)度各端口。通常情況下,可以基于端口公平的調(diào)度,令先接收到數(shù)據(jù)的端口先發(fā)送數(shù)據(jù)。但是,也要考慮應(yīng)用場景的約束,也即,如果當前流沒有可用的bd,那么已仲裁的端口就沒有機會轉(zhuǎn)發(fā)數(shù)據(jù),但出于公平的目的,還需要保留已仲裁的端口的發(fā)送機會,因此,引入端口的優(yōu)先度的概念。每一個端口的初始優(yōu)先度都是相同的,如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),但無法發(fā)送(例如,沒有可用的緩存),則端口的優(yōu)先度增加;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),且可以發(fā)送,則優(yōu)先度清零;如果第X個端口被調(diào)度時,無待發(fā)送的數(shù)據(jù),則端口的優(yōu)先度不變,其中,X為大于等于O的正整數(shù)。需要說明的是,端口的優(yōu)先度越高,說明端口的優(yōu)先級越高。則該端口可以被優(yōu)先調(diào)度。本發(fā)明實施例提供的多端口多流的調(diào)度方法,在端口的調(diào)度中引入了優(yōu)先度的概念,不僅實現(xiàn)了端口之間的調(diào)度公平,也在一定程度上實現(xiàn)了時間維度的公平。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖6為本發(fā)明實施例四提供的數(shù)據(jù)流的調(diào)度裝置結(jié)構(gòu)示意圖,該裝置可以通過 FPGA實現(xiàn),具體的調(diào)度流程可以參考上述方法實施例的介紹,此處不做贅述。如圖6所示, 該裝置可以包括信用值確定模塊601、優(yōu)先級確定模塊602以及數(shù)據(jù)流調(diào)度模塊603。其中,信用值確定模塊601用于分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,所述在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中所述類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和;優(yōu)先級確定模塊602用于根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級;數(shù)據(jù)流調(diào)度模塊603用于根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列。在上述實施方式的基礎(chǔ)上,信用值確定模塊601具體包括計算單元,用于根據(jù)如下公式獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值Credn = Credn_prev+ffn*An_prev其中,Credn表示第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,Credn_prev表示第N 類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值,fc表示第N類數(shù)據(jù)流的權(quán)重,An_preV表示在上一個調(diào)度周期內(nèi)第N類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度。在上述實施方式的基礎(chǔ)上,優(yōu)先級確定模塊602具體包括比較單元,用于將各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值分別進行兩兩比較,信用值越小,調(diào)度優(yōu)先級越高。在上述實施方式的基礎(chǔ)上,數(shù)據(jù)流調(diào)度模塊603具體包括選擇單元,用于在各類數(shù)據(jù)流中,選擇調(diào)度優(yōu)先級最高的第M類數(shù)據(jù)流所對應(yīng)的數(shù)據(jù)流隊列進行調(diào)度。進一步的,該裝置還可以包括端口調(diào)度模塊,用于根據(jù)組成所述第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度從高到低的順序,調(diào)度各端口。其中,端口調(diào)度模塊還包括計算單元,用于通過如下方式計算第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度設(shè)置每一個端口的初始優(yōu)先度相同;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),但無法發(fā)送,則優(yōu)先度增加;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),且可以發(fā)送,則優(yōu)先度清零;如果第X個端口被調(diào)度時,無待發(fā)送的數(shù)據(jù),則優(yōu)先度不變;X為大于等于O的正整數(shù)。本發(fā)明實施例五還提供了一種多端口多流的調(diào)度設(shè)備結(jié)構(gòu)示意圖,該設(shè)備中包括如圖I所示的端口、調(diào)度模塊、bd管理模塊、接口適配模塊以及CPU,具體的,圖I中所示的調(diào)度模塊如上述裝置實施例所述的多端口多流的調(diào)度裝置。需要說明的是,該多端口多流的調(diào)度裝置可以作為多端口多流的調(diào)度設(shè)備的硬件組成存在于該設(shè)備中,也可以作為運行在該設(shè)備的軟件功能模塊存在于該設(shè)備中。最后應(yīng)說明的是以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制; 盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
權(quán)利要求
1.一種多端口多流的調(diào)度方法,其特征在于,包括分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,所述在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中所述類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和;根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級;根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M 類數(shù)據(jù)流隊列。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值具體包括Credn = Credn—prev+Wn*An—prev其中,Credn表示第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,Credn_prev表示第N類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值,fc表示第N類數(shù)據(jù)流的權(quán)重,An_preV表示在上一個調(diào)度周期內(nèi)第N類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級具體包括將各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值分別進行比較,信用值越小,調(diào)度優(yōu)先級越聞。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列具體包括在各類數(shù)據(jù)流中,選擇調(diào)度優(yōu)先級最高的第M類數(shù)據(jù)流所對應(yīng)的數(shù)據(jù)流隊列進行調(diào)度。
5.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述每一類數(shù)據(jù)流對應(yīng)至少由一個端口中的相應(yīng)類的數(shù)據(jù)流隊列,則所述根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列之后,所述方法還包括根據(jù)組成所述第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度從高到低的順序,調(diào)度各端口。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述組成所述第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度的計算方法包括設(shè)置每一個端口的初始優(yōu)先度相同;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),但無法發(fā)送,則優(yōu)先度增加;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),且可以發(fā)送,則優(yōu)先度清零;如果第X個端口被調(diào)度時,無待發(fā)送的數(shù)據(jù),則優(yōu)先度不變;X為大于等于O的正整數(shù)。
7.一種多端口多流的調(diào)度裝置,其特征在于,包括信用值確定模塊,用于分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,所述在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中所述類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和;優(yōu)先級確定模塊,用于根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級;數(shù)據(jù)流調(diào)度模塊,用于根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述信用值確定模塊具體包括計算單元,用于根據(jù)如下公式獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值Credn = Credn—prev+Wn*An—prev其中,Credn表示第N類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,Credn_prev表示第N類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值,fc表示第N類數(shù)據(jù)流的權(quán)重,An_preV表示在上一個調(diào)度周期內(nèi)第N類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,優(yōu)先級確定模塊具體包括比較單元,用于將各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值分別進行兩兩比較,信用值越小,調(diào)度優(yōu)先級越高。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)流調(diào)度模塊具體包括選擇單元,用于在各類數(shù)據(jù)流中,選擇調(diào)度優(yōu)先級最高的第M類數(shù)據(jù)流所對應(yīng)的數(shù)據(jù)流隊列進行調(diào)度。
11.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述裝置還包括端口調(diào)度模塊,用于根據(jù)組成所述第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度從高到低的順序,調(diào)度各端口。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述端口調(diào)度模塊還包括計算單元, 用于通過如下方式計算所述第M類數(shù)據(jù)流對應(yīng)的第M類數(shù)據(jù)流隊列所在端口的優(yōu)先度設(shè)置每一個端口的初始優(yōu)先度相同;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),但無法發(fā)送,則優(yōu)先度增加;如果第X個端口被調(diào)度時,有待發(fā)送的數(shù)據(jù),且可以發(fā)送,則優(yōu)先度清零;如果第X個端口被調(diào)度時,無待發(fā)送的數(shù)據(jù),則優(yōu)先度不變;x為大于等于O的正整數(shù)。
13.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述裝置為可編程現(xiàn)場門陣列FPGA-H-* I I心/T O
14.一種多端口多流的調(diào)度設(shè)備,包括端口、調(diào)度模塊、bd管理模塊、接口適配模塊以及CPU,其特征在于,所述調(diào)度模塊如上述權(quán)利要求7至13中任一項所述。
全文摘要
本發(fā)明提供一種多端口多流的調(diào)度方法、裝置及設(shè)備。方法包括分別根據(jù)每一類數(shù)據(jù)流在上一個調(diào)度周期內(nèi)的信用值、所述類數(shù)據(jù)流的權(quán)重、以及在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度,獲得各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值,所述在上一個調(diào)度周期內(nèi)所述類數(shù)據(jù)流已發(fā)送的數(shù)據(jù)長度為上一個調(diào)度周期內(nèi)全部端口中所述類數(shù)據(jù)流隊列發(fā)送的數(shù)據(jù)長度之和;根據(jù)所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的信用值確定所述各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級;根據(jù)各類數(shù)據(jù)流在當前調(diào)度周期內(nèi)的調(diào)度優(yōu)先級確定在當前調(diào)度周期內(nèi)調(diào)度的第M類數(shù)據(jù)流隊列。裝置包括信用值確定模塊、優(yōu)先級確定模塊和數(shù)據(jù)流調(diào)度模塊。設(shè)備包括上述裝置。
文檔編號H04L12/56GK102594670SQ20121002542
公開日2012年7月18日 申請日期2012年2月6日 優(yōu)先權(quán)日2012年2月6日
發(fā)明者黃希賢 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司