JP2818512B2 - 乗算装置 - Google Patents

乗算装置

Info

Publication number
JP2818512B2
JP2818512B2 JP4002471A JP247192A JP2818512B2 JP 2818512 B2 JP2818512 B2 JP 2818512B2 JP 4002471 A JP4002471 A JP 4002471A JP 247192 A JP247192 A JP 247192A JP 2818512 B2 JP2818512 B2 JP 2818512B2
Authority
JP
Japan
Prior art keywords
product
order
digit
sum
group
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 - Lifetime
Application number
JP4002471A
Other languages
English (en)
Other versions
JPH05204610A (ja
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.)
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

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】本発明では、従来の部分積に基づく累算的
な乗算方式とは明らかに一線をかくするもので、従来の
乗算方式とは全く異なる位数積という新しい積を利用
し、最終積を特別に全く新しい考え方の尻数を用いるこ
とにより、非累算的な超高速の求積がえられる。すなわ
ち、本発明は、L進数(L≧2)で表されるN桁(N≧
2)の被乗数Xと前記L進数で表されるM桁(M≧2)
の乗数Yとを乗算し、前記被乗数Xと前記乗数Yとの積
Qを求める乗算装置において、 前記被乗数Xを構成する
任意の1つの数値と前記乗数Yを構成する任意の1つの
数値との全ての組み合わせを、組み合わされる2つの数
値の前記被乗数,前記乗数における位を示す位数0〜N
−1,0〜M−1の和の種類毎に、位数の和0から(N
−1)+(M−1)までのグループにグループ化し、各
グループ毎に、組み合わされる2つの数値の乗算値をそ
のグループに属する全組み合わせについて加算した値を
求めて該値を各グループ毎の位数積とする位数積算出手
段と、 位数の和が0となるグループの位数積の最下位桁
を尻数として出力すると共に最下位桁以外の数値を1桁
だけ桁下げしたものを現時点の残留数とし、位数の和が
1のグループの位数積から位数の和が(N−1)+(M
−1)のグループの位数積まで順に、現時点の残留数と
位数積とを加算して該加算値の最下位桁を尻数として出
力すると共にその加算値の最下位桁以外の数値を1桁だ
け桁下げしたものを現時点の残留数とする演算を繰り返
す演算手段とを備え、 前記出力した尻数および演算終了
時点の前記残留数を並べたものが前記積Qとなることを
特徴とする。 より具体的には、前記演算手段は、以下の
(A)または(B)のように構成される。 (A)入力された数値が最後の数値でないときは、入力
された数値の最下位桁の数値を尻数として出力すると共
に最下位桁以外の数値を1桁だけ桁下げしたものを残留
数として出力し、入力された数値が最後の数値であると
きは、入力された数値の最下位桁の数値および上位桁が
あるときはその上位桁の数値を尻数として出力するレジ
スタと、 位数の和が0となるグループの位数積から(N
−1)+(M−1)となるグループの位数積まで順に1
つずつ位数積を入力し、該入力した位数積と前記レジス
タから出力される残留数とを加算し、その加算結果を前
記レジスタに出力する加算器と、 前記レジスタから出力
される尻数を、その出力順に前記積QのL 0 ,L 1
…,L (N-1)+(M-1)+1 の位の値とするデコーダとを備え
る構成。 (B)位数の和が0となるグループの位数積を入力し、
入力した数値の最下位桁の数値を尻数として出力すると
共に最下位桁以外の数値を1桁だけ桁下げしたものを残
留数として出力する第1の配分器と、位数の和が1から
(N−1)+(M−1)となるグループに1対1に対応
する複数の加算器であって、それぞれ、対応するグルー
プの位数積と、残留数とを入力し、両者を加算した結果
の最下位桁の数値を尻数として出力すると共に最下位桁
以外の数値を1桁だけ桁下げしたものを残留数として出
力する複数の加算器と、残留数を入力し、入力した残留
数を尻数として出力する第2の配分器とを含み、位数の
和が1のグループに対応する加算器の残留数の入力には
前記第1の配分器から出力された残留数が入力され、前
記第2の配分器の残留数の入力には位数の和が(N−
1)+(M−1)のグループに対応する加算器の残留数
が入力され、位数の和が2から(N−1)+(M−1)
までのグループに対応する加算器の残留数の入力には自
加算器の次に位数の和の小さいグループに対応する加算
器から出力された残留数が入力されるように、前記第1
の配分器,前記複数の加算器および前記第2の配分器が
1列に接続されており、前記第1の配分器から出力され
る尻数を前記積QのL 0 の位の値、位数の和が1から
(N−1)+(M−1)となるグループに1対1に対応
する前記複数の加算器から出力される尻数を前記積Qの
1 からL (N-1)+(M-1) の位の値、前記第2の配分器か
ら出力される尻数を前記QのL (N-1)+(M-1)+1 の値と
して出力する構成。
【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〔〕は1桁の整数であるか
ら、両者の積で与えられる整数は2桁か1桁である。こ
のような積を配列積という。この配列積をP〔i,j〕
と2次元配列的に表記すると、以下のように定義され
る。 P〔i,j〕=x〔i〕*〔j〕 …(5) かし、本来は配列積はi+j=kの位数の一次元配列
である。次に、(3),(4)式を用いて、幾つかの例
を以下に示す。
〔0〕*y
〔0〕=8×1=8×100+0 =8×100 =8 …(6) x〔1〕*y
〔0〕=7×1=7 …(7) P〔0,1〕=x
〔0〕*y〔1〕=8×3=24 x〔i〕,y〔j〕の添字i,jを考えるとき、その添
字の和を配列積の位数という。配列積の位数をkとする
と、次式が成立する。
【0019】 i+j=k …(8) (6)式の位数は位数k=0である。(7)式の第1,
第2式は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】ここで(4)の行列の中のx
〔0〕*y
〔0〕を指数変換で求めよう。表1より
〔0〕=5の指数εx
〔0〕=24
〔0〕=7の指数εy
〔0〕=9 指数の和=εx
〔0〕+指数εy
〔0〕=24+9=33なので、指数の和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 (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 L進数(L≧2)で表されるN桁(N≧
    2)の被乗数Xと前記L進数で表されるM桁(M≧2)
    の乗数Yとを乗算し、前記被乗数Xと前記乗数Yとの積
    Qを求める乗算装置において、 前記被乗数Xを構成する任意の1つの数値と前記乗数Y
    を構成する任意の1つの数値との全ての組み合わせを、
    組み合わされる2つの数値の前記被乗数,前記乗数にお
    ける位を示す位数0〜N−1,0〜M−1の和の種類毎
    に、位数の和0から(N−1)+(M−1)までのグル
    ープにグループ化し、各グループ毎に、組み合わされる
    2つの数値の乗算値をそのグループに属する全組み合わ
    せについて加算した値を求めて該値を各グループ毎の位
    数積とする位数積算出手段と、 位数の和が0となるグループの位数積の最下位桁を尻数
    として出力すると共に最下位桁以外の数値を1桁だけ桁
    下げしたものを現時点の残留数とし、位数の和が1のグ
    ループの位数積から位数の和が(N−1)+(M−1)
    のグループの位数積まで順に、現時点の残留数と位数積
    とを加算して該加算値の最下位桁を尻数として出力する
    と共にその加算値の最下位桁以外の数値を1桁だけ桁下
    げしたものを現時点の残留数とする演算を繰り返す演算
    手段とを備え、 前記出力した尻数および演算終了時点の前記残留数を並
    べたものが前記積Qとなることを特徴とする乗算装置。
  2. 【請求項2】 L進数(L≧2)で表されるN桁(N≧
    2)の被乗数Xと前記L進数で表されるM桁(M≧2)
    の乗数Yとを乗算し、前記被乗数Xと前記乗数Yとの積
    Qを求める乗算装置において、 前記被乗数Xを構成する任意の1つの数値と前記乗数Y
    を構成する任意の1つの数値との全ての組み合わせを、
    組み合わされる2つの数値の前記被乗数,前記乗数にお
    ける位を示す位数0〜N−1,0〜M−1の和の種類毎
    に、位数の和0から(N−1)+(M−1)までのグル
    ープにグループ化し、各グループ毎に、組み合わされる
    2つの数値の乗算値をそのグループに属する全組み合わ
    せについて加算した値を求めて該値を各グループ毎の位
    数積とする位数積算出手段と、 入力された数値が最後の数値でないときは、入力された
    数値の最下位桁の数値を尻数として出力すると共に最下
    位桁以外の数値を1桁だけ桁下げしたものを残 留数とし
    て出力し、入力された数値が最後の数値であるときは、
    入力された数値の最下位桁の数値および上位桁があると
    きはその上位桁の数値を尻数として出力するレジスタ
    と、 位数の和が0となるグループの位数積から(N−1)+
    (M−1)となるグループの位数積まで順に1つずつ位
    数積を入力し、該入力した位数積と前記レジスタから出
    力される残留数とを加算し、その加算結果を前記レジス
    タに出力する加算器と、 前記レジスタから出力される尻数を、その出力順に前記
    積QのL 0 ,L 1 ,…,L (N-1)+(M-1)+1 の位の値とす
    るデコーダとを備えることを特徴とする乗算装置。
  3. 【請求項3】 L進数(L≧2)で表されるN桁(N≧
    2)の被乗数Xと前記L進数で表されるM桁(M≧2)
    の乗数Yとを乗算し、前記被乗数Xと前記乗数Yとの積
    Qを求める乗算装置において、 前記被乗数Xを構成する任意の1つの数値と前記乗数Y
    を構成する任意の1つの数値との全ての組み合わせを、
    組み合わされる2つの数値の前記被乗数,前記乗数にお
    ける位を示す位数0〜N−1,0〜M−1の和の種類毎
    に、位数の和0から(N−1)+(M−1)までのグル
    ープにグループ化し、各グループ毎に、組み合わされる
    2つの数値の乗算値をそのグループに属する全組み合わ
    せについて加算した値を求めて該値を各グループ毎の位
    数積とする位数積算出手段と、 位数の和が0となるグループの位数積を入力し、入力し
    た数値の最下位桁の数値を尻数として出力すると共に最
    下位桁以外の数値を1桁だけ桁下げしたものを残留数と
    して出力する第1の配分器と、位数の和が1から(N−
    1)+(M−1)となるグループに1対1に対応する複
    数の加算器であって、それぞれ、対応するグループの位
    数積と、残留数とを入力し、両者を加算した結果の最下
    位桁の数値を尻数として出力すると共に最下位桁以外の
    数値を1桁だけ桁下げしたものを残留数として出力する
    複数の加算器と、残留数を入力し、入力した残留数を尻
    数として出力する第2の配分器とを含み、位数の和が1
    のグループに対応する加算器の残留数の入力には前記第
    1の配分器から出力された残留数が入力され、前記第2
    の配分器の残留数の入力には位数の和が(N−1)+
    (M−1)のグループ に対応する加算器の残留数が入力
    され、位数の和が2から(N−1)+(M−1)までの
    グループに対応する加算器の残留数の入力には自加算器
    の次に位数の和の小さいグループに対応する加算器から
    出力された残留数が入力されるように、前記第1の配分
    器,前記複数の加算器および前記第2の配分器が1列に
    接続されており、前記第1の配分器から出力される尻数
    を前記積QのL 0 の位の値、位数の和が1から(N−
    1)+(M−1)となるグループに1対1に対応する前
    記複数の加算器から出力される尻数を前記積QのL 1
    らL (N-1)+(M-1) の位の値、前記第2の配分器から出力
    される尻数を前記QのL (N-1)+(M-1)+1 の値として出
    力する演算手段とを備えることを特徴とする乗算装置。
  4. 【請求項4】 前記L進数が10進数である場合、前記
    位数積算出手段は、1から9までの数値を、 1→0 2→1 3→69 4→2 5→24 6→70 7→9 8→3 9→38 のように変換する第1の変換表と、 1から100までの数値を、 1→2 2→4 3→8 4→16 5→32 6→64 7→27 8→54 9→7 10→14 11→28 12→56 13→11 14→22 15→44 16→88 17→75 18→49 19→98 20→95 21→89 22→77 23→53 24→5 25→10 26→20 27→40 28→80 29→59 30→17 31→34 32→68 33→35 34→70 35→39 36→78 37→55 38→9 39→18 40→36 41→72 42→43 43→86 44→71 45→41 46→82 47→63 48→25 49→50 50→100 51→99 52→97 53→93 54→85 55→69 56→37 57→74 58→47 59→94 60→87 61→73 62→45 63→90 64→79 65→57 66→13 67→26 68→52 69→3 70→6 71→12 72→24 73→48 74→96 75→91 76→81 77→61 78→21 79→42 80→84 81→67 82→33 83→66 84→31 85→62 86→23 87→46 88→92 89→83 90→65 91→29 92→58 93→15 94→30 95→60 96→19 97→38 98→76 99→51 100→1 のように変換する第2の変換表と、 各グループの組中の或る2つの数値の乗算結果を求める
    際、該2つの数値の各々に対応する数値を前記第1の変
    換表から得て、該得られた2つの数値を足し合わせた数
    値の下2桁に対応する数値を前記第2の変換表から得
    て、該得られた数値を前記2つの数値の乗算結果とする
    手段とを有することを特徴とする請求項1,2または3
    記載の乗算装置。
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 JPH05204610A (ja) 1993-08-13
JP2818512B2 true 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
JPH05204610A (ja) 1993-08-13

Similar Documents

Publication Publication Date Title
Ercegovac et al. Digital arithmetic
US4707798A (en) Method and apparatus for division using interpolation approximation
JP3244506B2 (ja) 小型乗算器
EP0158530B1 (en) Nonrestoring divider
JPH03208170A (ja) 数学関数の近似を計算する数値システム及び計算法
JPS6217770B2 (ja)
JPS6347874A (ja) 算術演算装置
US5184318A (en) Rectangular array signed digit multiplier
JP2000259394A (ja) 浮動小数点乗算器
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US4868777A (en) High speed multiplier utilizing signed-digit and carry-save operands
EP0416309A2 (en) Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
US4346451A (en) Dual moduli exponent transform type high speed multiplication system
US5144576A (en) Signed digit multiplier
US4366549A (en) Multiplier with index transforms modulo a prime or modulo a fermat prime and the fermat prime less one
US5537345A (en) Mathematical function processor utilizing table information
EP0428942B1 (en) Plural-bit recoding multiplier
JP2818512B2 (ja) 乗算装置
US4215419A (en) Method for binary multiplication of a number by a sum of two numbers and a digital system for implementation thereof
US4823300A (en) Performing binary multiplication using minimal path algorithm
KR100329914B1 (ko) 제산장치
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
JPH0816903B2 (ja) 積和演算回路
SU754415A1 (ru) Устройство для деления двоичных чисел 1

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