(57)【要約】【課題】情報処理装置に搭載のファームウェアが認識できないデータが書き込まれた記録媒体を用いて、そのファームウェアに必要な処理を実行させるための技術を提供する。【解決手段】ブート制御プログラム２５ａは、ＭＭＢ２３の立ち上げモード情報２３ａがメンテナンスモードを表していた場合、組込ＯＳ２６を起動させる。組込ＯＳ２６は、ＣＤドライブ装置１８に装着されたＣＤメディア１８ａ上の更新プログラム５１、及びデータ５２をフラッシュメモリ１５にコピーする。フラッシュメモリ１５上の更新プログラム５１は、ＥＦＩコードのシェルモード４１時に実行が指示された場合、フラッシュメモリ１５上のデータ５２を用いて、フラッシュメモリ１３上のＥＦＩコードをアップデートする。そのようにして、標準的な方法で更新プログラム５１、及びデータ５２が書き込まれたＣＤメディア１８を用いたＥＦＩコードのアップデートを可能にさせる。【選択図】図２
2015114841.tif 000002
【特許請求の範囲】
【請求項１】
第１のフォーマットの第１の記録媒体と、
前記第１の記録媒体に対応可能な第１のプログラムを記憶した第１の記憶部と、
前記第１の記録媒体、及び前記第１のプログラムが対応していない第２のフォーマットの第２の記録媒体にそれぞれ対応可能な第２のプログラムを記憶した第２の記憶部と、
前記第２の記録媒体が着脱可能であり、装着された前記第２の記録媒体にアクセス可能な駆動部と、
前記第１のプログラム、及び前記第２のプログラムを実行可能な演算処理装置と、
前記演算処理装置の実行対象として、前記第１のプログラム、及び前記第２のプログラムのうちの一方を設定するための設定部と、
前記設定部により前記実行対象として前記第２のプログラムが設定されていた場合に、前記第２のプログラムを前記演算処理装置に実行させ、前記第２のプログラムの制御により、前記駆動部に装着される前記第２の記録媒体上のデータを前記第１の記憶媒体に記憶させる起動制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記設定部は、前記実行対象を表す対象情報を所定の記憶装置に記憶させ、
前記起動制御部は、前記演算処理装置に前記第２のプログラムを実行させる場合、前記記憶装置に記憶されている対象情報を更新する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第２のプログラムは、前記第２の記録媒体上のデータを前記第１の記録媒体に記録させた後、自動的に終了する、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第１の記録媒体、及び前記第２の記録媒体にそれぞれ対応可能な第３のプログラムを記憶した第３の記憶部、を備え、
前記起動制御部は、前記記憶装置に記憶された前記対象情報が表す実行対象に前記第３のプログラムが含まれる場合、前記第１のプログラムの起動後、前記第３のプログラムを起動させる、
ことを特徴とする請求項１、２、または３記載の情報処理装置。
【請求項５】
前記起動制御部は、前記演算処理装置に第４のプログラムを実行させることにより実現される、
ことを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
情報処理装置に、
第１の記憶部に記憶されている、第１のフォーマットの第１の記録媒体に対応可能な第１のプログラム、並びに第２の記憶部に記憶されている、前記第１の記録媒体、及び前記第１のプログラムが対応していない第２のフォーマットの第２の記録媒体にそれぞれ対応可能な第２のプログラムのなかから、設定に従って演算処理装置に実行させる実行対象を選択し、
前記実行対象として前記第２のプログラムを選択した場合に、前記第２のプログラムを前記演算処理装置に実行させ、前記第２のプログラムの制御により、駆動部に装着される前記第２の記録媒体上のデータを、搭載されている前記第１の記憶媒体に記憶させる、
処理を実行させる制御プログラム。
【請求項７】
情報処理装置に、
第１のフォーマットの第１の記録媒体と、
前記第１の記録媒体に対応可能な第１のプログラムを記憶した第１の記憶部と、
前記第１の記録媒体、及び前記第１のプログラムが対応していない第２のフォーマットの第２の記録媒体にそれぞれ対応可能な第２のプログラムを記憶した第２の記憶部と、
前記第２の記録媒体が着脱可能であり、装着された前記第２の記録媒体にアクセス可能な駆動部と、
演算処理装置の実行対象として、前記第１のプログラム、及び前記第２のプログラムのうちの一方を設定するための設定部と、を設け、
前記設定部により前記実行対象として前記第２のプログラムが設定されていた場合に、前記第２のプログラムを前記演算処理装置に実行させ、前記第２のプログラムの制御により、前記駆動部に装着される前記第２の記録媒体上のデータを前記第１の記憶媒体に記憶させる、
ことを特徴とするデータ移動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記録させた記録媒体を用いた処理を実行させるための技術に関する。
【背景技術】
【０００２】
現在、情報処理装置はサーバとして広く用いられている。サーバは、ネットワークを介して接続されるクライアントである端末装置を使用するユーザに対し、機能、及び／或いは、データ等をサービスとして提供する。端末装置のユーザは、サーバが提供するサービスを任意に利用できるのが普通である。
【０００３】
サーバがサービスの提供を想定する端末装置のユーザは、通常、非常に多い。また、機密性の高いデータをサーバに管理させることも多い。そのようなことから、サーバが設置された施設（データセンター等）では、通常、情報の持ち出し（例えば漏洩）が行えないように、厳しく管理／規制されている。このセキュリティ上の観点から、実際にサーバが設置されている場所（以降「サーバルーム」と表記）へのデータが書込可能な記録媒体（ＵＳＢ（Universal Serial Bus）メモリ、等）の持ち込みは厳禁となっているのが普通である。
【０００４】
サーバのような情報処理装置では、初めに、ハードウェア資源の基本的な制御を行うためのプログラムであるファームウェアが起動され、次に、ファームウェアよりも多機能なプログラムであるＯＳ（Operating System）が起動されるのが普通である。
【０００５】
サーバルームへの記録媒体の持ち込みは、ファームウェアの制御下で処理を実行させるために行われる場合がある。その処理とは、例えばファームウェアのアップデートである。ファームウェアのアップデートは、通常、そのファームウェアの制御下で行わなければならない。
【０００６】
ファームウェアのアップデートには、アップデート用のデータとして、アップデート後のファームウェア（少なくともファームウェアの一部）が必要であり、場合によっては、そのアップデートを行うためのプログラム（以降「更新プログラム」と表記）が加わる。そのようなアップデート用データを書き込む記録媒体としては、追加の書き込みが行えないＣＤ（Compact Disc）等が用いられることが多い。
【０００７】
ファームウェアには、１つ以上のファイルシステムが搭載される。このファイルシステムは、記録媒体に記録されているデータを管理するためのプログラムである。搭載されるファイルシステムによって、ファームウェアが対応可能な記録媒体のフォーマットは制限される。
【０００８】
サーバのような情報処理装置では、これまでファームウェアとしてＢＩＯＳ（Basic Input/Output System）が多く採用されていた。しかし、近年では、ファームウェアとして、ＥＦＩ（Extensible Firmware Interface）に対応のファームウェア（以降「ＥＦＩコード」と表記）が採用されることが多くなっている。これは、ＥＦＩコードは、ＢＩＯＳが有する制約が多いという不具合を克服するために開発されたファームウェアだからである。
【０００９】
追加の書き込みが行えないＣＤとして、例えばＣＤ-ＲＯＭ（Read Only Memory）がある。このＣＤ-ＲＯＭは、ＣＤＦＳ（CD-ROM File System）によるフォーマット（以降「ＣＤＦＳフォーマット」と表記）が行われているＣＤであり、ＢＩＯＳは対応している。しかし、ＥＦＩコードはＣＤＦＳフォーマットには対応しておらず、ＣＤ-ＲＯＭ上のデータは基本的に認識できない。そのため、従来は、ＥＦＩコードの制御下で行わせる処理（アップデート等）にＣＤＦＳフォーマットのＣＤ（ＣＤ-ＲＯＭ）を用いる場合、処理用のデータをＥＦＩコードが認識可能なデータにして、そのＣＤ上に書き込むようにしている。
【００１０】
ＥＦＩコードは、ＦＡＴ（File Allocation Tables）ファイルシステムによるＦＡＴフォーマットに対応している。このことから、ＣＤＦＳフォーマットのＣＤ上には、ＦＡＴフォーマットの処理用データを書き込むことが行われている。しかし、ＦＡＴフォーマットの処理用データは、標準的な方法でＣＤ上に書き込むことはできない。そのため、ＣＤ上に書き込むべきＦＡＴフォーマットの処理用データは、イメージ（イメージデータ）としている。
【００１１】
ＦＡＴフォーマットの処理用データのイメージは、例えば処理用データをＦＡＴフォーマットの記録媒体（ＵＳＢメモリ、或いはハードディスク、等）に書き込み、書き込んだ処理用データをイメージとして読み出すことで生成（取得）することができる。そのようなイメージは、ＦＡＴフォーマットで処理用データの内容を表しているため、ＥＦＩコードでも内容を認識することができる。
【００１２】
ＦＡＴフォーマットの処理用のイメージの生成には、処理用データのＦＡＴフォーマットの記録媒体への書き込み、及び書き込んだ処理用データのイメージとしての読み出し、等を行わなければならず、煩雑な作業が必要である。そのため、処理用のＣＤの準備に長い時間が必要となっている。また、ＦＡＴファーマットのイメージのＣＤへの書き込みには、その書き込みのためのツール、及びその書き込みが可能なハードウェア資源が揃っているというシステム環境が必要である。このようなことから、サーバのような情報処理装置に搭載されたファームウェアに必要な処理を効率的に実行させるためには、標準的な方法でファームウェアが認識できないデータが書き込まれた記録媒体を使用可能にすることも重要と思われる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１０−７９８２１号公報
【特許文献２】特開２００４−２７２７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
１側面では、本発明は、サーバ等の情報処理装置（コンピュータ）に搭載されたファームウェアが認識できないデータが書き込まれた記録媒体を用いて、そのファームウェアに必要な処理を実行させるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明を適用した１システムは、第１のフォーマットの第１の記録媒体と、前記第１の記録媒体に対応可能な第１のプログラムを記憶した第１の記憶部と、前記第１の記録媒体、及び前記第１のプログラムが対応していない第２のフォーマットの第２の記録媒体にそれぞれ対応可能な第２のプログラムを記憶した第２の記憶部と、前記第２の記録媒体が着脱可能であり、装着された前記第２の記録媒体にアクセス可能な駆動部と、前記第１のプログラム、及び前記第２のプログラムを実行可能な演算処理装置と、前記演算処理装置の実行対象として、前記第１のプログラム、及び前記第２のプログラムのうちの一方を設定するための設定部と、前記設定部により前記実行対象として前記第２のプログラムが設定されていた場合に、前記第２のプログラムを前記演算処理装置に実行させ、前記第２のプログラムの制御により、前記駆動部に装着される前記第２の記録媒体上のデータを前記第１の記憶媒体に記憶させる起動制御部と、を有する。
【発明の効果】
【００１６】
本発明を適用した場合には、サーバ等の情報処理装置に搭載されたファームウェアが認識できないデータが書き込まれた記録媒体を用いて、そのファームウェアに必要な処理を実行させることができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態による情報処理装置の構成例を説明する図である。
【図２】ＥＦＩコードに搭載されたブート制御プログラムの機能例を説明する図である。
【図３】ＥＦＩコード、組込ＯＳ、及び更新プログラムがそれぞれ実行する処理の流れの例を表すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による情報処理装置の構成例を説明する図である。本実施形態による情報処理装置１は、例えばデータセンタにサーバとして設置される情報処理装置である。このことから、情報処理装置１は以降「サーバ」と表記する。
【００１９】
そのサーバ１は、図１に表すように、ＣＰＵ（Central Processing Unit）１１、メモリ（例えばメモリモジュール）１２、３つのフラッシュメモリ１３〜１５、チップセット１６、ＵＳＢ／ＳＡＴＡ（Serial ATA（AT Attachment））コントローラ１７、ＣＤドライブ装置１８、ハードディスク装置１９、ＳＡＳ（Serial Attached SCSI（Small Computer System Interface））コントローラ２０、ＰＣＩｅ（Peripheral Components Interconnect Express）スイッチ２１、複数のＰＣＩスロット２２、及びＭＭＢ（Management Board）２３を備えている。
【００２０】
３つのフラッシュメモリ１３〜１５は、それぞれ、ＥＦＩコード２５の格納用、組込ＯＳ２６の格納用、及びＣＤドライブ装置１８に装着されたＣＤメディア１８ａ上のデータのコピー用に設けている。この３つのフラッシュメモリ１３〜１５は、ＥＦＩコード２５が対応可能なように、ＦＡＴフォーマットで初期化されている。
【００２１】
チップセット１６は、ＭＭＢ２３、ＵＳＢ／ＳＡＴＡコントローラ１７、及びＰＣＩｅスイッチ２１と、ＣＰＵ１１との間でデータの送受信を管理する。それにより、ＣＰＵ１１は、チップセット１６を介して、ＭＭＢ２３、ＣＤドライブ装置１８に装着されたＣＤメディア１８ａへのアクセス、及びハードディスク装置１９へのアクセス等を行う。
【００２２】
モニタ３２をサーバ１に接続する場合、そのモニタ３２はこのチップセット１６に接続される。モニタ３２がチップセット１６に接続された場合、ＣＰＵ１１は、必要に応じて、モニタ３２に出力すべき画面（画像データ）を生成し、生成した画面をチップセット１６に出力することにより、その画面をモニタ３２上に出力させることができる。そのモニタ３２は、サーバ１に搭載させても良い。
【００２３】
ＭＭＢ２３は、サーバ１を管理する管理装置である。ＭＭＢ２３は、サーバ１が備えるハードウェア資源の状態監視、各種情報の表示、電源のオン／オフを含む電源制御等を行う。
【００２４】
ＭＭＢ２３は、サーバ１の管理のために、ネットワーク（例えばＬＡＮ（Local Area Network））３５と接続され、通常、常時、動作させるようになっている。それにより、各種情報の表示、及び電源制御等は、ネットワーク３５に接続させた端末装置により行えるようになっている。本実施形態では、ネットワーク３５に接続させた端末装置から、立ち上げモードをＭＭＢ２３に設定可能にしている。図１中の２３ａは、設定された立ち上げモードの内容を表す立ち上げモード情報である。この立ち上げモード情報２３ａは、電源のオン、或いはシステムリセットによるサーバ１の起動時、ＣＰＵ１１によって参照される。
【００２５】
ＵＳＢ／ＳＡＴＡコントローラ１７には、チップセット１６の他に、フラッシュメモリ１５、及びＣＤドライブ装置１８が接続されている。それにより、ＵＳＢ／ＳＡＴＡコントローラ１７は、チップセット１６を介したＣＰＵ１１の指示に従い、ＣＤドライブ装置１８の制御、つまり装着されたＣＤメディア１８ａへのアクセス、及びフラッシュメモリ１５へのアクセスを行う。ＵＳＢ／ＳＡＴＡコントローラ１７とチップセット１６間はＵＳＢ、ＵＳＢ／ＳＡＴＡコントローラ１７とフラッシュメモリ１５、及びＣＤドライブ装置１８の各間はＳＡＴＡにより接続されている。
【００２６】
サーバ１に入力装置（例えばキーボード）３１を接続する場合、その入力装置３１はこのＵＳＢ／ＳＡＴＡコントローラ１７と接続される。入力装置３１がＵＳＢ／ＳＡＴＡコントローラ１７に接続された場合、オペレータは、入力装置３１への操作により、サーバ１を制御することが可能となる。その入力装置３１は、サーバ１に搭載させても良い。
【００２７】
オペレータは、入力装置３１をサーバ１に接続する場合、モニタ３２のサーバ１への接続を併せて行う。それにより、オペレータは、モニタ３２に表示される画面を見ながら、入力装置３１への操作を通して所望の処理をサーバ１に行わせる。
【００２８】
ハードディスク装置１９は、ＯＳ１９ａが格納されている記憶装置であり、ＳＡＳ／ＳＡＴＡコントローラ２０と接続されている。このハードディスク装置１９には、他に、例えば各種アプリケーション・プログラム、及び各種データが格納されている。
【００２９】
ＳＡＳ／ＳＡＴＡコントローラ２０は、ＰＣＩｅスイッチ２１と接続されている。ＣＰＵ１１からの指示は、チップセット１６、及びＰＣＩｅスイッチ２１を介してＳＡＳ／ＳＡＴＡコントローラ２０に通知される。それにより、ＳＡＳ／ＳＡＴＡコントローラ２０は、ＣＰＵ２１からの指示に従って、ハードディスク装置１９を制御する。ＳＡＳ／ＳＡＴＡコントローラ２０とハードディスク装置１９間は、ＳＡＳ、或いはＳＡＴＡにより接続され、ＳＡＳ／ＳＡＴＡコントローラ２０とＰＣＩｅスイッチ２１との間はＰＣＩｅにより接続されている。
【００３０】
ＰＣＩｅスイッチ２１に接続されている各スロット２２は、拡張カード等をサーバ１に追加するために用いられる。ＰＣＩｅスイッチ２１は、各スロット２２（スロット２２に接続された拡張カード等）、及びＳＡＳ／ＳＡＴＡコントローラ２０と、チップセット１６との間のデータの転送を制御する。
【００３１】
サーバ１では、バグの修正、或いは機能の追加等のために、ＥＦＩコード２５をアップデート（更新）する場合がある。ＥＦＩコード２５のアップデートは、ＥＦＩコード２５の制御下で行う必要がある。しかし、サーバ１が設置されたサーバルームには、セキュリティ上、追加のデータ書き込みが可能な記録媒体を持ち込むことはできない。それにより、ＥＦＩコード２５のアップデート用のデータは、追加のデータ書き込みができない記録媒体に記録しなければならない。本実施形態では、追加のデータ書き込みができない記録媒体としてＣＤメディア１８ａを想定し、その想定により、サーバ１にＣＤドライブ装置１８を搭載させている。このＣＤドライブ装置１８も、必要に応じてサーバ１に接続させるものであっても良い。
【００３２】
ＥＦＩコード２５は、ＣＤメディア１８ａに対応しておらず、ＣＤメディア１８ａ上に標準的な方法で書き込まれたデータは基本的に認識できない。ＥＦＩコード２５が認識できるようにデータをＣＤメディア１８ａに書き込む場合、面倒な作業が必要となるだけでなく、ＣＤメディア１８ａにデータを書き込ませる装置に要求されるシステム環境上の制約もある。そのため、ＣＤメディア１８ａの用意に要する時間が長くなって、ＥＦＩコード２５の迅速なアップデートが非常に困難となる。このことから、本実施形態では、標準的な方法によりデータが書き込まれたＣＤメディア１８ａを用いたＥＦＩコード２５のアップデートを行えるようにしている。ＣＤメディア１８ａ上に標準的な方法で必要なデータを書き込めば良いため、ＥＦＩコード２５のアップデートに用いるＣＤメディア１８ａは容易、且つ迅速に用意することができる。
【００３３】
上記のように、ＥＦＩコード２５は、ＣＤメディア１８ａ上に標準的な方法で書き込まれたデータを認識することはできない。このことから、本実施形態では、ＣＤメディア１８ａ上のデータを、ＥＦＩコード２５が対応している記録媒体上にコピーするようにしている。フラッシュメモリ１５は、ＣＤメディア１８ａ上のデータのコピー用に設けている。このＣＤメディア１８ａという名称は、追加のデータ書き込みができないＣＤの総称として用いている。追加のデータ書き込みができない記録媒体は、標準的な方法で書き込んだデータをＥＦＩコード２５が認識できない記録媒体であれば良いことから、ＣＤメディア１８ａに限定されない。
【００３４】
ＣＤメディア１８ａ上のデータのフラッシュメモリ１５へのコピーは、フラッシュメモリ１４に格納した組込ＯＳ２６により行わせるようにしている。この組込ＯＳ２６は、情報処理装置（コンピュータ）向けのＯＳとは異なり、リアルタイム性、少ないメモリ量で動作するコンパクト性を満たしている。また、組込ＯＳ２６には、高い信頼性・安定性がある。このことから、組込ＯＳ２６を採用することにより、より短い時間で確実に、ＣＤメディア１８ａ上のデータをフラッシュメモリ１５にコピーすることができる。
【００３５】
組込ＯＳ２６は、ＣＤメディア１８ａ上のデータをフラッシュメモリ１５にコピーさせるためだけに用いている。そのため、本実施形態では、組込ＯＳ２６に、ＣＤメディア１８ａ上のデータを自動的にフラッシュメモリ１５にコピーさせるようにしている。ＥＦＩコード２５がデータを認識できるように、フラッシュメモリ１５、他のフラッシュメモリ１３、及び１４は共に、ＦＡＴフォーマットで初期化されている。サーバ１のハードウェア資源の相違に対応できるように、組込０Ｓ２６は、データのコピー元、データのコピー先等の設定に従って動作させても良い。
【００３６】
本実施形態では、組込ＯＳ２６の起動は、ＭＭＢ２３が管理する立ち上げモード情報２３ａにより制御するようにしている。電源のオン、或いはシステムリセット時、ＣＰＵ１１が最初に読み出すプログラムはＥＦＩコード２５である。このことから、本実施形態では、ＥＦＩコード２５に、ＭＭＢ２３の立ち上げモード情報２３ａを参照し、必要に応じて、組込ＯＳ２６を起動させるためのサブプログラムであるブート制御プログラム２５ａを組み込んでいる。なお、ここでは、ＥＦＩコード２５を読み出すためのプログラムであるローダは無視している。
【００３７】
図２は、ＥＦＩコードに搭載されたブート制御プログラムの機能例を説明する図である。ここで図２を参照し、ＥＦＩコード２５に搭載（追加）されたブート制御プログラム２５ａの機能例、及びそのブート制御プログラム２５ａによって直接、或いは間接的に起動される各プログラムの機能例について詳細に説明する。
【００３８】
本実施形態では、ＥＦＩコード２５のアップデート用データとして、ＥＦＩコード２５のアップデートを行う更新プログラム５１、及びその更新プログラム５１がアップデートに用いるデータ５２をＣＤメディア１８ａに記録させるようにしている。データ５２は、例えばＥＦＩコード２５上で置き換えるべき部分の新しいプログラムデータである。
【００３９】
電源のオン、或いはシステムリセットにより、ＣＰＵ１１はフラッシュメモリ１３からＥＦＩコード２５を読み出してメモリ１２に書き込み、ＥＦＩコード２５の実行を開始する。そのようにして起動したＥＦＩコード２５は、ブート制御プログラム２５ａに制御を渡す。
【００４０】
ブート制御プログラム２５ａは、ＭＭＢ２３から立ち上げモード情報２３ａを取得する。本実施形態では、立ち上げモード情報２３ａは、立ち上げモードとして、通常モード、メンテナンスモード、及びシェル（Shell）モードのうちの何れかを表すようになっている。
【００４１】
通常モードは、ＥＦＩコード２５の起動後、続けてハードディスク装置１９に格納されているＯＳ１９ａの起動を要求するモードである。そのため、ブート制御プログラム２５は、ＯＳ１９ａをハードディスク装置１９から読み出すブートを行う。制御は、そのブートによって起動されたＯＳ１９ａに移行する。
【００４２】
メンテナンスモードは、組込ＯＳ２６の起動を要求するモードである。そのため、ブート制御プログラム２５ａは、組込ＯＳ２６を起動させる。組込ＯＳ２６の起動により、制御は組込ＯＳ２６に渡さなければならない。このことから、ＥＦＩコード２５は終了する。
【００４３】
起動した組込ＯＳ２６は、チップセット１６、及びＵＳＢ／ＳＡＴＡコントローラ１７を介してＣＤドライブ装置１８を制御し、ＣＤメディア１８ａ上の更新プログラム５１、及びデータ５２をフラッシュメモリ１５にコピーする。フラッシュメモリ１５にデータをコピーした後、組込ＯＳ２６は、システムリセットを行う。それにより、再度、ＥＦＩコード２５が起動し、ブート制御プログラム２５ａに制御が渡る。組込ＯＳ２６にシステムリセットを自動的に行わせるのは、オペレータの作業量をより抑えるためである。
【００４４】
シェルモードは、ＥＦＩコード２５のシェル４１の起動を要求するモードである。そのため、ブート制御プログラム２５ａは、シェル４１に制御を渡す。このシェル４１は、ＥＦＩコード２５に搭載されたアプリケーション・プログラムである。以降、混乱を避けるために、ＥＦＩコード２５は、ブート制御プログラム２５ａ、シェル４１、及びそれら以外の部分から構成されているとの想定で説明を行う。ブート制御プログラム２５ａ、及びシェル４１以外の部分は「ＥＦＩコード本体」と表記する。
【００４５】
シェルは、オペレータの操作による指示を認識して、認識した指示に応じた機能を提供するためのプログラムである。ＥＦＩコード２５のシェル４１は、ＣＬＩ（Command Line Interface）を提供する。それにより、オペレータは、シェルモードの設定時、つまりシェル４１の実行時、サーバ１に接続させたモニタ３２の画面を見ながら、入力装置３１を用いてコマンドを入力し、入力したコマンドの実行を指示することができる。
【００４６】
フラッシュメモリ１５上の更新プログラム５１を実行させる場合、オペレータは、入力装置３１を操作して、フラッシュメモリ１５にアクセスし、そのフラッシュメモリ１５上の更新プログラム５１の実行を指示する。その指示により、シェル４１から制御が渡されるＥＦＩコード本体は、フラッシュメモリ１５上の更新プログラム５１を起動する。その結果、制御は更新プログラム５１に渡る。ハードディスク装置１９上のＯＳ１９ａの起動をオペレータが指示した場合、シェル４１から制御が渡されるＥＦＩコード本体は、そのＯＳ１９ａを起動させる。
【００４７】
起動された更新プログラム５１は、フラッシュメモリ１５上のデータ５２を用いて、フラッシュメモリ１３上のＥＦＩコード２５のアップデートを行う。そのアップデートを行った後、更新プログラム５１は終了し、制御はＥＦＩコード２５に戻る。
【００４８】
組込ＯＳ２６、及びシェル４１は、繰り返し実行させる必要は通常はない。このことから、ブート制御プログラム２５ａは、ＭＭＢ２３が管理する立ち上げモード情報２３ａがメンテナンスモード、或いはシェルモードを表していた場合、その立ち上げモード情報２３ａを自動更新させる。その自動更新により、立ち上げモード情報２３ａの表す立ち上げモードは、メンテナンスモード→シェルモード、或いはシェルモード→通常モード、に変更される。メンテナンスモード→シェルモードへの立ち上げモード情報２３ａの自動更新は、例えば組込ＯＳ２６の起動前に行われる。シェルモード→通常モードへの立ち上げモード情報２３ａの自動更新は、例えばシェル４１の起動前に行われる。
【００４９】
立ち上げモードの指定は、機械的な機構（例えばスイッチ、或いは入力装置３１、等）を用いて行わせても良い。しかし、機械的な機構による立ち上げモードの指定では、その機械的な機構への操作が煩わしい、その操作をオペレータがし忘れることが有り得る、といった不具合がある。このことから、本実施形態では、立ち上げモード情報２３ａの自動更新により、オペレータがより容易、且つ迅速にＥＦＩコード２５のアップデートを行えるようにさせている。
【００５０】
ＥＦＩコード２５のアップデートを行うべきサーバ１の台数は、多い場合がある。しかし、ＭＭＢ２３が保持する立ち上げモード情報２３ａの更新は、ネットワーク３５と接続された端末装置を用いて行うことができる。そのため、各サーバ１の立ち上げモード情報２３ａの更新は、迅速に行うことができる。このことも、立ち上げモードの設定を立ち上げモード情報２３ａにより行うようにした理由である。
【００５１】
図３は、ＥＦＩコード、組込ＯＳ、及び更新プログラムがそれぞれ実行する処理の流れの例を表すフローチャートである。最後に、図３を参照し、ＥＦＩコード２５のブート制御プログラム２５ａの制御によって、そのＥＦＩコード２５自身、組込ＯＳ２６、及び更新プログラム５１がそれぞれ実行する処理について詳細に説明する。
【００５２】
ＥＦＩコード２５、組込ＯＳ２６、及び更新プログラム５１は、全てＣＰＵ１１が実行するプログラムである。このことから、図３に表記のＥＦＩコード２５から組込ＯＳ２６への矢印、ＥＦＩコード２５から更新プログラム５１への矢印、及び更新プログラム５１からＥＦＩコード２５への矢印は全て、制御が渡される関係を表している。
【００５３】
電源のオン、或いはシステムリセットにより、ＥＦＩコード２５はフラッシュメモリ１３からメモリ１２に読み出されて起動される。起動したＥＦＩコード２５のＥＦＩコード本体は、先ず、ＣＰＵ１１、及びチップセット１６等を対象にしたシステムの初期化を行う（ＳＥ１）。そのシステムの初期化を行った後、制御はブート制御プログラム２５ａに渡される。
【００５４】
制御が渡されたブート制御プログラム２５ａは、ＭＭＢ２３から立ち上げモード情報２３ａを取得し、取得した立ち上げモード情報２３ａが表す立ち上げモードの判定を行う（ＳＥ２）。
【００５５】
立ち上げモード情報２３ａが通常モードを表していた場合、ＳＥ２で立ち上げモードは通常モードと判定され、ブート制御プログラム２５ａは、ＥＦＩコード本体により、ハードディスク装置１９上のＯＳ１９ａを起動させる。ＯＳ１９ａの起動により、制御はＯＳ１９ａに渡される。そのため、ＳＥ３に続く処理は省略している。
【００５６】
立ち上げモード情報２３ａがメンテナンスモードを表していた場合、ＳＥ２で立ち上げモードはメンテナンスモードと判定され、ＳＥ４に移行する。
【００５７】
ＳＥ４では、ブート制御プログラム２５ａは、ＭＭＢ２３に要求して、そのＭＭＢ２３が保持している立ち上げモード情報２３ａが表す立ち上げモードをメンテナンスモードからシェルモードに変更させる。次にブート制御プログラム２５ａは、組込ＯＳ２６を起動させる（ＳＥ５）。その後、ＥＦＩコード２５は終了する。そのＥＦＩコード２５の終了により、起動される組込ＯＳ２６に制御が渡る。
【００５８】
ＥＦＩコード２５は、例えばフラッシュメモリ１４内の組込ＯＳ２６のローダを実行させる。そのローダは、組込ＯＳ２６をフラッシュメモリ１４からメモリ１２に読み出すブートを行う（ＳＯ１）。そのブートにより、組込ＯＳ２６は起動し、起動した組込ＯＳ２６は制御を獲得する。
【００５９】
組込ＯＳ２６は、チップセット１６、ＵＳＢ／ＳＡＴＡコントローラ１７を介して、ＣＤドライブ装置１８を制御し、ＣＤドライブ装置１８に装着されたＣＤメディア１８ａ上の更新プログラム５１、及びデータ５２をフラッシュメモリ１５にコピーする。その後、組込ＯＳ２６は、システムリセットを実行し、終了する。それにより、ＥＦＩコード２５が再度、起動される。
【００６０】
ＥＦＩコード２５のＳＥ２において、立ち上げモード情報２３ａが立ち上げモードとしてメンテナンスモードを表していると判定された場合、ブート制御プログラム２５ａは、シェル４１を起動させる。ブート制御プログラム２５ａは、シェル４１を起動させる前に、ＭＭＢ２３に要求して、そのＭＭＢ２３が保持している立ち上げモード情報２３ａが表す立ち上げモードをシェルモードから通常モードに変更させる。
【００６１】
シェル４１の起動により、制御はシェル４１に渡される（ＳＥ６）。シェル４１は、モニタ３２上にＣＬＩの画面を表示させ、入力装置３１を介してオペレータが行った指示を解釈する。それにより、オペレータが何らかの指示のための操作を入力装置３１に行った場合、シェル４１は、その指示の解釈を行い、解釈した指示を判定する（ＳＥ７）。
【００６２】
オペレータが更新プログラム５１の起動を指示した場合、ＳＥ７でその旨が判定され、シェル４１は、ＥＦＩコード本体により、更新プログラム５１を起動させる（ＳＥ９）。更新プログラム５１の起動により、制御は更新プログラム５１に渡される。
【００６３】
更新プログラム５１は、例えば自身のローダによって、フラッシュメモリ１５からメモリ１２に読み出すブートを行う（ＳＵ１）。そのブートにより、更新プログラム５１は起動し、起動した更新プログラム５１は、制御を得て、フラッシュメモリ１５上のデータ５２を用いて、フラッシュメモリ１３上のＥＦＩコード２５のアップデートを行う（ＳＵ２）。更新プログラム５１は、そのアップデートを行った後、自動的に終了する。それにより、制御はＥＦＩコード２５に戻る。
【００６４】
ＥＦＩコード２５のＳＥ７において、オペレータがＯＳ１９ａの起動を指示したと判定した場合、シェル４１は、ＥＦＩコード本体により、ＯＳ１９ａを起動させる（ＳＥ９）。ＯＳ１９ａの起動により、制御はＯＳ１９ａに渡されることから、ＳＥ３と同様に、ＳＥ８に続く処理は省略している。
【００６５】
オペレータが更新プログラム５１の起動、及びＯＳ１９ａの起動以外の指示を行った場合、ＳＥ７でその旨が判定され、シェル４１は、指示に応じた処理を実行する（ＳＥ１０）。その後は再度、ＳＥ６に戻る。それにより、オペレータは、ＥＦＩコード２５のアップデート以外の処理をＥＦＩコード２５に実行させることができる。
【００６６】
なお、本実施形態では、アップデートを行わせるファームウェアはＥＦＩコード２５としているが、アップデートを行わせるファームウェアはＥＦＩコード２５に限定されない。また、ＥＦＩコード２５に実行させる処理も、ＥＦＩコード２５自身のアップデートに限定されない。
【００６７】
例えばＰＣＩｅスイッチ２１はファームウェアが格納されたメモリ２１ａを備えている。このことから、ＰＣＩｅスイッチ２１のファームウェアのアップデート用のデータをＣＤメディア１８ａに格納させ、そのＣＤメディア１８ａを用いたＰＣＩｅスイッチ２１のファームウェアのアップデートをＥＦＩコード２５に行わせても良い。
【００６８】
また、本実施形態では、ＣＤメディア１８ａ上のデータの書き込み先としてフラッシュメモリ１５を用意しているが、データの書き込み先はフラッシュメモリ１５以外の記録媒体であっても良い。フラッシュメモリ１３に余裕があるような場合、そのフラッシュメモリ１３をデータの書き込み先として用いても良い。
【００６９】
本実施形態では、アップデート対象となるＥＦＩコード２５にブート制御プログラム２５ａを追加しているが、このブート制御プログラム２５ａは、ＥＦＩコード２５とは別のプログラムとして用意しても良い。ＥＦＩコード２５とは別のプログラムとしてブート制御プログラム２５ａを用意する場合、電源のオン、或いはシステムリセットにより、そのブート制御プログラム２５ａをＣＰＵ１１に実行させれば良い。その場合、ＣＤメディア１８ａのデータのコピーを組込ＯＳ２６に行わせた後、コピーされた更新プログラム５１を自動的に実行させるようにしても良い。このことから、シェルモードへの移行、つまりシェル４１の起動は省くこともできる。自身のアップデートを行う機能を備えたファームウェアでは、アップデートが必要な旨をそのファームウェアに認識させれば良いことから、シェルモードのような状態への移行は不要である。
【００７０】
上記以外にも、様々な変形を行うことができる。
【符号の説明】
【００７１】
１    サーバ（情報処理装置）
１１    ＣＰＵ
１２    メモリ
１３〜１５    フラッシュメモリ
１８    ＵＳＢ／ＳＡＴＡコントローラ
１８ａ    ＣＤメディア
１９    ハードディスク装置
１９ａ    ＯＳ
２３    ＭＭＢ
２３ａ    立ち上げモード情報
２５    ＥＦＩコード
２５ａ    ブート制御プログラム
２６    組込ＯＳ
３１    入力装置
３２    モニタ
５１    更新プログラム
５２    データ
【図１】
2015114841.tif 000003
【図２】
2015114841.tif 000004
【図３】
2015114841.tif 000005