胡 国
(中航工业西安航空计算技术研究所,陕西 西安 710068)
基于FPGA的动态重构系统重构过程研究
胡 国
(中航工业西安航空计算技术研究所,陕西 西安 710068)
有效融合了专用集成系统(Application Specific Integrated Circuit, ASIC)与通用目的处理器(General Purpose Processor, GPP)优势的动态可重构系统,以其良好的灵活性、可重构性以及优异的计算性能,逐步应用于从嵌入式系统到高性能计算的许多领域。针对动态可重构系统的重构过程控制进行了研究,详细分析了动态重构过程中的一些潜在问题。针对重构过程中重构模块与固定模块之间的耦合问题和数据交互问题,提出了一种新的动态重构过程通信控制机制。该机制将重构过程划分为重构前、重构中和重构后3个阶段,并在各个阶段对数据交互和通道隔离进行了有效控制。实验验证表明,该机制能够有效保证动态重构过程的正确性。
动态可重构系统;重构过程;耦合;数据交互;通信控制机制
近年来,基于FPGA的可重构计算以其开发灵活、运算实时快速等特点,逐步成为电子计算的研究热点[1]。作为一种全新的计算方式,可重构计算符合半导体技术的发展趋势。它结合通用化和专用化的优点,利用可编程器件可多次重配置逻辑单元功能和互联的特性,可以根据计算任务配置计算资源,兼具了硬件实现的高性能和软件实现的灵活性。
基于可重构计算技术实现的动态可重构系统,可简单定义为至少包含一个可重构硬件模块的计算系统。该硬件模块的功能能够被最终用户修改,修改过程主要通过对系统中的可编程逻辑器件进行部分动态重构来实现。动态可重构系统可以在只增加少量硬件资源的情况下,将软件实现和硬件实现的优点合二为一。它的出现使传统意义上硬件和软件的界限变得模糊,硬件系统得以软件化。动态可重构系统自被提出以后,就在一些数据密集应用领域显示出了强大的计算性能和数据处理能力,例如军事目标匹配、定制大数运算、图形图像处理、声纳波束合成、基因组匹配等。
随着动态重构技术的成熟,动态可重构系统可以在运行过程中在不影响其他功能模块正常运行的情况下实现重构区域功能切换。在动态重构系统中,应用任务被划分为两类:软件任务和硬件任务,其中硬件任务又可以分为静态区域任务和重构区域任务两种。软件任务执行在FPGA的内嵌处理器核或外部处理器上,静态区域任务执行在FPGA静态区域上,重构区域任务执行在FPGA的可重构区域上。动态可重构系统可以为用户提供统一的软/硬接口、统一的软/硬件函数库,用户可以像调用软件任务一样,通过处理器实时灵活地调用重构区域任务。这种设计将传统的硬件任务软件化,使得用户同时获取了硬件的高性能和软件的高灵活,为用户提供了更多的设计探索空间[2]。
动态重构过程是指FPGA的内嵌处理器核或外部处理器发出重构命令到重构完成可重构区域开始正常工作的这段时间。动态重构过程主要实现可重构区域功能的刷新,需要关注其正确性以及实时性。正确性主要包括重构过程中重构区域自身的正确配置和重构区域与静态区域之间的有效隔离;实时性主要是指在重构时间开销上实现优化。动态重构过程的安全有效控制是保证动态可重构系统功能切换以及正确运行的基本条件。
为了保证可重构区域内部电路的刷新不影响基本系统的正常运行,Xilinx部分重构设计工具PlanAhead在布局阶段按照用户定义的区域约束文件,标记可重构区域的范围,进行重构模块的放置。但是,仅仅依靠设计工具的物理层布局约束是远远不够的,动态重构系统在重构过程中依然存在着一些潜在问题。
2.1 重构模块和固定模块之间的耦合问题
尽管Xilinx部分重构设计工具PlanAhead在静态区域和重构区域之间自动插入了固定的特殊布线通道,但在动态重构过程中,仍需关注两个区域之间的故障传播风险。静态区域和重构区域之间的耦合主要包括解耦合逻辑以及重构控制逻辑两部分。除了按照部分重构用户手册[3]的建议,利用寄存器在两个区域之间进行解耦合外,还需要采取相应的设计手段,避免动态重构过程中区域之间的故障传播风险,保证重构过程的正确性。设计手段主要包括以下两点:
(1)重构过程中隔离重构区域
在动态重构过程中,为避免与重构模块相连接的其他模块受到该任务输出有误或者未知信号的影响,导致不可预知的故障,应该在静态区域和重构区域之间的接口处添加相应的传输使能控制通道以控制重构区域的信号输入和输出。动态重构过程中,传输使能控制通道无效,重构区域和静态区域之间无法进行交互,实现有效隔离,避免了重构区域和静态区域之间故障传播的可能。
(2)重构结束后复位重构区域
由于动态部分重构不同于静态重构,在配置过程中不包含特定的功能,例如全局置位-复位(Global Set-Reset,GSR)或者全局三态(Global Tri-State,GTS)来强制可重构逻辑恢复到初始状态。位于可重构区域的硬件电路刷新之后,因为新逻辑的状态和行为不可预知,可能会向静态区域输出一些无用信号造成系统故障。所以每一次在重构结束后不论是I/O还是内部逻辑,均需要进行一次有效复位以确保其恢复到初始状态。
2.2 重构模块与固定模块之间的数据交互问题
在动态可重构系统中,重构模块通常要从固定模块接收计算数据,完成计算任务后又将计算结果传输回固定模块。这样就产生了重构模块与固定模块之间的数据交互问题。
重构区域与静态区域之间接口中的数据通道是重构模块与固定模块进行数据交互的唯一途径。重构模块与固定模块的数据交互过程如图1所示。首先固定模块将需要计算处理的数据发送到源数据通道。重构模块从源数据通道读取数据,然后进行计算,计算完成以后将结果数据发送到结果数据通道。最后固定模块从结果数据通道接收计算处理结果。
图1 数据交互过程图
在重构过程中,重构模块与固定模块之间需要进行有效隔离,不能进行数据交互。但在重构过程前后,重构模块与固定模块之间的数据交互存在以下一些潜在问题:
(1)重构前,固定模块发起重构命令过后,固定模块继续向源数据通道发送数据;
(2)重构前,源数据通道仍有一些数据还未进行计算,就开始重构;
(3)重构前,重构模块当前的计算还未完成,就开始重构;
(4)重构后,重构模块接收更新前源数据通道中残留的数据,进行无用的计算;
(5)重构后,重构模块在缺省状态下输出一些无用的计算结果,传输到固定模块;
(6)重构后,结果数据通道中更新前的结果数据还未完全读回,就被更新后重构模块的计算结果覆盖了。
以上这些问题,会造成固定模块与重构模块数据交互发生错误,增大动态可重构系统的计算错误率,进而严重影响到动态可重构系统的正确运行。因此,在动态重构过程中要对数据交互进行严格的控制,避免这些问题的发生。
针对重构模块与固定模块之间的耦合问题以及数据交互问题,本文提出一种动态重构过程通信控制机制,可以有效解决重构过程中固定模块与重构模块之间的耦合问题和数据交互问题。该通信控制机制将动态重构通信过程划分为重构前、重构中和重构后3个阶段,并在各个阶段对数据交互和通道隔离进行了有效控制。
3.1 动态重构过程通信模型
在动态可重构系统中,重构模块与固定模块之间的通信是通过其间的接口来完成的。动态重构过程通信模型主要包括源数据通道、结果数据通道、传输使能控制通道、中断控制和复位控制5个部分,如图2所示。其中源数据通道用于固定模块向重构模块发送需要进行计算处理的源数据,结果数据通道用于固定模块从重构模块读回计算完成以后输出的结果数据,传输使能控制通道用于固定模块和重构模块的数据通道隔离,中断控制用于响应重构模块的中断请求,复位控制用于每一次重构模块重配置以后的有效复位控制。
图2 动态重构过程通信模型
3.2 动态重构过程通信控制模式
动态重构过程通信控制模式分为抢占式和非抢占式两种。抢占式通信是指处理器发起重构命令以后,在最短时间内立即进行重构区域的功能刷新。非抢占式通信是指处理器发起重构命令以后,需要等待当前计算任务彻底完成以后,才进行重构区域的功能刷新。下面对这两种通信控制模式的通信控制过程进行具体介绍。
(1)抢占式
动态重构过程的抢占式通信控制过程流程图如图3所示。
图3 抢占式流程图
处理器发起重构命令以后,停止向源数据通道发送数据。传输使能控制通道关闭,固定模块与重构模块进入到隔离状态。然后,重构模块进行重配置。重配置完成以后,清空源数据通道和结果数据通道中的所有数据,传输使能控制通道打开,重构模块进行有效复位。有效复位以后,固定模块和重构模块恢复正常通信。
(2)非抢占式
动态重构过程的非抢占式通信控制过程如图4所示。
图4 非抢占式流程
处理器发起重构命令以后,停止向源数据通道发送数据。重构模块继续进行计算任务,直到源数据通道没有计算数据,并且所有计算结果已经传输到结果数据通道。然后结果传输使能控制通道关闭,固定模块与重构模块进入到隔离状态。重构模块进行重配置。重构模块进行重配置的同时,固定模块从结果数据通道读取计算结果。读取完成以后,确认重配置是否完成。完成以后,清空源数据通道和结果数据通道中的所有数据,传输使能控制通道打开,重构模块进行有效复位。有效复位以后,固定模块和重构模块恢复正常通信。
动态可重构系统可以在只增加少量硬件资源的情况下,将软件实现和硬件实现的优点合二为一。它的出现使传统意义上硬件和软件的界限变得模糊,硬件系统得以软件化。本文对动态重构过程中潜在的固定模块与重构模块的耦合问题、数据交互问题进行了详细分析,提出了一种动态重构过程通信控制机制,在介绍了通信模型的基础上详细分析了抢占式和非抢占式两种通信模式下的通信控制流程。在实验验证中,根据本文提出的动态重构过程通信控制机制设计了一种重构模块通信接口,并将该接口应用到动态重构系统中。实验结果表明,重构过程通信控制机制以及重构模块通信接口解决了重构模块与固定模块之间的耦合问题和数据交互问题,有效保证了重构过程的正确性。
[1] COMPTO N K, HAUCK S. Reconfigurable computing: a survey of systems and software[J]. ACM Computing Surveys, 1999, 34(2): 171-210.
[2] 魏少军,刘雷波,尹首一.可重构计算处理器技术[J]. 中国科学:信息科学,2012,42(12): 1559-1576.
[3] Xilinx Inc. Partial reconfiguration user guide [EB/OL]. (2011-10-19)[2017-01-01].http://www.xilinx.com.
Research on reconfiguration procedure of dynamically-reconfigurable system based on FPGA
Hu Guo
(Xi’an Aeronautics Computing Technique Research Institute of AVIC, Xi’an 710068, China)
Since dynamically-reconfigurable system effectively integrates the advantages of application specific integrated circuit system and general purpose processor system, it has been progressively used in many fields, such as embedded application and high-performance computation. Reconfiguration procedure control of dynamically-reconfigurable system is discussed in this paper. After some potential problems during the reconfiguration procedure being introduced, a communication control mechanism of reconfiguration procedure is proposed to solve the coupling problem and data interaction problem between reconfiguration module and static module, in which reconfiguration procedure is divided into three stages, then data interaction and channel isolation can be controlled effectively at each stage.The experimental results prove that the communication control mechanism can effectively ensure the correctness of reconfiguration procedure.
dynamically-reconfigurable system; reconfiguration procedure; coupling; data interaction; communication control mechanism
TP302.1
A
10.19358/j.issn.1674- 7720.2017.11.023
胡国.基于FPGA的动态重构系统重构过程研究[J].微型机与应用,2017,36(11):78-80,84.
2017-01-13)
胡国(1989-),男,硕士研究生,助理工程师,主要研究方向:计算机应用。