荊 倩,沈三民
(中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
近些年,全球數(shù)據(jù)中心網(wǎng)絡(luò)[1]的流量保持超高速增長。根據(jù)思科公司的技術(shù)白皮書,在所有增長率方面,數(shù)據(jù)中心內(nèi)部流量占77%。隨著數(shù)據(jù)中心內(nèi)交換流量的不斷增加,亟需實(shí)現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)更低延遲的互連結(jié)構(gòu)。
傳統(tǒng)的多層拓?fù)浣Y(jié)構(gòu)正在被扁平化的全對(duì)分帶寬架構(gòu)所取代[2],如葉脊式架構(gòu),這種拓?fù)浣Y(jié)構(gòu)支持?jǐn)U展到更高的端口數(shù),同時(shí)提供完整的對(duì)分帶寬。由于所有路徑都是等距的且長度最短,因此,能夠?qū)崿F(xiàn)較低的機(jī)架間延遲[3]。然而,帶寬擴(kuò)展受到電子芯片上高速信號(hào)引腳數(shù)量的限制[4]。利用波分復(fù)用(WDM)技術(shù)的光交換網(wǎng)絡(luò)能夠有效提高傳輸容量的量級(jí),突破對(duì)分帶寬的瓶頸,例如c-Through[5]、ROSA[6]等,這些技術(shù)方案可以增加數(shù)據(jù)中心網(wǎng)絡(luò)的對(duì)分帶寬,降低成本和延遲。在控制平面方面,使用復(fù)雜的調(diào)度算法估計(jì)流量需求可以提高線路利用率,但會(huì)進(jìn)一步增加交換路徑確認(rèn)信令所造成的雙向延遲和處理開銷。
光交換機(jī)能夠處理迅速變換的突發(fā)流量,數(shù)據(jù)包被轉(zhuǎn)發(fā)到交換機(jī)且不用等待確認(rèn)信令,并有效預(yù)測交換路徑。但難題是如何建立能夠在分組時(shí)標(biāo)上操作的控制平面。為了避免對(duì)全局調(diào)度的需求,有些方案[7-8]使用波長路由的光網(wǎng)絡(luò)架構(gòu)。但該類方案的缺點(diǎn)是顯著增加光學(xué)元件數(shù)量,尤其是需要使用成本較高的波長轉(zhuǎn)換設(shè)備。此外,還有基于FPGA的集中式控制平面[9],支持以75 ns的端到端延遲進(jìn)行光分組交換。
本文設(shè)計(jì)了一種高速的控制平面,在FPGA板上實(shí)施了該控制平面,確認(rèn)了端到端延遲和控制平面作用,并分析了實(shí)現(xiàn)最小調(diào)度延遲的難點(diǎn)。實(shí)驗(yàn)表明:通過高速調(diào)度和在并行WDM信道上的預(yù)測性分組傳輸,實(shí)現(xiàn)了納秒級(jí)的分組交換。此外,針對(duì)交換機(jī)調(diào)度器提出了一個(gè)高度并行化輸出端口分配電路設(shè)計(jì),并將該設(shè)計(jì)實(shí)施于同一塊FPGA板上作為實(shí)驗(yàn)調(diào)度器,以量化其對(duì)調(diào)度器延遲和可擴(kuò)展性的提升。
本文提出的系統(tǒng)方法是基于帶電子緩沖器的納秒級(jí)可重構(gòu)N×N光交換機(jī),電子緩沖器作為輸入端口處的先入先出(FIFO)隊(duì)列而實(shí)現(xiàn)。通過與交換機(jī)位于同處的電子調(diào)度器進(jìn)行交換機(jī)配置。在交換機(jī)輸入處實(shí)施緩沖器能夠降低端到端延遲,并避免數(shù)據(jù)包丟失。
本文設(shè)計(jì)的控制平面如圖1所示,包括兩個(gè)FPGA板,由分立光學(xué)元件組成的一個(gè)2×2縱橫式光交換機(jī)。FPGA#1表示服務(wù)器側(cè)的網(wǎng)絡(luò)接口,以時(shí)鐘周期Ttx運(yùn)行;FPGA#2表示位于交換機(jī)的調(diào)度器,以時(shí)鐘周期Tscheduler運(yùn)行??刂破矫嬖趦蓚€(gè)FPGA板上擴(kuò)展;包括網(wǎng)絡(luò)接口中的請(qǐng)求控制器和包控制器,以及調(diào)度器電路。示波器探針D0~D7放置于數(shù)據(jù)路徑上。Xilinx集成邏輯分析儀(ILA)探針C0~06在調(diào)度器FPGA板上。
圖1 控制平面示意圖
控制平面的幾個(gè)重要概念如下:
1) 請(qǐng)求生成。請(qǐng)求控制器讀取HOLO包的目的地,并生成請(qǐng)求,耗時(shí)1個(gè)網(wǎng)絡(luò)接口時(shí)鐘周期(Ttx)。
2) 電纜傳播延遲。將帶外數(shù)據(jù)傳輸至調(diào)度器,耗時(shí)tcable,該耗時(shí)由服務(wù)器和交換器之間的電纜延遲決定。請(qǐng)求中僅包含目的地輸出端口和1個(gè)有效位,因此可使用并行電連接進(jìn)行高效傳輸。
3) 請(qǐng)求同步化。實(shí)驗(yàn)演示中,本文假定網(wǎng)絡(luò)接口和調(diào)度器是異步的(符合當(dāng)前的商用系統(tǒng))。請(qǐng)求同步器最壞情況下的延遲(當(dāng)請(qǐng)求在調(diào)度器時(shí)鐘邊沿之后稍晚到達(dá)時(shí))為2個(gè)Tscheduler。
4) 分配。根據(jù)當(dāng)前交換路徑和新請(qǐng)求來確定最優(yōu)交換配置。分類耗時(shí)1個(gè)Tscheduler。
5) 交換機(jī)配置控制。添加由分配電路制定的新授權(quán),并移除過期授權(quán)。新授權(quán)用于生成交換配置,包括交換機(jī)緩沖器的允許讀取信號(hào)。任何未授權(quán)信號(hào)均會(huì)轉(zhuǎn)化為交換機(jī)處數(shù)據(jù)包緩沖的允許寫入信號(hào)[10]。該組件耗時(shí)1個(gè)Tscheduler加上交換機(jī)配置時(shí)長tswitch。
本文通過分析控制平面設(shè)計(jì)的組件,并量化各個(gè)組件的延遲,可知總控制延遲隨網(wǎng)絡(luò)接口和調(diào)度器的時(shí)鐘周期Ttx和Tscheduler而變化,最小控制平面延遲是確定的:
tcontrol(min)=Ttx(min)+tcable+4Tscheduler(min)+tswitch
(1)
最小端到端延遲tend-to-end(min)也是確定的。如圖1所示,tend-to-end(min)為以下幾個(gè)變量之和:
tend-to-end(min)=tcontrol(min)+tfiber+tserial
(2)
tcontrol(min)、從交換機(jī)到接收器的光纖傳輸延遲tfiber,以及在接收器處波長分段數(shù)據(jù)包的串行化(反串行化)延遲tserial。
最小端到端延遲并不包括交換機(jī)處的任何數(shù)據(jù)包緩沖延遲,因?yàn)樽钚《说蕉搜舆t僅在無爭用的情況下出現(xiàn)。tend-to-end(min)以tcontrol(min)為主;當(dāng)控制平面處理請(qǐng)求時(shí),數(shù)據(jù)路徑中的相應(yīng)數(shù)據(jù)包由網(wǎng)絡(luò)接口處的分組控制器持有。當(dāng)該保護(hù)時(shí)間過期時(shí),分組控制器釋放該數(shù)據(jù)包以進(jìn)行傳輸,以便在其完成配置后立即到達(dá)交換機(jī)。
本文輸出端口分配電路的簡化框圖如圖2,基于輪轉(zhuǎn)仲裁原則來執(zhí)行分配。該電路有兩個(gè)流水線階段,即2個(gè)時(shí)鐘周期分配(包括交換機(jī)配置)。在第一個(gè)流水線階段,讀取并寄存兩個(gè)請(qǐng)求矩陣,一個(gè)用于新服務(wù)器請(qǐng)求,另一個(gè)用于交換機(jī)緩沖器請(qǐng)求。初始,請(qǐng)求按照輸入端口排列,每個(gè)請(qǐng)求在log2(N)范圍內(nèi),以尋址到目的地輸出端口。因此,每個(gè)請(qǐng)求矩陣的大小為Nlog2(N)。第二個(gè)流水線階段進(jìn)行輸出端口仲裁并生成新授權(quán),即分配階段。首先,請(qǐng)求生成器旋轉(zhuǎn)每個(gè)請(qǐng)求矩陣以安排每個(gè)輸出端口的請(qǐng)求,以便仲裁器能夠讀取請(qǐng)求,其后將兩個(gè)矩陣復(fù)用為單個(gè)N×N矩陣R。在R矩陣中優(yōu)先處理來自交換機(jī)緩沖器的請(qǐng)求,以保持包順序并降低包延遲。并利用當(dāng)前授權(quán)矩陣的反饋來移除任何已授權(quán)的請(qǐng)求。其后,對(duì)矩陣R進(jìn)行分割并饋送到仲裁器,以建立新的N×N授權(quán)矩陣G。最后,對(duì)G進(jìn)行反向旋轉(zhuǎn),以重新安排每個(gè)輸入端口的授權(quán),以待交換機(jī)配置控制器使用。
圖2 單階段輸出端口分配電路框圖
最小分配電路時(shí)鐘周期對(duì)于端到端延遲的下界至關(guān)重要。在本文使用的調(diào)度器中,雖然分配電路(圖2)為兩階段流水線結(jié)構(gòu),但需要在單個(gè)流水線階段中執(zhí)行仲裁和新授權(quán)生成,由此產(chǎn)生一條很長的關(guān)鍵路徑。為此,提出兩階段分配電路,如圖3所示,分配電路設(shè)計(jì)通過以下方式縮短關(guān)鍵路徑。
圖3 兩階段輸出端口分配電路框圖
1) 仲裁和新授權(quán)生成分為兩個(gè)流水線階段。
2) 以并行的方式分別執(zhí)行新的服務(wù)器請(qǐng)求和來自交換機(jī)緩沖器請(qǐng)求。因此避免了為仲裁器生成請(qǐng)求時(shí)的復(fù)用與優(yōu)先級(jí)邏輯,優(yōu)先級(jí)邏輯被移至第二個(gè)流水線階段。
3) 將來自當(dāng)前授權(quán)矩陣的反饋移至第二個(gè)流水線階段,并應(yīng)用于多路復(fù)用和新授權(quán)優(yōu)先排序的邏輯。即:過濾掉新授權(quán),而不用刪除已經(jīng)解析的請(qǐng)求。
由此,仲裁階段的關(guān)鍵路徑為:從輸入請(qǐng)求寄存器通過仲裁器之一至仲裁器輸出寄存器,如圖3所示。首先,將兩個(gè)輸入請(qǐng)求矩陣Nlog2(N)均輸入請(qǐng)求生成器邏輯中,以轉(zhuǎn)換為仲裁器可讀格式,請(qǐng)求矩陣擴(kuò)展為N×N并進(jìn)行旋轉(zhuǎn),以使得按照輸出端口對(duì)請(qǐng)求完成分組。然后,將請(qǐng)求矩陣R和R′分別進(jìn)行分割并饋送到N個(gè)N位的仲裁器。并行執(zhí)行對(duì)R和的R′仲裁。寄存兩個(gè)輸出授權(quán)矩陣G和G′,并在下一個(gè)流水線階段將其復(fù)用為單個(gè)N×N矩陣,優(yōu)先處理來自交換機(jī)緩沖器的請(qǐng)求。來自當(dāng)前授權(quán)矩陣的反饋被用于濾除任何已發(fā)放過的授權(quán)。最后,使用并行邏輯模塊對(duì)復(fù)用矩陣進(jìn)行反向旋轉(zhuǎn),按照輸入端口安排授權(quán),然后為服務(wù)器請(qǐng)求和來自交換機(jī)緩沖器的請(qǐng)求生成N位授權(quán)向量。
控制平面實(shí)驗(yàn)包括兩個(gè)場景,如圖4所示。圖4(a)是從1個(gè)輸入端口向2個(gè)輸出端口進(jìn)行分組交換;圖4(b)是從2個(gè)輸入端口向1個(gè)輸出端口進(jìn)行分組交換。
分組發(fā)生器每隔48 ns周期性地注入數(shù)據(jù)包,其目的地在兩個(gè)可能的交換機(jī)輸出端口之間交替。該實(shí)驗(yàn)旨在驗(yàn)證分組交換成功率,并測量最小端到端延遲。
1) 控制路徑信號(hào)。圖5給出了利用ILA探針在調(diào)度器處捕捉到的控制進(jìn)程的計(jì)時(shí)。首先輸入請(qǐng)求(探針C0)被成功檢測到(僅顯示有效位)。其后,其在被分配電路(探針C2)檢測到之前,先經(jīng)歷兩個(gè)時(shí)鐘周期的同步化階段。最后,再耗費(fèi)兩個(gè)時(shí)鐘周期來完成分配并為兩個(gè)輸出SOA(探針C4和C6)生成交換機(jī)配置信號(hào)。配置脈沖的寬度為兩個(gè)時(shí)鐘周期。如圖5所示,每次只有一個(gè)輸出SOA處于活動(dòng)狀態(tài),由此將數(shù)據(jù)包交換至對(duì)應(yīng)的輸出端口。數(shù)據(jù)包在其他每個(gè)調(diào)度周期中均出現(xiàn)在同一個(gè)輸出端口。
圖4 兩個(gè)實(shí)驗(yàn)場景示意圖
圖5 調(diào)度器處捕捉到的控制進(jìn)程計(jì)時(shí)曲線
2) 數(shù)據(jù)路徑信號(hào)。從服務(wù)器接口到兩個(gè)輸出端口的數(shù)據(jù)路徑上不同點(diǎn)處的分組計(jì)時(shí)得出:數(shù)據(jù)包耗費(fèi)36 ns離開FPGA,再需要12 ns以到達(dá)交換機(jī)SOA;其后,需要28 ns到達(dá)接收器;然后,接收器處的數(shù)據(jù)包反串行化耗費(fèi)6.4 ns。由此得到的端到端延遲為82.4 ns,高于71.0 ns的期望值。
超出的延遲來自控制路徑中額外的PCB軌跡和數(shù)據(jù)路徑分立組件中的光纖尾纖,使得tcable和tfiber均超過了10 ns。SOA的放大效應(yīng)使得每次打開SOA時(shí)均會(huì)出現(xiàn)電壓偏移,該效應(yīng)一般可通過光濾波器來移除。
場景(b)
該場景中,生成的所有數(shù)據(jù)包均被發(fā)送到相同的輸出端口,但以恒定的時(shí)間差饋送到兩個(gè)網(wǎng)絡(luò)接口。通過數(shù)據(jù)包的交錯(cuò)到達(dá),來分析不同網(wǎng)絡(luò)接口的數(shù)據(jù)包之間的最小時(shí)間間隔,以測量交換機(jī)吞吐量。
1) 控制路徑信號(hào)。當(dāng)調(diào)度器將交換機(jī)輸出端口依次授權(quán)至兩個(gè)網(wǎng)絡(luò)接口時(shí),其控制進(jìn)程計(jì)時(shí)曲線如圖6,可以看出,來自兩個(gè)網(wǎng)絡(luò)接口(探針C0和C1)的請(qǐng)求以固定時(shí)間差到達(dá)調(diào)度器。由于在每個(gè)網(wǎng)絡(luò)接口處生成的請(qǐng)求的寬度為12.8 ns,一些請(qǐng)求可能會(huì)被寄存兩次(取決于相對(duì)調(diào)度器時(shí)鐘邊沿的到達(dá)時(shí)間)。此處,調(diào)度器將輸出端口(探針C4和C5)授權(quán)至最先請(qǐng)求的網(wǎng)絡(luò)接口,然后在下一個(gè)調(diào)度輪中將端口授權(quán)至另一個(gè)接口。來自兩個(gè)網(wǎng)絡(luò)接口的請(qǐng)求之間的最小間隔為10Ttx(min)=32 ns。在運(yùn)行在調(diào)度器時(shí)鐘周期的ILA上,最小請(qǐng)求間隔為3Tscheduler(min)=28.8 ns。
圖6 調(diào)度器對(duì)交換機(jī)授權(quán)的控制進(jìn)程計(jì)時(shí)曲線
2) 數(shù)據(jù)路徑信號(hào)。實(shí)驗(yàn)表明:來自不同網(wǎng)絡(luò)接口的數(shù)據(jù)包之間的最小時(shí)間間隔為32 ns,主要源自控制平面的異步性。由此,吞吐量為(6.4/32)×100%=20%。利用同步的控制平面,來自不同源的數(shù)據(jù)包以Tscheduler為間隔,則最大吞吐量為(Tscheduler-tswitch)/Tscheduler×100=69%。
本節(jié)基于SV語言[11]開發(fā)的網(wǎng)絡(luò)模型,研究所提交換機(jī)系統(tǒng)的端到端延遲。分別分析了兩種輸出端口分配電路的延遲性能。對(duì)32×32的架頂光交換機(jī)進(jìn)行了全尺寸機(jī)架規(guī)模的網(wǎng)絡(luò)仿真,其中包括32個(gè)網(wǎng)絡(luò)接口和32個(gè)交換機(jī)緩沖器。為避免100%負(fù)載下的丟包情況,每個(gè)緩沖器的深度設(shè)置為 2 014個(gè)分組。假定從機(jī)架到交換機(jī)的光纖長度為 2 m,從交換機(jī)到同一個(gè)機(jī)架或脊交換機(jī)的另一條光纖長度 2 m,波長分段數(shù)據(jù)包的tserial=6.4 ns,即,對(duì)于固定的比特率(例如400 Gb/s),波長數(shù)量可能會(huì)根據(jù)數(shù)據(jù)包大小而動(dòng)態(tài)變化。該模型捕捉控制平面特性,并添加接收端的總光纖傳輸延遲和數(shù)據(jù)包反序列化延遲,以計(jì)算數(shù)據(jù)平面中的端到端延遲。
在綜合工作負(fù)載下測量延遲性能。對(duì)一組(32個(gè))獨(dú)立的數(shù)據(jù)包源進(jìn)行實(shí)例化,每個(gè)源基于到達(dá)間隔時(shí)間分布隨機(jī)生成數(shù)據(jù)包。使用通用負(fù)載參數(shù)設(shè)置時(shí)鐘周期中的數(shù)據(jù)包生成概率,從而控制源運(yùn)行的容量百分比。其中,100%負(fù)載表示在每個(gè)時(shí)鐘周期內(nèi),均生成數(shù)據(jù)包(沒有時(shí)間間斷)。數(shù)據(jù)包輸出端口目的地是隨機(jī)的,且每個(gè)包源饋送到一個(gè)專用的網(wǎng)絡(luò)接口模塊。網(wǎng)絡(luò)仿真中使用的參數(shù)值如表1所示。
圖7給出了對(duì)于單階段和兩階段的兩種分配電路,平均端到端延遲在不同負(fù)載下的變化情況。所有端口負(fù)載下,兩階段分配設(shè)計(jì)均取得較優(yōu)性能。較低負(fù)載下,兩種設(shè)計(jì)的曲線均收斂至期望的最小端到端延遲(式(2))。隨著負(fù)載增加,爭用概率上升,更多的數(shù)據(jù)包在交換機(jī)處緩沖,提高了平均端到端延遲。當(dāng)負(fù)載超過50%時(shí),由于大量數(shù)據(jù)包經(jīng)歷HOL阻塞,延遲迅速上升。在均勻隨機(jī)流量下,兩種分配電路在100%負(fù)載下的平均延遲均不超過10 μs。這些結(jié)果證明所提方法能夠?qū)崿F(xiàn)較低負(fù)載下的超低延遲交換。這主要得益于推測型傳輸,但會(huì)增加高負(fù)載下的緩沖。只要交換機(jī)緩沖器足夠深(仿真中為 2 014個(gè)包),就可以避免丟包。另外,可通過改變交換機(jī)處的緩沖器放置來降低高負(fù)載下的平均延遲,在每個(gè)輸入端口處根據(jù)每個(gè)輸出端口實(shí)施一個(gè)虛擬隊(duì)列,按照目的地順序存放數(shù)據(jù)包,從而顯著降低HOL阻塞,由此降低緩沖時(shí)間和平均延遲。
表1 網(wǎng)絡(luò)模型參數(shù)介紹
圖7 端口負(fù)載容量與平均端到端延遲關(guān)系曲線
圖8給出了50%負(fù)載下,兩種分配電路的數(shù)據(jù)包端到端延遲的累積分布。在10 μs的窗口上,兩種設(shè)計(jì)均以最小端到端延遲成功接收10%以上的數(shù)據(jù)包。單階段分配電路的平均端到端延遲為172.5 ns。在該延遲數(shù)值下,兩階段分配電路提升了27%的分組交換量。此外,對(duì)于單階段和兩階段分配電路,95%的數(shù)據(jù)包分別在71.2~377.5 ns范圍和 55.2~219.6 ns的范圍內(nèi)接收,兩階段分配設(shè)計(jì)降低了158.6 ns的最長可能延遲。
圖8 兩種分配電路的數(shù)據(jù)包端到端延遲的累積分布曲線
1) 提出了超低延遲控制平面的實(shí)施方法,并在32×32的縱橫式光交換機(jī)上進(jìn)行實(shí)驗(yàn),在數(shù)據(jù)中心架頂應(yīng)用中具有重要意義。
2) 提出了一個(gè)優(yōu)化的電路設(shè)計(jì),將分配分為兩個(gè)階段,縮短了關(guān)鍵路徑,改善了調(diào)度器可擴(kuò)展性。
3) 利用推測性傳輸并在交換機(jī)輸入處存儲(chǔ)數(shù)據(jù)包,降低了控制平面延遲,避免了在發(fā)送側(cè)的授權(quán)同步化和處理操作。