劉汝霖,楊 惠,李 韜,呂高鋒,孫志剛
(國防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073)
隨著車載、航空航天等裝備平臺信息化、智能化程度的不斷演進(jìn),各類接入設(shè)備的數(shù)目顯著增加,承載功能組件間互聯(lián)任務(wù)的網(wǎng)絡(luò)設(shè)備的重要性愈發(fā)凸顯。為了應(yīng)對網(wǎng)絡(luò)流量的增長,裝備平臺網(wǎng)絡(luò)逐步由傳統(tǒng)總線網(wǎng)絡(luò)向以太網(wǎng)為核心的混合網(wǎng)絡(luò)轉(zhuǎn)變[1]。在這一過程中,有針對性地瞄準(zhǔn)裝備平臺網(wǎng)絡(luò)在物理特征、性能需求等方面的特點(diǎn)來開發(fā)以太網(wǎng)交換芯片具有十分重要的意義。
具體而言,裝備平臺開發(fā)時(shí)面臨眾多的約束條件,如便攜裝備要求整體體積盡量小,應(yīng)盡量縮小器件體積,減少部署所需器件數(shù)量,同時(shí)也對低功耗提出了極端苛求。
其次,裝備平臺的業(yè)務(wù)流量相對數(shù)據(jù)中心場景仍較小。以車載平臺網(wǎng)絡(luò)為例,自動(dòng)駕駛、車載影音系統(tǒng)的功能所需的高清攝像頭、各種雷達(dá)等產(chǎn)生的網(wǎng)絡(luò)流量僅在100 Gbps量級[2]。
第三,由于裝備平臺的功能碎片化程度高,但同時(shí)裝機(jī)量較少,無法吸引大型廠商根據(jù)需求進(jìn)行交換芯片的業(yè)務(wù)定制。采用FPGA或CPU的解決方案在處理速度和功耗方面很難滿足需求。博通、美滿等商用解決方案主要針對數(shù)據(jù)中心、云計(jì)算等場景進(jìn)行設(shè)計(jì),且出于市場等原因,往往更強(qiáng)調(diào)大規(guī)模極高帶寬網(wǎng)絡(luò)的交換和對已有網(wǎng)絡(luò)協(xié)議的廣泛支持,能效比較差。
另外,傳統(tǒng)的網(wǎng)絡(luò)交換芯片在設(shè)計(jì)時(shí)針對特定的網(wǎng)絡(luò)環(huán)境,其報(bào)文解析器的流程和行為是固定的,在面對新的網(wǎng)絡(luò)協(xié)議時(shí)無法提供正確的解析。為了提高芯片的靈活性,提出了協(xié)議無關(guān)的可編程解析器設(shè)計(jì),如XILINX Packet Parser[3]、可重構(gòu)匹配表RMT(Reconfigurable Match Table)[4]等。不同方案均采用了可編程的解析器,用戶通過設(shè)置解析偏移量,來選擇將報(bào)文的哪些字段進(jìn)行提取并提交給后續(xù)的查表、動(dòng)作處理等流程??删幊探馕銎魈嵘司W(wǎng)絡(luò)交換芯片的靈活性,滿足現(xiàn)有網(wǎng)絡(luò)協(xié)議及新協(xié)議的需求。然而,可編程解析器需要消耗大量的硬件資源和時(shí)序周期,當(dāng)前商用的可編程交換芯片普遍功耗較高且編程行為復(fù)雜,導(dǎo)致上層的配置軟件相對繁瑣,不便于用戶使用。
綜上所述,為了滿足裝備平臺對高能效、高靈活性、易用性及后期更新升級的便捷性需求,本文設(shè)計(jì)并流片生產(chǎn)了可編程、低功耗的敏捷交換芯片YHHX-DS160。本文主要內(nèi)容總結(jié)如下:
(1)提出了一種協(xié)議無關(guān)的交換芯片實(shí)現(xiàn)架構(gòu),采用可編程的協(xié)議無關(guān)多級匹配-動(dòng)作MMA(Multiple Match &Action)流水線實(shí)現(xiàn)對現(xiàn)有網(wǎng)絡(luò)協(xié)議和用戶自定義協(xié)議的支持。與其它芯片采用可編程解析器的設(shè)計(jì)不同,該流水線架構(gòu)通過掩碼方式將解析和匹配過程相融合,降低了硬件邏輯和使用配置的復(fù)雜度,并大幅提高了能效比。
(2)提出了一種輕量級的多鏈配置結(jié)構(gòu),基于二層報(bào)文的管理協(xié)議能夠有效簡化配置邏輯的復(fù)雜度,支持遠(yuǎn)程配置、無CPU的輕量級配置等模式。
(3)面向裝備平臺定制了160 Gbps交換帶寬的可編程、低功耗的交換芯片并完成了流片驗(yàn)證,實(shí)測全接口線速最大功耗為6.6 W,能效比達(dá)到了24 Gbps/W。芯片支持帶內(nèi)遠(yuǎn)程配置和無配置CPU的輕量化配置模式,可面向各類裝備平臺提供低功耗、高性能、高靈活度的端到端網(wǎng)絡(luò)交換解決方案。
針對裝備平臺的芯片架構(gòu)如圖 1所示,包括接口處理邏輯、可編程多級匹配-動(dòng)作流水線邏輯、輕量級管理配置邏輯、敏捷交換協(xié)議處理邏輯等。
芯片接口包括接口物理層硬件和接口數(shù)字處理邏輯。其中,接口物理層硬件實(shí)現(xiàn)以太網(wǎng)協(xié)議(如GMII、10GBASER/KR)、總線協(xié)議(如SPI、IIC)等模擬信號與芯片內(nèi)部數(shù)字?jǐn)?shù)據(jù)總線之間的轉(zhuǎn)換。接口數(shù)字處理邏輯則實(shí)現(xiàn)報(bào)文的初步過濾、分類、分撒等功能。其中,輸入接口邏輯主要實(shí)現(xiàn)對報(bào)文進(jìn)行CRC校驗(yàn)、規(guī)則過濾、端口報(bào)文匯聚等操作。輸出接口邏輯根據(jù)輸出端口號將報(bào)文分撒到對應(yīng)接口。
本文架構(gòu)中,報(bào)文在流水線中會(huì)攜帶一個(gè)長度為32 B的數(shù)據(jù)結(jié)構(gòu)(元數(shù)據(jù)),用于記錄報(bào)文狀態(tài)、歷史匹配情況、待執(zhí)行的動(dòng)作等信息。如圖 2所示,元數(shù)據(jù)包含用戶自定義字段、報(bào)文類型字段、查表控制使能、動(dòng)作處理使能、報(bào)文長度字段、輸入端口號、輸出端口號等內(nèi)容。
圖1中可編程協(xié)議無關(guān)匹配-動(dòng)作流水線可分為查表匹配階段和動(dòng)作處理階段。與其它可編程芯片不同,本文的芯片架構(gòu)并沒有包含獨(dú)立的可編程解析器模塊,而是嘗試將解析過程和查表過程相融合。通過帶掩碼的超長內(nèi)容匹配,在1個(gè)時(shí)鐘周期內(nèi)即可得到匹配結(jié)果并完成對元數(shù)據(jù)的更新。同時(shí),解析與匹配相融合的機(jī)制將多級表項(xiàng)間的查表匹配過程解耦,匹配動(dòng)作與各字段在報(bào)文中的順序無關(guān)。通過這種設(shè)計(jì),既可以滿足裝備平臺對可編程的需求,又消除了可編程解析器對硬件資源和時(shí)序周期的大量消耗,提高了能效比,并減輕了用戶使用時(shí)的配置復(fù)雜度。
Figure 1 Architecture of chip圖1 芯片架構(gòu)
Figure 3 Match-Action pipeline圖3 匹配-動(dòng)作流水線
Figure 4 Format of management packet圖4 管理報(bào)文格式
Figure 5 Structure of multi-chain management configuration圖5 多鏈管理配置結(jié)構(gòu)
Figure 6 Agile switch chip YHHX-DS160圖6 敏捷交換芯片YHHX-DS160
Figure 7 Test environment of switch chip圖7 交換芯片測試環(huán)境
具體而言,查表關(guān)鍵字為64 B報(bào)文頭和32 B元數(shù)據(jù),可以覆蓋絕大部分現(xiàn)有協(xié)議的頭部信息。查表前未經(jīng)過任何解析邏輯,能夠大幅減少報(bào)文解析所需的時(shí)間周期,同時(shí)保障對于任何單一或多字段的匹配均消耗固定時(shí)長,以保障報(bào)文處理過程的確定性。
報(bào)文分組在流水線中經(jīng)歷多級查表匹配、一次動(dòng)作處理MMA。在查表匹配階段,每一級表將表項(xiàng)與報(bào)文頭部字段和元數(shù)據(jù)進(jìn)行匹配,根據(jù)結(jié)果對元數(shù)據(jù)進(jìn)行更新。匹配方式可分為通配匹配和精確匹配,表的級數(shù)根據(jù)實(shí)際需要可進(jìn)行串聯(lián)擴(kuò)展。在完成多級查表之后,動(dòng)作處理階段則根據(jù)元數(shù)據(jù)中的各使能開關(guān)完成對報(bào)文的處理。匹配-動(dòng)作流水線的工作行為如圖 3所示。
芯片所定義的匹配過程(Match)包括:
(1)將報(bào)文前64 B和32 B查表結(jié)果作為關(guān)鍵字進(jìn)行通配匹配查表;
(2)將報(bào)文前64 B和32 B查表結(jié)果作為關(guān)鍵字進(jìn)行精確匹配查表。
芯片所定義的動(dòng)作過程(Action)包括:負(fù)載均衡,根據(jù)流ID或優(yōu)先級對數(shù)據(jù)流進(jìn)行限速,以及報(bào)文修改等。
具體而言,通配匹配流程偽代碼如算法1所示。每級通配匹配表包含M條表項(xiàng),每一條表項(xiàng)都具有獨(dú)立的匹配掩碼。掩碼的作用等價(jià)于報(bào)文解析,將所關(guān)心的字段掩碼有效,其它字段掩碼無效。通過配置掩碼即可實(shí)現(xiàn)可編程的協(xié)議無關(guān)匹配。在通配匹配過程中,表項(xiàng)和匹配掩碼的一一對應(yīng),每一條表項(xiàng)都可獨(dú)立形成一級查表,通過字段的正交組合極大擴(kuò)展了表項(xiàng)的實(shí)際覆蓋范圍。
Algorithm 1 Ternary Match AlgorithmInput:pkt_header(64 B),metadata(32 B),match_field[M](96 B),key_mask[M](96 B),result[M](32 B),result_mask(32 B),default_result(32 B)。Output:metadata(32 B)。Process: for i=0 to M do key_in={pkt_header,metadata}; key_m=AND(key_in,key_mask); match_field_m=AND(match_field[i],key_ mask); if (key_m == match_field_m) metadata=(result[i] & result_mask) | (metadata&~result_mask); else metadata=metadata; if (metadata.finish) break; end for metadata=(default_result & result_mask) | (metadata&~result_mask);end process
精確匹配采用哈希匹配的方式,每級共用一個(gè)匹配掩碼,可為同一字段的匹配提供大量表項(xiàng)。精確匹配查表流程偽代碼如算法2所示。
Algorithm 2 Exact Match AlgorithmInput:pkt_header(64 B),metadata(32 B),key_mask(96 B),result_mask(32 B)。Output:metadata(32 B)。Process: key_in={pkt_header,metadata}; key_m=AND(key_in,key_mask); address=hash(key_m); //read RAM with address to get match_field and result if (key_m == match_field) metadata=(result & result_mask) | (metadata&~result_mask); else metadata=metadata;end process
精確匹配對查表關(guān)鍵字進(jìn)行哈希計(jì)算,將結(jié)果作為地址對存儲(chǔ)有表項(xiàng)內(nèi)容和結(jié)果的RAM進(jìn)行訪問。如果查表關(guān)鍵字與RAM中存儲(chǔ)的表項(xiàng)內(nèi)容完全一致,則認(rèn)為匹配成功,將結(jié)果做掩碼后更新元數(shù)據(jù)。
相對通配匹配而言,精確匹配查表的HASH計(jì)算值為N-bit地址,即單次可對2N條表項(xiàng)進(jìn)行索引,極大加快了查表速度。
在查表匹配階段,僅64 B的報(bào)文頭部和32 B的元數(shù)據(jù)組成的查表關(guān)鍵字在流水線中流轉(zhuǎn),完整的原始報(bào)文則存儲(chǔ)在緩存FIFO(First Input First Output)中,這種集中緩存的結(jié)構(gòu)可降低因報(bào)文分組遷移所產(chǎn)生的延時(shí)和功耗。
查表匹配階段完成后為動(dòng)作處理階段,動(dòng)作處理引擎從集中緩存中取出報(bào)文,并根據(jù)32 B元數(shù)據(jù)中動(dòng)作使能字段、報(bào)文長度字段等對報(bào)文進(jìn)行相應(yīng)處理。芯片的動(dòng)作處理引擎可獨(dú)立實(shí)現(xiàn)流限速、DMAC(Destination Media Access Control)/SMAC(Source Media Access Control)替換、VLAN(Virtual Local Area Network)標(biāo)簽的添加/刪除/替換、敏捷協(xié)議封裝、管理配置協(xié)議封裝、負(fù)載均衡、PTP相關(guān)功能等功能。
敏捷交換架構(gòu)中,芯片與外部控制部件之間采用基于二層以太網(wǎng)報(bào)文的輕量級管理控制協(xié)議,管理控制報(bào)文可通過以太網(wǎng)接口、IIC(Inter- Integrated Circuit)接口、SPI(Serial Peripheral Interface)接口等對芯片進(jìn)行訪問?;诙拥呐渲脠?bào)文協(xié)議能夠有效降低管理控制器的復(fù)雜度,可通過可編程器件等實(shí)現(xiàn)無配置CPU的輕量級管理。
配置報(bào)文格式包括了二層頭、報(bào)文序列號、讀寫類型、連續(xù)讀寫標(biāo)識、配置鏈MID(Module ID)、寄存器地址和寄存器值等。其中,報(bào)文二層頭中的目的MAC地址、MID、寄存器地址用于定位待訪問的寄存器;讀寫類型標(biāo)識當(dāng)前報(bào)文是讀請求、讀響應(yīng)、寫請求、寫響應(yīng)等類型;連續(xù)讀寫標(biāo)識則根據(jù)寄存器地址作為首地址,進(jìn)行連續(xù)讀寫;寄存器值則與讀寫類型的具體情況有關(guān)。
對某個(gè)寄存器的訪問經(jīng)歷以下3次尋址:
(1)芯片的接口邏輯根據(jù)目的MAC地址判斷是否對本文芯片進(jìn)行配置,如果是則送至芯片內(nèi)部管理配置模塊;否則按規(guī)則進(jìn)行查表轉(zhuǎn)發(fā)。
(2)芯片的配置譯碼邏輯根據(jù)MID決定送往哪一條配置鏈的哪個(gè)硬件模塊。
(3)根據(jù)寄存器地址、讀寫類型、配置對硬件模塊內(nèi)部寄存器進(jìn)行訪問。
如果接口判斷當(dāng)前配置報(bào)文需要對本文芯片進(jìn)行配置,會(huì)將該報(bào)文送入配置管理模塊。芯片內(nèi)部配置網(wǎng)絡(luò)采用多鏈結(jié)構(gòu),如圖 5所示。配置請求報(bào)文在經(jīng)過配置譯碼邏輯后,被送入不同的配置鏈。配置鏈的劃分主要根據(jù)功能的耦合關(guān)系,如接口模塊采用一條配置鏈,查表邏輯采用一條配置鏈。在每條配置鏈內(nèi)部,由于芯片設(shè)計(jì)中常采用不同來源的IP,配置接口存在差異,于是將硬件模塊配置接口通過適配模塊接入配置鏈。由此,如果將配置網(wǎng)絡(luò)中的譯碼邏輯看作樹根,配置鏈可作為樹枝,而硬件模塊內(nèi)各寄存器則為配置葉節(jié)點(diǎn)。這種樹狀多鏈結(jié)構(gòu)可有效縮短管理控制邏輯鏈條的長度,提高配置效率,避免了總線型結(jié)構(gòu)的多扇出問題和環(huán)形結(jié)構(gòu)的長延時(shí)問題,也便于后端實(shí)現(xiàn)布局布線。
由于芯片可以對配置報(bào)文進(jìn)行轉(zhuǎn)發(fā),該機(jī)制可以支持遠(yuǎn)程訪問,通過一臺控制終端實(shí)現(xiàn)對整個(gè)二層網(wǎng)絡(luò)域內(nèi)所有交換芯片的配置。
在OpenFlow架構(gòu)中,元數(shù)據(jù)是對外部不可見的,僅用于內(nèi)部表項(xiàng)間的信息交互。本文為了進(jìn)一步增強(qiáng)芯片的靈活性,設(shè)計(jì)了敏捷交換協(xié)議,可將內(nèi)部查表過程產(chǎn)生的元數(shù)據(jù)信息隨報(bào)文攜帶出芯片。外部通過提取元數(shù)據(jù)信息可以獲取該報(bào)文的查表結(jié)果、動(dòng)作處理歷史等信息。另外,利用元數(shù)據(jù)中的用戶自定義字段,將預(yù)置信息在查表匹配成功后更新到元數(shù)據(jù)中,以實(shí)現(xiàn)豐富的自定義功能。如,預(yù)先填入流標(biāo)簽信息可以實(shí)現(xiàn)流映射功能;針對芯片組件的多節(jié)點(diǎn)網(wǎng)絡(luò),預(yù)先填入節(jié)點(diǎn)編號,可以獲取報(bào)文路由信息。根據(jù)元數(shù)據(jù)中攜帶的信息不同,敏捷交換協(xié)議可實(shí)現(xiàn)數(shù)據(jù)狀態(tài)的隨流檢測、流映射、查表協(xié)處理等功能。本文4.2節(jié)介紹了基于敏捷交換協(xié)議的隨流檢測的例子。
基于敏捷交換協(xié)議,芯片不僅可作為獨(dú)立的交換芯片使用,也可作為查表協(xié)處理器、動(dòng)作執(zhí)行器等與外部FPGA、CPU等設(shè)備進(jìn)行協(xié)作。更進(jìn)一步,基于先進(jìn)的多芯片封裝技術(shù),芯片可作為芯?;?Chiplet)的基本單元支持構(gòu)建功能更加復(fù)雜的芯片。
圖 1架構(gòu)圖中的敏捷交換協(xié)議解封裝和敏捷交換協(xié)議封裝2個(gè)模塊提供了對自定義的敏捷交換協(xié)議報(bào)文的支持。其中,敏捷交換封裝模塊位于輸出接口邏輯之前,將元數(shù)據(jù)封裝在原始報(bào)文的報(bào)文頭部形成敏捷交換報(bào)文;解封裝模塊則位于輸入接口邏輯之后,負(fù)責(zé)從封裝報(bào)文中獲取元數(shù)據(jù)信息。對于不包含元數(shù)據(jù)的標(biāo)準(zhǔn)以太網(wǎng)報(bào)文,解封裝模塊可通過實(shí)際的輸入端口號、報(bào)文長度構(gòu)造一個(gè)新的元數(shù)據(jù)用于后續(xù)流水線操作。
基于上述架構(gòu),本文流片生產(chǎn)了面向裝備平臺的可編程、低功耗的銀河衡芯敏捷交換芯片YHHX-DS160,如圖 6所示。芯片采用676引腳BGA封裝,尺寸為27 mm*27 mm,全接口線速交換最大功耗僅6.6 W,交換能效比達(dá)到了24 Gbps/W。DS160芯片屬于銀河衡芯芯片譜系。該譜系已發(fā)布了敏捷交換芯片DS40[5]、時(shí)間敏感網(wǎng)絡(luò)芯片DS09[6]等。
根據(jù)裝備平臺對高速以太網(wǎng)接口和輕量化配置的需求,芯片物理層接口提供16路10 GE高速以太網(wǎng)數(shù)據(jù)接口、1組千兆媒體無關(guān)接口GMII(Gigabit Media Independent Interface)數(shù)據(jù)接口、1組SPI配置接口、1組IIC配置接口。其中,10 GE高速以太網(wǎng)接口采用內(nèi)置串并轉(zhuǎn)換器SerDes (Serializer-Deserializer)的集成化設(shè)計(jì),免除了對外置物理層設(shè)置PHY(port PHYsical layer)的需求。另外,16路接口可分為4組,每組4路10 GE接口可聚合形成一組40 GE接口。芯片全部40 GE/10 GE接口和GMII接口均支持帶內(nèi)配置方式,可同時(shí)收發(fā)配置報(bào)文和數(shù)據(jù)報(bào)文。SPI和IIC等慢速接口則僅用于管理配置。板級實(shí)現(xiàn)時(shí),可將配置信息寫入外置可編程邏輯器件EPLD (Erasable Programmable Logic Device),以實(shí)現(xiàn)上電自配置功能,實(shí)現(xiàn)無需專用配置CPU的輕量化管理模式。另外,配置報(bào)文可通過網(wǎng)絡(luò)交換節(jié)點(diǎn)進(jìn)行傳輸,以實(shí)現(xiàn)遠(yuǎn)程配置。
為滿足各類裝備平臺對表項(xiàng)的需求,芯片包含了8級通配匹配和4級精確匹配。每級通配匹配具有16條表項(xiàng),8級通配表共計(jì)128條表項(xiàng)。每級精確匹配具有2 000條表項(xiàng),4級通配表共計(jì)8 000條表項(xiàng)。所有表項(xiàng)均支持可編程的協(xié)議無關(guān)配置,極具靈活性。
芯片在使用時(shí),需要對匹配表項(xiàng)和表項(xiàng)的掩碼寄存器進(jìn)行配置。為便于用戶開發(fā)使用,芯片提供了將底層細(xì)節(jié)屏蔽的配套軟件,包括通用的表項(xiàng)配置接口API、通用表項(xiàng)字段的結(jié)構(gòu)體和常見IP報(bào)文匹配字段結(jié)構(gòu)體。用戶首先對結(jié)構(gòu)體成員進(jìn)行賦值,再將結(jié)構(gòu)體傳遞給表項(xiàng)配置API,由API函數(shù)完成寄存器讀寫報(bào)文的構(gòu)造和解析。
芯片測試環(huán)境如圖 7所示,其中芯片測試板對外提供1路千兆以太網(wǎng)RJ-45接口、8個(gè)10 GE SFP接口、2組4通道SFP QSFP(Quad Small Form-factor Pluggable)接口。千兆RJ-45接口通過網(wǎng)線與配置PC相連;10 GE/40 GE接口通過光纖與網(wǎng)絡(luò)測試儀相連。
測試內(nèi)容包括帶寬測試、延時(shí)特征測試、功耗測試、基本查表功能、動(dòng)作執(zhí)行、敏捷交換協(xié)議報(bào)文封裝測試等。下文將對其中部分測試項(xiàng)進(jìn)行詳細(xì)說明。
根據(jù)RFC 2544對芯片各接口線速進(jìn)行測試,測試選取64 B, 128 B, 256 B, 512 B, 1 024 B, 1 280 B, 1 518 B以及隨機(jī)長度的報(bào)文,通過測試儀以接口的標(biāo)稱線速(千兆接口為1 Gbps, 10 GE接口標(biāo)稱線速為10 Gbps, 40 GE接口標(biāo)稱線速為40 Gbps)進(jìn)行測試,測試結(jié)果無丟包情況。不同報(bào)文長度的測試案例均可達(dá)到160 Gbps的全端口線速。
測試過程中選定1組40 GE/10 GE接口,網(wǎng)絡(luò)測試儀收發(fā)固定長度的報(bào)文,并統(tǒng)計(jì)延時(shí)。
圖8所示為無背景流影響時(shí)的芯片交換延時(shí)??梢钥闯?40 GE接口和10 GE接口的轉(zhuǎn)發(fā)延時(shí)均與報(bào)文長度呈現(xiàn)正相關(guān)性,增長斜率上10 GE接口的比40 GE接口的大,且10 GE接口對64 B和128 B長度的小報(bào)文收發(fā)延時(shí)低于40 GE接口的,但在收發(fā)256 B及更長報(bào)文時(shí)的延時(shí)高于40 GE接口的。該趨勢是端口存儲(chǔ)報(bào)文延時(shí)和鏈路速率差異共同作用的結(jié)果:一方面,由于接口采用了存儲(chǔ)轉(zhuǎn)發(fā)方式,40 GE接口的鏈路速率更高,其收集完整報(bào)文所需的時(shí)間較10 GE接口的要短;另一方面,40 GE接口的報(bào)文處理邏輯較10 GE接口的長,報(bào)文延時(shí)更高。
Figure 8 Transmission delay of 40 GE/10 GE圖8 40 GE/10 GE接口延時(shí)
另外,由于芯片流水線中的動(dòng)作處理階段及接口匯聚分撒流水線階段均采用了存儲(chǔ)轉(zhuǎn)發(fā)方式,長報(bào)文經(jīng)過多次存儲(chǔ)也會(huì)導(dǎo)致延時(shí)升高,圖8中延時(shí)隨報(bào)文長度變化的趨勢也反映了這一點(diǎn)。
對于裝備平臺設(shè)備,尤其是嵌入式設(shè)備而言,功耗是比較重要的指標(biāo)。本節(jié)對DS160芯片的功耗進(jìn)行分析。芯片具有3類電源域:IO電源域、10 GE/40 GE高速以太網(wǎng)接口電源域、芯片內(nèi)部邏輯電源域。芯片上電后的典型待機(jī)功耗(Standby Power)為5.8 W,3類電源域的待機(jī)功耗分別為1.95 W, 2.2 W和1.65 W。
為了分析動(dòng)態(tài)功耗,本文將全端口線速工況下的功耗與無報(bào)文收發(fā)情況下的待機(jī)功耗進(jìn)行了對比,如圖 9所示。可以看出,全端口線速下的動(dòng)態(tài)功耗為6.6 W,相對待機(jī)功耗增加了0.8 W,一個(gè)合理的解釋是芯片采用了門控時(shí)鐘機(jī)制,在無報(bào)文收發(fā)的情況下部分邏輯未產(chǎn)生功耗。
進(jìn)一步的測試中,減小了芯片的核心工作頻率。實(shí)驗(yàn)結(jié)果表明,芯片動(dòng)態(tài)功耗和待機(jī)功耗都有不同程度的降低,但降幅不明顯。如圖 9所示,芯片的核心頻率從500 MHz(核心處理帶寬160 Gbps)降至125 MHz(核心處理帶寬40 Gbps),核心處理帶寬下降了75%,待機(jī)功耗和動(dòng)態(tài)功耗僅降低了0.26 W和0.65 W。
需要特別指出的是,圖9的數(shù)據(jù)中I/O電源域和10 GE/40 GE高速以太網(wǎng)電源域的功耗值幾乎不變,即所有功耗的變化幾乎都來自于芯片內(nèi)部報(bào)文處理邏輯。這是因?yàn)閷τ诟咚僖蕴W(wǎng)接口而言,即使其模擬鏈路上沒有有效數(shù)據(jù)傳輸,仍會(huì)以10.312 5 Gbps的速率發(fā)送鏈路空閑信息,導(dǎo)致功耗幾乎不變。
Figure 9 Relationship between core frequency and chip power consumption圖9 核心頻率與芯片功耗的關(guān)系
在實(shí)際使用場景中,并非總是會(huì)用盡芯片的接口資源,因此可采用關(guān)閉部分接口的方式進(jìn)一步降低功耗。測試結(jié)果表明,每關(guān)閉1路10 GE收發(fā)通路可降低功耗約0.14 W。且由于端口總帶寬減小,可相應(yīng)調(diào)整核心頻率,在保證剩余端口滿足線速的情況下,盡可能減小功耗。如圖 10所示為根據(jù)開啟接口數(shù)目調(diào)整核心處理頻率后的功耗變化趨勢。圖10中,數(shù)據(jù)點(diǎn)選擇開啟16路,12路,8路和4路10 GE接口,將核心頻率調(diào)整為500 MHz, 360 MHz, 250 MHz和125 MHz,核心處理能力達(dá)到了160 Gbps, 120 Gbps, 80 Gbps和40 Gbps。
Figure 10 Relationship between chip port state and power consumption圖10 芯片接口狀態(tài)與功耗的關(guān)系
根據(jù)功耗測試結(jié)果可知,DS160芯片相對于100 Gbps級別的其它交換芯片具有較高的能效比。另外,由于該芯片為試制芯片,I/O中包含大量的調(diào)測試引腳,導(dǎo)致了較高的功耗,后續(xù)芯片設(shè)計(jì)將采用寄存器代替I/O硬連線方式,能效比還會(huì)得到進(jìn)一步提高。
為了說明本文芯片特點(diǎn),如協(xié)議無關(guān)匹配動(dòng)作流水線進(jìn)行報(bào)文轉(zhuǎn)發(fā)、敏捷交換協(xié)議的優(yōu)勢等,本節(jié)對典型的業(yè)務(wù)應(yīng)用進(jìn)行舉例說明。
由于DS160芯片流水線沒有報(bào)文解析器的參與,對于報(bào)文轉(zhuǎn)發(fā)而言,表項(xiàng)掩碼一次性標(biāo)識所有參與匹配字段。對于L2/L3層的轉(zhuǎn)發(fā)而言,即通過掩碼將目的MAC DMAC、源MAC SMAC(Source Media Access Control)、報(bào)文類型(TYPE字段)、五元組信息等字段置為有效即可。
如圖 11所示為基于DMAC地址進(jìn)行匹配的示意圖。由于DMAC位于L2層以太網(wǎng)報(bào)文的前48 bit,因此設(shè)置查表掩碼與DMAC對應(yīng)的48 bit位值為1,其它位置均為0。由報(bào)文前64 B和32 B元數(shù)據(jù)組成的查表關(guān)鍵字在掩碼作用下,僅就DMAC字段進(jìn)行匹配,圖11中假設(shè)表項(xiàng)2匹配成功。下一步,根據(jù)結(jié)果掩碼的設(shè)置,以表項(xiàng)2結(jié)果中的輸出端口號字段更新元數(shù)據(jù),并結(jié)束本級查表。
Figure 11 Example of L2 packet forwarding圖11 L2層報(bào)文轉(zhuǎn)發(fā)示例
敏捷交換芯片DS160芯片具有豐富的表項(xiàng)資源和報(bào)文處理動(dòng)作支持,可用于構(gòu)建網(wǎng)絡(luò)設(shè)備的交換核心,同時(shí)基于敏捷交換協(xié)議可以將查表結(jié)果、用戶自定義信息在數(shù)據(jù)路徑的前后級模塊間傳遞,加強(qiáng)了前后級處理單元的協(xié)作能力,可支持包括帶內(nèi)檢測等在內(nèi)的一系列新功能的實(shí)現(xiàn)。
帶內(nèi)檢測主要針對傳統(tǒng)網(wǎng)絡(luò)遙測過程中業(yè)務(wù)故障被動(dòng)檢測、定位效率低下等問題,通過在報(bào)文內(nèi)部添加標(biāo)記信息等方式實(shí)現(xiàn)隨流檢測?;贒S160的帶內(nèi)檢測解決方案如圖 12所示。帶內(nèi)檢測流程可分為故障上報(bào)、鏈路檢測配置、檢測結(jié)果收集和檢測結(jié)果輸出4個(gè)階段。在第1階段中,任意節(jié)點(diǎn)均可發(fā)出故障上報(bào)請求,圖11中假設(shè)接入設(shè)備處發(fā)現(xiàn)報(bào)文丟失,將故障發(fā)送到管理服務(wù)器。
在第2階段中,由管理服務(wù)器執(zhí)行鏈路檢測相關(guān)配置,具體是針對待檢測的報(bào)文開啟敏捷交換協(xié)議封裝,查表匹配邏輯則針對敏捷交換協(xié)議封裝報(bào)文進(jìn)行統(tǒng)計(jì)計(jì)數(shù)。根據(jù)報(bào)文數(shù)守恒原則,在一條鏈路上,端到端之間收發(fā)報(bào)文數(shù)相等,如果某個(gè)節(jié)點(diǎn)出現(xiàn)擁塞或其它原因?qū)е碌膩G包,那么該節(jié)點(diǎn)及后續(xù)節(jié)點(diǎn)報(bào)文的計(jì)數(shù)值會(huì)變小。由此,通過對各個(gè)節(jié)點(diǎn)接收到的敏捷交換協(xié)議封裝報(bào)文進(jìn)行計(jì)數(shù),可以推斷鏈路故障發(fā)生的節(jié)點(diǎn)位置。另外,針對有多條流需要檢測的情況,可通過元數(shù)據(jù)中的用戶自定義字段進(jìn)行流區(qū)分。
啟動(dòng)報(bào)文帶內(nèi)檢測后,經(jīng)過一段時(shí)間的數(shù)據(jù)收集進(jìn)入檢測第3階段。第3階段中,管理服務(wù)器關(guān)閉敏捷交換報(bào)文封裝功能,并對各節(jié)點(diǎn)接收到的封裝報(bào)文進(jìn)行匯總分析,通過報(bào)文數(shù)守恒原則確定故障發(fā)生的節(jié)點(diǎn),并將結(jié)果以可視化的方式呈現(xiàn)給系統(tǒng)管理員(即圖12中的④),然后進(jìn)行下一步處理。
Figure 12 Schematic diagram of in-band detection圖12 帶內(nèi)檢測流程示意圖
商用的可編程交換芯片往往采用軟件或硬件的方式實(shí)現(xiàn)靈活的可定制處理方法,如Intel Tofino系列芯片、BroadCom BCM5340X系列芯片、Intel NFP-6xxx系列芯片等。相對于軟件處理方式,硬件可編程的交換能夠?qū)崿F(xiàn)更好的處理性能、更低的線速功耗;相對地,軟件方式可以實(shí)現(xiàn)更復(fù)雜的報(bào)文處理。
Tofino交換芯片面向數(shù)據(jù)中心等場景提供Tbps量級的交換容量。采用硬件RMT架構(gòu),支持無語義的協(xié)議無關(guān)匹配-動(dòng)作(Match-Action)模型。報(bào)文進(jìn)入RMT流水線后通過可編程解析器提取并匹配報(bào)文關(guān)鍵字段,隨后送入超長指令執(zhí)行單元構(gòu)成的動(dòng)作處理器對報(bào)文進(jìn)行處理。通過多級解析器和動(dòng)作處理器的級聯(lián)實(shí)現(xiàn)復(fù)雜報(bào)文處理功能。
BCM5340X系列交換芯片提供160 Gbps的交換容量,采用將常見的固定數(shù)據(jù)報(bào)文字段匹配和基于通用處理器的軟件自定義處理方式相結(jié)合的架構(gòu),在兼顧硬件交換性能的基礎(chǔ)上,提供部分可編程支持。
Intel NFP-6xxx系列芯片則通過集成多核處理器,將任務(wù)分割到多個(gè)完全可編程的、分工具體的處理內(nèi)核中。這種方式能夠處理極其復(fù)雜的報(bào)文處理流程,但由于采用多核處理器,其功耗較高,以240 Gbps的6324型號芯片為例,其典型功耗高達(dá)102 W。
與上述芯片相比,本文提出的DS160芯片采用純硬件的方式實(shí)現(xiàn)協(xié)議無關(guān)超長字節(jié)匹配處理。與Tofino芯片不同,DS160面向裝備平臺設(shè)計(jì),不追求超大交換容量和過于復(fù)雜的可編程性,采用相對簡化的多級查表匹配、一次動(dòng)作處理的模型,在提供靈活可編程功能的同時(shí)有效降低芯片功耗,能效比顯著優(yōu)于當(dāng)前主流的商用芯片的。同時(shí),DS160支持遠(yuǎn)程配置、無CPU的輕量級配置等模式,可有效簡化配置邏輯的復(fù)雜度。另外,敏捷交換協(xié)議封裝可在支持標(biāo)準(zhǔn)以太網(wǎng)報(bào)文交換的同時(shí)提供更多的擴(kuò)展功能。
針對裝備平臺面臨的功耗受限、體積受限、功能碎片化、硬件升級困難等制約因素,本文提出了可編程、低功耗的敏捷交換芯片架構(gòu),并流片生產(chǎn)了具有160 Gbps全線速交換帶寬的DS160芯片,能效比達(dá)到24 Gbps/W。該芯片可提供數(shù)目充足的可編程的協(xié)議無關(guān)匹配表項(xiàng),支持各類現(xiàn)有協(xié)議和自定義協(xié)議,支持遠(yuǎn)程配置和無CPU的輕量級配置模式,為上層應(yīng)用提供精細(xì)化流映射,可面向各類裝備平臺提供低功耗、高性能、高靈活的端到端網(wǎng)絡(luò)交換解決方案。