(57)【要約】【課題】複数の割り込み信号を多重してＣＰＵコアに通知する多重割り込み処理装置において、リアルタイム性を損なわずにＣＰＵコアに割り込み処理を実行させること。【解決手段】割り込み処理部１１は、ＣＰＵコア６が割り込み処理プログラムを実行している途中で、他の割り込み要因による割り込みが発生した場合、実行中の割り込み処理プログラムの終了時に出力されるリターン命令を分岐命令に変換してＣＰＵコア６に出力する。ＣＰＵコア６は、その分岐命令を実行することによって、通常処理に戻ることなく、割り込み処理プログラムの実行中に発生した他の割り込み要因に対応する割り込み処理プログラムを実行する。一方、割り込み処理部１１は、リターン命令の出力時に他の割り込み要因による割り込みが発生していない場合、ＣＰＵコア６にリターン命令を出力する。ＣＰＵコア６は、そのリターン命令を実行して通常処理に戻る。【選択図】図１
2009288978.tif 000002
【特許請求の範囲】
【請求項１】
複数の割り込み信号を多重してＣＰＵコアに通知する多重割り込み処理装置において、
割り込み処理から通常処理に戻るリターン命令を検出し、前記リターン命令の検出時に他の割り込み要因による割り込みがある場合に前記リターン命令を前記他の割り込み要因に対応する割り込み処理プログラムへ分岐する分岐命令に変換し、前記分岐命令を前記ＣＰＵコアへ出力するリターン検出部、を備えることを特徴とする多重割り込み処理装置。
【請求項２】
割り込み発生時に、前記ＣＰＵコアがアクセスするアドレス空間を、割り込み要因に対応する割り込み処理プログラムのアドレス空間に変換するアドレス変換部、をさらに備えることを特徴とする請求項１に記載の多重割り込み処理装置。
【請求項３】
割り込み要因による割り込み発生時に出力される複数の割り込み信号に基づいて、割り込みの発生を前記リターン検出部へ通知するとともに、割り込みを発生させた割り込み要因を前記アドレス変換部へ通知する割り込み検出部、をさらに備えることを特徴とする請求項２に記載の多重割り込み処理装置。
【請求項４】
複数の割り込み要因のそれぞれに対応する割り込み処理プログラムを格納するメモリ、をさらに備え、
前記メモリにおける、前記各割り込み処理プログラムの格納領域のサイズが同じであることを特徴とする請求項３に記載の多重割り込み処理装置。
【請求項５】
前記アドレス変換部は、前記各割り込み処理プログラムの格納領域のうちのいずれか一つの格納領域に対応するベースアドレスと、前記割り込み検出部から通知される割り込み要因と、前記割り込み処理プログラムの格納領域のサイズに基づいて、前記各割り込み処理プログラムの格納領域に対応するベースアドレスを割り出すことを特徴とする請求項４に記載の多重割り込み処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の割り込み信号を多重してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアに通知する多重割り込み処理装置に関する。
【背景技術】
【０００２】
従来、割り込み処理中の多重割り込み要求を処理可能な割り込み信号生成装置が公知である。この割り込み信号生成装置は、割り込み要因を緊急度等に応じてグループ化し、グループ単位で所定の割り込み信号を出力する。また、割り込み信号生成装置は、割り込み処理中は割り込み信号の出力を制限するとともに、割り込み処理中に割り込み処理要求があったときにはそれを記憶しておき、現在の割り込み処理の終了後に記憶した割り込み処理を実行する（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００２−５５８３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記特許文献１に開示された割り込み信号生成装置では、割り込み処理中に同一グループの別要因の割り込みが発生した場合には、その割り込みを記憶しておき、実行中の割り込み処理が終了して通常処理に戻った後に、再度割り込みが発生する。そのため、割り込みの発生と同時に割り込み処理を実行するというリアルタイム性が損なわれるという問題点がある。
【０００５】
この発明は、上述した従来技術による問題点を解消するため、リアルタイム性を損なわずにＣＰＵコアに割り込み処理を実行させることができる多重割り込み処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、この多重割り込み処理装置は、次のようなリターン検出部を備えることを要件とする。リターン検出部は、割り込み処理から通常処理に戻る際にメモリから読み出されるリターン命令を検出する。リターン検出部は、リターン命令を検出した場合、他の割り込み要因による割り込みが発生していれば、そのリターン命令を、その他の割り込み要因に対応する割り込み処理プログラムへ分岐する分岐命令に変換する。そして、リターン検出部は、その分岐命令をＣＰＵコアへ出力する。
【０００７】
また、多重割り込み処理装置は、アドレス変換部をさらに備えていてもよい。アドレス変換部は、割り込み発生時に、ＣＰＵコアがアクセスするアドレス空間を、割り込み要因に対応する割り込み処理プログラムのアドレス空間に変換する。
【０００８】
また、多重割り込み処理装置は、割り込み検出部をさらに備えていてもよい。割り込み検出部は、割り込み要因による割り込み発生時に出力される複数の割り込み信号に基づいて、割り込みが発生したことをリターン検出部へ通知する。また、割り込み検出部は、割り込みを発生させた割り込み要因をアドレス変換部へ通知する。
【０００９】
また、多重割り込み処理装置は、複数の割り込み要因のそれぞれに対応する割り込み処理プログラムを格納するメモリをさらに備えていてもよい。このメモリにおいて、各割り込み処理プログラムの格納領域のサイズが同じであるとよい。
【００１０】
また、多重割り込み処理装置において、アドレス変換部を次のようにしてもよい。例えば、アドレス変換部は、各割り込み処理プログラムの格納領域のうちのいずれか一つ、例えば前記メモリの先頭に格納されている割り込み処理プログラムの格納領域に対応するベースアドレスと、割り込み検出部から通知される割り込み要因と、割り込み処理プログラムの格納領域のサイズに基づいて、各割り込み処理プログラムの格納領域に対応するベースアドレスを割り出すようにしてもよい。
【００１１】
この多重割り込み処理装置によれば、実行中の割り込み処理プログラムのリターン命令が、その割り込み処理プログラムの実行中に発生した他の割り込み要因に対応する割り込み処理プログラムへ分岐する分岐命令に変換されるので、実行中の割り込み処理プログラムの終了時に、通常処理に戻らずに、連続して次の割り込み処理プログラムが実行される。
【発明の効果】
【００１２】
この多重割り込み処理装置によれば、リアルタイム性を損なわずにＣＰＵコアに割り込み処理を実行させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、この多重割り込み処理装置の好適な実施の形態を詳細に説明する。
【００１４】
（概略）
図１は、実施の形態にかかる多重割り込み処理装置の構成を示すブロック図である。図１に示すように、多重割り込み処理装置１は、ＣＰＵコア６が割り込み処理プログラムを実行している途中で、他の割り込み要因が発生した場合、実行中の割り込み処理プログラムの終了時に出力されるリターン命令を分岐命令に変換してＣＰＵコア６に出力する。ＣＰＵコア６は、その分岐命令を実行することによって、通常処理に戻ることなく、割り込み処理プログラムの実行中に発生した他の割り込み要因に対応する割り込み処理プログラムを実行する。一方、多重割り込み処理装置１は、リターン命令の出力時に他の割り込み要因からの割り込みが発生していない場合、ＣＰＵコア６にリターン命令を出力する。ＣＰＵコア６は、そのリターン命令を実行して通常処理に戻る。
【００１５】
（全体の構成）
多重割り込み処理装置１は、割り込み処理部１１および外部メモリ１２を備えている。割り込み処理部１１は、割り込み検出部２１、アドレスレジスタ２２、アドレス変換部２３およびリターン検出部２４を備えている。割り込み処理部１１には、例えば周辺機器としてペリフェラルＡ２、ペリフェラルＢ３、ペリフェラルＣ４およびペリフェラルＤ５が接続される。このように、同じ名称の機能部や装置などの構成については、名称の末尾に大文字のアルファベット（Ａ、Ｂ、Ｃなど）を付して区別する。また、多重割り込み処理装置１は、ＣＰＵコア６に接続される。
【００１６】
外部メモリ１２は、ペリフェラルＡ２、ペリフェラルＢ３、ペリフェラルＣ４およびペリフェラルＤ５からの割り込み発生時にそれぞれ実行される割り込み処理プログラムＡ、割り込み処理プログラムＢ、割り込み処理プログラムＣおよび割り込み処理プログラムＤを格納している。各割り込み処理プログラムの格納領域３１，３２，３３，３４は、実際のプログラムサイズに関係なく、同じサイズに固定されている。なお、多重割り込み処理装置１に接続される周辺機器の数および割り込み処理プログラムの数は、４個に限らない。
【００１７】
割り込み検出部２１は、ペリフェラルＡ２、ペリフェラルＢ３、ペリフェラルＣ４およびペリフェラルＤ５からそれぞれＰ１、Ｐ２、Ｐ３およびＰ４の割り込み信号を受信し、各ペリフェラルからの割り込みの発生を検出する。割り込み検出部２１は、いずれかのペリフェラルからの割り込み発生を検出すると、割り込み発生信号（図１では、発生信号）を出力してＣＰＵコア６およびリターン検出部２４に多重割り込みの発生を通知する。また、割り込み検出部２１は、割り込み発生を検出すると、アドレス変換部２３に、割り込みの発生元であるペリフェラルに対応する割り込み要因番号（図１では、要因番号）を通知する。割り込み検出部２１の構成については、後述する。
【００１８】
アドレスレジスタ２２は、外部メモリ１２に格納されている全割り込み処理プログラムのうち、基準となる割り込み処理プログラムの先頭アドレスの値を格納している。例えば、図１に示す例では、割り込み処理プログラムＡの格納領域３１の先頭アドレスの値がアドレスレジスタ２２に格納されている。
【００１９】
アドレス変換部２３は、割り込み検出部２１から通知される割り込み要因番号とアドレスレジスタ２２の先頭アドレスの値に基づいて、外部メモリ１２の、発生した割り込みに対応する割り込み処理プログラムが格納されたアドレス空間がＣＰＵコア６から見えるように、スイッチングを行なう。例えば、割り込みの発生元がペリフェラルＡ２である場合、アドレス変換部２３は、所定のアドレス空間の領域（仮想領域）２５のアドレス空間を割り込み処理プログラムＡの格納領域３１のアドレス空間に変換する。割り込みの発生元がペリフェラルＢ３、ペリフェラルＣ４またはペリフェラルＤ５である場合も同様である。
【００２０】
従って、いずれのペリフェラルから割り込みが発生しても、ＣＰＵコア６は、仮想領域２５にアクセスすることによって、対応する割り込み処理プログラムの格納領域にアクセすることができる。上述したように、各割り込み処理プログラムの格納領域３１，３２，３３，３４が同じサイズであるので、アドレス変換部２３は、その固定サイズとアドレスレジスタ２２の先頭アドレスの値と割り込み要因番号から、該当する割り込み処理プログラムの格納領域のアドレス空間を特定することができる。詳細には、先頭アドレスの値と割り込み要因番号から生成されるベースアドレスと、ＣＰＵコア６から通知されるオフセットアドレスに基づいて、割り込み処理プログラムの格納領域のアドレス空間が特定される。アドレス変換部２３の構成については、後述する。
【００２１】
リターン検出部２４は、外部メモリ１２から読み出された命令コードのデータを受け取り、そのデータがリターン命令のコードであるか否かを検出する。リターン検出部２４は、リターン命令のコードを受け取ると、別の割り込み要因によって割り込み検出部２１から割り込み発生信号が出力されているか否かを調べる。割り込み発生信号が出力されていない場合、すなわち別の割り込み要因による割り込みが発生していない場合、リターン検出部２４は、ＣＰＵコア６にリターン命令のコードをそのまま出力する。
【００２２】
一方、別の割り込み要因による割り込みが発生している場合、リターン検出部２４は、リターン命令のコードを前記仮想領域２５の先頭に分岐する分岐命令のコードに変更して、ＣＰＵコア６に出力する。また、別の割り込み要因による割り込みが発生している場合、リターン検出部２４は、アドレス変換部２３にリターン命令検出信号（図１では、リターン検出信号）を出力する。このリターン命令検出信号は、アドレス変換部２３がアドレス変換を行うか否かを制御する信号である。リターン検出部２４の構成については、後述する。
【００２３】
ＣＰＵコア６は、リターン検出部２４から前記分岐命令のコードを受け取ると、その分岐命令を実行する。それによって、ＣＰＵコア６は、通常処理に戻ることなく、仮想領域２５に見える次の割り込み処理プログラムを実行する。一方、ＣＰＵコア６は、リターン検出部２４からリターン命令のコードを受け取ると、そのリターン命令を実行して通常処理に戻る。
【００２４】
（割り込み検出部の構成）
図２は、割り込み検出部の構成を示すブロック図である。図２に示すように、割り込み検出部２１は、オア（ＯＲ）回路４１およびデコーダ４２を備えている。オア回路４１は、ペリフェラルＡ２からの割り込み信号Ｐ１、ペリフェラルＢ３からの割り込み信号Ｐ２、ペリフェラルＣ４からの割り込み信号Ｐ３およびペリフェラルＤ５からの割り込み信号Ｐ４を入力とし、これらの論理和を割り込み発生信号として出力する。デコーダ４２は、ペリフェラルＡ２からの割り込み信号Ｐ１、ペリフェラルＢ３からの割り込み信号Ｐ２、ペリフェラルＣ４からの割り込み信号Ｐ３およびペリフェラルＤ５からの割り込み信号Ｐ４を入力とし、これらをデコードして割り込み要因番号を出力する。割り込み要因番号は、例えば図２に［１：０］で示すように、２ビットのデータである。
【００２５】
（アドレス変換部の構成）
図３は、アドレス変換部の構成を示すブロック図である。図３に示すように、アドレス変換部２３は、ベースアドレス生成部５１および生成部５２を備えている。ベースアドレス生成部５１は、マルチプレクサＡ（ＭＵＸ＿Ａ）５３およびルックアップテーブル（ＬＵＴ）５４を備えている。生成部５２は、マルチプレクサＢ（ＭＵＸ＿Ｂ）５５を備えている。
【００２６】
マルチプレクサＡ５３は、前記デコーダ４２から与えられる割り込み要因番号と、アドレスレジスタ２２の先頭アドレスの値に基づいて、割り込み要因番号に対応するデータを出力する。アドレスレジスタ２２の先頭アドレスの値は、例えば図３に［５：０］で示すように、６ビットのデータである。割り込み要因番号に対応するデータは、例えば図３に［７：０］で示すように、８ビットのデータである。
【００２７】
ルックアップテーブル５４は、マルチプレクサＡ５３の出力データに基づいて、割り込み要因番号に対応する割り込み処理プログラムのベースアドレスを生成する。ベースアドレスは、例えば図３に［７：０］で示すように、８ビットのデータである。また、ルックアップテーブル５４のイネーブル端子ＥＮには、前記リターン命令検出信号が入力する。ルックアップテーブル５４は、リターン命令検出信号が入力されると、そのときの入力データに基づいてベースアドレスを生成する。ルックアップテーブル５４は、リターン命令検出信号が入力されないときには、入力データが変化してもベースアドレスを変更しない。ここで、リターン命令検出信号が入力または出力されるとは、リターン命令検出信号がアサートであることを意味し、リターン命令検出信号が入力または出力されないとは、リターン命令検出信号がネゲートであることを意味する。
【００２８】
マルチプレクサＢ５５は、ルックアップテーブル５４から与えられるベースアドレスと、ＣＰＵコア６から与えられるオフセットアドレスを加算して、割り込み要因番号に対応する割り込み処理プログラムが格納されたメモリ領域のアドレスを生成する。生成されたアドレスは、外部メモリ１２に接続されたメモリアドレスバスに出力される。オフセットアドレスは、例えば図３に［７：０］で示すように、８ビットのデータである。マルチプレクサＢ５５から出力されるアドレスは、例えば図３に［１５：０］で示すように、１６ビットのデータである。
【００２９】
（リターン検出部の構成）
図４は、リターン検出部の構成を示すブロック図である。図４に示すように、リターン検出部２４は、命令変換部６１および比較部６２を備えている。命令変換部６１は、セレクタ（ＳＥＬ）６３およびアンド（ＡＮＤ）回路６４を備えている。比較部６２は、比較器６５を備えている。
【００３０】
比較器６５は、外部メモリ１２からの読み出しデータを、リターン命令のコード（図４では、リターンコード）と比較する。リターン命令のコードは、固定値である。比較器６５は、その比較の結果、両者が一致すると、リターン命令検出信号を出力する。アンド回路６４は、リターン命令検出信号および前記オア回路４１から与えられる割り込み発生信号を入力とし、これらの論理積を選択信号として出力する。
【００３１】
選択信号は、例えば、外部メモリ１２からリターン命令のコードが読み出され、かつ他の割り込み要因による割り込みが発生している場合に"１"であり、それ以外の場合には"０"である。セレクタ６３は、選択信号が"１"であるときに、分岐命令のコード（図４では、分岐コード）を出力データとする。一方、セレクタ６３は、選択信号が"０"であるときに、外部メモリ１２からの読み出しデータをそのまま出力データとする。セレクタ６３の出力データは、ＣＰＵコア６へ供給される。
【００３２】
（動作の説明−フローチャート）
図５は、実施の形態にかかる多重割り込み処理装置の動作を説明するフローチャートである。図５に示すように、いずれかのペリフェラルから割り込みが発生すると、割り込み検出部２１は、そのペリフェラルから割り込み信号を受信する（ステップＳ１）。そして、割り込み検出部２１は、ＣＰＵコア６へ割り込み発生信号を出力し、アドレス変換部２３へ対応する割り込み要因番号を出力する（ステップＳ２）。
【００３３】
次いで、アドレス変換部２３は、その割り込み要因番号とアドレスレジスタ２２の先頭アドレスの値に基づいて、外部メモリ１２の、対応する割り込み処理プログラムの格納領域のベースアドレスを設定する（ステップＳ３）。そして、アドレス変換部２３は、そのベースアドレスとＣＰＵコア６から与えられるオフセットアドレスに基づいて、外部メモリ１２の、対応する割り込み処理プログラムの格納領域のアドレスを生成する。
【００３４】
ＣＰＵコア６は、前記仮想領域２５のアドレス空間にアクセスするが、実際には、外部メモリ１２の、アドレス変換部２３により生成されたアドレスにより特定されるアドレス空間の割り込み処理プログラムを読み出すことになる（ステップＳ４）。外部メモリ１２から読み出された命令のコードは、リターン検出部２４において、リターン命令のコードであるか否か判断される（ステップＳ５）。リターン命令のコードでない場合（ステップＳ５：Ｎｏ）、リターン検出部２４は、ＣＰＵコア６へ、外部メモリ１２から読み出された命令のコードを出力する（ステップＳ６）。ＣＰＵコア６は、ステップＳ６で出力された命令のコードを実行し（ステップＳ７）、ステップＳ４に戻る。
【００３５】
ステップＳ４に戻ると、再び、ステップＳ３で設定されたベースアドレスと、ＣＰＵコア６から新たに与えられるオフセットアドレスに基づいて、ＣＰＵコア６は、外部メモリ１２から次の命令のコードを読み出す。そして、ステップＳ５で、読み出された命令のコードがリターン命令のコードであるか否か判断される。ステップＳ５でリターン命令のコードが読み出されるまで、上述したステップＳ４〜ステップＳ７の処理が繰り返される。この間、リターン検出部２４からリターン命令検出信号が出力されない（リターン命令検出信号がネゲートである）ので、ステップＳ３で設定されたベースアドレスは変化しない。
【００３６】
ステップＳ５でリターン命令のコードが読み出されると（ステップＳ５：Ｙｅｓ）、リターン検出部２４により、ここまでの割り込み処理中に他の割り込み要因による割り込みが発生しているか否かが判断される（ステップＳ８）。また、リターン検出部２４からアドレス変換部２３へリターン命令検出信号が出力される（リターン命令検出信号がアサートになる）。他の割り込み要因による割り込みが発生している場合（ステップＳ８：Ｙｅｓ）、アドレス変換部２３には、その割り込み要因に対応する割り込み要因番号が通知されている。
【００３７】
従って、アドレス変換部２３は、その割り込み要因番号とアドレスレジスタ２２の先頭アドレスの値に基づいて、ステップＳ３で設定されたベースアドレスを、外部メモリ１２の、対応する割り込み処理プログラムの格納領域のベースアドレスに変更する（ステップＳ９）。そして、リターン検出部２４は、リターン命令のコードを前記仮想領域２５の先頭に分岐する分岐命令のコードに変更し、ＣＰＵコア６へその分岐命令のコードを出力する（ステップＳ１０）。ＣＰＵコア６は、その分岐命令のコードを実行し（ステップＳ１１）、ステップＳ４に戻る。
【００３８】
ステップＳ４に戻ると、他の割り込み要因による割り込みが発生していない状態でリターン命令のコードが読み出されるまで、上述したステップＳ４〜ステップＳ１１の処理が繰り返される。この間、ステップＳ９で変更されたベースアドレスは、再びステップＳ９において、対応する割り込み処理プログラムの格納領域のベースアドレスに変更される。リターン命令のコードが読み出され、かつ他の割り込み要因による割り込みが発生していない状態になると（ステップＳ８：Ｎｏ）、リターン検出部２４は、ステップＳ４で読み出されたリターン命令のコードをＣＰＵコア６へ出力する（ステップＳ１２）。ＣＰＵコア６は、そのリターン命令のコードを実行し、一連の多重割り込み処理を終了する（ステップＳ１３）。
【００３９】
（動作の説明−タイミングチャート）
図６は、実施の形態にかかる多重割り込み処理装置の動作を説明するタイミングチャートである。ここでは、ＣＰＵコア６が通常処理を実行している途中でペリフェラルＢ３から割り込みが発生し、ＣＰＵコア６がその割り込み処理を実行している途中でさらにペリフェラルＡ２から割り込みが発生した場合を例にして説明する。図６において、上段のチャートは、実施の形態にかかる多重割り込み処理装置１の動作タイミングを示しており、下段のチャートは、同じ時間軸で比較した場合の一般的な多重割り込み処理による動作タイミングを示している。なお、時間軸において、Ｔ１＜Ｔ２＜Ｔ３＜Ｔ４＜Ｔ５＜Ｔ６＜Ｔ７＜Ｔ８＜Ｔ９＜Ｔ１０とする。
【００４０】
実施の形態にかかる多重割り込み処理装置１の動作タイミング（上段のタイミングチャート）について説明する。通常処理中に、時刻Ｔ１でペリフェラルＢ３から割り込みが発生し、割り込み信号Ｐ２が出力されると、ＣＰＵコア６は、ペリフェラルＢ３からの割り込みに対応する割り込み処理プログラムＢを実行する。割り込み処理プログラムＢの実行中に、時刻Ｔ３でペリフェラルＡ２から割り込みが発生し、割り込み信号Ｐ１が出力されると、ＣＰＵコア６は、時刻Ｔ４で割り込み処理プログラムＢを終了した後、通常処理に戻らずに、連続してペリフェラルＡ２からの割り込みに対応する割り込み処理プログラムＡを実行する。そして、ＣＰＵコア６は、時刻Ｔ６で割り込み処理プログラムＡを終了した時点で、通常処理の実行に戻る。
【００４１】
それに対して、一般的な多重割り込み処理による動作タイミング（下段のタイミングチャート）は、次の通りである。通常処理中に、時刻Ｔ１でペリフェラルＢ３から割り込みが発生し、割り込み信号Ｐ２が出力されると、ＣＰＵコアは、割り込み要因を特定する割り込み要因照合処理を行う。割り込み要因照合処理では、ペリフェラルＡ２からの割り込み信号Ｐ１、ペリフェラルＢ３からの割り込み信号Ｐ２、ペリフェラルＣ４からの割り込み信号Ｐ３およびペリフェラルＤ５からの割り込み信号Ｐ４の順に、割り込み発生の有無が調べられる。この割り込み要因照合処理のプログラムは、割り込み処理プログラムとともに外部メモリに格納されている。
【００４２】
この例では、ペリフェラルＡ２からの割り込み信号Ｐ１に次いで、ペリフェラルＢ３からの割り込み信号Ｐ２を調べた時点（時刻Ｔ２）で割り込み要因がペリフェラルＢ３に特定される。割り込み要因が特定されると、ＣＰＵコアは、その割り込み要因に対応する割り込み処理プログラムＢを実行する。割り込み処理プログラムＢの実行中に、時刻Ｔ３でペリフェラルＡ２から割り込みが発生し、割り込み信号Ｐ１が出力されると、ＣＰＵコアは、時刻Ｔ５で割り込み処理プログラムＢを終了した後、割り込み要因照合処理の実行に戻る。図６では、割り込み処理プログラムＢの処理時間（Ｔ５−Ｔ２）は、実施の形態にかかる多重割り込み処理装置１による割り込み処理プログラムＢの処理時間（Ｔ４−Ｔ１）と同じにしてある。
【００４３】
割り込み要因照合処理に戻ると、ペリフェラルＣ４からの割り込み信号Ｐ３とペリフェラルＤ５からの割り込み信号Ｐ４について、この順で割り込み発生の有無が調べられる。時刻Ｔ６で割り込み要因照合処理が終了すると、ＣＰＵコアは、一旦、通常処理の実行に戻った後、時刻Ｔ７で、再び割り込み要因照合処理を開始する。この例では、ペリフェラルＡ２からの割り込み信号Ｐ１を調べた時点（時刻Ｔ８）で割り込み要因がペリフェラルＡ２に特定される。
【００４４】
従って、ＣＰＵコアは、それに対応する割り込み処理プログラムＡを実行する。そして、ＣＰＵコアは、時刻Ｔ９で割り込み処理プログラムＡを終了した後、割り込み要因照合処理の実行に戻る。図６では、割り込み処理プログラムＡの処理時間（Ｔ９−Ｔ８）は、実施の形態にかかる多重割り込み処理装置１による割り込み処理プログラムＡの処理時間（Ｔ６−Ｔ４）と同じにしてある。割り込み要因照合処理に戻ると、ペリフェラルＢ３からの割り込み信号Ｐ２、ペリフェラルＣ４からの割り込み信号Ｐ３およびペリフェラルＤ５からの割り込み信号Ｐ４の順で割り込み発生の有無が調べられる。時刻Ｔ１０で割り込み要因照合処理が終了すると、ＣＰＵコアは、通常処理の実行に戻る。
【００４５】
図６に示す例の場合、実施の形態にかかる多重割り込み処理装置１は、一般的な多重割り込み処理装置と比較して、２回分の割り込み要因照合処理の実行に要する時間と、前の割り込み処理と後の割り込み処理の間で一旦、通常処理に戻るのに要する時間を短縮することができる。この例において、割り込み処理プログラムＡを実行している途中でさらに他の割り込み要因による割り込みが発生する場合には、より一層、通常処理に戻るまでの時間を短縮することができる。
【００４６】
以上説明したように、本実施の形態によれば、実行中の割り込み処理プログラムのリターン命令を、その割り込み処理プログラムの実行中に発生した他の割り込み要因に対応する割り込み処理プログラムへ分岐する分岐命令に変換してＣＰＵコア６へ出力することによって、実行中の割り込み処理プログラムの終了時に、通常処理に戻らずに、連続して次の割り込み処理プログラムをＣＰＵコア６に実行させることができる。従って、リアルタイム性を損なわずにＣＰＵコア６に割り込み処理を実行させることができる。
【００４７】
以上において本発明は、上述した実施の形態に限らず、種々変更可能である。例えば、アドレスレジスタ２２は、割り込み処理プログラムＡの格納領域３１の先頭アドレスの値ではなく、割り込み処理プログラムＢの格納領域３２、割り込み処理プログラムＣの格納領域３３および割り込み処理プログラムＤの格納領域３４のうちのいずれかの先頭アドレスの値を格納していてもよい。アドレスレジスタ２２がいずれの値を格納していても、各格納領域３１，３２，３３，３４のサイズが同じであるので、割り込み要因番号がわかれば、他の割り込み処理プログラムの格納領域のベースアドレスを割り出すことができる。また、上述した説明および添付図面中に記したビット幅は一例であり、本発明は、これに限定されるものではない。
【図面の簡単な説明】
【００４８】
【図１】実施の形態にかかる多重割り込み処理装置の構成を示すブロック図である。
【図２】割り込み検出部の構成を示すブロック図である。
【図３】アドレス変換部の構成を示すブロック図である。
【図４】リターン検出部の構成を示すブロック図である。
【図５】実施の形態にかかる多重割り込み処理装置の動作を説明するフローチャートである。
【図６】実施の形態にかかる多重割り込み処理装置の動作を説明するタイミングチャートである。
【符号の説明】
【００４９】
Ｐ１、Ｐ２、Ｐ３、Ｐ４  割り込み信号
１  多重割り込み処理装置
６  ＣＰＵコア
１２  メモリ
２１  割り込み検出部
２３  アドレス変換部
２４  リターン検出部
【図１】
2009288978.tif 000003
【図２】
2009288978.tif 000004
【図３】
2009288978.tif 000005
【図４】
2009288978.tif 000006
【図５】
2009288978.tif 000007
【図６】
2009288978.tif 000008