论文部分内容阅读
摘要:本文结合可编程逻辑器件的发展对可重构计算技术的产生、发展历程做了简要的概述,以期对特定应用领域设计的基于FPGA的动态可重构计算技术研究有所启迪
关键词:可重构计算 发展 简述
可重构计算是一种介于软件和专用硬件之间的新的求算方式,兼具了软件的通用性和硬件的高效性。20世纪90年代以来,随着电子技术和计算机技术的不断进步,可重构计算正逐步成为一个新的研究热点并已经广泛应用于信号处理领域、数据加密领域,硬件演化计算、定制计算、嵌入式系统领域并在军事领域和航天领域凸显出优势。时至今日,基于FPGA的可重构计算技术的相关研究取得了很大的进展,并在诸多领域成功的实现应用,发展前景广泛,同时在现有研究成果和技术基础上,又向更深远的自演化方向发展。
一、可重构计算技术简述
计算目标的实现主要有两种,一种是采用对通用微处理器进行软件编程的方式,一种是采用专用集成电路的方式。前者通用性好,但运算速度不高,效率低;后者处理速度快,但只能针对特定的算法,几乎没有任何灵活性,通用性受限。可重构计算是一种介于软件和专用硬件之间的新的求算方式,兼具了软件的通用性和硬件的高效性,恰好补充了两者的缺陷,能够提供硬件功能的效率和软件的可编程性,是一种较为理想的求算方式。
早在20世纪60年代,美国加州大学计算机专家GeraidEstrin就已提出了可重构计算的初步设想;20世纪70年代末,前苏联计算机专家Suetlana P.khrtashev和StevenI.kartashev博士提出了动态可重构的系统结构的概念,对中大规模集成电路的动态重构系统软、硬件进行了研究,并成立了动态可重构结构公司;20世纪80年代,可重构技术得到了较大发展,在容错计算、并行处理,硅圆片集成电路等方面得到了广泛应用;进人20世纪90年代,随着微电子技术的发展,特别是可编程逻辑器件的出现,以及电子设计自动化技术的发展,基于具有可重构能力的芯片FPGA的硬件可重构研究就成为新的研究热点;21世纪以来,FPGA的动态重构研究在国际上已经得到了越来越多的关注,然而国内在此方面的研究还刚刚起步,从整体来看,可重构计算技术的研究仍旧处于初级阶段。
二、基于FPGA的可重构计算技术原理
1、可重构计算技术定义
可重构计算没有严格的定义,目前学术界普遍接受的一个定义是:使用集成了可编程硬件的系统进行计算,该可编程硬件的功能可由一系列定时变化的物理可控点来定义。
由此可见,可重构计算已经不是靠改变计算机体系结构来实现特定算法了,而是通过对特定可重构件Rid或是可控点的改动使用户能够使用相同的硬件执行不同的应用,通过对可编程硬件进行重新编程或局部重新编程来实现。利用可重构技术,能在现有或只增加少量硬件资源的情况下,使系统同时具有软件实现和硬件实现的优点。
2、可重构计算技术分类
根据可重构计算的不同研究方向,有多种分类方法。
按可重构件的粒度可分为细粒度和粗粒度。粒度是指可重构件的基本执行单元的数据位宽度,在一定程度上反映了可重构件的数据处理能力。一般将粒度不超过4的称为细粒度,大于4的称为粗粒度。粒度细,则可重构件的通用性好,但配置指令较多,并且针对某些特定算法,不能获得最优的处理结构;粗粒度可重构件通常针对特定的应用领域(如密码处理,多媒体处理)设计,结构进行了优化,配置也相对简单。如果一个可重构体系中包括细粒度和粗粒度两种RU,则称其为混合粒度结构。
基于FPGA的可重构计算系统,按重构发生的时间分为静态重构和动态重构。静态重构是指在可重构件运行之前对其进行预先配置,在运行过程中其功能保持不变,重构必须在中断系统功能执行的情况下进行。动态重构是指能在可重构件运行的过程中实时配置的可重构,实现功能的改变。其中,动态重构按实现面积的不同,又分为局部动态重构和全局动态重构。目前大多数FPGA是静态可重构的,而针对特定应用领域设计的FPGA大部分是支持动态可重构的,例如RaPiD和PipeRench。静态重构与动态重构的本质区别是配置时间的长短,前者配置时间大约需数毫秒或数十毫秒,而后者配置时间一般为几十纳秒,为动态实时可重构的实现提供了依据。
根据主处理器与可重构件的连接紧密关系,可分为紧耦合连接和松耦合连接两种方式。典型的紧耦合连接方式有:可重构件作为主处理器的一个功能部件直接集成在主处理器中即功能单元模式,或可重构件以协处理器的形式通过局部总线与主处理器连接,即协处理器模式。典型的松耦合连接的方式有:可重构件作为辅助处理器通过外部总线与主处理器连接,或可重构件作为主机外部独立的处理器通过I/O接口与主处理器进行连接。
3、基于FPGA的可重构计算技术原理
基于Flash工艺或反熔丝工艺的FPGA,具有非易失性。编程完成后,即使撤除工作电压,FPGA的配置数据仍然保留,但由于不能重复编程或编程时间较长,不适宜可重构计算。基于SRAM工艺的FPGA具有易失性的特点,每次重新加电FPGA都要重配置,这一特点一度被很多用户认为是个不利因素,但由此导致的FPGA器件的资源配置可改变特性刚好满足可重构体系结构的要求,这一特征成为FPGA在许多新领域获得广泛应用的关键,并成为可重构计算系统发展的持续驱动力量。
基于FPGA的可重构技术,就是利用FPGA可以多次重复编程配置的特点,通过时分复用的方式利用FPGA内部的逻辑资源,使在时间上离散的逻辑电路功能模块能在同一FPGA中顺序实现的技术。根据现在对基于FPGA的可重构计算技术的研究方向,针对特定应用领域设计的基于FPGA的动态可重构计算技术研究更具潜力和前景。
关键词:可重构计算 发展 简述
可重构计算是一种介于软件和专用硬件之间的新的求算方式,兼具了软件的通用性和硬件的高效性。20世纪90年代以来,随着电子技术和计算机技术的不断进步,可重构计算正逐步成为一个新的研究热点并已经广泛应用于信号处理领域、数据加密领域,硬件演化计算、定制计算、嵌入式系统领域并在军事领域和航天领域凸显出优势。时至今日,基于FPGA的可重构计算技术的相关研究取得了很大的进展,并在诸多领域成功的实现应用,发展前景广泛,同时在现有研究成果和技术基础上,又向更深远的自演化方向发展。
一、可重构计算技术简述
计算目标的实现主要有两种,一种是采用对通用微处理器进行软件编程的方式,一种是采用专用集成电路的方式。前者通用性好,但运算速度不高,效率低;后者处理速度快,但只能针对特定的算法,几乎没有任何灵活性,通用性受限。可重构计算是一种介于软件和专用硬件之间的新的求算方式,兼具了软件的通用性和硬件的高效性,恰好补充了两者的缺陷,能够提供硬件功能的效率和软件的可编程性,是一种较为理想的求算方式。
早在20世纪60年代,美国加州大学计算机专家GeraidEstrin就已提出了可重构计算的初步设想;20世纪70年代末,前苏联计算机专家Suetlana P.khrtashev和StevenI.kartashev博士提出了动态可重构的系统结构的概念,对中大规模集成电路的动态重构系统软、硬件进行了研究,并成立了动态可重构结构公司;20世纪80年代,可重构技术得到了较大发展,在容错计算、并行处理,硅圆片集成电路等方面得到了广泛应用;进人20世纪90年代,随着微电子技术的发展,特别是可编程逻辑器件的出现,以及电子设计自动化技术的发展,基于具有可重构能力的芯片FPGA的硬件可重构研究就成为新的研究热点;21世纪以来,FPGA的动态重构研究在国际上已经得到了越来越多的关注,然而国内在此方面的研究还刚刚起步,从整体来看,可重构计算技术的研究仍旧处于初级阶段。
二、基于FPGA的可重构计算技术原理
1、可重构计算技术定义
可重构计算没有严格的定义,目前学术界普遍接受的一个定义是:使用集成了可编程硬件的系统进行计算,该可编程硬件的功能可由一系列定时变化的物理可控点来定义。
由此可见,可重构计算已经不是靠改变计算机体系结构来实现特定算法了,而是通过对特定可重构件Rid或是可控点的改动使用户能够使用相同的硬件执行不同的应用,通过对可编程硬件进行重新编程或局部重新编程来实现。利用可重构技术,能在现有或只增加少量硬件资源的情况下,使系统同时具有软件实现和硬件实现的优点。
2、可重构计算技术分类
根据可重构计算的不同研究方向,有多种分类方法。
按可重构件的粒度可分为细粒度和粗粒度。粒度是指可重构件的基本执行单元的数据位宽度,在一定程度上反映了可重构件的数据处理能力。一般将粒度不超过4的称为细粒度,大于4的称为粗粒度。粒度细,则可重构件的通用性好,但配置指令较多,并且针对某些特定算法,不能获得最优的处理结构;粗粒度可重构件通常针对特定的应用领域(如密码处理,多媒体处理)设计,结构进行了优化,配置也相对简单。如果一个可重构体系中包括细粒度和粗粒度两种RU,则称其为混合粒度结构。
基于FPGA的可重构计算系统,按重构发生的时间分为静态重构和动态重构。静态重构是指在可重构件运行之前对其进行预先配置,在运行过程中其功能保持不变,重构必须在中断系统功能执行的情况下进行。动态重构是指能在可重构件运行的过程中实时配置的可重构,实现功能的改变。其中,动态重构按实现面积的不同,又分为局部动态重构和全局动态重构。目前大多数FPGA是静态可重构的,而针对特定应用领域设计的FPGA大部分是支持动态可重构的,例如RaPiD和PipeRench。静态重构与动态重构的本质区别是配置时间的长短,前者配置时间大约需数毫秒或数十毫秒,而后者配置时间一般为几十纳秒,为动态实时可重构的实现提供了依据。
根据主处理器与可重构件的连接紧密关系,可分为紧耦合连接和松耦合连接两种方式。典型的紧耦合连接方式有:可重构件作为主处理器的一个功能部件直接集成在主处理器中即功能单元模式,或可重构件以协处理器的形式通过局部总线与主处理器连接,即协处理器模式。典型的松耦合连接的方式有:可重构件作为辅助处理器通过外部总线与主处理器连接,或可重构件作为主机外部独立的处理器通过I/O接口与主处理器进行连接。
3、基于FPGA的可重构计算技术原理
基于Flash工艺或反熔丝工艺的FPGA,具有非易失性。编程完成后,即使撤除工作电压,FPGA的配置数据仍然保留,但由于不能重复编程或编程时间较长,不适宜可重构计算。基于SRAM工艺的FPGA具有易失性的特点,每次重新加电FPGA都要重配置,这一特点一度被很多用户认为是个不利因素,但由此导致的FPGA器件的资源配置可改变特性刚好满足可重构体系结构的要求,这一特征成为FPGA在许多新领域获得广泛应用的关键,并成为可重构计算系统发展的持续驱动力量。
基于FPGA的可重构技术,就是利用FPGA可以多次重复编程配置的特点,通过时分复用的方式利用FPGA内部的逻辑资源,使在时间上离散的逻辑电路功能模块能在同一FPGA中顺序实现的技术。根据现在对基于FPGA的可重构计算技术的研究方向,针对特定应用领域设计的基于FPGA的动态可重构计算技术研究更具潜力和前景。