一种小数加法结果圆整方法与装置与流程

文档序号:12550294阅读:470来源:国知局
一种小数加法结果圆整方法与装置与流程

本发明涉及数据处理及专用集成电路技术领域,尤其涉及一种小数加法结果圆整方法与装置。



背景技术:

对加法器结果的圆整(Round)操作,通常也称为舍入操作,是常见的结果处理操作之一,几乎在所有处理器中都会有类似的设计。在浮点加法器中,如果加法器的两个输入数的指数不同,一般会将指数较小的输入数的尾数右移之后在与另一个输入数进行操作。在输出结果之前,移出的位需要向上圆整。按照IEEE的圆整标准,是否将低位向上进位需要综合考虑所有移出位、加法器结果最低有效位和次低有效位。在这种情况下,最直接的处理方式是先判断决定是否需要进位,然后再进行加法运算。

在利用浮点乘累加器或者定点乘累加器对小数操作时,指令要求结果输出位宽与输入位宽相同。因此,乘法器会将输入操作数的位宽加倍,如果不对位宽进行限定,在经过多次乘法操作之后,理论上运算结果的位宽将以指数形式增长。为了避免出现这种不必要的情况,指令都需要将运算结果圆整。因此,加法器的结果需要将低半部分按照规则舍入并选择高半部分。在这种情况下,最直接的方式是先得到加法器的计算结果,然后根据结果的低半部分,决定是否向上进位,然后再计算进位结果。

在不同的环境下,加法器结果的圆整操作使用不同的设计方式。在现有技术中的高性能处理器中,浮点加法器的圆整操作常见的方法是使用进位选择和双加法器的设计方式,即同时处理需要进位的结果以及不需要进位的结果。在加法器进行计算的同时,判断是否需要舍入,然后在加法器得出结果之后进行选择。但是在浮点乘加器或者定点小数乘加器的设计中,使用传统的进位选择需要消耗更多的资源。而且因为低半部分的结果判断需要较多时间,无法在高半部分的计算完毕之前得出,所以仍然不能快速的得到结果。

综上所述,现有高性能处理器中的浮点乘加器或者定点小数乘加器存在圆整方法消耗的资源多且无法快速得到结果的问题。



技术实现要素:

本发明公开一种小数加法结果圆整方法,以解决现有高性能处理器中浮点乘加器或者定点小数乘加器消耗资源多且无法快速得到结果的问题。

一种小数加法结果圆整方法,其特征在于,包括以下步骤:

定义编码加法器的参数,所述参数包括两个位宽为n的加法器输入操作数 a[n-1:0]和b[n-1:0], 加法器初始进位c0,加法器输出s[n-1:0]以及圆整结果r[m-1:0] ;

根据所述加法器输入操作数设定每一位的进位传递因子p[n-1:0],进位产生因子g[n-1:0]和进位取消因子k[n-1:0],其中p[n-1:0]= a[n-1:0]^ b[n-1:0],g[n-1:0]= a[n-1:0]& b[n-1:0],k[n-1:0]=~(a[n-1:0]| b[n-1:0] ),^代表异或逻辑,&代表与逻辑,~代表取反逻辑,|代表或逻辑;

接收所述加法器输入操作数和初始进位,利用所述进位传递因子和进位取消因子预先判断计算生成低位部分处理结果;将低位部分分为三段,将p[n-m-1]和k[n-m-2]同或计算得到所述低位部分的最高位zl[n-m-1],将每一位的进位传递因子与与其相比低一位的进位取消因子按位异或计算得到所述低位部分的次高位至次低位zl[n-m-2:1],将p[0]与初始进位c0同或计算得到zl[0],将n-m位zl[n-m-1:0]进行n-m位的与操作,得到低位部分处理结果mid;

接收所述加法器输入操作数,利用所述进位传递因子和进位产生因子判断预测高位部分处理结果,将高m位的进位传递因子与与其相比低一位的进位产生因子异或计算得到高m位结果zh[m-1:0],将高m位结果zh[m-1:0]的每一位的与所有低于该权重的位做与操作得到高m位的高位进位预测结果zhc[m-1:0];

将加法器低位部分输出的最高位s[n-m-1]分别和所述高位进位预测结果zhc[m-1:0]的每一位分别进行与逻辑计算,得到zhcs[m-1:0];

将加法器高位部分的输出s[n-1:n-m+1]和zhcs[m-1:1]进行异或计算得到部分圆整输出r[m-1:1];

利用加法器的部分输出s[n-m]作为选择信号,s[n-m]为高则选择mid和s[n-m-1]的或非逻辑计算结果作为所述圆整输出的最低位,s[n-m]为低则选择~mid和s[n-m-1]的与逻辑计算结果作为所述圆整输出的最低位,得到r[0]。

本发明所公开的小数加法结果圆整方法,通过将低位计算和高位进位预测两个部分独立出来,可以代替现有技术中采用两个独立加法器计算的方式,经过测试,可以有效地提高现有技术中计算效率,而且在浮点乘法器或定点小数操作中,本发明所提供的方法可以更快速的对低位结果进行判断,以更快的开始后续操作。

本发明同时公开了一种小数加法结果圆整装置,

包括

第一加法器;

第一逻辑单元,所述第一逻辑单元被配置为接收加法器输入操作数和初始进位,利用根据所述加法器输入操作数生成的进位传递因子和进位取消因子预先判断计算生成低位部分处理结果;

第二逻辑单元,所述第二逻辑单元被配置为接收加法器输入操作数,利用根据所述加法器输入操作数生成的进位传递因子和进位产生因子预先预测计算高位部分处理结果;

圆整结果输出单元,所述圆整结果输出单元耦接所述第一加法器、第一逻辑单元和第二逻辑单元,所述圆整结果输出单元使用所述第一加法器、第一逻辑单元和第二逻辑单元的输出结果,形成圆整结果。本发明所公开的小数加法圆整装置,可以降低芯片面积的40%,同时在有效降低芯片面积的条件下,很好的解决了圆整操作需要处理的低位结果判断、高位进位计算和溢出判断三个问题,同时提高了结果输出的速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所公开的小数加法结果圆整方法的一种流程图;

图2为本发明所公开的小数加法结果圆整方法的另一种流程图;

图3为本发明所公开的小数加法圆整装置的结构示意框图;

图4为图3中第一逻辑单元的逻辑电路示意图;

图5为图3中第二逻辑单元的逻辑电路示意图;

图6为图3所公开的小数加法圆整装置的逻辑电路示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示为本发明所公开的小数加法结果圆整方法第一种实施例的流程图,本发明旨在更快的给出计算结果,避免同时进行并行加法和进位选择操作,降低使用的加法器资源。具体来说,本实施例包括以下步骤:

定义编码加法器的参数,所述参数包括两个位宽为n的加法器输入操作数 a[n-1:0]和b[n-1:0], 加法器初始进位c0,加法器输出s[n-1:0]以及圆整结果r[m-1:0] 。

根据所述加法器输入操作数设定对应每一位的进位传递因子p[n-1:0],进位产生因子g[n-1:0]和进位取消因子k[n-1:0],其中p[n-1:0]= a[n-1:0]^ b[n-1:0],g[n-1:0]= a[n-1:0]& b[n-1:0],k[n-1:0]=~(a[n-1:0]| b[n-1:0];^代表异或逻辑,&代表与逻辑,~代表取反逻辑,|代表或逻辑。

接收所述加法器输入操作数和初始进位,利用所述进位传递因子和进位取消因子预先判断计算生成低位部分处理结果,将低位部分分为三段,将p[n-m-1]和k[n-m-2]同或计算得到所述低位部分的最高位zl[n-m-1],将每一位的进位传递因子与与其相比低一位的进位取消因子异或计算得到所述低位部分的次高位至次低位zl[n-m-2:1],将p[0]与初始进位c0同或计算得到zl[0],将zl[n-m-1:0]归约,即进行缩减操作,将zl[n-m-1:0]的每一位输入与门电路的输入端,进行逻辑计算,得到低位部分处理结果mid;

利用所述进位传递因子和进位产生因子同时预测判断计算高位部分进位处理结果,将高m位的进位传递因子与与其相比低一位的进位产生因子异或计算得到高m位结果zh[m-1:0],将高m位结果zh[m-1:0]的每一位的与所有低于该权重的位做与操作得到高m位的高位进位预测结果zhc[m-1:0]。

将加法器低位部分输出的最高位s[n-m-1]和所述高位进位预测结果zhc[m-1:0]的每一位分别进行与逻辑计算,得到zhcs[m-1:0]。更具体一步的说,通过与门行计算zhcs[m-1:0],所述与门行包括m-1个与门电路,每一个与门电路的一个输入端输入所述加法器低位部分输出的最高位s[n-m-1],与门电路的另一端分别输入所述高位进位预测结果zhc[m-1:0]的每一位,得到zhcs[m-1:0]。

将加法器高位部分的输出s[n-1:n-m+1]和zhcs[m-1:1]进行异或计算得到部分圆整输出r[m-1:1];

利用加法器的部分输出s[n-m]作为选择信号,s[n-m]为高则选择mid和s[n-m-1]的或非逻辑计算结果作为所述圆整输出的最低位,s[n-m]为低则选择~mid和s[n-m-1]的与逻辑计算结果作为所述圆整输出的最低位,得到r[0]。

利用r[m-1:1]和r[0]即可以在没有延迟的情况下得到考虑低位是否存在向上的进位的完整的圆整结果。

与现有处理器的运作方式相似,对于圆整操作来说,还需要处理溢出判断的问题,参见图2所示,在一种优选的实施方式中,还包括溢出判断的步骤。在不同的使用环境中,溢出后需要进行的操作不同,本实施例仅提供一种优选的判断方式。

具体来说,针对两种不同的情形,溢出判断优选包括以下步骤:

在浮点操作中,如果所述加法器输出最高位有进位则N上溢出;如果zhcs的最高位为1时,则R溢出;

其中,所述N上溢出有效或R溢出有效则上溢出。

在定点操作中,首先根据所述加法器输入操作数的符号位以及所述加法器输出的符号位判断所述加法器输出的正负;

如果所述加法器的输出为正数且所述加法器输出最高位有进位则N上溢出;如果zhcs的最高位为1时,则R溢出;

其中,所述N上溢出有效或R溢出有效则上溢出;

如果所述加法器的输出为负数且所述加法器输出最高位没有进位则N下溢出;如果zhcs的最高位为1时,则R溢出;

其中,所述N下溢出有效且R不溢出时则下溢出。

在本实施例所公开的圆整操作的方法中,虽然将低位计算和高位进位预测独立出来,仍然需要一个完整的加法器参与,通常在高性能处理中,加法器采用超前进位加法器进行设计。参与低位计算和高位进位预测的进位传递因子、进位取消因子和进位产生因子可以采用独立于所述加法器的符合上述逻辑计算公式规定的逻辑门电路生成,将将zl[n-m-1:0]归约并进行逻辑与计算,得到低位部分处理结果mid。还可以采用所述加法器内部的逻辑门电路生成。这是因为超前进位加法器大多会在进位链前产生类似的进位传递因子、进位产生因子或者进位取消因子,因此可以直接使用加法器产生的进位传递因子、进位产生因子或进位取消因子,将zl[n-m-1:0]归约并进行逻辑与计算,得到低位部分处理结果mid。

本发明所公开的小数加法结果圆整方法,通过将低位计算和高位进位预测两个部分独立出来,可以代替现有技术中采用两个独立加法器计算的方式,经过测试,可以有效地提高现有技术中计算效率,而且在浮点乘法器或定点小数操作中,本发明所提供的方法可以更快速的对低位结果进行判断,以更快的开始后续操作。

本发明同时公开了一种小数加法结果圆整装置,采用上述第一实施例和第二实施例所公开的小数加法结果圆整方法。参见图3所示,主要包括第一加法器、第一逻辑单元、第二逻辑单元以及圆整结果输出单元,其中圆整结果输出单元耦接第一加法器、第一逻辑单元和第二逻辑单元,圆整结果输出单元使用第一加法器、第一逻辑单元和第二逻辑单元的输出结果,形成圆整结果。以下参照附图,对多个组成部分进行逐一详细描述。:

作为加法结果的圆整操作,仍然需要一个完整的第一加法器101,本实施例所公开的小数加法结果圆整装置应用在在高性能处理中,因此第一加法器101使用超前进位加法器进行设计。与现有技术采用双加法器的技术方案不同,对于低位部分的预先判断计算,在本实施例中使用第一逻辑单元102实现。对于高位结果和进位的预测和计算,使用第二逻辑单元107实现,第二逻辑单元107先使用高位进位预测逻辑103产生高位进位预测结果zhc[m-1:0],然后使用第一加法器101输出结果低位部分最高位s[n-m-1]与高位进位预测逻辑103的结果经过与门行104的逻辑计算,得到zhcs[m-1:0]。然后通过圆整结果输出单元105汇总第一加法器101、第一逻辑单元102、与门行104,即第二逻辑单元107的结果,得到最终考虑了低位是否存在进位的圆整结果。进一步使用溢出判断逻辑单元106判定是否溢出。

第一逻辑单元102的结构如图4所示。将需要计算的低位部分预先主动分成三段对应位宽进行处理,第一段是低位部分的第n-m-1位,将n-m-1位的进位传递因子p[n-m-1]和n-m-2位的进位取消因子k[n-m-2]进行“同或”计算,得到n-m-1为的低位处理结果zl[n-m-1]。第二段是低位部分的次高位至次低位[n-m-2:1],将对应第二段的每一位的进位传递因子与相比于该位低一位的进位取消因子进行“异或”计算,得到zl[n-m-2:1]。第三段是低位部分的第0位,将p[0]与初始进位c0进行“同或”计算,得到zl[0],如结构203所示。如此得到完整的结果zl[n-m-1:0]。将zl[n-m-1:0]进行“归约与”操作,即将每一位输入至与门电路的输入端,输出一位对应位结果mid。

因为超前进位加法器大多会在进位链前产生类似的进位传递因子、进位产生因子或进位取消因子,所以可以直接使用第一加法器101产生的进位传递因子、进位产生因子或进位取消因子。如此结构201、202、203中产生进位传递因子或进位取消因子的逻辑门就不再需要,直接产生zl[n-m-1:0],然后进行归约与操作。

第二逻辑单元107包括高位进位预测逻辑103和与门行104,高位进位预测逻辑103的结构如图5所示。对高m位的每一位对应的进位传递因子和与其相比低一位的进位产生因子做“异或”操作,得到高m位的结果zh[m-1:0],每一位的逻辑如图中结构301所示。将该m位的结果zh[m-1:0]输入“归约与树林逻辑”302,得到m位的高位进位预测结果zhc[m-1:0]。

如图5所示,其中“归约与树林逻辑”是指每一位的输出结果都是该位对应的输入位和所有低于该位权重的输入做“与操作”得到的结果。

同样的,因为超前进位加法器大多会在进位链前产生类似的进位传递因子、进位产生因子或进位取消因子,所以可以直接使用第一加法器101产生的进位传递因子、进位产生因子或进位取消因子。如此结构301中产生进位传递因子或进位产生因子的逻辑门就不再需要,直接采用超前进位加法器的输出产生zh[n-m-1:0]。

第二逻辑单元107的另一个部分,与门行104是m-1个与门,具体结构如图6中104所示。每个与门的一端输入第一加法器101低位部分输出结果的最高位s[n-m-1],每个与门的另一端对应输入高位进位预测逻辑103结果zhc[m-1:1]的每一位,通过与门行104得到结果是zhcs[m-1:1]。

圆整结果输出单元105的具体结构如图6所示。将第一加法器101高位部分的输出结果中的高位部分s[n-1:n-m+1]和通过与门行104得到的结果zhcs[m-1:1],通过“异或”得到圆整结果的一部分r[m-1:1]。而最低位结果r[0]则使用s[n-m]作为选择信号,为高则选择mid和s[n-m-1]的“或非”结果,否则选择~mid和s[n-m-1]的“与”结果,得到r[0]。得到完整的考虑低位进位信息的圆整结果r[m-1:0]。

如图3所示,为了进行进一步的溢出判断,还设置有溢出判断逻辑单元106。在溢出判断逻辑单元106中,根据第一加法器101高位输出结果和第二逻辑单元107,即与门行104的输出结果判断n位加法器的溢出(N上溢出/N下溢出)以及圆整加1导致的溢出(R溢出)。首先根据第一加法器101两个输入操作数符号位以及第一加法器101输出计算结果符号位确定输出结果的正负。若输出结果是正数,第一加法器101高位输出结果最高位有进位则N上溢出,与门行104输出zhcs最高位是1则R溢出。当输出结果为正数时,两种溢出一种有效则上溢出;若结果是负数,第一加法器101高位输出结果最高位没有进位则N下溢出,与门行104输出zhcs最高位是1则R溢出,当输出结果为负数时,仅在N下溢出且R不溢出的情况下才下溢出。

本发明所公开的小数加法圆整装置,可以降低芯片面积的40%,同时在有效降低芯片面积的条件下,很好的解决了圆整操作需要处理的低位结果判断、高位进位计算和溢出判断三个问题,降低了加法器的延迟,可以更快地进行后续处理,同时提高了结果输出的速度。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1