FPGA可重构计算
- 格式:doc
- 大小:441.50 KB
- 文档页数:8
基于FPGA的可重构计算系统摘要:重构计算技术结合了通用处理器和ASIC两者的优点,能够提供硬件功能的效率和软件的可编程性。
本文首先对可重构计算技术的基本概念作了概要介绍,介绍了目前的一些典型研究成果,并探讨可重构计算的关键技术和发展趋势。
关键字:可重构计算;FPGA1 引言:传统计算目标的实现主要有两种方式:一是ASIC方法,即使用专用特定的集成电路,以完全硬件的方式来实现计算任务。
这种方法的主要特点是为特定计算任务专门设计,开发周期长,一次性投入大,缺乏灵活性,难以升级,但是可为目标任务特别定制,运行效率高、速度快,或者说是不可编程的,任务稍有变化就必须修改电路。
二是通用微处理器方法,选择处理器的指令依某种算法构成一个新的指令序列,就成了完成特定计算任务的软件。
通过修改软件便可达到改变系统功能的目的,而硬件无需做任何改动。
这种方法开发简单、灵活可变、易升级,然而这种可编程性是以牺牲系统的性能和速度为代价换来的。
上述两种方法各有利弊,可重构计算恰好补充了两者的缺陷。
它利用硬件电路进行计算,具有极高的系统性能,同时它还具有可编程性,可以根据应用或中间结果的需要动态配置电路的实现形式。
不同的应用在同一可重构计算硬件平台上都能获得非常高的计算加速比。
可重构计算系统的关键特征是通过硬件完成计算从而提高性能,并保留软件手段的灵活性。
2可重构技术概述可重构设计核心思想即为采用可动态匹配和编程的逻辑器件实现特定功能。
可重构计算系统作为一种新的体系结构,采用可编程的硬件模块来实现计算,以及面向可重构系统的操作系统来管理硬件资源、划分和调度硬件任务,并向开发人员提供高层次的编程模型。
在典型的基于现场可编程门阵列(FPGA)的可重构系统中,决定FPGA功能的硬件配置信息可以像软件程序那样动态调用或修改,这样保留了硬件计算速度快、效率高的优点,又兼具了软件的灵活性、开发周期短和易维护的特性。
3 可重构技术的分类3.1 重构方式按照重构的方式,系统重构可以分为静态系统重构和动态系统重构。
静态系统重构是指目标系统的逻辑功能静态重载,只能在运行前配置的系统,如下图1所示:FPGA功能在外部逻辑的控制下,通过存储于存储器中不同的目标系统数据重新下载,从而实现芯片逻辑功能的改变。
动态系统重构是指能在运行过程中实时配置的可重构系统,如下图1所示。
重构过程可以与程序执行同时进行,那么这种重构称为动态重构或实时重构。
对于时序变化的数字逻辑系统,其时序逻辑的发生不是通过调用芯片内不同区域、不同逻辑资源组合而成的,而是通过对具有专门缓存逻辑资源的FPGA进行局部或全局的芯片逻辑的动态重构而快速实现的。
动态系统结构的FPGA具有缓存逻辑(Cache Logic),在外部逻辑的控制下,通过缓存逻辑对芯片逻辑进行全局或局部的快速修改,通过有控制重新布局布线的资源配置来加速实现系统的动态重构。
就动态重构实现面积的不同,又可以分为全局重构和局部重构。
图1可重构方式的分类(1)全局重构。
对FPGA器件或系统能且只能进行全部的重新配置。
在配置过程中,计算的中间结果必须取出存放在额外的存储区,直到新的配置功能全部下载完为止,重构前后电路相互独立,没有关联。
(2)局部重构。
对重构器件或系统的局部重新配置,与此同时,其余局部的工作状态不受影响。
局部重构对减小重构的范围和单元数目,大大缩短重构时间,占有相当的优势。
3.2 耦合方式用可重构器件构造的基本体系结构按可重构处理单元(RPU)和主处理器的耦合方式,可以分为以下的四种。
(1)RPU作为独立的处理单元包含多个FPGA,通过输入输出(I/O)接口连接总线,与主处理器间通信很少,是耦合度最小的连接方式,如图2 (a)所示。
(2)RPU作为附属处理单元,挂在主机的本地总线上,通过缓存(Cache)来实现和主处理器之间的连接。
主处理器和RPU之间有较大的的通信延迟,但允许较大程度的独立运算,如图2 (b)所示。
(3)RPU作协处理器,可以执行较大粒度的独立运算,RPU可运行多个时钟周期而无需主处理器的干预,而功能单元每执行一次定制指令就必须和主处理器交互。
这是一种紧耦合方式,如图2 (c)所示。
(4)RPU作主处理器芯片内的功能单元(FU:Functional Unit),作为主处理器的一个扩展的数据通道,始终处于CPU指令的控制下,其输入输出操作数存储于寄存器中,如图2 (d)所示。
图2 可重构单元RPU和主处理器的耦合关系3.3重构粒度粒度是指系统中可重构处理单元(RPU:Reconfigurable Processing Unit)的操作数的宽度。
如果一个可重构体系结构中包括粗粒度和细粒度两种RPU,则称其为混合粒度的可重构体系结构。
在可重构结构应用中,粒度决定配置时间和配置数据量,是影响性能的关键因素。
A、细粒度在细粒度(Fine.Grained)的可重构体系结构中,RPU中的处理元素通常是逻辑门、触发器、查找表等,它们进行位(bit)级操作,具有灵活性,实现一个有限状态机的布尔函数。
细粒度可重构硅片利用率低、功耗大;配置数据量大、重构时间长;在逻辑层进行编程开发相对难度较高,难以适应粗粒度的计算应用。
B、粗粒度在粗粒度(Coarse.Grained)的可重构体系结构中,RPU中的处理元素可能包括完整的功能单元,像算术逻辑单元AIU、乘法器等,它们进行字级的操作,它的高效性适用于计算密集型的应用。
粗粒度的可重构计数采用多bit宽度的数据通道和互连,能够在硅片上对复杂操作进行高效的实现,节省了路由操作,提高了硅片利用率。
配置数据相对细粒度较少,重构时间也相对减少。
FPGA具有最细的重构粒度(1位),适于实现位级逻辑。
如美国虚拟计算机(Virtual Computer)公司的Virtual Computer是由52个Xilinx XC4010 FPGA组成的可重构硬件系统,作为主机的协处理器,用于逻辑仿真、设计测试和算法处理。
3.4 可重构计算系统的构成可重构计算基于现场可编程门阵列(FPGA)的编程技术主要有两种,一种是反熔丝技术,但是这种技术的可重构实时性太差;另一种是基于静态存储器SRAM可编程原理的FPGA编程技术,这种硬件包含计算单元阵列,这些计算单元的功能由可编程的配置位来决定,当前大多数的可重构设备是基于静态存储器的。
可重构计算系统的典型结构包括可重构计算部件(提供可编程逻辑)、运行控制部件(提供运行控制机制)和运行时软件环境(涉及任务及数据的动态调度),如图3所示。
如同可重构计算部件要随着应用的不同而进行不同配置一样,运行控制机制也会因为应用及其计算方式的不一样而不同,因此这样的体系结构需要有一套开发系统来支持架构的配置。
它包括设计方法(包括应用描述语言、设计流程)、编译子系统(将高层的应用描述转化为对硬件平台的配置数据)。
随着可编程开关的使用,硬件结构变得可更改,这种结构通过高密度VLSI而实用化,也促使可重构计算再次成为研究热点。
这些芯片集成了一些存储单元,其中记录有用于可编程开关的配置信息和用于动态计算的状态信息。
在配置前,芯片结构只能算是完工了一部分(芯片本身是完成了制造工艺的成品),配置设备再使芯片具有一个特定的功能。
因此在完成配置后才能得到功能结构完整的芯片。
图3 可重构计算系统硬件架构及其支持环境单纯FPGA 结构并不能很好地满足应用要求,目前已有的可重构系统中都分别包含了可重构逻辑资源和固定逻辑资源,固定逻辑资源既可是一个宿主机也可只是一个微控制器,按照它们之间的耦合程度可以将可重构计算系统大致分为4种模式。
1 功能单元模式可重构逻辑资源作为主处理器上的一个功能单元,此类结构在通用计算机系统结构中比较常见。
2 协处理器模式可重构逻辑资源可以作为协处理器,在这种结构中可重构逻辑可以运行多个时钟周期而无需主处理器的干涉,而功能单元每执行一次定制指令就必须和主处理器交互,这也是一种紧耦合方式。
3 独立处理单元模式属于这类系统的可重构逻辑部分一般包含多个 FPGA,而固定部分则是一个宿主计算机二者之间通过总线接口连接起来,这是一种最松散的耦合形式。
4 SoPC模式处理器、存储器和可编程逻辑集成在同一个FPGA芯片上,称为单芯片可重构计算系统SoPC。
这种系统中CPU和FPGA 仍然是紧密耦合的结构,同时片上存储系统和CPU与FPGA 接口能力则进一步提高了系统的性能。
以往的SoC设计依赖于固定的ASIC而SoPC是以可编程逻辑器件取代ASIC设计起来十分灵活快捷,再加上是按标准器件生产出来的,规模效应使得它的成本也不高,因此越来越多地成为系统级芯片设计的首选。
4 基于FPGA的可重构技术4.1 FPGA简介及其可重构原理FPGA(用户现场可编程门阵列器件)是一种可由用户根据所设计的数字系统要求,在现场由自己配置、定义的高密度专用数字集成电路。
FPGA具有可重复利用,低设计成本并且研发周期短的特点,只需用硬件描述语言编写系统功能并由EDA工具转化为下载文件,下载到FPGA中即可实现该系统功能。
如要再次实现其他电路功能,只需修改源程序重新产生下载文件,并且下载过程非常迅速。
这一特点使得FPGA得到了广泛的应用,特别是小型和中型的设计。
目前有基于SRAM(静态存储器)的FPGA和基于反熔丝的FPGA。
基于反熔丝的FPGA不能重复擦写,需要使用专用编程器,开发过程较复杂。
虽然在保密性、布线能力、系统速度、耐高温、抗辐射和功耗等方面具有优势,但在可重构系统的研究中,由于其对重构速度、重构方式等的特殊要求,使得基于SRAM的FPGA成为主要的研究和实现平台。
所谓基于SRAM的FPGA,是指可以通过对分布于其中的SRAM存储单元进行编程配置,从而实现逻辑单元、内部互连线以及输入/输出等的可编程性的FPGA。
SRAM基本单元的结构如图5所示,它由两个CMOS反相器和一个用来控制读写的MOS传输开关构成,写入不同的数据即可得到不同的配置信号。
一般情况下,MOS传输开关处于断开状态,因此功耗极低。
而且由于其结构上的特点,使之具有高度的可靠性,同时SRAM的结构特点也决定了它具有很高的编程配置速度,使之非常适合作为可重构系统应用。
图 5 SRAM基本单元结果SRAMFPGA的可重构的实质最主要在于SRAM表的可重新配置,以及连线资源的可重新配置。
SRAM FPGA的突出优点是可以反复编程,系统上电时,给FPGA加载不同的配置数据就可以完成不同的硬件功能,甚至在系统运行时改变其配置,实现系统功能的动态重构。
4.2 FPGA简介及其可重构原理基于FPGA的动态可重构技术是指基于SRAM编程和专门结构的FPGA,在一定控制逻辑驱动下,不仅具有在系统重新配置电路功能的特点,同时还具有动态重构电路逻辑的能力。