(57)【要約】【課題】起動時および省電力動作時に、省電力かつ通信量を抑えるとともに、メインコントローラが動作していない場合のキーの状態も知ることができるようにする。【解決手段】ユーザの入力操作に対して、Ｉ／Ｏコントローラ１０３が変化点のみを通知する方法を用いることにより、省電力かつ、通信量を少なくすることができるようにする。また、メインコントローラ１０１が動作できない状態にあるなど、変化点を通知できない場合に、Ｉ／Ｏコントローラ１０３が、メインコントローラ１０１をリセットし、メインコントローラ１０１が問い合わせることで、ユーザの入力を取得することができるようにする。【選択図】図１
2008305202.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによる入力手段の操作によって入力される入力情報を取得する入力制御手段と、
前記入力制御手段によって取得された入力情報に基づいた処理を行う情報処理手段とを備える情報処理装置であって、
前記入力制御手段は、前記入力手段から入力される入力情報の状態変化を取得し、前記情報処理手段が動作していない状態の場合でも前記情報処理手段をリセットし、前記情報処理手段による入力情報の問い合わせに応じて、前記情報処理手段に前記入力情報を通知することを特徴とする情報処理装置。
【請求項２】
前記入力制御手段は、電源の入った直後に、前記情報処理手段が動作していない状態の場合でも、入力の状態に基づいて前記情報処理手段に前記入力情報を通知することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記入力制御手段は、省電力動作時であり、前記情報処理手段が動作していない状態の場合でも、入力の状態に基づいて前記情報処理手段に前記入力情報を通知することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記入力制御手段は、前記入力手段から入力される入力情報の状態変化のみを制御し、入力の状態を保持しないようにすることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
ユーザによる入力手段の操作によって入力される入力情報を取得する入力制御工程と、
前記入力制御工程において入力した入力情報に基づいた処理を行う情報処理工程とを備える情報処理方法であって、
前記入力制御工程においては、前記入力手段から入力される入力情報の状態変化を取得、前記情報処理工程による処理が動作していない状態の場合でも、前記入力情報を通知することを特徴とする情報処理方法。
【請求項６】
請求項５に記載の情報処理方法の各工程をコンピュータにて実施させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法及びプログラムに関し、特に、ユーザの入力を扱うために用いて好適な技術に関する。
【背景技術】
【０００２】
従来では、起動時にあるキーが押されながら起動することにより、特別な処理を行わせる情報処理装置が存在する。この様な装置の処理の流れについて図１８を参照しながら説明する。
【０００３】
図１８は、従来におけるハードウェア構成例を示すブロック図である。
１８０１はメインコントローラであり、各種処理のための演算、論理判断等を行い、バス１８０２に接続された各構成要素を制御する。１８０６はユーザからの情報を入力するためのキーボードであり、Ｉ／Ｏコントローラ１８０４によって制御される。
【０００４】
１８０５はレジスターであり、Statusレジスターはキーボードからのデータをやりとりする際の制御情報や通信状態を確認するために使用し、データレジスタはキーボード１８０６やマウスからのデータのやりとりに使用する。１８０３はインターラプトコントローラであり、メインコントローラ１８０１への割り込みを発生する。
【０００５】
図１９は、従来におけるキーボード入力の受信例を示す図である。キーボード１８０６のキーを押下したり、離したりした時にキーの状態を取得したＩ／Ｏコントローラ１８０４は、インターラプトコントローラ１８０３へ指示し、メインコントローラ１８０１への割り込みが発生する。割り込みを検出したメインコントローラ１８０１はステータスレジスタをreadしてデータレジスタにデータが存在していることを確認する。キーボード１８０６側のコントローラから送信されたデータは、メインコントローラ１８０１がデータレジスタをreadするまで、送信しつづけられる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
装置が起動と同時に特別な処理を行うことが可能であるのは、入力を制御するＩ／Ｏコントローラが押下しているキー状態を通知し続けることによって、入力等の情報を処理するメインコントローラがキー状態を知ることができるためである。したがって、キー状態を通知しつづけているため、通信量が多くなり、消費する電力も大きくなるという問題点があった。また、消費電力を押さえるために、通信量を少なくすると、装置の起動時などでのキーの状態を知ることができない場合があるという問題点もあった。
【０００７】
本発明は前述の問題点に鑑み、起動時および省電力動作時に、省電力かつ通信量を抑えるとともに、メインコントローラが動作していない場合のキーの状態も知ることができるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、ユーザによる入力手段の操作によって入力される入力情報を取得する入力制御手段と、前記入力制御手段によって取得された入力情報に基づいた処理を行う情報処理手段とを備える情報処理装置であって、前記入力制御手段は、前記入力手段から入力される入力情報の状態変化を取得し、前記情報処理手段が動作していない状態の場合でも前記情報処理手段をリセットし、前記情報処理手段による入力情報の問い合わせに応じて、前記情報処理手段に前記入力情報を通知することを特徴とする情報処理装置。
【０００９】
本発明の情報処理方法は、ユーザによる入力手段の操作によって入力される入力情報を取得する入力制御工程と、前記入力制御工程において入力した入力情報に基づいた処理を行う情報処理工程とを備える情報処理方法であって、前記入力制御工程においては、前記入力手段から入力される入力情報の状態変化を取得、前記情報処理工程による処理が動作していない状態の場合でも、前記入力情報を通知することを特徴とする。
【００１０】
本発明のプログラムは、前記情報処理方法の各工程をコンピュータにて実施させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ユーザの入力操作に対して、入力制御手段が変化点のみを通知する方法を用いることにより、省電力かつ、通信量を少なくすることができる。また、情報処理手段が動作できない状態にあるなど、変化点を通知できない場合に、入力制御手段が、情報処理手段をリセットし、情報処理手段が入力情報を問い合わせることで、ユーザの入力を取得することができる。
【発明を実施するための最良の形態】
【００１２】
（第１の実施形態）
以下、図面を参照しながら本発明の実施形態について説明する。
図１は、本実施形態における情報処理装置のハードウェア構成例を示すブロック図である。
１０１はメインコントローラであり、各種処理のための演算、論理判断等を行い、通信線１０２によって、Ｉ／Ｏコントローラ１０３に接続されている。なお、通信線１０２は、ＳＳＰ（同軸シリアル）でもよいし、バスでもよい。１０５は、ユーザからの情報を入力するためのキーボードであり、Ｉ／Ｏコントローラ１０３によって制御される。１０４はレジスターであり、キーボード１０５からのデータをやりとりする際の制御情報や通信状態を確認するために用いられる。
【００１３】
図１３は、本実施形態において、メインコントローラ１０１とＩ／Ｏコントローラ１０３とがＳＳＰ（同期シリアル）にて通信する場合の通信線を示す図である。
１３０１はマスターセレクト線であり、メインコントローラ１０１及びＩ／Ｏコントローラ１０３は、データを相手側に送りたい場合、自分の出力信号をActiveにし、マスターセレクト線１３０１を介してデータを送信する。また、データ線１３０２は通信データ線であり、クロック線１３０３は通信データ用の同期クロック線である。データ線１３０２及びクロック線１３０３はともに、Ｉ／Ｏコントローラ１０３側、メインコントローラ１０１側のどちらも双方向通信可能となっている。
【００１４】
図２は、本実施形態の情報処理装置における処理の流れを示す図である。情報処理装置の起動時に、あるキーが押されたままであった場合、装置全体の情報を処理する情報処理手段（メインコントローラ１０１）が動作していない状態であっても、入力制御手段（Ｉ／Ｏコントローラ１０３）がメインコントローラをリセットする。そして、Ｉ／Ｏコントローラ１０３に問い合わせることによって、キー情報を取得する処理の流れを示す。キー状態に変更があるたびに、キーの状態はレジスター１０４に保持され、問合せがあった際には、保持された情報を参照する。
【００１５】
また、レジスター１０４には、装置が起動した際の起動要因や、メインコントローラ１０１の情報（通常起動／スリープ／スタンバイ／停止）などが保持されている。本実施形態ではこのようにして、装置全体の情報を処理する情報処理手段（メインコントローラ１０１）が動作していない状態であっても、Ｉ／Ｏコントローラ１０３に問い合わせることによって、キー情報を取得することができる。
【００１６】
図１４は、本実施形態に係る処理の流れを時間的に示す図である。
１４０１はメインコントローラ１０１の状態を示している。メインコントローラ１０１が正常起動している場合には、ラインはＯＮ側になっており、停止／スリープ／スタンバイ状態にある場合には、ラインはＯＦＦ側になっている。
【００１７】
１４０２はメインコントローラ１０１とＩ／Ｏコントローラ１０３との間の通信線１０２における通信を示している。１４０３はＩ／Ｏコントローラ１０３の状態を示している。１４０１と同じく、Ｉ／Ｏコントローラ１０３が正常起動している場合には、ラインはＯＮ側になっており、停止／スリープ／スタンバイ状態にある場合には、ラインはＯＦＦ側になっている。
【００１８】
１４０４はレジスター１０４の内容を示している。ここには、メインコントローラ１０１の情報や、起動情報、キーボード１０５の状態などが保持されている。以下、あるキーが押されているときの状態を、「Make('キー')」と示し、あるキーが離されたときの状態を、「Break('キー')」と示す。
【００１９】
１４０５は装置を起動させるためのキーが押されている状態（ＯＮ）または、押されていない状態（ＯＦＦ）を示している。１４０６はキーボード１０５上のあるキー「Ａ」が押されている状態（ＯＮ）または、押されていない状態（ＯＦＦ）を示している。
【００２０】
まず、タイムチャートの時刻ｔ＝Ｔ１において、起動キーとキー「Ａ」とが同時に押されて装置が起動された場合、まず、入力制御手段（Ｉ／Ｏコントローラ１０３）が起動する。このとき、レジスター１０４の内容１４０４ａは、「ＭＣ（メインコントローラ）＝停止、起動（要因）情報＝電源、Make(起動）、Make('A')（起動キーとキー「Ａ」が押されている）」となっている。
【００２１】
その結果、メインコントローラ１０１とＩ／Ｏコントローラ１０３との通信１４０２をみると、電源が入れられたＩ／Ｏコントローラ１０３は、メインコントローラ１０１をリセットする。続いて、メインコントローラ１０１がＩ／Ｏコントローラ１０３に起動情報を問い合わせる。
【００２２】
この問合せに対して、Ｉ／Ｏコントローラ１０３は、レジスター１０４の内容１４０４ａを参照し、「起動情報＝電源」であることを通知する。この通知をうけとったメインコントローラ１０１は、さらに、キーの状態を問い合わせる。これ以前に時刻ｔ＝Ｔ２において、起動キーは離されたため、レジスター１０４に保持されている内容は起動キーが離された瞬間に、内容１４０４ｂのように変化する。さらに、起動キーが離されている（押されていない）状態になるため、内容１４０４ｃのような内容に変化する。
【００２３】
ここで、メインコントローラ１０１から、キー状態の問合せを受けたＩ／Ｏコントローラ１０３は、レジスター１０４の内容１４０４ｃを参照し、「Make('A')（キーAが押されている）」というキー状態を通知する。詳しい処理の流れについては図を参照しながら以下で説明する。
【００２４】
図３は、本実施形態に係るメインコントローラ１０１による処理手順の一例を示すフローチャートである。
メインコントローラ１０１は、ステップＳ０３０１において起動されると、ステップＳ０３０２において処理すべきアクションを取得する。
【００２５】
次に、そのアクションによってステップＳ０３０３において内容を判定する。この判定の結果、アクションが電源ＯＮあるいはリセットであった場合には、ステップＳ０３０４において、初期設定処理を行い、さらに、ステップＳ０３０５においてＩ／Ｏコントローラ１０３に対して、起動に関する情報（起動要因）を問い合わせる。この起動要因としては、電源キー、指定時刻、ＵＳＢ接続、ＳＹＮＣキーなどがあげられる。
【００２６】
一方、ステップＳ０３０３の判定の結果、アクションがＩ／Ｏコントローラ１０３からの通知、あるいはリクエストであった場合には、ステップＳ０３０６において、その通知、あるいはリクエストを処理する。そして、ステップＳ０３０７において、この通知の内容を判定する。この判定の結果、通知の内容が起動情報の取得である場合には、ステップＳ０３０８においてＩ／Ｏコントローラ１０３に対して、現在のキーの状態を問い合わせる。
【００２７】
一方、ステップＳ０３０７の判定の結果、通知の内容が現在のキーの状態を問合せに対するＩ／Ｏコントローラ１０３から応答である場合には、ステップＳ０３０９へ進み、キー状態を取得して、キーの状態情報を元に適切な処理を行う。
【００２８】
一方、ステップＳ０３０７の判定の結果、通知の内容が省電力モードへ移行することであった場合には、ステップＳ０３１０において、モードを通常モードから、省電力モードに切り替える。
【００２９】
また、ステップＳ０３０７の判定の結果、通知の内容がその他の内容であった場合には、ステップＳ０３１１において、その通知の内容に対応した処理行う。この処理としては、装置のＬＥＤ点灯や、時間合わせ、電池の状態の取得などがあげられる。
【００３０】
一方、ステップＳ０３０３の判定の結果、アクションが電源ＯＦＦであった場合には、ステップＳ０３０９において、終了処理を行い、Ｉ／Ｏコントローラ１０３などに、終了をリクエストして処理を終了する。
【００３１】
図４は、本実施形態に係るＩ／Ｏコントローラ１０３による処理手順の一例を示すフローチャートである。
ステップＳ０４０１において、Ｉ／Ｏコントローラ１０３が起動すると、ステップＳ０４０２において、なすべきアクションを取得する。そして、ステップＳ０４０３において、このアクションの内容を判定する。
【００３２】
この判定の結果アクションが電源ＯＮ、あるいは、メインコントローラ１０１へのリセット要求であった場合には、ステップＳ０４０４において、起動のための初期設定を行う。っそいて、ステップＳ０４０５において、今回の起動の要因を保持する。さらにステップＳ０４０６において、メインコントローラ１０１を起動する。この処理は、図３ステップＳ０３０１に対応し、この後、メインコントローラ１０１は図３に示す処理を開始する。
【００３３】
また、ステップＳ０４０３の判定の結果、アクションが、メインコントローラ１０１からの問合せであった場合には、ステップＳ０４０７にてその問合せに応じた処理を行う。
【００３４】
また、ステップＳ０４０３の判定の結果、アクションがキーボード１０５への入力によるキーの状態変化であった場合には、ステップＳ０４０８において、キーの状態を取得する。そして、ステップＳ０４０９において、そのキーの状態を保持する。
【００３５】
次にステップＳ０４１０において、キーの状態変化をメインコントローラ１０１に通知するかどうかを判定する。この判定の結果、Yesの場合は、ステップＳ０４１１において、キーの情報をメインコントローラ１０１に通知する。ここで、メインコントローラ１０１が通常起動している場合には、通常、ステップＳ０４１０の判定は常にYesとなり、キーの状態変化のみをメインコントローラ１０１へ通知する。
【００３６】
なお、ステップＳ０４０１における起動時、キーが押された状態のままであった場合には、以下のようになる。まず、ステップＳ０４０４および、ステップＳ０４０５,ステップＳ０４０６の処理を行った後、図３ステップＳ０３０８のキー状態問合せに応じて、ステップＳ０４０３の判定が、問合せのほうへ進む。そして、ステップＳ０４０７において、キー状態の問合せに対する処理を行う。この処理について、図５に示す。
【００３７】
図５は、図４のステップＳ０４０７の問合応答処理の手順の一例を示すフローチャートである。
Ｉ／Ｏコントローラ１０３がメインコントローラ１０１からの問合せを受けると、ステップＳ０５０１において、問合せの内容を取得し、その種類によって、ステップＳ０５０２において内容の判定を行う。
【００３８】
この判定の結果、問合せの種類が、起動要因に関するものである場合、ステップＳ０５０３へ進み、起動時に保持されている起動要因を参照する。そして、ステップＳ０５０４において、参照した起動要因をメインコントローラ１０１に通知する。
【００３９】
一方、ステップＳ０５０５の判定の結果、問合せの内容がキー状態に関するものである場合、ステップＳ０５０５へ進み、キーの状態が保持されているかどうかを判定する。この判定の結果、キーの状態が保持されていない場合には、ステップＳ０５０６において、キーの状態を取得し、ステップＳ０５０７において、キーの状態を保持し、ステップＳ０５０９に進む。
【００４０】
一方、ステップＳ０５０５の判定の結果、キーの状態が保持されている場合には、ステップＳ０５０８において、保持されているキーの状態を参照する。次に、ステップＳ０５０９において得られた現在のキーの状態（入力情報）をメインコントローラ１０１に通知して、問合応答処理を終える。
【００４１】
ここで、メインコントローラ１０１からＩ／Ｏコントローラ１０３に対する問合せの種類をさらに追加することもできる。この際には、ステップＳ０５０２の判定の分岐を多岐にわたらせ、判定に応じた処理を追加する。
【００４２】
また、メインコントローラ１０１からＩ／Ｏコントローラ１０３へは、問合せのみのとどまらず、要求あるいは処理命令を通知することもできる。要求・処理命令を受け取ったＩ／Ｏコントローラ１０３は、ステップＳ０５０２において、その要求・処理命令に従った判定を行い、その判定に応じた処理を実行するように処理の流れを変更できる。この場合について、図４のフローチャートを参照しながら説明する。
【００４３】
本実施形態において、情報処理装置の電源がＯＮにされると、ステップＳ０４０１において、Ｉ／Ｏコントローラ１０３の起動処理が行われる。続いて、ステップＳ０４０２において、現在自分に対して行われたアクションを取得する。ここでは、電源がＯＮにされたため、ステップＳ０４０３の判定はステップＳ０４０４へ進む。
【００４４】
ステップＳ０４０４では、Ｉ／Ｏコントローラ１０３の初期設定を行う。これは装置自身にあらかじめ設定しておいた初期設定でもよいし、または起動時に行うようにユーザによって設定された処理であってもよい。ステップＳ０４０６において、メインコントローラ１０１を起動する前に、ステップＳ０４０５において、その起動要因を保持しておく。本実施形態において、起動要因は、「電源ＯＮ」である。続いて、ステップＳ０４０６にてメインコントローラ１０１をリセットし、起動させる。
【００４５】
この処理の流れについて図３のフローチャートを参照しながら説明する。Ｉ／Ｏコントローラ１０３は次のアクションを待って、ステップＳ０４０２において待機状態になる。ステップＳ０４０６においてＩ／Ｏコントローラ１０３から出されたリセット要求を受け取った、メインコントローラ１０１は、ステップＳ０３０１において、起動処理を行う。
【００４６】
さらに、ステップＳ０３０２において、現在自分に対して行われたアクションを取得する。電源がＯＮにされ、Ｉ／Ｏコントローラ１０３からリセット要求を受け取ったので、ステップＳ０３０３の判定はステップＳ０３０４へ進む。ここでは、メインコントローラ１０１の初期設定を行う。これは装置自身にあらかじめ設定しておいた初期設定でもよいし、または起動時に行うようにユーザによって設定された処理であってもよい。
【００４７】
次に、ステップＳ０３０５において、起動したメインコントローラ１０１はＩ／Ｏコントローラ１０３に対して起動情報を問い合わせる。その後、ステップＳ０３０２において次のアクションを取得するまで待ち状態になる。ステップＳ０３０５における問合せに対して、Ｉ／Ｏコントローラ１０３はステップＳ０４０２において問合せのアクションを取得する。
【００４８】
ステップＳ０４０３の判定はステップＳ０４０７へ進み、問合せに応答するための処理を行う。メインコントローラ１０１から問合せを受けたＩ／Ｏコントローラ１０３は、ステップＳ０５０１において、問合せの内容を取得する。
【００４９】
メインコントローラ１０１は、起動要因に関する問合せを行ったため、ステップＳ０５０２の判定はステップＳ０５０３へ進む。ここで、Ｉ／Ｏコントローラ１０３はステップＳ０４０５において保持した、起動要因を読み取り、この内容を問合せへの回答として、メインコントローラ１０１へ通知する。
【００５０】
この通知に対して、メインコントローラ１０１はステップＳ０３０２において、通知取得のアクションを取得し、ステップＳ０３０３の判定は、ステップＳ０３０８へ進む。ここでメインコントローラ１０１は次に、Ｉ／Ｏコントローラ１０３に対してキーの状態を問い合わせる。
【００５１】
この問合せに対して、Ｉ／Ｏコントローラ１０３はステップＳ０４０２において、キー状態の問合せアクションを取得し、ステップＳ０４０３の判定は、ステップＳ０４０７へ進み、問合せに応答するための処理を行う。メインコントローラ１０１から問合せを受けたＩ／Ｏコントローラ１０３は、ステップＳ０５０１において、問合せの内容を取得する。
【００５２】
ステップＳ０５０２において、問合せの種類が、キー状態に関するものであることを判定すると、処理はステップＳ０５０５へ進み、現在のキー状態が保持されているかどうかを判定する。キー状態が保持されていない場合には、ステップＳ０５０６において、キーの状態を取得し、ステップＳ０５０７において、現在のキーの状態を保持する。キーの状態がすでに保持されている場合には、ステップＳ０５０８において、キーの状態を読み取る。どちらの場合も、取得したキーの状態をステップＳ０５０９においてメインコントローラ１０１に通知する。
【００５３】
以上のように本実施形態では、装置全体の情報を処理する情報処理手段（メインコントローラ１０１）が動作していない状態であっても、Ｉ／Ｏコントローラ１０３に問い合わせることによって、キー情報を取得することができる。
【００５４】
（第２の実施形態）
図６は、本実施形態に係る情報処理装置の処理の流れを示す図である。なお、本実施形態の情報処理装置のハードウェア構成については第１の実施形態と同様であるため、説明を省略する。
メインコントローラ１０１が省電力動作時に、ユーザのキー入力やタイマによる起動予約などで、入力制御手段（Ｉ／Ｏコントローラ１０３）に対してメインコントローラ１０１のリセット要求がかかる。この場合、まず、メインコントローラ１０１をリセットし、起動されたメインコントローラ１０１は、Ｉ／Ｏコントローラ１０３に対して、起動情報を問い合わせる。
【００５５】
この問合せに対して、Ｉ／Ｏコントローラ１０３は起動要因に関する情報を通知する。この通知をメインコントローラ１０１が受け取ると、次に、Ｉ／Ｏコントローラ１０３に対してキーの状態を問い合わせる。この問合せに対して、Ｉ／Ｏコントローラ１０３は現在のキーの状態をメインコントローラ１０１に通知する。
【００５６】
本実施形態ではこのようにして、装置全体の情報を処理する情報処理手段（メインコントローラ１０１）が動作していない状態であっても、Ｉ／Ｏコントローラ１０３に問い合わせることによって、キー情報を取得することができる。
【００５７】
図１５は、本実施形態に係る処理の流れを時間的に示す図である。
タイマの状態１５０５は、メインコントローラ１０１を停止状態から復帰させるためのアクションがかけられている場合、ＯＮになる。なお、本実施形態における前提として、メインコントローラ１０１は停止中であり、Ｉ／Ｏコントローラ１０３は起動中（１５０３）である。タイムチャートの時刻ｔ＝Ｔ１において、メインコントローラ１０１を停止状態から回復させるためのアクション（タイマによる起動予約）がかけられる。その際に、キー'Ａ'が同時に押されていた状態１５０６の場合、まず、入力制御手段（Ｉ／Ｏコントローラ１０３）が起動する。
【００５８】
このとき、レジスター１０４の状態１５０４ａは、「ＭＣ（メインコントローラ）＝停止、起動（要因）情報＝タイマ、Make(Timer)、Make('A')（タイマキーとキーＡが押されている）」となっている。その結果、メインコントローラ１０１とＩ／Ｏコントローラ１０３の通信１５０２において、電源が入れられたＩ／Ｏコントローラ１０３は、メインコントローラ１０１をリセットする。続いて、メインコントローラ１０１がＩ／Ｏコントローラ１０３に起動情報を問い合わせる。
【００５９】
この問合せに対して、Ｉ／Ｏコントローラ１０３は、レジスター１０４の状態１５０４ａを参照し、「起動情報＝タイマ」であることを通知する。この通知を受け取ったメインコントローラ１０１は、さらに、キーの状態を問い合わせる。ここで、タイマによる起動アクションは一瞬である（すぐに押されていない状態になる）ため、レジスター１０４の内容は変化している。
【００６０】
ここで、メインコントローラ１０１から、キー状態の問合せを受けたＩ／Ｏコントローラ１０３は、レジスター１０４の状態１５０４ｂを参照し、「Make('Ａ')（キーＡが押されている）」というキー状態を通知する。詳しい処理の流れは第１の実施形態とほぼ同じであるが、本実施形態においては、メインコントローラ１０１は省電力モードで動作しており、Ｉ／Ｏコントローラ１０３が動作していることを前提としている。Ｉ／Ｏコントローラ１０３は図４のステップＳ０４０２において、アクション待ちの状態にある。
【００６１】
Ｉ／Ｏコントローラ１０３がユーザのキー入力やタイマによる起動予約などのアクションを取得すると、ステップＳ０４０３の判定は、ステップＳ０４０４へ進む。これ以降の処理は第１の実施形態と同様である。
【００６２】
（第３の実施形態）
図７は、本実施形態に係る情報処理装置の処理の流れを示す図である。なお、本実施形態の情報処理装置のハードウェア構成については第１の実施形態と同様であるため、説明を省略する。
メインコントローラ１０１の通常起動時には、ユーザからのキー入力があった場合には、Ｉ／Ｏコントローラ１０３は、キー状態の変化を検知し、キー状態の変化をメインコントローラ１０１に通知する。
【００６３】
もし、Ｉ／Ｏコントローラ１０３および、装置のその他の構成要素から、メインコントローラ１０１に対するアクションが一定時間以上ない場合には、メインコントローラ１０１は自らをスタンバイ状態（省電力モード）に移行する。このため、Ｉ／Ｏコントローラ１０３に対して、スタンバイ要求を発行する。この要求に対して、Ｉ／Ｏコントローラ１０３はメインコントローラ１０１のために、スタンバイ準備を行い、スタンバイがＯＫになると、スタンバイ許可通知をメインコントローラ１０１に通知する。
【００６４】
この通知を受け取ったメインコントローラ１０１は、実際に省電力モードへ移行する。その後、ユーザからの入力があった場合には、Ｉ／Ｏコントローラ１０３はキー状態の変化を検知するが、メインコントローラ１０１が停止状態であるため、キー状態を通知しない。
【００６５】
図１６は、本実施形態に係る処理の流れを時間的に示す図である。
スタンバイの状態１６０５は、メインコントローラを停止状態へ移行させるためのアクションがかけられている場合、ＯＮになる。なお、本実施形態における前提として、メインコントローラ１０１、及びＩ／Ｏコントローラ１０３はともに起動中（１６０１、１６０３）である。
【００６６】
タイムチャートの時刻ｔ＝Ｔ１において、キー'Ａ'が押された状態１６０６の場合、キーの状態変化を検出したＩ／Ｏコントローラ１０３はキーの状態を取得し、レジスター１０４にそのキーの状態を保持する。この状態は状態１６０４ａに示される。
【００６７】
状態１６０４ａによると、レジスター１０４に保持されている情報は「ＭＣ（メインコントローラ）＝通常起動、Make('Ａ')（キーＡが押されている）」となっている。メインコントローラ１０１は通常起動状態にあるため、Ｉ／Ｏコントローラ１０３はこのキー状態を即座にメインコントローラ１０１に通知する。その結果、メインコントローラ１０１とＩ／Ｏコントローラ１０３との通信１６０２において、メインコントローラ１０１は「Make('Ａ')（キーＡが押されている）」というキー状態を取得する。
【００６８】
さらに、タイムチャートの時刻ｔ＝Ｔ２において、キーＡが離され、スタンバイのアクションがＯＮになると、メインコントローラ１０１は、Ｉ／Ｏコントローラ１０３に対して、スタンバイのための準備を要求する。この要求にしたがってスタンバイの準備ができると、Ｉ／Ｏコントローラ１０３はメインコントローラ１０１に対してスタンバイ許可を通知し、この通知を受け取った、メインコントローラ１０１は停止状態になる。
【００６９】
その後、タイムチャートの時刻ｔ＝Ｔ３において、再び、キーＡが押されたとしても、Ｉ／Ｏコントローラ１０３はキーの状態変化を検知する。ところが、レジスター１０４の状態１６０４ｃを参照すると、メインコントローラ１０１は停止中であるため、キー状態は通知しない。
【００７０】
図８は、本実施形態において、メインコントローラ１０１が省電力モードへ移行する処理手順の一例を示すフローチャートである。ある一定時間、メインコントローラ１０１に対するアクションがない場合には、省電力モードに入る。省電力モードへ移行するまでの時間は、装置内に別に備えるタイマによって計測してもよいし、メインコントローラ１０１内にタイマを設けてもよい。
【００７１】
図８はメインコントローラ内にタイマを設けて、省電力モードへの移行を行う流れを示している。図３のメインコントローラ１０１の処理の流れに対して、ステップＳ０８０２のタイマ開始処理、ステップＳ０８１３のタイマ取得処理、ステップＳ０８１４のスタンバイ判定処理、ステップＳ０８１５のスタンバイ要求処理が加わる。このため、それ以外の部分については図３と同様であるため、説明は省略する。
【００７２】
また、図３ではステップＳ０３０２において、メインコントローラ１０１は自分に対するアクションを待機する状態になっていたが、図８においては、ステップＳ０８０３において、アクションを取得することに失敗しても、次の処理に進む。そのため、アクション取得の結果として、「取得失敗」という判定が、ステップＳ０８０４に追加されている。
【００７３】
起動直後、あるいはあるアクションを処理した後、次のアクションまでの時間を計測するために、 ステップＳ０８０２において、タイマを開始する。次に、ステップＳ０８０３において、アクションを取得する。ステップＳ８０４の判定の結果、アクションの取得に失敗した場合には、ステップＳ０８１３へ進み、前回のアクション処理からの時間を取得する。
【００７４】
取得されたタイマ時間によって、ステップＳ０８１４において、タイマの時間があらかじめ設定された省電力モードへの移行時間よりも長い場合かどうかを判定する。この判定の結果、アクションがない時間（タイマ計測時間）がある一定時間よりも長い場合には、ステップＳ０８１５へ進み、Ｉ／Ｏコントローラ１０３に対して、スタンバイ要求を発行する。一方、ステップＳ０８１４の判定の結果、それ以外の場合には、ステップＳ０８０３に戻り、次のアクションを取得しようと試みる。
【００７５】
図９は、本実施形態において、Ｉ／Ｏコントローラ１０３がメインコントローラ１０１からのスタンバイ要求を受け付けるための問合応答処理の手順の一例を示すフローチャートである。図９においては、図５のＩ／Ｏコントローラ１０３の問合せ応答処理の流れに対して、ステップＳ０９０２の判定において、問合せ・リクエストの種類として、スタンバイ要求を設けている。ステップＳ０９０２の判定によって、メインコントローラ１０１からスタンバイ要求がなされたと判定された場合には、ステップＳ０９１０のスタンバイ設定処理に移る。
【００７６】
この処理では、メインコントローラ１０１のスタンバイに際して、次の起動に関する設定などを行う。例えば、ある時間になったらWakeするように起動時間を予約することや、ユーザからのアクションの種類によって起動することを設定することができる。続いて、設定が終わると、処理はステップＳ０９１１へ進み、スタンバイのための準備が整ったことをメインコントローラ１０１へ通知する。
【００７７】
スタンバイ許可通知を受け取ったメインコントローラ１０１は、ステップＳ０８０３においてアクションを取得し、ステップＳ０８０７において通知内容を処理する。この結果、ステップＳ０８０８において、この通知がスタンバイ許可通知であり、省電力モードへの切り替えであることを判定して、ステップＳ０８１０省電力モードへの切り替え処理を行う。
【００７８】
その結果、メインコントローラ１０１は省電力モードへ移行し、Ｉ／Ｏコントローラ１０３に設定された次の起動条件が満たされるまで、省電力モードに入る。Ｉ／Ｏコントローラ１０３において、次の起動条件が満たされた場合、メインコントローラ１０１はリセット、起動される。この時、ユーザがキーを押下しながら起動したとしても、第２の実施形態に示したように、メインコントローラ１０１はそのキーの状態を知ることができる。
次の起動条件が満たされるまで、すなわちメインコントローラ１０１が停止状態にある場合に、再びキーＡが押された場合、図４のステップＳ０４０２において、Ｉ／Ｏコントローラ１０３はキーの状態変化を検知する。ステップＳ０４０３の判定は、ステップＳ０４０８、ステップＳ０４０９へと処理が進むが、ステップＳ０４１０の判定において、メインコントローラは停止中であるため、キー状態は通知しない。
【００７９】
（第４の実施形態）
図１０は、本実施形態における情報処理装置の処理の流れを示す図である。なお、本実施形態の情報処理装置のハードウェア構成については第１の実施形態と同様であるため、説明を省略する。
図１０において、情報処理装置の起動時にあるキーが押されたままであった場合、装置全体の情報を処理する情報処理手段が動作していない状態であっても、入力制御手段がメインコントローラ１０１をリセットする。そして、Ｉ／Ｏコントローラ１０３に問い合わせることによって、キー情報を取得する。キー状態に変更があった場合には、Ｉ／Ｏコントローラ１０３はレジスター１０４中のメインコントローラ１０１の情報（通常起動／スリープ／スタンバイ／停止）を参照し、メインコントローラ１０１に通常起動している場合はそのまま通知を行う。また、それ以外の場合には、メインコントローラ１０１をリセットする。本実施形態においては、キーの状態に変化があるたびに、キーの状態をレジスター１０４に保持しないようにする。
【００８０】
図１７は、本実施形態に係る処理の流れを時間的に示す図である。
図１４に示した第１の実施形態のタイムチャートと比較すると、レジスター１０４の内容１７０４においては、キーボード１０５の状態は保持されない。
【００８１】
タイムチャートの時刻ｔ＝Ｔ３において、メインコントローラ１０１、及びＩ／Ｏコントローラ１０３はともに起動中（１７０１、１７０３）である。また、起動キーはＯＦＦの状態１７０５である。メインコントローラ１０１がキーの状態を問い合わせると、キー状態の問合せを受けたＩ／Ｏコントローラ１０３は、レジスター１０４の内容を参照しない。直接キーの状態「Make('Ａ')（キーＡが押されている）１７０６」を取得し、キー状態をメインコントローラ１０１へ通知する。
【００８２】
図１１は、本実施形態において、Ｉ／Ｏコントローラ１０３がキーの状態を保持しない場合の処理手順の一例を示すフローチャートである。本実施形態においては、キーの状態を保持しないので、図１３においては図４におけるステップＳ０４０９のキー状態保持処理が省かれている。なお、それ以外については図４と同様の処理であるため、説明を省略する。
【００８３】
ステップＳ１１０３の判定の結果、その処理が、キーボード１０５への入力による、キーの状態変化であった場合には、ステップＳ１１０８において、キーの状態を取得する。そして、」次にステップＳ１１０９において、キーの状態変化をメインコントローラ１０１に通知するかどうかを判定する。この判定の結果、Yesの場合は、ステップＳ１１１０において、キーの情報をメインコントローラ１０１に通知する。
【００８４】
ここで、メインコントローラ１０１が通常起動している場合には、通常、ステップＳ１１１０の判定は常にYesとなり、キーの状態変化のみをメインコントローラ１０１へ通知する。メインコントローラ１０１が、動作していない場合（スリープ／スタンバイ／停止）の場合には、メインコントローラ１０１に通知する必要がないため、何もせずに次のアクションを待つ。
【００８５】
ステップＳ１１０１における起動時、キーが押された状態のままであった場合には、まず、ステップＳ１１０４〜Ｓ１１０６の処理を行う。その後、図３のステップＳ０３０８のキー状態問合せに応じて、ステップＳ１１０３の判定で、問合せのほうへ進み、ステップＳ１１０７において、キー状態の問合せに対する処理を行う。この処理について、図１２のフローチャートに示す。
【００８６】
図１２は、本実施形態において、Ｉ／Ｏコントローラ１０３がキーの状態を保持しない場合の図１１のステップＳ１１０７における問合応答処理手順の一例を示すフローチャートである。
本実施形態においては、キーの状態を保持しない。したがって、図１２においては、図５の問合応答処理のフローチャートからステップＳ０５０５キーの状態保持判定、ステップＳ０５０８のキー状態読み取り処理、及びステップＳ０５０７のキー状態保持処理が省かれている。なお、それ以外の処理については、図５のフローチャートと同様であるため、説明は省略する。
【００８７】
ステップＳ１２０２において、問合せの種類がキー状態に関するものである場合、ステップＳ１２０２の判定の結果から、ステップＳ１２０５へ進み、キーの状態を取得する。そして、得られた現在のキーの状態をステップＳ１２０６においてメインコントローラ１０１に通知して、問合応答処理を終える。
【００８８】
以上のように第１〜第４の実施形態によれば、ユーザの入力操作に対して、Ｉ／Ｏコントローラ１０３が変化点のみを通知する方法を用いることにより、省電力かつ、通信量を少なくすることができる。また、メインコントローラ１０１が動作できない状態にあるなど、変化点を通知できない場合に、Ｉ／Ｏコントローラ１０３が、メインコントローラ１０１をリセットし、メインコントローラ１０１が問い合わせることで、ユーザの入力を取得することができる。
【００８９】
（本発明に係る他の実施形態）
前述した本発明の実施形態における情報処理装置を構成する各手段、並びに情報処理方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００９０】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００９１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図３〜５、８、９、１１、１２に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００９２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００９５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９７】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９９】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１の実施形態における情報処理装置のハードウェア構成例を示すブロック図である。
【図２】本発明の第１の実施形態の情報処理装置における処理の流れを示す図である。
【図３】本発明の第１の実施形態に係るメインコントローラ１０１による処理手順の一例を示すフローチャートである。
【図４】本発明の第１の実施形態に係るＩ／Ｏコントローラ１０３による処理手順の一例を示すフローチャートである。
【図５】図４のステップＳ０４０７の問合応答処理の手順の一例を示すフローチャートである。
【図６】本発明の第２の実施形態に係る情報処理装置の処理の流れを示す図である。
【図７】本発明の第３の実施形態に係る情報処理装置の処理の流れを示す図である。
【図８】本発明の第３の実施形態において、メインコントローラ１０１が省電力モードへ移行する処理手順の一例を示すフローチャートである。
【図９】本発明の第３の実施形態において、Ｉ／Ｏコントローラ１０３がメインコントローラ１０１からのスタンバイ要求を受け付けるための問合応答処理の手順の一例を示すフローチャートである。
【図１０】本発明の第４の実施形態における情報処理装置の処理の流れを示す図である。
【図１１】本発明の第４の実施形態において、Ｉ／Ｏコントローラ１０３がキーの状態を保持しない場合の処理手順の一例を示すフローチャートである。
【図１２】本発明の第４の実施形態において、Ｉ／Ｏコントローラ１０３がキーの状態を保持しない場合の図１１のステップＳ１１０７における問合応答処理手順の一例を示すフローチャートである。
【図１３】本発明の第１の実施形態において、メインコントローラ１０１とＩ／Ｏコントローラ１０３とがＳＳＰ（同期シリアル）にて通信する場合の通信線を示す図である。
【図１４】本発明の第１の実施形態に係る処理の流れを時間的に示す図である。
【図１５】本発明の第２の実施形態に係る処理の流れを時間的に示す図である。
【図１６】本発明の第３の実施形態に係る処理の流れを時間的に示す図である。
【図１７】本発明の第４の実施形態に係る処理の流れを時間的に示す図である。
【図１８】従来の情報処理装置のハードウェア構成例を示すブロック図である。
【図１９】従来におけるキーボード入力の受信例を示す図である。
【符号の説明】
【０１０１】
１０１  メインコントローラ
１０２  通信線
１０３  Ｉ／Ｏコントローラ
１０４  レジスター
１０５  キーボード
【図１】
2008305202.tif 000003
【図２】
2008305202.tif 000004
【図３】
2008305202.tif 000005
【図４】
2008305202.tif 000006
【図５】
2008305202.tif 000007
【図６】
2008305202.tif 000008
【図７】
2008305202.tif 000009
【図８】
2008305202.tif 000010
【図９】
2008305202.tif 000011
【図１０】
2008305202.tif 000012
【図１１】
2008305202.tif 000013
【図１２】
2008305202.tif 000014
【図１３】
2008305202.tif 000015
【図１４】
2008305202.tif 000016
【図１５】
2008305202.tif 000017
【図１６】
2008305202.tif 000018
【図１７】
2008305202.tif 000019
【図１８】
2008305202.tif 000020
【図１９】
2008305202.tif 000021