JPH0511981A - 乗算処理装置 - Google Patents

乗算処理装置

Info

Publication number
JPH0511981A
JPH0511981A JP3222085A JP22208591A JPH0511981A JP H0511981 A JPH0511981 A JP H0511981A JP 3222085 A JP3222085 A JP 3222085A JP 22208591 A JP22208591 A JP 22208591A JP H0511981 A JPH0511981 A JP H0511981A
Authority
JP
Japan
Prior art keywords
value
circuit
digit
carry
input
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
JP3222085A
Other languages
English (en)
Other versions
JP2580413B2 (ja
Inventor
Akira Miyoshi
明 三好
Takashi Taniguchi
隆志 谷口
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3222085A priority Critical patent/JP2580413B2/ja
Publication of JPH0511981A publication Critical patent/JPH0511981A/ja
Application granted granted Critical
Publication of JP2580413B2 publication Critical patent/JP2580413B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 乗算結果を丸め処理し、その結果を次の乗算
に使用する繰り返し乗算を行う乗算処理装置を、少ない
素子数でしかも高速になるよう実現すること。 【構成】 乗数回路207において、最下位グループの
乗数リコード回路の基本単位101への下位からの桁上
げCj-1 として、0値生成回路105出力又は丸め桁上
げ生成回路106の出力値どちらかを選択して採用す
る。そして乗数リコード回路のリコード値と被乗数との
部分積を生成加算して丸め桁上げ生成回路106に入力
することにより、高速繰り返し乗算を行うようにしてい
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、LSI化に好適な高速
乗算処理装置に関するものであり、特に乗数をリコード
して部分積を生成する乗算処理装置に関するものであ
る。
【0002】
【従来の技術】乗算結果を丸め処理することによって精
度のよい繰り返し乗算が可能である。例えば、乗算結果
を次の乗算のオペランドとして取り込む繰り返し乗算を
考える。このとき乗数入力可能な桁数がn桁であるとす
ると、乗算結果はn桁以上になる。n桁以上の乗算結果
をn桁で切り捨てて、次の乗算のオペランドとして入力
すると、入力オペランド値は切り捨てられる前の乗算結
果と比べて、切り捨てられたオペランドの最下位桁の重
みを1とすれば、1未満の誤差が出て来る。これに対し
て最近接丸め処理を実行し、オペランドとして入力する
場合、誤差は最大1/2になる。即ち最近接丸め処理を
した場合には、次の乗算に入力されるオペランドが切り
捨てる場合に比べより正確になるため、精度のよい繰り
返し乗算が可能になる。
【0003】以下に、乗算毎に丸め処理を実行する繰り
返し乗算を実現するための従来例について述べる。従来
用いられていた、各乗算毎に丸め処理を実行する繰り返
し乗算処理装置のブロック図を図9に示す。901は選
択ラッチ、902、903、904、905はそれぞれ
ラッチであって、二相クロックph1,ph2により動
作する。906は、選択ラッチ901にラッチされた2
進数の乗数を下位桁より2ビットずつの集合に分割し、
各々の集合を−2から2までの値にリコードする2ビッ
トブースリコード回路である。907は、ラッチ902
にラッチされた被乗数と2ビットブースリコード回路9
06より出力されたリコード値とを用い、部分積を生成
加算し、加算結果を例えば冗長2進数の中間結果の形で
ラッチ903に出力する部分積生成加算回路である。9
08は、冗長2進数から2進数に変換する2進数変換回
路である。909は、2進数変換回路908によって2
進数に変換された乗算結果をある桁までに丸め処理する
丸め処理回路である。
【0004】図9に述べた乗算処理装置を用い、例えば
(1)式に示すような乗算を実行する。 Pn =Pn-1 ×Qn-1 ・・・(1) 最初に、Pn-1 は、乗数として選択ラッチ901に入力
され、Qn-1 は、被乗数としてラッチ902に入力され
る。(1)式に示される乗算は、2ビットブースリコー
ド回路906、部分積生成加算回路907を通り、冗長
2進数の中間結果としてラッチ903に取り込まれる。
次のサイクルでは、この中間結果をラッチ904でラッ
チし、2進数変換回路908で2進数に変換する。その
後、丸め処理回路909である桁までに丸め処理され、
ラッチ905に入力される。そして、次のサイクルで丸
め処理された結果は選択ラッチ901に入力され、次の
乗算Pn ×Qn を実行する。この時、ラッチ902に
は、データQn が取り込まれているものとする。すなわ
ち、従来の乗算毎に丸め処理を実行する繰り返し乗算に
おいては、乗算毎に、2進数変換回路908と、丸め処
理回路909を使用していた。
【0005】次に、ある定数Aから乗数を減算した値と
被乗数を乗算し、乗算結果を次の乗算の乗数とする繰り
返し乗算を行う従来例について説明する。図10は、従
来用いられていた乗算処理装置である。図10の中で、
図9に使用されているブロックと同じブロックは同じ番
号にしてある。1001は、選択ラッチ901によって
選択された数値をある定数Aから減算する減算回路であ
る。
【0006】以下に、図10に示す乗算処理装置を用
い、(2)式に示す、繰り返し乗算を実行する時の動作
について説明する。 Pn =(A−Pn-1 )×Qn-1 ・・・(2) 第1のサイクルでは、Pn-1 は、乗数として選択ラッチ
901に入力され、減算回路1001で(A−Pn-1
が実行され、2ビットブースリコード回路906に入力
される。一方Qn-1 は被乗数としてラッチ902に入力
され、部分積生成加算回路907で、乗数リコード値を
使用し部分積の生成加算が実行され、例えば冗長2進数
の中間結果を生成する。この中間結果は、ラッチ903
に取り込まれる。第2サイクルでは、この中間結果をラ
ッチ904でラッチし、2進数変換回路908で2進数
に変換する。そして丸め処理回路909によって有効桁
で丸め処理を行い、2進数乗算結果((A−Pn-1 )×
n-1 )をラッチ905にラッチする。第3サイクルで
は、選択ラッチ901は前のサイクルの乗算結果を選択
し、第1サイクルと同様に乗算を実行する。この後、第
2サイクル、第3サイクルの動作を繰り返して、第nサ
イクル目(nは偶数)において、2進数乗算結果を出力
する。
【0007】以上述べたように、ある定数Aから乗数を
減算した値と被乗数とを乗算し、乗算結果を次の乗算の
乗数とする繰り返し乗算においては、乗算毎に、定数か
ら乗数を減算する減算回路を使用していた。
【0008】また、図13は従来用いられていた、ある
定数Aから前の乗算により得られた中間積(冗長2進
数)を減算した値と被乗数を乗算する繰り返し乗算処理
装置のブロック図である。1301は冗長2進数と乗数
を選択し、クロックph1でラッチする選択ラッチであ
る。1302、1303、1304、1305はそれぞ
れクロックph1、ph2で動作するラッチである。1
306は冗長2進数2ビットブースリコード回路130
7の出力値とラッチ1302の出力をもとに部分積を生
成し加算し、冗長2進数形の中間積を出力する部分積生
成回路である。1307は冗長2進数加減算回路131
0の出力値を下位から2桁づつグループ化し、それぞれ
−2〜2までの値にリコードする冗長2進数2ビットブ
ースリコード回路である。1308はラッチ1304か
ら出力される冗長2進数中間積を2進数の乗算結果に変
換する2進数変換回路である。1309は、2進数変換
回路1308から出力された乗算結果を丸め処理し正規
化する丸め処理回路である。1310は、選択ラッチ1
301でラッチされた冗長2進数値とある定数Aを冗長
2進数加算する冗長2進数加減算回路である。但し、冗
長2進数加減算回路1310に2進数が入力された場合
は、ある定数Aは0にセットされるものとする。
【0009】次に、図13に示される乗算処理装置を用
いて、ある定数Aから前の乗算により得られた中間積
(冗長2進数)を減算した値と被乗数を乗算する動作に
ついて説明する。(2)式において、Pn-1 は前のサイ
クルで乗算の結果得られた冗長2進数形の中間結果であ
る。この中間結果は選択ラッチ1301により冗長2進
数加減算回路1310に入力される。合わせて、冗長2
進数加減算回路1310のもう片方の入力値としてある
定数Aが入力される。ここで、(2)式における(A−
n-1 )が実行される。また同時に、ラッチ1302に
は被乗数Qn-1 が入力され、乗算(A−Pn-1 )×Q
n-1 が実行される。
【0010】以上述べた、前のサイクルで乗算結果を中
間結果の形で繰り返し乗算する乗算処理装置において
は、ある定数Aから前のサイクルの乗算結果を減算する
ために冗長2進数加算回路が必要になっていた。このた
め、乗算の実行速度が遅くなり、またハードウェア量が
多くなるという問題があった。
【0011】以上3つの従来例では、中間結果は符号付
きディジット数の1つである冗長2進数の場合に付いて
述べたが、桁上げ保存の形で中間結果を出力するような
乗算回路や高基数を扱った繰り返し乗算回路において
も、同様な構成となる。
【0012】
【発明が解決しようとする課題】従来の乗算毎に丸め処
理を実行する繰り返し乗算処理装置においては、上記し
たように、乗算毎に2進数変換回路と丸め処理回路を使
用して、中間結果を2進数変換し丸め処理をしなくては
ならない。そのため繰り返し乗算速度が遅く、回路規模
も大きくなり、更には、消費電力も増大するという問題
があった。また、ある定数Aから乗数を減算した値と被
乗数を乗算し、乗算結果を次の乗算の乗数とする従来の
繰り返し乗算においては、上記したように、乗算毎に減
算回路を使用して、定数から乗算結果を減算しなくては
ならない。従って繰り返し乗算速度が遅く、回路規模も
大きくなり、更には消費電力も増大するという問題があ
った。
【0013】本発明は、上記従来の問題を解決し、高速
で、回路規模が小さく、しかも消費電力の少ない繰り返
し乗算に適した乗算処理装置を提供することを目的とす
るものである。
【0014】
【課題を解決するための手段】本願の請求項1の発明
は、基数ΥのM桁の数値をN桁の連続した集合に分割し
(M>=N)、該集合を入力とし、該集合の数値Zgi
をZgi =Ci ×ΥN +Si に従い中間和Si と中間桁
上げCi に分割する複数の中間和中間桁上げ生成手段、
中間和Si と1つ下位の集合からの中間桁上げCi-1
加算するリコード値生成手段を有するリコード回路と、
中間桁上げCi と同じフォーマットの1つ以上の数値の
中から1つを選択し、選択された値をリコード値生成手
段の1つ下位集合からの中間桁上げCi-1 として入力す
る選択回路と、リコード値生成手段より出力されるリコ
ード値に基づき被乗数との部分積を生成加算してリコー
ド回路に出力する部分積生成加算回路と、を具備するこ
とを特徴とするものである。
【0015】本願の請求項6の発明は、請求項1の乗算
処理装置において、中間和中間桁上げ生成手段は、基数
2の符号付きディジット数を2桁の連続した集合に分割
し、該集合の上位桁が1であるという信号Qi と一つ下
位集合からの信号Qi-1 を使用し、該集合値Zgi をZ
i =4×Ci +Si に従い、中間和Si 、中間桁上げ
i に分割し、さらにRi =Si +Qi-1 ,Bi =Ci
+Qi バーに従い第2の中間和Ri 、第2の中間桁上げ
i を生成するものであり、リコード値生成手段は、第
2の中間和Ri と一つ下位集合からの第2の中間桁上げ
i-1 を使用し、Zi =Ci-1 +Si =Bi-1 +Ri
1に従い、リコード値Zi を計算することを特徴とする
ものである。
【0016】本願の請求項7の発明は、請求項1の乗算
処理装置において、2-iの重みを持つ桁から上位に非零
の値を持ち、2-(i+1)の重みを持つ桁から下位が0であ
る2進数で表現された定数Aから、冗長2進数で表現さ
れたある数値B(但し数値Bは2進数に変換するとBb
±α・2-kに等しい。ここでBbは2-jの重みを持つ桁
から上位に非零の値を持つ乗数。1/2≦α<1、i,
j<k)なる数を減算しリコード回路に入力する乗算処
理装置であって、lをiとjのうち大きい方の値とする
と、最上位から2-l桁目までA−Bbを設定し、2
-(l+1)桁目から2-(l+m)桁目まで数値0を設定し(1 ≦
m≦k−l)、2-(l+m+1)桁目には、ある数値Bの2
-(l+m)桁目の値が数値0以外であれば数値Bの2
-(l+m+1)桁の値、数値0であればその符号反転値を設定
し、2-(l+m+2)桁目以下すべての桁には、ある数値Bの
-(l+m+2)桁目以下の符号反転値を設定し、リコード回
路の入力とする入力選択手段を具備することを特徴とす
るものである。
【0017】
【作用】本願の請求項1の発明は、上記した構成によ
り、リコード回路下位からの桁上げとして、選択回路に
より選択されたある数値を入力することで、リコード回
路入力数値と下位からの桁上げ数値を加算した数値をリ
コードする。これにより、乗算処理装置では、リコード
回路入力数値と前記下位からの桁上げ数値を加算した数
値と、被乗数の乗算が実行される。又請求項7及び9の
発明では、入力選択手段を設けることによって定数Aか
ら定数Bを減算し、リコード回路に入力することによっ
て繰り返し乗算を行えるようにしている。こうすれば特
に減算回路を設ける必要がなく、乗算処理を高速に行う
ことができる。
【0018】
【実施例】まず、本発明の一実施例である、乗算毎に中
間結果をリコード回路で丸め処理する繰り返し乗算を行
う演算回路について説明する。図1は、乗算の中間結果
Xを乗数として入力する時の乗数リコード回路及び桁上
げ生成回路のブロック図である。乗数リコード回路の基
本単位101は、乗数Xを2桁ずつの集合に分割しこれ
をリコードする回路で、中間和中間桁上げ生成回路10
2とリコード値生成回路103により構成される。中間
和中間桁上げ生成回路102は、入力数Xi+1 ,Xi
j番目の集合とし、この集合の持つ値をZgj とした
時、Zgj =22 ×Cj +Sj に従い、中間和Sj と中
間桁上げCj に分割する回路である。リコード値生成回
路103は、先に述べた中間和Sj と一つ下位の集合か
らの中間桁上げCj-1 を加算し、リコード値Zj を生成
する回路である。選択回路104は、0値生成回路10
5より出力されたCj =0に相当する数値と、丸め桁上
げ生成回路106により出力された丸めによる桁上げを
選択する回路である。0値生成回路105は、乗数リコ
ード回路の基本単位101に入力される中間桁上げC
j-1 =0に相当する数値を生成する回路である。丸め桁
上げ生成回路106は、Xi 以下の桁の値(Xi ,X
i-1 ,Xi-2 ・・・)を使用し、最近接丸めによる桁上
げを中間桁上げCj-1 のフォーマットに従い生成する回
路である。
【0019】図2は、図1に示される回路を使用した場
合の繰り返し乗算回路のブロック図である。201は選
択ラッチ、202、203、204、205はそれぞれ
ラッチである。それぞれのラッチは、二相クロックph
1,ph2により動作する。乗数リコード回路207、
桁上げ生成回路210は、図1に示した回路である。2
06は、ラッチ202にラッチされた被乗数と乗数リコ
ード回路207より出力されたリコード値を用い、部分
積を生成加算し、中間結果の形で出力する部分積生成加
算回路である。208は、中間結果を2進数に変換する
2進数変換回路である。209は、2進数変換回路20
8によって2進数に変換された乗算結果をある桁までに
丸め処理する丸め処理回路である。
【0020】次に、図1、図2に示される回路を用い、
(1)式に示される繰り返し乗算を実行する事を考え
る。最初に、Pn-1 は、乗数として選択ラッチ201に
入力され、Qn-1 は、被乗数としてラッチ202に入力
されるものとする。(1)式に示される乗算は、図1の
乗数リコード回路207、部分積生成加算回路206を
通り、中間結果としてラッチ203に取り込まれる。こ
の時、乗数リコード回路207では、下位からの桁上げ
として、0値生成回路105の出力値を選択入力する。
次のサイクルでは、この中間結果Pn-1 ×Qn-1 を選択
ラッチ201でラッチし、乗数リコード回路207でリ
コードする。この時、選択回路104は下位からの桁上
げとして丸め桁上げ生成回路106の出力値を選択す
る。このことにより、リコード回路207において、丸
めによる桁上げと丸められる桁より上位の値の加算がリ
コード回路で実現される。すなわち中間結果Pn-1 ×Q
n-1 は、乗数リコード回路207に入力された時、リコ
ードされると同時に丸め処理される。また同時に、ラッ
チ202にはQn が入力されており、次の乗算Pn ×Q
n が実行される。そして何回かこの繰り返し乗算が実行
された後、最後に2進数の結果を求める時、中間結果は
ラッチ204に取り込まれ、2進数変換回路208で変
換された後、丸め処理回路209で丸め処理され、2進
数の結果が得られる。
【0021】以上述べたように、本実施例では、乗算の
中間結果を用い繰り返し乗算を実行し、さらに、この中
間結果の丸め処理を乗数リコード回路で実行すること
で、高速に繰り返し乗算を実行している。
【0022】次に、本発明を使用した第1の実施例を、
図3を使用して説明する。図3は本発明の一実施例であ
る入力が冗長2進数の場合の2ビットブースのリコード
回路である。各桁の冗長2進数値Xは(表1)に示され
るように2ビット(Xp,Xm)でコーディングされて
いるとする。
【表1】
【0023】(表1)で、(Xp,Xm)=(1,1)
は使用禁止である。冗長2進数2ビットブースリコード
回路の基本単位301は、連続した2桁の冗長2進数を
入力し、−2から2までの数値にリコードする回路であ
る。選択回路302は、2つの入力された2進数から1
つの2進数を選択する回路である。丸め桁上げ生成回路
303は、入力されたデータを使用し、丸めによる桁上
げを生成する回路である。0値生成回路304は、冗長
2進数2ビットブースリコード回路の基本単位301の
下位桁からの桁上げが”0”になるようなBj-1 バー,
j-1 バーを生成する回路である。これは、繰り返し乗
算第1サイクル目に、リコード回路の下位桁からの桁上
げを”0”にするためのものである。すなわち、図3に
示す実施例では、冗長2進数2ビットブースリコード回
路の基本単位301の下位からの桁上げとして、X
i (Xpi ,Xmi )桁までに丸めるために生ずる丸め
による桁上げ値(丸め桁上げ生成回路303の出力値)
を入力するか、”0”値(0値生成回路304の出力
値)を入力するかを、選択回路302を用い選択し入力
している。以下に、上記した各部分の構成について述べ
る。
【0024】2ビットブースリコード回路の基本単位3
01を構成するための真理値表を図4に示す。 但しXi ,Xi+1 :入力数 Qj :Xi+1 が”1” Qj-1 :Xi-1 が”1” Cj :中間桁上げ Sj :中間和 Bj :Cj +Qj j :Sj +Qj-1 バー Xi 、Xi+1 は、入力値Xの2i 桁、2i+1 桁の値であ
る。この(Xi ,Xi+1 )の集合をj番目の集合である
とし、この集合の持つ値をZoj とする。リコードの為
の第1の手段として、前記j番目の集合を、この集合か
らの中間桁上げCj とこの集合の中間和Sj に分割す
る。ただし、中間桁上げCj は、−1から1までの値、
中間和Sj は、−2から2までの値をとるものとする。
すると、Zoj とCj とSj の関係は(3)式に示すよ
うになる。 Zoj =22 ×Cj +Sj =4×Cj +Sj ・・・(3) 例えば、Zoj =3((Xi+1 ,Xi )=(1,1))
の場合、(Cj ,Sj )=(1,−1)になる。しか
し、Zoj =2、−2((Xi+1 ,Xi )=(1,
0),(−1,0))の場合(Cj ,Sj )の組合せと
して2通りの取り方があるため、上記のように一意には
決まらない。この場合、下位グループからの桁上げ情報
を基に決定する。Qj は、j番目の集合内の上位桁の値
(Xi+1 )が、”1”であるという信号である。すなわ
ち、図4を参照すると、Qj =1は、その集合からCj
として、”1”または、”0”が上位集合へ上がるとい
うことを示している。また、Qj =0は、Cj とし
て、”0”または”−1”が上がるということを示して
いる。たとえば、Zoj =−2((Xi+1 ,Xi )=
(−1,0))の場合、(Cj ,Sj )=(0,−
2),(−1,2)の2通りの取り方がある。Qj-1
1の場合、Cj-1 =0または1であるから、Sj が負の
値である(Cj ,Sj )=(0,−2)を採用すること
にする。このことにより、次に示す第2の手段でCj-1
+Sj の加算値が−2から2までの数値範囲を越えない
ようになる。この様に一つ下位集合からのQj-1 を使用
し全ての場合の(Cj ,Sj )が決定される。
【0025】しかしこのままでは、Cj (−1から1)
を表現するのに2ビット、Sj (−2から2)を表現す
るのに3ビットの信号が必要であり、回路が複雑にな
る。回路を簡単にするため、ここでは(4)式に示すよ
うに、中間桁上げCj の代わりにBj ,中間桁上げSj
の代わりにRj を使用する。
【数1】
【0026】(4)式に従いBj ,Rj を求めると、図
4に示すように、Bj は0または1、Rj は、2、1、
0、−1となる。すなわち、Bj は1ビット、Rj は、
2ビットで表現され、Cj ,Sj を使用した場合に比べ
回路が簡単になる。ここで、Rj をR1j とR2j を用
い(表2)に示すように割り当てる。
【表2】 すると図4の真理値表から以下のように、Bj ,R
j ,R2j 、Qj が求まる。以下、◎は排他的論理和
演算であるとする。
【数2】
【0027】次にリコードの第2の手段として、各集合
の中間和Sj と下位集合からの桁上げCj-1 の加算を実
行する。リコード後の結果をZj とすると、(4)式を
使用し(9)式のようになる。 Zj =Cj-1 +Sj =Bj-1 +Rj −1 ・・・(9) (9)式よりZj ,Bj-1 ,Rj の関係を(表3)に示
す。
【表3】
【0028】(表3)より、Zj は−2から2までの値
をとるため、Zj を3ビットの値で表現する。Zj を、
Zsj ,Z1j ,Z2j の3ビットで表現し、(表4)
に示すように割り当てる。
【表4】
【0029】Z1j は、Zj の絶対値が”1”、Z2j
は、Zj の絶対値が”2”、Zsj はZj の符号を示
す。以上よりリコード後の結果Zj (Z1j ,Z2j
Zsj )は、Bj-1 ,Rj (R1j ,R2j )を使用し
(10)式のように表現される。
【数3】 こうして(5)、(6)、(7)、(8)、(10)式
を用い、図3に示される冗長2進数2ビットブースリコ
ード回路の基本単位301が構成される。
【0030】以上述べたように、図3に示される冗長2
進数2ビットブースリコード回路の基本単位301は、
中間和中間桁上げ生成手段において、一つ下位の集合か
らの桁上げの情報Qj-1 を基に、中間和Sj (Rj )と
中間桁上げCj (Bj )を生成し、リコード値生成手段
で、一つ下位の集合からの中間桁上げCj-1 (Bj-1
と中間和Sj (Rj )を加算しリコード値を求めてい
る。すなわち、リコード値生成手段において一つ下位の
集合からの中間桁上げCj-1 (Bj-1 )として、丸めに
よる桁上げを入力すれば、丸め処理された乗数として冗
長2進数2ビットブースリコード回路301に入力され
たことになる。
【0031】次に、丸め桁上げ生成回路303について
説明する。ここでは、IEEE754規格に基づく最近
接丸めを実行するものとする。入力値Xを2i 桁までに
丸めるとすると、IEEE754規格によれば、丸めに
よる桁上げと入力値の関係は図5のようになる。ここ
で、Xi ,Xi-1 は、それぞれ入力値Xの2i 桁,2
i-1 桁の冗長2進数値である。Xi-2 は、ステッキィ桁
であり、2i-2 以下が”正”であるか”負”であるか”
0”であるかを示す値である。正であれば、Xi-2
1、負であれば、Xi-2 =−1、ゼロであれば、Xi-2
=0である。Crj-1 はXi-1 ,Xi-2 を使用し丸めた
時に生じるXi-1 からXi への桁上がりである。IEE
E754規格によれば、最近接丸めによる桁上げCr
j-1 は、Xi の桁の重みを1とした場合、Xi より下位
桁がXi 桁の重みと比較してどの程度になるかで区別さ
れ、以下のようになる。
【0032】Xi より下位桁>1/2 の時 Crj-1 =1 1/2>Xi より下位桁>−1/2の時 Crj-1 =0 −1/2>Xi より下位桁 の時 Crj-1 =−1 Xi より下位桁がXi 桁の重みに対して1/2の時、X
i 桁までに丸めた後、最も近い偶数にするようなCr
j-1 にする。例えば(Xi-1 ,Xi-2 )=(−1,0)
の時、Xi より下位桁はXi 桁の重みに対して−1/2
であるから、Xi =1の時Crj-1 =−1、Xi =0の
時Crj-1 =0、Xi =−1の時Crj-1=−1とな
る。すなわち、(表1)に示す冗長2進数コーディング
に従えば、Crj-1 =−(Xpi +Xmi )となる。他
の場合も同様に上記規則を用いてCrj-1 を求めること
ができる。
【0033】次に、丸めによる桁上がりCrj-1 を、先
に述べた冗長2進数2ビットブースのリコード回路の基
本単位301の下位からの桁上がりCj-1 (Bj-1 、Q
j-1 )として入力するためにコーディングする。図4に
おいてCj 、Qj ,Bj の関係を求めると、(表5)の
様な関係になる。
【表5】 (表5)にしたがって、丸めによる桁上げCrj-1 を、
j-1 ,Bj-1 を用い表現すると、図5のようになる。
この時、Crj-1 =0の場合、(Qj-1 ,Bj-1 )とし
て(1、0)、(0、1)の2通りの取り方があるが、
ここでは、冗長2進数2ビットブースのリコード回路に
於けるQj と同じになるようにする。すなわち、Xi-1
が”1”であればQj-1 =1とする。
【0034】以上のように、丸めによる桁上げCrj-1
は、Qj-1 ,Bj-1 を用い、図5から(11)式のよう
に求められる。
【数4】 以上のようにして、図3に示す丸め桁上げ生成回路30
3を構成することができる。丸め桁上げ生成回路303
は、ゲ−ト遅延段数が3段で構成され、冗長2進数2ビ
ットブースリコード回路301でBj を求めるための遅
延段数と同じになるため、丸め桁上げ生成回路303の
追加により、冗長2進数2ビットブースリコード値を求
める速度をほとんど遅らすことはない。
【0035】また、0値生成回路304は、桁上げとし
て”0”を生成する回路である。これは(表5)より、
j =0の場合を考えればよく、(Bj ,Qj )=
(1,0)または(0,1)であるから、図3に示すよ
うに、Bj ,Qj が常に論理反転の形になるような論理
にすればよく、高速に0値が生成できることがわかる。
【0036】以上より、図3に示される冗長2進数2ビ
ットブースリコード回路が構成され、これを用い繰り返
し乗算回路を構成すると図2のようになる。すなわち、
本発明を使用した繰り返し乗算回路は、繰り返し乗算途
中で2進数変換回路、丸め処理回路を使用せず、高速な
乗算結果を丸め処理する繰り返し乗算が可能になってい
る。
【0037】次に、第2の実施例として、乗算の繰り返
し時に桁上げ保存形のデータを用いた場合の繰り返し乗
算について述べる。桁上げ保存形で繰り返し乗算を実行
する乗算処理装置の構成は、冗長2進数の場合と同様
に、図2に示される繰り返し乗算の構成になる。ここ
で、桁上げ保存形のデータが入力可能な乗数リコード回
路について述べる。桁上げ保存形で表された中間積X
(Xc、Xs)のリコードは2つのステップで実行され
る。中間積の小数点以下i桁目は、2i の重みを持つ2
ビットXci , Xsi で表されているとする。但し、X
i , Xsi は0又は1の数値である。まず、中間積X
を隣接する2桁ずつのグループに分割する。
【0038】(ステップ1)ステップ1では各グループ
で、4・Cj +Sj =2・(Xc2i+1+Xs2i+1)+
(Xc2i+Xs2i)を満たすように、中間桁上げCj
中間和Sj を求める。ここで、中間桁上げCj は”0、
1、2”の4値の内のどれかの値、中間和Sj は、”−
3、−2、−1、0、1”の5値の内のどれかの値であ
る。これを示した表を(表6)に示す。
【表6】
【0039】(ステップ2)ステップ2では、各グルー
プで、ステップ1で求まった中間結果Sj と1桁下位か
らの中間桁上げCj-1 を加算し、リコードされた乗数値
Rej を求める。ここで、Rejは”−2、−1、0、
1,2”の中の1つの数値である。従って、この時C
j-1 +Sj が±2の範囲にはいるようにしなければなら
ない。このために、ステップ1において、各グループ
で、そのグループの2桁とともに1つ下位グループの上
位桁 (Xc2i-1) も調べて、表6のようにCj ,Sj
決定する。例えば、(Xc2i+1,Xs2i+1,Xc2i,X
2i)=(0,0,0,1)の場合、このグループの持
つ値は”1”になるから、Cj 、Sj の取り方として、
( Cj , Sj ) = (1 ,−3) , (0 ,1 ) の2通りある。
ここで、Xc2i+1に注目する。Xc2i+1が0である場
合、必ずCj は0または1の数値になる。またXc2i+1
が1である場合、必ずCj は1または2の数値になる。
従って、1つ下位グループについてみた場合、Xc2i-1
が0であれば必ず1つ下位グループからの桁上げCj-1
として0または1が上がってくる。この場合、( Cj ,
j ) =(1,−3)と設定してしまうと、ステップ2
でRej =Cj-1 +Sj を実行した場合、Rej =−3
または−2になり、上記したRej の範囲(−2〜2)
の範囲を越えてしまう。逆に( Cj ,Sj ) =(0,
1)を設定すれば、Rej =1または2になり、上記条
件を満足する。この様に全てのCj 、Sj が1つ下位グ
ループのXc2i+1を見ることで決定される。つぎに、ス
テップ2で、Rej =Cj-1 +Sj に従いリコード値を
生成する。(表7)はこの論理、即ちCj-1 ,Sj に対
するRej を示している。
【表7】
【0040】以上、桁上げ保存形の数をリコードする場
合、冗長2進数の場合と同様に、ステップ1として、中
間桁上げ、中間和を生成し、ステップ2として、1つ下
位グループからの中間桁上げとそのグループの中間和を
加算しリコード値を求める。従って、中間積として冗長
2進数を用いた場合と同様に、最下位グループの乗数リ
コード回路の下位からの中間桁上げとして、丸め処理し
た結果を入力すれば、同様に丸め処理が実現可能なこと
は明かである。すなわち、桁上げ保存形の数値を用いた
繰り返し乗算回路は、繰り返し乗算途中で2進数変換回
路、丸め処理回路を使用せず実現でき、高速な乗算結果
を丸め処理する繰り返し乗算が可能である。
【0041】次に、第3の実施例として、乗算の繰り返
し時に2進数を用いた場合の繰り返し乗算について述べ
る。通常、n桁の2進数乗数値Xは、(12)式に示さ
れるようにリコードされる。
【数5】 ここで、Z2jを(−2×X2j+1+X2j+X2j-1)とする
と、Z2jは、下位集合から数えてj番目の2ビットブー
スリコード値である。この時の、2ビットブースリコー
ド回路の真理値表を(表8)に示す。Xi+1 ,Xi ,X
i-1 は、乗数入力値である。2ビットブースリコード値
j は、3ビットの信号(Zsj ,Z1j ,Z2j )で
表現される。
【表8】 この論理式は、例えば、(13)式に示すようになる。
【数6】
【0042】(13)式をゲートを用いて表現すると、
2進数の2ビットブースリコード回路の基本単位は、図
6の601に示す様になる。即ち、データが入力されて
たかだかゲート遅延段数2段でリコード値が求められる
事がわかる。ここで、データとして2i-1 桁以下に値が
存在し、これを、2i の桁までに丸め処理する場合を考
える。2i 桁までに丸める場合、2i 桁までに丸める為
に生ずる桁上げをCrj-1 とすると、2i 桁の持つ値は
丸めによる桁上げCrj-1とXi の加算値(Xi +Cr
j-1 )となる。従って、最下位集合のリコード値Z
i は、(14)式に示すようになる。 Zi =−2×Xi+1 +(Xi +Cri-1 ) =−2×Xi+1 +Xi +Cri-1 ・・・(14) すなわち、(14)式に示すように、2i 桁までに丸め
処理する場合のリコード値Zi は、ただ単にXi-1 の代
わりに丸めによる桁上げCri-1 を入力すればよいこと
がわかる。従って、第1の実施例と同様に、丸めによる
桁上げをXi+1 ,Xi ,Xi-1 をリコードする回路のX
i-1 の入力に入力し、丸め処理する必要のない場合に
は、Xi-1 の入力には”0”を入力すればよい。
【0043】以上より乗数リコード回路及び桁上げ生成
回路を構成すると、図6の様になる。602は、セレク
ト信号によって丸め桁上げ生成回路603の出力値と、
0値生成回路604の出力のいずれかを選択し出力する
選択回路である。603は2i 桁までに丸める場合の丸
め桁上げ生成回路である。604は数値0を生成する0
値生成回路である。丸め桁上げ生成回路603は、以下
のように構成される。ここでは、先と同様にIEEE7
54規格に基づく最近接丸めを実行する。ここで、X
i-2 は2i-2 桁以下のスティッキィ桁になっているとす
る。この時、丸めによる桁上げCrj-1 は、(表9)に
示す様になる。
【表9】 (表9)において、(Xi-1 ,Xi-2 )=(1,0)の
場合、桁上がりCrj-1 がXi になるのは先に述べたと
おりである。したがって表9を論理に落とすと、図6の
603に示す桁上げ回路になる。
【0044】以上より、図6に示したように丸めによる
桁上げを2ビットブースリコード回路の下位からの入力
値として入力することで、図7に示す様な乗算処理装置
を実現できる。本図において、部分積生成加算回路20
6,2進数変換回路208,丸め処理回路209は前述
した実施例と同一である。又701から706までは2
相クロックph1、ph2で動作するラッチである。7
07は、図6に示した乗数リコード回路である。708
は図6の中の選択回路602、桁上げ回路603、0値
生成回路604を含んだ桁上げ生成回路である。図7の
ように構成することで、繰り返し乗算時に毎回丸め処理
回路209を通過させる必要がなく、最終結果が得られ
るときのみに丸め処理回路209を通過するため、従来
に比べ高速な繰り返し乗算が実現できる。
【0045】以上、冗長2進数を用いた場合と桁上げ保
存形の数値を用いた場合と2進数を用いた場合、各乗算
毎に丸め処理を実行する繰り返し乗算について、本発明
を利用することで、高速な繰り返し乗算が実現できるこ
とを述べた。なお、他の高基数値で繰り返し乗算を実行
する場合について、本実施例では述べられていないが、
本発明を使用すれば同様の効果が得られる。また冗長2
進数2ビットブースリコード回路を生成する時、(4)
式に示すように、中間桁上げCj の代わりにBj ,中間
桁上げSj の代わりにRj を使用することで、論理の簡
単な乗数リコード回路を構成することができることも合
わせて述べた。
【0046】次に、ある定数Aから乗数を減算した値と
被乗数を乗算し、乗算結果を次の乗算の入力オペランド
とする繰り返し乗算について、本発明を利用した実施例
を以下に示す。まず第1の実施例として、ニュートンラ
フソン法を用いた除算について示す。いま、2つの正規
化された浮動小数点数仮数部の除算Y/Xを実行するも
のとする。1/Xの近似値を求めるアルゴリズムとして
ニュートンラフソン法がある。この方法によると、1/
Xの近似値Riは(15)式に示すような漸化式で求め
られる。 R0 =1/X±δ Ri =Ri-1 ×(2−Ri-1 ×X)・・・(15) ここで、R0 は1/Xの初期近似値であり、δはR0
1/Xの誤差である。商は、Ri と1/Xの誤差が希望
する誤差以内になった後、Ri ×Yにより求めることが
できる。(15)式をみると、漸化式は2つのタイプ乗
算の組合せによる繰り返し乗算になっていることがわか
る。第1のタイプは通常のα×βという乗算、第2のタ
イプはα(2−β)という乗算である。以下に、本発明
が第2のタイプの乗算に有効であることを述べる。
【0047】(15)式において、簡単のためRi-1
A、Ri-1 ×XをBと置く。この時(15)式は第2の
タイプの乗算A(2−B)となる。ここで、Bは(1
5)式を用い(16)式のようになる。 B=Ri-1 ×X =1−(X×(±δ))j 但し j=2(i-1) ・・・(16) すなわち、Xは正規化数(1=<X<2)であるため、
Bは1に近い数値になることがわかる。今ここで、Bは
2進数で表現されているとする。この時、第2のタイプ
の乗算A×(2−B)において、(2−B)は(17)
式のように変形できる。
【数7】 (17)式は−Bという項を2の補数を取ることで変形
している。ここで、LSBは2の補数を取るときに生じ
るBのビット列最下位桁への加算値”1”である。今、
Bが簡単のため8桁の数値であるとし、(18)式に示
すようになっているとする。 B=B0 .B1 2 3 4 5 6 7 ・・・(18) (18)式を用い、(17)式を表すと次のようにな
る。
【数8】 従って本発明を用い、(17)式に示される(2−B)
は以下のように実現することができる。つまり第2のタ
イプの乗算A×(2−B)を実行するときに、Bの各桁
を論理反転した値(Bバー)を乗数リコード回路に入力
するとともに、小数点より上位2桁目には”0”を設定
し、最下位桁をリコードするリコード回路の下位からの
桁上げとして”1”を入力(LSB)すれば、(2−
B)を乗数として入力した場合と同じになる。
【0048】以上述べた事を、実施すると例えば図8の
ようになる。801は(17)式中のLSBを生成する
1値生成回路である。演算がA×(2−B)であるとい
う信号SUBが来た場合には、選択回路602によっ
て、1値生成回路801の出力値が選択される。又選択
回路802は、信号SUBが入力されると、小数点より
上位2桁目には”0”を、それ以外は入力値の論理反転
値を入力する入力選択手段である。本発明を利用し、A
×(2−B)を実行するとき、小数点より上位2桁目に
は”0”を設定し、それ以外には論理反転値をリコード
回路に入力すれば、従来のように減算回路を使用する必
要がなく、除算を高速にしかも少ないハードウェアで実
行することができる。
【0049】次に、Xの平方根値をニュートンラフソン
法を用いて求める場合について述べる。この時、1/X
1/2 を求める漸化式は(19)式のようになる。 R0 =(1/X1/2 )±δ 2×Ri =Ri-1 ×(3−Ri-1 2×X)・・・(19) ここで、R0 は1/Xの初期近似値であり、δはR0
1/X1/2 の誤差である。平方根は、Ri と1/X1/2
の誤差が希望する誤差以内になった後、Ri ×Xにより
求めることができる。(19)に示す漸化式において、
i-1 2×Xは1に近い数値である。ここで、Ri-1 2×X
をBと置くと、Bは(18)式と同じ様に表現できる。
ここで、(19)式中の(3−Ri-1 2×X)はRi-1 2×
XをBとおくと、(20)式のように変形することがで
きる。
【数9】 (20)式を各桁毎に表すと次のようになる。
【数10】
【0050】従って、本発明を用い、(20)に示され
る式は以下のように実現することができる。つまり乗算
A×(3−B)を実行するときに、小数点より下位の各
桁を反転した値(Bバー)を乗数リコード回路に入力す
るとともに、小数点より上位1桁目には”B0 ”を入力
し、小数点より上位2桁目には”B0 バー”を入力し、
最下位桁をリコードするリコード回路の下位からの桁上
げとして”1”を入力(LSB)すれば、(3−B)を
乗数として入力した場合と同じになる。従って、(3−
B)を実行するとき、小数点より下位の桁には論理反転
回路をおき、小数点より上位1桁目は、そのまま入力
し、小数点より上位2桁目には小数点より上位1桁目の
値の論理反転値を入力し、これらの出力値を乗数リコー
ド回路及び桁上げ生成回路に入力する。そうすれば従来
のように減算回路を使用する必要がなく、高速に、しか
も少ないハードウェアで実行することができる。
【0051】以上は、Bとして2進数の場合について述
べたが、さらなる高速化のためBの値として中間積の値
(この場合冗長2進数値)を入力する。この時、回路構
成は図2に示すようになる。但し、乗数リコード回路2
07には、図11及び図12で示す入力選択手段である
選択回路1201を付加しなければならない。(15)
式に示されるニュートンラフソン法を用いた除算につい
てこれを示すと、(16)式に示されるBは、ラッチ2
03より出力され、選択ラッチ201に取り込まれる。
そして次のサイクルで乗数をリコードする前に簡単なビ
ット操作をし、乗数リコード回路207を用い数値(2
−B)をリコードする。そして、リコード値を部分積生
成加算回路206に入力する。またこの時、ラッチ20
2にはRi-1 が入力されており、乗算Ri-1 ×(2−R
i-1 ×X)が実行される。また、(19)式に示される
ニュートンラフソン法を用いた平方根についてこれを示
すと、(20)式に示されるBは、ラッチ203より出
力され、これが選択ラッチ201に取り込まれる。そし
て次のサイクルで乗数に対し簡単なビット操作をし、乗
数リコード回路207を用い、(3−B)を生成する。
そして、リコード値を部分積生成加算回路206に入力
する。またこの時、ラッチ202にはRi-1 が入力され
ており、乗算Ri-1 ×(3−Ri-1 2×X)が実行され
る。
【0052】以上示したように、ニュートンラフソン法
を用いた除算、平方根の場合、中間積を乗数リコード回
路に入力し、(2−B)、(3−B)を乗数リコード時
に簡単なビット操作により実行する。この実現方法につ
いて以下に示す。
【0053】今、Bはラッチ202から出力された1に
近い冗長2進数値であり、例えば、Bと1との差が2-9
未満であるとする。冗長2進数値の小数点より上位2桁
と下位1桁の計3桁について、Bの値(1に近く誤差が
-9未満)が存在するかどうかを示した表を次に示す。
【表10】
【表11】
【0054】表10,表11において、Tは−1であ
り、111の列は、冗長2進数値の小数点より上位2桁
と下位1桁の取りうる値である。112の列は、111
の列に示される数値の並びで、Bの値が存在するかどう
か、もし存在すればどのような値になっているかを示し
た列である。破線で示した部分は存在しない部分であ
る。113の列は、112の列に示されるBに対し、2
−Bを演算した場合どのような冗長2進数値になるか示
した列である。114の列は、112に示されるBに対
し、3−Bを演算した場合どのような冗長2進数値にな
るかを示した列である。
【0055】112の列は、以下のように生成される。
Bは仮数乗算結果であり、必ず正の値になる。111の
列は、小数点より上位2桁目で切り出した値であり、も
し負の値になっていてもそれは見かけ上負になっている
だけである。従って、例えばTT.Tの場合、乗算結果
Bは必ず正の値になっているから、小数点より上位3桁
目に必ず数値1が存在しており、TT.Tは1T.Tと
同じ値になるはずである(Tは−1である)。1T.T
は2進数で表現すると00.1となる。即ち、小数点よ
り下位2桁目以下に数値1が連続すれば、その数値は1
に近い数値になる。この時のBの値を(21)式に示
す。 B = 1T.T111111・・・(21) 2−Bの実現は(22−1)の様になり、これを更に変
形し(22−2)に示すようになる。
【数11】
【0056】3−Bの実現は(23−1)の様になり、
これを更に変形し(23−2)に示すようになる。
【数12】
【0057】(22−2)、(23−2)式に示すよう
にして表10,表11が求められる。ここで表10,表
11の2−Bの列(113の列)に注目する。すると、
全ての2−Bの値は、上位3桁が”010”になり、小
数点より下位2桁目の値は、Bの小数点より下位1桁目
の値が”0”であればBの小数点より下位2桁目の値の
符号反転値になり、またBの小数点より下位1桁目の値
が”0”以外であればBの小数点より下位2桁目の値の
そのままになる。小数点より下位3桁目以下の値は、B
の小数点より下位3桁目以下の値の符号反転値になる。
また同様に、図11の3−Bの列(114の列)に注目
すると、全ての3−Bの値は、上位3桁が”100”に
なり、小数点より下位2桁目の値は、Bの小数点より下
位1桁目の値が”0”であればBの小数点より下位2桁
目の値の符号反転値になり、またBの小数点より下位1
桁目の値が”0”以外であればBの小数点より下位2桁
目の値のそのままになる。小数点より下位3桁目以下の
値は、Bの小数点より下位3桁目以下の値の符号反転値
になる。即ち、2−B、3−Bの演算が、上記したよう
な定数設定と簡単な演算と符号反転により簡単に実現で
きることがわかる。
【0058】実際に、2−Bの機能を持たせた乗数リコ
ード回路のブロック図を図11及び図12に示す。30
1は図3における冗長2進数2ビットブースリコード回
路の基本単位である。又選択回路1201は、冗長2進
数2ビットブースリコード回路の基本単位への入力値を
制御する入力選択手段である。冗長2進数の割当は表1
に示すようになっているとする。SUB信号は、2−B
の演算を実行するという信号である。信号SUBが入力
されると、上位3桁には、”010”((Xp,Xm)
= (00)、(10)、(00))が入力され、小数点
より下位2桁目には、小数点より下位1桁目の冗長2進
数入力値が”0”((Xp-1,Xm-1)=(0,0))
であれば、冗長2進数値(Xp-2,Xm-2)がスワップ
して入力され、小数点より下位1桁目の冗長2進数入力
値が”0”以外((Xp-1,Xm-1)≠(0,0))で
あれば、冗長2進数値(Xp-2,Xm-2)がそのまま入
力される。小数点より下位3桁目以下は、冗長2進数値
(Xp-1,Xm-1)がスワップして入力される。表1か
らXpi ,Xmi をスワップするということは、符号反
転を実行する事である。なお、ここでは2−Bを実現す
るための構成について述べたが、3−Bを実行する場合
においても上位3桁の定数値を”010”から”10
0”に変えるだけでよく、簡単にインプリメントでき
る。
【0059】以上、乗数リコード回路で2−B、3−B
を実行するために、上位3桁には定数と通常入力値の選
択回路を置き、小数点より下位2桁目は小数点より下位
1桁目が”0”であればスワップするスワップ回路をお
き、小数点より下位3桁目以下にはスワップ回路を置け
ばよい。そのため従来のように冗長2進数減算回路を使
用する必要がなく、高速に、しかも少ないハードウェア
で実行することができる。
【0060】以上は、(2−B)、(3−B)の用に限
定された形の乗数リコードとその選択回路について述べ
たが、ここでは、更に一般化した場合、すなわち(A−
B)を乗数リコード回路に入力する場合について述べ
る。但しAは2進数の定数、Bは冗長2進数で表現され
た中間積であり、それぞれ(24)、(25)式に示す
フォーマットになっているとする。 A=A0 .A1 2 3 …Ai ・・・(24) B=B0 .B1 2 3 ………Bk ・・・(25) また、冗長2進数値の中間積Bは2進数で表現されたあ
る定数値Bbとほとんど等しく、その誤差は2進数で表
現した場合、(26)式のように表現され、またBbの
フォーマットは(27)式のように表現されているとす
る。 B−Bb=±α・2-j 但し、α=0.1 **…、*は0又は1・・・(26) Bb=Bb0 .Bb1 Bb2 Bb3 ………Bbm ・・・(27) 但し、i、m<j<kの関係が成り立っているものとす
る。(24)〜(27)式を用い、A−Bを表すと(2
8)式の様になる。但し、AからBを冗長2進数体形で
減算した結果をRとする。 R=A−B =(A−Bb)−(±α・2-j)・・・(28) これを、各桁毎に表すと(29)のようになる。
【数13】
【0061】ここで、(29)式からわかるようにRの
-(i+1)桁以下については、0からBの減算になるか
ら、Rの2-(i+1)桁以下はBの符号反転値に等しくな
る。また、(27)、(28)式より、Rの2-m桁より
上位桁は、2-m桁から上位のみを2進数に変換した場
合、A−BbかA−Bb±2-mになる。2-m桁から上位
がA−Bbの場合、2-(m+1)桁より下位桁は、2進数に
変換した場合±α・2 -jに等しくなる。2-m桁から上位
がA−Bb±2-mの場合、2-(m+1)桁より下位桁は、2
進数に変換した場合−(±2-m)±α・2 -jに等しくな
る。この様子を、2-m近辺の値を拡大して書くと、(表
12)のようになる。
【表12】
【0062】(表12)において、2-m桁より上位桁は
定数Aと定数Bbの減算値に等しいか又はそれより2-m
だけ大きいか又は小さくなっている。
【0063】今、2-(m+1)未満に誤差が存在する場合を
考える。まず、2-m桁より下位に向かい2-(m+1)桁まで
0に変換する。(表12)において2-m桁より上位がA
−Bb+2-mの場合は、2-mの分が2-(m+1)桁より下位
に連続して存在するTの列により下位に伝搬し、(表1
3)のようになる。同様に、(表12)におけるA−B
b−2-mに関しても同様に(表13)のようになる。
【表13】
【0064】従って、2-(m+1)未満に誤差が存在する場
合、A−Bは以下のように実現できる。(表13)にお
いて、2-mより上位桁にはA−Bbを設定し、2-(m+1)
桁には0を設定する。2-(m+2)桁は、(表12)におい
て、2-(m+1)桁が0であれば(表12)の2-(m+2)桁の
Rの値をそのまま設定、2-(m+1)桁が0以外であれば
(表12)の2-(m+2)桁の値を符号反転し設定する。2
-(m+3)桁以下に関しては、Rの値をそのまま入力すれば
よい。今、2-m桁以下のRの値は、Bの符号反転値に等
しいから、上記したことを、Bについて言い換えると、
以下のようになる。2-(m+1)未満に誤差が存在する場
合、A−Bは以下のように実現できる。(表13)にお
いて、2-mより上位桁にはA−Bbを設定し、2-(m+1)
桁には0を設定する。2-(m+2)桁は、(表12)におい
て、2-(m+1)桁が0であれば、Bの2-(m+2)桁の値を符
号反転し設定、2-(m+1)桁が0以外であればBの2
-(m+2)桁の値をそのまま設定する。2-(m+3)桁以下に関
しては、Bの値を符号反転し、設定すればよい。
【0065】以上は2-(m+1)未満に誤差が存在する場合
について述べたが、一般に2-j桁未満に誤差が存在する
場合についても同様なことが言える。但し、j≧m+1
である。この場合、A−Bは以下のように実現できる。
-mより上位桁にはA−Bbを設定し、2-(m+1)桁から
-j桁には0を設定する。2-(j+1)桁は、2-j桁が0で
あれば、Bの2-(j+1)桁の値を符号反転し設定、2-j
が0以外であればBの2-(j+1)桁の値をそのまま設定す
る。2-(j+2)桁以下に関しては、Bの値を符号反転し、
設定すればよい。
【0066】以上、一般的な場合について述べたが、こ
れを、上記(2−B)、(3−B)の場合に当てはめる
と以下のようになる。 (2−B) → A=2 Bb=1 (3−B) → A=3 Bb=1 即ち、小数点より上位にはA−Bbを設定し、小数点よ
り下位1桁目には”0”を設定し、小数点より下位2桁
目にはBの小数点より下位1桁目の値により符号反転入
力し、小数点より下位3桁目以下はBの小数点より下位
3桁目以降を符号反転して入力すると言うようになる。
【0067】以上のように、ある定数Aから冗長2進数
で表された乗算結果Bを減算した値を次の乗算の乗数と
する様な繰り返し乗算において、従来のように冗長2進
数加算器を使用する必要がなく、高速にしかも少ないハ
ードウェアで実現することができる事がわかる。なお、
本実施例では、冗長2進数について述べたが、他のフォ
ーマットの数体形においても簡単な論理で実行でき、本
発明は有効である。
【0068】
【発明の効果】本発明は、上記実施例から明らかなよう
に、乗数リコード回路の下位集合からの桁上げとして、
桁上げのフォーマットに準じた数値を選択し、入力する
ことによって以下に述べる効果を有する。 (1)乗算毎に乗算結果の丸め処理をする繰り返し乗算
において、乗算毎に2進数変換回路と丸め処理回路を使
用しなくて良く、少ないハードウェアで、しかも少ない
消費電力で、繰り返し乗算を高速に実行できる。 (2)ある定数Aから乗数を減算した値と被乗数を乗算
し、乗算結果を次の乗算の乗数とする繰り返し乗算にお
いて、乗算毎に定数Aから乗数を減算する減算回路を使
用する必要がなく、少ないハードウェアで、しかも少な
い消費電力で、繰り返し乗算を高速に実行できる。
【0069】また、上記(2)において、つぎの乗算の
乗数として、前の乗算の中間積を入力する場合、乗算毎
に定数Aから乗数(中間積)を減算する減算回路を使用
する必要がなく、少ないハードウェアで、しかも少ない
消費電力で、繰り返し乗算を高速に実行できる。
【0070】また、冗長2進数2ビットブースリコード
回路の基本単位を構成する場合において、2桁ずつ区切
った集合の上位桁が1であるという信号Qiを使用する
ことで、中間和Si 、中間桁上げCi を第2の中間和R
i 、第2の中間桁上げBi に置き換え論理設計すること
で、トランジスタ数の少ない低消費電力である冗長2進
数2ビットブースリコード回路を構成することができ
る。
【図面の簡単な説明】
【図1】本発明の一実施例である乗数リコード回路及び
桁上げ生成回路のブロック図である。
【図2】本発明を利用した場合の冗長2進数で繰り返す
繰り返し乗算処理装置のブロック図である。
【図3】本発明の一実施例である冗長2進数2ビットブ
ースリコード回路及び桁上げ生成回路の論理図である。
【図4】図3に示される冗長2進数2ビットブースリコ
ード回路の基本単位301の真理値表である。
【図5】図3に示される丸め桁上げ生成回路303の真
理値表である。
【図6】本発明の一実施例である2進数2ビットブース
リコード回路及び桁上げ生成回路の論理図である。
【図7】本発明を利用した場合の2進数で繰り返す繰り
返し乗算処理装置のブロック図である。
【図8】本発明の一実施例である数値2から乗算結果を
減算しこれをリコードする2進数2ビットブースリコー
ド回路及び桁上げ生成回路である。
【図9】従来の乗算毎に丸め処理を実行する繰り返し乗
算処理装置のブロック図である。
【図10】ある定数Aから乗数を減算した値と被乗数を
乗算し、乗算結果を次の乗算の乗数とする従来の繰り返
し乗算処理装置のブロック図である。
【図11】本発明の一実施例である数値2から冗長2進
数値で表現された中間積を減算しこれをリコードする2
進数2ビットブースリコード回路及び選択回路(その
1)である。
【図12】本発明の一実施例である数値2から冗長2進
数値で表現された中間積を減算しこれをリコードする2
進数2ビットブースリコード回路及び選択回路(その
2)である。
【図13】ある定数Aから前の乗算により得られた中間
積(冗長2進数)を減算した値と被乗数を乗算する従来
の繰り返し乗算処理装置のブロック図である。
【符号の説明】
101 乗数リコード回路の基本単位 102 中間和中間桁上げ生成回路 103 リコード値生成回路 104 選択回路 105 0値生成回路 106 丸め桁上げ生成回路 201〜205 ラッチ 206 部分積生成加算回路 207 図1または図3記載の乗数リコード回路 208 2進数変換回路 209 丸め処理回路 301 冗長2進数2ビットブースリコード回路の基本
単位 302 選択回路 303 丸め桁上げ生成回路 304 0値生成回路 601 2ビットブースリコード回路の基本単位 602 選択回路 603 丸め桁上げ生成回路 604 0値生成回路 701〜706 ラッチ 707 乗数リコード回路 708 桁上げ生成回路 801 1値生成回路 802 選択回路 1201 選択回路

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 基数ΥのM桁の数値をN桁の連続した集
    合に分割し(M>=N)、該集合を入力とし、該集合の
    数値Zgi をZgi =Ci ×ΥN +Si に従い中間和S
    i と中間桁上げCi に分割する複数の中間和中間桁上げ
    生成手段、前記中間和Si と1つ下位の集合からの中間
    桁上げCi-1 を加算するリコード値生成手段を有するリ
    コード回路と、 前記中間桁上げCi と同じフォーマットの1つ以上の数
    値の中から1つを選択し、選択された値を前記リコード
    値生成手段の1つ下位集合からの中間桁上げCi-1 とし
    て入力する選択回路と、 前記リコード値生成手段より出力されるリコード値に基
    づき被乗数との部分積を生成加算して前記リコード回路
    に出力する部分積生成加算回路と、を具備することを特
    徴とする乗算処理装置。
  2. 【請求項2】 前記部分積生成加算回路の出力を所定ビ
    ットに丸める丸め桁上げ生成回路を有し、該丸め桁上げ
    生成回路の桁上げ出力を前記選択回路の入力とすること
    を特徴とする請求項1記載の乗算処理装置。
  3. 【請求項3】 入力データを論理反転して前記各中間和
    中間桁上げ生成手段に入力し、前記選択回路に数値”
    1”を入力することを特徴とする請求項1記載の乗算処
    理装置。
  4. 【請求項4】 前記中間和中間桁上げ生成手段の入力を
    符号付きディジット数としたことを特徴とする請求項1
    記載の乗算処理装置。
  5. 【請求項5】 前記中間和中間桁上げ生成手段の入力を
    桁上げ保存形の数値としたことを特徴とする請求項1記
    載の乗算処理装置。
  6. 【請求項6】 前記中間和中間桁上げ生成手段は、基数
    2の符号付きディジット数を2桁の連続した集合に分割
    し、該集合の上位桁が1であるという信号Qi と一つ下
    位集合からの信号Qi-1 を使用し、該集合値Zgi をZ
    i =4×Ci +Si に従い、中間和Si 、中間桁上げ
    i に分割し、さらにRi=Si +Q i-1 ,Bi =Ci
    +Qi バーに従い第2の中間和Ri 、第2の中間桁上げ
    i を生成するものであり、 リコード値生成手段は、前記第2の中間和Ri と一つ下
    位集合からの第2の中間桁上げBi-1 を使用し、Zi
    i-1 +Si =Bi-1 +Ri −1に従い、リコード値Z
    i を計算するものであることを特徴とする請求項1記載
    の乗算処理装置。
  7. 【請求項7】 2-iの重みを持つ桁から上位に非零の値
    を持ち、2-(i+1)の重みを持つ桁から下位が0である2
    進数で表現された定数Aから、冗長2進数で表現された
    ある数値B(但し数値Bは2進数に変換するとBb±α
    ・2-kに等しい。ここでBbは2-jの重みを持つ桁から
    上位に非零の値を持つ定数。1/2≦α<1、i,j<
    k)なる数を減算し前記リコード回路に入力する乗算処
    理装置において、 lをi,jのうち大きい方の値とすれば、最上位から2
    -l桁目までA−Bbを設定し、2-(l+1)桁目から2
    -(l+m)桁目まで数値0を設定し(1 ≦m≦k−l)、2
    -(l+m+1)桁目には、ある数値Bの2-(l+m)桁目の値が数
    値0以外であれば数値Bの2-(l+m+1)桁の値、数値0で
    あればその符号反転値を設定し、2-(l+m+2)桁目以下す
    べての桁には、ある数値Bの2-(l+m+2)桁目以下の符号
    反転値を設定し、リコード回路の入力とする入力選択手
    段を具備することを特徴とする請求項1記載の乗算処理
    装置。
  8. 【請求項8】 前記ある数値Bが桁上げ保存形の数値で
    あることを特徴とする請求項7記載の乗算処理装置。
  9. 【請求項9】 前記入力選択手段は、小数点より下位1
    桁目以上の数値にある定数値を選択し、入力値の小数点
    より下位3桁目以下の数値の符号反転値を選択し、小数
    点より下位1桁目の入力値の値が数値0以外であれば小
    数点より下位2桁目の入力値を選択し、数値0であれば
    その入力値の符号反転値を選択するものであることを特
    徴とする請求項7記載の乗算処理装置。
JP3222085A 1990-08-07 1991-08-06 乗算処理装置 Expired - Fee Related JP2580413B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3222085A JP2580413B2 (ja) 1990-08-07 1991-08-06 乗算処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP21090390 1990-08-07
JP2-210903 1990-08-07
JP3222085A JP2580413B2 (ja) 1990-08-07 1991-08-06 乗算処理装置

Publications (2)

Publication Number Publication Date
JPH0511981A true JPH0511981A (ja) 1993-01-22
JP2580413B2 JP2580413B2 (ja) 1997-02-12

Family

ID=26518328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3222085A Expired - Fee Related JP2580413B2 (ja) 1990-08-07 1991-08-06 乗算処理装置

Country Status (1)

Country Link
JP (1) JP2580413B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62100543U (ja) * 1985-12-12 1987-06-26
JPS6371728A (ja) * 1986-09-12 1988-04-01 Matsushita Electric Ind Co Ltd 演算処理装置および演算処理方法
JPS63201825A (ja) * 1987-02-18 1988-08-19 Matsushita Electric Ind Co Ltd 演算処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62100543U (ja) * 1985-12-12 1987-06-26
JPS6371728A (ja) * 1986-09-12 1988-04-01 Matsushita Electric Ind Co Ltd 演算処理装置および演算処理方法
JPS63201825A (ja) * 1987-02-18 1988-08-19 Matsushita Electric Ind Co Ltd 演算処理装置

Also Published As

Publication number Publication date
JP2580413B2 (ja) 1997-02-12

Similar Documents

Publication Publication Date Title
EP0149248B1 (en) Method and apparatus for division using interpolation approximation
JPH0969040A (ja) 推測的演算を有する3つのオーバーラップしたステージにより基数2の平方根演算/除算を行う回路
US5023827A (en) Radix-16 divider 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
US5784307A (en) Division algorithm for floating point or integer numbers
JPH03164932A (ja) 演算回路と演算回路のデータ処理法
JP4273071B2 (ja) 除算・開平演算器
US6745219B1 (en) Arithmetic unit using stochastic data processing
US5818745A (en) Computer for performing non-restoring division
JP2001222410A (ja) 除算器
US5289398A (en) Small-sized low power consumption multiplication processing device with a rounding recording circuit for performing high speed iterative multiplication
US5289399A (en) Multiplier for processing multi-valued data
US5206827A (en) Iterative high radix divider decoding the upper bits of a divisor and dividend
RU2348965C1 (ru) Вычислительное устройство
JP3660075B2 (ja) 除算装置
JP2580413B2 (ja) 乗算処理装置
JP2972326B2 (ja) 平方根計算装置
JP2508286B2 (ja) 平方根演算装置
Lloris Ruiz et al. Number Systems
JP3233432B2 (ja) 乗算器
Lloris Ruiz et al. Basic Arithmetic Circuits
Natarajan Arithmetic Operations and Circuits
JPH04314126A (ja) 逆数発生装置
JPH05216626A (ja) 乗算器
JPH0833815B2 (ja) 高桁乗算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees