CN102799411A - 浮点数累加电路及其实现方法 - Google Patents
浮点数累加电路及其实现方法 Download PDFInfo
- Publication number
- CN102799411A CN102799411A CN201210223376XA CN201210223376A CN102799411A CN 102799411 A CN102799411 A CN 102799411A CN 201210223376X A CN201210223376X A CN 201210223376XA CN 201210223376 A CN201210223376 A CN 201210223376A CN 102799411 A CN102799411 A CN 102799411A
- Authority
- CN
- China
- Prior art keywords
- signal
- floating number
- circuit
- number signal
- power exponent
- 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
本发明实施例公开了一种浮点数累加电路及其实现方法,涉及数字计算技术领域,所述方法包括:对至少两个浮点数信号进行取反操作、指数运算操作、符号和运算操作、对阶操作、双路累加操作、加法操作、符号选择操作、规格化操作和溢出处理操作,输出所述输入信号组合的累加结果。本发明适用于浮点数运算。
Description
技术领域
本发明涉及数字计算技术领域,特别涉及在数字信号处理器或硬件加速器系统中构建一种浮点数累加电路及其实现方法。
背景技术
近年来,在各种领域的应用中对高精度和高动态范围的要求逐渐成为最重要的一环,相对于定点而言,浮点数具有更高的精度以及更高的动态范围,所以浮点数越发受到重视。浮点数用于近似表示某个实数,其格式可以表示为{S,E,M},其中,S为符号,E为指数,M为规格化的尾数,例如,{S,E,M}=(-1)s×(1+m)×2e。由于浮点数自身的特点,决定了浮点数的运算要更加复杂,因此想要快速准确的获取浮点数运算结果需要更高配置的硬件设施。
现有技术中至少存在如下问题:浮点数运算复杂度较高,需要性能更高的硬件设备支持,由于当前用于浮点数运算的加速器和浮点数字信号处理器核心的主频等硬件条件的限制,浮点数运算的运算精度无法达到最优的程度,大大限制了运算系统的浮点数运算性能。
发明内容
本发明的实施例提供一种浮点数累加电路及其实现方法,通过对运算系统的关键运算路径的时序进行优化,解决了现有技术中运算系统的浮点数运算性能不高的问题,提升了运算系统的运算性能。
本发明实施例采用的技术方案为:
一种浮点数累加电路,所述电路包括:信号输入端、取反电路、指数运算电路、符号和运算电路、对阶电路、双路累加电路、加法电路、符号选择电路、规格化电路、溢出处理电路和信号输出端,其中,
所述信号输入端用于获得第一浮点数信号和第二浮点数信号;
所述取反电路用于对所述第一浮点数信号和所述第二浮点数信号进行取反操作;
所述指数运算电路用于根据所述第一浮点数信号得到第一幂指数,根据所述第二浮点数信号得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差;
所述符号和运算电路用于对所述第一浮点数信号的符号和所述第二浮点数信号的符号求和,得到符号和信号;
所述对阶电路用于根据所述第一幂指数差对所述取反电路操作后的所述第一浮点数信号移位,根据所述第二幂指数差对所述取反电路操作后的所述第二浮点数信号移位;
所述双路累加电路用于通过至少一级进位保留加法CSA电路将经过所述移位电路操作后的所述第一浮点数信号和所述第二浮点数信号以及符号和信号压缩为第三浮点数信号和第四浮点数信号;
所述加法电路用于对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号和第二和信号,并对加法运算的结果求前导,得到第一前导信号和第二前导信号;
所述符号选择电路用于选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号,并且选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号;
所述规格化电路用于根据所述符号选择电路选择的所述第二正值信号和所述指数运算电路得到的所述较大幂指数对所述符号选择电路选择的所述第一正值信号进行规格化;
所述溢出处理电路用于对规格化后的累加结果进行溢出处理;
所述信号输出端用于输出经过所述溢出处理电路处理后的累加结果。
一种浮点数累加电路实现方法,包括:
通过信号输入端获得第一浮点数信号和第二浮点数信号;
对所述第一浮点数信号和所述第二浮点数信号进行取反操作;
根据所述第一浮点数信号得到第一幂指数,根据所述第二浮点数信号得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差;
对所述第一浮点数信号的符号和所述第二浮点数信号的符号求和,得到符号和信号;
根据所述第一幂指数差对所述取反电路操作后的所述第一浮点数信号移位,根据所述第二幂指数差对所述取反电路操作后的所述第二浮点数信号移位;
通过至少一级进位保留加法CSA电路将经过所述移位电路操作后的所述第一浮点数信号和所述第二浮点数信号以及符号和信号压缩为第三浮点数信号和第四浮点数信号;
对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号和第二和信号,并对加法运算的结果求前导,得到第一前导信号和第二前导信号;
选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号,并且选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号;
根据所述第二正值信号和所述较大幂指数对所述第一正值信号进行规格化;
对规格化后的累加结果进行溢出处理;
通过信号输出端输出经过所述溢出处理电路处理后的累加结果。
与现有技术相比,本发明实施例通过对参与累加的浮点数信号的尾数按照符号进行取反,代替原有的对浮点数信号进行取负的步骤,缩短了计算路径的时延,提高了运算速度,并且将对阶移位之后的浮点数信号均通过CSA电路,使得所有参与累加的浮点数信号的计算路径一致,从而使每个参与累加的浮点数信号的计算分支的时延达到一致,对计算路径上的时延进行了优化,总体上整个电路减少了一级异或操作和一级加法操作,提高了计算效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例一提供的浮点数累加电路结构示意图;
图2为本发明实施例二提供的浮点数累加电路结构示意图;
图3为本发明实施例三提供浮点数累加电路实现方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
需要说明的是,本发明中涉及的输入信号为复数,包括实数。一般应用于数据信号处理领域,比如图像处理系统,雷达系统和通讯系统。通过提升计算速度,提升复数累加/乘累加运算的效率,此电路和方法可以极大提升DSP(DigitalSignal Processing,数字信号处理)或其它数字设备的性能。比如应用于LTE(LongTerm Evolution,长期演进)、UMTS(Universal Mobile Telecommunications System,通用移动通信系统)、GSM(Global System for Mobile communications,全球移动通信系统)等现行通讯系统中的。
实施例一
本实施例提供一种浮点数累加电路,如图1所示,所述电路包括:信号输入端101、取反电路102、指数运算电路103、符号和运算电路104、对阶电路105、双路累加电路106、加法电路107、符号选择电路108、规格化电路109、溢出处理电路110和信号输出端111,其中,
所述信号输入端101用于获得第一浮点数信号和第二浮点数信号;
所述取反电路102用于对所述第一浮点数信号和所述第二浮点数信号进行取反操作;
所述指数运算电路103用于根据所述第一浮点数信号得到第一幂指数,根据所述第二浮点数信号得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差;
所述符号和运算电路104用于对所述第一浮点数信号的符号和所述第二浮点数信号的符号求和,得到符号和信号;
所述对阶电路105用于根据所述第一幂指数差对所述取反电路操作后的所述第一浮点数信号移位,根据所述第二幂指数差对所述取反电路操作后的所述第二浮点数信号移位;
所述双路累加电路106用于通过至少一级CSA(Carry Save Adder,进位保留加法)电路将经过所述移位电路操作后的所述第一浮点数信号和所述第二浮点数信号以及符号和信号压缩为第三浮点数信号和第四浮点数信号;
所述加法电路107用于对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号和第二和信号,并对加法运算的结果求前导,得到第一前导信号和第二前导信号;
所述符号选择电路108用于选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号,并且选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号;
所述规格化电路109用于根据所述符号选择电路选择的所述第二正值信号和所述指数运算电路得到的所述较大幂指数对所述符号选择电路选择的所述第一正值信号进行规格化;
所述溢出处理电路110用于对规格化后的累加结果进行溢出处理;
所述信号输出端111用于输出经所述过溢出处理电路处理后的累加结果。
其中,所述第一浮点数信号为一个浮点数信号或者至少两个浮点数信号的和信号;所述第二浮点数信号为一个浮点数信号或者至少两个浮点数信号的乘积信号。
与现有技术相比,本发明实施例根据第一浮点数信号尾数的符号和第二浮点数信号尾数的符号对第一浮点数信号和第二浮点数信号进行取反操作;对取反后的浮点数信号按照幂指数差进行移位操作;将移位后的第一浮点数信号和第二浮点数信号以及符号和信号通过双路累加电路压缩为第三浮点数信号和第四浮点数信号;将第三浮点数信号和第四浮点数信号通过加法电路,获得第一和信号和第二和信号以及第一前导信号和第二前导信号,并使用符号选择电路选择出第一正值信号和第二正值信号;根据选择的所述第二正值信号和较大幂指数对所述第一正值信号进行规格化,对规格化后的累加结果进行溢出处理;通过信号输出端输出溢出处理后的输出结果。其中,通过对参与累加的浮点数信号的尾数按照符号进行取反,代替原有的对浮点数信号进行取负的步骤,缩短了计算路径的时延,提高了运算速度,并且将对阶移位之后的浮点数信号均通过CSA电路,使得所有参与累加的浮点数信号的计算路径一致,从而使每个参与累加的浮点数信号的计算分支的时延达到一致,对计算路径上的时延进行了优化,总体上整个电路减少了一级异或操作和一级加法操作,提高了计算效率。
实施例二
本实施例提供一种浮点数累加电路,从信号输入端输入浮点数信号a和浮点数信号b,信号输出端输出累加结果z,其中z=a+b,如图2所示,所述电路包括:信号输入端101、取反电路102a、取反电路102b、指数运算电路103、符号和运算电路104、对阶电路105a、对阶电路105b、双路累加电路106、加法电路107、符号选择电路108a、符号选择电路108b、规格化电路109、溢出处理电路110和信号输出端111,其中,
所述信号输入端101用于获得a和b两个浮点数信号。
其中,浮点数信号a可以为一个浮点数信号或者至少两个浮点数信号的和信号;浮点数信号b可以为一个浮点数信号或者至少两个浮点数信号的乘积信号。
所述取反电路102a用于对浮点数信号a进行取反操作。
所述取反电路102b用于对浮点数信号b进行取反操作。
例如,根据浮点数信号的尾数的符号进行取反,若浮点数信号的尾数符号为正,则该浮点数信号不变;若浮点数信号的尾数符号为负,则将该浮点数信号的尾数取反。可选的,若浮点数信号b为浮点数信号c和浮点数信号d的乘积信号,则浮点数信号a的符号可直观得出,浮点数信号b的符号需要通过符号运算得出。进一步的,若浮点数信号b为浮点数信号c和浮点数信号d的乘积信号,所述电路还包括一个乘法电路得出,所述乘法电路用于对浮点数信号c和d的尾数进行无符号乘法操作以及确定c和d乘积的符号,并将结果发送到取反电路102b;
可选的,也可以对浮点数信号c和浮点数信号d的尾数进行有符号乘法操作,如果执行有符号乘法操作,那么就不需要像无符号乘法中那样再去确定浮点数信号c和浮点数信号d乘积的符号,相对于有符号乘法,无符号乘法更加节省时间,所以这里优选进行无符号乘法。
所述指数运算电路103用于根据浮点数信号a得到第一幂指数,根据浮点数信号b得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差。
所述符号和运算电路104用于对浮点数信号a的符号和浮点数信号b的符号求和,得到符号和信号e。
所述对阶电路105a用于根据所述第一幂指数差对所述取反电路操作后的所述浮点数信号a移位。
所述对阶电路105b用于根据所述第二幂指数差对所述取反电路操作后的所述浮点数信号b移位。例如,将浮点数信号a和浮点数信号b中幂指数较小的浮点数信号的尾数向右移位,移位的位数与相应的幂指数差一致。
所述双路累加电路106用于通过至少一级CSA(Carry Save Adder,进位保留加法)电路将经过所述移位电路操作后的所述浮点数信号a和所述浮点数信号b以及符号和信号e压缩为第三浮点数信号C和第四浮点数信号S。
所述加法电路107用于对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号Z0和第二和信号Z1,并对加法运算的结果求前导,得到第一前导信号N0和第二前导信号N1。例如,第一和信号对应加法正分支的结果,为Z0=C+S+1,第二和信号对应加法负分支的结果,为Z1=~C+~S+1,~表示位取反操作,即对于所有比特1,将其反转为0,对于所有比特0,将其反转为1;第一前导信号对应前导正分支的结果,第二前导信号对应前导负分支的结果。其中,在进行浮点数的加法运算时,浮点数加法运算结果的尾数是有范围限制的,例如1≤尾数<2,所以当出现尾数超过规定的数值范围时,就需要通过前导信号中的前导0的个数来指示尾数进行合理的移位操作,使得尾数处于合法的范围内。
所述符号选择电路108a用于选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号。
所述符号选择电路108b用于选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号。
所述规格化电路109用于根据所述符号选择电路选择的所述第二正值信号和所述指数运算电路得到的所述较大幂指数对所述符号选择电路选择的所述第一正值信号进行规格化。其中规格化包括:将累加得出的第一正值信号的尾数按照第二正值信号,进行左移或右移操作,同时利用指数运算电路103得到的较大幂指数对第一正值信号的指数做加减操作。
所述溢出处理电路110用于对规格化后的累加结果进行溢出处理。具体的,对所述规格化电路109输出的幂指数进行判断,若该幂指数大于等于规定的幂指数上限,则将输出饱和作为上溢出值;若该幂指数小于规定的幂指数下限,则将输出饱和作为下溢出值,其中符号不变。
所述信号输出端111用于输出经过所述溢出处理电路处理后的累加结果。
需要说明的是,浮点数信号a在进行对阶移位时,采用向0取整的方式;若浮点数信号b为浮点数信号c和浮点数信号d的乘积信号,浮点数信号c和浮点数信号d在进行无符号乘法时,采用向0取整的方式得到乘积。
与现有技术相比,本发明实施例根据第一浮点数信号尾数的符号和第二浮点数信号尾数的符号对第一浮点数信号和第二浮点数信号进行取反操作;对取反后的浮点数信号按照幂指数差进行移位操作;将移位后的第一浮点数信号和第二浮点数信号以及符号和信号通过双路累加电路压缩为第三浮点数信号和第四浮点数信号;将第三浮点数信号和第四浮点数信号通过加法电路,获得第一和信号和第二和信号以及第一前导信号和第二前导信号,并使用符号选择电路选择出第一正值信号和第二正值信号;根据选择的所述第二正值信号和较大幂指数对所述第一正值信号进行规格化,对规格化后的累加结果进行溢出处理;通过信号输出端输出溢出处理后的输出结果。其中,通过对参与累加的浮点数信号的尾数按照符号进行取反,代替原有的对浮点数信号进行取负的步骤,缩短了计算路径的时延,提高了运算速度,并且将对阶移位之后的浮点数信号均通过CSA电路,使得所有参与累加的浮点数信号的计算路径一致,从而使每个参与累加的浮点数信号的计算分支的时延达到一致,对计算路径上的时延进行了优化,总体上整个电路减少了一级异或操作和一级加法操作,提高了计算效率。
实施例三
本实施例提供一种浮点数累加电路实现方法,如图3所示,所述方法包括:
301、通过信号输入端获得第一浮点数信号和第二浮点数信号。
例如,获得的浮点数信号可以为浮点数信号a和浮点数信号b两个,输出的累加结果为Z,运算过程可以为:Z=a+b,其中b可以为多个浮点数信号的乘积信号,例如b=c×d,a可以为多个浮点数信号的和信号,将这种加法形式推广到一般的浮点数运算中:
其中ai、cj和dj均为浮点数信号,bj=cj×dj,i=0,1,…,n-1,j=0,1,…,m-1,只要从ai和bj中任意一组或两组中取两个及两个以上的浮点数信号组合即可,即n≥0,m≥0,n+m≥2。
302、对所述第一浮点数信号和所述第二浮点数信号进行取反操作。
例如,所述取反操作包括:对的浮点数信号的尾数按照符号进行取反,若浮点数信号的尾数符号为正,则该浮点数信号不变;若浮点数信号的尾数符号为负,则将该浮点数信号的尾数取反。进一步的,在对cj×dj的尾数取反之前,对cj和dj的尾数进行无符号乘法得到bj=cj×dj,其中也可以对浮点数信号cj和浮点数信号dj的尾数进行有符号乘法操作,如果执行有符号乘法操作,那么就不需要像无符号乘法中那样再去确定浮点数信号cj和浮点数信号dj乘积的符号,相对于有符号乘法,无符号乘法更加节省时间,根据符号取反,即为正不变,为负则取反,记为ai'与bj'。
303、根据所述第一浮点数信号得到第一幂指数,根据所述第二浮点数信号得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差。
304、对所述第一浮点数信号的符号和所述第二浮点数信号的符号求和,得到符号和信号。具体的,将全部浮点数信号的符号进行累加,累加和减去1的差作为符号和,其中当两个浮点数信号的乘积作为累加项时,其符号和为两个浮点数信号的符号的异或结果。例如,对ai和bj的符号进行符号和运算操作,将所有ai和bj的符号做累加再减去1,记为其中∧表示位异或操作,每个符号只占一个比特,两个符号的对应的比特值相同则得到比特值0,两个符号对应的比特值不同则得到比特值1,不同的比特位分别进行计算。根据ai或ai'以及bj或bj',按照指数差的运算结果进行对阶移位,得到尾数ai″和bj″
305、根据所述第一幂指数差对所述取反电路操作后的所述第一浮点数信号移位,根据所述第二幂指数差对所述取反电路操作后的所述第二浮点数信号移位。例如,将浮点数信号a和浮点数信号b中幂指数较小的浮点数信号的尾数向右移位,移位的位数与相应的幂指数差一致。
306、通过至少一级进位保留加法CSA电路将经过所述移位电路操作后的所述第一浮点数信号和所述第二浮点数信号以及符号和信号压缩为第三浮点数信号和第四浮点数信号。例如,通过几级CSA电路将压缩为两个累加项C和S。
307、对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号和第二和信号,并对加法运算的结果求前导,得到第一前导信号和第二前导信号。例如,定义第三浮点数信号为C,定义第四浮点数信号为S,则第一和信号对应加法正分支的结果,为Z0=C+S+1,第二和信号对应加法负分支的结果,为Z1=~C+~S+1,~表示位取反操作,即对于所有比特1,将其反转为0,对于所有比特0,将其反转为1;第一前导信号对应前导正分支的结果,第二前导信号对应前导负分支的结果。其中,在进行浮点数的加法运算时,浮点数加法运算结果的尾数是有范围限制的,例如1≤尾数<2,所以当出现尾数超过规定的数值范围时,就需要通过前导信号中的前导0的个数来指示尾数进行合理的移位操作,使得尾数处于合法的范围内。
308、选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号,并且选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号。
309、根据所述第二正值信号和所述较大幂指数对所述第一正值信号进行规格化。例如,根据第二正值信号中包括的前导0个数,确定第二正值信号中尾数的移位位数,并且将较大幂指数作为尾数的幂指数。
310、对规格化后的累加结果进行溢出处理。例如,对规格化操作后输出的幂指数进行判断,若该幂指数大于等于规定的幂指数上限,则将输出饱和作为上溢出值;若该幂指数小于规定的幂指数下限,则将输出饱和作为下溢出值。
311、通过信号输出端输出经过所述溢出处理电路处理后的累加结果。
需要说明的是,规格化操作中可能包括前导预编码的补偿,以及不同模式的取整方式,本发明采用向0取整的方式。
其中,浮点数信号a和浮点数信号b可以在相同的时钟周期内输入,也可以分批在不同的时钟周期内输入;输出的计算结果的信号在浮点数信号输入后的一个或多个时钟周期后输出;所述浮点数信号和输出的计算结果的信号的精度为半精度、单精度、双精度、扩展精度或自定义位宽精度。
需要说明的是,浮点数信号a在进行对阶移位时,采用向0取整的方式;浮点数信号c和浮点数信号d在进行无符号乘法时,采用向0取整的方式得到乘积。
与现有技术相比,本发明实施例根据第一浮点数信号尾数的符号和第二浮点数信号尾数的符号对第一浮点数信号和第二浮点数信号进行取反操作;对取反后的浮点数信号按照幂指数差进行移位操作;将移位后的第一浮点数信号和第二浮点数信号以及符号和信号通过双路累加电路压缩为第三浮点数信号和第四浮点数信号;将第三浮点数信号和第四浮点数信号通过加法电路,获得第一和信号和第二和信号以及第一前导信号和第二前导信号,并使用符号选择电路选择出第一正值信号和第二正值信号;根据选择的所述第二正值信号和较大幂指数对所述第一正值信号进行规格化,对规格化后的累加结果进行溢出处理;通过信号输出端输出溢出处理后的输出结果。其中,通过对参与累加的浮点数信号的尾数按照符号进行取反,代替原有的对浮点数信号进行取负的步骤,缩短了计算路径的时延,提高了运算速度,并且将对阶移位之后的浮点数信号均通过CSA电路,使得所有参与累加的浮点数信号的计算路径一致,从而使每个参与累加的浮点数信号的计算分支的时延达到一致,对计算路径上的时延进行了优化,总体上整个电路减少了一级异或操作和一级加法操作,提高了计算效率。
本发明实施例提供的浮点数累加电路可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的浮点数累加电路及其实现方法可以适用于浮点数运算,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种浮点数累加电路,其特征在于,所述电路包括:信号输入端、取反电路、指数运算电路、符号和运算电路、对阶电路、双路累加电路、加法电路、符号选择电路、规格化电路、溢出处理电路和信号输出端,其中,
所述信号输入端用于获得第一浮点数信号和第二浮点数信号;
所述取反电路用于对所述第一浮点数信号和所述第二浮点数信号进行取反操作;
所述指数运算电路用于根据所述第一浮点数信号得到第一幂指数,根据所述第二浮点数信号得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差;
所述符号和运算电路用于对所述第一浮点数信号的符号和所述第二浮点数信号的符号求和,得到符号和信号;
所述对阶电路用于根据所述第一幂指数差对所述取反电路操作后的所述第一浮点数信号移位,根据所述第二幂指数差对所述取反电路操作后的所述第二浮点数信号移位;
所述双路累加电路用于通过至少一级进位保留加法CSA电路将经过所述移位电路操作后的所述第一浮点数信号和所述第二浮点数信号以及符号和信号压缩为第三浮点数信号和第四浮点数信号;
所述加法电路用于对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号和第二和信号,并对加法运算的结果求前导,得到第一前导信号和第二前导信号;
所述符号选择电路用于选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号,并且选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号;
所述规格化电路用于根据所述符号选择电路选择的所述第二正值信号和所述指数运算电路得到的所述较大幂指数对所述符号选择电路选择的所述第一正值信号进行规格化;
所述溢出处理电路用于对规格化后的累加结果进行溢出处理;
所述信号输出端用于输出经过所述溢出处理电路处理后的累加结果。
2.根据权利要求1所述的电路,其特征在于,所述第一浮点数信号为一个浮点数信号或者至少两个浮点数信号的和信号。
3.根据权利要求1所述的电路,其特征在于,所述第二浮点数信号为一个浮点数信号或者至少两个浮点数信号的乘积信号。
4.一种浮点数累加电路实现方法,其特征在于,包括:
通过信号输入端获得第一浮点数信号和第二浮点数信号;
对所述第一浮点数信号和所述第二浮点数信号进行取反操作;
根据所述第一浮点数信号得到第一幂指数,根据所述第二浮点数信号得到第二幂指数,由所述第一幂指数和所述第二幂指数的较大值得到较大幂指数,由所述较大幂指数和所述第一幂指数的差得到第一幂指数差,由所述较大幂指数和所述第二幂指数的差得到第二幂指数差;
对所述第一浮点数信号的符号和所述第二浮点数信号的符号求和,得到符号和信号;
根据所述第一幂指数差对所述取反电路操作后的所述第一浮点数信号移位,根据所述第二幂指数差对所述取反电路操作后的所述第二浮点数信号移位;
通过至少一级进位保留加法CSA电路将经过所述移位电路操作后的所述第一浮点数信号和所述第二浮点数信号以及符号和信号压缩为第三浮点数信号和第四浮点数信号;
对所述双路累加电路操作后得到的所述第三浮点数信号和所述第四浮点数信号进行加法运算得到第一和信号和第二和信号,并对加法运算的结果求前导,得到第一前导信号和第二前导信号;
选取所述第一和信号和所述第二和信号中的正值信号作为第一正值信号,并且选取所述第一前导信号和所述第二前导信号中的正值信号作为第二正值信号;
根据所述第二正值信号和所述较大幂指数对所述第一正值信号进行规格化;
对规格化后的累加结果进行溢出处理;
通过信号输出端输出经过所述溢出处理电路处理后的累加结果。
5.根据权利要求4所述的方法,其特征在于,所述第一浮点数信号为一个浮点数信号或者至少两个浮点数信号的和信号。
6.根据权利要求4所述的方法,其特征在于,所述第二浮点数信号为一个浮点数信号或者至少两个浮点数信号的乘积信号。
7.根据权利要求4所述的方法,其特征在于,所述对所述第一浮点数信号和所述第二浮点数信号进行取反操作包括:
根据所述第一浮点数信号的尾数和所述第二浮点数信号的尾数的符号进行判断,若符号为正,则对应的浮点数信号不变;若符号为负,则将对应的浮点数信号的尾数取反。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述第一浮点数信号和第二浮点数信号在相同的时钟周期内输入,或者分批在不同的时钟周期内输入。
9.根据权利要求4-8任一项所述的方法,其特征在于,所述从所述信号输入端输入的浮点数信号和从所述信号输出端输出的浮点数信号的精度为半精度、单精度、双精度、扩展精度或自定义位宽精度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223376.XA CN102799411B (zh) | 2012-06-29 | 2012-06-29 | 浮点数累加电路及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223376.XA CN102799411B (zh) | 2012-06-29 | 2012-06-29 | 浮点数累加电路及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799411A true CN102799411A (zh) | 2012-11-28 |
CN102799411B CN102799411B (zh) | 2015-09-09 |
Family
ID=47198528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210223376.XA Expired - Fee Related CN102799411B (zh) | 2012-06-29 | 2012-06-29 | 浮点数累加电路及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102799411B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866281A (zh) * | 2014-02-21 | 2015-08-26 | 北京国睿中数科技股份有限公司 | 实现浮点数符号分析替换的装置及方法 |
CN104991757A (zh) * | 2015-06-26 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种浮点处理方法及浮点处理器 |
CN105094744A (zh) * | 2015-07-28 | 2015-11-25 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105278923A (zh) * | 2015-10-22 | 2016-01-27 | 合肥工业大学 | 一种基于aic信息准则的信号源个数估计硬件电路及其实现方法 |
CN112204517A (zh) * | 2018-08-27 | 2021-01-08 | 谷歌有限责任公司 | 多输入浮点加法器 |
CN112230882A (zh) * | 2020-10-28 | 2021-01-15 | 海光信息技术股份有限公司 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
CN112463112A (zh) * | 2020-11-19 | 2021-03-09 | 上海壁仞智能科技有限公司 | 点积累加方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154227A1 (en) * | 2002-02-08 | 2003-08-14 | Intel Corporation | Multi-threaded multiply accumulator |
CN101042638A (zh) * | 2006-03-23 | 2007-09-26 | 富士通株式会社 | 浮点数求和的处理方法及计算机系统 |
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN101216753A (zh) * | 2008-01-04 | 2008-07-09 | 清华大学 | 一种用于浮点除法和平方根运算的预处理电路结构 |
CN101685383A (zh) * | 2008-09-28 | 2010-03-31 | 杨高祥 | 计算器、基于直接对阶的自由精度浮点数的运算电路 |
-
2012
- 2012-06-29 CN CN201210223376.XA patent/CN102799411B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154227A1 (en) * | 2002-02-08 | 2003-08-14 | Intel Corporation | Multi-threaded multiply accumulator |
CN101042638A (zh) * | 2006-03-23 | 2007-09-26 | 富士通株式会社 | 浮点数求和的处理方法及计算机系统 |
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN101216753A (zh) * | 2008-01-04 | 2008-07-09 | 清华大学 | 一种用于浮点除法和平方根运算的预处理电路结构 |
CN101685383A (zh) * | 2008-09-28 | 2010-03-31 | 杨高祥 | 计算器、基于直接对阶的自由精度浮点数的运算电路 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866281A (zh) * | 2014-02-21 | 2015-08-26 | 北京国睿中数科技股份有限公司 | 实现浮点数符号分析替换的装置及方法 |
CN104991757A (zh) * | 2015-06-26 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种浮点处理方法及浮点处理器 |
CN105094744A (zh) * | 2015-07-28 | 2015-11-25 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
WO2017016233A1 (zh) * | 2015-07-28 | 2017-02-02 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105094744B (zh) * | 2015-07-28 | 2018-01-16 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105278923A (zh) * | 2015-10-22 | 2016-01-27 | 合肥工业大学 | 一种基于aic信息准则的信号源个数估计硬件电路及其实现方法 |
CN105278923B (zh) * | 2015-10-22 | 2017-10-03 | 合肥工业大学 | 一种基于aic信息准则的信号源个数估计硬件电路及其实现方法 |
CN112204517A (zh) * | 2018-08-27 | 2021-01-08 | 谷歌有限责任公司 | 多输入浮点加法器 |
CN112230882A (zh) * | 2020-10-28 | 2021-01-15 | 海光信息技术股份有限公司 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
CN112463112A (zh) * | 2020-11-19 | 2021-03-09 | 上海壁仞智能科技有限公司 | 点积累加方法及装置 |
CN112463112B (zh) * | 2020-11-19 | 2022-08-16 | 上海壁仞智能科技有限公司 | 点积累加方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102799411B (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799411A (zh) | 浮点数累加电路及其实现方法 | |
CN111522528B (zh) | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
CN111310890B (zh) | 深度学习模型的优化方法、装置及终端设备 | |
US20190325301A1 (en) | Deep learning accelerator architecture with chunking gemm | |
CN103348300A (zh) | 计算函数的函数值的装置和方法 | |
CN106708468B (zh) | 一种除法运算装置 | |
CN100583024C (zh) | 一种用于浮点除法和平方根运算的预处理电路结构 | |
CN102789376A (zh) | 浮点数加法电路及其实现方法 | |
CN103809931A (zh) | 一种专用高速浮点指数运算器的设计 | |
CN111047037B (zh) | 数据处理方法、装置、设备及存储介质 | |
EP4072087A1 (en) | Data processing apparatus and method, base station, and storage medium | |
EP4250090A1 (en) | Method for processing floating point number and related device | |
CN104679721A (zh) | 一种fft处理器的运算方法 | |
CN108197074B (zh) | 快速傅里叶变换fft数据处理方法及装置 | |
CN103365826B (zh) | 一种小面积的基-3fft蝶形单元 | |
CN107301017B (zh) | 一种数据存储方法及装置 | |
CN109992242B (zh) | 基于乘法器的运算方法及装置 | |
CN110489077B (zh) | 一种神经网络加速器的浮点乘法运算电路和方法 | |
CN109460533B (zh) | 一种提高gemm计算性能的方法及装置 | |
CN205281474U (zh) | 一种可配置的两级流水线六操作数快速加法器 | |
CN110069240A (zh) | 定点与浮点数据计算方法及装置 | |
US20140136582A1 (en) | Method and apparatus for digital automatic gain control | |
US20140253214A1 (en) | Multiplier circuit | |
CN113703717B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150909 Termination date: 20200629 |