(57)【特許請求の範囲】
【請求項１】
ＣＰＵを有し、該ＣＰＵのクロック周波数を調整するコンピュータ装置であって、
次に発生するイベントを予測するイベント予測手段と、
前記予測されたイベントが発生する前に、該イベントに応じて前記ＣＰＵのクロック周波数を事前に調整するクロック調整手段と、
イベントパターンの情報を記憶する記憶手段と、を有し、
前記イベント予測手段は、
過去に連続して発生したイベントのイベントパターンを解析して、前記記憶手段に前記イベントパターンの情報として記憶し、
前記イベントパターンの情報に基づいて、現在のイベントの次に発生するイベントを予測する、コンピュータ装置。
【請求項２】
複数の入力装置を有し、前記記憶手段に記憶する前記イベントパターンの情報が複数である、請求項１に記載のコンピュータ装置。
【請求項３】
前記記憶手段は、
過去のイベントが発生したときの前記ＣＰＵのクロック周波数の情報をさらに記憶し、
前記クロック調整手段は、
前記予測されたイベントが過去に発生したときの前記ＣＰＵのクロック周波数の情報に基づいて、前記ＣＰＵのクロック周波数を調整する、請求項１または２に記載のコンピュータ装置。
【請求項４】
前記記憶手段は、
過去のイベントが発生したときの該イベントの完了時間の情報をさらに記憶し、
前記クロック調整手段は、
前記予測されたイベントが過去に発生したときの該イベントの完了時間をタイムアウト時間として設定し、
前記予測されたイベントが発生せずに前記タイムアウト時間が経過した場合は、該イベントが完了したとみなして前記ＣＰＵのクロック周波数を調整する、請求項１乃至３のいずれかに記載のコンピュータ装置。
【請求項５】
ＣＰＵを有するコンピュータ装置において、該ＣＰＵのクロック周波数を調整するクロック調整方法であって、
次に発生するイベントを予測するイベント予測ステップと、
前記予測されたイベントが発生する前に、該イベントに応じて前記ＣＰＵのクロック周波数を事前に調整するクロック調整ステップと、
過去に連続して発生したイベントのイベントパターンの情報を解析して、イベントパターンの情報として記憶手段に記憶する記憶ステップと、を有し、
前記イベント予測ステップでは、
前記イベントパターンの情報に基づいて、現在のイベントの次に発生するイベントを予測する、クロック調整方法。
【請求項６】
前記コンピュータ装置は複数の入力装置を有し、
前記記憶ステップでは、複数の前記イベントパターンの情報を前記記憶手段に記憶する、請求項５に記載のクロック調整方法。
【請求項７】
前記記憶ステップでは、
過去のイベントが発生したときの前記ＣＰＵのクロック周波数の情報を前記記憶手段にさらに記憶し、
前記クロック調整ステップでは、
前記予測されたイベントが過去に発生したときの前記ＣＰＵのクロック周波数の情報に基づいて、前記ＣＰＵのクロック周波数を調整する、請求項５または６に記載のクロック調整方法。
【請求項８】
前記記憶ステップでは、
過去のイベントが発生したときの該イベントの完了時間の情報を前記記憶手段にさらに記憶し、
前記クロック調整ステップでは、
前記予測されたイベントが過去に発生したときの該イベントの完了時間をタイムアウト時間として設定し、
前記予測されたイベントが発生せずに前記タイムアウト時間が経過した場合は、該イベントが完了したとみなして前記ＣＰＵのクロック周波数を調整する、請求項５乃至７のいずれかに記載のクロック調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）を搭載したＰＣ（Personal Computer）やＰＯＳ（Point Of Sales）などのコンピュータ装置において、ＣＰＵのクロック周波数を調整する技術に関する。
【背景技術】
【０００２】
近年、ＣＰＵは、処理性能が大幅に向上しているが、その反面、消費電力が増加する傾向にある。
【０００３】
そのため、最近は、ＣＰＵの負荷に応じて、ＣＰＵのクロック周波数を調整し、消費電力を抑える方法が注目を浴びている。
【０００４】
上記の方法は、具体的には、ＣＰＵの負荷が低い時にはクロック周波数を低くし、ＣＰＵの負荷が高い時にはクロック周波数を高くする方法である。上記の方法に対応したＣＰＵとしては、例えば、主にバッテリ駆動のノート型ＰＣなどに搭載され、クロック周波数がコア電圧で可変するＣＰＵが挙げられる。
【０００５】
以下、上記の方法に対応したＣＰＵを搭載した従来のコンピュータ装置の構成について、図４を参照して説明する。
【０００６】
図４に示すように、従来のコンピュータ装置は、ＣＰＵ１と、ＲＯＭ（Read Only Memory）２と、補助記憶装置３と、入力装置４と、制御回路５と、ＲＡＭ（Random Access Memory）６と、を有している。
【０００７】
ＣＰＵ１は、コア電圧によりクロック周波数が可変する。
【０００８】
ＣＰＵ１が後述するＯＳ３１を起動すると、ＣＰＵ１上に、ＯＳ３１内のドライバ（Driver）３１１およびクロック調整手段３１２が実現される。ドライバ３１１は、ＣＰＵ１のコア電圧を変化させる手段であり、クロック調整手段３１２は、ドライバ３１１を通してＣＰＵ１のコア電圧を変化させてＣＰＵ１のクロック周波数を調整する手段である。
【０００９】
ＲＯＭ２は、本コンピュータ装置の基本制御を行うための基本制御プログラム２１を記憶する。ＣＰＵ１は、本コンピュータ装置の起動時には、ＲＯＭ２から基本制御プログラム２１を読み出し、基本制御プログラム２１に従って初期設定を行う。
【００１０】
その他にも、ＲＯＭ２は、本コンピュータ装置に固有の基本情報を記憶する。この基本情報には、ＣＰＵ１の固有の情報（ＶＩＤ（Voltage ID），ＦＩＤ（Frequency ID））も含まれる。ＣＰＵ１は、初期設定時に、ＲＯＭ２からＣＰＵ１の固有の情報を読み出す。
【００１１】
補助記憶装置３は、ＯＳ３１を記憶するハードディスクなどの一般的な記憶手段である。ＣＰＵ１は、補助記憶装置３からＯＳ３１を読み出し、ＯＳ３１を起動する。ＯＳ３１の起動時には、ＣＰＵ１は、初期設定時に得られたＣＰＵ１の固有の情報をＯＳ３１に通知する。これを基に、ＯＳ３１は、ＣＰＵ１のクロック周波数の変動範囲を知ることができ、この変動範囲内でＣＰＵ１のクロック周波数を調整する。
【００１２】
入力装置４は、オペレータが入力等の操作を行うキーボードやタッチパネルなどである。
【００１３】
制御回路５は、一般的にＣＰＵ１とは異なるバスに接続されるＲＯＭ２、補助記憶装置３、および入力装置４と接続されていて、これらを制御する。
【００１４】
ＲＡＭ６は、ＣＰＵ１のワークエリアとなる一般的な記憶手段である。ＣＰＵ１は、ＲＡＭ６にデータを一時的に記憶させながら演算を行う。
【００１５】
ここで、図４に示したコンピュータ装置において、ＣＰＵ１のクロック周波数を高くする場合の動作について説明する。
【００１６】
一般的に、ＣＰＵ１のクロック周波数を高くするのは、オペレータが入力装置４を操作するなどのイベントが発生した時となる。
【００１７】
そのため、ＯＳ３１内のクロック調整手段３１２は、イベントが発生すると、その後に、ドライバ３１１を通してＣＰＵ１のコア電圧を変化させて、ＣＰＵ１のクロック周波数を高くする。この方法は、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開平１１−１１００６３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかし、特許文献１に開示された方法では、イベントが発生した後に、ＣＰＵ１のクロック周波数を高くしている。
【００２０】
そうすると、イベントにより発生した処理と、ＣＰＵ１のクロック周波数を高くする処理と、が並行して処理されるため、イベントによって発生する処理を実行する際にはその処理に十分なリソースが与えられず、レスポンスが遅れてしまうという課題があった。
【００２１】
例えば、何のアプリケーションも起動していない状態で、業務アプリケーションを起動するというイベントが発生したとする。この場合、ＣＰＵ１のクロック周波数を高くする処理と、業務アプリケーションを実行する処理と、が並行して行われる。
【００２２】
このため、業務アプリケーションを実行する処理に与えられるリソースが制限され、その結果、オペレータは、業務アプリケーション、すなわちコンピュータ装置からのレスポンスが遅く感じられることがあった。
【００２３】
そこで、本発明の目的は、上述した課題を解決し、イベントに対するコンピュータ装置からのレスポンスを早くすることができるコンピュータ装置、ＣＰＵクロック調整方法を提供することにある。
【課題を解決するための手段】
【００２４】
本発明のコンピュータ装置は、
ＣＰＵを有し、該ＣＰＵのクロック周波数を調整するコンピュータ装置であって、
次に発生するイベントを予測するイベント予測手段と、
前記予測されたイベントが発生する前に、該イベントに応じて前記ＣＰＵのクロック周波数を事前に調整するクロック調整手段と、を有する。
【００２５】
本発明のクロック調整方法は、
ＣＰＵを有するコンピュータ装置において、該ＣＰＵのクロック周波数を調整するクロック調整方法であって、
次に発生するイベントを予測するイベント予測ステップと、
前記予測されたイベントが発生する前に、該イベントに応じて前記ＣＰＵのクロック周波数を事前に調整するクロック調整ステップと、を有する。
【発明の効果】
【００２６】
本発明は、コンピュータ装置において、次に発生するイベントを予測し、イベント発生前にＣＰＵのクロック周波数を事前に調整している。
【００２７】
したがって、イベントによって発生する処理を実行する際には、その処理に十分なリソースを事前に与えることができるため、オペレータがイベントに対する素早いレスポンスを得ることが可能となる。
【００２８】
例えば、外部センサを利用した場合は、オペレータが入力装置の操作を行おうと、入力装置に手を伸ばした時にそれを外部センサで検知し、操作開始前からＣＰＵのクロック周波数を最適値に調整し、オペレータの操作を受け付けることが可能となるため、オペレータは素早いレスポンスを得ることができる。
【００２９】
また、過去のイベントのイベントパターンの情報を利用した場合は、現在のイベントの次に発生するイベントを予測することが可能となるため、オペレータは素早いレスポンスや効率的な演算速度を得ることができる。また、適切なタイミングでＣＰＵのクロック周波数を調整できるため、消費電力を抑えることが可能となる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態のコンピュータ装置の構成を示すブロック図である。
【図２】図１に示したＣＰＵの状態遷移図である。
【図３】図１に示した補助記憶装置やＲＡＭに記憶されるイベントログを説明する図である。
【図４】従来のコンピュータ装置の一構成例を示すブロック図である。
【発明を実施するための形態】
【００３１】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００３２】
図１に示すように、本実施形態のコンピュータ装置は、図４に示した従来のコンピュータ装置と比較して、外部センサ７を設けた点と、ＯＳ３１内にイベント予測手段３１３が存在する点と、が異なる。なお、図１において、図４と同様の構成要素には同一の符号を付している。
【００３３】
以下では、図４に示した従来のコンピュータ装置と異なる点を中心に説明する。
【００３４】
イベント予測手段３１３は、次に発生するイベントを予測する手段である。なお、イベント予測手段３１３は、ドライバ３１１およびクロック調整手段３１２と同様に、ＣＰＵ１がＯＳ３１を起動することで、ＣＰＵ１上に実現される。
【００３５】
例えば、イベント予測手段３１３は、外部センサ７を利用して、イベントの発生を予測する。
【００３６】
外部センサ７は、入力装置４の近くに配置され、入力装置４の付近に近づいたオペレータの存在を検知する人感センサなどの検知手段である。
【００３７】
イベント予測手段３１３は、外部センサ７により入力装置４の付近のオペレータの存在が検知されると、オペレータが入力装置４を操作するイベントが発生すると予測する。
【００３８】
または、イベント予測手段３１３は、過去に発生したイベントに関するイベントログをＲＡＭ６や補助記憶装置３に記憶させておき、そのイベントログを利用して、イベントの発生を予測する。
【００３９】
ＲＡＭ６や補助記憶装置３には、イベントログとして、以下のような情報を記憶させる。
・過去のイベントのイベント発生時のクロック周波数
・過去のイベントのイベント開始時間
・過去のイベントのイベント完了時間
・過去に連続して発生したイベントのイベントパターン
なお、イベントパターンは、イベント予測手段３１３が過去のイベントのイベント開始時間およびイベント完了時間の情報等を基に、予め解析したものである。
【００４０】
イベント予測手段３１３は、ＲＡＭ６や補助記憶装置３内にイベントログとして記憶されているイベントパターンの情報に基づいて、現在のイベントの次に発生するイベントを予測する。
【００４１】
クロック調整手段３１２は、イベント予測手段３１３により上記のようにしてイベントの発生が予測されると、予測されたイベントが発生する前に、予測されたイベントに応じてＣＰＵ１のクロック周波数を事前に調整する。
【００４２】
このとき、クロック調整手段３１２は、ＲＡＭ６や補助記憶装置３内にイベントログとして記憶されている、予測されたイベントが過去に発生したときのＣＰＵ１のクロック周波数に基づいて、ＣＰＵ１のクロック周波数を調整する。
【００４３】
以下に、図１に示した本実施形態のコンピュータ装置の動作について、図２のＣＰＵ１の状態遷移図を参照して説明する。
【００４４】
図２に示すように、ＣＰＵ１は、本コンピュータ装置の起動時に、ＲＯＭ２から基本制御プログラム２１を読み込み、基本制御プログラム２１に従って、初期設定を行う。この初期設定時に、ＣＰＵ１は、ＣＰＵ１の固有の情報（ＶＩＤ，ＦＩＤ）を読み出す（ステップＳ１）。
【００４５】
以降に、ＣＰＵ１が補助記憶装置３内に記憶されたＯＳ３１を起動すると、ＣＰＵ１上に、ドライバ３１１、クロック調整手段３１２、およびイベント予測手段３１３が実現される。このＯＳ３１の起動時に、ＣＰＵ１は、初期設定時にＲＯＭ２から読み出したＣＰＵ１の固有の情報（ＶＩＤ，ＦＩＤ）をＯＳ３１に通知する（ステップＳ２，Ｓ３）。これを基に、ＯＳ３１内の各手段は、ＣＰＵ１のクロック周波数の変動範囲を知ることができるため、この変動範囲内でＣＰＵ１のクロック周波数を調整する。
【００４６】
一般的に、ＣＰＵ１のクロック周波数を高くするのは、上述のように、イベントが発生した時となる。しかし、特許文献１のように、イベントが発生した後に、ＣＰＵ１のクロック周波数を高くすると、イベントによって発生する処理と、ＣＰＵ１のクロック周波数を高くする処理と、が並行して処理される。そのため、イベントによって発生する処理に与えられるリソースが制限され、イベントに対するレスポンスが遅れてしまう。
【００４７】
そこで、本実施形態では、イベント予測手段３１３が、次に発生するイベントを予測し（ステップＳ４）、クロック調整手段３１２が、予測されたイベントの発生前に事前にＣＰＵ１のクロック周波数を高くする（ステップＳ５）。
【００４８】
例えば、ＣＰＵ１のクロック周波数を高くする処理に必要な時間が３秒であるとすると、クロック調整手段３１２は、イベントが発生する３秒前にトリガを発生させ、ドライバ３１１を通してＣＰＵ１のクロック周波数を高くする。
【００４９】
以下、イベントを予測する２つの方法について具体的に説明する。
（１）第１の方法
本方法は、外部センサ７を利用する方法である。
【００５０】
本コンピュータ装置がＰＣやＰＯＳなどである場合、入力装置４としてキーボードやタッチパネルが使用される。その場合、外部センサ７を入力装置４の付近に設置し、オペレータがキーボード入力やタッチパネル入力の操作を行おうと手を伸ばした時に、それを外部センサ７が検知する。
【００５１】
すると、イベント予測手段３１３は、オペレータが入力装置４を操作するイベントが発生すると予測し、クロック調整手段３１２は、ドライバ３１１を通してＣＰＵ１のクロック周波数を高くする。
【００５２】
このように、外部センサ７を利用することで、入力装置４を操作するイベントが実際に発生する前にＣＰＵ１のクロック周波数を事前に高くすることができる。
【００５３】
その結果、オペレータが操作を開始する時は、既にＣＰＵ１のクロック周波数は高くなっているため、オペレータは、本コンピュータ装置から素早いレスポンスを得ることが可能となる。
【００５４】
この時、クロック調整手段３１２は、クロック周波数を次のように調整する。
【００５５】
ＲＡＭ６および補助記憶装置３内に、過去のイベントのイベント発生時のＣＰＵ１のクロック周波数の情報をイベントログとして記憶させる。
【００５６】
そして、クロック調整手段３１２は、イベントログとして記憶されている、入力装置４を操作するイベントが過去に発生した時のＣＰＵ１のクロック周波数の情報を基に、ＣＰＵ１のクロック周波数を最適値（最大値など）に調整する。
（２）第２の方法
本方法は、ＲＡＭ６や補助記憶装置３内に記憶されているイベントログを利用する方法である。
【００５７】
本コンピュータ装置がＰＣやＰＯＳである場合、一般的に、連続して発生するイベントのイベントパターンが固定化されていることが多い。
【００５８】
そこで、図３に示すように、ＲＡＭ６や補助記憶装置３の一部をイベントパターンの解析を行うためのワークエリアとして利用し、イベント予測手段３１３は、このワークエリアにおいて、過去に連続して発生したイベントのイベントパターンを解析し、これをイベントログとしてＲＡＭ６や補助記憶装置３に記憶させる。
【００５９】
イベントパターンの解析では、例えば、ＲＡＭ６および補助記憶装置３内に、過去のイベントのイベント開始時間およびイベント完了時間の情報をイベントログとして記憶させ、これを利用することが考えられる。
【００６０】
また、クロック調整手段３１２は、過去のイベントのイベント完了時間の情報を基に、イベントパターンに含まれる各イベントのイベント完了時間をタイムアウト時間として設定する。
（２−１）ＰＣの場合
例えば、図３に示すように、ＰＣに、３つの入力装置４−１〜４−３が備えられており、オペレータが入力装置４−１〜４−３を操作するイベントを、それぞれ操作イベントＩ／Ｏ＃１〜Ｉ／Ｏ＃３と表す場合に、次のイベントパターンが記憶されているとする。
・イベントパターン１
Ｉ／Ｏ＃１→Ｉ／Ｏ＃２→Ｉ／Ｏ＃３の順序で操作イベントが発生するパターン
・イベントパターン２
Ｉ／Ｏ＃１→Ｉ／Ｏ＃１→Ｉ／Ｏ＃３の順序で操作イベントが発生するパターン
この場合、Ｉ／Ｏ＃１→Ｉ／Ｏ＃２の順序で操作イベントが発生した場合は、イベントパターン１と一致する可能性が高いため、次に発生するイベントとしては操作イベントＩ／Ｏ＃３が考えられる。
【００６１】
そのため、イベント予測手段３１３は、現在の操作イベントＩ／Ｏ＃２の次に操作イベントＩ／Ｏ＃３が発生すると予測し、クロック調整手段３１２は、現在の操作イベントＩ／Ｏ＃２が完了した時点で、操作イベントＩ／Ｏ＃３に応じてＣＰＵ１のクロック周波数を事前に調整しておく。
【００６２】
ただし、操作イベントＩ／Ｏ＃３が発生せずにタイムアウト時間が経過した場合は、クロック調整手段３１２は、操作イベントＩ／Ｏ＃３が完了したとみなし、その時のＣＰＵ１の負荷に応じて、ＣＰＵ１のクロック周波数を調整する。
（２−２）ＰＯＳの場合
例えば、ＰＯＳでは、商品のバーコードをスキャンするイベントや、スキャンが不可の場合に商品の金額を入力するイベントが繰り返し行われ、その後の精算処理で、精算金額を入力するイベントが行われる。
【００６３】
そのため、商品のバーコードをスキャンするイベントが発生した後も、入力の待ち時間などもあるものの、精算処理が完了するまでは、次の商品のバーコードをスキャンするイベントなどが発生する可能性が高い。
【００６４】
そこで、イベント予測手段３１３は、ＰＯＳにおける上述のイベントパターンを解析し、イベントログとしてＲＡＭ６や補助記憶装置３に記憶させておく。
【００６５】
そして、イベント予測手段３１３は、商品のバーコードをスキャンするイベントが発生した場合には、ＰＯＳにおける上述のイベントパターンの情報に基づいて、精算処理が完了するまでは引き続きイベントが発生すると予測し、クロック調整手段３１２は、ＣＰＵ１のクロック周波数を低くせずに、引き続き最適値を保ち続ける。
【００６６】
ただし、次の商品をスキャンするイベントや次の商品の金額を入力するイベントが発生せずにタイムアウト時間が経過した場合は、クロック調整手段３１２は、そのイベントが完了したとみなし、消費電力を抑えるためにＣＰＵ１のクロック周波数を低くする。
【００６７】
その後も、イベント予測手段３１３は、現在までのイベントパターンの情報に基づいて、再び、ある一定時間後にイベントが発生することを予測すると、クロック調整手段３１２は、そのイベントが発生する前にＣＰＵ１のクロック周波数を事前に最適値に調整しておく。
【００６８】
なお、本コンピュータ装置がＰＯＳなどのように様々なオペレータにより操作される装置である場合は、オペレータに応じて、商品のバーコードをスキャンする処理から精算処理までの処理時間が異なる。そのため、このような場合は、ＲＡＭ６にイベントログを記憶させて動的にイベントの発生を予測することで、効率的にＣＰＵ１のクロック周波数を調整することが可能となる。
【符号の説明】
【００６９】
１    ＣＰＵ
２    ＲＯＭ
２１    基本制御プログラム
３    補助記憶装置
３１    ＯＳ
３１１    ドライバ
３１２    クロック調整手段
３１３    イベント予測手段
４    入力装置
５    制御回路
６    ＲＡＭ
７    外部センサ
【図１】
0005561806.tif 000002
【図２】
0005561806.tif 000003
【図３】
0005561806.tif 000004
【図４】
0005561806.tif 000005