JP2004318880A - ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置 - Google Patents

ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置 Download PDF

Info

Publication number
JP2004318880A
JP2004318880A JP2004115042A JP2004115042A JP2004318880A JP 2004318880 A JP2004318880 A JP 2004318880A JP 2004115042 A JP2004115042 A JP 2004115042A JP 2004115042 A JP2004115042 A JP 2004115042A JP 2004318880 A JP2004318880 A JP 2004318880A
Authority
JP
Japan
Prior art keywords
module
partition
firmware
function
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004115042A
Other languages
English (en)
Other versions
JP3815569B2 (ja
Inventor
Bradley Ryan Harrington
ブラッドリー・ライアン・ハリントン
Stephen Dale Linam
スティーブン・デール・リナム
Vikramjit Sethi
ビクラムジット・セティ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004318880A publication Critical patent/JP2004318880A/ja
Application granted granted Critical
Publication of JP3815569B2 publication Critical patent/JP3815569B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】
ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法、装置、及びコンピュータ命令を提供する。
【解決手段】
パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第1モジュールがロードされる。第1モジュールは、パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する。そのパーティションのためのそのパーティション・ファームウェアにおける第2モジュールがロードされる。第2モジュールは第1モジュールによってロードされ、第2モジュールは複数の機能を提供する。第1モジュールのインターフェースにおいて受けたコールが第2モジュールに経路指定される。第2モジュールがコールに応答して機能を実行する。オリジナルの第2モジュールが実行を継続している間に新たな第2モジュールがロード可能である。しかる後、オリジナルの第2モジュールが終了するとこによって、新たな第2モジュールが実行を開始する。
【選択図】 図6

Description

本発明は、概して云えば、改良されたデータ処理システムに関し、詳しく言えば、データ処理システムにおいてプロセスを管理するための改良された方法及び装置に関する。更に詳しく言えば、本発明は、ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを管理するための改良された方法、装置、及びコンピュータ命令に関する。
データ処理システム(プラットフォーム)におけるロジカル・パーティション(LPAR)機能は、単一のオペレーティング・システム(OS)又は複数の異種オペレーティング・システムの複数のコピーが単一のデータ処理システム・プラットフォームにおいて同時に実行されることを可能にする。パーティション(その中で1つのオペレーティング・システム・イメージが実行される)に、プラットフォームのリソースの非オーバラップ・サブセットが割り当てられる。これらのプラットフォーム割り振り可能リソースは、割込み管理エリアを有する1つ又はそれ以上の体系的に異なるプロセッサ、システム・メモリの領域、及び入出力(I/O)アダプタ・バス・スロットを含む。パーティションのリソースは、オペレーティング・システム・イメージに対するプラットフォームのファームウェアによって表される。
プラットフォームにおいて実行されるオペレーティング・システムの各異なるオペレーティング・システム又はイメージは、1つのロジカル・パーティションにおけるソフトウェア・エラーが他のいずれのパーティションに関する正しいオペレーションにも影響を与え得ないように、相互に保護される。これは、各オペレーティング・システム・イメージによって直接に管理されるべきプラットフォーム・リソースの非結合セットを割り振ることによって、及び種々のイメージに割り当てられてないいずれのリソースもそれらのイメージが制御し得ないということを保証するための機構を設けることによって、与えられる。更に、オペレーティング・システムの割り当てられたリソースの制御におけるソフトウェア・エラーが他のいずれのイメージのリソースにも影響を与えないようにされる。従って、そのオペレーティング・システム(又は、各異なるオペレーティング・システム)の各イメージがプラットフォームにおける割り当て可能なリソースの別セットを直接に制御する。
LPARデータ処理システムにおけるハードウェア・リソースに関して、これらのリソースが種々のパーティション間で非結合的に共用され、それ自体が非結合化し、それぞれが独立型コンピュータであるように見える。これらのリソースは、例えば、入出力(I/O)アダプタ、メモリDIMM、不揮発性ランダム・アクセス・メモリ(NVRAM)、及びハード・ディスク・ドライブを含む。LPARデータ処理システムにおける各パーティションは、システム全体をパワー・サイクルする必要なく何度もブート及びシャットダウンすることができる。
LPARデータ処理システムでは、種々のパーティションが、パーティションにおけるオペレーティング・システムに関連して使用されるファームウェアを有する。換言すれば、各パーティションは、パーティションにおけるオペレーティング・システムに関連して動作するパーティション・ファームウェアを含む。現時点では、パーティション・ファームウェアに対する更新は、LPARデータ処理システムをリブートすることを必要とする。多くの場合、これらのシステムは、種々のウェブ又はインターネット・アプリケーションのためのサーバとして使用される。LPARデータ処理システムをリブートすることは、種々のユーザに与えられるサービスを割込むことができる。
従って、パーティション・ファームウェアを更新するための改良された方法、装置、及びコンピュータ命令を持つことが有利であろう。
本発明は、ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法、装置、及びコンピュータ命令を提供する。
パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第1モジュールがロードされる。第1モジュールは、パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する。パーティションに対するパーティション・ファームウェアにおける第2モジュールがロードされる。第2モジュールは第1モジュールによってロードされ、第2モジュールは複数の機能を提供する。第1モジュールのインターフェースにおいて受けたコールが第2モジュールに経路指定される。第2モジュールは、コールに応答して機能を実行する。オリジナルの第2モジュールが実行を継続している間、新たな第2モジュールがロード可能である。しかる後、オリジナルの第2モジュールが終了することによって、新たな第2モジュールが実行を開始することができる。
図面、特に、図1を参照すると、本発明を実装し得るデータ処理システムのブロック図が示される。データ処理システム100は、システム・バス106に接続される複数のプロセッサ101、102、103、及び104を含む対称マルチプロセッサ(SMP)システムであってもよい。例えば、データ処理システム100は、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの製品であって、ネットワークにおけるサーバとして実装されるIBMeServerであってもよい。代替として、単一のプロセッサ・システムを使用することも可能である。システム・バス106には、更に、メモリ・コントローラ/キャッシュ108が接続される。そのメモリ・コントローラ/キャッシュは、複数のローカル・メモリ160−163に対するインターフェースを提供する。システム・バス106には、I/Oバス・ブリッジ110が接続され、I/Oバス112に対するインターフェースを提供する。メモリ・コントローラ/キャッシュ108及びI/Oバス・ブリッジ110は、図示のように統合可能である。
データ処理システム100は、ロジカル・パーティション(LPAR)データ処理システムである。従って、データ処理システム100は、同時に実行される複数の異種オペレーティング(又は、単一オペレーティング・システムの複数インスタンス)を有することが可能である。これらの複数のオペレーティング・システムの各々は、そのオペレーティング・システムにおいて実行される任意の数のソフトウェア・プログラムを有することが可能である。データ処理システム100は、種々のPCII/Oアダプタ120−121、128−129、及び136、グラフィックス・アダプタ148、及びハード・ディスク・アダプタ149が種々のロジカル・パーティションに割り当てられるように論理的に区画化される。この場合、グラフィックス・アダプタ148は、ディスプレイ装置(図示されてない)に対する接続を提供し、一方、ハード・ディスク・アダプタ149は、ハード・ディスク150を制御するための接続を提供する。
従って、例えば、データ処理システム100が3つのロジカル・パーティションP1、P2、及びP3に分割されるものと仮定する。PCII/Oアダプタ120−121、128−129、136の各々、グラフィックス・アダプタ148、ハード・ディスク・アダプタ149、ホスト・プロセッサ101−104の各々、及びローカル・メモリ160−163の各々が3つのパーティションの1つに割り当てられる。例えば、プロセッサ101、ローカル・メモリ160、及びI/Oアダプタ120、128、及び129がロジカル・パーティションP1に割り当てられ、プロセッサ102−103、ローカル・メモリ161、及びPCII/Oアダプタ121及び136がロジカル・パーティションP2に割り当てられ、プロセッサ104、ローカル・メモリ162−163、グラフィックス・アダプタ148、及びハード・ディスク・アダプタ149がロジカル・パーティションP3に割り当て可能である。
データ処理システム100において実行される各オペレーティング・システムは、異なるロジカル・パーティションに割り当てられる。従って、データ処理システム100において実行される各オペレーティング・システムは、それのロジカル・パーティション内にあるI/Oユニットだけをアクセスし得る。従って、例えば、拡張対話式エグゼクティブ(Advanced Interactive Executive;AIX)オペレーティング・システムの1つのインスタンスがパーティションP1において実行され、AIXオペレーティング・システムの第2のインスタンス(イメージ)がパーティションP2において実行され、WindowsXP(R)オペレーティング・システムがロジカル・パーティションP1において実行され得る。WindowsXP(R)は、米国ワシントン州レッドモンドのマイクロソフト・コーポレーションの製品及び商標である。
I/Oバス112に接続された周辺コンポーネント相互接続(PCI)ホスト・ブリッジ114は、PCIローカル・バス115に対するインターフェースを提供する。多数のPCI入出力アダプタ120−121がPCI・ツー・PCIブリッジ116、PCIバス118、PCIバス119、I/Oスロット170及びI/Oスロット171を介してPCIバス115に接続可能である。PCI・ツー・PCIブリッジ116は、PCIバス118及びPCIバス119に対するインターフェースを提供する。PCII/Oアダプタ120及び121は、それぞれ、I/Oスロット170及び171に挿入される。典型的なPCIバス実装形態は、4個のI/Oアダプタと8個のI/Oアダプタとの間(即ち、アド・イン・コネクタに対する拡張スロット)をサポートする。各PCII/Oアダプタ120−121は、データ処理システム100と、例えば、そのデータ処理システム100に対するクライアントである他のネットワーク・コンピュータのような入出力デバイスとの間のインターフェースを提供する。
更なるPCIホスト・ブリッジ122が更なるPCIバス123に対するインターフェースを提供する。PCIバス123は、複数のPCII/Oアダプタ128−129に接続される。PCI I/Oアダプタ128−129は、PCI・ツー・PCIブリッジ124、PCIバス126、PCIバス127、I/Oスロット172、及びI/Oスロット173を介してPCIバス123に接続可能である。PCI・ツー・PCIブリッジ124は、PCIバス126及びPCIバス127に対するインターフェースを提供する。PCII/Oアダプタ128−129は、それぞれ、I/Oスロット172及び173に挿入される。このように、例えば、モデム又はネットワーク・アダプタのような更なるI/OデバイスがPCII/Oアダプタ128−129の各々を介してサポートされ得る。このように、データ処理システム100は、複数のネットワーク・コンピュータへの接続を可能にする。
I/Oスロット174に挿入されたメモリ・マップ・グラフィックス・アダプタ148がPCIバス144、PCI・ツー・PCIブリッジ142、PCIバス141、及びPCIホスト・ブリッジ140を介してI/Oバス112に接続可能である。ハード・ディスク・アダプタ149が、PCIバス145に接続されたI/Oスロット175に挿入可能である。一方、このバス145はPCI・ツー・PCIブリッジ142に接続される。このブリッジ142は、PCIバス141によってPCIホスト・ブリッジ140に接続される。
PCIホスト・ブリッジ130は、PCIバス131をI/Oバス112に接続するためのインターフェースを提供する。PCII/Oアダプタ136がI/Oスロット176に接続され、そのI/Oスロット176は、PCIバス133によってPCI・ツー・PCIブリッジ132に接続される。PCI・ツー・PCIブリッジ132は、PCIバス131に接続される。このPCIバス131は、PCIホスト・ブリッジ130をサービス・プロセッサ・メールボックス・インターフェース及びISAバス・アクセス・パススルー・ロジック194、並びにPCI・ツー・PCIブリッジ132にも接続する。サービス・プロセッサ・メールボックス・インターフェース及びISAバス・アクセス・パススルー・ロジック194は、PCI/ISAブリッジ193を宛先とするPCIアクセスを転送する。NVRAMストレージ192がISAバス196に接続される。サービス・プロセッサ135がそれのローカルPCIバス195を介してサービス・プロセッサ・メールボックス・インターフェース及びISAバス・アクセス・パススルー・ロジック194に接続される。サービス・プロセッサ135は、複数のJTAG/ICバス134を介してプロセッサ101−104にも接続される。JTAG/ICバス134は、JTAG/スキャン・バス(IEEE 1149.1参照)及びPhillips ICバスの結合したものである。しかし、それとは別に、JTAG/ICバス134は、PhillipsICバスのみ又はJTAG/スキャン・バスのみによって置換可能である。ホスト・プロセッサ101、102、103、及び104のすべてのSP−ATTN信号がサービス・プロセッサ135の割込み入力信号に接続される。サービス・プロセッサ135は、それ自身のローカル・メモリ191を有し、ハードウェアのOPパネル190へのアクセスを有する。
データ処理システム100が先ずパワー・アップされるとき、サービス・プロセッサ135が、JTAG/ICバス134を使用してそのシステム(ホスト)のプロセッサ101−104、メモリ・コントローラ/キャッシュ108、及びI/Oブリッジ110に問い合わせを行う。このステップの終了時には、サービス・プロセッサ135は、データ処理システム100のインベントリ及びトポロジの理解を得る。更に、サービス・プロセッサ135は、ホスト・プロセッサ101−104、メモリ・コントローラ/キャッシュ108、及びI/Oブリッジ110に問い合わせを行うことによってわかるすべてのエレメントに関する組み込み自己診断テスト(Built-In-Self-Test;BIST)、基本検証テスト(Basic Assurance Test;BAT)、及びメモリ・テストも実行する。BIST、BAT、及びメモリ・テスト時に検出された障害に関するいかなるエラー情報もサービス・プロセッサ135によって収集され、レポートされる。
BIST、BAT、及びメモリ・テストの時に欠陥があることがわかったエレメントを取り除いた後でもシステム・リソースの有意味な/有効な構成が依然として可能である場合、データ処理システム100は、実行可能なコードをローカル(ホスト)メモリ160−163にロードし続けることが可能である。そこで、サービス・プロセッサ135は、ローカル・メモリ160−163にロードされたコードを実行するためにホスト・プロセッサ101−104をリリースする。ホスト・プロセッサ101−104がデータ処理システム100においてそれぞれのオペレーティング・システムからのコードを実行しているとき、サービス・プロセッサ135が、エラーをモニタ及びレポートするモードに入る。サービス・プロセッサ135によってモニタされるアイテムのタイプは、例えば、冷却ファンの速度及び操作、温度センサ、電源調整器、並びに、プロセッサ101−104、ローカル・メモリ160−163、及びI/Oブリッジ110によってレポートされた回復可能なエラー及び回復不可能なエラーを含む。
サービス・プロセッサ135は、データ処理システム100におけるモニタされたすべてのアイテムに関連したエラー情報を保管及びレポートする責任がある。サービス・プロセッサ135は、更に、エラーのタイプ及び定義された閾値に基づいてアクションを取る。例えば、サービス・プロセッサ135は、プロセッサのキャッシュ・メモリに関する過剰な回復可能エラーに注目し、これが深刻な障害の前兆であることを決定することもできる。この決定に基づいて、サービス・プロセッサ135は、現在実行中のセッション及び将来の初期プログラム・ロード(Initial Program Load;IPL)時のデコンフィグレーション(deconfiguration)に関してそのリソースに注意を払うことが可能である。IPLは、時には、「ブート」又は「ブートストラップ」と呼ばれることもある。
データ処理システム100は、種々の商業的に入手可能なコンピュータ・システムを使用して実現可能である。例えば、データ処理システム100は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なIBMeServer iSeries Model 840システムを使用して実現可能である。そのようなシステムは、AIX又はLINUXオペレーティング・システムを使用してロジカル・パーティショニングをサポートすることが可能である。
図1に示されたハードウェアが変更可能であることは当業者には明らかであろう。例えば、光ディスク・ドライブ等のような他の周辺装置も、図示のハードウェアに加えて又はそれの代わりに使用可能である。図示の例は、本発明に関するアーキテクチャ上の限定を暗示することを意味するものではない。
次に、図2を参照すると、本発明を実装し得る例示のロジカル・パーティション・プラットフォームのブロック図が示される。ロジカル・パーティション・プラットフォーム200におけるハードウェアは、例えば、図1におけるデータ処理システム100として実現可能である。ロジカル・パーティション・プラットフォーム200は、パーティション化されたハードウェア230、オペレーティング・システム202、204、206、208、及びハイパーバイザ210を含む。オペレーティング・システム202、204、206、及び208は、単一のオペレーティング・システムの複数のコピー又は複数の異種オペレーティング・システムであってもよく、それらはプラットフォーム200において同時に実行される。これらのオペレーティング・システムは、ハイパーバイザとインターフェースするように設計されたAIX又はLINUXを使用して実装可能である。オペレーティング・システム202、204、206、及び208は、パーティション203、205、207、及び209に配置される。
更に、これらのパーティションは、パーティション・ファームウェア(PFW)211、213、215、及び217も含む。パーティション・ファームウェアは、そのパーティションにおけるオペレーティング・システムによってコールされる機能を提供する。パーティション203、205、207、及び209がインスタンス化されるとき、パーティション・ファームウェアのコピーがハイパーバイザのパーティション・マネージャによって各パーティションにロードされる。そこで、それらのパーティションに関連した或いは割り当てられたプロセッサが、パーティション・ファームウェアを実行するためにパーティションのメモリにディスパッチされる。このパーティション・ファームウェアは、オープン・ファームウェア及びランタイム・アブストラクション・サービス(runtime abstraction service;RTAS)を含む。パーティション・ファームウェアは、その時点で、単一のモジュール又はロード識別子(LID)にパッケージされる。本発明の場合、パーティションがそのパーティションをリブートすることなく実行されつつあるとき、パーティション・ファームウェアのランタイム機能が再ロード可能である。パーティション・ファームウェアをLIDよりも多く配置させること及び更なる機能を加えることはそのような特徴を可能にする。本発明は、プラットフォーム200をリブートすることなくファームウェア更新が生じることを可能にする方法において、2つの別個のロード可能なモジュールをパーティション・ファームウェアに与える機構を提供する。そのような特徴は、種々のアプリケーションの実行における割り込みを少なくする。これらの例では、LIDがフラッシュ・メモリにおける独立的にロードされたモジュール用のコンテナとして使用される。しかし、本発明の機構は、複数の独立的にロード可能なモジュールをサポートする任意のフォーマットを使用して実装可能である。
パーティション・ハードウェア230は、複数のプロセッサ232−238、複数のシステム・メモリ・ユニット240−246、複数の入出力(I/O)アダプタ248−262、及びストレージ・ユニット270を含む。パーティション・ハードウェア230は、パーティションにおけるエラーの処理のような種々のサービスを提供するために使用可能なサービス・プロセッサ290も含む。プロセッサ232−238、メモリ・ユニット240−246、NVRAMストレージ298、及びI/Oアダプタ248−262の各々は、ロジカル・パーティション・プラットフォーム200における、各々がオペレーティング・システム202、204、206、及び208の1つに対応する複数のパーティションの1つに割り振られる。
パーティション管理ファームウェア(ハイパーバイザ)210は、パーティション203、205、207、及び209がロジカル・パーティション・プラットフォーム200のパーティショニングを創作及び強制(enforce)するための多くの機能及びサービスを実行する。ハイパーバイザ210は、基礎となるハードウェアと同様のファームウェア実装の仮想マシンである。ハイパーバイザ・ソフトウェアは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能である。ファームウェアは、例えば、リード・オンリ・メモリ(ROM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、及び不揮発性ランダム・アクセス・メモリ(不揮発性RAM)のような、電力なしでその内容を保持するメモリ・チップにストアされた「ソフトウェア」である。従って、ハイパーバイザ210は、ロジカル・パーティション・プラットフォーム200のすべてのハードウェア・リソースを仮想化することによって、独立したOSイメージ202、204、206、及び208を同時実行することを可能にする。
種々のパーティションのオペレーションがコンソール264のようなハードウェア管理コンソールを介して制御可能である。コンソール264は、システム管理者が、種々のパーティションへのリソースの再割り振りを含む種々の機能を実行し得る別個のデータ処理システムである。
次に図3を参照すると、本発明の望ましい実施例に従って、パーティション・ファームウェアを表す図が示される。パーティション・ファームウェア300が、図2におけるパーティション・ファームウェア211、213、215、又は217としてプラットフォーム200において実装可能である。これらの例では、パーティション・ファームウェア300は、2つの別々にロード可能なモジュール又はロード識別子(LID)として実装される。このような構成は、一般的に構造化されている単一のLIDシステムとは対照的である。
LID302は、パーティション・ファームウェア300の固定部分である。このモジュールは、図2に示されたようなハイパーバイザによってメモリにロードされる。LID302は、ブート・ローダ304、RTASディスパッチャ306、バインダ機能308、LIDローダ機能310、及びオープン・ファームウェア機能312を含む。ブート・ローダ304は、オープン・ファームウェア機能312が実行され得る環境を確立すべくスタックを設定するために使用される。LIDローダ機能310は、第2ランタイムLID316をメモリにロードするために使用される。バインダ機能308は、コンテンツのテーブル322を調べてRTAS及びオープン・ファームウェア機能312のアドレスを決定するために使用される。この機能は、RTASディスパッチャ306におけるディスパッチ・テーブルを更新するために使用される。更に詳しく言えば、RTASディスパッチャ306は、RTASトークンによって識別されたパーティション・オペレーティング・システムによってコールされた各RTAS機能を実装機能のアドレスと関連付けるデータ構造を含む。バインダ機能308は、各実装機能のアドレスを位置指定し、このテーブルをその適切なアドレスでもって満たす。
パーティション・ファームウェア300では、LID316がオープン・ファームウェア・ランタイム318、RTAS機能320、及びコンテンツのテーブル322を含む。明らかなように、オープン・ファームウェア・コンポーネント及びRTASコードがLID316において位置指定される。このオープン・ファームウェア・コンポーネント及びRTASコードは、このパーティション・ファームウェアが実行されるパーティションにおけるオペレーティング・システムによってコールされ得る種々の機能を提供する。コンテンツのテーブル322は、グローバル・シンボルと、LID316におけるオープン・ファームウェア・ランタイム318及びRTAS機能320によって提供される種々の機能に対する機能ポインタを設定するために使用される他の情報とを提供する。RTAS機能は、この機能がない場合にオペレーティング・システムにおいてプラットフォーム従属コードを必要とする多くの重要なプラットフォーム機能を、そのオペレーティング・システムが操作する必要がないようにするために設けられる。これらの機能の例は、NVRAMの読み取り及び書き込み、時刻の読み取り及び設定、プラットフォーム・ハードウェア・エラーの認識及び報告、PCIコンフィギュレーション・スペースの読み取り及び書き込み、割り込みコンフィグレーション・レジスタの読み取り又は書き込み、及びその他多数である。
LID316は、ファームウェア活動化RTAS機能に対するコールが行われることに応答して動的に置換可能であるように又は更新されるように設計される。
パーティション・ブート時に、LID302がロードされる。一方、そのLID302は、LIDローダ機能310を使用してLID316をロードする。しかる後、LID302は、スタックを設定し、コンテンツのテーブル322を調べてグローバル・シンボルのロケーションを見つけ、バインダ機能308を使用してRTASディスパッチャ306において機能ポインタを設定する。更に、LID316におけるオープン・ファームウェア・ランタイム318の開始点にジャンプするように、1つの機能ポインタが設定されるであろう。更に、RTASグローバル・データがLID302に関連してストアされる。一旦それらの機能ポインタが設定されてしまうと、RTASディスパッチャ306は、オペレーティング・システムからのコールをLID316における適切な機能に経路指定するであろう。通常、グローバル変数が、そのモジュールのコンテンツのテーブル(TOC)におけるアドレスを見つけることによってアクセスされる。本発明がTOCを含むモジュールを置換するための機構を提供する場合、この方式は働かないであろう。更に、グローバル・データのためのストレージもそのモジュール内にあるので、そのモジュールが置換されるとき、現在の「状態」は失われる。この問題は、ランタイムLID316によって使用されたすべてのグローバル・データを固定LID302の内部にストアすることによって解決され、そして、変数を直接に(TOCを介して)アクセスする代わりに、データが固定LID302にストアされ、データ・カプセル化方法を通してアクセスされる。そのカプセル化方法は、単一のアンカ・ポインタを固定LID302の内部に保持することによって、及びそのアンカ・ポインタに関連した各データ・タイムを位置指定するために使用されるコンテンツのテーブル(そのモジュールのTOCとは異なる)を維持することによって働く。
本発明の機構は、パーティション又はLPARデータ処理システムのリブートを必要としない方法で、パーティション・ファームウェア300に対するファームウェア更新が行われることを可能にする。ファームウェアを更新するプロセスは、フラッシュ・メモリにおけるLID316を新たなバージョンでもって置換するハードウェア管理コンソール(HMC)によって開始され、しかる後、オペレーティング・システムがその新たなファームウェアを活動化するプロセスを始めなければならないことを表すメッセージを各パーティションにおけるオペレーティング・システムに送る。オペレーティング・システムは、RTASファームウェア活動化サービスをコールすることによって新たなファームウェアを活動化するプロセスを開始する。このRTASサービスは、LID316の新たなコピーをメモリにロードする。第2LIDというこの新たなコピーは、この例では、機能の更新されたセットである。LID316の新たなコピーは、現在使用中であるLID316のコピーに重ならない。LID316の新たなコピーをロードするプロセスは、完了するために多少の時間を必要とすることがあり、それが処理中であるとき、ファームウェア活動化サービスが戻り、他のRTAS機能がオペレーティング・システムによってコールされることを可能にする。オペレーティング・システムは、RTASファームウェア活動化サービスを、それが終了するまで、規則的なインターバルでコールし続ける。新たなLIDがロードされた後、LID316の場合のように、機能ポインタがLID324に対して設定される。
詳しく言えば、新たなLIDにおけるエントリ・ポイントが、バインダ機能308を使用して識別される。これらのエントリ・ポイントに関して、RTASディスパッチャ306がその新たなエントリ・ポイントでもって更新される。この時点で、活動化プロセスが終了し、RTASファームウェア活動化サービスが、これを表すリターン・コードを戻す。RTASコールを行うセマンティックスは、オペレーティング・システムが一時に1つのRTAS機能コールしか行わないことを必要とするので、LID316の新たなコピーを参照するために機能ポインタの更新を逐次化するというプロセスが達成される。従って、RTASコールが機能ポインタを更新するプロセスにあるとき、RTASディスパッチャ306が機能テーブルを使用することを必要とする他のRTASコールが受領されることはないであろう。
ランタイム時にLID316をリロード及び活動化するプロセスは、ブート・タイム時に行われるステップとほとんど同じであることに留意してほしい。望ましい実施例では、ブート時(図4に示される)及びランタイム活動化時(図6に示される)にこれらのステップを実行するために同じコード命令が使用されるであろう。
次に、図4を参照すると、本発明の望ましい実施例に従って、パーティション・ファームウェアをロードするためのプロセスのフローチャートが示される。図4に示されたプロセスは、図3におけるLID302のようなLIDによって実行される。このプロセスは、パーティション・ファームウェアにおけるこの第1LIDがパーティションにロードされた後に開始される。
プロセスは、第2LIDをロードすることによって始まる(ステップ400)。しかる後、第2LIDへのエントリ・ポイントが識別される(ステップ402)。これらのエントリ・ポイントは、オペレーティング・システムによってコールされ得るオープン・ファームウェア及び機能へのエントリ・ポイントである。これらのエントリ・ポイントによって、RTASディスパッチャに対するメモリ・アドレスのテーブルが更新され(ステップ404)、しかる後、プロセスが終了する。これらのメモリ・アドレスは、オペレーティング・システムから受け取ったコールを、第2LIDにおける適切な機能に経路指定するためにRTASディスパッチャによって使用される。
次に、図5を参照すると、本発明の望ましい実施例に従って、コールを経路指定するためのプロセスのフローチャートが示される。図5に示されたプロセスは、図3におけるLID302におけるRTASディスパッチャ306のようなディスパッチャにおいて実装される。
プロセスは、或る機能に対するオペレーティング・システム・コールを受け取ることによって開始する(ステップ500)。しかる後、第2LIDにおいて、1つの機能が識別される(ステップ502)。この機能は、第2LIDにおける種々の機能のための種々のエントリ・ポイントに対してメモリ・アドレスを使用して識別される。そのコールに対する適切なエントリ・ポイントが見つかった後、第2LIDにおける機能がコールされ(ステップ504)、しかる後、プロセスが終了する。
次に、図6を参照すると、本発明の望ましい実施例に従って、パーティション・ファームウェアを更新又は再構成するためのプロセスのフローチャートが示される。図6に示されたプロセスは更新機能に実装可能である。
プロセスは、動的再構成のためのコールを受けることによって開始する(ステップ600)。このコールを受けたことに応答して、新たなLIDのローディングが進行中であるかどうかに関する決定が行われる(ステップ602)。新たなLIDのローディングが進行中である場合、そのローディングが完了したかどうかに関する決定が行われる(ステップ604)。新たなLIDのローディングが完了してしまった場合、第2LIDというこの新たなコピーへのエントリ・ポイントが識別される(ステップ606)。そこで、RTASディスパッチャがそのエントリ・ポイントに対するこれらの新たなアドレスでもって更新され(ステップ608)、しかる後、プロセスが終了する。
再びステップ604を参照すると、新たなLIDのローディングが完了していない場合、メッセージ「未完了」がコール元に返送され(ステップ610)、しかる後、プロセスは上述のステップ600に戻る。説明をステップ602に戻すと、新たなLIDのローディングが進行中でない場合、プロセスはこの新たなLIDのローディングを開始して(ステップ612)、メッセージ「未完了」がコール元に返送され(ステップ614)、しかる後、プロセスはステップ600に戻る。
本発明の機構は、動的再構成オペレーションがオペレーティング・システムに対して正常に生じた方法と同じ方法で、パーティション・ファームウェアの更新が行われることを可能にする。この動的構成が要求されるとき、本発明の機構は、パーティション又はLPARデータ処理システムのリブートを必要とすることなく、パーティション・ファームウェアの更新を行う。
このように、本発明は、システムのリブートを必要としない態様でパーティション・ファームウェアを更新及び活動化するための方法、装置、及びコンピュータ命令を提供する。この特徴(feature)によって、LPARデータ処理システムにおいて実行されるアプリケーションの割り込み及びそれらのアプリケーションのユーザに提供されたサービスへの割り込みが最小にされる。本発明は、これらの利点及び他の利点を2つのLIDの使用を通して提供する。第1LIDは、第2LIDをロードし、しかも、第2LIDにコールを経路指定すると共に、第2LIDを新たなLIDでもって更新又は置換するための機構を提供する。
これらの例では、提供された種々の機能が第2LIDに設けられる。もちろん、それらの機能のいくつかが第1LIDに設けられてもよい。しかし、そのような構成は、第1LIDにおいて設けられた機能の更新を可能にするものではない。更に、それらの機能を含む1つだけの第2LIDが設けられるけれども、本発明の機構は、複数の第2LIDが使用されるように実装可能である。複数の第2LIDによって、これらの種々のLIDにおける機能に対するエントリ・ポイントが位置指定され、しかる後、ディスパッチャが適切なエントリ・ポイントでもって更新される。
十分に機能するデータ処理システムに関連して本発明を説明したけれども、本発明のプロセスが命令のコンピュータ可読媒体の形で及び種々の形で配布可能であること、及び本発明がその配布を実行するために実際に使用される特定のタイプの信号保持媒体に関係なく等しく適用することは当業者には明らかであろうということを留意することは重要である。コンピュータ可読媒体の例は、フロッピ(R)・ディスク、ハード・ディスク・ドライブ、
RAM、CD−ROM、DVD−ROMのような記録可能型媒体、並びに、例えば、無線周波数伝送及び光波伝送のような通信形態を使用するディジタル及びアナログ通信リンク及び有線又は無線通信リンクを含む。コンピュータ可読媒体は、特定のデータ処理システムにおいて実際に使用するためにデコードされるコード化フォーマットの形を取ることが可能である。
本発明に関する記述は、図解及び説明を目的として示されたものであり、網羅的であること及び開示された形態の発明に限定されることを意図するものではない。多くの修正及び変更が当業者には明らかであろう。なお、実施例は、本発明の原理及び実用的な応用を最も適切に説明するために、及び、当業者でない人が、特定の意図した用途に適する種々の修正を伴う種々の実施例に関して発明を理解することを可能にするために、選択され且つ説明された。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法であって、
パーティションのセット内のパーティションに対する前記パーティション・ファームウェアにおける第1モジュールをロードするステップにして、前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、ステップと、
前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードするステップにして、前記第2モジュールは前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供する、ステップと、
前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するステップにして、前記第2モジュールが前記コールに応答して機能を実行する、ステップと
を含む、方法。
(2)前記第1モジュール及び前記第2モジュールがロード識別子である、上記(1)に記載の方法。
(3)前記第1モジュールが、前記第2モジュールにおける機能エントリ・ポイントを識別し、前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、上記(1)に記載の方法。
(4)前記第2モジュールがオリジナルの第2モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第2モジュールが動作を継続している間に、新たな第2モジュールをロードするステップと、
前記新たな第2モジュールにコールを経路指定するステップと
を更に含み、
前記パーティション・ファームウェアが前記パーティションのリブートを必要とすることなく動的に更新される、
上記(1)に記載の方法。
(5)前記新たな第2モジュールにコールを経路指定するステップが、
前記新たな第2モジュールにおける機能エントリ・ポイントを識別するステップと、
前記第1モジュールのインターフェースにおいて受けたコールを前記新たな第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するステップと
を含む、上記(4)に記載の方法。
(6)前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、上記(4)に記載の方法。
(7)前記経路指定するステップが、前記第1モジュールにおける機能ディスパッチャによって実行される、上記(1)に記載の方法。
(8)パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第1モジュールをロードするための第1ローディング手段にして、前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第1ローディング手段と、
前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードするための第2ローディング手段にして、前記第2モジュールが前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供する、第2ローディング手段と、
前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するための経路指定手段にして、前記第2モジュールが前記コールに応答して機能を実行する、経路指定手段と
を含む、ロジカル・パーティション・データ処理システム。
(9)前記第1モジュール及び前記第2モジュールがロード識別子である、上記(8)に記載のロジカル・パーティション・データ処理システム。
(10)前記第1モジュールが、前記第2モジュールにおける機能エントリ・ポイントを識別し、前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、上記(8)に記載のロジカル・パーティション・データ処理システム。
(11)前記第2モジュールがオリジナルの第2モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第2モジュールが動作を継続している間に、新たな第2モジュールをロードするための第3ローディング手段と、
前記新たな第2モジュールにコールを経路指定するための第2経路指定手段とを更に含み、
前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
上記(8)に記載のロジカル・パーティション・データ処理システム。
(12)前記第2経路指定手段が、
前記新たな第2モジュールにおける機能エントリ・ポイントを識別するための識別手段と、
前記第1モジュールのインターフェースにおいて受けたコールを前記新たな第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための更新手段と
を含む、上記(11)に記載のロジカル・パーティション・データ処理システム。
(13)前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、上記(11)に記載のロジカル・パーティション・データ処理システム。
(14)前記経路指定手段が、前記第1モジュールにおける機能ディスパッチャに設けられる、上記(8)に記載のロジカル・パーティション・データ処理システム。
(15)バス・システムと、
前記バス・システムに接続され、命令のセットを含むメモリと、
複数のプロセッサを有し、前記バス・システムに接続されたプロセッサ・ユニットと
を含み、
前記プロセッサ・ユニットが前記命令のセットを実行して、
(a)パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第1モジュールをロードし、
(b)前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供し、
(c)前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードし、
(d)前記第2モジュールが前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供し、
(e)前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定し、
(f)前記第2モジュールが前記コールに応答して機能を実行する、
ロジカル・パーティション・データ処理システム。
(16)ロジカル・パーティション・データ処理システムにおけるパーティション・ファームウェアを更新するために、コンピュータ可読媒体に含まれたコンピュータ・プログラム製品であって、
前記プログラム製品は、コンピュータに実行させる、
パーティションのセット内のパーティションに対する前記パーティションにおける第1モジュールをロードするための第1命令にして、前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第1命令と、
前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードするための第2命令にして、前記第2モジュールが前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供する、第2命令と、
前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するための第3命令にして、前記第2モジュールが前記コールに応答して機能を実行する、第3命令と
を含む、コンピュータ・プログラム製品。
(17)前記第1モジュール及び前記第2モジュールがロード識別子である、上記(16)に記載のコンピュータ・プログラム製品。
(18)前記第1モジュールが、前記第2モジュールにおける機能エントリ・ポイントを識別し、前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、上記(16)に記載のコンピュータ・プログラム製品。
(19)前記第2モジュールがオリジナルの第2モジュールであり、
前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第2モジュールが動作を継続している間に、新たな第2モジュールをロードするための第4命令と、
前記新たな第2モジュールにコールを経路指定するための第5命令と
を更に含み、
前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
上記(16)に記載のコンピュータ・プログラム製品。
(20)前記新たな第2モジュールが、
前記新たな第2モジュールにおける機能エントリ・ポイントを識別するための第1サブ命令と、
前記第1モジュールのインターフェースにおいて受けたコールを前記新たな第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための第2サブ命令と
を含む、上記(19)に記載のコンピュータ・プログラム製品。
本発明を実装し得るデータ処理システムのブロック図である。 本発明を実装し得る例示的なロジカル・パーティション・プラットフォームのブロック図である。 本発明の望ましい実施例に従ってパーティション・ファームウェアを示す図である。 本発明の望ましい実施例に従ってパーティション・ファームウェアをロードするためのプロセスのフローチャートである。 本発明の望ましい実施例に従ってコールを経路指定するためのプロセスのフローチャートである。 本発明の望ましい実施例に従ってパーティション・ファームウェアを更新又は再構成するためのプロセスのフローチャートである。

Claims (20)

  1. ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを更新するための方法であって、
    パーティションのセット内のパーティションに対する前記パーティション・ファームウェアにおける第1モジュールをロードするステップにして、前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、ステップと、
    前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードするステップにして、前記第2モジュールは前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供する、ステップと、
    前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するステップにして、前記第2モジュールが前記コールに応答して機能を実行する、ステップと
    を含む、方法。
  2. 前記第1モジュール及び前記第2モジュールがロード識別子である、請求項1に記載の方法。
  3. 前記第1モジュールが、前記第2モジュールにおける機能エントリ・ポイントを識別し、前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、請求項1に記載の方法。
  4. 前記第2モジュールがオリジナルの第2モジュールであり、
    前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第2モジュールが動作を継続している間に、新たな第2モジュールをロードするステップと、
    前記新たな第2モジュールにコールを経路指定するステップと
    を更に含み、
    前記パーティション・ファームウェアが前記パーティションのリブートを必要とすることなく動的に更新される、
    請求項1に記載の方法。
  5. 前記新たな第2モジュールにコールを経路指定するステップが、
    前記新たな第2モジュールにおける機能エントリ・ポイントを識別するステップと、
    前記第1モジュールのインターフェースにおいて受けたコールを前記新たな第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するステップと
    を含む、請求項4に記載の方法。
  6. 前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、請求項4に記載の方法。
  7. 前記経路指定するステップが、前記第1モジュールにおける機能ディスパッチャによって実行される、請求項1に記載の方法。
  8. パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第1モジュールをロードするための第1ローディング手段にして、前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第1ローディング手段と、
    前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードするための第2ローディング手段にして、前記第2モジュールが前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供する、第2ローディング手段と、
    前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するための経路指定手段にして、前記第2モジュールが前記コールに応答して機能を実行する、経路指定手段と
    を含む、ロジカル・パーティション・データ処理システム。
  9. 前記第1モジュール及び前記第2モジュールがロード識別子である、請求項8に記載のロジカル・パーティション・データ処理システム。
  10. 前記第1モジュールが、前記第2モジュールにおける機能エントリ・ポイントを識別し、前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、請求項8に記載のロジカル・パーティション・データ処理システム。
  11. 前記第2モジュールがオリジナルの第2モジュールであり、
    前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第2モジュールが動作を継続している間に、新たな第2モジュールをロードするための第3ローディング手段と、
    前記新たな第2モジュールにコールを経路指定するための第2経路指定手段とを更に含み、
    前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
    請求項8に記載のロジカル・パーティション・データ処理システム。
  12. 前記第2経路指定手段が、
    前記新たな第2モジュールにおける機能エントリ・ポイントを識別するための識別手段と、
    前記第1モジュールのインターフェースにおいて受けたコールを前記新たな第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための更新手段と
    を含む、請求項11に記載のロジカル・パーティション・データ処理システム。
  13. 前記リクエストが、前記パーティション・ファームウェアの動的再構成を求めるリクエストである、請求項11に記載のロジカル・パーティション・データ処理システム。
  14. 前記経路指定手段が、前記第1モジュールにおける機能ディスパッチャに設けられる、請求項8に記載のロジカル・パーティション・データ処理システム。
  15. バス・システムと、
    前記バス・システムに接続され、命令のセットを含むメモリと、
    複数のプロセッサを有し、前記バス・システムに接続されたプロセッサ・ユニットと
    を含み、
    前記プロセッサ・ユニットが前記命令のセットを実行して、
    (a)パーティションのセット内のパーティションに対するパーティション・ファームウェアにおける第1モジュールをロードし、
    (b)前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供し、
    (c)前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードし、
    (d)前記第2モジュールが前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供し、
    (e)前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定し、
    (f)前記第2モジュールが前記コールに応答して機能を実行する、
    ロジカル・パーティション・データ処理システム。
  16. ロジカル・パーティション・データ処理システムにおけるパーティション・ファームウェアを更新するために、コンピュータ可読媒体に含まれたコンピュータ・プログラム製品であって、
    前記プログラム製品は、コンピュータに実行させる、
    パーティションのセット内のパーティションに対する前記パーティションにおける第1モジュールをロードするための第1命令にして、前記第1モジュールが前記パーティションにおけるオペレーティング・システムからのコールを受けるためのインターフェースを提供する、第1命令と、
    前記パーティションに対する前記パーティション・ファームウェアにおける第2モジュールをロードするための第2命令にして、前記第2モジュールが前記第1モジュールによってロードされ、前記第2モジュールが複数の機能を提供する、第2命令と、
    前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するための第3命令にして、前記第2モジュールが前記コールに応答して機能を実行する、第3命令と
    を含む、コンピュータ・プログラム製品。
  17. 前記第1モジュール及び前記第2モジュールがロード識別子である、請求項16に記載のコンピュータ・プログラム製品。
  18. 前記第1モジュールが、前記第2モジュールにおける機能エントリ・ポイントを識別し、前記第1モジュールのインターフェースにおいて受けたコールを前記第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新する、請求項16に記載のコンピュータ・プログラム製品。
  19. 前記第2モジュールがオリジナルの第2モジュールであり、
    前記パーティション・ファームウェアを更新するためのリクエストに応答して、前記オリジナルの第2モジュールが動作を継続している間に、新たな第2モジュールをロードするための第4命令と、
    前記新たな第2モジュールにコールを経路指定するための第5命令と
    を更に含み、
    前記パーティション・ファームウェアが、前記パーティションのリブートを必要とすることなく動的に更新される、
    請求項16に記載のコンピュータ・プログラム製品。
  20. 前記新たな第2モジュールが、
    前記新たな第2モジュールにおける機能エントリ・ポイントを識別するための第1サブ命令と、
    前記第1モジュールのインターフェースにおいて受けたコールを前記新たな第2モジュールに経路指定するために、前記機能エントリ・ポイントに対するメモリ・アドレスでもって機能テーブルを更新するための第2サブ命令と
    を含む、請求項19に記載のコンピュータ・プログラム製品。
JP2004115042A 2003-04-10 2004-04-09 ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置 Expired - Fee Related JP3815569B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/411,465 US20040205776A1 (en) 2003-04-10 2003-04-10 Method and apparatus for concurrent update and activation of partition firmware on a logical partitioned data processing system

Publications (2)

Publication Number Publication Date
JP2004318880A true JP2004318880A (ja) 2004-11-11
JP3815569B2 JP3815569B2 (ja) 2006-08-30

Family

ID=33130988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004115042A Expired - Fee Related JP3815569B2 (ja) 2003-04-10 2004-04-09 ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置

Country Status (2)

Country Link
US (1) US20040205776A1 (ja)
JP (1) JP3815569B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503214A (ja) * 2013-01-15 2016-02-01 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 動的ファームウェア更新

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380174B2 (en) * 2004-09-28 2008-05-27 Hewlett-Packard Development Company, L.P. Variable writing through a fixed programming interface
US7827544B2 (en) * 2004-11-18 2010-11-02 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with parallel activation
US7747573B2 (en) * 2004-11-18 2010-06-29 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with serial activation
US7395403B2 (en) * 2005-08-11 2008-07-01 International Business Machines Corporation Simulating partition resource allocation
US7823020B2 (en) * 2006-08-30 2010-10-26 International Business Machines Corporation System and method for applying a destructive firmware update in a non-destructive manner
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor
US8055733B2 (en) * 2007-10-17 2011-11-08 International Business Machines Corporation Method, apparatus, and computer program product for implementing importation and converging system definitions during planning phase for logical partition (LPAR) systems
US8201161B2 (en) * 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
US9910688B2 (en) * 2008-11-28 2018-03-06 Red Hat, Inc. Implementing aspects with callbacks in virtual machines
US8418166B2 (en) 2011-01-11 2013-04-09 International Business Machines Corporation Transparent update of adapter firmware for self-virtualizing input/output device
EP2865164B1 (en) * 2012-06-21 2019-08-14 Saab Ab Dynamic memory access management
US9858098B2 (en) * 2012-12-21 2018-01-02 Red Hat Israel, Ltd. Hypervisor modification of system tables
US9280372B2 (en) 2013-08-12 2016-03-08 Amazon Technologies, Inc. Request processing techniques
US10346148B2 (en) 2013-08-12 2019-07-09 Amazon Technologies, Inc. Per request computer system instances
US9348634B2 (en) 2013-08-12 2016-05-24 Amazon Technologies, Inc. Fast-booting application image using variation points in application source code
US9705755B1 (en) 2013-08-14 2017-07-11 Amazon Technologies, Inc. Application definition deployment with request filters employing base groups
KR102398611B1 (ko) 2015-05-07 2022-05-17 에스케이하이닉스 주식회사 메모리 시스템
US11153164B2 (en) 2017-01-04 2021-10-19 International Business Machines Corporation Live, in-line hardware component upgrades in disaggregated systems
US10534598B2 (en) 2017-01-04 2020-01-14 International Business Machines Corporation Rolling upgrades in disaggregated systems
EP3376391A1 (en) * 2017-03-17 2018-09-19 Ricoh Company Ltd. Information processing apparatus, updating method, and carrier means

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4607332A (en) * 1983-01-14 1986-08-19 At&T Bell Laboratories Dynamic alteration of firmware programs in Read-Only Memory based systems
US5918048A (en) * 1997-03-17 1999-06-29 International Business Machines Corporation Booting an operating system using soft read-only storage (ROS) for firmware emulation
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6023704A (en) * 1998-01-29 2000-02-08 International Business Machines Corporation Apparatus and method for swapping identities of two objects to reference the object information of the other
US6141771A (en) * 1998-02-06 2000-10-31 International Business Machines Corporation Method and system for providing a trusted machine state
US6247109B1 (en) * 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
US6637023B1 (en) * 1999-03-03 2003-10-21 Microsoft Corporation Method and system for updating read-only software modules
US6536038B1 (en) * 1999-11-29 2003-03-18 Intel Corporation Dynamic update of non-upgradeable memory
US6725317B1 (en) * 2000-04-29 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for managing a computer system having a plurality of partitions
US6684343B1 (en) * 2000-04-29 2004-01-27 Hewlett-Packard Development Company, Lp. Managing operations of a computer system having a plurality of partitions
US6789157B1 (en) * 2000-06-30 2004-09-07 Intel Corporation Plug-in equipped updateable firmware
US7403952B2 (en) * 2000-12-28 2008-07-22 International Business Machines Corporation Numa system resource descriptors including performance characteristics
US6834340B2 (en) * 2001-03-01 2004-12-21 International Business Machines Corporation Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines
US6910113B2 (en) * 2001-09-07 2005-06-21 Intel Corporation Executing large device firmware programs
US6915513B2 (en) * 2001-11-29 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for dynamically replacing code
US7145682B2 (en) * 2002-12-20 2006-12-05 Hewlett-Packard Development Company, L.P. Temporary printer firmware upgrade

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503214A (ja) * 2013-01-15 2016-02-01 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 動的ファームウェア更新
US10101988B2 (en) 2013-01-15 2018-10-16 Hewlett Packard Enterprise Development Lp Dynamic firmware updating

Also Published As

Publication number Publication date
US20040205776A1 (en) 2004-10-14
JP3815569B2 (ja) 2006-08-30

Similar Documents

Publication Publication Date Title
JP3815569B2 (ja) ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置
JP3954088B2 (ja) 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構
US8352940B2 (en) Virtual cluster proxy to virtual I/O server manager interface
JP3910554B2 (ja) 論理パーティション・データ処理システムでのエラーまたはイベントを処理する方法、コンピュータ・プログラム、データ処理システム
US7139940B2 (en) Method and apparatus for reporting global errors on heterogeneous partitioned systems
US6839892B2 (en) Operating system debugger extensions for hypervisor debugging
US6901537B2 (en) Method and apparatus for preventing the propagation of input/output errors in a logical partitioned data processing system
US7480911B2 (en) Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
JP3943538B2 (ja) 論理区画化データ処理システムにおいてエラーログを管理する方法
JP4157710B2 (ja) Pci入出力スロットの論理分割を実施する方法および装置
US8032899B2 (en) Providing policy-based operating system services in a hypervisor on a computing system
US6865688B2 (en) Logical partition management apparatus and method for handling system reset interrupts
US6971002B2 (en) Method, system, and product for booting a partition using one of multiple, different firmware images without rebooting other partitions
US6912625B2 (en) Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems
JP2005209198A (ja) 論理区画化データ処理システムでの電力消費を削減する方法および装置
JP2005339561A (ja) 関連アプリケーションに対するトラック・データ・クロスリファレンスを保存する方法及び装置
US20100100892A1 (en) Managing hosted virtualized operating system environments
US7089411B2 (en) Method and apparatus for providing device information during runtime operation of a data processing system
US8139595B2 (en) Packet transfer in a virtual partitioned environment
US6745269B2 (en) Method and apparatus for preservation of data structures for hardware components discovery and initialization
US7260752B2 (en) Method and apparatus for responding to critical abstracted platform events in a data processing system
US7370240B2 (en) Method and apparatus for preserving trace data in a logical partitioned data processing system
US7302690B2 (en) Method and apparatus for transparently sharing an exception vector between firmware and an operating system
US11954512B2 (en) Control device and control method
US20120144176A1 (en) Method for Setting a Boot List to Disks with Multiple Boot Logical Volumes

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051228

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20051228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060516

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060530

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees