CN101300544B - 大数乘法方法和装置 - Google Patents
大数乘法方法和装置 Download PDFInfo
- Publication number
- CN101300544B CN101300544B CN2006800158095A CN200680015809A CN101300544B CN 101300544 B CN101300544 B CN 101300544B CN 2006800158095 A CN2006800158095 A CN 2006800158095A CN 200680015809 A CN200680015809 A CN 200680015809A CN 101300544 B CN101300544 B CN 101300544B
- Authority
- CN
- China
- Prior art keywords
- bit
- multiplicand
- multiplication
- vector
- numeral
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/525—Multiplying only in serial-serial fashion, i.e. both operands being entered serially
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一种用于将第一被乘数与第二被乘数相乘的带符号乘法方法及对应的装置。该装置将第一被乘数作为具有至少一个相应数字的第一向量存储在第一寄存器中,并将第二被乘数作为具有至少一个相应数字的第二向量存储在第二寄存器中,其中每个数字都具有预定数量的比特。该方法进一步将第一向量和第二向量的数字转换为比预定比特数少一个比特的对应数字。处理器用于执行上述被乘数的带符号乘法运算。
Description
技术领域
本发明涉及大数乘法领域,特别是,本发明涉及一种提供仅使用带符号算术的大数乘法的方法和装置。
背景技术
大数乘法被用于现有技术中已知的许多计算机算法。大数算术的常见用途包括公钥加密以及蒙哥马利乘法,其中对非常大的数(每个数都是一千比特的量级)执行大量乘法运算。
一个“大数”是指由处理器使用的N比特的整数,该处理器带有寄存器或者字长为W比特的宽度,其中N>2×W。术语“字长”是指单精度寄存器的比特数,或者处理器所使用的存储器宽度。一般的字长为W比特的处理器能够将两个W比特的字相乘,然后将结果存储在一个2×W比特的双宽度寄存器中。如果将被相乘的操作数的长度大于W比特,则需要一种专用的乘法算法。
图1是现有技术中使用纸和笔进行两个多位数相乘的乘法过程10的示例。每个数由两个十六进制的数字组成。第一个数是3B(用参考标号12指示),第二个数是CA(用参考标号14指示)。该乘法过程10开始仅将第二个数14的最低有效数字(LSD)与第一个数12的两个数字相乘以得到一个第一中间结果,该第一中间结果用参考标号16指示。
然后,执行同样的操作,用第二个数14的最高有效数字(MSD)乘以第一个数12的两个数字以得到一个第二中间结果。该第二中间结果,用参考标号18指示,被写在第一中间结果16的下面左移一位。
乘法过程10完成后,第一中间结果16与第二中间结果18的和是乘法的结果2E8E(用参考标号20指示)。
仅仅为了清楚起见这里使用十六进制数的乘法进行示例。现有技术中已知的计算机算法执行二进制数的乘法。
图2是现有技术中用于图1中所示的两个多字数乘法的计算机化乘法算法30的流程图。当使用计算机时,每个数字都用一个W比特的计算机字表示。术语“数字”是指一个大数的一部分,它有一个计算机字的长度。
通常,计算机化乘法算法30与现有技术中的过程10(见图1)的使用方式类似。然而,根据该计算机化乘法算法-在执行乘法算法的过程中每个中间相乘结果被加到一个结果向量,而根据图1中的乘法过程10-在最后步骤被相加之前,将各部分结果单独地保存。
在初始步骤32中,提供两个被乘数向量X和Y以及用于保存结果的结果向量Z。向量X,Y,Z都是W比特的字。输入向量X和Y的长度分别为max_x和max_y。一个双宽度寄存器r(由2×W比特构成)用于临时保存乘法结果。
步骤34中,结果向量Z被清零。
步骤36中,两个被乖数向量X和Y的内部变量i,j,c1和c2被清零。其中,i是第一被乘数的数字标号,j是第二被乘数的数字标号,c1是前一次乘法运算的高位字,c2是前一次加法运算的进位。
随后的步骤38,40,42,44,46和48构成主乘法循环。步骤38中,将两个数字相乘,并相加前一次乘法运算的高位字c1和前一次加法运算的进位c2。其结果临时保存在双宽度寄存器r中。
步骤40中,将乘法运算结果r的高位字保存到c1中。
下一步骤42中,计算加法进位并将其保存到c2中。
步骤44中,通过将其与乘法运算结果相加来更新结果向量元素Zi+j。由于每个结果向量元素的宽度都是W,只将r的低位字与元素Zi+j相加。
步骤46中,被乘数X的标号i被增加。
下一步骤48中,判断i的值是否大于输入向量X的长度。如果是,则该计算机化乘法算法转到步骤50。然而,如果为否,则该计算机化乘法算法返回到步骤38,重复执行主乘法循环。
步骤50中,通过将其与c1和c2相加来更新下一个结果字。
步骤52中,第二被乘数的标号j被增加,并将内部变量i,c1,c2清零。
下一步骤54中,判断内部变量j的值是否大于输入向量Y的长度。如果是(即,执行完max_x乘max_y次乘法运算后)则该计算机化乘法算法在步骤56终止,并将结果向量Z保存为最终的乘法结果。然而,如果为否,则该计算机化乘法算法重新从步骤38开始执行内部循环,将第一被乘数与第二被乘数的下一个字相乘。
现有技术中的计算机化乘法算法提供了一种基于无符号乘法运算的大数乘法。也就是,输入向量X,Y以及结果向量Z都包括每个数字有W比特的正数(无符号位)。
但是,现有技术中已知的一些数字信号处理器(DSP)的算术仅支持带符号运算。例如,现有技术中不支持无符号算术(也就是,仅支持带符号算术)的数字信号处理器的一个列子是LSI逻辑公司提供的ZSP200DSP。
在这类数字信号处理器中,每个字的最高有效位(MSB)通常是符号位。如果使用如前所述的现有技术中的计算机化乘法算法并执行带符号乘法运算则将产生错误的结果。例如:当字长为8比特(W=8)时,对数0xFF和0xFF执行一个无符号乘法运算的结果为0xFE01(255×255是65025)。如果仅支持带符号运算,那么数255代表-1。数-1与-1的乘法运算结果是+1,该结果与使用一个无符号运算所得的结果不同。
现有技术中已知的能够执行带符号运算的处理器所使用的编译器只能通过执行一系列操作将带符号乘法的运算结果转换为无符号运算结果来解决上述问题。
现有技术中已知的一种典型的转换过程如下所述:
定义:
W是寄存器中的比特数,或者存储器的宽度。
A和B是被乘数。每个被乖数均为W比特长。
r是一个双宽度的变量(2×W比特),用于存储A×B的无符号运算结果。
rs是两个被乘数A和B的带符号乘积(2×W比特)。
如果A的最高有效位是1(认为A是负数),那么~A被定义为A的二进制补码。注意:0-~A=A。
当执行带符号乘法运算A×B时,其中A是一个负数(A的最高有效位是1),A被定义为A=2w-~A。用这个数乘以B,其结果是r=(2w-(~A))×B=2w×B+-(~A×B)=2w×B+rs。
因此,为了对一个负数A与一个正数B执行无符号乘法运算,可执行A与B的带符号乘法运算,然后将B×2w的值与该结果相加。注意:执行B×2w的过程就等于将B向左移W位的过程(B×2w=B<<W)。类似的,如果两个被乘数A和B都是负数,则结果为r=2w×A+2w×B+rs或者r=(A<<W)+(B<<W)+rs。
总之,用仅支持带符号的运算单元执行无符号乘法的现有技术中一般的处理器执行以下操作:
(1)执行被乘数A和B的带符号乘法算法;和
(2)检查每个被乘数(A和B)的符号位。如果被乘数是负数,则将另一个被乘数左移W比特,并将移动后的另一被乘数与带符号运算的结果相加。
由于一个数是负数的可能性为50%,现有的处理器每执行一次乘法运算平均需要执行一次双字长的数的进位和一次双字长的数的加法。这样的处理器还必须检查每个被乘数,判断它是正数还是负数。
这些额外的算术运算使得仅支持带符号运算的处理器与可执行无符号乘法运算的处理器相比,乘法性能明显降低。当使用数字信号处理器的时候,情况甚至会更糟。因为数字信号处理器能够在单次运算中执行乘法和加法运算,而需要执行上述额外的算术运算则不能利用数字信号处理器在一次运算中同时执行乘法和加法指令的优势。
为了克服现有技术中的上述缺陷,普遍认为提供一种使用仅支持带符号运算的处理器来执行高效的大数乘法的装置与方法是必要,并且是非常有利的。
发明内容
因此,本发明的主要目的是提供一种使用仅支持带符号运算的处理器来执行高效的大数乘法的装置与方法以克服现有技术中的上述缺陷。
根据本发明,提供了一种将第一被乘数和第二被乘数相乘的无符号乘法方法。该方法包括:(a)将第一被乘数作为具有至少一个相应数字的第一向量存储到第一寄存器,其中每个数字都具有预定数量的比特;(b)将第二被乘数作为具有至少一个相应数字的第二向量存储到第二寄存器,其中每个数字都具有预定数量的比特;(c)将第一向量的每个数字都转换为比预定的比特数少一个比特的对应的数字;(d)将第二向量的每个数字都转换为比预定的比特数少一个比特的对应的数字;(e)使用一个处理器,该处理器中所有乘法运算仅限于带符号乘法运算,通过将对应于第一被乘数的每个数字与对应于第二被乘数的每个数字相乘的步骤,产生一个带符号乘法运算结果。
优选的,上述产生步骤包括对带符号乘法运算结果的数字的中间值执行屏蔽操作。图4的方框86中的元素Zi+j表示带符号乘法运算结果的数字的中间值。
优选的,该方法进一步包括:(f)将带符号乘法运算结果转换为对应的无符号乘法运算结果。
根据本发明,还提供了一种将第一被乘数与第二被乘数相乘的装置,该装置包括:(a)第一寄存器,用于将第一被乘数作为具有至少一个相应数字的第一向量进行存储,其中每个数字都具有预定数量的比特;(b)第二寄存器,用于将第二被乘数作为具有至少一个相应数字的第二向量进行存储,其中每个数字都具有预定数量的比特;(c)处理器,其所有乘法运算仅限于带符号乘法运算,该处理器用于将第一向量和第二向量分别转换为具有至少一个相应数字的对应的转换后的第一向量和对应的转换后的第二向量,每个数字都比预定的比特数少一个比特;以及将对应的转换后的第一向量的比特与对应的转换后的第二向量的比特相乘,产生一个带符号乘法运算结果。
优选的,该处理器使用现有的第一和第二寄存器在原位执行第一向量和第二向量的转换。可选的,也可以使用一个第三存储单元来存储对应的转换后的第一向量和对应的转换后的第二向量。
优选的,处理器执行一个屏蔽操作以对带符号乘法运算结果的数字的中间值进行屏蔽。
从以下附图和描述将显见本发明的其它特征和优点。
附图说明
为了更好地理解本发明,结合附图对其实施例进行说明,所有附图中相同的标号代表相应的部分或元素。
图1是现有技术中使用纸和笔进行两个多位数相乘的乘法运算过程的示例;
图2是现有技术中用于实现图1中所示的两个多字数乘法的计算机化乘法算法的流程图;
图3是现有技术中用于将W比特的字转化为W-1比特的字的转化过程的方框图,其中以W=8为例;
图4是本发明的方法的流程图;以及
图5是本发明的装置的高级示意方框图。
具体实施方式
本发明提供了一种新颖的、使用仅支持带符号运算的处理器来执行高效的大数乘法的装置与方法。该发明的优选方式包括以下两个主要步骤:首先,将以W比特的字表示的被乘数转换为W-1比特的字,从而使得其最高有效位变为一个“0”比特。该转换过程能确保符号位(最高有效位)一直为0。然后,使用现有技术中已知的乘法算法执行多位数乘法过程。
由于被乘数现在都是正数,所以无需执行额外的算术运算序列以将带符号乘法的结果转换为无符号运算结果(现有技术中的乘法算法则需要该过程)。
因此,对于很大的被乘数而言,使用本发明的方法与使用现有技术中已经知道的标准乘法技术相比,能够明显地减小开销。而且,本发明利用数字信号处理器能够在单次运算中执行加法和乘法的能力可以提供甚至更高的乘法运算性能。
为了与现有技术中的其他乘法系统兼容,可选的,本发明可将乘法运算过程产生的字长为W-1比特的结果转换回预定的字表示(此处为W比特表示)。上述转换使得至少一个输出字的最高有效位可以为“1”。
现在参照图3,给出了现有技术中将多个W比特的字转换为多个W-1比特的字的转换过程60的方框图,此处以W=8为例。
一个n比特的被乘数的字数是其中W是每个字的比特数(例如,W=8)。例如,第一个字w1的8个比特被表示为A0(最低有效位),A1,A2,A3,A4,A5,A6和A7(最高有效位)。第二个字w2的8个比特被表示为B0(最低有效位),B1,B2,B2,B4,B5,B6和B7(最高有效位)。第三个字w3的8个比特被表示为C0(最低有效位),C1,C2,C3,C4,C5,C6和C7(最高有效位),等等。
第一步操作是将用于保存被乘数的最低有效数字(LSD)的第一个字w1的最高有效位(MSB)A7复制到第二字w2的最低有效位(LSB)B0,并且将第二个字w2的比特B0,B1,B2,B3,B4和B5均左移一位。
第二步操作是针对第二个字w2实施的,但是现在将其两个最高有效位B6和B7复制到第三个字w3的两个最低有效位C0和C1,并且将第三个字的比特C0,C1,C2,C3和C4左移两位。
实际上,如果在原位执行上述W比特到W-1比特的转换过程(例如使用一个常用的缓存),那么这些操作应该从最高有效数字到最低有效数字进行。例如,在第二步操作中将两个最高有效位B6和B7复制到第三个字的两个最低有效位C0和C1,应在将第三个字w3的C0,C1,C2,C3和C4左移两位之前进行。
参看图4,是本发明的方法70的流程图。
在初始步骤72中,执行图3中所示的转换过程60以将一个以W比特的字表示的被乘数转换为以W-1比特的字表示。输入的操作数X和Y都被转换为新的以W-1比特的字表示(也就是,每个用于保存被乘数的字都是W-1比特)。该转换过程可以使用同一个用于存储以“初始的”W比特的字表示的输入被乘数的输入缓冲器(如果被分配了足够的存储空间),或者也可以使用单独分配的缓冲器。输入向量X和Y的长度分别为max_x和max_y。
max_x和max_y按照以下方式计算: 且 其中nx表示操作数X的长度(也就是比特数),ny表示操作数Y的长度(也就是比特数)。
下一步骤74中,提供一个用于保存结果的结果向量Z。一个双宽度寄存器r(由2×W比特构成)用于临时保存乘法结果。在本发明中,将掩码mask定义为2W-1-1(其最高有效位是“0”,其余所有位都是“1”)。屏蔽操作在此被定义为将一个W比特的字与该掩码执行逻辑“与”的操作。
以下步骤76,78,80,82和84与图2中所示的计算机化乘法算法30的步骤34,36,38,40和42相同。
步骤76中,结果向量Z被清零。
步骤78中,将两个被乘数向量X和Y的内部变量i,j,c1和c2清零。其中,i是第一被乘数的数字标号,j是第二被乘数的数字标号,c1是前一次乘法运算的高位字,c2是前一次加法运算的进位。
步骤80,82,84,86,88和90构成主乘法循环。步骤80中,将两个数字相乘,并相加前一次乘法运算的高位字c1和前一次加法运算的进位c2。其结果临时保存在双宽度寄存器r中。
步骤82中,将乘法运算结果r的高位字保存到c1。
下一步骤84中,计算加法进位并将其保存到c2。
步骤86中,通过将其与乘法运算结果相加来更新结果向量元素Zi+j。由于每个结果向量元素的宽度都是W,只将r的低位字与元素Zi+j相加。然后,对结果向量元素Zi+j执行“屏蔽操作”。由于执行带符号算术运算时与结果向量元素Zi+j的符号位(最高有效位)无关,屏蔽操作(W-1比特“1”掩码)能够确保结果向量元素Zi+j的符号位(最高有效位)被清零。
以下步骤88,90,92,94,96和98与图2所示现有技术中的步骤46,48,50,52,54和56相似。
步骤88中,被乘数X的标号i被增加。
步骤90中,判断i的值是否大于输入向量X的长度。如果是,则该多位数乘法过程转到步骤92;然而,如果为否,则该多位数乘法过程返回到步骤78,重复执行主乘法循环。
步骤92中,通过将其与c1和c2的值相加来更新下一个结果字。
步骤94中,第二被乘数的标号j被增加,并将内部变量i,c1,c2清零。
下一步骤96中,判断内部变量j的值是否大于输入向量Y的长度。如果是(即,执行完max_x乘max_y次乘法运算后)则将保存最终乘法运算结果的带符号结果向量Z转换为一个无符号结果向量。例如,这利用将多个W-1比特的字转换为多个W比特的字的现有技术中的转换过程(例如,图3所示过程的相反转换过程)来实现。然而,如果为否,则该多位数乘法过程重新从步骤80开始执行内部循环,将第一被乘数与第二被乘数的下一个字相乘。
参看图5,是本发明的装置100的高级示意框图。寄存器102用于将第一被乘数存储为每个数字以W比特表示的第一向量。寄存器104用于将第二被乘数存储为每个数字以W比特表示的第二向量。
处理器106仅限于带符号乘法运算,用于将第一被乘数和第二被乘数的每一个数字转换为以W-1比特表示的形式,然后将第一被乘数的转换后的数字与第二被乘数的转换后的数字相乘,产生一个带符号乘法运算结果。
优选的,提供一存储单元103(例如,RAM,寄存器等)用于分别存储第一被乘数的转换后的数字以及第二被乘数的转换后的数字。处理器106所产生的带符号乘法运算结果也以每个字表示为W-1比特的形式被保存在存储单元103中。
优选的,处理器106还用于将带符号乘法运算结果转换为无符号乘法运算结果,并将该无符号乘法运算结果以每个字表示为W比特的形式保存到存储单元103中。
可选的,将第一被乘数和第二被乘数转换为以W-1比特表示的转换过程可以由处理器106在原位进行(也就是,分别使用寄存器102和寄存器104)。
以上用一个特定的乘法算法为例对本发明的实施方式进行了描述。然而,应理解,其他任何能够在执行高效的大数乘法之前将一个被乘数的每个W比特的字转换为W-1比特的字的方法和装置实施方式都认为被包括在本发明的范围之内。
以上所述给出了本发明的某些特定实施例,应被理解为并非对本发明的限定,由于进一步的修改现将被提供给本领域技术人员,其意味着这样的修改将落入所附权利要求的保护范围内。
Claims (6)
1.一种用于将第一被乘数与第二被乘数相乘的无符号乘法方法,该方法包括以下步骤:
(a)将第一被乘数作为具有至少一个相应数字的第一向量存储到第一寄存器,每个所述数字都具有预定数量的比特;
(b)将第二被乘数作为具有至少一个相应数字的第二向量存储到第二寄存器,每个所述数字都具有所述预定数量的比特;
(c)将所述第一向量的所述数字都转换为比所述预定比特数少一个比特的对应的数字;
(d)将所述第二向量的所述数字都转换为比所述预定比特数少一个比特的对应的数字;
(e)使用其所有乘法运算限于带符号乘法运算的处理器,通过将与所述第一被乘数对应的每个所转换的数字和与所述第二被乘数对应的每个所转换的数字相乘,产生一个带符号乘法运算结果,以及
(f)将所述带符号乘法运算结果转换为相应的无符号乘法运算结果。
2.根据权利要求1所述的方法,其中所述带符号乘法运算结果包括多个数字,并且其中所述产生包括对所述带符号乘法运算结果的所述多个数字的中间值执行屏蔽。
3.一种于将第一被乘数与第二被乘数相乘的装置,该装置包括:
(a)第一寄存器,用于将第一被乘数作为具有至少一个相应数字的第一向量进行存储,每个所述数字都具有预定数量的比特;
(b)第二寄存器,用于将第二被乘数作为具有至少一个相应数字的第二向量进行存储,每个所述数字都具有所述预定数量的比特;以及
(c)处理器,其所有乘法运算限于带符号乘法运算,该处理器用于:将所述第一向量和所述第二向量分别转换为具有至少一个相应数字的对应的转换后的第一向量和对应的转换后的第二向量,每个所述数字都比所述预定比特数少一个比特;将所述对应的转换后的第一向量的比特与所述对应的转换后的第二向量的比特相乘,以产生一个带符号乘法运算结果;以及将所述带符号乘法运算结果转换为相应的无符号乘法运算结果。
4.根据权利要求3所述的装置,其中所述处理器在原位执行所述第一向量和所述第二向量的所述转换。
5.根据权利要求3所述的装置,进一步包括:
(d)存储单元,用于存储所述对应的转换后的第一向量和所述对应的转换后的第二向量。
6.根据权利要求3所述的装置,其中所述带符号乘法运算结果包括多个数字,并且其中所述处理器执行屏蔽操作以对所述带符号乘法运算结果的数字的中间值进行屏蔽。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67890705P | 2005-05-09 | 2005-05-09 | |
US60/678,907 | 2005-05-09 | ||
PCT/IL2006/000551 WO2006120680A2 (en) | 2005-05-09 | 2006-05-09 | Large number multiplication method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101300544A CN101300544A (zh) | 2008-11-05 |
CN101300544B true CN101300544B (zh) | 2012-05-30 |
Family
ID=37396968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800158095A Expired - Fee Related CN101300544B (zh) | 2005-05-09 | 2006-05-09 | 大数乘法方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7672989B2 (zh) |
EP (1) | EP1880275A4 (zh) |
JP (1) | JP4728392B2 (zh) |
KR (1) | KR101247164B1 (zh) |
CN (1) | CN101300544B (zh) |
WO (1) | WO2006120680A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028015B2 (en) * | 2007-08-10 | 2011-09-27 | Inside Contactless S.A. | Method and system for large number multiplication |
CN104115115B (zh) | 2011-12-19 | 2017-06-13 | 英特尔公司 | 用于多精度算术的simd整数乘法累加指令 |
CN104011661B (zh) * | 2011-12-23 | 2017-04-12 | 英特尔公司 | 用于大整数运算的向量指令的装置和方法 |
KR101615976B1 (ko) | 2014-12-18 | 2016-04-28 | 한국건설기술연구원 | 공학용 목재 및 콘크리트 슬래브를 구비한 합성바닥판 구조 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347326B1 (en) * | 1999-03-02 | 2002-02-12 | Philips Electronics North America Corporation | N bit by M bit multiplication of twos complement numbers using N/2+1 X M/2+1 bit multipliers |
KR20020047509A (ko) * | 2000-12-13 | 2002-06-22 | 신경욱 | 여분 이진 부분곱을 이용한 복소수 승산방법 및 이를적용한 복소수 승산기 |
US6708193B1 (en) * | 2000-02-21 | 2004-03-16 | Hewlett-Packard Development Company, L.P. | Linear summation multiplier array implementation for both signed and unsigned multiplication |
US6742012B2 (en) * | 2000-12-27 | 2004-05-25 | Arm Limited | Apparatus and method for performing multiplication operations |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH061438B2 (ja) | 1984-04-26 | 1994-01-05 | 日本電気株式会社 | 倍精度乗算器 |
JPS62236030A (ja) * | 1986-04-08 | 1987-10-16 | Nec Corp | 乗算回路 |
JP2583599B2 (ja) * | 1989-02-14 | 1997-02-19 | 富士通株式会社 | 2進整数乗算処理方法 |
JPH03241421A (ja) * | 1990-02-20 | 1991-10-28 | Yamaha Corp | 乗算器 |
JPH04367932A (ja) | 1991-06-17 | 1992-12-21 | Oki Electric Ind Co Ltd | 倍精度乗算方法 |
US5509129A (en) * | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
EP1302848B1 (en) * | 1994-12-01 | 2006-11-02 | Intel Corporation | A microprocessor having a multiply operation |
US6014684A (en) * | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
US6029184A (en) | 1997-06-17 | 2000-02-22 | Sun Microsystems, Inc. | Method of performing unsigned operations with signed instructions in a microprocessor |
JPH1185471A (ja) * | 1997-07-09 | 1999-03-30 | Matsushita Electric Ind Co Ltd | 演算方法および演算装置 |
US6144980A (en) * | 1998-01-28 | 2000-11-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication |
US6026483A (en) * | 1997-10-23 | 2000-02-15 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously performing arithmetic on two or more pairs of operands |
US6038583A (en) * | 1997-10-23 | 2000-03-14 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products |
US6393554B1 (en) * | 1998-01-28 | 2002-05-21 | Advanced Micro Devices, Inc. | Method and apparatus for performing vector and scalar multiplication and calculating rounded products |
JP2000353077A (ja) * | 1999-04-07 | 2000-12-19 | Matsushita Electric Ind Co Ltd | 多倍長演算装置 |
-
2006
- 2006-05-08 US US11/429,190 patent/US7672989B2/en active Active
- 2006-05-09 JP JP2008510722A patent/JP4728392B2/ja not_active Expired - Fee Related
- 2006-05-09 WO PCT/IL2006/000551 patent/WO2006120680A2/en not_active Application Discontinuation
- 2006-05-09 CN CN2006800158095A patent/CN101300544B/zh not_active Expired - Fee Related
- 2006-05-09 KR KR1020077026682A patent/KR101247164B1/ko not_active IP Right Cessation
- 2006-05-09 EP EP06728340A patent/EP1880275A4/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347326B1 (en) * | 1999-03-02 | 2002-02-12 | Philips Electronics North America Corporation | N bit by M bit multiplication of twos complement numbers using N/2+1 X M/2+1 bit multipliers |
US6708193B1 (en) * | 2000-02-21 | 2004-03-16 | Hewlett-Packard Development Company, L.P. | Linear summation multiplier array implementation for both signed and unsigned multiplication |
KR20020047509A (ko) * | 2000-12-13 | 2002-06-22 | 신경욱 | 여분 이진 부분곱을 이용한 복소수 승산방법 및 이를적용한 복소수 승산기 |
US6742012B2 (en) * | 2000-12-27 | 2004-05-25 | Arm Limited | Apparatus and method for performing multiplication operations |
Also Published As
Publication number | Publication date |
---|---|
EP1880275A2 (en) | 2008-01-23 |
EP1880275A4 (en) | 2009-12-16 |
CN101300544A (zh) | 2008-11-05 |
WO2006120680A3 (en) | 2007-05-03 |
KR20080016803A (ko) | 2008-02-22 |
JP2008544344A (ja) | 2008-12-04 |
US7672989B2 (en) | 2010-03-02 |
JP4728392B2 (ja) | 2011-07-20 |
WO2006120680A2 (en) | 2006-11-16 |
KR101247164B1 (ko) | 2013-03-25 |
US20060253522A1 (en) | 2006-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608715B (zh) | 用于执行人工神经网络正向运算的装置及方法 | |
CN104603766B (zh) | 经加速的通道间的向量归约指令 | |
JP2020528621A (ja) | 加速数学エンジン | |
CN110879724A (zh) | 用于深度学习和其它算法的fp16-s7e8混合精度 | |
CN100583024C (zh) | 一种用于浮点除法和平方根运算的预处理电路结构 | |
CN101300544B (zh) | 大数乘法方法和装置 | |
CN104321740A (zh) | 利用操作数基础系统转换和再转换的向量乘法 | |
CN104011661A (zh) | 用于大整数运算的向量指令的装置和方法 | |
CN109144471A (zh) | 用于二进制向量分解的二进制乘法器 | |
CN117908835B (zh) | 一种基于浮点数计算能力加速sm2国密算法的方法 | |
CN112445454A (zh) | 使用范围特定的系数集字段执行一元函数的系统 | |
GB2511314A (en) | Fast fused-multiply-add pipeline | |
Buell et al. | A multiprecise integer arithmetic package | |
US20040117421A1 (en) | Methods and systems for computing floating-point intervals | |
CN113705794B (zh) | 一种基于动态激活位稀疏的神经网络加速器设计方法 | |
CN114510217A (zh) | 处理数据的方法、装置和设备 | |
CN100416490C (zh) | 一种用于左移数据的方法与系统 | |
CN100410871C (zh) | 应用跳跃式浮点数运算法的数字讯号处理器 | |
US7860914B2 (en) | Computer system for storing infinite, infinitesimal, and finite quantities and executing arithmetical operations with them | |
CN100378654C (zh) | 使用乘加加指令实现长数据乘法的装置及方法 | |
US7136891B2 (en) | Arithmetic and relational operations | |
CN118519684A (zh) | 一种基于simd指令实现快速求解正数算术平方根的方法 | |
CN118519685A (zh) | 一种基于SIMD指令实现快速求解sigmoid函数的方法 | |
US7580968B2 (en) | Processor with scaled sum-of-product instructions | |
JPH02212927A (ja) | 2進整数乗算処理方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120530 Termination date: 20140509 |