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