JPH11102321A - 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式 - Google Patents

分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式

Info

Publication number
JPH11102321A
JPH11102321A JP9279556A JP27955697A JPH11102321A JP H11102321 A JPH11102321 A JP H11102321A JP 9279556 A JP9279556 A JP 9279556A JP 27955697 A JP27955697 A JP 27955697A JP H11102321 A JPH11102321 A JP H11102321A
Authority
JP
Japan
Prior art keywords
cache
memory
block
information
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
JP9279556A
Other languages
English (en)
Inventor
Yoshinori Okura
義典 大倉
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP9279556A priority Critical patent/JPH11102321A/ja
Publication of JPH11102321A publication Critical patent/JPH11102321A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】ディレクトリを用いてキャッシュのコヒーレン
シを制御する分散共有メモリ型並列計算機においてロー
カルメモリからのブロックロード時間の削減を図る方式
の提供。 【解決手段】演算処理装置、キャッシュメモリ、ローカ
ルメモリ部からなるプロセッサエレメント#1〜#64、
ネットワークから構成され、各キャッシュメモリはデー
タアレイ、アドレスアレイ、キャッシュメモリディレク
トリ、アクセス頻度管理手段から構成され各ローカルメ
モリ部はローカルメモリとローカルメモリディレクトリ
とディレクトリ制御手段から構成され、各キャッシュブ
ロック毎に演算処理装置のアクセス頻度を計測し、アク
セス頻度管理手段からディレクトリ管理手段に通知しキ
ャッシュコヒーレンシ制御情報を無効化方式から更新方
式に変更し、演算処理装置のローカルメモリからのブロ
ックロード時間を削減する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
のコヒーレンシ制御方式に関し、特に、演算処理装置と
ローカルメモリを有するプロセッサエレメントがネット
ワークで結合されている分散共有メモリ型並列計算機の
キャッシュコヒーレンシ制御方式に関する。
【0002】
【従来の技術】従来、数十、数百のプロセッサエレメン
トからなる分散共有メモリ型並列計算機のキャッシュコ
ヒーレンシを維持する方法として、プロセッサエレメン
ト内の演算処理装置の共有メモリ更新に対して、コピー
が保持されているプロセッサエレメント内のキャッシュ
ブロックを無効化することにより一致をとる無効化方
式、あるいはキャッシュブロックを更新することにより
一致をとる更新方式のいずれかの方式を採用していた。
【0003】図9乃至図11を参照して、演算処理装置
とキャッシュメモリとローカルメモリからなるプロセッ
サエレメントA〜Dと、ネットワークから構成された分
散共有メモリ型並列計算機の、それぞれ更新方式及び無
効化方式のロード時の動作、無効化方式のストア時の動
作、更新方式のストア時の動作を示す。キャッシュヒッ
トの動作は、更新方式、無効化方式とも同一動作である
ため省略する。
【0004】図9は、プロセッサエレメントAの演算処
理装置AがプロセッサエレメントBにローカルメモリB
に物理的に割り当てられた共有メモリ上のデータをロー
ドしようとした際に、キャッシュミスした場合の動作を
模式的に示したものである。処理手順は次のようにな
る。
【0005】キャッシュミスするとローカルメモリB
に対して読み出し要求が発行される。読み出し要求を受
けたローカルメモリBは、ローカルメモリディレクトリ
Bを検索し、有効ビット、最新データ保持プロセッサ番
号情報を調べ、最新のデータがローカルメモリBに存在
するか否かをチェックする。
【0006】′最新データが存在すれば当該データを
要求プロセッサエレメントAのキャッシュメモリAに送
信する。
【0007】存在しなければ、ローカルメモリディレ
クトリB内の最新データ保持プロセッサ番号情報により
最新のデータを保持するプロセッサエレメント(ここで
はプロセッサエレメントDとする)のキャッシュメモリ
Dに対して、メモリ書き戻し要求を発行する。
【0008】キャッシュメモリDからプロセッサエレ
メントBのローカルメモリBへデータの書き戻しを行わ
せる。
【0009】要求したプロセッサエレメントAのキャ
ッシュメモリAにデータを送信することで処理は終了す
る。
【0010】図10、および図11は、演算処理装置A
が物理的にローカルメモリBに割り当てられた共有メモ
リ上のアドレスにストアする場合、キャッシュメモリ
C、及びDにも登録されているコピーデータを無効化す
る方式、及び更新する方式の動作を示したものである。
【0011】図10の無効化方式の処理手順は、次のよ
うになる。
【0012】プロセッサエレメントAの演算処理装置
AはキャッシュメモリAでヒットした場合にはキャッシ
ュメモリAを更新し、ヒットしなかった場合にはそのま
まローカルメモリBに対してキャッシュ一致処理を発行
する。
【0013】キャッシュ一致処理要求を受けたローカ
ルメモリBは、ローカルメモリディレクトリBのコピー
保持プロセッサ番号情報を検索し、コピーを保持するプ
ロセッサエレメントC、プロセッサエレメントDのキャ
ッシュメモリC、Dに対して無効化要求を発行する。無
効化要求を受けたキャッシュメモリC、Dのブロックコ
ピーは無効化される。
【0014】プロセッサエレメントBのローカルメモ
リBはキャッシュメモリC、Dに対する無効化処理が完
了すると、処理完了メッセージを受信する。
【0015】処理完了メッセージを受け、ローカルメ
モリBはプロセッサエレメントAの演算処理装置Aに対
して処理完了を通知する。
【0016】キャッシュメモリAでヒットしなかった
場合は、ローカルメモリBからキャッシュメモリAにブ
ロックデータを登録し、ストアデータで更新する。
【0017】図11の更新方式の処理手順は次のように
なる。
【0018】プロセッサエレメントAの演算処理装置
AはキャッシュメモリAでヒットした場合にはキャッシ
ュメモリAを更新し、ヒットしなかった場合にはそのま
まローカルメモリBに対してキャッシュ一致処理要求と
ともにデータを送る。
【0019】キャッシュ一致処理要求を受けたローカ
ルメモリBは、ローカルメモリディレクトリBのコピー
保持プロセッサ番号情報を検索しコピーを保持するプロ
セッサエレメントC、及びプロセッサエレメントDのキ
ャッシュメモリC、Dに対して更新要求を発行する。更
新要求を受けたキャッシュメモリC、Dのブロックは更
新が行われる。
【0020】ローカルメモリBはキャッシュメモリ
C、Dに対する更新処理が完了すると更新完了メッセー
ジを受信する。
【0021】更新完了メッセージを受け、ローカルメ
モリBはプロセッサエレメントAの演算処理装置Aに対
して更新完了を通知する。
【0022】キャッシュメモリAでヒットしなかった
場合は、ローカルメモリBからキャッシュメモリAにブ
ロックデータを登録し、ストアデータで更新する。
【0023】
【発明が解決しようとする課題】上記した従来の分散共
有メモリ型並列計算機においては、キャッシュコヒーレ
ンシを制御する方式として無効化方式を採用した場合、
複数の演算処理装置が頻繁に読み書きを行うブロックを
共有した場合に、各々の演算処理装置が同一ブロックの
データの書き込み、読み出しを行うと、キャッシュブロ
ックは各々のプロセッサエレメントのキャッシュ上を互
いに無効化されながら行き来し、演算処理装置のメモリ
アクセス時間が大きいものとなる。
【0024】例えば無効化方式を採用した分散共有メモ
リ型並列計算機において、プロセッサエレメントA、B
のキャッシュメモリに共有メモリ上の同一ブロックが登
録されていたとし、共有メモリ上のブロックは、物理的
にローカルメモリCに割り当てられているとする。ここ
で、演算処理装置Aが共有しているキャッシュブロック
の更新を行うと、同じブロックを共有しているローカル
メモリCのブロック、及びキャッシュメモリBのブロッ
クは無効化される。
【0025】次にプロセッサエレメントBの演算処理装
置Bが同一ブロックの読み出しを行おうとすると、キャ
ッシュメモリBには当該ブロックの最新データが存在し
ないため、ローカルメモリCにロード要求を発行し、ロ
ーカルメモリCは、最新ブロックを保持するプロセッサ
エレメントAのキャッシュメモリAに対して書き戻しを
行わせ、ローカルメモリCを更新したのち、ブロックを
キャッシュメモリBにロードする。
【0026】更にまた、演算処理装置Bが共有している
キャッシュブロックの更新を行うと、同様に同じブロッ
クを共有しているローカルメモリCのブロック、及びキ
ャッシュメモリAのブロックが無効化される。
【0027】その後、プロセッサエレメントAの演算処
理装置Aが同一ブロックの読み出しを行うとすると、ロ
ーカルメモリCにロード要求を発行し、最新ブロックを
保持するプロセッサエレメントBのキャッシュメモリB
に対して書き戻しを要求し、ローカルメモリCを更新
し、ブロックをキャッシュメモリAに送信する。
【0028】無効化方式を採用した分散共有メモリ型並
列計算機では、2つのプロセッサエレメントの演算処理
装置が、同一ブロックの書き込みあるいは読み出しを行
うと、以上のような効率の悪い操作がその度に行われ、
ブロックは両方のキャッシュ上を互いに無効化されなが
ら行き来し、各演算処理装置メモリアクセス時間が大き
なものとなる。
【0029】一方、従来の分散共有メモリ型並列計算機
において、キャッシュコヒーレンシを制御する方式が無
効化方式から更新方式に変わったとすると、プロセッサ
エレメントAで動いていたプロセスがプロセッサエレメ
ントBに移動した場合、プロセッサエレメントAではこ
のキャッシュメモリに登録されているプロセスの変数を
使用しないにもかかわらず、更新方式では、無効化され
ることがないため、その変数が入ったブロックが追い出
されるまで有効である。このため、プロセッサエレメン
トBがそのプロセスの変数に書き込むと、必要もないの
にネットワーク、共有メモリを介してプロセッサエレメ
ントAのもう使わないキャッシュブロックのデータを更
新しなければならない。
【0030】つまり、更新方式の場合は、ブロックの書
き込みが行われる度に、意味のないデータの更新を行わ
なければならない場合が生じ、ネットワークトラフィッ
クを増加させることになる。
【0031】そして、アプリケーションごとに、キャッ
シュコヒーレンシの制御方式の違いによるメモリアクセ
スレイテンシ、ネットワークトラフィックの状況が異な
るため、いずれか一方の方式では、種々のアプリケーシ
ョンに対応した充分な性能が得られない、という問題が
あった。
【0032】したがって、本発明は、上記問題点に鑑み
てなされたものであって、その目的は、ディレクトリを
用いてキャッシュのコヒーレンシを制御する分散共有メ
モリ型並列計算機において、キャッシュブロック毎に演
算処理装置からのアクセス状況によってキャッシュのコ
ヒーレンシ制御を無効化方式から、更新方式に変更する
ことにより、ローカルメモリからのブロックロード時間
の削減を図るキャッシュコヒーレンシ制御方式を提供す
ることにある。
【0033】
【課題を解決するための手段】前記目的を達成するため
に、本発明は、各々が演算処理装置、キャッシュメモ
リ、ローカルメモリ部を含む複数個のプロセッサエレメ
ントがネットワークで結合され、前記複数個のプロセッ
サエレメント内の前記各演算処理装置から、前記複数個
のプロセッサエレメント内すべての前記ローカルメモリ
が同一のアドレス空間を有する共有メモリとしてアクセ
ス可能な分散共有メモリ型並列計算機システムにおい
て、前記キャッシュメモリが、データアレイ、アドレス
アレイ、登録キャッシュブロックのアクセス情報を格納
するキャッシュメモリディレクトリ、アクセス頻度管理
手段を含み、前記ローカルメモリ部が、キャッシュコヒ
ーレンシ制御情報を格納するディレクトリとディレクト
リ制御手段を含み、前記各キャッシュブロック毎に演算
処理装置のアクセス頻度を計測し、アクセス頻度が所定
値に達した時前記アクセス頻度管理手段から前記ディレ
クトリ制御手段に通知し、キャッシュコヒーレンシ制御
情報を無効化方式から更新方式に変更し、演算処理装置
のローカルメモリからのブロックロード時間を削減す
る、ことを特徴とする。
【0034】本発明は、好ましくは、各々が演算処理装
置、キャッシュメモリ、ローカルメモリで構成された複
数個のプロセッサエレメントがネットワークで結合さ
れ、該複数個のプロセッサエレメント内の各演算処理装
置から前記複数個のプロセッサエレメント内すべてのロ
ーカルメモリが同一のアドレス空間を有する共有メモリ
としてアクセス可能な分散共有メモリ型並列計算機シス
テムにおいて、前記各プロセッサエレメントは、前記共
有メモリ更新を前記キャッシュメモリ更新の度には行わ
ず、キャッシュブロックが追い出される場合に更新する
ライトバック方式のキャッシュメモリ制御手段と、前記
キャッシュメモリに登録されるブロック単位ごとに、前
記複数個のプロセッサエレメント内のいずれの前記キャ
ッシュメモリ上にコピーブロックが登録されているかを
示すコピー保持プロセッサ番号情報と前記共有メモリ更
新時に前記複数個のプロセッサエレメント内の前記キャ
ッシュメモリに登録されているコピーブロックを無効化
するか更新するかのキャッシュコヒーレンシ制御方式情
報が格納されたローカルメモリディレクトリと、前記演
算処理装置が前記共有メモリを更新する際、前記ローカ
ルメモリディレクトリに格納されたキャッシュコヒーレ
ンシ制御方式情報により、コピーを保持する前記各プロ
セッサエレメント内のキャッシュブロックを無効化もし
くは更新する手段と、前記キャッシュメモリの登録エン
トリごとに、登録キャッシュブロックが有効であるか否
かを示す有効性情報と前記演算処理装置からの登録キャ
ッシュブロックアクセス頻度情報が格納されたキャッシ
ュディレクトリと、前記キャッシュブロックアクセス頻
度情報を管理し、アクセス頻度があらかじめ定められた
状態に達したことを検出するアクセス頻度情報管理手段
と、該アクセス頻度情報管理手段の検出情報を受け、前
記ローカルメモリディレクトリ内の前記キャッシュコヒ
ーレンシ制御方式情報を書き換え、他プロセッサエレメ
ント内演算処理装置からの前記ローカルメモリ更新に対
して、書き換えられた前記キャッシュコヒーレンシ制御
情報をもとに、キャッシュコヒーレンシ制御を行い、前
記プロセッサエレメント内キャッシュメモリのキャッシ
ュブロックが前記共有メモリに書き戻される時に前記ロ
ーカルメモリディレクトリ内のキャッシュコヒーレンシ
制御方式情報を初期状態に書き戻すディレクトリ制御手
段を有することを特徴とする。
【0035】
【発明の実施の形態】本発明の実施の形態について以下
に説明する。本発明は、その好ましい実施の形態におい
て、各々が演算処理装置(図1の1〜64)、キャッシ
ュメモリ(図1の101〜164)、及びローカルメモ
リ部(図1の201〜264)を含む複数個のプロセッ
サエレメント(図1のプロセッサエレメント#1〜#6
4)がネットワーク(図1の90)で結合され、該複数
個のプロセッサエレメント内の各演算処理装置から複数
個のプロセッサエレメント内すべてのローカルメモリが
同一のアドレス空間を有する共有メモリとしてアクセス
可能な分散共有メモリ型並列計算機システムとして構成
されている。
【0036】各プロセッサエレメントは、共有メモリ更
新をキャッシュメモリ更新の度には行わず、キャッシュ
ブロックが追い出される場合に更新するライトバック方
式のキャッシュメモリ制御手段と、キャッシュメモリに
登録されるブロック単位ごとに、前記複数個のプロセッ
サエレメント内のいずれの前記キャッシュメモリ上にコ
ピーブロックが登録されているかを示すコピー保持プロ
セッサ番号情報と、前記共有メモリ更新時に前記複数個
のプロセッサエレメント内の前記キャッシュメモリに登
録されているコピーブロックを無効化するか更新するか
のキャッシュコヒーレンシ制御方式情報とが格納された
ローカルメモリディレクトリ(図1の801〜864)
と、演算処理装置が共有メモリを更新する際、ローカル
メモリディレクトリに格納されたキャッシュコヒーレン
シ制御方式情報により、コピーを保持する前記各プロセ
ッサエレメント内のキャッシュブロックを無効化もしく
は更新する手段と、キャッシュメモリの登録エントリご
とに、登録キャッシュブロックが有効であるか否かを示
す有効性情報と演算処理装置からの登録キャッシュブロ
ックアクセス頻度情報が格納されたキャッシュディレク
トリ(図1の401〜464)と、キャッシュブロック
アクセス頻度情報を管理し、アクセス頻度があらかじめ
定められた状態に達したことを検出するアクセス頻度情
報管理手段(図1の301〜364)と、該アクセス頻
度情報管理手段の検出情報を受け、前記ローカルメモリ
ディレクトリ内の前記キャッシュコヒーレンシ制御方式
情報を書き換え、他プロセッサエレメント内演算処理装
置からの前記ローカルメモリ更新に対して、書き換えら
れた前記キャッシュコヒーレンシ制御情報をもとに、キ
ャッシュコヒーレンシ制御を行い、前記プロセッサエレ
メント内キャッシュメモリのキャッシュブロックが前記
共有メモリに書き戻される時に前記ローカルメモリディ
レクトリ内のキャッシュコヒーレンシ制御方式情報を初
期状態に書き戻すディレクトリ制御手段(図1の701
〜764)を備える。
【0037】
【実施例】次に、上記した本発明の実施の形態について
更に詳細に説明すべく、本発明の実施例について図面を
参照して詳細に説明する。
【0038】図1は、本発明の一実施例の構成を示す図
である。図1を参照すると、本発明の一実施例における
分散共有メモリ型並列計算機は、演算処理装置1〜6
4、キャッシュメモリ101〜164、ローカルメモリ
部201〜264からなるプロセッサエレメント#1〜
#64がネットワーク90で結合され、各プロセッサエ
レメントを結合するネットワーク90は、三次元トーラ
ス網で構成される。各ローカルメモリは、他プロセッサ
エレメント内のローカルメモリも自プロセッサエレメン
ト内ローカルメモリと同一のアドレス空間としてアクセ
スできる共有アドレス空間として管理されている。共有
アドレス空間は連続な64空間に分散され、各プロセッ
サエレメント内のローカルメモリ902〜964に固定
的に割り当てられている。ローカルメモリ902〜96
4の容量はそれぞれ128MB(メガバイト)であり、
トータル8GB(ギガバイト)の容量を有する。共有ア
ドレス空間として管理されたメモリを「共有メモリ」と
呼ぶ。
【0039】各プロセッサエレメント#1〜#64は共
有アドレス空間上の写しを自プロセッサエレメント内の
キャッシュメモリ101〜164に登録することができ
る。キャッシュのブロックサイズは32B(バイト)で
ある。キャッシュ内ブロックの共有メモリへの一致方法
は、書き換えられたブロックが追い出される時にブロッ
ク単位で、共有メモリに書き戻すライトバック方式をと
る。キャッシュブロックの追い出し制御方式は、LRU
(Least Recently Used)方式を用いる。
【0040】各プロセッサエレメント#1〜#64内の
ローカルメモリ部201〜264は、それぞれ、ローカ
ルメモリディレクトリ801〜864と、ローカルメモ
リディレクトリの情報を制御するディレクトリ制御手段
701〜764と、を備えて構成される。
【0041】ローカルメモリディレクトリ801〜86
4の各エントリには、32Bのブロック毎のブロック有
効ビット、ブロックコピーをキャッシュメモリに保持し
ているプロセッサエレメント番号情報、及び、ブロック
コピーを保持するプロセッサエレメント内のキャッシュ
メモリを無効化するか更新するかを示すキャッシュコヒ
ーレンシの制御情報が格納されている。
【0042】キャッシュメモリ101〜164は、デー
タアレイ601〜664と、アドレスアレイ501〜5
64と、キャッシュメモリディレクトリ401〜464
と、キャッシュブロックアクセス頻度を初期値“0”か
らカウントし3回に達したことを検出してディレクトリ
制御手段701〜764に伝えるアクセス頻度管理手段
301〜364と、を備えて構成されている。
【0043】図2は、本発明の一実施例のキャッシュメ
モリディレクトリ401〜464の1エントリを示した
ものであり、各キャッシュブロックごとのブロックアク
セス頻度情報2ビット、キャッシュブロックの有効ビッ
トとして1ビット、共有メモリと内容が一致しているか
を示す共有メモリ一致情報として1ビットが格納されて
いる。この有効ビットと、共有メモリ一致ビットとを併
せて「ローカルメモリブロック状態情報」と呼ぶ。
【0044】ローカルメモリブロック状態情報は次のよ
うになる。 00:無効(Invalid)。 11:現在の内容が共有メモリと一致する(Share)。 10:共有メモリと一致しない(Dirty)。
【0045】図3は、本発明の一実施例におけるローカ
ルメモリディレクトリ801〜864の1エントリを示
したものである。図3を参照すると、キャッシュメモリ
へ登録するブロック単位でディレクトリの内容の有効性
を示す有効ビット1ビット、ブロック単位でのキャッシ
ュコヒーレンシ制御方式を決定するキャッシュコヒーレ
ンシ制御情報1ビット、プロセッサエレメント番号情報
64ビットから構成されている。キャッシュコヒーレン
シ制御情報は、無効化方式を“0”、更新方式を“1”
とし、初期値は無効化方式の“0”が格納されている。
プロセッサエレメント番号情報はプロセッサエレメント
数分64ビットを有し、対応するローカルメモリのブロ
ックが有効である時は、コピーを保持しているプロセッ
サエレメント番号に対応するビットを“1”、ローカル
メモリのブロックが無効である時は最新データを保持す
るプロセッサエレメント番号に対応するビットを“1”
とする。
【0046】図4は、本発明の一実施例において、いず
れのプロセッサエレメント内のキャッシュにも登録され
ていない共有メモリ上のデータで物理的にローカルメモ
リ901に割り当てられているデータを読み出す時の動
作を示した図である。これは無効化方式でも更新方式で
も動作は同じである。
【0047】ローカルメモリディレクトリ801には、
有効ビット“1”、プロセッサエレメント番号情報はコ
ピー保持プロセッサ番号情報として、64ビット、全て
“0”である。
【0048】次にプロセッサエレメント#1のローカル
メモリ801上のデータを演算処理装置1、演算処理装
置2、演算処理装置3、演算処理装置64が読み出す。
この場合、そのデータを含むブロックは、それぞれプロ
セッサエレメント#1、プロセッサエレメント#2、プ
ロセッサエレメント#3、プロセッサエレメント#64
のキャッシュメモリ101、102、103、164に
送られ、ローカルメモリディレクトリ801の値は、有
効ビットが“1”、コヒーレンシ制御情報が“0”で、
コピー保持プロセッサ番号情報は、プロセッサエレメン
ト#1、#2、#3、#64に対応するビットが
“1”、残り60ビットは“0”となる。
【0049】また、プロセッサエレメント#1、#2、
#3、#64のディレクトリ401、402、403、
464の対応するエントリの内容は“11”で、“現在
の内容が共有メモリと一致する状態(Share)”とな
る。
【0050】図5は、図4の最終状態からプロセッサエ
レメント#2内の演算処理装置2がプロセッサエレメン
ト#1、2、3、64で共有しているブロックを更新す
る時の、キャッシュコヒーレンシの制御情報が無効化方
式時の動作を示したものである。処理の手順は次のよう
になる。
【0051】演算処理装置2からプロセッサエレメン
ト#1のローカルメモリ部201に対して共有ブロック
への書き込み要求が送られる。
【0052】ローカルメモリディレクトリ801の対
応するエントリの値が、有効ビット“1”、キャッシュ
コヒーレンシ制御情報が“0”、コピー保持プロセッサ
番号情報はプロセッサエレメント#1、#2、#3、#
64に対応するビットが“1”であるため、ディレクト
リ制御手段701はプロセッサエレメント#1、#3、
#64のキャッシュメモリ101、103、164のブ
ロックコピーを無効化する必要があると判断し、無効化
要求を送出する。無効化メッセージをプロセッサエレメ
ント#1、#3、#64に送り、各キャッシュメモリ4
01、403、464内のブロック状態情報が“00”
つまり、無効化される。
【0053】無効化が完了すると無効化完了のメッセ
ージがプロセッサエレメント#1に送られる。
【0054】ローカルメモリディレクトリ801の値
を、有効ビットは“0”、コピー保持プロセッサ番号情
報(この場合は最新データ保持プロセッサ番号)のプロ
セッサエレメント#2に対応するビットを“1”とし、
残りのビットは“0”とし、処理終了をプロセッサエレ
メント#2に通知する。
【0055】以降、演算処理装置#2は、他のプロセッ
サにメッセージを送ることなしに、そのブロックを更新
することができる。
【0056】図6は、図4の最終状態からプロセッサエ
レメント#2内の演算処理装置2がプロセッサ#1、
2、3、64で共有しているブロックを更新する時のキ
ャッシュコヒーレンシの制御情報が更新方式の動作を示
したものである。処理の手順は次のようになる。
【0057】演算処理装置2が、キャッシュメモリ1
02にデータを書き込むと共に、共有メモリ上の書き込
みアドレスが物理的に割り当てられているプロセッサエ
レメント#1のローカルメモリ901にブロック更新要
求とともに書き込みデータを送る。
【0058】プロセッサエレメント#1のローカルメ
モリ部201のディレクトリ制御手段701はローカル
メモリディレクトリ801のコピー保持プロセッサ番号
情報を検索し、コピーを所有するプロセッサエレメント
#1、#3、#64に更新データを送る。
【0059】プロセッサエレメント#1、#3、#6
4はキャッシュメモリ101、103、164の更新を
行い、プロセッサエレメント#1、3、64は処理完了
のメッセージをプロセッサエレメント#1に送る。
【0060】処理終了をプロセッサエレメント#2に
通知する。
【0061】以降、演算処理装置2は、他のプロセッサ
にメッセージを送ることなしに、当該ブロックの更新を
行うことができる。
【0062】図7は、図5の最終状態、つまりプロセッ
サエレメント#2のキャッシュメモリ102上にのみ最
新データが存在する状態から、演算処理装置3が同一デ
ータの読み出し要求を出した場合の無効化動作を示した
図である。処理の手順は次のようになる。
【0063】プロセッサエレメント#3のキャッシュ
メモリ103上のアクセスアドレスに対応したブロック
が既に無効化されているため、演算処理装置3はアクセ
スアドレスが物理的に割り当てられているプロセッサエ
レメント#1のローカルメモリ901に対して当該デー
タを含むブロックの読み出し要求を送る。
【0064】ローカルメモリディレクトリ801の有
効ビットは“0”で「他のキャッシュに共有メモリと内
容が一致しないコピーが存在する」であるため、最新デ
ータ保持プロセッサ番号を示すプロセッサエレメント番
号情報を検索し最新のブロックを持つプロセッサエレメ
ント#2を見つけて、これに対して書き戻し要求メッセ
ージをプロセッサエレメント#2に送る。
【0065】プロセッサエレメント#2はキャッシュ
メモリ102から当該ブロックをプロセッサエレメント
#1のローカルメモリ901に送信する。
【0066】ローカルメモリ901はブロックを書き
戻し、読み出しを要求したプロセッサエレメント#3に
ブロックを送る。この時、プロセッサエレメント#1の
ローカルメモリディレクトリ801の値は、有効ビット
が“1”、コピー保持プロセッサ番号を示すプロセッサ
エレメント番号情報は、プロセッサエレメント#2、#
3に対応するビットが“1”となり、他のキャッシュに
共有メモリと内容が一致するコピーが存在する”状態と
なる。
【0067】図7では、無効化方式として説明したが、
本実施例では、プロセッサエレメント間のブロックの送
受信は必ず共有メモリを介して行い、キャッシュ間のデ
ータ送受信は行わないとしているため更新方式であれ
ば、プロセッサエレメント#3のキャッシュメモリ10
3でヒットしてしまう。
【0068】図8は、演算処理装置#2のキャッシュブ
ロックのアクセス頻度により、ローカルメモリディレク
トリ202内コヒーレンシ制御情報が無効化方式から更
新方式に変化する時の動作を示したものである。例とし
て、プロセスがプロセッサエレメント#2とプロセッサ
エレメント#3で動作し、物理的にローカルメモリ90
1に割り当てられているデータをキャッシュメモリ10
2,103にロードし、共有している状態で演算処理装
置2が当該ブロックを連続3回更新するとする。ローカ
ルメモリ部201のローカルメモリディレクトリ801
のキャッシュコヒーレンシ情報の初期値は“0”で無効
化方式を示し、キャッシュディレクトリ402、403
のアクセス頻度情報も“0”になっているとする。処理
の手順は次のようになる。
【0069】演算処理装置2により同一キャッシュブ
ロックへの書き込みが3回行われると、プロセッサエレ
メント#2のキャッシュディレクトリ402のブロック
アクセス頻度情報が値“3”を示す。
【0070】キャッシュメモリ102のアクセス頻度
管理手段302は、ローカルメモリ部201のディレク
トリ制御手段701にローカルメモリディレクトリ80
1のキャッシュコヒーレンシ制御情報の変更要求を送出
する。
【0071】ディレクトリ制御手段701はローカル
メモリディレクトリ801のコヒーレンシ制御情報を
“0”(無効化方式)から“1”(更新方式)に変更す
る。
【0072】この後、プロセッサエレメント#3が同一
データを更新すると、初期値の無効化方式のままではプ
ロセッサエレメント#2のブロックが無効化されてしま
い再度プロセッサエレメント#2から同一ブロックへの
アクセスが発生した場合に再登録が必要であったはず
が、更新方式に変更することによって最新データに更新
されているためキャッシュへのブロックロードが不要と
なる。
【0073】演算処理装置2、3が他プロセスを実行
するためにいままでの該ブロックを参照しなくなると、
プロセッサエレメント#2のキャッシュメモリ102の
該ブロックはいずれ他ブロックのロードによりキャッシ
ュメモリ102から追い出され、その時プロセッサエレ
メント#1のローカルメモリディレクトリ801のキャ
ッシュコヒーレンシ制御情報が、ディレクトリ制御手段
701により“1”(更新方式)から“0”(無効化方
式)にリセットされる。
【0074】この変更により他演算処理装置の該ブロッ
ク更新に伴う最新データの送信がなくなり、ネットワー
クトラフィックは削減される。
【0075】
【発明の効果】以上説明したように、本発明によれば、
ディレクトリを用いキャッシュのコヒーレンシを制御す
る分散共有メモリ型並列計算機において、ローカルメモ
リからのブロックロード時間の削減、ネットワークトラ
フィックの削減を図ることができる、という効果を奏す
る。その理由は、本発明においては、各キャッシュブロ
ックのコヒーレンシ制御の初期制御情報を無効化方式と
し、プロセッサエレメント内キャッシュブロックに対す
る演算処理装置のアクセス頻度を測定する手段をブロッ
クごとに有し、演算処理装置のキャッシュブロックのア
クセス頻度が高くなると、キャッシュに登録されるブロ
ック単位ごとにキャッシュブロックのコヒーレンシ制御
方式を無効化方式から更新方式へ変更する機能を備えた
ことによる。
【図面の簡単な説明】
【図1】本発明に係る分散共有メモリ型並列計算機の一
実施例の構成を示す図である。
【図2】本発明の一実施例におけるプロセッサエレメン
ト内のキャッシュメモリのディレクトリ構成を示す図で
ある。
【図3】本発明の一実施例におけるプロセッサエレメン
ト内ローカルメモリのディレクトリ構成を示す図であ
る。
【図4】本発明の一実施例の動作を説明するための図で
あり、プロセッサエレメント内演算処理装置1、2、
3、64の共有メモリからのデータ読み出し時の動作を
示す図である。
【図5】本発明の一実施例の動作を説明するための図で
あり、図4の最終状態からプロセッサエレメント#2内
演算処理装置が共有しているブロックを更新する時の更
新方式の動作を示す図である。
【図6】本発明の一実施例の動作を説明するための図で
あり、図5の最終状態からプロセッサエレメント#2内
演算処理装置が共有しているブロックを更新する時の無
効化方式の動作を示す図である。
【図7】本発明の一実施例の動作を説明するための図で
あり、図6の最終状態からプロセッサエレメント#3内
演算処理装置がプロセッサエレメント#1内のローカル
メモリに読み出し要求を行った時の動作を示す図であ
る。
【図8】本発明の一実施例の動作を説明するための図で
あり、プロセッサエレメント#2内演算処理装置のキャ
ッシュアクセス頻度によりキャッシュコヒーレンシの制
御情報が無効化方式から更新方式に変更する時の動作を
示す図である。
【図9】従来技術の更新方式、無効化方式におけるロー
ド時の動作を示す図である。
【図10】従来技術の無効化方式におけるストア時の動
作を示す図である。
【図11】従来技術更新方式におけるストア時の動作を
示す図である。
【符号の説明】
0〜64 本発明の分散共有メモリ型並列計算機を構成
するプロセッサエレメント内演算処理装置 90 ネットワーク 100〜164 プロセッサエレメント内キャッシュメ
モリ 200〜264 プロセッサエレメント内ローカルメモ
リ部 300〜364 キャッシュメモリ内アクセス頻度管理
手段 400〜464 キャッシュメモリディレクトリ 500〜564 キャッシュメモリ内アドレスアレイ 600〜664 キャッシュメモリ内データアレイ 700〜764 ローカルメモリ内ディレクトリ制御手
段 800〜864 ローカルメモリディレクトリ 900〜964 ローカルメモリ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】各々が演算処理装置、キャッシュメモリ、
    ローカルメモリ部を含む複数個のプロセッサエレメント
    がネットワークで結合され、 前記複数個のプロセッサエレメント内の前記各演算処理
    装置から、前記複数個のプロセッサエレメント内すべて
    の前記ローカルメモリが同一のアドレス空間を有する共
    有メモリとしてアクセス可能な分散共有メモリ型並列計
    算機システムにおいて、 各キャッシュブロックのコヒーレンシ制御の初期制御情
    報を無効化方式とし、 前記プロセッサエレメント内キャッシュブロックに対す
    る前記演算処理装置のアクセス頻度を測定する手段をブ
    ロック毎に有し、 前記演算処理装置のキャッシュブロックのアクセス頻度
    が高くなり、予め定めた所定値に達すると、前記キャッ
    シュメモリに登録されるブロック単位毎にキャッシュブ
    ロックのコヒーレンシ制御方式を無効化方式から更新方
    式へ変更する手段を備えたことを特徴とする分散共有メ
    モリ型並列計算機のキャッシュコヒーレンシ制御方式。
  2. 【請求項2】各々が演算処理装置、キャッシュメモリ、
    ローカルメモリ部を含む複数個のプロセッサエレメント
    がネットワークで結合され、 前記複数個のプロセッサエレメント内の前記各演算処理
    装置から、前記複数個のプロセッサエレメント内すべて
    の前記ローカルメモリが同一のアドレス空間を有する共
    有メモリとしてアクセス可能な分散共有メモリ型並列計
    算機システムにおいて、 前記キャッシュメモリが、登録キャッシュブロックのア
    クセス情報を格納するキャッシュディレクトリとアクセ
    ス頻度管理手段とを含み、 前記ローカルメモリ部が、キャッシュコヒーレンシ制御
    情報を格納するディレクトリとディレクトリ制御手段を
    含み、 前記各キャッシュメモリに登録されるブロック毎に前記
    演算処理装置のアクセス頻度を計測してアクセス情報が
    所定値に達した時前記アクセス頻度管理手段から前記デ
    ィレクトリ制御手段に通知し、前記ディレクトリ制御手
    段はキャッシュコヒーレンシ制御情報を無効化方式から
    更新方式に変更し、前記演算処理装置のローカルメモリ
    からのブロックロード時間を削減する、ことを特徴とす
    る分散共有メモリ型並列計算機のキャッシュコヒーレン
    シ制御方式。
  3. 【請求項3】各々が演算処理装置、キャッシュメモリ、
    ローカルメモリを含む複数個のプロセッサエレメントが
    ネットワークで結合され、 前記複数個のプロセッサエレメント内の前記各演算処理
    装置から、前記複数個のプロセッサエレメント内すべて
    の前記ローカルメモリが同一のアドレス空間を有する共
    有メモリとしてアクセス可能な分散共有メモリ型並列計
    算機システムにおいて、 前記各プロセッサエレメントは、 前記共有メモリの更新を前記キャッシュメモリの更新の
    度には行わず、キャッシュブロックが追い出される場合
    に更新するライトバック方式のキャッシュメモリ制御手
    段と、 前記キャッシュメモリに登録されるブロック単位ごと
    に、前記複数個のプロセッサエレメント内のいずれの前
    記キャッシュメモリ上にコピーブロックが登録されてい
    るかを示すコピー保持プロセッサ番号情報と、前記共有
    メモリ更新時に前記複数個のプロセッサエレメント内の
    前記キャッシュメモリに登録されているコピーブロック
    を無効化するか更新するかのキャッシュコヒーレンシ制
    御方式情報と、が格納されるローカルメモリディレクト
    リと、 前記演算処理装置が前記共有メモリを更新する際、前記
    ローカルメモリディレクトリに格納されたキャッシュコ
    ヒーレンシ制御方式情報により、コピーを保持する前記
    各プロセッサエレメント内のキャッシュブロックを無効
    化もしくは更新する手段と、 前記キャッシュメモリの登録エントリごとに、登録キャ
    ッシュブロックが有効であるか否かを示す有効性情報と
    前記演算処理装置からの登録キャッシュブロックアクセ
    ス頻度情報が格納されたキャッシュディレクトリと、 前記キャッシュブロックアクセス頻度情報を管理し、ア
    クセス頻度があらかじめ定められた状態に達したことを
    検出するアクセス頻度情報管理手段と、 前記アクセス頻度情報管理手段の検出情報を受け、前記
    ローカルメモリディレクトリ内の前記キャッシュコヒー
    レンシ制御方式情報を書き換え、他プロセッサエレメン
    ト内演算処理装置からの前記ローカルメモリ更新に対し
    て、書き換えられた前記キャッシュコヒーレンシ制御情
    報をもとに、キャッシュコヒーレンシ制御を行い、前記
    プロセッサエレメント内キャッシュメモリのキャッシュ
    ブロックが前記共有メモリに書き戻される時に前記ロー
    カルメモリディレクトリ内のキャッシュコヒーレンシ制
    御方式情報を初期状態に書き戻すディレクトリ制御手段
    を、 有することを特徴とする分散共有メモリ型並列計算機の
    キャッシュコヒーレンシ制御方式。
JP9279556A 1997-09-26 1997-09-26 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式 Pending JPH11102321A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9279556A JPH11102321A (ja) 1997-09-26 1997-09-26 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9279556A JPH11102321A (ja) 1997-09-26 1997-09-26 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式

Publications (1)

Publication Number Publication Date
JPH11102321A true JPH11102321A (ja) 1999-04-13

Family

ID=17612624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9279556A Pending JPH11102321A (ja) 1997-09-26 1997-09-26 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式

Country Status (1)

Country Link
JP (1) JPH11102321A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100362607B1 (ko) * 2000-05-10 2002-11-29 정상화 I/o 버스상의 캐쉬 일관성 비단일 메모리 엑세스 모듈을 포함하는 멀티프로세서 시스템의 프로세싱 노드 장치 및 그 제어방법
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2012504792A (ja) * 2009-02-17 2012-02-23 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
WO2015121986A1 (ja) 2014-02-14 2015-08-20 株式会社Murakumo システム、記憶装置および方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100362607B1 (ko) * 2000-05-10 2002-11-29 정상화 I/o 버스상의 캐쉬 일관성 비단일 메모리 엑세스 모듈을 포함하는 멀티프로세서 시스템의 프로세싱 노드 장치 및 그 제어방법
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2012504792A (ja) * 2009-02-17 2012-02-23 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
US8527710B2 (en) 2009-02-17 2013-09-03 Hitachi, Ltd. Storage controller and method of controlling storage controller
WO2015121986A1 (ja) 2014-02-14 2015-08-20 株式会社Murakumo システム、記憶装置および方法

Similar Documents

Publication Publication Date Title
US7613885B2 (en) Cache coherency control method, chipset, and multi-processor system
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US7814279B2 (en) Low-cost cache coherency for accelerators
US6615322B2 (en) Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US6760809B2 (en) Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US6886079B2 (en) Dynamic history based mechanism for the granting of exclusive data ownership in a non-uniform memory access (NUMA) computer system
US20030009639A1 (en) Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
JP5445581B2 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH06243035A (ja) コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JP3661764B2 (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
JP2000010860A (ja) キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
US6587922B2 (en) Multiprocessor system
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
EP1224553B1 (en) Multi-processor system and method of accessing data therein
JP2000330965A (ja) マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
JPH04230549A (ja) 多重レベル・キャッシュ
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
JPH11102321A (ja) 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式
US6826655B2 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
JPH04191946A (ja) スヌープキャッシュメモリ制御方式
US6826654B2 (en) Cache invalidation bus for a highly scalable shared cache memory hierarchy

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020305