JPH0682320B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0682320B2 JPH0682320B2 JP63140779A JP14077988A JPH0682320B2 JP H0682320 B2 JPH0682320 B2 JP H0682320B2 JP 63140779 A JP63140779 A JP 63140779A JP 14077988 A JP14077988 A JP 14077988A JP H0682320 B2 JPH0682320 B2 JP H0682320B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- type
- program
- register
- 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
Links
- 238000000034 method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】 技術分野 本発明はデータ処理装置に関し、特に制御記憶に格納さ
れたマイクロプログラムにより制御されるデータ処理装
置に関する。
れたマイクロプログラムにより制御されるデータ処理装
置に関する。
従来技術 従来、この種のデータ処理装置においては、処理性能の
向上を計るためにはマイクロプログラムを構成するマイ
クロ命令が1ステップで実行する機能を多くし、並列処
理性を高めたビット構成の大きな、いわゆる水平型マイ
クロ命令化が顕著である。
向上を計るためにはマイクロプログラムを構成するマイ
クロ命令が1ステップで実行する機能を多くし、並列処
理性を高めたビット構成の大きな、いわゆる水平型マイ
クロ命令化が顕著である。
特に基本演算命令など使用頻度の高いものについては、
上述の水平型マイクロ命令の特徴が最大限にいかせるよ
うにハードウェアの構造も最適化されるので、マイクロ
プログラムのステップ数が極めて少なくなるように実現
される。
上述の水平型マイクロ命令の特徴が最大限にいかせるよ
うにハードウェアの構造も最適化されるので、マイクロ
プログラムのステップ数が極めて少なくなるように実現
される。
一方、シーケンシャルな処理が多く、このような機能に
対して高度に水平化されたマイクロ命令を使用しても、
1ステップで実行する機能の並列度が低いためにマイク
ロ命令の未使用フィールドが多くなってしまう各種制御
命令を、上述の基本演算命令から構成される命令プログ
ラムにより実現するという階層構造をとることにより、
マイクロプログラムを格納する制御記憶のワード方向の
利用効率を高める方法が出願者により考えられている。
以下、この方法を用いたデータ処理装置について第3図
を用いて説明する。
対して高度に水平化されたマイクロ命令を使用しても、
1ステップで実行する機能の並列度が低いためにマイク
ロ命令の未使用フィールドが多くなってしまう各種制御
命令を、上述の基本演算命令から構成される命令プログ
ラムにより実現するという階層構造をとることにより、
マイクロプログラムを格納する制御記憶のワード方向の
利用効率を高める方法が出願者により考えられている。
以下、この方法を用いたデータ処理装置について第3図
を用いて説明する。
この方法を用いたデータ処理装置は、第3図に示すよう
に、主記憶1と、命令フェッチ回路2と、命令解析用メ
モリ3と、制御記憶回路4と、演算回路5と、例外処理
機構8とを含んで構成されている。
に、主記憶1と、命令フェッチ回路2と、命令解析用メ
モリ3と、制御記憶回路4と、演算回路5と、例外処理
機構8とを含んで構成されている。
主記憶1は所定の処理を行うソフトウェアプログラムが
格納されたソフトウェアプログラム部11と、第1種の命
令で記述された複数の命令プログラムが格納された命令
プログラム部12とを含んで構成されている。演算回路5
は制御記憶回路4により制御され、第1種の命令で定義
された機能を実現するためのマイクロプログラムにより
各種の演算処理を行うものである。
格納されたソフトウェアプログラム部11と、第1種の命
令で記述された複数の命令プログラムが格納された命令
プログラム部12とを含んで構成されている。演算回路5
は制御記憶回路4により制御され、第1種の命令で定義
された機能を実現するためのマイクロプログラムにより
各種の演算処理を行うものである。
主記憶1のソフトウェアプログラム部11に格納されたソ
フトウェアプログラムは、、命令フェッチ回路2におい
て命令カウンタ25と逐次アドレス生成回路24とにより生
成され、命令アドレスレジスタ21に保持されたアドレス
により主記憶1から読出され、この読出されたソフトウ
ェアプログラムは命令バッファレジスタ22に格納され
る。
フトウェアプログラムは、、命令フェッチ回路2におい
て命令カウンタ25と逐次アドレス生成回路24とにより生
成され、命令アドレスレジスタ21に保持されたアドレス
により主記憶1から読出され、この読出されたソフトウ
ェアプログラムは命令バッファレジスタ22に格納され
る。
命令の取出しは、実際にその命令が実行されるときには
命令バッファレジスタ22に到着済みであるように先取り
する、いわゆるプリフェッチにより行われるのが一般的
である。
命令バッファレジスタ22に到着済みであるように先取り
する、いわゆるプリフェッチにより行われるのが一般的
である。
はじめに、第1種の命令、すなわち制御記憶41上のマイ
クロプログラムで実現される命令について説明する。
クロプログラムで実現される命令について説明する。
第1種の命令は水平型マイクロ命令の並列処理の効果が
充分に発揮できる基本命令であり、一般にソフトウェア
プログラムに使用される頻度が格段に高い命令である。
充分に発揮できる基本命令であり、一般にソフトウェア
プログラムに使用される頻度が格段に高い命令である。
命令バッファレジスタ22に格納された命令の命令コード
部221は命令解析用メモリ3に供給され、命令解析用メ
モリ3からその命令の処理のマイクロプログラム制御に
必要な初期値として制御情報31〜33が読出される。
部221は命令解析用メモリ3に供給され、命令解析用メ
モリ3からその命令の処理のマイクロプログラム制御に
必要な初期値として制御情報31〜33が読出される。
制御情報32はその命令が第1種の命令であるか第2種の
命令であるかを示す情報であり、制御記憶回路4のマイ
クロ命令シーケンサ42に供給される。
命令であるかを示す情報であり、制御記憶回路4のマイ
クロ命令シーケンサ42に供給される。
このとき、制御情報32が第1種の命令であることを示し
ていれば、マイクロ命令シーケンサ42は制御情報31をこ
の命令の処理を実現するマイクロプログラムの先頭番地
として制御記憶41に供給し、制御記憶41のその番地から
マイクロコードを読出す。読出されたマイクロコードは
一旦マイクロ命令レジスタ44に保持され、マイクロ命令
レジスタ44から演算回路5に提供される。
ていれば、マイクロ命令シーケンサ42は制御情報31をこ
の命令の処理を実現するマイクロプログラムの先頭番地
として制御記憶41に供給し、制御記憶41のその番地から
マイクロコードを読出す。読出されたマイクロコードは
一旦マイクロ命令レジスタ44に保持され、マイクロ命令
レジスタ44から演算回路5に提供される。
尚、このマイクロコードには次のマイクロ命令を読出す
アドレスの決定方法やそのアドレスそのものの情報が含
まれており、この情報をマイクロ命令シーケンサ42がマ
イクロ命令レジスタ44から受取ることにより次のマイク
ロ命令の読出しが行われる。以下、上述の処理と同様に
して、逐次的に目的のマイクロプログラムが実現されて
いく。
アドレスの決定方法やそのアドレスそのものの情報が含
まれており、この情報をマイクロ命令シーケンサ42がマ
イクロ命令レジスタ44から受取ることにより次のマイク
ロ命令の読出しが行われる。以下、上述の処理と同様に
して、逐次的に目的のマイクロプログラムが実現されて
いく。
次に、第2種の命令、すなわち第1種の命令からなるソ
フトウェアプログラムで実現される命令について説明す
る。
フトウェアプログラムで実現される命令について説明す
る。
第2種の命令はマイクロプログラムで実現しようとする
と水平型マイクロ命令の並列処理の効果がそれほど発揮
できない命令であり、むしろ垂直型のマイクロ命令に近
い使い方になる命令である。
と水平型マイクロ命令の並列処理の効果がそれほど発揮
できない命令であり、むしろ垂直型のマイクロ命令に近
い使い方になる命令である。
命令解析用メモリ3からの制御情報32が第2種の命令で
あることを示していれば、マイクロ命令シーケンサ42は
制御記憶41からマイクロ命令レジスタ44へのマイクロ命
令の読出しを停止し、マイクロ命令レジスタ44にはNOP
(ノーオペレーション)のマイクロコードが保持されて
演算回路5の動作が一時中断される。
あることを示していれば、マイクロ命令シーケンサ42は
制御記憶41からマイクロ命令レジスタ44へのマイクロ命
令の読出しを停止し、マイクロ命令レジスタ44にはNOP
(ノーオペレーション)のマイクロコードが保持されて
演算回路5の動作が一時中断される。
このとき同時に、制御情報32は分岐アドレス生成回路23
に提供され、分岐アドレス生成回路23は制御情報33をこ
の命令の処理を実現する命令プログラムの開始番地とし
てセレクタ27を介して命令アドレスレジスタ21に出力
し、命令プログラムの開始番地を命令アドレスレジスタ
21に保持させる。この開始番地によって主記憶1の命令
プログラム部12から命令プログラムを読出す動作が起動
され、この命令プログラムの第1の命令が命令バッファ
レジスタ22に格納される。
に提供され、分岐アドレス生成回路23は制御情報33をこ
の命令の処理を実現する命令プログラムの開始番地とし
てセレクタ27を介して命令アドレスレジスタ21に出力
し、命令プログラムの開始番地を命令アドレスレジスタ
21に保持させる。この開始番地によって主記憶1の命令
プログラム部12から命令プログラムを読出す動作が起動
され、この命令プログラムの第1の命令が命令バッファ
レジスタ22に格納される。
さらに、この制御情報32ははじめの第2種の命令が主記
憶1から読出されたときの命令カウンタ25の値(第2種
の命令のアドレス)を格納するように命令カウンタ退避
レジスタ26に指示する。
憶1から読出されたときの命令カウンタ25の値(第2種
の命令のアドレス)を格納するように命令カウンタ退避
レジスタ26に指示する。
ここで、第2図に示すように、第2種の命令B1が第1種
の命令Aa〜Adにより記述された命令プログラムにより実
現されるとすると、命令バッファレジスタ22には最初の
命令Aaが格納されていることになる。尚、第2図におい
ては第1種の命令A1〜A4と第2種の命令B1とによりソフ
トウェアプログラムが構成されている。
の命令Aa〜Adにより記述された命令プログラムにより実
現されるとすると、命令バッファレジスタ22には最初の
命令Aaが格納されていることになる。尚、第2図におい
ては第1種の命令A1〜A4と第2種の命令B1とによりソフ
トウェアプログラムが構成されている。
この命令Aaは第1種の命令であるので、制御記憶41上の
マイクロプログラムによって実現される。命令プログラ
ムの命令Ab,Acも同様に制御記憶41上のマイクロプログ
ラムによって実現される。
マイクロプログラムによって実現される。命令プログラ
ムの命令Ab,Acも同様に制御記憶41上のマイクロプログ
ラムによって実現される。
命令Adは第1種の命令であるが、第2種の命令B1を実現
するための命令プログラムの最後の命令であり、元のソ
フトウェアプログラムのシーケンス上で命令B1の次の命
令A3に戻るための役割を果たす。
するための命令プログラムの最後の命令であり、元のソ
フトウェアプログラムのシーケンス上で命令B1の次の命
令A3に戻るための役割を果たす。
すなわち、命令Adは命令カウンタ退避レジスタ26に保持
される番地をベースにした相対分岐命令として定義され
る。命令カウンタ退避レジスタ26には第2種の命令B1が
読出されたときの命令カウンタ25の値が保持されている
ので、相対分岐命令の変位として第2種の命令B1の命令
語長を設定することにより、分岐アドレス生成回路23に
おいて命令シーケンス上で第2種の命令B1の次の命令A3
の命令アドレスが生成され、この命令アドレスがセレク
タ27を介して命令アドレスレジスタ21に保持される。
される番地をベースにした相対分岐命令として定義され
る。命令カウンタ退避レジスタ26には第2種の命令B1が
読出されたときの命令カウンタ25の値が保持されている
ので、相対分岐命令の変位として第2種の命令B1の命令
語長を設定することにより、分岐アドレス生成回路23に
おいて命令シーケンス上で第2種の命令B1の次の命令A3
の命令アドレスが生成され、この命令アドレスがセレク
タ27を介して命令アドレスレジスタ21に保持される。
同時に、命令アドレスレジスタ21に保持されたアドレス
により主記憶1のソフトウェアプログラム部11から命令
A3を読出す動作が起動され、ソフトウェアプログラム部
11から読出された命令A3は命令バッファレジスタ22に格
納される。
により主記憶1のソフトウェアプログラム部11から命令
A3を読出す動作が起動され、ソフトウェアプログラム部
11から読出された命令A3は命令バッファレジスタ22に格
納される。
命令A3は第1種の命令であるので、制御記憶41に格納さ
れたマイクロプログラムによって実現され、以下逐次的
にソフトウェアプログラム上の命令が実行されていく。
れたマイクロプログラムによって実現され、以下逐次的
にソフトウェアプログラム上の命令が実行されていく。
通常、例外処理機構8は主記憶1から読出された命令の
実行中に例外が検出されると起動され、例外メッセージ
を作成してソフトウェアに通知する。この例外メッセー
ジには発生した例外の種類や例外の種類により決定され
るパラメータのほかに、例外が発生した命令のアドレス
が含まれている。この例外が発生した命令のアドレスは
例外が発生したときの命令カウンタ25の内容が用いら
れ、例外処理機構8においては命令カウンタ25の内容に
よって例外メッセージが作成されている。
実行中に例外が検出されると起動され、例外メッセージ
を作成してソフトウェアに通知する。この例外メッセー
ジには発生した例外の種類や例外の種類により決定され
るパラメータのほかに、例外が発生した命令のアドレス
が含まれている。この例外が発生した命令のアドレスは
例外が発生したときの命令カウンタ25の内容が用いら
れ、例外処理機構8においては命令カウンタ25の内容に
よって例外メッセージが作成されている。
しかしながら、第1種の命令Aa〜Adによって記述された
命令プログラムにより実現される第2種の命令B1が実行
されているときに例外が発生すると、本来ならば第2種
の命令B1のアドレスを例外が発生した命令のアドレスと
すべきであるにもかかわらず、現実に実行されている第
1種の命令Aa〜Adのアドレス、すなわち第1種の命令Aa
〜Adが実行されているときの命令カウンタ25の内容が例
外が発生した命令のアドレスとなってしまうという問題
がある。
命令プログラムにより実現される第2種の命令B1が実行
されているときに例外が発生すると、本来ならば第2種
の命令B1のアドレスを例外が発生した命令のアドレスと
すべきであるにもかかわらず、現実に実行されている第
1種の命令Aa〜Adのアドレス、すなわち第1種の命令Aa
〜Adが実行されているときの命令カウンタ25の内容が例
外が発生した命令のアドレスとなってしまうという問題
がある。
発明の目的 本発明は上記のような従来のものの問題点を除去すべく
なされたもので、第2種の命令を実現する命令プログラ
ムの実行中に発生した例外を第2種の命令の例外として
扱うことができ、マイクロプログラムを格納する制御記
憶のワード方向の利用効率を高めることができるデータ
処理装置の提供を目的とする。
なされたもので、第2種の命令を実現する命令プログラ
ムの実行中に発生した例外を第2種の命令の例外として
扱うことができ、マイクロプログラムを格納する制御記
憶のワード方向の利用効率を高めることができるデータ
処理装置の提供を目的とする。
発明の構成 本発明によるデータ処理装置は、制御記憶に格納された
マイクロプログラムにより制御されるデータ処理装置で
あって、前記マイクロプログラムにより実現される第1
の命令で構成される命令プログラムを格納する第1の格
納手段と、前記第1の命令と、前記第1の格納手段に格
納された前記命令プログラムにより実現される第2の命
令とを格納する第2の格納手段と、前記第1および第2
の格納手段から読出された命令のアドレスを格納するア
ドレス格納手段と、前記第2の格納手段から読出された
命令が前記第1の命令であるか前記第2の命令であるか
を識別する識別手段と、前記識別手段により前記第2の
命令であると識別されたときに、前記第1の格納手段か
ら読出された前記命令プログラムを構成する前記第1の
命令により前記第2の命令を実行する実行手段と、前記
識別手段により前記第2の命令であると識別されたとき
に、前記第2の命令のアドレスを退避する退避手段と、
前記識別手段により前記第2の命令であると識別された
ときに、前記第2の命令が実行中であることを示す情報
を保持する保持手段と、前記アドレス格納手段に格納さ
れたアドレスと前記退避手段に格納されたアドレスとの
うち一方を、前記保持手段に保持された前記情報に応じ
て選択する選択手段を有し、前記第2の格納手段から読
出された命令の実行中に例外が発生したとき、前記選択
手段により選択されたアドレスにより前記例外の処理を
行うようにしたことを特徴とする。
マイクロプログラムにより制御されるデータ処理装置で
あって、前記マイクロプログラムにより実現される第1
の命令で構成される命令プログラムを格納する第1の格
納手段と、前記第1の命令と、前記第1の格納手段に格
納された前記命令プログラムにより実現される第2の命
令とを格納する第2の格納手段と、前記第1および第2
の格納手段から読出された命令のアドレスを格納するア
ドレス格納手段と、前記第2の格納手段から読出された
命令が前記第1の命令であるか前記第2の命令であるか
を識別する識別手段と、前記識別手段により前記第2の
命令であると識別されたときに、前記第1の格納手段か
ら読出された前記命令プログラムを構成する前記第1の
命令により前記第2の命令を実行する実行手段と、前記
識別手段により前記第2の命令であると識別されたとき
に、前記第2の命令のアドレスを退避する退避手段と、
前記識別手段により前記第2の命令であると識別された
ときに、前記第2の命令が実行中であることを示す情報
を保持する保持手段と、前記アドレス格納手段に格納さ
れたアドレスと前記退避手段に格納されたアドレスとの
うち一方を、前記保持手段に保持された前記情報に応じ
て選択する選択手段を有し、前記第2の格納手段から読
出された命令の実行中に例外が発生したとき、前記選択
手段により選択されたアドレスにより前記例外の処理を
行うようにしたことを特徴とする。
実施例 次に、本発明の一実施例について図面を参照して説明す
る。
る。
第1図は本発明の一実施例の構成を示すブロック図であ
る。図において、本発明の一実施例によるデータ処理装
置は、レジスタ6および選択回路7以外は第3図に示す
データ処理装置と同様の構成となっており、同一の構成
部品には同一符号を付してある。
る。図において、本発明の一実施例によるデータ処理装
置は、レジスタ6および選択回路7以外は第3図に示す
データ処理装置と同様の構成となっており、同一の構成
部品には同一符号を付してある。
また、それら構成部品の動作も第3図に示すデータ処理
装置の動作と同様であるので、以下本発明の一実施例の
特徴について説明する。
装置の動作と同様であるので、以下本発明の一実施例の
特徴について説明する。
レジスタ6のセット端子Sには命令解析用メモリ3から
の制御情報32が入力され、リセット端子Rには命令解析
用メモリ3からの制御情報33が入力されている。
の制御情報32が入力され、リセット端子Rには命令解析
用メモリ3からの制御情報33が入力されている。
選択回路7は命令フェッチ回路2の命令カウンタ25から
の出力信号と命令カウンタ退避レジスタ26からの出力信
号とのうち一方をレジスタ6の出力信号により選択して
例外処理機構8に出力する。すなわち、選択回路7は現
在実行されている命令のアドレスと、命令カウンタ退避
レジスタ26に退避されている第2種の命令のアドレスと
のうち一方をレジスタ6の内容に応じて選択する。
の出力信号と命令カウンタ退避レジスタ26からの出力信
号とのうち一方をレジスタ6の出力信号により選択して
例外処理機構8に出力する。すなわち、選択回路7は現
在実行されている命令のアドレスと、命令カウンタ退避
レジスタ26に退避されている第2種の命令のアドレスと
のうち一方をレジスタ6の内容に応じて選択する。
第2図は本発明の一実施例のソフトウェアプログラムの
シーケンスを示す図である。図において、A1〜A4および
Aa〜Adは制御記憶回路4に格納されたマイクロプログラ
ムにより実現される第1種の命令を示し、B1は命令プロ
グラム部12に格納された命令プログラムにより実現され
る第2種の命令を示している。
シーケンスを示す図である。図において、A1〜A4および
Aa〜Adは制御記憶回路4に格納されたマイクロプログラ
ムにより実現される第1種の命令を示し、B1は命令プロ
グラム部12に格納された命令プログラムにより実現され
る第2種の命令を示している。
次に、第1図と第2図とを用いて本発明の一実施例の動
作について説明する。
作について説明する。
命令フェッチ回路2の命令アドレスレジスタ21に保持さ
れたアドレスにより主記憶1のソフトウェアプログラム
部11から第1種の命令A1〜A4と第2種の命令B1とが読出
され、第3図に示すデータ処理装置の動作と同様にし
て、これら第1種の命令A1〜A4と第2種の命令B1とが順
次実行される。
れたアドレスにより主記憶1のソフトウェアプログラム
部11から第1種の命令A1〜A4と第2種の命令B1とが読出
され、第3図に示すデータ処理装置の動作と同様にし
て、これら第1種の命令A1〜A4と第2種の命令B1とが順
次実行される。
このとき、命令バッファレジスタ22に格納された命令の
命令コード部221により命令解析用メモリ3からその命
令の処理のマイクロプログラム制御に必要な初期値とし
て制御情報31〜33が読出される。
命令コード部221により命令解析用メモリ3からその命
令の処理のマイクロプログラム制御に必要な初期値とし
て制御情報31〜33が読出される。
これらの制御情報31〜33のうち制御情報32はその命令が
第1種の命令であるか第2種の命令であるかを示す情報
であり、第1種の命令のときに“0"となり、第2種の命
令のときに“1"となる。
第1種の命令であるか第2種の命令であるかを示す情報
であり、第1種の命令のときに“0"となり、第2種の命
令のときに“1"となる。
したがって、レジスタ6は制御情報32に応じてセットさ
れるので、制御情報32が第2種の命令を示すときにのみ
レジスタ6がセットされる。
れるので、制御情報32が第2種の命令を示すときにのみ
レジスタ6がセットされる。
主記憶1のソフトウェアプログラム部11から第1種の命
令A1〜A4が読出されると、命令解析用メモリ3からの制
御情報32は第1種の命令を示しているので、マイクロ命
令シーケンサ42は制御情報31をこの命令の処理を実現す
るマイクロプログラムの先頭番地として制御記憶41に供
給し、制御記憶41のその番地からマイクロコードを読出
す。読出されたマイクロコードは一旦マイクロ命令レジ
スタ44に保持され、マイクロ命令レジスタ44から演算回
路5に提供され、第1種の命令A1〜A4が制御記憶41のマ
イクロコードにより実行される。このとき、レジスタ6
にはこの制御情報32により“0"が入力されるのでリセッ
トされたままである。
令A1〜A4が読出されると、命令解析用メモリ3からの制
御情報32は第1種の命令を示しているので、マイクロ命
令シーケンサ42は制御情報31をこの命令の処理を実現す
るマイクロプログラムの先頭番地として制御記憶41に供
給し、制御記憶41のその番地からマイクロコードを読出
す。読出されたマイクロコードは一旦マイクロ命令レジ
スタ44に保持され、マイクロ命令レジスタ44から演算回
路5に提供され、第1種の命令A1〜A4が制御記憶41のマ
イクロコードにより実行される。このとき、レジスタ6
にはこの制御情報32により“0"が入力されるのでリセッ
トされたままである。
これら第1種の命令A1〜A4の実行中に例外が検出される
と、たとえば第1種の命令A2の実行中に例外が発生した
場合には、レジスタ6が“0"を保持しているので選択回
路7は命令カウンタ25からの出力信号を選択し、命令カ
ウンタ25に保持されている第1種の命令A2のアドレスを
例外処理機構8に出力する。例外処理機構8ではこの命
令カウンタ25に保持されている第1種の命令A2のアドレ
スを例外が発生した命令のアドレスとして例外メッセー
ジを作成する。
と、たとえば第1種の命令A2の実行中に例外が発生した
場合には、レジスタ6が“0"を保持しているので選択回
路7は命令カウンタ25からの出力信号を選択し、命令カ
ウンタ25に保持されている第1種の命令A2のアドレスを
例外処理機構8に出力する。例外処理機構8ではこの命
令カウンタ25に保持されている第1種の命令A2のアドレ
スを例外が発生した命令のアドレスとして例外メッセー
ジを作成する。
一方、主記憶1のソフトウェアプログラム部11から第2
種の命令B1が読出されると、命令解析用メモリ3からの
制御情報32は第2種の命令を示しているので、マイクロ
命令シーケンサ42は制御記憶41からマイクロ命令レジス
タ44へのマイクロ命令の読出しを停止し、マイクロ命令
レジスタ44にはNOP(ノーオペレーション)のマイクロ
コードが保持されて演算回路5の動作が一時中断され
る。
種の命令B1が読出されると、命令解析用メモリ3からの
制御情報32は第2種の命令を示しているので、マイクロ
命令シーケンサ42は制御記憶41からマイクロ命令レジス
タ44へのマイクロ命令の読出しを停止し、マイクロ命令
レジスタ44にはNOP(ノーオペレーション)のマイクロ
コードが保持されて演算回路5の動作が一時中断され
る。
このとき同時に、制御情報32は分岐アドレス生成回路23
に提供され、分岐アドレス生成回路23は制御情報33をこ
の命令の処理を実現する命令プログラムの開始番地とし
てセレクタ27を介して命令アドレスレジスタ21に出力し
て保持させる。この開始番地によって主記憶1の命令プ
ログラム部12から命令プログラムを読出す動作が起動さ
れ、この命令プログラムの第1の命令Aaが命令バッファ
レジスタ22に格納される。
に提供され、分岐アドレス生成回路23は制御情報33をこ
の命令の処理を実現する命令プログラムの開始番地とし
てセレクタ27を介して命令アドレスレジスタ21に出力し
て保持させる。この開始番地によって主記憶1の命令プ
ログラム部12から命令プログラムを読出す動作が起動さ
れ、この命令プログラムの第1の命令Aaが命令バッファ
レジスタ22に格納される。
また、この制御情報32ははじめの第2種の命令B1が主記
憶1から読出されたときの命令カウンタ25の値(第2種
の命令B1のアドレス)を格納するようにカウンタ退避レ
ジスタ26に指示する。このとき、レジスタ6にはこの制
御情報32により“1"がセットされる。
憶1から読出されたときの命令カウンタ25の値(第2種
の命令B1のアドレス)を格納するようにカウンタ退避レ
ジスタ26に指示する。このとき、レジスタ6にはこの制
御情報32により“1"がセットされる。
第2種の命令B1を実現するための命令プログラムを構成
する命令Aa〜Adは第1種の命令であるので、制御記憶41
上のマイクロプログラムによって実現され、そのマイク
ロプログラムによって順次実行される。
する命令Aa〜Adは第1種の命令であるので、制御記憶41
上のマイクロプログラムによって実現され、そのマイク
ロプログラムによって順次実行される。
命令Adは第1種の命令であるが、第2種の命令B1を実現
するための命令プログラムの最後の命令であり、元のソ
フトウェアプログラムのシーケンス上で命令B1の次の命
令A3に戻るための役割を果たす。
するための命令プログラムの最後の命令であり、元のソ
フトウェアプログラムのシーケンス上で命令B1の次の命
令A3に戻るための役割を果たす。
すなわち、命令Adは命令カウンタ退避レジスタ26に保持
される番地をベースにした相対分岐命令として定義され
る。命令カウンタ退避レジスタ26には第2種の命令B1が
読出されたときの命令カウンタ25の値が保持されている
ので、相対分岐命令の変位として第2種の命令B1の命令
語長を設定することにより、分岐アドレス生成回路23に
おいて命令シーケンス上で第2種の命令B1の次の命令A3
の命令アドレスが生成され、この命令アドレスがセレク
タ27を介して命令アドレスレジスタ21に保持される。
される番地をベースにした相対分岐命令として定義され
る。命令カウンタ退避レジスタ26には第2種の命令B1が
読出されたときの命令カウンタ25の値が保持されている
ので、相対分岐命令の変位として第2種の命令B1の命令
語長を設定することにより、分岐アドレス生成回路23に
おいて命令シーケンス上で第2種の命令B1の次の命令A3
の命令アドレスが生成され、この命令アドレスがセレク
タ27を介して命令アドレスレジスタ21に保持される。
同時に、命令アドレスレジスタ21に保持されたアドレス
により主記憶1のソフトウェアプログラム部11から命令
A3を読出す動作が起動され、ソフトウェアプログラム部
11から読出された命令A3は命令バッファレジスタ22に格
納される。
により主記憶1のソフトウェアプログラム部11から命令
A3を読出す動作が起動され、ソフトウェアプログラム部
11から読出された命令A3は命令バッファレジスタ22に格
納される。
命令A3は第1種の命令であるので、制御記憶41に格納さ
れたマイクロプログラムによって実現され、以下逐次的
にソフトウェアプログラム上の命令が実行されていく。
れたマイクロプログラムによって実現され、以下逐次的
にソフトウェアプログラム上の命令が実行されていく。
これらの命令Aa〜Adにより記述される命令プログラム、
すなわち第2種の命令B1が実行されているときに例外が
検出されなければ、命令Adの実行時に命令解析用メモリ
3から読出された制御情報33によりレジスタ6はリセッ
トされる。すなわち、レジスタ6は第2種の命令B1の実
行開始とともにセットされ、実行終了とともにリセット
される。
すなわち第2種の命令B1が実行されているときに例外が
検出されなければ、命令Adの実行時に命令解析用メモリ
3から読出された制御情報33によりレジスタ6はリセッ
トされる。すなわち、レジスタ6は第2種の命令B1の実
行開始とともにセットされ、実行終了とともにリセット
される。
また、第2種の命令B1を実現する命令プログラムの実行
中に例外が検出されると、たとえば命令プログラム中の
第1種の命令Abの実行中に例外が発生した場合には、レ
ジスタ6が“1"を保持しているので選択回路7は命令カ
ウンタ退避レジスタ26からの出力信号を選択し、命令カ
ウンタ退避レジスタ26に退避されている第2種の命令B1
のアドレスを例外処理機構8に出力する。例外処理機構
8ではこの命令カウンタ退避レジスタ26に退避されてい
る第2種の命令B1のアドレスを例外が発生した命令のア
ドレスとして例外メッセージを作成する。
中に例外が検出されると、たとえば命令プログラム中の
第1種の命令Abの実行中に例外が発生した場合には、レ
ジスタ6が“1"を保持しているので選択回路7は命令カ
ウンタ退避レジスタ26からの出力信号を選択し、命令カ
ウンタ退避レジスタ26に退避されている第2種の命令B1
のアドレスを例外処理機構8に出力する。例外処理機構
8ではこの命令カウンタ退避レジスタ26に退避されてい
る第2種の命令B1のアドレスを例外が発生した命令のア
ドレスとして例外メッセージを作成する。
このように、マイクロプログラムで実現しようとすると
水平型マイクロ命令の並列処理の効果がそれほど発揮で
きない第2種の命令B1を、水平型マイクロ命令の並列処
理の効果が充分に発揮できる基本命令Aa〜Adからなる命
令プログラムの実行により実現し、この命令プログラム
の実行中に例外が発生したときに、レジスタ6に保持さ
れた命令プログラムの実行中を示す情報に応じて選択回
路7で命令カウンタ退避レジスタ26に退避された第2種
の命令B1のアドレスが選択されて例外処理機構8に送出
されるようにすることにより、第2種の命令を実現する
命令プログラムの実行中に発生した例外を、命令プログ
ラムを構成する第1種の命令Aa〜Adの例外としてではな
く、第2種の命令の例外として扱うことができ、マイク
ロプログラムを格納する制御記憶41のワード方向の利用
効率を高めることができる。これにより、制御記憶41の
容量を従来よりも縮小させることができる。
水平型マイクロ命令の並列処理の効果がそれほど発揮で
きない第2種の命令B1を、水平型マイクロ命令の並列処
理の効果が充分に発揮できる基本命令Aa〜Adからなる命
令プログラムの実行により実現し、この命令プログラム
の実行中に例外が発生したときに、レジスタ6に保持さ
れた命令プログラムの実行中を示す情報に応じて選択回
路7で命令カウンタ退避レジスタ26に退避された第2種
の命令B1のアドレスが選択されて例外処理機構8に送出
されるようにすることにより、第2種の命令を実現する
命令プログラムの実行中に発生した例外を、命令プログ
ラムを構成する第1種の命令Aa〜Adの例外としてではな
く、第2種の命令の例外として扱うことができ、マイク
ロプログラムを格納する制御記憶41のワード方向の利用
効率を高めることができる。これにより、制御記憶41の
容量を従来よりも縮小させることができる。
さらに、パイプライン処理などによりソフトウェア命令
の並列処理が行えるハードウェアにおいては、実行時間
を短縮することができる。
の並列処理が行えるハードウェアにおいては、実行時間
を短縮することができる。
尚、本発明の一実施例においては、第2種の命令B1の処
理を実現する命令プログラムの開始番地がそのまま命令
解析用メモリ3に格納されるようになっているが、開始
番地の一部のいを命令解析用メモリ3に格納し、この開
始番地の一部と予め定められた定数とを合成して開始番
地が生成されるようにしてもよい。
理を実現する命令プログラムの開始番地がそのまま命令
解析用メモリ3に格納されるようになっているが、開始
番地の一部のいを命令解析用メモリ3に格納し、この開
始番地の一部と予め定められた定数とを合成して開始番
地が生成されるようにしてもよい。
また、本発明の一実施例においては、第1種の命令A1〜
A4,Aa〜Adの処理を実現するマイクロプログラムの先頭
番地が命令解析用メモリ3の制御情報31により定義さ
れ、第2種の命令B1の処理を実現する命令プログラムの
開始番地が命令解析用メモリ3の制御情報33により定義
されているが、第2種の命令B1の処理を実現する命令プ
ログラムの開始番地を第1種の命令A1〜A4,Aa〜Adの処
理を実現するマイクロプログラムの先頭番地が定義され
る命令解析用メモリ3の制御情報31に割当ててもよい。
A4,Aa〜Adの処理を実現するマイクロプログラムの先頭
番地が命令解析用メモリ3の制御情報31により定義さ
れ、第2種の命令B1の処理を実現する命令プログラムの
開始番地が命令解析用メモリ3の制御情報33により定義
されているが、第2種の命令B1の処理を実現する命令プ
ログラムの開始番地を第1種の命令A1〜A4,Aa〜Adの処
理を実現するマイクロプログラムの先頭番地が定義され
る命令解析用メモリ3の制御情報31に割当ててもよい。
さらに、本発明の一実施例においては、レジスタ6のリ
セットを命令解析用メモリ3からの制御情報33により行
っているが、たとえばマイクロ命令によりレジスタ6の
リセットを行ってもよく、これらに限定されない。
セットを命令解析用メモリ3からの制御情報33により行
っているが、たとえばマイクロ命令によりレジスタ6の
リセットを行ってもよく、これらに限定されない。
発明の効果 以上説明したように本発明によれば、制御記憶に格納さ
れたマイクロプログラムにより実現される第1の命令
と、この第1の命令で構成される命令プログラムにより
実現される第2の命令とを識別し、その識別結果が第2
の命令であることを示すとき、第2の命令を命令プログ
ラムを構成する第1の命令によって実行するようにし、
かつ該命令プログラムの実行中に例外が発生したとき
に、退避手段に退避された第2の命令のアドレスにより
その例外の処理を行うようにすることにより、第2種の
命令を実現する命令プログラムの実行中に発生した例外
を第2種の命令の例外として扱うことができ、マイクロ
プログラムを格納する制御記憶のワード方向の利用効率
を高めることができるという効果がある。
れたマイクロプログラムにより実現される第1の命令
と、この第1の命令で構成される命令プログラムにより
実現される第2の命令とを識別し、その識別結果が第2
の命令であることを示すとき、第2の命令を命令プログ
ラムを構成する第1の命令によって実行するようにし、
かつ該命令プログラムの実行中に例外が発生したとき
に、退避手段に退避された第2の命令のアドレスにより
その例外の処理を行うようにすることにより、第2種の
命令を実現する命令プログラムの実行中に発生した例外
を第2種の命令の例外として扱うことができ、マイクロ
プログラムを格納する制御記憶のワード方向の利用効率
を高めることができるという効果がある。
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明の一実施例のソフトウェアプログラムのシ
ーケンスを示す図、第3図は従来例を示すブロック図で
ある。 主要部分の符号の説明 1……主記憶 2……命令フェッチ回路 3……命令解析用メモリ 4……制御記憶回路 6……レジスタ 7……選択回路 8……例外処理機構 11……ソフトウェアプログラム部 12……命令プログラム部 A1〜A4, Aa〜Ad……第1種の命令 B1……第2種の命令
2図は本発明の一実施例のソフトウェアプログラムのシ
ーケンスを示す図、第3図は従来例を示すブロック図で
ある。 主要部分の符号の説明 1……主記憶 2……命令フェッチ回路 3……命令解析用メモリ 4……制御記憶回路 6……レジスタ 7……選択回路 8……例外処理機構 11……ソフトウェアプログラム部 12……命令プログラム部 A1〜A4, Aa〜Ad……第1種の命令 B1……第2種の命令
Claims (1)
- 【請求項1】制御記憶に格納されたマイクロプログラム
により制御されるデータ処理装置であって、前記マイク
ロプログラムにより実現される第1の命令で構成される
命令プログラムを格納する第1の格納手段と、前記第1
の命令と、前記第1の格納手段に格納された前記命令プ
ログラムにより実現される第2の命令とを格納する第2
の格納手段と、前記第1および第2の格納手段から読出
された命令のアドレスを格納するアドレス格納手段と、
前記第2の格納手段から読出された命令が前記第1の命
令であるか前記第2の命令であるかを識別する識別手段
と、前記識別手段により前記第2の命令であると識別さ
れたときに、前記第1の格納手段から読出された前記命
令プログラムを構成する前記第1の命令により前記第2
の命令を実行する実行手段と、前記識別手段により前記
第2の命令であると識別されたときに、前記第2の命令
のアドレスを退避する退避手段と、前記識別手段により
前記第2の命令であると識別されたときに、前記第2の
命令が実行中であることを示す情報を保持する保持手段
と、前記アドレス格納手段に格納されたアドレスと前記
退避手段に格納されたアドレスとのうち一方を、前記保
持手段に保持された前記情報に応じて選択する選択手段
を有し、前記第2の格納手段から読出された命令の実行
中に例外が発生したとき、前記選択手段により選択され
たアドレスにより前記例外の処理を行うようにしたこと
を特徴とするデータ処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63140779A JPH0682320B2 (ja) | 1988-06-08 | 1988-06-08 | データ処理装置 |
US07/361,977 US5095426A (en) | 1988-06-08 | 1989-06-06 | Data processing system for effectively handling exceptions during execution of two different types of instructions |
FR8907536A FR2632746B1 (fr) | 1988-06-08 | 1989-06-07 | Dispositif de traitement de donnees |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63140779A JPH0682320B2 (ja) | 1988-06-08 | 1988-06-08 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01310441A JPH01310441A (ja) | 1989-12-14 |
JPH0682320B2 true JPH0682320B2 (ja) | 1994-10-19 |
Family
ID=15276549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63140779A Expired - Lifetime JPH0682320B2 (ja) | 1988-06-08 | 1988-06-08 | データ処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5095426A (ja) |
JP (1) | JPH0682320B2 (ja) |
FR (1) | FR2632746B1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5134693A (en) * | 1989-01-18 | 1992-07-28 | Intel Corporation | System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel |
JP2504235B2 (ja) * | 1989-11-16 | 1996-06-05 | 三菱電機株式会社 | デ―タ処理装置 |
JP2581236B2 (ja) * | 1989-11-16 | 1997-02-12 | 三菱電機株式会社 | データ処理装置 |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
US5574872A (en) * | 1991-12-10 | 1996-11-12 | Intel Corporation | Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling |
DE4237417C2 (de) * | 1992-03-25 | 1997-01-30 | Hewlett Packard Co | Datenverarbeitungssystem |
US5386563A (en) * | 1992-10-13 | 1995-01-31 | Advanced Risc Machines Limited | Register substitution during exception processing |
US5761407A (en) * | 1993-03-15 | 1998-06-02 | International Business Machines Corporation | Message based exception handler |
US5758141A (en) * | 1995-02-10 | 1998-05-26 | International Business Machines Corporation | Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register |
US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
JP3451594B2 (ja) * | 1995-12-21 | 2003-09-29 | 株式会社森精機ハイテック | 数値制御装置における記憶手段アクセス制御方法および数値制御装置 |
FR2757653B1 (fr) * | 1996-12-20 | 1999-03-12 | Sextant Avionique | Controleur d'entrees-sorties autonome et deporte |
US6009515A (en) * | 1997-05-30 | 1999-12-28 | Sun Microsystems, Inc. | Digital data processing system including efficient arrangement to support branching within trap shadows |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3766532A (en) * | 1972-04-28 | 1973-10-16 | Nanodata Corp | Data processing system having two levels of program control |
GB1426749A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets |
US4370709A (en) * | 1980-08-01 | 1983-01-25 | Tracor, Inc. | Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases |
US4434462A (en) * | 1980-11-24 | 1984-02-28 | Texas Instruments Incorporated | Off-chip access for psuedo-microprogramming in microprocessor |
US4399505A (en) * | 1981-02-06 | 1983-08-16 | Data General Corporaton | External microcode operation in a multi-level microprocessor |
US4928223A (en) * | 1982-10-06 | 1990-05-22 | Fairchild Semiconductor Corporation | Floating point microprocessor with directable two level microinstructions |
US4901235A (en) * | 1983-10-28 | 1990-02-13 | Data General Corporation | Data processing system having unique multilevel microcode architecture |
US4975837A (en) * | 1984-10-01 | 1990-12-04 | Unisys Corporation | Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets |
-
1988
- 1988-06-08 JP JP63140779A patent/JPH0682320B2/ja not_active Expired - Lifetime
-
1989
- 1989-06-06 US US07/361,977 patent/US5095426A/en not_active Expired - Fee Related
- 1989-06-07 FR FR8907536A patent/FR2632746B1/fr not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5095426A (en) | 1992-03-10 |
FR2632746A1 (fr) | 1989-12-15 |
FR2632746B1 (fr) | 1994-10-28 |
JPH01310441A (ja) | 1989-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3649470B2 (ja) | データ処理装置 | |
JP3549595B2 (ja) | 分岐キャッシュ | |
US6009509A (en) | Method and system for the temporary designation and utilization of a plurality of physical registers as a stack | |
JPH0682320B2 (ja) | データ処理装置 | |
US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
US5274776A (en) | Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction | |
JPH031231A (ja) | マイクロプログラム制御装置 | |
JPS6329292B2 (ja) | ||
JPH06230963A (ja) | メモリアクセス制御装置 | |
JPH07114509A (ja) | メモリアクセス装置 | |
JP4151497B2 (ja) | パイプライン処理装置 | |
JPH04239323A (ja) | 階層形命令制御における命令キャッシュ方式 | |
JPH01276232A (ja) | データ処理装置 | |
JPH01276231A (ja) | データ処理装置 | |
JP3015565B2 (ja) | 複数命令の並列実行機能を持つ情報処理装置 | |
JP3057732B2 (ja) | 情報処理装置 | |
JP2689894B2 (ja) | マイクロプログラム制御型情報処理装置 | |
JPH0425937A (ja) | 情報処理装置 | |
KR20010067336A (ko) | 데이터 처리 장치 및 그 제어 방법 | |
JPH01310440A (ja) | データ処理装置 | |
JPH0769816B2 (ja) | データ処理装置 | |
JPH0578052B2 (ja) | ||
JPS58215779A (ja) | デ−タ処理装置 | |
JPH05265751A (ja) | データ処理装置 | |
JPH03113535A (ja) | パイプライン制御機構 |