可重构计算基本概念和原理
可重构计算特征
可重构计算是一种时空域上的并行计算模式,而传统的通用处理器计算是时域上的计算模式,专用集成电路则位于空域上。
以\(y=A\times x\times x + B \times x + C\)为例,传统处理器计算y的执行步骤是将问题划分为五条指令来分时执行在以寄存器和ALU组成的计算单元上。这种将问题划分为指令的处理可以借助指令设计来完成许多复杂的问题,具有很高的通用性。
而ASIP、VLIW或者DSP等,在原有的通用处理器基础上添加对应的运算单元和特殊指令来解决对应的特殊任务,并取得不错的加速效果,一种典型的例子便是VFP,添加乘加指令和VLIW来提高处理器对某类运算特征的应用领域处理能力。
更为合适的提速方案则是采取ASIC,一种直接硬件执行的计算模式。对于上述公式计算而言,ASIC的计算需要执行三次乘法器和两次加法器即可一个周期完成任务。因此,不难看出,ASIC的优点是对于某类问题的处理能力非常优秀,其缺点是无法拓展和修改来完成其他问题,只适合这一类问题的解决。
一种解决上述问题的方案是采取硬件可编程机器,最为典型的案例和商业产品便是FPGA。FPGA执行上述公式计算也只需三个乘法器和两个加法器在一个周期完成,但与上述ASIC不同的是其可以支持多种方案配置,例如以\(y=(A+x\times x)\times (B\times x +C)\)来执行上述任务,因此FPGA在保留原有ASIC的高效执行的优点下,也可以通过小粒度编程来完成不同的硬件方案来为不同的任务进行加速。
下图解释了不同计算模式下的性能与编程灵活性的优劣比较。
总的来说,可重构计算是配置+执行的计算模式,硬件抽象的计算模式可以通过在上电后一次配置进行改变,然后反复执行任务。