《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于龍芯3A1500的計算加速模塊設計方法
基于龍芯3A1500的計算加速模塊設計方法
2017年電子技術應用第12期
王延鵬
江蘇自動化研究所,江蘇 連云港222061
摘要: 為提高國產加固計算機的計算處理能力,提出基于龍芯3A1500的計算加速模塊設計方法,介紹了模塊設計思路;硬件方面采用國產龍芯3A1500處理器及DDR3內存,設計了3A1500+2FPGA的硬件組成模式,并介紹了電源及復位電路設計方法;軟件方面搭配國產中標麒麟操作系統(tǒng),設計了與模塊匹配的計算加速軟件。最后進行性能測試,與X86酷睿L2400進行了性能對比。結果表明,該設計可大幅提高國產龍芯計算機的計算性能,平均計算加速比達到5以上,驗證了設計方法的有效性,對國產加固計算機在高性能計算方向的應用具有指導性意義。
中圖分類號: TP332
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170625
中文引用格式: 王延鵬. 基于龍芯3A1500的計算加速模塊設計方法[J].電子技術應用,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 引言

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

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

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

1 設計思路

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

2 硬件設計

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

jsj1-t1.gif

    龍芯3A1500處理器為龍芯系列4核處理器,最高工作頻率1 GHz,片內集成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)絡芯片連接;利用北橋A-LINK高速總線,實現(xiàn)與南橋的互聯(lián)。此外,北橋芯片還提供1路PCIE X16接口(可拆分為2路PCIE X8)和1路PCIE X2接口,用于系統(tǒng)內的功能模塊擴展,并連接于VPX連接器;北橋提供顯示功能,支持VGA及DVI顯示接口。南橋內部集成豐富的功能外設接口,包括高速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 電源電路設計

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

jsj1-t2.gif

    本模塊涉及電源種類較多,設計思路為通過統(tǒng)一電源供電,在模塊設計各種電源轉換電路,提供各器件工作所需各電壓。在本設計中,依據(jù)VPX架構的特點,電源輸入統(tǒng)一由12 V供電,理論上可提供300 W以上的功率,而本模塊功耗在60 W以內,可滿足功耗需求。

    CPU核心電壓CPU_1.1V由12 V直流電源經DC-DC模塊轉化而來,最高可提供30 A 1.1 V電源。12 V經DC-DC模塊轉化為1.5 V、2.5 V、1.0 V,分別給予內存、FPGA供電。5 V電壓由12 V轉化提供,后經過LDO芯片轉化為其他板級電壓。

2.2 時鐘電路設計

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

jsj1-t3.gif

2.3 復位電路設計原理

    本設計采用MAX706決定整個模塊的復位。首先上電復位后由VPX連接器提供電源和原始的復位信號,主模塊中MAX706負責完成對CPU、南橋和外圍電路的復位工作,芯片內部集成嚴格的時序邏輯控制電路,可以保證系統(tǒng)按照嚴格的時序進行復位,完成穩(wěn)定啟動。系統(tǒng)可以通過CPU的GPIO信號控制系統(tǒng)整體復位。系統(tǒng)復位電路原理框圖如圖4所示。

jsj1-t4.gif

2.4 DDR3電路設計原理

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

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

3 軟件設計

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

3.1 操作系統(tǒng)移植及驅動設計

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

3.2 計算加速軟件設計

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

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

jsj1-t5.gif

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

4 性能對比測試

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

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

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

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

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

jsj1-b1.gif

    各平臺測試計算運行時間對比如圖6所示。

jsj1-t6.gif

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

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

jsj1-t7.gif

5 結束語

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

參考文獻

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

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

[3] 趙輝,萬俊偉,鮑忠貴,等.自主可控技術在試驗任務領域的應用研究[J].飛行器測控學報,2015,34 (2):109-114.

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

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

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

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

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

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

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



作者信息:

王延鵬

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

此內容為AET網(wǎng)站原創(chuàng),未經授權禁止轉載。