可重构系统原型设计及动态重构技术实现
摘 要:可重构计算具有应用灵活、性能高、功耗低、成本低等优势。动态重构技术作为可重构计算的配置方法,具有配置方法灵活、耗时短、任务实时响应能力强等特点。文章首先提出了可重构系统原型的设计思路,并着重分析了可重构计算单元、存储单元、可重构管理单元等关键模块的设计理念。然后分析了动态配置技术的实现原理,并且基于可编程逻辑阵列,搭建了“嵌入式处理器+总线+可重构计算单元”的硬件系统,并实现了两种图像处理IP核的动态配置。
关键词:可重构计算;系统原型;动态配置技术
引言
可重构系统一般由主处理器耦合一组可重构的硬件部件,处理器负责任务的调度,而可重构的硬件部件负责执行算法[1]。可重构架构的研究主要集中在以下几个方面:不同粗细粒度的架构研究、处理单元结构研究、处理单元的互联方式研究、新型存储结构研究等。可重构系统的重构方法主要包含两大类:静态重构技术、动态重构技术。静态重构需要整个系统复位,往往需要断电重启;动态重构技术是在系统不断电的情况下,可以完成对指定计算资源、逻辑资源的模块级或电路级重构,具有功能实时切换、资源可复用等优势。
动态重构技术作为一种计算系统的新型配置设计思路,从传统的追求计算资源“大而全”,向追求资源的利用率转变。与传统的静态配置或完全配置方法相比,动态重构技术无需对所有计算资源重构,可以有选择性的进行重构资源加载,一方面,能够保证系统在其他单元正常工作的同时,根据待处理任务需求及数据特点完成自适应配置,保证了对逻辑资源的时分复用;另一方面,能够大大缩短功能切换单元的配置时间,保证任务的无缝对接及实时处理。
文章组织结构如下:首先提出了可重构系统原型的设计思路,从可重构计算单元、存储单元、可重构控制单元等多个方面做了细化阐述;然后分析了动态配置技术的实现原理,并基于Xilinx开发平台,搭建了“嵌入式处理器+可重构计算单元”的验证系统,实现了粗化、细化两种边缘提取IP核的动态配置;最后对试验结果进行评估。
1 可重构计算系统架构设计方案
可重构计算原型系统的体系架构采用RISC架构通用处理器(CPU)、可重构控制单元、可重构计算阵列、可重构I/O接口和存储系统等部分组成。CPU与可重构计算阵列之间为并行处理关系。从系统设计复杂度和灵活度考虑,两者采用总线结构耦合。因此,在系统平台架构中,通用处理器、计算单元和接口单元之间采用总线连接方式。其系统架构见图1。
系统变换形态流程如下:系统进行计算功能变换时,通用处理器向可重构控制单元发送重构命令,可重构控制单元管理、调度硬件资源,并上报系统工作状态;当系统资源准备就绪后,通用处理器控制可重构硬件读取硬件配置数据并加载到器件中,以变换可重构计算单元或接口单元的形态,统一变换系统中全局存储空间的划分、管理及访问控制,各计算模块共享内存区的映射关系图;同时,根据新的计算形态加载相应的软件和数据,最终完成整个系统形态变换流程。功能切换时,只对可重构硬件的一部分进行重新配置,其他部分可继续执行任务。动态部分重构可以减少配置数据,加快了计算形态变换速度,提高了系统的适应性和灵活性。
通用处理器运行操作系统,负责系统的控制、计算形态管理、计算资源管理和任务调度;处理那些控制比较复杂、不便映射到硬件上,且计算量较少的计算任务,如变长循环、分支控制、存储器读写等。可重构硬件则用于处理计算量大、并行度高、任务相关度低的部分,执行程序中拥有规则的数据访问模式,控制简单的那部分“计算密集型”代码,主要由可重构控制单元、可重构计算单元、可重构I/O接口及片上高速总线组成。其中计算单元及I/O接口可根据应用需求重构为不同的计算形态。
1.1 可重构系统计算单元模型设计
可重构系统计算单元的基本思想要求将计算和存储两部分进行解耦合,因此采用了数据和指令存储物理分离的哈佛结构,将数据访问模块、指令组织与调度模块和指令执行模块分离。同时,根据流处理模型中生产者消费者局部性的特点,将数据访问模块划分成软件可管理的多个存储层次,各自保持独立运行。可重构系统计算单元主要有三个部分组成:控制单元、存储单元、可重构处理单元阵列。
控制单元。执行算法时,控制单元对可重构系统计算单元进行总体控制,协调可重构处理单元阵列、配置存储器、本地存储器、数据分配单元、数据合并单元的运行,根据系统运行状态和各个单元内部控制信号的反馈信息,改变各个单元的状态,保证系统正确运行。
存储单元。存储单元分为三部分:数据存储,寄存器堆以及配置存储。数据存储包括本地存储器,数据分配单元以及数据合并单元。本地存储器用于存储可重构处理单元阵列计算需要的输入数据和输出数据;数据分配单元用于从本地存储器或寄存器堆中读取数据;数据合并单元用于向本地存储器或寄存器堆写入计算单元的输出数据。寄存器堆用于存储中间数据,并向阵列发送配置字。
可重构计算基础单元。可重构计算单元是可重构阵列的核心部分,可以理解为粗粒度的最小计算单元。为了能够执行更多类型的算法,需要支持尽量更多的功能。例如,对于常用的计算密集型运算,需要支持FFT、FIR、DCT和点积等功能。因此成熟的可重构系统中,应该包含足够多基础功能、不同粒度需求的可重构计算资源库,以便于更加灵活的资源组合。
1.2 可重构系统存储单元模型设计
可重构计算系统的存储单元由CPU和可重构阵列共同访问操作。因此,存储单元主要研究CPU和可重构计算单元对内存访问的协调与控制机制,存储单元的模型设计需要主要解决如下问题:避免内存访问冲突、解决多个处理器模块并行工作会降低主存的访问效率的问题、解决可重构计算单元面临的端口和速度的限制。
存储管理单元主要解决多个模块并行工作时会降低访存效率的问题:多个模块共享片外内存会引起访问冲突从而导致等待;访问片外内存的端口数量非常有限,不利于数据通路中的并行访问。主要采取如下改进措施:(1)为可重构硬件平台增加内存管理单元,实现片外和片上内存的映射,保持数据一致性;(2)为内存访问提供多端口流水化处理或数据预读取;为应用提供定制化的缓存结构。
1.3 可重构管理单元模型设计
可重构管理单元负责控制任务,它主要接收通用处理器指令,完成系统形态管理和资源管理;计算单元的软件加载、配置管理和数据交换等任务。
其主要完成的工作有:(1)实现全局存储空间的划分、管理及访问控制,解决数据访问冲突,阻止非法访问;将各模块传递的数据存储在统一的存储区,以并行方式协同完成计算任务;(2)接收通用处理器的指令,将共享存储系统中的操作系统及应用软件加载到计算单元;(3)对系统内部可重构硬件资源进行管理,确保相应可重构计算单元或I/O接口功能变换时,不影响系统正常运行功能;(4)用于实现对可重构计算单元的动态配置,可以根据应用任务需求修改计算单元架构和计算模块的功能,并将计算单元、I/O接口的总线转换为统一的内部互连总线,提高了对外连接的适应性。
2 基于可编程逻辑阵列的动态配置技术实现
2.1 动态配置技术原理
动态配置技术是实现可重构计算单元切换的关键技术,保证逻辑资源的时分复用,在优化资源配置的基础上实现对不同任务的响应。动态配置技术支持的配置阶段及配置策略,直接决定了不同重构单元是否能够实现无缝切换,进而影响了任务实时响应能力。目前成熟的动态配置技术需要提前编译待重构的逻辑资源、定义各硬件模块的接口和时序约束、明确各模块在可编程逻辑阵列上的实现区域及模块之间的物理连线。动态配置技术主要包括三个阶段,即设计阶段、编译阶段、运行阶段[2]。
设计阶段,根据任务处理需求,需要设计不同计算任务对应的功能电路,每种计算任务可能对应一种功能电路,或者是若干个功能电路的组合。在基于可编程逻辑阵列的逻辑设计中,电路设计采用硬件语言描述或者原理图描述的方法;顶层设计文件通过综合器生成网表文件,在布局/布线阶段,依旧可以对流处理器进行优化设计。
编译阶段,基于配置文件的生成工具,生成初始配置文件及若干动态配置文件;初始配置文件包含了非重构区域的系统或电路描述,每个动态配置文件对应一种计算任务。动态配置文件经过重构文件生成器,生成最终可以动态加载的配置文件。
运行阶段,非重构区域的处理器或者控制电路,可以自行分析待处理数据的特点或依据顶层控制指令,完成配置文件的动态加载。加载过程往往通过重构控制器及动态配置接口完成,重构配置器在重构数据库中选择相应计算任务对应的配置文件,通过动态配置接口将其加载到可重构平台中,并将可重构分区内的逻辑资源重构。
2.2 基于ICAP动态配置技术实现
Xilinx公司提供支持动态配置技术的整套开发工具,包括用于动态配置的配置接口IP硬核及相应的加载配置函数。开发者需要基于标准开发流程,搭建硬件平台并制作可重构计算单元的IP核;根据可重构部分的资源占用情况,在FPGA内部划分可重构区域资源的大小、位置及种类。ICAP(Internal Config Access Port)是可重构资源的内部配置接口,可以挂在到内部总线上;硬件平台搭建完成之后,编译系统会为ICAP提供唯一寻址地址,作为从外部存储空间向内部可重构区域加载的数据入口和通道。
如图2所示,基于ICAP的动态配置技术主要包含如下步骤:创建处理器硬件系统、创建顶层设计、创建布局/布线工程、定义可重构分区、添加可重构模块、设计规则检测、自定义配置、生成比特流、生成启动文件。创建处理器硬件系统及顶层设计后,需要对模块占用的资源进行预估,并根据预估结果创建顶层设计的约束文件。定义可重构分区、添加可重构模块阶段,需要充分考虑布局布线的时序及资源要求。图3为可重构系统的布局图,主要包括处理器、可重构分区、数据总线及其他非重构IP核等,处理器负责资源调度、可重构接口控制等;可重构分区用于实现流处理器的多形态变换;数据总线同时用作动态配置文件加载、各模块数据通信通道。
2.3 可重构计算系统平台搭建
如图4所示,基于动态配置技术的可重构架构的验证系统包括上位机、可重构计算系统(主要由可编程逻辑阵列组成),两者之间通过通信总线连接。主要包含以下模块:(1)可重构控制单元。该单元包含:内嵌通用处理器PowerPC、Linux操作系统、PLB总线等,主要负责可重构单元的控制、数据传输、资源调度等。(2)通信单元。该单元主要包含:以太网接口及串口,用于图像传输及控制指令传输。(3)内存管理单元。该单元主要包含片内定制的乒乓存储单元,用于源图像及中间处理数据的缓存。(4)可重构逻辑单元。可重构控制单元根据待处理数据的信息特征,通过动态重构方式加载不同配置文件。如可重构硬件模块1支持图像边缘的粗提取,可重构硬件模块2支持图像边缘的精细化提取。
上位机负责可重构配置单元的加载控制,能够根据待处理任务的数据特点和大小以及处理内容,选择最适应的可重构加载文件,并向可重构计算系统发出重构指令。可重构计算系统通过加载不同配置信息,可重构计算单元来并完成处理任务。在任务处理过程中,可重构计算系统可将任务状态信息、任务处理结果等用户关心的参数上报给上位计算机并打印输出。
文章实现的图像边缘提取算法包括如下步骤:图像平滑、图像锐化、边缘提取、边缘连接,最终得到完整的边缘图像。高斯平滑与LOG锐化过程采用空间域滤波方法,二值处理采用自适应阈值分离方法,边缘细化采用形态学变换的方法。其中粗提取模块主要包含以下三个步骤:图像平滑、图像锐化、二值处理。精细提取模块包括以下四个步骤:图像平滑、图像锐化,二值处理和边缘细化四个步骤。
3 试验结果分析
3.1 试验环境
可重构计算系统的试验平台基于Xilinx提供的ML507开发板,处理器采用PowerPC440,操作系统采用Linux,处理器通过PLB总线与可重构配置区域及其他IP核通信。具体配置参数如表1所示。
3.2 试验结果评估
配置文件规模评估。实验结果表明,如果将“PowerPC处理器+PLB总线+图像处理IP核”的硬件系统全部重构,需要配置的比特流文件为1914KB;而图像处理IP核的重构只需285KB。由此可以看出,与静态配置技术相比,动态配置技术能够在保证大部分逻辑资源不变的情况下,选择性的完成资源重构。
配置时间评估。动态配置技术实现中采用的内部配置访问接口ICAP的时钟频率为50MHz,数据带宽8bit,理论配置速度为0.5× 108B/s。实验结果表明,动态配置技术无论在配置数据的加载时间还是重构总耗时,都大大减少。配置时间的减少,保证了计算资源的无缝切换,提高了不同任务的响应速度及实时处理能力。
4 结束语
文章主要有如下贡献:(1)提出了可重构计算原型系统的设计思路,着重介绍了可重构系统计算单元、可重构系统存储单元、可重构管理单元等关键模块的设计理念。(2)搭建验证平台,并实现了动态配置技术。文章基于Xilinx开发平台,搭建了“PowerPC处理器+PLB总线+可重构计算单元”的验证系统,设计了边缘提取的自主知识产权核,实现了基于ICAP动态配置接口的可重构计算。实验结果表明该验证平台不仅具有较高的计算能力和计算灵活性,而且具有较强的资源调度能力,能够大大缩短资源重构的占用时间。
未来工作包括以下几方面:(1)进一步完善体系结构设计方案和系统计算模型;(2)结合可重构硬件的发展,进一步开展可重构支撑技术的研究,如:任务时域划分模型、软硬件划分及调度模型、硬件资源管理模型等;(3)深入研究可重构计算基础模型,建立多种架构的可重构单元模型库,以适用于更多的应用场景。
参考文献
[1]方琛,等.粗粒度可重构处理器的结构研究与设计[D].上海:上海交通大学,2010.
[2]徐新民,等.FPGA动态部分重构的研究及位流信息重构的实现[J].科技通报,2008,24(2):236-230.
[3]Krill B,Amira A,Ahmad A,Rabah H.A new FPGA-based dynamic partial reconfiguration design flow and environment for image processing applications[J]. Visual Information Processing (EUVIP),2010.
[4]Interoperability and performance standards for data modems[Z]. MIL-STD-188-110B,2000.
[5]Giovanni D M,Gupta R K.Hardware-software codesign[J]. Readings in Hardware/Software Co-Design,2002
[6]KchuaiWu,JanMadsen.Run-timedynamic reconfiguration:Areality che
ck based on FPGA Architectures form Xilinx[J]. Norchip Conferenc
e,2005.
[7]Sergios Theodoridis,Konstantinos Koutroumbas.Pattern Recogntion,20
06.
[8]ChristianFdaSilva,AliceM.Tokarnia.RECASTER:Synthesis of Fault-Tolerant Embedded Systems based on Dynamically Reconfigurable FPGAs[J].Proceedings of the 18th International Parallel and Distributed Processing Symposium,2004.
[9]Dimos V. Dimarogonas,Kostas J. Kyriakopoulos. A connection bet
ween formation infeasibility and velocity alignment in kinematic multi-agent systems[J].Automatica,2008(10).