JPH04213120A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH04213120A JPH04213120A JP3067266A JP6726691A JPH04213120A JP H04213120 A JPH04213120 A JP H04213120A JP 3067266 A JP3067266 A JP 3067266A JP 6726691 A JP6726691 A JP 6726691A JP H04213120 A JPH04213120 A JP H04213120A
- Authority
- JP
- Japan
- Prior art keywords
- exception
- processing
- instruction
- exception processing
- sequencer
- 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
Links
- 230000007704 transition Effects 0.000 claims description 59
- 238000000034 method Methods 0.000 claims description 23
- 230000010365 information processing Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 abstract description 6
- 230000001131 transforming effect Effects 0.000 abstract 5
- 230000009466 transformation Effects 0.000 abstract 2
- 230000003213 activating effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 15
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 206010067482 No adverse event Diseases 0.000 description 1
- 238000007562 laser obscuration time method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】[発明の目的]
【0002】
【産業上の利用分野】この発明は、通常命令実行中に割
り込み要求された例外処理を、高速に行う情報処理装置
に関する。
り込み要求された例外処理を、高速に行う情報処理装置
に関する。
【0003】
【従来の技術】近年のLSI技術の進歩によって、高い
処理能力を1チップに集積した高性能マイクロプロセッ
サ(情報処理装置)が数多く開発されている。このよう
な情報処理装置は、例えば図8に示すような構成となっ
ている。
処理能力を1チップに集積した高性能マイクロプロセッ
サ(情報処理装置)が数多く開発されている。このよう
な情報処理装置は、例えば図8に示すような構成となっ
ている。
【0004】図8において、実行制御部510は、命令
キュー540から命令を受け取り、デコードした後、デ
ータパス520を制御して演算を実行するシーケンサで
ある。実行制御部510はマイクロプログラム、あるい
はPLA等で構成されている。さらに実行制御部510
は、メモリアクセスを伴う命令を実行する場合に、メモ
リ制御部530に対してメモリアクセスのためのハンド
シェークを行う。また実行制御部510は、通常命令の
実行終了時点で、割り込み等の例外処理要求の有無を検
査し、例外処理要求が発生している場合は例外処理に移
るための処理(例外処理への移行)を行っている。
キュー540から命令を受け取り、デコードした後、デ
ータパス520を制御して演算を実行するシーケンサで
ある。実行制御部510はマイクロプログラム、あるい
はPLA等で構成されている。さらに実行制御部510
は、メモリアクセスを伴う命令を実行する場合に、メモ
リ制御部530に対してメモリアクセスのためのハンド
シェークを行う。また実行制御部510は、通常命令の
実行終了時点で、割り込み等の例外処理要求の有無を検
査し、例外処理要求が発生している場合は例外処理に移
るための処理(例外処理への移行)を行っている。
【0005】図8に示すプロセッサで、通常の命令処理
、および例外処理要求発生時の処理を説明したタイミン
グ図を図9に示す。この情報処理装置では、メモリから
命令を取り出して命令キュー540へ格納する命令フェ
ッチと、命令実行とがオーバーラップされて実行される
。ここで、B命令実行中に割り込み要求が発生したと仮
定する。実行制御部510は例外処理要求の発生を命令
終了時点で認識するので、割り込みが発生したことを実
行制御部510が認識するのはB命令実行終了後になる
。割り込み発生を認識すると、実行制御部510は例外
処理への移行を行う。
、および例外処理要求発生時の処理を説明したタイミン
グ図を図9に示す。この情報処理装置では、メモリから
命令を取り出して命令キュー540へ格納する命令フェ
ッチと、命令実行とがオーバーラップされて実行される
。ここで、B命令実行中に割り込み要求が発生したと仮
定する。実行制御部510は例外処理要求の発生を命令
終了時点で認識するので、割り込みが発生したことを実
行制御部510が認識するのはB命令実行終了後になる
。割り込み発生を認識すると、実行制御部510は例外
処理への移行を行う。
【0006】例外処理への移行とは、次のような処理を
含む。すなわち、外部デバイスへの割り込み受け付け信
号の出力、外部デバイスからの割り込みベクタの取得、
割り込みベクタから例外テーブル番地の計算及び例外テ
ーブルのアクセス、例外テーブルから例外処理ルーチン
先頭番地の取得と例外処理ルーチンのフェッチ開始、プ
ログラムカウンタやその他各種のレジスタのスタックへ
の退避等である。これらの処理が終了し、例外処理ルー
チンの命令がフェッチされると、例外処理が開始される
。図9に示す命令X、命令Yが例外処理ルーチンの命令
列である。
含む。すなわち、外部デバイスへの割り込み受け付け信
号の出力、外部デバイスからの割り込みベクタの取得、
割り込みベクタから例外テーブル番地の計算及び例外テ
ーブルのアクセス、例外テーブルから例外処理ルーチン
先頭番地の取得と例外処理ルーチンのフェッチ開始、プ
ログラムカウンタやその他各種のレジスタのスタックへ
の退避等である。これらの処理が終了し、例外処理ルー
チンの命令がフェッチされると、例外処理が開始される
。図9に示す命令X、命令Yが例外処理ルーチンの命令
列である。
【0007】しかしながら、従来の情報処理装置では、
通常の命令を処理するシーケンサと例外命令を処理する
シーケンサとが、実行制御部510内で共用されていた
。このため、従来の情報処理装置では、割り込み要求が
発生してから実際に例外処理が開始されるまでに、割り
込み要求発生時に実行中の通常命令の実行を終了し、例
外処理の移行や例外処理ルーチンのフェッチ等の処理を
行わなければならなかった。
通常の命令を処理するシーケンサと例外命令を処理する
シーケンサとが、実行制御部510内で共用されていた
。このため、従来の情報処理装置では、割り込み要求が
発生してから実際に例外処理が開始されるまでに、割り
込み要求発生時に実行中の通常命令の実行を終了し、例
外処理の移行や例外処理ルーチンのフェッチ等の処理を
行わなければならなかった。
【0008】
【発明が解決しようとする課題】以上のように、従来の
情報処理装置では、例外処理への移行までに多くの処理
を行わなければならないため、高速な割り込み応答を実
現するのは困難であった。特に、割り込み要求発生時に
除算命令等の実行時間の長い命令を実行中の場合、割り
込み応答のために多大な時間を必要としていた。
情報処理装置では、例外処理への移行までに多くの処理
を行わなければならないため、高速な割り込み応答を実
現するのは困難であった。特に、割り込み要求発生時に
除算命令等の実行時間の長い命令を実行中の場合、割り
込み応答のために多大な時間を必要としていた。
【0009】この発明は、このような従来の事情に鑑み
てなされたものであり、その目的とするところは、通常
命令実行中に割り込みが発生しても命令処理シーケンス
に影響を与えず、例外処理への移行を高速に行うことが
できる情報処理装置を提供することにある。
てなされたものであり、その目的とするところは、通常
命令実行中に割り込みが発生しても命令処理シーケンス
に影響を与えず、例外処理への移行を高速に行うことが
できる情報処理装置を提供することにある。
【0010】[発明の構成]
【0011】
【課題を解決するための手段】上記目的を達成するため
、この発明は、通常命令の実行を制御する命令実行シー
ケンサと、前記命令実行シーケンサと独立して動作し、
例外処理への移行処理を制御する例外処理シーケンサと
、例外処理要求の発生を直ちに認識して、前記例外処理
シーケンサを起動する例外処理起動手段とから構成され
ている。
、この発明は、通常命令の実行を制御する命令実行シー
ケンサと、前記命令実行シーケンサと独立して動作し、
例外処理への移行処理を制御する例外処理シーケンサと
、例外処理要求の発生を直ちに認識して、前記例外処理
シーケンサを起動する例外処理起動手段とから構成され
ている。
【0012】
【作用】上記構成により、この発明は、例外処理要求が
発生すると、命令デコードあるいは命令実行のどのフェ
ーズの処理を実行中かということに依存せず、常に例外
処理要求発生を例外処理起動手段が認識する。そして、
例外処理シーケンサを起動するとともに、現在行ってい
る命令デコードを抑止する。さらに、例外処理要求を認
識した時点で、命令実行とは独立に、直ちに例外処理シ
ーケンサの制御によって例外処理への移行処理を開始す
る。このとき、現在行われている通常命令の実行は抑止
されないので、例外処理シーケンサによる例外処理への
移行処理と並列に、命令実行シーケンサが現在実行中の
通常命令の実行を終了するまで制御する。
発生すると、命令デコードあるいは命令実行のどのフェ
ーズの処理を実行中かということに依存せず、常に例外
処理要求発生を例外処理起動手段が認識する。そして、
例外処理シーケンサを起動するとともに、現在行ってい
る命令デコードを抑止する。さらに、例外処理要求を認
識した時点で、命令実行とは独立に、直ちに例外処理シ
ーケンサの制御によって例外処理への移行処理を開始す
る。このとき、現在行われている通常命令の実行は抑止
されないので、例外処理シーケンサによる例外処理への
移行処理と並列に、命令実行シーケンサが現在実行中の
通常命令の実行を終了するまで制御する。
【0013】
【実施例】次に、この発明の実施例を図面を参照しなが
ら説明する。図1は、この発明の情報処理装置に係わる
一実施例の構成を示すブロック図である。
ら説明する。図1は、この発明の情報処理装置に係わる
一実施例の構成を示すブロック図である。
【0014】同図においてこの発明の情報処理装置は、
大きくデコーダ110、実行部120、メモリ制御部1
30、及び命令キュー140から構成されている。さら
に、デコーダ110は、例外処理起動部111、例外処
理シーケンサ112、命令レジスタ113、デコードシ
ーケンサ114、及び制御信号生成部115によって構
成されている。また、実行部120は、データパス12
1と実行シーケンサ122とによってなされている。メ
モリ制御部130は、データアクセス制御部と131フ
ェッチ制御部132とから構成されている。
大きくデコーダ110、実行部120、メモリ制御部1
30、及び命令キュー140から構成されている。さら
に、デコーダ110は、例外処理起動部111、例外処
理シーケンサ112、命令レジスタ113、デコードシ
ーケンサ114、及び制御信号生成部115によって構
成されている。また、実行部120は、データパス12
1と実行シーケンサ122とによってなされている。メ
モリ制御部130は、データアクセス制御部と131フ
ェッチ制御部132とから構成されている。
【0015】デコーダ110内の例外処理シーケンサ1
12とデコードシーケンサ114はおもに状態遷移を制
御するシーケンサである。また、制御信号生成部115
は所定の状態で所定の制御信号を生成するものである。 例外処理起動部111と例外処理シーケンサ112が例
外処理を専門に担当し、命令レジスタ113とデコード
シーケンサ114は、通常命令デコードを担当している
。
12とデコードシーケンサ114はおもに状態遷移を制
御するシーケンサである。また、制御信号生成部115
は所定の状態で所定の制御信号を生成するものである。 例外処理起動部111と例外処理シーケンサ112が例
外処理を専門に担当し、命令レジスタ113とデコード
シーケンサ114は、通常命令デコードを担当している
。
【0016】例外処理起動部111は、例外処理要求が
発生するとこれを認識して、その例外処理の種類を示す
例外処理番号を内部に保持し、例外処理シーケンサ11
2及び制御信号生成部115に出力するところである。 複数の例外処理要求が同時に発生した場合は、最も優先
度の高いものを受け付ける。例外処理要求にはプロセッ
サ外部からのものと内部からのものとがあり、プロセッ
サ外部からは一般割り込み要求、最優先割り込み要求(
NMI : Non Maskable Interr
upt)がある。また、内部からは、ソフトウェア割り
込み(TRAP)、トレース例外、ブレークポイント例
外、ゼロ除算例外が要求される。
発生するとこれを認識して、その例外処理の種類を示す
例外処理番号を内部に保持し、例外処理シーケンサ11
2及び制御信号生成部115に出力するところである。 複数の例外処理要求が同時に発生した場合は、最も優先
度の高いものを受け付ける。例外処理要求にはプロセッ
サ外部からのものと内部からのものとがあり、プロセッ
サ外部からは一般割り込み要求、最優先割り込み要求(
NMI : Non Maskable Interr
upt)がある。また、内部からは、ソフトウェア割り
込み(TRAP)、トレース例外、ブレークポイント例
外、ゼロ除算例外が要求される。
【0017】例外処理シーケンサ112は、デコーダ1
10と実行部120とで行う例外処理への移行処理のう
ち、デコーダ110で行う処理を制御する。また、例外
処理シーケンサ112は、例外処理起動部111によっ
て例外処理要求が受け付けられると同時に起動され、状
態番号を出力する。
10と実行部120とで行う例外処理への移行処理のう
ち、デコーダ110で行う処理を制御する。また、例外
処理シーケンサ112は、例外処理起動部111によっ
て例外処理要求が受け付けられると同時に起動され、状
態番号を出力する。
【0018】命令レジスタ113は、命令キュー140
から取得した通常の機械語命令を格納する命令レジスタ
である。デコードシーケンサ114が初期状態にある場
合に、命令キュー140から命令を取得して命令レジス
タ113に格納するものである。また、命令レジスタ1
13の命令コード中に存在するイミディエートデータあ
るいはジャンプ先アドレスは、制御信号生成部115か
らの指示でデータパス121内のリテラルバッファ、及
びフェッチ制御部132内のフェッチカウンタに転送さ
れる。
から取得した通常の機械語命令を格納する命令レジスタ
である。デコードシーケンサ114が初期状態にある場
合に、命令キュー140から命令を取得して命令レジス
タ113に格納するものである。また、命令レジスタ1
13の命令コード中に存在するイミディエートデータあ
るいはジャンプ先アドレスは、制御信号生成部115か
らの指示でデータパス121内のリテラルバッファ、及
びフェッチ制御部132内のフェッチカウンタに転送さ
れる。
【0019】デコードシーケンサ114は、命令が命令
レジスタ113に格納されることによって起動するもの
である。但し、命令レジスタ113に格納される命令が
TRAP命令の場合は、デコードシーケンサ114は起
動されず、デコードシーケンサ114から例外処理起動
部111に対してTRAP例外が要求される。また、デ
コードシーケンサ114は、例外処理起動部111によ
って例外処理要求が受け付けられると、デコードを抑止
されて初期状態に遷移する。
レジスタ113に格納されることによって起動するもの
である。但し、命令レジスタ113に格納される命令が
TRAP命令の場合は、デコードシーケンサ114は起
動されず、デコードシーケンサ114から例外処理起動
部111に対してTRAP例外が要求される。また、デ
コードシーケンサ114は、例外処理起動部111によ
って例外処理要求が受け付けられると、デコードを抑止
されて初期状態に遷移する。
【0020】制御信号生成部115は、デコーダ110
の内部、あるいは他のブロックに制御信号を出力する機
能を有している。この制御信号生成部115は、例外処
理への移行時は例外処理起動部111からの例外処理番
号と、例外処理シーケンサ112からの状態番号にした
がって、所定の制御信号を生成する。また通常の命令デ
コード時は、命令レジスタ113からの機械語命令コー
ドと、デコードシーケンサ114からの状態番号にした
がって所定の制御信号を生成する。なお、例外処理への
移行時は、通常命令デコードは抑止されるので、例外処
理への移行のための処理と通常デコードとの制御信号生
成が競合することはない。さらに制御信号生成部115
は、実行シーケンサ122に対して命令処理コード、レ
ジスタコード、命令長等の制御信号を、フェッチ制御部
132に対してフェッチ停止指示、フェッチ開始指示等
の制御信号を出力するものである。
の内部、あるいは他のブロックに制御信号を出力する機
能を有している。この制御信号生成部115は、例外処
理への移行時は例外処理起動部111からの例外処理番
号と、例外処理シーケンサ112からの状態番号にした
がって、所定の制御信号を生成する。また通常の命令デ
コード時は、命令レジスタ113からの機械語命令コー
ドと、デコードシーケンサ114からの状態番号にした
がって所定の制御信号を生成する。なお、例外処理への
移行時は、通常命令デコードは抑止されるので、例外処
理への移行のための処理と通常デコードとの制御信号生
成が競合することはない。さらに制御信号生成部115
は、実行シーケンサ122に対して命令処理コード、レ
ジスタコード、命令長等の制御信号を、フェッチ制御部
132に対してフェッチ停止指示、フェッチ開始指示等
の制御信号を出力するものである。
【0021】実行部120は、デコーダ110で機械語
命令をデコードして得られた処理コードをもとに、演算
を実行するブロックである。
命令をデコードして得られた処理コードをもとに、演算
を実行するブロックである。
【0022】データパス121は、図示しないが、各種
レジスタ、演算器、データバス、リテラルバッファ、プ
ログラムカウンタ、プログラムカウンタインクリメンタ
等から構成される。このデータパス121は、実行シー
ケンサ122によって制御された演算レジスタや演算器
を用いて演算を行なうところである。また、実行シーケ
ンサ122の制御によってプログラムカウンタの更新も
行われる。
レジスタ、演算器、データバス、リテラルバッファ、プ
ログラムカウンタ、プログラムカウンタインクリメンタ
等から構成される。このデータパス121は、実行シー
ケンサ122によって制御された演算レジスタや演算器
を用いて演算を行なうところである。また、実行シーケ
ンサ122の制御によってプログラムカウンタの更新も
行われる。
【0023】プログラムカウンタの更新には2通りある
。1つはプログラムカウンタインクリメンタの値で更新
する方法である。通常は、連続したメモリ領域に格納さ
れている機械語命令列を実行する。プログラムカウンタ
インクリメンタは、プログラムカウンタの値に、デコー
ダ110から渡される現実行命令命令長を加算した値、
すなわち次に実行する命令の格納アドレスを示す値を出
力するので、この値でプログラムカウンタを更新する。 プログラムカウンタインクリメンタの出力値は、コール
サブルーチン、例外処理への移行等でスタックに退避す
る戻りアドレスとしても使用される。
。1つはプログラムカウンタインクリメンタの値で更新
する方法である。通常は、連続したメモリ領域に格納さ
れている機械語命令列を実行する。プログラムカウンタ
インクリメンタは、プログラムカウンタの値に、デコー
ダ110から渡される現実行命令命令長を加算した値、
すなわち次に実行する命令の格納アドレスを示す値を出
力するので、この値でプログラムカウンタを更新する。 プログラムカウンタインクリメンタの出力値は、コール
サブルーチン、例外処理への移行等でスタックに退避す
る戻りアドレスとしても使用される。
【0024】もう1つは、リテラルバッファに格納され
ている値を用いてプログラムカウンタを更新する方法で
ある。ジャンプ命令等では、デコーダによって機械語命
令語中に含まれるディスプレースメントがリテラルバッ
ファに格納されるので、これを用いてプログラムカウン
タを更新する。相対アドレス形式のブランチ命令では、
リテラルバッファには飛び先アドレスの現プログラムカ
ウンタに対するジャンプのオフセット値が格納されるの
で、リテラルバッファの値とプログラムカウンタの値を
加算したものでプログラムカウンタを更新する。絶対ア
ドレス形式のジャンプ命令では、リテラルバッファに飛
び先アドレスが格納されるので、この値でプログラムカ
ウンタを更新する。
ている値を用いてプログラムカウンタを更新する方法で
ある。ジャンプ命令等では、デコーダによって機械語命
令語中に含まれるディスプレースメントがリテラルバッ
ファに格納されるので、これを用いてプログラムカウン
タを更新する。相対アドレス形式のブランチ命令では、
リテラルバッファには飛び先アドレスの現プログラムカ
ウンタに対するジャンプのオフセット値が格納されるの
で、リテラルバッファの値とプログラムカウンタの値を
加算したものでプログラムカウンタを更新する。絶対ア
ドレス形式のジャンプ命令では、リテラルバッファに飛
び先アドレスが格納されるので、この値でプログラムカ
ウンタを更新する。
【0025】これらのどの方法でプログラムカウンタを
更新するかは、実行シーケンサ122によって制御され
る。
更新するかは、実行シーケンサ122によって制御され
る。
【0026】実行シーケンサ122は、状態遷移回路と
制御信号生成回路から構成される(図示せず)が、マイ
クロプログラム構成にしてもよいものである。この実行
シーケンサ122は、デコーダ110からの処理コード
にしたがって状態遷移を起動し、所定の状態でデータパ
ス121を制御するための制御信号、あるいはデータア
クセス制御部131に対するメモリリード・ライト要求
を出力するものである。なお、実行シーケンサ122の
状態遷移は、一度起動されるとデコーダ110で例外処
理要求が受け付けられても影響を受けない。
制御信号生成回路から構成される(図示せず)が、マイ
クロプログラム構成にしてもよいものである。この実行
シーケンサ122は、デコーダ110からの処理コード
にしたがって状態遷移を起動し、所定の状態でデータパ
ス121を制御するための制御信号、あるいはデータア
クセス制御部131に対するメモリリード・ライト要求
を出力するものである。なお、実行シーケンサ122の
状態遷移は、一度起動されるとデコーダ110で例外処
理要求が受け付けられても影響を受けない。
【0027】メモリ制御部130内のデータアクセス制
御部131は、実行シーケンサ122の制御によって、
演算データのメモリへの読み書きを行うところである。
御部131は、実行シーケンサ122の制御によって、
演算データのメモリへの読み書きを行うところである。
【0028】フェッチ制御部132は、図示しないフェ
ッチカウンタとフェッチカウンタインクリメンタとから
構成されている。このフェッチ制御部132は、命令キ
ュー140に空きがあり、かつデータアクセス制御部1
31がメモリバス(メモリデータバス及びメモリアドレ
スバス)を占有していなければ、命令フェッチを行って
命令キュー140に格納するとともに、フェッチカウン
タをフェッチカウンタインクリメンタの値で更新するも
のである。
ッチカウンタとフェッチカウンタインクリメンタとから
構成されている。このフェッチ制御部132は、命令キ
ュー140に空きがあり、かつデータアクセス制御部1
31がメモリバス(メモリデータバス及びメモリアドレ
スバス)を占有していなければ、命令フェッチを行って
命令キュー140に格納するとともに、フェッチカウン
タをフェッチカウンタインクリメンタの値で更新するも
のである。
【0029】なお、ジャンプ命令でフェッチアドレスが
不連続になる場合は、リテラルバッファに格納されてい
る飛び先アドレスがフェッチカウンタに格納され、飛び
先命令のフェッチが可能になる。さらにフェッチ制御部
132は、例外処理移行時にデコーダ110の指示によ
り、例外処理シーケンスの先頭アドレスの取得、および
例外処理シーケンスのフェッチを行う。
不連続になる場合は、リテラルバッファに格納されてい
る飛び先アドレスがフェッチカウンタに格納され、飛び
先命令のフェッチが可能になる。さらにフェッチ制御部
132は、例外処理移行時にデコーダ110の指示によ
り、例外処理シーケンスの先頭アドレスの取得、および
例外処理シーケンスのフェッチを行う。
【0030】命令キュー140は、FIFO(Firs
t_In, First_Out)構成となっており、
フェッチされた命令列をフェッチ制御部132の制御に
よって格納し、デコーダ110から要求があればそれに
対して命令を出力するところである。
t_In, First_Out)構成となっており、
フェッチされた命令列をフェッチ制御部132の制御に
よって格納し、デコーダ110から要求があればそれに
対して命令を出力するところである。
【0031】以上のように、この発明は構成されており
、次にこの発明の処理方式を説明する。まず、例外処理
への移行時の処理について説明する前に、一般命令処理
について説明する。図2は、一般命令実行時の各ブロッ
クでの動作タイミング図である。この図に示すように、
各ブロックはそれぞれ独立に動作することによって命令
パイプラインを構成している。
、次にこの発明の処理方式を説明する。まず、例外処理
への移行時の処理について説明する前に、一般命令処理
について説明する。図2は、一般命令実行時の各ブロッ
クでの動作タイミング図である。この図に示すように、
各ブロックはそれぞれ独立に動作することによって命令
パイプラインを構成している。
【0032】まず、メモリ制御部130内のフェッチ制
御部132により、フェッチカウンタの示すメモリ番地
から命令がフェッチされ、命令キュー140に格納され
る。これにより、デコーダ110では、命令キュー14
0からの命令が取得され、デコードされる。さらに、デ
コーダ110により、実行部120で命令実行のための
処理コード、レジスタコード、演算サイズ、命令長が生
成される。実行部120においては、デコーダ110か
らの処理コード、レジスタコード、演算サイズをもとに
演算が実行される。さらに、デコーダ110からの現実
行命令長によってプログラムカウンタが更新される。
御部132により、フェッチカウンタの示すメモリ番地
から命令がフェッチされ、命令キュー140に格納され
る。これにより、デコーダ110では、命令キュー14
0からの命令が取得され、デコードされる。さらに、デ
コーダ110により、実行部120で命令実行のための
処理コード、レジスタコード、演算サイズ、命令長が生
成される。実行部120においては、デコーダ110か
らの処理コード、レジスタコード、演算サイズをもとに
演算が実行される。さらに、デコーダ110からの現実
行命令長によってプログラムカウンタが更新される。
【0033】次に、ジャンプ命令を処理する場合の動作
について説明する。デコーダ110によってジャンプ命
令が認識されると、ディスプレースメント(飛び先アド
レス)取得のため、命令キュー140に第2ワード取得
が要求される。デコーダ110によって命令キュー14
0からの飛び先アドレスが取得されると、この飛び先ア
ドレスは、データパス121内のリテラルバッファに格
納されるとともに、フェッチ制御部132内のフェッチ
カウンタに格納される。このとき、デコーダ110から
は、フェッチ制御部132に対して新たなフェッチに入
らないようにフェッチ停止指示が出力され、これと同時
に命令キュー140がクリアされる。仮に、新たなフェ
ッチに入ってしまった場合は、フェッチされたデータは
命令キュー140には格納されない。
について説明する。デコーダ110によってジャンプ命
令が認識されると、ディスプレースメント(飛び先アド
レス)取得のため、命令キュー140に第2ワード取得
が要求される。デコーダ110によって命令キュー14
0からの飛び先アドレスが取得されると、この飛び先ア
ドレスは、データパス121内のリテラルバッファに格
納されるとともに、フェッチ制御部132内のフェッチ
カウンタに格納される。このとき、デコーダ110から
は、フェッチ制御部132に対して新たなフェッチに入
らないようにフェッチ停止指示が出力され、これと同時
に命令キュー140がクリアされる。仮に、新たなフェ
ッチに入ってしまった場合は、フェッチされたデータは
命令キュー140には格納されない。
【0034】さらにデコーダ110からは、フェッチ制
御部132に対してフェッチ開始指示が出される。これ
により、フェッチ制御部132によって飛び先命令のフ
ェッチが開始される。そして、デコーダ110からは実
行シーケンサ122に対して、ジャンプ命令の処理コー
ドが転送される。この後、命令キュー140に飛び先命
令がフェッチされてくるので、ここから飛び先命令シー
ケンスのデコードが開始される。
御部132に対してフェッチ開始指示が出される。これ
により、フェッチ制御部132によって飛び先命令のフ
ェッチが開始される。そして、デコーダ110からは実
行シーケンサ122に対して、ジャンプ命令の処理コー
ドが転送される。この後、命令キュー140に飛び先命
令がフェッチされてくるので、ここから飛び先命令シー
ケンスのデコードが開始される。
【0035】次に、ジャンプ命令を渡された実行部12
0での処理について説明する。実行シーケンサ122の
指示により、データパス121内のリテラルバッファに
格納されている飛び先命令アドレスは、プログラムカウ
ンタに格納される。
0での処理について説明する。実行シーケンサ122の
指示により、データパス121内のリテラルバッファに
格納されている飛び先命令アドレスは、プログラムカウ
ンタに格納される。
【0036】このように、命令デコードと命令実行をパ
イプライン化することにより、一般命令においても高速
処理を実現している。ジャンプ命令等によって命令シー
ケンスのフェッチアドレスが不連続になる場合は、デコ
ーダ110がジャンプ命令を認識した時点で直ちに飛び
先命令フェッチを指示することによって高速化を実現し
ている。これは、以下で説明する例外処理の移行の高速
化にも応用されている。
イプライン化することにより、一般命令においても高速
処理を実現している。ジャンプ命令等によって命令シー
ケンスのフェッチアドレスが不連続になる場合は、デコ
ーダ110がジャンプ命令を認識した時点で直ちに飛び
先命令フェッチを指示することによって高速化を実現し
ている。これは、以下で説明する例外処理の移行の高速
化にも応用されている。
【0037】以下に、例外処理の処理について説明する
。例外処理起動部111は、例外処理シーケンサ112
での状態が初期状態にあるとき、常に例外処理要求の発
生を監視している。したがって例外処理要求は、他の例
外処理への移行を行っていない限り、要求が発生した時
点で命令実行のどのフェーズにあるかに依存せず、例外
処理シーケンサ112によって直ちに受け付けられる。 この場合、デコーダ110での命令デコードは直ちに抑
止されるが、実行部120で実行中の命令は最後まで実
行される。したがって実行シーケンス上は、例外処理を
要求すると、現在の命令実行終了後に例外処理ルーチン
に移行することになる。
。例外処理起動部111は、例外処理シーケンサ112
での状態が初期状態にあるとき、常に例外処理要求の発
生を監視している。したがって例外処理要求は、他の例
外処理への移行を行っていない限り、要求が発生した時
点で命令実行のどのフェーズにあるかに依存せず、例外
処理シーケンサ112によって直ちに受け付けられる。 この場合、デコーダ110での命令デコードは直ちに抑
止されるが、実行部120で実行中の命令は最後まで実
行される。したがって実行シーケンス上は、例外処理を
要求すると、現在の命令実行終了後に例外処理ルーチン
に移行することになる。
【0038】例外処理シーケンサ112の状態遷移を図
3に示す。以下では図3にしたがって、例外処理への移
行処理について説明する。例外処理要求が発生すると、
例外処理起動部111は、例外処理の種類を示す例外処
理番号を内部のレジスタに保持して出力する。また、例
外処理シーケンサ112に対して、例外処理状態遷移の
移行を指示する。例外処理状態遷移は、例外処理要求が
発生していない場合、すなわち通常命令実行中は初期状
態(ステップ1)で待機し、例外処理要求の発生を受け
付けると、(ステップ2)以降で説明する各状態に遷移
する。
3に示す。以下では図3にしたがって、例外処理への移
行処理について説明する。例外処理要求が発生すると、
例外処理起動部111は、例外処理の種類を示す例外処
理番号を内部のレジスタに保持して出力する。また、例
外処理シーケンサ112に対して、例外処理状態遷移の
移行を指示する。例外処理状態遷移は、例外処理要求が
発生していない場合、すなわち通常命令実行中は初期状
態(ステップ1)で待機し、例外処理要求の発生を受け
付けると、(ステップ2)以降で説明する各状態に遷移
する。
【0039】さらに、例外処理起動部111からは、他
ブロック(デコーダ110、命令キュー140、フェッ
チ制御部132)に対して例外処理起動信号が出力され
る。これにより、デコーダ110で行われている通常命
令デコードが直ちに抑止され、通常命令デコード状態遷
移は初期状態に戻る。また、命令キュー140内の命令
はすべてクリアされる。フェッチ制御部132によって
現在フェッチ中の命令は、フェッチ終了後も命令キュー
140には格納されない。なお、実行部120は影響を
受けず、現在実行中の命令は正常に終了するまで実行さ
れる。
ブロック(デコーダ110、命令キュー140、フェッ
チ制御部132)に対して例外処理起動信号が出力され
る。これにより、デコーダ110で行われている通常命
令デコードが直ちに抑止され、通常命令デコード状態遷
移は初期状態に戻る。また、命令キュー140内の命令
はすべてクリアされる。フェッチ制御部132によって
現在フェッチ中の命令は、フェッチ終了後も命令キュー
140には格納されない。なお、実行部120は影響を
受けず、現在実行中の命令は正常に終了するまで実行さ
れる。
【0040】受け付けた例外処理要求が外部からの割り
込み要求である場合、デコーダ110からメモリ制御部
130に対して割り込みベクタの取得が要求される(ス
テップ2)。なお、割り込み以外の例外処理(例えばT
RAP命令など、情報処理装置内部で発生する例外処理
)では、デコーダ110によって例外処理番号から所定
の例外ベクタが生成されるため、外部から例外ベクタを
取得する必要はないのでこの状態には遷移しない。
込み要求である場合、デコーダ110からメモリ制御部
130に対して割り込みベクタの取得が要求される(ス
テップ2)。なお、割り込み以外の例外処理(例えばT
RAP命令など、情報処理装置内部で発生する例外処理
)では、デコーダ110によって例外処理番号から所定
の例外ベクタが生成されるため、外部から例外ベクタを
取得する必要はないのでこの状態には遷移しない。
【0041】割り込みベクタは、通常の命令フェッチと
同様に命令キュー140経由で取得される(ステップ3
)。命令キュー140に割り込みベクタが取り込まれる
まで、この状態で待機する。
同様に命令キュー140経由で取得される(ステップ3
)。命令キュー140に割り込みベクタが取り込まれる
まで、この状態で待機する。
【0042】次に、テーブル読出しの要求が行われる(
ステップ4)。すなわち、取得された割り込みベクタ、
あるいは生成された割り込みベクタを4倍したメモリ番
地から、例外処理ルーチンの開始アドレス32ビットを
取得するようフェッチ制御部132に要求が出される。
ステップ4)。すなわち、取得された割り込みベクタ、
あるいは生成された割り込みベクタを4倍したメモリ番
地から、例外処理ルーチンの開始アドレス32ビットを
取得するようフェッチ制御部132に要求が出される。
【0043】この後、テーブルの下位ワードが読出され
る(ステップ5)。具体的には、例外処理ルーチンの開
始アドレスの下位ワード16ビットが命令キュー140
経由で受け取られ、データパス121内のリテラルバッ
ファの下位ワードに転送される。命令キュー140にデ
ータが格納されるまで、この状態で待機する。
る(ステップ5)。具体的には、例外処理ルーチンの開
始アドレスの下位ワード16ビットが命令キュー140
経由で受け取られ、データパス121内のリテラルバッ
ファの下位ワードに転送される。命令キュー140にデ
ータが格納されるまで、この状態で待機する。
【0044】さらに、テーブルの上位ワードが読出され
る(ステップ6)。具体的には、例外処理ルーチンの開
始アドレスの上位ワード16ビットが、命令キュー14
0経由で受け取られ、データパス121内のリテラルバ
ッファの上位ワードに転送される。命令キュー140に
データが格納されるまで、この状態で待機する。
る(ステップ6)。具体的には、例外処理ルーチンの開
始アドレスの上位ワード16ビットが、命令キュー14
0経由で受け取られ、データパス121内のリテラルバ
ッファの上位ワードに転送される。命令キュー140に
データが格納されるまで、この状態で待機する。
【0045】リテラルバッファに格納された例外処理ル
ーチンの開始アドレス32ビットが、リテラルバッファ
からフェッチ制御部132に転送され、フェッチカウン
タに格納される(ステップ7)。
ーチンの開始アドレス32ビットが、リテラルバッファ
からフェッチ制御部132に転送され、フェッチカウン
タに格納される(ステップ7)。
【0046】フェッチ制御部132に対してフェッチ開
始が指示される。このメカニズムもジャンプ命令での飛
び先命令フェッチ指示と同じである。これにより、例外
処理ルーチンのフェッチが開始される(ステップ8)。 以上で例外処理シーケンサ112による例外処理への移
行処理が終了する。
始が指示される。このメカニズムもジャンプ命令での飛
び先命令フェッチ指示と同じである。これにより、例外
処理ルーチンのフェッチが開始される(ステップ8)。 以上で例外処理シーケンサ112による例外処理への移
行処理が終了する。
【0047】最後に、例外処理シーケンサ112から実
行部120へ例外処理コードが転送される(ステップ9
)。これにより、例外処理シーケンサ112の状態遷移
は初期状態に戻り、次の例外処理要求が発生するまで待
機する。実行部120での前命令実行がまだ終了してい
ない場合は、実行終了までこの状態で待機する。この後
フェッチされる例外処理ルーチンの命令列が、命令キュ
ー140に格納され次第、デコーダ110によって通常
命令デコードが開始される。
行部120へ例外処理コードが転送される(ステップ9
)。これにより、例外処理シーケンサ112の状態遷移
は初期状態に戻り、次の例外処理要求が発生するまで待
機する。実行部120での前命令実行がまだ終了してい
ない場合は、実行終了までこの状態で待機する。この後
フェッチされる例外処理ルーチンの命令列が、命令キュ
ー140に格納され次第、デコーダ110によって通常
命令デコードが開始される。
【0048】実行部120では前命令実行が終了次第、
デコーダ110より渡された例外処理コードに従い、例
外処理からの復帰アドレス(プログラムカウンタインク
リメンタ値)の退避等の所定の処理が行われる。実行部
120での例外処理シーケンスを以下に示す。
デコーダ110より渡された例外処理コードに従い、例
外処理からの復帰アドレス(プログラムカウンタインク
リメンタ値)の退避等の所定の処理が行われる。実行部
120での例外処理シーケンスを以下に示す。
【0049】まず、データパス121内のスタックポイ
ンタを更新させるために、データパス121の演算器が
用いられてスタックポインタが4だけ減算される。これ
と並行してデータアクセス制御部131に、メモリ書き
込み要求が出される。データアクセス制御部131から
アクノリッジ信号が帰ってきたら、計算された新スタッ
クポインタ値がアドレスとされて、データアクセス制御
部131に転送される。これと同時に、新スタックポイ
ンタ値は、スタックポインタに書き戻されて更新される
。
ンタを更新させるために、データパス121の演算器が
用いられてスタックポインタが4だけ減算される。これ
と並行してデータアクセス制御部131に、メモリ書き
込み要求が出される。データアクセス制御部131から
アクノリッジ信号が帰ってきたら、計算された新スタッ
クポインタ値がアドレスとされて、データアクセス制御
部131に転送される。これと同時に、新スタックポイ
ンタ値は、スタックポインタに書き戻されて更新される
。
【0050】この後、スタックに退避するデータとして
、復帰アドレス(プログラムカウンタインクリメンタ値
)や各種レジスタ値が、データアクセス制御部131に
転送される。データアクセス制御部131では、転送さ
れたアドレスすなわちスタック番地に退避するデータが
格納される。リテラルバッファに格納されている例外処
理シーケンスの先頭アドレスは、新プログラムカウンタ
値としてプログラムカウンタに格納される。
、復帰アドレス(プログラムカウンタインクリメンタ値
)や各種レジスタ値が、データアクセス制御部131に
転送される。データアクセス制御部131では、転送さ
れたアドレスすなわちスタック番地に退避するデータが
格納される。リテラルバッファに格納されている例外処
理シーケンスの先頭アドレスは、新プログラムカウンタ
値としてプログラムカウンタに格納される。
【0051】図4に、割り込み要求が発生した場合の各
ブロックの動作タイミング図を示す。同図に示すように
、命令Cのフェッチ中、命令Bのデコード中、及び命令
Aの実行中に割り込みが発生している。このため、命令
Bのデコードは中止され、命令Aは終了するまで実行さ
れる。また、割り込み要求発生と同時に、例外処理シー
ケンサ112による例外処理の移行処理が行われる。 この図から分かるように、図9で示した従来のタイミン
グと比較し、例外処理の移行処理が開始れさてから、命
令Aの実行が終了するまでの時間が大きく短縮されてい
る。
ブロックの動作タイミング図を示す。同図に示すように
、命令Cのフェッチ中、命令Bのデコード中、及び命令
Aの実行中に割り込みが発生している。このため、命令
Bのデコードは中止され、命令Aは終了するまで実行さ
れる。また、割り込み要求発生と同時に、例外処理シー
ケンサ112による例外処理の移行処理が行われる。 この図から分かるように、図9で示した従来のタイミン
グと比較し、例外処理の移行処理が開始れさてから、命
令Aの実行が終了するまでの時間が大きく短縮されてい
る。
【0052】以上述べたように、通常命令の処理のため
のデコーダ110、実行シーケンサ122とは独立して
動作する例外処理起動部111、例外処理シーケンサ1
12を設けることにより、現在の命令実行に依存せず、
例外処理要求を直ちに受け付けることができる。さらに
、現命令実行と並列して割り込みベクタの取得、例外処
理命令ルーチンの先頭アドレスの取得、あるいは例外処
理命令ルーチンのフェッチ開始等の例外処理への移行を
行うことが可能となる。
のデコーダ110、実行シーケンサ122とは独立して
動作する例外処理起動部111、例外処理シーケンサ1
12を設けることにより、現在の命令実行に依存せず、
例外処理要求を直ちに受け付けることができる。さらに
、現命令実行と並列して割り込みベクタの取得、例外処
理命令ルーチンの先頭アドレスの取得、あるいは例外処
理命令ルーチンのフェッチ開始等の例外処理への移行を
行うことが可能となる。
【0053】これらにより、高速割り込み応答が可能に
なる。特に、乗除算命令のような実行時間の長い命令実
行中に割り込み要求が発生した場合、命令実行中に例外
処理移行のための処理がほとんど終了し、命令実行終了
とともに即座に例外処理ルーチンの実行に移ることが可
能となる。これにより、従来の場合と比較して特に大き
な効果が得られる。
なる。特に、乗除算命令のような実行時間の長い命令実
行中に割り込み要求が発生した場合、命令実行中に例外
処理移行のための処理がほとんど終了し、命令実行終了
とともに即座に例外処理ルーチンの実行に移ることが可
能となる。これにより、従来の場合と比較して特に大き
な効果が得られる。
【0054】また、この発明の情報処理装置では、例外
処理への移行によって実行部120での動作はいっさい
影響を受けない。すなわち、例外処理への移行は現命令
実行終了後に行われ、この発明を採用することによる悪
影響は発生しない。したがって、この発明の情報処理装
置は、高速で、かつ極めて信頼性の高い例外処理移行方
式を提供している。
処理への移行によって実行部120での動作はいっさい
影響を受けない。すなわち、例外処理への移行は現命令
実行終了後に行われ、この発明を採用することによる悪
影響は発生しない。したがって、この発明の情報処理装
置は、高速で、かつ極めて信頼性の高い例外処理移行方
式を提供している。
【0055】
応用例
上述した情報処理装置では、例外処理への移行中に新た
な割り込み要求が発生しても、移行中の例外処理が終了
するまで新たな割り込み要求は受け付けることができな
い。これを、図5のタイミング図を用いて説明する。
な割り込み要求が発生しても、移行中の例外処理が終了
するまで新たな割り込み要求は受け付けることができな
い。これを、図5のタイミング図を用いて説明する。
【0056】命令Aに、ある番地で一時停止させるブレ
イクポイントが設定されているものとする。命令Aのデ
コードにより、プロセッサ内部からブレイクポイント例
外処理が要求される。前命令の実行と並行して、ブレイ
クポイント例外処理への移行が開始される。しかし、ブ
レイクポイント例外処理への移行中に新たに割り込み要
求が発生しても、ブレイクポイント例外処理への移行が
完全に終了するまで、新たな割り込み要求は受け付けら
れない。
イクポイントが設定されているものとする。命令Aのデ
コードにより、プロセッサ内部からブレイクポイント例
外処理が要求される。前命令の実行と並行して、ブレイ
クポイント例外処理への移行が開始される。しかし、ブ
レイクポイント例外処理への移行中に新たに割り込み要
求が発生しても、ブレイクポイント例外処理への移行が
完全に終了するまで、新たな割り込み要求は受け付けら
れない。
【0057】このため、もしブレイクポイント例外処理
よりも新たな割り込み要求の方が優先度が高くても、低
優先度例外処理(ブレイクポイント例外処理)への移行
処理が終了するまで、高優先度の割り込み要求が受け付
けられないことになる。これにより、高優先度の割り込
み応答が遅れてしまう。
よりも新たな割り込み要求の方が優先度が高くても、低
優先度例外処理(ブレイクポイント例外処理)への移行
処理が終了するまで、高優先度の割り込み要求が受け付
けられないことになる。これにより、高優先度の割り込
み応答が遅れてしまう。
【0058】このような欠点を解決するため、例外処理
シーケンサ112に、例外処理シーケンスの先頭番地を
取得した時点で、優先度の高い例外処理が起動されてい
ないかをチェックし、優先度の高い例外処理が要求され
ている場合、取得した例外処理シーケンス先頭番地を放
棄して、直ちに優先度の高い例外処理への移行処理を開
始する機能を追加した。
シーケンサ112に、例外処理シーケンスの先頭番地を
取得した時点で、優先度の高い例外処理が起動されてい
ないかをチェックし、優先度の高い例外処理が要求され
ている場合、取得した例外処理シーケンス先頭番地を放
棄して、直ちに優先度の高い例外処理への移行処理を開
始する機能を追加した。
【0059】以下、例外処理への移行中に新たな割り込
み要求が発生した場合の、例外処理シーケンサ112の
機能について説明する。なお、例外処理の優先度は、予
め次の2階級に分類されているものとする。 ・低優先度:ブレイクポイント、トラップ、未定儀命令
・高優先度:割り込み、最優先割り込み、ゼロ除算各優
先度に分類されたそれぞれの例外処理は同時に発生する
ことはなく、それぞれの優先度は等しいものである。ま
た、各命令ごとに一時停止するトレース例外は、優先度
比較から除外される。
み要求が発生した場合の、例外処理シーケンサ112の
機能について説明する。なお、例外処理の優先度は、予
め次の2階級に分類されているものとする。 ・低優先度:ブレイクポイント、トラップ、未定儀命令
・高優先度:割り込み、最優先割り込み、ゼロ除算各優
先度に分類されたそれぞれの例外処理は同時に発生する
ことはなく、それぞれの優先度は等しいものである。ま
た、各命令ごとに一時停止するトレース例外は、優先度
比較から除外される。
【0060】機能が追加された例外処理シーケンサ11
2の状態遷移を図6に示す。図6は、図3で示した状態
遷移中のステップ6の状態が追加設定されている。同図
を参照しながら、例外処理シーケンサ112による優先
度の比較について説明する。
2の状態遷移を図6に示す。図6は、図3で示した状態
遷移中のステップ6の状態が追加設定されている。同図
を参照しながら、例外処理シーケンサ112による優先
度の比較について説明する。
【0061】ステップ6までは図3と同様に処理され、
命令キュー140にデータが格納される時点で、新たに
例外処理要求が発生していないかをチェックする。新た
に例外処理が要求されている場合、現在移行処理中の例
外処理との優先度の度合いによって処理が異なる。
命令キュー140にデータが格納される時点で、新たに
例外処理要求が発生していないかをチェックする。新た
に例外処理が要求されている場合、現在移行処理中の例
外処理との優先度の度合いによって処理が異なる。
【0062】現在移行中の例外処理の優先度の方が高い
か、優先度が等しい場合は、そのまま現在の例外処理へ
の移行を進めるため、ステップ7に遷移する。トレース
例外の場合も、ステップ7に遷移する。
か、優先度が等しい場合は、そのまま現在の例外処理へ
の移行を進めるため、ステップ7に遷移する。トレース
例外の場合も、ステップ7に遷移する。
【0063】新たに要求されている例外処理の優先度が
高い場合は、取得した例外処理ルーチン開始アドレスを
放棄して、新たな例外処理要求を受け付け、新たな例外
処理の例外処理番号を内部レジスタに保持する。新たに
受け付けた例外処理が割り込みの場合はステップ2へ、
割り込み以外の場合はステップ4へ遷移する。
高い場合は、取得した例外処理ルーチン開始アドレスを
放棄して、新たな例外処理要求を受け付け、新たな例外
処理の例外処理番号を内部レジスタに保持する。新たに
受け付けた例外処理が割り込みの場合はステップ2へ、
割り込み以外の場合はステップ4へ遷移する。
【0064】ステップ7以降の処理は、図3と同様の処
理である。移行処理終了後、実行部120がデータアク
セス制御部131に転送する復帰アドレスとしては、ブ
レイクポイント例外、トラップ、未定儀命令では、プロ
グラムカウンタをインクリメントした値を退避する。こ
れにより、例外処理から復帰後は、例外処理要求の発生
した命令の次の命令から処理が開始される。
理である。移行処理終了後、実行部120がデータアク
セス制御部131に転送する復帰アドレスとしては、ブ
レイクポイント例外、トラップ、未定儀命令では、プロ
グラムカウンタをインクリメントした値を退避する。こ
れにより、例外処理から復帰後は、例外処理要求の発生
した命令の次の命令から処理が開始される。
【0065】一方、ゼロ除算、割り込み、最優先割り込
みでは、インクリメントする前のプログラムカウンタ値
を退避する。これにより、例外処理から復帰後は、例外
処理要求の発生によってデコードが抑止された命令が再
度フェッチされ、処理が行われる。
みでは、インクリメントする前のプログラムカウンタ値
を退避する。これにより、例外処理から復帰後は、例外
処理要求の発生によってデコードが抑止された命令が再
度フェッチされ、処理が行われる。
【0066】図7に、ブレイクポイント例外処理への移
行中に、割り込み要求が発生した場合の各ブロックの動
作タイミング図を示す。図5と同様に、命令Aにブレイ
クポイントが設定されているものとする。命令Aのデコ
ードによって、ブレイクポイント例外が要求され、ブレ
イクポイント例外処理への移行が開始される。その後、
新たな割り込み要求が発生するものとする。ブレイクポ
イント例外処理への移行途中で、例外テーブルを読み出
した後、新たな割り込み要求が発生していることを認識
する。
行中に、割り込み要求が発生した場合の各ブロックの動
作タイミング図を示す。図5と同様に、命令Aにブレイ
クポイントが設定されているものとする。命令Aのデコ
ードによって、ブレイクポイント例外が要求され、ブレ
イクポイント例外処理への移行が開始される。その後、
新たな割り込み要求が発生するものとする。ブレイクポ
イント例外処理への移行途中で、例外テーブルを読み出
した後、新たな割り込み要求が発生していることを認識
する。
【0067】ブレイクポイント例外要求より、新たな割
り込み要求のほうが優先度が高いので、ブレイクポイン
ト例外への移行はこの時点で中止され、直ちに新たな割
り込み例外処理への移行が開始される。図5で示したタ
イミングと比較すると、新たな割り込み例外処理が開始
されるまでの時間が短縮されていることがわかる。
り込み要求のほうが優先度が高いので、ブレイクポイン
ト例外への移行はこの時点で中止され、直ちに新たな割
り込み例外処理への移行が開始される。図5で示したタ
イミングと比較すると、新たな割り込み例外処理が開始
されるまでの時間が短縮されていることがわかる。
【0068】このように、例外処理シーケンサ112に
機能を追加することにより、例外処理への移行途中でよ
り優先度の高い例外処理要求を受け付け、優先度の高い
例外処理への移行を行うことが可能である。これにより
、例えばブレイクポイント例外処理への移行中に割り込
み要求が発生した場合でも、ブレイクポイント例外処理
への移行が終了するのを待つ必要はなく、途中で割り込
み要求が受け付けられ、割り込み応答時間の短縮が実現
できる。また、例外処理への移行途中で高優先度の例外
処理受け付けのために放棄された低優先度の例外処理は
、高優先度の例外処理から復帰後に再度デコードされ要
求されるので、要求が失われることはない。
機能を追加することにより、例外処理への移行途中でよ
り優先度の高い例外処理要求を受け付け、優先度の高い
例外処理への移行を行うことが可能である。これにより
、例えばブレイクポイント例外処理への移行中に割り込
み要求が発生した場合でも、ブレイクポイント例外処理
への移行が終了するのを待つ必要はなく、途中で割り込
み要求が受け付けられ、割り込み応答時間の短縮が実現
できる。また、例外処理への移行途中で高優先度の例外
処理受け付けのために放棄された低優先度の例外処理は
、高優先度の例外処理から復帰後に再度デコードされ要
求されるので、要求が失われることはない。
【0069】今回の応用例では、例外処理の優先度の比
較を、例外処理ルーチンの先頭アドレスを取得した時点
で行っているが、このタイミングに限ったものではなく
、任意の時刻に行えるものである。また、比較する回数
も複数回行っても差し支えないものである。
較を、例外処理ルーチンの先頭アドレスを取得した時点
で行っているが、このタイミングに限ったものではなく
、任意の時刻に行えるものである。また、比較する回数
も複数回行っても差し支えないものである。
【0070】なお、この発明は、上記の実施例および応
用例に示される構成に限定されるものではない。例えば
、今回の実施例では、例外処理シーケンサ112は通常
命令デコードのためのデコードシーケンサ114とは独
立に構成したが、これを1つに統合しても同様の効果を
得ることができる。この場合、通常命令デコード中に例
外処理を受け付けると、どの状態にいても例外処理シー
ケンスの最初の状態に遷移し、以後例外処理への移行を
行うことで実現できる。あるいは例外処理要求が発生す
ると、デコード状態遷移は直ちに初期状態に戻り、ここ
から例外処理への移行処理に入ってもよい。
用例に示される構成に限定されるものではない。例えば
、今回の実施例では、例外処理シーケンサ112は通常
命令デコードのためのデコードシーケンサ114とは独
立に構成したが、これを1つに統合しても同様の効果を
得ることができる。この場合、通常命令デコード中に例
外処理を受け付けると、どの状態にいても例外処理シー
ケンスの最初の状態に遷移し、以後例外処理への移行を
行うことで実現できる。あるいは例外処理要求が発生す
ると、デコード状態遷移は直ちに初期状態に戻り、ここ
から例外処理への移行処理に入ってもよい。
【0071】また、プログラムカウンタは、今回の実施
例ではデータパス121中に設けられているが、フェッ
チ制御部132中に設けてもよいものである。さらに、
デコードと命令実行を1つのシーケンサで制御するよう
なプロセッサにしても、例外処理シーケンサ112を通
常命令処理シーケンサと独立させることによって、同様
な効果を得ることができる。
例ではデータパス121中に設けられているが、フェッ
チ制御部132中に設けてもよいものである。さらに、
デコードと命令実行を1つのシーケンサで制御するよう
なプロセッサにしても、例外処理シーケンサ112を通
常命令処理シーケンサと独立させることによって、同様
な効果を得ることができる。
【0072】
【発明の効果】以上、説明したように、この発明の情報
処理装置によれば、例外処理発生と同時に直ちにこれを
認識し、現実行命令の処理と並行して所定の例外処理へ
の移行処理を行うことができる。また、新たに発生した
例外処理の優先度が、現在移行処理を実行中の例外処理
よりも高い場合、優先度の高い例外処理の移行処理を直
ちに開始することが可能である。
処理装置によれば、例外処理発生と同時に直ちにこれを
認識し、現実行命令の処理と並行して所定の例外処理へ
の移行処理を行うことができる。また、新たに発生した
例外処理の優先度が、現在移行処理を実行中の例外処理
よりも高い場合、優先度の高い例外処理の移行処理を直
ちに開始することが可能である。
【0073】これらにより、極めて高速の割り込み応答
が実現できると共に、現在実行中の命令動作にはいっさ
い影響を与えないため、非常に信頼性の高い例外処理へ
の移行が可能となる。
が実現できると共に、現在実行中の命令動作にはいっさ
い影響を与えないため、非常に信頼性の高い例外処理へ
の移行が可能となる。
【図1】この発明の情報処理装置に係わる一実施例の構
成を示すブロック図である。
成を示すブロック図である。
【図2】一般命令実行時の各ブロックの動作を示すタイ
ミング図である。
ミング図である。
【図3】例外処理への移行の状態遷移図である。
【図4】例外処理発生時の各ブロックの動作を示すタイ
ミング図である。
ミング図である。
【図5】新たな割り込み発生時の各ブロックの動作を示
すタイミング図である。
すタイミング図である。
【図6】新たな割り込み発生時の応用例による例外処理
への移行の状態遷移図である。
への移行の状態遷移図である。
【図7】新たな割り込み発生時の応用例による各ブロッ
クの処理を示すタイミング図である。
クの処理を示すタイミング図である。
【図8】例外処理を行う従来の情報処理装置の構成を示
すブロック図である。
すブロック図である。
【図9】従来の例外処理発生時の各ブロックの動作を示
すタイミング図である。
すタイミング図である。
110 デコーダ
111 例外処理起動部
112 例外処理シーケンサ
113 命令レジスタ
114 デコードシーケンサ
115 制御信号生成部
120 実行部
121 データパス
122 実行シーケンサ
130 メモリ制御部
131 データアクセス制御部
132 フェッチ制御部
140 命令キュー
Claims (3)
- 【請求項1】 通常命令の実行を制御する命令実行シ
ーケンサと、前記命令実行シーケンサと独立して動作し
、例外処理への移行処理を制御する例外処理シーケンサ
と、例外処理要求の発生を直ちに認識して、前記例外処
理シーケンサを起動する例外処理起動手段とを備え、例
外処理要求発生と同時に、通常命令の実行と並行して例
外処理への移行処理を行うことを特徴とする情報処理装
置。 - 【請求項2】 前記例外処理への移行手順として、割
り込みベクタの取得、例外処理ルーチンの先頭番地の取
得、例外処理ルーチン命令列のフェッチ開始のうち、少
なくとも1つを含むことを特徴とする請求項1記載の情
報処理装置。 - 【請求項3】 前記例外処理シーケンサは、例外処理
への移行処理の途中の任意の時刻に、新たな例外処理要
求が発生している場合に、現在移行処理中の例外処理と
新たに要求が発生している例外処理との優先度の比較を
行い、新たな例外処理要求の優先度が現在移行処理中の
例外処理の優先度よりも高い場合、現在処理中の例外処
理への移行処理を放棄し、優先度の高い新たな例外処理
への移行処理を制御することを特徴とする請求項1記載
の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3067266A JPH04213120A (ja) | 1990-11-20 | 1991-03-29 | 情報処理装置 |
US07/857,419 US5390305A (en) | 1991-03-29 | 1992-03-26 | Information processing apparatus capable of executing exception at high speed |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2-312901 | 1990-11-20 | ||
JP31290190 | 1990-11-20 | ||
JP3067266A JPH04213120A (ja) | 1990-11-20 | 1991-03-29 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04213120A true JPH04213120A (ja) | 1992-08-04 |
Family
ID=26408446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3067266A Pending JPH04213120A (ja) | 1990-11-20 | 1991-03-29 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04213120A (ja) |
-
1991
- 1991-03-29 JP JP3067266A patent/JPH04213120A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5233691A (en) | Register window system for reducing the need for overflow-write by prewriting registers to memory during times without bus contention | |
US4747045A (en) | Information processing apparatus having an instruction prefetch circuit | |
US5390305A (en) | Information processing apparatus capable of executing exception at high speed | |
JPH07120338B2 (ja) | 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ | |
JPS62115542A (ja) | 情報処理装置 | |
EP0385136B1 (en) | Microprocessor cooperating with a coprocessor | |
JP2710994B2 (ja) | データ処理装置 | |
EP0806723A2 (en) | Method and apparatus for handling multiple precise events in a pipelined digital processor | |
JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
JPH04213120A (ja) | 情報処理装置 | |
JPS6049337B2 (ja) | パイプライン制御方式 | |
JPH0377137A (ja) | 情報処理装置 | |
JPH04288625A (ja) | マイクロコンピュータ | |
JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
JP2808757B2 (ja) | デバッグ用マイクロプロセッサ | |
KR950004227B1 (ko) | 정보처리시스템 | |
JP2586690B2 (ja) | 命令プリフェッチ装置 | |
JPS6022768B2 (ja) | デ−タ処理方法 | |
JPS61133439A (ja) | 命令先取り制御方式 | |
JP2636074B2 (ja) | マイクロプロセッサ | |
JPH02183333A (ja) | データ処理装置 | |
JPH03164945A (ja) | データ処理装置 | |
JPH05250161A (ja) | マイクロコンピュータ装置 | |
JPH04239919A (ja) | 情報処理装置 |