JP2006293550A - キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法 - Google Patents

キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法 Download PDF

Info

Publication number
JP2006293550A
JP2006293550A JP2005111242A JP2005111242A JP2006293550A JP 2006293550 A JP2006293550 A JP 2006293550A JP 2005111242 A JP2005111242 A JP 2005111242A JP 2005111242 A JP2005111242 A JP 2005111242A JP 2006293550 A JP2006293550 A JP 2006293550A
Authority
JP
Japan
Prior art keywords
cache
node
coherence
shared
directory
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
JP2005111242A
Other languages
English (en)
Other versions
JP4362454B2 (ja
Inventor
Mariko Sakamoto
真理子 坂本
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 JP2005111242A priority Critical patent/JP4362454B2/ja
Priority to US11/214,850 priority patent/US20060230237A1/en
Publication of JP2006293550A publication Critical patent/JP2006293550A/ja
Application granted granted Critical
Publication of JP4362454B2 publication Critical patent/JP4362454B2/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
    • G06F12/082Associative directories
    • 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
    • G06F12/0822Copy directories

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

【課題】分散共有メモリ型並列計算機システムのキャッシュコヒーレンス制御を高速化すること。
【解決手段】各ノードのコヒーレンスコントローラ100が全てのノードの全ての共有キャッシュに1対1に対応するディレクトリ110を有し、また、必要に応じて新規要求の要求パケットにディレクトリ特定情報パケットを含めるよう構成する。さらに、SMP10はコヒーレンスコントローラ100を介することなく他のSMP10と通信することができるように構成する。
【選択図】 図1

Description

この発明は、複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法に関し、特に、コヒーレンス制御を高速化し、分散共有メモリ型並列計算機システムの性能を向上することができるキャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法に関するものである。ここで、コヒーレンス制御とは、共有キャッシュにあるメモリデータのコピーが、処理の結果に影響を与えないように更新・参照されるように、システム内の全共有キャッシュ(複数)間で、更新・参照の順序を制御する処理である。
小規模の分散共有メモリ型並列計算機システムでは、通常、スヌープ方式(snoopy coherence protocol)で、キャッシュコヒーレンス制御を行う。この制御方式は、システムの規模が小さいときには、有効に機能するが、大きな規模のシステムでは、バスがボトルネックとなることが知られている。規模の大きなシステムでは、ディレクトリ方式(directory-based coherence protocol)でキャッシュのコヒーレンス制御が行われる。
ディレクトリ方式では、ディレクトリを、メインメモリをベースに作る方式が一般的によく使われる。図14は、メインメモリベースのディレクトリを示す図である。同図に示すように、メインメモリベースのディレクトリの場合、キャッシュのブロックのサイズを単位に、メモリデータの状態管理を行うので、メモリディレクトリ320が備えるエントリの総数は、メインメモリ310の総容量をキャッシュブロックのサイズで分割した数となり、膨大である。
このため、全情報のサブセットでディレクトリを構成する方式や、ディレクトリを階層化する方式が開発され利用されている。しかし、かかる方式では、本来不要な制御が発生したり、ディレクトリアクセスに時間が掛かったりというデメリットがある。
メモリベースの一般的な方式に対し、メインメモリではなく、キャッシュをベースに使ってディレクトリを構成するスパースディレクトリ(Sparse Directory)方式がある(例えば、非特許文献1参照。)。
図15は、スパースディレクトリを示す図である。同図に示すように、スパースディレクトリ330では、キャッシュのサイズはメインメモリ310の総容量に比較して小さいので、ディレクトリを小さくすることができる。しかし、ノードごとにプロセッサとキャッシュがあり、2つ以上のノードのあるシステムで、システム内全キャッシュのエントリ総数より小さいエントリ数のディレクトリ、(例えば、ディレクトリのエントリ数が、キャッシュ(1つ)のエントリ数と等しい)でコヒーレンスを管理する場合には、ディレクトリのエントリに競合が起こり、必要な情報をすべて保持できない。
そこで、スパースディレクトリのアイディアを発展させたものとして、CCRディレクトリ(Complete and Concise Remote Directory)がある(例えば、特許文献1参照。)。CCRディレクトリは、各ノードが、全ノード数マイナス1のディレクトリを持つ方式である。ノードごとに共有キャッシュが一つある構成のシステムに用いて、各々のディレクトリが自分以外のノードに存在する共有キャッシュと1対1に対応する構成を作る。
図16は、CCRディレクトリを示す図である。また、図17は、CCRディレクトリを備えた分散共有メモリ型並列計算機システムを示す図である。図16は、8ノード構成の分散共有メモリ型並列計算機システム(ノードAからノードHがある。)のCCRディレクトリのうち、ノードAのディレクトリを示している。ノードAには、七つのディレクトリがあり、それらはノードBからノードHにある共有キャッシュに対応する。CCRディレクトリでは、スパースディレクトリで問題となるエントリの競合をなくすことができる。
米国特許第6338123号明細書 A. Gupta and W.-D. Weber. "Reducing Memory and Traffic Requirements for Scalable Directory-Based Cache Coherence Schemes," In Proceedings of the 1990 ICPP, pages 312-322, Aug. 1990.
しかしながら、CCRディレクトリには、ノード内に複数の共有キャッシュがある場合に、複数の共有キャッシュを一つのディレクトリで管理するので、ディレクトリのエントリに競合が起こり、必要な情報をすべて保持できないという問題がある。したがって、ノード内に複数の共有キャッシュがある場合には、ディレクトリの有効なエントリの追い出しが必要であり、コヒーレンス制御の性能が低下するという問題がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、コヒーレンス制御を高速化し、分散共有メモリ型並列計算機システムの性能を向上することができるキャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明に係るキャッシュコヒーレンス管理装置は、複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理装置であって、各ノードの各共有キャッシュに1対1に対応するディレクトリを共有キャッシュの数分記憶するディレクトリ記憶手段と、前記ディレクトリ記憶手段に記憶された複数のディレクトリを用いてキャッシュコヒーレンスの制御を行うコヒーレンス制御手段と、を備えたことを特徴とする。
この請求項1の発明によれば、各ノードの各共有キャッシュに1対1に対応するディレクトリをシステム内に存在する共有キャッシュの数分記憶し、記憶した複数のディレクトリを用いてキャッシュコヒーレンスの制御を行うよう構成したので、ディレクトリの検索を高速化し、コヒーレンス制御を高速化することができる。
また、請求項2の発明に係るキャッシュコヒーレンス管理装置は、請求項1の発明において、前記コヒーレンス制御手段は、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに前記複数のディレクトリのうちの該メモリデータに対応するディレクトリとその中で該当データブロックの情報をもつ箇所を特定する情報を含めることを特徴とする。
この請求項2の発明によれば、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに複数のディレクトリのうちのメモリデータに対応するディレクトリと該当データブロックの情報をもつ箇所を特定する情報を含めるよう構成したので、1つの要求の開始から終了までにおこなわれるディレクトリの検索に掛かるトータルの時間を短縮し、コヒーレンス制御を高速化することができる。
また、請求項3の発明に係るキャッシュコヒーレンス管理装置は、請求項1または2の発明において、前記ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して該複数の共有キャッシュと接続されることを特徴とする。
この請求項3の発明によれば、ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して複数の共有キャッシュと接続されるよう構成したので、ノード内の共有キャッシュ間の通信を高速化することができる。
また、請求項4の発明に係るキャッシュコヒーレンス管理装置は、請求項3の発明において、前記コヒーレンス制御手段は、共有キャッシュのミスヒットによって要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、該メモリデータの先読みを他の共有キャッシュに指示し、該メモリデータを記憶するメモリを備えたノードを管理するキャッシュコヒーレンス管理装置に対して自ノード内の他の共有キャッシュが先読みしたメモリデータの利用可否の問い合わせを行って利用可の応答を受けると、先読みした共有キャッシュに対して先読みしたメモリデータをミスヒットが発生した共有キャッシュにノード内共有キャッシュ接続手段を介して転送することを指示することを特徴とする。
この請求項4の発明によれば、共有キャッシュのミスヒットによって要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、メモリデータの先読みを他の共有キャッシュに指示し、メモリデータを記憶するメモリを備えたノードを管理するキャッシュコヒーレンス管理装置に対して自ノード内の他の共有キャッシュが先読みしたメモリデータの利用可否の問い合わせを行って利用可の応答を受けると、先読みした共有キャッシュに対して先読みしたメモリデータをミスヒットが発生した共有キャッシュにノード内共有キャッシュ接続手段を介して転送するよう構成したので、要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、メモリデータを高速に要求元の共有キャッシュに転送することができる。
また、請求項5の発明に係るキャッシュコヒーレンス管理装置は、請求項1〜4の発明において、前記ディレクトリ記憶手段が記憶するディレクトリのエントリのキャッシュラインの状態を示すキャッシュ状態に該キャッシュラインが更新中であることを示す更新中状態を有し、前記コヒーレンス制御手段は、前記キャッシュ状態を用いてキャッシュラインのロック制御を行うことを特徴とする。
この請求項5の発明によれば、ディレクトリのエントリのキャッシュラインの状態を示すキャッシュ状態にキャッシュラインが更新中であることを示す更新中状態を有し、キャッシュ状態を用いてキャッシュラインのロック制御を行うよう構成したので、ロック制御のためにキャッシュラインの更新状態を管理するテーブルを別に持つことを不要とすることができる。
また、請求項6の発明に係るキャッシュコヒーレンス管理装置は、請求項5の発明において、他のキャッシュコヒーレンス管理装置からメモリデータを要求された場合に、該メモリデータのノード間ネットワークへの送出を完了すると、メモリデータを要求したキャッシュコヒーレンス装置からのメモリデータ受信通知を待たずに自装置のディレクトリの該メモリデータに対応するエントリのキャッシュ状態を更新中状態から他の状態に変更することを特徴とする。
この請求項6の発明によれば、他のキャッシュコヒーレンス管理装置からメモリデータを要求された場合に、メモリデータをキャッシュから転送する際に転送元のキャッシュの該当データブロックを保持するキャッシュラインの状態を変更しないときは、メモリデータを要求したキャッシュコヒーレンス装置からのメモリデータ受信通知を待たずに自装置のディレクトリのメモリデータに対応するエントリのキャッシュ状態を更新中状態から、キャッシュミスヒットを起こしたキャッシュがメモリデータを受け取ってから移行する状態に、に予め設定するよう構成したので、メモリデータ受信通知を不要とし、コヒーレンス制御を高速化することができる。
また、請求項7の発明に係るキャッシュコヒーレンス管理装置は、請求項1〜6の発明において、前記コヒーレンス制御手段は、前記ディレクトリのエントリを決めるメモリアドレスでインターリーブされた要求をそれぞれ扱う複数のパイプラインによってキャッシュコヒーレンスの制御を行うことを特徴とする。
この請求項7の発明によれば、ディレクトリのエントリを決めるメモリアドレスでインターリーブされた要求をそれぞれ扱う複数のパイプラインによってキャッシュコヒーレンスの制御を行うよう構成したので、ディレクトリの検索を並列化(高速化)し、コヒーレンス制御を高速化することができる。
また、請求項8の発明に係るキャッシュコヒーレンス管理方法は、複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理方法であって、共有キャッシュに関する要求を受信し、該受信した要求が共有キャッシュへのストア要求であるか否かを判定する要求判定工程と、前記要求判定工程によりストア要求であると判定された場合に、各ノードの各共有キャッシュに1対1に対応するディレクトリを共有キャッシュの数分記憶するディレクトリ記憶装置を用いて該ストア要求に対するキャッシュコヒーレンスの制御を行うコヒーレンス制御工程と、を含んだことを特徴とする。
この請求項8の発明によれば、共有キャッシュに関する要求を受信し、受信した要求が共有キャッシュへのストア要求であるか否かを判定し、ストア要求であると判定した場合に、各ノードの各共有キャッシュに1対1に対応し必要な情報をすべて含むディレクトリを共有キャッシュの数分記憶するディレクトリ記憶装置を用いてストア要求に対するキャッシュコヒーレンスの制御を行うよう構成したので、ディレクトリの検索を高速化し、コヒーレンス制御を高速化することができる。
また、請求項9の発明に係るキャッシュコヒーレンス管理方法は、請求項8の発明において、前記コヒーレンス制御工程は、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに、前記ディレクトリ記憶装置に記憶する複数のディレクトリのうちの該メモリデータに対応するディレクトリとディレクトリ内の該当データブロックの情報の記録箇所を特定する情報を含めることを特徴とする。
この請求項9の発明によれば、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに、ディレクトリ記憶装置に記憶する複数のディレクトリのうちのメモリデータに対応するディレクトリとディレクトリ内の該当データブロックの情報の記録箇所を特定する情報を含めるよう構成したので、ディレクトリの検索を高速化し、コヒーレンス制御を高速化することができる。
また、請求項10の発明に係るキャッシュコヒーレンス管理方法は、請求項8または9の発明において、前記ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して前記ストア要求を受信するストア要求受信工程をさらに含んだことを特徴とする。
この請求項10の発明によれば、ノード内の複数の共有キャッシュをノード内共有キャッシュ接続手段で接続するよう構成したので、ノード内の共有キャッシュ間の通信を高速化することができる。
請求項1、2、7、8および9の発明によれば、コヒーレンス制御を高速化するので、分散共有メモリ型並列計算機システムの性能を向上することができるという効果を奏する。
また、請求項3および10の発明によれば、ノード内の共有キャッシュ間の通信を高速化するので、分散共有メモリ型並列計算機システムの性能を向上することができるという効果を奏する。
また、請求項4の発明によれば、要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、メモリデータを高速に要求元の共有キャッシュに転送するので、分散共有メモリ型並列計算機システムの性能を向上することができるという効果を奏する。
また、請求項5の発明によれば、ロック制御のためにキャッシュラインの更新状態を管理するテーブルを別に持つことを不要とするので、そのテーブルに必要なメモリを不要とすることができるという効果を奏する。さらにそのテーブルを検索するコストを不要とする効果を奏する。
また、請求項6の発明によれば、メモリデータ受信通知を不要とし、コヒーレンス制御を高速化するので、分散共有メモリ型並列計算機システムの性能を向上することができるという効果を奏する。
以下に添付図面を参照して、この発明に係るキャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法の好適な実施例を詳細に説明する。
まず、本実施例に係る分散共有メモリ型並列計算機システムの構成について説明する。図1は、本実施例に係る分散共有メモリ型並列計算機システムの構成を示す機能ブロック図である。
同図に示すように、この分散共有メモリ型並列計算機システムは、ノードA、ノードB、ノードCおよびノードDがノード間ネットワーク30に接続されて構成される。各ノードは、4台のSMP(shared multiprocessor)10と、SMP10を接続するノード内ネットワーク20と、ノード内ネットワーク20を介してSMP10に接続され、ノード単位でキャッシュのコヒーレンスを管理するコヒーレンスコントローラ100とを有する。なお、ノード内ネットワーク20の代わりにバスを用いてSMP10およびコヒーレンスコントローラ100を接続することもできる。
各SMP10は、一つ以上のプロセッサを有するCPU部11と、共有キャッシュ12と、インターリーブされたメモリ13とを有する。ここで、共有キャッシュ12は、階層化されたキャッシュの最下層、すなわちメモリ13に最も近いキャッシュであり、キャッシュコヒーレンスの対象となるキャッシュである。
なお、ここでは説明の便宜上、各ノードは4台のSMP10から構成され、分散共有メモリ型並列計算機システムは4台のノードから構成される場合について説明するが、各ノードをより多くのSMP10から構成し、分散共有メモリ型並列計算機システムをより多くのノードから構成することもできる。
コヒーレンスコントローラ100は、各ノードのそれぞれの共有キャッシュ12に1対1に対応するディレクトリ110を有する。すなわち、このコヒーレンスコントローラ100は、4(ノード数)×4(共有キャッシュ数)=16個のディレクトリ110を有する。
そして、これらのディレクトリ110には、自ノードにあるメモリ13のコピーであるメモリデータと、他ノードのメモリ13のコピーであるメモリデータとについての情報が含まれる。なお、他ノードの共有キャッシュ12に対応する各ディレクトリ110には、自ノードのメモリのメモリデータのコピーに関する情報だけが含まれる。すなわち、対応する共有キャッシュ12のタグテーブルのサブセットとなる。
このように、本実施例に係る分散共有メモリ型並列計算機システムでは、各ノードのコヒーレンスコントローラ100が全てのノードの全ての共有キャッシュ12に1対1に対応するディレクトリ110を有することによって、ディレクトリ110のエントリの競合の発生を防ぎ、コヒーレンス制御を容易にするとともに高速化することができる。
このようなディレクトリの構成は、最新のテクノロジにより、微細化の技術が進み、ノードのディレクトリ全体を、高速RAMに搭載することが可能になっているので、実現可能であり、今後はさらに実現が容易になる。
また、本実施例に係る分散共有メモリ型並列計算機システムでは、SMP10をノード内ネットワーク20で接続することによって、SMP10はコヒーレンスコントローラ100を介することなく同じノードに属する他のSMP10と通信することができ、ノード内のSMP10間の通信を高速化することができる。
なお、本実施例では、あるメモリデータに対し、そのメモリアドレスで特定されるメモリデータを、ノード内のメモリ13に含むノードをホームノードと呼び、共有キャッシュ12のヒット/ミスヒットにより、ノード間に何らかの要求を出した要求元のノードをローカルノードと呼び、ホームノードでもローカルノードでもなく、要求されたメモリデータのコピーをキャッシュに持つ第3のノード(群)をリモートノードと呼ぶこととする。
次に、本実施例に係るコヒーレンスコントローラ100の構成について説明する。図2は、本実施例に係るコヒーレンスコントローラ100の構成を示す機能ブロック図である。同図に示すように、このコヒーレンスコントローラ100は、16個のディレクトリ110と、ノード内ネットワークインタフェース120と、ノード間ネットワークインタフェース130と、入力要求バッファ140と、コヒーレンス制御部150a〜150dと、出力要求バッファ160と、データ転送制御部170とを有する。
ディレクトリ110は、各ノードの各共有キャッシュ12に対応してキャッシュの情報を記憶する記憶部である。図3は、ディレクトリ110の構成を示す図である。同図は、サイズが4メガバイト、ラインサイズが256バイト、サブラインサイズが64バイトの4ウェイ・セットアソシアティブの共有キャッシュ12に対応するディレクトリ110を示し、エントリ数は4K個である。
各エントリは、エントリの有効/無効を示すビット、キャッシュタグテーブルに格納されているタグと一致し、キャッシュに含まれるデータを特定するのに使うtag、サブラインごとのキャッシュの状態を示すsub0〜sub3から構成される。
ここで、エントリに含まれるキャッシュの状態を示す情報には、キャッシュの内容が無効であることを示すInvalid、キャッシュにあるデータコピーを他のキャッシュが同時に持ちうることを示すShare、キャッシュの内容が修正されており同じデータコピーを他のキャッシュが同時に持つことがない状態を示すModifyの他に、そのエントリが管理しているメモリアドレスにあるデータブロックについて更新中であることを示すUpdating(”更新中”)がある。
この”更新中”の状態は、複数の独立した処理があるエントリに同時にアクセスすることをロックするなどの制御のために従来はディレクトリ110以外のテーブルなどで管理されていた情報であり、この”更新中”の状態をディレクトリ110のキャッシュの状態に含めることによって、ディレクトリ110だけでロック制御などを行うことができる。
また、この”更新中”をディレクトリ110内のキャッシュの状態として新たに設けることによって、状態責任をホームノードだけで持つ、あるいは状態責任をローカルノードだけで持つ、という規則を緩め、ホームノードとローカルノードに特定の条件にしたがって状態更新の責任を付け替えることができ、コヒーレンス制御を高速化することができる。
図4は、ディレクトリ110内のキャッシュの状態として”更新中”を設けることによるコヒーレンス制御の高速化を説明するための説明図である。同図は、キャッシュミスによってローカルノードがキャッシュへのデータのストアをホームノードに要求した場合に、ホームノードが状態更新の責任を持つ従来の方式におけるシーケンスを示している。
同図に示すように、ローカルノードでキャッシュミスが発生すると、ローカルノードのコヒーレンスコントローラ(CC−A)は、ノード間ネットワークを介してホームノードのコヒーレンスコントローラ(CC−B)にデータを要求する。すると、コヒーレンスコントローラ(CC−B)は、要求されたデータに対応するディレクトリのエントリに対する他の操作をロックするために、該当メモリデータの状態を”更新中”に設定し、データの転送元を自コヒーレンスコントローラの全ディレクトリ情報を参照して決め、この例の場合はホームノードのキャッシュからデータを転送することを決め、データを転送元に指定されたキャッシュから読み出して、ノード間ネットワークを介してコヒーレンスコントローラ(CC−A)に送信する。ただし、従来の方式では、コヒーレンスコントローラ(CC−B)は、データ転送をした時点では、メモリデータのキャッシュへのコピーが完了するまで、更新中のステート(状態)を保持している。また、従来の方式では、ロック制御のための該当メモリの状態は、ディレクトリ内のキャッシュの状態とは別に管理する。
そして、ローカルノードのコヒーレンスコントローラ(CC−A)は、コヒーレンスコントローラ(CC−B)からのデータの受信を完了し、要求元のキャッシュへデータを書き込むと、ノード間ネットワークを経由してホームノードのコヒーレンスコントローラ(CC−B)にデータの受信完了を通知する。そして、ホームノードのコヒーレンスコントローラ(CC−B)は、受信完了通知を受け取ると、該当メモリデータの状態を”更新中”から”更新中でない”へ変更する。
これに対して、本実施例に係るコヒーレンスコントローラ100は、ディレクトリ110内のキャッシュの状態としてエントリが”更新中”であることを管理し、ノード間のデータ転送処理中は、ローカルノードでエントリの状態を管理する。ホームノードのコヒーレンスコントローラ(CC−B)は、データの要求を受け取ったときに、キャッシュミス元のキャッシュの該当データブロックを“更新中”に設定しても、コヒーレンスコントローラ(CC−A)へのデータの送信を完了した時点で、ディレクトリ110内のキャッシュの状態を”更新中”から”更新中でない”に変更することができる。その理由は、ローカルノードのディレクトリ110には、対応するキャッシュの状態が”更新中”に設定されているので、状態更新の責任をローカルノードに持たせることができるためである。
具体的には、ホームノードのコヒーレンスコントローラ(CC−B)は、ローカルノードがデータのストアを要求しているケースでは、その要求に関する一連の処理で、メモリ13の更新が発生するか、ローカルノードのキャッシュでラインの追い出しが行われるか、または、リモートノードの対応するディレクトリ110に状態の変更を伴うものがある場合には、ライトバックが終了するまで、ラインの追い出しが終了まで、または、リモートノードに必要な要求を出して処理確定通知がくるまで、ディレクトリ110のライトバック/状態更新に対応するキャッシュの状態を”更新中”とし、ライトバックが終了、ラインの追い出しが終了、または、リモートノードから処理確定通知がくると、状態を”共有”に変更する。
一方、メモリ13の更新も発生せず、かつ、ラインの追い出しも発生せず、リモートノードの対応するディレクトリ110に状態の変更を伴うものもない場合には、データの送信元のキャッシュからデータを読み出して、ローカルノードのコヒーレンスコントローラ(CC−A)へのデータの送信を完了した時点で、データ読み出し元のキャッシュをもつノード(例の場合はホームノード)のディレクトリ110の対応するキャッシュの状態を”更新中”から”共有”に変更する。
この結果、ローカルノードのコヒーレンスコントローラ(CC−A)は、ノード間ネットワーク30を経由してホームノードのコヒーレンスコントローラ(CC−B)にデータの受信完了を通知する必要がなくなる。
このように、本実施例に係るコヒーレンスコントローラ100は、ディレクトリ110内のキャッシュの状態として”更新中”を設けることによって、ノード間の通信を減らすとともに、キャッシュの状態確定を早くすることができ、分散共有メモリ型並列計算機システム全体として、性能を向上することができる。
図2に戻って、ノード内ネットワークインタフェース120は、ノード内ネットワーク20とのインタフェースであり、ノード間ネットワークインタフェース130は、ノード間ネットワーク30とのインタフェースである。
入力要求バッファ140は、ノード内ネットワークインタフェース120を介してSMP10から送られてくる要求およびノード間ネットワークインタフェース130を介して他のノードから送られてくる要求を格納するバッファである。
コヒーレンス制御部150a〜150dは、ディレクトリ110を用いてコヒーレンス制御に関する処理を行うパイプラインである。すなわち、コヒーレンス制御部150a〜150dは、入力要求バッファ140から要求を取り出して処理を行い、SMP10や他のノードに対する要求を作成し、出力要求バッファ160へ出力する。また、このコヒーレンス制御部150a〜150dは、必要に応じて、ディレクトリ110に対する操作を行う。
パイプラインの本数、段数、一つのパイプラインがアクセスするディレクトリ110の数、ディレクトリ検索の仕組みは、適宜選択することができる。例えば、ここでは、コヒーレンス制御部150a〜150dは、それぞれ、ノードA〜ノードDの共有キャッシュ12に対する操作を行う。
また、図5に示すように、ディレクトリ110のエントリをメモリアドレスでインターリーブし、ディレクトリアクセスを並列化することによって、ディレクトリ検索を高速化している。また、ディレクトリを特定できる情報を含む要求パケットに関しては、関連するパイプラインだけを使い、必要な処理だけを行う。なお、ディレクトリを特定できる情報を含む要求パケットの詳細については後述する。
出力要求バッファ160は、ノード内ネットワークインタフェース120を介してSMP10へ送信する要求およびノード間ネットワークインタフェース130を介して他のノードへ送信する要求を格納するバッファである。
データ転送制御部170は、他のノードとの間でのキャッシュデータの転送を制御する処理部であり、転送中のデータを蓄えるバッファを有する。
次に、ノード内のキャッシュデータの転送について図6を用いて説明する。図6は、SMP10が有する共有キャッシュ12の構成を示す機能ブロック図である。同図に示すように、この共有キャッシュ12は、キャッシュメモリ部12aと、キャッシュタグ部12bと、一時バッファ12cと、制御部12dとを有する。
キャッシュメモリ部12aは、メモリデータコピーを格納する記憶部であり、キャッシュタグ部12bは、キャッシュメモリ部12aに格納されたデータに対応するタグとメモリデータコピーの状態を記憶する記憶部である。一時バッファ12cは、キャッシュメモリ部12aから読み出されたデータを一時的に記憶するバッファである。
制御部12dは、共有キャッシュ12を制御する処理部であり、一時バッファ12cおよびノード内ネットワーク20を用いてノード内の他の共有キャッシュ12に高速にデータを転送する。
具体的には、共有キャッシュ12でミスヒットが発生すると、ミスヒットを起こしたキャッシュの制御部12dは、自ノード内の共有キャッシュ12に、該当するメモリデータが存在するかどうかを確認するようにブロードキャストすると同時に、コヒーレンスコントローラ100に、データのストア要求を出す。SMP10から共有キャッシュ12へのデータコピーのストア要求を受け取ると、コヒーレンスコントローラ100は、ホームノードのコヒーレンスコントローラ100にストア要求を出し、並行して自ノード内の共有キャッシュ12に該当するデータコピーが存在するかどうかを確認し、複数存在する場合はその中の1つを選び、1つのみ存在する場合はその共有キャッシュ12に対して、データを一時バッファ12cからミスヒットを起こした共有キャッシュ12に転送するように指示を出し、それ以外にデータコピーを持っていた共有キャッシュ12に対して、読み出しのキャンセルか読み出したデータの廃棄を指示する。
すると、制御部12dは、該当するメモリデータが存在するかどうかを確認し、存在する場合には、キャッシュメモリ部12aからデータを読み出して一時バッファ12cに仮置きする。また、コヒーレンスコントローラ100は、自ノードの共有キャッシュ12に対応するディレクトリ110を検索し、該当するメモリデータが自ノード内の共有キャッシュ12に存在する場合には、該当するメモリデータを有するいずれかの共有キャッシュ12に対してデータの転送を指示し、他の共有キャッシュ12に対しては仮置き解除を指示するのは、上述したとおりである。
すると、コヒーレンスコントローラ100から転送指示を受けた共有キャッシュ12の制御部12dは、一時バッファ12cからデータを読み出してノード内ネットワーク20を用いて他の共有キャッシュ12にデータを転送する。また、他の共有キャッシュ12は、コヒーレンスコントローラ100から仮置き解除指示を受けて、一時バッファ12cの仮置きを解除する。
このように、コヒーレンスコントローラ100が、ホームノードのコヒーレンスコントローラ100にストア要求を出す処理と並行して、自ノード内の共有キャッシュ12に、該当するデータがあるか否かの確認を指示し、確認の指示を受けた共有キャッシュ12が、該当するデータがある場合にはそのデータを先読みして一時バッファに格納し、コヒーレンスコントローラ100から転送指示があるとノード内ネットワーク20を用いて他の共有キャッシュ12にデータを転送することによって、共有キャッシュ12でミスヒットが発生し、同一ノード内の他の共有キャッシュ12に該当するデータがある場合に、ストア要求元の共有キャッシュ12へのデータの転送を高速に行うことができる。
なお、ここでは、自ノード内の共有キャッシュ12に、該当するメモリデータが存在するかどうかを確認するようにブロードキャストする場合について説明したが、コヒーレンスコントローラ100は、自ノードのディレクトリ110を検索して特定の共有キャッシュ12を選択し、選択した共有キャッシュ12にだけ該当データの先読みを指示することもできる。
次に、コヒーレンスコントローラ100の処理手順について図7〜図10を用いて説明する。なお、ここでは、共有キャッシュ12でミスヒットが発生し、SMP10からメモリデータの共有キャッシュ12へのストア要求を受けた場合のコヒーレンスコントローラ100の処理を中心に説明する。
図7は、コヒーレンスコントローラ100によるSMP10からの要求に対する処理の処理手順を示すフローチャートである。同図に示すように、コヒーレンスコントローラ100は、ノード内ネットワーク20を介してSMP10から要求を受け取ると(ステップS101)、受け取った要求がデータ転送であるか否かを判定する(ステップS102)。
その結果、受け取った要求がデータ転送である場合には、データの転送処理を行い(ステップS103)、ノード間ネットワーク30へデータを送出する(ステップS111)。
一方、受け取った要求がデータ転送でない場合には、要求を入力要求バッファ140へ格納する(ステップS104)。そして、入力要求バッファ140から要求を取り出して新規要求系であるか否かを判定し(ステップS105)、新規要求系でない場合には、応答処理を行い(ステップS106)、ステップS110へ進む。
また、入力要求バッファ140から取り出した要求が新規要求系である場合には、要求がフェッチミスヒットによるストア要求であるか否かを判定し(ステップS107)、フェッチミスヒットによるストア要求である場合には、共有キャッシュ12から該当データのプリフェッチを行う処理のため、自ノードディレクトリを検索し、該当するメモリデータコピーが、自ノード内にみつかった場合は、そのデータをつかったプリフェッチを指示する(ステップS108)。また、メモリデータ要求を作成するメモリデータ要求作成処理を行い(ステップS109)、作成した要求を出力要求バッファ160へ格納する(ステップS110)。
そして、出力要求バッファ160から要求を取り出してノード間ネットワーク30へ送出し、要求したメモリデータのコピーをもつキャッシュが存在した場合は、出力要求バッファ160から要求を取り出してノード内ネットワーク20へ送出する(ステップS111)。
また、入力要求バッファ140から取り出した要求がフェッチミスヒットによるストア要求でない場合には、データストアミスヒットに基づく要求であるか否かを判定し(ステップS112)、データストアミスヒットに基づく要求である場合には、要求元キャッシュラインの状態解析と、状態別データ要求を作成し(ステップS113)、ステップS110へ進む。
また、入力要求バッファ140から取り出した要求がデータストアミスヒットに基づく要求でない場合には、ラインのリプレース要求であるか否かを判定し(ステップS114)、ラインのリプレース要求である場合には、リプレース要求を作成し(ステップS115)、ラインのリプレース要求でない場合には、特殊処理を行う(ステップS116)。そして、ステップS110へ進む。
次に、ステップS109のメモリデータ要求作成処理について説明する。図8は、メモリデータ要求作成処理の処理手順を示すフローチャートである。同図に示すように、このメモリデータ要求作成処理では、コヒーレンスコントローラ100は、SMP10が要求しているメモリデータは、他のノード内のメモリ13のものであるか否かを判定する(ステップS201)。
その結果、他のノード内のメモリ13のものである場合には、自ノードのディレクトリ110を検索し(ステップS202)、SMP10が要求したメモリデータを持つキャッシュラインが自ノード内にあるか否かを判定する(ステップS203)。
その結果、自ノード内にない場合には、ホームノードへのデータの転送要求を作成し(ステップS204)、自ノード内にある場合には、該当するラインの状態が”更新中”のものがあるか否かを判定し(ステップS205)、”更新中”のものがない場合には、自ノード内の他の共有キャッシュ12のデータを利用できるので、自ノード内の共有キャッシュ12間でデータを供給できる条件付のホームノードへのデータの転送要求を作成し(ステップS206)、”更新中”のものがある場合には、更新処理が完了するのを待つ必要があるので、所定の時間経過後に再試行するアボート処理を行う(ステップS207)。
一方、SMP10が要求しているメモリデータが他のノード内のメモリ13のものでない場合には、全ディレクトリ110を検索し(ステップS208)、SMP10が要求したメモリデータのコピーを持つキャッシュラインがあるか否かを判定する(ステップS209)。
その結果、SMP10が要求したメモリデータのコピーを持つキャッシュラインがある場合には、該当するラインの状態が”更新中”のものがあるか否かを判定し(ステップS210)、”更新中”のものがある場合には、更新処理が完了するのを待つ必要があるので、所定の時間経過後に再試行するアボート処理を行い(ステップS207)、”更新中”のものがない場合には、Dirtyのライン(メモリにあるデータと一致しない最新のデータをもつキャッシュ)があるか否かを判定する(ステップS211)。
そして、Dirtyのラインがない場合には、アクセスレイテンシを基準に、共有キャッシュ12間転送かメモリ読み出しかを判定し、判定結果に基づいていずれかの要求を作成し(ステップS212)、Dirtyのラインがある場合には、Dirtyデータ転送要求を作成し、必要に応じて書き戻し要求を作成する(ステップS213)。
また、SMP10が要求したメモリデータのコピーを持つキャッシュラインがない場合には、メモリ13からの読み出し要求を作成する(ステップS214)。
このように、コヒーレンスコントローラ100は、自ノード内の共有キャッシュ12間でSMP10が要求したメモリデータを供給できる場合には、その条件付でホームノードへのデータ転送要求を作成することによって、ホームノードのコヒーレンスコントローラ100にローカルノード内の共有キャッシュ12間での転送が可能であることを知らせることができる。
なお、ステップS207では、アボート処理として、所定の時間経過後に再試行する場合について説明したが、更新状態解除待ちバッファを設けてSMP10からのストア要求を格納することもできる。図9は、更新状態解除待ちバッファを備えたコヒーレンスコントローラの構成を示す機能ブロック図である。同図に示すように、このコヒーレンスコントローラ200には、図2に示したコヒーレンスコントローラ100に更新状態解除待ちバッファ280が追加されている。“更新中”のステートが“更新中でない”ステートに変わったときに、そのディレクトリを保持するコヒーレンスコントローラ内の更新状態解除待ちバッファ280に、状態待ちリクエストがあれば、状態待ちリクエストを入力要求バッファに入れる。
次に、図8に示したメモリデータ要求作成処理で作成されたデータ転送要求に対する処理を中心にホームノードのコヒーレンスコントローラ100の処理手順について説明する。図10は、図8に示したメモリデータ要求作成処理で作成されたデータ転送要求に対する処理を中心とするホームノードのコヒーレンスコントローラ100の処理手順を示すフローチャートである。
図10に示すように、ホームノードのコヒーレンスコントローラ100は、ノード間ネットワーク30から要求を受け取ると(ステップS301)、受け取った要求がデータ転送であるか否かを判定する(ステップS302)。
その結果、受け取った要求がデータ転送である場合には、データの転送処理を行い(ステップS303)、ノード内ネットワーク20を介してSMP10へデータを送信する(ステップS310)。
一方、受け取った要求がデータ転送でない場合には、要求を入力要求バッファ140へ格納する(ステップS304)。そして、入力要求バッファ140から要求を取り出し、ローカルノード内の共有キャッシュ12間でデータを供給できる条件付のデータ転送であるか否かを判定し(ステップS305)、条件付である場合には、全ノードのディレクトリ110を検索し、該当するメモリアドレスのエントリの状態を読み出し(ステップS306)、ヒットした全てのエントリの状態が”更新中”以外であるか否かを判定する(ステップS307)。
その結果、ヒットした全てのエントリの状態が”更新中”以外である場合には、ローカルノードへ返す応答として”先読みデータ利用可”を作成し(ステップS308)、出力要求バッファ160へ格納し(ステップS309)、ノード間ネットワーク30へ送出する(ステップS310)。
一方、ヒットしたエントリの中に状態が”更新中”であるエントリがある場合には、先読みデータ利用不可と判定して、要求をメモリデータのストアに変更し(ステップS311)、アボート処理を行う(ステップS312)。ここで、アボート処理としては、図9に示したように更新状態解除待ちバッファ280に格納する、あるいは、入力要求バッファ140に滞留して所定の条件が満たされた場合に再試行するなどの処理がある。
また、ローカルノード内の共有キャッシュ12間でデータを供給できる条件付のデータ転送でない場合には、全ノードのディレクトリ110を検索して該当するメモリアドレスのエントリの状態を読み出し(ステップS313)、ヒットした全てのエントリの状態が”更新中”以外であるか否かを判定する(ステップS314)。
その結果、ヒットした全てのエントリの状態が”更新中”以外である場合には、要求の種別を判定し、必要な処理を決定し、SMP10などへの要求を作成するとともに、必要であればディレクトリ110の状態を操作し(ステップS315)、作成した要求を出力要求バッファ160へ格納し(ステップS309)、ノード内ネットワーク20またはノード間ネットワーク30へ送出する(ステップS310)。一方、ヒットしたエントリの中に状態が”更新中”であるエントリがある場合には、アボート処理を行う(ステップS312)。
このように、ホームディレクトリのコヒーレンスコントローラ100が、ローカルノード内の共有キャッシュ12間でデータを供給できる条件付のデータ転送要求を受け取った場合に、全ノードのディレクトリ110を検索し、該当するメモリアドレスの全てのエントリの状態が”更新中”以外である場合に、ローカルノードへ”先読みデータ利用可能”を応答することによって、ローカルノード内で、先読みしたデータを用いて共有キャッシュ12間でデータ転送を行うことができ、ストア要求に対するデータ転送を高速化することができる。
次に、ノード間で転送される要求パケットについて図11〜図13を用いて説明する。図11は、要求パケットのフォーマットを示す図である。同図に示すように、要求パケットには、基本情報を送るための基本情報パケットとディレクトリエントリ特定のための情報を送るためのディレクトリ特定情報パケットがある。ここで、ディレクトリ特定情報パケットは、基本情報に依存して基本情報パケットに付加される。また、ここでは、パケットが固定長である場合について説明するが、パケットを可変長とすることもできる。
基本情報パケットは、タグと、オペコードと、送信元ノードIDと、送信先ノードIDと、関連ディレクトリ数と、物理アドレスとから構成される。ここで、タグは、パケットに含まれる情報の種別と、情報の位置を特定するのに利用するコードである。オペコードは、要求内容を特定するための情報である。送信元ノードIDは、パケットの送信元ノードを識別するための識別子であり、送信先ノードIDは、パケットの送信先ノードを識別するための識別子である。
関連ディレクトリ数は、ディレクト特定情報パケットで送られるディレクトリ情報の数であり、ディレクトリ特定情報パケットの数は、この関連ディレクトリ数に依存する。この関連ディレクトリ数が「0」のときは、物理アドレスを使ってディレクトリ110の検索を行う。物理アドレスは、要求データのアドレスである。なお、これらの情報には、オペコードに依存して、存在する情報と存在しない情報がある。例えば、完了通知の場合は、物理アドレスを含まないことも可能である。
ディレクトリ特定情報パケットには、タグのほかに、ノードを識別するノードIDと、共有キャッシュ12を識別するキャッシュIDと、ウェイを識別するウェイIDとのセットが基本情報の関連ディレクトリ数の個数分含まれる。
例えば、ローカルノードからホームノードに要求を送るときは、先読みデータの利用可否を問い合わせるときを除いて、関連ディレクトリは付かない。また、ホームノードからリモートノードに要求を送るときは、要求送出のときにすでに相手方ノードを特定しているため、ディレクトリ特定情報のノードIDは、空白でもよい。
また、ホームノードから複数リモートノードに要求を出す場合で、ノード別に要求の特定が不要のときは、つぎの二つの要求の作り方(出し方)がある。その一つは、ホームノードが、相手先のノードごとにパケットを作成して送付する。他の一つは、相手先のノードは、ディレクトリ特定の情報で識別するものとする。ホームノードは、基本情報の送り先ノードに特殊なマークをたてて、ディレクトリ特定情報を付加した要求を一つ送り出す。関連ディレクトリ数が、関連ディレクトリ数の表示ビットで表現できないために、一つの要求に収められなければ、関連ディレクトリ数を表示可能数で割った数の要求にわけて送る。すなわち、送った要求をまとめれば、関連ディレクトリがカバーされるように要求を作る。そして、ノード間ネットワーク30の中に、送り先の判定処理部をおき、ホームノードから出された、特殊マークつきのパケットを複数個に分割して、ディレクトリ特定情報で指定された、全てのノードに送付する。
図12は、基本情報パケットの一例を示す図であり、図13は、ディレクトリ特定情報パケットの一例を示す図である。これらのパケットは、ホームノードX(ID‘001‘)がリモートノードY(ID‘010‘)へ要求を送る場合の例を示し、要求内容は、「リモートノードYのキャッシュ(ID‘11‘)から、ローカルノードZ(ID‘100‘)にデータを転送し、ノードYのキャッシュの状態変更はなしで、ノードYからノードXへ、データ送信済を知らせる情報転送は不要」である。
このように、コヒーレンスコントローラ100は、ディレクトリ110のエントリがどのノードのディレクトリ110であっても一意の情報で特定できる構造であるため、必要に応じて新規の要求パケットにディレクトリ特定情報パケットを含めることによって、新規要求に対するディレクトリ検索の頻度を減らし、処理を高速化することができる。
上述してきたように、本実施例では、各ノードのコヒーレンスコントローラ100が全てのノードの全ての共有キャッシュ12に1対1に対応するディレクトリ110を有することによって、ディレクトリ110のエントリの競合の発生を防ぎ、コヒーレンス制御を容易にするとともに高速化することができる。
また、本実施例では、SMP10をノード内ネットワーク20で接続することによって、SMP10はコヒーレンスコントローラ100を介することなく他のSMP10と通信することができ、SMP10間の通信を高速化することができる。
また、本実施例では、ディレクトリ110のエントリのキャッシュの状態にエントリが更新中であることを示す”更新中”の状態を設けることによって、ディレクトリ110だけを用いてロック制御を行うことができる。
また、この”更新中”の状態をディレクトリ110に設けることによって、条件にあうノードに状態更新の責任を持たせることができ、従来のように、ホームノードで責任を持つ、ローカルノードで責任を持つなどの責任をもつノードを固定しないで制御でき、コヒーレンス制御を高速化することができる。
また、本実施例では、コヒーレンスコントローラ100が、ホームノードのコヒーレンスコントローラ100にストア要求を出す処理と並行して、自ノード内の共有キャッシュ12に、該当するデータがあるか否かの確認をし、キャッシュミスヒットを起こした共有キャッシュ12の制御部12dからブロードキャストされた要求にもとづき先読みして一時バッファ12cに格納していたデータを、共有キャッシュ12が、コヒーレンスコントローラ100から転送指示があるとノード内ネットワーク20を用いて、ミスヒットが発生した共有キャッシュ12にデータを転送することによって、共有キャッシュ12でミスヒットが発生し、同一ノード内の他の共有キャッシュ12に該当するデータがある場合に、ストア要求元の共有キャッシュ12へのデータの転送を高速に行うことができる。
また、本実施例では、ディレクトリ110のエントリがどのノードのディレクトリ110であっても一意の情報で特定できる構造であるため、必要に応じて新規要求の要求パケットにディレクトリ特定情報パケットを含めることによって、新規要求に対するディレクトリ検索の頻度を減らし、処理を高速化することができる。
なお、従来、ディレクトリ方式は、大規模の並列システムに適応されていたので、全ての共有キャッシュ12に1対1で対応するディレクトリを各ノードに配することは、現実味がなかった。また、ビジネス系では、規模から考えてディレクトリ方式よりもスヌープ方式のほうが性能で有利といわれていたために、スヌープ方式で制御されていた。しかし、上述した構成により、ディレクトリ方式のデメリットがへり、コヒーレンス制御の性能を向上することができる。
(付記1)複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理装置であって、
各ノードの各共有キャッシュに1対1に対応するディレクトリを共有キャッシュの数分記憶するディレクトリ記憶手段と、
前記ディレクトリ記憶手段に記憶された複数のディレクトリを用いてキャッシュコヒーレンスの制御を行うコヒーレンス制御手段と、
を備えたことを特徴とするキャッシュコヒーレンス管理装置。
(付記2)前記コヒーレンス制御手段は、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに前記複数のディレクトリのうちの該メモリデータに対応するディレクトリと該ディレクトリの中でメモリデータの情報を持つ箇所とを特定する情報を含めることを特徴とする付記1に記載のキャッシュコヒーレンス管理装置。
(付記3)前記ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して該複数の共有キャッシュと接続されることを特徴とする付記1または2に記載のキャッシュコヒーレンス管理装置。
(付記4)前記ノード内共有キャッシュ接続手段は、ネットワーク構成であることを特徴とする付記3に記載のキャッシュコヒーレンス管理装置。
(付記5)前記ノード内共有キャッシュ接続手段は、バス接続であることを特徴とする付記3に記載のキャッシュコヒーレンス管理装置。
(付記6)前記コヒーレンス制御手段は、共有キャッシュのミスヒットによって要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、該メモリデータの先読みを他の共有キャッシュに指示し、該メモリデータを記憶するメモリを備えたノードを管理するキャッシュコヒーレンス管理装置に対して自ノード内の他の共有キャッシュが先読みしたメモリデータの利用可否の問い合わせを行って利用可の応答を受けると、先読みした共有キャッシュに対して先読みしたメモリデータをミスヒットが発生した共有キャッシュにノード内共有キャッシュ接続手段を介して転送することを指示することを特徴とする付記3、4または5に記載のキャッシュコヒーレンス管理装置。
(付記7)前記コヒーレンス制御手段は、前記利用可否の問い合わせを、前記メモリデータの転送要求とともに行うことを特徴とする付記6に記載のキャッシュコヒーレンス管理装置。
(付記8)前記ディレクトリ記憶手段が記憶するディレクトリのエントリのキャッシュラインが管理するデータブロックの状態を示すキャッシュ状態に該キャッシュラインが更新中であることを示す更新中状態を有し、
前記コヒーレンス制御手段は、前記キャッシュ状態を用いてキャッシュラインのロック制御を行うことを特徴とする付記1〜7のいずれか一つに記載のキャッシュコヒーレンス管理装置。
(付記9)他のキャッシュコヒーレンス管理装置からメモリデータを要求された場合に、データを共有キャッシュから転送する際に、転送元の共有キャッシュの該当キャッシュラインの状態に変更が生じないときは、メモリデータを要求したキャッシュコヒーレンス装置からのメモリデータ受信通知を待たずに、要求されたデータをノードの中にあるメインメモリに持つノードのディレクトリのキャッシュミスヒットを起こした共有キャッシュに対応するディレクトリの対応するエントリのキャッシュ状態を更新中状態から、キャッシュミスヒットを起こした共有cキャッシュがデータ格納後に移行する状態に、予め設定することを特徴とする付記8に記載のキャッシュコヒーレンス管理装置。
(付記10)前記コヒーレンス制御手段は、前記ディレクトリのエントリを決めるメモリアドレスでインターリーブされた要求をそれぞれ扱う複数のパイプラインによってキャッシュコヒーレンスの制御を行うことを特徴とする付記1〜9のいずれか一つに記載のキャッシュコヒーレンス管理装置。
(付記11)複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリを有し、かつ、ネットワークによって複数個が接続されることによって分散共有メモリ型並列計算機システムを構成するマルチプロセッサ装置であって、
前記複数の共有キャッシュを接続する共有キャッシュ接続手段と、
前記共有キャッシュ接続手段を介して前記複数の共有キャッシュと接続するコヒーレンス管理手段と、
を備えたことを特徴とするマルチプロセッサ装置。
(付記12)複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理方法であって、
共有キャッシュに関する要求を受信し、該受信した要求が共有キャッシュへのストア要求であるか否かを判定する要求判定工程と、
前記要求判定工程によりストア要求であると判定された場合に、各ノードの各共有キャッシュに1対1に対応するディレクトリを共有キャッシュの数分記憶するディレクトリ記憶装置を用いて該ストア要求に対するキャッシュコヒーレンスの制御を行うコヒーレンス制御工程と、
を含んだことを特徴とするキャッシュコヒーレンス管理方法。
(付記13)前記コヒーレンス制御工程は、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに、前記ディレクトリ記憶装置に記憶する複数のディレクトリのうちの該メモリデータに対応するディレクトリと該ディレクトリの中でメモリデータの情報を持つ箇所とを特定する情報を含めることを特徴とする付記12に記載のキャッシュコヒーレンス管理方法。
(付記14)前記ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して前記ストア要求を受信するストア要求受信工程をさらに含んだことを特徴とする付記12または13に記載のキャッシュコヒーレンス管理方法。
(付記15)前記ノード内共有キャッシュ接続手段は、ネットワーク構成であることを特徴とする付記14に記載のキャッシュコヒーレンス管理方法。
(付記16)前記ノード内共有キャッシュ接続手段は、バス接続であることを特徴とする付記14に記載のキャッシュコヒーレンス管理方法。
(付記17)前記コヒーレンス制御工程は、共有キャッシュのミスヒットによって要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、該メモリデータの先読みを他の共有キャッシュに指示し、該メモリデータを記憶するメモリを備えたノードを管理するキャッシュコヒーレンス管理装置に対して自ノード内の他の共有キャッシュが先読みしたメモリデータの利用可否の問い合わせを行って利用可の応答を受けると、先読みした共有キャッシュに対して先読みしたメモリデータをミスヒットが発生した共有キャッシュにノード内共有キャッシュ接続手段を介して転送することを指示することを特徴とする付記14、15または16に記載のキャッシュコヒーレンス管理方法。
(付記18)前記コヒーレンス制御工程は、前記利用可否の問い合わせを、前記メモリデータの転送要求とともに行うことを特徴とする付記17に記載のキャッシュコヒーレンス管理方法。
(付記19)前記ディレクトリ記憶装置が記憶するディレクトリのエントリのキャッシュラインの状態を示すキャッシュ状態に該キャッシュラインが更新中であることを示す更新中状態を有し、
前記コヒーレンス制御工程は、前記キャッシュ状態を用いてキャッシュラインのロック制御を行うことを特徴とする付記12〜18のいずれか一つに記載のキャッシュコヒーレンス管理方法。
(付記20)前記コヒーレンス制御工程は、前記ディレクトリのエントリを決めるメモリアドレスでインターリーブされた要求をそれぞれ扱う複数のパイプラインによってキャッシュコヒーレンスの制御を行うことを特徴とする付記12〜19のいずれか一つに記載のキャッシュコヒーレンス管理方法。
以上のように、本発明に係るキャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法は、分散共有メモリ型並列計算機システムに有用であり、特に、ビジネス系の分散共有メモリ型並列計算機システムに適している。
本実施例に係る分散共有メモリ型並列計算機システムの構成を示す機能ブロック図である。 本実施例に係るコヒーレンスコントローラ100の構成を示す機能ブロック図である。 ディレクトリ110の構成を示す図である。 ディレクトリ110内のキャッシュの状態として”更新中”を設けることによるコヒーレンス制御の高速化を説明するための説明図である。 ディレクトリ110のエントリをメモリアドレスでインターリーブすることによるディレクトリアクセスの並列化を説明するための説明図である。 SMP10が有する共有キャッシュ12の構成を示す機能ブロック図である。 コヒーレンスコントローラ100によるSMP10からの要求に対する処理の処理手順を示すフローチャートである。 メモリデータ要求作成処理の処理手順を示すフローチャートである。 更新状態解除待ちバッファを備えたコヒーレンスコントローラの構成を示す機能ブロック図である。 図8に示したメモリデータ要求作成処理で作成されたデータ転送要求に対する処理を中心とするホームノードのコヒーレンスコントローラ100の処理手順を示すフローチャートである。 要求パケットのフォーマットを示す図である。 基本情報パケットの一例を示す図である。 ディレクトリ特定情報パケットの一例を示す図である。 メインメモリベースのディレクトリを示す図である。 スパースディレクトリを示す図である。 CCRディレクトリを示す図である。 CCRディレクトリを備えた分散共有メモリ型並列計算機システムを示す図である。
符号の説明
10 SMP
11 CPU部
12 共有キャッシュ
12a キャッシュメモリ部
12b キャッシュタグ部
12c 一時バッファ
12d 制御部
13 メモリ
20 ノード内ネットワーク
30 ノード間ネットワーク
100,200 コヒーレンスコントローラ
110 ディレクトリ
120 ノード内ネットワークインタフェース
130 ノード間ネットワークインタフェース
140 入力要求バッファ
150a〜150d コヒーレンス制御部
160 出力要求バッファ
170 データ転送制御部
280 更新状態解除待ちバッファ
310 メインメモリ
320 メモリディレクトリ
330 スパースディレクトリ

Claims (10)

  1. 複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理装置であって、
    各ノードの各共有キャッシュに1対1に対応するディレクトリを共有キャッシュの数分記憶するディレクトリ記憶手段と、
    前記ディレクトリ記憶手段に記憶された複数のディレクトリを用いてキャッシュコヒーレンスの制御を行うコヒーレンス制御手段と、
    を備えたことを特徴とするキャッシュコヒーレンス管理装置。
  2. 前記コヒーレンス制御手段は、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに前記複数のディレクトリのうちの該メモリデータに対応するディレクトリと該ディレクトリの中でメモリデータの情報を持つ箇所とを特定する情報を含めることを特徴とする請求項1に記載のキャッシュコヒーレンス管理装置。
  3. 前記ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して該複数の共有キャッシュと接続されることを特徴とする請求項1または2に記載のキャッシュコヒーレンス管理装置。
  4. 前記コヒーレンス制御手段は、共有キャッシュのミスヒットによって要求されたメモリデータが自ノード内の他の共有キャッシュにある場合には、該メモリデータの先読みを他の共有キャッシュに指示し、該メモリデータを記憶するメモリを備えたノードを管理するキャッシュコヒーレンス管理装置に対して自ノード内の他の共有キャッシュが先読みしたメモリデータの利用可否の問い合わせを行って利用可の応答を受けると、先読みした共有キャッシュに対して先読みしたメモリデータをミスヒットが発生した共有キャッシュにノード内共有キャッシュ接続手段を介して転送することを指示することを特徴とする請求項3に記載のキャッシュコヒーレンス管理装置。
  5. 前記ディレクトリ記憶手段が記憶するディレクトリのエントリのキャッシュラインの状態を示すキャッシュ状態に該キャッシュラインが更新中であることを示す更新中状態を有し、
    前記コヒーレンス制御手段は、前記キャッシュ状態を用いてキャッシュラインのロック制御を行うことを特徴とする請求項1〜4のいずれか一つに記載のキャッシュコヒーレンス管理装置。
  6. 他のキャッシュコヒーレンス管理装置からメモリデータを要求された場合に、転送元の共有キャッシュの状態を変更せずに、転送元共有キャッシュにあるデータを転送する処理の場合は、メモリデータを要求したキャッシュコヒーレンス装置からのメモリデータ受信通知を待たずに、メモリデータを記憶するメモリを備えたノードのキャッシュコヒーレンス管理装置のメモリデータを要求した共有キャッシュに対応するディレクトリの該メモリデータに対応するエントリで管理する該当データブロックのキャッシュ状態をデータが書き込まれた後に移行する最終状態に、あらかじめ変更することを特徴とする請求項5に記載のキャッシュコヒーレンス管理装置。
  7. 前記コヒーレンス制御手段は、前記ディレクトリのエントリを決めるメモリアドレスでインターリーブされた要求をそれぞれ扱う複数のパイプラインによってキャッシュコヒーレンスの制御を行うことを特徴とする請求項1〜6のいずれか一つに記載のキャッシュコヒーレンス管理装置。
  8. 複数のプロセッサ、複数の共有キャッシュおよび一つ以上のメモリから構成されるノードが複数個接続されて構成される分散共有メモリ型並列計算機システムのキャッシュコヒーレンスをノード単位で管理するキャッシュコヒーレンス管理方法であって、
    共有キャッシュに関する要求を受信し、該受信した要求が共有キャッシュへのストア要求であるか否かを判定する要求判定工程と、
    前記要求判定工程によりストア要求であると判定された場合に、各ノードの各共有キャッシュに1対1に対応するディレクトリを共有キャッシュの数分記憶するディレクトリ記憶装置を用いて該ストア要求に対するキャッシュコヒーレンスの制御を行うコヒーレンス制御工程と、
    を含んだことを特徴とするキャッシュコヒーレンス管理方法。
  9. 前記コヒーレンス制御工程は、他のノードのキャッシュコヒーレンスを管理するキャッシュコヒーレンス管理装置にメモリデータを新規に要求する要求パケットに、前記ディレクトリ記憶装置に記憶する複数のディレクトリのうちの該メモリデータに対応するディレクトリと該ディレクトリの中でメモリデータの情報を持つ箇所とを特定する情報を含めることを特徴とする請求項8に記載のキャッシュコヒーレンス管理方法。
  10. 前記ノード内の複数の共有キャッシュを接続するノード内共有キャッシュ接続手段を介して前記ストア要求を受信するストア要求受信工程をさらに含んだことを特徴とする請求項8または9に記載のキャッシュコヒーレンス管理方法。
JP2005111242A 2005-04-07 2005-04-07 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法 Expired - Fee Related JP4362454B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005111242A JP4362454B2 (ja) 2005-04-07 2005-04-07 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US11/214,850 US20060230237A1 (en) 2005-04-07 2005-08-31 Method and system for maintaining cache coherence of distributed shared memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005111242A JP4362454B2 (ja) 2005-04-07 2005-04-07 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法

Publications (2)

Publication Number Publication Date
JP2006293550A true JP2006293550A (ja) 2006-10-26
JP4362454B2 JP4362454B2 (ja) 2009-11-11

Family

ID=37084404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005111242A Expired - Fee Related JP4362454B2 (ja) 2005-04-07 2005-04-07 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法

Country Status (2)

Country Link
US (1) US20060230237A1 (ja)
JP (1) JP4362454B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2009070013A (ja) * 2007-09-12 2009-04-02 Nec Computertechno Ltd マルチプロセッサ及びメモリリプレース方法
WO2012035605A1 (ja) * 2010-09-13 2012-03-22 富士通株式会社 情報処理装置および情報処理装置の制御方法
JP2015106312A (ja) * 2013-11-29 2015-06-08 富士通株式会社 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置
JP2017117203A (ja) * 2015-12-24 2017-06-29 富士通株式会社 情報処理装置、演算処理装置および情報処理装置の制御方法
JP2019049872A (ja) * 2017-09-11 2019-03-28 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725619B2 (en) * 2005-09-15 2010-05-25 International Business Machines Corporation Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes
US7657710B2 (en) * 2006-11-17 2010-02-02 Sun Microsystems, Inc. Cache coherence protocol with write-only permission
US8438337B1 (en) 2009-09-30 2013-05-07 Netlogic Microsystems, Inc. System and method for conditionally sending a request for data to a home node
US8566533B1 (en) 2009-09-30 2013-10-22 Netlogic Microsystems, Inc. System, method, and computer program product for conditionally sending a request for data to a node based on a determination
US8533399B2 (en) * 2010-01-15 2013-09-10 International Business Machines Corporation Cache directory look-up re-use as conflict check mechanism for speculative memory requests
KR101039782B1 (ko) * 2009-11-26 2011-06-09 한양대학교 산학협력단 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템
CN101794271B (zh) * 2010-03-31 2012-05-23 华为技术有限公司 多核内存一致性的实现方法和装置
US20120047223A1 (en) * 2010-08-20 2012-02-23 Nokia Corporation Method and apparatus for distributed storage
US9448954B2 (en) * 2011-02-28 2016-09-20 Dsp Group Ltd. Method and an apparatus for coherency control
US8832388B2 (en) 2011-03-11 2014-09-09 Microsoft Corporation Managing shared memory used by compute nodes
GB2493942B (en) 2011-08-24 2015-05-13 Conor Santifort Method and apparatus for increasing capacity of cache directory in multi-processor systems
US9563560B2 (en) 2012-09-28 2017-02-07 Qualcomm Technologies, Inc. Adaptive tuning of snoops
US9639469B2 (en) * 2012-09-28 2017-05-02 Qualcomm Technologies, Inc. Coherency controller with reduced data buffer
US9632934B2 (en) * 2013-03-14 2017-04-25 Silicon Graphics International Corp. Maintaining coherence when removing nodes from a directory-based shared memory system
US9298626B2 (en) 2013-09-26 2016-03-29 Globalfoundries Inc. Managing high-conflict cache lines in transactional memory computing environments
US9298623B2 (en) 2013-09-26 2016-03-29 Globalfoundries Inc. Identifying high-conflict cache lines in transactional memory computing environments
US9086974B2 (en) 2013-09-26 2015-07-21 International Business Machines Corporation Centralized management of high-contention cache lines in multi-processor computing environments
US9292444B2 (en) 2013-09-26 2016-03-22 International Business Machines Corporation Multi-granular cache management in multi-processor computing environments
US9329890B2 (en) 2013-09-26 2016-05-03 Globalfoundries Inc. Managing high-coherence-miss cache lines in multi-processor computing environments
CN112492026B (zh) * 2020-11-26 2022-08-23 郑州师范学院 动态云存储环境下混合型自适应副本一致性更新方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
EP0681240B1 (en) * 1994-05-03 2001-01-10 Hewlett-Packard Company Duplicate cache tag memory system
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US5749095A (en) * 1996-07-01 1998-05-05 Sun Microsystems, Inc. Multiprocessing system configured to perform efficient write operations
US6105113A (en) * 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6275900B1 (en) * 1999-01-27 2001-08-14 International Business Machines Company Hybrid NUMA/S-COMA system and method
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US6449699B2 (en) * 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6338123B2 (en) * 1999-03-31 2002-01-08 International Business Machines Corporation Complete and concise remote (CCR) directory
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US6405292B1 (en) * 2000-01-04 2002-06-11 International Business Machines Corp. Split pending buffer with concurrent access of requests and responses to fully associative and indexed components
US6493809B1 (en) * 2000-01-28 2002-12-10 International Business Machines Corporation Maintaining order of write operations in a multiprocessor for memory consistency
US6675265B2 (en) * 2000-06-10 2004-01-06 Hewlett-Packard Development Company, L.P. Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US6721858B1 (en) * 2000-08-24 2004-04-13 International Business Machines Corporation Parallel implementation of protocol engines based on memory partitioning
JP2002197073A (ja) * 2000-12-25 2002-07-12 Hitachi Ltd キャッシュ一致制御装置
US7403952B2 (en) * 2000-12-28 2008-07-22 International Business Machines Corporation Numa system resource descriptors including performance characteristics
US6760817B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Method and system for prefetching utilizing memory initiated prefetch write operations
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
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2009070013A (ja) * 2007-09-12 2009-04-02 Nec Computertechno Ltd マルチプロセッサ及びメモリリプレース方法
WO2012035605A1 (ja) * 2010-09-13 2012-03-22 富士通株式会社 情報処理装置および情報処理装置の制御方法
JP2015106312A (ja) * 2013-11-29 2015-06-08 富士通株式会社 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置
JP2017117203A (ja) * 2015-12-24 2017-06-29 富士通株式会社 情報処理装置、演算処理装置および情報処理装置の制御方法
JP2019049872A (ja) * 2017-09-11 2019-03-28 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP7100237B2 (ja) 2017-09-11 2022-07-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
JP4362454B2 (ja) 2009-11-11
US20060230237A1 (en) 2006-10-12

Similar Documents

Publication Publication Date Title
JP4362454B2 (ja) キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
KR101639672B1 (ko) 무한 트랜잭션 메모리 시스템 및 그 동작 방법
US7613885B2 (en) Cache coherency control method, chipset, and multi-processor system
JP5445581B2 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
US9170946B2 (en) Directory cache supporting non-atomic input/output operations
US7340565B2 (en) Source request arbitration
US20100325367A1 (en) Write-Back Coherency Data Cache for Resolving Read/Write Conflicts
JP2001515244A (ja) スケーリング可能な共用メモリ・マルチプロセッサ・システム
JP2007257637A (ja) アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JP2002163149A (ja) マルチプロセッサシステムのキャッシュコヒーレンスプロトコル
JP4409619B2 (ja) 情報処理装置、制御装置および制御方法
WO2002073417A1 (en) State-based allocation and replacement for improved hit ratio in directory caches
EP1624377B1 (en) Adapted MSI protocol used for snoop caches and speculative memory reads
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
EP2122470B1 (en) System and method for implementing an enhanced hover state with active prefetches
JP4162493B2 (ja) 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
WO2010038301A1 (ja) メモリアクセス方法及び情報処理装置
US20090198910A1 (en) Data processing system, processor and method that support a touch of a partial cache line of data
JP4469911B2 (ja) リクエスト生成装置、リクエスト処理システム及び制御方法
JP4335298B2 (ja) スヌープ制御方法および情報処理装置
US7383390B1 (en) Resource-limited directories with fine-grained eviction
US8176254B2 (en) Specifying an access hint for prefetching limited use data in a cache hierarchy

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090717

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090817

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees