JP3529622B2 - 演算回路 - Google Patents
演算回路Info
- Publication number
- JP3529622B2 JP3529622B2 JP12642698A JP12642698A JP3529622B2 JP 3529622 B2 JP3529622 B2 JP 3529622B2 JP 12642698 A JP12642698 A JP 12642698A JP 12642698 A JP12642698 A JP 12642698A JP 3529622 B2 JP3529622 B2 JP 3529622B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- output
- result
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
- G06F7/5095—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
ッサやマイクロプロセッサ等に使用される演算回路に関
し、特に、連続した命令を実行する際に、演算中の途中
結果データを用いて前回の演算結果に基づく演算を実行
することによって、前回の演算結果の確定を待たずに次
の演算を行い、パイプライン処理の冗長性を排除して、
回路面積を増大させることなく演算時間を短縮し、演算
性能を向上させるための技術に関する。
の演算の結果を用いて次の命令の演算を行う累積演算に
おいては、桁上げ信号の伝播の処理速度が、全体の演算
速度に大きな影響を及ぼす。このため、従来より、前回
命令の演算結果がキャリーセーブ形式などの場合には、
桁上げ伝播加算を複数回行うかわりに、桁上げ伝播加算
器(CPA:Carry Propagation A
dder)の前に、桁上げ保存加算器(CSA:Car
ry Save Adder)などの高速な加算器を置
くことによって、かかる桁上げ処理の高速化が図られて
きた。ここで、CSAとは、3個のオペランドの高速加
算のための装置であり、一連のFA(Full Add
er)から構成される。そして、オペランドの1つは桁
上げ入力に入り、桁上げ出力は、隣の桁の桁上げ入力に
与えられるかわりに、第2の出力語とみなされる。そし
て、CSAの出力を、2オペランド加算器で加算して最
終結果を得るものである。
加算器の間には、レジスタなどの何らかのデータ保持回
路を設け、2つの加算器の間のタイミング調整を図るこ
と場合がある。かかるデータ保持回路は、特に、CPA
の演算時間がサイクルタイムに比べて比較的長くかかる
場合や、プリチャージ型などタイミングに制約のあるC
PAを用いる場合などで必要となる場合が多い。
の、従来の演算回路について、累積加算と累積減算の場
合を説明する。
回路について、図8を用いて説明する。図8に示すよう
に、かかる累積加算回路は、2入力データ(A、B)
と、出力レジスタに保持されているデータとの加算を行
い、その結果を出力レジスタに書くという動作を行う回
路であり、この演算を繰り返すことにより、A+Bの加
算結果が累積されていくことになる。即ち、式で表す
と、 初期値+(入力A+入力B)+(入力A’+入力B’)
… という演算を実行する回路である。かかる2入力データ
は、どのような形式で与えられてもよいが、一例として
は、累積加算すべきデータがキャリーセーブ形式となっ
ていて、データAがCarry,データBがSumとなっている
場合などが考えられる。
に、レジスタにロードするデータ(初期値)と加算器か
らの出力のいずれかを選択するセレクタ31、セレクタ
31の出力を保持する出力レジスタ32、出力レジスタ
32の出力と入力データA,Bを入力とする桁上げ保存
加算器(CSA)33、CSA33の2出力をそれぞれ
保存する中間結果保持レジスタ34、35、レジスタ3
4、35の出力を入力とする桁あげ伝播加算器(CP
A)36とから構成される。
き、以下に説明する。
により、初期値を選択し、その結果をレジスタ32に書
き込むことにより、加算の初期値のロードを行う。
力データA,Bと、レジスタ32の出力とを入力とし
て、CSA33が加算を行う。加算結果は、Carry
信号S1、Sum信号S2として出力され、中間結果保
持レジスタ34、35にそれぞれ保存される。
4、レジスタ35に保存されたデータを入力として、C
PA36が加算を行う。そして、セレクタ31により、
CPA36の加算結果が選択され、加算結果データとし
て出力レジスタ32に書き込まれる。
タイム2および3の処理を繰り返し行うことによって、
実現される。
回路について、図9を用いて説明する。かかる減算回路
は、式で表すと、初期値−(入力A+入力B)−(入力
A’+入力B’)…という演算を実行するための回路で
ある。
キャリーセーブ形式になっており、2入力データA、B
がそれぞれ、CarryとSumとに対応する場合などが考えら
れる。
初期値または数回減算を繰り返した結果である被減数を
P1、減数側の入力をA,Bとすると、
より、累積減算が実現できることとなる。
に、レジスタにロードするデータ(初期値)と加算器か
らの出力の反転のいずれかを選択するセレクタ31、セ
レクタ31の出力を保持するレジスタ32、レジスタ3
2の出力の反転をとる反転回路37、反転回路37の出
力と入力データA,Bを入力とする桁あげ保存加算器
(CSA)33,CSA33の2出力をそれぞれ保存す
る中間結果保持レジスタ34、35、レジスタ34、3
5の出力を入力とする桁あげ伝播加算器(CPA)3
6、CPAの出力を反転する反転回路38から構成され
る。
き、以下に説明する。
により、初期値を選択し、その結果をレジスタ32に書
き込むことにより、初期値のロードを行う。
力A,B、レジスタ32の出力の反転結果である反転回
路37の出力とを入力として、CSA33が、次式に示
す加算を行う。
4、35に保存される。
タ34、中間結果保持レジスタ35に保存されたデータ
を入力として、CPA36が加算を行う。かかるCPA
36の加算結果は、反転回路38により、反転されて出
力される。そして、セレクタ31が、反転回路38の出
力結果(CPA36の反転)を選択し、次式に示す演算
結果がレジスタ32に書き込まれる。
び3の処理を繰り返し行うことによって、実現され、所
望の結果が出力レジスタ32の出力として得られること
となる。
た従来の累積演算回路には、以下の問題点があった。図
10を用いてかかる問題点を説明する。即ち、演算の実
行制御として、演算処理の高速化を図るために、パイプ
ライン制御を行うことが一般的に行われている。パイプ
ライン制御とは一般に、各命令を複数の処理段階に分
け、任意の時点において、一群の命令が同時に種々の処
理段階にあることができるようにする実行制御の方法で
ある。かかるパイプライン制御により、同一サイクルタ
イムにおいて、先の命令の終了を待たずに、同時にn命
令が並列に実行可能となるのである。
(2回目以降)の演算は、出力レジスタに出力された前
回の演算結果を読み出し、この値を参照することにより
行われていた。即ち、図10に示すように、毎回の演算
(図10中の命令1、2、3・・・)は、CSAでの加
算段階とCPAでの加算段階との2段階により構成され
ており、2サイクルタイムで処理が完了する。本来、パ
イプライン制御の下では、命令1の終了を待たずに、命
令2の実行が可能なはずである。しかしながら、n回目
(n>2)の命令においては、(n−1)回目の演算結
果を入力とするために、第2段階であるCPAでの加算
段階の出力レジスタへの結果書き込み終了を待って、出
力レジスタの内容を、T22、T32に示すタイミング
で参照する必要があった。このため、各命令の実行がシ
リアライズされてしまい、パイプライン動作に、T2
1、T31に示すような空きが生じてしまっており、こ
の結果、累積演算の処理終了までに長時間を要すること
となっていた。
る、累積演算など、連続する命令を実行する際に、パイ
プライン処理に冗長性(動作に空きが生じた)があった
ために、演算時間がかかり、演算性能が低下していたと
いう問題点を解決するためになされたものである。
た命令を実行する際に、演算中の途中結果データを用い
て前回の演算結果に基づく演算を実行することによっ
て、前回の演算結果の確定を待たずに次の演算を行い、
パイプライン処理の冗長性を排除して、回路面積を増大
させることなく演算時間を短縮し、演算性能を向上させ
ることを可能とする演算回路を提供することにある。
ある積和演算とを、同一の演算サイクルで実行し、パイ
プライン制御をより容易にすることにある。
ータとして用いる演算)において、逐一前回の演算結果
の補数を用いることなく演算を行うことによって、積差
演算の効率化を図ることにある。
は、複数の入力データに基づく加算を行い、2つの出力
データを出力する第1の加算回路と、前記2つの出力デ
ータのそれぞれに対応して設けられ、該2つの出力デー
タを第1と第2の中間データとしてそれぞれ保持する中
間データ保持手段と、予め設定された初期値および前記
第1の中間データを含むデータのいずれかを選択し、前
記第1の加算回路への1つの入力データとする第1の選
択手段と、0データおよび前記第2の中間データを含む
データのいずれかを選択し、前記第1の加算回路への1
つの入力データとする第2の選択手段と、前記中間デー
タ保持手段に保持された前記第1及び第2の中間データ
に従って加算を行い、1つの出力データを出力する第2
の加算回路と、前記第2の加算回路の出力データを結果
データとして保持する結果データ保持手段とを少なくと
も具備し、連続して前記加算を行う場合には、初回の演
算の際には、前記第1の選択手段は前記初期値を、前記
第2の選択手段は0データをそれぞれ選択し、2回目以
降の演算の際には、前記第1の選択手段は前記第1の中
間データを、前記第2の選択手段は第2の中間データを
それぞれ選択することとなる。上記構成によれば、累積
加算、累積演算など、前回の演算の結果を用いて連続し
て演算を行う場合に、演算の途中結果データを用いて演
算を行うことが可能となる。つまり、演算結果のレジス
タへの書き込みを待たずに次の命令を実行することによ
り、パイプライン処理に空きが生じることなく、毎回の
命令を並行処理することが可能となるのである。尚、こ
こで、0データとは、全ビットが0であるall ze
roのデータをいう。
行う演算回路であって、複数の入力データに基づく加算
を行い、2つの出力データを出力する第1の加算回路
と、前記2つの出力データのそれぞれに対応して設けら
れ、該2つの出力データを第1と第2の中間データとし
て保持する中間データ保持手段と、予め設定された初期
値の反転データおよび前記第1の中間データを含むデー
タのいずれかを選択し、前記第1の加算回路への1つの
入力データとする第1の選択手段と、0データおよび前
記第2の中間データを含むデータのいずれかを選択し、
前記第1の加算回路への1つの入力データとする第2の
選択手段と、前記中間データ保持手段に保持された前記
第1および第2の中間データに従った加算を行い、1つ
の出力データを出力する第2の加算回路と、前記第2の
加算回路の出力データの反転データを結果データとして
保持する結果データ保持手段とを少なくとも具備し、連
続して前記減算を行う場合には、初回の演算の際には、
前記第1の選択手段は前記初期値の反転データを、前記
第2の選択手段は0データをそれぞれ選択し、2回目以
降の演算の際には、前記第1の選択手段は前記第1の中
間データを、前記第2の選択手段は前記第2の中間デー
タをそれぞれ選択することとなる。これにより、特に累
積減算において、請求項1と同様の効果を得ることが可
能となる。
算を行う演算回路であって、被乗数および乗数の入力に
従った乗算を行う乗算回路と、前記乗算回路からの2つ
の入力データを含む複数の入力データに基づく加算を行
い、2つの出力データを出力する第1の加算回路と、前
記2つの出力データのそれぞれに対応して設けられ、該
2つの出力データを第1と第2の中間データとして保持
する中間データ保持手段と、予め設定された初期値およ
び前記第1の中間データを含むデータのいずれかを選択
し、前記第1の加算回路への1つの入力データとする第
1の選択手段と、0データおよび前記第2の中間データ
を含むデータのいずれかを選択し、前記第1の加算回路
への1つの入力データとする第2の選択手段と、前記中
間データ保持手段に保持された前記第1及び第2の中間
データに基づき、桁上げ加算を行い、1つの出力データ
を出力する第2の加算回路と、前記第2の加算回路の出
力データを結果データとして保持する結果データ保持手
段とを少なくとも具備し、連続して前記積和演算を行う
場合には、初回の演算の際には、前記第1の選択手段は
前記初期値を、前記第2の選択手段は0データをそれぞ
れ選択し、2回目以降の演算の際には、前記第1の選択
手段は前記第1の中間データを、前記第2の選択手段は
前記第2の中間データをそれぞれ選択することとなる。
これにより、積和演算、積差演算など、乗算の積を加数
または減数として、前回の演算の結果を用いて連続して
演算を行う場合にも、請求項1と同様の効果が得られる
こととなる。また、乗算と、データ依存のある積和演算
や積差演算とを同一のサイクルで実行できるので、パイ
プライン制御をより容易に行うことが可能となる。加え
て、積差演算の場合には、逐一前回の結果の補数を用い
ることなく毎回の演算を行うので、さらに、演算の効率
化を図ることが可能となる。
および乗数の入力に従った乗算を行う乗算回路と、前記
乗算回路からの2つの入力データを含む複数の入力デー
タに基づく加算を行い、2つの出力データを出力する第
1の加算回路と、前記2つの出力データのそれぞれに対
応して設けられ、該2つの出力データを第1と第2の中
間データとしてそれぞれ保持する中間データ保持手段
と、予め設定された初期値の反転データ、前記第1の中
間データ、0データ、および該第1の中間データの反転
データを含むデータのいずれかを選択し、前記第1の加
算回路への1つの入力データとする第1の選択手段と、
0データ、前記第2の中間データ、および該第2の中間
データの反転データを含むデータのいずれかを選択し、
前記第1の加算回路への1つの入力データとする第2の
選択手段と、前記中間データ保持手段に保持された前記
第1及び第2の中間データに基づき、桁上げ加算を行
い、1つの出力データを出力する第2の加算回路と、前
記第2の加算回路の出力データの反転データを保持する
結果データ保持手段とを少なくとも具備し、乗算の積を
減数として被減数からの減算を連続して行う場合であっ
て、さらに前記初期値を初回の減算の被減数とする場合
には、初回の減算の際には、前記第1の選択手段は前記
初期値の反転データを、前記第2の選択手段は0データ
をそれぞれ選択し、2回目以降の演算の際には、前記第
1の選択手段は前記第1の中間データを、前記第2の選
択手段は前記第2の中間データをそれぞれ選択し、前記
乗算回路からの入力データを初回の減算の被減数とする
場合には、初回の演算の際には、前記第1および第2の
選択手段は0データをそれぞれ選択し、2回目の演算の
際には、前記第1の選択手段は前記第1の中間データの
反転データを、前記第2の選択手段は前記第2の中間デ
ータの反転データをそれぞれ選択するとともに、前記第
2の加算回路は、さらに、前記桁上げ加算の際に、桁上
げ信号(キャリーイン)を用いて1を加算することによ
り、前記結果データ保持手段に演算結果を得ることとな
る。
および乗数の入力に従った乗算を行う乗算回路と、前記
乗算回路からの2つの入力データを含む複数の入力デー
タに基づく加算を行い、2つの出力データを出力する第
1の加算回路と、前記2つの出力データのそれぞれに対
応して設けられ、該2つの出力データを第1と第2の中
間データとしてそれぞれ保持する中間データ保持手段
と、0データ、前記第1の中間データ、および該第1の
中間データの反転データを含むデータのいずれかを選択
し、前記第1の加算回路への1つの入力データとする第
1の選択手段と、0データ、前記第2の中間データ、お
よび該第2の中間データの反転データを含むデータのい
ずれかを選択し、前記第1の加算回路への1つの入力デ
ータとする第2の選択手段と、前記中間データ保持手段
に保持された前記第1及び第2の中間データに基づき、
桁上げ加算を行い、1つの出力データを出力する第2の
加算回路と、前記第2の加算回路の出力データの反転デ
ータを保持する結果データ保持手段とを少なくとも具備
し、乗算の積を減数として被減数からの減算を連続して
行う場合には、初回の減算の際には、前記第1および第
2の選択手段は0データをそれぞれ選択し、2回目の演
算の際には、前記第1の選択手段は前記第1の中間デー
タの反転データを、前記第2の選択手段は前記第2の中
間データの反転データをそれぞれ選択するとともに、前
記第2の加算回路は、さらに、前記桁上げ加算の際に、
桁上げ信号(キャリーイン)を用いて1を加算すること
により、前記結果データ保持手段に演算結果を得ること
となる。
から入力される乗算結果データを含む複数の入力データ
に従った加算を行い、2つの出力データを出力する第1
の加算回路と、前記2つの出力データのそれぞれに対応
して設けられ、該2つの出力データを第1と第2の中間
データとしてそれぞれ保持する中間データ保持手段と、
予め設定された初期値の反転データ、前記第1の中間デ
ータ、該第1の中間データの反転データ、および0デー
タを含むデータのいずれかを選択し、前記第1の加算回
路への1つの入力データとする第1の選択手段と、前記
第2の中間データ、該第2の中間データの反転データ、
および0データを含むデータのいずれかを選択し、前記
第1の加算回路への1つの入力データとする第2の選択
手段と、前記中間データ保持手段に保持された前記第1
および第2の中間データに基づき、桁上げ加算を行い、
1つの出力データを出力する第2の加算回路と、前記第
2の加算回路の出力データの反転データを保持する結果
データ保持手段とを少なくとも具備し、乗算の積を減数
として被減数からの減算を連続して行う場合であって、
さらに前記初期値を初回の減算の被減数とする場合に
は、初回の減算の際には、前記第1の選択手段は前記初
期値の反転データを、前記第2の選択手段は0データを
それぞれ選択し、2回目以降の演算の際には、前記第1
の選択手段は前記第1の中間データを、前記第2の選択
手段は前記第2の中間データをそれぞれ選択し、乗算回
路からの入力データを初回の減数の被減数とする場合に
は、初回の演算の際には、前記第1および第2の選択手
段は0データをそれぞれ選択し、2回目の演算の際に
は、前記第1の選択手段は前記第1の中間データの反転
データを、前記第2の選択手段は前記第2の中間データ
の反転データをそれぞれ選択するとともに、前記第2の
加算回路は、さらに、前記桁上げ加算の際に、桁上げ信
号(キャリーイン)を用いて1を加算することにより、
前記結果データ保持手段に演算結果を得ることとなる。
これら請求項4乃至6の発明によれば、特に積差演算に
おいて、請求項3と同様の効果を得ることが可能とな
る。
演算回路はさらに、前記第2の加算回路の出力データお
よび該出力データの反転データのいずれかを選択して前
記結果データ保持手段への1つの入力とする第3の選択
手段を具備し、乗算演算を行う際には、前記第1および
第2の選択手段はともに0データを、前記第3の選択手
段は前記第2の加算回路の出力データをそれぞれ選択す
ることとなる。これにより、積和演算回路や積差演算回
路に乗算回路も併せて搭載できるので、回路規模の増大
を抑制することができる。
ながら詳細に説明する。本実施形態は、累積加算におい
て、前回の演算の中間データの利用に基づく演算実行の
機能を実現するものである。
を示すものである。第1の実施形態は、レジスタにロー
ドするデータ(初期値)又は加算器からの出力のいずれ
かを選択するセレクタ1、セレクタ1の出力を保持する
レジスタ2、レジスタ2の出力と後述の中間結果保持レ
ジスタ4の出力のいずれかを選択するセレクタ9、後述
のレジスタ5の出力と0データ(all zero)のいずれか
を選択するセレクタ10、入力データA,B、セレクタ
9の出力、セレクタ10の出力の4つを入力とする4入
力2出力加算回路(4-2Compactor)3、4-2Compactor3
の2出力をそれぞれ保存する中間結果保持レジスタ4,
5、中間結果保持レジスタ4、5の出力を入力とする桁
上げ伝播加算器(CPA)6により構成される。
明する。図2に、4-2Compactor3の真理値表を示す。図
2中において、a,b,c,dは4入力信号のそれぞれ
を表す。Ciは、入力桁上げ信号を表す。また、Sは、
出力和信号を、CおよびCoは、出力桁上げ信号を表
す。4-2Compactor3の演算式は、次式で示される通りで
ある。尚、CとCoとは、等価の桁上げ信号であるの
で、入れ替え可能である。
に、nビット接続する構成も可能である。かかる場合、
下位側の桁あげ信号Coは、隣あう上位側の桁あげ入力
Ciに接続される。尚、最下位ビットの桁あげ入力信号
Ciは外から入力することが可能であるが、ここでは、
特に記述しない限りは最下位ビットの桁あげ入力信号C
iに対しては0を入力することとする。
4-2Compactorには限定されない。かかる加算回路は、中
間結果保持レジスタ4、5から入力される2信号をそれ
ぞれ加算し、2出力とすることができればよい。従っ
て、4-2Compactorの代わりに、Carry Save Adder2段を
用いても、同様の動作をさせることが可能である。ま
た、入力データ前に論理回路が付加されている場合に
は、適宜、それらの論理と組合せて演算を行う構成とす
ることも可能である。
ように構成されており、以下、その動作につき説明す
る。
値を選択し、その結果をレジスタ2に書き込む。すなわ
ち、レジスタ2に初期値のロードを行う。以下、初期値
をPとして、以下の説明を行う。
スタ2に保存されているデータを選択する。また、セレ
クタ10が、all zeroデータを選択する。4-2Compactor
3が、入力データA,入力データB,及び、セレクタ
9,セレクタ10の出力の加算を行い、2つの出力デー
タは中間結果保持レジスタ4,5にそれぞれ保存され
る。
タ4、レジスタ5に保存されたデータの加算を行う。セ
レクタ1が、CPA6の加算結果を選択し、加算結果デ
ータが出力レジスタ2に書き込まれる。ここで、実行さ
れる演算は次式で表される。
結果保持レジスタ4の出力を選択し、4-2Compactor3に
対して出力する。同時に、セレクタ10が、中間結果保
持レジスタ5の出力を選択し、4-2Compactor3に対して
出力する。
力データA’,B’も4-2Compactor3に入力され、加算
される。加算結果は、レジスタ4,5にそれぞれ保存さ
れる。ここで、レジスタ4,5には、累積加算された結
果がキャリーセーブ形式で保持されていることになる。
ここでの加算結果は、次式で表される。
を、累積演算に必要な回数繰り返すことにより、次々
に、2つの入力データの加算結果が累積されていくこと
となる。
明する。即ち、上述した動作を、時系列に従って説明す
ると、図4に示すようになる。第1の実施形態によれ
ば、命令1におけるCPA段階の処理終了を待たずに中
間結果保持レジスタ4、5の中間データを用いて、次の
命令2の、従来技術におけるCSA段階の処理(本実施
形態においては4-2Compactor段階の処理)が行える。こ
のため、前回の命令の第2段階と今回の命令の第1段階
との処理が並行的に行え、並行処理効率が倍になってい
る。このように、従来技術におけるパイプライン処理の
冗長性を排除して、所望の結果を得るために要する処理
時間が大幅に短縮され、演算性能の向上を図ることが可
能となった。
態と異なる点のみ、図面を参照しながら詳細に説明す
る。本実施形態は、累積減算において、前回の演算の中
間データの利用に基づく演算実行の機能を実現するもの
である。
につき、説明する。
P、入力を命令の順にそれぞれ(A0,B0)(A1,B
1)…(An+Bn)とすると、
入力A0,B0を加算し、その加算結果に、さらに、入力
A1,B1を加算、さらにその結果に加算と順次データを
加算していけばよい。そして、正しい出力結果を得るた
めには、その加算結果(SumとCarry)をCPAで加算
し、結果の反転をとればよいこととなる。
を示すものである。上述した初期値の反転、及びCPA
の加算結果の反転用のインバータ等の反転回路7、8が
それぞれ付加された構成となっている。即ち、第2の実
施形態は、レジスタにロードするデータ(初期値)又は
加算器からの出力の反転のいずれかを選択するセレクタ
1、セレクタ1の出力を保持するレジスタ2、レジスタ
2の出力の反転をとって出力する反転回路7、反転回路
7の出力と中間結果保持レジスタ4の出力のいずれかを
選択し出力するセレクタ9、後述のレジスタ5の出力と
0データ(allzero)のいずれかを選択するセレクタ1
0、入力データA,B、セレクタ9の出力、セレクタ1
0の出力の4つを入力とする4入力2出力加算回路(4-
2Compactor)3、4-2Compactor3の2出力をそれぞれ保
存する中間結果保持レジスタ4,5、中間結果保持レジ
スタ4、5の出力を入力とする桁上げ伝播加算器(CP
A)6、CPA6の出力の反転を出力する反転回路8に
より構成される。
4-2Compactorには限定されない点は、第1の実施形態と
同様である。
ように構成されており、以下、その動作につき説明す
る。
初期値を選択し、その結果をレジスタ2に書き込むこと
でレジスタ2に初期値Pのロードを行う。
スタ2に保存されているデータの反転をとって出力し、
セレクタ9がこの反転結果を選択する。また、セレクタ
10が、all zeroデータを選択する。4-2Compactor3
が、次式で示されるように、入力A0,入力B0、及び、
セレクタ9,セレクタ10の出力の加算を行い、2つの
出力データは中間結果レジスタ4,5にそれぞれ保存さ
れる。
タ4、レジスタ5に保存されたデータの加算を行う。反
転回路8が、加算結果の反転をとってセレクタ1に出力
し、セレクタ1は、CPA6の加算結果の反転を選択し
て、加算結果の反転がレジスタ2に書き込まれる。次式
で示される演算結果がこの時点での求める結果である。
し、4-2Compactor3に対する入力とする。セレクタ10
がレジスタ5の出力を選択し、やはり、4-2Compactor3
に対する入力とする。
入力データA1,B1も4-2Compactor3に入力され、次式
に示されるように、セレクタ9,セレクタ10の出力A
0,B0とともに加算される。
の動作のみを、累積演算に必要な回数繰り返すことによ
り、次々に、2つの入力データの加算結果を初期値から
減算していくこととなる。そして、最終的に、出力レジ
スタ2から所望の結果が得られるのである。
果を奏する。即ち、累積減算のように、入力されるデー
タの加算結果を初期値から次々に減算していく場合に
も、前回の演算結果データ書き込みを待たずに、中間結
果保持レジスタ4、5の中間データを次の命令の入力デ
ータとすることができる。このため、第1の実施形態と
同様、所望の演算結果を得るために要する処理時間が大
幅に短縮され、演算性能の向上を図ることが可能となっ
た。
実施形態と異なる点のみ、図面を参照しながら詳細に説
明する。
て、本発明の前回の演算の中間データの利用に基づく演
算実行の機能を実現するものである。
行するものである。
(被乗数1×乗数1)+… 尚、最初に与えられるのは、予め設定されている初期
値、又は乗算回路からの出力結果データのいずれでもよ
い。
を示すものである。第3の実施形態は、レジスタにロー
ドするデータ(初期値)又は加算器からの出力のいずれ
かを選択するセレクタ1、セレクタ1の出力を保持する
レジスタ2、レジスタ2の出力、中間結果保持レジスタ
4の出力、又は0データ(all zero)のいずれかを選択
するセレクタ9、レジスタ5の出力又は0データ(all
zero)のいずれかを選択するセレクタ10、被乗数と乗
数入力を受けてキャリーセーブ形式の2出力として演算
結果を出力する乗算回路14,乗算回路14からの出力
データをSm,Cmとしてセレクタ9の出力、セレクタ
10の出力、乗算回路の出力Sm,Cmの4つを入力と
する4入力2出力加算回路(4-2Compactor)3、4-2Com
pactor3の2出力をそれぞれ保存する中間結果保持レジ
スタ4,5、中間結果保持レジスタ4、5の出力を入力
とする桁上げ伝播加算器(CPA)6により構成され
る。
第1の実施形態と同様、4-2Compactorには限定されず、
CSAを2段構成とすることや、乗算回路中の加算回路
との適宜の組み合わせで適当な入力を得ることにより、
加算を代用することができる。
ように構成されており、以下、その動作につき説明す
る。
値を選択し、その結果をレジスタ2に書き込むことによ
り、初期値Pのロードを行う。
乗数×乗数の演算を行い、乗算結果としてCm(図6の
S3),Sm(S4)を出力し、かかるS3、S4がそ
れぞれ、4-2Compactor3に入力される。セレクタ9が、
出力レジスタ2に保存されているデータを選択する。
尚、ここで、Cmとは乗算回路からの出力Carryデ
ータを、Smとは、乗算回路からの出力Sumデータを
示す。
選択する。4-2Compactor3が、Cm(S3),Sm(S
4)及び、セレクタ9,セレクタ10の出力の加算を行
い、2つの出力データは中間結果保持レジスタ4,5に
それぞれ保存される。この段階では、次の演算が実行さ
れたこととなる。(P+Cm+Sm)
タ4、レジスタ5に保存されたデータの加算を行う。セ
レクタ1が、CPA6の加算結果を選択し、結果データ
がレジスタ2に書き込まれる。
タ4の出力を選択し、4-2Compactor3に対して出力す
る。同時に、セレクタ10が、中間結果保持レジスタ5
の出力を選択し、4-2Compactor3に対して出力する。
次の乗算を行い、出力Cm’(S3),Sm’(S4)
を得る。Cm’,Sm’が4-2Compactor3に入力され、
加算される。加算結果は、中間結果保持レジスタ4,5
にそれぞれ保存される。これで、レジスタ4,5には、
次に示す累積加算された結果がキャリーセーブ形式で保
持されていることになる。
を、累積演算に必要な回数繰り返すことにより、次々
に、乗算結果が累積演算されていくこととなる。そし
て、最終的に、出力レジスタ2から所望の結果が得られ
るのである。
をロードすることによって処理を開始したが、最初に、
乗算回路14により乗算命令を実行し、この乗算結果に
基づき、次に積和演算命令を実行することも可能であ
る。
乗算を行い、セレクタ9、10がそれぞれ0データ(al
l zero)を選択する。そして、4-2Compactor3の出力
が、中間結果保持レジスタ4,5に保持される。その
後、サイクルタイム3の処理を繰り返すこととなる。
算を行うことも可能である。即ち、積和演算ではなく、
乗算演算を行いたい場合には、出力レジスタ2、中間結
果レジスタ4、5のどちらからも値をとらず、セレクタ
9および、セレクタ10の双方ともが、0データ(all
zero)を選択すればよい。従って、かかる乗算演算を行
わない場合にはセレクタ9の0入力は不要となる。この
ように、積和演算と乗算演算の機能を1回路内に搭載す
ることにより、回路規模の増大を抑えることができる。
施形態でもたらされる効果が積和演算において得られる
のに加え、乗算とデータ依存のある積和演算とが同一の
サイクルで実行可能となる。このため、パイプライン制
御をより容易に行なうことが可能となった。
態と異なる点のみ、図面を参照しながら詳細に説明す
る。
て、本発明の前回の演算の中間データの利用に基づく演
算実行の機能を実現するものである。尚、ここで積差演
算とは、積を減算データとして用いる演算をいう。
につき、説明する。第4の実施形態では、次の演算を実
行するものである。
×乗数1)−(被乗数2×乗数2)…−(被乗数n×乗
数n) 尚、最初に与えられるのは、予め設定されている初期
値、又は乗算回路からの出力結果データのいずれでもよ
い。
は、第2の実施形態で示した式(1)と同じとなる。
は、初回の乗算結果がキャリーセーブ形式で保存されて
いるので、次式で示される演算式を実行することとな
る。
rry)とし、乗算回路からの出力を順に、(Sm1,C
m1)(Sm2,Cm2)…(Smn,Cmn)とすると、
出力Sm0,Cm0のそれぞれの反転と、入力Sm1,C
m1を加算し、その加算結果に、さらに、入力Sm2,C
m2を加算、さらにその結果に加算と順次データを加算
していけばよい。そして、(2)より、正しい出力結果
を得るためには、その加算結果(SumとCarry)に対し
て、さらに1を加算する必要がある。この場合には、加
算を行うCPAの最下位ビットのキャリーインを用い
て、1を入力してやればよい。その後、CPAの加算結
果の反転をとれば(2)の式を満たすこととなる。
を示すものである。第4の実施形態は、セレクタ1、結
果出力レジスタ2、反転回路7、反転回路11、反転回
路12、セレクタ9、セレクタ10、乗算回路14、4
入力2出力加算回路(4-2Compactor)3、中間結果保持
レジスタ4、5、桁上げ伝播加算器(CPA)6、セレ
クタ13、反転回路8により構成される。
タ(初期値)、CPA6からの出力、又はCPA6から
の出力の反転のいずれかを選択出力する。
果を保持する。
の反転をとって出力する。反転回路11は、中間結果保
持レジスタ4の出力の反転をとって出力する。
出力、反転回路7の出力、反転回路11の出力、又は0
データ(all zero)のいずれかを選択出力する。
の出力の反転をとって出力する。
の出力、反転回路12の出力、又は0データ(all zer
o)のいずれかを選択出力する。
を受けて、キャリーセーブ形式の2出力として演算結果
を出力する。
は、乗算回路14からの出力データをS3(Sm),S
4(Cm)、セレクタ9の出力、セレクタ10の出力の
4つを入力として、S1、S2の2信号を出力する。
ctor3の2出力をそれぞれ保存する。
果保持レジスタ4、5の出力を入力として、加算を行
う。
に接続し、0又は1を選択する。
って出力する。
第1の実施形態等と同様、4-2Compactorには限定され
ず、CSAを2段構成とすることや、乗算回路中の加算
回路の適宜の組み合わせで適当な入力を得ることによ
り、加算を代用することができる。
ように構成されており、以下、その動作につき、初期値
から減算を行う場合(1)と、乗算結果から減算を行う
場合(2)とに分けて説明する。
値を選択し、その結果がレジスタ2に書き込まれること
で、初期値Pのロードを行う。
1,Sm1を出力して、4-2Compactor3に対する入力とす
る。また、セレクタ9が出力保持レジスタ2からの反転
データを選択し、セレクタ10が、all zeroデータを選
択する。4-2Compactor3が、Cm1,Sm1、及びセレク
タ9,セレクタ10の出力の加算を行う。4-2Compactor
3の2つの出力は、中間結果保持レジスタ4,5にそれ
ぞれ保存される。この時点では、次式の演算が実行され
たこととなる。
果保持レジスタ4、中間結果保持レジスタ5に保存され
たデータの加算を行う。この際、セレクタ13で0が選
択されて、キャリーインとして、入力される。CPA6
での加算結果の反転が反転回路8により出力され、セレ
クタ1が、かかるCPA6の加算結果の反転を選択す
る。そして、次式で示す結果データがレジスタ2に書き
込まれる。
出力を選択し、4-2Compactor3に対する入力とする。ま
た、セレクタ10が中間結果保持レジスタ5の出力を選
択し、4-2Compactor3に対する入力とする。
が、同時に次の乗算命令を実行して、出力Cm2,Sm2
を得、これらを4-2Compactor3に対する入力とする。4-
2Compactor3での次式で示される加算結果は、中間結果
保持レジスタ4,5にそれぞれ保存される。
の動作のみを、積差演算に必要な回数繰り返すことによ
り、次々に、初期値から乗算結果が減算されていくこと
となる。ここで、出力レジスタ2からは、常に、演算命
令の結果が得られることとなる。
形態に係る演算回路においても、単独の乗算演算も実行
可能である。この場合には、出力レジスタ2、中間結果
レジスタ4、5のどちらからも値をとらず、セレクタ9
および、セレクタ10の双方ともが、0データ(all ze
ro)を選択し、また、セレクタ13が、CPA6のキャ
リーインの入力として0を選択し、さらにセレクタ1に
よって、CPA6の出力をそのまま出力レジスタ2に保
持するようにすればよい。このように、積差演算と乗算
演算の機能を1回路内に搭載することにより、回路規模
の増大を抑えることができる。
レクタ9からの0入力は不要となる。また、セレクタ1
3からのキャリーイン入力も不要となり、CPA6から
のデータの反転を伴わない直接のセレクタ1への入力も
不要となる。
らの積差演算を行わず、(1)のように、初期値からの
積差演算しか行わない場合には、セレクタ9に対する反
転回路11を用いた反転入力、セレクタ10に対する反
転回路12を用いた反転入力、及びセレクタ13からの
キャリーイン入力は不要となる。
後、その乗算結果から、次々に乗算結果を減算していく
場合について動作を説明する。
乗数×乗数の演算を行い、結果Cm0、Sm0 を出力
し、4-2Compactor3に対する入力とする。セレクタ9お
よび、セレクタ10が、0データ(all zero)を選択
し、その結果を4-2Compactor3に対する入力とする。4-
2Compactor3の2つの出力(S1、S2)は、中間結果
保持レジスタ4,5にそれぞれ保存される。この時点で
は、次式の演算が実行されたこととなる。
タ4、5に保存されたデータの加算を行う。この際、セ
レクタ13が、キャリーインとして0を選択する。CP
A6での加算結果は、そのままセレクタ1によって選択
され、出力レジスタ2に書き込まれる。即ち、乗算結果
(Cm0+Sm0)が出力レジスタ2に格納される。
対応して、被乗数×乗数の演算を行い、結果Cm1,S
m1を出力して、4-2Compactor3に対する入力とする。
に保存されているデータの反転をとって出力し、セレク
タ9が反転結果を選択する。また、反転回路12が、中
間結果保持レジスタ5に保存されているデータの反転を
とって出力し、セレクタ10が、この反転結果を選択す
る。4-2Compactor3が、次式で示されるように、C
m1,Sm1および、セレクタ9、セレクタ10の出力の
加算を行う。4-2Compactor3の2つの出力は中間結果保
持レジスタ4,5に保存される。
果保持レジスタ4、中間結果保持レジスタ5に保存され
たデータの加算を行う。この際、セレクタ13が、キャ
リーインとして1を選択して、CPA6に対する入力と
する。ここで、次式で示されるCPA6での加算結果の
反転が、反転回路8により出力され、セレクタ1によ
り、このCPA6の加算結果の反転が選択され、レジス
タ2に書き込まれる。
レジスタ4の出力を選択し、4-2Compactor3に対する入
力とする。また、セレクタ10が、中間結果保持レジス
タ5の出力を選択し、4-2Compactor3に対する入力とす
る。
路14が、次回の乗算命令の演算を行い、出力Cm2,
Sm2を得て、これらを4-2Compactor3に対する入力と
する。4-2Compactor3での次式で示される加算結果は、
中間結果保持レジスタ4,5によってそれぞれ保存され
る。
の動作のみを、必要な回数繰り返すことにより、次々
に、乗算結果を初回の乗算結果から減算していくことと
なる。また、出力レジスタからは常に、演算命令の結果
を得ることができる。
施形態でもたらされる効果が積差演算において得られる
のに加え、乗算とデータ依存のある積差演算とが同一の
サイクルで実行可能となる。このため、パイプライン制
御をより容易に行なうことが可能となった。
は、第1から第3の実施形態のもたらす機能をすべて包
含した構成となっている。即ち、積差演算のみならず、
累積加算、累積減算、積和演算の機能のすべてを1つの
回路に搭載することとなる。このため、全体の回路規模
を大幅に削減し、演算性能を向上することができる。
ら減算を行うための演算式(2)によって、かかる積差
演算の著しい効率化が図られている。即ち、従来におい
ては、毎回の演算で最後に補数をとって、その値を用い
て次の演算を行っていたため演算自体に冗長性を有して
いた。しかしながら、第4の実施形態においては、毎回
の演算で補数をとってこれによる演算を行う必要はな
く、最終結果データを得る際に、結果に対して+1を加
算して反転をとれば足りる。このため、演算性能が大幅
に向上している。
したような初期値からの積差演算を行わない場合には、
出力レジスタ2からセレクタ9への入力は不要となる。
以下に記載されたような効果を奏する。即ち、本発明に
おいては、連続した命令を実行する際に、演算の途中結
果データを用いることで、演算結果のレジスタへの書き
込みを待たずに次の命令を実行する機能を提供するの
で、パイプライン制御の下、前回の演算の結果を用いる
連続する複数命令を並行処理することが可能となる。従
って、連続した命令実行の際に演算性能を向上を図るこ
とが可能となるという効果が得られる。
減算の他、積和演算、積差演算など、前回の命令の結果
を参照することにより演算を行う演算回路であれば、幅
広く適用することができる。
ィア関連分野においては、上述した積和演算、積差演算
が多用されるため、かかる応用分野において本発明のも
たらす有用性は非常に高いものといえる。
や積差演算とを、同一のサイクルで実行できるので、パ
イプライン制御がより容易になるという効果が得られ
る。
おいて、乗算も併せて実行できるので、両者を共に実行
する必要がある場合にも、回路規模を増大することな
く、汎用性のある積和演算回路及び積差演算回路を提供
することができるという効果が得られる。
結果の補数を用いることなく毎回の演算を行うので、積
差演算の効率化を図ることが可能になるという効果が得
られる。
演算命令を実行する際に、パイプライン制御の提供する
並行処理環境を十分に活用できる演算回路を提供するこ
ととなる。従って、回路規模の増大は抑制しつつ、演算
性能の向上を図り、製品コストパフォーマンスの向上を
もたらすことができるのであり、産業上その効果のきわ
めて大きい発明である。
示す回路ブロック図である。
である。
イン制御下で実行する場合のタイミングチャートであ
る。
示す回路ブロック図である。
示す回路ブロック図である。
示す回路ブロック図である。
タ)を示す回路ブロック図である。
タ)を示す回路ブロック図である。
プライン制御下で実行する場合のタイミングチャートで
ある。
Claims (8)
- 【請求項1】 複数の入力データに基づく加算を行い、
2つの出力データを出力する第1の加算回路と、 前記2つの出力データのそれぞれに対応して設けられ、
該2つの出力データを第1と第2の中間データとしてそ
れぞれ保持する中間データ保持手段と、 予め設定された初期値および前記第1の中間データを含
むデータのいずれかを選択し、前記第1の加算回路への
1つの入力データとする第1の選択手段と、 0データおよび前記第2の中間データを含むデータのい
ずれかを選択し、前記第1の加算回路への1つの入力デ
ータとする第2の選択手段と、 前記中間データ保持手段に保持された前記第1及び第2
の中間データに従って加算を行い、1つの出力データを
出力する第2の加算回路と、 前記第2の加算回路の出力データを結果データとして保
持する結果データ保持手段とを少なくとも具備し、 連続して前記加算を行う場合には、初回の演算の際に
は、前記第1の選択手段は前記初期値を、前記第2の選
択手段は0データをそれぞれ選択し、 2回目以降の演算の際には、前記第1の選択手段は前記
第1の中間データを、前記第2の選択手段は第2の中間
データをそれぞれ選択することを特徴とする演算回路。 - 【請求項2】 減算を行う演算回路であって、 複数の入力データに基づく加算を行い、2つの出力デー
タを出力する第1の加算回路と、 前記2つの出力データのそれぞれに対応して設けられ、
該2つの出力データを第1と第2の中間データとして保
持する中間データ保持手段と、 予め設定された初期値
の反転データおよび前記第1の中間データを含むデータ
のいずれかを選択し、前記第1の加算回路への1つの入
力データとする第1の選択手段と、 0データおよび前記第2の中間データを含むデータのい
ずれかを選択し、前記第1の加算回路への1つの入力デ
ータとする第2の選択手段と、 前記中間データ保持手段に保持された前記第1および第
2の中間データに従った加算を行い、1つの出力データ
を出力する第2の加算回路と、 前記第2の加算回路の出力データの反転データを結果デ
ータとして保持する結果データ保持手段とを少なくとも
具備し、 連続して前記減算を行う場合には、初回の演算の際に
は、前記第1の選択手段は前記初期値の反転データを、
前記第2の選択手段は0データをそれぞれ選択し、 2回目以降の演算の際には、前記第1の選択手段は前記
第1の中間データを、前記第2の選択手段は前記第2の
中間データをそれぞれ選択することを特徴とする演算回
路。 - 【請求項3】 積和演算を行う演算回路であって、 被乗数および乗数の入力に従った乗算を行う乗算回路
と、 前記乗算回路からの2つの入力データを含む複数の入力
データに基づく加算を行い、2つの出力データを出力す
る第1の加算回路と、 前記2つの出力データのそれぞれに対応して設けられ、
該2つの出力データを第1と第2の中間データとして保
持する中間データ保持手段と、 予め設定された初期値および前記第1の中間データを含
むデータのいずれかを選択し、前記第1の加算回路への
1つの入力データとする第1の選択手段と、 0データおよび前記第2の中間データを含むデータのい
ずれかを選択し、前記第1の加算回路への1つの入力デ
ータとする第2の選択手段と、 前記中間データ保持手段に保持された前記第1及び第2
の中間データに基づき、桁上げ加算を行い、1つの出力
データを出力する第2の加算回路と、 前記第2の加算回路の出力データを結果データとして保
持する結果データ保持手段とを少なくとも具備し、 連続して前記積和演算を行う場合には、初回の演算の際
には、前記第1の選択手段は前記初期値を、前記第2の
選択手段は0データをそれぞれ選択し、 2回目以降の演算の際には、前記第1の選択手段は前記
第1の中間データを、前記第2の選択手段は前記第2の
中間データをそれぞれ選択することを特徴とする演算回
路。 - 【請求項4】 被乗数および乗数の入力に従った乗算を
行う乗算回路と、 前記乗算回路からの2つの入力データを含む複数の入力
データに基づく加算を行い、2つの出力データを出力す
る第1の加算回路と、 前記2つの出力データのそれぞれに対応して設けられ、
該2つの出力データを第1と第2の中間データとしてそ
れぞれ保持する中間データ保持手段と、 予め設定された初期値の反転データ、前記第1の中間デ
ータ、0データ、および該第1の中間データの反転デー
タを含むデータのいずれかを選択し、前記第1の加算回
路への1つの入力データとする第1の選択手段と、 0データ、前記第2の中間データ、および該第2の中間
データの反転データを含むデータのいずれかを選択し、
前記第1の加算回路への1つの入力データとする第2の
選択手段と、 前記中間データ保持手段に保持された前記第1及び第2
の中間データに基づき、桁上げ加算を行い、1つの出力
データを出力する第2の加算回路と、 前記第2の加算回路の出力データの反転データを保持す
る結果データ保持手段とを少なくとも具備し、 乗算の積を減数として被減数からの減算を連続して行う
場合であって、さらに前記初期値を初回の減算の被減数
とする場合には、初回の演算の際には、前記第1の選択
手段は前記初期値の反転データを、前記第2の選択手段
は0データをそれぞれ選択し、 2回目以降の演算の際には、前記第1の選択手段は前記
第1の中間データを、前記第2の選択手段は前記第2の
中間データをそれぞれ選択し、 前記乗算回路からの入
力データを初回の減算の被減数とする場合には、初回の
演算の際には、前記第1および第2の選択手段は0デー
タをそれぞれ選択し、 2回目の演算の際には、前記第1の選択手段は前記第1
の中間データの反転データを、前記第2の選択手段は前
記第2の中間データの反転データをそれぞれ選択すると
ともに、前記第2の加算回路は、さらに、前記桁上げ加
算の際に、桁上げ信号(キャリーイン)を用いて1を加
算することにより、前記結果データ保持手段に演算結果
を得ることを特徴とする演算回路。 - 【請求項5】 被乗数および乗数の入力に従った乗算を
行う乗算回路と、 前記乗算回路からの2つの入力データを含む複数の入力
データに基づく加算を行い、2つの出力データを出力す
る第1の加算回路と、 前記2つの出力データのそれぞれに対応して設けられ、
該2つの出力データを第1と第2の中間データとしてそ
れぞれ保持する中間データ保持手段と、 0データ、前記第1の中間データ、および該第1の中間
データの反転データを含むデータのいずれかを選択し、
前記第1の加算回路への1つの入力データとする第1の
選択手段と、 0データ、前記第2の中間データ、および該第2の中間
データの反転データを含むデータのいずれかを選択し、
前記第1の加算回路への1つの入力データとする第2の
選択手段と、 前記中間データ保持手段に保持された前記第1及び第2
の中間データに基づき、桁上げ加算を行い、1つの出力
データを出力する第2の加算回路と、 前記第2の加算回路の出力データの反転データを保持す
る結果データ保持手段とを少なくとも具備し、 乗算の積を減数として被減数からの減算を連続して行う
場合には、初回の減算の際には、前記第1および第2の
選択手段は0データをそれぞれ選択し、 2回目の演算の際には、前記第1の選択手段は前記第1
の中間データの反転データを、前記第2の選択手段は前
記第2の中間データの反転データをそれぞれ選択すると
ともに、前記第2の加算回路は、さらに、前記桁上げ加
算の際に、桁上げ信号(キャリーイン)を用いて1を加
算することにより、前記結果データ保持手段に演算結果
を得ることを特徴とする演算回路。 - 【請求項6】 外部から入力される乗算結果データを含
む複数の入力データに従った加算を行い、2つの出力デ
ータを出力する第1の加算回路と、 前記2つの出力データのそれぞれに対応して設けられ、
該2つの出力データを第1と第2の中間データとしてそ
れぞれ保持する中間データ保持手段と、 予め設定された初期値の反転データ、前記第1の中間デ
ータ、該第1の中間データの反転データ、および0デー
タを含むデータのいずれかを選択し、前記第1の加算回
路への1つの入力データとする第1の選択手段と、 前記第2の中間データ、該第2の中間データの反転デー
タ、および0データを含むデータのいずれかを選択し、
前記第1の加算回路への1つの入力データとする第2の
選択手段と、 前記中間データ保持手段に保持された前記第1および第
2の中間データに基づき、桁上げ加算を行い、1つの出
力データを出力する第2の加算回路と、 前記第2の加算回路の出力データの反転データを保持す
る結果データ保持手段とを少なくとも具備し、 乗算の積を減数として被減数からの減算を連続して行う
場合であって、さらに前記初期値を初回の減算の被減数
とする場合には、初回の演算の際には、前記第1の選択
手段は前記初期値の反転データを、前記第2の選択手段
は0データをそれぞれ選択し、 2回目以降の演算の際には、前記第1の選択手段は前記
第1の中間データを、前記第2の選択手段は前記第2の
中間データをそれぞれ選択し、 乗算回路からの入力データを初回の減算の被減数とする
場合には、初回の演算の際には、前記第1および第2の
選択手段は0データをそれぞれ選択し、 2回目の演算の際には、前記第1の選択手段は前記第1
の中間データの反転データを、前記第2の選択手段は前
記第2の中間データの反転データをそれぞれ選択すると
ともに、前記第2の加算回路は、さらに、前記桁上げ加
算の際に、桁上げ信号(キャリーイン)を用いて1を加
算することにより、前記結果データ保持手段に演算結果
を得ることを特徴とする演算回路。 - 【請求項7】 上記演算回路はさらに、前記第2の加算
回路の出力データおよび該出力データの反転データのい
ずれかを選択して前記結果データ保持手段への1つの入
力とする第3の選択手段を具備し、 乗算演算を行う際には、前記第1および第2の選択手段
はともに0データを、前記第3の選択手段は前記第2の
加算回路の出力データをそれぞれ選択することを特徴と
する請求項3乃至6のいずれか記載の演算回路。 - 【請求項8】 上記演算回路はさらに、3回目以降の演
算の際には、前記第1の選択手段は前記第1の中間デー
タを、前記第2の選択手段は前記第2の中間データをそ
れぞれ選択するとともに、前記第2の加算回路は、さら
に、前記桁上げ加算の際に前記桁上げ信号を用いて1を
加算することを特徴とする請求項4乃至6のいずれか記
載の演算回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12642698A JP3529622B2 (ja) | 1998-05-08 | 1998-05-08 | 演算回路 |
US09/307,808 US6519621B1 (en) | 1998-05-08 | 1999-05-10 | Arithmetic circuit for accumulative operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12642698A JP3529622B2 (ja) | 1998-05-08 | 1998-05-08 | 演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11327875A JPH11327875A (ja) | 1999-11-30 |
JP3529622B2 true JP3529622B2 (ja) | 2004-05-24 |
Family
ID=14934898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12642698A Expired - Fee Related JP3529622B2 (ja) | 1998-05-08 | 1998-05-08 | 演算回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6519621B1 (ja) |
JP (1) | JP3529622B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2374445B (en) | 1999-12-23 | 2004-06-02 | Intel Corp | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic |
US6754689B2 (en) * | 1999-12-23 | 2004-06-22 | Intel Corporation | Method and apparatus for performing subtraction in redundant form arithmetic |
US6813628B2 (en) | 1999-12-23 | 2004-11-02 | Intel Corporation | Method and apparatus for performing equality comparison in redundant form arithmetic |
US6763367B2 (en) * | 2000-12-11 | 2004-07-13 | International Business Machines Corporation | Pre-reduction technique within a multiplier/accumulator architecture |
FR2819073B1 (fr) * | 2000-12-28 | 2003-02-28 | St Microelectronics Sa | Microarchitecture d'unite arithmetique |
US20030046323A1 (en) * | 2001-03-31 | 2003-03-06 | Orchard John T. | Architecture and related methods for efficiently performing complex arithmetic |
US7024441B2 (en) * | 2001-10-03 | 2006-04-04 | Intel Corporation | Performance optimized approach for efficient numerical computations |
US20060004903A1 (en) * | 2004-06-30 | 2006-01-05 | Itay Admon | CSA tree constellation |
US7509365B2 (en) * | 2005-02-11 | 2009-03-24 | International Business Machines Corporation | Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units |
KR100935858B1 (ko) * | 2007-12-05 | 2010-01-07 | 한국전자통신연구원 | 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서 |
JP5115307B2 (ja) * | 2008-04-25 | 2013-01-09 | 富士通セミコンダクター株式会社 | 半導体集積回路 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3515344A (en) * | 1966-08-31 | 1970-06-02 | Ibm | Apparatus for accumulating the sum of a plurality of operands |
US5220525A (en) * | 1991-11-04 | 1993-06-15 | Motorola, Inc. | Recoded iterative multiplier |
JP3277089B2 (ja) | 1995-02-14 | 2002-04-22 | 株式会社東芝 | 乗算器及び積和演算装置 |
US5784305A (en) * | 1995-05-01 | 1998-07-21 | Nec Corporation | Multiply-adder unit |
US5847981A (en) | 1997-09-04 | 1998-12-08 | Motorola, Inc. | Multiply and accumulate circuit |
-
1998
- 1998-05-08 JP JP12642698A patent/JP3529622B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-10 US US09/307,808 patent/US6519621B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6519621B1 (en) | 2003-02-11 |
JPH11327875A (ja) | 1999-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3479438B2 (ja) | 乗算回路 | |
US4041292A (en) | High speed binary multiplication system employing a plurality of multiple generator circuits | |
JPS6347874A (ja) | 算術演算装置 | |
JP2511914B2 (ja) | 複素乗算器及び複素乗算方法 | |
JP3529622B2 (ja) | 演算回路 | |
JPS6125188B2 (ja) | ||
US20140136588A1 (en) | Method and apparatus for multiplying binary operands | |
JPH07168697A (ja) | 倍精度除算回路および方法 | |
JPH0850578A (ja) | 算術論理演算装置及び制御方法 | |
US7016930B2 (en) | Apparatus and method for performing operations implemented by iterative execution of a recurrence equation | |
JPH0234054B2 (ja) | ||
US7167885B2 (en) | Emod a fast modulus calculation for computer systems | |
KR100481586B1 (ko) | 모듈러 곱셈 장치 | |
US3417236A (en) | Parallel binary adder utilizing cyclic control signals | |
JP4223819B2 (ja) | べき乗剰余演算装置及びそのプログラム | |
JPS6259828B2 (ja) | ||
JP3517162B2 (ja) | 除算・開平演算装置 | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
US6792442B1 (en) | Signal processor and product-sum operating device for use therein with rounding function | |
JP3695561B2 (ja) | 積和器 | |
JP3656699B2 (ja) | 除算器 | |
JP3638218B2 (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
JP2675087B2 (ja) | マイクロコンピュータ | |
JP3851024B2 (ja) | 乗算器 | |
JP3953220B2 (ja) | ユークリッド互除法実行回路及び演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040225 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080305 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090305 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100305 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100305 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110305 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120305 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140305 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |