基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實現(xiàn)
發布時(shí)間:2019-1-19
CQF是目前TSN标準定義的可實現(xiàn)确定性交換延時(shí)的轉發模型,其交換流程可以方便的映射到(dào)FAST平台的FPGA流水(shuǐ)線上(shàng)。FAST流水(shuǐ)線的用(yòng)戶定義輸出(UDO)模塊可實現(xiàn)用(yòng)戶定義的分組輸出控制,支持TSN CQF轉發模型的UDO稱爲CQF-UDO。
本文(wén)介紹的CQF-UDO模塊主要用(yòng)于CQF功能(néng)的驗證。面向具體應用(yòng)的CQF實現(xiàn)需要對(duì)輸出隊列數目,輸出緩沖區(qū)大(dà)小(xiǎo)等參數進行優化。
一、CQF-UDO實現(xiàn)結構
在FAST架構下(xià),除了(le)流分類,單流流量監測和(hé)基于PTP協議(yì)的全網時(shí)間同步功能(néng)由FAST基本流水(shuǐ)線和(hé)擴展的PTP-UDA模塊實現(xiàn)外(wài),基于CQF的流量整型功能(néng)由CQF-UDO模塊實現(xiàn)。基于FAST定義的标準UDO接口信号和(hé)數據交換時(shí)序,CQF-UDO可方便地與FAST基本流水(shuǐ)線對(duì)接。
(1)模塊組成
FPGA實現(xiàn)的CQF-UDO模塊的結構如下(xià)圖所示。其中Cin和(hé)Cout接口爲模塊的訪問控制接口,軟件可通過該接口對(duì)模塊内部的寄存器、計(jì)數器和(hé)控制表格進行訪問。模塊通過PKT接口接收和(hé)發送分組,Sync_time信号用(yòng)于從(cóng)PTP-UDA模塊接收全網同步時(shí)鐘(zhōng),對(duì)時(shí)間門(mén)控邏輯進行控制。
爲簡化設計(jì),CQF-UDO維護4個隊列,其中最高(gāo)優先級的Q7和(hé)Q6以乒乓隊列的形式保存時(shí)間敏感分組,Q4保存帶寬預約流的分組,Q0保存Besteffort分組。當需要對(duì)時(shí)間敏感分組劃分不同優先級時(shí),則需要不同的乒乓隊列保存不同優先級的時(shí)間敏感分組。
圖1 CQF-UDO實現(xiàn)結構
爲了(le)提高(gāo)存儲效率,CFQ-UDO模塊将所有緩存的分組緩存在共享的RAM緩沖區(qū)PB中緩存,每個輸出調度隊列Q0/Q4/Q6/Q7隻保存分組的地址。IC從(cóng)FBD獲取當前空(kōng)閑緩沖區(qū)的狀态STA,對(duì)不同輸出隊列采用(yòng)不同的緩沖區(qū)管理(lǐ)算(suàn)法,決定到(dào)達的分組是丢棄還是送PB緩存。
CQF-UDO包含的主要模塊和(hé)功能(néng)如下(xià)表所示。
(2)關鍵數據結構
PKT:IC/OC與PB之間傳輸,以及PB保存的PKT爲FAST分組結構,即FAST定義的32字節元數據(metadata)加上(shàng)不含校驗字段的以太網分組。UDO保存FAST元數據的原因是其中攜帶了(le)分組接收時(shí)間戳,可用(yòng)于後續透明(míng)時(shí)鐘(zhōng)的修訂。
BD:爲PB中512字節緩沖區(qū)的地址,初始化時(shí)硬件将所有的空(kōng)閑BD寫入空(kōng)閑緩沖區(qū)隊列(FBQ),IC在接收到(dào)分組需要将分組寫入PB時(shí),首先從(cóng)FBQ讀取空(kōng)閑BD,OC在從(cóng)PB讀取分組發送結束後,将BD釋放(fàng)寫回FBQ;
PD:分組描述符,包含從(cóng)分組元數據中提取出來(lái)的14位的flowID,3位的優先級Pri,以及最多3個BD信息等。其中Pri是分組攜帶的優先級,flowID由FAST流水(shuǐ)線的GME模塊生成,BD由輸入控制模塊IC獲得。
二、CQF-UDO的配置管理(lǐ)
根據CQF-UDO的實現(xiàn)模型,共有9個訪問點需要軟件進行管理(lǐ)配置。這(zhè)些(xiē)訪問點共同組成了(le)CQF-UDO數據轉發的抽象。用(yòng)戶可以根據不同的軟件配置實現(xiàn)輸出接口的資源預約配置,流量測量和(hé)整型,以及轉發狀态檢測等功能(néng)。各訪問點的詳細信息如下(xià)表所示。
根據FAST規範,上(shàng)述信息需要映射到(dào)一個32位的虛拟地址空(kōng)間中。CPU上(shàng)驅動通過訪問這(zhè)些(xiē)虛拟地址對(duì)這(zhè)些(xiē)信息進行管理(lǐ)。
三、CQF-UDO對(duì)标準CQF整型處理(lǐ)的簡化
CQF-UDO模塊實現(xiàn)的CQF功能(néng)隻是标準CQF的一個子集或是簡化的實驗版本,主要簡化包括:
1.簡化的入隊流控機制,使用(yòng)簡單的令牌桶(B,r,L三個參數)實現(xiàn)代替802.1Q-2014規範定義的基于信用(yòng)的整形器(10個參數)的功能(néng);
2.使用(yòng)4個輸出隊列代替标準的8個輸出隊列,因此隻支持一個優先級的時(shí)間敏感流量,一個優先級的預約帶寬流量以及一個優先級的BE流量。
盡管存在上(shàng)述簡化,CQF-UDO仍可以對(duì)TSN網絡中CQF整型機制進行驗證,實現(xiàn)确定性的傳輸延時(shí)保證。關于分組緩沖區(qū)PB的大(dà)小(xiǎo)評估額設置,隊列長度設置以及緩沖區(qū)管理(lǐ)算(suàn)法将在後續文(wén)章中給出。