(57)【要約】【課題】利便性を損なうことなく起動時間を短縮できる情報処理装置及び起動制御方法を提供すること。【解決手段】実施形態によれば、複数のデバイスが接続される情報処理装置は、デバイス情報検出手段、デバイス設定手段、及びデバイス情報格納手段を具備する。デバイス情報検出手段は、前記情報処理装置が第１のタイミングで起動されるとき、前記複数のデバイスから、当該複数のデバイスの使用を開始するための複数のデバイス情報を検出する。デバイス設定手段は、前記複数のデバイス情報を用いて前記複数のデバイスを使用可能に設定する。デバイス情報格納手段は、前記複数のデバイス情報を不揮発性メモリに格納する。前記デバイス設定手段は、前記情報処理装置が前記第１のタイミングより後の第２のタイミングで起動されるとき、前記不揮発性メモリに格納された前記複数のデバイス情報を用いて、前記複数のデバイスを使用可能に設定する。【選択図】図３
2013101710.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスが接続される情報処理装置であって、
バッテリが交換された後の初回起動であることを検出する電源状態検出手段と、
前記バッテリが交換された後の初回起動であることが検出された場合、前記複数のデバイスから、当該複数のデバイスの使用を開始するための複数のデバイス情報を検出するデバイス情報検出手段と、
前記複数のデバイス情報を用いて前記複数のデバイスを使用可能に設定するデバイス設定手段と、
前記複数のデバイス情報を不揮発性メモリに格納するデバイス情報格納手段とを具備し、
前記デバイス設定手段は、前記バッテリが交換された後の初回起動であることが検出されていない場合、前記不揮発性メモリに格納された前記複数のデバイス情報を用いて、前記複数のデバイスを使用可能に設定する情報処理装置。
【請求項２】
前記電源状態検出手段は、前記バッテリが交換されたことを検出し、当該バッテリの交換が検出されたことに基づいて、前記バッテリが交換された後の初回起動であることを検出する請求項１記載の情報処理装置。
【請求項３】
前記複数のデバイス情報は、前記複数のデバイスに割り当てられるメモリリソースを示す情報を含む請求項１記載の情報処理装置。
【請求項４】
前記複数のデバイスは、表示装置を含み、
前記複数のデバイス情報は、前記表示装置の識別情報を含む請求項１記載の情報処理装置。
【請求項５】
前記複数のデバイス情報は、前記バッテリの容量を示す情報を含む請求項１記載の情報処理装置。
【請求項６】
前記複数のデバイスの構成を変更するセットアップ手段をさらに具備し、
前記初回の起動は、前記複数のデバイスの構成が変更された後の初回の起動をさらに含む請求項１記載の情報処理装置。
【請求項７】
前記複数のデバイスは、前記情報処理装置に内蔵されるデバイスを含む請求項１記載の情報処理装置。
【請求項８】
前記複数のデバイスは、前記情報処理装置に外付けされるデバイスを含む請求項１記載の情報処理装置。
【請求項９】
複数のデバイスが接続される情報処理装置の起動を制御する起動制御方法であって、
バッテリが交換された後の初回起動であることを検出し、
前記バッテリが交換された後の初回起動であることが検出された場合、前記複数のデバイスから、当該複数のデバイスの使用を開始するための複数のデバイス情報を検出し、
前記複数のデバイス情報を用いて前記複数のデバイスを使用可能に設定し、
前記複数のデバイス情報を不揮発性メモリに格納し、
前記設定することは、前記バッテリが交換された後の初回起動であることが検出されていない場合、前記不揮発性メモリに格納された前記複数のデバイス情報を用いて、前記複数のデバイスを使用可能に設定する起動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、起動時にハードウェアを初期化する情報処理装置及び該装置に適用される起動制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータのような情報処理装置では、その情報処理装置が起動されるとき、例えばＢＩＯＳ（Basic Input/Output System）によって各種のハードウェアの起動処理（例えば、ハードウェアの初期化、コンフィグレーション、診断等）が実行される。このハードウェアの起動処理では、例えば、情報処理装置に接続されているハードウェアを使用するために必要な情報をハードウェアそれぞれから取得し、ハードウェアに対して必要なリソースが割り当てられる。これにより、情報処理装置に接続されているハードウェアの使用を開始することができる。そして、このハードウェアの起動処理が完了した後、それらハードウェアを用いて動作するオペレーティングシステム（ＯＳ）を起動することができる。
【０００３】
ハードウェアの起動処理では、例えば、ハードウェアの初期化と診断とを行う通常モードと、ハードウェアの初期化のみを行う特殊モードとを設け、ユーザによるキー入力に応じて、いずれかのモードを選択する方法が提案されている。ユーザは、例えば、ハードウェアの診断を行わない特殊モードを選択することにより、情報処理装置の起動に要する時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−６３２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の方法では、起動処理に含まれる機能の一部を制限することにより、情報処理装置の起動に要する時間を短縮できる。しかし、機能を制限することは、ユーザによる利便性を損なう可能性がある。
【０００６】
本発明は、利便性を損なうことなく起動時間を短縮できる情報処理装置及び起動制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態によれば、複数のデバイスが接続される情報処理装置は、電源状態検出手段、デバイス情報検出手段、デバイス設定手段及びデバイス情報格納手段を具備する。電源状態検出手段は、バッテリが交換された後の初回起動であることを検出する。デバイス情報検出手段は、前記バッテリが交換された後の初回起動であることが検出された場合、前記複数のデバイスから、当該複数のデバイスの使用を開始するための複数のデバイス情報を検出する。デバイス設定手段は、前記複数のデバイス情報を用いて前記複数のデバイスを使用可能に設定する。デバイス情報格納手段は、前記複数のデバイス情報を不揮発性メモリに格納する。前記デバイス設定手段は、前記バッテリが交換された後の初回起動であることが検出されていない場合、前記不揮発性メモリに格納された前記複数のデバイス情報を用いて、前記複数のデバイスを使用可能に設定する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理装置の外観の例を示す斜視図。
【図２】同実施形態の情報処理装置のシステム構成の例を示すブロック図。
【図３】同実施形態の情報処理装置によって実行されるＢＩＯＳ起動プログラムの機能構成の例を示すブロック図。
【図４】同実施形態の情報処理装置によって用いられるデバイス情報の例を示す図。
【図５】同実施形態の情報処理装置によって用いられるデバイス情報の別の例を示す図。
【図６】同実施形態の情報処理装置によって用いられるデバイス情報のさらに別の例を示す図。
【図７】同実施形態の情報処理装置によって実行されるＢＩＯＳ起動処理の手順の例を示すフローチャート。
【図８】同実施形態の情報処理装置によって実行される第１起動処理の手順の例を示すフローチャート。
【図９】同実施形態の情報処理装置によって実行される第２起動処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、例えばノートブックタイプのパーソナルコンピュータ１として実現される。また、この情報処理装置は、デスクトップタイプのＰＣ、タブレットＰＣ、ＰＤＡ、スマートフォン等として実現され得る。
【００１０】
図１に示すように、本コンピュータ１は、コンピュータ本体２と、ディスプレイユニット３とから構成される。  
ディスプレイユニット３には、ＬＣＤ（liquid crystal display）１５が組み込まれている。ディスプレイユニット３は、コンピュータ本体２の上面が露出される開放位置とコンピュータ本体２の上面を覆う閉塞位置との間を回動自在にコンピュータ本体２に取り付けられている。
【００１１】
コンピュータ本体２は、薄い箱形の筐体を有しており、その上面には、キーボード２６、本コンピュータ１を電源オン／電源オフするためのパワーボタン２８、入力操作パネル２９、タッチパッド２７、スピーカ１８Ａ，１８Ｂなどが配置されている。入力操作パネル２９上には、各種操作ボタンが設けられている。コンピュータ本体２の例えば右側面には、ＵＳＢ２．０規格に対応した外部機器接続端子３０Ａが設けられている。
【００１２】
図２は、本コンピュータ１のシステム構成を示す図である。  
本コンピュータ１は、図２に示すように、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、グラフィックスコントローラ１４、ビデオメモリ（ＶＲＡＭ）１４Ａ、ディスプレイ１５、サウスブリッジ１６、サウンドコントローラ１７、スピーカ１８Ａ，１８Ｂ、フラッシュＢＩＯＳ−ＲＯＭ１９、ネットワークコントローラ２０、ハードディスクドライブ（ＨＤＤ）２１、光ディスクドライブ（ＯＤＤ）２２、カードコントローラ２３、ＵＳＢコントローラ２４、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）２５、キーボード（ＫＢ）２６、ポインティングデバイス２７等を備えている。
【００１３】
ＣＰＵ１１は、本コンピュータ１の動作を制御するプロセッサである。ＣＰＵ１１は、ＨＤＤ２１等から主メモリ１３にロードされる、オペレーティングシステム（ＯＳ）及びアプリケーションプログラムを実行する。
【００１４】
また、ＣＰＵ１１は、フラッシュＢＩＯＳ−ＲＯＭ１９に格納されたＢＩＯＳ（Basic Input/Output System）も実行する。フラッシュＢＩＯＳ−ＲＯＭ１９は、例えば、ＢＩＯＳと、コンピュータ１に接続されたデバイス（ハードウェア）の使用を開始するための情報（デバイス情報とも称する）とを格納するための不揮発性メモリである。ＢＩＯＳは、ハードウェア制御のためのプログラムである。ＢＩＯＳは、例えば、コンピュータ１に接続されたデバイスの使用を開始するための起動制御機能を備える。この起動制御機能によって、コンピュータ１が起動されたとき、コンピュータ１に接続されたデバイスのコンフィグレーションが実行されることによって、デバイスが使用可能に設定される。なお、コンピュータ１に接続されたデバイスは、コンピュータ１に内蔵されたデバイス（例えば、グラフィックスコントローラ１４、ネットワークコントローラ２０、カードコントローラ２３、ＵＳＢコントローラ２４、ＨＤＤ２１、ＯＤＤ２２、サウンドコントローラ１７、ＬＣＤ１５、バッテリ３２等）と、コンピュータ１に外部接続されたデバイス（例えば、外付けのＨＤＤやＯＤＤ、ＰＣカード２３Ａ、ＵＳＢフラッシュメモリ２４Ａ、ＵＳＢ接続の周辺機器、外付けのＬＣＤ等）とを含む。
【００１５】
ノースブリッジ１２は、ＣＰＵ１１のローカルバスとサウスブリッジ１６との間を接続するブリッジデバイスである。ノースブリッジ１２には、主メモリ１３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１２は、グラフィックスコントローラ１４との通信を実行する機能も有している。
【００１６】
グラフィックスコントローラ１４は、本コンピュータ１のディスプレイとして使用されるＬＣＤ１５を制御するデバイスである。このグラフィックスコントローラ１４によって生成される表示信号はＬＣＤ１５に送られる。ＬＣＤ１５は、表示信号に基づいて映像を表示する。
【００１７】
サウスブリッジ１６は、ＰＣＩ（Peripheral Component Interconnect）バス２上及びＬＰＣ（Low Pin Count）バス３上の各デバイスを制御する。また、サウスブリッジ１６には、ＨＤＤ２１及びＯＤＤ２２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラ１６Ａ、及びフラッシュＢＩＯＳ−ＲＯＭ１９をアクセス制御するメモリコントローラが内蔵されている。さらに、サウスブリッジ１６は、サウンドコントローラ１７及びネットワークコントローラ２０との通信を実行する機能も有している。
【００１８】
サウンドコントローラ１７は音源デバイスであり、再生対象のオーディオデータをスピーカ１８Ａ，１８Ｂに出力する。ネットワークコントローラ２０は、例えばＥｔｈｅｒｎｅｔ（登録商標）規格の有線通信を実行する有線通信デバイスである。
【００１９】
また、ＵＳＢコントローラ２４は、例えばＵＳＢ２．０規格のケーブルを介して外部機器との通信を実行する。より具体的には、ＵＳＢコントローラ２４は、例えば、ＵＳＢフラッシュメモリ２４Ａからのデータの読み出しと、ＵＳＢフラッシュメモリ２４Ａへのデータの書き込みとを制御する。ＵＳＢコントローラ２４は、例えば、ＵＳＢ接続のキーボード２４Ｂを用いた入力を制御することもできる。また、カードコントローラ２３は、例えば、接続されたＰＣカード２３Ａとの通信を実行する。
【００２０】
ＥＣ／ＫＢＣ２５は、電力管理を行うためのエンベデッドコントローラと、キーボード（ＫＢ）２６及びポインティングデバイス２７を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このＥＣ／ＫＢＣ２５は、ユーザの操作に応じて本コンピュータ１をパワーオン／パワーオフする機能を有している。ＥＣ／ＫＢＣ２５は、電源回路３１を介して供給される電力を制御する。この電力は、例えば、ＡＣアダプタ３３を介して接続される外部電源や、バッテリ３２によって供給される。ＥＣ／ＫＢＣ２５は、外部電源によって電力が供給されているか否か、バッテリ３２によって電力が供給されているか否か等を示す電源状態を検出することができる。
【００２１】
また、ＥＣ／ＫＢＣ２５には、コンピュータ１の起動が初回起動であるか否かを示す情報（初回起動フラグとも称する）が格納されている。初回起動は、例えば、製造後（出荷後）の初めての起動（初回の電源投入時）や、外部電源及びバッテリ３２による電力の供給が途絶えた後の初めての起動を示す。ＥＣ／ＫＢＣ２５は、初回起動よりも前の期間内（例えば、製造されてから使用が開始されるまでの期間内や、外部電源及びバッテリ３２による電力の供給が途絶えた後、次に使用されるまでの期間内）には初回起動フラグをセットし、コンピュータ１が初回起動されたことに応じて初回起動フラグをクリアする。したがって、ＥＣ／ＫＢＣ２５に初回起動フラグがセットされているか否かに応じて、コンピュータ１の起動が初回起動であるか否かを判定することができる。
【００２２】
ＥＣ／ＫＢＣ２５にはさらに、バッテリ３２が交換されたか否かを示す情報（バッテリ交換フラグとも称する）を格納してもよい。コンピュータ１に接続されるバッテリ３２は交換されることがある。ＥＣ／ＫＢＣ２５は、例えば、バッテリ３２が交換されたことに応じてバッテリ交換フラグをセットし、バッテリ３２が交換された後にコンピュータ１が起動されたことに応じてバッテリ交換フラグをクリアする。したがって、ＥＣ／ＫＢＣ２５にバッテリ交換フラグがセットされているか否かに応じて、コンピュータ１を前回起動した後に、コンピュータ１に接続されているバッテリ３２が交換されたか否かを判定することができる。なお、ＥＣ／ＫＢＣ２５は、コンピュータ１が電源オフの状態であっても、例えば内部電池を用いて、初回起動フラグ及びバッテリ交換フラグをセットすることができる。
【００２３】
上述のように、コンピュータ１が起動されるとき、ＢＩＯＳはコンピュータ１に接続された各種のデバイスのコンフィグレーション（初期化）を実行する。このコンフィグレーションでは、例えば、デバイスにアクセスして、デバイスの使用を開始するために必要なリソース等を示すデバイス情報を取得する必要がある。しかし、コンピュータ１には、ロースピードなインターフェース（例えば、ＰＣＩバス２）を介して接続されるデバイスがあるので、デバイスから情報を取得する処理を待つことによって、コンピュータ１の起動全体が遅くなる可能性がある。そのため本実施形態では、初回起動時に検出されたデバイス情報を不揮発性メモリ（フラッシュＢＩＯＳ−ＲＯＭ）１９に保存し、初回起動よりも後の起動では、不揮発性メモリ１９に保存されたデバイス情報を用いて起動処理が実行されるように制御する。これにより、コンピュータ１の起動時間を短縮することができる。
【００２４】
図３は、コンピュータ１によって実行されるＢＩＯＳ起動プログラム４０の機能構成の例を示す。ＢＩＯＳ起動プログラム４０は、フラッシュＢＩＯＳ−ＲＯＭ１９に格納されているＢＩＯＳに含まれるプログラムである。したがって、ＢＩＯＳ起動プログラム４０は、例えば、フラッシュＢＩＯＳ−ＲＯＭ１９から主メモリ１３にロードされ、ＣＰＵ１１によって実行される。  
ＢＩＯＳ起動プログラム４０は、起動判定部４１、デバイス検出部４２、デバイス情報検出部４３、情報ライト部４４、コンフィグレーション部４５、情報リード部４６、及びセットアップ部４７を備える。
【００２５】
起動判定部４１は、例えば、パワーボタン２８が押されたことによってコンピュータ１の電源がオンにされる際に（すなわち、コンピュータ１が起動される際に）、コンピュータ１が起動されたタイミングを判別する。より具体的には、起動判定部４１は、コンピュータ１が、第１のタイミングと第１のタイミングよりも後の第２のタイミングのいずれのタイミングで起動されたかを判定する。第１のタイミングは、例えば、コンピュータ１が、製造後（出荷後）に初めて起動されたタイミングや、外部電源及びバッテリ３２による電力の供給が途絶えた後に初めて起動されたタイミングである。なお、第１のタイミングでの起動を初回起動とも称する。また、第２のタイミングは、例えば、初回起動の後に起動されたタイミングである。起動判定部４１は、例えば、ＥＣ／ＫＢＣ２５に設けられる、コンピュータ１が初回起動であるか否かを示す初回起動フラグを参照して、判定を行う。
【００２６】
起動判定部４１は、コンピュータ１が第１のタイミングで起動されたと判定した場合、コンピュータ１に接続されたデバイスの検出をデバイス検出部４２に要求する。また、起動判定部４１は、コンピュータ１が第２のタイミングで起動されたと判定した場合、デバイス情報１９Ａの読み出しを情報リード部４６に要求する。
【００２７】
以下ではまず、コンピュータ１が第１のタイミングで起動された場合の動作について説明する。  
デバイス検出部４２は、起動判定部４１によるデバイス検出の要求に応じて、コンピュータ１に接続されているデバイスを検出する。デバイス検出部４２は、コンピュータ１に複数のデバイスが接続されている場合、それら複数のデバイスを順次検出する。そして、デバイス検出部４２は、デバイスが検出されたことをデバイス情報検出部４３に通知する。
【００２８】
デバイス情報検出部４３は、デバイス検出部４２による通知に応じて、検出されたデバイスからデバイス情報１９Ａを検出する。より具体的には、検出されたデバイスがディスプレイ１５である場合、デバイス情報検出部４３は、ディスプレイ１５からディスプレイ情報１９Ｄを検出する。このディスプレイ情報１９Ｄは、例えば、ディスプレイＩＤ（ＥＤＩＤ）、ディスプレイ名、型番等を示す情報を含む。検出されたデバイスがバッテリ３２である場合、デバイス情報検出部４３は、バッテリ３２からバッテリ情報１９Ｃを検出する。このバッテリ情報１９Ｃは、例えば、バッテリＩＤ、バッテリ名、バッテリ容量、型番等を示す情報を含む。また、検出されたデバイスがディスプレイ１５とバッテリ３２のいずれでもない場合、デバイス情報検出部４３は、デバイスからリソース情報１９Ｂを検出する。このリソース情報１９Ｂは、例えば、デバイスＩＤ、デバイス名、デバイスに対して割り当てられるメモリリソース、メモリＩ／Ｏ、割込み要求（ＩＲＱ）等を示す情報を含む。そして、デバイス情報検出部４３は、検出されたディスプレイ情報１９Ｄ、バッテリ情報１９Ｃ及びリソース情報１９Ｂを情報ライト部４４とコンフィグレーション部４５とに出力する。
【００２９】
情報ライト部４４は、デバイス情報検出部４３によって出力されたディスプレイ情報１９Ｄ、バッテリ情報１９Ｃ及びリソース情報１９Ｂを不揮発性メモリ（フラッシュＢＩＯＳ−ＲＯＭ）１９に格納する。格納されるリソース情報１９Ｂ、バッテリ情報１９Ｃ及びディスプレイ情報１９Ｄの例については、図４から図６を参照して後述する。
【００３０】
コンフィグレーション部４５は、デバイス情報検出部４３によって出力されたディスプレイ情報１９Ｄ、バッテリ情報１９Ｃ及びリソース情報１９Ｂを用いて、コンピュータ１に接続されているデバイスを使用可能に設定する。コンフィグレーション部４５は、例えば、リソース情報１９Ｂを用いて、デバイスの初期化や、デバイスに対するメモリリソースの割り当て等のコンフィグレーションを実行する。また、コンフィグレーション部４５は、バッテリ情報１９Ｃを用いてバッテリ３２を使用可能に設定する。コンフィグレーション部４５は、さらに、ディスプレイ情報１９Ｄを用いてディスプレイ１５を使用可能に設定する。そして、コンフィグレーション部４５は、デバイスが使用可能に設定されたことを起動判定部４１に通知する。
【００３１】
起動判定部４１は、コンフィグレーション部４５による通知に応じて、ＥＣ／ＫＢＣ２５に含まれる初回起動フラグをクリアする。  
これにより、使用可能に設定されたデバイスを用いて動作するＯＳを起動することができる。ＯＳは、例えばＨＤＤ２１から主メモリ１３にロードされ、実行される。
【００３２】
なお、コンフィグレーション部４５は、検出されたデバイスがＵＳＢコントローラ２４である場合、ＵＳＢコントローラ２４を初期化する。そして、ＢＩＯＳ起動時に、ユーザによるパスワード（ＢＩＯＳパスワードとも称する）の入力が要求される場合には、コンフィグレーション部４５は、ＢＩＯＳパスワードの入力に用いられ得る、ＵＳＢ接続のキーボード２４Ｂを使用可能にするための初期化処理の完了を待って、デバイスが使用可能に設定されたことを起動判定部４１に通知する。さらに、ＵＳＢ接続のデバイス（例えば、ＵＳＢフラッシュメモリ２４Ａ）の起動順位（ブートプライオリティ）が１位である場合には、そのＵＳＢ接続のデバイスを使用可能にするための初期化処理の完了を待って、デバイスが使用可能に設定されたことを起動判定部４１に通知する。
【００３３】
以上の構成により、コンピュータ１が第１のタイミングで起動される場合（すなわち、初回起動の場合）、コンピュータ１に接続されたデバイスが使用可能に設定されると共に、ＢＩＯＳ起動処理に用いられるデバイス情報１９Ａを不揮発性メモリ１９に保存することができる。
【００３４】
次いで、以下では、コンピュータ１が第２のタイミングで起動された場合の動作について説明する。  
情報リード部４６は、起動判定部４１によるデバイス情報１９Ａ読み出しの要求に応じて、不揮発性メモリ１９からデバイス情報１９Ａを読み出す。そして、情報リード部４６は、読み出されたデバイス情報１９Ａをコンフィグレーション部４５に出力する。
【００３５】
コンフィグレーション部４５は、情報リード部４６によって出力されたデバイス情報１９Ａを用いて、コンピュータ１に接続された複数のデバイスを使用可能に設定する。例えば、コンフィグレーション部４５は、デバイス情報１９Ａに含まれるリソース情報１９Ｂを用いて、そのリソース情報１９Ｂ（リソース情報１９Ｂのエントリ）に対応するデバイスのコンフィグレーションを実行する。コンフィグレーション部４５は、リソース情報１９Ｂに基づき、そのデバイスに対して、メモリリソース、メモリＩ／Ｏ、割込み要求等を割り当てる。また、コンフィグレーション部４５は、デバイス情報１９Ａに含まれるバッテリ情報１９Ｃを用いて、バッテリ３２を使用可能に設定する。コンフィグレーション部４５は、さらに、デバイス情報１９Ａに含まれるディスプレイ情報１９Ｄを用いて、ディスプレイ１５を使用可能に設定する。そして、コンフィグレーション部４５は、デバイスが使用可能に設定されたことを起動判定部４１に通知する。
【００３６】
なお、コンフィグレーション部４５は、デバイス情報１９Ａ（リソース情報１９Ｂ）に示されるデバイスがＵＳＢコントローラ２４である場合、ＵＳＢコントローラ２４を初期化する。そして、ＢＩＯＳ起動時に、ユーザによるＢＩＯＳパスワードの入力が要求される場合には、コンフィグレーション部４５は、ＢＩＯＳパスワードの入力に用いられ得る、ＵＳＢ接続のキーボード２４Ｂを使用可能にするための初期化処理の完了を待って、デバイスが使用可能に設定されたことを起動判定部４１に通知する。さらに、ＵＳＢ接続のデバイス（例えば、ＵＳＢフラッシュメモリ２４Ａ）の起動順位（ブートプライオリティ）が１位である場合には、そのＵＳＢ接続のデバイスを使用可能にするための初期化処理の完了を待って、デバイスが使用可能に設定されたことを起動判定部４１に通知する。
【００３７】
起動判定部４１は、コンフィグレーション部４５による通知に応じて、ＥＣ／ＫＢＣ２５に含まれる初回起動フラグをクリアする。  
これにより、使用可能に設定されたデバイスを用いて動作するＯＳを起動することができる。ＯＳは、例えばＨＤＤ２１から主メモリ１３にロードされ、実行される。
【００３８】
また、第２のタイミングで起動された場合には、コンピュータ１が前回起動された後に、バッテリ３２が交換されていることがある。その場合、起動判定部４１は、ＥＣ／ＫＢＣ２５を介して、バッテリ３２が交換されたことを検出する。そして、起動判定部４１は、バッテリ３２が交換されたことをデバイス検出部４２に通知する。
【００３９】
デバイス検出部４２は、起動判定部４１による通知に応じて、新たに接続されたバッテリ（交換後のバッテリ）３２を検出する。デバイス検出部４２は、新たなバッテリ３２が検出されたことをデバイス情報検出部４３に通知する。
【００４０】
デバイス情報検出部４３は、デバイス検出部４２による通知に応じて、新たに接続されたバッテリ３２からバッテリ情報１９Ｃを検出する。デバイス情報検出部４３は、検出されたバッテリ情報１９Ｃをコンフィグレーション部４５と情報ライト部４４とに出力する。
【００４１】
コンフィグレーション部４５は、デバイス情報検出部４３によって出力されたバッテリ情報１９Ｃを用いて、新たなバッテリ３２を使用可能に設定する。また、情報ライト部４４は、デバイス情報検出部４３によって出力されたバッテリ情報１９Ｃを不揮発性メモリ１９に格納する。情報ライト部４４は、例えば、交換前のバッテリ３２に対応するバッテリ情報１９Ｃを、交換後のバッテリ３２に対応するバッテリ情報１９Ｃで上書きする。
【００４２】
以上の構成により、コンピュータ１が第２のタイミングで起動される場合（すなわち、初回起動よりも後の起動である場合）、不揮発性メモリ１９に保存されたデバイス情報１９Ａを用いてデバイスのコンフィグレーションが実行されるので、デバイスからデバイス情報を検出した後にコンフィグレーションを実行する初回起動よりも、処理に要する時間を短縮することができる。例えば、ロースピードなインターフェース（バス）を介して接続されるデバイスでは、デバイスの使用を開始するために必要な情報を、そのデバイスから取得するために要する時間によって、起動時間全体が長くなる。そのため、初回起動時にデバイス情報１９Ａを不揮発性メモリ１９に保存し、次回の起動以降は、不揮発性メモリ１９に保存されたデバイス情報１９Ａを利用することにより、コンピュータ１の起動を高速化することができる。
【００４３】
なお、起動判定部４１は、コンピュータ１が起動されるとき、例えば所定のキーが入力されたことに応じて、コンピュータ１に接続されるデバイスの構成等を変更するためのＢＩＯＳセットアップが指示されたことを検出する。その場合、起動判定部４１は、セットアップ部４７に、ＢＩＯＳセットアップの開始を要求する。
【００４４】
セットアップ部４７は、起動判定部４１による要求に応じてセットアップ画面を表示する。セットアップ画面では、例えば、ユーザによる入力（操作）に応じて、コンピュータ１に接続されるデバイスそれぞれの使用の許可又は禁止（すなわち、デバイスの有効又は無効）が設定される。そして、セットアップが完了した場合、セットアップ部４７は、コンピュータ１を再起動し、起動判定部４１に、コンピュータ１に接続されるデバイスの構成が変更されたことを通知する。
【００４５】
起動判定部４１は、セットアップ部４７による通知に応じて、コンピュータ１に接続されるデバイスの構成が変更されたことを検出した場合、デバイス構成が変更された直後の起動（再起動）を、上述の第１のタイミングでの起動（初回起動）と同様に扱う。そして、上述のように、コンピュータ１が第１のタイミングで起動された場合の動作が実行される。これにより、ＢＩＯＳセットアップによってデバイス構成が変更された後にコンピュータ１が起動される場合、コンピュータ１に接続されたデバイスからデバイス情報が再度検出され、そのデバイスが使用可能に設定されると共に、検出されたデバイス情報を用いて、不揮発性メモリ１９に保存されたデバイス情報１９Ａを更新することができる。したがって、デバイス構成が変更された場合にもコンピュータ１を正常に起動することができる。また、ＢＩＯＳセットアップ直後の起動よりも後の起動（すなわち、第２のタイミングでの起動）では、更新されたデバイス情報１９Ａを用いることにより、コンピュータ１を高速に起動することができる。
【００４６】
なお、セットアップ部４７は、セットアップによってデバイス構成が変更されたことを起動判定部４１に通知するのではなく、デバイス構成が変更されたか否かを示す情報（デバイス構成変更フラグ）を不揮発性メモリ１９に格納してもよい。その場合、起動判定部４１は、コンピュータ１が起動されたことに応じて、不揮発性メモリ１９に格納されたデバイス構成変更フラグを読み出す。そして、起動判定部４１は、デバイス構成変更フラグがセットされている場合に、その起動を第１のタイミングでの起動（初回起動）と同様に扱う。
【００４７】
次いで、図４から図６は、デバイス情報１９Ａの例を示す。デバイス情報１９Ａは、上述のように、例えば、リソース情報１９Ｂ、バッテリ情報１９Ｃ及びディスプレイ情報１９Ｄを含む。  
まず、図４は、コンピュータ１に接続されたデバイス（ハードウェア）に対応するリソース情報１９Ｂの例を示す。このデバイスは、例えば、グラフィックスコントローラ１４、ネットワークコントローラ２０、カードコントローラ２３、ＵＳＢコントローラ２４、ＨＤＤ２１、ＯＤＤ２２、サウンドコントローラ１７等である。
【００４８】
リソース情報１９Ｂは、複数のデバイスに対応する複数のエントリを含む。あるデバイスに対応するエントリは、例えば、デバイスＩＤ、デバイス名、メモリリソース、メモリＩ／Ｏ、割込みを含む。「デバイスＩＤ」は、そのデバイスに一意に割り当てられた識別情報を示す。「デバイス名」は、そのデバイスの名称を示す。「メモリリソース」は、そのデバイスに割り当てられるメモリの範囲を示す。「メモリＩ／Ｏ」は、そのデバイスに割り当てられるメモリＩ／Ｏの範囲を示す。「割込み」は、そのデバイスがＣＰＵ１１を呼び出す際に生じる割込み要求を示す。なお、「デバイスＩＤ」及び「デバイス名」をデバイス構成情報とも称する。また、「メモリリソース」、「メモリＩ／Ｏ」及び「割込み」をリソース情報とも称する。
【００４９】
図５は、バッテリ３２に対応するバッテリ情報１９Ｃの例を示す。コンピュータ１に接続されるバッテリは、ユーザによって交換されることがある。また、交換されるバッテリでは容量が異なることがある。そのため、バッテリ３２に対応するバッテリ情報１９Ｃは、バッテリが交換された後に更新される。
【００５０】
バッテリ情報１９Ｃは、コンピュータ１に接続されているバッテリ３２に対応するエントリを含む。バッテリ３２に対応するエントリは、例えば、バッテリＩＤ、バッテリ名、容量、型番等を含む。「バッテリＩＤ」は、バッテリ３２に一意に割り当てられた識別情報を示す。「バッテリ名」は、バッテリ３２の名称を示す。「容量」は、バッテリ３２の充電容量を示す。「型番」は、ベンダー等によって付与されたバッテリ３２の型番を示す。
【００５１】
図６は、ディスプレイ１５に対応するディスプレイ情報１９Ｄの例を示す。コンピュータ１に接続されるディスプレイ（ディスプレイパネル）１５は、ユーザによって交換されることがある。ディスプレイ１５が交換される際には、外部電源及びバッテリ３２によって電力が供給されないことが想定される（例えば、作業のしやすさや安全のため電力が供給されないことが想定される）。そのため、ディスプレイ１５に対応するディスプレイ情報１９Ｄは、電力の供給が断たれた後に更新される。
【００５２】
ディスプレイ情報１９Ｄは、コンピュータ１に接続されているディスプレイ１５に対応するエントリを含む。ディスプレイ１５に対応するエントリは、例えば、ディスプレイＩＤ、ディスプレイ名、型番等を含む。「ディスプレイＩＤ」は、ディスプレイ１５に一意に割り当てられた識別情報を示す。この識別情報は、例えば、ＥＤＩＤ（extended display identification data）である。「ディスプレイ名」は、ディスプレイ１５の名称を示す。「型番」は、ベンダー等によって付与されたディスプレイ１５の型番を示す。
【００５３】
次いで、図７に示すフローチャートを参照して、ＢＩＯＳ起動プログラム４０によって実行されるＢＩＯＳ起動処理の手順について説明する。  
まず、起動判定部４１は、コンピュータ１の起動が指示されたことに応じて、コンピュータ１の起動が初回起動であるか否か（すなわち、コンピュータ１が第１のタイミングで起動されたか否か）を判定する（ブロックＢ１１）。第１のタイミングは、製造後（出荷後）に初めて起動されたタイミングや、外部電源及びバッテリ３２による電力の供給が途絶えた後に初めて起動されたタイミングである。起動判定部４１は、例えば、ＥＣ／ＫＢＣ２５に設けられる、コンピュータ１が初回起動であるか否かを示す初回起動フラグを参照して、判定を行う。
【００５４】
コンピュータ１の起動が初回起動である場合（ブロックＢ１１のＹＥＳ）、ＢＩＯＳ起動プログラム４０（コンピュータ１）では第１起動処理が実行される（ブロックＢ１２）。より具体的には、起動判定部４１は、ＢＩＯＳ起動プログラム４０内の各部に第１起動処理の実行を指示する。第１起動処理の手順については、図８に示すフローチャートを参照して後述する。
【００５５】
また、コンピュータ１の起動が初回起動でない場合（ブロックＢ１１のＮＯ）、起動判定部４１は、コンピュータ１によって使用されるデバイス構成（ハードウェア構成）に変更があったか否かを判定する（ブロックＢ１３）。コンピュータ１によって使用されるデバイス構成が変更されている場合（ブロックＢ１３のＹＥＳ）、ＢＩＯＳ起動プログラム４０では第１起動処理が実行される（ブロックＢ１２）。一方、コンピュータ１によって使用されるデバイス構成が変更されていない場合（ブロックＢ１３のＮＯ）、ＢＩＯＳ起動プログラム４０では第２起動処理が実行される（ブロックＢ１４）。より具体的には、起動判定部４１は、ＢＩＯＳ起動プログラム４０内の各部に第２起動処理の実行を指示する。第２起動処理の手順については、図９に示すフローチャートを参照して後述する。
【００５６】
次いで、図８のフローチャートを参照して、第１起動処理の手順の例について説明する。  
まず、デバイス検出部４２は、コンピュータ１に接続されているデバイス（ハードウェア）が検出されたか否かを判定する（ブロックＢ２０１）。コンピュータ１に接続されているデバイスが検出された場合（ブロックＢ２０１のＹＥＳ）、デバイス情報検出部４３は、その検出されたデバイスがディスプレイ（ＬＣＤ）１５であるか否かを判定する（ブロックＢ２０２）。検出されたデバイスがディスプレイ１５である場合（ブロックＢ２０２のＹＥＳ）、デバイス情報検出部４３は、ディスプレイ１５からディスプレイ情報１９Ｄを検出する（ブロックＢ２０３）。そして、情報ライト部４４は、検出されたディスプレイ情報１９Ｄを不揮発性メモリ１９に保存する（ブロックＢ２０４）。
【００５７】
検出されたデバイスがディスプレイ１５でない場合（ブロックＢ２０２のＮＯ）、デバイス情報検出部４３は、そのデバイスがバッテリ３２であるか否かを判定する（ブロックＢ２０５）。検出されたデバイスがバッテリ３２である場合（ブロックＢ２０５のＹＥＳ）、デバイス情報検出部４３は、バッテリ３２からバッテリ情報１９Ｃを検出する（ブロックＢ２０６）。そして、情報ライト部４４は、検出されたバッテリ情報１９Ｃを不揮発性メモリ１９に保存する（ブロックＢ２０７）。
【００５８】
検出されたデバイスがバッテリ３２でない場合（ブロックＢ２０５のＮＯ）、デバイス情報検出部４３は、デバイスからリソース情報１９Ｂを検出する（ブロックＢ２０８）。そして、コンフィグレーション部４５は、検出されたリソース情報１９Ｂを用いて、メモリリソースの割り当て等のコンフィグレーションを実行する（ブロックＢ２０９）。また、情報ライト部４４は、デバイスに対応するリソース情報１９Ｂを不揮発性メモリ１９に保存する（ブロックＢ２１０）。
【００５９】
ブロックＢ２０４、ブロックＢ２０７又はブロックＢ２１０においてデバイス情報１９Ａ（ディスプレイ情報１９Ｄ、バッテリ情報１９Ｃ、リソース情報１９Ｂ）が不揮発性メモリ１９に保存された後、ブロックＢ２０１に戻り、再度、コンピュータ１に接続されたデバイスが検出されたか否かが判定される。つまり、コンピュータ１に接続されたデバイスのそれぞれ対して、ブロックＢ２０１からブロックＢ２１０の処理が施される。
【００６０】
そして、コンピュータ１に接続されているデバイスが検出されなかった場合（すなわち、コンピュータ１に接続されている全てのデバイスの検出が完了した場合）（ブロックＢ２０１のＮＯ）、コンフィグレーション部４５は、コンピュータ１に接続されているデバイスの中に、ＵＳＢコントローラ２４があるか否かを判定する（ブロックＢ２１１）。ＵＳＢコントローラ２４がない場合（ブロックＢ２１１のＮＯ）、起動判定部４１は、ＥＣ／ＫＢＣ２５に設けられた初回起動フラグをクリアし（ブロックＢ２１８）、処理を終了する。
【００６１】
ＵＳＢコントローラ２４がある場合（ブロックＢ２１１のＹＥＳ）、コンフィグレーション部４５は、ＵＳＢコントローラ２４を初期化する（ブロックＢ２１２）。そして、コンフィグレーション部４５は、ＢＩＯＳ起動時に、ユーザによるＢＩＯＳパスワードの入力が要求されるか否かを判定する（ブロックＢ２１３）。ＢＩＯＳパスワードの入力が要求される場合（ブロックＢ２１３のＹＥＳ）、コンフィグレーション部４５は、ＢＩＯＳパスワードの入力に用いられる、ＵＳＢ接続のキーボード２４Ｂを使用するための初期化処理の完了を待つ（ブロックＢ２１４）。
【００６２】
ブロックＢ２１４においてＵＳＢ接続のキーボード２４Ｂの初期化処理が完了した後、又はＢＩＯＳパスワードの入力が要求されない場合（ブロックＢ２１３のＮＯ）、コンフィグレーション部４５は、ＵＳＢフラッシュメモリ２４Ａに格納されたＯＳの起動（ＵＳＢメモリブート）を指示するための所定のキー入力があったか否かを判定する（ブロックＢ２１５）。所定のキー入力がない場合（ブロックＢ２１５のＮＯ）、コンフィグレーション部４５は、ＢＩＯＳセットアップ等によって、ＵＳＢメモリブートが指示されているか否かを判定する（ブロックＢ２１６）。そして、所定のキー入力があった場合（ブロックＢ２１５のＹＥＳ）、又はＵＳＢメモリブートが指示されている場合（ブロックＢ２１６のＹＥＳ）、コンフィグレーション部４５は、ＵＳＢフラッシュメモリ２４Ａを使用するための初期化処理の完了を待つ（ブロックＢ２１７）。
【００６３】
ブロックＢ２１７においてＵＳＢフラッシュメモリ２４Ａの初期化処理が完了した後、又はＵＳＢメモリブートが指示されていない場合（ブロックＢ２１６のＮＯ）、起動判定部４１は、ＥＣ／ＫＢＣ２５に設けられた初回起動フラグをクリアし（ブロックＢ２１８）、処理を終了する。
【００６４】
以上の処理により、コンピュータ１の初回起動時（第１のタイミングでの起動時）には、コンピュータ１に接続されたデバイスが使用可能に設定されると共に、ＢＩＯＳ起動処理に用いられるデバイス情報１９Ａを不揮発性メモリ１９に保存することができる。
【００６５】
次いで、図９のフローチャートは第２起動処理の手順の例を示す。  
まず、情報リード部４６は、不揮発性メモリ１９からデバイスのリソース情報１９Ｂを読み出す（ブロックＢ３０１）。そして、コンフィグレーション部４５は、読み出されたリソース情報１９Ｂを用いて、デバイスのコンフィグレーションを実行する（ブロックＢ３０２）。そして、情報リード部４６は、不揮発性メモリ１９からディスプレイ１５に対応するディスプレイ情報１９Ｄを読み出す（ブロックＢ３０３）。
【００６６】
次いで、起動判定部４１は、コンピュータ１が前回起動された後に、バッテリ３２が交換されたか否かを判定する（ブロックＢ３０４）。具体的には、起動判定部４１は、ＥＣ／ＫＢＣ２５を介して、バッテリ３２が交換されたか否かを判定する。バッテリ３２が交換されていない場合（ブロックＢ３０４のＮＯ）、情報リード部４６は、不揮発性メモリ１９からバッテリ情報１９Ｃを読み出す（ブロックＢ３０５）。
【００６７】
一方、バッテリ３２が交換されていた場合（ブロックＢ３０４のＹＥＳ）、デバイス検出部４２が交換後のバッテリ３２を検出し、デバイス情報検出部４３がバッテリ３２からバッテリ情報１９Ｃを検出する（ブロックＢ３０６）。そして、情報ライト部４４は、検出されたバッテリ情報１９Ｃを不揮発性メモリ１９に保存する（ブロックＢ３０７）。
【００６８】
次いで、コンフィグレーション部４５は、コンピュータ１に接続されているデバイスの中に、ＵＳＢコントローラ２４があるか否かを判定する（ブロックＢ３０８）。ＵＳＢコントローラ２４がない場合（ブロックＢ３０８のＮＯ）、処理を終了する。
【００６９】
ＵＳＢコントローラ２４がある場合（ブロックＢ３０８のＹＥＳ）、コンフィグレーション部４５は、ＵＳＢコントローラ２４を初期化する（ブロックＢ３０９）。そして、コンフィグレーション部４５は、ＢＩＯＳ起動時に、ユーザによるＢＩＯＳパスワードの入力が要求されるか否かを判定する（ブロックＢ３１０）。ＢＩＯＳパスワードの入力が要求される場合（ブロックＢ３１０のＹＥＳ）、コンフィグレーション部４５は、ＢＩＯＳパスワードの入力に用いられる、ＵＳＢ接続のキーボード２４Ｂを使用するための初期化処理の完了を待つ（ブロックＢ３１１）。
【００７０】
ブロックＢ３１１においてＵＳＢ接続のキーボード２４Ｂの初期化処理が完了した後、又はＢＩＯＳパスワードの入力が要求されない場合（ブロックＢ３１０のＮＯ）、コンフィグレーション部４５は、ＵＳＢフラッシュメモリ２４Ａに格納されたＯＳの起動（ＵＳＢメモリブート）を指示するための所定のキー入力があったか否かを判定する（ブロックＢ３１２）。所定のキー入力がない場合（ブロックＢ３１２）、コンフィグレーション部４５は、ＢＩＯＳセットアップ等によって、ＵＳＢメモリブートが指示されているか否かを判定する（ブロックＢ３１３）。そして、所定のキー入力があった場合（ブロックＢ３１２のＹＥＳ）、又はＵＳＢメモリブートが指示されている場合（ブロックＢ３１３のＹＥＳ）、コンフィグレーション部４５は、ＵＳＢフラッシュメモリ２４Ａを使用するための初期化処理の完了を待つ（ブロックＢ３１４）。
【００７１】
ブロックＢ３１４においてＵＳＢフラッシュメモリ２４Ａの初期化処理が完了した後、又はＵＳＢメモリブートが指示されていない場合（ブロックＢ３１３のＮＯ）、起動判定部４１は、処理を終了する。
【００７２】
以上の処理により、初回起動よりも後の起動（第２のタイミングでの起動）では、不揮発性メモリ１９に保存されたデバイス情報１９Ａを用いて、コンピュータ１に接続されたデバイスが使用可能に設定される。このＢＩＯＳ起動処理が完了した後に、ＨＤＤ２１やＵＳＢフラッシュメモリ２４Ａから主メモリ１３にロードされたＯＳが実行（起動）される。
【００７３】
以上説明したように、本実施形態によれば、利便性を損なうことなく起動時間を短縮できる。ＢＩＯＳ起動プログラム４０は、初回起動時に検出されたデバイス情報１９Ａを不揮発性メモリ１９に保存し、初回起動よりも後の起動では、不揮発性メモリ１９に保存されたデバイス情報１９Ａを用いて起動処理を実行する。これにより、起動時に利用できる機能を制限することなく、コンピュータ１の起動を高速化することができる。したがって、ユーザによる利便性が損なわれることはなく、また、起動時間を短縮するための特殊なモードを選択するといった操作がユーザに要求されることもない。
【００７４】
なお、本実施形態のＢＩＯＳ起動処理の手順は全てソフトウェアによって実行することができる。このため、ＢＩＯＳ起動処理の手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００７５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７６】
１９…不揮発性メモリ、１９Ａ…デバイス情報、１９Ｂ…リソース情報、１９Ｃ…バッテリ情報、１９Ｄ…ディスプレイ情報、２５…ＥＣ／ＫＢＣ、４０…ＢＩＯＳ起動プログラム、４１…起動判定部、４２…デバイス検出部、４３…デバイス情報検出部、４４…情報ライト部、４５…コンフィグレーション部、４６…情報リード部、４７…セットアップ部。
【図１】
2013101710.tif 000003
【図２】
2013101710.tif 000004
【図３】
2013101710.tif 000005
【図４】
2013101710.tif 000006
【図５】
2013101710.tif 000007
【図６】
2013101710.tif 000008
【図７】
2013101710.tif 000009
【図８】
2013101710.tif 000010
【図９】
2013101710.tif 000011