JP2002024198A - 分散共有メモリ型並列計算機 - Google Patents

分散共有メモリ型並列計算機

Info

Publication number
JP2002024198A
JP2002024198A JP2000205649A JP2000205649A JP2002024198A JP 2002024198 A JP2002024198 A JP 2002024198A JP 2000205649 A JP2000205649 A JP 2000205649A JP 2000205649 A JP2000205649 A JP 2000205649A JP 2002024198 A JP2002024198 A JP 2002024198A
Authority
JP
Japan
Prior art keywords
cache
type
memory
processor
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.)
Pending
Application number
JP2000205649A
Other languages
English (en)
Inventor
Mitsuru Sato
充 佐藤
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 JP2000205649A priority Critical patent/JP2002024198A/ja
Publication of JP2002024198A publication Critical patent/JP2002024198A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 複数のノードを相互結合手段を用いて結合し
て構成する分散共有メモリ型並列計算機において、キャ
ッシュの一貫性管理のための共有バス上の通信量の増加
を抑制し、かつメモリアクセスの遅延を抑制することを
目的とする。 【解決手段】 各ノードは、複数のキャッシュ一貫性管
理手段と、メモリアクセスの種類によりキャッシュ一貫
性管理手段を選択する一貫性管理選択手段とを有し、各
ノードを、各キャッシュ一貫性管理手段に対応した相互
結合手段を用いて結合することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、共有メモリ型並列
計算機に関し、特に分散共有メモリ型並列計算機におけ
るキャッシュの一貫性管理に関する。
【0002】
【従来の技術】一般に、プロセッサの演算処理速度は、
メモリのアクセス速度と比較して相対的に早い。一方、
一般に演算処理で用いるデータは、メモリの一部分に集
中する傾向、すなわちアクセス局所性がある。
【0003】従来から、アクセス局所性を利用してプロ
セッサとメモリの速度差を緩和する方式として、キャッ
シュ方式がある。
【0004】キャッシュ方式では、プロセッサとメモリ
との間に比較的小容量ではあるが高速なキャッシュを設
け、キャッシュには、メモリ内のアクセス頻度の高いデ
ータのコピーを持たせる。キャッシュにコピーされたデ
ータに対するアクセスは、キャッシュをアクセスするた
め、高速のアクセスが実現できる。
【0005】一般に、共有メモリ型並列計算機において
もキャッシュ方式を適用する。図7は、各ノードに共有
メモリを持たせた分散共有メモリ型並列計算機の構成例
を示す。この場合、各ノードに分散された共有メモリ
は、いずれのノードからもアクセス可能であり、全体と
して一意なアドレス空間をなす。図8は、分散共有メモ
リ型並列計算機のメモリアクセス動作概要を示し、図8
−(a)では、ノードAとノードBが同じデータを各々
のキャッシュにコピーして共有している。
【0006】しかし、図8−(b)に示すごとく、プロ
セッサAがデータを更新した場合、ノードBのキャッシ
ュ内にあるデータを、同時に無効化あるいは更新しなけ
ればキャッシュの内容が不一致となり、キャッシュの一
貫性が保たれない。この状態でプロセッサBがデータを
読み出すと、プロセッサBは更新前のデータを読み出し
てしまう。
【0007】この問題を解決するためのキャッシュの一
貫性管理方式として、スヌープ方式とディレクトリ方式
がある。
【0008】スヌープ方式では、各キャッシュ側でキャ
ッシュの状態を管理する。図9は、スヌープ方式の分散
共有メモリ型並列計算機の構成例を示し、図10は、ス
ヌープ方式のメモリアクセス動作概要を示す。
【0009】スヌープ方式では、あるキャッシュが他の
キャッシュに影響を及ぼす可能性のある操作、たとえば
新規にメモリからキャッシュにデータをコピーする場合
には、全キャッシュに対してデータをコピーすることを
通知する。
【0010】図10−(a)は、プロセッサAのキャッ
シュのみがメモリブロック (アドレスadr)のデータのコ
ピーを保有している状態を示し、プロセッサAのキャッ
シュの状態は排他的保有状態E (Exclusive)である。
【0011】図10−(b)は、この状態でプロセッサ
Bが同じアドレスadr のデータを要求した場合の処理を
示す。プロセッサBのキャッシュがアドレスadr のデー
タをコピーすることを全キャッシュ、この場合はプロセ
ッサAのキャッシュに通知する。
【0012】図10−(c)は、これに対するプロセッ
サAのキャッシュの応答を示す。プロセッサAのキャッ
シュは状態を共有状態S (Shared) に変化させ、プロセ
ッサBのキャッシュに、当該データと当該データのコピ
ーを持っていること、すなわち共有状態Sであることを
通知する。プロセッサBのキャッシュはこの情報を受け
取り、データを共有状態Sで格納する。
【0013】図10−(d)は、この状態でプロセッサ
Aがアドレスadr に対してデータを書き込む場合を示
す。この場合、プロセッサAのキャッシュはアドレスad
r の無効化要求を全キャッシュ、この場合はプロセッサ
Bのキャッシュに送る。プロセッサBのキャッシュは、
無効化要求を受け取ると、キャッシュのアドレスadr の
データを消去する。
【0014】その後に、キャッシュAは、アドレスadr
を更新状態M (Modified) に変更し、キャッシュを書き
換える(図10−(e))。
【0015】小規模なシステムでは、共有バスを用いる
ことでこのようなスヌーピングが容易に行なえるため、
一般にスヌープ方式を用いて一貫性管理を行なってい
る。
【0016】一方、ディレクトリ方式では、データの供
給元である共有メモリに、メモリのデータがコピーされ
ている状況をあらわすディレクトリを設け、メモリアク
セスがあった場合は、共有メモリ側でディレクトリを参
照することによりキャッシュの一貫性を管理する。
【0017】図11は、ディレクトリ方式の分散共有メ
モリ型並列計算機の構成例を示し、図12は、ディレク
トリ方式のメモリアクセス動作概要を示す。
【0018】図11において、共有メモリには、メモリ
のブロック単位にディレクトリが付加されている。ディ
レクトリには、状態情報:初期状態N(Not exported)、
他にデータのコピーを出力した状態X(eXported)、他に
出力したデータのコピーが更新された状態M(Modifie
d)、プロセッサ情報:オーナーノードのプロセッサID
(排他的にデータを保持しているプロセッサID) 、あ
るいは共有ノードのプロセッサID (データを共有して
いるプロセッサID) が書き込まれる。
【0019】図12−(a)はプロセッサAのキャッシ
ュがメモリのブロック (アドレスadr)のデータを読み出
す場合を示す。図12−(b)はプロセッサAのキャッ
シュがアドレスadr のデータのコピーを保有した状態を
示し、アドレスadr に対応するディレクトリは状態X
で、ディレクトリのプロセッサ情報にプロセッサAが登
録されている。また、プロセッサAのキャッシュには、
アドレスadr のデータが、共有状態Sとして登録されて
いる。
【0020】図12−(c)は、プロセッサBが同じア
ドレスadr のデータを読み出す場合を示す。この場合、
共有メモリはアドレスadr のディレクトリを参照する。
アドレスadr のディレクトリは状態Xであるため、デー
タと状態XがプロセッサBに送られ、ディレクトリのプ
ロセッサ情報にプロセッサBが追加される。プロセッサ
Bは、キャッシュにアドレスadr のデータを共有状態S
として登録する。(図12−(d))。
【0021】図12−(e)は、この状態でプロセッサ
Aがキャッシュのアドレスadr に対してデータを書き込
む場合を示す。この場合、キャッシュは共有状態Sであ
るため、プロセッサAは無効化要求を共有メモリに送
る。共有メモリは、無効化要求を受け取ると、ディレク
トリを参照する。この場合、ディレクトリは状態Xであ
るため、プロセッサ情報を調べ、そこに登録されている
他のすべてのプロセッサ、この場合はプロセッサBに無
効化要求を送り、アドレスadr を更新状態Mに変更し、
プロセッサ情報にプロセッサAを登録する。プロセッサ
Bは、キャッシュのアドレスadr のデータを消去する。
これらの処理が完了するとプロセッサAはキャッシュを
書き換える(図12−(f))。
【0022】しかし、スヌープ方式は、 1.共有メモリをアクセスするごとに、共有バスを用い
てすべてのノードに要求を通知するため、ノードが増え
るにしたがって共有バス上の通信量が急激に増加する。 2.全プロセッサが共有メモリを監視する必要があり、
複数の処理を同時平行で行なうことができない。という
問題をもっている。
【0023】一方、ディレクトリ方式は、 1.キャッシュが持つデータを管理するコピータグの他
に、共有メモリにディレクトリを持つ必要がある。 2.全メモリブロック分のディレクトリが必要となる。 3.アドレスadr が更新状態Mの場合、このデータにア
クセスするためには、アドレスadr のオーナーノードに
アクセスする必要がある。しかし、オーナーノードにア
クセスするためには、アドレスadr の共有メモリを持つ
ノード、すなわちホームノードのディレクトリを参照
し、オーナーノードを確認しなければならないため、ア
クセスの遅延が大きくなる。という問題を持っている。
【0024】特開平7-105086『バススヌープ制御装置』
では、スヌープ方式とディレクトリ方式を組み合わせた
一貫性管理を行なっている。この例では、スヌープ方式
を使うシステムにディレクトリを導入し、ディレクトリ
を参照することによってキャッシュ状態の監視(スヌー
プ)を省略する。
【0025】しかし、 1.メモリアクセスのたびにディレクトリを参照する必
要があり、このために共有バスを用い、共有バス上の通
信量は変わらない。 2.共有バスを用いるため、独立したメモリアクセスが
同時平行して行なえず、スループットの低下、遅延の増
加をまねく。
【0026】また、特開平9-198309『情報処理システム
及び制御方法及び情報処理装置』では、プロセッサの接
続方式を階層構造とし、第1階層ではスヌープ方式を採
用し、次の階層ではディレクトリ方式を採用している。
【0027】しかし、この方式はノード間にまたがった
メモリアクセスはディレクトリ方式であるため、他のノ
ードにある共有メモリのアクセスに関してはディレクト
リ方式の問題点を解決できない。
【0028】
【発明が解決しようとする課題】本発明の目的は、キャ
ッシュの一貫性管理のための共有バス上の通信量の増加
を抑制し、かつメモリアクセスの遅延も抑制することに
ある。
【0029】
【課題を解決するための手段】分散共有メモリ型並列計
算機においては、共有メモリの特定のアドレスのデータ
が共有状態になる確率が高い。読み出されるデータが共
有状態の場合、ホームノードからの読み出しが可能であ
る。一方、あるアドレスにデータを書き込む場合、当該
アドレスのデータのコピーを持っている全ノードにデー
タを送る、あるいは無効化要求を送る必要がある。
【0030】すなわち、読み出し要求に対してはディレ
クトリ方式のキャッシュ一貫性管理が有効であり、書き
込み要求に対してはスヌープ方式のキャッシュ一貫性管
理が有効である。
【0031】本発明は、上記の分散共有メモリ型並列計
算機の性質、および、共有メモリとキャッシュの関係を
利用し、キャッシュの一貫性管理のための共有バス上の
通信量の増加を抑制し、かつメモリアクセスの遅延を抑
制する。
【0032】本発明は、プロセッサと、キャッシュと、
共有メモリとを有するノードを、相互結合手段により複
数個結合して構成された分散共有メモリ型並列計算機で
あって、各ノードは、キャッシュの管理方式が異なる複
数のキャッシュ一貫性管理手段と、プロセッサからのメ
モリアクセス要求の種類によりキャッシュ一貫性管理手
段を選択する一貫性管理選択手段とを有し、相互結合手
段は、各キャッシュ一貫性管理手段の種類に対応して設
けられていることを特徴とする。
【0033】図3は、本発明によるノードの基本構成を
示し、図4は、該ノードを用いて構成した、本発明の分
散共有メモリ型並列計算機の構成概要を示す。図3にお
いて、ノード1は、プロセッサ2と、キャッシュ3と、
共有メモリ4と、一貫性管理選択手段5と、キャッシュ
の管理方式が異なる複数のキャッシュ一貫性管理手段6
と、各キャッシュ一貫性管理手段の種類に対応して設け
られた相互結合手段7とを有する。図4に示す分散共有
メモリ型並列計算機は、複数個のノード1を、同種のキ
ャッシュ一貫性管理手段6に対応して設けられた相互結
合手段7同士で結合して構成する。
【0034】一貫性管理選択手段5は、プロセッサ2か
らのメモリアクセス要求の種類によりキャッシュ一貫性
管理手段6を選択し、対応する相互結合手段7を用いて
キャッシュ一貫性管理を行う。
【0035】請求項2に記載の発明は、請求項1に記載
の分散共有メモリ型並列計算機であって、スヌープ方式
のキャッシュ一貫性管理手段とディレクトリ方式のキャ
ッシュ一貫性管理手段とを有し、スヌープ方式に対応す
る相互結合手段として共有バスを、ディレクトリ方式に
対応する相互結合手段として1対1ネットワークを用い
ることを特徴とする。
【0036】請求項3に記載の発明は、請求項1または
請求項2に記載の分散共有メモリ型並列計算機であっ
て、メモリのアドレスを登録するアドレス登録テーブル
を有し、一貫性管理選択手段は、共有バスを用いたメモ
リ更新があった場合、メモリの当該アドレスをアドレス
登録テーブルに登録し、プロセッサからのメモリアクセ
ス要求があった場合は、アドレス登録テーブルを参照
し、メモリアクセスのアドレスが、テーブルに登録され
ている場合はスヌープ方式のキャッシュ一貫性管理手段
を、テーブルに登録されていない場合はディレクトリ方
式のキャッシュ一貫性管理手段を用いることを特徴とす
る。
【0037】本発明によれば、メモリアクセス要求の種
類によりキャッシュ一貫性管理手段を選択し、各キャッ
シュ一貫性管理手段に対応する相互結合手段を用いるこ
とで、メモリアクセス要求の種類に適したキャッシュ一
貫性管理が可能となる。
【0038】具体的なキャッシュ一貫性管理手段の選択
方法の例を以下に示す。 例1.メモリアクセス要求の種類(読み出し要求、書き
込み要求等)に応じてキャッシュ一貫性管理手段を選択
する。例えば、読み出し要求はディレクトリ方式、書き
込み要求はスヌープ方式のキャッシュ一貫性管理手段を
選択する。 例2.メモリアドレスを複数のブロックにわけ、各々の
ブロック毎にキャッシュ一貫性管理手段を定める。すな
わち、アクセスするメモリブロックにしたがって、キャ
ッシュ一貫性管理手段を選択する。例えば、固定的なデ
ータを記憶するブロックと、頻繁に更新される可能性の
高いデータを記憶するブロックを分け、固定的なデータ
を記憶するブロックはディレクトリ方式、頻繁に更新さ
れるデータを記憶するブロックは、スヌープ方式のキャ
ッシュ一貫性管理手段を選択する。 例3.プロセッサのメモリアクセス要求に、キャッシュ
一貫性管理手段の指定を付加する。
【0039】これにより、メモリアクセス要求の種類
(読み出し要求と書き込み要求、あるいはアクセスする
メモリアドレス)によって使用する相互結合網を選択
し、相互結合網の負荷を分散することでスループットの
低下を抑制する。
【0040】
【発明の実施の形態】図1は、キャッシュ一貫性管理手
段6として、スヌープ方式キャッシュ一貫性管理手段6
1とディレクトリ方式キャッシュ一貫性管理手段62と
を備えたノード1の実施例1を示す。共有メモリ4は、
ディレクトリ方式62で用いるディレクトリ41を有
し、一貫性管理選択手段5は、スヌープ方式61で用い
るコピータグ51を有する。また、スヌープ方式のキャ
ッシュ一貫性管理手段61に対応する相互結合手段とし
て共有バス71を、ディレクトリ方式のキャッシュ一貫
性管理手段62に対応する相互結合手段として1対1ネ
ットワーク72を有する。
【0041】図2は、図1に示す複数のノード1をマト
リックス状に配置し、各ノードの相互結合手段7のう
ち、共有バス71を共有バス81に接続し、1対1ネッ
トワーク72を、隣接するノード1の1対1ネットワー
ク72と接続して構成した分散共有メモリ型並列計算機
の構成例を示す。
【0042】実施例1において、一貫性管理選択手段5
は、キャッシュ一貫性管理手段を、例えば以下の基準に
したがって選択する。 1.メモリアクセス要求が読み出し要求であった場合
は、ディレクトリ方式のキャッシュ一貫性管理手段62
を選択する。 2.メモリアクセス要求が書き込みの場合はスヌープ方
式のキャッシュ一貫性管理手段61を選択する。
【0043】コピータグ51は、キャッシュ3の状態を
登録するタグであり、キャッシュ3内部のキャッシュタ
グ32のコピーとなっている。ただし、キャッシュタグ
32はM、S、Iの3状態を登録するが、コピータグ5
1は、MとI状態のみを登録するとしてもよい。
【0044】また、従来のディレクトリ方式のディレク
トリは、状態情報とプロセッサ情報とを登録するが、本
実施例のディレクトリ41は、状態情報のみを登録する
としてもよい。
【0045】なお、本実施例では簡単のため、1つのノ
ードは1つのプロセッサと1つのキャッシュで構成する
例を示したが、1つのノードを複数のプロセッサと複数
のキャッシュで構成してもよい。
【0046】以下に、プロセッサのメモリアクセス要求
の種類(読み出し要求、書き込み要求)によって一貫性
管理手段を選択する場合の動作例を示す。
【0047】読み出し要求の場合: 1.キャッシュコントローラ31は、プロセッサ2から
の読み出し要求にしたがってキャッシュタグ32を参照
する。 2.キャッシュタグ32に読み出し要求アドレスadr と
同じアドレスがある場合、キャッシュ3からデータを読
み出しプロセッサ2に返す。 3.キャッシュタグ32に読み出し要求アドレスadr と
同じアドレスがない場合、読み出し要求を一貫性管理選
択手段5に送る。 4.一貫性管理選択手段5は、読み出し要求アドレスか
らホームノードを確認する。 5.ホームノードが自ノードの場合、自ノードの共有メ
モリ4からデータを読み出し、プロセッサ2に返す。 6.ホームノードが他のノードである場合、一貫性管理
選択手段5は、ディレクトリ方式のキャッシュ一貫性管
理手段62を選択し、1対1ネットワーク72を用いて
ホームノードに読み出し要求を発行する。 7.ホームノードでは、読み出し要求を受け取ると、ア
ドレスadr のディレクトリ41を参照する。ディレクト
リのアドレスadr が、状態Xあるいは状態Nであれば、
共有メモリからアドレスadr のデータを読み出し、読み
出したデータを読み出し要求元のノードに返し、ディレ
クトリを状態Xにする。読み出し要求元のノードのキャ
ッシュ3はデータを保存し、キャッシュタグ32に共有
状態Sとして登録する。 8.ディレクトリが状態Mであった場合は、ホームノー
ドの一貫性管理選択手段5は、スヌープ方式のキャッシ
ュ一貫性管理手段61を選択し、共有バス71に読み出
し要求を発行する。 9.読み出し要求を共有バス71から受け取った各ノー
ドの一貫性管理選択手段5は、コピータグ51を参照す
る。 10.読み出し要求アドレスがコピータグ51に更新状
態Mで記録されていれば、一貫性管理選択手段5はキャ
ッシュ3にデータを要求する。 11.キャッシュ3はデータを一貫性管理選択手段5に
送り、キャッシュタグ32を共有状態Sにし、コピータ
グ51から当該ブロックを消去する。 12.一貫性管理選択手段5は、共有バス71にデータ
を送る。 13.ホームノードはデータを受け取り、共有メモリ4
の内容を更新し、ディレクトリ41を状態Xにする。 14.読み出し要求元のノードはデータを受け取り、キ
ャッシュ3に送る。読み出し要求元のキャッシュコント
ローラ31は、データをキャッシュ3に保存し、データ
をプロセッサ2に送り、キャッシュタグ32を共有状態
Sにする。
【0048】書き込み要求の場合: 1.キャッシュコントローラ31は、プロセッサ2から
の書き込み要求にしたがってキャッシュタグ32を参照
する。 2.キャッシュタグ32に、書き込み要求アドレスadr
と同じブロックが更新状態Mである場合、キャッシュ3
の内容を更新し、書き込み動作を終了する。 3.キャッシュタグ32に、書き込み要求アドレスadr
と同じブロックがない場合は排他的読み出し要求、ブロ
ックが存在するが共有状態Sであった場合は無効化要求
を一貫性管理選択手段5に送る。 4.一貫性管理選択手段5は、スヌープ方式のキャッシ
ュ一貫性管理手段61を選択し、共有バス71に排他的
読み出し要求あるいは無効化要求を発行する。 5.排他的読み出し要求あるいは無効化要求を共有バス
71から受け取った各ノードの一貫性管理選択手段5
は、キャッシュ3に無効化要求を送る。各ノードのキャ
ッシュ3は、キャッシュタグ32を参照し、共有状態S
が存在すればそれを無効状態Iにし、キャッシュ3から
データを消去する。 6.キャッシュタグ32に更新状態Mが存在すれば、キ
ャッシュ3のデータを一貫性管理選択手段5に送り、キ
ャッシュタグ32とコピータグ51から当該アドレスを
消去する。 7.キャッシュ3からデータを受け取った一貫性管理選
択手段5は、データを共有バス71に送る。 8.ホームノードは排他的読み出し要求あるいは無効化
要求を受け取ると、ディレクトリ41を状態Mにする。
排他的読み出し要求を受け、かつディレクトリ41が状
態N、または状態Xであった場合は、メモリの内容を共
有バス71に送る。 9.書き込み要求元の一貫性管理選択手段5は、排他的
読み出し要求を発行した場合は共有バス71からのデー
タを受け取った時点で、無効化要求を発行した場合は無
効化要求を発行した時点でキャッシュ3に書き込み処理
完了を通知し、コピータグ51の当該アドレスを更新状
態Mとして登録する。キャッシュコントローラ31は、
キャッシュ3の内容を更新し、キャッシュタグ32を更
新状態Mとし、プロセッサ2に書き込み完了を通知す
る。
【0049】図5は、実施例1において、一貫性管理選
択手段5にアドレス登録テーブル52を設ける、実施例
2を示す。
【0050】一貫性管理選択手段5は、共有バス71上
のメモリアクセス要求を監視し、書き込みのメモリアク
セス要求は、当該アドレスをアドレス登録テーブル52
に登録する。
【0051】一貫性管理選択手段5は、プロセッサ2か
らのメモリアクセス要求にしたがって、アドレス登録テ
ーブル52を参照し、アドレス登録テーブル52に、当
該アドレスが登録されている場合はスヌープ方式のキャ
ッシュ一貫性管理手段61を選択し、当該アドレスが登
録されていない場合はディレクトリ方式のキャッシュ一
貫性管理手段62を選択する。
【0052】実施例2において、プロセッサ2からのメ
モリアクセス要求が読み出し要求である場合の動作を以
下に示す。ここでは、ノード内キャッシュにデータが存
在せず、かつホームノードと要求ノードが異なる場合に
ついて説明する。 1.一貫性管理選択手段5は、アドレス登録テーブル5
2を参照する。 2.読み出し要求アドレスがアドレス登録テーブル52
に登録されていない場合、ディレクトリ方式のキャッシ
ュ一貫性管理手段62を選択し、1対1ネットワーク7
2を用い、ホームノードに読み出し要求を発行する。 3.読み出し要求アドレスがアドレス登録テーブル52
に登録されている場合、スヌープ方式のキャッシュ一貫
性管理手段61を選択し、共有バス71を用い読み出し
要求を発行する。 4.共有バス71から読み出し要求を受け取ると、ホー
ムノードではディレクトリ41を参照し、ホームノード
以外のノードはコピータグ51を参照する。 5.ホームノードのディレクトリが状態N、または状態
Xであれば、ホームノードはメモリのデータを共有バス
71に送り、ディレクトリを状態Xにする。 6.ホームノード以外のノードは、コピータグ51が更
新状態Mであれば、キャッシュからデータを読み出し、
キャッシュタグを共有状態Sにする。同時に、コピータ
グから当該アドレスの情報を消去する。読み出したデー
タを受け取った一貫性管理選択手段5は、データを共有
バス71に送る。 7.他のノードの一貫性管理選択手段5は、共有バス7
1を監視し、ホームノード以外からのデータ転送であれ
ば、自ノードのアドレス登録テーブル52にアドレスを
登録する。 8.読み出し要求元のノードはデータを受け取り、キャ
ッシュ3に送る。読み出し要求元のキャッシュコントロ
ーラ31は、データをキャッシュ3に保存し、データを
プロセッサ2に送り、キャッシュタグ32を共有状態S
にする。
【0053】書き込み要求に対しては実施例1と同様の
動作を行なう。ただし、他のキャッシュに更新状態Mの
データが存在し、それが要求元に転送された場合、各ノ
ードの一貫性管理選択手段はそのアドレスをアドレス登
録テーブルに登録する。
【0054】一般に、一度更新されたデータは、再度更
新される確率が高い。したがって、過去に更新されたデ
ータをホームノードから読み出そうとしても、他のノー
ドに転送される確率が高い。過去に更新されたアドレス
を登録し、当該アドレスに対するメモリアクセスは、ス
ヌープ方式のキャッシュ一貫性管理手段61を選択し、
共有バス71を用いることで、余計な転送をなくすこと
が可能となる。
【0055】図6は、実施例1、あるいは実施例2にお
いて、一貫性管理選択手段5に共有バスの負荷検出機構
53を設けた実施例3を示す。負荷検出機構53は共有
バス71の負荷を検出し、書き込み要求があった場合の
共有バス71の負荷が、あらかじめ定めた基準値以下の
場合はスヌープ方式のキャッシュ一貫性管理手段61を
選択し、あらかじめ定めた基準値を超えた場合はディレ
クトリを方式のキャッシュ一貫性管理手段62を選択す
る。
【0056】なお、負荷があらかじめ定めた基準値以下
の場合は、読み出し要求もスヌープ方式のキャッシュ一
貫性管理手段61を選択してもよい。
【0057】これにより、共有バスの負荷が基準値以下
の場合、すなわち、キャッシュの一貫性管理のための共
有バス上の通信量が少ない場合は共有バスを用い、共有
バスの負荷が基準値を超えた場合は1対1ネットワーク
を用いることで負荷分散し、メモリアクセスの遅延を抑
制する。
【0058】
【発明の効果】以上説明したごとく、本発明によれば、
メモリアクセス要求の種類、および相互結合網の負荷の
状況に応じて、複数のキャッシュ一貫性管理手段のなか
から適切なキャッシュ一貫性管理手段を選択することが
可能となり、高速動作が可能になる。
【図面の簡単な説明】
【図1】 本発明によるノードの実施例1
【図2】 共有バスと1対1ネットワークとを用いた構
成例
【図3】 本発明によるノードの基本構成
【図4】 本発明の分散共有メモリ型並列計算機の構成
概要
【図5】 アドレス登録テーブルを設けた実施例2
【図6】 バス負荷検出機構を設けた実施例3
【図7】 分散共有メモリ型並列計算機の例
【図8】 分散共有メモリ型並列計算機のメモリアクセ
ス動作概要
【図9】 スヌープ方式の分散共有メモリ型並列計算機
の構成例
【図10】 スヌープ方式のメモリアクセス動作概要
【図11】 ディレクトリ方式の分散共有メモリ型並列
計算機の構成例
【図12】 ディレクトリ方式のメモリアクセス動作概
【符号の説明】
1 ノード 2 プロセッサ 3 キャッシュ 4 共有メモリ 5 一貫性管理選択手段 6 キャッシュ一貫性管理手段 7 相互結合手段 8 相互結合網 31 キャッシュコントローラ 32 キャッシュタグ 41 ディレクトリ 51 コピータグ 52 アドレス登録テーブル 53 バス負荷検出機構 61 スヌープ方式のキャッシュ一貫性管理手段 62 ディレクトリ方式のキャッシュ一貫性管理手段 71 共有バス 72 1対1ネットワーク
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/167 G06F 15/167 B

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと、キャッシュと、共有メモ
    リとを有するノードを、相互結合手段により複数個結合
    して構成された分散共有メモリ型並列計算機であって、
    各ノードは、キャッシュの管理方式が異なる複数のキャ
    ッシュ一貫性管理手段と、プロセッサからのメモリアク
    セス要求の種類によりキャッシュ一貫性管理手段を選択
    する一貫性管理選択手段とを有し、相互結合手段は、各
    キャッシュ一貫性管理手段の種類に対応して設けられて
    いることを特徴とする分散共有メモリ型並列計算機。
  2. 【請求項2】 請求項1に記載の分散共有メモリ型並列
    計算機であって、スヌープ方式のキャッシュ一貫性管理
    手段とディレクトリ方式のキャッシュ一貫性管理手段と
    を有し、スヌープ方式に対応する相互結合手段として共
    有バスを、ディレクトリ方式に対応する相互結合手段と
    して1対1ネットワークを用いることを特徴とする分散
    共有メモリ型並列計算機。
  3. 【請求項3】 請求項1または請求項2に記載の分散共
    有メモリ型並列計算機であって、メモリのアドレスを登
    録するアドレス登録テーブルを有し、一貫性管理選択手
    段は、共有バスを利用したメモリ更新があった場合、メ
    モリの当該アドレスをアドレス登録テーブルに登録し、 プロセッサからのメモリアクセス要求があった場合は、
    アドレス登録テーブルを参照し、 メモリアクセスのアドレスが、 テーブルに登録されている場合はスヌープ方式のキャッ
    シュ一貫性管理手段を、 テーブルに登録されていない場合はディレクトリ方式の
    キャッシュ一貫性管理手段を用いることを特徴とする分
    散共有メモリ型並列計算機。
JP2000205649A 2000-07-06 2000-07-06 分散共有メモリ型並列計算機 Pending JP2002024198A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000205649A JP2002024198A (ja) 2000-07-06 2000-07-06 分散共有メモリ型並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000205649A JP2002024198A (ja) 2000-07-06 2000-07-06 分散共有メモリ型並列計算機

Publications (1)

Publication Number Publication Date
JP2002024198A true JP2002024198A (ja) 2002-01-25

Family

ID=18702700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000205649A Pending JP2002024198A (ja) 2000-07-06 2000-07-06 分散共有メモリ型並列計算機

Country Status (1)

Country Link
JP (1) JP2002024198A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048406A (ja) * 2004-08-05 2006-02-16 Fujitsu Ltd メモリシステム制御装置およびメモリシステム制御方法
JP2006286002A (ja) * 2005-04-04 2006-10-19 Sony Computer Entertainment Inc 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置
JP2008521114A (ja) * 2004-11-24 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ローカルメモリデータのコヒーレントなキャッシュ処理
JP2009116398A (ja) * 2007-11-01 2009-05-28 Nec Computertechno Ltd ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
JP2010026814A (ja) * 2008-07-18 2010-02-04 Fujitsu Ltd 資源転送システム、資源転送方法、情報処理装置及びコンピュータプログラム
JP2014149859A (ja) * 2009-12-30 2014-08-21 Emprie Technology Development LLC マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048406A (ja) * 2004-08-05 2006-02-16 Fujitsu Ltd メモリシステム制御装置およびメモリシステム制御方法
CN100338587C (zh) * 2004-08-05 2007-09-19 富士通株式会社 用于控制存储器***的方法和设备
US7783840B2 (en) 2004-08-05 2010-08-24 Fujitsu Limited Method and apparatus for controlling memory system
JP4673585B2 (ja) * 2004-08-05 2011-04-20 富士通株式会社 メモリシステム制御装置およびメモリシステム制御方法
JP2008521114A (ja) * 2004-11-24 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ローカルメモリデータのコヒーレントなキャッシュ処理
JP2006286002A (ja) * 2005-04-04 2006-10-19 Sony Computer Entertainment Inc 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置
US7818507B2 (en) 2005-04-04 2010-10-19 Sony Computer Entertainment Inc. Methods and apparatus for facilitating coherency management in distributed multi-processor system
JP4583327B2 (ja) * 2005-04-04 2010-11-17 株式会社ソニー・コンピュータエンタテインメント 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置
JP2009116398A (ja) * 2007-11-01 2009-05-28 Nec Computertechno Ltd ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
JP2010026814A (ja) * 2008-07-18 2010-02-04 Fujitsu Ltd 資源転送システム、資源転送方法、情報処理装置及びコンピュータプログラム
JP2014149859A (ja) * 2009-12-30 2014-08-21 Emprie Technology Development LLC マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス

Similar Documents

Publication Publication Date Title
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
JP4848771B2 (ja) キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
US7003632B2 (en) Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
KR100318104B1 (ko) 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템
KR100548908B1 (ko) 중앙 집중형 스누프 필터링 방법 및 장치
KR100330935B1 (ko) 최적화된 캐시 동작을 독립적으로 구현하는 캐시 일관성 프로토콜
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
JP2002163149A (ja) マルチプロセッサシステムのキャッシュコヒーレンスプロトコル
JP2013058225A (ja) マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
GB2439650A (en) Snoop filter that maintains data coherency information for caches in a multi-processor system by storing the exclusive ownership state of the data
US6922755B1 (en) Directory tree multinode computer system
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US7143245B2 (en) System and method for read migratory optimization in a cache coherency protocol
US6336169B1 (en) Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus
US5978886A (en) Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache
JP2002024198A (ja) 分散共有メモリ型並列計算機
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing
US6484241B2 (en) Multiprocessor computer system with sectored cache line system bus protocol mechanism
US20040068613A1 (en) Retry-based late race resolution mechanism for a computer system
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091006