一種基於fpga實現atm網絡流量控制的裝置及方法
2023-12-07 03:22:01 2
專利名稱:一種基於fpga實現atm網絡流量控制的裝置及方法
技術領域:
本發明涉及路由器中實現流量控制技術領域,特別是涉及在路由器上基於FPGA實現ATM網絡流量控制的裝置及其方法。
背景技術:
隨著計算技術的發展,出現了各種數據傳輸網絡,目前主要存在兩種網絡,一種是以包為單位傳輸IP(Internet Protocol,網際網路協議)分組網絡,一種是以信元為單位傳輸ATM(Asynchronous Transfer Mode,異步傳輸模式)網絡。作為以IP分組為交換基礎的路由器,在連接ATM網絡的時候,需要用於處理IP分組到ATM信元相互轉換的線路接口卡。
目前的ATM線路接口卡主要由(如圖1所示)光模塊101、物理層晶片102、SAR(Segment And Reassemble,分段/重組或拆裝)晶片103、FPGA(FieldProgrammable Gate Array,現場可編程邏輯陣列)晶片104和網絡處理器105等晶片組成。其中,光模塊101完成光電轉換,物理層晶片102完成SDH(Synchronous Digital Hierarchy,同步數字系列)幀提取和信元封裝等功能,SAR晶片103完成IP報文的分片、ATM信元重組和QoS(Quality of Service,服務質量)業務等功能,FPGA晶片104用於連接SAR晶片103和網絡處理器105,完成二者之間的數據轉換。由於目前網絡處理器和多數晶片之間的數據接口並不一致,需要進行數據轉換,FPGA晶片在系統中是必需的。隨著半導體工藝發展,FPGA晶片的規模越來越大,同時價格也越來越便宜,使用低廉的FPGA晶片代替SAR晶片成為可能。目前的ATM線路接口卡的流量控制依靠SAR晶片完成,這種系統存在設計複雜、成本高等缺點。
發明內容
本發明所要解決的技術問題在於提供一種基於FPGA實現ATM網絡流量控制的裝置及其方法,用於克服現有技術中存在的路由器中的ATM網絡流量控制由專用SAR晶片實現,造成系統複雜、成本過高的問題和缺陷。
為了實現上述目的,本發明提供了一種基於FPGA實現ATM網絡流量控制的裝置,包括網絡處理器、物理層晶片,其特徵在於,還包括一ATM信元存儲器,用於接收所述網絡處理器傳來的ATM信元,並按PVC通道分塊存儲所述ATM信元;一PVC管理模塊,用於將所述ATM信元存儲器按照PVC虛擬成多個FIFO隊列,並對所述各個FIFO隊列進行管理;一PVC狀態緩存模塊,用於存儲所述各個PVC通道的下一ATM信元發送時刻變量;一PVC帶寬配置模塊,用於配置所述各個PVC通道的帶寬參數;一流量控制模塊,用於產生PVC通道號,查詢所述PVC管理模塊、PVC狀態緩存模塊和PVC帶寬配置模塊,計算出該PVC通道號對應的通道是否有ATM信元和是否允許讀取ATM信元,組裝ATM信元成信元幀並存儲;一信元幀發送模塊,用於從所述流量控制模塊中讀取信元幀,進行ATM信元間隔控制,並發送不含幀頭的信元幀;一物理接口模塊,用於接收所述信元幀發送模塊發來的信元幀,並將其發至所述物理層晶片。
所述的基於FPGA實現ATM網絡流量控制的裝置,其中,所述ATM信元存儲器又包括一外部存儲設備和一存儲器接口模塊;所述外部存儲設備用於存儲ATM信元,所述存儲器接口模塊用作外部RAM和FPGA內部邏輯進行數據交換的接口模塊。
所述的基於FPGA實現ATM網絡流量控制的裝置,其中,所述流量控制模塊又包括一ATM信元發送模塊、一信元幀緩衝器、一帶寬控制模塊和一基準時刻生成模塊;其中所述ATM信元發送模塊用於查詢所述各PVC通道,產生查詢所述PVC管理模塊、PVC狀態緩存模塊、PVC帶寬配置模塊和帶寬控制模塊的操作,向所述ATM信元存儲器發送讀RAM地址,將讀回的ATM信元和所述帶寬控制模塊返回的參數按照一定的格式組成信元幀,並存入至所述信元幀緩衝器;所述信元幀緩衝器用於存儲信元幀的FIFO隊列;
所述帶寬控制模塊用於維護上一ATM信元發送時刻變量、系統配置的最大帶寬的時間間隔數變量,查詢所述PVC狀態緩存模塊返回的下一ATM信元發送時刻變量值分別與基準時刻生成模塊的計數變量值和上一ATM信元發送時刻變量值進行比較的情況,根據比較結果決定是否允許所述ATM信元發送模塊在該下一ATM信元發送時刻從所述ATM信元存儲器讀取ATM信元,並對PVC通道狀態進行維護;所述基準時刻生成模塊為一個計數器,用於產生用作所述帶寬控制模塊判決基準的所述計數變量,並產生初始化所述PVC狀態緩存模塊的信號。
所述的基於FPGA實現ATM網絡流量控制的裝置,其中,所述物理接口模塊為一標準Utopia接口。
為了實現上述目的,本發明還提供了一種適用於所述裝置的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,包括步驟51,ATM信元存儲器接收所述網絡處理器傳來的ATM信元,並按PVC通道分塊存儲所述ATM信元;步驟52,流量控制模塊產生PVC通道號,不斷查詢所述PVC管理模塊、PVC狀態緩存模塊和PVC帶寬配置模塊,計算出該PVC通道號對應的通道是否有ATM信元和是否允許讀取ATM信元,組裝ATM信元成信元幀並存儲;步驟53,信元幀發送模塊從所述流量控制模塊中讀取信元幀,進行ATM信元間隔控制,並發送不含幀頭的信元幀;步驟54,物理接口模塊接收所述信元幀發送模塊發來的信元幀,並將其發至所述物理層晶片。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,所述步驟51、52之間還包括一通過流量控制模塊發送的PVC狀態初始化命令對所述PVC狀態緩存模塊進行初始化的步驟,用於將所述所有PVC通道的下一ATM信元指針都指向零。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,所述步驟52中還包括一通過查詢所述PVC管理模塊返回的該PVC通道號對應的通道的FIFO隊列狀態來判斷該PVC通道號對應的通道是否有ATM信元的步驟。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,所述步驟52中還包括一通過所述帶寬控制模塊、信元幀緩衝器返回的值判斷是否允許所述ATM信元發送模塊從所述ATM信元存儲器讀取ATM信元的步驟。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,所述步驟52中,若該PVC通道號對應的通道允許讀取ATM信元,則所述ATM信元發送模塊從所述ATM信元存儲器讀取ATM信元,並在該ATM信元的頭部加一間隔控制字,組成一信元幀並存至所述信元幀緩衝器,設置信元幀標誌位,等待所述信元幀發送模塊讀取;同時將更新後的PVC狀態寫回所述PVC狀態緩存模塊,繼續查詢下一PVC通道。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,在所述步驟53之前還包括一所述信元幀發送模塊通過查詢所述流量控制模塊的信元幀標誌位為來判斷所述信元幀緩衝器中是否含有信元幀的步驟。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,在所述步驟53之前還包括一判斷是否允許所述信元幀發送模塊從所述信元幀緩衝器讀取信元幀的步驟。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,所述步驟53中,所述信元幀發送模塊通過啟動一間隔計數器獲取計數器當前值,並通過查詢信元幀緩衝器讀取信元幀頭獲取一ATM信元間隔參數,再通過比較所述計數器當前值與所述ATM信元間隔參數的方式實現ATM信元間隔控制。
所述的基於FPGA實現ATM網絡流量控制的方法,其中,若所述ATM信元間隔參數值小於所述計數器當前值且所述物理接口模塊允許發送ATM信元,則將所述信元幀發送模塊將ATM信元發至所述物理接口模塊。
本發明提供了一種簡單基於FPGA實現ATM網絡流量控制的方法和裝置,解決現有技術中存在的路由器中的ATM網絡流量控制由專用SAR晶片實現,造成系統複雜、成本過高的問題和缺陷;與現有技術相比,本發明的有益效果在於採用本發明所述方法和裝置取得了使用FPGA替換專用SAR晶片實現流量控制的技術進步,達到了精確控制ATM信元速率的效果,節省了系統成本,提高了系統可靠性和市場競爭力等等。
以下結合附圖和具體實施例對本發明進行詳細描述,但不作為對本發明的限定。
圖1為現有技術中ATM線路接口板系統模塊圖;圖2為本發明ATM網絡流量控制模塊圖;圖3為本發明中使用的PVC帶寬配置參數示意圖;圖4為本發明中使用的信元幀封裝示意圖;圖5為本發明PVC通道帶寬控制處理流程圖;圖6為本發明ATM信元處理流程圖。
具體實施例方式
下面結合附圖對基於FPGA實現ATM網絡流量控制技術方案的實施作進一步的詳細描述。
請參閱圖2所示,為本發明ATM網絡流量控制模塊圖;圖3為本發明中使用的PVC帶寬配置參數示意圖;圖4為本發明中使用的信元幀封裝示意圖。本發明基於FPGA實現ATM網絡流量控制的裝置包括硬體模塊部分、軟體模塊部分。
硬體模塊部分包括ATM信元存儲器201,包括外部存儲設備202和存儲器接口模塊203。其中,外部存儲設備202是一個大容量RAM(RandomAccess Memory,隨機存儲器),用來存儲ATM信元;存儲器接口模塊203是外部RAM和FPGA內部邏輯進行數據交換的接口模塊;ATM信元存儲器201受PVC管理模塊204和流量控制模塊211控制讀寫操作。
軟體模塊部分包括如下模塊PVC管理模塊204,為ATM信元存儲器201提供寫RAM地址,並將ATM信元存儲器201按PVC(Permanent Virtual Circuits,永久虛鏈路)虛擬成多個FIFO(First-In First-Out,先進先出)隊列,並對每個FIFO隊列狀態進行管理,以待流量控制模塊211查詢。
PVC狀態緩存模塊205,是一個FPGA內部RAM,存儲各個PVC通道的下一ATM信元發送時刻Time0,以待流量控制模塊211查詢;同時接收流量控制模塊211發送的狀態初始化命令,對每個PVC的狀態進行清零操作。
PVC帶寬配置模塊206,是一個FPGA內部RAM,用來配置各個PVC通道的帶寬參數,帶寬參數是以基準時鐘19.44MHz為參考,通過計算同一PVC通道緊鄰兩個ATM信元時鐘間隔(Step)得到的(如圖3所示),並將得到的參數通過CPU(主處理器)接口配置到PVC帶寬配置模塊206。
流量控制模塊211,是實現ATM信元流量控制的核心模塊,由該模塊211決定什麼時候發送哪個PVC通道的ATM信元,同時還決定兩個相鄰之間ATM信元的間隔。流量控制模塊211又包括ATM信元發送模塊207、信元幀緩衝器208、帶寬控制模塊209和基準時刻生成模塊210等四個模塊。其中,其中,ATM信元發送模塊207是一個狀態機,不斷輪詢各PVC通道,產生查詢PVC管理模塊204、PVC狀態緩存模塊205、PVC帶寬配置模塊206和帶寬控制模塊209等模塊的操作,向ATM信元存儲器201發送讀RAM地址,將讀回來的ATM信元和帶寬控制模塊209返回的參數Step0按照圖4的格式組成信元幀,存入信元幀緩衝器208中,參數Step0為ATM信元間隔參數。
其中,信元幀緩衝器208是一個用來存儲ATM信元幀的FIFO隊列。
其中,帶寬控制模塊209是一個運算單元,同時維護兩個變量,一個是上一ATM信元的發送時刻Time1,另一個是系統配置的最大帶寬的時間間隔數Step1。帶寬控制模塊209將查詢PVC狀態緩存模塊205所返回的Time0值分別與基準時刻生成模塊210的Counter_1值和上一ATM信元的發送時刻Time1的值進行比較,決定是否允許ATM信元發送模塊207在這一時刻從ATM信元存儲器201讀取一個ATM信元,並對PVC通道狀態進行維護。
其中,基準時刻生成模塊210是一個計數器Counter_1,為基準時鐘參數,19.440MHz時鐘為它的時鐘源,一秒鐘循環一次,作為帶寬控制模塊209判決的基準,同時產生初始化PVC狀態緩存模塊205信號。
信元幀發送模塊212,是實現ATM信元流量控制的執行模塊,它維護一個用來計算相鄰ATM信元間隔的計數器Counter_2。信元幀發送模塊212不斷查詢流量控制模塊211,如果流量控制模塊211允許讀取一個信元幀,則首先讀取信元幀頭Step0,將幀頭Step0和計數器Counter_2進行比較;如果Step0值小於Counter_2值且物理接口模塊213允許發送ATM信元,將ATM信元發送到物理接口模塊213,否則等待物理接口模塊213允許發送ATM信元。
物理接口模塊213,是一個標準Utopia接口,將信元幀發送模塊212發送的ATM信元發送給物理層晶片102,實現流量控制。
請參閱圖5所示,為本發明PVC通道帶寬控制處理流程圖。並結合圖2,對於本發明的帶寬控制模塊209數據處理的步驟如下步驟a,讀取PVC通道狀態參數,ATM信元發送模塊207發出查詢命令後,帶寬控制模塊209從PVC狀態緩存模塊205讀回該PVC通道的下一ATM信元發送時刻Time0,同時從PVC帶寬配置模塊206讀回系統的PVC通道帶寬配置參數Step。
步驟b,將Time0與Counter_1和Time1進行比較,帶寬控制模塊209將下一ATM信元發送時刻Time0分別與基準時鐘參數Counter_1和系統上一ATM信元發送時刻Time1進行比較,判斷是否允許ATM信元發送模塊207發送ATM信元。
步驟c,判斷Time0是否小於等於Counter_1,如果下一ATM信元發送時刻Time0小於等於基準時鐘參數Counter_1,則轉到步驟d執行,否則轉到步驟i執行。
步驟d,判斷Time0是否小於等於Time1,如果下一ATM信元發送時刻Time0小於等於系統上一ATM信元發送時刻Time1,則轉到步驟e執行,否這轉到步驟g執行。
步驟e,判斷Time1是否小於等於Counter_1,如果系統上一ATM信元發送時刻Time1小於等於基準時鐘參數Counter_1,則轉到步驟f執行,否則轉到步驟h執行。
步驟f,更新各參數,更新參數Time0和Time1,並返回ATM信元間隔參數Step0,以供ATM信元發送模塊207使用。這時下一ATM信元發送時刻Time0的值為Counter_1與Step之和,上一ATM信元發送時刻Time1的值就為當前Counter_1的值。ATM信元間隔參數Step0為零。
步驟g,更新各參數,更新參數Time0和Time1,並返回ATM信元間隔參數Step0,以供ATM信元發送模塊207使用。這時下一ATM信元發送時刻Time0的值為Counter_1與Step之和,上一ATM信元發送時刻Time1的值就為當前Counter_1的值。ATM信元間隔參數Step0為零。
步驟h,更新各參數,更新參數Time0和Time1,並返回ATM信元間隔參數Step0,以供ATM信元發送模塊207使用。這時下一ATM信元發送時刻Time0的值為Time1與Step之和,上一ATM信元發送時刻Time1的值不變。ATM信元間隔參數Step0為零。
步驟i,判斷Time0是否小於等於Time1,如果下一ATM信元發送時刻Time0小於等於系統上一ATM信元發送時刻Time1,則轉到步驟n執行,否則轉到步驟j執行。
步驟j,判斷Time1是否小於等於Counter_1,如果系統上一ATM信元發送時刻Time1小於等於基準時鐘參數Counter_1,則轉到步驟k執行,否則轉到步驟o執行。
步驟k,更新參數Step0,ATM信元間隔參數Step0的值為下一ATM信元發送時刻Time0與基準時鐘參數Counter_1之差。
步驟l,判斷Step0是否小於等於Step1,如果ATM信元間隔參數Step0小於等於系統配置的最大帶寬的時間間隔數Step1,則轉到步驟m執行,否則轉到步驟q執行。
步驟m,更新各參數,更新參數Time0和Time1,並返回ATM信元間隔參數Step0,以供ATM信元發送模塊207使用。這時下一ATM信元發送時刻Time0的值為Time0與Step之和,上一ATM信元發送時刻Time1的值為更新前的Time0值。ATM信元間隔參數Step0保持不變。
步驟n,更新各參數,更新參數Time0和Time1,並返回ATM信元間隔參數Step0,以供ATM信元發送模塊207使用。這時下一ATM信元發送時刻Time0的值為Time1與Step之和,上一ATM信元發送時刻Time1的值保持不變。ATM信元間隔參數Step0為零。
步驟o,更新參數Step0,ATM信元間隔參數Step0的值為下一ATM信元發送時刻Time0與上一ATM信元發送時刻Time1之差。
步驟p,設置允許發送標誌,帶寬控制模塊209設置一個標誌位,表明允許ATM信元發送模塊207從ATM信元存儲器201中讀取一個ATM信元。
步驟q,返回,判決完成,將下一ATM信元發送時刻Time0存回PVC狀態緩存模塊205中,並返回步驟a,等待下一次操作。
請參閱圖6所示,為本發明ATM信元處理流程圖。對於進入本發明的ATM信元的處理步驟如下步驟1,初始化PVC狀態,初始化PVC狀態緩存模塊205,使所有PVC通道的下一ATM信元指針都指向零。該初始化操作每一秒鐘執行一次,受基準時刻生成模塊210控制。
步驟2,判斷是否進行初始化操作,查詢基準時刻生成模塊210狀態,如果一秒鐘計時結束,則返回步驟1執行初始化操作,否則繼續執行下一步操作。
步驟3,產生PVC通道號,ATM信元發送模塊207生成需要查詢的PVC通道號。
步驟4,查詢PVC通道,根據步驟3產生的PVC通道號查詢PVC管理模塊204。
步驟5,判斷被查詢的PVC通道是否有ATM信元發送,當查詢PVC管理模塊204時,PVC管理模塊204返回對應PVC通道的FIFO隊列狀態。如果有ATM信元發送,則下一步轉入步驟6執行,否則返回步驟2。
步驟6,查詢帶寬控制器,根據步驟3產生的PVC通道號查詢帶寬控制模塊209。
步驟7,判斷是否允許讀取,ATM信元發送模塊207根據帶寬控制模塊209和信元幀緩衝器208返回的值,決定是否從ATM信元存儲器201讀取一個ATM信元。如果允許讀取一個ATM信元,則下一步轉入步驟8執行,否則返回步驟2。
步驟8,讀取ATM信元並封裝幀,ATM信元發送模塊207從PVC管理模塊204讀回ATM信元的開始地址,從ATM信元存儲器201中讀取一個ATM信元,並根據查詢帶寬控制模塊209返回的值Step0組裝成一個信元幀。
步驟9,存儲信元幀,ATM信元發送模塊207將組裝好的信元幀存入信元幀緩衝器208中,並設置信元幀標誌位,向信元幀發送模塊212表示信元幀緩衝器208中存在至少一個完整的信元幀。
步驟10,返回,信元幀封裝完成,返回步驟2。
步驟11,查詢信元幀緩衝器,信元幀發送模塊212不斷查詢流量控制模塊211的信元幀標誌位。
步驟12,判斷信元幀緩衝器208中是否有信元幀,如果有,則轉到下一步執行,否則返回步驟11。
步驟13,讀取信元幀頭,首先信元幀發送模塊212從信元幀緩衝器208中只讀取一個字的信元幀頭,獲取ATM信元間隔參數Step0。
步驟14,查詢計數器Counter_2,信元幀發送模塊212讀取計數器Counter_2的當前值。
步驟15,判斷是否允許發送該ATM信元,信元幀發送模塊212將Step0與Counter_2的值進行比較,如果Step0的值小於或者等於Counter_2值,則轉到下一步執行,否則返回到步驟14。
步驟16,將計數器Counter_2值清零,計數器Counter_2清零後繼續計數。
步驟17,發送ATM信元,信元幀發送模塊212繼續從信元幀緩衝器208中讀取信元幀的後續部分,即不含幀頭的信元幀,將ATM信元發送到物理接口模塊213。
步驟18、返回,一個信元幀發送完後,返回步驟11。
採用本發明所述方法和裝置取得了使用FPGA替換專用SAR晶片實現流量控制的技術進步,達到了精確控制ATM信元速率的效果,節省了系統成本,提高了系統可靠性和市場競爭力等等。
當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明所附的權利要求的保護範圍。
權利要求
1.一種基於FPGA實現ATM網絡流量控制的裝置,包括網絡處理器、物理層晶片,其特徵在於,還包括一ATM信元存儲器,用於接收所述網絡處理器傳來的ATM信元,並按PVC通道分塊存儲所述ATM信元;一PVC管理模塊,用於將所述ATM信元存儲器按照PVC虛擬成多個FIFO隊列,並對所述各個FIFO隊列進行管理;一PVC狀態緩存模塊,用於存儲所述各個PVC通道的下一ATM信元發送時刻變量;一PVC帶寬配置模塊,用於配置所述各個PVC通道的帶寬參數;一流量控制模塊,用於產生PVC通道號,查詢所述PVC管理模塊、PVC狀態緩存模塊和PVC帶寬配置模塊,計算出該PVC通道號對應的通道是否有ATM信元和是否允許讀取ATM信元,組裝ATM信元成信元幀並存儲;一信元幀發送模塊,用於從所述流量控制模塊中讀取信元幀,進行ATM信元間隔控制,並發送不含幀頭的信元幀;一物理接口模塊,用於接收所述信元幀發送模塊發來的信元幀,並將其發至所述物理層晶片。
2.根據權利要求1所述的基於FPGA實現ATM網絡流量控制的裝置,其特徵在於,所述ATM信元存儲器又包括一外部存儲設備和一存儲器接口模塊;所述外部存儲設備用於存儲ATM信元,所述存儲器接口模塊用作外部RAM和FPGA內部邏輯進行數據交換的接口模塊。
3.根據權利要求1所述的基於FPGA實現ATM網絡流量控制的裝置,其特徵在於,所述流量控制模塊又包括一ATM信元發送模塊、一信元幀緩衝器、一帶寬控制模塊和一基準時刻生成模塊;其中所述ATM信元發送模塊用於查詢所述各PVC通道,產生查詢所述PVC管理模塊、PVC狀態緩存模塊、PVC帶寬配置模塊和帶寬控制模塊的操作,向所述ATM信元存儲器發送讀RAM地址,將讀回的ATM信元和所述帶寬控制模塊返回的參數按照一定的格式組成信元幀,並存入至所述信元幀緩衝器;所述信元幀緩衝器用於存儲信元幀的FIFO隊列;所述帶寬控制模塊用於維護上一ATM信元發送時刻變量、系統配置的最大帶寬的時間間隔數變量,查詢所述PVC狀態緩存模塊返回的下一ATM信元發送時刻變量值分別與基準時刻生成模塊的計數變量值和上一ATM信元發送時刻變量值進行比較的情況,根據比較結果決定是否允許所述ATM信元發送模塊在該下一ATM信元發送時刻從所述ATM信元存儲器讀取ATM信元,並對PVC通道狀態進行維護;所述基準時刻生成模塊為一個計數器,用於產生用作所述帶寬控制模塊判決基準的所述計數變量,並產生初始化所述PVC狀態緩存模塊的信號。
4.根據權利要求1、2或3所述的基於FPGA實現ATM網絡流量控制的裝置,其特徵在於,所述物理接口模塊為一標準Utopia接口。
5.一種適用於權利要求1所述裝置的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,包括步驟51,ATM信元存儲器接收所述網絡處理器傳來的ATM信元,並按PVC通道分塊存儲所述ATM信元;步驟52,流量控制模塊產生PVC通道號,不斷查詢所述PVC管理模塊、PVC狀態緩存模塊和PVC帶寬配置模塊,計算出該PVC通道號對應的通道是否有ATM信元和是否允許讀取ATM信元,組裝ATM信元成信元幀並存儲;步驟53,信元幀發送模塊從所述流量控制模塊中讀取信元幀,進行ATM信元間隔控制,並發送不含幀頭的信元幀;步驟54,物理接口模塊接收所述信元幀發送模塊發來的信元幀,並將其發至所述物理層晶片。
6.根據權利要求5所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,所述步驟51、52之間還包括一通過流量控制模塊發送的PVC狀態初始化命令對所述PVC狀態緩存模塊進行初始化的步驟,用於將所述所有PVC通道的下一ATM信元指針都指向零。
7.根據權利要求5所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,所述步驟52中還包括一通過查詢所述PVC管理模塊返回的該PVC通道號對應的通道的FIFO隊列狀態來判斷該PVC通道號對應的通道是否有ATM信元的步驟。
8.根據權利要求5所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,所述步驟52中還包括一通過所述帶寬控制模塊、信元幀緩衝器返回的值判斷是否允許所述ATM信元發送模塊從所述ATM信元存儲器讀取ATM信元的步驟。
9.根據權利要求5、6、7或8所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,所述步驟52中,若該PVC通道號對應的通道允許讀取ATM信元,則所述ATM信元發送模塊從所述ATM信元存儲器讀取ATM信元,並在該ATM信元的頭部加一間隔控制字,組成一信元幀並存至所述信元幀緩衝器,設置信元幀標誌位,等待所述信元幀發送模塊讀取;同時將更新後的PVC狀態寫回所述PVC狀態緩存模塊,繼續查詢下一PVC通道。
10.根據權利要求5、6、7或8所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,在所述步驟53之前還包括一所述信元幀發送模塊通過查詢所述流量控制模塊的信元幀標誌位為來判斷所述信元幀緩衝器中是否含有信元幀的步驟。
11.根據權利要求5、6、7或8所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,在所述步驟53之前還包括一判斷是否允許所述信元幀發送模塊從所述信元幀緩衝器讀取信元幀的步驟。
12.根據權利要求5、6、7或8所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,所述步驟53中,所述信元幀發送模塊通過啟動一間隔計數器獲取計數器當前值,並通過查詢信元幀緩衝器讀取信元幀頭獲取一ATM信元間隔參數,再通過比較所述計數器當前值與所述ATM信元間隔參數的方式實現ATM信元間隔控制。
13.根據權利要求12所述的基於FPGA實現ATM網絡流量控制的方法,其特徵在於,若所述ATM信元間隔參數值小於所述計數器當前值且所述物理接口模塊允許發送ATM信元,則將所述信元幀發送模塊將ATM信元發至所述物理接口模塊。
全文摘要
本發明公開了一種基於FPGA實現ATM網絡流量控制的裝置及其方法,該裝置包括網絡處理器、物理層晶片,還包括ATM信元存儲器,接收ATM信元,並按PVC通道分塊存儲信元;PVC管理模塊,用於將ATM信元存儲器按照PVC虛擬成多個FIFO隊列;PVC狀態緩存模塊,用於存儲各個PVC通道的下一信元發送時刻變量;PVC帶寬配置模塊,用於配置帶寬參數;流量控制模塊,用於產生PVC通道號,查詢上述模塊,計算出是否有信元和是否允許讀取信元,組裝信元成信元幀並存儲;信元幀發送模塊,用於發送信元幀;物理接口模塊,用於接收信元幀發送模塊發來的信元幀,並將其發至物理層晶片。本發明精確控制信元速率,節省了系統成本。
文檔編號H04L12/56GK1984030SQ20051013060
公開日2007年6月20日 申請日期2005年12月14日 優先權日2005年12月14日
發明者鄭斌儒, 周廣水, 李祥 申請人:中興通訊股份有限公司