(58)【調査した分野】(Int.Cl.,DB名)
前記配置する命令は、前記第1の論理プロセッサによって実行可能な命令であって、システム管理モード(SMM)に入り、前記OSが少なくとも前記第2のブレードデバイスの前記第2の論理プロセッサによって実行されている間、前記SMMの状態を維持する命令を含むものである、請求項1に記載の非一時的な機械可読記憶媒体。
前記配置する命令は、前記第1の論理プロセッサによって実行可能な命令であって、前記第1のブレードデバイスの前記特定されたメモリを前記第1の論理プロセッサから隠蔽する命令を含むものである、請求項1に記載の非一時的な機械可読記憶媒体。
前記特定する命令は、前記第1の論理プロセッサによって実行可能な命令であって、前記特定されたメモリの記述を、前記第1のブレードデバイスのサービスプロセッサからアクセス可能な前記第1のブレードデバイスのサービスメモリに記憶する命令を含むものであり、ここで、該サービスプロセッサは、前記第2のブレードデバイスに前記記述を提供しており、
前記アクセスする命令は、前記第1の論理プロセッサによって実行可能な命令であって、前記サービスメモリに記憶された前記パーティション構成情報にアクセスする命令を含むものである、請求項1に記載の非一時的な機械可読記憶媒体。
前記第1のSFWインスタンスは、前記第1の論理プロセッサによって実行可能な命令であって、前記第1のブレードデバイスの前記特定された利用可能なメモリを前記第1の論理プロセッサから隠蔽する命令を含むものである、請求項7に記載のシステム。
前記第1のSFWインスタンスの前記特定する命令は、前記第1の論理プロセッサによって実行可能な命令であって、前記第1のブレードデバイスの第1のサービスプロセッサからアクセス可能な前記第1のブレードデバイスの第1のサービスメモリに前記特定されたメモリの記述を記憶する命令を含むものであり、前記第1のサービスプロセッサは、前記記述を前記第1のサービスメモリから前記第2のブレードデバイスの第2のサービスプロセッサを介して前記第2のブレードデバイスの第2のサービスメモリに転送するものである、請求項7に記載のシステム。
前記第1のSFWインスタンスは、前記第1の論理プロセッサによって実行可能な命令であって、第1のパーティション構成情報に基づいて、前記第1の論理プロセッサが拡張論理プロセッサであると判断する命令を含むものである、前記第1の論理プロセッサによって実行可能な命令を含むものであり、
前記配置する命令は、前記第1の論理プロセッサによって実行可能な命令であって、前記第1の論理プロセッサが拡張論理プロセッサであるとの前記判断に応答して、前記第1の論理プロセッサを前記SFW実行モードに配置する命令を含むものであり、
前記第2のSFWインスタンスの前記命令は、前記第2の論理プロセッサによって実行可能な命令であり、
第2のパーティション構成情報に基づいて、前記第2のブレードデバイスが計算ブレードデバイスであると判断する命令と、
前記第2のブレードデバイスが計算ブレードデバイスであるとの前記判断に応答して、前記SFW実行モードに入らないことを決定する命令と
を含むものである、請求項9に記載のシステム。
第1の論理プロセッサ及び第2の論理プロセッサをそれぞれ備える第1のブレードデバイス及び第2のブレードデバイスを備えるブレードシステムのパーティションによって実行可能な方法であって、
前記第1の論理プロセッサを、第1のシステムファームウェア(SFW)インスタンスと関連付けられた第1のSFW領域の一部として動作させるとともに、前記第2の論理プロセッサを、第2のSFWインスタンスと関連付けられた第2のSFWドメインの一部として動作させて、前記パーティションをブートしてオペレーティングシステム(OS)を実行するように構成するステップと、
前記第1の論理プロセッサ及び前記第2の論理プロセッサを用いて、前記第1の論理プロセッサと関連付けられた前記第1のブレードデバイスの利用可能なメモリと、前記第2の論理プロセッサと関連付けられた前記第2のブレードデバイスの利用可能なメモリとを特定するステップと、
前記第2の論理プロセッサと、前記第1のブレードデバイス及び前記第2のブレードデバイスのそれぞれの前記特定されたメモリとを前記OSによる使用に利用可能にするステップと、
前記OSの実行が開始する前に、前記第1の論理プロセッサをシステム管理モード(SMM)に配置するステップと、
少なくとも前記第2の論理プロセッサを用いて前記OSの実行を開始するステップと、
前記OSの実行中、前記第1の論理プロセッサを前記SMMに維持するステップと
を含んでなる、ブレードシステムのパーティションによって実行可能な方法。
前記第1のブレードデバイスの前記特定されたメモリの記述を、前記第1のブレードデバイスの第1のサービスプロセッサからアクセス可能な前記第1のブレードデバイスの第1のサービスメモリに記憶するステップと、
前記記述を前記第1のサービスプロセッサから前記第2のブレードデバイスの第2のサービスプロセッサに提供するステップと、
前記第2のサービスプロセッサを用いて、前記記述を前記第2のブレードデバイスの第2のサービスメモリに記憶するステップと
を更に含む、請求項13に記載の方法。
第1のパーティション構成情報に基づいて、前記第1の論理プロセッサが拡張論理プロセッサであると判断するステップであって、前記第1の論理プロセッサは、該第1の論理プロセッサが拡張論理プロセッサであるとの前記判断に応答して、該第1の論理プロセッサを前記SMMに配置して維持する、判断するステップと、
第2のパーティション構成情報に基づいて、前記第2の論理プロセッサが計算論理プロセッサであると判断するステップと、
前記OSを用いて、該OSのアクティブ動作中に、前記第1のブレードデバイスの前記特定されたメモリにアクセスするステップと
を更に含む、請求項14に記載の方法。
【発明を実施するための形態】
【0004】
上述したように、ブレードシステムのパーティションは、オペレーティングシステム(OS)を走らせることができるとともに、このOSを用いてアプリケーションを走らせることができる。OSを走らせるパーティションは、複数のブレードデバイスを備えることができ、各ブレードは、論理プロセッサ及びメモリを備える。各論理プロセッサは、集積回路(IC)(例えば、チップ)上に備えることができる。少なくとも1つの中央処理装置(CPU)を備えるICは、本明細書において「CPU IC」と呼ばれる場合がある。幾つかの例では、論理プロセッサに加えて、CPU ICは、ブレードデバイスのメモリを管理する少なくとも1つの統合メモリコントローラを備えることができる。そのような例では、CPU ICのメモリコントローラが管理することができるメモリの量を比較的限られたものとすることができ、これによって、ブレードデバイス上で利用可能なメモリの量を制限することができ、したがって、パーティション内で利用可能なメモリの量を制限することができる。
【0005】
追加のブレードデバイスをパーティションに加えることによって、より多くのメモリをパーティションに加えることができる。しかしながら、OSによって走らされる幾つかのアプリケーションのライセンスコストは、アプリケーションが利用するのに使用可能な論理プロセッサの数に基づいて算出される場合がある。したがって、ブレードデバイスをパーティションに加えることは、加えられたブレードデバイスの論理プロセッサの可用性に起因して、幾つかのアプリケーションのライセンスコストを実質的に増加させる場合がある。
【0006】
これらの課題に対処するために、本明細書において説明する例は、ブレードシステムのパーティションに関することができ、このパーティションは、OSを実行し、第1の論理プロセッサ及び第2の論理プロセッサをそれぞれ備える拡張ブレードデバイス及び計算ブレードデバイスを備えており、第1の論理プロセッサ及び第2の論理プロセッサは、異なるシステムファームウェア(SFW)ドメインにおいて動作する。本明細書において説明する例では、OSが計算ブレードデバイスの少なくとも第2の論理プロセッサによって実行されている間、拡張ブレードデバイスの第1の論理プロセッサを、第1の論理プロセッサがSFWインスタンスの命令を実行するSFW実行モードに配置することができる。本明細書において説明する例では、第1の論理プロセッサと関連付けられた拡張ブレードデバイスのメモリを、OSによる使用に更に利用可能にすることができる。
【0007】
第1の論理プロセッサ及び第2の論理プロセッサを異なるSFWドメインに配置するとともに、OSに対して第1の論理プロセッサを特定しないことによって、本明細書において説明する例では、拡張ブレードデバイスの第1の論理プロセッサをパーティションのOSにも、このOSによって走らされるアプリケーションにも暴露することなく、このOSが拡張ブレードデバイスのメモリを利用することを可能にすることができる。したがって、本明細書において説明する例は、拡張ブレードデバイスの論理プロセッサがアプリケーションライセンスコストを増加させることなく、パーティションが、OS及びアプリケーションを走らせるために拡張ブレードデバイスのメモリを用いることを可能にすることができる。
【0008】
本明細書において説明する例では、パーティションによるOSの実行中に、拡張ブレードデバイスの論理プロセッサをSFW実行モードに配置することによって、この論理プロセッサは、OSによる使用に利用不能な状態にある間、例えば、拡張ブレードデバイスにおけるエラー情報を収集するSFWインスタンスの命令を実行するのに利用可能な状態にしておくこともできるし、それ以外に、SFWインスタンスの命令の制御下で拡張ブレードデバイスのリソースを管理するのに利用可能な状態にしておくこともできる。
【0009】
加えて、拡張ブレードデバイス及び計算ブレードデバイスの論理プロセッサを異なるSFWドメインにおいて動作させることによって、本明細書において説明する例は、パーティションが、異なる設計を用いた論理プロセッサを有する拡張ブレードデバイス及び計算ブレードデバイスを利用することを可能にすることができる。そのような例では、拡張ブレードデバイスは、計算ブレードデバイスの論理プロセッサよりも高価でない論理プロセッサを備えることができる。このように、本明細書において説明する例は、パーティションのメモリが、計算ブレードデバイスよりも高価でない拡張ブレードデバイスによって提供されるメモリによる補助を受けることを可能にすることができる。
【0010】
次に図面を参照する。
図1は、OSが少なくとも第2の論理プロセッサ142によって実行されている間、第1の論理プロセッサ132をSFW実行モードに配置する一例示のブレードシステム100のブロック図である。本明細書において説明する例では、ブレードシステムは、ブレードエンクロージャ、及びこのブレードエンクロージャ内に実装された少なくとも1つのブレードデバイスを備えるコンピューティングシステムでありうる。
図1の例では、ブレードシステム100は、ブレードシステム100のブレードエンクロージャ内にそれぞれ実装されたブレードデバイス130及び140を備える。ブレードシステム100は、ブレードデバイス130及び140のそれぞれのリソースを用いてOS115を走らせることができる。例えば、OS115は、少なくともブレードデバイス130及び140を備えるブレードシステム100のパーティション108によって走らせることができる。
【0011】
「ブレードデバイス」は、本明細書において用いられるとき、メモリ及び少なくとも1つの論理プロセッサを備えるとともに、ブレードエンクロージャに実装可能である物理的なコンピューティングデバイスでありうる。幾つかの例では、ブレードデバイスは、動作に備えてブレードエンクロージャに物理的に実装可能であり、幾つかのコアコンピューティングリソース(例えば、CPU IC及びメモリ)を備え、幾つかの周辺コンピューティングリソース(例えば、電源装置、冷却ファン、外部ネットワーキングポート等、又はそれらの組み合わせ)を除外した、モジュール式コンピューティングデバイスでありうる。「ブレードエンクロージャ」は、本明細書において用いられるとき、複数のブレードデバイスを収容し、収容されたブレードデバイス用の少なくとも1つの周辺リソースを提供するシャーシでありうる。例えば、ブレードエンクロージャは、実装されたブレードデバイスを冷却するファン、実装されたブレードデバイスに電力を提供する少なくとも1つの電源装置、実装されたブレードデバイス用の外部ネットワークポート等、又はそれらの組み合わせを備えることができる。
【0012】
図1の例では、ブレードデバイス130は、論理プロセッサ132、及び論理プロセッサ132と関連付けられたメモリ134を備えることができる。本明細書において説明する例では、論理プロセッサ132は、本明細書において「拡張」論理プロセッサ132と呼ばれる場合があり、ブレードデバイス130は、本明細書において「拡張」ブレードデバイス130と呼ばれる場合がある。幾つかの例では、ブレードデバイス130は、複数の論理プロセッサを備えることができ、これらの論理プロセッサの幾つか又は全ては、関連付けられたメモリを有する。ブレードデバイス140は、論理プロセッサ142を備えることができる。幾つかの例では、ブレードデバイス140は、論理プロセッサ142と関連付けられたメモリを備えることができる。本明細書において説明する例では、論理プロセッサ142は、本明細書において「計算」論理プロセッサ142と呼ばれる場合があり、ブレードデバイス140は、本明細書において「計算」ブレードデバイス140と呼ばれる場合がある。幾つかの例では、ブレードデバイス140は、複数の論理プロセッサを備えることができ、これらの論理プロセッサの幾つか又は全ては、関連付けられたメモリを有する。「論理プロセッサ」は、本明細書において用いられるとき、CPU IC、CPU ICのCPU(例えば、マルチコアCPU IC上の複数のコアのうちの1つ)、又はCPU ICのCPU(又はコア)上のスレッドでありうる。
【0013】
本明細書において説明するいずれの拡張ブレードデバイス又は計算ブレードデバイスも、上記で説明したようなブレードデバイスでありうる。本明細書において説明する例では、拡張ブレードデバイスは、ブレードデバイスを備えるパーティションのOSによって用いられる、論理プロセッサではなくメモリを提供するように指定されたブレードデバイスでありうる。本明細書において説明する例では、計算ブレードデバイスは、ブレードデバイスを備えるパーティションのOSによって用いられるメモリ及び論理プロセッサを提供するように指定されたブレードデバイスでありうる。幾つかの例では、パーティションの各ブレードデバイスは、パーティションの構成の態様を記述するパーティション構成情報において拡張ブレードデバイス又は計算ブレードデバイスとして指定することができる。加えて、本明細書において説明するいずれの拡張論理プロセッサ又は計算論理プロセッサも、上記で説明したような論理プロセッサでありうる。本明細書において説明する例では、拡張論理プロセッサは、拡張ブレードデバイスの論理プロセッサであってもよく、計算論理プロセッサは、計算ブレードデバイスの論理プロセッサであってもよい。
【0014】
論理プロセッサ「と関連付けられた」メモリ(又は論理プロセッサの「関連付けられた」メモリ)は、本明細書において用いられるとき、論理プロセッサを備えるか又は構成するCPU IC上に統合されたメモリコントローラによって管理されるメモリである。例えば、論理プロセッサと関連付けられたメモリを備えるブレードデバイスは、少なくとも1つのメモリモジュールと、少なくとも1つの論理プロセッサ(例えば、CPU又はコア)及びメモリモジュールを管理する少なくとも1つの統合メモリコントローラを備えるCPU ICとを備えることができる。幾つかの例では、ブレードデバイスは、複数のCPU ICを備えることができ、各CPU ICは、ブレードデバイスのメモリモジュールを管理する少なくとも1つの統合メモリコントローラを備える。メモリモジュールは、本明細書において用いられるとき、例えば、デュアルインラインメモリモジュール(DIMM)、シングルインラインメモリモジュール(SIMM)、又は複数のメモリデバイスを備える他の任意のタイプのメモリモジュールでありうる。
【0015】
図1の例では、ブレードデバイス130は、命令122、124、及び126を含むSFWインスタンス121を用いてコード化された機械可読記憶媒体120を備える。幾つかの例では、SFWインスタンス121は、追加の命令を含みうる。「機械可読記憶媒体」は、本明細書において用いられるとき、実行可能命令、データ等の情報を含むか又は記憶する任意の電子記憶装置、磁気記憶装置、光記憶装置、又は他の物理的記憶装置でありうる。例えば、本明細書において説明するいずれの機械可読記憶媒体も、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えば、ハードドライブ)、ソリッドステートドライブ、任意のタイプの記憶ディスク(例えば、コンパクトディスク読み出し専用メモリ(CD−ROM)、他の任意のタイプのコンパクトディスク、DVD等)等、又はそれらの組み合わせのうちの任意のものでありうる。さらに、本明細書において説明するいずれの機械可読記憶媒体も、非一時的なものでありうる。本明細書において説明するいずれの「メモリ」も、少なくとも1つの機械可読記憶媒体の少なくとも一部分でありうる。
【0016】
図1の例では、SFWインスタンス121の命令は、SFWインスタンス121に関して以下で説明する機能を実行するように論理プロセッサ132によって実行可能である。論理プロセッサ132は、記憶媒体120上に記憶された命令をフェッチ、デコード、及び実行して、以下で説明する機能を実行することができる。
図1の例では、記憶媒体120は、SFWインスタンス121を記憶するROMでありうる。幾つかの例では、記憶媒体120は、ブレードシステム100のブレードデバイスエンクロージャ内に実装された別のブレードデバイス上に備えることができる。「システムファームウェアインスタンス」(又は「SFWインスタンス」)は、本明細書において用いられるとき、ブレードデバイスのリソースをブート及び管理する一組の機械実行可能命令でありうる。例えば、リセット後、ブレードデバイスの論理プロセッサは、SFWインスタンスの命令を実行して、論理プロセッサの動作のための初期化及び論理プロセッサと関連付けられたメモリ等のブレードデバイスの他のリソースの初期化を開始することができる。幾つかの例では、論理プロセッサ及び関連付けられたメモリのこの初期化は、SFWインスタンスによって実施されるパワーオンセルフテスト(POST)を含みうる。
【0017】
SFWインスタンスの命令は、論理プロセッサによって実行されると、論理プロセッサを、SFWインスタンスと関連付けられたSFWドメインにおいて動作するように構成することもできる。SFWインスタンスと関連付けられた「システムファームウェアドメイン」(又は「SFWドメイン」)は、本明細書において用いられるとき、SFWインスタンスによってブートされた論理プロセッサが、ブート後にSFWインスタンスの命令を実行するときに動作することができる環境でありうる。幾つかの例では、SFWドメインは、例えば、SFWデータ構造体及びSFWコード(すなわち、機械実行可能命令)を含む複数のSFWリソースを備えることができる。SFWドメインの一部として動作する論理プロセッサは、本明細書において用いられるとき、SFWドメインのSFWリソースへのアクセスを有する論理プロセッサでありうる。幾つかの例では、SFWドメインのSFWリソース(例えば、SFWデータ構造体及びSFWコード)は、SFWドメインのシステム管理メモリ領域(例えば、SMRAM)に記憶することができる。そのような例では、SFWドメインの一部として動作する論理プロセッサは、SFWドメインのシステム管理メモリ領域に記憶されたSFWリソースへのアクセスを有する論理プロセッサでありうる。SFWドメインの一部として動作する論理プロセッサは、システム管理メモリ領域内のSFWリソースに常にアクセスを有することができるとは限らない。逆に、この論理プロセッサは、幾つかの時点(例えば、ブート中)、或る特定のモード(例えば、システム管理モード(SMM))等においてアクセスを有することができる。本明細書において説明する例では、そのような制限されたアクセスを有する論理プロセッサは、それでも、システム管理メモリ領域内のSFWリソースへのアクセスを有するとみなすことができる。幾つかの例では、システム管理メモリ領域は、ブレードエンクロージャ内に実装されるとともにこの領域へのアクセスを有する論理プロセッサを備える少なくとも1つのブレードデバイスの機械可読記憶媒体の少なくとも一部分でありうる。
【0018】
SFWデータ構造体は、例えば、高度構成及び電力インタフェース(ACPI:advanced configuration and power interface)テーブル、システム管理BIOS(SMBIOS)テーブル、メモリデータ構造体、割り込みベクトル、セマフォ等、又はそれらの組み合わせを含みうる。SFWデータ構造体は、SFWインスタンスの命令を実行する論理プロセッサが生成して、システム管理メモリ領域に記憶することができる。SFWコードは、システム管理割り込み(SMI)ハンドラ等の割り込みサービスルーチンを実施する実行可能命令を含みうる。SFWコードは、エラーハンドラを実施する実行可能命令も含みうる。SFWコードは、システム管理メモリ領域内にコピーされたSFWインスタンスの命令でありうる。
【0019】
図1の例では、論理プロセッサ132及び142は、異なるSFWドメイン160及び162の一部としてそれぞれ動作するように構成することができる。本明細書において説明する例では、異なるSFWドメインの一部として動作するように構成された論理プロセッサは、異なるシステム管理メモリ領域(例えば、異なるSMRAM領域)内の異なるSFWリソースにアクセスするように構成された論理プロセッサでありうる。そのような例では、第1のSFWドメインの一部として動作するように構成された論理プロセッサは、第2のSFWドメインのいずれのSFWリソースへのアクセスも有しないことがある。例えば、SFWドメイン160の一部として動作するように構成された論理プロセッサ132は、第1のシステム管理メモリ領域(例えば、SMRAM)に記憶されたSFWドメイン160の第1のSFWリソースへの(例えば、SMMにおける)アクセスを有することがあり、第2のシステム管理メモリ領域(例えば、SMRAM)に記憶されたSFWドメイン162の第2のSFWリソースへのアクセスを有しないことがある。そのような例では、SFWドメイン162の一部として動作するように構成された論理プロセッサ142は、第2のシステム管理メモリ領域に記憶されたSFWドメイン162の第2のSFWリソースへの(例えば、SMMにおける)アクセスを有することがあり、第1のシステム管理メモリ領域に記憶されたSFWドメイン160の第1のSFWリソースへのアクセスを有しないことがある。
【0020】
幾つかの例では、論理プロセッサは、異なるSFWインスタンスを用いて論理プロセッサのそれぞれをブートすることによって異なるSFWドメインの一部として動作するように構成することができる。
図1の例では、論理プロセッサ132及び142は、SFWインスタンス121の命令を用いて論理プロセッサ132をブートするとともに、SFWインスタンス121とは異なる別のSFWインスタンスの命令を用いて論理プロセッサ142をブートすることによって、異なるSFWドメインの一部として動作するように構成することができる。
【0021】
図1の例では、ブレードシステム100の少なくとも一部分のリセット(例えば、パーティション108のリセット)の後、SFWインスタンス121の命令122は、論理プロセッサ132によって実行されると、論理プロセッサ132を、SFWインスタンス121と関連付けられたSFWドメイン160の一部として動作するように構成することができる。例えば、命令122は、論理プロセッサ132のハードウェアアドレスマップを、論理プロセッサ132が第1のシステム管理メモリ領域(例えば、SMRAM)に記憶されたSFWドメイン160の第1のSFWリソースにアクセスするように構成することができる。そのような例では、第1のSFWリソースは、SFWドメイン160のSFWコード(例えば、SMIハンドラ等)及び状態情報(例えば、保留中の割り込み、ロードされたドライバ、ロードされたACPIテーブル等に関する情報)を含みうる。幾つかの例では、第1のシステム管理メモリ領域は、パーティション108のブレードデバイス130のメモリ(例えば、RAM)の領域(例えば、メモリ134の領域)又はパーティション108の別のブレードデバイスのメモリの領域でありうる。
【0022】
また、リセット後、論理プロセッサ142は、別のSFWインスタンスの命令を実行して、SFWドメイン160と異なるとともに別のSFWインスタンスと関連付けられたSFWドメイン162の一部として動作するように論理プロセッサ142を構成することもできる。例えば、それらの命令は、論理プロセッサ142のハードウェアアドレスマップを、論理プロセッサ142が第1のシステム管理メモリ領域と異なる第2のシステム管理メモリ領域(例えば、SMRAM)に記憶されたSFWドメイン162の第2のSFWリソースにアクセスするように構成することができる。そのような例では、第1のSFWリソースと異なる第2のSFWリソースは、SFWドメイン162のSFWコード(例えば、SMIハンドラ等)及び状態情報(例えば、保留中の割り込み、ロードされたドライバ、ロードされたACPIテーブル等に関する情報)を含みうる。幾つかの例では、第2のシステム管理メモリ領域は、パーティション108のブレードデバイス140のメモリ(例えば、RAM)の領域又はパーティション108の別のブレードデバイスのメモリの領域でありうる。
【0023】
図1の例では、命令124は、論理プロセッサ132によって実行されると、論理プロセッサ132と関連付けられたブレードデバイス130の利用可能なメモリ135をブレードデバイス140に対して特定することができる。幾つかの例では、命令124によって特定されたメモリ135は、OS115等のブレードシステム100のOSによる使用に利用可能であると判断されたメモリでありうる。例えば、論理プロセッサ132は、命令124を実行して、論理プロセッサ132と関連付けられたメモリ134の中で利用可能なメモリ135を特定することができる。幾つかの例では、論理プロセッサ132は、リセット後にそのブートプロセスの一部として命令124を実行することができる。そのような例では、命令124は、論理プロセッサ132と関連付けられたメモリ134の量を求め、そして、メモリ134をテストして、メモリ134のどの部分が使用可能であるのか(すなわち、機能しているのか)を判断することができる。幾つかの例では、命令124は、OS115による使用に利用可能なメモリ135(すなわち、利用可能なメモリ135)として使用可能であると判断されたメモリ134の少なくとも一部分を特定することができる。例えば、論理プロセッサ132は、(例えば、SFWインスタンス121の命令を実行するときに)論理プロセッサ132によって用いられる使用可能なメモリ134の一部分を確保し、使用可能なメモリ134の残りをOS115による使用に利用可能なメモリ135として特定することができる。
【0024】
命令124を実行する論理プロセッサ132は、特定された利用可能なメモリ135の記述をブレードデバイス130のサービスメモリに記憶して、ブレードデバイス130のサービスプロセッサが、パーティション108のブートを調整してOS115を走らせることを担当するモナーク論理プロセッサ(例えば、ブートストラップ論理プロセッサ)にこの記述を提供することができるようにすることもできる。特定された利用可能なメモリ135の記述は、任意の適したフォーマットや、データ構造体等(例えば、テーブル等)でありうる。幾つかの例では、論理プロセッサ142は、モナーク論理プロセッサでありうる。そのような例では、利用可能なメモリ135の記述をブレードデバイス130のサービスメモリに記憶することによって、ブレードデバイス130のサービスプロセッサは、この記述にアクセスし、論理プロセッサ142を備えるブレードデバイス140にこの記述を提供することができる。そのような例では、論理プロセッサ132は、この記述をブレードデバイス130のサービスメモリに記憶することによって、利用可能なメモリを論理プロセッサ142に対して特定することができる。ブレードデバイス140は、以下で説明するように、ブレードデバイス130の特定されたメモリ135を、OS115による使用に利用可能にすることができる。
【0025】
図1の例では、SFWインスタンス121の命令122を実行する論理プロセッサ132は、ブレードデバイス130のパーティション構成情報154にアクセスすることができる。本明細書において説明する例では、ブレードデバイスのパーティション構成情報は、このブレードデバイスに関係したパーティションの構成の少なくとも幾つかの態様を記述することができる。例えば、パーティション構成情報154は、ブレードデバイス130がパーティション108の拡張ブレードデバイスとして指定されているのか又は計算ブレードデバイスとして指定されているのかを、(例えば、フラグ等を介して)示すことができる。論理プロセッサ132は、例えば、ブレードデバイス130のサービスメモリにおいてパーティション構成情報154にアクセスすることもできるし、このパーティション構成情報がサービスメモリからコピーされた後は、SFWドメイン160の第1のシステム管理メモリ領域においてこのパーティション構成情報にアクセスすることもできる。
【0026】
ブレードデバイス130が拡張ブレードデバイスであることをパーティション構成情報154が示しているとの判断に応答して、論理プロセッサ132によって実行される命令126は、ブレードデバイス130の特定されたメモリ135を論理プロセッサ132から隠蔽し、論理プロセッサ132をSFW実行モードに配置することができる。例えば、命令126は、論理プロセッサ132によって実行されると、論理プロセッサ132が特定されたメモリ135のいずれにもアクセスするができないように論理プロセッサ132のソースアドレスデコーダを設定することによって、特定されたメモリ135を隠蔽することができる。そのような例では、命令126は、論理プロセッサ132のソースアドレスデコーダがメモリ134の特定されたメモリ135中のいずれのアドレスについてもアドレス変換を含まないように、これらのソースアドレスデコーダを設定することができる。このように、命令126は、OS115による使用に利用可能な特定されたメモリ135を論理プロセッサ132からファイアウォールすることができる。幾つかの例では、命令126は、OS115に利用可能にされる特定されたメモリ135の選択部分の表示を受信することができ、この選択部分を論理プロセッサ132から隠蔽し、残りの部分は隠蔽しないことが可能である。
【0027】
また、ブレードデバイス130が拡張ブレードデバイスであることをパーティション構成情報154が示しているとの判断に応答して、論理プロセッサ132によって実行される命令126は、論理プロセッサ132をSFW実行モードに配置することができる。このSFW実行モードにおいて、論理プロセッサ132は、OS115が少なくともブレードデバイス140の論理プロセッサ142によって実行されている間、SFWインスタンス121の命令を実行する。幾つかの例では、SFW実行モードは、SMMでありうる。例えば、命令126は、論理プロセッサ132によって実行されると、論理プロセッサ132を、SMMに入らせ、OS115が少なくとも論理プロセッサ142によって実行されている間、SMMに維持しておくことができる。本明細書において説明する例では、システム管理モード(SMM)は、論理プロセッサが動作するように構成されたSFWドメインのSFWコードを論理プロセッサが実行するモードでありうる。SMMにおいて、論理プロセッサ132は、SFWインスタンス121と関連付けられたSFWドメイン160の第1のシステム管理メモリ領域(例えば、SMRAM)へのアクセスを有することがあり、第1のシステム管理メモリ領域に記憶されたSFWコード(例えば、SFWインスタンス121の命令)を実行することができる。SMMにおいて、論理プロセッサ132は、例えば、OS115の任意の部分又はOS115において走らされる任意のアプリケーションの任意の部分を走らせるためにOS115が利用することには、利用可能ではない。
【0028】
さらに、SMMにおいて、論理プロセッサ132は、例えば、SMIの検出に応答したSMIハンドラの命令及びエラー表示に応答したエラーハンドラの命令等のSFWインスタンス121の命令を実行するのに利用可能な状態に維持される。そのような例では、SMIハンドラ及びエラーハンドラの命令は、SFWインスタンス121の命令とすることができ、ブートプロセス中に第1のシステム管理メモリ領域内にコピーされている場合がある。そのような例では、SMMにおいて、論理プロセッサ132は、第1のシステム管理メモリ領域の外部でこれらの命令を実行することができる。
【0029】
他の例では、SFW実行モードは、パーティションの他の論理プロセッサがOSを実行している間にパーティションの或る論理プロセッサがSFWインスタンスのコードを実行する任意の適した状態でありうる。例えば、命令126は、SFWインスタンス121の命令によって実施されるループを論理プロセッサ132に実行させることができ、それによって、パーティションの他の論理プロセッサがOSを実行している間、論理プロセッサ132がSFWインスタンス121の命令を実行する状態を維持するとともに、論理プロセッサ132が、このループから外されて、上記で説明したようなSMI又はエラーハンドラ等の他のSFWコードを実行するために利用可能にする。
【0030】
上述したように、幾つかの例では、論理プロセッサ132によって実行される命令124は、利用可能なメモリ135の記述をブレードシステム100の共有メモリ領域に記憶することによって、論理プロセッサ142に対して利用可能なメモリ135を特定することができる。そのような例では、論理プロセッサ142は、モナーク論理プロセッサとすることができ、ブレードデバイス130の特定されたメモリ135をOS115による使用に利用可能にすることができる。例えば、論理プロセッサ142は、ブレードデバイス130のメモリ135を特定する情報を任意の適したフォーマット又はデータ構造体(例えば、テーブル等)によってOS115に提供することができる。例えば、論理プロセッサ142は、OS115からアクセス可能なブレードシステム100のメモリの領域に記憶された少なくとも1つのACPIテーブルでこの情報をOS115に提供することができる。幾つかの例では、論理プロセッサ142は、ブレードデバイス140の利用可能なメモリ及び論理プロセッサ142等のパーティション108の他のリソースも、OS115からアクセス可能なメモリ領域に記憶されたACPIテーブルにおいて特定することによって、それらの他のリソースもOS115に利用可能にすることができる。
【0031】
図1の例では、モナーク論理プロセッサは、論理プロセッサ132を、OS115による使用に利用可能であるとして特定しないことがある。例えば、論理プロセッサ132及び142は、異なるSFWドメイン160及び162においてそれぞれ動作するように構成されているので、論理プロセッサ132は、論理プロセッサ142に見えないようにすることがある。さらに、論理プロセッサ132は、自身を、OS115による使用に利用可能であるとして論理プロセッサ142に対して特定しないことがある。したがって、論理プロセッサ142がモナーク論理プロセッサである例では、論理プロセッサ142は、論理プロセッサ132を、OS115による使用に利用可能であるとして特定しないことがある。例えば、論理プロセッサ142によってOS115に提供されるACPIテーブルは、論理プロセッサ142、ブレードデバイス130の利用可能なメモリ135、及びブレードデバイス140の利用可能なメモリの特定情報を含むことができ、論理プロセッサ132の任意の特定情報を除外することができる。そのような例では、論理プロセッサ132は、OS115による使用に利用不能とすることができ、OS115による使用に利用可能にされる特定されたメモリ135は、上記で説明したように、論理プロセッサ132による使用に利用不能にすることができる。
【0032】
論理プロセッサ142並びにブレードデバイス130及び140の特定されたメモリ(メモリ135を含む)がOS115に利用可能にされた後、(例えば、ACPIテーブルにおいて)OS115に対して特定されたリソースを利用してパーティション108上でOS115を実行することができる。例えば、論理プロセッサ132がOS115又はOS115によって走らされる任意のアプリケーションによる使用に利用不能である間、OS115は、論理プロセッサ142及びブレードデバイス130及び140の特定された利用可能なメモリを用いてアプリケーションを実行し走らせることができる。幾つかの例では、
図1に関して本明細書において説明した機能は、
図2〜
図5のうちの任意のものに関して本明細書において説明した機能と組み合わせて提供することができる。
【0033】
図2は、OSがパーティションの別の論理プロセッサによって実行されている間、パーティション208の複数の論理プロセッサをSFW実行モードに配置する一例示のブレードシステム200のブロック図である。
図2の例では、ブレードシステム200は、ブレードエンクロージャ205と、ブレードエンクロージャ205内に実装されたブレードデバイス230及び240とを備える。ブレードデバイス230は、本明細書において拡張ブレードデバイス230と呼ばれる場合があり、ブレードデバイス240は、本明細書において計算ブレードデバイス240と呼ばれる場合がある。ブレードシステム200は、
図1に関して上記で説明したように、ブレードデバイス230及び240のそれぞれのリソースを用いてOS115を走らせることができる。例えば、OS115は、ブレードシステム200のパーティション208が走らせることができ、このパーティション208は、少なくともブレードデバイス230及び240を備える。
【0034】
図2の例では、拡張ブレードデバイス230は、
図1に関して上記で説明したように、論理プロセッサ132及び論理プロセッサ132と関連付けられたメモリ134を備えることができる。拡張ブレードデバイス230は、ブレードデバイス230のメモリ234と関連付けられた論理プロセッサ232も備えることができる。他の例では、ブレードデバイス230は、3つ以上の論理プロセッサを備えることができ、それらの論理プロセッサのうちの幾つか又は全ては、関連付けられたメモリを有する。論理プロセッサ132及び232のそれぞれは、本明細書において拡張論理プロセッサと呼ばれる場合がある。計算ブレードデバイス240は、
図1に関して上記で説明したような論理プロセッサ142、及び計算論理プロセッサ142と関連付けられたメモリ144を備えることができる。計算ブレードデバイス240は、ブレードデバイス240のメモリ244と関連付けられた論理プロセッサ242も備えることができる。他の例では、ブレードデバイス240は、3つ以上の論理プロセッサを備えることができ、それらの論理プロセッサのうちの幾つか又は全ては、関連付けられたメモリを有する。論理プロセッサ142及び242のそれぞれは、本明細書において計算論理プロセッサと呼ばれる場合がある。
【0035】
ブレードデバイス230は、
図1に関して上記で説明したように、命令122、124、及び126を含むSFWインスタンス121を用いてコード化された機械可読記憶媒体120を備える。SFWインスタンス121の命令は、SFWインスタンス121に関して以下で説明する機能を実行するように論理プロセッサ132及び232によって実行可能である。ブレードデバイス240は、SFWインスタンス281に関して以下で説明する機能を実行する、論理プロセッサ142及び242によって実行可能な命令を含むSFWインスタンス281を用いてコード化された機械可読記憶媒体280を備える。
【0036】
図2の例では、ブレードシステム200の少なくとも一部分(例えば、パーティション208)のリセット後、命令122は、
図1のブレードシステム100に関して上記で説明したように、SFWインスタンス121と関連付けられたSFWドメイン160の一部として動作するように論理プロセッサ132及び232のそれぞれを構成することができる。例えば、論理プロセッサ132及び232のそれぞれは、SFWインスタンス121を用いてブートすることができる。そのような例では、論理プロセッサ132及び232は、同じSFWドメイン160の一部として動作するように構成されている。本明細書において説明する例では、単一のSFWドメイン(すなわち、同じSFWドメイン)の一部として動作するように構成された論理プロセッサは、SFWドメインのSFWリソースにアクセスするようにそれぞれ構成された論理プロセッサでありうる。例えば、これらの論理プロセッサは、SFWドメインのSFWリソースを記憶するシステム管理メモリ領域への(例えば、SMMにおける)アクセスをそれぞれ有することがある。
【0037】
例えば、命令122は、論理プロセッサ132及び232によって実行されると、論理プロセッサ132及び232のそれぞれのハードウェアアドレスマップを同じになるように構成することができる。幾つかの例では、命令122は、論理プロセッサ132及び232がSFWドメイン160の第1のシステム管理メモリ領域における同じSFWリソース(すなわち、SFWドメイン160のSFWリソース)へのアクセスをそれぞれ有するように、それぞれのハードウェアアドレスマップを構成することができる。命令122は、ハードウェアアドレスマップを、論理プロセッサ132及び232がSFWドメイン160の同じSFWコード及び同じ状態情報にアクセスするように構成することができる。また、リセット後、SFWインスタンス281の命令は、SFWドメイン160の論理プロセッサ132及び232に関して上記で説明したように、SFWインスタンス281と関連付けられたSFWドメイン162の一部として(すなわち、同じSFWドメインの一部として)動作するように論理プロセッサ142及び242のそれぞれを構成することができる。
図2の例では、SFWドメイン160及び162は、異なるSFWドメインである。
【0038】
図2の例では、命令124は、ブレードデバイス230の複数の論理プロセッサによって実行されると、
図1に関して上記で説明したように、それらの複数の論理プロセッサのうちの任意の1つと関連付けられたブレードデバイス230の利用可能なメモリを特定することができる。例えば、論理プロセッサ132は、命令124を実行すると、メモリ134の利用可能なメモリ135を特定することができ、論理プロセッサ232は、メモリ234の利用可能なメモリ235を特定することができる。加えて、複数の論理プロセッサのそれぞれは、命令124を実行すると、特定されたメモリの記述を、ブレードデバイス230のサービスプロセッサ250からアクセス可能なブレードデバイス230のサービスメモリ252に記憶することができる。例えば、論理プロセッサ132及び232は、命令124を実行すると、特定されたメモリ135及び235の記述256をサービスメモリ252に記憶することができる。記述256は、論理プロセッサのそれぞれによって特定されたメモリの単一の記述であってもよく、各論理プロセッサによって特定されたメモリの別々の記述であってもよい。
【0039】
サービスプロセッサ250は、ブレードデバイス240がパーティション208のモナーク論理プロセッサを備える例では、記述256をブレードデバイス240に提供することができる。例えば、論理プロセッサ142がモナーク論理プロセッサである場合、サービスプロセッサ250は、記述256をサービスメモリ252から取り出して、記述256をブレードデバイス240のサービスプロセッサ270に提供することによって、記述256をブレードデバイス240に提供することができる。サービスプロセッサ270は、受信された記述256をブレードデバイス240のサービスメモリ272に記憶することができる。このサービスメモリにおいて、記述256は、論理プロセッサ142からアクセス可能である。本明細書において説明する例では、サービスプロセッサは、CPU、半導体ベースのマイクロプロセッサ、機械可読記憶媒体上に記憶された命令の取り出し及び実行に適した他の電子回路部、又はそれらの組み合わせのうちの少なくとも1つでありうる。
【0040】
加えて、
図2の例では、ブレードデバイス230に関して上記で説明したように、ブレードデバイス240の複数の論理プロセッサが、SFWインスタンス281の命令を実行して、それぞれの論理プロセッサと関連付けられたブレードデバイス240の利用可能なメモリを特定することができる。例えば、論理プロセッサ142は、メモリ144の利用可能なメモリ145を特定することができ、論理プロセッサ242は、メモリ244の利用可能なメモリ245を特定することができる。
【0041】
幾つかの例では、モナーク論理プロセッサは、OS115に提供される全体的なメモリマップを求めることができる。このメモリマップは、特定されたメモリ135、235、145、及び245のうちの少なくとも幾つかを含みうる。そのような例では、モナーク論理プロセッサがメモリマップを求めた後、サービスプロセッサ250は、ルーティング情報258を受信し、このルーティング情報をサービスメモリ252に記憶することができる。そのような例では、命令122を実行する論理プロセッサ132及び232は、ルーティング情報258を利用して、OS115からの、ブレードデバイス230の特定されたメモリ(例えば、メモリ135及び235)をターゲットとするメモリトランザクションを、ブレードデバイス230のノードコントローラ233を用いてその特定されたメモリにルーティングするようにブレードデバイス230を構成することができる。例えば、命令122は、ブレードデバイス230の特定されたメモリをターゲットとする、OS115からのメモリトランザクションをこの特定されたメモリにルーティングするルーティングテーブルを、ノードコントローラ233に設定することができる。
【0042】
そのような例では、論理プロセッサ142及び242によって実行されるSFWインスタンス281の命令は、ブレードデバイス230の特定されたメモリをターゲットとするメモリトランザクションをノードコントローラ243及び233を通じてルーティングするようにブレードデバイス240を構成することもできる。例えば、これらの命令は、ブレードデバイス230の特定されたメモリをターゲットとするメモリトランザクションを、ノードコントローラ243を通じてルーティングするルーティングテーブルを論理プロセッサ142及び242に設定することができるとともに、それらのトランザクションをブレードデバイス230のノードコントローラ233を通じてルーティングするルーティングテーブルをノードコントローラ243に設定することができる。ノードコントローラ233及び243のそれぞれの機能は、電子回路部の形態、機械可読記憶媒体上にコード化された実行可能命令の形態、又はそれらの組み合わせにより実施することができる。
【0043】
図2の例では、SFWインスタンス121の命令122を実行する論理プロセッサ132は、ブレードデバイス230のパーティション構成情報254にアクセスして、情報254に基づいて(例えば、情報254内のフラグに基づいて)、ブレードデバイス230が拡張ブレードデバイスであるのか又は計算ブレードデバイスであるのかを判断することができる。
図2の例では、パーティション構成情報254は、サービスプロセッサ250が(例えば、パーティション208のパーティションマネージャから)受信して、サービスメモリ252に記憶することができる。論理プロセッサ132は、サービスメモリ252においてパーティション構成情報254にアクセスすることもできるし、このパーティション構成情報がサービスメモリ252からSFWドメイン160の第1のシステム管理メモリ領域にコピーされた後は、この第1のシステム管理メモリ領域においてパーティション構成情報254にアクセスすることもできる。
図2の例では、ブレードデバイス240が拡張ブレードデバイスであるのか又は計算ブレードデバイスであるのかを示すパーティション構成情報274は、サービスメモリ272に記憶することができ、論理プロセッサ142及び242がアクセスして、ブレードデバイス240が拡張ブレードデバイスであるのか又は計算ブレードデバイスであるのかを判断することができる。
【0044】
パーティション構成情報254が、ブレードデバイス230が拡張ブレードデバイスであることを示す例では、
図1に関して上記で説明したように、ブレードデバイス230の論理プロセッサによって実行される命令126は、ブレードデバイス230の特定されたメモリの各領域を、ブレードデバイス230が関連付けられているそれぞれの論理プロセッサから隠蔽し、ブレードデバイス230の複数の論理プロセッサのそれぞれをSFW実行モードに配置することができる。例えば、命令126は、特定されたメモリ135を論理プロセッサ132から隠蔽し、論理プロセッサ132をSFW実行モード(例えば、SMM)に配置することができ、命令126は、特定されたメモリ235を論理プロセッサ232から隠蔽し、論理プロセッサ232をSFW実行モード(例えば、SMM)に配置することができる。
【0045】
幾つかの例では、OSがブレードデバイス240の少なくとも論理プロセッサ142によって実行されている間、複数の論理プロセッサのそれぞれがSFWインスタンス121の命令を実行するように、それらの論理プロセッサのそれぞれをSFW実行モードに配置することができる。他の例では、ブレードデバイス230の1つの論理プロセッサをSFW実行モードに配置することができる一方、ブレードデバイス230の他の論理プロセッサを、SFWインスタンス121の命令を実行するのに利用可能な状態に維持しないことができる。例えば、論理プロセッサの残りを停止状態、初期化状態(例えば、スタートアッププロセッサ間割り込み(SIPI)を待機している状態)等に配置することができる。そのような例では、SFWインスタンス121の命令を実行するのに利用可能な状態に維持されている1つの論理プロセッサは、ブレードデバイスの管理に用いることができる。
【0046】
ブレードデバイス230の論理プロセッサがSFW実行モードに配置された後、モナーク論理プロセッサは、ブレードデバイス230の特定されたメモリをOS115による使用に利用可能にすることができる。論理プロセッサ142がモナーク論理プロセッサである例では、論理プロセッサ142は、ブレードデバイス230のメモリ135及び235を特定する情報をOS115に任意の適したフォーマット又はデータ構造体(例えば、テーブル等)で提供することができる。例えば、論理プロセッサ142は、OS115からアクセス可能なブレードシステム100のメモリの領域に記憶された少なくとも1つのACPIテーブルでこの情報をOS115に提供することができる。幾つかの例では、論理プロセッサ142は、ブレードデバイス240の利用可能なメモリ145及び245並びに論理プロセッサ142及び242等のパーティション208の他のリソースも、OS115からアクセス可能なメモリ領域に記憶されたACPIテーブルにおいて特定することによって、それらの他のリソースもOS115に利用可能にすることができる。そのような例では、
図1に関して上記で説明したように、モナーク論理プロセッサは、論理プロセッサ132及び232をOS115による使用に利用可能であるとして特定しない。
【0047】
論理プロセッサ142及び242、並びにブレードデバイス230及び240の特定されたメモリがOS115に利用可能にされた後、OS115は、(例えば、ACPIテーブルにおいて)OS115に対して特定されたリソースを利用してパーティション208上で走ることができる。例えば、論理プロセッサ132及び232が、OS115又はOS115によって走らされる任意のアプリケーションによる使用に利用不能である間、OS115は、論理プロセッサ142及び242並びにブレードデバイス230及び240の特定された利用可能なメモリを用いて、アプリケーションを実行し走らせることができる。幾つかの例では、
図2に関して本明細書において説明した機能は、
図1及び
図3〜
図5のうちの任意のものに関して本明細書において説明した機能と組み合わせて提供することができる。
【0048】
図3は、システム300のパーティションの論理プロセッサをSFW実行モードに配置し、この論理プロセッサと関連付けられたメモリをこのパーティションのOSに利用可能にする一例示のシステム300のブロック図である。
図3の例では、システム300(例えば、ブレードシステム300)は、ブレードエンクロージャ305と、ブレードエンクロージャ305内に実装されたブレードデバイス330、340、及び390とを備える。他の例では、システム300は、ブレードエンクロージャ305内に実装されたこれよりも多い又は少ないブレードデバイスを備えることができる。ブレードデバイス330は、本明細書において拡張ブレードデバイス330と呼ばれる場合があり、ブレードデバイス340は、本明細書において計算ブレードデバイス340と呼ばれる場合がある。
【0049】
図3の例では、拡張ブレードデバイス330は、論理プロセッサ332と、論理プロセッサ332と関連付けられたメモリ334と、メモリ334を管理するメモリコントローラ331とを備える。論理プロセッサ332は、本明細書において拡張論理プロセッサ332と呼ばれる場合がある。メモリコントローラ331及び拡張論理プロセッサ332は、単一のCPU IC内に統合することができる。例えば、メモリコントローラ331は、論理プロセッサ332を備えるか又は構成するCPU ICに統合することができる。幾つかの例では、論理プロセッサ332及びメモリコントローラ331を備えるCPU ICは、ブレードデバイス330の他のメモリを管理する追加のメモリコントローラも備えることができる。幾つかの例では、ブレードデバイス330は、複数の論理プロセッサを備えることができ、それらの論理プロセッサのうちの幾つか又は全ては、関連付けられたメモリを有する。
【0050】
計算ブレードデバイス340は、論理プロセッサ342と、論理プロセッサ342と関連付けられたメモリ344と、メモリ344を管理するメモリコントローラ341とを備える。論理プロセッサ342は、本明細書において計算論理プロセッサ342と呼ばれる場合がある。メモリコントローラ341及び論理プロセッサ342は、単一のCPU IC内に統合することができる。例えば、メモリコントローラ341は、論理プロセッサ342を備えるか又は構成するCPU ICに統合することができる。幾つかの例では、論理プロセッサ342及びメモリコントローラ341を備えるCPU ICは、ブレードデバイス340の他のメモリを管理する追加のメモリコントローラも備えることができる。幾つかの例では、ブレードデバイス340は、複数の論理プロセッサを備えることができ、それらの論理プロセッサのうちの幾つか又は全ては、関連付けられたメモリを有する。メモリコントローラ331及び341のそれぞれの機能は、電子回路部の形態、機械可読記憶媒体上にコード化された実行可能命令の形態、又はそれらの組み合わせで実施することができる。
【0051】
ブレードシステム300は、
図1に関して上記で説明したように、ブレードデバイス330及び340のそれぞれのリソースを用いてOS115を走らせることができる。例えば、OS115は、少なくともブレードデバイス330及び340を備えるブレードシステム300のパーティション308が走らせることができる。
図3の例では、パーティション308は、例えばブレードデバイス390等のシステム300の少なくとも1つのブレードデバイスを省略することができる。他の例では、パーティション308は、ブレードエンクロージャ305内に実装された追加のブレードデバイスを備えることができる。
【0052】
図3の例では、ブレードデバイス330は、命令322、324、326、328、及び329を含むSFWインスタンス321を用いてコード化されたファームウェアメモリ320を備える。幾つかの例では、SFWインスタンス321は、追加の命令を含みうる。SFWインスタンス321の命令は、SFWインスタンス321に関して以下で説明する機能を実行するように少なくとも論理プロセッサ332によって実行可能である。ブレードデバイス340は、命令382、384、386、及び388を含むSFWインスタンス381を用いてコード化されたファームウェアメモリ380を備える。幾つかの例では、SFWインスタンス381は、追加の命令を含みうる。SFWインスタンス381の命令は、SFWインスタンス381に関して以下で説明する機能を実行するように少なくとも論理プロセッサ342によって実行可能である。
図3の例では、SFWインスタンス381は、パーティション308をブートしてOS115を実行するように実行可能である。
図3の例では、
図2に関して上記で説明したように、ブレードデバイス330は、サービスプロセッサ250及びサービスメモリ252を備え、ブレードデバイス340は、サービスプロセッサ270及びサービスメモリ272を備える。
【0053】
図3の例では、
図1に関して上記で説明したように、少なくともパーティション308のリセット後、命令322は、論理プロセッサ332によって実行されると、論理プロセッサ332を、SFWインスタンス321と関連付けられたSFWドメイン360の一部として動作するように構成することができる。また、
図1に関して上記で説明したように、リセット後、命令382は、論理プロセッサ342によって実行されると、論理プロセッサ342を、SFWインスタンス381と関連付けられた、SFWドメイン360と異なるSFWドメイン362の一部として動作するように構成することができる。そのような例では、論理プロセッサ332及び342は、異なるハードウェア設計を有することがある。なぜならば、これらの論理プロセッサは、異なるSFWインスタンスによってブートされ、異なるSFWドメインにおいて動作するようにブートされるからである。例えば、OS115を実行し、OS115においてアプリケーションを走らせるのに用いられる計算論理プロセッサ342は、OS115に利用不能である拡張論理プロセッサ332よりも高性能の(及び場合によってはより高価な)論理プロセッサでありうる。
【0054】
図3の例では、
図1に関して上記で説明したように、論理プロセッサ332は、命令324を実行して、論理プロセッサ332と関連付けられたメモリ334の中で利用可能なメモリ335を特定することができる。ブレードデバイス330のサービスプロセッサ250が、特定された利用可能なメモリ335の記述356をパーティション308のモナーク論理プロセッサに提供することができるように、命令324を実行する論理プロセッサ332は、この記述をブレードデバイス330のサービスメモリ252に記憶することもできる。論理プロセッサ342がモナーク論理プロセッサである例では、サービスプロセッサ250は、記述356をサービスメモリ252からサービスプロセッサ270を介してブレードデバイス340のサービスメモリ272に転送することができる。例えば、サービスプロセッサ250は、記述356をサービスプロセッサ270に提供することができ、サービスプロセッサ270は、受信された記述356をサービスメモリ272に記憶することができる。このサービスメモリにおいて、この記述は、論理プロセッサ342からアクセス可能である。そのような例では、命令324は、記述356をサービスメモリ252に記憶することによって、利用可能なメモリ335を論理プロセッサ342に対して特定することができる。
【0055】
図3の例では、命令326を実行する論理プロセッサ332は、(例えば、サービスメモリ252、又はSFWドメイン360のシステム管理メモリ領域において)ブレードデバイス330のパーティション構成情報354にアクセスし、情報354に基づいて、ブレードデバイス330が拡張ブレードデバイスであると判断することができる。ブレードデバイス330が拡張ブレードデバイスであると判断したことに応答して、上記で説明したように、論理プロセッサ332は、命令328を実行して、特定された利用可能なメモリ335を論理プロセッサ332から隠蔽することができる。また、ブレードデバイス330が拡張ブレードデバイスであるとの判断に応答して、
図1に関して上記で説明したように、論理プロセッサ332は、命令329を実行して、論理プロセッサ332をSFW実行モード(例えば、SMM)に配置することができる。SFW実行モードにおいて、論理プロセッサ332は、OS115が少なくとも論理プロセッサ342によって実行されている間、SFWインスタンス321の命令を実行することができる。
【0056】
図3の例では、論理プロセッサ342によって実行される命令384は、論理プロセッサ342と関連付けられた利用可能なメモリ345を特定することができる。このメモリは、ブレードデバイス340のメモリ344の少なくとも一部分でありうる。加えて、命令386を実行する論理プロセッサ342は、(例えば、サービスメモリ272、又はSFWドメイン362のシステム管理メモリ領域において)ブレードデバイス340のパーティション構成情報374にアクセスし、情報374に基づいて、ブレードデバイス340が計算ブレードデバイスであると判断することができる。
【0057】
ブレードデバイス340が計算ブレードデバイスであるとの判断に応答して、論理プロセッサ342によって実行される命令386は、論理プロセッサ342を用いてSFW実行モードに入らないように決定することができる。幾つかの例では、論理プロセッサ342は、モナーク論理プロセッサでありうる。そのような例では、論理プロセッサ342は、命令388を実行して、論理プロセッサ342、ブレードデバイス330の特定されたメモリ(例えば、メモリ335)、及びブレードデバイス340の特定されたメモリ(例えば、メモリ345)をOS115による使用に利用可能にすることができる。
【0058】
幾つかの例では、命令388は、これらのリソースをOS115に対して特定することによって、これらのリソースをOS115による使用に利用可能にすることができる。例えば、論理プロセッサ342によって実行される命令388は、論理プロセッサ342並びに特定されたメモリ335及び345がOS115による使用に利用可能であることを少なくとも1つのACPIテーブル366において示すことができる。そのような例では、ACPIテーブルはそれぞれ、論理プロセッサ332がOS115による使用に利用可能でないように、論理プロセッサ332に関するいずれの情報も除外することができる。命令388は、ACPIテーブル366を、OS115からアクセス可能なブレードシステム300のメモリ領域365に記憶することができる。メモリ領域365は、ブレードデバイス340、又はパーティション308の別のブレードデバイスのメモリの少なくとも一部分でありうる。OS115及び任意のアプリケーションは、その場合、ACPIテーブル366におけるOS115に対して特定されたリソースを利用してパーティション308上で走ることができる。幾つかの例では、
図3に関して本明細書において説明した機能は、
図1及び
図2並びに
図4及び
図5のうちの任意のものに関して本明細書において説明した機能と組み合わせて提供することができる。
【0059】
図4は、第2の論理プロセッサを用いたOSの実行中に、第1の論理プロセッサをSMMに維持する一例示の方法400のフローチャートである。方法400の実行は、
図3のブレードシステム300を参照して以下で説明されるが、方法400の実行に適した他のシステム(例えば、ブレードシステム100又は200)を利用することができる。加えて、方法400の実施は、そのような例に限定されるものではない。
【0060】
方法400の405において、少なくともパーティション308のリセット後、命令322は、論理プロセッサ332によって実行されると、論理プロセッサ332を、SFWインスタンス321と関連付けられたSFWドメイン360の一部として動作するように構成することができる。また、405において、命令382は、論理プロセッサ342によって実行されると、論理プロセッサ342を、SFWインスタンス381と関連付けられたSFWドメイン362の一部として動作するように構成することができる。幾つかの例では、SFWインスタンス381は、パーティション308をブートしてOS115を実行する命令を含みうる。
【0061】
410において、命令324は、論理プロセッサ332によって実行されると、論理プロセッサ332と関連付けられたブレードデバイス330の利用可能なメモリ335を特定することができる。また、410において、命令384は、論理プロセッサ342によって実行されると、論理プロセッサ342と関連付けられたブレードデバイス340の利用可能なメモリ345を特定することができる。415において、命令388は、上記で説明したように、論理プロセッサ342によって実行されると、論理プロセッサ342、ブレードデバイス330の特定されたメモリ335、及びブレードデバイス340の特定されたメモリ345をOS115による使用に利用可能にすることができる。
【0062】
420において、命令329は、論理プロセッサ332によって実行されると、OS115の実行が開始する前に、論理プロセッサ332をSMMに配置することができる。命令329は、上記で説明したように、ブレードデバイス330が拡張ブレードデバイスとして指定されているとの判断に応答して、論理プロセッサ332をSMMに入らせることができる。425において、パーティション308は、少なくとも論理プロセッサ342を用いたOS115の実行を開始することができる。例えば、パーティション308は、上記で説明したように、SFWインスタンス381を用いてOS115をブートすることができ、そして、(例えば、上記で説明したように、OS115に提供されたACPIテーブルにおいて)論理プロセッサ342によってOS115に利用可能にされたパーティション308のリソースを用いたOS115の実行を開始することができる。そのような例では、論理プロセッサ332がOS115に利用不能である間、パーティション308は、少なくとも論理プロセッサ342並びに特定されたメモリ335及び345を用いてOS115を実行することができる。幾つかの例では、パーティション308は、パーティション308の追加のリソースを用いてOS115を実行することができる。430において、論理プロセッサ332によって実行される命令329は、少なくとも論理プロセッサ342等のパーティション308の他の論理プロセッサを用いたOS115の実行中、論理プロセッサ332をSMMに維持することができる。そのような例では、論理プロセッサ332をSMMに保つことによって、論理プロセッサ332は、OS115に利用不能である間、SFWインスタンス321の命令を実行するのに利用可能に維持することができる。
【0063】
図4のフローチャートは、幾つかの機能の特定の遂行順序を示しているが、方法400は、その順序に限定されるものではない。例えば、フローチャートにおいて連続して示された機能は、異なる順序で実行することもできるし、同時又は部分的に同時に実行することもできるし、それらの組み合わせで実行することもできる。幾つかの例では、
図4に関して本明細書において説明した機能は、
図1〜
図3及び
図5のうちの任意のものに関して本明細書において説明した機能と組み合わせて提供することができる。
【0064】
図5は、異なるSFWドメインにおいて動作するように構成されたパーティションの第1の論理プロセッサ及び第2の論理プロセッサのメモリを、そのパーティションのOSによる使用に利用可能にする一例示の方法500のフローチャートである。方法500の実行は、
図3のブレードシステム300を参照して以下で説明されるが、方法500の実行に適した他のシステム(例えば、ブレードシステム100又は200)を利用することができる。加えて、方法500の実施は、そのような例に限定されるものではない。
【0065】
方法500の505において、少なくともパーティション308のリセット後、命令322は、論理プロセッサ332によって実行されると、論理プロセッサ332を、SFWインスタンス321と関連付けられたSFWドメイン360の一部として動作するように構成することができる。また、405において、命令382は、論理プロセッサ342によって実行されると、論理プロセッサ342を、SFWインスタンス381と関連付けられた、SFWドメイン360と異なるSFWドメイン362の一部として動作するように構成することができる。幾つかの例では、SFWインスタンス381は、パーティション308をブートしてOS115を実行する命令を含みうる。
【0066】
510において、命令326は、論理プロセッサ332によって実行されると、パーティション構成情報354に基づいて、論理プロセッサ332が拡張論理プロセッサであると判断することができる。また、510において、命令386は、論理プロセッサ342によって実行されると、パーティション構成情報374に基づいて、論理プロセッサ342が計算論理プロセッサであると判断することができる。
【0067】
515において、命令324は、論理プロセッサ332によって実行されると、論理プロセッサ332と関連付けられたブレードデバイス330の利用可能なメモリ335を特定することができる。また、515において、命令384は、論理プロセッサ342によって実行されると、論理プロセッサ342と関連付けられたブレードデバイス340の利用可能なメモリ345を特定することができる。520において、命令324は、ブレードデバイス330のサービスプロセッサ250からアクセス可能なブレードデバイス330のサービスメモリ252に、特定されたメモリ335の記述356を記憶することができる。525において、サービスプロセッサ250は、記述356をブレードデバイス340のサービスプロセッサ270に提供することができる。530において、サービスプロセッサ270は、記述356をブレードデバイス340のサービスメモリ272に記憶することができる。このサービスメモリにおいて、記述356は、論理プロセッサ342からアクセス可能である。
【0068】
535において、命令388は、上記で説明したように、論理プロセッサ342によって実行されると、論理プロセッサ342、ブレードデバイス330の特定されたメモリ335、及びブレードデバイス340の特定されたメモリ345を、OS115による使用に利用可能にすることができる。540において、命令329は、論理プロセッサ332によって実行されると、OS115の実行が開始する前に、論理プロセッサ332をSMMに配置することができる。命令329は、上記で説明したように、ブレードデバイス330が拡張ブレードデバイスとして指定されているとの判断に応答して、論理プロセッサ332をSMMに入らせることができる。
【0069】
545において、パーティション308は、少なくとも論理プロセッサ342を用いたOS115の実行を開始することができる。例えば、パーティション308は、上記で説明したように、SFWインスタンス381を用いてOS115をブートし、そして、(例えば、上記で説明したように、OS115に提供されたACPIテーブルにおいて)論理プロセッサ342によってOS115に利用可能にされたパーティション308のリソースを用いたOS115の実行を開始することができる。そのような例では、論理プロセッサ332がOS115に利用不能である間、パーティション308は、少なくとも論理プロセッサ342並びに特定されたメモリ335及び345を用いてOS115を実行することができる。幾つかの例では、パーティション308は、パーティション308の追加のリソースを用いてOS115を同様に実行することができる。550において、論理プロセッサ332によって実行される命令329は、少なくとも論理プロセッサ342等のパーティション308の他の論理プロセッサを用いたOS115の実行中、論理プロセッサ332をSMMに維持することができる。幾つかの例では、命令329は、論理プロセッサ332が拡張論理プロセッサであるとの判断に応答して、OS115の実行中に論理プロセッサ332をSMMに維持することができる。
【0070】
555において、少なくとも論理プロセッサ342上で実行されるOS115は、OS115のアクティブ動作中に、(例えば、上記で説明したように、ノードコントローラ243及び233を介して)ブレードデバイス330の特定されたメモリ335にアクセスすることができる。そのような例では、OS115は、SMMに入ることもなく、それ以外に、OS115を実行する論理プロセッサのうちの任意のものにおけるOS115の動作をサスペンドすることもなく、特定されたメモリ335にアクセスすることができる。
【0071】
図5のフローチャートは、幾つかの機能の特定の遂行順序を示しているが、方法500は、その順序に限定されるものではない。例えば、フローチャートにおいて連続して示された機能は、異なる順序で実行することもできるし、同時又は部分的に同時に実行することもできるし、それらの組み合わせで実行することもできる。幾つかの例では、
図5に関して本明細書において説明した機能は、
図1〜
図4のうちの任意のものに関して本明細書において説明した機能と組み合わせて提供することができる。