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