毛 臻,張春平,潘福躍,顧 林
(中科芯集成電路有限公司,江蘇無錫 214072)
探針是網(wǎng)絡(luò)測量中的基礎(chǔ)和關(guān)鍵部件,在獲取網(wǎng)絡(luò)數(shù)據(jù)的同時(shí)還要進(jìn)行性能參數(shù)分析,執(zhí)行一種或多種網(wǎng)絡(luò)測量動(dòng)作。探針系統(tǒng)主要由探針硬件平臺、探針軟件平臺、探針應(yīng)用程序三部分組成。早期的國內(nèi)外探針系統(tǒng)硬件平臺主要基于X86架構(gòu)的商業(yè)計(jì)算機(jī)實(shí)現(xiàn),隨著嵌入式硬件系統(tǒng)性能和數(shù)據(jù)處理能力的不斷提高,嵌入式處理器首先在美國CAIDA機(jī)構(gòu)的探針中得到應(yīng)用,由于成本低、功耗低、部署方便,很快得以大規(guī)模普及[1-4]。而隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能技術(shù)的發(fā)展,高帶寬、低延遲、廣部署對探針系統(tǒng)的要求更加迫切。為了解決各芯片間高速互連信號延遲、數(shù)據(jù)吞吐率瓶頸等問題,本文設(shè)計(jì)了一種采用系統(tǒng)級封裝(System in Package,SiP)技術(shù)的探針系統(tǒng)硬件平臺,把現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)集成在網(wǎng)絡(luò)芯片和CPU之間進(jìn)行數(shù)據(jù)預(yù)處理,通過高密度基板互連設(shè)計(jì)使探針系統(tǒng)具備可定制、小體積、低功耗、異構(gòu)集成等特點(diǎn),為網(wǎng)絡(luò)測量探針硬件平臺適應(yīng)新的應(yīng)用提供了一種解決思路。
主動(dòng)網(wǎng)絡(luò)測量技術(shù)首先構(gòu)造出探測報(bào)文序列,通過探針發(fā)送到被測目標(biāo)網(wǎng)絡(luò)中,然后利用被測目標(biāo)的響應(yīng)信息,或者利用探測報(bào)文傳輸經(jīng)過目標(biāo)網(wǎng)絡(luò)后攜帶的信息來測量網(wǎng)絡(luò)性能[1-3],基于群島結(jié)構(gòu)(Archipelago Measurement Infra-Structure,Ark)的主動(dòng)測量架構(gòu)如圖1所示。由于主動(dòng)測量探針部署位置靠近用戶終端,通過主動(dòng)網(wǎng)絡(luò)測量技術(shù),可以進(jìn)行端到端的網(wǎng)絡(luò)路徑性能測量,測量結(jié)果能更直接地反映用戶的網(wǎng)絡(luò)體驗(yàn)。另外,采用分布式部署網(wǎng)絡(luò)探針獲取的測量數(shù)據(jù)有助于管理員獲得對于網(wǎng)絡(luò)整體性能的認(rèn)識。
圖1 基于Ark的主動(dòng)測量架構(gòu)
許多大型的網(wǎng)絡(luò)測量項(xiàng)目由政府或國家機(jī)構(gòu)贊助開發(fā),比如CAIDA就是由美國國土安全部(US Department of Homeland Security,DHS)、國家科學(xué)基金會(huì)(National Science Foundation,NSF)、國防高級研究計(jì)劃局(Defense Advanced Research Projects Agency,DARPA)、圣地亞哥超算中心等部門共同支持建立。截至2019年2月,CAIDA在全球有247個(gè)活動(dòng)探測點(diǎn)[4]。CAIDA的網(wǎng)絡(luò)總體架構(gòu)也稱為群島測量構(gòu)架,其核心服務(wù)器位于圣地亞哥超級計(jì)算機(jī)中心?;谠撓到y(tǒng)的探針從2006年上線以來持續(xù)進(jìn)行改進(jìn),內(nèi)置了域名系統(tǒng)(Domain Name System,DNS)解析分析、網(wǎng)絡(luò)拓?fù)浞治?、Web響應(yīng)分析、Ping時(shí)延分析、路由跟蹤(Traceroute)等多個(gè)工具[5-8]。目前活動(dòng)的網(wǎng)絡(luò)測量項(xiàng)目及探針分析如表1所示。
表1 目前活動(dòng)的網(wǎng)絡(luò)測量項(xiàng)目及探針分析
從表1可以看出,大部分主動(dòng)式網(wǎng)絡(luò)測量項(xiàng)目的探針都是工具軟件加PC端方式,需要臺式機(jī)或筆記本電腦在Widows、MAC OS或Linux中安裝工具軟件運(yùn)行。目前只有RIPE Atlas、CAIDA的Archipelago和Polaris是嵌入式軟硬件結(jié)合的探針。
完成網(wǎng)絡(luò)性能參數(shù)測量是探針的基本功能[9]。探針需要進(jìn)行高速率的發(fā)送分組或者高速捕獲分組并進(jìn)行統(tǒng)計(jì)分析,探針CPU的處理能力、網(wǎng)絡(luò)接口的吞吐能力決定了探針的主要性能[10-11]。
CAIDA的主動(dòng)網(wǎng)絡(luò)探針采用了軟硬件開源的樹莓派2B,該探針的主控采用BCM2836四核Cortex-A7 900 MHz的片上系統(tǒng)(System on Package,SoC)。整個(gè)樹莓派2B的尺寸為85 mm×56 mm×17 mm,板上除主控芯片外,還有一顆10/100自適應(yīng)以太網(wǎng)和USB2.0 PHY二合一芯片以及一顆1 GB內(nèi)存芯片。樹莓派2B能運(yùn)行全系列ARMGNU/Linux發(fā)行版,支持Snappy Ubuntu Core,單線程滿載運(yùn)行情況下功耗小于5 W。
本設(shè)計(jì)中的國產(chǎn)化網(wǎng)絡(luò)測量探針芯片集成了CAIDA探針系統(tǒng)除電源芯片外的大部分芯片。采用SiP技術(shù)的探針芯片,從探針系統(tǒng)基本要求和關(guān)鍵技術(shù)出發(fā),從架構(gòu)實(shí)現(xiàn)、國產(chǎn)化器件選型、SiP實(shí)現(xiàn)、性能指標(biāo)分析和軟件配套等幾個(gè)方面進(jìn)行詳細(xì)設(shè)計(jì)。
在分布式網(wǎng)絡(luò)測量過程中,由于探針分布在不同的地區(qū),探針之間時(shí)鐘不同步會(huì)引起測量誤差,時(shí)鐘同步能保證如端到端時(shí)延性能等指標(biāo)測量的準(zhǔn)確性[12]。針對Web服務(wù)器性能進(jìn)行的測量,需要探針能夠產(chǎn)生高速分組數(shù)據(jù)流。TCP/IP協(xié)議負(fù)載分析測量需要進(jìn)行校驗(yàn)和的計(jì)算、數(shù)據(jù)搬移和TCP/IP協(xié)議處理[10]。除以上指標(biāo)外,網(wǎng)絡(luò)接口吞吐能力和CPU的處理能力也是探針設(shè)計(jì)的關(guān)鍵指標(biāo)。由于需要監(jiān)控網(wǎng)絡(luò)性能和網(wǎng)絡(luò)運(yùn)行健康狀態(tài),需要探針能夠在高速捕獲網(wǎng)絡(luò)數(shù)據(jù)分組的同時(shí),同步進(jìn)行一些統(tǒng)計(jì)分析。在探針設(shè)計(jì)時(shí)加入高性能FPGA芯片,利用FPGA可配置、并行計(jì)算的特點(diǎn),完成網(wǎng)卡分組數(shù)據(jù)的預(yù)處理,包括分組捕獲、解包、過濾、歸類等。經(jīng)過FPGA預(yù)處理后的數(shù)據(jù)再通過PCIe或芯片內(nèi)部總線(如ZYNQ系列的AXI總線)高速傳輸給CPU,這樣的處理架構(gòu)降低了CPU的處理負(fù)擔(dān),大大提高了探針的網(wǎng)絡(luò)接口吞吐量和系統(tǒng)性能[10-11]。
針對4.1節(jié)提出的探針功能需求和關(guān)鍵技術(shù)指標(biāo)要求同時(shí)兼顧可擴(kuò)展性,基于SiP技術(shù)的國產(chǎn)化網(wǎng)絡(luò)探針芯片采用CPU+FPGA的處理架構(gòu)。其中CPU選擇自帶以太網(wǎng)媒體接入控制器(Media Access Control,MAC)的芯片,物理層收發(fā)器(Physical Layer transceiver,PHY)不是直接和MAC對接,而是由FPGA轉(zhuǎn)接。實(shí)驗(yàn)證明由FPGA控制MAC可以提升約20 Mb/s的發(fā)送速率,在捕獲模式下,由FPGA對數(shù)據(jù)包進(jìn)行預(yù)處理,如對包頭進(jìn)行信息的預(yù)處理和錯(cuò)誤包、碎片包的分組等,可以提高分組捕獲分析能力和網(wǎng)絡(luò)接口吞吐率[10]。由于本探針芯片已集成了傳統(tǒng)探針系統(tǒng)的大部分功能芯片,所以基于SiP技術(shù)的探針芯片即代表了整個(gè)探針系統(tǒng)的性能,表2為采用本設(shè)計(jì)的探針與CAIDA的探針性能對比。DMIPS(Dhrystone Million Instructions Executed per Second)主要用于測整數(shù)計(jì)算能力,一個(gè)處理器達(dá)到1 DMIPS的性能是指這個(gè)處理器測整數(shù)計(jì)算能力為每秒1×106條指令。
表2 采用SiP芯片的探針與CAIDA的探針性能比較
從表2可以看出,內(nèi)部集成FPGA邏輯單元的處理器架構(gòu)是本設(shè)計(jì)與CAIDA探針芯片最大的區(qū)別,CPU和CAIDA探針內(nèi)部的四核ARM Cortex-A7性能相當(dāng)。除處理器和FPGA外,本探針芯片內(nèi)部還集成了2顆國產(chǎn)DDR3裸芯片,型號為43-46TR16512BL,總?cè)萘繛? GB,比CAIDA探針的內(nèi)存擴(kuò)大1倍。為增加網(wǎng)口吞吐率,芯片內(nèi)部集成了國產(chǎn)千兆以太網(wǎng)PHY裸芯片J88E1111,與CAIDA探針的百兆接口相比,可以大大提高網(wǎng)口傳輸速率,適應(yīng)更多網(wǎng)絡(luò)測量應(yīng)用場景。圖2為本探針芯片的內(nèi)部架構(gòu)框圖。為方便應(yīng)用,本芯片內(nèi)部還集成了系統(tǒng)加載用國產(chǎn)Flash,裸芯片型號為FM25F128。內(nèi)部集成該Flash后無須像CAIDA探針一樣外插SD卡,在提高系統(tǒng)可靠性的同時(shí),還可以大大縮小整個(gè)探針的硬件體積。
圖2 探針芯片內(nèi)部架構(gòu)
由于主動(dòng)網(wǎng)絡(luò)測量需要嚴(yán)格的時(shí)間同步,因此系統(tǒng)中本地時(shí)鐘模塊的振蕩器最好采用溫度補(bǔ)償晶振,但是一般在SiP設(shè)計(jì)中,為提高整體系統(tǒng)可靠性,晶振均采用芯片外配置的設(shè)計(jì),不考慮集成在SiP芯片內(nèi)部。
在系統(tǒng)級封裝設(shè)計(jì)前,需要進(jìn)行系統(tǒng)功能和性能的原型驗(yàn)證,即在PCB板上采用成品芯片進(jìn)行電氣互連,以驗(yàn)證系統(tǒng)功能和互連的正確性以及接口預(yù)留的合理性,原型驗(yàn)證完成后裸芯片選型也同步確定。
原型驗(yàn)證完成后,進(jìn)入系統(tǒng)級封裝設(shè)計(jì)階段。由于DDR3、網(wǎng)口PHY裸芯片和Flash裸芯片原PAD分布為wirebonding形式,需要先將再布線工藝(Redistribution Layer,RDL)轉(zhuǎn) 換 為 倒 裝 工 藝(Flip-Chip,F(xiàn)C),與其他FC裝片的裸芯片和阻容一起在塑封基板上進(jìn)行回流焊,從而實(shí)現(xiàn)電氣互連。為進(jìn)一步減小整個(gè)探針芯片的面積,將DDR3兩顆裸芯片進(jìn)行三維堆疊后首先形成微組件。一顆微組件由兩片512M×16 bit的裸芯片堆疊組成32 bit位寬的內(nèi)存芯片。由于DDR3裸芯片PAD分布方便向中間開槽進(jìn)行鍵合,所以RDL其實(shí)是把中間的兩排PAD通過再布線技術(shù)扇出到芯片一邊,在DDR3微組件基板堆疊時(shí)交錯(cuò)放置,并分別向兩邊進(jìn)行wirebonding。圖3為RDL和兩層wirebonding堆疊示意圖。
圖3 RDL和兩層wirebonding堆疊示意圖(側(cè)視)
經(jīng)過以上設(shè)計(jì),整個(gè)探針芯片的系統(tǒng)級封裝由兩顆RDL轉(zhuǎn)FC的裸芯片、一個(gè)兩片DDR3堆疊后的微組件、一顆FC形式的SoC裸芯片以及若干阻容組裝在塑封基板上完成。設(shè)計(jì)完成后的尺寸為30 mm×30 mm,封裝形式為PBGA484,圖4為封裝示意圖。
圖4 封裝示意圖(單位:mm)
在-10~120℃環(huán)境溫度條件下,對SiP整體結(jié)構(gòu)進(jìn)行自然散熱仿真模擬,其中,SiP總功耗為4.92 W。已知硅芯片的失效溫度為175℃(考慮仿真誤差,一般將結(jié)溫控制在150℃以內(nèi))。仿真結(jié)果顯示,在120℃條件下,硅芯片均不會(huì)失效,SiP能正常運(yùn)行。120℃條件下的熱仿真結(jié)果如圖5所示。
圖5 120℃環(huán)境溫度時(shí)SiP熱仿真結(jié)果
探針芯片設(shè)計(jì)完成后,需要配套相應(yīng)的軟件工具。目前大部分的探針類工具軟件都是運(yùn)行于開源的操作系統(tǒng)上,多基于Ruby和Python進(jìn)行開發(fā),其工具本身也是開源的。常用的探針芯片采用Linux操作系統(tǒng),系統(tǒng)層包括嵌入式Linux操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序和優(yōu)化的TCP/IP協(xié)議棧。TCP/IP協(xié)議棧的優(yōu)化主要根據(jù)硬件平臺功能,簡化分組數(shù)據(jù)校驗(yàn)和的計(jì)算,根據(jù)RISC微處理器的特點(diǎn)優(yōu)化一些程序數(shù)據(jù)處理的方法,并向上層提供標(biāo)準(zhǔn)的Socket編程接口[13-14]。常用的測量對象和對應(yīng)模型、協(xié)議或算法見表3。
表3 測量對象和對應(yīng)模型、協(xié)議或算法
本探針芯片內(nèi)部集成了可編程邏輯單元,因此可以在可編程邏輯(Programmable Logic,PL)端借助已有IP進(jìn)行接口擴(kuò)展和數(shù)據(jù)并行預(yù)處理等操作。由于不能采用通用的MAC IP,網(wǎng)絡(luò)接口還需要采用Verilog硬件描述語言進(jìn)行定制。在處理系統(tǒng)(Processing System,PS)端進(jìn)行操作系統(tǒng)的安裝,PL端的數(shù)據(jù)和PS端的數(shù)據(jù)通過AXI總線進(jìn)行交互[15]。
本文基于SiP技術(shù)和已有的國產(chǎn)化裸芯片進(jìn)行國產(chǎn)化網(wǎng)絡(luò)測量探針芯片系統(tǒng)級設(shè)計(jì)。與國外的分布式網(wǎng)絡(luò)測量用探針相比,使用本設(shè)計(jì)作為主控的探針具有體積小、重量輕、集成度高、芯片全國產(chǎn)化等特點(diǎn)。同時(shí),基于本設(shè)計(jì)的探針,工具軟件可以全部固化后分發(fā),并支持遠(yuǎn)程喚醒、遠(yuǎn)程調(diào)試以及遠(yuǎn)程固件升級等,使得部署、維護(hù)和使用成本大大降低。全國產(chǎn)化網(wǎng)絡(luò)測量用探針芯片在采用系統(tǒng)級封裝技術(shù)實(shí)現(xiàn)體積縮小、性能提高的同時(shí),可以從芯片級層面保證一些敏感性網(wǎng)絡(luò),如校內(nèi)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、政務(wù)專網(wǎng)、軍用專網(wǎng)等網(wǎng)絡(luò)測量過程中數(shù)據(jù)收集的安全和保密。