可重构计算
目录
可重构计算
可重构计算是一种计算机架构,通过使用现场可编程门阵列(FPGA)等非常灵活的高速计算结构进行处理,将软件的某些灵活性与硬件的高性能相结合。与使用普通微处理器相比,主要区别在于除了控制流之外,还能够对数据路径本身进行重大更改。另一方面,与定制硬件(即专用集成电路(ASIC))的主要区别在于,可以在运行时通过在可重构结构上“加载”新电路来调整硬件。
可重构计算的历史
可重构计算的概念自1960年代就已存在,当时GeraldEstrin的论文提出了由标准处理器和一系列“可重构”硬件组成的计算机的概念。主处理器将控制可重构硬件的行为。后者将被定制为执行特定任务,例如图像处理或模式匹配,就像专用硬件一样快。任务完成后,可以调整硬件以执行其他任务。这导致了一种混合计算机结构,结合了软件的灵活性和硬件的速度。
在1980年代和1990年代,这一研究领域出现了复兴,工业界和学术界提出了许多提议的可重构架构,例如:Copacobana、Matrix、GARP、Elixent、NGEN、Polyp、[6]MereGen,PACTXPP、SiliconHive、Montium、Pleiades、Morphosys和PiCoGA。由于硅技术的不断进步,可以在一个芯片上实现复杂的设计,因此这种设计是可行的。这些大规模并行可重构计算机中的一些主要是为特殊的子领域而构建的,例如分子进化、神经或图像处理。世界上xxx台商用可重构计算机AlgotronixCHS2X4于1991年完成。它没有取得商业上的成功,但很有前景,赛灵思(现场可编程门阵列FPGA的发明者)购买了该技术并聘请了Algotronix员工.后来的机器首次展示了科学原理,例如使用MereGen进行基因编码的自发空间自组织。
可重构计算理论
高性能计算
高性能可重构计算(HPRC)是一种将基于可重构计算的加速器(如现场可编程门阵列)与CPU或多核处理器相结合的计算机架构。
FPGA中逻辑的增加使得更大、更复杂的算法能够被编程到FPGA中。这种FPGA通过高速总线(如PCIexpress)连接到现代CPU,使可配置逻辑更像是协处理器而不是xxx设备。这将可重构计算带入了高性能计算领域。
此外,通过在FPGA上复制算法或使用多个FPGA,可以生成可重新配置的SIMD系统,其中多个计算设备可以同时处理不同的数据,这是高度并行的计算。
这种异构系统技术用于计算研究,尤其是超级计算。2008年的一篇论文报告了超过4个数量级的加速因素和高达近4个数量级的节能因素。一些超级计算机公司提供异构处理块,包括作为加速器的FPGA。一个研究领域是为此类异构系统获得的双范式编程工具流生产力。

随着IBM宣布将FPGA与其POWER处理器集成,商用高性能可重构计算系统开始出现。
操作系统的挑战
可重构计算的主要挑战之一是实现更高的设计生产力,并为不熟悉底层概念的用户提供使用可重构计算系统的更简单方法。这样做的一种方法是提供标准化和抽象,通常由操作系统支持和强制执行。
操作系统的主要任务之一是隐藏硬件,并用漂亮、干净、优雅和一致的抽象来呈现程序(及其程序员)以供使用。换句话说,操作系统的两个主要任务是抽象和资源管理。
抽象是一种强大的机制,可以以明确定义和通用的方式处理复杂和不同的(硬件)任务。最基本的操作系统抽象之一是进程。进程是一个正在运行的应用程序,它具有感知(由操作系统提供)它自己在底层虚拟硬件上运行的感觉。这可以通过线程的概念来放松,允许不同的任务在这个虚拟硬件上并发运行以利用任务级并行性。为了允许不同的进程和线程协调它们的工作,操作系统必须提供通信和同步方法。
除了抽象,底层硬件组件的资源管理也是必要的,因为操作系统提供给进程和线程的虚拟计算机需要在空间和临时上共享可用的物理资源(处理器、内存和设备)。