專利名稱:基于多通道化端口實現通道隊列公平調度的裝置及方法
技術領域:
本發(fā)明涉及一種基于多通道化端口,實現通道隊列公平調度的裝置及方法,尤其涉及用于數據通訊領域(如路由器)中,實現可變帶寬、高密度通道隊列公平調度的裝置及方法。
背景技術:
多通道化E1端口具有高密度、可變帶寬的用戶通道。在系統(tǒng)側,所有通道往往以時分復用的方法共用一條數據通路。例如在32端口E1中,最大可能的通道數是32×31=992,每個通道的速率在64Kbps至2.048Mbps之間變化(所有通道的總速率不能超過32×2.048Mbps)。如何保證各個通道能夠合理、公平地占用系統(tǒng)的總帶寬,就成為這類應用中面臨的首要問題。
在現有的處理方法中,一般根據各個通道速率的大小為每個通道分配不同深度的數據緩沖區(qū)(稱為通道隊列),然后根據各個通道的速率向目的端口發(fā)送不同數目的數據。
這種方法存在如下缺點由于各個通道的數據緩沖區(qū)不固定,使得各個通道的數據緩沖區(qū)相互關聯,如果在系統(tǒng)運行過程中改變某個通道的配置,除需同時改變該通道對應的數據緩沖區(qū)外,還可能對其它通道的緩沖區(qū)進行重新配置,在這個過程中必然會破壞某些通道的數據。另外,通道緩沖區(qū)的撤銷、重新分配還會增加軟件配置的復雜性。
發(fā)明內容
本發(fā)明的目的是為了克服現有技術中通道隊列相互關聯,通道隊列的重新配置會破壞原有數據以及重新配置復雜的缺點,提供一種基于多通道化端口實現通道隊列公平調度的裝置及方法。
一種基于多通道化實現通道隊列公平調度的裝置,包括由各個通道的數據緩沖區(qū)所構成的通道隊列,該裝置包括一個存儲模塊,根據系統(tǒng)中所支持的時隙數目將該存儲區(qū)域劃分出多個數據段,每個數據段構成一個表項,每個時隙在存儲模塊中均對應一個表項;一個配置邏輯模塊,根據用戶的設定對存儲模塊進行修改,某一通道的重新配置僅僅涉及在存儲模塊中所對應的表項,并不涉及該通道對應的緩沖區(qū);一個輪詢邏輯模塊,實現對通道隊列的調度,逐個輪詢策略表的表項,根據表項的內容從通道隊列中取出數據,然后經共用的系統(tǒng)數據通道將數據發(fā)往相應的端口。
所述存儲模塊中一個表項的內容包括一個時隙是否已經被分配、分配的通道號以及該通道一次可以發(fā)送的字節(jié)數。
所述輪詢模塊中一個通道占用幾個時隙,在存儲模塊中就對應幾個表項。
所述輪詢模塊中一個通道占用的時隙越多,獲得輪詢的機會就越多,該通道占用的系統(tǒng)帶寬就越大,使得各個通道根據帶寬的不同公平地占用系統(tǒng)帶寬。
所述通道隊列中各個數據緩沖區(qū)的大小固定,數據緩沖區(qū)中存放各個通道的數據。
所述存儲模塊、配置邏輯模塊、輪詢邏輯模塊由FPGA實現;
所述通道隊列由SRAM、或SDRAM實現。
一種基于多通道化端口實現通道隊列公平調度的方法,包括以下步驟根據用戶配置的通道在鏈路上占用的時隙位置找到在存儲模塊中對應的表項位置;在該位置的表項中寫入該通道的通道號、該通道一次可以發(fā)送的字節(jié)個數,并置該表項的使能位為使能狀態(tài);在運行過程中,對某一通道的配置進行更改,僅需在相應的表項寫入新內容或將該表項的使能位復位即可,而不影響該通道對應的數據緩沖區(qū)。
本發(fā)明進一步包括以下步驟系統(tǒng)上電或復位后,CPU首先需檢查FPGA中存儲模塊的清除操作是否完成,如果未完成需等待直到清除操作完成;然后根據用戶對端口的配置,將配置信息寫入存儲模塊的相應表項;在系統(tǒng)的運行過程中,用戶改變端口的配置,需重新修改存儲模塊中表項的內容。
采用本發(fā)明,與現有技術相比,改變了傳統(tǒng)方法中基于隊列的調度方法,轉而采用基于物理時隙的調度方法,從而減小了通道配置改變時對數據流的影響,同時使得軟硬件的處理更加簡單、方便。
圖1是本發(fā)明模塊組成的相互連接關系;圖2是本發(fā)明策略表表項與E1端口時隙的對應關系;圖3是本發(fā)明每個策略表表項的內容;圖4是本發(fā)明的一種具體實現方式;
圖5是本發(fā)明具體實現的流程。
具體實施例方式
在本發(fā)明中,引入“策略表”的概念來解決現有方法的缺點。
本發(fā)明所述裝置包括策略表、策略表配置邏輯、策略表輪詢邏輯以及各個通道的數據緩沖區(qū)。幾個組成模塊的相互連接關系如圖1所示。下面分別對各個組成模塊進行描述策略表實際是一個存儲區(qū)域,根據系統(tǒng)中所支持的時隙數目將該存儲區(qū)劃分出多個數據段,每個數據段稱為一個表項,每個時隙在策略表中均對應一個表項。例如32個E1端口有1024個時隙、最多992個通道,則對應的策略表需有1024個表項(實際用到的表項為992個)。策略表表項與E1端口時隙的對應關系如圖2所示。策略表實現了高密度隊列的調度策略,使得通道隊列獲得系統(tǒng)總線的機會與相應通道占用系統(tǒng)總帶寬的比例一致。它既保證了各個E1端口之間的公平調度,又保證了單個E1端口內部各個通道的公平調度。策略表表項的內容表示一個時隙是否已經被分配、分配的通道號以及該通道一次可以發(fā)送的字節(jié)數(以16字節(jié)為單位,最簡單的情況各個通道一次可以發(fā)送的字節(jié)數可以設置為相同,而不影響各個通道的性能)。策略表表項的內容如圖3所示。
策略表配置邏輯根據用戶的設定對策略表進行修改,某一通道的重新配置僅僅影響它在策略表中對應的表項,并不影響通道對應的緩沖區(qū)。
策略表輪詢邏輯完成了通道隊列的調度,它逐個輪詢策略表的表項,根據表項的內容從通道隊列中取出數據,然后經共用的系統(tǒng)數據通道將數據發(fā)往相應的端口。值得注意的是,一個通道占用幾個時隙它在策略表中就對應幾個表項。一個通道的帶寬越大(占用的時隙多),獲得輪詢的機會就越多,通道占用的系統(tǒng)帶寬就越大,從而使得各個通道根據帶寬的不同公平地占用系統(tǒng)帶寬。
通道隊列中各個緩沖區(qū)的大小固定(與對應通道的帶寬無關),在緩沖區(qū)中存放了各個通道的數據。如果某一通道的帶寬或所占用的時隙發(fā)生改變,不會影響存放在通道隊列中的數據。
本發(fā)明的核心思想是“策略表”的概念,對策略表的配置方法如下首先根據用戶配置的通道在E1鏈路上占用的時隙位置找到它在策略表中對應的表項位置。在該位置的表項中寫入該通道的通道號、該通道一次可以發(fā)送的字節(jié)個數,并置該表項的使能位為使能狀態(tài)。如果在運行過程中,對某一通道的配置進行更改,僅需在相應的表項寫入新內容或將該表項的使能位復位即可,而不影響該通道對應的數據緩沖區(qū)。
本發(fā)明的具體實現可以采用FPGA與SRAM(或SDRAM)完成,其中由FPGA(以Xilinx公司的Virtex II系列作為例子)完成策略表、策略表配置邏輯以及策略表輪詢邏輯的實現,通道隊列由SRAM(或SDRAM)完成。該實現方式完成了32路通道化E1端口的處理。這種實現方式的結構框圖如圖4所示。
下面結合圖4對本發(fā)明技術方案的實施作進一步詳細描述該實現方式的硬件部分由FPGA和SRAM(或SDRAM)構成。
圖中的策略表采用Virtex II FPGA內部的BlockRAM完成,它共有1024個表項,分別對應32個E1端口的1024個時隙。BlockRAM是一個雙端口RAM,其中一個端口用于策略表的輪詢,另一個端口用于策略表的配置。需要注意的是,FPGA在系統(tǒng)上電或復位后首先完成策略表的清除操作,使得每個策略表表項的使能位均關閉。在清除過程中,FPGA通過標志寄存器通知CPU策略表正忙,CPU不能對策略表進行操作。清除完成后,以同樣的方式通知CPU清除過程結束。
策略表配置邏輯與FPGA的CPU端口相連,通過定制邏輯與BlockRAM的配置端口相連。
策略表輪詢邏輯在BlockRAM的輪詢端口逐個對1024個策略表表項進行輪詢,如果某一表項的使能位打開,則從表項內容中取出表項對應的通道號以及需發(fā)送的字節(jié)數,然后從與通道號對應的數據緩沖區(qū)中取出數據發(fā)往相應的E1端口(此時要求數據緩沖區(qū)中有數據,并且E1端口中的緩沖區(qū)有空間接收數據)。
通道隊列由SRAM(或SDRAM)完成,可以由硬件將SRAM(或SDRAM)分成1024個大小相等的緩沖塊,每個緩沖塊對應一個通道。由FPGA的控制邏輯將各個通道的數據寫入或讀出SRAM(或SDRAM)。
在本實現方式中,軟件的處理步驟如下系統(tǒng)上電或復位后,CPU首先需檢查FPGA中策略表的清除操作是否完成,如果未完成需等待直到清除操作完成。然后軟件根據用戶對E1端口的配置,將配置信息寫入策略表的相應表項。在系統(tǒng)的運行過程中,如果用戶改變E1端口的配置,軟件需重新修改策略表的表項內容。
權利要求
1.一種基于多通道化實現通道隊列公平調度的裝置,包括由各個通道的數據緩沖區(qū)所構成的通道隊列,其特征在于該裝置包括一個存儲模塊,根據系統(tǒng)中所支持的時隙數目將該存儲區(qū)域劃分出多個數據段,每個數據段構成一個表項,每個時隙在存儲模塊中均對應一個表項;一個配置邏輯模塊,根據用戶的設定對存儲模塊進行修改,某一通道的重新配置僅僅涉及在存儲模塊中所對應的表項,并不涉及該通道對應的緩沖區(qū);一個輪詢邏輯模塊,實現對通道隊列的調度,逐個輪詢策略表的表項,根據表項的內容從通道隊列中取出數據,然后經共用的系統(tǒng)數據通道將數據發(fā)往相應的端口。
2.如權利要求1所述實現通道隊列公平調度的裝置,其特征在于所述存儲模塊中一個表項的內容包括一個時隙是否已經被分配、分配的通道號以及該通道一次可以發(fā)送的字節(jié)數。
3.如權利要求1所述實現通道隊列公平調度的裝置,其特征在于所述輪詢模塊中一個通道占用幾個時隙,在存儲模塊中就對應幾個表項。
4.如權利要求3所述實現通道隊列公平調度的裝置,其特征在于所述輪詢模塊中一個通道占用的時隙越多,獲得輪詢的機會就越多,該通道占用的系統(tǒng)帶寬就越大,使得各個通道根據帶寬的不同公平地占用系統(tǒng)帶寬。
5.如權利要求1所述實現通道隊列公平調度的裝置,其特征在于所述通道隊列中各個數據緩沖區(qū)的大小固定,數據緩沖區(qū)中存放各個通道的數據。
6.如權利要求1所述實現通道隊列公平調度的裝置,其特征在于所述存儲模塊、配置邏輯模塊、輪詢邏輯模塊由FPGA實現;所述通道隊列由SRAM、或SDRAM實現。
7.一種基于多通道化端口實現通道隊列公平調度的方法,包括以下步驟根據用戶配置的通道在鏈路上占用的時隙位置找到在存儲模塊中對應的表項位置;在該位置的表項中寫入該通道的通道號、該通道一次可以發(fā)送的字節(jié)個數,并置該表項的使能位為使能狀態(tài);在運行過程中,對某一通道的配置進行更改,僅需在相應的表項寫入新內容或將該表項的使能位復位即可,而不影響該通道對應的數據緩沖區(qū)。
8.如權利要求7所述實現通道隊列公平調度的方法,進一步包括以下步驟系統(tǒng)上電或復位后,CPU首先需檢查FPGA中存儲模塊的清除操作是否完成,如果未完成需等待直到清除操作完成;然后根據用戶對端口的配置,將配置信息寫入存儲模塊的相應表項;在系統(tǒng)的運行過程中,用戶改變端口的配置,需重新修改存儲模塊中表項的內容。
全文摘要
本發(fā)明涉及一種基于多通道化端口實現可變帶寬、高密度通道隊列公平調度的裝置及方法。由策略表、策略表配置邏輯、策略表輪詢邏輯以及各個通道的數據緩沖區(qū)組成。根據用戶配置的通道在鏈路上占用的時隙位置找到它在策略表中對應的表項位置;在該位置的表項中寫入該通道的通道號、該通道一次可以發(fā)送的字節(jié)個數,并置該表項的使能位為使能狀態(tài);如果在運行過程中,對某一通道的配置進行更改,僅需在相應的表項寫入新內容或將該表項的使能位復位即可,而不影響該通道對應的數據緩沖區(qū)。本發(fā)明采用基于物理時隙的調度方法,減小了通道配置改變時對數據流的影響,使得軟硬件的處理更加簡單、方便。
文檔編號H04Q3/64GK1549500SQ0311343
公開日2004年11月24日 申請日期2003年5月8日 優(yōu)先權日2003年5月8日
發(fā)明者吳風波, 李偉, 李為樸, 朱民 申請人:中興通訊股份有限公司