CN103176767A - 一种低功耗高吞吐的浮点数乘累加单元的实现方法 - Google Patents
一种低功耗高吞吐的浮点数乘累加单元的实现方法 Download PDFInfo
- Publication number
- CN103176767A CN103176767A CN2013100669016A CN201310066901A CN103176767A CN 103176767 A CN103176767 A CN 103176767A CN 2013100669016 A CN2013100669016 A CN 2013100669016A CN 201310066901 A CN201310066901 A CN 201310066901A CN 103176767 A CN103176767 A CN 103176767A
- Authority
- CN
- China
- Prior art keywords
- product
- power consumption
- production line
- implementation method
- level production
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种低功耗高吞吐的浮点数乘累加单元的实现方法。它的步骤如下:1)计算矢量点乘运算时,在N个周期内每周期输入一对操作数A与操作数B,前三级流水线执行操作数A与操作数B的浮点乘法操作;2)在第四级流水线将乘积进行权重转换,使尾数位宽增加,指数位宽减少;3)将转换后的乘积在第五级流水线进行累加操作,每周期完成一次乘积的累加;4)第六级流水线与第七级流水线完成权重的复原,在第N+6个周期输出最终乘累加的结果。本发明可完成任意长度N的矢量点乘运算,每周期计算一次乘累加,避免了处理器中寄存器的频繁存取操作。上述运算可以在N+6个周期内完成,兼容单精度与双精度浮点数,并有效降低浮点数运算的功耗。
Description
技术领域
本发明涉及中央处理器以及数字信号处理器中核心运算单元的设计领域,尤其涉及一种低功耗高吞吐的浮点数乘累加单元的实现方法。
背景技术
计算机和通讯技术的迅猛发展,极大的改变了我们的工作和生活方式,人类的生产生活越来越依赖计算机等设备,科学研究和工程应用都对浮点数的运算性能提出了很高的要求,其中乘累加是数字信号处理、科学计算中的关键运算单元。
在传统结构中,矢量点乘运算由于数据相关性的原因,流水线无法每个周期计算一次乘累加,所以吞吐率会大幅下降,其每秒浮点运算次数与峰值性能相距甚远。在实现诸如有限长单位冲激响应滤波器时,传统的浮点数运算装置需要多次寄存器存取操作才能完成,性能损失严重。另外,随着嵌入式手持设备越来越普及,系统的功耗越来越被人们所关注和研究,因而如何降低芯片功耗也成为当前集成电路设计中的关键因素之一。
发明内容
本发明的目的在于克服现有设计对矢量点乘操作的不足,提供一种低功耗高吞吐的浮点数乘累加单元的实现方法。
低功耗高吞吐的浮点数乘累加单元的实现方法的步骤如下:
2)在第四级流水线将乘积进行位宽拓展,对于双精度浮点数将乘积从基2权重转换到基64权重,对于单精度浮点数将乘积从基2权重转换到基32权重,将权重提高以后,尾数位宽增加,指数位宽减少;
3)将转换后的乘积在第五级流水线进行累加操作,累加的临时结果反馈到输入端,与下一周期输入的乘积继续累加,直到N次全部完成,从而消除流水线的停顿,到达每周期完成一次乘积累加,累加器采用4-2进位保留加法器;
4)将进位保留结果通过第六级流水线与第七级流水线的最终加法器与移位器完成权重的复原,在第N+6个周期输出最终乘累加的结果。
所述的权重转换为:乘积需要的位宽调整采用基64-2/32-2转换模块,对于双精度浮点数指数的高5位保留,尾数根据指数低6位左移;对于单精度浮点数指数的高3位保留,尾数根据指数低5位左移。
所述的累加操作为:累加值根据三种指数差值的执行不同的常量移位,分别对应累加值右移位64位,左移位64位,或者不移位,将移位后的尾数相加,在累加器执行的过程中,如果累加的临时结果积累了超过63个零,那么需要将临时结果左移64位,从而使有效位大于53位。
与现有技术相比,本发明的有益效果在于:
1)本发明的浮点数乘累加装置可以完成任意长度N的矢量点乘运算,可以每周期计算一次乘累加,避免了处理器中寄存器的频繁存取操作。本发明可以全流水执行,上述运算可以在N+6个周期内完成,兼容单精度与双精度浮点数;
2)本发明执行一次长度为N的矢量点乘运算,规格化与舍入模块仅仅使用到一次,从而大幅降低了该类运算的功耗;
3)本发明具有模块化设计思想,可以运用到处理器,或者在FPGA上组成运算阵列,完全符合IEEE浮点数运算标准,针对矢量运算具有低功耗和高吞吐率的特点。
附图说明
图1是低功耗高吞吐的浮点数乘累加单元的实现方法的原理图;
图2是本发明的浮点数数据存储格式示意图;
图3是本发明的乘法器模块图;
图4是本发明的基64-2转换模块图;
图5是本发明的单周期累加算法的原理示意图;
图6是本发明的单周期累加模块图;
图7是本发明的低功耗原理示意图。
具体实施方法
如图1、2所示,低功耗高吞吐的浮点数乘累加单元的实现方法的步骤如下:
2)在第四级流水线将乘积进行位宽拓展,对于双精度浮点数将乘积从基2权重转换到基64权重,对于单精度浮点数将乘积从基2权重转换到基32权重,将权重提高以后,尾数位宽增加,指数位宽减少;
3)将转换后的乘积在第五级流水线进行累加操作,累加的临时结果反馈到输入端,与下一周期输入的乘积继续累加,直到N次全部完成,从而消除流水线的停顿,到达每周期完成一次乘积累加,累加器采用4-2进位保留加法器;
4)将进位保留结果通过第六级流水线与第七级流水线的最终加法器与移位器完成权重的复原,在第N+6个周期输出最终乘累加的结果。
如图3所示,乘法器采用booth编码与华莱士树实现,结果采用进位保留的形式,而不直接求出乘积结果,从而节约一个加法器的面积与功耗,最终结果求和会在累加完成后执行。为了保证同时兼容双精度与单精度浮点数。该乘法器采用硬件隔离的手段,在单精度模式下复用双精度模式下的运算逻辑,同时并行执行两组单精度浮点数。
如图4所示,所述的权重转换为:乘积需要的位宽调整采用基64-2/32-2转换模块,对于双精度浮点数指数的高5位保留,尾数根据指数低6位左移;对于单精度浮点数指数的高3位保留,尾数根据指数低5位左移。
扩展了尾数位宽后,使得在累加的过程中可以将规格化与舍入步骤后置到后续流水线,在完成所有累加之后只做一次处理。同理对于两组单精度浮点数而言,该模块将采用硬件隔离的手段,同时做两组基32-2的转换。经过转换以后的尾数宽度为116位,指数仅保留高5位。
如图5、6所示,所述的累加操作为:累加值根据三种指数差值的执行不同的常量移位,分别对应累加值右移位64位,左移位64位,或者不移位,将移位后的尾数相加,在累加器执行的过程中,如果累加的临时结果积累了超过63个零,那么需要将临时结果左移64位,从而使有效位大于53位。
对于基转换以后的乘积,如果乘积与累加临时结果的指数相差在1或0,那么直接将较小的数右移64位,再执行累加。如果乘积与累加临时结果的指数相差大于等于2,那么直接将较大数作为累加结果。
如图7所示,由于图1中第6,7级流水线在整个乘累加过程中只使用到一次,因此在累加过程中可以将其关闭,本发明采用简单的与门逻辑来隔离第6,7级的数据翻转,只要乘累加的数据还在第5级流水线反馈循环,那么控制信号将置为0,从而第6,7级的组合逻辑的信号将不会改变,当乘累加运算结束以后,第6,7级的控制信号将置为1,从而使得数据可以传递到后续模块。
本发明采用smic 0.13um工艺实现,频率可以达到400MHz,逻辑规模等效于50K标准与非门,动态功耗为54mW,由此可以看到本设计相比传统设计在不牺牲面积与速度的前提下,使得矢量点乘操作的效率大幅提高。计算一次仅仅需要N+6个周期即可完成。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和润饰,都落入本发明的保护范围。
Claims (3)
1.一种低功耗高吞吐的浮点数乘累加单元的实现方法,其特征在于,它的步骤如下:
2)在第四级流水线将乘积进行位宽拓展,对于双精度浮点数将乘积从基2权重转换到基64权重,对于单精度浮点数将乘积从基2权重转换到基32权重,将权重提高以后,尾数位宽增加,指数位宽减少;
3)将转换后的乘积在第五级流水线进行累加操作,累加的临时结果反馈到输入端,与下一周期输入的乘积继续累加,直到N次全部完成,从而消除流水线的停顿,到达每周期完成一次乘积累加,累加器采用4-2进位保留加法器;
4)将进位保留结果通过第六级流水线与第七级流水线的最终加法器与移位器完成权重的复原,在第N+6个周期输出最终乘累加的结果。
2.根据权利要求1所述的一种低功耗高吞吐的浮点数乘累加单元的实现方法,其特征在于所述的权重转换为:乘积需要的位宽调整采用基64-2/32-2转换模块,对于双精度浮点数指数的高5位保留,尾数根据指数低6位左移;对于单精度浮点数指数的高3位保留,尾数根据指数低5位左移。
3.根据权利要求1所述的一种低功耗高吞吐的浮点数乘累加单元的实现方法,其特征在于所述的累加操作为:累加值根据三种指数差值的执行不同的常量移位,分别对应累加值右移位64位,左移位64位,或者不移位,将移位后的尾数相加,在累加器执行的过程中,如果累加的临时结果积累了超过63个零,那么需要将临时结果左移64位,从而使有效位大于53位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310066901.6A CN103176767B (zh) | 2013-03-01 | 2013-03-01 | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310066901.6A CN103176767B (zh) | 2013-03-01 | 2013-03-01 | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103176767A true CN103176767A (zh) | 2013-06-26 |
CN103176767B CN103176767B (zh) | 2016-08-03 |
Family
ID=48636674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310066901.6A Expired - Fee Related CN103176767B (zh) | 2013-03-01 | 2013-03-01 | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103176767B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407836A (zh) * | 2014-10-14 | 2015-03-11 | 中国航天科技集团公司第九研究院第七七一研究所 | 利用定点乘法器进行级联乘累加运算的装置和方法 |
CN106325812A (zh) * | 2015-06-15 | 2017-01-11 | 华为技术有限公司 | 一种针对乘累加运算的处理方法及装置 |
WO2017092283A1 (zh) * | 2015-12-01 | 2017-06-08 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN106897046A (zh) * | 2017-01-24 | 2017-06-27 | 青岛朗思信息科技有限公司 | 一种定点乘累加器 |
CN106951211A (zh) * | 2017-03-27 | 2017-07-14 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN107305485A (zh) * | 2016-04-25 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
WO2017185203A1 (zh) * | 2016-04-25 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN108875924A (zh) * | 2018-02-09 | 2018-11-23 | 北京旷视科技有限公司 | 基于神经网络的数据处理方法、装置、系统及存储介质 |
CN109716287A (zh) * | 2016-09-21 | 2019-05-03 | 阿尔特拉公司 | 降低的浮点精度的算术电路 |
CN109871952A (zh) * | 2017-12-01 | 2019-06-11 | 阿比特电子科技有限公司 | 电子装置、加速器、神经网络的加速方法及加速系统 |
CN110209375A (zh) * | 2019-05-30 | 2019-09-06 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
CN112051981A (zh) * | 2020-09-15 | 2020-12-08 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
CN112230993A (zh) * | 2020-09-29 | 2021-01-15 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子设备 |
CN112463112A (zh) * | 2020-11-19 | 2021-03-09 | 上海壁仞智能科技有限公司 | 点积累加方法及装置 |
CN112988112A (zh) * | 2021-04-27 | 2021-06-18 | 北京壁仞科技开发有限公司 | 点积计算装置 |
WO2021212285A1 (zh) * | 2020-04-20 | 2021-10-28 | 深圳市大疆创新科技有限公司 | 浮点累加装置、方法和计算机存储介质 |
CN117492693A (zh) * | 2024-01-03 | 2024-02-02 | 沐曦集成电路(上海)有限公司 | 一种用于滤波器的浮点数据处理系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046495A1 (en) * | 2006-08-18 | 2008-02-21 | Yun Du | Multi-stage floating-point accumulator |
CN101840324A (zh) * | 2010-04-28 | 2010-09-22 | 中国科学院自动化研究所 | 支持复数运算和子字并行的64位定浮点乘法器 |
-
2013
- 2013-03-01 CN CN201310066901.6A patent/CN103176767B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046495A1 (en) * | 2006-08-18 | 2008-02-21 | Yun Du | Multi-stage floating-point accumulator |
CN101840324A (zh) * | 2010-04-28 | 2010-09-22 | 中国科学院自动化研究所 | 支持复数运算和子字并行的64位定浮点乘法器 |
Non-Patent Citations (1)
Title |
---|
黄丹连: "高吞吐率单双精度可配置浮点乘累加器的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407836B (zh) * | 2014-10-14 | 2017-05-31 | 中国航天科技集团公司第九研究院第七七一研究所 | 利用定点乘法器进行级联乘累加运算的装置和方法 |
CN104407836A (zh) * | 2014-10-14 | 2015-03-11 | 中国航天科技集团公司第九研究院第七七一研究所 | 利用定点乘法器进行级联乘累加运算的装置和方法 |
CN106325812B (zh) * | 2015-06-15 | 2019-03-08 | 华为技术有限公司 | 一种针对乘累加运算的处理方法及装置 |
CN106325812A (zh) * | 2015-06-15 | 2017-01-11 | 华为技术有限公司 | 一种针对乘累加运算的处理方法及装置 |
WO2017092283A1 (zh) * | 2015-12-01 | 2017-06-08 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
US10379816B2 (en) | 2015-12-01 | 2019-08-13 | Institute Of Computing Technology, Chinese Academy Of Sciences | Data accumulation apparatus and method, and digital signal processing device |
CN107305485A (zh) * | 2016-04-25 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
WO2017185203A1 (zh) * | 2016-04-25 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN109716287A (zh) * | 2016-09-21 | 2019-05-03 | 阿尔特拉公司 | 降低的浮点精度的算术电路 |
CN106897046A (zh) * | 2017-01-24 | 2017-06-27 | 青岛朗思信息科技有限公司 | 一种定点乘累加器 |
CN106897046B (zh) * | 2017-01-24 | 2019-04-23 | 青岛专用集成电路设计工程技术研究中心 | 一种定点乘累加器 |
CN106951211A (zh) * | 2017-03-27 | 2017-07-14 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN106951211B (zh) * | 2017-03-27 | 2019-10-18 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN109871952A (zh) * | 2017-12-01 | 2019-06-11 | 阿比特电子科技有限公司 | 电子装置、加速器、神经网络的加速方法及加速系统 |
CN108875924A (zh) * | 2018-02-09 | 2018-11-23 | 北京旷视科技有限公司 | 基于神经网络的数据处理方法、装置、系统及存储介质 |
CN110209375A (zh) * | 2019-05-30 | 2019-09-06 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
CN110209375B (zh) * | 2019-05-30 | 2021-03-26 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
WO2021212285A1 (zh) * | 2020-04-20 | 2021-10-28 | 深圳市大疆创新科技有限公司 | 浮点累加装置、方法和计算机存储介质 |
CN112051981A (zh) * | 2020-09-15 | 2020-12-08 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
CN112051981B (zh) * | 2020-09-15 | 2023-09-01 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
CN112230993A (zh) * | 2020-09-29 | 2021-01-15 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子设备 |
CN112463112A (zh) * | 2020-11-19 | 2021-03-09 | 上海壁仞智能科技有限公司 | 点积累加方法及装置 |
CN112463112B (zh) * | 2020-11-19 | 2022-08-16 | 上海壁仞智能科技有限公司 | 点积累加方法及装置 |
CN112988112A (zh) * | 2021-04-27 | 2021-06-18 | 北京壁仞科技开发有限公司 | 点积计算装置 |
CN117492693A (zh) * | 2024-01-03 | 2024-02-02 | 沐曦集成电路(上海)有限公司 | 一种用于滤波器的浮点数据处理系统 |
CN117492693B (zh) * | 2024-01-03 | 2024-03-22 | 沐曦集成电路(上海)有限公司 | 一种用于滤波器的浮点数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103176767B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176767A (zh) | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 | |
CN102629189B (zh) | 基于fpga的流水浮点乘累加方法 | |
CN103092560B (zh) | 一种基于Bypass技术的低功耗乘法器 | |
Choi et al. | Energy-efficient design of processing element for convolutional neural network | |
CN108647779A (zh) | 一种低位宽卷积神经网络可重构计算单元 | |
Sen et al. | Low power mac unit for DSP processor | |
CN103901405B (zh) | 实时块浮点频域四路脉冲压缩器及其脉冲压缩方法 | |
CN101840324B (zh) | 支持复数运算和子字并行的64位定浮点乘法器 | |
CN103955585B (zh) | 一种适用于低功耗容错电路的fir滤波器结构 | |
CN106682732A (zh) | 一种应用于神经网络的高斯误差函数电路 | |
Zolfagharinejad et al. | Posit process element for using in energy-efficient DNN accelerators | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
Khan et al. | Comparative analysis of different algorithm for design of high-speed multiplier accumulator unit (MAC) | |
CN103176948A (zh) | 一种低成本的单精度初等函数运算加速器 | |
Senapati et al. | Novel binary divider architecture for high speed VLSI applications | |
Chavan et al. | High speed 32-bit vedic multiplier for DSP applications | |
CN103365826B (zh) | 一种小面积的基-3fft蝶形单元 | |
Pawar et al. | Design & implementation of area efficient low power high speed MAC unit using FPGA | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
Kumar | VLSI implementation of Vedic multiplier | |
Bokade et al. | CLA based 32-bit signed pipelined multiplier | |
CN103699729B (zh) | 模乘法器 | |
Singh | Design of low area and low power modified 32-BIT square root carry select adder | |
Thakare et al. | Low Power 64-Bit Multiplier Design By Vedic Mathematics | |
Anuhya et al. | ASIC implementation of efficient floating point multiplier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20190301 |
|
CF01 | Termination of patent right due to non-payment of annual fee |