(57)【要約】【課題】  ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法、装置、及びコンピュータ命令を提供する。【解決手段】  パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第１モジュールがロードされる。第１モジュールは、パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する。そのパーティションのためのそのパーティション・ファームウェアにおける第２モジュールがロードされる。第２モジュールは第１モジュールによってロードされ、第２モジュールは複数の機能を提供する。第１モジュールのインターフェースにおいて受けたコールが第２モジュールに経路指定される。第２モジュールがコールに応答して機能を実行する。オリジナルの第２モジュールが実行を継続している間に新たな第２モジュールがロード可能である。しかる後、オリジナルの第２モジュールが終了するとこによって、新たな第２モジュールが実行を開始する。【選択図】  図６
2004318880.tif 000002
【特許請求の範囲】
【請求項１】
ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法であって、
パーティションのセット内のパーティションに対する前記パーティション・ファームウェアにおける第１モジュールをロードするステップにして、前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、ステップと、
前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードするステップにして、前記第２モジュールは前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供する、ステップと、
前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するステップにして、前記第２モジュールが前記コールに応答して機能を実行する、ステップと
を含む、方法。
【請求項２】
前記第１モジュール及び前記第２モジュールがロード識別子である、請求項１に記載の方法。
【請求項３】
前記第１モジュールが、前記第２モジュールにおける機能エントリ・ポイントを識別し、前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、請求項１に記載の方法。
【請求項４】
前記第２モジュールがオリジナルの第２モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第２モジュールが動作を継続している間に、新たな第２モジュールをロードするステップと、
前記新たな第２モジュールにコールを経路指定するステップと
を更に含み、
前記パーティション・ファームウェアが前記パーティションのリブートを必要とすることなく動的に更新される、
請求項１に記載の方法。
【請求項５】
前記新たな第２モジュールにコールを経路指定するステップが、
前記新たな第２モジュールにおける機能エントリ・ポイントを識別するステップと、
前記第１モジュールのインターフェースにおいて受けたコールを前記新たな第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するステップと
を含む、請求項４に記載の方法。
【請求項６】
前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、請求項４に記載の方法。
【請求項７】
前記経路指定するステップが、前記第１モジュールにおける機能ディスパッチャによって実行される、請求項１に記載の方法。
【請求項８】
パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第１モジュールをロードするための第１ローディング手段にして、前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第１ローディング手段と、
前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードするための第２ローディング手段にして、前記第２モジュールが前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供する、第２ローディング手段と、
前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するための経路指定手段にして、前記第２モジュールが前記コールに応答して機能を実行する、経路指定手段と
を含む、ロジカル・パーティション・データ処理システム。
【請求項９】
前記第１モジュール及び前記第２モジュールがロード識別子である、請求項８に記載のロジカル・パーティション・データ処理システム。
【請求項１０】
前記第１モジュールが、前記第２モジュールにおける機能エントリ・ポイントを識別し、前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、請求項８に記載のロジカル・パーティション・データ処理システム。
【請求項１１】
前記第２モジュールがオリジナルの第２モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第２モジュールが動作を継続している間に、新たな第２モジュールをロードするための第３ローディング手段と、
前記新たな第２モジュールにコールを経路指定するための第２経路指定手段とを更に含み、
前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
請求項８に記載のロジカル・パーティション・データ処理システム。
【請求項１２】
前記第２経路指定手段が、
前記新たな第２モジュールにおける機能エントリ・ポイントを識別するための識別手段と、
前記第１モジュールのインターフェースにおいて受けたコールを前記新たな第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための更新手段と
を含む、請求項１１に記載のロジカル・パーティション・データ処理システム。
【請求項１３】
前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、請求項１１に記載のロジカル・パーティション・データ処理システム。
【請求項１４】
前記経路指定手段が、前記第１モジュールにおける機能ディスパッチャに設けられる、請求項８に記載のロジカル・パーティション・データ処理システム。
【請求項１５】
バス・システムと、
前記バス・システムに接続され、命令のセットを含むメモリと、
複数のプロセッサを有し、前記バス・システムに接続されたプロセッサ・ユニットと
を含み、
前記プロセッサ・ユニットが前記命令のセットを実行して、
（ａ）パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第１モジュールをロードし、
（ｂ）前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供し、
（ｃ）前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードし、
（ｄ）前記第２モジュールが前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供し、
（ｅ）前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定し、
（ｆ）前記第２モジュールが前記コールに応答して機能を実行する、
ロジカル・パーティション・データ処理システム。
【請求項１６】
ロジカル・パーティション・データ処理システムにおけるパーティション・ファームウェアを更新するために、コンピュータ可読媒体に含まれたコンピュータ・プログラム製品であって、
前記プログラム製品は、コンピュータに実行させる、
パーティションのセット内のパーティションに対する前記パーティションにおける第１モジュールをロードするための第１命令にして、前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第１命令と、
前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードするための第２命令にして、前記第２モジュールが前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供する、第２命令と、
前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するための第３命令にして、前記第２モジュールが前記コールに応答して機能を実行する、第３命令と
を含む、コンピュータ・プログラム製品。
【請求項１７】
前記第１モジュール及び前記第２モジュールがロード識別子である、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記第１モジュールが、前記第２モジュールにおける機能エントリ・ポイントを識別し、前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１９】
前記第２モジュールがオリジナルの第２モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第２モジュールが動作を継続している間に、新たな第２モジュールをロードするための第４命令と、
前記新たな第２モジュールにコールを経路指定するための第５命令と
を更に含み、
前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
請求項１６に記載のコンピュータ・プログラム製品。
【請求項２０】
前記新たな第２モジュールが、
前記新たな第２モジュールにおける機能エントリ・ポイントを識別するための第１サブ命令と、
前記第１モジュールのインターフェースにおいて受けたコールを前記新たな第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための第２サブ命令と
を含む、請求項１９に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して云えば、改良されたデータ処理システムに関し、詳しく言えば、データ処理システムにおいてプロセスを管理するための改良された方法及び装置に関する。更に詳しく言えば、本発明は、ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを管理するための改良された方法、装置、及びコンピュータ命令に関する。
【背景技術】
【０００２】
データ処理システム（プラットフォーム）におけるロジカル・パーティション（ＬＰＡＲ）機能は、単一のオペレーティング・システム（ＯＳ）又は複数の異種オペレーティング・システムの複数のコピーが単一のデータ処理システム・プラットフォームにおいて同時に実行されることを可能にする。パーティション（その中で１つのオペレーティング・システム・イメージが実行される）に、プラットフォームのリソースの非オーバラップ・サブセットが割り当てられる。これらのプラットフォーム割り振り可能リソースは、割込み管理エリアを有する１つ又はそれ以上の体系的に異なるプロセッサ、システム・メモリの領域、及び入出力（Ｉ／Ｏ）アダプタ・バス・スロットを含む。パーティションのリソースは、オペレーティング・システム・イメージに対するプラットフォームのファームウェアによって表される。
【０００３】
プラットフォームにおいて実行されるオペレーティング・システムの各異なるオペレーティング・システム又はイメージは、１つのロジカル・パーティションにおけるソフトウェア・エラーが他のいずれのパーティションに関する正しいオペレーションにも影響を与え得ないように、相互に保護される。これは、各オペレーティング・システム・イメージによって直接に管理されるべきプラットフォーム・リソースの非結合セットを割り振ることによって、及び種々のイメージに割り当てられてないいずれのリソースもそれらのイメージが制御し得ないということを保証するための機構を設けることによって、与えられる。更に、オペレーティング・システムの割り当てられたリソースの制御におけるソフトウェア・エラーが他のいずれのイメージのリソースにも影響を与えないようにされる。従って、そのオペレーティング・システム（又は、各異なるオペレーティング・システム）の各イメージがプラットフォームにおける割り当て可能なリソースの別セットを直接に制御する。
【０００４】
ＬＰＡＲデータ処理システムにおけるハードウェア・リソースに関して、これらのリソースが種々のパーティション間で非結合的に共用され、それ自体が非結合化し、それぞれが独立型コンピュータであるように見える。これらのリソースは、例えば、入出力（Ｉ／Ｏ）アダプタ、メモリＤＩＭＭ、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、及びハード・ディスク・ドライブを含む。ＬＰＡＲデータ処理システムにおける各パーティションは、システム全体をパワー・サイクルする必要なく何度もブート及びシャットダウンすることができる。
【０００５】
ＬＰＡＲデータ処理システムでは、種々のパーティションが、パーティションにおけるオペレーティング・システムに関連して使用されるファームウェアを有する。換言すれば、各パーティションは、パーティションにおけるオペレーティング・システムに関連して動作するパーティション・ファームウェアを含む。現時点では、パーティション・ファームウェアに対する更新は、ＬＰＡＲデータ処理システムをリブートすることを必要とする。多くの場合、これらのシステムは、種々のウェブ又はインターネット・アプリケーションのためのサーバとして使用される。ＬＰＡＲデータ処理システムをリブートすることは、種々のユーザに与えられるサービスを割込むことができる。
【０００６】
従って、パーティション・ファームウェアを更新するための改良された方法、装置、及びコンピュータ命令を持つことが有利であろう。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法、装置、及びコンピュータ命令を提供する。
【課題を解決するための手段】
【０００８】
パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第１モジュールがロードされる。第１モジュールは、パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する。パーティションに対するパーティション・ファームウェアにおける第２モジュールがロードされる。第２モジュールは第１モジュールによってロードされ、第２モジュールは複数の機能を提供する。第１モジュールのインターフェースにおいて受けたコールが第２モジュールに経路指定される。第２モジュールは、コールに応答して機能を実行する。オリジナルの第２モジュールが実行を継続している間、新たな第２モジュールがロード可能である。しかる後、オリジナルの第２モジュールが終了することによって、新たな第２モジュールが実行を開始することができる。
【発明を実施するための最良の形態】
【０００９】
図面、特に、図１を参照すると、本発明を実装し得るデータ処理システムのブロック図が示される。データ処理システム１００は、システム・バス１０６に接続される複数のプロセッサ１０１、１０２、１０３、及び１０４を含む対称マルチプロセッサ（ＳＭＰ）システムであってもよい。例えば、データ処理システム１００は、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの製品であって、ネットワークにおけるサーバとして実装されるＩＢＭｅＳｅｒｖｅｒであってもよい。代替として、単一のプロセッサ・システムを使用することも可能である。システム・バス１０６には、更に、メモリ・コントローラ／キャッシュ１０８が接続される。そのメモリ・コントローラ／キャッシュは、複数のローカル・メモリ１６０−１６３に対するインターフェースを提供する。システム・バス１０６には、Ｉ／Ｏバス・ブリッジ１１０が接続され、Ｉ／Ｏバス１１２に対するインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８及びＩ／Ｏバス・ブリッジ１１０は、図示のように統合可能である。
【００１０】
データ処理システム１００は、ロジカル・パーティション（ＬＰＡＲ）データ処理システムである。従って、データ処理システム１００は、同時に実行される複数の異種オペレーティング（又は、単一オペレーティング・システムの複数インスタンス）を有することが可能である。これらの複数のオペレーティング・システムの各々は、そのオペレーティング・システムにおいて実行される任意の数のソフトウェア・プログラムを有することが可能である。データ処理システム１００は、種々のＰＣＩＩ／Ｏアダプタ１２０−１２１、１２８−１２９、及び１３６、グラフィックス・アダプタ１４８、及びハード・ディスク・アダプタ１４９が種々のロジカル・パーティションに割り当てられるように論理的に区画化される。この場合、グラフィックス・アダプタ１４８は、ディスプレイ装置（図示されてない）に対する接続を提供し、一方、ハード・ディスク・アダプタ１４９は、ハード・ディスク１５０を制御するための接続を提供する。
【００１１】
従って、例えば、データ処理システム１００が３つのロジカル・パーティションＰ１、Ｐ２、及びＰ３に分割されるものと仮定する。ＰＣＩＩ／Ｏアダプタ１２０−１２１、１２８−１２９、１３６の各々、グラフィックス・アダプタ１４８、ハード・ディスク・アダプタ１４９、ホスト・プロセッサ１０１−１０４の各々、及びローカル・メモリ１６０−１６３の各々が３つのパーティションの１つに割り当てられる。例えば、プロセッサ１０１、ローカル・メモリ１６０、及びＩ／Ｏアダプタ１２０、１２８、及び１２９がロジカル・パーティションＰ１に割り当てられ、プロセッサ１０２−１０３、ローカル・メモリ１６１、及びＰＣＩＩ／Ｏアダプタ１２１及び１３６がロジカル・パーティションＰ２に割り当てられ、プロセッサ１０４、ローカル・メモリ１６２−１６３、グラフィックス・アダプタ１４８、及びハード・ディスク・アダプタ１４９がロジカル・パーティションＰ３に割り当て可能である。
【００１２】
データ処理システム１００において実行される各オペレーティング・システムは、異なるロジカル・パーティションに割り当てられる。従って、データ処理システム１００において実行される各オペレーティング・システムは、それのロジカル・パーティション内にあるＩ／Ｏユニットだけをアクセスし得る。従って、例えば、拡張対話式エグゼクティブ（Advanced Interactive Executive；ＡＩＸ）オペレーティング・システムの１つのインスタンスがパーティションＰ１において実行され、ＡＩＸオペレーティング・システムの第２のインスタンス（イメージ）がパーティションＰ２において実行され、ＷｉｎｄｏｗｓＸＰ（Ｒ）オペレーティング・システムがロジカル・パーティションＰ１において実行され得る。ＷｉｎｄｏｗｓＸＰ（Ｒ）は、米国ワシントン州レッドモンドのマイクロソフト・コーポレーションの製品及び商標である。
【００１３】
Ｉ／Ｏバス１１２に接続された周辺コンポーネント相互接続（ＰＣＩ）ホスト・ブリッジ１１４は、ＰＣＩローカル・バス１１５に対するインターフェースを提供する。多数のＰＣＩ入出力アダプタ１２０−１２１がＰＣＩ・ツー・ＰＣＩブリッジ１１６、ＰＣＩバス１１８、ＰＣＩバス１１９、Ｉ／Ｏスロット１７０及びＩ／Ｏスロット１７１を介してＰＣＩバス１１５に接続可能である。ＰＣＩ・ツー・ＰＣＩブリッジ１１６は、ＰＣＩバス１１８及びＰＣＩバス１１９に対するインターフェースを提供する。ＰＣＩＩ／Ｏアダプタ１２０及び１２１は、それぞれ、Ｉ／Ｏスロット１７０及び１７１に挿入される。典型的なＰＣＩバス実装形態は、４個のＩ／Ｏアダプタと８個のＩ／Ｏアダプタとの間（即ち、アド・イン・コネクタに対する拡張スロット）をサポートする。各ＰＣＩＩ／Ｏアダプタ１２０−１２１は、データ処理システム１００と、例えば、そのデータ処理システム１００に対するクライアントである他のネットワーク・コンピュータのような入出力デバイスとの間のインターフェースを提供する。
【００１４】
更なるＰＣＩホスト・ブリッジ１２２が更なるＰＣＩバス１２３に対するインターフェースを提供する。ＰＣＩバス１２３は、複数のＰＣＩＩ／Ｏアダプタ１２８−１２９に接続される。ＰＣＩ Ｉ／Ｏアダプタ１２８−１２９は、ＰＣＩ・ツー・ＰＣＩブリッジ１２４、ＰＣＩバス１２６、ＰＣＩバス１２７、Ｉ／Ｏスロット１７２、及びＩ／Ｏスロット１７３を介してＰＣＩバス１２３に接続可能である。ＰＣＩ・ツー・ＰＣＩブリッジ１２４は、ＰＣＩバス１２６及びＰＣＩバス１２７に対するインターフェースを提供する。ＰＣＩＩ／Ｏアダプタ１２８−１２９は、それぞれ、Ｉ／Ｏスロット１７２及び１７３に挿入される。このように、例えば、モデム又はネットワーク・アダプタのような更なるＩ／ＯデバイスがＰＣＩＩ／Ｏアダプタ１２８−１２９の各々を介してサポートされ得る。このように、データ処理システム１００は、複数のネットワーク・コンピュータへの接続を可能にする。
【００１５】
Ｉ／Ｏスロット１７４に挿入されたメモリ・マップ・グラフィックス・アダプタ１４８がＰＣＩバス１４４、ＰＣＩ・ツー・ＰＣＩブリッジ１４２、ＰＣＩバス１４１、及びＰＣＩホスト・ブリッジ１４０を介してＩ／Ｏバス１１２に接続可能である。ハード・ディスク・アダプタ１４９が、ＰＣＩバス１４５に接続されたＩ／Ｏスロット１７５に挿入可能である。一方、このバス１４５はＰＣＩ・ツー・ＰＣＩブリッジ１４２に接続される。このブリッジ１４２は、ＰＣＩバス１４１によってＰＣＩホスト・ブリッジ１４０に接続される。
【００１６】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１３１をＩ／Ｏバス１１２に接続するためのインターフェースを提供する。ＰＣＩＩ／Ｏアダプタ１３６がＩ／Ｏスロット１７６に接続され、そのＩ／Ｏスロット１７６は、ＰＣＩバス１３３によってＰＣＩ・ツー・ＰＣＩブリッジ１３２に接続される。ＰＣＩ・ツー・ＰＣＩブリッジ１３２は、ＰＣＩバス１３１に接続される。このＰＣＩバス１３１は、ＰＣＩホスト・ブリッジ１３０をサービス・プロセッサ・メールボックス・インターフェース及びＩＳＡバス・アクセス・パススルー・ロジック１９４、並びにＰＣＩ・ツー・ＰＣＩブリッジ１３２にも接続する。サービス・プロセッサ・メールボックス・インターフェース及びＩＳＡバス・アクセス・パススルー・ロジック１９４は、ＰＣＩ／ＩＳＡブリッジ１９３を宛先とするＰＣＩアクセスを転送する。ＮＶＲＡＭストレージ１９２がＩＳＡバス１９６に接続される。サービス・プロセッサ１３５がそれのローカルＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェース及びＩＳＡバス・アクセス・パススルー・ロジック１９４に接続される。サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１−１０４にも接続される。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ  １１４９.１参照）及びＰｈｉｌｌｉｐｓ Ｉ２Ｃバスの結合したものである。しかし、それとは別に、ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＰｈｉｌｌｉｐｓＩ２Ｃバスのみ又はＪＴＡＧ／スキャン・バスのみによって置換可能である。ホスト・プロセッサ１０１、１０２、１０３、及び１０４のすべてのＳＰ−ＡＴＴＮ信号がサービス・プロセッサ１３５の割込み入力信号に接続される。サービス・プロセッサ１３５は、それ自身のローカル・メモリ１９１を有し、ハードウェアのＯＰパネル１９０へのアクセスを有する。
【００１７】
データ処理システム１００が先ずパワー・アップされるとき、サービス・プロセッサ１３５が、ＪＴＡＧ／Ｉ２Ｃバス１３４を使用してそのシステム（ホスト）のプロセッサ１０１−１０４、メモリ・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に問い合わせを行う。このステップの終了時には、サービス・プロセッサ１３５は、データ処理システム１００のインベントリ及びトポロジの理解を得る。更に、サービス・プロセッサ１３５は、ホスト・プロセッサ１０１−１０４、メモリ・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に問い合わせを行うことによってわかるすべてのエレメントに関する組み込み自己診断テスト（Built-In-Self-Test；ＢＩＳＴ）、基本検証テスト（Basic Assurance Test；ＢＡＴ）、及びメモリ・テストも実行する。ＢＩＳＴ、ＢＡＴ、及びメモリ・テスト時に検出された障害に関するいかなるエラー情報もサービス・プロセッサ１３５によって収集され、レポートされる。
【００１８】
ＢＩＳＴ、ＢＡＴ、及びメモリ・テストの時に欠陥があることがわかったエレメントを取り除いた後でもシステム・リソースの有意味な／有効な構成が依然として可能である場合、データ処理システム１００は、実行可能なコードをローカル（ホスト）メモリ１６０−１６３にロードし続けることが可能である。そこで、サービス・プロセッサ１３５は、ローカル・メモリ１６０−１６３にロードされたコードを実行するためにホスト・プロセッサ１０１−１０４をリリースする。ホスト・プロセッサ１０１−１０４がデータ処理システム１００においてそれぞれのオペレーティング・システムからのコードを実行しているとき、サービス・プロセッサ１３５が、エラーをモニタ及びレポートするモードに入る。サービス・プロセッサ１３５によってモニタされるアイテムのタイプは、例えば、冷却ファンの速度及び操作、温度センサ、電源調整器、並びに、プロセッサ１０１−１０４、ローカル・メモリ１６０−１６３、及びＩ／Ｏブリッジ１１０によってレポートされた回復可能なエラー及び回復不可能なエラーを含む。
【００１９】
サービス・プロセッサ１３５は、データ処理システム１００におけるモニタされたすべてのアイテムに関連したエラー情報を保管及びレポートする責任がある。サービス・プロセッサ１３５は、更に、エラーのタイプ及び定義された閾値に基づいてアクションを取る。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリに関する過剰な回復可能エラーに注目し、これが深刻な障害の前兆であることを決定することもできる。この決定に基づいて、サービス・プロセッサ１３５は、現在実行中のセッション及び将来の初期プログラム・ロード（Initial Program Load；ＩＰＬ）時のデコンフィグレーション（deconfiguration）に関してそのリソースに注意を払うことが可能である。ＩＰＬは、時には、「ブート」又は「ブートストラップ」と呼ばれることもある。
【００２０】
データ処理システム１００は、種々の商業的に入手可能なコンピュータ・システムを使用して実現可能である。例えば、データ処理システム１００は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なＩＢＭｅＳｅｒｖｅｒ ｉＳｅｒｉｅｓ Ｍｏｄｅｌ ８４０システムを使用して実現可能である。そのようなシステムは、ＡＩＸ又はＬＩＮＵＸオペレーティング・システムを使用してロジカル・パーティショニングをサポートすることが可能である。
【００２１】
図１に示されたハードウェアが変更可能であることは当業者には明らかであろう。例えば、光ディスク・ドライブ等のような他の周辺装置も、図示のハードウェアに加えて又はそれの代わりに使用可能である。図示の例は、本発明に関するアーキテクチャ上の限定を暗示することを意味するものではない。
【００２２】
次に、図２を参照すると、本発明を実装し得る例示のロジカル・パーティション・プラットフォームのブロック図が示される。ロジカル・パーティション・プラットフォーム２００におけるハードウェアは、例えば、図１におけるデータ処理システム１００として実現可能である。ロジカル・パーティション・プラットフォーム２００は、パーティション化されたハードウェア２３０、オペレーティング・システム２０２、２０４、２０６、２０８、及びハイパーバイザ２１０を含む。オペレーティング・システム２０２、２０４、２０６、及び２０８は、単一のオペレーティング・システムの複数のコピー又は複数の異種オペレーティング・システムであってもよく、それらはプラットフォーム２００において同時に実行される。これらのオペレーティング・システムは、ハイパーバイザとインターフェースするように設計されたＡＩＸ又はＬＩＮＵＸを使用して実装可能である。オペレーティング・システム２０２、２０４、２０６、及び２０８は、パーティション２０３、２０５、２０７、及び２０９に配置される。
【００２３】
更に、これらのパーティションは、パーティション・ファームウェア（ＰＦＷ）２１１、２１３、２１５、及び２１７も含む。パーティション・ファームウェアは、そのパーティションにおけるオペレーティング・システムによってコールされる機能を提供する。パーティション２０３、２０５、２０７、及び２０９がインスタンス化されるとき、パーティション・ファームウェアのコピーがハイパーバイザのパーティション・マネージャによって各パーティションにロードされる。そこで、それらのパーティションに関連した或いは割り当てられたプロセッサが、パーティション・ファームウェアを実行するためにパーティションのメモリにディスパッチされる。このパーティション・ファームウェアは、オープン・ファームウェア及びランタイム・アブストラクション・サービス（runtime abstraction service；ＲＴＡＳ）を含む。パーティション・ファームウェアは、その時点で、単一のモジュール又はロード識別子（ＬＩＤ）にパッケージされる。本発明の場合、パーティションがそのパーティションをリブートすることなく実行されつつあるとき、パーティション・ファームウェアのランタイム機能が再ロード可能である。パーティション・ファームウェアをＬＩＤよりも多く配置させること及び更なる機能を加えることはそのような特徴を可能にする。本発明は、プラットフォーム２００をリブートすることなくファームウェア更新が生じることを可能にする方法において、２つの別個のロード可能なモジュールをパーティション・ファームウェアに与える機構を提供する。そのような特徴は、種々のアプリケーションの実行における割り込みを少なくする。これらの例では、ＬＩＤがフラッシュ・メモリにおける独立的にロードされたモジュール用のコンテナとして使用される。しかし、本発明の機構は、複数の独立的にロード可能なモジュールをサポートする任意のフォーマットを使用して実装可能である。
【００２４】
パーティション・ハードウェア２３０は、複数のプロセッサ２３２−２３８、複数のシステム・メモリ・ユニット２４０−２４６、複数の入出力（Ｉ／Ｏ）アダプタ２４８−２６２、及びストレージ・ユニット２７０を含む。パーティション・ハードウェア２３０は、パーティションにおけるエラーの処理のような種々のサービスを提供するために使用可能なサービス・プロセッサ２９０も含む。プロセッサ２３２−２３８、メモリ・ユニット２４０−２４６、ＮＶＲＡＭストレージ２９８、及びＩ／Ｏアダプタ２４８−２６２の各々は、ロジカル・パーティション・プラットフォーム２００における、各々がオペレーティング・システム２０２、２０４、２０６、及び２０８の１つに対応する複数のパーティションの１つに割り振られる。
【００２５】
パーティション管理ファームウェア（ハイパーバイザ）２１０は、パーティション２０３、２０５、２０７、及び２０９がロジカル・パーティション・プラットフォーム２００のパーティショニングを創作及び強制（enforce）するための多くの機能及びサービスを実行する。ハイパーバイザ２１０は、基礎となるハードウェアと同様のファームウェア実装の仮想マシンである。ハイパーバイザ・ソフトウェアは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能である。ファームウェアは、例えば、リード・オンリ・メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、及び不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）のような、電力なしでその内容を保持するメモリ・チップにストアされた「ソフトウェア」である。従って、ハイパーバイザ２１０は、ロジカル・パーティション・プラットフォーム２００のすべてのハードウェア・リソースを仮想化することによって、独立したＯＳイメージ２０２、２０４、２０６、及び２０８を同時実行することを可能にする。
【００２６】
種々のパーティションのオペレーションがコンソール２６４のようなハードウェア管理コンソールを介して制御可能である。コンソール２６４は、システム管理者が、種々のパーティションへのリソースの再割り振りを含む種々の機能を実行し得る別個のデータ処理システムである。
【００２７】
次に図３を参照すると、本発明の望ましい実施例に従って、パーティション・ファームウェアを表す図が示される。パーティション・ファームウェア３００が、図２におけるパーティション・ファームウェア２１１、２１３、２１５、又は２１７としてプラットフォーム２００において実装可能である。これらの例では、パーティション・ファームウェア３００は、２つの別々にロード可能なモジュール又はロード識別子（ＬＩＤ）として実装される。このような構成は、一般的に構造化されている単一のＬＩＤシステムとは対照的である。
【００２８】
ＬＩＤ３０２は、パーティション・ファームウェア３００の固定部分である。このモジュールは、図２に示されたようなハイパーバイザによってメモリにロードされる。ＬＩＤ３０２は、ブート・ローダ３０４、ＲＴＡＳディスパッチャ３０６、バインダ機能３０８、ＬＩＤローダ機能３１０、及びオープン・ファームウェア機能３１２を含む。ブート・ローダ３０４は、オープン・ファームウェア機能３１２が実行され得る環境を確立すべくスタックを設定するために使用される。ＬＩＤローダ機能３１０は、第２ランタイムＬＩＤ３１６をメモリにロードするために使用される。バインダ機能３０８は、コンテンツのテーブル３２２を調べてＲＴＡＳ及びオープン・ファームウェア機能３１２のアドレスを決定するために使用される。この機能は、ＲＴＡＳディスパッチャ３０６におけるディスパッチ・テーブルを更新するために使用される。更に詳しく言えば、ＲＴＡＳディスパッチャ３０６は、ＲＴＡＳトークンによって識別されたパーティション・オペレーティング・システムによってコールされた各ＲＴＡＳ機能を実装機能のアドレスと関連付けるデータ構造を含む。バインダ機能３０８は、各実装機能のアドレスを位置指定し、このテーブルをその適切なアドレスでもって満たす。
【００２９】
パーティション・ファームウェア３００では、ＬＩＤ３１６がオープン・ファームウェア・ランタイム３１８、ＲＴＡＳ機能３２０、及びコンテンツのテーブル３２２を含む。明らかなように、オープン・ファームウェア・コンポーネント及びＲＴＡＳコードがＬＩＤ３１６において位置指定される。このオープン・ファームウェア・コンポーネント及びＲＴＡＳコードは、このパーティション・ファームウェアが実行されるパーティションにおけるオペレーティング・システムによってコールされ得る種々の機能を提供する。コンテンツのテーブル３２２は、グローバル・シンボルと、ＬＩＤ３１６におけるオープン・ファームウェア・ランタイム３１８及びＲＴＡＳ機能３２０によって提供される種々の機能に対する機能ポインタを設定するために使用される他の情報とを提供する。ＲＴＡＳ機能は、この機能がない場合にオペレーティング・システムにおいてプラットフォーム従属コードを必要とする多くの重要なプラットフォーム機能を、そのオペレーティング・システムが操作する必要がないようにするために設けられる。これらの機能の例は、ＮＶＲＡＭの読み取り及び書き込み、時刻の読み取り及び設定、プラットフォーム・ハードウェア・エラーの認識及び報告、ＰＣＩコンフィギュレーション・スペースの読み取り及び書き込み、割り込みコンフィグレーション・レジスタの読み取り又は書き込み、及びその他多数である。
【００３０】
ＬＩＤ３１６は、ファームウェア活動化ＲＴＡＳ機能に対するコールが行われることに応答して動的に置換可能であるように又は更新されるように設計される。
【００３１】
パーティション・ブート時に、ＬＩＤ３０２がロードされる。一方、そのＬＩＤ３０２は、ＬＩＤローダ機能３１０を使用してＬＩＤ３１６をロードする。しかる後、ＬＩＤ３０２は、スタックを設定し、コンテンツのテーブル３２２を調べてグローバル・シンボルのロケーションを見つけ、バインダ機能３０８を使用してＲＴＡＳディスパッチャ３０６において機能ポインタを設定する。更に、ＬＩＤ３１６におけるオープン・ファームウェア・ランタイム３１８の開始点にジャンプするように、１つの機能ポインタが設定されるであろう。更に、ＲＴＡＳグローバル・データがＬＩＤ３０２に関連してストアされる。一旦それらの機能ポインタが設定されてしまうと、ＲＴＡＳディスパッチャ３０６は、オペレーティング・システムからのコールをＬＩＤ３１６における適切な機能に経路指定するであろう。通常、グローバル変数が、そのモジュールのコンテンツのテーブル（ＴＯＣ）におけるアドレスを見つけることによってアクセスされる。本発明がＴＯＣを含むモジュールを置換するための機構を提供する場合、この方式は働かないであろう。更に、グローバル・データのためのストレージもそのモジュール内にあるので、そのモジュールが置換されるとき、現在の「状態」は失われる。この問題は、ランタイムＬＩＤ３１６によって使用されたすべてのグローバル・データを固定ＬＩＤ３０２の内部にストアすることによって解決され、そして、変数を直接に（ＴＯＣを介して）アクセスする代わりに、データが固定ＬＩＤ３０２にストアされ、データ・カプセル化方法を通してアクセスされる。そのカプセル化方法は、単一のアンカ・ポインタを固定ＬＩＤ３０２の内部に保持することによって、及びそのアンカ・ポインタに関連した各データ・タイムを位置指定するために使用されるコンテンツのテーブル（そのモジュールのＴＯＣとは異なる）を維持することによって働く。
【００３２】
本発明の機構は、パーティション又はＬＰＡＲデータ処理システムのリブートを必要としない方法で、パーティション・ファームウェア３００に対するファームウェア更新が行われることを可能にする。ファームウェアを更新するプロセスは、フラッシュ・メモリにおけるＬＩＤ３１６を新たなバージョンでもって置換するハードウェア管理コンソール（ＨＭＣ）によって開始され、しかる後、オペレーティング・システムがその新たなファームウェアを活動化するプロセスを始めなければならないことを表すメッセージを各パーティションにおけるオペレーティング・システムに送る。オペレーティング・システムは、ＲＴＡＳファームウェア活動化サービスをコールすることによって新たなファームウェアを活動化するプロセスを開始する。このＲＴＡＳサービスは、ＬＩＤ３１６の新たなコピーをメモリにロードする。第２ＬＩＤというこの新たなコピーは、この例では、機能の更新されたセットである。ＬＩＤ３１６の新たなコピーは、現在使用中であるＬＩＤ３１６のコピーに重ならない。ＬＩＤ３１６の新たなコピーをロードするプロセスは、完了するために多少の時間を必要とすることがあり、それが処理中であるとき、ファームウェア活動化サービスが戻り、他のＲＴＡＳ機能がオペレーティング・システムによってコールされることを可能にする。オペレーティング・システムは、ＲＴＡＳファームウェア活動化サービスを、それが終了するまで、規則的なインターバルでコールし続ける。新たなＬＩＤがロードされた後、ＬＩＤ３１６の場合のように、機能ポインタがＬＩＤ３２４に対して設定される。
【００３３】
詳しく言えば、新たなＬＩＤにおけるエントリ・ポイントが、バインダ機能３０８を使用して識別される。これらのエントリ・ポイントに関して、ＲＴＡＳディスパッチャ３０６がその新たなエントリ・ポイントでもって更新される。この時点で、活動化プロセスが終了し、ＲＴＡＳファームウェア活動化サービスが、これを表すリターン・コードを戻す。ＲＴＡＳコールを行うセマンティックスは、オペレーティング・システムが一時に１つのＲＴＡＳ機能コールしか行わないことを必要とするので、ＬＩＤ３１６の新たなコピーを参照するために機能ポインタの更新を逐次化するというプロセスが達成される。従って、ＲＴＡＳコールが機能ポインタを更新するプロセスにあるとき、ＲＴＡＳディスパッチャ３０６が機能テーブルを使用することを必要とする他のＲＴＡＳコールが受領されることはないであろう。
【００３４】
ランタイム時にＬＩＤ３１６をリロード及び活動化するプロセスは、ブート・タイム時に行われるステップとほとんど同じであることに留意してほしい。望ましい実施例では、ブート時（図４に示される）及びランタイム活動化時（図６に示される）にこれらのステップを実行するために同じコード命令が使用されるであろう。
【００３５】
次に、図４を参照すると、本発明の望ましい実施例に従って、パーティション・ファームウェアをロードするためのプロセスのフローチャートが示される。図４に示されたプロセスは、図３におけるＬＩＤ３０２のようなＬＩＤによって実行される。このプロセスは、パーティション・ファームウェアにおけるこの第１ＬＩＤがパーティションにロードされた後に開始される。
【００３６】
プロセスは、第２ＬＩＤをロードすることによって始まる（ステップ４００）。しかる後、第２ＬＩＤへのエントリ・ポイントが識別される（ステップ４０２）。これらのエントリ・ポイントは、オペレーティング・システムによってコールされ得るオープン・ファームウェア及び機能へのエントリ・ポイントである。これらのエントリ・ポイントによって、ＲＴＡＳディスパッチャに対するメモリ・アドレスのテーブルが更新され（ステップ４０４）、しかる後、プロセスが終了する。これらのメモリ・アドレスは、オペレーティング・システムから受け取ったコールを、第２ＬＩＤにおける適切な機能に経路指定するためにＲＴＡＳディスパッチャによって使用される。
【００３７】
次に、図５を参照すると、本発明の望ましい実施例に従って、コールを経路指定するためのプロセスのフローチャートが示される。図５に示されたプロセスは、図３におけるＬＩＤ３０２におけるＲＴＡＳディスパッチャ３０６のようなディスパッチャにおいて実装される。
【００３８】
プロセスは、或る機能に対するオペレーティング・システム・コールを受け取ることによって開始する（ステップ５００）。しかる後、第２ＬＩＤにおいて、１つの機能が識別される（ステップ５０２）。この機能は、第２ＬＩＤにおける種々の機能のための種々のエントリ・ポイントに対してメモリ・アドレスを使用して識別される。そのコールに対する適切なエントリ・ポイントが見つかった後、第２ＬＩＤにおける機能がコールされ（ステップ５０４）、しかる後、プロセスが終了する。
【００３９】
次に、図６を参照すると、本発明の望ましい実施例に従って、パーティション・ファームウェアを更新又は再構成するためのプロセスのフローチャートが示される。図６に示されたプロセスは更新機能に実装可能である。
【００４０】
プロセスは、動的再構成のためのコールを受けることによって開始する（ステップ６００）。このコールを受けたことに応答して、新たなＬＩＤのローディングが進行中であるかどうかに関する決定が行われる（ステップ６０２）。新たなＬＩＤのローディングが進行中である場合、そのローディングが完了したかどうかに関する決定が行われる（ステップ６０４）。新たなＬＩＤのローディングが完了してしまった場合、第２ＬＩＤというこの新たなコピーへのエントリ・ポイントが識別される（ステップ６０６）。そこで、ＲＴＡＳディスパッチャがそのエントリ・ポイントに対するこれらの新たなアドレスでもって更新され（ステップ６０８）、しかる後、プロセスが終了する。
【００４１】
再びステップ６０４を参照すると、新たなＬＩＤのローディングが完了していない場合、メッセージ「未完了」がコール元に返送され（ステップ６１０）、しかる後、プロセスは上述のステップ６００に戻る。説明をステップ６０２に戻すと、新たなＬＩＤのローディングが進行中でない場合、プロセスはこの新たなＬＩＤのローディングを開始して（ステップ６１２）、メッセージ「未完了」がコール元に返送され（ステップ６１４）、しかる後、プロセスはステップ６００に戻る。
【００４２】
本発明の機構は、動的再構成オペレーションがオペレーティング・システムに対して正常に生じた方法と同じ方法で、パーティション・ファームウェアの更新が行われることを可能にする。この動的構成が要求されるとき、本発明の機構は、パーティション又はＬＰＡＲデータ処理システムのリブートを必要とすることなく、パーティション・ファームウェアの更新を行う。
【００４３】
このように、本発明は、システムのリブートを必要としない態様でパーティション・ファームウェアを更新及び活動化するための方法、装置、及びコンピュータ命令を提供する。この特徴（feature）によって、ＬＰＡＲデータ処理システムにおいて実行されるアプリケーションの割り込み及びそれらのアプリケーションのユーザに提供されたサービスへの割り込みが最小にされる。本発明は、これらの利点及び他の利点を２つのＬＩＤの使用を通して提供する。第１ＬＩＤは、第２ＬＩＤをロードし、しかも、第２ＬＩＤにコールを経路指定すると共に、第２ＬＩＤを新たなＬＩＤでもって更新又は置換するための機構を提供する。
【００４４】
これらの例では、提供された種々の機能が第２ＬＩＤに設けられる。もちろん、それらの機能のいくつかが第１ＬＩＤに設けられてもよい。しかし、そのような構成は、第１ＬＩＤにおいて設けられた機能の更新を可能にするものではない。更に、それらの機能を含む１つだけの第２ＬＩＤが設けられるけれども、本発明の機構は、複数の第２ＬＩＤが使用されるように実装可能である。複数の第２ＬＩＤによって、これらの種々のＬＩＤにおける機能に対するエントリ・ポイントが位置指定され、しかる後、ディスパッチャが適切なエントリ・ポイントでもって更新される。
【００４５】
十分に機能するデータ処理システムに関連して本発明を説明したけれども、本発明のプロセスが命令のコンピュータ可読媒体の形で及び種々の形で配布可能であること、及び本発明がその配布を実行するために実際に使用される特定のタイプの信号保持媒体に関係なく等しく適用することは当業者には明らかであろうということを留意することは重要である。コンピュータ可読媒体の例は、フロッピ（Ｒ）・ディスク、ハード・ディスク・ドライブ、
ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記録可能型媒体、並びに、例えば、無線周波数伝送及び光波伝送のような通信形態を使用するディジタル及びアナログ通信リンク及び有線又は無線通信リンクを含む。コンピュータ可読媒体は、特定のデータ処理システムにおいて実際に使用するためにデコードされるコード化フォーマットの形を取ることが可能である。
【００４６】
本発明に関する記述は、図解及び説明を目的として示されたものであり、網羅的であること及び開示された形態の発明に限定されることを意図するものではない。多くの修正及び変更が当業者には明らかであろう。なお、実施例は、本発明の原理及び実用的な応用を最も適切に説明するために、及び、当業者でない人が、特定の意図した用途に適する種々の修正を伴う種々の実施例に関して発明を理解することを可能にするために、選択され且つ説明された。
【００４７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４８】
（１）ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法であって、
パーティションのセット内のパーティションに対する前記パーティション・ファームウェアにおける第１モジュールをロードするステップにして、前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、ステップと、
前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードするステップにして、前記第２モジュールは前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供する、ステップと、
前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するステップにして、前記第２モジュールが前記コールに応答して機能を実行する、ステップと
を含む、方法。
（２）前記第１モジュール及び前記第２モジュールがロード識別子である、上記（１）に記載の方法。
（３）前記第１モジュールが、前記第２モジュールにおける機能エントリ・ポイントを識別し、前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、上記（１）に記載の方法。
（４）前記第２モジュールがオリジナルの第２モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第２モジュールが動作を継続している間に、新たな第２モジュールをロードするステップと、
前記新たな第２モジュールにコールを経路指定するステップと
を更に含み、
前記パーティション・ファームウェアが前記パーティションのリブートを必要とすることなく動的に更新される、
上記（１）に記載の方法。
（５）前記新たな第２モジュールにコールを経路指定するステップが、
前記新たな第２モジュールにおける機能エントリ・ポイントを識別するステップと、
前記第１モジュールのインターフェースにおいて受けたコールを前記新たな第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するステップと
を含む、上記（４）に記載の方法。
（６）前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、上記（４）に記載の方法。
（７）前記経路指定するステップが、前記第１モジュールにおける機能ディスパッチャによって実行される、上記（１）に記載の方法。
（８）パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第１モジュールをロードするための第１ローディング手段にして、前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第１ローディング手段と、
前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードするための第２ローディング手段にして、前記第２モジュールが前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供する、第２ローディング手段と、
前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するための経路指定手段にして、前記第２モジュールが前記コールに応答して機能を実行する、経路指定手段と
を含む、ロジカル・パーティション・データ処理システム。
（９）前記第１モジュール及び前記第２モジュールがロード識別子である、上記（８）に記載のロジカル・パーティション・データ処理システム。
（１０）前記第１モジュールが、前記第２モジュールにおける機能エントリ・ポイントを識別し、前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、上記（８）に記載のロジカル・パーティション・データ処理システム。
（１１）前記第２モジュールがオリジナルの第２モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第２モジュールが動作を継続している間に、新たな第２モジュールをロードするための第３ローディング手段と、
前記新たな第２モジュールにコールを経路指定するための第２経路指定手段とを更に含み、
前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
上記（８）に記載のロジカル・パーティション・データ処理システム。
（１２）前記第２経路指定手段が、
前記新たな第２モジュールにおける機能エントリ・ポイントを識別するための識別手段と、
前記第１モジュールのインターフェースにおいて受けたコールを前記新たな第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための更新手段と
を含む、上記（１１）に記載のロジカル・パーティション・データ処理システム。
（１３）前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、上記（１１）に記載のロジカル・パーティション・データ処理システム。
（１４）前記経路指定手段が、前記第１モジュールにおける機能ディスパッチャに設けられる、上記（８）に記載のロジカル・パーティション・データ処理システム。
（１５）バス・システムと、
前記バス・システムに接続され、命令のセットを含むメモリと、
複数のプロセッサを有し、前記バス・システムに接続されたプロセッサ・ユニットと
を含み、
前記プロセッサ・ユニットが前記命令のセットを実行して、
（ａ）パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第１モジュールをロードし、
（ｂ）前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供し、
（ｃ）前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードし、
（ｄ）前記第２モジュールが前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供し、
（ｅ）前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定し、
（ｆ）前記第２モジュールが前記コールに応答して機能を実行する、
ロジカル・パーティション・データ処理システム。
（１６）ロジカル・パーティション・データ処理システムにおけるパーティション・ファームウェアを更新するために、コンピュータ可読媒体に含まれたコンピュータ・プログラム製品であって、
前記プログラム製品は、コンピュータに実行させる、
パーティションのセット内のパーティションに対する前記パーティションにおける第１モジュールをロードするための第１命令にして、前記第１モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第１命令と、
前記パーティションに対する前記パーティション・ファームウェアにおける第２モジュールをロードするための第２命令にして、前記第２モジュールが前記第１モジュールによってロードされ、前記第２モジュールが複数の機能を提供する、第２命令と、
前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するための第３命令にして、前記第２モジュールが前記コールに応答して機能を実行する、第３命令と
を含む、コンピュータ・プログラム製品。
（１７）前記第１モジュール及び前記第２モジュールがロード識別子である、上記（１６）に記載のコンピュータ・プログラム製品。
（１８）前記第１モジュールが、前記第２モジュールにおける機能エントリ・ポイントを識別し、前記第１モジュールのインターフェースにおいて受けたコールを前記第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、上記（１６）に記載のコンピュータ・プログラム製品。
（１９）前記第２モジュールがオリジナルの第２モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第２モジュールが動作を継続している間に、新たな第２モジュールをロードするための第４命令と、
前記新たな第２モジュールにコールを経路指定するための第５命令と
を更に含み、
前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
上記（１６）に記載のコンピュータ・プログラム製品。
（２０）前記新たな第２モジュールが、
前記新たな第２モジュールにおける機能エントリ・ポイントを識別するための第１サブ命令と、
前記第１モジュールのインターフェースにおいて受けたコールを前記新たな第２モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための第２サブ命令と
を含む、上記（１９）に記載のコンピュータ・プログラム製品。
【図面の簡単な説明】
【００４９】
【図１】本発明を実装し得るデータ処理システムのブロック図である。
【図２】本発明を実装し得る例示的なロジカル・パーティション・プラットフォームのブロック図である。
【図３】本発明の望ましい実施例に従ってパーティション・ファームウェアを示す図である。
【図４】本発明の望ましい実施例に従ってパーティション・ファームウェアをロードするためのプロセスのフローチャートである。
【図５】本発明の望ましい実施例に従ってコールを経路指定するためのプロセスのフローチャートである。
【図６】本発明の望ましい実施例に従ってパーティション・ファームウェアを更新又は再構成するためのプロセスのフローチャートである。
【図１】
2004318880.tif 000003
【図２】
2004318880.tif 000004
【図３】
2004318880.tif 000005
【図４】
2004318880.tif 000006
【図５】
2004318880.tif 000007
【図６】
2004318880.tif 000008