0 引言
軍事技術(shù)信息化越來越深入的今天,傳統(tǒng)加固計(jì)算機(jī)只依靠CPU進(jìn)行數(shù)據(jù)處理的方式已不能滿足對(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è)置后門和漏洞[1],使我方設(shè)備及數(shù)據(jù)安全性受到嚴(yán)重威脅。
深刻挖掘我國(guó)自有技術(shù)潛力[2-3],開發(fā)自主可控的具有高速計(jì)算能力的技術(shù)至關(guān)重要[4]。本文提出一種基于國(guó)產(chǎn)龍芯處理器的計(jì)算加速技術(shù),采用3A1500+2FPGA的模式,搭配我國(guó)自主開發(fā)的麒麟操作系統(tǒng),能夠在軟件硬件方面達(dá)到自主可控,滿足對(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)稱計(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)境能力,適用于對(duì)計(jì)算能力要求較高的艦載、車載設(shè)備。
龍芯3A1500處理器為龍芯系列4核處理器,最高工作頻率1 GHz,片內(nèi)集成2個(gè)64位400 MHz的DDR3控制器、2個(gè)16位800 MHz的HT控制器。龍芯3A1500的雙HT總線接口為連接FPGA,以提高計(jì)算能力的方式提供了高速接口。計(jì)算加速模塊采用AMD 780E芯片作為主模塊的北橋,通過北橋的HT總線接口與龍芯3A1500處理器連接;通過DDR3顯存芯片實(shí)現(xiàn)顯示存儲(chǔ)空間的擴(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)行的動(dòng)力和載體,電源設(shè)計(jì)是電路設(shè)計(jì)的基礎(chǔ)。合格的電源設(shè)計(jì),需要在充分了解各器件及電路需求的前提下,配備好各電源電壓、功耗分配、紋波干擾等。通過本設(shè)計(jì)供電電路及轉(zhuǎn)換電源,提供各器件工作所需電壓,具體的電源分配如圖2所示。
本模塊涉及電源種類較多,設(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)化為其他板級(jí)電壓。
2.2 時(shí)鐘電路設(shè)計(jì)
本設(shè)計(jì)中時(shí)鐘設(shè)計(jì)涉及器件主要有龍芯3A1500、南北橋及FPGA芯片。龍芯3A1500處理器通過外部的晶振等時(shí)鐘源提供其所需的工作時(shí)鐘;外接的14.318 MHz晶體通過外部時(shí)鐘發(fā)生器,為南橋、北橋以及PCIE設(shè)備提供其所需的工作時(shí)鐘,模塊的時(shí)鐘分配見圖3。
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)可以通過CPU的GPIO信號(hào)控制系統(tǒng)整體復(fù)位。系統(tǒng)復(fù)位電路原理框圖如圖4所示。
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行列地址總線和3 bit邏輯bank總線。本設(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)化的需求,選擇近年來發(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ì)算過程中。
3.1 操作系統(tǒng)移植及驅(qū)動(dòng)設(shè)計(jì)
中標(biāo)麒麟操作系統(tǒng)是基于Linux內(nèi)核開發(fā)的一套系統(tǒng),故其驅(qū)動(dòng)和軟件開發(fā)基本遵循Linux開發(fā)流程。內(nèi)核移植在技術(shù)上以開源Linux操作系統(tǒng)為主,采用交叉編譯的方式進(jìn)行移植開發(fā),修改處理器初始化及硬件驅(qū)動(dòng)等相關(guān)代碼,針對(duì)處理器架構(gòu)進(jìn)行中標(biāo)麒麟系統(tǒng)移植。結(jié)合龍芯3A1500處理器硬件平臺(tái)的特點(diǎn),設(shè)計(jì)和開發(fā)龍芯3A1500處理器的支持模塊。主要完成處理器初始化代碼、相關(guān)驅(qū)動(dòng)的修改,使其支持網(wǎng)絡(luò)功能,支持JFFS2、YAFFS文件系統(tǒng)[8];修改設(shè)計(jì)MTD分區(qū),使內(nèi)核可以掛載存儲(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ì)軟件編寫提出了較高要求,需對(duì)整個(gè)配置過程及加速器的接口細(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)用,只需要編寫相應(yīng)的應(yīng)用程序即可。
各層的功能:軟硬件任務(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)行過程。可重構(gòu)資源管理器應(yīng)隨時(shí)跟蹤管理可重構(gòu)資源的使用情況,為調(diào)用的硬件函數(shù)分配合適的資源。
4 性能對(duì)比測(cè)試
本模塊的創(chuàng)新點(diǎn)是在龍芯3A1500平臺(tái)上,設(shè)計(jì)了通過雙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所示。
各平臺(tái)測(cè)試計(jì)算運(yùn)行時(shí)間對(duì)比如圖6所示。
龍芯3A1500處理器標(biāo)稱主頻為1 GHz,但在本文所搭建系統(tǒng)實(shí)測(cè)時(shí),其穩(wěn)定工作主頻為800 MHz,因此本測(cè)試中龍芯3A1500工作頻率為800 MHz。
由圖6可以看出,即使LS2400為雙核處理器,在內(nèi)存2 GB的情況下,計(jì)算性能仍然較為優(yōu)秀,說明X86平臺(tái)計(jì)算性能優(yōu)異。在800 MHz的工作頻率下,龍芯3A1500在計(jì)算性能比之LS2400差異明顯,3A1500+2FPGA模式可以大大提高龍芯3A1500計(jì)算機(jī)的計(jì)算性能,加速比除DES加密計(jì)算略低于5之外(需要對(duì)算法繼續(xù)優(yōu)化),其他算法均超過5,綜合計(jì)算性能優(yōu)越。因此本設(shè)計(jì)中,龍芯3A1500+2FPGA的模式大大彌補(bǔ)了龍芯3A1500在計(jì)算處理能力方面的不足。圖7為統(tǒng)計(jì)3A1500+2FPGA模式下針對(duì)各算法的計(jì)算加速比。
5 結(jié)束語
本文介紹了基于龍芯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ā)展有著積極的意義。
-
FPGA
+關(guān)注
關(guān)注
1638文章
21877瀏覽量
610626 -
模塊
+關(guān)注
關(guān)注
7文章
2766瀏覽量
48682 -
amd
+關(guān)注
關(guān)注
25文章
5533瀏覽量
135417 -
龍芯
+關(guān)注
關(guān)注
3文章
363瀏覽量
31607
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
迅為3A6000_7A2000開發(fā)板龍芯全國(guó)產(chǎn)處理器與龍芯 3A5000完全兼容
迅為3A6000開發(fā)板/龍芯3A6000與龍芯3A5000等龍架構(gòu)處理器軟件兼容
我們的龍芯3號(hào)---致龍芯15周年(上篇)
我國(guó)首臺(tái)龍芯3A高性能計(jì)算機(jī)誕生
龍芯公布下一代 CPU 3A4000 系列產(chǎn)品
關(guān)于龍芯三號(hào)簡(jiǎn)單介紹_龍芯三號(hào)規(guī)格及硬件開發(fā)系統(tǒng)

龍芯新發(fā)布3A3000+7A的嵌入式設(shè)備
龍芯3A4000的性能水平公布 可達(dá)到國(guó)際主流CPU的水平
國(guó)產(chǎn)龍芯3A5000微型電腦的性能
龍芯3A5000/3B5000采用LoongArch國(guó)產(chǎn)自主指令集架構(gòu)
龍芯中科工控領(lǐng)域定制芯片龍芯2K1500流片成功
龍芯3C5000 16核處理器全國(guó)產(chǎn)工業(yè)計(jì)算機(jī)模塊成功上市

龍芯3a5000和3a3000的區(qū)別
國(guó)產(chǎn)龍芯3A6000微型計(jì)算機(jī)BOX-T6A11-LX,加速國(guó)產(chǎn)化替代

龍芯ITX主板GM7-3601搭載龍芯3A5000處理器的工控主板

評(píng)論