(57)【要約】【課題】システムマネージメント機能を高速に実行可能なコンピュータシステム及びその制御方法を提供する。【解決手段】本発明に係るコンピュータシステムは、プロセッサコア１１〜１８のうちプロセッサコア１１についてマネージメントモードであるか否かが設定され、プロセッサコア１１は、マネージメントモードであると設定された場合には、マネージメント用プロセッサとしてマネージメントファームウェアを実行し、マネージメントモードではないと設定された場合には、他のプロセッサコアと同様にシステムのプロセッサの一部として動作を行う。また、メインプロセッサ１０のメインメモリコントローラ１９は、メインメモリ４０の領域のうち指定された一部のメモリ領域を、マネージメントモードであると設定されたプロセッサコア１１からのみアクセス可能な領域として設定する。【選択図】図１
2011181030.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコアとメインメモリコントローラとを有するメインプロセッサと、マネージメントコントローラの制御部と、メインメモリと、を備え、
前記複数のプロセッサコアのうち所定のプロセッサコアについてマネージメントモードであるか否かが設定され、
前記所定のプロセッサコアは、当該所定のプロセッサコアが前記マネージメントモードであると設定された場合には、マネージメント用プロセッサとしてマネージメントファームウェアを実行し、前記マネージメントモードではないと設定された場合には、他のプロセッサコアと同様にシステムのプロセッサの一部として動作を行い、
前記メインプロセッサの前記メインメモリコントローラは、
前記メインメモリの領域のうち指定された一部のメモリ領域を、前記マネージメントモードであると設定された前記所定のプロセッサコアからのみアクセス可能な領域として設定する
ことを特徴とするコンピュータシステム。
【請求項２】
前記コンピュータシステムは、
前記メインプロセッサと接続され、かつ、前記マネージメントファームウェアを格納するマネージメントＲＯＭを更に備える
ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記メインメモリコントローラは、
前記メインメモリの領域のうち指定された一部のメモリ領域を、前記マネージメントモードであると設定された前記所定のプロセッサコアからのみアクセス可能な領域として設定すると共に、当該指定された一部のメモリ領域以外のメモリ領域を、前記マネージメントモードであると設定された前記所定のプロセッサコアからアクセス不可な領域として設定する
ことを特徴とする請求項１又は２に記載のコンピュータシステム。
【請求項４】
前記所定のプロセッサコアは、ＡＣ電源で動作する
ことを特徴とする請求項１乃至３いずれか１項に記載のコンピュータシステム。
【請求項５】
複数のプロセッサコアとメインメモリコントローラとを有するメインプロセッサと、マネージメントコントローラの制御部と、メインメモリと、を備え、前記複数のプロセッサコアのうち所定のプロセッサコアについてマネージメントモードであるか否かが設定されるコンピュータシステムの制御方法であって、
前記所定のプロセッサコアが前記マネージメントモードであると設定された場合に、マネージメント用プロセッサとしてマネージメントファームウェアを実行するステップと、
前記所定のプロセッサコアが前記マネージメントモードではないと設定された場合に、他のプロセッサコアと同様にシステムのプロセッサの一部として動作を行うステップと、
前記メインプロセッサの前記メインメモリコントローラが、
前記メインメモリの領域のうち指定された一部のメモリ領域を、前記マネージメントモードであると設定された前記所定のプロセッサコアからのみアクセス可能な領域として設定するステップと、を有する
ことを特徴とするコンピュータシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム及びその制御方法に関する。
【背景技術】
【０００２】
マネージメントコントローラを用いたコンピュータシステムが提案されている。図３を参照して、本発明に関連する技術を説明する。図３は、マネージメントコントローラを用いたコンピュータシステムの構成図である。図３に示すコンピュータシステムは、複数のコア１１１〜１１８とメインメモリコントローラ１１９を有するメインプロセッサ１１０と、メインメモリ１２０と、マネージメントメモリ１３０と、マネージメントＲＯＭ１４０と、マネージメントコントローラ（ＭＣ：Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）１５０と、サウスブリッジ１６０と、ＢＩＯＳ（Ｂａｓｉｃ  ＩＯ  Ｓｙｓｔｅｍ）ＲＯＭ１７０と、を含んで構成されている。
【０００３】
図３に示すように、ＭＣ１５０は、マネージメントメモリコントローラ（ＭＭＣ：Ｍａｎａｇｅｍｅｎｔ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）１５１と、マネージメントＣＰＵ（ＭＣＰ）１５２と、コントロールブロック１５３と、を搭載している。ＭＣＰ１５２は、マネージメントファームウェアを動作させるための低速なＣＰＵである。マネージメントファームウェアは、ＭＣＰ１５２からアクセス可能な小容量のマネージメントメモリ１３０を使用して動作していた。
【０００４】
また、本発明に関連する技術として、特許文献１乃至４に記載された技術がある。例えば特許文献１〜３には、マネージメントコントローラを利用するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０８３８４１号公報
【特許文献２】特開２００８−２０４３１５号公報
【特許文献３】特開平０４−２５８０７２号公報
【特許文献４】特開２００７−３３４７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、図３に示したようなマネージメントコントローラを用いたコンピュータシステムに関して、マネージメントコントローラ（ＭＣ１５０）の役割が増加するにつれて、低速のＣＰＵ（ＭＣＰ１５２）と小容量のメモリ（マネージメントメモリ１３０）では、満足のいく十分な性能を発揮することができなくなってきた。
一方で、メインプロセッサ１１０についてはマルチコア化が進んでいるものの、全てのプロセッサコアの資源を十分に活用しているとは言えない場合も多かった。
【０００７】
また、上述した特許文献１〜４のいずれに開示された技術においても、非力なマネージメントＣＰＵで低速で行われていたシステムマネージメント機能を高速に実行する手段については開示されていないものである。
【０００８】
従って本発明の目的は、システムマネージメント機能を高速に実行可能なコンピュータシステム及びその制御方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明に係るコンピュータシステムは、複数のプロセッサコアとメインメモリコントローラとを有するメインプロセッサと、マネージメントコントローラの制御部と、メインメモリと、を備え、前記複数のプロセッサコアのうち所定のプロセッサコアについてマネージメントモードであるか否かが設定され、前記所定のプロセッサコアは、当該所定のプロセッサコアが前記マネージメントモードであると設定された場合には、マネージメント用プロセッサとしてマネージメントファームウェアを実行し、前記マネージメントモードではないと設定された場合には、他のプロセッサコアと同様にシステムのプロセッサの一部として動作を行い、前記メインプロセッサの前記メインメモリコントローラは、前記メインメモリの領域のうち指定された一部のメモリ領域を、前記マネージメントモードであると設定された前記所定のプロセッサコアからのみアクセス可能な領域として設定することを特徴とするものである。
【００１０】
また、本発明に係るコンピュータシステムの制御方法は、複数のプロセッサコアとメインメモリコントローラとを有するメインプロセッサと、マネージメントコントローラの制御部と、メインメモリと、を備え、前記複数のプロセッサコアのうち所定のプロセッサコアについてマネージメントモードであるか否かが設定されるコンピュータシステムの制御方法であって、前記所定のプロセッサコアが前記マネージメントモードであると設定された場合に、マネージメント用プロセッサとしてマネージメントファームウェアを実行するステップと、前記所定のプロセッサコアが前記マネージメントモードではないと設定された場合に、他のプロセッサコアと同様にシステムのプロセッサの一部として動作を行うステップと、前記メインプロセッサの前記メインメモリコントローラが、前記メインメモリの領域のうち指定された一部のメモリ領域を、前記マネージメントモードであると設定された前記所定のプロセッサコアからのみアクセス可能な領域として設定するステップと、を有することを特徴とするものである。
【発明の効果】
【００１１】
本発明によれば、システムマネージメント機能を高速に実行可能なコンピュータシステム及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係るコンピュータシステムの構成図である。
【図２】実施の形態１に係るコンピュータシステムの動作フロー図である。
【図３】本発明に関連するコンピュータシステムの構成図である。
【発明を実施するための形態】
【００１３】
まず、本発明の実施の形態について説明する前に、本発明の原理及び特徴について説明する。
本発明に係るコンピュータシステムは、複数のプロセッサコアとメインメモリコントローラとを有するメインプロセッサと、マネージメントコントローラの制御部としてのマネージメントコントローラ（ＭＣ）のコントロールブロック（ＣＢ）と、メインメモリと、を少なくとも備えている。そして、複数のプロセッサコアのうち所定のプロセッサコア（ＭＣコア）についてマネージメントモードであるか否かが設定される。
【００１４】
所定のプロセッサコアは、その所定のプロセッサコアがマネージメントモードであると設定された場合には、マネージメント用プロセッサとしてマネージメントファームウェアを実行する。所定のプロセッサコアは、マネージメントモードではないと設定された場合には、他のプロセッサコアと同様にシステムのプロセッサの一部として動作を行う。
【００１５】
また、メインプロセッサのメインメモリコントローラは、メインメモリの領域のうち指定された一部のメモリ領域を、マネージメントモードであると設定された所定のプロセッサコアからのみアクセス可能な領域として設定する。
【００１６】
このように、マネージメントコントローラプロセッサ（ＭＣＰ）の代替として、メインコアプロセッサの一部のプロセッサコアを使用することで、非力なＭＣＰで低速で行われていたシステムマネージメント機能を高速に実行する手段を提供する。
【００１７】
実施の形態１．
以下、図面を参照して本発明の実施の形態１について説明する。
＜構成＞
図１は、本実施の形態にかかるコンピュータシステムのシステム構成図である。
図１に示すように、コンピュータシステムは、メインプロセッサ１０と、マネージメントコントローラのコントロールブロック（ＭＣ（ＣＢ））２０と、マネージメントファームウェアを格納しているマネージメントＲＯＭ３０と、メインメモリ４０と、ＢＩＯＳ（Ｂａｓｉｃ  ＩＯ  Ｓｙｓｔｅｍ）を格納するＢＩＯＳＲＯＭ５０と、サウスブリッジ６０と、を備えている。
【００１８】
ＭＣ（ＣＢ）２０と、マネージメントＲＯＭ３０と、メインメモリ４０と、サウスブリッジ６０と、が、バスを介してメインプロセッサ１０に接続されている。メインメモリ４０が、メインプロセッサ１０内のメインメモリコントローラ１９に接続されている。ＢＩＯＳＲＯＭ５０が、サウスブリッジ６０を介してメインプロセッサ１０に接続されている。
【００１９】
メインプロセッサ１０は、マネージメントコントローラプロセッサ（ＭＣＰ）の代替になり得るコア（ＭＣコア）１１と、それ以外の複数のコア１２〜１８と、メインメモリコントローラ１９と、を備えている。コア（ＭＣコア）１１と、それ以外の複数のコア１２〜１８と、が、システムバスを介してメインメモリコントローラ１９に相互に接続されている。尚、ＭＣコア１１と、ＭＣ（ＣＢ）２０と、マネージメントＲＯＭ３０と、の相互間を結ぶバスについては、コンピュータシステムのＤＣ電源がオフの状態においても、ＡＣ電源がオンされた状態で動作可能である。
【００２０】
メインプロセッサ１０が有する複数のコアのうち、ＭＣコア１１については、マネージメントモードの設定が存在する。マネージメントモードとは、ＭＣコア１１の振る舞いに関する設定である。マネージメントモードがオンの時には、ＭＣコア１１は、マネージメント用プロセッサとしてマネージメントファームウェアを実行する。マネージメントモードがオフの場合には、ＭＣコア１１は、他のコアと同様にシステムのプロセッサの一部としての動作を行う。尚、ＭＣコア１１については、ＡＣ電源がオンされたデフォルト時の設定では、マネージメントモードに設定されている。
【００２１】
ＭＣコア１１についてマネージメントモードがオンの時には、メインプロセッサ１０への割り込みは、ＭＣコア１１に対して伝播されない。
【００２２】
メインプロセッサ１０の各コアは、キャッシュをそれぞれ含んでいる。マネージメントモードの設定時（マネージメントモードがオンの時）には、ＭＣコア１１のキャッシュは、ローカルな一時メモリとして使用可能である。
【００２３】
さらに、ＭＣコア１１を含む各コアには全コア共通のアドレス空間にマップされたローカルなメモリマップドレジスタがそれぞれ存在し、各コアは、互いに他のコアとの間で通信が可能である。
【００２４】
メインメモリコントローラ１９は、メインメモリ４０のメモリ領域について、指定された一部のメモリ領域をＭＣコア１１からのみアクセス可能な領域として設定することができ、また、逆にこの領域以外の部分を、ＭＣコア１１からはアクセスできない領域として設定することも可能である。
【００２５】
ＭＣ（ＣＢ）２０は、システムマネージメントの機能をハード的に実現する部分に相当し、マネージメントのための各種コントローラを含んでいる。また、ＭＣ（ＣＢ）２０は、メインプロセッサ１０のリセット状態の解除を制御する機能を有している。リセットとは、プロセッサコアを初期状態に戻すことをいう。本実施の形態では、各プロセッサコアは、リセットが解除されるまでの間は常に初期状態となる。例えば、ＤＣ電源が投入された後に各プロセッサコアがＢＩＯＳコードを実行することを抑止するために、ＭＣコア１１が、信号線等を利用して各プロセッサコアを「リセット」状態にする。ＭＣコア１１は、自身の初期化が完了した後、他の各プロセッサコアがＢＩＯＳコードを実行しても問題無い状態となった場合に、「リセット」信号を解除する。
【００２６】
マネージメントＲＯＭ３０は、システムマネージメントの機能をソフトウエア的に実現するためのマネージメントファームウェアを格納している。マネージメントファームウェアには、ＭＣ（ＣＢ）２０の初期化や設定を行うためのコードや、リモートメディア等のシステムマネージメント機能をソフトウエアでエミュレーションする機能のコード等が含まれている。
【００２７】
メインメモリ４０と、サウスブリッジ６０と、ＢＩＯＳＲＯＭ５０とは、従来のシステムと同様の機能を有しているため、ここではその詳細な説明を省略する。
【００２８】
＜動作＞
次に、図２を参照して、図１に示したシステムの動作の一例を説明する。
まず、コンピュータシステムのＡＣ電源が投入されると、メインプロセッサ１０のコアのうち、ＭＣコア１１のみについてリセット状態が解除される。ＭＣコア１１は、マネージメントＲＯＭ３０から命令フェッチを行い、動作を開始する。
【００２９】
Ｓ１０１：マネージメントＲＯＭ３０からマネージメントファームウェアが読み出されて、ＭＣコア１１上で動作する。マネージメントファームウェアは、最初に、ＭＣコア１１のキャッシュの初期化を行い、一時的なローカルメモリとして使用できるように設定を行う。
【００３０】
Ｓ１０２、Ｓ１０３：次に、マネージメントファームウェアは、ＭＣ（ＣＢ）２０の初期化を行い、最低限のシステムマネージメントの機能動作を行えるようにする。そして、ＭＣ（ＣＢ）２０は、ＤＣ電源の投入準備を整えた後、ＭＣコア１１以外のコア１２〜１８のリセット状態を解除するため、ＭＣコア１１が有しているリセット解除タイマの設定を行う。尚、タイマは、ＭＣ（ＣＢ）が有する機能の一つであり、タイマ設定後、タイムアウトが発生するまでの間、コアのリセット状態を維持する。
【００３１】
Ｓ１０４：ＭＣ（ＣＢ）２０は、ＭＣコア１１が、マネージメントモードであるか否かを判定する。Ｓ１０４での判定の結果、マネージメントモードがオフの場合（Ｓ１０４でＮＯの場合）には、ＭＣコア１１は、マネージメントコントローラとして動作せず、他のコアと同様にして動作する。
【００３２】
Ｓ１０５、Ｓ１０６：判定の結果、マネージメントモードがオンの場合（Ｓ１０４でＹＥＳの場合）には、ＭＣコア１１は、マネージメントコントローラとして動作する。このため、ＭＣコア１１上で動作するマネージメントファームウェアは、マネージメントメモリとして必要なメモリ容量をローカルメモリマップドレジスタに書き込み、メモリ初期化完了待ちのスレッドを開始する。これにより、ＭＣコア１１は、ＭＣコア１１以外の他のコア１２〜１８から通知されるメモリ初期化完了通知の待ち状態となる。尚、後述するように、マネージメントファームウェアは、マネージメントメモリ１３０として必要なメモリ容量を、システムＢＩＯＳに通知する。
【００３３】
Ｓ１０７：また、ＡＣ電源が投入された後に、コンピュータシステムのＤＣ電源が投入されると、メインプロセッサ１０のコアのうち、ＭＣコア１１以外の他のコア１２〜１８は、リセット状態が解除されたか否かを判定する。判定の結果、リセットが解除されていない場合（Ｓ１０７でＮＯの場合）には、リセットが解除されるまでの間、待ち状態となる（初期状態のままとなる）。
【００３４】
Ｓ１０８：判定の結果、リセットが解除された場合（Ｓ１０７でＹＥＳの場合）には、リセット状態が解除されたコア１２〜１８は、ＢＩＯＳＲＯＭ５０に格納されているＢＩＯＳコードを実行する。
【００３５】
Ｓ１０９：コア１２〜１８は、ＭＣコア１１のメモリマップドレジスタから、ＭＣコア１１が必要とするメモリ容量を読み出す。
【００３６】
Ｓ１１０：コア１２〜１８は、メインメモリコントローラ１９を用いて、メモリを初期化する。メインメモリコントローラ１９は、メモリの初期化時には、ＭＣコア１１専用の領域を確保する。尚、コア１２〜１８は、ＭＣコア１１がマネージメントモードでない場合には、該当メモリ容量の格納領域は設定されていないため、ＭＣコア１１用のメモリ確保を行わない。
【００３７】
Ｓ１１１：ＭＣコア１１がマネージメントモードである場合には、コア１２〜１８は、メモリ初期化の完了をＭＣコア１１に対して通知する。
【００３８】
メモリ初期化完了通知を受け取ったＭＣコア１１は、割り当てられたメモリを使用し、ＦＷコードを実行する（すなわち、マネージメントファームウェアの実行を継続する）。ここで、メインメモリコントローラ１９が有する機能のために、ＭＣコア１１以外の他のコア１２〜１８上で動作するＯＳは、ＭＣコア１１に割り当てられたメモリの領域を見ることができない。このため、ＯＳ起動後においても、ＭＣコア１１を用いて、ファームウェアを動作させることが可能である。
【００３９】
一方で、ＭＣコア１１についてマネージメントモードがオフに設定されていた場合（Ｓ１０４でＮＯの場合）には、ＭＣコア１１は、最低限のシステムマネージメントの機能動作を行い、リセット状態の解除タイマを設定した後、他のコアと同様にして、リセット（状態の解除の）待ち状態へと移行する。ＭＣ（ＣＢ）２０がリセット状態の解除を行った後は、他のコアと同様にして、システムＢＩＯＳコードを実行する。
【００４０】
以上説明したように、本実施の形態１によれば、マネージメントコントローラプロセッサ（ＭＣＰ）の代替として、メインコアプロセッサの一部のプロセッサコアを使用することで、非力なＭＣＰで低速で行われていたシステムマネージメント機能を高速に実行することができる。
【００４１】
尚、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００４２】
１０  メインプロセッサ、
１１  コア（ＭＣコア）、
１２〜１８  コア、
１９  メインメモリコントローラ、
２０  マネージメントコントローラのコントロールブロック（ＭＣ（ＣＢ））、
３０  マネージメントＲＯＭ、
４０  メインメモリ、
５０  ＢＩＯＳＲＯＭ、
６０  サウスブリッジ、
１１０  メインプロセッサ、
１１１〜１１８  コア、
１１９  メインメモリコントローラ、
１２０  メインメモリ、
１３０  マネージメントメモリ、
１４０  マネージメントＲＯＭ、
１５０  マネージメントコントローラ（ＭＣ）、
１５１  マネージメントメモリコントローラ（ＭＭＣ）、
１５２  マネージメントＣＰＵ（ＭＣＰ）、
１５３  コントロールブロック、
１６０  サウスブリッジ、
１７０  ＢＩＯＳＲＯＭ
【図１】
2011181030.tif 000003
【図２】
2011181030.tif 000004
【図３】
2011181030.tif 000005