(57)【要約】【課題】割り込み要因クリアに要するプロセッサのサイクルを無くし、かつ割り込みが消失されることを防止可能な割り込み制御装置を提供すること。【解決手段】第一の割り込み信号を受信し、第二の割り込み信号として出力する割り込みコントローラと、前記第二の割り込み信号を受信し、割り込み処理を実行するプロセッサユニットと、を備え、割り込みコントローラは、割り込み要因を保持する割り込み要因保持手段と、前記割り込み要因を提示する割り込み要因提示手段と、前記第一の割り込み信号をパルス形式に成形し、出力する割り込み信号生成手段と、を有し、前記プロセッサユニットは、前記第二の割り込み信号のエッジを検出するエッジ検出手段と、エッジの数をカウントするカウント保持手段と、そのカウント値により割り込み処理を実行する割り込み処理制御手段と、を有することを特徴とする。【選択図】図１
2019074823.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の周辺回路から割り込み信号である第一の割り込み信号を受信し、受信した前記第一の割り込み信号を第二の割り込み信号として出力する割り込みコントローラと、
前記第二の割り込み信号を受信し、割り込み処理を実行するプロセッサユニットと、
を備え、
前記割り込みコントローラは、前記第一の割り込み信号を出力した前記周辺回路を特定するための情報を割り込み要因として保持する割り込み要因保持手段と、前記割り込み要因をプロセッサユニットに提示する割り込み要因提示手段と、前記第一の割り込み信号をパルス形式に成形し、前記第二の割り込み信号として前記プロセッサユニットへ出力する割り込み信号生成手段と、を有し、
前記プロセッサユニットは、前記第二の割り込み信号のエッジを検出するエッジ検出手段と、前記エッジ検出手段で検出したエッジの数をカウントするカウント保持手段と、前記カウント保持手段の保持するカウント数が０より大きい場合に割り込み処理を実行し、前記割り込み処理が完了した場合に前記カウント保持手段のカウント値をデクリメントする割り込み処理制御手段と、
を有することを特徴とする割り込み制御装置。
【請求項２】
前記割り込み信号生成手段は、出力する前記第二の割り込み信号のパルスが互いに重ならないように予め定められた一定間隔を空けて生成することを特徴とする請求項１に記載の割り込み制御装置。
【請求項３】
前記割り込み要因提示手段は、前記プロセッサユニットからアクセスがあった場合に、前記割り込み要因保持手段が保持する前記割り込み要因の内、高優先度の前記割り込み要因を提示することを特徴とする請求項１又は請求項２に記載の割り込み制御装置。
【請求項４】
前記割り込み要因提示手段は、前記プロセッサユニットに提示した前記割り込み要因を前記割り込み要因保持手段から削除することを特徴とする請求項１乃至請求項３の何れか一項に記載の割り込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御装置に関する。
【背景技術】
【０００２】
プロセッサユニット及びその周辺モジュールにより構成されるコンピュータシステムにおいて、周辺モジュールが割り込み通知をプロセッサユニットに通知する場合、周辺モジュールとプロセッサユニット間を割り込み信号で接続する。この割り込み信号を検知したプロセッサユニットは、割り込み要因を判別し、その割り込み通知に応じた手続き処理を行う。またレベル信号出力の割り込み通知は、一旦信号がアサートさると出力が解除されるまでプロセッサユニットにて割り込み通知として検知され続ける。このためプロセッサユニットが割り込み信号を検知した場合は、速やかに周辺モジュールからのレベル信号出力を解除する必要がある。このためプロセッサユニットは周辺モジュールに対し、割り込み信号出力の解除を指示する。このような指示は多くの場合、周辺モジュールが内蔵するレジスタファイルに対するプロセッサユニットからの読み書き操作によって行われる。
【０００３】
一般的なコンピュータシステムでは、上記のような手順で割り込み処理が行われるが、プロセッサユニットからの周辺モジュールのレジスタファイルへのアクセスがプロセッサユニットの処理負荷を上げ、且つ割り込み検知から割り込み解除までの所要時間、すなわち割り込みレイテンシを増加させる原因になる。
【０００４】
また、パルス信号出力の割り込み通知は信号のエッジでアサートを通知するため、割り込み解除の処理は必要ないが、プロセッサユニットが割り込み禁止中等の原因で取りこぼしが発生する可能性がある。
【０００５】
特許文献１には割り込み要求を監視し取りこぼしなく処理を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２５７０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の特許文献１に開示された従来技術では、待ち行列がＭＰＵの外部で実施されている。そのためＭＰＵが割り込みの完了を外部に伝える必要がある。ＭＰＵと周辺回路とでは周波数差が大きいため、レイテンシが増加する可能性がある。
【０００８】
そこで、本発明の目的は、割り込み要因クリアに要するプロセッサのサイクルを無くし、かつ割り込みが消失されることを防止可能な割り込み制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る割り込み制御装置は、
１つ以上の周辺回路から割り込み信号である第一の割り込み信号を受信し、受信した前記第一の割り込み信号を第二の割り込み信号として出力する割り込みコントローラと、
前記第二の割り込み信号を受信し、割り込み処理を実行するプロセッサユニットと、
を備え、
前記割り込みコントローラは、前記第一の割り込み信号を出力した前記周辺回路を特定するための情報を割り込み要因として保持する割り込み要因保持手段と、前記割り込み要因をプロセッサユニットに提示する割り込み要因提示手段と、前記第一の割り込み信号をパルス形式に成形し、前記第二の割り込み信号として前記プロセッサユニットへ出力する割り込み信号生成手段と、
を有し、
前記プロセッサユニットは、前記第二の割り込み信号のエッジを検出するエッジ検出手段と、前記エッジ検出手段で検出したエッジの数をカウントするカウント保持手段と、前記カウント保持手段の保持するカウント数が０より大きい場合に割り込み処理を実行し、前記割り込み処理が完了した場合に前記カウント保持手段のカウント値をデクリメントする割り込み処理制御手段と、
を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、割り込み要因クリアに要するプロセッサのサイクルを無くし、かつ割り込みが消失されることを防止可能な割り込み制御装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１における割り込みシステムを示す図である。
【図２】実施例１におけるタイムチャートである。
【図３】実施例１における割り込み信号生成部１１２の構成を示す図である。
【図４】実施例１における割り込み信号生成部１１２の動作を示す図である。
【図５】実施例１における割り込み処理制御部１２３の動作フローである。
【発明を実施するための形態】
【００１２】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【実施例１】
【００１３】
以下、図１〜２を用いて第１の実施形態について説明する。割り込み制御装置の構成を図１に示す。
【００１４】
図１において、割り込みシステム１００は、第一の割り込み信号１０１を外部入力とし、割り込みコントローラ１１０、プロセッサユニット１２０を有する。第二の割り込み信号１０２は割り込みコントローラ１１０から出力され、プロセッサユニット１２０へ入力される信号である。システムバス１０３はプロセッサユニット１２０が割り込みコントローラ１１０のレジスタへアクセスする際に使用されるバスである。
【００１５】
第一の割り込み信号１０１は割り込みシステム１００の外部にある周辺回路からの割り込み信号である。以下、周辺回路Ａ（不図示）、周辺回路Ｂ（不図示）の２つの周辺回路があり、それぞれの周辺回路から１本ずつ割り込み信号が出力されているものとして説明する。すなわち、第一の割り込み信号１０１は２本の信号線から構成される。また、第一の割り込み信号１０１はパルス形式の信号として説明する。ただし、本発明はこれに限定されない。第一の割り込み信号１０１はレベル形式の信号であっても良い。
【００１６】
割り込みコントローラ１１０は、割り込み要因保持部１１１、割り込み信号生成部１１２、割り込み要因提示部１１３を有する。また、プロセッサユニット１２０は、エッジ検出部１２１、カウント値保持部１２２、割り込み処理制御部１２３を有する。
【００１７】
割り込み要因保持部１１１は、アサートされた第一の割り込み信号１０１の割り込み要因を保持する。ここでの割り込み要因とは、アサートされた第一の割り込み信号１０１を出力した周辺回路を特定可能な情報である。以下、周辺回路Ａ（不図示）の割り込み要因は割り込み要因Ａ、周辺回路Ｂ（不図示）の割り込み要因は割り込み要因Ｂと表す。
【００１８】
割り込み要因提示部１１３はプロセッサユニット１２０に割り込み要因保持部１１１が保持する割り込み要因を提示する。プロセッサユニット１３０はシステムバス１０３経由で割り込み要因提示部１１３にアクセスし、処理すべき割り込み要因を読み出すことができる。割り込み要因保持部１１１に複数の要因が保持されている場合は、保持されている割り込み要因の中でより優先順位の高い割り込み要因を提示する。この場合、割り込み要因保持部１１１は各割り込み要因と優先順位とを対応付けたテーブルを持つことで、より優先順位の高い割り込み要因を判断するようにしても良い。
【００１９】
加えて割り込み要因提示部１１３は、プロセッサユニット１２０により割り込み要因を読まれた場合、提示した割り込み要因を割り込み要因保持部１１１から削除する。このように動作することで、同じ割り込み要因が複数回プロセッサユニット１２０に読み出されることを防止できる。提示する割り込み要因を更新するタイミングは、アサートされた第一の割り込み信号１０１が増加した場合か、あるいは、プロセッサユニット１２０により割り込み要因を読まれた場合かのいずれかである。
【００２０】
割り込み信号生成部１１２は、アサートされた第一の割り込み信号１０１の数だけパルスを生成し、第二の割り込み信号１０２としてプロセッサユニット１２０へ出力する。パルスを生成する際、予め定められた時間分だけ間隔を空けてパルスを出力する。これは生成するパルスが互いに重なることを回避するためである。
【００２１】
エッジ検出部１２１は、第二の割り込み信号１０２のエッジを検出し、検出した場合、カウント保持部１２２の保持するカウント値をインクリメントする。
【００２２】
カウント保持部１２２は実行すべき割り込み処理の回数を保持する。リセット時に０に初期化され、リセット解除後はエッジ検出部１２１または割り込み処理制御部１２３で操作される。
【００２３】
割り込み処理制御部１２３はカウント保持部１２２の保持するカウント値が０より大きい場合に、メモリ部（不図示）に格納されるプログラムに従って割り込み処理を実行する。実行後はカウント保持部１２２の保持するカウント値をデクリメントする。
【００２４】
本発明の割り込みシステムのタイムチャートの一部を図２に示す。図２において、２０１は周辺回路Ａ（不図示）が出力する第一の割り込み信号１０１の時間軸、２０２は周辺回路Ｂ（不図示）が出力する第二の割り込み信号１０２の時間軸である。２０３は割り込み信号生成部１１２の出力する第二の割り込み信号１０２の時間軸である。２０４はカウント値保持部１２２の保持するカウント値の時間軸である。２０５は割り込み制御処理部１２３の処理ルーチンの時間軸である。また、２１１から２１６は時刻を示す。
【００２５】
時刻２１１は周辺回路Ａ（不図示）から第一の割り込み信号１０１が出力された時刻である。このタイミングで第二の割り込み信号１０２もアサートされ、カウント値保持部１２２のカウント値がインクリメントされる。説明のため、第一の割り込み信号１０１から第二の割り込み信号１０２が生成されるまでの遅延は省略して図示している。また、第二の割り込み信号１０２が出力されてからカウント保持部１２２のカウント値がインクリメントされるまでの遅延も省略して図示している。
【００２６】
時刻２１２は割り込み制御処理部１２３がカウント値保持部１２２の保持する値が０より大きいことを検知し、割り込み処理を開始する時刻である。この時刻では割り込み要因提示部１１３は周辺回路Ａ（不図示）の割り込みのみのアサートであるため、割り込み要因Ａを提示する。そのため、時刻２１２で実行される割り込み処理は周辺回路Ａ（不図示）を要因とする割り込み処理である。
【００２７】
時刻２１３は周辺回路Ｂ（不図示）から第一の割り込み信号１０１が出力された時刻である。このタイミングで第二の割り込み信号１０２もアサートされ、カウント値保持部１２２のカウント値がインクリメントされる。先と同様に説明のため、第一の割り込み信号１０１から第二の割り込み信号１０２が生成されるまでの遅延は省略して図示している。また、第二の割り込み信号１０２が出力されてからカウント保持部１２２のカウント値がインクリメントされるまでの遅延も省略して図示している。時刻２１３では、割り込み処理制御部１２３は割り込み禁止区間としているため、周辺回路Ｂ（不図示）を要因とする割り込み処理は実行されない。しかしながら、第二の割り込み信号１０２のパルスはカウント値保持部１２２が保持しているため消失することは無い。
【００２８】
時刻２１４は周辺回路Ａ（不図示）を要因とする割り込み処理が完了する時刻である。このタイミングで割り込み処理制御部１２３はカウント値保持部１２２のカウント値をデクリメントする。
【００２９】
時刻２１５は割り込み処理制御部１２３がカウント値保持部１２２の保持する値が０より大きいことを検知し、割り込み処理を開始する時刻である。この時刻では割り込み要因提示部１１３は周辺回路Ｂ（不図示）の割り込みのみのアサートであるため、割り込み要因Ｂを提示する。そのため、時刻２１５で実行される割り込み処理は周辺回路Ｂ（不図示）を要因とする割り込み処理である。
【００３０】
時刻２１６は周辺回路Ｂ（不図示）を要因とする割り込み処理が完了する時刻である。このタイミングで割り込み処理制御部１２３はカウント値保持部１２２のカウント値をデクリメントする。時刻２１６以降は、カウント保持部１２２のカウント値が０であるため割り込み処理は実行されていない。
【００３１】
図２で示したタイムチャートの時刻２１３から分かるように、パルス形式の信号にも関わらず、割り込み禁止区間にプロセッサユニット１２０に届いた割り込み信号が消失することなく実行できる。また第二の割り込み信号１０２はパルス形式の信号であるため、割り込み要因クリアに必要なサイクル数を無くすことができる。
【００３２】
本発明の割り込み信号生成部１１２の構成例を図３に示す。
【００３３】
３１１、３２１はパルス信号をレベル信号に変換する回路である。３１２、３２２はレベル信号からパルス信号に変換する回路である。３１３はＯＲの論理ゲートである。３２０は遅延素子である。３１４はレベルパルス変換部３１２、３２２との間のイネーブル信号である。イネーブル信号３１４、３２４は出力元となるレベルパルス変換部３１２、３２２が動作中であることを示す信号である。
【００３４】
図３に示した信号生成部１１２の動作例を図４に示す。
【００３５】
図４において、４２１から４２６は時刻を示す。
【００３６】
４０１は周辺回路Ａ（不図示）の出力する第一の割り込み信号１０１の時間軸、４０２は周辺回路Ｂ（不図示）の出力する第一の割り込み信号１０１の時間軸である。
【００３７】
４０３は遅延素子３２０の出力信号の時間軸である。遅延素子３２０は時刻４２１から時刻４２２に周辺回路Ｂ（不図示）の出力する第一の割り込み信号１０１を遅延させる。
【００３８】
４０４はパルスレベル変換部３１１の出力信号の時間軸である。パルスレベル変換部３１１は周辺回路Ａ（不図示）の出力する第一の割り込み信号１０１をレベル信号に変換する。
【００３９】
４０５はレベルパルス変換部３１２の出力信号の時間軸である。レベルパルス変換部３１２は、他のレベルパルス変換部が動作中か否かを確認し、レベル信号からパルス信号を生成し出力する。本実施例では、レベルパルス変換部３１２はイネーブル信号３２４の状態がディセーブル状態であれば、パルス信号を出力する。加えて、レベルパルス変換部３１２はパルス信号を出力後、パルスレベル変換部３１１にフィードバックをかけ、パルスレベル変換部３１１はレベル信号を立ち下げる。
【００４０】
４０６はレベルパルス変換部３１２のイネーブル信号の時間軸である。レベルパルス変換部３１２がパルス信号を生成、出力している期間、イネーブル状態を示す。
【００４１】
４０７はパルスレベル変換部３２１の出力信号の時間軸である。パルスレベル変換部３２１は周辺回路Ｂ（不図示）の出力する第一の割り込み信号１０１をレベル信号に変換する。
【００４２】
４０８はレベルパルス変換部３２２の出力信号の時間軸である。レベルパルス変換部３２２は、他のレベルパルス変換部が動作中か否かを確認し、レベル信号からパルス信号を生成し出力する。本実施例では、レベルパルス変換部３２２はイネーブル信号３１４の状態がディセーブル状態であれば、パルス信号を出力する。加えて、レベルパルス変換部３２２はパルス信号を出力後、パルスレベル変換部３２１にフィードバックをかけ、パルスレベル変換部３２１はレベル信号を立ち下げる。
【００４３】
４０９はレベルパルス変換部３２２のイネーブル信号の時間軸である。レベルパルス変換部３２２がパルス信号を生成、出力している期間、イネーブル状態を示す。
【００４４】
４１０はＯＲゲート３１３が出力する第二の割り込み信号１０２の時間軸である。ＯＲゲート３１３はレベルパルス変換部３１２の出力信号とレベルパルス変換部３２２の出力信号との論理和をとり、第二の割り込み信号１０２として出力する。
【００４５】
図４に示す動作例では、時刻４２１の時点で、イネーブル信号３２４はディセーブル状態であるため、レベルパルス変換部３１２はパルス信号を生成、出力する。時刻４２１から時刻４２４まではレベルパルス変換部３１２が動作中であるため、イネーブル信号３１４はイネーブル状態を示す。時刻４２４でレベルパルス変換部３１２はパルスレベル変換部３１１にフィードバックをかけ、パルスレベル変換部３１１はレベル信号を立ち下げる。
【００４６】
レベルパルス変換部３２２は時刻４２２から４２４はイネーブル信号３１４がイネーブル状態を示しているため動作していない。時刻４２４の時点で、イネーブル信号３２４がディセーブル状態を示すため、レベルパルス変換部３２２はパルス信号を生成、出力する。時刻４２４から時刻４２６まではレベルパルス変換部３２２が動作中であるため、イネーブル信号３２４はイネーブル状態を示す。時刻４２６でレベルパルス変換部３２２はパルスレベル変換部３２１にフィードバックをかけ、パルスレベル変換部３２１はレベル信号を立ち下げる。
【００４７】
ここで、イネーブル信号３１４およびイネーブル信号３２４は、それぞれ時刻４２４、時刻４２６でイネーブル状態からディセーブル状態に遷移しているがこれに限らない。ディセーブル状態に遷移するタイミングを変更することで、第二の割り込み信号１０２のパルスの間隔を調整することが可能である。
【００４８】
図５は実施例１における割り込み処理制御部１２３の動作フローである。
【００４９】
Ｓ５００では、図５の動作フローを終了するか否かを判断する。ＹＥＳの場合は図５に示す処理を終了させる。ＮＯの場合はＳ５０１に処理を進める。
【００５０】
Ｓ５０１では、カウント値保持部１２２の保持するカウント値が０より大きいか否かを判断する。ＹＥＳの場合はＳ５０２へ処理を進め、ＮＯの場合はＳ５００を再度処理する。
【００５１】
Ｓ５０２では割り込み処理を実行する。ここでは、システムバス１０３経由で割り込み要因提示部１１３にアクセスし、処理すべき要因を読み出し、読み出した要因に応じて処理を行う。Ｓ５０３では、カウント値保持部１２２の保持するカウント値をデクリメントする処理を実行する。
【００５２】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００５３】
１００  割り込みシステム、１０１  第一の割り込み信号、
１０２  第二の割り込み信号、１０３  システムバス、
１１０  割り込みコントローラ、１２０  プロセッサユニット
【図１】
2019074823.tif 000003
【図２】
2019074823.tif 000004
【図３】
2019074823.tif 000005
【図４】
2019074823.tif 000006
【図５】
2019074823.tif 000007