[go: up one dir, main page]

CN1215862A - 计算方法和计算装置 - Google Patents

计算方法和计算装置 Download PDF

Info

Publication number
CN1215862A
CN1215862A CN98103377A CN98103377A CN1215862A CN 1215862 A CN1215862 A CN 1215862A CN 98103377 A CN98103377 A CN 98103377A CN 98103377 A CN98103377 A CN 98103377A CN 1215862 A CN1215862 A CN 1215862A
Authority
CN
China
Prior art keywords
precision
double
bit
multiplicand
multiplier
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.)
Pending
Application number
CN98103377A
Other languages
English (en)
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1215862A publication Critical patent/CN1215862A/zh
Pending legal-status Critical Current

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/52Multiplying; Dividing
    • 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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/49936Normalisation mentioned as feature only
    • 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/49994Sign extension
    • 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

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

在一二进制定点数系统中,其中,最高有效位是符号位,十进制小数点位于最高有效位和比最高有效位低一位的位之间,用于数位位置对准装置的电路规模被减小,并以非常高的效率实现一双精度乘法。通过应用一单精度乘法设备,获得一双精度被乘数的高位字/低位字与一双精度乘数的高位字/低位字的乘积。在获得的乘积上执行一数位位置对准加法操作,以获得一双精度乘法数据。在这种情况下,在十进制小数点之前设置至少两位数位,从而允许以比双精度的位宽度大至少一位的位宽度获得双精度被乘数的高位字/低位字与双精度乘数的高位字/低位字的每一乘积。

Description

计算方法和计算装置
本发明涉及一种通过应用一个单精度乘法设备执行双精度乘法的计算方法和计算装置。
常规上,已知一种双精度乘法系统,在该系统中,双精度被乘数的高位字/低位字和双精度乘数的高位字/低位字的乘积通过应用一个单精度乘法设备来获得,并且在每一乘积上执行一个数位位置对准相加操作,从而获得双精度乘法结果。例如,该系统已在日本专利公开文本(Kokai)No.HEI8-30439中公开。在日本专利公开文本(Kokai)No.HEI8-30439公开的现有技术例子中,安排了用于保存一个双精度乘数的低位字的最高有效位的装置,并且该双精度乘数的低位字的最高有效位被用在该双精度乘数的高位字的编码中,这样双精度乘数的低位字被看作一个带符号二进制。为了执行双精度被乘数的低位字的乘法,该系统带有乘法装置,该乘法装置具有即使当被乘数是无符号二进制时允许一乘法运算的功能。因此,现有技术可以实现双精度乘法,而不会降低精度。
然而,在日本专利公开文本(Kokai)No.HEI8-30439公开的现有技术例子中,当乘法装置将被乘数看作为一个无符号二进制时,假定正数的符号指示位于比被乘数的最高有效位高一位的位上。因此,乘法结果的符号的数位位置与被乘数是一个带符号二进制的乘法结果的符号的数位位置不同。因而,在双精度被乘数的高位字/低位字与双精度乘数的高位字/低位字的乘积的相加中数位位置对准的移位数是不同的,从而现有技术例子存在一个问题,就是用于数位位置对准装置的电路规模将变大。
本发明的一个目的是提供一种能够解决上述问题的计算方法和计算装置,在其中,用于数位位置对准装置的电路规模可以减小,并且可以以非常高的效率实现双精度乘法。
本发明的计算方法的特征在于,在一个二进制定点数系统中,最高有效位是符号位,十进制小数点在最高有效位和一位低位之间,当一个双精度被乘数的高位字/低位字和一个双精度乘数的高位字/低位字的乘积通过应用一个单精度乘法设备来获得,并且在获得的乘积上执行数位位置对准相加操作以获得双精度乘法结果时,在十进制小数点前设置至少两位数位,从而允许以一个比双精度的位宽度至少大一位的位宽度获得双精度被乘数的高位字/低位字和双精度乘数的高位字/低位字的每一乘积。
如上所述,当在十进制小数点前设置至少两位数位时,用于以一个比双精度的位宽度至少大一位的位宽度获得的每一乘积的数位位置对准的移位数被相对地限定到相同的位宽度。因此,用于数位位置对准装置的电路规模将减小,并且可以高效地实现双精度乘法。
通过在十进制小数点前设置至少三位数位,可以以一个比双精度的位宽度大两位、三位或更多位的位宽度获得一个双精度被乘数的高位字/低位字和一个双精度乘数的高位字/低位字的每一乘积。这仅仅是以位宽度大一位获得的乘积的符号扩展,因而其结果只是电路规模的增大。因此,为了以一个比双精度的位宽度大一位的位宽度获得乘积,在十进制小数点前设置两位数位通常是足够的。在下文中,对本发明的计算方法的描述将在以一个比双精度的位宽度大一位的位宽度来获得一个双精度被乘数的高位字/低位字和一个双精度乘数的高位字/低位字的乘积这个假定下进行。
在该计算方法中,当例如要获得双精度被乘数的低位字和双精度乘数的低位字的乘积时,一个其中的正数的符号位指示被加到比双精度被乘数的低位字的最高有效位高一位的数位上的数据与一个其中的双精度乘数的低位字的最高有效位是符号位的数据相乘,将值“0”加到比该乘法结果的最低有效位低一位的数位上,并且将相加的结果作为一个所要求的乘积输出。
当例如要获得双精度被乘数的高位字和双精度乘数的低位字的乘积时,一个其中的双精度被乘数的高位字的最高有效位的符号位受一位符号扩展支配的数据与一个其中的双精度乘数的低位字的最高有效位是符号位的数据相乘,将值“0”加到比该乘法结果的最低有效位低一位的数位上,并且将相加的结果作为一个所要求的乘积输出。
当例如要获得双精度被乘数的低位字和双精度乘数的高位字的乘积时,一个其中的正数的符号位指示被加到比双精度被乘数的低位字的最高有效位高一位的数位上的数据与一个其中的与双精度被乘数的低位字的最高有效位具有相同值的数据被加到双精度乘数的高位字的最低有效位的数位上的数据相乘,将值“0”加到比该乘法结果的最低有效位低一位的数位上,并且将相加的结果作为一个所要求的乘积输出。
当例如要获得双精度被乘数的高位字和双精度乘数的高位字的乘积时,一个其中的双精度被乘数的高位字的最高有效位的符号位受一位符号扩展支配的数据与一个其中的与双精度被乘数的低位字的最高有效位具有相同值的数据被加到双精度乘数的高位字的最低有效位的数位上的数据相乘,将值“0”加到比该乘法结果的最低有效位低一位的数位上,并且将相加的结果作为一个所要求的乘积输出。
通常使用的单精度乘法设备执行两个单精度数的相乘,获得的相乘结果是位宽度比双精度的位宽度小一位的数据。由于十进制小数点的对准和以双精度的位宽度输出的结果,值“0”被加到比乘法结果的最低有效位低一位的数位上,并且双精度的数据作为乘积被输出。
用于获得一个双精度被乘数的高位字/低位字和一个双精度乘数的高位字/低位字的乘积的单精度乘法设备在一个比被乘数的最高有效位高一位的数位上执行符号扩展,或者增加一个正数的符号位指示。因此,乘法结果的位宽度与双精度的位宽度相同。然而,即使在执行了符号扩展或增加了一个正数的符号位指示时,被乘数的十进制小数点的位置不变。因此,由上面提到的单精度乘法设备获得的乘法结果在十进制小数点之前具有至少两位数位,这样则该结果带有比由常规的单精度乘法设备获得的乘法结果多一位的数据。在上面提到的单精度乘数中,考虑到数位位置之间的关系,值“0”被如上所述地加到比乘法结果的最低有效位低一位的数位上,这样则该结果在十进制小数点之前有两位数位,从而以比双精度的位宽度大一位的位宽度获得一乘积。
本发明的计算装置通过应用一个执行两个带符号二进制定点数数据的乘法的单精度乘法设备来执行双精度乘法,其特征在于,该装置包括:MSB保存装置,用于保存一乘数的最高有效位;数据选择装置,用于选择性地输出MSB保存装置的保存数据和值“0”中的一个;乘数编码装置,用于通过应用乘数和数据选择装置的输出数据对乘数进行编码,以及用于输出编码乘数;乘法装置,当被乘数判断信号无效时,用于获得一被乘数和乘数编码装置的输出数据的乘法结果,同时在一个为被乘数的最高有效位的符号位上执行一位符号扩展,以及,当被乘数判断信号有效时,用于获得一被乘数和乘数编码装置的输出数据的乘法结果,同时将一正数的符号位指示加到比被乘数的最高有效位高一位的数位上,并且用于输出该乘法结果,在该结果中在十进制小数点之前至少存在两位数位,并且该结果因此具有比双精度的位宽度至少大一位的位宽度;加法装置,用于执行为乘法装置的输出数据的加数与具有比双精度的位宽度至少大一位的位宽度的被加数的相加,并且用于输出具有比双精度的位宽度至少大一位的位宽度的加法结果;加法结果保存装置,用于保存加法装置输出的加法结果;以及数位位置对准装置,用于选择加法结果保存装置的保存数据和值“0”中的一个,并且用于执行数位位置对准操作,还用于输出作为加法装置的被加数的运算结果。
依据这个结构,乘法装置输出在十进制小数点之前具有至少两位数位的乘法结果,并因而具有比双精度的位宽度至少大一位的位宽度。因此,用于每一乘法乘积的数位位置对准的移位数被相对地限定到相同的位宽度。因此,用于数位位置对准装置的电路规模可以被减小,并且可以高效地实现双精度乘法。
在该计算装置中,在执行双精度乘法期间,例如,MSB保存装置运行使得,当要获得双精度乘数的低位字和双精度被乘数的高位字/低位字的乘积时,保存双精度乘数的低位字的最高有效位。
在该计算装置中,在执行双精度乘法期间,例如,数据选择装置运行,其结果是,当要获得双精度乘数的低位字和双精度被乘数的高位字/低位字的乘积时,值“0”被有选择地输出,以及,当要获得双精度乘数的高位字和双精度被乘数的高位字/低位字的乘积时,由MSB保存装置保存的双精度乘数的低位字的最高有效位被有选择地输出。
在该计算装置中,在执行双精度乘法期间,例如,乘数编码装置运行,其结果是,当要获得双精度乘数的低位字和双精度被乘数的高位字/低位字的乘积时,由数据选择装置选择的输入的双精度乘数的低位字和值为“0”的输出数据被根据布斯(Booth)算法编码,然后输出,以及,当要获得双精度乘数的高位字和双精度被乘数的高位字/低位字的乘积时,由MSB保存装置保存并由数据选择装置选择的双精度乘数的低位字的最高有效位的输出数据被根据布斯算法编码,然后输出。
在该计算装置中,例如,乘法装置包括部分乘积产生装置,当被乘数判断信号有效时,用于判断输入的被乘数是双精度被乘数的低位字,并获得被乘数和乘数编码装置的输出数据的部分乘积,同时将一个正数的符号位指示加到比被乘数的最高有效位高一位的数位上,以及,当被乘数判断信号无效时,用于判断输入的被乘数是双精度被乘数的高位字,并获得被乘数和乘数编码装置的输出数据的部分乘积,同时在为被乘数的最高有效位的符号位上执行一位符号扩展。乘法装置可以包括至少两组部分乘积产生装置,计算作为多个部分乘积产生装置的输出数据的部分乘积的总和,在对准数位位置的同时,将一值为“0”数据加到比部分乘积总和的结果的最低有效位低一位的数位上,并输出相加结果,作为所要求的乘积。
在该计算装置中,配置了用于临时保存乘法装置的输出数据、并输出保存数据作为加法装置的加数的乘法结果保存装置,并且乘法装置和加法装置可以并行运行。依据这种结构,可以缩短运行时间。
在该计算装置中,乘数编码装置可以具有将作为一个输入数据的乘数的最低有效位强制设置为值“0”的功能,乘法装置可以具有将作为一个输入数据的被乘数的最低有效位强制设置为值“0”的功能。
本发明的目的是高效地执行高精度的双精度乘法。在一些当前正在实际使用的应用中,定义了标准,以便使用低精度的双精度乘法。例如,这种应用包括用在数字便携电话中的声音编码处理。
由于如上所述提供了分别将乘数和被乘数的最低有效位强制设置为值“0”的功能,可以得到与使用低精度的双精度乘法的应用的兼容性。
在该说明书中,低精度的双精度乘法指的是一种双精度乘法,当在执行双精度乘法期间要运行采用例如双精度乘数的低位字和双精度被乘数的低位字的数据的乘法时,预先生成在其中双精度乘数的低位字或双精度被乘数的低位字被右移一位、并且一正数的符号位指示被加到最高有效位的数位上的数据,并且当用这些数据代替双精度乘数的低位字和双精度被乘数的低位字的数据时,执行该乘法。双精度乘数和双精度被乘数的符号位分别相应于双精度乘数的高位字和双精度被乘数的高位字的最高有效位。双精度乘数的低位字和双精度被乘数的低位字是没有符号位、只包含数据位的数据。
一个通常的处理带符号二进制定点数的单精度乘法设备被构造为不能处理只包含数据位的数据。为了遵循这一点,因为双精度乘数的低位字与双精度被乘数的低位字被看作是正数,所以将一正数的符号位指示加到这些数据上。当没有采用进一步的对策时,位宽度比单精度的位宽度大一位。因此,通过执行一位右移操作,舍弃最低有效位的数据,从而将位宽度压缩到单精度的位宽度。换句话说,双精度乘数的低位字和双精度被乘数的低位字的最低有效位的数据被舍弃了,因此精度被相应于这种舍弃的程度所损害。由一位右移操作引起的数位位置的移动被并入双精度乘数的高位字/低位字与双精度被乘数的高位字/低位字的乘积的加法中的数位位置对准操作中。
在该计算装置中,MSB保存装置可以由用于选择性地保存乘数的最高有效位和值“0”中的一个的装置代替用于保存为一带符号二进制的乘数的最高有效位的装置来实现。根据这种结构,在双精度数据与双精度数据的乘法和双精度数据与单精度数据的乘法中,命令可以共用,从而减少了命令的数目。
图1是显示本发明的第一实施例的计算装置的结构的方框图;
图2是显示一双精度乘数的数据划分的示意图;
图3是显示一被乘数的高位字和一乘数的高位字/低位字的乘积的数据输出格式的示意图;
图4是显示一被乘数的低位字和一乘数的高位字/低位字的乘积的数据输出格式的示意图;
图5是显示在现有技术中的数位对准位移位的示意图;
图6是显示本发明的第一实施例中的数位对准位移位的示意图;
图7是显示乘数编码装置的电路结构的电路图;
图8是显示乘法装置的结构的方框图;
图9是显示乘法装置的被乘数扩展装置和部分乘积产生装置的电路结构的电路图;
图10是显示一乘法操作的示意图;
图11是显示在本发明的第二实施例中的乘数编码装置的电路结构的电路图;以及
图12是显示在本发明的第二实施例中的乘法装置的结构的方框图。
[第一实施例]
在下文将参考附图说明本发明的第一实施例。图1是显示本发明的一个实施例的计算装置的结构的示意图。
参看图1,MSB保存装置10保存一个带符号二进制定点数的乘数的最高有效位。数据选择装置11选择性地输出MSB保存装置11的输出和值“0”中的一个。乘数编码装置12根据二阶布斯算法对乘数和数据选择装置11的输出进行编码。
乘法装置13接收一个带符号二进制定点数的被乘数,乘数编码装置12的输出,以及一个被乘数判断信号C1。当被乘数判断言号C1具有值“0”或为无效时,乘法装置判断被乘数是一双精度被乘数的高位字,并获得被乘数和乘数编码装置12的输出数据的相乘结果,同时在作为被乘数的最高有效位的符号位上执行一位符号扩展。与之相反,当被乘数判断信号C1具有值“1”或为有效时,乘法装置判断被乘数是一双精度被乘数的低位字,并获得被乘数和乘数编码装置12的输出数据的相乘结果,同时将一个作为一正数的符号指示的具有值“0”的符号位加到比被乘数的最高有效位的符号位高一位的数位上。一个在其中具有值“0”的数据被加到比获得的乘法结果的最低有效位低一位的数位上的数据,作为一个在十进制小数点之前具有至少两位数位并因此具有比双精度的位宽度至少大一位的位宽度的乘积被输出。
在本发明中,假定一单精度数据和一双精度数据由二进制定点数系统来表示,在该系统中,最高有效位是符号位,并且十进制小数点在最高有效位和比最高有效位低一位的位之间。通常,在十进制小数点之前只有一个作为符号位的位。换句话说,表述“在十进制小数点之前具有至少两位数位”和“具有比双精度的位宽度至少大一位的位宽度”是同一意思。
加法装置14执行一个作为乘法装置13的输出的加数和一个在十进制小数点之前具有至少两位数位、并因此具有比双精度的位宽度大至少一位的位宽度的被加数的相加,并输出一个在十进制小数点之前具有至少两位数位、并因此具有比双精度的位宽度大至少一位的位宽度的加法结果。加法结果保存装置15保存加法装置14的输出。当数位位置对准信号C2是(C2-1,C2-0)=(0,1)时,数位位置对准装置16不执行移位操作,输出加法结果保存装置15的输出。当数位位置对准信号C2是(C2-1,C2-0)=(1,0)时,数位位置对准装置将加法结果保存装置15的输出右移16位后输出。当数位位置对准信号C2是(C2-1,C2-0)=(0,0)时,数位位置对准装置16选择值“0”,并输出该值。
符号C2-1和C2-0分别表示数位位置对准信号C2的位元素(bitcomponent)。参考数码20表示作为要在本发明的计算装置中执行的操作命令的源和目的的存储装置。
下面的说明是基于未采用乘法结果保存装置17和选择装置18和19这个假设来进行的,则乘法装置13的输出直接提供给加法装置14,加法结果保存装置15的结果直接提供给数位位置对准装置16。乘法结果保存装置17和选择装置18和19将在后面进行说明。
在图1中,提供给乘数编码装置12的一乘数控制信号C3以及提供给乘法装置13的一被乘数控制信号C4在第二实施例中需要,而在第一实施例中不需要。并且,提供给MSB保存装置10的值“0”和一保存数据选择信号C5在第三实施例中需要,而在第一实施例中不需要。
下面描述这样构成的计算装置的运行。为了简化的缘故,假定一16位二进制定点数是单精度数据,一32位二进制定点数是双精度数据。
下面将说明双精度数据和双精度数据的乘法。一双精度被乘数包括高位字XH和低位字XL,一双精度乘数包括高位字YH和低位字YL。当在双精度乘数的低位字YL上执行乘法时,数据选择装置11选择值“0”,而当在双精度乘数的高位字YH上执行乘法时,数据选择装置11选择MSB保存装置10的输出。当存双精度被乘数的低位字XL上执行乘法时,被乘数判断信号C1具有值“1”或是有效的,而而当在双精度被乘数的高位字XH上执行乘法时,被乘数判断信号C1具有值“0”或是无效的。
首先,获得双精度被乘数的低位字XL和双精度乘数的低位字YL的乘积(下文中表示为XL×YL)。双精度乘数的低位字YL提供给乘数编码装置12,该字的最高有效位保存在MSB保存装置10中。数据选择装置11选择值“0”,并将选择的值输出至乘数编码装置12。乘数编码装置12根据布斯算法对双精度乘数的低位字YL和数据选择装置11的输出数据编码。数据选择装置11输出的值“0”被用于对双精度乘数的低位字YL的低两位编码。被乘数判断信号C1具有值“1”或是有效的。即,该信号表明输入的被乘数是双精度被乘数的低位字XL。响应于被乘数判断信号C1,乘法装置13将一个用作一正数的符号指示的具有值“0”的符号位加到比双精度被乘数的低位字XL的最高有效位高一位的数位上,获得结果数据与乘数编码装置12的输出的乘积。获得的乘积以32位宽度输出。
此时,数位位置对准信号C2是(C2-1,C2-0)=(0,0),数位位置对准装置16选择值“0”并输出该值。加法装置14输出乘法装置13输出的乘积XL×YL与数位位置对准装置16输出的值“0”的相加结果。加法结果保存装置15保存加法装置14输出的乘积XL×YL。
接着,获得双精度被乘数的高位字XH和双精度乘数的低位字YL的乘积(下文中表示为XH×YL)。双精度乘数的低位字YL提供给乘数编码装置12,该字的最高有效位保存在MSB保存装置10中。数据选择装置11选择值“0”,并将选择的值输出至乘数编码装置12。乘数编码装置12根据布斯算法对双精度乘数的低位字YL和数据选择装置11的输出数据编码。数据选择装置11输出的值“0”被用于对双精度乘数的低位字YL的低两位编码。被乘数判断信号C1具有值“0”或是无效的。即,该信号表明输入的被乘数是双精度被乘数的高位字XH。响应于被乘数判断信号C1,乘法装置13在为双精度被乘数的高位字XH的最高有效位的符号位上执行一位符号扩展,获得结果数据与乘数编码装置12的输出的乘积。获得的乘积以32位宽度输出。
此时,数位位置对准信号C2是(C2-1,C2-0)=(1,0),数位位置对准装置16选择在加法结果保存装置15中保存的乘积XL×YL,并将该乘积右移16位以执行数位位置对准,输出该乘积。加法装置14输出乘法装置13输出的乘积XH×YL与数位位置对准装置16输出的XL×YL的相加结果。加法结果保存装置15保存加法装置14输出的乘积XL×YL+XH×YL。
接着,获得双精度被乘数的低位字XL和双精度乘数的高位字YH的乘积(下文中表示为XL×YH)。双精度乘数的高位字YH提供给乘数编码装置12。数据选择装置11选择MSB保存装置10的输出,并将由MSB保存装置10保存的双精度乘数的低位字YL的最高有效位的数据输出到乘数编码装置12。乘数编码装置12根据布斯算法对双精度乘数的高位字YH和数据选择装置11的输出数据编码。双精度乘数的低位字YL的最高有效位的数据被用于对双精度乘数的高位字YH的低两位编码。被乘数判断信号C1具有值“1”或是有效的。即,该信号表明输入的被乘数是双精度被乘数的低位字XL。响应于被乘数判断信号C1,乘法装置13将一个用作一正数的符号指示的具有值“0”的符号位加到比双精度被乘数的低位字XL的最高有效位高一位的数位上,获得结果数据与乘数编码装置12的输出的乘积。获得的乘积以32位宽度输出。
此时,数位位置对准信号C2是(C2-1,C2-0)=(0,1),数位位置对准装置16选择在加法结果保存装置15中保存的乘积XL×YL+XH×YL,并输出该乘积。加法装置14输出乘法装置13输出的乘积XL×YH与数位位置对准装置16输出的XL×YL+XH×YL的相加结果。加法结果保存装置15保存加法装置14输出的XL×YL+XH×YL+XL×YH。
最后,获得双精度被乘数的高位字XH和双精度乘数的高位字YH的乘积(下文中表示为XH×YH)。双精度乘数的高位字YH提供给乘数编码装置12。数据选择装置11选择MSB保存装置10的输出,并将由MSB保存装置10保存的双精度乘数的低位字YL的最高有效位的数据输出到乘数编码装置12。乘数编码装置12根据布斯算法对双精度乘数的高位字YH和数据选择装置11的输出数据编码。数据选择装置1输出的乘数的低位字YL的最高有效位的数据被用于对乘数的高位字YH的低两位编码。被乘数判断信号C1具有值“0”或是无效的。即,该信号表明输入的被乘数是双精度被乘数的高位字XH。响应于被乘数判断信号C1,乘法装置13在为双精度被乘数的高位字XH的最高有效位的符号位上执行一位符号扩展,获得结果数据与乘数编码装置12的输出的乘积。获得的乘积以32位宽度输出。
此时,数位位置对准信号C2是(C2-1,C2-0)=(1,0),数位位置对准装置16选择在加法结果保存装置15中保存的乘积XL×YL+XH×YL+XL×YH,并将该乘积右移16位以执行数位位置对准,输出该乘积。加法装置14执行乘法装置13输出的乘积XH×YH与数位位置对准装置16输出的XL×YL+XH×YL+XL×YH的加法,并输出加法结果。加法装置输出的加法结果XL×YL+XH×YL+XL×YH+XH×YH就是所要求的双精度乘法的乘积。
在该实施例中,当要获得一双精度被乘数的高位字XH/低位字XL与一双精度乘数的高位字YH/低位字YL的乘积,以及要执行一数位位置对准加法操作时,在获得双精度乘数的高位字YH的乘积之前,至少已获得一个该双精度产生的低位字YL的乘积,并且双精度乘数的低位字YL的最高有效位保存在MSB保存装置10中。在该实施例中,执行获得乘积XH×YL和XL×YH的乘法和数位位置对准加法操作的顺序可以颠倒。在一双精度数据和一单精度数据的乘法中,单精度数据可以被看作一个没有低位字的双精度数据,则获得该双精度数据的低位字的乘积的过程可以省略。换句话说,这个乘法可以以与一双精度数据和一双精度数据的乘法相同的方式来执行。
上面的说明是基于未采用乘法结果保存装置17和选择装置18和19这个假设来进行的。可选择地,在乘法装置13和加法装置14之间可以设置用于保存乘法结果的乘法结果保存装置17,以使得乘法操作和加法操作能并行执行。图1中所示的选择装置18和19用于当乘法设备和双精度加法设备要独立地操作时从一总线提供数据,因此与本发明并不直接相关。
下面将参考图2至10进一步详细描述该实施例的组成部分的内部构造和操作。
图2是表示在执行一双精度乘法期间一双精度乘数的数据划分的示意图。在图2中,在一位上附加的波浪标记表示该位具有一负权(negativeweight)。在顶部显示的数据串显示一双精度乘数。标记Y31至Y0分别表示各数位的数据。最高有效位Y31是符号位,具有一负权。表述“具有一负权”表示当该位为“1”时其值为“-1”。中部显示的是双精度乘数基于布斯算法的修正的示意图。在一个框中的三个数据表明一个框的编码值,并且在偶数数位上具有在-2至+2范围内的值。因为本发明的一个目的是通过应用单精度乘法设备高效地执行高精度的双精度乘法,所以一双精度乘数不能由一饮操作依据布斯算法进行编码。因此,考虑在双精度乘数的高位字和低位字的交界处的数据。可以看到,当双精度乘数的低位字的最高有效位Y15可以被用在双精度乘数的高位字的编码操作时,双精度乘数的编码可以符合要求地执行。底部表示在本发明中的双精度乘数的数据。首先执行获得双精度乘数的低位字的乘积的计算。在该计算过程中,双精度乘数的低位字的最高有效位Y15被保存。当然后要获得双精度乘数的高位字的乘积时,被保存的双精度乘数的低位字的最高有效位Y15用在双精度乘数的高位字的编码操作中。在图2中,YH和YL分别表示双精度乘数的高位字和低位字。
图3是表示在执行双精度被乘数的高位字XH和双精度乘数的高位字YH/低位字YL的乘法中的数据输出格式的示意图。在图3中,在一位上附加的波浪标记表示该位具有一负权,并且标记S表示一符号位。在有被遮盖的S时,被遮盖的标记S表示已经经过一位符号扩展的符号位,而在比被遮盖的标记S低一位的数位上的标记S表示该位不是符号位,而是与符号位具有相同值的数据位。标记0表示值“0”作为一数据被增加。在顶部显示的值21,20,2-1,...,2-31表示相应数位的定标。
当执行两个单精度数据的常规乘法时,所期望的乘法结果是一个在数位20具有符号位、在数位2-1至2-30具有数据位的31位数据。因此,将值“0”加到数位2-31,结果作为一32位双精度数据输出。
在本发明中,被乘数的高位字YH已经经过一位符号扩展,并且所期望的乘法结果作为一个其在数位20上的符号位是对数位21的一位符号扩展的数据被获得。当该结果以32位的位宽度输出时,最好在由图3中的“32位输出”表示的范围内执行该输出,以达到该输出与在上述的单精度数据的乘法的执行中的数据输出相匹配。在这种情况下,数位20用作符号位。在本发明中,通过在十进制小数点之前设置至少两位数位,输出具有比双精度的位宽度至少大一位的位宽度的数据。数据可以以2、3或更多位的位宽度输出。这只是以大一位的位宽度获得的乘积的符号扩展,并且因此仅仅导致了电路规模的增加。因此,下面的说明将基于在十进制小数点之前至少存在两位数位这个假设来进行,这样则以比双精度的位宽度大一位的33位的位宽度获得所期望的乘积。
当一双精度乘数的数据如图2所示被划分时,双精度乘数的低位字YL的最高有效位Y15可以被看作具有负权的数据。因此,当要获得双精度被乘数的高位字XH与双精度乘数的低位字YL的乘积时,可以依据布斯算法对双精度乘数的低位字YL编码。与之相反,当要获得双精度被乘数的高位字XH与双精度乘数的高位字YH的乘积时,双精度乘数的低位字YL的最高有效位Y15的数据被用在双精度乘数的高位字YH的编码操作中。由于上述原因,在图3中,双精度乘数的低位字YL以与一单精度的带符号二进制定点数相同的方式来表示。在双精度乘数的高位字YH的乘法的情况下,双精度乘数的低位字YL的最高有效位Y15的数据必须在图中显示。该描述的目的是显示数据输出格式。因此,为了简化的缘故,该数据在图中未显示。
图4是显示在执行双精度被乘数的低位字XL和双精度乘数的高位字YH/低位字YL的乘法中的数据输出格式的示意图。在图4中,在一位上附加的波浪标记表示该位具有一负权,并且标记S表示一符号位。标记0表示值“0”作为一数据被增加。在顶部显示的值21,20,2-1,...,2-31表示相应数位的定标。
在本发明中,双精度被乘数的低位字的最高有效位是数据位,因此具有值“0”的符号位作为一正数的符号指示被加到高一位的数位上。所期望的乘法结果是一个在数位21具有符号位、在数位20至2-30具有数据位的32位数据。当该结果要以32位的位宽度输出时,必须在由图4中的“32位输出”表示的范围内执行该输出。当该输出范围与图3中所示的“32位输出”范围相比较时,可以看到,每一输出数位位置移位一位。换句话说,可以看到,当进行“32位输出”时,需要用于转换输出范围的装置。另一方面,在本发明中,因为通过在十进制小数点之前至少设置两位数位,输出具有比双精度的位宽度大一位的的33位的位宽度的数据,所以可以以与图3中显示的“33位输出”的数位位置严格相同的数位位置的关系输出数据。由于在乘法中获得的数据在数位2-31不存在,如结合图3的说明所述,所以将值“0”加到数位2-31,输出该结果。
与图3的情况相同,双精度乘数的低位字YL以与一单精度的带符号二进制定点数相同的方式来表示。在双精度乘数的高位字YH的乘法的情况下,双精度乘数的低位字YL的最高有效位Y15的数据必须在图中显示。该描述的目的是显示数据输出格式。因此,为了简化的缘故,该数据在图中未显示。
图5是显示以32位的位宽度输出乘法结果的现有技术中的数位对准位移位的示意图。当数据如图3和4中所示以32位的位宽度输出时,在一双精度被乘数的高位字XH的乘积中的数位位置的关系从该双精度被乘数的低位字XL的乘积中的数位位置移位一位。因此,如图5所示,在要获得一双精度乘法结果的情况下,必须以不同的移位数来执行数位位置对准。
图6是显示以33位的位宽度输出乘法结果的本发明中的数位对准位移位的示意图。当数据以33位的位宽度输出时,在一双精度被乘数的高位字XH的乘积中的数位位置的关系与在该双精度被乘数的低位字XL的乘积中的相对相同。因此,如图6所示,可以看到,在要获得一双精度乘法结果的情况下,用于数位位置对准的移位数被相对地限定到单精度的位宽度。结果,数位位置对准装置16的电路规模可以比以32位的位宽度输出乘法结果的现有技术例子中的电路规模制造得更小。
图7是显示乘数编码装置12的电路结构的电路图。在图7中,200代表用于产生一个编码值的布斯编码装置。一乘数依据二阶布斯算法被编码。编码结果BEi具有五个值-2、-1、0、1和2中的一个。每个值由1Ei、2Ei和SEi三位表示。每一值的绝对值由2Ei和1Ei两位表示,该值的符号由SEi表示,其中当该值为负时,SEi设置为1。NSEi是SEi的反信号,用于产生部分乘积。在该实施例中,i是0,2,4,6,8,10,12或14,并且数据选择装置11的输出是Y-1。
图8是显示乘法装置13的结构的方框图。在图8中,300代表被乘数扩展装置,301代表部分乘积产生装置,302代表部分乘积求和装置。当被乘数判断信号C1具有值“0”时,被乘数扩展装置300输出被乘数的最高有效位X[15],而当被乘数判断信号C1具有值“1”时输出值“0”。部分乘积产生装置301根据乘数编码装置12和被乘数扩展装置300的输出以及被乘数X产生部分乘积。部分乘积求和装置302执行由部分乘积产生装置301产生的部分乘积的求和,以获得一乘法结果。由于在最低有效位或位0的数位上没有作为乘法结果的数据,则在该位上增加值“0”,输出求和结果。
图9是显示乘法装置13的被乘数扩展装置300和部分乘积产生装置301的电路结构的电路图。在图9中,303代表产生所产生的部分乘积的符号位的位反转的部分乘积符号位反转产生电路,304代表每一位的部分乘积产生电路,305代表产生一校正项PPH的部分乘积校正项产生电路。当被乘数判断信号C1具有值“0”时,被乘数的符号位实际上被输出到比被乘数的最高有效位高一位的数位上,而当被乘数判断信号C1具有值“1”时,值“0”被输出到该数位上。当编码结果BEi为正时,实际上选择已经经过符号扩展的被乘数,而当编码结果为负时,选择位反转。当编码结果BEi为1或-1时,一复合(composite)门输出相应位的选择值;而当编码结果BEi为2或-2时,输出低一位的选择值;当编码结果BEi为0时,输出0。每一复合门的输出是要产生的部分乘积的位n的输出PP0n。通过对控制信号NSEi、2Ei和1Ei进行NAND运算而产生2的补码的校正项PPH。这适用于当编码结果BEi为-1或-2时的情况。校正项被输出到要产生的部分乘积的最低有效位的数位上。
图10是显示一乘法操作的示意图。在图10中,标记D、E、F、G、H、I、J和K分别表示八个产生的部分乘积,符号Z表示被乘数X和乘数X的乘积。在图10的顶部显示的值21,20,2-1,...,2-31表示相应数位的定标。在数据的标记指示上的横线表示位反转。在图10中显示的值“1”是要被加到符号扩展位置上的数据。
通过图10中显示的由横线表示的每一部分乘积的符号位的位反转和值“1”的加法,进行一个与对于数位位置对准必须执行的符号扩展相当的操作。这种方法在现有技术中经常采用,因此在本说明书中不再详细描述。如图10所示,在乘法装置13中,通过部分乘积产生装置301产生部分乘积,并通过部分乘积求和装置302对部分乘积求和。由于十进制小数点的位置,图10中的在附加到各个部分乘积组成部分的数码之间的关系在附加到输出数据Z的组成部分的数码的基础上移位一位。由于每一部分乘积在数2-31位上没有数据,在Z0上总输出值“0”。
在表1中列出了在该实施例的计算装置中用在双精度数据与双精度数据的乘法和双精度数据与单精度数据的乘法的执行中的命令,在该实施例中,用于保存乘法结果的乘法结果保存装置17放置在乘法装置13和加法装置14之间。表11    双精度数据×双精度数据2    命令3    编码操作4    乘法操作(一个周期)5    加法操作(两个周期)6    双精度数据×单精度数据
通过顺序地执行在表1中所示的命令A至D,相继地获得四个乘积XL×YL,XH×YL,XL×YH和XH×YH,这些乘积经过一数位位置对准操作,从而执行双精度数据与双精度数据的乘法。通过顺序地执行在表1中所示的命令E和F,相继地获得两个乘积XL×YH和XH×YH,这些乘积经过一数位位置对准操作,从而执行双精度数据与单精度数据的乘法。表1显示了由MSB保存装置10、数据选择装置11和乘数编码装置12执行的乘数编码操作、由乘法装置13执行的乘法操作、以及由加法装置14和数位位置对准装置16执行的加法操作的数据流和内容。在表1中,R0表示MSB保存装置10,R1表示乘法结果保存装置17,R2表示加法结果保存装置15。
在表1中,每个命令是一两周期命令。编码操作列显示了数据存储进MSB保存装置10,以及由数据选择装置11选择的数据。在括号中的说明(在命令C和D中的YL[15])显示了在执行相应命令期间在MSB保存装置10中保存的数据。乘法操作列显示了由乘法装置13获得的乘法结果。加法操作列显示了由数位位置对准装置16选择的数据、用于数位位置对准的16位右移操作的存在与否、以及在加法装置14中获得的加法结果。
如上所述,依据第一实施例,通过在十进制小数点之前设置至少两位数位,以比双精度的位宽度至少大一位的位宽度输出乘法装置13的乘法结果,例如,以33位的位宽度输出。因此,用于数位位置对准的移位数被相对地限定到单精度的位宽度。结果,数位位置对准装置16的电路规模能够比现有技术例子中的电路规模制造得更小。特别地,在被乘数的低位字被用作源的乘法中需要用于以32位精度输出乘法结果的一位右移装置不是必须的。
当配置了乘法结果保存装置17、并行操作乘法装置13和加法装置14时,操作时间可以被缩短。
[第二实施例]
下面将说明本发明的第二实施例。
第二实施例的结构使得,在第一实施例中,乘数编码装置12具有当乘数控制信号C3具有值“1”时强制设置输入的乘数的最低有效位为值“0”的功能,乘法装置13具有当被乘数控制信号C4具有值“1”时强制设置输入的被乘数的最低有效位为值“0”的功能。
图11是显示在第二实施例中的乘数编码装置12的电路结构的电路图。在图11中,201代表乘数控制装置,当乘数控制信号C3具有值“1”时,用于强制设置输入的乘数的最低有效位为值“0”。在该乘数控制装置201中,当乘数控制信号C3具有值“1”时,乘数的最低有效位Y0通过乘数的最低有效位Y0与乘数控制信号C3的逻辑反转的“AND”操作被强制设置为值“0”。
图12是显示在第二实施例中的乘法装置13的结构的方框图。在图12中,306代表被乘数控制装置,当被乘数控制信号C4具有值“1”时,用于强制设置输入的被乘数的最低有效位为值“0”。在该被乘数控制装置306中,被乘数控制信号C4具有值“1”时,被乘数的最低有效位X0通过被乘数的最低有效位X0与被乘数控制信号C4的逻辑反转的“AND”操作被强制设置为值“0”
下面说明这样构成的计算装置的操作。
当通过采用一单精度乘法设备来执行双精度乘法时,经常采用下面的方法。为了将一乘数的低位字和一被乘数的低位字看作为单精度的带符号二进制定点数,执行一位右移操作,并且用作一正数的符号指示的具有值“0”的符号位被加到最高有效位,而舍弃最低有效位。因此,双精度数据与双精度数据的乘法结果具有31-位×31-位精度,而双精度数据与单精度数据的乘法结果具有31-位×16-位精度。
在第一实施例中,双精度数据与双精度数据的乘法可以以32-位×32-位精度来执行,而双精度数据与单精度数据的乘法可以以32-位×16-位精度来执行。在第二实施例中,可以通过将少量的电路增加到第一实施例的结构中,或者通过将乘数控制装置201增加到乘数编码装置12,以及将被乘数控制装置306增加到乘法装置13,来执行31-位×31-位精度和31-位×16-位精度的双精度乘法。
当采用第二实施例时,本发明的计算装置带有强制设置乘数和被乘数的最低有效位为值“0”的功能,借此可以达到与采用低精度的双精度乘法的应用的兼容。
[第三实施例]
下面说明本发明的第三实施例。
第三实施例的结构使得在第一实施例中的MSB保存装置10具有下述功能,当保存的数据选择信号C5具有值“1”时,选择和保存乘数的最高有效位,当保存的数据选择信号C5具有值“0”时,选择和保存值“0”。
在表2中列出了在该实施例的计算装置中用在双精度数据与双精度数据的乘法和双精度数据与单精度数据的乘法的执行中的命令,在该实施例中,用于保存乘法结果的乘法结果保存装置17放置在乘法装置13和加法装置14之间。
通过顺序地执行在表2中所示的命令A至D,相继地获得四个乘积XL×YL,XH×YL,XL×YH和XH×YH,这些乘积经过一数位位置对准操作,从而执行双精度数据与双精度数据的乘法。通过顺序地执行在表2中所示的命令A(E)和D(F),相继地获得两个乘积XL×YH和XH×YH,这些乘积经过-数位位置对准操作,从而执行双精度数据与单精度数据的乘法。表2显示了由MSB保存装置10、数据选择装置11和乘数编码装置12执行的乘数编码操作、由乘法装置13执行的乘法操作、以及由加法装置14和数位位置对准装置16执行的加法操作的数据流和内容。在表2中,R0表示MSB保存装置10,R1表示乘法结果保存装置17,R2表示加法结果保存装置15。
在表2中,每个命令是一两周期命令。编码操作列显示了数据存储进MSB保存装置10,以及由数据选择装置11选择的数据。在括号中的说明(在命令C和D中的YL[15]和在命令D(F)中的0)显示了在执行相应命令期间在MSB保存装置10中保存的数据。乘法操作列显示了由乘法装置13获得的乘法结果。加法操作列显示了由数位位置对准装置16选择的数据、用于数位位置对准的16位右移操作的存在与否、以及在加法装置14中获得的加法结果。
当将此表与上面的表1进行比较时,在表2中的命令A使得要被存储进MSB保存装置10中的数据值为“0”。根据此结构,命令A和D的结合可以实现双精度数据与单精度数据的乘法。因此,根据第三实施例,通过共用命令,可以减少在双精度数据与双精度数据的乘法和双精度数据与单精度数据的乘法中需要的命令数。

Claims (15)

1、一种在二进制定点数系统中的计算方法,在该二进制定点数系统中,最高有效位是符号位,十进制小数点位于最高有效位和比最高有效位低一位的位之间,在该计算方法中,通过应用一单精度乘法设备,获得一双精度被乘数的高位字/低位字与一双精度乘数的高位字/低位字的乘积,在获得的乘积上执行一数位位置对准加法操作,以获得一双精度乘法数据,其特征在于:
在十进制小数点之前设置至少两位数位,从而允许以比双精度的位宽度大至少一位的位宽度获得双精度被乘数的高位字/低位字与双精度乘数的高位字/低位字的每一乘积。
2、根据权利要求1的计算方法,其特征在于:当要获得双精度被乘数的低位字与双精度乘数的低位字的乘积时,所述单精度乘法装置执行
在比双精度被乘数的低位字的最高有效位高一位的数位上具有一正数的符号位指示、并且具有比单精度的位宽度大一位的位宽度的一数据与
具有单精度的位宽度、并且在其中双精度乘数的低位字的最高有效位是符号位的一数据的乘法,
将值为“0”的数据加到比具有双精度的位宽度的乘法结果的最低有效位低一位的数位上,并输出具有比双精度的位宽度大一位的位宽度的数据,作为双精度被乘数的低位字与双精度乘数的低位字的乘积。
3、根据权利要求1的计算方法,其特征在于:当要获得双精度被乘数的高位字与双精度乘数的低位字的乘积时,所述单精度乘法装置执行
在其中双精度被乘数的高位字的最高有效位的符号位经过一位符号扩展、并且具有比单精度的位宽度大一位的位宽度的一数据与
具有单精度的位宽度、并且在其中双精度乘数的低位字的最高有效位是符号位的一数据的乘法,
将值为“0”的数据加到比具有双精度的位宽度的乘法结果的最低有效位低一位的数位上,并输出具有比双精度的位宽度大一位的位宽度的数据,作为双精度被乘数的高位字与双精度乘数的低位字的乘积。
4、根据权利要求1的计算方法,其特征在于:当要获得双精度被乘数的低位字与双精度乘数的高位字的乘积时,所述单精度乘法装置执行
在比双精度被乘数的低位字的最高有效位高一位的数位上具有一正数的符号位指示、并且具有比单精度的位宽度大一位的位宽度的一数据与
具有单精度的位宽度、并且在其中将具有与双精度被乘数的低位字的最高有效位具有相同值的数据加到双精度乘数的高位字的最低有效位的数位上的一数据的乘法,
将值为“0”的数据加到比具有双精度的位宽度的乘法结果的最低有效位低一位的数位上,并输出具有比双精度的位宽度大一位的位宽度的数据,作为双精度被乘数的低位字与双精度乘数的高位字的乘积。
5、根据权利要求1的计算方法,其特征在于:当要获得双精度被乘数的高位字与双精度乘数的高位字的乘积时,所述单精度乘法装置执行
在其中双精度被乘数的高位字的最高有效位的符号位经过一位符号扩展、并且具有比单精度的位宽度大一位的位宽度的一数据与
具有单精度的位宽度、并且在其中将具有与双精度被乘数的低位字的最高有效位具有相同值的数据加到双精度乘数的高位字的最低有效位的数位上的一数据的乘法,
将值为“0”的数据加到比具有双精度的位宽度的乘法结果的最低有效位低一位的数位上,并输出具有比双精度的位宽度大一位的位宽度的数据,作为双精度被乘数的高位字与双精度乘数的高位字的乘积。
6、一种计算装置,通过应用一执行两个带符号二进制定点数数据的单精度乘法设备,执行一双精度乘法,其特征在于:所述装置包括
MSB保存装置,用于保存一乘数的最高有效位;
数据选择装置,用于选择性地输出所述MSB保存装置的保存数据和值“0”中的一个;
乘数编码装置,用于通过应用乘数和所述数据选择装置的输出数据对乘数进行编码,以及用于输出编码乘数;
乘法装置,用于接收一被乘数、所述乘数编码装置的输出数据和一被乘数判断信号,当被乘数判断信号无效时,用于获得被乘数与所述乘数编码装置的输出数据的乘法结果,同时在一个为被乘数的最高有效位的符号位上执行一位符号扩展,以及,当被乘数判断信号有效时,用于获得被乘数和所述乘数编码装置的输出数据的乘法结果,同时将一正数的符号位指示加到比被乘数的最高有效位高一位的数位上,并且用于输出该乘法结果,在该结果中在十进制小数点之前至少存在两位数位,并且该结果因此具有比双精度的位宽度至少大一位的位宽度;
加法装置,用于执行为乘法装置的输出数据的加数与具有比双精度的位宽度至少大一位的位宽度的被加数的相加,并且用于输出一加法结果,在该加法结果中,在十进制小数点之前至少存在两位数位,因此该结果具有比双精度的位宽度至少大一位的位宽度;
加法结果保存装置,用于保存所述加法装置输出的加法结果;以及
数位位置对准装置,用于选择所述加法结果保存装置的保存数据和值“0”中的一个,用于执行一数位位置对准操作,并且用于输出操作结果,作为所述加法装置的被加数。
7、根据权利要求6的计算装置,其特征在于:在执行一双精度乘法期间,当要获得双精度乘数的低位字与双精度被乘数的高位字/低位字的乘积时,所述MSB保存装置保存双精度乘数的低位字的最高有效位。
8、根据权利要求6的计算装置,其特征在于:在执行一双精度乘法期间,当要获得双精度乘数的低位字与双精度被乘数的高位字/低位字的乘积时,所述数据选择装置选择性地输出值“0”,以及,当要获得双精度乘数的高位字与双精度被乘数的高位字/低位字的乘积时,所述数据选择装置选择性地输出由所述MSB保存装置保存的双精度乘数的低位字的最高有效位。
9、根据权利要求6的计算装置,其特征在于:在执行一双精度乘法期间,当要获得双精度乘数的低位字和双精度被乘数的高位字/低位字的乘积时,所述乘数编码装置根据布斯算法对由所述数据选择装置选择的输入的双精度乘数的低位字和值为“0”的输出数据编码,然后输出被编码的字和数据,以及,当要获得双精度乘数的高位字和双精度被乘数的高位字/低位字的乘积时,所述乘数编码装置根据布斯算法对由所述MSB保存装置保存并由所述数据选择装置选择的双精度乘数的低位字的最高有效位的输出数据编码,然后输出被编码的数据。
10、根据权利要求6的计算装置,其特征在于:所述乘法装置包括部分乘积产生装置,当在执行双精度乘法期间被乘数判断信号有效时,用于判断输入的被乘数是双精度被乘数的低位字,并获得被乘数与所述乘数编码装置的输出数据的部分乘积,同时将一个正数的符号位指示加到比被乘数的最高有效位高一位的数位上,以及,当被乘数判断信号无效时,用于判断输入的被乘数是双精度被乘数的高位字,并获得被乘数和所述乘数编码装置的输出数据的部分乘积,同时在为被乘数的最高有效位的符号位上执行一位符号扩展。
11、根据权利要求6的计算装置,其特征在于:所述乘法装置包括至少两组部分乘积产生装置,计算作为所述多个部分乘积产生装置的输出数据的部分乘积的总和,在对准数位位置的同时,将一值为“0”的数据加到比部分乘积总和的结果的最低有效位低一位的数位上,并输出相加结果,作为所要求的乘积。
12、根据权利要求6的计算装置,其特征在于:所述装置还包括乘法结果保存装置,用于临时保存所述乘法装置的输出数据,并输出保存数据作为所述加法装置的加数,并且所述乘法装置和所述加法装置可以并行操作。
13、根据权利要求6的计算装置,其特征在于:所述乘数编码装置具有将作为一个输入数据的乘数的最低有效位强制设置为值“0”的功能。
14、根据权利要求6的计算装置,其特征在于:所述乘法装置具有将作为一个输入数据的被乘数的最低有效位强制设置为值“0”的功能。
15、根据权利要求6的计算装置,其特征在于:所述MSB保存装置通过由用于选择性地保存乘数的最高有效位和值“0”中的一个的装置替代用于保存乘数的最高有效位的装置来实现。
CN98103377A 1997-07-09 1998-07-09 计算方法和计算装置 Pending CN1215862A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP18388097 1997-07-09
JP183880/97 1997-07-09

Publications (1)

Publication Number Publication Date
CN1215862A true CN1215862A (zh) 1999-05-05

Family

ID=16143454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98103377A Pending CN1215862A (zh) 1997-07-09 1998-07-09 计算方法和计算装置

Country Status (6)

Country Link
US (1) US6233597B1 (zh)
EP (1) EP0890899B1 (zh)
KR (1) KR19990013698A (zh)
CN (1) CN1215862A (zh)
DE (1) DE69821408T2 (zh)
TW (1) TW436729B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011050624A1 (zh) * 2009-10-27 2011-05-05 北京飞天诚信科技有限公司 数据变换方法及装置
CN107423023A (zh) * 2017-08-10 2017-12-01 南京航空航天大学 一种16×16‑digit冗余十进制乘法器

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6434584B1 (en) * 1998-06-04 2002-08-13 Texas Instruments Incorporated Flexible accumulator register file for use in high performance microprocessors
US6484194B1 (en) * 1998-06-17 2002-11-19 Texas Instruments Incorporated Low cost multiplier block with chain capability
US6692534B1 (en) * 1999-09-08 2004-02-17 Sun Microsystems, Inc. Specialized booth decoding apparatus
US6912557B1 (en) * 2000-06-09 2005-06-28 Cirrus Logic, Inc. Math coprocessor
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
KR100402734B1 (ko) * 2001-12-21 2003-10-22 한국전자통신연구원 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법
US7401109B2 (en) * 2002-08-06 2008-07-15 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Multiplication of multi-precision numbers having a size of a power of two
US7447310B2 (en) * 2002-08-06 2008-11-04 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Lean multiplication of multi-precision numbers over GF(2m)
FR2853425B1 (fr) * 2003-04-07 2006-01-13 Atmel Corp Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur
US7266580B2 (en) * 2003-05-12 2007-09-04 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20060059221A1 (en) * 2004-09-10 2006-03-16 Cavium Networks Multiply instructions for modular exponentiation
JP4349265B2 (ja) * 2004-11-22 2009-10-21 ソニー株式会社 プロセッサ
JP2006227939A (ja) * 2005-02-17 2006-08-31 Matsushita Electric Ind Co Ltd 演算装置
US20070011222A1 (en) * 2005-07-07 2007-01-11 Dance Sherman M Floating-point processor for processing single-precision numbers
WO2008022307A2 (en) * 2006-08-18 2008-02-21 Conexant Systems, Inc. Systems and methods for implementing a double precision arithmetic memory architecture
US8495125B2 (en) * 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
US8566385B2 (en) * 2009-12-02 2013-10-22 International Business Machines Corporation Decimal floating point multiplier and design structure
US11847427B2 (en) 2015-04-04 2023-12-19 Texas Instruments Incorporated Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor
US9817791B2 (en) 2015-04-04 2017-11-14 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word
US10503474B2 (en) 2015-12-31 2019-12-10 Texas Instruments Incorporated Methods and instructions for 32-bit arithmetic support using 16-bit multiply and 32-bit addition
US10401412B2 (en) 2016-12-16 2019-09-03 Texas Instruments Incorporated Line fault signature analysis
FR3101982B1 (fr) * 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
US11599334B2 (en) * 2020-06-09 2023-03-07 VeriSilicon Microelectronics Enhanced multiply accumulate device for neural networks
US20230083270A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Mixed signal circuitry for bitwise multiplication with different accuracies

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH061438B2 (ja) 1984-04-26 1994-01-05 日本電気株式会社 倍精度乗算器
US4809212A (en) * 1985-06-19 1989-02-28 Advanced Micro Devices, Inc. High throughput extended-precision multiplier
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
US4876660A (en) 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
US5121431A (en) * 1990-07-02 1992-06-09 Northern Telecom Limited Processor method of multiplying large numbers
JPH05216626A (ja) 1992-02-03 1993-08-27 Nec Corp 乗算器
JP3096574B2 (ja) 1994-07-20 2000-10-10 松下電器産業株式会社 倍精度乗算を実行する方法及び演算装置
JP2765516B2 (ja) 1995-05-29 1998-06-18 日本電気株式会社 積和演算器
JP2705640B2 (ja) 1995-05-01 1998-01-28 日本電気株式会社 積和演算器
US5784305A (en) 1995-05-01 1998-07-21 Nec Corporation Multiply-adder unit
US5771186A (en) * 1995-06-07 1998-06-23 International Business Machines System and method for multiplying in a data processing system
US5764558A (en) * 1995-08-25 1998-06-09 International Business Machines Corporation Method and system for efficiently multiplying signed and unsigned variable width operands
US5751622A (en) 1995-10-10 1998-05-12 Chromatic Research, Inc. Structure and method for signed multiplication using large multiplier having two embedded signed multipliers
KR100222032B1 (ko) * 1996-12-24 1999-10-01 윤종용 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011050624A1 (zh) * 2009-10-27 2011-05-05 北京飞天诚信科技有限公司 数据变换方法及装置
CN107423023A (zh) * 2017-08-10 2017-12-01 南京航空航天大学 一种16×16‑digit冗余十进制乘法器
CN107423023B (zh) * 2017-08-10 2020-12-11 南京航空航天大学 一种16×16-digit冗余十进制乘法器

Also Published As

Publication number Publication date
KR19990013698A (ko) 1999-02-25
TW436729B (en) 2001-05-28
EP0890899B1 (en) 2004-02-04
DE69821408T2 (de) 2004-12-16
DE69821408D1 (de) 2004-03-11
US6233597B1 (en) 2001-05-15
EP0890899A3 (en) 2000-01-05
EP0890899A2 (en) 1999-01-13

Similar Documents

Publication Publication Date Title
CN1215862A (zh) 计算方法和计算装置
TWI783295B (zh) 乘法器及乘法運算方法
CN1735880A (zh) 用于执行计算操作的系统、方法及设备
JP5611923B2 (ja) ブース乗算方法及びシステムのための電力効率の良い符号拡張
CN1109990C (zh) 运算装置及运算方法
CN1928809A (zh) 用于执行浮点运算的系统、设备和方法
CN1735881A (zh) 用于执行计算操作的方法和系统以及一种设备
CN1503936A (zh) 部分逐位置换
CN1117763A (zh) 整数除法运算装置及整数除法运算方法
CN1570848A (zh) 使用进位存储加法的蒙哥马利模乘器及其方法
CN1821951A (zh) 算术单元
Al-Khaleel et al. Fast and compact binary-to-BCD conversion circuits for decimal multiplication
CN1826580A (zh) 具有初步饱和检测的加法或者减法运算单元
CN115982528A (zh) 基于Booth算法的近似预编码卷积运算方法及系统
CN1258710C (zh) 用于高效模数归约和模数乘法的电路和方法
CN1185606A (zh) 面向算术/移位操作的单指令多数据校正电路
CN102004627B (zh) 乘法舍入实现方法和装置
CN1786900A (zh) 基于改进的蒙哥马利算法的模乘器
CN1650254A (zh) 计算模数乘法之结果的装置及方法
CN1831753A (zh) 一种浮点乘法器及其兼容双精度和双单精度计算的方法
CN1265281C (zh) 浮点数的对数运算方法和装置
CN1735857A (zh) 用于完成乘法运算的方法、系统和设备
JP2000148447A (ja) 乗算器及びその演算方法
CN1136680A (zh) 有选择地执行无符号数值乘法或有符号数值乘法的乘法器
CN1809806A (zh) 改进的归约计算

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication