可重組計算

可重組計算（Reconfigurable computing） 是一種具有高度彈性的。和使用平常的微處理器主要不同的地方在於，可重組計算具有能力對和控制流程做實質上的改變。

歷史與特性 
可重組計算的概念，在六零年代（1960s），當Gerald Estrin指標性的文章中，提出一台電腦裡擁有一個標準處理器和一個可重組硬體矩陣的概念時就已經普及。主要的處理器負責控制可重組硬體。可重組硬體將被客制成執行一項特殊的工作，比如影像處理或，如同特制一部分硬體一般快。當某個工作完成，硬體會被調整適合執行另一項工作。這種混合的電腦結構擁有軟體的彈性伴隨著硬體的速度。不幸的是這個想法遠遠超過了當時的電子技術。

粒度 
指可重构计算模块的最小位宽。影响重构的代价和效率。颗粒度小，重构灵活性大，但配置信息多，重构开销大；颗粒度大，重构灵活性小，配置信息少，处理低位宽数据会浪费计算单元降低效率。

重組速率

與主運算單元耦合

繞線/相互連結 

在可重組裝置上所謂的靈活性（flexibility）主要取決於他們之間路徑的互連（interconnect）。其中一種普及的互連的型式為島狀配置（island style layout）產生於場效可程式規化閘陣列（FPGA）廠商，如Xilinx和Altera，其中區塊（blocks）被排列成矩陣利用垂直和平行方向繞線（routing）。一個不適當繞線（routing）的佈局（layout）會使其缺少彈性（flexibility）和有著較低的資源利用程度（resource utilization），因此而提供有限的效能。如果有太多的互連（interconnect）則會有較多不必要的電晶體，因此需要較大的矽晶空間，較長的電線和較多的能源消耗。

使用工具流程 
通常，可組合計算系統（configurable computing system）的工具可以分成兩個部分，用在可重組矩陣（reconfigurable array）的電腦輔助設計工具（CAD）和用在CPU方面的編譯（compilation）工具。前端（front-end）的編譯器（complier）是一種整合的工具，會產生結構化的硬體描述（hardware represatation）當成硬體設計流程（hardware design flow）的輸入。可重組結構（reconfigurable architecture）的硬體設計流程可以利用設計程序（design process）的三個主要階段來分類，技術映射（technology mapping），擺置演算法（placement algorithm），繞線演算法（routing algorithm）。

有一些類型的可重組計算機是被微程序化（microcoded）的處理器，其中微程序被存在隨機存取記憶體（RAM）或EEPROM中，而且可以在重新啟動（reboot）改變或執行中（on the fly）改變。像是 AMD 2900系列的bit slice 處理器可以在重新啟動辦到，而FPGA可以在執行中辦到。

有些基於数据流的處理器是利用可重組計算的概念完成的。

模式的轉移

專業用語

參見 
 C-One
 Sprinter

參考文獻 
 G. Estrin, "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.
 N. Tredennick: The Case for Reconfigurable Computing; Microprocessor Report, Vol. 10 No. 10, 5 Aug 1996, pp 25-27.

外部連結 
 IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM) 
 International Conference on  Field-Programmable Logic and Applications (FPL) 
 BYU Configurable Computing Laboratory's FPGA CAD tool set
 The Morphware Page
 The OpenFPGA effort
 RC Education Workshop 
 Reconfigurable Architectures Workshop 
 Reconfigurable Computing: Coming of Age
 The Virginia Tech Configurable Computing Laboratory
 The University of Florida High-Performance Computing & Simulation Research Laboratory
 The University of Kansas Hybridthreads Project - OS for Hybrid CPU/FPGA chips  
 Why we need Reconfigurable Computing Education

数字电子
電腦架構