0731-84728105
15116127200
基于FAST的(de)TSN交換(5)TSN交換機(jī)隊列結構和(hé)延時分析
發布時間:2019-1-22
     交換機(jī)中的(de)排隊延時是給分組端到端延時帶來不确定性的(de)重要因素。由于要支持确定性的(de)延時,TSN交換機(jī)中的(de)隊列設計必須有(yǒu)别于傳統的(de)标準交換機(jī)。基于FAST流水線擴展模型和(hé)CQF-UDO模塊設計,我們在openbox-S4可(kě)編程平台上展開TSN交換機(jī)原型(FAST-TSN-04)設計,本文詳細介紹了該原型機(jī)中的(de)隊列模型,并對分組交換延時進行(xíng)分析。
一(yī)、FAST-TSN-04的(de)隊列模型
      FAST-TSN-04基于Openbox-S4實現(核心FPGA為(wèi)ZynqXC7Z030),支持4個千兆以太網接口分組和(hé)TSN的(de)CQF流量整形,可(kě)保證精确的(de)分組交換延時。其內(nèi)部的(de)隊列結構如(rú)下圖所示。分組交換過程的(de)緩存主要分為(wèi)三個階段,即輸入緩存,交換緩存和(hé)輸出緩存。

圖1 FAST-TSN-04的(de)緩存結構
   (1)輸出緩存
     輸入緩存在openbox-S4平台提供的(de)FPGA OS中實現,用戶無法根據TSN的(de)轉發需求進行(xíng)任何修改和(hé)定制。每個接口接收的(de)分組不加區别的(de)按照先來先服務的(de)隊列形式保存在輸入緩存FIFO隊列中。FIFO隊列的(de)寬度為(wèi)128bit,時鍾頻率為(wèi)125HHz。由于每個接口速率為(wèi)1Gbps,因此進入FIFO隊列的(de)速率最大為(wèi)1Gbps,而在A點調度器調度分組輸出帶寬為(wèi)16Gbps(128b*125MHz)。
     參考文獻[1]證明了在上述隊列結構下,每個FIFO隊列不溢出的(de)條件為(wèi):
     且分組在隊列中的(de)最大延時:
     将Vi=1Gbps,f=125MHz,Bd=128b,L=1500B,N=4帶入可(kě)得将每個接收的(de)FIFO隊列長(cháng)度設置為(wèi)1.8KB即可(kě)保證無分組溢出,分組的(de)最大延時為(wèi)4.5us。
   (2)交換緩存
     交換緩存采用共享存儲方式,即B點(FAST流水線中的(de)GPP模塊)從PB獲取空閑的(de)緩沖區塊地(dì)址,将每個到達的(de)分組寫入PB中存儲,同時将地(dì)址信息寫入分組的(de)元數據中。FAST流水線模塊(GKE、GME、GAC)利用分組的(de)元數據進行(xíng)交換查表,得到其目的(de)輸出接口,即可(kě)将分組的(de)元數據(包含分組優先級和(hé)輸出接口号)寫入相應的(de)輸出隊列中等待調度。
     GAC沒有(yǒu)對TSN進行(xíng)優化設計,每個端口僅支持高(gāo)(H)低(dī)(L)兩個優先級隊列。支持TSN時,可(kě)配置将優先級4-7的(de)分組元數據送高(gāo)優先級隊列緩存,優先級0-3的(de)分組元數據送低(dī)優先級隊列緩存。C點(GAC模塊)的(de)調度器采用兩級調度的(de)思想,第一(yī)級是每個輸出端口調度高(gāo)優先級分組輸出,第二級是在多個優先級隊列中采用Round-Robin方式進行(xíng)調度。
     采用RR調度可(kě)能導緻一(yī)個端口的(de)低(dī)優先級幀先于另一(yī)個端口的(de)高(gāo)優先級隊列發送,這種情況是合理(lǐ)的(de),因為(wèi)GAC調度對應的(de)速率為(wèi)16Gbps,而對應CQF-UDO的(de)輸出帶寬為(wèi)1Gbps,即使高(gāo)優先級幀被優先調度到UDO模塊,還需要在UDO模塊中進行(xíng)進一(yī)步緩存。
     交換緩存是交換機(jī)中的(de)重要緩存。當多個輸入端口向一(yī)個輸出端口同時發送數據時,交換機(jī)理(lǐ)想的(de)緩存應該在一(yī)定流量條件下保證輸出接口不溢出。目前TSN工作組正在制定面向工業自(zì)動化場景的(de)TSN規範草(cǎo)案“IEC/IEEE 60802 TSN Profile for Industrial Automation“,在工作組最新文檔(參考文獻2)中給出了交換機(jī)輸出接口緩存資源MinimumFrameMemory的(de)計算公式: MinimumFrameMemory= (NumberOfPorts – 1) × MaxPortBlockingTime × Linkspeed 其中NumberOfPorts為(wèi)交換機(jī)接口數,MaxPortBlockingTime為(wèi)數據緩存時間,Linkspeed為(wèi)接口鏈路速率。通過上述公式,文檔給出了當接口數目為(wèi)4,鏈路速率為(wèi)1Gbps,MaxPortBlockingTime為(wèi)典型值200us時,需要的(de)緩存大小為(wèi)75KB。
   (3)輸出緩存
     輸出緩存位于CQF-UDO內(nèi)部,是針對TSN CQF流量整形機(jī)制設計的(de)專用隊列。CQF-UDO包含4個隊列,其中Q7和(hé)Q6為(wèi)保存時間敏感分組的(de)乒乓隊列,Q4為(wèi)保存帶寬預約分組的(de)隊列,Q0為(wèi)保留Best Effort分組的(de)低(dī)優先級隊列。
     由于時間敏感分組(優先級為(wèi)7)和(hé)預約帶寬分組(優先級為(wèi)4)在交換緩存中作為(wèi)高(gāo)優先級分組會被優先調度到UDO,因此對于合理(lǐ)的(de)離(lí)線調度(不會造成輸出端口擁塞),高(gāo)優先級流量不會在輸出端口長(cháng)時間排隊。
     造成輸出接口Q7/Q6排隊的(de)是CQF模型。假設時間敏感流量乒乓隊列切換的(de)時間槽為(wèi)125us(802.1Qch中給出的(de)典型切換時間),且時間敏感流量不超過鏈路負載的(de)20%(200Mbps),因此Q7和(hé)Q6每個隊列緩存最大需要125us*20%*1Gbps,即3.2KB。
     Q4隊列主要保存帶寬預約流量,由于在D點(GOE)可(kě)使用令牌桶對流量整形,因此Q4的(de)長(cháng)度隻等于令牌桶的(de)桶深即可(kě),這裏可(kě)設置為(wèi)4KB。
     Q0隊列隻是用于16G速率到接口1Gbps速率的(de)轉換,隻要D點(GOE)對UDO進行(xíng)正體1Gbps的(de)帶寬限速,Q0隊列隻需緩存一(yī)個大的(de)完整分組即可(kě),因此選擇2KB即可(kě)。
二、緩存資源和(hé)轉發延時評估
   (1)存儲資源評估
     根據以上分析,對FAST-TSN-04使用的(de)存儲資源進行(xíng)評估如(rú)下表所示。
     Opnebox-S4選用Zynq芯片XC7Z030內(nèi)嵌的(de)緩沖區為(wèi)9.3Mb,而FAST-TSN-04使用的(de)緩沖區大小為(wèi)140KB,約1.1Mb。因此即使考慮數據成塊分配導緻緩存效率降低(dī), FPGA內(nèi)部緩存是可(kě)以滿足需求的(de)。
   (2)延時評估
     對FAST-TSN-04的(de)延時評估主要針對時間敏感流量和(hé)帶寬預約流量。基于上述分析,圖中各參考點之間的(de)延時估算如(rú)下表所示。表中的(de)延時估算為(wèi)頭進到頭出的(de)延時。對于最大分為(wèi)1500B和(hé)千兆帶寬,分組頭進尾出延時還要增肌1500*8b/1GBps=12us左右。由于FAST流水線時鍾為(wèi)125MHz,每個時鍾節拍8ns,1us約125個時鍾節拍。
     基于上述分析,不考慮CQF的(de)緩存需求,交換流程中高(gāo)優先級分組(時間敏感分組和(hé)預約帶寬分組)最大延時約15us。對于無離(lí)線規劃的(de)best effort分組,最大延時可(kě)能超過600us(75KB/1Gbps)。
參考文獻
[1] 李韬,孫志剛等,面向下一(yī)代互聯網實驗平台的(de)新型報文處理(lǐ)模型——EasySwitch, 計算機(jī)學(xué)報,2011年(nián)11期
[2] Use CasesIEC/IEEE 60802 V1.3,https://1.ieee802.org/tsn/iec-ieee-60802-tsn-profile-for-industrial-automation/