專利名稱:節(jié)點裝置和分組傳輸控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及如路由器或交換機的節(jié)點裝置和一個分組傳輸控制方法,該節(jié)點裝置根據(jù)分組或信元屬性在一個給定的隊列里存儲所接收到的分組或信元并根據(jù)各個隊列的傳輸環(huán)境設(shè)置來控制分組的傳輸,具體的,涉及一個從很多隊列中高速發(fā)送分組的節(jié)點裝置和一個分組傳輸控制方法。
為簡單起見,在本說明書中下文中,如路由器和交換機的節(jié)點裝置將被簡稱為節(jié)點裝置,并且分組或信元將被簡稱為分組。
總的來說,一個節(jié)點裝置具有多個與分組屬性相應(yīng)的隊列并且對各個隊列設(shè)置了傳輸條件。節(jié)點裝置包括分組傳輸控制器,該控制器根據(jù)分組屬性在給定的隊列中存儲一個接收到的分組并根據(jù)各個隊列的傳輸條件設(shè)置來發(fā)送分組。
作為一個傳統(tǒng)分組傳輸控制方法,可使用加權(quán)輪循機制(M.Katavenis etal.“Weighted round-robin cell multiplexing a general-purpose ATM switchchip”,IEEE Journals on Selected Areas in Communication,col.9,No.8,1991;在下文中將被稱為WRR機制)。在WRR機制中,對每一隊列設(shè)置了一個權(quán)重,并根據(jù)所設(shè)權(quán)重比從每一隊列中發(fā)送一個分組。
在WRR機制中,對每一隊列設(shè)置權(quán)重。權(quán)重被分配給每一隊列。當共享線帶(line band)時,各個隊列根據(jù)權(quán)重來發(fā)送分組。對每個隊列,WRR節(jié)點裝置都有一個計數(shù)器。每個計數(shù)器記錄可從相應(yīng)的隊列中發(fā)送的分組數(shù)。每一計數(shù)器的初始值是相應(yīng)的權(quán)重。對每一隊列設(shè)置了一個循環(huán)序列。
在該機制中,根據(jù)循環(huán)序列,節(jié)點裝置搜索其中存有一個或多個分組并且計數(shù)值大于等于1的隊列。當找到其中存有一個或多個分組并且計數(shù)值大于等于1的隊列時,節(jié)點裝置從該隊列中發(fā)送一個分組并將計數(shù)器減1。根據(jù)循環(huán)序列,節(jié)點裝置從已發(fā)送完分組的隊列的相鄰隊列開始搜索其中存有一個或多個分組并且計數(shù)值大于等于1的隊列。
如果不存在其中存有一個或多個分組并且計數(shù)值大于等于1的隊列,即不存在可發(fā)送分組的隊列,即使在隊列循環(huán)完一圈以后,節(jié)點裝置也將全部隊列的計數(shù)器值都返回到初始值,即加權(quán)值,然后重新開始處理。在下文中,將計數(shù)器值返回到初始值的操作將被稱為復(fù)位操作。
因此,在WRR機制中,當只有一個隊列可以發(fā)送分組并從該隊列中發(fā)送出一個分組時,節(jié)點裝置將檢查全部序列以識別分組是否可被發(fā)送。節(jié)點裝置必須最大量的檢查所有隊列以發(fā)送一個分組。該處理量與隊列數(shù)成比例。因此,當隊列數(shù)增多時,不能提高節(jié)點裝置的分組處理速度。
日本專利待審公開號2001-053798公開了在WRR機制中提高分組處理速度的第一種傳統(tǒng)方法。根據(jù)在日本專利待審公開號2001-053798所公開的方法,按內(nèi)容尋址存儲器(CAM)被安裝在節(jié)點裝置中并被用來選擇可發(fā)送分組的隊列。在按內(nèi)容尋址存儲器中記錄有每一隊列的狀態(tài)以進行與檢索詞相匹配的快速隊列搜索。節(jié)點裝置通過使用指示其中含有可發(fā)送分組的隊列狀態(tài)的檢索詞來搜索按內(nèi)容尋址存儲器以尋找下一次可發(fā)送分組的隊列。
基于該方法的節(jié)點裝置總能在預(yù)定時間段中找到可發(fā)送分組的隊列,而與隊列數(shù)無關(guān)。因此,在具有很多隊列的情況下,對高速處理而言,該裝置是十分有效的。
日本專利待審公開號11-041316公開了在WRR機制中提高分組處理速度的第二種傳統(tǒng)方法。根據(jù)在日本專利待審公開號11-041316公開的方法,節(jié)點裝置管理第一和第二列表。第一列表管理可發(fā)送分組的隊列,即管理在每一隊列中計數(shù)器值大于等于1并存儲有一個或多個分組的隊列號。第二列表管理每個隊列中存儲有一個或多個分組但由于計數(shù)器值為0而不能發(fā)送分組的隊列號。
節(jié)點裝置在第一列表開始提取出隊列號并從該號隊列中發(fā)送分組。如果在發(fā)送完分組后,隊列仍處于準備狀態(tài),節(jié)點裝置將該隊列號加入到第一列表的尾。當在發(fā)送完分組的隊列中留有分組且計數(shù)器值為0時,節(jié)點裝置將該隊列加入到第二列表。當在已發(fā)送完分組的隊列中計數(shù)器值變?yōu)?時,節(jié)點裝置將不把該隊列加入任一列表中。
當不存在可以發(fā)送分組的隊列時,即第一列表變?yōu)榭諘r,節(jié)點裝置對全部隊列的計數(shù)器執(zhí)行復(fù)位操作。然后,節(jié)點裝置將第二列表中的所有隊列號加入到第一列表中,并重新開始分組處理。
作為第三種傳統(tǒng)方法,可利用一個不充分輪循機制,該機制是另一種傳統(tǒng)分組傳輸控制方法(M.Shreedhar and G.Varghese,“Efficient FairQueuing using Deficit Round Robin”,IEEE/ACM Transactions onNetworking,在下文中稱為DRR機制)。DRR機制與WRR機制一樣,在該機制中節(jié)點裝置具有權(quán)重和計數(shù)器。
不同于在WRR機制中的從各個隊列中一個接一個的循環(huán)發(fā)送分組,在DRR機制中,連續(xù)發(fā)送處于一個隊列中的可發(fā)送分組。與WRR機制不同,DRR機制中的計數(shù)器值表示可發(fā)送分組的數(shù)據(jù)量(即字節(jié))。另外,權(quán)重和數(shù)據(jù)量被定義為單位。此外,當對計數(shù)器作復(fù)位操作時,權(quán)重被加到計數(shù)器中。
因此,節(jié)點裝置管理前述的第一列表。節(jié)點裝置從第一列表頭提取出隊列號并連續(xù)發(fā)送分組直到在該號隊列中不留有分組或計數(shù)值小于第一分組的分組長度。當發(fā)送完一個分組時,節(jié)點裝置從計數(shù)器中減去分組長度。
當從一個隊列中發(fā)送完可被發(fā)送的全部分組時,節(jié)點裝置執(zhí)行隊列計數(shù)器的復(fù)位操作。如果在隊列中存有一個或多個分組時,節(jié)點裝置將該隊列加入到第一列表尾部。
根據(jù)又一傳統(tǒng)分組傳輸控制方法,不同于WRR機制和DRR機制,該方法不使用計數(shù)器,而使用了傳輸時間。如該方法的范例,可利用加權(quán)公平排隊機制(A.K.Parekh and R.G.Gallager,“A Generalized processor sharingapproach to flow control in integrated services networks-The single nodecase”IEEE INFOCOM92,Vo.12,1992;在下文中稱為WFQ機制)和從WFQ導(dǎo)出的各種機制。
在WFQ機制中,節(jié)點裝置記錄從每一隊列中發(fā)送出的最后一個分組的虛擬傳輸結(jié)束時間,并隨后以最早傳輸結(jié)束時間從一個隊列中發(fā)送分組。因此,在WFQ機制中,當要發(fā)送一個分組時,節(jié)點裝置必須搜索到一個隊列,該隊列在全部隊列中具有最早傳輸結(jié)束時間??偟膩碚f,用于搜索具有最早傳輸結(jié)束時間的隊列的處理計算量與隊列數(shù)成比例,因此,當隊列數(shù)增多時,不能提高節(jié)點裝置的分組處理速度。
在WFQ機制中,一個能提高分組處理速度的傳統(tǒng)方法使用了指示傳輸分組調(diào)度的時間表(日程表)(canlendar)。注意該時間表被稱為時間輪(time wheel)等。時間表包括多個條目(entry)。各個條目指示時間并按年月日時間順序排列。在每一條目上,記錄有在相應(yīng)時間上被調(diào)度而發(fā)送分組的隊列號。
節(jié)點裝置根據(jù)傳輸結(jié)束時間生成時間表,并在發(fā)送分組時使用該時間表。當處于每一隊列傳輸時間的相應(yīng)條目時,記錄隊列號。當要發(fā)送分組時,節(jié)點裝置通過讀取按時間順序排列的時間表條目而得到隊列以發(fā)送分組。使用該操作,當要發(fā)送一個分組時,節(jié)點裝置不必進行大量的處理以在全部隊列中找到具有最早傳輸結(jié)束時間的一個隊列,該處理與隊列數(shù)成比例。
已經(jīng)提議了與WFQ機制相似的各種機制。如,在日本專利待審公開號2000-183959公開了第四種傳統(tǒng)方法。根據(jù)在日本專利待審公開號2000-183959所公開的方法,節(jié)點裝置在時間表的每一條目上記錄隊列,該隊列發(fā)送分組的時間與條目相對應(yīng)。在該情況下,節(jié)點裝置可以以列表形式在每一條目上記錄多個隊列。
在第一傳統(tǒng)機制中,節(jié)點裝置必須具有按內(nèi)容尋址存儲器。由于按內(nèi)容尋址存儲器要比普通存儲器要貴得多,因此基于第一傳統(tǒng)機制的節(jié)點裝置價格很高。除按內(nèi)容尋址存儲器外,基于第一傳統(tǒng)機制的節(jié)點裝置還需要含有被用為計數(shù)器的一個普通存儲器。這進一步提高了裝置的價格。
在第二傳統(tǒng)機制中,如
圖14所示出,第一和第二列表一般具有一個結(jié)構(gòu),在該結(jié)構(gòu)中各個數(shù)據(jù)由指針相連接。在該結(jié)構(gòu)中,每一指針必須在下一指針讀取之前讀出。因此,該節(jié)點裝置至多將分組傳送的時間間隔縮短為讀取指針的時間間隔。根據(jù)第二傳統(tǒng)機制,不能產(chǎn)生可應(yīng)用到超高速線的節(jié)點裝置。
在第三傳統(tǒng)機制中,由于節(jié)點裝置管理列表中的隊列號,如在第二傳統(tǒng)機制中一樣,裝置不能被應(yīng)用到超高速線上。
在基于第二傳統(tǒng)機制的節(jié)點裝置中,當其上記錄有隊列號的列表以表格的形式被管理,在該表格中隊列號如圖15所示的順序排列時,在前一隊列號被讀出之前可以讀出下一隊列號。這使高速操作成為可能。然而,在節(jié)點裝置中需要與列表數(shù)相等的表格,因此如在基于第二傳統(tǒng)機制一樣,需要一個很大的存儲器來管理多個列表。
在第四傳統(tǒng)機制中,對每一傳輸時間,節(jié)點裝置管理列表中的隊列號。因此,當通過使用具有一般結(jié)構(gòu)的列表來管理隊列號,在該結(jié)構(gòu)中各個數(shù)據(jù)由指針進行連接,分組傳輸?shù)臅r間間隔至多被縮短為從存儲器中讀出隊列號的所需時間。因此,節(jié)點裝置不能應(yīng)付超高速線。
根據(jù)第二至第四傳統(tǒng)機制,節(jié)點裝置從列表中提取出隊列號,讀出與所提取的號碼有關(guān)的狀態(tài)變量,然后發(fā)送分組。當發(fā)送該分組時,節(jié)點裝置更新狀態(tài)變量,并按照該結(jié)果將隊列號加入合適的列表中。由于從存儲器中讀出數(shù)據(jù)所耗費的時間比執(zhí)行其他處理的時間長,因此,從存儲器中讀取出狀態(tài)變量妨礙了節(jié)點裝置處理速度的提高。
本發(fā)明的第二個目的是提供一個價格低廉的節(jié)點裝置和分組傳輸控制方法,該裝置和方法控制分發(fā)到多個隊列的分組的高速傳輸。
本發(fā)明的第三個目的是提供一個節(jié)點裝置和分組傳輸控制方法,該裝置和方法可以通過執(zhí)行與隊列狀態(tài)變量有關(guān)的快速處理而被應(yīng)用到超高速線上。
本發(fā)明的第四個目的是提供一個節(jié)點裝置和分組傳輸控制方法,該裝置和方法可以通過讀取隊列號,該讀取時間間隔比指針讀取時間間隔短而被應(yīng)用到超高速線上。
為達到上述目的,根據(jù)本發(fā)明,提供了一個節(jié)點裝置,該節(jié)點裝置將所接收到的分組存儲在多個隊列的一個隊列中,該裝置根據(jù)每一隊列的狀態(tài)變量判斷每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài),并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組,該節(jié)點裝置包括列表裝置,其中寫有處于分組傳輸準備狀態(tài)的隊列號并管理其中寫有號碼的順序,狀態(tài)變量存儲裝置,用于存儲與全部隊列有關(guān)的狀態(tài)變量,狀態(tài)變量暫存裝置,其中只暫存與一些隊列相關(guān)的狀態(tài)變量,這些隊列的號碼落入到從列表裝置開始的一個預(yù)定范圍之內(nèi)并且其數(shù)據(jù)量比狀態(tài)變量存儲裝置少,和控制裝置,用于從隊列中發(fā)送分組,該隊列是從列表裝置的開始處提取出的,并更新狀態(tài)變量暫存裝置中的隊列狀態(tài)變量。
圖1示出了根據(jù)本實施例的節(jié)點裝置的布局。
請看圖1,節(jié)點裝置100包括一個分組分發(fā)部分101,隊列102-1至102-n,分組輸出部分103,準備隊列列表104-1和104-2,等待隊列列表105-1和105-2,復(fù)位控制部分106,輸入控制部分107,輸出控制部分108,狀態(tài)變量存儲部分109和狀態(tài)變量暫存部分110。
該分組分發(fā)部分101從線L1中接收分組并檢查分組屬性以選擇其中應(yīng)存儲該分組的隊列。路由器,作為節(jié)點裝置的示例,從所接收到的分組屬性即源IP地址,目的IP地址,第四層協(xié)議號,源端口號,目的端口號和TOS(Type of Service,業(yè)務(wù)類型)信息中判斷隊列,。節(jié)點裝置的另一個示例為以太交換機,從所接收到的分組屬性即,源MAC地址,目的MAC地址,IEEE802.1p優(yōu)先級和VLAN-ID中判斷隊列。
隊列102-1至102-n暫時存儲由分組分發(fā)部分101根據(jù)它們的屬性分發(fā)的分組。在該情況下,“n”代表隊列號。當隊列號n很大時,該實施例很有效。
分組輸出部分103從由輸出控制部分108指定的隊列的開始(start)提取出一個分組并將其發(fā)送到線L2。
準備隊列列表104-1和104-2保存可發(fā)送分組的隊列號??砂l(fā)送分組的隊列是其中的計數(shù)器值大于等于1并在其中存有一個或多個分組的隊列?;旧?,可發(fā)送分組的隊列號交替地寫入到準備隊列列表104-1和104-2中,并可選的從中提取出。
等待隊列列表105-1和105-2保存處于分組傳輸?shù)却隣顟B(tài)的隊列號。分組傳輸?shù)却隣顟B(tài)是其中存儲有一個或多個分組但是計數(shù)器值小于等于0的狀態(tài)?;旧?,處于等待狀態(tài)的隊列號被交替地寫入到等待隊列列表105-1和105-2中。
當從輸出控制部分108接收到指令時,復(fù)位控制部分106通過將等待隊列列表105-1的內(nèi)容轉(zhuǎn)移到準備隊列列表104-1中并將等待隊列列表105-2的內(nèi)容轉(zhuǎn)移到準備隊列列表104-2中來執(zhí)行復(fù)位操作。
輸入控制部分107從狀態(tài)變量存儲部分109或狀態(tài)變量暫存部分110中讀出隊列的狀態(tài)變量,在該隊列中應(yīng)存儲所接收到的分組。然后,輸入控制部分107根據(jù)狀態(tài)變量將隊列號加到準備隊列列表104-1和104-2、等待隊列列表105-1和105-2的任意一個中。
為控制來自各個隊列的分組傳輸,首先,輸出控制部分108從準備隊列列表104-1或104-2的開始(start)處讀出隊列號,并從狀態(tài)變量暫存部分110讀出與該號隊列有關(guān)的狀態(tài)變量。這時,輸出控制部分108可交替地從準備隊列列表104-1和104-2中讀出隊列號。然后,輸出控制部分108給分組輸出部分103發(fā)送一個指令以從相應(yīng)隊列中發(fā)送分組。輸出控制部分108也更新狀態(tài)變量并基于所更新的狀態(tài)變量將隊列號加入到列表中。另外,當給分組輸出部分103發(fā)送指令來發(fā)送分組而準備隊列列表104-1和104-2都為空時,輸出控制部分108指示復(fù)位控制部分106來執(zhí)行復(fù)位操作。
狀態(tài)變量存儲部分109保存與各個隊列有關(guān)的狀態(tài)變量。狀態(tài)變量是如權(quán)重、計數(shù)器值、復(fù)位狀態(tài)或隊列長度的信息。權(quán)重被分配給每一隊列。每一隊列由根據(jù)權(quán)重劃分的線的帶寬來發(fā)送分組。計數(shù)器被提供給每一隊列并且該計數(shù)器管理可從隊列中發(fā)送的分組數(shù)據(jù)量。復(fù)位狀態(tài)指示當接收到復(fù)位指示時復(fù)位控制部分106是否真的復(fù)位了計數(shù)器。如果在接收到復(fù)位指示時,復(fù)位控制部分106沒有復(fù)位計數(shù)器,隊列的計數(shù)器處于非復(fù)位狀態(tài)。如果已經(jīng)復(fù)位了計數(shù)器,計數(shù)器處于完全復(fù)位狀態(tài)。
狀態(tài)變量暫存部分110暫時保存存儲在狀態(tài)變量存儲部分109中的一些狀態(tài)變量,這些狀態(tài)變量與從準備隊列列表104-1和104-2,等待隊列列表105-1和105-2的開始的小于等于m的隊列有關(guān)。保存在狀態(tài)變量暫存部分110的狀態(tài)變量是部分的預(yù)取(prefetched)信息以用來高速的執(zhí)行分組傳輸處理。
圖2示出了根據(jù)本實施例的分組接收操作。
請看圖2,在步驟S101中當從圖1的線L1中接收到分組時,分組分發(fā)部分101判決在其中應(yīng)存儲該分組的一個隊列。在步驟102,分組分發(fā)部分101根據(jù)判決結(jié)果將分組存儲到其中一個隊列中。
在步驟S103,輸入控制部分107檢查在將要存儲所接收到分組的隊列中是否存有另一分組。如果在將要存儲所接收到分組的隊列中存有另一分組時,節(jié)點裝置100終止分組接收操作。
如果在將要存儲所接收到分組的隊列中不存有其他分組時,輸入控制部分107從狀態(tài)變量存儲部分109或狀態(tài)變量暫存部分110中讀出隊列的計數(shù)器值和復(fù)位狀態(tài)。
在步驟S105,輸入控制部分107檢查隊列的計數(shù)器是否處于完全復(fù)位狀態(tài)并且計數(shù)器值是否小于等于0。
如果隊列的計數(shù)器值大于等于1或隊列處于非復(fù)位狀態(tài),在步驟S107中,輸入控制部分107將隊列號加入到其中一個準備隊列列表104-1和104-2中。注意隊列號可被交替地加入到準備隊列列表104-1和104-2中。可選的,隊列號可以被加入到記錄有更少數(shù)目的隊列號的準備隊列列表104-1和104-2其中之一,或者隊列號可被加入到列表中沒有寫入隊列號或沒有從中讀出隊列號的列表的其中之一。如果隊列的計數(shù)器處于完全復(fù)位狀態(tài)并且計數(shù)器值小于等于0,在步驟S106中輸入控制部分107將隊列號加入到等待隊列列表105-1和105-2其中之一。注意隊列號被可選的加入到準備隊列列表105-1和105-2中。可選的,隊列號可以被加入到準備隊列列表105-1和105-2其中之一,在該隊列上記錄有更少數(shù)目的隊列號,或者隊列號可被加入到其中一個列表,在該列表中沒有寫入隊列號或沒有從中讀出隊列號。
在步驟S108,輸入控制部分107檢查從列表開始的所加入隊列是否具有小于等于m的序數(shù)(ordinal number)。
如果從列表開始的所加入隊列具有小于等于m的序數(shù),在步驟S109,輸入控制部分107將來自狀態(tài)變量存儲部分109的隊列狀態(tài)變量轉(zhuǎn)移到狀態(tài)變量暫存部分110中。然后,節(jié)點裝置100終止分組接收操作。
如果從列表開始的所加入隊列不具有小于等于m的序數(shù),節(jié)點裝置100立刻終止分組接收操作。
圖3示出了根據(jù)本實施例的節(jié)點裝置的分組發(fā)送操作流程圖。
請看圖3,首先,在步驟201輸出控制部分108檢查準備隊列列表104-1和104-2是否都為空。
如果準備隊列列表104-1和104-2都為空,在步驟S202中,輸出控制部分108指示復(fù)位控制部分106復(fù)位全部隊列。在步驟203,復(fù)位控制部分106將準備隊列列表104-1和104-2的內(nèi)容轉(zhuǎn)移到等待隊列列表105-1和105-2中。
這時,輸出控制部分108可將加權(quán)值加到全部計數(shù)器中并復(fù)位計數(shù)器。然而,該操作耗費了很長時間。因此,在實施例中,當從一個給定隊列中發(fā)送分組時,輸出控制部分108復(fù)位該隊列的計數(shù)器。因此,在此情況下,復(fù)位控制部分106只在從輸出控制部分108接收到指令時執(zhí)行復(fù)位操作。因此,輸出控制部分108記錄每一隊列的復(fù)位指示時間和復(fù)位處理時間。
復(fù)位指示時間是指輸出控制部分108向復(fù)位控制部分106給出復(fù)位指令的時間。復(fù)位處理時間是指隊列的計數(shù)器最終被復(fù)位的時間。因此,如果復(fù)位處理時間比復(fù)位指示時間早,隊列處于非復(fù)位狀態(tài)。如果復(fù)位指示時間比復(fù)位處理時間晚,隊列處理完全復(fù)位狀態(tài)。
在步驟S204,輸出控制部分108檢查準備隊列列表104-1和104-2是否都為空。如果準備隊列列表104-1和104-2都為空,節(jié)點裝置100終止分組發(fā)送操作。
如果在步驟S201或S204中判斷至少一個準備隊列列表104-1和104-2不為空,輸出控制部分108從其中一個準備隊列列表的開始提取出一個隊列號。注意隊列號被可選的從準備隊列列表104-1和104-2中提取出??蛇x的,隊列號可以從準備隊列列表104-1和104-2之一被提取出,在該列表中記錄了大量數(shù)目的隊列號。
在步驟206,輸出控制部分108檢查在經(jīng)過步驟S205的處理之后,從準備隊列列表開始是否存在一個序數(shù)為m的新隊列。
如果從準備隊列列表開始存在一個序數(shù)m的新隊列,輸出控制部分108將隊列狀態(tài)變量從狀態(tài)變量存儲部分109轉(zhuǎn)移到狀態(tài)變量暫存部分110中。
如果在步驟S206中判定從準備隊列列表開始不存在序數(shù)m的隊列時,或經(jīng)過步驟S207的處理之后,在步驟S208中輸出控制部分108指示分組輸出部分103從該號碼是在步驟205中提取出的隊列中發(fā)送分組。分組輸出部分103從由輸出控制部分108指定的隊列中發(fā)送第一個分組。
在步驟S209,輸出控制部分從狀態(tài)變量暫存部分110中讀出權(quán)重、計數(shù)器值和隊列復(fù)位狀態(tài)。
在步驟S210,輸出控制部分108判斷該隊列是否處于非復(fù)位狀態(tài)。
如果該隊列處于非復(fù)位狀態(tài),在步驟S211中,輸出控制部分108復(fù)位計數(shù)器以將復(fù)位狀態(tài)變?yōu)橥耆珡?fù)位狀態(tài)。將復(fù)位狀態(tài)變?yōu)橥耆珡?fù)位狀態(tài)就是記錄復(fù)位處理時間。在復(fù)位計數(shù)器期間,加權(quán)值被加到計數(shù)器值上。然而,如果計數(shù)器值大于加權(quán)值,加權(quán)值就被指定為計數(shù)器值。
在步驟S212,輸出控制部分108從計數(shù)器中減去與步驟208中發(fā)送的分組長度相應(yīng)的值。在步驟S213,輸出控制部分108將計數(shù)器值、加權(quán)值和復(fù)位狀態(tài)重新存到狀態(tài)變量暫存部分110中。在步驟S214,輸出控制部分108檢查在發(fā)送完分組的隊列中是否還留有分組。如果在該隊列中不留有分組,節(jié)點裝置100終止分組發(fā)送操作。
如果在隊列中留有分組,在步驟S215輸出控制部分108檢查隊列的計數(shù)器值是否小于等于0。
如果計數(shù)器值小于等于0,在步驟S216中,輸出控制部分108將隊列號加到等待隊列列表105-1和105-2其中之一。如果計數(shù)器值大于等于1,在步驟S217中,輸出控制部分108將隊列號加入到準備隊列列表104-1和104-2其中之一。
在步驟S218,輸出控制部分108檢查從列表開始所加入的隊列是否具有小于等于m的序數(shù)。如果從列表開始所加入的隊列具有小于等于m的序數(shù),節(jié)點裝置100立刻終止分組傳輸操作。如果從列表開始所加入的隊列不具有小于等于m的序數(shù),在步驟219中,輸出控制部分108將隊列狀態(tài)變量從狀態(tài)變量暫存部分110返回到狀態(tài)變量存儲部分109中。
在本實施例的節(jié)點裝置100中,由于準備隊列列表和等待隊列列表都被分成兩個列表,所以即使每一列表中的數(shù)據(jù)由指針連接時,讀出隊列號所需的時間間隔也比指針讀取時間短。因此,該裝置可以被應(yīng)用到一個超高速線上。
根據(jù)本實施例的節(jié)點裝置100可以從由普通存儲器組成的列表中高速讀出隊列號,因此不需要按內(nèi)容尋址存儲器。因此,該裝置可以以低價應(yīng)用到超高速線上。
另外,根據(jù)本實施例的節(jié)點裝置100,可以生成一個具有一定結(jié)構(gòu)的列表,在該結(jié)構(gòu)中各個數(shù)據(jù)順序的以指針相連接,因此,不需要使用具有表格結(jié)構(gòu)的列表來執(zhí)行管理并不需要大容量的存儲器,在該表格結(jié)構(gòu)中隊列號以給定順序排列。因此,該裝置可以以低價被應(yīng)用到超高速線上。
而且,根據(jù)本實施例的節(jié)點裝置100預(yù)取在列表開始附近的隊列的狀態(tài)變量,因此,可以高速執(zhí)行分組傳輸處理。因此,該裝置可以被應(yīng)用到超高速線上。
此外,當發(fā)送分組時,根據(jù)本實施例的節(jié)點裝置100獨立的復(fù)位每一隊列的計數(shù)器而不是馬上復(fù)位各個隊列,因此,分組傳輸速度不限于復(fù)位操作所需的時間。因此,該裝置可被應(yīng)用到超高速線上。
本實施例示例了一個情況,其中準備隊列列表和等待隊列列表都包括兩個列表。然而,每一列表可包括三個或更多的列表。在該情況下,可以循環(huán)的存儲和提取隊列號,就如準備隊列列表和等待隊列列表都包括兩個列表的情況一樣??蛇x的,可以將一個新隊列加入到其中已存有最少數(shù)目隊列號的列表中,并且隊列號可從其中已存有最大數(shù)目隊列的列表中提取出。
本實施例已經(jīng)示例了一個情況,其中根據(jù)權(quán)重來從每一隊列中發(fā)送分組。然而,可以預(yù)先為每一隊列指定預(yù)定頻段,并根據(jù)指定給隊列的頻段來決定每一隊列是否處于準備狀態(tài)或等待狀態(tài)。在該情況下,以代替權(quán)重,可以使用表示指定給每一隊列的頻段數(shù)據(jù)。
可以參考相應(yīng)的附圖來描述本發(fā)明的另一實施例。根據(jù)本實施例的節(jié)點裝置保持從給定隊列中發(fā)送分組,一旦開始從該隊列中發(fā)送分組,一直發(fā)送,直到從該隊列中不能發(fā)送任何分組。
圖4示出了根據(jù)本發(fā)明的另一實施例的節(jié)點裝置的布局。
請看圖4,節(jié)點裝置200包括一個分組分發(fā)部分201,隊列201-1至202-n,分組輸出部分203,準備隊列列表204-1至204-2,輸入控制部分207,輸出控制部分208,狀態(tài)變量存儲部分209和狀態(tài)變量暫存部分210。
分組分發(fā)部分201的布局和操作與圖1中的分組分發(fā)部分101相同。隊列201-1至201-n的布局和操作與圖1中的隊列102-1至102-n相同。分組輸出部分203的布局和操作與圖1中的分組輸出部分103相同。準備隊列列表204-1和204-2的布局和操作與圖1中的準備隊列列表104-1和104-2相同。狀態(tài)變量存儲部分209的布局和操作與圖1中的狀態(tài)變量存儲部分109相同。狀態(tài)變量暫存部分210的布局和操作與圖1中的狀態(tài)變量暫存部分110相同。
圖4中的節(jié)點裝置200在輸入控制部分207和輸出控制部分208的操作與圖1中的節(jié)點裝置100不同。另外,圖4的節(jié)點裝置200與圖1的節(jié)點裝置100的不同之處在于節(jié)點裝置200不具有等待隊列列表也不具有復(fù)位控制部分。
輸入控制部分207從狀態(tài)變量存儲部分207或狀態(tài)變量暫存部分210中讀出隊列的狀態(tài)變量,從線L1接收到的分組應(yīng)存儲在該隊列中。然后,輸入控制部分207根據(jù)該狀態(tài)變量將隊列號加入到準備隊列列表204-1和204-2其中之一。
與圖1中的節(jié)點裝置100不同,節(jié)點裝置200不需要將任何隊列號從等待隊列列表轉(zhuǎn)移到準備隊列列表中,因此不必管理復(fù)位狀態(tài)。因此,輸入控制部分207不辨別復(fù)位狀態(tài)的判決結(jié)果和其相應(yīng)操作。
如果有一個正發(fā)送分組的隊列,輸出控制部分208從該隊列中發(fā)送分組。如果沒有一個正發(fā)送分組的隊列,輸出控制部分208從準備隊列列表204-1和204-2其中之一列表頭提取出隊列號,并從該號隊列中發(fā)送分組。如果發(fā)送完分組的隊列中仍包含可被發(fā)送的分組,輸出控制部分208讓隊列繼續(xù)發(fā)送分組。如果沒有可被發(fā)送的分組,輸出控制部分208將隊列號加入到一個準備隊列列表中。為連續(xù)發(fā)送分組,輸出控制部分208管理隊列的繁忙狀態(tài)。
圖5示出了圖4節(jié)點裝置的分組接收操作。
請看圖5,在步驟S301,當從線L1上接收到分組時,分組分發(fā)部分201判決其中應(yīng)存儲分組的隊列。在步驟S302,分組分發(fā)部分201根據(jù)判斷結(jié)果將分組存儲到任一隊列中。
在步驟S303,輸入控制部分207檢查是否有另一分組存儲在將要存儲所接收到分組的隊列中。如果另一分組存儲在將要存儲所接收到分組的隊列中,節(jié)點裝置200終止分組接收操作。
如果沒有其他分組存儲在將要存儲所接收到分組的隊列中,在步驟S304中,輸入控制部分207將隊列號加入到準備隊列列表204-1和204-2其中之一。
在步驟S305,輸入控制部分207檢查從該列表開始所加入的隊列是否具有小于等于m的序數(shù)。
如果從該列表開始所加入的隊列具有小于等于m的序數(shù),在步驟S306輸入控制部分207將隊列狀態(tài)變量從狀態(tài)變量存儲部分209轉(zhuǎn)移到狀態(tài)變量暫存部分210中。然后,節(jié)點裝置200終止分組接收操作。
如果從該列表開始所加入的隊列不具有小于等于m的序數(shù),節(jié)點裝置200立刻終止分組接收操作。
圖6示出了示于圖4的節(jié)點裝置的分組發(fā)送操作。
請看圖6,首先,在步驟S401,輸出控制部分208檢查準備隊列列表204-1和204-2是否都為空。
如果準備隊列列表204-1和204-2都為空,節(jié)點裝置200立刻終止分組發(fā)送操作。
如果至少有一個準備隊列列表204-1和204-2不為空,在步驟S402,輸出控制部分208檢查是否存在一個當前正發(fā)送分組的隊列。
如果不存在正發(fā)送分組的隊列,從其中一個準備隊列列表開始提取出隊列號。
在步驟S404,在經(jīng)過步驟S403的操作之后,輸出控制部分208檢查從準備隊列列表開始是否有一個序數(shù)為m的新隊列。
如果從準備隊列列表開始具有一個序數(shù)為m的隊列,在步驟S405,輸出控制部分208將隊列狀態(tài)變量從狀態(tài)變量存儲部分209轉(zhuǎn)移到狀態(tài)變量暫存部分210中。
如果在步驟S404判決從準備隊列列表開始不具有序數(shù)為m的隊列,或經(jīng)過步驟S405的操作之后,在步驟S406,輸出控制部分208將其號碼是在步驟S403中提取出的隊列設(shè)置為繁忙狀態(tài)。
在步驟S407,輸出控制部分208從狀態(tài)變量暫存部分210中讀取出隊列的權(quán)重和計數(shù)器值。
如果在步驟S402中判決具有一個正在發(fā)送分組的隊列,或進行完步驟S407的處理之后,在步驟S408,輸出控制部分208指示分組輸出部分203從處于繁忙狀態(tài)的隊列中發(fā)送分組。然后,分組輸出部分203從由輸出控制部分208指定的隊列頭發(fā)送分組。
在步驟S409,輸出控制部分208從計數(shù)器中減去與在步驟S408中發(fā)送的分組長度相應(yīng)的數(shù)值。
在步驟S410,輸出控制部分208檢查處于繁忙狀態(tài)的隊列中是否還留有分組和計數(shù)器值是否大于等于1。如果在該隊列中留有分組并且計數(shù)器值大于等于1,節(jié)點裝置200立刻終止發(fā)送操作,然后開始下一次發(fā)送操作。
如果在該隊列中不留有分組或者計數(shù)器值小于等于0,在步驟S411,輸出控制部分208復(fù)位計數(shù)器。
在步驟S412,輸出控制部分208將計數(shù)器值和加權(quán)值存回到狀態(tài)變量暫存部分210中。然后,輸出控制部分208在步驟S413中刪除該隊列的繁忙狀態(tài)。
在步驟S414,輸出控制部分208檢查在該隊列中是否留有分組。如果在該隊列中不留有分組,節(jié)點裝置200終止發(fā)送操作并開始下一次發(fā)送操作。
如果在該隊列中留有分組,在步驟S415中,輸出控制部分208將隊列號加入到準備隊列列表204-1和204-2其中之一上。
在步驟S416,輸出控制部分208檢查從列表開始所加入的隊列是否具有小于等于m的序數(shù),如果從列表開始的所加入隊列具有小于等于m的序數(shù),節(jié)點裝置200立刻終止發(fā)送操作,并開始下一次發(fā)送操作。
如果從列表頭開始的所加入隊列不具有小于等于m的序數(shù),在步驟S417,輸出控制部分208將隊列狀態(tài)變量從狀態(tài)暫存部分210存回到狀態(tài)變量存儲部分209中。
本發(fā)明的再一個實施例將參考所對應(yīng)的附圖來進行描述。根據(jù)本實施例的節(jié)點裝置通過使用時間表(日程表(calendar))來管理分組傳輸調(diào)度。時間表包括以年月日時間順序排列的多個列表。在每一列表上,記錄有在相應(yīng)時間上調(diào)度為完成分組傳輸?shù)年犃刑枴.敒槊恳魂犃兄付l段以進行分組傳輸時,甚至連準備隊列也不能在短于預(yù)定時間間隔的時間里發(fā)送分組。在該情況下,隊列被記錄在時間表的列表上從而可使在預(yù)定的時間間隔里從隊列中發(fā)送分組。在由列表指示的時間里,從時間表中提取出隊列號,并從該隊列中發(fā)送分組。
圖7示出了根據(jù)本實施例的節(jié)點裝置的布局。
請看圖7,節(jié)點裝置300包括一個分組分發(fā)部分301,隊列302-1至302-n,分組輸出部分303,準備隊列列表304-1至304-2,輸入控制部分307,輸出控制部分308,狀態(tài)變量存儲部分309,狀態(tài)變量暫存部分310和時間表311。
分組分發(fā)部分301的布局和操作與圖1中的分組分發(fā)部分101相同。隊列302-1至202-n的布局和操作與圖4中的隊列201-1至202-n相同。分組輸出部分303的布局和操作與圖1中的分組輸出部分103相同。準備隊列列表304-1和304-2的布局和操作與圖1中的準備隊列列表104-1和104-2相同。狀態(tài)變量存儲部分309的布局和操作與圖1中的狀態(tài)變量存儲部分109相同。狀態(tài)變量暫存部分310的布局和操作與圖1中的狀態(tài)變量存儲部分110相同。然而,注意節(jié)點裝置300使用時間表311來管理分組發(fā)送調(diào)度,因此,狀態(tài)變量包含來自每一隊列的分組傳輸調(diào)度完成時間。另外,對每一隊列指定頻段以用于分組傳輸。狀態(tài)變量也包括每一隊列的該所設(shè)頻段。
圖7中的節(jié)點裝置300與圖1中的節(jié)點裝置100的不同之處在于輸入控制部分307和輸出控制部分308的操作。節(jié)點裝置300與圖1的節(jié)點裝置100的不同之處在于不具有等待隊列列表也和復(fù)位控制部分,而具有時間表311。
輸入控制部分307從狀態(tài)變量存儲部分309或狀態(tài)變量暫存部分310中讀出隊列的狀態(tài)變量,從線L1接收到的分組應(yīng)存儲在該隊列中。然后,輸入控制部分307根據(jù)狀態(tài)變量將隊列號加入到準備隊列列表304-1和304-2其中之一和時間表311上。
為控制來自各個隊列的分組傳輸,首先,輸出控制部分308從準備隊列列表304-1或304-2開始讀出隊列號,并讀出該號碼是來自狀態(tài)變量暫存部分310的隊列有關(guān)的狀態(tài)變量。然后,輸出控制部分308給分組輸出部分303發(fā)出一個指令以從相應(yīng)隊列中發(fā)送分組。在指示分組輸出部分303發(fā)送分組之后,輸出控制部分308根據(jù)隊列的狀態(tài)變量將隊列號加入到準備隊列列表304-1和304-2其中之一和時間表311上。
時間表311以年月日時間順序保存與預(yù)定時間間隔相應(yīng)的各時間列表。在每一列表上,記錄有在相應(yīng)時間上調(diào)度以完成分組發(fā)送的隊列號。
圖8示出了在圖7節(jié)點裝置中的分組接收操作。
請看圖8,在步驟S501,當從線L1接收到分組時,分組分發(fā)部分301判決其中應(yīng)存儲分組的隊列。在步驟S502,分組分發(fā)部分301根據(jù)判決結(jié)果將分組存到任一隊列中。
在步驟S503,輸入控制部分307檢查是否有另一分組存儲在將要存儲所接收到分組的隊列中。如果在將要存儲所接收到分組的隊列中存有另一分組,節(jié)點裝置300終止分組接收操作。
如果沒有其他分組存儲在將要存儲所接收到分組的隊列中,輸入控制部分307從狀態(tài)變量存儲部分309或狀態(tài)變量暫存部分310中讀出來自該隊列的分組傳輸調(diào)度完成時間。
在步驟S505,輸入控制部分307檢查當前時間是否達到傳輸調(diào)度完成時間。如果在步驟S505中是“否”,在步驟S507,輸入控制部分307在時間表311列表中記錄該隊列號,該時間表列表對應(yīng)于傳輸調(diào)度完成時間。然后,節(jié)點裝置300終止分組接收操作。
如果在步驟S505中是“是”,在步驟S506,輸入控制部分307將隊列號加入其中一個準備隊列列表304-1和304-2中。
在步驟S508中,輸入控制部分307檢查從列表開始的所加入隊列是否具有小于等于m的序數(shù)。
如果從列表開始的所加入隊列具有小于等于m的序數(shù),在步驟S509,輸入控制部分307將隊列狀態(tài)變量從狀態(tài)變量存儲部分309轉(zhuǎn)移到狀態(tài)變量暫存部分310中。
如果從列表開始的所加入隊列不具有小于等于m的序數(shù),或經(jīng)過步驟S509的處理之后,在步驟S510,輸入控制部分307將當前時間指定為傳輸調(diào)度完成時間。在步驟S511,輸入控制部分307將傳輸調(diào)度完成時間寫回到狀態(tài)變量存儲部分309或狀態(tài)變量暫存部分310中。
圖9示出了圖7中的節(jié)點裝置300的分組發(fā)送操作。
請看圖9,首先,在步驟S601節(jié)點裝置300更新當前時間。在步驟S602,輸出控制部分308將時間表311列表的全部內(nèi)容轉(zhuǎn)移到準備隊列列表304-1和304-2其中之一,該時間表列表相應(yīng)于當前時間。
在步驟S603,輸出控制部分308檢查準備隊列列表304-1和304-2是否都為空。如果準備隊列列表304-1和304-2都為空,節(jié)點裝置300終止分組發(fā)送操作。
如果在隊列列表304-1和304-2中至少有一個不為空,在步驟S604,輸出控制部分308從其中一個準備隊列的列表開始提取出隊列號。
在步驟S605,在經(jīng)過步驟S604的操作之后,輸出控制部分308檢查從準備隊列列表開始是否具有一個序數(shù)小于等于m的新隊列。
如果從準備隊列列表開始具有一個序數(shù)m的隊列,在步驟S606,輸出控制部分308將隊列狀態(tài)變量從狀態(tài)存儲部分109轉(zhuǎn)移到狀態(tài)變量暫存部分110中。
如果在步驟S605判決從準備隊列列表開始不具有序數(shù)為m的隊列,或經(jīng)過步驟S606的操作之后,輸出控制部分308給分組輸出部分303發(fā)出一個指令以從其號碼是在步驟S604中提取出的隊列中發(fā)送分組。分組輸出部分303從由輸出控制部分308指定的隊列中發(fā)送第一個分組。
在步驟S608,輸出控制部分308從狀態(tài)變量存儲部分310中讀出隊列傳輸?shù)乃O(shè)頻段和調(diào)度完成時間。在步驟S609,輸出控制部分308從所讀取的設(shè)定頻段和將要發(fā)送分組的數(shù)據(jù)量計算傳輸調(diào)度完成時間。在步驟S610,輸出控制部分308將傳輸?shù)乃O(shè)頻段和調(diào)度完成時間寫回到狀態(tài)變量暫存部分310中。
在步驟S611,輸出控制部分308檢查在已從中發(fā)送完分組的隊列中是否留有分組。如果在隊列中不留有分組,節(jié)點裝置300終止分組發(fā)送操作。
如果在該隊列中留有分組,在步驟S612,輸出控制部分308檢查當前時間是否達到傳輸調(diào)度完成時間。如果當前時間沒有達到傳輸調(diào)度完成時間,輸出控制部分308在步驟S614中將隊列號記錄在時間表311的一個列表上,該時間表列表相應(yīng)于傳輸調(diào)度完成時間。
在步驟S616,輸出控制部分308將隊列狀態(tài)變量從狀態(tài)變量存儲部分309轉(zhuǎn)移到狀態(tài)變量暫存部分310中。然后,節(jié)點裝置300終止分組發(fā)送操作。
如果在步驟S612中判斷當前時間已達到傳輸調(diào)度結(jié)束時間,在步驟S613,輸出控制部分308將隊列號加入到其中一個準備隊列列表304-1和304-2上。
在步驟S615,輸出控制部分308檢查從列表開始的所加入隊列是否具有小于等于m的序數(shù)。如果從列表開始的所加入隊列具有小于等于m的序數(shù),流程圖進入到步驟S616。如果從列表開始的所加入隊列不具有小于等于m的序數(shù),節(jié)點裝置300立刻終止分組發(fā)送操作。
本發(fā)明的又一個實施例將參考相應(yīng)的附圖進行描述。
圖10示出了根據(jù)本實施例的節(jié)點裝置的布局。
請看圖10,節(jié)點裝置400包括一個分組分發(fā)部分401,隊列402-1至402-n,分組輸出部分403,準備隊列列表404-1至404-2,等待隊列列表405-1和405-2,復(fù)位控制部分406,輸入控制部分407,輸出控制部分408,狀態(tài)變量存儲部分409,狀態(tài)變量暫存部分410和傳輸侯選411-1至411-m。
分組分發(fā)部分401的布局和操作與圖1中的分組分發(fā)部分101相同。隊列402-1至402-n的布局和操作與圖1中的隊列101-1至102-n相同。分組輸出部分403的布局和操作與圖1中的分組輸出部分103相同。
在本實施例中,傳輸侯選411-1至411-m被另外提供給準備隊列列表404-1、404-2和等待隊列列表405-1、405-2。傳輸侯選411-1至411-m當隊列準備獨立的發(fā)送準備隊列列表和等待隊列列表時,管理隊列。
每一傳輸侯選411-1至411-m存儲一個隊列號,這些隊列的狀態(tài)變量被存儲在狀態(tài)變量暫存部分410中。因此,傳輸侯選的數(shù)目m等于可以存儲在狀態(tài)變量暫存部分410的狀態(tài)變量數(shù)目。循環(huán)的從準備隊列中選擇發(fā)送分組的隊列,該準備隊列號被存儲在傳輸侯選411-1至411-m中。當從任何給定的傳輸侯選中發(fā)送分組并且侯選變?yōu)榭諘r,將存儲在其中一個準備隊列列表404-1和404-2的隊列號新存儲到傳輸侯選中。伴隨該操作,隊列狀態(tài)變量從狀態(tài)變量存儲部分409轉(zhuǎn)移到狀態(tài)變量暫存部分410中??偟膩碚f,其號被存儲在傳輸侯選411-1至411-m的隊列是可發(fā)送分組的隊列。但是,如果可發(fā)送分組的隊列數(shù)目比傳輸侯選數(shù)目m小,等待隊列號被存儲到傳輸侯選中。
因此,除了隊列號不是直接地被發(fā)送到輸出控制部分408而是暫時地存儲到傳輸侯選411-1至411-m中以外,準備隊列列表401-1、401-2和等待隊列列表405-1、405-2的布局和操作幾乎與圖1中的準備隊列列表104-1、104-2和等待隊列列表105-1、105-2相同。
除了將其隊列號存儲在傳輸侯選411-1至411-m中的隊列的狀態(tài)變量存儲在狀態(tài)變量暫存部分410外,狀態(tài)變量存儲部分409和狀態(tài)變量暫存部分410的布局和操作與圖1中的這些部分相同。
輸入控制部分407的布局和操作與圖1中的這些部分相同。當將要把隊列號加入到準備隊列列表404-1、404-2和等待隊列列表405-1、405-2的其中之一時,具有一個空的傳輸侯選,則輸入控制部分407將隊列號存到傳輸侯選中。
輸出控制部分408指示分組輸出部分403從其號碼被存儲在傳輸侯選411-1至411-m隊列的準備隊列中循環(huán)發(fā)送分組。當指示分組輸出部分403從一個給定隊列中發(fā)送分組時,輸出控制部分408將隊列號加到準備隊列列表404-1、404-2和等待隊列列表405-1、405-2的其中之一或依據(jù)隊列的狀態(tài)等將其保留在其中一個傳輸侯選411-1至411-m中。
圖11示出了在圖10節(jié)點裝置400的分組接收操作。
請看圖11,在步驟S701中當從線L1中接收到分組時,分組分發(fā)部分401判決在其中應(yīng)存儲分組的一個隊列。在步驟S702,分組分發(fā)部分401根據(jù)判決結(jié)果將分組存儲到其中一個隊列中。
在步驟S703,輸入控制部分407檢查在將要存儲所接收到分組的隊列中是否存有另一分組。如果在將要存儲所接收到分組的隊列中存有另一分組時,節(jié)點裝置400終止分組接收操作。
如果在將要存儲所接收到分組的隊列中沒有存有其他分組時,在步驟S704,輸入控制部分407從狀態(tài)變量存儲部分409或狀態(tài)變量暫存部分410中讀出隊列的計數(shù)器值和復(fù)位狀態(tài)。
在步驟S705,輸入控制部分407檢查傳輸侯選411-1至411-m中是否有至少一個為空。如果不存在空侯選,在步驟S706中,輸入控制部分407檢查隊列的計數(shù)器值是否處于完全復(fù)位狀態(tài)和計數(shù)器值是否小于等于0。
如果隊列的計數(shù)器值已被復(fù)位并且計數(shù)器值小于等于0,在步驟S707,輸入控制部分407將隊列號加入到等待隊列列表405-1和405-2的其中之一。然后,節(jié)點裝置400終止分組接收操作。
如果隊列的計數(shù)器值大于等于1或隊列處于非復(fù)位狀態(tài),在步驟S708,輸入控制部分407檢查在傳輸侯選411-1至411-m中是否存在等待隊列。
如果在傳輸侯選411-1至411-m中存在等待隊列,在步驟S710,輸入控制部分407將存儲在相應(yīng)傳輸侯選中的隊列號轉(zhuǎn)移到等待隊列列表405-1和405-2的其中之一。
如果在傳輸侯選411-1至411-m中不存在等待隊列,在步驟S709,輸入控制部分407將屬性號加入到準備隊列404-1和404-2的其中之一。然后,節(jié)點裝置400終止分組接收操作。
如果在步驟S705中判決存在一個空的傳輸侯選,或經(jīng)過步驟S710的處理之后,在步驟S711,輸入控制部分407將隊列號存儲在空傳輸侯選中。在步驟S712,輸入控制部分407將該號隊列的狀態(tài)變量從狀態(tài)變量存儲部分409轉(zhuǎn)移到狀態(tài)變量暫存部分410中。然后,節(jié)點裝置400終止分組接收操作。
圖12示出了圖10的節(jié)點裝置400中的分組發(fā)送操作。
請看圖12,首先,在步驟S801中,輸出控制部分408檢查所有的傳輸侯選411-1至411-m是否都為空。如果所有的傳輸侯選411-1至411-m都為空,節(jié)點裝置立即終止分組發(fā)送操作。
如果至少一個傳輸侯選411-1至411-m不為空,在步驟S802,輸出控制部分408檢查在傳輸侯選中是否存在一個準備隊列。
如果在傳輸侯選中不存在準備隊列,在步驟S803中,輸出控制部分408指示狀態(tài)變量存儲器409復(fù)位所有隊列。在步驟S804,復(fù)位控制部分406將等待隊列列表的全部內(nèi)容轉(zhuǎn)移到相應(yīng)準備隊列列表中。
如果在步驟S802中判斷在傳輸侯選中存在準備隊列,或經(jīng)過步驟S804的處理之后,在步驟S805,輸出控制部分408指示分組輸出部分403從每個傳輸侯選中的準備隊列中循環(huán)的選擇和發(fā)送分組。在步驟S806中,分組輸出部分403從由輸出控制部分408指定的隊列中發(fā)送第一個分組。
在步驟S807,輸出控制部分408從狀態(tài)變量暫存部分410中讀取出隊列的計數(shù)器值和加權(quán)值,對隊列發(fā)送給分組輸出部分403分組傳輸指令(以從中發(fā)送分組的隊列)。
在步驟S808,輸出控制部分408檢查該隊列是否處于非復(fù)位狀態(tài)。
如果隊列處于非復(fù)位狀態(tài),在步驟S809,復(fù)位控制部分406復(fù)位計數(shù)器以將復(fù)位狀態(tài)設(shè)置成完全復(fù)位狀態(tài)。
在步驟S810,輸出控制部分408從計數(shù)器中減去與步驟S806中發(fā)送的分組長度相應(yīng)的值,在步驟S811,輸出控制部分408將計數(shù)器值、加權(quán)值和復(fù)位狀態(tài)存回到狀態(tài)變量暫存部分410中。
在步驟S812,輸出控制部分408檢查在該隊列中是否留有分組并且準備隊列列表404-1和404-2是否都為空。如果在該隊列中不留有分組并且準備隊列列表404-1和404-2都為空,節(jié)點裝置終止分組發(fā)送操作。
如果在對列中不留有分組或準備隊列列表404-1和404-2至少一個不為空,在步驟S813,輸出控制部分408將隊列狀態(tài)變量從狀態(tài)變量暫存部分410存回到狀態(tài)變量存儲部分409中。在步驟S814中,輸出控制部分408從傳輸侯選中刪除隊列。
在步驟S815中,輸出控制部分408檢查在隊列中是否留有分組。如果在隊列中留有分組,在步驟S816中,輸出控制部分408檢查計數(shù)器值是否小于等于0。
如果計數(shù)器值小于等于0,輸出控制部分408將隊列號加入到其中一個等待隊列列表中。如果計數(shù)器值大于等于1,輸出控制部分408將隊列號加入到其中一個準備隊列列表上。
如果在步驟S815判斷在隊列中不留有分組,或經(jīng)過S817或S818的處理之后,在步驟S819中,輸出控制部分408檢查準備隊列列表是否都為空。如果至少一個準備隊列列表不為空,在步驟S820,輸出控制部分408從準備隊列列表開始提取出隊列號并將其存儲到其中一個傳輸侯選中。
如果準備隊列列表都為空,在步驟S821,輸出控制部分408從其中一個傳輸侯選列表開始提取出隊列號并將其存儲到其中一個傳輸侯選中。
在經(jīng)過步驟S820或S821的處理之后,在步驟S822,輸出控制部分408將新存儲到傳輸侯選的隊列的狀態(tài)變量從狀態(tài)變量存儲部分409轉(zhuǎn)移到狀態(tài)變量暫存部分410中。然后,節(jié)點裝置400終止分組發(fā)送操作。
假設(shè)節(jié)點裝置400已從傳輸侯選411-1至411-m其中之一發(fā)送完一個分組,并且該隊列仍能發(fā)送分組。在該情況下,如果準備隊列列表404-1和404-2都為空,節(jié)點裝置400可以直接將隊列返回到傳輸侯選中。另外,如果準備隊列列表404-1和404-2至少一個不為空,節(jié)點裝置400不能直接將隊列返回到傳輸侯選中。因此,節(jié)點裝置400將隊列返回到準備隊列列表中。伴隨該操作,狀態(tài)變量也被返回到狀態(tài)變量存儲部分409中。
本發(fā)明的另一個實施例將參考其相應(yīng)的附圖進行描述。
本實施例的節(jié)點裝置的分組接收操作和布局與圖10的裝置相同。它們只在分組發(fā)送操作中的交換傳輸侯選的方法上有所不同。
圖13示出了根據(jù)本實施例的節(jié)點裝置的分組發(fā)送操作。
請看圖13,首先,在步驟S901中,輸出控制部分408檢查所有的傳輸候選411-1至411-m是否都為空。如果所有的傳輸侯選411-1至411-m都為空,節(jié)點裝置400立刻終止分組發(fā)送操作。
如果至少一個傳輸侯選411-1至411-m不為空,在步驟S902,輸出控制部分408檢查在傳輸侯選中是否存在一個準備隊列。
如果在傳輸侯選中不存在一個準備隊列,在步驟S903中,輸出控制部分408指示復(fù)位控制部分406復(fù)位所有的隊列。在步驟S904,復(fù)位控制部分406將所有等待隊列列表的內(nèi)容都轉(zhuǎn)移到相應(yīng)準備隊列列表中。
如果在步驟S902中判斷在傳輸侯選中存在準備隊列,或經(jīng)過步驟S904的處理之后,在步驟S905,輸出控制部分408指示分組輸出部分403從每個傳輸侯選的準備隊列中循環(huán)的選擇和發(fā)送分組。在步驟S906中,分組輸出部分403從由輸出控制部分408指定的隊列中發(fā)送第一個分組。
在步驟S907,輸出控制部分408從狀態(tài)變量暫存部分410中讀取出隊列的計數(shù)器值、加權(quán)值和復(fù)位狀態(tài),對隊列發(fā)送給分組輸出部分403分組傳輸指令(以從中發(fā)送分組的隊列)。
在步驟S908,輸出控制部分408檢查該隊列是否處于非復(fù)位狀態(tài)。
如果隊列處于非復(fù)位狀態(tài),在步驟S909,輸出控制部408復(fù)位計數(shù)器以將復(fù)位狀態(tài)設(shè)置成完全復(fù)位狀態(tài)。
在步驟S910,輸出控制部分408從計數(shù)器中減去與步驟S906中發(fā)送的分組長度相應(yīng)的值。在步驟S911,輸出控制部分408將計數(shù)器值、加權(quán)值和復(fù)位狀態(tài)返回到狀態(tài)變量暫存部分410中。
以上的處理與圖12中的從步驟S801至步驟S811的處理相同。
在步驟S911中,輸出控制部分408將計數(shù)器值、加權(quán)值和復(fù)位狀態(tài)寫回到狀態(tài)變量暫存部分410中。在步驟S912,輸出控制部分408檢查其中不存有分組的隊列號是否被存儲在傳輸侯選411-1至411-m其中之一中。
如果其中不存有分組的隊列號沒有被存儲在任何一個傳輸侯選411-1至411-m中,輸出控制部分408在步驟S913檢查其計數(shù)器值小于等于0的隊列號是否被存儲在任何一個傳輸侯選411-1至411-m中。如果其計數(shù)器值小于等于0的隊列號沒有被存儲在其中一個傳輸侯選411-1至411-m中,輸出控制部分408從傳輸侯選中選擇其min(計數(shù)器值,隊列長度)是最小的一個隊列。注意min(A,B)是從A和B中得到最小值的一個函數(shù)。
在步驟S915,輸出控制部分408將隊列狀態(tài)變量從狀態(tài)變量暫存部分410轉(zhuǎn)移到狀態(tài)變量存儲部分409中。在步驟S916,輸出控制部分408從傳輸侯選中去掉該隊列號。在步驟S917,輸出控制部分408將隊列號加入到準備隊列列表404-1和404-2的其中之一上。
如果在步驟S913中判斷在其中存儲有計數(shù)器值小于等于0的隊列號的傳輸侯選,輸出控制部分408從傳輸侯選中選擇出其中計數(shù)器值小于等于0并且min(加權(quán)值,隊列長度)為最小的隊列。
在步驟S919,輸出控制部分408將隊列狀態(tài)變量從狀態(tài)變量暫存部分410轉(zhuǎn)移到狀態(tài)變量存儲部分409中。在步驟S920中,輸出控制部分408從傳輸侯選中去掉該隊列號。在步驟S921中,輸出控制部分408將隊列號加入到其中一個等待隊列列表405-1和405-2中。
如果在步驟S912中判決其中不存有分組的隊列號被存儲在傳輸侯選411-1至411-m的其中之一上,在步驟S922,輸出控制部分408從傳輸侯選中選出該隊列。在步驟S923,輸出控制部分408將隊列的狀態(tài)變量從狀態(tài)變量暫存部分410轉(zhuǎn)移到狀態(tài)變量存儲部分409中。在步驟S924中,輸出控制部分408從傳輸侯選中去掉隊列。
當經(jīng)過步驟S917、S921或S924的處理之后,輸出控制部分408在步驟S925中檢查準備隊列列表404-1和404-2是否都為空。
如果至少一個準備隊列列表404-1和404-2不為空,在步驟S925,輸出控制部分408從其中一個準備隊列表開始提取出一個隊列號并將其存儲到傳輸侯選中。在步驟926,輸出控制部分408將其號碼為新存儲到傳輸侯選中的隊列的狀態(tài)變量從狀態(tài)變量存儲部分409轉(zhuǎn)移到狀態(tài)變量暫存部分410中。然后,節(jié)點裝置400終止分組發(fā)送操作。
如果在步驟S925中判斷準備隊列列表404-1和404-2都為空,在步驟S927,輸出控制部分408從其中一個準備隊列表開始提取出隊列號并將其存儲到傳輸侯選中。然后,流程進入到步驟S928。
如上所述,根據(jù)本發(fā)明的節(jié)點裝置將靠近列表裝置開始的隊列狀態(tài)變量從狀態(tài)變量存儲裝置預(yù)取到狀態(tài)變量暫存裝置中,該狀態(tài)變量暫存裝置的數(shù)據(jù)量比狀態(tài)變量存儲裝置小。因此,在發(fā)送分組時,可以高速的執(zhí)行與狀態(tài)變量有關(guān)的操作。因此,該節(jié)點裝置可以被應(yīng)用到超高速線上。
另外,根據(jù)本發(fā)明的節(jié)點裝置總是將隊列狀態(tài)變量從狀態(tài)變量存儲裝置預(yù)取到狀態(tài)變量暫存裝置中。因此,在發(fā)送分組時,可以高速的執(zhí)行與狀態(tài)變量有關(guān)的操作。因此,該節(jié)點裝置可以被應(yīng)用到超高速線上。
此外,在根據(jù)本發(fā)明的節(jié)點裝置中,列表裝置被分為多個列表。因此,即使在其中每一列表的數(shù)據(jù)在由指針相連的結(jié)構(gòu)中,讀出隊列號的時間間隔也比讀取指針的時間間隔短。因此,該節(jié)點裝置可以被應(yīng)用到超高速線上。
權(quán)利要求
1.在多個隊列的其中一個中存儲有所接收到分組的一個節(jié)點裝置,節(jié)點裝置根據(jù)每一隊列的狀態(tài)變量判斷每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組,其特征在于包括列表裝置(104-1,104-2,204-1,204-2,304-1,304-2),其中寫有處于分組傳輸準備狀態(tài)的隊列號,并且管理其中寫有號碼的順序;狀態(tài)變量存儲裝置(109,209,309),用于保存與所有隊列有關(guān)的狀態(tài)變量;狀態(tài)變量暫存裝置(110,210,310),其只暫存與一些隊列有關(guān)的狀態(tài)變量,這些隊列的號碼落入到從所述列表裝置開始的一個預(yù)定范圍之內(nèi),并且其數(shù)據(jù)量比所述狀態(tài)變量存儲裝置??;控制裝置(108,208,308),用于從一個隊列中發(fā)送分組,該隊列的號碼是從所述列表裝置開始提取出的,和更新在所述狀態(tài)變量暫存裝置中隊列的狀態(tài)變量。
2.根據(jù)權(quán)利要求1的一個裝置,其中當從所述列表裝置開始提取出的隊列中發(fā)送分組時,根據(jù)所更新的狀態(tài)變量,如果判斷該隊列仍處于分組發(fā)送的準備狀態(tài),所述控制裝置將隊列號加入到所述列表裝置中,和當所述控制裝置從所述列表裝置中提取出一個號碼時,所述狀態(tài)變量暫存裝置新存儲與從所述列表裝置開始的落入到預(yù)定范圍之內(nèi)的隊列有關(guān)的狀態(tài)變量,和當隊列號被加入到所述列表裝置時,如果所述列表裝置號碼中的隊列號落入到預(yù)定的范圍之內(nèi),狀態(tài)變量暫存裝置存儲與該號隊列有關(guān)的狀態(tài)變量。
3.在多個隊列的其中一個中存儲有所接收到分組的一個節(jié)點裝置,節(jié)點裝置根據(jù)每一隊列的狀態(tài)變量判斷每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸?shù)臏蕚錉顟B(tài)隊列中發(fā)送分組,其特征在于包括列表裝置(404-1,404-2),其中寫有處于分組傳輸準備狀態(tài)的隊列號,并且其管理其中寫有號碼的順序;狀態(tài)變量存儲裝置,用于保存與所有隊列有關(guān)的狀態(tài)變量;狀態(tài)變量暫存裝置,其中暫存與不多于預(yù)定數(shù)目的隊列有關(guān)的狀態(tài)變量,并且其數(shù)據(jù)量比所述的狀態(tài)變量存儲裝置??;至少一個傳輸侯選裝置(411-1-411-n),用于保存其狀態(tài)變量被保存在所述狀態(tài)變量暫存部分而不是所述列表裝置的每一隊列號;和控制裝置(108),用于從其號碼被保存在所述傳輸侯選裝置中的、可以發(fā)送一個分組的隊列的一個隊列中發(fā)送分組和在所述狀態(tài)變量暫存裝置中更新隊列的狀態(tài)變量。
4.根據(jù)權(quán)利要求3的一個裝置,其中當在所述狀態(tài)變量暫存裝置中產(chǎn)生了自由空間時,所述狀態(tài)變量暫存裝置新存儲與一個隊列有關(guān)的狀態(tài)變量,,該隊列的號碼位于所述列表裝置開始,并且當將一個新隊列設(shè)置為分組發(fā)送的準備狀態(tài)并且在所述狀態(tài)變量暫存裝置中存在自由空間時,狀態(tài)變量暫存裝置存儲與該隊列有關(guān)的狀態(tài)變量,和當從任意一個隊列發(fā)送分組時,當根據(jù)所更新的狀態(tài)變量判斷該隊列仍處于分組傳輸?shù)臏蕚錉顟B(tài)時,如果所述列表裝置為空,所述控制裝置將狀態(tài)變量返回到所述狀態(tài)變量暫存裝置,如果所述列表裝置不為空,將狀態(tài)變量返回到所述狀態(tài)變量存儲裝置中。
5.根據(jù)權(quán)利要求1的一個裝置,其中根據(jù)分組的一個屬性將分組存儲到其中一個隊列中,和狀態(tài)變量包括可以從隊列中發(fā)送和可以從指定給每一隊列的權(quán)重和頻段中計算的與屬性有關(guān)的分組數(shù),和從該隊列中發(fā)送的分組或可以從該隊列中作為分組來發(fā)送的數(shù)據(jù)量。
6.根據(jù)權(quán)利要求3的一個裝置,其中根據(jù)分組的一個屬性將分組存儲在其中一個隊列上,和狀態(tài)變量包括可以從隊列中發(fā)送和可以從指定給每一隊列的權(quán)重和頻段中計算的與屬性有關(guān)的分組數(shù),和從該隊列中發(fā)送的分組或可以從該隊列中作為分組來發(fā)送的數(shù)據(jù)量。
7.根據(jù)權(quán)利要求5的一個裝置,其中當該隊列中存儲有至少一個分組和根據(jù)該狀態(tài)變量允許發(fā)送分組時,該隊列處于分組發(fā)送的準備狀態(tài)。
8.根據(jù)權(quán)利要求6的一個裝置,其中當該隊列中存儲有至少一個分組和根據(jù)該狀態(tài)變量允許發(fā)送分組時,該隊列處于分組發(fā)送的準備狀態(tài)。
9.根據(jù)權(quán)利要求1的一個裝置,其中所述列表裝置包括多個列表。
10.根據(jù)權(quán)利要求3的一個裝置,其中所述列表裝置包括多個列表。
11.根據(jù)權(quán)利要求9的一個裝置,其中循環(huán)的選取所述列表裝置中的多個列表。
12.根據(jù)權(quán)利要求10的一個裝置,其中循環(huán)的選取所述列表裝置中的多個列表。
13.根據(jù)權(quán)利要求9的一個裝置,其中當在所述列表裝置中寫入多個列表號時,選擇其中存儲有少數(shù)隊列的一個列表,并且當提取號碼時,選擇其中存儲有多數(shù)隊列的一個列表。
14.根據(jù)權(quán)利要求10的一個裝置,其中當在所述列表裝置中寫入多個列表號時,選擇其中存儲有少數(shù)隊列的一個列表,并且當提取號碼時,選擇其中存儲有多數(shù)隊列的一個列表。
15.根據(jù)權(quán)利要求1的一個裝置,其中所述裝置進一步包括其中記錄有每一分組傳輸時間的隊列號的時間表裝置,該分組傳輸時間從被指定給隊列的頻段來判斷,和所述控制裝置將由所述時間表裝置判定的隊列號從所述時間表裝置轉(zhuǎn)移到所述列表裝置,以在當前時間發(fā)送一個分組。
16.根據(jù)權(quán)利要求3的一個裝置,其中所述裝置進一步包括其中記錄有每一分組傳輸時間的隊列號的時間表裝置,該分組傳輸時間從被指定給隊列的頻段來判斷,和所述控制裝置將由所述時間表裝置判定的隊列號從所述時間表裝置轉(zhuǎn)移到所述列表裝置,以在當前時間發(fā)送一個分組。
17.在多個隊列的其中一個中存儲有所接收到分組的一個節(jié)點裝置,節(jié)點裝置根據(jù)每一隊列的狀態(tài)變量判斷每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組,其特征在于包括第一列表裝置(104-1,104-2),其中寫有處于分組傳輸準備狀態(tài)的隊列號,并且其管理其中寫有號碼的順序;第二列表裝置(105-1,105-2),其中寫有處于分組傳輸?shù)却隣顟B(tài)的隊列號,并且其管理其中寫有號碼的順序;狀態(tài)變量存儲裝置(109),用于保存與所有隊列有關(guān)的狀態(tài)變量;狀態(tài)變量暫存裝置(110),其只暫存一些隊列的狀態(tài)變量,這些隊列的號碼落入到從所述第一列表裝置開始的一個預(yù)定范圍之內(nèi),當在第一列表中沒有隊列號落入到預(yù)定范圍之內(nèi),其從第二列表裝置開始提取出并暫時存儲與該缺少相應(yīng)的隊列號,該狀態(tài)變量暫存裝置的數(shù)據(jù)量比狀態(tài)變量存儲裝置??;和控制裝置(108),用于從隊列中發(fā)送一個分組,該隊列號碼是從列表裝置開始提取出的,并更新所述狀態(tài)變量暫存裝置中隊列的狀態(tài)變量。
18.根據(jù)權(quán)利要求17的一個節(jié)點裝置,其中當從所述列表裝置開始提取出的隊列中發(fā)送分組時,根據(jù)所更新的狀態(tài)變量,如果判斷隊列仍處于分組發(fā)送的準備狀態(tài),則所述控制裝置將隊列號加入到所述第一列表裝置中,如果隊列處于分組發(fā)送的等待狀態(tài),則控制裝置將隊列號加入到所述第二列表裝置中,和當所述控制裝置從所述第一列表裝置中提取出一個號碼時,所述狀態(tài)變量暫存裝置新存儲與落入到從所述第一列表裝置開始的一個預(yù)定范圍之內(nèi)的隊列有關(guān)的狀態(tài)變量,和當一個隊列號加入到所述第一列表裝置時,如果所述第一列表裝置號碼中的隊列號碼落入到預(yù)定范圍之內(nèi),所述狀態(tài)變量暫存裝置存儲與該號隊列相關(guān)的狀態(tài)變量,當隊列號被加入到所述第二列表裝置并且在所述第一列表裝置號碼中的號碼和在所述第二列表裝置中的號碼落入到預(yù)定的范圍之內(nèi),所述狀態(tài)變量暫存裝置存儲與隊列相關(guān)的狀態(tài)變量。
19.在多個隊列的其中一個中存儲有所接收到分組的一個節(jié)點裝置,節(jié)點裝置根據(jù)每一隊列的狀態(tài)變量判斷每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組,其特征在于包括第一列表裝置(404-1,404-2),其中寫有處于分組傳輸準備狀態(tài)的隊列號,并且其管理其中寫有號碼的順序;第二列表裝置(405-1,405-2),其中寫有處于分組傳輸?shù)却隣顟B(tài)的隊列號,并且其管理其中寫有號碼的順序;狀態(tài)變量存儲裝置(409),用于保存與所有隊列有關(guān)的狀態(tài)變量;狀態(tài)變量暫存裝置(410),其暫時存儲與不少于預(yù)定數(shù)目的隊列有關(guān)的狀態(tài)變量,并且該狀態(tài)變量暫存裝置的數(shù)據(jù)量小于所述狀態(tài)變量存儲裝置;至少一個傳輸侯選裝置(411-1---411-n),用于保存其狀態(tài)變量被存儲在所述狀態(tài)變量暫存裝置而不是所述第一或第二列表裝置的每一隊列號,和控制裝置(408),用于從其號碼被保存在傳輸侯選裝置的、可以發(fā)送一個分組的隊列的一個隊列中發(fā)送一個分組,并用于更新在所述狀態(tài)變量暫存裝置中的隊列的狀態(tài)變量。
20.根據(jù)權(quán)利要求19的一個節(jié)點裝置,其中當在所述狀態(tài)變量暫存裝置中產(chǎn)生了自由空間時,所述狀態(tài)變量暫存裝置新存儲與一個隊列有關(guān)的狀態(tài)變量,該隊列的號碼位于所述列表裝置的開始處,當所述第一列表裝置為空時,新存儲與一個隊列有關(guān)的狀態(tài)變量,該隊列的號碼位于所述第二列表裝置的開始處,并且當存在一個設(shè)置為分組傳輸?shù)臏蕚錉顟B(tài)或等待狀態(tài)的新隊列并且在所述狀態(tài)變量暫存裝置中具有自由空間時,所述狀態(tài)變量暫存裝置新存儲與該隊列有關(guān)的狀態(tài)變量,并且當從其中一個隊列中發(fā)送一個分組時,根據(jù)所更新的狀態(tài)變量判定該隊列處于分組傳輸?shù)臏蕚錉顟B(tài)和所述第一列表裝置為空時,所述控制裝置將狀態(tài)變量返回到所述狀態(tài)變量暫存裝置中,當所述第一列表裝置不為空時,所述控制裝置將狀態(tài)變量返回到所述狀態(tài)變量存儲裝置中,當從其中一個隊列中發(fā)送一個分組時,根據(jù)所更新的狀態(tài)變量判定該隊列處于分組傳輸?shù)牡却隣顟B(tài)和所述第一和第二列表裝置為空時,所述控制裝置將狀態(tài)變量返回到所述狀態(tài)變量暫存裝置中,當所述第一或第二列表裝置不為空時,所述控制裝置將狀態(tài)變量返回到所述狀態(tài)變量存儲裝置中。
21.根據(jù)權(quán)利要求17的一個裝置,其中根據(jù)分組的一個屬性將分組存儲在其中一個隊列上,和狀態(tài)變量包括可以從隊列中發(fā)送和可以從指定給每一隊列的權(quán)重和頻段中計算的與屬性有關(guān)的分組數(shù),和從該隊列中發(fā)送的分組或可以從該隊列中作為分組來發(fā)送的數(shù)據(jù)量。
22.根據(jù)權(quán)利要求19的一個節(jié)點裝置,其中根據(jù)分組的一個屬性將分組存儲在其中一個隊列上,和狀態(tài)變量包括可以從隊列中發(fā)送和可以從指定給每一隊列的權(quán)重和頻段中計算的與屬性有關(guān)的分組數(shù),和從該隊列中發(fā)送的分組或可以從該隊列中作為分組來發(fā)送的數(shù)據(jù)量。
23.根據(jù)權(quán)利要求21的一個裝置,其中當該隊列中存儲有至少一個分組和根據(jù)該狀態(tài)變量允許發(fā)送分組時,該隊列處于分組發(fā)送的準備狀態(tài)。
24.根據(jù)權(quán)利要求22的一個裝置,其中當該隊列中存儲有至少一個分組和根據(jù)該狀態(tài)變量允許發(fā)送分組時,該隊列處于分組發(fā)送的準備狀態(tài)。
25.根據(jù)權(quán)利要求21的一個裝置,其中當該隊列中存儲有至少一個分組并且從狀態(tài)變量中判決分組不能被發(fā)送時,該隊列被設(shè)置為發(fā)送的等待狀態(tài)。
26.根據(jù)了權(quán)利要求22的一個裝置,其中當該隊列中存儲有至少一個分組并且從狀態(tài)變量中判決分組不能被發(fā)送時,該隊列被設(shè)置為發(fā)送的等待狀態(tài)。
27.根據(jù)權(quán)利要求17的一個裝置,其中所述第一和第二列表裝置的每一個都包括多個列表。
28.根據(jù)權(quán)利要求19的一個裝置,其中所述第一和第二列表裝置的每一個都包括多個列表。
29.根據(jù)權(quán)利要求27的一個裝置,其中循環(huán)地選取所述第一和第二列表裝置中的多個列表。
30.根據(jù)權(quán)利要求28的一個裝置,其中循環(huán)地選取所述第一和第二列表裝置中的多個列表。
31.根據(jù)權(quán)利要求29的一個裝置,其中當在所述第一和第二列表裝置中寫入多個列表號時,選擇其中存儲有少量隊列的一個列表,并且當提取號碼時,選擇其中存儲有大量隊列的一個列表。
32.根據(jù)權(quán)利要求30的一個裝置,其中當在所述第一和第二列表裝置中寫入多個列表號時,選擇其中存儲有少量隊列的一個列表,并且當提取號碼時,選擇其中存儲有大量隊列的一個列表。
33.將所接收到的分組存儲到多個隊列的其中一個、根據(jù)每一隊列的狀態(tài)變量判決每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組的一種方法,其特征在于所述方法包括將處于分組傳輸準備狀態(tài)的隊列號寫入到一個列表并管理其中寫有號碼的順序的第一步驟(S107,S304,S506);保存與所有隊列有關(guān)的狀態(tài)變量的第二步驟(109,209,309);只暫時存儲與落入到從該列表開始的一個預(yù)定范圍之內(nèi)的隊列有關(guān)的狀態(tài)變量的第三步驟(S109,S306,S509,110,210,310);和從其號碼是從該列表開始提取出的一個隊列中發(fā)送分組并更新第三步驟中的隊列的狀態(tài)變量的第四步驟(S207,S405,S606)。
34.將所接收到的分組存儲到多個隊列的其中一個、根據(jù)每一隊列的狀態(tài)變量判決每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組的一種方法,其特征在于所述方法包括將處于分組傳輸準備狀態(tài)的隊列號寫入到一個列表并管理其中寫有號碼的順序的第一步驟(S709,404-1,404-2);保存與所有隊列有關(guān)的狀態(tài)變量的第二步驟(409);暫時存儲與不超過預(yù)定數(shù)目的隊列有關(guān)的狀態(tài)變量的第三步驟(S712,410);將其狀態(tài)變量被保存在第三步驟的每一隊列號保存為傳輸侯選的第四步驟(S711,411-1-411-n);從其號碼被保存為傳輸侯選的、可以發(fā)送一個分組的隊列的一個隊列中發(fā)送一個分組,并且更新保存在第三步驟中的隊列的狀態(tài)變量的第五步驟(S813,S814,408)。
35.將所接收到的分組存儲到多個隊列的其中一個、根據(jù)每一隊列的狀態(tài)變量判決每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組的一種方法,其特征在于將處于分組傳輸準備狀態(tài)的隊列號寫入到一個第一列表中并管理其中寫有號碼的順序的第一步驟(S107,104-1,104-2);將處于分組傳輸?shù)却隣顟B(tài)的隊列號寫入到一個第二列表中并管理其中寫有號碼的順序的第二步驟(S106,105-1,105-2);保存與所有隊列有關(guān)的狀態(tài)變量的第三步驟(109);暫時存儲與從第一列表開始的隊列號的不超過預(yù)定范圍的隊列有關(guān)的狀態(tài)變量,當在第一列表中沒有落入到預(yù)定范圍的隊列號,從第二列表開始提取出與該缺少相應(yīng)的一個隊列號,并暫存該隊列號的第四步驟(S209-S219,108);和從該號碼是從該列表開始提取出的隊列中發(fā)送一個分組并且更新在狀態(tài)變量暫存裝置中隊列狀態(tài)變量的第五步驟(S205-S208,108)。
36.將所接收到的分組存儲到多個隊列的其中一個、根據(jù)每一隊列的狀態(tài)變量判決每一隊列是否處于分組傳輸?shù)臏蕚錉顟B(tài)并從處于分組傳輸準備狀態(tài)的隊列中發(fā)送分組的一種方法,其特征在于所述方法包括將處于分組傳輸準備狀態(tài)的隊列號寫入到一個第一列表中并管理其中寫有號碼的順序的第一步驟(S709,404-1,404-2);將處于分組傳輸?shù)却隣顟B(tài)的隊列號寫入到一個第二列表中并管理其中寫有號碼的順序的第二步驟(S707,405-1,405-2);保存與所有隊列有關(guān)的狀態(tài)變量的第三步驟(409);暫時存儲與不超過預(yù)定數(shù)目的隊列有關(guān)的狀態(tài)變量的第四步驟(410);將其狀態(tài)變量被保存在第四步驟而不是保存在第一或第二列表中的每一隊列號保存為傳輸侯選的第五步驟(S710,S711,411-1-411-n);從其號碼被保存為傳輸侯選的、可發(fā)送分組的隊列的一個隊列中發(fā)送一個分組,并更新保存在第四步驟中的隊列的狀態(tài)變量的第六步驟(S801-S822,408)。
全文摘要
一個節(jié)點裝置包括準備隊列列表,狀態(tài)變量存儲部分,狀態(tài)變量暫存部分和輸出控制部分。在狀態(tài)隊列列表中寫有處于分組傳輸準備狀態(tài)的隊列號。每一列表管理其中寫有號碼的隊列順序。狀態(tài)變量存儲部分存儲與所有隊列有關(guān)的狀態(tài)變量。狀態(tài)變量暫存部分只暫存其號碼落入到從該列表裝置開始的一個預(yù)定范圍之內(nèi)的列表有關(guān)的狀態(tài)變量并且其數(shù)據(jù)量比狀態(tài)變量存儲部分小。輸出控制部分從一個隊列中發(fā)送分組,該隊列的號碼是從列表開始頭提取出的,并更新狀態(tài)變量暫存部分的隊列的狀態(tài)變量。本發(fā)明也公開了發(fā)送分組的一種方法。
文檔編號H04L12/56GK1431803SQ0310095
公開日2003年7月23日 申請日期2003年1月7日 優(yōu)先權(quán)日2002年1月7日
發(fā)明者下西英之 申請人:日本電氣株式會社