(57)【要約】【課題】情報処理装置の起動時のログ出力を制限せずに、ＯＳ起動時間を短縮すること。【解決手段】ＳＢＳＰ１０ａがログをログプロセッサ１０ｂのｓｐａｄ１３に書き込み、ｓｐａｄ１３からシリアルポート５０へのログの書き出しはログプロセッサ１０ｂが行う。また、メインメモリ４０の初期化が終了すると、ログプロセッサ１０ｂは、ｓｐａｄ１３から読み出したデータを一旦logmem４１に書き込んでｓｐａｄ１３をクリアする。また、ログプロセッサ１０ｂのログ出力が完了すると、ＳＢＳＰ１０ａはＢＩＯＳとＯＳの連携のもと、ログプロセッサ１０ｂ及びlogmem４１をリソースとして追加する。【選択図】図１
2015088133.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを有する情報処理装置において、
起動時にハードウェアの初期化処理を行いログを生成する第１のプロセッサと、
前記第１のプロセッサが生成したログをメインメモリ中の専用メモリ領域を用いて出力する処理を行う第２のプロセッサとを有し、
前記ログの出力が完了すると、前記第２のプロセッサ及び専用メモリ領域を活性増設することを特徴とする情報処理装置。
【請求項２】
前記第１のプロセッサは、前記第２のプロセッサが前記出力処理を完了する前にＯＳをブートして前記第２のプロセッサと前記専用メモリ領域を除くリソースをＯＳの管理下におき、前記第２のプロセッサが前記出力処理を完了すると、前記第２のプロセッサと前記専用メモリ領域をＯＳの管理下に組み入れることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のプロセッサは、前記第１のプロセッサがメインメモリを初期化する前は、前記ログをシリアルポートに出力し、前記第１のプロセッサがメインメモリを初期化した後は、前記ログを前記専用メモリ領域に書き込み、該書き込んだログを前記専用メモリから読み出してシリアルポートに出力することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１のプロセッサは、前記ログを前記第２のプロセッサのレジスタに書き込み、
前記第２のプロセッサは、前記レジスタをポーリングして前記ログを出力処理することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
複数のプロセッサを有する情報処理装置を起動する起動方法おいて、
第１のプロセッサがハードウェアの初期化処理を行ってログを生成し、
第２のプロセッサが前記第１のプロセッサが生成したログをログ専用の専用メモリ領域を用いて出力する処理を行い、
前記ログの出力が完了すると、前記第２のプロセッサ及び専用メモリ領域を活性増設する
ことを特徴とする起動方法。
【請求項６】
複数のプロセッサを有する情報処理装置を起動する起動プログラムにおいて、
第１のプロセッサにハードウェアの初期化処理を行わせてログを生成させ、
第２のプロセッサに前記第１のプロセッサが生成したログをログ専用の専用メモリ領域を用いて出力する処理を行わせ、
前記ログの出力が完了すると、前記第１のプロセッサに前記第２のプロセッサ及び専用メモリ領域を活性増設させる
ことを特徴とする起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、起動方法及び起動プログラムに関する。
【背景技術】
【０００２】
複数のプロセッサを有する情報処理装置のＢＩＯＳ起動処理において、情報処理装置の代表プロセッサＳＢＳＰ（System  Boot  Strap  Processor）は、ハードウェアの初期化処理とシリアルポートへのログ（文字列情報）出力処理を逐次的に行っている。ＢＩＯＳ起動処理が完了すると、情報処理装置は、装置が有するプロセッサやメインメモリ、デバイス等のリソース情報をオペレーティングシステム（Operating  System：ＯＳ）に引渡し、ＯＳの起動処理を実行する。
【０００３】
ＢＩＯＳ起動処理ではＳＢＳＰが大部分の処理を行うが、その間、ＳＢＳＰ以外の残りの全てのプロセッサＡＰ（Application  Processor）はＳＢＳＰからの処理要求が来るまでの間は何もせずに待っている。
【０００４】
シリアルポートへのログ出力は１１５ｋｂｐｓ（キロビット／秒）で行われ、プロセッサの動作速度（２ＧＨｚ以上）と比べて大きな速度差があるため、ＢＩＯＳ起動処理中にシリアルポートの利用待ちが頻繁に発生する。情報処理装置の起動時には、ＳＢＳＰだけがハードウェア初期化等のＢＩＯＳ起動処理を行いつつ、シリアルポートにログ出力も行っているため、シリアルポートの利用待ちの時間分ＯＳの起動が遅くなる。一方、ＯＳ起動の高速化を図るためにログ量を少なく抑えると、情報処理装置で問題発生時の解析に必要となるログ情報が不足する。
【０００５】
なお、ログの収集や処理に関連する従来技術としては、複数のプロセッサコアを有するＣＰＵで、複数のプロセッサコアのうちの１つを障害処理用プロセッサコアとし、障害処理用プロセッサが障害情報の収集や記録を行う技術がある（例えば、特許文献１参照）。また、システムバス上に主ＣＰＵにより主記憶部からのロギング情報の書き込みと読み出しとを同時に行える共通ＲＡＭを備え、共通ＲＡＭのデータを不揮発性メモリへ転送する副ＣＰＵを備えるＣＰＵシステムがある（例えば、特許文献２参照）。
【０００６】
また、マルチプロセッサシステムにおいて、障害発生時の障害情報採取を複数のプロセッサで並列に実行することで障害情報採取時間を短縮する技術がある（例えば、特許文献３参照）。また、ログバッファの取得要求に応答してプールから取得したログバッファを要求元に渡し、ログバッファの解放要求に応答して拡張ログバッファ対応の拡張メモリをメモリへ返却し、他のログバッファをプールに返却する技術がある（例えば、特許文献４参照）。
【０００７】
また、発生した障害の種別に対応した障害コードを蓄積する障害コードログバッファと、障害ログ情報を記憶する障害ログ情報テーブルに基づいて、補助記憶装置へ障害情報の出力を行う技術がある（例えば、特許文献５参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−１２９１０１号公報
【特許文献２】特開平７−３１９８１６号公報
【特許文献３】特開平１１−３３８８３８号公報
【特許文献４】特開平１−２１４９号公報
【特許文献５】特開平４−１９５２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＯＳ起動時間と出力させるログ情報量との間にトレードオフが発生するが、通常はＯＳ起動時間を優先させてログ量を少なく抑えたＢＩＯＳが使用される。そのため、ＯＳ起動時に障害が発生した際は、ログ量を増やしたＢＩＯＳに切り替えて障害を再現させてログ解析を行う必要があり、障害の調査に時間が掛かるという問題がある。
【００１０】
また、発生頻度の低い障害の場合、再現環境を用意しても障害が再現できない場合がある。さらに、タイミングに依存する障害の場合、ＢＩＯＳ処理の時間が変化することで、障害がそもそも起きなくなってしまう可能性もある。
【００１１】
本発明は、１つの側面では、情報処理装置の起動時のログ出力を制限せずに、ＯＳ起動時間を短縮することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する情報処理装置は、１つの態様において、起動時にハードウェアの初期化処理を行いログを生成する第１のプロセッサと、前記第１のプロセッサが生成したログをメインメモリ中の専用メモリ領域を用いて出力する処理を行う第２のプロセッサとを有する。そして、本願の開示する情報処理装置は、前記ログの出力が完了すると、前記第２のプロセッサ及び専用メモリ領域を活性増設する。
【発明の効果】
【００１３】
１実施態様によれば、情報処理装置の起動時のログ出力を制限せずに、ＯＳ起動時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例に係る情報処理装置によるロギング方式を説明するための図である。
【図２】図２は、実施例に係る情報処理装置の構成を示す図である。
【図３】図３は、プロセッサの構成を示す図である。
【図４】図４は、ＲＯＭ及びストレージが記憶するプログラムを示す図である。
【図５】図５は、メインメモリに展開されたプログラムコードを示す図である。
【図６】図６は、ログ出力処理（メインメモリ初期化前）のフローを示すフローチャートである。
【図７】図７は、ログ出力処理（メインメモリ初期化後）のフローを示すフローチャートである。
【図８】図８は、リソース追加処理のフローを示すフローチャートである。
【図９】図９は、実施例に係るロギング方式の効果について説明するための図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する情報処理装置、起動方法及び起動プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１６】
まず、実施例に係る情報処理装置によるロギング方式について説明する。図１は、実施例に係る情報処理装置によるロギング方式を説明するための図である。図１（ａ）は、メインメモリ初期化前のロギング方式を示し、図１（ｂ）は、メインメモリ初期化後のロギング方式を示す。
【００１７】
実施例に係るロギング方式では、ＳＢＳＰ１０ａ以外のプロセッサ１０のうち１台がログ処理専用のログプロセッサ１０ｂとして動作する。ＳＢＳＰ１０ａとログプロセッサ１０ｂ以外の他のプロセッサ１０はアプリケーションプロセッサＡＰとして動作する。
【００１８】
図１（ａ）に示すように、メインメモリの初期化前は、ＳＢＳＰ１０ａは、ログプロセッサ１０ｂが有するスクラッチパッドレジスタｓｐａｄ（scratchpad  register）１３のクリアを待つ（１）。そして、ＳＢＳＰ１０ａは、ｓｐａｄ１３がクリアされるとｓｐａｄ１３へログ書き込みを行う（２）。ここで、ｓｐａｄ１３は、プログラムによりデータを一時的に保管するための作業用補助メモリとしてプロセッサ内部で使用可能なレジスタである。
【００１９】
また、ログプロセッサ１０ｂは、ｓｐａｄ１３をポーリングし（３）、ｓｐａｄ１３にログが書き込まれると、シリアルポート５０にログを書き出し、ｓｐａｄ１３をクリアする（４）。
【００２０】
そして、ＢＩＯＳによりメインメモリの初期化が完了すると、図１（ｂ）に示すように、ＳＢＳＰ１０ａは、ログプロセッサ１０ｂが有するｓｐａｄ１３のクリアを待ち（１）、ｓｐａｄ１３がクリアされるとｓｐａｄ１３へログ書き込みを行う（２）。
【００２１】
また、ログプロセッサ１０ｂは、ｓｐａｄ１３をポーリングし（３）、ｓｐａｄ１３にログが書き込まれると、logmem４１にログを書き込み、ｓｐａｄ１３をクリアする（４）。ここで、logmem４１は、起動時のログを格納するための専用のメモリであり、メインメモリの一部である。また、ログプロセッサ１０ｂは、logmem４１にログがある場合、シリアルポート５０にログを書き出し、logmem４１をクリアする（５）。
【００２２】
このように、実施例に係るロギング方式では、ＳＢＳＰ１０ａは、ログをシリアルポート５０に書き出すことなく、ログをログプロセッサ１０ｂのｓｐａｄ１３に書き込む。また、ログプロセッサ１０ｂは、メインメモリ初期化後は、ログをlogmem４１に書き込み、ｓｐａｄ１３をクリアする。
【００２３】
したがって、ＳＢＳＰ１０ａは、シリアルポートが使用可能になるのを待つ必要がなく、ＯＳの起動処理を行うことができる。このため、情報処理装置は、ログの出力を抑えることなく、従来と比較してＯＳの起動処理を行う高速に行うことができる。
【００２４】
次に、実施例に係る情報処理装置の構成について説明する。図２は、実施例に係る情報処理装置の構成を示す図である。図２に示すように、情報処理装置１は、複数のプロセッサ１０と、ＲＯＭ（Read  Only  Memory）２０と、ストレージ３０と、メインメモリ４０と、シリアルポート５０とを有する。
【００２５】
なお、複数のプロセッサ１０には、ＳＢＳＰ１０ａ及びログプロセッサ１０ｂとして動作するプロセッサ１０が含まれる。また、図２では説明の便宜上、複数のプロセッサ１０には、ＳＢＳＰ１０ａ及びログプロセッサ１０ｂを含めて３台のプロセッサ１０のみを示したが、情報処理装置１は、任意の台数のプロセッサ１０を有することができる。複数のプロセッサ１０、ＲＯＭ２０、ストレージ３０、メインメモリ４０及びシリアルポート５０はシステムバス６０で接続される。
【００２６】
プロセッサ１０は、ＲＯＭ２０やメインメモリ４０に格納されたプログラムを読み出して実行する演算処理装置である。ＲＯＭ２０は、ＢＩＯＳなど初期化に必要なプログラムを記憶する読み出し専用メモリである。
【００２７】
ストレージ３０は、データを記憶する不揮発性記憶装置であり、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などである。ストレージ３０にはＯＳやアプリケーションプログラムがインストールされ、ＯＳやアプリケーションプログラムはメインメモリ４０に読み出されて実行される。
【００２８】
メインメモリ４０は、ＲＯＭ２０やストレージ３０から読み出されてプログラムや演算の途中結果などを記憶するＲＡＭ（Random  Access  Memory）である。メインメモリ４０の一部は、logmem４１として使用される。
【００２９】
シリアルポート５０は、シリアルインタフェースに接続するポートであり、シリアルインタフェースを介して端末２に接続される。シリアルポート５０に書き出されたログは、端末２の表示装置に表示される。
【００３０】
図３は、プロセッサ１０の構成を示す図である。図３に示すように、ＳＢＳＰ１０ａ及びログプロセッサ１０ｂを含め、各プロセッサは、演算部１１と、レジスタ１２とを有する。
【００３１】
演算部１１は、メインメモリ４０に格納された命令コードを読出し、解析し、実行する。レジスタ１２は、プロセッサ１０の各種情報を保持する領域である。レジスタ１２には、ｓｐａｄ１３が含まれる。
【００３２】
図４は、ＲＯＭ２０及びストレージ３０が記憶するプログラムを示す図である。図４（ａ）は、ＲＯＭ２０が記憶するプログラムを示し、図４（ｂ）は、ストレージ３０が記憶するプログラムを示す。
【００３３】
図４（ａ）に示すように、ＲＯＭ２０には、ＢＩＯＳコード７０と、logprocコード８０が格納される。ＢＩＯＳコード７０は、情報処理装置１を初期化して利用可能な状態にする。logprocコード８０は、ログプロセッサ１０ｂがログ出力処理に使用するプログラムである。
【００３４】
図４（ｂ）に示すように、ストレージ３０には、ＯＳコード９０が格納される。ＢＩＯＳコード７０、logprocコード８０、ＯＳコード９０は、ＢＩＯＳ及びＯＳの処理によってＲＯＭ２０及びストレージ３０から読み出され、メインメモリ４０に展開される。
【００３５】
図５は、メインメモリ４０に展開されたプログラムコードを示す図である。図５に示すように、ＢＩＯＳコード７０は、初期化機能７１と、ログプロセッサ生成機能７２と、logmem生成機能７３と、リソース隠蔽機能７４と、ログ生成機能７５と、ＯＳ呼び出し機能７６とを有する。
【００３６】
初期化機能７１は、情報処理装置（１）内の物理リソースを初期化し、ＯＳを起動可能な状態にする機能である。ログプロセッサ生成機能７２は、ＡＰの１つをログ処理専用のログプロセッサ１０ｂとして起動する機能である。logmem生成機能７３は、メインメモリ（４０）上にログ出力処理に使用する専用のメモリ領域logmem４１を確保する機能である。
【００３７】
ＳＢＳＰ１０ａは、ＢＩＯＳ起動処理において、メインメモリ４０の一部をlogmem４１として、また情報処理装置（１）中のいずれか１つのＡＰをログプロセッサ１０ｂとして確保し、ログ出力処理を行わせるために優先的に初期化を行う。ログプロセッサ１０ｂは、初期化処理において、自身の有するレジスタ１２からｓｐａｄ１３を確保してＳＢＳＰ１０ａからのログ書き込みに備える。
【００３８】
logmem４１は、コード領域とデータ領域に分かれ、コード領域にはＲＯＭ２０からlogprocコード８０がロードされる。データ領域には、実際のlogデータ（ログデータ）４３が書き込まれる。logmem４１は、通常のメインメモリ領域とは異なり、ＢＩＯＳが起動処理を完了し、ＯＳに処理を引き渡した後も、ログ出力処理が完了するまでの間、ＯＳの管理下には置かれない。
【００３９】
リソース隠蔽機能７４は、logmem４１として使用されるメインメモリ領域とログプロセッサ１０ｂとをＯＳから一時的に隠蔽するための処理を行う機能である。ログプロセッサ１０ｂとlogmem４１は、ＯＳ起動後もログ出力処理のため、ＯＳから隠蔽される必要がある。ＯＳはＢＩＯＳが作成するＡＣＰＩ（Advanced  Configuration  and  Power  Interface）テーブル４２によりハードウェアリソースを知るため、ＢＩＯＳはＡＣＰＩテーブル４２にはログプロセッサ１０ｂとlogmem４１を追加せず、これらの資源をＯＳに渡さない。
【００４０】
これにより、ＯＳは、ＡＣＰＩテーブル４２に記載されていないログプロセッサ１０ｂとlogmem４１の存在を知ることなく情報処理装置１の起動を行う。なお、ログ出力処理が完了すると、ログ出力処理に使用されていたリソースは、情報処理装置１を停止することなくリソースを追加する機能であるhot-add（活性増設）機能により、ＯＳの管理下に置かれる。
【００４１】
ログ生成機能７５は、ログをログプロセッサ１０ｂやlogmem４１に渡す処理を行う機能である。ＳＢＳＰ１０ａは、ＢＩＯＳ起動処理の各フェーズにおいて作成したＢＩＯＳ起動ログをログプロセッサ１０ｂのｓｐａｄ１３に書き込む。ＳＢＳＰ１０ａは、ｓｐａｄ１３に空きがない場合は、ｓｐａｄ１３が使用可能になるまで待つ。
【００４２】
ＳＢＳＰ１０ａは、ＢＩＯＳ起動処理の最終フェーズが終了し、ＯＳに処理を引き渡す際に、特別なブート完了識別子をログに追加する。ログプロセッサ１０ｂは、ブート完了識別子を検出すると、ログ出力処理に使用されていたリソースをhot-add機能によりＯＳの管理下に置くようにＳＢＳＰ１０ａに指示する。
【００４３】
ＯＳ呼び出し機能７６は、情報処理装置１の初期化後にＯＳを呼び出す機能である。ＯＳ呼び出し機能により、ＯＳのブート処理が行われ、ＯＳは順次メインメモリ上に展開される。
【００４４】
logprocコード８０は、ログ取得機能８１と、ログ出力機能８２と、リソース追加判定機能８３と、リソース追加要求機能８４とを有する。
【００４５】
ログ取得機能８１は、ログ生成機能７５により生成されたログを取得し、logmem４１へ保持する機能である。ログ出力機能８２は、logmem４１に保持されたログをシリアルポート５０に出力する機能である。
【００４６】
メインメモリ４０の初期化前は、ログプロセッサ１０ｂは、ｓｐａｄ１３をポーリングにより監視し、ＳＢＳＰ１０ａからの書き込みがある場合はシリアルポート５０の状態を確認する。そして、シリアルポート５０が使用可能であれば、ログプロセッサ１０ｂは、ログをｓｐａｄ１３から読み出してシリアルポート５０に出力し、ｓｐａｄ１３をクリアする。シリアルポート５０が使用中の場合は、ログプロセッサ１０ｂは、使用可能になるまでログ出力処理を待つ。ＳＢＳＰ１０ａは、メインメモリ４０の初期化が完了すると、logmem４１が使用可能になったことを示すフラグを立てる。
【００４７】
メインメモリ４０の初期化後は、ログプロセッサ１０ｂは、ｓｐａｄ１３をポーリングにより監視し、ＳＢＳＰ１０ａからの書き込みがある場合は、ログをｓｐａｄ１３から読み出す。そして、logmem４１が使用可能になったことを示すフラグが立っている場合は、ログプロセッサ１０ｂは、logmem４１にログを書き込み、ｓｐａｄ１３をクリアする。
【００４８】
また、ログプロセッサ１０ｂは、logmem４１にログが書き込まれている場合、シリアルポート５０の状態を確認し、シリアルポート５０が使用可能であればログを出力して出力したログをlogmem４１から削除する。シリアルポート５０が使用中の場合は、ログプロセッサ１０ｂは、使用可能になるまでシリアルポート５０へのログ出力を待つ。
【００４９】
リソース追加判定機能８３は、ログ出力完了を判定し、ログプロセッサ１０ｂ及びlogmem４１の隠蔽を解除する判定をする機能である。ログプロセッサ１０ｂは、シリアルポート５０に出力したログにブート完了識別子を検出した場合、全てのログ出力が完了したと判定する。
【００５０】
リソース追加要求機能８４は、ＯＳにログプロセッサ１０ｂ及びlogmem４１の追加を依頼する機能である。ログプロセッサ１０ｂは、全てのログ出力が完了したと判定した場合、ＳＭＩ（System  Management  Interrupt）を発行し、ＳＢＳＰ１０ａに対してログプロセッサ１０ｂとlogmem４１を情報処理装置１のリソースとして追加することを要求する。ＳＢＳＰ１０ａは、ＳＭＩを受け、既存のＡＣＰＩの仕組み及びＯＳのリソース追加機能９３と連携して、ログプロセッサ１０ｂとlogmem４１を情報処理装置１のリソースとして追加する。
【００５１】
ＯＳコード９０は、ＯＳを起動実行するためのＯＳ起動処理機能９１及びＯＳ動作処理機能９２を有する。また、ＯＳコード９０は、リソースの追加を実現するためのリソース追加機能９３を有する。
【００５２】
次に、ログ出力処理（メインメモリ初期化前）のフローについて説明する。図６は、ログ出力処理（メインメモリ初期化前）のフローを示すフローチャートである。図６に示すように、ＳＢＳＰ１０ａは、ログ専用のプロセッサを確保し（ステップＳ１）、ＢＩＯＳブート処理を行う（ステップＳ２）。
【００５３】
ＳＢＳＰ１０ａは、ＢＩＯＳブート処理中にログを生成すると、ｓｐａｄ１３が使用可能か否かを判定し（ステップＳ３）、ｓｐａｄ１３が使用可能でない場合には、使用可能になるまで待つ。
【００５４】
一方、ｓｐａｄ１３が使用可能である場合には、ＳＢＳＰ１０ａは、ｓｐａｄ１３にログを書き込む（ステップＳ４）。そして、ＳＢＳＰ１０ａは、メインメモリ４０の初期化が完了したか否かを判定し（ステップＳ５）、メインメモリ４０の初期化が完了していない場合には、ステップＳ２に戻ってＢＩＯＳブート処理を継続する。一方、メインメモリ４０の初期化が完了した場合には、ＳＢＳＰ１０ａは、メインメモリ初期化完了フラグに１をセットし（ステップＳ６）、メインメモリ初期化後のログ出力処理に進む。
【００５５】
また、ログプロセッサ１０ｂは、ｓｐａｄ１３にデータがあるか否かを判定し（ステップＳ１１）、データがない場合には、データが書き込まれるまで待ち、データがある場合には、シリアルポート５０が使用可能か否かを判定する（ステップＳ１２）。その結果、シリアルポート５０が使用可能でない場合には、ログプロセッサ１０ｂは、シリアルポート５０が使用可能になるまで待つ。
【００５６】
一方、シリアルポート５０が使用可能である場合には、ログプロセッサ１０ｂは、シリアルポート５０にログを転送し、ログが転送済みであるｓｐａｄ１３をクリアする（ステップＳ１３）。
【００５７】
そして、ログプロセッサ１０ｂは、メインメモリ初期化完了フラグが１であるか否かを判定し（ステップＳ１４）、１でない場合には、メインメモリ４０の初期化が完了していない場合であるので、ステップＳ１１に戻る。一方、メインメモリ初期化完了フラグが１である場合には、ログプロセッサ１０ｂは、メインメモリ初期化後のログ出力処理に進む。
【００５８】
このように、ＳＢＳＰ１０ａは、ｓｐａｄ１３のログを書き込むだけで、シリアルポート５０へのログ出力はログプロセッサ１０ｂが行うので、ＳＢＳＰ１０ａは、従来より高速にＢＩＯＳブート処理を行うことができる。
【００５９】
次に、ログ出力処理（メインメモリ初期化後）のフローについて説明する。図７は、ログ出力処理（メインメモリ初期化後）のフローを示すフローチャートである。図７に示すように、ＳＢＳＰ１０ａは、ＢＩＯＳコード７０及びlogprocコード８０をメインメモリ４０に展開し（ステップＳ２１）、メインメモリ４０に展開したＢＩＯＳコード７０を用いて引き続きＢＩＯＳブート処理を行う（ステップＳ２２）。
【００６０】
ＳＢＳＰ１０ａは、ＢＩＯＳブート処理中にログを生成すると、ｓｐａｄ１３が使用可能か否かを判定し（ステップＳ２３）、ｓｐａｄ１３が使用可能でない場合には、使用可能になるまで待つ。
【００６１】
一方、ｓｐａｄ１３が使用可能である場合には、ＳＢＳＰ１０ａは、ｓｐａｄ１３にログを書き込む（ステップＳ２４）。そして、ＳＢＳＰ１０ａは、ＢＩＯＳブートが完了したか否かを判定し（ステップＳ２５）、完了していない場合には、ステップＳ２２に戻ってＢＩＯＳブート処理を継続する。一方、ＢＩＯＳが完了した場合には、ＳＢＳＰ１０ａは、ｓｐａｄ１３にブート完了識別子を書き込んでＯＳに処理を引き渡し（ステップＳ２６）、リソース追加処理に進む。
【００６２】
また、ログプロセッサ１０ｂは、ｓｐａｄ１３にデータがあるか否かを判定し（ステップＳ３１）、データがある場合には、ｓｐａｄ１３のデータをlogmem４１に記録し、ｓｐａｄ１３をクリアする（ステップＳ３２）。
【００６３】
そして、ログプロセッサ１０ｂは、logmem４１にデータがあるか否かを判定し（ステップＳ３３）、データがない場合には、ステップＳ３１に戻り、データがある場合には、シリアルポート５０が使用可能か否かを判定する（ステップＳ３４）。その結果、シリアルポート５０が使用可能でない場合には、ログプロセッサ１０ｂは、シリアルポート５０が使用可能になるまで待つ。
【００６４】
一方、シリアルポート５０が使用可能である場合には、ログプロセッサ１０ｂは、シリアルポート５０にログを転送し、ログが転送済みであるlogmem４１をクリアする（ステップＳ３５）。そして、ログプロセッサ１０ｂは、転送したログにブート完了識別子があるか否かを判定し（ステップＳ３６）、ブート完了識別子がない場合には、ステップＳ３１に戻り、ある場合には、リソース追加処理に進む。
【００６５】
このように、ＳＢＳＰ１０ａはｓｐａｄ１３にログを書き込み、ログプロセッサ１０ｂはログを一端logmem４１に記録してｓｐａｄ１３をクリアするので、ＳＢＳＰ１０ａは、メインメモリ初期化前と比較して高速にＢＩＯＳブート処理を行うことができる。
【００６６】
次に、リソース追加処理のフローについて説明する。図８は、リソース追加処理のフローを示すフローチャートである。図８に示すように、ＳＢＳＰ１０ａは、ログプロセッサ１０ｂからＳＭＩを受信したか否かを判定し（ステップＳ４１）、ＳＭＩを受信していない場合には、ＳＭＩの受信を待つ。
【００６７】
一方、ログプロセッサ１０ｂからＳＭＩを受信した場合には、ＳＢＳＰ１０ａは、ＳＭＩハンドラの処理によってログプロセッサ１０ｂとlogmem４１を情報処理装置１のリソースとして組み込む（ステップＳ４２）。
【００６８】
また、ログプロセッサ１０ｂは、ＳＢＳＰ１０ａにＳＭＩを発行してHalt状態に遷移すし（ステップＳ５１）、情報処理装置１のリソースとして追加されるのを待つ。
【００６９】
このように、ＳＢＳＰ１０ａは、ＳＭＩハンドラの処理によってログプロセッサ１０ｂとlogmem４１を情報処理装置１のリソースとして活性増設する。したがって、ログプロセッサ１０ｂとlogmem４１は起動時のログ出力処理後にアプリケーションなどによる利用が可能となる。
【００７０】
次に、実施例に係るロギング方式の効果について説明する。図９は、実施例に係るロギング方式の効果について説明するための図である。図９（ａ）は、従来のロギング方式によるＯＳブート完了までの時間経過を示し、図９（ｂ）は、実施例に係るロギング方式によるhot-add処理までの時間経過を示す。
【００７１】
図９（ａ）に示すように、従来のロギング方式では、ＳＢＳＰ１０ａだけが初期化処理を行い、他のＡＰは、ＳＢＳＰ１０ａからの指示により間欠的に処理を行うだけである。また、ＳＢＳＰ１０ａが直接シリアルポート５０にログ出力を行うことから、シリアルポート使用待ち時間が頻繁に発生し、ＯＳ起動が遅くなる。また、ログ出力を減らすとＯＳ起動時間は短縮されるが、障害発生時に調査が難航する。
【００７２】
一方、図９（ｂ）に示すように、実施例に係るロギング方式では、ＳＢＳＰ１０ａはログをｓｐａｄ１３に出力し、ｓｐａｄ１３の待ち時間はシリアルポート５０の待ち時間に比べて大幅に短いので、ログ出力の待ち時間を減らすことができる。したがって、ＳＢＳＰ１０ａは、ＯＳブートを従来と比較して早く完了することができる。また、ＳＢＳＰ１０ａは、シリアルポート５０へのログ出力完了を待たずに早期に業務を開始することが可能となる。
【００７３】
また、ＡＰから選択されたログプロセッサ１０ｂは、ｓｐａｄ１３に書き込まれたログをlogmem４１に書き込み、シリアルポート５０の使用を待ちながらログ出力を行うため、ＳＢＳＰ１０ａがＯＳブートを完了した後もログ出力処理を続ける。そして、ログ出力が完了すると、ＢＩＯＳはＯＳと連携して、隠蔽していたlogmem４１及びログプロセッサ１０ｂをhot-add処理により情報処理装置１のリソースとして追加する。
【００７４】
上述してきたように、実施例では、ＳＢＳＰ１０ａがログをログプロセッサ１０ｂのｓｐａｄ１３に書き込み、ｓｐａｄ１３からシリアルポート５０へのログの書き出しはログプロセッサ１０ｂが行う。また、ｓｐａｄ１３の使用待ち時間はシリアルポート５０の待ち時間と比較して大幅に短い。
【００７５】
したがって、ＳＢＳＰ１０ａは、ＯＳブート処理を従来と比較して短時間で行うことができる。また、ＳＢＳＰ１０ａは、ログプロセッサ１０ｂによるログ出力処理の完了を待つことなくログ出力中に業務を開始することができる。
【００７６】
また、実施例では、メインメモリ４０の初期化が終了すると、ログプロセッサ１０ｂは、ｓｐａｄ１３から読み出したデータを一旦logmem４１に書き込んでｓｐａｄ１３をクリアする。また、logmem４１への書き込み時間はシリアルポート５０への出力時間と比較して大幅に短い。
【００７７】
したがって、ログプロセッサ１０ｂはメインメモリ４０の初期化後はより高速にｓｐａｄ１３のログを読み出すことができ、ＳＢＳＰ１０ａによるｓｐａｄ１３のクリア待ち時間を短縮することができる。
【００７８】
また、実施例では、ログプロセッサ１０ｂのログ出力が完了すると、ＳＢＳＰ１０ａはＢＩＯＳとＯＳの連携のもと、ログプロセッサ１０ｂ及びlogmem４１をリソースとして追加する。したがって、ＯＳは、情報処理装置１の全てのリソースを使用することができ、リソースの減少を防ぐことができる。
【符号の説明】
【００７９】
１    情報処理装置
２    端末
１０    プロセッサ
１０ａ    ＳＢＳＰ
１０ｂ    ログプロセッサ
１１    演算部
１２    レジスタ
１３    ｓｐａｄ
２０    ＲＯＭ
３０    ストレージ
４０    メインメモリ
４１    logmem
４２    ＡＣＰＩテーブル
４３    logデータ
５０    シリアルポート
６０    システムバス
７０    ＢＩＯＳコード
７１    初期化機能
７２    ログプロセッサ生成機能
７３    logmem生成機能
７４    リソース隠蔽機能
７５    ログ生成機能
７６    ＯＳ呼び出し機能
８０    logprocコード
８１    ログ取得機能
８２    ログ出力機能
８３    リソース追加判定機能
８４    リソース追加要求機能
９０    ＯＳコード
９１    ＯＳ起動処理機能
９２    ＯＳ動作処理機能
９３    リソース追加機能
【図１】
2015088133.tif 000003
【図２】
2015088133.tif 000004
【図３】
2015088133.tif 000005
【図４】
2015088133.tif 000006
【図５】
2015088133.tif 000007
【図６】
2015088133.tif 000008
【図７】
2015088133.tif 000009
【図８】
2015088133.tif 000010
【図９】
2015088133.tif 000011