使用者:AnthonyDonlon/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]
理論
特雷登尼克分類法
早期歷史計算機: | |
編程源 | |
---|---|
資源固定 | 無 |
固定算法 | 無 |
馮·諾依曼計算機: | |
編程源 | |
資源固定 | 沒有 |
算法變量 | 軟件(指令流) |
可重構計算系統: | |
編程源 | |
資源變量 | 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]
部分可重構計算
部分重配置是更改一部分可重配置硬件電路,而另一部分保留其先前配置的過程。現場可編程門陣列通常用作部分重新配置的支持。
電子硬件,如軟件,可以模塊化設計,通過創建子組件然後更高級別的組件來實例化它們。在許多情況下,能夠在 FPGA 仍在運行時更換這些子組件中的一個或幾個是很有用的。
通常,重新配置 FPGA 需要在外部控制器重新加載設計時將其保持在復位狀態。部分重配置允許設計的關鍵部分繼續運行,同時 FPGA 上或外的控制器將部分設計加載到可重配置模塊中。通過僅存儲在設計之間更改的部分設計,部分重新配置還可用於為多個設計節省空間。
當部分重新配置有用時的一個常見示例是通信設備的情況。如果設備正在控制多個連接,其中一些連接需要加密,那麼能夠加載不同的加密核心而不會使整個控制器停機會很有用。
並非所有 FPGA 都支持部分重配置。需要一個強調模塊化設計的特殊軟件流程。通常,設計模塊是沿着 FPGA 內部定義明確的邊界構建的,需要將設計專門映射到內部硬件。
從設計的功能來看,部分重配置可以分為兩組: [19]
- 動態部分重配置,也稱為主動部分重配置 - 允許在 FPGA 的其餘部分仍在運行時更改器件的部分;
- 靜態部分重新配置- 設備在重新配置過程中不活動。當部分數據被發送到 FPGA 中時,器件的其餘部分會停止(在關閉模式下)並在配置完成後啟動。
當前系統
計算機仿真
隨着可負擔得起的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]
參見
參考文獻
- ^ 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.
- ^ 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.
- ^ C. Bobda: Introduction to Reconfigurable Computing: Architectures; Springer, 2007
- ^ 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.
- ^ 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 (英語).
- ^ 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.
- ^ 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.
- ^ 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
- ^ Algotronix History
- ^ 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 (英語).
- ^ N. Tredennick: The Case for Reconfigurable Computing; Microprocessor Report, Vol. 10 No. 10, 5 August 1996, pp 25–27.
- ^ 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.
- ^ N. Voros, R. Nikolaos, A. Rosti, M. Hübner (editors): Dynamic System Reconfiguration in Heterogeneous Platforms - The MORPHEUS Approach; Springer Verlag, 2009
- ^ 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. - ^ 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.
- ^ NSF center for High-performance Reconfigurable Computing. official web site. [August 19, 2011].
- ^ Many-Core and Reconfigurable Supercomputing Conference. official web site. 2011 [August 19, 2011]. (原始內容存檔於October 12, 2010).
- ^ Altera and IBM Unveil FPGA-Accelerated POWER Systems. HPCwire. 2014-11-17 [2014-12-14].
- ^ 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.
- ^ Apple2 FPGA. [6 Sep 2012].
- ^ Niklaus Wirth. The Design of a RISC Architecture and its Implementation with an FPGA (PDF). [6 Sep 2012].[失效連結]
- ^ Jan Gray. Designing a Simple FPGA-Optimized RISC CPU and System-on-a-Chip (PDF). [6 Sep 2012].
- ^ Intel completes acquisition of Altera. [15 November 2016].
- ^ Stratix V FPGAs: Ultimate Flexibility Through Partial and Dynamic Reconfiguration. [15 November 2016].
- ^ Intel Quartus Prime Software Productivity Tools and Features. [15 November 2016].
- ^ Quartus Prime Standard Edition Handbook Volume 1: Design and Synthesis (PDF). Intel: 4–1. [15 November 2016].
- ^ 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:数字电子]]