JP2009134716A - マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム - Google Patents

マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム Download PDF

Info

Publication number
JP2009134716A
JP2009134716A JP2008290605A JP2008290605A JP2009134716A JP 2009134716 A JP2009134716 A JP 2009134716A JP 2008290605 A JP2008290605 A JP 2008290605A JP 2008290605 A JP2008290605 A JP 2008290605A JP 2009134716 A JP2009134716 A JP 2009134716A
Authority
JP
Japan
Prior art keywords
memory
power consumption
cache
cache line
line
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.)
Granted
Application number
JP2008290605A
Other languages
English (en)
Other versions
JP5315017B2 (ja
Inventor
Jr Robert H Bell
ロバート・エイチ・ベル・ジュニア
Thomas Edward Cook
トーマス・エドワード・クック
Naresh Nayar
ナレシュ・ネイヤー
Benny Capps Luis Jr
ルイス・ベニー・キャプス・ジュニア
Michael J Shapiro
マイケル・ジェイ・シャピロ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009134716A publication Critical patent/JP2009134716A/ja
Application granted granted Critical
Publication of JP5315017B2 publication Critical patent/JP5315017B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0817Cache consistency protocols using directory methods
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 要求されたキャッシュ・ラインを各メモリ・ソースにおいて感知された温度値または電力消費値に基づいて、マルチプロセッサ・システムの複数のメモリ・ソースから与えるディレクトリィ・ベースのコヒーレンシ方法、システム及びプログラムを提供する。
【解決手段】 要求されたキャッシュ・ラインを共有するメモリ・ソース(例えば、コア、キャッシュ・メモリ、メモリ・コントローラ等)のそれぞれに温度または電力消費センサを設けることにより、制御論理装置は、温度または電力消費センサからの信号を使用して、許容された電力消費を伴うメモリ・ソースだけに前記要求されたキャッシュ・ラインを要求元に与えることを指示する信号を与えることにより、どのメモリ・ソースが前記要求されたキャッシュ・ラインを与えるかを決定する。
【選択図】図4

Description

本発明は、データ処理・システムの分野に関する。一つの態様において、本発明は、マルチプロセッサ・システム内のキャッシュ・メモリの管理に関する。
各プロセッサに1つ以上のレベルのキャッシュ・メモリを有するマルチプロセッサ・コンピュータ・システムにおいては、キャッシュ・コヒーレンシ(キャッシュの一貫性、cache coherency)は、代表的には、スヌープ・プロトコル又はディレクトリィ・ベース・プロトコルを使用してこのようなシステムに亘って維持される。スヌープ・プロトコルが、現在のマルチプロセッサ・システムにキャッシュ・ライン(上位キャッシュ・メモリと下位キャッシュ・メモリとの間のデータ転送単位であってラインともいう)のシステム・コヒーレンシ(一貫性)を与えるために使用される場合には、或る場合には全ての要求の30%にまで達する大量のキャッシュ・ラインの共有が生じる。これは、コヒーレンシを維持するためにスヌープ・プロトコルを使用する例えばPOWER5/6のようなマルチコア・システムを参照することにより理解されるであろう。このようなシステムにおいては、第2コアにより(読み取り又は以前の書き込みのために)既にアクセスされている第1コアによる読み取り動作のために要求されるラインは、第2コアにおいて共有されるとしてマークされ、第1コアへ転送されるか又は与えられ、そして第1コアにおいて共有されるとしてマークされる。次いで、両コアは、更に、互いに連絡を行うことなく、共有されたラインを読み取りのために並列にアクセスする。このプロトコルにより、多数のコアは同じラインを共有し、その結果、他のコアが2つ以上のコアにより既に共有されているラインを(共有若しくは排他的な読み取りのために)アクセスしようとするとき、どちらのコアが共有されたコピーを与えるかについての選択がなされなければならない。代表的なキャッシュ割り当てモデルは、例えば、要求元のコアに物理的に最も近いコアがラインを与えることを決定するというように、或る集中管理する中央化された制御ヒューリスティクスに基づいてラインを与える。幾つかのインプリメンテーションにおいては、共有されるラインのある特定なコアのバージョンは、将来のリクエスト(要求)のために与えられる共有コピーとしてマークされ、これにより、このキャッシュ・ラインをアクセスする時間を減少する。
メモリのアクセス速度は歴史的にキーとなる設計目的であるが、今日のマルチプロセッサにおいては、電力消費は、考慮されるべきますます重要な設計の制約であり、特に、多数の異種のコア・システム内の各コアにおける電力消費が異なるとき、又は同種のコアが完全に対称的に利用されないときに、各コアにおける電力消費が異なるようになる。更に、キャッシュ階層の或るレベル(例えば、第1処理ユニットのL2キャッシュ)が、共有ラインを他のコアに又は他の処理ユニットのL2キャッシュに与えるまたは介入(intervene)するためにアクセスされるとき、電力消費(従ってコアの温度)は増大する。明らかなように、このような電力消費は、制御装置またはキャッシュのサブ・アレイをパワー・アップするとき、キャッシュからラインを読みとるとき、そしてラインをバスを横切って要求元コアに転送するときに生じる。幾つかの場合には、1つ以上のコア及びこれらに関連するキャッシュ階層が著しい量の電力を消費し、そして全てのコアが著しい量の電力を消費するとき、全てのコアが“ホット”となり得る。
“ホット”コアの問題を解決するために、例えば“ホット”・コアの電力を低減すること、又は作業を“クール”コア(即ち、過大な電力を消費していないコア)へ移すことなどの試みがなされてきたが、このような解決策は、キャッシュ・ラインを要求元キャッシュへ一貫して与える機構をもたらさず、かえって“ホット”コアへの電力を減少することにより処理能力へ望ましくない制限を課すことになる。従って、キャッシュ・ラインを要求元コアへ効率的に且つ迅速に与えることにより、マルチプロセッサ・システムの電力消費の効果を制御するシステム及び方法が必要とされている。更に、個々のコアの電力消費状態を考慮して、キャッシュ・ライン・リクエストに対してシステム・コヒーレンシを与えるマルチコア・システム及び方法が必要とされている。当業者は、従来のキャッシュ附与に対する解決法の制限及び不利点を、図面を参照しながら本明細書の説明を読むことにより理解するであろう。
ディレクトリィ・ベースのコヒーレンシ・プロトコルを使用するマルチプロセッサ・システムのための省電力型のライン付与システム及び方法が提供され、ここで、各メモリ・ソースにおいて感知された温度または電力消費に基づいて複数のメモリ・ソースから与えられる。要求されたラインを共有する複数のメモリ・ソース(例えば、コア、キャッシュ・メモリ、メモリ・コントローラ等)のそれぞれに温度または電力消費センサを配置することにより、制御論理装置は、電力感知信号を使用して、許容される電力消費を示すメモリ・ソースだけに、ラインを要求元に与えることを示す信号を与えることにより、どのメモリ・ソースが要求元にラインを供給するかを決定することができる。選択された実施例において、特定なコアまたはメモリ・コントローラがラインを要求元コアに与えるに適任でないことを示す信号を制御ヒューリスティクスに与えるために、例えばダイオードのようなコアの温度を感知するセンサが、個々のメモリ・ソース内に一体的に位置決めされ、但し、高電力コアへの電力の低減を行わない。例えば、2つのコアのそれぞれが、それぞれのキャッシュ・メモリに要求されたラインを共有しているならば、要求元コアに物理的に近接しそして電力が最大の閾値に到達していないコアが、ラインのコピーを与える。さもなければ、ラインは他の共有コアまたはメモリ・コントローラのバッファにより与えられる。ディレクトリィ・ベースのコヒーレンシ・プロトコル・システムが、キャッシュ・コヒーレンシを維持するために使用されるとき、電力センサからの信号は、要求元コアが共有されたラインまたは排他的なラインを望んでいるか否かに係わらず使用される。ディレクトリィ・ベースのコヒーレンシ・プロトコルの選択された実装において、或るキャッシュ・ラインへ排他的にアクセスするリクエストは、中央の(集中管理される)ディレクトリィに送られてこのディレクトリィが高電力のコアにあるラインのコピーを無効にさせ、この結果、要求されたキャッシュ・ラインは、低電力消費のコアまたはメモリ・コントローラから与えられる。
種々な実施例に従うと、要求されるキャッシュ・ラインは、本明細書に記載する方法または装置あるいはこの両方を使用するソフトウエアの制御の元でマルチプロセッサ・データ処理システムにおいて与えられ、ここで、これらはコンピュータが実行可能な命令から成るコンピュータ・プログラム・コードを備えるデータ処理システムにおいて実装されることができる。どのような形で実装されたとしても、第1キャッシュ・ラインに対するリクエストは、マルチプロセッサ・データ処理システムの動作の間に発生される。これに応答して、この要求されたキャッシュ・ラインのコピーを記憶している1つ以上のメモリ・ソース(例えば、コア、キャッシュ・メモリ、メモリ・コントローラ等)が同定される。更に、例えば各メモリ・ソースの温度値または電力消費値を測定するためにメモリ・ソースに設けられたセンサを監視することにより、これら複数のメモリ・ソースのそれぞれの温度値または電力消費値が収集される。これら収集された温度値または電力消費値に基づいて、要求されたキャッシュ・ラインを与える第1メモリ・ソースが複数のメモリ・ソースの中から選択され、ここで、第1メモリ・ソースは、許容される温度値または電力消費値を有することに少なくとも基づいて選択される。例えば、第1メモリ・ソースは、他のメモリ・ソースに関連する第2温度値または電力消費値よりも低い第1温度値または電力消費値を有するメモリ・ソースを選択することにより選択されることができる。第1メモリ・ソースに関連する第1温度値または電力消費値を、他の1つ以上のメモリ・ソースに関連する1つ以上の温度値または電力消費値と比較することにより、クール状態にあるメモリ・ソースが選択される。他方、もしも複数のキャッシュ・メモリのいずれもが許容される温度値または電力消費値を有しないならば、許容される温度値または電力消費値を有するメモリ・コントローラが、要求されて第1キャッシュ・ラインを与えるために選択される。ディレクトリィ・ベースのプロトコルを実装するために第1メモリ・ソースは、複数のメモリ・ソースのそれぞれの温度値または電力消費値と共にライン・ステート情報を中央のディレクトリィに維持し、そして、要求された第1キャッシュ・ラインを与える第1メモリ・ソースを選択することにより選択され、ここで、第1メモリ・ソースは、許容される温度値または電力消費値を有することに少なくとも基づいて選択され、そして中央ディレクトリィからこの第1メモリ・ソースに、要求された第1キャッシュ・ラインを与えることを命令する選択メッセージを送る。
各ソースにおいて感知された温度値または電力消費値信号に基づいて、或る要求されてキャッシュ・ラインをそれぞれが共有する複数のソースから、上記要求されたキャッシュ・ラインを要求元へコヒーレンシに(一貫性を保って)与え、この結果、許容される温度値または電力消費値を有するソースだけに、この要求されたキャッシュ・ラインを与えることを命令する信号が与えられる、ディレクトリィ・ベースのコヒーレンシ・プロトコル方法、システム及びプログラムを開示する。マルチ(複数)コア・チップの各コアにおける温度値または電力消費値を感知するために、温度センサとしてのダイオードがチップの各コアに設けられる。代表的な温度範囲である20℃乃至100℃に対するダイオードの出力電圧は、0.5V乃至1.0Vである場合、これの出力電圧が監視されそしてレジスタに記憶され、そして、複数のソース・コアの中から、予定の閾値よりも小さな温度値を有するソース・コアを選択するために制御ヒューリスティクスにより使用される。ここに開示する技術は、マルチプロセッサ・チップ上でキャッシュ・ラインを与えるディレクトリィ・ベースのコヒーレンシ・プロトコルに関連して使用されることができる。マルチプロセッサにおけるディレクトリィ・ベースのコヒーレンシ・プロトコルにおいては、或るコアからのリクエストは、通常メモリ・コントローラ近傍に配置され、ラインのコピー及びライン・ステートを有する全てのコアのリストを維持する中央のディレクトリィに送られる。中央のディレクトリィの論理装置は、各コアにおいて感知された温度値信号または電力消費値信号に基づいて、どのコアがラインを送り返すか(return)を選択し、そしてこのコアにラインを要求元に与えることを指示する信号を与え、その結果、許容される温度値または電力消費値を有するコアだけが、要求されたラインを与えるように指示される。以下に詳細に説明するように、用語“コア”は、各プロセッサ・コアの論理回路、L1キャッシュ、L2キャッシュ、及びL3キャッシュを指す。
本発明の種々な例示的実施例を図面を参照して以下に説明する。フロー・チャート及びブロック・ダイアグラムは、或るマシンを与える汎用コンピュータ、専用コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサに与えられるコンピュータ・プログラム命令、ファームウエア、ハードウエア回路により全体的または部分的にインプリメントされることができ、その結果、命令(コンピュータまたは他のプログラム可能なデータ処理装置により実行される)は、フロー・チャート及びブロック・ダイアグラムで指定される機能を行うことは明らかである。以下に、図面を参照しながら、本発明の種々な例示的な実施例を説明する。
図1を参照すると、ここに示す回路図は、本発明の選択された実施例を具体化した対称的なマルチプロセッサ・コンピュータ・システムの例示的なアーキテクチャを示す。コンピュータ・システム100は、1つ以上の処理グループ(プロセッシング・グループ)に配列された1つ以上の処理ユニットを有し、そして図示のように、処理グループ10内に4つのプロセッサ即ち処理ユニット11,21,31,及び41を含む。処理ユニットはシステム・バスを介して、システム100の他のコンポーネントと通信するシステム・バス50は、1つ以上のサービス・プロセッサ60A及び60B,システム・メモリ装置61,メモリ制御装置62、共有される即ちL3システム・キャッシュ66または種々な周辺装置69あるいはその両方に接続されている。プロセッサ・ブリッジ70は、追加のプロセッサ・グループを相互接続するために使用される。図示してはいないが、コンピュータ・システム100が、このコンピュータ・システムが最初にターン・オンされる(ブートされる)毎に、システムの基本的な入/出力ロジックを記憶し、そして周辺装置の1つからオペレーティング・システムを探し出して詰め込むファームウエアを含むことは当業者により理解されるであろう。
一端詰め込まれると、システム・メモリ装置61(ランダム。アクセス・メモリ、即ちRAM)は、オペレーティング・システム61A及びアプリケーション・プログラム61Bを含む、プロセッシングユニットにより使用されるプログラム命令及びオペランド・データを不揮発性状態で(一時的に)記憶する。更に、例えば周辺コンポーネント相互接続(PCI)ホスト・ブリッジを使用するPCIローカル・バスのような任意の所望のバス接続機構を使用して、任意の周辺装置69が、システム・バス50に接続されることができる。PCIブリッジは待ち時間の短いパスを与え、そしてこれを介して、処理ユニット11,21,31及び41は、バス・メモリまたはI/Oアドレス空間内の任意の場所にマップされているPCI装置をアクセスすることができる。又、周辺装置69を相互接続するPCIホスト・ブリッジは、PCI装置にシステム・メモリ61をアクセスさせる広帯域幅のパスを与える。このようなPCI装置は例えば、ネットワーク・アダプタ、永久記憶装置(即ち、ハードディスク)に対する相互接続を与える小型コンピュータ・システム・インターフェイス(SCSI)アダプタ、並びにキーボード、表示装置に接続されるグラッフィック・アダプタまたは表示装置と共に使用されるグラッフィック・ポインティング装置(例えば、マウス)あるいはこれらを含む入出力(I/O)装置へ接続される例えばインダストリィ・スタンダード・アキテクチャ(ISA)のような拡張バス・ブリッジを含む。サービス・プロセッサ60は、ダイレクト・メモリ・アクセス(DMA)パスを含む修正されたPCIスロット内に代わりとして入れられることができる。
対称的なマルチプロセッサ(SMP)コンピュータにおいては、全ての処理ユニット11,21,31及び41は、一般的に同じである。即ち、これらの全ては、動作するために共通なセットまたはサブセットの命令及びプロトコルを使用し、そして一般的に同じアーキテクチャを有する。処理ユニット11に関して示されているように、各処理ユニットは、コンピュータを動作させるためにプログラム命令を実行する1つ以上のプロセッサ・コア16a及び16bを含むことができる。プロセッシング・ユニットの例は、Intel Corporation社により販売されているプロセッサ製品であり、これは、全て集積回路により形成された種々な実行ユニット、レジスタ、バッファ、メモリ及び他の機能ユニットを有する単一の集積回路スーパースカラー・マイクロプロセッサから成る。プロセッサ・コアは、縮小命令セットコンピュータ(RISC)技法に従って動作し、そしてスーパースカラー・アーキテクチャのパフォーマンスを更に改善するように、パイプライン及び命令を順不同で実行することを使用することができる。
図示のように、各プロセッサ・コア16a及び16bは、高速メモリ装置で構成されるオン・ボード・キャッシュ・メモリ18a及び18b(代表的には、分離された命令及びデータ・キャッシュ)を含む。一般的に、キャッシュは、システム・メモリ61から値を詰め込む長いステップをなくすることによって処理速度を高くするためにプロセッサにより反復的にアクセスされる値を一時的に記憶するために使用される。処理ユニットは例えば第2レベル(L2)のキャッシュ12のような他のキャッシュを含むことができ、これはキャッシュ・コントローラ14と共に、それぞれコア16a及び16bの一部であるL1キャッシュ18a及び18bの両方をサポートする。システム・バス50を介してアクセスされることができる例えばL3キャッシュ66のような追加のキャッシュ・レベルが与えられることができる。最も高いL1から最も低いL1までの各キャッシュ・レベルに行くに従って、記憶容量が次第に増加し、但しアクセス時間が長くなる。例えば、プロセッサ・コア(例えば、16a)のオン・ボードL1キャッシュ(例えば18a)は128Kバイトの記憶容量を有し、L2キャッシュ12は4Mバイトの記憶容量を有し、そしてL3キャッシュ66は32Mバイトの記憶容量を有する。欠陥が生じた処理ユニットのコンポーメントの修理/交換を容易にするために、各処理ユニット11,21,31及び41は、交換可能な回路ボード、プラグ式のモジュール、またはモジュール形式であってシステム100から容易に取り外されて交換され、インストールされ、またはシステムから取り外されることができる他のフィールド交換型のユニット(FRU)で構成されることができる。
この分野の当業者にとって明らかであるように、キャッシュ・メモリは、それぞれ種々な命令及びデータ値を記憶する複数個のメモリ・ブロックを有する。任意のキャッシュの複数ブロックは、セットまたは合同クラスと呼ばれるブロックのグループに分けられている。セットは、所定のメモリ・ブロックが存在するキャッシュ・ブロックの集合である。任意に与えられたメモリ・ブロックに対して、ブロックが予めセットされたマッピング機能に従ってマップされたユニークなセットがキャッシュ内にある。セット内のブロックの数をキャッシュのアソーシエーティブと呼ぶ。かくして、情報は、キャッシュ・ラインまたはブロックの形でキャッシュ・メモリ内に記憶され、ここで、例示的なキャッシュ・ライン(ブロック)は、アドレス・フィールド、ステート・ビット・フィールド、包含(inclusivity)ビット・フィールド及び実際のプログラム命令またはオペランド・データを記憶するバリュー・フィールドを含む。ステート・ビット・フィールド及び包含ビット・フィールドは、キャッシュに記憶されている値の有効性を示すことによりマイクロプロセッサ・コンピュータ・システムにおけるキャッシュ・コヒーレンシ(一貫性)を維持するために使用される。アドレス・フィールドは、対応するメモリ・ブロックのフル・アドレスのサブセットである。入力アドレス・ビットとアドレス・フィールドの1つ(ステート・フィールド・ビットがこのラインが現在キャッシュ内で有効であることを示す)との比較が、キャッシュ“ヒット”を示す。キャッシュのアドレス・フィールドの全ての集合(或る場合には、ステート・ビット・フィールド及び包含ビット・フィールド)をディレクトリィと呼び、そしてバリュー・フィールドの全ての集合は、キャッシュ・エントリィ・アレイである。
図1に示されているように、コンピュータ・システム100は、各コア(例えば、16a,16b,46a,46b)内のL1キャッシュ・メモリ(例えば、18a、18b、48a、48b)、各処理ユニット(例えば、11,41)内のL2キャッシュ・メモリ(例えば、12,42)、共有されるL3キャッシュ66及びメモリ・コントローラ62内のバッファ・メモリ64を含む複数のメモリ・ソースを含む。或る共有キャッシュ・ラインを与える(source)のに温度または電力消費を使用するために、各メモリ・ソースは、その温度及び電力ステータスを知らせるために使用される温度または電力消費センサを含む。かくして、電力/温度センサ(例えば17a、47a)が、各L1キャッシュ(例えば、18a,48a)にまたはこれらの内部に配置されている。更に、またはこれの代わりに、電力/温度センサ(例えば13,43)が、各L2キャッシュ(例えば、12,42)にまたはこれの内部に配置されており、電力/温度センサ(例えば、67)が各L3キャッシュ66内にまたはこれの内部に配置されており、そして、電力/温度センサ(例えば63)が各メモリ・コントローラ62にまたはこれらの内部に配置されている。例示的な実施例においては、各電力/温度センサは、メモリ・ソースの温度を感知するように配置されたダイオードとして形成されることができ、このダイオードの出力電圧は、20℃乃至100℃の代表的な温度範囲に対して、0.5V乃至1.0Vの間で変化する。或る与えられたメモリ・ソースの温度をモニタ(監視)するために、各メモリ・ソースは、ダイオードの出力電圧を記憶する記憶装置(例えば、レジスタ)を含むことができ、またはメモリ・ソースの温度または電力消費が温度または電力消費の閾値を横切ったか否かを中央の(集中化された)ディレクトリィ65に知らせる(以下に説明する)。かくして、各コア(例えば、16a、16b)は、これに関連する電力/温度センサ(例えば、17a、17b)により与えられる電力または温度ステータス情報を監視する。更にまたはこれの代替として、各処理ユニット(例えば、11,41)は、L2キャッシュの電力/温度センサ(例えば、13,43)により与えられる電力または温度ステータス情報を監視し、L3キャッシュ66は、L3キャッシュの電力/温度センサ67により与えられる電力または温度ステータス情報を監視し、そして、メモリ・コントローラ62は、このメモリ・コントローラの電力/温度センサ63により与えられる電力または温度ステータス情報を監視する。
本発明の選択された実施例に従うと、電力消費または温度ステータス情報は、ディレクトリィ・ベースのコヒーレンシ・プロトコルをインプリメントするマルチプロセッサ・システムの或る共有されたキャッシュ。ラインを与えるまたは介入(intervene)するために使用される。このために、コンピュータ・システム100は、メモリ・コントローラ62において集中化されたディレクトリィ65を含み、このディレクトリィは、ラインのコピー及びライン・ステータスを有する全てのキャッシュ・メモリのリストを維持することによりキャッシュ・メモリ・アクセスを調整する。集中化されたディレクトリィ65は、どのコアがラインを戻すかを選択し、そしてこのコアに、ラインを要求元に与えることを指示するディレクトリィ論理装置を含む。又、集中化されたディレクトリィ65は、制御論理装置を含み、そしてこの装置は、各メモリ・ソースから得られた電力消費または温度ステータス情報を使用して、2つ以上のメモリ・ソースにより共有されている要求されたキャッシュ・ラインを与えるための“クール(冷却状態)”のメモリ・ソースを選択し、これにより、“オーバーヒートされた”メモリ・ソースを排除する。
電力消費または温度ステータス情報が、ディレクトリィ・ベースのコヒーレンシ・プロトコルをインプリメント(実装)するマルチプロセッサ・システムにおいて共有されるキャッシュ・ラインを与えるまたは介入するために使用される本発明の選択された実施例を更に示すために図2を参照する。図2は、キャッシュの一貫性(consistency)のためにディレクトリィ・ベースのコヒーレンシ・プロトコルに省電力型のライン附与(power aware line intervention)を実装するマルチプロセッサ・システム200の種々なコア相互間の例示的な信号の流れを示す。システム200において、複数のコア201,202,203及び204は、メモリ・コントローラ2111に対して通信可能に結合されている。マルチプロセッサ内のディレクトリィ・ベースのコヒーレンシ・プロトコルにおいて、第1コア(例えば、201)からのキャッシュ・ラインに対する要求(リクエスト)は、メモリ・コントローラ211等に配置され集中化されたディレクトリィ210に送られる。集中化されたディレクトリィ構造210は、ラインのコピー及びライン・ステートを有する全てのコアのリストを維持している。更に、集中化されたディレクトリィ210は、各コアの電力消費及び温度ステータスを示す熱信号情報を、コア201,202,203及び204のそれぞれから集める。或るキャッシュ・ラインを要求するリクエストに応答して、集中化されたディレクトリィの論理装置は、“クール”コアまたはメモリ・コントローラをソースとして選択することによりこの要求されたキャッシュ・ラインに対するソースを選択するために、ディレクトリィ210からの熱信号情報及びライン・ステート情報を使用してどのコアがラインを戻すかを選択する。選択されたソースは要求されたラインを送るようにディレクトリィ210により命令され、そしてディレクトリィ及び関連するコア内の各ライン・ステート情報が更新される。
図2に示す例示的な信号の流れにおいては、第1のコア201が集中化されたディレクトリィ210に初期要求(リクエスト)221を送ることにより或るキャッシュ・ラインを要求する。この要求に開始することにおいて、この第1のコア201は、要求元コアとして扱われる。この初期要求221を受け取った時点で、集中化されたディレクトリィ210は、コア201,202,203及び204の各キャッシュ・メモリに対するライン・ディレクトリィ・ステート情報と、各コアの熱信号情報とを予め維持している。例えば、もしも第2のコア202が要求されたキャッシュ・ラインの無効または変更されたコピーを含んでいるならば、集中化されたディレクトリィ210は、この特定なコア及びこれのキャッシュ・ライン・ステータスを同定するステータス情報(例えば、“i”または“m”、ここで“i”は“無効”を示し、そして“m”は変更されたことを示す)を記憶する。同様に、もしも第3のコア203が、要求されたキャッシュ・ラインの共有コピーを含んでいるならば、集中化ディレクトリィ210は、この特定なコア及びこれのキャッシュ・ライン・ステータスを同定するステータス情報(例えば、コア 203:s、ここで“s”は共有を示す)を記憶する。同様に、もしも第4のコア204が、要求されたキャッシュ・ラインの排他的または専用(exclusive)コピーを含むならば、集中化ディレクトリィ210は、この特定なコア及びこれのキャッシュ・ライン・ステータスを同定するステータス情報(例えば、コア 204:e、ここで“e”は専用を示す)を記憶する。勿論、2つ以上のコア(例えばコア203及び204)が要求されたキャッシュ・ラインの共有コピーを含むことができ、この場合、集中化ディレクトリィ210は、共有即ち“s”キャッシュ・ライン・ステータスを同定するステータス情報を記憶する。
上述のように、各コアは、例えば熱信号222乃至225を集中化ディレクトリィ210に送ることにより、これに関連するメモリ・ソースの熱信号情報(T)を集中化ディレクトリィ210に与える。更に、メモリ・コントローラ211は、これ自身の熱信号情報をディレクトリィ210に与える。例示的な実施例においては、マルチプロセッサの各コア210−204及びメモリ・コントローラ211は、これらが電力消費閾値を超えたか否かを連続的にまたは規則的にディレクトリィ210に知らせる。このことは、電力/熱ダイオード・センサからの出力電圧を予定の閾値と比較し2つのステート(即ち、H(高温度)及びL(低温度))のうちの1つのステートを検出するというような所望の監視及び報告方式を使用して行われる。この場合、熱信号情報を記憶するのに単一ビットが集中化ディレクトリィ210において使用され得るが、もしも追加の熱または電力消費レベル(例えば、非常にホット、ホット、暖かい及びクール)が要求されるならば、追加のビットを使用することができる。
キャッシュ・ライン要求(リクエスト)を例えばコア201から受け取ると、集中化ディレクトリィ210は制御論理装置を使用して、どのメモリ・ソース202,203,204及び211がこの要求されたラインを要求元コア201に与えるまたは介入することができるかを選択する。例えば、熱信号ビットが、集中化ディレクトリィ210の制御論理/等価(equation)装置に送られ、この装置は、どの共有コアがこのラインを要求元マスター・コアに与えるかを決定する。もしも2つのコア(例えば、203,204)が、このラインを共有しておりそして一方が“クール”で他方が“ホット”であるならば、“クール”状態にあるコア(例えば、203)が、このラインのソース即ち送り元となる。1つのメモリ・ソースが選択されると、集中化ディレクトリィ210は、要求されたキャッシュ・ラインを要求元コアへ送るための命令を発生し、これと共にこの供給元コア及び要求元コアに対する新たなライン・ステート情報を、選択されたメモリ・ソースへ送る。要求されたキャッシュ・ラインが2つのコア(例えば、203及び204)により共有されている場合には、集中化ディレクトリィ210は、要求されたキャッシュ・ラインに対する新たなライン・ステート情報を含むデータ転送命令226を“クール”コア203に送る。これに応答して、供給元即ちソース・コア203は、要求されたキャッシュ・ライン(例えば、データ・メッセージ227)をディレクトリィ210に送り、そしてこれが要求されたキャッシュ・ライン・データ228を、この要求されたキャッシュ・ラインに対する新たなライン・ステート情報と共に要求元コア210に転送する。229及び230により示すように、他のコアも又命令及び転送データを受け取る。もしも或る共有ラインを与えることができる2つ以上の“クール”コアがあるならば、このキャッシュ・ラインのソース即ち供給元を選択するのに任意のタイ・ブレーク・ルールが使用され得る。もしも、全ての共有コアが“ホット”でありそしてデータがメモリ・コントローラ211のバッファ内にあるならば、メモリ・コントローラ211はこのラインを与える。
ディレクトリィ210からの応答命令226に応答して、供給元コアは、この要求されたキャッシュ・ラインに対するソースとして選択されたことにより生じたどのようなステータス変化をも反映するように、この要求されたキャッシュに対するこれのライン・ディレクトリィ・ステート(状態)を更新する。同様にして、要求元コアにおけるライン・ディレクトリィ・ステートも又、ディレクトリィのデータ転送メッセージ228に応答して更新される。例えば、もしも或るキャッシュ・ラインに対する読み取りリクエストが、現在このキャッシュ・ラインの無効なコピーを記憶しているメモリ・ソースにより受け取られると、このメモリ・ソースは、ソース即ち供給元として選択されず、そしてライン・ディレクトリィ・ステートは“無効”に留まる。これの代わりに、この要求されたキャッシュ・ラインがメモリ・コントローラから得られるならば、この場合、要求元コアに対するライン・ディレクトリィ・ステートは“排他的(exclusive)”として更新される。しかし、もしも或るキャッシュ・ラインに対する読み取りリクエストが、現在このキャッシュ・ラインの変更されたコピーを記憶しており、そしてこのメモリ・ソースが熱情報に基づいてキャッシュ・ラインを供給できるものとして選択されているならば、この供給元コアにおけるキャッシュ・ラインに対するライン・ディレクトリィ・ステートが“無効”として更新され、そして要求元コアに対するライン・ディレクトリィ・ステートが“変更”として更新される。そして、もしも或るキャッシュ・ラインに対する読み取りリクエストが、現在このキャッシュ・ラインの共有または排他的(専用)コピーを記憶しているメモリ・ソースにより受け取られ、そしてこのメモリ・ソースが熱情報に基づいてこのキャッシュ・ラインを与えるものとして選択されているならば、供給元コアにおけるこのキャッシュ・ラインに対するライン・ディレクトリィ・ステートは“共有”(または、これの代わりに“無効”)として更新され、そして要求元コアのライン・ディレクトリィ・ステートが、(もしも“共有”供給元コアから得られるならば)“共有”として更新され、または(もしも“排他的”供給元コアから得られるならば)“排他的(exclusive)”として更新される。
要求元コアに共有、排他的または変更の形でまだ記憶されていない或るキャッシュ・ラインを書き込むリクエストに対しては、データ転送メッセージに応答して、この供給元コアのこのキャッシュ・ラインに対するライン・ディレクトリィ・ステートが“無効”として更新され、一方、これが“変更”である供給元コアから得られない限り(この場合、この要求元コアのこのキャッシュ・ラインに対するライン・ディレクトリィ・ステートは“変更”として更新される)、この要求元コアのキャッシュ・ラインに対するライン・ディレクトリィ・ステートは、データ転送メッセージに応答して“排他的”として更新される。もしも書き込まれるべきラインが既に要求元コアにおいて“共有”されているならば、Dclaimがディレクトリィに出され、これは、他の共有ソースにおけるラインを無効にし、そしてこのラインは、要求元コア及びディレクトリィにおいて“変更”として更新される。もしもラインが要求元コアに“排他的”として存在するならば、これは、要求元コアにおいて“変更”に格上げされ、そしてディレクトリィがこれを知らされる。もしもラインが要求元コアにおいて“変更”とされているならば、Dclaimまたは格上げリクエストが出される必要がない。
上述のシグナリング方式の内容は、種々なコマンド構造及び制御ロジック等式と共に実装され、そしてキャッシュの一貫性を監視するディレクトリィ・ベースのコヒーレンシ・プロトコルにおける省電力型のライン付与という利点を与える。1つの例示的な実装として、図3は、本発明の選択されたディレクトリィ・ベースのコヒーレンス・プロトコルに、省電力型のライン付与を実装するマルチプロセッサ・システムにおいて要求元コアからの読み取りまたは書き込みリクエストに応答するディレクトリィのコアの要求元コア及び供給元コアに対する応答の例示的なテーブル・リスト300を示す。表の第1欄において、キャッシュ・ラインのリクエストの型(例えば、読み込みまたは書き込み)が指定される。第2欄において、各メモリ・ソースにある要求されたキャッシュ・ラインの現在のステートが、無効(i)、共有されている(s)、変更されている(m)または排他的(専用)(e)として指定される。更に、第2欄は、各メモリ・ソースにおいて検出された現在の熱または電力消費ステータスを低温(L)または高温(H)として指定する。但し、他の温度条件も指定されることができる。第3欄において、第2欄に含まれている値に基づいて発生されるディレクトリィの応答が、要求されたデータを与えそして適切なライン・ディレクトリィ・ステート情報を更新するための命令として示されている。最後に、第5欄は、要求されたキャッシュ・ラインが与えられた後の供給元コア(N)に対する新たなライン・ディレクトリィ・ステート(i,s,m,e)を指定し、一方、第5欄は、要求されたキャッシュ・ラインが与えられた後の要求元コア(R)に対する新たなライン・ディレクトリィ・ステート(i,s,m,e)を指定する。
本発明の選択された実施例を更に示すために、図4は、メモリ資源に関連する電力または熱の状態に基づいて、マルチプロセッサ・システムの複数のメモリ・ソースから要求元コアへ或るキャッシュ・ラインを与えるために使用されるディレクトリィ・ベースのコヒーレンシ・プロトコル・ステップ400の論理的なフロー・チャートである。ステップ401において、例えば、要求元コアまたはプロセッサがメモリからデータを要求するプログラムを実行しているときにプロセスが開始する。ステップ402において、メモリ・アクセスが要求されると、要求元コアまたはプロセッサが、メモリ・コントローラに配置されることができる中央ディレクトリィへ読み取りまたは書き込みリクエストを出す。これに応答して、中央ディレクトリィは、ステップ403において、熱信号情報(これは以前に他のコアから収集されている)及び各コアのライン・ステート情報を組み合わせて、そして“クール”コアの中から選択するのにこの熱信号情報を使用することにより、どの応答コアがこの要求されたキャッシュ・ラインを与えるかを選択する。例えば、ディレクトリィの応答は、例えば表のリスト300の第3欄に記載されているようなディレクトリィ応答メッセージの形をとることができる。このディレクトリィの応答が受け取られると、選択された供給元コアは、要求されたキャッシュ・ラインを要求元コアに送り、そして各コアのディレクトリィ・ライン・ステートは、要求元コア、供給元コア及び中央ディレクトリィにおいて更新され(ステップ404)、そして他のメモリ・アクセスが要求されるまでプロセスは終了する(ステップ405)。
上述のように、低電力消費または“クール”メモリ・ソースから或る要求されたキャッシュ・ラインを供給するためのプログラム命令またはコードは、各コアで実行され、ここでメモリ・ソースは、例えばメモリ・コントローラのような中央の場所に配置される。例えば、マルチプロセッサ・システムの各キャッシュ・メモリ(例えばL1,L2,L3)及びメモリ・コントローラは、これ自身の熱または電力消費ステータスを監視するために、そしてこのステータス情報を適切な制御論理装置に送って要求されたデータを有する低電力消費のソースを選択させるために、メモリ・コンとローラ自身のプログラミング命令またはコードを有することができる。制御論理装置は、単一の場所(例えば中央のメモリ・コントローラ)に配置されることができ、またはこの制御論理装置が分散するようにマルチプロセッサ・システム内に亘って分散されることができる。
マルチプロセッサ・データ処理システムのための本明細書で開示した省電力型ライン付与技法は、各キャッシュ・メモリの温度または電力消費ステータスあるいはその両方に基づいて、キャッシュ・ラインを与えるためのディレクトリィ・ベースのコヒーレンシ・プロトコルを使用する。集中管理されるディレクトリィ・ベースのコヒーレンシ手法を使用することにより、省電力型ライン付与は、追加のプロセッサに対しても容易に適用され、そして狭いバンド幅を使用して、しかもスヌープ・コヒーレンシ・プロトコルで要求される追加のバス・ビットを必要とすることなく実装されることができる。
当業者により理解されるように、本発明は、方法、システムまたはコンピュータ・プログラム製品として実施されることができる。全体的にハードウエアである実施例、全体的にソフトウエアである実施例(フォームウエア、常駐ソフトウエア、マイクロコード等を含む)または本明細書で“回路”、“モジュール”若しくは“システム”として一般的に呼ぶソフトウエア及びハードウエア態様を組み合わせた実施例の形をとることができる。更に、本発明は、コンピュータが使用可能なプログラム・コードが媒体内に埋め込まれている、コンピュータ読み取り可能な記録媒体に記憶されたコンピュータ・プログラムの形で実施されることができる。例えば、複数のメモリ・ソースにより共有されている或る要求されたキャッシュ・ラインを与えるまたは介入する低電力消費または低温度メモリ・ソースを選択する機能は、各メモリ・ソースに記憶されているソフトウエアの形で実装されることができ、または単一の場所において記憶されることができる。
上記の説明は、本発明を説明するための目的で行われたものであり、本発明を例示した実施例に限定するものではない。上述の説明に基づいて多くの変更及び修正が可能である。
本発明の良好な実施例が実装される対称的なマルチ・プロセッサ・コンピュータ・アーキテクチャを示す図である。 キャッシュの一貫性を監視するためのディレクトリィ・ベースのコヒーレンシ・プロトコルにおいて省電力型のライン付与を行うマルチプロセッサ・システムにおける種々なコア相互間の信号の流れを単純化して示す図である。 本発明の実施例の選択されたディレクトリィ・ベースのコヒーレンシ・プロトコルの実施例において省電力型のライン付与を行うために、マルチプロセッサ・システムの要求元コアからの読み取りリクエストまたは書き込みリクエストに応答して要求元コア及び供給元コアに対するディレクトリィの応答を示す例示的な表のリストを示す図である。 メモリ資源に関連する電力消費または熱状態に基づいて、マルチプロセッサ・システムの複数のメモリ・ソースから要求元コアに或るキャッシュ・ラインを与えるために使用されるディレクトリィ・ベースのコヒーレンシ・プロトコル・ステップの論理的なフローチャートを示す図である。
符号の説明
10 処理グループ
11,21,31,41 プロセッサ
12 L2キャッシュ
13 電力/温度センサ
14 キャッシュ・コントローラ
16a コア1
17a 電力/温度センサ
18a L1キャッシュ
16b コア2
17b 電力/温度センサ
18b L1キャッシュ
42 L2キャッシュ
43 電力/温度センサ
44 キャッシュ・コントローラ
46a コア1
47a 電力/温度センサ
48a L1キャッシュ
46b コア2
47b 電力/温度センサ
48b L1キャッシュ
50 システム・バス
60A、60B サービス・プロセッサ
61 システム・メモリ
61A OS
61B アプリケーション
62 メモリ・コントローラ
63 電力/温度センサ
64 バッファ
65 ディレクトリィ
66 L3キャッシュ
67 電力/温度センサ
69 周辺装置
70 ブリッジ


Claims (20)

  1. マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法であって、
    前記マルチプロセッサ・データ処理システムの動作の間に、第1キャッシュ・ラインに対するリクエストを要求元プロセッサ・コアが発生するステップと、
    前記第1キャッシュ・ラインに対するリクエストを受け取ったことに応答して、前記要求された第1キャッシュ・ラインのコピーを記憶している複数のメモリ・ソースを中央のディレクトリィにおいて同定するステップと、
    前記複数のメモリ・ソースのそれぞれに対するライン・ステート情報を温度値または電力消費値と共に前記中央のディレクトリィに維持するステップと、
    前記要求された第1キャッシュ・ラインを与える第1メモリ・ソースを前記複数のメモリ・ソースから選択するステップであって、許容される温度値または電力消費値を有することに少なくとも基づいて前記第1メモリ・ソースが選択される前記ステップと、
    前記要求された第1キャッシュ・ラインを与えることを前記第1メモリ・ソースに命令する選択メッセージを前記中央のディレクトリィから送り出すステップとを含む前記方法。
  2. 前記第1メモリ・ソースを選択するステップが、第2メモリ・ソースに関連する第2の温度値または電力消費値よりも低い第1温度値または電力消費値を有する前記第1メモリ・ソースを選択するステップを含む、請求項1に記載の方法。
  3. 前記第1メモリ・ソースを選択するステップが、前記第1メモリ・ソースに関連する第1温度値または電力消費値を1つ以上の他のメモリ・ソースに関連する1つ以上の他の温度値または電力消費値と比較することに少なくとも基づいてクール・メモリ・ソースを選択するステップを含む、請求項1に記載の方法。
  4. 前記複数のメモリ・ソースが複数のキャッシュ・メモリからなる、請求項1に記載の方法。
  5. 前記複数のメモリ・ソースのそれぞれが、該メモリ・ソースに関連する温度値または電力消費値を測定するセンサを備える、請求項1に記載の方法。
  6. 前記第1メモリ・ソースを選択するステップが、もしも前記複数のメモリ・ソースのいずれもが許容される温度値または電力消費値を有さなければ、前記要求された第1キャッシュ・ラインを与えるために許容される温度値または電力消費値を有するメモリ・コントローラを選択するステップを含む、請求項4に記載の方法。
  7. 前記ライン・ステート情報を温度値または電力消費値と共に前記中央のディレクトリィに維持するステップが、前記メモリ・ソースの温度値または電力消費値が予定の温度値または電力消費値を越えたか否かを示す信号を各メモリ・ソースから送るステップを含む、請求項1に記載の方法。
  8. 要求元プロセッサ・コアからのリクエストが前記第1キャッシュ・ラインを排他的にアクセスするリクエストであるならば、前記複数のメモリ・ソースに対する前記中央のディレクトリィ内のライン・ステート情報を無効にするステップを含む、請求項1に記載の方法。
  9. マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与えるコンピュータ読み取り可能な記録媒体であって、
    コンピュータに、
    前記マルチプロセッサ・データ処理システムの動作の間に、第1キャッシュ・ラインに対するリクエストを要求元プロセッサ・コアが発生する手順と、
    前記第1キャッシュ・ラインに対するリクエストを受け取ったことに応答して、前記要求された第1キャッシュ・ラインのコピーを記憶している複数のメモリ・ソースを中央のディレクトリィにおいて同定する手順と、
    前記複数のメモリ・ソースのそれぞれに対するライン・ステート情報を温度値または電力消費値と共に前記中央のディレクトリィに維持する手順と、
    前記要求された第1キャッシュ・ラインを与える第1メモリ・ソースを前記複数のメモリ・ソースから選択する手順であって、許容される温度値または電力消費値を有することに少なくとも基づいて前記第1メモリ・ソースが選択される前記手順と、
    前記要求された第1キャッシュ・ラインを与えることを前記第1メモリ・ソースに命令する選択メッセージを前記中央のディレクトリィから送り出す手順とを実行させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体。
  10. 前記第1メモリ・ソースを選択する手順が、第2メモリ・ソースに関連する第2の温度値または電力消費値よりも低い第1温度値または電力消費値を有する前記第1メモリ・ソースを選択する手順を含む、請求項9に記載のコンピュータ読み取り可能な記録媒体。
  11. 前記第1メモリ・ソースを選択する手順が、前記第1メモリ・ソースに関連する第1温度値または電力消費値を1つ以上の他のメモリ・ソースに関連する1つ以上の他の温度値または電力消費値と比較することに少なくとも基づいてクール・メモリ・ソースを選択する手順を含む、請求項9に記載のコンピュータ読み取り可能な記録媒体。
  12. 前記複数のメモリ・ソースが複数のキャッシュ・メモリからなる、請求項9に記載のコンピュータ読み取り可能な記録媒体。
  13. 前記複数のメモリ・ソースのそれぞれが、該メモリ・ソースに関連する温度値または電力消費値を測定するセンサを備える、請求項9に記載のコンピュータ読み取り可能な記録媒体。
  14. 前記第1メモリ・ソースを選択する手順が、もしも前記複数のメモリ・ソースのいずれもが許容される温度値または電力消費値を有さなければ、前記要求された第1キャッシュ・ラインを与えるために許容される温度値または電力消費値を有するメモリ・コントローラを選択する手順を含む、請求項12に記載のコンピュータ読み取り可能な記録媒体。
  15. 前記ライン・ステート情報を温度値または電力消費値と共に前記中央のディレクトリィに維持する手順が、前記メモリ・ソースの温度値または電力消費値が予定の温度値または電力消費値を越えたか否かを示す信号を各メモリ・ソースから送る手順を含む、請求項9に記載のコンピュータ読み取り可能な記録媒体。
  16. 要求元プロセッサ・コアからのリクエストが前記第1キャッシュ・ラインを排他的にアクセスするリクエストであるならば、前記複数のメモリ・ソースに対する前記中央のディレクトリィ内のライン・ステート情報を無効にする手順を含む、請求項9に記載のコンピュータ読み取り可能な記録媒体。
  17. それぞれが1つ以上のキャッシュ・メモリを有する複数のプロセッサと、
    前記複数のプロセッサに結合されたデータ・バスと、
    該データ・バスに結合され、マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与えるコンピュータ読み取り可能な記録媒体とを備え、
    該コンピュータ読み取り可能な記録媒体が、
    コンピュータに、
    前記マルチプロセッサ・データ処理システムの動作の間に、第1キャッシュ・ラインに対するリクエストを要求元プロセッサ・コアが発生する手順と、
    前記第1キャッシュ・ラインに対するリクエストを受けとったことに応答して、前記要求された第1キャッシュ・ラインのコピーを記憶している複数のキャッシュ・メモリを中央のディレクトリィにおいて同定する手順と、
    前記複数のキャッシュ・メモリのそれぞれに対するライン・ステート情報を温度値または電力消費値と共に前記中央のディレクトリィに維持する手順と、
    前記要求された第1キャッシュ・ラインを与える第1キャッシュ・メモリを前記複数のキャッシュ・メモリから選択する手順であって、許容される温度値または電力消費値を有することに少なくとも基づいて前記第1キャッシュ・メモリが選択される前記手順と、
    前記要求された第1キャッシュ・ラインを与えることを前記第1キャッシュ・メモリに命令する選択メッセージを前記中央のディレクトリィから送り出す手順とを実行させる、マルチプロセッサ・データ処理システム。
  18. 前記第1キャッシュ・メモリを選択するステップが、第2キャッシュ・メモリに関連する第2の温度値または電力消費値よりも低い第1温度値または電力消費値を有する前記第1キャッシュ・メモリを選択するステップを含む、請求項17に記載のマルチプロセッサ・データ処理システム。
  19. 前記キャッシュ・メモリに関連する温度値または電力消費値を測定するセンサが、前記キャッシュ・メモリのそれぞれに配置されている、請求項17に記載のマルチプロセッサ・データ処理システム。
  20. 前記センサが、ダイオードである、請求項17に記載のマルチプロセッサ・データ処理システム。
JP2008290605A 2007-11-28 2008-11-13 マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム Expired - Fee Related JP5315017B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/946551 2007-11-28
US11/946,551 US20090138220A1 (en) 2007-11-28 2007-11-28 Power-aware line intervention for a multiprocessor directory-based coherency protocol

Publications (2)

Publication Number Publication Date
JP2009134716A true JP2009134716A (ja) 2009-06-18
JP5315017B2 JP5315017B2 (ja) 2013-10-16

Family

ID=40670471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008290605A Expired - Fee Related JP5315017B2 (ja) 2007-11-28 2008-11-13 マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム

Country Status (3)

Country Link
US (1) US20090138220A1 (ja)
JP (1) JP5315017B2 (ja)
CN (1) CN101504628B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011054077A (ja) * 2009-09-04 2011-03-17 Toshiba Corp マルチプロセッサ
WO2013080426A1 (ja) * 2011-12-01 2013-06-06 パナソニック株式会社 熱を考慮した構造を持つ集積回路装置、三次元集積回路、三次元プロセッサ装置、及びプロセススケジューラ
JP2016529639A (ja) * 2013-09-09 2016-09-23 クアルコム,インコーポレイテッド 直接スヌープ介入
KR101840852B1 (ko) * 2011-10-10 2018-03-22 삼성전자주식회사 모바일 장치의 표면 온도 관리 방법 및 멀티칩 패키지의 메모리 열관리 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9417794B2 (en) * 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
US9275096B2 (en) 2012-01-17 2016-03-01 Apple Inc. Optimized b-tree
US9213643B2 (en) * 2013-03-13 2015-12-15 Applied Micro Circuits Corporation Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system
US9342443B2 (en) 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system
US9678875B2 (en) * 2014-11-25 2017-06-13 Qualcomm Incorporated Providing shared cache memory allocation control in shared cache memory systems
CN106326143B (zh) * 2015-06-18 2019-08-27 华为技术有限公司 一种缓存分配、数据访问、数据发送方法、处理器及系统
US9921962B2 (en) * 2015-09-24 2018-03-20 Qualcomm Incorporated Maintaining cache coherency using conditional intervention among multiple master devices
US10318428B2 (en) 2016-09-12 2019-06-11 Microsoft Technology Licensing, Llc Power aware hash function for cache memory mapping
US10621090B2 (en) * 2017-01-12 2020-04-14 International Business Machines Corporation Facility for extending exclusive hold of a cache line in private cache
US20180210836A1 (en) * 2017-01-24 2018-07-26 Microsoft Technology Licensing, Llc Thermal and reliability based cache slice migration
US10241561B2 (en) 2017-06-13 2019-03-26 Microsoft Technology Licensing, Llc Adaptive power down of intra-chip interconnect
US11036413B1 (en) * 2019-12-17 2021-06-15 Micron Technology, Inc. Memory sub-system temperature regulation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003090089A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Dispositif de memoire cache
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
JP2006501546A (ja) * 2002-09-27 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 統合ディレクトリとプロセッサキャッシュを備えたコンピュータシステム
JP2006133995A (ja) * 2004-11-04 2006-05-25 Toshiba Corp プロセッサシステム及びその制御方法
JP2006285317A (ja) * 2005-03-31 2006-10-19 Tokyo Electric Power Co Inc:The 負荷判定システム、負荷分散システムおよび異常検出システム
JP2006344162A (ja) * 2005-06-10 2006-12-21 Mitsubishi Electric Corp 並列計算装置
JP2007505406A (ja) * 2003-09-11 2007-03-08 インテル・コーポレーション 温度に敏感なメモリに適応可能なキャッシュアルゴリズム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502838A (en) * 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
US5732215A (en) * 1995-06-07 1998-03-24 International Business Machines Corporation System for equalizing operating temperature by allocating infrequently accessed data to the high temperature DASD and allocating frequently accessed data to the low temperature DASD
US6014751A (en) * 1997-05-05 2000-01-11 Intel Corporation Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US6996491B2 (en) * 2002-02-19 2006-02-07 Sun Microsystems, Inc. Method and system for monitoring and profiling an integrated circuit die temperature
US7676637B2 (en) * 2004-04-27 2010-03-09 International Business Machines Corporation Location-aware cache-to-cache transfers
US7535020B2 (en) * 2005-06-28 2009-05-19 Kabushiki Kaisha Toshiba Systems and methods for thermal sensing
US7784050B2 (en) * 2006-03-09 2010-08-24 Harris Technology, Llc Temperature management system for a multiple core chip
US7840821B2 (en) * 2007-05-18 2010-11-23 Globalfoundries Inc. Method and apparatus for monitoring energy consumption of an electronic device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003090089A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Dispositif de memoire cache
JP2006501546A (ja) * 2002-09-27 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 統合ディレクトリとプロセッサキャッシュを備えたコンピュータシステム
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
JP2007505406A (ja) * 2003-09-11 2007-03-08 インテル・コーポレーション 温度に敏感なメモリに適応可能なキャッシュアルゴリズム
JP2006133995A (ja) * 2004-11-04 2006-05-25 Toshiba Corp プロセッサシステム及びその制御方法
JP2006285317A (ja) * 2005-03-31 2006-10-19 Tokyo Electric Power Co Inc:The 負荷判定システム、負荷分散システムおよび異常検出システム
JP2006344162A (ja) * 2005-06-10 2006-12-21 Mitsubishi Electric Corp 並列計算装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011054077A (ja) * 2009-09-04 2011-03-17 Toshiba Corp マルチプロセッサ
KR101840852B1 (ko) * 2011-10-10 2018-03-22 삼성전자주식회사 모바일 장치의 표면 온도 관리 방법 및 멀티칩 패키지의 메모리 열관리 방법
US10198049B2 (en) 2011-10-10 2019-02-05 Samsung Electronics Co., Ltd. Surface temperature management method of mobile device and memory thermal management method of multichip package
WO2013080426A1 (ja) * 2011-12-01 2013-06-06 パナソニック株式会社 熱を考慮した構造を持つ集積回路装置、三次元集積回路、三次元プロセッサ装置、及びプロセススケジューラ
US9122286B2 (en) 2011-12-01 2015-09-01 Panasonic Intellectual Property Management Co., Ltd. Integrated circuit apparatus, three-dimensional integrated circuit, three-dimensional processor device, and process scheduler, with configuration taking account of heat
JP2016529639A (ja) * 2013-09-09 2016-09-23 クアルコム,インコーポレイテッド 直接スヌープ介入

Also Published As

Publication number Publication date
CN101504628A (zh) 2009-08-12
JP5315017B2 (ja) 2013-10-16
CN101504628B (zh) 2012-09-05
US20090138220A1 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5315017B2 (ja) マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム
US7870337B2 (en) Power-aware line intervention for a multiprocessor snoop coherency protocol
JP3888769B2 (ja) データ供給方法及びコンピュータ・システム
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
KR100274771B1 (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
TWI443514B (zh) 用於更換快取記憶體中的快取列之裝置、系統及方法
US5946709A (en) Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing
KR100273039B1 (ko) 멀티프로세서 데이터 처리 시스템의 캐쉬 일관성을 유지하기위한 캐쉬 일관성 프로토콜 제공 방법 및시스템
US8380933B2 (en) Multiprocessor system including processor cores and a shared memory
US20040059875A1 (en) Cache sharing for a chip multiprocessor or multiprocessing system
US5940864A (en) Shared memory-access priorization method for multiprocessors using caches and snoop responses
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
US9355035B2 (en) Dynamic write priority based on virtual write queue high water mark for set associative cache using cache cleaner when modified sets exceed threshold
US10282295B1 (en) Reducing cache footprint in cache coherence directory
JPH06110844A (ja) 分散共有メモリ型マルチプロセッサシステム
KR101689094B1 (ko) 스티키 제거 엔진을 구비한 시스템 캐시
US6345344B1 (en) Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US7779205B2 (en) Coherent caching of local memory data
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
KR20140038075A (ko) 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치
US6658536B1 (en) Cache-coherency protocol with recently read state for extending cache horizontally
US6385702B1 (en) High performance multiprocessor system with exclusive-deallocate cache state
US6374333B1 (en) Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
JPH09128346A (ja) 階層バスシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130708

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5315017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees