跳转到内容

User:AkaDonlon/wip/可重构计算

维基百科,自由的百科全书

可重构计算是一种计算机体系结构,通过使用灵活的高速计算结构(如FPGA)进行处理,将软件的某些灵活性与硬件的高性能相结合。与使用普通微处理器相比,主要区别在于除了控制流程之外,还可以对数据路径本身进行实质性更改。另一方面,与定制硬件(即专用集成电路(ASIC))的主要区别在于,可以通过在可重新配置的结构上“加载”新电路来在运行期间适配硬件。

历史[编辑]

自1960年代以来,可重配置计算的概念就存在了,当时Gerald Estrin的论文提出了由标准处理器和“可重配置”硬件阵列组成的计算机的概念。 [1] [2]主处理器将控制可重新配置硬件的行为。然后,可以像专门的硬件一样对后者进行定制,以执行特定任务,例如图像处理或图案匹配。一旦完成任务,就可以调整硬件以执行其他任务。这导致了一种混合计算机结构,将软件的灵活性和硬件的速度结合在一起。

在1980年代和1990年代,该领域出现了复兴,在工业界和学术界开发了许多提议的可重构体系结构, [3]如:Copacobana,Matrix,GARP, [4] Elixent,NGEN, [5] Polyp, [6] MereGen, [7] PACT XPP,Silicon Hive,Montium,Pleiades,Morphosys和PiCoGA。 [8]由于硅技术的不断进步,使得复杂的设计可以在一个芯片上实现,因此这种设计是可行的。这些大型并行可重配置计算机中的某些计算机主要是为特殊子域构建的,例如分子进化,神经或图像处理。 1991年完成了世界上第一台商用可重构计算机Algotronix CHS2X4。这不是商业上的成功,但是它有足够的希望,使Xilinx现场可编程门阵列,FPGA的发明者)购买了该技术并雇用了Algotronix的员工。 [9]后来的机器首次展示了科学原理,例如使用MereGen自发进行基因编码的空间自组织。 [10]

理论[编辑]

特雷登尼克分类法[编辑]

表1:Nick Tredennick的范式分类方案
早期历史计算机:
编程源
资源固定
固定算法
冯·诺依曼计算机:
编程源
资源固定 没有
算法变量 软件(指令流)
可重构计算系统:
编程源
资源变量 Configware(配置)
算法变量 流件(数据流)

可重构计算机机器范式的基本模型,即基于数据流的反计算机,与之前介绍的其他计算机范式的差异很好地说明了这一点,如Nick Tredennick的以下计算机范例分类方案所示(请参阅“表1:尼克·特雷登尼克(Nick Tredennick)的范式分类方案”。 [11]

哈滕斯坦的Xputer[编辑]

计算机科学家Reiner Hartenstein用反机器来描述可重构计算,据他所说,反机器代表了从更传统的冯·诺依曼机器的根本范式转变。 [12] Hartenstein称其为“可重配置计算悖论”,即软件到配置软件(软件到FPGA )的迁移导致报告的加速因子高达四个数量级以上,并且耗电量减少了近40%。尽管FPGA的技术参数落后于Gordon Moore曲线约四个数量级,但其时钟频率明显低于微处理器。冯诺依曼综合症部分解释了这种悖论。

高性能计算[编辑]

高性能可重构计算(HPRC)是一种计算机架构,将基于可重构计算的加速器(例如现场可编程门阵列)与CPU或多核处理器相结合

FPGA中逻辑的增加使得可以将更大,更复杂的算法编程到FPGA中。这样的FPGA通过PCI Express等高速总线与现代CPU的连接使可配置逻辑的行为更像协处理器,而不是外围设备。这将可重构计算带入了高性能计算领域。

此外,通过在FPGA上复制算法或使用多个FPGA,已经使得能够产生可重构SIMD系统,其中多个计算设备可以同时对不同数据进行操作,这是高度并行计算

这种异构系统技术被用于计算研究,特别是在超级计算中[13] 2008年的一篇论文报道了加速系数超过4个数量级,节能系数高达4个数量级。 [14]一些超级计算机公司提供包括FPGA作为加速器在内的异构处理模块。 一个研究领域是为此类异构系统获得的双范式编程工具流程生产率。 [15]

美国国家科学基金会有一个高性能可重构计算中心 (CHREC)。 [16] 2011年4月,第四届众核与可重构超级计算大会在欧洲召开。 [17]

随着IBM宣布将 FPGA 与其POWER处理器集成,商用高性能可重构计算系统开始出现。 [18]

部分可重构计算[编辑]

部分重配置是更改一部分可重配置硬件电路,而另一部分保留其先前配置的过程。现场可编程门阵列通常用作部分重新配置的支持。

电子硬件,如软件,可以模块化设计,通过创建子组件然后更高级别的组件来实例化它们。在许多情况下,能够在 FPGA 仍在运行时更换这些子组件中的一个或几个是很有用的。

通常,重新配置 FPGA 需要在外部控制器重新加载设计时将其保持在复位状态。部分重配置允许设计的关键部分继续运行,同时 FPGA 上或外的控制器将部分设计加载到可重配置模块中。通过仅存储在设计之间更改的部分设计,部分重新配置还可用于为多个设计节省空间。

当部分重新配置有用时的一个常见示例是通信设备的情况。如果设备正在控制多个连接,其中一些连接需要加密,那么能够加载不同的加密核心而不会使整个控制器停机会很有用。

并非所有 FPGA 都支持部分重配置。需要一个强调模块化设计的特殊软件流程。通常,设计模块是沿着 FPGA 内部定义明确的边界构建的,需要将设计专门映射到内部硬件。

从设计的功能来看,部分重配置可以分为两组: [19]

  • 动态部分重配置,也称为主动部分重配置 - 允许在 FPGA 的其余部分仍在运行时更改器件的部分;
  • 静态部分重新配置- 设备在重新配置过程中不活动。当部分数据被发送到 FPGA 中时,器件的其余部分会停止(在关闭模式下)并在配置完成后启动。

当前系统[编辑]

计算机仿真[编辑]

使用FPGA板来重新创建Vector-06C计算机

随着可负担得起的FPGA板的出现,学生和业余爱好者的项目寻求重建老式计算机或实现更新颖的架构。 [20] [21] [22]此类项目使用可重配置硬件(FPGA)构建,并且某些设备使用单个可重配置硬件( C-One )支持多台老式计算机的仿真。

完全基于FPGA的计算机是COPACOBANA,成本优化的代码破解器和分析器及其后续产品RIVYERA。德国波鸿和基尔大学的COPACOBANA项目的子公司SciEngines GmbH继续开发完全基于FPGA的计算机。

米特里奥尼[编辑]

Mitrionics开发了一个 SDK,使使用单一分配语言编写的软件能够在基于 FPGA 的计算机上编译和执行。 Mitrion-C 软件语言和 Mitrion 处理器使软件开发人员能够以与其他计算技术相同的方式在基于 FPGA 的计算机上编写和执行应用程序,例如图形处理单元 (“GPU”)、基于单元的处理器、并行处理单元(“PPU”)、多核 CPU 和传统的单核 CPU 集群。 (停业)

国家仪器[编辑]

National Instruments开发了一种称为CompactRIO的混合嵌入式计算系统。它由容纳用户可编程 FPGA 的可重新配置机箱、热插拔 I/O 模块、用于确定性通信和处理的实时控制器以及用于快速 RT 和 FPGA 编程的图形 LabVIEW 软件组成。

赛灵思[编辑]

Xilinx开发了两种风格的 FPGA 器件部分重配置:基于模块的和基于差异的基于模块的部分重新配置允许重新配置设计的不同模块化部分,而基于差异的部分重新配置可以在对设计进行小的更改时使用。

英特尔[编辑]

英特尔[23]支持在 28 上对其 FPGA 设备进行部分重新配置 nm 器件,例如 Stratix V, [24]和 20 纳米 Arria 10 器件。 [25] Arria 10 的英特尔 FPGA 部分重配置流程基于 Quartus Prime Pro 软件中的分层设计方法,用户可以在其中创建 FPGA 的物理分区,这些分区可以在运行时重新配置[26] ,而设计的其余部分继续运行。 Quartus Prime Pro 软件还支持分层部分重配置和部分重配置仿真。

系统分类[编辑]

作为一个新兴领域,随着新架构的开发,可重构架构的分类仍在不断发展和完善;迄今为止,尚未提出统一的分类法。但是,可以使用几个重复参数来对这些系统进行分类。

可重构逻辑的粒度定义为映射工具所寻址的最小功能单元(可配置逻辑块,CLB)的大小。高粒度(也称为细粒度)通常意味着在将算法实现到硬件中时具有更大的灵活性。然而,由于每次计算所需的路由数量更多,因此在增加功率、面积和延迟方面存在与此相关的损失。细粒度架构在位级操作级别工作;而粗粒度处理元素(可重新配置的数据路径单元,rDPU)则针对标准数据路径应用进行了更好的优化。粗粒度架构的缺点之一是,如果他们需要执行比其粒度提供的更小的计算,它们往往会失去一些利用率和性能,例如,对于四位宽的功能单元上的一位添加将浪费三位.这个问题可以通过在同一芯片上安装粗粒度阵列(可重构数据通路阵列,rDPA)和FPGA来解决。

粗粒度架构 ( rDPA ) 旨在实现需要字宽数据路径 (rDPU) 的算法。由于它们的功能块针对大型计算进行了优化,并且通常包含字宽算术逻辑单元(ALU),因此与一组相互连接的较小功能单元相比,它们将更快地执行这些计算并且具有更高的功率效率;这是因为连接线更短,导致线电容更小,因此设计速度更快、功耗更低。具有较大计算块的潜在不良后果是,当操作数的大小可能与算法不匹配时,可能导致资源的低效利用。通常,要运行的应用程序的类型是预先知道的,允许定制逻辑、内存和路由资源以增强设备的性能,同时仍为未来的适应提供一定程度的灵活性。这方面的例子是领域特定的阵列,旨在通过降低其灵活性,在功率、面积、吞吐量方面获得比其更通用的细粒度FPGA表亲更好的性能。

重新配置率[编辑]

这些可重新配置系统的配置可以在部署时、执行阶段之间或执行期间发生。在典型的可重新配置系统中,比特流用于在部署时对设备进行编程。由于需要处理和编程更多的元素,细粒度系统本身比更粗粒度的体系结构需要更多的配置时间。因此,更粗粒度的架构可以从潜在的更低能量需求中获益,因为更少的信息被传输和使用。直观地说,重新配置的速度越慢,能量消耗就越小,因为相关的重新配置的能源成本在更长的时间段内摊销。部分重新配置旨在允许对设备的一部分进行重新编程,而另一部分仍在执行主动计算。部分重新配置允许更小的可重新配置比特流,因此不会浪费能量在比特流中传输冗余信息。比特流的压缩是可能的,但要进行仔细的分析,以确保通过使用较小的比特流节省的能量不会被解压缩数据所需的计算所抵消。

主机耦合[编辑]

通常,可重新配置的阵列用作连接到主机处理器的处理加速器。耦合级别决定了使用可重构逻辑时所涉及的数据传输类型、延迟、功率、吞吐量和开销。一些最直观的设计使用外围总线为可重构阵列提供类似协处理器的布置。然而,也有一些可重构结构更靠近处理器的实现,有些甚至利用处理器寄存器实现到数据路径中。主处理器的工作是执行控制功能、配置逻辑、调度数据并提供外部接口。

路由/互连[编辑]

可重构设备的灵活性主要来自于它们的路由互连。 FPGA供应商、Xilinx 和 Altera 流行的一种互连方式是岛式布局,其中块以垂直和水平布线的阵列排列。布线不足的布局可能会受到灵活性和资源利用率低下的影响,因此提供的性能有限。如果提供了过多的互连,这需要比必要更多的晶体管,因此需要更多的硅面积、更长的导线和更多的功耗。

操作系统面临的挑战[编辑]

可重构计算的主要挑战之一是提高设计生产率,并为不熟悉基础概念的用户提供一种使用可重构计算系统的简便方法。一种实现方法是提供标准化和抽象化,通常由操作系统支持和执行。 [27]

操作系统的主要任务之一是隐藏硬件并以漂亮、干净、优雅和一致的抽象来呈现程序(及其程序员)以供使用。换句话说,操作系统的两个主要任务是抽象和资源管理。 [27]

抽象是一种强大的机制,可以以定义明确且通用的方式处理复杂且不同的(硬件)任务。最基本的操作系统抽象之一是进程。进程是一个正在运行的应用程序,它感知(由操作系统提供)它自己在底层虚拟硬件上运行。这可以通过线程的概念来放松,允许不同的任务在这个虚拟硬件上同时运行,以利用任务级别的并行性。为了允许不同的进程和线程协调它们的工作,操作系统必须提供通信和同步方法。 [27]

除了抽象之外,底层硬件组件的资源管理也是必要的,因为操作系统提供给进程和线程的虚拟计算机需要在空间上和临时性地共享可用的物理资源(处理器、内存和设备)。 [27]

参见[编辑]

 

参考文献[编辑]

  1. ^ Estrin, G. Reconfigurable computer origins: the UCLA fixed-plus-variable (F+V) structure computer. IEEE Ann. Hist. Comput. 2002, 24 (4): 3–9. doi:10.1109/MAHC.2002.1114865. 
  2. ^ Estrin, G., "Organization of Computer Systems—The Fixed Plus Variable Structure Computer", Proc. Western Joint Computer Conf., Western Joint Computer Conference, New York, 1960, pp. 33–40.
  3. ^ C. Bobda: Introduction to Reconfigurable Computing: Architectures; Springer, 2007
  4. ^ Hauser, John R. and Wawrzynek, John, "Garp: A MIPS Processor with a Reconfigurable Coprocessor", Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM '97, April 16–18, 1997), pp. 24–33.
  5. ^ McCaskill, John S.; Chorongiewski, Harald; Mekelburg, Karsten; Tangen, Uwe; Gemm, Udo. NGEN — Configurable computer hardware to simulate long-time self-organization of biopolymers. Berichte der Bunsengesellschaft für Physikalische Chemie. 1994-09-01, 98 (9): 1114. ISSN 0005-9021. doi:10.1002/bbpc.19940980906 (英语). 
  6. ^ Evolvable systems : from biology to hardware : second International Conference, ICES 98, Lausanne, Switzerland, September 23-25, 1998 : proceedings. Sipper, Moshe., Mange, Daniel, 1940-, Pérez-Uribe, Andrés., International Conference on Evolvable Systems (2nd : 1998 : Lausanne, Switzerland). Berlin: Springer. 1998. ISBN 978-3540649540. OCLC 39655211. 
  7. ^ Coupling of biological and electronic systems : proceedings of the 2nd Caesarium, Bonn, November 1-3, 2000. Hoffmann, K.-H. (Karl-Heinz). Berlin: Springer. 2002. ISBN 978-3540436997. OCLC 49750250. 
  8. ^ Campi, F.; Toma, M.; Lodi, A.; Cappelli, A.; Canegallo, R.; Guerrieri, R., "A VLIW processor with reconfigurable instruction set for embedded applications", Solid-State Circuits Conference, 2003. Digest of Technical Papers. ISSCC. 2003 IEEE International, vol., no., pp. 250–491 vol. 1, 2003
  9. ^ Algotronix History
  10. ^ Füchslin, Rudolf M.; McCaskill, John S. Evolutionary self-organization of cell-free genetic coding. Proceedings of the National Academy of Sciences. 2001-07-31, 98 (16): 9185–9190. ISSN 0027-8424. PMC 55395可免费查阅. PMID 11470896. doi:10.1073/pnas.151253198 (英语). 
  11. ^ N. Tredennick: The Case for Reconfigurable Computing; Microprocessor Report, Vol. 10 No. 10, 5 August 1996, pp 25–27.
  12. ^ Hartenstein, R. 2001. A decade of reconfigurable computing: a visionary retrospective. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE 2001) (Munich, Germany). W. Nebel and A. Jerraya, Eds. Design, Automation, and Test in Europe. IEEE Press, Piscataway, NJ, 642–649.
  13. ^ N. Voros, R. Nikolaos, A. Rosti, M. Hübner (editors): Dynamic System Reconfiguration in Heterogeneous Platforms - The MORPHEUS Approach; Springer Verlag, 2009
  14. ^ Tarek El-Ghazawi; et al. The promise of high-performance reconfigurable computing. IEEE Computer. February 2008, 41 (2): 69–76. Bibcode:10.1.1.208.4031 请检查|bibcode=值 (帮助). doi:10.1109/MC.2008.65. 
  15. ^ Esam El-Araby; Ivan Gonzalez; Tarek El-Ghazawi. Exploiting Partial Runtime Reconfiguration for High-Performance Reconfigurable Computing. ACM Transactions on Reconfigurable Technology and Systems. January 2009, 1 (4): 1–23. doi:10.1145/1462586.1462590. 
  16. ^ NSF center for High-performance Reconfigurable Computing. official web site. [August 19, 2011]. 
  17. ^ Many-Core and Reconfigurable Supercomputing Conference. official web site. 2011 [August 19, 2011]. (原始内容存档于October 12, 2010). 
  18. ^ Altera and IBM Unveil FPGA-Accelerated POWER Systems. HPCwire. 2014-11-17 [2014-12-14]. 
  19. ^ Wiśniewski, Remigiusz. Synthesis of compositional microprogram control units for programmable devices. Zielona Góra: University of Zielona Góra. 2009: 153. ISBN 978-83-7481-293-1. 
  20. ^ Apple2 FPGA. [6 Sep 2012]. 
  21. ^ Niklaus Wirth. The Design of a RISC Architecture and its Implementation with an FPGA (PDF). [6 Sep 2012]. [失效連結]
  22. ^ Jan Gray. Designing a Simple FPGA-Optimized RISC CPU and System-on-a-Chip (PDF). [6 Sep 2012]. 
  23. ^ Intel completes acquisition of Altera. [15 November 2016]. 
  24. ^ Stratix V FPGAs: Ultimate Flexibility Through Partial and Dynamic Reconfiguration. [15 November 2016]. 
  25. ^ Intel Quartus Prime Software Productivity Tools and Features. [15 November 2016]. 
  26. ^ Quartus Prime Standard Edition Handbook Volume 1: Design and Synthesis (PDF). Intel: 4–1. [15 November 2016]. 
  27. ^ 27.0 27.1 27.2 27.3 Eckert, Marcel; Meyer, Dominik; Haase, Jan; Klauer, Bernd. Operating System Concepts for Reconfigurable Computing: Review and Survey. International Journal of Reconfigurable Computing. 2016-11-30, 2016: 1–11. ISSN 1687-7195. doi:10.1155/2016/2478907 (英语).  无效|subscription=free (帮助) This article contains quotations from this source, which is available under the Creative Commons Attribution 4.0 International (CC BY 4.0) license. 引用错误:带有name属性“:0”的<ref>标签用不同内容定义了多次

进一步阅读[编辑]

  • Cardoso, João M. P.; Hübner, Michael (Eds.), Reconfigurable Computing: From FPGAs to Hardware/Software Codesign, Springer, 2011.
  • S. Hauck and A. DeHon, Reconfigurable Computing: The Theory and Practice of FPGA-Based Computing, Morgan Kaufmann, 2008.
  • J. Henkel, S. Parameswaran (editors): Designing Embedded Processors. A Low Power Perspective; Springer Verlag, March 2007
  • J. Teich (editor) et al.: Reconfigurable Computing Systems. Special Topic Issue of Journal it — Information Technology, Oldenbourg Verlag, Munich. Vol. 49(2007) Issue 3
  • T.J. Todman, G.A. Constantinides, S.J.E. Wilton, O. Mencer, W. Luk and P.Y.K. Cheung, "Reconfigurable Computing: Architectures and Design Methods", IEEE Proceedings: Computer & Digital Techniques, Vol. 152, No. 2, March 2005, pp. 193–208.
  • A. Zomaya (editor): Handbook of Nature-Inspired and Innovative Computing: Integrating Classical Models with Emerging Technologies; Springer Verlag, 2006
  • J. M. Arnold and D. A. Buell, "VHDL programming on Splash 2," in More FPGAs, Will Moore and Wayne Luk, editors, Abingdon EE & CS Books, Oxford, England, 1994, pp. 182–191. (Proceedings,International Workshop on Field-Programmable Logic, Oxford, 1993.)
  • J. M. Arnold, D. A. Buell, D. Hoang, D. V. Pryor, N. Shirazi, M. R. Thistle, "Splash 2 and its applications, "Proceedings, International Conference on Computer Design, Cambridge, 1993, pp. 482–486.
  • D. A. Buell and Kenneth L. Pocek, "Custom computing machines: An introduction," The Journal of Supercomputing, v. 9, 1995, pp. 219–230.

外部链接[编辑]

[[Category:数字电子]]