(57)【特許請求の範囲】
【請求項１】
起動を開始した第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部と、
第２のパーティションの起動を指示する起動指示を受け付けた場合に、前記第１のパーティションと前記第２のパーティションとが共有する第１のハードウエアの初期化が前記第１のパーティションにおいて開始する時刻である第１の時刻を、前記データ格納部から特定する特定部と、
前記第２のパーティションにおいて前記第１のハードウエアの初期化が前記第１の時刻に開始するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを前記データ格納部に追加する決定部と、
を有する情報処理装置。
【請求項２】
前記データ格納部は、前記第２のパーティションにおけるハードウエアを初期化する順序の制約についてのデータをさらに格納し、
前記決定部は、
前記データ格納部に格納されている前記制約についてのデータに基づき、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
請求項１記載の情報処理装置。
【請求項３】
前記データ格納部は、前記第２パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納し、
前記決定部は、
前記第１のハードウエアより先に初期化すべき第２のハードウエアを、前記データ格納部に格納されている前記制約についてのデータに基づき特定し、
前記データ格納部に格納されているデータに基づき、前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間より長いか判断し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間より長い場合に、前記第２のパーティションにおいて前記第１のハードウエアの初期化を前記第１の時刻に開始するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
請求項２記載の情報処理装置。
【請求項４】
前記決定部は、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間より短い又は同じである場合に、前記第２のパーティションにおいて前記第１のハードウエアの初期化を開始する時刻が、前記第１のパーティションにおいて前記第１のハードウエアの初期化を終了する時刻より後の時刻になるように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
請求項３記載の情報処理装置。
【請求項５】
前記データ格納部は、前記第２パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納し、
前記決定部は、
前記第１のハードウエアより先に初期化すべき第２のハードウエアを、前記データ格納部に格納されている前記制約についてのデータに基づき特定し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間と、前記第２のハードウエアを初期化するのに要する時間と前記第１のハードウエアを初期化するのに要する時間との和である第２の時間とを、前記データ格納部に格納されているデータに基づき特定し、
前記第１のハードウエアの初期化が開始するまでの時間が、前記第２の時間より長いか判断し、
前記第１のハードウエアの初期化が開始するまでの時間が前記第２の時間より長い場合に、前記第２のパーティションにおいて前記第１のハードウエア及び前記第２のハードウエアの初期化が前記第１の時刻より前の時刻に終了するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
請求項２記載の情報処理装置。
【請求項６】
前記決定部は、
前記第２のパーティションにおいて前記第２のハードウエアの初期化を終了してから前記第１のハードウエアの初期化を開始するまでの時間である第３の時間を、前記データ格納部に格納されているデータを用いて算出し、
前記データ格納部に格納されているデータを用いて、前記第１のハードウエアより先に初期化可能なハードウエアのうち前記第３の時間内に初期化可能なハードウエアを特定し、特定された当該ハードウエアを前記第１のハードウエアより先に初期化するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する、
請求項３記載の情報処理装置。
【請求項７】
前記データ格納部は、前記第１パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納し、
前記決定部は、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間と同じ又は短い場合に、前記データ格納部に格納されているデータを用いて、前記第１のパーティションにおいて前記第１のハードウエアの初期化を終了するまでの時間である第４の時間を算出し、
前記データ格納部に格納されているデータを用いて、前記第１のハードウエアより先に初期化可能なハードウエアのうち前記第４の時間内に初期化可能なハードウエアを特定し、特定された当該ハードウエアを前記第１のハードウエアより先に初期化するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する、
請求項３記載の情報処理装置。
【請求項８】
前記決定部は、
前記第２のパーティションにおける１のハードウエアの初期化が終了する度に、前記第２のパーティションにおける初期化されていないハードウエアの初期化の順序を再決定する
請求項１乃至７のいずれか１つ記載の情報処理装置。
【請求項９】
第１のパーティションの起動を指示する起動指示を受け付けた場合に、起動を開始した第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部から、前記第１のパーティションと前記第２のパーティションとが共有する第１のハードウエアの初期化が前記第２のパーティションにおいて開始する時刻である第１の時刻を特定し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が前記第１の時刻に開始するように、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを前記データ格納部に追加する、
処理をコンピュータに実行させるためのプログラム。
【請求項１０】
第１のパーティションの起動を指示する起動指示を受け付けた場合に、起動を開始した第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部から、前記第１のパーティションと前記第２のパーティションとが共有する第１のハードウエアの初期化が前記第２のパーティションにおいて開始する時刻である第１の時刻を特定し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が前記第１の時刻に開始するように、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを前記データ格納部に追加する、
処理をコンピュータが実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウエアの初期化技術に関する。
【背景技術】
【０００２】
大規模なサーバにおいては、サーバ内のハードウエアがパーティションと呼ばれる単位に分割され、サーバ内で実行される複数のＯＳ（Operating System）の各々に対して１つのパーティションが割り当てられる。各パーティションに含まれるハードウエアは、管理者等によって予め設定される。そして、サーバの動作中においては、例えば動的再構成によって、パーティションの追加、パーティションの削除、及びハードウエアの割り当ての変更等が行われる。
【０００３】
ところで、サーバはメンテナンス又はエラー発生等のために停止されることがあるが、サーバが停止している間はサービスの提供が停止するため、停止される時間は可能な限り短いことが好ましい。或る文献は、サーバ内における複数のシステムボードの初期化を並列に実行することで、サーバの起動にかかる時間を短縮する技術を開示する。
【０００４】
但し、上記の従来技術は、複数のシステムボードにおいて同時に初期化が開始することを前提としており、各システムボードの初期化の開始時点が異なるような場合については検討されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２０６４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、複数のパーティションが設定されるサーバの起動時間を短縮するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、起動を開始した第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部と、第２のパーティションの起動を指示する起動指示を受け付けた場合に、第１のパーティションと第２のパーティションとが共有する第１のハードウエアの初期化が第１のパーティションにおいて開始する時刻である第１の時刻を、データ格納部から特定する特定部と、第２のパーティションにおいて第１のハードウエアの初期化が第１の時刻に開始するように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータをデータ格納部に追加する決定部とを有する。
【発明の効果】
【０００８】
１つの側面では、複数のパーティションが設定されるサーバの起動時間を短縮できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態のシステム概要を示す図である。
【図２】図２は、システム制御ボードのハードウエア構成を示す図である。
【図３】図３は、システム制御ボードの機能ブロック図である。
【図４】図４は、初期化データ格納部に格納されるデータの一例を示す図である。
【図５】図５は、ハードウエアデータ格納部に格納されるデータの一例を示す図である。
【図６】図６は、順序データ格納部に格納される順序データの一例を示す図である。
【図７】図７は、ハードウエアの初期化シーケンスの一例を示す図である。
【図８】図８は、ハードウエアの初期化シーケンスの一例を示す図である。
【図９】図９は、第１の実施の形態におけるメインの処理フローを示す図である。
【図１０】図１０は、順序データ格納部に格納される順序データの一例を示す図である。
【図１１】図１１は、第１設定処理の処理フローを示す図である。
【図１２】図１２は、ハードウエアの初期化シーケンスの一例を示す図である。
【図１３】図１３は、順序データ格納部に格納される順序データの一例を示す図である。
【図１４】図１４は、第２設定処理の処理フローを示す図である。
【図１５】図１５は、ハードウエアの初期化シーケンスの一例を示す図である。
【図１６】図１６は、順序データ格納部に格納される順序データの一例を示す図である。
【図１７】図１７は、第２の実施の形態におけるメインの処理フローを示す図である。
【図１８】図１８は、ハードウエアの初期化シーケンスの一例を示す図である。
【図１９】図１９は、ハードウエアの初期化シーケンスの一例を示す図である。
【図２０】図２０は、第４の実施の形態におけるメインの処理フローを示す図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、本実施の形態における情報処理装置１のハードウエア構成を示す。情報処理装置１には、システムボード＃０乃至＃４が搭載されており、システムボード＃０乃至＃４はクロスバー１５に接続される。クロスバー１５には、システム制御ボード１０が接続される。なお、図１においてシステムボードの数は５であるが、数に限定は無い。
【００１１】
情報処理装置１には、パーティション＃０乃至＃２が設定される。パーティション＃０は、システムボード＃０と、クロスバー１５とを含む。パーティション＃１は、システムボード＃１と、システムボード＃２と、クロスバー１５とを含む。パーティション＃２は、システムボード＃３と、システムボード＃４と、クロスバー１５とを含む。各パーティションにおいては１つのＯＳが動作する。なお、図１においてパーティションの数は３であるが、数に限定は無い。また、各パーティションに含まれるシステムボードの数に限定は無い。
【００１２】
システムボード＃０乃至＃４は、ＯＳが動作する際に使用するハードウエアとその他のハードウエアとを搭載した物理的なボードである。本実施の形態においては、システムボード＃０乃至＃４の各々は、そのシステムボードに固有のハードウエア（本実施の形態においては、ＣＰＵ（Central Processing Unit）と、メモリと、その他のＬＳＩ（Large Scale Integration）等）を搭載する。
【００１３】
クロスバー１５は、システムボード＃０乃至＃４及びシステム制御ボード１０に搭載されたＣＰＵがＣＰＵ間通信を行うためのインターコネクトである。クロスバー１５は、システムボード＃０乃至＃４が共有するハードウエア資源である。
【００１４】
システム制御ボード１０は、パーティション＃０乃至＃２の起動を制御するボードである。システム制御ボード１０は、パーティションを起動する際に、そのパーティション内のハードウエアを初期化する。図２に、システム制御ボード１０のハードウエア構成を示す。システム制御ボード１０は、ＣＰＵ１００１と、ＲＯＭ（Read Only Memory）１００２と、メインメモリ１００３とを含む。
【００１５】
本実施の形態の処理を実行するためのプログラムは、例えばファームウエアに含まれ、ＲＯＭ１００２に格納される。本実施の形態の処理を実行するためのプログラムは、ＣＰＵ１００１により実行される際にＲＯＭ１００２からメインメモリ１００３に読み出される。図３に、本実施の形態におけるシステム制御ボード１０の機能ブロック図を示す。図３の例では、システム制御ボード１０は、初期化制御部１０１と、初期化データ格納部１０２と、順序決定部１０３と、算出部１０４と、順序データ格納部１０５と、ハードウエアデータ格納部１０６とを含む。初期化データ格納部１０２、順序データ格納部１０５及びハードウエアデータ格納部１０６は、メインメモリ１００３に設けられる。
【００１６】
算出部１０４は、順序データ格納部１０５に格納されたデータ及びハードウエアデータ格納部１０６に格納されたデータに基づき処理を実行し、処理結果を順序決定部１０３に渡す。順序決定部１０３は、算出部１０４から受け取った処理結果及び順序データ格納部１０５に格納されたデータに基づき処理を実行し、処理結果を順序データ格納部１０５に格納する。初期化制御部１０１は、順序データ格納部１０５に格納されたデータ及び初期化データ格納部１０２に格納されたデータに基づき、システムボード＃０乃至＃４内のハードウエアを初期化する。
【００１７】
図４に、初期化データ格納部１０２に格納されるデータの一例を示す。図４の例では、パーティション識別子と、初期化の状況を表す情報が格納される。初期化の状況を表す情報は、初期化制御部１０１によって随時更新される。なお、初期化の状況を表す情報として、各ハードウエアの初期化の開始時刻及び完了時刻を格納してもよい。
【００１８】
図５に、ハードウエアデータ格納部１０６に格納されるデータの一例を示す。図５の例では、パーティション識別子と、パーティションに含まれるハードウエアの種別を表す情報と、ハードウエアの数を表す情報とが格納される。
【００１９】
図６に、順序データ格納部１０５に格納される順序データの一例を示す。図６の例では、初期化の順番を表す情報と、処理の内容を表す情報と、順序の制約についての情報と、共有のハードウエア資源であるか否かを表す情報と、初期化に要する時間を表す情報と、ハードウエアの数を表す情報と、開始時刻の情報とが格納される。その他の処理とは、例えば初期化の後処理であり、初期化された各ハードウエアに対して行われる。制約についての情報が「１」である処理は、制約についての情報が「２」である処理より先に初期化され、制約についての情報が「２」である処理は、制約についての情報が「３」である処理より先に初期化される。制約についての情報が同じである複数のハードウエアについては、任意の順序で初期化をすることができる。開始時刻の欄には、初期的にはデータは格納されない。なお、順序データ格納部１０５には、各システムボードについて図６に示したような順序データが格納される。
【００２０】
次に、図７及び図８を用いて、本実施の形態におけるハードウエアの初期化の概要を説明する。以下の説明に使用する図面において、ＳＢはシステムボードを表し、ＸＢはクロスバー１５を表すものとする。
【００２１】
ＣＰＵ及びメモリ等のハードウエアは、パーティション毎に設けられるハードウエアである。そのため、システム制御ボード１０は、各パーティションにおけるＣＰＵ及びメモリ等のハードウエアを、そのパーティションとは別のパーティションにおける初期化の状況とは無関係に初期化することができる。
【００２２】
しかし、クロスバー１５はパーティション＃０乃至＃２が共有するハードウエアであるため、ＣＰＵ及びメモリ等のハードウエアと同様に初期化を行うことができない。具体的には、或るパーティションにおいてクロスバー１５の初期化を実行している間においては、排他制御により、他のパーティションにおいてクロスバー１５の初期化を開始することはできない。クロスバー１５の初期化を複数のパーティションにおいて同時に実行することができるのは、複数のパーティションの各々においてクロスバー１５の初期化を同時に開始する場合である。
【００２３】
図７に、ハードウエアの初期化シーケンスの一例を示す。図７の例においては、システム制御ボード１０が、パーティション＃０についての起動指示を受け付けた後、パーティション＃０においてシステムボードを初期化中にパーティション＃１についての起動指示を受け付ける。パーティション＃０及びパーティション＃１においては、システムボード、ＣＰＵ、クロスバー１５の順で初期化を実行する。しかし、パーティション＃０においてクロスバー１５の初期化を実行している間においては、パーティション＃１においてクロスバー１５の初期化を開始することができない。そのため、パーティション＃１における初期化は、パーティション＃０においてクロスバー１５の初期化が完了するまで再開されず、パーティション＃１の起動が完了する時点が遅くなる。
【００２４】
そこで本実施の形態においては、図８の例に示すように、ハードウエアを初期化する順序を変更できるようにする。パーティション＃０においてはシステムボード、ＣＰＵ、クロスバー１５の順で初期化が実行されるが、パーティション＃１においてはシステムボード、クロスバー１５、ＣＰＵの順で初期化が実行される。このような順序変更によって、パーティション＃０においてクロスバー１５の初期化が開始するタイミングとパーティション＃１においてクロスバー１５の初期化が開始するタイミングとが一致する。これにより、パーティション＃１において発生する待ち時間を減らし、情報処理装置１の起動に要する時間を短縮できるようになる。
【００２５】
次に、図９乃至図１６を用いて、情報処理装置１の動作について詳細に説明する。情報処理装置１の管理者等は、情報処理装置１を起動するにあたり、パーティション＃０乃至＃２のうちいずれかのパーティション（以下、本パーティションと呼ぶ。ここでは、本パーティションをパーティション＃１とする）についての起動指示を入力する。これに応じ、情報処理装置１のシステム制御ボード１０は、管理者等から本パーティションについての起動指示の入力を受け付ける。そして、システム制御ボード１０の初期化制御部１０１は、初期化データ格納部１０２に格納された、初期化の状況を表す情報に基づき、既に起動を開始した他のパーティション（以下、先行パーティションと呼ぶ）が有るか判断する（図９：ステップＳ１）。
【００２６】
先行パーティションが無い場合（ステップＳ１：Ｎｏルート）、初期化制御部１０１は、順序決定部１０３に本パーティションにおけるハードウエアの初期化の開始時刻を設定することを指示する。これに応じ、順序決定部１０３は、順序データ格納部１０５に登録されたデフォルト（すなわち初期設定）の順序に基づき、本パーティションにおけるハードウエアの初期化の開始時刻を設定する（ステップＳ３）。そしてステップＳ１５の処理に移行する。
【００２７】
ステップＳ３において、順序決定部１０３は、起動指示を受け付けた時刻を、順番が「１」であるハードウエアの初期化の開始時刻に設定する。そして、その他の開始時刻は、各ハードウエアの初期化に要する時間及び順番が「１」であるハードウエアの開始時刻を用いて設定される。ステップＳ３の処理が行われると、本パーティションの順序データは例えば図１０に示すようになる。
【００２８】
一方、先行パーティションが有る場合（ステップＳ１：Ｙｅｓルート）、順序決定部１０３は、順序データ格納部１０５に格納された、先行パーティションの順序データを用いて、本処理時点から先行パーティションにおいてクロスバー１５の初期化を開始する時点までの時間Ｔ１を算出する（ステップＳ５）。
【００２９】
また、順序決定部１０３は、順序データ格納部１０５に格納された、本パーティションの順序データを用いて、本処理時点から本パーティションにおいてクロスバー１５の初期化の前に実行すべき初期化が終了する時点までの時間Ｔ２を算出する（ステップＳ７）。ステップＳ７において、時間Ｔ２は、制約についての情報が「１」である処理に要する時間（すなわち、システムボードの初期化に要する時間）及び順序を決定する処理に要する時間を含む。
【００３０】
順序決定部１０３は、Ｔ１がＴ２より長い（すなわち、Ｔ１＞Ｔ２が成立する）か判断する（ステップＳ９）。Ｔ１＞Ｔ２が成立する場合（ステップＳ９：Ｙｅｓルート）、順序決定部１０３は、算出部１０４に第１設定処理の実行を指示する。これに応じ、算出部１０４は、第１設定処理を実行する（ステップＳ１１）。第１設定処理については、図１１乃至図１３を用いて説明する。
【００３１】
まず、算出部１０４は、システムボードの開始時刻の設定を順序決定部１０３に指示する。これに応じ、順序決定部１０３は、システムボードをクロスバー１５より先に初期化し且つクロスバー１５の初期化を先行パーティションにおいてクロスバー１５の初期化を開始する時刻に開始するように、順序データ格納部１０５における順番及び開始時刻を設定する（図１１：ステップＳ２１）。
【００３２】
算出部１０４は、本パーティションにおいてクロスバー１５の初期化より前に初期化可能なハードウエアを特定する（ステップＳ２３）。例えば、順序データ格納部１０５に格納された順序データが図１０に示したデータである場合、クロスバー１５の初期化より前に初期化可能なハードウエアはＣＰＵ及びメモリである。
【００３３】
算出部１０４は、順序データ格納部１０５に格納された順序データを用いて、本パーティションにおいてクロスバー１５の初期化を開始するまでの間における本パーティションの空き時間Ｔ３を算出する（ステップＳ２５）。空き時間Ｔ３は、いずれのハードウエアの初期化も行われていない時間である。空き時間Ｔ３は、後で説明するステップＳ３３において新たにハードウエアの初期化の設定が行われると短くなる。
【００３４】
算出部１０４は、ステップＳ２３において特定されたハードウエアの中から未処理のハードウエアを特定する。そして、算出部１０４は、順序データ格納部１０５に格納された、本パーティションの順序データに基づき、未処理のハードウエアのうち初期化に要する時間が最長であるハードウエアを１つ特定する（ステップＳ２７）。
【００３５】
算出部１０４は、Ｔ３≧（ステップＳ２７において特定されたハードウエアの初期化に要する時間Ｔ４）が成立するか判断する（ステップＳ２９）。Ｔ３≧Ｔ４が成立しない場合（ステップＳ２９：Ｎｏルート）、算出部１０４は、Ｔ３≧Ｔ４が成立しない旨を順序決定部１０３に通知する。これに応じ、順序決定部１０３は、ステップＳ２７において特定されたハードウエアの初期化をクロスバー１５の初期化後に実行するように、順序データ格納部１０５における順番及び開始時刻を設定する（ステップＳ３３）。
【００３６】
一方、Ｔ３≧Ｔ４が成立する場合（ステップＳ２９：Ｙｅｓルート）、算出部１０４は、Ｔ３≧Ｔ４が成立する旨を順序決定部１０３に通知する。これに応じ、順序決定部１０３は、ステップＳ２７において特定されたハードウエアの初期化をクロスバー１５の初期化前に実行するように、順序データ格納部１０５における順番及び開始時刻を設定する（ステップＳ３１）。
【００３７】
算出部１０４は、ステップＳ２３において特定されたハードウエアのうち未処理のハードウエアが有るか判断する（ステップＳ３５）。未処理のハードウエアが有る場合（ステップＳ３５：Ｙｅｓルート）、ステップＳ２５の処理に戻る。一方、未処理のハードウエアが無い場合（ステップＳ３５：Ｎｏルート）、算出部１０４は、順序の決定を順序決定部１０３に指示する。これに応じ、順序決定部１０３は、本パーティション内のハードウエアのうち設定が行われていないハードウエアについて、制約を満たすように、順序データ格納部１０５における順番及び開始時刻を設定する（ステップＳ３７）。ステップＳ３７においては、その他の処理についても順番及び開始時刻が設定される。そして呼び出し元の処理に戻る。
【００３８】
以上のように、Ｔ１＞Ｔ２が成立する場合には、先行パーティションにおいてクロスバー１５の初期化が開始する前に後続パーティションにおけるシステムボードの初期化を完了することができる。よって、先行パーティションにおけるクロスバー１５の初期化の開始時刻と後続のパーティションのクロスバー１５の初期化の開始時刻とを揃えることができるようになる。
【００３９】
図１２に、Ｔ１＞Ｔ２が成立する場合におけるハードウエアの初期化シーケンスの一例を示す。図１２においては、システム制御ボード１０が、パーティション＃０、パーティション＃１、パーティション＃２の順に起動指示を受け付ける。長方形の図形は、順序を決定するのに要する時間を表す。図１２の例では、パーティション＃０におけるクロスバー１５の初期化とパーティション＃１におけるクロスバー１５の初期化とを同じ時刻に開始する。そのため、排他制御が原因でパーティション＃１において発生する待ち時間を減らすことができる。また、上で述べたようにすれば、パーティション＃１においてシステムボードの初期化の終了後クロスバー１５の初期化を開始するまでの時間に他のハードウエアの初期化を行えるようになる。
【００４０】
なお、図１２の例におけるパーティション＃１の順序データは、例えば図１３のようになる。すなわち、クロスバー１５の初期化の順番が「２」になり、ＣＰＵの初期化の順番が「３」になり、メモリの初期化の順番が「４」になる。
【００４１】
図９の説明に戻り、Ｔ１＞Ｔ２が成立しない場合（ステップＳ９：Ｎｏルート）、順序決定部１０３は、算出部１０４に第２設定処理の実行を指示する。これに応じ、算出部１０４は、第２設定処理を実行する（ステップＳ１３）。第２設定処理については、図１４乃至図１６を用いて説明する。
【００４２】
まず、算出部１０４は、システムボードの開始時刻の設定を順序決定部１０３に指示する。これに応じ、順序決定部１０３は、システムボードをクロスバー１５より先に初期化し且つクロスバー１５の初期化を先行パーティションにおいてクロスバー１５の初期化を終了した後に開始するように、順序データ格納部１０５に格納された開始時刻を設定する（図１４：ステップＳ４１）。
【００４３】
算出部１０４は、本パーティションにおいてクロスバー１５の初期化より前に初期化可能なハードウエアを特定する（ステップＳ４３）。例えば、順序データ格納部１０５に格納された順序データが図１０に示したデータである場合、クロスバー１５の初期化より前に初期化可能なハードウエアはシステムボード、ＣＰＵ及びメモリである。
【００４４】
算出部１０４は、順序データ格納部１０５に格納された順序データを用いて、先行パーティションにおいてクロスバー１５の初期化を終了するまでの間における本パーティションの空き時間Ｔ５を算出する（ステップＳ４５）。空き時間Ｔ５は、いずれのハードウエアの初期化も行われていない時間である。空き時間Ｔ５は、後で説明するステップＳ５３において新たにハードウエアの初期化の設定が行われると短くなる。
【００４５】
算出部１０４は、ステップＳ４３において特定されたハードウエアの中から未処理のハードウエアを特定する。そして、算出部１０４は、順序データ格納部１０５に格納された、本パーティションの順序データに基づき、未処理のハードウエアのうち初期化に要する時間が最長であるハードウエアを１つ特定する（ステップＳ４７）。
【００４６】
算出部１０４は、Ｔ５≧（ステップＳ４７において特定されたハードウエアの初期化に要する時間Ｔ６）が成立するか判断する（ステップＳ４９）。Ｔ５≧Ｔ６が成立しない場合（ステップＳ４９：Ｎｏルート）、算出部１０４は、Ｔ５≧Ｔ６が成立しない旨を順序決定部１０３に通知する。これに応じ、順序決定部１０３は、ステップＳ４７において特定されたハードウエアの初期化をクロスバー１５の初期化後に実行するように、順序データ格納部１０５における順番及び開始時刻を設定する（ステップＳ５３）。
【００４７】
一方、Ｔ５≧Ｔ６が成立する場合（ステップＳ４９：Ｙｅｓルート）、算出部１０４は、Ｔ５≧Ｔ６が成立する旨を順序決定部１０３に通知する。これに応じ、順序決定部１０３は、ステップＳ４７において特定されたハードウエアの初期化をクロスバー１５の初期化前に実行するように、順序データ格納部１０５における順番及び開始時刻を設定する（ステップＳ５１）。
【００４８】
算出部１０４は、ステップＳ４３において特定されたハードウエアのうち未処理のハードウエアが有るか判断する（ステップＳ５５）。未処理のハードウエアが有る場合（ステップＳ５５：Ｙｅｓルート）、ステップＳ４５の処理に戻る。一方、未処理のハードウエアが無い場合（ステップＳ５５：Ｎｏルート）、算出部１０４は、順序の決定を順序決定部１０３に指示する。これに応じ、順序決定部１０３は、本パーティション内のハードウエアのうち設定が行われていないハードウエアについて、制約を満たすように、順序データ格納部１０５における順番及び開始時刻を設定する（ステップＳ５７）。ステップＳ５７においては、その他の処理についても順番及び開始時刻が設定される。そして呼び出し元の処理に戻る。
【００４９】
以上のように、Ｔ１＞Ｔ２が成立しない場合には、先行パーティションにおいてクロスバー１５の初期化が開始する前に後続パーティションにおけるシステムボードの初期化を完了することができない。よって、先行パーティションにおけるクロスバー１５の初期化と後続のパーティションのクロスバー１５の初期化とを別のタイミングで行うようにする。
【００５０】
図１５に、Ｔ１＞Ｔ２が成立しない場合におけるハードウエアの初期化シーケンスの一例を示す。図１５においては、パーティション＃０、パーティション＃１、パーティション＃２の順に起動指示を受け付ける。長方形の図形は、順序を決定するのに要する時間を表す。図１５の例では、パーティション＃０におけるクロスバー１５の初期化とパーティション＃１におけるクロスバー１５の初期化とが異なる時間帯に行われる。但し、パーティション＃１におけるクロスバー１５の初期化の開始時刻とパーティション＃２におけるクロスバー１５の初期化の開始時刻と同じになるように設定されているので、排他制御が原因でパーティション＃２において発生する待ち時間を減らすことができる。
【００５１】
なお、図１５の例におけるパーティション＃１の順序データは、例えば図１６のようになる。すなわち、ＣＰＵの初期化の順番が「２」になり、クロスバー１５の初期化の順番が「３」になり、メモリの初期化の順番が「４」になる。
【００５２】
図９の説明に戻り、初期化制御部１０１は、本パーティションの順序データを順序データ格納部１０５から読み出す。そして、初期化制御部１０１は、本パーティションの順序データに含まれる開始時刻に基づき、各ハードウエアの初期化を実行する（ステップＳ１５）。そして処理を終了する。
【００５３】
以上のような処理を実行すれば、ハードウエアを初期化する順序を変更できるので、排他制御による待ち時間を減らすことが可能な順序で初期化を行えるようになる。また、空き時間（すなわち、ハードウエアの初期化が行われていない時間）においても、制約を満たすようにハードウエアの初期化を行えるようになるので、情報処理装置１の起動に要する時間をより短縮できるようになる。
【００５４】
なお、上記処理は複数のパーティションについて並行に実行される場合もある。
【００５５】
［実施の形態２］
第１の実施の形態においては先行パーティションの数が１である場合に実行する処理について説明した。第２の実施の形態においては、先行パーティションの数が２以上である場合に実行する処理について説明する。
【００５６】
図１７を用いて、第２の実施の形態における情報処理装置１が実行する処理について説明する。
【００５７】
情報処理装置１の管理者等は、情報処理装置１を起動するにあたり、パーティション＃０乃至＃２のうちいずれかのパーティション（以下、本パーティションと呼ぶ。ここでは、本パーティションをパーティション＃１とする）についての起動指示を入力する。これに応じ、情報処理装置１のシステム制御ボード１０は、管理者等から本パーティションについての起動指示の入力を受け付ける。そして、システム制御ボード１０の初期化制御部１０１は、初期化データ格納部１０２に格納された、初期化の状況を表す情報に基づき、既に起動を開始した他のパーティション（以下、先行パーティションと呼ぶ）が有るか判断する（図１７：ステップＳ６１）。
【００５８】
先行パーティションが無い場合（ステップＳ６１：Ｎｏルート）、初期化制御部１０１は、順序決定部１０３に本パーティションにおけるハードウエアの初期化の開始時刻を設定することを指示する。これに応じ、順序決定部１０３は、順序データ格納部１０５に登録されたデフォルトの順序に基づき、本パーティションにおけるハードウエアの初期化の開始時刻を設定する（ステップＳ６３）。そしてステップＳ７９の処理に移行する。
【００５９】
ステップＳ６３において、順序決定部１０３は、起動指示を受け付けた時刻を、順番が「１」であるハードウエアの初期化の開始時刻に設定する。そして、その他の開始時刻は、各ハードウエアの初期化に要する時間及び順番が「１」であるハードウエアの開始時刻に基づき設定される。
【００６０】
一方、先行パーティションが有る場合（ステップＳ６１：Ｙｅｓルート）、順序決定部１０３は、未処理の先行パーティションを１つ特定する（ステップＳ６５）。そして、順序決定部１０３は、順序データ格納部１０５に格納された、先行パーティションの順序データを用いて、本処理時点から先行パーティションにおいてクロスバー１５の初期化を開始する時点までの時間Ｔ１を算出する（ステップＳ６７）。
【００６１】
順序決定部１０３は、順序データ格納部１０５に格納された、本パーティションの順序データを用いて、本処理時点から本パーティションにおいてクロスバー１５の初期化の前に実行すべき初期化が終了する時点までの時間Ｔ２を算出する（ステップＳ６９）。ステップＳ６９において、時間Ｔ２は、制約についての情報が「１」である処理に要する時間（すなわち、システムボードの初期化に要する時間）及び順序を決定する処理に要する時間を含む。
【００６２】
順序決定部１０３は、Ｔ１がＴ２より長い（すなわち、Ｔ１＞Ｔ２が成立する）か判断する（ステップＳ７１）。Ｔ１＞Ｔ２が成立しない場合（ステップＳ７１：Ｎｏルート）、順序決定部１０３は、未処理の先行パーティションが有るか判断する（ステップＳ７５）。
【００６３】
未処理の先行パーティションが有る場合（ステップＳ７５：Ｙｅｓルート）、ステップＳ６５の処理に戻る。一方、未処理の先行パーティションが無い場合（ステップＳ７５：Ｎｏルート）、順序決定部１０３は、算出部１０４に第２設定処理の実行を指示する。これに応じ、算出部１０４は、第２設定処理を実行する（ステップＳ７７）。第２設定処理については、図１４乃至図１６を用いて説明したとおりであるので、説明を省略する。
【００６４】
一方、Ｔ１＞Ｔ２が成立する場合（ステップＳ７１：Ｙｅｓルート）、順序決定部１０３は、算出部１０４に第１設定処理の実行を指示する。これに応じ、算出部１０４は、第１設定処理を実行する（ステップＳ７３）。第１設定処理については、図１１乃至図１３を用いて説明したとおりであるので、説明を省略する。
【００６５】
初期化制御部１０１は、本パーティションの順序データを順序データ格納部１０５から読み出す。そして、初期化制御部１０１は、本パーティションの順序データに含まれる開始時刻に基づき、各ハードウエアの初期化を実行する（ステップＳ７９）。そして処理を終了する。
【００６６】
以上のような処理を実行すれば、複数の先行パーティションのうちいずれかの先行パーティションにおいてクロスバー１５の初期化が開始する時刻に、本パーティションにおいてもクロスバー１５の初期化を開始できるようになる。
【００６７】
［実施の形態３］
第１及び第２の実施の形態においては、システム制御ボード１０が起動指示を受け付けた際に初期化順序を最適化し、その後においては初期化順序の最適化を行わない。第３の実施の形態においては、１つのハードウエアの初期化が完了するたびに初期化順序の最適化を行う。
【００６８】
図１８に、第３の実施の形態におけるハードウエアの初期化シーケンスの一例を示す。図１８においては、パーティション＃０、パーティション＃１、パーティション＃２の順に起動指示を受け付ける。長方形の図形は、順序を決定するのに要する時間を表す。図１８の例では、パーティション＃１においてシステムボード、メモリ、クロスバー１５、ＣＰＵの順に初期化を実行することになっていた（図１８におけるシーケンス１８０１）が、メモリの初期化に予定の時間より長い時間がかかったとする。この場合、パーティション＃０におけるクロスバー１５の初期化の開始時刻と、パーティション＃１におけるクロスバー１５の初期化の開始時刻とを揃えることができなくなる。
【００６９】
そこで、パーティション＃１においてメモリの初期化が終了した際に、メモリの初期化の後にＣＰＵの初期化を実行し且つＣＰＵの初期化の後にクロスバー１５の初期化を行うように順序を変更する（図１８におけるシーケンス１８０２）。そして、パーティション＃２におけるクロスバー１５の初期化の開始時刻を、パーティション＃１におけるクロスバー１５の初期化の開始時刻と揃えるようにする。
【００７０】
図１９に、第３の実施の形態におけるハードウエアの初期化シーケンスの他の例を示す。図１９においては、パーティション＃０、パーティション＃１、パーティション＃２の順に起動指示を受け付ける。長方形の図形は、順序を決定するのに要する時間を表す。図１９の例では、パーティション＃０におけるクロスバー１５の初期化とパーティション＃１におけるクロスバー１５の初期化とを同じタイミングで開始することになっていたが、パーティション＃０においてメモリの初期化に失敗し、同じタイミングで開始することができなくなった。
【００７１】
そこで、パーティション＃０においてメモリの初期化が終了後、初期化順序の変更を行い、パーティション＃０におけるクロスバー１５の初期化とパーティション＃２におけるクロスバー１５の初期化とを同じタイミングで開始する。
【００７２】
このように、第３の実施の形態によれば、予想外の事態に対しても柔軟に対処し、情報処理装置１の起動に要する時間が長くなるのを抑制できるようになる。
【００７３】
［実施の形態４］
第４の実施の形態においては、先行パーティションにおいてクロスバー１５の初期化が開始するまでの時間が非常に長いような場合に対処できるようにするための処理について説明する。
【００７４】
図２０を用いて、第４の実施の形態における情報処理装置１が実行する処理について説明する。
【００７５】
情報処理装置１の管理者等は、情報処理装置１を起動するにあたり、パーティション＃０乃至＃２のうちいずれかのパーティション（以下、本パーティションと呼ぶ。ここでは、本パーティションをパーティション＃１とする）についての起動指示を入力する。これに応じ、情報処理装置１のシステム制御ボード１０は、管理者等から本パーティションについての起動指示の入力を受け付ける。そして、システム制御ボード１０の初期化制御部１０１は、初期化データ格納部１０２に格納された、初期化の状況を表す情報に基づき、既に起動を開始した他のパーティション（以下、先行パーティションと呼ぶ）が有るか判断する（図２０：ステップＳ８１）。
【００７６】
先行パーティションが無い場合（ステップＳ８１：Ｎｏルート）、初期化制御部１０１は、順序決定部１０３に本パーティションにおけるハードウエアの初期化の開始時刻を設定することを指示する。これに応じ、順序決定部１０３は、順序データ格納部１０５に登録されたデフォルトの順序に基づき、本パーティションにおけるハードウエアの初期化の開始時刻を設定する。そして、初期化制御部１０１は、順序データ格納部１０５に格納に設定された、デフォルト（すなわち初期設定）の開始時刻に従ってハードウエアの初期化を実行する（ステップＳ８３）。そして処理を終了する。
【００７７】
一方、先行パーティションが有る場合（ステップＳ８１：Ｙｅｓルート）、順序決定部１０３は、順序データ格納部１０５に格納された、先行パーティションの順序データを用いて、本処理時点から先行パーティションにおいてクロスバー１５の初期化を開始する時点までの時間Ｔ１を算出する（ステップＳ８５）。
【００７８】
順序決定部１０３は、順序データ格納部１０５に格納された、本パーティションの順序データを用いて、本処理時点から本パーティションにおいてクロスバー１５の初期化の前に実行すべき初期化が終了する時点までの時間Ｔ２を算出する（ステップＳ８７）。ステップＳ８７において、時間Ｔ２は、制約についての情報が「１」である処理に要する時間（すなわち、システムボードの初期化に要する時間）及び順序を決定する処理に要する時間を含む。
【００７９】
順序決定部１０３は、本パーティションにおいてクロスバー１５を初期化するのに要する時間を、順序データ格納部１０５に格納された、本パーティションの順序データから特定し、特定された時間をＴ２に加え、時間Ｔ３を算出する（ステップＳ８９）。
【００８０】
順序決定部１０３は、Ｔ１＞Ｔ３が成立するか判断する（ステップＳ９１）。Ｔ１＞Ｔ３が成立する場合（ステップＳ９１：Ｙｅｓルート）、先行パーティションにおいてクロスバー１５の初期化が開始する前に、本パーティションにおいてシステムボードの初期化及びクロスバー１５の初期化を行える。よって、順序決定部１０３は、先行パーティションにおいてクロスバー１５の初期化を開始するまでに本パーティションにおいてシステムボード及びクロスバー１５の初期化を終了するように、本パーティションにおけるクロスバー１５の初期化及び他のハードウエアの初期化の順番及び開始時刻を設定する。そして、初期化制御部１０１は、本パーティションにおいてクロスバー１５の初期化を開始するまでに初期化可能なハードウエアを初期化する（ステップＳ９３）。ステップＳ９３においては、本パーティションのシステムボードだけでなく、可能であれば他のハードウエア（例えばメモリ及びＣＰＵ等）も初期化される。そしてステップＳ１０１の処理に移行する。
【００８１】
一方、Ｔ１＞Ｔ３が成立しない場合（ステップＳ９１：Ｎｏルート）、順序決定部１０３は、Ｔ１＞Ｔ２が成立するか判断する（ステップＳ９５）。Ｔ１＞Ｔ２が成立する場合（ステップＳ９５：Ｙｅｓルート）、順序決定部１０３は、先行パーティションにおいてクロスバー１５の初期化を開始する時刻に本パーティションにおいてクロスバー１５の初期化を開始するように、本パーティションにおけるクロスバー１５の初期化及び他のハードウエアの初期化の開始時刻を設定する。そして、初期化制御部１０１は、Ｔ１が経過するまでに初期化可能なハードウエアを初期化する（ステップＳ９７）。ステップＳ９７においては、本パーティションのシステムボードだけでなく、可能であれば他のハードウエア（例えばメモリ及びＣＰＵ等）も初期化される。そしてステップＳ１０１の処理に移行する。
【００８２】
Ｔ１＞Ｔ２が成立しない場合（ステップＳ９５：Ｎｏルート）、順序決定部１０３は、先行パーティションにおいてクロスバー１５の初期化が終了した後に本パーティションにおいてクロスバー１５の初期化を開始するように、本パーティションにおけるクロスバー１５の初期化及び他のハードウエアの初期化の開始時刻を設定する。そして、初期化制御部１０１は、先行パーティションにおいてクロスバー１５の初期化が終了するまでに初期化可能なハードウエアを初期化する（ステップＳ９９）。ステップＳ９９においては、本パーティションのシステムボードだけでなく、可能であれば他のハードウエア（例えばメモリ及びＣＰＵ等）も初期化される。
【００８３】
初期化制御部１０１は、順序データ格納部１０５に格納された、本パーティションの順序データに基づき、本パーティションにおいてクロスバー１５を初期化する（ステップＳ１０１）。
【００８４】
そして、初期化制御部１０１は、順序データ格納部１０５に格納された、本パーティションの順序データに基づき、初期化が完了していないハードウエアを初期化する（ステップＳ１０３）。そして処理を終了する。
【００８５】
以上のような処理を実行すれば、先行パーティションにおいてクロスバー１５の初期化を開始するまでの時間が非常に長いような場合には、後続のパーティションにおけるクロスバー１５の初期化を先に開始できるようになる。
【００８６】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したシステム制御ボード１０の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００８７】
また、上で説明したデータ保持構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００８８】
なお、第２の実施の形態においては、ステップＳ６７において複数のパーティションの各々についてＴ１を算出し、Ｔ１が最も短いものから順にＴ１＞Ｔ２が成立するか判断してもよい。このようにすれば、後続パーティションにおいてＯＳが起動完了するまでの時間をより短縮できるようになる。
【００８９】
なお、先行パーティションは存在するが先行パーティションにおいてクロスバー１５の初期化が既に終了した場合には、後続パーティションにおけるハードウエアの初期化をデフォルトの順序どおりに実行してもよい。
【００９０】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００９１】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）起動を開始した第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部と、（Ｂ）第２のパーティションの起動を指示する起動指示を受け付けた場合に、第１のパーティションと第２のパーティションとが共有する第１のハードウエアの初期化が第１のパーティションにおいて開始する時刻である第１の時刻を、データ格納部から特定する特定部と、（Ｃ）第２のパーティションにおいて第１のハードウエアの初期化が第１の時刻に開始するように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータをデータ格納部に追加する決定部とを有する。
【００９２】
このように、複数のパーティションが共有するハードウエアを一括して初期化することで、排他制御が原因で発生する待ち時間を減らせるので、情報処理装置の起動に要する時間を短縮できるようになる。
【００９３】
また、上で述べたデータ格納部は、（ａ１）第２のパーティションにおけるハードウエアを初期化する順序の制約についてのデータをさらに格納してもよい。そして、上で述べた決定部は、（ｃ１）データ格納部に格納されている制約についてのデータに基づき、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定してもよい。このようにすれば、ハードウエアを初期化する順序に制約がある場合にも対処できるようになる。
【００９４】
また、上で述べたデータ格納部は、（ａ２）第２パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納してもよい。そして、上で述べた決定部は、（ｃ２）第１のハードウエアより先に初期化すべき第２のハードウエアを、データ格納部に格納されている制約についてのデータに基づき特定し、（ｃ３）データ格納部に格納されているデータに基づき、第１のパーティションにおいて第１のハードウエアの初期化が開始するまでの時間が、第２のハードウエアを初期化するのに要する時間より長いか判断し、（ｃ４）第１のパーティションにおいて第１のハードウエアの初期化が開始するまでの時間が、第２のハードウエアを初期化するのに要する時間より長い場合に、第２のパーティションにおいて第１のハードウエアの初期化を第１の時刻に開始するように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定してもよい。このようにすれば、第２のハードウエアの初期化に割り当てる時間が不足するのを防止できるようになる。
【００９５】
また、上で述べた決定部は、（ｃ５）第１のパーティションにおいて第１のハードウエアの初期化が開始するまでの時間が、第２のハードウエアを初期化するのに要する時間より短い又は同じである場合に、第２のパーティションにおいて第１のハードウエアの初期化を開始する時刻が、第１のパーティションにおいて第１のハードウエアの初期化を終了する時刻より後の時刻になるように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定してもよい。このようにすれば、複数のパーティションが共有するハードウエアを一括して初期化できない場合には別々に初期化できるようになる。
【００９６】
また、上で述べた決定部は、（ｃ６）第１のパーティションにおいて第１のハードウエアの初期化が開始するまでの時間と、第２のハードウエアを初期化するのに要する時間と第１のハードウエアを初期化するのに要する時間との和である第２の時間とを、データ格納部に格納されているデータに基づき特定し、（ｃ７）第１のハードウエアの初期化が開始するまでの時間が、第２の時間より長いか判断し、（ｃ８）第１のハードウエアの初期化が開始するまでの時間が第２の時間より長い場合に、第２のパーティションにおいて第１のハードウエア及び第２のハードウエアの初期化が第１の時刻より前の時刻に終了するように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定してもよい。このようにすれば、例えば第１のパーティションにおいて第１のハードウエアの初期化を開始するまでの時間が非常に長いような場合においても、情報処理装置の起動に要する時間を短縮できるようになる。
【００９７】
また、上で述べた決定部は、（ｃ９）第２のパーティションにおいて第２のハードウエアの初期化を終了してから第１のハードウエアの初期化を開始するまでの時間である第３の時間を、データ格納部に格納されているデータを用いて算出し、（ｃ１０）データ格納部に格納されているデータを用いて、第１のハードウエアより先に初期化可能なハードウエアのうち第３の時間内に初期化可能なハードウエアを特定し、特定された当該ハードウエアを前記第１のハードウエアより先に初期化するように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定してもよい。このようにすれば、初期化に割り当てられていない時間を有効に活用し、情報処理装置の起動に要する時間をより短縮できるようになる。
【００９８】
また、上で述べたデータ格納部は、（ａ３）第１パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納してもよい。そして、上で述べた決定部は、（ｃ１１）第１のパーティションにおいて第１のハードウエアの初期化が開始するまでの時間が、第２のハードウエアを初期化するのに要する時間と同じ又は短い場合に、データ格納部に格納されているデータを用いて、第１のパーティションにおいて第１のハードウエアの初期化を終了するまでの時間である第４の時間を算出し、（ｃ１２）データ格納部に格納されているデータを用いて、第１のハードウエアより先に初期化可能なハードウエアのうち第４の時間内に初期化可能なハードウエアを特定し、特定された当該ハードウエアを第１のハードウエアより先に初期化するように、第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定してもよい。このようにすれば、初期化に割り当てられていない時間を有効に活用し、情報処理装置の起動に要する時間をより短縮できるようになる。
【００９９】
また、上で述べた決定部は、（ｃ１３）第２のパーティションにおける１のハードウエアの初期化が終了する度に、第２のパーティションにおける初期化されていないハードウエアの初期化の順序を再決定してもよい。このようにすれば、実際の初期化の進捗及びエラーの発生等に応じて柔軟に順序を変更できるようになる。
【０１００】
また、本情報処理装置が、（Ｄ）データ格納部に格納されたデータに基づき、第１のパーティション及び第２のパーティションにおけるハードウエアの初期化を行う初期化部をさらに有してもよい。このようにすれば、決定された順序に従って初期化を実行できるようになる。
【０１０１】
本実施の形態の第２の態様に係る情報処理方法は、（Ｅ）第１のパーティションの起動を指示する起動指示を受け付けた場合に、起動を開始した第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部から、第１のパーティションと第２のパーティションとが共有する第１のハードウエアの初期化が第２のパーティションにおいて開始する時刻である第１の時刻を特定し、（Ｆ）第１のパーティションにおいて第１のハードウエアの初期化が第１の時刻に開始するように、第１のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータをデータ格納部に追加する処理を含む。
【０１０２】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１０３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０４】
（付記１）
起動を開始した第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部と、
第２のパーティションの起動を指示する起動指示を受け付けた場合に、前記第１のパーティションと前記第２のパーティションとが共有する第１のハードウエアの初期化が前記第１のパーティションにおいて開始する時刻である第１の時刻を、前記データ格納部から特定する特定部と、
前記第２のパーティションにおいて前記第１のハードウエアの初期化が前記第１の時刻に開始するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを前記データ格納部に追加する決定部と、
を有する情報処理装置。
【０１０５】
（付記２）
前記データ格納部は、前記第２のパーティションにおけるハードウエアを初期化する順序の制約についてのデータをさらに格納し、
前記決定部は、
前記データ格納部に格納されている前記制約についてのデータに基づき、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
付記１記載の情報処理装置。
【０１０６】
（付記３）
前記データ格納部は、前記第２パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納し、
前記決定部は、
前記第１のハードウエアより先に初期化すべき第２のハードウエアを、前記データ格納部に格納されている前記制約についてのデータに基づき特定し、
前記データ格納部に格納されているデータに基づき、前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間より長いか判断し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間より長い場合に、前記第２のパーティションにおいて前記第１のハードウエアの初期化を前記第１の時刻に開始するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
付記２記載の情報処理装置。
【０１０７】
（付記４）
前記決定部は、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間より短い又は同じである場合に、前記第２のパーティションにおいて前記第１のハードウエアの初期化を開始する時刻が、前記第１のパーティションにおいて前記第１のハードウエアの初期化を終了する時刻より後の時刻になるように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
付記３記載の情報処理装置。
【０１０８】
（付記５）
前記データ格納部は、前記第２パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納し、
前記決定部は、
前記第１のハードウエアより先に初期化すべき第２のハードウエアを、前記データ格納部に格納されている前記制約についてのデータに基づき特定し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間と、前記第２のハードウエアを初期化するのに要する時間と前記第１のハードウエアを初期化するのに要する時間との和である第２の時間とを、前記データ格納部に格納されているデータに基づき特定し、
前記第１のハードウエアの初期化が開始するまでの時間が、前記第２の時間より長いか判断し、
前記第１のハードウエアの初期化が開始するまでの時間が前記第２の時間より長い場合に、前記第２のパーティションにおいて前記第１のハードウエア及び前記第２のハードウエアの初期化が前記第１の時刻より前の時刻に終了するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する
付記２記載の情報処理装置。
【０１０９】
（付記６）
前記決定部は、
前記第２のパーティションにおいて前記第２のハードウエアの初期化を終了してから前記第１のハードウエアの初期化を開始するまでの時間である第３の時間を、前記データ格納部に格納されているデータを用いて算出し、
前記データ格納部に格納されているデータを用いて、前記第１のハードウエアより先に初期化可能なハードウエアのうち前記第３の時間内に初期化可能なハードウエアを特定し、特定された当該ハードウエアを前記第１のハードウエアより先に初期化するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する、
付記３記載の情報処理装置。
【０１１０】
（付記７）
前記データ格納部は、前記第１パーティションにおける各ハードウエアを初期化するのに要する時間のデータをさらに格納し、
前記決定部は、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が開始するまでの時間が、前記第２のハードウエアを初期化するのに要する時間と同じ又は短い場合に、前記データ格納部に格納されているデータを用いて、前記第１のパーティションにおいて前記第１のハードウエアの初期化を終了するまでの時間である第４の時間を算出し
前記データ格納部に格納されているデータを用いて、前記第１のハードウエアより先に初期化可能なハードウエアのうち前記第４の時間内に初期化可能なハードウエアを特定し、特定された当該ハードウエアを前記第１のハードウエアより先に初期化するように、前記第２のパーティションにおける各ハードウエアの初期化を開始する時刻を決定する、
付記３記載の情報処理装置。
【０１１１】
（付記８）
前記決定部は、
前記第２のパーティションにおける１のハードウエアの初期化が終了する度に、前記第２のパーティションにおける初期化されていないハードウエアの初期化の順序を再決定する
付記１乃至７のいずれか１つ記載の情報処理装置。
【０１１２】
（付記９）
前記データ格納部に格納されたデータに基づき、前記第１のパーティション及び前記第２のパーティションにおけるハードウエアの初期化を行う初期化部
をさらに有する付記１乃至８のいずれか１つ記載の情報処理装置。
【０１１３】
（付記１０）
第１のパーティションの起動を指示する起動指示を受け付けた場合に、起動を開始した第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部から、前記第１のパーティションと前記第２のパーティションとが共有する第１のハードウエアの初期化が前記第２のパーティションにおいて開始する時刻である第１の時刻を特定し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が前記第１の時刻に開始するように、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを前記データ格納部に追加する、
処理をコンピュータに実行させるためのプログラム。
【０１１４】
（付記１１）
第１のパーティションの起動を指示する起動指示を受け付けた場合に、起動を開始した第２のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを格納するデータ格納部から、前記第１のパーティションと前記第２のパーティションとが共有する第１のハードウエアの初期化が前記第２のパーティションにおいて開始する時刻である第１の時刻を特定し、
前記第１のパーティションにおいて前記第１のハードウエアの初期化が前記第１の時刻に開始するように、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻を決定し、前記第１のパーティションにおける各ハードウエアの初期化を開始する時刻のデータを前記データ格納部に追加する、
処理をコンピュータが実行する情報処理方法。
【符号の説明】
【０１１５】
１  情報処理装置    １０  システム制御ボード
１５  クロスバー    １０１  初期化制御部
１０２  初期化データ格納部    １０３  順序決定部
１０４  算出部    １０５  順序データ格納部
１０６  ハードウエアデータ格納部    １００１  ＣＰＵ
１００２  ＲＯＭ    １００３  メインメモリ
【図１】
0006390322.tif 000002
【図２】
0006390322.tif 000003
【図３】
0006390322.tif 000004
【図４】
0006390322.tif 000005
【図５】
0006390322.tif 000006
【図６】
0006390322.tif 000007
【図７】
0006390322.tif 000008
【図８】
0006390322.tif 000009
【図９】
0006390322.tif 000010
【図１０】
0006390322.tif 000011
【図１１】
0006390322.tif 000012
【図１２】
0006390322.tif 000013
【図１３】
0006390322.tif 000014
【図１４】
0006390322.tif 000015
【図１５】
0006390322.tif 000016
【図１６】
0006390322.tif 000017
【図１７】
0006390322.tif 000018
【図１８】
0006390322.tif 000019
【図１９】
0006390322.tif 000020
【図２０】
0006390322.tif 000021