JP4187371B2 - 割込制御装置および方法 - Google Patents
割込制御装置および方法 Download PDFInfo
- Publication number
- JP4187371B2 JP4187371B2 JP34107799A JP34107799A JP4187371B2 JP 4187371 B2 JP4187371 B2 JP 4187371B2 JP 34107799 A JP34107799 A JP 34107799A JP 34107799 A JP34107799 A JP 34107799A JP 4187371 B2 JP4187371 B2 JP 4187371B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- break
- interrupt
- condition
- conditional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は割込制御装置および方法に関し、特に、プログラムのデバッグを支援するシステムである所謂デバッガ等において、プログラムの実行を途中で停止させるブレーク割り込みの制御方式に用いて好適なものである。
【0002】
【従来の技術】
従来、多くのデバッグ支援システムには、プログラムの動作等を検証するために、プログラムの実行を途中で中断させるためのブレーク割り込み機能が備えられている。ブレーク割り込み機能とは、デバッグ対象のプログラムにおいて、あらかじめ指定した任意の場所でプログラムの実行をその都度停止させるものである。このような機能は、プログラムのデバッグ処理において有益であるため、多くのデバッグ支援システムに組み込まれている。
【0003】
このブレーク割り込み機能には各種の方式があるが、その中に、所定の命令でプログラムの実行を停止させるブレークポイント機能がある。この機能を用いる場合、利用者は、実行を停止させたい命令をあらかじめ指定しておいてから、デバッグ対象のプログラムを起動させる。これにより、デバッグ対象プログラムは、指定された命令で実行を停止する。その際に利用者は、必要であれば、その停止した時点でのレジスタやメモリの値を調べたり変更したりすることができる。その後、その停止した時点からプログラムの実行を再開することもできる。
【0004】
このブレークポイント機能の実現方法としては、例えば、命令ブレークポイント、ソフトウェア・ブレークポイントといった方法がある。
上記命令ブレークポイントによる割り込みは、割り込みを発生させたい命令のアドレス(命令ブレークアドレス)をレジスタに設定し、このレジスタに設定した命令ブレークアドレスと現実に実行した命令の命令アドレスとが一致したときに発生する割り込みである。
【0005】
すなわち、この命令ブレークでは、実行を停止させたい命令のアドレスを保持するブレークポイント・レジスタをハードウェアとして設ける。アプリケーションプログラムの通常の処理中にこのレジスタで指定される命令が検出されると、ブレ−ク割り込みが発生し、いわゆる割り込みハンドラ等の割り込み処理プログラムを経由してデバッグ支援プログラムに制御が移り、利用者にその旨が通知される。その後、利用者によるデバッグ等が完了して、元のプログラムの再開が指示されると、制御が元のアプリケーションプログラムに戻される。
【0006】
また、ソフトウェア・ブレークポイントによる割り込みは、プログラム中の任意の場所に指定された命令を、割り込みを発生させる命令で置き換え、プログラムカウンタの進行に従ってプログラムを順次実行している中で、上記割り込みを発生させる命令を実行することにより発生する割り込みである。なお、割り込みを発生させる命令として、ブレークポイント命令と呼ばれる専用の命令を用意する方法もある。
【0007】
すなわち、アプリケーションプログラムの通常の処理中に、割り込みを発生させる命令が検出されると、ブレーク割り込みが発生し、いわゆる割り込みハンドラ等の割り込み処理プログラムを経由してデバッグ支援プログラムに制御が移り、利用者にその旨が通知される。その後、利用者によるデバッグ等が完了して、元のプログラムの再開が指示されると、置き換えられた元の命令の実行をシミュレートした後、制御が元のアプリケーションプログラムに戻される。
【0008】
上記命令ブレークポイントによる方法は、以下のような特徴を持つ。
・デバッグ対象プログラムを変更する必要がない。
・命令の実行をシミュレートする必要がない。
・レジスタ等のハードウェア上の制限から、設定可能なブレークポイント数が実質上制約を受ける。
また、上記ソフトウェア・ブレークポイントによる方法では、
・プログラム中に多くのブレークポイントを設定できる。
という特徴を持つ。
【0009】
図45は、ハードウェア機構による命令ブレーク方式を実現する従来の構成例を示すブロック図である。
図45において、10はメモリであり、アプリケーションや割り込みハンドラ等のプログラムを格納している。20は命令フェッチ部、30は命令実行部、40は割り込み制御部、50はレジスタ部である。
【0010】
上記命令フェッチ部20は、メモリ10から読み出すべき命令語のアドレスを示すプログラム・カウンタ(PC)21と、メモリ10から読み出した命令語を保持する命令レジスタ(IR)22と、命令ブレーク検出部23とを備えている。この命令フェッチ部20は、プログラム・カウンタ21が示す命令アドレス61に基づいてメモリ10から命令語62を読み出し、読み出した命令語62を命令レジスタ22に書き込み保持する。さらに、命令フェッチ部20は、上記命令レジスタ22が保持する命令語63を命令実行部30に供給する。
【0011】
この命令フェッチ部20は、命令実行部30より分岐先の命令アドレス64または割り込み状態から復帰する命令アドレス65が供給されたとき、あるいは割り込み制御部40より割り込みハンドラの命令アドレス66が供給されたときには、その供給された命令アドレスをプログラム・カウンタ21に書き込む。それ以外の場合は、次の命令語を順次読み出すべくプログラム・カウンタ21の値をインクリメントする。
【0012】
また、上記命令ブレーク検出部23は、複数のブレークポイント・レジスタ24-0〜24-nと、これらのレジスタに各々対応して設けられた複数の判定部25-0〜25-nと、これらの判定部25-0〜25-nにおける各々の判定結果の論理和をとるOR回路26とを備える。
【0013】
上記ブレークポイント・レジスタ24-0〜24-nはそれぞれ、実行を停止させたいブレークポイントの対象アドレスを保持するアドレスレジスタ24aと、命令ブレーク動作が有効か否かを示すフラグレジスタ24bとを備える。このフラグレジスタ24bは、その値が“1”のときには命令ブレーク動作有効状態を意味し、“0”のときには命令ブレーク動作無効状態を意味する。
【0014】
また、上記判定部25-0〜25-nは、各々に対応して設けられたブレークポイント・レジスタ24-0〜24-nに保持された命令ブレークの発生条件が成立したか否かを判定するものである。すなわち、各判定部25-0〜25-nは、各ブレークポイント・レジスタ24-0〜24-nのアドレスレジスタ24aに保持された命令ブレークアドレスと、プログラム・カウンタ21から供給される現在の実行アドレスとを比較し、両者が一致するか否かを判定する。
【0015】
ここで、両アドレスが一致しており、かつ、フラグレジスタ24bの値が“1”となっている場合には、命令ブレークの発生条件が成立したと判定する。一方、両アドレスが一致していないか、あるいは、両アドレスが一致していてもフラグレジスタ24bの値が“0”となっている場合には、命令ブレークの発生条件が成立しなかったと判定する。そして、各判定部25-0〜25-nは、この判定結果を表す判定信号をOR回路26に夫々供給する。
【0016】
OR回路26は、全ての判定部25-0〜25-nから供給される判定信号の論理和をとる。これにより、少なくとも1つの判定部において命令ブレークの発生条件が成立していた場合には、OR回路26は命令ブレークポイントによるブレーク割り込みが発生したことを検出し、当該ブレーク割り込みが発生した旨を割り込み通知信号67によって割り込み制御部40に通知する。
【0017】
上記命令実行部30は、命令フェッチ部20より供給された命令語63の指示に従い、演算、分岐、データのロード/ストア、割り込み状態からの復帰等の処理を実行する。例えば、供給された命令が演算命令であったときは、命令実行部30は、レジスタアドレス68で指定するレジスタ部50内の汎用レジスタ(GR)55から読み出したデータ値69に基づいて演算を実行し、その演算の結果得られたデータ値70をレジスタアドレス68で指定する汎用レジスタ55に書き込む。
【0018】
また、供給された命令が分岐命令であって、分岐条件が成立したときには、命令実行部30は、分岐先の命令アドレス64を命令フェッチ部20に供給する。また、供給された命令がロード命令であったときには、命令実行部30は、レジスタアドレス68で指定する汎用レジスタ55より読み出したデータ値69からメモリ10上の実効アドレスを求め、その実効アドレスに対応したメモリ10の領域からリードデータ71を読み出し、それをレジスタアドレス68で指定する汎用レジスタ55に書き込む。
【0019】
また、供給された命令がストア命令であったときには、命令実行部30は、レジスタアドレス68で指定する汎用レジスタ55より読み出したデータ値69からメモリ10上の実効アドレスを求め、レジスタアドレス68で指定する汎用レジスタ55から読み出したデータ値69を、上記実効アドレスに対応したメモリ10の領域に書き込む。
【0020】
また、供給された命令がプロセッサを割り込み状態から復帰させる命令であったときには、命令実行部30は、割り込み状態からの復帰動作を実行する。すなわち、レジスタ部50が備えている各レジスタに保持している割り込み発生前の動作情報に基づいて、割り込み発生前の動作情報を復元する処理を行う。
【0021】
ここでは、元状態レジスタ(EPSR)53の値を現状態レジスタ(PSR)54に書き込むとともに、復帰アドレスレジスタ(EPCR)52の値を読み出し、その読み出した復帰アドレスを分岐先アドレス65として命令フェッチ部20に供給する。
【0022】
なお、命令実行部30において演算命令等を実行するとき、ゼロによる除算、データオーバーフロー等のエラーによる割り込みを検出した場合は、命令実行部30は、当該割り込みが発生した旨を割り込み通知信号74によって割り込み制御部40に通知する。なお、命令ブレークあるいはソフトウェアブレークによるブレーク割り込みに対し、上述のエラー等による割り込みを通常割り込みと呼んで両者を区別する。
【0023】
上記割り込み制御部40は、命令フェッチ部20からブレーク割り込みの割り込み通知信号67を受信したとき、あるいは、命令実行部30から通常割り込みの割り込み通知信号74を受信したときに、命令フェッチ部20、レジスタ部50を制御して割り込み状態への移行動作を実行する。
【0024】
すなわち、割り込み制御部40は、割り込み通知信号67,74を受信すると、命令フェッチ部20のプログラム・カウンタ21から割り込み発生時の命令アドレス73を読み出し、それをレジスタ部50の復帰アドレスレジスタ52に書き込む。そして、発生した割り込みに対応する割り込みハンドラの先頭アドレス66を命令フェッチ部20に供給し、そのアドレスをプログラム・カウンタ21にセットする。また、割り込み制御部40は、割り込み発生前のプロセッサの状態を元状態レジスタ53に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ54に書き込む。
【0025】
上記レジスタ部50は、上述した復帰アドレスレジスタ52、元状態レジスタ53、現状態レジスタ54、汎用レジスタ55の他に、条件レジスタ51を備える。この条件レジスタ51は、命令実行部30が命令フェッチ部20より供給される条件付き命令を実行する際に参照する条件コードを保持するものである。条件付き命令とは、指定された条件を満たすか否かをまず判断し、条件を満たす場合にのみデータ転送、演算等の指定された処理を実行する命令のことを言う。
【0026】
また、復帰アドレスレジスタ52は、割り込み状態から復帰する元の命令アドレス(割り込み発生時におけるプログラム・カウンタ21の値73)を保持するものである。また、元状態レジスタ53は、割り込み発生前のプロセッサの状態(割り込みが発生していない通常のユーザ状態、割り込みの発生に応じて遷移するスーパバイザ状態など)を保持するものであり、現状態レジスタ54は、現在のプロセッサの状態を保持するものである。
【0027】
ここで、プロセッサの状態遷移について簡単に説明する。
プロセッサが通常のアプリケーションプログラムを処理しているときは、プロセッサの状態はユーザ状態である。このユーザ状態で割り込みが発生すると、プロセッサはスーパバイザ状態に遷移する。このスーパバイザ状態で割り込み復帰命令を実行すると、プロセッサはユーザ状態に復帰する。
【0028】
一方、スーパバイザ状態で割り込み復帰命令を実行する前に、さらに割り込みが発生すると、プロセッサは現在のスーパバイザ状態から次のスーパバイザ状態に遷移する。そして、この新たなスーパバイザ状態で割り込み復帰命令を実行すると、プロセッサは元のスーパバイザ状態に復帰する。
【0029】
次に、図45に示すプロセッサの動作を説明する。プロセッサがユーザ状態にあるとき、命令フェッチ部20は、プログラム・カウンタ21により示される命令アドレス61に基づき、メモリ10から命令語62を読み出し、読み出した命令語を命令レジスタ22に書き込み保持する。さらに、命令フェッチ部20は、命令レジスタ22が保持する命令語63を命令実行部30に供給する。
【0030】
命令実行部30は、命令フェッチ部20より供給された命令語63を解釈し、その結果に従い、供給された命令の処理を実行する。このユーザ状態でブレーク割り込みあるいは通常割り込みが発生しなければ、プロセッサは以上の動作を繰り返し行う。
【0031】
しかし、命令フェッチ部20がブレーク割り込みを検出すると、命令フェッチ部20は割り込み通知信号67によりブレーク割り込みが発生した旨を割り込み制御部40に通知する。また、命令実行部30が通常割り込みを検出すると、命令実行部30は割り込み通知信号74により通常割り込みが発生した旨を割り込み制御部40に通知する。
【0032】
割り込み制御部40は、命令フェッチ部20または命令実行部30から割り込み発生の通知を受信すると、命令フェッチ部20およびレジスタ部50を制御して以下のような処理を行う。
まず、割り込み制御部40は、プログラム・カウンタ21から現在示している命令アドレス73を読み出し、読み出した命令アドレス73を復帰アドレスレジスタ52に書き込む。
【0033】
また、割り込み制御部40は、現状態レジスタ54から割り込み発生前のプロセッサの状態(ユーザ状態)を読み出し、読み出したプロセッサの状態を元状態レジスタ53に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ54に書き込む。これにより、プロセッサはユーザ状態からスーパバイザ状態に遷移する。さらに、割り込み制御部40は、発生した割り込みに対応する割り込みハンドラの先頭アドレス66を命令フェッチ部20に供給し、その値をプログラム・カウンタ21にセットする。
【0034】
スーパバイザ状態に遷移したプロセッサは、プログラム・カウンタ21にセットされた割り込みハンドラの先頭アドレス66に従って、当該割り込みハンドラの命令語62を命令フェッチ部20に読み出し、読み出した命令語を命令レジスタ22に一旦保持した後、命令実行部30に供給する。
【0035】
命令実行部30は、供給された命令語63を解釈し、その結果に従って処理を実行する。このとき命令実行部30は、割り込みハンドラの最終アドレスに向かって順次供給される命令語63を実行するという動作を繰り返す。そして、発生した割り込みに対応する割り込みハンドラの処理が完了すると、プロセッサは割り込み復帰命令を実行する。
【0036】
このとき、命令実行部30は、割り込み復帰命令が供給されると、元状態レジスタ53の値を読み出して、その値を現状態レジスタ54に書き込む。これにより、プロセッサはスーパバイザ状態からユーザ状態に遷移する。さらに、命令実行部30は、割り込み状態から復帰する元の命令アドレスを復帰アドレスレジスタ52から読み出し、その命令アドレスを分岐先アドレス65として命令フェッチ部20に供給し、プログラム・カウンタ21にセットする。
【0037】
命令フェッチ部20は、プログラム・カウンタ21にセットされた元の命令アドレス61に基づいて、通常動作時の命令語62をメモリ10から読み出し、それを命令レジスタ22に一旦保持した後、命令実行部30に供給する。これにより、命令実行部30は、通常動作に対応したアプリケーションプログラムの残りの処理を実行する。
【0038】
なお、命令ブレークによるブレーク割り込みの実行を設定する際には、命令ブレーク検出部23が備える複数のブレークポイント・レジスタ24-0〜24-nに対応する複数のエントリ♯0〜♯nのうち、注目するエントリについて、ブレークポイントの対象アドレスをアドレスレジスタ24aに書き込むとともに、命令ブレーク動作有効状態であること表す“1”の値をフラグレジスタ24bに書き込む。
【0039】
一方、命令ブレークによるブレーク割り込みの実行を解除する際には、命令ブレーク検出部23が備える複数のブレークポイント・レジスタ24-0〜24-nに対応する複数のエントリ♯0〜♯nのうち、注目するエントリについて、命令ブレーク動作無効状態であること表す“0”の値をフラグレジスタ24bに書き込む。
【0040】
図46は、ブレークポイント命令によるソフトウェア・ブレーク方式を実現する従来の構成例を示すブロック図である。
なお、図46において、図45に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0041】
図46において、命令フェッチ部20は、命令アドレスの変換エラー等による通常割り込みを検出した場合は、当該通常割り込みが発生した旨を割り込み通知信号81によって割り込み制御部40に通知する。
また、命令フェッチ部20より供給される命令を命令実行部30において実行するとき、ブレークポイント命令が供給された場合、命令実行部30は、ソフトウェア・ブレーク割り込みが発生した旨を割り込み通知信号82によって割り込み制御部40に通知する。
【0042】
図47は、ソフトウェア・ブレーク方式において命令実行部30が保持するブレークポイント・テーブルの構成例を示す図である。
図47において、VALID はブレークポイント動作が有効であるか否かを示す欄であり、その値が“1”のときにはブレークポイント動作有効状態を意味し、“0”のときにはブレークポイント動作無効状態を意味する。
【0043】
また、ADDRESS は実行を停止させたいブレークポイントの対象アドレスを保持する欄である。また、INSTRUCTION はブレークポイントの対象命令語を保持する欄である。ブレークポイント対象命令語は、ブレークポイントを設定する際に、ブレーク割り込みを発生させるブレークポイント命令に置き換えられる。そのため、ブレークポイント動作を解除する際には、このINSTRUCTION の欄に保持されたブレークポイント対象命令語の情報により復元を行う。
【0044】
ブレークポイント命令によるブレーク割り込みの実行を設定する際には、図47のブレークポイント・テーブルが備える複数のエントリ♯0〜♯nのうち、注目するエントリについて、ブレークポイントを示す命令アドレスをADDRESS の欄に書き込み、ブレークポイントの対象とする命令語をINSTRUCTION の欄に書き込み、ブレークポイント動作有効状態であること表す“1”の値をVALID の欄に書き込む。さらに、ブレークポイント対象命令語を、ブレーク割り込みを発生させるブレークポイント命令に置き換える。
【0045】
一方、ブレークポイント命令によるブレーク割り込みの実行を解除する際には、図47のブレークポイント・テーブルが備える複数のエントリ♯0〜♯nのうち、注目するエントリについて、INSTRUCTION の欄に書き込まれたブレークポイント対象命令語を読み出し、そのブレークポイント対象命令語にブレークポイント命令を置き換える。さらに、上記注目するエントリについて、ブレークポイント動作無効状態であること表す“0”の値をVALID の欄に書き込む。
【0046】
【発明が解決しようとする課題】
近年のプロセッサでは、その処理性能をより向上させるために、分岐命令の使用頻度を低く抑えることが望まれる。そのため、条件付き命令あるいはプリディケード実行(“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)などの手法が提案されている。
【0047】
しかしながら、上記図45に示した従来の命令ブレークによる割り込み方式では、命令ブレーク検出部23の各ブレークポイント・レジスタ24-0〜24-nに設定した命令ブレークの発生条件を満たせば、必ずブレーク割り込みが発生することになる。そのため、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立していないにも関わらず、命令ブレークの発生条件が成立することでプログラムの実行が中断してしまうという問題があった。
【0048】
また、上記図46に示した従来のブレークポイント命令による割り込み方式においても、あらかじめ置き換えたブレークポイント命令が供給されたときには、必ずブレーク割り込みが発生することになる。そのため、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立していないにも関わらず、ブレークポイント命令が供給されることでプログラムの実行が中断してしまうという問題があった。
【0049】
本発明は、このような問題を解決するために成されたものであり、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じて、ブレーク割り込みの発生を制御できるようにすることを目的とする。
【0050】
【課題を解決するための手段】
本発明の割込制御装置は、条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するブレーク検出手段と、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定する条件判定手段と、上記ブレーク検出手段による上記ブレークポイントの検出結果と、上記条件判定手段による判定結果とに基づいてブレーク割り込みの発生を制御する制御手段とを備える。
【0051】
より具体的には、例えば、レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果の検出信号を出力する命令ブレーク検出手段と、読み出された上記条件付き命令の条件を満たすか否かを判定し、その結果の判定信号を出力する条件判定手段と、上記命令ブレーク検出手段より出力される上記検出信号と、上記条件判定手段より出力される上記判定信号との論理積をとり、その結果に応じてブレーク割り込み発生通知を行う論理演算手段とを備える。
【0052】
本発明の他の態様では、レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行う命令ブレーク検出手段と、上記命令ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備える。
【0053】
本発明のその他の態様では、命令シーケンスの任意の場所で置き換えられたブレークポイント命令が実行されたか否かに応じてソフトウェア・ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行うソフトウェア・ブレーク検出手段と、上記ソフトウェア・ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備える。
【0054】
また、本発明の割込制御方法は、条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを割込制御装置が制御する割込制御方法であって、上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するとともに、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、上記ブレークポイントの検出結果と上記条件付き命令の判定結果とに基づいてブレーク割り込みの発生を制御するようにする。
【0055】
本発明は上記技術手段より成るので、命令ブレークやソフトウェア・ブレークなどのブレークポイントの検出結果だけでなく、与えられる命令が条件付き命令である場合にはその条件の成否の判定結果にも基づいてブレーク割り込みの発生が制御されることとなり、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することが可能となる。
【0056】
【発明の実施の形態】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、ハードウェア機構による命令ブレーク方式を実現する第1の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
なお、図1において、図45に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0057】
第1の実施形態において、命令ブレーク検出部23は、図45で用いていた各判定部25-0〜25-nの代わりに、これとは異なる判定処理を行う各判定部100-0〜100-nを備えている。
【0058】
そして、これらの判定部100-0〜100-nに対して、その各々に対応して設けられたブレークポイント・レジスタ24-0〜24-nに保持された命令ブレークアドレスおよびフラグと、プログラム・カウンタ21から供給される現在の実行アドレスとに加え、レジスタ部50の条件レジスタ51から読み出される条件付き命令の条件コードと、命令レジスタ22から読み出される現在実行中の命令語とを夫々供給するようにしている。
【0059】
図2は、上記複数の判定部100-0〜100-nのうち、判定部100-0の構成例を代表として示すブロック図である。なお、残りの判定部100-1〜100-nについてもこの図2と同様に構成される。
図2に示すように、本実施形態の判定部100-0は、比較部101と、条件付き命令デコーダ102と、条件判定部103と、AND回路104とを備えている。
【0060】
上記比較部101は、判定部100-0に対応して設けられたブレークポイント・レジスタ24-0のアドレスレジスタ24aに保持された命令ブレークアドレスと、プログラム・カウンタ21から供給される現在の実行アドレスとを比較し、両者が一致するか否かを判定する。そして、両アドレスが一致した場合には値が“1”の判定信号を出力し、両アドレスが一致しなかった場合には値が“0”の判定信号を出力する。
【0061】
条件付き命令デコーダ102は、命令レジスタ22から供給される現在実行中の命令語をデコードして条件付き命令か否かを検出し、その結果を条件判定部103に供給する。条件判定部103は、この条件付き命令デコーダ102から供給される命令語のデコード結果に基づいて、条件レジスタ51から供給される条件付き命令の条件コードで指定される条件が成立するか否かを判定する。そして、条件付き命令の条件が成立した場合には値が“1”の判定信号を出力し、条件が成立しなかった場合には値が“0”の判定信号を出力する。なお、条件付き命令デコーダ102によるデコードの結果、与えられた命令が条件付き命令でなかった場合は、条件判定部103は値が“0”の判定信号を出力する。
【0062】
また、AND回路104は、判定部100-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、上記比較部101より出力される命令ブレークアドレスに関する判定信号と、上記条件判定部103より出力される条件コードに関する判定信号との論理積をとり、その結果を図1のOR回路26に出力する。
【0063】
このような構成により、命令ブレーク検出部23が備える複数の判定部100-0〜100-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0064】
以上のように、第1の実施形態では、各判定部100-0〜100-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【0065】
これにより、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、条件付き命令の条件が成立していないとき、あるいは与えられた命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0066】
(第2の実施形態)
次に、本発明の第2の実施形態を図面に基づいて説明する。
図3は、ハードウェア機構による命令ブレーク方式を実現する第2の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
なお、図3において、図1に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0067】
上記図1に示した第1の実施形態では、1命令で1つの処理を行うスカラ・プロセッサについて説明した。これに対して、図3に示す第2の実施形態は、1命令で複数の処理を指定し、これらを並列に実行するVLIW(Very Long Instruction Word)型プロセッサに適用したものである。
【0068】
すなわち、図3に示すように、第2の実施形態における命令レジスタ27は、複数の短命令から構成される固定長の長命令語を保持するように構成されている。また、命令ブレーク検出部23が備える複数の判定部110-0〜110-nは、図4のように構成されている。なお、この図4は、上記複数の判定部110-0〜110-nのうち、1つの判定部110-0の構成を代表として示したものであり、図2に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【0069】
図4に示すように、本実施形態の判定部110-0は、比較部101と、条件付き命令デコーダ111と、条件判定部112と、OR回路113と、AND回路104とを備えている。
上記条件付き命令デコーダ111は、命令レジスタ27に保持される長命令語を構成する複数の短命令IR♯0〜IR♯iの各々に対応して設けられる複数の条件付き命令デコーダ111-0〜111-iを備え、命令レジスタ27から供給されるそれぞれの短命令を夫々デコードして条件付き命令か否かを検出する。
【0070】
条件判定部112は、上記複数の条件付き命令デコーダ111-0〜111-iの各々に対応して設けられる複数の条件判定部112-0〜112-iを備えている。これらの条件判定部112-0〜112-iは、対応する条件付き命令デコーダ111-0〜111-iから供給されるそれぞれの短命令のデコード結果に基づいて、条件レジスタ51から供給される条件付き命令の条件コードで指定される条件が成立するか否かを夫々判定する。そして、条件付き命令の条件が成立した場合には値が“1”の判定信号を出力し、条件が成立しなかった場合には値が“0”の判定信号を出力する。なお、条件付き命令デコーダ111-0〜111-iによるデコードの結果、与えられた命令が条件付き命令でなかった場合は、条件判定部112-0〜112-iは値が“0”の判定信号を夫々出力する。
【0071】
OR回路113は、上記複数の条件判定部112-0〜112-iからそれぞれ出力される判定信号の論理和をとり、その結果をAND回路104に出力する。AND回路104は、判定部110-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、比較部101より出力される命令ブレークアドレスに関する判定信号と、上記OR回路113より出力される条件コードに関する判定信号との論理積をとり、その結果を図3のOR回路26に出力する。
【0072】
このような構成により、命令ブレーク検出部23が備える複数の判定部110-0〜110-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、長命令語を構成する複数の短命令のうち少なくとも1つについて条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0073】
以上のように、第2の実施形態では、各判定部110-0〜110-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、長命令語を構成する複数の短命令に関してそれぞれ条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【0074】
これにより、長命令語を構成する複数の短命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの短命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの短命令においても条件付き命令の条件が成立していないとき、あるいは何れの短命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0075】
(第3の実施形態)
次に、本発明の第3の実施形態を図面に基づいて説明する。
図5は、ハードウェア機構による命令ブレーク方式を実現する第3の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
この図5に示す第3の実施形態によるプロセッサも、図3に示した第2の実施形態によるプロセッサと同様、VLIW型のプロセッサであり、図3に示したブロックと同じブロックには同一の符号を付している。
【0076】
この図5に示す第3の実施形態では、命令ブレーク検出部23が備える複数のブレークポイント・レジスタ24-0〜24-nは、実行を停止させたいブレークポイントの対象アドレスを保持するアドレスレジスタ24aと、命令ブレーク動作が有効か否かを示すフラグレジスタ24bとに加えて、ブレークポイントの対象である長命令語の先頭部分からの変位情報を保持する変位レジスタ24cを備えている。この変位レジスタ24cに保持される変位情報を上記アドレスレジスタ24aに保持される命令ブレークアドレスと共に用いることで、1つの長命令語を構成する複数の短命令のうち何れか1つを特定する。
【0077】
また、第3の実施形態による複数の判定部120-0〜120-nは、図6のように構成されている。なお、図6は、上記複数の判定部120-0〜120-nのうち、1つの判定部120-0の構成を代表として示したものであり、図2および図4に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【0078】
図6に示すように、本実施形態の判定部120-0は、比較部101と、条件付き命令デコーダ102と、条件判定部103と、AND回路104と、セレクタ121とを備えている。
【0079】
上記セレクタ121は、判定部120-0に対応して設けられたブレークポイント・レジスタ24-0の変位レジスタ24cに保持された変位情報を制御信号として選択状態を切り替えることにより、複数の短命令IR♯0〜IR♯iの中から当該変位情報により指定された短命令だけを選択的に条件付き命令デコーダ102に出力する。条件付き命令デコーダ102は、セレクタ121にて選択された短命令をデコードして条件付き命令か否かを検出し、その結果を条件判定部103に供給する。
【0080】
このような構成により、命令ブレーク検出部23が備える複数の判定部120-0〜120-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、長命令語を構成する複数の短命令のうち何れか1つの選択された命令について条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0081】
以上のように、第3の実施形態では、各判定部120-0〜120-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、長命令語を構成する複数の短命令に関して、変位情報により特定した条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【0082】
これにより、長命令語を構成する複数の短命令の中から変位情報により選択した特定の命令が条件付き命令である場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に特定された条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、特定された条件付き命令の条件が成立していないとき、あるいは特定された短命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0083】
(第4の実施形態)
次に、本発明の第4の実施形態を図面に基づいて説明する。
図7は、ハードウェア機構による命令ブレーク方式を実現する第4の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
なお、この図7において、図1および図3に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0084】
上記図1に示した第1の実施形態では、1命令で1つの処理を行うスカラ・プロセッサについて説明した。また、図3に示した第2の実施形態は、固定長である長命令語を構成する複数の短命令を並列に実行するVLIW型プロセッサについて説明した。これに対して、図7に示す第4の実施形態は、可変長命令語を構成する1つまたは複数の基本命令を並列に実行する並列処理プロセッサに適用したものである。
【0085】
すなわち、図7に示すように、第4の実施形態における命令レジスタ28は、1つまたは複数の基本命令から構成される可変長命令語を保持するように構成されている。また、命令ブレーク検出部23が備える複数の判定部130-0〜130-nは、図8のように構成されている。なお、この図8は、上記複数の判定部130-0〜130-nのうち、1つの判定部130-0の構成を代表として示したものである。
【0086】
図8に示すように、本実施形態の判定部130-0は、比較部101と、有効命令エンコーダ131と、条件付き命令デコーダ111と、条件判定部112と、AND回路132と、OR回路113と、AND回路104とを備えている。なお、図8において、図4に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0087】
上記図4に示したVLIW型プロセッサでは、1つの長命令語は固定長で形成されており、これを構成する短命令の個数は一定である。したがって、命令レジスタ27には、IR♯0〜IR♯iのi個の短命令が常に格納される(未使用の部分には“nop”などの未実行命令が格納される)。
【0088】
これに対して、図8に示す第4の実施形態による並列処理プロセッサでは、命令レジスタ28に格納される命令語は可変長であり、これを構成する基本命令の個数は可変である。したがって、命令レジスタ28には、最大i個で任意の数の基本命令が左詰め(IR♯0側から順に)格納されることになる。この場合において、各基本命令の先頭部分には、その基本命令が可変長命令語の末尾に当たるものかどうかを表す1ビットのフラグを有している。
【0089】
上記有効命令エンコーダ131は、命令レジスタ28に格納される複数の基本命令をエンコードし、各基本命令の先頭部分に記述されたフラグ情報を参照することにより、命令レジスタ28に何個の有効な基本命令が格納されているかを検出する。そして、命令レジスタ28に格納されている基本命令の個数だけIR♯0側から順に値が“1”のエンコード信号を出力し、残りは値が“0”のエンコード信号を出力する。
【0090】
また、AND回路132は、複数の条件判定部112-0〜112-iの各々に対応して設けられる複数のAND回路132-0〜132-iを備えている。各AND回路132-0〜132-iは、対応する条件判定部112-0〜112-iにより得られた条件付き命令の条件が成立するか否かの判定信号と、上記有効命令エンコーダ131から命令レジスタ28の各基本命令IR♯0〜IR♯iの部分に対応して出力されるエンコード信号との論理積を夫々とり、その結果をOR回路113に出力する。
【0091】
OR回路113は、上記複数のAND回路132-0〜132-iからそれぞれ出力される信号の論理和をとり、その結果をAND回路104に出力する。AND回路104は、判定部110-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、比較部101より出力される命令ブレークアドレスに関する判定信号と、上記OR回路113より出力される条件コードに関する判定信号との論理積をとり、その結果を図7のOR回路26に出力する。
【0092】
このような構成により、命令ブレーク検出部23が備える複数の判定部130-0〜130-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、可変長命令語を構成する複数の基本命令のうち少なくとも1つについて条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0093】
以上のように、第4の実施形態では、各判定部130-0〜130-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、可変長命令語を構成する複数の基本命令に関してそれぞれ条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【0094】
これにより、可変長命令語を構成する複数の基本命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの基本命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの基本命令においても条件付き命令の条件が成立していないとき、あるいは何れの基本命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0095】
(第5の実施形態)
次に、本発明の第5の実施形態を図面に基づいて説明する。
図9は、ハードウェア機構による命令ブレーク方式を実現する第5の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
この図9に示す第5の実施形態によるプロセッサも、図7に示した第4の実施形態によるプロセッサと同様の並列処理プロセッサであり、図7に示したブロックと同じブロックには同一の符号を付している。
【0096】
この図9に示す第5の実施形態では、図5に示した第3の実施形態と同様に、命令ブレーク検出部23が備える複数のブレークポイント・レジスタ24-0〜24-nは、アドレスレジスタ24aとフラグレジスタ24bと変位レジスタ24cとを備えている。この変位レジスタ24cに保持される変位情報を上記アドレスレジスタ24aに保持される命令ブレークアドレスと共に用いることで、1つの可変長命令語を構成する複数の基本命令のうち何れか1つを特定する。
【0097】
また、第5の実施形態による複数の判定部140-0〜140-nは、図10のように構成されている。なお、図10は、上記複数の判定部140-0〜140-nのうち、1つの判定部140-0の構成を代表として示したものであり、図6および図8に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【0098】
図10に示すように、本実施形態の判定部140-0は、比較部101と、条件付き命令デコーダ102と、条件判定部103と、AND回路104と、第1のセレクタ121と、有効命令エンコーダ131と、第2のセレクタ141と、AND回路142とを備えている。
【0099】
上記第2のセレクタ141は、判定部140-0に対応して設けられたブレークポイント・レジスタ24-0の変位レジスタ24cに保持された変位情報を制御信号として選択状態を切り替えることにより、有効命令エンコーダ131から命令レジスタ28の各基本命令IR♯0〜IR♯iの部分に対応して出力される複数のエンコード信号の中から、変位情報により指定されたエンコード信号だけを選択的にAND回路142に出力する。
【0100】
AND回路142は、変位情報に基づき第1のセレクタ121で選択された条件付き命令について条件判定部103により得られた条件成否の判定信号と、上記変位情報に基づき第2のセレクタ141で選択されたエンコード信号との論理積をとり、その結果をOR回路104に出力する。
【0101】
このような構成により、命令ブレーク検出部23が備える複数の判定部140-0〜140-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、可変長命令語を構成する複数の基本命令のうち何れか1つの選択された命令について条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0102】
以上のように、第5の実施形態では、各判定部140-0〜140-nにおいて、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かだけでなく、並列処理プロセッサの可変長命令語を構成する複数の基本命令に関して、変位情報により特定した条件付き命令の条件が成立しているか否かについても判定し、両条件とも成立している場合にのみブレーク割り込みを発生させるようにしている。
【0103】
これにより、可変長命令語を構成する複数の基本命令の中から変位情報により選択した命令が条件付き命令である場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に特定された条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、特定された条件付き命令の条件が成立していないとき、あるいは特定された基本命令が非条件付き命令のときはブレーク割り込みを発生させないようにすることができる。
【0104】
(第6の実施形態)
次に、本発明の第6の実施形態を図面に基づいて説明する。
図11は、ハードウェア機構による命令ブレーク方式を実現する第6の実施形態による情報処理装置(スカラプロセッサ)の構成例を示すブロック図である。なお、図11において、図1に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0105】
図11に示す第6の実施形態では、命令ブレーク検出部23が備える複数のブレークポイント・レジスタ24-0〜24-nは、実行を停止させたいブレークポイントの対象アドレスを保持するアドレスレジスタ24aと、命令ブレーク動作が有効か否かを示すフラグレジスタ24bとに加えて、命令ブレークモードか条件付き命令ブレークモードかを表すモード情報を保持するモードレジスタ24dを備える。このモードレジスタ24dは、その値が“0”のときには命令ブレークモードを意味し、“1”のときには条件付き命令ブレークモードを意味する。
【0106】
上記命令ブレークモードとは、アドレスレジスタ24aおよびフラグレジスタ24bに保持された命令ブレークの発生条件を満たせばブレーク割り込みを発生させるモードを言う。また、条件付き命令ブレークモードとは、第1の実施形態で説明したように、上記命令ブレークの発生条件だけでなく、条件付き命令の条件をも満たす場合にブレーク割り込みを発生させるモードを言う。
【0107】
また、第6の実施形態による複数の判定部150-0〜150-nは、図12のように構成されている。なお、図12は、上記複数の判定部150-0〜150-nのうち、1つの判定部150-0の構成を代表として示したものであり、図2に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【0108】
図12に示すように、本実施形態の判定部150-0は、比較部101と、条件付き命令デコーダ102と、条件判定部103と、2つのAND回路151,152と、OR回路153とを備えている。
一方のAND回路151は、比較部101より出力される命令ブレークアドレスに関する判定信号と、条件判定部103より出力される条件コードに関する判定信号と、判定部150-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、モードレジスタ24dの値との論理積をとり、その結果をOR回路153に出力する。
【0109】
もう一方のAND回路152は、比較部101より出力される命令ブレークアドレスに関する判定信号と、判定部150-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、モードレジスタ24dの値を反転した値との論理積をとり、その結果をOR回路153に出力する。OR回路153は、上記2つのAND回路151,152から出力される信号の論理和をとり、その結果を図11のOR回路26に出力する。
【0110】
このような構成により、モードレジスタ24dに格納されたモード情報により条件付き命令ブレークモードが指定されているときは、命令ブレーク検出部23が備える複数の判定部150-0〜150-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0111】
一方、モードレジスタ24dに格納されたモード情報により命令ブレークモードが指定されているときは、命令ブレーク検出部23が備える複数の判定部150-0〜150-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっていれば、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0112】
以上のように、第6の実施形態によれば、条件付き命令ブレークモードを指定することにより、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することにより、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0113】
なお、この第6の実施形態では、第1の実施形態で説明したスカラプロセッサに対してモードレジスタ24dを追加し、それに伴い各判定部150-0〜150-n内にも2つのAND回路151,152とAND回路153とを設けた構成について説明したが、第2〜第5の実施形態で説明したVLIW型プロセッサおよび並列処理プロセッサの構成に対して同様にこれらの構成を追加するようにしても良い。
【0114】
この場合の各判定部内の構成は、それぞれ図13〜図16に示すようになる。なお、これらの図13〜図16中に示した各構成要素は、図4、図6、図8、図10、図12中に示した同一符号の構成要素と全て同じものであり、その動作は既に述べた通りであるので、ここではこれら図13〜図16の詳しい説明は省略する。
【0115】
(第7の実施形態)
次に、本発明の第7の実施形態を図面に基づいて説明する。
図17は、ハードウェア機構による命令ブレーク方式を実現する第7の実施形態による情報処理装置(スカラプロセッサ)の構成例を示すブロック図である。なお、図17において、図1に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0116】
図17に示す第7の実施形態において、図1に示した第1の実施形態と異なるところは、命令ブレーク検出部23が備える複数の判定部の構成であり、本実施形態の各判定部160-0〜160-nは、例えば図18のように構成されている。なお、この図18は、上記複数の判定部160-0〜160-nのうち、1つの判定部160-0の構成を代表として示したものであり、図2に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【0117】
図18に示すように、本実施形態の判定部160-0は、比較部101と、条件付き命令デコーダ102と、条件判定部103と、AND回路104と、非条件付き命令デコーダ161と、OR回路162とを備えている。
上記非条件付き命令デコーダ161は、命令レジスタ22から供給される現在実行中の命令語をデコードして非条件付き命令か否かを検出し、その結果をOR回路162に供給する。このとき非条件付き命令デコーダ161は、与えられた命令語が非条件付き命令の場合に、値が“1”の信号を出力する。
【0118】
また、本実施形態の条件判定部103は、条件付き命令デコーダ102における条件付き命令か否かのデコード結果に基づいて、条件レジスタ51から供給される条件付き命令の条件コードで指定される条件が成立するか否かを判定し、その判定信号をOR回路162に供給する。
【0119】
OR回路162は、条件付き命令について条件判定部103により得られた条件成否の判定信号と、非条件付き命令デコーダ161により得られた非条件付き命令か否かの判定信号との論理和をとり、その結果をAND回路104に出力する。
【0120】
AND回路104は、判定部160-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、上記比較部101より出力される命令ブレークアドレスに関する判定信号と、上記OR回路162より出力される信号との論理積をとり、その結果を図17のOR回路26に出力する。
【0121】
このような構成により、命令レジスタ22に格納された命令語が条件付き命令の場合は、命令ブレーク検出部23が備える複数の判定部160-0〜160-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、条件付き命令の条件が成立している場合には、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0122】
一方、命令レジスタ22に格納された命令語が非条件付き命令の場合は、命令語が条件付き命令のときに条件が成立した場合と同様に、OR回路162からは値が“1”の信号が出力される。したがって、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっていれば、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0123】
以上のように、第7の実施形態によれば、与えられた命令語が条件付き命令の場合には、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、与えられた命令語が非条件付き命令の場合には、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0124】
なお、この第7の実施形態では、第1の実施形態で説明したスカラプロセッサに対して各判定部160-0〜160-n内に非条件付き命令デコーダ161およびOR回路162を追加した構成について説明したが、第2〜第5の実施形態で説明したVLIW型プロセッサおよび並列処理プロセッサの構成に対して同様にこれらの構成を追加するようにしても良い。
【0125】
この場合の各判定部内の構成は、それぞれ図19〜図22に示すようになる。なお、これらの図19〜図22中に示した各構成要素は、図4、図6、図8、図10、図18中に示した同一符号の構成要素と全て同じものであり、その動作は既に述べた通りである。また、′の記号を付けて示した構成要素はこの記号なしの構成要素と同様の機能を有するものであるので、ここでこれら図19〜図22の詳しい説明をするまでもなく、その動作は明確となるであろう。
【0126】
(第8の実施形態)
次に、本発明の第8の実施形態を図面に基づいて説明する。
図23は、ハードウェア機構による命令ブレーク方式を実現する第8の実施形態による情報処理装置(スカラプロセッサ)の構成例を示すブロック図である。この第8の実施形態は、図11に示した第6の実施形態と、図17に示した第7の実施形態とを組み合わせたものである。なお、この第8の実施形態を示す図23において、図11および図17に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0127】
図23に示す第8の実施形態において、図11に示した第6の実施形態および図17に示した第7の実施形態と異なるところは、命令ブレーク検出部23が備える複数の判定部の構成であり、本実施形態の各判定部170-0〜170-nは、例えば図24のように構成されている。なお、この図24は、上記複数の判定部170-0〜170-nのうち、1つの判定部170-0の構成を代表として示したものであり、図12および図18に示したブロックと同じブロックには同一の符号を付して、重複する説明は省略する。
【0128】
図24に示すように、本実施形態の判定部170-0は、比較部101と、条件付き命令デコーダ102と、条件判定部103と、2つのAND回路151,152と、OR回路153と、非条件付き命令デコーダ161と、OR回路162とを備えている。
【0129】
上記非条件付き命令デコーダ161は、命令レジスタ22から供給される現在実行中の命令語をデコードして非条件付き命令か否かを検出し、その結果をOR回路162に供給する。このとき非条件付き命令デコーダ161は、与えられた命令語が非条件付き命令の場合に、値が“1”の信号を出力する。
【0130】
また、本実施形態の条件判定部103は、条件付き命令デコーダ102における条件付き命令か否かのデコード結果に基づいて、条件レジスタ51から供給される条件付き命令の条件コードで指定される条件が成立するか否かを判定し、その判定信号をOR回路162に供給する。
【0131】
OR回路162は、条件付き命令について条件判定部103により得られた条件成否の判定信号と、非条件付き命令デコーダ161により得られた非条件付き命令か否かの判定信号との論理和をとり、その結果を一方のAND回路151に出力する。
【0132】
上記一方のAND回路151は、上記OR回路162から出力される信号と、比較部101より出力される命令ブレークアドレスに関する判定信号と、判定部170-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、モードレジスタ24dの値との論理積をとり、その結果をOR回路153に出力する。
【0133】
もう一方のAND回路152は、比較部101より出力される命令ブレークアドレスに関する判定信号と、判定部170-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、モードレジスタ24dの値を反転した値との論理積をとり、その結果をOR回路153に出力する。OR回路153は、上記2つのAND回路151,152から出力される信号の論理和をとり、その結果を図23のOR回路26に出力する。
【0134】
このような構成により、モードレジスタ24dに格納されたモード情報により条件付き命令ブレークモードが指定されており、命令レジスタ22に格納された命令語が条件付き命令の場合は、命令ブレーク検出部23が備える複数の判定部170-0〜170-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっており、かつ、条件付き命令の条件が成立している場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0135】
また、モードレジスタ24dに格納されたモード情報により条件付き命令ブレークモードが指定されており、命令レジスタ22に格納された命令語が非条件付き命令の場合は、命令ブレーク検出部23が備える複数の判定部170-0〜170-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっていれば、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0136】
また、モードレジスタ24dに格納されたモード情報により命令ブレークモードが指定されているときは、命令ブレーク検出部23が備える複数の判定部170-0〜170-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっていれば、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0137】
以上のように、第8の実施形態によれば、条件付き命令ブレークモードを指定することによって、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することによって、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0138】
さらに、条件付き命令ブレークモードを指定しているときに、与えられた命令語が条件付き命令の場合に、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるだけでなく、与えられた命令語が非条件付き命令の場合も、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0139】
なお、この第8の実施形態では、第1の実施形態で説明したスカラプロセッサに対してモードレジスタ24dを追加し、各判定部170-0〜170-n内にも2つのAND回路151,152とAND回路153、および非条件付き命令デコーダ161とOR回路162を追加した構成について説明したが、第2〜第5の実施形態で説明したVLIW型プロセッサおよび並列処理プロセッサの構成に対して同様にこれらの構成を追加するようにしても良い。
【0140】
この場合の各判定部内の構成は、それぞれ図25〜図28に示すようになる。なお、これらの図25〜図28中に示した各構成要素は、図4、図6、図8、図10、図18、図24中に示した同一符号の構成要素と全て同じものであり、その動作は既に述べた通りである。また、′の記号を付けて示した構成要素はこの記号なしの構成要素と同様の機能を有するものであるので、ここでこれら図25〜図28の詳しい説明をするまでもなく、その動作は明確となるであろう。
【0141】
(第9の実施形態)
次に、本発明の第9の実施形態を図面に基づいて説明する。
上記第1〜第8の実施形態では、命令ブレークの発生条件および条件付き命令の条件が成立するか否かをハードウェア機構により実現する例について説明した。これに対して、この第9の実施形態を含む以下の第13の実施形態までの各実施形態は、少なくとも条件付き命令の条件が成立するか否かをソフトウェアの機能により実現する例について説明する。
【0142】
第9〜第12の実施形態において、命令ブレーク方式を実現するための情報処理装置(プロセッサ)の全体構成は、図45に示したものと同様である。これから分かるように、命令ブレークの発生条件が成立するか否かについては、ブレークポイントの対象アドレスおよび命令ブレーク動作が有効か否かのフラグ情報を保持するブレークポイント・レジスタ24-0〜24-nと、これらの情報に基づき命令ブレークの発生条件が成立したか否かを判定する判定部25-0〜25-nとを用いたハードウェア機構により判定する。
【0143】
この場合の判定部25-0〜25-nは、図29のように構成される。なお、この図29は、上記複数の判定部25-0〜25-nのうち、判定部25-0の構成を代表として示したものであり、図2に示したブロックと同じブロックには同一の符号を付している。
図29に示すように、本実施形態の判定部25-0は、比較部101とAND回路104とを備えている。
【0144】
上記比較部101は、判定部25-0に対応して設けられたブレークポイント・レジスタ24-0のアドレスレジスタ24aに保持された命令ブレークアドレスと、プログラム・カウンタ21から供給される現在の実行アドレスとを比較し、両者が一致するか否かを判定する。そして、両アドレスが一致した場合には値が“1”の判定信号を出力し、両アドレスが一致しなかった場合には値が“0”の判定信号を出力する。
【0145】
また、AND回路104は、判定部25-0に対応して設けられたブレークポイント・レジスタ24-0のフラグレジスタ24bの値と、上記比較部101より出力される命令ブレークアドレスに関する判定信号との論理積をとり、その結果を図45のOR回路26に出力する。
【0146】
このような構成により、命令ブレーク検出部23が備える複数の判定部25-0〜25-nのうち、少なくとも1つのエントリにおいて、命令ブレークアドレスと現在の実行アドレスとが一致し、かつ、フラグレジスタ24bの値が“1”となっている場合に、OR回路26は割り込み制御部40に割り込み通知信号67を出力する。
【0147】
なお、本実施形態において出力される割り込み通知信号67は、命令ブレークの発生条件が成立したことを示すのみで、条件付き命令の条件が成立したことまでは含んでいない。この条件付き命令の条件が成立するか否かについては、上記割り込み通知信号67の受信に応じて起動される、メモリ10に格納されたプログラムである条件判定のための割り込みハンドラによって判定することになる。
【0148】
すなわち、上記割り込み制御部40は、OR回路26から割り込み通知信号67を受信すると、命令フェッチ部20のプログラム・カウンタ21から割り込み発生時の命令アドレス73を読み出し、それをレジスタ部50の復帰アドレスレジスタ52に書き込む。そして、条件付き命令の条件を判断するための割り込みハンドラの先頭アドレス66を命令フェッチ部20に供給し、そのアドレスをプログラム・カウンタ21にセットする。また、割り込み制御部40は、割り込み発生前のプロセッサの状態を元状態レジスタ53に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ54に書き込む。これにより、プロセッサはユーザ状態からスーパバイザ状態に遷移する。
【0149】
このようにしてスーパバイザ状態に遷移したプロセッサは、プログラム・カウンタ21にセットされた割り込みハンドラの先頭アドレス66から順に、当該割り込みハンドラの処理を実行する。
図30は、第9の実施形態による割り込みハンドラの処理手順を示すフローチャートである。この第9の実施形態は、第1の実施形態に示したスカラプロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断に基づく割り込み制御を、図30のフローチャートに示すソフトウェアの機能により行うものである。
【0150】
図30において、ステップS1では、コンテキストの退避処理を行う。すなわち、ここでは割り込みハンドラにて使用するレジスタ部50の値をメモリ10へ書き込む。次に、ステップS2では、例えば図45の命令実行部30が備えるブレークポイント・テーブルを参照して、ブレーク割り込み発生アドレスに対応するエントリを求める。すなわち、命令実行部30には、図31に示すようなブレークポイント・テーブルがあらかじめ設定され、保持されている。この図31において、VALID はブレークポイント動作が有効であるか否かを示す欄であり、その値が“1”のときにはブレークポイント動作有効状態をを意味し、“0”のときにはブレークポイント動作無効状態を意味する。また、ADDRESS は実行を停止させたいブレークポイントの対象アドレスを保持する欄である。
【0151】
上記ステップS2では、この図31に示すブレークポイント・テーブルのADDRESS の欄を参照して、図45の複数のブレークポイント・レジスタ24-0〜24-nが備える各アドレスレジスタ24aに格納されている命令アドレスのうち、ブレーク割り込み発生の要因となった命令アドレスが存在するエントリを♯0〜♯nの中から求める。
【0152】
次に、ステップS3では、ブレークポイント・テーブルの中にブレーク割り込み発生アドレスに対応するエントリが見つかったか否かを判断する。ここで、該当するエントリが見つからなかった場合は、不当な命令ブレークであると判定して、ステップS4に進んで不当な命令ブレークに対するエラー処理を実行する。一方、該当するエントリが見つかった場合は、ステップS5に進む。
【0153】
ステップS5では、ブレークポイント対象の命令語(割り込み通知信号67を発生させる要因となった命令語)が条件付き命令か否かを求める。そして、ステップS6で、ブレークポイント対象の命令語が条件付き命令か否かを判断する。ここで、条件付き命令でなかった場合は、命令ブレークに対する処理を行うことなくステップS10にジャンプする。
【0154】
一方、ブレークポイント対象命令語が条件付き命令であった場合は、ステップS7に進む。ステップS7では、条件レジスタ51を参照して、条件付き命令であるブレークポイント対象命令語の条件が成立するか否かを求める。そして、ステップS8で、条件付き命令の条件が成立したか否かを判断し、成立しなかった場合は、命令ブレークに対する処理を行うことなくステップS10にジャンプする。
【0155】
また、条件付き命令の条件が成立した場合は、ステップS9に進み、命令ブレークに対する処理を実行する。すなわち、順次インクリメントされるプログラム・カウンタ21の値に従って、割り込みハンドラの命令語62を命令フェッチ部20に読み出し、読み出した命令語に従って命令実行部30が割り込みハンドラの最終アドレスに向かって順次処理を実行していく。
【0156】
そして、発生した割り込みに対応する割り込みハンドラの最終段において、ステップS10でコンテキストの復元処理を行う。コンテキストの復元処理が終わると、次にステップS11に進み、命令実行部30はブレーク割り込み復帰命令を実行して、命令ブレーク割り込みの処理から元のアプリケーションプログラムの処理へと復帰する。
【0157】
すなわち、まず命令実行部30は、元状態レジスタ53の値を読み出して、その値を現状態レジスタ54に書き込む。これにより、プロセッサはスーパバイザ状態からユーザ状態に遷移する。さらに、命令実行部30は、割り込み状態から復帰する元の命令アドレスを復帰アドレスレジスタ52から読み出し、その命令アドレスを分岐先アドレス65として命令フェッチ部20に供給し、プログラム・カウンタ21にセットする。
【0158】
これに対応して命令フェッチ部20は、プログラム・カウンタ21にセットされた元の命令アドレスに基づいて、通常動作時の命令語62をメモリ10から読み出して、それを命令レジスタ22に一旦保持した後、命令実行部30に供給する。これにより、命令実行部30が通常動作に対応したアプリケーションの残りの処理を実行する。
【0159】
上述のように、ブレークポイント対象命令語が条件付き命令でなかった場合、および条件付き命令の条件が成立しなかった場合は、ステップS9で命令ブレークに対する処理を行うことなく直ちにステップS10に進む。そして、このステップS10でコンテキストの復元処理を行うとともに、続くステップS11で命令ブレーク割り込みからの復帰処理を行い、元のアプリケーションプログラムの動作に戻る。
【0160】
以上のように、第9の実施形態では、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かを各判定部25-0〜25-nにより判定するとともに、条件付き命令の条件が成立しているか否かを割り込みハンドラのソフトウェアにより判定し、両条件とも成立している場合にのみブレーク割り込みの処理を実際に実行するようにしている。
【0161】
これにより、第1の実施形態と同様に、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、条件付き命令の条件が成立していないとき、あるいは与えられた命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0162】
なお、以上の第9の実施形態では、第1の実施形態に示したスカラプロセッサに対応する処理をソフトウェアの機能により実現しているが、第2および第3の実施形態に示したVLIW型プロセッサ、あるいは第4および第5の実施形態に示した並列処理プロセッサに対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【0163】
例えば、第2の実施形態に示したVLIW型プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図32のようになる。図32において、ステップS15では、ブレークポイント対象の長命令語が条件付き命令から成る短命令を含むか否かを求め、その結果に基づいてステップS16で、ブレークポイント対象の長命令語が条件付き命令を含むか否かを判断する。
【0164】
そして、長命令語を構成する複数の短命令が非条件付き命令のみであった場合はステップS10にジャンプし、条件付き命令を含んでいた場合はステップS17に進む。ステップS17では、条件レジスタ51を参照して、ブレークポイント対象の長命令語に含まれる条件付き命令の条件が成立するか否かを求め、ステップS8でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【0165】
このようにすれば、長命令語を構成する複数の短命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの短命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの短命令においても条件付き命令の条件が成立していないとき、あるいは何れの短命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0166】
また、第3の実施形態に示したVLIW型プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図33のようになる。図33において、ステップS25では、ブレークポイント対象の長命令語を構成する複数の短命令のうち、注目する短命令が条件付き命令か否かを求め、ステップS26では、その注目する短命令が条件付き命令であるか否かを判断する。
【0167】
ここで、長命令語の中の注目する短命令は、命令実行部30が保持するブレークポイント・テーブルを参照して特定する。すなわち、この場合のブレークポイント・テーブルは、図34のように構成されており、図31に示したブレークポイント・テーブルと較べて、DISPの欄が追加されている。このDISPは、ブレークポイント対象の長命令語の先頭部分からの変位情報を保持するための欄であり、この変位情報をADDRESS の欄に保持される命令ブレークアドレスと共に用いることで、1つの長命令語を構成する複数の短命令のうち何れか1つを特定する。
【0168】
上記ステップS26において、注目する短命令が条件付き命令でなかったと判断した場合はステップS10にジャンプし、条件付き命令であった場合はステップS27に進む。ステップS27では、条件レジスタ51を参照して、ブレークポイント対象の長命令語の中で注目している条件付き命令の条件が成立するか否かを求め、ステップS8でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【0169】
このようにすれば、長命令語を構成する複数の短命令のうち何れかの命令を指定して条件付き命令の条件が成立しているか否かを判定し、その条件の成否に応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に指定した条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、指定された条件付き命令の条件が成立していないとき、あるいは指定された短命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0170】
また、第4の実施形態に示した並列処理プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図35のようになる。図35において、ステップS35では、ブレークポイント対象の可変長命令語が条件付き命令から成る基本命令を含むか否かを求め、その結果に基づいてステップS36で、上記可変長命令語が条件付き命令を含むか否かを判断する。
【0171】
そして、ブレークポイント対象命令語を構成する複数の基本命令が非条件付き命令のみであった場合はステップS10にジャンプし、条件付き命令を含んでいた場合はステップS37に進む。ステップS37では、条件レジスタ51を参照して、ブレークポイント対象命令語に含まれる条件付き命令の条件が成立するか否かを求め、ステップS8でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【0172】
このようにすれば、可変長命令語を構成する複数の基本命令の中に条件付き命令が存在する場合に、その条件付き命令の条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に何れかの基本命令に関して条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、何れの基本命令においても条件付き命令の条件が成立していないとき、あるいは何れの基本命令も非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0173】
また、第5の実施形態に示した並列処理プロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断をソフトウェアの機能により実現する場合は、フローチャートは図36のようになる。図36において、ステップS45では、ブレークポイント対象の可変長命令語を構成する複数の基本命令のうち、注目する基本命令が条件付き命令か否かを求め、ステップS46では、その注目する基本命令が条件付き命令であるか否かを判断する。
【0174】
ここで、可変長命令語の中の注目する基本命令は、図34のようなブレークポイント・テーブルを参照して判断する。なお、この場合のブレークポイント・テーブルでは、DISPの欄には、ブレークポイント対象の可変長命令語の先頭部分からの変位情報が保持されており、この変位情報をADDRESS の欄に保持される命令ブレークアドレスと共に用いることで、1つの可変長命令語を構成する複数の基本命令のうち何れか1つを特定する。
【0175】
上記ステップS46において、注目する基本命令が条件付き命令でなかったと判断した場合はステップS10にジャンプし、条件付き命令であった場合はステップS47に進む。ステップS47では、条件レジスタ51を参照して、ブレークポイント対象命令語の中で注目している条件付き命令の条件が成立するか否かを求め、ステップS8でその条件付き命令の条件が成立したか否かを判断する。その他のステップの処理は、上述した通りである。
【0176】
このようにすれば、可変長命令語を構成する複数の基本命令のうち何れかの命令を特定して条件付き命令の条件が成立しているか否かを判定し、その条件の成否に応じてブレーク割り込みの発生を制御することができる。つまり、命令ブレークの発生条件が成立している場合において、更に指定した条件付き命令の条件が成立しているときにはブレーク割り込みを発生させ、指定された条件付き命令の条件が成立していないとき、あるいは指定された基本命令が非条件付き命令のときにはブレーク割り込みを発生させないようにすることができる。
【0177】
(第10の実施形態)
次に、本発明の第10の実施形態を図面に基づいて説明する。
図37は、第10の実施形態による割り込みハンドラの処理手順を示すフローチャートであり、図30中の処理と同じ内容の処理には同一のステップ番号を付している。
【0178】
この第10の実施形態は、第6の実施形態に示したプロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断に基づく割り込み制御を、図37のフローチャートに示すソフトウェアの機能により行うものである。すなわち、本実施形態では、命令ブレークの発生条件を満たせばブレーク割り込みを発生させる命令ブレークモードと、命令ブレークの発生条件および条件付き命令の条件の両方を満たす場合にブレーク割り込みを発生させる条件付き命令ブレークモードとを切り替える機能を有する。
【0179】
第10の実施形態によるブレークポイント・テーブルは、図38のように構成されており、図31に示したブレークポイント・テーブルと較べて、MODEの欄が追加されている。このMODEは、命令ブレークモードか条件付き命令ブレークモードかを表すモード情報を保持するための欄であり、その値が“0”のときには命令ブレークモードを意味し、“1”のときには条件付き命令ブレークモードを意味する。
【0180】
図37において、ステップS3での判断の結果、図38のブレークポイント・テーブルの中にブレーク割り込み発生アドレスに対応するエントリが見つかったと判断した場合には、本実施形態ではステップS12へと処理を進める。ステップS12では、図38のブレークポイント・テーブルを参照して、該当するエントリについて命令ブレークモードが設定されているか、それとも条件付き命令ブレークモードが設定されているかを判断する。
【0181】
ここで、命令ブレークモードが設定されている場合は、このモードは命令ブレークの発生条件を満たせばブレーク割り込みを発生させるモードであるので、直ちにステップS9に進み、命令ブレークに対する処理を実行する。一方、条件付き命令ブレークモードが設定されている場合は、このモードは更に条件付き命令の条件も満たす場合に限ってブレーク割り込みを発生させるモードであるので、ステップS5に進む。その他のステップの処理は、図30で説明した通りである。
【0182】
以上のように、第10の実施形態では、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かを各判定部25-0〜25-nにより判定し、命令ブレークモードのときは当該命令ブレークの発生条件が成立していればブレーク割り込みを発生させる。また、条件付き命令ブレークモードのときは、条件付き命令の条件が成立しているか否かを割り込みハンドラのソフトウェアにより更に判定し、両条件とも成立している場合にのみブレーク割り込みを実際に発生させるようにしている。
【0183】
これにより、第6の実施形態と同様に、条件付き命令ブレークモードを指定することにより、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することにより、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0184】
なお、この図37の例では、図12に示したスカラプロセッサの判定部に対応する処理をソフトウェアの機能により実現しているが、図13よび図14の実施形態に示したVLIW型プロセッサの判定部、あるいは図15よび図16の実施形態に示した並列処理プロセッサの判定部に対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【0185】
例えば、VLIW型プロセッサに適用する場合は、図37のフローチャート中に示すステップS5〜S7の処理を、図32に示すステップS15〜S17の処理、あるいは図33に示すステップS25〜S27の処理に置き換えれば良い。また、並列処理プロセッサに適用する場合は、図37のフローチャート中に示すステップS5〜S7の処理を、図35に示すステップS35〜S37の処理、あるいは図36に示すステップS45〜S47の処理に置き換えれば良い。
ただし、図33に示すステップS25〜S27、あるいは図36に示すステップS45〜S47の処理に置き換える場合は、ブレークポイント・テーブルとしては、図39に示すようなものを用いる必要がある。
【0186】
(第11の実施形態)
次に、本発明の第11の実施形態を図面に基づいて説明する。
図40は、第11の実施形態による割り込みハンドラの処理手順を示すフローチャートであり、図30中の処理と同じ内容の処理には同一のステップ番号を付している。また、ブレークポイント・テーブルは、図31と同様に構成されている。
【0187】
この第11の実施形態は、第7の実施形態に示したプロセッサにおいてハードウェア機構により行っていた条件付き命令の条件の成否判断に基づく割り込み制御を、図40のフローチャートに示すソフトウェアの機能により行うものである。すなわち、本実施形態では、条件付き命令の条件が成立した場合だけでなく、ブレークポイント対象の命令語が非条件付き命令の場合にもブレーク割り込みを発生させる機能を有する。
【0188】
図30に示す第9の実施形態では、ステップS6での判断の結果、ブレークポイント対象の命令語が条件付き命令でなかったと判断した場合は、ステップS9の命令ブレークに対する処理は行うことなく、直ちにステップS10の処理にジャンプしていた。これに対して、図40に示す第11の実施形態では、ステップS6での判断の結果、ブレークポイント対象の命令語が条件付き命令でなかったと判断した場合でも、ステップS9に進んで命令ブレークに対する処理を実行するようにする。
【0189】
以上のように、第11の実施形態では、命令ブレークアドレスおよびフラグ値に関する命令ブレークの発生条件が成立するか否かを各判定部25-0〜25-nにより判定するとともに、その条件が成立するときにはブレークポイント対象命令語が条件付き命令か否かを更に判定する。そして、非条件付き命令の場合には無条件にブレーク割り込みを発生させ、条件付き命令の場合には、その条件付き命令の条件が成立しているか否かを割り込みハンドラのソフトウェアにより更に判定し、これが成立している場合にのみブレーク割り込みを実際に発生させるようにしている。
【0190】
これにより、第7の実施形態と同様に、与えられた命令語が条件付き命令の場合に、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、与えられた命令語が非条件付き命令の場合も、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0191】
なお、この図40の例では、図18に示したスカラプロセッサの判定部に対応する処理をソフトウェアの機能により実現しているが、図19よび図20の実施形態に示したVLIW型プロセッサの判定部、あるいは図21よび図22の実施形態に示した並列処理プロセッサの判定部に対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【0192】
例えば、VLIW型プロセッサに適用する場合は、図40のフローチャート中に示すステップS5〜S7の処理を、図32に示すステップS15〜S17の処理、あるいは図33に示すステップS25〜S27の処理に置き換えれば良い。また、並列処理プロセッサに適用する場合は、図40のフローチャート中に示すステップS5〜S7の処理を、図35に示すステップS35〜S37の処理、あるいは図36に示すステップS45〜S47の処理に置き換えれば良い。
ただし、図33に示すステップS25〜S27、あるいは図36に示すステップS45〜S47の処理に置き換える場合は、ブレークポイント・テーブルとしては、図34に示すようなものを用いる必要がある。
【0193】
(第12の実施形態)
次に、本発明の第12の実施形態を図面に基づいて説明する。
図41は、第12の実施形態による割り込みハンドラの処理手順を示すフローチャートであり、図37中の処理と同じ内容の処理には同一のステップ番号を付している。また、ブレークポイント・テーブルは、図38と同様に構成されている。
【0194】
この第12の実施形態は、第10の実施形態と第11の実施形態とを組み合わせたものである。すなわち、本実施形態では、命令ブレークの発生条件を満たせばブレーク割り込みを発生させる命令ブレークモードと、命令ブレークの発生条件および条件付き命令の条件の両方を満たす場合にブレーク割り込みを発生させる条件付き命令ブレークモードとを切り替える機能を有する。また、条件付き命令の条件が成立した場合だけでなく、ブレークポイント対象の命令語が非条件付き命令の場合にもブレーク割り込みを発生させる機能も有する。
【0195】
図41において、ステップS3での判断の結果、図38のブレークポイント・テーブルの中にブレーク割り込み発生アドレスに対応するエントリが見つかったと判断した場合には、ステップS12へと処理を進める。ステップS12では、図38のブレークポイント・テーブルを参照して、該当するエントリについて命令ブレークモードが設定されているか、それとも条件付き命令ブレークモードが設定されているかを判断する。
【0196】
ここで、命令ブレークモードが設定されている場合は、このモードは命令ブレークの発生条件を満たせばブレーク割り込みを発生させるモードであるので、直ちにステップS9に進み、命令ブレークに対する処理を実行する。一方、条件付き命令ブレークモードが設定されている場合は、このモードは更に条件付き命令の条件も満たす場合に限ってブレーク割り込みを発生させるモードであるので、ステップS5に進む。
【0197】
そして、ステップS5で、ブレークポイント対象命令語が条件付き命令か否かを求めた後、ステップS6でそれが条件付き命令か否かを判断した結果、ブレークポイント対象命令語が条件付き命令でなかった場合は、ステップS9に進んで命令ブレークに対する処理を実行する。一方、ブレークポイント対象命令語が条件付き命令であった場合は、ステップS7に進んで以降の処理を行う。その他のステップの処理は、図37で説明した通りである。
【0198】
以上のように、第12の実施形態によれば、条件付き命令ブレークモードを指定することによって、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるとともに、命令ブレークモードを指定することによって、条件付き命令の条件の成否は問わず、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0199】
さらに、条件付き命令ブレークモードを指定しているときに、与えられた命令語が条件付き命令の場合に、命令ブレークの発生条件と条件付き命令の条件とが成立しているか否かに応じてブレーク割り込みの発生を制御することができるだけでなく、与えられた命令語が非条件付き命令の場合も、命令ブレークの発生条件が成立しているか否かに応じてブレーク割り込みの発生を制御することができるようになる。
【0200】
なお、この図41の例では、図24に示したスカラプロセッサの判定部に対応する処理をソフトウェアの機能により実現しているが、図25よび図26の実施形態に示したVLIW型プロセッサの判定部、あるいは図27よび図28の実施形態に示した並列処理プロセッサの判定部に対応する処理をそれぞれソフトウェアの機能により実現するようにすることも可能である。
【0201】
例えば、VLIW型プロセッサに適用する場合は、図41のフローチャート中に示すステップS5〜S7の処理を、図32に示すステップS15〜S17の処理、あるいは図33に示すステップS25〜S27の処理に置き換えれば良い。また、並列処理プロセッサに適用する場合は、図41のフローチャート中に示すステップS5〜S7の処理を、図35に示すステップS35〜S37の処理、あるいは図36に示すステップS45〜S47の処理に置き換えれば良い。
ただし、図33に示すステップS25〜S27、あるいは図36に示すステップS45〜S47の処理に置き換える場合は、ブレークポイント・テーブルとしては、図39に示すようなものを用いる必要がある。
【0202】
(第13の実施形態)
次に、本発明の第13の実施形態を図面に基づいて説明する。
上記第9〜第12の実施形態では、割り込みを発生させたい命令のアドレスをレジスタに設定し、このレジスタに設定した命令ブレークアドレスと現実に実行した命令のアドレスとが一致したときにブレーク割り込みを発生させる、いわゆる命令ブレークポイント機能への適用例について説明した。
【0203】
これに対して、以下に述べる第13の実施形態では、プロセッサ中の任意の場所に指定された命令を割り込み発生のためのブレークポイント命令などで置き換え、プログラムを順次実行している中で上記置き換えたブレークポイント命令を実行したときにブレーク割り込みを発生させる、いわゆるソフトウェア・ブレークポイント機能への適用例について説明する。
【0204】
この第13の実施形態において、ソフトウェア・ブレーク方式を実現するための情報処理装置(プロセッサ)の全体構成は、図46に示したものと同様である。図46において、命令フェッチ部20より供給される命令を命令実行部30において実行するときに、ブレークポイント命令が供給されると、命令実行部30は、ソフトウェア・ブレーク割り込みが発生した旨を割り込み通知信号82によって割り込み制御部40に通知する。
【0205】
割り込み制御部40は、命令実行部30から割り込み通知信号82を受信すると、命令フェッチ部20のプログラム・カウンタ21から割り込み発生時の命令アドレス73を読み出し、それをレジスタ部50の復帰アドレスレジスタ52に書き込む。そして、条件付き命令の条件を判断するための割り込みハンドラの先頭アドレス66を命令フェッチ部20に供給し、そのアドレスをプログラム・カウンタ21にセットする。また、割り込み制御部40は、割り込み発生前のプロセッサの状態を元状態レジスタ53に書き込むとともに、発生した割り込みに対応して遷移するプロセッサの状態を現状態レジスタ54に書き込む。これにより、プロセッサはユーザ状態からスーパバイザ状態に遷移する。
【0206】
このようにしてスーパバイザ状態に遷移したプロセッサは、プログラム・カウンタ21にセットされた割り込みハンドラの先頭アドレス66から順に、上記図30、図32、図33、図35、図36、図37、図40あるいは図41に示したようなフローチャートに従って割り込みハンドラの処理を実行する。
【0207】
ただし、これらのフローチャートにおいて、ステップS4では、不当な命令ブレークに対するエラー処理ではなく、不当なソフトウェア・ブレークに対するエラー処理を行う。また、ステップS9では命令ブレークに対する処理ではなくソフトウェア・ブレークに対する処理を行い、ステップS11では命令ブレーク割り込みからの復帰ではなくソフトウェア・ブレーク割り込みからの復帰処理を行う。
【0208】
また、これらの処理で使用するブレークポイント・テーブルとしては、VLIW型プロセッサの長命令語あるいは並列処理プロセッサの可変長命令語の先頭部分からの変位情報(DISP)や、命令ブレークモードと条件付き命令ブレークモードとの切り換え機能(MODE)の有無に応じて、図47、図42、図43、図44のように構成した何れかのものを用いる。
【0209】
この第13の実施形態においても、上記第9〜第12の実施形態で説明したのと同様の効果を得ることができる。
【0210】
なお、以上に説明した各実施形態の割込制御装置は、コンピュータのCPUあるいはMPU、RAM、ROMなどで構成されるものであり、RAMやROMに記憶されたプログラムが動作することによって実現できる。したがって、コンピュータが上記機能を果たすように動作させるプログラムを、例えばCD−ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものである。上記プログラムを記録する記録媒体としては、CD−ROM以外に、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【0211】
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
【0212】
なお、上記に説明した各実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0213】
本発明の様々な形態をまとめると、以下のようになる。
(1)条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
命令シーケンスの任意の場所に設定されたブレークポイントを検出するブレーク検出手段と、
上記条件付き命令の条件を満たすか否かを判定する条件判定手段と、
上記ブレーク検出手段による上記ブレークポイントの検出結果と、上記条件判定手段による判定結果とに基づいてブレーク割り込みの発生を制御する制御手段とを備えたことを特徴とする割込制御装置。
【0214】
(2)条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果の検出信号を出力する命令ブレーク検出手段と、
読み出された上記条件付き命令の条件を満たすか否かを判定し、その結果の判定信号を出力する条件判定手段と、
上記命令ブレーク検出手段より出力される上記検出信号と、上記条件判定手段より出力される上記判定信号との論理積をとり、その結果に応じてブレーク割り込み発生通知を行う論理演算手段とを備えたことを特徴とする割込制御装置。
【0215】
(3)上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記ブレークポイントを示す命令アドレスに対応する命令語が、非条件付き命令または条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行うことを特徴とする上記(2)に記載の割込制御装置。
【0216】
(4)上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第1のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第2のモードとの何れかを設定するモード設定手段を備え、
上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記第1のモードの設定時には、上記ブレークポイントを示す命令アドレスに対応する命令語が、非条件付き命令または条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行い、上記第2のモードの設定時には、命令語が上記ブレークポイントを示す命令アドレスに対応する命令語である場合に上記ブレーク割り込み発生通知を行うことを特徴とする上記(2)に記載の割込制御装置。
【0217】
(5)上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記ブレークポイントを示す命令アドレスに対応する命令語が、条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行うことを特徴とする上記(2)に記載の割込制御装置。
【0218】
(6)上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第1のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第2のモードとの何れかを設定するモード設定手段を備え、
上記条件判定手段は、命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、その結果の判定信号を出力するように形成され、
上記論理演算手段は、上記第1のモードの設定時には、上記ブレークポイントを示す命令アドレスに対応する命令語が、条件の成立しない条件付き命令である場合には上記ブレーク割り込み発生通知を行わず、上記命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込み発生通知を行い、上記第2のモードの設定時には、命令語が上記ブレークポイントを示す命令アドレスに対応する命令語である場合に上記ブレーク割り込み発生通知を行うことを特徴とする上記(2)に記載の割込制御装置。
【0219】
(7)上記データ処理装置は、1命令で1つの処理を行うスカラプロセッサ、長命令語を構成する複数の短命令を並列に実行する長命令語型プロセッサ、または可変長命令語を構成する1つ以上の基本命令を並列に実行する並列処理プロセッサであることを特徴とする上記(2)に記載の割込制御装置。
【0220】
(8)条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行う命令ブレーク検出手段と、
上記命令ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。
【0221】
(9)上記制御手段は、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記(8)に記載の割込制御装置。
【0222】
(10)上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第1のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第2のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第1のモードの設定時には、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行い、上記第2のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記(8)に記載の割込制御装置。
【0223】
(11)上記制御手段は、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記(8)に記載の割込制御装置。
【0224】
(12)上記命令ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第1のモードと、上記命令ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第2のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第1のモードの設定時には、上記割り込みハンドラ内において、命令ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記命令ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記命令ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行い、上記第2のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記(8)に記載の割込制御装置。
【0225】
(13)上記データ処理装置は、1命令で1つの処理を行うスカラプロセッサ、長命令語を構成する複数の短命令を並列に実行する長命令語型プロセッサ、または可変長命令語を構成する1つ以上の基本命令を並列に実行する並列処理プロセッサであることを特徴とする上記(8)に記載の割込制御装置。
【0226】
(14)条件付き命令の実行機能を有するデータ処理装置に適用される割込制御装置であって、
命令シーケンスの任意の場所で置き換えられたブレークポイント命令が実行されたか否かに応じてソフトウェア・ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行うソフトウェア・ブレーク検出手段と、
上記ソフトウェア・ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、上記条件付き命令の条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。
【0227】
(15)上記制御手段は、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記(14)に記載の割込制御装置。
【0228】
(16)上記ソフトウェア・ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第1のモードと、上記ソフトウェア・ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第2のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第1のモードの設定時には、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立する条件付き命令である場合に上記ブレーク割り込みの処理を行い、上記第2のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記(14)に記載の割込制御装置。
【0229】
(17)上記制御手段は、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合には上記ブレーク割り込みの処理を行うことを特徴とする上記(14)に記載の割込制御装置。
【0230】
(18)上記ソフトウェア・ブレークの発生条件および上記条件付き命令の条件を満たしたときにブレーク割り込みを発生させる第1のモードと、上記ソフトウェア・ブレークの発生条件を満たしたときにブレーク割り込みを発生させる第2のモードとの何れかを設定するモード設定手段を備え、
上記制御手段は、上記第1のモードの設定時には、上記割り込みハンドラ内において、ソフトウェア・ブレーク発生対象の命令語が上記条件付き命令か否かを判定するとともに、上記条件付き命令である場合にその条件を満たすか否かを判定し、上記ソフトウェア・ブレーク発生対象の命令語が条件の成立しない条件付き命令である場合には上記割り込みハンドラから復帰し、上記ソフトウェア・ブレーク発生対象の命令語が非条件付き命令または条件の成立する条件付き命令である場合に上記ブレーク割り込みの処理を行い、上記第2のモードの設定時には、上記ブレーク割り込み発生通知を受けた場合に上記ブレーク割り込みの処理を行うことを特徴とする上記(14)に記載の割込制御装置。
【0231】
(19)上記データ処理装置は、1命令で1つの処理を行うスカラプロセッサ、長命令語を構成する複数の短命令を並列に実行する長命令語型プロセッサ、または可変長命令語を構成する1つ以上の基本命令を並列に実行する並列処理プロセッサであることを特徴とする上記(14)に記載の割込制御装置。
【0232】
(20)条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御方法であって、
命令シーケンスの任意の場所に設定されたブレークポイントを検出するとともに、上記条件付き命令の条件を満たすか否かを判定し、上記ブレークポイントの検出結果と上記条件付き命令の判定結果とに基づいてブレーク割り込みの発生を制御するようにしたことを特徴とする割込制御方法。
【0233】
【発明の効果】
上記のように構成した本発明によれば、命令ブレークやソフトウェア・ブレークなどのブレークポイントの検出結果だけでなく、与えられる命令が条件付き命令である場合にはその条件の成否の判定結果にも基づいてブレーク割り込みの発生を制御することができる。したがって、条件付き命令を含むプログラムのデバッグを行う場合に、条件付き命令の条件が成立している場合にはプログラムの実行を中断させ、条件付き命令の条件が成立していない場合にはプログラムの実行を中断させないようにすることができる。
【図面の簡単な説明】
【図1】ハードウェア機構による命令ブレーク方式を実現する第1の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図2】第1の実施形態による判定部の構成例を示すブロック図である。
【図3】ハードウェア機構による命令ブレーク方式を実現する第2の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図4】第2の実施形態による判定部の構成例を示すブロック図である。
【図5】ハードウェア機構による命令ブレーク方式を実現する第3の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図6】第3の実施形態による判定部の構成例を示すブロック図である。
【図7】ハードウェア機構による命令ブレーク方式を実現する第4の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図8】第4の実施形態による判定部の構成例を示すブロック図である。
【図9】ハードウェア機構による命令ブレーク方式を実現する第5の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図10】第5の実施形態による判定部の構成例を示すブロック図である。
【図11】ハードウェア機構による命令ブレーク方式を実現する第6の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図12】第6の実施形態による判定部の第1の構成例を示すブロック図である。
【図13】第6の実施形態による判定部の第2の構成例を示すブロック図である。
【図14】第6の実施形態による判定部の第3の構成例を示すブロック図である。
【図15】第6の実施形態による判定部の第4の構成例を示すブロック図である。
【図16】第6の実施形態による判定部の第5の構成例を示すブロック図である。
【図17】ハードウェア機構による命令ブレーク方式を実現する第7の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図18】第7の実施形態による判定部の第1の構成例を示すブロック図である。
【図19】第7の実施形態による判定部の第2の構成例を示すブロック図である。
【図20】第7の実施形態による判定部の第3の構成例を示すブロック図である。
【図21】第7の実施形態による判定部の第4の構成例を示すブロック図である。
【図22】第7の実施形態による判定部の第5の構成例を示すブロック図である。
【図23】ハードウェア機構による命令ブレーク方式を実現する第8の実施形態による情報処理装置(プロセッサ)の構成例を示すブロック図である。
【図24】第8の実施形態による判定部の第1の構成例を示すブロック図である。
【図25】第8の実施形態による判定部の第2の構成例を示すブロック図である。
【図26】第8の実施形態による判定部の第3の構成例を示すブロック図である。
【図27】第8の実施形態による判定部の第4の構成例を示すブロック図である。
【図28】第8の実施形態による判定部の第5の構成例を示すブロック図である。
【図29】第9〜第12の実施形態による判定部の構成例を示すブロック図である。
【図30】第9の実施形態による命令ブレーク割り込みハンドラの第1の処理例を示すフローチャートである。
【図31】第9の実施形態で用いるブレークポイント・テーブルの第1の構成例を示す図である。
【図32】第9の実施形態による命令ブレーク割り込みハンドラの第2の処理例を示すフローチャートである。
【図33】第9の実施形態による命令ブレーク割り込みハンドラの第3の処理例を示すフローチャートである。
【図34】第9の実施形態で用いるブレークポイント・テーブルの第2の構成例を示す図である。
【図35】第9の実施形態による命令ブレーク割り込みハンドラの第4の処理例を示すフローチャートである。
【図36】第9の実施形態による命令ブレーク割り込みハンドラの第5の処理例を示すフローチャートである。
【図37】第10の実施形態による命令ブレーク割り込みハンドラの処理例を示すフローチャートである。
【図38】第10の実施形態で用いるブレークポイント・テーブルの第1の構成例を示す図である。
【図39】第10の実施形態で用いるブレークポイント・テーブルの第2の構成例を示す図である。
【図40】第11の実施形態による命令ブレーク割り込みハンドラの処理例を示すフローチャートである。
【図41】第12の実施形態による命令ブレーク割り込みハンドラの処理例を示すフローチャートである。
【図42】第13の実施形態で用いるブレークポイント・テーブルの第1の構成例を示す図である。
【図43】第13の実施形態で用いるブレークポイント・テーブルの第2の構成例を示す図である。
【図44】第13の実施形態で用いるブレークポイント・テーブルの第3の構成例を示す図である。
【図45】従来の命令ブレーク方式を実現するプロセッサの構成例を示すブロック図である。
【図46】従来のソフトウェア・ブレーク方式を実現するプロセッサの構成例を示すブロック図である。
【図47】ソフトウェア・ブレーク方式で用いるブレークポイント・テーブルの構成例を示す図である。
【符号の説明】
100-0〜100-n 判定部
102 条件付き命令デコーダ
103 条件判定部
104 AND回路
110-0〜110-n 判定部
111 条件付き命令デコーダ
112 条件判定部
113 OR回路
120-0〜120-n 判定部
121 セレクタ
130-0〜130-n 判定部
131 有効命令エンコーダ
132 AND回路
140-0〜140-n 判定部
141 セレクタ
142 AND回路
150-0〜150-n 判定部
151,152 AND回路
153 OR回路
160-0〜160-n 判定部
161 非条件付き命令デコーダ
162 OR回路
170-0〜170-n 判定部
Claims (5)
- 条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するブレーク検出手段と、
読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定する条件判定手段と、
上記ブレーク検出手段による上記ブレークポイントの検出結果と、上記条件判定手段による判定結果とに基づいてブレーク割り込みの発生を制御する制御手段とを備えたことを特徴とする割込制御装置。 - 条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果の検出信号を出力する命令ブレーク検出手段と、
読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、その結果の判定信号を出力する条件判定手段と、
上記命令ブレーク検出手段より出力される上記検出信号と、上記条件判定手段より出力される上記判定信号との論理積をとり、その結果に応じてブレーク割り込み発生通知を行う論理演算手段とを備えたことを特徴とする割込制御装置。 - 条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
レジスタに設定されたブレークポイントを示す命令アドレスに対応する命令が読み出されたか否かに応じて命令ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行う命令ブレーク検出手段と、
上記命令ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。 - 条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを制御する割込制御装置であって、
上記条件付き命令を含む命令シーケンスの任意の場所で置き換えられたブレークポイント命令が実行されたか否かに応じてソフトウェア・ブレークの発生を検出し、その結果に応じてブレーク割り込み発生通知を行うソフトウェア・ブレーク検出手段と、
上記ソフトウェア・ブレーク検出手段より与えられる上記ブレーク割り込み発生通知に応じて起動される割り込みハンドラ内において、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、その結果に応じてブレーク割り込みの処理を制御する制御手段とを備えたことを特徴とする割込制御装置。 - 条件付き命令の実行機能を有するデータ処理装置のブレーク割り込みを割込制御装置が制御する割込制御方法であって、
上記条件付き命令を含む命令シーケンスの任意の場所に設定されたブレークポイントを検出するとともに、読み出された命令が上記条件付き命令である場合に条件を満たすか否かを判定し、上記ブレークポイントの検出結果と上記条件付き命令の判定結果とに基づいてブレーク割り込みの発生を制御するようにしたことを特徴とする割込制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34107799A JP4187371B2 (ja) | 1999-11-30 | 1999-11-30 | 割込制御装置および方法 |
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 |
---|---|---|---|
JP34107799A JP4187371B2 (ja) | 1999-11-30 | 1999-11-30 | 割込制御装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001154877A JP2001154877A (ja) | 2001-06-08 |
JP4187371B2 true JP4187371B2 (ja) | 2008-11-26 |
Family
ID=18343044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34107799A Expired - Fee Related JP4187371B2 (ja) | 1998-10-29 | 1999-11-30 | 割込制御装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4187371B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006227681A (ja) * | 2005-02-15 | 2006-08-31 | Matsushita Electric Ind Co Ltd | デバッグ装置、デバッグ方法およびプログラム |
JP4718901B2 (ja) * | 2005-05-27 | 2011-07-06 | パナソニック株式会社 | 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム |
JP2007058731A (ja) * | 2005-08-26 | 2007-03-08 | Matsushita Electric Ind Co Ltd | プロセッサ、及び並列命令実行対応デバッグ装置 |
JP5526725B2 (ja) * | 2009-11-20 | 2014-06-18 | 富士通株式会社 | ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 |
JP2018120449A (ja) | 2017-01-26 | 2018-08-02 | ソニーセミコンダクタソリューションズ株式会社 | 演算処理装置および情報処理システム |
-
1999
- 1999-11-30 JP JP34107799A patent/JP4187371B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001154877A (ja) | 2001-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7581090B2 (en) | Interrupt control apparatus and method | |
KR101016713B1 (ko) | 데이터 처리 시스템 내의 예측 명령 | |
KR102629722B1 (ko) | 이동 프리픽스 명령어 | |
US8386754B2 (en) | Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism | |
US7620802B2 (en) | Instruction execution device, debugging method, debugging device, and debugging program | |
JP4703718B2 (ja) | 選択的サブルーチンリターン構造 | |
JP2005317023A (ja) | データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法 | |
KR102025078B1 (ko) | 단일 스텝 실행을 이용한 코드 진단 | |
JPH06168146A (ja) | 仮想計算機方式 | |
CN108780397B (zh) | 程序循环控制 | |
US7376820B2 (en) | Information processing unit, and exception processing method for specific application-purpose operation instruction | |
JP2001525568A (ja) | 命令デコーダ | |
JP4187371B2 (ja) | 割込制御装置および方法 | |
US6772372B2 (en) | System and method for monitoring unaligned memory accesses | |
JPH0895798A (ja) | データ処理装置 | |
JP3766772B2 (ja) | 情報処理装置、例外回復処理方法および記録媒体 | |
JP3866023B2 (ja) | 情報処理装置および特定用途演算命令の例外処理方法 | |
JP2020525957A (ja) | コンテキスト・データ管理 | |
WO1993025967A1 (en) | System for aiding debugging of integrated circuit microprocessor | |
JPS60193047A (ja) | マイクロプログラムのロ−ドチエツク方式 | |
JP2001125804A (ja) | 割り込み処理制御装置および方法 | |
JP2000347858A (ja) | マイクロプロセッサ | |
JPH07281892A (ja) | 情報処理装置 | |
JPH0240722A (ja) | 演算処理装置 | |
JP2006277429A (ja) | バイパス経路を利用した命令の動的変更方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070925 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080304 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080430 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080902 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080909 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130919 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |