JPH043222A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH043222A
JPH043222A JP2105545A JP10554590A JPH043222A JP H043222 A JPH043222 A JP H043222A JP 2105545 A JP2105545 A JP 2105545A JP 10554590 A JP10554590 A JP 10554590A JP H043222 A JPH043222 A JP H043222A
Authority
JP
Japan
Prior art keywords
data
register
bit
arithmetic
value
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
JP2105545A
Other languages
English (en)
Other versions
JP2591250B2 (ja
Inventor
Shunichi Iwata
俊一 岩田
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 JP2105545A priority Critical patent/JP2591250B2/ja
Publication of JPH043222A publication Critical patent/JPH043222A/ja
Application granted granted Critical
Publication of JP2591250B2 publication Critical patent/JP2591250B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、乗算機能を有するデータ処理装置に関する
ものである。
〔従来の技術〕
第4図は従来のデータ処理装置のうち、乗算処理に用い
られる部分の構成を説明するブロック図である。
図において、1は32ビット幅の81バス、2は32ビ
ット幅の82バス、3は32ビット幅のDバスである。
10はデータ処理装置内で使用する定数を格納している
定数ROMで、S1バス1.S2バス2への出力経路を
備えている。2oは複数個の32ビット幅のレジスタで
構成されるレジスタファイルで、Dバス3からの入力経
路とS1バス1およびS2バス2への出力経路を備えて
いる。
31はAレジスタで、S1バスからの入力経路とALU
35への出力経路をもつ33ビツト幅のレジスタで、S
1バス1からデータを入力する際には33ビツトに符号
拡張またはゼロ拡張を行い、ALU35に出力する際に
は33ビツトをそのまま出力する。また、Aレジスタ3
1の値をゼロにしたり、Aレジスタ31の値を反転させ
てALU35に出力する機能を有している。32はBレ
ジスタで、S2バス2およびALU35からの入力経路
とALU35への出力経路を持つ33ビツト幅のレジス
タである。S2バス2からデータを入力する際には33
ビツトに符号拡張またはゼロ拡張を行い、ALU35と
の入出力は33ビツトで行う。また、Bレジスタ32の
値をゼロにしたり、Bレジスタ32の値を反転させてA
LLI35に出力する機能を有している。Bレジスタ3
2は、Mレジスタ33と結合して左右方向にlビットの
シフトが可能である。33はMレジスタで、S2バス2
からの入力経路とDバス3への出力経路をもつ33ビツ
ト幅のレジスタである。
S2バス2からデータを入力する際には、33ビツトに
符号拡張またはゼロ拡張を行い、Dバス3への出力は下
位32ビット分を出力する。なお、Aレジスタ31.B
レジスタ32およびMレジスタ33が33ビツト幅を持
つのは符号付きデータの乗算も符号なしデータの乗算も
同一に行わせることを考慮し、32ビット符号なしデー
タをゼロ拡張して33ビット符号付きデータに変換させ
るためである。Mレジスタ33のLSB側には1ビツト
の付加ビット34が結合されている。Mレジスタ33と
付加ビット34を結合して右方向に1ビツトのシフトを
行うことができる。35は算術論理演算回路(ALU)
で、Aレジスタ31およびBレジスタ32から出力され
る33ビツトのデータ間で演算を行い、その結果をDバ
ス3またはBレジスタ32に出力する。算術論理演算回
路(ALU)35は33ビツトデ一タ間で演算した結果
は33ビツトとなるが、Dバス3には下位32ビツトを
出力し、Bレジスタ32には33ビツトデータをそのま
ま出力する。ALU35では加減算、論理和、論理積、
排他的論理和等の各種演算処理が可能である。
36はゼロフラグで、ALU35における演算結果がゼ
ロの場合に、「1」となるフラグであり、演算結果がゼ
ロ以外の場合は「0」となる。
37はデコード回路で、Mレジスタ33のLSB値と付
加ビット34の2ビツトをデコードし、ALU35の演
算を指定する信号を送る回路である。デコード回路37
の動作は第5図に示しである。
40はバレルシフタで、32ビツトのデータを一度に複
数ビットシフトさせることができる。シフト幅データと
被シフトデータをそれぞれS1バス1とS2バス2から
入力し、シフト結果をDバス3に出力する。
第5図は、第4図に示したデコード回路37のデコード
状態に基づ<ALU35の実行演算種別対応を説明する
対応図である。
Mレジスタ33のLSB値と付加ビット34の2ビツト
をデコードした結果、ALU35に対してどのような演
算を指定するかを示したものである。
第6図は、第4図に示したデータ処理装置における乗算
実行処理シーケンスを説明する図である。以下、32ビ
ツトデータどうじの乗算を行う場合について説明する。
なお、乗算は一次のB。
othのアルゴリズムを用いて実行する。これは、部分
積の下位2ビツトをデコードし、その結果に基づいて部
分積を加えるか、減じるかあるいは何もしないかを選択
して右にシフトしていく方法である。
先ず、データを各レジスタに入力する。乗数なAレジス
タ31に、被乗数なMレジスタ33に入力する。その際
、それぞれのレジスタには32ビツトのデータを33ビ
ツトに拡張して格納する。
符号付きデータなら符号拡張、符号なしデータならゼロ
拡張である。このように、32ビット符号付きデータと
32ビット符号なしデータを33ビット符号付きデータ
に変換させることにより、符号付きデータと符号なしデ
ータを同じ方法で乗算実行することができる。一方、B
レジスタ32と付加ビット34はゼロにする。
次に、デコード回路37がMレジスタ33のLSB値と
付加ビット34の2ビツトをデコードし、第5図に示す
ような演算操作をALU35に指定する。ALtJ35
で実行された演算結果をBレジスタ32に戻す。そして
、Bレジスタ32゜Mレジスタ33および付加ビット3
4を結合して1ビツト右方向に算術シフトを行う。
このようなALU35の演算と右シフトを33回繰り返
すと、Bレジスタ32とMレジスタ33とに66ビツト
の積を得ることができる。Bレジスタ32には、上位3
3ビット分が、Mレジスタ33には下位33ビット分が
格納されている。Bレジスタ32を左に「1」ビットシ
フトする。この時、Bレジスタ32のLSBにはMレジ
スタ33のMSB値が入る。
以上のような方法で、32ビツトデータどうじの乗算を
行い、64ビツトの積をBレジスタ32およびMレジス
タ33に得ることができる。
ここで、オーバーフローの検出処理について説明する。
積を下位桁32ビツトで表わす場合には、積が32ビツ
トに納まらないことを示すオーバーフローの検出が必要
である。上位桁の全ビットが下位桁の符号ビットと一致
していない場合がオーバーフローであるので、乗算実行
後の上記状態でオーバーフローとなる条件は、符号付き
データならばBレジスタ32の各ビットの中でMレジス
タ33のMSBと一致しないビットがあるとき、符号な
しデータならばBレジスタ32に格納されている値がゼ
ロ以外の時である。オーバーフローを検出するためには
、以下のような処理が必要である。
先ず、Mレジスタ33の値をDバス3に出力し、その値
をレジスタファイル20中のレジスタであるROレジス
タに格納する。次にROレジスタの値をバレルシフタで
右方向に32ビツトシフトし、その結果をR1レジスタ
に格納する。この時、符号付きデータの場合には算術シ
フトを行い、符号なしデータの場合は論理シフトを行う
すなわち、符号付きデータでROレジスタの値が負の場
合には、全ビット1 (16進数で(FFFFFFFF
H) )となり、それ以外はゼロとなる。最後に、R1
レジスタの値をAレジスタ31に入力し、ALU35で
Bレジスタ32の値と比較する。比較した結果、一致し
なければオーバーフローであることを示しており、ゼロ
フラグ36がrOJとなる。
一方、オーバーフローしていなければ比較結果が一致す
るのでゼロフラグ36が「1」となる。
このように、ゼロフラグ36の値によってオーバーフロ
ーの有無を検出することができる。つまり、ゼロフラグ
36が「○」ならばオーバーフローであり、ゼロフラグ
36が「1」ならばオーバーフローでないことを表わし
ている。
以上のように、乗算におけるオーバーフローを検出する
処理には、■積の読み出し、■シフト、■比較という3
サイクルの処理が必要となる。
[発明が解決しようとする課題] 従来のデータ処理装置は以上のように構成されているの
で、乗算におけるオーバフローを検出するためには、3
サイクルを必要とし、処理時間が長(なるという問題点
があった。
この発明は、上記の問題点を解決するためになされたも
ので、積の下位桁データの符号が正の場合には積の上位
桁データをそのままALUに出力し、負の場合には積の
上位桁データの反転値をALUに出力するように制御す
ることにより、乗算におけるオーバフローを高速に検出
できるデータ処理装置を得ることを目的とする。
[課題を解決するための手段] この発明に係るデータ処理装置は、第2の格納手段の最
上位ビットの値に応じて第1の格納手段に格納されてい
るデータの算術論理演算手段への反転出力または非反転
出力を制御する制御手段を設けたものである。
また、制御手段は、第2の格納手段の最上位ビットの値
と符号付きデータであるか符号なしデータであるかの情
報に応じて第1の格納手段に格納されているデータの算
術論理演算手段への反転出力または非反転出力を制御す
るように構成したものである。
[作用] この発明においては、算術論理演算手段による乗算処理
がmビットのデータとnビットのデータとの乗算によっ
て得られる(m+n)ビットの積のうち、上位桁のデー
タが第1の格納手段に格納され、下位桁のデータが第2
の格納手段に格納されると、制御手段が第2の格納手段
の最上位ビットの値に応じて第1の格納手段に格納され
ているデータの算術論理演算手段への反転出力または非
反転出力を制御し、算術論理演算手段が反転出力または
非反転出力された第1の格納手段に格納されているデー
タと第2の格納手段されたデータの値に応じてゼロ検出
ビットを設定する。
また、算術論理演算手段による乗算処理がmビットのデ
ータとnビットのデータとの乗算によって得られる(m
+n)ビットの積のうち上位桁のデータが第1の格納手
段に格納され、下位桁のデータが第2の格納手段に格納
されると、制御手段が第2の格納手段の最上位上ビット
の値と符号付きデータであるか符号なしデータであるか
の情報に応じて第1の格納手段に格納されているデータ
の算術論理演算手段への反転出力または非反転出力を制
御し、算術論理演算手段が反転出力または非反転出力さ
れた第1の格納手段に格納されているデータの値に応じ
てゼロ検出ビットを設定する。
[実施例] 第1図はこの発明の一実施例を示すデータ処理装置のう
ち、乗算処理に用いられる部分の構成を説明するブロッ
ク図であり、第4図と同一のものには同じ符号を付しで
ある。
図において、3BはBレジスタ出力制御回路で、Mレジ
スタ33のMSB値と扱うデータが符号付きであるか符
号なしであるかの情報をもとにBレジスタ32の出力を
制御する。39は信号線で、現在処理しているデータが
符号付きであるか符号なしであるかを示す。
このように構成されたデータ処理装置において、算術論
理演算手段(この実施例ではALU35)による乗算処
理がmビットのデータとnビットのデータとの乗算によ
って得られる(m+n)ビットの積のうち、上位桁のデ
ータが第1の格納手段(この実施例ではBレジスタ32
)に格納され、下位桁のデータが第2の格納手段(この
実施例ではMレジスタ33)に格納されると、制御手段
(この実施例ではBレジスタ出力制御回路38)が第2
の格納手段の最上位ビットの値に応じて第1の格納手段
に格納されているデータの算術論理演算手段への反転出
力または非反転出力を制御し、算術論理演算手段が反転
出力または非反転出力された第1の格納手段に格納され
ているデータの値に応じてゼロ検出ビットを設定する。
また、ALU35による乗算処理がmビットのデータと
nビットのデータとの乗算によって得られる( m +
 n )ビットの積のうち、上位桁のデータがBレジス
タ32に格納され、下位桁のデータがMレジスタ33に
格納されると、Bレジスタ出力制御回路38がBレジス
タ32の最上位ビットの値と符号付きデータであるか符
号なしデータであるかの情報に応じてAレジスタ31に
格納されているデータのALU35への反転出力または
非反転出力を制御し、ALU35が反転出力または非反
転出力されたAレジスタ31に格納されているデータと
Bレジスタ32されたデータとからゼロ検出ビットを設
定する。
第2図は、第1図に示したBレジスタ出力制御回路38
の動作を説明する図であり、Mレジスタ33のMSB値
と扱うデータが符号付きであるか符号なしであるかの情
報を示す信号線39の内容からBレジスタ32の出力を
どのように制御するかを示したものである。
以下、第1図に示したデータ処理装置の各部の動作につ
いて説明する。
先ず、データを各レジスタに入力する。乗数をAレジス
タ31に、被乗数なMレジスタ33に入カする。その際
、それぞれのレジスタには32ビツトのデータを33ビ
ツトに拡張して格納する。
符号付きデータなら符号拡張、符号なしデータならゼロ
拡張である。このように、32ビット符号付きデータと
32ビット符号なしデータを33ビット符号付きデータ
に変換させることにより、符号付きデータと符号なしデ
ータを同じ方法で乗算実行することができる。一方、B
レジスタ32と付加ビット34はゼロにする。
次に、デコード回路37がMレジスタ33のLSB値と
付加ビット34の2ビツトをデコードし、第5図に示す
ような演算操作をALU35に指定する。ALU35で
実行された演算結果をBレジスタ32に戻す。そして、
Bレジスタ32゜Mレジスタ33および付加ビット34
を結合して1ビツト右方向に算術シフトを行う。
このようなALtJ35の演算と右シフトを33回繰り
返すと、Bレジスタ32とMレジスタ33とに66ビツ
トの積を得ることができる。Bレジスタ32には、上位
33ビット分が、Mレジスタ33には下位33ビット分
が格納されている。Bレジスタ32を左に「1」ビット
シフトする。この時、Bレジスタ32のLSBにはMレ
ジスタ33のMSB値が入る。
以上のような方法で、32ビツトデータどうじの乗算を
行い、64ビツトの積をBレジスタ32およびMレジス
タ33に得ることができる。
以下、この発明に係る乗算処理時のオーバーフローの検
出処理について説明する。
積を下位桁32ビツトで表わす場合には、積が32ビツ
トに納まらないことを示すオーバフローの検出が必要で
ある。上位桁の全ビットが下位桁の符号ビットと一致し
ていない場合がオーバフローであるので、乗算実行後の
上記状態でオーバフローとなる条件は、符号付きデータ
ならばBレジスタ32に格納されている値の各ビットの
中でMレジスタ33のMSB値と一致しないビットがあ
る時、符号なしデータならばBレジスタ32に格納され
ている値がゼロ以外の時である。オーバフローを検出す
るためには、以下のような処理が必要である。
先ず、Aレジスタ31の値をゼロにしてALU35に出
力する。Bレジスタ32の値はBレジスタ出力制御回路
38による指示に従って出力する。すなわち、符号付き
データを扱っている場合には、Mレジスタ33のMSB
値が「1」の時のみ、Bレジスタ32の値を反転して出
力し、それ以外の時には、そのまま出力する。符号なし
データを扱っている場合には、Mレジスタ33のMSB
値にかかわらずBレジスタ32の値をそのまま出力する
。このような制御を行うことによって、積の符号や符号
付きデータであるか符号なしデータであるかの区別なく
、Bレジスタ32からの出力がオーバフローのない場合
には必ずゼロになる。ALU35ではAレジスタ31か
らの出力とBレジスタ32からの出力との論理和をとる
。つまり、Bレジスタ32の値をそのままDバス3に出
力することになる。この時、オーバフローでなければ演
算結果がゼロとなるのでゼロフラグ36が「1」となる
。オーバフローであれば演算結果がゼロにならないので
、ゼロフラグ36がrOJとなる。このように、ゼロフ
ラグ36によって乗算におけるオーバフローの検出を行
うことができる。
第3図はこの発明に係るデータ処理装置におけるオーバ
フロー検出処理手順の一例を説明するフローチャートで
ある。なお、(1)〜(10)は各ステップを示す。
ALU35による乗算処理が実行されると、Bレジスタ
32には積の上位桁が、Mレジスタ33には積の下位桁
が格納される(1)。次にAレジスタ31にrOJをセ
ットする(2)。信号線39が符号付きデータを示して
いるか符号なしデータを示してるかを判定しく3)、符
号付きデータならば、さらにMレジスタ33のMSBの
値を判定する(4)。この判定でMSB値が「l」なら
ばBレジスタ32の値を反転してALU35に出力しく
5)   roJならばBレジスタ32の値をそのまま
ALU35に出力する(6)  一方、ステップ(3)
の判定で符号なしデータと判定された場合は、Mレジス
タ33のMSB値に関係なくBレジスタ32の値をその
ままALU35に出力する(6)。このような操作を行
うことにより、Bレジスタ32からの出力は、オーバフ
ローが発生していなければゼロとなる。次に、ALU3
5でAレジスタ31の値(=O)とBレジスタ32から
の出力との論理和をとり(7)、演算結果がrOJかど
うかを判定しく8)、「「0」ならばゼロフラグ36に
「1」がセットされ、オーバフローでないことを示す(
9)  一方、ステップ(8)の判定で「1」ならばゼ
ロフラグ36にrOJがセットされ、オーバフローであ
ることを示す(lO)。こうしてオーバフロー検出処理
を終了し、他の処理に移行する。
[発明の効果] 以上説明したように、この発明は第2の格納手段の最上
位ビットの値に応じて第1の格納手段に格納されている
データの算術論理演算手段への反転出力または非反転出
力を制御する制御手段を設けたので、符号付きデータに
対してオーバフローのない場合には積の上位桁データが
ゼロとなるように第1の格納手段の出力を算術論理演算
手段に出力できる。
また、制御手段は、第2の格納手段の最上位ビットの値
と符号付きデータであるか符号なしデータであるかの情
報に応じて第1の格納手段に格納されているデータの算
術論理演算手段への反転出力または非反転出力を制御す
るように構成したので、積の符号や符号付きデータであ
るか符号なしデータであるかの区別なく、オーバフロー
のない場合には積の上位桁データがゼロとなるように第
1の格納手段の出力を算術論理演算手段に出力できる。
従って、乗算を実行した後、上位桁データを算術論理演
算手段に出力するだけでゼロフラグによるオーバフロー
の検出を行うことが可能となり、従来の読み出し処理、
ビットシフト処理等を実行しないで済み、乗算処理時の
オーバフロー検出処理を大幅に高速化できる等の効果を
奏する。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すデータ処理装置の構
成を説明するブロック図、第2図は、第1図に示したB
レジスタ出力制御回路の動作を説明する図、第3図はこ
の発明に係るデータ処理装置におけるオーバフロー検出
処理手順の一例を説明するフローチャート、第4図は従
来のデータ処理装置における乗算処理に用いられる部分
の構成説明するブロック図、第5図は、第4図に示した
デコード回路のデコード状態に基づ<ALUの実行演算
種別対応を説明する対応図、第6図は、第4図に示した
データ処理装置における乗算実行処理シーケンスを説明
する図である。 図において、1はS1バス、2はS2バス、3はDバス
、10は定数ROM、20はレジスタファイル、31は
Aレジスタ、32はBレジスタ、33はMレジスタ、3
4は付加ビット、35はALU、36はゼロフラグ、3
7はデコード回路、38はBレジスタ出力制御回路、3
9は信号線、40はバレルシフタである。 なお、各図中の同一符号は同一または相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. (1)mビットのデータとnビットのデータとの算術演
    算を実行する算術論理演算手段と、mビットのデータと
    nビットのデータとの乗算によって得られる(m+n)
    ビットの積のうち上位桁のデータを格納するための前記
    算術論理演算手段への出力経路を有する第1の格納手段
    と、mビットのデータとnビットのデータとの乗算によ
    って得られる(m+n)ビットの積のうち下位桁のデー
    タを格納する第2の格納手段と、前記算術論理演算手段
    における演算結果に応じて論理状態が設定されるゼロ検
    出ビットを備えたデータ処理装置において、前記第2の
    格納手段の最上位ビットの値に応じて前記第1の格納手
    段に格納されているデータの前記算術論理演算手段への
    反転出力または非反転出力を制御する制御手段とを具備
    したことを特徴とするデータ処理装置。
  2. (2)制御手段は、第2の格納手段の最上位ビットの値
    と符号付きデータであるか符号なしデータであるかの情
    報に応じて第1の格納手段に格納されているデータの前
    記算術論理演算手段への反転出力または非反転出力を制
    御することを特徴とする請求項(1)記載のデータ処理
    装置。
JP2105545A 1990-04-19 1990-04-19 データ処理装置 Expired - Lifetime JP2591250B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2105545A JP2591250B2 (ja) 1990-04-19 1990-04-19 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2105545A JP2591250B2 (ja) 1990-04-19 1990-04-19 データ処理装置

Publications (2)

Publication Number Publication Date
JPH043222A true JPH043222A (ja) 1992-01-08
JP2591250B2 JP2591250B2 (ja) 1997-03-19

Family

ID=14410557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2105545A Expired - Lifetime JP2591250B2 (ja) 1990-04-19 1990-04-19 データ処理装置

Country Status (1)

Country Link
JP (1) JP2591250B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635669A (ja) * 1992-07-21 1994-02-10 Mitsubishi Electric Corp 中央演算処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635669A (ja) * 1992-07-21 1994-02-10 Mitsubishi Electric Corp 中央演算処理装置

Also Published As

Publication number Publication date
JP2591250B2 (ja) 1997-03-19

Similar Documents

Publication Publication Date Title
JP3589719B2 (ja) 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法
US5440702A (en) Data processing system with condition code architecture for executing single instruction range checking and limiting operations
JP3701401B2 (ja) 飽和演算命令を有するマイクロプロセッサ
KR900010545A (ko) 연산장치와 연산방법
JPS5811652B2 (ja) 演算ユニツト
US20020065860A1 (en) Data processing apparatus and method for saturating data values
JP2591250B2 (ja) データ処理装置
JPH0346024A (ja) 浮動小数点演算器
JPH1091395A (ja) プロセッサ
JPH04256016A (ja) 2の補数の乗算器を無符号数の乗算を行うように修正する方法および装置
JPH04350724A (ja) シフト量検出回路
JPH0511980A (ja) 桁あふれ検出方式とその回路
US20020178202A1 (en) Floating point multiplier for delimited operands
JP2664750B2 (ja) 演算装置及び演算処理方法
JPS60167030A (ja) シフトフラグ生成方式及びシフトフラグ生成回路
KR100385233B1 (ko) 데이터 프로세싱 시스템의 익스포넌트 유닛
KR0176883B1 (ko) 복소수 승산기
JP3950920B2 (ja) 積和演算器及びデータ処理装置
JP2615746B2 (ja) ビット操作回路
JPH01282633A (ja) 非正規化数の処理方式
US5801978A (en) Overflow detection for integer-multiply instruction
JPH03241421A (ja) 乗算器
JP3205020B2 (ja) 演算装置
KR100198783B1 (ko) 직렬처리 나눗셈기의 구동 방법
JPH0553759A (ja) 固定小数点演算ユニツト