0731-84728105
15116127200
基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實現
發布時間:2019-1-19
     CQF是目前TSN标準定義的可實現确定性交換延時的轉發模型,其交換流程可以方便的映射到FAST平台的FPGA流水線上。FAST流水線的用戶定義輸出(UDO)模塊可實現用戶定義的分(fēn)組輸出控制,支持TSN CQF轉發模型的UDO稱爲CQF-UDO。
本文介紹的CQF-UDO模塊主要用于CQF功能的驗證。面向具體(tǐ)應用的CQF實現需要對輸出隊列數目,輸出緩沖區大(dà)小(xiǎo)等參數進行優化。
一(yī)、CQF-UDO實現結構
      在FAST架構下(xià),除了流分(fēn)類,單流流量監測和基于PTP協議的全網時間同步功能由FAST基本流水線和擴展的PTP-UDA模塊實現外(wài),基于CQF的流量整型功能由CQF-UDO模塊實現。基于FAST定義的标準UDO接口信号和數據交換時序,CQF-UDO可方便地與FAST基本流水線對接。
   (1)模塊組成
      FPGA實現的CQF-UDO模塊的結構如下(xià)圖所示。其中(zhōng)Cin和Cout接口爲模塊的訪問控制接口,軟件可通過該接口對模塊内部的寄存器、計數器和控制表格進行訪問。模塊通過PKT接口接收和發送分(fēn)組,Sync_time信号用于從PTP-UDA模塊接收全網同步時鍾,對時間門控邏輯進行控制。
     爲簡化設計,CQF-UDO維護4個隊列,其中(zhōng)最高優先級的Q7和Q6以乒乓隊列的形式保存時間敏感分(fēn)組,Q4保存帶寬預約流的分(fēn)組,Q0保存Besteffort分(fēn)組。當需要對時間敏感分(fēn)組劃分(fēn)不同優先級時,則需要不同的乒乓隊列保存不同優先級的時間敏感分(fēn)組。

圖1 CQF-UDO實現結構
     爲了提高存儲效率,CFQ-UDO模塊将所有緩存的分(fēn)組緩存在共享的RAM緩沖區PB中(zhōng)緩存,每個輸出調度隊列Q0/Q4/Q6/Q7隻保存分(fēn)組的地址。IC從FBD獲取當前空閑緩沖區的狀态STA,對不同輸出隊列采用不同的緩沖區管理算法,決定到達的分(fēn)組是丢棄還是送PB緩存。
CQF-UDO包含的主要模塊和功能如下(xià)表所示。
   (2)關鍵數據結構
     PKT:IC/OC與PB之間傳輸,以及PB保存的PKT爲FAST分(fēn)組結構,即FAST定義的32字節元數據(metadata)加上不含校驗字段的以太網分(fēn)組。UDO保存FAST元數據的原因是其中(zhōng)攜帶了分(fēn)組接收時間戳,可用于後續透明時鍾的修訂。
     BD:爲PB中(zhōng)512字節緩沖區的地址,初始化時硬件将所有的空閑BD寫入空閑緩沖區隊列(FBQ),IC在接收到分(fēn)組需要将分(fēn)組寫入PB時,首先從FBQ讀取空閑BD,OC在從PB讀取分(fēn)組發送結束後,将BD釋放(fàng)寫回FBQ;
     PD:分(fēn)組描述符,包含從分(fēn)組元數據中(zhōng)提取出來的14位的flowID,3位的優先級Pri,以及最多3個BD信息等。其中(zhōng)Pri是分(fēn)組攜帶的優先級,flowID由FAST流水線的GME模塊生(shēng)成,BD由輸入控制模塊IC獲得。
二、CQF-UDO的配置管理
     根據CQF-UDO的實現模型,共有9個訪問點需要軟件進行管理配置。這些訪問點共同組成了CQF-UDO數據轉發的抽象。用戶可以根據不同的軟件配置實現輸出接口的資(zī)源預約配置,流量測量和整型,以及轉發狀态檢測等功能。各訪問點的詳細信息如下(xià)表所示。
      根據FAST規範,上述信息需要映射到一(yī)個32位的虛拟地址空間中(zhōng)。CPU上驅動通過訪問這些虛拟地址對這些信息進行管理。
三、CQF-UDO對标準CQF整型處理的簡化
     CQF-UDO模塊實現的CQF功能隻是标準CQF的一(yī)個子集或是簡化的實驗版本,主要簡化包括:
     1.簡化的入隊流控機制,使用簡單的令牌桶(B,r,L三個參數)實現代替802.1Q-2014規範定義的基于信用的整形器(10個參數)的功能;
     2.使用4個輸出隊列代替标準的8個輸出隊列,因此隻支持一(yī)個優先級的時間敏感流量,一(yī)個優先級的預約帶寬流量以及一(yī)個優先級的BE流量。
     盡管存在上述簡化,CQF-UDO仍可以對TSN網絡中(zhōng)CQF整型機制進行驗證,實現确定性的傳輸延時保證。關于分(fēn)組緩沖區PB的大(dà)小(xiǎo)評估額設置,隊列長度設置以及緩沖區管理算法将在後續文章中(zhōng)給出。