文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.170625
中文引用格式: 王延鵬. 基于龍芯3A1500的計算加速模塊設(shè)計方法[J].電子技術(shù)應(yīng)用,,2017,,43(12):109-112.
英文引用格式: Wang Yanpeng. Design method of computing acceleration module based on Loongson 3A1500[J].Application of Electronic Technique,2017,,43(12):109-112.
0 引言
軍事技術(shù)信息化越來越深入的今天,,傳統(tǒng)加固計算機只依靠CPU進(jìn)行數(shù)據(jù)處理的方式已不能滿足對高速計算的高要求,,對于研發(fā)高性能數(shù)據(jù)處理能力的計算機技術(shù)的需求已愈發(fā)強烈。遵守加固計算機通用化,、系列化,、模塊化的設(shè)計思路,在現(xiàn)有通用計算機平臺上,,兼容現(xiàn)有標(biāo)準(zhǔn)體系,,提升計算機處理能力,是現(xiàn)在重點研究的方向,。
國際上對高速計算技術(shù)已發(fā)展的比較成熟,,不斷發(fā)布高速處理器及GPU協(xié)助計算方法等,計算加速效果非常良好,。但國外提供的軟硬件存在安全隱患,可能在處理器及軟件系統(tǒng)中被設(shè)置后門和漏洞[1],,使我方設(shè)備及數(shù)據(jù)安全性受到嚴(yán)重威脅,。
深刻挖掘我國自有技術(shù)潛力[2-3],開發(fā)自主可控的具有高速計算能力的技術(shù)至關(guān)重要[4],。本文提出一種基于國產(chǎn)龍芯處理器的計算加速技術(shù),,采用3A1500+2FPGA的模式,搭配我國自主開發(fā)的麒麟操作系統(tǒng),,能夠在軟件硬件方面達(dá)到自主可控,,滿足對高速計算技術(shù)的需求。
1 設(shè)計思路
為了提高計算處理模塊的通用性,,兼具FPGA計算定制能力和CPU操作系統(tǒng)兼容性,,CPU+FPGA的模式[5-6]可以充分發(fā)揮龍芯平臺的特長,又可彌補高性能計算方面不足,,是一種適合現(xiàn)有軍用需求的設(shè)計思路,。本設(shè)計名為基于龍芯3A1500的計算加速模塊,簡稱計算加速模塊,。
2 硬件設(shè)計
基于龍芯3A1500的計算加速模塊功能框圖如圖1所示,,以龍芯3A1500處理器為核心[7],,搭配AMD 780E+SB710芯片組,構(gòu)成模塊硬件主框架,。計算加速模塊采用高速DDR3內(nèi)存芯片,,結(jié)合兩片高性能FPGA芯片,以提供高性能的計算能力,。本模塊制版采用標(biāo)準(zhǔn)6U VPX總線架構(gòu),,具有較強的抗惡劣環(huán)境能力,適用于對計算能力要求較高的艦載,、車載設(shè)備,。
龍芯3A1500處理器為龍芯系列4核處理器,最高工作頻率1 GHz,,片內(nèi)集成2個64位400 MHz的DDR3控制器,、2個16位800 MHz的HT控制器。龍芯3A1500的雙HT總線接口為連接FPGA,,以提高計算能力的方式提供了高速接口,。計算加速模塊采用AMD 780E芯片作為主模塊的北橋,通過北橋的HT總線接口與龍芯3A1500處理器連接,;通過DDR3顯存芯片實現(xiàn)顯示存儲空間的擴展,;通過北橋PCIE X1接口與Inteli210千兆網(wǎng)絡(luò)芯片連接;利用北橋A-LINK高速總線,,實現(xiàn)與南橋的互聯(lián),。此外,北橋芯片還提供1路PCIE X16接口(可拆分為2路PCIE X8)和1路PCIE X2接口,,用于系統(tǒng)內(nèi)的功能模塊擴展,,并連接于VPX連接器;北橋提供顯示功能,,支持VGA及DVI顯示接口,。南橋內(nèi)部集成豐富的功能外設(shè)接口,包括高速A-LINK,、USB,、SATA以及LPC接口等,USB,、SATA接口可直接從南橋輸出,,PS/2接口可通過南橋的LPC總線掛接SuperIO實現(xiàn)。
為實現(xiàn)較強的計算能力,,計算加速模塊搭載兩塊FPGA芯片,,F(xiàn)PGA芯片采用Xilinx公司的高性能VIRTEX-6。FPGA0通過HT總線與龍芯3A1500實現(xiàn)通信,,并通過PCIE X8總線與北橋780E連接,,外出兩路RapidIO X4高速串行總線,,滿足高速數(shù)據(jù)交換的需求。FPGA1通過PCIE X8總線與北橋780E連接,,外出一路RapidIO X4高速串行總線,。
2.1 電源電路設(shè)計
電源作為電路運行的動力和載體,電源設(shè)計是電路設(shè)計的基礎(chǔ),。合格的電源設(shè)計,,需要在充分了解各器件及電路需求的前提下,配備好各電源電壓,、功耗分配,、紋波干擾等。通過本設(shè)計供電電路及轉(zhuǎn)換電源,,提供各器件工作所需電壓,,具體的電源分配如圖2所示。
本模塊涉及電源種類較多,,設(shè)計思路為通過統(tǒng)一電源供電,,在模塊設(shè)計各種電源轉(zhuǎn)換電路,提供各器件工作所需各電壓,。在本設(shè)計中,,依據(jù)VPX架構(gòu)的特點,電源輸入統(tǒng)一由12 V供電,,理論上可提供300 W以上的功率,,而本模塊功耗在60 W以內(nèi),可滿足功耗需求,。
CPU核心電壓CPU_1.1V由12 V直流電源經(jīng)DC-DC模塊轉(zhuǎn)化而來,,最高可提供30 A 1.1 V電源。12 V經(jīng)DC-DC模塊轉(zhuǎn)化為1.5 V,、2.5 V、1.0 V,,分別給予內(nèi)存,、FPGA供電。5 V電壓由12 V轉(zhuǎn)化提供,,后經(jīng)過LDO芯片轉(zhuǎn)化為其他板級電壓,。
2.2 時鐘電路設(shè)計
本設(shè)計中時鐘設(shè)計涉及器件主要有龍芯3A1500、南北橋及FPGA芯片,。龍芯3A1500處理器通過外部的晶振等時鐘源提供其所需的工作時鐘,;外接的14.318 MHz晶體通過外部時鐘發(fā)生器,為南橋,、北橋以及PCIE設(shè)備提供其所需的工作時鐘,,模塊的時鐘分配見圖3,。
2.3 復(fù)位電路設(shè)計原理
本設(shè)計采用MAX706決定整個模塊的復(fù)位。首先上電復(fù)位后由VPX連接器提供電源和原始的復(fù)位信號,,主模塊中MAX706負(fù)責(zé)完成對CPU,、南橋和外圍電路的復(fù)位工作,芯片內(nèi)部集成嚴(yán)格的時序邏輯控制電路,,可以保證系統(tǒng)按照嚴(yán)格的時序進(jìn)行復(fù)位,,完成穩(wěn)定啟動。系統(tǒng)可以通過CPU的GPIO信號控制系統(tǒng)整體復(fù)位,。系統(tǒng)復(fù)位電路原理框圖如圖4所示,。
2.4 DDR3電路設(shè)計原理
為提高模塊抗惡劣環(huán)境能力,計算加速模塊內(nèi)存采用全板載DDR3顆粒實現(xiàn)雙通道設(shè)計方式,。龍芯3A1500處理器內(nèi)部集成兩路存儲控制器MC0和MC1,,存儲控制器MC能提供標(biāo)準(zhǔn)的DDR3存儲設(shè)備接口,可以實現(xiàn)與外部DDR3芯片的數(shù)據(jù)傳輸,。
龍芯3A1500最多支持4個片選cs,、16 bit行列地址總線和3 bit邏輯bank總線。本設(shè)計中選用10片DDR3內(nèi)存顆粒,,單片顆粒容量4 Gb,,16 bit數(shù)據(jù)位寬。其中8片組成4 GB運行內(nèi)存,,2片組成ECC糾錯內(nèi)存,。所設(shè)計內(nèi)存電路內(nèi)存頻率為400 MHz。
3 軟件設(shè)計
為實現(xiàn)本文提出的基于龍芯3A1500的計算加速方法,,需要為計算加速模塊進(jìn)行軟件設(shè)計,。計算加速模塊軟件設(shè)計主要包括操作系統(tǒng)相關(guān)設(shè)計及計算加速軟件設(shè)計。對于操作系統(tǒng),,基于軟硬件國產(chǎn)化的需求,,選擇近年來發(fā)展較好的中標(biāo)麒麟操作系統(tǒng),在中標(biāo)麒麟操作系統(tǒng)基礎(chǔ)上進(jìn)行對應(yīng)龍芯3A1500平臺的操作系統(tǒng)移植及驅(qū)動設(shè)計,;計算加速軟件的設(shè)計,,可充分發(fā)揮計算加速模塊雙FPGA優(yōu)異的計算性能,,協(xié)調(diào)系統(tǒng)合理分配資源,,將FPGA融入到計算過程中,。
3.1 操作系統(tǒng)移植及驅(qū)動設(shè)計
中標(biāo)麒麟操作系統(tǒng)是基于Linux內(nèi)核開發(fā)的一套系統(tǒng),故其驅(qū)動和軟件開發(fā)基本遵循Linux開發(fā)流程,。內(nèi)核移植在技術(shù)上以開源Linux操作系統(tǒng)為主,,采用交叉編譯的方式進(jìn)行移植開發(fā),修改處理器初始化及硬件驅(qū)動等相關(guān)代碼,針對處理器架構(gòu)進(jìn)行中標(biāo)麒麟系統(tǒng)移植,。結(jié)合龍芯3A1500處理器硬件平臺的特點,,設(shè)計和開發(fā)龍芯3A1500處理器的支持模塊。主要完成處理器初始化代碼,、相關(guān)驅(qū)動的修改,,使其支持網(wǎng)絡(luò)功能,支持JFFS2,、YAFFS文件系統(tǒng)[8],;修改設(shè)計MTD分區(qū),使內(nèi)核可以掛載存儲設(shè)備上的文件系統(tǒng),。
3.2 計算加速軟件設(shè)計
計算加速模塊包含CPU和FPGA,,CPU執(zhí)行軟件指令,F(xiàn)PGA可根據(jù)需要被配置成不同結(jié)構(gòu)的硬件加速器,。硬件加速器的配置及運行由處理器(軟件)控制,,對軟件編寫提出了較高要求,需對整個配置過程及加速器的接口細(xì)節(jié)進(jìn)行全面了解方可完成程序構(gòu)建,。軟硬件協(xié)同計算屏蔽了硬件細(xì)節(jié),,提供一個硬件透明的編程模型,可重構(gòu)硬件以函數(shù)的形式進(jìn)行抽象,,即硬件實現(xiàn)程序化,,簡單調(diào)用硬件函數(shù)可實現(xiàn)可重構(gòu)硬件的搭建。硬件函數(shù)的形式與使用方式與其他軟件函數(shù)庫中的函數(shù)一樣,,整個底層硬件的具體細(xì)節(jié)對其是透明的[9],。
硬件函數(shù)的運行需要提供相應(yīng)的軟硬件支撐環(huán)境,按圖5所示的層次結(jié)構(gòu)設(shè)計支持硬件透明編程的可重構(gòu)系統(tǒng),。整個系統(tǒng)分為五層,,應(yīng)用層以下是片上系統(tǒng)的軟硬件基本結(jié)構(gòu),是通用的,。針對不同的應(yīng)用,,只需要編寫相應(yīng)的應(yīng)用程序即可。
各層的功能:軟硬件任務(wù)設(shè)計庫提供了混合任務(wù)編程接口,,結(jié)合軟件函數(shù)庫和硬件函數(shù)庫,,可以按照傳統(tǒng)的軟件編程方式,設(shè)計出軟硬件高度混合的系統(tǒng),。軟/硬件任務(wù)調(diào)度器和可重構(gòu)資源管理器對硬件函數(shù)的調(diào)用、運行狀態(tài)等進(jìn)行管理,,并跟蹤和管理可重構(gòu)資源,。硬件函數(shù)與軟件函數(shù)在運行方式與物理基礎(chǔ)上存在本質(zhì)的差異,軟件函數(shù)是串行執(zhí)行的指令集合,,硬件函數(shù)是二維的邏輯電路,,可以與CPU同步執(zhí)行,,加入相應(yīng)的硬件函數(shù)管理模塊可建立統(tǒng)一的軟硬件運行過程??芍貥?gòu)資源管理器應(yīng)隨時跟蹤管理可重構(gòu)資源的使用情況,,為調(diào)用的硬件函數(shù)分配合適的資源。
4 性能對比測試
本模塊的創(chuàng)新點是在龍芯3A1500平臺上,,設(shè)計了通過雙FPGA對龍芯3A1500模塊進(jìn)行計算加速,,在延續(xù)現(xiàn)有軟硬件環(huán)境的同時,提高國產(chǎn)化計算機的計算性能,。因此,,在對計算加速模塊進(jìn)行性能測試時,重點考慮FPGA對模塊加速效果的測試,。
本文對計算加速模塊的方法為:在兩個FPGA上不停地執(zhí)行FFT[10],、DES加密、RK微分方程組,、解算π,、快速排序等多種算法,測試計算消耗時間,,對消耗時間進(jìn)行比對,,得到計算加速比數(shù)據(jù)。
加速比τ=加速前消耗時間/加速后消耗時間
在其他計算機平臺上,,選用合適的軟硬件對以上算法以一定方式實現(xiàn),,測試各計算時間。將計算出的數(shù)據(jù)與其他計算機平臺進(jìn)行比較,,驗證FPGA對計算加速模塊的加速效果,。
本測試所選用測試計算機平臺為國際通用的X86平臺在我國加固領(lǐng)域應(yīng)用較廣的Intel Core Duo L2400雙核。各測試計算機平臺信息如表1所示,。
各平臺測試計算運行時間對比如圖6所示,。
龍芯3A1500處理器標(biāo)稱主頻為1 GHz,但在本文所搭建系統(tǒng)實測時,,其穩(wěn)定工作主頻為800 MHz,,因此本測試中龍芯3A1500工作頻率為800 MHz。
由圖6可以看出,,即使LS2400為雙核處理器,,在內(nèi)存2 GB的情況下,計算性能仍然較為優(yōu)秀,,說明X86平臺計算性能優(yōu)異,。在800 MHz的工作頻率下,龍芯3A1500在計算性能比之LS2400差異明顯,3A1500+2FPGA模式可以大大提高龍芯3A1500計算機的計算性能,,加速比除DES加密計算略低于5之外(需要對算法繼續(xù)優(yōu)化),,其他算法均超過5,綜合計算性能優(yōu)越,。因此本設(shè)計中,,龍芯3A1500+2FPGA的模式大大彌補了龍芯3A1500在計算處理能力方面的不足。圖7為統(tǒng)計3A1500+2FPGA模式下針對各算法的計算加速比,。
5 結(jié)束語
本文介紹了基于龍芯3A1500的計算加速模塊的設(shè)計方法,,包括設(shè)計思路、硬件設(shè)計方案,、軟件設(shè)計方案,,最后給出性能對比測試。結(jié)果表明,,3A1500+2FPGA模式大大提升了龍芯3A1500平臺的整體的計算性能,,平均計算加速比達(dá)到5以上,增強了基于國產(chǎn)化處理器計算機模塊的計算性能,,對于我國加固計算機在高性能方向的發(fā)展有著積極的意義,。
參考文獻(xiàn)
[1] 侯玉梅,朱向東.棱鏡門事件對我國網(wǎng)絡(luò)安全的警示[J].計算機安全,,2014(5):33-35.
[2] 鄢斌,,谷會濤.國產(chǎn)自主計算機軟硬件技術(shù)發(fā)展綜合[J].信息安全與通信保密,2015(8):82-84.
[3] 趙輝,,萬俊偉,,鮑忠貴,等.自主可控技術(shù)在試驗任務(wù)領(lǐng)域的應(yīng)用研究[J].飛行器測控學(xué)報,,2015,,34 (2):109-114.
[4] 王瑩.龍芯_安全芯片需要真正的自主可控[J].電子產(chǎn)品世界,2015,,22(9):17-19.
[5] 張啟英,,劉亞剛,張淑艷,,等.基于FPGA的硬件加速器設(shè)計的研究與應(yīng)用[J].計算機光盤軟件與應(yīng)用,,2013(17):276-277.
[6] 胡亞平.FPGA與CPU高速接口的實現(xiàn)[J].國外電子測量技術(shù),2014,,32(4):66-68.
[7] 龍芯中科技術(shù)有限公司.龍芯3A2000/3B2000處理器數(shù)據(jù)手冊V1.2[Z].北京:龍芯中科技術(shù)有限公司,,2016.
[8] 劉曉楠,趙榮彩,,龐建民.軟件移植,、二進(jìn)制翻譯和國產(chǎn)處理器發(fā)展[J].信息工程大學(xué)學(xué)報,,2014,15(5):613-616.
[9] 王珊,,張建志.一種遠(yuǎn)程動態(tài)可重構(gòu)的嵌入式系統(tǒng)設(shè)計[J].無線電工程,2014,,44(8):93-96.
[10] 張杰,,顧乃杰,張明.龍芯3B處理器上FFT算法向量化研究[J].小型微型計算機系統(tǒng),,2015,,36(7):1639-1643.
作者信息:
王延鵬
(江蘇自動化研究所,江蘇 連云港222061)