荊 倩,沈三民
(中北大學 儀器科學與動態測試教育部重點實驗室,太原 030051)
近些年,全球數據中心網絡[1]的流量保持超高速增長。根據思科公司的技術白皮書,在所有增長率方面,數據中心內部流量占77%。隨著數據中心內交換流量的不斷增加,亟需實現數據中心網絡更低延遲的互連結構。
傳統的多層拓撲結構正在被扁平化的全對分帶寬架構所取代[2],如葉脊式架構,這種拓撲結構支持擴展到更高的端口數,同時提供完整的對分帶寬。由于所有路徑都是等距的且長度最短,因此,能夠實現較低的機架間延遲[3]。然而,帶寬擴展受到電子芯片上高速信號引腳數量的限制[4]。利用波分復用(WDM)技術的光交換網絡能夠有效提高傳輸容量的量級,突破對分帶寬的瓶頸,例如c-Through[5]、ROSA[6]等,這些技術方案可以增加數據中心網絡的對分帶寬,降低成本和延遲。在控制平面方面,使用復雜的調度算法估計流量需求可以提高線路利用率,但會進一步增加交換路徑確認信令所造成的雙向延遲和處理開銷。
光交換機能夠處理迅速變換的突發流量,數據包被轉發到交換機且不用等待確認信令,并有效預測交換路徑。但難題是如何建立能夠在分組時標上操作的控制平面。為了避免對全局調度的需求,有些方案[7-8]使用波長路由的光網絡架構。但該類方案的缺點是顯著增加光學元件數量,尤其是需要使用成本較高的波長轉換設備。此外,還有基于FPGA的集中式控制平面[9],支持以75 ns的端到端延遲進行光分組交換。
本文設計了一種高速的控制平面,在FPGA板上實施了該控制平面,確認了端到端延遲和控制平面作用,并分析了實現最小調度延遲的難點。實驗表明:通過高速調度和在并行WDM信道上的預測性分組傳輸,實現了納秒級的分組交換。此外,針對交換機調度器提出了一個高度并行化輸出端口分配電路設計,并將該設計實施于同一塊FPGA板上作為實驗調度器,以量化其對調度器延遲和可擴展性的提升。
本文提出的系統方法是基于帶電子緩沖器的納秒級可重構N×N光交換機,電子緩沖器作為輸入端口處的先入先出(FIFO)隊列而實現。通過與交換機位于同處的電子調度器進行交換機配置。在交換機輸入處實施緩沖器能夠降低端到端延遲,并避免數據包丟失。
本文設計的控制平面如圖1所示,包括兩個FPGA板,由分立光學元件組成的一個2×2縱橫式光交換機。FPGA#1表示服務器側的網絡接口,以時鐘周期Ttx運行;FPGA#2表示位于交換機的調度器,以時鐘周期Tscheduler運行??刂破矫嬖趦蓚€FPGA板上擴展;包括網絡接口中的請求控制器和包控制器,以及調度器電路。示波器探針D0~D7放置于數據路徑上。Xilinx集成邏輯分析儀(ILA)探針C0~06在調度器FPGA板上。

圖1 控制平面示意圖
控制平面的幾個重要概念如下:
1) 請求生成。請求控制器讀取HOLO包的目的地,并生成請求,耗時1個網絡接口時鐘周期(Ttx)。
2) 電纜傳播延遲。將帶外數據傳輸至調度器,耗時tcable,該耗時由服務器和交換器之間的電纜延遲決定。請求中僅包含目的地輸出端口和1個有效位,因此可使用并行電連接進行高效傳輸。
3) 請求同步化。實驗演示中,本文假定網絡接口和調度器是異步的(符合當前的商用系統)。請求同步器最壞情況下的延遲(當請求在調度器時鐘邊沿之后稍晚到達時)為2個Tscheduler。
4) 分配。根據當前交換路徑和新請求來確定最優交換配置。分類耗時1個Tscheduler。
5) 交換機配置控制。添加由分配電路制定的新授權,并移除過期授權。新授權用于生成交換配置,包括交換機緩沖器的允許讀取信號。任何未授權信號均會轉化為交換機處數據包緩沖的允許寫入信號[10]。該組件耗時1個Tscheduler加上交換機配置時長tswitch。
本文通過分析控制平面設計的組件,并量化各個組件的延遲,可知總控制延遲隨網絡接口和調度器的時鐘周期Ttx和Tscheduler而變化,最小控制平面延遲是確定的:
tcontrol(min)=Ttx(min)+tcable+4Tscheduler(min)+tswitch
(1)
最小端到端延遲tend-to-end(min)也是確定的。如圖1所示,tend-to-end(min)為以下幾個變量之和:
tend-to-end(min)=tcontrol(min)+tfiber+tserial
(2)
tcontrol(min)、從交換機到接收器的光纖傳輸延遲tfiber,以及在接收器處波長分段數據包的串行化(反串行化)延遲tserial。
最小端到端延遲并不包括交換機處的任何數據包緩沖延遲,因為最小端到端延遲僅在無爭用的情況下出現。tend-to-end(min)以tcontrol(min)為主;當控制平面處理請求時,數據路徑中的相應數據包由網絡接口處的分組控制器持有。當該保護時間過期時,分組控制器釋放該數據包以進行傳輸,以便在其完成配置后立即到達交換機。
本文輸出端口分配電路的簡化框圖如圖2,基于輪轉仲裁原則來執行分配。該電路有兩個流水線階段,即2個時鐘周期分配(包括交換機配置)。在第一個流水線階段,讀取并寄存兩個請求矩陣,一個用于新服務器請求,另一個用于交換機緩沖器請求。初始,請求按照輸入端口排列,每個請求在log2(N)范圍內,以尋址到目的地輸出端口。因此,每個請求矩陣的大小為Nlog2(N)。第二個流水線階段進行輸出端口仲裁并生成新授權,即分配階段。首先,請求生成器旋轉每個請求矩陣以安排每個輸出端口的請求,以便仲裁器能夠讀取請求,其后將兩個矩陣復用為單個N×N矩陣R。在R矩陣中優先處理來自交換機緩沖器的請求,以保持包順序并降低包延遲。并利用當前授權矩陣的反饋來移除任何已授權的請求。其后,對矩陣R進行分割并饋送到仲裁器,以建立新的N×N授權矩陣G。最后,對G進行反向旋轉,以重新安排每個輸入端口的授權,以待交換機配置控制器使用。

圖2 單階段輸出端口分配電路框圖
最小分配電路時鐘周期對于端到端延遲的下界至關重要。在本文使用的調度器中,雖然分配電路(圖2)為兩階段流水線結構,但需要在單個流水線階段中執行仲裁和新授權生成,由此產生一條很長的關鍵路徑。為此,提出兩階段分配電路,如圖3所示,分配電路設計通過以下方式縮短關鍵路徑。

圖3 兩階段輸出端口分配電路框圖
1) 仲裁和新授權生成分為兩個流水線階段。
2) 以并行的方式分別執行新的服務器請求和來自交換機緩沖器請求。因此避免了為仲裁器生成請求時的復用與優先級邏輯,優先級邏輯被移至第二個流水線階段。
3) 將來自當前授權矩陣的反饋移至第二個流水線階段,并應用于多路復用和新授權優先排序的邏輯。即:過濾掉新授權,而不用刪除已經解析的請求。
由此,仲裁階段的關鍵路徑為:從輸入請求寄存器通過仲裁器之一至仲裁器輸出寄存器,如圖3所示。首先,將兩個輸入請求矩陣Nlog2(N)均輸入請求生成器邏輯中,以轉換為仲裁器可讀格式,請求矩陣擴展為N×N并進行旋轉,以使得按照輸出端口對請求完成分組。然后,將請求矩陣R和R′分別進行分割并饋送到N個N位的仲裁器。并行執行對R和的R′仲裁。寄存兩個輸出授權矩陣G和G′,并在下一個流水線階段將其復用為單個N×N矩陣,優先處理來自交換機緩沖器的請求。來自當前授權矩陣的反饋被用于濾除任何已發放過的授權。最后,使用并行邏輯模塊對復用矩陣進行反向旋轉,按照輸入端口安排授權,然后為服務器請求和來自交換機緩沖器的請求生成N位授權向量。
控制平面實驗包括兩個場景,如圖4所示。圖4(a)是從1個輸入端口向2個輸出端口進行分組交換;圖4(b)是從2個輸入端口向1個輸出端口進行分組交換。
分組發生器每隔48 ns周期性地注入數據包,其目的地在兩個可能的交換機輸出端口之間交替。該實驗旨在驗證分組交換成功率,并測量最小端到端延遲。
1) 控制路徑信號。圖5給出了利用ILA探針在調度器處捕捉到的控制進程的計時。首先輸入請求(探針C0)被成功檢測到(僅顯示有效位)。其后,其在被分配電路(探針C2)檢測到之前,先經歷兩個時鐘周期的同步化階段。最后,再耗費兩個時鐘周期來完成分配并為兩個輸出SOA(探針C4和C6)生成交換機配置信號。配置脈沖的寬度為兩個時鐘周期。如圖5所示,每次只有一個輸出SOA處于活動狀態,由此將數據包交換至對應的輸出端口。數據包在其他每個調度周期中均出現在同一個輸出端口。

圖4 兩個實驗場景示意圖

圖5 調度器處捕捉到的控制進程計時曲線
2) 數據路徑信號。從服務器接口到兩個輸出端口的數據路徑上不同點處的分組計時得出:數據包耗費36 ns離開FPGA,再需要12 ns以到達交換機SOA;其后,需要28 ns到達接收器;然后,接收器處的數據包反串行化耗費6.4 ns。由此得到的端到端延遲為82.4 ns,高于71.0 ns的期望值。
超出的延遲來自控制路徑中額外的PCB軌跡和數據路徑分立組件中的光纖尾纖,使得tcable和tfiber均超過了10 ns。SOA的放大效應使得每次打開SOA時均會出現電壓偏移,該效應一般可通過光濾波器來移除。
場景(b)
該場景中,生成的所有數據包均被發送到相同的輸出端口,但以恒定的時間差饋送到兩個網絡接口。通過數據包的交錯到達,來分析不同網絡接口的數據包之間的最小時間間隔,以測量交換機吞吐量。
1) 控制路徑信號。當調度器將交換機輸出端口依次授權至兩個網絡接口時,其控制進程計時曲線如圖6,可以看出,來自兩個網絡接口(探針C0和C1)的請求以固定時間差到達調度器。由于在每個網絡接口處生成的請求的寬度為12.8 ns,一些請求可能會被寄存兩次(取決于相對調度器時鐘邊沿的到達時間)。此處,調度器將輸出端口(探針C4和C5)授權至最先請求的網絡接口,然后在下一個調度輪中將端口授權至另一個接口。來自兩個網絡接口的請求之間的最小間隔為10Ttx(min)=32 ns。在運行在調度器時鐘周期的ILA上,最小請求間隔為3Tscheduler(min)=28.8 ns。

圖6 調度器對交換機授權的控制進程計時曲線
2) 數據路徑信號。實驗表明:來自不同網絡接口的數據包之間的最小時間間隔為32 ns,主要源自控制平面的異步性。由此,吞吐量為(6.4/32)×100%=20%。利用同步的控制平面,來自不同源的數據包以Tscheduler為間隔,則最大吞吐量為(Tscheduler-tswitch)/Tscheduler×100=69%。
本節基于SV語言[11]開發的網絡模型,研究所提交換機系統的端到端延遲。分別分析了兩種輸出端口分配電路的延遲性能。對32×32的架頂光交換機進行了全尺寸機架規模的網絡仿真,其中包括32個網絡接口和32個交換機緩沖器。為避免100%負載下的丟包情況,每個緩沖器的深度設置為 2 014個分組。假定從機架到交換機的光纖長度為 2 m,從交換機到同一個機架或脊交換機的另一條光纖長度 2 m,波長分段數據包的tserial=6.4 ns,即,對于固定的比特率(例如400 Gb/s),波長數量可能會根據數據包大小而動態變化。該模型捕捉控制平面特性,并添加接收端的總光纖傳輸延遲和數據包反序列化延遲,以計算數據平面中的端到端延遲。
在綜合工作負載下測量延遲性能。對一組(32個)獨立的數據包源進行實例化,每個源基于到達間隔時間分布隨機生成數據包。使用通用負載參數設置時鐘周期中的數據包生成概率,從而控制源運行的容量百分比。其中,100%負載表示在每個時鐘周期內,均生成數據包(沒有時間間斷)。數據包輸出端口目的地是隨機的,且每個包源饋送到一個專用的網絡接口模塊。網絡仿真中使用的參數值如表1所示。
圖7給出了對于單階段和兩階段的兩種分配電路,平均端到端延遲在不同負載下的變化情況。所有端口負載下,兩階段分配設計均取得較優性能。較低負載下,兩種設計的曲線均收斂至期望的最小端到端延遲(式(2))。隨著負載增加,爭用概率上升,更多的數據包在交換機處緩沖,提高了平均端到端延遲。當負載超過50%時,由于大量數據包經歷HOL阻塞,延遲迅速上升。在均勻隨機流量下,兩種分配電路在100%負載下的平均延遲均不超過10 μs。這些結果證明所提方法能夠實現較低負載下的超低延遲交換。這主要得益于推測型傳輸,但會增加高負載下的緩沖。只要交換機緩沖器足夠深(仿真中為 2 014個包),就可以避免丟包。另外,可通過改變交換機處的緩沖器放置來降低高負載下的平均延遲,在每個輸入端口處根據每個輸出端口實施一個虛擬隊列,按照目的地順序存放數據包,從而顯著降低HOL阻塞,由此降低緩沖時間和平均延遲。

表1 網絡模型參數介紹

圖7 端口負載容量與平均端到端延遲關系曲線
圖8給出了50%負載下,兩種分配電路的數據包端到端延遲的累積分布。在10 μs的窗口上,兩種設計均以最小端到端延遲成功接收10%以上的數據包。單階段分配電路的平均端到端延遲為172.5 ns。在該延遲數值下,兩階段分配電路提升了27%的分組交換量。此外,對于單階段和兩階段分配電路,95%的數據包分別在71.2~377.5 ns范圍和 55.2~219.6 ns的范圍內接收,兩階段分配設計降低了158.6 ns的最長可能延遲。

圖8 兩種分配電路的數據包端到端延遲的累積分布曲線
1) 提出了超低延遲控制平面的實施方法,并在32×32的縱橫式光交換機上進行實驗,在數據中心架頂應用中具有重要意義。
2) 提出了一個優化的電路設計,將分配分為兩個階段,縮短了關鍵路徑,改善了調度器可擴展性。
3) 利用推測性傳輸并在交換機輸入處存儲數據包,降低了控制平面延遲,避免了在發送側的授權同步化和處理操作。