JP2003150573A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JP2003150573A
JP2003150573A JP2001345530A JP2001345530A JP2003150573A JP 2003150573 A JP2003150573 A JP 2003150573A JP 2001345530 A JP2001345530 A JP 2001345530A JP 2001345530 A JP2001345530 A JP 2001345530A JP 2003150573 A JP2003150573 A JP 2003150573A
Authority
JP
Japan
Prior art keywords
node
cache
read
data
main memory
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
JP2001345530A
Other languages
English (en)
Other versions
JP3714235B2 (ja
Inventor
Shinichiro Morita
真一郎 森田
Shisei Fujiwara
至誠 藤原
Masaru Koyanagi
勝 小柳
Shiyouki Murakami
祥基 村上
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001345530A priority Critical patent/JP3714235B2/ja
Publication of JP2003150573A publication Critical patent/JP2003150573A/ja
Application granted granted Critical
Publication of JP3714235B2 publication Critical patent/JP3714235B2/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】
【従来の技術】計算機システムの処理速度を向上させる
ために、キャッシュメモリの使用が有効であることはよ
く知られている。キャッシュメモリは、プロセッサとメ
インメモリの間に位置する高速、小容量のメモリのこと
をいう。キャッシュメモリは、メインメモリのデータの
一部を保持し、メインメモリの代わりにプロセッサとの
データの送受信を行い、メインメモリよりも高速なデー
タアクセスを実現する。
【0003】このようなキャッシュメモリを使用した計
算機システムでは、プロセッサがリード要求を発行した
ときにキャッシュメモリにデータが格納されている(す
なわちヒットした)場合、キャッシュメモリ内のデータ
が直ちにプロセッサに送信され、高速な動作を実現する
ことができる。
【0004】プロセッサからのメインメモリへのリード
要求に対し、キャッシュメモリにそのデータがなかった
(すなわちミスした)場合は、キャッシュメモリはプロ
セッサが要求したデータをメインメモリから読み込ん
で、これをプロセッサに供給する。
【0005】ここで、複数のキャッシュメモリを有する
計算機システムにおいては、メインメモリからキャッシ
ュメモリにデータを読み込む際にキャッシュ・コヒーレ
ンシ一貫性制御が要求される。キャッシュ・コヒーレン
シ一貫性制御とは、メインメモリ上の同一アドレスにあ
るデータのコピーを二つ以上のキャッシュメモリが保持
する場合に同一の値を持つこと(キャッシュ・コヒーレ
ンシ一貫性)を保証するための制御である。
【0006】キャッシュ・コヒーレンシ一貫性制御の例
を図12に示されるシステムで説明する。図12のシス
テムは、ノード(100)を複数(xND0〜xND
n)有し、それらが相互結合網1(111)と相互結合
網2(112)によって相互に接続されている構成であ
る。
【0007】ノード(100)は、プロセッサ(10
1)とキャッシュメモリ(103)、キャッシュタグ
(104)、メインメモリ(105)とキャッシュ・メ
インメモリ制御装置(102)を有する。キャッシュ・
メインメモリ制御装置(102)は、プロセッサ(10
1)や相互結合網1(111)を介した他ノードからの
要求に応じて、キャッシュメモリ(103)、キャッシ
ュタグ(104)、メインメモリ(105)のデータの
読み出し、書き込みを行なう。
【0008】キャッシュ・メインメモリ制御装置(10
2)は、よく知られたMESIキャッシュ・コヒーレン
シ・プロトコルに従ったキャッシュ・コヒーレンシ一貫
性制御を行なうものとする。すなわち、キャッシュ状態
として、(a)Invalid(当該データは無効)、
(b)Shared−Unmodified(当該デー
タは他のプロセッサのキャッシュメモリ内にも存在し、
主記憶内のデータと同一)、(c)Exclusive
‐Modified(当該データは、当該キャッシュメ
モリ内にのみ存在し、しかも主記憶内のデータとは同一
ではない)、(d)Exclusive−Unmodi
fied(当該データは、当該キャッシュメモリ内にの
み存在し、主記憶内のデータとは同一)を定義する。任
意のノードにおいてリード要求が発生し、当該データが
自ノード内のキャッシュメモリにない(リードミス)の
場合には、相互結合網1にリード・トランザクションを
ブロードキャスト(同報送信)し、全ノードがそれを受
信する。
【0009】この時、いずれかのノード内キャッシュメ
モリにヒットした場合には、当該ノードから要求元のノ
ードにデータを転送する。一方、いずれのノード内のキ
ャッシュメモリにもヒットしなかった場合には、要求さ
れたデータを保持するメインメモリからデータリターン
を行なう。また、キャッシュメモリ内の置換(キャッシ
ュメモリ内に空き領域を作るために既存のデータを追い
出す操作)対象となったデータラインがExclusi
ve‐Modifiedの場合には、メインメモリに反
映させるべく、相互結合網1にライト・トランザクショ
ンを送出する。
【0010】相互結合網1はノード間でやり取りされる
トランザクションを配信する。相互結合網2は、リード
・トランザクションを受信したノードがキャッシュ・コ
ヒーレンシ一貫性制御を行なう際の応答メッセージをノ
ード間で配信する。
【0011】図13は、このようなシステムにおいて、
メインメモリからキャッシュメモリにデータを読み込
み、プロセッサにそのデータを供給する動作を図示する
タイミングチャートである。図13において、縦方向は
動作に関係する各ノードまたはノード内の構成要素を示
し、横方向は各ノードの動作の時間軸を示す。また、図
13におけるシステムは、xND0〜xND2の3ノー
ドの構成とする。
【0012】図13において、まず、ノードxND0の
プロセッサがメモリリード要求を発行する。この要求の
データが自ノードのキャッシュメモリにおいて、キャッ
シュ状態Invalidであり、すなわちキャッシュミ
スを起こしたとする。すると、xND0のキャッシュ・
メインメモリ制御装置は、相互結合網1にこのアドレス
のデータを要求するリード・トランザクションを発行す
る。相互結合網1はこのリード・トランザクションを全
ノードに配信する。
【0013】xND1とxND2はこのリード・トラン
ザクションを受信すると、リード要求のアドレスのデー
タが自ノードのキャッシュ上にどのような状態で格納さ
れているかを調べる。xND1、xND2ともに要求さ
れたデータは自ノードのキャッシュ上でInvalid
状態であったとすると、xND1とxND2はそれぞ
れ、キャッシュ・コヒーレンシ一貫性制御結果として、
メッセージ’Inv’を相互結合網2に送信する。ここ
で、’Inv’は要求されたデータが自ノードのキャッ
シュ上でInvalid状態であることを示すメッセー
ジであるとする。相互結合網2はこの’Inv’メッセ
ージをxND0に配信する。
【0014】’Inv’を受信したxND0は、他ノー
ドのキャッシュ状態が全てInvalid状態であるこ
とを判定し、メインメモリからのデータを使用すること
を決定する。要求されたデータがxND0のメインメモ
リのデータであるとすると、xND0のキャッシュ・メ
インメモリ制御装置は自ノードのメインメモリから要求
されたデータを読み出し、これをキャッシュメモリにE
xclusive−Unmodified状態で格納
し、プロセッサにこのデータを供給して、リードの処理
を完了させる。
【0015】このようなキャッシュ・コヒーレンシ一貫
性制御の例としては、例えば特開平10−161930
号公報に示されるようなシステムが知られている。特開
平10−161930号公報では、複数のキャッシュメ
モリを有する計算機システムにおいて、あるキャッシュ
メモリからメインメモリへの書き込み要求と、同一メイ
ンメモリアドレスからの他のキャッシュへの読み出し要
求が時間的に近接して発生した場合に、キャッシュ一貫
性を保証しつつ、この競合を解決する方法について示し
ている。
【0016】
【発明が解決しようとする課題】特開平10−1619
30号公報では、ライトとリードが競合したときの解決
方法を示しているが、リードと同一アドレスに対する別
のリードが競合したときの解決方法については何も述べ
ていない。前述の従来技術の場合には、リードと同一ア
ドレスに対する別のリードが時間的に近接して発行され
るような場合に、キャッシュ一貫性に問題が生じる可能
性がある。これを示したのが図14である。
【0017】図14はxND0のプロセッサがデータの
リードを発行し、その処理が完了する前にxND1のプ
ロセッサも同じアドレスのデータのリードを発行したと
きの動作を示している。図14において、縦方向は動作
に関係する各ノードまたはノード内の構成要素を示し、
横方向は各ノードの動作の時間軸を4つのフェーズに分
けたものを示している。
【0018】(フェーズ1)xND0のプロセッサがリ
ード要求を発行する。要求されたデータのキャッシュ状
態はInvalidであり、キャッシュミスを起こす。
キャッシュ・メインメモリ制御装置は相互結合網1にリ
ード・トランザクションを発行する。相互結合網1は全
ノードにリード・トランザクションを配信する。xND
1とxND2はリード・トランザクションを受けると、
自ノードのキャッシュ状態を調べ、Invalid状態
であることを示すメッセージ’Inv’を相互結合網2
に送信したとする。相互結合網2はxND1とxND2
から送信された’Inv’メッセージをxND0に送信
する。
【0019】(フェーズ2)xND1のプロセッサがリ
ード要求を発行する。リード要求のアドレスは(フェー
ズ1)でxND0のプロセッサが発行したリード要求の
アドレスと同一であるとする。xND1はキャッシュミ
スを起こす。キャッシュ・メインメモリ制御装置は相互
結合網1にリード・トランザクションを発行する。相互
結合網1は全ノードにリード・トランザクションを配信
する。xND0とxND2はリード・トランザクション
を受けると、自ノードのキャッシュ状態を調べ、Inv
alid状態であることを示すメッセージ’Inv’を
相互結合網2に送信する。相互結合網2はこの’In
v’メッセージをxND1に配信する。
【0020】(フェーズ3)xND0は(フェーズ1)
のリード要求の処理を継続し、メインメモリからのデー
タを受信する。xND0は(フェーズ1)においてxN
D1とxND2の双方からキャッシュ・コヒーレンシ一
貫性制御の結果のメッセージ’Inv’を受信している
ので、このメインメモリからのデータをキャッシュメモ
リにExclusive−Unmodified状態で
登録して、プロセッサにデータを供給して、リード処理
を完了する。
【0021】(フェーズ4)xND1は(フェーズ2)
のリード要求の処理を継続し、メインメモリからのデー
タを受信する。xND0も(フェーズ2)においてxN
D0とxND2の双方からキャッシュ・コヒーレンシ一
貫性制御の結果のメッセージ’Inv’を受信している
ので、このメインメモリからのデータをキャッシュメモ
リにExclusive−Unmodified状態で
登録して、プロセッサにデータを供給して、リード処理
を完了する。
【0022】このように、Exclusive−Unm
odifiedの状態でデータを保持するキャッシュは
システム内でただひとつでなければならないにもかかわ
らず、上記の動作では二つのキャッシュメモリがExc
lusive−Unmodifiedの状態でデータを
保持することになる。従って以後のプロセッサのデータ
書き込み動作によってはキャッシュ一貫性が保証されな
い可能性がある。
【0023】上記の問題はキャッシュメモリがメインメ
モリからのデータの読み込みの処理を実行中であり、キ
ャッシュの状態が確定していないにもかかわらず、別の
キャッシュメモリからのキャッシュ・コヒーレンシ一貫
性制御要求に応答して、キャッシュ・コヒーレンシ一貫
性制御結果を出力してしまうことにより発生する。
【0024】本発明の目的は複数のキャッシュメモリが
時間的に近接してメインメモリからのデータの読み込み
の処理を実行した場合にも、正しいキャッシュ・コヒー
レンシ一貫性制御を実現することが可能なマルチプロセ
ッサシステムを提供することである。
【0025】また、本発明の別の目的はキャッシュ・コ
ヒーレンシ一貫性を保つために、キャッシュ・コヒーレ
ンシ一貫性制御要求に対する中止と再実行を要求して
も、キャッシュ・コヒーレンシ一貫性制御要求の沈み込
みを防ぐことが可能なマルチプロセッサシステムを提供
することにある。 その他の目的については、以下の説
明であきらかになるであろう。
【0026】
【課題を解決するための手段】本発明では、各ノードは
システムにおいて発信されたリードアクセス要求に関す
る情報を備える。各ノードは、自ノードにおいてキャッ
シュミスが生じた場合に、この情報を参照して、必要と
するデータに対して現在すでにリードアクセス要求がさ
れているかどうかを判断し、自ノードがリード要求する
ことができるかどうかを判断する。
【0027】また、本発明では、このリードアクセス要
求に関する情報には、自ノードが発信したアクセス要求
の状態情報を含む。他ノードから発信されたリードアク
セス要求を受信すると、この情報を参照して自ノードに
おいてすでにリードアクセス要求をしたものであるかど
うかを判断し、その結果を出力する。
【0028】また、本発明では、このリードアクセス要
求に関する情報には、各リードアクセス要求が行なわれ
る優先順位についての情報も含まれる。これらの情報を
用いて、次に行なわれるリードアクセス要求が決定され
る。
【0029】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0030】図1は、本発明に関する第1の実施の形態
であるマルチプロセッサ11システムの全体構成の一例
を示す概念図である。
【0031】図1に例示されるように、本実施の形態の
マルチプロセッサ11システムは、複数のノードND0
〜NDn(10)が、相互結合網A(20)と相互結合
網B(30)を介して結合された構成となっている。ノ
ードとは、各々が独立してデータ処理を行なうプロセッ
サ11モジュールのことをいう。本実施例において、各
ノードNDO〜NDnは、クロスバスバスイッチによっ
て実現するものとするが、これに限らず、バスを用いる
構成としてもよいことはいうまでもない。
【0032】図2はノード(10)の構成を示す概念図
である。図2に例示されるように、個々のノード10
は、プロセッサ11、キャッシュ・メインメモリ制御部
12、キャッシュメモリ13a、キャッシュタグ13
b、メインメモリ13c、リクエスト管理テーブル1
4、CCC受信部15、トランザクション受信部16、
CCC送信部17、トランザクション送信部18、スタ
ーベーション管理部19を備えている。
【0033】プロセッサ11は、各種データを演算する
ものであり、汎用のマイクロプロセッサ11で構成され
るものである。メインメモリ13cは、プロセッサ11
が処理するためのデータ、プログラムがロードされる。
キャッシュメモリ13aは、このプロセッサ11とメイ
ンメモリ13cまたはノード10の外部との間で授受さ
れるデータを一時的に保持する。キャッシュ・メインメ
モリ制御部12は、メインメモリ13c、キャッシュメ
モリ13aのデータ転送等の制御を行なう。キャッシュ
タグ13bは、キャッシュ・メインメモリ制御部12が
キャッシュメモリ13aを制御する際に用いる制御情報
を格納する。トランザクション受信部16、トランザク
ション送信部18は、相互結合網A(20)を介して他
のノードとの間における情報の授受を行なう。CCC受
信部15、CCC送信部17は、相互結合網B(30)
を介してキャッシュ・コヒーレンシ一貫性制御結果(C
CC)を送信又は受信をする。
【0034】さらに個々のノード(10)は、自ノード
が相互結合網Aを介してノードに発行したメモリアクセ
スを管理するためのリクエスト管理テーブル部(14)
と、キャッシュ・コヒーレンシ一貫性制御結果がリトラ
イとなったメモリアクセス要求のアドレスと要求元を記
録するためのスターベーション管理部(19)を備えて
いる。
【0035】なお、本実施形態においては、キャッシュ
・メインメモリ制御部12はよく知られたMESIキャ
ッシュ・コヒーレンシ・プロトコルに従ったキャッシュ
・コヒーレンシ一貫性制御を行なうものとする。すなわ
ち、キャッシュ状態として、(a)Invalid(当
該データは無効)、(b)Shared−Unmodi
fied(当該データは他のプロセッサ11のキャッシ
ュメモリ13a内にも存在し、主記憶内のデータと同
一)、(c)Exclusive‐Modified
(当該データは、当該キャッシュメモリ13a内にのみ
存在し、しかも主記憶内のデータとは同一ではない)、
(d)Exclusive−Unmodified(当
該データは、当該キャッシュメモリ13a内にのみ存在
し、主記憶内のデータとは同一)を定義する。
【0036】任意のノードにおいてリード要求が発生
し、当該データが自ノード内のキャッシュメモリ13a
にない(リードミスの)場合には、相互結合網A(2
0)にリード・トランザクションをブロードキャスト
(同報送信)し、他のノード(ND)がそれを受信す
る。この時、ノード内キャッシュメモリ13aにヒット
した場合には、当該ノードから要求元のノードにデータ
を転送し、一方、いずれのノード内のキャッシュメモリ
13aにもヒットしなかった場合には、メインメモリか
らデータリターンが行なわれる。また、キャッシュメモ
リ13a内の置換(キャッシュメモリ13a内に空き領
域を作るために既存のデータを追い出す操作)対象とな
ったデータラインがExclusive‐Modifi
edの場合には、メインメモリに反映させるべく、相互
結合網Aにライト・トランザクションを送出する。
【0037】図3は相互結合網A(20)の構成図であ
る。図3に例示されるように、相互結合網A(20)
は、各ノード間で、1:1または1:多(同報送信)の
接続制御を行なうスイッチ結合論理23を有する。スイ
ッチ結合論理23と各ノードとは、各ポート22a、2
2bで接続される。各ノードが接続されるポート22
a、22bの間の接続を切り替えることにより、1:1
または1:多(同報送信)の接続制御が行なわれる。ま
た、各ポート22a、bには、トランザクションキュー
21a、21bを備えている。
【0038】図4は相互結合網B(30)の構成図であ
る。図4に例示されるように、ノードから出力されたC
CC信号を受信するCCC受信キュー31aと、各ノー
ドから受信したCCC信号をまとめてノード全体のコヒ
ーレンシ一貫性制御の結果を集計する集計論理部(3
3)、集計されたCCC信号を各ノードに送信するCC
C送信キュー31bで構成される。
【0039】ここで、ノードの出力するCCC信号とし
ては、次の4種を定義する。 ‘Inv’:要求されたデータ(キャッシュライン)は
当該ノード内では無効(INVALID)である。 'Sup':要求されたキャッシュラインは自キャッシュ
メモリ13aに"EXCLUSIVE−MODIFIE
D"で存在し、当該データを要求元に転送供給(SUP
PLY)し、転送した当該キャッシュラインは"INV
ALID"とする。要求元のノードは、当該キャッシュ
ラインを受領後"EXCLUSIVE−MODIFIE
D"として扱う。 'Shr':要求されたデータ(キャッシュライン)は当
該ノード内では(Shared−Unmodifie
d)である。 'Rty':要求されたデータ(キャッシュライン)は他
のトランザクションによるキャッシュ・コヒーレンシ一
貫性制御を実行中であり、キャッシュ状態が確定してい
ないため、データ要求の中止と再実行を要求する。
【0040】上記4種のCCC信号を各ノードから受信
して、CCC信号が集まったところで(キャッシュ・コ
ヒーレンシ一貫性制御を要求したノードを除く)、集計
論理部(33)は集計結果を決定する。その方法は下記
の通りである。 全てのCCC信号が’Inv’であったとき:集計結果
は’Inv’。 'Shr'がひとつ以上存在し、'Rty'が含まれていな
かったとき:集計結果は 'Shr'。 'Sup'が含まれていたとき:集計結果は'Sup'。 'Rty'が含まれていたとき:集計結果は'Rty'。た
だし、同時に'Sup'が含まれていたときは'Sup'を
優先し、集計結果は'Sup'になるものとする。
【0041】上記以外の組み合わせが出現しないように
キャッシュは制御される。集計論理部(33)の出力し
た集計結果は、CCC送信キュー31bを経由して、全
ノードに同報送信される。CCC信号はイン・オーダで
処理するものとする。
【0042】図5は、リクエスト管理テーブル部14の
構成図である。図5に示されるように、リクエスト管理
テーブル部14は、自ノード外のメモリに対して自ノー
ドのキャッシュ・メインメモリ制御部12が行なったア
クセスリクエストのアドレスを保持する複数のレジスタ
14bで構成され、キャッシュ・メインメモリ制御部1
2により、パス14aを介して、アドレスの登録、アド
レス登録の抹消などが行われる。
【0043】図6はトランザクション受信部16を説明
するための構成図である。図6で示されるように、トラ
ンザクション受信部16は、バス16aを介して、相互
結合網Aから他ノードが発信したトランザクションを受
信する。また受信したトランザクションを、キャッシュ
・メインメモリ制御部12へ送信する。トランザクショ
ン受信部16は、キャッシュ・コヒーレンシ一貫性制御
を要求するトランザクションを格納するキュー16d、
キュー16dのライトポインタ16fとリードポインタ
16eを有する。
【0044】ライトポインタ16fは、キャッシュ・コ
ヒーレンシ一貫性制御を要求するトランザクションを順
次キュー16dへの格納する制御に用いられるものであ
る。リードポインタ16eは、CCC受信部15からC
CC信号が到着したことを示す信号15cを受け、その
CCC信号に対応するトランザクションをスターベーシ
ョン管理部19にパス16cを介して送信する制御に用
いられる。このCCC信号は、図4を用いて説明したよ
うに、各モードからのCCC信号結果を集約したもので
ある。
【0045】本実施の形態においては、このリクエスト
管理テーブルを参照することによって、自ノードが発行
したリード・トランザクションが、発行されているの
か、発行されていないのか、処理中であるのか、などの
ステータス情報を他ノードに提供することが可能とな
る。
【0046】図7は、スターベーション管理部19の構
成図である。図7に示されるように、スターベーション
管理部19はスターベーション・レジスタ19c、スタ
ーベーション・レジスタ読み出し制御部19dとスター
ベーション・レジスタ書き込み制御部19eを有する。
スターベーション・レジスタ19cは、ノード毎にリー
ド・トランザクションが要求するデータのアクセス先で
あるアドレスを保持するレジスタ19cbと保持された
値の有効性を示すバリッドビット19caを有する。
【0047】本実施の形態におけるスターベーション・
レジスタ書き込み制御部19eは、主に他のノードが発
信したトランザクションの管理を行なうものである。パ
ス15bからCCC信号を、そのCCC信号に対応する
トランザクションをパス16cから受信する。このと
き、スターベーション・レジスタ書き込み制御部19e
は以下のように動作する。 CCC信号がRtyの場合:パス16cから受け取った
トランザクションに埋め込まれた情報からトランザクシ
ョンの発行元ノードを判定し、そのノードに対応するバ
リッドビット19caを読み出す。バリッドビッドが点
灯していない場合は点灯させ、トランザクションに埋め
込まれているアドレスをレジスタ19cbに書き込む。
バリッド信号の点灯は、対象となるアドレスについて、
このノードがリトライ待機中であるということを示す。
リトライ待機中のノードとは、現在処理中の他ノードの
リード・トランザクションが終了後に、そのデータに関
する次のリード・トランザクションのリトライをするノ
ードのことをいう。 CCC信号がRty以外の場合:パス16cから受け取
ったトランザクションに埋め込まれた情報からトランザ
クションの発行元ノードを判定し、そのノードに対応す
るバリッドビット19caとレジスタ19cbを読み出
す。バリッドが点灯していたなら、レジスタ19cbか
ら読み出した値と、トランザクションに埋め込まれてい
るアドレスとを比較し、一致したなら、バリッドビット
19caを消灯させる。CCC信号がRtyではないこ
とは、発行元のノードによるトランザクションのリトラ
イが成功したことを意味する。従って、バリッドビッド
19caを消灯は、次にリトライすべきノードの特定を
解除するためのものである。
【0048】本実施の形態のスターベーション・レジス
タ読み出し制御部19dは、主に自ノードがキャッシュ
ミスをした後に、リード・トランザクション発行する際
に必要な処理を行なうものである。すなわち、プロセッ
サからリクエストが出されたデータに関してキャッシュ
ミスが生じた場合に、そのデータに関する各ノードのス
テータスをチェックするものである。その際のスターベ
ーション・レジスタ読み出し制御部19dの動作は、以
下の通りである。
【0049】キャッシュ・メインメモリ制御部12(1
2)からパス19bを経由して、発信しようとしている
リード・トランザクションの対象となるアドレス値を受
信する。まず、自ノードに対応するバリッドビット19
caとレジスタ19cbを読み出す。バリッドビットが
消灯しているか、または自ノードのレジスタ19cbと
パス19bから受けたアドレスが一致しない場合は、対
象となるデータに対してまだ自ノードからリード・トラ
ンザクションが発行されていないか、もしくは、リトラ
イ待ちでない状態を示す。次に、自ノード以外のレジス
タ19cbの中にパス19bから受けたアドレスと一致
するレジスタがないかどうか検索する。もし一致するレ
ジスタがあり、さらにそのレジスタのバリッドビット1
9caが点灯している場合は、そのレジスタのノード
が、そのアドレスに対してリトライ待機中であることを
意味する。従って、パス19bを介して受けたアドレス
に対し、プロセッサ11に対してリトライをすべき旨を
示す信号を、19aを経由してキャッシュ・メインメモ
リ制御部12に送信する。キャッシュ・メインメモリ制
御部12は、その旨をプロセッサ11に対して通知す
る。
【0050】次に、本実施の形態で使用されるトランザ
クションのタイプについて、図8を参照して説明する。
ノード間の情報の授受は、基本的には、図8に例示され
る64ビット幅のデータ単位(トランザクション)を相
互結合網A(20)の動作サイクル単位に時系列的に、
相互結合網A(20)に送り出し、あるいは、相互結合
網A(20)から受け取ることによって行われる。各ト
ランザクションのデータ構成は、各トランザクションの
タイプを示す領域(TYPE)、各々のトランザクショ
ンに関係するノード(要求元、転送先等)の識別情報等
が格納される領域(PORT)、相手先で各々のトラン
ザクションを処理するときに使用される情報が格納され
る領域(MISC)、リードアクセス対象のアドレスを
格納する領域(ADDRESS)、さらに必要に応じて
伝送されるデータを格納する領域(DATA)を有して
いる。次に、各々のトランザクションのデータ構成につ
いて説明する。
【0051】図8の(a)は、メモリモジュールと全プ
ロセッサ11モジュールにブロードキャスト(同報送
信)されるリード・トランザクションを示している。8
ビット幅のTYPEフィールドには、本トランザクショ
ンがリード・トランザクションであることを示すビット
パターンが設定される。次の8ビットのPORTフィー
ルドには、宛て先情報として、要求先のメインメモリを
保持するノードのポート番号と同時に他の全てのノード
に同報送信すべきことを相互結合網A(20)に指示す
る特定のビットパターンが設定される。次の16ビット
のMISCフィールドには、たとえば、要求元であるノ
ードのポート番号等の識別情報が設定さる。残りの32
ビットのADDRESSフィールドは、リード対象のア
ドレスが設定される。
【0052】図8の(b)は、メインメモリから読み出
したデータを要求元に返すためのリターン・トランザク
ションを示す。TYPEフィールドには、リターン・ト
ランザクションを示す特定のビットパターンが設定さ
れ、PORTフィールドにはリード要求元のノードのポ
ート番号が設定され、MISCフィールドには、たとえ
ばデータ長(サイクル数)等のパラメータが設定され、
残りのフィールドは未使用である。
【0053】図8の(c)は、リード要求に対して、他
ノードのキャッシュメモリ13aが更新された最新デー
タを保持していたときに、これをリード要求元に転送す
る転送トランザクションを示している。TYPEフィー
ルドには、転送トランザクションを示す特定のビットパ
ターンが設定され、PORTフィールドには転送先のノ
ードのポート番号が設定され、MISCフィールドに
は、たとえばデータ長(サイクル数)等のパラメータが
設定され、残りのフィールドは未使用である。
【0054】図8の(d)は、メモリライトを要求する
ライト・トランザクションを示している。TYPEフィ
ールドには、ライト・トランザクションを示す特定のビ
ットパターンが設定され、PORTフィールドには要求
先のメインメモリを保持するノードのポート番号が設定
され、MISCフィールドには、たとえばデータ長(サ
イクル数)等のパラメータが設定され、残りのフィール
ドは未使用である。
【0055】次に図9、図10、図11のタイミングチ
ャートを参照して、本実施の形態のマルチプロセッサ1
1システムおよびトランザクション制御の作用の一例を
説明する。なお、図9と図10、図11において、縦方
向には、動作に関係する各ノードまたはノード内の構成
要素が配置され、横方向は各ノードの動作の時間軸を示
す。時間軸は、行なわれる処理のまとまり毎に、フェー
ズ1〜6に区切られている。本実施の形態におけるマル
チプロセッサ11システムのノード数はND0〜ND2
の3ノードとする。また、初期状態として、全ノードの
リクエスト管理部14に登録はなく、またスターベーシ
ョン管理部19のバリッドビット19caは全て消灯し
ているものとする。
【0056】(フェーズ1)図9において、ND0のプ
ロセッサ11がリード要求を発行する。要求されたデー
タのキャッシュ状態はInvalidであり、キャッシ
ュミスを起こす。キャッシュ・メインメモリ制御装置
は、アドレスをリクエスト管理テーブル14に登録し、
相互結合網Aにリード・トランザクションを発行する。
相互結合網Aは全ノードにND0の発行したリード・ト
ランザクションを配信する。ND1とND2はリード・
トランザクションを受けると、自ノードのキャッシュ状
態を調べ、Invalid状態であることを示すメッセ
ージ’Inv’を相互結合網Bに送信する。相互結合網
BはND1とND2から送信された’Inv’メッセー
ジを受信し、これを集計して、集計結果’Inv’メッ
セージを全ノードに配信する。
【0057】(フェーズ2)ND1のプロセッサ11が
リード要求を発行する。リード要求のアドレスは(フェ
ーズ1)でND0のプロセッサ11が発行したリード要
求のアドレスと同一であるとする。従って、フェーズ1
は、リード・トランザクションが処理中の状態におい
て、同じアクセスに対するリード要求が発行された場合
の具体的な処理を示している。
【0058】ND1はキャッシュミスを起こす。キャッ
シュ・メインメモリ制御装置はアドレスをリクエスト管
理テーブル14に登録し、相互結合網Aにリード・トラ
ンザクションを発行する。相互結合網Aは全ノードにN
D1の発行したリード・トランザクションを配信する。
ND2は、トランザクション受信部16において、リー
ド・トランザクションを受ける。受け取った結果、キャ
ッシュ・メインメモリ制御部12が自ノードのキャッシ
ュ状態を調べ、Invalid状態であることを示すメ
ッセージ’Inv’を、CCC送信部17から相互結合
網Bに送信する。
【0059】一方、このリード・トランザクションをト
ランザクション受信部16で受信したND0は、キャッ
シュ・メインメモリ制御部12がリクエスト管理テーブ
ル14を調べ、要求されたデータのアドレスが登録され
ているか否かをチェックする。ND0にはフェーズ1で
要求されたデータのアドレスに対して、リード・トラン
ザクションを発信しているため、このアドレスが登録さ
れており、同一アドレスに対する自ノードのリード処理
が実行中であることが判明する。ND0のリード処理は
実行途中であり、キャッシュの状態が確定していないた
め、ND1のリード要求に対してキャッシュの状態を応
答することができない。
【0060】この問題に対しては、たとえば、キャッシ
ュメモリ13aがメインメモリからのデータの読み込み
の処理を実行中で、キャッシュの状態が確定していない
場合には、別のキャッシュメモリ13aからのキャッシ
ュ・コヒーレンシ一貫性制御要求に対してはキャッシュ
・コヒーレンシ一貫性制御要求の中止と再実行(リトラ
イ)を要求する方法が考えられる。
【0061】このとき、次のような問題が生じる。例え
ば、ある第一のキャッシュメモリ13aがメインメモリ
からのデータの読み込みの処理を実行中であり、第二の
キャッシュメモリ13aからのキャッシュ・コヒーレン
シ一貫性制御要求に対してリトライを要求したとする。
ここで、第一のキャッシュメモリ13aの処理が完了
し、第二のキャッシュメモリ13aがキャッシュ・コヒ
ーレンシ一貫性制御要求を再実行する直前に第三のキャ
ッシュメモリ13aがキャッシュ・コヒーレンシ一貫性
制御要求を発行したとする。すると、これより遅れてキ
ャッシュ・コヒーレンシ一貫性制御要求の再実行をした
第二のキャッシュメモリ13aは第三のキャッシュメモ
リ13aによって再びリトライを要求される。このよう
なことが繰り返されると、第二のキャッシュメモリ13
aのキャッシュ・コヒーレンシ一貫性制御要求がいつま
でも処理されず、沈み込み(スターベーション)を起こ
す可能性がある。この問題に関しては、(フェーズ4)
で本発明により解決方法が示されるであろう。
【0062】ND0はキャッシュ・コヒーレンシ一貫性
制御の結果として、ND1のリード要求の中止と再実行
(リトライ)を要求するメッセージ'Rty'をCCC送
信部17から相互結合網Bに送信する。このように、各
ノードは、自ノードの発信したリード・トランザクショ
ンが処理中の状態であるかどうかということに関して、
他ノードにその情報を通知する。
【0063】次に、相互結合網Bは、ND2の発行し
た’Inv’メッセージとND0の発行した'Rty'
メッセージを集計して、集計結果'Rty'メッセージを
全ノードに配信する。
【0064】各ノードのCCC受信部15は、このCC
C信号を受け取り、スターベーション管理部19に出力
する。スターベーション管理部19では、前述のよう
に、ND1の発行したリード・トランザクションが送信
されている。この処理では、前述のスターベーション・
レジスタ書込み制御部19eが処理を行なう。スターベ
ーション・レジスタ書込み制御部19eがスターベーシ
ョン・レジスタ19cのND1のバリッドビット19c
aを点灯させ、レジスタ19cbにリード・トランザク
ションのアドレスを登録する。このようにして、スター
ベーション・管理部を参照すれば、格納されたリード・
トランザクションのアドレスに対して、現在処理中のN
D0のリード・トランザクションが終了した場合、次に
ND1のリード・トランザクションが処理される予定で
あることを、処理中のリード・トランザクションを発行
したND0、リトライを要求されたリード・トランザク
ションを発行したND1を含めた各々のノードで把握す
ることが可能となる。
【0065】一方、ND1は'Rty'メッセージを受信
すると、プロセッサ11に対してリード要求の再実行
(リトライ)を要求し、リクエスト管理テーブル14の
アドレスの登録を抹消して、リード処理を完了する。そ
の後、プロセッサ11からリトライがされると、再度リ
ード・トランザクションが実行されることとなる。
【0066】このように、ND0がリード処理を実行中
であり、リクエスト管理テーブル14に登録されている
アドレスへの他ノードのリード要求に対して'Rty'を
返答することにより、キャッシュメモリ13aの状態が
確定していないアドレスに対して誤ったキャッシュ・コ
ヒーレンシ一貫性制御結果を返答することを防ぐことが
でき、さらには正しくキャッシュ一貫性を保つことがで
きる。
【0067】(フェーズ3)ND0は(フェーズ1)の
リード要求の処理を継続し、メインメモリのデータをキ
ャッシュメモリ13aにExclusive−Unmo
dified状態で登録して、プロセッサ11にデータ
を供給する。また、リクエスト管理テーブル14のアド
レスの登録を抹消して、リード処理を完了する。
【0068】(フェーズ4)図10は図9の処理の続き
を図示している。図10のタイミングチャートの開始時
点では、全ノードのスターベーション・レジスタ19c
のND1に対応するバリッドビット19caが点灯して
おり、またレジスタ19cbには(フェーズ2)でND
1のプロセッサ11が要求したリードアドレスが登録さ
れている。
【0069】ここで、ND2のプロセッサ11がリード
要求を発行する。リード要求のアドレスは(フェーズ
1)でND0のプロセッサ11が発行したリード要求の
アドレスおよび、(フェーズ2)でND1のプロセッサ
11が発行したリード要求のアドレスと同一であるとす
る。従って、リトライ待機中のノードがある場合に、そ
れ以外のノードのプロセッサ11が、同じアドレスに対
してリクエストをした場合の説明である。
【0070】ND2のキャッシュはキャッシュミスを起
こす。ND2のキャッシュ・メインメモリ制御部12は
パス19bを経由して、スターベーション管理部19に
対して、リード要求のアドレスを送信する。ここで、図
7で説明したように、スターベーション管理部19のス
ターベーション・レジスタ読み出し制御部19dはパス
19bから受信したアドレスに対して、スターベーショ
ン・レジスタ19cの検索を行なう。ND2に対応する
バリッドビットは点灯しておらず、ND1に対応するバ
リッドビットが点灯し、さらにレジスタ19caに登録
されているアドレスはパス19bから受信したアドレス
に一致する。
【0071】上記の判定から、ND2のスターベーショ
ン管理部19はパス19aを経由して、キャッシュ・メ
インメモリ制御部12を経由して、プロセッサ11から
当該アドレスへのアクセスの中止および再実行(リトラ
イ)を要求する信号を送信する。パス19aからリトラ
イの要求を受けたND2のキャッシュ・メインメモリ制
御部12は相互結合網Aにリード・トランザクションを
発行することなく、プロセッサ11に対してリード要求
の再実行を要求して、リード処理を完了する。
【0072】(フェーズ5)次に、リード要求のリトラ
イを要求されたND1のプロセッサ11は再び、同一ア
ドレスに対するリード要求を発するものとする。これ
は、次に処理される予定のリード・トランザクションを
発行するべきノードが、リトライをする処理を示すもの
である。
【0073】ND1はキャッシュミスを起こす。キャッ
シュ・メインメモリ制御装置はアドレスをリクエスト管
理テーブル14に登録し、相互結合網Aに向かってリー
ド・トランザクションを発行する。
【0074】相互結合網Aは全ノードにリード・トラン
ザクションを配信する。ND2はリード・トランザクシ
ョンを受けると、自ノードのキャッシュ状態を調べ、I
nvalid状態であることを示すメッセージ’In
v’を相互結合網Bに送信する。
【0075】リード・トランザクションを受信したND
0は自ノードのキャッシュ状態を調べ、要求されたデー
タがExclusive−Unmodified状態で
登録されていることを認識する。ND0のキャッシュ・
メインメモリ制御部12はキャッシュの状態をInva
lidに変更した後、キャッシュ・コヒーレンシ一貫性
制御結果として、’Inv’メッセージを相互結合網B
に送信する。また、ND0はリード・トランザクション
の要求するアドレスが自ノードのメインメモリのデータ
を要求していることを判定し、メインメモリからデータ
を読み出して、相互結合網Aに送信する。
【0076】相互結合網BはND0とND2の’In
v’メッセージを集計して、集計結果’Inv’メッセ
ージを全ノードに配信する。
【0077】このとき、各ノードのスターベーション管
理部19にはこの’Inv’メッセージとND1の発行
したリード・トランザクションが送信されている。各ノ
ードのスターベーション管理部19はスターベーション
・レジスタ19cのND1のバリッドビット19caが
点灯していることと、レジスタ19cbに登録されてい
るアドレスがリード・トランザクションのアドレスと一
致することを判定し、ND1のバリッドビット19ca
を消灯する。
【0078】相互結合網Bからの’Inv’メッセージ
と、ND0からのデータを受信したND1は、データを
Exclusive−Unmodified状態でキャ
ッシュメモリ13aに登録して、プロセッサ11にデー
タを供給する。また、リクエスト管理テーブル14のア
ドレスの登録を抹消して、リード処理を完了する。
【0079】このように、スターベーション管理部19
に'Rty'のキャッシュ・コヒーレンシ一貫性制御結果
を受けたアドレスとメモリアクセスの要求元を登録し
て、該要求元以外からの該アドレスに対するメモリアク
セスを抑止することによって、該要求元の優先度を上げ
て、要求の沈み込みを防ぐことができる。
【0080】(フェーズ6)図11は図10の処理の続
きを図示している。図11のタイミングチャートの開始
時点では、全ノードのスターベーション・レジスタのバ
リッドビット19caは全て消灯しており、また、どの
ノードでもリクエスト管理テーブル14部にアドレスの
登録はない。
【0081】リード要求のリトライを要求されたND2
のプロセッサ11は再び、同一アドレスに対するリード
要求を発する。これは、次に処理されるべきリード・ト
ランザクションがある場合に、リード・トランザクショ
ンを発行しなかったノードが、リトライをする処理を示
す。
【0082】ND2はキャッシュミスを起こす。(フェ
ーズ4)においては、ND2のキャッシュ・メインメモ
リ制御部12はスターベーション管理部19のリトライ
指示により、相互結合網Aにリード・トランザクション
を発行することなく、プロセッサ11に対してリード要
求の再実行を要求して、リード処理を完了した。ここで
は、スターベーション・レジスタのバリッドビットは点
灯していないため、キャッシュ・メインメモリ制御部1
2はアドレスをリクエスト管理テーブル14に登録し、
相互結合網Aにリード・トランザクションを発行する。
【0083】相互結合網Aは全ノードにリード・トラン
ザクションを配信する。
【0084】ND0はリード・トランザクションを受け
ると、自ノードのキャッシュ状態を調べ、Invali
d状態であることを示すメッセージ’Inv’を相互結
合網Bに送信する。リード・トランザクションを受信し
たND1は自ノードのキャッシュ状態を調べ、要求され
たデータがExclusive−Unmodified
状態で登録されていることを判定する。ND1のキャッ
シュ・メインメモリ制御部12はキャッシュの状態をI
nvalidに変更した後、キャッシュ・コヒーレンシ
一貫性制御結果として、’Inv’メッセージを相互結
合網Bに送信する。また、ND0はリード・トランザク
ションの要求するアドレスが自ノードのメインメモリの
データを要求していることを判定し、メインメモリから
データを読み出して、相互結合網Aに送信する。
【0085】相互結合網BはND0とND1の’In
v’メッセージを集計して、集計結果’Inv’メッセ
ージを全ノードに配信する。
【0086】相互結合網Bからの’Inv’メッセージ
とND0からのデータを受信したND2は、データをE
xclusive−Unmodified状態でキャッ
シュメモリ13aに登録して、プロセッサ11にデータ
を供給する。また、リクエスト管理テーブル14のアド
レスの登録を抹消して、リード処理を完了する。
【0087】このように、本実施の形態では、各ノード
は、自ノードが発行したリード・トランザクションにつ
いてはリクエスト管理テーブル14を用いて管理する。
このリクエスト管理テーブル14を用いて、他ノードか
らのリード・トランザクションを受け取った場合に、自
ノードの発行状態を通知することが可能となる。また、
相互結合網においては、いずれかのノードから発行され
たリード・トランザクションに対応して各ノードから自
己のキャッシュ状態に関する情報を集計し、いずれかの
ノードが発行したトランザクションが処理中であるかど
うかを決定し、その決定結果を各ノードに通知する。こ
のようにして、あるノードに対するリード・トランザク
ションが処理中であるのに、別のノードからリード・ト
ランザクションが発行され、そのノードに対してキャッ
シュメモリが応答してしまうという事態を防止すること
が可能となる。
【0088】本実施の形態においては、さらに、相互結
合網からの通知は、アドレスとともに各ノードのスター
ベーション管理部19に登録され、次にリード・トラン
ザクションをすることが可能なノードを決めることでき
る。さらには、このスターベーション管理部19を用い
て、自ノードからリード・トランザクションを発行すべ
きか否かを判断することが可能となる。このように、処
理中のリード・トランザクションがある場合に、次に処
理されるべきノードを定めることができ、それ以外のノ
ードは、そのノードの処理が完了するまでは、同一アド
レスに対するリード・トランザクションを発行しないこ
とにより、処理の沈みこみを防ぐことができる。
【0089】なお、本実施の形態においては、リクエス
ト管理テーブル14を参照し、自ノードのCCC信号と
して‘Rty’を出力する場合に、併せてスターベーシ
ョン・レジスタ19cに対する登録を行なうようにして
もよい。すなわち、一つでも‘Rty’が出力される場
合は、各ノードがその旨を認識する必要があるので、集
計結果を出さずに、そのまま他のノードに対して‘Rt
y’信号を出力する構成としてもよい。または、自ノー
ドのスターベーション・レジスタ19cに対してはすぐ
に書き込みを行なうような構成とすることも可能であ
る。
【0090】次に、第二の実施の形態について説明す
る。第一の実施の形態では、自ノードが発行したトラン
ザクションに関しては、リクエスト管理テーブル14を
参照するようにしていたが、スターベーション管理部1
9を併用する構成としてもよい。この場合は、リクエス
ト管理テーブル14の構成を全くなくし、リクエスト管
理テーブル14で行なう処理をすべてスターベーション
管理部19で統括させる構成としてもよいし、他ノード
からのトランザクションを受け取った場合にどのCCC
信号を出力するかを決める場合にのみスターベーション
管理部19を用いる構成としてもよい。
【0091】前者の構成では、図9〜11において、リ
クエスト管理テーブルへのアドレスの登録、抹消処理
は、すべてスターベーション管理部19で行なわれるこ
ととなる。その場合は、バリッドビッド19のほかに、各
々のノードに対して、処理中であることを示すペンディ
ングビットを格納する構成とする。受信したCCC信号
が’Inv’であったときは、その他にそのアドレスが
あり、そのレジスタのバリッドビッド19cが点灯して
ない場合に、自ノードのレジスタにそのアドレスを格納
し、対応するペンティングビットを立てる。このように
して、現在トランザクションが処理中であることが各ノ
ードにおいて登録される。自ノードが発行したトランザ
クションが終了した場合は、ペンディングビッドを倒
し、レジスタの値を消去する。
【0092】また、後者の場合は、自ノードのみ処理中
であることを把握しておけばよいので、前者のような構
成でなく、第一の実施の形態においてリクエスト管理テ
ーブル14にアドレスを格納するのに合わせて、スター
ベーション・レジスタの自ノードのレジスタにそのアド
レスを格納し、ペンディングビットを立てる構成とす
る。
【0093】このように、スターベーション・レジスタ
を処理中のノードとリトライ待機中のノードを登録する
構成とした場合の、各ノードにおけるキャッシュ・コヒ
ーレンシ一貫性制御について説明する。本実施の形態で
は、図9のフェーズ2において、他ノードからのトラン
ザクションを受けると、スターベーション・レジスタを
用いて、自ノードのトランザクションが処理中であるか
否かを識別する点が異なる。自ノードに対して、他ノー
ドのトランザクションのアドレスと同一アドレスに対し
て、ペンディングビットがたっている場合は、CCC信
号として‘Rty’信号を出力する。このような構成に
より、自ノードが処理中の場合であるのに関わらず、キ
ャッシュメモリが別のキャッシュメモリからのキャッシ
ュ・コヒーレンシ一貫性要求に応答してしまうことを防
止することができる。
【0094】また、本実施の形態において、前者の構
成、すなわち、処理中のリード・トランザクションを全
てのノードのスターベーション・レジスタに登録可能な
構成においては、図9のフェーズ2において自ノードが
トランザクションを発行する場合に、スターベーション
・レジスタを参照し、すでに処理中のリード・トランザ
クションがあることを認識することが可能となる。従っ
て、自ノードがトランザクションを発行する前に参照す
ることで、第二のトランザクションが発行されることを
防ぐことができる。その場合は、リトライ待機中のノー
ドに対しては、沈み込みは防止することができないが、
相互結合網の不要なトランザクションを削減することが
可能となる。
【0095】次に、第3の実施の形態について説明す
る。本実施の形態では、スターベーション・レジスタに
おいて、リトライ待機中のノードを複数登録することが
できるものとする。すなわち、スターベーション管理部
19を、各ノードのエントリに対して、優先順位をつけ
るための領域を有する構成とする。このようにして、処
理されるべきリード・トランザクションを複数個登録す
るものとする。次に、本実施の形態における処理を説明
する。
【0096】まず、複数個のノードを登録可能とするた
めに、本実施の形態においては、プロセッサ11からリ
クエストが出され、スターベーション・レジスタにリト
ライ待機中のノードがあったとしても、プロセッサ11
に対してリトライを要求するのではなく、他ノードに対
してリード・トランザクションを発行する構成となる。
また、本実施の形態では、他ノードからのトランザクシ
ョンを受け取った場合に、リクエスト管理テーブル14
だけでなく、スターベーション管理部19が、スターベ
ーション・レジスタも参照するものとする。
【0097】例えば、図10のフェーズ4を例に説明す
ると、ND2がキャッシュミスを起こした場合にスター
ベーション・レジスタを参照すると、ND1がリトライ
待機中であることが判明する。その場合に、リード・ト
ランザクションを発行すると、ND0は、リクエスト管
理テーブル14とスターベーション・レジスタの自ノー
ドのレジスタを確認し、自ノードが、処理中又はリトラ
イ待機中であるか否かを判断する。ND0の場合は、処
理中でも、リトライ待機中でもないので、CCC信号と
して’Inv’信号を出力する。ND1は、リクエスト
管理テーブル14を参照すると自ノードが処理中でない
ことがわかるが、スターベーション・レジスタを参照す
ると、自ノードがリトライ待機中であることが判明す
る。この場合に、ND1は、‘Rty’信号をCCC信
号として出力する。すると、相互結合網の集計結果によ
り、‘Rty’信号が通知され、ND2についてもリト
ライ待機中であることを各ノードで判断することが可能
である。ND2がリトライ待機中であることをスターベ
ーション・レジスタに登録する場合に、現状のスターベ
ーション・レジスタに登録されているリトライ待機中の
ノードを計数し、ND2は優先順位を格納するビットに
その中で最後の優先順位を登録するものとする。このよ
うな構成により、複数のリトライ待機中のノードを登録
することが可能となる。
【0098】次に、リトライ待機中であってノードがリ
トライを行なう場合の処理について説明する。優先順位
をきめて複数個のリトライ待機中のノードを登録可能と
する場合は、リトライ待機中のノードの優先順位に従っ
て処理を行なわないと、沈み込みを防止することができ
ない。まず、自ノードのプロセッサ11からリトライが
リクエストされた場合に、スターベーション・レジスタ
を参照する。本実施の形態のスターベーション・レジス
タにおいては、自ノードのリトライ待機中のノードが、
各優先順位とともに登録されている。従って、リトライ
待機中の他のノードが登録されていたとしても、自ノー
ドの優先順位が最優先となっている場合は、リード・ト
ランザクションを出力する。反対に、自ノードよりも、
他のノードの方が高い優先順位の場合は、第1の実施の
形態におけるフェーズ4と同様に、プロセッサへリトラ
イの指示をだす。このような構成により、本実施の形態
においては、複数のリトライ待機中の他ノード間での、
スターベーションを防止することが可能となる。
【0099】
【発明の効果】本発明によれば複数のキャッシュメモリ
が時間的に近接してメインメモリからのデータの読み込
みの処理を実行した場合にも、正しいキャッシュ・コヒ
ーレンシ一貫性制御を実現することが可能なマルチプロ
セッサシステムを得ることができる。
【0100】また、本発明によればキャッシュ一貫性を
保つために、キャッシュ・コヒーレンシ一貫性制御要求
に対する中止と再実行を要求しても、キャッシュ・コヒ
ーレンシ一貫性制御要求の沈み込みを防ぐことが可能な
マルチプロセッサシステムを得ることができる。
【0101】また、本発明によればリトライの要求を受
けたプロセッサがメモリアクセスの再実行を行なう間、
該メモリアクセスのアドレスに対するその他のプロセッ
サのメモリアクセス要求が相互結合網に発行されること
を抑止するので、相互結合網が処理するトランザクショ
ン数を削減する効果もある。
【図面の簡単な説明】
【図1】本発明の一実施の形態であるマルチプロセッサ
システム全体の構成の一例を示す構成図である。
【図2】本発明の一実施の形態であるマルチプロセッサ
システムにおけるノードの構成の一例を詳細に例示した
構成図である。
【図3】本発明の一実施の形態であるマルチプロセッサ
システムにおける相互結合網Aの構成の一例を詳細に例
示した構成図である。
【図4】本発明の一実施の形態であるマルチプロセッサ
システムにおける相互結合網Bの構成の一例を詳細に例
示した構成図である。
【図5】本発明の一実施の形態であるマルチプロセッサ
システムにおけるノード内のリクエスト管理テーブル部
の一例を例示した構成図である。
【図6】本発明の一実施の形態であるマルチプロセッサ
システムにおけるノード内のトランザクション受信部の
一例を例示した構成図である。
【図7】本発明の一実施の形態であるマルチプロセッサ
システムにおけるノード内のスターベーション管理部の
一例を例示した構成図である。
【図8】本発明の一実施の形態であるマルチプロセッサ
システムに用いられるトランザクションの構成の一例を
示す構成図である。
【図9】本発明の一実施形態におけるメモリリード処理
の作用の一例を示すタイミングチャートである(フェー
ズ1〜3)。
【図10】本発明の一実施形態におけるメモリリード処
理の作用の一例を示すタイミングチャートである(フェ
ーズ4〜5)。
【図11】本発明の一実施形態におけるメモリリード処
理の作用の一例を示すタイミングチャートである(フェ
ーズ6)。
【図12】従来技術を説明するためのマルチプロセッサ
システム全体の構成の一例を示す構成図である。
【図13】従来技術を説明するためのマルチプロセッサ
システムにおけるメモリリード処理の動作を示すタイミ
ングチャートである。
【図14】従来技術を説明するためのマルチプロセッサ
システムにおいて、二つのプロセッサが同一アドレスに
対するリード処理を時間的に近接して行なうときの動作
を示すタイミングチャートである。
【符号の説明】
10…ノード(ND0〜NDn) 11…プロセッサ 12…キャッシュ・メインメモリ制御部 13a…キャッシュメモリ 13b…キャッシュタグ 13c…メインメモリ 14…リクエスト管理テーブル部 14a…キャッシュ・メインメモリ制御部とリクエスト
管理テーブル間のパス 14b…アドレス登録レジスタ 15…CCC受信部 15a…相互結合網BからCCC受信部へのパス 15b…CCC受信部からキャッシュ・メインメモリ制
御部とスターベーション管理部へのパス 15c…CCC受信部からトランザクション受信部への
パス 16…トランザクション受信部 16a…相互結合網Aからトランザクション受信部への
パス 16b…トランザクション受信部からキャッシュ・メイ
ンメモリ制御部へのパス 16c…トランザクション受信部からスターベーション
管理部へのパス 16d…キャッシュ・コヒーレンシ一貫性制御を要求す
るトランザクションを保持するキュー 16e…キュー(16d)のリードポインタ 16f…キュー(16d)のライトポインタ 17…CCC送信部 17a…CCC送信部から相互結合網Bへのパス 17b…キャッシュ・メインメモリ制御部からCCC送
信部へのパス 18…トランザクション送信部 18a…トランザクション送信部から相互結合網Aへの
パス 18b…キャッシュ・メインメモリ制御部からトランザ
クション送信部へのパス 19…スターベーション管理部 19a…スターベーション管理部からキャッシュ・メイ
ンメモリ制御部へのパス 19b…キャッシュ・メインメモリ制御部からスターベ
ーション管理部へのパス、 19c…スターベーション・レジスタ 19ca…スターベーション・レジスタのバリッドレジ
スタ 19cb…スターベーション・レジスタのアドレスレジ
スタ 19d…スターベーション・レジスタ読み出し制御部 19e…スターベーション・レジスタ書き込み制御部 20…相互結合網A(XB1) 20a…リード・トランザクション 20b…リターン・トランザクション 20c…転送トランザクション 20e…ライト・トランザクション 21a…トランザクション受信キュー 21b…トランザクション送信キュー 22a…トランザクション受信ポート 22b…トランザクション送信ポート 30…相互結合網B(XB2) 31a…CCC信号受信キュー 31b…CCC信号送信キュー 32a…CCC信号受信キューから集計論理部へのパ
ス、 32b…集計論理部からCCC信号送信キューへのパス 33…集計論理部 100…ノード 101…プロセッサ 102…キャッシュ・メインメモリ制御部 103…キャッシュメモリ 104…キャッシュタグ 105…メインメモリ 111…相互結合網A 112…相互結合網B
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 551 G06F 12/08 551C 575 575 15/16 645 15/16 645 (72)発明者 藤原 至誠 神奈川県海老名市下今泉810番地 株式会 社日立製作所インターネットプラットフォ ーム事業部内 (72)発明者 小柳 勝 神奈川県海老名市下今泉810番地 株式会 社日立製作所インターネットプラットフォ ーム事業部内 (72)発明者 村上 祥基 神奈川県海老名市下今泉810番地 株式会 社日立製作所インターネットプラットフォ ーム事業部内 Fターム(参考) 5B005 JJ01 KK03 KK14 MM01 NN43 NN45 NN53 NN72 NN75 PP11 PP26 5B045 BB16 BB28 DD12 EE03 EE12

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】複数のノードと、前記複数のノードを接続
    する相互結合網と、前記複数のノードがアクセスするメ
    インメモリを有するマルチプロセッサシステムにおい
    て、前記複数のノードの各々は、自ノードが行なった前
    記メインメモリに対するリード要求のステータス情報を
    出力し前記メインメモリに対する前記他ノードのリード
    要求に関する第1の情報を受信する第1の通信部と、前記
    受信した第一の情報を格納する記憶部と、自ノードが前
    記記憶部に格納した情報を参照し前記メインメモリに対
    するリード要求を行なうか否かを決定する制御部を備え
    ることを特徴とするマルチプロセッサシステム。
  2. 【請求項2】請求項1に記載のマルチプロセッサシステ
    ムにおいて、前記複数のノードの各々は、前記メインメ
    モリとの間で授受されるデータを保持するキャッシュメ
    モリを有し、前記第1の通信部は、前記第1の情報を格納
    した後に前記ステータス情報もしくは前記リード要求が
    されたデータに対する自ノードのキャッシュ状態情報を
    出力し、前記相互結合網は前記複数のノードの各々から
    前記第1の通信部が出力した前記ステータス情報もしく
    はキャッシュ状態情報を受信する第2通信部と、前記第
    2の受信部が受信した前記ステータス情報もしくはキャ
    ッシュ状態情を集約する論理部とを備え、前記第2の通
    信部は前記論理部が集約した集約結果を前記複数のノー
    ドに通知することを特徴とするマルチプロセッサシステ
    ム。
  3. 【請求項3】請求項2に記載のマルチプロセッサシステ
    ムにおいて、前記第1の通信部は前記集約結果を受信
    し、前記記憶部は前記集約結果を更新することを特徴と
    するマルチプロセッサシステム。
  4. 【請求項4】請求項1に記載のマルチプロセッサシステ
    ムにおいて、前記リード要求に関する第1の情報は前記
    リード要求を出力したノードに識別情報と、前記リード
    要求がされたメモリのアクセス先アドレスであることを
    特徴とするマルチプロセッサシステム。
  5. 【請求項5】請求項4に記載のマルチプロセッサシステ
    ムにおいて、前記記憶部は同一のアドレスに対して複数
    のリード要求がされている場合に、前記複数のリード要
    求の優先順位をさらに格納することを特徴とするマルチ
    プロセッサシステム。
  6. 【請求項6】複数のプロセッサモジュールであって、前
    記複数のプロセッサモジュールの各々は、データ処理を
    行なうプロセッサと、自モジュール及び他モジュールの
    プロセッサが処理するデータを格納するメインメモリ
    と、前記プロセッサが処理するデータを一時格納するキ
    ャッシュメモリと、リード処理要求を行なったモジュー
    ルと前記リード処理要求に関する情報を格納する第1の
    記憶部と、前記他モジュールが行なったリード処理要求
    に対する自キャッシュメモリ情報を出力し、自モジュー
    ルのプロセッサが前記キャッシュメモリに格納されてい
    ないデータを要求する場合に前記第1の記憶部に格納さ
    れている情報を参照してリード要求をするか否かを判断
    するキャッシュメモリ制御部を有する複数のプロセッサ
    モジュールと、前記複数のプロセッサモジュールを接続
    する相互結合網であって、前記複数のプロセッサモジュ
    ールが出力したキャッシュメモリ情報を集約し前記複数
    のプロセッサモジュールに集約結果を出力する相互結合
    網を有することを特徴とするマルチプロセッサシステ
    ム。
  7. 【請求項7】相互結合網を介して接続された他のノード
    とメインメモリを共有し、前記メインメモリのデータを
    一時格納するキャッシュメモリと、ノードが行なったリ
    ード要求の状態を保持する記憶部を有する複数のノード
    に対するキャッシュ・コヒーレンシ制御方法において、
    前記キャッシュメモリにデータがない場合には、前記記
    憶部に格納した情報を参照し、前記他のノードが前記デ
    ータに対するリード要求を行なっている場合は自ノード
    からのリード要求を中止し、前記他のノードが前記デー
    タに対するリード要求を行なっていない場合はリード要
    求を発行し、自ノードのリード要求の処理状態を前記記
    憶部に保持することを特徴とするキャッシュ・コヒーレ
    ンシ制御方法。
JP2001345530A 2001-11-12 2001-11-12 マルチプロセッサシステム Expired - Fee Related JP3714235B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001345530A JP3714235B2 (ja) 2001-11-12 2001-11-12 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001345530A JP3714235B2 (ja) 2001-11-12 2001-11-12 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2003150573A true JP2003150573A (ja) 2003-05-23
JP3714235B2 JP3714235B2 (ja) 2005-11-09

Family

ID=19158850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001345530A Expired - Fee Related JP3714235B2 (ja) 2001-11-12 2001-11-12 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP3714235B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155110A (ja) * 2004-11-29 2006-06-15 Fujitsu Ltd 情報処理装置、システム制御装置、システム制御方法
JP2006323432A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd 主記憶共有型マルチプロセッサシステムの高性能化技術
JP2011002986A (ja) * 2009-06-18 2011-01-06 Nec Computertechno Ltd レイテンシ短縮システム、レイテンシ短縮方法、および、レイテンシ短縮プログラム
US7945754B2 (en) 2006-02-24 2011-05-17 Fujitsu Limited Multiprocessor system, processor, and cache control method
US8397031B2 (en) 2008-01-28 2013-03-12 Nec Computertechno, Ltd. Apparatus, processor and method of cache coherency control
JP2018533133A (ja) * 2015-09-24 2018-11-08 クアルコム,インコーポレイテッド リトライバスコヒーレンシプロトコルおよびインオーダーレスポンス非リトライバスコヒーレンシプロトコルを使用するプロセッサベースシステムにおけるデッドロックの回避

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155110A (ja) * 2004-11-29 2006-06-15 Fujitsu Ltd 情報処理装置、システム制御装置、システム制御方法
US7418558B2 (en) 2004-11-29 2008-08-26 Fujitsu Limited Information processing system, system control apparatus, and system control method
JP4609929B2 (ja) * 2004-11-29 2011-01-12 富士通株式会社 情報処理装置、システム制御装置、システム制御方法
JP2006323432A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd 主記憶共有型マルチプロセッサシステムの高性能化技術
US7945754B2 (en) 2006-02-24 2011-05-17 Fujitsu Limited Multiprocessor system, processor, and cache control method
US8397031B2 (en) 2008-01-28 2013-03-12 Nec Computertechno, Ltd. Apparatus, processor and method of cache coherency control
JP2011002986A (ja) * 2009-06-18 2011-01-06 Nec Computertechno Ltd レイテンシ短縮システム、レイテンシ短縮方法、および、レイテンシ短縮プログラム
JP2018533133A (ja) * 2015-09-24 2018-11-08 クアルコム,インコーポレイテッド リトライバスコヒーレンシプロトコルおよびインオーダーレスポンス非リトライバスコヒーレンシプロトコルを使用するプロセッサベースシステムにおけるデッドロックの回避

Also Published As

Publication number Publication date
JP3714235B2 (ja) 2005-11-09

Similar Documents

Publication Publication Date Title
RU2220444C2 (ru) Компьютерная система и способ передачи данных в компьютерной системе
JP3210590B2 (ja) マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
US6738868B2 (en) System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US7529799B2 (en) Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US7600080B1 (en) Avoiding deadlocks in a multiprocessor system
US7529866B2 (en) Retry mechanism in cache coherent communication among agents
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US20010013089A1 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6725307B1 (en) Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
JPH10187470A (ja) スピンロック動作を最適化する装置を含むマルチプロセス・システム
JPH10340227A (ja) ローカル・グローバル・アドレス・スペース及びマルチアクセス・モードを用いたマルチプロセッサ・コンピュータ・システム
JP2000227908A (ja) 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム
JPH10134014A (ja) 3ホップ通信プロトコルを用いたマルチプロセス・システム
JPH10214230A (ja) 応答カウントを含むコヒーレンシー・プロトコルを採用したマルチプロセッサ・システム
US6877056B2 (en) System with arbitration scheme supporting virtual address networks and having split ownership and access right coherence mechanism
US8176261B2 (en) Information processing apparatus and data transfer method
JPH10143476A (ja) プリフェッチ動作を開始するソフトウエアを実行するマルチプロセス・システム
JPH10289157A (ja) Smpバスの共用介入優先方法及びシステム
EP3644190B1 (en) I/o coherent request node for data processing network with improved handling of write operations
US5987544A (en) System interface protocol with optional module cache
US20070073977A1 (en) Early global observation point for a uniprocessor system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050815

LAPS Cancellation because of no payment of annual fees