JPS6222145A - 演算装置 - Google Patents

演算装置

Info

Publication number
JPS6222145A
JPS6222145A JP60160058A JP16005885A JPS6222145A JP S6222145 A JPS6222145 A JP S6222145A JP 60160058 A JP60160058 A JP 60160058A JP 16005885 A JP16005885 A JP 16005885A JP S6222145 A JPS6222145 A JP S6222145A
Authority
JP
Japan
Prior art keywords
bit
circuits
multiplication
arithmetic
shift
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
JP60160058A
Other languages
English (en)
Inventor
Yoshinobu Mita
三田 良信
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP60160058A priority Critical patent/JPS6222145A/ja
Publication of JPS6222145A publication Critical patent/JPS6222145A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は演算装置に関し、特に、乗算、除算等の演算を
行う演算装置に関する。
[開示の概要] 本明細書及び図面は、2進数表示の第1と第2の2つの
数値を演算して積又は商を得る演算装置において、$2
の数値の各位のうち係数が““1”である位についての
み、第1の数値を前記第2の数値の各位の指数だけシフ
トし、該シレトして得た複数の数値を全て加算して第3
の数値を得る事により、積又は商を高速に得る事ができ
、かつ拡張性のある演算装置を得る技術を開示する。
[従来の技術] 近年、データ処理における数値演算の占める割合は大き
い、又、数値計算の中で特に乗算、除算処理の高速化が
大きな課題であるが、高速化を追−求すると逆に演算装
置の大規模化が問題となる。
乗算の場合を例として説明しよう。
従来、乗算回路においては第2図に示すような乗算器を
用いたり、第3図に示すような乗算ROM等を用いてい
た0例えば、浮動小数点表示の数同士の積の場合、指数
部は加減算、仮数部は積となる。この仮数部の積が問題
となる。又、浮動小数点数値に限らずに一般に有効数字
部分の積が問題となる。仮数部等の有効数字の積におい
て、乗算器は例えば桁移動等のアルゴリズムを用いて処
理に工夫を凝らしているが、乗算時間が早いものでも1
00 n5ec程度と非常に遅く、しかも大変高価なも
のである(数千円〜数万円)、「また乗算ROMであっ
ても1例えば画像処理等に用いた場合には、たとえ純粋
な画像処理部分と数値演算部分とを分離してオーバラッ
プ処理させるパイプライン処理を行っても演算速度(メ
モリ読出しに時間を費やすため)が不十分なこともある
し、価格についてもやや高価である。しかも、乗数等の
ビット数を増やすと、使用するROMの個数(容量)が
増え、さらに高価となる。又、ROMに乗算データを書
き込むためのシステムや手間が大きくなる。
上記の乗算装置に関する問題点は全く同様に除算にもあ
てはまる。
〔発明が解決しようとする問題点] 即ち、従来の演算装置では規模が大型化し高価になる欠
点があり、ROM等を用いたものは安価ではあるものの
、拡張性に乏しいといえよう。
そこで、本発明は従来実現できなかった演算を提供する
もので、簡単かつ整然とした構成をもち、従って拡張性
があり、高速かつ安価な演算装置を提案する事を目的と
する。
[問題点を解決するための手段] 上記問題点を解決するために、例えば4ビツトの乗算に
適用した実施例である第1図の演算装置は、2進数表示
゛の第1の数値Aと第2の数値Bを演算して積を得る場
合、第1の数値を夫々入力するビットシフト回路1〜4
と、第2の数値BについてBの各位のうち係数が“1°
°である位を判別して選択するデータ制御回路5〜8と
、加算器9〜11とからなる。
〔作用] 上記構成において、ビットシフト回路1〜4は乗数Bの
各位の指数だけ夫々被乗数Aをシフトする。データ制御
回路5〜6の夫々は、対応するビットシフト回路1〜4
の夫々の出力であるシフトされた数値か又は“O”のい
ずれかを選択して出力する。即ち、該係数力(“1′°
の時は対応するビットシフト回路の出力を選択し、前記
係数が“O”である時は“0”を選択して出力する。各
データ制御回路の出力の和を取る事により加算器11に
積を得る。
[実施例] 以下添付図面を参照しながら、本発明に係る実施例を更
に詳細に説明する。そこで、まず実施例として乗算に適
用した場合を説明する0本実施例に用いられる乗算の原
理は次のようである。
被乗数をA、乗数をB、、iiをCとするとC;AXB
となる0乗数Bは2進法で表現すると、B−Σ。(bn
・2n) 露・・・  +  2−4 ・b−4÷  2−3 ・
b−3+   2−2  ・b−2÷  2−1 ・b
−1÷2’l’bo + 2”b+ + 22・b2+
   ”・・・・”(D   ゛(n場O9±1.±2
.±3.・・・)(bn =o又は1) で表わされる。
従って、 C=AXB =A・Σn(bn・2”)−Σn bn・(2nA)=
−−・+ (2−’4Xb−4) + (2−3・A 
Xb−3)+  (2−2・AXb−2)   +  
(2−’4  Xb−+)+ (2”A Xbo ) 
+ (2−+ 4Xb+) + ・・・・・・・・・■ (n諺0.±1.±2.±3.・・・)(bn−o又は
l) 第0式の中の項で一般的にυ・A(n=0.±1.±2
゜±3.・・・)の項は、データAをシフトレジスタに
格納した場合に上位にnビットシフトするビットシフト
で簡単に実−できる、その時、nが正であれば上位にシ
フトし、負であれば下位にシフトする・従って、被乗数
Aと乗数Bの積Cは2m−Aの加算で表わせるので、乗
算装置はデータAのビットシフトと加算器との組合せで
原理的に構成できるはずである。しかも、第0式中の各
bnは“0゛又は“1゛であり、“Oパである時は前記
加算から除外できるので上記加算も極めて簡単である。
以上の結果をまとめてみると、A、Bを2進法表現で表
現した場合に、被乗数Aを乗数Bの各位毎の幕の量だけ
ビットシフトして、各位についてビットシフトして得た
数を各位毎の和をとる事により、積が得られる事となる
。尚、除算については後述する事とする。
第4図に演算装置の一使用例を示す0図中、40は中央
制御装置であって、例えば画像処理の分野では大量の画
像データを取り扱うためにパイプライン処理する方が高
速処理に向く、そこで、中央制御装置40は内部に専用
の演算回路をもつものの、特に乗算等の処理高速化のた
めに外部又は付加的に本実施例に係る演算装置41をも
つ事によりデータ処理と数値処理のバ4プライン化を実
現する。中央制御装置40は演算装置41に乗数等の数
値データ及び制御クロ□ツクを送り1代りに積等の演算
結果を受は取る。
第1図に、4ビツトの乗算装置の一実施例のブロック図
を示す6本発明が4ビツトのみに限定されない事は後に
明らかとなる0図中、1〜4は8ビツトまでシフトでき
るビットシフト回路、5〜8はデータ制御回路、9〜l
lは通常のiビット加算器、13.14は夫々乗数B、
被乗数Aを格納する4ビツトのラッチである。
説明をより具体的にする為に、A=a3・23◆a2・
22 + al−21+ ao、 B = b3−23
 + b2−22 +b!・21 + boとし、各ビ
ットシフト回路にはAが入力すると共に、ビットシフト
回路1にはn=3が、ビットシフト回路2にはn=2・
・・・・・が入力される0、同じく、データ制御回路5
にはb3が、データ制御回路6にはb2が、・・・夫々
−人力される。
第1図において、1〜4のビットシフト回路は、被乗数
At−nビット上位にシフトする回路で、これらのビッ
トシフト回路1〜4で21・Aを作る。5〜8のデータ
制御回路は、具体的には例えばデータセレクタのような
もので1乗数Bの係数成分であるbnが“0”であるか
′l″であるかに応じて、夫々“0”又は21−Aを出
力する。加算器9.10.11において26−Aの成分
同士を加算して、Σl12”−A−bnを加算器11よ
り出力して、AXB=Cが得られる。尚、図中の破線で
囲まれた部分を後に参照するために演算器12と称する
事とする。
(高速化を追求した例) 前記実施例の変形例を第5図に示す0本例の場合1例え
ば被乗数Aを6ビツトとし、乗数B=b−n・2−4÷
b−3・2−3◆b−2・2−2÷b−1・2−1 つ
まりB−0〜15/18とし、これをディジタル的に4
ピツF (b−+ + b−z 、b−3* b−s)
で表す。
第5図の実施例では、まず第1図の実施例におけるビッ
トシフト回路1〜4の簡略化に工夫を凝らしている。即
ち、被乗数Aが6ビツトでLSBよりDo・・・D5と
したとすると、例えばデータ制御回路21は2−1の位
に対応するので、この制御     。
回路にはには1ビツト下位にシフトしたデータCD4〜
Do )を入力する。これで第5図のビットシフト回路
は必要なくなり、高速化に寄与する。同様にデータ制御
回路22〜24には夫々Aを2ビツト(D3〜D、o 
) 、  3ビツトCD2〜Do)、4ビツトCD+〜
Do )シフトされて入力されるように配線を行う、又
、データ制御回路21〜24には、夫々b−+−b−,
の信号が入力され、各データ制御回路は前記実施例と同
様にb−t−b−4の値“0”又は““1”に応じてそ
の出力データを“0”または、入力データとする。
21〜24のデータ制御回路は、例えば標準論理ICで
ある?4LS273等のIC1個で構成できる。
ラッチ28〜33等は本演算装置を付加的に用いる中央
制御装置40等からの制御クロックに同期してデータを
ラッチする。25.26の加算器で、データは加算され
た後に32.33のラッチで同じ制御クロックに同期し
てラッチされ、加算器27において全ての要素が加算さ
れこの出力が乗算結果Cとなる。尚1図中のラッチはT
TL?4S374 、加算器はTTL749283等で
構成する事ができ、安価なICでしかも高速に動作する
本実施例では、ラッチ28〜33を用いて例えばパイプ
ラインプロセッサ等の中央制御装置40からの制御クロ
ックに1度同期させているので、前記IC等を使用して
演算装置を構成すれば、1つの乗算演算につき、40 
n5ec以下の演算スピードでパイプライン処理を確実
に行う事ができる。
又、これらのICの伝播速度に余裕のある時はラッチ2
8〜31.32〜33は使用する必要はない、このよう
に、高速処理が可能となるのも本実施例が演算をビット
シフトと加減算のみで構成している事による。特に第6
図のように、取り扱うデータのビット構成の範囲が予想
できる時はビットシフトを布線論理に置換える事ができ
、更なる高速化が望める。
く汎用性を追求した例〉 第6図に示した実施例は第1図の実施例の演算装置につ
いてより汎用性を追求した場合である。
数値演算において1乗数、被乗数とも通常、中央制御装
置40からは浮動小数点表示で送られる事が多い、つま
りこのような場合、仮数部については正規化されている
ので、整数と同様に扱う事ができる。又、乗算、除算と
も加減算と違って2つの数値データ間の正規化等の桁合
せの必要がないので、仮数の演算とは別個に指数部の演
算ができる。そこで乗数についてはラッチ50に、被乗
数についてはラッチ51に夫々指数部と仮数部とを分離
して入力する。2つの仮数部データについては前述の演
算器12に入力する。演算器12は第1図に示したもの
と基本的に同じであってよく。
異なる点は仮数の乗算は整数の乗算として取り扱うので
、第1図の時とは違ってビットシフトの方向は常に上位
方向のみでよい事となる。しかもビットシフトの最大必
要量は入力される仮数部の最大有効桁数であればよい、
このようにして得た仮数部の積をシフトレジスタ53に
ラッチし、一方指数部の和を加算器52で取り、その和
に応じたシフト量でシフトレジスタ53をビットシフト
すれば(シフト方向は加算器52の符号による)、シフ
トレジスタ53の出力は求める積である。
このように内部の構造を整理する事により。
色々なビット数の数値データに対しても応用が効き、汎
用性が高く、回路のLSI化に向く、そこで、このよう
にLSI化したものを以下便宜上演算LSIと呼ぶ事に
する。
くビットスライス化) 被乗数の桁数が多い場合については、処理ビット固定の
演算装置を多数組合せることによって対処できる。その
ような場合、前述した第6図の演算装置のLSI(演算
LSI)化したものを並列に並べ、被乗数の各ビットを
順に入力すればよい、その時に考慮する事は被乗数の指
数データである。被乗数の指数データは単一でも、各演
算LSIには分解して入力する必要があるからである。
そこで、各演算LSIに入力する指数データを演算LS
Iの処理ビット数に見合って考慮したものを入力する。
例えば、第7図の如く入力被乗数が12ビツト(a目〜
ao)の整数である場合について説明する。演算LSI
60〜61が4ビツト処理であるとすれば、このような
演算LSIをiつ並べ、キ々の演算LSIにCよ順に被
乗数を4ビツトずつ入力する。更に、最上位の演算LS
Iの指数入力は“8”1次の演31ELSIのそれは“
4”、最下位の演算LSIのそれは0”°となるように
する。
一方、各LSIからの出力はそのまま積となる。
こうしてLSI化と共にビットスライス化により更に汎
用性が増す。
(除算への応用) 除数C1被除数り、商Eについて考える。前述の場合と
同様に、 D−Σn(dn4”) =・・・ +2−4・d−s  ◆2−3・d−3+2
−2・d−2+ 2−1−d−1+ 2O−do + 
21dl + 22−dz +(n富0. ± 1.±
2.±3.・・・)(dn =0又は1) とする。
従って、 E = D/C =(17C)・Σn(dn4+1)−Σn dn・(2
n−(1/C))婁・・・÷(2−4・(1/C)・d
−4)◆(2づ・(1/C)・d−3)◆(2−2・(
1/C)・d−2)+(2−1・(1/C)・d−1)
+ (2’−(1/()・da ) ÷(21−(1/
C)・d+) ÷・・・(nmo、±1.で2.±3.
・・・)である、これは、前述した乗算の場合と他なら
ず、唯一その相違は(1/C)のみである、そこで第8
図の如く前記乗算装置の前段に逆数回路70を設けその
出力を前述の例えば乗算用LSI71に入力すればよい
、こうして本発明の演算装置装置は除算にも適用できる
こととなる。
尚、以上説明してきた演算装置は2進表示された数値デ
ータを取り扱ったが1例えば4進表示データ、8進表示
データ等は全て基本的には2進法であるから、当然本発
明の範囲内に含まれる。
[発明の効果] 以上述べたように本発明によれば1乗算又は除算をビッ
トシフト及び加算の組合せにより行う事により、高速で
かつ汎用性、拡張性に富んだ演算装置が提供できる。
【図面の簡単な説明】
第1Ff4は本発明に係る実施例の基本動作を説明する
ためのブロック図、 第2図は従来の乗算器を使う乗算装置を説明する図、 第3図は従来のROM等を使う乗算装置を説明する図、
                       1′
第4図は実施例の演算装置の使用態様を説明する図、 第5〜8図は他の実施例のブロック図である。 図中、 1〜4・・・ビットシフト回路、5〜8,21〜24°
・・データ制御回路、9〜11.25〜27.52・・
・加算器、12・・・演算器、13,14.28〜31
.32.33.50.51”5yチ、40−・・中央制
御装置、41・・・演算装置、53・・・シフトレジス
タ、60〜62.71−・・演算LSI、70−・・逆
数回路である。 特許出願人   キャノン株式会社 第2因 第3図 第4図

Claims (3)

    【特許請求の範囲】
  1. (1)2進数表示の第1と第2の2つの数値を演算して
    積又は商を得る演算装置において、第2の数値の各位の
    うち係数が“1”である位についてのみ、第1の数値を
    前記第2の数値の各位の指数だけシフトし、該シフトし
    て得た複数の数値を全て加算して第3の数値を得る事を
    特徴とする演算装置。
  2. (2)第3の数値は第1の数値と第2の数値との積であ
    る事を特徴とする特許請求の範囲第1項に記載の演算装
    置。
  3. (3)第3の数値は、第2の数値が被除数で、第1の数
    値の逆数が除数である時の商である事を特徴とする特許
    請求の範囲第1項に記載の演算装置。
JP60160058A 1985-07-22 1985-07-22 演算装置 Pending JPS6222145A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60160058A JPS6222145A (ja) 1985-07-22 1985-07-22 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60160058A JPS6222145A (ja) 1985-07-22 1985-07-22 演算装置

Publications (1)

Publication Number Publication Date
JPS6222145A true JPS6222145A (ja) 1987-01-30

Family

ID=15706992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60160058A Pending JPS6222145A (ja) 1985-07-22 1985-07-22 演算装置

Country Status (1)

Country Link
JP (1) JPS6222145A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5112034A (en) * 1987-11-10 1992-05-12 Canon Kabushiki Kaisha Sheet handling apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5112034A (en) * 1987-11-10 1992-05-12 Canon Kabushiki Kaisha Sheet handling apparatus

Similar Documents

Publication Publication Date Title
Lu Arithmetic and logic in computer systems
Parhami Computer arithmetic
US5241493A (en) Floating point arithmetic unit with size efficient pipelined multiply-add architecture
USRE39385E1 (en) Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US6697832B1 (en) Floating-point processor with improved intermediate result handling
US8898215B2 (en) High-radix multiplier-divider
WO1990005335A1 (en) Apparatus for multiplication, division and extraction of square root
Hickmann et al. A parallel IEEE P754 decimal floating-point multiplier
JPH03164932A (ja) 演算回路と演算回路のデータ処理法
US20090006509A1 (en) High-radix multiplier-divider
US8533246B2 (en) Carry bucket-aware multiplication having bits with most significant bits set to zero
US20040010536A1 (en) Apparatus for multiplication of data in two's complement and unsigned magnitude formats
JP2006172035A (ja) 除算・開平演算器
EP0476911A2 (en) Multiplier signed and unsigned overflow flags
US20230086090A1 (en) Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit
EP1052568A1 (en) Three input split-adder
JPS6222145A (ja) 演算装置
Koç A Tutorial on p-adic Arithmetic
Ruiz et al. Algebraic circuits
Ercegovac et al. Module to perform multiplication, division, and square root in systolic arrays for matrix computations
US6109777A (en) Division with limited carry-propagation in quotient accumulation
Prusty et al. A modified redundant binary adder for efficient VLSI architecture
JPH04172526A (ja) 浮動小数点除算器
Swartzlander The negative two’s complement number system
US20040049528A1 (en) Apparatus and method for adding multiple-bit binary-strings