JP6984022B2 - マルチノードシステムの低電力管理 - Google Patents

マルチノードシステムの低電力管理 Download PDF

Info

Publication number
JP6984022B2
JP6984022B2 JP2020534391A JP2020534391A JP6984022B2 JP 6984022 B2 JP6984022 B2 JP 6984022B2 JP 2020534391 A JP2020534391 A JP 2020534391A JP 2020534391 A JP2020534391 A JP 2020534391A JP 6984022 B2 JP6984022 B2 JP 6984022B2
Authority
JP
Japan
Prior art keywords
node
nodes
interrupt
response
given
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.)
Active
Application number
JP2020534391A
Other languages
English (en)
Other versions
JP2021507412A (ja
JP2021507412A5 (ja
Inventor
チェン ベンジャミン
ピー. ブルッサール ブライアン
カリヤナスンダラム ヴィドヒャナサン
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2021507412A publication Critical patent/JP2021507412A/ja
Publication of JP2021507412A5 publication Critical patent/JP2021507412A5/ja
Application granted granted Critical
Publication of JP6984022B2 publication Critical patent/JP6984022B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

関連技術の説明
現代の集積回路(IC)の電力消費が各世代の半導体チップによる高まる設計問題になっている。電力消費が増大するにつれて、過剰な熱を除去し、IC故障を防止するために、より大きなファン及びヒートシンクなどのよりコストがかかる冷却システムが利用される必要がある。しかしながら、冷却システムは、システムコストを増大させる。ICの電力散逸制約は、ポータブルコンピュータ及びモバイル通信デバイスについての問題だけでなく、高性能マイクロプロセッサを利用するデスクトップコンピュータ及びサーバについての問題でもある。それらのマイクロプロセッサは、複数のプロセッサコア、またはコア、及びコア内の複数のパイプラインを含む。
様々なサーバなどの様々なコンピューティングデバイスは、システムの機能性をもたらすための複数のタイプのICを統合する、異種統合を利用する。複数の機能は、処理ノードに配置され、複数の機能は、音声/ビデオ(A/V)データ処理、医療及びビジネス分野のための他の高データ並列アプリケーション、汎用命令セットアーキテクチャ(ISA)の処理命令、並びにデジタル、アナログ、混合信号及び無線−周波数(RF)機能などを含む。複数のタイプのICを統合するようシステムパッケージ化において処理ノードを配置するための様々な選択肢が存在する。処理ノードは、複数のIC、通信ファブリック、電力コントローラ、割り込みコントローラ、及びリンクインタフェースなどを含む。
いくつかのコンピューティングデバイスでは、システムオンチップ(SOC)が使用され、他のコンピューティングデバイスでは、処理ノードのより小さく且つより高い発生チップがマルチチップモジュール(MCM)において大規模チップとしてパッケージ化される。いくつかのコンピューティングデバイスは、システムインパッケージ(SiP)において2つ以上のダイを垂直に堆積し、電気的に接続する、シリコンビア(TSV)及び他の機構を通じて、ダイ堆積技術と共にシリコンインターポーザを利用する三次元集積回路(3D IC)を含む。
システムパッケージ化についての選択肢に関わらず、各々が選択されたパッケージのコピーを有する、複数のソケットを有するコンピューティングシステムをパワーダウンさせることは複雑である。各パッケージは、電力コントローラを含み、よって、システムは、複数の電力コントローラを有する。各々の電力コントローラがシステム内の各々の他の電力コントローラに接続される場合、システムをパワーダウンさせるときの通信が容易になる。しかしながら、性能を増大させるためにソケットの数を増加させるなど、システムを拡大することは、各電力コントローラがシステム内の各々の他の電力コントローラに直接接続されることになる場合に困難になる。加えて、複数の接続を経路指定することは、ソケットの間の信号の量を増大させ、インタフェースについての領域を増大させる。更に、処理ノードをパワーダウンさせることは、複数のステップを含む。所与の処理ノードをパワーダウンさせ、次いで、その後すぐ、所与の処理ノードが呼び出されるとき、所与の処理ノードがタスクを扱う準備ができる前に大幅な待ち時間が発生する。したがって、ノードをパワーダウンさせ、その後すぐに再起動させるときに性能が減少する。
上記を考慮して、マルチノードコンピューティングシステムに対して効率的な電力管理を実行する効率的な方法及びシステムが望まれる。
添付図面と共に以下の説明を参照することによって、本明細書で説明される方法及び機構の利点をより良好に理解することができる。
処理ノードの一実施形態のブロック図である。 マルチノードコンピューティングシステムの一実施形態のブロック図である。 マルチノードコンピューティングシステムに対して電力管理を実行する方法の一実施形態のフローチャートである。 マルチノードコンピューティングシステムに対して電力管理を実行する方法の別の実施形態のフローチャートである。 マルチノードコンピューティングシステムに対して電力管理を実行する方法の別の実施形態のフローチャートである。 マルチノードコンピューティングシステムに対して電力管理を実行する方法の別の実施形態のフローチャートである。
本発明は様々な修正及び代替的な形式を許容することができ、特定の実施形態は、図面中の例として示され、本明細書で詳細に説明される。しかしながら、図面及びそれに対する詳細な説明は、開示された特定の形式に本発明を限定することを意図していない。逆に、本発明は、添付の特許請求の範囲によって定義されるような本発明の範囲内に収まる全ての修正、同等物、及び代替物を網羅することが理解されるべきである。
以下の説明では、本明細書で提示される方法及び機構の完全な理解をもたらすために、多数の特定の詳細が示される。しかしながら、当業者は、様々な実施形態がそれらの特定の詳細なしに実施されてもよいことを認識するべきである。いくつかの例では、本明細書で説明されるアプローチを曖昧にすることを回避するために、公知の構造、構成要素、信号、コンピュータプログラム命令、及び技術が詳細には示されていない。例示の単純さ及び簡潔さのために、図面に示される要素は、必ずしも同一縮尺で記述されていないことが認識されよう。例えば、要素のいくつかの寸法は、他の要素に対して拡張されてもよい。
マルチノードコンピューティングシステムに対して効率的な電力管理を実行する様々なシステム、装置、方法、及びコンピュータ可読媒体が開示される。様々な実施形態では、処理ノードは、アプリケーションを処理するための1つ以上のクライアントを含む。ノード内のクライアントの例は、汎用中央処理装置(CPU)、グラフィックプロセシングユニット(GPU)、アクセラレーテッドプロセシングユニット(APU)、及び入力/出力(I/O)デバイスなどを含む。処理ノードはまた、少なくとも電力コントローラ、及び他のノードとメッセージを転送するための複数のリンクインタフェースを含む。本明細書で使用されるように、処理ノードは、ノードとも称される。
いくつかの実施形態では、コンピューティングシステムは、マルチノードシステムであり、マルチノードシステムは、各々がその自身の1つ以上のクライアント及び電力コントローラを有する、ノードの複数のコピーを含む。様々な実施形態では、コンピューティングシステムは、共有メモリアーキテクチャを利用し、共有メモリアーキテクチャでは、所与のノード内の所与のプロセッサは、別のノードのリモートメモリにアクセスするよりも短い待ち時間によりそのローカルメモリにアクセスする。言い換えると、コンピューティングシステムは、非一様メモリアクセス(NUMA)アーキテクチャを利用し、コンピューティングシステム内のノードの各々は、NUMAノードである。
複数のノードの第1のノードの電力コントローラは、その1つ以上のクライアントの各クライアントがアイドルであるときを判定する。加えて、電力コントローラは、第1のノードのダイナミックランダムアクセスメモリ(DRAM)など、第1のノードのシステムメモリにアクセスすることを試みているリモートメモリ要求が存在しないときを判定する。それらの条件が満たされると電力コントローラが判定するとき、実施形態では、電力コントローラは、そのリンクのうちの1つ以上の上で1つ以上のノードに、第1のノードのパワーダウンした状態を指定するインジケーションを送信する。その後、第1のノードは、パワーダウンさせるために、そのキャッシュをフラッシュすること、プローブフィルタの各エントリを取り消すこと、及びプローブフィルタ内のエントリを無効にした結果として受信されたダーティキャッシュラインにより第1のノードに接続されたシステムメモリを更新することなど、複数のステップを実行する。その後、ステップは、リンクインタフェースに対してドライバを無効にすること、1つ以上のクライアント及び1つ以上のクライアントとメモリコントローラとの間の通信ファブリック転送トラフィックに対してクロックを無効にすること、及びダイナミックランダムアクセスメモリ(DRAM)が使用されるときにセルフリフレッシュを実行するようシステムメモリを設定することなどを含む。
第1のノードがパワーダウンしたままの時間の量を増大させるために、一実施形態では、上記説明されたように、キャッシュをフラッシュすること、及びプローブフィルタを取り消すことが実行される。他の実施形態では、パワーダウンした第1のノードに直接接続された第2のノードは、第3のノードからブロードキャストプローブを受信し、第2のノードは、第1のノードがパワーダウンしたと第2のノードが判定するときに、パワーダウンした第1のノードに対してミス応答を生成する。第2のノードは、第1のノードに、第1のノードを呼び出し、第1のノードにパワーダウンした状態からアクティブ状態に遷移させるブロードキャストプローブを送信しない。第2のノードは、パワーダウンした第1のノードの代わりに、第3のノードにミス応答を送信する。
いくつかの実施形態では、コンピューティングシステムは、複数のプロセッサコアの割り込み優先度をコンピューティングシステムに記憶するためのマスタノードを含み、割り込み優先度は、調停割り込みに対応する。したがって、調停割り込みは、ブロードキャストメッセージではなく、ポイントツーポイントユニキャストメッセージによりプロセッサコアによって扱われる。同様に、コンピューティングシステム内の複数のプロセッサコアは、複数のプロセッサコアの各プロセッサコアに対して固定割り込み識別子(ID)の記憶をサポートすることによって、ブロードキャストメッセージではなく、ポイントツーポイントメッセージにより固定割り込みを扱う。したがって、パワーダウンしたノードは、割り込みを扱うためのブロードキャストプローブによっては呼び出されない。それらの実施形態及び他の実施形態が可能であり、考慮される。
図1を参照して、処理ノード100の一実施形態の全体ブロック図が示される。示されるように、処理ノード100は、クライアント110の各々の間の通信ファブリック120、プローブフィルタ113、メモリコントローラ130、電力コントローラ170、及びリンクインタフェース180を含む。いくつかの実施形態では、処理ノード100の構成要素は、システムオンチップ(SOC)など、集積回路(IC)上の個々のダイである。他の実施形態では、構成要素は、システムインパッケージ(SiP)またはマルチチップモジュール(MCM)内の個々のダイである。
様々な実施形態では、通信ファブリック120は、クライアント110とメモリコントローラ130との間で前後にトラフィックを転送し、それぞれの通信プロトコルをサポートするためのインタフェースを含む。いくつかの実施形態では、通信ファブリック120は、少なくとも、要求及び応答を記憶するためのキュー、内部ネットワークにわたって要求を送信する前に受信された要求の間で調停するための選択ロジック、パケットを構築及び復号するためのロジック、並びにパケットに対して経路を選択するためのロジックを含む。
例示される実施形態では、クライアント110は、中央処理装置(CPU)112、グラフィックプロセシングユニット(GPU)114、及びハブ116を含む。ハブ116は、マルチメディアエンジン118と通信するために使用される。CPU112、GPU114、及びマルチメディアエンジン118は、アプリケーションを処理することが可能なコンピューティングリソースの例である。示されないが、他の実施形態では、他のタイプのコンピューティングリソースがクライアント110に含まれる。実施形態では、GPU114は、相当な数の並列実行レーンを有する高並列データマイクロアーキテクチャを含む。一実施形態では、マイクロアーキテクチャは、並列実行レーンに対して単一命令複数データ(SIMD)パイプラインを使用する。マルチメディアエンジン118は、マルチメディアアプリケーションに対して音声データ及び視覚データを処理するためのプロセッサを含む。
いくつかの実施形態では、CPU112内の1つ以上のプロセッサコアの各々は、所与の選択された命令セットアーキテクチャ(ISA)に従って命令を実行するための回路を含む。様々な実施形態では、CPU112内のプロセッサコアの各々は、所与のISAの命令を処理するために使用されるスーパースカラ、マルチスレッドマイクロアーキテクチャを含む。本明細書で使用されるように、プロセッサコアは、コアとも称される。一実施形態では、CPU112は、各々が2つのソフトウェアスレッドを処理するための2つのハードウェアスレッドを含む、8個のコアを含む。したがって、そのような実施形態では、CPU112は、16個のスレッドを同時に処理することが可能である。他の実施形態では、同時マルチスレッドに対するいずれかの数のスレッドがCPU112によってサポートされる。
リンクインタフェース180は、リンク上でメッセージを転送することによって、処理ノード100と他の処理ノードとの間の通信をサポートする。様々な実施形態では、ノードの間でリンクにわたって送信されたメッセージは、1つ以上のノードについての動作状態のインジケーション、要求への応答、割り込み、及び他の情報を含む。様々な実施形態では、各リンクは、2つのノードの間のポイントツーポイント通信チャネルである。物理レベルにおいて、リンクは、1つ以上のレーンを含む。いくつかの実施形態では、リンクインタフェース180、前記対応するリンク、及び他のノードは、PCI(Peripheral Component Interconnect Express)、InfiniBand、RapidIO、及びHyperTransportなどの通信プロトコル接続を含む。いくつかの実施形態では、リンクインタフェース180は、相互接続リンクを介して他のノードと通信するために使用される制御ロジック及びバッファまたはキューを含む。
単一のメモリコントローラ130が示されるが、他の実施形態では、別の数のメモリコントローラが処理ノード100において使用される。様々な実施形態では、メモリコントローラ130は、通信ファブリック120を介してクライアント110からメモリ要求を受信し、メモリ要求をスケジュールし、システムメモリ及びメインメモリのうちの1つ以上にスケジュールされたメモリ要求を送信する。メモリコントローラ130はまた、システムメモリ及びメインメモリから応答を受信し、クライアント110内の対応する要求元に応答を送信する。様々な実施形態では、システムメモリは、I/Oコントローラ及びバス160及びメモリバス150を通じてメインメモリからのデータにより充填される。元のメモリ要求を完了するために、要求されたブロックによる対応するキャッシュ充填ラインは、クライアント110内でメインメモリからキャッシュメモリサブシステムの対応する1つに搬送される。キャッシュ充填ラインは、キャッシュのうちの1つ以上のレベルに配置される。
いくつかの実施形態では、処理ノード100のアドレス空間は、少なくともCPU112、GPU114、及びハブ116、並びに入力/出力(I/O)周辺機器デバイス(図示せず)及び他のタイプのコンピューティングリソースなどの1つ以上の構成要素にわたって分割される。メモリマップは、どのアドレスがどの構成要素にマッピングされるかを判定し、よって、特定のアドレスについてのメモリ要求がCPU112、GPU114、及びハブ116のどの1つに経路指定されるべきかを判定するために維持される。実施形態では、システムメモリは、様々なダイナミックランダムアクセスメモリ(DRAM)の1つであり、対応するプロトコルは、メモリコントローラ130によってサポートされる。プロトコルは、クロックサイクルごとのデータ転送の回数、信号電圧レベル、信号タイミング、信号及びクロック位相、並びにクロック周波数など、情報転送のために使用される値を判定する。いくつかの実施形態では、メインメモリは、様々なタイプの不揮発性の、データのランダムアクセス二次記憶装置の1つである。メインメモリの例は、ハードディスクドライブ(HDD)及びソリッドステートディスク(SSD)である。
一実施形態では、電力コントローラ170は、クライアント110からデータを収集する。いくつかの実施形態では、電力コントローラ170はまた、メモリコントローラ130からデータを収集する。いくつかの実施形態では、収集されたデータは、予め定められたサンプリングされた信号を含む。サンプリングされた信号の切り替えは、切り替えられたキャパシタンスの量を示す。サンプリングするための選択された信号の例は、クロックゲータイネーブル信号、バスドライバイネーブル信号、コンテンツアドレス指定可能メモリ(CAM)における不一致、及びCAMワードライン(WL)ドライバなどを含む。実施形態では、電力コントローラ170は、所与のサンプリング間隔の間にノード100内で電力消費を特徴付けるデータを収集する。
いくつかの実施形態では、ノード100内のオンダイ電流センサ及び温度センサも、電力コントローラ170に情報を送信する。電力コントローラ170は、センサ情報、発行命令または発行スレッドのカウント、及びノード100に対して電力消費を推定する重み付けサンプリングされた信号の合計のうちの1つ以上を使用する。電力コントローラ170は、ノード100が閾値制限を上回って(下回って)動作している場合に電力消費を減少させる(または、増大させる)。いくつかの実施形態では、電力コントローラ170は、クライアント110内のコンピューティングリソースの各々に対してそれぞれの電力性能状態(P−状態)を選択する。P−状態は、少なくとも動作電圧及び動作クロック周波数を含む。様々な実施形態では、電力コントローラ170及びノード100は、N P−状態をサポートし、Nは、正の非ゼロの整数である。
様々な実施形態では、処理ノード100は、マルチノードシステム内の複数のノードの1つのノードである。実施形態では、システムは、複数のサーバのサーバである。時に、サーバにバッチとして送信されるジョブは、各サーバに割り当てられない。所与のサーバは、相当の時間量の間にアイドルになることができる。電力消費を減少させるために、サーバ内の複数のノードは、パワーダウンすることができる。様々な実施形態では、電力コントローラ170は、クライアント110のうちの1つ以上がアイドルになるときを検出する。クライアント110の各々がアイドルになる場合、次いで、実施形態では、電力コントローラ170は、リンクインタフェース180を介してそのリンクのうちの1つ以上の上で1つ以上のノードに、パワーダウンした状態を指定するインジケーションを中継する。いくつかの実施形態では、電力コントローラ170は、CPU112及びGPU114の各々に、そのキャッシュメモリサブシステム内の各キャッシュをフラッシュするメッセージを送信する。
加えて、電力コントローラ170は、プローブフィルタ113の各エントリを取り消すと共に、プローブフィルタ113内のエントリを取り消した結果として受信されたダーティキャッシュラインによりシステムメモリを更新するメッセージを送信する。その後、電力コントローラ170は、リンクインタフェースに対してドライバを無効にし、クライアント110及び通信ファブリック120、メモリコントローラ130に対してクロックを無効にし、ダイナミックランダムアクセスメモリ(DRAM)が使用されるときにセルフリフレッシュを実行するようシステムメモリを設定するメッセージを送信する。
多くのディレクトリに基づくキャッシュコヒーレンシプロトコルは、コンピューティングシステム内の様々なキャッシュの間で通信するための、メモリコントローラなどのコヒーレンシポイントから渡される、メッセージまたはプローブの使用を含む。実施形態では、通信ファブリック120は、プローブフィルタ113を維持する。様々な実施形態では、プローブフィルタ113は、複数のエントリを有するディレクトリとして実装される。プローブフィルタ113のエントリは、データのキャッシュされたコピーの存在を示す情報を包含する。いくつかの実施形態では、各エントリは、有効ビット、キャッシュラインのタグ、キャッシュラインのキャッシュコヒーレンシ状態を指定するインジケーション、ノード所有権識別子(ID)、データのキャッシュされたコピーをローカルシステムメモリに記憶するリモートクライアントとのリモートノードの1つ以上のノードID、及びクリーン/ダーティ状態、などを記憶する。いくつかの実施形態では、キャッシュコヒーレンシ状態は、修正され、所有され、排他的であり、共有され、及び取り消しされる。
プローブフィルタ113内のエントリは、コンピューティングシステム内の他の処理ノードのキャッシュに記憶されたコピーを有する、処理ノード100内の各キャッシュラインを追跡する。処理ノード100にローカルに、または別の処理ノードにリモートであるかに関わらず、システムメモリに記憶されたラインがキャッシュされる場合、ラインについてのエントリは次いで、プローブフィルタ113において割り振られる。プローブフィルタ113のエントリ内の割り振られたエントリの不存在は、特定のラインがキャッシュされていないことを示す。プローブを無条件にブロードキャストするのではなく、特定のコヒーレンシ動作を生じさせるためにプローブが搬送される必要がある特定のサブシステム(データのキャッシュされたコピーを包含することができる)を判定するためにプローブフィルタ113が使用される。
様々な実施形態では、CPU112によって処理されている複数のスレッドの各々は、割り込みをアサートし、割り込みサービスルーチンのアドレスを受信することが可能である。様々な実施形態では、処理ノード100は、マルチプロセッサコンピューティングシステム内で割り込みを経路指定するための割り込みリダイレクションをサポートするマルチノードコンピューティングシステムの1つのノードである。このプロトコルは、コンピューティングシステムの複数のノード内のプロセッサの間で割り込みを送信する。割り込みモードまたは割り込みタイプに基づいて、割り込みは、割り込み識別子(ID)に基づいて割り込みを検出するプロセッサから特定のノード内の特定のプロセッサに送信される。一実施例では、IDは、特定のノード内の特定のプロセッサを識別するために使用される。本明細書で使用されるように、それらのタイプの割り込みは、「固定割り込み」と称される。固定割り込みを扱うために選択されたプロセッサは、IDに基づいて固定される。同様に、異なる割り込みモードまたは異なる割り込みタイプに基づいて、割り込みは、調停に基づいて割り込みを検出するプロセッサから特定のノード内の特定のプロセッサに送信される。一実施例では、プロセッサ内の各ハードウェアスレッドまたは各コアは、割り込み優先度を割り当てられ、最下位優先度を有するプロセッサ(複数可)は、アサートされた割り込みを扱うよう、調停ロジックによって選択される。本明細書で使用されるように、それらのタイプの割り込みは、「調停割り込み」と称される。いくつかの実施形態では、異なるプロセッサの間で割り込みを送信するために使用されるプロトコルは、APIC(アドバンストプログラム可能割り込みコントローラ)プロトコルであり、コアまたはコア内のハードウェアスレッドのいずれかを識別するために使用される識別子は、APIC IDである。
実施形態では、割り込みコントローラ111は、リンクインタフェース180を介して、リモートCPU上のコアによってアサートされた複数の割り込みに加えて、CPU112上で稼働する複数のスレッドによってアサートされた複数の割り込みを受信する。割り込みコントローラ111はまた、APICプロトコルなどの選択された割り込み経路指定プロトコルに基づいて、リンクインタフェース180を介してCPU112内の他のコア及びリモートCPU内の他のコアに割り込みを経路指定する。いくつかの実施例では、割り込みコントローラ111は、割り込みを使用可能にする他のコアに割り込みを送信する。他のコアは、ローカルまたはリモートであるかに関わらず、割り込みハンドラとも称される、所与の割り込みサービスルーチンを処理することによって割り込みを使用可能にする。いくつかの実施形態では、割り込みコントローラ111は、CPU112の外側に位置し、通信ファブリック120を介して、GPU114、ハブ116、I/O周辺機器デバイス、及びリモートコンピューティングデバイスなどの複数の他のソースから割り込みを受信する。
様々な実施形態では、処理ノード100は、コンピューティングシステムにおける割り込みの調停のための複数のプロセッサコアの割り込み優先度を記憶する、マルチノードシステム内のマスタノードである。前の例では、CPU112は、8個のコアを有し、その各々は、2つのスレッドを同時に処理することが可能である。したがって、一実施形態では、CPU112は、1つが16個のハードウェアスレッドの各々に対するものであり、2つがコアごとの割り込み優先度である、調停割り込みに対する16個の割り込み優先度を有する。他の実施形態では、調停割り込みに対する割り込み優先度の粒度は、コアレベルにあり、所与のコアに対する複数のハードウェアスレッドの各々は、調停割り込みに対して同一の割り込み優先度を有する。更なる他の実施形態では、各スレッドは、同一の割り込み優先度により設定される。スレッドに対する割り込み優先度割り当ての他の組み合わせが可能であり、考慮される。
コンピューティングシステムが4個のノードを有し、その各々がCPU112と同様のCPUを有し、各コアが調停割り込みに対して2つの割り込み優先度を有する場合、次いで、いくつかの実施形態では、コンピューティングシステムは、64個の割り込み優先度を有する。しかしながら、調停割り込みに対して、実施形態では、最下位割り込み優先度を有するハードウェアスレッド(または、コア)は、調停割り込みを使用可能にするよう割り当てられる。いくつかの実施形態では、割り込みコントローラ111は、1つが4個のノードの各々についての調停割り込みに対する割り込み優先度である、4個の割り込み優先度を記憶する。所与のノードに対する1つの割り込み優先度は、所与のノード内のコアに割り当てられた16個の割り込み優先度の最下位割り込み優先度である。
マスタノード以外の第1のノード内のコアが調停割り込みをアサートするとき、第1のノードは、リンクインタフェース180及び通信ファブリック120を介して、マスタノードの割り込みコントローラにメッセージをポイントツーポイントで送信する。そのようなケースでは、ブロードキャストメッセージは、第1のノードに1つ以上の割り込み優先度を送信するよう各々の他のノードに通知するために、第1のノードによっては使用されない。第1のノードからのポイントツーポイント通信に応答して、マスタノードの割り込みコントローラ111は、4個の記憶された割り込み優先度の最下位割り込み優先度を判定する。実施形態では、マスタノードの割り込みコントローラ111はまた、4個の記憶された割り込み優先度の識別された最下位割り込み優先度を有するコアを含む、第2のノードを識別する。様々な実施形態では、マスタノードの割り込みコントローラ111は、第2のノード内の識別されたコアに、ポイントツーポイントメッセージにおいて調停割り込みを送信する。したがって、調停割り込みは、ブロードキャストメッセージではなく、ポイントツーポイントユニキャストメッセージにより扱われる。様々な実施形態では、調停割り込みが上記実施例における第1のノードなどのリモートノードによってアサートされるのではなく、マスタノード内のローカルコア、入力/出力(I/O)デバイス、またはその他が調停割り込みをアサートするときに同様のポイントツーポイント通信が使用される。
様々な実施形態では、オペレーティングシステムなどのソフトウェアは、パワーダウンしている処理ノード100内のコアの調停割り込みに対して割り込み優先度を再割り当てする。実施形態では、ソフトウェアは、最大値または活性ノードの割り込み優先度よりも少なくとも大きい値に割り込み優先度を再割り当てする。したがって、パワーダウンしたノードは、コンピューティングシステムにおいてアサートされた調停割り込みを呼び出し及び使用可能にするために、マスタノードによっては選択されない。
CPU112内のコアが調停割り込みをアサートするとき、メッセージは、割り込みコントローラ111に送信される。それに応答して、割り込みコントローラ111は、応答において4個の記憶された割り込み優先度の最下位割り込み優先度を送信する。残りのステップは、応答において識別されたノード内の識別されたコアに、ユニキャスト通信において調停割り込みを送信することなど、上記と同様である。再度、ブロードキャストメッセージは送信されない。したがって、パワーダウンしたノードは、調停割り込みを呼び出すためのブロードキャストプローブによって呼び出されない。ブロードキャストメッセージではなく、ユニキャストメッセージを使用することも、調停割り込みに加えて、固定割り込みに対して実行される。
図2を参照して、マルチノードコンピューティングシステム200の一実施形態の全体ブロック図が示される。例示される実施形態では、パッケージ210は、リンク240によって相互に直接接続されたノード220A及び220Bを含む。いくつかの実施形態では、パッケージ210及び230の各々は、サーバ内のマルチソケットマザーボードのソケットに配置されたマルチチップモジュール(MCM)である。示されるように、ノード220Aは、クライアント222A〜222C、電力コントローラ224、及び割り込みコントローラ(IC)228を含む。クライアント222A〜222Cの例は、CPU、GPU、マルチメディアエンジン、及びI/O周辺機器デバイスなどである。示されるように、少なくともクライアント222Aは、プローブフィルタ(PF)223を含む。
いくつかの実施形態では、割り込みコントローラ228は、スタンドアロンコントローラとして使用されるのではなく、クライアント222A〜222Cの1つの中に位置する。様々な実施形態では、電力コントローラ224は、電力コントローラ170(図1の)機能性を有する。リンクインタフェース、通信ファブリック、メモリインタフェース、位相ロックループ(PLL)、または他のクロック生成回路は、例示を容易にするために示されない。
実施形態では、リンク240〜246は、PCI、InfiniBand、RapidIO、及びHyperTransportなどの通信プロトコル接続を利用する。いくつかの実施形態では、コンピューティングシステム200は、リンク240〜246に加えて、ノード220A〜220Dの間の他のリンクを含む。実施形態では、それらの他のリンクは、サービス要求へのデータ伝送のために使用され、リンク240〜246は、システム全体のパワーダウンをネゴシエートするためのメッセージなどのメッセージングのために使用される。
様々な実施形態では、コンピューティングシステム200は、ノード220A〜220Dの各々がリクエスタである、階層的トポロジを使用する。階層の低レベルまたは第1のレベルにおいて、各ノードは、各々の他のノードに直接接続される。例えば、ノード220Aは、リンク240を通じてパッケージ210内のノード220Bに直接接続される。同様に、ノード220Cは、リンク242を通じてパッケージ230内のノード220Dに直接接続される。階層の上位レベルまたは第2のレベルにおいて、各ノードは、他の階層内の単一のノードに接続される。例えば、パッケージ210内のノード220Aは、リンク244を通じてパッケージ230内のノード220Cに直接接続される。しかしながら、ノード220Aは、パッケージ230内のノード220Dに直接接続されない。同様に、パッケージ210内のノード220Bは、リンク246を通じてパッケージ230内のノード220Dに直接接続される。しかしながら、ノード220Bは、パッケージ230内のノード220Cに直接接続されない。他の実施形態では、ルートノードとリーフノードとの間の各中間ノードは、単一の上流ノードに直接接続され、単一の下流ノードに直接接続される、ツリーまたはリングトポロジが使用される。他の実施形態では、様々な他のトポロジが可能であり、考慮される。
一実施例では、ノード220Bがパワーダウンした場合、ノード220Bのパワーダウンしたままの時間量を増加させるために、一実施形態では、キャッシュをフラッシュし、プローブフィルタ223を取り消すことが実行される。加えて、ノード220Aなど、パワーダウンしたノード220Bに直接接続された別のノードは、特定のブロードキャストプローブに対するパワーダウンしたノード220Bの代わりに応答をスプーフする。一実施例では、ノード220Aは、ノード220Cから、キャッシュラインの直近の有効なコピーを検索するブロードキャストプローブを受信する。ノード220Bが、パワーダウンする前にその1つ以上のキャッシュメモリサブシステムをフラッシュしていたので、ノード220Bは、要求されたキャッシュラインのコピーを有することができない。
ノード220Bがパワーダウンしたとノード220Aが判定するとき、ノード220Aは、パワーダウンしたノード220Bに対してミス応答を生成する。いくつかの実施形態では、ノード220Bがパワーダウンしたとノード220Dが判定するとき、ノード220Dも、パワーダウンしたノード220Bの代わりにミス応答を生成する。ノード220A及び220Dのいずれも、パワーダウンしたノード220Bに、ノード220Bを呼び出し、その空きキャッシュに起因してミス応答を報告するようノード220Bにパワーダウンした状態からアクティブ状態に単純に遷移させる、ブロードキャストプローブを送信しない。ノード220A及びノード220Dのうちの1つ以上は、パワーダウンしたノード220Bの代わりにノード220Cにミス応答を送信する。電力コントローラ224及びリンクインタフェースに対するロジック(図示せず)うちの1つ以上は、キャッシュラインに対してブロードキャストプローブの状態を検出し、ノード220Bがパワーダウンする。したがって、ロジックは、パワーダウンしたノード220Bの代わりにミス応答をスプーフする。
様々な実施形態では、コンピューティングシステム200は、ノード220A〜220Dの所与の1つ内の所与のプロセッサが、別のノードのリモートメモリにアクセスするよりも短い待ち時間によりそのローカルメモリにアクセスする、共有メモリアーキテクチャを利用する。言い換えると、コンピューティングシステム200は、非一様メモリアクセス(NUMA)アーキテクチャを利用し、ノード220A〜220Dの各々は、NUMAノードである。実施形態では、ノード220A内の通信ファブリック(図示せず)は、メモリ要求が使用可能にされるようにプローブフィルタ(PF)223を維持する。様々な実施形態では、プローブフィルタ223は、プローブフィルタ113(図1の)と同一の機能性を有し、同一のタイプの情報を記憶する。
実施形態では、プローブフィルタ223内のエントリは、ノード220B〜220Dのうちの1つ以上がデータのブロックの共有コピーを包含することを示す情報を包含する。そのブロックへの排他的アクセスのためのコマンドに応答して、取り消しプローブは、ノード220B〜220Dのうちの1つ以上に搬送される。概して、要求を発行するノード220A〜220Dのノードは、「要求」ノードと称される。ノード220A〜220Dのノードは、要求のメモリアドレスがそのノードに結合されたシステムメモリにマッピングする場合に「ホーム」ノードと称される。ノード220A〜220Dのノードは、そのノード内のキャッシュがメモリブロックの直近のコピーを現在記憶している場合に「所有者」ノードと称される。プローブは、キャッシュがブロックのコピーを有しているかどうかを判定し、任意選択で、キャッシュがブロックを配置するべき状態を示すために使用される。プローブを受信する各ノードは、そのプローブフィルタをチェックし、プローブに応答する。全てのプローブ応答が受信されると、コマンドが完了に進む。
ノード220Aの電力コントローラ224がクライアント222A〜222Cのそれぞれがアイドルであると判定し、ノード220Aのシステムメモリにアクセスすることを試みているリモートメモリ要求が存在しないと判定するとき、実施形態では、システム全体電力コントローラ224は、ノード220B〜220Dのうちの1つ以上に、ノード220Aのパワーダウンした状態を指定するインジケーションを送信する。その後、システム全体電力コントローラ224は、クライアント222A〜222Cに、それらのキャッシュをフラッシュし、プローブフィルタ223などのプローブフィルタの各エントリを取り消すメッセージを送信する。ノード220Aは、プローブフィルタ223内のエントリを取り消した結果として受信されたダーティキャッシュラインによりそのシステムメモリを更新する。
いくつかの実施形態では、電力コントローラ224は、上記ステップが実行された後、ノード220Aのパワーダウンを進める。他の実施形態では、電力コントローラ224は、上記ステップが実行された後に所与の待ち時間は経過した場合、パワーダウンを進める。所与の待ち時間が経過しておらず、タスクが受信される場合、実施形態では、電力コントローラ224は、ノード220Aをアイドル状態からアクティブ状態に遷移させ、そのリンク240及び244の各々の上でアクティブ状態のインジケーションを送信し、クライアント222A〜222Cに、受信されたタスクを処理するインジケーションを送信する。更なる他の実施形態では、電力コントローラ224は、ノード220Aのパワーダウンを進めるかどうか、または受信されたタスクを処理するかどうかを判定するために、待ち時間に従って追加の情報を使用する。追加の情報の例は、タスクに対するサービス品質(QoS)または他の優先度レベル、プロセスまたはソフトウェアスレッド識別子(ID)、及びクライアント222A〜222Cの1つを識別するハードウェアIDなどである。ノード220Aがパワーダウンしていると電力コントローラ224が判定する場合、次いで、実施形態では、電力コントローラ224は、リンクインタフェースに対してドライバを無効にし、クライアント222A〜222Cに対してクロックを無効にし、DRAMが使用されるときにセルフリフレッシュを実行するようシステムメモリを設定する。
電力コントローラ224がノード220Aをパワーダウンさせた直後を含むいずれかのときに、呼び出し状態が発生してもよい。呼び出し状態は、ローカルキャッシュプローブに対して活性ノードからリモート要求を受信すること、システムメモリ内のローカルデータに対して活性ノードからリモートメモリ要求を受信すること、及びオペレーティングシステムから割り当てられたタスクを受信することなどのうちの1つ以上を含む。上記ステップは、パワーダウンさせる前にキャッシュをフラッシュすること、パワーダウンさせる前にプローブフィルタを取り消すこと、ノード220A〜220Dのそれぞれに固定割り込みIDを記憶すること、ノード220A〜220Dのマスタノードにノードに対する最下位割り込み優先度を記憶すること、及び特定のキャッシュラインを探索するブロードキャストプローブに対してパワーダウンしたノードの代わりにミス応答をスプーフすることを含む。加えて、オペレーティングシステムなどのソフトウェアは、更新がない初期の固定割り込みIDを維持することに加え、タスクを処理するようパワーダウンしたノードを呼び出すのではなく、ノードがスケジューリングタスクによってパワーダウンした状態にあるままでいる時間量を長くすること、及び活性ノードにデータを移動させることを支援する。
様々な実施形態では、ノード220Aは、コンピューティングシステム200内のマスタノードであり、割り込みコントローラ228は、調停割り込みに対して複数のプロセッサコアの割り込み優先度をコンピューティングシステム200に記憶する。実施形態では、ブロードキャストメッセージではなく、ユニキャストメッセージにより調停割り込みを扱うために使用されるステップは、処理ノード100に対する前に説明されたステップである。例えば、調停割り込みは、最下位割り込み優先度に基づいて、調停ロジックによって選択されたプロセッサコアによって使用可能にされる。いくつかの実施形態では、割り込みコントローラ228はまた、プロセッサコアの各々に対する固定割り込み識別子(ID)をコンピューティングシステム200に記憶する。実施形態では、固定割り込み識別子(ID)は、アドバンストプログラム可能割り込みコントローラ(APIC)IDである。調停割り込みとは対照的に、コンピューティングシステム200内の所与のプロセッサコアが固定割り込みをアサートするとき、所与のプロセッサコアは、特定のプロセッサコアに、アサートされた固定割り込みに一致する固定割り込みIDと共に固定割り込みを送信する必要がある。
実施形態では、固定割り込みIDは、順次方式において、オペレーティングシステムなどのソフトウェアによって割り当てられる。したがって、ノード220A内の割り込みコントローラ228及びノード220B〜220D内の各々の割り込みコントローラは、各々の個々の固定割り込みIDを記憶するのではなく、固定割り込みIDの範囲を記憶する。CPUが8個のコアを含み、その各々が2つのソフトウェアスレッドを処理するための2つのハードウェアスレッドを含む、前の例を使用して、CPUは、16個の固定割り込みIDを有する。例示される実施形態では、コンピューティングシステム200は、4個のノードを有し、その各々は、同様のCPUを有し、よって、64個の固定割り込みIDが存在する。ノード220A〜220Dのそれぞれが個々の固定割り込みIDを記憶するために64個のエントリテーブルを使用するのではなく、実施形態では、ノード220A〜220Dのそれぞれは、各々のノードに対して2つの固定割り込みID、または合計で8個の固定割り込みIDを記憶する。
一実施形態では、ノード220A〜220Dの各々は、各ノードに対して、順次的な固定割り込みIDの範囲の開始固定割り込みID及び終了固定割り込みをコンピューティングシステム200に記憶する。例えば、オペレーティングシステムがノード220Aに固定割り込みID0〜15を順次的に割り当てる場合、次いで、ノード220A〜220Dのそれぞれは、16個の固定割り込みIDの各々ではなく、ノード220Aに対して値0及び15を記憶する。コンピューティングシステム200におけるノード220C内の所与のコアが固定割り込みID9により固定割り込みをアサートするとき、コンピューティングシステム200に対する固定割り込みIDの相対的に小さな記憶装置へのルックアップは、ノード220AがID9により固定割り込みを使用可能にするために割り当てられたプロセッサコアを有することを示す。その後、ノード220Cは、固定割り込みID9を割り当てられたプロセッサコアにより固定割り込みを使用可能にするよう、ノード220Aにユニキャストメッセージを送信する。ID9により固定割り込みを使用可能にするために割り当てられたプロセッサコアを有するノード220A〜220Dのノードを発見するよう、ブロードキャストプローブは送信されない。
相対的に稀であるが、オペレーティングシステムが固定割り込みIDを再割り当てすることが可能である。いくつかの実施形態では、ノード220A〜220Dのうちの1つ以上は、割り当てられた固定割り込みIDの初期のソフトウェアコピーをスヌープする。一実施形態では、メモリアドレス範囲などの位置が既知であり、その後にチェックが続く読み出し操作は、いずれかの変更が行われたかどうかを判定するよう実行される。別の実施形態では、ソフトウェア処理は、初期値をチェックし、結果を報告するよう呼び出される。初期の固定割り込みIDの更新が行われる場合、次いで、一実施形態では、ノード220A〜220Dの各々は、固定割り込みIDのそのコピーを取り消す。それに続いて、ブロードキャストメッセージは、固定割り込みを使用可能にするために使用される。別の実施形態では、ノード220A〜220Dの各々は、固定割り込みIDのそのコピーを更新する。それに続いて、ユニキャストメッセージはなお、固定割り込みを使用可能にするために使用される。
ここで、図3を参照して、マルチノードコンピューティングシステムに対して電力管理を実行する方法300の一実施形態が示される。議論の目的のため、この実施形態におけるステップ(図4〜6におけるステップと共に)は、順番に示される。しかしながら、説明される方法の様々な実施形態では、説明される要素のうちの1つ以上は、同時に実行され、示されるのとは異なる順序で実行され、または完全に省略されることに留意されよう。他の追加の要素も必要に応じて実行される。本明細書で説明される様々なシステムまたは装置のいずれかは、方法300を実装するように構成される。
固定割り込み識別子(ID)は、マルチノードシステムにおいて初期化される(ブロック302)。固定割り込みIDは、どのプロセッサコアまたはプロセッサコア内のどのハードウェアスレッドが一致する固定割り込みIDにより固定割り込みを使用可能にするよう割り当てられるかを指定する。様々な実施形態では、オペレーティングシステムは、固定割り込みIDを初期化し、実施形態では、固定割り込みIDは、順次方式において初期化される。固定割り込みIDは、コンピューティングシステム内のノードにブロードキャストされる(ブロック304)。例えば、オペレーティングシステムは、コンピューティングシステムに対して、ノードの各々に固定割り込みIDのインジケーションを送信する。代わりに、1つ以上のノードは、コンピューティングシステムに対して、固定割り込みIDを取得するよう特定のメモリ位置をスヌープする。更なる他の実施例では、1つ以上のノードは、コンピューティングシステムに対して固定割り込みIDを判定するよう、オペレーティングシステムへのシステムコールを実行する。各ノードは、受信された固定割り込みIDに基づいて、各ノードに対して固定割り込みIDのコピーを更新する(ブロック306)。したがって、ブロードキャストメッセージは、固定割り込みを扱うために必要とされない。
複数のノードはタスクを処理する(ブロック308)。ノード内の1つ以上のクライアントは、コンピュータプログラムまたはソフトウェアアプリケーションを実行する。いくつかの実施形態では、複数のノードは、マルチソケットサーバ内にあり、バッチジョブは、複数のノードのうちの1つ以上にタスクを割り当てるオペレーティングシステムによって受信される。様々な実施形態では、マルチノードコンピューティングシステムは、非一様メモリアクセス(NUMA)アーキテクチャを利用し、ノードの各々は、NUMAノードである。
第1のノードが固定割り込みをアサートし(条件ブロック310の分岐で「はい」)、記憶された固定割り込みIDがなおも使用されている場合(条件ブロック312の分岐で「はい」)、次いで、固定割り込みを使用可能にする第2のノードは、記憶された固定割り込みIDに基づいて識別される(ブロック314)。固定割り込みは、ユニキャストメッセージにおいて第2のノードに送信される(ブロック324)。固定割り込みを使用可能にするためにブロードキャストメッセージが使用されない。したがって、第2のノードがアクティブ状態にある場合、固定割り込みを使用可能にするようパワーダウンしたノードは呼び出されていない。
ノードが固定割り込みをアサートしない場合(条件ブロック310の分岐で「いいえ」)、次いで、初期化された固定割り込みIDのソフトウェアコピーがスヌープされる(ブロック316)。前に説明されたように、コンピューティングシステム内のノードのうちの1つ以上は、割り当てられた固定割り込みIDの初期のソフトウェアコピーをスヌープする。一実施形態では、メモリアドレス範囲などの位置が既知であり、その後にチェックが続く読み出し操作は、いずれかの変更が行われたかどうかを判定するよう実行される。別の実施形態では、ソフトウェア処理は、初期値をチェックし、結果を報告するよう呼び出される。いずれかの更新が行われると判定される場合(条件ブロック318の分岐で「はい」)、次いで、複数のノード内の固定割り込みIDの記憶は、更新され、または取り消されるかのいずれかである(ブロック320)。取り消しまたは更新する決定は、更新の頻度及び固定割り込みIDのコピーを記憶するために使用される方式に基づいた設計選択である。前に説明されたように、各々の個々の固定割り込みIDではなく、固定割り込みIDの範囲が記憶される。範囲を記憶することは、使用される記憶の量を減少させる。
更新が行われないと判定される場合(条件ブロック318の分岐で「いいえ」)、次いで、方法300の制御フローは、タスクが複数のノードによって処理されるブロック308に戻る。第1のノードが固定割り込みをアサートするが(条件ブロック310の分岐で「はい」)、記憶された固定割り込みIDがもはや使用されない場合(条件ブロック312の分岐で「いいえ」)、次いで、固定割り込みを使用可能にする第2のノードは、システム内の他のノードへのブロードキャストメッセージに基づいて識別される(ブロック322)。その後、固定割り込みは、ユニキャストメッセージにおいて第2のノードに送信される(ブロック324)。
ここで、図4を参照して、マルチノードコンピューティングシステムに対して電力管理を実行する方法400の別の実施形態が示される。方法300と同様に、方法400に対するマルチノードコンピューティングシステムは、非一様メモリアクセス(NUMA)アーキテクチャを利用し、ノードの各々は、NUMAノードである。調停割り込みに対する割り込み優先度は、マルチノードシステムにおいて初期化される(ブロック402)。実施形態では、最下位評価割り込み優先度は、どのプロセッサコアまたはプロセッサコア内のどのハードウェアスレッドが調停割り込みを使用可能にするよう割り当てられるかを指定する。
割り込み優先度は、コンピューティングシステム内の複数のノードのマスタノードにブロードキャストされる(ブロック404)。例えば、オペレーティングシステムは、マスタモードに、コンピューティングシステムに対する割り込み優先度のインジケーションを送信する。代わりに、マスタノードは、調停割り込みに対する割り込み優先度を取得するよう、特定のメモリ位置をスヌープする。更なる他の実施例では、マスタノードは、コンピューティングシステムに対して割り込み優先度を判定するよう、オペレーティングシステムへのシステムコールを実行する。
複数のノードは、タスクを実行する(ブロック406)。ノード内の1つ以上のクライアントは、コンピュータプログラムまたはソフトウェアアプリケーションを実行する。いくつかの実施形態では、複数のノードは、マルチソケットサーバ内にあり、バッチジョブは、複数のノードのうちの1つ以上にタスクを割り当てるオペレーティングシステムによって受信される。様々な実施形態では、オペレーティングシステムがコアの割り込み優先度を更新することを可能にするバックグラウンド処理が稼働する。コアに対する割り込み優先度が更新される場合(条件ブロック408の分岐で「はい」)、次いで、コアに対する更新された割り込み優先度は、マスタノードに送信される(ブロック410)。いくつかの実施形態では、マスタノードは、各ノードに対する最下位割り込み優先度のみを記憶する。最下位割り込み優先度が更新されない場合、次いで、実施形態では、更新がマスタノードに送信されない。
ノードが調停割り込みをアサートしない場合(条件ブロック412の分岐で「いいえ」)、次いで、方法400の制御フローは、複数のノードがタスクを処理するブロック406に戻る。第1のノードが調停割り込みをアサートする場合(条件ブロック412の分岐で「はい」)、次いで、コアに対して最下位優先度を有するノードを識別する要求がマスタノードに送信される(ブロック414)。要求は、複数のブロードキャストメッセージではなく、単一のユニキャストメッセージである。マスタノードからの返信に基づいて、調停割り込みを使用可能にする第2のノードが識別される(ブロック416)。
複数のコアが同一の割り込み優先度を有するとき、実施形態では、マスタノードは、複数のノードから活性ノードを選択する。複数の活性ノードが存在する場合、次いで、マスタノードは、ラウンドロビン方式、要求ノードからの最小数のホップを有するノードを選択する距離方式、または他の選択方式を使用する。調停割り込みは、ユニキャストメッセージにおいて第2のノードに送信される(ブロック418)。ブロードキャストメッセージは、調停割り込みを使用可能にするために使用されない。したがって、マスタノード及び第2のノードの各々がアクティブ状態にある場合、固定割り込みを使用可能にするようパワーダウンしたノードは呼び出されていない。
ここで、図5を参照して、マルチノードコンピューティングシステムに対して電力管理を実行する方法500の別の実施形態が示される。方法300及び400と同様に、方法500に対するマルチノードコンピューティングシステムは、非一様メモリアクセス(NUMA)アーキテクチャを利用し、ノードの各々は、NUMAノードである。複数のノードは、タスクを処理する(ブロック502)。複数のノードの各々は、メモリ要求が使用可能にされるようにプローブフィルタを維持する(ブロック504)。
所与のノードは、その1つ以上のクライアントの各々がアイドルであると判定する場合(条件ブロック506の分岐で「はい」)、次いで、所与のノードは、プローブフィルタ内の各々のエントリを取り消す(ブロック508)。いくつかの実施形態では、所与のノードはまた、プローブフィルタ内のエントリを取り消す前に、そのシステムメモリにアクセスすることを試みているリモートメモリ要求が存在しないと判定する。所与のノードは、取り消されたエントリ及び対応するメッセージまたはリモートノードに送信されたプローブに起因して受信される、リモートノードに記憶されたダーティキャッシュラインによりそのシステムメモリを更新する(ブロック510)。その後、所与のノードがパワーダウンする(ブロック512)。様々な実施形態では、所与のノードをパワーダウンさせることは、リンクインタフェースに対してドライバを無効にすること、クライアント及び通信ファブリックに対してクロックを無効にすること、並びにDRAMが使用されるときにセルフリフレッシュを実行するようシステムメモリを設定することのうちの1つ以上を含む。
ここで、図6を参照して、マルチノードコンピューティングシステムに対して電力管理を実行する方法600の別の実施形態が示される。方法300〜500と同様に、方法600に対するマルチノードコンピューティングシステムは、非一様メモリアクセス(NUMA)アーキテクチャを利用し、ノードの各々は、NUMAノードである。複数のノードは、タスクを処理する(ブロック602)。第1のノードがキャッシュラインに対してブロードキャストプローブを生成する場合(条件ブロック604の分岐で「はい」)、次いで、ブロードキャストプローブは、システム内の他のノードに送信される(ブロック606)。コンピューティングシステム内の第2のノードは、ブロードキャストプローブを受信する(ブロック608)。
いずれかの隣接するノードがパワーダウンすると第2のノードが判定しない場合(条件ブロック610の分岐で「いいえ」)、次いで、第2のノードは、第2のノードに対して生成された応答を第2のノードから第1のノードに送信する(ブロック612)。第2のノードはまた、選択されたノードトポロジにおいて使用されるノードの接続性に基づいて、1つ以上の他の隣接するノードにブロードキャストプローブを中継する。
隣接する第3のノードがパワーダウンすると第2のノードが判定する場合(条件ブロック610の分岐で「はい」)、次いで、第2のノードは、第3のノードにブロードキャストプローブを送信することを行わない(ブロック614)。第2のノードは、第3のノードに対してミス応答を生成する(ブロック616)。第2のノードは、ミス応答を第2のノードから第1のノードに送信する(ブロック618)。したがって、第2のノードは、特定のキャッシュラインを探索するブロードキャストプローブに対して、パワーダウンした第3のノードの代わりに、ミス応答をスプーフする。ミス応答により応答するために、第3のノードは呼び出されない。その後、方法600の制御フローは、ブロック612に移動する。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令は、前に説明された方法及び/または機構を実装するために使用される。プログラム命令は、Cなどの高レベルのプログラミング言語においてハードウェアの挙動を記述する。代わりに、Verilogなどのハードウェア設計言語(HDL)が使用される。プログラム命令は、非一時的コンピュータ可読記憶媒体に記憶される。多数のタイプの記憶媒体が利用可能である。記憶媒体は、プログラム実行のためにコンピューティングシステムにプログラム命令及び付随するデータを提供するための使用の間に、コンピューティングシステムによってアクセス可能である。コンピューティングシステムは、プログラム命令を実行するように構成された少なくとも1つ以上のメモリ及び1つ以上のプロセッサを含む。
上記説明された実施形態は、実装態様の非限定的な例にすぎないことが強調されるべきである。上記開示が完全に認識されると、多数の変形及び修正が当業者にとって明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含するものと解釈されることが意図される。

Claims (20)

  1. 複数のノードを備え、前記複数のノードの各々は、
    アプリケーションを処理するように構成された1つ以上のクライアントと、
    前記複数のノードの他のノードに結合された複数のリンクと、
    電力コントローラと、を含み、
    前記複数のノードの第1のノードからブロードキャストプローブを受信したことに応答して、前記複数のノードの第2のノードは、
    前記複数のノードの第3のノードがパワーダウンしたと判定したことに応答して、前記第2のノードに直接接続された前記第3のノードに対してミス応答を生成し、
    前記第1のノードに前記ミス応答を送信する、ように構成されている、コンピューティングシステム。
  2. ブロードキャストプローブを生成したことに応答して、前記複数のノードの前記第1のノードは、
    前記複数のノードの第4のノードがパワーダウンしたと判定したことに応答して、前記第1のノードに直接接続された前記第4のノードに対してミス応答を生成する、ように構成されている、請求項1に記載のコンピューティングシステム。
  3. 前記第1のノードは、
    メモリ要求が使用可能にされるようにプローブフィルタを維持し、
    前記1つ以上のクライアントの各クライアントがアイドルであると判定したことに応答して、
    前記プローブフィルタ内の各エントリを取り消し、
    前記プローブフィルタ内のエントリを取り消した結果として受信されたダーティキャッシュラインにより前記第1のノードに接続されたシステムメモリを更新し、
    前記複数のリンク及び前記第1のノードの前記1つ以上のクライアントをパワーダウンさせる、ように構成されている、請求項1に記載のコンピューティングシステム。
  4. 前記1つ以上のクライアントの少なくとも1つのクライアントは、複数のコアを含み、前記複数のノードのマスタノードは、調停割り込みに対して前記複数のコアの割り込み優先度を前記複数のノードに記憶するように構成されている、請求項1に記載のコンピューティングシステム。
  5. 調停割り込みを検出したことに応答して、前記第1のノードは、
    前記マスタノードに、最下位優先度を有する所与のコア及び前記所与のコアを含む所与のノードを識別する要求を送信し、
    前記所与のコア及び前記所与のノードを識別する前記マスタノードからの応答に基づいて、前記所与のノードに、前記所与のコアによる前記調停割り込みを扱う要求を送信する、ように構成されている、請求項4に記載のコンピューティングシステム。
  6. 調停割り込みに対するコアの優先度が前記第1のノードにおいて更新されたと判定したことに応答して、前記第1のノードは、前記マスタノードに記憶された調停割り込みに対してコアの優先度を更新するために、前記マスタノードに前記更新された優先度を送信するように構成されている、請求項4に記載のコンピューティングシステム。
  7. 前記1つ以上のクライアントの少なくとも1つのクライアントは、複数のコアを含み、少なくとも前記第1のノードは、前記複数のコアの各コアに対して固定割り込み識別子(ID)のインジケーションを記憶するように構成されている、請求項1に記載のコンピューティングシステム。
  8. 固定割り込みを検出したことに応答して、前記第1のノードは、
    前記検出された固定割り込みの固定割り込みIDに一致する固定割り込みIDを有する所与のコアを含む所与のノードを識別し、
    前記所与のノードに、前記所与のコアによる前記固定割り込みを扱う要求を送信する、ように構成されている、請求項7に記載のコンピューティングシステム。
  9. 複数のノードによってアプリケーションを処理することを備え、前記複数のノードの各々は、
    前記アプリケーションを処理するように構成された1つ以上のクライアントと、
    前記複数のノードの他のノードに結合された複数のリンクと、
    電力コントローラと、を含み、
    前記複数のノードの第1のノードからブロードキャストプローブを受信したことに応答して、前記複数のノードの第2のノードは、
    前記複数のノードの第2のノードによって、前記複数のノードの第3のノードがパワーダウンしたと判定したことに応答して、前記第2のノードに直接接続された前記第3のノードに対してミス応答を生成し、
    前記第2のノードによって、前記第1のノードに前記ミス応答を送信する、ように構成されている、方法。
  10. ブロードキャストプローブを生成したことに応答して、
    前記第1のノードによって、前記複数のノードの第4のノードがパワーダウンしたと判定したことに応答して、前記第1のノードに直接接続された前記第4のノードに対してミス応答を生成することを備えた、請求項9に記載の方法。
  11. 前記第1のノードによって、メモリ要求が使用可能にされるようにプローブフィルタを維持することと、
    前記第1のノード内の前記1つ以上のクライアントの各クライアントがアイドルであると判定したことに応答して、
    前記プローブフィルタ内の各エントリを取り消すことと、
    前記プローブフィルタ内のエントリを取り消した結果として受信されたダーティキャッシュラインにより前記第1のノードに接続されたシステムメモリを更新することと、
    前記複数のリンク及び前記第1のノードの前記1つ以上のクライアントをパワーダウンさせることと、を更に備えた、請求項9に記載の方法。
  12. 前記1つ以上のクライアントの少なくとも1つのクライアントは、複数のコアを含み、前記方法は、前記複数のノードのマスタノードによって、調停割り込みに対して前記複数のコアの割り込み優先度を前記複数のノードに記憶することを更に備えた、請求項9に記載の方法。
  13. 調停割り込みを検出したことに応答して、前記方法は、
    前記第1のノードによって、前記マスタノードに、最下位優先度を有する所与のコア及び前記所与のコアを含む所与のノードを識別する要求を送信することと、
    前記第1のノードによって、前記所与のコア及び前記所与のノードを識別する前記マスタノードからの応答に基づいて、前記所与のノードに、前記所与のコアによる前記調停割り込みを扱う要求を送信することと、を更に備えた、請求項12に記載の方法。
  14. 調停割り込みに対するコアの優先度が前記第1のノードにおいて更新されたと判定したことに応答して、前記方法は、前記第1のノードによって、前記マスタノードに記憶された調停割り込みに対してコアの優先度を更新するために、前記マスタノードに前記更新された優先度を送信することを更に備えた、請求項13に記載の方法。
  15. 前記1つ以上のクライアントの少なくとも1つのクライアントは、複数のコアを含み、前記方法は、少なくとも前記第1のノードによって、前記複数のコアの各コアに対して固定割り込み識別子(ID)のインジケーションを記憶することを更に備えた、請求項9に記載の方法。
  16. 固定割り込みを検出したことに応答して、前記方法は、
    前記第1のノードによって、前記検出された固定割り込みの固定割り込みIDに一致する固定割り込みIDを有する所与のコアを含む所与のノードを識別することと、
    前記第1のノードによって、前記所与のノードに、前記所与のコアによる前記固定割り込みを扱う要求を送信することと、を更に備えた、請求項15に記載の方法。
  17. アプリケーションを処理するように構成された1つ以上のクライアントと、
    複数のノードの他のノードに結合された複数のリンクと、
    制御ロジックと、を備え、
    複数のノードの第1のノードからブロードキャストプローブを受信したことに応答して、前記制御ロジックは、
    前記複数のノードの第2のノードがパワーダウンしたと判定したことに応答して、前記処理ノードに直接接続された前記第2のノードに対してミス応答を生成し、
    前記第1のノードに前記ミス応答を送信する、ように構成されている、処理ノード。
  18. ブロードキャストプローブを生成したことに応答して、前記制御ロジックは、
    前記複数のノードの第3のノードがパワーダウンしたと判定したことに応答して、前記処理ノードに直接接続された前記第3のノードに対してミス応答を生成する、ように構成されている、請求項17に記載の処理ノード。
  19. 前記制御ロジックは、
    メモリ要求が使用可能にされるようにプローブフィルタを維持し、
    前記1つ以上のクライアントの各クライアントがアイドルであると判定したことに応答して、
    前記プローブフィルタ内の各エントリを取り消し、
    前記プローブフィルタ内のエントリを取り消した結果として受信されたダーティキャッシュラインにより前記処理ノードに接続されたシステムメモリを更新し、
    前記複数のリンク及び前記1つ以上のクライアントをパワーダウンさせる、ように構成されている、請求項17に記載の処理ノード。
  20. 前記1つ以上のクライアントの少なくとも1つのクライアントは、複数のコアを含み、前記処理ノードは、調停割り込みに対して複数のコアの割り込み優先度を前記複数のノードに記憶するように構成されている前記複数のノードのマスタノードである、請求項17に記載の処理ノード。
JP2020534391A 2017-12-21 2018-09-19 マルチノードシステムの低電力管理 Active JP6984022B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/850,261 2017-12-21
US15/850,261 US10671148B2 (en) 2017-12-21 2017-12-21 Multi-node system low power management
PCT/US2018/051789 WO2019125562A1 (en) 2017-12-21 2018-09-19 Multi-node system low power management

Publications (3)

Publication Number Publication Date
JP2021507412A JP2021507412A (ja) 2021-02-22
JP2021507412A5 JP2021507412A5 (ja) 2021-11-11
JP6984022B2 true JP6984022B2 (ja) 2021-12-17

Family

ID=63794701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020534391A Active JP6984022B2 (ja) 2017-12-21 2018-09-19 マルチノードシステムの低電力管理

Country Status (6)

Country Link
US (1) US10671148B2 (ja)
EP (1) EP3729233A1 (ja)
JP (1) JP6984022B2 (ja)
KR (1) KR102355989B1 (ja)
CN (1) CN111684426A (ja)
WO (1) WO2019125562A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725946B1 (en) * 2019-02-08 2020-07-28 Dell Products L.P. System and method of rerouting an inter-processor communication link based on a link utilization value
US11341069B2 (en) * 2020-10-12 2022-05-24 Advanced Micro Devices, Inc. Distributed interrupt priority and resolution of race conditions
CN116472780A (zh) 2020-11-20 2023-07-21 Lg电子株式会社 无线lan系统中请求关于发送mld中的ap的部分信息的方法和装置
CN112612726B (zh) * 2020-12-08 2022-09-27 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
US11620248B2 (en) * 2021-03-31 2023-04-04 Advanced Micro Devices, Inc. Optical bridge interconnect unit for adjacent processors
US11487340B1 (en) * 2021-06-24 2022-11-01 Advanced Micro Devices, Inc. Probe filter retention based low power state
US11703932B2 (en) * 2021-06-24 2023-07-18 Advanced Micro Devices, Inc. Demand based probe filter initialization after low power state
CN114490194B (zh) * 2022-04-19 2022-07-01 海光信息技术股份有限公司 掉电处理方法、功能节点、处理系统、设备和存储介质
US12050535B2 (en) * 2022-10-31 2024-07-30 Google Llc Dynamic migration of point-of-coherency and point-of-serialization in NUMA coherent interconnects

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4980836A (en) 1988-10-14 1990-12-25 Compaq Computer Corporation Apparatus for reducing computer system power consumption
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5617572A (en) 1995-01-31 1997-04-01 Dell Usa, L.P. System for reducing power consumption in computers
US5692202A (en) 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system
US6334167B1 (en) 1998-08-31 2001-12-25 International Business Machines Corporation System and method for memory self-timed refresh for reduced power consumption
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US6657634B1 (en) 1999-02-25 2003-12-02 Ati International Srl Dynamic graphics and/or video memory power reducing circuit and method
JP2003308246A (ja) 2002-04-17 2003-10-31 Fujitsu Ltd メモリコントローラのクロック制御装置及び方法
US7028200B2 (en) 2002-05-15 2006-04-11 Broadcom Corporation Method and apparatus for adaptive power management of memory subsystem
US7039740B2 (en) 2002-07-19 2006-05-02 Newisys, Inc. Interrupt handling in systems having multiple multi-processor clusters
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7673164B1 (en) * 2004-12-13 2010-03-02 Massachusetts Institute Of Technology Managing power in a parallel processing environment
US7800621B2 (en) 2005-05-16 2010-09-21 Ati Technologies Inc. Apparatus and methods for control of a memory controller
DE102005037635B4 (de) 2005-08-09 2007-07-12 Infineon Technologies Ag Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers
US7496777B2 (en) 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
EP1785982A1 (en) 2005-11-14 2007-05-16 Texas Instruments Incorporated Display power management
US7899990B2 (en) 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7613941B2 (en) 2005-12-29 2009-11-03 Intel Corporation Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state
US7873850B2 (en) 2006-10-11 2011-01-18 Hewlett-Packard Development Company, L.P. System and method of controlling power consumption and associated heat generated by a computing device
US7743267B2 (en) 2006-11-08 2010-06-22 Xerox Corporation System and method for reducing power consumption in a device
US7868479B2 (en) 2007-06-27 2011-01-11 Qualcomm Incorporated Power gating for multimedia processing power management
JP5169731B2 (ja) 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
US8181046B2 (en) 2008-10-29 2012-05-15 Sandisk Il Ltd. Transparent self-hibernation of non-volatile memory system
US8195887B2 (en) * 2009-01-21 2012-06-05 Globalfoundries Inc. Processor power management and method
US9465771B2 (en) * 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US8359436B2 (en) 2009-12-18 2013-01-22 Intel Corporation Core snoop handling during performance state and power state transitions in a distributed caching agent
US8402232B2 (en) 2009-12-23 2013-03-19 Oracle America, Inc. Memory utilization tracking
JP2011150653A (ja) * 2010-01-25 2011-08-04 Renesas Electronics Corp マルチプロセッサシステム
US8656198B2 (en) 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8438416B2 (en) 2010-10-21 2013-05-07 Advanced Micro Devices, Inc. Function based dynamic power control
US20120254526A1 (en) 2011-03-28 2012-10-04 Advanced Micro Devices, Inc. Routing, security and storage of sensitive data in random access memory (ram)
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US20130311804A1 (en) 2012-04-30 2013-11-21 Vivek Garg Master slave qpi protocol for coordinated idle power management in glueless and clustered systems
US20140095801A1 (en) 2012-09-28 2014-04-03 Devadatta V. Bodas System and method for retaining coherent cache contents during deep power-down operations
US9213643B2 (en) 2013-03-13 2015-12-15 Applied Micro Circuits Corporation Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system
US9983652B2 (en) 2015-12-04 2018-05-29 Advanced Micro Devices, Inc. Balancing computation and communication power in power constrained clusters
US11054887B2 (en) 2017-12-28 2021-07-06 Advanced Micro Devices, Inc. System-wide low power management

Also Published As

Publication number Publication date
JP2021507412A (ja) 2021-02-22
EP3729233A1 (en) 2020-10-28
US10671148B2 (en) 2020-06-02
CN111684426A (zh) 2020-09-18
US20190196574A1 (en) 2019-06-27
WO2019125562A1 (en) 2019-06-27
KR20200100152A (ko) 2020-08-25
KR102355989B1 (ko) 2022-02-08

Similar Documents

Publication Publication Date Title
JP6984022B2 (ja) マルチノードシステムの低電力管理
US10248564B2 (en) Contended lock request elision scheme
JP7108135B2 (ja) 並び替えの間のキャッシュ一貫性を維持する方法
US20060041715A1 (en) Multiprocessor chip having bidirectional ring interconnect
US11461151B2 (en) Controller address contention assumption
US7761696B1 (en) Quiescing and de-quiescing point-to-point links
US20140040526A1 (en) Coherent data forwarding when link congestion occurs in a multi-node coherent system
US8447897B2 (en) Bandwidth control for a direct memory access unit within a data processing system
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
US7577755B2 (en) Methods and apparatus for distributing system management signals
US10872004B2 (en) Workload scheduling and coherency through data assignments
US11403221B2 (en) Memory access response merging in a memory hierarchy
US20170228164A1 (en) User-level instruction for memory locality determination
US20210333860A1 (en) System-wide low power management
US20220091657A1 (en) Mechanism for performing distributed power management of a multi-gpu system
CN115443453A (zh) 用于减少传输延迟的链路关联
US9285865B2 (en) Dynamic link scaling based on bandwidth utilization
US11874783B2 (en) Coherent block read fulfillment
US20170337084A1 (en) Compute unit including thread dispatcher and event register and method of operating same to enable communication
KR102719995B1 (ko) 시스템-전반 저전력 관리
US20240103730A1 (en) Reduction of Parallel Memory Operation Messages
TW202345009A (zh) 中斷控制器、設備、中斷控制方法、及電腦可讀取媒體

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211004

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211004

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: 20211026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211124

R150 Certificate of patent or registration of utility model

Ref document number: 6984022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150