CN117170622A - 累加器及用于累加器的方法和芯片电路及计算设备 - Google Patents
累加器及用于累加器的方法和芯片电路及计算设备 Download PDFInfo
- Publication number
- CN117170622A CN117170622A CN202311452209.7A CN202311452209A CN117170622A CN 117170622 A CN117170622 A CN 117170622A CN 202311452209 A CN202311452209 A CN 202311452209A CN 117170622 A CN117170622 A CN 117170622A
- Authority
- CN
- China
- Prior art keywords
- accumulation
- truncated
- result
- data
- error
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000009825 accumulation Methods 0.000 claims abstract description 139
- 238000004364 calculation method Methods 0.000 claims abstract description 69
- 238000012937 correction Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007792 addition Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Complex Calculations (AREA)
Abstract
本申请提供一种累加器及用于累加器的方法和芯片电路及计算设备。该累加器包括累加执行模块、差值矫正模块及第一寄存器,其中:所述累加执行模块用于对浮点类型的输入数据进行累加运算,每次运算中被截位的数据保留为截位误差,并将所述截位误差反馈至所述差值矫正模块;所述差值矫正模块利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据到所述累加执行模块;所述第一寄存器用于缓存所述累加执行模块的累加结果,所述累加结果通过反馈通道回送至所述累加执行模块。根据本申请的技术方案能够实现在提高浮点数累加精度的同时提高计算效率。
Description
技术领域
本发明涉及芯片电路技术领域,具体涉及一种累加器及用于累加器的方法及计算设备。
背景技术
浮点数由符号位、指数和尾数组成。当两个浮点数进行加法运算时,如果两个数据的指数不相同,那么在运算过程中,就存在数据移位丢弃带来的计算精度误差。这种误差在浮点数加法运算中不可避免。特别地,如果两个浮点数数值相差很大时,就会出现数据加不上的现象,即计算结果等于两个加数中较大的那一个。这种现象在单次的浮点加法运算中,计算误差是可以接受的,但如果在累加器中,这种计算误差就会不断的累积,从而导致最终结果与真实值偏差很大。
为了规避浮点加法误差在累加运算中的不断累积的问题,通常的将数据转换成更高精度的数据格式,然后再进行累加计算。将数据转换成更高精度的数据格式就是将累加器的数据位宽拓宽一倍以上,例如,加数数据格式为FP32,那么将其转换成FP64再进行累加计算时,FP32数据为32比特,转换成64比特,计算资源和功耗都相应的成倍地增加,当所需要累加的数据过多,就会消耗更多的资源,造成资源浪费;或者是在数据计算前先按照数值大小排列,然后再从小数逐个向大数据累加,同样的当数据量比较多时,数据排列就消耗了大量的时间,甚至在有些连续性时间序列的应用场景中,无法对所有数据进行排列。或者对数据进行分段累加;又或者通过编辑语言或算法实现累加,通过编程语言或算法是一种比较常见处理方法,而且便于CPU进行计算。但是使用CPU计算时,需要执行多次加法,那么将耗费几倍的计算时间。
为此,需要一种技术方案,能够在提高浮点数累加精度的同时提高计算效率。
发明内容
本申请旨在提供用于一种累加器及用于累加器的方法及计算设备,能够利用简单的芯片电路实现浮点数累加,能够在提高运算速度的同时提高浮点数的累加精度。
根据本申请的其中一方面,提供一种累加器,用于浮点数累加,包括累加执行模块、差值矫正模块及第一寄存器,其中:
所述累加执行模块用于对浮点类型输入数据进行累加运算,每次运算中被截位的数据保留为截位误差,并将所述截位误差反馈至所述差值矫正模块;
所述差值矫正模块利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据到所述累加执行模块;
所述第一寄存器用于缓存所述累加执行模块的累加结果,所述累加结果通过反馈通道回送至所述累加执行模块。
根据一些实施例,所述的累加器,还包括:
第二寄存器,用于缓存所述截位误差,并将所述截位误差提供至所述差值矫正模块。
根据一些实施例,所述的累加器,还包括:
第三寄存器,用于缓存所述叠加后的输入数据,并将所述叠加后的输入数据提供至所述累加执行模块。
根据一些实施例,所述累加执行模块包括:
加法器,用于对所述累加结果和所述叠加后的输入数据执行加法操作;
截位误差寄存器,用于保存所述截位误差计算结果。
根据一些实施例,所述累加执行模块配置为:
对所述累加结果和所述叠加后的输入数据进行对阶;
保存对阶过程中截去的尾数作为所述截位误差;
将截位后的浮点数据进行对阶相加,计算结果作为所述累加结果缓存到所述第一寄存器。
根据一些实施例,所述累加执行模块配置为:
若累加结果超出所述对阶位数,则对所述累加结果进行格式化截位,即在累加结果数据中截取相应对阶位数的高位数据作为累加结果,存储到第一寄存器中;
将格式化截位后截去的低位与对阶截位截去的尾数拼接,将拼接得到的结果数据作为截位误差存储到第二寄存器中。
根据本申请还提供一种用于累加器的方法,所述方法包括:
计算浮点数据的累加结果并获取截位误差计算结果;
将所述截位误差反馈至输入端;
利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据用于累加计算。
根据一些实施例,计算浮点数据的累加结果并获取截位误差计算结果,包括:
在累加过程中,对所述累加结果和所述叠加后的输入数据进行对阶相加,计算结果作为所述累加结果,对阶截去的尾数作为所述截位误差;
若累加结果存在进位,则对数据进行格式化截位,将格式化截位后截去的低位与对阶截位截去的尾数拼接作为所述截位误差;
在且仅在累加结束后,将所述累加结果按照用户要求进行舍入操作。
本申请还提供一种芯片电路,能够实现上述累加器的全部功能。
根据本申请的另一方面,提供一种计算设备,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的实施例,通过利用差值矫正模块对输入数据进行截位误差叠加计算,再通过累加执行模块中的加法器对叠加计算后的输入数据进行累加计算,同时在累加执行模块的内部应用截位误差寄存器保存截位误差,通过新的截位误差值,对下一输入数据进行叠加,这样的循环方式,提高了累加计算精度,在所述累加执行模块内部,应用数据截位及拼接的简单电路代替传统四舍五入电路单元,使计算电路简便化,运算速度更快,在累加结束后,对输出的累加结果数据进行舍入操作,输出满足用户需求的累加数据,更加人性化。
根据本申请的实施例,通过对浮点数进行加法运算,应用截位误差寄存去对截位尾数进行运算得到截位误差,再通过所述截位误差对下一输入数据进行叠加计算,避免了传统对阶加法中的四舍五入造成的误差以及随着累加数据增多造成的误差累积,大大提高了浮点数的累加精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据示例实施例的累加器的设备图。
图2示出根据另一示例实施例的累加器设备图。
图3A示出根据示例实施例的累加原理示意图。
图3B示出根据另一示例实施例的累加原理示意图。
图4示出根据示例实施例用于累加器的方法流程图。
图5示出根据示例性实施例的计算设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
当两个浮点数进行加法运算时,如果两个数据的指数不相同,那么在运算过程中,就存在数据移位丢弃截位尾数带来的计算精度误差。这种误差在浮点数加法运算中不可避免。特别地,如果两个浮点数数值相差很大时,就会出现数据加不上的现象,即计算结果等于两个加数中较大的那一个。这种现象在单次的浮点加法运算中,计算误差是可以接受的,但如果在累加器中,这种计算误差就会不断的累积,从而导致最终结果与真实值偏差很大。
为了规避浮点加法误差在累加运算中的不断累积的问题,通常的将数据转换成更高精度的数据格式,然后再进行累加计算。将数据转换成更高精度的数据格式就是将累加器的数据位宽拓宽一倍以上,就会消耗更多的资源,造成资源浪费;或者是在数据计算前先按照数值大小排列,然后再从小数逐个向大数据累加,同样的当数据量比较多时,数据排列就消耗了大量的时间,甚至在有些连续性时间序列的应用场景中,无法对所有数据进行排列。或者对数据进行分段累加;又或者通过编辑语言或算法实现累加,通过编程语言或算法是一种比较常见处理方法,而且便于CPU进行计算。但是使用CPU计算时,需要执行多次加法,那么将耗费几倍的计算时间。
为此,本申请提出一种累加器及用于累加器的方法及计算设备,能够在提高浮点数累加精度的同时提高计算效率。
根据实施例,通过对所述输入数据进行截位误差叠加计算,再对叠加后的输入数据进行累加计算,同时计算截位误差,通过新的截位误差值,对下一输入数据进行叠加计算,这样的循环方式,提高了累加计算精度,在所述累加执行模块内部,应用数据截位及拼接的简单电路代替传统四舍五入电路单元,使计算电路简便化,运算速度更快。
下面结合附图对本申请的示例实施例进行说明。
图1示出根据示例实施例的累加器的设备图。
参见图1,根据示例实施例的累加器包括累加执行模块13、差值矫正模块11及第一寄存器15。该累加器可用于浮点数累加。
如图1所示,根据示例实施例的累加执行模块13用于对所述叠加后输入数据进行累加运算,每次运算中被截位的数据保留为所述截位误差,并将所述截位误差反馈至所述差值矫正模块11。
根据一些实施例,所述累加执行模块13 收到来自所述差值矫正模块11的数据,计算浮点数据的累加结果及截位误差,例如,初始的累加结果是0,第一次收到输入数据后,累加结果为当前第一次收到的输入数据,截位误差为0。将所述误差计算结反馈到所述差值矫正模块11中,用于下一输入数据的矫正。
所述差值矫正模块11利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据到所述累加执行模块13。
根据一些实施例,所述差值矫正模块接收来自外部的输入数据,利用反馈的所述截位误差对外部输入数据进行叠加计算,应用所述差值矫正模块11中的加法器,将输入数据与误差值相加(减),输出叠加后的输入数据到所述累加执行模块13中,进行累加操作。
所述第一寄存器15用于缓存所述累加执行模块13的累加结果,所述累加结果通过反馈通道回送至所述累加执行模块13。
根据一些实施例,所述第一寄存器15用于缓存所述累加执行模块13的累加结果。所述累加结果通过反馈通道回送至所述累加执行模块13中,作为下一次加法计算的加数。
根据一些实施例,下一输入数据输入所述累加器后,进入所述差值矫正模块11进行截位误差叠加,叠加后的输入数据输入所述累加执行模块13后,所述累加执行模块13进行累加计算及截位误差计算,将所述累加计算结果存储到第一寄存器15 ,用于后续反馈至所述累加执行模块13中更新累加结果,将所述截位误差计算结果反馈到所述差值矫正模块11用于后续对输入数据进行叠加。
图2示出根据另一示例实施例的累加器设备图。
如图2所示,根据另一示例实施例的所述累加器还可包括:第二寄存器17,用于缓存所述截位误差计算结果,并将所述截位误差提供至所述差值矫正模块;第三寄存器19,用于缓存所述叠加后的输入数据,并将所述叠加后的输入数据提供至所述累加执行模块。
根据一些实施例,所述第二寄存器17用于缓存所述误差计算结果,并将所述误差计算结果提供至所述差值矫正模块;所述第三寄存器19用于缓存所述叠加后的输入数据,并将所述叠加后的输入数据提供至所述累加执行模块。在计算机硬件中,寄存器是非常重要的组成部分,它们可以用来存储和传递数据以及缓存数据。如果没有寄存器,所述累加执行模块输出的误差值就会直接反馈至所述差值矫正模块,时序不好收敛时(不容易满足要求时序时),这可能会导致计算结果的不准确,所以需要添加第二寄存器17和第三寄存器19让电路时序更容易收敛。寄存器缓存的速度比内存要快得多,因此它可以提高CPU访问数据的速度,从而提高计算机的性能,提高累加速度。
根据一些实施例,在实际应用场景下,如果需要累加的数据位宽比较小,电路本身时序就很容易收敛,那么就可选择不添加所述第二寄存器17和第三寄存器19以对电路进行进一步简化。
根据一些实施例,所述输入数据经所述差值矫正模块11进行误差叠加后,所述叠加后的输入数据缓存至所述第三寄存器19中,在要求时序时将所述叠加后的输入数据传输到所述累加执行模块13中,进行累加计算及截位误差值计算。
根据一些实施例,所述累加执行模块13输出所述截位误差缓存到所述第二寄存器17中,再将所述第二寄存器17中的截位误差在要求时序时输入所述差值矫正器,所述差值矫正模块11利用所述误差值对下一输入数据进行叠加。
图3A示出根据示例实施例的累加原理示意图。
参见图3A,根据示例实施例的所述累加执行模块包括:加法器,用于对所述累加结果和所述叠加后的输入数据执行加法操作;截位误差寄存器,用于保存所述截位误差计算结果。
根据一些实施例,所述加法器用于对所述叠加后的输入数据与所述第一寄存器中返回的累加结果执行加法操作,将尾数截取到所述截位误差寄存器中,作为所述截位误差的计算结果。再将所述截位误差值返回到所述差值矫正模块中,用于对输入数据进行叠加,避免了浮点数对阶移位过程中,丢弃末尾数据所导致的结果精度降低的问题。
根据一些实施例,所述截位误差寄存器用于保存截位误差,将对阶后截去的尾数输入到所述截位误差寄存器中,若在累加过程中,所述累加结果存在溢位,则对累加结果进行格式化截位,截去低阶尾数。将数据格式化截位误差和对阶截位误差相加作为所述截位误差缓存至所述第二寄存器中,由所述第二寄存器返回所述截位误差到所述差值矫正模块中。
这样,在每一次累加对数据规格化的过程中,没有进行四舍五入操作,从而避免了由于多次累加过程中的四舍五入操作导致累加结果精度降低。
根据示例实施例的所述累加执行模块配置为:对所述累加结果和所述叠加后的输入数据进行对阶;保存对阶过程中截去的尾数作为所述截位误差;将截位后的浮点数据进行对阶相加,计算结果作为所述累加结果缓存到所述第一寄存器。
根据一些实施例,浮点数据对阶是指将两个浮点数调整为相同的阶码,以便进行加减运算。当参与运算的两个浮点数的阶码不同的时候,就需要对其进行对阶操作。在浮点加减运算中,为了在进行加减运算时避免精度损失,通过数据对阶将两个浮点数的小数位数调整为相同的位数。例如,对两个浮点数 3.14 和 2.718 进行加法运算,如果不进行对阶操作,那么计算结果可能会出现精度损失,导致结果不准确。因此,在进行浮点加减运算之前,通常需要先进行对阶操作,以确保计算结果的准确性。
根据一些实施例,数据对阶的具体实现方式通常是通过比较两个浮点数的阶码差来决定如何对阶。如果两个浮点数的阶码差不超过一个单位,那么就不需要进行对阶操作;如果阶码差超过一个单位,那么就需要将较小阶码的浮点数的尾数左移或右移,以使其阶码与较大阶码的浮点数相同。
根据一些实施例,将浮点数据的无对阶尾数进行截位处理,所述截位处理可通过简单的逻辑电路实现,这样不仅提高了运算速度,又简化了硬件电路。
根据一些示例实施例,参见图3A,a、b分别为所述累加结果和/或所述叠加后的输入数据,a、b两个数据的尾数位宽都为8位,对a、b两数据进行数据对阶,经过数据对阶后,数据b的低4位不参与计算,将数据b的低4位截取到所述截位误差器中保存。对截位后的数据执行累加,得到累加结果。如图3A,累加计算结果c为保留8位尾数的浮点数据。此时,累加计算结果就是加法器输出的累加结果,最终的误差等于图中所示的截位误差。
图3B示出根据另一示例实施例的累加原理示意图。
如图3B所示,根据另一示例实施例的所述累加执行模块配置为:若累加结果超出所述对阶位数,则对所述累加结果进行格式化截位,即在累加结果数据中截取相应对阶位数的高位数据作为累加结果,存储到第一寄存器中;将格式化截位后截去的低位与对阶截位截去的尾数拼接,将拼接得到的结果数据作为截位误差存储到第二寄存器中。
根据一些实施例,对所述累加结果进行格式化截位即在所述累加结果存在进位,那么对所述累加结果进行格式化,只保留累加结果中对阶位数的高位,将低位尾数截取到截位误差器中,在所述截位误差器中,与之前对阶截位截取的截位误差相加,作为所述截位误差。参见图3B,A、B两个数据的尾数位宽都为8位,对A、B两数据进行数据对阶,经过数据对阶后,数据B的低4位不参与计算,将数据B的低4位截取到所述截位误差器中保存。对截位后的数据执行累加,得到累加结果。在对累加结果C格式化的时候,只保留最高8位数据,将低位尾数“3”截取到截位误差器中,计算出本次累加的截位误差,并带入下一次的计算中。最终的计算结果就是加法器输出的高8位,输出的所述截位误差就是对阶截位误差和数据格式化截位误差之和。
图4示出根据示例实施例用于累加器的方法流程图。
参见图4,在S401,计算浮点数据的累加结果并获取截位误差计算结果。
根据一些实施例,在所述加法器中,计算浮点数据的累加结果,将截位误差输入所述截位误差器中,进行计算,并输出计算结果缓存到所述第二寄存器中。
在S403,将所述截位误差反馈至输入端。
根据一些实施例,所述截位误差由所述截位误差器输出缓存到所述第二寄存器中,再经由所述第二寄存器反馈到所述差值矫正模块中。
在S405,利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据用于累加计算。
根据一些实施例,所述差值矫正模块利用反馈的所述截位误差对外部输入数据进行叠加计算,将所述叠加后的输入数据缓存到所述第三寄存器中,再经由所述第三寄存器传输到所述累加执行模块中,进行累加计算。
在累加过程中,对所述累加结果和所述叠加后的输入数据进行对阶相加,计算结果作为所述累加结果,对阶截去的尾数作为所述截位误差。若累加结果存在进位,则对数据进行格式化截位,将格式化截位后截去的低位与对阶截位截去的尾数拼接作为所述截位误差。
根据一些实施例,应用所述累加执行模块中的加法器计算所述叠加结果与上一次累加结果相加,使用对阶相加的方法,对所述累加执行模块中的加法器计算所述叠加结果与上一次累加结果进行对阶,截去尾数,将对阶后的数据进行累加,所述加法器输出累加结果,所截去的尾数作为截位误差,若所述累加结果出现进位,则对数据进行格式化截位,截取对阶位数相应的高位作为输出结果,低位尾数截去输入截位误差器,在截位误差器中,将对阶截位误差与数据格式化截位误差相加,作为截位误差,反馈到所述差值矫正模块中。
在且仅在累加结束后,将所述累加结果按照用户要求进行舍入操作。
根据一些实施例,所述累加执行模块中,在对每一输入数据的累积计算中,均使用对阶相加的方法,当最后一次累加完成,所述加法器将对累加结果按照用户设定的浮点数据小数位数要求进行四舍五入操作,再将符合要求的数据返回计算机中。
根据一些实施例,所述累加器的实现基于一种芯片电路,所述芯片电路能够实现包括上述差值矫正模块、累加执行模块的各项功能,实现通过对输入数据进行截位误差叠加的方法对输入数据进行累加计算的功能。
根据一些实施例,所述累加器中的累加运算仅仅采用了对阶截位与拼接电路就获取到了误差值,对照现有方法大大降低了对硬件电路的要求,简化了电路复杂度,提高了累加计算效率。
根据一些实施例,所述累加器构造了一个在累加求和计算过程中,同时输出累加结果和误差值的加法器。这样避免了现行各类算法中通过多次的减法求解误差值的操作,在简化了电路设计的同时又降低了计算机资源的浪费,提高了累加运算速度。
图5示出根据示例性实施例的计算设备的框图。
如图5所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络接口16以及I/O接口18。处理器12、存储器14、网络接口16以及I/O接口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算设备30还可包括为处理器12进行加速的高性能显示适配器(GPU)20。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本申请实施例的方法。
计算设备30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以是无线网络接口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种累加器,用于浮点数累加,其特征在于,所述累加器包括累加执行模块、差值矫正模块及第一寄存器,其中:
所述累加执行模块用于对浮点类型的输入数据进行累加运算,每次运算中被截位的数据保留为截位误差,并将所述截位误差反馈至所述差值矫正模块;
所述差值矫正模块利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据到所述累加执行模块;
所述第一寄存器用于缓存所述累加执行模块的累加结果,所述累加结果通过反馈通道回送至所述累加执行模块。
2.根据权利要求1所述的累加器,其特征在于,还包括:第二寄存器,用于缓存所述截位误差,并将所述截位误差提供至所述差值矫正模块。
3.根据权利要求1所述的累加器,其特征在于,还包括:第三寄存器,用于缓存所述叠加后的输入数据,并将所述叠加后的输入数据提供至所述累加执行模块。
4.根据权利要求2所述的累加器,其特征在于,所述累加执行模块配置为:
对所述累加结果和所述叠加后的输入数据进行对阶;
保存对阶过程中截去的尾数作为所述截位误差;
将截位后的浮点数据进行对阶相加,结果作为所述累加结果缓存到所述第一寄存器。
5.根据权利要求4所述的累加器,其特征在于,所述累加执行模块包括:
加法器,用于对所述累加结果和所述叠加后的输入数据执行加法操作;
截位误差寄存器,用于保存所述截位误差计算结果。
6.根据权利要求5所述的累加器,其特征在于,所述累加执行模块配置为:
若累加结果超出对阶位数,则对所述累加结果进行格式化截位,截取相应对阶位数的高位数据作为累加结果,存储到所述第一寄存器中;
将格式化截位后截去的低位与对阶截位截去的尾数拼接,将拼接得到的结果数据作为截位误差存储到所述第二寄存器中。
7.一种用于累加器的方法,其特征在于,所述方法包括:
计算浮点数据的累加结果并获取截位误差;
将所述截位误差反馈至输入端;
利用反馈的所述截位误差对外部输入数据进行叠加计算,并输出叠加后的输入数据用于累加计算。
8.根据权利要求7所述的方法,其特征在于,计算浮点数据的累加结果并获取截位误差,包括:
在累加过程中,对所述累加结果和所述叠加后的输入数据进行对阶相加,将计算结果作为所述累加结果,将对阶截去的尾数作为所述截位误差;
若累加结果存在进位,则对数据进行格式化截位,将格式化截位后截去的低位与对阶截位截去的尾数拼接作为所述截位误差;
在且仅在累加结束后,将所述累加结果进行舍入操作。
9.一种芯片电路,其特征在于,包括根据权利要求1-6中任一项所述的累加器。
10.一种计算设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求7-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311452209.7A CN117170622B (zh) | 2023-11-03 | 2023-11-03 | 累加器及用于累加器的方法和芯片电路及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311452209.7A CN117170622B (zh) | 2023-11-03 | 2023-11-03 | 累加器及用于累加器的方法和芯片电路及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117170622A true CN117170622A (zh) | 2023-12-05 |
CN117170622B CN117170622B (zh) | 2024-03-01 |
Family
ID=88941732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311452209.7A Active CN117170622B (zh) | 2023-11-03 | 2023-11-03 | 累加器及用于累加器的方法和芯片电路及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117170622B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028572A1 (en) * | 2001-06-29 | 2003-02-06 | Yatin Hoskote | Fast single precision floating point accumulator using base 32 system |
CN102033732A (zh) * | 2010-12-17 | 2011-04-27 | 浙江大学 | 基于fpga的高速低延迟浮点累加器及其实现方法 |
CN103019647A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 具有浮点精度保持功能的浮点累加/累减运算方法 |
CN103178843A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种具有扫频功能的信号源及其生成方法 |
US20170115986A1 (en) * | 2015-10-24 | 2017-04-27 | Alan A. Jorgensen | Apparatus for Calculating and Retaining a Bound on Error during Floating Point Operations and Methods Thereof |
CN106951211A (zh) * | 2017-03-27 | 2017-07-14 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN106970775A (zh) * | 2017-03-27 | 2017-07-21 | 南京大学 | 一种可重构定浮点通用加法器 |
CN112488908A (zh) * | 2020-12-18 | 2021-03-12 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
CN113168308A (zh) * | 2020-04-20 | 2021-07-23 | 深圳市大疆创新科技有限公司 | 浮点累加装置、方法和计算机存储介质 |
CN113556101A (zh) * | 2021-07-27 | 2021-10-26 | 展讯通信(上海)有限公司 | Iir滤波器及其数据处理方法 |
WO2023113445A1 (ko) * | 2021-12-14 | 2023-06-22 | 서울대학교산학협력단 | 부동 소수점 연산 방법 및 장치 |
CN116957024A (zh) * | 2023-07-18 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 利用神经网络模型进行推理的方法和装置 |
-
2023
- 2023-11-03 CN CN202311452209.7A patent/CN117170622B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028572A1 (en) * | 2001-06-29 | 2003-02-06 | Yatin Hoskote | Fast single precision floating point accumulator using base 32 system |
CN102033732A (zh) * | 2010-12-17 | 2011-04-27 | 浙江大学 | 基于fpga的高速低延迟浮点累加器及其实现方法 |
CN103178843A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种具有扫频功能的信号源及其生成方法 |
CN103019647A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 具有浮点精度保持功能的浮点累加/累减运算方法 |
US20170115986A1 (en) * | 2015-10-24 | 2017-04-27 | Alan A. Jorgensen | Apparatus for Calculating and Retaining a Bound on Error during Floating Point Operations and Methods Thereof |
CN106951211A (zh) * | 2017-03-27 | 2017-07-14 | 南京大学 | 一种可重构定浮点通用乘法器 |
CN106970775A (zh) * | 2017-03-27 | 2017-07-21 | 南京大学 | 一种可重构定浮点通用加法器 |
CN113168308A (zh) * | 2020-04-20 | 2021-07-23 | 深圳市大疆创新科技有限公司 | 浮点累加装置、方法和计算机存储介质 |
CN112488908A (zh) * | 2020-12-18 | 2021-03-12 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
CN113556101A (zh) * | 2021-07-27 | 2021-10-26 | 展讯通信(上海)有限公司 | Iir滤波器及其数据处理方法 |
WO2023113445A1 (ko) * | 2021-12-14 | 2023-06-22 | 서울대학교산학협력단 | 부동 소수점 연산 방법 및 장치 |
CN116957024A (zh) * | 2023-07-18 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 利用神经网络模型进行推理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117170622B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514027B2 (en) | Paged hybrid LOBs | |
CN102460424B (zh) | 具有减小面积的乘性除法电路 | |
US10303438B2 (en) | Fused-multiply-add floating-point operations on 128 bit wide operands | |
US10877733B2 (en) | Segment divider, segment division operation method, and electronic device | |
US20140195581A1 (en) | Fixed point division circuit utilizing floating point architecture | |
CN112506935B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
EP4033440A1 (en) | Consensus method, apparatus and device of block chain | |
US9983850B2 (en) | Shared hardware integer/floating point divider and square root logic unit and associated methods | |
CN112836813B (zh) | 一种用于混合精度神经网络计算的可重构脉动阵列系统 | |
CN104679720A (zh) | 一种实现fft的运算方法 | |
US20220351490A1 (en) | Convolution calculation method, convolution calculation apparatus, and terminal device | |
CN104679719A (zh) | 一种基于fpga的浮点运算方法 | |
US20220334798A1 (en) | Floating-point number multiplication computation method and apparatus, and arithmetic logic unit | |
US10216481B2 (en) | Digit recurrence division with scaling and digit selection using intermediate value | |
CN117170622B (zh) | 累加器及用于累加器的方法和芯片电路及计算设备 | |
CN117420982A (zh) | 包括融合乘累加器的芯片、设备及数据运算的控制方法 | |
CN111047037A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN104679721A (zh) | 一种fft处理器的运算方法 | |
CN115827555A (zh) | 数据处理方法、计算机设备、存储介质和乘法器结构 | |
RU2666303C1 (ru) | Способ и устройство для вычисления хэш-функции | |
US8639738B2 (en) | Method for carry estimation of reduced-width multipliers | |
CN110297842B (zh) | 一种数据比对方法、装置、终端和存储介质 | |
RU2559771C2 (ru) | Устройство для основного деления модулярных чисел | |
CN117667009A (zh) | 加法树计算装置和方法及计算设备 | |
CN111313905B (zh) | 一种浮点数转换方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |