The present invention provides an apparatus and method for performing multiple floating-point addition, device includes preprocessing module, adder module and normalization processing module, preprocessing module to preprocess a plurality of floating-point numbers, in order to make the index and sign multiple floating point position, and method of operation module a float together after pretreatment, accumulation and the result of cumulative results to shift value, normalized processing module to shift on the value of the cumulative index sign bit, and tail digital shift according to the obtained results, the cumulative normalized. The present invention has the advantages of low operation delay and small loss of result precision when performing multiple floating point numbers addition.
【技术实现步骤摘要】
一种用于执行多个浮点数相加的装置及方法
本专利技术提供一种用于执行多个浮点数相加的装置及方法,可用于图像处理器、数字处理器、智能设备及片上网络数据运算等。
技术介绍
随着大数据时代的来临,数据的运算量也随之大幅增加,对运算的速度也提出了更高的要求。无论是图像还是数字等处理器,都必须满足低延迟、准确度高的运算要求。浮点数加法,作为最基本且最常用的浮点数运算之一,如何加速此类运算,也显得尤为重要,并引起了广泛的讨论和研究。现有的操作数相加的加速装置,主要分为两种,串行进位加法树和进位保存加法树。图1示出了串行进位加法树的结构,即采用二叉树的结构,对待运算的操作数两两相加,而后向上传递,直至得到最终结果。显然,该结构支持多浮点数并行相加,加速了加法运算,但是在进位传播时,需要消耗大量的时钟延迟,而且,运算结果和操作数的顺序也有一定的关系,运算结果的精度损失较大。图2示出了进位保存加法树的结构,即利用华莱士树的结构,将由每一级全加器的进位生成的部分连接到下一级的高位,通过连线实现进位传递,避免复杂的进位传递逻辑,降低了进位传递的延迟。然而,这种方法并不能直接用于浮点数的加 ...
【技术保护点】
一种用于执行多个浮点数相加的装置,所述浮点数包括符号位、指数位和尾数位,其特征在于,装置包括:预处理模块,用于对所述多个浮点数进行预处理,以使所述多个浮点数的指数位和符号位一致;加法运算模块,用于对预处理后的多个浮点数相加,得到累加结果及该累加结果的待移位值,所述累加结果包括符号位、指数位和尾数位;规格化处理模块,用于根据所述待移位值对所述累加结果的符号位、指数位和尾数位进行移位,得到规格化的累加结果。
【技术特征摘要】
1.一种用于执行多个浮点数相加的装置,所述浮点数包括符号位、指数位和尾数位,其特征在于,装置包括:预处理模块,用于对所述多个浮点数进行预处理,以使所述多个浮点数的指数位和符号位一致;加法运算模块,用于对预处理后的多个浮点数相加,得到累加结果及该累加结果的待移位值,所述累加结果包括符号位、指数位和尾数位;规格化处理模块,用于根据所述待移位值对所述累加结果的符号位、指数位和尾数位进行移位,得到规格化的累加结果。2.根据权利要求1所述的用于执行多个浮点数相加的装置,其特征在于,所述预处理模块包括:比较选择模块,用于以二叉树的形式对所述多个浮点数的指数位进行两两比较,选择出最大的指数位;计算移位模块,用于根据每个浮点数和具有最大指数位的浮点数的指数位的关系来求得每个浮点数需要进行逻辑移位的位数n,并对相应浮点数的尾数位进行逻辑移位,以使每一个浮点数的指数位均等于所述最大的指数位,同时,令每一个浮点数的符号位与指数位最大的浮点数的符号位一致,其中,浮点数在改变符号位时,对其尾数位取补码。3.根据权利要求2所述的用于执行多个浮点数相加的装置,其特征在于,所述计算移位模块求得逻辑移位的位数n,包括:计算最大的指数位和待逻辑移位的浮点数的指数位的差值Δe;若具有最大指数位的浮点数为规格化浮点数,而待逻辑移位的浮点数为非规格化浮点数,则令n=Δe-1;否则,令n=Δe。4.根据权利要求3所述的用于执行多个浮点数相加的装置,其特征在于,所述计算移位模块对浮点数的尾数位进行逻辑移位,包括:在所述浮点数的尾数位的最高位前补上1位隐藏位,其中,对于规格化浮点数,隐藏位的值为1,对于非规格化浮点数,隐藏位的值为0;在所述浮点数的尾数位的最低位后增加k个“0”,作为有效位;对增加了有效位和隐藏位的尾数位右移n位,以舍弃尾数位最低的n位;将移位后的尾数位的最低位作为粘滞位,将粘滞位与舍弃的n位进行“或”运算,用运算结果更新粘滞位,得到最终所需的浮点数的尾数位。5.根据权利要求1所述的用于执行多个浮点数相加的装置,其特征在于,所述加法运算模块包括:华莱士树模块,用于采用华莱士树结构将所述多个浮点数相加,直至归约为两个数;最终结果累加模块,用于将该两个数相加,得到第一累加结果,并将该两个数的反码相加,得到第二累加结果,根据第一累加结果的最高位,选择第一累加结果或者第二累加结果,作为所述累加结果;前导零预测模块,用于对该两个数进行逻辑运算,确定所述累加结果第一个有效数字位的位置,以得到所述累加结果的待移位值。6.根据权利要求5所述的用于执行多个浮点数相加的装置,其特征在于,所述规格化处理模块根据所述待移位值对所述累加结果进行逻辑移位,以使所述累加结果的第一个有效数字位处于最高位,并对逻辑移位后的累加结果进行规格化...
【专利技术属性】
技术研发人员:郭崎,周聖元,李震,陈云霁,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。