大数乘法方法和装置的制作方法

文档序号:6567407阅读:1107来源:国知局
专利名称:大数乘法方法和装置的制作方法
狄领域
本发明涉及大g法领域,特别是,;^发明涉;^一种"^^^^]带符号算
术的大数乘法的方法和装置。
背景技术
大lrt法^u^于3W技术中已知的许多计算机算法。大数算术的常见用途
包括^^加密以及蒙哥马利乘法,其中对非常大的数(每个数都是一千比特的 量级)敝大量乘法樣
一个'大数"是指由处理l^f吏用的iV比特的Mt,该处理器带有寄存器或者 字长为^比特的狄,其中A^2x『。术#"字长"是指单精度寄存器的比特数,
或者处理器所使用的M器t^。 4的字长为酽比特的处理器能够将两个酽
比特的字相乘,然后将结^^在一个2x『比特的双^l寄存器中。如果将被 相乘的,数的M大于『比特,则需^"^t专用的乘法算法。
图1是llt技术中^^纸和^i行两个多位数相乘的乘法过程10的示例。 每个数由两个十六进制的数字姿試。第一个lb^3B(用参考标号12指示),第 二个lbl: CA (用参考标号14指示)。该乘法ii^呈10开始仅将第二个数14的最 4錄效数字(LSD)与第一个数12的两个数字相乘以得到一个第一中间结果, 该第一中间结果用参考标号16指示。
然后,^a亍同样的IMt,用第^^^数14的最高有效数字(MSD)乘以第一 个数12的两个数字以得到一个第二中间结果。该第二中间结果,用参考标号18 指示,被写在第一中间结果16的下面左移一位。
乘法过程10完成后,第一中间结果16与第二中间结果18的和U法的结
果2E8E (用参考标号20指示)。
仅仅为了清^J^I/fM十六进制数的乘法进^t^例。,^L^中已知 的计^L^法^fj^i制数的乘法。
图2是,技术中用于图1中所示的两个多字lfc^法的计算4M絲法算法30的^^呈图。当^^1计,时,每个数字都用一个『比特的计#4^表示。术
洽'数字"是指一个大数的4分,它有一^H^^i^的狄。
通常,计算4M匕乘法算法30与I^技术中的过程10 (见图1)的使用方式 类似。然而,才^该计算4M匕乘法算法-在^/f亍乘法算法的过程中每个中间相 絲果,M口到一个结果向量,而根提图1中的乘法过程10-在^步^M^目加 之前,将各部辦果单^^#0
在初始步骤32中,提供两个^^数向量AT和F以^于保存结果的结果向 量Z。向量X F, Z都是『比特的字。输入向量AT和r的长^^别为max—x 和maxj。 一个双tt寄存器r (由2x『比特构成)用于临时*乘法结果。
步骤34中,结果向量Z被清零。
步骤36中,两个^^数向量X和r的内部变量/,/ , d和c2被清零。其
中,,'賴一^^数的数字标号,7^^^^数的数字标号,"是前一絲法 运算的高位字,d是前一^口、;^算的ii位。
随后的步骤38, 40, 42, 44, 46和48构iU^法循环。步骤38中,将两 个数字相乘,并相加前一棘法运算的高位字c/和前一W口'絲算的进位c2。 其结果临时^4扭£>1寄存器r中。
步骤40中,将乘、^:算结果r的高位字^^到"中。
下一步骤42中,计算加法进位并将其*到中。
步骤44中,通过将其与乘法运算结勤目加来更新结果向量元素^。由于 每个结果向量元素的宽度都是『,只将r的<維字与元素Z巧相加。
步骤46中,,i^l数A:的标号,'被增加。
下一步骤48中,判断,'的^lbl否大于输入向量A:的M。如果是,则该计 ^M沐法算法转到步骤50。然而,如果为否,则该计^M棘法算法返回到 步骤38,重复4 Wfi^法循环。
步骤50中,通过将其与和相加来更新下一个结果字。 步骤52中,第^^L^数的标号乂被增加,并将内部变量"d, c2清零。 下一步骤54中,判断内部变量/'的^A否大于输入向量F的"ML。如果是 (即,^f亍完max_x乘maxj錄';^算后)则该计^Mt^算法在步骤 56终止,并将结果向量2^絲为絲的乘法结果。然而,如果为否,则该计算 才;M絲法算法重新从步骤38开始^M亍内^t环,将第-"^^数与第J^^数的下一个字相乘。
*技术中的计算冲;M匕乘法算法提供了 一种基于无符号乘法运算的大^ 法。也就是,输入向量兄y以及结果向量z都包括每个数字有w比特的錄 (麟号位)。
但是,^技术中已知的一些数字信号处理器(DSP)的算术仅支持带符 号运算。例如,贿技术中不支持踏号算术(也狄,仅支持带符号算术)
的数字信号处理器的一种'j子是LSI逻#^司提供的ZSP200DSP。
^it类数字信号处理器中,每个字的最高有效位(MSB)通常是符号位。 如果使用如前所述的g技术中的计算才A4^法算法并^f亍带符号乘法运算则 将产生m的结果。例如当字长为8比特(『-8)时,对数0xFF和0xFF ^f亍一个iW号乘'^算的结果为OxFEOl (255x255是65025 )。如果仅支持带 符号运算,那么数255代表-1。数-1与-1的乘'^算结果是+ 1,该结果与 4M—个iMffit算所得的结果不同。
i^技术中已知的能够旨带符号运算的处理器所^U的编译器只骨诚过 题。一、、口 ,' ' 、tf ''、
*技术中已知的一种典型的转换itf呈如下所述 定义
『是寄存器中的比特数,或者M器的tt。 ^和5是净A^数。每个^L^数均为『比特长。
r是一个双狄的变量(2x『比特),用于存賭jx5的^^:算结果,
^是两个^^数J和5的带符号^P、 (2x『比特)。 如果爿的最高有效位是l(iMM是负数),那么M ^C^:MM的^^"ii制补 码。注意0- ~^=v4。
当^W亍带符号乘法运算水5时,其中^是一个负数U的最高有效位是1), j^^^^-zw- ~」。用这个絲以丑,其结果是r- (2W— ( ^4))x5 =
因此,为了对一个负数^与一个錄5^tit^号乘絲算,可齡^ 与5的带符号te"运算,然后将5x2w的值与该结科目加。注意旨5x2"的 iif复就等于将5向左移fF位的过程(fix2 5《『)。务似的,如果两个#棘数^和5都是负数,则结果为r-2 ^4+^\6 + ^或者"64 『A+^。
总之,用仅支持带符号的运^^U^亍无符号乘法的g技术中-^:的处 理^U亍以下liMt:
(1) ^1##^数^和5的带符号乘法算法;和
(2) 检^f个^^数U和5)的符号位。如果^L^IUJ数,则将另
一个^^fe移『比特,并^f多动后的另一净ic^数与带符扭算的结勤目加。 由于一个狄负数的可能性为so % ,贿的处理H^^W亍一錄';^算平
均需^^f亍一次双字长的数的进l!i^r一次双字长的数的力口法。这样的处理器还 必须^T^^个^fiL^数,判断它A^lfc还是负数。
这些额外的算a算使^f5l支持带符号运算的处理器与可^^亍无符号乘法
运算的处理器相比,乘法性能明显降低。当使用数字信号处理器的时候,情况 甚至会更糟。因为数字信号处理器能够在单次运算中^f亍乘法和加法运算,而
需要^Wf上述额外的算^:算则不能利用数字信号处理器在一次运算中同时执 行乘法和加法指令的优势。
为了^miW技术中的上^陷,"fi4iM;提^"^H^I仅支持带符号运 算的处理器来执行高效的大tt法的装置与方法是必要,并ibl非常有利的。

发明内容
因此,本发明的主要目的是提^"种^U仅支持带符号运算的处理器来执 行高效的大I^法的装置与方法以UU^技术中的上述缺陷。
才娥本发明,提供了一种将第一,iL^数和第^fi^数相乘的膽号乘法方
法。该方法包拾(a)将第-^iL^数作为具有至少一个相应数字的第一向量賴
到第一寄存器,其中每个数字#*有预定数量的比特;(b)将第^^i^数作为具 有至少一个相应数字的第二向量^#到笫二寄存器,其中每个数字#*有预定 数量的比特;(c)将第一向量的每个数字^#^比预定的比特数少一个比特的 对应的数字;(d)将第二向量的每个数字^##^比预定的比特数少一个比特的 对应的数字;(e)使用一个处理器,该处理器中所有乘法运^SCF艮于带符号乘 法运算,通过将对应于第一,iL^数的每个数字与对应于第^^数的每个数字 相乘的步骤,产生一个带符号乘、^算结果。舰的,上述产生步骤包括对带符号乘法运算结果的数字的中间值^ff屏
蔽操作。图4的方框86中的元素2^表示带符号乘^it算结果的数字的中间值。 to的,该方法进一步包括(f)将带符号乘法运算结果转^^对应的M 号乘、^算结果。
才娥本发明,还提供了一种将第一^^数与第^^^数相乘的装置,该装 置包括(a)第一寄存器,用于将第一,iC^数作为具有至少一个相应数字的笫一 向量进行絲,其中每个数字^Jr有预定数量的比特;(b)第二寄存器,用于将 第二^C^数作为具有至少一个相应数字的第二向量进行务賭,其中每个数字都 具有预定数量的比特;(c)处理器,其所有乘法运秋P艮于带符号乘法运算,该 处理器用于将第一向量和第二向量分别转4M7具有至少一个相应数字的对应的 转M的第一向量和对应的转^的第二向量,每个数字都比预定的比特数少 一个比特;以及将对应的转M的第一向量的比特与对应的转M的第二向量 的比樹目乘,产生一个带符号乘法运算结果。
舰的,该处理^f^J贿的第 第二寄存器在原位^f亍第一向量和第 二向量的转换。可选的,也可以^^一个第^ft单;M^^对应的转絲的 第一向量和对应的转^的第二向量。
to的,处理^^亍一个屏蔽辦以对带符号乘法运算结果的数字的中间 鹏亍屏蔽.
从以下附图和描述将显JM^发明的其它特4iE^优点。


为了^f舰解本发明,结合附图对其实施例进^i兌明,所有附图中相同 的标号^Nl应的部分或元素。
图l是:W技术中使用纸和笔进行两个多位数相乘的乘法运算过程的示
例;
图2是liL^技术中用于实现图l中所示的两个多字W1法的计^4M錄法 算法的j5i^图3是贿a^中用于将W比特的字转化为『-/比特的字的转^ii^的 方框图,其中以^=8为例;
图4;i本发明的方法的j;;^呈图;以及图5另」本发明的装置的高级示意方框图。 M实施方式
本发明提供了一种新颖的、使用仅支持带符号运算的处理器来执行高效的 大数乘法的装置与方法。该发明的M方式包括以下两个主要步骤首先,将 以『比特的字表示的净iL^数转换为比特的字,从而使得其最高有效位变 为一个"0"比特。该转换过程育诚j錄号位(最高有效位) 一直为0。然后,使 用iW技术中已知的乘法算法^f亍多位tt法过程。
由于^l^数I^PA^数,所以无需扭行额外的算^i4算序列以将带符号
因此,对于很大的^^数而言,^^1本发明的方法与^^贿^M^中已经
知道的标准乘法技^M目比,能够明皿减小开销。而且,本发明利用数字信号
处理器能够在单次运算中批/ft^法和乘法的能力可以提供甚至更高的乘法运算 性能。
为了与贿技术中的* 法系统綠,可选的,本发明可将乘法运算过 程产生的字长为『-/比特的结果转换回预定的字表示(此处为『比特表示)。
Jiii转^f吏得至少一个输出字的最高有效位可以为"l"。
#参照图3,给出了贿技术中将多个酽比特的字转妙多个『-J比 特的字的转换过程60的方框图,此处以『=8为例。
一个w比特的^c^数的字M
其中^是每个字的比特数(例如,『

=8)。例如,第一个字m的8个比#^^示为JO (最4錄效位),a/, J2, ^5,」6和(最高有效位)。第^字》^的8个比##^示为50
(最^^"效位),57, 52, M, 5¥, 55, 56和57 (最高有效位)。第三个字 >^的8个比##^示为O (最寸錄效位),C7, C2, C5, C¥, C5, C6和C7
(最高有效位),等等。
第一步,是将用于^M^i^数的最^r效数字(LSD)的第一个字^ 的最高有效位(MSB)爿7复制到第二字巧的最4絲效位(LSB) 50,并且将 第二个字M^的比特5tf, 52, 53, 54和55均左移一位。
第二步辦是財第^字 ;2实施的,但是贿将其两个最高有效位说
和57复制到第三个字^的两个最4錄效位O 和C7,并且将第三个字的比特O , C7, C2, C3和C^左移两位。
当对一个棘数的所有

『一1
个转换
个字都进行翻以,后,将产生
后的新的字,从而使##个转絲的新的字都只需要用『-l个比特表示。
实际上,如^^原位liW亍上述『比特到『- 1比特的转:^it程(例如4^1 一个常用的缓存),那么这些^ft应该M高有效数字到最^^效数字进行。例 如,在第二步辦中将两个最高有效位加和57复制到第三个字的两个最^f錄 效位0 和C7,应在将第三个字w的a , C7, C2, C3和G/左移两位^L前进 行。
参看图4, ;L^发明的方法70的沐-呈图。
在初始步骤72中,执行图3中所示的转换过程60以F个以酽比特的字 表示的,A^数转换为以『-J比特的字表示。输入的,数AT和r嘲械转^ 新的以比特的字^^示(也M,每个用于^M^^^数的字都是『-7比 特)。该转换过程可以使用同一个用于务賭以"初始的"『比特的字表示的输入被 乘数的输A^冲器(如果净紛配了足够的务賭空间),或者也可以^^I单独分配 的緩冲器。输入向量X和r的长^^别为max_x和maxj。
max x 和max_y按照以下方式计算
IIWX X
『一l
且max_y
"少
其中^表示^ft数AT的长度(也
.『—1.
狄比特数),",表示辦数F的狄(也舰匕特数)。
下一步骤74中,m个用于保存结果的结果向量Z。 一个双^JL寄存器 r (由2x『比特构成)用于临时^4乘法结果。在本发明中,将掩码mask定义 为2W—1 -/ (其最高有效位是"0",其余所有^P是"1")。屏蔽^t扭W皮定义 为#-个W比特的字与该掩》mft^辑"与"的操作。
以下步骤76, 78, 80, 82和84与图2中所示的计算4Mt^法算法30的步 骤34, 36, 38 , 40和42相同。
步骤76中,结果向量Z被清零。
步骤78中,将两个^L^数向量AT和r的内部变量f', y, d和c2清零。其 中,!'絲-^iL^数的数字标号,7絲^^^数的数字标号, 运算的高位字,是前一^p、;^:算的进位。
步骤80, 82, 84, 86, 88和90构成i^法循环。步骤80中,将两个数字相乘,并相加前一錄絲算的高位字c/和前一^a法运算的进位么其结果 临时^^^ML寄存器r中。
步骤82中,将乘法运算结果的高位字絲到c/ 。
下一步骤84中,计算加法进位并将其^4到"。
步骤86中,通过将其与乘法运算结勤目加来更新结果向量元素Z^。由于 每个结果向量元素的^1都是『,只将r的^^字与元素Z^相加。然后,对结 果向量元素Z^^,屏蔽辦"。由于粉带符号算絲算时与结果向量元素 Z 的符号位(最高有效位)无关,屏蔽辦(『-J比幹T,掩码)能够确J綠 果向量元素Z^的符号位(最高有效位)被清零。
以下步骤88,卯,92, 94, 96和98与图2所示5^技术中的步骤46, 48, 50, 52, 54和56相似。
步骤88中,初L^数AT的标号/被增加。
步骤90中,判断/的佳是否大于输入向量AT的长度。如果是,则该多皿 乘法过程转到步骤92;然而,如果为否,则该多位絲法过禾Ii4回到步骤78, 重复齡絲法循环。
步骤92中,通过将其与c/和的銜目加来更新下一个结果字。
步骤94中,第^^^^数的标号/'被增加,并将内部变量"d, c2清零。
下一步骤96中,判断内部变量/'的M否大于输入向量F的M,如果是 (即,#^亍完max_x乘maxj錄'减算后)则#^4最终乘'减算结果的带 符号结果向量Z转^一个錄号结果向量。例如,勤,J用将多个W-J比特 的字转换为多个『比特的字的g技术中的转换过程(例如,图3所示过程的 相反转换雄)来实现。然而,如果为否,则该多位絲法itf呈重新从步骤80 开始旨内《#|5#环,将第一#^数与第^^数的下一个字相乘。
参看图5,是本发明的装置100的高级示意框图。寄存器102用于将第一被 乘数M为每个数字以『比特表示的第一向量。寄存器104用于将第^^^l数 ,为每个数字以『比特表示的第二向量。
处理器106 W艮于带符号^^运算,用于将第-^ic^数和第^4iL^数的每 一个数字转M以『-/比特表示的形式,然后将第-^L^数的转M的数字 与第^^^数的转M的数字相乘,产生一个带4H^^t算结果。
舰的,提单元103 (例如,RAM,寄存器等)用于分别^ft第一^:^数的转换后的lt字以;^^^^数的转换后的l!i:字。处理器106所产生 的带符号乘法运算结果也以每个字表示为『-2比特的形式被^!vM^单元
103中。
to的,处理器106还用于将带符号乘法运算结果转^i^号乘法运算 结果,并将该醋号乘法运算结果以每个字表示为W比特的形式<絲到^#单 元103中。
可选的,将第一^L^数和第^^^数转妙以『-/比特表示的转换it^呈 可以由处理器106在原^4行(也就是,分别^^J寄存器102和寄存器104 )。
以上用一^Nt定的乘法算法为例对本发明的实施方式进行了描述。然而, 应SJ^, ^M封可能够在^W亍高效的大^tt法之前^"个^^数的每个『比特 的字转换为『-/比特的字的方法和装置实財i^i人为被包括^^发明的范 围之内。
以上所ii^出了本发明的某些特定实施例,应被理解为并非对本发明的限
定,由于进一步的修 ^被提供给;^页域技术人员,其意-M这样的修改将 落A^斤附似'J要求的^^范围内。
权利要求
1. 一种用于将第一被乘数与第二被乘数相乘的无符号乘法方法,该方法包括以下步骤(a)将第一被乘数作为具有至少一个相应数字的第一向量存储到第一寄存器,每个所述数字都具有预定数量的比特;(b)将第二被乘数作为具有至少一个相应数字的第二向量存储到第二寄存器,每个所述数字都具有所述预定数量的比特;(c)将所述第一向量的所述数字都转换为比所述预定比特数少一个比特的对应的数字;(d)将所述第二向量的所述数字都转换为比所述预定比特数少一个比特的对应的数字;以及(e)使用其所有乘法运算限于带符号乘法运算的处理器,通过包括将对应于所述第一被乘数的每个所述数字与对应于所述第二被乘数的每个所述数字相乘的步骤,产生一个带符号乘法运算结果。
2、 才娥似'漆求1所述的方法,其中所述带符号乘'絲算结果包括多个数 字,并且其中所述产生包括对所述带符号乘法运算结果的所述多个数字的中间 值拟亍屏蔽。
3、 才N^5^'J^求1所述的方法,进一步包括以下步骤(f)将所述带符号乘法运算结果转M相应的iMff乘法运算结果。
4、 一种用于将第—棘数与第3棘数相乘的装置,该装置包括(a) 第一寄存器,用于将笫一净iL^数作为具有至少一个相应数字的第一向 量进行械每个所述数字棘有预定数量的比特;(b) 第二寄存器,用于将第^^iL^数作为具有至少一个相应数字的第二向 量进行賴,每个所述数字 "有所述预定数量的比特;以及(c) 处理器,其所有乘法运算P艮于带符号乘絲算,该处理器用于将所述 第一向量和所述第二向量分别转M具有至少一个相应数字的对应的转M的 第一向量和对应的转换后的第二向量,每个所述数字都比所述预定比特数少一 个比特;以及将所i^t应的转^的第一向量的比特与所it^应的转^的第 二向量的比桐目乘,以产生一个带符号乘'减算结果。
5、 才^^u'j要求4所述的装置,其中所*理器在原位^^所 —向量 和所^f二向量的所迷转换。
6、 W权利要求4所述的装置,进一步包拾(d) 4^单元,用于絲所糾应的转船的第一向量和所糾应的转换 后的第二向量。
7、 才^^5U,要求4所述的装置,其中所述带符号乘法运算结果包括多个数字,字的中间值进行屏蔽。
全文摘要
一种用于将第一被乘数与第二被乘数相乘的带符号乘法方法及对应的装置。该装置将第一被乘数作为具有至少一个相应数字的第一向量存储在第一寄存器中,并将第二被乘数作为具有至少一个相应数字的第二向量存储在第二寄存器中,其中每个数字都具有预定数量的比特。该方法进一步将第一向量和第二向量的数字转换为比预定比特数少一个比特的对应数字。处理器用于执行上述被乘数的带符号乘法运算。
文档编号G06F7/52GK101300544SQ200680015809
公开日2008年11月5日 申请日期2006年5月9日 优先权日2005年5月9日
发明者B·多尔贡瓦, I·德罗尔 申请人:晟碟以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1