(57)【要約】      （修正有）【課題】マイクロコンピュータのチップに内蔵した割り込み回路における割り込み処理の遷移を、インサーキットエミュレータを使用せずに時間計測する。【解決手段】割り込み監視回路１１が、割り込み要求、ＣＰＵ（中央演算処理装置）からの割り込み許可信号、割り込み処理の本体の開始信号、割り込み処理の本体の終了信号、割り込み前のプログラムへの復帰信号の少なくとも１つをトリガとしてタイマ回路１２にトリガ信号Ｓ１を供給することにより、タイマのカウント値をキャプチャレジスタに取り込んだ直後に、取り込んだタイマのカウント値と割り込み種類情報を、内部バス３３に接続された内部メモリ３２に転送する。割り込み処理の実行後に、各々の割り込み種類ごとに、割り込み待ち時間、割り込み前処理の時間、割り込み処理本体の時間、割り込み後処理の時間、割り込み処理全体の時間の少なくとも１つを計算する。【選択図】図１
2013105388.tif 000002
【特許請求の範囲】
【請求項１】
外部又は内蔵入出力からの割り込み要求を受け付けて、前記割り込み要求に対応した割り込み処理を実行すると共に、前記割り込み処理の遷移を時間計測する割り込み回路であって、
時間計測を行うタイマ回路と、前記タイマ回路を制御する割り込み監視回路と、を備え、
前記タイマ回路は、クロック信号で動作するタイマと、前記タイマのカウント値を取り込むキャプチャレジスタとを有し、
前記割り込み監視回路は、前記タイマ回路に対して、前記タイマのカウント値を取り込むトリガ信号を供給し、
前記タイマ回路は前記トリガ信号のタイミングで、前記タイマのカウント値を前記キャプチャレジスタに取り込み、
前記キャプチャレジスタに取り込まれた前記タイマのカウント値と当該割り込み要求の割り込み種類情報を、内部バスに接続された内部メモリに転送することを特徴とする割り込み回路。
【請求項２】
拡張レジスタをさらに備え、
前記拡張レジスタに前記割り込み処理の遷移を時間計測するタイミングを与える割り込み処理ステータス情報を予め設定しておき、
前記割り込み監視回路は、前記割り込み処理ステータス情報に基づいて前記トリガ信号を生成し、前記タイマ回路に供給することを特徴とする請求項１に記載の割り込み回路。
【請求項３】
前記割り込み処理ステータス情報は、前記割り込み要求、ＣＰＵ（中央演算処理装置）からの割り込み許可信号、割り込み処理本体の開始信号、割り込み処理本体の終了信号、割り込み前のプログラムへの復帰信号の少なくとも１つを含むことを特徴とする請求項２に記載の割り込み回路。
【請求項４】
外部又は内蔵入出力からの割り込み要求を受け付けて、前記割り込み要求に対応した割り込み処理を実行すると共に、前記割り込み処理の遷移を時間計測する割り込み方法であって、
前記割り込み処理の遷移を時間計測するタイミングを与える割り込み処理ステータス情報を予め設定するステップと、
前記時間計測を行うタイマを動作させるステップと、
前記割り込み処理ステータス情報がアクティブになるタイミングで、前記タイマのカウント値を取り込み、取り込んだ前記タイマのカウント値と当該割り込み要求の割り込み種類情報を内部メモリに転送するステップと、
を含むことを特徴とする割り込み方法。
【請求項５】
前記割り込み処理ステータス情報は、前記割り込み要求、ＣＰＵ（中央演算処理装置）からの割り込み許可信号、割り込み処理本体の開始信号、割り込み処理本体の終了信号、割り込み前のプログラムへの復帰信号の少なくとも１つを含むことを特徴とする請求項４に記載の割り込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み回路及び割り込み方法に関する。特に、本発明は、割り込みをデバッグする際に、割り込み処理の遷移を時間計測する回路及び方法に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータを用いたシステムの性能及び機能の向上はめざましく、それに伴い割り込み要因の増加、多様化が進んでいる。特に、インバータ制御に用いるマイクロコンピュータにおいては、ｎｓ（ナノ秒）オーダでの処理や多重割り込みが多く使用され、動作精度はｎｓオーダを求められる。
【０００３】
従来、マイクロコンピュータのデバッグには、インサーキットエミュレータが用いられるが、従来のインサーキットエミュレータは、インバータ制御等で要求されるｎｓオーダの精度の割り込みのデバッグに使用するには、性能及び機能が不十分であるのが実情である。また、マイクロコンピュータによってはインサーキットエミュレータが用意されていないものもあり、割り込みを含めたデバッグの開発環境の整備が求められている。このような状況に対して、インサーキットエミュレータの性能及び機能を改善するのではなく、インサーキットエミュレータを用いずに、マイクロコンピュータのチップ自体にデバッグ機能を入れる方法が検討されている。
【０００４】
例えば、特許文献１には、マイクロコンピュータシステムに内蔵されている割り込み回路に割り込み診断回路を付加することにより、割り込み処理の各種実行時間の測定及びステータス情報の選択と格納を、専用のインサーキットエミュレータを使用することなく、実行する方法が開示されている。
【０００５】
図１１は、特許文献１に記載された従来技術の割り込み回路を示すブロック図である。従来技術の割り込み回路は、外部又は内蔵入出力（内蔵Ｉ／Ｏ）からの割り込み要求を受け付ける割り込み入力回路３０、割り込み入力回路３０からの出力を選択する割り込み選択回路１、割り込み選択回路１からの出力で割り込み処理の開始及び終了の制御を行う割り込み制御回路２、割り込み制御回路２からの出力でＣＰＵに対する割り込み要求の調停を行う割り込み要求回路４、割り込み制御回路２からの出力からハンドラアドレスを生成し、ＣＰＵへ通知するハンドラアドレス生成回路６、時間計測を行うタイマ回路９、割り込み診断回路８、タイマ回路９および拡張レジスタ７の内容を格納する格納レジスタ１０、割り込み発生の有無／条件などの設定を行うマスクレジスタ３、割り込み処理の動作条件（優先順位、割り込み入力のサンプリング条件など）の設定や割り込み処理に関する各種ステータス情報を格納する制御レジスタ５、割り込み診断回路８、タイマ回路９および格納レジスタ１０の動作条件の設定および割り込み処理に関する各種ステータス情報を格納する拡張レジスタ７から構成されている。ここで、割り込み診断回路８は、割り込み入力回路３０、割り込み制御回路２、割り込み要求回路４、拡張レジスタ７の出力、ＣＰＵからのステータス情報（ＣＰＵＳＴ信号）に基づいてタイマ回路９を制御する。
【０００６】
また、図１２は、図１１のタイマ回路９の詳細を示すブロック図である。タイマ回路９は、クロック信号（図１２のＣＬＫ）を基準に動作するタイマ２０とキャプチャレジスタ（２１ａ〜２１ｅ）から構成される。
【０００７】
従来技術の割り込み回路では、まず、図１１の制御レジスタ５及び拡張レジスタ７で割り込み処理の動作条件と割り込み処理の実行時間測定条件、ステータス情報の選択／格納条件を設定する。そして、割り込み要求（図１のＩＮＴ０、ＩＮＴ１等）が入力されると、割り込み診断回路８は、拡張レジスタ７で設定された条件で割り込み処理の時間計測を行う。具体的には、タイマ２０のカウント値は、割り込み診断回路８から出力される信号（図１２のＩＮＴ０、ＩＮＴＡＫ、ＩＮＴＳＲＴ、ＩＮＴＥＮＤ、ＰＲＧＳＲＴ）をトリガとして、夫々キャプチャレジスタ（２１ａ〜２１ｅ）に取り込まれる。
【０００８】
そして、キャプチャレジスタ（図１２の２１ａ〜２１ｅ）に取り込まれたカウント値に基づいて、当該割り込み処理の割り込み待ち時間、割り込み前処理の時間、割り込み処理本体の時間、割り込み後処理の時間を算出する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１４８５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述のように、特許文献１に記載された従来技術の割り込み回路及び割り込み方法によれば、専用のインサーキットエミュレータを使用することなく、割り込み処理の遷移を時間計測することが可能である。
【００１１】
しかしながら、特許文献１に記載された従来技術は、割り込みが発生するごとにタイマ２０をリセットしているため、複数の割り込みに対して、相互のタイミング関係を含めた測定ができないという問題がある。具体的には、２つの割り込みである「割り込み１」、「割り込み２」が発生した場合、「割り込み１」と「割り込み２」がプログラム実行中にどのような時間間隔で発生し、処理されるかを測定することができない。
【００１２】
また、多重割り込みが発生すると、多重割り込み発生前に処理して、キャプチャレジスタに取り込んだカウント値は、後で発生した優先度の高い割り込みにより上書きされてしまう。そのため、多重割り込みに対応した割り込みの遷移を時間計測することができない。
【００１３】
さらに、従来技術の割り込み回路は、割り込み処理ステータス（前述のＩＮＴ０、ＩＮＴＡＫ、ＩＮＴＳＴ、ＩＮＴＥＮＤ、ＰＲＧＳＲＴ等）ごとに、キャプチャレジスタが必要となり、チップ面積が増大し、チップコストが高くなる。また、割り込み種類（ＩＮＴ０、ＩＮＴ１等）に対応するには、割り込み種類ごとにキャプチャレジスタを持つことが必要となり、さらにチップ面積が増大し、チップコストが高くなる。
【００１４】
以上説明したように、従来技術による割り込み回路には、解決すべき課題が存在する。
【課題を解決するための手段】
【００１５】
本発明の第１の視点による割り込み回路は、外部又は内蔵入出力からの割り込み要求を受け付けて、前記割り込み要求に対応した割り込み処理を実行すると共に、前記割り込み処理の遷移を時間計測する割り込み回路であって、時間計測を行うタイマ回路と、前記タイマ回路を制御する割り込み監視回路と、を備え、前記タイマ回路は、クロック信号で動作するタイマと、前記タイマのカウント値を取り込むキャプチャレジスタとを有し、前記割り込み監視回路は、前記タイマ回路に対して、前記タイマのカウント値を取り込むトリガ信号を供給し、前記タイマ回路は前記トリガ信号のタイミングで、前記タイマのカウント値を前記キャプチャレジスタに取り込み、前記キャプチャレジスタに取り込まれた前記タイマのカウント値と当該割り込み要求の割り込み種類情報を、内部バスに接続された内部メモリに転送する。
【００１６】
本発明の第２の視点による割り込み方法は、外部又は内蔵入出力からの割り込み要求を受け付けて、前記割り込み要求に対応した割り込み処理を実行すると共に、前記割り込み処理の遷移を時間計測する割り込み方法であって、前記割り込み処理の遷移を時間計測するタイミングを与える割り込み処理ステータス情報を予め設定するステップと、前記時間計測を行うタイマを動作させるステップと、前記割り込み処理ステータス情報がアクティブになるタイミングで、前記タイマのカウント値を取り込み、取り込んだ前記タイマのカウント値と当該割り込み要求の割り込み種類情報を内部メモリに転送するステップと、を含む。
【発明の効果】
【００１７】
本発明の第１の視点によれば、複数の割り込みや多重割り込みに対しても、相互のタイミング関係を含めて割り込みの遷移を時間計測することが可能な割り込み回路を提供することができる。
【００１８】
本発明の第２の視点によれば、複数の割り込みや多重割り込みに対しても、相互のタイミング関係を含めて割り込みの遷移を時間計測することが可能な割り込み方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係る割り込み回路を示すブロック図である。
【図２】図１のタイマ回路の詳細を示す図である。
【図３】本発明の第１の実施形態に係る割り込み回路による多重割り込みのフローチャートである。
【図４】本発明の第１の実施形態に係る割り込み回路による時間計測の動作を示す図である。
【図５】本発明の第１の実施形態に係る割り込み回路による時間計測の結果の一例を示す図である。
【図６】従来技術の割り込み回路による割り込み時のプログラム遷移図である。
【図７】従来技術の割り込み回路による割り込み処理のフローチャートである。
【図８】従来技術の割り込み回路による割り込み待ち及び割り込み前処理のフローチャートである。
【図９】従来技術の割り込み回路による割り込み後処理のフローチャートである。
【図１０】従来技術の割り込みハンドラの一例である。
【図１１】従来技術の割り込み回路を示すブロック図である。
【図１２】図１１のタイマ回路の詳細を示す図である。
【図１３】本発明の一実施形態に係る割り込み処理方法を示すフローチャートである。
【発明を実施するための形態】
【００２０】
本発明の実施形態の概要について、必要に応じて図面を参照して説明する。なお、この概要に付記した図面参照符号は専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。
【００２１】
本発明による一実施形態の割り込み回路は、図１、２、４に示すように、外部又は内蔵入出力からの割り込み要求（図１のＩＮＴ０、ＩＮＴ１等）を受け付けて、その割り込み要求に対応した割り込み処理を実行すると共に、割り込み処理の遷移を時間計測する割り込み回路であって、時間計測を行うタイマ回路（図１、２の１２）と、そのタイマ回路を制御する割り込み監視回路（図１の１１）と、を備え、タイマ回路（図１、２の１２）は、クロック信号（図２のＣＬＫ）で動作するタイマ（図２の９０）と、そのタイマのカウント値を取り込むキャプチャレジスタ（図２の９１）とを有し、割り込み監視回路（図１の１１）は、タイマ回路（図１、２の１２）に対して、タイマ（図２の９０）のカウント値を取り込むトリガ信号（図１、図２のＳ１）を供給し、タイマ回路（図１、２の１２）はトリガ信号（図１、図２のＳ１）のタイミングで、タイマ（図２の９０）のカウント値をキャプチャレジスタ（図２の９１）に取り込み、キャプチャレジスタ（図２の９１）に取り込まれたタイマ（図２の９０）のカウント値と当該割り込み要求の割り込み種類情報（図４の３４）を、内部バス（図１の３３）に接続された内部メモリ（図１の３２）に転送する。
【００２２】
本発明による一実施形態の割り込み方法は、図１３に示すように、外部又は内蔵入出力からの割り込み要求（図１のＩＮＴ０、ＩＮＴ１等）を受け付けて、割り込み要求に対応した割り込み処理を実行すると共に、割り込み処理の遷移を時間計測する割り込み方法であって、割り込み処理の遷移を時間計測するタイミングを与える割り込み処理ステータス情報（図１のＩＮＴ０／ＩＮＴ１、ＩＮＴＡＫ、ＩＮＴＳＲＴ、ＩＮＴＥＮＤ、ＰＲＧＳＲＴ等）を予め設定するステップ（図１３のＳ１０）と、時間計測を行うタイマ（図２の９０）を動作させるステップ（図１３のＳ１１）と、割り込み処理ステータス情報がアクティブになるタイミングで、タイマ（図２の９０）のカウント値を取り込み（図１３のＳ１２、Ｓ１３）、取り込んだタイマのカウント値と当該割り込み要求の割り込み種類情報（図４の３４）を内部メモリ（図１の３２）に転送するステップ（図１３のＳ１４）と、を含む。
【００２３】
以下に具体的な実施の形態について、図面を参照して説明する。
【００２４】
［第１の実施形態］
（第１の実施形態の構成）
まず、第１の実施形態の構成について説明する。図１は、第１の実施形態に係る割り込み回路を示すブロック図である。図１に示すように、第１の実施形態の割り込み回路は、外部又は内蔵入出力（内蔵Ｉ／Ｏ）からの割り込み要求を受け付ける割り込み入力回路３０、割り込み入力回路３０からの出力を選択する割り込み選択回路１、割り込み選択回路１からの出力で割り込み処理の開始及び終了の制御を行う割り込み制御回路２、割り込み制御回路２からの出力でＣＰＵに対する割り込み要求の調停を行う割り込み要求回路４、割り込み制御回路２からの出力からハンドラアドレスを生成し、ＣＰＵへ通知するハンドラアドレス生成回路６、実行時間の計測を行うタイマ回路１２を有する。さらに、第１の実施形態の割り込み回路は、従来技術の割り込み回路（図１１）に対して新たに追加された割り込み監視回路１１を有する。ここで、従来技術の割り込み診断回路８（図１１）の機能は、割り込み監視回路１１で対応できるため、割り込み診断回路８は不要になる。
【００２５】
割り込み監視回路１１は、割り込み入力回路３０からの出力と、割り込み制御回路２からの出力と、割り込み要求回路４からの出力と、拡張レジスタ７の出力と、ＣＰＵが出力する割り込み許可信号ＩＮＴＡＫ、ＣＰＵからの割り込みステータスであるＣＰＵＳＴ信号（ＩＮＴＳＲＴ、ＩＮＴＥＮＤ、ＰＲＧＳＲＴを含む）とに基づいてタイマ回路１２を制御し、且つ割り込み種類を判別する情報（割り込み種類情報３４）を生成する機能を有する。
【００２６】
また、第１の実施形態の割り込み回路は、割り込み発生の有無又は条件などの設定を行うマスクレジスタ３、割り込み処理の優先順位、割り込み入力のサンプリング条件など動作条件に関する設定や割り込み処理に関する各種ステータス情報を格納する制御レジスタ５、割り込み監視回路１１、タイマ回路１２の動作条件の設定及び割り込み処理に関する各種ステータス情報（割り込み処理ステータス情報を含む）を格納する拡張レジスタ７を備えている。
【００２７】
ここで、拡張レジスタ７に設定する割り込み処理ステータス情報について、以下に説明する。割り込み処理ステータス情報は、割り込み処理の遷移に関連した情報を表す信号で、外部又は内蔵入出力からの割り込み要求（図１のＩＮＴ０、ＩＮＴ１等）、ＣＰＵが出力する割り込み許可信号（図１のＩＮＴＡＫ）、ＣＰＵからの割り込みステータス情報（図１のＣＰＵＳＴ）等が含まれる。ここで、上記のＣＰＵＳＴには、割り込み処理本体の開始信号（図１のＩＮＴＳＲＴ）、割り込み処理本体の終了信号（図１のＩＮＴＥＮＤ）、割り込み前のプログラムへの復帰信号（図１のＰＲＧＳＲＴ）等が含まれる。但し、これらの信号は、割り込み処理ステータス情報の一例であり、割り込み処理の遷移に関連した信号であれば、他の信号を設定するようにしてもよい。
【００２８】
また、第１の実施形態の割り込み回路では、内部バス３３に接続された内部メモリ３２を、割り込み処理ステータス情報が、夫々アクティブになるタイミングのタイマ９０のカウント値の格納先として使用する。従来技術の割り込み回路では、タイマ２０のカウント値の格納先として、格納レジスタ１０が必要であったが、第１の実施形態の割り込み回路では、上述のように、内部メモリ３２をタイマ９０のカウント値の格納先として使用するように構成したので、格納レジスタ１０は不要となる。
【００２９】
次に、図２は、図１のタイマ回路１２の詳細ブロック図である。第１の実施形態のタイマ回路１２は、ＣＬＫ信号を基準に動作するタイマ９０と、キャプチャレジスタ９１を備えている。第１の実施形態のタイマ回路１２を、従来技術のタイマ回路９（図１２）と比較すると分かるように、第１の実施形態のタイマ回路１２は、単一のキャプチャレジスタ９１で構成されている。図２に示すように、タイマ９０のカウント値は、割り込み監視回路１１から供給されるトリガ信号Ｓ１のタイミングで、キャプチャレジスタ９１に取り込まれる。そして、キャプチャレジスタ９１に取り込まれたタイマ９０のカウント値は、取り込まれた直後に、内部バス３３を介して、内部メモリ３２に転送される。
【００３０】
（第１の実施形態の動作）
次に、第１の実施形態の割り込み回路の動作について、詳細に説明する。図１の制御レジスタ５及び拡張レジスタ７で、割り込み処理の動作条件と割り込み処理の時間計測の設定、ステータス情報の選択／格納条件を設定する。上記の割り込み処理の時間計測の設定は、具体的には、拡張レジスタ７に割り込み処理ステータス情報を設定することにより行う。そして、割り込み要求が入力されると、割り込み監視回路１１は、拡張レジスタ７に設定された割り込み処理ステータス情報に基づいて、トリガ信号Ｓ１を、タイマ回路１２に供給する。すなわち、割り込み処理ステータス情報として設定されたＩＮＴ０／ＩＮＴ１信号、ＩＮＴＡＫ信号、ＩＮＴＳＲＴ信号、ＩＮＴＥＮＤ信号、ＰＲＧＳＲＴ信号等がアクティブになるタイミングで、トリガ信号Ｓ１がタイマ回路１２に供給されることになる。
【００３１】
そして、トリガ信号Ｓ１のタイミングで、タイマ９０のカウント値がキャプチャレジスタ９１に取り込まれると、その直後に、図４に示すように、キャプチャレジスタ９１の内容は、割り込みの種類を判別する情報（割り込み種類情報３４）と共に内部メモリ３２へ、随時、転送され、格納される。
【００３２】
図６は、割り込みによるプログラムの状態遷移図を示す。以下、図６を参照して、外部より割り込み要求ＩＮＴ０を受け付けた場合を想定し、割り込み処理の実行及び割り込み処理の遷移の時間計測について説明する。
【００３３】
図６において、まず、メインプログラムの冒頭で割り込み回路の初期化作業を行う。具体的には、上述した制御レジスタ５、拡張レジスタ７の設定等を行う。そして、初期化作業の後、タイマ回路１２のタイマ９０をリセットし、クロック信号ＣＬＫを基準とするカウント動作を開始させる。
【００３４】
また、図６におけるハンドラテーブルは、予め、図１０に示す割り込みハンドラに対応して、設定がなされる。図１０の割り込みハンドラの第１列は、割り込み要因（割り込み種類情報）を示し、第２列は、割り込み要因が外部、内蔵入出力（内蔵Ｉ／Ｏ）、命令のいずれによるものかを示し、第３列は、ハンドラアドレスを示している。
【００３５】
図７は、第１の実施形態の割り込み回路による割り込み処理のフローチャートである。図７に示すように、ＩＮＴ０の割り込み処理全体は、ＩＮＴ０入力からＩＮＴ０受付までの区間である割り込み待ち時間Ｔ８０、割り込み前処理の時間Ｔ８１、割り込み処理本体の時間Ｔ８２、割り込み後処理開始からＩＮＴ０終了までの区間である割り込み後処理の時間Ｔ８３に分割することができる。実際の割り込み処理を行いながら、これらの各区間の時間（Ｔ８０、Ｔ８１、Ｔ８２、Ｔ８３）の算出に必要な時間計測を、以下のように実施する。
【００３６】
図７において、ＩＮＴ０信号が入力される（図７の時刻（ｌ））と、割り込み入力回路３０は、ＩＮＴ０信号を割り込み要求として受け付け、割り込み選択回路１及び割り込み監視回路１１に出力する。割り込み選択回路１は、ＩＮＴ０信号が入力されると、ＩＮＴ０レベルの割り込み要求として割り込み制御回路２に出力する。ここで、割り込み処理ステータス情報であるＩＮＴ０信号がアクティブになった時点で、トリガ信号Ｓ１がタイマ回路１２に供給され、タイマ９０のカウント値がキャプチャレジスタ９１に取り込まれる。その直後に、キャプチャレジスタ９１の内容と、割り込み種類情報（ＩＮＴ０）は内部バス３３を介して内部メモリ３２に転送され、格納される。
【００３７】
さらに、割り込み制御回路２は、他の割り込み入力やマスクレジスタ３の状態から有効な割り込み入力の選択を行う。割り込み制御回路２がＩＮＴ０レベルの割り込みを受け付けると、有効な割り込み入力があることを割り込み要求回路４に通知する。割り込み要求回路４は入力がアクティブになると、ＣＰＵに対する割り込み要求信号ＩＮＴＲＱ信号を出力する。割り込み要求回路４は、ＣＰＵからの割り込み許可信号ＩＮＴＡＫ信号がアクティブになると、ＩＮＴ０レベルに対する割り込みが許可されたことを割り込み制御回路２に通知する。具体的には、割り込み制御回路２がハンドラアドレス生成回路６に、ＩＮＴ０レベルの割り込みが選択されたことを通知してハンドラアドレスを生成させる。そして、ハンドラアドレス生成回路６は、生成したハンドラアドレスをＣＰＵに出力する。
【００３８】
ＣＰＵは、ＩＮＴ０のハンドラアドレス１００００Ｈが入力されると、メインプログラムの処理を中断して、ハンドラアドレスからの命令の実行を開始し、割り込み前処理が開始される（図７の時刻（ｍ））。ここでは、割り込み処理ステータス情報であるＩＮＴＡＫ信号がアクティブになった時点で、トリガ信号Ｓ１がタイマ回路１２に供給され、タイマ９０のカウント値がキャプチャレジスタ９１に取り込まれる。その直後に、キャプチャレジスタ９１の内容と、割り込み種類情報（ＩＮＴ０）は内部バス３３を介して内部メモリ３２に転送され、格納される。
【００３９】
次に、割り込み前処理が終了し、割り込み処理本体が開始される（図７の時刻（ｎ））。ここでは、割り込み処理ステータス情報である割り込み処理本体の開始を示すＩＮＴＳＲＴ信号がアクティブになった時点で、トリガ信号Ｓ１がタイマ回路１２に供給され、タイマ９０のカウント値がキャプチャレジスタ９１に取り込まれる。その直後に、キャプチャレジスタ９１の内容と、割り込み種類情報（ＩＮＴ０）は内部バス３３を介して内部メモリ３２に転送され、格納される。
【００４０】
次に、割り込み処理本体が終了し、割り込み後処理が開始される（図７の時刻（ｏ））。ここでは、割り込み処理ステータス情報である割り込み処理本体の終了を示すＩＮＴＥＮＤ信号がアクティブになった時点で、トリガ信号Ｓ１がタイマ回路１２に供給され、タイマ９０のカウント値がキャプチャレジスタ９１に取り込まれる。その直後に、キャプチャレジスタ９１の内容と、割り込み種類情報（ＩＮＴ０）は内部バス３３を介して内部メモリ３２に転送され、格納される。
【００４１】
次に、割り込み後処理が終了し、割り込み処理前のプログラム（この場合は、メインプログラム）へ復帰する（図７の時刻（ｐ））。ここでは、割り込み処理ステータス情報である割り込み前のプログラムへの復帰を示すＰＲＧＳＲＴ信号がアクティブになった時点で、トリガ信号Ｓ１がタイマ回路１２に供給され、タイマ９０のカウント値がキャプチャレジスタ９１に取り込まれる。その直後に、キャプチャレジスタ９１の内容と、割り込み種類情報（ＩＮＴ０）は内部バス３３を介して内部メモリ３２に転送され、格納される。
【００４２】
このようにして、内部メモリ３２に、割り込み処理ステータス情報が夫々アクティブになるタイミングに時間計測したタイマ９０のカウント値と、割り込み種類情報が格納される。
【００４３】
次に、図８は、割り込み待ち及び割り込み前処理を示すフローチャートである。図８を参照して、ＩＮＴ０入力後から割り込み処理本体の開始までの動作について説明する。まず、割り込み入力回路３０が割り込み要求ＩＮＴ０を受け付ける（Ｓ６００）。次に、Ｓ６０１〜Ｓ６０３のステップで、夫々判定を行い、いずれかが、ｎｏと判定された場合は、割り込み要求を保留する（Ｓ６０５）。
【００４４】
次に、Ｓ６０１〜Ｓ６０３でいずれもｙｅｓと判定された場合は、割り込み要求回路４はＣＰＵに対して、割り込み要求信号ＩＮＴＲＱを出力し、ＣＰＵは割り込み要求を受け付けると、割り込み要求回路４に対し、割り込み許可信号ＩＮＴＡＫを返す（Ｓ６０４）。このＩＮＴＡＫが出力されたタイミングから、割り込み前処理の区間が開始される。また、割り込み待ちの区間は、このタイミングで終了する。
【００４５】
次に、Ｓ６０４で、ＣＰＵは、ＩＮＴＡＫ信号を出力した後、ＭＮＩ処理或いはＩＮＴ処理が実行中であるか否かを判別し、実行中であれば、割り込み要求を保留する（Ｓ６０６、Ｓ６０７、Ｓ６０９）。一方、実行中でなければ、復帰ＰＣ（プログラムカウンタ）の退避、ＰＳＷ（プログラムステータスワード）の退避、割り込みマスクの処理、及びＰＣをハンドラアドレスとする処理を行う（Ｓ６０８）。次に、割り込み処理本体が開始される（Ｓ６１０）。ここでは、この割り込み処理本体開始のタイミングで、ＣＰＵは、割り込み処理本体の開始信号ＩＮＴＳＲＴを出力する。そして、割り込み前処理の区間は、ＩＮＴＳＲＴを出力されたタイミングで終了する。以上のように、ＣＰＵは割り込み待ち及び割り込み前処理の区間において、割り込み処理を実行しながら、割り込みの遷移の時間計測に必要な割り込み処理ステータス情報に関する信号（ここでは、ＩＮＴ０、ＩＮＴＡＫ、ＩＮＴＳＲＴ）を処理していることが分かる。
【００４６】
次に、図９は、割り込み後処理を示すフローチャートである。図９を参照して、割り込み後処理の区間の動作について説明する。割り込み処理本体のプログラムの最後には、図６の右図に示すように、ＲＥＴＩ命令（Ｒｅｔｒｕｎ  ｆｒｏｍ  Ｉｎｔｅｒｒｕｐｔ）が書き込まれている。この命令が実行されると、ＣＰＵは割り込み処理本体の終了信号ＩＮＴＥＮＤを出力する（Ｓ７００）。そして、ＩＮＴＥＮＤが出力されたタイミングから、割り込み後処理の区間が開始される。
【００４７】
次に、ＣＰＵはＰＣの復帰及びＰＳＷの復帰を行う（Ｓ７０１）。次に、割り込み診断を行っているか否かを判別し（Ｓ７０２）、Ｓ７０２でｙｅｓと判別された場合には、必要に応じ、各種ステータス情報の読み出し／格納を行う（Ｓ７０４）。一方、Ｓ７０２でｎｏと判別された場合は、Ｓ７０４のステータス情報の読み出し／格納は行われない。
【００４８】
次に、ＣＰＵは、割り込み前のプログラムへの復帰信号ＰＲＧＳＲＴを出力し、元の処理（割り込み処理前のプログラム）に復帰する（Ｓ７０３）。具体的には、割り込み処理が、メインプログラム動作中に発生した単一の割り込みである場合には、メインプログラムに復帰する。そして、割り込み後処理の区間は、ＰＲＧＳＲＴが出力されたタイミングで終了する。以上のように、ＣＰＵは割り込み後処理の区間において、割り込み処理を実行しながら、割り込みの遷移の時間計測に必要な割り込み処理ステータス情報に関する信号（ここでは、ＩＮＴＥＮＤ、ＰＲＧＳＲＴ）を処理していることが分かる。
【００４９】
実際の各区間の実行時間Ｔ８０、Ｔ８１、Ｔ８２、Ｔ８３は、式（１）〜（４）により算出される。これらの式におけるＣＬＫ周期は、図２のタイマ回路１２に供給されるＣＬＫの周期である。また、ＣＯＵＮＴ＿０、ＣＯＵＮＴ＿１、ＣＯＵＮＴ＿２、ＣＯＵＮＴ＿３、ＣＯＵＮＴ＿４は、上述した説明において、夫々、ＩＮＴ０、ＩＮＴＡＫ、ＩＮＴＳＲＴ、ＩＮＴＥＮＤ、ＰＲＧＳＲＴがアクティブになった時点で発生されたトリガ信号Ｓ１により取り込まれたタイマ９０のカウント値である。
【００５０】
Ｔ８０＝（ＣＯＵＮＴ＿１−ＣＯＵＮＴ＿０）＊ＣＬＫ周期    式（１）
Ｔ８１＝（ＣＯＵＮＴ＿２−ＣＯＵＮＴ＿１）＊ＣＬＫ周期    式（２）
Ｔ８２＝（ＣＯＵＮＴ＿３−ＣＯＵＮＴ＿２）＊ＣＬＫ周期    式（３）
Ｔ８３＝（ＣＯＵＮＴ＿４−ＣＯＵＮＴ＿３）＊ＣＬＫ周期    式（４）
【００５１】
以上により、単一の割り込みに対し、割り込み処理の実行と同時に、割り込み処理ステータス情報の夫々がアクティブになるタイミングでの時間計測が行われ、その後、割り込み処理の各区間の実行時間を算出することができる。
【００５２】
次に、第１の実施形態の割り込み回路によれば、図７のような単一の割り込みだけでなく、多重割り込みにも対応でき、その動作について以下に説明する。図３は、第１の実施形態に係る割り込み回路による多重割り込み処理の一例のフローチャートである。図３は、多重割り込みとして、外部割り込みＩＮＴ０の処理中に、ＩＮＴ０よりも優先度の高い外部割込みＩＮＴ１の割り込み要求があった場合を想定している。以下に、図３を参照しながら、多重割り込みの割り込み処理を行いながら同時に、割り込み処理の遷移の時間計測を行う動作について、説明する。
【００５３】
まず、メインプログラムの冒頭で割り込み回路の初期化動作を行う。具体的には、制御レジスタ５及び拡張レジスタ７で割り込み処理の動作条件と割り込み処理の実行時間測定条件を設定する。具体的には、図３に示す時刻（ａ）〜（ｊ）のタイミングに関連した割り込み処理ステータス情報を拡張レジスタ７に設定する。
【００５４】
具体的には、時刻（ａ）はＩＮＴ０入力がアクティブとなるタイミング、時刻（ｂ）は割り込みＩＮＴ０のＩＮＴＡＫがアクティブとなるタイミング、時刻（ｃ）は割り込みＩＮＴ０のＩＮＴＳＲＴがアクティブとなるタイミング、時刻（ｄ）は割り込みＩＮＴ０のＩＮＴＥＮＤがアクティブとなるタイミング、時刻（ｅ）は割り込みＩＮＴ０のＰＲＧＳＲＴがアクティブとなるタイミングである。
【００５５】
また、時刻（ｆ）はＩＮＴ１入力がアクティブとなるタイミング、時刻（ｇ）は割り込みＩＮＴ１のＩＮＴＡＫがアクティブとなるタイミング、時刻（ｈ）は割り込みＩＮＴ１のＩＮＴＳＲＴがアクティブとなるタイミング、時刻（ｉ）は割り込みＩＮＴ１のＩＮＴＥＮＤがアクティブとなるタイミング、時刻（ｊ）は割り込みＩＮＴ１のＰＲＧＳＲＴがアクティブとなるタイミングである。
【００５６】
また、図３におけるＴ１００は割り込みＩＮＴ０の割り込み待ち時間、Ｔ１０１は割り込みＩＮＴ０の割り込み前処理の時間、Ｔ１０２は割り込みＩＮＴ０の割り込み処理本体の時間、Ｔ１０３は割り込みＩＮＴ０の割り込み後処理の時間である。また、Ｔ１０４は割り込みＩＮＴ１の割り込み待ち時間、Ｔ１０５は割り込みＩＮＴ１の割り込み前処理の時間、Ｔ１０６は割り込みＩＮＴ１の割り込み処理本体の時間、Ｔ１０７は割り込みのＩＮＴ１割り込み後処理の時間である。
【００５７】
初期化が終了した後、外部からの割り込み要求ＩＮＴ０信号が入力されると、割り込み入力回路３０は、ＩＮＴ０信号を割り込み要求として受け付け、割り込み選択回路１及び割り込み監視回路１１に出力する。そして、割り込み選択回路１は、ＩＮＴ０レベルの割り込み要求として、割り込み制御回路２に出力する。また、割り込み監視回路１１は、割り込み入力回路３０からの出力がアクティブになると、時刻（ａ）にトリガ信号Ｓ１（図１、２）をタイマ回路１２に出力し、タイマ９０のカウント値ＣＯＵＮＴ＿Ａをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、内部メモリ３２に格納された時間計測の結果の一例を示す。時刻（ａ）のタイミングで取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ａが、割り込み種類情報ＩＮＴ０と共に、格納されているのが分かる（図５の下から１、２行目）。
【００５８】
ここで、割り込み種類情報の内容は、最低限、受け付けた割り込み要求の種類に関する情報（ＩＮＴ０、ＩＮＴ１等）を含んでいることが必要である。また、各々のカウント値が、割り込み処理ステータス情報のいずれに対応しているかは、同じ割り込み種類情報のカウント値が、ＩＮＴ０／ＩＮＴ１→ＩＮＴＡＫ→ＩＮＴＳＲＴ→ＩＮＴＥＮＤ→ＰＲＧＳＲＴの順に格納されるので、同じ割り込み種類情報のカウント値を順番に、上記の順に割り当てることにより、知ることができる。また、割り込み種類情報と共に、割り込み処理ステータス情報の内容を併せて格納するようにしてもよく、その場合は、上記した割り当てによる推定は不要である。
【００５９】
次に、図１において、割り込み制御回路２は、他の割り込み入力やマスクレジスタ３の状態から有効な割り込み入力の選択を行う。割り込み制御回路２がＩＮＴ０レベルの割り込みを受け付けると、有効な割り込み入力があることを割り込み要求回路４に通知する。割り込み要求回路４は、入力がアクティブになると、ＣＰＵに対する割り込み要求信号ＩＮＴＲＱ信号を出力する。割り込み要求回路４は、ＣＰＵからの割り込み許可信号ＩＮＴＡＫ信号がアクティブになると、ＩＮＴ０レベルに対する割り込みが許可されたことを割り込み制御回路２に通知して、実際の割り込み処理を開始させる。具体的には、割り込み制御回路２がハンドラアドレス生成回路６に、ＩＮＴ０レベルの割り込みが選択されたことを通知して、ハンドラアドレスを生成させ、ＣＰＵに出力させる。
【００６０】
次に、ＣＰＵにハンドラアドレス１００００Ｈが入力されると、ＣＰＵはメインプログラムの処理を中断して、ハンドラアドレスからの命令の実行を開始する。これにより、割り込みＩＮＴ０の割り込み前処理が開始される。割り込み監視回路１１は、ＩＮＴＡＫがアクティブになった時点で、時刻（ｂ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ９０のカウント値ＣＯＵＮＴ＿Ｂをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｂ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｂが、割り込み種類情報ＩＮＴ０と共に、格納されているのが分かる（図５の下から３、４行目）。
【００６１】
割り込みＩＮＴ０の割り込み前処理が終了すると、割り込みＩＮＴ０の割り込み処理本体が開始される。ここでは、割り込み監視回路１１は、ＩＮＴＳＲＴがアクティブになった時点で、時刻（ｃ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ９０のカウント値ＣＯＵＮＴ＿Ｃをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｃ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｃが、割り込み種類情報ＩＮＴ０と共に、格納されているのが分かる（図５の下から５、６行目）。
【００６２】
割り込みＩＮＴ０の割り込み処理本体の処理中に、割り込みＩＮＴ０よりも優先度の高い割り込み要求ＩＮＴ１を外部から受けると、割り込み入力回路３０は、ＩＮＴ１信号を割り込み要求として受け付け、割り込み選択回路１及び割り込み監視回路１１に出力する。そして、割り込み選択回路１は、ＩＮＴ１信号が入力されると、ＩＮＴ１レベルの割り込み要求として、割り込み制御回路２に出力する。ここでは、割り込み監視回路１１は、割り込み入力回路３０からの出力がアクティブになった時点で、時刻（ｆ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ９０のカウント値ＣＯＵＮＴ＿Ｆをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｆ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｆが、割り込み種類情報ＩＮＴ０と共に、格納されているのが分かる（図５の下から７、８行目）。但し、この時点では、未だＣＰＵは割り込みＩＮＴ１の許可を出しておらず、ＣＰＵは割り込みＩＮＴ０の割り込み処理本体の処理を続けている。
【００６３】
次に、割り込み制御回路２は、他の割り込み入力やマスクレジスタ３の状態から有効な割り込み入力の選択を行う。割り込み制御回路２がＩＮＴ１レベルの割り込みを受け付けると、有効な割り込み入力があることを割り込み要求回路４に通知する。割り込み要求回路４は、入力がアクティブになると、ＣＰＵに対する割り込み要求信号ＩＮＴＲＱ信号を出力する。ＣＰＵは、割り込み要求回路４に割り込みＩＮＴ１の割り込みを許可する割り込み許可信号ＩＮＴＡＫ信号を返す。ここでは、割り込み監視回路１１は、ＣＰＵからの割り込み許可信号ＩＮＴＡＫ信号がアクティブになった時点で、時刻（ｇ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ９０のカウント値ＣＯＵＮＴ＿Ｇをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｇ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｇが、割り込み種類情報ＩＮＴ１と共に、格納されているのが分かる（図５の下から９、１０行目）。
【００６４】
また、ＩＮＴ１レベルに対する割り込みが許可されたことが割り込み制御回路２に通知され、実際の割り込み処理が開始させる。具体的には、割り込み制御回路２がハンドラアドレス生成回路６に、ＩＮＴ１レベルの割り込みが選択されたことを通知してハンドラアドレス１０１００Ｈ（図１０）を生成させ、ＣＰＵに出力させる。そして、ＣＰＵはハンドラアドレス１０１００Ｈからの実行を開始し、割り込みＩＮＴ１の割り込み前処理が行われる。
【００６５】
割り込みＩＮＴ１の割り込み前処理が終了すると、続いて割り込みＩＮＴ１の割り込み処理本体の処理が開始される。ここでは、割り込み監視回路１１は、ＣＰＵからのＩＮＴＳＲＴがアクティブになった時点で、時刻（ｈ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ回路９０のカウント値ＣＯＵＮＴ＿Ｈをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｈ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｈが、割り込み種類情報ＩＮＴ１と共に、格納されているのが分かる（図５の下から１１、１２行目）。
【００６６】
割り込みＩＮＴ１の割り込み処理本体が終了すると、続いて割り込みＩＮＴ１の割り込み後処理が開始される。ここでは、割り込み監視回路１１は、ＣＰＵからのＩＮＴＥＮＤがアクティブになった時点で、時刻（ｉ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ回路９０のカウント値ＣＯＵＮＴ＿Ｉをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｉ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｉが、割り込み種類情報ＩＮＴ１と共に、格納されているのが分かる（図５の下から１３、１４行目）。
【００６７】
割り込みＩＮＴ１の割り込み後処理が終了するとＲＥＴＩ命令の実行により、割り込みＩＮＴ１の処理前のプログラムに復帰する。具体的には、割り込みＩＮＴ０の割り込み処理本体に復帰する。ここでは、割り込み監視回路１１は、ＣＰＵからのＰＲＧＳＲＴがアクティブになった時点で、時刻（ｊ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ回路９０のカウント値ＣＯＵＮＴ＿Ｊをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｊ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｊが、割り込み種類情報ＩＮＴ１と共に、格納されているのが分かる（図５の下から１５、１６行目）。
【００６８】
次に、割り込みＩＮＴ０の割り込み処理本体の処理へ復帰後、割り込みＩＮＴ０の割り込み処理本体の処理が再開された後、処理が終了すると、続いて割り込みＩＮＴ０の割り込み後処理が開始される。ここでは、割り込み監視回路１１は、ＣＰＵからのＩＮＴＥＮＤがアクティブになった時点で、時刻（ｄ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ回路９０のカウント値ＣＯＵＮＴ＿Ｄをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｄ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｄが、割り込み種類情報ＩＮＴ０と共に、格納されているのが分かる（図５の下から１７、１８行目）。
【００６９】
次に、割り込みＩＮＴ０の割り込み後処理が終了するとＲＥＴＩ命令の実行により、割り込みＩＮＴ０前のプログラムに復帰する。具体的には、メインプログラムの処理に復帰する。ここでは、割り込み監視回路１１は、ＣＰＵからのＰＲＧＳＲＴがアクティブになった時点で、時刻（ｅ）にトリガ信号Ｓ１をタイマ回路１２に出力し、タイマ９０のカウント値ＣＯＵＮＴ＿Ｅをキャプチャレジスタ９１に取り込み、その直後に割り込み種類情報３４と共に内部メモリ３２へ転送する。図５に、時刻（ｅ）で取り込まれたタイマのカウント値ＣＯＵＮＴ＿Ｅが、割り込み種類情報ＩＮＴ０と共に、格納されているのが分かる（図５の下から１９、２０行目）。以上のようにして、割り込み処理の実行と同時に、割り込み種類ごとに、割り込み処理ステータス情報で設定したタイミングごとのタイマ９０のカウント値が内部メモリ３２に取り込まれる。
【００７０】
割り込み種類ごとの各区間の実行時間は、割り込みのデバッガにより算出される。ここで、割り込みのデバッガは、内部メモリ３２のデータを読み込んで、割り込み種類ごとの各区間の実行時間を算出する機能を有するプログラムである。また、割り込みのデバッガは、割り込み処理ステータス情報を拡張レジスタ７に設定する機能を有するようにしてもよい。例えば、割り込みデバッガにより、割り込み処理ステータス情報としてＩＮＴ入力、ＩＮＴＡＫ、ＩＮＴＳＲＴ、ＩＮＴＥＮＤ、ＰＲＧＳＲＴを拡張レジスタ７に設定すると、図５に示すように内部メモリへのデータの格納が行われる。また、例えば、割り込み処理本体の実行時間のみを算出したい場合には、ＩＮＴＳＲＴ、ＩＮＴＥＮＤのみを拡張レジスタ７に設定すればよく、その場合、ＩＮＴＳＲＴ、ＩＮＴＥＮＤがアクティブになるタイミングのタイマ９０のカウント値のみが取り込まれる。
【００７１】
次に、割り込みのデバッガで、図３の各区間の実行時間を算出する方法について説明する。まず、図５の割り込み種類情報を参照することにより、割り込みＩＮＴ０の時刻（ｃ）〜（ｄ）の処理中に、割り込みＩＮＴ１を受け付けて、割り込みＩＮＴ１を優先して処理したことがわかる。
【００７２】
まず、優先的に処理された割り込みＩＮＴ１に関する実行時間を算出する。割り込みＩＮＴ１の各区間の実行時間は、割り込み種類情報がＩＮＴ１であるタイマのカウント値から、式（５）〜（８）により、算出される。また、割り込みＩＮＴ１の割り込み処理全体の時間ＴＩＮＴ１は、式（９）または（１０）で算出される。
【００７３】
Ｔ１０４＝（ＣＯＵＮＴ＿Ｇ−ＣＯＵＮＴ＿Ｆ）＊ＣＬＫ周期      式（５）
Ｔ１０５＝（ＣＯＵＮＴ＿Ｈ−ＣＯＵＮＴ＿Ｇ）＊ＣＬＫ周期      式（６）
Ｔ１０６＝（ＣＯＵＮＴ＿Ｉ−ＣＯＵＮＴ＿Ｈ）＊ＣＬＫ周期      式（７）
Ｔ１０７＝（ＣＯＵＮＴ＿Ｊ−ＣＯＵＮＴ＿Ｉ）＊ＣＬＫ周期      式（８）
ＴＩＮＴ１＝（ＣＯＵＮＴ＿Ｊ−ＣＯＵＮＴ＿Ｆ）＊ＣＬＫ周期    式（９）
または、
ＴＩＮＴ１＝Ｔ１０４＋Ｔ１０５＋Ｔ１０６＋Ｔ１０７            式（１０）
【００７４】
次に、割り込みＩＮＴ０に関する実行時間を算出する。多重割り込みが生じていない区間（時刻（ａ）〜（ｂ）、時刻（ｂ）〜（ｃ）、時刻（ｄ）〜（ｅ））の実行時間は、割り込み種類情報がＩＮＴ０のタイマのカウント値のみから、式（１１）〜（１３）により、算出される。一方、多重割り込みが発生している区間（時刻（ｃ）〜（ｄ））の実行時間は、式（１４）に示すように、割り込みＩＮＴ１が許可されて割り込みＩＮＴ１の割り込み後処理が完了するまでの期間（時刻（ｇ）〜（ｊ））の実行時間を差し引くことにより、算出することができる。また、割り込みＩＮＴ０の割り込み処理全体の時間ＴＩＮＴ０も、同様に、同じ時間を差し引くことにより、式（１５）または（１６）で算出される。ここで、式（５）〜（１６）の算出は、上述した割り込みのデバッガにより行われる。
【００７５】
Ｔ１００＝（ＣＯＵＮＴ＿Ｂ−ＣＯＵＮＴ＿Ａ）＊ＣＬＫ周期      式（１１）
Ｔ１０１＝（ＣＯＵＮＴ＿Ｃ−ＣＯＵＮＴ＿Ｂ）＊ＣＬＫ周期      式（１２）
Ｔ１０３＝（ＣＯＵＮＴ＿Ｅ−ＣＯＵＮＴ＿Ｄ）＊ＣＬＫ周期      式（１３）
Ｔ１０２＝（（ＣＯＵＮＴ＿Ｄ−ＣＯＵＮＴ＿Ｃ）
−（ＣＯＵＮＴ＿Ｊ−ＣＯＵＮＴ＿Ｇ））＊ＣＬＫ周期  式（１４）
ＴＩＮＴ０＝（（ＣＯＵＮＴ＿Ｅ−ＣＯＵＮＴ＿Ａ）
−（ＣＯＵＮＴ＿Ｊ−ＣＯＵＮＴ＿Ｇ））＊ＣＬＫ周期  式（１５）
または、
ＴＩＮＴ０＝Ｔ１００＋Ｔ１０１＋Ｔ１０２＋Ｔ１０３
−（Ｔ１０５+Ｔ１０６＋Ｔ１０７）                  式（１６）
【００７６】
図３では、割り込みＩＮＴ０の処理中に、優先度の高い割り込みＩＮＴ１を受け付けた場合について例示したが、それに限定されない。まず、第１の実施形態による割り込み回路は、複数の割り込みの発生に対しても、相互のタイミング関係も含めて測定することが可能である。例えば、「割り込み１」の後に「割り込み２」が発生した場合、割り込み１と割り込み２の相互のタイミング関係も含めて測定することが可能である。また、多重割り込みについても、図３のような場合に限定されず、任意パターンの多重割り込みに対して、割り込み種類ごとに各区間の実行時間を算出することができる。このように、第１の実施形態による割り込み回路によれば、複数の割り込みや多重割り込みを含んだ任意の割り込みに対して、割り込みの遷移の時間計測を行い、割り込みごとに、各区間の実行時間を算出することが可能である。
【００７７】
以上説明したように、第１の実施形態の割り込み回路によれば、タイマ９０のリセットは、ブレーク時のみ（例えば、図６の初期化後のみ）に行い、タイマ９０のカウント値を割り込み種類情報と併せて内部メモリ３２に、随時、転送して格納するようにしたから、複数の割り込みの相互のタイミング関係を含めた時間計測を行うことが可能になるという効果が得られる。
【００７８】
また、第１の実施形態の割り込み回路によれば、多重割り込みが発生した場合でも、割り込み種類ごとに、割り込み処理の遷移の時間計測を行うことができるという効果が得られる。
【００７９】
また、第１の実施形態の割り込み回路では、図２に示すように、単一のキャプチャレジスタのみで構成することが可能である。また、従来技術の格納レジスタ１０も不要になり、小チップ化、低チップコストが実現可能であるという効果が得られる。
【００８０】
また、第１の実施形態の割り込み回路における割り込み処理方法によれば、複数の割り込みや多重割り込みに対しても、相互のタイミング関係を含めて割り込みの遷移の時間計測を行うことができるという効果が得られる。また、それにより、割り込みごとに各区間の割り込み処理の実行時間を算出することができるという効果が得られる。
【産業上の利用可能性】
【００８１】
本発明の割り込み回路によれば、インサーキットエミュレータを使用せずに、マイクロコンピュータに内蔵した割り込みデバッグ機能により、割り込み処理のプログラムデバッグを行うことが可能である。特に、インバータ制御などにおいて、ｎｓ（ナノ秒）オーダでの処理や多重割り込みを多く使用するプログラムをデバッグする場合に有効である。
【００８２】
なお、本発明の全開示（請求の範囲及び図面を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲及び図面を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００８３】
１：割り込み選択回路
２：割り込み制御回路
３：マスクレジスタ
４：割り込み要求回路
５：制御レジスタ
６：ハンドラアドレス生成回路
７：拡張レジスタ
８：割り込み診断回路
９、１２：タイマ回路
１０：格納レジスタ
１１：割り込み監視回路
２０、９０：タイマ
２１、２１ａ、２１ｂ、２１ｃ、２１ｄ、２１ｅ、９１：キャプチャレジスタ
３０：割り込み入力回路
３２：内部メモリ
３３：内部バス
３４：割り込み種類情報
【図１】
2013105388.tif 000003
【図２】
2013105388.tif 000004
【図３】
2013105388.tif 000005
【図４】
2013105388.tif 000006
【図５】
2013105388.tif 000007
【図６】
2013105388.tif 000008
【図７】
2013105388.tif 000009
【図８】
2013105388.tif 000010
【図９】
2013105388.tif 000011
【図１０】
2013105388.tif 000012
【図１１】
2013105388.tif 000013
【図１２】
2013105388.tif 000014
【図１３】
2013105388.tif 000015