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
Links
Description
高桁数値の乗算を行うことが可能な乗算装置に関する。
問題を解く過程とか階乗計算を含む科学技術の数値計算
過程でしばしば現れる。数値が20億以下であれば、3
2ビット以下の数値として32ビットの乗算プロセッサ
などで1クロックで乗算が可能である。
動小数点演算を使用せざるを得ず、従って、高精度で乗
算を行うことが不可能である。微小な誤差が許される場
合は浮動小数点演算でも構わない。しかしながら、誤差
の累積が許されない場合もあり、浮動小数点演算では解
決できない問題が増大しつつある。
は、ますます高桁数値の高精度乗算が要求されるように
なってきている。
は2進数の数値が使用される。被乗数及び乗数がそれぞ
れN桁及びM桁であるとする。この場合、従来の乗算方
式では、原則的に乗数の桁数に等しいM個の部分積があ
り、この部分積を左へ1桁づつシフトさせて加算するの
が一般的である。ここで、乗数のビットが“0”の桁に
対応する部分積は省くことができ、ビットが“1”の桁
に対応する部分積は被乗数のビット列を並べたもので構
成できる。32ビット×32ビットを越える乗算は部分
積の数と桁数が極めて大きくなる。その結果、従来の乗
算方式では、多数の部分積を記憶するために、乗算に大
きな記憶領域を必要とする。
を補償するCLA回路(キャリー先見回路)やキャリー
セーブ回路、あるいは部分積の数を半分とするブースの
乗算器などが採用されている。
にも拘らず、通常の乗算方式では、ビット数が増大する
と、整数乗算が実施困難となる。その為、乗算すべき数
値が高桁となると部分積の数が増し、これが部分積を加
算する際に発生する桁上りの回数を増大させ、高桁数値
の乗算を困難にしている。その結果、最悪の場合、乗算
のために長時間の演算時間を必要とする。
数値の乗算を行うことが可能な乗算装置を提供すること
にある。
記憶領域を必要としない乗算装置を提供することにあ
る。
積に基づく乗算方式とは全く異なる分解した積を使用す
る。この分解した積を、この明細書では分割積と呼ぶ。
従って、本発明による乗算装置を“分割積型乗算装置”
と呼ぶことにする。
装置は、L(L≧2)進数で表される第0乃至第(N−
1)桁x[0]〜x[N−1]のN(N≧3)桁の被乗
数Xと上記L進数で表される第0乃至第(M−1)桁y
[0]〜y[M−1]のM(M≧3)桁の乗数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桁だけシフト
アウトするシフトレジスタと、上記分割積保持レジスタ
の内容と上記シフトレジスタの内容とを加算し、該加算
結果を上記累積途中結果として上記シフトレジスタに戻
す加算器とから構成されることを特徴とする。
て説明する。
すなわち、被乗数Xに乗数Yを掛けて、被乗数Xと乗数
Yとの積Qを出力する装置である。一般に、被乗数Xは
N(N≧3)桁からなり、乗数YはM(M≧3)桁から
なる。この場合、積Qは(N+M)桁からなる。被乗数
X、乗数Yおよび積Qの各々は、一般に、L(L≧2)
進数で表される。
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]で表される。
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]によって表さ
れる。
って、被乗数Xの第i(0≦i≦N−1)桁x[i]と
乗数Yの第j(0≦j≦M−1)桁y[j]との積とし
て定義される。
は、下記の数式2で表される、整数kを規定する。
[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 の位に位置する。
桁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の各桁の値が確定する度に、当該桁の
値がシフトレジスタからシフトアウトされるので、累積
手段のハードウェア量が少なくて済む。
[j])はN行×M列の整数型要素から成る二次元配列
として構成できる。換言すれば、分割積p(x[i],
y[j])は二次元配列の(i+1)行(j+1)列の
整数要素に対応づけられる。このような二次元配列は、
既に、スコットランドの数学者である、ネーピア(15
50〜1617)によって、1617年に「ネーピアの
骨」と呼ばれる装置と等価である。この装置は乗算と除
算の計算を容易にする。それは、各々が9つに等分割さ
れた骨棒からなる。しかしながら、そのような二次元配
列は、被乗数Xおよび乗数Yの各々が多数の桁によって
表されるとき、大きな記憶領域を必要とする。後述する
ように、分割積型乗算装置は大きな記憶領域を必要とす
ることなく乗算を実行する。
て説明する。
る分割積型乗算装置は、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進数で表される。
乗数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]が格納されている。
出し回路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の詳細については後で説明する。
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]を供給する供給手段として働く。
と乗数Yの第j桁y[j]との分割積p(x[i],y
[j])を計算する。乗算回路14は分割積演算手段と
して働く。乗算回路14の一例については後述する。
[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の詳細な構成については
後で説明する。
である。累積回路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]に格納する。
も良い。指数変換型乗算器には、被乗数Xの第i桁x
[i]と乗数Yの第j桁y[j]とが一対の剰余数とし
て供給される。もし必要なら、そのような指数変換型乗
算器の詳細については、本発明者が既に『複数法形高速
乗算装置』という名称で提案した特公昭60−4296
5号公報を参照されたい。
変換型乗算器14は、被乗数/指数変換回路21と、乗
数/指数変換回路22と、加算回路23と、逆指数変換
回路24とを有する。
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])を求める。
変換回路22の各々は、下記の表1に従って、指数変換
を行う。
の、剰余数と指数との対応を示している。
て、逆指数変換を行う。
る。
び乗数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に等し
い。
えば、上記32ビット乗算プロセッサでも良い。この場
合、Lは232に等しい。
レジスタ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)パルスが供給
される。
ジスタはクリアされ、零にリセットされる。
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にその新しい内容と
して置かれる。
タ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にその
新しい内容として置かれる。
[M−1])が使用されるまで繰り返される。このよう
に、積Qの各桁の値が確定する度に、その値がシフトレ
ジスタからシフトアウトされるので、累積回路14のハ
ードウェア量が少なくて済む。
の実際の動作について説明する。次を仮定する。第1の
予め定められた自然数Nは3に等しい。第2の予め定め
られた自然数Mは第1の予め定められた自然数Nに等し
い。予め定められた整数Lは10に等しい。乗算装置
は、それぞれ10進で456および10進で789に等
しい被乗数Xと乗数Yの積Qを計算する。MQレジスタ
29は4ビットレジスタで、ACCレジスタ28は16
ビットレジスタである。
って与えられる第0乃至第2桁x[0]〜x[2]によ
って表される。
2桁y[0]〜y[2]によって表される。
分割積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])が
得られる。
ジスタはクリアされる。すなわち、 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.
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.
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.
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に等しい。
第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)に等しい。
に0がロードされ、コントローラ40の制御下でアップ
ダウンカウント動作を実行する。第1のアップダウンカ
ウンタ31は第iの被乗数アドレスAx[i]すなわち
iを被乗数メモリ11(図1)に供給する。同様に、第
2のアップダウンカウンタ32には初期に0がロードさ
れ、コントローラ40の制御下でアップダウンカウント
動作を実行する。第2のアップダウンカウンタ32は第
jの乗数アドレスAy[j]すなわちjを乗数メモリ1
2(図1)に供給する。
通に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へ供給する。
れぞれ第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へ供給する。
トローラ40は、位数kに基づいて、次の説明のよう
に、第1及び第2のアップダウンカウンタ31及び32
のアップダウンカウント動作を制御する。
作を説明するために使用されるアドレスマップを示す。
図示のアドレスマップにおいて、第iの被乗数アドレス
Ax[i]、すなわち、iが、それぞれ、アドレスマッ
プの第1乃至第N行に表されるように、0と(N−1)
との間で可変である。同様に、第jの被乗数アドレスA
y[j]、すなわち、jが、それぞれ、アドレスマップ
の第1乃至第M列に表されるように、0と(M−1)と
の間で可変である。
の被乗数アドレスAx[i]すなわちiと第jの被乗数
アドレスAy[j]すなわちjとをそれぞれ被乗数メモ
リ11と乗数メモリ12に供給する。
ローラ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に等しくなる。
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に等しくなる。
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に等しく
なる。
致信号に応答して、コントローラ40は位数kを1だけ
増加し、それから第1及び第2のアップダウンカウンタ
31及び32をそれぞれ1だけカウントダウンおよびア
ップさせる。第4の一致信号に応答して、コントローラ
40は位数kを1だけ増加し、それから第1及び第2の
アップダウンカウンタ31及び32をそれぞれ1だけカ
ウントアップおよびダウンさせる。
ウンタ31及び32は、アドレスマップのN行M列に示
されるように、第iの被乗数アドレスAx[i]および
第jの被乗数アドレスAy[j]としてそれぞれ(N−
1)および(M−1)を出力する。上述から明らかなよ
うに、読出し回路13はアドレスマップの矢印で示され
る軌跡に沿って、一対のiの被乗数アドレスAx[i]
および第jの被乗数アドレスAy[j]を順次出力す
る。
よれば、分割積に基づいて乗算を行っているので、高桁
数値の乗算を、不正確な浮動小数点演算を用いることな
く、高精度で安定に実行することができる。また、被乗
数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桁だけシフトアウトするシフ
トレジスタと、分割積保持レジスタの内容とシフトレジ
スタの内容とを加算し、この加算結果を累積途中結果と
してシフトレジスタに戻す加算器とから構成されてお
り、積の各桁の値が確定する度に、当該桁の値がシフト
レジスタからシフトアウトされるので、累積手段のハー
ドウェア量が少なくて済むという利点もある。
である。
のブロック図である。
のブロック図である。
路のブロック図である。
めに使用されるアドレスマップである。
Claims (2)
- 【請求項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】 上記分割積演算手段は、 上記被乗数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])を求める逆指数変換回路と、 からなる請求項1記載の分割積型乗算装置。
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)
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 | 乗算回路 |
-
1991
- 1991-07-12 JP JP03172711A patent/JP3105577B2/ja not_active Expired - Lifetime
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 |