JP2001125804A - 割り込み処理制御装置および方法 - Google Patents

割り込み処理制御装置および方法

Info

Publication number
JP2001125804A
JP2001125804A JP30959899A JP30959899A JP2001125804A JP 2001125804 A JP2001125804 A JP 2001125804A JP 30959899 A JP30959899 A JP 30959899A JP 30959899 A JP30959899 A JP 30959899A JP 2001125804 A JP2001125804 A JP 2001125804A
Authority
JP
Japan
Prior art keywords
interrupt
break
instruction
state
normal
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
Application number
JP30959899A
Other languages
English (en)
Inventor
Hideo Miyake
英雄 三宅
Atsuhiro Suga
敦浩 須賀
Yasuki Nakamura
泰基 中村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP30959899A priority Critical patent/JP2001125804A/ja
Priority to US09/678,732 priority patent/US6681280B1/en
Priority to EP00309397A priority patent/EP1096386A3/en
Priority to EP10178418A priority patent/EP2273377B1/en
Priority to KR1020000063082A priority patent/KR100715704B1/ko
Publication of JP2001125804A publication Critical patent/JP2001125804A/ja
Priority to US10/692,800 priority patent/US7581090B2/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 割り込み処理動作直後と割り込み復帰直前の
割り込み禁止期間でも、ブレーク割り込みを発生できる
ようにする。 【解決手段】 通常割り込み発生時には通常割り込み発
生前のプロセッサの動作情報を通常復帰アドレスレジス
タ52、通常元状態レジスタ53、通常要因レジスタ5
4に保持し、ブレーク割り込み発生時にはブレーク割り
込み発生前のプロセッサの動作情報を別のブレーク復帰
アドレスレジスタ55に保持することにより、通常割り
込みによる割り込み禁止期間中でもブレーク割り込みを
発生できるようにする。また、ブレーク割り込み発生時
にその旨をフラグレジスタ56に設定することにより、
割り込み復帰命令の実行時にフラグレジスタ56を参照
することで、ブレーク割り込み発生前の動作情報あるい
は通常割り込み発生前の動作情報を正しく復元できるよ
うにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、割り込み処理制御
装置および方法に関し、特に、ブレーク割り込み機能を
有する割り込み処理制御装置に用いて好適なものであ
る。
【0002】
【従来の技術】従来、スーパー・コンピュータ、汎用
機、ワークステーションといった分野で高性能なプロセ
ッサが利用されている。さらに、最近では、必要とされ
る処理能力の増加等の理由から、組み込み機器の分野で
も高性能なプロセッサが利用されるようになってきた。
このプロセッサは割り込み処理機能を持ち、割り込みが
発生すると、割り込み処理のプログラムである割り込み
ハンドラの指示に従って割り込み処理を行う。
【0003】スーパー・コンピュータ、汎用機、ワーク
ステーションといった分野でプロセッサが利用されてい
るときには、割り込みハンドラは、一般にシステム・プ
ログラムの一部として提供される。それに対し、組み込
み機器の分野でプロセッサを利用するときには、適用ア
プリケーションの一部として、割り込みハンドラをユー
ザが独自に作成することが多い。したがって、割り込み
ハンドラを独自に作成した場合には、アプリケーション
・プログラムだけでなく、割り込みハンドラ自体もデバ
ッグの対象となる。
【0004】また、プロセッサはプログラムのデバッグ
等を支援する有効な機能として、命令ブレークポイン
ト、データ・ブレークポイント、ソフトウェア・ブレー
クポイント、ステップ実行といった各種の割り込み機能
を有している。以下、命令ブレークポイント、データ・
ブレークポイント、ソフトウェア・ブレークポイント、
ステップ実行による割り込みを総称して「ブレーク割り
込み」と呼び、このブレーク割り込み以外の割り込みを
「通常割り込み」と呼んで両者を区別する。
【0005】上記命令ブレークポイントによる割り込み
は、割り込みを発生させたい命令のアドレス(命令ブレ
ークアドレス)をレジスタに設定し、このレジスタに設
定した命令ブレークアドレスと現実に実行した命令の命
令アドレスとが一致したときに発生する割り込みであ
る。また、上記データ・ブレークポイントによる割り込
みは、割り込みを発生させたいデータのアドレス(デー
タ・ブレークアドレス)をレジスタに設定し、このレジ
スタに設定したデータ・ブレークアドレスと、ロード命
令あるいはストア命令でアクセスしたデータのアドレス
とが一致したときに発生する割り込みである。
【0006】また、上記ソフトウェア・ブレークポイン
トによる割り込みは、割り込みを発生させるブレークポ
イント命令をプログラム中の任意の場所に挿入し、プロ
グラム・カウンタの進行に従ってプログラムを順次実行
している中で、ブレークポイント命令を実行することに
より発生する割り込みである。また、上記ステップ実行
による割り込みは、プログラムの一命令を実行する毎に
発生させるようにした割り込みである。
【0007】上述のようなブレーク割り込み機能を利用
することで、プログラムの実行を中断してレジスタやメ
モリに記憶されている演算結果等を確認することを繰り
返し、プログラムのデバッグが行われる。
【0008】図13は、プロセッサの割り込み発生時に
おける状態遷移の一例を示す図である。図13におい
て、301はプロセッサのユーザ状態(割り込みが発生
していない通常の動作状態)を示し、302はプロセッ
サのスーパーバイザ状態(割り込み等による特権命令の
実行状態)を示す。プロセッサが通常のアプリケーショ
ンを処理しているときは、プロセッサの状態はユーザ状
態301である。ユーザ状態301で、ブレーク割り込
みあるいは通常割り込みのいずれかの割り込み303が
発生すると、プロセッサはスーパーバイザ状態302に
遷移する。このスーパーバイザ状態302で割り込み復
帰命令304を実行すると、プロセッサはユーザ状態3
01に復帰する。
【0009】図14は、プロセッサの割り込み発生時に
おける状態遷移の他の例を示す図である。図14におい
て、311はプロセッサのユーザ状態を示し、312、
313、314はプロセッサのスーパーバイザ状態を示
す。プロセッサが通常のアプリケーションを処理してい
るときは、プロセッサの状態はユーザ状態311である
とする。ユーザ状態311で、ブレーク割り込みあるい
は通常割り込みのいずれかの割り込み315が発生する
と、プロセッサはスーパーバイザ状態312に遷移す
る。
【0010】スーパーバイザ状態312で割り込み復帰
命令316を実行すると、プロセッサはユーザ状態31
1に復帰する。しかし、割り込み復帰命令316が実行
される前に、スーパーバイザ状態312で再びブレーク
割り込みあるいは通常割り込みのいずれかの割り込み3
17が発生すると、プロセッサは他のスーパーバイザ状
態313に遷移する。このスーパーバイザ状態313で
割り込み復帰命令318を実行すると、プロセッサは元
のスーパーバイザ状態312に復帰する。
【0011】以下に、図14を用いて、割り込みが発生
することによりプロセッサの状態がユーザ状態311→
スーパーバイザ状態312→ユーザ状態311と遷移す
る場合を例にとって割り込み処理制御について説明す
る。
【0012】まず、ユーザ状態311でブレーク割り込
みあるいは通常割り込みのいずれかの割り込み315が
発生すると、プロセッサは、割り込み発生時のプログラ
ム・カウンタの値、プロセッサの状態および発生した割
り込みの要因等の情報をレジスタに書き込み、割り込み
発生前のプロセッサの動作情報を退避させる。そして、
プロセッサはスーパーバイザ状態312に遷移し、アプ
リケーション・プログラムから割り込みハンドラに処理
を移行する。
【0013】割り込みハンドラの処理に移行した直後、
すなわち割り込み処理動作直後は、プログラム・カウン
タの値、プロセッサの状態および発生した割り込みの要
因を書き込んだレジスタへの再書き込みが禁止されるこ
とにより、新規の割り込み発生が禁止される。そして、
ある程度割り込み処理動作が進むと、プログラム・カウ
ンタの値、プロセッサの状態および発生した割り込みの
要因を書き込んだレジスタへの再書き込みが許可され、
新規の割り込み発生(例えば、割り込み317)が許可
される。
【0014】また、スーパーバイザ状態312で割り込
みハンドラの処理がほぼ終了し、割り込み復帰命令31
6が実行されると、プロセッサは割り込み発生前のユー
ザ状態311へ復帰する。このとき、割り込み発生時に
レジスタに書き込んでおいたプログラム・カウンタの
値、プロセッサの状態等の情報に基づいて、割り込み発
生前のプロセッサの動作情報を復元することにより、割
り込み発生前と同じユーザ状態311に復帰する。
【0015】そのため、この割り込み復帰直前において
もこれらのレジスタへの書き込みは禁止となり、新規の
割り込み発生は禁止される。その後、プロセッサの割り
込み復帰が終了すると、プログラム・カウンタの値、プ
ロセッサの状態、割り込み発生の要因を書き込んだレジ
スタへの再書き込みが許可され、新規の割り込み発生が
許可される。
【0016】
【発明が解決しようとする課題】上述のように、従来の
割り込み処理制御装置では、割り込みが発生すると、プ
ロセッサの動作情報を書き込むレジスタは割り込み動作
直後と割り込み復帰直前に書き込み禁止となる。そのた
め、割り込み動作直後と割り込み復帰直前には、新規の
割り込みの発生が禁じられる割り込み禁止期間が存在す
る。また、プロセッサは、ブレーク割り込みと通常割り
込みの区別なく、割り込み発生前のプロセッサの動作情
報を同じレジスタに書き込む。したがって、上記割り込
み禁止期間の存在により、通常割り込みが発生した直後
やその復帰直前にはブレーク割り込みを発生させること
ができず、そのため割り込みハンドラを完全にデバッグ
することができないという問題があった。
【0017】本発明は、このような問題を解決するため
に成されたものであり、上記割り込み禁止期間であって
もブレーク割り込みを発生できるようにすることを目的
としている。
【0018】
【課題を解決するための手段】本発明による割り込み処
理制御装置は、通常割り込みの機能とブレーク割り込み
の機能とを有する割り込み処理制御装置であって、上記
通常割り込みの発生時にその割り込み発生前のプロセッ
サの動作情報を保持する第1の情報保持手段と、上記ブ
レーク割り込みの発生時にその割り込み発生前のプロセ
ッサの動作情報を保持する第2の情報保持手段と、割り
込み動作からの復帰時に通常割り込み状態からの復帰動
作かブレーク割り込み状態からの復帰動作かを特定する
ための復帰動作特定手段と、上記復帰動作特定手段によ
り特定される動作内容に従って、上記第1の情報保持手
段に保持されている動作情報または上記第2の情報保持
手段に保持されている動作情報を再設定することによ
り、割り込み動作状態から割り込み発生前の状態に上記
プロセッサの状態を復帰させる割り込み復帰手段とを備
えることを特徴とする。
【0019】また、本発明の割り込み処理制御方法は、
通常割り込み発生時には当該通常割り込み発生前のプロ
セッサの動作情報を第1の情報保持手段に保持し、ブレ
ーク割り込み発生時には当該ブレーク割り込み発生前の
上記プロセッサの動作情報を上記第1の情報保持手段と
は異なる第2の情報保持手段に保持するとともに、ブレ
ーク割り込み状態か否かを示すフラグをブレーク割り込
み状態に設定し、割り込み状態から割り込み発生前の状
態に上記プロセッサを復帰させる際には、上記フラグの
値に応じて上記第1の情報保持手段の動作情報または上
記第2の情報保持手段の動作情報のいずれかを選択して
復元するようにしたことを特徴とする。
【0020】上記のように構成した本発明によれば、ブ
レーク割り込み発生時には、ブレーク割り込み発生前の
プロセッサの動作情報が、通常割り込み用とは別に設け
たブレーク割り込み専用の保持手段に退避される。そし
て、ブレーク割り込みからの復帰時には、ブレーク割り
込み発生前のプロセッサの動作情報が上記ブレーク割り
込み専用の保持手段から復元される。これにより、通常
割り込み状態から復帰する際に必要となる通常割り込み
発生前の動作情報が、ブレーク割り込み発生時に退避さ
れる動作情報によって上書きされることもなく、通常割
り込みによる割り込み禁止期間にあっても、ブレーク割
り込みを発生できるようになる。
【0021】
【発明の実施の形態】以下に、本発明の一実施形態を図
面に基づいて説明する。図1は、第1の実施形態による
割り込み処理制御装置を適用したプロセッサの一構成例
を示すブロック図である。図1において、10はメモリ
であり、アプリケーションや割り込みハンドラ等のプロ
グラムを格納している。20は命令フェッチ部、30は
命令実行部、40は割り込み制御部、50はレジスタ部
である。
【0022】上記命令フェッチ部20は、命令フェッチ
コントローラ21とプログラム・カウンタ22と命令語
レジスタ23とを備えている。上記命令フェッチコント
ローラ21は、プログラム・カウンタ22が示す命令ア
ドレス71に基づき、メモリ10から命令語72を読み
出し、読み出した命令語を命令語レジスタ23に書き込
み保持する。さらに、命令フェッチ部20は、上記命令
語レジスタ23が保持する命令語73を命令実行部30
に供給する。
【0023】この命令フェッチ部20は、命令実行部3
0より分岐先の命令アドレス74または割り込み状態か
ら復帰する命令アドレス75が供給されたとき、あるい
は割り込み制御部40より通常割り込みハンドラの命令
アドレス76またはブレーク割り込みハンドラの命令ア
ドレス77が供給されたときには、その供給された命令
アドレスをプログラム・カウンタ22に書き込む。それ
以外の場合は、次の命令語を順次読み出すべくプログラ
ム・カウンタ22の値をインクリメントする。
【0024】また、上記命令フェッチコントローラ21
は、命令語72をメモリ10から読み出すとき、命令ブ
レークポイント、ステップ実行によるブレーク割り込み
を検出した場合は、当該ブレーク割り込みが発生した旨
をブレーク割り込み通知信号78によって割り込み制御
部40に通知する。また、命令アドレスの変換エラー等
による通常割り込みを検出した場合は、当該通常割り込
みが発生した旨を通常割り込み通知信号79によって割
り込み制御部40に通知する。
【0025】命令実行部30は、命令語デコーダ31と
命令実行コントローラ32とブレークポイントコントロ
ーラ33と割り込み復帰コントローラ34とを備えてい
る。上記命令語デコーダ31は、命令フェッチ部20か
ら供給された命令語73をデコードする。
【0026】その結果、供給された命令語73が、ソフ
トウェア・ブレークポイントによりブレーク割り込みを
発生させる命令語であったときには、ブレークポイント
コントローラ33にブレーク割り込み発生命令を供給す
る。また、供給された命令語73がプロセッサを割り込
み状態から復帰させる命令語であったときには、割り込
み復帰コントローラ34に割り込み復帰命令を供給す
る。供給された命令語73が、それ以外の命令語であっ
た場合には、命令実行コントローラ32にデコードした
命令を供給する。
【0027】命令実行コントローラ32は、命令語デコ
ーダ31から供給された命令の指示に従い、演算、分
岐、データのロード/ストア等の処理を実行する。例え
ば、供給された命令が演算命令であったときは、レジス
タアドレス80で指定するレジスタ部50内の汎用レジ
スタ(GR)51から読み出したデータ値81に基づい
て、演算を実行し、その演算の結果得られたデータ値8
2をレジスタアドレス80で指定する汎用レジスタ51
に書き込む。
【0028】また、供給された命令が分岐命令であっ
て、分岐条件が成立したときには、分岐先の命令アドレ
ス74を命令フェッチ部20に供給する。また、供給さ
れた命令がロード命令あるいはストア命令であったとき
には、レジスタアドレス80で指定する汎用レジスタ5
1から読み出したデータ値81からメモリ10上の実効
アドレスを求め、その実効アドレスに対応したメモリ1
0の領域に対して、リードデータ83の読み出し、ある
いはライトデータ84の書き込みを行う。
【0029】また、命令実行コントローラ32は、デー
タ・ブレークポイントによるブレーク割り込みを検出し
た場合は、当該ブレーク割り込みが発生した旨をブレー
ク割り込み通知信号85によって割り込み制御部40に
通知する。また、演算命令等を実行するとき、ゼロによ
る除算、データオーバーフロー等のエラーによる通常割
り込みを検出した場合は、当該通常割り込みが発生した
旨を通常割り込み通知信号86によって割り込み制御部
40に通知する。
【0030】ブレークポイントコントローラ33は、命
令語デコーダ31から供給されたブレーク割り込み発生
命令の指示に従い、ブレーク割り込みが発生した旨をブ
レーク割り込み通知信号87によって割り込み制御部4
0に通知する。
【0031】また、割り込み復帰コントローラ34は、
命令語デコーダ31から供給された割り込み復帰命令に
従い、割り込み状態からの復帰動作を実行する。このと
き、割り込み復帰コントローラ34は、レジスタ部50
に備えているレジスタに保持している割り込み発生前の
動作情報に基づいて、通常割り込み状態からの復帰動作
かブレーク割り込み状態からの復帰動作かを特定し、割
り込み発生前の動作情報を復元する。
【0032】割り込み制御部40は、通常割り込みコン
トローラ41とブレーク割り込みコントローラ42とを
備えている。上記通常割り込みコントローラ41は、命
令フェッチ部20から通常割り込み通知信号79を受信
したとき、または命令実行部30から通常割り込み通知
信号86を受信したときに、命令フェッチ部20、レジ
スタ部50を制御して通常割り込み状態への移行動作を
実行する。
【0033】通常割り込みコントローラ41は、通常割
り込み通知信号79、86を受信すると、命令フェッチ
部20から通常割り込み発生時の命令アドレス88を読
み出し、通常割り込みハンドラの先頭アドレス76を命
令フェッチ部20に供給し、そのアドレスをプログラム
・カウンタ22にセットする。また、レジスタ部50内
のレジスタに上記受信した通常割り込みに関する情報、
例えば通常割り込み発生時の命令アドレス等の情報を書
き込む処理を行う。
【0034】また、ブレーク割り込みコントローラ42
は、命令フェッチ部20からブレーク割り込み通知信号
78を受信したとき、または命令実行部30から何れか
のブレーク割り込み通知信号85、87を受信したとき
に、命令フェッチ部20、レジスタ部50を制御してブ
レーク割り込み状態への移行動作を実行する。
【0035】ブレーク割り込みコントローラ42は、ブ
レーク割り込み通知信号78、85、87を受信する
と、命令フェッチ部20からブレーク割り込み発生時の
命令アドレス89を読み込み、ブレーク割り込みハンド
ラの先頭アドレス77を命令フェッチ部20に供給し、
そのアドレスをプログラム・カウンタ22にセットす
る。また、レジスタ部50内のレジスタに上記受信した
ブレーク割り込みに関する情報、例えばブレーク割り込
み発生時の命令アドレス等の情報を書き込む処理を行
う。
【0036】レジスタ部50は、上記命令実行部30の
演算などに使用するデータを保持する汎用レジスタ51
と、以下に示す割り込み制御に使用するデータを保持す
るレジスタ52〜57とを含む。以下に、割り込み制御
用のレジスタ52〜57について説明する。
【0037】52は通常割り込み状態から復帰する元の
命令アドレス(通常割り込み発生時におけるプログラム
・カウンタ22の値88)を保持する通常復帰アドレス
レジスタ(EPCR)、53は通常割り込み発生前のプ
ロセッサの状態(ユーザ状態、スーパーバイザ状態な
ど)を保持する通常元状態レジスタ(EPSR)、54
は発生した通常割り込みの要因を保持する通常要因レジ
スタ(ECR)であり、これらのレジスタ52〜54の
値は何れも通常割り込み発生時に設定される。これらの
通常復帰アドレスレジスタ52、通常元状態レジスタ5
3、通常要因レジスタ54は、本発明の第1の情報保持
手段を構成する。
【0038】55はブレーク割り込み状態から復帰する
元の命令アドレス(ブレーク割り込み発生時におけるプ
ログラム・カウンタ22の値89)を保持するブレーク
復帰アドレスレジスタ(BEPCR)であり、その値は
ブレーク割り込み発生時に設定される。このブレーク復
帰アドレスレジスタ55は、本発明の第2の情報保持手
段を構成する。なお、上記通常復帰アドレスレジスタ5
2およびブレーク復帰アドレスレジスタ55に設定され
た命令アドレスは、割り込み動作からの復帰時に復帰ア
ドレス75として命令フェッチ部20に供給され、その
値がプログラム・カウンタ22にセットされる。
【0039】56はブレーク割り込み状態か否かを示す
フラグレジスタ(BE)であり、その値が“0”のとき
は非ブレーク割り込み状態であることを示し、値が
“1”のときはブレーク割り込み状態であることを示
す。このフラグレジスタ56の初期値は“0”で、ブレ
ーク割り込み発生時は値が“0”から“1”に遷移し、
ブレーク割り込み状態から復帰するときには値が“1”
から“0”に遷移する。このフラグレジスタ56は、本
発明の復帰動作特定手段を構成する。また、57は現在
のプロセッサの状態を保持する現状態レジスタ(PS
R)である。
【0040】図2は、本実施形態によるプロセッサの状
態遷移の一例を示す図である。図2において、201は
通常割り込みもブレーク割り込みも発生していないユー
ザ状態(以下、通常状態と呼ぶ)を示し、202はスー
パーバイザ状態でかつブレーク割り込みが発生していな
い状態(以下、通常割り込み状態と呼ぶ)を示す。ま
た、203、204はスーパーバイザ状態でかつブレー
ク割り込みが発生している状態(以下、ブレーク割り込
み状態と呼ぶ)を示す。プロセッサが通常のアプリケー
ションを処理しているときは、プロセッサの状態は通常
状態201である。
【0041】通常状態201で通常割り込み211が発
生すると、プロセッサは通常割り込み状態202に遷移
する。この通常割り込み状態202で通常割り込み復帰
命令212を実行すると、プロセッサは通常状態201
に復帰する。また、通常状態201または通常割り込み
状態202でブレーク割り込み213、215が発生す
ると、プロセッサはそれぞれブレーク割り込み状態20
3、204に遷移する。そして、このブレーク割り込み
状態203、204でブレーク割り込み復帰命令21
4、216を実行すると、プロセッサはそれぞれブレー
ク割り込み発生前の状態である通常状態201または通
常割り込み状態202に復帰する。
【0042】図3は、本実施形態によるプロセッサの状
態遷移の他の例を示す図である。図3において、250
はプロセッサの通常状態を示し、251、252、25
3はプロセッサの通常割り込み状態を示す。また、25
4、255、256、257はプロセッサのブレーク割
り込み状態を示す。プロセッサが通常のアプリケーショ
ンを処理しているときは、プロセッサの状態は通常状態
250である。
【0043】通常状態250で通常割り込み261が発
生すると、プロセッサは通常割り込み状態251に遷移
する。この通常割り込み状態251で通常割り込み復帰
命令262を実行すると、プロセッサは通常状態250
に復帰する。一方、上記通常割り込み状態251で通常
割り込み復帰命令262を実行する前に、さらに通常割
り込み265が発生すると、プロセッサは通常割り込み
状態251から次の通常割り込み状態252に遷移す
る。そして、この通常割り込み状態252で通常割り込
み復帰命令266を実行すると、プロセッサは元の通常
割り込み状態251に復帰する。
【0044】また、上記通常状態250ならびに通常割
り込み状態251、252、253でブレーク割り込み
263、267、269、271が発生すると、プロセ
ッサはそれぞれブレーク割り込み状態254、255、
256、257に遷移する。そして、このブレーク割り
込み状態254、255、256、257でブレーク割
り込み復帰命令264、268、270、272が実行
されると、プロセッサはブレーク割り込み発生前の元の
通常状態250ならびに通常割り込み状態251、25
2、253にそれぞれ復帰する。
【0045】次に、図1に示す割り込み処理制御装置の
動作を、図2に示すプロセッサの状態遷移で通常状態2
01→通常割り込み状態202→ブレーク割り込み状態
204→通常割り込み状態202→通常状態201と状
態が遷移するときを例にとって説明する。
【0046】プロセッサが通常状態201にあるとき、
図1の命令フェッチコントローラ21は、プログラム・
カウンタ22により示される命令アドレス71に基づ
き、メモリ10から命令語72を読み出し、読み出した
命令語を命令語レジスタ23に書き込み保持する。さら
に、命令フェッチ部20は、命令語レジスタ23が保持
する命令語73を命令実行部30の命令語デコーダ31
に供給する。
【0047】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32またはブレークポイントコントローラ33に命
令を供給する。命令実行コントローラ32またはブレー
クポイントコントローラ33は、供給された命令の指示
に従い処理を実行する。この通常状態201でブレーク
割り込み213あるいは通常割り込み211が発生しな
ければ、プロセッサは以上の動作を繰り返し行う。
【0048】しかし、命令フェッチコントローラ21ま
たは命令実行コントローラ32が通常割り込み211を
検出すると、命令フェッチコントローラ21は通常割り
込み通知信号79により、命令実行コントローラ32は
通常割り込み通知信号86により通常割り込みが発生し
た旨を通常割り込みコントローラ41に通知する。通常
割り込みコントローラ41は、命令フェッチコントロー
ラ21または命令実行コントローラ32から通常割り込
み発生の通知を受信すると、命令フェッチ部20および
レジスタ部50を制御して以下のような処理を行う。
【0049】まず、通常割り込みコントローラ41は、
プログラム・カウンタ22から現在示している命令アド
レス値88を読み出し、読み出した命令アドレス値88
を通常復帰アドレスレジスタ52に書き込む。また、通
常割り込みコントローラ41は、現状態レジスタ57か
ら通常割り込み発生前のプロセッサの状態(通常状態)
を読み出し、読み出したプロセッサの状態を通常元状態
レジスタ53に書き込むとともに、発生した通常割り込
みの要因を通常要因レジスタ54に書き込む。
【0050】次に、通常割り込みコントローラ41は、
発生した通常割り込みに対応して遷移するプロセッサの
状態を現状態レジスタ57に書き込む。また、通常割り
込みコントローラ41は、発生した通常割り込みに対応
する割り込みハンドラの先頭アドレス76を命令フェッ
チ部20に供給し、その値をプログラム・カウンタ22
にセットする。なお、フラグレジスタ56の値は、初期
値の“0”のままである。以上の処理を経て、プロセッ
サは通常状態201から通常割り込み状態202に遷移
する。
【0051】通常割り込み状態202に遷移したプロセ
ッサは、プログラム・カウンタ22にセットされた割り
込みハンドラの先頭アドレス76に従って、当該割り込
みハンドラの命令語72を命令フェッチコントローラ2
1に読み出し、読み出した命令語を命令語レジスタ23
に一旦保持した後、命令語デコーダ31に供給する。
【0052】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32、ブレークポイントコントローラ33、割り込
み復帰コントローラ34の何れかに命令を供給する。そ
して、命令が供給されたコントローラは、供給された命
令の指示に従い処理を実行する。命令実行部30は、通
常割り込み状態202でブレーク割り込み215が発生
しない限り、割り込みハンドラの最終アドレスに向かっ
て順次、供給される命令語73を実行するという動作を
繰り返す。
【0053】しかし、この動作中、命令フェッチコント
ローラ21、命令実行コントローラ32またはブレーク
ポイントコントローラ33がブレーク割り込み215を
検出すると、命令フェッチコントローラ21はブレーク
割り込み通知信号78により、命令実行コントローラ3
2はブレーク割り込み通知信号85により、ブレークポ
イントコントローラ33はブレーク割り込み通知信号8
7によりブレーク割り込みが発生した旨をブレーク割り
込みコントローラ42に通知する。
【0054】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0055】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込むと
ともに、フラグレジスタ56に“1”を書き込む。
【0056】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0057】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、その読み出した命令語73
を命令語デコーダ31に供給する。
【0058】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32または割り込み復帰コントローラ34に命令を
供給する。そして、命令が供給されたコントローラは、
供給された命令の指示に従い処理を実行する。命令実行
部30は、割り込みハンドラの最終アドレスに向かって
順次、供給される命令語73を実行するという動作を繰
り返す。
【0059】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34に割り込み
復帰命令を供給する。
【0060】割り込み復帰コントローラ34は、割り込
み復帰命令が供給されると、レジスタ部50のフラグレ
ジスタ56を参照し、その値がブレーク割り込み状態を
示す“1”であるか否かを判断する。フラグレジスタ5
6の値が“1”の場合は、割り込み復帰コントローラ3
4は命令フェッチ部20およびレジスタ部50を制御し
て以下のような処理を行う。
【0061】まず、割り込み復帰コントローラ34は、
フラグレジスタ56に“0”を書き込む。また、割り込
み復帰コントローラ34は、ブレーク割り込み状態から
復帰する元の命令アドレス75をブレーク復帰アドレス
レジスタ55から読み出して命令フェッチ部20に供給
し、その値をプログラム・カウンタ22にセットする。
【0062】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0063】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34に割り込み
復帰命令を供給する。
【0064】割り込み復帰コントローラ34は、割り込
み復帰命令が供給されると、レジスタ部50のフラグレ
ジスタ56を参照し、その値が“1”であるか否かを判
断する。この場合、フラグレジスタ56の値はブレーク
割り込み状態ではないことを示す“0”であるので、割
り込み復帰コントローラ34は命令フェッチ部20およ
びレジスタ部50を制御して以下のような処理を行う。
【0065】割り込み復帰コントローラ34は、通常元
状態レジスタ53の値を読み出し、その値を現状態レジ
スタ57に書き込む。また、割り込み復帰コントローラ
34は、通常割り込み状態から復帰する元の命令アドレ
ス75を通常復帰アドレスレジスタ52から読み出して
命令フェッチ部20に供給し、その値をプログラム・カ
ウンタ22にセットする。
【0066】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常動作時の命令語72をメモリ10か
ら読み出し、命令語レジスタ23に一旦保持した後、命
令実行部30に供給する。これにより、プロセッサは通
常割り込み状態202から通常状態201に遷移し、命
令実行部30が通常動作に対応したアプリケーションの
残りの処理を実行する。
【0067】以上詳しく説明したように、本実施形態に
よれば、通常割り込み発生時には、通常割り込み状態か
ら復帰する元の命令アドレスを通常復帰アドレスレジス
タ52に書き込む等して通常割り込み発生前のプロセッ
サの動作情報を退避するようにする。また、ブレーク割
り込み発生時には、ブレーク割り込み状態から復帰する
元の命令アドレスをブレーク復帰アドレスレジスタ55
に書き込むことにより、ブレーク割り込み発生前のプロ
セッサの動作情報を退避するようにする。また、ブレー
ク割り込みが発生しているか否かをフラグレジスタ56
に設定し、割り込みからの復帰の際には、このフラグレ
ジスタ56の値を参照することによって、上記2つの復
帰アドレスレジスタ52、55の何れのアドレスを使う
かを決めている。
【0068】これにより、通常割り込み発生による割り
込み動作直後と割り込み復帰直前に通常復帰アドレスレ
ジスタ52、通常元状態レジスタ53、通常要因レジス
タ54への書き込みが禁止される割り込み禁止期間にお
いても、通常復帰アドレスレジスタ52とは別のブレー
ク復帰アドレスレジスタ55にブレーク復帰アドレスを
書き込むことが可能であり、通常割り込みによる割り込
み禁止期間中でもブレーク割り込みを発生させることが
できるようになる。また、割り込み復帰命令を実行する
ときに、フラグレジスタ56の値を参照することによ
り、通常割り込み発生前の動作情報またはブレーク割り
込み発生前の動作情報を正しく復元することができるよ
うになる。
【0069】次に、本発明の第2の実施形態について説
明する。図4は、第2の実施形態による割り込み処理制
御装置の構成例を示すブロック図である。なお、この図
4において、図1に示したブロックと同じブロックには
同一の符号を付し、重複する説明は省略する。図4に示
す第2の実施形態では、図1に示した各レジスタ51〜
57に加えて、ブレーク割り込み発生前のプロセッサの
状態を保持するブレーク元状態レジスタ(BEPSR)
58を設けている。
【0070】本実施形態では、通常復帰アドレスレジス
タ52、通常元状態レジスタ53、通常要因レジスタ5
4が本発明の第1の情報保持手段を構成し、ブレーク復
帰アドレスレジスタ55、ブレーク元状態レジスタ58
が本発明の第2の情報保持手段を構成する。また、フラ
グレジスタ56は本発明の復帰動作特定手段を構成す
る。
【0071】次に、図4に示す割り込み処理制御装置の
動作を、図2に示すプロセッサの状態遷移で通常状態2
01→通常割り込み状態202→ブレーク割り込み状態
204→通常割り込み状態202→通常状態201と状
態が遷移するときを例にとって説明する。
【0072】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0073】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0074】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0075】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込むと
ともに、フラグレジスタ56に“1”を書き込む。ま
た、ブレーク割り込みコントローラ42は、現状態レジ
スタ57からブレーク割り込み発生前のプロセッサの状
態(通常割り込み状態)を読み出し、読み出したプロセ
ッサの状態をブレーク元状態レジスタ58に書き込む。
【0076】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0077】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。
【0078】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32または割り込み復帰コントローラ34に命令を
供給する。そして、命令が供給されたコントローラは、
供給された命令の指示に従い処理を実行する。命令実行
部30は、割り込みハンドラの最終アドレスに向かって
順次、供給される命令語73を実行するという動作を繰
り返す。
【0079】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34に割り込み
復帰命令を供給する。
【0080】割り込み復帰コントローラ34は、割り込
み復帰命令が供給されると、レジスタ部50のフラグレ
ジスタ56を参照し、その値がブレーク割り込み状態を
示す“1”であるか否かを判断する。フラグレジスタ5
6の値が“1”の場合は、割り込み復帰コントローラ3
4は命令フェッチ部20およびレジスタ部50を制御し
て以下のような処理を行う。
【0081】まず、割り込み復帰コントローラ34は、
フラグレジスタ56に“0”を書き込むとともに、ブレ
ーク元状態レジスタ58の値を読み出し、その値を現状
態レジスタ57に書き込む。また、割り込み復帰コント
ローラ34は、ブレーク割り込み状態から復帰する元の
命令アドレス75をブレーク復帰アドレスレジスタ55
から読み出して命令フェッチ部20に供給し、その値を
プログラム・カウンタ22にセットする。
【0082】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0083】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行することによ
り、通常割り込み状態202から通常状態201に復帰
する。このときの動作は、図1に示した割り込み処理制
御装置の動作と同じである。
【0084】以上のように、第2の実施形態では、上述
した第1の実施形態の動作に加えて、ブレーク割り込み
発生時には、ブレーク割り込み発生前のプロセッサの状
態をブレーク元状態レジスタ58に書き込むようにして
いる。
【0085】これにより、通常割り込みによる割り込み
禁止期間中でもブレーク割り込みを発生させることがで
きるだけでなく、ブレーク割り込み時においても、割り
込み発生前のプロセッサの状態を保持することができる
ようになり、ブレーク割り込みからの復帰の際には、1
つのレジスタの値を参照するだけでプロセッサを元の状
態に容易に復元することができるようになる。
【0086】次に、本発明の第3の実施形態について説
明する。図5は、第3の実施形態による割り込み処理制
御装置の構成例を示すブロック図である。なお、この図
5において、図1に示したブロックと同じブロックには
同一の符号を付し、重複する説明は省略する。図5に示
す第3の実施形態では、図1に示した各レジスタ51〜
57に加えて、発生したブレーク割り込みの要因(命令
ブレークポイント、データ・ブレークポイント、ソフト
ウェア・ブレークポイント、ステップ実行の何れか)を
保持するブレーク要因レジスタ(BECR)59を設け
ている。
【0087】本実施形態では、通常復帰アドレスレジス
タ52、通常元状態レジスタ53、通常要因レジスタ5
4が本発明の第1の情報保持手段を構成し、ブレーク復
帰アドレスレジスタ55、ブレーク要因レジスタ59が
本発明の第2の情報保持手段を構成する。また、フラグ
レジスタ56は本発明の復帰動作特定手段を構成する。
【0088】次に、図5に示す割り込み処理制御装置の
動作を、図2に示すプロセッサの状態遷移で通常状態2
01→通常割り込み状態202→ブレーク割り込み状態
204→通常割り込み状態202→通常状態201と状
態が遷移するときを例にとって説明する。
【0089】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0090】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0091】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0092】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込むと
ともに、フラグレジスタ56に“1”を書き込む。ま
た、ブレーク割り込みコントローラ42は、発生したブ
レーク割り込みの要因をブレーク要因レジスタ59に書
き込む。
【0093】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0094】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。
【0095】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32または割り込み復帰コントローラ34に命令を
供給する。そして、命令が供給されたコントローラは、
供給された命令の指示に従い処理を実行する。命令実行
部30は、割り込みハンドラの最終アドレスに向かって
順次、供給される命令語73を実行するという動作を繰
り返す。
【0096】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34に割り込み
復帰命令を供給する。
【0097】割り込み復帰コントローラ34は、割り込
み復帰命令が供給されると、レジスタ部50のフラグレ
ジスタ56を参照し、その値がブレーク割り込み状態を
示す“1”であるか否かを判断する。フラグレジスタ5
6の値が“1”の場合は、割り込み復帰コントローラ3
4は命令フェッチ部20およびレジスタ部50を制御し
て以下のような処理を行う。
【0098】まず、割り込み復帰コントローラ34は、
フラグレジスタ56に“0”を書き込む。また、割り込
み復帰コントローラ34は、ブレーク割り込み状態から
復帰する元の命令アドレス75をブレーク復帰アドレス
レジスタ55から読み出して命令フェッチ部20に供給
し、その値をプログラム・カウンタ22にセットする。
【0099】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0100】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行することによ
り、通常割り込み状態202から通常状態201に復帰
する。このときの動作は、図1に示した割り込み処理制
御装置の動作と同じである。
【0101】以上のように、第3の実施形態では、上述
した第1の実施形態の動作に加えて、ブレーク割り込み
発生時には、発生したブレーク割り込みの要因をブレー
ク要因レジスタ59に書き込むようにしている。
【0102】これにより、通常割り込みによる割り込み
禁止期間中でもブレーク割り込みを発生させることがで
きるだけでなく、ブレーク割り込み時においても、割り
込み要因を保持することができるので、ブレーク割り込
みハンドラにおいて、特定の決まった処理だけでなく割
り込み要因に対応した適切な割り込み処理を行うことが
できるようになる。
【0103】次に、本発明の第4の実施形態について説
明する。図6は、第4の実施形態による割り込み処理制
御装置の構成例を示すブロック図である。なお、この図
6において、図1、図4、図5に示したブロックと同じ
ブロックには同一の符号を付し、重複する説明は省略す
る。図6に示す第4の実施形態では、図1に示した各レ
ジスタ51〜57に加えて、ブレーク元状態レジスタ5
8とブレーク要因レジスタ59とを設けている。
【0104】本実施形態では、通常復帰アドレスレジス
タ52、通常元状態レジスタ53、通常要因レジスタ5
4が本発明の第1の情報保持手段を構成し、ブレーク復
帰アドレスレジスタ55、ブレーク元状態レジスタ5
8、ブレーク要因レジスタ59が本発明の第2の情報保
持手段を構成する。また、フラグレジスタ56は本発明
の復帰動作特定手段を構成する。
【0105】次に、図6に示す割り込み処理制御装置の
動作を、図2に示すプロセッサの状態遷移で通常状態2
01→通常割り込み状態202→ブレーク割り込み状態
204→通常割り込み状態202→通常状態201と状
態が遷移するときを例にとって説明する。
【0106】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0107】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0108】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0109】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込むと
ともに、フラグレジスタ56に“1”を書き込む。ま
た、ブレーク割り込みコントローラ42は、現状態レジ
スタ57からブレーク割り込み発生前のプロセッサの状
態(通常割り込み状態)を読み出し、読み出したプロセ
ッサの状態をブレーク元状態レジスタ58に書き込むと
ともに、発生したブレーク割り込みの要因をブレーク要
因レジスタ59に書き込む。
【0110】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0111】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。命令語デコーダ31は、供給された命令語73を
デコードし、その結果に従い、命令実行コントローラ3
2または割り込み復帰コントローラ34に命令を供給す
る。そして、命令が供給されたコントローラは、供給さ
れた命令の指示に従い処理を実行する。命令実行部30
は、割り込みハンドラの最終アドレスに向かって順次、
供給される命令語73を実行するという動作を繰り返
す。
【0112】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34に割り込み
復帰命令を供給する。
【0113】割り込み復帰コントローラ34は、割り込
み復帰命令が供給されると、レジスタ部50のフラグレ
ジスタ56を参照し、その値がブレーク割り込み状態を
示す“1”であるか否かを判断する。フラグレジスタ5
6の値が“1”の場合は、割り込み復帰コントローラ3
4は命令フェッチ部20およびレジスタ部50を制御し
て以下のような処理を行う。
【0114】まず、割り込み復帰コントローラ34は、
フラグレジスタ56に“0”を書き込むとともに、ブレ
ーク元状態レジスタ58の値を読み出し、その値を現状
態レジスタ57に書き込む。また、割り込み復帰コント
ローラ34は、ブレーク割り込み状態から復帰する元の
命令アドレス75をブレーク復帰アドレスレジスタ55
から読み出して命令フェッチ部20に供給し、その値を
プログラム・カウンタ22にセットする。
【0115】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0116】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサが通常割り込み復帰命令212を実行することによ
り、通常割り込み状態202から通常状態201に復帰
する。このときの動作は、図1に示した割り込み処理制
御装置の動作と同じである。
【0117】以上のように、第4の実施形態では、上述
した第1の実施形態の動作に加えて、ブレーク割り込み
発生時には、ブレーク割り込み発生前のプロセッサの状
態をブレーク元状態レジスタ58に書き込むとともに、
発生したブレーク割り込みの要因をブレーク要因レジス
タ59に書き込むようにしている。
【0118】これにより、通常割り込みによる割り込み
禁止期間中でもブレーク割り込みを発生させることがで
きるだけでなく、ブレーク割り込みハンドラにおいて
も、ブレーク割り込みからの復帰の際にプロセッサを元
の状態に容易に復元することができるようになるととも
に、ブレーク割り込み要因に対応した適切な割り込み処
理を行うことができるようになる。
【0119】次に、本発明の第5の実施形態について説
明する。図7は、第5の実施形態による割り込み処理制
御装置の構成例を示すブロック図である。なお、この図
7において、図1に示したブロックと同じブロックには
同一の符号を付し、重複する説明は省略する。
【0120】図7において、34’は割り込み復帰コン
トローラであり、図1に示した割り込み復帰コントロー
ラ34と同様に、割り込み状態からの復帰動作を実行す
る。本実施形態の割り込み復帰コントローラ34’で
は、割り込み復帰命令中の情報に基づいて、通常割り込
み状態からの復帰動作かブレーク割り込み状態からの復
帰動作かを特定し、割り込み発生前の動作情報を復元す
る。
【0121】また、本実施形態では、第1〜第4の実施
形態で示したフラグレジスタ56は設けず、その代わり
に後述する割り込み復帰命令中にブレーク割り込み状態
か否かを示す情報を持たせている。本実施形態では、通
常復帰アドレスレジスタ52、通常元状態レジスタ5
3、通常要因レジスタ54が本発明の第1の情報保持手
段を構成し、ブレーク復帰アドレスレジスタ55が本発
明の第2の情報保持手段を構成する。
【0122】図8は、本実施形態による割り込み復帰命
令の命令形式を示す図である。図8において、101は
命令コードを示すフィールドであり、102はオペラン
ドを示すフィールドである。本実施形態では、命令コー
ド101は割り込み復帰命令を意味し、オペランド10
2の値はブレーク割り込み状態か否かを意味する。すな
わち、オペランド102の値が“0”のときには通常割
り込み状態からの復帰を意味し、“1”のときにはブレ
ーク割り込み状態からの復帰を意味する。
【0123】この図8に示す割り込み復帰命令は、通常
割り込み用の割り込みハンドラの末尾とブレーク割り込
み用の割り込みハンドラの末尾とにそれぞれ具備され
る。そして、通常割り込み用の割り込み復帰命令のオペ
ランド102は値が“0”に設定され、ブレーク割り込
み用の割り込み復帰命令のオペランド102は値が
“1”に設定される。この割り込み復帰命令のオペラン
ド102が本発明の復帰動作特定手段を構成する。
【0124】次に、図7に示す割り込み処理制御装置の
動作を、図2に示すプロセッサの状態遷移で通常状態2
01→通常割り込み状態202→ブレーク割り込み状態
204→通常割り込み状態202→通常状態201と状
態が遷移するときを例にとって説明する。
【0125】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0126】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0127】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0128】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込む。
【0129】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0130】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。
【0131】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32または割り込み復帰コントローラ34’に命令
を供給する。そして、命令が供給されたコントローラ
は、供給された命令の指示に従い処理を実行する。命令
実行部30は、割り込みハンドラの最終アドレスに向か
って順次、供給される命令語73を実行するという動作
を繰り返す。
【0132】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34’に割り込
み復帰命令を供給する。
【0133】割り込み復帰コントローラ34’は、割り
込み復帰命令が供給されると、供給された割り込み復帰
命令のオペランド102を参照し、その値が“1”か否
かを判断する。そして、オペランド102の値がブレー
ク割り込み状態からの復帰を示す“1”であった場合
は、割り込み復帰コントローラ34’は命令フェッチ部
20およびレジスタ部50を制御して以下のような処理
を行う。
【0134】まず、割り込み復帰コントローラ34’
は、ブレーク割り込み状態から復帰する元の命令アドレ
ス75をブレーク復帰アドレスレジスタ55から読み出
して命令フェッチ部20に供給し、その値をプログラム
・カウンタ22にセットする。
【0135】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0136】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34’に割り込
み復帰命令を供給する。
【0137】割り込み復帰コントローラ34’は、割り
込み復帰命令が供給されると、供給された割り込み復帰
命令のオペランド102を参照し、その値が“1”か否
かを判断する。この場合は、オペランド102の値は通
常割り込み状態からの復帰を示す“0”であるので、割
り込み復帰コントローラ34’は命令フェッチ部20お
よびレジスタ部50を制御して通常割り込み復帰動作を
開始する。この通常割り込み復帰動作では、図1に示し
た割り込み処理制御装置と同じ動作を行い、通常割り込
み状態202から通常状態201に遷移する。
【0138】以上のように、第5の実施形態によれば、
通常割り込み発生時には、通常割り込み状態から復帰す
る元の命令アドレスを通常復帰アドレスレジスタ52に
書き込む等して通常割り込み発生前のプロセッサの動作
情報を退避するようにする。また、ブレーク割り込み発
生時には、ブレーク割り込み状態から復帰する元の命令
アドレスをブレーク復帰アドレスレジスタ55に書き込
むことにより、ブレーク割り込み発生前のプロセッサの
動作情報を退避するようにする。また、通常割り込みに
対応した割り込みハンドラの末尾にはオペランド102
の値が“0”である割り込み復帰命令を具備し、ブレー
ク割り込みに対応した割り込みハンドラの末尾にはオペ
ランド102の値が“1”である割り込み復帰命令を具
備するようにし、割り込みからの復帰の際には、このオ
ペランド102の値を参照することによって、上記2つ
の復帰アドレスレジスタ52、55の何れのアドレスを
使うかを決めている。
【0139】これにより、通常割り込み発生による割り
込み処理直後と割り込み復帰直前の割り込み禁止期間中
においても、通常復帰アドレスレジスタ52とは別のブ
レーク復帰アドレスレジスタ55にブレーク復帰アドレ
スを書き込むことが可能であり、通常割り込みによる割
り込み禁止期間中でもブレーク割り込みを発生させるこ
とができるようになる。また、割り込み復帰命令を実行
するときに、その割り込み復帰命令のオペランド102
の値を参照することにより、通常割り込み発生前の動作
情報またはブレーク割り込み発生前の動作情報を正しく
復元することができるようになる。さらに、通常割り込
み状態からの復帰か、ブレーク割り込み状態からの復帰
かの識別子をレジスタではなく割り込み復帰命令中のオ
ペランド102に設けたことで、最小限のハード資源で
割り込み発生前のプロセッサの動作情報を復元すること
ができるようになる。
【0140】次に、本発明の第6の実施形態について説
明する。図9は、第6の実施形態による割り込み処理制
御装置の構成例を示すブロック図である。なお、この図
9において、図1、図4、図7に示したブロックと同じ
ブロックには同一の符号を付し、重複する説明は省略す
る。
【0141】本実施形態では、図7に示す第5の実施形
態と同じく図8に示した割り込み復帰命令中にブレーク
割り込み状態か否かを示す情報を持たせている。本実施
形態では、通常復帰アドレスレジスタ52、通常元状態
レジスタ53、通常要因レジスタ54が本発明の第1の
情報保持手段を構成し、ブレーク復帰アドレスレジスタ
55、ブレーク元状態レジスタ58が本発明の第2の情
報保持手段を構成する。
【0142】また、割り込み復帰命令は、通常割り込み
用の割り込みハンドラの末尾とブレーク割り込み用の割
り込みハンドラの末尾とにそれぞれ具備される。そし
て、通常割り込み用の割り込み復帰命令のオペランド1
02は値が“0”に設定され、ブレーク割り込み用の割
り込み復帰命令のオペランド102は値が“1”に設定
される。この割り込み復帰命令のオペランド102が本
発明の復帰動作特定手段を構成する。
【0143】次に、図9に示す割り込み処理制御装置の
動作を、図2に示すプロセッサの状態遷移で通常状態2
01→通常割り込み状態202→ブレーク割り込み状態
204→通常割り込み状態202→通常状態201と状
態が遷移するときを例にとって説明する。
【0144】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0145】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0146】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0147】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込む。
また、ブレーク割り込みコントローラ42は、現状態レ
ジスタ57からブレーク割り込み発生前のプロセッサの
状態(通常割り込み状態)を読み出し、読み出したプロ
セッサの状態をブレーク元状態レジスタ58に書き込
む。
【0148】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0149】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。命令語デコーダ31は、供給された命令語73を
デコードし、その結果に従い、命令実行コントローラ3
2または割り込み復帰コントローラ34’に命令を供給
する。そして、命令が供給されたコントローラは、供給
された命令の指示に従い処理を実行する。命令実行部3
0は、割り込みハンドラの最終アドレスに向かって順
次、供給される命令語73を実行するという動作を繰り
返す。
【0150】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34’に割り込
み復帰命令を供給する。
【0151】割り込み復帰コントローラ34’は、割り
込み復帰命令が供給されると、供給された割り込み復帰
命令のオペランド102を参照し、その値が“1”か否
かを判断する。そして、オペランド102の値がブレー
ク割り込み状態からの復帰を示す“1”であった場合
は、割り込み復帰コントローラ34’は命令フェッチ部
20およびレジスタ部50を制御して以下のような処理
を行う。
【0152】まず、割り込み復帰コントローラ34’
は、ブレーク元状態レジスタ58の値を読み出し、その
値を現状態レジスタ57に書き込む。また、割り込み復
帰コントローラ34’は、ブレーク割り込み状態から復
帰する元の命令アドレス75をブレーク復帰アドレスレ
ジスタ55から読み出して命令フェッチ部20に供給
し、その値をプログラム・カウンタ22にセットする。
【0153】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0154】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行することによ
り、通常割り込み状態202から通常状態201に復帰
する。このときの動作は、図7に示した割り込み処理制
御装置の動作と同じである。
【0155】以上のように、第6の実施形態では、上述
した第5の実施形態の動作に加えて、ブレーク割り込み
発生時には、ブレーク割り込み発生前のプロセッサの状
態をブレーク元状態レジスタ58に書き込むようにして
いる。
【0156】これにより、通常割り込みによる割り込み
禁止期間中でもブレーク割り込みを発生させることがで
きるだけでなく、ブレーク割り込み時においても、割り
込み発生前のプロセッサの状態を保持することができる
ようになり、ブレーク割り込みからの復帰の際には、プ
ロセッサを元の状態に容易に復元することができるよう
になる。
【0157】次に、本発明の第7の実施形態について説
明する。図10は、第7の実施形態による割り込み処理
制御装置の構成例を示すブロック図である。なお、この
図10において、図1、図5、図7に示したブロックと
同じブロックには同一の符号を付し、重複する説明は省
略する。
【0158】本実施形態では、図7に示す第5の実施形
態と同じく図8に示した割り込み復帰命令中にブレーク
割り込み状態か否かを示す情報を持たせている。本実施
形態では、通常復帰アドレスレジスタ52、通常元状態
レジスタ53、通常要因レジスタ54が本発明の第1の
情報保持手段を構成し、ブレーク復帰アドレスレジスタ
55、ブレーク要因レジスタ59が本発明の第2の情報
保持手段を構成する。
【0159】また、割り込み復帰命令は、通常割り込み
用の割り込みハンドラの末尾とブレーク割り込み用の割
り込みハンドラの末尾とにそれぞれ具備される。そし
て、通常割り込み用の割り込み復帰命令のオペランド1
02は値が“0”に設定され、ブレーク割り込み用の割
り込み復帰命令のオペランド102は値が“1”に設定
される。この割り込み復帰命令のオペランド102が本
発明の復帰動作特定手段を構成する。
【0160】次に、図10に示す割り込み処理制御装置
の動作を、図2に示すプロセッサの状態遷移で通常状態
201→通常割り込み状態202→ブレーク割り込み状
態204→通常割り込み状態202→通常状態201と
状態が遷移するときを例にとって説明する。
【0161】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0162】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0163】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0164】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込む。
また、ブレーク割り込みコントローラ42は、発生した
ブレーク割り込みの要因をブレーク要因レジスタ59に
書き込む。
【0165】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0166】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。命令語デコーダ31は、供給された命令語73を
デコードし、その結果に従い、命令実行コントローラ3
2または割り込み復帰コントローラ34’に命令を供給
する。そして、命令が供給されたコントローラは、供給
された命令の指示に従い処理を実行する。命令実行部3
0は、割り込みハンドラの最終アドレスに向かって順
次、供給される命令語73を実行するという動作を繰り
返す。
【0167】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34’に割り込
み復帰命令を供給する。
【0168】割り込み復帰コントローラ34’は、割り
込み復帰命令が供給されると、供給された割り込み復帰
命令のオペランド102を参照し、その値が“1”か否
かを判断する。そして、オペランド102の値がブレー
ク割り込み状態からの復帰を示す“1”であった場合
は、割り込み復帰コントローラ34’ は命令フェッチ
部20およびレジスタ部50を制御して以下のような処
理を行う。
【0169】まず、割り込み復帰コントローラ34は、
ブレーク割り込み状態から復帰する元の命令アドレス7
5をブレーク復帰アドレスレジスタ55から読み出して
命令フェッチ部20に供給し、その値をプログラム・カ
ウンタ22にセットする。命令フェッチコントローラ2
1は、プログラム・カウンタ22にセットされた元の命
令アドレス71に基づいて、通常割り込みに対応する割
り込みハンドラの命令語72をメモリ10から読み出
し、命令語レジスタ23に一旦保持した後、命令実行部
30に供給する。これにより、プロセッサはブレーク割
り込み状態204から通常割り込み状態202に復帰
し、命令実行部30が通常割り込みに対応した割り込み
ハンドラの残りの処理を実行する。
【0170】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行することによ
り、通常割り込み状態202から通常状態201に復帰
する。このときの動作は、図7に示した割り込み処理制
御装置の動作と同じである。
【0171】以上のように、第7の実施形態では、上述
した第5の実施形態の動作に加えて、ブレーク割り込み
発生時には、発生したブレーク割り込みの要因をブレー
ク要因レジスタ59に書き込むようにしている。
【0172】これにより、通常割り込みによる割り込み
禁止期間中でもブレーク割り込みを発生させることがで
きるだけでなく、ブレーク割り込み時においても、割り
込み要因を保持することができるので、ブレーク割り込
みハンドラにおいて、特定の決まった処理だけでなく割
り込み要因に対応した適切な割り込み処理を行うことが
できるようになる。
【0173】次に、本発明の第8の実施形態について説
明する。図11は、第8の実施形態による割り込み処理
制御装置の構成例を示すブロック図である。なお、この
図11において、図1、図4、図5、図7に示したブロ
ックと同じブロックには同一の符号を付し、重複する説
明は省略する。
【0174】本実施形態では、図7に示す第5の実施形
態と同じく図8に示した割り込み復帰命令中にブレーク
割り込み状態か否かを示す情報を持たせている。本実施
形態では、通常復帰アドレスレジスタ52、通常元状態
レジスタ53、通常要因レジスタ54が本発明の第1の
情報保持手段を構成し、ブレーク復帰アドレスレジスタ
55、ブレーク元状態レジスタ58、ブレーク要因レジ
スタ59が本発明の第2の情報保持手段を構成する。
【0175】また、割り込み復帰命令は、通常割り込み
用の割り込みハンドラの末尾とブレーク割り込み用の割
り込みハンドラの末尾とにそれぞれ具備される。そし
て、通常割り込み用の割り込み復帰命令のオペランド1
02は値が“0”に設定され、ブレーク割り込み用の割
り込み復帰命令のオペランド102は値が“1”に設定
される。この割り込み復帰命令のオペランド102が本
発明の復帰動作特定手段を構成する。
【0176】次に、図11に示す割り込み処理制御装置
の動作を、図2に示すプロセッサの状態遷移で通常状態
201→通常割り込み状態202→ブレーク割り込み状
態204→通常割り込み状態202→通常状態201と
状態が遷移するときを例にとって説明する。
【0177】プロセッサが通常状態201にあるとき、
通常割り込みが発生して通常状態201から通常割り込
み状態202へ遷移する際の動作は、図1に示した割り
込み処理制御装置の動作と同じである。
【0178】また、プロセッサが通常割り込み状態20
2にあるとき、命令フェッチコントローラ21、命令実
行コントローラ32またはブレークポイントコントロー
ラ33がブレーク割り込み215を検出すると、命令フ
ェッチコントローラ21はブレーク割り込み通知信号7
8により、命令実行コントローラ32はブレーク割り込
み通知信号85により、ブレークポイントコントローラ
33はブレーク割り込み通知信号87によりブレーク割
り込みが発生した旨をブレーク割り込みコントローラ4
2に通知する。
【0179】ブレーク割り込みコントローラ42は、命
令フェッチコントローラ21、命令実行コントローラ3
2またはブレークポイントコントローラ33からブレー
ク割り込み発生の通知を受信すると、命令フェッチ部2
0およびレジスタ部50を制御して以下のような処理を
行う。
【0180】まず、ブレーク割り込みコントローラ42
は、プログラム・カウンタ22から現在示している命令
アドレス値89を読み出し、読み出した命令アドレス値
89をブレーク復帰アドレスレジスタ55に書き込む。
また、ブレーク割り込みコントローラ42は、現状態レ
ジスタ57からブレーク割り込み発生前のプロセッサの
状態(通常割り込み状態)を読み出し、読み出したプロ
セッサの状態をブレーク元状態レジスタ58に書き込む
とともに、発生したブレーク割り込みの要因をブレーク
要因レジスタ59に書き込む。
【0181】次に、ブレーク割り込みコントローラ42
は、発生したブレーク割り込みに対応して遷移するプロ
セッサの状態を現状態レジスタ57に書き込む。また、
ブレーク割り込みコントローラ42は、発生したブレー
ク割り込みに対応する割り込みハンドラの先頭アドレス
77を命令フェッチ部20に供給し、その値をプログラ
ム・カウンタ22にセットする。以上の処理を経て、プ
ロセッサは通常割り込み状態202からブレーク割り込
み状態204に遷移する。
【0182】ブレーク割り込み状態204に遷移したプ
ロセッサは、プログラム・カウンタ22にセットされた
割り込みハンドラの先頭アドレス77に従って、当該割
り込みハンドラの命令語72を命令フェッチコントロー
ラ21に読み出し、その読み出した命令語を命令語レジ
スタ23に一旦保持した後、命令語デコーダ31に供給
する。
【0183】命令語デコーダ31は、供給された命令語
73をデコードし、その結果に従い、命令実行コントロ
ーラ32または割り込み復帰コントローラ34’に命令
を供給する。そして、命令が供給されたコントローラ
は、供給された命令の指示に従い処理を実行する。命令
実行部30は、割り込みハンドラの最終アドレスに向か
って順次、供給される命令語73を実行するという動作
を繰り返す。
【0184】そして、発生したブレーク割り込みに対応
する割り込みハンドラの処理が完了すると、プロセッサ
はブレーク割り込み復帰命令216を実行する。このと
き、命令フェッチ部20によりメモリ10から読み出さ
れ、命令語デコーダ31に供給される割り込み復帰命令
は、命令語デコーダ31でデコードされ、割り込み復帰
命令であると判断される。この判断に従い、命令語デコ
ーダ31は、割り込み復帰コントローラ34’に割り込
み復帰命令を供給する。
【0185】割り込み復帰コントローラ34’は、割り
込み復帰命令が供給されると、供給された割り込み復帰
命令のオペランド102を参照し、その値が“1”か否
かを判断する。そして、オペランド102の値がブレー
ク割り込み状態からの復帰を示す“1”であった場合
は、割り込み復帰コントローラ34’は命令フェッチ部
20およびレジスタ部50を制御して以下のような処理
を行う。
【0186】まず、割り込み復帰コントローラ34’
は、ブレーク元状態レジスタ58の値を読み出し、その
値を現状態レジスタ57に書き込む。また、割り込み復
帰コントローラ34’は、ブレーク割り込み状態から復
帰する元の命令アドレス75をブレーク復帰アドレスレ
ジスタ55から読み出して命令フェッチ部20に供給
し、その値をプログラム・カウンタ22にセットする。
【0187】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0188】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは通常割り込み復帰命令212を実行することによ
り、通常割り込み状態202から通常状態201に復帰
する。このときの動作は、図7に示した割り込み処理制
御装置の動作と同じである。
【0189】以上のように、第8の実施形態では、上述
した第5の実施形態の動作に加えて、ブレーク割り込み
発生時には、ブレーク割り込み発生前のプロセッサの状
態をブレーク元状態レジスタ58に書き込むとともに、
発生したブレーク割り込みの要因をブレーク要因レジス
タ59に書き込むようにしている。
【0190】これにより、通常割り込みによる割り込み
禁止期間中でもブレーク割り込みを発生させることがで
きるだけでなく、ブレーク割り込みハンドラにおいて
も、ブレーク割り込みからの復帰の際にプロセッサを元
の状態に容易に復元することができるようになるととも
に、ブレーク割り込み要因に対応した適切な割り込み処
理を行うことができるようになる。
【0191】次に、本発明の第9の実施形態について説
明する。図12は、第9の実施形態による割り込み処理
制御装置の構成例を示すブロック図である。なお、この
図12において、図7に示したブロックと同じブロック
には同一の符号を付し、重複する説明は省略する。図1
2において、31’は命令語デコーダ、35は通常割り
込み復帰コントローラ、36はブレーク割り込み復帰コ
ントローラである。
【0192】命令語デコーダ31’は図7に示した命令
語デコーダ31と同様に、命令フェッチ部20から供給
された命令語73をデコードする。本実施形態の命令語
デコーダ31’では、デコードの結果、供給された命令
語73が、ソフトウェア・ブレークポイントによりブレ
ーク割り込みを発生させる命令語であったときには、ブ
レークポイントコントローラ33にブレーク割り込み発
生命令を供給する。
【0193】また、供給された命令語73がプロセッサ
を通常割り込み状態から復帰させる命令語であったとき
には、通常割り込み復帰コントローラ35に通常割り込
み復帰命令を供給し、供給された命令語73がプロセッ
サをブレーク割り込み状態から復帰させる命令語であっ
たときには、ブレーク割り込み復帰コントローラ36に
ブレーク割り込み復帰命令を供給する。供給された命令
語73が、それ以外の命令語であった場合には、命令実
行コントローラ32にデコードした命令を供給する。
【0194】通常割り込み復帰コントローラ35は、命
令語デコーダ31’から供給された通常割り込み復帰命
令に従い、通常割り込み状態からの復帰動作を実行す
る。また、ブレーク割り込み復帰コントローラ36は、
命令語デコーダ31’から供給されたブレーク割り込み
復帰命令に従い、ブレーク割り込み状態からの復帰動作
を実行する。
【0195】すなわち、図7に示した第5の実施形態で
は、図8に示す割り込み復帰命令中のオペランド102
の値に応じて通常割り込み状態からの復帰動作か、ブレ
ーク割り込み状態からの復帰動作かを特定していた。こ
れに対して、第9の実施形態では命令コード101の内
容として、通常割り込み状態からの復帰命令とブレーク
割り込み状態からの復帰命令との二種の復帰命令を用い
る。この二種の復帰命令のうち、何れの復帰命令が命令
語デコーダ31’に与えられるかに応じて、復帰動作を
行う割り込み復帰コントローラを特定し、割り込み発生
前のプロセッサの動作情報を復元する。なお、この場
合、オペランド102の値は任意である。
【0196】本実施形態では、通常復帰アドレスレジス
タ52、通常元状態レジスタ53、通常要因レジスタ5
4が本発明の第1の情報保持手段を構成し、ブレーク復
帰アドレスレジスタ55が本発明の第2の情報保持手段
を構成する。
【0197】また、本実施形態でも、割り込み復帰命令
は、通常割り込み用の割り込みハンドラの末尾とブレー
ク割り込み用の割り込みハンドラの末尾とにそれぞれ具
備される。そして、通常割り込み用の割り込み復帰命令
の命令コード101は通常割り込みからの復帰命令によ
り構成され、ブレーク割り込み用の割り込み復帰命令の
命令コード101はブレーク割り込みからの復帰命令に
より構成される。この二種の割り込み復帰命令が本発明
の復帰動作特定手段を構成する。
【0198】次に、本実施形態の割り込み処理制御装置
の動作を、図2に示すプロセッサの状態遷移で通常状態
201→通常割り込み状態202→ブレーク割り込み状
態204→通常割り込み状態202→通常状態201と
状態が遷移するときを例にとって説明する。
【0199】本実施形態では、通常割り込み発生および
ブレーク割り込み発生による割り込み状態へ遷移する際
の動作は、図7に示した割り込み処理制御装置の動作と
同じである。そのため、以下では、通常割り込み状態お
よびブレーク割り込み状態からの復帰動作、すなわちブ
レーク割り込み状態204→通常割り込み状態202→
通常状態201の状態遷移についてのみ説明する。
【0200】プロセッサがブレーク割り込み状態204
にあるとき、発生したブレーク割り込みに対応する割り
込みハンドラの処理が完了すると、プロセッサは当該割
り込みハンドラの末尾にある割り込み復帰命令216を
実行する。このとき実行される割り込み復帰命令の命令
コード101は、ブレーク割り込み状態からの割り込み
復帰命令である。そのため、命令語デコーダ31’は当
該割り込み復帰命令のデコードの結果、ブレーク割り込
み復帰コントローラ36にブレーク割り込み復帰命令を
供給する。ブレーク割り込み復帰コントローラ36は、
ブレーク割り込み復帰命令が供給されると、命令フェッ
チ部20およびレジスタ部50を制御して以下のような
処理を行う。
【0201】まず、ブレーク割り込み復帰コントローラ
36は、ブレーク割り込み状態から復帰する元の命令ア
ドレス75をブレーク復帰アドレスレジスタ55から読
み出して命令フェッチ部20に供給し、その値をプログ
ラム・カウンタ22にセットする。
【0202】命令フェッチコントローラ21は、プログ
ラム・カウンタ22にセットされた元の命令アドレス7
1に基づいて、通常割り込みに対応する割り込みハンド
ラの命令語72をメモリ10から読み出し、命令語レジ
スタ23に一旦保持した後、命令実行部30に供給す
る。これにより、プロセッサはブレーク割り込み状態2
04から通常割り込み状態202に復帰し、命令実行部
30が通常割り込みに対応した割り込みハンドラの残り
の処理を実行する。
【0203】その後、通常割り込み状態202でそれに
対応した割り込みハンドラの処理が完了すると、プロセ
ッサは当該割り込みハンドラの末尾にある割り込み復帰
命令212を実行する。このとき実行される割り込み復
帰命令の命令コード101は、通常割り込み状態からの
割り込み復帰命令である。そのため、命令語デコーダ3
1’は当該割り込み復帰命令のデコードの結果、通常割
り込み復帰コントローラ35に通常割り込み復帰命令を
供給する。
【0204】通常割り込み復帰コントローラ35は、ブ
レーク割り込み復帰命令が供給されると、命令フェッチ
部20およびレジスタ部50を制御して通常割り込み復
帰動作を開始する。この通常割り込み復帰動作では、図
7に示した割り込み処理制御装置と同じ動作を行い、通
常割り込み状態202から通常状態201に遷移する。
【0205】以上のように、第9の実施形態では、通常
割り込みに対応した割り込みハンドラの末尾には命令コ
ード101が通常割り込み状態からの復帰命令である通
常割り込み復帰命令を具備し、ブレーク割り込みに対応
した割り込みハンドラの末尾には命令コード101がブ
レーク割り込み状態からの復帰命令であるブレーク割り
込み復帰命令を具備するようにする。そして、割り込み
からの復帰の際には、この命令コード101の内容に応
じて復帰動作を特定するようにしている。
【0206】これにより、通常割り込み発生による割り
込み処理直後と割り込み復帰直前の割り込み禁止期間中
においても、ブレーク割り込みを発生させることができ
るだけでなく、最小限のハード資源で割り込み発生前の
プロセッサの動作情報を復元することができるようにな
る。さらに、通常割り込み状態からの復帰命令およびブ
レーク割り込み状態からの復帰命令の二種の命令を用い
ることで、発生した割り込みに対応する復帰命令が実行
でき、演算時間が短縮され、通常割り込み状態のときに
発生したブレーク割り込みに対しても速やかにブレーク
割り込み発生前のプロセッサの動作情報を正しく復元す
ることができるようになる。
【0207】なお、上記第9の実施形態では、本発明の
第2の情報保持手段としてブレーク復帰アドレスレジス
タ55のみを備えているが、図9〜図11に示した第6
〜第8の実施形態と同様に、ブレーク復帰アドレスレジ
スタ55に加えて、ブレーク元状態レジスタ58、ブレ
ーク要因レジスタ59の何れかまたは両方のレジスタを
更に備えても良い。
【0208】この場合は、通常割り込み発生およびブレ
ーク割り込み発生による割り込み状態へ遷移する際の動
作は、図9〜図11に示した割り込み処理制御装置の動
作と同じである。また、割り込み状態からの復帰動作
は、通常割り込み状態からの復帰動作を通常割り込み復
帰コントローラ35が実行し、ブレーク割り込み状態か
らの復帰動作をブレーク割り込み復帰コントローラ36
が実行する。このとき、各レジスタの制御は図9〜図1
1に示した割り込み処理制御装置での制御と同じであ
る。
【0209】なお、以上の各実施形態は、例外処理や外
部割り込み等に対応する割り込みハンドラのデバッグに
適用できるのはもちろん、OS(オペレーションシステ
ム)のシステムコールあるいはスーパーバイザコール等
に対応する割り込みハンドラのデバッグにも適用するこ
とが可能である。
【0210】本発明の様々な形態をまとめると、以下の
ようになる。 (1)通常割り込みの機能とブレーク割り込みの機能と
を有する割り込み処理制御装置であって、上記通常割り
込みの発生時にその割り込み発生前のプロセッサの動作
情報を保持する第1の情報保持手段と、上記ブレーク割
り込みの発生時にその割り込み発生前のプロセッサの動
作情報を保持する第2の情報保持手段と、割り込み動作
からの復帰時に通常割り込み状態からの復帰動作かブレ
ーク割り込み状態からの復帰動作かを特定するための復
帰動作特定手段と、上記復帰動作特定手段により特定さ
れる動作内容に従って、上記第1の情報保持手段に保持
されている動作情報または上記第2の情報保持手段に保
持されている動作情報を再設定することにより、割り込
み動作状態から割り込み発生前の状態に上記プロセッサ
の状態を復帰させる割り込み復帰手段とを備えることを
特徴とする割り込み処理制御装置。 (2)上記第2の情報保持手段は、上記ブレーク割り込
みの動作状態から復帰するブレーク割り込み発生前の命
令アドレスを保持することを特徴とする上記(1)に記
載の割り込み処理制御装置。
【0211】(3)上記第2の情報保持手段は、上記ブ
レーク割り込み発生前における上記プロセッサの状態を
更に保持することを特徴とする上記(2)に記載の割り
込み処理制御装置。 (4)上記第2の情報保持手段は、発生したブレーク割
り込みの要因を更に保持することを特徴とする上記
(2)に記載の割り込み処理制御装置。 (5)上記第2の情報保持手段は、上記ブレーク割り込
み発生前における上記プロセッサの状態と発生したブレ
ーク割り込みの要因とを更に保持することを特徴とする
上記(2)に記載の割り込み処理制御装置。
【0212】(6)上記復帰動作特定手段は、割り込み
発生時に設定される発生した割り込みが上記ブレーク割
り込み状態か否かを示すフラグ情報を用いて復帰動作を
特定することを特徴とする上記(1)に記載の割り込み
処理制御装置。 (7)上記復帰動作特定手段は、割り込み復帰命令のオ
ペランドに記述されている値に応じて復帰動作を特定す
る上記(1)に記載の割り込み処理制御装置。 (8)上記復帰動作特定手段は、割り込み復帰命令の命
令フィールドの内容に応じて復帰動作を特定することを
特徴とする上記(1)に記載の割り込み処理制御装置。
【0213】(9)通常割り込み発生時には当該通常割
り込み発生前のプロセッサの動作情報を第1の情報保持
手段に保持し、ブレーク割り込み発生時には当該ブレー
ク割り込み発生前の上記プロセッサの動作情報を上記第
1の情報保持手段とは異なる第2の情報保持手段に保持
するとともに、ブレーク割り込み状態か否かを示すフラ
グをブレーク割り込み状態に設定し、割り込み状態から
割り込み発生前の状態に上記プロセッサを復帰させる際
には、上記フラグの値に応じて上記第1の情報保持手段
の動作情報または上記第2の情報保持手段の動作情報の
いずれかを選択して復元するようにしたことを特徴とす
る割り込み処理制御方法。
【0214】(10)通常割り込み発生時には当該通常
割り込み発生前のプロセッサの動作情報を第1の情報保
持手段に保持し、ブレーク割り込み発生時には当該ブレ
ーク割り込み発生前の上記プロセッサの動作情報を上記
第1の情報保持手段とは異なる第2の情報保持手段に保
持し、割り込み状態から割り込み発生前の状態に上記プ
ロセッサを復帰させる際には、割り込み復帰命令の内容
に応じて上記第1の情報保持手段の動作情報または上記
第2の情報保持手段の動作情報のいずれかを選択して復
元するようにしたことを特徴とする割り込み処理制御方
法。
【0215】(11)通常割り込みの機能とブレーク割
り込みの機能とを有する割り込み処理制御装置におい
て、ブレーク割り込み発生時には、ブレーク割り込み状
態から復帰するブレーク割り込み発生前の命令アドレス
を少なくとも保持するとともに、ブレーク割り込み状態
か否かを示すフラグをブレーク割り込み状態に設定し、
上記ブレーク割り込み状態から割り込み発生前の状態に
上記プロセッサを復帰させる際には、上記ブレーク割り
込み状態を示すフラグを解除するとともに、上記保持し
ておいた命令アドレスを復元するようにしたことを特徴
とする割り込み処理制御方法。
【0216】(12)上記ブレーク割り込み発生時に
は、上記命令アドレスの他に、上記ブレーク割り込み発
生前における上記プロセッサの状態を更に保持し、上記
ブレーク割り込み状態から割り込み発生前の状態に上記
プロセッサを復帰させる際には、上記保持しておいた上
記プロセッサの状態をも復元するようにしたことを特徴
とする上記(11)に記載の割り込み処理制御方法。 (13)上記ブレーク割り込み発生時には、上記命令ア
ドレスの他に、発生したブレーク割り込みの要因を更に
保持するようにしたことを特徴とする上記(11)に記
載の割り込み処理制御方法。
【0217】
【発明の効果】以上説明したように、本発明によれば、
通常割り込み発生時に通常割り込み発生前のプロセッサ
の動作情報を保持する手段とは別に、ブレーク割り込み
発生時にブレーク割り込み発生前のプロセッサの動作情
報を保持する手段を設けるようにしたので、通常割り込
み動作直後とその割り込み復帰直前の割り込み禁止期間
でも、ブレーク割り込み発生時のプロセッサの動作情報
を保持することができ、上記割り込み禁止期間であって
もブレーク割り込みを発生させることができる。したが
って、割り込みハンドラが適用アプリケーションの一部
として作成されるような場合に、当該割り込みハンドラ
を完全にデバッグすることができるようになる。
【0218】例えば、ブレーク割り込み発生時に保持す
るブレーク割り込み発生前のプロセッサの動作情報とし
て、命令アドレスだけを保持するようにした場合には、
必要最小限の動作情報でブレーク割り込み状態からの復
帰動作を実行することができる。
【0219】また、本発明によれば、割り込み状態から
の復帰の際に、ブレーク割り込み状態か否かを示すフラ
グを参照することにより、ブレーク割り込み状態からの
復帰動作か通常割り込み状態からの復帰動作かを特定で
きるようにしたので、通常割り込みによる割り込み禁止
期間中のときに発生したブレーク割り込みに対してもブ
レーク割り込み発生前のプロセッサの動作情報を正しく
復元することができ、通常割り込みによる割り込み禁止
期間中でもブレーク割り込みを発生させることができ
る。
【0220】また、本発明の他の特徴によれば、割り込
み状態からの復帰の際に、割り込み復帰命令の内容に応
じて、ブレーク割り込み状態からの復帰動作か通常割り
込み状態からの復帰動作かを特定できるようにしたの
で、ブレーク割り込み状態か否かを示すフラグを具備す
ることなく、通常割り込み状態のときに発生したブレー
ク割り込みに対してもブレーク割り込み発生前のプロセ
ッサの動作情報を正しく復元することができ、少ないハ
ードウェア資源でブレーク割り込みを発生させることが
できる。
【図面の簡単な説明】
【図1】第1の実施形態による割り込み処理制御装置の
構成例を示すブロック図である。
【図2】本実施形態による割り込み処理制御装置でのプ
ロセッサの状態遷移の一例を示す図である。
【図3】本実施形態による割り込み処理制御装置でのプ
ロセッサの状態遷移の他の例を示す図である。
【図4】第2の実施形態による割り込み処理制御装置の
構成例を示すブロック図である。
【図5】第3の実施形態による割り込み処理制御装置の
構成例を示すブロック図である。
【図6】第4の実施形態による割り込み処理制御装置の
構成例を示すブロック図である。
【図7】第5の実施形態による割り込み処理制御装置の
構成例を示すブロック図である。
【図8】第5〜第9の実施形態で用いる割り込み復帰命
令の命令形式を示す図である。
【図9】第6の実施形態による割り込み処理制御装置の
構成例を示すブロック図である。
【図10】第7の実施形態による割り込み処理制御装置
の構成例を示すブロック図である。
【図11】第8の実施形態による割り込み処理制御装置
の構成例を示すブロック図である。
【図12】第9の実施形態による割り込み処理制御装置
の構成例を示すブロック図である。
【図13】従来の割り込み処理制御装置でのプロセッサ
の状態遷移の一例を示す図である。
【図14】従来の割り込み処理制御装置でのプロセッサ
の状態遷移の他の例を示す図である。
【符号の説明】
10 メモリ 20 命令フェッチ部 21 命令フェッチコントローラ 22 プログラム・カウンタ 23 命令語レジスタ 30 命令実行部 31、31’ 命令語デコーダ 32 命令実行コントローラ 33 ブレークポイントコントローラ 34、34’ 割り込み復帰コントローラ 35 通常割り込み復帰コントローラ 36 ブレーク割り込み復帰コントローラ 40 割り込み制御部 41 通常割り込みコントローラ 42 ブレーク割り込みコントローラ 50 レジスタ部 51 汎用レジスタ(GR) 52 通常復帰アドレスレジスタ(EPCR) 53 通常元状態レジスタ(EPSR) 54 通常要因レジスタ(ECR) 55 ブレーク復帰アドレスレジスタ(BEPCR) 56 フラグレジスタ(BE) 57 現状態レジスタ(PSR) 58 ブレーク元状態レジスタ(BEPSR) 59 ブレーク要因レジスタ(BECR) 101 命令コード 102 オペランド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 泰基 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B042 GA23 HH23 HH25 LA02 LA09 5B098 BA05 BA12 BB05

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 通常割り込みの機能とブレーク割り込み
    の機能とを有する割り込み処理制御装置であって、上記
    通常割り込みの発生時にその割り込み発生前のプロセッ
    サの動作情報を保持する第1の情報保持手段と、上記ブ
    レーク割り込みの発生時にその割り込み発生前のプロセ
    ッサの動作情報を保持する第2の情報保持手段と、割り
    込み動作からの復帰時に通常割り込み状態からの復帰動
    作かブレーク割り込み状態からの復帰動作かを特定する
    ための復帰動作特定手段と、上記復帰動作特定手段によ
    り特定される動作内容に従って、上記第1の情報保持手
    段に保持されている動作情報または上記第2の情報保持
    手段に保持されている動作情報を再設定することによ
    り、割り込み動作状態から割り込み発生前の状態に上記
    プロセッサの状態を復帰させる割り込み復帰手段とを備
    えることを特徴とする割り込み処理制御装置。
  2. 【請求項2】 上記復帰動作特定手段は、割り込み発生
    時に設定される発生した割り込みが上記ブレーク割り込
    み状態か否かを示すフラグ情報を用いて復帰動作を特定
    することを特徴とする請求項1に記載の割り込み処理制
    御装置。
  3. 【請求項3】 通常割り込み発生時には当該通常割り込
    み発生前のプロセッサの動作情報を第1の情報保持手段
    に保持し、ブレーク割り込み発生時には当該ブレーク割
    り込み発生前の上記プロセッサの動作情報を上記第1の
    情報保持手段とは異なる第2の情報保持手段に保持する
    とともに、ブレーク割り込み状態か否かを示すフラグを
    ブレーク割り込み状態に設定し、割り込み状態から割り
    込み発生前の状態に上記プロセッサを復帰させる際に
    は、上記フラグの値に応じて上記第1の情報保持手段の
    動作情報または上記第2の情報保持手段の動作情報のい
    ずれかを選択して復元するようにしたことを特徴とする
    割り込み処理制御方法。
  4. 【請求項4】 通常割り込み発生時には当該通常割り込
    み発生前のプロセッサの動作情報を第1の情報保持手段
    に保持し、ブレーク割り込み発生時には当該ブレーク割
    り込み発生前の上記プロセッサの動作情報を上記第1の
    情報保持手段とは異なる第2の情報保持手段に保持し、
    割り込み状態から割り込み発生前の状態に上記プロセッ
    サを復帰させる際には、割り込み復帰命令の内容に応じ
    て上記第1の情報保持手段の動作情報または上記第2の
    情報保持手段の動作情報のいずれかを選択して復元する
    ようにしたことを特徴とする割り込み処理制御方法。
  5. 【請求項5】 通常割り込みの機能とブレーク割り込み
    の機能とを有する割り込み処理制御装置において、ブレ
    ーク割り込み発生時には、ブレーク割り込み状態から復
    帰するブレーク割り込み発生前の命令アドレスを少なく
    とも保持するとともに、ブレーク割り込み状態か否かを
    示すフラグをブレーク割り込み状態に設定し、上記ブレ
    ーク割り込み状態から割り込み発生前の状態に上記プロ
    セッサを復帰させる際には、上記ブレーク割り込み状態
    を示すフラグを解除するとともに、上記保持しておいた
    命令アドレスを復元するようにしたことを特徴とする割
    り込み処理制御方法。
JP30959899A 1998-10-29 1999-10-29 割り込み処理制御装置および方法 Pending JP2001125804A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP30959899A JP2001125804A (ja) 1999-10-29 1999-10-29 割り込み処理制御装置および方法
US09/678,732 US6681280B1 (en) 1998-10-29 2000-10-04 Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
EP00309397A EP1096386A3 (en) 1999-10-29 2000-10-25 Interrupt control apparatuses and methods
EP10178418A EP2273377B1 (en) 1999-10-29 2000-10-25 Interrupt control apparatuses and methods
KR1020000063082A KR100715704B1 (ko) 1999-10-29 2000-10-26 인터럽트 제어 장치 및 방법
US10/692,800 US7581090B2 (en) 1999-10-29 2003-10-27 Interrupt control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30959899A JP2001125804A (ja) 1999-10-29 1999-10-29 割り込み処理制御装置および方法

Publications (1)

Publication Number Publication Date
JP2001125804A true JP2001125804A (ja) 2001-05-11

Family

ID=17994968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30959899A Pending JP2001125804A (ja) 1998-10-29 1999-10-29 割り込み処理制御装置および方法

Country Status (1)

Country Link
JP (1) JP2001125804A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628218A (ja) * 1992-02-26 1994-02-04 Sharp Corp マイクロコンピュータのプログラム開発支援装置
JPH07319724A (ja) * 1994-05-25 1995-12-08 Nec Ic Microcomput Syst Ltd エミュレーションcpu
JPH08320794A (ja) * 1995-05-24 1996-12-03 Nec Corp マイクロプロセッサ
JPH09160800A (ja) * 1995-12-05 1997-06-20 Mitsubishi Electric Corp エミュレータ
JPH1069398A (ja) * 1996-04-26 1998-03-10 Nec Corp ソフトウェアディバグ用マイクロコンピュータ
JPH11143732A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd マイクロコンピュータ及びエミュレータ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628218A (ja) * 1992-02-26 1994-02-04 Sharp Corp マイクロコンピュータのプログラム開発支援装置
JPH07319724A (ja) * 1994-05-25 1995-12-08 Nec Ic Microcomput Syst Ltd エミュレーションcpu
JPH08320794A (ja) * 1995-05-24 1996-12-03 Nec Corp マイクロプロセッサ
JPH09160800A (ja) * 1995-12-05 1997-06-20 Mitsubishi Electric Corp エミュレータ
JPH1069398A (ja) * 1996-04-26 1998-03-10 Nec Corp ソフトウェアディバグ用マイクロコンピュータ
JPH11143732A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd マイクロコンピュータ及びエミュレータ

Similar Documents

Publication Publication Date Title
US6681280B1 (en) Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
US9727343B2 (en) Apparatus and method for handling exception events
JP2765411B2 (ja) 仮想計算機方式
US5537559A (en) Exception handling circuit and method
US7836430B2 (en) Reversing execution of instructions in a debugger
JP4476193B2 (ja) 情報処理方法および情報処理装置
JPH07219809A (ja) データ処理装置およびデータ処理方法
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
CN109416632B (zh) 用于处理数据的装置和方法
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JPH1196006A (ja) 情報処理装置
US6772372B2 (en) System and method for monitoring unaligned memory accesses
JPH0895798A (ja) データ処理装置
JP2001125804A (ja) 割り込み処理制御装置および方法
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
KR102584039B1 (ko) 콘텍스트 데이터 관리
JPH03269628A (ja) 例外処理方式
JP3029355B2 (ja) 命令のシングルステップ実行方式
JP3120841B2 (ja) インサーキットエミュレータ
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
US20020078286A1 (en) Computer and control method of the computer
JPH0581013A (ja) プロセツサ
JPH07334374A (ja) 割り込み検出処理装置
GB2500844A (en) Selecting either base level or further level stack when processing data in current further level exception state above base level
JP2004185356A (ja) デバッグ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090901

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100316