ATM異步傳遞方式是建立在電路交換和分組交換基礎上的一種面向連接的快速分組交換技術,它采用定長分組作為傳輸和交換的單位,并具有端到端QOS保證、完善的流量控制和擁塞控制,以及較好的技術綜合能力等優(yōu)勢,這些都是目前的IP技術所不及的。和傳統(tǒng)的STM電路相比,ATM技術對數(shù)據(jù)交換中猝發(fā)分組的適應能力和傳輸線路的利用率都是很高的。雖然,由于靈活性和價格的原因,ATM技術沒有獲得預期的成功,但其流量控制機制對當前變長分組骨干網的流量控制還是具有重要的參考價值,所以有必要對ATM的流量控制及其實現(xiàn)方式進行深入的研究。
IP核是一段具有特定電路功能的硬件描述語言代碼,該程序與集成電路工藝無關,因而可以移植到不同的半導體工藝中去生產集成電路芯片。隨著CPLD/FPGA的規(guī)模越來越大,設計越來越復雜,使用IP核是一個趨勢。
本文研究了ATM流量控制的原理,并給出了一種IP核的實現(xiàn)方法,該IP核不僅可以用于獨立芯片,還可以作為系統(tǒng)的一個子模塊直接調用。
1 ATM流量特性分析
由于ATM支持的業(yè)務范圍很廣,各種業(yè)務對網絡傳輸?shù)囊笠泊蟛幌嗤?,所以需要對不同的業(yè)務進行管理。當用戶建立連接時都必須與網絡達成一個合約,并在通信過程中要受該合約的約束,同時網絡按合約提供相應的服務,具體的業(yè)務特性參數(shù)描述如下:
(1)峰值信元速率(PCR)表示用戶可以發(fā)送信元的最大瞬時速率;
(2)持續(xù)信元速率(SCR)表示一段時間內的平均信元速率。但SCR并不是任意一段時間內的平均信元速率。它是一個ATM連接上的平均信元速率的上限值;
(3)最大突發(fā)長度(MBS)指的是以峰值信元速率能夠連續(xù)發(fā)送的最大信元數(shù)目;
(4)最小信元速率(MCR)則是用戶可接受的最小信元傳送速率。
而后,ATM論壇又按照用戶要求的比特率特點將業(yè)務劃分為以下幾種主要的類型:
(1)恒定比特率(CBR)
用戶要求固定帶寬的連接,帶寬大小由PCR說明。該類服務對CDVT有嚴格要求,適用于實時應用,如話音和視頻信號傳輸?shù)取?/P>
(2)變比特率(VBR)
在連接期間的帶寬要求隨時間變化,其帶寬值用PCR、SCR、MBS表征,適用于突發(fā)的數(shù)據(jù)傳輸。
(3)不指明比特率(UBR)
支持非實時業(yè)務,如文件傳送和電子郵件。UBR用PCR來表征,但網絡只是以“最大努力”來傳送這類業(yè)務。
(4)可用比特率(ABR)
ABR不適用于實時應用,但它要求保持較低的信元丟失率。當連接建立時,系統(tǒng)將以PCR和MCR分別指明最大需求帶寬和最小可用帶寬。而當連接建立后,系統(tǒng)則將根據(jù)網絡當前負載情況的反饋信息來調整發(fā)送速率,但不能小于MCR。該類常用于信令的傳輸。具體的流量類型和參數(shù)見表1所列。
![]() |
2 ATM流量控制器的原理和設計
實際應用中最常見的兩種業(yè)務模式是CBR和VBR,它們分別對應著當前通信傳輸?shù)恼Z音和數(shù)據(jù)業(yè)務。針對ATM的流量算法為GCRA(一般信元速率算法)。該算法可采用公式GCRA (I,L)來描述。其中I是時間增量,表示相對當前時刻的下一個信元到達時間間隔的理論值(期望值)。L是信元時延偏差容限,表示相對期望值的下一信元可以提前到達的最大容忍范圍。對應于雙漏桶算法,它可以表示為第一級漏桶處理PCR,相應模型為GCRA1 (1/PCR,CDVT)。第二級漏桶處理SCR的相應模型為GCRA2 (1/SCR,BT+CDVT),根據(jù)ATM論壇規(guī)定,PCR是必須的,而SCR是可選的。如果其中的L的值較大,則將增大數(shù)據(jù)的突發(fā)程度。第一級漏桶的監(jiān)控是針對單個信元的,經過第一級漏桶的平均速率可以得到控制,但是突發(fā)性還是沒有得到控制。第二級漏桶是以監(jiān)控若干個信元為目的,它對突發(fā)性有良好的監(jiān)控和抑制作用。對于CBR型的流量,只需要第一級漏桶,因為它沒有數(shù)據(jù)突發(fā)的概念,而對于VBR業(yè)務類型,第二級漏桶也是需要的,因為它有數(shù)據(jù)突發(fā)可能,所以要對它進行監(jiān)控。其兩級漏桶算法的示意圖如圖1所示。
![]() |
由此可見,ATM的流量控制技術是較為復雜的,而且也是其精髓之所在。在參考各種資料的基礎上,本文提出了一種流控的調度算法。這種調度算法是基于各個UTOPIA的PHY接口實現(xiàn)的。每個PHY的接口上可能存在多種流量類型(如CBR,VBR等)。該算法可根據(jù)每個PHY的流量類型來設置相應的多個調度表,每個表代表一種流量類型(如CBR,VBR等)。每個表由多個時隙槽組成,每個時隙槽中有多個要請求發(fā)送的ATM連接,每個時隙槽中的連接容量定義為cell per slot(CPS)。每個表由兩個指針組成,分別為實時指針RP和服務指針SP,其中RP在每經過CPS個CELL發(fā)送時間后將移動到下一個時隙槽,而SP則要等到某個時隙槽沒有等待發(fā)送的CELL時才能往下移動。如果一個連接在本時隙槽發(fā)送完后接著被調度到下個時隙槽發(fā)送,那么,此時將達到連接的最大比特速率為:
鏈接的最大速率=PHY端口的線速/CPS
同理,某連接的最小速率就表示在每次表的輪詢過程中只被調度一次,其可以表示為:
最小比特速率=PHY端口的線速/((時隙數(shù)-1)×CPS)
假設PHY0的調度表的初始狀態(tài)如圖2左上角的圖形所示,其中CPS=2,有8個時隙(timeslot),PHY0共有兩個流量類型,那么,將有兩個優(yōu)先級的調度表,分別是CBR和UBR業(yè)務類型,顯然CBR業(yè)務類型的優(yōu)先級高于UBR。調度表中的空白表示該時隙沒有連接,連接1、2被安排在時隙B發(fā)送,連接3在時隙C,連接4、5、6在時隙D。CBR和UBR都是PCR通信類型,它們可根據(jù)參數(shù)PCR來進行調度。對于連接1、2,PCR=1/2MaxPCR;對于連接3,PCR=1/3MaxPCR;對于連接4、5、6,PCR=1/4MaxPCR。開始時,服務指針和實時指針都指向時隙A。從圖2可以看到PHY0的整個調度過程。第一次調度時,兩個調度表的當前時隙(時隙A)均沒有CELL;第二次調度時,調度表中仍沒有連接,實時指針指向下一個時隙(時隙B);第三次調度時,CBR調度表的時隙B中有連接2和1,先調度2發(fā)送,然后為連接2重新安排調度,由于連接2的PCR=1/2MaxPCR,所以將2寫入時隙D;第四次調度時,連接1的處理類似;第五次調度時,調度連接3,其下次調度安排在時隙F;第六次調度時。CBR和UBR調度表的當前時隙(時隙C)中都沒有連接,實時指針指向時隙D;第七次調度時,CBR和UBR調度表的時隙D中均有連接,由于CBR優(yōu)先級高.故從CBR調度表中讀取連接1;第八次調度時,連接2被調度,實時指針指向時隙E,注意到此時由于UBR的連接未被調度,所以SP的指針就指在了那里:第九次調度時,CBR調度表的時隙E中沒有連接,而UBR的時隙D有3個連接要求調度,這時從UBR調度表中調度連接4,調度完后根據(jù)流量參數(shù)將連接4寫入時隙H;第十次調度時,調度連接5,然后將連接5寫入時隙H同時實時指針下移,但是,因為還有連接6沒有被調度,所以服務指針還在D處。其余的調度可以以此類推。
![]() |
3 功能仿真及驗證
該ATM流量控制器可采用硬件描述語言Verilog HDL進行描述。圖3所示是在ModelSim軟件環(huán)境中進行功能仿真的相應仿真結果。
![]() |
在圖3所示的PHY0調度功能仿真結果中,CLK是工作時鐘,reset是復位信號,S_Req是調度請求信號(S_Req有效時進行調度),clr_S是調度請求清除信號,PHY是選中的物理設備的地址(即要進行調度的物理設備地址),chn是調度到的ATM的連接號。APCLC是當前調度到的連接所連接的下一個連接號,PCR是峰值信元速率對應的時隙調度速率,CPS是每個時隙發(fā)送的信元數(shù),CPS_CNT是信元計數(shù),ATY是ATM通信類型指示(00表示PCR通信類型)。本設計中的CBR和UBR都是PCR通信類型,所以ATT均為00。從仿真結果可以看出,調度到的連接號依次為0、0、2、1、3、0、1、2、4、5、2、1、3、6、1、2…,可見,與上面調度算法的分析結果一致。
4 結束語
本文主要研究了在FPGA上利用VerilogHDL實現(xiàn)ATM流量控制的方法,提出了一種較為實用的算法機制,并在此基礎上給出了對應的IP核設計。通過對其進行的功能仿真結果表明,該算法運行良好且高效,可以滿足實際系統(tǒng)的需要。