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

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