《电子技术应用》

基于龙芯3A1500的计算加速模块设计方法

2017年电子技术应用第12期
王延鹏
(江苏自动化研究所,江苏 连云港222061)
摘要: 为提高国产加固计算机的计算处理能力,提出基于龙芯3A1500的计算加速模块设计方法,介绍了模块设计思路;硬件方面采用国产龙芯3A1500处理器及DDR3内存,设计了3A1500+2FPGA的硬件组成模式,并介绍了电源及复位电路设计方法;软件方面搭配国产中标麒麟操作系统,设计了与模块匹配的计算加速软件。最后进行性能测试,与X86酷睿L2400进行了性能对比。结果表明,该设计可大幅提高国产龙芯计算机的计算性能,平均计算加速比达到5以上,验证了设计方法的有效性,对国产加固计算机在高性能计算方向的应用具有指导性意义。

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.

王延鹏

(江苏自动化研究所,江苏 连云港222061)


    中图分类号: 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.

0 引言

    军事技术信息化越来越深入的今天,传统加固计算机只依靠CPU进行数据处理的方式已不能满足对高速计算的高要求,对于研发高性能数据处理能力的计算机技术的需求已愈发强烈。遵守加固计算机通用化、系列化、模块化的设计思路,在现有通用计算机平台上,兼容现有标准体系,提升计算机处理能力,是现在重点研究的方向。

    国际上对高速计算技术已发展的比较成熟,不断发布高速处理器及GPU协助计算方法等,计算加速效果非常良好。但国外提供的软硬件存在安全隐患,可能在处理器及软件系统中被设置后门和漏洞[1],使我方设备及数据安全性受到严重威胁。

    深刻挖掘我国自有技术潜力[2-3],开发自主可控的具有高速计算能力的技术至关重要[4]。本文提出一种基于国产龙芯处理器的计算加速技术,采用3A1500+2FPGA的模式,搭配我国自主开发的麒麟操作系统,能够在软件硬件方面达到自主可控,满足对高速计算技术的需求。

1 设计思路

    为了提高计算处理模块的通用性,兼具FPGA计算定制能力和CPU操作系统兼容性,CPU+FPGA的模式[5-6]可以充分发挥龙芯平台的特长,又可弥补高性能计算方面不足,是一种适合现有军用需求的设计思路。本设计名为基于龙芯3A1500的计算加速模块,简称计算加速模块。

2 硬件设计

    基于龙芯3A1500的计算加速模块功能框图如图1所示,以龙芯3A1500处理器为核心[7],搭配AMD 780E+SB710芯片组,构成模块硬件主框架。计算加速模块采用高速DDR3内存芯片,结合两片高性能FPGA芯片,以提供高性能的计算能力。本模块制版采用标准6U VPX总线架构,具有较强的抗恶劣环境能力,适用于对计算能力要求较高的舰载、车载设备。

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显存芯片实现显示存储空间的扩展;通过北桥PCIE X1接口与Inteli210千兆网络芯片连接;利用北桥A-LINK高速总线,实现与南桥的互联。此外,北桥芯片还提供1路PCIE X16接口(可拆分为2路PCIE X8)和1路PCIE X2接口,用于系统内的功能模块扩展,并连接于VPX连接器;北桥提供显示功能,支持VGA及DVI显示接口。南桥内部集成丰富的功能外设接口,包括高速A-LINK、USB、SATA以及LPC接口等,USB、SATA接口可直接从南桥输出,PS/2接口可通过南桥的LPC总线挂接SuperIO实现。

    为实现较强的计算能力,计算加速模块搭载两块FPGA芯片,FPGA芯片采用Xilinx公司的高性能VIRTEX-6。FPGA0通过HT总线与龙芯3A1500实现通信,并通过PCIE X8总线与北桥780E连接,外出两路RapidIO X4高速串行总线,满足高速数据交换的需求。FPGA1通过PCIE X8总线与北桥780E连接,外出一路RapidIO X4高速串行总线。

2.1 电源电路设计

    电源作为电路运行的动力和载体,电源设计是电路设计的基础。合格的电源设计,需要在充分了解各器件及电路需求的前提下,配备好各电源电压、功耗分配、纹波干扰等。通过本设计供电电路及转换电源,提供各器件工作所需电压,具体的电源分配如图2所示。

jsj1-t2.gif

    本模块涉及电源种类较多,设计思路为通过统一电源供电,在模块设计各种电源转换电路,提供各器件工作所需各电压。在本设计中,依据VPX架构的特点,电源输入统一由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晶体通过外部时钟发生器,为南桥、北桥以及PCIE设备提供其所需的工作时钟,模块的时钟分配见图3。

jsj1-t3.gif

2.3 复位电路设计原理

    本设计采用MAX706决定整个模块的复位。首先上电复位后由VPX连接器提供电源和原始的复位信号,主模块中MAX706负责完成对CPU、南桥和外围电路的复位工作,芯片内部集成严格的时序逻辑控制电路,可以保证系统按照严格的时序进行复位,完成稳定启动。系统可以通过CPU的GPIO信号控制系统整体复位。系统复位电路原理框图如图4所示。

jsj1-t4.gif

2.4 DDR3电路设计原理

    为提高模块抗恶劣环境能力,计算加速模块内存采用全板载DDR3颗粒实现双通道设计方式。龙芯3A1500处理器内部集成两路存储控制器MC0和MC1,存储控制器MC能提供标准的DDR3存储设备接口,可以实现与外部DDR3芯片的数据传输。

    龙芯3A1500最多支持4个片选cs、16 bit行列地址总线和3 bit逻辑bank总线。本设计中选用10片DDR3内存颗粒,单片颗粒容量4 Gb,16 bit数据位宽。其中8片组成4 GB运行内存,2片组成ECC纠错内存。所设计内存电路内存频率为400 MHz。

3 软件设计

    为实现本文提出的基于龙芯3A1500的计算加速方法,需要为计算加速模块进行软件设计。计算加速模块软件设计主要包括操作系统相关设计及计算加速软件设计。对于操作系统,基于软硬件国产化的需求,选择近年来发展较好的中标麒麟操作系统,在中标麒麟操作系统基础上进行对应龙芯3A1500平台的操作系统移植及驱动设计;计算加速软件的设计,可充分发挥计算加速模块双FPGA优异的计算性能,协调系统合理分配资源,将FPGA融入到计算过程中。

3.1 操作系统移植及驱动设计

    中标麒麟操作系统是基于Linux内核开发的一套系统,故其驱动和软件开发基本遵循Linux开发流程。内核移植在技术上以开源Linux操作系统为主,采用交叉编译的方式进行移植开发,修改处理器初始化及硬件驱动等相关代码,针对处理器架构进行中标麒麟系统移植。结合龙芯3A1500处理器硬件平台的特点,设计和开发龙芯3A1500处理器的支持模块。主要完成处理器初始化代码、相关驱动的修改,使其支持网络功能,支持JFFS2、YAFFS文件系统[8];修改设计MTD分区,使内核可以挂载存储设备上的文件系统。

3.2 计算加速软件设计

    计算加速模块包含CPU和FPGA,CPU执行软件指令,FPGA可根据需要被配置成不同结构的硬件加速器。硬件加速器的配置及运行由处理器(软件)控制,对软件编写提出了较高要求,需对整个配置过程及加速器的接口细节进行全面了解方可完成程序构建。软硬件协同计算屏蔽了硬件细节,提供一个硬件透明的编程模型,可重构硬件以函数的形式进行抽象,即硬件实现程序化,简单调用硬件函数可实现可重构硬件的搭建。硬件函数的形式与使用方式与其他软件函数库中的函数一样,整个底层硬件的具体细节对其是透明的[9]

    硬件函数的运行需要提供相应的软硬件支撑环境,按图5所示的层次结构设计支持硬件透明编程的可重构系统。整个系统分为五层,应用层以下是片上系统的软硬件基本结构,是通用的。针对不同的应用,只需要编写相应的应用程序即可。

jsj1-t5.gif

    各层的功能:软硬件任务设计库提供了混合任务编程接口,结合软件函数库和硬件函数库,可以按照传统的软件编程方式,设计出软硬件高度混合的系统。软/硬件任务调度器和可重构资源管理器对硬件函数的调用、运行状态等进行管理,并跟踪和管理可重构资源。硬件函数与软件函数在运行方式与物理基础上存在本质的差异,软件函数是串行执行的指令集合,硬件函数是二维的逻辑电路,可以与CPU同步执行,加入相应的硬件函数管理模块可建立统一的软硬件运行过程。可重构资源管理器应随时跟踪管理可重构资源的使用情况,为调用的硬件函数分配合适的资源。

4 性能对比测试

    本模块的创新点是在龙芯3A1500平台上,设计了通过双FPGA对龙芯3A1500模块进行计算加速,在延续现有软硬件环境的同时,提高国产化计算机的计算性能。因此,在对计算加速模块进行性能测试时,重点考虑FPGA对模块加速效果的测试。

    本文对计算加速模块的方法为:在两个FPGA上不停地执行FFT[10]、DES加密、RK微分方程组、解算π、快速排序等多种算法,测试计算消耗时间,对消耗时间进行比对,得到计算加速比数据。

    加速比τ=加速前消耗时间/加速后消耗时间

    在其他计算机平台上,选用合适的软硬件对以上算法以一定方式实现,测试各计算时间。将计算出的数据与其他计算机平台进行比较,验证FPGA对计算加速模块的加速效果。

    本测试所选用测试计算机平台为国际通用的X86平台在我国加固领域应用较广的Intel Core Duo L2400双核。各测试计算机平台信息如表1所示。

jsj1-b1.gif

    各平台测试计算运行时间对比如图6所示。

jsj1-t6.gif

    龙芯3A1500处理器标称主频为1 GHz,但在本文所搭建系统实测时,其稳定工作主频为800 MHz,因此本测试中龙芯3A1500工作频率为800 MHz。

    由图6可以看出,即使LS2400为双核处理器,在内存2 GB的情况下,计算性能仍然较为优秀,说明X86平台计算性能优异。在800 MHz的工作频率下,龙芯3A1500在计算性能比之LS2400差异明显,3A1500+2FPGA模式可以大大提高龙芯3A1500计算机的计算性能,加速比除DES加密计算略低于5之外(需要对算法继续优化),其他算法均超过5,综合计算性能优越。因此本设计中,龙芯3A1500+2FPGA的模式大大弥补了龙芯3A1500在计算处理能力方面的不足。图7为统计3A1500+2FPGA模式下针对各算法的计算加速比。

jsj1-t7.gif

5 结束语

    本文介绍了基于龙芯3A1500的计算加速模块的设计方法,包括设计思路、硬件设计方案、软件设计方案,最后给出性能对比测试。结果表明,3A1500+2FPGA模式大大提升了龙芯3A1500平台的整体的计算性能,平均计算加速比达到5以上,增强了基于国产化处理器计算机模块的计算性能,对于我国加固计算机在高性能方向的发展有着积极的意义。

参考文献

[1] 侯玉梅,朱向东.棱镜门事件对我国网络安全的警示[J].计算机安全,2014(5):33-35.

[2] 鄢斌,谷会涛.国产自主计算机软硬件技术发展综合[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高速接口的实现[J].国外电子测量技术,2014,32(4):66-68.

[7] 龙芯中科技术有限公司.龙芯3A2000/3B2000处理器数据手册V1.2[Z].北京:龙芯中科技术有限公司,2016.

[8] 刘晓楠,赵荣彩,庞建民.软件移植、二进制翻译和国产处理器发展[J].信息工程大学学报,2014,15(5):613-616.

[9] 王珊,张建志.一种远程动态可重构的嵌入式系统设计[J].无线电工程,2014,44(8):93-96.

[10] 张杰,顾乃杰,张明.龙芯3B处理器上FFT算法向量化研究[J].小型微型计算机系统,2015,36(7):1639-1643.

继续阅读>>