CN104238992A - 一种高性能非精确浮点加法器及其应用方法 - Google Patents
一种高性能非精确浮点加法器及其应用方法 Download PDFInfo
- Publication number
- CN104238992A CN104238992A CN201410451869.8A CN201410451869A CN104238992A CN 104238992 A CN104238992 A CN 104238992A CN 201410451869 A CN201410451869 A CN 201410451869A CN 104238992 A CN104238992 A CN 104238992A
- Authority
- CN
- China
- Prior art keywords
- precision
- mantissa
- adder
- totalizer
- index
- 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.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种高性能非精确浮点加法器及其应用方法,该非精确浮点加法器由非精确指数加法器、尾数交换单元、移位单元、非精确尾数加法器、符号逻辑单元、指数更新单元以及非精确规则化单元组成,所述非精确指数加法器和非精确尾数加法器的高位m比特为精确定点加法器、低位n比特为非精确定点加法器。在应用本发明时,非精确指数和尾数加法器中精确定点加法器的位数以及非精确定点加法器的位数需要通过软件仿真的方法确定。本发明可以接受符合IEEE754协议的各种精度的浮点数,是一种新型的高速、低功耗、小面积的浮点加法器,在嵌入式数字信号处理器领域具有广阔的应用前景。
Description
技术领域
本发明涉及基于非精确电路设计领域,尤其涉及一种高性能非精确浮点加法器及其应用方法。
背景技术
随着嵌入式系统尤其是手机和平板电脑等移动设备的功能体验不断丰富和发展,功耗已经成为数字集成电路设计的关键问题之一。工业界对于芯片设计的要求已经从追求高性能和小面积转变为对性能、面积和功耗的综合要求。因此,在保证电路性能的前提下,降低数字集成电路的功耗已经成为学术界和工业界的研究重点。
研究表明降低计算的精确度可以节省相应的能量消耗,同时这种能量的节省和功耗的降低非常明显。通过降低计算精确度来实现低功耗的方法和设计理念被称为非精确计算,和之前其他技术最大的不同在于非精确计算系统可以将错误限定在可允许的范围内并且不需要添加任何的错误纠正或者补偿措施。
现有的精确浮点加法器面积大,需要较多的硬件资源,同时功耗高,速度慢,严重限制了浮点加法器在嵌入式领域的应用。
发明内容
本发明所要解决的技术问题是针对现有浮点加法器的缺陷,提供一种高性能非精确浮点加法器及其应用方法,该浮点加法器面积小、速度高、功耗低,可以接受符合IEEE 754协议的各种精度的浮点数。
本发明为解决上述技术问题采用以下技术方案:
一种高性能非精确浮点加法器,包含非精确指数加法器、尾数交换单元、移位单元、非精确尾数加法器、符号逻辑单元、指数更新单元以及非精确规则化单元;
所述非精确指数加法器用于比较两个操作数的指数部分,并将指数比较的结果传递给尾数交换单元、符号逻辑单元以及指数更新单元;
所述尾数交换单元用于根据指数比较的结果交换两个操作数的尾数部分,以保证需要进行移位的尾数处于正确的位置上,同时,将需要移位的尾数传递给所述移位单元、不需要移位的尾数传递给非精确尾数加法器;
所述移位单元用于将需要移位的尾数根据指数比较的结果进行移位对齐,对齐后的尾数传递给非精确尾数加法器;
所述非精确尾数加法器用于将经过对齐以后的尾数与不需要移位的尾数进行相加,并将结果传给符号逻辑单元和非精确规则化单元;
所述符号逻辑单元接受两个操作数的符号以及非精确指数加法器和非精确尾数加法器的结果,从而确定两个操作数相加后和的正负;
所述非精确规则化单元用于将非精确尾数加法器输出的和规则化为符合IEEE-754要求的形式,输出两个操作数相加后和的尾数,同时根据非精确尾数加法器的结果来确定指数更新单元需要的更新量;
所述指数更新单元接受非精确指数加法器和非精确规则化单元的结果,用于更新两个操作数相加后和的指数。
作为本发明一种高性能非精确浮点加法器进一步的优化方案,所述非精确指数加法器和非精确尾数加法器的高位m比特为精确定点加法器、低位n比特为非精确定点加法器,其中m+n=k,k为定点加法器的总比特数。
作为本发明一种高性能非精确浮点加法器进一步的优化方案,所述非精确指数加法器和非精确尾数加法器的低位运算由或门构成,无进位位。
作为本发明一种高性能非精确浮点加法器进一步的优化方案,所述非精确规则化单元根据非精确尾数加法器中非精确的位数来进行前导零检测。
本发明还公开了一种基于该高性能非精确浮点加法器的应用方法,其中,在非精确指数加法器和非精确尾数加法器中,精确定点加法器的位数以及非精确定点加法器的位数的确定包含以下步骤:
步骤1),将非精确浮点加法器初始的非精确指数加法器和非精确尾数加法器中精确定点加法器的位数m设为0、非精确定点加法器的位数n设为k;
步骤2),对非精确浮点加法器进行建模;
步骤3),根据具体的应用数据对建模后的非精确浮点加法器进行仿真;
步骤4),根据应用的要求评估仿真的结果,如果仿真的结果不符合应用的要求,则将非精确指数加法器和非精确尾数加法器中精确定点加法器的位数增加一位,非精确定点加法器的位数减少一位;
步骤 5),重复步骤2)至步骤4),直至仿真的结果符合应用的要求。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1. 与之前的浮点加法器相比,需要更少的硬件资源;
2. 功耗更低,速度更快,使得浮点加法器可以更广泛的应用在嵌入式处理器中。
附图说明
图1为本发明的整体框图;
图2为非精确指数加法器和非精确尾数加法器中的非精确定点加法器的结构示意图;
图3为非精确指数加法器和非精确尾数加法器中非精确定点加法器位数的确定流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
如图1所示,本发明公开了一种高性能非精确浮点加法器,包含非精确指数加法器、尾数交换单元、移位单元、非精确尾数加法器、符号逻辑单元、指数更新单元以及非精确规则化单元;
所述非精确指数加法器用于比较两个操作数的指数部分,并将指数比较的结果传递给尾数交换单元、符号逻辑单元以及指数更新单元;
所述尾数交换单元用于根据指数比较的结果交换两个操作数的尾数部分,以保证需要进行移位的尾数处于正确的位置上,同时,将需要移位的尾数传递给所述移位单元、不需要移位的尾数传递给非精确尾数加法器;
所述移位单元用于将需要移位的尾数根据指数比较的结果进行移位对齐,对齐后的尾数传递给非精确尾数加法器;
所述非精确尾数加法器用于将经过对齐以后的尾数与不需要移位的尾数进行相加,并将结果传给符号逻辑单元和非精确规则化单元;
所述符号逻辑单元接受两个操作数的符号以及非精确指数加法器和非精确尾数加法器的结果,从而确定两个操作数相加后和的正负;
所述非精确规则化单元用于将非精确尾数加法器输出的和规则化为符合IEEE-754要求的形式,输出两个操作数相加后和的尾数,同时根据非精确尾数加法器的结果来确定指数更新单元需要的更新量;
所述指数更新单元接受非精确指数加法器和非精确规则化单元的结果,用于更新两个操作数相加后和的指数。
所述非精确指数加法器和非精确尾数加法器的高位m比特为精确定点加法器、低位n比特为非精确定点加法器,其中m+n=k,k为定点加法器的总比特数。
所述非精确指数加法器和非精确尾数加法器的低位运算由或门构成,无进位位。
所述非精确规则化单元根据非精确尾数加法器中非精确的位数来进行前导零检测。
本发明可以应用于符合IEEE-754标准的半精度、单精度及双精度等浮点数类型。
本发明还公开了一种基于该高性能非精确浮点加法器的应用方法,其中,非精确指数加法器和非精确尾数加法器中,精确定点加法器的位数以及非精确定点加法器的位数的确定包含以下步骤:
步骤1),将非精确浮点加法器初始的非精确指数加法器和非精确尾数加法器中精确定点加法器的位数m设为0、非精确定点加法器的位数n设为k;
步骤2),对非精确浮点加法器进行建模;
步骤3),根据具体的应用数据对建模后的非精确浮点加法器进行仿真;
步骤4),根据应用的要求评估仿真的结果,如果仿真的结果不符合应用的要求,则将非精确指数加法器和非精确尾数加法器中精确定点加法器的位数增加一位,非精确定点加法器的位数减少一位;
步骤 5),重复步骤2)至步骤4),直至仿真的结果符合应用的要求。
图2为非精确指数加法器和非精确尾数加法器中的非精确定点加法器的结构示意图,其主要组成部分为一系列两输入或门,或门的个数n取决于非精确应用的实际指标要求。
图3为非精确指数加法器和非精确尾数加法器中精确定点加法器位数(m)以及非精确定点加法器位数(n)确定方法的流程图。首先将指数加法器和尾数加法器中的精确定点加法器位数设为0,然后用C或者Matlab等软件对非精确浮点加法器进行建模,然后用软件建模后的非精确浮点加法器,针对不同的实际应用进行仿真。如果仿真结果不符合要求,则增加指数加法器和尾数加法器中精确定点加法器的位数,然后重复软件建模和仿真的步骤直到找到符号要求的设计,此时精确定点加法器的位数m,以及对应的n=k-m即符和要求的最优设计。
以上只是对本发明的优选实施方式进行了描述。对该技术领域的普通技术人员来说,根据以上实施方式可以很容易地联想到其它的优点和变形。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员在本发明技术的方案范围内进行的通常变化和替换,都应包含在本发明的保护范围之内。
Claims (5)
1. 一种高性能非精确浮点加法器,其特征在于,包含非精确指数加法器、尾数交换单元、移位单元、非精确尾数加法器、符号逻辑单元、指数更新单元以及非精确规则化单元;
所述非精确指数加法器用于比较两个操作数的指数部分,并将指数比较的结果传递给尾数交换单元、符号逻辑单元以及指数更新单元;
所述尾数交换单元用于根据指数比较的结果交换两个操作数的尾数部分,以保证需要进行移位的尾数处于正确的位置上,同时,将需要移位的尾数传递给所述移位单元、不需要移位的尾数传递给非精确尾数加法器;
所述移位单元用于将需要移位的尾数根据指数比较的结果进行移位对齐,对齐后的尾数传递给非精确尾数加法器;
所述非精确尾数加法器用于将经过对齐以后的尾数与不需要移位的尾数进行相加,并将结果传给符号逻辑单元和非精确规则化单元;
所述符号逻辑单元接受两个操作数的符号以及非精确指数加法器和非精确尾数加法器的结果,从而确定两个操作数相加后和的正负;
所述非精确规则化单元用于将非精确尾数加法器输出的和规则化为符合IEEE-754要求的形式,输出两个操作数相加后和的尾数,同时根据非精确尾数加法器的结果来确定指数更新单元需要的更新量;
所述指数更新单元接受非精确指数加法器和非精确规则化单元的结果,用于更新两个操作数相加后和的指数。
2. 根据权利要求1所述的高性能非精确浮点加法器,其特性在于,所述非精确指数加法器和非精确尾数加法器的高位m比特为精确定点加法器、低位n比特为非精确定点加法器,其中m+n=k,k为定点加法器的总比特数。
3. 根据权利要求2所述的高性能非精确浮点加法器,其特性在于,所述非精确指数加法器和非精确尾数加法器的低位运算由或门构成,无进位位。
4. 根据权利要求1所述的高性能非精确浮点加法器,其特性在于,所述非精确规则化单元根据非精确尾数加法器中非精确的位数来进行前导零检测。
5. 基于权利要求2所述的高性能非精确浮点加法器的应用方法,其特征在于,所述非精确指数加法器和非精确尾数加法器中,精确定点加法器的位数以及非精确定点加法器的位数的确定包含以下步骤:
步骤1),将非精确浮点加法器初始的非精确指数加法器和非精确尾数加法器中精确定点加法器的位数m设为0、非精确定点加法器的位数n设为k;
步骤2),对非精确浮点加法器进行建模;
步骤3),根据具体的应用数据对建模后的非精确浮点加法器进行仿真;
步骤4),根据应用的要求评估仿真的结果,如果仿真的结果不符合应用的要求,则将非精确指数加法器和非精确尾数加法器中精确定点加法器的位数增加一位,非精确定点加法器的位数减少一位;
步骤 5),重复步骤2)至步骤4),直至仿真的结果符合应用的要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410451869.8A CN104238992A (zh) | 2014-09-09 | 2014-09-09 | 一种高性能非精确浮点加法器及其应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410451869.8A CN104238992A (zh) | 2014-09-09 | 2014-09-09 | 一种高性能非精确浮点加法器及其应用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104238992A true CN104238992A (zh) | 2014-12-24 |
Family
ID=52227146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410451869.8A Pending CN104238992A (zh) | 2014-09-09 | 2014-09-09 | 一种高性能非精确浮点加法器及其应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104238992A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991756A (zh) * | 2015-06-19 | 2015-10-21 | 南京航空航天大学 | 一种数据链路传输过程的浮点数据保护方法 |
CN105426156A (zh) * | 2015-10-28 | 2016-03-23 | 南京航空航天大学 | 一种高性能非精确乘法器及其应用方法 |
CN109582279A (zh) * | 2018-11-30 | 2019-04-05 | 上海寒武纪信息科技有限公司 | 数据运算装置及相关产品 |
CN112783469A (zh) * | 2020-12-29 | 2021-05-11 | 深圳信息职业技术学院 | 一种用于执行浮点指数运算的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
CN101650642A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 基于补码舍入的浮点加法装置 |
CN102004627A (zh) * | 2010-11-01 | 2011-04-06 | 深圳市海思半导体有限公司 | 乘法舍入实现方法和装置 |
CN102103479A (zh) * | 2011-03-02 | 2011-06-22 | 中兴通讯股份有限公司 | 浮点运算器及浮点运算的处理方法 |
-
2014
- 2014-09-09 CN CN201410451869.8A patent/CN104238992A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
CN101650642A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 基于补码舍入的浮点加法装置 |
CN102004627A (zh) * | 2010-11-01 | 2011-04-06 | 深圳市海思半导体有限公司 | 乘法舍入实现方法和装置 |
CN102103479A (zh) * | 2011-03-02 | 2011-06-22 | 中兴通讯股份有限公司 | 浮点运算器及浮点运算的处理方法 |
Non-Patent Citations (1)
Title |
---|
WEIQIANG LIU ET.AL: "Inexact Floating-Point Adder for Dynamic Image Processing", 《PROCEEDINGS OF THE 14TH IEEE INTERNATIONAL CONFERENCE ON NANOTECHNOLOGY, TORONTO, CANADA》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991756A (zh) * | 2015-06-19 | 2015-10-21 | 南京航空航天大学 | 一种数据链路传输过程的浮点数据保护方法 |
CN104991756B (zh) * | 2015-06-19 | 2018-04-17 | 南京航空航天大学 | 一种数据链路传输过程的浮点数据保护方法 |
CN105426156A (zh) * | 2015-10-28 | 2016-03-23 | 南京航空航天大学 | 一种高性能非精确乘法器及其应用方法 |
CN105426156B (zh) * | 2015-10-28 | 2018-07-20 | 南京航空航天大学 | 一种高性能非精确乘法器及其应用方法 |
CN109582279A (zh) * | 2018-11-30 | 2019-04-05 | 上海寒武纪信息科技有限公司 | 数据运算装置及相关产品 |
CN109582279B (zh) * | 2018-11-30 | 2021-06-15 | 上海寒武纪信息科技有限公司 | 数据运算装置及相关产品 |
CN112783469A (zh) * | 2020-12-29 | 2021-05-11 | 深圳信息职业技术学院 | 一种用于执行浮点指数运算的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI529613B (zh) | 一種用於可降低浮點運算功率之電腦實施方法及算術子系統 | |
US10540142B2 (en) | Accuracy-conserving floating-point value aggregation | |
EP1857925B1 (en) | Method and apparatus for decimal number multiplication using hardware for binary number operations | |
CN103677738A (zh) | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 | |
CN104520807A (zh) | 用于具有指数按比例缩放的浮点融合乘法加法的微架构 | |
CN104238992A (zh) | 一种高性能非精确浮点加法器及其应用方法 | |
CN105426156A (zh) | 一种高性能非精确乘法器及其应用方法 | |
KR20190058537A (ko) | 동적 가변 정밀도 계산 | |
CN103135960A (zh) | 一种基于fpga的集成浮点运算器的设计方法 | |
CN105045560A (zh) | 一种定点乘加运算方法和装置 | |
CN103176948B (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN101510149B (zh) | 一种数据处理方法和装置 | |
CN204256734U (zh) | 外围接口扩展装置 | |
CN102495714A (zh) | 执行浮点减法的装置与方法及预测符号数字的装置与方法 | |
CN102253822B (zh) | 一种模(2^n-3)乘法器 | |
CN110222305A (zh) | 一种基于双曲cordic的对数函数计算系统及方法 | |
CN111313890B (zh) | 一种高性能近似全加器门级单元 | |
US20150363170A1 (en) | Calculation of a number of iterations | |
CN102109973A (zh) | 包含超越函数计算的处理器实现装置 | |
CN205281474U (zh) | 一种可配置的两级流水线六操作数快速加法器 | |
CN100426219C (zh) | 一种集成电路中的数据运算方法及装置 | |
Kang et al. | The design and implementation of multi-precision floating point arithmetic unit based on FPGA | |
CN111290790A (zh) | 一种定点转浮点的转换装置 | |
CN102880445B (zh) | 一种模减法器 | |
CN202075727U (zh) | 包含超越函数计算的处理器实现装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141224 |
|
WD01 | Invention patent application deemed withdrawn after publication |