董春雷,何斌斌,陳艇
(1.中國人民解放軍戰略支援部隊信息工程大學,河南鄭州,450002;2.31121部隊,江蘇徐州,221000)
FC(Fiber Channel)為美國標準化委員會(ANSI)在1988 年提出的高速串行傳輸總線,具備高帶寬,高可靠性,高穩定性的特點,主要應用在航空電子,音視頻處理,大數據傳輸等諸多領域。FC 交換芯片是符合FC(Fiber Channel)通信協議,具備多端口,低延時,高可靠性的交換芯片[1~2]。隨著信息技術的不斷發展,交換芯片的應用環境日益復雜,在航空電子環境等應用中,FC 網絡可能存在多個交換設備級聯實現多個端點設備互連,為了滿足實時性和可靠性的要求,系統會根據CPU 處理延遲對網絡中的每個設備分配具體的工作時隙,因此FC 網絡要求所有設備在工作之前進行時間同步,然后網絡中每個設備在固定的時間(時隙)內完成相應的任務(數據傳輸和處理),從而避免多臺設備同時傳輸數據導致FC網絡的傳輸擁塞和處理時延不確定性[3~7]。如果時間同步精度不高,將導致時隙之間的保護間隔過大,壓縮數據傳輸和處理的時間,因此FC 交換芯片需要具備高精確度的時間同步功能,實現全網絡設備的時間同步。
FC-FS 協議中定義了兩種時間同步方式,分別是基于擴展鏈路服務(ELS,Extended Link Service)時間同步和基于原始信號(PS,Primitive Signal)時間同步,在時間同步的FC 網絡中,一般具有一個時間同步服務器(Server),網絡中的其他端點或者交換設備稱為時間同步客戶端(Client),它們內部都集成了實時時間(real time clock,RTC)計數器[8]。時間同步服務器負責向網絡的其他客戶端發送帶有本地RTC 值的ELS 幀或者原始信號,客戶端接收到時間同步幀或者原始信號后,解析出其中的RTC,然后更新各客戶端本地的RTC,實現與服務器的時間同步。
根據Fibre Channel Framing and Signaling-4 (FC-FS-4)協議規定,ELS 時間同步是客戶端(Client)先向時間同步服務端(Master)發送時間同步請求幀(CSR),服務器端同意之后,會向對應的客戶端發送時間同步更新幀(CSU),如圖1 所示,CSU 幀中帶有時間同步服務器生成CSU 幀時的時間戳,客戶端收到CSU 幀之后解析出其中的時間戳,然后更新本地的RTC,實現客戶端與服務器的時間同步。服務端一般會向每一個請求的客戶端定時發送CSU 幀,防止本地RTC 因為晶振誤差導致本地時間計數器誤差隨時間而增大。PS 時間同步通過服務端定時發送連續的SYNx、SYNy、SYNz 原語信號來實現時間同步,SYNx、SYNy、SYNz 原語信號攜帶有時間信息,如圖2 所示,每個原語信號32bit,相比于ELS 時間同步,PS 時間同步占用鏈路帶寬較小,客戶端接收并解析出SYNx、SYNy、SYNz 原語信號中攜帶的時間值,然后更新本地時間計數器,實現時間同步。

圖1 FC 網絡中時間同步

圖2 時間同步原語傳輸方式
在FC 網絡中,無論是ELS 時間同步還是PS 時間同步,FC 交換芯片需要轉發ELS 時間同步幀或者PS 時間同步原語信號,實現服務端和客戶端的時間同步[9],同時FC 交換芯片也可以作為FC 網絡中的時間同步服務器,向各個設備或者端口發送時間同步幀或者原語。由于FC 交換芯片具有不可預知的轉發延遲,因此轉發ELS 時間同步幀或者PS 時間同步原語信號會引入新的誤差,特別是經過多級FC 交換芯片,這個誤差將變得更大并難以確定,因此FC 交換芯片需要對轉發的ELS 時間同步或者時間同步原語進行時間補償,彌補經過FC 交換芯片帶來的時間延遲。
FC 協議定義了時間同步的方法和原理,并提供了一種簡單補償交換芯片內補充交換調度延遲的方法,而沒有考慮交換芯片接收端口、發送端口,以及光纖傳輸的延遲補償,時間同步精度較低。FC 網絡ELS 時間同步模型,模型中有一個時間同步服務器,一個時間同步服務端,一個時間同步客戶端。FC 客戶端先向FC 時間同步服務器發送時間同步請求幀(CSR),CSR 經過交換轉發至時間同步服務器,時間同步服務器收到CSR 幀之后,會定時向時間同步客戶端發送時間同步更新幀(CSU),同樣CSU 需要通過FC 交換芯片轉發至客戶端,客戶端收到CSU 幀之后,解析出其中的時間信息,然后更新本地實時時鐘,達到與時間同步服務器時間同步。
經過分析,FC 時間同步ELS 或者PS 在FC 交換中具有不確定的傳輸延遲,如圖3 所示,FC 交換網絡的延遲主要有接收光纖傳輸延遲rf、FC 協議鏈路接收通路處理延遲rp、FC 接收幀緩沖延遲、FC 交換轉發延遲、FC 發送幀緩沖延遲、FC 協議鏈路發送通路延遲sp 以及發送光纖延遲tf,其中rf 和tf 可以根據實際的應用場景,通過測量實際光纖的長度計算得到,rp 和sp 跟FC 交換端口的具體設計有關,這兩部分的延遲可通過實際的情況加以補償。對于ELS 時間同步幀,FC 接收幀緩沖、FC 交換以及FC 發送幀緩存的延遲可能根據交換實際擁塞情況的不同而不同;對于PS 時間同步,時間同步PS 不經過FC 交換進行轉發,但是FC 發送通路需要在沒有發送報文的情況下傳輸時間同步PS,這部分延遲也是不可預知的[10]。因此需要統計接收端解析出FC 時間同步ELS 或者PS 時刻與發送端發送ELS 或者PS 時刻之間的延遲,然后進行補償。
根據以上的分析,本設計在接收通路和接收緩沖之間、發送緩沖和發送通路之間分別增加了時間同步解析模塊和重組模塊用于實現時間補償。如圖3 所示,時間同步電路位于FC 交換芯片的FC 端口模塊上,FC 端口模塊包括:FC協議鏈路接收通路、FC 協議鏈路發送通路、FC 端口狀態機、FC 接收幀緩存、FC 發送幀緩存,基于FC 交換芯片的時間同步延遲補償電路包括:ELS 時間同步幀和原語解析模塊、ELS 時間同步幀和原語重組模塊、接收通路延遲補償寄存器rx_delay 及發送通路延遲補償寄存器tx_delay。其中,ELS 時間同步幀和原語解析模塊用于對接收的ELS 時間同步幀和時間同步原語進行解析;ELS 時間同步幀和原語重組模塊用于對接收的ELS 時間同步幀和時間同步原語進行重組;接收通路延遲補償寄存器rx_delay 用于對FC 協議鏈路接收通路的延遲進行補償;發送通路延遲補償寄存器tx_delay 用于對FC 協議鏈路發送通路的延遲進行補償。rx_delay 的值為rp+tf,tx_delay 的值為sp+rf。
在進行時間同步之前,使用ELS 時間同步幀或者時間同步原語進行時間同步操作,得到對應的FC 協議鏈路接收通路處理延遲rp 和FC 協議鏈路發送通路處理延遲sp 值。測量接收和發送光纖的長度,將所述接收和發送光纖的長度分別除以光速,得到接收光纖傳輸延遲rf 和發送光纖傳輸延遲tf 值。配置rx_delay 的值為rp+tf,配置tx_delay 的值為sp+rf。
整個補充原理可概括為:時間同步解析模塊完成時間同步ELS 和PS 的解析,解析出時間同步信號中的時間信息,然后加上接收光纖傳輸延遲rf和FC 協議鏈路接收通路處理延遲rp,補償之后的時間值與當時時間同步服務器的時間相近,然后更新本地的RTC,此時本地RTC 將基于更新之后的值進行計時。在發送端,發送時間同步PS 或者ELS 幀時,先從本地RTC中讀取時間值,然后加上FC 協議鏈路發送通路延遲sp 和發送光纖延遲tf,使用補償之后的時間值更換即將發送的時間同步PS 或者ELS 幀中的時間值,重新組裝新的時間同步原語或者幀發送出去,實現時間同步原語或者幀在FC 交換的透明傳輸。
根據時間同步服務的場景,我們利用JDSU FC 測試儀與FC 交換芯片NFS6400 形成server 端點和client 端點對接網絡,并采用以xilinx vu440 系列FPGA 芯片為基礎的原型驗證平臺,通過光纖連接,組成了與實際情況相吻合的驗證環境,如圖4 所示。

圖4 交換為Client 模式
(1)FC 交換為Client 模式
FC 交換Client 模式主要實現時間同步信號的轉發,設置FC 測試儀其中一個端口為Master 模式,另一個端口為Client 模式,兩個端口分別與交換相連,如圖4 所示,Master 端口通過交換向Client 發送時間同步信號,通過交換轉發實現Master 與Client 的同步,如圖5 所示,Client實現了與Master 的同步。

圖5 FC 交換為Client 模式時間同步測試
(2)FC 交換為Master 模式
FC 交換在master 模式下,主動向其他Client 端口發送時間同步信號,實現網絡的同步,如圖6 所示,從圖中可以看出,兩個Client 接收的時間誤差在100ns 以內。

圖6 FC 交換為Master 模式時間同步測試
針對現有FC 協議沒有考慮交換芯片的接收端口、發送端口、交換轉發以及光纖傳輸的延遲補償,時間同步精度較低的問題,本文基于FC 協議時間同步原理對FC 交換延遲進行了分析,提出了一種時間同步實現方式,驗證結果表明該時間同步方式時間同步精度高,時間誤差可以控制在100ns 以內。本文的FC 時間同步電路適用于FC 協議中的時間同步原語與ELS 時間同步幀,同樣適用于傳統的時間同步服務器或者客戶端,硬件電路實現簡易,精度高,進一步提高了FC 網絡的時間同步精度,可有效提高FC 網絡的效率。后續還將在同步精度方面繼續進行探索與優化,以適應FC 網絡更大規模的應用。