(57)【要約】【課題】任意のキー入力判定を確実に実行可能とする情報処理装置を提供する。【解決手段】キーボードコントローラ４は、キーボード５上のどのキーの入力を監視するのかの指定をシステムバス経由のコマンドにより受け付ける監視キー指定部４２と、この指定されたキーの入力をキーボード５から導出される複数の信号線の状態から検知し、その検知結果をキー入力情報としてレジスタ４３１に格納する指定キー監視部４３とを具備している。そして、ＢＩＯＳ３のＰＯＳＴ（初期化）処理部３１は、この監視キー指定部４２に対して自身がその入力有無を判定すべきキーを通知し、必要に応じて、レジスタ４３１に格納されたキー入力情報の転送を指定キー監視部４３に対して要求する。【選択図】図１
2005078354.tif 000002
【特許請求の範囲】
【請求項１】
キーボードを具備する情報処理装置において、
前記キーボードが有する任意のキーをキー入力の有無が判定されるキーとして指定する指定手段と、
前記指定手段によって指定されたキーが操作されることで生成される信号を検知した場合、前記操作されたキーが入力されたと判定する判定手段と
を具備することを特徴とする情報処理装置。
【請求項２】
前記生成された信号に基いて生成され、前記操作されたキーが入力されたか否かを示す情報を記憶するレジスタと、
前記レジスタに記憶された情報に基づいて、前記判定手段は前記操作されたキーが入力されたか否かを判定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記指定手段は、前記キーボードのキー入力をＣＰＵに伝達するキーボードコントローラに設けられることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記レジスタに記憶された情報に基づいて、前記キーの入力有無を判定するＢＩＯＳ(Basic I/O System)を具備することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記指定手段は、複数のキーを入力判定対象として指定可能であり、
前記判定手段は、前記指定手段により指定された複数のキーそれぞれの入力有無を判定することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記指定手段は、その入力のみによってはスキャンコードが出力されない特殊キーを監視対象として指定可能であることを特徴とする請求項１記載の情報処理装置。
【請求項７】
キーボードが有する任意のキーをキー入力の有無が判定されるキーとして指定する指定手段と、
前記指定手段によって指定されたキーが操作されることで生成される信号に基いて生成され、前記操作されたキーが入力されたか否かを示す情報を記憶するレジスタと
を具備することを特徴とするキーボードコントローラ。
【請求項８】
キーボードが有する任意のキーをキー入力の有無が判定されるキーとして指定し、
前記指定したキーが操作されることで生成される信号を検知した場合、前記操作されたキーが入力されたと判定する
ことを特徴とするキー入力判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力デバイスとしてキーボードを利用する情報処理装置、同装置に適用して好適なキーボードコントローラおよびキー入力判定方法に関する。
【背景技術】
【０００２】
近年、ノートブックタイプやデスクトップタイプなど、様々なタイプのパーソナルコンピュータが広く普及している。そして、このパーソナルコンピュータのほとんどが、入力デバイスとしてキーボードを利用している。
【０００３】
このキーボード上には、例えば百数個のキーがマトリックス状に配列されており、その内部には、これらのキーの入力を検知するための信号線が縦横に複数本ずつ同じくマトリックス状に敷設されている。そして、このキーボードと電気的に接続されるキーボードコントローラは、これらの信号線の状態に基いて各キーの入力を検知して、その入力されたキーに対応するスキャンコードを生成する。
【０００４】
キーボードコントローラによって生成されたスキャンコードは、ＢＩＯＳによって取得され、キーコードに変換される。このキーコードは、ＣＰＵによって動作する、オペレーティングシステムといったソフトウェアによって、アクティブ状態にあるアプリケーションプログラム等に与えられ、種々のデータ処理が施される。なお、いわゆる特殊キーの中には、それ単独で入力されても、キーボードコントローラによるスキャンコードの生成が行われないキーも存在する。
【０００５】
また、この種のパーソナルコンピュータの電源投入時、ＢＩＯＳ（Basic I/O System：基本入出力システム）は、各種デバイスのチェックや初期化、オペレーティングシステムの起動などを実行する。このＢＩＯＳは、コンピュータの環境設定を更新するためのルーチンを含んでおり、コンピュータの電源投入後からオペレーティングシステム起動までの間に所定のキー入力がなされると、環境設定更新用のルーチンを呼び出すことで、所望の設定を実施するためのインタフェースをユーザに提供する（例えば特許文献１参照）。
【特許文献１】実開平７−２５４１６号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＢＩＯＳは、キーボードコントローラから取得したスキャンコードをキーコードに変換するキーボード割り込みサービスというルーチンを備えている。このキーボード割り込みサービスが動作可能な状態にある場合、同じくＢＩＯＳが備えているＰＯＳＴ（初期化）処理用のルーチンが、このキーボード割り込みサービスからキーコードを受け取って所定のキー入力の有無を判定する。換言すると、キーボード割り込みサービスが動作可能な状態になるまで、ＰＯＳＴ処理は、キーボードコントローラから取得したままのスキャンコードを使って所定のキー入力の有無を判定する。つまり、ＰＯＳＴ処理は、キーボード割り込みサービスが動作可能な状態になる前後で、キー入力の判定方法を切り換えている。
【０００７】
ここで、例えば複数のキーを入力することによって１つの意味のあるキー入力とされる操作がキーボード上で行われ、かつ、そのタイミングで、ＰＯＳＴ処理によるキー入力の判定方法が切り換わった場合を想定する。この場合、一部のスキャンコードがＰＯＳＴ処理に渡された後、残りのスキャンコードがキーボード割り込みサービスに渡されるといった事態が発生することも十分に考えられる。そして、この場合には、誤ったキーコード生成がキーボード割り込みサービスによって行われることになる。
【０００８】
また、ＰＯＳＴ処理は、キーボードやマウスの初期化を行うために、キーボードコントローラとの間の通信を実行するが、この際のキーボードコントローラからＢＩＯＳに対する応答コードの伝達は、キー入力に伴うスキャンコードの伝達よりも優先されるため、キーボードやマウスの初期化期間中にユーザが所定のキー入力を行っても、タイミングによっては、それがＢＩＯＳに伝達されることなく無駄になってしまう場合があった。
【０００９】
さらに、このキーボードやマウスの初期化のために、ＰＯＳＴ処理では、キーボードコントローラに対して、ＢＩＯＳ相手の通信を許可するコマンドを送信する。一方、キーボードコントローラは、このコマンド受信を契機に、キー入力に伴うスキャンコードを内蔵レジスタへ格納することが可能となる。そして、ＰＯＳＴ処理では、コンピュータの電源投入から早い時点でのキー入力に対応できるよう、このコマンドの送信を早い段階で実行する。その後、このＰＯＳＴ処理にて所定のキー入力の有無を判定する処理に到達するまで、この内蔵レジスタに順次、格納されるスキャンコードは、ＢＩＯＳによって取得される。ＢＩＯＳにより取得されたスキャンコードは、必要なデータであるキー入力判定用の情報として、通常、コンピュータのシステムメモリに記憶されることになっている。つまり、このキーボードやマウスの初期化は、どんなに早くとも、このシステムメモリの初期化が完了し、システムメモリが使用可能となった後に行われることになり、このシステムメモリの初期化前にユーザが所定のキー入力を行っても、それは無駄になってしまうことになる。
【００１０】
最近では、ＣＰＵや周辺装置等の性能が飛躍的に向上しているため、コンピュータの電源投入からオペレーティングシステム起動までの時間が大幅に短縮されている。このような状況において、前述のように、所定のキー入力がＢＩＯＳに受け付けられずに無駄になってしまう状況が多々存在してしまうことは、利便性を考慮すると無視できない問題となりつつある。
【００１１】
この発明は、このような事情を考慮してなされたものであり、任意のキーの入力判定を確実に実行可能とする情報処理装置、キーボードコントローラおよびキー入力判定方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
前述した目的を達成するために、この発明は、キーボードを具備する情報処理装置において、前記キーボードが有する任意のキーをキー入力の有無が判定されるキーとして指定する指定手段と、前記指定手段によって指定されたキーが操作されることで生成される信号を検知した場合、前記操作されたキーが入力されたと判定する判定手段とを具備することを特徴とする。
【００１３】
この発明の情報処理装置においては、例えばＢＩＯＳは、判定対象とするキーの指定を指定手段に対して行えば、スキャンコードやキーコードを用いることなく、そのキー入力有無が判定である。これにより、誤ったキーコード生成を防止するとともに、所定のキー入力が受け付け不可能な状況をほぼ無くすことが可能となる。
【発明の効果】
【００１４】
このように、この発明によれば、任意のキー入力判定を確実に実行可能とした情報処理装置、キーボードコントローラおよびキー入力判定方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照してこの発明の実施形態を説明する。
【００１６】
図１は、この発明の実施形態に係る情報処理装置のキー入力判定に関わる構成を示す図である。
【００１７】
この情報処理装置は、例えばノートブックタイプやデスクトップタイプのパーソナルコンピュータであり、図１に示すように、ＣＰＵ１、システムメモリ２、ＢＩＯＳ−ＲＯＭ３およびキーボードコントローラ４を具備している。これらは、コンピュータ内に敷設されるシステムバスに接続されており、このシステムバス経由で相互に通信することができるようになっている。また、キーボードコントローラ４には、キーボード５およびマウス６が接続される。このキーボード５およびマウス６は、例えばコンピュータ本体に設けられるコネクタを介して任意に接続される外部機器である。
【００１８】
ＣＰＵ１は、この情報処理装置全体の制御を司り、システムメモリ２に格納されたプログラムやＢＩＯＳ−ＲＯＭ３に格納された後述するＢＩＯＳを実行する。システムメモリ２に格納されるプログラムとしては、当該装置のリソース管理を行うオペレーティングシステムの他、周辺機器を駆動制御するためのデバイスドライバ、ユーティリティプログラムおよびアプリケーションプログラムなどが存在する。
【００１９】
システムメモリ２は、この情報処理装置の主記憶装置として用いられるＲＡＭなどの記憶装置であり、ＣＰＵ１が実行する各種プログラムと、このプログラムで使用される各種データを一時的に格納する。一方、ＢＩＯＳ−ＲＯＭ３は、ＢＩＯＳを格納する専用の記憶装置であり、書き換えが可能なＥＥＰＲＯＭによって構成されている。このＢＩＯＳ−ＲＯＭ３に格納されるＢＩＯＳは、この情報処理装置の電源が投入された時に、各種デバイスのチェックや初期化、オペレーティングシステムの起動などを実行するＰＯＳＴ処理部３１と、キーボードコントローラ４から取得したスキャンコードをキーコードに変換するキーボード割り込みサービス部３２とを有している。
【００２０】
キーボードコントローラ４は、この情報処理装置が提供するユーザインタフェースのインプット側を司り、キーボード５およびマウス６の操作内容をＣＰＵ１に伝達する機能を有している。例えば、キーボード５上のいずれかのキーが入力されると、その入力をキーボード５から導出される複数の信号線の状態から検知し、そのキーに対応するスキャンコードを生成してデータレジスタ４１に格納する。また、この時、キーボードコントローラ４は、ＣＰＵ１に対して割り込み信号を供給して、ユーザによって何らかの操作が行われたことを通知する。そうすると、この通知を受けたＣＰＵ１は、ＢＩＯＳ−ＲＯＭ３のキーボード割り込みサービス部３２を実行する。キーボード割り込みサービス部３２は、キーボードコントローラ４のデータレジスタ４１に格納されたスキャンコードをシステムバス経由で取得し、キーコードへと変換する。このキーコードは、キーボード割り込みサービス部３２によって、システムメモリ２における所定の領域に格納される、つまり、オペレーティングシステムにキーコードを渡す。
【００２１】
また、このキーボードコントローラ４には、監視キー指定部４２および指定キー監視部４３が設けられる。そして、この実施形態の情報処理装置は、この監視キー指定部４２および指定キー監視部４３を設けたことにより、キーボード５上の所定のキーが入力されたか否かの判定を、スキャンコードやキーコードを用いずに実行できるようにした点を特徴としており、以下、この点について詳述する。
【００２２】
監視キー指定部４２は、キーボード５上のどのキーの入力を監視するのかの指定をシステムバス経由のコマンドにより受け付ける、つまり、ソフトウェアにより当該指定を実行可能とするものであり、その指定されたキーを指定キー監視部４３に通知する。この指定は複数のキーについて可能である。一方、指定キー監視部４３は、この指定されたキーの入力をキーボード５から導出される複数の信号線の状態から検知し、その監視結果をキー入力情報としてレジスタ４３１に格納する。このレジスタ４３１に格納されるキー入力情報は、監視キー指定部４２が受け付け可能なキー数がｎ個であった場合、少なくともｎビット以上のデータであり、その各ビットのオン／オフで指定されたキーそれぞれの入力有無を表現する。
【００２３】
前述したように、ＢＩＯＳのＰＯＳＴ処理部３１は、電源投入時における各種デバイスのチェックや初期化、オペレーティングシステムの起動などを実行する。また、このＰＯＳＴ処理部３１は、この電源投入後からオペレーティングシステム起動までの間に所定のキー入力がなされると、この情報処理装置の環境設定を更新するためのインタフェースをユーザに提供し、そのインタフェースを介して入力されるユーザの指示に応じて、当該情報処理装置の環境設定を更新する処理を実行する。
【００２４】
つまり、ＢＩＯＳのＰＯＳＴ処理部３１は、キーボード５上の所定のキーが入力されたか否かを判定する必要があり、従来では、この判定を、図２（Ａ）に示すように、キーボードコントローラ４からスキャンコードを取得して行うか、または、図２（Ｂ）に示すように、前述したキーボード割り込みサービス部３２によりスキャンコードから変換されたキーコードを取得して行っていた。しかしながら、これらの方法では、所定のキー入力がＢＩＯＳに受け付けられずに無駄になってしまう状況が多々存在してしまうことは既に述べた通りである。また、キーボード割り込みサービス部３２が動作を開始するタイミングによっては、その開始時に誤ったキーコード生成が行われてしまうおそれがあることについても既に述べた。そこで、この実施形態の情報処理装置では、前述した監視キー指定部４２および指定キー監視部４３を設けることにより、図２（Ｃ）に示すように、スキャンコードやキーコードを用いずに、この判定を行えるようにする。
【００２５】
より具体的には、電源投入時に起動されたＢＩＯＳのＰＯＳＴ処理部３１は、まず、キーボードコントローラ４の監視キー指定部４２に対して、自身が入力判定を行うべき所定のキーを通知する。さらに、キーボードコントローラ４の指定キー監視部４３が、キーボード５から導出される複数の信号線の状態（図２では、この複数の信号線の状態から得られる情報をマトリックスデータと表している。）から当該キーの入力を監視し、その監視結果をキー入力情報としてレジスタ４３１に格納する。この指定キー監視部４３によるキー入力の監視およびキー入力情報の格納は、キーボードコントローラ４からＢＩＯＳへのスキャンコードの伝達が行えない状況等においても、何ら支障なく実行される。したがって、ＰＯＳＴ処理部３１は、このレジスタ４３１に格納されたキー入力情報（図２では、このキー入力情報を監視フラグと表している。）を取得することで、そのキー入力が行われたか否かを確実に知ることができることになる。
【００２６】
図３は、ＰＯＳＴ処理部３１が実行するＰＯＳＴ処理の流れを示すフローチャートである。
【００２７】
ＰＯＳＴ処理部３１は、まず、入力の監視を行うキーをキーボードコントローラ４の監視キー指定部４２に対して指定する（ステップＳ１）。この指定前に当該キーの入力が行われると、その判定は不可能となるが、情報処理装置の電源投入からこの指定が行われるまでの時間は極めて短いため、実質的な影響は皆無に等しい。
【００２８】
この指定が終了すると、ＰＯＳＴ処理部３１は、システムメモリ２の初期化を実行し（ステップＳ２）、その後、ＢＩＯＳとの通信許可をキーボードコントローラ４に通知する（ステップＳ３）。このステップＳ３で通知される通信許可は、キーボードコントローラ４のデータレジスタ４１を用いた通信に対するものであり、ステップＳ１での監視キー指定部４２に対する指定は、この通信許可がキーボードコントローラ４に通知される前であっても実行することができる。
【００２９】
キーボードコントローラ４との通信を行えるようにしたＰＯＳＴ処理部３１は、キーボード５およびマウス６の初期化を実行する（ステップＳ４）。そして、このキーボード５およびマウス６の初期化が終了してキーボードコントローラ４からのスキャンコードの受け取りが可能な状態になり、ＰＯＳＴ処理部３１の状態は、キーボード割り込みサービス部３２を実行することが可能な状態へ遷移する。さらに、キーボードコントローラ４のデータレジスタ４１にスキャンコードが格納されれば、ＰＯＳＴ処理部３１は、このスキャンコードをキーコードに変換するキーボード割り込みサービス部３２を起動する（ステップＳ５）。このキーボード割り込みサービス部３２の起動は、その後の利用に備えて行うものであって、ここでは、このキーボード割り込みサービス部３２を介したキーコードの取得は行わない。
【００３０】
次に、ＰＯＳＴ処理部３１は、指定キー監視部４３からレジスタ４３１に格納されたキー入力情報を取得し、ステップＳ１で監視キー指定部４２に対して指定したキーの入力状態を取得する（ステップＳ６）。もし、この取得したキー入力情報が、指定したキーの入力を示す情報である場合（ステップＳ７のＹＥＳ）、ＰＯＳＴ処理部３１は、その指定したキーに対応する処理、例えば情報処理装置の環境設定変更等を実行する（ステップＳ８）。
【００３１】
そして、ＰＯＳＴ処理部３１は、このキーに対応する処理を終了させた、または、キーの入力がなかった場合（ステップＳ７のＮＯ）、その他の各種初期化処理を実行した後（ステップＳ９）、オペレーティングシステムを起動して終了する。
【００３２】
以上のように、この情報処理装置は、キーボード５上のどのキーの入力を監視するのかの指定をシステムバス経由のコマンドにより受け付ける監視キー指定部４２と、この指定されたキーの入力をキーボード５から導出される複数の信号線の状態から検知し、その監視結果をキー入力情報としてレジスタ４３１に格納する指定キー監視部４３とを設けることにより、スキャンコードやキーコードを用いずに、キーボード５上の所定のキー入力の判定が可能となる。その結果、誤ったキーコード生成を防止するとともに、所定のキー入力が受け付け不可能な状況を無くすことができる。
【００３３】
また、指定キー監視部４３は、キーボード５から導出される複数の信号線の状態に基いて、監視キー指定部４２で指定されるキーの入力を監視するため、それ単独で入力されてもキーボードコントローラによるスキャンコードの生成が行われない特殊キーも、例えば何らかの機能を起動するためのキーとして利用することが可能となる。
【００３４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３５】
【図１】この発明の実施形態に係る情報処理装置のキー入力判定に関わる構成を示す図
【図２】同実施形態の情報処理装置で実行されるキー入力判定方法の原理を説明するための概念図
【図３】同実施形態の情報処理装置におけるＢＩＯＳのＰＯＳＴ（初期化）処理の流れを示すフローチャート
【符号の説明】
【００３６】
１…ＣＰＵ、２…システムメモリ、３…ＢＩＯＳ−ＲＯＭ、４…キーボードコントローラ、５…キーボード、６…マウス、３１…ＰＯＳＴ処理部、３２…キーボード割り込みサービス部、４１…データレジスタ、４２…監視キー指定部、４３…指定キー監視部、４３１…レジスタ。
【図１】
2005078354.tif 000003
【図２】
2005078354.tif 000004
【図３】
2005078354.tif 000005