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

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