《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法
基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法
2017年電子技術(shù)應(yīng)用第12期
王延鵬
江蘇自動(dòng)化研究所,江蘇 連云港222061
摘要: 為提高國(guó)產(chǎn)加固計(jì)算機(jī)的計(jì)算處理能力,提出基于龍芯3A1500的計(jì)算加速模塊設(shè)計(jì)方法,介紹了模塊設(shè)計(jì)思路;硬件方面采用國(guó)產(chǎn)龍芯3A1500處理器及DDR3內(nèi)存,設(shè)計(jì)了3A1500+2FPGA的硬件組成模式,并介紹了電源及復(fù)位電路設(shè)計(jì)方法;軟件方面搭配國(guó)產(chǎn)中標(biāo)麒麟操作系統(tǒng),設(shè)計(jì)了與模塊匹配的計(jì)算加速軟件。最后進(jìn)行性能測(cè)試,與X86酷睿L2400進(jìn)行了性能對(duì)比。結(jié)果表明,該設(shè)計(jì)可大幅提高國(guó)產(chǎn)龍芯計(jì)算機(jī)的計(jì)算性能,平均計(jì)算加速比達(dá)到5以上,驗(yàn)證了設(shè)計(jì)方法的有效性,對(duì)國(guó)產(chǎn)加固計(jì)算機(jī)在高性能計(jì)算方向的應(yīng)用具有指導(dǎo)性意義。
中圖分類(lèi)號(hào): TP332
文獻(xiàn)標(biāo)識(shí)碼: 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ù)信息化越來(lái)越深入的今天,傳統(tǒng)加固計(jì)算機(jī)只依靠CPU進(jìn)行數(shù)據(jù)處理的方式已不能滿(mǎn)足對(duì)高速計(jì)算的高要求,對(duì)于研發(fā)高性能數(shù)據(jù)處理能力的計(jì)算機(jī)技術(shù)的需求已愈發(fā)強(qiáng)烈。遵守加固計(jì)算機(jī)通用化、系列化、模塊化的設(shè)計(jì)思路,在現(xiàn)有通用計(jì)算機(jī)平臺(tái)上,兼容現(xiàn)有標(biāo)準(zhǔn)體系,提升計(jì)算機(jī)處理能力,是現(xiàn)在重點(diǎn)研究的方向。

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

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

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

    為了提高計(jì)算處理模塊的通用性,兼具FPGA計(jì)算定制能力和CPU操作系統(tǒng)兼容性,CPU+FPGA的模式[5-6]可以充分發(fā)揮龍芯平臺(tái)的特長(zhǎng),又可彌補(bǔ)高性能計(jì)算方面不足,是一種適合現(xiàn)有軍用需求的設(shè)計(jì)思路。本設(shè)計(jì)名為基于龍芯3A1500的計(jì)算加速模塊,簡(jiǎn)稱(chēng)計(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總線(xiàn)架構(gòu),具有較強(qiáng)的抗惡劣環(huán)境能力,適用于對(duì)計(jì)算能力要求較高的艦載、車(chē)載設(shè)備。

jsj1-t1.gif

    龍芯3A1500處理器為龍芯系列4核處理器,最高工作頻率1 GHz,片內(nèi)集成2個(gè)64位400 MHz的DDR3控制器、2個(gè)16位800 MHz的HT控制器。龍芯3A1500的雙HT總線(xiàn)接口為連接FPGA,以提高計(jì)算能力的方式提供了高速接口。計(jì)算加速模塊采用AMD 780E芯片作為主模塊的北橋,通過(guò)北橋的HT總線(xiàn)接口與龍芯3A1500處理器連接;通過(guò)DDR3顯存芯片實(shí)現(xiàn)顯示存儲(chǔ)空間的擴(kuò)展;通過(guò)北橋PCIE X1接口與Inteli210千兆網(wǎng)絡(luò)芯片連接;利用北橋A-LINK高速總線(xiàn),實(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接口可通過(guò)南橋的LPC總線(xiàn)掛接SuperIO實(shí)現(xiàn)。

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

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

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

jsj1-t2.gif

    本模塊涉及電源種類(lèi)較多,設(shè)計(jì)思路為通過(guò)統(tǒng)一電源供電,在模塊設(shè)計(jì)各種電源轉(zhuǎn)換電路,提供各器件工作所需各電壓。在本設(shè)計(jì)中,依據(jù)VPX架構(gòu)的特點(diǎn),電源輸入統(tǒng)一由12 V供電,理論上可提供300 W以上的功率,而本模塊功耗在60 W以?xún)?nèi),可滿(mǎn)足功耗需求。

    CPU核心電壓CPU_1.1V由12 V直流電源經(jīng)DC-DC模塊轉(zhuǎn)化而來(lái),最高可提供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)過(guò)LDO芯片轉(zhuǎn)化為其他板級(jí)電壓。

2.2 時(shí)鐘電路設(shè)計(jì)

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

jsj1-t3.gif

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

    本設(shè)計(jì)采用MAX706決定整個(gè)模塊的復(fù)位。首先上電復(fù)位后由VPX連接器提供電源和原始的復(fù)位信號(hào),主模塊中MAX706負(fù)責(zé)完成對(duì)CPU、南橋和外圍電路的復(fù)位工作,芯片內(nèi)部集成嚴(yán)格的時(shí)序邏輯控制電路,可以保證系統(tǒng)按照嚴(yán)格的時(shí)序進(jìn)行復(fù)位,完成穩(wěn)定啟動(dòng)。系統(tǒng)可以通過(guò)CPU的GPIO信號(hào)控制系統(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)部集成兩路存儲(chǔ)控制器MC0和MC1,存儲(chǔ)控制器MC能提供標(biāo)準(zhǔn)的DDR3存儲(chǔ)設(shè)備接口,可以實(shí)現(xiàn)與外部DDR3芯片的數(shù)據(jù)傳輸。

    龍芯3A1500最多支持4個(gè)片選cs、16 bit行列地址總線(xiàn)和3 bit邏輯bank總線(xiàn)。本設(shè)計(jì)中選用10片DDR3內(nèi)存顆粒,單片顆粒容量4 Gb,16 bit數(shù)據(jù)位寬。其中8片組成4 GB運(yùn)行內(nèi)存,2片組成ECC糾錯(cuò)內(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ì)。對(duì)于操作系統(tǒng),基于軟硬件國(guó)產(chǎn)化的需求,選擇近年來(lái)發(fā)展較好的中標(biāo)麒麟操作系統(tǒng),在中標(biāo)麒麟操作系統(tǒng)基礎(chǔ)上進(jìn)行對(duì)應(yīng)龍芯3A1500平臺(tái)的操作系統(tǒng)移植及驅(qū)動(dòng)設(shè)計(jì);計(jì)算加速軟件的設(shè)計(jì),可充分發(fā)揮計(jì)算加速模塊雙FPGA優(yōu)異的計(jì)算性能,協(xié)調(diào)系統(tǒng)合理分配資源,將FPGA融入到計(jì)算過(guò)程中。

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

    中標(biāo)麒麟操作系統(tǒng)是基于Linux內(nèi)核開(kāi)發(fā)的一套系統(tǒng),故其驅(qū)動(dòng)和軟件開(kāi)發(fā)基本遵循Linux開(kāi)發(fā)流程。內(nèi)核移植在技術(shù)上以開(kāi)源Linux操作系統(tǒng)為主,采用交叉編譯的方式進(jìn)行移植開(kāi)發(fā),修改處理器初始化及硬件驅(qū)動(dòng)等相關(guān)代碼,針對(duì)處理器架構(gòu)進(jìn)行中標(biāo)麒麟系統(tǒng)移植。結(jié)合龍芯3A1500處理器硬件平臺(tái)的特點(diǎn),設(shè)計(jì)和開(kāi)發(fā)龍芯3A1500處理器的支持模塊。主要完成處理器初始化代碼、相關(guān)驅(qū)動(dòng)的修改,使其支持網(wǎng)絡(luò)功能,支持JFFS2、YAFFS文件系統(tǒng)[8];修改設(shè)計(jì)MTD分區(qū),使內(nèi)核可以?huà)燧d存儲(chǔ)設(shè)備上的文件系統(tǒng)。

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

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

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

jsj1-t5.gif

    各層的功能:軟硬件任務(wù)設(shè)計(jì)庫(kù)提供了混合任務(wù)編程接口,結(jié)合軟件函數(shù)庫(kù)和硬件函數(shù)庫(kù),可以按照傳統(tǒng)的軟件編程方式,設(shè)計(jì)出軟硬件高度混合的系統(tǒng)。軟/硬件任務(wù)調(diào)度器和可重構(gòu)資源管理器對(duì)硬件函數(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)行過(guò)程??芍貥?gòu)資源管理器應(yīng)隨時(shí)跟蹤管理可重構(gòu)資源的使用情況,為調(diào)用的硬件函數(shù)分配合適的資源。

4 性能對(duì)比測(cè)試

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

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

    加速比τ=加速前消耗時(shí)間/加速后消耗時(shí)間

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

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

jsj1-b1.gif

    各平臺(tái)測(cè)試計(jì)算運(yùn)行時(shí)間對(duì)比如圖6所示。

jsj1-t6.gif

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

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

jsj1-t7.gif

5 結(jié)束語(yǔ)

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

參考文獻(xiàn)

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

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

[3] 趙輝,萬(wàn)俊偉,鮑忠貴,等.自主可控技術(shù)在試驗(yàn)任務(wù)領(lǐng)域的應(yīng)用研究[J].飛行器測(cè)控學(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ī)光盤(pán)軟件與應(yīng)用,2013(17):276-277.

[6] 胡亞平.FPGA與CPU高速接口的實(shí)現(xiàn)[J].國(guó)外電子測(cè)量技術(shù),2014,32(4):66-68.

[7] 龍芯中科技術(shù)有限公司.龍芯3A2000/3B2000處理器數(shù)據(jù)手冊(cè)V1.2[Z].北京:龍芯中科技術(shù)有限公司,2016.

[8] 劉曉楠,趙榮彩,龐建民.軟件移植、二進(jìn)制翻譯和國(guó)產(chǎn)處理器發(fā)展[J].信息工程大學(xué)學(xué)報(bào),2014,15(5):613-616.

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

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



作者信息:

王延鵬

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

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