(57)【要約】【課題】マルチタスクシステムにおいて、それぞれのタスクがデバイスグループを意識しなくとも省電力化を図る。【解決手段】デバイスクロック制御部１０４は、実行中タスクがＩＯデバイスを利用開始すると、デバイスグループテーブル１０３とデバイス利用テーブル１０２とを参照し、利用中ＩＯデバイスと同じデバイスグループに属し、且つ利用中ＩＯデバイスの利用終了までに実行中タスクに利用される他のＩＯデバイスを検索し、利用中ＩＯデバイスと他のＩＯデバイスのうち最も遅い利用終了時点をスイッチタイミングとする。タスクスケジューラ１０１は、実行中タスクが前記スイッチタイミング以前に他のタスクにスイッチされようとする場合、前記スイッチタイミングまでスイッチを遅延させるとともに、全てのＩＯデバイスが利用されていないデバイスグループが存在すると対応するクロックゲート（Ｇ−１）あるいは（Ｇ−２）をオフにする。【選択図】図２
2009258832.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを順次実行するマルチタスク実行装置において、
各タスクが利用する複数のＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）デバイスであって、動作に必要な動作信号の信号特性を同じくするデバイスグループごとにグループ分けされた複数のＩＯデバイスと、
前記デバイスグループ毎に設けられ、制御を受けることにより対応する前記デバイスグループへの前記動作信号の供給をオンオフするグループ対応オンオフ部と、
前記デバイスグループと前記デバイスグループに属する前記ＩＯデバイスとの関係を示すデバイスグループ情報と、前記タスクと前記タスクが利用する前記ＩＯデバイスと前記タスクにおける前記ＩＯデバイスの利用期間との関係を示すデバイス利用情報とを含むデバイス関係情報を格納する格納部と、
前記格納部に格納された前記デバイス関係情報に含まれる前記デバイスグループ情報と前記デバイス利用情報とに基づいて、実行を開始した前記タスクである実行中タスクを他の前記タスクにスイッチするべきスイッチタイミングを指示するタイミング指示信号を生成して出力するデバイスクロック制御部と、
前記デバイスクロック制御部から前記タイミング指示信号を入力し、前記タイミング指示信号を入力すると前記実行中タスクが前記タイミング指示信号の指示する前記スイッチタイミングよりも前に前記他のタスクにスイッチされようとするときには、前記タイミング指示信号の前記スイッチタイミングまで前記実行中タスクのスイッチを遅延させるとともに、すべての前記ＩＯデバイスが利用されていないデバイスグループが存在する場合にはこのデバイスグループに対応する前記グループ対応オンオフ部をオフにする制御を実行する制御実行部と
を備えたことを特徴とするマルチタスク実行装置。
【請求項２】
前記デバイスクロック制御部は、
前記実行中タスクがいずれかの前記ＩＯデバイスの利用を開始した場合には、前記デバイスグループ情報と前記デバイス利用情報とを参照することにより、前記実行中タスクにより利用される他のＩＯデバイスであって、利用が開始された前記ＩＯデバイスと同じ前記デバイスグループに属し、かつ、利用が開始された前記ＩＯデバイスの利用終了までに利用が開始される前記他のＩＯデバイスが存在するかどうかを判定し、存在すると判定すると、利用が開始された前記ＩＯデバイスと前記他のＩＯデバイスとのなかで前記実行中タスクによる利用が最も遅く終了する前記ＩＯデバイスの利用終了時点を前記スイッチタイミングとして前記タイミング指示信号を生成して出力することを特徴とする請求項１記載のマルチタスク実行装置。
【請求項３】
前記デバイスクロック制御部は、
前記実行中タスクが他のタスクにスイッチされようとするときに、起動して処理を開始することを特徴とする請求項１または２のいずれかに記載のマルチタスク実行装置。
【請求項４】
前記デバイスクロック制御部は、
前記実行中タスクによるＩＯ要求が生じたときに、起動して処理を開始することを特徴とする請求項１または２のいずれかに記載のマルチタスク実行装置。
【請求項５】
前記ＩＯデバイスの前記動作信号は、
動作クロックであり、
前記信号特性は、
前記動作クロックの周波数であることを特徴とる請求項１〜４のいずれかに記載のマルチタスク実行装置。
【請求項６】
前記ＩＯデバイスの前記動作信号は、
動作電圧であり、
前記信号特性は、
前記動作電圧の電圧値であることを特徴とる請求項１〜４のいずれかに記載のマルチタスク実行装置。
【請求項７】
それぞれのタスクが利用する複数のＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）デバイスであって、動作に必要な動作信号の信号特性を同じくするデバイスグループごとにグループ分けされた複数のＩＯデバイスと、前記デバイスグループ毎に設けられ、制御を受けることにより対応する前記デバイスグループへの前記動作信号の供給をオンオフするグループ対応オンオフ部とを備え、それぞれの前記タスクを順次実行するコンピュータであるマルチタスク実行装置に、
（１）前記デバイスグループと前記デバイスグループに属する前記ＩＯデバイスとの関係を示すデバイスグループ情報と、前記タスクと前記タスクが利用する前記ＩＯデバイスと前記タスクにおける前記ＩＯデバイスの利用期間との関係を示すデバイス利用情報とを含むデバイス関係情報を格納する処理と、
（２）格納された前記デバイス関係情報に含まれる前記デバイスグループ情報と前記デバイス利用情報とに基づいて、実行を開始した前記タスクである実行中タスクを他の前記タスクにスイッチするべきスイッチタイミングを指示するタイミング指示信号を生成する処理と、
（３）前記タイミング指示信号が生成されると前記実行中タスクが前記タイミング指示信号の指示する前記スイッチタイミングよりも前に前記他のタスクにスイッチされようとするときには、前記タイミング指示信号の前記スイッチタイミングまで前記実行中タスクのスイッチを遅延させるとともに、すべての前記ＩＯデバイスが利用されていないデバイスグループが存在する場合にはこのデバイスグループに対応する前記グループ対応オンオフ部をオフにする処理と
を実行させることを特徴とするマルチタスク実行プログラム。
【請求項８】
請求項７のマルチタスク実行プログラムを記録したコンピュータ実行可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動作クロックの周波数毎にグループ化された複数のＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）デバイスを持ち、各ＩＯデバイスへのクロック供給をＯＮ／ＯＦＦできると共に、グループ毎にもクロック供給をＯＮ／ＯＦＦできるコンピュータシステムまたはシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）での省電力制御方式に関するもので、優先度をベースとしたタスクの実行制御を行うオペレーティングシステムにおいて、タスク毎のデバイス利用状況に応じてデバイスグループのＯＮ時間が最短となるようタスクの実行制御を行う方式（マルチタスク実行装置及びマルチタスク実行プログラム）に関する。
【背景技術】
【０００２】
ＩＯデバイスのきめ細かなクロック制御を可能とするコンピュータシステムまたはシステムＬＳＩにおける、簡単なクロック系統図を図１０に示す。図１０において、発振器２０１は水晶発振器等のクロックを生成する発振器である。逓倍器２０２ａ，２０２ｂは発振器２０１から出力されたクロックの周波数を増幅させるための逓倍器である。クロックゲート（Ｇ−Ａ）〜（Ｇ−Ｆ）及びクロックゲート（Ｇ−１）、クロックゲート（Ｇ−２）は、クロックの伝達をＯＮ／ＯＦＦ制御するクロックゲートである。
【０００３】
通常、発振器２０１から出力されるクロック周波数は、各ＩＯデバイスが必要とするクロック周波数よりも低い。このため、ＰＬＬ（Ｐｈａｓｅ−Ｌｏｃｋｅｄ  Ｌｏｏｐ）のような逓倍器を用いて、所望の高周波数クロックに変換してから各ＩＯデバイスへクロックを供給している。同じ周波数で動作するＩＯデバイス（図１０ではＩＯデバイスＡ〜Ｃ、またはＩＯデバイスＤ〜Ｆ）は、同じ逓倍器からの出力クロックを受けて動作しており、これらをデバイスグループと呼んでいる。各ＩＯデバイスは動作する時のみクロック信号を必要とするため、未使用状態ではＩＯデバイスへのクロック供給を各クロックゲートで伝達させないようにすることで、低消費電力化を図っている。
【０００４】
一方、ＩＯデバイスＡ〜Ｃが全て未使用状態であれば、逓倍器２０２ａ、２０２ｂ等も停止させる事が可能となり、更なる低消費電力化が望める。
【０００５】
そのため、発振器２０１と逓倍器２０２ａ、２０２ｂとの間にもクロックゲート（Ｇ−１），クロックゲート（Ｇ−２）が付けられている。
【０００６】
（１）従来は、プログラムからの各デバイスへの操作指示に従ってクロックゲート（Ｇ−Ａ）〜（Ｇ−Ｆ）をＯＮ／ＯＦＦし、各クロックゲートのＯＮ／ＯＦＦ状態に従ってクロックゲート（Ｇ−１），クロックゲート（Ｇ−２）のＯＮ／ＯＦＦを制御していた。
（２）一方、コンピュータシステムの特定機能をグループ化し、タスクのスケジューリング制御と連動させることでシステムの低消費電力化を図る方法が、特開２００６−２９３７６８号公報に記載されている。
【特許文献１】特開２００６−２９３７６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
（１）しかし、従来のクロックゲートの制御方法では、マルチタスクシステムのような複数のプログラムが並列動作し、それぞれのタスクは実現すべき機能のためにデバイスのクロックグループのことは考慮せずにデバイスを利用するため、クロックゲート（Ｇ−１），クロックゲート（Ｇ−２）の効率的な制御は行われていなかった。
（２）また、特開２００６−２９３７６８号公報は、プログラムを実行する主体であるプロセッサに対してのみ適用可能な方法であり、プログラムの実行とは並行して動作するＩＯデバイスに関しては何ら考慮はされていない。
【０００８】
この発明は上記のような課題を解決するためになされたもので、マルチタスクシステムにおいて、それぞれのタスクがデバイスグループを意識しなくとも、各デバイスの省電力効果を変えることなく、クロックゲート（Ｇ−１），クロックゲート（Ｇ−２）の効率的な制御を行えるようにし、コンピュータシステムまたはシステムＬＳＩの省電力効果をより向上させることを目的とする。
【課題を解決するための手段】
【０００９】
この発明のマルチタスク実行装置は、
複数のタスクを順次実行するマルチタスク実行装置において、
各タスクが利用する複数のＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）デバイスであって、動作に必要な動作信号の信号特性を同じくするデバイスグループごとにグループ分けされた複数のＩＯデバイスと、
前記デバイスグループ毎に設けられ、制御を受けることにより対応する前記デバイスグループへの前記動作信号の供給をオンオフするグループ対応オンオフ部と、
前記デバイスグループと前記デバイスグループに属する前記ＩＯデバイスとの関係を示すデバイスグループ情報と、前記タスクと前記タスクが利用する前記ＩＯデバイスと前記タスクにおける前記ＩＯデバイスの利用期間との関係を示すデバイス利用情報とを含むデバイス関係情報を格納する格納部と、
前記格納部に格納された前記デバイス関係情報に含まれる前記デバイスグループ情報と前記デバイス利用情報とに基づいて、実行を開始した前記タスクである実行中タスクを他の前記タスクにスイッチするべきスイッチタイミングを指示するタイミング指示信号を生成して出力するデバイスクロック制御部と、
前記デバイスクロック制御部から前記タイミング指示信号を入力し、前記タイミング指示信号を入力すると前記実行中タスクが前記タイミング指示信号の指示する前記スイッチタイミングよりも前に前記他のタスクにスイッチされようとするときには、前記タイミング指示信号の前記スイッチタイミングまで前記実行中タスクのスイッチを遅延させるとともに、すべての前記ＩＯデバイスが利用されていないデバイスグループが存在する場合にはこのデバイスグループに対応する前記グループ対応オンオフ部をオフにする制御を実行する制御実行部と
を備えたことを特徴とする。
【発明の効果】
【００１０】
この発明により、マルチタスクシステムにおいて、それぞれのタスクがデバイスグループを意識しなくとも、省電力化を図ることができる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１から図９を参照して実施の形態１のマルチタスク実行装置１００を説明する。図１は、コンピュータで実現される場合のマルチタスク実行装置１００のハードウェア資源の一例を示す図である。図１において、マルチタスク実行装置１００は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００１２】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００１３】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００１４】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１５】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００１６】
ファイル群８２４には、以下に述べる実施の形態の説明において、デバイス関係情報として説明する情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００１７】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１８】
また、以下に述べる実施の形態の説明において、「〜部」として説明するものは、「手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１９】
図２は、実施の形態１におけるマルチタスク実行装置１００のブロック図である。マルチタスク実行装置１００は、コンピュータシステムまたはシステムＬＳＩなどとして実現される。図２は、マルチタスク実行装置１００の主要な構成要素のみを示している。図２は、背景技術に示した図１０の構成に、さらに、タスクスケジューラ１０１（制御実行部の一例）、デバイスクロック制御部１０４、デバイス関係情報格納部１１０を加えた構成である。
【００２０】
（タスクスケジューラ１０１）
タスクスケジューラ１０１は、マルチタスク実行装置１００において各タスクの実行順序を制御するタスクスケジューラであり、典型的には各タスクの優先度の順に実行させる。また、後述のように、タスクスケジューラ１０１は、実行中タスクのスイッチを遅延させるとともに、すべてのＩＯデバイスが利用されていないデバイスグループが存在する場合にはこのデバイスグループに対応するクロックゲート（Ｇ−１）あるいはクロックゲート（Ｇ−１）をオフにする制御を実行する。
【００２１】
（デバイス関係情報１１１）
デバイス関係情報１１１は、デバイス利用テーブル１０２とデバイスグループテーブル１０３とから構成される。デバイス利用テーブル１０２、デバイスグループテーブル１０３の詳細は図４で後述するが、概要を述べる。デバイス利用テーブル１０２は、各タスクが利用するＩＯデバイスの情報を保持するテーブルである。１つのタスクに１つのテーブルが設定されている。デバイスグループテーブル１０３は、コンピュータシステムまたはシステムＬＳＩ等として実現されるマルチタスク実行装置１００内に存在するＩＯデバイスを、動作クロックの周波数を同じくするグループごとにグループ化した情報を保持する。デバイス利用テーブル１０２とデバイスグループテーブル１０３とは、デバイス関係情報１１１を構成する。「デバイス関係情報１１１」とは、デバイスグループとデバイスグループに属するＩＯデバイスとの関係を示すデバイスグループ情報と、タスクとタスクが利用するＩＯデバイスとタスクにおけるＩＯデバイスの利用期間との関係を示すデバイス利用情報とを含む情報である。これらの内容を含むものであれば、デバイス関係情報１１１は、デバイス利用テーブル１０２とデバイスグループテーブル１０３とから構成されることに限らない。デバイス関係情報１１１は、後述する図８のような内容でも構わない。
【００２２】
（デバイスクロック制御部１０４）
デバイスクロック制御部１０４は、デバイス利用テーブル１０２、デバイスグループテーブル１０３の情報に従って、タスクの実行順序制御を一時的に停止するようタスクスケジューラ１０１に指示する。後述のように、
デバイスクロック制御部１０４は、実行中タスクがＩＯデバイスを利用開始すると、デバイスグループテーブル１０３とデバイス利用テーブル１０２とを参照し、利用中のＩＯデバイスと同じデバイスグループに属し、かつ、利用中のＩＯデバイスの利用終了までに実行中タスクに利用される他のＩＯデバイスを検索し、検索の結果、他のＩＯデバイスがヒットすると、利用中のＩＯデバイスとヒットした他のＩＯデバイスのうち最も遅い利用終了時点を実行中タスクから他のタスクへのスイッチタイミングとして指示するタイミング指示信号を生成してタスクスケジューラ１０１に出力する。タスクスケジューラ１０１は、タイミング指示信号を入力すると、実行中タスクが前記スイッチタイミング以前に他のタスクにスイッチされようとする場合には、前記スイッチタイミングまで他のタスクへのスイッチを遅延させるとともに、全てのＩＯデバイスが利用されていないデバイスグループが存在すると、対応するクロックゲート（Ｇ−１）あるいはクロックゲート（Ｇ−２）をオフにする。
【００２３】
図３は、タスク１、タスク２という２つのタスクが、図２に示す各ＩＯデバイスをどのように利用しているかを時系列で示した図である。図３では、２つのタスクのうち、タスク１よりもタスク２の方が優先度が高いとしている。タスク１の実行状態を実線で示し、タスク２の実行状態を点線で示している。図３では、タスク１は、４単位の時間の実行時間を持ち、実行開始とともにデバイスグループ１のデバイスＡを２単位時間利用し、実行開始から０．５単位時間後に１．５単位時間だけデバイスＢを利用し、実行開始から２単位時間後に２単位時間だけデバイスグループ２のデバイスＤを利用する。点線で示すタスク２についても同様である。すなわち、タスク２は、４単位の時間の実行時間を持ち、実行開始とともにデバイスグループ２のデバイスＥを１．５単位時間利用し、実行開始から１単位時間後にデバイスグループ１のデバイスＣを３単位時間利用し、実行開始から１．５単位時間後にデバイスグループ２のデバイスＦを２．５単位時間だけ利用する。
【００２４】
（デバイス関係情報１１１の具体例）
図４は、図２のデバイス関係情報１１１を構成するデバイスグループテーブル１０３，デバイス利用テーブル１０２の内容例を示す図である。図４は、図２に示すデバイスクロックのグループ構成、及び図３に示すタスクの各ＩＯデバイス利用状況の場合を記載している。図４において、デバイスグループテーブル１０３は、第１列目にデバイスグループを示す情報を保持し、第２列目にデバイスグループに属しているデバイス（言い換えると、同じ周波数のクロックで動作するデバイス）を示す情報を保持している。デバイス利用テーブル１０２は、前述のとおり、タスク毎に設定されている。タスクごとの各デバイス利用テーブル１０２は、第１列目にＩＯデバイスを示す情報を保持し、第２列目にそのＩＯデバイスの利用開始をタスク実行開始からのオフセット時間として持ち、第３列目にそのデバイスを利用する時間の長さを保持している。すなわち、デバイス利用テーブル１０２は、タスクとタスクが利用するＩＯデバイスとタスクにおけるＩＯデバイスの利用期間との関係を保持している。
【００２５】
（デバイスクロック制御部１０４の処理フロー）
図５は、図２のデバイスクロック制御部１０４の処理フローを示したものである。
【００２６】
また図６は、図３のデバイス利用状況の場合において、デバイスクロック制御部１０４を持たずにタスクスケジューラ１０１による実行順序制御が行われた場合の、各ＩＯデバイスおよびデバイスグループへのクロック供給状態がどうなるかを示した図である。
【００２７】
また図７は、図３のデバイス利用状況の場合において、図４のデバイス関係情報１１１に基づいて、デバイスクロック制御部１０４によりタスクスケジューラ１０１を制御した場合の、各ＩＯデバイスおよび各デバイスグループへのクロック供給状態がどうなるかを示した図である。
【００２８】
図６では、タスク１が実行中に実行開始から０．５単位時間後に、優先度の高いタスク２が実行可能状態になった場合（図６の（１）のポイント。タスク２の方が優先度が高いため、この時点でタスク１からタスク２へタスクスケジューラ１０１により実行が移動されるとする）に、図３のデバイス利用状況をもとに、各ＩＯデバイスとデバイスグループのクロック供給状況とを時系列に示している。結果として、図６では、デバイスグループ１には６単位時間、デバイスグループ２には６単位時間のクロック供給がなされている。
【００２９】
次に、図４、図７を参照しながら、図５の処理フローを説明する。図７の場合は、デバイスクロック制御部１０４がタスクスケジューラ１０１より実行される（起動される）ことを示している。すなわち、図７の「（１）のポイント」で、図５の処理フローが開始される。
【００３０】
（Ｓ５０１）
図５において、ステップ５０１では、デバイスクロック制御部１０４は、実行中タスクの現在使用中のＩＯデバイスの有無を調べ、実行中ＩＯデバイスを使用していない場合には処理を終了する。図７の「（１）のポイント」の時点ではデバイスＡを使用しているため、ステップ５０２へ進む。
【００３１】
（Ｓ５０２）
Ｓ５０２において、デバイスクロック制御部１０４は、タスク１用のデバイス利用テーブル１０２及びデバイスグループテーブル１０３を走査し、タスク１がＩＯデバイスＡの利用が終了するまでに、ＩＯデバイスＡと同じデバイスグループに属する他のＩＯデバイスを利用するかどうかをチェックする。同一デバイスグループの中に連続して利用する他ＩＯデバイスが無い場合には（Ｓ５０２のＮＯ）、デバイスクロック制御部１０４は処理を終了する。
【００３２】
図４のデバイス関係情報１１１のテーブル状態（すなわち図３の状態）では、タスク１用のデバイス利用テーブル１０２により、デバイスＡの利用終了までの間にデバイスＢを利用することが判る。またデバイスグループテーブル１０３より、デバイスＡとデバイスＢは同じデバイスグループであることが判る。このため、ステップ５０２からステップ５０３へ進む。
【００３３】
（ステップ５０３）
ステップ５０３では、デバイスクロック制御部１０４は、デバイスグループ１のデバイス利用が終了するまで、即ち、デバイスＡの利用終了時間またはデバイスＢの利用終了時間の大きい方の終了時間の終了時点（利用終了時点）まで、タスクの切替え（スイッチ）を遅延することを指示する遅延指示信号（タイミング指示信号）を生成してタスクスケジューラ１０１へ送り、処理を終了する。遅延指示信号は、実行中タスクを他のタスクにスイッチするべきスイッチタイミングを指示する信号である。図４の状態では、デバイスＡおよびデバイスＢとも利用終了時間は同じである。すなわち、デバイスクロック制御部１０４は、図７の「（１）のポイント」の時点から１．５時間単位後である「（２）のポイント」の時点まで、タスクの切替え（スイッチ）を遅延させることを指示する遅延指示信号を生成して、タスクスケジューラ１０１に出力する。
【００３４】
（タスクスケジューラ１０１）
タスクスケジューラ１０１（制御実行部）は、デバイスクロック制御部１０４から遅延指示信号を入力し、遅延指示信号を入力すると実行中タスクが遅延指示信号の指示するスイッチタイミングよりも前に他のタスクにスイッチされようとするときには、遅延指示信号の指示するスイッチタイミングまで実行中タスクのスイッチを遅延させる。タスクスケジューラ１０１は、デバイスクロック制御部０１０４から遅延指示信号を入力すると遅延指示信号に従って実行中タスクのスイッチを遅延させるが、この例では、図７に示すように、タスクスケジューラ１０１は、タスク１からタスク２へのスイッチを「（１）のポイント」から「（２）のポイント」の時点まで遅延させる。また、タスクスケジューラ１０１は、すべてのＩＯデバイスが利用されていないデバイスグループが存在する場合には、このデバイスグループに対応する「クロックゲート（Ｇ−１）あるいはクロックゲート（Ｇ−２）」（グループ対応オンオフ部）をオフにする制御を実行する。すなわち、図７に示した８単位時の場合では、タスクスケジューラ１０１は、破線で示し範囲について、クロックゲート（Ｇ−１）については範囲７０１、範囲７０２の範囲をオフとする制御を行ない、クロックゲート（Ｇ−２）については、範囲８０２でオフとする制御を実行する。
【００３５】
以上のようにデバイスクロック制御部１０４を動作させることで、各ＩＯデバイスおよび各デバイスグループへのクロック供給の時系列は、図６（デバイスクロック制御部１０４なし）から図７（デバイスクロック制御部１０４あり）のように変化する。図７に示すように、デバイスグループ１には５単位時間、デバイスグループ２には６単位時間のクロック供給がなされる。すなわち、図７は図６に比べ、デバイスグループ１へのクロック供給が１単位時間だけ短縮されている。従って、短縮された１単位時間については、その間、タスクスケジューラ１０１はクロックデータ（Ｇ−１）をオフとする制御を実行する。よって、全体として省電力効果を向上させることができる。
【００３６】
（デバイスクロック制御部１０４の呼び出し時点）
なお、本実施の形態１ではデバイスクロック制御部１０４はタスクスケジューラ１０１にて呼び出すこととして説明したが、ＩＯデバイスへのＩＯ要求時、即ち図７においては、タスク１がデバイスＡの利用を開始する時点（時系列では０単位時間の位置）で呼び出しても良く、タスク１から他のタスク、すなわちタスク２への切替えが、前述と同じく図７の「（２）のポイント」の時点まで遅延されるため、同じ効果を得ることができる。
【００３７】
（デバイス関係情報１１１の形態）
また、上記の実施の形態１では、図４においてデバイス利用テーブル１０２とデバイスグループテーブル１０３という別々のテーブルによってデバイス関係情報１１１を構成した。しかし、図８に示すような、タスクごとの複数のテーブルによりデバイス関係情報１１１を構成しても良いことは明らかである。図８では、デバイス利用テーブル内にデバイスグループテーブルの情報を保持している。
【００３８】
なお、本実施の形態１では、デバイスグループに対するクロック供給制御は、図２に示すクロックゲート（Ｇ−１）、クロックゲート（Ｇ−２）への制御で成されることを示したが、図２は説明を簡単にするための一例である。クロックゲート以外にもクロック供給を制御できる可能性はあり、その場合でも、本実施の形態１に示した手法により同様な効果を得られることは言うまでもない。
【００３９】
さらに、本実施の形態１では、ＩＯデバイスを動作させるために必要なクロックの周波数及びそれを生成する逓倍器にてグループ化されたデバイスのクロック制御による省電力効果の向上を示した。しかし、近年のハードウェア技術の向上により、図９に示すように、１つの逓倍器で複数の周波数のクロックを出力できるものが存在する。この場合、クロックゲート相当のクロックの伝達を制御できる機能部位とＩＯデバイスとの接続関係からデバイスグループを分類しても、同じ効果が得られる。すなわち、図９に示すように、クロックゲート相当のクロックの伝達を制御できる機能部位として機能部位（Ｇ−１）、機能部位（Ｇ−２）を設けることで、機能部位（Ｇ−１）、機能部位（Ｇ−２）に接続する機能部３０１、機能部３０２の動作をオフにすることにより省電力化を図ることができる。
【００４０】
（駆動電圧と電圧値）
また、本実施の形態１の手法はクロック系統だけではなく、各デバイスの駆動に必要な電圧（動作電圧）によってグループ化した場合でも適用可能である。すなわち、実施の形態１で説明した動作クロック及びその周波数を、駆動電圧及びその電圧値と置き換えた構成では、動作クロックの場合と同様の省電力の効果を得ることができる。
【００４１】
以上の実施の形態１においては、マルチタスク実行装置１００において「〜部」として示した各構成要素の一連の動作は互いに関連しており、これら一連の動作は、コンピュータに実施させるプログラムによる処理に置き換えることができる。各構成要素の動作をプログラムによる処理に置き換えることにより、「マルチタスク実行プログラム」の実施形態とすることができる。また、この「マルチタスク実行プログラム」を、コンピュータ読み取り可能な記録媒体に記録させることで、プログラムを記録したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。また、マルチタスク実行装置１００において「〜部」として示した各構成要素の一連の動作を「〜ステップ」と把握することで、「マルチタスク実行装置１００」を「マルチタスク実行方法」として把握することも可能である。
【００４２】
以上の実施の形態１では、
動作クロックの周波数毎にグループ化された複数のデバイスを持ち、各デバイスへのクロック供給をＯＮ／ＯＦＦできると共に、グループ毎にもクロック供給をＯＮ／ＯＦＦできるコンピュータシステム（マルチタスク実行装置）において、
周波数グループとそのグループに属するデバイスを格納したデバイスグループテーブルと、タスク毎に利用するデバイスと順序を格納したデバイス利用テーブルとを持ち、タスク実行中には現在利用中のデバイスと同じデバイスグループに属する他のデバイスの利用が完了するまで他のタスクへのスイッチを禁止するデバイスクロック制御手段を有し、デバイスグループのクロック供給ＯＮ時間を最短にすることを特徴とした省電力制御方式のマルチタスク実行装置を説明した。
【００４３】
以上の実施の形態１では、
デバイスクロック制御手段をタスクスケジューラにて実行することを特徴とする省電力制御方式のマルチタスク実行装置を説明した。
【００４４】
以上の実施の形態１では、
デバイスクロック制御手段をタスクからのＩＯ要求が生じた際に実行することを特徴とした省電力制御方式のマルチタスク実行装置を説明した。
【００４５】
以上の実施の形態１では、
デバイス利用テーブル内にデバイスグループテーブルの情報を保持することを特徴とした省電力制御方式のマルチタスク実行装置を説明した。
【図面の簡単な説明】
【００４６】
【図１】実施の形態１におけるマルチタスク実行装置のハードウェア資源を示す図。
【図２】実施の形態１におけるマルチタスク実行装置の構成図。
【図３】実施の形態１における説明のために簡略化したタスク構成とそれらのデバイス利用状況を時系列で示した図。
【図４】図３に対応するデバイス利用テーブル、デバイスグループテーブルを示す図。
【図５】実施の形態１におけるデバイスクロック制御部１０４の処理のフローチャート。
【図６】デバイスクロック制御部１０４が動作しない場合のデバイス利用状況を時系列で示した図。
【図７】図６に対してデバイスクロック制御部１０４を動作させた場合のデバイス利用状況を時系列で示した図。
【図８】図４と同一内容を示すデバイス利用テーブルの構成を示す図。
【図９】一つの逓倍器が２つのクロック周波数を生成する場合を説明する図。
【図１０】従来技術を示す図。
【符号の説明】
【００４７】
１００  マルチタスク実行装置、１０１  タスクスケジューラ、１０２  デバイス利用テーブル、１０３  デバイスグループテーブル、１０４  デバイスクロック制御部、１１０  デバイス関係情報格納部、１１１  デバイス関係情報、２０１  発振器、２０２ａ，２０２ｂ  逓倍器、３０１，３０２  機能部。
【図１】
2009258832.tif 000003
【図２】
2009258832.tif 000004
【図３】
2009258832.tif 000005
【図４】
2009258832.tif 000006
【図５】
2009258832.tif 000007
【図６】
2009258832.tif 000008
【図７】
2009258832.tif 000009
【図８】
2009258832.tif 000010
【図９】
2009258832.tif 000011
【図１０】
2009258832.tif 000012