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

データ処理装置

Info

Publication number
JP2760808B2
JP2760808B2 JP63218821A JP21882188A JP2760808B2 JP 2760808 B2 JP2760808 B2 JP 2760808B2 JP 63218821 A JP63218821 A JP 63218821A JP 21882188 A JP21882188 A JP 21882188A JP 2760808 B2 JP2760808 B2 JP 2760808B2
Authority
JP
Japan
Prior art keywords
arithmetic
data
unit
bus
selector
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
JP63218821A
Other languages
English (en)
Other versions
JPH0266624A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63218821A priority Critical patent/JP2760808B2/ja
Publication of JPH0266624A publication Critical patent/JPH0266624A/ja
Application granted granted Critical
Publication of JP2760808B2 publication Critical patent/JP2760808B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理装置さらには算術論理演算のため
の演算器とレジスタの構成に関し、例えばマイクロプロ
グラム制御されるプロセッサに適用して有効な技術に関
するものである。
〔従来技術〕
プロセッサのようなデータ処理装置の実行部には算術
論理演算器やバレルシフタ、さらにはソースレジスタや
デスティネーションレジスタとされる各種レジスタが含
まれ、従来それらは単数もしくは複数の内部バスを共有
するように結合されている。このような実行部で所要の
演算を行う場合、ソースレジスタのデータを内部バスを
介して演算器に与え、その演算結果をディスティネーシ
ョンレジスタに格納する。このような演算サイクルにお
いて、演算対象データは必ず内部バスから所要の演算器
に与えられ、更にその演算結果は内部バスを介して所要
レジスタに戻されるから、1の演算サイクルでは基本的
に1つの演算器しか動作させることができない。
尚、実行部に含まれる演算器とレジスタの構成につい
て記載された文献の例としては1981年5月発行の「IEEE
マイクロ」第26頁乃至第38頁がある。
〔発明が解決しようとする課題〕
演算対象データは必ず共有バスを介してレジスタから
演算器に与えられ、演算結果データも内部バスを介して
所要レジスタに戻されるような従来の構成では、内部バ
ス上における転送データの競合回避のため1の演算サイ
クルでは基本的に1つの演算器しか動作させることがで
きないため、複数の演算器を用いて一連の演算動作をサ
イクリックに行うような場合には演算器の利用回数に呼
応する動作ステップが必要になり、演算処理の高速化を
図るにも限界があった。例えば算術論理演算器とバレル
シフタを用いて加算とシフト操作によりnビットの被乗
数とnビットの乗数との乗算を行う場合、上位nビット
に0、下位nビットに乗数を入れた2nビットを生成す
る。この2nビットの最下位ビットが1のときに上位nビ
ットに被乗数を加算し、0のときは上位nビットに0を
加算し、この結果に対して2nビットを全体的に右へ(最
下位ビット側へ)1ビットシフトさせ、以下同様の操作
をn回繰り返し、その結果残った2nビットを乗算結果と
する。このとき、個々の加算操作で得られた値やシフト
操作で得られた値は共々共有レジスタに蓄えられ、次の
ステップに供されなければならないが、加算操作で得ら
れた値やシフト操作で得られた値を共有レジスタに転送
するには各演算器が共有する内部バスを利用しなければ
ならないため、転送データの競合を回避するにはそのよ
うな乗算に少なくとも2n回の動作サイクルが必要にな
る。
本発明の目的は複数の演算器を用いた一連の演算動作
の高速化を図ることができるデータ処理装置を提供する
ことにある。
本発明の前記並びにそのほかの目的とし新規な特徴は
本明細書の記述及び添付図面から明らかになるであろ
う。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概
要を簡単に説明すれば下記の通りである。
すなわち、命令を実行する実行手段は共有バスに接続
可能な複数個のデータ入力端子を備えた演算器を有し、
上記演算器の出力を上記共有バスとは別の経路を介して
入力し、出力端子が上記演算器のデータ入力端子に接続
可能にされた専用レジスタを、演算器のデータ入力端子
毎に備えて、データ処理装置を構成する。
このとき、上記演算器には、セレクタを介して専用デ
ータレジスタの出力データ又は共有バスから与えられる
データを選択的に供給可能とすることが、演算器を汎用
的に利用する上において望ましい。そして、セレクタに
よる入力データの選択制御を含む各種演算制御はマイク
ロ命令による制御とすることができる。
〔作 用〕
上記した手段によれば、ある演算器が共有バスから与
えられるデータを処理してその処理結果を共有バスに与
えるとき、他の演算器は専用レジスタから与えられるデ
ータを処理したり、演算結果を専用レジスタに格納する
ことができ、これにより、複数の演算器は同一演算サイ
クルにおいて共有バスの競合を回避して並列演算処理が
可能になり、これが複数の演算器を用いた一連の演算動
作の高速化を達成するように働く。
〔実 施 例〕
第4図には本発明に係るデータ処理装置の一実施例で
あるプロセッサが示される。同図に示されるプロセッサ
1は、特に制限されないが、公知の半導体集積回路製造
技術によってシリコン基板のような1個の半導体基板に
形成される。
このプロセッサ1は入出力回路2を介して結合される
外部の図示しないプログラムメモリからマクロ命令をフ
ェッチし、その命令をマイクロプログラム制御に基づい
て実行部3で実行する制御形態を有する。
上記実行部3による各種演算処理手順などを記述した
マイクロプログラムはマイクロROM(リード・オンリ・
メモリ)4に格納される。このマイクロROM4は、命令フ
ェッチ部5にフェッチされたマクロ命令の命令コードを
デコードする命令デコーダ6の出力やシーケンスコント
ローラ7の出力によってアクセスされることにより、マ
イクロプログラムを構成するマイクロ命令が順次読み出
される。
上記命令フェッチ部5は、入出力回路2及び命令フェ
ッチバス8を介して図示しないメモリから与えられるマ
クロ命令をフェッチする。命令デコーダ6は、マクロ命
令に含まれる命令コードをデコードして得られるアドレ
ス情報に基づいて上記マイクロROM4をアクセスする。こ
れにより、そのマクロ命令で指示される演算処理などを
行うための一連のマイクロ命令群の先頭のマイクロ命令
が読み出される。上記マクロ命令で指示される演算処理
を行うための一連のマイクロ命令群の第2番目以降のマ
イクロ命令は、直前に読み出されたマイクロ命令のネク
ストアドレスフィールドの情報が上記シーケンスコント
ローラ7に供給されることによって指示される。このよ
うにしてマイクロROM4から読み出されるマイクロ命令は
マイクロ命令デコーダ9に供給される。このマイクロ命
令デコーダ9は、与えられたマイクロ命令をデコード
し、実行部3などに対する制御信号10を生成する。
上記実行部3はマイクロ命令デコーダ9から出力され
る制御信号10に基づいてデータやアドレスの演算を行
い、内部データ/アドレスバス11を介して上記入出力回
路2に結合される。尚、内部データ/アドレスバス11又
は命令フェッチバス8の何れを外部とインタフェースす
るかの選択はシーケンスコントローラ7の指示に基づい
て制御され、命令フェッチサイクルにおいては命令フェ
ッチバス8が選択されるようになっている。
第1図には上記実行部3に含まれるデータ演算系の一
例が示される。
この実行部3のデータ演算系は、特に制限されない
が、算術論理演算器15、1ビットのシフタ17、及びバレ
ルシフタ16を演算器として備えると共に、3個の共有レ
ジスタ18〜20を有する。これら演算器15〜17及び共有レ
ジスタ18〜20は、特に制限されないが、基本的に夫々4
ビットの内部バスBUS1,BUS2,BUS3を共有する。即ち、算
術論理演算器15による演算結果やバレルシフタ16による
シフト演算結果は内部バスBUS3に与えられ、この内部バ
スBUS3には共有レジスタ18〜20の入力端子が結合され
る。上記バスBUS1は、共有レジスタ19の出力端子やシフ
タ17の入力端子に結合されると共に、セレクタ21を介し
て算術論理演算器15の一方の入力端子、さらにはセレク
タ22を介してバレルシフタ16の一方の入力端子に接続し
得るようになっている。上記内部バスBUS2は、共有レジ
スタ18,20の出力端子に結合されると共に、セレクタ23
を介して算術論理演算器15の他方の入力端子、さらには
セレクタ24を介してバレルシフタ16の他方の入力端子に
接続し得るようになっている。
上記バレルシフタ16は、特に制限されないが、セレク
タ22,24を介して双方の入力端子に与えられるデータに
対して任意ビット数のシフト操作を行う。ここで、バレ
ルシフタ16は、演算対象データや演算結果データを内部
バスBUS1,BUS2,BUS3を介してやりとりするほか、共有バ
スとしてのそれら内部バスBUS1,BUS2,BUS3を通さずに演
算対象データを受け取ると共にその演算結果データを蓄
え得るようになっている。即ち、バレルシフタ16のため
の専用レジスタ28,29が設けられ、当該一方の専用レジ
スタ28の出力端子は上記内部バスBUS1と共に上記セレク
タ22の入力端子に結合される。このセレクタ22の出力端
子はバレルシフタ16の一方の入力端子に結合される。ま
た、もう一方の専用レジスタ29の出力端子は、出力端子
がバレルシフタ16の他方の入力端子に結合された上記セ
レクタ24の入力端子に内部バスBUS2と共に結合される。
そして、上記専用レジスタ28,29の入力端子はバレルシ
フタ16の出力端子に結合される。尚、当該バレルシフタ
16の出力端子と内部バスBUS3との間にはバレルシフタ16
の出力を専用レジスタ28又は29だけが取り込むときに、
内部バスBUS3上の他のデータがそのようなバレルシフタ
16の出力データによって破壊されないようにするため、
選択的に高出力インピーダンス状態を採り得るゲート30
が設けられている。
上記セレクタ22,24に対する選択制御、並びに専用レ
ジスタ28,29の入出力制御やゲート30の出力制御、さら
にはバレルシフタ16によるシフト操作はマイクロプログ
ラムに従って制御されるようになっている。
上記算術論理演算器15は、特に制限されないが、セレ
クタ21,23を介して双方の入力端子から与えられるデー
タに対して加減算を行う。ここで、上記算術論理演算器
15は、演算対象データや演算結果データを内部バスBUS
1,BUS2,BUS3を介してやりとりするほか、共有バスとし
てのそれら内部バスBUS1,BUS2,BUS3を通さずに演算対象
データを受け取ると共にその演算結果データを蓄え得る
ようになっている。即ち、算術論理演算器15のための専
用レジスタ25,26が設けられ、当該一方の専用レジスタ2
5の出力端子は上記シフタ17の出力端子と内部バスBUS1
と共に上記セレクタ21の入力端子に結合される。このセ
レクタ21の出力端子は算術論理演算器15の一方の入力端
子に結合される。また、もう一方の専用レジスタ26の出
力端子は、出力端子が算術論理演算器15の他方の入力端
子に結合された上記セレクタ23の入力端子に結合され
る。このセレクタ23には、特に制限されないが、上記専
用レジスタ26や内部バスBUS1から与えられるデータのほ
かに4ビットの論理「0」データも与えられるようにな
っている。そして、上記専用レジスタ25,26の入力端子
は算術論理演算器15の出力端子に結合される。尚、当該
算術論理演算器15の出力端子と内部バスBUS3との間には
算術論理演算器15の出力を専用レジスタ25又は26だけが
取り込むときに、内部バスBUS3上の他のデータがそのよ
うな算術論理演算器15の出力データによって破壊されな
いようにするため、選択的に高出力インピーダンス状態
を採り得るゲート27が設けられている。
上記セレクタ21,23に対する選択制御、並びに専用レ
ジスタ25,26の入出力制御やゲート27の出力制御、さら
には算術論理演算器15による演算操作は基本的にマイク
ロプログラムに従って制御されるようになっている。特
に制限されないが、セレクタ23において、論理「0」デ
ータを選択するか内部バスBUS2からのデータを選択する
かの制御に当たっては、バレルシフタ16のシフト操作に
よってオーバーフローされる最下位ビットOFBが参照さ
れる。このような制御は専ら乗算で必要とされ、その詳
細は後で説明する。
第2図には上記セレクタ21,23、専用レジスタ25,26、
及びゲートの詳細な一例が示される。同図には内部バス
BUS1,BUS2,BUS3の1ビット分のバス信号線BUS1i,BIS2i,
BUS3iに関する構成が代表的に示される。
上記専用レジスタ25は、特に制限されないが、バス信
号線の1ビットに対して2ビットのスタティックラッチ
回路を備え、夫々にはクロックドインバータ32,33で構
成される入力ゲートを介して算術論理演算器15の出力が
選択的に与えられるようになっている。一方のスタティ
ックラッチ回路は、特に制限されないが、インバータ34
とこれに帰還結合されたクロッドインバータ35によって
構成され、同様に他方のスタティックラッチ回路もイン
バータ36とこれに帰還結合されたクロックドインバータ
37によって構成される。入力ゲートとしてのクロックド
インバータ32,33は上記制御信号の10の一部である入力
制御信号φi1,φi2によって選択制御され、これに呼応
して上記クロックドインバータ35,37は制御信号▲
▼,▲▼によってその制御ゲートが制御され
る。尚、本実施例において各種クロックドインバータは
ローレベルの制御信号によって高出力インピーダンス状
態を採り、ハイレベルの制御信号によって入力信号の反
転レベルを出力可能な状態に制御される。
上記セレクタ21は、特に制限されないが、上記シフタ
17からのデータを入力端子に受けるクロックドインバー
タ38、バス信号線BUS1iから供給されるデータを入力端
子に受けるクロックドインバータ39、上記セレクタ25に
含まれるインバータ34,36の出力端子に入力端子が結合
されたクロックドインバータ40,41、及びそれらのクロ
ックドインバータ38,39,40,41の出力端子にワイヤード
オア結合された論理整合用インンバータ42を含む。上記
クロックドインバータ38,39,40,41は制御信号10の一部
である選択制御信号φi3,φi4,φi5,φi6によって選択
制御される。
上記専用レジスタ26も専用レジスタ25と同様に、バス
信号線の1ビットに対して2ビットのスタティックラッ
チ回路を備え、夫々にはクロックドインバータ44,45で
構成される入力ゲートを介して算術論理演算器15の出力
が選択的に与えられるようになっている。一方のスタテ
ィックラッチ回路は、特に制限されないが、インバータ
46とこれに帰還結合されたクロックドインバータ47によ
って構成され、同様に他方のスタティックラッチ回路も
インバータ48とこれに帰還結合されたクロックドインバ
ータ49によって構成される。入力ゲートとしてのクロッ
クドインバータ44,45は上記制御信号の10の一部である
入力制御信号φi7,φi8によって選択制御され、これに
呼応して上記クロックドインバータ47,49は制御信号▲
▼,▲▼によってその制御ゲートが制御さ
れる。
上記セレクタ23は、特に制限されないが、専用レジス
タ26を構成するインバータ46,48の出力端子に入力端子
が結合されたクロックドインバータ50,51、バス信号線B
US2iに入力端子が結合されたクロックドインバータ52、
及びそれらクロックドインバータ50,51,52の出力端子に
ワイヤードオア結合された論理整合用インバータ53を含
む。上記クロックドインバータ50,51,52は制御信号10の
一部である選択制御信号φi9,φi10,φi11によって選択
制御される。更に乗算用の選択論理として、バス信号線
BUS2iに入力端子が結合されたクロックドインバータ54
と、論理「0」データを入力端子に受けるクロックドイ
ンバータ55とが上記インバータ53の入力端子にワイヤー
ドオア結合される。クロックドインバーダ54は、制御信
号10の1つとされる乗算指定制御信号φmtpと上記オー
バーフロービットOFBとを2入力とするアンドゲート56
の出力によって選択制御され、上記クロックドインバー
タ55は、上記アンドゲート56から出力される信号の反転
信号と上記乗算指定制御信号φmtpとを2入力とするア
ンドゲート57の出力信号によって選択制御される。この
乗算用選択論理においては、乗算指定制御信号φmtpが
ハイレベルにアサートされているとき、オーバーフロー
ビットOFBがハイレベルであるならバス信号線BUS2iから
供給されるデータを算術論理演算器15に供給可能とし、
オーバーフロービットOFBがローレベルであるならバス
信号線BUS2iから供給されるデータに換えて論理「0」
データを算術論理演算器15に供給可能とする。乗算指定
制御信号φmtpがローレベルにネゲートされているとき
にはクロックドインバータ54,55は供に高出力インピー
ダンス状態にされる。
上記ゲート27は、特に制限されないが、算術論理演算
器15の出力端子に入力端子が結合される論理整合用イン
バータ60と、この論理整合用インバータ60に出力端子に
入力端子が結合され制御端子には上記制御御信号10の1
つとされる選択制御信号φi12が供給されるクロッドイ
ンバータ59によって構成される。
尚、バレルシフタ16側のセレクタ22,24や専用レジス
タ28,29についても基本的には第2図と同様に構成する
ことができる。
このように上記バレルシフタ16や算術論理演算器15を
用いた演算では、演算対象データを内部バスBUS1,BUS2
から得てそれを内部バスBUS3にもどしてやるというデー
タの流れと、演算対象データを専用レジスタから得てそ
の演算結果を再び専用レジスタに戻してやるというデー
タの流れとを選択可能になり、例えば算術論理演算器15
が演算対象データを内部バスBUS1,BUS2から得て演算を
行うとき、専用レジスタ28,29のデータを利用するよう
にすれば、バレルシフタ16によるシフト演算やその演算
結果を格納する操作を、算術論理演算器15による算術論
理演算やその演算結果を格納する操作に並列して行うこ
とができる。逆に、バレルシフタ16が演算対象データを
内部バスBUS1,BUS2から得てシフト操作を行うとき、専
用レジスタ25,26のデータを利用するようにすれば、算
術論理演算器15による算術論理演算やその演算結果を格
納する操作をバレルシフタ16によるシフト演算やその演
算結果を格納する操作に並列して行うことができる。
次に乗算を一例として本実施例の動作を説明する。
例えば、共有レジスタ20に格納された被乗数b3b2b1b0
と共有レジスタ18に格納された乗数c3c2c1c0との乗算に
ついて説明する。このときの乗算手法は加算とシフト操
作の繰返し手法とし、算術論理演算器15による加算結果
は共有レジスタ19に格納し、また、バレルシフタ16によ
るシフト操作の結果は専用レジスタ29に格納するものと
する。尚、当該乗算に際して上記制御信号φmtpはアサ
ートされる。
ここで先ず当該乗算は概ね下記式のようにして行わ
れ、 求めるべき演算結果はa34a33a32a31a30a20a10a00とされ
る。
このような乗算の処理手順の詳細な一例は第3図に示
され、以下この第3図をも参照しながら当該乗算動作を
説明する。
共有レジスタ19は全4ビット0に初期設定されてお
り、先ず、共有レジスタ18に格納された乗数c3c2c1c0
内部バスBUS2からノンオペレーション状態のバレルシフ
タ16を通して専用レジスタ29にセットする。
次のサイクルでは、初期設定された共有レジスタ19の
データ0000が内部バスBUS1に、そして共有レジスタ20に
格納されている被乗数b3b2b1b0が内部バスBUS2に出力さ
れる。これにより、バレルシフタ16は内部バスBUS1から
データ0000を採り込むと共に専用レジスタ29から乗数c3
c2c1c0を取り込んで、下位側に1ビットシフト操作し、
オーバーフローした最下位ビットc0がオーバーフロービ
ットOFBとしてセレクタ23に与えられる。一方、算術論
理演算器15は、内部バスBUS1からデータ0000を取り込む
と共に、セレクタ23に与えられたオーバーフロービット
OFBとしてのビットc0のレベルに従ってセレクタ23から
データ0000又は被乗数b3b2b1b0が与えられ、これによっ
て算術論理演算器15は、実質的にc0×b3b2b1b0の値とデ
ータ0000との加算を行って演算結果a03a02a01a00を得
る。このとき、バレルシフタ16は、当該加算演算に並行
してそのときのシフト操作で得られた下位4ビット0c3c
2c1を再び専用レジスタ29に戻す処理を行う。算術論理
演算器15で得られた加算結果a03a02a01a00は共有レジス
タ19に格納される。
そして次のサイクルでは、共有レジスタ19のデータa
03a02a01a00が内部バスBUS1に、そして共有レジスタ20
に格納されている被乗数b3b2b1b0が内部バスBUS2に出力
される。これにより、バレルシフタ16は内部バスBUS1か
らデータa03a02a01a00を採り込むと共に専用レジスタ29
からデータ0c3c2c1を取り込んで、下位側に1ビットシ
フト操作し、オーバーフローした最下位ビットc1がオー
バーフロービットOFBとしてセレクタ23に与えられる。
一方、シフタ17は内部バスBUS1からデータa03a02a01a00
を取り込んで下位側に1ビットシフトさせ、最上位ビッ
トには前サイクルで算術論理演算器15から出力されたキ
ャリCARを取り込んだデータa04a03a02a01を算術論理演
算器15に与える。算術論理演算器15は、当該データa04a
03a02a01を取り込むと共に、セレクタ23に与えられたオ
ーバーフロービットOFBとしてのビットc1のレベルに従
ってセレクタ23からデータ0000又は被乗数b3b2b1b0が与
えられ、これによって算術論理演算器15は、実質的にc1
×b3b2b1b0の値とデータa04a03a02a01との加算を行って
演算結果a13a12a11a10を得る。このとき、バレルシフタ
16は、当該加算演算に並行してそのときのシフト操作で
得られた下位4ビットa000c3c2を再び専用レジスタ29に
戻す処理を行う。算術論理演算器15で得られた加算結果
a13a12a11a10は共有レジスタ19に格納される。
引き続く次のサイクルでは、共有レジスタ19のデータ
a13a12a11a10が内部バスBUS1に、そして共有レジスタ20
に格納されている被乗数b3b2b1b0が内部バスBUS2に出力
される。これにより、バレルシフタ16は内部バスBUS1か
らデータa13a12a11a10を取り込むと共に専用レジスタ29
からデータa000c3c2を取り込んで、下位側に1ビットシ
フト操作し、オーバーフローした最下位ビットc2がオー
バーフロービットOFBとしてセレクタ23に与えられる。
一方、シフタ17は内部バスBUS1からデータa13a12a11a10
を取り込んで下位側に1ビットシフトさせ、最上ビット
には前サイクルで算術論理演算器15から出力されたキャ
リCARを取り込んだデータa14a13a12a11を算術論理演算
器15に与える。算術論理演算器15は、当該データa14a13
a12a11を取り込むと共に、セレクタ23に与えられたオー
バーフロービットOFBとしてのビットc2のレベルに従っ
てセレクタ23からデータ0000又は被乗数b3b2b1b0が与え
られ、これによって算術論理演算器15は、実質的にc2×
b3b2b1b0の値とデータa14a13a12a11との加算を行って演
算結果a23a22a21a20を得る。このとき、バレルシフタ16
は、当該加算演算に並行してそのときのシフト操作で得
られた下位4ビットa10a000c3を再び専用レジスタ29に
戻す処理を行う。算術論理演算器15で得られた加算結果
a23a22a21a20は共有レジスタ19に格納される。
さらに次のサイクルでは、共有レジスタ19のデータa
23a22a21a20が内部バスBUS1に、そして共有レジスタ20
に格納されている被乗数b3b2b1b0が内部バスBUS2に出力
される。これにより、バレルシフタ16は内部バスBUS1か
らデータa23a22a21a20を取り込むと共に専用レジスタ29
からデータa10a000c3を取り込んで、下位側に1ビット
シフト操作し、オーバーフローした最下位ビットc3がオ
ーバーフロービットOFBとしてセレクタ23に与えられ
る。一方、シフタ17は内部バスBUS1からデータa23a22a
21a20を取り込んで下位側に1ビットシフトさせ最上ビ
ットには前サイクルで算術論理演算器15から出力された
キャリCARを取り込んだデータa24a23a22a21を算術論理
演算器15に与える。算術論理演算器15は、当該データa
24a23a22a21を取り込むと共に、セレクタ23に与えられ
たオーバーフロービットOFBとしてのビットc3のレベル
に従ってセレクタ23からデータ0000又は被乗数b3b2b1b0
が与えられ、これによって算術論理演算器15は、実質的
にc3×b3b2b1b0の値とデータa24a23a22a21との加算を行
って演算結果a33a32a31a30を得る。このときバレルシフ
タ16は、当該加算演算に並行してそのときのシフト操作
で得られた下位4ビットa20a10a000を再び専用レジスタ
29に戻す処理を行う。算術論理演算器15で得られた加算
結果a33a32a31a30は共有レジスタ19に格納される。
そして最後のサイクルでは、共有レジスタ19のデータ
a33a32a31a30が内部バスBUS1に、そして共有レジスタ20
に格納されている被乗数b3b2b1b0が内部バスBUS2に出力
される。これにより、バレルシフタ16は内部バスBUS1か
らデータa33a32a31a30を取り込むと共に専用レジスタ29
からデータa20a10a000を取り込んで、下位側に1ビット
シフト操作し、オーバーフローした最下位ビット0がオ
ーバーフロービットOFBとしてセレクタ23に与えられ
る。一方、シフタ17は内部バスBUS1からデータa33a32a
31a30を取り込んで下位側に1ビットシフトさせ最上ビ
ットには前サイクルで算術論理演算器15から出力された
キャリCARを取り込んだデータa34a33a32a31を算術論理
演算器15に与える。算術論理演算器15は、当該データa
34a33a32a31を取り込むと共に、セレクタ23に与えられ
たオーバーフロービットOFBとしてのビット0に従って
セレクタ23からデータ0000が与えられ、これによって算
術論理演算器15は、0000とデータa34a33a32a31との加算
を行なって演算結果a34a33a32a31を得る。このときのバ
レルシフタ16は、当該加算演算に並行してそのときのシ
フト操作で得られた下位4ビットa30a20a10a00を再び専
用レジスタ29に戻す処理を行う。算術論理演算器15で得
られた加算結果a34a33a32a31は共有レジスタ19に格納さ
れる。
このような演算サイクルにより、共有レジスタ10の格
納データa34a33a32a31と専用レジスタ29の格納データa
30a20a10a00とによって、被乗数b3b2b1b0と乗数c3c2c1c
0との演算結果であるデータa34a33a32a31a30a20a10a00
が得られる。
上記実施例によれば以下の作用効果を得る。
(1)算術論理演算器15による加算操作とバレルシフタ
16によるシフト操作は概ね並列的に行われ、算術論理演
算器15による加算結果を共有レジスタ19に格納すると
き、バレルシフタのシフト操作で得られた結果は内部バ
スBUS3を介することなく専用レジスタ29に格納される。
したがって、被乗数b3b2b1b0と乗数c3c2c1c0との乗算を
行うためのサイクル数は、乗数c3c2c1c0を最初に専用レ
ジスタ29に設定するサイクルを含めても6サイクルで済
む。これに対し専用レジスタ29が無いような従来の構成
ではバレルシフタ16によるシフト操作と算術論理演算器
15による加算操作とを夫々異なるサイクルで実行しなけ
れば、加算操作の結果とシフト操作の結果を所定のレジ
スタに格納するときそれらのデータが内部バス上で競合
もしくは撹乱されるため、8サイクルが必要とされる。
したがって、本実施例の実行部で乗算などを行う場合に
その演算処理能力もしくは演算処理速度を向上させるこ
とができる。
(2)上記バレルシフタ16や算術論理演算器15を用いた
演算では、演算対象データを内部バスBUS1,BUS2から得
てそれを内部バスBUS3もどしてやるというデータの流れ
と、演算対象データを専用レジスタから得てその演算結
果を再び専用ジスタに戻してやるというデータの流れと
を選択可能になり、例えば算術論理演算器15が演算対象
データを内部バスBUS1,BUS2から得て演算を行うとき、
専用レジスタ28,29のデータを利用するようにすれば、
バレルシフタ16によるシフト演算やその演算結果を格納
する操作を、算術論理演算器15による算術論理演算やそ
の演算結果を格納する操作に並列して行うことができ
る。逆に、バレルシフタ16が演算対象データを内部バス
BUS1,BUS2から得てシフト操作を行うとき、専用レジス
タ25,26のデータを利用するようにすれば、算術論理演
算器15による算術論理演算やその演算結果を格納する操
作を、バレルシフタ16によるシフト演算やその演算結果
を格納する操作に並列して行うことができる。したがっ
て、乗算に限らず算術論理演算器15とバレルシフタ16と
を用いる各種演算効率の向上を図ることができる。
(3)上記作用効果より、乗算のような複数の演算器を
用いる演算処理のためのマイクロプログラムのステップ
数低減にも寄与することができる。
(4)専用レジスタ25,26,28,29の利用は選択可能であ
るから、各種演算に対する汎用性も高い。
以上本発明者によってなされた発明を実施例に基づい
て具体的に説明したが、本発明は上記実施例に限定され
ずその要旨を逸脱しない範囲において種々変更すること
ができる。
例えば演算器は1個の算術論理演算器と1個のバレル
シフタに限定されず、複数個の適宜の演算器に変更可能
であり、例えば算術論理演算器の数を増やすこともでき
る。特に複数個の演算器を並列動作可能とする本発明に
おいては、演算器の数が多ければこれに従って並列動作
可能な演算器の数も増やすことができるため、それに呼
応して演算処理速度向上の度合いも増すことができるよ
うになる。
また、上記実施例では乗算を一例にその動作説明を行
ったが、複数の演算器の並列動作を可能とする演算の種
類はこれに限定されず、その他の演算にも適用すること
ができる。例えば複数個の算術論理演算器を含む場合
に、1の算術論理演算器を加算処理に使い、他の演算器
をカウンタとして利用することによって所要の演算を行
うような場合にも利用することができる。このような演
算処理においても演算処理速度は従来の概ね2倍とな
る。尚、乗算演算の手順は第3図に示される手順に限定
されない。
以上の説明では主として本発明者によってなされた発
明をその背景となった利用分野であるマイクロプログラ
ム制御方式のプロセッサに適用した場合について説明し
たが、本発明はそれに限定されず、マイクロコンピュー
タや演算機能を有する周辺コントローラ、さらにはオフ
ィースコンピュータやエンジニアリングワークステーシ
ョンなどのための各種中央処理装置に広く適用すること
ができる。本発明は少なくとも複数の演算器を備えてデ
ータ処理を行う条件のものに適用することができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによ
って得られる効果を簡単に説明すれば下記の通りであ
る。
すなわち、演算結果を共有バスを通さずに蓄える専用
レジスタから再びデータが供給され得るように構成した
演算器を含むことにより、複数の演算器が同一演算サイ
クルにおいて並列演算を行っても、共有バス上で並列演
算のためのデータの競合を阻止して、演算対象データの
供給や演算結果データの格納が可能になり、このような
データの競合を回避しながら可能とされる複数の演算器
による並列動作により、複数の演算器を用いた一連の演
算動作を高速化することができるという効果がある。特
に、データ処理装置がマイクロプログラム制御される場
合には演算のためのマイクロプログラムステップ数の低
減に寄与することができる。
そして演算器には、セレクタを介して専用データレジ
スタの出力データ又は共有バスから与えられるデータを
選択的に供給可能とすることにより、演算器の汎用利用
を可能にすることができる。
【図面の簡単な説明】
第1図は本発明の一実施例であるプロセッサに含まれる
実行部の一例を示す回路図、 第2図は第1図の実行部に含まれる算術論理演算器のた
めの専用レジスタやセレクタの一例を示す回路図、 第3図は本実施例のプロセッサで実行可能な乗算の処理
手順の一例を示す説明図、 第4図は本発明の一実施例であるプロセッサの全体を概
略的に示すブロック図である。 1……プロセッサ、3……実行部、4……マイクロRO
M、15……算術論理演算器、16……バレルシフタ、17…
…シフタ、18,19,20……共有レジスタ、21,22,23,24…
…セレクタ、25,26……専用レジスタ、28,29……専用レ
ジスタ、BUS1,BUS2,BUS3……内部バス、OFB……オーバ
ーフロービット、φmtp……乗算指定制御信号。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】命令を実行する実行手段と、前記実行手段
    の動作を制御する命令制御手段とを有し、 前記実行手段は、第1乃至第3バスと、第1及び第2入
    力端子を有する第1演算器と、第3及び第4入力端子を
    有する第2演算器と、前記第1演算器の出力を受ける第
    1専用レジスタ手段と、前記第2演算器の出力を受ける
    第2専用レジスタ手段と、前記第1バスを前記第1入力
    端子に接続すると共に前記第2バスを前記第2入力端子
    に接続する第1状態、又は前記第1専用レジスタ手段の
    出力を前記第1及び第2入力端子に接続する第2状態を
    選択する第1セレクタと、前記第1演算器の出力を前記
    第1専用レジスタ手段の入力に結合する信号経路を選択
    的に前記第3バスに接続する第1ゲート手段と、前記第
    1バスを前記第3入力端子に接続すると共に前記第2バ
    スを前記第4入力端子に接続する第3状態、又は前記第
    2専用レジスタ手段の出力を前記第3及び第4入力端子
    に接続する第4状態を選択する第2セレクタと、前記第
    2演算器の出力を前記第2専用レジスタ手段の入力に結
    合する信号経路を選択的に前記第3バスに接続する第2
    ゲート手段とを含み、 前記命令制御手段は、前記実行手段による演算動作を制
    御するための命令に基づいて、前記第1セレクタを前記
    第1状態とし前記第2セレクタを前記第4状態とし前記
    第1演算器が前記第1及び第2バスから演算対象データ
    を得て演算を行うのに並行して前記第2演算器に前記第
    2専用レジスタ手段から演算対象データを与えて演算を
    実行可能に制御すると共に前記第1演算器の演算結果を
    前記第1ゲート手段を介して第3バスに、第2演算器の
    演算結果を第2専用レジスタ手段の入力に供給可能に
    し、また、前記第1セレクタを前記第2状態とし前記第
    2セレクタを前記第3状態とし前記第2演算器が前記第
    1及び第2バスから演算対象データを得て演算を行うの
    に並行して前記第1演算器に前記第1専用レジスタ手段
    から演算対象データを与えて演算を実行可能に制御する
    と共に前記第2演算器の演算結果を前記第2ゲート手段
    を介して第3バスに、第1演算器の演算結果を第1専用
    レジスタ手段の入力に供給可能にするものであることを
    特徴とするデータ処理装置。
JP63218821A 1988-09-01 1988-09-01 データ処理装置 Expired - Lifetime JP2760808B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63218821A JP2760808B2 (ja) 1988-09-01 1988-09-01 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63218821A JP2760808B2 (ja) 1988-09-01 1988-09-01 データ処理装置

Publications (2)

Publication Number Publication Date
JPH0266624A JPH0266624A (ja) 1990-03-06
JP2760808B2 true JP2760808B2 (ja) 1998-06-04

Family

ID=16725874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63218821A Expired - Lifetime JP2760808B2 (ja) 1988-09-01 1988-09-01 データ処理装置

Country Status (1)

Country Link
JP (1) JP2760808B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195356A (ja) * 1990-11-27 1992-07-15 Mitsubishi Electric Corp バス回路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3174130D1 (en) * 1981-08-19 1986-04-24 Ibm Improved microprocessor
JPS6123232A (ja) * 1984-07-11 1986-01-31 Nec Corp 演算装置

Also Published As

Publication number Publication date
JPH0266624A (ja) 1990-03-06

Similar Documents

Publication Publication Date Title
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
EP0198214B1 (en) Branch control in a three phase pipelined signal processor
EP0198216B1 (en) Three phased pipelined signal processor
EP0211962B1 (en) Conditional branch unit for microprogrammed data processor
US4748585A (en) Processor utilizing reconfigurable process segments to accomodate data word length
US3646522A (en) General purpose optimized microprogrammed miniprocessor
EP0102242B1 (en) Data processing apparatus
JP3573755B2 (ja) 画像処理プロセッサ
EP0053457B1 (en) Data processing apparatus
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
US4367524A (en) Microinstruction execution unit for use in a microprocessor
US3943494A (en) Distributed execution processor
JPS6311697B2 (ja)
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JPH03138759A (ja) 信号プロセツサ
US4539635A (en) Pipelined digital processor arranged for conditional operation
JPS63273134A (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
GB1585284A (en) Cpu/parallel processor interface with microcode extension
GB1585285A (en) Parallel data processor apparatus
EP0377976B1 (en) Microcode control apparatus utilizing programmable logic array circuits
US4954947A (en) Instruction processor for processing branch instruction at high speed
EP0295646A3 (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
JPH05108341A (ja) マイクロプロセツサ
US4373182A (en) Indirect address computation circuit