JP2005182780A - ランタイムデータ領域を設定するプラットフォーム独立方法 - Google Patents

ランタイムデータ領域を設定するプラットフォーム独立方法 Download PDF

Info

Publication number
JP2005182780A
JP2005182780A JP2004353756A JP2004353756A JP2005182780A JP 2005182780 A JP2005182780 A JP 2005182780A JP 2004353756 A JP2004353756 A JP 2004353756A JP 2004353756 A JP2004353756 A JP 2004353756A JP 2005182780 A JP2005182780 A JP 2005182780A
Authority
JP
Japan
Prior art keywords
firmware
firmware module
data area
memory location
runtime data
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.)
Pending
Application number
JP2004353756A
Other languages
English (en)
Inventor
Gerald L Everett
ジェラルド・エル・イヴレット
Gregory T Andersen
グレゴリー・ティー・アンダーセン
Sam Miller
サム・ミラー
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005182780A publication Critical patent/JP2005182780A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

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

Abstract

【課題】 システム資源割り当て情報を必要とすることなく動作可能なプラットフォーム独立ファームウェアモジュールを提供する。
【解決手段】 本発明は、ブートアップオペレーション中に書き込み可能なデータ領域を設定する方法を対象とする。本発明にかかる方法においては、ファームウェアモジュールが、システムブートアップのオペレーション中に、読み出し専用メモリ位置から書き込み可能メモリ位置に再配置される。ファームウェアモジュール用のメモリ割り当ておよび付加的メモリ割り当てを含む書き込み可能メモリ位置の一部が確保される。システム資源割り当ての事前の知識がなくても、付加的メモリ割り当てはランタイムデータ領域として指定される。
【選択図】図3

Description

本発明の実施の形態は、データ処理の分野に関する。
より具体的には、本発明の実施の形態は、ブートアップオペレーション中に書き込み可能なデータ領域を設定する方法を対象とする。
システムブートファームウェアは、通常、読み出し専用メモリ(ROM)に記憶されて、コンピュータシステムのブートおよびコンフィギュレーションならびにファームウェア上で実行されるオペレーティングシステムのサポートに使用される。
システムファームウェアは、状態情報等のシステムに関する情報を保存するために、「スクラッチRAM」とも呼ばれる書き込み可能メモリ位置を必要とする。
プラットフォーム依存ファームウェアを使用するシステムでは、ファームウェアモジュールをプログラミングする際に、システム資源割り当て(例えば、スクラッチRAMにアクセスできるメモリの位置、スクラッチRAMにアクセスする方法等)の事前の知識が必要とされる。
プラットフォーム特有のファームウェアモジュールまたはプラットフォーム依存ファームウェアモジュールを作成する際、既知のシステム資源割り当て(例えば、スクラッチRAMにアクセスできるメモリの位置、スクラッチRAMにアクセスする方法等)は、プラットフォームスクラッチRAMをモジュールに公開するのに使用される。
すなわち、スクラッチRAMにアクセスできるメモリ位置、スクラッチRAMにアクセスする方法等は、モジュールに符号化される。
しかしながら、システムプラットフォームに変更が行われるごとに、システム資源割り当ては変化することがあり、したがって、ファームウェアモジュールの変更も同様に必要となる場合がある。
したがって、ファームウェアモジュールがスクラッチRAM等のシステム資源に継続してアクセスできるように、ファームウェアモジュールも同様に変更しなければならないことから、プラットフォームの変更は複雑である。
その結果、製造サイクルが長くなるおそれがあり、プラットフォームの変更の実施に加えて、新たなモジュールを商業的に流通させる場合には、ファームウェアモジュールの変更に追加コストがかかるおそれがある。
この理由により、システムプラットフォームに変更が行われる場合にファームウェアモジュールを変更する必要がないことから、プラットフォーム独立ファームウェアモジュールが好ましい。
しかしながら、各プラットフォームは、異なるまたは固有のシステム資源割り当て情報を有する場合があるので、プラットフォーム独立ファームウェアモジュールを作成する場合、任意の1つのタイプのプラットフォーム特有のシステム資源割り当て情報を使用することができない。
したがって、一例として、スクラッチメモリへのアドレスオフセットをシステムファームウェアモジュールにハードコード化することはできない。
その結果、システム資源割り当て情報を必要とすることなく動作可能なプラットフォーム独立ファームウェアモジュールが必要とされる。
一実施の形態では、ファームウェアモジュールが、システムブートアップのオペレーション中に、読み出し専用メモリ位置から書き込み可能メモリ位置に再配置される。
ファームウェアモジュール用のメモリ割り当ておよび付加的メモリ割り当てを含む書き込み可能メモリ位置の一部が確保される。
システム資源割り当ての事前の知識がなくても、付加的メモリ割り当てはランタイムデータ領域として指定される。
添付図面は、本明細書の一部に組み込まれて、本明細書の一部を形成する。
添付図面は、本発明の実施の形態を示し、明細書本文と共に本発明の原理を説明するのに役立つ。
特に言及しない限り、この明細書本文で参照される図面は、縮尺どおりに描かれていないものと理解されるべきである。
次に、本発明の実施の形態を詳細に参照する。
実施の形態の例は、添付図面に示されている。
本発明を以下の実施の形態と共に説明するが、以下の実施の形態は、本発明をこれらの実施の形態のみに限定するように意図されていないことが理解されよう。
それとは異なり、本発明は、添付の特許請求の範囲によって規定される本発明の精神および範囲内に含まれ得る代替形態、変更形態、および等価形態を網羅するように意図されている。
さらに、本発明の以下の詳細な説明では、本発明の十分な理解を提供するために、いくつかの具体的な詳細が述べられる。
しかしながら、本発明の実施の形態は、これらの具体的な詳細がなくても実施することができる。
それ以外の場合には、本発明の態様を不必要に分かりにくくしないように、既知の方法、手順、コンポーネント、および回路は詳細に説明されていない。
[表記および用語]
以下の詳細な説明のいくつかの部分は、手順、論理ブロック、処理、およびコンピュータメモリ内のデータビットに対するオペレーションの他のシンボル表現の点から提示される。
これらの記述および表現は、データ処理技術の分野の当業者が他の当業者に自身の作業の内容を最も効率的に伝達するのに使用される手段である。
本出願では、手順、論理ブロック、プロセス等は、所望の結果をもたらす首尾一貫した一連のステップまたは命令であると考えられる。
ステップは、物理量の物理操作を必要とするものである。
必ずではないが、通常、これらの量は、コンピュータシステムにおいて記憶、転送、結合、比較、およびそれ以外の操作が可能な電気信号または磁気信号の形を取る。
しかしながら、これらの用語および類似の用語のすべては、適切な物理量に関連付けられ、これらの量に適用される単なる便利なラベルにすぎないことに留意すべきである。
以下の説明から明らかなように特に指定のない限り、本発明の全体を通じて、「再配置する」、「確保する」、「指定する」、「受け取る」、「返す」、「決定する」、「インターセプトする」、「利用する」、「割り当てる」等の用語を利用する説明は、コンピュータシステムまたは同様の電子計算デバイスの動作およびプロセスを指すことが理解されよう。
このコンピュータシステムまたは同様の電子計算デバイスは、そのコンピュータシステムのレジスタおよびメモリ内で物理(電子)量として表現されたデータを操作し、コンピュータシステムのメモリもしくはレジスタまたは他のこのような情報の記憶デバイス、送信デバイス、または表示デバイス内で同様に物理量として表現される他のデータに変換するものである。
図1は、本発明の実施の形態を実施することができる例示のコンピュータシステムのブロック図である。
図1の実施の形態では、第1のプロセス(例えば、プロセス102a)および第2のプロセス(例えば、プロセス102b)が、バス101を介してキャッシュ110に接続される。
本発明の実施の形態では、2つ以上のプロセッサに共通のキャッシュを提供することができる。
別のコンポーネントもシステム100と共に利用することができ、明確にするために省略されていることが理解されよう。
本発明の実施の形態では、読み出し専用メモリ位置(例えば、図6の不揮発性メモリ604)に配置されたファームウェアコンポーネントが、システムブートアップのオペレーション中に書き込み可能メモリ位置(例えば、図6の揮発性メモリ603)に再配置される。
図1の実施の形態では、キャッシュ110を制御するファームウェアモジュールが、システムブートアップ中に書き込み可能メモリ位置に再配置される。
本発明の一実施の形態によると、ファームウェアモジュールが書き込み可能メモリ位置に再配置される場合、本発明は、そのファームウェアモジュール用に書き込み可能データ領域の一部を確保する。
さらに、本発明は、書き込み可能メモリ位置の付加的部分を確保し、ランタイムデータ領域としてその付加的部分を指定する。
このランタイムデータ領域は、その後、必要に応じてファームウェアモジュールにより使用することができる。
使用する際に、本発明は、システム資源割り当ての事前の知識を必要とすることなく、システムファームウェア用の書き込み可能メモリ位置を設定する。
より具体的には、本実施の形態では、読み出し専用メモリモジュールをハードコード化する場合に、スクラッチRAMへのアドレスオフセットを知る必要はない。
したがって、この実施の形態では、ランタイムデータ領域は、例えば、マシン状態情報、データ、エラーシーディング情報、メモリアドレスポインタ等を記憶するシステムファームウェア機能によって使用することもできる。
したがって、プラットフォーム特有の書き込み可能メモリ領域を必要とするのではなく、書き込み可能メモリ位置がファームウェアモジュール自身によって指定されるので、本発明は、プラットフォーム独立ファームウェアモジュールを設定するのに使用することができる。
図2Aは、本発明の実施の形態による読み出し専用メモリ604から書き込み可能メモリ603へのファームウェアモジュール210の転送を示すブロック図である。
図2Aの実施の形態では、ファームウェアモジュール210およびシステムファームウェア機能220は、読み出し専用メモリ604に記憶される。
多くのコンピュータシステムでは、いくつかのシステムファームウェア機能が、システムブートアップのオペレーション中に書き込み可能メモリ位置(例えば、RAM)603に書き込まれる。
次に、読み出し専用メモリ604のシステムファームウェア機能220が無効にされ、システムファームウェア機能220が書き込まれた書き込み可能メモリ603の位置にアクセスすることによって、システムファームウェア機能220がアクセスされる。
図2Aの実施の形態では、ファームウェアモジュール210およびシステムファームウェア機能220は、ブートアップオペレーション中に書き込み可能メモリ603に再配置される。
本発明の実施の形態では、ファームウェアモジュール210は、ブートアッププロセス中のシステムファームウェア機能220とコンピュータオペレーティングシステムとの間のシステムコールをインターセプトする。
このインターセプトは、コンピュータシステムにトランスペアレントな方法で行われる。
システムファームウェア機能220が書き込み可能メモリ603に再配置されると、ファームウェアモジュール210も同様に再配置される。
一実施の形態では、システムファームウェア機能220は、カリフォルニア州サニーベールのIntel(登録商標)社から市販されているItanium(登録商標)プロセッサファミリーの実施において利用されるプロセッサ抽象レイヤ(PAL)を備える。
本実施の形態は、特にItanium(登録商標)プロセッサファミリーを説明するが、本発明の実施の形態は、他のコンピュータシステムおよび/またはプロセッサで実施することにも良く適している。
本実施の形態では、PALファームウェアは、プロシージャコール、エラー回復ルーチン、プロセッサセルフテストルーチン等のプロセッサ実施態様特有の機能を抽象化し、また、プロセッサを最初にブートするのに必要なコードも含む。
図2Aの実施の形態では、PAL(例えば、システムファームウェア機能220)が書き込み可能メモリ603に書き込まれる際に、ファームウェアモジュール210は、自身を書き込み可能メモリ603に書き込むようにするコマンドも同様に生成する。
本実施の形態は、PALと共にファームウェア機能210を再配置することを説明するが、本発明の実施の形態は、さまざまなシステムファームウェア機能と共にファームウェアモジュール210を再配置することにもよく適している。
本実施の形態では、ファームウェアモジュール210は、読み出し専用メモリ604に占める量よりも多くの量の書き込み可能メモリ603を確保する。
換言すると、本発明は、ファームウェアモジュール210自身のコードに実際に必要なものよりも多くの付加的空間を書き込み可能メモリ603に確保する。
本発明の実施の形態では、書き込み可能メモリ603のこの付加的空間は、システムファームウェア機能(例えば、システムファームウェア機能220)およびファームウェアモジュール210の書き込み可能データ領域として使用可能なランタイムデータ領域として指定される。
本発明の実施の形態に従ってファームウェアモジュール210に付加的メモリ割り当てを確保するさまざまな方法が存在する。
一実施の形態では、本発明は、ファームウェアモジュールが読み出し専用メモリ604にハードコード化される時に、ランタイムデータ領域の付加的空間を含む読み出し専用メモリ603のファームウェアモジュール210内に静的データ構造体をコンパイルする。
当初、ファームウェアモジュール210のデータ構造体は、読み出し専用メモリ604内にあることから書き込むことができない。
しかしながら、ファームウェアモジュール210を書き込み可能メモリ603に再配置すると、そのデータ領域は、必要に応じて、ファームウェアモジュール210およびシステムファームウェア機能220によって使用することができる。
別の実施の形態では、本発明は、ファームウェアモジュール210用の書き込み可能メモリ603の割り当て、システムファームウェア機能220用の書き込み可能メモリ603の別の割り当て、および書き込み可能ランタイムデータ領域として指定される書き込み可能メモリ603の付加的割り当てを確保することを開始する。
ファームウェアモジュール210が書き込み可能メモリ603に再配置されると、付加的メモリ割り当ては、ランタイムデータ領域として使用されるように指定され、必要に応じて、ファームウェアモジュール210およびシステムファームウェア機能220によって使用することができる。
本実施の形態では、ファームウェアモジュール210は、書き込み可能メモリ603に再配置された後に、PALを介したオペレーティングシステムとプラットフォームハードウェアとの間のプロシージャコール時に、継続して介在(interpose)する。
一実施の形態では、ファームウェアモジュール210は、書き込み可能メモリ603に再配置された後にキャッシュ210のキャッシュコントローラの機能も果たし、キャッシュのフラッシュ、キャッシュの初期化、ダイレクトメモリアクセス(DMA)等のキャッシュを制御するオペレーション中に使用される。
以下の説明は、本発明の実施の形態によるシステムファームウェア機能(例えば、システムファームウェア機能220)と共にファームウェアモジュール210を再配置する一方法を対象とする。
本発明の一実施の形態では、本発明は、システムファームウェア機能220(例えば、PALプロシージャ)とシステムの残りの部分との間にファームウェアモジュール210を介在させる。
例えば、ブートアッププロセス中、PALモジュールが書き込み可能メモリ位置に再配置されるまで、一時記憶位置として使用されるレジスタのアドレスが、読み出し専用メモリ604に配置されたPALモジュールに送られる。
本発明の実施の形態では、ファームウェアモジュール210は、このアドレスを送るシステムコールをインターセプトして、レジスタのアドレスを保存する。
本実施の形態では、ファームウェアモジュール210は、オペレーティングシステムからPALに送られるターゲットエントリポイントをインターセプトし、このエントリポイントは、システムコール中にPALへのエントリポイントとして使用されることになる。
ファームウェアモジュール210は、このアドレスを一時記憶位置に保存し、ファームウェアモジュール210のエントリポイントである新たなエントリポイントをシステムに渡す。
この新たなエントリポイントは、次に、(例えば、システムコールがPALに対して行われた時に)ファームウェアモジュール210への固定エントリポイントとしてシステムにより使用される。
これによって、PALおよびファームウェアモジュール210が、オペレーティングシステムにトランスペアレントな方法で書き込み可能メモリ603に再配置されると、PALへのシステムコールのインターセプトが容易になる。
さらに、ファームウェアモジュール210のサイズが判明しているので、ランタイムデータ領域およびPALへのオフセットを、ファームウェアモジュール210への固定エントリポイントから計算することができる。
その結果、スクラッチRAMへのハードコード化されたアドレスは、本発明の実施の形態では必要ではない。
その代わり、ランタイムデータ領域およびPALのメモリ位置は、ファームウェアモジュール210へのエントリポイントを基準とした(relative to)ものになる。
さらに、ランタイムデータ領域およびPALの双方の位置は、共にファームウェアモジュール210へのエントリポイントを基準とするので、PALは、必要に応じてランタイムデータ領域にアクセスすることができる。
次に、PAL(例えば、図2Aのシステムファームウェア機能220)のサイズを決定するシステムコールが、ファームウェアモジュール210によってインターセプトされる。
本実施の形態では、ファームウェアモジュール210は、システムファームウェア機能220のサイズを決定し、書き込み可能メモリ603の一部を確保する応答を送る。
一方、ファームウェアモジュール210は、PALモジュールのサイズを報告するだけではなく、ファームウェアモジュール210、PALモジュール(例えば、図2Bのシステムファームウェア機能220)、およびランタイムデータ領域(例えば、図2Bのランタイムデータ領域213)用の付加的割り当てを記憶するのに十分な書き込み可能メモリ603の一部を確保する応答も送る。
これらのコンポーネントが再配置される書き込み可能メモリ603の一部のアドレスが送られる。
PALが書き込み可能メモリ603に再配置(コピー)されると、本発明は、書き込み可能メモリ603の書き込み可能メモリ位置へPALと共にファームウェアモジュール210を再配置する。
上述したように、ファームウェアモジュール210は、ランタイムデータ領域として使用される付加的領域を含むようにコンパイルすることもできるし、その目的のために書き込み可能メモリ603の量を追加して確保することもできる。
本実施の形態では、ファームウェアモジュール210およびシステムファームウェア機能220が書き込み可能メモリ603に再配置されて、ランタイムデータ領域213が適切に初期化されてデータを記憶する準備ができたことを確認すると、本発明は、「署名ワード(signature word)」を書き込む。
これは、正しいメモリ位置を確認するのに使用できるので、誤ったデータ領域にデータを記憶することも防止する。
図2Bは、本発明の実施の形態によるシステム資源割り当てをより詳細に示すブロック図である。
図2Bに示すように、書き込み可能メモリ603は、インターポーザ211、グローバルポインタ212、ランタイムデータ領域213、およびシステムファームウェア機能220を備える。
上述したように、システムファームウェア機能220が読み出し専用メモリから書き込み可能メモリ位置に再配置されると、ファームウェアモジュール210は、システムファームウェア機能220と共に再配置され、システムファームウェア機能220へのシステムコールをインターセプトする。
図2Bの実施の形態では、ファームウェアモジュール210は、書き込み可能メモリ603に再配置されており、ここでは、インターポーザ211、グローバルポインタ212、およびランタイムデータ領域213を備える。
上述したように、本発明の他の実施の形態では、インターポーザ211用および/またはシステムファームウェア機能220用の書き込み可能データ領域として使用できるデータ構造体をインターポーザ211内にハードコード化することによってランタイムデータ領域を実施することができる。
本発明の実施の形態では、インターポーザ211は、自身が制御するレジスタ領域のアドレスをランタイムデータ領域213に記憶する。
本発明の実施の形態では、ブートプロセス中に、オペレーティングシステムは、これらのレジスタの仮想アドレスを登録するシステムコールを行うことができ、このシステムコールは、インターポーザ211によってインターセプトされる。
インターポーザ211は、レジスタ領域のベースアドレスを送り、オペレーティングシステムは、レジスタ領域の仮想アドレスを返し、この仮想アドレスは、インターポーザ211によってランタイムデータ領域213に記憶される。
本発明の実施の形態では、インターポーザ211は、プロセス(例えば、図1のプロセス102a)がいつリアルモードで実行されているかを判断し、ランタイムデータ領域213に記憶されたアドレスを使用してレジスタにアクセスする。
あるいは、インターポーザ211は、プロセス(例えば、図1のプロセス102a)がいつ仮想モードで実行されているかを検出することもできる。
これを判断すると、インターポーザ211は、ランタイムデータ領域213に記憶された仮想アドレスにアクセスする。
このように、本発明の実施の形態は、リアルモードおよび仮想モードの双方において、オペレーティングシステムにトランスペアレントな方法で動作する。
図3は、本発明の実施の形態によるランタイムデータ領域を設定する、コンピュータ実施される方法300のフローチャートである。
図3のステップ310において、本発明は、システムブートアップのオペレーション中に、読み出し専用メモリ604から書き込み可能メモリ603へファームウェアモジュール210を再配置する。
図2Aを参照して上述したように、システムファームウェア機能がブートアップオペレーション中に再配置されると、ファームウェアモジュール210は、読み出し専用メモリ604から書き込み可能メモリ603へ再配置される。
図3のステップ320において、ファームウェアモジュール210用のメモリ割り当ておよび付加的メモリ割り当てを含む書き込み可能メモリ603の一部が確保される。
図2Aを参照して上述したように、書き込み可能メモリ603へのファームウェアモジュール210の再配置中、本発明は、書き込み可能メモリ603の付加的部分を確保する。
一実施の形態では、この書き込み可能メモリ603の付加的部分は、ファームウェアモジュール210から分離している。
別の実施の形態では、メモリ603の付加的部分は、読み出し専用メモリが製造された時に、ファームウェアモジュール210内にコンパイルされたデータ構造体である。
図3のステップ330において、本発明は、システム資源割り当ての事前の知識を必要とすることなく、付加的メモリ割り当てをランタイムデータ領域として指定する。
図2Aを参照して上述したように、付加的メモリ割り当ては、ランタイムデータ領域として指定され、システム状態情報を記憶するのに使用でき、また、必要に応じてファームウェアモジュール210および/またはシステムファームウェア機能220が使用できるデータの一時記憶装置に使用することができる。
ランタイムデータ領域へのアクセスは、書き込み可能メモリに再配置されたファームウェアモジュールへのエントリポイント(例えば、図2Bのインターポーザ211へのエントリポイント)から参照されることは好都合である。
このように、本発明によって、固定メモリ位置を参照しないシステムファームウェアの書き込み可能メモリ位置へのアクセスが可能になる。
その結果、本発明によって、システム資源割り当ての事前の知識を必要とすることなく、書き込み可能メモリ603を利用できるプラットフォーム独立ファームウェアモジュールを作成することが容易になる。
図4は、本発明の実施の形態によるシステム独立ランタイムデータ記憶領域を作成する方法400のフローチャートである。
図4のステップ410において、本発明は、システムブートアップのオペレーション中に、システムファームウェア機能のサイズを決定するシステムコールをインターセプトする。
図2Aを参照して上述したように、本発明のファームウェアモジュール210は、ブートアッププロセス中、および、後の書き込み可能メモリ603への再配置時に、システムファームウェア機能220(例えば、プロセッサ抽象レイヤ(PAL)モジュール)へのシステムコールをインターセプトする。
図4のステップ420において、本発明は、書き込み可能メモリ位置の一部を求める要求を伝達する、システムコールに対する応答を返す。
図2Aを参照して上述したように、ファームウェアモジュール210は、書き込み可能メモリ603の一部を確保する、ステップ410のシステムコールに対する応答を送る。
本発明の実施の形態では、ファームウェアモジュール210は、ランタイムデータ領域として使用することができる書き込み可能メモリ603の付加的部分を確保する。
図4のステップ430において、本発明は、書き込み可能メモリ603の一部を確保し、システム資源割り当ての事前の知識を必要とすることなく、この書き込み可能メモリ603の一部をランタイムデータ領域として指定する。
図2Aを参照して上述したように、システムファームウェア機能220(例えば、PAL)およびファームウェアモジュール210が書き込み可能メモリに再配置されると、ファームウェアモジュール210は、書き込み可能メモリ603の付加的部分(例えば、ランタイムデータ領域213)を確保し、この付加的部分をランタイムデータ領域として指定する。
本発明は、システム資源割り当ての事前の知識を必要とすることなく、これをランタイムデータ領域として指定する。
図5は、本発明の実施の形態によるランタイムデータ領域を作成する方法500のフローチャートである。
図5のステップ510において、本発明のファームウェアモジュール210は、システムブートアップのオペレーション中に、システムファームウェア機能を書き込み可能メモリ603に再配置するシステムコールを受け取る。
図2Aを参照して上述したように、システムファームウェア機能220へのシステムコールは、システムブートアップのオペレーション中にファームウェアモジュール210によってインターセプトされる。
本実施の形態では、本発明は、ファームウェアモジュール210へのエントリポイントをオペレーティングシステムに返し、オペレーティングシステムは、次に、システムファームウェア機能220にアクセスする際にこのエントリポイントを使用する。
図5のステップ520において、書き込み可能メモリ603の第1の部分がシステムファームウェア機能220用に割り当てられる。
図2Aを参照して上述したように、システムコールがシステムファームウェア機能220に送られ、システムファームウェア機能220を再配置する際にどれだけの量の書き込み可能メモリが必要とされるかが決定される。
本発明のファームウェアモジュール210は、このシステムコールをインターセプトし、システムファームウェア機能220用に書き込み可能メモリ位置の第1の部分を確保する応答を送る。
さらに、ファームウェアモジュール210は、書き込み可能メモリ領域に再配置する前に自身用の書き込み可能メモリ603の一部を確保する。
図5のステップ530において、書き込み可能メモリ位置の付加的部分が、システム資源割り当ての事前の知識を必要とすることなく、ランタイムデータ領域として割り当てられる。
図2Aを参照して上述したように、ファームウェアモジュール210およびシステムファームウェア機能220が、ブートアッププロセス中に書き込み可能メモリ603に再配置される際に、本発明は、ランタイムデータ領域用に書き込み可能メモリ603の付加的部分を割り当てる。
本発明の実施の形態では、ランタイムデータ領域は、ファームウェアモジュール210内にコンパイルされたデータ構造体を構成することもできるし、書き込み可能メモリ603の別個の部分(例えば、図2Bのランタイムデータ領域213)とすることもできる。
本発明は、システム資源割り当ての事前の知識を必要とすることなく、書き込み可能メモリ603の一部をランタイムデータ領域213として指定する。
これは、ランタイムデータ領域213の位置が、書き込み可能メモリ603内の所定のメモリ位置ではなく、ファームウェアモジュール210へのエントリポイントを基準とすることから可能である。
図6を参照して、本発明の一部は、例えば、汎用コンピュータネットワーク(図示せず)の一部として使用されるコンピュータシステム600に存在するコンピュータ可読でコンピュータ実行可能な命令で構成される。
図6のコンピュータシステム600は単なる例示であり、本発明は、汎用コンピュータシステム、埋込式コンピュータシステム、ラップトップコンピュータシステム、ハンドヘルドコンピュータシステム、およびスタンドアロンコンピュータシステムが含まれる複数の異なるコンピュータシステム内で動作できることが理解されよう。
本実施の形態では、コンピュータシステム600は、さまざまなコンポーネント間、すなわち、デジタル情報および命令を処理する中央プロセッサユニット(CPU)602、例えば、デジタル情報および命令を記憶する揮発性ランダムアクセスメモリ(RAM)で構成される書き込み可能メモリ603、およびより永続的性質の情報および命令を記憶する読み出し専用メモリ604間でデジタル情報を伝達するアドレス/データバス601を含む。
さらに、コンピュータシステム600は、膨大な量のデータを記憶するデータ記憶デバイス605(例えば、磁気ドライブ、光ドライブ、フロッピィドライブ、テープドライブ等)も含むことができる。
オプションとしてコンピュータシステム600に接続されるデバイスには、コンピュータユーザに情報を表示する表示デバイス606、英数字入力デバイス607(例えば、キーボード)、および、データ、選択、更新等を入力するカーソル制御デバイス608(例えば、マウス、トラックボール、ライトペン等)が含まれる。
また、コンピュータシステム600は、音響信号を放出するメカニズム(図示せず)も含むことができる。
図6に戻って、図6のオプションの表示デバイス606は、液晶デバイス、陰極線管、または、ユーザに認識可能なグラフィック画像および英数字文字を生成するのに適した他の表示デバイスとすることができる。
オプションのカーソル制御デバイス608は、コンピュータユーザが、表示デバイス606の表示スクリーン上において可視的シンボル(カーソル)の2次元移動の信号を動的に送れるようにする。
カーソル制御デバイス608の多くの実施態様が当技術分野において知られており、トラックボール、マウス、タッチパッド、ジョイスティック、または、所与の方向の移動もしくは挙動変位(manner displacement)の移動を信号で送ることができる英数字入力607上の特別なキーが含まれる。
あるいは、特別なキーおよびキーシーケンスのコマンドを使用した英数字入力607からの入力を介してカーソルを指示し、かつ/または、起動することもできることが理解されよう。
あるいは、複数の特殊適合されたカーソル指示デバイスからの入力を介してカーソルを指示し、かつ/または、起動することもできる。
さらに、コンピュータシステム600は、周辺デバイス610(例えば、コンピュータネットワーク、モデム、大容量記憶デバイス等)とインターフェースする入出力(I/O)信号ユニット(例えば、インターフェース)609を含むこともできる。
したがって、コンピュータシステム600は、クライアント/サーバ環境等のネットワークに接続することができ、それによって、複数のクライアント(例えば、パーソナルコンピュータ、ワークステーション、ポータブルコンピュータ、ミニコンピュータ、端末等)が、所望のタスクを実行するプロセスを実行するのに使用される。
本発明の好ましい実施の形態、すなわち、ランタイムデータ領域を設定するコンピュータ実施される方法は上記のように説明される。
本発明を特定の実施の形態で説明してきたが、本発明は、このような実施の形態によって限定されるものと解釈されるべきではなく、添付の特許請求の範囲に従って解釈されるべきであることが理解されるべきである。
本発明の実施の形態を実施することができる例示のコンピュータシステムのブロック図である。 本発明の実施の形態による読み出し専用メモリから書き込み可能メモリへのファームウェアモジュールの転送を示すブロック図である。 本発明の実施の形態によるシステム資源割り当てをより詳細に示すブロック図である。 本発明の実施の形態によるランタイムデータ領域を設定する、コンピュータ実施される方法のフローチャートである。 本発明の実施の形態によるシステム独立ランタイムデータ記憶領域を作成する方法のフローチャートである。 本発明の実施の形態によるランタイムデータ領域を作成する方法のフローチャートである。 本発明の実施の形態を実施することができる例示のコンピュータシステムのブロック図である。
符号の説明
102a,102b・・・プロセス1,2,
110・・・キャッシュ,
210・・・ファームウェアモジュール,
211・・・インターポーザ,
212・・・グローバルポインタ,
213・・・ランタイムデータ領域,
220・・・システムファームウェア機能,
603・・・書き込み可能メモリ,
604・・・読み出し専用メモリ,
602・・・プロセッサ,
603・・・書き込み可能メモリ,
604・・・読み出し専用メモリ,
605・・・データ記憶デバイス,
606・・・表示デバイス,
607・・・英数字入力,
608・・・カーソル制御,
609・・・入出力通信デバイス,
610・・・周辺デバイス,

Claims (25)

  1. ランタイムデータ領域を設定するコンピュータ実施される方法であって、
    システムブートアップのオペレーション中に、読み出し専用メモリ位置(604)から書き込み可能メモリ位置(603)にファームウェアモジュール(210)を再配置することと、
    前記ファームウェアモジュール(210)用のメモリ割り当ておよび付加的メモリ割り当て(213)を含む前記書き込み可能メモリ位置(603)の一部を確保することと、
    前記付加的メモリ割り当て(213)を前記ランタイムデータ領域(213)として指定することと
    を含み、
    前記ランタイムデータ領域(213)は、システム資源割り当ての事前の知識を必要とすることなく作成される
    方法。
  2. 前記再配置することは、
    システムファームウェア機能(220)のシステムコールを受け取ることと、
    前記ファームウェアモジュール(210)用の前記メモリ割り当て、前記付加的メモリ割り当て(213)、および前記システムファームウェア機能(220)用のメモリ割り当てを要求する、前記システムコールに対する応答を返すことと
    をさらに含む請求項1に記載の方法。
  3. 前記システムファームウェア機能(220)のサイズを決定することと、
    前記ファームウェアモジュール(210)のサイズを決定することと、
    前記ランタイムデータ領域(213)のサイズを決定することと
    をさらに含む請求項2に記載の方法。
  4. 前記システムファームウェア機能(220)は、
    プロセッサ抽象レイヤ
    を備える
    請求項2に記載の方法。
  5. 前記ファームウェアモジュール(210)は、リアルモードで動作する
    請求項1に記載の方法。
  6. 前記ファームウェアモジュール(210)は、仮想モードで動作する
    請求項1に記載の方法。
  7. 前記ファームウェアモジュール(210)は、リアルモードおよび仮想モードで動的に動作する
    請求項1に記載の方法。
  8. システム独立ランタイムデータ記憶領域を作成する方法であって、
    システムブートアップのオペレーション中に、システムファームウェア機能(220)のサイズを決定するシステムコールをインターセプトすることと、
    書き込み可能メモリ位置(603)の一部を求める要求を伝達する、前記システムコールに対する応答を返すことと、
    前記書き込み可能メモリ位置(603)の一部を確保することと
    を含み、
    メモリ割り当てが、前記ランタイムデータ領域(213)として指定され、
    前記ランタイムデータ領域(213)は、システム資源割り当ての事前の知識を必要とすることなく作成される
    方法。
  9. 読み出し専用メモリ位置(604)に存在するファームウェアモジュール(210)を利用し、前記インターセプトを実行する読み出し専用メモリ位置(604)に存在するファームウェアモジュール(210)を利用すること
    をさらに含む請求項8に記載の方法。
  10. 前記システムファームウェア機能(220)および前記ファームウェアモジュール(210)を、前記読み出し専用メモリ位置(604)から前記書き込み可能メモリ位置(603)へ再配置すること
    をさらに含む請求項9に記載の方法。
  11. 前記ランタイムデータ領域は、前記ファームウェアモジュールの部分コンポーネントを構成する
    請求項10に記載の方法。
  12. 前記ランタイムデータ領域は、前記ファームウェアモジュールおよび前記システムファームウェア機能から分離されている
    請求項10に記載の方法。
  13. 前記システムブートアップのオペレーションは、Intel Itanium(登録商標)プロセッサによって実行される
    請求項8に記載の方法。
  14. 前記システムファームウェア機能は、
    プロセッサ抽象レイヤ
    を備える
    請求項13に記載の方法。
  15. 前記ファームウェアモジュールは、リアルモードで動作する
    請求項9に記載の方法。
  16. 前記ファームウェアモジュールは、仮想モードで動作する
    請求項9に記載の方法。
  17. 前記ファームウェアモジュールは、リアルモードおよび仮想モードで動的に動作する
    請求項9に記載の方法。
  18. ランタイムデータ領域を作成する方法であって、
    システムブートアップのオペレーション中に、読み出し専用メモリ位置から書き込み可能メモリ位置へシステムファームウェア機能を再配置するシステムコールを受け取ることと、
    前記書き込み可能メモリ位置の第1の部分を前記システムファームウェア機能用に割り当てることと、
    前記書き込み可能メモリ位置の付加的部分を割り当てて、該付加的メモリ割り当てを前記ランタイムデータ領域として指定することと
    を含み、
    前記ランタイムデータ領域は、システム資源割り当ての事前の知識を必要とすることなく作成される
    方法。
  19. 前記システムファームウェア機能は、
    プロセッサ抽象レイヤ
    を備える
    請求項18に記載の方法。
  20. ファームウェアモジュールを使用し、前記インターセプトを実行するファームウェアモジュールを使用すること
    をさらに含む請求項18に記載の方法。
  21. 前記書き込み可能メモリ位置の第3の部分を、前記ファームウェアモジュールに割り当てること
    をさらに含む請求項20に記載の方法。
  22. 前記書き込み可能メモリ位置の前記付加的部分を、前記ファームウェアモジュールに割り当てることと、
    前記ファームウェアモジュールの一部を前記ランタイムデータ領域として指定することと
    をさらに含む請求項20に記載の方法。
  23. 前記ファームウェアモジュールは、リアルモードで動作する
    請求項20に記載の方法。
  24. 前記ファームウェアモジュールは、仮想モードで動作する
    請求項20に記載の方法。
  25. 前記ファームウェアモジュールは、リアルモードおよび仮想モードで動的に動作する
    請求項20に記載の方法。
JP2004353756A 2003-12-15 2004-12-07 ランタイムデータ領域を設定するプラットフォーム独立方法 Pending JP2005182780A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/737,106 US20050132160A1 (en) 2003-12-15 2003-12-15 Platform independent method for establishing a run-time data area

Publications (1)

Publication Number Publication Date
JP2005182780A true JP2005182780A (ja) 2005-07-07

Family

ID=34080876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004353756A Pending JP2005182780A (ja) 2003-12-15 2004-12-07 ランタイムデータ領域を設定するプラットフォーム独立方法

Country Status (3)

Country Link
US (1) US20050132160A1 (ja)
JP (1) JP2005182780A (ja)
GB (1) GB2409311B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016024818A (ja) * 2014-07-17 2016-02-08 ヴァーゴ・フェアヴァルトゥングスゲゼルシャフト・エムベーハー データ転送のための産業用制御システムおよび方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260713B2 (en) * 2004-12-14 2007-08-21 Lsi Corporation Apparatus and method for building, storing, uploading, relocating and executing DOS based software module during system startup time
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
WO2007036072A1 (en) * 2005-09-29 2007-04-05 Intel Corporation Apparatus and method for expedited virtual machine (vm) launch in vm cluster environment
US20070266231A1 (en) * 2006-05-15 2007-11-15 Huey-Tyug Chua Portable Electronic Device and Method for Loading Resource Data of the Portable Electronic Device
US7987348B2 (en) 2007-03-30 2011-07-26 Intel Corporation Instant on video
US8825920B2 (en) * 2010-01-20 2014-09-02 Spansion Llc Field upgradable firmware for electronic devices
US8625353B2 (en) 2011-06-16 2014-01-07 Spansion Llc Method and apparatus for staggered start-up of a predefined, random, or dynamic number of flash memory devices
WO2020185211A1 (en) * 2019-03-11 2020-09-17 Hewlett-Packard Development Company, L.P. Tranistionary firmware packages

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE515082C2 (sv) * 1993-03-19 2001-06-05 Icl Systems Ab Förfarande och arrangemang vid ett datorsystem
JPH09231069A (ja) * 1996-02-22 1997-09-05 Canon Inc 情報処理方法及び装置
US6199159B1 (en) * 1998-12-22 2001-03-06 Intel Corporation Booting an operating system
US6374338B1 (en) * 1999-06-25 2002-04-16 International Business Machines Corporation Method for performing configuration tasks prior to and including memory configuration within a processor-based system
US6611912B1 (en) * 2000-02-04 2003-08-26 Advanced Micro Devices, Inc. Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard
US7007159B2 (en) * 2002-05-10 2006-02-28 Intel Corporation System and method for loading and integrating a firmware extension onto executable base system firmware during initialization
US7103766B2 (en) * 2002-12-20 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for making BIOS routine calls from different hardware partitions
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016024818A (ja) * 2014-07-17 2016-02-08 ヴァーゴ・フェアヴァルトゥングスゲゼルシャフト・エムベーハー データ転送のための産業用制御システムおよび方法

Also Published As

Publication number Publication date
GB2409311A (en) 2005-06-22
GB0427144D0 (en) 2005-01-12
GB2409311B (en) 2007-02-28
US20050132160A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
CN102625934B (zh) 共享虚拟存储器
US8719548B2 (en) Method and system for efficient emulation of multiprocessor address translation on a multiprocessor
EP2035936B1 (en) An apparatus and method for memory address re-mapping of graphics data
US6728858B2 (en) Method and apparatus including heuristic for sharing TLB entries
US5289574A (en) Multiple virtual screens on an "X windows" terminal
JP4639233B2 (ja) プロセッサ・リソースの仮想化のためのシステムおよび方法
US5852738A (en) Method and apparatus for dynamically controlling address space allocation
US8949295B2 (en) Cooperative memory resource management via application-level balloon
EP2788864B1 (en) Techniques to prelink software to improve memory de-duplication in a virtual system
US8028148B2 (en) Safe and efficient allocation of memory
US7120778B2 (en) Option ROM virtualization
US6684390B1 (en) Multi-processor JAVA subsystem
US5987582A (en) Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US20180074956A1 (en) Method, apparatus, and electronic device for modifying memory data of a virtual machine
JP2008165789A (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
KR20090115115A (ko) 프로세서 시스템에서 명령어 레벨에서의 자원 할당 식별을 가능하게 하는 방법 및 장치
US6049854A (en) System and method for sharing physical memory among distinct computer environments
US6574705B1 (en) Data processing system and method including a logical volume manager for storing logical volume data
JP2005182780A (ja) ランタイムデータ領域を設定するプラットフォーム独立方法
US7444636B2 (en) Method and system of determining attributes of a functional unit in a multiple processor computer system
US20220237126A1 (en) Page table manager
US6772259B2 (en) Interrupt handlers used in different modes of operations
KR20040074628A (ko) 코프로세서의 성능을 개선하기 위한 시스템 및 방법
CN116339757A (zh) 一种应用运行方法、装置、计算设备及存储介质
KR20080110199A (ko) 가상 메모리가 없는 임베디드 시스템에서의 기존 공유라이브러리 사용방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061030

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070322