(57)【要約】【課題】プロセッサが割込み通知を受けた後、より短時間で割込み処理を開始することが可能であって、プロセッサの処理効率をいっそう高めることができる割込み制御装置を提供する。【解決手段】割込みによってプロセッサ１０６に実行が要求される処理である割込み処理を制御する割込み制御装置１において、割込み処理の要求を受付け、要求が受付けられた割込み処理を実行するための命令及びこの命令によって実行される割込み処理に使用されるデータをデータメモリ１０８、命令メモリ１０９から取得する割込み制御部１０１、データキャッシュ制御部１０２、命令キャッシュ制御部１０４を備え、少なくとも命令またはデータの一部が取得された後、割込み制御部１０１が、プロセッサ１０６に割込み処理の要求があったことを通知する。【選択図】図１
2007220022.tif 000002
【特許請求の範囲】
【請求項１】
割込みによってプロセッサに実行が要求される処理である割込み処理を制御する割込み制御装置であって、
割込み処理の要求を受付ける割込み要求受付手段と、
前記割込み要求受付手段によって要求が受付けられた割込み処理を実行するための命令及び該命令によって実行される割込み処理に使用されるデータをメモリから取得する命令・データ取得手段と、
前記命令・データ取得手段によって少なくとも命令またはデータの一部が取得された後、プロセッサに割込み処理の要求があったことを通知する割込み要求通知手段と、
を備えることを特徴とする割込み制御装置。
【請求項２】
前記命令・データ取得手段は、割込み処理を実行するための命令の前記メモリにおける保存場所のアドレスと、該命令によって実行される割込み処理に使用されるデータの前記メモリにおける保存場所のアドレスとを対応付ける対応データを参照し、命令及び該命令によって実行される割込み処理に使用されるデータをメモリから取得することを特徴とする請求項１に記載の割込み制御装置。
【請求項３】
前記命令・データ取得手段は、割込み処理を実行するための命令の取得を開始した後に割込み処理に使用されるデータの取得を開始することを特徴とする請求項１または２に記載の割込み制御装置。
【請求項４】
前記割込み要求通知手段は、割込み処理を実行するための命令の少なくとも一部を取得した後であって、割込み処理に使用されるデータの取得が完了する以前にプロセッサに割込み処理の要求があったことを通知することを特徴とする請求項３に記載の割込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割込み制御装置に関する。
【背景技術】
【０００２】
現在、外部モジュールと接続され、この外部モジュールの割込みを受付ながら動作するプロセッサがある。このようなプロセッサとしては、例えば、携帯電話に組み込まれたプロセッサが挙げられる。このようなプロセッサは、カメラや通信装置等のモジュールによる割込みを受付ながら複数のモジュールの動作を制御している。
割込みを受付ける場合、プロセッサは、実行中の処理をいったん中断して割込みによって依頼された処理を実行する。このような処理にあっては、当然のことながら、割込みによる停止時間が長いほどプロセッサの処理効率が低下することになる。このため、プロセッサの割込み制御には、割込み処理の開始直前まで割込みによって中断される処理をプロセッサに実行させるための技術が提案されている。
【０００３】
このような技術の従来例として、例えば、特許文献１が挙げられる。特許文献１には、割込み要求の受付後、割込み処理のルーチンの少なくとも一部が読み込まれた後にプロセッサに割込みを知らせる割込み信号を発生する割込み制御部が記載されている。
このような特許文献１によれば、割込み処理のルーチンの少なくとも一部が読み込まれるまではプロセッサが他の処理を実行することができる。また、割込みの通知を受け取ったときにはすでに割込み処理ルーチンが読み込まれているので、他の処理を中断した直後に割込み処理を実行することができる。
【特許文献１】特開２００１−３０６３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した特許文献１の発明は、プロセッサが割込みルーチンにしたがって割込み処理を開始した後、処理に必要なデータを取得して処理の実行を開始する。このため、特許文献１の発明は、割込みルーチンを予め読み込んでおいたにも関わらず、割込み通知を受けた後、データの読込が終了するまで割込み処理を開始することができない場合がある。
【０００５】
本発明は、このような点に鑑みてなされたものであり、プロセッサが割込み通知を受けた後、より短時間で割込み処理を開始することが可能であって、プロセッサの処理効率をいっそう高めることができる割込み制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
以上の課題を解決するため、本発明の割込み制御装置は、割込みによってプロセッサに実行が要求される処理である割込み処理を制御する割込み制御装置であって、割込み処理の要求を受付ける割込み要求受付手段と、前記割込み要求受付手段によって要求が受付けられた割込み処理を実行するための命令及び該命令によって実行される割込み処理に使用されるデータをメモリから取得する命令・データ取得手段と、前記命令・データ取得手段によって少なくとも命令またはデータの一部が取得された後、プロセッサに割込み処理の要求があったことを通知する割込み要求通知手段と、を備えることを特徴とする。
【０００７】
このような発明によれば、割込み処理の要求を受付け、割込み処理を実行するための命令及びこの命令によって実行される割込み処理に使用されるデータをメモリから取得することができる。また、少なくとも命令またはデータの一部が取得された後、プロセッサに割込み処理の要求があったことを通知することができる。
このため、割込み処理の直前まで他の処理を実行することができる。また、割込み開始時には必要な命令やデータがキャッシュされているので、割込みの通知を受けた後、より短時間のうちに割込み処理を開始することができる。したがって、本発明は、プロセッサの処理効率をいっそう高めることができる割込み制御装置を提供することができる。
【０００８】
また、本発明の割込み制御装置は、前記命令・データ取得手段は、割込み処理を実行するための命令の前記メモリにおける保存場所のアドレスと、該命令によって実行される割込み処理に使用されるデータの前記メモリにおける保存場所のアドレスとを対応付ける対応データを参照し、命令及び該命令によって実行される割込み処理に使用されるデータをメモリから取得することを特徴とする。
【０００９】
このような発明によれば、命令のメモリにおける保存場所のアドレスと、この命令によって実行される割込み処理に使用されるデータのメモリにおける保存場所のアドレスとを対応付ける対応データを参照し、命令及びこの命令によって実行される割込み処理に使用されるデータのメモリにおける保存場所を特定することができる。
なお、命令の外部メモリにおける保存場所を記録するテーブルは、命令キャッシュを備える構成が一般的に備えるものである。本発明は、このような既存のテーブルを拡張することによって比較的簡易に命令と命令に対応するデータとを対応付け、両者を読み出すことを可能にしている。
【００１０】
また、本発明の割込み制御装置は、前記命令・データ取得手段が、割込み処理を実行するための命令の少なくとも一部を取得した後に割込み処理に使用されるデータの取得を開始することを特徴とする。
このような発明によれば、割込み処理において先に必要になる命令を先に取得することができるので、より早く割込み処理を開始することができる。
【００１１】
また、本発明の割込み制御装置は、前記割込み要求通知手段が、割込み処理を実行するための命令の少なくとも一部を取得した後であって、割込み処理に使用されるデータの取得が完了する以前にプロセッサに割込み処理の要求があったことを通知することを特徴とする。
このような発明によれば、命令を取得した時点で割込み処理を開始し、命令を解釈している間にデータを取得することができるので、命令とデータとを取得した後に割込み処理を開始するよりも早く割込み処理を開始することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図を参照して本発明に係る割込み制御装置の実施形態１、実施形態２について説明する。
【００１３】
（実施形態１）
図１は、本発明の実施形態１の割込み制御装置を説明するためのブロック図である。図示した割込み制御装置１は、周辺モジュール１０７によってプロセッサ１０６に実行が要求される処理である割込み処理を制御する装置である。割込み制御装置１は、割込み処理の要求を受付ける割込み制御部１０１と、割込み制御部１０１によって要求が受付けられた割込み処理を実行するための命令を命令メモリ１０９から取得してプロセッサの命令キャッシュメモリ１０５にキャッシュする命令キャッシュ制御部１０４及び、この命令によって実行される割込み処理に使用されるデータをデータメモリ１０８から取得してプロセッサのデータキャッシュメモリ１０３にキャッシュするデータキャッシュ制御部１０２を備えている。
【００１４】
また、割込み制御部１は、命令キャッシュ制御部１０４、データキャッシュ制御部１０２によって少なくとも命令またはデータの一部がキャッシュメモリから取得（キャッシュ）された後、プロセッサ１０６に割込み処理の要求があったことを通知する。
以上の構成において、割込み制御部１０１は割込み要求受付手段及び割込み要求通知手段として機能する。また、命令キャッシュ制御部１０４及び命令キャッシュメモリ１０５、データキャッシュ制御部１０２及びデータキャッシュメモリ１０３、さらに割込み制御部１０１が命令・データ取得手段として機能する。
【００１５】
なお、実施形態１は、図示した構成に限定されるものでなく、データメモリ１０８と命令メモリ１０９とを一体のメモリとして構成してもよい。このように構成した場合、一体のメモリとキャッシュメモリ等とを１本のバスを共用して接続することが可能になる。
実施形態１の割込み制御装置１では、命令及びデータを取得するため、割込み制御部１０１が、割込み処理を実行するための命令の命令メモリ１０９における保存場所のアドレスと、この命令によって実行される割込み処理に使用されるデータのデータメモリ１０８における保存場所のアドレスとを対応付ける対応データを参照し、命令及びこの命令によって実行される割込み処理に使用されるデータをデータメモリ１０８から取得する。
【００１６】
図２は、実施形態１の対応データであるベクタテーブルを説明するための図である。図２（ａ）に示すように、ベクタテーブルでは、割込みハンドラ（割込みの命令プログラムを示す）にＶｅｃ０、Ｖｅｃ１…の符号を付けて識別可能に設定する。そして、外部メモリであるデータメモリ１０８、命令メモリ１０９における各割込みハンドラの格納場所の先頭アドレスがベクタテーブルに記録されている。さらに、ベクタテーブルには、各割込みハンドラの実行に使用されるデータの外部メモリにおける先頭アドレスが、各割込みハンドラの先頭アドレスに対応付けて記録されている。
【００１７】
図２（ｂ）は、割込みハンドラの命令メモリ１０９における保存場所の先頭アドレス、データのデータメモリ１０８における保存場所の先頭アドレスを具体的に例示したものである。なお、実施形態１では、ベクタテーブルがデータメモリ１０８に保存されるものとした。
以上述べた構成は、以下のように動作する。すなわち、周辺モジュール１０７がプロセッサ１０６に対して割込み要求する場合、周辺モジュール１０７は、先ず、割込み制御部１０１に対し割込み信号ｄ１を送出する。なお、割込み信号ｄ１は、割込みが発生したことを通知するのみであって、発生した割込みにかかる動作は割込みハンドラで指定された命令列によって記述される。
【００１８】
動作を指示する情報とは、例えば、アドレスＡにあるデータを読み出して演算式Ｂを使って演算し、アドレスＣに書き込むことを指示する等の情報である。このような例においては、データを読み出す、演算する、書き込むといった指示が命令を構成し、演算Ｂをするために必要な演算式やテーブル等がデータである。
割込み制御部１０１は、割込み信号ｄ１を入力したことにより、命令キャッシュ制御部１０４に制御信号（命令キャッシュ制御）を出力する。命令キャッシュ制御部１０４は、データメモリ１０８にアクセスし、ベクタテーブルを参照する。そして、命令（割込みハンドラ）が保存されている場所の命令メモリ１０９における先頭アドレスを読み出す。そして、命令メモリ１０９の読み出された先頭アドレスから命令の内容を取得する。取得された命令は、命令キャッシュメモリ１０５にキャッシュされる。
【００１９】
また、割込み制御部１０１は、データキャッシュ制御部１０３に制御信号（データキャッシュ制御）を出力する。データキャッシュ制御部１０３は、キャッシュされる割込みハンドラに対応して記録されているデータのアドレス（キャッシュ希望データアドレス）を読出し、データメモリ１０８の読み出されたアドレスにアクセスしてデータを取得する。取得されたデータは、データキャッシュメモリ１０３にキャッシュされる。
【００２０】
以上の処理の後、割込み制御部１０１は、プロセッサ１０６に対して割込み制御信号ｄ２を出力する。プロセッサ１０６は、割込み制御信号ｄ２を入力したことによって割込み要求がされたことを検出する。そして、実行中であったタスクあるいは割込みハンドラを中断し、命令キャッシュメモリ１０５、データキャッシュメモリ１０３にアクセスする。そして、命令キャッシュメモリ１０５にキャッシュされた割込みハンドラ、データキャッシュメモリ１０３にキャッシュされたデータを使って割込み処理を実行する。
【００２１】
このような実施形態１によれば、プロセッサ１０６は、データがキャッシュされる間に他の処理を中断することなく実行し続けることができる。また、プロセッサ１０６は、周知のように、データメモリ１０８等の外部メモリよりも内部にあるデータキャッシュメモリ１０３に対して高速にアクセスできる。このため、実施形態１の割込み制御装置を備えたプロセッサ１０６は、処理の中断後、短時間のうちに割込み処理を開始することができる。このような実施形態１は、割込み処理の開始後にデータメモリ１０８にアクセスしてデータを取得する構成よりもプロセッサ１０６の停止時間を短縮し、処理効率を高めることができる。
【００２２】
また、割込み処理にあっては、先に実行された割込み処理等によって必要な割込みハンドラやデータがすでにキャッシュされている場合がある。実施形態１では、データキャッシュ制御部１０２、命令キャッシュ制御部１０４が、割込みハンドラあるいはデータがすでにキャッシュされているか否か、さらにはキャッシュされている割込みハンドラあるいはデータがダーティである等の理由によって使用することができないか否かを判断する。
【００２３】
この判断の結果、データキャッシュ制御部１０２、命令キャッシュ制御部１０４は、使用可能な割込みハンドラやデータがすでにキャッシュされている場合以外は命令メモリ１０９、データメモリ１０８にアクセスして割込みハンドラやデータをキャッシュする。
なお、複数の割込み要求が発生した場合、割込み制御装置１０１は、割込みハンドラを要求の後先や優先度によって決まる順序にしたがってスケジューリングし、割込み処理を実行する。
【００２４】
次に、以上述べた割込み制御装置の動作を、フローチャートを使って説明する。図３、は、実施形態１の割込み制御装置が割込み要求を受けてからプロセッサ１０６に通知するまでの処理を説明するためのフローチャートである。図３のフローチャートは、割込み制御部１０１がハードウェア構成を使って制御処理を実行する場合の処理の手順を示している。
【００２５】
図３のフローチャートで示すように、先ず、割込み制御装置は、データメモリ１０８にあるベクタテーブルを読み出す（Ｓ４０１）。また、ベクタテーブルに設定された命令メモリ１０９のアドレスを検出し、このアドレスに保存されていた実行命令を命令キャッシュメモリ１０５においてチェックする（Ｓ４０２）。
チェックの結果、割込み制御部１０１は、実行命令が命令キャッシュメモリ１０５にキャッシュされているか否か判断する（Ｓ４０３）。必要な実行命令がすでにキャッシュされている場合（Ｓ４０３：Ｙｅｓ）、必要なデータのキャッシュが完了しているか否か判断する（Ｓ４０６）。
【００２６】
また、ステップＳ４０３において、必要な実行命令がキャッシュされていないと判断された場合（Ｓ４０３：Ｎｏ）、割込み制御部１０１は、命令キャッシュ制御部１０４に対し、必要な実行命令のキャッシュを指示する（Ｓ４０４）。そして、命令キャッシュメモリ１０５への実行命令のキャッシュが完了するまで待機する（Ｓ４０５）。
また、割込み制御部１０１は、ベクタテーブルの内容から実行命令の実行にデータのキャッシュが必要か否か判断する（Ｓ４０８）。データのキャッシュが不要であると判断した場合（Ｓ４０８：Ｎｏ）、必要な実行命令のキャッシュが完了しているか否か判断する（Ｓ４０６）。
【００２７】
また、ステップＳ４０８において、実行すべき実行命令にデータキャッシュが必要なものであると判断された場合（Ｓ４０８：Ｙｅｓ）、割込み制御部１０１は、データキャッシュメモリ１０３をチェックする（Ｓ４０９）。そして、実行命令の実行に必要なデータがキャッシュされていると判断した場合（Ｓ４１０：Ｙｅｓ）、必要な実行命令のキャッシュが完了しているか否か判断する（Ｓ４０６）。
【００２８】
さらに、割込み制御部１０１は、ステップＳ４１０において、必要なデータがキャッシュされていないと判断した場合（Ｓ４１０：Ｎｏ）、データキャッシュ制御部１０２に対し、必要なデータのキャッシュを指示する（Ｓ４１１）。そして、データキャッシュメモリ１０３へのデータのキャッシュが完了するまで待機する（Ｓ４１２）。
以上の処理の後、割込み制御部１０１は、割込み処理に必要な実行命令及びデータの両方がキャッシュされたと判断すると（Ｓ４０６：Ｙｅｓ）、プロセッサ１０６に対して割込みが要求されたことを通知し（Ｓ４０７）、処理を終了する。
【００２９】
以上述べたように、実施形態１の割込み制御装置は、割込み処理の直前まで他の処理を実行することができる。また、割込み開始時には必要な命令やデータがキャッシュされているので、割込みの通知を受けた後、より短時間のうちに割込み処理を開始することができ、プロセッサの処理効率をいっそう高めることができる。
【００３０】
（実施形態２）
次に、本発明の実施形態２について説明する。なお、実施形態２の割込み制御装置は、実施形態１の割込み制御装置と構成上同様であるから、構成の図示及び説明を一部省くものとする。
【００３１】
実施形態２は、一般的な割込み処理において、割込みの開始後に先ず命令が解釈され、解釈された内容したがってデータを用いながら演算が実行される点に着目してなされたものである。実施形態２では、割込みハンドラの少なくとも一部を取得した後であって、割込み処理に使用されるデータの取得が完了する以前にプロセッサ１０６に割込み処理の要求があったことを通知する。このような実施形態２によれば、命令を取得した時点で割込み処理を開始し、命令を解釈している間にデータを取得することができるので、命令とデータとを取得した後に割込み処理を開始するよりも早く割込み処理を開始することができる。
【００３２】
図４に示したフローチャートは、実施形態２の割込み制御装置で実行される割込み制御方法を示した図である。
実施形態２の割込み制御装置は、図４に示すように、割込み制御部１０１が、先ず、データメモリ１０８にあるベクタテーブルを読み出す（Ｓ７０１）。また、ベクタテーブルに設定された命令メモリ１０９のアドレスを検出し、このアドレスに保存されていた実行命令を命令キャッシュメモリ１０５においてチェックする（Ｓ７０２）。
【００３３】
チェックの結果、割込み制御部１０１は、実行命令が命令キャッシュメモリ１０５にキャッシュされているか否か判断する（Ｓ７０３）。必要な実行命令がすでにキャッシュされている場合（Ｓ７０３：Ｙｅｓ）、プロセッサ１０６に割込み要求があったことを通知して処理を終了する（Ｓ７０６）。
また、ステップＳ７０３において、必要な実行命令がキャッシュされていないと判断された場合（Ｓ７０３：Ｎｏ）、割込み制御部１０１は、命令キャッシュ制御部１０４に対し、必要な実行命令のキャッシュを指示する（Ｓ７０４）。そして、命令キャッシュメモリ１０５への実行命令のキャッシュが完了するまで待機する（Ｓ７０５）。
【００３４】
また、割込み制御部１０１は、ベクタテーブルの内容から実行命令の実行にデータのキャッシュが必要か否か判断する（Ｓ７０７）。データのキャッシュが不要であると判断した場合（Ｓ７０７：Ｎｏ）、処理を終了する（Ｓ７０６）。また、ステップＳ７０７において、実行すべき実行命令にデータキャッシュが必要であると判断した場合（Ｓ７０７：Ｙｅｓ）、データキャッシュメモリ１０３をチェックする（Ｓ７０８）。そして、実行命令の実行に必要なデータがキャッシュされていると判断した場合（Ｓ７０９：Ｙｅｓ）、処理を終了する。
【００３５】
さらに、割込み制御部１０１は、ステップＳ７０９において、必要なデータがキャッシュされていないと判断した場合（Ｓ７０９：Ｎｏ）、データキャッシュ制御部１０２に対し、必要なデータのキャッシュを指示する（Ｓ７１０）。そして、データキャッシュメモリ１０３へのデータのキャッシュが完了するまで待機した後（Ｓ７１１）、処理を終了する。
【００３６】
図７のフローチャートに示した動作によれば、割込みハンドラ等の実行命令とデータとを並列に取得しながら実行命令がキャッシュされた時点でデータのキャッシュ完了を待つことなくプロセッサ１０６に割込みの通知をすることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態１の割込み制御装置を説明するためのブロック図である。
【図２】実施形態１の対応データであるベクタテーブルを説明するための図である。
【図３】実施形態１の割込み制御装置が割込み要求を受けてからプロセッサに通知するまでの処理を説明するフローチャートである。
【図４】実施形態２の割込み制御装置が割込み要求を受けてからプロセッサに通知するまでの処理を説明するフローチャートである。
【符号の説明】
【００３８】
１０１  割込み制御装置、１０２  データキャッシュ制御部、１０３  データキャッシュ制御部、１０４  命令キャッシュ制御部、１０５  命令キャッシュメモリ、１０６  プロセッサ、１０７  周辺モジュール、１０８  データメモリ、１０９  命令メモリ
【図１】
2007220022.tif 000003
【図２】
2007220022.tif 000004
【図３】
2007220022.tif 000005
【図４】
2007220022.tif 000006