了解FPGA的并行性

时间:2016-02-10 20:23:40

标签: fpga

我在理解FPGA在并行处理方面的优势时遇到了一些问题。每个人都认为它是平行的,但它看起来并不是真正的平行。让我们看看这个例子:

我的某个引脚上有数据信号,每个时钟周期为1位。 FPGA将接收这些数据,因为它已经在集成电路内部存储了数据,所以它可以立即开始处理。但这称为串行处理,而不是并行处理。如果FPGA将等待数据累积,以后再并行处理,那么我们可以说FPGA处理是完全并行的,但是数据大量到达的好处是什么,我们只会浪费时间,因为例如,如果我们等待8位数据,我们将失去7个周期。那么FPGA的并行性有哪些好处?我无法得到它。

如果数据并行传入,那将是并行的,就像使用旧的DB-25并行端口连接器一样。但由于并行端口无法支持高速,因此该技术已经过时。今天的USB标准是串行的,以太网是串行的,所以....并行性在哪里???

2 个答案:

答案 0 :(得分:2)

如果有数据以块的形式到达,并且块的到达速度快于可以处理的块,并且可以单独处理块,则会出现并行性。 FPGA不需要减慢数据发送器的速度,而是允许您添加更多处理"块"这样处理速度更快。

实施例: 您以50kB块的速度以1MB / s的速度接收数据(串行或并行,无关紧要),但您的算法只允许每秒处理1个块。在FPGA中,您可以连接"接收器"在20"处理器"中分配块,所以现在您的发送方仍然可以全速发送,并且您的接收方看到的整体延迟较少。

答案 1 :(得分:1)

并行性有几个层次,如果您想要使用计算机体系结构,则需要了解它们。 FPGA只是构建计算机"。

的工具

级别为:

  • 位级:并行处理多位或数据字 例如,您可以构建8位,32位或4096位的加法器,只需一个周期就可以添加两个整数
  • 指令级:一个控制流的多个指令并行执行
     =>流水线,超标量架构
  • 线程级别:在并行执行多个控制流程 =>多线程,多核,n插槽系统
  • 应用程序级别:并行执行多个应用程序
    =>多处理
  • 数据流处理:并行的每一件事:)

FPGA可以使用每个级别并行执行所有操作。