工具之家 > 现代电子技术 > 基于双FPGA系统的高速全局动态重构设计与实现

基于双FPGA系统的高速全局动态重构设计与实现

发布时间:2019-03-12 02:15:01 文章来源:工具之家    

 推荐工具:金融理财app工具实用工具

夏飞 李晖宙

摘 要 ji于shuangFPGAxinpiandekezhonggouyuanxingxitong提出yizhongxi统gaosu全judongtaizhonggoushejifangfa利yongXilinx Virtex?7xilieFPGAde常guipeizhitong道使yongyipian规mojiao小deFPGAxinpianzuoweizhonggoukongzhiqidui大规mo算faFPGA芯pianshixian全judongtaizhonggoushi验结guo表明xi统重构shijian小于6 msyu常规FPGAluojixia载fangfa相比peizhixiao率提gaoliao2~3geshu量ji

guanjian词: kebiancheng门阵列 ke重构计算 全局dongtai重构; bingxingpeizhitong道

zhong图分类hao: TN919?34 文献标识码: A wenzhang编hao: 14?373X21716?151?4

Abstract: A system design method of high?speed global dynamic reconfiguration is proposed which is based on a dual?FPGA reconfigurable prototype system. By virtue of the general configuration channel of Xilinx Virtex?7 Series FPGA a small?scale FPGA chip is used as the reconfigurable controller to realize the global dynamic reconfiguration of large?scale algorithm FPGA chip . The experimental results show that the system reconfiguration time is less than 60 ms and the configuration efficiency of the method is improved by 2 to 3 magnitude orders in comparison with the conventional FPGA logic downloading method.

Keywords: FPGA; reconfigurable computing; global dynamic reconfiguration; parallel configuration channel

dongtai重构是xian场ke编cheng门阵列Field?Programmable Gate ArrayFPGA)计算平台设计deji术难点之一qi重构nengli是xi统结构设计灵huoxinghe适ying性deti现系统dedong态重构neng力ti现zai重构deli度时jianhekongzhifang法多个fang面FPGA属于细粒度重构qijianpeizhixinxiliangda,需要开fagao效de重构方法,jiangdi重构开xiao,提高系统de实ji计算效率

1 FPGA

FPGA内部dejiben结构是luo辑dan元阵列,包kuoke编程逻辑mo块(CLB)、I/O模块(IOB)helian线ziyuan(PI)san部分[1],如图1所shiFPGA是完全butong于CPUGPUde一zhong超大规模集chengdianlu芯pian,qi功能需要zai芯片zhizao后再定义,用hukeyi根ju使用xuqiujiang其定义为一个处liqi,也可以定义为实现特定功能de逻辑器jian。

其zhongCLB是FPGAde基本逻辑dan元,它提供liao用户所需要de逻辑功能,tong常规则地排列cheng一个阵列,散布于整个芯片。

IOB完cheng芯片的内部逻辑和外部封装脚的jiekou,它可编程为输入/输出和shuang向I/Okousan种fangshitongchangpai列于芯片的四周;PI包括各种长度的连接线段和一些可编程的连接开关,它们将各个可编程逻辑块或输入/输出块连接qilai,构成特定功能的dianlu改bian各个CLB的功能或改变各个CLByuIOB的连接zu合都能改变整个芯片的功能。

2 FPGA重构

2.1 重构的定义和类型

FPGA的重构(Reconfiguration)指的是duiFPGAjin行重xinpeizhilaigai变其逻辑功能,ji对FPGA的功能进行重定义。FPGA的重构可分为jingtai重构和dong态重构,前者指系统逻辑功能的静态重载,jizai外部逻辑的kong制下,tongguo改写芯片peizhicunchu器zhong目标系统的shuju实现芯片逻辑功能的改变。tongguoJTAG duiFPGA 进行编程的方法ji为典型的静态重构方法。

dong态重构是指zai可重构器jian运行的guo程中,可根據需要进行实时配zhi改变电路结构,实现butong的功能,conger实现芯片逻辑功能的高速动态变huan[2]。动态重构方法使de系统中不tong时工zuo的模块可yifen时fu用FPGA的硬件资源,在动态切换过程中,系统其他模块仍能正常工zuo。动态重构能够提高系统的自适应能力hezi源利用率,而且对计算任务cong时间和kong间上进行分解,使FPGA不仅具有接近ASIC的速度,而且兼具软件的灵活性。根ju对芯片实现重构的区域和面积不tongdong态重构可以分为全局重构和局部重构。全局重构是指对整个FPGA器件进行重新配置。在配置过程中,计算的中间结果必须取出cun放在外部的cunchu器中,zhidao新的配置功能全部下载完为止,重构前后电路相互独li、没有关lian。局部重构是指对FPGA器件的一部分进行重新配置,在配置过程中,系统其余部分的工zuozhuang态不受影响。

2.2 动态重构方法

近年来随zhuoFPGA产品和技术的fa展,动态可重构FPGA作为一种新兴deji算结构,其设计li论和设计方法已经逐渐成为新的研究redian。基于不同结构的FPGA芯片实现动态重构的方法不同,目前常见的有以下liang种:

1) Off?Chip重构。通过改写芯片配置存储器来实现芯片的重构。FPGA内部的逻辑danyuan可实现多种电路功能,配置存储器(CM)用于装载逻辑单元功能和互连关系的配置xin息。这种方式需要首先将配置xinxitong过duan口传送至FPGA内部的CM,然后再将配置信息装载到芯片逻辑单元中,对逻辑功能进行修改。

(2 Context重构。这种方式仅限于基于多重Context结构的FPGA,cai用jiao换CM和片上Context存储器的部分或全部的配置数据来实现动态重构。FPGA内部的Context存储器可以存储多种配置信息。最早实现Context重构的是SIDNA工程提出的ming为现场可编程片上系统(Field Programmable System On a Chip,FIPSOC),它是一种具备可重构能力的粗粒度结构FPGA[3]。动态编程门阵列(Dynamically Programmable Gate Array,DPGA)是美guo麻省理工学院提出的一种基于多重context 重构方式的动态可重构FPGA[4]。又如美国California大学Morphoing System工程提出的一种粗粒度、多重Context结构的芯片M1[5]中可存储32种Context信息,通过切换Context部分或全部内容来改变配置,cong而kong制阵列单元实现新的逻辑功能。由于配置信息预先存储在FPGApiannei,芯片的重构时间仅取决于Context间的切换速度,重构开销一般仅需几纳秒。ciwaiRAPID[6]也是一种比较zhiming的粗粒度可重构结构。endprint

在商用领域,Xilinx公si的Virtexxilie是基于SRAM技术和Off?Chipjie构的可重构FPGA芯片,提供了Select MAP 32 b并行配置duan口,为芯片的快速重构提供了良好的硬件zhi持。

此外,Altera公司也成功推出了Stratix系列动态可重构FPGA[7]并获得了广泛的应用。文献[8]提出liaoyi种基于改进型游程编码的FPGA动态重构方法,提高了动态重构效率,但是本质上还是基于FPGA芯片提供的并行配置端口。

3 Virtex?7 FPGA配置端口

3.1 V7芯片配置模式

根据芯片是否能够zhu动加载配置数据,FPGA的配置方式可分为主动、bei动以jiJTAG(Joint Test Action Group)模式。除了JTAG模式只支持串行配置外,主被动模式都支持串行和并行(×8,×16和×32)配置方式[9]。

主动配置模式需要预先将配置文件xieru外部存储器中,FPGA加电后驱动配置时钟,cong片外存储器载入配置信息。在被动模式下,FPGA作为从属器件,需要外部控制器将数据写入FPGA配置存储器中。配置数据可以存放在系统任hecun储设备中,如硬盘、主存、FLASH,甚至可以嵌入CPU的執行代码,配置方式更灵活。JTAG模式通常作为系统的调试模式,主要用于开发huan节对芯片功能进行测试。XC7VX1140T作为Xilinx Virtex?7系列中的最高档芯片,能够支持主动串行、被动串行、JTAG并行(Select MAP)等多种配置模式[9]。其中Select MAP被动模式是速度最快的并行配置方式,本文cai用该模式实现系统的动态重构。

3.2 被动Select MAP模式

被动Select MAP模式下you8,×16和×32三种weikuan可供选择,主设备可以是微处理器、微控制器、DSP、CPLD等,主从设备的连接关系如图2所示。

CLOCK信号为控制信号和数据的cai样时钟,CS_B为片选,RDWR_B为配置读/写控制信号。并行Select MAP端口配置数据加载时序如图3所示。

配置过程包括初始化、配置启动、配置数据加载、CRC校验和START?UPwu个步骤:

1) 初始化。主设备首先拉diCONFIG_START信号启动配置过程,250 ns后将CONFIG_START信号拉高;FPGA采样到CONFIG_START信号为di后启动初始化,完成后将DONE信号置低。

(2) 清空配置存储器。主设备拉低INIT_START信号,FPGA采样到该信号后,自动清空配置存储器;控制器可延长INIT_START信号拉低的时间确保配置存储器被清空,随后拉高INIT_START信号表示初始化完成。

(3) 配置数据加载。配置存储器清空后,FPGA对配置模式引脚进行采样,确定数据加载方式;FPGA在CCLK时钟的上升yan采样配置数据,写入配置存储器。

(4) CRC校验。FPGA在加载配置数据的同时计算CRC值,并将结果和配置文件中内置的CRC值进行比较,如果不一zhi,则说明数据加载发生cuo误,FPGA随即将INIT_B引脚置低,中断配置过cheng控制器在配置过程中检测到INIT_B引脚被置低,则立即拉低CONFIG_START,重启配置过程。

(5) START?UP。当最后一个数据接收完成并校验无误后,FPGA将DONE信号置为高电平,表示FPGA配置完成;将所有I/O引脚由三态切换到用户设置的状态;对所有逻辑进行复位,由配置状态过渡到用户状态。

4 双FPGA系统全局动态重构

4.1 系统jie绍

本设计中采用双FPGA芯片,即使采yongyi块小规模的Virtex?7系列FPGA芯片作为控制器laidong态配置目标FPGA芯片。Virtex?7是全球首款28 nm FPGA系列,与Virtex?6器件相比,系统性能提高1倍,功耗降低[12],信号处理能力提升1.8倍,I/Odaikuan提升1.6倍,存储带宽提升2倍,达到2 133 Mb/s,是ye界密度最高的FPGA。该系列顶级的XC7VX1140T芯片集成了178 000个Slice,总计达1 139 200个逻辑单元;1 880个36 Kb Block RAM存储模块,总计67 680 Kb存储容量;片内还集成了3 360个DSP模块,可达到5 335 Gb MACS的峰值计算性能[10]。本设计采用V7系列较小规模的XC7VX330T芯片作为接口控制器,330T芯片内部包含个51 000个Slice,750个32 Kb BlockRAM和1 120个DSP,此外还集成了2个PCI?E端点(支持第二代PCI?E×8接口)和以太网MAC(媒ti访问控制器)模块及其他zeng强型IP Core、系统监控模块以及DCM (数字时钟guan理器)模块等,是实现数据交互和对目标FPGA芯片(即算法FPGA)实现动态配置的理想选择。

PCI?E×8接口是主机和算法加速器之间的主要互连通路,用于数据交互,传递操作指ling、原始数据、计算结果和算法FPGA重构所需的配置流文件,有效数据传输带宽为1.0 GB/s。控制FPGA和算法FPGA之间通过两个独立的双向128 b数据通道相连,算法FPGA通过这两个数据通道经控制FPGA与主机实现数据交互,峰值数据传输带宽为6.4 GB/s。此外,控制FPGAhuan和算法FPGA的并行配置端口相连,支持32 b并行高速配置,有效数据传输带宽为160 MB/s。

4.2 全局动态重构

图4为双FPGA原型系统全局动态重goushi意图。采用双FPGA原型系统的好处是可以灵活控制数据的I/O操作和动态配置全部过程。系统的动态重构过程由主机,PCI?E接口,CPLD,PROM,SRAM部件共同参与完成。由主机生成FPGA配置数据,并通过PCI?E接口向配置控制器XC7VX330T发出重构命令和配置数据。XC7VX330T的通用I/O接口与XC7VX1140T的Select MAP配置端口相连,作为控制器发起配置过程。系统动态重构过程如下(图4中的序号对应动态重构过程编号):endprint

(1) 采用静态重构方法将控制FPGA(XC7VX330T)的配置数据通过JTAG接口预先下载至PROM中;

(2) 设备加电后,CPLD从两块PROM芯片的4个Bank中选择一个设计加载至控制FPGA。加载过程完成后,XC7VX330T自动复位并进入正常工作状态,通过PCI?E接口与主机建立连接;

(3) 控制FPGA接收到主机发出的算法FPGA重构命令,进入启动配置状态;

(4) 控制FPGA从PCI?E接口接收主机发送的配置数据,并缓存在SRAM中;

(5) 配置数据接收完成后,控制FPGA启动对算法FPGA(XC7VX1140T)的动态重构过程,an照芯片被动模式下的配置时序将配置文件从SRAM存储器中读出,通过XC7VX1140T芯片SelectMAP32 配置端口写入FPGA配置存储器;

(6) 配置过程结束后,XC7VX1140T芯片返回配置完成信号(DONE),并自动复位,进入正常工作状态;

(7) XC7VX330T芯片将配置完成信号返回gei主机,配置过程结束,算法FPGA芯片进入正常工作状态,开始zhi行计算任务;

(8) 在正常工作状态下,如果XC7VX330T再次收到主机发出的重构命令,则重复步zhou4)~步骤(7)对算法FPGA实现动态重构。

4.3 动态任务切换

在系统工作过程中,主机和FPGA之间通过片外存储器的指定地址空间,采用DMA方式经PCI?E接口实现数据交互。对于简单的单个应用,主机首先通过配置通道将配置文件加载至FPGA,数据发送后启动计算过程,之后不再干预FPGA的工作,直到计算结果有效。而对包含不同算法和多个处理步骤的较复za应用则需要主机和FPGA的高效协同:主机在计算的特dinghuan节向FPGA发出操作命令,通过数据和配置通道提供配置文件和计算参数,对FPGA实现动态重构;FPGA则使用中断和状态寄存器报告程序的执行状态。主机根据当前应用类型和用户指定的算法选择合shide处理流程,在文件库中按次序调用相应的配置文件,通过动态重构将配置文件发送geiFPGA,实现不同应用和处理过程之间的任务切换,让不同应用程序或程序段分时使yongying件资源。通过自动改变硬件配置来适应正在运行的用户程序,可实现在不同计算任务之间进行快速切换,大大提高对应用的整体加速效果。

5 结 语

本文基于双FPGA芯片的可重构原型系统,提出了一种系统高速全局动态重构设计方法。利用Xilinx Virtex?7系列FPGA的常规配置通道,使用一片规模较小的FPGA作为重构控制器对大规模算法FPGA芯片实现全局动态重构,芯片重构时间小于60 ms,可以实现不同算法和应用的快速切换。与几十秒乃至上百秒的常规FPGA逻辑下载方法相比,配置效率提高了2~3个数量级,从而有效提高了系统的实际计算效率。

注:本文通讯作者为李晖宙。

参考文献

[1] HAUCK S DEHON A. Reconfigurable computing: the theory and practice of FPGA?based computing [M]. San Francisco: Morgan Kaufmann Publisher, 2008.

[2] 王志远,王建华,徐旸.可重构计算综述[J].小型微型计算机系统,2009,30(6):1203?1207.

[3] MORENO J M, MADRENAS J CABESTANY J, et al. Realization of self?repairing and evolvable hardware structures by means of implicit self?configuration [C]// Proceedings of the First NASA/DoD Workshop on Evolvable Hardware. [S.l.]: IEEE, 1999: 182?187.

[4] 覃祥ju,朱明程,张太镒,等.FPGA动态可重构技术原理及实现方法分析[J].电子器件,2004,27(2):277?282.

[5] MAESTRE R, KURDAHI F J, FERNANDEZ M, et al. A framework for reconfigurable computing: task scheduling and context management [J]. IEEE transactions on very large integration systems: system level design, 2001, 9(6): 858?873.

[6] EBELING Carl. Rapid: a configurable architecture for compute?intensive applications [EB/OL]. [2016?03?21]. http//www.cs.washing ton.edu/research/lis/rapid/overview. 2016.

[7] 李昆吉.FPGA动态可重构技术及其应用研究[D].哈尔滨:哈尔滨工业大学,2012.

[8] 邵龙.一种基于改进型游程编码的FPGA动态重构方法[J].电子器件,2014,37(5):1009?1012.

[9] Xilinx Corporation Product Specification. Virtex?7 Series FPGAs configuration user guide, UG470 (v1.10) [EB/OL]. [2016?04?22]. http://www.xilinx.com/support.html#documentation.

[10] Xilinx Corporation Product Specification. Virtex?7 series FPGAs overview, DS180 (V1.17) [EB/OL]. [2015?06?21]. http://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_

Overview.pdf.endprint

现代电子技术 2017年16qi

现代电子技术的其它文章 基于5G系统与WLAN的共存电源干扰控制方法研究 电教多媒体设备的节能电源设计与实现 具有仲裁机制的RS 485总线设计 guang纤通信局域网断点故障检测方法研究 混合动力汽车用电chibao结构分析及改进 三电平逆变器中点电位平衡的综合控制策略
转载请注明来源。原文地址:https://www.5420.com.cn/view/2019/0312/12784/
 与本篇相关的热门内容: