JP5338375B2 - 演算処理装置、情報処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置、情報処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP5338375B2 JP5338375B2 JP2009044652A JP2009044652A JP5338375B2 JP 5338375 B2 JP5338375 B2 JP 5338375B2 JP 2009044652 A JP2009044652 A JP 2009044652A JP 2009044652 A JP2009044652 A JP 2009044652A JP 5338375 B2 JP5338375 B2 JP 5338375B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- control unit
- tag
- target data
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
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)
Description
図15は、共有メモリ型の情報処理装置に使用されるCPU(Central Processing Unit)内のキャッシュを説明する図である。
命令実行部1501からのリード要求を受けると、L1制御部1503はL1キャッシュ1502からデータを読み出して命令実行部1501に出力する。また、命令実行部1501が要求するデータがL1キャッシュ1502にない場合、L1制御部1503は、L2制御部1505にデータのリード要求を発行する。すると、L2制御部1505はL2キャッシュ1504からデータを読み出して命令実行部1501に出力する。
LSI間通信制御部1507は、L2制御部1505からリード要求を受けると、他ノードに対してリード要求を発行する。また、LSI間通信制御部1507は、L2制御部1505からストア要求を受けると、他ノードに対してストア命令を発行する。
(1)要求元ノードにおいて、命令実行部1501から要求されたデータがL1キャッシュ1502にない場合、L1制御部1503は、L2制御部1505に対してリード要求を発行する。
(4)ローカルメモリは、メモリ制御部1506からの要求に応じてデータを読み出すリード処理を行なう。そして、ローカルメモリは、メモリ制御部1506に対してリード応答を発行する。同時に、ローカルメモリは、読み出したデータをメモリ制御部1506に送信する。
(1)要求元ノードにおいて、L2制御部1505は、リプレース処理を実行すると、L2キャッシュ1504から追い出したデータをメモリに記憶する旨のストア要求をHomeノードに発行する。
(4)メモリ制御部1506は、ローカルメモリからストア応答を受信すると、要求元ノードに対してストア要求に対するストア応答を発行する。
また、共有メモリ型のプロセッサにおけるスヌープ・プロトコルを用いたキャッシュコヒーレンス制御方式が知られている。
キャッシュ制御装置は、第1のノードに含まれる第1のメモリを共有する第2のノードが有するキャッシュを制御する。
このとき、第2のキャッシュ制御部は、第1のキャッシュ情報の管理情報を、第2のメモリの所定の領域と対応付けられた管理情報であって対応付けられた領域に記憶されている情報を管理する管理情報を記憶する第2のキャッシュに記憶する。
(本実施例に係る構成)
図1は、本実施例に係るキャッシュ制御装置を備えるCPUを使用した情報処理装置を示す図である。
以上の構成によって、システムボードSB0に実装されるCPUは、クロスバXB0を介してシステムボードSB1等の他のシステムボードに実装されるCPUに接続されるメモリにアクセス可能となる。同様に、システムボードSB0に実装されるCPUは、クロスバXB0およびXB1を介して、システムボードSB4に実装されるCPUに接続されるメモリにアクセス可能となる。
各CPU0〜3は、互いに通信可能に接続されている。例えば、CPU0は、CPU1に接続されるメモリMEM1にアクセスが可能である。また、各CPU0〜3は、クロスバXB0と通信可能に接続している。したがって、例えば、CPU0は、クロスバXB0を介してシステムボードSB1に実装されるCPUに接続されるメモリにアクセスが可能である。
本実施例に係るキャッシュ装置320は、L1キャッシュ302と、L1制御部303と、L2キャッシュ304と、L2制御部305と、VL3キャッシュ306と、VL3制御部307とを含むものとする。
例えば、リモートメモリから読み出したデータがリプレース処理によってL2キャッシュ304から追い出される場合を考える。
例えば、VL3制御部307からリード要求を受けると、メモリ制御部308はローカルメモリMEM0の所定のアドレスからデータを読み出してVL3制御部307に出力する。また、メモリ制御部308は、VL3制御部307からストア要求を受けると、ストア対象のデータをローカルメモリMEM0に記憶する。
例えば、CPU0のLSI間通信制御部309は、CPU1に接続しているメモリにアクセスする。また、例えば、LSI間通信制御部309は、クロスバXB0を介してシステムボードSB1に実装されているCPUに接続されているメモリにアクセスする。
図4に示すVL3タグ401は、以下に示す32Mbyte(=128Byte×4val(value)×2Kライン×32way)の記憶容量の3次キャッシュを仮想的に実現するためのものである。
(1)ラインサイズ :128Byte
(2)ページ数 :4
(3)ライン数 :2K(=2×1024)
(4)データ格納構造:32wayセットアソシアティブ方式
図4に示すビットアサイン402は、1ノードあたりの実メモリ空間を256Gbyteとし、最大ノード数を64ノードとした場合の物理アドレス空間のビットアサインについて示している。
VL3タグ401に登録するタグは、アドレスデータPAのビット[43:20]と、登録データの登録状態を示すデータSVAL[7:0]と、ECC検査ビットECC[6:0]とを備えるデータである。
なお、SVAL[7:0]およびECC[6:0]については、図6で説明する。
なお、図4は、VL3タグ401の1つの実施形態を示すものである。したがって、ラインサイズ、ライン数またはway数等を限定する趣旨ではない。
登録データの「登録状態」は、MESI(Modified/Exclusive/Shared/Invalid)プロトコルにしたがって決定される。MESIプロトコルで定義される各状態は、2ビットのデータSTS[1:0]で表される。
STS[1:0]が「01(2進数)」である場合、登録データの状態がSであることを示す。状態Sは、リモートメモリ上から共有型で持ち出されたキャッシュ上のデータがクリーンな状態である。
タグ601は、40ビット幅のデータである。タグ601のビット[39:16]には、アドレスデータPAのビット[43:20]のデータが格納される。
本実施例では、L1タグに登録するタグおよびL2タグに登録するタグも、図6に示したタグと同様のビットアサインのものを使用する。
実メモリ空間701は、ローカルメモリMEM0のメモリ空間である。実メモリ空間701は、128Byteのブロック毎に管理されている。そして、実メモリ空間701のうち下位32MByteの領域が仮想キャッシュ空間に割り当てられている。その他の領域は、ユーザが使用可能な領域となっている。
本実施例に係るキャッシュ制御では、リモートメモリから読み出してL2キャッシュ304に記憶されているデータがリプレース処理によって追い出された場合、追い出されたデータを、L2キャッシュ304の下位に仮想的に設けた3次キャッシュに記憶する。
図8は、L2キャッシュ304でリプレース処理が行なわれた場合の処理の流れを示す図である。なお、以下に示す(1)〜(5)は、図8中に示される(1)〜(5)と対応する。
(5)メモリ制御部308は、ローカルメモリからストア応答を受信すると、VL3制御部307に対してストア応答を発行する。
なお、Homeノードにおいて、ストア系アクセスの実行により、VL3タグにタグを登録したL2リプレース対象データが変更された場合、Homeノードから要求元ノードにデータの無効化要求が送られてくる。この場合、要求元ノードは、後述する図13に示す処理により、VL3タグに登録したL2リプレース対象データのタグを無効化する。
(5)ローカルメモリは、メモリ制御部308からのリード要求に応じて、所定のアドレスからリード対象データを読み出すリード処理を行なう。そして、ローカルメモリは、メモリ制御部308対してリード処理が完了した旨のリード応答を発行する。同時に、ローカルメモリは、読み出したリード対象データをメモリ制御部308に送信する。
このとき、L1制御部303は、VL3制御部307から通知されたリード対象データのタグをL1タグに登録し、リード対象データをL1データに記憶する。同様に、L2制御部305は、VL3制御部307から通知されたリード対象データのタグL2タグに登録し、リード対象データをL2データに記憶する。
Homeノードを特定すると、VL3制御部307は、特定したHomeノードに対してリード要求を発行する。
(5)ローカルメモリは、Homeノードのメモリ制御部からのリード要求に応じて、リード対象アドレスに記憶されているリード対象データを読み出すリード処理を行なう。そして、ローカルメモリは、Homeノードのメモリ制御部に対してリード応答を発行する。同時に、ローカルメモリは、読み出したリード対象データをHomeノードのメモリ制御部に送信する。
図11は、L2キャッシュ304でリプレース処理が行なわれる場合のキャッシュ制御を説明するフローチャートである。
ステップS1101でL2リプレース処理が実行された場合、L2制御部305は、処理をステップS1103に移行する(S1102 YES)。また、ステップS1101でL2リプレース処理が実行されていない場合、L2制御部305は、処理をステップS1111に移行し、図11の処理を終了する(S1102 NO)。
そして、L2リプレース対象データのタグを登録する領域がVL3タグにない場合、VL3制御部307は、VL3タグに登録されている古いタグをVL3キャッシュ306から追い出すリプレース処理を実行する。
ステップS1105でVL3リプレース処理が実行された場合、VL3制御部307は処理をステップS1107に移行する(S1106 YES)。また、ステップS1105でVL3リプレース処理が実行されていない場合、VL3制御部307は、処理をステップS1109に移行する(S1106 NO)。
例えば、VL3制御部307は、VL3タグに登録されていたVL3リプレース対象データのタグを参照する。そして、VL3制御部307は、タグのビット[33:16]から、VL3リプレース対象データが記憶されているローカルメモリの物理アドレスを取得する。そして、VL3制御部307は、メモリ制御部308を介して、VL3リプレース対象データをローカルメモリから読み出す。
ステップS1109またはS1110の処理が完了すると、VL3制御部307は、L2リプレース対象データのタグのビット[15:07]を参照する。そして、VL3制御部307は、L2リプレース対象データの登録状態を判別する。
なお、ステップS1105において、VL3タグに登録するデータをクリーンなデータ、すなわち、登録状態がEまたはSのデータのみをVL3タグに登録してもよい。これにより、VL3リプレース処理の簡単化を図ることができる。ただし、リプレース対象データがダーティな場合、必ずステップS1107およびS1108の処理を実行する必要がある。
例えば、L1制御部303が、L2制御部305に対して、命令実行部301からリード要求があったデータのリード要求を発行すると、以下の処理が開始する(ステップS1200)。
例えば、L2制御部305は、L2キャッシュ304内のL2タグに登録されているタグの中から、リード対象データのタグと一致するタグを検索する。
リード対象データのタグと一致するタグが検出された場合、VL3制御部307は、「キャッシュヒット」と判断する(S1204 YES)。この場合、VL3制御部307は処理をステップS1205に移行する。また、リード対象データのタグと一致するタグが検出されない場合、VL3制御部307は、「キャッシュミス」と判断する(S1204 NO)。この場合、VL3制御部307は処理をステップS1206に移行する。
例えば、VL3制御部307は、リード対象データのタグからHomeノードを特定する。また、VL3制御部307は、リード対象データのタグからリード対象データが記憶されている物理アドレスを取得する。そして、VL3制御部307は、取得した物理アドレスに記憶されているリード対象データを特定したHomeノードに要求する。
ステップS1208において、ステップS1205またはS1206の処理によってリード対象データを取得した場合、VL3制御部307が取得したデータを要求元に送信する。
以上の処理が完了すると、VL3制御部307は、ステップS1209に移行して図12の処理を終了する。
要求元が命令実行部301の場合、L2制御部305は、リード対象データを命令実行部301に送信する。また、要求元が他ノードの場合、L2制御部305は、要求元の他ノードにリード対象データを送信する。
そして、VL3制御部307は、ステップS1209に移行して処理を終了する。
例えば、Homeノードにおいて、ローカルメモリに記憶されているデータ対して、ストア系アクセスが行われてデータが更新された場合を考える。
この場合、Homeノードは、Homeノード以外のノードであってストア系アクセスによって更新される前のデータを保持するノードに対して、データの無効化を要求する(ステップS1300)。このデータ無効化要求により、図13の処理が開始する。
ステップS1301において、無効化要求を受けたノードは、Homeノードからデータの無効化要求を受信する。
タグ検索の結果、ステップS1305において、VL3制御部307は、VL3キャッシュヒットを検出すると、処理をステップS1306に移行する(ステップS1305 YES)。また、VL3制御部307は、タグ検索の結果からVL3キャッシュミスを検出すると、処理をステップS1308に移行する(ステップS1305 NO)。
タグを無効に設定する場合、例えば、図6に示したSVSL[7:0]の状態Iを設定する領域にデータSTS[1:0]=00(2進数)を設定すればよい。
例えば、ムーブアウト要求を受けたノードが、リモートメモリ上のデータを排他型で取得する。その後、Homeノードにおいて、任意の装置から本ノードが排他型で取得したデータについてリード要求等のアクセスがあると、Homeノードは、本ノードに対してムーブアウト要求を送信する(ステップS1400)。キャッシュの一貫性を保持するためである。
ステップS1401において、本ノードは、Homeノードからムーブアウト要求を受信する。
ステップS1402において、L2制御部305は、L2キャッシュ304に記憶されているデータの中から、ムーブアウト対象データを検索する。例えば、L2制御部305は、L2タグに登録されているタグの中から、ムーブアウト対象データのタグと一致するタグを検索する。
ステップS1405において、VL3制御部307は、VL3キャッシュヒットを検出すると、処理をステップS1406に移行する(ステップS1405 YES)。また、VL3制御部307は、VL3キャッシュミスを検出すると、処理をステップS1409に移行する(ステップS1405 NO)。
ステップS1408において、ステップS1406またはS1407の処理によってムーブアウト対象データを取得すると、L2制御部305またはVL3制御部307は、Homeノードに対してデータ応答を発行する。
以上に説明したように、VL3制御部307は、VL3キャッシュ306に設けたVL3タグと同一ノード内に備わるローカルメモリMEM0とを用いて、仮想的に3次キャッシュを実現する。
(付記1)
第1のノードに含まれる第1のメモリを共有する第2のノードが有するキャッシュ制御装置において、
前記第1のメモリ内の情報を記憶する第1のキャッシュに記憶されている第1のキャッシュ情報を前記第1のキャッシュから出力して、新たな情報を記憶する領域を前記第1のキャッシュに確保する第1のキャッシュ制御部と、
前記第1のキャッシュ情報を、第2のメモリに記憶するとともに、前記第1のキャッシュ情報の管理情報を、前記第2のメモリの所定の領域と対応付けられた管理情報であって該対応付けられた領域に記憶されている情報を管理する管理情報を記憶する第2のキャッシュに記憶し、前記第1のキャッシュ制御部の要求に応じて、該要求された情報の管理情報と対応付けられた前記第2のメモリの領域から情報を読み出して前記第1のキャッシュ制御部に出力する第2のキャッシュ制御部と、
を備えるキャッシュ制御装置。
(付記2)
前記管理情報は、前記第1のキャッシュ情報が記憶されている前記第1のメモリの領域を表すアドレス情報と、該第1のキャッシュ情報の登録状態に関する情報と、の少なくとも一方を含む情報である、
ことを特徴とする付記1に記載のキャッシュ制御装置。
(付記3)
前記第2のキャッシュ制御部は、前記第2のキャッシュに記憶されている管理情報を取り出して新たな管理情報を記憶する領域を確保し、該取り出した管理情報と対応付けられた前記第2のメモリの領域から情報を読み出し、該読み出した情報を前記第1のキャッシュに記憶するように前記第1のノードに要求する、
ことを特徴とする付記1に記載のキャッシュ制御装置。
(付記4)
前記第2のキャッシュ制御部は、所望の情報について要求を受けると、前記第2のキャッシュに記憶されている管理情報から、前記所望の情報の管理情報を検索し、前記第2のキャッシュに前記所望の情報の管理情報を検出すると、該検出した管理情報と対応付けられた前記第2のメモリの領域から情報を読み出し、該読み出した情報を前記要求元に出力することを特徴とする付記1に記載のキャッシュ制御装置。
(付記5)
前記第2のキャッシュ制御部は、前記第2のキャッシュに前記所望の情報の管理情報が検出されない場合、前記所望の情報を前記第1のノードに属する第1のCPUに要求し、該第1のCPUから受信した情報を前記要求元に出力することを特徴とする付記1に記載のキャッシュ制御装置。
(付記6)
前記第2のキャッシュ制御部は、前記第1のノードから前記第2のメモリに記憶されている情報を無効にする無効化要求を受けると、該無効化要求の対象情報の管理情報を無効に設定することを特徴とする付記1に記載のキャッシュ制御装置。
(付記7)
前記第2のキャッシュ制御部は、前記第1のノードから前記第2のメモリに他のノードと排他的に記憶されている情報を移動させるリプレース要求を受けると、該リプレース要求の対象情報の管理情報を、前記第2のキャッシュに記憶されている管理情報から検索し、前記第2のキャッシュに前記リプレース要求の対象情報の管理情報を検出すると、該検出した管理情報と対応付けられた前記第2のメモリの領域から情報を読み出し、該読み出した情報を前記第1のノードに通知することを特徴とする付記1に記載のキャッシュ制御装置。
(付記8)
第1のノードに含まれる第1のメモリを共有する第2のノードが有するキャッシュ装置において、
前記第1のメモリ内の情報を記憶する第1のキャッシュと、
前記第1のキャッシュに記憶されていた情報を記憶する第2のメモリと、
該第2のメモリの所定の領域と対応付けられた管理情報であって、該対対応付けられた領域に記憶されている情報を管理する管理情報を記憶する第2のキャッシュと、
前記第1のキャッシュ内の第1のキャッシュ情報を前記第1のキャッシュから出力して、新たな情報を記憶する領域を前記第1のキャッシュに確保する第1のキャッシュ制御部と、
前記第1のキャッシュ情報を前記第2のメモリに記憶するとともに、前記第1のキャッシュ情報の管理情報を前記第2のキャッシュに記憶し、
前記第1のキャッシュ制御部の要求に応じて、該要求された情報の管理情報と対応付けられた前記第2のメモリの領域から情報を読み出して前記第1のキャッシュ制御部に出力する第2のキャッシュ制御部と、
を備えるキャッシュ装置。
(付記9)
前記管理情報は、前記第1のキャッシュ情報が記憶されている前記第1のメモリの領域を表すアドレス情報と、該第1のキャッシュ情報の登録状態に関する情報と、の少なくとも一方を含む情報である、
ことを特徴とする付記8に記載のキャッシュ装置。
(付記10)
前記第2のキャッシュ制御部は、前記第2のキャッシュに記憶されている管理情報を取り出して新たな管理情報を記憶する領域を確保し、該取り出した管理情報と対応付けられた前記第2のメモリの領域から情報を読み出し、該読み出した情報を前記第1のキャッシュに記憶するように前記第1のノードに要求する、
ことを特徴とする付記8に記載のキャッシュ装置。
(付記11)
前記第2のキャッシュ制御部は、所望の情報について要求を受けると、前記第2のキャッシュに記憶されている管理情報から、前記所望の情報の管理情報を検索し、前記第2のキャッシュに前記所望の情報の管理情報を検出すると、該検出した管理情報と対応付けられた前記第2のメモリの領域から情報を読み出し、該読み出した情報を前記要求元に出力する、
ことを特徴とする付記8に記載のキャッシュ装置。
(付記12)
前記第2のキャッシュ制御部は、前記第2のキャッシュに前記所望の情報の管理情報が検出されない場合、前記所望の情報を前記第1のノードに属する第1のCPUに要求し、該第1のCPUから受信した情報を前記要求元に出力する、
ことを特徴とする付記8に記載のキャッシュ装置。
(付記13)
前記第2のキャッシュ制御部は、前記第1のノードから前記第2のメモリに記憶されている情報を無効にする無効化要求を受けると、該無効化要求の対象情報の管理情報を無効に設定する、
ことを特徴とする付記8に記載のキャッシュ装置。
(付記14)
前記第2のキャッシュ制御部は、前記第1のノードから前記第2のメモリに他のノードと排他的に記憶されている情報を移動させるリプレース要求を受けると、該リプレース要求の対象情報の管理情報を、前記第2のキャッシュに記憶されている管理情報から検索し、前記第2のキャッシュに前記リプレース要求の対象情報の管理情報を検出すると、該検出した管理情報と対応付けられた前記第2のメモリの領域から情報を読み出し、該読み出した情報を前記第1のノードに通知する、
ことを特徴とする付記8に記載のキャッシュ装置。
(付記15)
第1のノードに含まれる第1のメモリを共有する第2のノードが有するキャッシュを制御するキャッシュ制御方法において、
前記第1のメモリ内の情報を記憶する第1のキャッシュに記憶されている第1のキャッシュ情報を前記第1のキャッシュから出力して、新たな情報を記憶する領域を前記第1のキャッシュに確保する第1のキャッシュ制御処理を実行し、
前記第1のキャッシュ情報を、第2のメモリに記憶し、
前記第1のキャッシュ情報の管理情報を、前記第2のメモリの所定の領域と対応付けられた管理情報であって該対対応付けられた領域に記憶されている情報を管理する管理情報を記憶する第2のキャッシュに記憶し、
前記第1のキャッシュ制御部の要求に応じて、該要求された情報の管理情報と対応付けられた前記第2のメモリの領域から情報を読み出して前記第1のキャッシュ制御部に出力する第2のキャッシュ制御処理を実行する、
ことを特徴とするキャッシュ制御方法。
(付記16)
各々がプロセッサと、前記プロセッサに対応するメモリとを搭載する複数の処理部と、前記複数の処理部を通信可能に接続する接続部とを備え、
前記プロセッサは、
前記メモリから読み出した情報を記憶するキャッシュと、
前記キャッシュを制御するとともに、前記メモリ内に仮想キャッシュを設定し、前記仮想キャッシュを制御する制御部と、
前記仮想キャッシュのタグを記憶する記憶部と、
を備えることを特徴とする情報処理装置。
(付記17)
前記情報処理装置において、
前記制御部は、前記キャッシュに登録されているデータに対するリプレース処理が行われる場合、前記リプレース処理の対象となるデータのタグを前記記憶部に登録し、前記リプレース処理の対象となるデータを前記メモリ内に設定された仮想キャッシュに登録することを特徴とする情報処理装置。
(付記18)
前記情報処理装置において、
前記制御部は、前記リプレース処理の対象となるデータが、他プロセッサに対応するメモリ上のデータである場合に、前記リプレース処理の対象となるデータを前記仮想キャッシュに登録することを特徴とする付記17に記載の情報処理装置。
(付記19)
前記情報処理装置において、
前記制御部は、
前記キャッシュを制御するキャッシュ制御部と、
前記仮想キャッシュを制御する仮想キャッシュ制御部とを含むことを特徴とする、付記16に記載の情報処理装置。
301 命令実行部
302 L1キャッシュ
303 L1制御部
304 L2キャッシュ
305 L2制御部
306 VL3キャッシュ
307 VL3制御部307
Claims (9)
- 他の演算処理装置と前記他の演算処理装置に接続するリモートメモリとを含むリモートノードに接続するローカルノードに含まれ、前記他の演算処理装置と前記ローカルノードに含まれるローカルメモリとに接続する演算処理装置において、
新規データをストアするストア要求を出力する命令実行部と、
キャッシュデータを保持するデータキャッシュと、
前記キャッシュデータのアドレス情報と、前記キャッシュデータの登録状態を示す登録状態情報とを登録しうる第1のタグキャッシュと、
前記ストア要求に基づき、前記新規データを前記データキャッシュに保持する場合、前記新規データを保持する領域が前記データキャッシュに無いとき、前記データキャッシュに保持されたリプレース対象のキャッシュデータであるリプレース対象データを前記データキャッシュから追い出し、さらに、前記リプレース対象データを記憶するノードが前記ローカルノードでない場合、前記リプレース対象データが前記リモートメモリに記憶されていると判断する第1のキャッシュ制御部と、
前記リプレース対象データのアドレス情報と、前記リプレース対象データの登録状態を示す登録状態情報とを登録しうる第2のタグキャッシュと、
前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断した場合、前記リプレース対象データのアドレス情報と登録状態情報とを前記第2のタグキャッシュに登録するとともに、前記リプレース対象データを前記ローカルメモリに記憶する第2のキャッシュ制御部を有することを特徴とする演算処理装置。 - 前記第1のキャッシュ制御部はさらに、
前記タグキャッシュに登録された前記リプレース対象データのアドレス情報と登録状態情報とを前記タグキャッシュから追い出すとともに、前記新規データのアドレス情報と登録状態情報とを前記タグキャッシュメモリに登録するリプレース処理を実行することを特徴とする請求項1記載の演算処理装置。 - 前記第1のキャッシュ制御部は、
前記リプレース処理を実行した場合、追い出した前記リプレース対象データのアドレス情報と登録状態情報とに基づき、前記リプレース対象データを記憶するノードが前記ローカルノードであるかを判断することを特徴とする請求項2記載の演算処理装置。 - 前記第1のキャッシュ制御部は、
前記リプレース処理を実行する場合、前記第1のタグキャッシュに登録された登録状態情報をそのまま登録させることを特徴とする請求項2又は3記載の演算処理装置。 - 前記新規データと前記リプレース対象データとは、排他関係にあることを特徴とする請求項1〜4のいずれか1項に記載の演算処理装置。
- 前記第2のキャッシュ制御部はさらに、
前記ローカルメモリに記憶させたリプレース対象データを無効にする無効化要求を、前記リモートノードから受けた場合、前記第2のタグキャッシュに登録した前記リプレース対象データの登録状態情報を無効状態に変更することを特徴とする請求項1〜5のいずれか1項に記載の演算処理装置。 - 前記命令実行部がリード要求を出力した場合、前記第1のタグキャッシュに登録されたアドレス情報に基づき、前記第1のキャッシュ制御部が、前記キャッシュメモリから前記リード要求の対象データを検索した結果、前記リード要求の対象データが検索されないとき、前記第2のタグキャッシュに登録されたアドレス情報の検索結果に基づき、前記第2のキャッシュ制御部が、前記リード要求の対象データを前記ローカルメモリから読み出すことを特徴とする請求項1〜6のいずれか1項に記載の演算処理装置。
- 他の演算処理装置と、前記他の演算処理装置に接続するリモートメモリとを含むリモートノードと、前記他の演算処理装置に接続する演算処理装置と、前記演算処理装置に接続するローカルメモリとを含むローカルノードとを有する情報処理装置において、
前記演算処理装置は、
新規データをストアするストア要求を出力する命令実行部と、
キャッシュデータを保持するデータキャッシュと、
前記キャッシュデータのアドレス情報と、前記キャッシュデータの登録状態を示す登録状態情報とを登録しうる第1のタグキャッシュと、
前記ストア要求に基づき、前記新規データを前記データキャッシュに保持する場合、前記新規データを保持する領域が前記データキャッシュに無いとき、前記データキャッシュに保持されたリプレース対象のキャッシュデータであるリプレース対象データを前記データキャッシュから追い出し、さらに、前記リプレース対象データを記憶するノードが前記ローカルノードでない場合、前記リプレース対象データが前記リモートメモリに記憶されていると判断する第1のキャッシュ制御部と、
前記リプレース対象データのアドレス情報と、前記リプレース対象データの登録状態を示す登録状態情報とを登録しうる第2のタグキャッシュと、
前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断した場合、前記リプレース対象データのアドレス情報と登録状態情報とを前記第2のタグキャッシュに登録するとともに、前記リプレース対象データを前記ローカルメモリに記憶する第2のキャッシュ制御部を有することを特徴とする情報処理装置。 - 他の演算処理装置と前記他の演算処理装置に接続するリモートメモリとを含むリモートノードに接続するローカルノードに含まれ、前記他の演算処理装置と前記ローカルノードに含まれるローカルメモリとに接続するとともに、キャッシュデータを保持するデータキャッシュと、前記キャッシュデータのアドレス情報と前記キャッシュデータの登録状態を示す登録状態情報とを登録しうる第1のタグキャッシュと、前記データキャッシュに保持されたリプレース対象のキャッシュデータであるリプレース対象データのアドレス情報と前記リプレース対象データの登録状態を示す登録状態情報とを登録しうる第2のタグキャッシュとを有する演算処理装置の制御方法において、
前記演算処理装置が有する命令実行部が、新規データをストアするストア要求を出力し、
前記ストア要求に基づき、前記新規データを前記データキャッシュに保持する場合、前記新規データを保持する領域が前記データキャッシュに無いとき、前記演算処理装置が有する第1のキャッシュ制御部が、前記リプレース対象データを前記データキャッシュから追い出し、
さらに、前記リプレース対象データを記憶するノードが前記ローカルノードでない場合、前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断し、
前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断した場合、前記演算処理装置が有する第2のキャッシュ制御部が、前記リプレース対象データのアドレス情報と登録状態情報とを前記第2のタグキャッシュに登録するとともに、前記リプレース対象データを前記ローカルメモリに記憶することを特徴とする演算処理装置の制御方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009044652A JP5338375B2 (ja) | 2009-02-26 | 2009-02-26 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
| US12/694,374 US20100217939A1 (en) | 2009-02-26 | 2010-01-27 | Data processing system |
| EP10151912A EP2224343B1 (en) | 2009-02-26 | 2010-01-28 | Data processing system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009044652A JP5338375B2 (ja) | 2009-02-26 | 2009-02-26 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010198490A JP2010198490A (ja) | 2010-09-09 |
| JP5338375B2 true JP5338375B2 (ja) | 2013-11-13 |
Family
ID=42224833
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009044652A Expired - Fee Related JP5338375B2 (ja) | 2009-02-26 | 2009-02-26 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20100217939A1 (ja) |
| EP (1) | EP2224343B1 (ja) |
| JP (1) | JP5338375B2 (ja) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5861496B2 (ja) * | 2012-02-28 | 2016-02-16 | 富士通株式会社 | マルチプロセッサ装置、及びマルチプロセッサ装置の電力制御方法 |
| JP5906881B2 (ja) * | 2012-03-27 | 2016-04-20 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
| JP2014048848A (ja) | 2012-08-30 | 2014-03-17 | Fujitsu Ltd | 演算処理装置、情報処理装置およびデータ転送方法 |
| JP6028470B2 (ja) * | 2012-08-31 | 2016-11-16 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
| JP6036457B2 (ja) * | 2013-03-25 | 2016-11-30 | 富士通株式会社 | 演算処理装置、情報処理装置及び情報処理装置の制御方法 |
| JP6094303B2 (ja) * | 2013-03-25 | 2017-03-15 | 富士通株式会社 | 演算処理装置、情報処理装置及び情報処理装置の制御方法 |
| JP6040840B2 (ja) * | 2013-03-29 | 2016-12-07 | 富士通株式会社 | 演算処理装置、情報処理装置及び情報処理装置の制御方法 |
| US11531619B2 (en) * | 2019-12-17 | 2022-12-20 | Meta Platforms, Inc. | High bandwidth memory system with crossbar switch for dynamically programmable distribution scheme |
| US20220414001A1 (en) * | 2021-06-25 | 2022-12-29 | Microsoft Technology Licensing, Llc | Memory inclusivity management in computing systems |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2645477B2 (ja) * | 1988-08-04 | 1997-08-25 | 富士通株式会社 | マイクロプロセッサ及びそのキャッシュメモリ |
| US5822755A (en) * | 1996-01-25 | 1998-10-13 | International Business Machines Corporation | Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache |
| US5937431A (en) * | 1996-07-12 | 1999-08-10 | Samsung Electronics Co., Ltd. | Multi- node, multi-level cache- only memory architecture with relaxed inclusion |
| JPH10105458A (ja) | 1996-10-02 | 1998-04-24 | Hitachi Ltd | キャッシュメモリシステム |
| JP3666705B2 (ja) * | 1996-12-24 | 2005-06-29 | 株式会社ルネサステクノロジ | 半導体装置 |
| DE69823666T2 (de) * | 1997-07-28 | 2004-09-30 | Nippon Zeon Co., Ltd. | Harzzusammensetzung enthaltend vinylisches cyclisches kohlenwasserstoffpolymer sowie geformtes produkt |
| EP0908825B1 (en) * | 1997-10-10 | 2002-09-04 | Bull S.A. | A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory |
| US6154816A (en) * | 1997-10-24 | 2000-11-28 | Compaq Computer Corp. | Low occupancy protocol for managing concurrent transactions with dependencies |
| US6408362B1 (en) * | 1999-06-24 | 2002-06-18 | International Business Machines Corporation | Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data |
| JP2002032265A (ja) | 2000-07-14 | 2002-01-31 | Hitachi Ltd | キャッシュ・アクセス制御方式およびデータ処理システム |
| US6901485B2 (en) * | 2001-06-21 | 2005-05-31 | International Business Machines Corporation | Memory directory management in a multi-node computer system |
| US6973544B2 (en) * | 2002-01-09 | 2005-12-06 | International Business Machines Corporation | Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system |
| US6834327B2 (en) * | 2002-02-08 | 2004-12-21 | Hewlett-Packard Development Company, L.P. | Multilevel cache system having unified cache tag memory |
| US6898676B2 (en) * | 2002-10-03 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | Computer system supporting both dirty-shared and non-dirty-shared data processing entities |
| US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
| US7249224B2 (en) * | 2003-08-05 | 2007-07-24 | Newisys, Inc. | Methods and apparatus for providing early responses from a remote data cache |
| US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
| US7430639B1 (en) * | 2005-08-26 | 2008-09-30 | Network Appliance, Inc. | Optimization of cascaded virtual cache memory |
| US7689771B2 (en) * | 2006-09-19 | 2010-03-30 | International Business Machines Corporation | Coherency management of castouts |
-
2009
- 2009-02-26 JP JP2009044652A patent/JP5338375B2/ja not_active Expired - Fee Related
-
2010
- 2010-01-27 US US12/694,374 patent/US20100217939A1/en not_active Abandoned
- 2010-01-28 EP EP10151912A patent/EP2224343B1/en not_active Not-in-force
Also Published As
| Publication number | Publication date |
|---|---|
| EP2224343A1 (en) | 2010-09-01 |
| JP2010198490A (ja) | 2010-09-09 |
| US20100217939A1 (en) | 2010-08-26 |
| EP2224343B1 (en) | 2012-08-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5338375B2 (ja) | 演算処理装置、情報処理装置および演算処理装置の制御方法 | |
| JP3924206B2 (ja) | 不均一メモリ・アクセス(numa)データ処理システム | |
| TW452690B (en) | Reservation management in a non-uniform memory access (NUMA) data processing system | |
| US12135646B2 (en) | Cache coherence shared state suppression | |
| US20080215820A1 (en) | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer | |
| US8700863B2 (en) | Computer system having a cache memory and control method of the same | |
| JP3661764B2 (ja) | 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム | |
| JP2002197073A (ja) | キャッシュ一致制御装置 | |
| US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
| US7797495B1 (en) | Distributed directory cache | |
| US8627016B2 (en) | Maintaining data coherence by using data domains | |
| US6826655B2 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
| US10489292B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
| US20230418758A1 (en) | Tag processing for external caches |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111006 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130315 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130409 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130610 |
|
| 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: 20130709 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130722 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |