FPGA硬件算法

    技术2022-07-10  152

    流水线结构

    流水线的原理

    硬件的流水线结构和我们身边生产工厂里的流水线作业类似,是一种通过连续进行大量运算来实现高速化处理的手段。

    使用流水线提高性能

    这里性能提高n倍是指完成全部N个运算的时间缩短了,而每个运算从开始到结束的时间没有变化。

    将电路流水线化,可以提高时钟频率,增大吞吐量。

    并行计算和Flynn分类

    Flynn分类

    高性能硬件设计必须考虑计算的并行性。通用计算机架构中存在用于控制的指令流和作为运算对象的数据流,Flynn分类根据基于指令流和数据流的并行度对架构进行分类,如下图,Flynn将并行架构分为SISD,SIMD,MISD和MIMD四类。该分类的对象原本是基于指令序列的通用处理器架构,而将定义扩展到指令流后,其对更加一般化的并行计算架构研究也很有价值。 Flynn分类所使用的计算机模型由运算单元(PU),控制单元(CU),数据存储器,指令寄存器构成。其中SISD,单一CU从指令存储器读取指令流来控制单一的PU。PU受CU控制,从数据存储器读取单一数据流进行计算处理。SISD架构代表的是按顺序计算的处理器架构,不具备并行计算能力。

    SIMD架构

    单一CU在读取指令流的同时控制多个PU。各个PU接收相同的控制,各自对不同的数据流进行相同的计算处理。因此SIMD架构是一种具有数据并行性的架构。各个PU可以有自己的本地存储器,也可以所有的PU公访问同一个共享存储器。这种架构可以按照相同的指令序列同步处理大量数据,因此通常被应用在图像处理等专用处理器中

    MISD架构

    多个CU各自读取不同指令流并控制多个PU。各个PU根据不同的控制指令对单一数据流进行操作。现实中很难找到属于这一分类的通用微处理器,不过如果将一系列PU视为流水线的阶段,每个阶段各自独立可控,这样组成的粗颗粒的流水线结构就可被认为是MISD架构。

    MIMD架构

    多个CU各自读取不同指令流并控制多个PU。然而和MISD不同的是,各个独立受控的PU对不同的数据流并行处理。因此MIMD架构是一种同时具有数据并行性和功能并行性的架构,可以实现多个指令序列操作多个数据。例如SMP等多个核心紧密结合的处理器,其中多个微处理器或微处理器核心共享存储系统,可以归类为数据存储器共享型MIMD架构。另外,各个计算节点拥有独立的处理器和局部存储器,通过互联网络相连的计算机集群,可以归类为数据存储器独立的MIMD架构。

    脉动算法

    脉动算法是指基于H.K.Kung所提倡的脉动阵列所实现并行处理的算法的总称。脉动阵列是一种由众多简单的运算元件(PE)按规则排列的硬件架构,具有以下特征。 (1)由单一或多种构造PE按规则排列 (2)只有相邻的PE相互连接,数据每次只能在局部范围内移动。除了局部连接,同时还(采用总线等连接方式的架构被称为半脉动阵列。 (3)PE只重复进行简单的数据处理和必要的数据收发。 (4)所有PE由统一的时钟同步工作。 每个PE都和相邻PE同步进行数据收发和运算。数据从外部流入,PE阵列一边搬运数据,一边采取流水线或并行方式对其进行处理。各个PE的运算和数据收发动作和心脏规律性地收缩促使血液流动的过程非常相似,因此此类架构被命名为脉动阵列。此外,PE有时也被称为单元。

    Processed: 0.010, SQL: 9