付文文 劉汝霖 全 巍 姜旭艷 孫志剛,2
1 (國防科技大學計算機學院 長沙 410073)
2 (并行與分布處理國防科技重點實驗室(國防科技大學)長沙 410073)
在工業自動化、自動駕駛等實時領域,總線技術已逐漸達到帶寬瓶頸,無法承載日益增長的流量規模,并且各總線技術互不兼容,制約了其發展前景[1-2].由于以太網具有高帶寬與良好兼容性的特點,工業界和學術界期望采用以太網技術彌補總線技術的不足.然而,以太網“盡力而為”的轉發模式容易導致幀丟失或經歷不確定的傳輸延時,這使其難以滿足實時應用的實時性和確定性要求.因此相關工作組在傳統以太網標準基礎上擴展時間同步和時間感知整形內容,制定了時間敏感網絡(time-sensitive networking,TSN)標準[3].
在TSN 系統中,為了保證關鍵流量傳輸延時的確定性和實時性,TSN 規劃工具需要預先為關鍵流量規劃其在每個節點的發送時間.其中關鍵流量是被調度的對象,因此也稱被調度流量(scheduled traffic,ST).規劃發送時間時,規劃工具將重負載情況下ST幀在各節點中可能經歷的最大交換延時作為規劃算法的輸入參數[4].節點的最大交換延時與相鄰節點發送時間的間隔呈正相關關系(具體分析見1.1 節).為了縮短相鄰節點的發送時間間隔以實現更低的傳輸延時,進而滿足TSN 應用對傳輸延時的苛刻要求(如汽車自動化中的動力系統和底盤控制要求傳輸延時小于10 μs[5]),TSN 交換芯片設計時需要以最小化最大交換延時為重要目標.
當前的商用TSN 交換芯片(如BROADCOM 公司的BCM53154[6]芯片)一般沿用以太網中主流的單流水線交換架構(1-pipeline switching architecture,1PSA)[7-8].在1PSA 架構中,所有端口的幀共享一條處理流水線,這使得不同端口的幀因競爭流水線的處理資源而在流水線入口處發生完整幀阻塞問題,產生阻塞延時.最大阻塞延時與端口類型、流水線工作頻率和處理位寬等因素相關.以2× 10 Gbps+8× 1 Gbps端口組合的TSN 芯片為例,假設流水線的工作頻率為125 MHz,處理位寬為256 b,幀在該芯片中可能經歷的最大阻塞延時超過24 μs(具體分析見1.2 節).這導致基于1PSA 架構的TSN 交換芯片的最大交換延時難以降低,并且需要消耗大量的存儲資源緩存阻塞延時內到達的幀數據(下文簡稱該緩存為阻塞緩存).
針對已存在的問題,本文面向TSN 芯片提出了一種超低阻塞的多流水線交換架構(n-pipeline switching architecture,nPSA).根據TSN 標準描述[3],TSN 的許多功能(如整形調度、幀搶占、幀復制與消除)適合在各端口邏輯中部署,在單流水線中實現和管理復雜.因此nPSA 架構為每個端口都實例化一條獨享的處理流水線,可消除1PSA 架構中在流水線入口處的阻塞問題.而且為了提升存儲資源的利用率和降低功耗,nPSA 采用集中式共享存儲結構,即所有端口的幀共享集中緩沖區(具體分析見1.3 節).這使得nPSA 架構的多條流水線需要競爭集中緩沖區,進而引入新的nPSA 阻塞問題.
為了最小化因競爭集中緩沖區而產生的阻塞延時和阻塞緩存,nPSA 架構通過基于時分復用的訪存機制將1PSA 架構中的完整幀阻塞問題優化成切片阻塞問題.該訪存機制的基本思想包括:1)各流水線累積接收的數據量達到切片寄存器的容量時(切片寄存器容納的數據量遠小于完整幀的數據量)便可寫入集中緩沖區;2)各流水線寫入/讀取集中緩沖區的時隙由算法預先規劃好,可保證訪存操作有序無沖突地進行.此外,為了能使該訪存機制運行,本文提出了加權輪詢式時隙分配算法(weighted roundrobin slot allocation algorithm, WRRSA).該算法可靈活地求解不同端口組合下各流水線訪問集中緩沖區的時隙分配方案.
然后,本文從理論維度比較nPSA 和1PSA 架構在多種典型的芯片配置下產生的最大阻塞延時和阻塞緩存所需的存儲資源.理論評估結果表示nPSA 架構產生的最大阻塞延時和所需的阻塞緩存容量比1PSA 架構低2 個數量級.nPSA 架構和WRRSA 算法在OpenTSN 開源芯片[9-10]和“楓林一號”ASIC 芯片[11]中得到應用.為了證實理論評估結果,本文對Open-TSN 芯片(基于FPGA 實現)和“楓林一號”芯片的最大交換延時進行實測.測試結果顯示在不同流量負載下,長度為64 B 的ST 幀在OpenTSN 芯片和“楓林一號”芯片的最大交換延時(頭進頭出)分別為1648 ns 和698 ns(其中最大阻塞延時都為72 ns).與基于1PSA 架構的TSN 交換芯片的理論值相比,最大交換延時分別降低約88%和95%.而且OpenTSN 芯片和“楓林一號”芯片的阻塞緩存容量都為2.25 Kb,與基于1PSA 架構的TSN 芯片的理論值相比都降低約97%.此外,本文分別基于OpenTSN 芯片和“楓林一號”芯片(ASIC 芯片驗證板)搭建了支持混合優先級流量傳輸的真實環境并進行實驗.實驗結果顯示OpenTSN 芯片和“楓林一號”芯片可為ST 流量提供亞微秒級確定性和微秒級實時性傳輸服務,滿足現有TSN 場景對確定性和實時性的需求.
本文主要貢獻有4 點:
1)面向TSN 芯片提出了一種多流水線交換架構nPSA,有效降低最大交換延時和存儲資源消耗;
2)提出了基于時分復用的訪存機制,以保證各流水線能夠超低阻塞地訪問集中緩沖區;
3)提出了加權輪詢式時隙分配算法,以求解不同端口組合下的時隙分配方案;
4)在真實的TSN 芯片中對nPSA 架構進行實踐,并通過實驗證明了其優點.
與軟件定義網絡(software defined network,SDN)[12]類似,TSN 系統一般采用控制平面與數據平面解耦的網絡架構.控制平面為所有ST 幀規劃其在各節點的發送時間;數據平面根據規劃結果執行相應的按時轉發操作.
發送時間的規劃粒度是規劃算法的重要參數,直接影響算法的計算復雜性和可規劃的ST 流量規模.根據現有的規劃算法,發送時間的規劃粒度可分為時間顆粒(time granularity,TG)和時間槽(time slot,TS)2 類.基于時間顆粒的規劃算法一般以數十納秒至1 μs 為時間單元[3,13],允許ST 幀在相鄰節點傳輸時占用多個時間單元.而基于時間槽的規劃算法將時間跨度增大,保證在任意相鄰節點中1 個時間槽最多傳輸1 個ST 幀,且保證在相鄰節點中當前時間槽在上游節點發送的ST 幀能夠在下一時間槽從下游節點中發出.時間槽的設置一般為數十微秒[4].
為了對基于2 種粒度的規劃算法性能進行深入比較,本文設置如圖1(a)所示的實驗場景,其中f1和f2為ST 流.面向該場景,基于2 種粒度的規劃結果分別如圖1(b)(以時間顆粒為規劃粒度)和圖1(c)(以時間槽為規劃粒度)的甘特圖所示,通過比較可直接得出2 個結論.

Fig.1 TSN planning results and transmission scenario圖1 TSN 規劃結果與傳輸場景
1)在基于時間顆粒的規劃算法中,發送時間的可選解遠多于基于時間槽的規劃算法,即圖1(b)中橫坐標的值域遠大于圖1(c),進而可知圖1(b)的計算復雜性遠高于圖1(c).此外,時間顆粒比時間槽的粒度更細.在相同的規劃周期內,基于時間顆粒的規劃算法會生成規模更大的規劃表,進而需要更多的片上存儲資源.
2)基于時間槽的規劃算法可調度的ST 流規模更小.由于1 個時間槽只能傳輸1 個ST 幀,且時間槽的設置面向最長的ST 幀,因此傳輸ST 短幀時,ST流量對鏈路帶寬的利用率較低.例如,當f1的報文長度是f2的2 倍時,圖1(c)中ST 幀在第1 個時間槽對鏈路L2的帶寬利用率僅為50%.
由于TSN 技術繼承以太網技術的高帶寬特性,且替代目標為低帶寬的總線技術,因此大多數TSN場景中,ST 流量帶寬占鏈路帶寬的比例很小[1,5].這使得基于時間槽的規劃算法的理論缺點在眾多實際TSN 場景中可忽視.因此,基于時間槽的規劃算法成為TSN 規劃算法的主要趨勢.
根據基于時間槽的規劃算法性質(在相鄰節點中,當前時間槽在上游節點發送的ST 幀,能夠在下一時間槽從下游節點中發出),當ST 幀在下游節點的發送時間槽始終比上游節點的發送時間槽大1時,相鄰節點的發送時間間隔最小,且端到端傳輸延時最小.最小端到端傳輸延時的取值范圍為((h-1)×VTS,(h+1)×VTS),其中h為傳輸路徑中交換節點的數量,VTS為時間槽的取值,進而可知ST 幀的最小端到端傳輸延時與時間槽的取值呈線性正相關關系.因此為了滿足汽車動力系統和底盤控制等TSN應用對傳輸延時的苛刻要求,時間槽的取值需要盡可能小.
由于當前時間槽在上游節點發送的ST 幀能夠在下一時間槽從下游節點中發出(如圖1(d)中ST 幀在第2 個時間槽從上游節點S1發出,在第3 個時間槽從下游節點S2發出),時間槽的取值需要滿足式(1)中所示的約束.
其中,S1.edmax為節點S1的最大輸出延時(幀開始被調度至該幀開始輸出到鏈路中可能經歷的最大延時),S2.idmax為節點S2的最大輸入延時(幀開始輸入到芯片至該幀開始寫入集中緩沖區中可能經歷的最大延時).δ為相鄰節點的時鐘誤差.Gb為用于消除非ST幀對ST 幀確定性干擾的保護帶[14].L為報文長度,r為鏈路速率.式(1)表示時間槽的取值需要大于上游節點的最大輸出延時、下游節點的最大輸入延時、相鄰節點時鐘誤差、保護帶和發送延時(L/r)之和.
式(1)中芯片相關的參數包括idmax,edmax,δ.由于時鐘同步的相關研究眾多,且同步精度δ一般維持在數十納秒級[15-16],對時間槽的取值影響比較小,本文面向TSN 芯片設計聚焦于降低idmax和edmax取值.由于idmax和edmax是芯片最大交換延時的組成部分,因此TSN芯片需要以最小化最大交換延時為重要設計目標.
目前TSN 芯片沿用以太網芯片中主流的1PSA交換架構,如圖2 所示.1PSA 架構使用單流水線處理所有端口輸入的幀,這使得從不同端口同時輸入的幀在流水線入口處相互阻塞.

Fig.2 1PSA switching architecture圖2 1PSA 交換架構
例如,幀A和幀B同時分別從不同端口輸入.2個幀競爭共享流水線的方式理論上可分為2 種:1)切片輪詢(slice round-robin,SRR).該方式需要將幀A和幀B都切分成若干切片.流水線輪詢調度幀A和幀B的切片.2)完整幀輪詢(frame round-robin,FRR),即流水線調度完整幀A(或幀B)的所有數據后才會調度另一個幀.由于單流水線無法識別未攜帶幀首部的切片,而且給每個切片增加首部信息會使額外增加的資源過多(增加的資源包括首部添加邏輯、首部消除邏輯、存儲首部信息的寄存器等),因此傳統以太網交換芯片采用FRR 的方式分配流水線資源[8].然而該方式必然使幀B(或幀A)經歷另一個幀的阻塞延時(設為DFRR),即等待另一個幀傳輸完所需的時間.
連續工作模式公平調度算法下[17],幀在匯聚時的阻塞延時DFRR(幀在輸入隊列中頭進頭出的延時)滿足式(2)所示的關系式,關系式中使用的參數含義如表1 所示,詳細證明見附錄A 的定理A1.

Table 1 Related Parameters of DFRR in 1PSA表1 1PSA 中的DFRR 相關參數
每個端口需要在幀匯聚處設置一個輸入隊列作為阻塞緩存.為了保證在連續工作模式公平調度算法下,當幀在端口i的輸入隊列中無溢出時,該輸入隊列的容量Ci滿足式(3)所示關系式, 詳細證明見附錄A 的定理A2.
以2× 10 Gbps+8× 1 Gbps 端口的TSN 芯片為例,為了保證所有端口能夠線速傳輸,1PSA 架構中單流水線的處理速率(f×B)需要大于或等于所有端口的速率之和(28 Gbps).根據式(2)可知,流水線的處理速率越快,即f和B越大,阻塞延時DFRR越小.然而,功耗與f呈正相關關系[18],因此f不能設置過大.而且B越大,消耗的資源也相應地增加.假設該芯片f=125 MHz,B= 256 b,處理速率為32 Gbps.此外,TSN 芯片支持的最大幀長度為1518 B.根據式(2)可計算出DFRR的理論最大值,約24.18 μs.這使得DFRR成為芯片最大交換延時的主要部分,進而導致1PSA 交換架構的最大交換延時難以降低.而且根據式(3),該TSN芯片中每個萬兆端口對應的阻塞緩存容量應設置為10.8 KB,每個千兆端口對應的阻塞緩存容量應設置為3.1 KB.這使得基于1PSA 交換架構的TSN 芯片需要消耗大量寶貴的片上存儲資源.
根據TSN 標準描述,TSN 功能(如幀復制與消除、幀剝奪、整形調度等)適合在TSN 芯片的端口邏輯中部署.因此TSN 芯片適合為每個端口部署一條獨享的流水線,以降低上述TSN 功能實現和管理的復雜性,而且實例化多條流水線可消除1PSA 架構中的阻塞延時.
此外為了提升存儲資源利用率,TSN 交換架構一般采用共享存儲結構[19],即所有端口的幀共享緩沖區,而且TSN 芯片常用于原味替代現有的以太網或總線芯片.在這些場景中TSN 芯片繼續使用被替代芯片的電源,使功耗高于被替代芯片的TSN 芯片難以適用于此類場景.由于分布式共享存儲結構允許多個讀寫操作同時進行,這使其峰值功耗遠大于集中式共享存儲結構.并且集中式共享存儲結構的實現和管理復雜性遠低于分布式共享存儲結構,這些使集中式共享存儲結構在TSN 交換設備中更適用.
在集中式共享存儲結構中,所有端口的幀共享集中緩沖區,這使得實例化多條流水線需要競爭共享緩沖區,引入新的阻塞延時與阻塞緩存.為了降低因競爭緩沖區而產生的阻塞延時并降低阻塞緩存容量,基于集中式共享存儲的多流水線交換架構需要解決2 個挑戰.
挑戰1:如何保證各流水線超低阻塞地訪問集中緩沖區.從不同端口同時輸入的幀都需要寫入集中緩沖區,然而緩沖區僅有單或雙訪問接口.若不對幀的訪存操作進行控制,則不同端口輸入的幀可能相互阻塞,產生類似于1PSA 交換架構中的阻塞延時,進而無法有效地降低芯片內的最大交換延時.
挑戰2:如何適配不同場景下芯片端口(或流水線)數量和處理速率的多樣性.為了適配不同TSN 芯片中端口(或流水線)數量和處理速率的多樣性,TSN 交換架構急需一種靈活的算法為各端口(或流水線)合理地分配集中緩沖區的訪問帶寬.
為了解決這2 個挑戰,本文面向TSN 交換芯片提出一種基于時分復用訪存的多流水線交換架構(nPSA),并為該架構設計了一種加權輪詢式時隙分配算法(WRRSA).
如圖3 所示,nPSA 架構的基本組成包括輸入流水線(ingress pipeline,IP)、基于時分復用的切片匯聚(slice-based time division multiplexing,STDM)集中緩沖區(Buf)、切片分派和輸出流水線(egress pipeline,EP).其中,IP 完成幀接收與解析等操作;STDM 緩存從IP 輸入的幀切片,并基于時分復用的方式往集中緩沖區中寫入緩存的切片;集中緩沖區Buf 存儲所有端口輸入的幀數據;切片分派通過時分復用的方式從集中緩沖區中讀取幀數據,并將幀數據傳輸給各EP(由于切片分派原理與STDM 類似,本文不對其展開描述);EP 完成隊列門控和調度輸出等功能.

Fig.3 nPSA switching architecture圖3 nPSA 交換架構
通過與1PSA 架構進行比較,nPSA 架構的主要包括2 點特點:
1)nPSA 架構為每個端口實例化一條獨享的流水線.雖然實例化多條流水線理論上使流水線中邏輯資源的消耗增加,但是nPSA 架構消除了1PSA 架構中各端口的輸入隊列,可有效節省存儲資源.而且,由于TSN 功能(隊列整形調度、幀剝奪),nPSA 大多適合在各端口邏輯中部署,通過逐端口的流水線實現TSN 功能可有效降低實現和管理復雜性.此外,TSN 流水線的處理邏輯簡單,無須集成以太網中復雜的IP 層查表功能.這些使得與1PSA 架構相比,nPSA架構雖然增加邏輯資源,但是大幅降低存儲資源,整體上有利于減小芯片面積.
2)nPSA 架構使用STDM 邏輯處理各流水線的數據匯聚,將幀阻塞問題優化成切片阻塞問題,即將阻塞延時由1PSA 架構中的DFRR優化為DSTDM.在1PSA 架構中,為了單流水線能夠識別各端口輸入的幀數據,1PSA 架構中的匯聚邏輯必須緩存完整的幀后才能往后傳輸.而nPSA 架構中的STDM 邏輯只需緩存幀切片,無須緩存整個幀.這是因為nPSA 架構的緩沖區管理邏輯可通過幀數據的載體識別幀切片的來源.而1PSA 架構中各端口輸入的幀在單流水線中混合后,其緩沖區管理邏輯無法通過載體識別未攜帶首部信息的幀切片來源.
由于nPSA 架構采用集中存儲結構緩存所有端口的幀數據,這使得多條流水線需要競爭集中存儲資源.為了在競爭存儲資源時保證各流水線進行超低阻塞的訪存操作(挑戰1),nPSA 架構集成了基于時分復用的訪存機制.而且,為了靈活適配流水線數量和速率的多樣性(挑戰2),本文為訪存機制搭配了WRRSA 算法.
nPSA 交換架構通過基于時分復用的訪存機制實現超低的阻塞延時與阻塞緩存容量.該訪存機制的主要思想包括:1)通過為每條流水線合理地分配訪問集中緩沖區的時隙,保證每個時隙僅被1 條流水線獨享,進而消除訪存沖突;2)通過切片輪詢替換完整幀輪詢,大幅降低阻塞延時與阻塞緩存的容量;3)通過流水線的序號識別切片來源,消除為識別切片來源而消耗的額外的資源.
基于時分復用的訪存機制涉及的核心組件如圖4(a)所示,包括時隙分配向量、時隙分配控制、切片寫入控制(slice write control,SWC)和切片寫入仲裁(slice write arbitrate,SWA).

Fig.4 STDM-based memory access mechanism圖4 基于STDM 的訪存機制
時隙分配向量表示在每個時隙中,SWA 應該調度哪條流水線輸入的幀數據.如圖4(a)所示,向量內容為流水線序號,地址信息為時隙序號.向量中的地址數量為時隙分配操作循環1 次所需的時隙數量,設為輪詢周期snperiod.snperiod通過式(4)獲取.
Vtotal為各流水線(或端口)的速率之和,gcd(V[0],V[1],…,V[N-1])為所有流水線速率的最大公約數.例如,在8× 1 Gbps+2× 10 Gbps 的端口組合中,端口速率的最大公約數為1024Mbps(由于目前端口速率單位一般是百兆、千兆或萬兆,因此最大公約數使用Mbps 作為單位),snperiod=28.而且為了提升時隙分配的粒度,時隙設置為緩沖區管理邏輯的硬件時鐘周期.例如,緩沖區管理邏輯工作在125 MHz 頻率下,其硬件時鐘周期為8 ns,即時隙為8 ns.
時隙分配控制邏輯用以接收時隙分配向量,并根據時隙分配向量對SWA 和SWC 進行控制.控制的具體方式為在每個時隙中,時隙分配控制邏輯從向量中獲取下一時隙應該調度的流水線序號.然后,時隙分配控制邏輯給流水線序號對應的SWC 發送有效的授權信號,并且通知SWA 在下一時隙應該調度的流水線序號.
SWC 主要包括循環輸入寄存器組(如Sa和Sb)和循環寫入(recurrent writing,RW)邏輯.如圖4(b)所示,SWC 使用循環輸入寄存器組存儲對應流水線輸入的微片(micro-slice,MS).MS 的位寬為BMS,即對應流水線1 個時鐘周期處理的數據量.MS 用于組成切片,Sa(sb)的位寬為BS,即緩沖區管理和RW1 個時鐘周期處理的數據量.BS與BMS的關系滿足BS=m×BMS(m為正整數).例如,在8× 1 Gbps+2× 10 Gbps 的端口組合中,千兆端口對應的IP 和EP 工作頻率為125 MHz,萬兆端口對應的IP 和EP 工作頻率為156.25 MHz,緩沖區管理邏輯的工作頻率為256 MHz;則千兆端口對應的MS 位寬為8 b,萬兆端口對應的MS 位寬為64 b,緩沖區管理邏輯的處理位寬為128 b,即切片位寬BS為128 b.
當RW 邏輯從時隙分配控制邏輯接收到有效的授權信號時,才可輸出循環輸入寄存器中的數據.輸出方式采用循環輸出,即本次輸出了 Sb中的數據,下次只能輸出 Sa中的數據,并不斷循環.并且只有當目標寄存器的數據已滿時,才允許輸出該寄存器內的數據.輸出時,RW 邏輯將寄存器中的數據轉發給SWA,并等待其接收.
SWA 接收時隙分配控制邏輯傳輸的流水線序號,在下一時隙從該流水線序號對應的SWC 邏輯中接收幀數據.幀數據接收成功后,SWA 將該數據直接寫入集中緩沖區中,并返回成功信號給SWC 邏輯.
基于芯片端口配置的多樣性,nPSA 架構的訪存機制需要搭配合適的時隙分配算法以生成時隙分配向量.該時隙分配算法的設計前提是保證各流水線無中斷地輸出任意幀,并且保證幀數據不會在循環寄存器中溢出.基于此,WRRSA 算法的設計思包括:
1)各流水線訪問集中緩沖區的時隙數量比例等于相應流水線速率占流水線總速率的比例.例如,10 Gbps流水線分配的時隙數量是1 Gbps 流水線的10 倍.
2)各流水線分配的時隙均勻分布.為了減少循環寄存器組的存儲容量,各流水線分配的時隙需要均勻分布以降低時隙間隔的最大值.
WRRSA 算法的詳細描述見算法1,其相關參數見表2.

Table 2 Related Parameters of WRRSA Algorithm表2 WRRSA 算法相關參數
基于算法1 描述,在8× 1 Gbps+2× 10 Gbps 的端口組合中,且緩沖區管理邏輯的處理速率為32 Gbps 時,WRRSA 算法為該TSN 芯片計算出的時隙分配向量如式(5)所示,其中序號1 和2 表示2 個萬兆端口對應的流水線序號,3~10 表示8 個千兆端口對應的流水線序號.輪詢周期(snperiod)為28,千兆端口的時隙間隔為28,萬兆端口分配的時隙間隔為3.
WRRSA 算法具有3 個特性,特性證明見附錄A.
1)nPSA 架構的最大阻塞延時(即DSTDM的最大值)為snperiod個時隙.在8× 1 Gbps+2× 10 Gbps 端口組合的TSN 芯片中,DSTDM的最大值為28 個時隙.
2)幀數據在循環輸入寄存器組中無溢出的充分必要條件是循環輸入寄存器組中寄存器的數量不小于2.
3)幀傳輸不中斷的充分必要條件是SWC 中循環輸出寄存器組中寄存器的數量不小于2.
為了驗證nPSA 架構的優點,OpenTSN 開源芯片(基于FPGA 實現)和“楓林一號”ASIC 芯片對其進行了實踐.
1)OpenTSN 芯片.該芯片實現架構如圖5(a)所示,其核心組成包括IP(輸入流水線)、配置管理、時分復用訪存、時間同步和EP(輸出流水線).其開源代碼和設計文檔見文獻[9].

Fig.5 OpenTSN chip implementation圖5 OpenTSN 芯片實現
IP 的組成如圖5(b)所示,包括接收控制、幀解析、轉發查表、描述符生成、緩沖區申請、緩沖區寫模塊.IP 負責將配置幀、同步幀和數據幀解析后分別轉發給配置管理、時間同步和時分復用訪存模塊,并且提取數據幀的描述符(包含對應幀的關鍵信息組)轉發給EP;配置管理通過解析配置幀獲取配置內容,并將配置內容寫入對應寄存器或表;時分復用訪存完成多條流水線的訪存操作;時間同步為IP,EP 和時分復用訪存邏輯提供全局統一的時間;EP 的組成如圖5(c)所示,包括描述符接收、入隊控制、描述符隊列、輸出調度、緩沖區讀、發送控制模塊.其主要負責根據接收的幀描述符提取對應的數據幀并按照規劃的時間輸出.
為了測試nPSA 架構中每條TSN 流水線所需的邏輯資源,本文基于FPGA 實現了OpenTSN 開源芯片邏輯.OpenTSN 芯片具有9 個千兆接口,資源消耗如表3 所示.其中每條輸入與輸出流水線消耗的自適應查找表(adaptive look-up table)ALUT、寄存器、自適應邏輯模塊(adaptive logic module, ALM)資源都小于對應總資源的8%,且存儲塊數量僅消耗13 584,僅占芯片總存儲塊的1.6%.

Table 3 Resource Consumption of OpenTSN Chip表3 OpenTSN 芯片資源消耗
2)“楓林一號”芯片.“楓林一號”的芯片架構與設計思路見文獻[11].“楓林一號”芯片具有9 個千兆端口.其采用國產130 nm 工藝流片,芯片封裝為256引腳QFP 封裝,面積僅為9 nm× 9 nm,峰值功耗僅為0.46 W.
通過對1PSA 架構和nPSA 架構進行比較可知,1PSA 架構的阻塞延時DFRR和nPSA 架構的阻塞延時DSTDM是2 種架構交換延時的主要變量因素.為了證明nPSA 架構可有效降低1PSA 架構的最大交換延時,本文基于4 種典型的TSN 芯片設置對2 種架構的最大阻塞延時進行量化比較.量化結果如表4 所示.在4 種典型的TSN 芯片端口設置中,與1PSA 架構的DFRR最大值相比,nPSA 架構的DSTDM最大值可降低2個數量級.

Table 4 Comparison of Theoretical Blocking Delay Between 1PSA Architecture and nPSA Architecture表4 1PSA 架構和nPSA 架構的理論阻塞延時比較
本文基于上述4 種典型的TSN 芯片設置,對2種架構所需的阻塞緩存容量進行量化比較.量化結果如表5 所示,與1PSA 架構阻塞緩存需要消耗的存儲容量相比,nPSA 架構也可降低2 個數量級.

Table 5 Comparison of Theoretical Blocking Cache Capacity Between 1PSA Architecture and nPSA Architecture表5 1PSA 架構和nPSA 架構的理論阻塞緩存容量比較
OpenTSN 芯片和“楓林一號”芯片HX-DS09 都具有9 個千兆端口.OpenTSN 芯片和中“楓林一號”芯片每條流水線的工作頻率和位寬分別為125 MHz和8 b,且緩沖區管理邏輯的工作頻率和位寬分別為125 MHz 和128 b.
1)最大交換延時.為了驗證nPSA 架構的優點,本文首先對OpenTSN 芯片和“楓林一號”芯片的最大交換延時進行實測.最大交換延時是芯片能力參數,不是組網時的網絡延時參數,因此測量拓撲和被測芯片的實際部署拓撲可不同.測試拓撲為被測芯片與測試儀直連.具體測試步驟為在1 個測試端口中輸入一條恒定的ST 流量,幀長度為1 500 B.同時,向其他所有個端口都輸入動態的背景流量,且背景流量幀長度也為1 500 B.所有流量的輸出端口號與其輸入端口號相同,且通過設置保證幀能夠即到即走.測試時長1 h,其實驗結果如表6 所示,ST 幀在芯片內經歷的最大交換延時與其他端口傳輸的流量無關(即最大交換延時具有確定性),在OpenTSN 芯片和“楓林一號”芯片中的最大交換延時(頭進頭出)分別為1648 ns 和698 ns,其中最大阻塞延時都為72 ns.根據式(2)、基于1PSA 交換架構的相同TSN 芯片(具有相同的端口、處理頻率和位寬)的阻塞延時DFRR的理論最大值約為13.6 μs.因此OpenTSN 芯片和“楓林一號”芯片的最大交換延時分別降低約88%和95%.

Table 6 Comparison of Maximum Switching Delay of Two Chips表6 2 塊芯片的最大交換延時比較
由表6 可證明,與1PSA 架構相比,nPSA 架構可有效降低TSN 芯片的最大交換延時.
2)端到端傳輸延時.本文通過驗證OpenTSN 芯片和“楓林一號”的實時性和確定性以證明nPSA 架構的可行性.本文基于OpenTSN 芯片構建了如圖6所示的真實測試環境.該環境包括2 塊OpenTSN 芯片(基于FPGA 實現)、2 臺測試儀和3 臺PC 終端.其中測試儀1 發出1 條ST 流(ST1)和1 條BE 流(BE1,傳統以太網中盡力而為的流量,作為背景流),測試儀2 也發出1 條ST 流(ST2)和一條BE 流(BE2).4 條流量的傳輸路徑如圖6 所示.

Fig.6 OpenTSN experiment topology圖6 OpenTSN 實驗拓撲
在OpenTSN 實驗1 中,流特征如表7 所示.最長的ST 報文為128 B,在1 Gbps 鏈路的傳輸時間為(報文長度/鏈路速率)為1 μs.背景流(BE1,BE2)的報文長度為128 B,因此背景流對ST 幀確定性的干擾最大為1 μs(=128 B/1 Gbps),進而需要設置1 μs 的保護帶.此外2 塊TSN 芯片的時鐘同步精度時鐘維持在100 ns以內,且OpenTSN 芯片的最大交換延時為1648 ns.根據式(1),本實驗將時間槽設置為4 μs.

Table 7 Flow Characteristics of OpenTSN Experiment 1表7 OpenTSN 實驗1 的流量特征
在OpenTSN 實驗1 中,ST 報文在門控周期的第0 個時間槽(0~4 μs)從測試儀中發出.2 塊TSN 芯片的門控表如表8 所示,即2 條ST 流期望在第1 個時間槽(4~8 μs)從TSN 芯片1 發出,在第2 個時間槽(8~12 μs)從TSN 芯片2 發出.

Table 8 Gate Control List of OpenTSN Experiment 1表8 OpenTSN 實驗1 的芯片門控列表
OpenTSN 實驗1 的結果如圖7 所示,ST1的端到端傳輸延時在8 337~8 825 ns 的范圍內波動,其傳輸延時抖動小于600 ns.ST2的端到端傳輸延時在8 201~9 177 ns 的范圍內波動,其傳輸延時抖動小于1 000 ns.該實驗結果表明ST 報文在測試儀至TSN 芯片1 鏈路中的傳輸時間(包括在下游節點的緩存時間)為0~4 μs,在TSN 芯片1 至TSN 芯片2 鏈路的傳輸時間為4~8 μs,在TSN 芯片2 至測試儀鏈路的傳輸時間為8 μs 以后,與預期結果一致.

Fig.7 End-to-end transmission delay of OpenTSN experiment 1圖7 OpenTSN 實驗1 的端到端傳輸延時
OpenTSN 實驗2 中測試流量的流量特征如表9所示.按照式(1),該實驗通過調整報文長度修改時間槽的取值.在該實驗中,最長的ST 報文為512 B,在1 Gbps 鏈路的傳輸時間(報文長度/鏈路速率)為4 μs.背景流(BE1,BE2)的報文長度為1280 B,因此背景流對ST 幀確定性的干擾最大為10 μs(=1280 B/1 Gbps),進而需要設置10 μs 的保護帶.此外OpenTSN 芯片的同步精度為100 ns.根據式(1),本實驗將時間槽設置為16 μs.

Table 9 Flow Characteristics of OpenTSN Experiment 2表9 OpenTSN 實驗2 的流量特征
ST 報文在測試儀的發送時間和2 塊TSN 芯片的門控表的設置與OpenTSN 實驗1 相同.OpenTSN 實驗2 的測試結果如圖8 所示.與預期一致,ST1的端到端傳輸延時圍為33 885~34 005 ns,ST2的端到端傳輸延時圍為33 881~33 972 ns.2 條ST 流的傳輸延時抖動都維持在0.2 μs 以內.

Fig.8 End-to-end transmission delay of OpenTSN experiment 2圖8 OpenTSN 實驗2 的端到端傳輸延時
本文構建了包含2 塊“楓林一號”芯片HX-DS09驗證板、4 臺PC 機、1 臺示波器、2 個網絡攝像頭和1 臺測試儀的真實環境,如圖9 所示.網絡攝像頭1向對應的視頻接收端發送視頻流(BE1流量),帶寬為5 Mbps;網絡攝像頭2 向相應接收端發送的視頻流(BE2流量),帶寬也為5 Mbps;測試儀往驗證板1 注入3 條ST 流(ST1,ST2,ST3),剩余帶寬發送BE3流量.3 條ST 流的流向相同,都先后經過TSN 芯片1、TSN芯片2,最后返回測試儀.實驗場景中所有鏈路帶寬為1 Gbps.

Fig.9 HX-DS09 experiment topology圖9 HX-DS09 實驗拓撲
每條ST 流的報文長度為128 B,在1 Gbps 鏈路的傳輸時間(報文長度/鏈路速率)為1 μs.而且“楓林一號”將所有長報文切成多個64~128 B 的切片,因此切片對ST 幀確定性的干擾最大為1 μs(=128 B/1 Gbps),進而需要設置1 μs 的保護帶.此外,2 塊TSN芯片的時鐘同步精度時鐘維持在100 ns 以內.根據式(1),本實驗將時間槽設置為4 μs.
為了降低端到端傳輸延時,這3 條ST 流在TSN芯片1 中規劃在第1 個時間槽(0~4 μs)發送,在TSN芯片2 中規劃的發送時間為第2 個時間槽(4~8 μs).本實驗在每條ST 流中隨機采樣100 個報文獲取其端到端傳輸延時.如圖10 所示,所有報文的最大端到端傳輸延時為6.42 μs,其抖動為0.35 μs.這與端到端傳輸延時的理論值保持一致.

Fig.10 End-to-end transmission delay of HX-DS09 experiment圖10 HX-DS09 實驗的端到端傳輸延時
上述關于端到端傳輸延時的測試結果可證明,nPSA 架構通過降低TSN 芯片的最大交換延時,以允許更小的時間槽,進而實現微秒級或數十微秒級的端到端傳輸延時.
由于TSN 標準僅在邏輯層面描述TSN 技術,未對實現相關的交換架構進行規定.因此TSN 芯片采用的交換架構是可以自定義的.目前商用TSN 交換芯片(如BROADCOM 公司的BCM53154,BCM53156,BCM53158 芯片[6])沿用以太網交換芯片中的1PSA架構,其最大交換延時高的特點使其難以適用于對實時性具有苛刻要求的TSN 應用.
優化1PSA 交換架構的目標和以太網芯片中使用直通式交換架構替代存儲轉發式交換架構的目標不同.直通式交換架構通過消除完整幀寫入與讀取的過程,降低芯片的最小交換延時[20-21].然而,本文優化1PSA 交換架構的目標是最小化最大交換延時.
文獻[22]提出一種基于交叉開關矩陣(crossbar)的分布式共享緩沖區架構(DSB),其通過物理隔離的方式避免多端口幀同時訪問同一共享緩沖區,具體為將同時輸入的幀映射至不同的緩沖區中進行寫入操作,進而消除訪存沖突.與nPSA 架構相比,DSB 架構可消除阻塞延時和阻塞緩存.但是多塊緩沖區同時寫入數據會使芯片的峰值功耗急劇增加.TSN 芯片在許多場景中用于原味替代現有的以太網或總線芯片.在這些場景中TSN 芯片繼續使用被替代芯片的電源,這使得高功耗的TSN 芯片難以適用于此類場景.此外由于ST 幀需要按時發送,為了支持較長時間的ST 幀緩存,DSB 的共享緩沖區需要消耗大量珍貴的片上存儲資源.因此基于交叉電路的DSB 架構不適用于TSN 芯片.
文獻[23]對DSB 架構進行優化,提出一種面向TSN 交換芯片的時間觸發交換架構(SMS).該架構對ST 流量和非ST 流量使用單獨的共享緩沖區,并且從降低存儲資源消耗和提升ST 幀的錯誤容忍角度設置訪存機制.這與本文降低最大化交換延時的初衷截然不同,因此文獻[23]的訪存機制并不能直接用以指導本文訪存機制的設計.
本文面向TSN 芯片針對1PSA 架構中存在的阻塞延時過大問題,提出了多流水線交換架構nPSA.nPSA 架構通過基于時分復用的訪存機制保證各流水線超低阻塞地訪問集中緩沖區.另外,針對不同應用場景對端口多樣性的需求,本文提出了一種加權輪詢式時隙分配算法WRRSA,能夠快速地為各流水線分配訪問集中緩沖區的時隙.最后,通過理論分析和芯片實測,本文對nPSA 架構的性能優點進行了驗證,證明該架構及WRRSA 算法在降低最大交換延時和減少資源消耗方面具有顯著優勢.
作者貢獻聲明:付文文負責全文框架設計;劉汝霖負責論文撰寫;全巍負責實驗設計;姜旭艷負責實驗實現和分析;孫志剛提出論文構思.