(57)【特許請求の範囲】
【請求項１】
条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するブレーク検出手段と、
読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定する条件判定手段と、
上記ブレーク検出手段による上記ブレークポイントの検出結果と、上記条件判定手段による判定結果とに基づいてブレーク割り込みの発生を制御する制御手段とを備えたことを特徴とする割込制御装置。
【請求項２】
条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果の検出信号を出力する命令ブレーク検出手段と、
読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、その結果の判定信号を出力する条件判定手段と、
上記命令ブレーク検出手段より出力される上記検出信号と、上記条件判定手段より出力される上記判定信号との論理積をとり、その結果に応じてブレーク割り込み発生通知を行う論理演算手段とを備えたことを特徴とする割込制御装置。
【請求項３】
条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行う命令ブレーク検出手段と、
上記命令ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。
【請求項４】
条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
上記条件付き命令を含む命令シーケンスの任意の場所で置き換えられたブレークポイント命令が実行されたか否かに応じてソフトウェア・ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行うソフトウェア・ブレーク検出手段と、
上記ソフトウェア・ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。
【請求項５】
条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを割込制御装置が制御する割込制御方法であって、
上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するとともに、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、上記ブレークポイントの検出結果と上記条件付き命令の判定結果とに基づいてブレーク割り込みの発生を制御するようにしたことを特徴とする割込制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は割込制御装置および方法に関し、特に、プログラムのデバッグを支援するシステムである所謂デバッガ等において、プログラムの実行を途中で停止させるブレーク割り込みの制御方式に用いて好適なものである。
【０００２】
【従来の技術】
従来、多くのデバッグ支援システムには、プログラムの動作等を検証するために、プログラムの実行を途中で中断させるためのブレーク割り込み機能が備えられている。ブレーク割り込み機能とは、デバッグ対象のプログラムにおいて、あらかじめ指定した任意の場所でプログラムの実行をその都度停止させるものである。このような機能は、プログラムのデバッグ処理において有益であるため、多くのデバッグ支援システムに組み込まれている。
【０００３】
このブレーク割り込み機能には各種の方式があるが、その中に、所定の命令でプログラムの実行を停止させるブレークポイント機能がある。この機能を用いる場合、利用者は、実行を停止させたい命令をあらかじめ指定しておいてから、デバッグ対象のプログラムを起動させる。これにより、デバッグ対象プログラムは、指定された命令で実行を停止する。その際に利用者は、必要であれば、その停止した時点でのレジスタやメモリの値を調べたり変更したりすることができる。その後、その停止した時点からプログラムの実行を再開することもできる。
【０００４】
このブレークポイント機能の実現方法としては、例えば、命令ブレークポイント、ソフトウェア・ブレークポイントといった方法がある。
上記命令ブレークポイントによる割り込みは、割り込みを発生させたい命令のアドレス（命令ブレークアドレス）をレジスタに設定し、このレジスタに設定した命令ブレークアドレスと現実に実行した命令の命令アドレスとが一致したときに発生する割り込みである。
【０００５】
すなわち、この命令ブレークでは、実行を停止させたい命令のアドレスを保持するブレークポイント・レジスタをハードウェアとして設ける。アプリケーションプログラムの通常の処理中にこのレジスタで指定される命令が検出されると、ブレ−ク割り込みが発生し、いわゆる割り込みハンドラ等の割り込み処理プログラムを経由してデバッグ支援プログラムに制御が移り、利用者にその旨が通知される。その後、利用者によるデバッグ等が完了して、元のプログラムの再開が指示されると、制御が元のアプリケーションプログラムに戻される。
【０００６】
また、ソフトウェア・ブレークポイントによる割り込みは、プログラム中の任意の場所に指定された命令を、割り込みを発生させる命令で置き換え、プログラムカウンタの進行に従ってプログラムを順次実行している中で、上記割り込みを発生させる命令を実行することにより発生する割り込みである。なお、割り込みを発生させる命令として、ブレークポイント命令と呼ばれる専用の命令を用意する方法もある。
【０００７】
すなわち、アプリケーションプログラムの通常の処理中に、割り込みを発生させる命令が検出されると、ブレーク割り込みが発生し、いわゆる割り込みハンドラ等の割り込み処理プログラムを経由してデバッグ支援プログラムに制御が移り、利用者にその旨が通知される。その後、利用者によるデバッグ等が完了して、元のプログラムの再開が指示されると、置き換えられた元の命令の実行をシミュレートした後、制御が元のアプリケーションプログラムに戻される。
【０００８】
上記命令ブレークポイントによる方法は、以下のような特徴を持つ。
・デバッグ対象プログラムを変更する必要がない。
・命令の実行をシミュレートする必要がない。
・レジスタ等のハードウェア上の制限から、設定可能なブレークポイント数が実質上制約を受ける。
また、上記ソフトウェア・ブレークポイントによる方法では、
・プログラム中に多くのブレークポイントを設定できる。
という特徴を持つ。
【０００９】
図４５は、ハードウェア機構による命令ブレーク方式を実現する従来の構成例を示すブロック図である。
図４５において、１０はメモリであり、アプリケーションや割り込みハンドラ等のプログラムを格納している。２０は命令フェッチ部、３０は命令実行部、４０は割り込み制御部、５０はレジスタ部である。
【００１０】
上記命令フェッチ部２０は、メモリ１０から読み出すべき命令語のアドレスを示すプログラム・カウンタ（ＰＣ）２１と、メモリ１０から読み出した命令語を保持する命令レジスタ（ＩＲ）２２と、命令ブレーク検出部２３とを備えている。この命令フェッチ部２０は、プログラム・カウンタ２１が示す命令アドレス６１に基づいてメモリ１０から命令語６２を読み出し、読み出した命令語６２を命令レジスタ２２に書き込み保持する。さらに、命令フェッチ部２０は、上記命令レジスタ２２が保持する命令語６３を命令実行部３０に供給する。
【００１１】
この命令フェッチ部２０は、命令実行部３０より分岐先の命令アドレス６４または割り込み状態から復帰する命令アドレス６５が供給されたとき、あるいは割り込み制御部４０より割り込みハンドラの命令アドレス６６が供給されたときには、その供給された命令アドレスをプログラム・カウンタ２１に書き込む。それ以外の場合は、次の命令語を順次読み出すべくプログラム・カウンタ２１の値をインクリメントする。
【００１２】
また、上記命令ブレーク検出部２３は、複数のブレークポイント・レジスタ２４-0〜２４-nと、これらのレジスタに各々対応して設けられた複数の判定部２５-0〜２５-nと、これらの判定部２５-0〜２５-nにおける各々の判定結果の論理和をとるＯＲ回路２６とを備える。
【００１３】
上記ブレークポイント・レジスタ２４-0〜２４-nはそれぞれ、実行を停止させたいブレークポイントの対象アドレスを保持するアドレスレジスタ２４ａと、命令ブレーク動作が有効か否かを示すフラグレジスタ２４ｂとを備える。このフラグレジスタ２４ｂは、その値が“１”のときには命令ブレーク動作有効状態を意味し、“０”のときには命令ブレーク動作無効状態を意味する。
【００１４】
また、上記判定部２５-0〜２５-nは、各々に対応して設けられたブレークポイント・レジスタ２４-0〜２４-nに保持された命令ブレークの発生条件が成立したか否かを判定するものである。すなわち、各判定部２５-0〜２５-nは、各ブレークポイント・レジスタ２４-0〜２４-nのアドレスレジスタ２４ａに保持された命令ブレークアドレスと、プログラム・カウンタ２１から供給される現在の実行アドレスとを比較し、両者が一致するか否かを判定する。
【００１５】
ここで、両アドレスが一致しており、かつ、フラグレジスタ２４ｂの値が“１”となっている場合には、命令ブレークの発生条件が成立したと判定する。一方、両アドレスが一致していないか、あるいは、両アドレスが一致していてもフラグレジスタ２４ｂの値が“０”となっている場合には、命令ブレークの発生条件が成立しなかったと判定する。そして、各判定部２５-0〜２５-nは、この判定結果を表す判定信号をＯＲ回路２６に夫々供給する。
【００１６】
ＯＲ回路２６は、全ての判定部２５-0〜２５-nから供給される判定信号の論理和をとる。これにより、少なくとも１つの判定部において命令ブレークの発生条件が成立していた場合には、ＯＲ回路２６は命令ブレークポイントによるブレーク割り込みが発生したことを検出し、当該ブレーク割り込みが発生した旨を割り込み通知信号６７によって割り込み制御部４０に通知する。
【００１７】
上記命令実行部３０は、命令フェッチ部２０より供給された命令語６３の指示に従い、演算、分岐、データのロード／ストア、割り込み状態からの復帰等の処理を実行する。例えば、供給された命令が演算命令であったときは、命令実行部３０は、レジスタアドレス６８で指定するレジスタ部５０内の汎用レジスタ（ＧＲ）５５から読み出したデータ値６９に基づいて演算を実行し、その演算の結果得られたデータ値７０をレジスタアドレス６８で指定する汎用レジスタ５５に書き込む。
【００１８】
また、供給された命令が分岐命令であって、分岐条件が成立したときには、命令実行部３０は、分岐先の命令アドレス６４を命令フェッチ部２０に供給する。また、供給された命令がロード命令であったときには、命令実行部３０は、レジスタアドレス６８で指定する汎用レジスタ５５より読み出したデータ値６９からメモリ１０上の実効アドレスを求め、その実効アドレスに対応したメモリ１０の領域からリードデータ７１を読み出し、それをレジスタアドレス６８で指定する汎用レジスタ５５に書き込む。
【００１９】
また、供給された命令がストア命令であったときには、命令実行部３０は、レジスタアドレス６８で指定する汎用レジスタ５５より読み出したデータ値６９からメモリ１０上の実効アドレスを求め、レジスタアドレス６８で指定する汎用レジスタ５５から読み出したデータ値６９を、上記実効アドレスに対応したメモリ１０の領域に書き込む。
【００２０】
また、供給された命令がプロセッサを割り込み状態から復帰させる命令であったときには、命令実行部３０は、割り込み状態からの復帰動作を実行する。すなわち、レジスタ部５０が備えている各レジスタに保持している割り込み発生前の動作情報に基づいて、割り込み発生前の動作情報を復元する処理を行う。
【００２１】
ここでは、元状態レジスタ（ＥＰＳＲ）５３の値を現状態レジスタ（ＰＳＲ）５４に書き込むとともに、復帰アドレスレジスタ（ＥＰＣＲ）５２の値を読み出し、その読み出した復帰アドレスを分岐先アドレス６５として命令フェッチ部２０に供給する。
【００２２】
なお、命令実行部３０において演算命令等を実行するとき、ゼロによる除算、データオーバーフロー等のエラーによる割り込みを検出した場合は、命令実行部３０は、当該割り込みが発生した旨を割り込み通知信号７４によって割り込み制御部４０に通知する。なお、命令ブレークあるいはソフトウェアブレークによるブレーク割り込みに対し、上述のエラー等による割り込みを通常割り込みと呼んで両者を区別する。
【００２３】
上記割り込み制御部４０は、命令フェッチ部２０からブレーク割り込みの割り込み通知信号６７を受信したとき、あるいは、命令実行部３０から通常割り込みの割り込み通知信号７４を受信したときに、命令フェッチ部２０、レジスタ部５０を制御して割り込み状態への移行動作を実行する。
【００２４】
すなわち、割り込み制御部４０は、割り込み通知信号６７，７４を受信すると、命令フェッチ部２０のプログラム・カウンタ２１から割り込み発生時の命令アドレス７３を読み出し、それをレジスタ部５０の復帰アドレスレジスタ５２に書き込む。そして、発生した割り込みに対応する割り込みハンドラの先頭アドレス６６を命令フェッチ部２０に供給し、そのアドレスをプログラム・カウンタ２１にセットする。また、割り込み制御部４０は、割り込み発生前のプロセッサの状態を元状態レジスタ５３に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ５４に書き込む。
【００２５】
上記レジスタ部５０は、上述した復帰アドレスレジスタ５２、元状態レジスタ５３、現状態レジスタ５４、汎用レジスタ５５の他に、条件レジスタ５１を備える。この条件レジスタ５１は、命令実行部３０が命令フェッチ部２０より供給される条件付き命令を実行する際に参照する条件コードを保持するものである。条件付き命令とは、指定された条件を満たすか否かをまず判断し、条件を満たす場合にのみデータ転送、演算等の指定された処理を実行する命令のことを言う。
【００２６】
また、復帰アドレスレジスタ５２は、割り込み状態から復帰する元の命令アドレス（割り込み発生時におけるプログラム・カウンタ２１の値７３）を保持するものである。また、元状態レジスタ５３は、割り込み発生前のプロセッサの状態（割り込みが発生していない通常のユーザ状態、割り込みの発生に応じて遷移するスーパバイザ状態など）を保持するものであり、現状態レジスタ５４は、現在のプロセッサの状態を保持するものである。
【００２７】
ここで、プロセッサの状態遷移について簡単に説明する。
プロセッサが通常のアプリケーションプログラムを処理しているときは、プロセッサの状態はユーザ状態である。このユーザ状態で割り込みが発生すると、プロセッサはスーパバイザ状態に遷移する。このスーパバイザ状態で割り込み復帰命令を実行すると、プロセッサはユーザ状態に復帰する。
【００２８】
一方、スーパバイザ状態で割り込み復帰命令を実行する前に、さらに割り込みが発生すると、プロセッサは現在のスーパバイザ状態から次のスーパバイザ状態に遷移する。そして、この新たなスーパバイザ状態で割り込み復帰命令を実行すると、プロセッサは元のスーパバイザ状態に復帰する。
【００２９】
次に、図４５に示すプロセッサの動作を説明する。プロセッサがユーザ状態にあるとき、命令フェッチ部２０は、プログラム・カウンタ２１により示される命令アドレス６１に基づき、メモリ１０から命令語６２を読み出し、読み出した命令語を命令レジスタ２２に書き込み保持する。さらに、命令フェッチ部２０は、命令レジスタ２２が保持する命令語６３を命令実行部３０に供給する。
【００３０】
命令実行部３０は、命令フェッチ部２０より供給された命令語６３を解釈し、その結果に従い、供給された命令の処理を実行する。このユーザ状態でブレーク割り込みあるいは通常割り込みが発生しなければ、プロセッサは以上の動作を繰り返し行う。
【００３１】
しかし、命令フェッチ部２０がブレーク割り込みを検出すると、命令フェッチ部２０は割り込み通知信号６７によりブレーク割り込みが発生した旨を割り込み制御部４０に通知する。また、命令実行部３０が通常割り込みを検出すると、命令実行部３０は割り込み通知信号７４により通常割り込みが発生した旨を割り込み制御部４０に通知する。
【００３２】
割り込み制御部４０は、命令フェッチ部２０または命令実行部３０から割り込み発生の通知を受信すると、命令フェッチ部２０およびレジスタ部５０を制御して以下のような処理を行う。
まず、割り込み制御部４０は、プログラム・カウンタ２１から現在示している命令アドレス７３を読み出し、読み出した命令アドレス７３を復帰アドレスレジスタ５２に書き込む。
【００３３】
また、割り込み制御部４０は、現状態レジスタ５４から割り込み発生前のプロセッサの状態（ユーザ状態）を読み出し、読み出したプロセッサの状態を元状態レジスタ５３に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ５４に書き込む。これにより、プロセッサはユーザ状態からスーパバイザ状態に遷移する。さらに、割り込み制御部４０は、発生した割り込みに対応する割り込みハンドラの先頭アドレス６６を命令フェッチ部２０に供給し、その値をプログラム・カウンタ２１にセットする。
【００３４】
スーパバイザ状態に遷移したプロセッサは、プログラム・カウンタ２１にセットされた割り込みハンドラの先頭アドレス６６に従って、当該割り込みハンドラの命令語６２を命令フェッチ部２０に読み出し、読み出した命令語を命令レジスタ２２に一旦保持した後、命令実行部３０に供給する。
【００３５】
命令実行部３０は、供給された命令語６３を解釈し、その結果に従って処理を実行する。このとき命令実行部３０は、割り込みハンドラの最終アドレスに向かって順次供給される命令語６３を実行するという動作を繰り返す。そして、発生した割り込みに対応する割り込みハンドラの処理が完了すると、プロセッサは割り込み復帰命令を実行する。
【００３６】
このとき、命令実行部３０は、割り込み復帰命令が供給されると、元状態レジスタ５３の値を読み出して、その値を現状態レジスタ５４に書き込む。これにより、プロセッサはスーパバイザ状態からユーザ状態に遷移する。さらに、命令実行部３０は、割り込み状態から復帰する元の命令アドレスを復帰アドレスレジスタ５２から読み出し、その命令アドレスを分岐先アドレス６５として命令フェッチ部２０に供給し、プログラム・カウンタ２１にセットする。
【００３７】
命令フェッチ部２０は、プログラム・カウンタ２１にセットされた元の命令アドレス６１に基づいて、通常動作時の命令語６２をメモリ１０から読み出し、それを命令レジスタ２２に一旦保持した後、命令実行部３０に供給する。これにより、命令実行部３０は、通常動作に対応したアプリケーションプログラムの残りの処理を実行する。
【００３８】
なお、命令ブレークによるブレーク割り込みの実行を設定する際には、命令ブレーク検出部２３が備える複数のブレークポイント・レジスタ２４-0〜２４-nに対応する複数のエントリ♯０〜♯ｎのうち、注目するエントリについて、ブレークポイントの対象アドレスをアドレスレジスタ２４ａに書き込むとともに、命令ブレーク動作有効状態であること表す“１”の値をフラグレジスタ２４ｂに書き込む。
【００３９】
一方、命令ブレークによるブレーク割り込みの実行を解除する際には、命令ブレーク検出部２３が備える複数のブレークポイント・レジスタ２４-0〜２４-nに対応する複数のエントリ♯０〜♯ｎのうち、注目するエントリについて、命令ブレーク動作無効状態であること表す“０”の値をフラグレジスタ２４ｂに書き込む。
【００４０】
図４６は、ブレークポイント命令によるソフトウェア・ブレーク方式を実現する従来の構成例を示すブロック図である。
なお、図４６において、図４５に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【００４１】
図４６において、命令フェッチ部２０は、命令アドレスの変換エラー等による通常割り込みを検出した場合は、当該通常割り込みが発生した旨を割り込み通知信号８１によって割り込み制御部４０に通知する。
また、命令フェッチ部２０より供給される命令を命令実行部３０において実行するとき、ブレークポイント命令が供給された場合、命令実行部３０は、ソフトウェア・ブレーク割り込みが発生した旨を割り込み通知信号８２によって割り込み制御部４０に通知する。
【００４２】
図４７は、ソフトウェア・ブレーク方式において命令実行部３０が保持するブレークポイント・テーブルの構成例を示す図である。
図４７において、VALID はブレークポイント動作が有効であるか否かを示す欄であり、その値が“１”のときにはブレークポイント動作有効状態を意味し、“０”のときにはブレークポイント動作無効状態を意味する。
【００４３】
また、ADDRESS は実行を停止させたいブレークポイントの対象アドレスを保持する欄である。また、INSTRUCTION はブレークポイントの対象命令語を保持する欄である。ブレークポイント対象命令語は、ブレークポイントを設定する際に、ブレーク割り込みを発生させるブレークポイント命令に置き換えられる。そのため、ブレークポイント動作を解除する際には、このINSTRUCTION の欄に保持されたブレークポイント対象命令語の情報により復元を行う。
【００４４】
ブレークポイント命令によるブレーク割り込みの実行を設定する際には、図４７のブレークポイント・テーブルが備える複数のエントリ♯０〜♯ｎのうち、注目するエントリについて、ブレークポイントを示す命令アドレスをADDRESS の欄に書き込み、ブレークポイントの対象とする命令語をINSTRUCTION の欄に書き込み、ブレークポイント動作有効状態であること表す“１”の値をVALID の欄に書き込む。さらに、ブレークポイント対象命令語を、ブレーク割り込みを発生させるブレークポイント命令に置き換える。
【００４５】
一方、ブレークポイント命令によるブレーク割り込みの実行を解除する際には、図４７のブレークポイント・テーブルが備える複数のエントリ♯０〜♯ｎのうち、注目するエントリについて、INSTRUCTION の欄に書き込まれたブレークポイント対象命令語を読み出し、そのブレークポイント対象命令語にブレークポイント命令を置き換える。さらに、上記注目するエントリについて、ブレークポイント動作無効状態であること表す“０”の値をVALID の欄に書き込む。
【００４６】
【発明が解決しようとする課題】
近年のプロセッサでは、その処理性能をより向上させるために、分岐命令の使用頻度を低く抑えることが望まれる。そのため、条件付き命令あるいはプリディケード実行（“HPL PlayDoh Architecture Specification ver1.0 ”Vinod Kathail Etc HPL 93-80 February 1994,“incorporating Guarded Execution into Existing Instruction Set ”D.N. Pnevmatikatos PDH Paper Wisconsin Univ. 1996, and“The Bebefit of Predicated Execution for Software Pipelining ”N.J. Warter etc. IIICSS-26 Conference Proceedings January 1993 Vol.1 pp497-606）などの手法が提案されている。
【００４７】
しかしながら、上記図４５に示した従来の命令ブレークによる割り込み方式では、命令ブレーク検出部２３の各ブレークポイント・レジスタ２４-0〜２４-nに設定した命令ブレークの発生条件を満たせば、必ずブレーク割り込みが発生することになる。そのため、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立していないにも関わらず、命令ブレークの発生条件が成立することでプログラムの実行が中断してしまうという問題があった。
【００４８】
また、上記図４６に示した従来のブレークポイント命令による割り込み方式においても、あらかじめ置き換えたブレークポイント命令が供給されたときには、必ずブレーク割り込みが発生することになる。そのため、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立していないにも関わらず、ブレークポイント命令が供給されることでプログラムの実行が中断してしまうという問題があった。
【００４９】
本発明は、このような問題を解決するために成されたものであり、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じて、ブレーク割り込みの発生を制御できるようにすることを目的とする。
【００５０】
【課題を解決するための手段】
本発明の割込制御装置は、条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するブレーク検出手段と、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定する条件判定手段と、上記ブレーク検出手段による上記ブレークポイントの検出結果と、上記条件判定手段による判定結果とに基づいてブレーク割り込みの発生を制御する制御手段とを備える。
【００５１】
より具体的には、例えば、レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果の検出信号を出力する命令ブレーク検出手段と、読み出された上記条件付き命令の条件を満たすか否かを判定し、その結果の判定信号を出力する条件判定手段と、上記命令ブレーク検出手段より出力される上記検出信号と、上記条件判定手段より出力される上記判定信号との論理積をとり、その結果に応じてブレーク割り込み発生通知を行う論理演算手段とを備える。
【００５２】
本発明の他の態様では、レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行う命令ブレーク検出手段と、上記命令ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備える。
【００５３】
本発明のその他の態様では、命令シーケンスの任意の場所で置き換えられたブレークポイント命令が実行されたか否かに応じてソフトウェア・ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行うソフトウェア・ブレーク検出手段と、上記ソフトウェア・ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備える。
【００５４】
また、本発明の割込制御方法は、条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを割込制御装置が制御する割込制御方法であって、上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するとともに、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、上記ブレークポイントの検出結果と上記条件付き命令の判定結果とに基づいてブレーク割り込みの発生を制御するようにする。
【００５５】
本発明は上記技術手段より成るので、命令ブレークやソフトウェア・ブレークなどのブレークポイントの検出結果だけでなく、与えられる命令が条件付き命令である場合にはその条件の成否の判定結果にも基づいてブレーク割り込みの発生が制御されることとなり、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することが可能となる。
【００５６】
【発明の実施の形態】
（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。
図１は、ハードウェア機構による命令ブレーク方式を実現する第１の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
なお、図１において、図４５に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【００５７】
第１の実施形態において、命令ブレーク検出部２３は、図４５で用いていた各判定部２５-0〜２５-nの代わりに、これとは異なる判定処理を行う各判定部１００-0〜１００-nを備えている。
【００５８】
そして、これらの判定部１００-0〜１００-nに対して、その各々に対応して設けられたブレークポイント・レジスタ２４-0〜２４-nに保持された命令ブレークアドレスおよびフラグと、プログラム・カウンタ２１から供給される現在の実行アドレスとに加え、レジスタ部５０の条件レジスタ５１から読み出される条件付き命令の条件コードと、命令レジスタ２２から読み出される現在実行中の命令語とを夫々供給するようにしている。
【００５９】
図２は、上記複数の判定部１００-0〜１００-nのうち、判定部１００-0の構成例を代表として示すブロック図である。なお、残りの判定部１００-1〜１００-nについてもこの図２と同様に構成される。
図２に示すように、本実施形態の判定部１００-0は、比較部１０１と、条件付き命令デコーダ１０２と、条件判定部１０３と、ＡＮＤ回路１０４とを備えている。
【００６０】
上記比較部１０１は、判定部１００-0に対応して設けられたブレークポイント・レジスタ２４-0のアドレスレジスタ２４ａに保持された命令ブレークアドレスと、プログラム・カウンタ２１から供給される現在の実行アドレスとを比較し、両者が一致するか否かを判定する。そして、両アドレスが一致した場合には値が“１”の判定信号を出力し、両アドレスが一致しなかった場合には値が“０”の判定信号を出力する。
【００６１】
条件付き命令デコーダ１０２は、命令レジスタ２２から供給される現在実行中の命令語をデコードして条件付き命令か否かを検出し、その結果を条件判定部１０３に供給する。条件判定部１０３は、この条件付き命令デコーダ１０２から供給される命令語のデコード結果に基づいて、条件レジスタ５１から供給される条件付き命令の条件コードで指定される条件が成立するか否かを判定する。そして、条件付き命令の条件が成立した場合には値が“１”の判定信号を出力し、条件が成立しなかった場合には値が“０”の判定信号を出力する。なお、条件付き命令デコーダ１０２によるデコードの結果、与えられた命令が条件付き命令でなかった場合は、条件判定部１０３は値が“０”の判定信号を出力する。
【００６２】
また、ＡＮＤ回路１０４は、判定部１００-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、上記比較部１０１より出力される命令ブレークアドレスに関する判定信号と、上記条件判定部１０３より出力される条件コードに関する判定信号との論理積をとり、その結果を図１のＯＲ回路２６に出力する。
【００６３】
このような構成により、命令ブレーク検出部２３が備える複数の判定部１００-0〜１００-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【００６４】
以上のように、第１の実施形態では、各判定部１００-0〜１００-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【００６５】
これにより、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、条件付き命令の条件が成立していないとき、あるいは与えられた命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【００６６】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。
図３は、ハードウェア機構による命令ブレーク方式を実現する第２の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
なお、図３において、図１に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【００６７】
上記図１に示した第１の実施形態では、１命令で１つの処理を行うスカラ・プロセッサについて説明した。これに対して、図３に示す第２の実施形態は、１命令で複数の処理を指定し、これらを並列に実行するＶＬＩＷ（Very Long Instruction Word）型プロセッサに適用したものである。
【００６８】
すなわち、図３に示すように、第２の実施形態における命令レジスタ２７は、複数の短命令から構成される固定長の長命令語を保持するように構成されている。また、命令ブレーク検出部２３が備える複数の判定部１１０-0〜１１０-nは、図４のように構成されている。なお、この図４は、上記複数の判定部１１０-0〜１１０-nのうち、１つの判定部１１０-0の構成を代表として示したものであり、図２に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【００６９】
図４に示すように、本実施形態の判定部１１０-0は、比較部１０１と、条件付き命令デコーダ１１１と、条件判定部１１２と、ＯＲ回路１１３と、ＡＮＤ回路１０４とを備えている。
上記条件付き命令デコーダ１１１は、命令レジスタ２７に保持される長命令語を構成する複数の短命令ＩＲ♯０〜ＩＲ♯ｉの各々に対応して設けられる複数の条件付き命令デコーダ１１１-0〜１１１-iを備え、命令レジスタ２７から供給されるそれぞれの短命令を夫々デコードして条件付き命令か否かを検出する。
【００７０】
条件判定部１１２は、上記複数の条件付き命令デコーダ１１１-0〜１１１-iの各々に対応して設けられる複数の条件判定部１１２-0〜１１２-iを備えている。これらの条件判定部１１２-0〜１１２-iは、対応する条件付き命令デコーダ１１１-0〜１１１-iから供給されるそれぞれの短命令のデコード結果に基づいて、条件レジスタ５１から供給される条件付き命令の条件コードで指定される条件が成立するか否かを夫々判定する。そして、条件付き命令の条件が成立した場合には値が“１”の判定信号を出力し、条件が成立しなかった場合には値が“０”の判定信号を出力する。なお、条件付き命令デコーダ１１１-0〜１１１-iによるデコードの結果、与えられた命令が条件付き命令でなかった場合は、条件判定部１１２-0〜１１２-iは値が“０”の判定信号を夫々出力する。
【００７１】
ＯＲ回路１１３は、上記複数の条件判定部１１２-0〜１１２-iからそれぞれ出力される判定信号の論理和をとり、その結果をＡＮＤ回路１０４に出力する。ＡＮＤ回路１０４は、判定部１１０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、比較部１０１より出力される命令ブレークアドレスに関する判定信号と、上記ＯＲ回路１１３より出力される条件コードに関する判定信号との論理積をとり、その結果を図３のＯＲ回路２６に出力する。
【００７２】
このような構成により、命令ブレーク検出部２３が備える複数の判定部１１０-0〜１１０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、長命令語を構成する複数の短命令のうち少なくとも１つについて条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【００７３】
以上のように、第２の実施形態では、各判定部１１０-0〜１１０-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、長命令語を構成する複数の短命令に関してそれぞれ条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【００７４】
これにより、長命令語を構成する複数の短命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの短命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの短命令においても条件付き命令の条件が成立していないとき、あるいは何れの短命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【００７５】
（第３の実施形態）
次に、本発明の第３の実施形態を図面に基づいて説明する。
図５は、ハードウェア機構による命令ブレーク方式を実現する第３の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
この図５に示す第３の実施形態によるプロセッサも、図３に示した第２の実施形態によるプロセッサと同様、ＶＬＩＷ型のプロセッサであり、図３に示したブロックと同じブロックには同一の符号を付している。
【００７６】
この図５に示す第３の実施形態では、命令ブレーク検出部２３が備える複数のブレークポイント・レジスタ２４-0〜２４-nは、実行を停止させたいブレークポイントの対象アドレスを保持するアドレスレジスタ２４ａと、命令ブレーク動作が有効か否かを示すフラグレジスタ２４ｂとに加えて、ブレークポイントの対象である長命令語の先頭部分からの変位情報を保持する変位レジスタ２４ｃを備えている。この変位レジスタ２４ｃに保持される変位情報を上記アドレスレジスタ２４ａに保持される命令ブレークアドレスと共に用いることで、１つの長命令語を構成する複数の短命令のうち何れか１つを特定する。
【００７７】
また、第３の実施形態による複数の判定部１２０-0〜１２０-nは、図６のように構成されている。なお、図６は、上記複数の判定部１２０-0〜１２０-nのうち、１つの判定部１２０-0の構成を代表として示したものであり、図２および図４に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【００７８】
図６に示すように、本実施形態の判定部１２０-0は、比較部１０１と、条件付き命令デコーダ１０２と、条件判定部１０３と、ＡＮＤ回路１０４と、セレクタ１２１とを備えている。
【００７９】
上記セレクタ１２１は、判定部１２０-0に対応して設けられたブレークポイント・レジスタ２４-0の変位レジスタ２４ｃに保持された変位情報を制御信号として選択状態を切り替えることにより、複数の短命令ＩＲ♯０〜ＩＲ♯ｉの中から当該変位情報により指定された短命令だけを選択的に条件付き命令デコーダ１０２に出力する。条件付き命令デコーダ１０２は、セレクタ１２１にて選択された短命令をデコードして条件付き命令か否かを検出し、その結果を条件判定部１０３に供給する。
【００８０】
このような構成により、命令ブレーク検出部２３が備える複数の判定部１２０-0〜１２０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、長命令語を構成する複数の短命令のうち何れか１つの選択された命令について条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【００８１】
以上のように、第３の実施形態では、各判定部１２０-0〜１２０-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、長命令語を構成する複数の短命令に関して、変位情報により特定した条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【００８２】
これにより、長命令語を構成する複数の短命令の中から変位情報により選択した特定の命令が条件付き命令である場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に特定された条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、特定された条件付き命令の条件が成立していないとき、あるいは特定された短命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【００８３】
（第４の実施形態）
次に、本発明の第４の実施形態を図面に基づいて説明する。
図７は、ハードウェア機構による命令ブレーク方式を実現する第４の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
なお、この図７において、図１および図３に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【００８４】
上記図１に示した第１の実施形態では、１命令で１つの処理を行うスカラ・プロセッサについて説明した。また、図３に示した第２の実施形態は、固定長である長命令語を構成する複数の短命令を並列に実行するＶＬＩＷ型プロセッサについて説明した。これに対して、図７に示す第４の実施形態は、可変長命令語を構成する１つまたは複数の基本命令を並列に実行する並列処理プロセッサに適用したものである。
【００８５】
すなわち、図７に示すように、第４の実施形態における命令レジスタ２８は、１つまたは複数の基本命令から構成される可変長命令語を保持するように構成されている。また、命令ブレーク検出部２３が備える複数の判定部１３０-0〜１３０-nは、図８のように構成されている。なお、この図８は、上記複数の判定部１３０-0〜１３０-nのうち、１つの判定部１３０-0の構成を代表として示したものである。
【００８６】
図８に示すように、本実施形態の判定部１３０-0は、比較部１０１と、有効命令エンコーダ１３１と、条件付き命令デコーダ１１１と、条件判定部１１２と、ＡＮＤ回路１３２と、ＯＲ回路１１３と、ＡＮＤ回路１０４とを備えている。なお、図８において、図４に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【００８７】
上記図４に示したＶＬＩＷ型プロセッサでは、１つの長命令語は固定長で形成されており、これを構成する短命令の個数は一定である。したがって、命令レジスタ２７には、ＩＲ♯０〜ＩＲ♯ｉのｉ個の短命令が常に格納される（未使用の部分には“ｎｏｐ”などの未実行命令が格納される）。
【００８８】
これに対して、図８に示す第４の実施形態による並列処理プロセッサでは、命令レジスタ２８に格納される命令語は可変長であり、これを構成する基本命令の個数は可変である。したがって、命令レジスタ２８には、最大ｉ個で任意の数の基本命令が左詰め（ＩＲ♯０側から順に）格納されることになる。この場合において、各基本命令の先頭部分には、その基本命令が可変長命令語の末尾に当たるものかどうかを表す１ビットのフラグを有している。
【００８９】
上記有効命令エンコーダ１３１は、命令レジスタ２８に格納される複数の基本命令をエンコードし、各基本命令の先頭部分に記述されたフラグ情報を参照することにより、命令レジスタ２８に何個の有効な基本命令が格納されているかを検出する。そして、命令レジスタ２８に格納されている基本命令の個数だけＩＲ♯０側から順に値が“１”のエンコード信号を出力し、残りは値が“０”のエンコード信号を出力する。
【００９０】
また、ＡＮＤ回路１３２は、複数の条件判定部１１２-0〜１１２-iの各々に対応して設けられる複数のＡＮＤ回路１３２-0〜１３２-iを備えている。各ＡＮＤ回路１３２-0〜１３２-iは、対応する条件判定部１１２-0〜１１２-iにより得られた条件付き命令の条件が成立するか否かの判定信号と、上記有効命令エンコーダ１３１から命令レジスタ２８の各基本命令ＩＲ♯０〜ＩＲ♯ｉの部分に対応して出力されるエンコード信号との論理積を夫々とり、その結果をＯＲ回路１１３に出力する。
【００９１】
ＯＲ回路１１３は、上記複数のＡＮＤ回路１３２-0〜１３２-iからそれぞれ出力される信号の論理和をとり、その結果をＡＮＤ回路１０４に出力する。ＡＮＤ回路１０４は、判定部１１０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、比較部１０１より出力される命令ブレークアドレスに関する判定信号と、上記ＯＲ回路１１３より出力される条件コードに関する判定信号との論理積をとり、その結果を図７のＯＲ回路２６に出力する。
【００９２】
このような構成により、命令ブレーク検出部２３が備える複数の判定部１３０-0〜１３０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、可変長命令語を構成する複数の基本命令のうち少なくとも１つについて条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【００９３】
以上のように、第４の実施形態では、各判定部１３０-0〜１３０-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、可変長命令語を構成する複数の基本命令に関してそれぞれ条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【００９４】
これにより、可変長命令語を構成する複数の基本命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの基本命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの基本命令においても条件付き命令の条件が成立していないとき、あるいは何れの基本命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【００９５】
（第５の実施形態）
次に、本発明の第５の実施形態を図面に基づいて説明する。
図９は、ハードウェア機構による命令ブレーク方式を実現する第５の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
この図９に示す第５の実施形態によるプロセッサも、図７に示した第４の実施形態によるプロセッサと同様の並列処理プロセッサであり、図７に示したブロックと同じブロックには同一の符号を付している。
【００９６】
この図９に示す第５の実施形態では、図５に示した第３の実施形態と同様に、命令ブレーク検出部２３が備える複数のブレークポイント・レジスタ２４-0〜２４-nは、アドレスレジスタ２４ａとフラグレジスタ２４ｂと変位レジスタ２４ｃとを備えている。この変位レジスタ２４ｃに保持される変位情報を上記アドレスレジスタ２４ａに保持される命令ブレークアドレスと共に用いることで、１つの可変長命令語を構成する複数の基本命令のうち何れか１つを特定する。
【００９７】
また、第５の実施形態による複数の判定部１４０-0〜１４０-nは、図１０のように構成されている。なお、図１０は、上記複数の判定部１４０-0〜１４０-nのうち、１つの判定部１４０-0の構成を代表として示したものであり、図６および図８に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【００９８】
図１０に示すように、本実施形態の判定部１４０-0は、比較部１０１と、条件付き命令デコーダ１０２と、条件判定部１０３と、ＡＮＤ回路１０４と、第１のセレクタ１２１と、有効命令エンコーダ１３１と、第２のセレクタ１４１と、ＡＮＤ回路１４２とを備えている。
【００９９】
上記第２のセレクタ１４１は、判定部１４０-0に対応して設けられたブレークポイント・レジスタ２４-0の変位レジスタ２４ｃに保持された変位情報を制御信号として選択状態を切り替えることにより、有効命令エンコーダ１３１から命令レジスタ２８の各基本命令ＩＲ♯０〜ＩＲ♯ｉの部分に対応して出力される複数のエンコード信号の中から、変位情報により指定されたエンコード信号だけを選択的にＡＮＤ回路１４２に出力する。
【０１００】
ＡＮＤ回路１４２は、変位情報に基づき第１のセレクタ１２１で選択された条件付き命令について条件判定部１０３により得られた条件成否の判定信号と、上記変位情報に基づき第２のセレクタ１４１で選択されたエンコード信号との論理積をとり、その結果をＯＲ回路１０４に出力する。
【０１０１】
このような構成により、命令ブレーク検出部２３が備える複数の判定部１４０-0〜１４０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、可変長命令語を構成する複数の基本命令のうち何れか１つの選択された命令について条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１０２】
以上のように、第５の実施形態では、各判定部１４０-0〜１４０-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、並列処理プロセッサの可変長命令語を構成する複数の基本命令に関して、変位情報により特定した条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【０１０３】
これにより、可変長命令語を構成する複数の基本命令の中から変位情報により選択した命令が条件付き命令である場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に特定された条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、特定された条件付き命令の条件が成立していないとき、あるいは特定された基本命令が非条件付き命令のときはブレーク割り込みを発生させないようにすることができる。
【０１０４】
（第６の実施形態）
次に、本発明の第６の実施形態を図面に基づいて説明する。
図１１は、ハードウェア機構による命令ブレーク方式を実現する第６の実施形態による情報処理装置（スカラプロセッサ）の構成例を示すブロック図である。なお、図１１において、図１に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【０１０５】
図１１に示す第６の実施形態では、命令ブレーク検出部２３が備える複数のブレークポイント・レジスタ２４-0〜２４-nは、実行を停止させたいブレークポイントの対象アドレスを保持するアドレスレジスタ２４ａと、命令ブレーク動作が有効か否かを示すフラグレジスタ２４ｂとに加えて、命令ブレークモードか条件付き命令ブレークモードかを表すモード情報を保持するモードレジスタ２４ｄを備える。このモードレジスタ２４ｄは、その値が“０”のときには命令ブレークモードを意味し、“１”のときには条件付き命令ブレークモードを意味する。
【０１０６】
上記命令ブレークモードとは、アドレスレジスタ２４ａおよびフラグレジスタ２４ｂに保持された命令ブレークの発生条件を満たせばブレーク割り込みを発生させるモードを言う。また、条件付き命令ブレークモードとは、第１の実施形態で説明したように、上記命令ブレークの発生条件だけでなく、条件付き命令の条件をも満たす場合にブレーク割り込みを発生させるモードを言う。
【０１０７】
また、第６の実施形態による複数の判定部１５０-0〜１５０-nは、図１２のように構成されている。なお、図１２は、上記複数の判定部１５０-0〜１５０-nのうち、１つの判定部１５０-0の構成を代表として示したものであり、図２に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【０１０８】
図１２に示すように、本実施形態の判定部１５０-0は、比較部１０１と、条件付き命令デコーダ１０２と、条件判定部１０３と、２つのＡＮＤ回路１５１，１５２と、ＯＲ回路１５３とを備えている。
一方のＡＮＤ回路１５１は、比較部１０１より出力される命令ブレークアドレスに関する判定信号と、条件判定部１０３より出力される条件コードに関する判定信号と、判定部１５０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、モードレジスタ２４ｄの値との論理積をとり、その結果をＯＲ回路１５３に出力する。
【０１０９】
もう一方のＡＮＤ回路１５２は、比較部１０１より出力される命令ブレークアドレスに関する判定信号と、判定部１５０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、モードレジスタ２４ｄの値を反転した値との論理積をとり、その結果をＯＲ回路１５３に出力する。ＯＲ回路１５３は、上記２つのＡＮＤ回路１５１，１５２から出力される信号の論理和をとり、その結果を図１１のＯＲ回路２６に出力する。
【０１１０】
このような構成により、モードレジスタ２４ｄに格納されたモード情報により条件付き命令ブレークモードが指定されているときは、命令ブレーク検出部２３が備える複数の判定部１５０-0〜１５０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１１１】
一方、モードレジスタ２４ｄに格納されたモード情報により命令ブレークモードが指定されているときは、命令ブレーク検出部２３が備える複数の判定部１５０-0〜１５０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっていれば、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１１２】
以上のように、第６の実施形態によれば、条件付き命令ブレークモードを指定することにより、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することにより、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１１３】
なお、この第６の実施形態では、第１の実施形態で説明したスカラプロセッサに対してモードレジスタ２４ｄを追加し、それに伴い各判定部１５０-0〜１５０-n内にも２つのＡＮＤ回路１５１，１５２とＡＮＤ回路１５３とを設けた構成について説明したが、第２〜第５の実施形態で説明したＶＬＩＷ型プロセッサおよび並列処理プロセッサの構成に対して同様にこれらの構成を追加するようにしても良い。
【０１１４】
この場合の各判定部内の構成は、それぞれ図１３〜図１６に示すようになる。なお、これらの図１３〜図１６中に示した各構成要素は、図４、図６、図８、図１０、図１２中に示した同一符号の構成要素と全て同じものであり、その動作は既に述べた通りであるので、ここではこれら図１３〜図１６の詳しい説明は省略する。
【０１１５】
（第７の実施形態）
次に、本発明の第７の実施形態を図面に基づいて説明する。
図１７は、ハードウェア機構による命令ブレーク方式を実現する第７の実施形態による情報処理装置（スカラプロセッサ）の構成例を示すブロック図である。なお、図１７において、図１に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【０１１６】
図１７に示す第７の実施形態において、図１に示した第１の実施形態と異なるところは、命令ブレーク検出部２３が備える複数の判定部の構成であり、本実施形態の各判定部１６０-0〜１６０-nは、例えば図１８のように構成されている。なお、この図１８は、上記複数の判定部１６０-0〜１６０-nのうち、１つの判定部１６０-0の構成を代表として示したものであり、図２に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【０１１７】
図１８に示すように、本実施形態の判定部１６０-0は、比較部１０１と、条件付き命令デコーダ１０２と、条件判定部１０３と、ＡＮＤ回路１０４と、非条件付き命令デコーダ１６１と、ＯＲ回路１６２とを備えている。
上記非条件付き命令デコーダ１６１は、命令レジスタ２２から供給される現在実行中の命令語をデコードして非条件付き命令か否かを検出し、その結果をＯＲ回路１６２に供給する。このとき非条件付き命令デコーダ１６１は、与えられた命令語が非条件付き命令の場合に、値が“１”の信号を出力する。
【０１１８】
また、本実施形態の条件判定部１０３は、条件付き命令デコーダ１０２における条件付き命令か否かのデコード結果に基づいて、条件レジスタ５１から供給される条件付き命令の条件コードで指定される条件が成立するか否かを判定し、その判定信号をＯＲ回路１６２に供給する。
【０１１９】
ＯＲ回路１６２は、条件付き命令について条件判定部１０３により得られた条件成否の判定信号と、非条件付き命令デコーダ１６１により得られた非条件付き命令か否かの判定信号との論理和をとり、その結果をＡＮＤ回路１０４に出力する。
【０１２０】
ＡＮＤ回路１０４は、判定部１６０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、上記比較部１０１より出力される命令ブレークアドレスに関する判定信号と、上記ＯＲ回路１６２より出力される信号との論理積をとり、その結果を図１７のＯＲ回路２６に出力する。
【０１２１】
このような構成により、命令レジスタ２２に格納された命令語が条件付き命令の場合は、命令ブレーク検出部２３が備える複数の判定部１６０-0〜１６０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、条件付き命令の条件が成立している場合には、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１２２】
一方、命令レジスタ２２に格納された命令語が非条件付き命令の場合は、命令語が条件付き命令のときに条件が成立した場合と同様に、ＯＲ回路１６２からは値が“１”の信号が出力される。したがって、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっていれば、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１２３】
以上のように、第７の実施形態によれば、与えられた命令語が条件付き命令の場合には、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、与えられた命令語が非条件付き命令の場合には、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１２４】
なお、この第７の実施形態では、第１の実施形態で説明したスカラプロセッサに対して各判定部１６０-0〜１６０-n内に非条件付き命令デコーダ１６１およびＯＲ回路１６２を追加した構成について説明したが、第２〜第５の実施形態で説明したＶＬＩＷ型プロセッサおよび並列処理プロセッサの構成に対して同様にこれらの構成を追加するようにしても良い。
【０１２５】
この場合の各判定部内の構成は、それぞれ図１９〜図２２に示すようになる。なお、これらの図１９〜図２２中に示した各構成要素は、図４、図６、図８、図１０、図１８中に示した同一符号の構成要素と全て同じものであり、その動作は既に述べた通りである。また、′の記号を付けて示した構成要素はこの記号なしの構成要素と同様の機能を有するものであるので、ここでこれら図１９〜図２２の詳しい説明をするまでもなく、その動作は明確となるであろう。
【０１２６】
（第８の実施形態）
次に、本発明の第８の実施形態を図面に基づいて説明する。
図２３は、ハードウェア機構による命令ブレーク方式を実現する第８の実施形態による情報処理装置（スカラプロセッサ）の構成例を示すブロック図である。この第８の実施形態は、図１１に示した第６の実施形態と、図１７に示した第７の実施形態とを組み合わせたものである。なお、この第８の実施形態を示す図２３において、図１１および図１７に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【０１２７】
図２３に示す第８の実施形態において、図１１に示した第６の実施形態および図１７に示した第７の実施形態と異なるところは、命令ブレーク検出部２３が備える複数の判定部の構成であり、本実施形態の各判定部１７０-0〜１７０-nは、例えば図２４のように構成されている。なお、この図２４は、上記複数の判定部１７０-0〜１７０-nのうち、１つの判定部１７０-0の構成を代表として示したものであり、図１２および図１８に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【０１２８】
図２４に示すように、本実施形態の判定部１７０-0は、比較部１０１と、条件付き命令デコーダ１０２と、条件判定部１０３と、２つのＡＮＤ回路１５１，１５２と、ＯＲ回路１５３と、非条件付き命令デコーダ１６１と、ＯＲ回路１６２とを備えている。
【０１２９】
上記非条件付き命令デコーダ１６１は、命令レジスタ２２から供給される現在実行中の命令語をデコードして非条件付き命令か否かを検出し、その結果をＯＲ回路１６２に供給する。このとき非条件付き命令デコーダ１６１は、与えられた命令語が非条件付き命令の場合に、値が“１”の信号を出力する。
【０１３０】
また、本実施形態の条件判定部１０３は、条件付き命令デコーダ１０２における条件付き命令か否かのデコード結果に基づいて、条件レジスタ５１から供給される条件付き命令の条件コードで指定される条件が成立するか否かを判定し、その判定信号をＯＲ回路１６２に供給する。
【０１３１】
ＯＲ回路１６２は、条件付き命令について条件判定部１０３により得られた条件成否の判定信号と、非条件付き命令デコーダ１６１により得られた非条件付き命令か否かの判定信号との論理和をとり、その結果を一方のＡＮＤ回路１５１に出力する。
【０１３２】
上記一方のＡＮＤ回路１５１は、上記ＯＲ回路１６２から出力される信号と、比較部１０１より出力される命令ブレークアドレスに関する判定信号と、判定部１７０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、モードレジスタ２４ｄの値との論理積をとり、その結果をＯＲ回路１５３に出力する。
【０１３３】
もう一方のＡＮＤ回路１５２は、比較部１０１より出力される命令ブレークアドレスに関する判定信号と、判定部１７０-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、モードレジスタ２４ｄの値を反転した値との論理積をとり、その結果をＯＲ回路１５３に出力する。ＯＲ回路１５３は、上記２つのＡＮＤ回路１５１，１５２から出力される信号の論理和をとり、その結果を図２３のＯＲ回路２６に出力する。
【０１３４】
このような構成により、モードレジスタ２４ｄに格納されたモード情報により条件付き命令ブレークモードが指定されており、命令レジスタ２２に格納された命令語が条件付き命令の場合は、命令ブレーク検出部２３が備える複数の判定部１７０-0〜１７０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっており、かつ、条件付き命令の条件が成立している場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１３５】
また、モードレジスタ２４ｄに格納されたモード情報により条件付き命令ブレークモードが指定されており、命令レジスタ２２に格納された命令語が非条件付き命令の場合は、命令ブレーク検出部２３が備える複数の判定部１７０-0〜１７０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっていれば、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１３６】
また、モードレジスタ２４ｄに格納されたモード情報により命令ブレークモードが指定されているときは、命令ブレーク検出部２３が備える複数の判定部１７０-0〜１７０-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっていれば、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１３７】
以上のように、第８の実施形態によれば、条件付き命令ブレークモードを指定することによって、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することによって、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１３８】
さらに、条件付き命令ブレークモードを指定しているときに、与えられた命令語が条件付き命令の場合に、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるだけでなく、与えられた命令語が非条件付き命令の場合も、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１３９】
なお、この第８の実施形態では、第１の実施形態で説明したスカラプロセッサに対してモードレジスタ２４ｄを追加し、各判定部１７０-0〜１７０-n内にも２つのＡＮＤ回路１５１，１５２とＡＮＤ回路１５３、および非条件付き命令デコーダ１６１とＯＲ回路１６２を追加した構成について説明したが、第２〜第５の実施形態で説明したＶＬＩＷ型プロセッサおよび並列処理プロセッサの構成に対して同様にこれらの構成を追加するようにしても良い。
【０１４０】
この場合の各判定部内の構成は、それぞれ図２５〜図２８に示すようになる。なお、これらの図２５〜図２８中に示した各構成要素は、図４、図６、図８、図１０、図１８、図２４中に示した同一符号の構成要素と全て同じものであり、その動作は既に述べた通りである。また、′の記号を付けて示した構成要素はこの記号なしの構成要素と同様の機能を有するものであるので、ここでこれら図２５〜図２８の詳しい説明をするまでもなく、その動作は明確となるであろう。
【０１４１】
（第９の実施形態）
次に、本発明の第９の実施形態を図面に基づいて説明する。
上記第１〜第８の実施形態では、命令ブレークの発生条件および条件付き命令の条件が成立するか否かをハードウェア機構により実現する例について説明した。これに対して、この第９の実施形態を含む以下の第１３の実施形態までの各実施形態は、少なくとも条件付き命令の条件が成立するか否かをソフトウェアの機能により実現する例について説明する。
【０１４２】
第９〜第１２の実施形態において、命令ブレーク方式を実現するための情報処理装置（プロセッサ）の全体構成は、図４５に示したものと同様である。これから分かるように、命令ブレークの発生条件が成立するか否かについては、ブレークポイントの対象アドレスおよび命令ブレーク動作が有効か否かのフラグ情報を保持するブレークポイント・レジスタ２４-0〜２４-nと、これらの情報に基づき命令ブレークの発生条件が成立したか否かを判定する判定部２５-0〜２５-nとを用いたハードウェア機構により判定する。
【０１４３】
この場合の判定部２５-0〜２５-nは、図２９のように構成される。なお、この図２９は、上記複数の判定部２５-0〜２５-nのうち、判定部２５-0の構成を代表として示したものであり、図２に示したブロックと同じブロックには同一の符号を付している。
図２９に示すように、本実施形態の判定部２５-0は、比較部１０１とＡＮＤ回路１０４とを備えている。
【０１４４】
上記比較部１０１は、判定部２５-0に対応して設けられたブレークポイント・レジスタ２４-0のアドレスレジスタ２４ａに保持された命令ブレークアドレスと、プログラム・カウンタ２１から供給される現在の実行アドレスとを比較し、両者が一致するか否かを判定する。そして、両アドレスが一致した場合には値が“１”の判定信号を出力し、両アドレスが一致しなかった場合には値が“０”の判定信号を出力する。
【０１４５】
また、ＡＮＤ回路１０４は、判定部２５-0に対応して設けられたブレークポイント・レジスタ２４-0のフラグレジスタ２４ｂの値と、上記比較部１０１より出力される命令ブレークアドレスに関する判定信号との論理積をとり、その結果を図４５のＯＲ回路２６に出力する。
【０１４６】
このような構成により、命令ブレーク検出部２３が備える複数の判定部２５-0〜２５-nのうち、少なくとも１つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ２４ｂの値が“１”となっている場合に、ＯＲ回路２６は割り込み制御部４０に割り込み通知信号６７を出力する。
【０１４７】
なお、本実施形態において出力される割り込み通知信号６７は、命令ブレークの発生条件が成立したことを示すのみで、条件付き命令の条件が成立したことまでは含んでいない。この条件付き命令の条件が成立するか否かについては、上記割り込み通知信号６７の受信に応じて起動される、メモリ１０に格納されたプログラムである条件判定のための割り込みハンドラによって判定することになる。
【０１４８】
すなわち、上記割り込み制御部４０は、ＯＲ回路２６から割り込み通知信号６７を受信すると、命令フェッチ部２０のプログラム・カウンタ２１から割り込み発生時の命令アドレス７３を読み出し、それをレジスタ部５０の復帰アドレスレジスタ５２に書き込む。そして、条件付き命令の条件を判断するための割り込みハンドラの先頭アドレス６６を命令フェッチ部２０に供給し、そのアドレスをプログラム・カウンタ２１にセットする。また、割り込み制御部４０は、割り込み発生前のプロセッサの状態を元状態レジスタ５３に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ５４に書き込む。これにより、プロセッサはユーザ状態からスーパバイザ状態に遷移する。
【０１４９】
このようにしてスーパバイザ状態に遷移したプロセッサは、プログラム・カウンタ２１にセットされた割り込みハンドラの先頭アドレス６６から順に、当該割り込みハンドラの処理を実行する。
図３０は、第９の実施形態による割り込みハンドラの処理手順を示すフローチャートである。この第９の実施形態は、第１の実施形態に示したスカラプロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断に基づく割り込み制御を、図３０のフローチャートに示すソフトウェアの機能により行うものである。
【０１５０】
図３０において、ステップＳ１では、コンテキストの退避処理を行う。すなわち、ここでは割り込みハンドラにて使用するレジスタ部５０の値をメモリ１０へ書き込む。次に、ステップＳ２では、例えば図４５の命令実行部３０が備えるブレークポイント・テーブルを参照して、ブレーク割り込み発生アドレスに対応するエントリを求める。すなわち、命令実行部３０には、図３１に示すようなブレークポイント・テーブルがあらかじめ設定され、保持されている。この図３１において、VALID はブレークポイント動作が有効であるか否かを示す欄であり、その値が“１”のときにはブレークポイント動作有効状態をを意味し、“０”のときにはブレークポイント動作無効状態を意味する。また、ADDRESS は実行を停止させたいブレークポイントの対象アドレスを保持する欄である。
【０１５１】
上記ステップＳ２では、この図３１に示すブレークポイント・テーブルのADDRESS の欄を参照して、図４５の複数のブレークポイント・レジスタ２４-0〜２４-nが備える各アドレスレジスタ２４ａに格納されている命令アドレスのうち、ブレーク割り込み発生の要因となった命令アドレスが存在するエントリを♯０〜♯ｎの中から求める。
【０１５２】
次に、ステップＳ３では、ブレークポイント・テーブルの中にブレーク割り込み発生アドレスに対応するエントリが見つかったか否かを判断する。ここで、該当するエントリが見つからなかった場合は、不当な命令ブレークであると判定して、ステップＳ４に進んで不当な命令ブレークに対するエラー処理を実行する。一方、該当するエントリが見つかった場合は、ステップＳ５に進む。
【０１５３】
ステップＳ５では、ブレークポイント対象の命令語（割り込み通知信号６７を発生させる要因となった命令語）が条件付き命令か否かを求める。そして、ステップＳ６で、ブレークポイント対象の命令語が条件付き命令か否かを判断する。ここで、条件付き命令でなかった場合は、命令ブレークに対する処理を行うことなくステップＳ１０にジャンプする。
【０１５４】
一方、ブレークポイント対象命令語が条件付き命令であった場合は、ステップＳ７に進む。ステップＳ７では、条件レジスタ５１を参照して、条件付き命令であるブレークポイント対象命令語の条件が成立するか否かを求める。そして、ステップＳ８で、条件付き命令の条件が成立したか否かを判断し、成立しなかった場合は、命令ブレークに対する処理を行うことなくステップＳ１０にジャンプする。
【０１５５】
また、条件付き命令の条件が成立した場合は、ステップＳ９に進み、命令ブレークに対する処理を実行する。すなわち、順次インクリメントされるプログラム・カウンタ２１の値に従って、割り込みハンドラの命令語６２を命令フェッチ部２０に読み出し、読み出した命令語に従って命令実行部３０が割り込みハンドラの最終アドレスに向かって順次処理を実行していく。
【０１５６】
そして、発生した割り込みに対応する割り込みハンドラの最終段において、ステップＳ１０でコンテキストの復元処理を行う。コンテキストの復元処理が終わると、次にステップＳ１１に進み、命令実行部３０はブレーク割り込み復帰命令を実行して、命令ブレーク割り込みの処理から元のアプリケーションプログラムの処理へと復帰する。
【０１５７】
すなわち、まず命令実行部３０は、元状態レジスタ５３の値を読み出して、その値を現状態レジスタ５４に書き込む。これにより、プロセッサはスーパバイザ状態からユーザ状態に遷移する。さらに、命令実行部３０は、割り込み状態から復帰する元の命令アドレスを復帰アドレスレジスタ５２から読み出し、その命令アドレスを分岐先アドレス６５として命令フェッチ部２０に供給し、プログラム・カウンタ２１にセットする。
【０１５８】
これに対応して命令フェッチ部２０は、プログラム・カウンタ２１にセットされた元の命令アドレスに基づいて、通常動作時の命令語６２をメモリ１０から読み出して、それを命令レジスタ２２に一旦保持した後、命令実行部３０に供給する。これにより、命令実行部３０が通常動作に対応したアプリケーションの残りの処理を実行する。
【０１５９】
上述のように、ブレークポイント対象命令語が条件付き命令でなかった場合、および条件付き命令の条件が成立しなかった場合は、ステップＳ９で命令ブレークに対する処理を行うことなく直ちにステップＳ１０に進む。そして、このステップＳ１０でコンテキストの復元処理を行うとともに、続くステップＳ１１で命令ブレーク割り込みからの復帰処理を行い、元のアプリケーションプログラムの動作に戻る。
【０１６０】
以上のように、第９の実施形態では、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かを各判定部２５-0〜２５-nにより判定するとともに、条件付き命令の条件が成立しているか否かを割り込みハンドラのソフトウェアにより判定し、両条件とも成立している場合にのみブレーク割り込みの処理を実際に実行するようにしている。
【０１６１】
これにより、第１の実施形態と同様に、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、条件付き命令の条件が成立していないとき、あるいは与えられた命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【０１６２】
なお、以上の第９の実施形態では、第１の実施形態に示したスカラプロセッサに対応する処理をソフトウェアの機能により実現しているが、第２および第３の実施形態に示したＶＬＩＷ型プロセッサ、あるいは第４および第５の実施形態に示した並列処理プロセッサに対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【０１６３】
例えば、第２の実施形態に示したＶＬＩＷ型プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図３２のようになる。図３２において、ステップＳ１５では、ブレークポイント対象の長命令語が条件付き命令から成る短命令を含むか否かを求め、その結果に基づいてステップＳ１６で、ブレークポイント対象の長命令語が条件付き命令を含むか否かを判断する。
【０１６４】
そして、長命令語を構成する複数の短命令が非条件付き命令のみであった場合はステップＳ１０にジャンプし、条件付き命令を含んでいた場合はステップＳ１７に進む。ステップＳ１７では、条件レジスタ５１を参照して、ブレークポイント対象の長命令語に含まれる条件付き命令の条件が成立するか否かを求め、ステップＳ８でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【０１６５】
このようにすれば、長命令語を構成する複数の短命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの短命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの短命令においても条件付き命令の条件が成立していないとき、あるいは何れの短命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【０１６６】
また、第３の実施形態に示したＶＬＩＷ型プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図３３のようになる。図３３において、ステップＳ２５では、ブレークポイント対象の長命令語を構成する複数の短命令のうち、注目する短命令が条件付き命令か否かを求め、ステップＳ２６では、その注目する短命令が条件付き命令であるか否かを判断する。
【０１６７】
ここで、長命令語の中の注目する短命令は、命令実行部３０が保持するブレークポイント・テーブルを参照して特定する。すなわち、この場合のブレークポイント・テーブルは、図３４のように構成されており、図３１に示したブレークポイント・テーブルと較べて、DISPの欄が追加されている。このDISPは、ブレークポイント対象の長命令語の先頭部分からの変位情報を保持するための欄であり、この変位情報をADDRESS の欄に保持される命令ブレークアドレスと共に用いることで、１つの長命令語を構成する複数の短命令のうち何れか１つを特定する。
【０１６８】
上記ステップＳ２６において、注目する短命令が条件付き命令でなかったと判断した場合はステップＳ１０にジャンプし、条件付き命令であった場合はステップＳ２７に進む。ステップＳ２７では、条件レジスタ５１を参照して、ブレークポイント対象の長命令語の中で注目している条件付き命令の条件が成立するか否かを求め、ステップＳ８でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【０１６９】
このようにすれば、長命令語を構成する複数の短命令のうち何れかの命令を指定して条件付き命令の条件が成立しているか否かを判定し、その条件の成否に応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に指定した条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、指定された条件付き命令の条件が成立していないとき、あるいは指定された短命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【０１７０】
また、第４の実施形態に示した並列処理プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図３５のようになる。図３５において、ステップＳ３５では、ブレークポイント対象の可変長命令語が条件付き命令から成る基本命令を含むか否かを求め、その結果に基づいてステップＳ３６で、上記可変長命令語が条件付き命令を含むか否かを判断する。
【０１７１】
そして、ブレークポイント対象命令語を構成する複数の基本命令が非条件付き命令のみであった場合はステップＳ１０にジャンプし、条件付き命令を含んでいた場合はステップＳ３７に進む。ステップＳ３７では、条件レジスタ５１を参照して、ブレークポイント対象命令語に含まれる条件付き命令の条件が成立するか否かを求め、ステップＳ８でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【０１７２】
このようにすれば、可変長命令語を構成する複数の基本命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの基本命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの基本命令においても条件付き命令の条件が成立していないとき、あるいは何れの基本命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【０１７３】
また、第５の実施形態に示した並列処理プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図３６のようになる。図３６において、ステップＳ４５では、ブレークポイント対象の可変長命令語を構成する複数の基本命令のうち、注目する基本命令が条件付き命令か否かを求め、ステップＳ４６では、その注目する基本命令が条件付き命令であるか否かを判断する。
【０１７４】
ここで、可変長命令語の中の注目する基本命令は、図３４のようなブレークポイント・テーブルを参照して判断する。なお、この場合のブレークポイント・テーブルでは、DISPの欄には、ブレークポイント対象の可変長命令語の先頭部分からの変位情報が保持されており、この変位情報をADDRESS の欄に保持される命令ブレークアドレスと共に用いることで、１つの可変長命令語を構成する複数の基本命令のうち何れか１つを特定する。
【０１７５】
上記ステップＳ４６において、注目する基本命令が条件付き命令でなかったと判断した場合はステップＳ１０にジャンプし、条件付き命令であった場合はステップＳ４７に進む。ステップＳ４７では、条件レジスタ５１を参照して、ブレークポイント対象命令語の中で注目している条件付き命令の条件が成立するか否かを求め、ステップＳ８でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【０１７６】
このようにすれば、可変長命令語を構成する複数の基本命令のうち何れかの命令を特定して条件付き命令の条件が成立しているか否かを判定し、その条件の成否に応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に指定した条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、指定された条件付き命令の条件が成立していないとき、あるいは指定された基本命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【０１７７】
（第１０の実施形態）
次に、本発明の第１０の実施形態を図面に基づいて説明する。
図３７は、第１０の実施形態による割り込みハンドラの処理手順を示すフローチャートであり、図３０中の処理と同じ内容の処理には同一のステップ番号を付している。
【０１７８】
この第１０の実施形態は、第６の実施形態に示したプロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断に基づく割り込み制御を、図３７のフローチャートに示すソフトウェアの機能により行うものである。すなわち、本実施形態では、命令ブレークの発生条件を満たせばブレーク割り込みを発生させる命令ブレークモードと、命令ブレークの発生条件および条件付き命令の条件の両方を満たす場合にブレーク割り込みを発生させる条件付き命令ブレークモードとを切り替える機能を有する。
【０１７９】
第１０の実施形態によるブレークポイント・テーブルは、図３８のように構成されており、図３１に示したブレークポイント・テーブルと較べて、MODEの欄が追加されている。このMODEは、命令ブレークモードか条件付き命令ブレークモードかを表すモード情報を保持するための欄であり、その値が“０”のときには命令ブレークモードを意味し、“１”のときには条件付き命令ブレークモードを意味する。
【０１８０】
図３７において、ステップＳ３での判断の結果、図３８のブレークポイント・テーブルの中にブレーク割り込み発生アドレスに対応するエントリが見つかったと判断した場合には、本実施形態ではステップＳ１２へと処理を進める。ステップＳ１２では、図３８のブレークポイント・テーブルを参照して、該当するエントリについて命令ブレークモードが設定されているか、それとも条件付き命令ブレークモードが設定されているかを判断する。
【０１８１】
ここで、命令ブレークモードが設定されている場合は、このモードは命令ブレークの発生条件を満たせばブレーク割り込みを発生させるモードであるので、直ちにステップＳ９に進み、命令ブレークに対する処理を実行する。一方、条件付き命令ブレークモードが設定されている場合は、このモードは更に条件付き命令の条件も満たす場合に限ってブレーク割り込みを発生させるモードであるので、ステップＳ５に進む。その他のステップの処理は、図３０で説明した通りである。
【０１８２】
以上のように、第１０の実施形態では、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かを各判定部２５-0〜２５-nにより判定し、命令ブレークモードのときは当該命令ブレークの発生条件が成立していればブレーク割り込みを発生させる。また、条件付き命令ブレークモードのときは、条件付き命令の条件が成立しているか否かを割り込みハンドラのソフトウェアにより更に判定し、両条件とも成立している場合にのみブレーク割り込みを実際に発生させるようにしている。
【０１８３】
これにより、第６の実施形態と同様に、条件付き命令ブレークモードを指定することにより、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することにより、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１８４】
なお、この図３７の例では、図１２に示したスカラプロセッサの判定部に対応する処理をソフトウェアの機能により実現しているが、図１３よび図１４の実施形態に示したＶＬＩＷ型プロセッサの判定部、あるいは図１５よび図１６の実施形態に示した並列処理プロセッサの判定部に対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【０１８５】
例えば、ＶＬＩＷ型プロセッサに適用する場合は、図３７のフローチャート中に示すステップＳ５〜Ｓ７の処理を、図３２に示すステップＳ１５〜Ｓ１７の処理、あるいは図３３に示すステップＳ２５〜Ｓ２７の処理に置き換えれば良い。また、並列処理プロセッサに適用する場合は、図３７のフローチャート中に示すステップＳ５〜Ｓ７の処理を、図３５に示すステップＳ３５〜Ｓ３７の処理、あるいは図３６に示すステップＳ４５〜Ｓ４７の処理に置き換えれば良い。
ただし、図３３に示すステップＳ２５〜Ｓ２７、あるいは図３６に示すステップＳ４５〜Ｓ４７の処理に置き換える場合は、ブレークポイント・テーブルとしては、図３９に示すようなものを用いる必要がある。
【０１８６】
（第１１の実施形態）
次に、本発明の第１１の実施形態を図面に基づいて説明する。
図４０は、第１１の実施形態による割り込みハンドラの処理手順を示すフローチャートであり、図３０中の処理と同じ内容の処理には同一のステップ番号を付している。また、ブレークポイント・テーブルは、図３１と同様に構成されている。
【０１８７】
この第１１の実施形態は、第７の実施形態に示したプロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断に基づく割り込み制御を、図４０のフローチャートに示すソフトウェアの機能により行うものである。すなわち、本実施形態では、条件付き命令の条件が成立した場合だけでなく、ブレークポイント対象の命令語が非条件付き命令の場合にもブレーク割り込みを発生させる機能を有する。
【０１８８】
図３０に示す第９の実施形態では、ステップＳ６での判断の結果、ブレークポイント対象の命令語が条件付き命令でなかったと判断した場合は、ステップＳ９の命令ブレークに対する処理は行うことなく、直ちにステップＳ１０の処理にジャンプしていた。これに対して、図４０に示す第１１の実施形態では、ステップＳ６での判断の結果、ブレークポイント対象の命令語が条件付き命令でなかったと判断した場合でも、ステップＳ９に進んで命令ブレークに対する処理を実行するようにする。
【０１８９】
以上のように、第１１の実施形態では、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かを各判定部２５-0〜２５-nにより判定するとともに、その条件が成立するときにはブレークポイント対象命令語が条件付き命令か否かを更に判定する。そして、非条件付き命令の場合には無条件にブレーク割り込みを発生させ、条件付き命令の場合には、その条件付き命令の条件が成立しているか否かを割り込みハンドラのソフトウェアにより更に判定し、これが成立している場合にのみブレーク割り込みを実際に発生させるようにしている。
【０１９０】
これにより、第７の実施形態と同様に、与えられた命令語が条件付き命令の場合に、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、与えられた命令語が非条件付き命令の場合も、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１９１】
なお、この図４０の例では、図１８に示したスカラプロセッサの判定部に対応する処理をソフトウェアの機能により実現しているが、図１９よび図２０の実施形態に示したＶＬＩＷ型プロセッサの判定部、あるいは図２１よび図２２の実施形態に示した並列処理プロセッサの判定部に対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【０１９２】
例えば、ＶＬＩＷ型プロセッサに適用する場合は、図４０のフローチャート中に示すステップＳ５〜Ｓ７の処理を、図３２に示すステップＳ１５〜Ｓ１７の処理、あるいは図３３に示すステップＳ２５〜Ｓ２７の処理に置き換えれば良い。また、並列処理プロセッサに適用する場合は、図４０のフローチャート中に示すステップＳ５〜Ｓ７の処理を、図３５に示すステップＳ３５〜Ｓ３７の処理、あるいは図３６に示すステップＳ４５〜Ｓ４７の処理に置き換えれば良い。
ただし、図３３に示すステップＳ２５〜Ｓ２７、あるいは図３６に示すステップＳ４５〜Ｓ４７の処理に置き換える場合は、ブレークポイント・テーブルとしては、図３４に示すようなものを用いる必要がある。
【０１９３】
（第１２の実施形態）
次に、本発明の第１２の実施形態を図面に基づいて説明する。
図４１は、第１２の実施形態による割り込みハンドラの処理手順を示すフローチャートであり、図３７中の処理と同じ内容の処理には同一のステップ番号を付している。また、ブレークポイント・テーブルは、図３８と同様に構成されている。
【０１９４】
この第１２の実施形態は、第１０の実施形態と第１１の実施形態とを組み合わせたものである。すなわち、本実施形態では、命令ブレークの発生条件を満たせばブレーク割り込みを発生させる命令ブレークモードと、命令ブレークの発生条件および条件付き命令の条件の両方を満たす場合にブレーク割り込みを発生させる条件付き命令ブレークモードとを切り替える機能を有する。また、条件付き命令の条件が成立した場合だけでなく、ブレークポイント対象の命令語が非条件付き命令の場合にもブレーク割り込みを発生させる機能も有する。
【０１９５】
図４１において、ステップＳ３での判断の結果、図３８のブレークポイント・テーブルの中にブレーク割り込み発生アドレスに対応するエントリが見つかったと判断した場合には、ステップＳ１２へと処理を進める。ステップＳ１２では、図３８のブレークポイント・テーブルを参照して、該当するエントリについて命令ブレークモードが設定されているか、それとも条件付き命令ブレークモードが設定されているかを判断する。
【０１９６】
ここで、命令ブレークモードが設定されている場合は、このモードは命令ブレークの発生条件を満たせばブレーク割り込みを発生させるモードであるので、直ちにステップＳ９に進み、命令ブレークに対する処理を実行する。一方、条件付き命令ブレークモードが設定されている場合は、このモードは更に条件付き命令の条件も満たす場合に限ってブレーク割り込みを発生させるモードであるので、ステップＳ５に進む。
【０１９７】
そして、ステップＳ５で、ブレークポイント対象命令語が条件付き命令か否かを求めた後、ステップＳ６でそれが条件付き命令か否かを判断した結果、ブレークポイント対象命令語が条件付き命令でなかった場合は、ステップＳ９に進んで命令ブレークに対する処理を実行する。一方、ブレークポイント対象命令語が条件付き命令であった場合は、ステップＳ７に進んで以降の処理を行う。その他のステップの処理は、図３７で説明した通りである。
【０１９８】
以上のように、第１２の実施形態によれば、条件付き命令ブレークモードを指定することによって、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することによって、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０１９９】
さらに、条件付き命令ブレークモードを指定しているときに、与えられた命令語が条件付き命令の場合に、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるだけでなく、与えられた命令語が非条件付き命令の場合も、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【０２００】
なお、この図４１の例では、図２４に示したスカラプロセッサの判定部に対応する処理をソフトウェアの機能により実現しているが、図２５よび図２６の実施形態に示したＶＬＩＷ型プロセッサの判定部、あるいは図２７よび図２８の実施形態に示した並列処理プロセッサの判定部に対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【０２０１】
例えば、ＶＬＩＷ型プロセッサに適用する場合は、図４１のフローチャート中に示すステップＳ５〜Ｓ７の処理を、図３２に示すステップＳ１５〜Ｓ１７の処理、あるいは図３３に示すステップＳ２５〜Ｓ２７の処理に置き換えれば良い。また、並列処理プロセッサに適用する場合は、図４１のフローチャート中に示すステップＳ５〜Ｓ７の処理を、図３５に示すステップＳ３５〜Ｓ３７の処理、あるいは図３６に示すステップＳ４５〜Ｓ４７の処理に置き換えれば良い。
ただし、図３３に示すステップＳ２５〜Ｓ２７、あるいは図３６に示すステップＳ４５〜Ｓ４７の処理に置き換える場合は、ブレークポイント・テーブルとしては、図３９に示すようなものを用いる必要がある。
【０２０２】
（第１３の実施形態）
次に、本発明の第１３の実施形態を図面に基づいて説明する。
上記第９〜第１２の実施形態では、割り込みを発生させたい命令のアドレスをレジスタに設定し、このレジスタに設定した命令ブレークアドレスと現実に実行した命令のアドレスとが一致したときにブレーク割り込みを発生させる、いわゆる命令ブレークポイント機能への適用例について説明した。
【０２０３】
これに対して、以下に述べる第１３の実施形態では、プロセッサ中の任意の場所に指定された命令を割り込み発生のためのブレークポイント命令などで置き換え、プログラムを順次実行している中で上記置き換えたブレークポイント命令を実行したときにブレーク割り込みを発生させる、いわゆるソフトウェア・ブレークポイント機能への適用例について説明する。
【０２０４】
この第１３の実施形態において、ソフトウェア・ブレーク方式を実現するための情報処理装置（プロセッサ）の全体構成は、図４６に示したものと同様である。図４６において、命令フェッチ部２０より供給される命令を命令実行部３０において実行するときに、ブレークポイント命令が供給されると、命令実行部３０は、ソフトウェア・ブレーク割り込みが発生した旨を割り込み通知信号８２によって割り込み制御部４０に通知する。
【０２０５】
割り込み制御部４０は、命令実行部３０から割り込み通知信号８２を受信すると、命令フェッチ部２０のプログラム・カウンタ２１から割り込み発生時の命令アドレス７３を読み出し、それをレジスタ部５０の復帰アドレスレジスタ５２に書き込む。そして、条件付き命令の条件を判断するための割り込みハンドラの先頭アドレス６６を命令フェッチ部２０に供給し、そのアドレスをプログラム・カウンタ２１にセットする。また、割り込み制御部４０は、割り込み発生前のプロセッサの状態を元状態レジスタ５３に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ５４に書き込む。これにより、プロセッサはユーザ状態からスーパバイザ状態に遷移する。
【０２０６】
このようにしてスーパバイザ状態に遷移したプロセッサは、プログラム・カウンタ２１にセットされた割り込みハンドラの先頭アドレス６６から順に、上記図３０、図３２、図３３、図３５、図３６、図３７、図４０あるいは図４１に示したようなフローチャートに従って割り込みハンドラの処理を実行する。
【０２０７】
ただし、これらのフローチャートにおいて、ステップＳ４では、不当な命令ブレークに対するエラー処理ではなく、不当なソフトウェア・ブレークに対するエラー処理を行う。また、ステップＳ９では命令ブレークに対する処理ではなくソフトウェア・ブレークに対する処理を行い、ステップＳ１１では命令ブレーク割り込みからの復帰ではなくソフトウェア・ブレーク割り込みからの復帰処理を行う。
【０２０８】
また、これらの処理で使用するブレークポイント・テーブルとしては、ＶＬＩＷ型プロセッサの長命令語あるいは並列処理プロセッサの可変長命令語の先頭部分からの変位情報（DISP）や、命令ブレークモードと条件付き命令ブレークモードとの切り換え機能（MODE）の有無に応じて、図４７、図４２、図４３、図４４のように構成した何れかのものを用いる。
【０２０９】
この第１３の実施形態においても、上記第９〜第１２の実施形態で説明したのと同様の効果を得ることができる。
【０２１０】
なお、以上に説明した各実施形態の割込制御装置は、コンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成されるものであり、ＲＡＭやＲＯＭに記憶されたプログラムが動作することによって実現できる。したがって、コンピュータが上記機能を果たすように動作させるプログラムを、例えばＣＤ−ＲＯＭのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものである。上記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【０２１１】
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
【０２１２】
なお、上記に説明した各実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０２１３】
本発明の様々な形態をまとめると、以下のようになる。
（１）条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
命令シーケンスの任意の場所に設定されたブレークポイントを検出するブレーク検出手段と、
上記条件付き命令の条件を満たすか否かを判定する条件判定手段と、
上記ブレーク検出手段による上記ブレークポイントの検出結果と、上記条件判定手段による判定結果とに基づいてブレーク割り込みの発生を制御する制御手段とを備えたことを特徴とする割込制御装置。
【０２１４】
（２）条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果の検出信号を出力する命令ブレーク検出手段と、
読み出された上記条件付き命令の条件を満たすか否かを判定し、その結果の判定信号を出力する条件判定手段と、
上記命令ブレーク検出手段より出力される上記検出信号と、上記条件判定手段より出力される上記判定信号との論理積をとり、その結果に応じてブレーク割り込み発生通知を行う論理演算手段とを備えたことを特徴とする割込制御装置。
【０２１５】
（３）上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記ブレークポイントを示す命令アドレスに対応する命令語が、非条件付き命令または条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行うことを特徴とする上記（２）に記載の割込制御装置。
【０２１６】
（４）上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第１のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第２のモードとの何れかを設定するモード設定手段を備え、
上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記第１のモードの設定時には、上記ブレークポイントを示す命令アドレスに対応する命令語が、非条件付き命令または条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行い、上記第２のモードの設定時には、命令語が上記ブレークポイントを示す命令アドレスに対応する命令語である場合に上記ブレーク割り込み発生通知を行うことを特徴とする上記（２）に記載の割込制御装置。
【０２１７】
（５）上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記ブレークポイントを示す命令アドレスに対応する命令語が、条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行うことを特徴とする上記（２）に記載の割込制御装置。
【０２１８】
（６）上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第１のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第２のモードとの何れかを設定するモード設定手段を備え、
上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記第１のモードの設定時には、上記ブレークポイントを示す命令アドレスに対応する命令語が、条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行い、上記第２のモードの設定時には、命令語が上記ブレークポイントを示す命令アドレスに対応する命令語である場合に上記ブレーク割り込み発生通知を行うことを特徴とする上記（２）に記載の割込制御装置。
【０２１９】
（７）上記データ処理装置は、１命令で１つの処理を行うスカラプロセッサ、長命令語を構成する複数の短命令を並列に実行する長命令語型プロセッサ、または可変長命令語を構成する１つ以上の基本命令を並列に実行する並列処理プロセッサであることを特徴とする上記（２）に記載の割込制御装置。
【０２２０】
（８）条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行う命令ブレーク検出手段と、
上記命令ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。
【０２２１】
（９）上記制御手段は、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記（８）に記載の割込制御装置。
【０２２２】
（１０）上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第１のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第２のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第１のモードの設定時には、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行い、上記第２のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記（８）に記載の割込制御装置。
【０２２３】
（１１）上記制御手段は、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記（８）に記載の割込制御装置。
【０２２４】
（１２）上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第１のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第２のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第１のモードの設定時には、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行い、上記第２のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記（８）に記載の割込制御装置。
【０２２５】
（１３）上記データ処理装置は、１命令で１つの処理を行うスカラプロセッサ、長命令語を構成する複数の短命令を並列に実行する長命令語型プロセッサ、または可変長命令語を構成する１つ以上の基本命令を並列に実行する並列処理プロセッサであることを特徴とする上記（８）に記載の割込制御装置。
【０２２６】
（１４）条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
命令シーケンスの任意の場所で置き換えられたブレークポイント命令が実行されたか否かに応じてソフトウェア・ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行うソフトウェア・ブレーク検出手段と、
上記ソフトウェア・ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。
【０２２７】
（１５）上記制御手段は、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記（１４）に記載の割込制御装置。
【０２２８】
（１６）上記ソフトウェア・ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第１のモードと、上記ソフトウェア・ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第２のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第１のモードの設定時には、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立する条件付き命令である場合に上記ブレーク割り込みの処理を行い、上記第２のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記（１４）に記載の割込制御装置。
【０２２９】
（１７）上記制御手段は、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記（１４）に記載の割込制御装置。
【０２３０】
（１８）上記ソフトウェア・ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第１のモードと、上記ソフトウェア・ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第２のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第１のモードの設定時には、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合に上記ブレーク割り込みの処理を行い、上記第２のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記（１４）に記載の割込制御装置。
【０２３１】
（１９）上記データ処理装置は、１命令で１つの処理を行うスカラプロセッサ、長命令語を構成する複数の短命令を並列に実行する長命令語型プロセッサ、または可変長命令語を構成する１つ以上の基本命令を並列に実行する並列処理プロセッサであることを特徴とする上記（１４）に記載の割込制御装置。
【０２３２】
（２０）条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御方法であって、
命令シーケンスの任意の場所に設定されたブレークポイントを検出するとともに、上記条件付き命令の条件を満たすか否かを判定し、上記ブレークポイントの検出結果と上記条件付き命令の判定結果とに基づいてブレーク割り込みの発生を制御するようにしたことを特徴とする割込制御方法。
【０２３３】
【発明の効果】
上記のように構成した本発明によれば、命令ブレークやソフトウェア・ブレークなどのブレークポイントの検出結果だけでなく、与えられる命令が条件付き命令である場合にはその条件の成否の判定結果にも基づいてブレーク割り込みの発生を制御することができる。したがって、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立している場合にはプログラムの実行を中断させ、条件付き命令の条件が成立していない場合にはプログラムの実行を中断させないようにすることができる。
【図面の簡単な説明】
【図１】ハードウェア機構による命令ブレーク方式を実現する第１の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図２】第１の実施形態による判定部の構成例を示すブロック図である。
【図３】ハードウェア機構による命令ブレーク方式を実現する第２の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図４】第２の実施形態による判定部の構成例を示すブロック図である。
【図５】ハードウェア機構による命令ブレーク方式を実現する第３の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図６】第３の実施形態による判定部の構成例を示すブロック図である。
【図７】ハードウェア機構による命令ブレーク方式を実現する第４の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図８】第４の実施形態による判定部の構成例を示すブロック図である。
【図９】ハードウェア機構による命令ブレーク方式を実現する第５の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図１０】第５の実施形態による判定部の構成例を示すブロック図である。
【図１１】ハードウェア機構による命令ブレーク方式を実現する第６の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図１２】第６の実施形態による判定部の第１の構成例を示すブロック図である。
【図１３】第６の実施形態による判定部の第２の構成例を示すブロック図である。
【図１４】第６の実施形態による判定部の第３の構成例を示すブロック図である。
【図１５】第６の実施形態による判定部の第４の構成例を示すブロック図である。
【図１６】第６の実施形態による判定部の第５の構成例を示すブロック図である。
【図１７】ハードウェア機構による命令ブレーク方式を実現する第７の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図１８】第７の実施形態による判定部の第１の構成例を示すブロック図である。
【図１９】第７の実施形態による判定部の第２の構成例を示すブロック図である。
【図２０】第７の実施形態による判定部の第３の構成例を示すブロック図である。
【図２１】第７の実施形態による判定部の第４の構成例を示すブロック図である。
【図２２】第７の実施形態による判定部の第５の構成例を示すブロック図である。
【図２３】ハードウェア機構による命令ブレーク方式を実現する第８の実施形態による情報処理装置（プロセッサ）の構成例を示すブロック図である。
【図２４】第８の実施形態による判定部の第１の構成例を示すブロック図である。
【図２５】第８の実施形態による判定部の第２の構成例を示すブロック図である。
【図２６】第８の実施形態による判定部の第３の構成例を示すブロック図である。
【図２７】第８の実施形態による判定部の第４の構成例を示すブロック図である。
【図２８】第８の実施形態による判定部の第５の構成例を示すブロック図である。
【図２９】第９〜第１２の実施形態による判定部の構成例を示すブロック図である。
【図３０】第９の実施形態による命令ブレーク割り込みハンドラの第１の処理例を示すフローチャートである。
【図３１】第９の実施形態で用いるブレークポイント・テーブルの第１の構成例を示す図である。
【図３２】第９の実施形態による命令ブレーク割り込みハンドラの第２の処理例を示すフローチャートである。
【図３３】第９の実施形態による命令ブレーク割り込みハンドラの第３の処理例を示すフローチャートである。
【図３４】第９の実施形態で用いるブレークポイント・テーブルの第２の構成例を示す図である。
【図３５】第９の実施形態による命令ブレーク割り込みハンドラの第４の処理例を示すフローチャートである。
【図３６】第９の実施形態による命令ブレーク割り込みハンドラの第５の処理例を示すフローチャートである。
【図３７】第１０の実施形態による命令ブレーク割り込みハンドラの処理例を示すフローチャートである。
【図３８】第１０の実施形態で用いるブレークポイント・テーブルの第１の構成例を示す図である。
【図３９】第１０の実施形態で用いるブレークポイント・テーブルの第２の構成例を示す図である。
【図４０】第１１の実施形態による命令ブレーク割り込みハンドラの処理例を示すフローチャートである。
【図４１】第１２の実施形態による命令ブレーク割り込みハンドラの処理例を示すフローチャートである。
【図４２】第１３の実施形態で用いるブレークポイント・テーブルの第１の構成例を示す図である。
【図４３】第１３の実施形態で用いるブレークポイント・テーブルの第２の構成例を示す図である。
【図４４】第１３の実施形態で用いるブレークポイント・テーブルの第３の構成例を示す図である。
【図４５】従来の命令ブレーク方式を実現するプロセッサの構成例を示すブロック図である。
【図４６】従来のソフトウェア・ブレーク方式を実現するプロセッサの構成例を示すブロック図である。
【図４７】ソフトウェア・ブレーク方式で用いるブレークポイント・テーブルの構成例を示す図である。
【符号の説明】
１００-0〜１００-n  判定部
１０２  条件付き命令デコーダ
１０３  条件判定部
１０４  ＡＮＤ回路
１１０-0〜１１０-n  判定部
１１１  条件付き命令デコーダ
１１２  条件判定部
１１３  ＯＲ回路
１２０-0〜１２０-n  判定部
１２１  セレクタ
１３０-0〜１３０-n  判定部
１３１  有効命令エンコーダ
１３２  ＡＮＤ回路
１４０-0〜１４０-n  判定部
１４１  セレクタ
１４２  ＡＮＤ回路
１５０-0〜１５０-n  判定部
１５１，１５２  ＡＮＤ回路
１５３  ＯＲ回路
１６０-0〜１６０-n  判定部
１６１  非条件付き命令デコーダ
１６２  ＯＲ回路
１７０-0〜１７０-n  判定部
【図１】
0004187371.tif 000002
【図２】
0004187371.tif 000003
【図３】
0004187371.tif 000004
【図４】
0004187371.tif 000005
【図５】
0004187371.tif 000006
【図６】
0004187371.tif 000007
【図７】
0004187371.tif 000008
【図８】
0004187371.tif 000009
【図９】
0004187371.tif 000010
【図１０】
0004187371.tif 000011
【図１１】
0004187371.tif 000012
【図１２】
0004187371.tif 000013
【図１３】
0004187371.tif 000014
【図１４】
0004187371.tif 000015
【図１５】
0004187371.tif 000016
【図１６】
0004187371.tif 000017
【図１７】
0004187371.tif 000018
【図１８】
0004187371.tif 000019
【図１９】
0004187371.tif 000020
【図２０】
0004187371.tif 000021
【図２１】
0004187371.tif 000022
【図２２】
0004187371.tif 000023
【図２３】
0004187371.tif 000024
【図２４】
0004187371.tif 000025
【図２５】
0004187371.tif 000026
【図２６】
0004187371.tif 000027
【図２７】
0004187371.tif 000028
【図２８】
0004187371.tif 000029
【図２９】
0004187371.tif 000030
【図３０】
0004187371.tif 000031
【図３１】
0004187371.tif 000032
【図３２】
0004187371.tif 000033
【図３３】
0004187371.tif 000034
【図３４】
0004187371.tif 000035
【図３５】
0004187371.tif 000036
【図３６】
0004187371.tif 000037
【図３７】
0004187371.tif 000038
【図３８】
0004187371.tif 000039
【図３９】
0004187371.tif 000040
【図４０】
0004187371.tif 000041
【図４１】
0004187371.tif 000042
【図４２】
0004187371.tif 000043
【図４３】
0004187371.tif 000044
【図４４】
0004187371.tif 000045
【図４５】
0004187371.tif 000046
【図４６】
0004187371.tif 000047
【図４７】
0004187371.tif 000048