Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5338375B2 - 演算処理装置、情報処理装置および演算処理装置の制御方法 - Google Patents
[go: Go Back, main page]

JP5338375B2 - 演算処理装置、情報処理装置および演算処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置および演算処理装置の制御方法 Download PDF

Info

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
Application number
JP2009044652A
Other languages
English (en)
Other versions
JP2010198490A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009044652A priority Critical patent/JP5338375B2/ja
Priority to US12/694,374 priority patent/US20100217939A1/en
Priority to EP10151912A priority patent/EP2224343B1/en
Publication of JP2010198490A publication Critical patent/JP2010198490A/ja
Application granted granted Critical
Publication of JP5338375B2 publication Critical patent/JP5338375B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-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)内のキャッシュを説明する図である。
共有メモリ型の情報処理装置に使用するCPU1500は、命令実行部1501、L1キャッシュ1502、L1制御部1503、L2キャッシュ1504、L2制御部1505、メモリ制御部1506およびLSI間通信制御部1507を備える。
L1キャッシュ1502およびL2キャッシュ1504は、命令実行部1501が使用する頻度の高いデータを記憶する。
命令実行部1501からのリード要求を受けると、L1制御部1503はL1キャッシュ1502からデータを読み出して命令実行部1501に出力する。また、命令実行部1501が要求するデータがL1キャッシュ1502にない場合、L1制御部1503は、L2制御部1505にデータのリード要求を発行する。すると、L2制御部1505はL2キャッシュ1504からデータを読み出して命令実行部1501に出力する。
L1キャッシュ1502に記憶されるデータは、「L1タグ」といわれる管理情報によって管理されている。このL1タグには、L1キャッシュ1502に記憶されているデータのアドレス情報や登録状態が登録される。L1キャッシュ1502に記憶されるデータを「L1データ」という。
同様に、L2キャッシュ1504に記憶されるデータは、「L2タグ」と言われる管理情報によって管理される。L2キャッシュ1503に記憶されるデータを「L2データ」という。
メモリ制御部1506は、L2制御部305からの要求に応じて、ローカルメモリMEM0にアクセスする。
LSI間通信制御部1507は、L2制御部1505からリード要求を受けると、他ノードに対してリード要求を発行する。また、LSI間通信制御部1507は、L2制御部1505からストア要求を受けると、他ノードに対してストア命令を発行する。
図16は、他ノードに備わるリモートメモリへのアクセス処理を示す図である。なお、以下に示す(1)〜(5)は、図16中に示す(1)〜(5)と対応する。
(1)要求元ノードにおいて、命令実行部1501から要求されたデータがL1キャッシュ1502にない場合、L1制御部1503は、L2制御部1505に対してリード要求を発行する。
(2)L2制御部1505は、L1制御部1503からのリード要求に応じて、L2キャッシュ1504を検索する。L1制御部1503が要求するデータがL2キャッシュ1504にない場合、L2制御部1505は、メモリ制御部1506を介してHomeノードにリード要求を発行する。
(3)Homeノードにおいて、メモリ制御部1506は、要求元ノードからのリード要求に応じて、Homeノードに備わるローカルメモリに対してリード要求を発行する。
(4)ローカルメモリは、メモリ制御部1506からの要求に応じてデータを読み出すリード処理を行なう。そして、ローカルメモリは、メモリ制御部1506に対してリード応答を発行する。同時に、ローカルメモリは、読み出したデータをメモリ制御部1506に送信する。
(5)メモリ制御部1506は、ローカルメモリからリード応答を受信すると、要求元ノードに対してリード応答を発行する。同時に、メモリ制御部1506は、ローカルメモリから読み出したデータを要求元ノードに送信する。
図17は、リプレース処理を示す図である。なお、以下に示す(1)〜(4)は、図17中に示す(1)〜(4)と対応する。
(1)要求元ノードにおいて、L2制御部1505は、リプレース処理を実行すると、L2キャッシュ1504から追い出したデータをメモリに記憶する旨のストア要求をHomeノードに発行する。
(2)Homeノードにおいて、メモリ制御部1506は、要求元ノードからのストア要求に応じて、ローカルメモリに対してストア要求を発行する。すると、ローカルメモリは、メモリ制御部1506の要求にしたがってストア処理を行なう。すなわち、ローカルメモリは、要求元ノードから受信したデータを所定のアドレスに記憶する。
(3)ローカルメモリは、ストア処理が完了すると、ストア要求に対するストア応答をメモリ制御部1506に発行する。
(4)メモリ制御部1506は、ローカルメモリからストア応答を受信すると、要求元ノードに対してストア要求に対するストア応答を発行する。
上記技術に関連して、大容量化が可能で、連想度の低い仮想インデックス/実タグのキャッシュであり、エイリアシングを許容できるキャッシュメモリシステムが知られている。
また、専用・共用領域の特定を動的に行うことにより、常に最適なキャッシュ一致制御を行うキャッシュ・アクセス制御方式が知られている。
また、共有メモリ型のプロセッサにおけるスヌープ・プロトコルを用いたキャッシュコヒーレンス制御方式が知られている。
上述したように、共有メモリ型の情報処理装置では、自ノードに接続されているローカルメモリへのアクセスに比べて、他ノードに接続されているリモートメモリへのアクセスは、通信距離が長くなってしまう。そのため、リード要求などのリクエストを発行してからリクエストの結果が返ってくるまでにかかる遅延時間、すなわち、レイテンシが大幅に増大する。
さらに、近年では、スループットを重視した高速シリアル転送バスを用いてLSI間を接続する。そのため、LSI間の伝送にかかるレイテンシは非常に大きくなる。そして、複数のLSIを介して遠くのメモリにアクセスする場合、さらにレイテンシが大きくなる。
例えば、リモートメモリから取得して自ノード内のL2キャッシュ1504に記憶したデータに対してリプレース処理が実行された場合、リプレース処理により追い出すデータの無効化や必要に応じてHomeノードのメモリへの書き戻し処理が行われる。
そのため、リモートメモリから取得したデータがリプレース処理によりL2キャッシュ1504から追い出された後に、その追い出されたデータへの再アクセスが発生すると、物理的に遠いリモートメモリからのデータを取得するリード処理を再実行しなければならない。そのため、システム内に物理的に遠いメモリが存在するとレイテンシが大幅に増大する。
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、リモートメモリに対するアクセスで生じるレイテンシを改善できるキャッシュ制御装置を提供することである。
キャッシュ制御装置は、第1のキャッシュ制御部と第2のキャッシュ制御部とを備える。
キャッシュ制御装置は、第1のノードに含まれる第1のメモリを共有する第2のノードが有するキャッシュを制御する。
第1のキャッシュ制御部は、第1のメモリ内の情報を記憶する第1のキャッシュに記憶されている第1のキャッシュ情報を第1のキャッシュから出力して、新たな情報を記憶する領域を第1のキャッシュに確保する。
第2のキャッシュ制御部は、第1のキャッシュ制御部が出力した第1のキャッシュ情報を、第2のメモリに記憶する。
このとき、第2のキャッシュ制御部は、第1のキャッシュ情報の管理情報を、第2のメモリの所定の領域と対応付けられた管理情報であって対応付けられた領域に記憶されている情報を管理する管理情報を記憶する第2のキャッシュに記憶する。
また、第2のキャッシュ制御部は、第1のキャッシュ制御部の要求に応じて、要求された情報の管理情報と対応付けられた第2のメモリの領域から情報を読み出して第1のキャッシュ制御部に出力する。
以上に説明したように、本キャッシュ制御装置によると、リモートメモリに対するアクセスで生じるレイテンシを改善することができる。
本実施例に係るキャッシュ制御装置を備えるCPUを使用したシステムの構成例を示す図である。 図1に示したシステムボードSB0の構成例を示す図である。 本実施例に係るキャッシュ制御装置をCPU0に使用した場合の構成例を示す図である。 図3に示したVL3タグの構成例を説明する図である。 登録データの「登録状態」を説明する図である。 VL3タグに登録するタグのビットアサインを示す図である。 メモリMEM0とVL3タグとの関係を示す図である。 L2キャッシュでリプレース処理が行なわれた場合の処理の流れを示す図である。 リプレース処理によりL2キャッシュから追い出されたL2リプレース対象データを読み出す処理の流れを示す図である。 L1キャッシュ、L2キャッシュおよびVL3キャッシュにないデータを読み出す処理の流れを示す図である。 L2キャッシュでリプレース処理が行なわれた場合のキャッシュ制御を説明するフローチャートである。 命令実行部からリード要求があった場合のキャッシュ制御を説明するフローチャートである。 Homeノードから無効化要求を受けた場合のキャッシュ制御を説明するフローチャートである。 Homeノードからムーブアウト要求を受けた場合のキャッシュ制御を説明するフローチャートである。 共有メモリ型の情報処理装置に使用されるCPU内のキャッシュを説明する図である。 リモートメモリへのアクセス処理を示す図である。 リプレース処理を示す図である。
以下、本発明の実施形態について、図1〜図14に基づいて説明する。
(本実施例に係る構成)
図1は、本実施例に係るキャッシュ制御装置を備えるCPUを使用した情報処理装置を示す図である。
図1に示す情報処理装置100は、CPUが実装される複数のシステムボードSB0〜SB7と、クロスバXB0およびB1とを備える。図1に示す情報処理装置100は、各CPUに接続されるメモリを全CPUが共有する共有メモリ型の情報処理装置である。
以下、説明を簡単にするために、1つのノードには1つのCPUが属するものとするが、これに本発明を限定する趣旨ではない。なお、「ノード」とは、所定のメモリを共有する独立した演算処理単位をいう。
各システムボードSB0〜SB7は、それぞれ1または複数のCPUを備える。システムボードSB0〜SB3は、クロスバXB0と相互に通信可能に接続されている。同様に、システムボードSB4〜SB7は、クロスバXB1と相互に通信可能に接続されている。
クロスバXB0とクロスバXB1は、互いに通信可能に接続されている。
以上の構成によって、システムボードSB0に実装されるCPUは、クロスバXB0を介してシステムボードSB1等の他のシステムボードに実装されるCPUに接続されるメモリにアクセス可能となる。同様に、システムボードSB0に実装されるCPUは、クロスバXB0およびXB1を介して、システムボードSB4に実装されるCPUに接続されるメモリにアクセス可能となる。
なお、図1は、情報処理装置100の1つの実施形態を示すものである。したがって、情報処理装置100の構成を図1に示す構成に限定する趣旨ではない。例えば、システムボードの数やクロスバの数、各要素相互の接続形態、1つのノードに属するCPUの数等を限定する趣旨ではない。
図2は、図1に示したシステムボードの構成例を示す図である。なお、本実施例では、システムボードSB0についてのみ説明するが、システムボードSB1〜SB7についても同様の構成とする。
図2に示すシステムボードSB0は、CPU0〜CPU3と、各CPUに接続されるメモリMEM0〜3とを備える。なお、各CPUに接続されるメモリMEM0〜3は、CPU外に実装されデータやプログラムを記憶する揮発性のメモリ、いわゆる「メインメモリ」である。
以下、「メインメモリ」を単に「メモリ」といい、CPU内に実装されるキャッシュと区別する。
各CPU0〜3は、互いに通信可能に接続されている。例えば、CPU0は、CPU1に接続されるメモリMEM1にアクセスが可能である。また、各CPU0〜3は、クロスバXB0と通信可能に接続している。したがって、例えば、CPU0は、クロスバXB0を介してシステムボードSB1に実装されるCPUに接続されるメモリにアクセスが可能である。
以下の説明では、所定のデータが記憶されているメモリが接続しているCPUが属するノードを「Homeノード」という。これに対して、Homeノードからデータを取得してキャッシュに保持するCPUが属するノードを「要求元ノード」という。
また、あるCPUから見て、そのCPUに接続されるメモリを「ローカルメモリ」という。これに対して、あるCPUから見て、そのCPUが属するノード内の他のCPUに接続されるメモリ、あるいはそのCPUが属するノードと異なるノードに属するCPUに接続されるメモリを「リモートメモリ」という。
例えば、CPU0から見て、メモリMEM0はローカルメモリである。また、CPU0から見て、メモリMEM1〜MEM3や、システムボードSB1〜SB7に実装されているCPUに接続されているメモリは、リモートメモリである。
図2は、システムボードSB0の1つの実施形態を示すものである。したがって、システムボードSB0の構成を図2に示す構成に限定する趣旨ではない。例えば、システムボードSB0に実装されるCPUの数やメモリの数等を限定する趣旨ではない。
図3は、本実施例に係るキャッシュ制御装置をCPUに使用した場合の構成例を示す図である。なお、本実施例では、CPU0について例示するが、システムボードSB0に実装される他のCPU1〜3およびシステムボードSB1〜SB7に実装されるCPUについても同様の構成とする。
CPU0は、命令実行部301と、L1キャッシュ302と、L1制御部303と、L2キャッシュ304と、L2制御部305と、VL3キャッシュ306と、VL3制御部307と、メモリ制御部308と、LSI間通信制御部309とを備える。
本実施例に係るキャッシュ制御装置310は、L1制御部303と、L2制御部305と、VL3制御部307との機能を含むものとする。
本実施例に係るキャッシュ装置320は、L1キャッシュ302と、L1制御部303と、L2キャッシュ304と、L2制御部305と、VL3キャッシュ306と、VL3制御部307とを含むものとする。
キャッシュ装置320は、命令実行部301で使用するデータ等を記憶する。キャッシュ制御装置310は、必要に応じてキャッシュ装置320にデータを記憶し、または読み出す等の制御を行なう。
命令実行部301は、ローカルメモリMEM0上に展開されたプログラム命令を実行する。また、命令実行部301は、必要に応じて、L1制御部303に対してリード要求、ストア要求等を行う。
L1キャッシュ302は、CPU0内部に設けられた1次キャッシュである。L1キャッシュ302には、L1タグとL1データとが記憶される。L1データは、L1キャッシュ302に記憶されるデータ群である。L1タグは、L1キャッシュ302に記憶されるデータを管理する管理情報群である。
なお、タグとは、キャッシュに記憶するデータを管理する管理情報である。管理情報には、例えば、データが記憶されているローカルメモリの物理アドレスやそのデータの登録状態などが含まれる。データの登録状態については、後述する図5で説明する。
L1制御部303は、L1キャッシュ302を制御する。例えば、L1制御部303は、ローカルメモリから取得したデータをL1キャッシュ302に記憶する。また、L1制御部303は、L1データを記憶するローカルメモリの物理アドレスと、そのL1データの登録状態を示すデータと、からなるデータにECC検査ビットを付したタグを、L1タグに登録する。
L2キャッシュ304は、CPU0内部に設けられた2次キャッシュである。L2キャッシュ304には、L2タグとL2データとが記憶される。L2データは、L2キャッシュ304に記憶されるデータ群である。L2タグは、L2キャッシュ304に記憶されるデータを管理する管理情報群である。
L2制御部1505は、L2キャッシュ304を制御する。例えば、L2制御部305は、ローカルメモリから取得したデータをL2キャッシュ304に記憶する。また、L2制御部305は、L2データを記憶するローカルメモリの物理アドレスと、そのL2データの登録状態を示すデータと、からなるデータにECC検査ビットを付したタグを、L2タグに登録する。
VL3キャッシュ306は、仮想的に3次キャッシュを実現するためのキャッシュである。VL3キャッシュ306には、VL3タグが記憶される。VL3タグは、CPU0内部に仮想的に設けられる3次キャッシュに記憶されるデータを管理する管理情報群である。
VL3制御部307は、VL3キャッシュ306とローカルメモリMEM0を用いて仮想的に3次キャッシュを実現する。
例えば、リモートメモリから読み出したデータがリプレース処理によってL2キャッシュ304から追い出される場合を考える。
この場合、VL3制御部307は、リプレース処理によってL2キャッシュ304から追い出されたデータを、仮想キャッシュ空間に割り当てられたローカルメモリMEM0の所定のアドレスに記憶する。また、VL3制御部307は、そのローカルメモリMEM0に記憶されたデータが記憶されているリモートメモリのアドレスと、そのローカルメモリMEM0に記憶されたデータのキャッシュ上の登録状態を示すデータと、ECC検査ビットと、を含むタグをVL3タグに登録する。
「リプレース処理」とは、新しいデータを記憶するために、古いデータをキャッシュから追い出す処理をいう。古いデータには、タグのみのデータも含まれるものとする。また、L2キャッシュにおいて行われるリプレース処理を「L2リプレース処理」という。また、L2リプレース処理でL2キャッシュから追い出される対象のデータを「L2リプレース対象データ」という。
VL3タグへのタグの登録は、L2キャッシュ304に対してリプレース処理が実行され、かつリプレース対象データがリモートメモリから取得したデータである場合に行われる。
メモリ制御部308は、VL3制御部307等からの要求に応じて、ローカルメモリMEM0にアクセスする。
例えば、VL3制御部307からリード要求を受けると、メモリ制御部308はローカルメモリMEM0の所定のアドレスからデータを読み出してVL3制御部307に出力する。また、メモリ制御部308は、VL3制御部307からストア要求を受けると、ストア対象のデータをローカルメモリMEM0に記憶する。
LSI間通信制御部309は、VL3制御部307等からの要求に応じて、リモートメモリにアクセスする。
例えば、CPU0のLSI間通信制御部309は、CPU1に接続しているメモリにアクセスする。また、例えば、LSI間通信制御部309は、クロスバXB0を介してシステムボードSB1に実装されているCPUに接続されているメモリにアクセスする。
なお、本実施例では、各ノードに含まれるキャッシュ、図3の例ではL1キャッシュ302、L2キャッシュ304およびVL3キャッシュ306の一貫性を保持するために、ccNUMA(cache−coherent NonUniform Memory Access)方式によるキャッシュコヒーレンス制御を行うものとする。
図4は、図3に示したVL3タグの構成例を説明する図である。
図4に示すVL3タグ401は、以下に示す32Mbyte(=128Byte×4val(value)×2Kライン×32way)の記憶容量の3次キャッシュを仮想的に実現するためのものである。
(1)ラインサイズ :128Byte
(2)ページ数 :4
(3)ライン数 :2K(=2×1024)
(4)データ格納構造:32wayセットアソシアティブ方式
そこで、本実施例に係るVL3タグ401は、40ビット×2Kライン×32way、すなわち、1ライン40ビットのラインを2K(=2×1024)有する32wayセットアソシアティブ方式のデータ格納構造を有する。各ラインにタグが登録される。以下、VL3タグ401にタグを登録したデータまたはタグを登録するデータを「登録データ」という。
図4に示すビットアサイン402は、仮想的に設けられる3次キャッシュへのアクセス時に指定されるアドレスデータPAの主要部を示している。
図4に示すビットアサイン402は、1ノードあたりの実メモリ空間を256Gbyteとし、最大ノード数を64ノードとした場合の物理アドレス空間のビットアサインについて示している。
ビット[43:38]は、ノードを識別するノード識別IDである。このノード識別IDは、登録データを記憶しているメモリの属するノードを示している。また、ビット[37:20]は、登録データを記憶するメモリの物理アドレスである。
ビット[19:09]は、タグの登録先のラインアドレスである。また、ビット[08:07]は、タグの登録先のページを示す値(Sval:Select value)である。例えば、ビット[08:07]が「00(2進数)」の場合、VL3制御部307は、図4に示すように、アドレスデータPAのビット[19:09]が示すページ0のラインアドレスのいずれかのwayを登録先wayとして選択する。そして、VL3制御部307は、選択した登録先wayにタグを登録する。
なお、登録先wayは、例えば、LRU(Least Recently Used)方式を用いて決定すればよい。
VL3タグ401に登録するタグは、アドレスデータPAのビット[43:20]と、登録データの登録状態を示すデータSVAL[7:0]と、ECC検査ビットECC[6:0]とを備えるデータである。
なお、SVAL[7:0]およびECC[6:0]については、図6で説明する。
本実施例では、アドレスデータPAのビット[43:20]が示すアドレスに記憶された登録データのキャッシュ上の状態を「登録状態」という。また、ECC検査ビットは、アドレスデータPAのビット[43:20]のデータと登録状態を示すデータSVAL[7:0]を保護するためのECC検査ビットである。
なお、図4は、VL3タグ401の1つの実施形態を示すものである。したがって、ラインサイズ、ライン数またはway数等を限定する趣旨ではない。
図5は、登録データの「登録状態」を説明する図である。
登録データの「登録状態」は、MESI(Modified/Exclusive/Shared/Invalid)プロトコルにしたがって決定される。MESIプロトコルで定義される各状態は、2ビットのデータSTS[1:0]で表される。
STS[1:0]が「00(2進数)」である場合、登録データの状態がIであることを示す。状態Iは、登録データが無効の状態である。
STS[1:0]が「01(2進数)」である場合、登録データの状態がSであることを示す。状態Sは、リモートメモリ上から共有型で持ち出されたキャッシュ上のデータがクリーンな状態である。
データが「クリーン」な状態とは、リモートメモリに記憶されているデータと、そのリモートメモリから読み出されてキャッシュ上に記憶されたデータとが一致している状態をいう。
STS[1:0]が「10(2進数)」である場合、登録データの状態がEであることを示す。状態Eは、リモートメモリ上から排他型で持ち出された登録データがクリーンな状態である。
STS[1:0]が「11(2進数)」である場合、登録データの状態がMであることを示す。状態Mは、リモートメモリ上から排他型で持ち出された登録データがダーティな状態である。
データが「ダーティ」な状態とは、リモートメモリまたはキャッシュに記憶されているデータが更新されたことにより、リモートメモリに記憶されているデータと、そのリモートメモリから読み出されてキャッシュ上に記憶されたデータとが一致しない状態をいう。
図6は、VL3タグに記憶するタグのビットアサインを示す図である。
タグ601は、40ビット幅のデータである。タグ601のビット[39:16]には、アドレスデータPAのビット[43:20]のデータが格納される。
タグ601のビット[14:07]には、登録状態MESIを示すSTS[1:0]のデータが格納される。例えば、タグ601のビット[14:13]、[12:11]、[10:09]および[08:07]は、それぞれ状態I、状態S、状態Eおよび状態Mを設定する領域である。
STS[1:0]の値が状態Iを示す場合、タグ601のビット[14:13]にSTS[1:0]の値が設定される。STS[1:0]の値が状態Sを示す場合、タグ601のビット[12:11]にSTS[1:0]の値が設定される。STS[1:0]の値が状態Eを示す場合、タグ601のビット[10:09]にSTS[1:0]の値が設定される。STS[1:0]の値が状態Mを示す場合、タグ601のビット[08:07]にSTS[1:0]の値が設定される。
なお、タグ601のビット[14:13]、[12:11]、[10:09]および[08:07]は、STS[1:0]の値が設定されたことが明確となるように初期化する必要がある。
タグ601のビット[06:00]には、タグ601のビット[39:07]のECC検査ビットが格納される。なお、タグ601のビット[15]は、リザーブ領域となっている。
本実施例では、L1タグに登録するタグおよびL2タグに登録するタグも、図6に示したタグと同様のビットアサインのものを使用する。
図7は、ローカルメモリMEM0とVL3タグとの関係を示す図である。なお、他ノードにおいてもローカルメモリとVL3タグは同様の関係を有する。
実メモリ空間701は、ローカルメモリMEM0のメモリ空間である。実メモリ空間701は、128Byteのブロック毎に管理されている。そして、実メモリ空間701のうち下位32MByteの領域が仮想キャッシュ空間に割り当てられている。その他の領域は、ユーザが使用可能な領域となっている。
仮想キャッシュ空間702は、VL3タグのメモリ空間である。仮想キャッシュ空間702は、40bitのブロック毎に管理されている。各ブロックには、図4に示したWAY0−ライン#0000〜WAY31−ライン#2047に登録されるタグが記憶される。
仮想キャッシュ空間702の各ブロックは、仮想キャッシュ空間に割り当てられている実メモリ空間701内のブロックと対応付けられている。例えば、仮想キャッシュ空間702に記憶されたタグのビット[33:16]が示す実メモリ空間701の物理アドレスに、登録データが記憶される。
(本実施例に係るキャッシュ制御の概要)
本実施例に係るキャッシュ制御では、リモートメモリから読み出してL2キャッシュ304に記憶されているデータがリプレース処理によって追い出された場合、追い出されたデータを、L2キャッシュ304の下位に仮想的に設けた3次キャッシュに記憶する。
以下に本実施例に係るキャッシュ制御の概要を説明する。
図8は、L2キャッシュ304でリプレース処理が行なわれた場合の処理の流れを示す図である。なお、以下に示す(1)〜(5)は、図8中に示される(1)〜(5)と対応する。
(1)要求元ノードにおいて、L2制御部305は、リプレース処理を実行すると、リプレース処理により追い出されたL2リプレース対象データを、VL3制御部307に出力する。
(2)VL3制御部307は、L2制御部305からのL2リプレース対象データを受信すると、L2リプレース対象データのタグをVL3タグに登録する。また、VL3制御部307は、メモリ制御部308に対して、仮想キャッシュ空間に割り当てられているローカルメモリの所定のアドレスにL2リプレース対象データを記憶する旨のストア要求を発行する。
(3)メモリ制御部308は、ローカルメモリ(図示「メモリ」)に対して、L2リプレース対象データを所定のアドレスに記憶する旨のストア要求を発行する。同時に、メモリ制御部308は、L2リプレース対象データをローカルメモリに送信する。
ローカルメモリは、L2リプレース対象データのストア処理を行なう。すなわち、ローカルメモリは、メモリ制御部308からの要求に応じて、メモリ制御部308からストア要求とともに受信したL2リプレース対象データを所定のアドレスに記憶する。
(4)ローカルメモリは、ストア処理が完了すると、メモリ制御部308に対してストア処理が完了した旨のストア応答を発行する。
(5)メモリ制御部308は、ローカルメモリからストア応答を受信すると、VL3制御部307に対してストア応答を発行する。
以上の処理により、リプレース処理によって追い出されたL2リプレース対象データは、仮想的に設けられた3次キャッシュに記憶される。
なお、Homeノードにおいて、ストア系アクセスの実行により、VL3タグにタグを登録したL2リプレース対象データが変更された場合、Homeノードから要求元ノードにデータの無効化要求が送られてくる。この場合、要求元ノードは、後述する図13に示す処理により、VL3タグに登録したL2リプレース対象データのタグを無効化する。
また、L2リプレース対象データが排他型で持ち出されたデータの場合、Homeノードにおいて、任意の装置からL2リプレース対象データへのアクセスがあると、Homeノードから要求元ノードにデータのムーブアウト要求が送られてくる。その場合、要求元ノードは、図14に示す処理により、L2リプレース対象データをHomeノードに送信する。同時に、要求元ノードは、VL3タグに登録されているL2リプレース対象データのタグを無効化する。
図9は、リプレース処理によりL2キャッシュ304から追い出されたL2リプレース対象データを読み出す処理の流れを示す図である。なお、以下に示す(1)〜(6)は、図9中に示される(1)〜(6)と対応する。
(1)L1制御部303は、命令実行部301から要求されたデータがL1キャッシュ302にない場合、L2制御部305に対してリード要求を発行する。以下、リード要求の対象となるデータを「リード対象データ」という。
(2)L2制御部305は、L1制御部303からリード要求を受信すると、L2タグを検索する。そして、L2制御部305は、リード対象データのタグがL2タグに登録されているか否かを判別する。キャッシュミスを検出すると、L2制御部305は、VL3制御部307に対してリード要求を発行する。
(3)VL3制御部307は、L2制御部305からリード要求を受信すると、VL3タグを検索する。そして、VL3制御部307は、リード対象データのタグがVL3タグに登録されているか否かを判別する。キャッシュヒットを検出すると、VL3制御部307は、メモリ制御部308に対してリード要求を発行する。
(4)メモリ制御部308は、VL3制御部307からリード要求を受信すると、ローカルメモリに対してリード要求を発行する。
(5)ローカルメモリは、メモリ制御部308からのリード要求に応じて、所定のアドレスからリード対象データを読み出すリード処理を行なう。そして、ローカルメモリは、メモリ制御部308対してリード処理が完了した旨のリード応答を発行する。同時に、ローカルメモリは、読み出したリード対象データをメモリ制御部308に送信する。
(6)メモリ制御部308は、VL3制御部307に対してリード応答を発行する。同時に、メモリ制御部308は、ローカルメモリから受信したリード対象データをVL3制御部307に送信する。
VL3制御部307に送信されたリード対象データは、L2制御部305およびL1制御部303を介して、命令実行部301に通知される。
このとき、L1制御部303は、VL3制御部307から通知されたリード対象データのタグをL1タグに登録し、リード対象データをL1データに記憶する。同様に、L2制御部305は、VL3制御部307から通知されたリード対象データのタグL2タグに登録し、リード対象データをL2データに記憶する。
なお、本実施例では、L1キャッシュ302およびL2キャッシュ304に記憶するデータと、VL3キャッシュ306に記憶するデータとが排他的に制御される。したがって、VL3キャッシュ306に登録されているデータをL1キャッシュ302およびL2キャッシュ304に登録する場合、VL3制御部307は、キャッシュの一貫性を保持するためにVL3キャッシュ306に登録されているデータを無効化する。
図10は、L1キャッシュ302、L2キャッシュ304およびVL3キャッシュ306にないデータを読み出す処理の流れを示す図である。なお、以下に示す(1)〜(6)は、図10中に示される(1)〜(6)と対応する。
(1)要求元ノードにおいて、L1制御部303は、命令実行部301から要求されたデータがL1キャッシュ302にない場合、L2制御部305に対してリード要求を行う。
(2)L2制御部305は、L1制御部303からリード要求を受信すると、L2タグを検索する。そして、L2制御部305は、リード対象データのタグがL2タグに登録されているか否かを判別する。キャッシュミスを検出すると、L2制御部305は、VL3制御部307に対してリード要求を発行する。
(3)VL3制御部307は、L2制御部305からリード要求を受信すると、VL3タグを検索する。そして、VL3制御部307は、リード対象データのタグがVL3タグに登録されているか否かを判別する。キャッシュミスを検出すると、VL3制御部307は、リード要求で指定されるアドレスデータPAからHomeノードを特定する。
なお、Homeノードは、図4に示したビットアサイン402のビット[43:38]、つまりノード識別IDから特定することができる。
Homeノードを特定すると、VL3制御部307は、特定したHomeノードに対してリード要求を発行する。
(4)Homeノードのメモリ制御部は、要求元ノードのVL3制御部307からリード要求を受信すると、ローカルメモリに対してリード要求を発行する。
(5)ローカルメモリは、Homeノードのメモリ制御部からのリード要求に応じて、リード対象アドレスに記憶されているリード対象データを読み出すリード処理を行なう。そして、ローカルメモリは、Homeノードのメモリ制御部に対してリード応答を発行する。同時に、ローカルメモリは、読み出したリード対象データをHomeノードのメモリ制御部に送信する。
(6)Homeノードのメモリ制御部は、ローカルメモリからリード応答を受信すると、要求元ノードに対してリード応答を発行する。同時に、Homeノードのメモリ制御部は、ローカルメモリから受信したリード対象データを要求元ノードに送信する。
要求元ノードにおいて、Homeノードのメモリ制御部から送信されたリード対象データは、VL3制御部307が受信する。VL3制御部307が受信したリード対象データは、L2制御部305およびL1制御部303を介して、命令実行部301に通知される。
このとき、L1制御部303は、VL3制御部307から通知されたリード対象データのタグをL1タグに登録し、リード対象データをL1データに記憶する。同様に、L2制御部305は、リード対象データのタグL2タグに登録し、リード対象データをL2データに記憶する。
(本実施例に係るキャッシュ制御の具体的処理)
図11は、L2キャッシュ304でリプレース処理が行なわれる場合のキャッシュ制御を説明するフローチャートである。
例えば、L1制御部303がL2制御部305に対して、命令実行部301からストア要求があったデータのストア要求を発行することにより、図11の処理が開始する(ステップS1100)。
ステップS1101において、L2制御部305は、L2タグに新たなタグを登録する領域があるか否かにより、L1制御部303から指示された新規データを記憶する領域がL2キャッシュ304にあるか否かを判別する。
そして、L1制御部303から指示された新規データを記憶する領域がL2キャッシュ304にない場合、L2制御部305は、L2リプレース処理を実行する。L2リプレース処理によりL2キャッシュ304に所定の領域を確保すると、L2制御部305は、L1制御部303から指示された新規データのタグをL2タグに登録する。また、L2制御部305は、L1制御部303から指示された新規データをL2リプレース処理により確保したL2キャッシュ304の領域に格納する。
一方、L1制御部303から指示された新規データを記憶する領域がL2キャッシュ304にある場合、L2制御部305は、L2リプレース処理を実行することなく、L1制御部303から指示された新規データのタグをL2タグに登録する。また、L2制御部305は、L1制御部303から指示された新規データをL2キャッシュ304に格納する。
ステップS1102において、L2制御部305は、ステップS1101におけるL2リプレース処理の実行の有無を判別する。
ステップS1101でL2リプレース処理が実行された場合、L2制御部305は、処理をステップS1103に移行する(S1102 YES)。また、ステップS1101でL2リプレース処理が実行されていない場合、L2制御部305は、処理をステップS1111に移行し、図11の処理を終了する(S1102 NO)。
ステップS1103において、L2制御部305は、L2リプレース処理によってL2キャッシュ304から追い出されたL2リプレース対象データのタグから、L2リプレース対象データを格納する格納先を特定する。
例えば、L2制御部305は、L2リプレース対象データのタグから、L2リプレース対象データのHomeノードを特定する。Homeノードは、図6に示したビットアサイン601のビット[39:34]、すなわち、図4に示したビットアサイン402のビット[43:38]から特定することが可能である。
ステップS1104において、Homeノードが自ノードと一致しない場合、L2制御部305は、L2リプレース対象データがリモートメモリ上に格納されていると判断する(S1104 YES)。この場合、L2制御部305は処理をステップS1105に移行する。
また、Homeノードが自ノードと一致する場合、L2制御部305は、L2リプレース対象データがローカルメモリ上に格納されていると判断する(S1104 NO)。この場合、L2制御部305は処理をステップS1110に移行する。
ステップS1105において、VL3制御部307は、以下の処理により、L2リプレース対象データのタグをVL3タグに登録する。なお、L2キャッシュ304でのL2リプレース対象データの登録状態(M/E/S)はそのまま引き継がれる。
まず、VL3制御部307は、L2リプレース対象データのタグを記憶する領域がVL3タグにあるか否かを判別する。
そして、L2リプレース対象データのタグを登録する領域がVL3タグにない場合、VL3制御部307は、VL3タグに登録されている古いタグをVL3キャッシュ306から追い出すリプレース処理を実行する。
以下、VL3キャッシュにおいて行われるリプレース処理を「VL3リプレース処理」という。また、VL3リプレース処理でVL3キャッシュから追い出される対象のデータを「VL3リプレース対象データ」という。
VL3リプレース処理によりVL3キャッシュ306上のVL3タグに所定の領域を確保すると、VL3制御部307は、その確保した領域にL2リプレース対象データのタグを登録する。
また、L2リプレース対象データのタグを記憶する領域がVL3タグにある場合、VL3制御部307は、VL3リプレース処理を実行することなく、VL3タグにL2リプレース対象データのタグを登録する。
ステップS1106において、VL3制御部307は、ステップS1105におけるVL3リプレース処理の実行の有無を判別する。
ステップS1105でVL3リプレース処理が実行された場合、VL3制御部307は処理をステップS1107に移行する(S1106 YES)。また、ステップS1105でVL3リプレース処理が実行されていない場合、VL3制御部307は、処理をステップS1109に移行する(S1106 NO)。
ステップS1107において、VL3制御部307は、仮想キャッシュ空間に割り当てられたローカルメモリの所定のアドレスからVL3リプレース対象データを追い出す。
例えば、VL3制御部307は、VL3タグに登録されていたVL3リプレース対象データのタグを参照する。そして、VL3制御部307は、タグのビット[33:16]から、VL3リプレース対象データが記憶されているローカルメモリの物理アドレスを取得する。そして、VL3制御部307は、メモリ制御部308を介して、VL3リプレース対象データをローカルメモリから読み出す。
ステップS1108において、VL3制御部307は、VL3リプレース対象データのタグから特定されるHomeノードに対して、ステップS1107で読み出したVL3リプレース対象データを記憶するようにストア要求を発行する。同時に、VL3制御部307は、VL3リプレース対象データを特定されたHomeノードに送信する。
Homeノードでは、LSI間通信制御部を介してVL3リプレース対象データを受信すると、HomeノードのVL3制御部が、VL3リプレース対象データをHomeノードのローカルメモリの所定のアドレスに記憶する。
以上のステップS1107およびS1108の処理によって、VL3制御部307は、VL3リプレース対象データを、仮想的に設けた3次キャッシュ、すなわち、仮想キャッシュ空間に割り当てられたローカルメモリから追い出して領域を確保する。
ステップS1109において、VL3制御部307は、ステップS1101のL2リプレース処理によってL2キャッシュ304から追い出されたL2リプレース対象データを、仮想キャッシュ空間として割り当てられているローカルメモリの所定のアドレスに記憶する。
なお、ステップS1105でVL3リプレース処理が実行されている場合、VL3制御部307は、L2リプレース対象データを、ステップS1107およびS1108の処理により確保した領域に記憶する。
一方、ステップS1110において、VL3制御部307は、L2リプレース対象データをローカルメモリの所定のアドレスに記憶する。
ステップS1109またはS1110の処理が完了すると、VL3制御部307は、L2リプレース対象データのタグのビット[15:07]を参照する。そして、VL3制御部307は、L2リプレース対象データの登録状態を判別する。
L2リプレース対象データの登録状態がMである場合、VL3制御部307は、L2リプレース対象データを、仮想キャッシュ空間として割り当てられているローカルメモリの所定のアドレスから読み出す。そして、VL3制御部307は、読み出したL2リプレース対象データのストア要求をHomeノードに発行する。
また、L2リプレース対象データの登録状態がEまたはMの場合、VL3制御部307は、Homeノードに対して、リプレース処理の完了を通知する。キャッシュの一貫性を保持するためである。
VL3制御部307は、ステップS1111に移行して処理を終了する(ステップS1111)。
なお、ステップS1105において、VL3タグに登録するデータをクリーンなデータ、すなわち、登録状態がEまたはSのデータのみをVL3タグに登録してもよい。これにより、VL3リプレース処理の簡単化を図ることができる。ただし、リプレース対象データがダーティな場合、必ずステップS1107およびS1108の処理を実行する必要がある。
図12は、命令実行部301からリード要求があった場合のキャッシュ制御を説明するフローチャートである。
例えば、L1制御部303が、L2制御部305に対して、命令実行部301からリード要求があったデータのリード要求を発行すると、以下の処理が開始する(ステップS1200)。
ステップS1201において、L2制御部305は、L2キャッシュ304に記憶されているデータの中から、L1制御部303が要求するリード対象データを検索する。
例えば、L2制御部305は、L2キャッシュ304内のL2タグに登録されているタグの中から、リード対象データのタグと一致するタグを検索する。
リード対象データのタグと一致するタグが検出された場合、L2制御部305は、「キャッシュヒット」と判断する(S1202 NO)。この場合、L2制御部305は処理をステップS1207に移行する。また、リード対象データのタグと一致するタグが検出されない場合、L2制御部305は、「キャッシュミス」と判断する(S1202 YES)。この場合、L2制御部305は処理をステップS1203に移行する。
以下、L2キャッシュ304においてキャッシュミスが検出されることを、「L2キャッシュミス」という。また、L2キャッシュ304においてキャッシュヒットが検出されることを、「L2キャッシュヒット」という。
ステップS1203において、VL3制御部307は、VL3タグに登録されているタグの中から、リード対象データのタグと一致するタグを検索する。
リード対象データのタグと一致するタグが検出された場合、VL3制御部307は、「キャッシュヒット」と判断する(S1204 YES)。この場合、VL3制御部307は処理をステップS1205に移行する。また、リード対象データのタグと一致するタグが検出されない場合、VL3制御部307は、「キャッシュミス」と判断する(S1204 NO)。この場合、VL3制御部307は処理をステップS1206に移行する。
以下、VL3キャッシュにおいてキャッシュミスが検出されることを、「VL3キャッシュミス」という。また、VL3キャッシュにおいてキャッシュヒットが検出されることを、「VL3キャッシュヒット」という。
ステップS1205において、VL3制御部307は、リード対象データを、仮想キャッシュ空間として割り当てられているローカルメモリの所定のアドレスから読み出す。具体的な処理は、ステップS1107の処理と同様である。
また、ステップS1206において、VL3制御部307は、Homeノードにリード要求を発行する。
例えば、VL3制御部307は、リード対象データのタグからHomeノードを特定する。また、VL3制御部307は、リード対象データのタグからリード対象データが記憶されている物理アドレスを取得する。そして、VL3制御部307は、取得した物理アドレスに記憶されているリード対象データを特定したHomeノードに要求する。
Homeノードは、要求元ノードからリード要求を受けると、リード対象データをHomeノードのローカルメモリの指定されたアドレスから読み出す。そして、Homeノードは、読み出したデータを要求元ノードに通知する。
一方、ステップS1207において、L2制御部305は、リード対象データをL2キャッシュ304から読み出す。
ステップS1208において、ステップS1205またはS1206の処理によってリード対象データを取得した場合、VL3制御部307が取得したデータを要求元に送信する。
要求元が命令実行部301の場合、VL3制御部307は、L2制御部305にリード対象データを送信する。同時に、VL3制御部307は、VL3タグに登録されているリード対象データのタグを無効に設定する。L2キャッシュ304と排他関係を維持するためである。L2制御部305は、リード対象データを命令実行部301に送信する。
また、要求元が他ノードの場合、VL3制御部307は、要求元の他ノードにリード対象データを送信する。
以上の処理が完了すると、VL3制御部307は、ステップS1209に移行して図12の処理を終了する。
ステップS1208において、ステップS1207の処理によってリード対象データを取得した場合、L2制御部305がリード対象データを要求元に送信する。
要求元が命令実行部301の場合、L2制御部305は、リード対象データを命令実行部301に送信する。また、要求元が他ノードの場合、L2制御部305は、要求元の他ノードにリード対象データを送信する。
そして、VL3制御部307は、ステップS1209に移行して処理を終了する。
図13は、Homeノードから無効化要求を受けた場合のキャッシュ制御を説明するフローチャートである。
例えば、Homeノードにおいて、ローカルメモリに記憶されているデータ対して、ストア系アクセスが行われてデータが更新された場合を考える。
この場合、Homeノードは、Homeノード以外のノードであってストア系アクセスによって更新される前のデータを保持するノードに対して、データの無効化を要求する(ステップS1300)。このデータ無効化要求により、図13の処理が開始する。
以下、Homeノードからデータの無効化要求を受けたノードの処理について説明する。なお、無効化要求の対象となるデータを「無効化対象データ」という。
ステップS1301において、無効化要求を受けたノードは、Homeノードからデータの無効化要求を受信する。
ステップS1302において、L2制御部305は、L2キャッシュ304に記憶されているデータの中から、無効化対象データを検索する。例えば、L2制御部305は、L2キャッシュ304内のL2タグに登録されているタグの中から、無効化対象データのタグと一致するタグを検索する。
タグ検索の結果、ステップS1303において、L2制御部305は、L2キャッシュミスを検出すると、処理をステップS1304に移行する(ステップS1303 YES)。また、L2制御部305は、タグ検索の結果からL2キャッシュヒットを検出すると、処理をステップS1307に移行する(ステップS1303 NO)。
ステップS1304において、VL3制御部307は、VL3タグに登録されているタグの中から、無効化対象データのタグと一致するタグを検索する。
タグ検索の結果、ステップS1305において、VL3制御部307は、VL3キャッシュヒットを検出すると、処理をステップS1306に移行する(ステップS1305 YES)。また、VL3制御部307は、タグ検索の結果からVL3キャッシュミスを検出すると、処理をステップS1308に移行する(ステップS1305 NO)。
ステップS1306において、VL3制御部307は、VL3タグに登録されているタグのうち、無効化対象アドレスと一致するタグを無効に設定する。
タグを無効に設定する場合、例えば、図6に示したSVSL[7:0]の状態Iを設定する領域にデータSTS[1:0]=00(2進数)を設定すればよい。
一方、ステップS1307において、L2制御部305は、L2タグに登録されているタグのうち、無効化対象アドレスと一致するタグを無効に設定する。無効化の設定処理は、ステップS1306と同様である。
ステップS1308において、ステップS1306またはS1307の処理により、無効化対象データの無効化の設定が完了すると、L2制御部305またはVL3制御部307は、Homeノードにデータの無効化が完了した旨を通知する完了応答を発行する。そして、L2制御部305またはVL3制御部307は、ステップS1309に移行して処理を終了する。
図14は、任意のノードがHomeノードからムーブアウト要求を受けた場合のキャッシュ制御を説明するフローチャートである。
例えば、ムーブアウト要求を受けたノードが、リモートメモリ上のデータを排他型で取得する。その後、Homeノードにおいて、任意の装置から本ノードが排他型で取得したデータについてリード要求等のアクセスがあると、Homeノードは、本ノードに対してムーブアウト要求を送信する(ステップS1400)。キャッシュの一貫性を保持するためである。
なお、データが排他型とは、データが図5に示した状態Eまたは状態Mに保持されるデータのことをいう。
ステップS1401において、本ノードは、Homeノードからムーブアウト要求を受信する。
以下、ムーブアウト処理が要求されたデータを「ムーブアウト対象データ」という。
ステップS1402において、L2制御部305は、L2キャッシュ304に記憶されているデータの中から、ムーブアウト対象データを検索する。例えば、L2制御部305は、L2タグに登録されているタグの中から、ムーブアウト対象データのタグと一致するタグを検索する。
ステップS1403において、L2制御部305は、L2キャッシュミスを検出すると、処理をステップS1404に移行する(ステップS1403 YES)。また、L2制御部305は、L2キャッシュヒットを検出すると、処理をステップS1407に移行する(ステップS1403 NO)。
ステップS1404において、VL3制御部307は、VL3タグに登録されているタグの中から、ムーブアウト対象データのタグと一致するタグを検索する。
ステップS1405において、VL3制御部307は、VL3キャッシュヒットを検出すると、処理をステップS1406に移行する(ステップS1405 YES)。また、VL3制御部307は、VL3キャッシュミスを検出すると、処理をステップS1409に移行する(ステップS1405 NO)。
ステップS1406において、VL3制御部307は、ムーブアウト対象データを、仮想キャッシュ空間として割り当てられているローカルメモリの所定のアドレスから読み出す。具体的な処理は、ステップS1107の処理と同様である。
一方、ステップS1407において、L2制御部305は、ムーブアウト対象データを、L2キャッシュ304から読み出す。
ステップS1408において、ステップS1406またはS1407の処理によってムーブアウト対象データを取得すると、L2制御部305またはVL3制御部307は、Homeノードに対してデータ応答を発行する。
同時に、L2制御部305またはVL3制御部307は、ムーブアウト対象データをHomeノードに送信する。そして、L2制御部305またはVL3制御部307は、ステップS1410に移行して処理を終了する。
一方、ステップS1409において、VL3制御部307は、エラーが発生したと判断する。そして、VL3制御部307は、Homeノードに対してエラーが発生した旨のエラー報告を通知する。
Homeノードへのエラー報告が完了すると、VL3制御部307は、処理をステップS1410に移行する。そして、VL3制御部307は、処理を終了する。
以上に説明したように、VL3制御部307は、VL3キャッシュ306に設けたVL3タグと同一ノード内に備わるローカルメモリMEM0とを用いて、仮想的に3次キャッシュを実現する。
そして、VL3制御部307は、リモートメモリから取得したデータがリプレース処理によりL2キャッシュ304から追い出されると、その追い出されたデータを仮想的に実現した3次キャッシュに一時的に保持する。
したがって、L2キャッシュ304から追い出したデータが再度必要となった場合、L2制御部305は、同一ノード内に仮想的に設けられた3次キャッシュから取得することが可能となる。
その結果、L2制御部305は、改めてリモートメモリからデータを取得することを要しないので、リモートメモリに対するアクセスで生じるレイテンシを削減することが可能となる。すなわち、リモートメモリに対するアクセスで生じるレイテンシを改善することが可能となる。
また、本実施例では、仮想的に3次キャッシュを実現するためには、VL3タグを記憶するVL3キャッシュ306のみを実装すればよい。実際のデータは、仮想キャッシュ空間に割り当てられたローカルメモリに記憶されるからである。このため、従来のキャッシュに比べて巨大な容量を確保することが可能となる。
また、本実施例では、Homeノードからデータの無効化要求を受けると、VL3制御部307は、VL3タグに登録されている無効化対象データのタグを無効に設定する。これにより、他ノードのキャッシュとのキャッシュの一貫性を保持することが可能となる。
同様に、本実施例では、Homeノードからムーブアウト要求を受けると、VL3制御部307は、VL3タグを登録されているムーブアウト対象データのタグを無効に設定する。そして、VL3制御部307は、ムーブアウト対象データを仮想キャッシュ空間に割り当てられたローカルメモリから読み出してHomeノードに出力する。これにより、他ノードのキャッシュとのキャッシュの一貫性を保持することが可能となる。
以上から、本実施例に係るキャッシュ制御装装置を、ccNUMA方式によりキャッシュコヒーレンス制御を行う情報処理装置100に備えることにより、ローカルメモリへのアクセスと、リモートメモリへのアクセスと、のいずれについても低レイテンシを実現することが可能となる。
上述したキャッシュ制御装置によると、第1のキャッシュ制御部は、新たな情報を記憶する領域を確保するために第1のキャッシュ情報を出力して第1のキャッシュから追い出しても、同一ノードである第2のノードに含まれる第2のメモリから第1のキャッシュ情報を取得できる。
すなわち、第1のキャッシュ制御部は、第1のキャッシュ情報を第1のキャッシュから追い出してしまっても、他ノードである第1のノードに含まれる第1のメモリから改めて取得することを要しない。
したがって、本キャッシュ制御装置は、他ノードに含まれる第1のメモリから改めて第1のキャッシュ情報を取得することが原因で生じるレイテンシを削減することが可能となる。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記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に記載の情報処理装置。
100 情報処理装置
301 命令実行部
302 L1キャッシュ
303 L1制御部
304 L2キャッシュ
305 L2制御部
306 VL3キャッシュ
307 VL3制御部307

Claims (9)

  1. 他の演算処理装置と前記他の演算処理装置に接続するリモートメモリとを含むリモートノードに接続するローカルノードに含まれ、前記他の演算処理装置と前記ローカルノードに含まれるローカルメモリとに接続する演算処理装置において、
    新規データをストアするストア要求を出力する命令実行部と、
    キャッシュデータを保持するデータキャッシュと、
    前記キャッシュデータのアドレス情報と、前記キャッシュデータの登録状態を示す登録状態情報とを登録しうる第1のタグキャッシュと、
    前記ストア要求に基づき、前記新規データを前記データキャッシュに保持する場合、前記新規データを保持する領域が前記データキャッシュに無いとき、前記データキャッシュに保持されたリプレース対象のキャッシュデータであるリプレース対象データを前記データキャッシュから追い出し、さらに、前記リプレース対象データを記憶するノードが前記ローカルノードでない場合、前記リプレース対象データが前記リモートメモリに記憶されていると判断する第1のキャッシュ制御部と、
    前記リプレース対象データのアドレス情報と、前記リプレース対象データの登録状態を示す登録状態情報とを登録しうる第2のタグキャッシュと、
    前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断した場合、前記リプレース対象データのアドレス情報と登録状態情報とを前記第2のタグキャッシュに登録するとともに、前記リプレース対象データを前記ローカルメモリに記憶する第2のキャッシュ制御部を有することを特徴とする演算処理装置。
  2. 前記第1のキャッシュ制御部はさらに、
    前記タグキャッシュに登録された前記リプレース対象データのアドレス情報と登録状態情報とを前記タグキャッシュから追い出すとともに、前記新規データのアドレス情報と登録状態情報とを前記タグキャッシュメモリに登録するリプレース処理を実行することを特徴とする請求項1記載の演算処理装置。
  3. 前記第1のキャッシュ制御部は、
    前記リプレース処理を実行した場合、追い出した前記リプレース対象データのアドレス情報と登録状態情報とに基づき、前記リプレース対象データを記憶するノードが前記ローカルノードであるかを判断することを特徴とする請求項2記載の演算処理装置。
  4. 前記第1のキャッシュ制御部は、
    前記リプレース処理を実行する場合、前記第1のタグキャッシュに登録された登録状態情報をそのまま登録させることを特徴とする請求項2又は3記載の演算処理装置。
  5. 前記新規データと前記リプレース対象データとは、排他関係にあることを特徴とする請求項1〜4のいずれか1項に記載の演算処理装置。
  6. 前記第2のキャッシュ制御部はさらに、
    前記ローカルメモリに記憶させたリプレース対象データを無効にする無効化要求を、前記リモートノードから受けた場合、前記第2のタグキャッシュに登録した前記リプレース対象データの登録状態情報を無効状態に変更することを特徴とする請求項1〜5のいずれか1項に記載の演算処理装置。
  7. 前記命令実行部がリード要求を出力した場合、前記第1のタグキャッシュに登録されたアドレス情報に基づき、前記第1のキャッシュ制御部が、前記キャッシュメモリから前記リード要求の対象データを検索した結果、前記リード要求の対象データが検索されないとき、前記第2のタグキャッシュに登録されたアドレス情報の検索結果に基づき、前記第2のキャッシュ制御部が、前記リード要求の対象データを前記ローカルメモリから読み出すことを特徴とする請求項1〜6のいずれか1項に記載の演算処理装置。
  8. 他の演算処理装置と、前記他の演算処理装置に接続するリモートメモリとを含むリモートノードと、前記他の演算処理装置に接続する演算処理装置と、前記演算処理装置に接続するローカルメモリとを含むローカルノードとを有する情報処理装置において、
    前記演算処理装置は、
    新規データをストアするストア要求を出力する命令実行部と、
    キャッシュデータを保持するデータキャッシュと、
    前記キャッシュデータのアドレス情報と、前記キャッシュデータの登録状態を示す登録状態情報とを登録しうる第1のタグキャッシュと、
    前記ストア要求に基づき、前記新規データを前記データキャッシュに保持する場合、前記新規データを保持する領域が前記データキャッシュに無いとき、前記データキャッシュに保持されたリプレース対象のキャッシュデータであるリプレース対象データを前記データキャッシュから追い出し、さらに、前記リプレース対象データを記憶するノードが前記ローカルノードでない場合、前記リプレース対象データが前記リモートメモリに記憶されていると判断する第1のキャッシュ制御部と、
    前記リプレース対象データのアドレス情報と、前記リプレース対象データの登録状態を示す登録状態情報とを登録しうる第2のタグキャッシュと、
    前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断した場合、前記リプレース対象データのアドレス情報と登録状態情報とを前記第2のタグキャッシュに登録するとともに、前記リプレース対象データを前記ローカルメモリに記憶する第2のキャッシュ制御部を有することを特徴とする情報処理装置。
  9. 他の演算処理装置と前記他の演算処理装置に接続するリモートメモリとを含むリモートノードに接続するローカルノードに含まれ、前記他の演算処理装置と前記ローカルノードに含まれるローカルメモリとに接続するとともに、キャッシュデータを保持するデータキャッシュと、前記キャッシュデータのアドレス情報と前記キャッシュデータの登録状態を示す登録状態情報とを登録しうる第1のタグキャッシュと、前記データキャッシュに保持されたリプレース対象のキャッシュデータであるリプレース対象データのアドレス情報と前記リプレース対象データの登録状態を示す登録状態情報とを登録しうる第2のタグキャッシュとを有する演算処理装置の制御方法において、
    前記演算処理装置が有する命令実行部が、新規データをストアするストア要求を出力し、
    前記ストア要求に基づき、前記新規データを前記データキャッシュに保持する場合、前記新規データを保持する領域が前記データキャッシュに無いとき、前記演算処理装置が有する第1のキャッシュ制御部が、前記リプレース対象データを前記データキャッシュから追い出し、
    さらに、前記リプレース対象データを記憶するノードが前記ローカルノードでない場合、前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断し、
    前記第1のキャッシュ制御部が、前記リプレース対象データが前記リモートメモリに記憶されていると判断した場合、前記演算処理装置が有する第2のキャッシュ制御部が、前記リプレース対象データのアドレス情報と登録状態情報とを前記第2のタグキャッシュに登録するとともに、前記リプレース対象データを前記ローカルメモリに記憶することを特徴とする演算処理装置の制御方法。
JP2009044652A 2009-02-26 2009-02-26 演算処理装置、情報処理装置および演算処理装置の制御方法 Expired - Fee Related JP5338375B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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