JP3866023B2 - 情報処理装置および特定用途演算命令の例外処理方法 - Google Patents
情報処理装置および特定用途演算命令の例外処理方法 Download PDFInfo
- Publication number
- JP3866023B2 JP3866023B2 JP2000234490A JP2000234490A JP3866023B2 JP 3866023 B2 JP3866023 B2 JP 3866023B2 JP 2000234490 A JP2000234490 A JP 2000234490A JP 2000234490 A JP2000234490 A JP 2000234490A JP 3866023 B2 JP3866023 B2 JP 3866023B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- exception
- special purpose
- interrupt
- detected
- 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
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、特定用途演算命令を搭載した情報処理装置および特定用途演算命令を搭載した情報処理において特定用途演算命令を実行中に演算例外が発生した場合の例外処理方法に関する。ここで、特定用途演算命令とは、特定用途に特化した演算機能を持つ命令のことである。
【0002】
【従来の技術】
特定分野のアプリケーションでは、その用途に特化した特殊な演算処理が存在することがある。その場合、演算処理を効率よくおこなうため、特定用途に特化した演算機能を持つ命令(以下、特定用途演算命令とする)を搭載した情報処理装置が使用される。このような情報処理装置において、特定用途演算命令を実行した際に、プログラムの欠陥であるバグに起因するオーバーフローやアンダーフローなどの演算例外が発生する場合がある。このようなバグをなくすため、プログラムの開発段階においてデバッグ作業がおこなわれる。
【0003】
デバッグ作業はデバッグ支援システムを用いて実施される。一般に、デバッグ支援システムには、実行中のプログラムを中断させるためのブレークポイント機能やシングルステップ機能が設けられている。デバッグの作業者は、これらの機能を利用してデバッグ対象プログラムをその実行中にいったん停止させ、その状態でレジスタやメモリの値を調べたり、あるいは変更することができる。そして、デバッグの作業者は、その停止した時点からプログラムの実行を再開させることができる。
【0004】
ここで、ブレークポイント機能の実現方法として、命令ブレーク法とソフトウエア・ブレーク法がある。命令ブレーク法では、プログラムの実行開始前に、ハードウエアに設けられたブレークポイント・レジスタに、実行を停止させたい命令のアドレスが保持される。プログラムの実行中に、ブレークポイント・レジスタにより指定された命令が検出されると、割り込みが発生し、割り込み処理プログラムを経由してデバッグ支援プログラムに制御が渡り、デバッグの作業者にその旨が通知される。デバッグの作業者がプログラムの実行再開を指示すると、制御がデバッグ支援プログラムから元に戻される。
【0005】
図17は、命令ブレーク法による割り込み処理プログラムのフローチャートである。プログラムの実行が中断され、割り込み処理プログラムが開始されると、コンテキストを退避し(ステップS1701)、命令ブレーク処理をおこなった(ステップS1702)後、コンテキストを復元し(ステップS1703)、割り込みから復帰する(ステップS1704)。
【0006】
ソフトウエア・ブレーク法では、プログラムの実行開始前に、実行を停止させたい命令が、割り込みを発生させる命令で置き換えられる。プログラムの実行中に、その割り込みを発生させる命令が検出されると、割り込みが発生し、割り込み処理プログラムを経由してデバッグ支援プログラムに制御が渡り、デバッグの作業者にその旨が通知される。プログラムの実行再開時には、置き換えられた元の命令の実行がシミュレートされた後、制御が元に戻される。なお、割り込みを発生させる命令として、ブレークポイント命令と呼ばれる専用の命令を用意する場合もある。
【0007】
図18は、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。プログラムの実行が中断され、割り込み処理プログラムが開始されると、コンテキストを退避し(ステップS1801)、ソフトウエア・ブレーク処理をおこなった(ステップS1802)後、コンテキストを復元し(ステップS1803)、割り込み復帰命令により割り込みから復帰する(ステップS1804)。
【0008】
シングルステップ機能では、デバッグ対象プログラムが停止している状態で、デバッグの作業者がシングルステップ機能の実行を指示すると、つぎに実行すべき命令が実行された後、プログラムが停止する。シングルステップ機能の実現方法としてステップ・ブレーク法がある。ステップ・ブレーク法では、命令を実行した後に割り込みを発生させるか否かを保持するレジスタとしてシングルステップ・モード・レジスタがハードウエアに設けられる。そして、シングルステップ・モードである場合には、注目している命令が実行された後に、割り込みが発生する。割り込みが発生すると、割り込み処理プログラムを経由してデバッグ支援プログラムに制御が渡り、デバッグの作業者にその旨が通知される。プログラムの実行の再開が指示されると、制御が元に戻される。
【0009】
図19は、ステップ・ブレーク法による割り込み処理プログラムのフローチャートである。プログラムの実行が中断され、割り込み処理プログラムが開始されると、コンテキストを退避し(ステップS1901)、ステップ・ブレーク処理をおこなった(ステップS1902)後、コンテキストを復元し(ステップS1903)、割り込み復帰命令により割り込みから復帰する(ステップS1904)。
【0010】
【発明が解決しようとする課題】
しかしながら、従来、たとえばマルチメディア処理において頻繁に発生するデータのクリップ(ある値の範囲、たとえば0〜255の範囲や、−32768〜32767の範囲に収める)に効果的な特定用途演算命令の一つである飽和演算命令の場合、オーバーフローやアンダーフローが発生しても、演算結果が上限値や下限値でクリップされてしまうため、演算例外処理がおこなわれないという問題点があった。そのため、デバッグの作業者が、オーバーフローやアンダーフローの発生の有無を逐一確認しなければならず、デバッグ作業に多大な労力と時間がかかっていた。
【0011】
本発明は、上記問題点に鑑みてなされたものであって、特定用途演算命令を有する情報処理装置であって、特定用途演算命令の実行中に発生した演算例外の例外処理をおこなうことができる情報処理装置およびその情報処理装置の特定用途演算命令の例外処理方法を提供することを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる情報処理装置および特定用途演算命令の例外処理方法は、プログラムの実行が中断され、割り込み処理プログラムが開始されると、コンテキストを退避した後、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されているか否かを確認する。演算例外の検出をおこなう状態に設定されている場合には、さらに特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する。演算例外を検出済みであれば特定用途演算例外処理をおこなった後、ステップ・ブレーク処理、ソフトウエア・ブレーク処理または命令ブレーク処理をおこなう。
【0013】
そして、コンテキストを復元し、割り込みから復帰して終了する。ステップ・ブレークの場合には、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されている場合、ブレーク対象命令が特定用途演算命令である場合にのみ、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認するようにしてもよい。
【0014】
本発明によれば、特定用途演算命令を有する情報処理装置において、ステップ・ブレーク、ソフトウエア・ブレークまたは命令ブレークの発生時に、特定用途演算命令によるオーバーフローなどの演算例外が発生したことを検出し、例外処理をおこなうことができる。
【0015】
【発明の実施の形態】
以下に、本発明にかかる情報処理装置および特定用途演算命令の例外処理方法の実施の形態について図面を参照しつつ詳細に説明する。
【0016】
(実施の形態1)
図1は、本発明の実施の形態1にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。この情報処理装置は、メモリ210、メモリ210から命令語を読み出す命令読み出し部220、命令読み出し部220から供給された命令を実行する命令実行部230、および割り込み制御部250を備えている。また、この情報処理装置は、命令読み出し部220、命令実行部230および割り込み制御部250からの読み書きの制御をおこなうレジスタ制御部260を備えている。
【0017】
メモリ210は、外部メモリ、チップ内部に存在するメモリ回路、メモリアクセスのためのバスおよびその制御回路、キャッシュ回路などを含む。前記命令読み出し部220は、命令読み出し制御部221、プログラム・カウンタ222、命令語レジスタ223および命令ブレーク検出部224を備えている。
【0018】
前記命令実行部230は、命令デコード部231、ロード命令実行部232、ストア命令実行部233、演算命令実行部234、その他の命令の実行部235、浮動小数点ロード命令実行部236、浮動小数点ストア命令実行部237、浮動小数点演算命令実行部238、特定用途演算命令実行部239、特定用途演算ステータス読み書き命令実行部240、および動作モード読み書き命令実行部241を備えている。
【0019】
前記割り込み制御部250は、通常の割り込み制御部251を備えている。前記レジスタ制御部260は、COND261、割り込みから復帰する命令アドレスを保持するレジスタ(以下、「復帰命令アドレス・レジスタ」とする)262、プロセッサの動作状態(state)を保持するレジスタ(以下、「動作レジスタ」とする)263、割り込み発生前のプロセッサの動作状態(state)を保持するレジスタ(以下、「割り込み発生前動作レジスタ」とする)264、汎用レジスタ265、浮動小数点レジスタ266、特定用途演算ステータス・レジスタ267、および動作モード・レジスタ268を備えている。
【0020】
つぎに、命令読み出し部220の各部について説明する。前記プログラム・カウンタ222は、読み出すべき命令語のアドレスを示す。前記命令読み出し制御部221は、プログラム・カウンタ222が示す命令語をメモリ210から読み出し、それを命令語レジスタ223に書き込む。また、命令実行部230から分岐先アドレスが供給された場合、または、割り込み制御部250から、発生した割り込みもしくは例外に対応する分岐先アドレスが供給された場合、命令読み出し制御部221はその分岐先アドレスの値をプログラム・カウンタ222に書き込む。それ以外の場合には、つぎの命令語を示すために、命令読み出し制御部221はプログラム・カウンタ222をインクリメントする。
【0021】
また、命令読み出し制御部221は、命令語を読み出す際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。前記命令語レジスタ223は、命令読み出し制御部221により読み出された命令語を保持し、それを命令実行部230に供給する。
【0022】
前記命令ブレーク検出部224は、命令語の読み出しアドレスが命令ブレークとして成立するか否かを検出する。命令ブレーク検出時には、割り込み制御部250に命令ブレークを検出したことを通知する。図2は、命令ブレーク検出部224の一例を示すブロック図である。命令ブレーク検出部224は、複数組の命令ブレークポイント・レジスタ225a〜225dおよび判定器226a〜226dと、オア回路227を備えている。
【0023】
また、各命令ブレークポイント・レジスタ225a〜225dには、ADDRフィールド228a、Eフィールド228bおよびVフィールド228cが設けられている。ADDRフィールド228aは、ブレークポイント対象アドレスを保持する。Eフィールド228bは、命令ブレーク動作が有効か否かを示し、たとえば命令ブレーク動作が無効状態のときには「0(ゼロ)」を、また有効状態のときには「1」を保持する。Vフィールド228cは、命令ブレークを検出したか否かを示し、たとえば未検出のときには「0(ゼロ)」を、また検出済みのときには「1」を保持する。
【0024】
判定器226a〜226dは、命令ブレーク条件が成立したか否かの判定をおこなう。各判定器226a〜226dは、読み出す命令の命令アドレスと対応する命令ブレークポイント・レジスタ225a〜225dのADDRフィールド228aの値が一致した場合、対応するVフィールド228cの値を「1」に設定するとともに、オア回路227に一致信号として「1」を出力する。それによって、オア回路227から割り込み制御部250に、命令ブレークが成立したことを通知するための割り込み通知が発行される。
【0025】
命令実行部230の各部について説明する。前記命令デコード部231は、命令読み出し部220から供給された命令を解析し、対応する命令実行部に命令を供給する。すなわち、命令デコード部231は、ロード命令をロード命令実行部232に、またストア命令をストア命令実行部233に、また演算命令および比較命令を演算命令実行部234にそれぞれ供給する。
【0026】
また、命令デコード部231は、分岐命令、条件分岐命令、割り込み復帰命令、ブレークポイント命令、動作レジスタ263に対する読み出しまたは書き込みの命令、割り込み発生前動作レジスタ264に対する読み出しまたは書き込みの命令、ならびに命令ブレーク検出部224の命令ブレークポイント・レジスタ225a〜225dに対する読み出しまたは書き込みの命令を、その他の命令の実行部235に供給する。
【0027】
また、命令デコード部231は、浮動小数点ロード命令を浮動小数点ロード命令実行部236に、また浮動小数点ストア命令を浮動小数点ストア命令実行部237に、また浮動小数点演算命令および浮動小数点比較命令を浮動小数点演算命令実行部238に、また特定用途演算命令を特定用途演算命令実行部239にそれぞれ供給する。また、命令デコード部231は、特定用途演算ステータス・レジスタ267に対する読み出しまたは書き込みの命令を特定用途演算ステータス読み書き命令実行部240に、また動作モード・レジスタ268に対する読み出しまたは書き込みの命令を動作モード読み書き命令実行部241にそれぞれ供給する。
【0028】
前記特定用途演算ステータス読み書き命令実行部240は、命令デコード部231から特定用途演算ステータス・レジスタ267に対する読み出し命令を受け取ると、特定用途演算ステータス・レジスタ267を読み出し、その結果を汎用レジスタ265に書き込む。また、特定用途演算ステータス読み書き命令実行部240は、命令デコード部231から特定用途演算ステータス・レジスタ267に対する書き込み命令を受け取ると、汎用レジスタ265を読み出し、その結果を特定用途演算ステータス・レジスタ267に書き込む。
【0029】
また、特定用途演算ステータス読み書き命令実行部240は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、特定用途演算ステータス読み書き命令実行部240は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0030】
前記動作モード読み書き命令実行部241は、命令デコード部231から動作モード・レジスタ268に対する読み出し命令を受け取ると、動作モード・レジスタ268を読み出し、その結果を汎用レジスタ265へ書き込む。また、動作モード読み書き命令実行部241は、命令デコード部231から動作モード・レジスタ268に対する書き込み命令を受け取ると、汎用レジスタ265を読み出し、その結果を動作モード・レジスタ268に書き込む。
【0031】
また、動作モード読み書き命令実行部241は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、動作モード読み書き命令実行部241は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0032】
前記ロード命令実行部232は、命令デコード部231からロード命令を受け取ると、汎用レジスタ265から読み出した値に基づいて実効アドレスを求め、メモリ210の、その実効アドレスに対応する領域を読み出し、その結果を汎用レジスタ265に書き込む。また、ロード命令実行部232は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、ロード命令実行部232は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0033】
前記ストア命令実行部233は、命令デコード部231からストア命令を受け取ると、汎用レジスタ265から読み出した値に基づいて実効アドレスを求めるとともに、汎用レジスタ265を読み出し、その結果をメモリ210の、その実効アドレスに対応する領域に書き込む。また、ストア命令実行部233は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、ストア命令実行部233は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0034】
前記演算命令実行部234は、命令デコード部231から演算命令を受け取ると、汎用レジスタ265から読み出した値に基づいて演算をおこない、その結果を汎用レジスタ265に書き込む。また、演算命令実行部234は、命令デコード部231から比較命令を受け取ると、汎用レジスタ265から読み出した値に基づいて比較をおこない、その結果として真または偽を示す値をCOND261に書き込む。また、演算命令実行部234は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、演算命令実行部234は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0035】
前記その他の命令の実行部235は、命令デコード部231から分岐命令を受け取ると、分岐先アドレスを命令読み出し部220に供給する。また、その他の命令の実行部235は、命令デコード部231から条件分岐命令を受け取ると、COND261の値が真を示す値であれば、分岐先アドレスを命令読み出し部220に供給する。
【0036】
また、その他の命令の実行部235は、命令デコード部231から割り込み復帰命令を受け取ると、割り込み発生前動作レジスタ264の値を動作レジスタ263へ書き込むとともに、復帰命令アドレス・レジスタ262を読み出し、その結果を分岐先アドレスとして命令読み出し部220に供給する。また、その他の命令の実行部235は、命令デコード部231からブレークポイント命令を受け取ると、割り込み制御部250にソフトウエア・ブレークが成立したことを通知する。
【0037】
また、その他の命令の実行部235は、命令デコード部231から動作レジスタ263、割り込み発生前動作レジスタ264または命令ブレークポイント・レジスタ225a〜225dに対する読み出し命令を受け取ると、それぞれ動作レジスタ263、割り込み発生前動作レジスタ264または命令ブレーク検出部224の命令ブレークポイント・レジスタ225a〜225dを読み出し、その結果を汎用レジスタ265に書き込む。
【0038】
また、その他の命令の実行部235は、命令デコード部231から動作レジスタ263、割り込み発生前動作レジスタ264または命令ブレークポイント・レジスタ225a〜225dに対する書き込み命令を受け取ると、汎用レジスタ265を読み出し、その結果をそれぞれ動作レジスタ263、割り込み発生前動作レジスタ264または命令ブレーク検出部224の命令ブレークポイント・レジスタ225a〜225dに書き込む。
【0039】
また、その他の命令の実行部235は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、その他の命令の実行部235は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0040】
前記浮動小数点ロード命令実行部236は、命令デコード部231から浮動小数点ロード命令を受け取ると、汎用レジスタ265から読み出した値に基づいて実効アドレスを求め、メモリ210の、その実効アドレスに対応する領域を読み出し、その結果を浮動小数点レジスタ266に書き込む。また、浮動小数点ロード命令実行部236は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、浮動小数点ロード命令実行部236は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0041】
前記浮動小数点ストア命令実行部237は、命令デコード部231から浮動小数点ストア命令を受け取ると、汎用レジスタ265から読み出した値に基づいて実効アドレスを求めるとともに、浮動小数点レジスタ266を読み出し、その結果をメモリ210の、その実効アドレスに対応する領域に書き込む。また、浮動小数点ストア命令実行部237は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、浮動小数点ストア命令実行部237は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0042】
前記浮動小数点演算命令実行部238は、命令デコード部231から浮動小数点演算命令を受け取ると、浮動小数点レジスタ266から読み出した値に基づいて演算をおこない、その結果を浮動小数点レジスタ266に書き込む。また、浮動小数点演算命令実行部238は、命令デコード部231から浮動小数点比較命令を受け取ると、浮動小数点レジスタ266から読み出した値に基づいて比較をおこない、その結果として真または偽を示す値をCOND261に書き込む。また、浮動小数点演算命令実行部238は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、浮動小数点演算命令実行部238は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0043】
前記特定用途演算命令実行部239は、命令デコード部231から特定用途演算命令を受け取ると、浮動小数点レジスタ266から読み出した値に基づいて演算をおこない、その結果を浮動小数点レジスタ266に書き込む。また、特定用途演算命令実行部239は、演算中にオーバーフローなどの演算例外が発生すると、特定用途演算ステータス・レジスタ267に演算例外の発生を示す値を書き込む。また、特定用途演算命令実行部239は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0044】
つぎに、レジスタ制御部260の各部について説明する。前記特定用途演算ステータス・レジスタ267は、特定用途演算命令の実行中にオーバーフローなどの演算例外が検出されたか否かを示す値を保持する。前記動作モード・レジスタ268は、特定用途演算命令の実行中に発生する演算例外の検出をおこなうか否かを示す値を保持する。たとえば、このレジスタ268の値は、特定用途演算命令の実行中の演算例外を検出しない場合には「0(ゼロ)」に設定され、一方、特定用途演算命令の実行中の演算例外を検出する場合には「1」に設定される。前記復帰命令アドレス・レジスタ262および前記割り込み発生前動作レジスタ264は、割り込み発生時に設定される。
【0045】
図3は、動作レジスタ263の一例を示す構成図である。動作レジスタ263には、SEフィールド269aおよびSフィールド269bが設けられている。SEフィールド269aは、シングルステップ・モードであるか否かを示し、たとえば非シングルステップ・モードのときには「0(ゼロ)」を、またシングルステップ・モードのときには「1」を保持する。したがって、このSEフィールド269aの値が「1」のときには、命令を実行した後に、ステップ・ブレーク割り込みが発生する。Sフィールド269bは、スーパーバイザ状態であるか否かを示し、たとえばユーザ状態のときには「0(ゼロ)」を、またスーパーバイザ状態のときには「1」を保持する。
【0046】
図4は、割り込み発生前動作レジスタ264の一例を示す構成図である。割り込み発生前動作レジスタ264には、SEフィールド269cおよびSフィールド269dが設けられている。SEフィールド269cは、割り込み発生前の状態がシングルステップ・モードであったか否かを示し、たとえば割り込み発生前が非シングルステップ・モードのときには「0(ゼロ)」を、また割り込み発生前がシングルステップ・モードのときには「1」を保持する。Sフィールド269dは、割り込み発生前がスーパーバイザ状態であったか否かを示し、たとえば割り込み発生前がユーザ状態のときには「0(ゼロ)」を、また割り込み発生前がスーパーバイザ状態のときには「1」を保持する。
【0047】
つぎに、前記割り込み制御部250の通常の割り込み制御部251について説明する。通常の割り込み制御部251は、命令読み出し部220または命令実行部230から割り込み通知を受け取ると、復帰命令アドレス・レジスタ262に、割り込みから復帰する命令アドレスを、また割り込み発生前動作レジスタ264に割り込み発生前のプロセッサの動作状態(state)を、動作レジスタ263に、発生した割り込みに対応するプロセッサの動作状態(state)をそれぞれ書き込む。また、通常の割り込み制御部251は、命令読み出し部220に、発生した割り込みに対応する分岐先アドレスを供給する。
【0048】
つぎに、本発明の実施の形態1にかかる特定用途演算命令の例外処理方法について説明する。図5は、本発明の実施の形態1にかかる特定用途演算命令の例外処理方法のうち、ステップ・ブレーク法による割り込み処理プログラムのフローチャートである。図5のフローチャートにおいて、プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS501)。そして、動作モード・レジスタ268に対する読み出し命令により動作モード・レジスタ268の値を読み出し、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されているか否かを確認する(ステップS502)。
【0049】
その結果、特定用途演算命令の実行中に発生する演算例外の検出をおこなわない状態に設定されている場合(ステップS503:特定用途演算例外未検出動作状態)は、ステップ・ブレーク処理をおこなった(ステップS504)後、コンテキストを復元し(ステップS505)、割り込み復帰命令により割り込みから復帰し(ステップS506)、割り込み処理を終了する。したがって、演算例外の検出をおこなう状態に設定されていない場合には、迅速にブレーク処理をおこなって元に戻ることができる。
【0050】
一方、動作モード・レジスタ268を確認した結果、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されている場合(ステップS503:特定用途演算例外検出動作状態)は、メモリ210からブレーク対象命令を読み出し、その命令のコードを解析してその命令が特定用途演算命令であるか否かを確認する(ステップS507)。その結果、ブレーク対象命令が特定用途演算命令でない場合(ステップS508:非特定用途演算命令)は、ステップS504へ移行し、ステップS504〜S506の処理をおこない、割り込み処理を終了する。したがって、特定用途演算命令でない場合には、迅速にブレーク処理をおこなって元に戻ることができる。
【0051】
これに対し、ブレーク対象命令が特定用途演算命令である場合(ステップS508:特定用途演算命令)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS509)。その結果、演算例外を未検出であれば(ステップS510:演算例外未検出)、ステップS504へ移行し、ステップS504〜S506の処理をおこない、割り込み処理を終了する。一方、演算例外を検出済みであれば(ステップS510:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS511)後、ステップS504へ移行し、ステップS504〜S506の処理をおこない、割り込み処理を終了する。
【0052】
図6は、本発明の実施の形態1にかかる特定用途演算命令の例外処理方法のうち、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。図6のフローチャートにおいて、プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS601)。そして、動作モード・レジスタ268に対する読み出し命令により動作モード・レジスタ268の値を読み出し、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されているか否かを確認する(ステップS602)。
【0053】
その結果、特定用途演算命令の実行中に発生する演算例外の検出をおこなわない状態に設定されている場合(ステップS603:特定用途演算例外未検出動作状態)は、ソフトウエア・ブレーク処理をおこなった(ステップS604)後、コンテキストを復元し(ステップS605)、割り込み復帰命令により割り込みから復帰し(ステップS606)、割り込み処理を終了する。
【0054】
一方、動作モード・レジスタ268を確認した結果、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されている場合(ステップS603:特定用途演算例外検出動作状態)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS607)。その結果、演算例外を未検出であれば(ステップS608:演算例外未検出)、ステップS604へ移行し、ステップS604〜S606の処理をおこない、割り込み処理を終了する。これに対し、演算例外を検出済みであれば(ステップS608:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS609)後、ステップS604へ移行し、ステップS604〜S606の処理をおこない、割り込み処理を終了する。
【0055】
図7は、本発明の実施の形態1にかかる特定用途演算命令の例外処理方法のうち、命令ブレーク法による割り込み処理プログラムのフローチャートである。図7のフローチャートにおいて、プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS701)。そして、動作モード・レジスタ268に対する読み出し命令により動作モード・レジスタ268の値を読み出し、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されているか否かを確認する(ステップS702)。
【0056】
その結果、特定用途演算命令の実行中に発生する演算例外の検出をおこなわない状態に設定されている場合(ステップS703:特定用途演算例外未検出動作状態)は、命令ブレーク処理をおこなった(ステップS704)後、コンテキストを復元し(ステップS705)、割り込み復帰命令により割り込みから復帰し(ステップS706)、割り込み処理を終了する。
【0057】
一方、動作モード・レジスタ268を確認した結果、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されている場合(ステップS703:特定用途演算例外検出動作状態)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS707)。その結果、演算例外を未検出であれば(ステップS708演算例外未検出)、ステップS704へ移行し、ステップS704〜S706の処理をおこない、割り込み処理を終了する。これに対し、演算例外を検出済みであれば(ステップS708:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS709)後、ステップS704へ移行し、ステップS704〜S706の処理をおこない、割り込み処理を終了する。
【0058】
上述した実施の形態1によれば、特定用途演算命令を有する情報処理装置において、ステップ・ブレーク、ソフトウエア・ブレーク、命令ブレークのいずれが発生した場合でも、特定用途演算命令によるオーバーフローなどの演算例外が発生したことを検出し、例外処理をおこなうことができる。したがって、デバッグ作業の労力が軽減されるとともに、デバッグ作業に要する時間が短縮されるので、プログラムの開発期間が短縮されるという効果が得られる。
【0059】
なお、上述した実施の形態1においては、動作モード・レジスタ268を設け、このレジスタ268に、特定用途演算命令の実行中に発生する演算例外を検出するか否かの情報を保持させているが、これに限らず、メモリ210にフラグを設け、そのフラグに同様の情報を保持させるようにしてもよい。
【0060】
(実施の形態2)
図8は、本発明の実施の形態2にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。この情報処理装置が実施の形態1と異なるのはつぎの4点である。すなわち、第1に、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定するための命令として特定用途演算例外検出ブレークポイント命令を設けたことである。第2に、実施の形態1の命令実行部230の代わりに設けられた命令実行部330が特定用途演算例外検出ブレークポイント命令の実行部331を有していることである。第3に、その命令実行部330には動作モード読み書き命令実行部241が設けられていないことである。第4に、実施の形態1のレジスタ制御部260の代わりに設けられたレジスタ制御部360に、動作モード・レジスタ268が設けられていないことである。
【0061】
その他の構成については、実施の形態1と同様であるため、実施の形態1と同様の構成については、実施の形態1と同じ符号を付して説明を省略する。なお、実施の形態2では、上述した実施の形態1の説明中の動作モード読み書き命令実行部241および動作モード・レジスタ268に関する説明は適用されないものとする。
【0062】
前記命令実行部330は、命令デコード部231、ロード命令実行部232、ストア命令実行部233、演算命令実行部234、その他の命令の実行部235、浮動小数点ロード命令実行部236、浮動小数点ストア命令実行部237、浮動小数点演算命令実行部238、特定用途演算命令実行部239、特定用途演算ステータス読み書き命令実行部240、および特定用途演算例外検出ブレークポイント命令の実行部331を備えている。
【0063】
前記命令デコード部231は、実施の形態1で説明した機能のほかに、命令読み出し部220から供給された命令を解析した結果、その命令が特定用途演算例外検出ブレークポイント命令である場合には、その命令を特定用途演算例外検出ブレークポイント命令の実行部331に供給する機能を有している。
【0064】
前記特定用途演算例外検出ブレークポイント命令の実行部331は、命令デコード部231から特定用途演算例外検出ブレークポイント命令を受け取ると、割り込み制御部250にソフトウエア・ブレークが成立したことを通知する。また、特定用途演算例外検出ブレークポイント命令の実行部331は、命令を実行する際に割り込みを検出すると、割り込み制御部250に割り込みを検出したことを通知する。また、特定用途演算例外検出ブレークポイント命令の実行部331は、命令を実行した後、シングルステップ・モードであった場合には、割り込み制御部250にステップ・ブレークを検出したことを通知する。
【0065】
前記レジスタ制御部360は、COND261、復帰命令アドレス・レジスタ262、動作レジスタ263、割り込み発生前動作レジスタ264、汎用レジスタ265、浮動小数点レジスタ266、および特定用途演算ステータス・レジスタ267を備えている。
【0066】
つぎに、本発明の実施の形態2にかかる特定用途演算命令の例外処理方法について説明する。図9は、本発明の実施の形態2にかかる特定用途演算命令の例外処理方法のうち、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。図9のフローチャートにおいて、プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS901)。そして、メモリ210からソフトウエア・ブレークを発生させた命令を読み出し、その命令のコードを解析してその命令が特定用途演算例外検出ブレークポイント命令であるか否かを確認する(ステップS902)。
【0067】
その結果、特定用途演算例外検出ブレークポイント命令でない場合、すなわち単なるブレークポイント命令である場合(ステップS903:ブレークポイント命令)は、ソフトウエア・ブレーク処理をおこなった(ステップS904)後、コンテキストを復元し(ステップS905)、割り込み復帰命令により割り込みから復帰し(ステップS906)、割り込み処理を終了する。
【0068】
一方、ソフトウエア・ブレークを発生させた命令が特定用途演算例外検出ブレークポイント命令である場合(ステップS903:特定用途演算例外検出ブレークポイント命令)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS907)。その結果、演算例外を未検出であれば(ステップS908:演算例外未検出)、ステップS904へ移行し、ステップS904〜S906の処理をおこない、割り込み処理を終了する。これに対し、演算例外を検出済みであれば(ステップS908:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS909)後、ステップS904へ移行し、ステップS904〜S906の処理をおこない、割り込み処理を終了する。
【0069】
実施の形態2におけるステップ・ブレーク法および命令ブレーク法による割り込み処理プログラムは、それぞれ図19および図17に示す従来のフローチャートと同様であるため、図示および説明を省略する。
【0070】
上述した実施の形態2によれば、特定用途演算命令を有する情報処理装置において、ソフトウエア・ブレークが発生した場合、特定用途演算命令によるオーバーフローなどの演算例外が発生したことを検出し、例外処理をおこなうことができる。したがって、デバッグ作業の労力が軽減されるとともに、デバッグ作業に要する時間が短縮されるので、プログラムの開発期間が短縮されるという効果が得られる。
【0071】
なお、上述した実施の形態2においては、特定用途演算例外検出ブレークポイント命令を設け、ソフトウエア・ブレークを発生させた命令が特定用途演算例外検出ブレークポイント命令であるかまたは単なるブレークポイント命令であるかによって、特定用途演算命令の実行中に発生する演算例外の検出をおこなうか否かを設定するようにしているが、これには限らない。たとえば、ブレークポイント命令の命令語に含まれるフィールドが示す値に基づいて、特定用途演算命令の実行中に発生する演算例外の検出をおこなうか否かを設定するようにしてもよい。
【0072】
(実施の形態3)
図10は、本発明の実施の形態3にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。この情報処理装置が実施の形態1と異なるのはつぎの3点である。すなわち、第1に、実施の形態1の命令読み出し部220の代わりに設けられた命令読み出し部420が、命令ブレークポイント・レジスタの構成が異なる命令ブレーク検出部424を有していることである。第2に、実施の形態1の命令実行部230の代わりに設けられた命令実行部430には動作モード読み書き命令実行部241が設けられていないことである。第3に、実施の形態1のレジスタ制御部260の代わりに実施の形態2と同じ構成のレジスタ制御部360が設けられていることである。
【0073】
その他の構成については、実施の形態1と同様であるため、実施の形態1と同様の構成については、実施の形態1と同じ符号を付して説明を省略する。また、レジスタ制御部360についても、実施の形態2の説明と重複するため省略する、実施の形態3では、上述した実施の形態1の説明中の動作モード読み書き命令実行部241および動作モード・レジスタ268に関する説明は適用されないものとする。
【0074】
前記命令読み出し部420は、命令読み出し制御部221、プログラム・カウンタ222、命令語レジスタ223および命令ブレーク検出部424を備えている。図11は、命令ブレーク検出部424の一例を示すブロック図である。この命令ブレーク検出部424が実施の形態1と異なるのは、各命令ブレークポイント・レジスタ425a〜425dには、ADDRフィールド228a、Eフィールド228bおよびVフィールド228cのほかにMフィールド428が設けられていることである。命令ブレーク検出部424のその他の構成は実施の形態1の命令ブレーク検出部224と同じである。Mフィールド428は、対応する命令ブレークが、特定用途演算命令の実行中に発生する演算例外の検出をおこなう対象であるか否かを示し、対象でない場合には「0(ゼロ)」を、また対象である場合には「1」を保持する。
【0075】
前記命令実行部430は、命令デコード部231、ロード命令実行部232、ストア命令実行部233、演算命令実行部234、その他の命令の実行部235、浮動小数点ロード命令実行部236、浮動小数点ストア命令実行部237、浮動小数点演算命令実行部238、特定用途演算命令実行部239、および特定用途演算ステータス読み書き命令実行部240を備えている。
【0076】
つぎに、本発明の実施の形態3にかかる特定用途演算命令の例外処理方法について説明する。図12は、本発明の実施の形態3にかかる特定用途演算命令の例外処理方法のうち、命令ブレーク法による割り込み処理プログラムのフローチャートである。図12のフローチャートにおいて、プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS1201)。そして、命令ブレークポイント・レジスタ425a〜425dに対する読み出し命令により対応する命令ブレークポイント・レジスタ425a〜425dのMフィールド428の値を読み出し、命令ブレークが、特定用途演算命令の実行中に発生する演算例外の検出をおこなう対象であるか否かを確認する(ステップS1202)。その結果、命令ブレークが演算例外の検出対象でない場合(ステップS1203:特定用途演算例外検出動作対象外)は、命令ブレーク処理をおこなった(ステップS1204)後、コンテキストを復元し(ステップS1205)、割り込み復帰命令により割り込みから復帰し(ステップS1206)、割り込み処理を終了する。
【0077】
一方、対応する命令ブレークが演算例外の検出対象である場合(ステップS1203:特定用途演算例外検出動作対象)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS1207)。その結果、演算例外を未検出であれば(ステップS1208:演算例外未検出)、ステップS1204へ移行し、ステップS1204〜S1206の処理をおこない、割り込み処理を終了する。これに対し、演算例外を検出済みであれば(ステップS1208:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS1209)後、ステップS1204へ移行し、ステップS1204〜S1206の処理をおこない、割り込み処理を終了する。
【0078】
実施の形態3におけるステップ・ブレーク法およびソフトウエア・ブレーク法による割り込み処理プログラムは、それぞれ図19および図18に示す従来のフローチャートと同様であるため、図示および説明を省略する。
【0079】
上述した実施の形態3によれば、特定用途演算命令を有する情報処理装置において、命令ブレークが発生した場合、特定用途演算命令によるオーバーフローなどの演算例外が発生したことを検出し、例外処理をおこなうことができる。したがって、デバッグ作業の労力が軽減されるとともに、デバッグ作業に要する時間が短縮されるので、その結果、プログラムの開発期間が短縮されるという効果が得られる。
【0080】
(実施の形態4)
図13は、本発明の実施の形態4にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。この情報処理装置が実施の形態1と異なるのはつぎの3点である。すなわち、第1に、メモリ210に特定用途演算例外ブレークポイント・テーブル(図13では省略)が記憶されていることである。
【0081】
第2に、実施の形態1の命令実行部230の代わりに設けられた命令実行部530には動作モード読み書き命令実行部241が設けられていないことである。第3に、実施の形態1のレジスタ制御部260の代わりに設けられたレジスタ制御部460に、動作モード・レジスタ268が設けられていないことである。
【0082】
その他の構成については、実施の形態1と同様であるため、実施の形態1と同様の構成については、実施の形態1と同じ符号を付して説明を省略する。なお、実施の形態4では、上述した実施の形態1の説明中の動作モード読み書き命令実行部241および動作モード・レジスタ268に関する説明は適用されないものとする。
【0083】
図14に、特定用途演算例外ブレークポイント・テーブルの一例を示す。特定用途演算例外ブレークポイント・テーブル211は、特定用途演算命令の実行中に発生する演算例外の検出をおこなうブレークポイントを示すテーブルである。特定用途演算例外ブレークポイント・テーブル211には、命令ブレークおよびソフトウエア・ブレークによるブレークポイントのうち、特定用途演算命令の実行中に発生した演算例外を検出する対象となるブレークポイントが登録される。特定用途演算例外ブレークポイント・テーブル211の命令アドレス欄212は、ブレークポイントの命令アドレスを示す欄である。
【0084】
前記命令実行部530は、命令デコード部231、ロード命令実行部232、ストア命令実行部233、演算命令実行部234、その他の命令の実行部235、浮動小数点ロード命令実行部236、浮動小数点ストア命令実行部237、浮動小数点演算命令実行部238、特定用途演算命令実行部239、および特定用途演算ステータス読み書き命令実行部240を備えている。
【0085】
前記レジスタ制御部460は、COND261、復帰命令アドレス・レジスタ262、動作レジスタ263、割り込み発生前動作レジスタ264、汎用レジスタ265、浮動小数点レジスタ266、および特定演算ステータス・レジスタ267を備えている。
【0086】
つぎに、本発明の実施の形態4にかかる特定用途演算命令の例外処理方法について説明する。図15は、本発明の実施の形態4にかかる特定用途演算命令の例外処理方法のうち、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。
【0087】
図15のフローチャートにおいて、プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS1501)。そして、メモリ210に記憶された特定用途演算例外ブレークポイント・テーブル211にブレークポイントが含まれているか否かを確認する(ステップS1502)。その結果、特定用途演算例外ブレークポイント・テーブル211に含まれていない場合(ステップS1503:含まれていない)は、ソフトウエア・ブレーク処理をおこなった(ステップS1504)後、コンテキストを復元し(ステップS1505)、割り込み復帰命令により割り込みから復帰し(ステップS1506)、割り込み処理を終了する。
【0088】
一方、特定用途演算例外ブレークポイント・テーブル211にブレークポイントが含まれている場合(ステップS1503:含まれている)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS1507)。その結果、演算例外を未検出であれば(ステップS1508:演算例外未検出)、ステップS1504へ移行し、ステップS1504〜S1506の処理をおこない、割り込み処理を終了する。これに対し、演算例外を検出済みであれば(ステップS1508:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS1509)後、ステップS1504へ移行し、ステップS1504〜S1506の処理をおこない、割り込み処理を終了する。
【0089】
図16は、本発明の実施の形態4にかかる特定用途演算命令の例外処理方法のうち、命令ブレーク法による割り込み処理プログラムのフローチャートである。プログラムの実行が中断され、割り込み処理プログラムが開始されると、まずコンテキストを退避する(ステップS1601)。そして、メモリ210に記憶された特定用途演算例外ブレークポイント・テーブル211にブレークポイントが含まれているか否かを確認する(ステップS1602)。その結果、特定用途演算例外ブレークポイント・テーブル211に含まれていない場合(ステップS1603:含まれていない)は、命令ブレーク処理をおこなった(ステップS1604)後、コンテキストを復元し(ステップS1605)、割り込み復帰命令により割り込みから復帰し(ステップS1606)、割り込み処理を終了する。
【0090】
一方、特定用途演算例外ブレークポイント・テーブル211にブレークポイントが含まれている場合(ステップS1603:含まれている)は、特定用途演算ステータス・レジスタ267に対する読み出し命令により特定用途演算ステータス・レジスタ267の値を読み出し、特定用途演算命令の実行中の演算例外を検出済みであるか否かを確認する(ステップS1607)。その結果、演算例外を未検出であれば(ステップS1608:演算例外未検出)、ステップS1604へ移行し、ステップS1604〜S1606の処理をおこない、割り込み処理を終了する。これに対し、演算例外を検出済みであれば(ステップS1608:演算例外検出済)、特定用途演算例外処理をおこなった(ステップS1609)後、ステップS1604へ移行し、ステップS1604〜S1606の処理をおこない、割り込み処理を終了する。
【0091】
実施の形態4におけるステップ・ブレーク法による割り込み処理プログラムは、図19に示す従来のフローチャートと同様であるため、図示および説明を省略する。
【0092】
上述した実施の形態4によれば、特定用途演算命令を有する情報処理装置において、ソフトウエア・ブレークまたは命令ブレークが発生した場合、特定用途演算命令によるオーバーフローなどの演算例外が発生したことを検出し、例外処理をおこなうことができる。したがって、デバッグ作業の労力が軽減されるとともに、デバッグ作業に要する時間が短縮されるので、プログラムの開発期間が短縮されるという効果が得られる。
【0093】
【発明の効果】
本発明によれば、特定用途演算命令を有する情報処理装置において、ステップ・ブレーク、ソフトウエア・ブレークまたは命令ブレークの発生時に、特定用途演算命令によるオーバーフローなどの演算例外が発生したことを検出し、例外処理をおこなうことができる。したがって、デバッグ作業の労力が軽減されるとともに、デバッグ作業に要する時間が短縮されるので、プログラムの開発期間が短縮されるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。
【図2】本発明の実施の形態1における命令ブレーク検出部の一例を示すブロック図である。
【図3】本発明の実施の形態1における動作レジスタの一例を示す構成図である。
【図4】本発明の実施の形態1における割り込み発生前動作レジスタの一例を示す構成図である。
【図5】本発明の実施の形態1にかかる特定用途演算命令の例外処理方法のうち、ステップ・ブレーク法による割り込み処理プログラムのフローチャートである。
【図6】本発明の実施の形態1にかかる特定用途演算命令の例外処理方法のうち、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。
【図7】本発明の実施の形態1にかかる特定用途演算命令の例外処理方法のうち、命令ブレーク法による割り込み処理プログラムのフローチャートである。
【図8】本発明の実施の形態2にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。
【図9】本発明の実施の形態2にかかる特定用途演算命令の例外処理方法のうち、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。
【図10】本発明の実施の形態3にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。
【図11】本発明の実施の形態3における命令ブレーク検出部の一例を示すブロック図である。
【図12】本発明の実施の形態3にかかる特定用途演算命令の例外処理方法のうち、命令ブレーク法による割り込み処理プログラムのフローチャートである。
【図13】本発明の実施の形態4にかかる特定用途演算命令の例外処理方法を適用した情報処理装置の構成を示すブロック図である。
【図14】本発明の実施の形態4における特定用途演算例外ブレークポイント・テーブルの一例を示す構成図である。
【図15】本発明の実施の形態4にかかる特定用途演算命令の例外処理方法のうち、ソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。
【図16】本発明の実施の形態4にかかる特定用途演算命令の例外処理方法のうち、命令ブレーク法による割り込み処理プログラムのフローチャートである。
【図17】従来の命令ブレーク法による割り込み処理プログラムのフローチャートである。
【図18】従来のソフトウエア・ブレーク法による割り込み処理プログラムのフローチャートである。
【図19】従来のステップ・ブレーク法による割り込み処理プログラムのフローチャートである。
【符号の説明】
210 メモリ
211 演3算例外検出対象のブレークポイントを登録したテーブル(特定用途演算例外ブレークポイント・テーブル)
240 特定用途演算ステータス読み書き命令実行部
241 動作モード読み書き命令実行部
331 特定用途演算例外検出ブレークポイント命令の実行部
267 演算例外検出済みであることを記憶したレジスタ(特定用途演算ステータス・レジスタ)
268 演算例外検出状態であることを記憶したレジスタ(動作モード・レジスタ)
425a〜425d 演算例外検出対象の命令ブレーク発生アドレスを記憶したレジスタ(命令ブレークポイント・レジスタ)
Claims (12)
- 特定用途演算命令の実行中に発生した演算例外を検出し、例外処理をおこなう情報処理装置において、
特定用途演算命令を実行中に演算例外の発生情報を記憶する記憶手段と、
デバック中のブレーク位置においてプログラムの実行が中断された後、コンテキストを退避する退避手段と、
特定用途演算命令の実行中に演算例外を検出したか否かを、前記発生情報に基づいて確認する確認手段と、
特定用途演算命令の実行中の演算例外が検出済みである場合に例外処理をおこなう例外処理手段と、
割り込みから復帰する復帰手段と、
を備えたことを特徴とする情報処理装置。 - 特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されているか否かを確認する第2の確認手段をさらに備えたことを特徴とする請求項1に記載の情報処理装置。
- ブレーク対象命令が特定用途演算命令であるか否かを確認する第3の確認手段をさらに備えたことを特徴とする請求項1に記載の情報処理装置。
- 特定用途演算命令の実行中に演算例外を検出したことを記憶手段に記憶し、前記記憶手段の内容を参照して演算例外が検出済みであるか未検出であるかを確認することを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
- 特定用途演算命令の実行中に発生した演算例外を検出し、例外処理をおこなう特定用途演算命令の例外処理方法において、
特定用途演算命令を実行中に演算例外の発生情報を記憶する記憶工程と、
デバック中のブレーク位置においてプログラムの実行が中断された後、コンテキストを退避する退避工程と、
特定用途演算命令の実行中に演算例外を検出したか否かを、前記発生情報に基づいて確認する確認工程と、
特定用途演算命令の実行中の演算例外が検出済みである場合に例外処理をおこなう例外処理工程と、
割り込みから復帰する復帰工程と、
を含むことを特徴とする特定用途演算命令の例外処理方法。 - 特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されているか否かを確認する第2の確認工程をさらに含むことを特徴とする請求項5に記載の特定用途演算命令の例外処理方法。
- ブレーク対象命令が特定用途演算命令であるか否かを確認する第3の確認工程をさらに含むことを特徴とする請求項5に記載の特定用途演算命令の例外処理方法。
- 特定用途演算命令の実行中に演算例外を検出したことを記憶手段に記憶し、前記記憶手段の内容を参照して演算例外が検出済みであるか未検出であるかを確認することを特徴とする請求項5〜7のいずれか一つに記載の特定用途演算命令の例外処理方法。
- 特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定されたことをレジスタまたはメモリのフラグに記憶し、前記レジスタまたは前記フラグを参照して演算例外の検出をおこなう状態に設定されているか否かを確認することを特徴とする請求項6に記載の特定用途演算命令の例外処理方法。
- 特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定するための命令を設け、特定用途演算命令の実行中に発生する演算例外の検出をおこなう状態に設定するための命令であるか否かを確認することを特徴とする請求項6に記載の特定用途演算命令の例外処理方法。
- プログラムの実行を中断した命令アドレスが、特定用途演算命令の実行中に発生する演算例外の検出をおこなう対象であることを記憶手段に記憶し、前記記憶手段の内容を参照して演算例外の検出をおこなう状態に設定されているか否かを確認することを特徴とする請求項6に記載の特定用途演算命令の例外処理方法。
- 特定用途演算命令の実行中に発生する演算例外の検出をおこなう対象のブレークポイントを記憶手段に記憶し、前記記憶手段の内容を参照して演算例外の検出をおこなう状態に設定されているか否かを確認することを特徴とする請求項6に記載の特定用途演算命令の例外処理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000234490A JP3866023B2 (ja) | 2000-08-02 | 2000-08-02 | 情報処理装置および特定用途演算命令の例外処理方法 |
US09/741,802 US7376820B2 (en) | 2000-03-16 | 2000-12-22 | Information processing unit, and exception processing method for specific application-purpose operation instruction |
KR1020010003129A KR100781949B1 (ko) | 2000-03-16 | 2001-01-19 | 정보 처리 유닛 및 특정 애플리케이션용 연산 명령에 대한 예외 처리 방법 |
EP09167859A EP2144157A3 (en) | 2000-03-16 | 2001-01-24 | Information processing unit, and exception processing method for application-specific instruction |
EP01300603A EP1134655A3 (en) | 2000-03-16 | 2001-01-24 | Information processing unit, and exception processing method for application-specific instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000234490A JP3866023B2 (ja) | 2000-08-02 | 2000-08-02 | 情報処理装置および特定用途演算命令の例外処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002049483A JP2002049483A (ja) | 2002-02-15 |
JP3866023B2 true JP3866023B2 (ja) | 2007-01-10 |
Family
ID=18726849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000234490A Expired - Fee Related JP3866023B2 (ja) | 2000-03-16 | 2000-08-02 | 情報処理装置および特定用途演算命令の例外処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3866023B2 (ja) |
-
2000
- 2000-08-02 JP JP2000234490A patent/JP3866023B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002049483A (ja) | 2002-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100781949B1 (ko) | 정보 처리 유닛 및 특정 애플리케이션용 연산 명령에 대한 예외 처리 방법 | |
KR20140013005A (ko) | 단일 스텝 실행을 이용한 코드 진단 | |
JP3206641B2 (ja) | マイコンシステムのデバッグ方法、デバッグ装置及びデバッグプログラムを記録した記録媒体 | |
JP3866023B2 (ja) | 情報処理装置および特定用途演算命令の例外処理方法 | |
JPH07141176A (ja) | コマンドリトライ制御方式 | |
JPH1196006A (ja) | 情報処理装置 | |
JP2653412B2 (ja) | ブレークポイント設定方法 | |
JPS59183443A (ja) | デバツグ装置 | |
JP2616542B2 (ja) | 疑似障害発生システム | |
JPH09204205A (ja) | プログラム制御システム | |
JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
JP3012618B1 (ja) | 被検査プログラムのデバグ方法とそのデバグ方式 | |
JP3119859B2 (ja) | 計算機システム | |
JPS6270947A (ja) | デバグ割込み制御方式 | |
JPH06295252A (ja) | 計算機 | |
JPH08263324A (ja) | デバッグ容易化装置 | |
JPS61240342A (ja) | マイクロプログラム制御装置 | |
JP2002333993A (ja) | システムシミュレーション装置及びシミュレーション制御方法 | |
JP2001256047A (ja) | 計算機とその制御方法 | |
JPH07191875A (ja) | デバッガー | |
JPH0362233A (ja) | アドレスマッチタイミングトレース機構 | |
JPH03119436A (ja) | マイクロ命令アドレストレーサ | |
JPH0333940A (ja) | 評価用マイクロプロセッサ | |
JPH02242444A (ja) | 情報処理装置のデバッグ機構 | |
JPS63233442A (ja) | デバツク支援回路を有するプロセツサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060711 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060911 |
|
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: 20061003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061004 |
|
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: 20091013 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131013 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |