(57)【要約】【課題】割り込み発生からディスパッチまでの時間を短縮し、システムパフォーマンスを向上することができる情報処理システム、割り込み制御方法及び割り込み制御プログラムを提供すること【解決手段】本発明の第１の態様にかかる情報処理システムは、複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタと、前記ｎ個のステータス・レジスタの検索順を特定する検索順情報を格納した記憶部と、割り込み要求が発生した場合に、前記検索順に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込み要求を発生させた割り込み要因を特定する割り込み制御部とを備える。【選択図】図１
2010277410.tif 000002
【特許請求の範囲】
【請求項１】
複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタと、
前記ｎ個のステータス・レジスタの検索順を特定する検索順情報を格納した記憶部と、
割り込み要求が発生した場合に、前記検索順に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込み要求を発生させた割り込み要因を特定する割り込み制御部とを備えた情報処理システム。  
【請求項２】
前記検索順情報は、前記割り込み要求が有効となっているステータス・レジスタに関する検索順情報により構成されている請求項１に記載の情報処理システム。
【請求項３】
前記情報処理システムは、前記ｎ個のステータス・レジスタのそれぞれについて、割り込み要求が有効か否かを示すｎ個のイネーブル・レジスタと、
前記ｎ個のイネーブル・レジスタに基づいて、前記割り込み要求が有効となっている割り込み要因を判断し、前記検索順情報を生成する検索順情報生成部とをさらに備える請求項２に記載の情報処理システム。
【請求項４】
前記制御部は、前記割り込み要求が発生した割り込み要因に対応するステータス・レジスタについて、検索順を早くするように前記検索順情報を更新する請求項１乃至３のいずれかに記載の情報処理システム。
【請求項５】
前記検索順情報は、前記割り込み要因の種類のそれぞれに対応する複数のブロックに区分され、
前記ブロックは、当該ブロックに対応する種類の割り込み要因に対応するステータス・レジスタを確認する優先度を特定するとともに、前記制御部が当該ブロックを参照するブロック優先度が関連付けられ、
前記制御部は、さらに前記ブロック優先度に基づいて、前記ｎ個のステータス・レジスタに対して内容確認を行う請求項１乃至４のいずれかに記載の情報処理システム。
【請求項６】
前記情報処理システムは、さらにアプリケーションソフトウェアを備え、
前記アプリケーションソフトウェアは、起動されているときに、自身の動作中に割り込みが発生する割り込み要因の種類に対応するブロックのブロック優先度を上げる請求項５に記載の情報処理システム。
【請求項７】
前記ｎ個のステータス・レジスタは、複数のグループに分けられ、
前記検索順情報は、前記グループを指す値と、各グループ内のステータス・レジスタを
指す値とで構成される請求項１乃至６のいずれかに記載の情報処理システム。
【請求項８】
複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタの検索順を特定する検索順情報を読み出すステップと、
プロセッサへの割り込みが発生した場合に、前記検索順情報に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込みを発生させた割り込み要因を特定するステップとを備えた割り込み制御方法。
【請求項９】
複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタの検索順を特定する検索順情報を読み出すステップと、
プロセッサへの割り込みが発生した場合に、前記検索順情報に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込みを発生させた割り込み要因を特定するステップとをコンピュータに実行させる割り込み制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、割り込み制御方法及び割り込み制御プログラムに関する。
【背景技術】
【０００２】
デジタルＡＶ(Audio Visual)機器や携帯機器に搭載されるＬＳＩ(Large Scale Integration)(以下、「多機能ＬＳＩ」とする)は、ＭＰＵ(Micro Processing Unit)以外のペリフェラル・デバイスとして、オーディオ・コントローラ、ビデオ・デコーダ、ペリフェラルやＰＣＩ(Peripheral Component Interconnect)インタフェース等の様々な機能を提供する装置を搭載している。このような多機能ＬＳＩを搭載するデジタルＡＶ機器や携帯機器等の多機能ＬＳＩシステムを制御するプログラムは、多機能ＬＳＩ内部のバスマスタに各装置から接続される割り込み線の信号によって通知される各装置の割り込み状態を確認する。
【０００３】
多機能ＬＳＩシステムを制御するプログラムには、各装置に対する処理を実行するプログラム(以下、「タスク」とする)と、各装置からの割り込みによって呼び起され、割り込み時の処理を行うプログラム(以下、「割り込みハンドラ」とする)が含まれる。タスクは、各装置に対して命令を実行し、その結果を割り込み通知によって取得する。割り込みハンドラは、割り込み通知によって実行され、バスマスタに出力される割り込み線の信号の制御や、通知された割り込みに応じたタスクへの切り替え(ディスパッチ)を行う。
【０００４】
多機能ＬＳＩのバスマスタには、割り込みを有効とするか無効とするかを設定する割り込みイネーブル・レジスタと、割り込みの要因／状態を示す割り込みステータス・レジスタがあり、バスマスタに接続された割り込み線の数分の有効なビットが存在する。割り込みハンドラが、割り込みの有無を確認する場合、割り込み要因を示す割り込みステータス・レジスタの先頭ビットから割り込みの発生を示しているビットに到達するまで順番に検索を行い、割り込みの発生を示しているビットを検出次第、このビットに割り当てられた割り込み要因に対応するタスクにディスパッチを行う。
【０００５】
具体的には、図１１に示すような割り込みステータス・レジスタ８１、８２、８３を備える多機能ＬＳＩシステム８を制御するプログラムは、割り込みステータス・レジスタ＃０(８１)の０ビット目から順番にその値を読み出し、どのビットが割り込みの発生を示しているかを検索する。したがって、割り込みステータス・レジスタ＃０(８１)のビットを読み出すのに比べ、割り込みステータス・レジスタ＃２(８３)のビット３１を読み出すほうが、割り込み要因の特定までに時間がかかってしまう。
このように、割り込みの発生を示しているビットが先頭ビットに近いほど、割り込み要因の特定に時間がかからないため、割り込みが発生してからディスパッチするまでの時間は早くなるが、検索が後になるビットほど、割り込み要因の特定に時間がかかってしまうため、割り込みが発生してからディスパッチするまでに時間がかかってしまうという問題がある。
【０００６】
したがって、多機能ＬＳＩシステムにおいて、割り込みステータス・レジスタのうちの検索が後になるビットに割り当てられた装置を制御するアプリケーションプログラムが動作している場合、この装置からの割り込みが発生してからディスパッチするまでに時間がかかってしまうため、システムパフォーマンスが低下してしまっているという問題がある。
また、割り込みが発生している割り込み要因を検索する場合に、割り込みステータス・レジスタのビットのうち、割り込みイネーブル・レジスタによって無効にされており、割り込みの発生することのないビットまでも検索対象としているため、無駄な検索時間が生じており、システムパフォーマンスが低下してしまっているという問題もある。
さらに、多機能ＬＳＩシステムにおいて割り込みの発生頻度の高い割り込み要因が、検索が後になるビットに割り当てられている場合にも、システムパフォーマンスが低下してしまっているという問題もある。
【０００７】
なお、特許文献１には、機能モジュールが、マスクされていない割り込みを発生する度に、割り込み要因バッファの異なったアドレス位置に、機能モジュールの識別情報と割り込み要因を書き込んで行くようにすることにより、階層的に割り込み要因レジスタをリードすることなく割り込み要因を特定でき、かつ機能モジュールが割り込み要因を上書きすることによる割り込み要因の読みこぼしを防ぐことができる技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１７２１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
背景技術として記載したように、割り込みステータス・レジスタの先頭ビットから順番に割り込みが発生しているビットを検索する方法では、割り込み発生からディスパッチまでの時間がかかってしまうため、システムパフォーマンスが低下してしまっているという問題がある。
【課題を解決するための手段】
【００１０】
本発明の第１の態様にかかる情報処理システムは、複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタと、前記ｎ個のステータス・レジスタの検索順を特定する検索順情報を格納した記憶部と、割り込み要求が発生した場合に、前記検索順に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込み要求を発生させた割り込み要因を特定する割り込み制御部とを備えたものである。
【００１１】
これにより、割り込み発生からディスパッチまでの時間を短縮し、システムパフォーマンスを向上することができる。
【００１２】
本発明の第２の態様にかかる割り込み制御方法は、複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタの検索順を特定する検索順情報を読み出すステップと、プロセッサへの割り込みが発生した場合に、前記検索順情報に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込みを発生させた割り込み要因を特定するステップとを備えるものである。
【００１３】
これにより、割り込み発生からディスパッチまでの時間を短縮し、システムパフォーマンスを向上することができる。
【００１４】
本発明の第３の態様にかかる割り込み制御プログラムは、複数の割り込み要因毎にプロセッサへの割り込み要求の有無を示すｎ個(ｎは２以上の整数)のステータス・レジスタの検索順を特定する検索順情報を読み出すステップと、プロセッサへの割り込みが発生した場合に、前記検索順情報に応じて、前記ｎ個のステータス・レジスタに対して内容確認を行い、前記割り込みを発生させた割り込み要因を特定するステップとをコンピュータに実行させるものである。
【００１５】
これにより、割り込み発生からディスパッチまでの時間を短縮し、システムパフォーマンスを向上することができる。
【発明の効果】
【００１６】
上述した本発明の各態様により、割り込み発生からディスパッチまでの時間を短縮し、システムパフォーマンスを向上することができる情報処理システム、割り込み制御方法及び割り込み制御プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１にかかる多機能ＬＳＩシステムの構成図である。
【図２】本発明の実施の形態１にかかる基本動作を説明するための割り込み検索用ＩＮＤＥＸを示す図である。
【図３】本発明の実施の形態１にかかる割り込み検索用ＩＮＤＥＸを用いた基本動作を示すフローチャートである。
【図４】本発明の実施の形態１にかかる割り込み検索用ＩＮＤＥＸを示す図である。
【図５】本発明の実施の形態１にかかる動作を示すフローチャートである。
【図６】本発明の実施の形態２にかかる割り込み検索用ＩＮＤＥＸを示す図である。
【図７】本発明の実施の形態２にかかる動作を示すフローチャートである。
【図８】本発明の実施の形態３にかかる割り込み検索用ＩＮＤＥＸを示す図である。
【図９】本発明の実施の形態３にかかる動作を示すフローチャートである。
【図１０】性能ベンチマーク結果を示す図である。
【図１１】背景技術にかかる多機能ＬＳＩシステムを説明するための図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。
本発明の実施の形態１．
まず、図１、２を参照して、本発明の実施の形態１にかかる多機能ＬＳＩシステムの構成について説明する。図１は、本発明の実施の形態１にかかる多機能ＬＳＩシステムの構成図である。
【００１９】
多機能ＬＳＩシステム１は、ＣＰＵ(Central Processing Unit)１０、メモリ２０、割り込みステータス・レジスタ３１、３２、３３、割り込みイネーブル・レジスタ４１、４２、４３、ＤＭＡ(Direct Memory Access)５１、Ａｕｄｉｏ５２、ＶＩＤＥＯ５３、ＩＤＥ(Integrated Development Environment)５４、ＧＰＩＯ(General Purpose I/O)５５及びＥｔｈｅｒｎｅｔ(登録商標)５６を有する。
【００２０】
ＣＰＵ１０は、ＯＳ(Operating System)２１、アプリケーションソフトウェア(以下、「アプリケーション」とする)２２及び割り込み検索用ＩＮＤＥＸ制御ドライバ(以下、「制御ドライバ」とする)２３を、例えば、不揮発性メモリやＨＤＤ(Hard Disk Drive)等の記憶装置(図示せず)からメモリ２０にロードして実行することにより、多機能ＬＳＩシステム１を制御する。
【００２１】
メモリ２０は、ＯＳ２１、アプリケーション２２、制御ドライバ２３、割り込み検索用ＩＮＤＥＸ２４及びＤｉｓｐａｔｃｈ Ｔａｂｌｅ２５を格納する。メモリ２０は、記憶部に相当する。
ＯＳ２１は、多機能ＬＳＩシステム１を制御する。また、ＯＳ２１は、割り込みを検出し、検出した割り込み要因を特定して、特定した割り込み要因に対応する割り込み処理２５１、２５２、２５３、２５４を実行する。ＯＳ２１は、制御部として機能する。
アプリケーション２２は、多機能ＬＳＩシステム１に含まれる各装置５１、５２、５３、５４、５５、５６を制御する。アプリケーションプログラム２２は、例えば、ＶＩＤＥＯ５３を制御するＤＴＶ(Digital Television)アプリケーション等の各装置５１、５２、５３、５４、５５、５６を制御するアプリケーションが含まれる。
制御ドライバ２３は、割り込み検索用ＩＮＤＥＸ２４の参照や更新を行う機能をＯＳ２１やアプリケーション２２に提供する。
【００２２】
割り込み検索用ＩＮＤＥＸ２４は、図２に例示するように、割り込みステータス・レジスタ３１、３２、３３のいずれかを示す２ビットのフィールドと、割り込みステータス・レジスタ３１、３２、３３の０〜３１ビットのうちのいずれのビットかを示す５ビットのフィードが１組となった情報が、全ての割り込みステータス・レジスタ３１、３２、３３に含まれる全てのビットのそれぞれに対応した数含まれる。割り込み検索用ＩＮＤＥＸ２４は、上述の１組となった情報が、０から９５までの９６つ(割り込みステータス・レジスタ数３×ビット数３２)用意され、それぞれに割り込み発生時に検索を行う順序を示す優先度が対応付けられる。本実施の形態１では、割り込み検索用ＩＮＤＥＸ２４の先頭のＩＮＤＥＸ＃０が一番優先度が高く、ＩＮＤＥＸ＃１、２、・・・と先頭から離れるにつれて順に優先度が低くなるように設定されている。割り込み検索用ＩＮＤＥＸ２４は、は、優先度情報に相当する。
【００２３】
Ｄｉｓｐａｔｃｈ Ｔａｂｌｅ２５は、割り込み要因、言い換えると、各装置５１、５２、５３、５４、５５、５６のそれぞれに対応するディスパッチ先の処理２５１、２５２、２５３、２５４、２５５を示すテーブルである。ＯＳ２１は、Ｄｉｓｐａｔｃｈ Ｔａｂｌｅ２５を参照して、割り込みが発生した割り込み要因に対応する割り込み処理を実行する。なお、割り込み処理２５１、２５２、２５３、２５４、２５５は、ＯＳ２１、アプリケーション２２や制御ドライバ２４に含まれる処理を実行することにより行われる。
【００２４】
割り込みステータス・レジスタ３１、３２、３３は、多機能ＬＳＩシステム１内のバスマスタにある割り込み要因を示すレジスタである。割り込みステータス・レジスタ３１、３２、３３は、各装置５１、５２、５３、５４、５５、５６のうち、割り込みが発生した装置を割り込み要因としてＣＰＵ１０に通知する。本実施の形態１では、図２に例示すように、割り込みステータス・レジスタ＃０(３１)の０ビット目にＤＭＡ５１、３ビット目にＡｕｄｉｏ５２、６ビット目にＶＩＤＥＯ５３が、割り込みステータス・レジスタ＃１(３２)の２ビット目にＩＤＥ５４、１４ビット目にＧＰＩＯ５５、３０ビット目にＥｔｈｅｒｎｅｔ５６が割り当てられている。
ここで、割り込みステータス・レジスタ３１、３２、３３は、厳密には、それぞれに割り込み要因を割り当てることができる３２個のステータス・レジスタを含んだステータス・レジスタ群のことである。なお、ステータス・レジスタ群に含まれるステータス・レジスタの数は、本実施の形態において例示した数に限られない。
【００２５】
割り込みイネーブル・レジスタ４１、４２、４３は、割り込みステータス・レジスタ３１、３２、３３の各ビットの割り込みが有効か無効かを示すレジスタである。例えば、割り込みイネーブル・レジスタ＃０(４１)の各ビットの値によって、割り込みステータス・レジスタ＃０(３１)の各ビットの割り込みが有効か無効かが示される。
ここで、割り込みイネーブル・レジスタ３１、３２、３３は、厳密には、それぞれが対応するステータス・レジスタの割り込みが有効か否かを示す３２個のイネーブル・レジスタを含んだイネーブル・レジスタ群のことである。なお、イネーブル・レジスタ群に含まれるイネーブル・レジスタの数は、本実施の形態において例示した数に限られない。
【００２６】
ＤＭＡ５１、Ａｕｄｉｏ５２、ＶＩＤＥＯ５３、ＩＤＥ５４、ＧＰＩＯ５５、Ｅｔｈｅｒｎｅｔ５６は、割り込みを発生する装置である。ここで、例えば、ＤＭＡ５１は、ＤＭＡコントローラであり、Ａｕｄｉｏ５２は、オーディオ・コントローラであり、ＶＩＤＥＯ５３は、ビデオ・デコーダである。また、例えば、ＩＤＥ５４は、ＩＤＥコントローラであり、ＧＰＩＯ５５は、ＧＰＩＯコントローラであり、Ｅｔｈｅｒｎｅｔ５６は、イーサネット(登録商標)・コントローラである。
【００２７】
本発明の本実施の形態１にかかる動作を説明する前に、図１〜３を参照して、本実施の形態１にかかる割り込み検索用ＩＮＤＥＸを用いた基本動作について説明する。
【００２８】
まず、図３(a)を参照して、割り込み検索用ＩＮＤＥＸ２４の初期化処理について説明する。
多機能ＬＳＩシステム１は、電源投入等がされて起動されると、ＯＳ２１が起動する前に、多機能ＬＳＩシステム１内のハードウェアを初期化するブートプログラム(図示せず)が割り込み検索用ＩＮＤＥＸ２４を初期化する(Ｓ３１０)。ここで、ブートプログラムは、例えば、ＢＩＯＳ(Basic Input/Output System)である。ブートプログラムは、優先度情報生成部として機能する。
【００２９】
本実施の形態１における考慮がなされていない場合、ブートプログラムは、ステップ３１０において、図２に例示するように、割り込みステータス・レジスタ＃０(３１)の０ビット目を示す情報を、割り込み検索用ＩＮＤＥＸ２４のＩＮＤＥＸ＃０に格納し、以降のビットについても順番に格納していく。ここでは、割り込みステータス・レジスタ＃０(３１)の１ビット目のように、未使用であるものも格納している。
なお、割り込みステータス・レジスタ３１、３２、３３を示すＲｅｇフィールドは、割り込みステータス・レジスタ＃０(３１)は、"００"として、割り込みステータス・レジスタ＃１(３２)は、"０１"として、割り込みステータス・レジスタ＃２(３３)は、"１０"として示す。
【００３０】
次に、図３(b)を参照して、割り込みステータス・レジスタ３１、３２、３３の検索処理について説明する。
ＯＳ２１の起動後、各装置５１、５２、５３、５４、５５、５６のうちのいずれかの装置から割り込みが発生した場合、ＯＳ２１は、まず、割り込み検索用ＩＮＤＥＸ２４を参照するＩＮＤＥＸ番号をＩＮＤＥＸ＃０とする(Ｓ３２０)。ＯＳ２１は、ＩＮＤＥＸ＃０を参照し(Ｓ３２１)、ＩＮＤＥＸ＃０が指し示す割り込みステータス・レジスタ３１の０ビット目を参照する(Ｓ３２２)。
参照したビットがＯＮになっている場合、つまり、参照したビットが割り込み発生を示している場合(Ｓ３２３)、ＯＳ２１は、ステップＳ３２４の処理を実行する。
参照したビットがＯＦＦになっている場合、つまり、参照したビットが割り込み発生を示していない場合(Ｓ３２３)、ＯＳ２１は、ＩＮＤＥＸ番号をＩＮＤＥＸ＃１に更新し(Ｓ３２０)、ＩＮＤＥＸ＃１を参照し(Ｓ３２１)、ＩＮＤＥＸ＃１が指し示す割り込みステータス・レジスタ３１の１ビット目を参照する(Ｓ３２２)。以降、割り込み発生を示しているビットを検出するまで、同様の処理を繰り返す。
【００３１】
ＯＳ２１は、割り込み発生を示しているビットを検出した場合、このビットに対応する割り込み要因による割り込みが発生、つまり、このビットに対応する装置からの割り込みが発生したこととなるため、Ｄｉｓｐａｔｃｈ Ｔａｂｌｅ２５を参照し、この割り込み要因に対応する割り込み処理を実行する(Ｓ３２４)。
しかし、このままでは、割り込みステータス・レジスタ＃０(３１)の先頭ビットから順番に割り込みが発生しているビットを検索しているため、背景技術に記載した方法と検索順序に変わりがない。
【００３２】
続いて、図１、４、５を参照して、本発明の実施の形態１にかかる動作について説明する。
【００３３】
まず、図５(a)を参照して、割り込み検索用ＩＮＤＥＸ２４の初期化処理について説明する。
多機能ＬＳＩシステム１は、起動されると、ＯＳ２１が起動する前に、多機能ＬＳＩシステム１内のハードウェアを初期化するブートプログラムが割り込み検索用ＩＮＤＥＸ２４を初期化する(Ｓ４１０)。
本実施の形態１では、ブートプログラムは、ステップＳ４１０において、図４に例示するように、ＩＮＤＥＸの初期化をする場合に、割り込みイネーブル・レジスタ４１、４２、４３を参照し、割り込みステータス・レジスタ３１、３２、３３の各ビットのうち、割り込みが有効となっているビットを示す情報のみを順番に割り込み検索用ＩＮＤＥＸ２４に格納していく。
そして、ブートプログラムは、割り込み検索用ＩＮＤＥＸ２４のうち、割り込みステータス・レジスタ３１、３２、３３の割り込みが有効となっているビットを示す情報が格納される部分と、それ以外の割り込みステータス・レジスタ３１、３２、３３のビットを示す情報が格納されていない部分との境界を示す有効無効境界ポインタも併せてメモリ２０に格納する。
【００３４】
次に、図５(b)に示す割り込みステータス・レジスタ３１、３２、３３の検索処理については、図３(b) よって説明した内容と同様であるが、本実施の形態１では、割り込み発生を示しているビットの検索をステップＳ４１０において生成した割り込み検索用ＩＮＤＥＸ２４に基づいて、割り込みが有効な領域のビットのみについて行う。つまり、割り込みが有効となっている割り込み要因しか検索を行わない。
【００３５】
次に、図５(c)(d)を参照して、割り込み検索用ＩＮＤＥＸ２４の更新処理について説明する。
割り込みイネーブル・レジスタ４１、４２、４３のいずれかのビットがＯＦＦからＯＮになった場合、つまり、このビットに対応する割り込みステータス・レジスタのビットの割り込みが有効となった場合、ＯＳ２１は、制御ドライバ２３によって、割り込み検索用ＩＮＤＥＸ２４の有効無効境界ポインタが示すインデックス番号の位置に、割り込みが有効となった割り込みステータス・レジスタのビットを示す情報を格納する(Ｓ４３０)。
そして、ＯＳ２１は、有効無効境界ポインタの値を追加したＩＮＤＥＸ番号の次のＩＮＤＥＸ番号を示す値に更新する(Ｓ４３１)。
【００３６】
また、割り込みイネーブル・レジスタ４１、４２、４３のいずれかのビットがＯＮからＯＦＦになった場合、つまり、このビットに対応する割り込みステータス・レジスタのビットの割り込みが無効となった場合、ＯＳ２１は、制御ドライバ２３によって、割り込み検索用ＩＮＤＥＸ２４からこのビットを示す情報を削除し、このビットを示す情報より優先度の低い情報を、１つずつ優先度の高いＩＮＤＥＸ番号の位置に移動して詰め込むことより、割り込み検索用ＩＮＤＥＸ２４を更新する(Ｓ４４０)。
そして、ＯＳ２１は、有効無効境界ポインタの値を１つ優先度の高い位置のＩＮＤＥＸ番号を示す値に更新する(Ｓ４４１)。
【００３７】
以上に説明したように、本実施の形態１では、割り込みステータス・レジスタのうちの割り込みが有効となっているビットのみを検索するようにしているため、無駄な検索時間を除くことができるため、割り込み要因を特定するまでの時間を短縮することができ、割り込み発生からディスパッチまでの時間を短縮することができる。これにより、システムパフォーマンスを向上することができる。
【００３８】
本発明の実施の形態２．
続いて、本発明の実施の形態２にかかる多機能ＬＳＩシステムについて説明する。
なお、本発明の実施の形態２にかかる多機能ＬＳＩシステムの構成については、実施の形態１と同様であるため説明を省略する。
【００３９】
続いて、図１、６、７を参照して、本発明の実施の形態１にかかる動作について説明する。
まず、図７(a)に示す割り込み検索用ＩＮＤＥＸ２４の初期化処理については、図３(a)によって説明した内容と同様であるため説明を省略する。
【００４０】
次に、図７(b)を参照して、割り込みステータス・レジスタ３１、３２、３３の検索処理について説明する。
図７(b)に示すステップＳ５２０〜Ｓ５２４については、図３(b) よって説明したステップＳ３２０〜Ｓ３２４と同様であるが、本実施の形態２では、ステップＳ５２５を有する点が異なる。
本実施の形態２では、割り込みが発生し、発生した割り込み要因を特定した場合に、ＯＳ２１は、制御ドライバ２３によって、特定した割り込み要因のビットを示す情報を、その情報より優先度の高い情報とスワップして、割り込み検索用ＩＮＤＥＸ２４を更新する(Ｓ５２５)。
【００４１】
具体的には、図６に例示するように、ＤＭＡ５１からの割り込みが発生した場合には、ＤＭＡ５１に対応するビットを示す情報と、それより優先度が１つ高いＧＰＩＯ５５に対応するビットを示す情報をスワップ７１する。また、ＶＩＤＥＯ５３からの割り込みが発生した場合には、ＶＩＤＥＯ５３に対応するビットを示す情報と、それより優先度が１つ高いＡｕｄｉｏ５２に対応するビットを示す情報をスワップ７２する。これにより、発生頻度の高い割り込み要因ほど優先度を高くすることができる。
【００４２】
以上に説明したように、本実施の形態２では、発生頻度の高い割り込み要因の優先度を高くするように動的に変更して、発生頻度の高い割り込み要因を早く特定することができるようにしているため、割り込み要因を特定するまでの時間を短縮することができ、割り込み発生からディスパッチまでの時間を短縮することができる。これにより、システムパフォーマンスを向上することができる。
【００４３】
本発明の実施の形態３．
続いて、本発明の実施の形態３にかかる多機能ＬＳＩシステムについて説明する。
なお、本発明の実施の形態３にかかる多機能ＬＳＩシステムの構成については、実施の形態１と同様であるため説明を省略する。
【００４４】
続いて、図１、８、９を参照して、本発明の実施の形態３にかかる動作について説明する。
【００４５】
まず、図９(a)を参照して、割り込み検索用ＩＮＤＥＸ２４の初期化処理について説明する。
多機能ＬＳＩシステム１は、起動されると、ＯＳ２１が起動する前に、多機能ＬＳＩシステム１内のハードウェアを初期化するブートプログラムが割り込み検索用ＩＮＤＥＸ２４を初期化する(Ｓ６１０)。
本実施の形態３では、ブートプログラムは、ステップＳ６１０において、図８に例示するように、割り込み検索用ＩＮＤＥＸ２４を汎用Ｉ／Ｏ関連割り込み要因、ストリーミング関連割り込み要因、グラフィック・オーディオ関連割り込み要因の割り込み要因の種類に応じた各ブロックに区分して、割り込みステータス・レジスタ３１、３２、３３の各ビットを示す情報を対応するブロックに格納する。
【００４６】
汎用Ｉ／Ｏ関連割り込み要因のブロックには、汎用Ｉ／Ｏ関連の割り込み要因に対応するビットが格納され、例えば、ＤＭＡ５１、ＩＤＥ５４及びＧＰＩＯ５５に対応するビットを示す情報が格納される。ストリーミング関連割り込み要因のブロックには、ストリーミング関連の割り込み要因に対応するビットを示す情報が格納され、例えば、Ｅｔｈｅｒｎｅｔ５６に対応するビットを示す情報が格納される。グラフィック・オーディオ関連割り込み要因のブロックには、グラフィック・オーディオ関連の割り込み要因に対応するビットを示す情報が格納され、例えば、Ａｕｄｉｏ５２及びＶＩＤＥＯ５３に対応するビットを示す情報が格納される。
【００４７】
そして、それぞれのブロックには優先度(以下、「ブロック優先度」とする)が割り当てられる。汎用Ｉ／Ｏ関連の割り込み要因のブロックに"０"、ストリーミング関連割り込み要因のブロックに"１"、グラフィック・オーディオ関連割り込み要因のブロックに"２"が割り当てられる。"０"が最もブロック優先度が高く、"２"が最もブロック優先度が低い。アプリケーション２２が動作していない場合、汎用Ｉ／Ｏ関連割り込み要因のブロック優先度が最も高くなる。
【００４８】
次に、図９(b)に示す割り込みステータス・レジスタ３１、３２、３３の検索処理について説明する。
図９(b)に示すステップＳ６２１〜Ｓ６２４については、図３(b) よって説明したステップＳ３２１〜Ｓ３２４と同様であるが、ステップＳ６２０の処理が異なる。
ＯＳ２１の起動後、各装置５１、５２、５３、５４、５５、５６のうちのいずれかの装置から割り込みが発生した場合、ＯＳ２１は、まず、図８(a)に示すようなブロック優先度が設定されている場合、最もブロック優先度の高い汎用Ｉ／Ｏ関連割り込み要因のブロックのうちの最も優先度の高いＩＮＤＥＸ番号を割り込み検索用ＩＮＤＥＸ２４を参照するＩＮＤＥＸ番号とする(Ｓ６２０)。以降、ＯＳ２１は、汎用Ｉ／Ｏ関連割り込み要因のブロックの最後のＩＮＤＥＸ番号まで参照を行うと(Ｓ６２０、Ｓ６２１、Ｓ６２２、Ｓ６２３)、次にブロック優先度の高いストリーミング関連割り込み要因のブロックのうちの最も優先度の高いＩＮＤＥＸ番号から同様の処理を行う(Ｓ６２０、Ｓ６２１、Ｓ６２２、Ｓ６２３)。以降、グラフィック・オーディオ関連割り込み要因のブロックについても同様の処理を行う。
【００４９】
つまり、図８(b)に示すようなブロック優先度が設定されている場合には、ＯＳ２１は、最もブロック優先度の高いグラフィック・オーディオ関連割り込み要因のブロックのうちの最も優先度の高いＩＮＤＥＸ番号を割り込み検索用ＩＮＤＥＸ２４を最初に参照するＩＮＤＥＸ番号とする。
ここで、ブロック優先度及び各ブロックに含まれるＩＮＤＥＸ番号の範囲の判断は、例えば、ブートプログラムが割り込み検索用ＩＮＤＥＸ２４の生成時に、メモリ２０に各ブロックのブロック優先度を示す情報や各ブロックに含まれるＩＮＤＥＸ番号の範囲を示す情報を格納するようにして、ＯＳ２１が、もしくは、ＯＳ２１が制御ドライバ２３によって、この情報を参照することにより判断可能としてもよく、上述のステップＳ６２０における判断が可能とする方法はどのようなものであってもよい。
【００５０】
次に、図９(c)を参照して、割り込み検索用ＩＮＤＥＸ２４の更新処理について説明する。
アプリケーション２２に含まれるＤＴＶアプリケーションは、起動されると、制御ドライバ２３によって、汎用Ｉ／Ｏ関連割り込み要因のブロック優先度と、自身が制御する装置に対応する割り込み要因が集約されたグラフィック・オーディオ関連割り込み要因のブロック優先度をスワップ８１する(Ｓ６３０)。なお、ここでの処理は、例えば、メモリ２０に格納される各ブロックのブロック優先度を示す情報を更新することにより行う。
これにより、割り込みが発生した場合に、ＤＴＶアプリケーションの動作中に発生する割り込みの割り込み要因を最優先で検索することができる。
また、ＤＴＶアプリケーションは、終了するときに、再び制御ドライバ２３によって、グラフィック・オーディオ関連割り込み要因のブロック優先度と、汎用Ｉ／Ｏ関連割り込み要因のブロック優先度をスワップし、ＤＴＶアプリケーション起動前の状態に戻す。
また、ＤＴＶアプリケーションが起動している間に、ストリーミング関連の割り込みを多用するアプリケーション(例えば、インターネットアプリケーション)が起動された場合、どちらの割り込みを優先するかは、アプリケーションごとに優先度を設定しておくことで解決する。例えば、ＤＴＶアプリケーションの優先度を０、インターネットアプリケーションの優先度を１とすることで整合しておく。
【００５１】
以上に説明したように、本実施の形態３では、アプリケーションが起動されているときに、アプリケーションの動作中に発生する割り込み要因の優先度を高くするように動的に変更しているため、割り込み要因を特定するまでの時間を短縮することができ、割り込み発生からディスパッチまでの時間を短縮することができる。これにより、システムパフォーマンスを向上することができる。
【００５２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本発明の適用対象は、多機能ＬＳＩを備えたものに限定されず、割り込みについて処理を行うものであればどのようなものであってもよい。
また、割り込み要因を特定する処理や、検出した割り込み要因に対応する割り込み処理を起動する処理等の本発明の実施の形態における処理の一部又はその全部をハードウェアによって実現してもよい。
また、割り込み検索用ＩＮＤＥＸの割り込みステータス・レジスタ及び割り込みステータス・レジスタのビットを示すフィールドのサイズは、本実施の形態に例示したサイズに限られない。
【００５３】
また、本発明にかかる実施の形態２において、所定の閾値を設けて、所定の閾値を超える回数の割り込みが発生した場合に、割り込み要因の優先度を上げるようにしてもよい。さらに、例えば、割り込みが発生した割り込み要因を一番高い優先度の割り込み要因とスワップするようにしてもよく、優先度をどのぐらい上げるかについて任意に決定してもよい。
また、本発明にかかる実施の形態３では、汎用Ｉ／Ｏ関連割り込み要因等の種類毎にブロックを区分した場合について例示しているが、これに限られず、任意の種類について、ブロックを区分してもよい。
【００５４】
また、本発明にかかる実施の形態を組み合わせて実施するようにしてもよい。例えば、実施の形態１及び２を組み合わせて、最初に有効となっている割り込み要因のみの割り込み検索用ＩＮＤＥＸを生成し、その後、割り込み発生頻度の高い割り込み要因を優先して検索するように、優先度を動的に変更するようにしてもよい。
さらに、例えば、実施の形態１及び３を組み合わせて、各ブロックを割り込みが有効となっている割り込み要因のみから構成されるようにして割り込み検索用ＩＮＤＥＸを生成するようにしてもよく、実施の形態２及び３を組み合わせて、各ブロック内において割り込みが発生した割り込み要因を優先して検索するように、優先度を動的に変更するようにしてもよい。
その他に、例えば、実施の形態１乃至３を組み合わせて、各ブロックを割り込みが有効となっている割り込み要因のみから構成されるようにして割り込み検索用ＩＮＤＥＸを生成し、各ブロック内において割り込みが発生した割り込み要因を優先して検索するように、優先度を動的に変更するようにしてもよい。
【００５５】
以上に説明した本発明の実施の形態の機能を実現するプログラムは、様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＤＶＤ(Digital Versatile Disc)、ＢＤ(Blu-ray Disc)、ＲＯＭ(Read Only Memory)カートリッジ、バッテリバックアップ付きＲＡＭ(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジを含む。また、通信媒体には、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体を含み、インターネットも含まれる。
【００５６】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているＯＳもしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【００５７】
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【００５８】
なお、本願発明の発明者は、発明の効果について確認を行っている。図１０に、その確認でえられた性能ベンチマークについて示す。
図１０は、割り込みステータス・レジスタ単位で割り込み要因の検索順序を変更した場合の性能を比較した結果を示すものである。図１０は、割り込みステータス・レジスタ＃０〜２を有し、割り込みステータス・レジスタ＃１における割り込みが多く発生していたシステムにおいて、常に割り込みステータス・レジスタ＃０から割り込み要因の検索を行っていたものを、割り込みステータス・レジスタ＃１から優先して割り込み要因の検索を行うようにした場合における性能比較結果を示している。
図１０に示すように、割り込みステータス・レジスタの検索順序を＃０、＃１、＃２の順に行っていた改善前のものに比べ、＃１、＃０、＃２の順に行うようにした改善版のものは、評価項目のそれぞれに示した処理を実行する時間が短縮されていることが分かる。
【００５９】
上記の性能比較結果を勘案すると、本発明にかかる実施の形態１を適用した場合における各評価項目の処理時間は、有効な割り込み要因のみが優先して検索されるようになるため、システムの動作開始直後から、改善前のものよりも短縮され、改善版のものよりもやや短縮されるか、同程度となると考えられる。
【００６０】
また、本発明にかかる実施の形態２を適用した場合における各評価項目の処理時間は、システムの動作開始直後は、改善前のものと同程度であるが、時間の経過に伴い、割り込み頻度の高い割り込み要因が優先して検索されるようになるため、徐々に改善版のものに近づき、さらに短縮されるものと考えられる。
【００６１】
また、本発明にかかる実施の形態３を適用した場合における各評価項目の処理時間は、動作しているアプリケーションに対応した割り込み要因が優先して検索されるため、アプリケーション起動中の場合、改善版のものよりも短縮されると考えられる。
【００６２】
また、本発明にかかる実施の形態１及び２を適用した場合における各評価項目の処理時間は、有効な割り込み要因のみが優先して検索されるようになり、さらに時間の経過に伴い、割り込み頻度の高い割り込み要因が優先して検索されるようになるため、時間の経過とともに、改善版のものをかなり短縮すると考えられる。
【符号の説明】
【００６３】
１、８    多機能ＬＳＩシステム
１０    ＣＰＵ
２０    メモリ
２１    ＯＳ
２２    アプリケーションソフト
２３    割り込み検索用ＩＮＤＥＸ制御ドライバ
２４    割り込み検索用ＩＮＤＥＸ
２５    Ｄｉｓｐａｔｃｈ Ｔａｂｌｅ
３１、３２、３３、８１、８２、８３    割り込みステータス・レジスタ
４１、４２、４３    割り込みイネーブル・レジスタ
５１    ＤＭＡ
５２    Ａｕｄｉｏ
５３    ＶＩＤＥＯ
５４    ＩＤＥ
５５    ＧＰＩＯ
５６    Ｅｔｈｅｒｎｅｔ
２５１、２５２、２５３、２５４、２５５    割り込み処理
【図１】
2010277410.tif 000003
【図２】
2010277410.tif 000004
【図３】
2010277410.tif 000005
【図４】
2010277410.tif 000006
【図５】
2010277410.tif 000007
【図６】
2010277410.tif 000008
【図７】
2010277410.tif 000009
【図８】
2010277410.tif 000010
【図９】
2010277410.tif 000011
【図１０】
2010277410.tif 000012
【図１１】
2010277410.tif 000013