[发明专利]一种用于执行多个浮点数相加的装置及方法有效
申请号: | 201610261902.X | 申请日: | 2016-04-25 |
公开(公告)号: | CN107305485B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 郭崎;周聖元;李震;陈云霁;陈天石 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F7/575 | 分类号: | G06F7/575 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 浮点 相加 装置 方法 | ||
本公开提供了一种执行多个浮点数相加的装置和方法,装置包括预处理模块、加法运算模块及规格化处理模块,预处理模块对多个浮点数进行预处理,以使多个浮点数的指数位和符号位一致,加法运算模块对预处理后的多个浮点数相加,得到累加结果及该累加结果的待移位值,规格化处理模块根据待移位值对累加结果的符号位、指数位和尾数位进行移位,得到规格化的累加结果。本公开在执行多个浮点数相加时具有运算延迟低、结果精度损失小的优点。
技术领域
本公开提供一种用于执行多个浮点数相加的装置及方法,可用于图像处理器、数字处理器、智能设备及片上网络数据运算等。
背景技术
随着大数据时代的来临,数据的运算量也随之大幅增加,对运算的速度也提出了更高的要求。无论是图像还是数字等处理器,都必须满足低延迟、准确度高的运算要求。浮点数加法,作为最基本且最常用的浮点数运算之一,如何加速此类运算,也显得尤为重要,并引起了广泛的讨论和研究。
现有的操作数相加的加速装置,主要分为两种,串行进位加法树和进位保存加法树。
图1示出了串行进位加法树的结构,即采用二叉树的结构,对待运算的操作数两两相加,而后向上传递,直至得到最终结果。显然,该结构支持多浮点数并行相加,加速了加法运算,但是在进位传播时,需要消耗大量的时钟延迟,而且,运算结果和操作数的顺序也有一定的关系,运算结果的精度损失较大。
图2示出了进位保存加法树的结构,即利用华莱士树的结构,将由每一级全加器的进位生成的部分连接到下一级的高位,通过连线实现进位传递,避免复杂的进位传递逻辑,降低了进位传递的延迟。然而,这种方法并不能直接用于浮点数的加法,并且,操作数的顺序不同,也可能带来计算误差。
另外,常用算法中,大多将浮点数加法和浮点数的累加混合在一起,这种混合操作,就要求运算器必需同时支持这两种运算,并且运算结果和给定的操作数顺序无关。
发明内容
(一)要解决的技术问题
本公开的目的在于,提供一种能够执行多个浮点数相加的装置和方法,具有运算延迟低、结果精度损失小的优点。
(二)技术方案
本公开提供一种用于执行多个浮点数相加的装置,浮点数包括符号位、指数位和尾数位,装置包括:
加法运算模块,用于对多个浮点数相加,得到累加结果及该累加结果的待移位值,所述累加结果包括符号位、指数位和尾数位;
规格化处理模块,用于根据待移位值对所述累加结果的符号位、指数位和尾数位进行移位,得到规格化的累加结果。
进一步,装置还包括:
预处理模块,用于对所述多个浮点数进行预处理,以使多个浮点数的指数位和符号位一致。
进一步,预处理模块包括:
比较选择模块,用于对所述多个浮点数的指数位进行两两比较,选择出最大的指数位;
计算移位模块,用于根据每个浮点数和具有最大指数位的浮点数的指数位的关系来求得每个浮点数需要进行逻辑移位的位数n,并对相应浮点数的尾数位进行逻辑移位,以使每一个浮点数的指数位均等于所述最大的指数位。
进一步,在比较选择模块中,以二叉树的形式对所述多个浮点数的指数位进行两两比较。
进一步,在所述计算移位模块中,令每一个浮点数的符号位与指数位最大的浮点数的符号位一致,其中,浮点数在改变符号位时,对其尾数位取补码。
进一步,计算移位模块求得逻辑移位的位数n,包括:
计算最大的指数位和待逻辑移位的浮点数的指数位的差值Δe;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610261902.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种非线性函数运算装置及方法
- 下一篇:一种神经网络maxout层计算装置