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

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