5.1 MINDIC の概観
本論文では,MIN接続でキャッシュの一致制御を取る新しい方法として,ディレクトリ を共有メモリ(MM)側に設けず,MINを構成する各スイッチ内に小容量のテンポラリディ レクトリ(TD)を設け,その上にディレクトリ構造を動的に構成するMINDIC(MIN with DIrectory Cache switch)を提案する.
図5.1に,MINDICを用いたシステムの構成の一例を示す.各PUとMMは,メモリア
クセス要求およびキャッシュ制御パケットの転送を行うMINDICと,キャッシュラインの ブロック転送を行なうデータ転送用結合網の,分離された2つの結合網を介して接続され る.書き込みはWrite Through方式のDirect Writeを用い,MINDIC内では読み出し要求,
書き込み要求,無効化要求の短いパケットのみを転送する.
Processing Unit(PU)
M IN D IC
Data Transfer Network
Memory Module(MM)
Cache
Temporary Directory
Routing
Controller Temporary
Directory Cache
Controller
Invalidation packet Read / Write packet
図5.1: MINDICの構造
MINDICの最大の特徴は,共有メモリを構成するMMにディレクトリを設けず,スイッ
チ内に設けられた数KエントリのTDでキャッシュラインの共有情報を保持する点であ る.TDに登録できる共有情報の数は制限されるため,共有情報は短期的にのみ保持され る.TDは小容量のメモリで実現でき,スイッチのチップ内部に実装できるため,高速ア クセスが可能である.ディレクトリを用いた従来のキャッシュ制御方式とMINDICのそれ
5 MINDIC 5.2. 基本動作
表5.1: キャッシュ及びディレクトリの配置
PU Network MM
cache cache directory directory
Full-map ○ - - ○
MHN,CAESAR ○ ○ - ○
MIND,MBN ○ - ○
-DRESAR ○ - (DC) ○
Sparse-Directory ○ - - (TD)
MINDIC ○ - (TD)
-ぞれについて,キャッシュやディレクトリが,PU,Network,MMのどの部分に配置され るかを表5.1に示し,構成の違いをまとめた.
MINDICは,MINDと同様にネットワーク内に設けたディレクトリでキャッシュ一致制
御を行うが,ディレクトリがTDとして構成されるので,小容量のメモリしか必要とせず,
ネットワークのチップ内部に実装することができる.また,TDをネットワーク越しにアク セスされる各ノード上に配置するSparse-Directoryと異なり,高速にディレクトリをアクセ スすることが可能となっている.従来のキャッシュ制御方式では,MINDにSparse-Directory の方式を適用し,ネットワーク内に設けたTDのみでキャッシュ一致制御を行うことにつ いては,検討が行われていない.
なお,MINDICのTemporary Directory(TD)は,DRESARのDirectory Cache(DC)と似 た構成であったため,MINDICが提案された初期の段階では,Directory Cacheと呼んでい た.しかし,TDはDCのようにディレクトリのコピーを記憶するものではないため,明 確に区別するために別の表現を用いることとなった.その際,MINDICの名称については 変更を行わなかった.
5.2 基本動作
基本的に,MINDICのスイッチでは,読み出し要求,書き込み要求,無効化要求の三種 類のパケットを取り扱う.また,MMはスイッチから受け取った要求に応じてデータの読 み出しや書き込み制御を行うのみで,ディレクトリの管理などキャッシュ制御に関する動 作は一切行わない.PU側のキャッシュは,無効化要求パケットを受け取った際に該当する キャッシュラインを保持していれば無効化を行う以外,特別な操作は必要としない.
ここからは,読み出し要求時と,書き込み要求時の動作をそれぞれ詳細に説明する.
5.2.1 読み出し要求時の動作
図5.2(a)〜(d)は,PUからMMへ2回の読み出し要求が発生したときの動作を順に示し ている.次にそれぞれの動作について説明する.なお,図中のReadAはキャッシュライン Aのデータに対する読み出し要求を表し,TD内の数字(例えば,1010A)は,キャッシュラ
5 MINDIC 5.2. 基本動作
インAに対する共有情報であるビットマップを表している.
(a) PUから読み出し要求が発生すると,先ずPUに接続されたキャッシュが参照され,
データが存在するときは,キャッシュからデータがPUへ送信される.キャッシュに データが存在しない場合は,読み出し要求パケットがMINDICを介してMMへ転 送される.
(b) 読み出し要求パケットを転送する際,パケットが通過する各スイッチ内のTDに は,読み出すキャッシュラインの共有情報が登録される.MMにパケットが到達す ると,データ転送用結合網を介してMMからPU側へキャッシュラインが転送され,
PUにキャッシュされるとともに,必要なデータがPUへ渡される.
(c) 次に,別のプロセッサから同じキャッシュラインに対して読み出し要求が発生し たときの動作を示す.PUに接続されたキャッシュにデータが存在しないときは(a) と同じように,読み出し要求パケットがMMへ転送される.
(d) パケットが通過するスイッチ内のTDでは,読み出すキャッシュラインの共有情 報を登録されるが,既に同じキャッシュラインの共有情報が登録されている場合は,
そのビットマップを更新することで,共有情報を登録する.
5.2.2 書き込み要求時の動作
図5.2(a)〜(d)の読み出し要求の動作が行われた後に,PUからMMへ同じキャッシュラ インへのの書き込み要求が発生したときの動作を図5.3(a)〜(d)に示す.図中のWriteAは キャッシュラインAのデータに対する書き込み要求を表している.
(a) PUでMMへの書き込み要求が発生すると,書き込み要求パケットがMINDICを 介して共有メモリへ転送される.この際,パケットが通過する各スイッチにおいて TDが参照される.TDのエントリに,書き込み要求に対応するキャッシュラインの 共有情報が登録されているときは,登録されている共有情報に従ってキャッシュラ インの無効化要求パケットが生成される.
(b) 生成された無効化要求パケットは,対応する下位のスイッチへマルチキャストさ れる.
(c) 下位のスイッチでも,上位のスイッチから無効化要求パケットを受け取るとTD が参照される.そして,登録されている共有情報に従って,対応する出力に無効化 要求パケットがキャストされる.
(d) 無効化要求パケットを受け取ったPU側のキャッシュでは,該当するキャッシュラ インを無効化することで,キャッシュの一貫性を保持する.
5 MINDIC 5.2. 基本動作
ReadA
( a )
MM
Cache Miss TD
PU
Cache
1000
0010
ReadA
( b )
A
A
1000
0010
ReadA
( c )
A
A
Cache Miss
1010
0010 0001
ReadA
( d )
A
A A
図5.2: MINDICの基本動作(読み出し要求)
5 MINDIC 5.2. 基本動作
1010
0010 0001
WriteA
( a )
Temporary Directory にヒット
A A
A
MM TD
PU
Cache
1010
0010 0001
( b )
Bitmapに従い、
無効化要求パケットを マルチキャスト
0010 0001
( c )
Bitmapに従い、
無効化要求パケットを マルチキャス
A A
Invalid Invalid
( d )
Cache lineを無効化
図5.3: MINDICの基本動作(書き込み要求)
5 MINDIC 5.3. テンポラリディレクトリの構成
5.3 テンポラリディレクトリの構成
図5.4に,MINDICの各スイッチに設けられているテンポラリディレクトリ(TD)の構成
を示した.TDは,少容量のメモリで構成されており,入力リンクに対応するPUのキャッ シュラインの共有情報をビットマップの形で保持している.そして,一般のキャッシュと 同様に各要求パケットに転送アドレスの一部をインデックスとして参照される.図5.4の TDは2wayであるが,共有情報は各インデックスに対し,way数分しか保持することは できない.