本発明の好適な実施形態について図面を参照しながら説明する。本実施形態の情報処理装置はパーソナルコンピューターの例であり、特に無線デバイスとして、所謂Bluetooth方式のようなスペクトラム拡散近距離通信と、ワイヤレスLAN用通信とが可能なパーソナルコンピューターである。
本実施形態の要部のソフトウエア・ハードウエア構成図を図1に示す。まず、ハードウエアの構成として、ハードウエアの状態に関する制御に応じて開閉操作されるスライドスイッチ14が制御デバイス11に接続され、その制御デバイス11からの信号を受けて作動する対象デバイス12、13が設けられている。これら対象デバイス12、13は、如何なるデバイスでも良いが、特に、これらの対象デバイス12、13を、後述するようにスペクトラム拡散近距離通信モジュールとワイヤレスLANモジュールとすると、良好な無線電波の制御が実現される。対象デバイス12、13の他の例としては、モデム、キーボード、カメラ、フレキシブルディスク、ハードディスク、スキャナー、プリンタ、FAX、CD-ROM読取り装置、リムーバブルメディアデバイス、サウンドコントローラー、ビデオコントローラー、ゲームコントローラー、ディスプレイ、マウス、USBポート、ネットワークカード、PCMCIAカード、その他のI/Oデバイス、ポート、赤外線ポート、電池など種々の取り付け可能或いは内蔵される種々のデバイスが該当する。
このようなハードウエア側の構成に対応してソフトウエア側の構成が存在する。ソフトウエア側の主な構成は、それぞれの対象デバイス12、13と制御デバイス11に対応するように、各デバイスドライバー16、17、15が設けられ、それらデバイスドライバー16、17、15がユーティリティ18のプログラムによって制御される。このユーティリティ18は起動された時にCPU上で動作する。
図4はソフトウエア及びハードウエアの階層構造を示す図であり、ハードウエア上にはOSが存在し、そのOS上にアプリケーションとミドルウエアの組み合わせからなるレイヤーが形成される。本発明ではユーティリティがアプリケーションに相当し、デバイスドライバーとユーティリティの一部がミドルウエアのレイヤーに相当する。デバイスドライバーは、使用不可にする制御がデバイスマネージャなどのGUIから可能な構成になっており、本実施形態では、ユーティリティからの命令をOS経由で受け取ってデバイスの無効化(停止)処理をすすめることができる。
図2はハードウエアの要部構成を示すブロック図であり、図3はその要部構成についてのチップセットに対応したブロック図である。図2において、ソフトウエアを扱うCPU21と埋め込み制御デバイス(Embedded Controller)22の間にはバスラインが形成され、埋め込み制御デバイス22はCPU21からの信号に応じて作動すると共にCPU21に対しても信号を送れるように構成されている。スライドスイッチ23は直接埋め込み制御デバイス22に信号を送れるように構成されており、この埋め込み制御デバイス22に制御される対象デバイスとして、スペクトラム拡散近距離通信モジュール24とワイヤレスLANモジュール25が接続されている。
この構成から、スライドスイッチ23を操作した場合には、埋め込み制御デバイス22にスライドスイッチ23を操作した旨の信号が送られ、埋め込み制御デバイス22からCPU21に対してソフトウエア主導の処理が進められると共に、該ソフトウエア主導の処理が不成功の場合、当該埋め込み制御デバイス22からスペクトラム拡散近距離通信モジュール24やワイヤレスLANモジュール25を強制的に不作動にさせる信号が送られる。この強制的に不作動にさせる信号の一例としては、各デバイスに供給される電源をオフに制御する信号や出力段のアンプをオフにする信号などが挙げられるが、他の手法や手段を用いることも可能である。
図3は図2の構成のハードウエアをチップセット等を含めて図示したブロック図であり、この図3ではスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36のオンオフを制御するように構成されている。
CPUとノースブリッジのセット31には、バス33を介してサウスブリッジ32が接続され、また、周辺機器に対する制御を扱うサウスブリッジ32には、スペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36のオンオフを制御する埋め込み制御デバイス34がバスを介して接続されている。
スペクトラム拡散近距離通信モジュール35は、スペクトラム拡散近距離通信用の信号処理を行うモジュールであり、一例としてはRF用LSIとベースバンド用LSIの組み合わせからなるチップセット等を有するが、回路構成は特に限定されるものではない。このスペクトラム拡散近距離通信モジュール35には、外付けのアンテナ39が接続され、例えば2.4GHz帯の帯域を利用した通信が可能となる。このスペクトラム拡散近距離通信モジュール35はパーソナルコンピューターに内蔵のものでも良く、オプションとして搭載されるカード、スティック或いはデバイスなどであっても良い。このスペクトラム拡散近距離通信モジュール35の電源供給側には、電源スイッチ37が接続されており、この電源スイッチ37は埋め込み制御デバイス34からの信号により開閉制御される。前述のサウスブリッジ32は、バス41を介してスペクトラム拡散近距離通信モジュール35に接続され、通信されるデータの転送を行う。
このスペクトラム拡散近距離通信モジュール35と共に設けられているのが、ワイヤレスLANモジュール36であり、主にIEEE802.11bやこれに順ずるような規格の通信を取り扱う。このワイヤレスLANモジュール36は無線アンプ(即ちRF出力スイッチ)38を介してアンテナ40に接続するように構成されており、また、バス42を介してノースブリッジやサウスブリッジ32に接続するように構成されている。無線アンプ38は、アンテナ40に対する出力をオンオフ制御するスイッチであり、埋め込み制御デバイス34からの信号により開閉制御される。なお、ワイヤレスLANモジュール36は、例えばカードバスを介して接続されるデバイスであり、USB(Universal Serial Bus)接続の場合とは異なって電源をオフにする場合には、所要の手順が必要とされる。
埋め込み制御デバイス34は、スペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36のオンオフを制御する制御器であり、特にスペクトラム拡散近距離通信モジュール35の制御には、電源スイッチ37のオンオフを制御することで、当該スペクトラム拡散近距離通信モジュール35の作動・不作動を制御する。また、ワイヤレスLANモジュール36を制御する場合には、その出力側である無線アンプ38のオンオフを制御する。このワイヤレスLANモジュール36の制御は、厳密にはワイヤレスLANモジュール36自体の電源制御ではなく、その一部のオンオフ制御に過ぎないが、無線電波を抑制すると言う点では、同様の効果を得ることができ、ワイヤレスLANモジュール36の全体を制御する場合に比べてシステムの安定化を図ることができる。
ここで本実施形態における埋め込み制御デバイス34による制御について列挙すると、先ず、第1にスライドスイッチ43の状態が変化した時に、ユーティリティに対しスライドスイッチ43の状態を通知する制御があり、第2にデバイス即ちスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36の電源のオンオフあるいは、スペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36若しくはこれらの関連周辺デバイスに対しハードウエア的に電波の発信の許可・非許可の処理を行う制御がある。また第3の制御としてはスライドスイッチ43の状態がオン状態時にデバイス電源のオンオフや電波の発信の許可・非許可をユーティリティから変更できるようにする制御がある。また、第4にスライドスイッチ43がオン状態からオフ状態へ変化し、ある時間、ユーティリティから反応がない場合(ユーティリティやOSやドライバー等の異常等)、デバイスの電源をオフにしハードウエア的に電波の発信を非許可にする処理を行う制御があり、これはスライドスイッチ43がオン状態からオフ状態に遷移した時にペンディング(pending)状態を設ける機構に該当する。第5の制御として、ペンディング状態(前述の第3の制御)時、ペンディング時間計測のためのカウンターが動作中であっても、ユーティリティからカウンターの値を変更できるようにする制御があり、更に第6の制御としてOSやドライバー等の論理的な矛盾を考慮しなくて良いデバイス・操作である場合、スライドスイッチのオンオフに同期して電波の発信の許可・非許可を行う制御が挙げられる。ペンディング時間計測のためのカウンターはペンディングカウンターと呼ばれ、或る値にプリセットされるカウンター値を減少させ、カウンター値が例えばゼロになったところでペンディング動作を終了させる機能を有する。なお、ここで列挙した各制御は、例示に過ぎず、対象デバイスの数や種類などの要因に応じて適宜変更し得るものである。
このような制御動作を行う埋め込み制御デバイス34は、ソフトウエアであるユーティリティとの協働した制御を行う。特に本実施形態では、ユーティリティは対象デバイスとの関連で次の制御を行う。その第1の制御は、埋め込み制御デバイス34からのスライドスイッチ43の状態変化通知に対し、埋め込み制御デバイス34に対し処理を依頼するものである。
埋め込み制御デバイス34に対する処理として、スライドスイッチ43がオン状態からオフ状態に変化した時は、先ず、埋め込み制御デバイス34による強制的なオフ処理を保留するため、ペンディングカウンターの更新命令を発行する。次に、目的のデバイス、ここではスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36に対してOS経由でスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36の無効(停止)化処理を行う。もし無効化処理中に、埋め込み制御デバイス34のペンディング時間の残り時間が少なくなった場合、再度、埋め込み制御デバイス34に対してペンディングカウンターの更新命令を発行する。このような場合は、論理の破綻なく無効化処理が進んでいる状態を意味しており、ソフトウエアであるユーティリティの処理を先行させることで、強制的なオフ処理が最小限に留めることができ、論理矛盾などの発生を防止できる。無効化処理が不成功に終わった場合、埋め込み制御デバイス34に対し、目的のデバイスの電源をオフにする命令を発行する。前述のスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36が対象デバイスである場合には、電源スイッチ37のオンオフを制御することで、当該スペクトラム拡散近距離通信モジュール35の作動・不作動が制御され、ワイヤレスLANモジュール36を制御する場合には、その出力側である無線アンプ38のオンオフが制御される。ユーティリティからの埋め込み制御デバイス34に対する信号によって、これら電源スイッチ37と無線アンプ38の制御が行われる。
埋め込み制御デバイス34に対する処理として、スライドスイッチ43がオフ状態からオン状態に変化した時は、先ず、埋め込み制御デバイス34に対し、目的のデバイスの電源をオンにする命令を発生させる。ここでスライドスイッチ43がオフ状態からオン状態に変化した時にペンディング状態を適用していない理由は、オンオフの繰り返しを連続で短期間に行った時に、論理的不整合が発生することが事前に分かっており、かつ、一方、特に、オン状態からオフ状態に変化した時にペンディング機構を入れれば、論理的不整合の問題が発生しないことが分かっているためである。なお、オン状態に遷移する時に問題が発生する構成の場合は、オン状態に遷移する時にペンディング機構を入れることも可能である。
ユーティリティの機能としては、前述のような埋め込み制御デバイス34に対する処理に加えて、単一のスライドスイッチ43よる複数デバイスの管理システムとしても機能する。このような複数デバイスの管理システムとして構成できる例としては、前述のスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36を例示できる。これらのスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36は同じ周波数帯域を使用するために、同時に使用すると通信の質が低下し、通信が切断されたり、本来の性能を発揮することができなくなったりする。そこで排他的に作動させることで、通信の質の低下を防止できる。このようなユーティリティからの制御を本実施形態では、ユーザーに対するGUI(Graphical User Interface)の提供を伴って行うが、この部分について後述する。
次に、図5を参照して、システム全体としての処理について説明する。この図5の流れは、本実施形態の情報処理装置の動作の概略を示したものであり、後述の図7の流れ図はその詳細な手順までを含めて示したものとなっている。また、図6は埋め込み制御でデバイスの定期処理を示すフローチャートである。
先ず、本実施形態の情報処理装置であるパーソナルコンピューターは、図5の状態S11で示すように当初スライドスイッチの監視状態にあり、スライドスイッチの状態がオンからオフへと遷移するのを常時検出している。ここでスライドスイッチがオンからオフへと変化した場合(r11)、その変化の信号がスライドスイッチから埋め込み制御デバイス34に送られ、ユーティリティ(System)にその変化が通知される。すると、当該情報処理装置は試行状態に遷移し(状態S12)、そこでソフトウエア手法による無効化を試みる。この時、論理的な整合性が維持される形でソフトウエア手法による無効化が可能である場合には、その処理時間を延長する制御を加えることが可能である。
ソフトウエア手法による無効化が成功した場合(r12)、元のスライドスイッチの監視状態(状態S11)に戻り次のスライドスイッチの変化を待つことになる。逆にソフトウエア手法による無効化が失敗した場合(r13)、強制的に対象デバイスの電源をオフに変化させることが行われる(状態S13)。この場合は、種々の電源管理手法を用いることが可能であり、例えば対象デバイスのモジュール全体の電源を強制的にオフにする方法や、一部の出力段にかかわる部分だけを強制的に不活性状態にさせるなどの手法が用いられる。このような状態S13を経て状態遷移の処理が完了し(r14)、元のスライドスイッチの監視状態(状態S11)に戻って再度のスライドスイッチの変化の待機モードに入る。
次に、このような図5の流れと対応する埋め込み制御デバイスの定期処理について、図6を参照しながら説明する。埋め込み制御デバイスはスライドスイッチがオン状態からオフ状態に変化させられた時に、初めにソフトウエア主導の無効化処理を進めるように機能する。そのソフトウエア主導の無効化処理が失敗した際には、確実なハードウエアでの電源オフ作業が進められる。
具体的には、埋め込み制御デバイスは、定期的なタイマー割込を実行するように構成されていて、その割り込みルーチンが図6に示される。先ず手順S21で、埋め込み制御デバイスはスライドスイッチの状態が変化したか否かを検知し、NOの場合、手順S25に進んでスライドスイッチの状態を判断する。もし、スライドスイッチがOFF状態であれば、手順S26で電源をOFFにする場合の処理が行われ、逆にスライドスイッチがON状態であればそのまま割り込み処理を終了する。すなわち、スライドスイッチがOFF状態の時に電源をOFFにする場合の処理をすることで、ソフトウエア主導の電源をオフにする処理が先行して行われ、このソフトウエア主導の処理が失敗した場合に、ハードウエアによる強制的に電源をオフにする制御が行われる。
手順S21で埋め込み制御デバイスがスライドスイッチの状態が変化したか否かを検知した結果、YESの場合、手順S22に進み、スライドスイッチの状態を判断する。もし、スライドスイッチがON状態であれば、手順S23に進んでスライドスイッチがON状態になったことをユーティリティ(System)に通知する。逆に、スライドスイッチがOFF状態であれば、手順S24に進んでスライドスイッチがOFF状態になったことをユーティリティに通知する。ここで通知されたスライドスイッチの内容は、ペンディング機構を使用するか否かの指示をユーティリティから発する時に使用される。
埋め込み制御デバイスが以上の如き処理を割り込みの形で行うことで、スライドスイッチの状態が変化した場合に、ソフトウエア主導の電源オフ制御を強制的な電源オフに先行する形で進めることができる。
図7は本実施形態の情報処理装置の動作の詳細な手順までを含めて示した図であり、図5の状態遷移図をより具体化して示す図である。この情報処理装置の動作は、パーソナルコンピューターの電源をオフに制御させる場合の状態遷移図である。図7において、デバイスは例えば図3に示すスペクトラム拡散近距離通信モジュール35やワイヤレスLANモジュール34に該当する。
先ず、情報処理装置であるパーソナルコンピューターの取り得る状態として、ノーティファイ(NOTIFY)状態(S31)、ペンディング(PENDING)状態(S32)、フォースオフ(FORCE OFF)状態(S33)、及びオールレディオフ(ALREADY OFF)状態(S34)の4つの状態があり、パーソナルコンピューターはこれら4つの状態の間を遷移して作動し、論理的な矛盾やOSのハングアップを回避しながら、電源をオフに遷移させることができる。
詳しくは、ノーティファイ状態(S31)では、CPU31上でユーティリティ(System)として実行されるペンディングカウンターの設定が行われるとともに、スライドスイッチの状態の通知が行われる。これはスライドスイッチの状態に応じて、ソフトウエア主導の処理をするか否かが決められるためである。
このノーティファイ状態から対象デバイスがオフの場合(r35)、オールレディオフ状態(S34)に遷移する。このオールレディオフ状態(S34)は、スライドスイッチの状態に拘らず、電源が既にオフとなっている状態を示しており、この場合にはカウンターを使用することもないことから、そのカウンター値がゼロにセットされる。オールレディオフ状態(S34)でスライドスイッチがオフに変化した時(r36)は、スライドスイッチの状態をユーティリティに通知するノーティファイ状態(S31)に戻ることになる。
ノーティファイ状態から対象デバイスがオンの場合(r31)、パーソナルコンピューターはペンディング状態(S42)に入る。ペンディング状態は、前述のペンディングカウンターを減算しながら、処理を進める状態であり、ソフトウエア主導の電源オフ制御を行う場合、ペンディングカウンターを減算しながらゼロに至る期間は、ソフトウエア主導の電源オフ制御(r34)がハードウエア上の強制的な電源オフ制御に先行して処理される。具体的には、ペンディングカウンターを減算しながらの処理(r32)が時間待ち処理と同様に機能し、システムが正常な場合、カウンター値の更新がなされて、ペンディング時間が延長となる。
システムが正常でない場合、ペンディングカウンターがゼロに至って(r33)からフォースオフ状態(S33)に遷移する。このフォースオフ状態(S33)では電源のオフ状態の制御が強制的に行われる。この制御は、対象となるデバイスが、例えば図3に示す構成の場合では、スペクトラム拡散近距離通信モジュール35の制御に電源スイッチ37のオンオフが制御され、ワイヤレスLANモジュール36の制御に無線アンプ38のオンオフが制御されて実行される。なお、このようなデバイスに対する電源の制御は一例に過ぎず、デバイス毎に最もデバイスやシステムに負担の少ない形で制御を行えば良く、ソフトウエアのハングアップの度合いや、システムの余裕などを見越してハードウエアに対する制御を変えることも可能である。フォースオフ状態(S33)からはオールレディオフ状態(S34)に遷移する。
前述のソフトウエア主導の電源オフ制御(r34)の一例としては、OSがウインドウズの場合ではデバイスマネージャの各デバイスのプロパティを無効化(使用付加)とするような制御である。このような制御は、OSのハングアップ時や論理的な矛盾などの異常時には、その困難な処理であるが、正常時には時間がかかることがあっても、論理的な整合性を保持したまま処理を完結させることができる。
上述のように、本実施形態の情報処理装置における状態遷移として、電源をオフにする制御をする場合、埋め込み制御デバイス(Embedded Controller)とユーティリティ(Utility)の協働的な実行で処理が進められる。ここでスライドスイッチがオフからオンに制御される場合の処理、スライドスイッチがオンからオフに制御される場合(正常時)の処理、及びスライドスイッチがオンからオフに制御される場合(異常時)の処理について処理の順を追って説明する。
スライドスイッチがオフからオンに制御される場合には、まず、埋め込み制御デバイスは接続されるスライドスイッチからの信号によって、当該スライドスイッチがオフ状態からオン状態に変化したことを検出し、システム側(CPU)であるユーティリティにスライドスイッチがオフ状態からオン状態に変化したことを通知する。この通知を受けてユーティリティは、埋め込み制御デバイスに対してデバイス電源をオン状態に制御するように信号を送る。この信号を受け、埋め込み制御デバイスは該当するデバイスの電源をオン状態となるように切り替えて制御する。
次に、スライドスイッチがオンからオフに制御される場合(正常時)には、埋め込み制御デバイスは接続されるスライドスイッチからの信号によって、当該スライドスイッチがオン状態からオフ状態に変化したことを検出し、システム側(CPU)であるユーティリティにスライドスイッチがオン状態からオフ状態に変化したことを通知する。ユーティリティはこのスライドスイッチがオン状態からオフ状態に変化した旨の通知を受信する。この段階で、埋め込み制御デバイスはペンディング状態に入り、先ずペンディングカウンターの値を初期化して所定の値にセットする。セットされたカウンター値は所定数ずつ減算され、カウンターがオフ状態となるまで又はゼロとなるまでカウントダウンされる。このカウントダウンの終了時において、まだ、OS経由でデバイスの無効化処理が終わっていない場合には、ペンディングカウンターの値を更新させてペンディング時間を延長させる。このような時間的に融通の利く処理によって、対象となるデバイスの無効化を図ることができ、論理的な整合性を維持できる。ユーティリティは、デバイスの無効化を行った後、該デバイスにかかる電源をオフに制御するように指示を埋め込み制御デバイスに対して発し、埋め込み制御デバイスはその指示に応じてデバイス電源をオフにするように制御を行う。これにより、対象とされたデバイスはオフにされ、電源をオフにするという処理は終了する。
次に、スライドスイッチがオンからオフに制御される場合(異常時)には、先ず埋め込み制御デバイスは接続されるスライドスイッチからの信号によって、当該スライドスイッチがオン状態からオフ状態に変化したことを検出し、システム側(CPU)であるユーティリティにスライドスイッチがオン状態からオフ状態に変化したことを通知する。埋め込み制御デバイスは同様にペンディング状態に入り、先ずペンディングカウンターの値を初期化して所定の値にセットし、セットされたカウンター値は所定数ずつ減算され、カウンターがオフ状態となるまで又はゼロとなるまでカウントダウンされる。このとき、ユーティリティ即ちシステムが異常事態である場合、その通知自体を受信できないなどの問題や、埋め込み制御デバイスに対して指示できない、或いはデバイスの処理中にシステム自体が異常になるというような問題が生じた場合では、カウントダウンされてゼロになった後でも、そのペンディングカウンターの値が更新されずに終わることになる。その結果、埋め込み制御デバイスは強制的に対象デバイスをオフに制御して、電源をオフにする。この制御によって、デバイスに異常が発生した場合であっても確実に電源をオフできることになる。
次に、他の実施形態の情報処理装置について、図8を参照しながら説明する。この図8の情報処理装置は埋め込み制御デバイスに対しユーティリティ(System)が正常に動作していることを通知することにある。この通知は、具体的には、埋め込み制御デバイスに対しアクナリッジメントを返すように構成されている。なお、ハードウエアの構成は先の実施形態のものと同様であり、図3の構成であることを前提に説明する。
初めに、本実施形態における埋め込み制御デバイスによる制御は、ハードウエアの構成が図3の構成であるとすると、第1にスライドスイッチ43の状態が変化した時に、ユーティリティに対しスライドスイッチ43の状態を通知する制御があり、第2にデバイス即ちスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36の電源のオンオフあるいは、スペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36若しくはこれらの関連周辺デバイスに対しハードウエア的に電波の発信の許可・非許可の処理を行う制御がある。第3の制御としてはスライドスイッチ43の状態がオン状態時にデバイス電源のオンオフや電波の発信の許可・非許可をユーティリティから変更できるようにする制御がある。また、第4にスライドスイッチ43がオン状態からオフ状態へ変化し、ある時間、ユーティリティから反応がない場合(ユーティリティやOSやドライバー等の異常等)、デバイスの電源をオフにしハードウエア的に電波の発信を非許可にする処理を行う制御があり、これはスライドスイッチ43がオン状態からオフ状態に遷移した時にペンディング(pending)状態を設ける機構に該当する。第5の制御としてペンディング状態(前述の第3の制御)時に、アクナリッジメント(Acknowledgement)が通知された場合、カウンターの値を一定の値に更新する制御や、ペンディング状態からウエイト(Wait)状態に遷移させる制御があり、更に第6の制御としてOSやドライバー等の論理的な矛盾を考慮しなくて良いデバイス・操作である場合、スライドスイッチのオンオフに同期して電波の発信の許可・非許可を行う制御が挙げられる。なお、ここで列挙した各制御は、例示に過ぎず、対象デバイスの数や種類などの要因に応じて適宜変更し得るものである。
このような制御動作を行う埋め込み制御デバイス34は、ソフトウエアであるユーティリティとの協働した制御を行う。特に本実施形態では、ユーティリティは対象デバイスとの関連で次の制御を行う。その1つは埋め込み制御デバイス34からのスライドスイッチ43の状態変化通知に対し、埋め込み制御デバイス34に対し処理を依頼するものである。
埋め込み制御デバイス34に対する処理として、スライドスイッチ43がオン状態からオフ状態に変化した時は、先ず、埋め込み制御デバイス34による強制的なオフ処理を保留するため、アクナリッジメントを埋め込み制御デバイス34に対して発行する。次に、目的のデバイス、ここではスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36に対してOS経由でスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36の無効(停止)化処理を行う。もし無効化処理中に、埋め込み制御デバイス34のペンディング時間の残り時間が少なくなった場合、再度、埋め込み制御デバイス34に対してアクナリッジメントを発行し、システムが正常でユーティリティが無効化処理中であることを通知する。このような場合は、論理の破綻なく無効化処理が進んでいる状態を意味しており、ソフトウエアであるユーティリティの処理を先行させることで、強制的なオフ処理が最小限に留めることができ、論理矛盾などの発生を防止できる。無効化処理が不成功に終わった場合、埋め込み制御デバイス34に対し、目的のデバイスの電源をオフにする命令を発行する。前述のスペクトラム拡散近距離通信モジュール35とワイヤレスLANモジュール36が対象デバイスである場合には、電源スイッチ37のオンオフを制御することで、当該スペクトラム拡散近距離通信モジュール35の作動・不作動が制御され、ワイヤレスLANモジュール36を制御する場合には、その出力側である無線アンプ38のオンオフが制御される。ユーティリティからの埋め込み制御デバイス34に対する信号によって、これら電源スイッチ37と無線アンプ38の制御が行われる。
埋め込み制御デバイス34に対する処理として、スライドスイッチ43がオフ状態からオン状態に変化した時は、先ず、埋め込み制御デバイス34に対し、目的のデバイスの電源をオンにする命令を発生させる。ここでスライドスイッチ43がオフ状態からオン状態に変化した時にペンディング状態を適用していない理由は、前述の実施形態と同じである。なお、オン状態に遷移する時に問題が発生する構成の場合は、オン状態に遷移する時にペンディング機構を入れることも可能である。
このような構成の本実施形態の情報処理装置は、原則的に図5の状態遷移の形態を取って動作する構成を有し、埋め込み制御デバイスは、図6に示す定期的なタイマー割込を実行するように構成されている。
アクナリッジメントを利用して埋め込み制御デバイスを一時的に待機させる場合、すなわちウエイト動作させる場合では、図8に示す状態遷移を取るように構成される。この情報処理装置の動作は、パーソナルコンピューターの電源をオフに制御させる場合の状態遷移図である。図8において、デバイスは、先の実施形態と同様に、例えば図3に示すスペクトラム拡散近距離通信モジュール35やワイヤレスLANモジュール34に該当する。
先ず、情報処理装置であるパーソナルコンピューターの取り得る状態として、ノーティファイ(NOTIFY)状態(S41)、ペンディング(PENDING)状態(S42)、フォースオフ(FORCE OFF)状態(S43)、オールレディオフ(ALREADY OFF)状態(S44)、及びウエイト(WAIT)状態(S45)の5つの状態があり、パーソナルコンピューターはこれら5つの状態の間を遷移して作動し、論理的な矛盾やOSのハングアップを回避しながら、電源をオフに遷移させることができる。
詳しくは、ノーティファイ状態(S41)では、CPU31上でユーティリティ(System)として実行されるペンディングカウンターの設定が行われるとともに、スライドスイッチの状態の通知が行われる。これはスライドスイッチの状態に応じて、ソフトウエア主導の処理をするか否かが決められるためである。
このノーティファイ状態から対象デバイスがオフの場合(r47)、オールレディオフ状態(S44)に遷移する。このオールレディオフ状態(S44)は、スライドスイッチの状態に拘らず、電源が既にオフとなっている状態を示しており、この場合にはカウンターを使用することもないことから、そのカウンター値がゼロにセットされる。オールレディオフ状態(S44)でスライドスイッチがオフに変化した時(r46)は、スライドスイッチの状態をユーティリティに通知するノーティファイ状態(S41)に戻ることになる。
ノーティファイ状態から対象デバイスがオンの場合(r41)、パーソナルコンピューターはペンディング状態(S42)に入る。ペンディング状態は、前述のペンディングカウンターを減算しながら、処理を進める状態であり、ソフトウエア主導の電源オフ制御を行う場合、ペンディングカウンターを減算しながらの期間は、システム側からアクナリッジメントの通知が行われ、このアクナリッジメントの通知によりシステムが正常であることが埋め込み制御デバイスにも伝達されて、そこでペンディングカウンターのカウントダウンが停止することになるウエイト状態(S45)には入る。その結果、ソフトウエア主導の電源オフ制御(r45)がハードウエア上の強制的な電源オフ制御に先行して処理される。
アクナリッジメントの通知がない場合には、ペンディングカウンターがゼロに至って(r43)からフォースオフ状態(S43)に遷移する。このフォースオフ状態(S43)では電源のオフ状態の制御が強制的に行われる。この制御は、対象となるデバイスが、例えば図3に示す構成の場合では、スペクトラム拡散近距離通信モジュール35の制御に電源スイッチ37のオンオフが制御され、ワイヤレスLANモジュール36の制御に無線アンプ38のオンオフが制御されて実行される。なお、このようなデバイスに対する電源の制御は一例に過ぎず、デバイス毎に最もデバイスやシステムに負担の少ない形で制御を行えば良く、ソフトウエアのハングアップの度合いや、システムの余裕などを見越してハードウエアに対する制御を変えることも可能である。フォースオフ状態(S43)からはオールレディオフ状態(S44)に遷移する。
前述のソフトウエア主導の電源オフ制御(r44)の一例としては、OSがウインドウズの場合ではデバイスマネージャの各デバイスのプロパティを無効化(使用付加)とするような制御である。このような制御は、OSのハングアップ時や論理的な矛盾などの異常時には、その困難な処理であるが、正常時には時間がかかることがあっても、論理的な整合性を保持したまま処理を完結させることができる。
次に、情報処理装置の一例として車両のブレーキ装置を対象とする場合の例について、図9を参照しながら説明する。上述の実施形態では、電源が切れる必要があるというデバイスに対する適用例について説明し、スライドスイッチのオン状態からオフ状態に遷移の動作に対して、ペンディング機構を設ける形態である。本実施形態は、その視点を変え、必ず電源が入る必要があるデバイスに対する適用例である、これは例えば車両のブレーキ装置のように、必ず働かなくてはいけないシステムへ適用できる。
以下、スイッチ即ちブレーキペダルのオフ状態からオン状態に変化する時のシステム全体としての状態遷移は、以下の通り、図9に示される。図9に示すように、本実施形態の情報処理装置である車両のブレーキ装置は、図9の状態S51で示すように当初ブレーキペダルの監視状態にあり、ブレーキペダルが押し下げられるのを常時検出している。ここでブレーキペダルが押し下げられた場合(r51)、その変化の信号がブレーキペダルから制御デバイスに送られ、ユーティリティ若しくはソフトウエアにその変化が通知される。すると、当該情報処理装置は試行状態に遷移し(状態S52)、そこでインテリジェントブレーキシステムを用いたブレーキングを試みる。インテリジェントブレーキシステムを用いたブレーキングが成功した場合(r52)、元のブレーキペダルの監視状態(状態S51)に戻り次のブレーキペダルの変化を待つことになる。逆にインテリジェントブレーキシステムを用いたブレーキングが失敗した場合、すなわち故障などによって減速ができない場合(r53)、強制的に従来のブレーキング手法(NON-Intelligent)が試みられる(状態S53)。このような状態S53を経て状態遷移の処理が完了し(r54)、元のブレーキペダルの監視状態(状態S51)に戻って再度のブレーキペダルの変化の待機モードに入る
次に、図10と図11を参照しながら、本発明をパーソナルコンピューター本体の電源に適用したときの実施形態を説明する。通常、ACPI(Advanced Configuration Power management Interface : パーソナルコンピューターの電源管理の規格)に準拠したパーソナルコンピューターであれば、電源ボタンを4秒間押すことで、パーソナルコンピューターの電源を強制的にオフにすることができる。また、電源ボタンを押した時の動作として、例えば、電源のオフを選択することができ、このとき、電源ボタンを一度押すと、電源オフが行われる。
ところで、電源がオンの時に、アプリケーションが不正な処理を行ったり、インストールされているドライバー自身の出来が悪かったりすると、電源をオフにする処理が失敗することがあり、この場合、完全に電源がオフになる前に、反応が無くなる(hang up)ことがある。ユーザーの視点に立てば、終了時は確実に電源がオフになることが期待されていることから、本実施形態の有効利用を図ることができる。
本実施形態では、装置の構成は図1の構造となり、図10にテーブルで示すように、図1の制御デバイスを埋め込み制御デバイス(Embedded Controller)とし、対象デバイスをパーソナルコンピューター本体の電源、ユーティリティをOSとそれぞれ読み替えることで適用できる。
図11は本実施形態の状態遷移図である。先ず監視状態S61では、電源ボタンの押下が監視され、電源ボタンが押下された(r61)場合には監視状態2(S62)に移行する。監視状態2では電源ボタンが押下され続けられているかが判断される。電源ボタンを押すことが止められた場合(r62)では、通知状態S63に移行する。この通知状態S63においては、カウンターが設定され、電源ボタンが押し下げられていることが通知される。
試行状態(S64)は、前述のカウンターを減算しながら、処理を進める状態であり、ソフトウエア主導の電源オフ制御を行う場合、カウンターを減算しながらゼロに至る期間は、OS主導の電源オフ制御(r64)がハードウエア上の強制的な電源オフ制御に先行して処理され、電源オフ処理(S66)に至り、そこでパーソナルコンピューター本体の電源がオフに制御される。
システムが正常でない場合、カウンターがゼロに至って(r65)から強制処理状態(S65)に遷移する。また、4秒間連続して電源ボタンが押し下げられている場合(r66)も強制処理状態(S65)に遷移する。この強制処理状態(S65)では、IDEのリセット用の信号が発せられる。その後、電源オフ処理(S66)に至り、そこでパーソナルコンピューター本体の電源がオフに制御される(S67)。なお、OSは、埋め込み制御デバイスに対して、電源をオンからオフに制御する時に、終了プロセスの毎に、カウンターの更新命令を送れば良い。
以上のように適用することにより、終了プロセスが中断(hang up)した際には、カウンターの更新命令が通知されないため、カウンターが減算しつづけ、ゼロになった時点で、電源がかならず終了するようになる。なお、強制終了時(S65)は、ハードディスクなど、強制的に電源をオフにすることにより、障害の発生する可能性のあるデバイスに対しては、強制終了前に、ハードウエア的な保証措置を行うことが好ましい。
次に、図12、図13を参照して、複数のデバイスを並行して状態遷移させる場合に、選択的にデバイスを選ぶ機構について説明する。このような機構としては、同じ周波数帯域を使用する無線デバイスがある。例えば、無線LANとBluetooth(商標、規格名)は、同じ周波数帯域を用いる無線デバイスであり、同時に使用すると通信品質が低下し、通信が切断されたり、本来の性能が発揮できなくなったりする。故に、排他的な制御が必要になる。したがって、同時に使用することで弊害が生じる機器を搭載し、かつ、それらを切り替えるための機構・手順が必要である。このような処理においてはユーザーに対し有効なGUIを提供することが、ユーザーフレンドリであり、図12、図13に示すウインドウを表示させることが好ましい。図12は、画面51には、S拡散近距離通信用ボタン52、ワイヤレスLAN用ボタン53、これらの両用ボタン54が並べられており、ワイヤレススイッチをオンにした場合に有効にできる無線機器を当該画面51上で選択できる。グラフィック部分55はワイヤレススイッチがオンであることを示しており、図12のチェックボックス56にチェックが入ると、ワイヤレススイッチをオンに切り替えた場合に、この画面51(ダイアログ)が表示されることになる。また、画面51の下部には、このダイアログについてのOKボタン57、キャンセルボタン58、適用ボタン59が並び選択できるように構成されている。
図13は、より簡素化された選択画面81であり、S拡散近距離通信用チェックボックスと、ワイヤレスLAN用チェックボックスが用意され、それらが選択できるように構成されている。
このような図12、図13の如き選択画面で選択した機器を対象システムの記憶機構に保存する処理と、選択した機器を有効にし、他のデバイスを無効化する処理を進めることで、有効なデバイスの選択処理が進められる。他のデバイスを無効化する処理には、前述の如き論理的な矛盾の生じないようなプロセスが用いられる。
次に図14を参照しながら、ユーティリティの処理中に電源ボタンを連続的に開閉操作された時の対処法について説明する。先ず、このような対処が必要となる情報処理装置について説明すると、電源状態や、有効・無効状態を即時に変更できない対象デバイスと、状態を制御するためのユーザーインターフェイスとしてのスライドスイッチなどとを具備する情報処理装置が該当する。このような情報処理装置においては、ユーザーが頻繁にスライドスイッチなどのオン状態とオフ状態を切り換える可能性があり、この時、即時に有効無効の状態を変更できないため、例えば、無効(オフ)化処理中に、有効(オン)化処理請求が発生する可能性がある。一般に、無効化処理中に有効化処理を行ったり、有効化処理中に無効化を行ったり、無効化処理中に対象デバイスの電源をオフにすることは、システムを不安定にさせる(ハングアップなど)の要因になってしまう。故に、以上のような情報処理装置においては、ある処理中に、他の処理をしないようにするための排他処理機構が必要であり、かつ、スライドスイッチの状態に同期するなどユーザーの処理要求に従う必要がある。
本発明の情報処理装置は、このような問題にも対処可能であって、排他制御部と電源制御部と備えた構成であっても良い。電源制御部は、排他制御部からの指示に従って、ソフトウエア的試行(有効化・無効化処理)を行う処理と、デバイスドライバーの有効・無効化処理などの時間のかかる処理の前後で処理中を示す「フラグ」をセット・クリアする処理と、電源のオン・オフ化の指示を制御デバイスに対して行う処理とを行う。また、排他制御部は、制御デバイスからのオン・オフ化指示を受信し電源制御部へ有効・無効化を通知する処理と、電源制御部によるフラグがセットされている間は電源制御部に対して有効・無効化を非通知とする処理と、フラグが立っていることを確認した時はフラグがクリアされるまでポーリング(定期的に監視)する処理と、フラグ」がクリアされたら、現在の対象デバイスの電源(有効・無効)状態とスライドスイッチの状態を比較し、矛盾するようであれば、再度、電源制御部へ通知し、ポーリングを終了する処理とを行う。なお、電源制御部自体は、前述の各実施形態にかかる情報処理装置に該当する。
このような構成とすることで、フラグが立っている間は、電源制御部に対して状態変更の指示を行わないため、例えば、無効化処理中に有効化処理請求などの指示の衝突が発生しない排他制御を行うことができる。また、状態の変更が完了した時点で、電源状態を確認することで、ユーザーの意図に対する矛盾をも検出できる。
図14は排他制御部と電源制御部を備えた構成の情報処理装置における処理の流れを示している。先ず、無線通信用アプリケーションで処理(デバイス探索やサービス検索など電源のオンオフに対応できない処理)を始める前にレジストリに処理中であるフラグを設定する。電源ボタンであるスライドスイッチから開閉操作が排他制御部に通知されたら、排他制御部はレジストリをチェックし現在無線用通信アプリケーションが処理中かどうかを判別する。排他制御部は無線通信アプリケーションが処理中である場合、一定時間間隔でポーリングを開始する。ポーリング中、スライドスイッチからの事象はすべて排他制御部で受け取り、最後に通知された電源状態を保持しておく。 このため、無効化処理中に有効化処理請求などの指示の衝突が発生しない排他制御を行うことができる。無線用通信アプリケーションは処理が終了するとレジストリのフラグをリセットする。排他制御部はレジストリをポーリングしていて無線用通信アプリケーションの処理が終了したことが判別できると、ポーリングを開始したときの電源状態と現在の電源状態を比較し、異なっている場合は無線用通信アプリケーションに通知する。無線用通信アプリケーションは通知を受け取ると電源オンオフのための処理を開始する。 このように本実施形態では、通信アプリケーションの処理が終了した時に、電源状態を確認することから、ユーザーの意図を確実に把握することが可能である。
なお、上述の実施形態においては、対象デバイスに対して状態の遷移を開始させるスイッチをスライドスイッチとして説明したが、他のスイッチなどでも良く、例えば位置情報を保持できるスイッチや、ロック機構付きのボタンスイッチなどでも問題なく使用することができ、さらにはインジケーター付(オン・オフを示す)の押しボタンスイッチなどを用いることもできる。
本発明によれば、対象となるシステムが正常な場合や異常な場合のいかんを問わずに、対象デバイス等の状態の遷移を論理の整合性を失わずに確実に行うことができる。また、本発明の情報処理装置、情報処理方法によれば少ない部品点数(スライドスイッチの数など)で、操作(無線機器のオンオフ制御)を共通化することができる。また、ソフトウエアによる「操作」とハードウエアによる強制「操作」の共存による「操作」の実行の保証されることから、不測の事態の時でもハードウエアによる操作が可能である。さらにシステムやユーティリティが正常であるとき、論理的な操作を行い、「操作」の実行を行うことができ、強制的な「操作」による論理的な不整合の発生を抑制できる。また、システムやユーティリティが異常であっても、強制的な操作により、「操作」の実行が保証される。
以上より、一例として、飛行機、電車内など確実に電波の発信を停止したい時に、スライドスイッチをオフにすれば、システムの状態を問わず、確実に、電波の発信を停止できる。スライドスイッチなどの物理スイッチの操作によって、複数デバイスの操作を行うことができ、これらについても対象デバイス等の状態の遷移を論理の整合性を失わずに確実に行うことができる。