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

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

Info

Publication number
JP2001101148A
JP2001101148A JP27529399A JP27529399A JP2001101148A JP 2001101148 A JP2001101148 A JP 2001101148A JP 27529399 A JP27529399 A JP 27529399A JP 27529399 A JP27529399 A JP 27529399A JP 2001101148 A JP2001101148 A JP 2001101148A
Authority
JP
Japan
Prior art keywords
node
state
data
shared memory
request
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
JP27529399A
Other languages
English (en)
Other versions
JP4689783B2 (ja
Inventor
Mitsuru Sato
充 佐藤
Koichi Kumon
耕一 久門
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 JP27529399A priority Critical patent/JP4689783B2/ja
Publication of JP2001101148A publication Critical patent/JP2001101148A/ja
Application granted granted Critical
Publication of JP4689783B2 publication Critical patent/JP4689783B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 プロセッサと、共有メモリの一部と、メモリ
コントローラと、キャッシュとを有するノードを複数有
し、各ノードは、各ノードに対応する相互結合網ルータ
により結合された分散共有メモリ型並列計算機におい
て、共有メモリとキャッシュのデータの一貫性を保ちつ
つ高速化を実現する。 【解決手段】相互結合網ルータに、ディレクトリ記憶
部、及び一貫性処理部を持たせ、ノード間のメモリアク
セス要求は、相互結合網ルータの一貫性処理部がディレ
クトリ記憶部を参照し、この内容に従ってメモリアクセ
ス要求転送処理、相互結合網ルータ間同期処理を行い、
共有メモリとキャッシュのデータの一貫性を保つことを
特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサと、共
有メモリの一部と、キャッシュとを有するノードを複数
有し、各ノードは、各ノードに対応する相互結合網ルー
タにより結合される、分散共有メモリ型並列計算機に関
する。
【0002】
【従来の技術】図9は、分散共有メモリ型並列計算機の
全体構成例を示し、図10及び図11は、各々その構成要素
である、相互結合網ルータの構成例、及びノードの内部
構成例を示す。
【0003】相互結合網ルータは、自ノードおよび他の
相互結合網ルータと、共有メモリのデータ及びメモリア
クセス要求のやり取りをするためのインタフェースであ
る、パケットバッファと、クロスバと、メモリアクセス
要求に記載されたノードIDに従って次に送るべき相互結
合網ルータを決定するルーティングコントローラとを有
する。
【0004】ノードは、プロセッサと、共有メモリの一
部と、メモリコントローラと、キャッシュとを有し、キ
ャッシュは、共有メモリのブロック毎のデータのコピー
と、アドレスとを有する。
【0005】図12は、図11の二つのノードのプロセッサ
が、互いにメモリを共有する分散共有メモリ型並列計算
機におけるデータの一貫性管理の必要性を説明する。こ
の例では、メモリアクセス要求を送るべきノードは他方
のノードであり、一意に決まるため、相互結合網ルータ
は省略されている。
【0006】プロセッサBが、プロセッサAのノードの
共有メモリのブロックのデータをキャッシュにコピーし
ている状況において、共有メモリを有するノードのプロ
セッサA、すなわちホームノードのプロセッサが当該デ
ータを更新しようとした場合、プロセッサBのノードの
キャッシュにある、当該ブロックのデータを同時に無更
新しなければ、プロセッサBが間違ったデータを読み出
してしまうということが起こる。
【0007】これを避ける手段として、図12の分散共有
メモリ型並列計算機にディレクトリ方式を適用した例を
図13に示す。この例では、共有メモリのブロック毎に、
ブロックのデータのコピーを保持するキャッシュの属す
るノードIDを示すノード情報と、MSIプロトコル(
M: Modified、S: Shared、I: Invalid ) の3状態を
示す状態情報と、を有するディレクトリを設け、メモリ
コントローラに一貫性管理機能を持たせ、メモリコント
ローラとする。
【0008】状態情報がM状態であれば、あるノードが
オーナーノードとしてキャッシュの当該ブロックのデー
タを更新した状態、すなわち、共有メモリのデータと、
オーナーノードのキャッシュのデータとが一致していな
いことを表し、S状態であれば、1つ以上のノードが共
有ノードとして当該ブロックのデータを保持し、各々の
キャッシュのデータと、共有メモリのデータが一致して
いることを表し、I状態であれば、他に、共有メモリの
当該ブロックのデータを保持するノードはないことを表
す。
【0009】ノードとして、オーナーノードは1個であ
り、ノードIDとしてコードで表現されるが、共有ノード
は最大、全ノードがあり得るため、共有ノードはビット
マップで表しても良い。
【0010】また、共有メモリのあるブロックのデータ
が、更新された状態と共有された状態は、同時には発生
しないため、オーナーノードの情報は、共有ノードの情
報と同じフィールドに登録されても良い。以下オーナー
ノードの情報と、共有ノードの情報はノード情報として
説明する。
【0011】メモリコントローラは、以下の機能により
共有メモリ及び各キャッシュのデータの一貫性を保つ。
【0012】1.メモリコントローラが受け取ったメモ
リアクセス要求が自ノードの共有メモリに対する読み出
し要求の場合、当該ブロックのディレクトリに保持され
た状態情報とノード情報を参照し、状態情報がS状態の
場合は、データを読み出し、要求元ノードにデータを送
ると共に、ノード情報に、要求元ノードIDを追加し、状
態情報がM状態の場合は、読み出し要求をオーナーノー
ドに転送し、状態情報をS状態とし、ノード情報とし
て、元のオーナーノードIDと、要求元ノードIDを登録す
る。
【0013】2.メモリコントローラが受け取ったメモ
リアクセス要求が、自ノードの共有メモリに対する無効
化/更新要求の場合、当該ブロックのディレクトリに保
持された状態情報とノード情報を参照し、共有ノードが
ある場合には、共有ノードに無効化要求を送り、状態情
報をM状態とし、ノード情報として要求元ノードIDを登
録する。共有ノードがない場合には、状態情報をM状態
とし、ノード情報として要求元ノードIDを登録する。
【0014】3.メモリコントローラが受け取ったメモ
リアクセス要求が、他ノードの共有メモリに対するメモ
リアクセス要求である場合、その共有メモリを有するノ
ードにメモリアクセス要求を転送する。
【0015】このように、ディレクトリ方式を用いる分
散共有メモリ型並列計算機では、各ノードは、メモリコ
ントローラの機能により、共有メモリと各キャッシュの
データの一貫性を保つ。
【0016】図14は、図13の、ディレクトリ方式による
データの一貫性管理の動作について説明する。図14(1)
において、プロセッサAで、ノードAの共有メモリのア
ドレスadr に対するデータの読み出し要求が発生する
と、メモリコントローラはアドレスadr のディレクトリ
を参照する。この場合、ディレクトリの状態情報は無効
状態(Invalid:I) であるため、データを読み出し、プ
ロセッサAに送る。
【0017】これで、共有メモリのアドレスadr のデー
タをノードAのキャッシュがコピーした状態となり、図
14(2) に示す如く、ディレクトリの状態情報に共有(Sha
red:S)状態が書き込まれ、ノード情報としてAが登録
される。このS状態は、データと同時にプロセッサAの
キャッシュに送られ、キャッシュの状態情報としても使
われる。
【0018】次に図14(3) において、プロセッサBで同
じアドレスadr のデータの読み出し要求が発生すると、
メモリコントローラはアドレスadr のディレクトリを参
照する。このとき、ディレクトリの状態情報はS状態で
あり、図14(4) に示す如く、メモリのデータと状態情
報、S状態がノードBのキャッシュに送られ、ノード情
報としてBが追加される( この時、ディレクトリの状態
情報はS状態のまま変わらない) 。
【0019】次に図14(5) において、プロセッサAでア
ドレスadr に対して更新要求が発生すると、メモリコン
トローラは、キャッシュのアドレスadr の状態情報がS
状態であることを確認し、共有メモリのアドレスadr の
ディレクトリを参照し、ディレクトリの状態情報がS状
態で、ノード情報としてA以外にBが保持されているこ
とを確認し、ノードBに無効化要求を送る。
【0020】しかる後に、図14(6) に示す如く、ディレ
クトリの状態情報を更新(Modified:M) 状態に変更し、
ノード情報としてAを登録する。これらの処理が完了す
ると、プロセッサAは自分のキャッシュを書き換え、プ
ロセッサBは、キャッシュのアドレスadr のデータを消
去する。
【0021】以下、図9の従来のディレクトリ方式の分
散共有メモリ型並列計算機における具体的な各動作モー
ドの全体の流れを説明する。
【0022】図15は従来のM状態のデータに対する読み
出し動作例を示し、図中の数字は、以下の各説明項目に
おける動作に対応する。初期状態では、ディレクトリの
状態情報はすべて無効状態(I状態)になっている。
【0023】1.ノードAからの、自ノードの共有メモ
リのアドレスadr に対するデータ読み出し要求により、
メモリコントローラは、アドレスadr のディレクトリを
参照しディレクトリの状態情報がI状態であることを確
認し、データを読み出し、ディレクトリの状態情報をS
状態に変更しノード情報としてAを登録し、ノードAの
キャッシュにデータと、状態情報S状態を送る。ノード
Aのキャッシュでは、アドレスadr のデータをS状態と
して登録する。
【0024】2.次にノードBから、アドレスadr に対
して無効化/更新要求が発生した場合、この無効化/更
新要求はノードBの相互結合網ルータを経由し、ホーム
ノードであるノードAの相互結合網ルータを経由し、ノ
ードAに送られる。ノードAでは共有メモリのディレク
トリを参照し、ディレクトリの状態情報がS状態、ノー
ド情報がAであることを確認し、ディレクトリの状態情
報をM状態に変更し、ノード情報としてBを登録し、キ
ャッシュのアドレスadr のデータを消去する。その後に
ノードBへ更新許諾を返す。ノードBでは、キャッシュ
のアドレスadr をM状態とし、更新したデータを登録す
る。
【0025】3.さらにノードCからアドレスadr に対
する読み出し要求が発生した場合、読み出し要求はホー
ムノードである、ノードAの相互結合網ルータを経由
し、ノードAに送られる。ノードAでは、ディレクトリ
の状態情報がM状態であり、ノード情報がBであること
を確認し、読み出し要求をノードBへ転送する。ノード
Bでは、キャッシュのアドレスadr をS状態とし、デー
タを読み出し、データと状態情報SをノードAとノード
Cに送る。ノードCでは、キャッシュにアドレスadr の
データを、状態情報をS状態として登録し、ノードAで
は、共有メモリのアドレスadr のデータを登録し、ディ
レクトリとして、ノード情報B、C、状態情報Sを登録
する。
【0026】図16は、従来のS状態のデータに対する無
効化/更新動作例を示す。1は、M状態のデータに対す
る読み出しの例と同様である。
【0027】2.次にノードBから、アドレスadr に対
して読み出し要求が発生した場合、この読み出し要求は
ホームノードであるノードAの相互結合網ルータを経由
し、ノードAに送られる。ノードAでは、ディレクトリ
の状態情報がS状態であることを確認し、ノード情報と
してBを追加し、アドレスadr のデータを読み出し、デ
ータと状態情報SをノードBに送る。ノードBでは、キ
ャッシュにアドレスadr のデータをS状態として登録す
る。
【0028】3.さらにノードCからアドレスadr に対
して無効化/更新要求が発生した場合、この無効化/更
新要求は、ホームノードであるノードAの相互結合網ル
ータを経由し、ノードAに送られる。
【0029】ノードAでは、ディレクトリの状態情報が
S状態で、ノード情報が、A及びBであることをを確認
し、ディレクトリの状態情報をM状態に更新し、ノード
情報としてCを登録する。その後に、キャッシュのアド
レスadr のデータを消去し、無効化要求をノードBに送
り、更新許諾をノードCに返す。ノードBでは、キャッ
シュのアドレスadr のデータを消去する。ノードCで
は、キャッシュにアドレスadr のデータをM状態として
登録する。
【0030】図17は、従来のS状態のデータに対する読
み出し動作例を示す。1〜2は、S状態のデータに対す
る無効化/更新の例と同様である。
【0031】3.さらにノードCからアドレスadr に対
する読み出し要求が発生した場合、読み出し要求はホー
ムノードであるノードAの相互結合網ルータを経由し、
ノードAに送られる。ノードAでは、ディレクトリの状
態情報がS状態であることを確認し、ノード情報として
Cを追加する。その後に、アドレスadr のデータを読み
出し、データと状態情報SをノードCに送る。ノードC
では、キャッシュにアドレスadr のデータをS状態とし
て登録する。
【0032】
【発明が解決しようとする課題】しかし、従来のディレ
クトリ方式では、 1.自ノードのキャッシュに持っていないデータに対す
る読み出し要求は、図17に示すごとく、自ノードの近傍
のノードにデータがキャッシュされている場合でも、必
ずホームノードの共有メモリに送られるため、キャッシ
ュされているデータが有効活用できず、処理が遅い。
【0033】2.従って、特定のデータに関する処理を
複数のノードで分散して処理する場合、処理を分散した
にもかかわらずこのデータのホームノードにメモリアク
セス要求が集中し、ホームノードでの処理がボトルネッ
クになって全体の速度を低下させる、という問題があ
る。
【0034】分散共有メモリ型並列計算機においては、
共有メモリとキャッシュのデータの一貫性を保ちつつ、
高速のメモリの無効化/更新要求、読み出し処理を実現
することが要求されている。
【0035】本発明は、処理を高速化し、且つ全体の速
度をあげることを目的としている。
【0036】
【課題を解決するための手段】本発明では、相互結合網
ルータに、ディレクトリ記憶部、及び一貫性処理部を持
たせ、ノード間のメモリアクセス要求は、相互結合網ル
ータの一貫性処理部がディレクトリ記憶部を参照し、こ
の内容に従ってメモリアクセス要求転送処理、相互結合
網ルータ間同期処理を行い、共有メモリとキャッシュの
データの一貫性を保つことを特徴とする。
【0037】1.ディレクトリ記憶部 ディレクトリ記憶部の保持内容 キャッシュが共有メモリのコピーを持っている、 1.1 ブロックアドレス(adr) 1.2 ブロックの状態情報(更新M、あるいは共有S) 1.3 ノード情報(ノードID) 2.一貫性処理部 2.1 メモリアクセス要求転送手段:あるプロセッサから
のメモリアクセス要求に対応して、ディレクトリ記憶部
を参照し、メモリブロックのアドレスが保持されている
場合は、当該アドレスに付随するノードに、保持されて
いない場合はホームノードに、メモリアクセス要求を転
送するメモリアクセス要求転送する。
【0038】ホームノード以外に読み出し要求を転送し
た場合、ホームノードには要求元ノードIDをノード情報
としてホームノードに転送し、ホームノードでは、要求
元ノードIDをノード情報として追加登録する。
【0039】例えばS状態のデータに対する読み出し要
求は、従来では、要求元ノード→相互結合網ルータ→・
・・ホームノードの相互結合網ルータ→ホームノード→
相互結合網ルータ→・・・相互結合網ルータ→共有ノー
ドという経路で送られていた。
【0040】しかし、本発明によれば、S状態のデータ
に対する読み出し要求は、要求元ノード→相互結合網ル
ータ→共有ノードID参照→保持されている最寄りの共有
ノードの相互結合網ルータ→共有ノードという経路にな
る。すなわち、相互結合網ルータにノード情報が保持さ
れている場合は、保持されている最寄りの共有ノードか
らデータを読み出し、ホームノードを経由しないため、
速度が向上する。
【0041】2.2 相互結合網ルータ間同期手段:一貫性
処理を複数箇所、即ちメモリコントローラと、同じブロ
ックのディレクトリ情報を有する相互結合網ルータの一
貫性処理部と、で実行しても、以下の同期処理を行うこ
とで、一つのブロックのデータに対する更新が複数の場
所で同時に実行されることを防止し、データの一貫性を
保つ。
【0042】同期処理:複数のノードで、あるブロック
に対する無効化/更新要求が発生した場合、各ノードの
相互結合網ルータは、ホームノードの相互結合網ルータ
に無効化/更新要求を送る。ホームノードの相互結合網
ルータでは、最初に無効化/更新要求を受け取ったノー
ドに対し更新許諾の応答を返し、ホームノードには無効
化要求と無効化要求元のノードIDを、他の共有ノードに
は無効化要求を送る。
【0043】ホームノードでは、当該ブロックのディレ
クトリを状態情報をM状態、ノード情報を要求元ノード
IDとして登録し、キャッシュのアドレスadr のデータを
消去し、他の共有ノードではキャッシュのアドレスadr
のデータを消去する。
【0044】無効化/更新要求を送ったにもかかわら
ず、更新許諾ではなく、無効化要求を受け取ったノード
では、改めてアドレスadr のデータを読み出し、この値
に基づいた処理を行う。
【0045】他の構成/機能として、ディレクトリ記憶
部に第二のノード情報の記憶部として、読み出し要求元
のノードIDを登録する、転送ノード情報記憶を追加し、
一貫性処理部に読み出しデータ転送処理手段を追加し、
以下の読み出しデータ転送処理を行うことにより、共有
メモリとキャッシュのデータの一貫性を保ちつつ、相互
結合網ルータ間の同期処理を一部省略し、さらに速度が
向上する。
【0046】3.読み出しデータ転送処理 読み出しデータ転送手段は、ディレクトリ記憶部に保持
されたアドレスadr に対する読み出し要求を受け、ホー
ムノード以外の共有ノードに読み出し要求を転送した場
合、読み出し要求元ノードIDを転送ノード情報に登録す
る。
【0047】読み出し要求を転送されたノードは、アド
レスadr のデータを読み出し、要求元ノードに、データ
と状態情報Sを送る。この場合、ホームノードへのノー
ド情報の転送は省略され、処理が高速化される。
【0048】なお、この時点では、転送ノード情報に保
持されたノードは共有メモリのディレクトリに保持され
ていないが、あるノードで当該アドレスadr に対する無
効化/更新要求が発生した時点で、一貫性処理が以下の
如く行われる。
【0049】発生した無効化/更新要求は、ホームノー
ドの相互結合網ルータに送られ、ホームノードの相互結
合網ルータは、ディレクトリ記憶部のアドレスadr に保
持されている全共有ノードに無効化要求を送る。
【0050】アドレスadr の転送ノード情報を持つ相互
結合網ルータが、ホームノードからアドレスadr に対す
る無効化要求を受け取ると、保持された転送ノード情報
に従って、無効化要求を全転送ノードに転送し、全ての
共有ノードに対する無効化が完了する。
【0051】保持しているデータには、無効化/更新処
理する必要のないデータも含まれるため、一部の無駄な
処理を省き、さらに速度が向上する。
【0052】
【発明の実施の形態】図1は、本発明による相互結合網
ルータの構成例を示す。本発明による相互結合網ルータ
は、通常のルーティング機能部分としての、パケットバ
ッファと、クロスバと、ルーティングコントローラと、
本発明の特徴である、ディレクトリ記憶部と、一貫性処
理部とを有する。
【0053】本実施例では簡単のため、 1.相互結合網の構成として、図9、図13に示す、ひと
つのノードにひとつのプロセッサ・キャッシュの組を接
続した構成。 2.各ノードの相互結合網ルータのディレクトリ記憶部
に登録するディレクトリは、自ノードからメモリアクセ
ス要求を出したアドレスのディレクトリ、とするが、 1.相互結合網の構成として、ひとつのノードに複数の
プロセッサ・キャッシュの組が接続された構成。 2.各ノードの相互結合網ルータのディレクトリ記憶部
に登録するディレクトリは、メモリアクセス要求が経由
する、全相互結合網ルータ、あるいは、ホームノードの
相互結合網ルータ、あるいは、現在、データを保持して
いるノードの相互結合網ルータ、及び現在、データを更
新しているノードの相互結合網ルータ、あるいは、過去
にディレクトリを登録した履歴を持つ相互結合網ルー
タ、及び前記各相互結合網ルータの組み合わせ、であっ
てもよい。
【0054】以下、図15、図16、図17の従来例と対比
し、図9の分散共有メモリ型並列計算機に本発明を適用
した実施例について説明する。
【0055】図2は、図1の相互結合網ルータを用い、
図15の従来例に対応した、M状態のデータに対する読み
出し動作例を示し、図3は、この場合の相互結合網ルー
タの動作のフローを示す。初期状態では、ディレクトリ
の状態情報はすべて無効状態になっている。
【0056】1 .ノードAから、自ノードの共有メモリ
のアドレスadr に対するデータ読み出し要求により、メ
モリコントローラはアドレスadr のディレクトリを参照
し、状態情報がI状態であることを確認し、データを読
み出し、ノードAのキャッシュに送ると共に、ディレク
トリの状態情報をS状態に変更し、ノード情報としてA
を登録する。
【0057】ノードAのキャッシュでは、アドレスadr
のデータをS状態として登録し、ノードAの相互結合網
ルータでは、ディレクトリ記憶部に、アドレスadr の状
態をS状態として登録する。
【0058】2 .次にノードBから、アドレスadr に対
して、無効化/更新要求が発生した場合、この無効化/
更新要求は、途中経由する各相互結合網ルータのディレ
クトリ記憶部を参照しつつ、ノードBの相互結合網ルー
タから、ノードAの相互結合網ルータに送られる。
【0059】ノードAの相互結合網ルータでは、ディレ
クトリ記憶部を参照し、アドレスadr の状態情報がS状
態、ノード情報Aを確認し、状態情報をM状態に変更
し、ノード情報としてBを登録し、ノードBの相互結合
網ルータを経由し、ノードBに更新許諾の応答を返し、
ノードAにアドレスadr の無効化要求を送る。
【0060】ノードBの相互結合網ルータでは、ディレ
クトリ記憶部にアドレスadr を状態情報をM状態、ノー
ド情報としてBを登録し、ノードBに応答を返す。ノー
ドBでは、キャッシュにadr をM状態で登録し、データ
を更新する。
【0061】ノードAでは、キャッシュのアドレスadr
を消去し、共有メモリの、アドレスadr のディレクトリ
の状態情報をM状態に変更し、ノード情報としてBを登
録する。
【0062】3 .さらにノードCからアドレスadr に対
する読み出し要求が発生した場合、読み出し要求は、途
中経由する各相互結合網ルータのディレクトリ記憶部を
参照しつつ、ノードCの相互結合網ルータから、ノード
Aの相互結合網ルータに送られる。
【0063】ノードAの相互結合網ルータは、ディレク
トリ記憶部を参照し、アドレスadrの状態情報がM状
態、ノード情報Bを確認し、状態情報をS状態に更新
し、ノード情報として、B,Cを登録する。その後に、
読み出し要求をノードBの相互結合網ルータへ転送し、
ノードAに対し、読み出し要求が転送された旨を伝え
る。
【0064】ノードBの相互結合網ルータは、読み出し
要求を受け取ると、ディレクトリ記憶部を参照し、アド
レスadr の状態情報がM状態、ノード情報Bを確認し、
ノードBに読み出し要求を送る。
【0065】ノードBでは、キャッシュのアドレスadr
の状態情報をS状態とし、データを読み出し、データを
ノードBの相互結合網ルータを経由しノードCに送る。
【0066】ノードBの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr の状態情報をS状態、ノー
ド情報としてB,Cを登録し、データをノードCの相互
結合網ルータを経由し、ノードCに送る。
【0067】ノードCの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr の状態情報をS状態、ノー
ド情報としてB,Cを登録し、データをノードCに送
る。ノードCでは、キャッシュにアドレスadr のデータ
をS状態として登録する。
【0068】ノードAでは、共有メモリの、アドレスad
r のディレクトリ状態情報をS状態に変更しノード情報
としてB,Cを登録する。
【0069】この動作により、読み出し要求がノードA
を経由せず、ノードAの相互結合網ルータからノードB
に送られるため、処理速度が向上する。
【0070】なお、ノードCからの読み出し要求が、ノ
ードBの相互結合網ルータを経由する場合、読み出し要
求はノードAの相互結合網ルータも経由せず、ノードB
の相互結合網ルータから、直接ノードBに送られるた
め、さらに速度が向上する。
【0071】図4は、図1の相互結合網ルータを用い、
図16の従来例に対応した、S状態のデータに対する無効
化/更新動作例を示し、図5は、相互結合網ルータの動
作のフローを示す。1は、M状態のデータに対する読み
出しの例と同様である。
【0072】2.次にノードBから、アドレスadr に対
して読み出し要求が発生した場合、この読み出し要求
は、途中経由する各相互結合網ルータのディレクトリ記
憶部を参照しつつ、ノードBの相互結合網ルータから、
ノードAの相互結合網ルータに送られる。
【0073】ノードAの相互結合網ルータでは、ディレ
クトリ記憶部を参照し、アドレスadr の状態情報がS状
態、ノード情報Aを確認し、ノードAに読み出し要求を
送る。
【0074】ノードAでは、共有メモリのアドレスadr
のディレクトリ状態がS状態であることを確認し、ノー
ド情報としてBを追加するとともに、キャッシュのアド
レスadr からデータを読み出し、ノードAの相互結合網
ルータを経由し、ノードBに送る。
【0075】ノードAの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr のノード情報としてBを追
加し、データをノードBの相互結合網ルータを経由し、
ノードBに送る。
【0076】ノードBの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr の状態情報をS状態、ノー
ド情報としてA,Bを登録し、データをノードBに送
る。ノードBでは、キャッシュにアドレスadr のデータ
をS状態として登録する。
【0077】3.さらにノードCからアドレスadr に対
する無効化/更新要求が発生した場合、この無効化/更
新要求は、途中経由する各相互結合網ルータのディレク
トリ記憶部を参照しつつ、ノードCの相互結合網ルータ
から、ノードAの相互結合網ルータに送られる。
【0078】ノードAの相互結合網ルータでは、ディレ
クトリ記憶部を参照し、アドレスadr の状態情報がS状
態、ノード情報A,Bを確認し、状態情報をM状態に変
更し、ノード情報としてCを登録し、ノードCに更新許
諾の応答を返し、ノードA,Bに無効化要求を送る。
【0079】ノードCの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr をM状態、ノード情報とし
てCを登録し、ノードCに更新許諾の応答を返す。ノー
ドCでは、キャッシュのアドレスadr の状態をMとしデ
ータを更新する。
【0080】ノードAでは、キャッシュのアドレスadr
を消去し、共有メモリのアドレスadr のディレクトリの
状態情報をM状態に変更し、ノード情報としてCを登録
する。
【0081】ノードBの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr をM状態に更新し、ノード
情報としてCを登録する。その後に、ノードBにアドレ
スadr の無効化要求を送る。ノードBではキャッシュの
adr のデータを消去する。
【0082】この動作により、更新許諾がノードAを経
由せず、ノードAの相互結合網ルータからノードCに返
されるため、処理の高速化が実現できる。
【0083】図6は、ディレクトリ記憶部に、転送ノー
ド情報記憶を追加した相互結合網ルータの他の構成例を
示す。図6の相互結合網ルータは、受け取った読み出し
要求が、ディレクトリ記憶部に保持されているブロック
に対する読み出し要求であった場合は、保持されている
共有ノードのうちの、最寄りの共有ノードに読み出し要
求を転送し、最寄りのノードがホームノード以外の場合
は、読み出し要求元ノードのIDを転送ノード情報に登録
する。
【0084】図7は、ノードAとノードCの中間にノー
ドBがある構成例によるS状態のデータに対する読み出
し動作例を示し、図8 は、相互結合網ルータの動作のフ
ローを示す。1〜2 は、S状態のデータに対する無効化
/更新の例と同様である。
【0085】3.さらにノードCからアドレスadr に対す
る読み出し要求が発生した場合、この読み出し要求は、
途中経由する各相互結合網ルータのディレクトリ記憶部
を参照しつつ、ノードCの相互結合網ルータからノード
Bの相互結合網ルータに送られる。
【0086】ノードBの相互結合網ルータでは、ディレ
クトリ記憶部を参照し、状態情報がS状態、ノード情報
A,Bを確認し、最寄りの共有ノードBに読み出し要求
を転送するが、ノードBがホームノードでない為、転送
ノード情報として要求元ノードCを登録する。
【0087】ノードBは、キャッシュからデータを読み
出し、ノードBの相互結合網ルータを経由しノードCの
相互結合網ルータにデータを送る。
【0088】ノードCの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr を、状態情報をS状態、ノ
ード情報としてA,B,Cを登録し、データをノードC
に送る。ノードCではキャッシュにアドレスadr のデー
タをS状態として登録する。以上で、読み出し動作は完
了する。
【0089】この動作により、読み出し要求がノードA
の相互結合網ルータを経由せず、データがノードBの相
互結合網ルータから直接ノードCに送られるため、処理
の高速化が実現できる。
【0090】この場合、ホームノード(ノードA)の相
互結合網ルータのディレクトリ記憶部、及び共有メモリ
のディレクトリでは、アドレスadr のノード情報は、
A,Bとして保持されたままであり、一貫性処理動作は
完了していない。
【0091】アドレスadr の一貫性処理の動作は、ノー
ドAの相互結合網ルータが、次にアドレスadr に対する
無効化/更新要求を受け取った時点での後処理として、
以下の如く実行される。
【0092】ノードAの相互結合網ルータは、アドレス
adr に対する無効化/更新要求を、例えば、ノードDか
ら受け取ると、ディレクトリを参照し、状態情報がS状
態、ノード情報A,Bを確認し、状態情報をM状態に変
更し、ノード情報としてDを登録し、ノードA,Bに無
効化要求を送る。
【0093】ノードBの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr を参照し、S状態、転送ノ
ード情報Cを確認し、状態情報をM状態、ノード情報と
してDを登録し、キャッシュのアドレスadr を消去する
とともに、無効化要求をノードB及びノードCの相互結
合網ルータに送る。
【0094】ノードCの相互結合網ルータでは、ディレ
クトリ記憶部のアドレスadr を参照し、状態情報がS状
態を確認し、状態情報をM状態として登録し、ノード情
報としてDを登録する。
【0095】
【発明の効果】以上説明したように、本発明によれば、
ディレクトリ方式の、共有メモリとキャッシュのデータ
の一貫性処理方法を用いながら、データを保持するキャ
ッシュがある場合には、メモリアクセス要求がホームノ
ードを経由する必要がなく、相互結合網ルータ間で転送
することで、高速処理が可能になる。また、ホームノー
ドを経由しないことにより、ホームノードにアクセスが
集中してシステム全体の速度を低下させることがなくな
るという効果がある。
【図面の簡単な説明】
【図1】 本発明による相互結合網ルータの構成例
【図2】 本発明によるM状態のデータに対する読み出
し動作例
【図3】 M状態のデータに対する読み出し動作フロー
【図4】 本発明によるS状態のデータに対する無効化
/更新動作例
【図5】 S状態のデータに対する無効化/更新動作フ
ロー
【図6】 本発明による転送ノード情報記憶を備えた相
互結合網ルータ
【図7】 本発明によるS状態のデータに対する読み出
し動作例
【図8】 S状態のデータに対する読み出し動作フロー
【図9】 分散共有メモリ型並列計算機の全体構成例
【図10】 相互結合網ルータの構成例
【図11】 ノード内部の構成
【図12】 ディレクトリ方式によるデータの一貫性管
【図13】 ディレクトリ方式を用いる分散共有メモリ
型並列計算機
【図14】 分散共有メモリ型並列計算機におけるデー
タの一貫性管理
【図15】 従来のM状態のデータに対する読み出し動
作例
【図16】 従来のS状態のデータに対する無効化/更
新動作例
【図17】 従来のS状態のデータに対する読み出し動
作例
【符号の説明】
1 ディレクトリ記憶部 2 一貫性処理部 3 ルーティングコントローラ
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B005 JJ11 KK02 KK13 MM01 NN11 NN31 PP21 5B045 BB17 DD01 DD13

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと、共有メモリの一部と、メ
    モリコントローラと、キャッシュとを有するノードを複
    数有し、 各ノードは、各ノードに対応する相互結合網ルータによ
    り結合された分散共有メモリ型並列計算機であって、 共有メモリは、ブロック毎に、メモリのデータのコピー
    を保持するキャッシュの属するノードIDを示すノード情
    報と、保持状態を示す状態情報とからなるディレクトリ
    を有し、 メモリコントローラは、相互結合網ルータから転送され
    るメモリアクセス要求に従って、共有メモリのディレク
    トリの参照/更新と、キャッシュへの無効化通知とを行
    う一貫性管理手段を有し、 キャッシュは、共有メモリのブロック毎のデータのコピ
    ーとアドレスと保持状態を示す状態情報とを有し、 相互結合網ルータは、共有メモリのブロックのデータの
    コピーを保持するキャッシュの属するノードIDを示すノ
    ード情報と、保持状態を示す状態情報と、メモリブロッ
    クのアドレスとを保持するディレクトリ記憶部と、プロ
    セッサからのメモリアクセス要求に対応してディレクト
    リ記憶部を参照し、メモリブロックのアドレスが保持さ
    れている場合は、当該アドレスに付随するノードに、保
    持されていない場合は共有メモリの属するノードにメモ
    リアクセス要求を転送するメモリアクセス要求転送手段
    と、自ノードの共有メモリに対する無効化/更新要求に
    対応してディレクトリ記憶部を参照し、最初に無効化/
    更新要求を受け取った要求元ノードに対し更新許諾の応
    答を返し、自ノードには無効化要求と無効化要求元ノー
    ドIDを送り、ノード情報に保持された他のノードには無
    効化要求を送る相互結合網ルータ間同期手段と、よりな
    る一貫性処理部を有することを特徴とする、分散共有メ
    モリ型並列計算機。
  2. 【請求項2】 請求項1に記載の分散共有メモリ型並列
    計算機であって、 ディレクトリ記憶部は、転送ノード情報を有し、 一貫性処理部は、プロセッサからの読み出し要求に対応
    して、ディレクトリ記憶部を参照し、ノード情報に保持
    されたノードのうちの、最寄りのノードに読み出し要求
    を転送し、最寄りのノードが共有メモリの属するノード
    以外の場合、読み出し要求元のノードIDを転送ノード情
    報として登録し、共有メモリの属するノードからの無効
    化要求に対応し転送ノード情報を参照し、全転送ノード
    に無効化要求を転送する、読み出しデータ転送処理手段
    を有することを特徴とする分散共有メモリ型並列計算
    機。
JP27529399A 1999-09-28 1999-09-28 分散共有メモリ型並列計算機 Expired - Fee Related JP4689783B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27529399A JP4689783B2 (ja) 1999-09-28 1999-09-28 分散共有メモリ型並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27529399A JP4689783B2 (ja) 1999-09-28 1999-09-28 分散共有メモリ型並列計算機

Publications (2)

Publication Number Publication Date
JP2001101148A true JP2001101148A (ja) 2001-04-13
JP4689783B2 JP4689783B2 (ja) 2011-05-25

Family

ID=17553422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27529399A Expired - Fee Related JP4689783B2 (ja) 1999-09-28 1999-09-28 分散共有メモリ型並列計算機

Country Status (1)

Country Link
JP (1) JP4689783B2 (ja)

Cited By (4)

* 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> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2013012235A (ja) * 2001-06-04 2013-01-17 Fujitsu Ltd 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2013515997A (ja) * 2009-12-30 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス
JP5435132B2 (ja) * 2010-07-12 2014-03-05 富士通株式会社 情報処理システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013012235A (ja) * 2001-06-04 2013-01-17 Fujitsu Ltd 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2013515997A (ja) * 2009-12-30 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス
JP2014149859A (ja) * 2009-12-30 2014-08-21 Emprie Technology Development LLC マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス
JP5435132B2 (ja) * 2010-07-12 2014-03-05 富士通株式会社 情報処理システム

Also Published As

Publication number Publication date
JP4689783B2 (ja) 2011-05-25

Similar Documents

Publication Publication Date Title
US5604882A (en) System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
JP4848771B2 (ja) キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
JP3661761B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム
US20010013089A1 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
EP1255201A1 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
US7529893B2 (en) Multi-node system with split ownership and access right coherence mechanism
JP2013058225A (ja) マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
JP4959279B2 (ja) マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
US6922755B1 (en) Directory tree multinode computer system
US20050010615A1 (en) Multi-node computer system implementing memory-correctable speculative proxy transactions
JP4507563B2 (ja) マルチプロセッサシステム
US20050013294A1 (en) Multi-node computer system with active devices employing promise arrays for outstanding transactions
US20050044174A1 (en) Multi-node computer system where active devices selectively initiate certain transactions using remote-type address packets
US20050027947A1 (en) Multi-node computer system including a mechanism to encode node ID of a transaction-initiating node in invalidating proxy address packets
US7225298B2 (en) Multi-node computer system in which networks in different nodes implement different conveyance modes
US8024526B2 (en) Multi-node system with global access states
JP4689783B2 (ja) 分散共有メモリ型並列計算機
JP7277075B2 (ja) スヌープリクエストに対する応答の転送
US7606978B2 (en) Multi-node computer system implementing global access state dependent transactions
US7360029B2 (en) Multi-node computer system in which interfaces provide data to satisfy coherency transactions when no owning device present in modified global access state node
US7814278B2 (en) Multi-node system with response information in memory
JP2002024198A (ja) 分散共有メモリ型並列計算機
US20040260886A1 (en) Multi-node system with interface intervention to satisfy coherency transactions transparently to active devices
US20050005075A1 (en) Multi-node computer system employing multiple memory response states

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060721

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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090707

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees