袁夢瑤,喬廬峰,陳慶華,王雷淘
(陸軍工程大學,江蘇 南京 210001)
傳統(tǒng)以太網(wǎng)遵循“盡力而為”的數(shù)據(jù)傳輸方式,并不為網(wǎng)絡中的數(shù)據(jù)提供網(wǎng)絡帶寬、傳輸時延、時延抖動等保證。像音頻、視頻業(yè)務,如果不能滿足其對傳輸時延和時延抖動的要求,很可能造成音視頻的失真。另外,在工業(yè)和汽車控制領域中,用于控制工廠生產(chǎn)和駕駛操作的業(yè)務,其傳輸延遲不確定會導致系統(tǒng)不穩(wěn)定、控制操作不準確。盡管已經(jīng)有PROFINET、EtherCAT、CAN 這類網(wǎng)絡技術來解決以上問題,但這些網(wǎng)絡體系架構封閉,通用性差。基于以上原因,IEEE 802.1 工作組的TSN 任務組制訂了時間敏感網(wǎng)絡(Time-Sensitive Networking,TSN)標準[1],其高精度時間同步、資源預留及路徑控制、流量整形和業(yè)務調(diào)度等一系列關鍵技術,能夠保證數(shù)據(jù)傳輸?shù)膶崟r性和可靠性[2]。
TSN 具有時間同步、流量調(diào)度和網(wǎng)絡配置3 大關鍵技術[3]。其中,時間同步是整個TSN 技術實現(xiàn)的前提,流量調(diào)度是TSN 技術實現(xiàn)的關鍵,網(wǎng)絡配置是TSN 技術實現(xiàn)的保障。TSN 網(wǎng)絡配置模式如圖1 所示。集中網(wǎng)絡配置控制器(Centralized Network Configuration Controller,CNC)通過集中用戶配置控制器(Centralized User Configuration Controller,CUC)得知發(fā)送端和接收端對網(wǎng)絡帶寬和端到端傳輸時延的需求信息,然后根據(jù)需求信息進行運算,并將得到的網(wǎng)絡配置參數(shù)下發(fā)給網(wǎng)絡中相關的各網(wǎng)橋[4],由網(wǎng)橋根據(jù)配置進行數(shù)據(jù)轉(zhuǎn)發(fā)。
圖1 TSN 網(wǎng)絡配置模式
為了保證網(wǎng)絡服務質(zhì)量(Quality of Service,QoS),TSN 將網(wǎng)絡中的業(yè)務流進行區(qū)分,并根據(jù)傳輸特性將業(yè)務流劃分為8 類。每類賦給相應的優(yōu)先級值,優(yōu)先級取值范圍為0~7。如圖2 所示,從數(shù)據(jù)幀頭優(yōu)先級字段可以獲取數(shù)據(jù)幀的優(yōu)先級信息。
圖2 TSN 網(wǎng)絡中數(shù)據(jù)幀格式
本文設計的TSN 交換機硬件結構,如圖3 所示。該系統(tǒng)由數(shù)據(jù)接收MAC 控制器、發(fā)送MAC 控制器、數(shù)據(jù)處理單元、幀分類和雙桶哈希查找單元、Crossbar 交換單元、8 優(yōu)先級共享緩存隊列管理器、調(diào)度器、處理單元以及時間同步與管理單元組成。
圖3 TSN 交換機硬件結構
接收MAC 控制器接收上一網(wǎng)絡節(jié)點傳輸過來的數(shù)據(jù),并將接收的數(shù)據(jù)傳遞給后級數(shù)據(jù)處理單元。數(shù)據(jù)處理單元將數(shù)據(jù)幀頭中的關鍵信息,如源MAC 地址、目的MAC 地址、VLAN ID 等抽取出來,并通過幀分類電路進行分類識別,確定轉(zhuǎn)發(fā)關系。與時間同步相關的協(xié)議幀,經(jīng)過Crossbar 被交換到處理單元或時間同步與管理單元;用戶數(shù)據(jù)幀通過雙桶哈希查找單元,進行源MAC 地址學習和目的MAC 地址查找,并根據(jù)哈希查找電路返回的輸出端口映射位圖及數(shù)據(jù)幀長度、轉(zhuǎn)發(fā)優(yōu)先級信息等形成該數(shù)據(jù)幀的本地頭,后由Crossbar 交換單元轉(zhuǎn)發(fā)至相應的端口[5]。
在端口處,8 優(yōu)先級共享緩存隊列管理器將數(shù)據(jù)幀存入共享緩存區(qū),并根據(jù)本地頭中的優(yōu)先級信息將數(shù)據(jù)存儲地址壓入對應的優(yōu)先級隊列,而后調(diào)度器根據(jù)流量調(diào)度算法選擇優(yōu)先級隊列,從隊列中取出數(shù)據(jù)存儲地址。數(shù)據(jù)存儲地址指向的數(shù)據(jù)則由該端口輸出。
TSN 中流量調(diào)度算法包括嚴格優(yōu)先級(Strict Priority,SP)算法、基于信用的整形器(Credit-Based Shaper,CBS)算法、時間感知整形器(Time-Aware Shaper,TAS)算法,又稱門控調(diào)度算法、循環(huán)隊列轉(zhuǎn)發(fā)(Cyclic Queuing and Forwarding,CQF)算法以及幀搶占(Freemption)等[6]。SP 算法是最常用的一種流量調(diào)度算法,依據(jù)隊列的優(yōu)先級信息進行傳輸選擇。CBS 算法是一種基于信用的調(diào)度算法,可以提前為業(yè)務流預留帶寬,提供端到端資源管理,保證時間敏感業(yè)務流的確定性傳輸。TAS 算法將不同類型的業(yè)務流在時間上隔離,于特定的時間段發(fā)送特定類型的數(shù)據(jù),實現(xiàn)業(yè)務流的傳輸時延可控。CQF 算法是對TAS 算法的一個改進,在TAS 算法的基礎上增加流量入隊控制,使流量按照時間計劃入隊,控制數(shù)據(jù)進出隊列交錯進行,確保交換機在上一時隙收到的數(shù)據(jù)幀下一時隙轉(zhuǎn)發(fā)出去,使時間敏感業(yè)務流的傳輸時延易于計算。幀搶占調(diào)度算法中,搶占幀可打斷當前正在傳輸?shù)钠胀〝?shù)據(jù)幀,并對其進行切片,等待搶占幀傳輸完畢,再繼續(xù)傳輸被打斷的普通數(shù)據(jù)幀。此算法可與TAS算法結合使用,減少保護帶帶寬。
調(diào)度器是TSN 交換機的核心單元。如果調(diào)度器電路僅涉及嚴格優(yōu)先級一種調(diào)度算法,交換機就無法滿足時間敏感業(yè)務流對傳輸時延可控的要求。本文設計的調(diào)度器電路使用SP、CBS、TAS 這3 種調(diào)度算法,并可以根據(jù)配置靈活使用。具體調(diào)度器電路,如圖4 所示。圖4 中端口支持8 個優(yōu)先級隊列,隊列數(shù)值越高,優(yōu)先級越高。所有隊列都支持SP 算法和TAS算法,隊列7和隊列6還支持CBS調(diào)度算法。隊列后的緩沖fifo 用來暫存隊列數(shù)據(jù),目的是使電路簡便快速地獲取隊列數(shù)據(jù)進行流量調(diào)度。
圖4 TSN 交換機調(diào)度器設計
嚴格優(yōu)先級算法的工作原理是選擇傳輸優(yōu)先級最高的隊列。如圖5 所示,電路從優(yōu)先級最高的隊列7 開始訪問,如果隊列非空,則選擇該隊列中的數(shù)據(jù)進行傳輸,否則訪問優(yōu)先級次之的隊列6。若隊列6 非空,選擇該隊列數(shù)據(jù)進行傳輸,否則依優(yōu)先級從高到低的順序訪問。
圖5 SP 算法工作原理
支持CBS 算法的隊列有一個信用值Credit。當Credit ≥0 且隊列非空時,隊列滿足傳輸條件。但是,因為在本文設計的調(diào)度器中,CBS 算法是與TAS 算法、SP 算法一起工作的,所以判斷隊列是否符合傳輸條件的因素,不僅有隊列信用值,還有隊列門狀態(tài)和支持CBS 算法的其他隊列的傳輸狀態(tài)兩個因素。因此,CBS 算法電路中設計門狀態(tài)監(jiān)視器電路模塊,用來監(jiān)測隊列門狀態(tài)。當隊列門關閉時,隊列停止傳輸,信用值保持不變。設計仲裁器電路模塊,從多個支持CBS 調(diào)度算法并符合傳輸條件的隊列中選擇其中一個隊列進行傳輸。此外,設計隊列信用更新電路模塊,進行隊列信用更新。支持CBS 算法隊列的信用更新機制如圖6所示。
圖6 CBS 算法隊列信用更新機制
假如隊列正在傳輸,則隊列Credit 以sendSlope速率降低,直至信用下限lowCredit,停止傳輸;若隊列非空并處于等待傳輸狀態(tài),則隊列Credit 則以idleSlope 速率增加,直至上限保持不變。sendSlope和idleSlope 兩個參數(shù)是由處理器配置給支持CBS算法隊列的。
TAS 算法對流量的調(diào)度主要依靠時間同步機制和門控調(diào)度機制。在TNS 中各交換機在時間同步的基礎上,交換機端口執(zhí)行處理器單元配置的門控列表,按照時間計劃表控制數(shù)據(jù)輸出隊列,將調(diào)度流量在特定的時間段傳輸,防止其他流量對調(diào)度的流量造成干擾,最終實現(xiàn)調(diào)度流量的確定性傳輸和時延可控。TAS 算法具體電路結構如圖7 所示,共分為3 個模塊,即列表配置狀態(tài)機、循環(huán)定時狀態(tài)機和列表執(zhí)行狀態(tài)機。狀態(tài)機與狀態(tài)機之間相互協(xié)助實現(xiàn)門控調(diào)度功能,具體工作流程如圖8 所示。列表配置狀態(tài)機接收到來自處理器單元對列表配置更新的信號后,對門控列表和與列表配置相關的參數(shù)進行更新,如門控列表長度、循環(huán)周期等。當對門控列表重新配置后,則給循環(huán)定時狀態(tài)機一個配置成功等待執(zhí)行的信號。循環(huán)定時狀態(tài)機收到信號后,根據(jù)列表循環(huán)周期、執(zhí)行時間等信息,判斷列表是否開始執(zhí)行。若開始執(zhí)行,則向列表執(zhí)行狀態(tài)機發(fā)送一個列表執(zhí)行信號。列表執(zhí)行狀態(tài)機在接收到列表執(zhí)行信號后,從列表配置狀態(tài)機處獲取門控列表,并依次執(zhí)行各表項,更改對應的隊列門的開關狀態(tài)。
圖7 TAS 算法電路模塊
圖8 TAS 算法工作流程
本文以Xilinx Virtex-6 開發(fā)板為硬件平臺搭建TSN 交換機電路,其關鍵調(diào)度算法的仿真波形如圖9和圖10 所示。圖9 和圖10 展示的是CBS 算法電路的仿真結果圖,Credit_A 和Credit_B 信號分別表示隊列7 和隊列6 的信用值。如圖4 所示TSN 調(diào)度器設計,隊列7 和隊列6 都是支持CBS 算法的隊列,且隊列7 比隊列6 優(yōu)先級高。圖9 中1 處顯示系統(tǒng)初始化后,隊列A 和隊列B 都處于非傳輸狀態(tài),信用值都為0;圖9 中2 處顯示A 隊列tansmitting 信號拉高,信用值增加,驗證了在A、B 兩隊列非空且門被打開的情況下,CBS 算法電路可通過仲裁器將傳輸?shù)膬?yōu)先權賦給優(yōu)先級較高的A 隊列;圖9 中3 處顯示A 隊列信用保持不變,transmitting 信號拉低,驗證了CBS 算法電路的門狀態(tài)監(jiān)視器模塊檢測到A 隊列門狀態(tài)變?yōu)殛P閉,并停止該隊列的數(shù)據(jù)傳輸和信用更新。圖10 中4 處顯示即使A 隊列門打開,其優(yōu)先級比B 隊列高,但B 隊列正在傳輸,A 隊列不能打斷B 隊列的傳輸,只能等待;圖10 中5 處顯示A、B 兩隊列都變空,不滿足隊列傳輸條件,調(diào)度器停止兩個隊列的數(shù)據(jù)傳輸。
圖9 CBS 算法仿真結果1
圖10 CBS 算法仿真結果2
本文給出了一種TSN 交換機系統(tǒng)設計方案,由數(shù)據(jù)收發(fā)單元、數(shù)據(jù)處理單元、交換單元、隊列管理器和調(diào)度器組成。為了滿足混合業(yè)務流的轉(zhuǎn)發(fā)需求,設計的TSN 交換機調(diào)度器支持SP、CBS、TAS這3 種調(diào)度算法。CBS 算法可預留帶寬,保證時間敏感業(yè)務流的確定性傳輸。TAS 算法可保證時間敏感業(yè)務流傳輸時延可控。3 種調(diào)度器可根據(jù)配置,靈活使用。TSN 交換機關鍵電路在Xilinx Virtex-6開發(fā)板上進行了設計與仿真分析,結果表明,調(diào)度器可以滿足時間敏感業(yè)務流確定性傳輸?shù)男枨蟆?/p>