可重构计算技术及其发展趋势
摘 要:可重构计算技术结合了通用处理器和ASIC两者的优点,能够提供硬件功能的效率和软件的可编程性。对可重构计算技术的基本概念以及特征分类概要介绍的基础上,较为详细地介绍了目前的一些典型研究成果,并针对可重构计算的关键技术和发展趋势进行了探讨。
关键词:可重构计算;FPGA;粗(细)粒度;SoC
经过二十多年的发展,现代通用处理器的体系结构与传统冯·诺伊曼结构相比虽然已经有了很大变化,但是其基本框架仍然是以冯·诺伊曼结构为基础,其特点是适用范围广,但计算效率低。通用处理器的每一次改进都是以减小芯片面积(提高集成度)和提高处理速度为主要标志,体系结构在本质上并无多大变化。人们又利用ASIC器件来提高计算速度和计算效率,虽然可以满足性能要求,但是ASIC器件的灵活性很差,只能针对某一个特定的算法。随着20世纪80年代中期Xilinx公司推出其第一款现场可编程门阵列(FPGA)以来,另一种实现手段———可重构计算技术逐渐受到人们的重视,因为它能够提供硬件功能的效率和软件的可编程性,随着可编程器件容量根据摩尔定律的不断增大和自动设计技术的发展,可重构技术正迅速地成熟起来。
1 可重构技术简介及其概念分类
早在20世纪60年代末,美国加利福尼亚大学的GeraidEstrin就提出了重构计算的概念,并研制了原型系统。该系统由非柔性但可编程的处理器和柔性的由程序控制重构的数字逻辑部件两部分组成[1]。该系统其硬件和软件尽管抽象层次不高但均可编程重构。由于当时实现技术尚不完善,故Estrin研制的系统只是其理论设计的粗略近似。但这种结构奠定了以后可重构计算系统的核心基础[14]。
(1)可重构计算系统。它是指依软件来改变硬件结构,以适应具体应用的计算平台。也有人称之为自适应性计算系统(AdaptiveComputingSystem)。本文不对两种定义进行区别。
计算机设计者经常面临的问题是要在速度及通用性两者之间寻找平衡,可重构计算将微处理器与ASIC的优点结合在一起,既有通用处理器的灵活性,也有ASIC一样高效的硬件电路,以达到软件的灵活及硬件的优化。无论是功能块实现的逻辑功能,还是相互之间的连线,都可以被反复重新编程,即硬件电路可以随时根据需要而改变。
1986年Xilinx公司第一款基于SRAM的FPGA的问世,标志着现代可重构计算的开端[5]。这些可编程器件是由细粒度的可编程逻辑块通过走线和可编程开关相连而组成的。早期的FPGA结构中只包含少量的逻辑块,一般少于100个,现在器件的容量大大增加了,包含上百万甚至上千万。FPGA的可编程元件是基于SRAM的,可以快速地重新编程,这一特性成为FPGA在许多领域获得广泛应用的关键,并成为可重构计算系统发展的持续驱动力量,极大地推动了可重构计算的发展。
可重构计算目前是研究的一个热点,但研究者们所采用的术语甚至概念却不尽相同,如文献[3]认为可重构计算(ReconfigurableComputing)和可重构逻辑(ReconfigurableLog-ic)是两个不同的概念,可重构逻辑专指FPGA,而可重构计算则是指粗粒度的可重构阵列,如PACT公司的XPP结构[7]。而文献[8]则把这两者都归于可重构逻辑的范围。因此有必要在这里将一些基本达成共识的概念和分类作一介绍[16,12]。
(2)粒度。它是指系统中可重构处理单元(ReconfigurableProcessingUnit,RPU)的操作数的宽度。细粒度RPU中的处理元素通常是逻辑门、触发器、查找表等,它们进行位(bit)级操作。而在粗粒度结构中,RPU中的处理元素可能包括完整的功能单元,像算术逻辑单元AIU、乘法器等,它们进行字(Word)级的操作。如果一个可重构体系结构中包括粗粒度和细粒度两种RPU,则称其为混合粒度结构。正如前所述,笔者认为在可重构计算这个大的框架内,可重构逻辑和可重构计算没有概念上的区别,只是粒度上有所不同罢了。
(3)编程深度。它是指存储在RPU中的配置程序或文件的数量。一个RPU可能含有单个配置文件或多个配置文件。对于单配置文件系统,只有一个配置文件驻留在RPU内,因此RPU的功能局限于当前装载的配置文件。而在多配置文件系统中,同时有多个配置文件驻留在RPU内,这使得可以通过切换配置文件很方便地实现不同的功能,而不必从外部重新装载配置文件。
(4)静态与动态重构。如果重构必须在中断程序执行的情况下运行,那么称之为静态重构(StaticReconfiguration);如果重构过程可以与程序执行同时进行,那么这种重构称为动态(DynamicReconfiguration)重构或实时(Run-time)重构。单配置文件的可重构系统通常具有静态重构的特性,而动态可重构系统往往基于多配置文件。动态重构系统中的RPU,可以在运行部分配置文件的同时,改变其他配置文件。这一特性能够大幅度地降低重新配置的时间开销。
详情点击下载>>
关键词:可重构计算;FPGA;粗(细)粒度;SoC
经过二十多年的发展,现代通用处理器的体系结构与传统冯·诺伊曼结构相比虽然已经有了很大变化,但是其基本框架仍然是以冯·诺伊曼结构为基础,其特点是适用范围广,但计算效率低。通用处理器的每一次改进都是以减小芯片面积(提高集成度)和提高处理速度为主要标志,体系结构在本质上并无多大变化。人们又利用ASIC器件来提高计算速度和计算效率,虽然可以满足性能要求,但是ASIC器件的灵活性很差,只能针对某一个特定的算法。随着20世纪80年代中期Xilinx公司推出其第一款现场可编程门阵列(FPGA)以来,另一种实现手段———可重构计算技术逐渐受到人们的重视,因为它能够提供硬件功能的效率和软件的可编程性,随着可编程器件容量根据摩尔定律的不断增大和自动设计技术的发展,可重构技术正迅速地成熟起来。
1 可重构技术简介及其概念分类
早在20世纪60年代末,美国加利福尼亚大学的GeraidEstrin就提出了重构计算的概念,并研制了原型系统。该系统由非柔性但可编程的处理器和柔性的由程序控制重构的数字逻辑部件两部分组成[1]。该系统其硬件和软件尽管抽象层次不高但均可编程重构。由于当时实现技术尚不完善,故Estrin研制的系统只是其理论设计的粗略近似。但这种结构奠定了以后可重构计算系统的核心基础[14]。
(1)可重构计算系统。它是指依软件来改变硬件结构,以适应具体应用的计算平台。也有人称之为自适应性计算系统(AdaptiveComputingSystem)。本文不对两种定义进行区别。
计算机设计者经常面临的问题是要在速度及通用性两者之间寻找平衡,可重构计算将微处理器与ASIC的优点结合在一起,既有通用处理器的灵活性,也有ASIC一样高效的硬件电路,以达到软件的灵活及硬件的优化。无论是功能块实现的逻辑功能,还是相互之间的连线,都可以被反复重新编程,即硬件电路可以随时根据需要而改变。
1986年Xilinx公司第一款基于SRAM的FPGA的问世,标志着现代可重构计算的开端[5]。这些可编程器件是由细粒度的可编程逻辑块通过走线和可编程开关相连而组成的。早期的FPGA结构中只包含少量的逻辑块,一般少于100个,现在器件的容量大大增加了,包含上百万甚至上千万。FPGA的可编程元件是基于SRAM的,可以快速地重新编程,这一特性成为FPGA在许多领域获得广泛应用的关键,并成为可重构计算系统发展的持续驱动力量,极大地推动了可重构计算的发展。
可重构计算目前是研究的一个热点,但研究者们所采用的术语甚至概念却不尽相同,如文献[3]认为可重构计算(ReconfigurableComputing)和可重构逻辑(ReconfigurableLog-ic)是两个不同的概念,可重构逻辑专指FPGA,而可重构计算则是指粗粒度的可重构阵列,如PACT公司的XPP结构[7]。而文献[8]则把这两者都归于可重构逻辑的范围。因此有必要在这里将一些基本达成共识的概念和分类作一介绍[16,12]。
(2)粒度。它是指系统中可重构处理单元(ReconfigurableProcessingUnit,RPU)的操作数的宽度。细粒度RPU中的处理元素通常是逻辑门、触发器、查找表等,它们进行位(bit)级操作。而在粗粒度结构中,RPU中的处理元素可能包括完整的功能单元,像算术逻辑单元AIU、乘法器等,它们进行字(Word)级的操作。如果一个可重构体系结构中包括粗粒度和细粒度两种RPU,则称其为混合粒度结构。正如前所述,笔者认为在可重构计算这个大的框架内,可重构逻辑和可重构计算没有概念上的区别,只是粒度上有所不同罢了。
(3)编程深度。它是指存储在RPU中的配置程序或文件的数量。一个RPU可能含有单个配置文件或多个配置文件。对于单配置文件系统,只有一个配置文件驻留在RPU内,因此RPU的功能局限于当前装载的配置文件。而在多配置文件系统中,同时有多个配置文件驻留在RPU内,这使得可以通过切换配置文件很方便地实现不同的功能,而不必从外部重新装载配置文件。
(4)静态与动态重构。如果重构必须在中断程序执行的情况下运行,那么称之为静态重构(StaticReconfiguration);如果重构过程可以与程序执行同时进行,那么这种重构称为动态(DynamicReconfiguration)重构或实时(Run-time)重构。单配置文件的可重构系统通常具有静态重构的特性,而动态可重构系统往往基于多配置文件。动态重构系统中的RPU,可以在运行部分配置文件的同时,改变其他配置文件。这一特性能够大幅度地降低重新配置的时间开销。
详情点击下载>>


