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

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