JP2512801B2 - 乗算器 - Google Patents

乗算器

Info

Publication number
JP2512801B2
JP2512801B2 JP1087605A JP8760589A JP2512801B2 JP 2512801 B2 JP2512801 B2 JP 2512801B2 JP 1087605 A JP1087605 A JP 1087605A JP 8760589 A JP8760589 A JP 8760589A JP 2512801 B2 JP2512801 B2 JP 2512801B2
Authority
JP
Japan
Prior art keywords
bit
register
multiplication
zero
multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1087605A
Other languages
English (en)
Other versions
JPH02266427A (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.)
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 JP1087605A priority Critical patent/JP2512801B2/ja
Publication of JPH02266427A publication Critical patent/JPH02266427A/ja
Application granted granted Critical
Publication of JP2512801B2 publication Critical patent/JP2512801B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、マイクロROMを用いて論理演算ユニット(A
LU)を制御するマイクロプロセッサ等のALUにおいて被
乗数、及び、乗数をレジスタに保存し、これを2の補数
表現において、符号なし乗算を行った後、補正を行うこ
とで符号付き乗算の結果を得ることのできる乗算器に関
するものである。
従来の技術 符号無し数乗算のアルゴリズムの標準的な乗算ユニッ
トは、第2図に示すような数個の機能素子、即ち、nビ
ットの並列書き込み及び読みだし可能なレジスタ、アキ
ュムレータ(AC)1、乗算レジスタ(MR)2、及び、補
助レジスタ(AX)3から構成される。被乗数Aと乗数B
は、最初それぞれAX3とMR2にセットされる。AC1には、
初期部分積として零がセットされる。
2nビットの最終積Pは、AC1の右側にMR2を連結したレ
ジスタAC1・MR2にもとまる。制御カウンタ(CTR)6
は、加算シフトの回数を計算し、乗算の終了を識別する
ために使用される。
各サイクルでどのような演算が行われているかを記
す。
S=Sn-1・・・S1S0 を加算器5からの和出力とする。Cinは、加算器5への
桁上げ入力、Coutは、加算器からの桁上げ出力をあらわ
す。また、補助ベクトルAX∧MR0を次式のように定義す
る。
AX∧MR0=AX, MR0=1 O, MR0=0 ここで、AX∧MR0は、MRの最下位ビットであるMR0と、AX
レジスタの各ビットとの論理積をあらわす。加算器で
は、初期桁上げ入力を零(Cin=0)として、各サイク
ルで次式に示す加算を行う。
Cout・S←(AC)+(AX∧MR0) この加算で、桁上げ出力Coutが生成される可能性があ
る。この加算器5には、一定時間の遅れを持つ完全桁上
げ加算器が考えられる。加算器5の出力に和が生成され
ると直ちに、右シフト演算が行われるが、この演算は、
次式のようになる。
AC・MR← Cout・Sn-1・・・S1S0MRn-1・・・MR1 この右シフト演算では、加算器5の出力のうち、Cout
Sn-1・・・S1をACに、S0をMRn-1に入力して右シフトさ
せ、MR0をMRの右端から押し出す。このようなストアシ
フト型演算は、マルチプレクサ論理で構成でき、シフト
演算を行う際に幾つかの入力データのうち必要なものを
選択してワークレジスタに入力すれば良い。上述した処
理手順をまとめると、次のようになる。乗数ビットMR0
を調べ、1であれば乗数Aを、0であれば零ベクトルを
部分積の上位nビットに加算し、加算が終了した新しい
上位の部分積と、加算に使用しなかった下位の部分積と
をまとめて右に1ビットシフトする。各部分積の右シフ
ト操作は、紙と鉛筆を用いた場合の左シフト操作に等価
なものである。後者の場合、被乗数Aは決められたビッ
ト位置から部分積に加え込まれる。このような処理は、
すべての乗数が調べられるまでn回(1回の処理で1ビ
ット)くりかえされる。演算の終了時点で、乗数Bはす
べてMR2の右端から押し出され、そのかわりに積の下半
分がMR2にはいる。積の上半分はAC1に保持される。
符号付き数乗算は、この符号なし数のアルゴリズムを
用いて実現する。まず、乗数(MR2)が2の補数におい
て負であれば符号反転を行い正の数にする。また、被乗
数(AX3)が2の補数において負であれば符号反転を行
い正の数にする。そして、この符号なし数のアルゴリズ
ムを用いて積の絶対値を求め、乗数と被乗数の積が負で
あれば、積の絶対値(AC1,MR2)を符号反転し負の数に
する。
発明が解決しようとする課題 しかしながら、上記従来の方法では、符号付き数の乗
算において、多大のステップを必要とし、マイクロROM
等のプログラムが長く、また、符号反転のハードウェ
ア、符号反転をするかどうかを決定するハードウェアを
追加しなければならなかった。
課題を解決するための手段 本発明は、上記従来の問題点を解決するもので、nビ
ットの並列書き込み及び読みだし可能なレジスタ、アキ
ュムレータ(AC)、乗算レジスタ(MR)、補助レジスタ
1(AX)、補助レジスタ2(BX)、及び、nビットの加
減算器から構成され、加減算器の一方の入力にはACが入
り、他方の入力には、MRの最下位ビットによって零かA
X、BXの最上位ビットによって零かAX、AXの最上位ビッ
トによって零かBXの3系統の入力を持ち、2の複数表現
において、MRによって符号なし数乗算を行った後、AC
を、AXの最上位ビットによって零かBXの補正、及び、BX
の最上位ビットによって零かAXの補正を行うことで符号
付き数乗算の結果を得ることのできる乗算器である。
作用 これによって、nビットのレジスタを1個追加するだ
けで、高速に、同じアルゴリズムで、符号なし数乗算、
及び、符号付き数乗算を行うことができる。
実施例 本発明の実施例として、第1図の構成図により、2の
補数表示数を直接実行できる乗算器を説明する。このア
ルゴリズムの利点は、すべての被加算項の符号が正であ
るということにあり、従って、従来のALUを用いてハー
ドウェアを構成できる。
2個のnビットの2の補数表示数、 A=(an-1 an-2・・・a1a0)2 B=(bn-1 bn-2・・・b1b0)2 を考える。AとBの値AvとBvは次式からなる。
2の補数の数表現において、積P=A×B=(p2n-1p
2n-2・・・p1p0)2の値Pvは、適当な重み付き因数と、係数a
iまたはbiとの積によって次のように表せる。
ここで、第1項(波線)は、2nビットを越えているた
め、ボローとして現れるだれけで無視できる。第2項
は、符号なし数の乗算そのものである。即ち、符号付き
数の乗算は、符号なし数の乗算を行い、その後で、第3
項,第4項にあたる部分を減算することで補正すること
ができる。
ここで、第3項は、Avの符号ビットが負の場合、先の
符号なし数の演算後のACからBvを符号なし数として減算
することで実現できる。また、第4項は、Bvの符号ビッ
トが負の場合、先の符号なし数の演算後のACからAvを符
号なし数として減算することで実現できる。ここで、発
生するボローは無視すれば良い。
これによって、符号なしありの乗算は、全く同じマイ
クロプログラムを用いることができる。即ち、符号付き
数のプログラムを使用して、符号なし数のときは、Av,B
vの符号ビットを無視して零とし、補正をなしにすれば
良い。
以下、本発明の実施例について図面を参照しながら説
明する。
第1図は、本発明の一実施例における構成ブロック図
である。
乗算ユニットは、数個の機能素子、即ち、nビットの
並列書き込み及び読みだし可能なレジスタ、アキュムレ
ータ(AC)1、乗算レジスタ(MR)2、及び補助レジス
タ(AX)3、補助レジスタ(BX)7から構成される。被
乗数Aと乗数Bは、最初にそれぞれAX3とMR2およびB×
7にセットされる。AC1には、初期部分積として零がセ
ットされる。
2nビットの符号なし数の最終積Pは、AC1の右側にMR2
を連結したレジスタAC1・MR2にもとまる。これは、上記
第2項と全く同一である。制御カウンタ(CTR)6は、
加算シフトの回数を計算し、乗算の終了を識別するため
に使用される。
各サイクルでどのような演算が行われているかは、上
記従来例と全く同じである。
ここで、符号付き数の場合は、AC1を補正する。補助
ベクトル を次式のように定義する。
ここで、BX∧AXn-1は、AXの最上位ビットであるAX
n-1と、BXレジスタの各ビットとの論理数をあらわす。
加算器では、初期桁上げ入力を1(Cin=1)として、
次式に示す加算を行う。
この加算(実質減算)で、桁下げ出力Coutが生成される
可能性があるが無視すれば良い。即ち、これは上記第3
項に基づき、AX3の最上位ビットAXn-1が1の場合、BXの
値を減算したことになる。また、補助ベクトル を次式のように定義する。
ここで、AX∧BXn-1は、BXの最上位ビットであるBX
n-1と、AXレジスタの各ビットとの論理積をあらわす。
加算器では、初期桁上げ入力を1(Cin=1)として、
次式に示す加算を行う。
この加算(実質減算)で、桁下げ出力Coutが生成される
可能性があるが、無視すれば良い、即ち、これは上記第
4項に基づき、BX7の最上位ビットBXn-1が1の場合、AX
2の値を減算したことになる。
つまり、この2サイクルの補正を行うことで簡単に符
号付き数の積を求めることができる。
また、符号なし数乗算と符号付き数乗算でマイクロRO
M等プログラムが同一の場合は、補正時のAXn-1,BXn-1
を、強制的に零にすることで補正を行わないようにすれ
ば符号なし数の積、補正時のAXn-1,BXn-1を見るように
すれば符号付き数の積を求めることができる。
発明の効果 以上のように本発明によれば、nビットのレジスタを
1個追加するだけで、高速に、同じアルゴリズムで、符
号なし数乗算、及び、符号付き数乗算を行うことができ
る。
【図面の簡単な説明】
第1図は本発明の一実施例におけるブロック図、第2図
は従来例におけるブロック図である。 1……nビットの並列書き込み及び読みだし可能なレジ
スタ、アキュムレータ(AC)、2……nビットの並列書
き込み及び読みだし可能なレジスタ乗算レジスタ(M
R)、3……nビットの並列書き込み及び読みだし可能
なレジスタ、補助レジスタ(AX)、4……論理積回路、
5……nビットの加減算器、6……制御カウンタ、7…
…nビットの並列書き込み及び読みだし可能なレジス
タ、補助レジスタ(BX)、8,9……反転論理積回路。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】nビットの並列書き込み及び読みだし可能
    なレジスタ、アキュムレータ(AC)、乗算レジスタ(M
    R)、補助レジスタ1(AX)、補助レジスタ2(BX)、
    及び、nビットの加減算器から構成され、前記加減算器
    の一方の入力には前記ACが入り、他方の入力には、前記
    MRの最下位ビットによって零か前記AX、BXの最上位ビッ
    トによって零か前記AX、AXの最上位ビットによって零か
    前記BXの3系統の入力を持ち、2の補数表現において、
    前記MRによって符号なし数乗算を行った後、前記ACを、
    前記AXの最上位ビットによって零か前記BXの補正、及
    び、前記BXの最上位ビットによって零か前記AXの補正を
    行う乗算器。
JP1087605A 1989-04-06 1989-04-06 乗算器 Expired - Lifetime JP2512801B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1087605A JP2512801B2 (ja) 1989-04-06 1989-04-06 乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1087605A JP2512801B2 (ja) 1989-04-06 1989-04-06 乗算器

Publications (2)

Publication Number Publication Date
JPH02266427A JPH02266427A (ja) 1990-10-31
JP2512801B2 true JP2512801B2 (ja) 1996-07-03

Family

ID=13919601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1087605A Expired - Lifetime JP2512801B2 (ja) 1989-04-06 1989-04-06 乗算器

Country Status (1)

Country Link
JP (1) JP2512801B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04128924A (ja) * 1990-09-20 1992-04-30 Nec Ic Microcomput Syst Ltd 乗算回路

Also Published As

Publication number Publication date
JPH02266427A (ja) 1990-10-31

Similar Documents

Publication Publication Date Title
JPH03206557A (ja) 演算処理方法と演算処理装置
US5796645A (en) Multiply accumulate computation unit
JPH0454633A (ja) 高基数除算器
JPH0368416B2 (ja)
JPH0477932B2 (ja)
JP2508784B2 (ja) 指数関数演算装置
US5954788A (en) Apparatus for performing modular multiplication
JP2512801B2 (ja) 乗算器
JPH0628155A (ja) 除算方法および除算装置
JPH09146924A (ja) 演算方法、演算装置及びマイクロプロセッサ
JPS6225325A (ja) 絶対値数加減算回路
US4914579A (en) Apparatus for branch prediction for computer instructions
JPH0283728A (ja) 浮動小数点乗算装置
JP3691538B2 (ja) ベクトルデータ加算方法及びベクトルデータ乗算方法
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
Chen et al. Efficient designs of unified 2's complement division and square root algorithm and architecture
JPH04358224A (ja) 開平演算装置
JPS6129020B2 (ja)
SU796844A1 (ru) Арифметическое устройство
JPH0361224B2 (ja)
JPH0371332A (ja) 剰余乗算回路および剰余乗算方法
JPS60171535A (ja) 除算装置
JPH0427587B2 (ja)
JPH0317738A (ja) 演算処理装置
JPH03218519A (ja) 乗算装置