CN101371221A - 预饱和固定点乘法器 - Google Patents

预饱和固定点乘法器 Download PDF

Info

Publication number
CN101371221A
CN101371221A CNA2007800026442A CN200780002644A CN101371221A CN 101371221 A CN101371221 A CN 101371221A CN A2007800026442 A CNA2007800026442 A CN A2007800026442A CN 200780002644 A CN200780002644 A CN 200780002644A CN 101371221 A CN101371221 A CN 101371221A
Authority
CN
China
Prior art keywords
multiplier
operand
multiplying
saturated
cloth
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
Application number
CNA2007800026442A
Other languages
English (en)
Other versions
CN101371221B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101371221A publication Critical patent/CN101371221A/zh
Application granted granted Critical
Publication of CN101371221B publication Critical patent/CN101371221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/499Denomination or exception handling, e.g. rounding or overflow
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Processing Of Color Television Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Picture Signal Circuits (AREA)

Abstract

本发明揭示一种预饱和乘法器,其在执行任何乘法之前检查乘法运算的操作数。如果所述操作数将导致需要饱和的溢出,那么所述乘法器输出饱和值而不将所述原始操作数相乘。在一个实施例中,更改从所述操作数导出的参数,以便在对所述经更改的参数执行乘法运算时,所述乘法器产生饱和结果。此可包含更改经布思(Booth)再编码的位群组,以选择负零而不是零来作为部分乘积,并抑制将值1加到所述部分乘积(因此有效地减去值1)。在另一实施例中,当检测到将导致溢出的操作数时,迫使所述乘法器的输出变成预定饱和值。

Description

预饱和固定点乘法器
技术领域
本发明大体来说涉及数字电路的领域且更特定来说涉及一种预饱和固定点乘法器。
背景技术
固定点乘法是由数字计算电路(例如处理器)执行的基本算术运算。大多数处理器指令集合架构包括各种固定点乘法指令。固定点乘法的已知危险是在某些条件下(如本文中更全面地说明),乘积可超出可以可用位宽度表示的数值,此条件称作溢出。在此情形中,为避免所述乘积的严重误表示,乘法指令将规定“饱和“输出,其是可用位字段中可表示的最大数值-实际上,是可能与实际乘积最接近的逼近。此指令称作饱和固定点乘法指令。所述指令通常为乘积规定位宽度,其是操作数的位宽度的两倍。
整数及分数值两者可以固定点数字形式来表示,此取决于所使用的约定。通常,所有现代处理器使用2的补数格式来以固定宽度的数字表示来表示正及负整数。2的补数格式是常见的。在2的补数表示中,整数“带有符号”。也就是说,可通过检查最高有效位(MSB)或“符号位”来确定整数是正还是负。另外,在2的补数表示中,对带符号整数的二进制算术运算得出正确的2的补数结果。
正的2的补数使用零符号位以简单的二进制形式表示。因此,可以2的补数格式表示的最大正数是2n-1-1,其中n是所述数字表示的位宽度。负的2的补数表示为当加到相同量值的正数时等于零的二进制数。负的2的补数具有为1的符号位。由于负数的2的补数表示可使用所述数字表示的所有n个位,因此可以2的补数格式表示的最大负数是2n-1,其在量值上比最大正2的补数大1。因此,举例来说,32-位字段中可表示的带符号整数值的范围是-231(0×80000000)到+231-1(0×7FFF FFFF)。
可通过逐位反转所述数(得出1的补数)并加1来形成任何2的补数的求反。因此,一种计算负数的2的补数表示的方式是反转对应正数的二进制表示(其是所述正数的1的补数形式)并加1。此求反算法的唯一例外是可表示的最大负数。对所述数执行2的补数求反产生相同的数,此是溢出错误。还应注意,求反零的2的补数得出零-反转所有位得出全部为1,且加1得出零(当舍弃进位输出时)。
可使用所谓的Q格式记法以固定宽度数字形式表示分数值。在Qn.x格式记法中,值的位解释为:一个符号位、n个整数位及x个分数位。用于数字信号处理的常见Q格式是Q0.x(或简单的Q.x),其指示存在一个符号位、无整数位及x个分数位。在Q.31记法中,数将以32个位来表达且将具有从-1(0x80000000)到1-2-31(ox7FFFFFFF)的范围的值。
当以Q格式使数相乘时,重要的是计及二进制小数点。举例来说,将Q.15乘Q.15相乘将得出Q2.30的结果。然而,需要将值保持为Q.x格式。为应对此情形,乘法运算包括乘以因数2的乘法(此等同于左移位运算)以产生Q.31结果。将两个n-位值乘在一起将始终产生可以2n个位表示的值。在除最大负值的情形外的所有情形中,将此乘积增加一倍将产生可以2n个位表示的值。2的补数中的最大负值是为1的符号位(MSB)而所有其它位为零。将此值向左移位产生溢出。
实例是以下两个16-位操作数的相乘以产生32-位乘积。所述操作数中的每一者均为负(符号位为1),而其乘积应为正数。
0×8000×0×8000=0×4000 0000      乘法
0×4000 0000×0×2=0×8000 0000    加倍(不正确的结果;应为正)
0×8000 0000-1=0×7FFF FFFF        饱和结果(最大正值)
在此实例中,所述两个操作数各自为可以2的补数格式以16位表示的最大负数。其乘积应得出大的正值。然而,加倍乘法指令的实际结果是最大负值。因此,必须从此值中减去‘1’以获得0x7FFFFFFF的饱和值-符号位为零而其它位位置中全部为1。
常规饱和乘法器仅在执行乘法之后检测溢出条件,但然后必需采取措施以通过使输出饱和来校正溢出条件。在某些实施方案中,此可需要(例如)通过导致例外来使处理器暂停。此有害地影响处理器性能并导致增加的功率消耗。即使溢出在硬体中达到饱和,但在乘法完成之后如此做会有害地影响性能。
发明内容
根据一个或一个以上实施例,预饱和乘法器在执行任何乘法之前检查乘法运算的操作数。如果所述操作数将导致需要饱和的溢出,那么所述乘法器输出饱和值而不将所述操作数相乘。
在一个实施例中,更改从所述操作数导出的参数,以便在对所述经更改的参数执行乘法运算时,所述乘法器产生饱和结果。此可包含更改布思再编码位群组,以选择负零而不是零来作为部分乘积,并抑制将值1加到所述部分乘积(因此有效地减去值1)。在另一实施例中,当检测到将导致溢出的操作数时,迫使所述乘法器的输出变成预定饱和值。
一个实施例涉及一种执行固定点饱和乘法运算的方法,对于所述运算包含乘数及被乘数的至少一组已知操作数将导致需要饱和的溢出。在执行任何乘法运算之前检测将导致溢出的操作数,且输出饱和结果而不将所述操作数相乘。
另一实施例涉及包括乘法器电路的预饱和乘法器,所述乘法器电路操作以使两个包含乘数及被乘数的操作数相乘,并输出其乘积。所述预饱和乘法器还包括溢出预检测电路,其操作以在所述乘法器电路中检测将导致溢出的操作数。
附图说明
图1是根据一个实施例的预饱和乘法器的功能性方块图。
图2是根据另一实施例的预饱和乘法器的功能性方块图。
图3是执行预饱和乘法运算的方法的流程图。
具体实施方式
乘法器检测乘法运算的操作数,如果执行所述乘法,那么所述操作数将导致溢出条件。响应于此检测,所述乘法器输出饱和值。在一个实施例中,所述乘法器通过以以下方式更改操作数来输出饱和值:所述乘法运算将产生作为乘积的饱和值。图1描绘根据此实施例的预饱和乘法器40。GPR寄存器42包含乘数(MR)及被乘数(MD)操作数。所述乘数输入到布思再编码器电路44。
布思再编码(有时将其称作经修改的布思再编码)是一种用于减少将要在执行乘法运算中相加的部分乘积的数量的技术。不考虑所述乘数中的每一位且不产生包含被乘数或零的对应经移位部分乘积,而是以群组形式考虑乘数位,并将包含所述被乘数的+/-倍数的经移位部分乘积相加。此技术减少将要相加的部分乘积的数量。举例来说,在基数-4布思再编码中,将所述乘数位与先前群组的MSB一起考虑为两个群组(其中零被附加到第一群组)。然后根据下表、基于所述位群组的值产生部分乘积:
位群组             部分乘积
000                0
001                1×被乘数
010                1×被乘数
011                2×被乘数
100                -2×被乘数
101                -1×被乘数
110                -1×被乘数
111                0
表1:基数-4布思再编码
对于所述乘数中的每一经布思再编码的位群组,所述被乘数乘以所指示的因素,且将所得的部分乘积移位到所述乘数中的位群组的位置。然后,求和所述部分乘积以得出乘积。当将带符号值相乘时,基数-4布思再编码可将部分乘积的数量减少高达一半。
在此实施方案中,布思再编码器44的输出经由布思多路复用器48选择华莱士(Wallace)树50(或其它加法器)的部分乘积。布思多路复用器48从移位/反转逻辑49选择经适当修改的被乘数,且每一多路复用器48对准所述乘数中再编码位群组的位置。移位/反转逻辑49如下产生表1中规定的经修改被乘数:
·0将被乘数位全部取代为零;
·×1直接通过被乘数位;
·×2将被乘数位向左移位一个位位置;及
·求反对被乘数、经移位的被乘数或零值执行逐位反转(1的补数)。
应注意,所述求反直到在LSB处将‘1’加到华莱士树50内的部分乘积(用于求反的每一2的补数法则:1的补数+1)才完成。华莱士树50将所述部分乘积相加,从而输出和及进位,其在进位传递加法器52中相加,且将所述乘积锁存在54处。所属技术领域的技术人员将认识到,可锁存所述布思再编码器的输出及布思多路复用器48的输出(或所述被乘数值)以允许进行管线操作。
溢出检测电路56在每一乘法运算的开始监测乘数及被乘数,从而检测将导致需要饱和的溢出的操作数的值。当检测到即将来临的溢出时,溢出检测电路56向布思再编码器44发信号以便以以下方式更改乘数位的再编码,且向华莱士树50发信号以便以以下方式更改部分乘积的总和:所述乘法运算将产生用于所述乘积的饱和值。此因将导致溢出的操作数数量有限而可行,且预先知道这些操作数。
特定来说,在一个实施例中,仅乘数及被乘数两者均包含最大负值的情形将导致需要饱和的溢出。当检测到此条件时,溢出检测电路56将信号引导到布思再编码器44以更改布思再编码。相应地,布思再编码器44修改最低有效布思再编码的位群组(其具有000的值,通常将选择零)以选择负零。移位/反转逻辑49提供零的1的补数(即,全部为1),且向华莱士树50发信号以将‘1’加到所述部分乘积。另外,溢出检测电路56将抑制信号引导到华莱士树50以抑制加上与0的求反相关联的‘1’(应注意,在管线化实施方案中,所述“抑制+1”信号将被锁存)。相应地,加上零的符号延伸的1的补数(0×FFFFFFFF)作为部分乘积,但不加对应的‘1’-以有效地从所述结果中减去‘1’。举例来说:
0×8000×0×8000=0×40000000         两个最负值的乘法
0×40000000×0×2=0×80000000        加倍
0×80000000+0×FFFFFFFF=
0×7FFFFFFF                           饱和结果(有效地减去‘1’)
此饱和结果由进位传递加法器52输出,且锁存为54处的乘积。根据此实施例,所述饱和乘法运算的定时与不导致溢出且因此需要饱和的操作数的定时相同。特定来说,无延迟被加到乘法器40的输出。因此,此实施例可具有其中所述乘法运算的定时至关重要的特定适应性,且可在乘法器40输出处不容许额外的延迟。
图2描绘预饱和乘法器40的另一实施例,其中对应的组件相应地进行编号。在此实施例中,溢出检测电路56监测乘数及被乘数,从而检测将导致需要饱和的溢出的已知操作数。当检测到这些操作数时,溢出检测电路56输出用饱和结果取代乘法器40乘积输出的信号。举例来说,溢出检测电路56可输出引导多路复用器60选择代替进位传递加法器52的输出的预定饱和输出的多路复用器选择信号。所述预定饱和输出可包含硬接线值(即,其中位位置连接到高或低电压轨),或另一选择为,可包含存储位置(例如,寄存器)的输出。在其中多个操作数可导致需要不同饱和值的溢出的实施例中,溢出检测电路56可输出多位多路复用器选择信号,其在多个预定饱和值与加法器52的输出之间进行选择。可在管线化实施方案中锁存溢出检测电路56输出。
在此实施例中,可抑制乘法运算(也就是说,可停用布思再编码器44、逻辑块49、华莱士树50、进位传递加法器52及其它乘法器电路)以减小功率消耗。另一选择为,可允许操作数的乘法穿过乘法器40而继续进行,而仅舍弃结果,因为替代地将饱和结果锁存在54处。在此实施例中,将多路复用器60的延迟加到乘法器40所执行的每一乘法运算,尽管可通过以下方式来减轻此延迟:使用现存多路复用器的未使用接脚、使用多路复用锁存器或通过所属技术领域中已知的其它技术。应尽早确定溢出条件,而选择饱和值的决策并非关键途径的一部分。
图3描绘一种执行固定点饱和乘法运算的方法,对于所述运算,至少一组已知操作数将导致需要饱和的溢出。首先(即,在执行任何乘法之前),检查操作数(方块70)。将操作数与将导致溢出的已知值相比较(方块72)。举例来说,在某些情形中,如果两个操作数均包含操作数位字段内可表示的最大负值,那么将导致溢出。如果将操作数相乘将不导致溢出(方块72),那么执行所述乘法并输出结果(方块74)。如果将操作数相乘将导致需要饱和的溢出(方块72),那么根据一个或一个以上实施例,输出所述饱和结果而不将原始操作数相乘(方块76)。
在一个实施例中,此包含以以下方式更改从所述操作数产生的参数:对经更改的参数执行乘法运算可产生作为所述乘法运算的乘积的饱和值。在另一实施例中,输出所述饱和结果包含选择预定的饱和值作为代替来自所述乘法运算的乘积的输出。
在两个实施例(即,图1及2中所描绘的实施例)中,较早地检测到将导致溢出的操作数,且乘法器40直接输出饱和结果。此表示胜过常规方法的显著性能改善及功率节约,所述常规方法仅通过检查乘积来检测溢出且随后用饱和值取代所述乘积。根据本文所揭示一个或一个以上实施例,乘法器40尤其适用于高速处理器,及/或其中低功率消耗是关键因素的处理器,例如,以电池供电的便携式电子装置。
尽管本文已根据本发明的特定特征、方面及实施例说明了本发明的概念,但将明了的是,许多变化、修改及其它实施例也可归属于本教示的宽广范围内。因此,应在所有方面将本发明实施例理解为说明性而非限制性,且归属于随附权利要求书的含义和等效范围内的所有改变均既定涵盖在随附权利要求的范围内。

Claims (15)

1.一种执行固定点饱和乘法运算的方法,对于所述运算,至少一组已知操作数将导致需要饱和的溢出,所述操作数包含乘数及被乘数,所述方法包含:
在执行任何乘法运算之前检测将导致溢出的所述操作数;及
输出饱和结果而不将所述操作数相乘。
2.如权利要求1所述的方法,其中将导致溢出的所述操作数是所述操作数位字段中可表示的最大负数。
3.如权利要求1所述的方法,其进一步包含:
调整从所述操作数导出的一个或一个以上参数以使得乘法运算将产生所述饱和结果;及
用所述经调整的参数执行乘法运算。
4.如权利要求3所述的方法,其中调整从所述操作数导出的一个或一个以上参数包含更改从所述乘数导出的一个或一个以上经布思再编码的位群组。
5.如权利要求4所述的方法,其中更改经布思再编码的位群组包含将对经布思再编码的位群组的选择从零改变到负零及抑制将值1加到从所述被乘数导出的部分乘积。
6.如权利要求3所述的方法,其中调整从所述操作数导出的一个或一个以上参数包含将值负1加到从所述操作数导出的部分乘积。
7.如权利要求1所述的方法,其中输出所述饱和结果包含不管所述乘法运算的所述乘积如何而迫使所述乘法运算的输出变成饱和结果。
8.如权利要求7所述的方法,其中迫使乘法运算的所述输出变成饱和结果包含响应于检测到将导致溢出的所述操作数而在所述乘法运算输出与所述饱和结果之间进行选择。
9.一种预饱和乘法器,其包含:
乘法器电路,其操作以使包含乘数及被乘数的两个操作数相乘,并输出其乘积;及
溢出预检测电路,其操作以在所述乘法器电路中检测将导致溢出的操作数。
10.如权利要求9所述的乘法器,其中所述溢出预检测电路检测所述操作数位字段中可表示的最大负值。
11.如权利要求9所述的乘法器,其中所述乘法器电路包含布思再编码器,其操作以将所述乘数再编码成位群组,每一位群组将所述被乘数的正或负倍数选择为部分乘积,所述布思再编码器进一步操作以响应于所述溢出预检测电路而更改一个或一个以上位群组以在所述乘法器中产生饱和结果。
12.如权利要求11所述的乘法器,其中所述布思再编码器操作以响应于所述溢出预检测电路而迫使最低有效经再编码位群组选择负零。
13.如权利要求11所述的乘法器,其进一步包含并行加法器,其操作以将所述部分乘积相加并为通过所述经布思再编码的位群组所选择的负部分乘积加上值1,所述并行加法器进一步操作以响应于所述溢出预检测电路而抑制为负零加上值1。
14.如权利要求9所述的乘法器,其中所述乘法器电路操作以响应于所述溢出预检测电路而从所述乘积中减去值1。
15.如权利要求9所述的乘法器,其进一步包含输出选择器,其操作以响应于所述溢出预检测电路而输出来自所述乘法器电路的所述乘积或预定饱和结果。
CN2007800026442A 2006-01-20 2007-01-22 预饱和固定点乘法器 Active CN101371221B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/336,358 US8082287B2 (en) 2006-01-20 2006-01-20 Pre-saturating fixed-point multiplier
US11/336,358 2006-01-20
PCT/US2007/060816 WO2007085012A2 (en) 2006-01-20 2007-01-22 Pre-saturating fixed-point multiplier

Publications (2)

Publication Number Publication Date
CN101371221A true CN101371221A (zh) 2009-02-18
CN101371221B CN101371221B (zh) 2012-05-30

Family

ID=38015402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800026442A Active CN101371221B (zh) 2006-01-20 2007-01-22 预饱和固定点乘法器

Country Status (10)

Country Link
US (1) US8082287B2 (zh)
EP (1) EP1974253A2 (zh)
JP (2) JP5203972B2 (zh)
KR (1) KR100958224B1 (zh)
CN (1) CN101371221B (zh)
BR (1) BRPI0707147A2 (zh)
CA (1) CA2635119C (zh)
RU (1) RU2408057C2 (zh)
TW (1) TWI396130B (zh)
WO (1) WO2007085012A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316071B2 (en) * 2009-05-27 2012-11-20 Advanced Micro Devices, Inc. Arithmetic processing unit that performs multiply and multiply-add operations with saturation and method therefor
US8892621B2 (en) * 2011-12-19 2014-11-18 Lsi Corporation Implementation of negation in a multiplication operation without post-incrementation
KR20130111721A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 부분 곱 생성기의 부스코드 생성방법, 컴퓨터 시스템 및 그 매체와 디지털 신호프로세서
US9323498B2 (en) * 2013-03-13 2016-04-26 Wisconsin Alumni Research Foundation Multiplier circuit with dynamic energy consumption adjustment
US9747074B2 (en) 2014-02-25 2017-08-29 Kabushiki Kaisha Toshiba Division circuit and microprocessor
KR101644039B1 (ko) * 2015-06-11 2016-07-29 에스케이텔레콤 주식회사 고정소수점 연산 방법 및 고정소수점 연산 장치
US11327718B2 (en) * 2020-03-19 2022-05-10 Kabushiki Kaisha Toshiba Arithmetic circuitry for power-efficient multiply-add operations
JP7381426B2 (ja) 2020-03-19 2023-11-15 株式会社東芝 演算回路

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6162937A (ja) * 1984-09-04 1986-03-31 Toshiba Corp 乗算器
JPH01267728A (ja) 1988-04-19 1989-10-25 Ricoh Co Ltd 乗算器
US5220525A (en) 1991-11-04 1993-06-15 Motorola, Inc. Recoded iterative multiplier
US5793315A (en) * 1996-05-31 1998-08-11 Motorola, Inc. Bit-serial digital expandor
JP3315042B2 (ja) 1996-11-20 2002-08-19 株式会社リコー 乗算装置
JPH11126157A (ja) 1997-10-24 1999-05-11 Matsushita Electric Ind Co Ltd 乗算方法および乗算回路
EP0992885B1 (en) 1998-10-06 2005-12-28 Texas Instruments Incorporated Multiplier accumulator circuits
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
JP3530418B2 (ja) 1999-05-13 2004-05-24 Necエレクトロニクス株式会社 乗算装置
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US7058830B2 (en) 2003-03-19 2006-06-06 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US7689641B2 (en) 2003-06-30 2010-03-30 Intel Corporation SIMD integer multiply high with round and shift
US20080098057A1 (en) * 2004-08-26 2008-04-24 Daisuke Takeuchi Multiplication Apparatus

Also Published As

Publication number Publication date
TW200736989A (en) 2007-10-01
JP2009524169A (ja) 2009-06-25
RU2008134127A (ru) 2010-02-27
WO2007085012A2 (en) 2007-07-26
US20070174379A1 (en) 2007-07-26
JP5086466B2 (ja) 2012-11-28
JP5203972B2 (ja) 2013-06-05
CA2635119A1 (en) 2007-07-26
RU2408057C2 (ru) 2010-12-27
US8082287B2 (en) 2011-12-20
CA2635119C (en) 2013-07-30
TWI396130B (zh) 2013-05-11
BRPI0707147A2 (pt) 2011-04-19
JP2011248904A (ja) 2011-12-08
KR100958224B1 (ko) 2010-05-17
WO2007085012A3 (en) 2008-01-24
KR20080089640A (ko) 2008-10-07
EP1974253A2 (en) 2008-10-01
CN101371221B (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
CN101371221B (zh) 预饱和固定点乘法器
CN107273090A (zh) 面向神经网络处理器的近似浮点乘法器及浮点数乘法
EP3447634A1 (en) Non-linear function computing device and method
US5148386A (en) Adder-subtracter for signed absolute values
GB2532309A (en) Standalone floating-point conversion unit
CN101326486B (zh) 进行浮点数的除法运算或平方根运算的运算装置和运算方法
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
JP5640081B2 (ja) 飽和を伴う整数乗算および乗算加算演算
CN105302519B (zh) 用于执行浮点平方根运算的装置和方法
US20090164544A1 (en) Dynamic range enhancement for arithmetic calculations in real-time control systems using fixed point hardware
Lewin et al. Theory and design of digital computer systems
Burud et al. Design and Implementation of FPGA Based 32 Bit Floating Point Processor for DSP Application
US6151616A (en) Method and circuit for detecting overflow in operand multiplication
KR102208274B1 (ko) 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛
Boldo et al. Emulating round-to-nearest ties-to-zero “augmented” floating-point operations using round-to-nearest ties-to-even arithmetic
JP2010218197A (ja) 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム
Pande et al. Design and implementation of floating point divide-add fused architecture
Gollamudi et al. Design Of High Performance IEEE-754 Single Precision (32 bit) Floating Point Adder Using VHDL
US5742533A (en) Method and apparatus for modulus error checking
RU2562411C1 (ru) Устройство для вычисления модуля комплексного числа
US11604646B2 (en) Processor comprising a double multiplication and double addition operator actuable by an instruction with three operand references
Shekhawat et al. PHAc: P osit H ardware Ac celerator for Efficient Arithmetic Logic Operations
Kornerup et al. Computing integer powers in floating-point arithmetic
Aswani et al. Area Efficient Floating Point Addition Unit With Error Detection Logic
George Improved architecture for floating-point four-term dot product unit

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