论文部分内容阅读
浮点矩阵乘法是数字信号处理的基础算法,在通信、网络、工控、医疗等领域有着广泛的应用。随着嵌入式系统在这些领域的深入应用,浮点矩阵乘法由于其计算复杂度高、处理效率低,通常成为提升嵌入式系统在这领域计算速度的瓶颈。现场可编程逻辑阵列(Field Programmable Gate Array,FPGA)协处理器因其速度快、可编程、使用灵活等特点,而成为提升嵌入式系统的计算速度的一种有效方式,受到了国内外研究者的广泛关注。因此,研究嵌入式环境下的浮点矩阵乘法FPGA加速有着非常重要的意义。本文针对三维荧光数学分离算法中浮点矩阵乘法的计算问题,在分析浮点矩阵乘法算法与FPGA硬件结构的基础上,研究了一种基于并行结构的流水线浮点矩阵乘法器以及异构多处理器下的通信机制,以提高嵌入式环境下浮点矩阵乘法的FPGA计算性能,具体工作如下:针对矩阵乘法的核心计算单元乘法累加器,分析每个时钟周期中乘法累加的计算过程,在浮点乘法器和加法器知识产权核的基础上,提出了一种流水线浮点乘法累加器结构。该结构中数据在经过流水线乘法器和加法器之后,只需计算加法器的最后N级流水线结果之和即可得到所计算的累加和。此外,该结构使用灵活、适用性好,可根据实际需求调整流水线的级数以适应不同应用的性能需求。在上述乘法累加器的基础上,本文研究设计了一种并行架构下的浮点矩阵乘法器,降低了计算复杂度,提升了计算速度。该矩阵乘法器可以配置两个相乘矩阵的行列参数,并且可以根据实际的FPGA资源情况设置处理单元的数目,而相邻的处理单元之间没有数据的交互,具有良好的扩展性。针对浮点矩阵乘法的FPGA协处理器与嵌入式CPU的通信问题,本文设计了基于串口UART口PCI-E总线的两种通信结构。在PCI-E的通信结构中,将基于片上可编程系统结构的FPGA端设计与嵌入式上位机的驱动程序相结合,实现软硬件系统的协同工作。本文基于Verilog硬件描述语言实现了浮点乘法累加器和矩阵乘法,并从仿真、综合等方面对其性能进行了分析。为了进一步验证其在嵌入式环境中的性能,分别实现了浮点矩阵乘法通过UART、PCI-E与本文所依托项目中的Intel E6x5C嵌入式平台的通信。实验结果表明,采用高速PCI-E总线加速浮点矩阵乘法计算的方式,能够比目前主流的Cortex A9和ARM9嵌入式平台对浮点矩阵乘法的计算速率分别提升了约8倍和200倍,因此该加速方式能够有效的提升嵌入式平台对浮点运算的计算性能。