(57)【要約】【課題】管理コントローラを用いたコンピューティングデバイス中の熱管理の方法を提供する。【解決手段】仮想管理コントローラ307を介して、管理コントローラ304につながれていない感熱性コンポーネント308のモニタリング情報を取得する。モニタリング情報は、感熱性コンポーネント308の温度情報を含むことができる。また、仮想管理コントローラ307を介して、管理コントローラ304のシステムインタフェース経由でモニタリング情報を管理コントローラ304に送信し、管理コントローラ304を介して、管理コントローラ304につながれているコンピューティングデバイスの熱管理コンポーネントの動作を調整する。【選択図】図４
2020052997.tif 000002
【特許請求の範囲】
【請求項１】
管理コントローラを用いたコンピューティングデバイス中の熱管理の方法であって、以下の各ステップを含む方法：
仮想管理コントローラを介して、前記管理コントローラにつながれていない前記コンピューティングデバイスの１つまたは複数の感熱性コンポーネントのモニタリング情報を取得することであって、前記モニタリング情報が、前記１つまたは複数の感熱性コンポーネントの温度情報を含む、取得すること、
前記仮想管理コントローラを介して、前記管理コントローラのシステムインタフェース経由で前記モニタリング情報を前記管理コントローラに送信すること、ならびに
前記管理コントローラを介して、前記管理コントローラにつながれている前記コンピューティングデバイスの少なくとも１つの熱管理コンポーネントの動作を調整すること。
【請求項２】
前記１つまたは複数の感熱性コンポーネントそれぞれについての前記モニタリング情報が、識別情報を含む、請求項１に記載の方法。
【請求項３】
前記１つまたは複数の感熱性コンポーネントそれぞれについての前記モニタリング情報が、スローダウン温度、シャットダウン温度、および現在温度を含む、請求項１に記載の方法。
【請求項４】
前記１つまたは複数の感熱性コンポーネントのうちの少なくとも１つが、グラフィックスプロセッシングユニットを備える、請求項１に記載の方法。
【請求項５】
仮想ベースボード管理コントローラマネージャによって、２つ以上の仮想管理コントローラから前記管理コントローラで受信されたメッセージを管理することをさらに含む、請求項１に記載の方法。
【請求項６】
管理コントローラを用いたコンピューティングデバイスの熱管理のためのコンピュータシステムであって、
１つまたは複数の感熱性コンポーネントと、
システムインタフェースを備えた管理コントローラであって、前記１つまたは複数の感熱性コンポーネントにつながれていない、管理コントローラと、
前記管理コントローラにつながれている少なくとも１つの熱管理コンポーネントと、
前記管理コントローラにつながれていない前記コンピューティングデバイスの前記１つまたは複数の感熱性コンポーネントのモニタリング情報であって、前記１つまたは複数の感熱性コンポーネントの温度情報を含む、モニタリング情報を取得し、
前記管理コントローラの前記システムインタフェース経由で前記モニタリング情報を前記管理コントローラに送信し、
前記管理コントローラにつながれている前記コンピューティングデバイスの前記少なくとも１つの熱管理コンポーネントの動作を調整する、
ように構成された仮想管理コントローラと、
を備えた、コンピュータシステム。
【請求項７】
前記１つまたは複数の感熱性コンポーネントそれぞれについての前記モニタリング情報が、識別情報を含む、請求項６に記載のコンピュータシステム。
【請求項８】
前記１つまたは複数の感熱性コンポーネントそれぞれについての前記モニタリング情報が、スローダウン温度、シャットダウン温度、および現在温度を含む、請求項６に記載のコンピュータシステム。
【請求項９】
前記１つまたは複数の感熱性コンポーネントのうちの少なくとも１つが、グラフィックスプロセッシングユニットを備える、請求項６に記載のコンピュータシステム。
【請求項１０】
２つ以上の仮想管理コントローラから前記管理コントローラで受信されたメッセージを管理するように構成された仮想ベースボード管理コントローラマネージャをさらに備えた、請求項６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングデバイス内の個々の電子ユニットから温度情報を受信する仮想ベースボード管理コントローラ（virtual ＢＭＣ）を確立するためのコンピュータシステムおよび不揮発性コンピュータ可読媒体に関する。
【背景技術】
【０００２】
コンピュータシステムを構成するさまざまなコンポーネントは通常、性能プロトコルまたは規格により規定された広範なパラメータ内で動作する。たとえば、コンピュータシャーシ内の温度は、システムが所定の温度測定値を上回る可能性があるタイミングを検出するためにモニタリングされることが多い。コンピュータシステム内でモニタリングされる可能性がある情報の他の形態としては、システムのベースボード上に位置付けられた半導体コンポーネントに関連付けられた電圧、ベースボード上またはシステムシャーシ内に位置付けられた冷却ファンの速度（たとえば、ｒｐｍ）、およびハードディスクドライブまたは光学ドライブ内のスピンドルモータの速度が挙げられるが、これらに限定されない。
【０００３】
コンピュータシステムおよびその構成コンポーネントに関連付けられた、健全性、動作、および性能関連パラメータを検出するために、さまざまな種類のセンサが用いられている。これらのセンサとしては、サーモスタット、電圧メータ、およびタコメータが挙げられる。
【０００４】
コンピュータシステムは通常、１つまたは複数の管理モジュールを採用して、システム内の動作および性能関連パラメータを測定するさまざまなセンサにより検知された情報の収集および解析を支援する。これらの管理モジュールは、ソフトウェアまたはハードウェアコンポーネントのいずれであってもよいが、通常は、サービスプロセッサにより実装されたハードウェアおよびソフトウェアコンポーネントの両方を含む。このような管理モジュールとして、「ベースボード管理コントローラ」（ＢＭＣ）と称するものがある。
【０００５】
ＢＭＣは、コンピュータシステムのベースボード（当業界では「マザーボード」とも称されている）に組み込まれたマイクロコントローラ（たとえば、特許文献１開示のＢＭＣ）であり、さまざまなセンサにより検知された情報をＢＭＣが解析用に受信する特定数のコンタクトピンを有する。この解析を実行するために、ＢＭＣは、ファームウェアによって、システムのモニタリングおよびリカバリに関連する手順を実施するようにプログラムされている。
【０００６】
このファームウェアにより、ＢＭＣは、コンピュータシステム内で検知されたさまざまな動作および性能関連パラメータをモニタリングするようにプログラムされている。また、ＢＭＣは、この情報を解析して、その発生を通常は「イベント」と称する予想または推奨動作範囲からの逸脱を検知パラメータのいずれかが現在起こしているかどうかを判定するようにプログラムされている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第８，４８９，２５０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
いくつかのコンピュータシステムにおいて、ＢＭＣは、ハードウェアコンポーネントと直接通信できない。このような場合、ハードウェアコンポーネントは、性能不足または突発的故障の原因となる所定閾値レベルへの温度の接近タイミングを検出する統合システムを有していてもよい。ハードウェアコンポーネントの統合システムは、コンピュータシステム内のファンシステムに接続されていないため、ファンシステムが非効率となる。したがって、ＢＭＣとハードウェアコンポーネントとの接続を確立するコンピュータシステムを提供することが求められている。
【０００９】
本発明により、管理コントローラを用いたコンピューティングデバイス中の熱管理の方法が提供される。この方法は、仮想管理コントローラを介して、管理コントローラにつながれていない感熱性（thermally sensitive）コンポーネントのモニタリング情報（monitoring information）を取得することを含む。モニタリング情報は、感熱性コンポーネントの温度情報を含んでもよい。また、この方法は、仮想管理コントローラを介して、管理コントローラのシステムインタフェース経由でモニタリング情報を管理コントローラに送信することを含む。最後に、この方法は、管理コントローラを介して、管理コントローラにつながれているコンピューティングデバイスの熱管理（thermal management component）コンポーネントの動作を調整することを含む。
【００１０】
本発明のいくつかの実施形態において、感熱性コンポーネントについてのモニタリング情報は、識別情報を含む。さらに、感熱性コンポーネントについてのモニタリング情報は、スローダウン温度（slowdown temperature）、シャットダウン温度（shutdown temperature）、および現在温度（current temperature）を含むことができる。
【００１１】
いくつかの実施形態において、感熱性コンポーネントは、グラフィックスプロセッシングユニットを備えることができる。また、２つ以上の仮想管理コントローラから管理コントローラで受信されたメッセージを管理するために、仮想ベースボード管理コントローラマネージャを実装することができる。
【００１２】
いくつかの実施形態において、管理コントローラは、ベースボード管理コントローラとすることができる。さらに、熱管理コンポーネントは、ファンデバイスとすることができる。また、仮想管理コントローラは、仮想ベースボード管理コントローラとすることができる。
【００１３】
また、本発明により、管理コントローラを用いたコンピューティングデバイスの熱管理のためのコンピュータシステムが提供される。このコンピュータシステムは、感熱性コンポーネント、具体的には、システムインタフェースを備えた管理コントローラを備えることができる。管理コントローラは、感熱性コンポーネントにつながれていない構成とすることができる。
【００１４】
また、このシステムは、管理コントローラにつながれている熱管理コンポーネントおよび仮想管理コントローラを備えることもできる。仮想管理コントローラは、管理コントローラにつながれていない感熱性コンポーネントのモニタリング情報を取得するように構成することができる。
【００１５】
いくつかの実施形態において、モニタリング情報は、感熱性コンポーネントの温度情報を含むことができる。また、仮想管理コントローラは、管理コントローラのシステムインタフェース経由でモニタリング情報を管理コントローラに送信するように構成することができる。最後に、仮想管理コントローラは、管理コントローラにつながれている熱管理コンポーネントの動作を調整するように構成することができる。
【００１６】
また、本発明により、少なくとも１つのプロセッサにより実行可能な命令を格納する不揮発性コンピュータ可読媒体も提供される。格納された命令は、仮想管理コントローラを介して、管理コントローラにつながれていない感熱性コンポーネントのモニタリング情報を取得することを含むことができる。モニタリング情報は、感熱性コンポーネントの温度情報を含むことができる。また、この格納された命令は、仮想管理コントローラを介して、管理コントローラのシステムインタフェース経由でモニタリング情報を管理コントローラに送信することも含む。最後に、格納された命令は、管理コントローラを介して、管理コントローラにつながれているコンピューティングデバイスの熱管理コンポーネントの動作を調整することを含む。
【００１７】
本開示の付加的な特徴および利点については、以下の説明において記述するが、その一部は、該説明により明らかとなるか、または、本明細書に開示の原理の実行により教示することができる。本開示の特徴および利点は、特に添付の特許請求の範囲に挙げる器具および組み合わせによって実現および取得することができる。本開示の上記および他の特徴については、以下の説明および添付の特許請求の範囲によって完全に明らかとなるか、または、本明細書に記載の原理の実行により教示することができる。
【００１８】
上掲の開示内容ならびにその利点および特徴を得ることができる様態を説明するために、添付の図面に示す具体例を参照して、上述の原理に関するより詳細な説明を与える。これらの図面は、本開示の例示的な態様を示しているに過ぎず、その範囲を限定するものと考えるべきではない。以下の図面を用いて、これらの原理をさらに具体的かつ詳細に記述し説明する。
【図面の簡単な説明】
【００１９】
【図１】従来のコンピュータシステムを模式的に示した図である。
【図２】ＧＰＵが管理バスによるＢＭＣとの通信を行えない状態の、図１の従来のコンピュータシステムを模式的に示した図である。
【図３】ＧＰＵがＢＭＣとの直接通信を行えない場合の、ＧＰＵ、ＢＭＣ、およびファン性能を模式的に表した図である。
【図４】本開示の特定の実施形態に係る、スタック２００を模式的に示した図である。
【図５】本開示の特定の実施形態に係る、スタック３００を模式的に示した図である。
【図６】本開示の一実施形態に係る、ＧＰＵ、仮想ＢＭＣ、物理ＢＭＣ、およびファン性能を模式的に表した図である。
【発明を実施するための形態】
【００２０】
添付の図面を参照して本発明を説明するが、全図面を通して、同様または同等の要素を示すために同じ参照番号を使用する。図面は、縮尺どおりには描かれておらず、本発明を説明するものに過ぎない。以下、説明用の例示的な用途を参照して、本発明の複数の態様を説明する。多くの具体的詳細、関係、および方法が、本発明の十分な理解を提供するために示されていることが了解されるものとする。ただし、当業者であれば、具体的詳細のうちの１つまたは複数なく、あるいは、他の方法により、本発明を実施できることが容易に認識されよう。他の例では、本発明がわかりにくくならないように、周知の構造または動作を詳細に示していない。本発明は、作用またはイベントに関する図示の順序に限定されない。いくつかの作用が異なる順序で発生すること、および／または他の作用もしくはイベントと同時に発生することも考えられるためである。さらに、本発明に係る方法論の実現に、図示の作用またはイベントがすべて必要なわけではない。
【００２１】
以上を考慮して、本願は、管理コントローラを用いたコンピューティングデバイス中の熱管理のための方法およびコンピュータシステムを教示する。この方法は、仮想管理コントローラを介して、管理コントローラにつながれていない感熱性コンポーネントのモニタリング情報を取得することを含む。モニタリング情報は、感熱性コンポーネントの温度情報を含むことができる。また、この方法は、仮想管理コントローラを介して、管理コントローラのシステムインタフェース経由でモニタリング情報を管理コントローラに送信することも含む。最後に、この方法は、管理コントローラを介して、管理コントローラにつながれているコンピューティングデバイスの熱管理コンポーネントの動作を調整することを含む。
【００２２】
図１は、従来のコンピュータシステム１００を模式的に示している。コンピュータシステム１００は、中央演算処理装置（ＣＰＵ）１０７を有する。ＣＰＵ１０７は、コンピュータシステム１００の動作に必要な算術および論理演算を実行する標準的な中央演算処理プロセッサである。ＣＰＵ１０７は、グラフィックスプロセッシングユニット（ＧＰＵ）１０８に接続することができる。多くの電気コンポーネントと同様に、ＧＰＵ１０８は、動作中に熱を放出する。このため、コンピュータシステム１００は、ＧＰＵ１０８が所定温度に達した後にＧＰＵ１０８を冷却するためのファン１０６を設けている。
【００２３】
このような判定、すなわちＧＰＵ１０８が所定温度を超えているかどうかの判定は、ベースボード管理コントローラ（ＢＭＣ）１０４により行われる。特定の実施形態において、ＧＰＵ１０８は、ホストコンピュータシステム１００の管理バス１３０と通信して、ＧＰＵの健全性、動作、および性能状態に関する情報をＢＭＣ１０４に提供することができる。このような情報は、ＧＰＵ電圧および温度を含むことができる。
【００２４】
各ＧＰＵ１０８は、たとえば管理バス１３０を通じて、電気コンポーネントの健全性、動作、および性能関連パラメータを測定するセンサ（図示せず）に接続することができる。この情報は、管理バス１３０によって、ＢＭＣ１０４に送信することができる。また、ＢＭＣ１０４は、管理バス１３０によって、ファン１０６に通信可能に結合され、ファン１０６全体の機能を制御する。
【００２５】
バス上の通信を開始するコンポーネントをマスターと称し、通信が送られるコンポーネントをスレーブと称する。ＢＭＣコンポーネント１０４は通常、管理バス１３０上のマスターとして機能するものの、他の状況ではマスターまたはスレーブのいずれかとしても機能してもよい。
【００２６】
管理バス１３０によってＢＭＣ１０４に通信可能に接続されたさまざまなコンポーネントはそれぞれ、スレーブアドレスを用いてアドレス指定することができる。管理バス１３０は、管理バス１３０に連通可能に接続することもできる１つまたは複数のコンポーネントからのさまざまな健全性、動作、および性能関連パラメータを要求および／または受信するようにＢＭＣ１０４が使用する。
【００２７】
図１において、管理バス１３０は、ＧＰＵ１０８（およびその温度センサ（図示せず））ならびにＣＰＵファン１０６に対してＢＭＣ１０４を通信可能に接続することにより、ＢＭＣ１０４がこれらのコンポーネントの動作をモニタリングおよび／または制御するための手段を提供する。
【００２８】
管理バス１３０は通常、タコメータ、熱センサ、電圧メータ、電流メータ、ならびにデジタルおよびアナログセンサを含むことができる。特定の実施形態において、管理バス１３０は、Ｉ２Ｃである。
【００２９】
コンピュータシステム１００は、Ｉ２Ｃバスを用いたＧＰＵ１０８とＢＭＣ１０４との直接接続を例示しているものの、当業界の利用可能なすべてのＧＰＵがＩ２Ｃ温度信号のＢＭＣ１０４への送信に対応可能なわけではないことに留意することが重要である。
【００３０】
図２は、ＧＰＵ１０８が管理バス１３０によるＢＭＣ１０４との通信を行えない従来のコンピュータシステム１００を模式的に示している。この場合、ＢＭＣ１０４は、ＧＰＵ１０８の温度情報を受信することができない。一部のＧＰＵがＩ２Ｃ温度信号をＢＭＣに送信するように構成されていないため、ＢＭＣは、ＧＰＵの温度情報を受信することができない。ＧＰＵが温度情報をＢＭＣ１０４に受け渡せないことから、ＧＰＵ１０８は、ファン１０６のファン速度を効果的に制御することができない。結果として、ＧＰＵ１０８は、それぞれ自体の評価を実行して減速または遮断を行わざるをえない。
【００３１】
図３Ａおよび図３Ｂは、ＧＰＵ１０８がＢＭＣ１０４につながれていない、ＧＰＵ、ＢＭＣ、およびファン性能に関する先行技術を模式的に表している。ＧＰＵ１０８がＢＭＣ１０４につながれていない場合、ＧＰＵ１０８は、ＢＭＣ１０４と直接通信することができない。ＧＰＵ１０８がＢＭＣ１０４と通信できない場合、ＢＭＣ１０４は、周囲温度を判定する内部の温度センサに依拠せざるをえない。
【００３２】
図３Ａにおいて、ＧＰＵ１０８は、８５℃という所定の減速閾値温度を有することができる。また、ＧＰＵ１０８は、８９℃という所定の遮断閾値温度を有することもできる。図３Ａの例示を目的として、ＧＰＵ１０８の現在温度は、８４℃とすることができ、９７％の利用率でＧＰＵが動作していることを示す。この場合、ＧＰＵ１０８は、過熱を回避しようとして性能を減速させる閾値温度に近づいている。さらに、ＧＰＵ１０８の温度が８９℃を超えるようなことがあると、ＧＰＵ１０８は、自動的に遮断して、いかなる突発的損傷をも防止することになる。
【００３３】
ＢＭＣ１０４が検出する周囲温度は、３２℃のみであることに留意するものとする。この周囲温度は、ＧＰＵ１０８の温度の影響を受けていてもよいし、受けていなくてもよい。ＢＭＣ１０４は、周囲温度が所定の閾値を超える場合にのみ高速で動作するように、ファン１０６に通知することになる。これは、ＧＰＵ温度とは無関係である。ファン１０６が６０％でしか動作していないのに対して、ＧＰＵは、８５℃という所定の減速閾値温度に近づいている。
【００３４】
図３Ｂにおいて、ＧＰＵ１０８の現在温度は、８５℃とすることができ、８０％の利用率でＧＰＵが動作していることを示す。この場合、ＧＰＵ１０８は、過熱を回避しようとして性能を減速させる閾値温度に到達済みである。ＢＭＣ１０４が検出する周囲温度は、３３℃のみである。ＢＭＣは、周囲温度が所定の閾値を超える場合にのみ高速で動作するように、ファン１０６に通知することになる。これは、ＧＰＵ１０８の温度とは無関係である。ファン１０６が６０％でしか動作していないのに対して、ＧＰＵ１０８は、８５℃という所定の減速閾値温度に到達済みである。この時点で、ＧＰＵは、０％の利用率で動作している。したがって、ＧＰＵ温度に応じてファンを最適化することができるように、ＢＭＣに対してＧＰＵが通信可能に結合される必要がある。
【００３５】
以下の議論は、ＢＭＣをＧＰＵに結合して、温度情報およびＧＰＵ性能に関する他の付随情報を受信できるようにする方法の実施形態を提供する。
【００３６】
図４は、本開示の特定の実施形態に係る、スタック２００を模式的に示している。図４は、スタック２００、より具体的には、スタンドアロンの汎用コンピュータシステムを示している。当業者には当然のことながら、本開示の全体を通して議論するコンピュータシステム２００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、サーバコンピュータ、ブレードサーバ、産業用コンピュータ、電化製品コントローラ、電子機器コントローラ等、さまざまな種類とすることができる。スタック２００は、専用コンピュータシステムまたはクライアント−サーバネットワーク等の２つ以上の相互接続システムを組み込んだシステムとすることができる。実際のところ、図４のスタック２００は、本開示の例示的な一実施形態のみを表しているため、本開示をいかなる形でも制限するものとは考えないものとする。
【００３７】
スタック２００は、仮想マシン３０１、ハイパーバイザ３０２、ホストオペレーティングシステム（ＯＳ）３０３、および管理コントローラを備えることができる。いくつかの実施形態において、管理コントローラは、物理ＢＭＣ３０４とすることができる。
【００３８】
仮想マシン３０１は、電子コンポーネントと直接通信することができる。この実施形態の目的のため、電子コンポーネントは、ＧＰＵ３０８を含むことができる。当業者であれば、電子コンポーネントは、当技術分野において公知の任意の感熱性コンポーネントを含むことができることが了解されるものとする。ＧＰＵは、当技術分野において周知であるため、本明細書にてこれ以上詳しく説明することはない。
【００３９】
多くの電気コンポーネントと同様に、ＧＰＵ３０８は、動作中に熱を放出する。このため、ＧＰＵ３０８が所定温度に達した後にＧＰＵ３０８を冷却するためのファン３０６が用いられる。このような判定、すなわちＧＰＵ３０８が所定温度を超えているかどうかの判定は、ハイパーバイザ３０２を利用して実装された仮想管理コントローラにより行われる。
【００４０】
仮想管理コントローラは、仮想ＢＭＣ３０７を含むことができる。仮想マシンマネージャ（ＶＭＭ）とも称するハイパーバイザ３０２は通常、ゲストと称する複数のオペレーティングシステムがホストコンピュータ上で同時に動作できるようにする多くのハードウェア仮想化技術のうちの１つである。
【００４１】
仮想ＢＭＣ３０７は、物理ＢＭＣ３０４において、メッセージをＲＡＷ  ＢＭＣバッファ３０９に受け渡すように構成されている。スタック２００が従来の物理ＢＭＣ３０４を有することから、仮想ＢＭＣ３０７は、物理ＢＭＣ３０４のように機能する必要がない。ただし、いくつかの実施形態において、仮想ＢＭＣ３０７は、物理ＢＭＣ３０４のように機能することができる。
【００４２】
仮想ＢＭＣ３０７は、ハイパーバイザ３０２の一部として動作するか、または、ＣＰＵ（図示せず）上で動作するハイパーバイザ上で動作する。また、当業者には当然のことながら、ハイパーバイザ３０２は、２つのＣＰＵ、４つのＣＰＵ、８つのＣＰＵ、または任意適当数のＣＰＵ上でも動作することができる。ハイパーバイザ３０２は、ＸＥＮ，ＭＩＣＲＯＳＯＦＴ  ＨＹＰＥＲ‐Ｖ，ＶＭＷＡＲＥ  ＥＳＸ等、さまざまな種類および設計のものとすることができる。
【００４３】
いくつかの実施形態において、オペレーティングシステム３０３は、仮想マシンにインストールすることができる。別の実施形態において、オペレーティングシステム３０３は、物理マシン上で動作していてもよい。オペレーティングシステム３０３は、１つまたは複数のアプリケーションプログラムをホスティングすることができる。たとえば、オペレーティングシステム３０３は、入出力メモリ管理ユニット・ペリフェラルコンポーネントインターコネクトエクスプレス（ＩＯＭＭＵ  ＰＣＩｅ）デバイス３１５をホスティングすることができる。ＩＯＭＭＵは、直接メモリアクセス可能（ＤＭＡ可能）Ｉ／Ｏバスをメインメモリに接続するメモリ管理ユニット（ＭＭＵ）である。ＣＰＵ可視仮想アドレスを物理アドレスに変換する従来のＭＭＵと同様に、ＩＯＭＭＵは、デバイス可視仮想アドレス（本文脈ではデバイスアドレスまたはＩ／Ｏアドレスとも称する）を物理アドレスへとマッピングする。また、一部のユニットは、欠陥または悪意のあるデバイスからのメモリ保護も提供する。例示的なＩＯＭＭＵとしては、ＩｎｔｅｌアーキテクチャおよびＡＭＤコンピュータ上でＡＧＰおよびＰＣＩｅグラフィックスカードが使用するグラフィックスアドレスリマッピングテーブル（ＧＡＲＴ）が挙げられる。
【００４４】
ＩＯＭＭＵ  ＰＣＩｅデバイス３１５は、ユーザ空間から該ＩＯＭＭＵ  ＰＣＩｅデバイス３１５への直接アクセスを可能にする仮想機能ＩＯ（ＶＦＩＯ）３１４を通じて通信可能である。これは、主に仮想化用途のハイパーバイザバイパス技術として設計されているものの、高性能コンピューティング（ＨＰＣ）の背景においても使用することができる。
【００４５】
ＶＦＩＯ３１４によれば、ＩＯＭＭＵ  ＰＣＩｅデバイス３１５は、高速エミュレータ（ＱＥＭＵ）３１３およびＰＣＩｅパススルー３１２を用いることにより、ハイパーバイザを通じて通信可能である。ＱＥＭＵ３１３は、ハードウェア仮想化を実行するホスト型ハイパーバイザであり、ＰＣＩｅパススルー３１２は、ＩＯＭＭＵ  ＰＣＩｅデバイス３１５（ＮＩＣ、ディスクコントローラ、ＨＢＡ、ＵＳＢコントローラ、ファイヤーワイヤコントローラ、サウンドカード等）を仮想マシンゲストに割り当てて、ＩＯＭＭＵ  ＰＣＩｅデバイス３１５への完全かつ直接のアクセスを与える。
【００４６】
ＱＥＭＵ３１３およびＰＣＩｅパススルー３１２を用いることにより、ＩＯＭＭＵ  ＰＣＩｅデバイス３１５は、ＧＰＵ３０８と直接通信することができる。たとえば、ＧＰＵが仮想マシンにおける仮想化を必要とする場合、ＣＰＵは、ＩＯＭＭＵ  ＰＣＩｅデバイス３１５に対して、ＶＦＩＯ３１４によるＰＣＩｅデバイスの仮想化を可能にすることができる。ＱＥＭＵ３１３は、ＶＦＩＯデバイスを含めて、ユーザの設定を読み出すように構成することができる。
【００４７】
最後に、仮想マシンがＮＶＩＤＩＡのドライバをロードした場合、ＧＰＵは、仮想マシンにおけるパススルーＧＰＵとして認識されることができる。ＮＶＩＤＩＡは、例示的なドライバであり、ＧＰＵから情報を読み出すローエンドＡＰＩであるが、他のドライバの実装によって、同一または同様の機能を実行することもできる。
【００４８】
特定の実施形態において、仮想ＢＭＣ３０７は、ハイパーバイザ３０２の一部として実装することができる。仮想マシン３０１上では、スタック２００のオペレーティングシステムエージェント３１１が動作する。ＧＰＵ３０８は、ＣＵＤＡ  ＮＶＭＬ  ＡＰＩ３１０によって、オペレーティングシステムエージェント３１１と直接通信することができる。ＧＰＵ３０８がオペレーティングシステムエージェント３１１と通信し、これは仮想ＢＭＣ３０７とも通信する。オペレーティングシステムエージェント３１１は、システムインタフェースによって、仮想ＢＭＣ３０７と通信する。いくつかの実施形態において、システムインタフェースは、キーボードコントローラ型のインタフェースを含むことができる。特定の実施形態において、物理ＢＭＣ３０４は、高度なモニタリング機能およびより詳細なハードウェア情報（さまざまな熱ゾーンの温度等）を提供することができる。
【００４９】
ハイパーバイザ３０２上で動作している仮想ＢＭＣ３０７は、オペレーティングシステムエージェント３１１によって、ＧＰＵ３０８に通信可能に結合することができる。また、仮想ＢＭＣ３０７は、ＧＰＵ３０８に位置付けられたＧＰＵ温度センサ（図示せず）にも通信可能に結合することができる。また、仮想ＢＭＣ３０７は、物理ＢＭＣ３０４によって、ファン３０６にも通信可能に結合することができる。このように、仮想ＢＭＣ３０７によれば、物理ＢＭＣ３０４は、温度センサに対するモニタリング機能およびファン３０６に対する制御機能を提供することができる。これについては、図６Ａおよび図６Ｂに関して詳述する。
【００５０】
図５は、本開示の特定の実施形態に係る、スタック３００を模式的に示している。スタック３００は、物理ＢＭＣ３０４と通信する複数のＧＰＵデバイス３０８Ａおよび３０８Ｂを例示している。スタック３００は、ＧＰＵデバイス（３０８Ａおよび３０８Ｂ）ごとに仮想ＢＭＣ３０７Ａおよび３０７Ｂを提供することができる。仮想ＢＭＣ３０７Ａおよび３０７Ｂはそれぞれ、仮想ＢＭＣマネージャ３０５によって、物理ＢＭＣ３０４に接続することができる。仮想ＢＭＣマネージャ３０５は、仮想ＢＭＣ３０７Ａおよび３０７Ｂから物理ＢＭＣ３０４で受信されたメッセージを管理するように実装される。仮想ＢＭＣマネージャ３０５の実装により、物理ＢＭＣ３０４は、温度情報を受信して、ＮＶＭＬ  ＡＰＩ温度メッセージを読み出すことにより、ＢＭＣファン３０６の速度を制御することができる。また、仮想ＢＭＣマネージャ３０５は、物理ＢＭＣ３０４に対する権限およびアクセスを管理する。
【００５１】
図６Ａおよび図６Ｂは、本開示の一実施形態に係る、ＧＰＵ３０８、仮想ＢＭＣ３０７、物理ＢＭＣ３０４、およびファン３０６の性能を模式的に表している。特定の実施形態において、物理ＢＭＣ３０４は、スタック２００と関連付けられた健全性関連の状況（たとえば、スタック２００の１つまたは複数のコンポーネント（たとえば、ＧＰＵ３０８）の温度、システム内の回転コンポーネント（たとえば、スピンドルモータ、ファン３０６等）の速度、システム２００内の１つまたは複数のコンポーネントのまたは該コンポーネントに印加された電圧、およびシステム２００内のメモリデバイスの利用可能または使用容量等が挙げられるが、これらに限定されない）をモニタリングする。
【００５２】
これらのモニタリング機能を達成するために、物理ＢＭＣ３０４は、仮想ＢＭＣ３０７および仮想ＢＭＣマネージャ３０５によって、１つまたは複数のコンポーネントに通信可能に接続されている。特定の実施形態において、これらのコンポーネントは、スタック２００内のさまざまな健全性、動作、および性能関連パラメータを測定するためのセンサデバイスを含む。センサデバイスは、さまざまな動作および性能関連パラメータのうちの１つまたは複数を測定または検出するように構成またはプログラムされた、ハードウェアまたはソフトウェアベースのコンポーネントのいずれであってもよい。
【００５３】
物理ＢＭＣ３０４は、システム２００内で「イベント」が発生しているかどうかを仮想ＢＭＣ３０７によって判定するために、スタック２００のさまざまなコンポーネントから受信された健全性、動作、および性能関連パラメータをモニタリングする。
【００５４】
たとえば、図６Ａに示す構成に関して、物理ＢＭＣ３０４は、ＧＰＵ温度センサ（図示せず）によってＧＰＵ３０８の動作をモニタリングすることにより、特定の動作または性能関連パラメータが所定の動作閾値範囲を上回っているか下回っているかどうかを判定する。このようなイベントの一例が、ＧＰＵ３０８により放出された熱の温度測定値が８４℃に達することであってもよい。ファン３０６は、６０％で動作している。ＧＰＵ１０８は、８５℃という所定の減速閾値温度および８９℃という所定の遮断閾値温度を有することができる。この情報は、仮想ＢＭＣ３０７および仮想ＢＭＣマネージャ３０５によって、物理ＢＭＣ３０４に送ることができる。
【００５５】
また、本開示の特定の実施形態によれば、物理ＢＭＣ３０４は、イベントの発生に応じて、コンピュータシステム１００の１つまたは複数のコンポーネントを制御するようにしてもよい。
【００５６】
上記の例に戻って、図６Ｂは、ＧＰＵ３０８の温度に応じたファン３０６の起動を示している。物理ＢＭＣ３０４は、ＧＰＵ３０８により放出された温度が８５℃という所定のスローダウン閾値温度に近づいている旨の判定に際して、ファン３０６の動作を開始してもよい。図６Ａに示すように、ファン３０６は、６０％のファン容量で動作している。ＧＰＵ３０８の温度が８９℃という所定の遮断閾値温度に近づいていることに応答して、物理ＢＭＣ３０４は、７５％のファン容量で動作するように、ファン３０６の動作を開始してもよい。これを図６Ｂに示す。ファン容量の増大により、ＧＰＵ３０８を８２℃まで冷却することができる。
【００５７】
以上、本発明の特定の実施形態を図示および説明してきたが、当業者には、より広い態様において本発明から逸脱することなく、変更および改良を行ってもよいことが明らかとなるであろう。したがって、添付の特許請求の範囲における目的は、本発明の真の主旨および範囲に含まれる上記のようなすべての変更および改良を網羅することである。上記説明および添付の図面に示す事項は、例示として与えているに過ぎず、限定的なものではない。本発明の実際の範囲は、先行技術に基づいて正しく把握される場合の以下の特許請求の範囲において規定されるものである。
【００５８】
本明細書において使用する専門用語は、特定の実施形態を説明することのみを目的としており、本発明を限定するものではない。本明細書において、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈上明白な別段の指示がない限り、複数形も同様に含むことが意図される。さらに、用語「含む（ｉｎｃｌｕｄｉｎｇ、ｉｎｃｌｕｄｅｓ）」、「有する（ｈａｖｉｎｇ、ｈａｓ）」、「伴う（ｗｉｔｈ）」、またはこれらの異形は、詳細な説明および／または特許請求の範囲において用いられる範囲で、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」と同じように包括的であることが意図される。
【００５９】
別段の定義のない限り、本明細書において使用されるすべての用語（技術および科学用語を含む）は、本発明が属する技術分野の当業者が一般的に理解するのと同じ意味を有する。さらに、一般的に用いられる辞書で定義されているような用語は、関連技術の背景における意味と整合する意味を有するものと解釈されるべきであり、本明細書におけるその旨の特段の定義のない限り、理想化された意味または過度に形式張った意味で解釈されることはない。
【図１】
2020052997.tif 000003
【図２】
2020052997.tif 000004
【図３】
2020052997.tif 000005
【図４】
2020052997.tif 000006
【図５】
2020052997.tif 000007
【図６】
2020052997.tif 000008