基于PCIe的智能處理系統(tǒng)研究
引言
人工智能是集合眾多方向的綜合性學(xué)科,在諸多應(yīng)用領(lǐng)域均取得了顯著成果[1]。隨著航空領(lǐng)域人工智能技術(shù)研究的不斷深入,面向開放式機(jī)載智能交互場景,人工智能的應(yīng)用可解決諸多問題。例如智能感知、輔助決策等,可利用人工智能算法對多源傳感器捕獲的海量信息進(jìn)行快速處理,僅將處理后的感知結(jié)果反饋給飛行員,從而降低飛行員的任務(wù)負(fù)荷;利用人工智能算法開展航路規(guī)劃、應(yīng)激決策等多種智能輔助任務(wù),幫助飛行員做出最優(yōu)決策?;陲w行決策的及時(shí)性、實(shí)時(shí)性要求,大帶寬、高性能和高效率特性已經(jīng)成為智能處理模塊的高速數(shù)據(jù)傳輸總線的基本要求。
PCIe是第三代高性能串行互聯(lián)高速總線,它具有傳輸速度快、節(jié)點(diǎn)獨(dú)享帶寬、可靈活擴(kuò)展等諸多優(yōu)點(diǎn)[2],同時(shí)支持PCIe協(xié)議交換芯片多端口的特性使其在數(shù)據(jù)傳輸上打破了以往單一的傳輸方式,將多個(gè)具有PCIe接口的設(shè)備相互連接,即實(shí)現(xiàn)網(wǎng)狀的拓?fù)浣Y(jié)構(gòu),使得各掛載的設(shè)備可以自由通信[3]。
本文介紹了一種智能處理系統(tǒng)及其硬件設(shè)計(jì),該設(shè)計(jì)以PCIe為主要通信總線,連接處理板卡、智能板卡、FC板卡,PCIe交換芯片作為通信的橋梁,能夠可靠地執(zhí)行各主從設(shè)備間數(shù)據(jù)互通工作,穩(wěn)定高效地完成信息收發(fā)、通用處理、智能運(yùn)算等工作,已在航空領(lǐng)域得到了驗(yàn)證及應(yīng)用。
1 PCIe總線介紹
PCIe總線是目前主流的高速數(shù)據(jù)傳輸總線,采用由Intel于1997年提出的第3代I/o互聯(lián)標(biāo)準(zhǔn),是一種已得到廣泛應(yīng)用的成熟總線技術(shù)[4]。
PCIe由分層的體系結(jié)構(gòu)組成,由下至上依次為物理層(Physical Layer,PHY)、數(shù)據(jù)鏈路層(Data Link Layer,DL)、事務(wù)層(Transaction Layer,TL)。PCIe總線通過數(shù)據(jù)包傳送的形式實(shí)現(xiàn)數(shù)據(jù)收發(fā)。TLP(Transaction Layer Packet)的包頭用于區(qū)分事務(wù)種類及確定當(dāng)前TLP的路由信息等一系列信息[4-5]。傳輸過程中的信息都需以該數(shù)據(jù)包的格式進(jìn)行封裝,但其中只有TLP頭與有效數(shù)據(jù)載荷是由用戶層進(jìn)行添加的,其余內(nèi)容由數(shù)據(jù)鏈路層以及PCIe物理層額外添加至TLP上。PCIe統(tǒng)一的TLP傳輸模式保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和完整性[6]。
PCIe總線采用差分LVDS串行方式進(jìn)行數(shù)據(jù)傳輸,由兩對LVDS差分信號線完成一條鏈路的接收和發(fā)送。
PCIe通信采用點(diǎn)—點(diǎn)的傳輸技術(shù),能夠?yàn)橄到y(tǒng)內(nèi)設(shè)備安排獨(dú)立的通道,充分保障通信帶寬,提高傳輸速率[7]。
同時(shí),PCIe通信可以實(shí)現(xiàn)設(shè)備的并行工作,數(shù)據(jù)通道可以根據(jù)具體需要配置成×1、×2、×4等線寬,具備很好的靈活性[8],滿足不同設(shè)備不同線寬的通信要求。
2系統(tǒng)結(jié)構(gòu)
智能處理模塊應(yīng)用于航空領(lǐng)域的方向可分為感知類智能算法和決策類智能算法,模塊主要根據(jù)具體軟硬件需求開展智能處理工作?;谏鲜鰞深悜?yīng)用,智能處理模塊可提供神經(jīng)網(wǎng)絡(luò)類算法的專用智能處理能力、多線程并行運(yùn)行的通用處理能力、數(shù)據(jù)傳輸能力等基礎(chǔ)能力,支撐兩類算法的應(yīng)用要求。
智能處理模塊提供通信節(jié)點(diǎn)、通用計(jì)算節(jié)點(diǎn)和智能計(jì)算節(jié)點(diǎn)。通信節(jié)點(diǎn)由FPGA和光電器件組成,負(fù)責(zé)模塊和整機(jī)中其他模塊之間的通信互聯(lián);通用計(jì)算節(jié)點(diǎn)由多核CPU組成,完成復(fù)雜通用計(jì)算任務(wù);智能計(jì)算節(jié)點(diǎn)由大規(guī)模FPGA組成,提供足夠的計(jì)算能力及存儲容量,能夠滿足智能計(jì)算處理能力要求。智能處理模塊架構(gòu)如圖1所示。
模塊內(nèi)部采用PCIe網(wǎng)絡(luò)交換結(jié)構(gòu),各關(guān)鍵節(jié)點(diǎn)均連接在PCIe交換網(wǎng)絡(luò)上,通過PCIe交換網(wǎng)絡(luò)進(jìn)行模塊間的數(shù)據(jù)通信。典型應(yīng)用數(shù)據(jù)處理流程如下:數(shù)據(jù)經(jīng)通信板卡處理后,由PCIe將數(shù)據(jù)發(fā)送給智能板卡的處理內(nèi)核,處理內(nèi)核進(jìn)行響應(yīng)和資源管理,并將數(shù)據(jù)轉(zhuǎn)發(fā)給智能板卡的邏輯資源進(jìn)行智能計(jì)算,計(jì)算結(jié)果返回給通用處理器芯片進(jìn)行處理,最后結(jié)果經(jīng)通信板卡發(fā)出。
3硬件設(shè)計(jì)
智能處理模塊主要由智能、處理、通信三個(gè)板卡組成。智能板卡包括兩個(gè)智能處理器+FPGA,主要實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)加速處理以及通信板卡的配置和管理;處理板卡設(shè)計(jì)兩個(gè)CPU處理器,主要實(shí)現(xiàn)復(fù)雜通用計(jì)算任務(wù);設(shè)計(jì)一個(gè)PCIe交換芯片,用于模塊內(nèi)部各節(jié)點(diǎn)之間高速通信;通信板卡采用FPGA實(shí)現(xiàn)通信邏輯,實(shí)現(xiàn)對外通信。
智能處理模塊的內(nèi)部通信主要由PCIe總線完成,通過PCIe交換電路實(shí)現(xiàn)專用智能節(jié)點(diǎn)掛接通信節(jié)點(diǎn),以及智能計(jì)算節(jié)點(diǎn)和通用計(jì)算節(jié)點(diǎn)之間互聯(lián)。PCIe交換功能電路可采用PEX8748芯片實(shí)現(xiàn),PEX8748是一個(gè)12端口、48線PCI Express 3.0的總線交換機(jī),單通道最高可支持8.0 GT/s的通信速率。
PEX8748可實(shí)現(xiàn)多種配置模式,能夠根據(jù)具體需求自由設(shè)置為上下行模式及多種端口組合,如圖2所示。
PEX8748會檢測STRAP-TESTMODE0[0:2]來確定運(yùn)行模式,其中[0,0,0]為BASE MODE,具體設(shè)置為BASEMODE,即一主多從的模式;PEX含有3個(gè)station,每個(gè)station含16lane,由STRAP-STN[0:2]-PORTCFG[0:1]進(jìn)行端口數(shù)目與寬度配置。
智能處理模塊中PEX8748配置多個(gè)4X通道,用于連接通用處理節(jié)點(diǎn)、智能計(jì)算節(jié)點(diǎn)和通信節(jié)點(diǎn),如圖3所示。
其中智能計(jì)算節(jié)點(diǎn)接PEX8748的RC上行端口,另一個(gè)智能計(jì)算節(jié)點(diǎn)、通用處理節(jié)點(diǎn)和通信節(jié)點(diǎn)接PEX8748的EP下行端口。通用計(jì)算節(jié)點(diǎn)和智能計(jì)算節(jié)點(diǎn)接口線速率配置為5 Gb/s,通信節(jié)點(diǎn)線速率配置為2.5 Gb/s。
4系統(tǒng)測試
在實(shí)際應(yīng)用中,重點(diǎn)測試系統(tǒng)內(nèi)部的6個(gè)PCIe節(jié)點(diǎn)的通信功能,對各個(gè)節(jié)點(diǎn)之間是否能夠傳輸及傳輸?shù)恼_性進(jìn)行驗(yàn)證。
具體測試方法為:
1)測試設(shè)備向CPU發(fā)送“PCIe配置測試”指令,隨后測試設(shè)備接收各節(jié)點(diǎn)發(fā)送的PCIe鏈路狀態(tài)及線寬寄存器結(jié)果,各寄存器參數(shù)讀取與預(yù)期一致,說明節(jié)點(diǎn)配置正常。
2)CPU通過PCIe接口將數(shù)據(jù)發(fā)送至另一個(gè)CPU的BAR空間,然后從BAR空間中將數(shù)據(jù)讀回,對比發(fā)送數(shù)據(jù)和讀回?cái)?shù)據(jù)是否一致,如一致則測試通過。
3)CPU針對通用計(jì)算節(jié)點(diǎn)及智能計(jì)算節(jié)點(diǎn)“PCIe接收通信測試”指令,進(jìn)行PCIe的Direct IO包的讀寫測試,在1 s時(shí)間內(nèi)連續(xù)進(jìn)行讀訪問,測試PCIe的讀訪問帶寬,并將帶寬發(fā)送給測試設(shè)備判斷讀訪問帶寬是否合格。
4)CPU針對通用計(jì)算節(jié)點(diǎn)及智能計(jì)算節(jié)點(diǎn)“PCIe接收通信測試”指令,進(jìn)行PCIe的Direct IO包的讀寫測試,在1 s時(shí)間內(nèi)連續(xù)進(jìn)行寫訪問,測試PCIe的寫訪問帶寬,并將帶寬發(fā)送給測試設(shè)備判斷寫訪問帶寬是否合格。
5結(jié)束語
本文提出了一種基于PCIe接口的智能處理系統(tǒng),該系統(tǒng)基于CPU十FPGA的異構(gòu)融合結(jié)構(gòu)設(shè)計(jì),通用處理節(jié)點(diǎn)基于高性能多核CPU設(shè)計(jì),提供兩個(gè)通用處理節(jié)點(diǎn)和兩個(gè)智能處理節(jié)點(diǎn),并通過對外通信接口實(shí)現(xiàn)外部交互。系統(tǒng)通過PCIe交換電路完成內(nèi)部數(shù)據(jù)通信,通用計(jì)算節(jié)點(diǎn)和智能計(jì)算節(jié)點(diǎn)接口線速率配置為5 Gb/s。該系統(tǒng)為應(yīng)用于航空領(lǐng)域的人工智能系統(tǒng),可實(shí)現(xiàn)飛行過程中的智能感知、輔助決策等任務(wù)。
文中對該智能處理系統(tǒng)的整體架構(gòu)進(jìn)行了詳細(xì)描述,介紹了系統(tǒng)中PCIe總線的工作模式及其內(nèi)部信號的數(shù)據(jù)流,并從硬件角度闡述了系統(tǒng)核心電路的設(shè)計(jì)思路,重點(diǎn)分析了PCIe總線的使用及其優(yōu)越性。
該架構(gòu)適用于高性能和高效率的智能處理系統(tǒng),已成功應(yīng)用于某機(jī)載智能處理模塊,對相關(guān)領(lǐng)域應(yīng)用具有一定的參考價(jià)值和借鑒意義。