《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法
基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法
2017年電子技術(shù)應(yīng)用第12期
王延鵬
江蘇自動化研究所,江蘇 連云港222061
摘要: 為提高國產(chǎn)加固計(jì)算機(jī)的計(jì)算處理能力,,提出基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法,,介紹了模塊設(shè)計(jì)思路,;硬件方面采用國產(chǎn)龍芯3A1500處理器及DDR3內(nèi)存,,設(shè)計(jì)了3A1500+2FPGA的硬件組成模式,并介紹了電源及復(fù)位電路設(shè)計(jì)方法,;軟件方面搭配國產(chǎn)中標(biāo)麒麟操作系統(tǒng),,設(shè)計(jì)了與模塊匹配的計(jì)算加速軟件。最后進(jìn)行性能測試,,與X86酷睿L2400進(jìn)行了性能對比,。結(jié)果表明,該設(shè)計(jì)可大幅提高國產(chǎn)龍芯計(jì)算機(jī)的計(jì)算性能,,平均計(jì)算加速比達(dá)到5以上,,驗(yàn)證了設(shè)計(jì)方法的有效性,對國產(chǎn)加固計(jì)算機(jī)在高性能計(jì)算方向的應(yīng)用具有指導(dǎo)性意義,。
中圖分類號: TP332
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.170625
中文引用格式: 王延鵬. 基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法[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.
Design method of computing acceleration module based on Loongson 3A1500
Wang Yanpeng
Jiangsu Automation Research Institute, Lianyungang 222061, China
Abstract: To improve the computing capacity of domestic rugged computers, the paper presents a design method of computing acceleration module based on Loongson 3A1500, and introduces the modular design ideas. On the hardware side, using domestic Loongson 3A1500 processor and DDR3 memory, the paper designes 3A1500 + 2FPGA hardware components mode, and introduces the design of the power and reset circuit. On the software side, the module with domestic NeoKylin operating system and software is designed to calculate the acceleration. Finally, by performance testing, compared with X86 Core L2400 processor,results show that the design can significantly improve the performance of domestic Loongson computer calculation, average calculation speedup reach 5 or more, which indicates the effectiveness of the design method, strengthening of domestic computer has provided guidance in the application of high performance computing sense direction.
Key words : rugged computers,;Loongson 3A1500,;FPGA;computing acceleration,;high performance

0 引言

    軍事技術(shù)信息化越來越深入的今天,,傳統(tǒng)加固計(jì)算機(jī)只依靠CPU進(jìn)行數(shù)據(jù)處理的方式已不能滿足對高速計(jì)算的高要求,對于研發(fā)高性能數(shù)據(jù)處理能力的計(jì)算機(jī)技術(shù)的需求已愈發(fā)強(qiáng)烈,。遵守加固計(jì)算機(jī)通用化,、系列化、模塊化的設(shè)計(jì)思路,,在現(xiàn)有通用計(jì)算機(jī)平臺上,,兼容現(xiàn)有標(biāo)準(zhǔn)體系,,提升計(jì)算機(jī)處理能力,是現(xiàn)在重點(diǎn)研究的方向,。

    國際上對高速計(jì)算技術(shù)已發(fā)展的比較成熟,,不斷發(fā)布高速處理器及GPU協(xié)助計(jì)算方法等,計(jì)算加速效果非常良好,。但國外提供的軟硬件存在安全隱患,,可能在處理器及軟件系統(tǒng)中被設(shè)置后門和漏洞[1],使我方設(shè)備及數(shù)據(jù)安全性受到嚴(yán)重威脅,。

    深刻挖掘我國自有技術(shù)潛力[2-3],,開發(fā)自主可控的具有高速計(jì)算能力的技術(shù)至關(guān)重要[4]。本文提出一種基于國產(chǎn)龍芯處理器的計(jì)算加速技術(shù),,采用3A1500+2FPGA的模式,,搭配我國自主開發(fā)的麒麟操作系統(tǒng),能夠在軟件硬件方面達(dá)到自主可控,,滿足對高速計(jì)算技術(shù)的需求,。

1 設(shè)計(jì)思路

    為了提高計(jì)算處理模塊的通用性,兼具FPGA計(jì)算定制能力和CPU操作系統(tǒng)兼容性,,CPU+FPGA的模式[5-6]可以充分發(fā)揮龍芯平臺的特長,,又可彌補(bǔ)高性能計(jì)算方面不足,是一種適合現(xiàn)有軍用需求的設(shè)計(jì)思路,。本設(shè)計(jì)名為基于龍芯3A1500的計(jì)算加速模塊,,簡稱計(jì)算加速模塊。

2 硬件設(shè)計(jì)

    基于龍芯3A1500的計(jì)算加速模塊功能框圖如圖1所示,,以龍芯3A1500處理器為核心[7],,搭配AMD 780E+SB710芯片組,構(gòu)成模塊硬件主框架,。計(jì)算加速模塊采用高速DDR3內(nèi)存芯片,,結(jié)合兩片高性能FPGA芯片,以提供高性能的計(jì)算能力,。本模塊制版采用標(biāo)準(zhǔn)6U VPX總線架構(gòu),,具有較強(qiáng)的抗惡劣環(huán)境能力,,適用于對計(jì)算能力要求較高的艦載,、車載設(shè)備。

jsj1-t1.gif

    龍芯3A1500處理器為龍芯系列4核處理器,,最高工作頻率1 GHz,,片內(nèi)集成2個64位400 MHz的DDR3控制器、2個16位800 MHz的HT控制器,。龍芯3A1500的雙HT總線接口為連接FPGA,,以提高計(jì)算能力的方式提供了高速接口。計(jì)算加速模塊采用AMD 780E芯片作為主模塊的北橋,通過北橋的HT總線接口與龍芯3A1500處理器連接,;通過DDR3顯存芯片實(shí)現(xiàn)顯示存儲空間的擴(kuò)展,;通過北橋PCIE X1接口與Inteli210千兆網(wǎng)絡(luò)芯片連接;利用北橋A-LINK高速總線,,實(shí)現(xiàn)與南橋的互聯(lián),。此外,北橋芯片還提供1路PCIE X16接口(可拆分為2路PCIE X8)和1路PCIE X2接口,,用于系統(tǒng)內(nèi)的功能模塊擴(kuò)展,,并連接于VPX連接器;北橋提供顯示功能,,支持VGA及DVI顯示接口,。南橋內(nèi)部集成豐富的功能外設(shè)接口,包括高速A-LINK,、USB,、SATA以及LPC接口等,USB,、SATA接口可直接從南橋輸出,,PS/2接口可通過南橋的LPC總線掛接SuperIO實(shí)現(xiàn)。

    為實(shí)現(xiàn)較強(qiáng)的計(jì)算能力,,計(jì)算加速模塊搭載兩塊FPGA芯片,,F(xiàn)PGA芯片采用Xilinx公司的高性能VIRTEX-6。FPGA0通過HT總線與龍芯3A1500實(shí)現(xiàn)通信,,并通過PCIE X8總線與北橋780E連接,,外出兩路RapidIO X4高速串行總線,滿足高速數(shù)據(jù)交換的需求,。FPGA1通過PCIE X8總線與北橋780E連接,,外出一路RapidIO X4高速串行總線。

2.1 電源電路設(shè)計(jì)

    電源作為電路運(yùn)行的動力和載體,,電源設(shè)計(jì)是電路設(shè)計(jì)的基礎(chǔ),。合格的電源設(shè)計(jì),需要在充分了解各器件及電路需求的前提下,,配備好各電源電壓,、功耗分配、紋波干擾等,。通過本設(shè)計(jì)供電電路及轉(zhuǎn)換電源,,提供各器件工作所需電壓,具體的電源分配如圖2所示,。

jsj1-t2.gif

    本模塊涉及電源種類較多,,設(shè)計(jì)思路為通過統(tǒng)一電源供電,,在模塊設(shè)計(jì)各種電源轉(zhuǎn)換電路,提供各器件工作所需各電壓,。在本設(shè)計(jì)中,,依據(jù)VPX架構(gòu)的特點(diǎn),電源輸入統(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è)計(jì)

    本設(shè)計(jì)中時鐘設(shè)計(jì)涉及器件主要有龍芯3A1500,、南北橋及FPGA芯片。龍芯3A1500處理器通過外部的晶振等時鐘源提供其所需的工作時鐘,;外接的14.318 MHz晶體通過外部時鐘發(fā)生器,,為南橋、北橋以及PCIE設(shè)備提供其所需的工作時鐘,,模塊的時鐘分配見圖3,。

jsj1-t3.gif

2.3 復(fù)位電路設(shè)計(jì)原理

    本設(shè)計(jì)采用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所示,。

jsj1-t4.gif

2.4 DDR3電路設(shè)計(jì)原理

    為提高模塊抗惡劣環(huán)境能力,計(jì)算加速模塊內(nèi)存采用全板載DDR3顆粒實(shí)現(xiàn)雙通道設(shè)計(jì)方式,。龍芯3A1500處理器內(nèi)部集成兩路存儲控制器MC0和MC1,,存儲控制器MC能提供標(biāo)準(zhǔn)的DDR3存儲設(shè)備接口,,可以實(shí)現(xiàn)與外部DDR3芯片的數(shù)據(jù)傳輸,。

    龍芯3A1500最多支持4個片選cs,、16 bit行列地址總線和3 bit邏輯bank總線。本設(shè)計(jì)中選用10片DDR3內(nèi)存顆粒,,單片顆粒容量4 Gb,,16 bit數(shù)據(jù)位寬。其中8片組成4 GB運(yùn)行內(nèi)存,,2片組成ECC糾錯內(nèi)存,。所設(shè)計(jì)內(nèi)存電路內(nèi)存頻率為400 MHz。

3 軟件設(shè)計(jì)

    為實(shí)現(xiàn)本文提出的基于龍芯3A1500的計(jì)算加速方法,,需要為計(jì)算加速模塊進(jìn)行軟件設(shè)計(jì),。計(jì)算加速模塊軟件設(shè)計(jì)主要包括操作系統(tǒng)相關(guān)設(shè)計(jì)及計(jì)算加速軟件設(shè)計(jì)。對于操作系統(tǒng),,基于軟硬件國產(chǎn)化的需求,,選擇近年來發(fā)展較好的中標(biāo)麒麟操作系統(tǒng),在中標(biāo)麒麟操作系統(tǒng)基礎(chǔ)上進(jìn)行對應(yīng)龍芯3A1500平臺的操作系統(tǒng)移植及驅(qū)動設(shè)計(jì),;計(jì)算加速軟件的設(shè)計(jì),,可充分發(fā)揮計(jì)算加速模塊雙FPGA優(yōu)異的計(jì)算性能,協(xié)調(diào)系統(tǒng)合理分配資源,,將FPGA融入到計(jì)算過程中,。

3.1 操作系統(tǒng)移植及驅(qū)動設(shè)計(jì)

    中標(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處理器硬件平臺的特點(diǎn),設(shè)計(jì)和開發(fā)龍芯3A1500處理器的支持模塊,。主要完成處理器初始化代碼,、相關(guān)驅(qū)動的修改,使其支持網(wǎng)絡(luò)功能,,支持JFFS2,、YAFFS文件系統(tǒng)[8];修改設(shè)計(jì)MTD分區(qū),,使內(nèi)核可以掛載存儲設(shè)備上的文件系統(tǒng),。

3.2 計(jì)算加速軟件設(shè)計(jì)

    計(jì)算加速模塊包含CPU和FPGA,CPU執(zhí)行軟件指令,,F(xiàn)PGA可根據(jù)需要被配置成不同結(jié)構(gòu)的硬件加速器,。硬件加速器的配置及運(yùn)行由處理器(軟件)控制,對軟件編寫提出了較高要求,,需對整個配置過程及加速器的接口細(xì)節(jié)進(jìn)行全面了解方可完成程序構(gòu)建,。軟硬件協(xié)同計(jì)算屏蔽了硬件細(xì)節(jié),,提供一個硬件透明的編程模型,可重構(gòu)硬件以函數(shù)的形式進(jìn)行抽象,,即硬件實(shí)現(xiàn)程序化,,簡單調(diào)用硬件函數(shù)可實(shí)現(xiàn)可重構(gòu)硬件的搭建。硬件函數(shù)的形式與使用方式與其他軟件函數(shù)庫中的函數(shù)一樣,,整個底層硬件的具體細(xì)節(jié)對其是透明的[9],。

    硬件函數(shù)的運(yùn)行需要提供相應(yīng)的軟硬件支撐環(huán)境,按圖5所示的層次結(jié)構(gòu)設(shè)計(jì)支持硬件透明編程的可重構(gòu)系統(tǒng),。整個系統(tǒng)分為五層,,應(yīng)用層以下是片上系統(tǒng)的軟硬件基本結(jié)構(gòu),是通用的,。針對不同的應(yīng)用,,只需要編寫相應(yīng)的應(yīng)用程序即可。

jsj1-t5.gif

    各層的功能:軟硬件任務(wù)設(shè)計(jì)庫提供了混合任務(wù)編程接口,,結(jié)合軟件函數(shù)庫和硬件函數(shù)庫,,可以按照傳統(tǒng)的軟件編程方式,設(shè)計(jì)出軟硬件高度混合的系統(tǒng),。軟/硬件任務(wù)調(diào)度器和可重構(gòu)資源管理器對硬件函數(shù)的調(diào)用,、運(yùn)行狀態(tài)等進(jìn)行管理,并跟蹤和管理可重構(gòu)資源,。硬件函數(shù)與軟件函數(shù)在運(yùn)行方式與物理基礎(chǔ)上存在本質(zhì)的差異,,軟件函數(shù)是串行執(zhí)行的指令集合,硬件函數(shù)是二維的邏輯電路,,可以與CPU同步執(zhí)行,,加入相應(yīng)的硬件函數(shù)管理模塊可建立統(tǒng)一的軟硬件運(yùn)行過程??芍貥?gòu)資源管理器應(yīng)隨時跟蹤管理可重構(gòu)資源的使用情況,,為調(diào)用的硬件函數(shù)分配合適的資源。

4 性能對比測試

    本模塊的創(chuàng)新點(diǎn)是在龍芯3A1500平臺上,,設(shè)計(jì)了通過雙FPGA對龍芯3A1500模塊進(jìn)行計(jì)算加速,,在延續(xù)現(xiàn)有軟硬件環(huán)境的同時,提高國產(chǎn)化計(jì)算機(jī)的計(jì)算性能,。因此,,在對計(jì)算加速模塊進(jìn)行性能測試時,重點(diǎn)考慮FPGA對模塊加速效果的測試,。

    本文對計(jì)算加速模塊的方法為:在兩個FPGA上不停地執(zhí)行FFT[10],、DES加密、RK微分方程組、解算π,、快速排序等多種算法,,測試計(jì)算消耗時間,對消耗時間進(jìn)行比對,,得到計(jì)算加速比數(shù)據(jù)。

    加速比τ=加速前消耗時間/加速后消耗時間

    在其他計(jì)算機(jī)平臺上,,選用合適的軟硬件對以上算法以一定方式實(shí)現(xiàn),,測試各計(jì)算時間。將計(jì)算出的數(shù)據(jù)與其他計(jì)算機(jī)平臺進(jìn)行比較,,驗(yàn)證FPGA對計(jì)算加速模塊的加速效果,。

    本測試所選用測試計(jì)算機(jī)平臺為國際通用的X86平臺在我國加固領(lǐng)域應(yīng)用較廣的Intel Core Duo L2400雙核。各測試計(jì)算機(jī)平臺信息如表1所示,。

jsj1-b1.gif

    各平臺測試計(jì)算運(yùn)行時間對比如圖6所示,。

jsj1-t6.gif

    龍芯3A1500處理器標(biāo)稱主頻為1 GHz,但在本文所搭建系統(tǒng)實(shí)測時,,其穩(wěn)定工作主頻為800 MHz,,因此本測試中龍芯3A1500工作頻率為800 MHz。

    由圖6可以看出,,即使LS2400為雙核處理器,,在內(nèi)存2 GB的情況下,計(jì)算性能仍然較為優(yōu)秀,,說明X86平臺計(jì)算性能優(yōu)異,。在800 MHz的工作頻率下,龍芯3A1500在計(jì)算性能比之LS2400差異明顯,,3A1500+2FPGA模式可以大大提高龍芯3A1500計(jì)算機(jī)的計(jì)算性能,,加速比除DES加密計(jì)算略低于5之外(需要對算法繼續(xù)優(yōu)化),其他算法均超過5,,綜合計(jì)算性能優(yōu)越,。因此本設(shè)計(jì)中,龍芯3A1500+2FPGA的模式大大彌補(bǔ)了龍芯3A1500在計(jì)算處理能力方面的不足,。圖7為統(tǒng)計(jì)3A1500+2FPGA模式下針對各算法的計(jì)算加速比,。

jsj1-t7.gif

5 結(jié)束語

    本文介紹了基于龍芯3A1500的計(jì)算加速模塊的設(shè)計(jì)方法,包括設(shè)計(jì)思路,、硬件設(shè)計(jì)方案,、軟件設(shè)計(jì)方案,最后給出性能對比測試,。結(jié)果表明,,3A1500+2FPGA模式大大提升了龍芯3A1500平臺的整體的計(jì)算性能,平均計(jì)算加速比達(dá)到5以上,,增強(qiáng)了基于國產(chǎn)化處理器計(jì)算機(jī)模塊的計(jì)算性能,,對于我國加固計(jì)算機(jī)在高性能方向的發(fā)展有著積極的意義,。

參考文獻(xiàn)

[1] 侯玉梅,朱向東.棱鏡門事件對我國網(wǎng)絡(luò)安全的警示[J].計(jì)算機(jī)安全,,2014(5):33-35.

[2] 鄢斌,,谷會濤.國產(chǎn)自主計(jì)算機(jī)軟硬件技術(shù)發(fā)展綜合[J].信息安全與通信保密,2015(8):82-84.

[3] 趙輝,,萬俊偉,,鮑忠貴,等.自主可控技術(shù)在試驗(yàn)任務(wù)領(lǐng)域的應(yīng)用研究[J].飛行器測控學(xué)報(bào),,2015,,34 (2):109-114.

[4] 王瑩.龍芯_安全芯片需要真正的自主可控[J].電子產(chǎn)品世界,2015,,22(9):17-19.

[5] 張啟英,,劉亞剛,張淑艷,,等.基于FPGA的硬件加速器設(shè)計(jì)的研究與應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,,2013(17):276-277.

[6] 胡亞平.FPGA與CPU高速接口的實(shí)現(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é)報(bào),2014,,15(5):613-616.

[9] 王珊,,張建志.一種遠(yuǎn)程動態(tài)可重構(gòu)的嵌入式系統(tǒng)設(shè)計(jì)[J].無線電工程,2014,,44(8):93-96.

[10] 張杰,,顧乃杰,張明.龍芯3B處理器上FFT算法向量化研究[J].小型微型計(jì)算機(jī)系統(tǒng),,2015,,36(7):1639-1643.



作者信息:

王延鵬

(江蘇自動化研究所,江蘇 連云港222061)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。