??? 摘? 要:? 結合實用化綜合業(yè)務接入系統(tǒng)內部標簽分組(ILP)在系統(tǒng)中的傳輸與處理結構,針對ILP在系統(tǒng)中基于多總線背板傳輸的時延與同步問題,提出了一種實用的“一對多”背板總線傳輸的自適應bit位同步和ILP包同步解決方案和實現方法,并討論了空閑字節(jié)(Idle Bytes)對業(yè)務承載效率的影響。?
??? 關鍵詞: 系統(tǒng)內部標簽分組(ILP) 多級復接? 自適應? 同步
?
??? 系統(tǒng)內部標簽分組(ILP:Inner-system Labeled Packet)傳輸與交換技術是國家“863”通信技術主題重大課題——“實用化綜合接入系統(tǒng)研究與開發(fā)”課題的關鍵技術之一[5],目的在于實現基于“分組化環(huán)境和業(yè)務分類”條件下的接入段全帶寬動態(tài)分配和利用,并充分保證實時業(yè)務的QoS(Quality Of Service),。實用化綜合接入系統(tǒng)的ILP傳輸與分組化處理結構如圖1所示,。?
?
?
??? 圖1中遠端模塊的話音用戶接口完成對電路型載荷數據的分組化處理,封裝相應的系統(tǒng)內部標簽,形成標準話音數據輸出緩沖區(qū);數據用戶接口完成對IP數據的解析處理、內部標簽封裝,并形成IP數據輸出緩沖區(qū),。?
??? 局端模塊的電話網接口完成對電路型載荷ILP的標簽卸載處理,恢復相應的電路業(yè)務模式;數據網接口完成對數據型ILP的標簽卸載,恢復IP凈載荷數據,進入IP網,。?
??? 系統(tǒng)的ILP分組流處理單元是系統(tǒng)基于內部標簽分組(ILP)的輸入輸出核心處理單元,主要功能是完成系統(tǒng)內部傳輸帶寬的動態(tài)分配、ILP分組的I/O調度和系統(tǒng)網管(NMS)的通道管理等,。?
1 問題的提出?
??? 系統(tǒng)的ILP分組流處理單元與其它接口板數據交互的實現,在硬件上采用“通用”背板總線技術(這里的“通用”是指系統(tǒng)的遠端或局端除了ILP分組流處理單元以外的接口板的位置并不固定,是可以互換的),。并且,為滿足系統(tǒng)大吞吐量(2.5Gbps以上)的要求,系統(tǒng)采用并行總線方式降低數據處理速率(考慮總線過寬導致系統(tǒng)成本上升,本系統(tǒng)背板采用32位同步總線,雙向設計)。因此總線速率在40M可實現2.5Gbps吞吐能力,實際按60M總線速率設計,。ILP分組流處理單元與其它模塊間的接口及數據流向如圖2所示,其中:?
??? · S接口(無論在遠端還是局端)都是ILP分組流處理單元與高速光傳輸接口板的ILP數據傳輸接口,包括數據總線,、控制總線,、地址選擇總線、時鐘及緩沖區(qū)充盈狀態(tài)指示總線等,。?
??? · G接口在遠端是ILP分組流處理單元面向各用戶接入板的數據輸入輸出和總線控制接口,在局端是面向網絡側的數據輸入輸出和總線控制接口,。G接口通過背板總線與各用戶接入板、電路業(yè)務處理板或千兆以太網接口板相聯,。?
??? · H接口是標準HDLC鏈路傳輸口,在遠端用于實現模塊網管主機與用戶接入板,、電路業(yè)務處理板之間的信令及網管業(yè)務連接。在局端用于實現模塊網管主機與數據I/O調度和帶寬動態(tài)分配單元之間的信令及網管業(yè)務連接,。?
?
?
??? 由于ILP分組流處理單元對各業(yè)務接口板或傳輸板的訪問都是通過“通用”背板總線進行的,而且這種訪問是“一點對多點”,、“多級驅動隔離”、“高速電氣”交互式訪問,因而板間數據和控制總線時延τ的不一致性必定存在(如圖3所示),不可避免地會產生以下總線同步問題:?
??? (1)由于板間總線的布局和路徑不同,總線信號時延值τ存在離散性,因而“主從”結構背板總線數據傳輸的同步鎖存時鐘相位難以確定;?
??? (2)控制和使能信號與數據總線信號在背板上傳輸時延的不確定性,造成數據讀寫和邏輯控制等同步操作可靠性差;?
??? (3)板間進行連續(xù)的ILP包傳輸時,由于數據和控制總線時序邏輯的失步或偏差,當主板收到包結束標志時,下一操作指令或許已經有效(讀寫操作是連續(xù)進行的),對端下一包的頭數據也可能已進入總線,因而造成包同步傳輸的失敗(包首尾交迭或丟失);?
??? (4)這種不同的訪問時延在系統(tǒng)熱備份切換或熱插拔時表現出的不確定性更加嚴重,。?
?
?
2 多級復接時延的自適應匹配方法?
??? 為了解決背板總線多級復接自適應同步問題,筆者在ILP分組流處理單元設計中采用了基于ILP分組的時延自適應匹配技術(Self-adaptive Matching Technique),即ILP分組流處理單元在系統(tǒng)啟動時對各個業(yè)務接口板或傳輸板的總線數據到達時延進行感知測試,。通過一個所謂“學習——統(tǒng)計——設定”的單板總線時延訓練過程,確定“主從”結構的總線傳輸時延參數。該時延參數在系統(tǒng)運行過程中可通過底層驅動軟件或上層網管軟件進行修正,以保證系統(tǒng)總線同步的可靠性,。?
??? ILP分組流處理單元的總線同步時延τ的訓練測試包括系統(tǒng)自檢(所有板外FIFO正常工作與否的測試),、各個功能處理模塊的工作測試、時鐘校正,、發(fā)送與接收測試包等,主要過程如下:?
??? (1)自學習過程(Self-learning Process)?
??? 系統(tǒng)啟動時,ILP分組流處理單元接管全部對外數據和控制總線,調用按照系統(tǒng)內部標簽包格式定義的系統(tǒng)自測ILP數據包,分別向各個業(yè)務接口,、網絡接口或傳輸接口子板發(fā)送,隨時監(jiān)視各子板的確認狀態(tài)指示。若測試訓練達106數據包仍未得到子板正確確認,則認為與該子板的“主從”發(fā)送訓練工作失敗,產生告警指示,工作流程如圖4所示,。
?
?
??? 若ILP分組流處理單元得到子板確認信息,則進入從子板讀取數據的測試訓練流程,如圖5所示,。?
?
?
??? 圖5中ILP分組流處理單元連續(xù)從子板中讀取10個正確的ILP數據包,說明當前工作時鐘相位準確,記錄該時鐘相位Φ和總線時延τ,進入系統(tǒng)工作主程序。若讀到的ILP包不正確,則調整當前工作時鐘相位(可取ΔΦ=π/4或π/2);若連續(xù)106不正確,認為與該子板的“主從”讀取訓練失敗,產生告警指示,。?
??? 各子板的測試訓練工作流程如圖6所示,。首先各子板設定工作時鐘初相位,檢測主板向本板的“寫”使能信號(WR),若收到的測試包不正確,則調整本板當前工作時鐘相位(可取ΔΦ=π/4或π/2),繼續(xù)監(jiān)收測試包。若連續(xù)收到超過106個正常測試包,說明本板當前工作時鐘相位準確,記錄該時鐘相位Φ和總線時延τ,發(fā)出確認狀態(tài),。然后根據主板向本板的“讀”使能信號(RD)向總線寫入逆向測試包數據,。?
?
?
??? 當子板收到退出測試訓練指令時,進入本板工作主程序。?
??? (2) 統(tǒng)計分析過程(Statistic & Analytic Process)?
??? 對自學習過程的測試結果Φ(x)和時延τ(x)進行統(tǒng)計分析(自學習過程采用error and re-try的方法),總結出不同的業(yè)務接口板,、網絡接口板以及傳輸接口板的時延參數,確定各接口板相應的工作時鐘相位,形成統(tǒng)一的相位時延參數表項,。?
??? (3) 時延參數的設定?
??? 按照統(tǒng)計分析出的時延參數表項內容,通過底層驅動軟件注冊給ILP分組流處理單元的各處理模塊、各子板處理模塊,。各模塊的PFGA按此時延參數產生“讀/寫”或其它使能控制信號以及數據總線的同步鎖存時鐘相位,以保證ILP分組流處理單元與其它子板之間數據交互的同步和可靠,。?
??? 此外,上層網管軟件提供了專用的時延參數在線(in-process)修正接口,作為上層軟件對系統(tǒng)運行可靠性的實時管理與控制措施之一。?
3 ILP標簽包的同步處理?
??? 對于ILP標簽包的總線傳輸同步,常規(guī)做法是利用巴克碼(Bark Code)同步序列,即在每個ILP之間插入一定數量的Bark碼,但顯然降低了數據承載效率,。筆者在系統(tǒng)設計中充分利用了緩沖隊列寄存器(FIFO)的34位數據總線的特點,簡化了ILP包的首尾同步問題,。具體的方式如下:?
??? (1)系統(tǒng)背板或單板內傳輸的數據總線寬度為34位,其中32位作為有效ILP包數據總線,其余高兩位可作為ILP包首尾標識,如圖7所示。當最高兩位為“10”時,指示該字為ILP包的頭;當最高兩位為“01”時,指示該字為ILP包結束;當最高兩位為“00“時,指示該字為ILP包間字;當最高兩位為“11”時,指示總線傳輸故障,。?
?
?
??? (2)由前面的討論可知,由于數據和使能信號的背板總線傳輸時延存在不一致性,如果按常規(guī)的方法將一個ILP包的尾標志加注在數據流的末尾,有可能使板間包傳輸失步(ILP包首尾交迭或首尾丟失),即當ILP分組流處理單元讀到當前ILP包的尾標志時,下一包的包頭數據可能已由子板打入總線,而此時ILP分組流處理單元有可能已轉去訪問(輪循)其它子板,。結果使原訪問單元包頭丟失,現訪問單元包頭錯誤,人為地造成包傳輸錯誤的發(fā)生,。為此,本系統(tǒng)的ILP分組流處理單元采用了一種特殊的包尾指示方法,即包尾標識不直接放在ILP包的最后一個長字(32bit總線)上,而是把ILP包尾指示放在內部分組包的倒數第n個長字上:?
??? n=[r·τ/ι]+1?
??? 其中τ為時延參數,r為總線速率,ι為長字bit數,[·]表示取最大整數。當子板發(fā)送出包尾指示后再發(fā)n個長字到數據總線,而主板收到包尾指示時再讀n個長字結束該包,實現完整的包傳輸同步,。?
??? (3)為使“主從”結構總線傳輸雙方都有更充分的時間來檢測和處理內部標簽包的首尾標志位,保證ILP包總線傳輸不產生首尾混迭,本系統(tǒng)除了采用以上闡述的特殊包尾標識技術外,還在包與包之間添加一定數目的空閑字節(jié)(Idle Bytes),。空閑字節(jié)的添加數m是在系統(tǒng)啟動時進行自適應時延匹配訓練過程中確定的,并且在系統(tǒng)的運行中可通過網管接口指令實現對m值的修改,。?
??? 在高速背板總線連接系統(tǒng)中,由于模塊間的連接關系是“一點對多點”,、“多級驅動隔離”、“高速電氣”交互式的總線接口關系,板間總線時延存在離散性,因此bit位同步和包同步是I/O操作的關鍵問題,。對于bit位同步,本文討論了系統(tǒng)中采用的“多級復接時延自適應匹配技術”,即系統(tǒng)起始時按半時鐘周期為調節(jié)步長進行固定碼字的bit同步訓練,得到固定的時鐘相位延遲,設置FPGA硬件實現bit同步;對于包傳輸同步,筆者在系統(tǒng)設計中充分利用了緩沖隊列寄存器(FIFO)的34位數據總線的特點,簡化了ILP包的頭尾同步問題,即在背板或單板內傳輸的數據總線為34位,32位作為有效ILP包數據總線,其余高兩位作為頭尾標志,。同時為了避免“主從”總線交換時發(fā)生ILP包首尾交迭現象,本文提出了一種特殊的尾標志添加技術和Idle字節(jié)隔離技術。?
??? 通過1999~2000年度國家“863”計劃通信技術主題的重大課題“實用化綜合接入系統(tǒng)研究與開發(fā)”(863-317-01-01-01-99)的研發(fā)實踐,本文提到的多級復接自適應bit同步技術,、“一對多”總線交換包同步技術是十分有效,、可靠的。?
??? 但是,在ILP包之間引入空閑字節(jié)后,顯然對系統(tǒng)的傳輸效率是有影響的,例如:?
??? (1)對于話音業(yè)務,。由于話音業(yè)務采用的是11個長字為一個內部標簽包長度的,當ILP分組處理單元包加入太多的空閑字節(jié)(Idle Bytes)時,可能會抵銷系統(tǒng)對接入的話音業(yè)務的壓縮功效;?
??? (2)對于極短IP包,也會出現同樣的問題;?
??? (3)對于較長內部標簽包,這種技術顯然是非常有效的一種方法,。?
參考文獻?
1 T.V. Lakshman, D. Stiliadis. High Speed Policy-based?Packet Forwarding Using Efficient Multi-dimensional Range?Matching in Proc. ACM SIGCOMM'98,1998;(9)?
2 N. McKeown, M. Izzard, A. Mekkittikul. The Tiny Tera:A Packet Switch Core IEEE Micro.1998;(1-2): 26~33?
3 Pankaj Gupta, Steven Lin. Nick MacKeown Routing?Lookups in Hardware at Memory Access Speeds in Proc.Infocom'98, 1998?
4 S. Nilsson, G. Karlsson.? Fast Address Look-Up for Internet Routers in Proc.IEEE Broadband Communication'98,1998;(4)?
5 韓國棟,鄔江興.寬帶綜合接入中的關鍵技術——IP技術.電信科學,2001;(2)