CN106873940B - 一种定点加法结果位宽限制的处理方法和装置 - Google Patents

一种定点加法结果位宽限制的处理方法和装置 Download PDF

Info

Publication number
CN106873940B
CN106873940B CN201611258279.9A CN201611258279A CN106873940B CN 106873940 B CN106873940 B CN 106873940B CN 201611258279 A CN201611258279 A CN 201611258279A CN 106873940 B CN106873940 B CN 106873940B
Authority
CN
China
Prior art keywords
operation result
bit wide
adder
result
overflow
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.)
Expired - Fee Related
Application number
CN201611258279.9A
Other languages
English (en)
Other versions
CN106873940A (zh
Inventor
周沈刚
李任伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Special Integrated Circuit Design Engineering Technology Research Center
Original Assignee
Qingdao Special Integrated Circuit Design Engineering Technology Research Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Special Integrated Circuit Design Engineering Technology Research Center filed Critical Qingdao Special Integrated Circuit Design Engineering Technology Research Center
Priority to CN201611258279.9A priority Critical patent/CN106873940B/zh
Publication of CN106873940A publication Critical patent/CN106873940A/zh
Application granted granted Critical
Publication of CN106873940B publication Critical patent/CN106873940B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种定点加法结果位宽限制的处理方法和装置,基于加法器输入操作数的高位部分获得上溢预判值和下溢预判值,基于运算结果中次高位向最高位的进位,获得运算结果是否超出加法器输入位宽的溢出判断和运算结果的符号位判断;结合上溢预判值、下溢预判值、溢出判断、符号位判断和加法器运算结果判断运算结果是否上溢出或下溢出。这种采用在加法器运算结果获得之前对运算结果进行预判,并在加法器运算结果得到之后的约一级门延时后,基于预判结果和运算结果能够立刻判断出是否需要进行饱和运算的处理方法,相比于现有技术中得到运算结果后再判断是否需要对运算结果进行饱和处理的处理方式,提升了加法器限制位宽操作的处理速度。

Description

一种定点加法结果位宽限制的处理方法和装置
技术领域
本发明属于数字信号处理技术领域,具体地说,是涉及一种定点加法结果位宽限制的处理方法和装置。
背景技术
加法器作为数据处理的基本器件不仅单独使用于数据处理集成电路中,而且还作为一个基本的部件应用于乘法器等处理器的运算部件中。
大部分算法中都会用到乘法操作,特别是在信号处理算法中,先进行乘法操作然后将乘法结果与累加寄存器中的结果相加/减的乘累加操作是核心操作之一,这使得每秒可执行乘累加操作数(MAC/S)成为简单衡量一个数字信号处理器计算能力的指标之一。不仅是在数字信号处理器中,通用处理器为了中也集成了乘累加器,某些通用处理器为了加速图像处理或其他科学计算,也使用了乘累加器。
定点乘法操作的结果位宽是输入操作数位宽的两倍(假设两个输入操作数位宽相同),如果需要经过多次乘法操作,理论上运算结果的位宽将以指数形式增长。但通常处理器可处理数据的位宽是有限制的,而且一般情况下程序设计员也不需要得到如此形式的结果,所以通常情况下,需要限制乘法结果的位宽与输入数的位宽相同。
通常,累加寄存器的位宽长于乘法结果,例如32位乘累加器中乘法结果是64位,其累加寄存器位宽可能是80位。增加累加寄存器的位宽的主要目的是防止计算结果在多次累加/减的过程中溢出。在连续的累加/减操作结束并写出时,仍然需要将结果的位宽限制到正常操作数的位宽。不仅仅在累加器中,较多的加减法类操作也需要对结果进行类似的位宽限制处理。
在整数加法器的位宽限制操作中,如果加法器得出的结果已经超过了限制位宽的表示范围,则要求进行饱和,也即,只保留低位部分;或者,将不在限制位宽可表示范围内的加法器结果舍去,保留限制位宽可表示范围内的和。在某些处理器中,并不要求运算单元直接将结果饱和,只要求给出上溢出或者下溢出状态。以32位乘累加操作要求得到32位饱和结果为例:首先32位乘法操作会得到64位的乘法结果,然后至少进行64位的累加操作,在累加操作后,需要将64位的加法结果保存为32位。将64位加法结果保存为32位结果的通常流程如下:首先需要判断64位累加操作是否溢出,然后需要判断高33位是否是纯粹的符号位,如果既没有64位溢出且高33位都是符号位,则选择低32位作为结果即可,否则需要根据结果上溢出/下溢出饱和至32位最大值/最小值。
上述可见,在位宽限制操作过程中,若运算结果超过限制位宽的表示范围,需要进行饱和操作或者溢出状态报告。通常的位宽限制操作是在得到最终结果之后再判断是否需要进行饱和处理,并根据判断结果进行饱和处理后写出运算结果。如图1所示的常用加法结果处理框图,用于将乘法结果位宽限制在与乘法输入操作数的位宽相同;图示中的结果处理方式是:根据加法器高位的“规约或”“规约与”结果判断运算结果是否超出限制位宽能表示的范围,并结合整个加法器的溢出判断逻辑,最终选择写出的结果。这其中,“规约”操作若以NAND2/NOR2逻辑门衡量,位宽为N的输入需要log2N级的逻辑,如图2所示是一个典型的“规约与”门锥:位宽为N的加法器的进位链逻辑级数也是log2N(以AOI21/OAI21逻辑门衡量,与NAND2/NOR2逻辑门延迟基本相同),可见,规约操作是一个不可忽视的逻辑长度,这造成了在得到运算最终结果之后再根据结果进行饱和处理的操作方式不利于提升处理器性能的技术问题。
发明内容
本申请提供了一种定点加法结果位宽限制的处理方法和装置,能够提升加法器限制位宽操作的处理速度,从而实现提升处理器性能的技术效果。
为解决上述技术问题,本申请采用以下技术方案予以实现:
提出一种定点加法结果位宽限制的处理方法,包括:基于加法器输入操作数的高位部分,获得上溢预判值和下溢预判值;以及,基于加法器运算结果中次高位向最高位的进位,获得所述运算结果是否超出所述加法器输入位宽的溢出判断和所述运算结果的符号位判断;基于所述上溢预判值、所述下溢预判值、所述溢出判断、所述符号位判断和所述加法器运算结果,判断所述运算结果是否上溢出或下溢出;若是,将所述运算结果饱和至所述加法器限制位宽可表示范围的最大值或最小值写出;若否,将所述运算结果不经饱和处理写出。
进一步的,所述基于加法器输入操作数的高位部分,获得上溢预判值和下溢预判值,具体为:基于所述加法器输入操作数的高位部分得到传递码、产生码和零码;基于所述传递码、所述产生码和所述零码的编码获得上溢预测因子和下溢预测因子;根据所述上溢预测因子的规约或运算得到所述上溢预判值,根据所述下溢预测因子的规约或运算得到所述下溢预判值;其中,所述上溢预测因子的每一位根据所述传递码的每一位与权重低一位的零码采取同或运算得到;所述下溢预测因子的每一位根据所述传递码的每一位与权重低一位的产生码采取同或运算得到;所述传递码每一位为所述输入操作数的高位部分的相同权重位采取异或运算得到;所述产生码每一位为所述输入操作数的高位部分的相同权重位采取与运算得到;所述零码每一位为所述输入操作数的高位部分的相同权重位采取或非运算得到。
进一步的,基于加法器运算结果中次高位向最高位的进位,获得所述运算结果是否超出所述加法器输入位宽的溢出判断和所述运算结果的符号位判断,具体为:根据所述零码最高位和所述运算结果中次高位向最高位的进位采取与运算得到上溢位判断结果;根据所述产生码最高位和取反的所述运算结果中次高位向最高位的进位采取与运算得到下溢位判断结果;根据所述零码最高位和所述运算结果中次高位向最高位的进位采取或运算后,和所述产生码最高位采取与运算再取反运算确定所述符号位判断。
进一步的,判断所述运算结果是否上溢出,具体为:判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;或,判断所述运算结果是否大于所述加法器限制位宽可表示的最大值; 判断所述运算结果是否下溢出,具体为:判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;或,判断所述运算结果是否小于所述加法器限制位宽可表示的最小值。
进一步的,判断所述运算结果是否大于所述加法器输入位宽可表示的最大值,具体为:基于所述上溢位判断结果,判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;判断所述运算结果是否大于所述加法器限制位宽可表示的最大值,具体为:根据对所述上溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否大于所述加法器限制位宽可表示的最大值;判断所述运算结果是否小于所述加法器输入位宽可表示的最小值,具体为:基于所述下溢位判断结果,判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;判断所述运算结果是否小于所述加法器限制位宽可表示的最小值,具体为:根据对所述下溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否小于所述加法器限制位宽可表示的最小值。
提出一种定点加法结果位宽限制的处理装置,包括预判模块、溢出判断和符号位确定模块、溢出结果判定模块和运算结果表示模块;所述预判模块,用于基于加法器输入操作数的高位部分,获得上溢预判值和下溢预判值; 所述溢出判断和符号位确定模块,用于基于加法器运算结果中次高位向最高位的进位,获得所述运算结果是否超出所述加法器输入位宽的溢出判断和所述运算结果的符号位判断;所述溢出结果判定模块,用于基于所述上溢预判值、所述下溢预判值、所述溢出判断、所述符号位判断和所述加法器运算结果,判断所述运算结果是否上溢出或下溢出;所述运算结果表示模块,用于在所述溢出结果判定模块判断所述运算结果上溢出或下溢出时,将所述运算结果饱和至所述加法器限制位宽可表示范围的最大值或最小值写出;在所述溢出结果判定模块判断所述运算结果不存在溢出时,将所述运算结果不经饱和处理写出。
进一步的,所述预判模块具体包括传递码编码单元、产生码编码单元、零码编码单元、上溢预测因子编码单元、下溢预测因子编码单元、上溢预判规约或运算单元和下溢预判规约或运算单元;所述传递码编码单元,用于根据所述输入操作数的高位部分的相同权重位采取异或运算得到所述传递码的每一位;所述产生码编码单元,用于根据所述输入操作数的高位部分的相同权重位采取与运算得到所述产生码的每一位;所述零码编码单元,用于根据所述输入操作数的高位部分的相同权重位采取或非运算得到所述零码的每一位;所述上溢预测因子编码单元,用于根据所述传递码的每一位与权重低一位的零码采取同或运算得到所述上溢预测因子的每一位;所述下溢预测因子编码单元,用于根据所述传递码的每一位与权重低一位的产生码采取同或运算得到所述下溢预测因子的每一位;所述上溢预判规约或运算单元,用于根据所述上溢预测因子的规约或运算得到所述上溢预判值;所述下溢预判规约或运算单元,用于根据所述下溢预测因子的规约或运算得到所述下溢预判值。
进一步的,所述溢出判断和符号位确定模块具体包括上溢位判断单元、下溢位判断单元和符号位确定单元;所述上溢位判断单元,用于根据所述零码最高位和所述运算结果中次高位向最高位的进位采取与运算得到上溢位判断结果;所述下溢位判断单元,用于根据所述产生码最高位和取反的所述运算结果中次高位向最高位的进位采取与运算得到下溢位判断结果;所述符号位确定单元,用于根据所述零码最高位和所述运算结果中次高位向最高位的进位采取或运算后,和所述产生码最高位采取与运算再取反运算确定所述符号位判断。
进一步的,所述溢出结果判定模块具体包括上溢出判定单元和下溢出判定单元;所述上溢出判定单元,用于判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;或判断所述运算结果是否大于所述加法器限制位宽可表示的最大值,若是,则判断所述运算结果上溢出;所述下溢出判定单元,用于判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;或判断所述运算结果是否小于所述加法器限制位宽可表示的最小值;若是,则判断所述运算结果下溢出。
进一步的,所述上溢出判定单元包括基于输入位宽的上溢出判定子单元和基于限制位宽的上溢出判定子单元;所述基于输入位宽的上溢出判定子单元,用于基于所述上溢位判断结果,判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;所述基于限制位宽的上溢出判定子单元,用于根据对所述上溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否大于所述加法器限制位宽可表示的最大值;所述下溢出判定单元包括基于输入位宽的下溢出判定子单元和基于限制位宽的下溢出判定子单元;所述基于输入位宽的下溢出判定子单元,用于基于所述下溢位判断结果,判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;所述基于限制位宽的下溢出判定子单元,用于根据对所述下溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否小于所述加法器限制位宽可表示的最小值。
与现有技术相比,本申请的优点和积极效果是:本申请提出的定点加法结果位宽限制的处理方法和装置中,一方面,在加法器运算结束之前,获取任意时刻的一对执行加法运算的输入操作数对运算结果做出上溢预判和下溢预判,预判部分包括传递码、产生码、零码、上溢预测因子、下溢预测因子等的编码运算,以及采取规约或运算得到上溢预判值和下溢预判值等的编码运算操作,这部分运算在获得运算结果之前的加法器运算过程中同步进行;另一方面,稍早于加法器获得运算结果之前,采用运算结果的次高位向最高位的进位,获得运算结果是否超出加法器输入位宽的溢出判断和运算结果的符号位判断,这部分运算采用了运算结果的次高位向最高位的进位,在运算结果获得之前即可执行,使得溢出判断和符号位判断稍早于加法器得到运算结果得到;最后,在运算结果获得之后,利用上溢预判值、下溢预判值、溢出判断、符号位判断和部分运算结果信息,做出运算结果是否上溢出或下溢出的判断,这部分运算中虽然使用了运算结果中的部分信息,但是上溢出或下溢出的判断是在加法器结束之后的约一级逻辑时间即可完成,也即,在加法器获得运算结果之后的约一级门的时延之后就可以确定是否需要对结果进行饱和运算,与现有技术中在获得运算结果之后再采取规约操作判断是否对需要饱和处理相比,本申请提出的处理方法在运算结果获得之前采取耗时的规约运算等操作,在运算结果出来之后约一级门的延时即可获得是否需要饱和处理的判断结果,缩短了判断是否需要饱和处理的时间,提升加法器限制位宽操作的处理速度,从而实现提升处理器性能的技术效果。
结合附图阅读本申请实施方式的详细描述后,本申请的其他特点和优点将变得更加清楚。
附图说明
图1为现有技术中加法结果为宽限制的处理流程示意图;
图2为现有技术中判断加法器运算结果是否超出限制位宽表示范围而采取的规约与运算逻辑门示意图;
图3为本申请提出的定点加法结果位宽限制的处理方法的方法流程图;
图4为本申请提出的定点加法结果位宽限制的处理装置的逻辑架构图;
图5为本申请提出的预判模块的具体实施例逻辑门架构示意图;
图6为本申请提出的预判模块的具体实施例逻辑门示意图;
图7为本申请提出的定点加法结果位宽限制的处理装置的具体实施例逻辑门示意图。
具体实施方式
下面结合附图对本申请的具体实施方式作进一步详细地说明。
本申请针对整数加法器中的位宽限制操作,即将两个位宽较大的数相加/减得到的结果限制到较小的位宽,例如,如何将64位的加法结果保存为32位的结果,提出一种定点加法结果位宽限制的处理方法,使用在加法器运算结果获得之前对运算结果进行预判,并在加法器运算结果得到之后立刻进行饱和操作,缩短了加法器判断是否需要进行饱和处理的时间,如图3所示,该方法包括以下步骤:
步骤S31:基于加法器输入操作数的高位部分,获得上溢预判值和下溢预判值。
预判部分采用的是加法器输入操作数的高位部分,具体位宽由加法器的限制位宽决定,例如,若加法器的输入操作数为a[n-1:0]和b[n-1:0],其加法运算后的运算结果为s[n-1:0],而加法器的限制位宽为m,也即需要将运算结果饱和限制到m位宽r[m-1:0];则本申请中用于预判逻辑的输入操作数实际为加法器输入操作数的高位部分a[n-1:m-1]和b[n-1:m-1]。预判部分获得两个预判结果:上溢预判值pof和下溢预判值puf。
具体的,首先使用加法器输入操作数的高位部分进行编码获得传递码、产生码和零码。
传递码t[n-1:m-1]的每一位是操作数a[n-1:m-1]和b[n-1:m-1]的相同权重位采取异或运算得到;产生码g[n-1:m-1] 的每一位是操作数a[n-1:m-1]和b[n-1:m-1] 的相同权重位采取与运算得到;零码z[n-1:m-1]的每一位是操作数a[n-1:m-1]和b[n-1:m-1] 的相同权重位采取或非运算得到。
上述三个编码在常用的超前进位加法器中也会产生,因此在使用超前进位加法器的实施例中,可以直接由加法器产生上述编码后输入给预判部分使用即可。
在获得上述三种编码后,使用编码产生上溢预测因子iof和下溢预测因子iuf;上溢预测因子iof[n-1:m]的每一位是根据传递码的每一位与权重低一位的零码采取同或运算得到的;下溢预测因子iuf[n-1:m]的每一位是根据传递码的每一位与权重低一位的产生码采取同或运算得到的。
最后,将所有的上溢预测因子采取规约或运算得到上溢预判值pof,以及将所有的下溢预测因子采取规约或运算得到下溢预判值puf。
该步骤的预判部分是在加法器运算结束之前,获取任意时刻的一对执行加法运算的输入操作数对运算结果做出上溢预判和下溢预判,预判部分包括传递码、产生码、零码、上溢预测因子、下溢预测因子等的编码运算,以及采取规约或运算得到上溢预判值和下溢预判值等的编码运算操作,这部分运算在获得运算结果之前的加法器运算过程中同步进行,而不是在运算结果获得之后进行。
步骤S32:基于加法器运算结果中次高位向最高位的进位,获得运算结果是否超出加法器输入位宽的溢出判断和运算结果的符号位判断。
加法器运算结果中次高位向最高位的进位可以在运算结果获得之前得到,因此本步骤也在加法器运算结果获得之前执行,能稍早于运算结果获得完成。
具体的,根据零码最高位z[n-1]和运算结果中次高位向最高位的进位Cn-2采取与运算得到上溢位判断结果aov;根据产生码最高位g[n-1]和取反的运算结果中次高位向最高位的进位Cn-2采取与运算得到下溢位判断结果auv;根据零码最高位z[n-1]和运算结果中次高位向最高位的进位Cn-2采取或运算后,和产生码最高位g[n-1]采取与运算再取反运算确定符号位判断rs;如可用足够的位宽表示运算结果,则运算结果的最高位为符号位,符号位为高表示负,为低表示正;由于加法器本身就存在溢出的可能导致无法使用运算结果的最高位判断运算结果的正负情况,本申请实施例中,可根据产生码的最高位、零码最高位和运算结果中次高位向最高位的进位推算出符号位判断,例如,产生码最高位g[n-1]为高,或者零码最高位z[n-1]和运算结果中次高位向最高位的进位Cn-2的“或非”运算是高,则rs为高,否则为低。
步骤S33:基于上溢预判值、下溢预判值、溢出判断、符号位判断和加法器运算结果,判断运算结果是否上溢出或下溢出;若是,
步骤S34:将运算结果饱和至加法器限制位宽可表示范围的最大值或最小值写出。
步骤S33中,运用步骤S31和步骤S32中产生的上溢预判值、下溢预判值、溢出判断、符号位判断,以及结合加法器运算结果进行处理,判定在加法器限制位宽可表示范围内运算结果是否溢出。
具体的,通过判断运算结果是否大于加法器输入位宽可表示的最大值;或,通过判断运算结果是否大于加法器限制位宽可表示的最大值,来实现判断运算结果是否上溢出。由上溢位判断结果aov判断运算结果是否大于加法器输入位宽可表示的最大值;根据对上溢预判值pof和运算结果处于限制位宽范围内的最高位s[m-1]采取或运算,再与符号位判断rs采取与运算后的运算结果,判断运算结果是否大于加法器限制位宽可表示的最大值;例如,若符号位判断rs表明运算结果为正,上溢预判值pof表示上溢出或运算结果处于限制位宽范围内的最高位s[m-1]是高,则表明加法器运算结果大于限制位宽可表示范围的最大值,则运算结果上溢,需要报告上溢状态,并饱和至限制位宽可表示范围的最大值写出。
通过判断运算结果是否小于加法器输入位宽可表示的最小值;或,判断运算结果是否小于加法器限制位宽可表示的最小值,来实现判断运算结果是否下溢出。由下溢位判断结果auv判断运算结果是否小于加法器输入位宽可表示的最小值;根据对下溢预判值puf和运算结果处于限制位宽范围内的最高位s[m-1]采取或运算,再与符号位判断rs采取与运算后的运算结果,判断运算结果是否小于加法器限制位宽可表示的最小值;例如,若符号位判断rs表明运算结果为负,下溢预判值puf表示下溢出或运算结果处于限制位宽范围内的最高位s[m-1]是低,则表明加法器运算结果小于限制位宽可表示范围的最小值,则运算结果下溢,需要报告下溢状态,并饱和至限制位宽可表示范围的最小值写出。
若判断上溢出和下溢出都不成立,也即运算结果不存在溢出的情况,则选择按照加法器限制位宽可表示范围的原始运算结果s[m-1:0]输出,加法器状态指示正常。
上述可见,本申请提出的定点加法结果位宽限制的处理方法中,一方面,在加法器运算结束之前,获取任意时刻的一对执行加法运算的输入操作数对运算结果做出上溢预判和下溢预判,预判部分包括传递码、产生码、零码、上溢预测因子、下溢预测因子等的编码运算,以及采取规约或运算得到上溢预判值和下溢预判值等的编码运算操作,这部分运算在获得运算结果之前的加法器运算过程中同步进行;另一方面,稍早于加法器获得运算结果之前,采用运算结果的次高位向最高位的进位,获得运算结果是否超出加法器输入位宽的溢出判断和运算结果的符号位判断,这部分运算采用了运算结果的次高位向最高位的进位,在运算结果获得之前即可执行,使得溢出判断和符号位判断稍早于加法器得到运算结果得到;最后,在运算结果获得之后,利用上溢预判值、下溢预判值、溢出判断、符号位判断和部分运算结果信息,做出运算结果是否上溢出或下溢出的判断,这部分运算中虽然使用了运算结果中的部分信息,但是上溢出或下溢出的判断是在加法器结束之后的约一级逻辑时间即可完成,也即,在加法器获得运算结果之后的约一级门的时延之后就可以确定是否需要对结果进行饱和运算,与现有技术中在获得运算结果之后再采取规约操作判断是否对需要饱和处理相比,本申请提出的处理方法在运算结果获得之前采取耗时的规约运算等操作,在运算结果出来之后约一级门的延时即可获得是否需要饱和处理的判断结果,缩短了判断是否需要饱和处理的时间,升加法器限制位宽操作的处理速度,从而实现提升处理器性能的技术效果。
需要说明的是:上述处理方法可执行于加法器运算结果没有获得之前,这包括了加法器所有可能的输入情况;若在某些特殊情况下,可预先获知运算结果在输入位宽上的正、负、是否可能溢出或其他情况下,本着缩短处理时间、提高处理速度、降低资源利用的意图,本处理方法同样适用。
基于上述提出的定点加法结果位宽限制的处理方法,本申请还提出一种定点加法结果位宽限制的处理装置,如图4所示,包括预判模块41、溢出判断和符号位确定模块42、溢出结果判定模块42和运算结果表示模块44。
预判模块41用于基于加法器40输入操作数的高位部分a[n-1:m-1]和b[n-1:m-1],获得上溢预判值pof和下溢预判值puf; 溢出判断和符号位确定模块42用于基于加法器运算结果中次高位向最高位的进位Cn-2,获得运算结果是否超出加法器输入位宽的溢出判断av和运算结果的符号位判断rs;溢出结果判定模块43用于基于上溢预判值pof、下溢预判值puf、溢出判断av、符号位判断rs和加法器运算结果,判断运算结果是否上溢出或下溢出;运算结果表示模块44用于在溢出结果判定模块43判断运算结果上溢出或下溢出时,将运算结果饱和至加法器限制位宽可表示范围的最大值或最小值写出;并在溢出结果判定模块43判断运算结果不存在溢出时,将运算结果不经饱和处理写出,也即写出原始运算结果。
在一个具体的实施例中,如图5所示,预判模块41具体包括传递码编码单元411、产生码编码单元412、零码编码单元413、上溢预测因子编码单元414、下溢预测因子编码单元415、上溢预判规约或运算单元416和下溢预判规约或运算单元417。
传递码编码单元411用于根据输入操作数的高位部分a[n-1:m-1]和b[n-1:m-1]的相同权重位采取异或运算得到传递码t[n-1:m-1]的每一位;产生码编码单元412用于根据输入操作数的高位部分a[n-1:m-1]和b[n-1:m-1]的相同权重位采取与运算得到产生码g[n-1:m-1]的每一位;零码编码单元413用于根据输入操作数的高位部分a[n-1:m-1]和b[n-1:m-1]的相同权重位采取或非运算得到零码z[n-1:m-1]的每一位;上溢预测因子编码单元414用于根据传递码的每一位与权重低一位的零码采取同或运算得到上溢预测因子iof[n-1:m]的每一位;下溢预测因子编码单元415用于根据传递码的每一位与权重低一位的产生码采取同或运算得到下溢预测因子iuf[n-1:m]的每一位;上溢预判规约或运算单元416用于根据上溢预测因子iof[n-1:m]的规约或运算得到上溢预判值pof;下溢预判规约或运算单元417用于根据下溢预测因子iuf[n-1:m]的规约或运算得到下溢预判值puf。
其中,传递码编码单元411、产生码编码单元412和零码编码单元413的编码在常用的超前进位加法器中也会产生,因此在使用超前进位加法器的实施例中,上述三个编码单元实际应用于加法器中,可以直接由加法器产生上述编码后输入给预判模块41使用即可。
如图6所示,为预判模块41一个具体逻辑门实施例图,使用加法器输入操作数的高位部分a[n-1:m-1]和b[n-1:m-1]作为输入,使用编码逻辑601产生上溢预测因子iof和下溢预测因子iuf,图中结构使用了一种更适合具体实现的逻辑结构,因为需要同时产生传递码、产生码和零码,而传递码可以由产生码和零码得到,所以在编码逻辑601中,首先得到产生码和零码,然后再使用产生码和零码得到传递码。在每一位编码逻辑601得到传递码、产生码和零码后,需要产生上溢预测因子和下溢预测因子,需要使用每一位传递码分别与第一位的产生码和零码进行异或/同或的操作,得到上溢预测因子的每一位和下溢预测因子的每一位;其中,最高位不需要向更高位给出产生码和零码,如编码逻辑602所示,最低位没有更低位,不需要产生传递码产生该位的预测因子,如编码逻辑603所示。得到上溢预测因子iof和下溢预测因子iuf之后,将上溢预测因子的所有位进行规约或逻辑运算得到上溢预判值pof,将下溢预测因子的所有位进行规约或逻辑运算得到下溢预判值puf。
如图7所示,溢出判断和符号位确定模块42具体包括上溢位判断单元402、下溢位判断单元403和符号位确定单元404;上溢位判断单元402用于根据零码最高位z[n-1]和运算结果中次高位向最高位的进位Cn-2采取与运算得到上溢位判断结果aov;图示中,从加法器401的运算中获取运算结果中次高位向最高位的进位Cn-2;下溢位判断单元403用于根据产生码最高位g[n-1]和取反的运算结果中次高位向最高位的进位Cn-2采取与运算得到下溢位判断结果auv,图示中,采用了同理编码逻辑设计,即,根据产生码最高位g[n-1]和运算结果中次高位向最高位的进位Cn-2采取或运算后再取反得到下溢位判断结果auv;符号位确定单元404用于确定运算结果符号位的正负,由于加法器本身就存在溢出的可能导致无法使用运算结果的最高位判断运算结果的正负情况,本申请实施例中,可根据零码最高位z[n-1]和运算结果中次高位向最高位的进位Cn-2采取或运算后,和产生码最高位g[n-1]采取与运算再取反运算确定符号位判断。
如图7所示,溢出结果判定模块43具体包括上溢出判定单元405和下溢出判定单元406;上溢出判定单元405用于判断运算结果是否大于加法器输入位宽可表示的最大值;或判断运算结果是否大于加法器限制位宽可表示的最大值,若是,则判断运算结果上溢出;下溢出判定单元406用于判断运算结果是否小于加法器输入位宽可表示的最小值;或判断运算结果是否小于加法器限制位宽可表示的最小值;若是,则判断运算结果下溢出。
具体的,上溢出判定单元405包括基于输入位宽的上溢出判定子单元和基于限制位宽的上溢出判定子单元;基于输入位宽的上溢出判定子单元中,基于上溢位判断结果aov,判断运算结果是否大于加法器输入位宽可表示的最大值;基于限制位宽的上溢出判定子单元中,根据对上溢预判值pof和运算结果处于限制位宽范围内的最高位s[m-1]采取或运算,再与符号位判断rs采取与运算后的运算结果,判断运算结果是否大于加法器限制位宽可表示的最大值。下溢出判定单元406包括基于输入位宽的下溢出判定子单元和基于限制位宽的下溢出判定子单元;基于输入位宽的下溢出判定子单元中,基于下溢位判断结果auv判断运算结果是否小于加法器输入位宽可表示的最小值;基于限制位宽的下溢出判定子单元中,根据对下溢预判值puf和运算结果处于限制位宽范围内的最高位s[m-1]采取或运算,再与符号位判断rs采取与运算后的运算结果,判断运算结果是否小于加法器限制位宽可表示的最小值。
针对上述实施例需要说明的是:由于同样的逻辑可以使用不同的逻辑门进行表达和实现,因此,基于同样的实现原理,使用其他方式得到相同逻辑结果的设计同样属于本申请的保护范围内。上述所有判断中,基于逻辑门的特点,结合实际设计使用情况,采取最终逻辑结果为高时代表肯定判断,最终逻辑结果为低时代表否定判断,或,最终逻辑结果为高时代表否定判断,最终逻辑结果为低时代表肯定判断,本申请实施例不予限制。
应该指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (8)

1.一种定点加法结果位宽限制的处理方法,其特征在于,包括:
基于加法器输入操作数的高位部分,获得上溢预判值和下溢预判值;以及,基于加法器运算结果中次高位向最高位的进位,获得所述运算结果是否超出所述加法器输入位宽的溢出判断和所述运算结果的符号位判断;
基于所述上溢预判值、所述下溢预判值、所述溢出判断、所述符号位判断和所述加法器运算结果,判断所述运算结果是否上溢出或下溢出;若是,
将所述运算结果饱和至所述加法器限制位宽可表示范围的最大值或最小值写出;若否,将所述运算结果不经饱和处理写出;
获得上溢预判值和下溢预判值,具体为:
基于所述加法器输入操作数的高位部分得到传递码、产生码和零码;
基于所述传递码、所述产生码和所述零码的编码获得上溢预测因子和下溢预测因子;
根据所述上溢预测因子的规约或运算得到所述上溢预判值,根据所述下溢预测因子的规约或运算得到所述下溢预判值;
其中,所述上溢预测因子的每一位根据所述传递码的每一位与权重低一位的零码采取同或运算得到;所述下溢预测因子的每一位根据所述传递码的每一位与权重低一位的产生码采取同或运算得到;
所述传递码每一位为所述输入操作数的高位部分的相同权重位采取异或运算得到;所述产生码每一位为所述输入操作数的高位部分的相同权重位采取与运算得到;所述零码每一位为所述输入操作数的高位部分的相同权重位采取或非运算得到。
2.根据权利要求1所述的定点加法结果位宽限制的处理方法,其特征在于,基于加法器运算结果中次高位向最高位的进位,获得所述运算结果是否超出所述加法器输入位宽的溢出判断和所述运算结果的符号位判断,具体为:
根据所述零码最高位和所述运算结果中次高位向最高位的进位采取与运算得到上溢位判断结果;
根据所述产生码最高位和取反的所述运算结果中次高位向最高位的进位采取与运算得到下溢位判断结果;
根据所述零码最高位和所述运算结果中次高位向最高位的进位采取或运算后,和所述产生码最高位采取与运算再取反运算确定所述符号位判断。
3.根据权利要求2所述的定点加法结果位宽限制的处理方法,其特征在于,判断所述运算结果是否上溢出,具体为:
判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;或,判断所述运算结果是否大于所述加法器限制位宽可表示的最大值;
判断所述运算结果是否下溢出,具体为:判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;或,判断所述运算结果是否小于所述加法器限制位宽可表示的最小值。
4.根据权利要求3所述的定点加法结果位宽限制的处理方法,其特征在于,
判断所述运算结果是否大于所述加法器输入位宽可表示的最大值,具体为:基于所述上溢位判断结果,判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;
判断所述运算结果是否大于所述加法器限制位宽可表示的最大值,具体为:根据对所述上溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否大于所述加法器限制位宽可表示的最大值;
判断所述运算结果是否小于所述加法器输入位宽可表示的最小值,具体为:基于所述下溢位判断结果,判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;
判断所述运算结果是否小于所述加法器限制位宽可表示的最小值,具体为:根据对所述下溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否小于所述加法器限制位宽可表示的最小值。
5.一种定点加法结果位宽限制的处理装置,其特征在于,包括预判模块、溢出判断和符号位确定模块、溢出结果判定模块和运算结果表示模块;
所述预判模块,用于基于加法器输入操作数的高位部分,获得上溢预判值和下溢预判值;
所述溢出判断和符号位确定模块,用于基于加法器运算结果中次高位向最高位的进位,获得所述运算结果是否超出所述加法器输入位宽的溢出判断和所述运算结果的符号位判断;
所述溢出结果判定模块,用于基于所述上溢预判值、所述下溢预判值、所述溢出判断、所述符号位判断和所述加法器运算结果,判断所述运算结果是否上溢出或下溢出;
所述运算结果表示模块,用于在所述溢出结果判定模块判断所述运算结果上溢出或下溢出时,将所述运算结果饱和至所述加法器限制位宽可表示范围的最大值或最小值写出;在所述溢出结果判定模块判断所述运算结果不存在溢出时,将所述运算结果不经饱和处理写出;
其中,所述预判模块具体包括传递码编码单元、产生码编码单元、零码编码单元、上溢预测因子编码单元、下溢预测因子编码单元、上溢预判规约或运算单元和下溢预判规约或运算单元;
所述传递码编码单元,用于根据所述输入操作数的高位部分的相同权重位采取异或运算得到所述传递码的每一位;
所述产生码编码单元,用于根据所述输入操作数的高位部分的相同权重位采取与运算得到所述产生码的每一位;
所述零码编码单元,用于根据所述输入操作数的高位部分的相同权重位采取或非运算得到所述零码的每一位;
所述上溢预测因子编码单元,用于根据所述传递码的每一位与权重低一位的零码采取同或运算得到所述上溢预测因子的每一位;
所述下溢预测因子编码单元,用于根据所述传递码的每一位与权重低一位的产生码采取同或运算得到所述下溢预测因子的每一位;
所述上溢预判规约或运算单元,用于根据所述上溢预测因子的规约或运算得到所述上溢预判值;
所述下溢预判规约或运算单元,用于根据所述下溢预测因子的规约或运算得到所述下溢预判值。
6.根据权利要求5所述的定点加法结果位宽限制的处理装置,其特征在于,所述溢出判断和符号位确定模块具体包括上溢位判断单元、下溢位判断单元和符号位确定单元;
所述上溢位判断单元,用于根据所述零码最高位和所述运算结果中次高位向最高位的进位采取与运算得到上溢位判断结果;
所述下溢位判断单元,用于根据所述产生码最高位和取反的所述运算结果中次高位向最高位的进位采取与运算得到下溢位判断结果;
所述符号位确定单元,用于根据所述零码最高位和所述运算结果中次高位向最高位的进位采取或运算后,和所述产生码最高位采取与运算再取反运算确定所述符号位判断。
7.根据权利要求6所述的定点加法结果位宽限制的处理装置,其特征在于,所述溢出结果判定模块具体包括上溢出判定单元和下溢出判定单元;
所述上溢出判定单元,用于判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;或判断所述运算结果是否大于所述加法器限制位宽可表示的最大值,若是,则判断所述运算结果上溢出;
所述下溢出判定单元,用于判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;或判断所述运算结果是否小于所述加法器限制位宽可表示的最小值;若是,则判断所述运算结果下溢出。
8.根据权利要求7所述的定点加法结果位宽限制的处理装置,其特征在于,所述上溢出判定单元包括基于输入位宽的上溢出判定子单元和基于限制位宽的上溢出判定子单元;
所述基于输入位宽的上溢出判定子单元,用于基于所述上溢位判断结果,判断所述运算结果是否大于所述加法器输入位宽可表示的最大值;所述基于限制位宽的上溢出判定子单元,用于根据对所述上溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否大于所述加法器限制位宽可表示的最大值;
所述下溢出判定单元包括基于输入位宽的下溢出判定子单元和基于限制位宽的下溢出判定子单元;
所述基于输入位宽的下溢出判定子单元,用于基于所述下溢位判断结果,判断所述运算结果是否小于所述加法器输入位宽可表示的最小值;所述基于限制位宽的下溢出判定子单元,用于根据对所述下溢预判值和所述运算结果处于限制位宽范围内的最高位采取或运算,再与所述符号位判断采取与运算后的运算结果,判断所述运算结果是否小于所述加法器限制位宽可表示的最小值2。
CN201611258279.9A 2016-12-30 2016-12-30 一种定点加法结果位宽限制的处理方法和装置 Expired - Fee Related CN106873940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611258279.9A CN106873940B (zh) 2016-12-30 2016-12-30 一种定点加法结果位宽限制的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611258279.9A CN106873940B (zh) 2016-12-30 2016-12-30 一种定点加法结果位宽限制的处理方法和装置

Publications (2)

Publication Number Publication Date
CN106873940A CN106873940A (zh) 2017-06-20
CN106873940B true CN106873940B (zh) 2019-05-17

Family

ID=59165334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611258279.9A Expired - Fee Related CN106873940B (zh) 2016-12-30 2016-12-30 一种定点加法结果位宽限制的处理方法和装置

Country Status (1)

Country Link
CN (1) CN106873940B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111638867B (zh) * 2020-05-22 2022-11-22 中国人民解放军国防科技大学 一种支持任意位宽数据有效数据位编码的方法和装置
CN112181355B (zh) * 2020-10-12 2021-08-06 上海芯旺微电子技术有限公司 一种移位饱和处理方法及其应用
CN112230883B (zh) * 2020-10-14 2021-06-01 上海芯旺微电子技术有限公司 一种用于乘法器零标志位的产生电路、乘法器和检测方法
CN114968175B (zh) * 2022-06-06 2023-03-07 湖南毂梁微电子有限公司 一种用于智能计算加速的可配置移位加法融合单元

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1826580A (zh) * 2003-07-23 2006-08-30 桑德布里奇技术公司 具有初步饱和检测的加法或者减法运算单元
CN105512724A (zh) * 2015-12-01 2016-04-20 中国科学院计算技术研究所 加法器装置、数据累加方法及数据处理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1826580A (zh) * 2003-07-23 2006-08-30 桑德布里奇技术公司 具有初步饱和检测的加法或者减法运算单元
CN105512724A (zh) * 2015-12-01 2016-04-20 中国科学院计算技术研究所 加法器装置、数据累加方法及数据处理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"加法器溢出处理的优化设计与实现";吴虎成 等;《计算机工程与科学》;20110930;第33卷(第9期);第2节,第3.1节,第3.2节

Also Published As

Publication number Publication date
CN106873940A (zh) 2017-06-20

Similar Documents

Publication Publication Date Title
CN106873940B (zh) 一种定点加法结果位宽限制的处理方法和装置
CN107273090B (zh) 面向神经网络处理器的近似浮点乘法器及浮点数乘法
US7720899B2 (en) Arithmetic operation unit, information processing apparatus and arithmetic operation method
KR100948559B1 (ko) 부동소수점수의 제산 또는 제곱근 연산을 행하는 연산 장치및 연산 방법
KR100824189B1 (ko) 부동 소수점 데이터의 총합 연산 처리 방법 및 컴퓨터시스템
JP2020077143A (ja) 学習プログラム、学習方法、情報処理装置
US10402167B2 (en) Approximating functions
CN109863476A (zh) 动态变量精度计算
RU2408057C2 (ru) Умножитель с фиксированной точкой с предварительным насыщением
CN111936965A (zh) 随机舍入逻辑
US11551087B2 (en) Information processor, information processing method, and storage medium
WO2021044227A1 (en) Neural network circuitry having floating point format with asymmetric range
KR102208274B1 (ko) 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛
CN116232581A (zh) 部署混合精度的方法、装置及硬件架构
US20140059106A1 (en) Arithmetic circuit for performing division based on restoring division
CN106802783B (zh) 一种小数加法结果圆整方法与装置
EP3848791B1 (en) Arithmetic processing device, method for controlling arithmetic processing device, and arithmetic processing program
JP2003216419A (ja) 計算装置及び計算方法
Popescu et al. Representation range needs for 16-bit neural network training
KR101753162B1 (ko) 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
EP1429239A2 (en) Floating-point multiplication
WO2023004799A1 (zh) 电子设备及神经网络量化方法
Huang et al. A high speed fuzzy inference processor with dynamic analysis and scheduling capabilities
JP4109181B2 (ja) 論理回路、および、それを使用した浮動小数点演算回路とマイクロプロセッサ

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180104

Address after: Jimo City, Shandong province 266200 Qingdao City Economic Development Zone Xincheng District blue Hengye building four

Applicant after: Qingdao special integrated circuit design engineering technology research center

Address before: 266299 Shandong city in Qingdao Province, the provincial Economic Development Zone Jimo District Xincheng Hengye building 4 Blue

Applicant before: QINGDAO LOGIC-SMART INFORMATION TECH. LTD.

GR01 Patent grant
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: 20190517

Termination date: 20211230