天天看點

基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實作 基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實作

基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實作

    CQF是目前TSN标準定義的可實作确定性交換延時的轉發模型,其交換流程可以友善的映射到FAST平台的FPGA流水線上。FAST流水線的使用者定義輸出(UDO)子產品可實作使用者定義的分組輸出控制,支援TSN CQF轉發模型的UDO稱為CQF-UDO。

    本文介紹的CQF-UDO子產品主要用于CQF功能的驗證。面向具體應用的CQF實作需要對輸出隊列數目,輸出緩沖區大小等參數進行優化。

一、CQF-UDO實作結構

    在FAST架構下,除了流分類,單流流量監測和基于PTP協定的全網時間同步功能由FAST基本流水線和擴充的PTP-UDA子產品實作外,基于CQF的流量整型功能由CQF-UDO子產品實作。基于FAST定義的标準UDO接口信号和資料交換時序,CQF-UDO可友善地與FAST基本流水線對接。

(1)子產品組成

    FPGA實作的CQF-UDO子產品的結構如下圖所示。其中Cin和Cout接口為子產品的通路控制接口,軟體可通過該接口對子產品内部的寄存器、計數器和控制表格進行通路。子產品通過PKT接口接收和發送分組,Sync_time信号用于從PTP-UDA子產品接收全網同步時鐘,對時間門控邏輯進行控制。

    為簡化設計,CQF-UDO維護4個隊列,其中最高優先級的Q7和Q6以乒乓隊列的形式儲存時間敏感分組,Q4儲存帶寬預約流的分組,Q0儲存Besteffort分組。當需要對時間敏感分組劃分不同優先級時,則需要不同的乒乓隊列儲存不同優先級的時間敏感分組。

基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實作 基于FAST的TSN交換(4)基于FPGA的TSN網絡CQF實作

CQF-UDO實作結構

    為了提高存儲效率,CFQ-UDO子產品将所有緩存的分組緩存在共享的RAM緩沖區PB中緩存,每個輸出排程隊列Q0/Q4/Q6/Q7隻儲存分組的位址。IC從FBD擷取目前空閑緩沖區的狀态STA,對不同輸出隊列采用不同的緩沖區管理算法,決定到達的分組是丢棄還是送PB緩存。CQF-UDO包含的主要子產品和功能如下表所示。

子產品代号 含義 功能
IC 輸入控制 從GOE接收分組,檢查中繼資料中攜帶的端口号,丢棄目的端口号非本地端口的分組,對于目的為本端口的分組,根據FBQ的狀态STA實作緩沖區管理,輸出緩沖區擁塞時丢棄分組(不同優先級有不同的丢棄優先級),非擁塞時将分組送分組緩沖區(PB)緩存,同時基于中繼資料和PB位址生成分組描述符(PD),将PD送隊列選擇子產品。
QS 隊列選擇 根據PD中攜帶的優先級資訊選擇輸出隊列。優先級為0的PD直接寫入Q0,優先級為4的送Q4之前的整形器S0,優先級為7的送時間門控邏輯G0。丢棄其他優先級分組的PD。
PB 分組緩沖區 用于輸出的緩存分組及中繼資料資訊。每塊大小為512位元組,是以最長的1518位元組的分組加上32位元組的中繼資料需要至少3個分組緩沖區塊。
FBQ 空閑緩沖區隊列 初始化後儲存空閑緩沖區的位址,按需向IC子產品配置設定,并從OC子產品回收釋放的緩沖區位址。
CB 控制子產品 與控制軟體接口,通過9個通路點提供對CQF轉發邏輯的配置,收集相關的狀态資訊。
G0 輸入門控邏輯 G0為入隊開關,選擇将分組寫入的隊列。支援兩個門控執行個體,乒乓切換周期分别為125us和250us,分别對應音頻和視訊傳輸流的緩存需求。
G1 輸出門控邏輯 G1和G2為Q7/Q6隊列得出隊門控開關,隻有相應門控開關打開後,隊列的輸出排程請求才會發往TS進行排程。
S 整形器 S0和S1分别為預約帶寬流量隊列Q4的入隊和出隊的流量監測和整型,基于令牌桶實作。其中S0為帶輸入緩沖的令牌桶,内部包含PD緩沖區,緩沖區的長度代表支援的突發長度。S1為不帶緩沖區的令牌桶實作,避免輸出流量的突發侵占best effort流量的輸出帶寬。
TS 發送排程 采用優先級排程算法選擇發送分組的描述符。
OC 輸出控制 根據TS的結果,将分組從PB讀出發送輸出。

(2)關鍵資料結構

    PKT:IC/OC與PB之間傳輸,以及PB儲存的PKT為FAST分組結構,即FAST定義的32位元組中繼資料(metadata)加上不含校驗字段的以太網分組。UDO儲存FAST中繼資料的原因是其中攜帶了分組接收時間戳,可用于後續透明時鐘的修訂。

    BD:為PB中512位元組緩沖區的位址,初始化時硬體将所有的空閑BD寫入空閑緩沖區隊列(FBQ),IC在接收到分組需要将分組寫入PB時,首先從FBQ讀取空閑BD,OC在從PB讀取分組發送結束後,将BD釋放寫回FBQ;

    PD:分組描述符,包含從分組中繼資料中提取出來的14位的flowID,3位的優先級Pri,以及最多3個BD資訊等。其中Pri是分組攜帶的優先級,flowID由FAST流水線的GME子產品生成,BD由輸入控制子產品IC獲得。

二、CQF-UDO的配置管理

    根據CQF-UDO的實作模型,共有9個通路點需要軟體進行管理配置。這些通路點共同組成了CQF-UDO資料轉發的抽象。使用者可以根據不同的軟體配置實作輸出接口的資源預約配置,流量測量和整型,以及轉發狀态檢測等功能。各通路點的詳細資訊如下表所示。

通路點 對應子產品 主要内容
A0 IC

(1)對接收分組數目,以及由于緩沖區溢出丢棄分組進行計數;

(2)配置每個隊列丢棄的閥值。

A1 QS 每個隊列長度寄存器。
A2 G0 2個輸入門控開關清單,每個清單隻需1個比特表示,1代表進入Q7,0代表進入Q6。
A3 S0 單個帶緩沖的令牌桶參數(B,r,L),以及相關計數器
A4 S1 單個緩沖令牌桶參數(B,r),以及相關計數器
A5 G1 1比特資訊,1則Q7的排程請求可通過,0則屏蔽Q7的排程請求
A6 G2 1比特資訊,1則Q6的排程請求可通過,0則屏蔽Q6的排程請求
A7 TS 排程器相關統計計數器
A8 OC 輸出發送相關計數器

    根據FAST規範,上述資訊需要映射到一個32位的虛拟位址空間中。CPU上驅動通過通路這些虛拟位址對這些資訊進行管理。

三、CQF-UDO對标準CQF整型處理的簡化

    CQF-UDO子產品實作的CQF功能隻是标準CQF的一個子集或是簡化的實驗版本,主要

  1. 簡化包括:簡化的入隊流控機制,使用簡單的令牌桶(B,r,L三個參數)實作代替802.1Q-2014規範定義的基于信用的整形器(10個參數)的功能;
  2. 使用4個輸出隊列代替标準的8個輸出隊列,是以隻支援一個優先級的時間敏感流量,一個優先級的預約帶寬流量以及一個優先級的BE流量。使用4個輸出隊列代替标準的8個輸出隊列,是以隻支援一個優先級的時間敏感流量,一個優先級的預約帶寬流量以及一個優先級的BE流量。

        盡管存在上述簡化,CQF-UDO仍可以對TSN網絡中CQF整型機制進行驗證,實作确定性的傳輸延時保證。關于分組緩沖區PB的大小評估額設定,隊列長度設定以及緩沖區管理算法将在後續文章中給出。

繼續閱讀