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

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