JP3105577B2 - 分割積型乗算装置 - Google Patents

分割積型乗算装置

Info

Publication number
JP3105577B2
JP3105577B2 JP03172711A JP17271191A JP3105577B2 JP 3105577 B2 JP3105577 B2 JP 3105577B2 JP 03172711 A JP03172711 A JP 03172711A JP 17271191 A JP17271191 A JP 17271191A JP 3105577 B2 JP3105577 B2 JP 3105577B2
Authority
JP
Japan
Prior art keywords
product
multiplicand
multiplier
digit
register
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
JP03172711A
Other languages
English (en)
Other versions
JPH04348422A (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 JP03172711A priority Critical patent/JP3105577B2/ja
Publication of JPH04348422A publication Critical patent/JPH04348422A/ja
Application granted granted Critical
Publication of JP3105577B2 publication Critical patent/JP3105577B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は乗算装置に関し、特に、
高桁数値の乗算を行うことが可能な乗算装置に関する。
【0002】
【従来の技術】高桁数値の乗算は非線形計画法(NP)
問題を解く過程とか階乗計算を含む科学技術の数値計算
過程でしばしば現れる。数値が20億以下であれば、3
2ビット以下の数値として32ビットの乗算プロセッサ
などで1クロックで乗算が可能である。
【0003】従来、それ以上の桁の数値に対しては、浮
動小数点演算を使用せざるを得ず、従って、高精度で乗
算を行うことが不可能である。微小な誤差が許される場
合は浮動小数点演算でも構わない。しかしながら、誤差
の累積が許されない場合もあり、浮動小数点演算では解
決できない問題が増大しつつある。
【0004】このように、科学技術が進歩した現在で
は、ますます高桁数値の高精度乗算が要求されるように
なってきている。
【0005】次に、従来の乗算方式について説明する。
【0006】周知のように、計算機で実行される乗算に
は2進数の数値が使用される。被乗数及び乗数がそれぞ
れN桁及びM桁であるとする。この場合、従来の乗算方
式では、原則的に乗数の桁数に等しいM個の部分積があ
り、この部分積を左へ1桁づつシフトさせて加算するの
が一般的である。ここで、乗数のビットが“0”の桁に
対応する部分積は省くことができ、ビットが“1”の桁
に対応する部分積は被乗数のビット列を並べたもので構
成できる。32ビット×32ビットを越える乗算は部分
積の数と桁数が極めて大きくなる。その結果、従来の乗
算方式では、多数の部分積を記憶するために、乗算に大
きな記憶領域を必要とする。
【0007】これを改良・改善するため、桁上げの遅れ
を補償するCLA回路(キャリー先見回路)やキャリー
セーブ回路、あるいは部分積の数を半分とするブースの
乗算器などが採用されている。
【0008】
【発明が解決しようとする課題】このような改良・改善
にも拘らず、通常の乗算方式では、ビット数が増大する
と、整数乗算が実施困難となる。その為、乗算すべき数
値が高桁となると部分積の数が増し、これが部分積を加
算する際に発生する桁上りの回数を増大させ、高桁数値
の乗算を困難にしている。その結果、最悪の場合、乗算
のために長時間の演算時間を必要とする。
【0009】したがって本発明の目的は、高精度で高桁
数値の乗算を行うことが可能な乗算装置を提供すること
にある。
【0010】本発明の他の目的は、乗算のために大きな
記憶領域を必要としない乗算装置を提供することにあ
る。
【0011】
【課題を解決するための手段】本発明では、従来の部分
積に基づく乗算方式とは全く異なる分解した積を使用す
る。この分解した積を、この明細書では分割積と呼ぶ。
従って、本発明による乗算装置を“分割積型乗算装置”
と呼ぶことにする。
【0012】本発明の要旨を説明すると、分割積型乗算
装置は、L(L≧2)進数で表される第0乃至第(N−
1)桁x[0]〜x[N−1]のN(N≧)桁の被乗
数Xと上記L進数で表される第0乃至第(M−1)桁y
[0]〜y[M−1]のM(M≧)桁の乗数Yとを乗
算し、上記被乗数Xと上記乗数Yとの積Qを求める。上
記積Qは第0乃至第(N+M−1)桁q[0]〜q[N
+M−1]の(N+M)桁の上記L進数で表される。
【0013】
【0014】本発明のある態様によれば、上述した分割
積型乗算装置は、上記被乗数Xの第0乃至第(N−1)
桁x[0]〜x[N−1]をそれぞれ第0乃至第(N−
1)被乗数アドレスに記憶する被乗数記憶手段と、上記
乗数Yの第0乃至第(M−1)桁y[0]〜y[M−
1]をそれぞれ第0乃至第(M−1)乗数アドレスに記
憶する乗数記憶手段と、位数k(k=i+j)を0から
(N+M−2)へ上記位数kが順次昇順に大きくなるよ
うに変化することによって、上記被乗数Xの第i(0≦
j≦N−1)桁x[i]及び上記乗数Yの第j(0≦j
≦M−1)桁y[j]をそれぞれ上記被乗数記憶手段の
第i被乗数アドレス及び上記乗数記憶手段の第j乗数ア
ドレスから順次読み出す読出し手段と、上記被乗数Xの
上記第i桁x[i]と上記乗数Yの上記j桁y[j]と
の分割積p(x[i],y[j])を求める分割積演算
手段と、上記分割積p(x[i],y[j])を上記位
数kの小さいものから順次累積して、上記積Qを第0桁
q[0]から第(N+M−1)桁q[N+M−1]へ昇
順に順次出力する累積手段と、上記積Qを記憶するため
の積記憶手段と、上記積Qの上記第0乃至第(N+M−
1)桁q[0]〜q[N+M−1]をそれぞれ上記積記
憶手段の第0乃至第(N+M−1)積アドレスへ順次格
納する格納手段と、を有し、上記累積手段は、上記分割
積p(x[i],y[j])を保持する分割積保持レジ
スタと、累積途中結果を保持すると共に、等しい上記位
数kを共通に持つ上記分割積p(x[i],y[j])
に対する累積の実行が終了する度に供給される、右シフ
トパルスに応答してその保持内容を右に1桁だけシフト
アウトするシフトレジスタと、上記分割積保持レジスタ
の内容と上記シフトレジスタの内容とを加算し、該加算
結果を上記累積途中結果として上記シフトレジスタに戻
す加算器とから構成されることを特徴とする。
【0015】
【作用】次に、本発明の分割積型乗算装置の原理につい
て説明する。
【0016】周知のように、乗算装置は、2つの数値、
すなわち、被乗数Xに乗数Yを掛けて、被乗数Xと乗数
Yとの積Qを出力する装置である。一般に、被乗数Xは
N(N≧)桁からなり、乗数YはM(M≧)桁から
なるこの場合、積Qは(N+M)桁からなる。被乗数
X、乗数Yおよび積Qの各々は、一般に、L(L≧2)
進数で表される。
【0017】このような事情のもとでは、被乗数Xは第
0乃至第(N−1)桁x[0]〜x[N−1]で表され
る。乗数Yは第0乃至第(M−1)桁y[0]〜y[M
−1]で表せる。そして、積Qは第0乃至第(N+M−
1)桁q[0]〜q[N+M−1]で表される。
【0018】もし被乗数X、乗数Yおよび積Qの各々が
10進法(L=10)で表されるなら、被乗数X、乗数
Yおよび積Qの各々は4ビットすなわち2進化10進
(BCD)コードで表される。被乗数Xおよび乗数Yが
4桁(N=M=4)で、それぞれ、X=2867および
Y=5304の場合、被乗数Xおよび乗数Yは、それぞ
れ、以下のような、第0乃至第3桁x[0]〜x[3]
および第0乃至第3桁y[0]〜y[3]によって表さ
れる。
【0019】 x[0]=7,x[1]=6,x[2]=8,x[3]=2, y[0]=4,y[1]=0,y[2]=3,y[3]=5. 分割積p(x[i],y[j])は、下記の数式1によ
って、被乗数Xの第i(0≦i≦N−1)桁x[i]と
乗数Yの第j(0≦j≦M−1)桁y[j]との積とし
て定義される。
【0020】
【数1】
【0021】また、第1の変数iと第2の変数jとの和
は、下記の数式2で表される、整数kを規定する。
【0022】
【数2】
【0023】この整数を分割積p(x[i],y
[j])の位数と呼ぶ。例えば、被乗数Xの第2桁x
[2]と乗数Yの第0桁y[0]が、上記例のように、
それぞれ、8および4に等しいとき(x[2]=8,y
[0]=4)、分割積p(x[2],y[0])は32
に等しく(p(x[2],y[0])=32)、位数k
は2に等しい(k=2)。分割積p(x[2],y
[0])は積Qの第2桁102 の位に位置する。一般
に、位数kをもつ分割積p(x[i],y[j])は、
積Qの第k桁Lk の位に位置する。
【0024】従って、被乗数Xの第0乃至第(N−1)
桁x[0]〜x[N−1]をそれぞれ被乗数記憶手段の
第0乃至第(N−1)被乗数アドレスに記憶し、乗数Y
の第0乃至第(M−1)桁y[0]〜y[M−1]をそ
れぞれ乗数記憶手段の第0乃至第(M−1)乗数アドレ
スに記憶しておき、読出し手段によって、位数kを0か
ら(N+M−2)へ位数kが順次昇順に大きくなるよう
に変化することによって、被乗数Xの第i(0≦j≦N
−1)桁x[i]及び乗数Yの第j(0≦j≦M−1)
桁y[j]をそれぞれ被乗数記憶手段の第i被乗数アド
レス及び乗数記憶手段の第j乗数アドレスから順次読み
出すことにより、位数kが同じとなる演算の組み合わせ
をまとめて行うことができ、これによって、積Qは、累
積手段によって、分割積p(x[i],y[j])を
数kの小さいものから順次累積することによって、第0
桁q[0]から第(N+M−1)桁q[N+M−1]へ
昇順に順次得られる。累積手段は、分割積p(x
[i],y[j])を保持する分割積保持レジスタと、
累積途中結果を保持すると共に、等しい位数kを共通に
持つ分割積p(x[i],y[j])に対する累積の実
行が終了する度に供給される、右シフトパルスに応答し
てその保持内容を右に1桁だけシフトアウトするシフト
レジスタと、分割積保持レジスタの内容とシフトレジス
タの内容とを加算し、この加算結果を累積途中結果とし
てシフトレジスタに戻す加算器とから構成されている。
このように、積Qの各桁の値が確定する度に、当該桁の
値がシフトレジスタからシフトアウトされるので、累積
手段のハードウェア量が少なくて済む。
【0025】ところで、分割積p(x[i],y
[j])はN行×M列の整数型要素から成る二次元配列
として構成できる。換言すれば、分割積p(x[i],
y[j])は二次元配列の(i+1)行(j+1)列の
整数要素に対応づけられる。このような二次元配列は、
既に、スコットランドの数学者である、ネーピア(15
50〜1617)によって、1617年に「ネーピアの
骨」と呼ばれる装置と等価である。この装置は乗算と除
算の計算を容易にする。それは、各々が9つに等分割さ
れた骨棒からなる。しかしながら、そのような二次元配
列は、被乗数Xおよび乗数Yの各々が多数の桁によって
表されるとき、大きな記憶領域を必要とする。後述する
ように、分割積型乗算装置は大きな記憶領域を必要とす
ることなく乗算を実行する。
【0026】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
【0027】図1を参照すると、本発明の一実施例によ
る分割積型乗算装置は、L(L≧2)進数で表される第
0乃至第(N−1)桁x[0]〜x[N−1]のN(N
≧2)桁の被乗数XとL進数で表される第0乃至第(M
−1)桁y[0]〜y[M−1]のM(M≧2)桁の乗
数Yとを乗算し、被乗数Xと乗数Yとの積Qを求める。
積Qは第0乃至第(N+M−1)桁q[0]〜q[N+
M−1]の(N+M)桁のL進数で表される。
【0028】被乗数Xは被乗数メモリ11に格納され、
乗数Yは乗数メモリ12に格納されている。もっと詳細
に述べると、被乗数メモリ11の第0乃至第(N−1)
被乗数アドレスAx[0]〜Ax[N−1]には、それ
ぞれ被乗数Xの第0乃至第(N−1)桁x[0]〜x
[N−1]が格納されている。同様に、乗数メモリ12
の第0乃至第(M−1)乗数アドレスAy[0]〜Ay
[M−1]には、それぞれ乗数Yの第0乃至第(M−
1)桁y[0]〜y[M−1]が格納されている。
【0029】被乗数メモリ11と乗数メモリ12とは読
出し回路13によってアクセスされ、その内容が読み出
される。すなわち、読出し回路13は、位数k(k=i
+j)を0から(N+M−2)へ昇順に順次変化するこ
とによって、被乗数Xの第i(0≦i≦N−1)桁x
[i]及び乗数Yの第j(0≦j≦M−1)桁y[j]
をそれぞれ被乗数メモリ11の第i被乗数アドレス及び
乗数メモリ12の第j乗数アドレスから順次読み出す。
読出し回路13の詳細については後で説明する。
【0030】被乗数メモリ11と乗数メモリ12とは第
1及び第2のデータ線16及び17を介して乗算回路1
4に接続されている。被乗数メモリ11及び乗数メモリ
12から読み出された被乗数Xの第i桁x[i]及び乗
数Yの第j桁y[j]の対は、第1及び第2のデータ線
16及び17を介して乗算回路14へ送出される。従っ
て、第1及び第2のデータ線16及び17は、一纏めに
して、乗算回路14へ被乗数Xの第i桁x[i]及び乗
数Yの第j桁y[j]を供給する供給手段として働く。
【0031】乗算回路14は被乗数Xの第i桁x[i]
と乗数Yの第j桁y[j]との分割積p(x[i],y
[j])を計算する。乗算回路14は分割積演算手段と
して働く。乗算回路14の一例については後述する。
【0032】乗算回路14で計算された分割積p(x
[i],y[j])は累積回路18に供給される。累積
回路18は、位数kの等しい分割積を選択することによ
って、分割積p(x[i],y[j])を位数kの小さ
いものから順次累積する。累積回路18は、積Qすなわ
ち第d桁(0≦d≦N+M−1)q[d]を、第0桁q
[0]から第(N+M−1)桁q[N+M−1]へ昇順
に順次出力する。累積回路18の詳細な構成については
後で説明する。
【0033】積メモリ19は積Qを記憶するためのもの
である。累積回路18から出力された積Qは格納回路2
0によって積メモリ19に格納される。詳細に述べる
と、格納回路20は、積Qの第0乃至第(N+M−1)
桁q[0]〜q[N+M−1]をそれぞれ積メモリ19
の第0乃至第(N+M−1)積アドレスAq[0]〜A
q[N+M−1]に格納する。
【0034】乗算回路14は指数変換型乗算器であって
も良い。指数変換型乗算器には、被乗数Xの第i桁x
[i]と乗数Yの第j桁y[j]とが一対の剰余数とし
て供給される。もし必要なら、そのような指数変換型乗
算器の詳細については、本発明者が既に『複数法形高速
乗算装置』という名称で提案した特公昭60−4296
5号公報を参照されたい。
【0035】図2を参照すると、乗算回路すなわち指数
変換型乗算器14は、被乗数/指数変換回路21と、乗
数/指数変換回路22と、加算回路23と、逆指数変換
回路24とを有する。
【0036】被乗数/指数変換回路21は被乗数Xの第
i桁x[i]を第1の指数a[i]に指数変換する。同
様に、乗数/指数変換回路22は乗数Yの第j桁y
[j]を第2の指数b[j]に指数変換する。加算回路
23は第1の指数a[i]と第2の指数b[j]のモジ
ュロL2 指数和(a[i]+b[j])modL2 を求
める。逆指数変換回路24はモジュロL2 指数和(a
[i]+b[j])modL2 を逆指数変換して分割積
p(x[i],y[j])を求める。
【0037】被乗数/指数変換回路21及び乗数/指数
変換回路22の各々は、下記の表1に従って、指数変換
を行う。
【0038】
【表1】
【0039】表1はLが10に等しい(L=10)場合
の、剰余数と指数との対応を示している。
【0040】逆指数変換回路24は、下記の表2に従っ
て、逆指数変換を行う。
【0041】
【表2】
【0042】表2は指数と剰余数との対応を示してい
る。
【0043】例えば、もし被乗数Xの第i桁x[i]及
び乗数Yの第j桁y[j]がそれぞれ7および9に等し
ければ、表1から明らかなように、第1の指数a[i]
及び第2の指数b[j]はそれぞれ9および38に等し
い、モジュロL2 指数和(a[i]+b[j])mod
102 は47に等しい、従って、分割積p(x[i],
y[j])は、表1から明らかなように、63に等し
い。
【0044】勿論、乗算回路14は、周知の乗算器、例
えば、上記32ビット乗算プロセッサでも良い。この場
合、Lは232に等しい。
【0045】図3を参照すると、累積回路18は、MD
レジスタ26と、加算器27と、ACCレジスタ28
と、MQレジスタ29とを有する。ACCレジスタ28
とMQレジスタ29とは互いに接続され、1つの大きな
シフトレジスタとして働く。ACCレジスタ28とMQ
レジスタ29とは一纏めにしてACC−MQレジスタと
呼ばれる。MDレジスタ26には乗算回路14(図1)
から分割積p(x[i],y[j])が順次供給され
る。MDレジスタ26は加算器27の左側入力端子に接
続されている。加算器27はACC−MQレジスタに接
続された出力端子をもつ。ACC−MQレジスタは加算
器27の右側入力端子に接続されている。ACC−MQ
には、後述するように、右シフト(RS)パルスが供給
される。
【0046】累積動作を始めるために、ACC−MQレ
ジスタはクリアされ、零にリセットされる。
【0047】第1のステージにおいて、MDレジスタ2
6には分割積p(x[0],y[0])がロードされ
る。MDレジスタ26の内容とACC−MQレジスタの
内容が加算器27によって加算される。結果の和はAC
C−MQレジスタに戻される。右シフトパルスが供給さ
れると、ACC−MQレジスタは右に1桁だけシフトさ
れる。その結果、MQレジスタ29の内容は積Qの第0
桁q[0]としてシフトアウトされ、ACCレジスタ2
8の1つの低桁はMQレジスタ29にその新しい内容と
して置かれる。
【0048】次の第2のステージにおいて、MDレジス
タ26には分割積p(x[0],y[1])がロードさ
れる。MDレジスタ26の内容とACC−MQレジスタ
の内容が加算器27によって加算される。結果の和はA
CC−MQレジスタに戻される。続いて、MDレジスタ
26の内容とACC−MQレジスタの内容が加算器27
によって加算される。結果の和はACC−MQレジスタ
に戻される。従って、累積が、1に等しい位数kを共通
に持つ分割積p(x[1],y[0])と分割積p(x
[0],y[1])とに対して実行される。右シフトパ
ルスが供給されると、ACC−MQレジスタは右に1桁
だけシフトされる。その結果、MQレジスタ29の内容
は積Qの第1桁q[1]としてシフトアウトされ、AC
Cレジスタ28の1つの低桁はMQレジスタ29にその
新しい内容として置かれる。
【0049】同様な動作が分割積p(x[N−1],y
[M−1])が使用されるまで繰り返される。このよう
に、積Qの各桁の値が確定する度に、その値がシフトレ
ジスタからシフトアウトされるので、累積回路14のハ
ードウェア量が少なくて済む。
【0050】図1乃至図3を参照して説明した乗算装置
の実際の動作について説明する。次を仮定する。第1の
予め定められた自然数Nは3に等しい。第2の予め定め
られた自然数Mは第1の予め定められた自然数Nに等し
い。予め定められた整数Lは10に等しい。乗算装置
は、それぞれ10進で456および10進で789に等
しい被乗数Xと乗数Yの積Qを計算する。MQレジスタ
29は4ビットレジスタで、ACCレジスタ28は16
ビットレジスタである。
【0051】図示の例において、被乗数Xは、以下によ
って与えられる第0乃至第2桁x[0]〜x[2]によ
って表される。
【0052】 x[0]=6,x[1]=5,x[2]=4. 同様に、乗数Yは、以下によって与えられる第0乃至第
2桁y[0]〜y[2]によって表される。
【0053】 y[0]=9,y[1]=8,y[2]=7. 乗算回路14を使用することによって、以下のように、
分割積p(x[0],y[0]),p(x[1],y
[0]),p(x[0],y[1]),p(x[0],
y[2]),p(x[1],y[1]),p(x
[2],y[0]),p(x[2],y[1]),p
(x[1],y[2]),p(x[2],y[2])が
得られる。
【0054】p(x[0],y[0])=54, p(x[1],y[0])=45, p(x[0],y[1])=48, p(x[0],y[2])=42, p(x[1],y[1])=40, p(x[2],y[0])=36, p(x[2],y[1])=32, p(x[1],y[2])=35, p(x[2],y[2])=28.
【0055】累積動作を始めるために、ACC−MQレ
ジスタはクリアされる。すなわち、 ACC−MQ 0 0 0 0 0. 累積動作の第1のステージにおいて、分割積p(x
[0],y[0])すなわち54がACC−MQレジス
タの内容すなわち0に加算され、結果の和がACC−M
Qレジスタに戻される。すなわち、 ACC−MQ 0 0 0 5 4. 右シフトパルスが供給されると、ACC−MQレジスタ
は1桁だけ右にシフトされ、積Qの第0桁q[0]、す
なわち、4がMQレジスタ29からシフトアウトされ
る。すなわち、 ACC−MQ 0 0 0 0 5.=>4 q[0]=4. 累積動作の第2のステージにおいて、分割積p(x
[1],y[0])すなわち45がACC−MQレジス
タの内容すなわち5に加算され、結果の和がACC−M
Qレジスタに戻される。すなわち、 ACC−MQ 0 0 0 5 0. 続いて、分割積p(x[0],y[0])すなわち48
がACC−MQレジスタの内容すなわち50に加算さ
れ、結果の和がACC−MQレジスタに戻される。すな
わち、 ACC−MQ 0 0 0 9 8. 右シフトパルスが供給されると、ACC−MQレジスタ
が1桁だけ右にシフトされ、積Qの第1桁q[1]、す
なわち、8がMQレジスタ29からシフトアウトされ
る。すなわち、 ACC−MQ 0 0 0 0 9.=>8 q[1]=8.
【0056】累積動作の第3ステージにおいて、分割積
p(x[0],y[2])すなわち42がACC−MQ
レジスタの内容すなわち9に加算され、結果の和がAC
C−MQレジスタに戻される。すなわち、 ACC−MQ 0 0 0 5 1. 引き続いて、分割積p(x[1],y[1])すなわち
40がACC−MQレジスタの内容すなわち51に加算
され、結果の和がACC−MQレジスタに戻される。す
なわち、 ACC−MQ 0 0 0 9 1. 引き続いて、分割積p(x[2],y[0])すなわち
36がACC−MQレジスタの内容すなわち91に加算
され、結果の和がACC−MQレジスタに戻される。す
なわち、 ACC−MQ 0 0 1 2 7. 右シフトパルスが供給されると、ACC−MQレジスタ
が1桁だけ右にシフトされ、積Qの第2桁q[2]、す
なわち、7がMQレジスタ29からシフトアウトされ
る。すなわち、 ACC−MQ 0 0 0 1 2.=>7 q[2]=7.
【0057】累積動作の第4ステージにおいて、分割積
p(x[2],y[1])すなわち32がACC−MQ
レジスタの内容すなわち12に加算され、結果の和がA
CC−MQレジスタに戻される。すなわち、 ACC−MQ 0 0 0 4 4. 引き続いて、分割積p(x[1],y[2])すなわち
35がACC−MQレジスタの内容すなわち44に加算
され、結果の和がACC−MQレジスタに戻される。す
なわち、 ACC−MQ 0 0 0 7 9. 右シフトパルスが供給されると、ACC−MQレジスタ
が1桁だけ右にシフトされ、積Qの第3桁q[3]、す
なわち、9がMQレジスタ29からシフトアウトされ
る。すなわち、 ACC−MQ 0 0 0 0 7.=>9 q[3]=9.
【0058】累積動作の第5ステージにおいて、分割積
p(x[2],y[2])すなわち28がACC−MQ
レジスタの内容すなわち7に加算され、結果の和がAC
C−MQレジスタに戻される。すなわち、 ACC−MQ 0 0 0 3 5. 右シフトパルスが供給されると、ACC−MQレジスタ
が1桁だけ右にシフトされ、積Qの第4桁q[4]、す
なわち、5がMQレジスタ29からシフトアウトされ
る。すなわち、 ACC−MQ 0 0 0 0 3.=>5 q[4]=5. 累積動作の第6すなわち最終ステージにおいて、右シフ
トパレスが供給されると、ACC−MQレジスタが1桁
だけ右にシフトされ、積Qの第5桁q[5]、すなわ
ち、3がMQレジスタ29からシフトアウトされる。す
なわち、 ACC−MQ 0 0 0 0 0.=>3 q[5]=3. その結果、積Qは10進で359,784に等しい。
【0059】図4に移って、読出し回路13は第1及び
第2のアップダウンカウンタ31及び32と、第1乃至
第4の比較器36,37,38,39と、コントローラ
40とを有する。次の事を仮定する。第0乃至第(N−
1)の被乗数アドレスAx[0]〜Ax[N−1]がそ
れぞれ0乃至(N−1)に等しい。第0乃至第(M−
1)の被乗数アドレスAy[0]〜Ay[M−1]がそ
れぞれ0乃至(M−1)に等しい。
【0060】第1のアップダウンカウンタ31には初期
に0がロードされ、コントローラ40の制御下でアップ
ダウンカウント動作を実行する。第1のアップダウンカ
ウンタ31は第iの被乗数アドレスAx[i]すなわち
iを被乗数メモリ11(図1)に供給する。同様に、第
2のアップダウンカウンタ32には初期に0がロードさ
れ、コントローラ40の制御下でアップダウンカウント
動作を実行する。第2のアップダウンカウンタ32は第
jの乗数アドレスAy[j]すなわちjを乗数メモリ1
2(図1)に供給する。
【0061】第1及び第2の比較器36及び37には共
通に0が供給される。第1及び第2の比較器36及び3
7には第1及び第2のアップダウンカウンタ31及び3
2から第iの被乗数アドレスAx[i]及び第jの乗数
アドレスAy[j]が供給される。第1の比較器36は
第iの被乗数アドレスAx[i]すなわちiと0とを比
較する。第1の比較器36は、第iの被乗数アドレスA
x[i]すなわちiが0に一致するとき、第1の一致信
号をコントローラ40へ供給する。同様に、第2の比較
器37は第jの被乗数アドレスAy[j]すなわちjと
0とを比較する。第2の比較器37は、第jの被乗数ア
ドレスAy[j]すなわちjが0に一致するとき、第2
の一致信号をコントローラ40へ供給する。
【0062】第3及び第4の比較器38及び39にはそ
れぞれ第1及び第2のアップダウンカウンタ31及び3
2から第iの被乗数アドレスAx[i]、すなわち、i
及び第jの乗数アドレスAy[j]、すなわち、jが供
給される。第3及び第4の比較器38及び39にはそれ
ぞれ(N−1)及び(M−1)が供給される。第3の比
較器38は第iの被乗数アドレスAx[i]すなわちi
と(N−1)とを比較する。第3の比較器38は、第i
の被乗数アドレスAx[i]すなわちiが(N−1)に
一致するとき、第3の一致信号をコントローラ40へ供
給する。同様に、第4の比較器39は第jの被乗数アド
レスAy[j]すなわちjと(M−1)とを比較する。
第4の比較器39は、第jの被乗数アドレスAy[j]
すなわちjが(M−1)に一致するとき、第2の一致信
号をコントローラ40へ供給する。
【0063】第1乃至第4の一致信号が供給されるコン
トローラ40は、位数kに基づいて、次の説明のよう
に、第1及び第2のアップダウンカウンタ31及び32
のアップダウンカウント動作を制御する。
【0064】図5は図4に示された読出し回路13の動
作を説明するために使用されるアドレスマップを示す。
図示のアドレスマップにおいて、第iの被乗数アドレス
Ax[i]、すなわち、iが、それぞれ、アドレスマッ
プの第1乃至第N行に表されるように、0と(N−1)
との間で可変である。同様に、第jの被乗数アドレスA
y[j]、すなわち、jが、それぞれ、アドレスマップ
の第1乃至第M列に表されるように、0と(M−1)と
の間で可変である。
【0065】上述したように、読出し回路13は、第i
の被乗数アドレスAx[i]すなわちiと第jの被乗数
アドレスAy[j]すなわちjとをそれぞれ被乗数メモ
リ11と乗数メモリ12に供給する。
【0066】位数kが0に等しい場合において、コント
ローラ40は初期に第1及び第2のアップダウンカウン
タ31及び32の両方に0をセットする。従って、第1
及び第2のアップダウンカウンタ31及び32は、アド
レスマップの1行1列に示されるように、第iの被乗数
アドレスAx[i]および第jの被乗数アドレスAy
[j]としてそれぞれ0および0を出力する。このと
き、第1及び第2の比較器36及び37は第1及び第2
の一致信号を出力する。第1及び第2の一致信号に応答
して、コントローラ40は位数kを1だけ増加する。こ
の結果、位数kは1に等しくなる。
【0067】位数kが1に等しいとき、コントローラ4
0は第1のアップダウンカウンタ31を1だけカウント
アップさせる。従って、第1及び第2のアップダウンカ
ウンタ31及び32は、アドレスマップの2行1列に示
されるように、第iの被乗数アドレスAx[i]および
第jの被乗数アドレスAy[j]としてそれぞれ1およ
び0を出力する。このとき、第2の比較器37は第2の
一致信号を出力する。第2の一致信号に応答して、コン
トローラ40は第1及び第2のアップダウンカウンタ3
1及び32をそれぞれ1だけカウントダウンおよびアッ
プさせる。従って、第1及び第2のアップダウンカウン
タ31及び32は、アドレスマップの1行2列に示され
るように、第iの被乗数アドレスAx[i]および第j
の被乗数アドレスAy[j]としてそれぞれ0および1
を出力する。このとき、第1の比較器36は第1の一致
信号を出力する。第1の一致信号に応答して、コントロ
ーラ40は位数kを1だけ増加する。この結果、位数k
は2に等しくなる。
【0068】位数kが2に等しいとき、コントローラ4
0は第2のアップダウンカウンタ32を1だけカウント
アップさせる。従って、第1及び第2のアップダウンカ
ウンタ31及び32は、アドレスマップの1行3列に示
されるように、第iの被乗数アドレスAx[i]および
第jの被乗数アドレスAy[j]としてそれぞれ0およ
び2を出力する。このとき、第1の比較器36は第1の
一致信号を出力する。第1の一致信号に応答して、コン
トローラ40は第1及び第2のアップダウンカウンタ3
1及び32をそれぞれ1だけカウントアップおよびダウ
ンさせる。従って、第1及び第2のアップダウンカウン
タ31及び32は、アドレスマップの2行2列に示され
るように、第iの被乗数アドレスAx[i]および第j
の被乗数アドレスAy[j]としてそれぞれ1および1
を出力する。コントローラ40には第1乃至第4の一致
信号のいずれも供給されないので、コントローラ40は
第1及び第2のアップダウンカウンタ31及び32をそ
れぞれ1だけカウントアップおよびダウンさせる。従っ
て、第1及び第2のアップダウンカウンタ31及び32
は、アドレスマップの3行1列に示されるように、第i
の被乗数アドレスAx[i]および第jの被乗数アドレ
スAy[j]としてそれぞれ2および0を出力する。こ
のとき、第2の比較器37は第2の一致信号を出力す
る。第2の一致信号に応答して、コントローラ40は位
数kを1だけ増加する。この結果、位数kは3に等しく
なる。
【0069】同様な動作が繰り返し行われる。第3の一
致信号に応答して、コントローラ40は位数kを1だけ
増加し、それから第1及び第2のアップダウンカウンタ
31及び32をそれぞれ1だけカウントダウンおよびア
ップさせる。第4の一致信号に応答して、コントローラ
40は位数kを1だけ増加し、それから第1及び第2の
アップダウンカウンタ31及び32をそれぞれ1だけカ
ウントアップおよびダウンさせる。
【0070】最終的に、第1及び第2のアップダウンカ
ウンタ31及び32は、アドレスマップのN行M列に示
されるように、第iの被乗数アドレスAx[i]および
第jの被乗数アドレスAy[j]としてそれぞれ(N−
1)および(M−1)を出力する。上述から明らかなよ
うに、読出し回路13はアドレスマップの矢印で示され
る軌跡に沿って、一対のiの被乗数アドレスAx[i]
および第jの被乗数アドレスAy[j]を順次出力す
る。
【0071】
【発明の効果】以上の説明で明らかなように、本発明に
よれば、分割積に基づいて乗算を行っているので、高桁
数値の乗算を、不正確な浮動小数点演算を用いることな
く、高精度で安定に実行することができる。また、被乗
数Xの第0乃至第(N−1)桁x[0]〜x[N−1]
をそれぞれ被乗数記憶手段の第0乃至第(N−1)被乗
数アドレスに記憶し、乗数Yの第0乃至第(M−1)桁
y[0]〜y[M−1]をそれぞれ乗数記憶手段の第0
乃至第(M−1)乗数アドレスに記憶しておき、読出し
手段によって、位数kを0から(N+M−2)へ位数k
が順次昇順に大きくなるように変化することによって、
被乗数Xの第i(0≦j≦N−1)桁x[i]及び乗数
Yの第j(0≦j≦M−1)桁y[j]をそれぞれ被乗
数記憶手段の第i被乗数アドレス及び乗数記憶手段の第
j乗数アドレスから順次読み出すようにしているので、
位数kが同じとなる演算の組み合わせをまとめて行うこ
とができ、動作が単純化されるという利点がある。さら
に、分割積を累積するための累積手段は、分割積を保持
する分割積保持レジスタと、累積途中結果を保持すると
共に、等しい位数kを共通に持つ分割積に対する累積の
実行が終了する度に供給される、右シフトパルスに応答
してその保持内容を右に1桁だけシフトアウトするシフ
トレジスタと、分割積保持レジスタの内容とシフトレジ
スタの内容とを加算し、この加算結果を累積途中結果と
してシフトレジスタに戻す加算器とから構成されてお
り、積の各桁の値が確定する度に、当該桁の値がシフト
レジスタからシフトアウトされるので、累積手段のハー
ドウェア量が少なくて済むという利点もある。
【図面の簡単な説明】
【図1】本発明の一実施例による乗算装置のブロック図
である。
【図2】図1に示される乗算装置に使用される乗算回路
のブロック図である。
【図3】図1に示される乗算装置に使用される累積回路
のブロック図である。
【図4】図1に示される乗算装置に使用される読出し回
路のブロック図である。
【図5】図4に示される読出し回路の動作を説明するた
めに使用されるアドレスマップである。
【符号の説明】
11 被乗数メモリ 12 乗数メモリ 13 読出し回路 14 乗算回路 16 データ線 17 データ線 18 累積回路 19 積メモリ 20 格納回路 21 被乗数/指数変換回路 22 乗数/指数変換回路 23 加算器 24 逆指数変換回路 26 MDレジスタ 27 加算器 28 ACCレジスタ 29 MQレジスタ 31 アップダウンカウンタ 32 アップダウンカウンタ 36 比較器 37 比較器 38 比較器 39 比較器 40 コントローラ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−112141(JP,A) 特開 昭60−108932(JP,A) 特公 昭60−42965(JP,B2)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 L(L≧2)進数で表される第0乃至第
    (N−1)桁x[0]〜x[N−1]のN(N≧2)桁
    の被乗数Xと上記L進数で表される第0乃至第(M−
    1)桁y[0]〜y[M−1]のM(M≧2)桁の乗数
    Yとを乗算し、上記被乗数Xと上記乗数Yとの積Qを求
    める乗算装置であって、上記積Qは第0乃至第(N+M
    −1)桁q[0]〜q[N+M−1]の(N+M)桁の
    上記L進数で表され、 上記被乗数Xの第0乃至第(N−1)桁x[0]〜x
    [N−1]をそれぞれ第0乃至第(N−1)被乗数アド
    レスに記憶する被乗数記憶手段と、 上記乗数Yの第0乃至第(M−1)桁y[0]〜y[M
    −1]をそれぞれ第0乃至第(M−1)乗数アドレスに
    記憶する乗数記憶手段と、 位数k(k=i+j)を0から(N+M−2)へ上記位
    数kが順次昇順に大きくなるように変化することによっ
    て、上記被乗数Xの第i(0≦j≦N−1)桁x[i]
    及び上記乗数Yの第j(0≦j≦M−1)桁y[j]を
    それぞれ上記被乗数記憶手段の第i被乗数アドレス及び
    上記乗数記憶手段の第j乗数アドレスから順次読み出す
    読出し手段と、 上記被乗数Xの上記第i桁x[i]と上記乗数Yの上記
    j桁y[j]との分割積p(x[i],y[j])を求
    める分割積演算手段と、 上記分割積p(x[i],y[j])を上記位数kの小
    さいものから順次累積して、上記積Qを第0桁q[0]
    から第(N+M−1)桁q[N+M−1]へ昇順に順次
    出力する累積手段と、上記積Qを記憶するための積記憶手段と、 上記積Qの上記第0乃至第(N+M−1)桁q[0]〜
    q[N+M−1]をそれぞれ上記積記憶手段の第0乃至
    第(N+M−1)積アドレスへ順次格納する格納手段
    と、 を有し、上記累積手段は、上記分割積p(x[i],y
    [j])を保持する分割積保持レジスタと、累積途中結
    果を保持すると共に、等しい上記位数kを共通に持つ上
    記分割積p(x[i],y[j])に対する累積の実行
    が終了する度に供給される、右シフトパルスに応答して
    その保持内容を右に1桁だけシフトアウトするシフトレ
    ジスタと、上記分割積保持レジスタの内容と上記シフト
    レジスタの内容とを加算し、該加算結果を上記累積途中
    結果として上記シフトレジスタに戻す加算器とから構成
    されることを特徴とする分割積型乗算装置。
  2. 【請求項2】 上記分割積演算手段は、 上記被乗数Xの上記第i桁x[i]を第1の指数a
    [a]に指数変換する被乗数/指数変換手段と、 上記乗数Yの上記第j桁y[j]を第2の指数b[j]
    に指数変換する乗数/指数変換手段と、 上記第1の指数a[i]と上記第2の指数b[j]
    ジュロL2指数和を求める加算回路と、 上記モジュロL2指数和を逆指数変換して上記分割積p
    (x[x],y[j])を求める逆指数変換回路と、 からなる請求項記載の分割積型乗算装置。
JP03172711A 1990-07-13 1991-07-12 分割積型乗算装置 Expired - Lifetime JP3105577B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03172711A JP3105577B2 (ja) 1990-07-13 1991-07-12 分割積型乗算装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-184076 1990-07-13
JP18407690 1990-07-13
JP03172711A JP3105577B2 (ja) 1990-07-13 1991-07-12 分割積型乗算装置

Publications (2)

Publication Number Publication Date
JPH04348422A JPH04348422A (ja) 1992-12-03
JP3105577B2 true JP3105577B2 (ja) 2000-11-06

Family

ID=26494977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03172711A Expired - Lifetime JP3105577B2 (ja) 1990-07-13 1991-07-12 分割積型乗算装置

Country Status (1)

Country Link
JP (1) JP3105577B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6042965A (ja) * 1983-08-19 1985-03-07 Hitachi Ltd デ−タ信号変調回路
JPS60108932A (ja) * 1983-11-18 1985-06-14 Hitachi Ltd 十進演算処理装置
JPS60112141A (ja) * 1983-11-22 1985-06-18 Sony Corp 乗算回路

Also Published As

Publication number Publication date
JPH04348422A (ja) 1992-12-03

Similar Documents

Publication Publication Date Title
US4754421A (en) Multiple precision multiplication device
US5768170A (en) Method and apparatus for performing microprocessor integer division operations using floating point hardware
US4707798A (en) Method and apparatus for division using interpolation approximation
US3978326A (en) Digital polynomial function generator
EP0158530B1 (en) Nonrestoring divider
JPS6347874A (ja) 算術演算装置
JPS60140463A (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
US6728739B1 (en) Data calculating device and method for processing data in data block form
US4374427A (en) Divisor transform type high-speed electronic division system
US3290493A (en) Truncated parallel multiplication
JP2502836B2 (ja) 除算回路の前処理装置
JP3105577B2 (ja) 分割積型乗算装置
US4604723A (en) Bit-slice adder circuit
US5214599A (en) Advanced dimensional processing with division
JP2508286B2 (ja) 平方根演算装置
US4323978A (en) Arithmetic element based on the DDA principle
JP2624738B2 (ja) 丸め処理方式
JP2606580B2 (ja) 数値データ演算方法
JP3226823B2 (ja) 高精度高桁乗算装置
US4141077A (en) Method for dividing two numbers and device for effecting same
SU754415A1 (ru) Устройство для деления двоичных чисел 1
JP2960595B2 (ja) ディジタル信号プロセッサ
JPH0833815B2 (ja) 高桁乗算装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960625

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

Free format text: PAYMENT UNTIL: 20080901

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080901

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 11

EXPY Cancellation because of completion of term