JPH05204610A - 尻数型乗算方式 - Google Patents

尻数型乗算方式

Info

Publication number
JPH05204610A
JPH05204610A JP4002471A JP247192A JPH05204610A JP H05204610 A JPH05204610 A JP H05204610A JP 4002471 A JP4002471 A JP 4002471A JP 247192 A JP247192 A JP 247192A JP H05204610 A JPH05204610 A JP H05204610A
Authority
JP
Japan
Prior art keywords
digit
product
array
order
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.)
Granted
Application number
JP4002471A
Other languages
English (en)
Other versions
JP2818512B2 (ja
Inventor
Aisuke Katayama
愛介 片山
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP4002471A priority Critical patent/JP2818512B2/ja
Publication of JPH05204610A publication Critical patent/JPH05204610A/ja
Application granted granted Critical
Publication of JP2818512B2 publication Critical patent/JP2818512B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】宇宙科学などの分野における巨大数の演算に必
要となる高桁数の乗算を、非累算的な乗算法により、高
精度・高速度に演算する。 【構成】十進数または十六進数を基本とする乗数および
被乗数の各桁間の相互の積の同一位数の配列積を加算し
て位数積の一次元配列をつくり、位数積間に桁上げ処理
と尻数の直接出力を分けて行ない、最終積を得ることに
よって、累算的な演算処理回数と規模を減少させ、乗算
の高速化を計ったものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は乗算装置に関し、特に高
桁数値の乗算を行ない、高速に動作することが可能な乗
算装置に関する。
【0002】
【従来の技術】高桁数値の乗算は非線形計画法(NP)
問題を解く過程や高階微分方程式の解法などの数値計算
過程でしばしば現われる。数値が20億以下であれば、
32ビット以下の数値として、32ビットの乗算プロセ
サなどで高速に処理できるが、これ以上の高桁数値など
巨大数に関する検討が最近の宇宙科学の進歩で必要とな
るが、浮動小数点による演算に限定されることは、誤差
の累積など困難な数学的処理の問題に当面している。し
かるに本発明では十進数を中心とし、十六進数を含め
て、巨大数の計算に整数演算にて対応できるので極めて
有利であり、演算速度も極めて高速なものが得られる。
【0003】科学技術の進歩した現在では、ますます高
桁数値の高精度乗算が要求されるようになってきてい
る。
【0004】次に、従来の乗算方式について説明する。
【0005】周知のように、計算機で実行される乗算は
2進数の数値が使用される。被乗数と乗数がそれぞれN
桁及びM桁とする。
【0006】この場合、従来の乗算方式では、原則的に
乗数の桁数に等しいM個の部分積があり、この部分積を
左へ1桁ずつシフトさせて加算するのが一般的である。
ここで、乗数のビットが0の桁に対応する部分積は省く
ことができ、ビットが1の桁に対応する部分積は被乗数
のビット列を並べたもので構成できる。32ビット×3
2ビットを越える乗算は部分積の数と桁数が極めて大き
くなる。その結果、従来の乗算方式では、多数の部分積
を記憶するために、乗算に大きな記憶領域を必要とす
る。
【0007】これを改良・改善するため、桁上げの遅れ
を補償するCLA回路(キャリー先見回路)やキャリー
セーブ回路、あるいは部分積の数を半分とするブース乗
算器などが採用されている。
【0008】
【発明が解決しようとする課題】このような改良・改善
に拘らず、通常の乗算方式では、2進法に従い、ビット
数の増大による桁数の著しい増大は整流乗算が実施困難
となり、浮動小数点演算によるので著しい計算結果の誤
差の発生をともなう。
【0009】したがって本発明の目的は宇宙科学等を含
めて、巨大数の演算を高精度高速で高桁数の乗算を行な
う、乗算装置を提供することである。
【0010】
【課題を解決するための手段】本発明では、従来の部分
積に基づく累算的な乗算方式とは明らかに一線をかくす
るもので、従来の乗算方式とは全く異なる位数積という
新しい積を利用し、最終積を特別に全く新らしい考え方
の尻数を用いることにより、非累算的な超高速の求積が
えられる。
【0011】本発明においては新規な尻数等の利用があ
るので、乗数,被乗数の桁数を同一のN桁とした。勿論
両者を相違させてもよいが、本発明のコンピュータ上で
の実施上の点を考えて簡明な方を用いた。
【0012】本発明の要旨 本発明においては、従来一般に広く用いられる累算的
な、そして部分積を経過して、大規模積を演算の終りに
おいてうる通常の方法と異なり、尻数という新らしい概
念を用いて、最終積を微小空間を離して、小型の2桁程
度で桁上げの極めて少ないモジュール的な演算単位を並
列構成に近くリンクさせて、最終積を分散的に得て尻数
のデジットで出力する新規なる乗算方式である。
【0013】本発明はコンピュータ内部ではBCDコー
ドを用いるが十進数あるいは十六進数を基本とする。
【0014】本発明においては被乗数X,乗数および積
Qの各々が十進数で表わされるならば、被乗数X,乗数
Yおよび積Qの各々は4ビットすなわち2進化10進
(BCD)コードで表わされる。
【0015】被乗数X,乗数Yが4桁で、N=4でX=
5678,Y=9231の場合には、それぞれ4桁の配
列で表わされる。
【0016】 X=5678=x
〔0〕;x〔1〕,x〔2〕,x〔3〕 …(1) Y=9231=y
〔0〕,y〔1〕,y〔2〕,y〔3〕 …(2) この配列の〔 〕内の数字は正の整数で、変数ではな
く、添字という。x〔i〕,y〔j〕は一桁の値をも
ち、添字は配列の位を示すが、しばしば省略される。た
とえば、x〔3〕=5は位としては5・103 で100
0の位の数である。3は位数である。
【0017】 x
〔0〕=8,x〔1〕=7,x〔2〕=6,x〔3〕=5 …(3) y
〔0〕=1,y〔1〕=3,y〔2〕=2,y〔3〕=9 …(4) N桁の数の最大の添字はN−1で、0より始まる。配列
名はx,yであって、コンピュータなどの記憶場所での
配列の先頭番地を示す。xの配列とyの配列の積のすべ
ての集合は被乗数X,乗数Yの積Qとなるのであろう
が、このような積の集計は困難である。配列x〔i〕,
y〔j〕のようなx〔 〕,y〔 〕についての積を考
える。
【0018】x〔i〕,y〔i〕は1桁の整数であるか
ら、この式で与えられる整数は2桁か1桁である。この
ような積を配列積という。上の配列積の左辺をP〔i,
j〕とおきかえると、 P〔i,j〕=x〔i〕*〔j〕 …(5) のように配列積を見やすくするため二次元配列で表示さ
れる。しかし、本来は配列積はi+j=kの位数の一次
元配列である。次に、(3),(4)式を用いて、一二
示すと、 x
〔0〕*y
〔0〕=8×1=8×100+0 =8×100 =8 …(6) x〔1〕*y
〔0〕=7×1=7×101 =7 …(7) P〔0,1〕=x
〔0〕*y〔1〕=8×3=24 x〔i〕,y〔j〕の添字i,jを考えるとき、その添
字の和をこの配列の位数という。kを位数とすると、次
式が成立する。
【0019】i+j=k …(8) (7)式の第1式は位数k=0,第2,3式はk=1。
すなわち両式とも位数k=1である。このように、位数
が1となる位数積の和をpt〔1〕とかくと pt〔1〕=x〔1〕*y
〔0〕+x
〔0〕*y〔1〕 …(9) のように表わされる。(7)式の場合には pt〔1〕=7+24=31 …(10) である。位数k=0のときのptは pt
〔0〕=8 …(11) pt〔k〕という一次元配列は位数積配列でx〔i〕,
y〔j〕の一次元配列の積の一次元配列積か二次元配列
積のいづれからも作られる。この一次元配列pt〔k〕
の方を位数積という。位数積配列pt〔k〕を用いる
と、被乗数,乗数に対する積を高桁においても精度高
く、高速にコンピュータソフトあるいはコンピュータ結
合回路を用いて求解できる。位数kは0を出発点とし
て、被乗数,乗数のサイズがNであれば最大値は2(N
−1)である。配列積の最大数は(N−1)2 である。
【0020】配列積の二次元配列のサイズはこのように
大きくなる。これに対して、位数積配列はN+H−2個
で小さくなる。サイズが小さく、一次元の配列pt
〔k〕つまり位数積配列と尻数による乗算解の簡易さの
方がはるかに有利である。
【0021】(3),(4)式で与えられる被乗数,乗
数の一次元配列に対する上の他の位数積配列を求めよ
う。
【0022】 k=2:位数2 pt〔2〕=x〔2〕*y
〔0〕+x〔1〕*y〔1〕 +x
〔0〕*y〔2〕 =6×1+7×3+16=27H6=43 …(12) k=3:位数3 pt〔3〕=x〔3〕*y
〔0〕+x〔2〕*y〔1〕 +x〔1〕*y〔2〕+x
〔0〕*y〔3〕 =5+18+14+72=77+14+18 =91+18=109 …(13) k=4:位数4 pt〔4〕=x〔3〕*y〔1〕+x〔2〕*y〔2〕 +x〔1〕*y〔3〕 =5×3+6×2+63=90 …(14) k=5:pt〔5〕=x〔3〕*y〔2〕+x〔2〕*y〔3〕 =10+54=64 …(15) k=6:pt〔6〕=x〔3〕*y〔3〕=45 …(16) 以上のように求めた位数積配列を用いて、尻数非累算乗
算装置によりて求めるX,Yの積を高速順次に求められ
る。
【0023】また位数積配列が求まった時点で、分割積
配列は不要となり、コンピュータ等の装置より消去して
よい。
【0024】図1は従来の累算式乗算器を示す。まづこ
の従来の乗算にちょっとふれると、左側のレジスタより
被乗数を加え、乗算を右側のACO−MGペアに加える
と、クリアされているACC−MQの内容はくりかえし
によって、積が累積するものので である。(ACC−MQ)は0ではない。
【0025】これに対し本発明方式は図2に示すような
基本構造で、形が図1に似ているが、累算的動作を行わ
ない。図2の左側の位数積配列pt〔k〕はk=0のも
のより順に読み込まれ、(ACC−MQ)というレジス
タに加えられるが、このレジスタに入ったデータの最下
位の十進数一桁はレジスタの右端から押出されて、デュ
ーダを通して、別に用意れた直列的な十進数1桁のみを
収容できる一次元配列q〔m〕にm=0のものより順に
入れる。このようにして、うごく十進数一桁(BCD4
ビット)を尻数という。
【0026】ここでさらに重要な動作が行なわれる。尻
数のとび出しと同時に、ここに空いた一桁数の所へ(A
CC−MQ)に入ったpt〔k〕が桁下がりして入る
が、これは次の段のpt〔k+1〕との加算にかかわ
る。この和は次の段の尻数と桁下り操作の一桁に働ら
く。この次々と段で行なわれる乗数の単位操作は作用す
る桁数が大体2桁十進であり、単位操作ごとに尻数(1
桁10進)が出力され、被乗数,乗数の積を下の桁から
順に出力されるのは尻数そのものである。単位操作は現
用のプロセサーを用いて、桁数が小さいのでn秒程度に
することができる。100桁十進の巨大数とμ秒の程度
に完了する。一つの単位操作の始めの部分を示す。
【0027】
【0028】以上のべた演算の単位操作は本発明の中核
をなすもので、この動作に関連する十進数はせいぜい2
桁にすぎないので、巨大数の何千,何万という桁であっ
ても、中核となる単位操作は小さい簡明な操作のくりか
えしである。
【0029】単位操作の終了によって、例えば図2の古
典結線図では(ACC−MQ)が0となって終了するの
であって、従来からの累積回路で、最終は(ACC−M
Q)に被乗数,乗数の積が最後にえられるのとは本質的
に異っている。
【0030】図3の単位操作図では、3段の簡単な例を
示す。この単位動作に入るまえに、位数積配列pt
〔k〕を求めることが必要である。pt〔k〕のkは位
数を示す添字で、k=0から始まり、被乗数,乗数の桁
数がNならばk=2(N−1)で終る。図3の例ではN
=2であることから、k=2である。図3のスタート状
態は前記のように明らかであるが、図3のpt〔2〕か
らは終了段を示している。pt〔1〕からの桁下げ分の
3とpt〔2〕の入力分6とが加わって、9が(ACC
−MQ)にストアされるが、この数が10進一桁である
から、全部尻ビットの方へ出てしまう。かくして、q
〔2〕=9として、求積の最高位は決まり、(ACC−
MQ)の内容は0となるので、非累算性はさらに確認さ
れた。
【0031】本例はX=25,Y=37のN=2の簡単
な場合で、結果の積が925となり、q〔2〕=9,q
〔1〕=2,q
〔0〕=5となる。積の桁はこの場合は
2(N−1)=2×(2−1)=2で、0から数えて、
0,1,2で3桁である。しかし場合によってX,Yが
2桁の場合4桁となる場合もある。図4の場合はX,Y
が5桁数で積が10桁の場合である。
【0032】 N=5;x=23413,Y=45320 の場合の数の1桁づつの配列は次のように表わされる。
【0033】X:x〔4〕=2,x〔3〕=3,x
〔2〕=4,x〔1〕=1,x
〔0〕=3. Y:y〔4〕=4,y〔3〕=5,y〔2〕=3,y
〔1〕=2,y
〔0〕=0. x〔i〕,y〔j〕の〔 〕内の数字は添字といわれ、
0を含む整数であって、i,jをそれぞれの添字とする
とき、i+j=kは位数といわれる。
【0034】この数値例の場合、kは0から8までの値
をもつ。配列積x〔3〕×y〔1〕の位数kは4であ
る。添字i,jの値の最大値はN=5であるから、それ
ぞれN−1=4である。i,jはN=5の場合には4以
上はとれないのである。位数積配列は一次元配列で、同
一の位数をもつ配列積を集めて作る。
【0035】pt
〔0〕は位数0の位数積配列で1個の
配列積より作られる。
【0036】 pt
〔0〕=x
〔0〕*y
〔0〕=3×0=0 x,yの〔 〕内の添字が0であるのに限られるからで
ある。pt〔1〕はx,yの〔 〕内の添字の一方が1
で他方は0のときであると和が1となるから、 1+0=1,0+1=1。
【0037】 pt〔1〕=x〔1〕*y
〔0〕+x
〔0〕*y〔1〕 =3×2=6 同様にして、pt〔2〕は3個の配列積の和で、 pt〔2〕=x〔2〕*y
〔0〕+x〔1〕*y〔1〕 +x
〔0〕*Y〔2〕=2+9=11 同じ位数3をもつ、pt〔4〕はx〔i〕が最大x′
〔4〕をとり、位数4をとる項数は4項である。
【0038】 pt〔4〕=x〔4〕*y
〔0〕+x〔3〕*y〔1〕 +x〔2〕*y〔2〕+x〔1〕*y〔3〕 +x
〔0〕*y〔4〕=3×2+12+5+12=35 次にpt〔5〕はx〔 〕の添字が4以上とれないの
で、y〔 〕の添字を1より始める。
【0039】 pt〔5〕=x〔4〕*y〔1〕+x〔3〕*y〔2〕 +x〔2〕*y〔3〕+x〔1〕*y〔4〕 =8+9+20=37 位数がN=5かそれ以上になると、x〔i〕*y〔j〕
のi,jの値が0をとることはなくなる。i,jが4以
上をとれず、k位数は5より大きくなるからである。
【0040】 pt〔6〕=x〔4〕*y〔2〕+x〔3〕*y〔3〕 +x〔2〕*y〔4〕=6+15+16=37 pt〔7〕=x〔4〕*y〔3〕+x〔3〕*y〔4〕 =10+12=22 pt〔8〕=x〔4〕*y〔4〕=8 以上ですべての位数積配列pt
〔0〕,…pt〔8〕が
手計算で求められたが、これは原理を理解して頂くため
のもので、コンピュータソフトウェアで、高速に計算さ
れる。
【0041】上記の位相積配列pt〔k〕をk=0より
順次求めると、単位操作がくりかえされ、尻数の送出,
桁移動と位数積の加算が行なわれ、尻数列q〔 〕の上
に被乗数,乗数の積の下の桁より1桁づつか次々に確定
するが、この直列的動作は桁の少ない桁移動か1桁の送
出か加算の程度であるから、極めて高速である。この時
間は用いるLSIによる所が大きいが、図3,4の流れ
図を見ても充分に高速性を求められる。本発明の原理図
表示である図2で
【0042】
【0043】のように、乗算のプロセスに入るとき、0
で途中で桁数の少ない部分を用いて、乗算処理を行な
い、終了で再び0とするので、累積式でないことは明ら
かである。
【0044】ただここで乗算の終了の仕方が2通りある
のを注意する。
【0045】図4では単位操作のpt
〔0〕からpt
〔8〕までであるpt〔8〕のときの最後の和の項が
【0046】
【0047】のように2桁となるので下の位の0が尻数
q〔8〕となり、上の位の1は(ACC−MQ)の末尾
の桁であるが、下の位の1に桁落ちして、尻数として、
〔9〕=1となる。このような操作はC言語では(A
CC−MQ)%loで行なわれる。%は10以下の剰余
をとり出す。loは10の記号化である。例えば35%
lo→5→.またC言語で/loは35/lo→3.と
なる。
【0048】以上のように、いかに巨大数であっても、
位数積配列pt〔k〕をx〔N−1〕…x
〔0〕,y
〔N−1〕…y
〔0〕のような被乗数,乗数の配列より
作成し、x〔i〕*y〔j〕のような配列積を位数順に
加算してpt
〔0〕…pt〔2(N−1)〕をつくれ
ば、尻数分離,桁下げ、pt〔k〕の加算による単位操
作によって複雑な場合も簡易に最終の積を尻数配列上の
定まる。
【0049】以上の乗算方式はコンピュータのソフトウ
ェアとして極めて高速,高桁に利用できるが、この場合
(1)分離積をもとめる演算を指数変換の小さい表1で
実行し、必要位数積を残し、不要となった分割積を消去
する方法をとると、メモリの大巾の減少を行なえる。ま
た一回の乗算を行なうことなしに、巨大数の高速乗算を
小さいメモリで行える利点はこれまでの如何なる乗算器
にて対応できなかったことである。小型パーソナルコン
ピュータにて、116桁(10進数,BCD)×116
桁も1mS以下で印字出力した例を図6に示す。
【0050】
【0051】乗算器内の小乗算をなくする指数変換法は
本特許出願人の特願にのべられている。
【0052】「複数法形高速乗算装置」特公昭60−4
2965号公報を参照されたい。
【0053】x〔i〕,y〔j〕のような被乗数,乗数
の配列の他に本乗算方式ではx〔i〕*y〔j〕のよう
な配列積やそれを同位数で加えた、例えばx〔1〕*y
〔0〕+x
〔0〕*y〔1〕=pt〔1〕のような配列
(位数積配列)が特に重要であるが、それを求めるとき
指数変換は便利である。
【0054】X=25,Y=37 …(1′) を考えると、 x〔1〕=2,x
〔0〕=5 …
(2′) y〔1〕=3,y
〔0〕=7 …(3′)
【0055】
【0056】は、位数積配列を求めるのに便利である。
この行列の右上の斜線の和は位数積を与える。*の積の
項があるが上の式をみるとy
〔0〕とy〔1〕が前後の
列で重なっている。
【0057】表2は残留(普通の数)を指数に、表1は
指数を元の普通数に変換します。
【0058】
【0059】ここで(41)の行列の中のx
〔0〕*y
〔0〕を指数変換で求めよう。表1より x
〔0〕=5の指数εx
〔0〕=24.y
〔0〕=7の
指数 εy
〔0〕=9. 指数の和=εx
〔0〕+εy
〔0〕=24+9=33 指数和の逆変換を表2でしらべると、33は35であ
る。
【0060】 指数の和=3=表2→35←→x
〔0〕*y
〔0〕 35はx
〔0〕=5とy
〔0〕=7の積である。
【0061】一般にx〔i〕とy〔j〕の指数をεx
〔i〕,εy〔j〕とすると、x〔j〕とy〔j〕の積
は x〔i〕*y〔j〕=(εx〔i〕+εy〔j〕)→表
2=積. 同様x
〔0〕*y〔1〕=εx
〔0〕+εy〔1〕=2
4+69=93→表2=15 x〔1〕*y
〔0〕=εx〔1〕+εy
〔0〕=1+9
=10→表2=14 x〔1〕*y〔1〕=2×3=6=εx〔1〕+εy
〔1〕=70→表2=6 このように指数の和から、元数の積が求まる。指数和が
100以上に出たときは100以上をとりさります。1
20→20を指数和とする。配列積のような積をすべて
このような加算のみで求めることは演算速度の向上とコ
ンピュータのメモリの有効利用に役立ち、とくに表1,
表2をint re{16}={…},int ex
{100}={… }のような整数配列にして、変数
の一方のメモリの番地で代行すると、演算速度はメモリ
のアクセス時間となり、位数積配列の高速処理となる。
このような処理はC言語においてはよく用いられる。
【0062】さて前より
【0063】
【0064】となるので、pt
〔0〕=x
〔0〕*y
〔0〕=35. pt〔1〕=x〔1〕*y
〔0〕+x
〔0〕*y〔1〕
=14+15=29. pt〔2〕=x〔1〕*y〔1〕=6. 本発明のこのような計算はすべて、プログラムの上のソ
フト構成で実行されるが、位数積配列があって、始めて
尻数乗算による単位操作ができるので、内部を検討する
ために、基本事項も簡単に説明した。
【0065】〔LSIとしての実用化〕図5にその例を
示している。被乗数X,乗数Yに対する入力部は通常の
LSIと同様であるが、本方式をLSI化するときは3
2×32ビットが最低で、高桁の場合が実用化の対象と
なる。桁数を多くとるためには、16進数のBCD数に
よる表現が適当であろう。図5の場合は位数積配列の作
られた状態からの尻数乗算のLSI化である。x
〔i〕,y〔j〕配列からpt〔k〕までの変換はメモ
リICと変換プログラムがあればよい。x〔i〕*y
〔j〕の分割積二次元配列はメモリを用するので、pt
〔k〕の一次元配列に変換したのち、消去する方がよ
い。ここの処理はC言語のメモリモジュールへの配分で
充分行える。
【0066】図5に示すのはpt〔k〕の各出力段への
配分の問題で、図2,3,4の場合と大分異なる。これ
らの場合を前者とすると、前者は1個尻数桁1桁の一次
元配列への積のデコーダによる直列配分である。ただこ
の各々が単位操作で行なわれる。図5の同様であるが、
初段と終段は分配用で分けるだけであるが、第2段との
終段の間はBCD加算器の列で、前段の尻数配列を作る
出力の他の出力は次段へゆく。
【0067】pt
〔0〕=21,pt〔1〕=38,p
t〔2〕=97, pt〔3〕=84,pt〔4〕=54 とすると加算器などの出力側は ′をつけると pt′
〔0〕=pt
〔0〕 pt′
〔0〕=21,q
〔0〕=1 pt〔1〕=38 pt′〔1〕=pt〔1〕+pt
〔0〕/lo =38+2=40 pt′〔1〕%lo=0=q〔1〕 このようなpt′〔 〕の式がpt〔 〕に対して作ら
れICの出力側と次段への入力をうる。このようにチェ
ーンにするためpt′〔k〕の表現が必要である。接続
線のみでよい。
【0068】
【発明の効果】以上の説明で明らかなように、本発明は
位数積と尻数による単本操作により短かい数に対しての
みの演算で、高桁の巨大数乗算を高速に誤差なく実行す
る。
【図面の簡単な説明】
【図1】従来の累算式乗算器のフローを示す図
【図2】本発明の一実施例のフローを示す図
【図3】本発明の一実施例による比較的小さい数の乗算
の流れを示す図
【図4】本発明の一実施例のよる5桁の数の乗算の流れ
を示す図
【図5】本発明の一実施例を実現するLSIの構成を示
す図
【図6】本発明の一実施例をC言語で実行した場合の印
字出力例を示す図

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 L進数(L≧2)で表わされる第0乃至
    第(N−1)桁x〔0〕〜x〔N−1〕のN(N≧2)
    桁の被乗数Xと前記L進数(L≧2)で表わされる第0
    乃至第(M−1)桁y〔0〕〜y〔M−1〕のM(M≧
    2)桁の乗数Yとを乗算し、前記被乗数Xと前記乗数Y
    との積Qを求める乗算方式であって、前記被乗数Xの配
    列x〔i〕0←i←N−1,Yの配列y〔j〕0←j←
    N−1の配列積をx〔i〕*y〔j〕=P〔i〕〔j〕
    とし、i+jの値の位数kと定義し、kの小さいものか
    ら、P〔i,j〕次の式に基づいて作成する第1の演算
    工程と、 pt〔0〕=P〔0〕〔0〕 =x〔0〕*y〔0〕 pt〔1〕=P〔1〕〔0〕+P〔0〕〔1〕 =x〔1〕*y〔0〕+x〔0〕*y〔1〕 pt〔2〕=P〔2〕〔0〕+P〔1〕〔1〕+P〔0〕〔2〕 =p〔2〕*y〔0〕+x〔1〕*y〔1〕*y〔1〕 +x〔0〕*y〔2〕 前記位数積の位数順の実行を尻数の出力と残留数の桁下
    げと次の位数積との加算による単位操作の繰り返しによ
    り、累積によらずに次々と尻数を算出する第2の演算工
    程とを有することを特徴とする尻数型乗算方式。
  2. 【請求項2】 前記第2の演算工程は、被乗数X,乗数
    Yの一桁x〔i〕,y〔j〕とするとき、次の表1によ
    りて、 指数εx〔i〕,εy〔j〕のように変換され、この時
    配列積x〔i〕*y〔j〕はεx〔i〕+εy〔j〕の
    指数和が2桁以下の時は次の表2で対応数を見出し、 指数和が3桁になると3桁目は0とする、ことを特徴と
    する請求項3記載の尻数型乗算方式。
  3. 【請求項3】 被乗数,乗数X,Yを投入する端子板に
    接続するx〔N−1〕,…x〔0〕;y〔N−1〕,…
    y〔0〕を生じて、x〔i〕*y〔j〕の列からpt
    〔0〕,…pt〔2(N−1)〕を発生するプロセサー
    IC1と主にBCD加算器の列をおく第2のプロセサー
    IC2とよりなる構成された pt′〔k〕=pt〔k〕+pt〔k−1〕′/lo (ただしloは10進数の10に相当する。/はカット
    するときのC言語の記号で、例えば40/lo=4.%
    は10以下のとり出し。例えば43%lo=3.pt′
    〔k〕%lo=q〔k〕である。IC1にCコンパイラ
    ーを入れた構成は乗算器の機能の拡大につながる)を満
    足するように構成されたことを特徴とする非累算で尻数
    機能をBCD加算器列で実現するプロセサーを含むLS
    I。
JP4002471A 1992-01-09 1992-01-09 乗算装置 Expired - Lifetime JP2818512B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4002471A JP2818512B2 (ja) 1992-01-09 1992-01-09 乗算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4002471A JP2818512B2 (ja) 1992-01-09 1992-01-09 乗算装置

Publications (2)

Publication Number Publication Date
JPH05204610A true JPH05204610A (ja) 1993-08-13
JP2818512B2 JP2818512B2 (ja) 1998-10-30

Family

ID=11530237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4002471A Expired - Lifetime JP2818512B2 (ja) 1992-01-09 1992-01-09 乗算装置

Country Status (1)

Country Link
JP (1) JP2818512B2 (ja)

Also Published As

Publication number Publication date
JP2818512B2 (ja) 1998-10-30

Similar Documents

Publication Publication Date Title
Ercegovac et al. Digital arithmetic
Erle et al. Decimal multiplication with efficient partial product generation
EP0149248A2 (en) Method and apparatus for division using interpolation approximation
EP1672481B1 (en) Division and square root arithmetic unit
US8959134B2 (en) Montgomery multiplication method
JPH05233228A (ja) 浮動小数点演算装置およびその演算方法
JPS6347874A (ja) 算術演算装置
JPS6217770B2 (ja)
EP0442356A2 (en) Weighted-delay column adder and method of organizing same
US4346451A (en) Dual moduli exponent transform type high speed multiplication system
Premkumar A formal framework for conversion from binary to residue numbers
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
JP3660075B2 (ja) 除算装置
JPH05204610A (ja) 尻数型乗算方式
JPS58129653A (ja) 乗算方式
US5883825A (en) Reduction of partial product arrays using pre-propagate set-up
JPH0816903B2 (ja) 積和演算回路
JP2737933B2 (ja) 除算装置
JPH0831024B2 (ja) 演算プロセッサ
JP2777265B2 (ja) 高基数開平演算装置
SU651341A1 (ru) Устройство дл умножени
JP2508286B2 (ja) 平方根演算装置
SU711570A1 (ru) Арифметическое устройство
Parhami Double-least-significant-bits 2's-complement number representation scheme with bitwise complementation and symmetric range
SU748409A1 (ru) Устройство дл умножени двоично- дес тичных чисел

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070821

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080821

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080821

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090821

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090821

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100821

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100821

Year of fee payment: 12

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100821

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110821

Year of fee payment: 13

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110821

Year of fee payment: 13

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 14

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 14