JPH06259228A - 乗算器 - Google Patents

乗算器

Info

Publication number
JPH06259228A
JPH06259228A JP5075110A JP7511093A JPH06259228A JP H06259228 A JPH06259228 A JP H06259228A JP 5075110 A JP5075110 A JP 5075110A JP 7511093 A JP7511093 A JP 7511093A JP H06259228 A JPH06259228 A JP H06259228A
Authority
JP
Japan
Prior art keywords
register
output
adder
multiplier
bit
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.)
Pending
Application number
JP5075110A
Other languages
English (en)
Inventor
Fumiki Sato
文樹 佐藤
Koichi Fujita
紘一 藤田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP5075110A priority Critical patent/JPH06259228A/ja
Priority to US08/205,457 priority patent/US5483477A/en
Publication of JPH06259228A publication Critical patent/JPH06259228A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4824Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices using signed-digit representation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 冗長符号付き数を利用したブースのアルゴリ
ズムによる乗算器の乗算サイクルを計数するカウンタ回
路を不要とすることを目的とする。 【構成】 加算器7によって、冗長符号付き数の正の部
分と負の部分がともに「1」である値「0」を出力し、
最後のサイクルで終了検出手段13が、ラッチ手段8の
下位から3ビット目の冗長符号付き数の正の部分を格納
する部分と負の部分を格納する部分とに同時に「1」が
入っていることを検出して、乗算サイクルの終了を検出
する。 【効果】 乗算サイクルを計数するカウンタ回路が省略
されるので、トランジスタ数が減少し、回路構成が簡単
になる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はCPU等で用いられる
乗算器に関するものである。
【0002】
【従来の技術】従来より、RSD表示された被除数また
は部分剰余と2の補数表示の除数を使用する減算シフト
型の除算の原理が例えば、アイイーイーイー ジャーナ
ル オブ ソリッド−ステート サーキット,ボリュー
ム25,ナンバー3,1990年6月(IEEE JOURNAL O
F SOLID-STATE CIRCUIT,VOL25,NO.3,JUNE 1990) の第7
48頁から第756頁に論じられている。RSD表示の
数とは、各桁の数を{−1,0,1}によって表示する
数表示で、次のように表現される。
【0003】Y=Σ(Yi **−Yi * )・2i
i **,Yi * ∈{0,1}
【0004】一方、2の補数表示の数は、
【0005】Z=−2n ・Zn +ΣZi ・2i ;Zn
i ∈{0,1}
【0006】と表現される。上記RSD表示の数Yと2
の補数表示の数Zとの加算は図5の様に行われ、和は数
3に示すRSD表示の数として得られる。
【0007】S=Σ(Si **−Si * )・2i
i **,Si * ∈{0,1}
【0008】図中の大きい○印で表わした30はフルア
ダーを示し、小さい○印はフルアダー30の反転入力
(出力)を意味している。表1はこのフルアダー30の
真理値表であり、図6は真理値表と対応するフルアダー
30を示す。
【0009】
【表1】
【0010】RSD表示の数Yと2の補数表示の数Zと
の減算は図7の様に行われ、差は次式に示すRSD表示
の数として得られる。
【0011】D=Σ(Di **−Di * )・2i
i **,Di * ∈{0,1}
【0012】上述の加算、減算はともにキャリーの伝播
を伴わないので高速に行うことができる。
【0013】高速な乗算器の乗算アルゴリズムとしてブ
ースのアルゴリズムがよく知られている。ブースのアル
ゴリズムによる乗算器を実現する場合、部分積を同時に
生成しスタティクに全ての部分積を加算する方法と、繰
り返し部分積を加算する方法とがある。後者の場合、上
記のRSD表示の数と2の補数表示の数との加減算を利
用することができる。即ち、部分積としてRSD表示の
数を使い、乗数として2の補数表示の数を使用する。ま
た、繰り返しの回数(乗算サイクル)を計数するために
カウンタ回路が使用される。
【0014】
【発明が解決しようとする課題】従来の乗算器は以上の
ように構成されているので、乗算サイクルを計数するカ
ウンタ回路を使用しており、このためトランジスタ数が
増大するという問題点があった。また、冗長符号付き数
で得られた積の上位を2進数に変換するときに積の下位
による補正が必要であるという問題点があった。
【0015】この発明は上記のような問題点を解消する
ためになされたもので、請求項1の発明は上記カウンタ
回路を使わない乗算器を得ることを目的とする。
【0016】また、請求項2の発明は、CPUで積の2
進変換を行う乗算器であって、積の上位の補正をCPU
による積の上位読み出しの前に行い、CPUによる積の
上位の2進変換が積の下位によらず同じ方法でできる乗
算器を得ることを目的とする。
【0017】更に請求項3の発明は僅かなトランジスタ
の追加によって積和算を行うことのできる乗算器を得る
ことを目的とする。
【0018】
【課題を解決するための手段】請求項1の発明に係る乗
算器は、乗算サイクルの前に全ビットが「1」の数を出
力する加数選択手段と、その出力の加算器と、被乗数ま
たは部分積を格納する第2のレジスタとを設けると共
に、この第2のレジスタの出力から最後のサイクルを検
出する終了検出手段を設けたものである。
【0019】請求項2の発明に係る乗算器は、部分積の
一部を格納する第1のレジスタと、被乗数または冗長符
号付き数で表示された部分積の一部を格納する第2のレ
ジスタと、乗算サイクルの終了後、第2のレジスタの符
号を判定する符号判定手段とを設けたものである。
【0020】請求項3の発明に係る乗算器は、被乗数ま
たは冗長符号付き数で表示された部分積の一部を格納す
る第2のレジスタと、この第2のレジスタの内容を受け
て積和算を行う積和レジスタとを設けたものである。
【0021】
【作用】請求項1の発明における乗算器は、乗算サイク
ルの前に加数選択手段が全てのビットが「1」の数を出
力し、加算器は冗長符号付き数の正の部分と負の部分が
ともに「1」である値「0」を出力し、最後のサイクル
で終了検出手段が、下位ビットの冗長符号付き数の正の
部分を格納する部分と負の部分を格納する部分とに同時
に「1」が入っていることを検出して、乗算サイクルの
終了を検出する。
【0022】請求項2の発明おける乗算器は、乗算サイ
クルの終了後、符号判定手段によって第2のレジスタの
符号を判定し、判定結果によって第1のレジスタの内容
を補正する。
【0023】請求項3の発明における乗算器は、最初の
部分積として「0」の代わりに積和レジスタの内容を使
用し、乗算サイクルの最後で積和レジスタに積を書き込
む。
【0024】
【実施例】
実施例1.以下、請求項1の発明の一実施例を図につい
て説明する。図1はこの発明に係る乗算器の構成を示す
図面である。この乗算器はnビットの乗数と被乗数とよ
りnビットの積をつくる乗算器である。図1において、
1は冗長符号付き数で表示された部分積の一部を格納す
るn+1ビットの第1のレジスタとしてのレジスタであ
る。レジスタ(第1のレジスタ)1は冗長符号付き数の
正の部分を格納する部分及び負の部分を格納する部分で
構成される。
【0025】2は被乗数または冗長符号付き数で表示さ
れた部分積の一部を格納するn+1ビット第2のレジス
タとしてのレジスタである。レジスタ(第2のレジス
タ)2は冗長符号付き数の正の部分を格納する部分及び
負の部分を格納する部分で構成される。
【0026】4はレジスタ1の出力を一時的に保持する
第1のラッチ手段である。5は2の補数で表示された乗
数を格納する第3のレジスタとしてのレジスタである。
6はレジスタ(第3のレジスタ)5の出力を受けて、乗
数の2倍の数、乗数の2倍の数の反転、乗数、乗数の反
転及び全てのビットが「1」の数のうちの1つを生成す
る加数選択手段である。
【0027】7は、ラッチ手段4の出力と加数選択手段
6の出力とを加算する加算器である。8はレジスタ2の
出力を一時的に保持する第2のラッチ手段である。
【0028】9は第1のシフト・選択手段としてのシフ
ト・選択手段である。シフト・選択手段(第1のシフト
・選択手段)9は加算器7の出力の下位2ビット、ラッ
チ手段8の出力、CPU内部のXバスが入力され、レジ
スタ2の冗長符号付き数の正の部分を格納する部分に対
し、ラッチ手段8の出力を2ビット右シフトして下位ビ
ットとし、上位2ビットとして加算器7の出力の下位2
ビットを置いた数、上記をXバスの内容(被乗数)とし
て最下位ビットに「0」を置いた数を出力する。また、
レジスタ2の冗長符号付き数の負の部分を格納する部分
に対し、ラッチ手段8の出力を2ビット右シフトして下
位ビットとし、上位2ビットとして加算器7の出力の下
位2ビットを置いた数を出力する。
【0029】10は第2のシフト・選択手段としてのシ
フト・選択手段である。シフト・選択手段(第2のシフ
ト・選択手段)10は加算器7の出力が入力され、レジ
スタ1の冗長符号付き数の正の部分及び負の部分を格納
する部分に対して、加算器7の出力を2ビット右シフト
して下位ビットとし、上位最上位ビットとして「0」を
置いた数をそれぞれ出力する。
【0030】11はブースデコーダで、ラッチ手段8の
冗長符号付き数の正の部分を格納する部分の下位3ビッ
トを受けて加数選択手段を制御するための信号を生成す
る。12は遅延手段で、ブースデコーダ11の出力を1
サイクル遅延して出力する機能及び制御信号によりブー
スデコーダ11の出力とは異なる信号を出力する機能を
持つ。加数選択手段6は、遅延手段12の出力する信号
によって加数を選択する。
【0031】13は終了検出手段で、ラッチ手段8の下
位から3ビットの冗長符号付き数の正の部分を格納する
部分と負の部分を格納する部分とに同時に「1」が入っ
ていることを検出して、乗算の終了を検出する。
【0032】表2はブースデコーダの動作を示す真理値
表である。表2におけるB2〜B0は入力としてのラッ
チ手段8の冗長符号付き数の正の部分を格納する部分の
下位3ビットを示し、ACN2〜ACN0は出力を示し
ている。
【0033】
【表2】
【0034】図4は加数選択手段6と加算器7の構成を
示す図面である。図4において、5a〜5cは数を格納
するレジスタの0ビット、n−1ビット、nビットを示
している。20は接地を示している。21a〜21cは
信号ACN2が「0」のとき導通する電気スイッチとし
てのゲート手段である。22a〜22cは信号ACN2
が「1」のとき導通する電気スイッチとしてのゲート手
段である。
【0035】23a〜23dはNANDゲートである。
NANDゲート23a〜23dの一方の入力には、信号
ACN1が入力される。ゲート手段21aとゲート手段
22aの出力は互いに接続され、NANDゲート23a
の他方の入力になっている。ゲート手段21bとゲート
手段22bの出力は互いに接続され、NANDゲート2
3bの他方の入力になっている。ゲート手段21cとゲ
ート手段22cの出力は互いに接続され、NANDゲー
ト23cの他方の入力になっている。ラッチ5cの出力
は、NANDゲート23dの他方の入力になっている。
【0036】24a〜24dは排他的NORゲートで、
各々一方の入力は信号ACN0で他方の入力にはNAN
Dゲート23a〜23dの出力が接続される。
【0037】25a〜25dは一般化されたフルアダー
である。信号R*j、i、信号R**j,i及び排他的
NORゲートの出力がフルアダーの入力であり、信号R
*j,i+1、信号R**j,i+1がフルアダーの出
力である。フルアダーの入力と出力についた小○印は、
入力及び出力の反転を意味している。ここでiは演算の
回数、jはビットを表す。また*は冗長符号付き数の正
の部分を意味しており、**は負の部分を意味してい
る。
【0038】加数選択手段6はゲート手段21a〜21
c、ゲート手段22a〜22c、NANDゲート23a
〜23d及び排他的NORゲート24a〜24d等によ
って構成されている。また、一般化されたフルアダー2
5a〜25dが加算器7を構成している。
【0039】表3は信号X、信号ACN1、信号ACN
0と信号Yの真理値表を示す。信号XはNANDゲート
23eの一方の入力、信号Yは排他的NORゲート23
eの出力を表している。他のビットでも、同様の関係に
なる。
【0040】
【表3】
【0041】次に動作について説明する。CPUは乗算
命令の実行時で同期クロックΦが「1」の期間、被乗数
をXバスに乗数をYバスに乗せる。被乗数はシフト・選
択手段9から取り込む。
【0042】シフト・選択手段9は、レジスタ2の冗長
符号付き数の正の部分を格納する部分に対し上位をXバ
スの内容として最下位ビットに「0」を置いた数を出力
する。また、レジスタ2の冗長符号付き数の負の部分を
格納する部分に対し全てのビットが「0」の数を出力す
る。更に、これらの値はレジスタ2を介して、ラッチ手
段8にも書き込まれる。また、乗数はYバスからレジス
タ5に書き込まれる。
【0043】シフト・選択手段10は、レジスタ1の冗
長符号付き数の正の部分を格納する部分、負の部分を格
納する部分に対し全てのビットが「0」の数を出力す
る。これらの値はレジスタ1に書き込まれ、選択手段3
を介してラッチ手段4にも書き込まれる。
【0044】ブースデコーダ11はラッチ手段8の冗長
符号付き数の正の部分を格納する部分の下位3ビットを
受けて加数選択手段6を制御するための信号を生成す
る。このとき、上記下位3ビットの上位2ビットは被乗
数の下位2ビットが入り、最下位ビットは「0」なの
で、1回目のブースデコードは問題なく行われる。
【0045】CPUの同期クロックΦが立ち下がると同
時に、乗算器のクロックΦMDが動き始める。乗算器の
クロックΦMDは乗算器が動いていないときは「1」を
保っている。乗算器のクロックΦMDが次に立ち上がる
までは、遅延手段12は信号ACN1として「0」、信
号ACN0として「1」を出力し、これを受けて、加数
選択手段6は全てのビットが「1」の数を出力する。ま
た、加算器7には信号CYinとして「1」が入力さ
れ、加算器7は冗長符号付き数の正の部分と負の部分が
ともに「1」である値「0」を出力する。
【0046】乗算器のクロックΦMDが立ち下がると、
シフト・選択手段9はレジスタ2に対し、ラッチ手段8
の出力を2ビット右シフトし、上位2ビットとして加算
器7の出力の下位2ビットを置いた数を出力し、この値
がレジスタ2に書き込まれる。
【0047】同時に、シフト・選択手段10はレジスタ
1の冗長符号付き数の正の部分を格納する部分に対し、
加算器7の出力を2ビット右シフトし上位最上位ビット
として「0」を置いた数を出力する。これによって、レ
ジスタ1に冗長符号付き数の最上位の正の部分と負の部
分がともに「0」、最上位以外は正の部分と負の部分が
ともに「1」である値「0」が書き込まれる。
【0048】次の乗算器のクロックΦMDが立ち上がり
からブースのアルゴリズムによる乗算サイクルが開始さ
れる。
【0049】レジスタ1の内容がラッチ手段4に書き込
まれ、レジスタ2の内容がラッチ手段8に書き込まれ
る。
【0050】1回目のブースデコーダは既に終了してお
り、遅延手段12によってこのサイクルに対応した信号
ACN1と信号ACN0が加数選択手段6に入力され
る。
【0051】ブースデコーダは、ラッチ手段8の冗長符
号付き数の正の部分を格納する部分の下位3ビットを受
けて次のサイクルで加数選択手段6を制御するための信
号ACN1と信号ACN0とを生成する。
【0052】乗算器のクロックΦMDが立ち下がると、
シフト・選択手段9はレジスタ2に対し、ラッチ手段8
の出力を2ビット右シフトし、上位2ビットとして加算
器7の出力の下位2ビットを置いた数を出力し、この値
がレジスタ2に書き込まれる。
【0053】同時に、シフト・選択手段10はレジスタ
1の冗長符号付き数の正の部分を格納する部分に対し、
加算器7の出力を2ビット右シフトし上位最上位ビット
として「0」を置いた数を出力し、この値がレジスタ2
に書き込まれる。
【0054】上記のようなブースのアルゴリズムによる
乗算サイクルが繰り返され、やがて最後のサイクルにな
る。最後のサイクルで終了検出手段13が、ラッチ手段
8の下位から3ビット目の冗長符号付き数の正の部分を
格納する部分と負の部分を格納する部分とに同時に
「1」が入っていることを検出して、乗算の終了を検出
する。この後乗算器のクロックΦMDが立ち上がり、乗
算が終了する。
【0055】CPUは乗算が終了すると、レジスタ2の
冗長符号付き数の正の部分を格納する部分の上位nビッ
トの内容をXバスに読みだし、レジスタ2の冗長符号付
き数の負の部分を格納する部分の上位nビットの内容を
Yバスに読み出す。さらにCPU内のALUによってX
バスの内容からYバスの内容を減算することによって積
を得る。
【0056】実施例2.次に請求項2の発明の一実施例
について説明する。この実施例2ではnビットの乗数と
被乗数から2nビットの積を求める乗算器について説明
する。図2はその構成を示す図面であり、図1と同一の
構成要素は同一の参照記号を付して説明を省略する。
【0057】図2において、3はレジスタ1の出力とレ
ジスタ2の出力を選択する選択手段、4は選択手段3の
出力を一時的に保持する第2のラッチ手段である。14
は符号判定手段であって、加算器7の出力の符号を判定
する。
【0058】この実施例2においては、選択手段3を介
してレジスタ2の内容をラッチ手段4に書き込むことが
できる。またシフト・選択手段10は加算器7の出力を
1ビット左シフトして出力することが可能である。
【0059】この乗算器の乗算サイクルは、上記実施例
1と同様に行われる。乗算サイクル終了後、乗算クロッ
クΦMDが立ち上がると、選択手段3を介してレジスタ
2の内容がラッチ手段4に書き込まれる。この時、遅延
手段12のブースデコーダ11の出力に代えて、加数選
択手段6が全てのビットが「1」である数を出力するよ
うに信号ACN1として「0」を信号ACN0として
「1」を出力する。また信号CYinとして「1」を入
力することによって、加算器7はレジスタ2の内容がラ
ッチ手段4に書き込まれた値と値「0」との加算を行
う。符号判定手段14は加算器7の出力の符号を判定す
る。
【0060】次に乗算クロックΦMDが立ち上がると選
択手段3を介してレジスタ1の内容がラッチ手段4に書
き込まれる。このときも、遅延手段12のブースデコー
ダ11の出力に代えて、加数選択手段6が全てのビット
が「1」になるような数を出力するように信号ACN1
として「0」を信号ACN0として「1」を出力する。
【0061】このとき、符号判定手段14の符号の判定
によって、信号CYinの内容を変える。具体的には、
判定結果が正の場合は信号CYinとして「1」を、判
定結果が負の場合は信号CYinとして「0」を使う。
これによって、積の下位の符号が正の場合、積の上位そ
のままの値を(但し表現は異なる)、積の下位の符号が
負の場合、積の上位から「1」を減算した値を加算器7
の出力として得ることができる。乗算器のクロックΦM
Dが立ち下がったときに、加算器7の出力を1ビット左
シフトした値をシフト・選択手段10を介してレジスタ
1に書き込む。
【0062】CPUは乗算終了後積の下位を読み出すと
きには、レジスタ2の冗長符号付き数の正の部分を格納
する部分の上位nビットの内容をXバスに読みだし、レ
ジスタ2の冗長符号付き数の負の部分を格納する部分の
上位nビットの内容をYバスに読み出す。さらにCPU
内のALUによってXバスの内容からYバスの内容を減
算することによって積の下位を得る。
【0063】CPUは乗算終了後積の上位を読み出すと
きには、レジスタ1の冗長符号付き数の正の部分を格納
する部分の上位nビットの内容をXバスに読みだし、レ
ジスタ1の冗長符号付き数の負の部分を格納する部分の
上位nビットの内容をYバスに読み出す。さらにCPU
内のALUによってXバスの内容からYバスの内容を減
算することによって積の下位を得る。
【0064】実施例3.次に請求項3の発明の一実施例
について説明する。この実施例3は上記実施例1に積和
算機能を付加したものである。図3に構成を示し、図1
と共通の構成要素には同一の符号を付して説明を省略す
る。
【0065】図3において、15は冗長符号付き数で表
示されたnビットの積和レジスタである。このレジスタ
15はCPUの指令によってクリアすることができる。
また、積和レジスタ15にシフト・選択手段9の出力を
レジスタ2の上位nビットを介して書き込むこと、およ
び最上位ビットが「0」で積和レジスタ15の内容を下
位nビットとなる数を選択手段3を介してラッチ手段4
に書き込むことが可能である。
【0066】積和算を行うときには前もって、積和レジ
スタ15の内容をクリアしておく。積和算のための乗数
と被乗数を書き込んだ後、1回目の乗算クロックΦMD
が立ち上がったときに、最上位ビットが「0」の積和レ
ジスタ15の内容を下位nビットとなる数を選択手段3
を介してラッチ手段4に書き込む。この後は、乗算と同
一の乗算サイクルを行う。乗算サイクルの最後の乗算ク
ロックΦMDが立ち下がりで、積和レジスタ15にシフ
ト・選択手段9の出力をレジスタ2を介して書き込む。
【0067】これによって、積が積和レジスタ15に保
存される。以後、積和算を行うときには、上記の積和レ
ジスタ15のクリアは行わない。これによって、積が積
和レジスタ15に累積される。
【0068】CPUは積和レジスタ15を読み出すとき
には、積和レジスタ15の冗長符号付き数の正の部分を
格納する部分の内容をXバスに読みだし、積和レジスタ
15の冗長符号付き数の負の部分を格納する部分の内容
をYバスに読み出す。さらにCPU内のALUによって
Xバスの内容からYバスの内容を減算することによって
積和を得る。
【0069】
【発明の効果】以上のように、請求項1の発明によれ
ば、乗算サイクルの前に加数選択手段より全ビットが
「1」の数を出力すると共に、被乗数または部分積を格
納する第2のレジスタの出力から終了検出手段が最後の
サイクルを検出するように構成したので、乗算サイクル
を計数するカウンタ回路が不要になり、トランジスタ数
が減少するという効果がある。
【0070】また、請求項2の発明によれば、乗算サイ
クルの終了後、被乗数または冗長符号付き数で表示され
た部分積の一部を格納する第2のレジスタの符号を判定
し、判定結果によって部分積の一部を格納する第1のレ
ジスタの内容を補正するように構成したので、冗長符号
付き数で表された積の上位をCPUが読み出す前に必要
な補正が容易に出来るという効果がある。
【0071】請求項3の発明によれば、最初の部分積と
して積和レジスタの内容を用い、乗算サイクルの最後で
積和レジスタに積を書き込むように構成したので、僅か
な回路の追加で積和算を実現できるという効果がある。
【図面の簡単な説明】
【図1】請求項1の発明の一実施例による乗算器を示す
構成図である。
【図2】請求項2の発明の一実施例による乗算器を示す
構成図である。
【図3】請求項3の発明の一実施例による乗算器を示す
構成図である。
【図4】この発明の各実施例に用いられる加数選択手段
と加算器の構成を示す構成図である。
【図5】RSD表示の数Yと2の補数表示の数Zとの加
算を示す説明図である。
【図6】一般化されたフルアダーを示す構成図である。
【図7】RSD表示の数Yと2の補数表示の数Zとの減
算を示す構成図である。
【符号の説明】
1 レジスタ(第1のレジスタ) 2 レジスタ(第2のレジスタ) 3 選択手段 5 レジスタ(第3のレジスタ) 6 加数選択手段 7 加算器 9 シフト・選択手段(第1のシフト・選択手段) 10 シフト・選択手段(第2のシフト・選択手段) 11 ブースデコーダ 13 終了検出手段 14 符号判定手段 15 積和レジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 冗長符号付き数で表示された部分積の一
    部を格納する第1のレジスタと、被乗数または冗長符号
    付き数で表示された部分積の一部を格納する第2のレジ
    スタと、2の補数で表示された乗数を格納する第3のレ
    ジスタと、上記第3のレジスタの出力を受けて乗数の2
    倍の数、乗数の2倍の数の反転、乗数、乗数の反転及び
    全てのビットが「1」の数のうちの1つを生成する加数
    選択手段と、上記第1のレジスタの出力と上記加数選択
    手段の出力とを加算する加算器と、上記加算器の出力と
    上記第2のレジスタの出力と被乗数とが入力され、上記
    第2のレジスタの上記冗長符号付き数の正負の部分を格
    納する部分に対し、正の部分に対しては上記第2のレジ
    スタの出力を下位ビットとし上記加算器の出力を上位ビ
    ットとする数あるいは上記被乗数を上位ビットとし下位
    ビットを「0」とする数を出力し、負の部分に対しては
    上記第2のレジスタの出力を下位ビットとし上記加算器
    の出力を上位ビットとする数を出力する第1のシフト・
    選択手段と、上記加算器の出力を受けて上記第1のレジ
    スタの上記冗長符号付き数の正負の部分を格納する部分
    に対して、上記加算器の出力を下位ビットとし、上記ビ
    ットを「0」とする数を出力する第2のシフト・選択手
    段と、上記第2のレジスタの冗長符号付き数の正の部分
    を格納する部分の下位ビットを受けて上記加数選択手段
    を制御するための信号を生成するブースデコーダと、上
    記第2のレジスタの下位ビットの冗長符号付き数の正の
    部分を格納する部分と負の部分を格納する部分とに同時
    に「1」が入っていることを検出して、乗算サイクルの
    終了を検出する終了検出手段とを備えた乗算器。
  2. 【請求項2】 冗長符号付き数で表示された部分積の一
    部を格納する第1のレジスタと、被乗数または冗長符号
    付き数で表示された部分積の一部を格納する第2のレジ
    スタと、上記第1のレジスタの出力または上記第2のレ
    ジスタの出力のいずれか一方を選択して出力する選択手
    段と、2の補数で表示された乗数を格納する第3のレジ
    スタと、上記第3のレジスタの出力を受けて乗数の2倍
    の数、乗数の2倍の数の反転、乗数、乗数の反転及び全
    てのビットが「1」の数のうちの1つを生成する加数選
    択手段と、上記選択手段の出力と加数選択手段の出力と
    を加算する加算器と、上記加算器の出力と上記第2のレ
    ジスタの出力と被乗数とが入力され、上記第2のレジス
    タの上記冗長符号付き数の正負の部分を格納する部分に
    対し、正の部分に対しては上記第2のレジスタの出力を
    下位2ビットとし上記加算器の出力を上位ビットとする
    数あるいは上記被乗数を上位ビットとし下位ビットを
    「0」とする数を出力し、負の部分に対しては上記第2
    のレジスタの出力を下位ビットとし上記加算器の出力を
    上位ビットとする数を出力する第1のシフト・選択手段
    と、上記加算器の出力を受けて上記第1のレジスタの上
    記冗長符号付き数の正負の部分を格納する部分に対し
    て、加算器の出力を下位ビットとし最上位ビットを
    「0」とする数を出力する第2のシフト・選択手段と、
    上記第2のレジスタの冗長符号付き数の正の部分を格納
    する部分の下位ビットを受けて上記加数選択手段を制御
    するための信号を生成するブースデコーダと、乗算サイ
    クルの終了を検出する終了検出手段と、上記加算器の出
    力の符号を判定する符号判定手段とを備えた乗算器。
  3. 【請求項3】 冗長符号付き数で表示された部分積の一
    部を格納する第1のレジスタと、被乗数または冗長符号
    付き数で表示された部分積の一部を格納する第2のレジ
    スタと、上記第2のレジスタの出力を受けて積和算を行
    う積和レジスタと、上記第1のレジスタの出力または上
    記積和レジスタの出力のいずれか一方を選択して出力す
    る選択手段と、2の補数で表示された乗数を格納する第
    3のレジスタと、上記第3のレジスタの出力を受けて乗
    数の2倍の数、乗数の2倍の数の反転、乗数、乗数の反
    転または全てのビットが「1」の数のうちの1つを生成
    する加数選択手段と、上記第1のレジスタの出力と上記
    加数選択手段の出力とを加算する加算器と、上記加算器
    の出力と、上記第2のレジスタの出力と被乗数とが入力
    され上記第2のレジスタの上記冗長符号付き数の正負の
    部分を格納する部分に対し、正の部分に対しては上記第
    2のレジスタの出力を下位ビットとし上記加算器の出力
    を上位ビットとする数あるいは上記被乗数を上位ビット
    とし下位ビットを「0」とする数を出力し、負の部分に
    対しては上記第2のレジスタの出力を下位ビットとし上
    記加算器の出力を上位ビットとする数を出力する第1の
    シフト・選択手段と、上記加算器の出力を受けて上記第
    1のレジスタの上記冗長符号付き数の正負の部分を格納
    する部分に対し、正の部分に対しては上記加算器の出力
    を下位ビットとし上位ビットを「0」とする数を出力す
    る第2のシフト・選択手段と、上記第2のレジスタの冗
    長符号付き数の正の部分を格納する部分の下位ビットを
    受けて上記加数選択手段を制御するための信号を生成す
    るブースデコーダと、乗算の終了を検出する終了検出手
    段とを備えた乗算器。
JP5075110A 1993-03-10 1993-03-10 乗算器 Pending JPH06259228A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5075110A JPH06259228A (ja) 1993-03-10 1993-03-10 乗算器
US08/205,457 US5483477A (en) 1993-03-10 1994-03-04 Multiplying circuit and microcomputer including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5075110A JPH06259228A (ja) 1993-03-10 1993-03-10 乗算器

Publications (1)

Publication Number Publication Date
JPH06259228A true JPH06259228A (ja) 1994-09-16

Family

ID=13566712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5075110A Pending JPH06259228A (ja) 1993-03-10 1993-03-10 乗算器

Country Status (2)

Country Link
US (1) US5483477A (ja)
JP (1) JPH06259228A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257609B1 (en) 2000-10-16 2007-08-14 Nokia Corporation Multiplier and shift device using signed digit representation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4238833A (en) * 1979-03-28 1980-12-09 Monolithic Memories, Inc. High-speed digital bus-organized multiplier/divider system
US4538239A (en) * 1982-02-11 1985-08-27 Texas Instruments Incorporated High-speed multiplier for microcomputer used in digital signal processing system
US4644488A (en) * 1983-10-12 1987-02-17 California Institute Of Technology Pipeline active filter utilizing a booth type multiplier
US4868777A (en) * 1986-09-12 1989-09-19 Matsushita Electric Industrial Co., Ltd. High speed multiplier utilizing signed-digit and carry-save operands
JPH0546363A (ja) * 1991-08-08 1993-02-26 Mitsubishi Electric Corp 除算器
JPH05204609A (ja) * 1992-01-13 1993-08-13 Nec Corp 乗算回路

Also Published As

Publication number Publication date
US5483477A (en) 1996-01-09

Similar Documents

Publication Publication Date Title
US6564239B2 (en) Computer method and apparatus for division and square root operations using signed digit
JP2835153B2 (ja) 高基数除算器
US5426600A (en) Double precision division circuit and method for digital signal processor
JPH06202850A (ja) データ処理装置
US6728744B2 (en) Wide word multiplier using booth encoding
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
JP2970231B2 (ja) 並列乗算回路
US8533246B2 (en) Carry bucket-aware multiplication having bits with most significant bits set to zero
JPH0250492B2 (ja)
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
JP3391448B2 (ja) 除算器
JPH0546363A (ja) 除算器
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
JPH06259228A (ja) 乗算器
JP3019796B2 (ja) 乗算器
US20070083584A1 (en) Integrated multiply and divide circuit
JPS6259828B2 (ja)
JP3482102B2 (ja) 絶対値距離演算回路
JP2907276B2 (ja) 演算処理装置
JP3205020B2 (ja) 演算装置
JP3104569B2 (ja) 除算回路
JPH10320378A (ja) 演算装置
JPH086762A (ja) 乗算回路
JPH03179521A (ja) 乗算回路の構成
JPH08292875A (ja) 乗算処理装置