基于FPGA的通用矩阵浮点乘法器制造技术

技术编号:3961460 阅读:233 留言:0更新日期:2012-04-11 18:40
一种计算机微处理器设计技术领域的基于FPGA的通用矩阵浮点乘法器,包括:若干并行的矩阵浮点乘法器,每个矩阵浮点乘法器包括:控制管理模块、运算模块和存储模块,其中:控制管理模块包括:数据地址控制子模块、结果有效控制子模块和累加器清零控制子模块;运算模块包括:乘法器、浮点-定点转换器、累加器和定点-浮点转换器;存储模块包括:乘数矩阵存储单元、被乘数矩阵存储单元、结果矩阵存储单元、总线数据接口和内部数据接口。本发明专利技术中每个矩阵浮点乘法器之间相互独立,可同时运算,互不影响,计算的时间大大减小,且计算的精度高达10-4,效率提高十倍以上,且装置简单,成本低。

【技术实现步骤摘要】

本专利技术涉及的是 一 种微处理器
的乘法器,具体是 一 种基于 FPGA (Field-Programmable Gate Array的縮写,现场可编程门阵列)的通用矩阵浮点乘法 器。
技术介绍
矩阵乘法操作是科学计算中的一个基本操作,在工业控制、模式识别、数字信号处 理等领域广泛存在,特别是在便携式设备中,经常涉及模式识别、图像处理的操作,这些操 作都是有大量的矩阵运算来完成的,而便携式设备通常计算配置较低,矩阵乘法也就称为 计算过程中最为耗时的关键操作。矩阵乘法的时间复杂度较高,通常为0(N3),其计算性能 直接影响系统的整体性能。 以前的矩阵乘法器通常采用通用数字信号处理器(Digital Signal Processor, DSP)实现。DSP具有技术成熟,实现工具完善、编程简单等优点,但由于其内部结构的限制, 在进行计算时经常会出现缓存(Cache Miss)扑空等现象,影响计算性能。基于DSP技术的 涉及通常持续时间只能维持在其峰值计算性能的10% 33%,无法取得很高的计算性能。 近年来的FPGA技术取得了飞速发展,已经从最初只能面向纯逻辑代替的应用转 变为能够面向复杂的计算密集型应用。最新的FPGA器件,不仅逻辑资源门极其丰富,而且 还包括了大量面向高计算性能的DSP单元、块状RAM(Block RAM,BRAM)等。同时为方便FPGA 的调试,各FPGA厂商还提供了各种片内逻辑分析工具(如Xilinx公司的ChipScope),在软 硬件上均保证了 FPGA实现高性能计算的可能性。 经对现有文献检索发现,中国专利申请号为200710069954. 8,名称为基于单 FPGA的矩阵乘法器装置,该技术包括P2个计算单元PE,由P2个计算单元PE排列形成的P 行X P列的PE阵列,数据输入输出接口和数据预处理单元。但是该技术逻辑资源消耗太高, 每一个浮点向量乘法器单元要消耗多个DSP48和FIFO单元,对于芯片要求太高,导致成本 增加,且不利于实际应用。
技术实现思路
本专利技术的目的在于克服现有技术的上述不足,提供一种基于FPGA的通用矩阵浮 点乘法器。本专利技术采用并行流水线结构,可以进行任意维数的矩阵浮点乘法运算,并且多个 矩阵浮点乘法器可以并行工作,进一步提高计算效率和计算精度。 本专利技术是通过以下技术方案实现的 本专利技术包括若干并行的矩阵浮点乘法器,每个矩阵浮点乘法器包括控制管理 模块、运算模块和存储模块,其中控制管理模块与运算模块相连传输累加器清零信号,控 制管理模块与存储模块相连传输数据地址信号和结果有效信号,运算模块与存储模块相连 传输待运算数据信号和运算结果信号。 所述的控制管理模块生成控制信号以控制运算模块和存储模块,该模块包括数据地址控制子模块、结果有效控制子模块和累加器清零控制子模块,其中数据地址控制子模块与存储模块相连传输数据地址控制信号,结果有效控制子模块与存储模块相连传输结果有效信号,累加器清零控制子模块与运算模块相连传输累加器清零信号。所述的运算模块执行矩阵数据的乘法和累加操作,该模块包括乘法器、浮点_定点转换器、累加器和定点-浮点转换器,其中乘法器与存储模块相连传输待运算数据信号,累加器与控制管理模块相连传输累加器清零信号,乘法器与浮点_定点转换器相连传输浮点乘法信号,浮点_定点转换器与累加器相连传输定点乘法信号,累加器与定点_浮点转换器相连传输浮点累加信号,定点_浮点转换器与存储模块相连传输运算结果信号。 所述的存储模块缓存待运算矩阵的数据和结果矩阵的数据,并提供总线访问接口使外部其他设备与本专利技术装置进行数据交换,该模块包括乘数矩阵存储单元、被乘数矩阵存储单元、结果矩阵存储单元、总线数据接口和内部数据接口,其中乘数矩阵存储单元与控制管理模块相连传输乘数地址信号,被乘数矩阵存储单元与控制管理模块相连传输被乘数地址信号,结果矩阵存储单元与控制管理模块相连传输结果有效信号,乘数矩阵存储单元分别与总线数据接口和内部数据接口相连传输待运算的乘数信息,被乘数矩阵存储单元分别与总线数据接口和内部数据接口相连传输待运算的被乘数信息,结果矩阵存储单元分别与总线数据接口和内部数据接口相连传输运算结果信息,总线数据接口与外部其他设备相连传输待运算的乘数信息、待运算的被乘数信息和运算结果信息,内部数据接口与运算模块相连传输待运算的乘数信息、待运算的被乘数信息和运算结果信息。 本专利技术的工作过程 步骤A,将待运算的数据通过总线数据接口写入存储模块; 步骤B,向控制管理模块提供矩阵维数信息,并给出开始运算信号; 步骤C,控制管理模块将矩阵乘法分解为多个向量内积的过程,并生成周期性控制信号,发送给运算模块和存储模块; 步骤D,运算模块根据控制信号读取数据,进行浮点乘法和累加运算,存储模块根 据控制信号将运算结果写入缓存; 步骤E,控制管理模块生成运算结束信号,总线设备从存储模块中读出运算结果。 与现有技术相比,本专利技术的有益效果是每个矩阵浮点乘法器之间相互独立,可同 时运算,互不影响,计算的时间大大减小,且计算的精度高达10—4,效率提高十倍以上,且装 置简单,成本低。具体实施例方式以下对本专利技术的实施例作进一步描述本实施例在以本专利技术技术方案为前提下进 行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实 施例。 实施例 本实施例采用Xilinx的Virtex IV(XC4VFX12-10-ffg668)芯片实现两个15X 15 的矩阵的浮点乘法运算。 本实施例包括四个并行的矩阵浮点乘法器,每个矩阵浮点乘法器包括控制管 理模块、运算模块和存储模块,其中控制管理模块与运算模块相连传输累加器清零信号,控制管理模块与存储模块相连传输数据地址信号和结果有效信号,运算模块与存储模块相 连传输待运算数据信号和运算结果信号。 所述的控制管理模块生成控制信号以控制运算模块和存储模块,该模块包括数据地址控制子模块、结果有效控制子模块和累加器清零控制子模块,其中数据地址控制子模块与存储模块相连传输数据地址控制信号,结果有效控制子模块与存储模块相连传输结果有效信号,累加器清零控制子模块与运算模块相连传输累加器清零信号。 本实施例中控制管理模块由XC4VFX12-10-ffg668芯片的数字逻辑电路实现。所述的运算模块执行矩阵数据的乘法和累加操作,该模块包括乘法器、浮点_定点转换器、累加器和定点-浮点转换器,其中乘法器与存储模块相连传输待运算数据信号,累加器与累加器清零控制模块相连传输累加器清零信号,乘法器与浮点_定点转换器相连传输浮点乘法信号,浮点-定点转换器与累加器相连传输定点乘法信号,累加器与定点-浮点转换器相连传输浮点累加信号,定点-浮点转换器与存储模块相连传输运算结果信号。 本实施例中运算模块由XC4VFX12-10-ffg668芯片的DSP运算单元实现。 所述的存储模块缓存待运算矩阵的数据和结果矩阵的数据,并提供总线访问接口使外部其他设备与本专利技术装置进行数据交换,该模块包括乘数矩阵存储单元、被乘数矩阵存储单元、结果矩阵存储单元、总线数据接口和内部数据接口,其中乘数矩阵存储单元与数据地址控制子模块相连传输乘数地址信号,被乘数矩阵存储单元与数据地址控制子模块相连传本文档来自技高网
...

【技术保护点】
一种基于FPGA的通用矩阵浮点乘法器,其特征在于,包括:若干并行的矩阵浮点乘法器,每个矩阵浮点乘法器包括:控制管理模块、运算模块和存储模块,其中:控制管理模块与运算模块相连传输累加器清零信号,控制管理模块与存储模块相连传输数据地址信号和结果有效信号,运算模块与存储模块相连传输待运算数据信号和运算结果信号。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨楠兰建韩慧婷王立禾李德伟席裕庚
申请(专利权)人:上海交通大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1