(57)【要約】      （修正有）【課題】情報処理装置が備えるデバイスが使用できなくなることなく、情報処理装置の起動時間を短縮できる起動制御装置を提供する。【解決手段】デバイス２１〜２４に関する識別子と前記デバイス２１〜２４の初期化に関する設定値とを関連付けて記憶し、情報処理装置２の電源が投入され、接続されている一つ以上の前記デバイス２１〜２４を検出すると、検出されたデバイス２１〜２４の中から、デバイスの識別子に関連付けられている設定値に基づき選択されたデバイス２１〜２４を、情報処理装置２がデバイスにアクセスできる有効状態にし、選択デバイス以外の検出されたデバイス２１〜２４を、デバイスにアクセスできない無効状態にし、選択デバイス２１〜２４に対して初期化処理が終了すると、無効状態であるデバイス２１〜２４を有効状態にする。【選択図】図１
2015172807.tif 000002
【特許請求の範囲】
【請求項１】
デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて記憶する対象記憶手段と、
情報処理装置の電源が投入されると、当該情報処理装置に接続されている一つ以上の前記デバイスを検出する検出手段と、
検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置が前記デバイスにアクセスできない無効状態にする設定手段と、
前記選択デバイスに対して初期化処理を行う初期化手段による前記初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする起動手段と、
を備える起動制御装置。
【請求項２】
前記起動手段は、前記無効状態である前記デバイスを前記有効状態にしてから、前記情報処理装置のオペレーティングシステムを起動する
請求項１に記載の起動制御装置。
【請求項３】
前記対象記憶手段は、さらに、前記識別子と優先順位とを関連付けて記憶し、
前記設定手段は、前記設定値に基づき選択された前記デバイスにおいて、前記識別子に関連付けられている前記優先順位が高い、所定個数の前記デバイスを、前記選択デバイスとして選択し、
前記起動手段は、前記選択デバイスにおいて、前記オペレーティングシステムを読み出す前記起動元デバイスを特定し、特定された前記起動元デバイスから前記オペレーティングシステムを起動し、
前記オペレーティングシステムの起動が失敗した場合、前記設定手段は、前記オペレーティングシステムの起動が失敗した前記選択デバイス以外の、前記設定値に基づき選択された前記デバイスにおいて、前記識別子に関連付けられている前記優先順位が最も高い前記デバイスを、新たに前記選択デバイスとして選択する
請求項２に記載の起動制御装置。
【請求項４】
前記デバイスと、請求項１乃至３のいずれかに記載の起動制御装置と、を備える前記情報処理装置。
【請求項５】
デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて対象記憶手段に記憶し、
情報処理装置の電源が投入されると、当該情報処理装置に接続されている一つ以上の前記デバイスを検出し、
検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置が前記デバイスにアクセスできない無効状態にし、
前記選択デバイスに対する初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする、
起動制御方法。
【請求項６】
前記無効状態である前記デバイスを前記有効状態にしてから、前記情報処理装置のオペレーティングシステムを起動する
請求項５に記載の起動制御方法。
【請求項７】
さらに、前記識別子と優先順位とを関連付けて前記対象記憶手段に記憶し、
前記設定値に基づき選択された前記デバイスにおいて、前記識別子に関連付けられている前記優先順位が高い、所定個数の前記デバイスを、前記選択デバイスとして選択し、
前記選択デバイスにおいて、前記オペレーティングシステムを読み出す前記起動元デバイスを特定し、特定された前記起動元デバイスから前記オペレーティングシステムを起動し、
前記オペレーティングシステムの起動が失敗した場合、前記オペレーティングシステムの起動が失敗した前記選択デバイス以外の、前記設定値に基づき選択された前記デバイスにおいて、前記識別子に関連付けられている前記優先順位が最も高い前記デバイスを、新たに前記選択デバイスとして選択する
請求項６に記載の起動制御方法。
【請求項８】
コンピュータを、
デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて記憶する対象記憶手段と、
情報処理装置の電源が投入されると、当該情報処理装置に接続されている一つ以上の前記デバイスを検出する検出手段と、
検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置が前記デバイスにアクセスできない無効状態にする設定手段と、
前記選択デバイスに対して初期化処理を行う初期化手段による前記初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする起動手段と、
して動作させる起動制御プログラム。
【請求項９】
コンピュータを、
前記無効状態である前記デバイスを前記有効状態にしてから、前記情報処理装置のオペレーティングシステムを起動する前記起動手段と、
して動作させる請求項８に記載の起動制御プログラム。
【請求項１０】
コンピュータを、
さらに、前記識別子と優先順位とを関連付けて記憶する前記対象記憶手段と、
前記設定値に基づき選択された前記デバイスにおいて、前記識別子に関連付けられている前記優先順位が高い、所定個数の前記デバイスを、前記選択デバイスとして選択する前記設定手段と、
前記選択デバイスにおいて、前記オペレーティングシステムを読み出す前記起動元デバイスを特定し、特定された前記起動元デバイスから前記オペレーティングシステムを起動する前記起動手段と、
前記オペレーティングシステムの起動が失敗した場合、前記オペレーティングシステムの起動が失敗した前記選択デバイス以外の、前記設定値に基づき選択された前記デバイスにおいて、前記識別子に関連付けられている前記優先順位が最も高い前記デバイスを、新たに前記選択デバイスとして選択する前記設定手段と、
して動作させる請求項９に記載の起動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の起動を制御する技術に関する。
【背景技術】
【０００２】
情報処理装置に接続されているデバイスの一部を使用しないことにより、その情報処理装置の起動時間を短縮する技術の一例が、特許文献１に記載されている。
【０００３】
特許文献１に記載されている情報処理装置は、電源投入の方法に関連付けて、使用しないデバイスを記憶する。電源投入の方法は、例えば、特定のボタンが押下されることや、特定の信号を受信することなどである。そして、その情報処理装置は、電源投入の方法に応じて特定される、使用しないデバイスを、認識せずに起動する。情報処理装置は、起動以降の動作において、使用しないデバイスが起動時から存在しない場合と同じ動作を行う。すなわち、情報処理装置は、使用しないデバイスの初期化を行わない。また、情報処理装置にいて動作するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、使用しないデバイスのドライバをロードしない。このことにより、情報処理装置の起動時間は短縮される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２１５８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されている技術によって情報処理装置の起動時間を短縮する場合、情報処理装置が備える少なくとも一部のデバイスを、起動後に使用することができない。
【０００６】
本発明の目的の一つは、情報処理装置が備えるデバイスが使用できなくなることなく、情報処理装置の起動時間を短縮できる起動制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の起動制御装置は、デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて記憶する対象記憶手段と、情報処理装置の電源が投入されると、当該情報処理装置に接続されている一つ以上の前記デバイスを検出する検出手段と、検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置が前記デバイスにアクセスできない無効状態にする設定手段と、前記選択デバイスに対して初期化処理を行う初期化手段による前記初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする起動手段と、を備える。
【０００８】
本発明の起動制御方法は、デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて対象記憶手段に記憶し、情報処理装置の電源が投入されると、当該情報処理装置に接続されている一つ以上の前記デバイスを検出し、検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置が前記デバイスにアクセスできない無効状態にし、前記選択デバイスに対する初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする。
【０００９】
本発明の起動制御プログラムは、コンピュータを、デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて記憶する対象記憶手段と、情報処理装置の電源が投入されると、当該情報処理装置に接続されている一つ以上の前記デバイスを検出する検出手段と、検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置が前記デバイスにアクセスできない無効状態にする設定手段と、前記選択デバイスに対して初期化処理を行う初期化手段による前記初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする起動手段と、して動作させる。
【発明の効果】
【００１０】
本発明には、情報処理装置が備えるデバイスが使用できなくなることなく、情報処理装置の起動時間を短縮できるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１、第２の実施形態の情報処理システム３の構成を表すブロック図である。
【図２】図２は、各実施形態の情報処理システム３に含まれる装置間の接続の例を表す模式図である。
【図３】図３は、第１の実施形態の起動制御装置１の動作を表すフローチャートである。
【図４】図４は、対象記憶部１１に格納されているデバイス識別子と設定値の例を表す図である。
【図５】図５は、選択デバイス以外の検出されたデバイスが無効状態にされた状態における、情報処理システム３に含まれる装置間の接続の第１の例を表す模式図である。
【図６】図６は、第２の実施形態の起動制御装置１の動作を表すフローチャートである。
【図７】図７は、第２の実施形態の対象記憶部１１が記憶する、デバイス識別子と設定値の第１の例を表す図である。
【図８】図８は、第２の実施形態の対象記憶部１１が記憶する、デバイス識別子と設定値の第２の例を表す図である。
【図９】図９は、選択デバイス以外の検出されたデバイスが無効状態にされた状態における、情報処理システム３に含まれる装置間の接続の第２の例を表す模式図である。
【図１０】図１０は、第１の実装例における情報処理装置１００のハードウェア構成の例を表す模式図である。
【図１１】図１１は、第１の実装例のＮＶＲＡＭ１５０に格納されている、デバイス識別子と設定値の例を表す図である。
【図１２】図１２は、第１の実装例において、設定値が入力される画面の例を表す模式図である。
【図１３】図１３は、第１の実装例の情報処理装置１００における、ＰＣＩｅリンクの接続状態の例を表す模式図である。
【図１４】図１４は、第２、第３の実装例における情報処理装置２００のハードウェア構成の例を表す模式図である。
【図１５】図１５は、第２の実装例のＮＶＲＡＭ１５０に格納されている、デバイス識別子と設定値の例を表す図である。
【図１６】図１６は、第２の実装例において、設定値が入力される画面の例を表す模式図である。
【図１７】図１７は、第２の実装例の情報処理装置２００における、ＵＳＢポートの状態の例を表す模式図である。
【図１８】図１８は、第３の実装例において、対象記憶部１１として動作するＮＶＲＡＭ１５０に格納されている、デバイス識別子と設定値の例を表す図である。
【図１９】図１９は、第３の実装例において、ＵＳＢブート優先度設定が設定される画面の例を表す模式図である。
【図２０】図２０は、第３の実施形態の起動制御装置１Ａの構成を表す図である。
【図２１】図２１は、起動制御装置１、及び起動制御装置１Ａを実現することができる、コンピュータ１０００の構成の一例を表す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１３】
（第１の実施形態）
本発明の第１の実施形態について図面を参照して詳細に説明する。
【００１４】
図１は、本実施形態の情報処理システム３の構成を表すブロック図である。図１を参照すると、情報処理システム３は、情報処理装置２と、記憶装置３１と、記憶装置３２とを含む。記憶装置３１及び記憶装置３２は、情報処理装置２に接続されている。記憶装置３１及び記憶装置３２は、情報処理装置２に含まれていてもよい。情報処理装置２は、ネットワーク４に接続されていてもよい。
【００１５】
情報処理装置２は、起動制御装置１と、処理部２０とを含む。処理部２０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。情報処理装置２には、デバイス２１、デバイス２２、デバイス２３、及びデバイス２４が接続されている。図１に示す例では、デバイスの数は４個であるが、デバイスの数は４個に限られない。
【００１６】
デバイス２１、デバイス２２、デバイス２３、及びデバイス２４は、図１に示す例のように、それぞれ、情報処理装置２に含まれる形で、情報処理装置２に接続されていてもよい。デバイス２１、デバイス２２、デバイス２３、及びデバイス２４は、それぞれ、情報処理装置２に含まれない形で、情報処理装置２に接続されていてもよい。情報処理装置２に含まれるデバイスと、情報処理装置２に含まれないデバイスが混在していてもよい。デバイス２１、デバイス２２、デバイス２３、及びデバイス２４は、情報処理装置２から取り外せるように、通信可能に接続されていてもよい。デバイス２１、デバイス２２、デバイス２３、及びデバイス２４は、情報処理装置２から取り外せないように接続されていてもよい。情報処理装置２から取り外せるデバイスと取り外せないデバイスが混在していてもよい。
【００１７】
各デバイスは、例えば、インタフェースカードや通信ポートである。デバイスは、例えば、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）スロットに装着されたインタフェースカードであってもよい。インタフェースカードは、例えば、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））インタフェースカードや、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。デバイスは、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートであってもよい。全てのデバイスが同じ種類のデバイスでなくてもよい。例えば、デバイスに、複数の種類のデバイスが含まれていてもよい。図１に示す例では、記憶装置３１は、デバイス２１を介して、情報処理装置２に接続されている。記憶装置３２は、デバイス２３を介して、情報処理装置２に接続されている。
【００１８】
記憶装置３１及び記憶装置３２は、ハードディスクドライブや、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置である。
【００１９】
起動制御装置１は、各デバイスに接続されている。処理部２０は、各デバイスに接続されている。処理部２０は、起動制御装置１を介して、各デバイスに接続されていてもよい。図１において、簡略化のため、起動制御装置１及び処理部２０が、デバイスのグループに接続されるように描かれている。
【００２０】
図２は、情報処理システム３に含まれる装置の間における接続の例を表す模式図である。図２に示す例では、処理部２０は、起動制御装置１を介して、各デバイスに接続されている。記憶装置３１は、情報処理装置２に含まれる。そして、記憶装置３１は、デバイス２１に接続されている。処理部２０は、起動制御装置１とデバイス２１とを介して、記憶装置３１にアクセスすることができる。記憶装置３２は、デバイス２３を介して、情報処理装置２に接続されている。
【００２１】
起動制御装置１は、対象記憶部１１と、検出部１２と、設定部１３と、初期化部１４と、起動部１５とを含む。
【００２２】
対象記憶部１１は、デバイスに関する識別子であるデバイス識別子と、そのデバイスの初期化に関する設定値とを関連付けて記憶する。
【００２３】
検出部１２は、情報処理装置２の電源が投入されると、情報処理装置２に接続されている一つ以上のデバイスを検出する。
【００２４】
設定部１３は、検出されたデバイスの中から、そのデバイスのデバイス識別子に関連付けられている設定値に基づき、一つ以上のデバイスを選択する。そして、設定部１３は、選択されたデバイスである選択デバイスを、情報処理装置２が前記デバイスにアクセスできる有効状態にする。また、設定部１３は、選択デバイス以外の検出されたデバイスを、情報処理装置２がデバイスにアクセスできない無効状態にする。
【００２５】
初期化部１４は、選択デバイスの初期化処理を実行する。
【００２６】
起動部１５は、初期化処理が終了すると、無効状態であるデバイスを有効状態にする。そして、起動部１５は、無効状態である各デバイスを有効状態にした後、情報処理装置２のＯＳを起動する。
【００２７】
次に、本実施形態の起動制御装置１の動作について、図面を参照して詳細に説明する。
【００２８】
図３は、本実施形態の起動制御装置１の動作を表すフローチャートである。起動制御装置１は、情報処理装置２の電源が投入されると、図３の動作を開始する。
【００２９】
図３を参照すると、まず、検出部１２が、情報処理装置２に取り付けられているデバイスを検出する（ステップＳ１０１）。検出部１２は、さらに、検出されたデバイスと通信が可能なように設定を行ってもよい。例えば、デバイスがＰＣＩｅによって接続されている場合、検出部１２は、例えば、検出されたデバイスに対してリンクを確立してもよい。
【００３０】
図３の動作が、ＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理の一部として行われる場合、ステップＳ１０１において、検出部１２は、ＰＯＳＴ処理において検出される全てのデバイスを検出すればよい。図３の動作が、ＰＯＳＴ処理とは別に行われる場合、検出部１２は、対象記憶部１１にデバイス識別子が格納されていないデバイスの検出を行わなくてもよい。
【００３１】
設定部１３は、検出されたデバイスのデバイス識別子に関連付けられている設定値を読み出し、読み出された設定値に基づき、検出されたデバイスから選択デバイスを選択する（ステップＳ１０２）。
【００３２】
図４は、対象記憶部１１に格納されているデバイス識別子と設定値の例を表す図である。例えば、情報処理システム３の管理者が、互いに関連付けられたデバイス識別子と設定値とを、あらかじめ対象記憶部１１に格納しておけばよい。デバイス識別子は、デバイスを特定する識別子であってもよい。デバイス識別子は、例えば、デバイスが接続されているスロットやポートを特定する識別子であってもよい。デバイス識別子は、例えば、デバイスが接続されているＰＣＩｅスロットを特定する識別子であってもよい。そして、デバイスは、そのデバイスが接続されているスロットやポートを特定する識別子によって特定されてもよい。
【００３３】
設定値は、例えば、Ｅｎａｂｌｅｄ又はＤｉｓａｂｌｅｄである。図４において、デバイス識別子に関連付けられている設定値がＥｎａｂｌｅｄであるデバイスは、例えば、情報処理装置２のＯＳがブートを開始する前に初期化が行われる必要があるデバイスである。情報処理装置２のＯＳがブートを開始する前に初期化が行われる必要があるデバイスは、例えば、情報処理装置２のＯＳが格納されている記憶装置が接続されているインタフェースである。図４において、値がＤｉｓａｂｌｅｄである設定値にデバイス識別子が関連付けられているデバイスは、例えば、情報処理装置２のＯＳがブートを開始する前に初期化が行われる必要がないデバイスである。Ｅｎａｂｌｅｄ及びＤｉｓａｂｌｅｄは、互いに異なる、あらかじめ定められた値を表す。図４に示す例において、設定部１３は、例えばデバイス識別子に関連付けられている設定値がＥｎａｂｌｅｄであるデバイスを選択デバイスとして選択する。
【００３４】
デバイスは、情報処理装置２の電源が投入されてから情報処理装置２のＯＳの起動が開始する（すなわち、ＯＳがブートする）までの間に実行されることにより、デバイスの初期化を行うファームウェアを備えていてもよい。そのようなファームウェアは、オプションＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と呼ばれることもある。以下の説明において、そのようなファームウェアを、オプションＲＯＭと表記する。また、デバイスが備えるファームウェアを処理部２０や他のプロセッサに実行させることを、「オプションＲＯＭを実行する」あるいは「オプションＲＯＭを起動する」と表記する。
【００３５】
一般に、オプションＲＯＭは、例えば、オプションＲＯＭを備えたデバイスが接続されている情報処理装置２の電源が投入されると、例えばその情報処理装置２のファームウェアによって呼び出されて実行される。オプションＲＯＭの呼び出しと実行は、例えば、情報処理装置２の電源が投入されてから、その情報処理装置２のＯＳがブートするまでの間に行われる。オプションＲＯＭが実行されることにより、そのオプションＲＯＭを備えるデバイスにおいて、そのデバイスに独自の初期化が行われる。デバイスに記憶装置が接続されている場合、そのデバイスが備えるオプションＲＯＭによって、例えば、そのデバイスに接続されている記憶装置が検出される。情報処理装置２のＯＳが格納されている記憶装置が接続されている場合、そのデバイスが備えるオプションＲＯＭによって、例えば、デバイスが備えるオプションＲＯＭによってＯＳが格納されている記憶装置が検出される。このことにより、その記憶装置に格納されているＯＳのブートが可能になる。
【００３６】
デバイスがＵＳＢポートである場合、例えば、情報処理装置２のＯＳが格納された記憶装置が接続されているＵＳＢポートのデバイス識別子に、Ｅｎａｂｌｅｄである設定値を関連付けられていればよい。この場合、さらに、入力装置が接続されているＵＳＢポートのデバイス識別子に、Ｅｎａｂｌｅｄである設定値を関連付けられていてもよい。入力装置は、例えば、キーボードなどである。入力装置又は情報処理装置２のＯＳが格納された記憶装置が接続されていないＵＳＢポート以外のＵＳＢポートのデバイス識別子には、Ｄｉｓａｂｌｅｄである設定値が関連付けられていればよい。
【００３７】
次に、設定部１３は、選択デバイスを有効状態にする。そして、設定部１３は、選択デバイス以外の、検出されたデバイスを無効状態にする（ステップＳ１０３）。有効状態は、例えば、情報処理装置２がデバイスにアクセスできる状態である。無効状態は、例えば、情報処理装置２がデバイスにアクセスできない状態である。
【００３８】
デバイスがＰＣＩｅによって情報処理装置２に接続されるデバイスである場合、設定部１３は、例えば、選択デバイスに対するＰＣＩｅリンクをリンクアップする。例えばステップＳ１０１や後述するステップＳ１０６において、各デバイスに対するＰＣＩｅリンクが既にリンクアップされているなら、設定部１３は、選択デバイスに対するＰＣＩｅリンクがリンクアップされている状態を維持すればよい。また、各デバイスに対するＰＣＩｅリンクが既にリンクアップされているなら、設定部１３は、例えば、選択デバイス以外の検出されたデバイスに対するＰＣＩｅリンクをリンクダウンする（すなわち、切断する）。選択デバイス以外の検出されたデバイスに対するＰＣＩｅリンクがリンクアップされていないなら、設定部１３は、選択デバイス以外の検出されたデバイスに対するＰＣＩｅリンクがリンクアップされていない状態を維持すればよい。本実施形態において、ＰＣＩｅリンクの切断及び接続（すなわち、リンクダウン及びリンクアップ）は、ＰＣＩｅの規格に基づいて行われる。
【００３９】
デバイスがＵＳＢポートである場合、設定部１３は、ポート毎に個別に、ＵＳＢポートを一時的に無効に設定する機能を備えていればよい。そして、設定部１３は、選択デバイスであるＵＳＢポートが有効に設定された状態を保てばよい。さらに、設定部１３は、選択デバイス以外の、検出されたデバイスであるＵＳＢポートを、無効に設定すればよい。
【００４０】
図５は、選択デバイス以外の検出されたデバイスが無効状態にされた状態における、情報処理システム３に含まれる装置間の接続の第１の例を表す模式図である。図５において、破線によって起動制御装置１と接続されているデバイスは、無効状態に設定されたデバイスである。設定値が図４に示す例のように設定されている場合、設定部１３は、選択デバイスとして、デバイス２１を選択する。そして、設定部１３は、設定値がＤｉｓａｂｌｅｄである、デバイス２１、デバイス２２、デバイス２３、及びデバイス２４を無効状態にする。
【００４１】
次に、初期化部１４が、選択デバイスの初期化処理を行う（ステップＳ１０４）。ステップＳ１０４における初期化処理は、たとえば、選択デバイスが備えるオプションＲＯＭによる、選択デバイスに独自の初期化である。初期化部１４は、選択デバイスが備えるオプションＲＯＭを実行することによって、ステップＳ１０４の動作を行えばよい。
【００４２】
選択デバイス以外の検出されたデバイスは無効状態であるので、初期化部１４は、選択デバイス以外の検出されたデバイスにアクセスできない。選択デバイス以外の検出されたデバイスがオプションＲＯＭを備えていても、初期化部１４は、選択デバイス以外の検出されたデバイスが備えるオプションＲＯＭを実行しない。
【００４３】
次に、起動部１５は、起動デバイスを特定する（ステップＳ１０５）。起動デバイスは、例えば、情報処理装置２のＯＳが格納されている記憶装置である。
【００４４】
例えば起動部１５が、あらかじめ起動デバイスの識別子である、起動デバイス識別子を記憶していればよい。その場合、起動部１５は、記憶する起動デバイス識別子によって、起動デバイスを特定すればよい。あるいは、起動部１５は、例えば、それぞれ優先順位が関連付けられた、複数の起動デバイス識別子を、あらかじめ記憶していてもよい。起動部１５がそれぞれ優先順位が関連付けられた複数の起動デバイス識別子を記憶している場合、起動部１５は、例えば、選択デバイスに接続されている、起動デバイス識別子に関連付けられている優先順位が最も高い起動デバイスを特定すればよい。そして、起動部１５は、特定された起動デバイスに基づき、ブートパスを生成する。すなわち、起動部１５は、制御部２０が起動デバイスにアクセスする際に、経由するデバイスの順番を特定する。
【００４５】
あるいは、例えば起動部１５が、あらかじめブートパスを記憶していてもよい。起動部１５は、優先順位が付与された複数のブートパスを、あらかじめ記憶していてもよい。例えば、優先順位が付与された複数のブートパスがあらかじめ起動部１５に設定されている場合、起動部１５は、選択デバイスを経由するブートパスのうち、最も高い優先順位が付与されているブートパスを特定する。
【００４６】
起動部１５ではなく、起動部１５が読み取り可能な記憶部（図示されない）が、起動デバイス識別子又はブートパスを記憶していてもよい。そして、起動部１５が、その記憶部から、起動デバイス識別子又はブートパスを読み出してもよい。
【００４７】
次に、起動部１５は、検出されたデバイスのうち、無効状態であるデバイスを、有効状態にする（ステップＳ１０６）。起動部１５は、例えば、対象記憶部１１から、各デバイスのデバイス識別子とそのデバイス識別子に関連付けられている設定値を読み出せばよい。そして、起動部１５は、デバイス識別子に関連付けられている設定値がＤｉｓａｂｌｅｄであるデバイスを、有効状態に設定すればよい。
【００４８】
デバイスがＰＣＩｅによって接続されるデバイスである場合、起動部１５は、デバイス識別子に関連付けられている設定値がＤｉｓａｂｌｅｄであるデバイスにおいて、ＰＣＩｅリンクをつなげばよい（すなわち、リンクアップすればよい）。デバイスがＵＳＢポートである場合、起動部１５は、デバイス識別子に関連付けられている設定値がＤｉｓａｂｌｅｄであるデバイス（すなわちＵＳＢポート）の設定を、無効から有効に変更すればよい。
【００４９】
起動部１５は、情報処理装置２のハードウェアやＯＳに応じた、情報処理装置２のＯＳが起動するために必要な処理や設定が存在するなら、その必要な処理や設定を行う。
【００５０】
次に、起動部１５は、情報処理装置２のＯＳを起動する（ステップＳ１０７）。ＯＳが起動すると、ＯＳが備えるドライバによって、情報処理装置２が備える各デバイスの初期化が行われる。ＯＳによるデバイスの初期化は、ＯＳが起動している情報処理装置２において、デバイスを使用可能な状態に設定する処理である。従って、ステップＳ１０４において初期化が行われていないデバイスであっても、ＯＳが起動すると、ＯＳによる初期化が行われることによって使用可能になる。
【００５１】
以上で説明した本実施形態には、情報処理装置２が備えるデバイスが使用できなくなることなく、情報処理装置２の起動時間を短縮できるという第１の効果がある。
【００５２】
その理由は、設定部１３が、デバイスの初期化が行われる前に、ＯＳが起動する前に初期化が行われる必要がないデバイスを無効状態に設定するからである。そして、起動部１５が、初期化部１４によるデバイスの初期化が行われた後、ＯＳが起動される前に、無効状態に設定されているデバイスを有効状態に設定するからである。無効状態に設定されたデバイスの対する初期化は行われない。従って、無効状態に設定されているデバイスに対する初期化処理が不要になる。一方、設定部１３は、ＯＳが起動するために初期化が必要なデバイスを有効状態に保つ。そして、有効状態に保たれているデバイスに対して、初期化部１４によってデバイスの初期化が行われる。従って、ＯＳの起動は可能である。そして、起動部１５が、無効状態に設定されているデバイスを、ＯＳが起動される前に、有効状態に設定する。従って、無効状態に設定されているデバイスに対する、ＯＳによる初期化は行われる。従って、ＯＳが起動された後、初期化部１４による初期化が行われないデバイスの使用が可能になる。
【００５３】
本実施形態には、さらに、デバイスが備えるファームウェアによる初期化が失敗するリスクを低減することができるという第２の効果がある。そのような初期化の失敗は、例えば、デバイスのベンダが想定しない状態で、デバイスが情報処理装置２に搭載されることが原因で発生する。
【００５４】
第２の効果が生じる理由は、第１の効果の理由と同様に、設定部１３が、デバイスの初期化が行われる前に、ＯＳが起動する前に初期化が行われる必要がないデバイスを無効状態に設定するからである。
【００５５】
以下の説明において、デバイスのベンダが想定しない状態で、デバイスが情報処理装置２に搭載されることに起因する、デバイスが備えるファームウェアによる初期化において発生するエラーを、想定外初期化エラーと表記する。想定外初期化エラーが発生する状況として、例えば、情報処理装置２に搭載されているあるデバイスの個数が、そのデバイスのベンダが想定する個数と異なる状況が考えられる。具体的には、あるデバイスのファームウェアによってサポートされる個数を上回る個数のそのデバイスが、情報処理装置２に搭載されている状況が考えられる。そのような状況で、そのデバイスのファームウェアによる初期化において、ファームウェアが正常に動作しなければ、上述の想定外初期化エラーが発生する。
【００５６】
しかし、情報処理装置２のＯＳが起動できる最低限のデバイスのみが情報処理装置２に接続されている状況は、通常、そのデバイスのベンダによって想定される。そして、そのデバイスのベンダは、通常、想定された状態において、デバイスのファームウェアによる初期化においてエラーが発生しないように、ファームウェアを作成する。従って、情報処理装置２のＯＳが起動する最低限のデバイスのみが情報処理装置２に接続されている状況において、通常、上述の想定外初期化エラーは発生しない。そして、本実施形態の設定部１３によって、情報処理装置２のＯＳが起動されるのに必要なデバイス以外のデバイスが無効状態に設定されている状況は、情報処理装置２のＯＳが起動する最低限のデバイスのみが情報処理装置２に接続されている状況と同等である。
【００５７】
上述のように、設定部１３は、情報処理装置２のＯＳが起動するために不要なデバイスを無効状態に設定する。そのため情報処理装置２に搭載されているデバイスの状況が、想定外初期化エラーが発生する状況であっても、想定外初期化エラーが通常発生しない状況になる。従って、想定外初期化エラーが発生するリスクは減少する。不要なデバイスを無効状態に設定するための設定は、対象記憶部１１に格納される設定値を、あらかじめ適宜設定しておくことによって行われる。なお、対象記憶部１１に格納されている設定値は、必ずしも、情報処理装置２のＯＳが起動されるのに必要なデバイス以外の全てのデバイスが無効状態になるように設定されていなくてもよい。対象記憶部１１に格納されている設定値は、情報処理装置２のＯＳが起動でき、かつ、想定外初期化エラーが発生しないよう、あらかじめ設定されていればよい。設定部１３は、そのような設定に従って、デバイスを無効状態に設定すればよい。
【００５８】
ところで、例えばＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）の設定によって、デバイスが備えるファームウェアによる初期化が実行されるか否かを選択する方法も考えられる。しかし、ファームウェアが実行されると、ＢＩＯＳの設定によらず、そのファームウェアを備えるデバイスと同じ又は同じ種類の、情報処理装置２に搭載されている他のデバイスに対する初期化を行うファームウェアも存在する。デバイスがそのようなファームウェアを備える場合、その種類のデバイスのうち少なくとも１個のデバイスにおいてファームウェアによる初期化が実行されると、前述のＢＩＯＳの設定によって、上述のエラーを防ぐことはできない。一方、本実施形態では、そのデバイスが無効状態に設定されるとそのデバイスに対してアクセスできない。従って、本実施形態では、デバイスが上述のようなファームウェアを備える場合であっても、デバイスのベンダが想定する個数のデバイスに対してのみ初期化が実行されるように設定値をあらかじめ設定しておくことによって、上述のエラーは発生しない。
【００５９】
また、上述の想定外初期化エラーが発生する構成を備える情報処理システムを、製品として出荷しなければならない場合が考えられる。さらに、想定外初期化エラーによって、ＯＳが起動する前に情報処理システムが停止する場合がある。そのような場合、その情報処理システムに搭載されるデバイスのファームウェアを、想定外初期化エラーが発生しないよう修正する必要がある。そして、想定外初期化エラーによる情報処理システムの停止を回避できなければ、想定外初期化エラーが発生するデバイスのベンダによる、ファームウェアの修正が完了するまで、情報処理システムのテストを行うことはできない。しかし、上述のように、本実施形態では、想定外初期化エラーの発生を回避することができるので、ＯＳを起動することができる。従って、ファームウェアの修正が完了する前に、情報処理システムの運用テスト等の情報処理システムを動作させて行うテストを開始することができる。そのため、本実施形態では、製品を出荷するまでの時間を短縮することができる。そして、それにより、情報処理システムを構築するために必要なコストを削減することができる。
【００６０】
（第２の実施形態）
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００６１】
図１は、本実施形態の情報処理システム３の構成を表すブロック図である。本実施形態の情報処理システム３の構成は、第１の実施形態の情報処理システムの構成と同じである。
【００６２】
本実施形態の対象記憶部１１は、設定値に加えて、デバイスの優先順位を、デバイス識別子に関連付けて記憶する。対象記憶部１１は、デバイス識別子に関連付けられた設定値として、デバイスの優先順位を記憶してもよい。
【００６３】
設定部１３は、デバイス識別子に関連付けられている設定値に基づき、デバイスを選択する。設定部１３は、さらに、設定値に基づき選択されたデバイスにおいて、関連付けられている優先順位が高い所定個数のデバイスを、選択デバイスとして選択する。
【００６４】
起動部１５は、選択デバイスにおいて、情報処理装置２のＯＳを読み出す起動元デバイスを特定する。そして、起動部１５は、特定された起動元デバイスからＯＳを起動する。
【００６５】
ＯＳの起動が失敗した場合、設定部１３は、ＯＳの起動が失敗したデバイスを除く、設定値に基づき選択されたデバイスにおいて、デバイス識別子に関連付けられてい記優先順位が最も高いデバイスを、新たに選択デバイスとして選択する。
【００６６】
起動部１５は、新たに選択された選択デバイスにおいて起動元デバイスを特定し、特定された起動元デバイスからＯＳを起動する。
【００６７】
本実施形態の各構成要素は、他の点において、第１の実施形態における、同じ符号が付与された構成要素と同じである。
【００６８】
次に、本実施形態の起動制御装置１の動作について、図面を参照して詳細に説明する。
【００６９】
図６は、本実施形態の起動制御装置１の動作を表すフローチャートである。図６に示すステップＳ１０１と、ステップＳ１０３からステップＳ１０７までの各ステップは、以下で説明する点を除き、図１において同じ符号が付与されているステップと同じである。
【００７０】
ステップＳ１０１の動作の後、設定部１３は、検出部１２がステップＳ１０１において検出したデバイスのデバイス識別子に設定値として関連付けられている優先順位を、対象記憶部１１から読み出す。そして、設定部１３は、例えば、最も高い優先順位にデバイス識別子が関連付けられているデバイスを、選択デバイスとして選択する（ステップＳ２０２）。
【００７１】
図７は、本実施形態の対象記憶部１１が記憶する、デバイス識別子と設定値の第１の例を表す図である。そして、デバイス識別子に関連付けられている設定値が、そのデバイス識別子によって特定されるデバイスに付与されている優先順位を表す。そして、図７に示す例では、設定値の値が小さいほど、優先順位が高い。また、図７に示す例において、値がＤｉｓａｂｌｅｄである設定値は、その設定値が付与されているデバイスに優先順位が付与されていないことを表す。なお、同じ優先順位が、設定値として複数のデバイスのデバイス識別子に関連付けられていてもよい。複数のデバイスに最も高い優先順位が付与されている場合、設定値は、最も高い優先順位が付与されている複数のデバイスを選択デバイスとして選択すればよい。
【００７２】
図７に示す例では、値がＤｉｓａｂｌｅｄ以外である設定値が、第１の実施形態において値がＥｎａｂｌｅｄである設定値に相当する。すなわち、デバイスに図７に示す設定値が付与されている場合、設定部１３は、Ｄｉｓａｂｌｅｄ以外の設定値にデバイス識別子が関連付けられているデバイスを、まず選択すればよい。そして、設定部１３は、Ｄｉｓａｂｌｅｄ以外の設定値にデバイス識別子が関連付けられているデバイスから、設定値によって表される優先順位が最も高いデバイス２１を、選択デバイスとして選択すればよい。設定値がＥｎａｌｂｅｄであるデバイスが存在する場合、設定部１３は、さらに、そのデバイスを選択デバイスとして選択すればよい。
【００７３】
図８は、本実施形態の対象記憶部１１が記憶する、デバイス識別子と設定値の第２の例を表す図である。図８に示す例では、デバイス識別子に、設定値及び優先順位が関連付けられている。図８に示す例のように、デバイス識別子に設定値及び優先順位が関連付けられている場合、設定部１３は、まず、デバイス識別子に値がＥｎａｌｂｅｄである設定値が関連付けられているデバイスを選択する。そして、設定部１３は、選択されたデバイスから、デバイス識別子に関連付けられている優先順位が最も高いデバイスを、選択デバイスとして選択する。
【００７４】
そして、起動制御装置１は、ステップＳ１０３からステップＳ１０７までの動作を行う。
【００７５】
例えば、図２に示す構成を備える情報処理装置２において、図７に示すデバイス識別子及び設定値が対象記憶部１１に格納されている場合、設定部１３は、選択デバイスとして、上述のようにデバイス２１が選択する。そして、設定部１３は、デバイス２１を有効状態に設定する。さらに、設定部１３は、デバイス２２からデバイス２４を無効状態に設定する。図５は、デバイス２１が有効状態に設定され、デバイス２２からデバイス２４が無効状態に設定された、情報処理装置２の構成を表す。
【００７６】
なお、本実施形態の起動部１５は、例えば１個以上の、起動デバイス識別子を記憶していてもよい。そして、起動部１５は、選択デバイスに接続されているデバイスを検出してもよい。起動部１５は、選択デバイスに接続されているデバイスの中から、識別子が起動デバイス識別子として記憶されている起動デバイスを特定してもよい。そして、起動部１５は、特定された起動デバイスに基づき、ブートパスを生成してもよい。あるいは、本実施形態の起動部１５は、例えば１個以上の、ブートパスを記憶していてもよい。そして、起動部１５は、記憶されているブートパスの中から、選択デバイスを含むブートパスを特定してもよい。あるいは、本実施形態の起動部１５は、選択デバイスに接続されているデバイスの中から、ＯＳの起動が可能なデバイスを起動デバイスとして検出してもよい。そして、起動部１５は、選択デバイスと検出され起動デバイスとに基づき、ブートパスを生成してもよい。
【００７７】
選択デバイスにたいして複数のブートパスが存在する場合、起動部１５は、例えば、起動デバイスあるいはブートパスにあらかじめ付与されている順番に応じて、ブートパスの順番を決めればよい。その場合、起動部１５がその順番を記憶していればよい。起動部１５は、他の方法によってブートパスの順番を決めてもよい。
【００７８】
ステップＳ１０７において、起動部１５は、特定されたブートパスからのＯＳの起動を試みる。複数のブートパスが存在する場合、起動部１５は、決められた順番に従って、順にブートパスを選択する。そして、起動部１５は、選択されたブートパスからのＯＳの起動を試みればよい。
【００７９】
ステップＳ１０７において起動部１５によって行われたＯＳの起動が成功した場合（ステップＳ２０８においてＹｅｓ）、すなわち、いずれかのブートパスからＯＳが起動した場合、起動制御装置１の動作は終了する。
【００８０】
ステップＳ１０７において起動部１５によって行われたＯＳの起動が失敗した場合（ステップＳ２０８においてＮｏ）、すなわち、いずれのブートパスにおいてもＯＳが起動しなかった場合、起動制御装置１の動作はステップＳ２０９に進む。
【００８１】
そして、設定部１３は、ＯＳの起動が失敗した選択デバイスを、新しく選択デバイスが選択される対象のデバイスから除外する（ステップＳ２０９）。
【００８２】
例えば、情報処理装置２が、図７に示すデバイス識別子と設定値に基づき選択されたデバイス２１からＯＳを起動できなかった場合、設定部１３は、デバイス２１を無効状態にする。そして、設定部１３は、デバイス２１を、選択デバイスが選択されるデバイスから除外する。
【００８３】
そして、起動制御装置１の動作は、ステップＳ２０２に戻る。ステップＳ２０２では、設定部１３は、ステップＳ１０７においてＯＳの起動が失敗したデバイスを除くデバイスから、新しく選択デバイスを選択する。設定部１３は、ステップＳ１０７においてＯＳの起動が失敗したデバイスを除く、優先順位が設定されているデバイスから、優先順位が最も高いデバイスを、新しい選択デバイスとして選択すればよい。
【００８４】
例えば、対象記憶部１１に図７に示すデバイス識別子と設定値が格納され、かつ、デバイス２１からＯＳを起動できなかった場合、デバイス２１は、選択デバイスが選択されるデバイスから除隊されている。従って、設定部１３は、デバイス２１を除くデバイスの中で、優先順位が最も高いデバイス２３を、新しい選択デバイスとして選択する。
【００８５】
図９は、選択デバイス以外の検出されたデバイスが無効状態にされた状態における、情報処理システム３に含まれる装置間の接続の第２の例を表す模式図である。図２に示す構成を備える情報処理装置２において、デバイス２３が選択デバイスとして選択されると、図９に示すように、設定部１３は、デバイス２３を有効状態にする。そして、設定部１３は、デバイス２１、デバイス２２、デバイス２４を無効状態に設定する。そして、起動部１５は、デバイス２３に接続されている記憶装置からＯＳの起動を試みる。
【００８６】
起動制御装置１は、ＯＳの起動が成功するまで、以上の動作を繰り返せばよい。優先順位が設定されている全てのデバイスにおいて特定された全ての起動デバイスにおいて、ＯＳの起動が失敗した場合、起動制御装置１は、例えば、情報処理装置２が備える表示装置（図示されない）に、エラーメッセージを表示し、動作を終了すればよい。
【００８７】
以上で説明した本実施形態には、本発明の第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【００８８】
また、メインＯＳが格納されている記憶装置が接続されているデバイスとサブＯＳが格納されている記憶装置が接続されているデバイスの双方が情報処理装置２に搭載されている場合、前述の想定外初期化エラーが生じる場合がある。
【００８９】
本実施形態には、そのような場合であっても、情報処理装置２がメインのＯＳを起動できない場合、サブＯＳを起動できるという効果がある。
【００９０】
その理由は、設定部１３が、デバイスの初期化が行われる前に、ＯＳが起動する前に初期化が行われる必要がないデバイスを無効状態に設定するからである。そして、ＯＳの起動に失敗した場合、設定部１３が、ＯＳの起動に失敗した選択デバイス以外のデバイスを選択デバイスとして選択するからである。
【００９１】
＜第１の実装例＞
次に、本実施形態の第１の実装例について、図面を参照して詳細に説明する。本実装例は、第１の実施形態に基づく実装例である。
【００９２】
図１０は、本実装例における情報処理装置１００のハードウェア構成の例を表す模式図である。情報処理装置１００は、第１の実施形態に係る情報処理装置２の、具体的なハードウェア構成を模式的に表す。
【００９３】
図１０を参照すると、情報処理装置１００は、ＣＰＵ１１０と、コントローラ１２０と、メモリ１３０と、チップセット１４０と、ＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５０と、ＰＣＩｅインタフェース１８０と、ＳＡＳ  Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１６０〜１６２と、ＮＩＣ１６３とを備える。ＳＡＳ  Ｉ／Ｆ１６０には、記憶装置１７０が接続されている。記憶装置１７０は、情報処理装置１００の筐体に含まれる。ＳＡＳ  Ｉ／Ｆ１６２には、記憶装置１７１が接続されている。記憶装置１７１は、情報処理装置１００の筐体の外に配置される。記憶装置１７０及び記憶装置１７１は、ハードディスクドライブや、ＳＳＤ等の記憶装置である。メモリ１３０は、複数のメモリモジュールによって実現されていてもよい。チップセット１４０は、各種インタフェースを持つ。ＮＶＲＡＭ１５０には、ＣＰＵ１１０により実行されるＢＩＯＳの実行コードや、コンピュータの設定情報が格納される。記憶装置１７０には、情報処理装置１００のＯＳがインストールされている。記憶装置１７１は、データ保存に使用される。記憶装置１７１には、情報処理装置１００のＯＳはインストールされていない。
【００９４】
ＣＰＵ１１０は、チップセット１４０を介して、ＮＶＲＡＭ１５０からＢＩＯＳのコードを読み出す。ＣＰＵ１１０は、読み出されたＢＩＯＳのコードを、メモリコントローラ１２０を介して、メモリ１３０にロードする。そして、ＣＰＵ１１０、メモリコントローラ１２０、メモリ１３０、チップセット１４０、及びＮＶＲＡＭ１５０は、ＣＰＵ１１０が、メモリ１３０にロードされたＢＩＯＳのコードを実行することによって、起動制御装置１として動作する。ＢＩＯＳのコードを実行するＣＰＵ１１０が、検出部１２と、設定部１３と、初期化部１４と、起動部１５として動作する。例えば、ＮＶＲＡＭ１５０が、対象記憶部１１として動作する。ＳＡＳ  Ｉ／Ｆ１６０〜ＳＡＳ  Ｉ／Ｆ１６２と、ＮＩＣ１６３が、第１の実施形態におけるデバイス２１〜デバイス２４である。ＡＳ  Ｉ／Ｆ１６０〜ＳＡＳ  Ｉ／Ｆ１６２と、ＮＩＣ１６３は、それぞれ、オプションＲＯＭを備える。
【００９５】
図１１は、第１の実装例において、ＮＶＲＡＭ１５０に格納されている、デバイス識別子と設定値の例を表す図である。ＮＶＲＡＭ１５０は、第１の実施形態の対象記憶部１１として動作する。図１１に示す例では、デバイス識別子として、デバイスが接続されているＰＣＩｅスロットの番号を表す文字列が使用されている。例えば、「ＰＣＩｅ  Ｓｌｏｔ  ＃１」は、１番目のＰＣＩｅスロットを表す。設定値は、図４に示す例における設定値と同じである。ＳＡＳ  Ｉ／Ｆ１６０〜ＳＡＳ  Ｉ／Ｆ１６２と、ＮＩＣ１６３は、順に、「ＰＣＩｅ  Ｓｌｏｔ  ＃１」〜「ＰＣＩｅ  Ｓｌｏｔ  ＃４」によって表されるＰＣＩｅスロットに接続されている。図１１の例では、ＳＡＳ  Ｉ／Ｆ１６０が接続されているＰＣＩｅスロットの番号に、Ｅｎａｂｌｅｄである設定値が関連付けられている。すなわち、ＳＡＳ  Ｉ／Ｆ１６０のデバイス識別子に関連付けられている設定値が、Ｅｎａｂｌｅｄである。
【００９６】
ＮＶＲＡＭ１５０に格納される設定値は、情報処理装置１００の電源が投入された後ＯＳが起動される前に、デバイスのオプションＲＯＭが実行されるか否かを表す値として入力されてもよい。すなわち、情報処理装置１００が起動される際にデバイスのオプションＲＯＭが実行されるか否かを表す値が、本実装例の設定値として使用されてもよい。
【００９７】
図１２は、設定値が入力される画面の例を表す模式図である。図１２の例では、情報処理装置１００が起動される際にデバイスのオプションＲＯＭが実行されるか否かを表す値が入力される。そして、その入力された値が、設定値として使用される。
【００９８】
図１２に示す画面は、情報処理装置１００にＢＩＯＳの設定値を入力する画面の一つである。図１２に示す画面は、情報処理装置１００が備える表示装置（図示されない）に表示される。そして、情報処理装置１００の管理者は、表示装置に表示された図１２に示す画面を見ながら、キーボードなどの入力装置（図示されない）を使用して、各ＰＣＩｅスロットに対して、Ｅｎａｂｌｅ又はＤｉｓａｂｌｅを設定する。そして、Ｅｎａｂｌｅが設定されたＰＣＩｅスロットに対する設定値として、ＮＶＲＡＭ１５０にＥｎａｂｌｅｄが格納される。Ｄｉｓａｂｌｅが設定されたＰＣＩｅスロットに対する設定値として、ＮＶＲＡＭ１５０にＤｉｓａｂｌｅｄが格納される。
【００９９】
次に、本実装例の起動制御装置１の動作について、図面を参照して詳細に説明する。
【０１００】
図３が、本実装例の起動制御装置１の動作を表すフローチャートである。本実装例の起動制御装置１の動作は、第１の実施形態の起動制御装置１の動作と同じである。以下、本実装例の起動制御装置１の動作について、具体的に説明する。
【０１０１】
情報処理装置１００の電源が投入されると、ＣＰＵ１１０がＮＶＲＡＭ１５０からＢＩＯＳのコードを読み出す。ＣＰＵ１１０は、読み出したＢＩＯＳのコードをメモリ１３０にロードする。そして、ＣＰＵ１１０は、メモリ１３０にロードされたＢＩＯＳのコードを実行する。このことにより、ＣＰＵ１１０は、ＢＩＯＳに制御されることにより、起動制御装置１として動作する。以下の説明において、ＢＩＯＳによって制御されるＣＰＵ１１０が行う動作を、ＢＩＯＳが行う動作として表記する。
【０１０２】
ステップＳ１０１において、ＢＩＯＳは、情報処理装置１００に接続されているデバイス（すなわち、ＳＡＳ  Ｉ／Ｆ１６０〜ＳＡＳ  Ｉ／Ｆ１６２、ＮＩＣ１６３）の認識を行う。ＢＩＯＳは、各デバイスに対して、各デバイスが備えるオプションＲＯＭを読み出して実行することができるまでの初期化を行ってもよい。例えば、ＢＩＯＳは、各デバイスに対するＰＣＩｅリンクを接続してもよい。ただし、ステップＳ１０１において、ＢＩＯＳはオプションＲＯＭを実行しない。
【０１０３】
ステップＳ１０２において、ＢＩＯＳは、各デバイスの設定値を、ＮＶＲＡＭ１５０から読み出す。本実装例では、デバイスの設定値は、そのデバイスが接続されているＰＣＩｅスロットの番号に関連付けられている設定値である。そして、本実装例では、設定値は、ＰＣＩｅスロットに接続されているデバイスのオプションＲＯＭを実行するか否かを表す値として設定された値である。ＢＩＯＳは、設定値がＥｎａｂｌｅｄであるＰＣＩｅスロットを特定する。そして、ＢＩＯＳは、特定されたＰＣＩｅスロットに接続されているデバイスを、選択デバイスとして選択する。
【０１０４】
ステップＳ１０３において、各デバイスに対してＰＣＩｅリンクが接続されている場合、ＢＩＯＳは、設定値がＤｉｓａｂｌｅｄである各ＰＣＩｅスロットに接続されているデバイスに対するＰＣＩｅリンクを、順次切断する。各デバイスに対してＰＣＩｅリンクが接続されていない場合、ＢＩＯＳは、設定値がＥｎａｂｌｅｄである各ＰＣＩｅスロットに接続されているデバイスに対して、ＰＣＩｅリンクを接続すればよい。
【０１０５】
図１３は、本実装例の情報処理装置１００における、ＰＣＩｅリンクの接続状態の例を表す模式図である。図１３は、ＳＡＳ  Ｉ／Ｆ１６０に対してＰＣＩｅリンクが接続されていることを表す、そして、図１３は、ＳＡＳ  Ｉ／Ｆ１６１、ＳＡＳ  Ｉ／Ｆ１６２、及びＮＩＣ１６３に対するＰＣＩｅリンクは切断されていることを表す。各設定値が、図１１に示す例のように設定されている場合、ステップＳ１０３において、ＰＣＩｅリンクは図１３に示す例のように設定される。
【０１０６】
ステップＳ１０４において、ＢＩＯＳは、ＰＣＩｅリンクが接続されているデバイスのオプションＲＯＭを読み出す。ＢＩＯＳは、読み出したオプションＲＯＭをメモリ１３０にロードする。ＣＰＵ１１０は、ロードされたオプションＲＯＭを実行する。本実装例では、実行されるプションＲＯＭは、ＳＡＳ  Ｉ／Ｆ１６０から読み出されたオプションＲＯＭである。ＣＰＵ１１０は、ＳＡＳ  Ｉ／Ｆ１６０から読み出されたオプションＲＯＭに制御されて、ＳＡＳ  Ｉ／Ｆ１６０に対して、ＳＡＳ  Ｉ／Ｆ１６０に独自の初期化を行う。この初期化が完了すると、動作はステップＳ１０５に進む。
【０１０７】
ステップＳ１０５において、ＢＩＯＳは、情報処理装置１００のＯＳをロードするデバイスである起動デバイスを特定する。ＢＩＯＳは、例えば、起動デバイスの起動デバイス識別子をＮＶＲＡＭ１５０から読み出せばよい。その場合、起動デバイス識別子は、例えば、情報処理装置１００の管理者がＢＩＯＳセットアップのメニューを使用して起動デバイスを設定することによって、あらかじめＮＶＲＡＭ１５０に格納されていればよい。あるいは、ＢＩＯＳは、ステップＳ１０５において、起動デバイスを指定するメニューを情報処理装置１００が備える表示装置に表示してもよい。そして、ＢＩＯＳは、表示されたメニューを使用して指定されたデバイスを、起動デバイスにすればよい。本実装例では、起動デバイスは、ＳＡＳ  Ｉ／Ｆ１６０に接続されている記憶装置１７０である。ＢＩＯＳは、記憶装置１７０にインストールされているＯＳを起動できるように、環境を設定する。ＢＩＯＳが、ＯＳを起動するための環境の設定を終了すると、動作はステップＳ１０６に進む。
【０１０８】
ステップＳ１０６において、ＢＩＯＳは、ＰＣＩｅリンクが切断されている状態であるデバイスに対して、ＰＣＩｅリンクを接続する。その際、ＢＩＯＳは、ＮＶＲＡＭ１５０から、各ＰＣＩｅスロットの番号に関連付けられている設定値を読み出せばよい。そして、ＢＩＯＳは、設定値がＤｉｓａｂｌｅｄであるＰＣＩｅスロットに接続されているデバイスに対して、順次ＰＣＩｅリンクを接続すればよい。全てのデバイスに対するＰＣＩｅリンクの接続が終了すると、動作はステップＳ１０７に進む。
【０１０９】
ステップＳ１０７において、ＢＩＯＳは、起動デバイスにインストールされている情報処理装置１００のＯＳを起動する。ＯＳが起動すると、ＯＳのドライバによって、各デバイスの初期化が行われることにより、各デバイスは使用可能になる。すなわち、各デバイスは、そのデバイスが備えるオプションＲＯＭによる初期化が行われた否かに関わらず、使用可能になる。
【０１１０】
＜第２の実装例＞
次に、本発明の第２の実装例について、図面を参照して詳細に説明する。本実装例は、第１の実施形態に基づく実装例である。
【０１１１】
図１４は、本実装例における情報処理装置２００のハードウェア構成の例を表す模式図である。本実装例の情報処理装置２００は、第１の実施形態に係る情報処理装置２の、具体的なハードウェア構成を模式的に表す。
【０１１２】
本実装例の情報処理装置２００は、ＣＰＵ１１０と、メモリコントローラ１２０と、メモリ１３０と、チップセット１４０と、ＲＶＲＡＭ１５０と、ＵＳＢポート２６０と、ＵＳＢポート２６１と、ＵＳＢポート２６２と、ＵＳＢポート２６３とを備える。ＣＰＵ１１０と、メモリコントローラ１２０と、メモリ１３０と、チップセット１４０と、ＲＶＲＡＭ１５０は、以下で説明する点を除き、第１の実装例における同じ名称の構成要素と同じである。
【０１１３】
チップセット１４０は、チップセット１４０のＵＳＢインタフェースに接続されているＵＳＢ２８０を介して、ＵＳＢポート２６０〜ＵＳＢポート２６３に接続されている。各ＵＳＢポートが、第１の実施形態におけるデバイスである。本実装例のチップセット１４０は、各ＵＳＢポートを個別に一時的に無効に設定することができる。ＵＳＢポートが無効に設定されると、チップセット１４０は、その無効に設定されたＵＳＢポートにアクセスすることはできない。ＵＳＢポート２６０には、入力装置２９０が接続されている。入力装置２９０は、例えば、キーボードである。ＵＳＢポート２６２には、記憶装置２７０が接続されている。ＵＳＢポート２６３には、記憶装置２７１が接続されている。本実装例では、記憶装置２７０に、情報処理装置２００のＯＳがインストールされている。記憶装置２７０及び記憶装置２７１は、ハードディスクドライブや、ＳＳＤ等の記憶装置である。
【０１１４】
図１５は、第２の実装例において、ＮＶＲＡＭ１５０に格納されている、デバイス識別子と設定値の例を表す図である。ＮＶＲＡＭ１５０は、第１の実施形態の対象記憶部１１として動作する。図１５に示す例では、デバイス識別子として、ＵＳＢポートのポート番号を表す文字列が使用されている。例えば、「ＵＳＢ  Ｐｏｒｔ  ＃１」は、１番目のＵＳＢポートを表す。本実装例では、「ＵＳＢ  Ｐｏｒｔ  ＃１」は、ＵＳＢポート２６０の識別子である。同様に、「ＵＳＢ  Ｐｏｒｔ  ＃２」〜「ＵＳＢ  Ｐｏｒｔ  ＃４」は、それぞれ、ＵＳＢポート２６１〜ＵＳＢポート２６３の識別子である。設定値は、第１の実施形態の設定値と同じである。
【０１１５】
これらの設定値は、例えば、ＢＩＯＳセットアップのメニューに用意されたＵＳＢ設定項目におけるＵＳＢブート設定において、情報処理装置２００の管理者が行った設定に基づき、ＢＩＯＳによって決定されればよい。そして、決定された設定値は、ＢＩＯＳによってＮＶＲＡＭ１５０に格納されればよい。ＵＳＢブート設定は、例えば、情報処理装置２００のＯＳが格納されているデバイスが接続されているＵＳＢポート等を指定する設定である。
【０１１６】
図１６は、第２の実装例において、設定値が入力される画面の例を表す模式図である。本実装例では、ＵＳＢポート２６０には、例えばキーボードである入力装置２９０が接続されている。従って、図１６に示す例では、ＵＳＢポート２６０を表す識別子である「ＵＳＢ  Ｐｏｒｔ  ＃１」に対して、「Ｋｅｙｂｏａｒｄ／Ｍｏｕｓｅ」が設定されている。また、本実装例では、ＵＳＢポート２６２には、ＯＳがインストールされた記憶装置２７０が接続されている。従って、図１６に示す例では、ＵＳＢポート２６０を表す識別子である「ＵＳＢ  Ｐｏｒｔ  ＃３」に対して、起動デバイスを表す「Ｓｙｓｔｅｍ  Ｄｉｓｋ」が設定されている。そして、他のポートに対して、「Ｎｏｎｅ」が設定されている。本実装例のＢＩＯＳは、「Ｎｏｎｅ」が設定されているＵＳＢポートの識別子に、設定値として「Ｄｉｓａｂｌｅｄ」を関連付ける。そして、本実装例のＢＩＯＳは、「Ｋｅｙｂｏａｒｄ／Ｍｏｕｓｅ」と「Ｓｙｓｔｅｍ  Ｄｉｓｋ」が設定されているＵＳＢポートの識別子に、設定値として「Ｅｎａｂｌｅｄ」を関連付ける。そして、本実装例のＢＩＯＳは、各ＵＳＢポートの識別子とその識別子に関連付けられている設定値とを、ＮＶＲＡＭ１５０に格納する。
【０１１７】
次に、本実装例の起動制御装置１の動作について、図面を参照して詳細に説明する。
【０１１８】
図３が、本実装例の起動制御装置１の動作を表すフローチャートである。本実装例の起動制御装置１の動作は、第１の実施形態の起動制御装置１の動作と同じである。以下、本実装例の起動制御装置１の動作について、具体的に説明する。
【０１１９】
ステップＳ１０１において、本実施形態のＢＩＯＳは、各ＵＳＢポートを検出する。検出されたＵＳＢポートは、アクセスが可能な状態である有効に設定される。有効に設定された状態が、第１の実施形態における有効状態に対応する。
【０１２０】
ステップＳ１０２において、本実装例のＢＩＯＳは、入力装置２９０が接続されているＵＳＢポート２６０と、記憶装置２７０が接続されているＵＳＢポート２６２とを、選択デバイスとして選択する。
【０１２１】
ステップＳ１０３において、本実装例のＢＩＯＳは、選択デバイスとして選択されなかった、ＵＳＢポート２６１及びＵＳＢポート２６３を、無効に設定する。無効に設定された状態が、第１の実施形態における無効状態に対応する。
【０１２２】
図１７は、第２の実装例の情報処理装置２における、ＵＳＢポートの状態の例を表す模式図である。図１７は、ステップＳ１０３において設定された、本実装例におけるＵＳＢポートの状態を表す。図１７に示す例では、ＵＳＢポート２６１及びＵＳＢポート２６３が、無効に設定されている。
【０１２３】
ステップＳ１０４において、ＢＩＯＳは、状態が有効に設定されているＵＳＢポートと、状態が有効に設定されているＵＳＢポートに接続されているデバイスを、ＯＳ起動時にアクセすることができるようにするための初期化を行う。上述のように、本実装例では、状態が有効に設定されているＵＳＢポートは、ＵＳＢポート２６０及びＵＳＢポート２６２である。ステップＳ１０４における初期化は、例えば、状態が有効に設定されているＵＳＢポートに接続されている、入力装置や記憶装置などのデバイスを検出することを含んでいてもよい。
【０１２４】
ステップＳ１０５は、第１の実装例に基づく動作におけるステップＳ１０５の動作と同様に、起動デバイスを特定する。本実装例では、記憶装置２７０が起動デバイスとして特定される。
【０１２５】
ステップＳ１０６において、ＢＩＯＳは、無効に設定されているＵＳＢポートを「有効」に設定する。ＢＩＯＳは、例えば、ＮＶＲＡＭ１５０に格納されている設定値がＤｉｓａｂｌｅｄであるＵＳＢポートを、「有効」に設定すればよい。
【０１２６】
ステップＳ１０７において、ＢＩＯＳは、起動デバイスである記憶装置２７０にインストールされているＯＳを起動する。ＯＳが起動すると、ＯＳが含むドライバによって、各ＵＳＢポートと、ＵＳＢポートに接続されている各デバイスの初期化が行われる。
【０１２７】
ＵＳＢポートに接続されるＵＳＢデバイスによっては、そのＵＳＢデバイスがＵＳＢポートに接続されたままＢＩＯＳによるＵＳＢポートの初期化が行われると、情報処理装置２００がストールすることがある。あるいは、ＵＳＢデバイスによっては、ＢＩＯＳによる初期化に長い時間が必要な場合がある。設定値の設定によって、ＯＳが起動する際必要なデバイスが接続されているＵＳＢポート以外のＵＳＢポートを無効に設定しておくことにより、ＢＩＯＳによるＵＳＢの初期化が原因で生じる、情報処理装置２００のストールが発生するリスクを低減できる。あるいは、ＵＳＢポートの初期化に要する時間を短縮することができる。
【０１２８】
＜第３の実装例＞
次に、本発明の第３の実装例について、図面を参照して詳細に説明する。本実装例は、本発明の第２の実施形態に基づく実装例である。
【０１２９】
図１４が、本実装例の情報処理装置２００の構成を表すブロック図である。本実装例の情報処理装置２００は、第２の実施形態に係る情報処理装置２の、具体的なハードウェア構成を模式的に表す。本実装例の情報処理装置２００の構成は、第２の実装例の情報処理装置２００の構成と同じである。本実装例の情報処理装置２００の各構成要素は、以下で説明する点を除き、同じ符号が付与された第２の実装例の構成要素と同じである。
【０１３０】
本実装例のＮＶＲＡＭ１５０には、設定値として、優先順位が格納される。
【０１３１】
図１８は、第３の実装例において、対象記憶部１１として動作するＮＶＲＡＭ１５０に格納されている、デバイス識別子と設定値の例を表す図である。図１８において、値が数字である設定値が優先順位を表す。値が「Ｅｎａｂｌｅｄ」である設定値は、その設定値に関連付けられているデバイス識別子により特定されるデバイスが、後述するステップＳ１０３において有効状態に設定されることを表す。なお、値が「Ｄｉｓａｂｌｅｄ」である設定値は、その設定値に関連付けられているデバイス識別子により特定されるデバイスが、後述するステップＳ１０３において無効状態に設定されることを表していればよい。
【０１３２】
本実装例の設定値は、例えば、前述のＵＳＢブート設定と、ＵＳＢ設定項目におけるＵＳＢブート優先度設定において、情報処理装置２００の管理者が行った設定に基づき、ＢＩＯＳによって決定されればよい。そして、決定された設定値は、例えばＢＩＯＳによって、ＮＶＲＡＭ１５０に格納されればよい。ＵＳＢブート優先度設定は、ＢＩＯＳがインストールされているＯＳの起動を試みる順番に関する設定である。
【０１３３】
図１６は、本実装例において、ＵＳＢブート設定が設定される画面の例を表す模式図である。図１６に示す各設定項目の意味は、第２の実施形態における同じ設定項目の意味と同じである。
【０１３４】
図１９は、本実装例において、ＵＳＢブート優先度設定が設定される画面の例を表す模式図である。図１９に示す例では、優先順位が高い順に、ＵＳＢポートの番号が入力される。図１９に示す例では、「Ｐｏｒｔ＃３」が、３番目のＵＳＢポート（すなわちＵＳＢポート２６２）のポート番号を表す。図１９に示す例では、ＵＳＢポート２６２の優先順位は１である。同様に、「Ｐｏｒｔ＃２」が、２番目のＵＳＢポート（すなわちＵＳＢポート２６１）のポート番号を表す。そして、ＵＳＢポート２６１の優先順位は２である。さらに、「Ｐｏｒｔ＃４」が、４番目のＵＳＢポート（すなわちＵＳＢポート２６３）のポート番号を表す。そして、ＵＳＢポート２６３の優先順位は３である。また、図１９に示す例では、１番目のＵＳＢポート（すなわちＵＳＢポート２６０）には、優先順位は設定されていない。
【０１３５】
本実装例のＢＩＯＳは、例えば、図１６に示すＵＳＢブート設定と、図１９に示すＵＳＢブート優先度設定に基づき、設定値を決定する。ＢＩＯＳは、例えば、優先順位が設定されているＵＳＢポートの設定値を、設定されている優先順位に決定する。さらに、優先順位が設定されていないＵＳＢポートが、ＯＳ起動前に初期化を行うＵＳＢポートであれば、ＢＩＯＳは、そのＵＳＢポートの設定値をＥｎａｂｌｅｄに決定すればよい。例えば、ＢＩＯＳは、優先順位が設定されていないＵＳＢポートのＵＳＢブート設定に設定されている値が「Ｋｅｙｂｏｒｄ／Ｍｏｕｓｅ」であれば、設定値をＥｎａｂｌｅｄに決定すればよい。また、優先順位が設定されていないＵＳＢポートが、ＯＳ起動前に初期化を行う必要がないＵＳＢポートであれば、ＢＩＯＳは、そのＵＳＢポートの設定値をＥｎａｂｌｅｄに決定すればよい。例えば、優先順位が設定されていないＵＳＢポートのＵＳＢブート設定に設定されている値が「Ｎｏｎｅ」であれば、ＢＩＯＳは、そのＵＳＢポートの設定値をＤｉｓａｂｌｅｄに決定すればよい。
【０１３６】
ＵＳＢブート設定が図１６に示すように設定され、ＵＳＢブート優先度設定が図１９の用に設定されている場合、ＢＩＯＳは、図１８に示すデバイス識別子及び設定値を、ＮＶＲＡＭ１５０に格納する。
【０１３７】
次に、本実装例の起動制御装置１の動作について、図面を参照して詳細に説明する。
【０１３８】
図６が、本実装例の起動制御装置１の動作を表すフローチャートである。本実装例の起動制御装置１の動作は、第２の実施形態の起動制御装置１の動作と同じである。以下、本実装例の起動制御装置１の動作について、具体的に説明する。
【０１３９】
ステップＳ１０１において、ＢＩＯＳは、情報処理装置２００が含む各ＵＳＢポートを検出する。
【０１４０】
ステップＳ２０１において、ＢＩＯＳは、ＮＶＲＡＭ１５０から検出された各ＵＳＢポートの設定値を読み出す。そして、設定値としてＮＶＲＡＭ１５０に格納されている優先順位が最も高いＵＳＢポートを、選択デバイスとして選択する。設定値がＥｎａｂｌｅｄであるＵＳＢポートが存在すれば、ＢＩＯＳは、さらに、設定値がＥｎａｂｌｅｄであるＵＳＢポートを選択デバイスとして選択する。
【０１４１】
ステップＳ１０３からステップＳ１０５までの動作及びステップＳ１０７の動作は、同じ符号が付与された第２の実装襟の動作と同じである。
【０１４２】
ステップＳ１０６において、ＢＩＯＳは、無効に設定されているＵＳＢポートを「有効」に設定する。ＢＩＯＳは、例えば、ステップＳ２０２において選択デバイスとして選択されたＵＳＢポート以外のＵＳＢポートを、「有効」に設定すればよい。
【０１４３】
（第３の実施形態）
次に、本発明の第３の実施形態について、図面を参照して詳細に説明する。
【０１４４】
図２０は、本実施形態の起動制御装置１Ａの構成を表す図である。
【０１４５】
図２０を参照すると、本実施形態の起動制御装置１Ａは、デバイスに関する識別子と前記デバイスの初期化に関する設定値とを関連付けて記憶する対象記憶部１１と、情報処理装置２の電源が投入されると、当該情報処理装置２に接続されている一つ以上の前記デバイスを検出する検出部１２と、検出された前記デバイスの中から、当該デバイスの識別子に関連付けられている前記設定値に基づきいずれか一つ以上の前記デバイスを選択し、選択された当該デバイスである選択デバイスを、前記情報処理装置２が前記デバイスにアクセスできる有効状態にし、前記選択デバイス以外の検出された前記デバイスを、前記情報処理装置２が前記デバイスにアクセスできない無効状態にする設定部１４と、前記選択デバイスに対して初期化処理を行う初期化部１４による前記初期化処理が終了すると、前記無効状態である前記デバイスを前記有効状態にする起動部１５と、を備える。
【０１４６】
以上で説明した本実施形態には、第１の実施形態の第１の効果と同じ効果がある。その理由は、第１の実施形態の第１の効果が生じる理由と同じである。
【０１４７】
起動制御装置１、及び起動制御装置１Ａは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０１４８】
図２１は、起動制御装置１、及び起動制御装置１Ａを実現することができる、コンピュータ１０００の構成の一例を表す図である。図２１を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、各デバイスにアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、起動制御装置１、又は起動制御装置１Ａとして動作させるプログラムが格納されている。
【０１４９】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を、起動制御装置１、又は起動制御装置１Ａとして動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、起動制御装置１、又は起動制御装置１Ａとして動作する。
【０１５０】
検出部１２、設定部１３、初期化部１４、起動部１５は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、対象記憶部１１は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、対象記憶部１１、検出部１２、設定部１３、初期化部１４、起動部１５の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０１５１】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１５２】
１、１Ａ    起動制御装置
２、１００、２００    情報処理装置
３    情報処理システム
４    ネットワーク
１１    対象記憶部
１２    検出部
１３    設定部
１４    初期化部
１５    起動部
２０    処理部
２１、２２、２３、２４    デバイス
３１、３２、１７０、１７１、２７０、２７１    記憶装置
１１０    ＣＰＵ
１２０    メモリコントローラ
１３０    メモリ
１４０    チップセット
１５０    ＮＶＲＡＭ
１６０、１６１、１６２    ＳＡＳ  Ｉ／Ｆ
１６３    ＮＩＣ
２６０、２６１、２６２、２６３    ＵＳＢポート
２８０    ＵＳＢ
２９０    入力装置
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2015172807.tif 000003
【図２】
2015172807.tif 000004
【図３】
2015172807.tif 000005
【図４】
2015172807.tif 000006
【図５】
2015172807.tif 000007
【図６】
2015172807.tif 000008
【図７】
2015172807.tif 000009
【図８】
2015172807.tif 000010
【図９】
2015172807.tif 000011
【図１０】
2015172807.tif 000012
【図１１】
2015172807.tif 000013
【図１２】
2015172807.tif 000014
【図１３】
2015172807.tif 000015
【図１４】
2015172807.tif 000016
【図１５】
2015172807.tif 000017
【図１６】
2015172807.tif 000018
【図１７】
2015172807.tif 000019
【図１８】
2015172807.tif 000020
【図１９】
2015172807.tif 000021
【図２０】
2015172807.tif 000022
【図２１】
2015172807.tif 000023