【解決手段】電子機器の周辺の環境光を検出する。環境光の強さの変化がもたらす周波数成分から電子機器を使用するユーザの存否を認定する。ユーザの存否の認定に応じてデバイスの動作を制御する。ユーザの存否の認定は周波数スペクトルを生成して行うことができる。さらに具体的には、所定時間連続する環境光に対する周波数スペクトルから選択した代表スペクトルが存在する周波数帯に基づいて行うことができる。デバイスをディスプレイとし、ユーザの不存在を認定したときにディスプレイを停止することができる。
前記認定するステップが、所定時間連続する前記環境光に対する周波数スペクトルから選択した代表スペクトルが存在する周波数帯に基づいて認定するステップを含む請求項1に記載の方法。
前記認定するステップが、前記代表スペクトルが前記第1の周波数帯を超えかつ所定の周波数未満の第2の周波数帯に存在するときにユーザの存在を認定する請求項3に記載の方法。
前記デバイスの動作を制御するステップが、ユーザの存在を認定したときに前記中央演算処理装置がアイドル状態へ遷移することを防ぐステップを含む請求項11に記載の方法。
【発明を実施するための形態】
【0015】
[電子機器]
図1は、本実施の形態にかかる電子機器の一例であるタブレット端末101の外形を示す図である。タブレット端末101は、筐体にタッチスクリーン103を収納し縁枠に照明センサ105を配置している。タッチスクリーン103は、タッチパネルとディスプレイで構成する。なお、タブレット端末101からは、本発明の理解に必要のない要素は省略している。照明センサ105は、タブレット端末101の周辺の環境光の光量を電圧や電流などの照明信号に変換して出力する。環境光は、照明器具が放射する光や太陽光に相当する。
【0016】
照明センサ105は、環境の明るさに応じてディスプレイの輝度を調整するためにコンピュータが搭載する環境照明センサ(ALS)とすることもできる。照明センサ105は、入射した光量に応じた電流を出力するフォトダイオードを利用したタイプでもよい。照明信号は照度に該当する場合もあるがこれに限定する必要はなく、照明センサ105に入射する光量の強さに対応する物理量であればよい。照明センサ105には、環境光が直接入射してもよいしフィルターを通して入射してもよい。
【0017】
[照明信号の周波数分析]
図2は、照明信号から、ユーザの存否を認定する方法を説明するための図である。
図2は照明センサ105が出力する照明信号をローパス・フィルタでフィルタリングしてから所定の評価時間でサンプリングして、周波数解析した結果を示している。環境光は、タブレット端末101の近辺に存在するユーザで反射して照明センサ105に入射する。
【0018】
ユーザで反射して照明センサ105に入射する光の強さはユーザの動きに応じて変化する。本発明で対象にする照明信号の周波数は、照明信号の強さの変化がもたらす交流成分であり、光の波長に対応する周波数成分とは異なる。ローパス・フィルタのカットオフ周波数は、タブレット端末101が置かれる環境において発生するノイズの周波数成分を除去できる範囲に設定する。カットオフ周波数は、たとえば対象とするユーザが机上の作業をする場合のゆるやかな動きをする場合は一例で10Hzに選択することができる。
【0019】
図2の各グラフの横軸は周波数で縦軸は周波数解析ツールの分解能に相当する極短い周波数幅に入る周波数スペクトルのパワーを示している。周波数スペクトルは、その性質上、0Hzを中心にしてプラス側とマイナス側に対称になるように発生する。
図2(A)は、タブレット端末101の近辺にユーザが存在しないときの周波数パターン201を示す。放電管式の照明器具の光を検出した照明センサ105の出力が含む電源周波数の成分は、ローパス・フィルタで除去しているため、周波数スペクトルはほとんどが直流成分になり±0Hzの近辺に集中する。
【0020】
図2(B)は、タブレット端末101の近辺にユーザが存在するときの周波数パターン203を示す。環境光は動いているユーザで反射して照明センサ105に入射するため、周波数スペクトルはユーザの動きに応じて±0Hzを中心にした狭い範囲に集中する。
図2(C)は、環境光に対して照明センサ105が特別な位置関係にあるときの周波数パターン205を示す。周波数パターン205は周波数パターン201、203よりも広い範囲に存在するように発散している。
【0021】
周波数パターン205は、タブレット端末101が机上に上向きに載置され、かつ、真上に蛍光灯が存在して照明センサ105に直接強い環境光が入射する場合のように特殊な条件下で発生する。周波数パターン205は、蛍光灯と照明センサの間にユーザまたは物体が存在して直射光の入射を抑制すれば発生しない。すなわち、発散した周波数パターン205と、ユーザの存否を関連付けることはできない。
【0022】
周波数パターン201〜205からタブレット端末101を利用するユーザの存否を認定するために、周波数パターン201〜205に対してそれぞれ評価ウィンドウ202〜206で周波数帯を設定する。周波数スペクトルは±0Hzを中心にして対象になるため、評価ウィンドウ202〜206は、±0Hzを中心にした一方の片側だけに設けてもよいが、以下では、両側に設定する場合を例示して説明する。評価ウィンドウ202は、±0Hzとみなせる極狭い範囲の周波数帯として設定する。ユーザが不存在のときの周波数パターンは、照明センサ105の特性により異なることがある。この場合評価ウィンドウ202が画定する周波数帯は、照明センサ105の特性に応じて設定してユーザの不存在を検出できるようにする。
【0023】
周波数パターン203を構成する周波数スペクトルが集中する範囲は、ユーザが机上の作業をしている場合と運動している場合といったようにユーザの動きの速さによって異なる。評価ウィンドウ204は、一例で評価ウィンドウ202の外側と±3Hz程度の範囲の内側に設定することができる。評価ウィンドウ206は、評価ウィンドウ204の外側とローパス・フィルタのカットオフ周波数の内側の範囲に設定することができる。
【0024】
[ユーザの存否の認定方法]
つぎに、評価ウィンドウ202〜204を利用してユーザの存否を認定する方法を説明する。周波数パターン201〜205のそれぞれにおいて、パワーが最大の周波数スペクトルを最大周波数スペクトルということにする。また周波数パターン201〜205のそれぞれに対して、パワーの閾値Ptを設定する。閾値Ptは、環境光の強さの影響をなくすために、最大周波数スペクトルのパワーに対する所定の割合で設定することができる。あるいは、周波数解析する直前の照明センサ105の出力に応じて設定することもできる。閾値Ptは、環境光の強さに応じてダイナミックに変更することができる。変更のタイミングは、タブレット端末を起動したとき、スリープ状態から復帰したときまたは照明信号の変化が所定値を超えたときなどのタイミングで行うことができる。
【0025】
認定システムは、評価ウィンドウ202が最大周波数スペクトル201aを検出したときはユーザの不存在を認定することができる。システムは評価ウィンドウ204が最大周波数スペクトル203aを検出したときはユーザの存在を認定することができる。システムは、評価ウィンドウ206が最大周波数スペクトル205aを検出したときに、ユーザの存否の認定不能と判断することができる。
【0026】
評価ウィンドウ202、204のいずれも最大周波数スペクトル201a、203aを検出しない場合と、評価ウィンドウ206が最大周波数スペクトル205aを検出した場合とは、いずれもユーザの存否を認定できない点で同じである。ただし、最大周波数スペクトル205aを検出したときは、認定システムは正常に動作しているにもかかわらず、環境光の光源と照明センサ105の位置関係により認定できない場合であるが、評価ウィンドウ202、204のいずれも最大周波数スペクトル201a、203aを検出しない場合は認定システムに異常が発生している場合も含む点で相違する。
【0027】
認定システムは、最大周波数スペクトル201a〜205aに代えて、評価ウィンドウ202〜206がそれぞれ含む連続する周波数スペクトルの集合201b〜205bのパワーの合計からユーザの存否を認定することができる。たとえば認定システムは、すべての周波数スペクトルのパワーの合計に対して、評価ウィンドウ202が含む周波数スペクトルのパワーの合計が所定値を超えたときにユーザの不存在を認定することができる。連続する周波数スペクトルは、所定値未満の周波数で相互に隣接する周波数スペクトルとすることができる。
【0028】
またシステムは、すべての周波数スペクトルのパワーの合計に対して、評価ウィンドウ204が含む周波数スペクトルのパワーの合計が所定値を超えたときにユーザの存在を認定し、評価ウィンドウ206が含む周波数スペクトルのパワーの合計が所定値を超えたときに認定不能と判断することができる。さらに認定不能の判断は、パワーが所定値以上の周波数スペクトルの分散または標準偏差などのバラツキを示す指標で行うこともできる。連続する周波数スペクトルに代えて、ピークが閾値Ptより大きい周波数スペクトルだけを対象にして、評価ウィンドウ202〜206を適用することもできる。
【0029】
図3は、タブレット端末101からユーザまでの距離を推定する方法を説明するための図である。
図3(A)はタブレット端末101からユーザまでの距離が70cm以下といったように実際にタブレット端末101を使用している位置にユーザが存在するときの周波数パターン203を示し、
図3(B)はタブレット端末101から遠い位置にユーザが存在するときの周波数パターン209を示している。
【0030】
周波数パターン209の最大周波数スペクトル209aのパワーPbは、周波数パターン203の最大周波数スペクトル203aのパワーPaよりも小さい。周波数スペクトルは、ユーザの距離にかかわらず動いているユーザで反射された光が生成しているため、このパワーPa、Pbからユーザまでの距離を推定することができる。一例では、パワーPaに対応するユーザまでの距離を基準距離とし、パワーPa、パワーPbおよび基準距離から周波数パターン209に対するユーザまでの距離を推定する。基準距離は、ユーザがタブレット端末101にタッチ操作をするときの標準的な距離とし、ユーザがタッチ操作をするタイミングで基準距離に対応するパワーPaを計算することができる。
【0031】
[ディスプレイ制御システム]
図4はタブレット端末101が搭載するディスプレイ制御システム300の概要を示す機能ブロック図である。ディスプレイ制御システム300は、照明センサ105、ローパス・フィルタ305、A/D変換器307、バッファ309、周波数解析部311および制御部313を含む。ディスプレイ制御システム300はさらに周知の上位システム301、省電力部303およびタッチスクリーン103を含む。
【0032】
上位システム301、省電力部303、周波数分析部311および制御部313は、タブレット端末101を構成するCPU、システム・メモリおよびI/OデバイスなどのハードウェアとOS、デバイス・ドライバ、およびアプリケーション・プログラムなどのソフトウェアで構成することができる。上位システム301は、CPUの使用率からアイドル状態を認識したときに省電力部303にアイドル・イベントを出力する。
【0033】
上位システム301は、タッチスクリーン103に対するタッチ操作またはその他のI/Oデバイスからの入力を検出したときに、省電力部303にアクティブ・イベントを出力する。省電力部303は、アイドル・イベント受け取ったときにアイドル時間を計時するオフタイマーを有する。省電力部303は、アクティブ・イベントを受け取ったときに計時動作を停止する。省電力部303はオフタイマーがタイムアップしたときにタッチスクリーン103のディスプレイを停止する。
【0034】
周波数解析部311は、バッファ309から取り出した固定長のデータ・ブロックから生成した周波数スペクトルを制御部313に出力する。周波数解析部311の構成は特に限定する必要はないが、たとえば、MATLABというプログラミング言語で作成した数値解析のソフトウェアで実現することができる。
【0035】
制御部313は、
図2に示した評価ウィンドウ202〜204、閾値Ptおよび周波数スペクトルからユーザの存否を認定するプログラムを含む。制御部313は、基準距離に対応する最大周波数スペクトルのパワーPa(
図3)を保有する。制御部313は、タブレット端末101を利用するユーザの存在を認定したときに、オフタイマーをリセットするためのリセット・イベントを省電力部303に送る。リセット・イベントは、オフタイマーをリセットする点で、上位システム301が出力するアクティブ・イベントに相当する。
【0036】
[動作手順]
図5は、ディスプレイ制御システム300の動作を示すフローチャートである。ブロック401でタッチスクリーン103が動作している。ブロック403で、省電力部303が上位システム301のアイドル時間の計時を開始する。ブロック405で、照明センサ105が環境光を検出して照明信号を出力する。ブロック407で周波数解析部311が照明信号から周波数スペクトルを生成する。
図6は、周波数解析部311が周波数スペクトルを生成するときの様子を説明するための図である。
【0037】
ローパス・フィルタ305が出力する照明信号501は、A/D変換器で評価時間teごとにデジタル化した固定長のデータ・ブロック503(A、B、C・・・)に変換され、FIFO方式でバッファ309に格納される。1個のデータ・ブロック503を生成するための評価時間teは、有効に周波数解析できる時間以上に設定する必要があるが、長さはディスプレイ制御システム300の応答性に支障がでない範囲で選択する。
【0038】
ブロック407で周波数解析部311は、バッファ309から順番にデータ・ブロックを取り出して生成した周波数スペクトルを制御部313に出力する。各データ・ブロックの周波数分析のタイミングには、Δt(Δt<te)だけ時間遅れがある。ブロック409で上位システム301がアクティブ・イベントを生成したときはブロック451に移行する。ブロック451で省電力部303は、オフタイマーの計時動作をリセットする。
【0039】
上位システム301がアクティブ・イベントを生成しないときは、ブロック411に移行し、オフタイマーの計時動作は進行する。ブロック411で制御部313は、ユーザの不存在を認定したときはブロック405に戻り、ユーザの不存在を認定しないときはブロック413に移行する。ブロック413で制御部313は、ユーザの存在を認定したときはブロック415に移行し、ユーザの存在を認定しないときはブロック405に戻る。
【0040】
ブロック415で制御部313は、周波数パターンの発散を認定したときはブロック405に戻り、発散を認定しないときはブロック417に移行する。ブロック417で制御部313は、ディスプレイ制御システム300の異常を認定したときはブロック405に戻り、異常を認定しないときはブロック419に移行する。ブロック419で制御部313は、パワーPa、Pb(
図3)の大きさからユーザの距離を推定する。
【0041】
制御部313は、ユーザが近距離に存在してタブレット端末101を使用していると推定したときはブロック451に移行し、距離が離れているためタブレット端末101を利用しない人間だと推定したときはブロック421に移行する。ブロック451で制御部413が省電力部303にリセット・イベントを送ると省電力部303は、オフタイマーの計時動作をリセットする。
【0042】
したがって、タブレット端末101を使用していると推定できるユーザの存在を認定する限り、タッチ操作がなくてもディスプレイが停止することはないため、タブレット端末101をブラウジング・モードで使用する場合に都合がよい。また、省電力部303に対する設定を変更する必要がないため、制御部313がユーザの不存在を認定したときは、ディスプレイが停止する。
【0043】
ブロック421で、制御部311から独立して動作する省電力部303は、オフタイマーがタイムアップしたときにブロック423でディスプレイを停止する。また、タイムアップするまではブロック405に戻る。ブロック423に到達するのは、ディスプレイ制御システム300が、オフタイマーがタイムアップするまでタブレット端末101の近辺でのユーザの不存在を継続的に認定した場合である。
【0044】
図7は、ブロック411からブロック417までの手順を詳細に説明するためのフローチャートである。ブロック601で制御部311は、データ・ブロック503の周波数パターンについて、最大周波数スペクトル201aまたは周波数スペクトルの集合201bに対して評価ウィンドウ202を適用し、ユーザの不存在を認定したときはブロック613に移行し、不存在を認定しないときはブロック605に移行する。制御部311はブロック613に移行する時点でユーザの不存在を認定することができるが、この認定には第2種過誤(false positive)が存在する可能性がある。
【0045】
このときブロック613で制御部313は、同じデータ・ブロックの周波数パターンについて、評価ウィンドウ204を適用する。制御部313は、ユーザの存在を認定したときはブロック615に移行し、存在を認定しないときはブロック617に移行する。ブロック617は、ブロック603でユーザの不存在を認定しかつブロック613でユーザの存在を認定しない状態であり、符合する結果を得た制御部313はこの時点でブロック603の認定を受け入れることができる。
【0046】
ブロック603で発生する可能性のある過誤は、ブロック613で軽減される。ブロック615は、ブロック603でユーザの不存在を認定しかつブロック613でユーザの存在を認定した状態であり、矛盾する結果を得た制御部313はこの時点でユーザの認定不能と判断することができる。ブロック605で制御部313は、同じデータ・ブロックの周波数パターンについて評価ウィンドウ204を適用する。制御部313は、ユーザの存在を認定したときはブロック611に移行し、存在を認定しないときはブロック607に移行する。
【0047】
制御部313は、ブロック605の結論だけに基づいてブロック611でユーザの存在を認定してもよいが、この認定には第2種過誤(false positive)が存在する。ブロック603でユーザの不存在を認定せず、かつブロック605でユーザの存在を認定した状態のときに、符合する結果を得た制御部313はブロック605の認定を受け入れることで過誤を軽減することができる。
【0048】
ブロック607への移行は、ユーザの存在および不存在のいずれも認定しない状態に相当する。この場合は、ディスプレイ制御システム300の異常または周波数スペクトルの発散のいずれかに相当する。制御部313は、同じデータ・ブロックの周波数パターンについて、評価ウィンドウ206を適用する。制御部313は、周波数スペクトルの発散を認定したときはブロック615に移行し、発散を認定しないときはブロック609に移行する。ブロック609への移行は、周波数パターン201〜205のいずれも認識しない状態であり、制御部313は、照明センサ105や周波数解析部311などが異常であると判断する。
【0049】
図7では、評価時間teごとに生成したデータ・ブロック503に基づいてユーザの存否を認定したが、複数のデータ・ブロック503を対象にして認定するようにしてもよい。たとえば制御部313は、複数のデータ・ブロック503に対する認定の結果が一致する場合だけユーザの存在または不存在を認定し、矛盾する結果を示すデータ・ブロックを含む場合は認定不能と判断することができる。
【0050】
図5のフローチャートで、各要素の手順の順番は一例を示したもので、同等の機能を実現することができる範囲で入れ替えや省略が可能である。たとえば、ブロック411〜417は任意の順番に入れ替えることができる。また、ブロック409の手順は、上位システム301が制御部313の動作から独立して実行するため、特定の順番に限定する必要はない。ブロック411、415、417、419、603、613、607、609、615の手順のすべてまたは一部は省略してもよい。
【0051】
図8は、
図5のブロック411〜415の手順の一例を説明するためのフローチャートである。周波数パターンが
図2に示したように必ず3つのパターンのいずれかになると想定できる場合は、存在または不存在の一方の認定と、発散の認定から他方の認定をすることができる。
図8は、不存在の認定と発散の認定を利用する例を示している。
【0052】
ブロック703で制御部313が評価ウィンドウ206を利用して発散を認定したときはブロック711で認定不能と判断する。発散を認定しないときはブロック705に移行する。ブロック705で制御部313は、評価ウィンドウ202を利用して不存在を認定したときはブロック707に移行し、不存在を認定しないときはブロック709に移行する。制御部313はブロック707で不存在を認定し、ブロック709で存在を認定する。
【0053】
図9は、
図5のブロック411〜415の他の手順を説明するためのフローチャートである。
図9の手順が
図8の手順と異なるのは、存在の認定と発散の認定を利用する点である。
図9の手順では、ブロック801で評価ウィンドウ202に代えて評価ウィンドウ204を利用して存在を認定する。
【0054】
[他のディスプレイ制御システム]
図10は、タブレット端末101が搭載するディスプレイ制御システム900の概要を示す機能ブロック図である。
図10では、
図4と同一の要素またはそれから容易に推測できる要素には同一の参照番号を付して説明を省略する。カラー・センサ901は、入射した環境光から原色(赤、緑、青)のそれぞれの照明信号を生成して出力する。カラー・センサ901は、原色を生成する原理をとくに限定しないが、たとえば、赤、緑、青のフィルターとフォト・トランジスタで構成することができる。カラー分析部903は、原色の光の強さから計算した色相を出力する。制御部905は、環境光の色相から人間の肌の色を認識したときに、ユーザの存在を認定して省電力部303にリセット・イベントを出力する。
【0055】
[ディスプレイ以外のデバイスへの適用例]
図11ユーザ存否の認定方法を適用した他の例を説明するための機能ブロック図である。
図11は、電子機器の一例であるラップトップPC1000のハードウェアとソフトウェアの構成を示している。
図11には、本実施例を理解するために必要な要素だけを示している。ハードウェア1001は、中央演算処理装置(CPU)1001a、システム・メモリ1001b、エンベデッド・コントローラ(EC)1001c、および放熱ファン1001dを含んでいる。
【0056】
CPU1001aは、OS1005、システム・ファームウェア1003、およびアプリケーション1007などを実行し、さらに温度を所定値以内に保つための温度監視制御機能を備えている。システム・ファームウェア1003が温度監視制御機能をイネーブルに設定すると、CPU1001aはコアの温度を監視し、負荷が多くなって温度が上昇したときに、動作周波数および動作電圧を低下させたり、間欠動作をしたりして温度を抑制するように動作する。一例において、インテル(登録商標)社は、温度監視制御機能をTCC(Thermal Control Circuit)に組み込んだCPUを提供しているが、本発明には温度監視制御機能を提供する他のメーカのCPUを採用することもできる。なお、温度監視制御機能に代えて、EC1001cがCPU1001aの電圧および周波数またはいずれか一方を調整して、温度を制御するようにしてもよい。
【0057】
EC1001cは、CPU1001aから独立してファームウェアを実行し、ラップトップPC1000の温度や電力を制御するマイクロ・コンピュータである。EC1001cは、独自のサーマル・マネジメントに関するポリシーを保有しており、CPU1001aを含む筐体内部の主要なコンポーネントや筐体表面の温度を監視して放熱ファン1001dの回転速度を制御する。EC1001cは、サーマル・マネジメントを実現するために、システム・ファームウェア1003を通じてCPU1001aに温度監視制御機能を設定する。
【0058】
放熱ファン1001dは、必要に応じてヒートシンクを組み合わせて、温度の高い空気を筐体の外部に排気して放熱する。EC1001cは、内部の温度に応じて放熱ファン1001dの回転速度を変化させる。内部の温度が高いほど放熱ファン1001dの回転速度が速くなって騒音が大きくなる。OS1005は、タスクスケジューラ1005a、API1005b、およびタスクマネージャ1005cなどを含んでいる。
【0059】
タスクスケジューラ1005aは、設定された所定の時刻、曜日または時間間隔などでプログラム(タスク)を実行する機能を備える。タスクスケジューラ1005aが設定したタスクをスケジュール・タスクという。スケジュール・タスクは、プログラムのアップデートの要否のスキャン、ウィルス・チェック、およびシステム状態の検査などを行う。多くのスケジュール・タスクはインストール時に実行タイミングがタスクスケジューラ1005aに設定される。
【0060】
タスクスケジューラ1005aは、多くのスケジュール・タスクをシステムがアイドル状態のときに実行するように登録する。また、タスクスケジューラ1005aは、実行の途中でシャットダウンされたり、設定された時刻で実行できなかったりしたスケジュール・タスクを次回の起動の直後のアイドル状態のときに実行することもある。ユーザは、タスクスケジューラ1005aにスケジュール・タスクの実行タイミングを設定できるが作業が煩雑でかつコンピュータの知識も必要になる。
【0061】
API1005bは、アプリケーション1007がOS1005のサービスを利用するための命令や関数を提供する。タスクマネージャ1005cは、CPU1001aの使用率を監視する。アプリケーション1007は、サーマル・マネージャ1007aを含む。サーマル・マネージャ1007aは、OS1005およびハードウェア1001と協働してユーザの存否を認定する制御部313(
図4)を構成する。
【0062】
図12は、放熱ファン1001dによる騒音の問題を解消するために、ユーザの存否を認定してCPU1001aの温度監視制御機能を設定する手順を説明するためのフローチャートである。EC1001cは、サーマル・マネジメント・ポリシーに基づいてCPU1001aの温度監視制御機能を設定し、さらに放熱ファン1001dの回転速度を制御する。温度監視制御機能をイネーブルに設定するとCPU1001aの動作パフォーマンスが低下する。したがって、EC1001cは、一例において、放熱ファン1001dの回転速度が最大になるまで温度監視制御機能をディスエーブルに設定する。
【0063】
ユーザ・タスクが実行されている場合は、発熱量が比較的小さく放熱ファン1001dの回転速度が低いためユーザは騒音を感じないか、放熱ファン1001dの回転速度が上昇してもユーザは使用に伴う正常な騒音だと感じる。所定の時間だけシステムのアイドル状態が継続すると、多くのスケジュール・タスクが実行されてCPU1001aの温度が上昇する。EC1001cは、CPU1001aを含む筐体内部の温度が上昇するとそれに応じて放熱ファン1001dの回転速度を上昇させる。
【0064】
EC1001cは一例において、放熱ファン1001dの回転速度が最大に到達してもさらに温度上昇が続く場合に、CPU1001aの温度監視制御機能をイネーブルに設定する。温度監視制御機能がイネーブルに設定されると、やがてCPU1001aの発熱量が低下するため、EC1001cは放熱ファン1001dの回転速度を低下させる。このとき回転速度が低下するまで放熱ファン1001dは最高速度で回転して騒音を発生する。ユーザは、ラップトップPC1000に何らアクセスしないでも騒音が発生することに違和感を覚える。
【0065】
ブロック1101でブートが完了する。ブロック1103でサーマル・マネージャ1007aは、タスクマネージャ1005cから取得したCPU使用率が所定値以下の状態をアイドル状態と認識する。サーマル・マネージャ1007aは、アイドル時間を計算し基準値と比較する。ブロック1104でユーザの入力やストリーミング・データの再生などのユーザ・タスクが実行されたときは、アイドル時間が基準値未満を維持する。このときシステムの動作状態によっては、放熱ファン1001dの回転速度が上昇することもあるがラップトップPC1000の利用に伴うものであるため、ユーザは発生した騒音を想定範囲と考えることができる。アイドル時間が、基準値を超えたときに、ブロック1105に移行する。
【0066】
アイドル時間の基準値は、スケジュール・タスクが自動的に実行されない値に選定している。ブロック1105でサーマル・マネージャ1007aは、
図5から
図9までの手順に基づいてユーザの存否を認定する。サーマル・マネージャ1007aは、ユーザが存在すると認定したときにブロック1107で温度監視制御機能をイネーブルに設定し、ユーザが存在しないと認定したときにブロック1109で温度監視制御機能をディスエーブルに設定する。
【0067】
さらにアイドル時間が継続してブロック1110でスケジュール・タスクの実行条件が成立すると、ブロック1111でタスクスケジューラ1005aはスケジュール・タスクを実行する。ラップトップPC1000は、実行条件が成立するまでブロック1103に戻って動作を継続する。EC1001cは、CPU1001aおよびその他のデバイスの発熱量に応じて放熱ファン1001dの回転速度を制御する。このとき所定のタスクを実行するCPU1001aは、ユーザが存在するときは低い動作パフォーマンスで動作するため発熱量は小さく、ユーザが存在しないときは高い動作パフォーマンスで動作するため発熱量が大きい。
【0068】
その結果ユーザがラップトップPC1000のそばにいて、入力をしていないときには放熱ファン1001dが低い回転速度で動作する。また、ユーザがラップトップPCのそばにいないときは高い回転速度で動作する。ブロック1113でスリープ状態またはパワー・オフ状態への移行操作が行われると、ブロック1115でその処理が行われる。パワー・オン状態を維持する限りブロック1103に戻り、ユーザの存否に基づいて温度監視制御機能が設定される。
【0069】
図13は、放熱ファン1001dによる騒音の問題を解消するために、ユーザの存否を認定してスケジュール・タスクの実行のタイミングを制御する手順を説明するためのフローチャートである。ブロック1151でラップトップPC1000の起動が完了する。サーマル・マネージャ1007aはブロック1153で
図5から
図9までの手順に基づいてユーザの存否を認定する。
【0070】
タスクマネージャ1007aは、ユーザが存在すると認定したときにブロック1155でタスク制御をイネーブルに設定し、ユーザが存在しないと認定したときにブロック1157でタスク制御をディスエーブルに設定する。タスク制御は、サーマル・マネージャ1007aが、スケジュール・タスクの実行タイミングを一時的に停止させるための処理をすることに相当する。サーマル・マネージャ1007aは、1つの方法として定期的に実行するダミー・プロセスを生成して、CPU1001aがアイドル状態に遷移することを抑制する。
【0071】
サーマル・マネージャ1007aは他の方法として、タスクスケジューラ1005aに登録されているスケジュール・タスクを停止する。したがって、タスクマネージャ1007aがタスク制御をイネーブルに設定している間は、スケジュール・タスクが実行されないため、負荷の大きなユーザ・タスクが実行されない限り、放熱ファン1001dが高い回転速度で回転することはない。ブロック1159でアイドル時間が所定値を超えるとブロック1163でスケジュール・タスクが実行される。その結果放熱ファン1001dは高い回転速度で動作するが、ユーザが近辺に存在しないため騒音の問題は生じない。
【0072】
ブロック1165でスリープ状態またはパワー・オフ状態への移行操作が行われるまでラップトップPC1000はブロック1153に戻って動作する。タスク制御がイネーブルに設定されている時間が長いと、移行操作の時点で実行されないスケジュール・タスク(遅延タスク)が存在する。サーマル・マネージャ1007aは、ブロック1167でタスクスケジューラ1005aに問い合わせて遅延タスクの存在を認識したときにブロック1169でタスク制御をディスエーブルに設定し遅延タスクを実行してからブロック1171に移行する。
【0073】
ユーザがラップトップPCを使用する前にスケジュール・タスクが実行されていると、CPU1001aによるユーザ・タスクの処理が遅くなる。
図13の手順では、ユーザ・タスクとスケジュール・タスクの重複実行を避けることができる。ユーザが存在しているときはスケジュール・タスクの実行が抑制されるため、ラップトップPC1000を快適に利用することができる。ユーザの存否を認定する
図12のブロック1105および
図13のブロック1153の手順を実行するデバイスは、環境照明センサに限定する必要はなく、人感センサやIRカメラを利用することもできる。
【0074】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。たとえば本発明は制御の対象となるデバイスをディスプレイやプロセッサに限定する必要はない。
【0075】
また、制御方法としてディスプレイの動作、CPUの温度監視制御機能、およびOSのタスク制御機能を例示したが、本発明はユーザが存在しないときにスリープ状態のような消費電力を低減する動作モードへ移行させることにも適用できる。またデバイス制御の目的を、ここに例示したものに限る必要はなく、ユーザの存否に関連付けることで制御することが有益な用途全般に適用することができる。