加速架構(gòu)實踐)
NXP LS1046A 硬件方案 LS1046AFPGA 異構(gòu)加速架構(gòu)實踐標簽LS1046ADPAA2FPGA異構(gòu)工業(yè)網(wǎng)關(guān)SerDesPCIe3.0網(wǎng)絡(luò)處理器?閱讀時長10 分鐘 摘要LS1046A 作為 NXP Layerscape 系列高性能多核網(wǎng)絡(luò)處理器廣泛應(yīng)用于工業(yè)網(wǎng)關(guān)、網(wǎng)絡(luò)安全、邊緣轉(zhuǎn)發(fā)設(shè)備。本文基于 LS1046A 單機完整硬件設(shè)計針對大流量 DPI、工業(yè)協(xié)議硬解析、國密加速等 CPU 瓶頸場景給出LS1046A 外接 FPGA 協(xié)處理的異構(gòu)實現(xiàn)方案對比兩種架構(gòu)差異整理 RCW、SerDes、電源時序等實際項目踩坑點。0 前言最近在做工業(yè)網(wǎng)絡(luò)設(shè)備方案評估拿到一份ZAA1204h_30G的 LS1046A 硬件原理圖。LS1046A 搭載 8 核 Cortex?A72內(nèi)置 DPAA2 報文加速引擎多路 SerDes 可靈活配置為 RGMII/SGMII/PCIe/SATA天生適合做多網(wǎng)口嵌入式網(wǎng)絡(luò)設(shè)備。實際項目落地過程會發(fā)現(xiàn)單純依靠 ARM 內(nèi)核 DPAA2處理深度報文解析、EtherCAT/Profinet 工業(yè)協(xié)議解析、國密流水線加密業(yè)務(wù)時大流量下 CPU 占用率會快速觸頂性能遇到明顯瓶頸。 因此就有了LS1046A FPGA 兩片式異構(gòu)加速的架構(gòu)思路。重要提醒LS1046A 不是 Zynq 系列ARM 與 FPGA 是兩顆獨立芯片依靠 PCIe SerDes 高速互聯(lián)和 Zynq 片內(nèi) AXI 總線架構(gòu)有本質(zhì)區(qū)別會引入 PCIe 傳輸延遲。1 LS1046A 單機硬件整體架構(gòu)參考原理圖硬件框架整機由處理器核心、DDR4 內(nèi)存、多路千兆 PHY、存儲子系統(tǒng)、高速外設(shè)、PMIC 電源樹、復(fù)位管理、調(diào)試接口組成。1.1 處理器核心單元器件型號LS1046A?SN8Q1A8 核 Cortex?A72主頻最高 1.8GHz內(nèi)置 DPAA2 網(wǎng)絡(luò)數(shù)據(jù)包加速引擎硬件支持 IEEE1588 PTP 時間同步。系統(tǒng)差分時鐘DIFF_SYSCLK100MHz 差分系統(tǒng)時鐘PCB 要求差分阻抗 100Ω差分對內(nèi)嚴格等長盡量減少過孔降低時鐘抖動。RTC 模塊32.768KHz 外部低速晶振搭配外置 RTC 芯片實現(xiàn)掉電時間保持。JTAG 調(diào)試接口標準 CPU JTAG用于 RCW 配置燒寫、U?Boot 固件調(diào)試關(guān)鍵引腳增加上拉電阻。??RCW 配置字是 LS1046A 的靈魂SerDes 通道分配、DDR 參數(shù)、啟動介質(zhì)選擇全部由 RCW 決定RCW 配置錯誤會直接導(dǎo)致板子無法啟動。1.2 內(nèi)存與啟動存儲子系統(tǒng)DDR4 內(nèi)存支持 DDR4?UDIMM 內(nèi)存條板載 SPD EEPROMI2C 地址0x51硬件支持 ECC 糾錯工業(yè)產(chǎn)品建議啟用 ECC 提升長期運行穩(wěn)定性。電源濾波電容必須緊貼電源引腳擺放DDR 地址、數(shù)據(jù)信號嚴格做等長匹配。啟動介質(zhì)QSPI NOR Flash存放 RCW 配置、U?Boot 一級引導(dǎo)程序eMMC / NAND Flash存放 Linux 系統(tǒng)鏡像、業(yè)務(wù)應(yīng)用、運行日志IFC 并行接口可擴展外接 NOR/NAND Flash作為備選啟動介質(zhì)。1.3 網(wǎng)絡(luò)子系統(tǒng)RTL8211FSI?VS?CG PHY硬件一共引出 5 路千兆以太網(wǎng)混合 RGMII 與 SGMII 模式PHY 地址分別為 1/2/3/4/5所有 PHY 共享一組 MDC/MDIO 管理總線中斷信號為低電平有效向 CPU 上報鏈路狀態(tài)、PHY 異常告警。表格網(wǎng)口工作模式硬件說明EC1RGMII1RJ45 電口 / SFP 光口二選一EC2RGMII2RJ45 千兆電口EC3SGMII1SerDes 輸出 SGMII 千兆EC4SGMII2SerDes 輸出 SGMII 千兆EC5SGMII3SerDes 輸出 SGMII 千兆??PCB 硬性約束來自原理圖注釋硬件設(shè)計必看PHYDVDD33電源走線寬度≥40milREG_OUT輸出走線≥60milLx 功率電感、輸入輸出濾波電容距離 PHY 引腳控制在 200mil 以內(nèi)功率回路盡量放在同一層DVDD33、REG_OUT走線盡量禁止打過孔LDO 輸出濾波電容選用 X5R 材質(zhì)陶瓷電容保證 PHY 內(nèi)置 LDO 穩(wěn)定工作。網(wǎng)口配置 Link/Activity 雙色指示燈硬件支持 IEEE1588 時間戳。1.4 高速外設(shè)接口PCIe3.0 x2SerDes 通道引出底板默認轉(zhuǎn)為 M.2 Key?M 接口用于 NVMe 固態(tài)硬盤該通道是外接 FPGA 的核心高速通道。SATA3.0LS1046A 內(nèi)置 SATA 控制器外接 2.5 寸 SATA 硬盤用于數(shù)據(jù)包抓包、大容量日志存儲。USB3.0兩路 USB3.0 接口增加 ESD 浪涌保護一路 Micro?B 作為系統(tǒng) Console 調(diào)試口一路標準 USB可外接 4G/5G 通信模塊、U 盤。UART串口控制臺Linux 系統(tǒng)調(diào)試。風(fēng)扇接口CPU 風(fēng)扇、機箱風(fēng)扇插座支持 PWM 調(diào)速。1.5 電源與復(fù)位系統(tǒng)整機供電輸入12V DC 適配器最大 9A 輸出主 PMICMC34VR500搭配 RTQ2820、RT6252、LTC 系列 DCDC/LDO 芯片電源域CPU 核心 VDD、DDR4 1.2V、IO 1.8V、外設(shè) 3.3V電流監(jiān)測INA220I2C 地址 0x40采集 CPU 供電電壓電流用于系統(tǒng)監(jiān)控與過流保護PowerGood 信號各路電源 PG 信號參與整機復(fù)位邏輯嚴格遵守 LS1046A 上電時序要求。復(fù)位樹設(shè)計CPU PORESET、HRESET、PHY 復(fù)位、eMMC 復(fù)位通過SN74LVC07、SN74LVC1G08緩沖驅(qū)動各路復(fù)位信號保障上電、掉電復(fù)位時序。1.6 基礎(chǔ)軟件棧RCW 硬件配置字U?Boot 二級引導(dǎo)NXP SDK Linux 內(nèi)核DPAA2 網(wǎng)絡(luò)驅(qū)動業(yè)務(wù)應(yīng)用轉(zhuǎn)發(fā)網(wǎng)關(guān)、防火墻、PTP 時間同步、工業(yè)協(xié)議轉(zhuǎn)換。?單機適用場景普通工業(yè)網(wǎng)關(guān)、多網(wǎng)口路由器、協(xié)議轉(zhuǎn)換器 ?存在短板高流量下深度報文處理、自定義算法會帶來很高 CPU 負載。2 進階方案LS1046A FPGA 異構(gòu)加速架構(gòu)2.1 架構(gòu)分工思想LS1046A主控端運行 Linux 操作系統(tǒng)完成業(yè)務(wù)配置管理、存儲控制、上層業(yè)務(wù)邏輯、對外業(yè)務(wù)接口FPGA協(xié)處理端依靠硬件流水線完成報文預(yù)處理、協(xié)議解析、加解密運算、硬件時間戳打標數(shù)據(jù)交互鏈路PCIe3.0 x2/x4采用 DMA 方式完成高速數(shù)據(jù)傳輸。兩種硬件改造方案對比表格方案實現(xiàn)說明適用場景方案 A低成本改版復(fù)用現(xiàn)有 PCIe3.0 x2 通道直連 FPGA原 NVMe 改用 SATA 固態(tài)SerDes 通道不新增分配基于現(xiàn)有底板二次改版控制硬件成本方案 B性能最優(yōu)修改 RCW 重新分配 SerDes 資源分配 PCIe x4 給 FPGA保留 M.2 NVMe 接口追求 PCIe 帶寬PCB 改動大2.2 FPGA 側(cè)可以實現(xiàn)的功能報文硬件預(yù)處理五元組匹配、流量整形、硬件抓包卸載 DPAA2 的處理壓力工業(yè)協(xié)議硬件解析Modbus、EtherCAT、Profinet 硬件解析直接提取業(yè)務(wù)數(shù)據(jù)點國密硬件流水線AES、SM2/SM3/SM4 硬件加速多路 IEEE1588 硬件時間戳打標IO 擴展FPGA 擴展 LVDS、高速 AD/DA 等外部工業(yè)接口。2.3 軟硬件交互邏輯高速數(shù)據(jù)通道 PCIe DMAFPGA 將處理后的報文 DMA 寫入 LS1046A 內(nèi)存LS1046A 向 FPGA 下發(fā)流表、配置寄存器低速控制通路GPIO / I2CFPGA 中斷信號經(jīng)過電平轉(zhuǎn)換接入 LS1046A 外部中斷FPGA 復(fù)位信號納入整機復(fù)位樹統(tǒng)一管控軟件驅(qū)動層Linux 實現(xiàn) PCIe 驅(qū)動使用 UIO 字符設(shè)備用戶態(tài)訪問 FPGA 寄存器打通 DPAA2 與 FPGA 之間的數(shù)據(jù)流。2.4 硬件改版關(guān)鍵注意點RCW 配置修改SerDes 通道從 M.2 切換為 FPGA PCIe同步修改 PLL 參數(shù)RCW 配置錯誤會直接造成 SerDes 通道失效FPGA 獨立電源域FPGA 各路電源 PG 信號接入整機復(fù)位時序獨立 FPGA?JTAG 調(diào)試接口與 LS1046 的 JTAG 分開方便分別調(diào)試FPGA 中斷信號做電平轉(zhuǎn)換匹配 LS1046 IO 電平時鐘來源FPGA 可以使用獨立晶振也可以復(fù)用 LS1046 輸出的差分參考時鐘。3 兩種架構(gòu)綜合對比表格對比項LS1046A 單機方案LS1046A FPGA 異構(gòu)方案開發(fā)難度低基于 NXP SDK 純 Linux 開發(fā)中等FPGA 邏輯 Linux PCIe 驅(qū)動雙開發(fā)報文處理性能DPAA28 核 A72復(fù)雜業(yè)務(wù)受 CPU 瓶頸限制FPGA 硬件流水線大流量、低延遲場景性能優(yōu)秀業(yè)務(wù)靈活性軟件迭代快高負載業(yè)務(wù) CPU 占用高硬件負責(zé)加速策略規(guī)則支持軟件動態(tài)配置BOM 物料成本較低增加 FPGA 芯片整體 BOM 上升典型產(chǎn)品應(yīng)用普通工業(yè)網(wǎng)關(guān)、路由轉(zhuǎn)發(fā)硬件 DPI 網(wǎng)關(guān)、工業(yè)實時協(xié)議網(wǎng)關(guān)、國密網(wǎng)絡(luò)設(shè)備、輕量級 UPF4 項目踩坑清單生產(chǎn)調(diào)試重點RCW 與 SerDes 資源沖突SerDes 通道是復(fù)用資源PCIe / SGMII / SATA 互相搶占通道硬件接口改動RCW 必須同步更新否則 SerDes 無法工作。上電時序風(fēng)險LS1046A 與 FPGA 兩套獨立電源域PowerGood 信號必須接入復(fù)位樹防止電源未穩(wěn)定器件提前啟動。PCIe 信號完整性PCIe 差分信號阻抗嚴格控制 85Ω差分對內(nèi)等長盡量減少過孔保障高速通信穩(wěn)定性。PTP 時間同步硬件時間同步鏈路需要控制時鐘布線路徑降低相位偏移。整機散熱評估LS1046A 八核 A72 本身功耗不低疊加 FPGA 后整機功耗明顯上漲散熱片、風(fēng)扇方案需要重新評估。5 總結(jié)LS1046A 是一款綜合能力很強的網(wǎng)絡(luò)處理器依靠原生外設(shè)完全可以直接實現(xiàn)多千兆工業(yè)網(wǎng)關(guān)產(chǎn)品。 當(dāng)業(yè)務(wù)面對大流量深度報文解析、自定義工業(yè)協(xié)議、國密硬件加速等需求時可以充分利用芯片 SerDes 資源外接 FPGA 協(xié)處理器搭建 ARMFPGA 異構(gòu)平臺。既保留 LS1046 成熟 Linux 軟件生態(tài)同時獲得 FPGA 硬件并行加速能力。