仅对英特尔可见 — GUID: mwh1385141246576
Ixiasoft
仅对英特尔可见 — GUID: mwh1385141246576
Ixiasoft
1.1. FPGA概述

使用FPGA时,低级别操作(如,位屏蔽(bit masking),移位(shifting)和加法)都是可配置的。此外,您还能以任何顺序组装这些操作。要实现计算流水线,FPGA通过一个可重新配置连接的网络,将查找表(LUT)、寄存器、片上存储器和运算硬件(如数字信号处理器(DSP)块)的组合集成起来。因此,FPGA实现了高级别的可编程性。LUT负责实现各种逻辑功能。例如,重新编程LUT可将逐位(bit-wise) AND逻辑函数运算更改为逐位XOR逻辑函数运算。
使用FPGA实现算法加速的主要好处是它们支持广泛,异构以及独特的流水线实现。该表征与许多不同类型的处理单元形成对比,例如对称多处理器(symmetric multiprocessors), DSP和图形处理器单元(GPU)。在这几类器件中,是通过多次重复同一通用计算硬件实现并行性。然而在FPGA中,您可以通过仅复制您算法工作中的逻辑实现并行性。
处理器实现的指令集限制每时钟周期执行的工作量。例如,大多数处理器没有可以执行如下C代码的专用指令:
E = (((A + B) ^ C) & D) >> 2;
如果没有用于此C代码实例的专用指令,那么CPU,DSP或GPU必须执行多条指令才能进行操作。相比而言,您或许可以将FPGA视作一个硬件平台,它可以实现您的软件算法所需要的任何指令集。您可以配置FPGA来执行一连串的操作,以在单个时钟周期内实现上述代码示例。FPGA实现将专用加法硬件与LUT连接起来,以执行逐位(bit-wise)XOR和AND运算。然后,该器件使用其可编程的连接执行2个两位右移而不消耗任何硬件资源。该操作的结果随后成为后续操作的一部分从而形成复杂流水线。