JPH0644136A - メモリ制御装置 - Google Patents

メモリ制御装置

Info

Publication number
JPH0644136A
JPH0644136A JP3287475A JP28747591A JPH0644136A JP H0644136 A JPH0644136 A JP H0644136A JP 3287475 A JP3287475 A JP 3287475A JP 28747591 A JP28747591 A JP 28747591A JP H0644136 A JPH0644136 A JP H0644136A
Authority
JP
Japan
Prior art keywords
main directory
node
directory information
synchronization
stored
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
JP3287475A
Other languages
English (en)
Inventor
Hiroaki Hirata
博章 平田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3287475A priority Critical patent/JPH0644136A/ja
Publication of JPH0644136A publication Critical patent/JPH0644136A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 従来の限定ポインタ・ディレクトリ方式に対
して、主ディレクトリ情報のフィールド数に制限されな
いキャッシュ・コヒーレンス制御を実現する。 【構成】 主ディレクトリ情報3の各ノード・フィール
ド14にはデータのコピーを保持するキャッシュの番号
を記憶し、ノード・フィールドが足りなくなった場合に
はノード・フィールドの1つにコピーを保持するキャッ
シュの数を記憶する。そして、どちらの記憶方式をとっ
ているのかを計数ビット・フィールド13をフラグとし
て判別する。 【効果】 制御に必要な情報の記憶量が少なく、かつ、
その記憶量に制限されずに、データの共有度に応じた効
率の良いコヒーレンス制御を実現する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマルチプロセッサ・シス
テムのキャッシュ・コヒーレンス問題を解決するメモリ
制御装置に関するものである。
【0002】
【従来の技術】近年、コンピュータなどの情報処理装置
は、マルチプロセッシングを行なうことで情報処理能力
の向上が図られている。図12はそのような並列処理を
実現するマルチプロセッサ・システムの構成例を示して
いる。図12において、51は主記憶装置、52はメモ
リ制御装置、53はネットワーク、54はキャッシュ、
55はプロセッサである。
【0003】各プロセッサ55がそれぞれプライベート
なキャッシュ54を有する、図12に示したような共有
メモリ・マルチプロセッサ・システムでは、もし、各プ
ロセッサ55が単一プロセッサで必要なキャッシュ制御
のみを行なうものとすれば、主記憶装置51上で同一の
ブロックのデータが2個以上のキャッシュ54に同時に
存在することが起こり得る。このような状態で、ライト
動作やプロセスの移転、あるいは主記憶装置51への直
接的な入出力動作が起こると、データの不一致が生じ
る。共有メモリ・マルチプロセッサ・システムでは、主
記憶装置51のすべての参照に対して、それがどのプロ
セッサで変更されたにしても、最も最新のデータを得ら
れることがソフトウェアからみたマルチプロセッサの論
理モデルとして最も望ましいことであり、そのためには
キャッシュの一致性を論理的に保証する必要がある。
【0004】キャッシュの一致性をハードウェアによっ
て保証する方法には、大別して、スヌープ・キャッシュ
方式とディレクトリ方式がある。スヌープ・キャッシュ
方式は単一バスで各プロセッサが接続されたシステムで
採用することが可能であるが、単一バスという接続形態
の制約により、プロセッサ台数の増加は10台程度まで
とされている。一方のディレクトリ方式では、プロセッ
サ間の相互接続網に任意のトポロジを採用することが可
能であり、従って、スヌープ・キャッシュ方式を用いた
場合と比較して、より多くのプロセッサから成るマルチ
プロセッサ・システムを構成することが可能である。
【0005】ディレクトリ方式の中で最も強力な能力を
有する方式は、フルマップ・ディレクトリ方式である
が、この方式は、プロセッサ台数が多くなると一致性を
保つために記憶すべき情報量が莫大なものとなり、あま
り実用的ではない。実際には一致性を保つ必要のあるデ
ータ・ブロックは共有の程度が低く、この性質を利用し
てフルマップ・ディレクトリ方式の問題点を解決してい
るのが限定ポインタ・ディレクトリ方式である。
【0006】以下図面を参照しながら、上記した従来の
限定ポインタ・ディレクトリ方式に基づくメモリ制御装
置52の一例について説明する。図13(a)はメモリ
制御装置52の概要構成を示すものである。図13
(a)において、61はコヒーレンス制御部、62は主
ディレクトリ格納部、63は主ディレクトリ格納部62
内に記憶される主ディレクトリ情報である。従来の限定
ポインタ・ディレクトリ方式で使用する典型的な主ディ
レクトリ情報63のフィールド構成を図13(b)に示
す。図13(b)において、71はダーティ・ビット・
フィールド、72はポインタ・フィールドである。以上
のように構成されたメモリ制御装置について、以下その
動作について説明する。
【0007】まず、主ディレクトリ格納部62は、複数
の主ディレクトリ情報63を記憶するためのメモリであ
る。通常、主ディレクトリ情報63は主記憶装置上のデ
ータ・ブロックに対応付けて、そのデータ・ブロックの
数だけエントリが用意される。各主ディレクトリ情報6
3は、対応するデータ・ブロックのブロック番号をアド
レスとしてコヒーレンス制御部61からアクセスされ
る。
【0008】主ディレクトリ情報63のポインタ・フィ
ールド72には、その主ディレクトリ情報63に対応付
けられたデータ・ブロックのコピーを保持するキャッシ
ュの番号が記憶される。従って、最大n個までのキャッ
シュに同一データ・ブロックのコピーを置くことができ
る。ダーティ・ビット・フィールド71は、主記憶装置
上と異なった内容のデータ・ブロックを持つキャッシュ
が存在するか否かを示すためのものである。ダーティ・
ビット・フィールド71がセットされていればそのよう
なキャッシュが存在し、リセットされていればキャッシ
ュ上のデータは主記憶装置と一致しているものとする。
従って、ダーティ・ビット・フィールド71がリセット
されていれば、複数のキャッシュに同一ブロックのコピ
ーが存在してもよいが、セットされている時にはコピー
はただ1つのキャッシュにしか存在が許されない。この
従来例では、そのような書き込み権を有するキャッシュ
の番号は、フィールドP[0]に記憶するものとする。
【0009】コヒーレンス制御部61は各キャッシュか
らのアクセス要求を受け付け、ブロック単位でデータの
コヒーレンス制御を行なう。アクセス要求時に入力する
情報には、アクセスの種類とアクセス対象となるブロッ
クの番号とがある。ブロック番号を基に主ディレクトリ
格納部62から主ディレクトリ情報63を読み出し、こ
れを用いてアクセス制御を行なう。
【0010】アクセスの種類がライトの場合、まず、ダ
ーティ・ビット・フィールド71を調べる。ダーティ・
ビット・フィールド71がセットされていれば、フィー
ルドP[0]に記憶されているキャッシュに書き戻し指令
を発する。この書き戻し指令によってP[0]番のキャッ
シュがデータ・ブロックを主記憶装置に書き戻した後、
コヒーレンス制御部61はアクセス要求を行なったキャ
ッシュに対してアクセス許可を出力し、その番号をフィ
ールドP[0]に記憶する。一方、ダーティ・ビット・フ
ィールド71がリセットされていれば、ポインタ・フィ
ールド72に記憶されているすべてのキャッシュに無効
化指令を発し、それらのキャッシュから無効化を完了し
たとの通知(応答)が揃うのを待って、アクセス要求を
行なったキャッシュに対してアクセス許可を出力し、そ
の番号をフィールドP[0]に記憶するとともに、ダーテ
ィ・ビット・フィールド71をセットする。
【0011】アクセスの種類がリードの場合も、まず
は、ダーティ・ビット・フィールド71を調べる。ダー
ティ・ビット・フィールド71がセットされていれば、
フィールドP[0]に記憶されているキャッシュに書き戻
し指令を発する。この書き戻し指令によってP[0]番の
キャッシュがデータ・ブロックを主記憶装置に書き戻し
た後、コヒーレンス制御部61はアクセス要求を行なっ
たキャッシュに対してアクセス許可を出力し、その番号
をフィールドP[0]に記憶するとともにダーティ・ビッ
ト・フィールド71をリセットする。一方、ダーティ・
ビット・フィールド71がリセットされていれば、アク
セス要求を行なったキャッシュに対してアクセス許可を
出力し、その番号を空いているポインタ・フィールド7
2に記憶する。
【0012】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、ポインタ・フィールドの数が固定である
ので、そのポインタ・フィールドの数を越えるキャッシ
ュ間で同時にデータを共有することができないという問
題点を有していた。 例えば、ポインタ・フィールドが
すべてコピーを所持するキャッシュの番号で埋め尽くさ
れている状態で新たにリード要求が到着した場合、既に
コピーを有するいずれかのキャッシュのデータを無効化
しなければならない。
【0013】本発明は上記問題点に鑑み、ポインタ・フ
ィールドの数を越えるキャッシュ間でもデータを共有す
ることを可能とし、さらに、プロセス数に制約されるこ
とのないバリア同期機構を備えたメモリ制御装置を提供
することを目的とする。
【0014】
【課題を解決するための手段】上記課題を解決するため
に、第1の発明は、主ディレクトリ格納部と、コヒーレ
ンス制御部とを具備し、前記主ディレクトリ格納部は複
数の主ディレクトリ情報を格納し、前記主ディレクトリ
情報は、少なくとも、1個の計数ビット・フィールドと
n個のノード・フィールドとを有し、前記コヒーレンス
制御部は、外部から入力したデータ・アクセス要求の一
部をもとに前記主ディレクトリ格納部から前記主ディレ
クトリ情報を入力し、メモリ制御指令を外部に出力する
までのコヒーレンス制御を行なう過程で、データ・コピ
ーを保持するキャッシュの数がある値を越えるまでは前
記主ディレクトリ情報の前記計数ビット・フィールドを
リセットするとともに前記データ・コピーを保持するキ
ャッシュの番号を前記ノード・フィールドに記憶し、前
記データ・コピーを保持するキャッシュの数が前記の値
を越えた後は前記主ディレクトリ情報の前記計数ビット
・フィールドをセットするとともに前記データ・コピー
を保持するキャッシュの数を前記ノード・フィールドの
1つに記憶することを特徴としている。
【0015】また、第2の発明は、主ディレクトリ格納
部と、アクセス属性記憶部と、コヒーレンス制御部とを
具備し、前記主ディレクトリ格納部は複数の主ディレク
トリ情報を格納し、前記主ディレクトリ情報は、少なく
とも、1個の計数ビット・フィールドとn個のノード・
フィールドとを有し、前記アクセス属性記憶部は、対応
付けられたデータ・ブロックの性質を記憶する複数のア
クセス属性ビットを格納し、前記コヒーレンス制御部
は、外部から入力したデータ・アクセス要求の一部をも
とに前記主ディレクトリ格納部および前記アクセス属性
記憶部から前記主ディレクトリ情報および前記アクセス
属性ビットを入力し、メモリ制御指令を外部に出力する
までのコヒーレンス制御を行なう過程で、データ・コピ
ーを保持するキャッシュの数がある第1の値を越えるま
では前記主ディレクトリ情報の前記計数ビット・フィー
ルドをリセットするとともに前記データ・コピーを保持
するキャッシュの番号を前記ノード・フィールドに記憶
し、前記データ・コピーを保持するキャッシュの数が前
記第1の値を越えた後は前記主ディレクトリ情報の前記
計数ビット・フィールドをセットするとともに前記デー
タ・コピーを保持するキャッシュの数を前記ノード・フ
ィールドの1つに記憶し、さらに、前記計数ビット・フ
ィールドがセットされていて、かつ、前記ノード・フィ
ールドの1つに記憶された値がある第2の値を越えると
きには、それまでリセットされていた前記アクセス属性
ビットをセットすることを特徴としている。
【0016】また、第3の発明においては、主ディレク
トリ格納部内に記憶できる主ディレクトリ情報の数が実
際のデータ・ブロックの数よりも小さく構成されてお
り、従って、コヒーレンス制御を行なう過程で使用可能
な前記主ディレクトリ情報のエントリが不足した場合、
計数ビット・フィールドがセットされている前記主ディ
レクトリ情報のエントリを優先して選択し、選択した前
記主ディレクトリ情報のデータ・ブロックに対応するア
クセス属性部のビットをセットした後、前記主ディレク
トリ情報のエントリを新たに再利用することを特徴とし
ている。
【0017】また、第4の発明においては、主ディレク
トリ格納部と、コヒーレンス制御部とを具備し、前記主
ディレクトリ格納部は複数の主ディレクトリ情報を格納
し、前記主ディレクトリ情報は、複数のノード・フィー
ルドを有し、前記コヒーレンス制御部は、外部から入力
したバリア同期要求の一部をもとに前記主ディレクトリ
格納部から前記主ディレクトリ情報を入力し、前記バリ
ア同期要求の一部として含まれる同期カウント数がある
値以下であれば前記バリア同期要求の送信元であるノー
ドのノード番号を前記主ディレクトリ情報の前記ノード
・フィールドに記憶し、また、前記同期カウント数が前
記の値を越えていれば残りの同期待ち数を求めて前記ノ
ード・フィールドの1つに記憶し、さらに、前記ノード
・フィールドに記憶するノード番号の数が同期カウント
数に一致する場合あるいは残りの同期待ち数が0となる
場合には同期完了指令を外部に出力することを特徴とし
ている。
【0018】
【作用】以上の構成により、第1の発明に係わるメモリ
制御装置においては、主ディレクトリ情報に計数ビット
・フィールドを設け、データを共有するキャッシュの数
が主ディレクトリ情報のノード・フィールドの数を越え
る場合には、ノード・フィールドの使い方を切り替えて
データを共有するキャッシュの数をノード・フィールド
の1つに記憶するため、データ共有の程度がノード・フ
ィールドの数の制約を免れることとなる。
【0019】また、第2の発明に係わるメモリ制御装置
においては、主記憶の各データ・ブロック毎にアクセス
属性ビットを備え、データ共有度の非常に高いブロック
に対してはこのアクセス属性ビットのみを用いて管理す
る手法に切り替えるため、コヒーレンス制御に必要な情
報量は減少することとなる。
【0020】また、第3の発明に係わるメモリ制御装置
においては、コヒーレンス制御を行なう過程で使用可能
な主ディレクトリ情報のエントリが不足した場合には、
計数ビット・フィールドがセットされている主ディレク
トリ情報のエントリを優先して再利用するため、計数ビ
ット・フィールドがセットされているブロックはリード
・オンリーで無効化の必要がない可能性が高いと判断さ
れ、その判断に基づいてコヒーレンス制御を行なうこと
となる。
【0021】また、第4の発明に係わるメモリ制御装置
においては、同期をとるプロセッサの数が主ディレクト
リ情報のノード・フィールドの数より少なければ同期を
とるプロセッサの番号を各ノード・フィールドに記憶
し、また同期をとるプロセッサの数がノード・フィール
ドの数より多ければ、その数をノード・フィールドの1
つに記憶するため、同期をとるプロセッサの数に応じて
少ない情報量で同期制御を行なうこととなる。
【0022】
【実施例】以下本発明のメモリ制御装置の一実施例につ
いて、図面を参照しながら説明する。図1(a)は本発
明の第1の実施例におけるメモリ制御装置の構成を示す
ものである。
【0023】図1(a)において、1はコヒーレンス制
御部、2は主ディレクトリ格納部、3は主ディレクトリ
格納部2内に記憶される主ディレクトリ情報である。こ
こで注意すべき点は、このレベルの構成図では、従来例
と本発明との相違点を示すことができないという点であ
る。主な相違点は主ディレクトリ情報として記憶する情
報の内容、およびコヒーレンス制御部1における処理内
容に存在する。
【0024】そこで、図1(b)を用いて主ディレクト
リ情報3のフィールド構成について説明する。図1
(b)は本発明の第1の実施例における主ディレクトリ
情報3のフィールド構成を示すものである。図1(b)
において、11はダーティ・ビット・フィールド、12
は同期ビット・フィールド、13は計数ビット・フィー
ルド、14はノード・フィールドである。これらのフィ
ールドのうち、同期ビット・フィールド12は本実施例
では使用しない。
【0025】以上のように構成されたメモリ制御装置に
ついて、以下図面を用いてその動作を説明する。主ディ
レクトリ格納部2は、主ディレクトリ情報3のフィール
ド構成が異なる点を除いて従来例の主ディレクトリ格納
部と同じであると考えてよい。コヒーレンス制御部1は
各キャッシュからのアクセス要求を受け付け、ブロック
単位でデータのコヒーレンス制御を行なう。アクセス要
求時に入力する情報には、アクセスの種類とアクセス対
象となるブロックの番号とがある。ブロック番号を基に
主ディレクトリ格納部2から主ディレクトリ情報3を読
み出し、これを用いてアクセス制御を行なう。アクセス
の種類がリードの場合のコヒーレンス制御部1の動作を
図2に示す。
【0026】図2において、まず、主ディレクトリ情報
3のダーティ・ビット・フィールド11を調べる(1)。
ダーティ・ビット・フィールド11がセットされていれ
ば、書き込み権を有するキャッシュが存在し、フィール
ドN[0]にそのキャッシュの番号が記憶されている。従
って、まず処理Aを行うため、そのキャッシュに書き戻
し指令を発する(2)。さらにデータの書き戻しが終了し
た段階で、ダーティ・ビット・フィールド11および計
数ビット・フィールド12をリセットし(3)、さらに、
フィールドN[0]にリード要求を行なったキャッシュの
番号を記憶する(4)とともに、そのキャッシュに対して
アクセス許可を出力する(11)。
【0027】一方、ダーティ・ビット・フィールド11
がリセットされている場合には、さらに、計数ビット・
フィールド12を調べる(5)。計数ビット・フィールド
12がリセットされていれば、処理Bを行うためさら
に、ノード・フィールド13の中に空きフィールドが存
在するかどうかを調べる(6)。空きフィールドが存在す
れば、その空きフィールドにリード要求を行なったキャ
ッシュの番号を記憶する(7)とともに、そのキャッシュ
に対してアクセス許可を出力する(11)。空きフィールド
が存在しない場合には、計数ビット・フィールド12を
セットし(8)、フィールドN[0]に値n+1を記憶する
(9)。そして、リード要求を行なったキャッシュに対し
てアクセス許可を出力する(11)。計数ビット・フィール
ド12を調べた時点で計数ビット・フィールド12がセ
ットされていれば、フィールドN[0]に記憶した値に1
を加えて、フィールドN[0]の値を更新する(10)。
【0028】次に、アクセスの種類がライトの場合のコ
ヒーレンス制御部1の動作を、図3に示す。図3におい
て、まず、主ディレクトリ情報3のダーティ・ビット・
フィールド11を調べる(1)。ダーティ・ビット・フィ
ールド11がセットされていれば、リードの場合と同
様、フィールドN[0]に記憶されているキャッシュに対
して書き戻し指令を発する(2)。データの書き戻しが終
了した段階で、フィールドN[0]にライト要求を行なっ
たキャッシュの番号を記憶して、(8)アクセス許可を出
力する(9)。一方、ダーティ・ビット・フィールド11
がリセットされている場合には、さらに、計数ビット・
フィールド12を調べる(3)。計数ビット・フィールド
12がリセットされていれば、ノード・フィールド13
に記憶されているすべてのキャッシュに対して無効化指
令を発する(4)。無効化指令に対する応答がすべて返さ
れてきた時点で、ダーティ・ビット・フィールド11を
セットする(7)とともにフィールドN[0]にライト要求を
行なったキャッシュの番号を記憶して(8)、アクセス許
可を出力する(9)。
【0029】また、計数ビット・フィールド12がセッ
トされていれば、システム内のすべてのキャッシュに対
して無効化指令を発する(5)。これらの無効化指令に対
して、フィールドN[0]に記憶されているだけの数の応
答が返されてきた時点で、計数ビット・フィールド12
をリセットし(6)、また、ダーティ・ビット・フィール
ド11をセットする(7)とともに、フィールドN[0]にラ
イト要求を行なったキャッシュの番号を記憶して(8)ア
クセス許可を出力する(9)。計数ビット・フィールド1
2は、いわゆるスイッチの役目を果たしている。すなわ
ち、ノード・フィールド14にキャッシュの番号が記憶
されているのか、あるいは、キャッシュの数が記憶され
ているのか、その使われ方が示されている。
【0030】計数ビット・フィールド12がリセットさ
れているときのメモリ制御方式は、従来例に示したメモ
リ制御装置のそれと同様であるが、計数ビット・フィー
ルド12がリセットされているときは、ノード・フィー
ルド14の1つにデータ・コピーを有するキャッシュの
数を記憶し、その数が用意されているノード・フィール
ド14の数を越えても対処できるようにしている。デー
タ・コピーを有するキャッシュの数を記憶しておくの
は、無効化指令に対するキャッシュからの応答を無意味
に受け付ける必要を避けるためである。つまり、ブロー
ドキャストによって無効化指令を受け取ったキャッシュ
の内、そのブロックのコピーを有するキャッシュのみが
応答を返せばよい。
【0031】以上のように、本実施例のメモリ制御装置
は、一部、無効化をブロードキャストを用いて行なって
いる。その応答における処理を最適化する点については
前述の通りであるが、ブロードキャストについて補足し
ておきたい。データ共有の性質を調べると、一般に、リ
ード/ライトの対象となるデータは少数のプロセッサで
共有される。これに対して、リード・オンリーのデータ
は、多くのプロセッサで共有される場合も多い。一方、
無効化はライトの要求が生じた場合に必要となる処理で
あって、リード・オンリーのデータに対しては一般に不
要である。本実施例のメモリ制御装置において、データ
の共有度に応じて処理を切り替えるのはこのようなデー
タ共有の性質とも適合するものであり、従って、ブロー
ドキャストが大きなオーバヘッドとなることは少ないの
である。
【0032】以上のように本実施例によれば、主ディレ
クトリ格納部2と、コヒーレンス制御部3とを具備し、
主ディレクトリ格納部2は複数の主ディレクトリ情報3
を格納し、主ディレクトリ情報3は、少なくとも、1個
の計数ビット・フィールドとn個のノード・フィールド
とを有し、コヒーレンス制御部1は、外部から入力した
データ・アクセス要求の一部をもとに主ディレクトリ格
納部2から主ディレクトリ情報3を入力し、メモリ制御
指令を外部に出力するまでのコヒーレンス制御を行なう
過程で、データ・コピーを保持するキャッシュの数があ
る値を越えるまでは主ディレクトリ情報3の前記計数ビ
ット・フィールドをリセットするとともに前記データ・
コピーを保持するキャッシュの番号を前記ノード・フィ
ールドに記憶し、前記データ・コピーを保持するキャッ
シュの数が前記の値を越えた後は主ディレクトリ情報3
の前記計数ビット・フィールドをセットするとともに前
記データ・コピーを保持するキャッシュの数を前記ノー
ド・フィールドの1つに記憶することにより、データ・
ブロックを共有するキャッシュの数が用意されているノ
ード・フィールドの数を越える場合であっても、不必要
にいずれかのキャッシュを無効化することなく、効率の
良いデータ共有を実現することができる。
【0033】以下本発明のメモリ制御装置の第2の実施
例について、図面を参照しながら説明する。図4は本発
明の第2の実施例におけるメモリ制御装置の構成を示す
ものである。
【0034】図4において、21はコヒーレンス制御
部、2は主ディレクトリ格納部、3は主ディレクトリ格
納部2内に記憶される主ディレクトリ情報、22はアク
セス属性記憶部、23はアクセス属性記憶部22内に記
憶されるアクセス属性ビットである。
【0035】また、本実施例における主ディレクトリ情
報3のフィールド構成は、図1に示す第1の実施例の主
ディレクトリ情報3のフィールド構成と同じで、ダーテ
ィ・ビット・フィールド11、同期ビット・フィールド
12、計数ビット・フィールド13、ノード・フィール
ド14からなる構成である。また、これらのフィールド
のうち、同期ビット・フィールド12は本実施例では使
用しない。
【0036】本実施例では、コヒーレンス制御の対象と
なる主記憶装置がM個のデータ・ブロックから構成され
ているものとする。このとき、アクセス属性記憶部22
は、主記憶装置のM個のデータ・ブロックのそれぞれに
対応した、計M個のアクセス属性ビットを記憶する。こ
れに対して、主ディレクトリ格納部2に記憶できる主デ
ィレクトリ情報3の数は最大D個であり、D<Mと仮定
する。
【0037】以上のように構成されたメモリ制御装置に
ついて、以下図面を用いてその動作を説明する。コヒー
レンス制御部21は各キャッシュからのアクセス要求を
受け付け、ブロック単位でデータのコヒーレンス制御を
行なう。アクセス要求時に入力する情報には、アクセス
の種類とアクセス対象となるブロックの番号とがある。
アクセスの種類がリードの場合のコヒーレンス制御部2
1の動作を図5に示す。 図5において、まず、ブロッ
ク番号をもとにアクセス属性記憶部22からアクセス属
性ビット23を読み出し(1)、その値を調べる(2)。その
アクセス属性ビット23がセットされていれば、アクセ
ス許可を出力して(12)アクセス制御を終了する。アクセ
ス属性ビット23がセットされていなければ、主ディレ
クトリ格納部2から主ディレクトリ情報3を読み出し
(3)、以後、これを用いてアクセス制御を行なう。本実
施例ではD<Mとしているので、この主ディレクトリ情
報3の読み出しは単純ではない。この部分の詳細につい
ては後述する。
【0038】さて主ディレクトリ情報3のダーティ・ビ
ット・フィールド11を調べる(4)。ダーティ・ビット
・フィールド11がセットされている場合の処理内容
は、図2の処理Aとして示した内容と同一であり(5)、
最後にアクセス許可を出力して(12)終了する。ダーティ
・ビット・フィールド11がリセットされている場合は
さらに計数ビット・フィールド13を調べる(6)。計数
ビット・フィールド13がリセットされている場合の処
理内容は、図2の処理Bとして示した内容と同一であり
(7)、最後にアクセス許可を出力して(12)終了する。
【0039】計数ビット・フィールド13がセットされ
ている場合には、まず、フィールドN[0]に記憶した値
に1を加えてフィールドN[0]の値を更新し(8)、次に、
その更新されたN[0]の値とHとを比較する(9)。ここ
で、Hはあらかじめ与えられている定数である。N[0]
の値がH以下であれば、アクセス許可を出力して(12)終
了する。また、N[0]の値がHを越えている場合には、
アクセス属性ビット23をセットし(10)、これまでこの
ブロックのコヒーレンス制御に用いてきた主ディレクト
リ情報3のエントリを解放し(11)、アクセス許可を出力
して(12)終了する。
【0040】N[0]の値とHとの比較(9)は、データ・ブ
ロックがリード・オンリーであるか否かを予想する基準
を与えるものである。従って、アクセス属性ビット23
がセットされていることは、そのデータ・ブロックがリ
ード・オンリーであると判断(予想)されたことを意味
する。リード・オンリー・データに対してはライトが起
こらないわけであるから、無効化の必要もなく、従っ
て、主ディレクトリ情報3を用いた複雑な制御は不要で
ある。ライトの起こる可能性のあるデータについては、
同時に多くのキャッシュで共有されることは稀である。
本実施例は、このようなデータ共有の性質を活用して、
データの共有度からそれがリード・オンリー・データで
あるかどうかを予想し、リード・オンリー・データに対
する処理を簡素化することを狙ったものである。
【0041】また、アクセスの種類がライトの場合のコ
ヒーレンス制御部21の動作を図6に示す。図6におい
て、まず、リードの場合と同様、アクセス属性記憶部2
2からアクセス属性ビット23を読み出し(1)、その値
を調べる(2)。そのアクセス属性ビット23がリセット
されている場合の処理内容は、図3の処理Cとして示し
た内容と同一であり(3)、最後にアクセス許可を出力し
て(9)終了する。
【0042】アクセス属性ビット23がセットされてい
る場合は、まず、システム内のすべてのキャッシュに対
して無効化指令を発する(4)。図3における無効化指令
のブロードキャストでは、回収すべき応答の数はノード
・フィールド14の1つに記憶されていたが、アクセス
属性ビット23がセットされている場合には、その情報
が失われているため、すべてのキャッシュから応答が返
されてくるのを待たなければならない。従って、無効化
指令には、コピーを有するキャッシュのみが応答を返す
ように指定するものと、コピーを有さないキャッシュに
対しても応答を返すように指定するものとの2種類を設
ける必要がある。システム内のすべてのキャッシュから
の応答が揃った時点で、アクセス属性ビット23をリセ
ットし(5)、新たな主ディレクトリ情報3のエントリを
確保する(6)。その主ディレクトリ情報3のダーティ・
ビット・フィールド11をセットし(7)、また、フィー
ルドN[0]にライト要求を行なったキャッシュの番号を
記憶して(8)、アクセス許可を出力する(9)。
【0043】次に、主ディレクトリ情報の入力、確保、
解放の処理について詳述する。単純には、現在の計算機
システムで使用されているキャッシュの検索機能をその
まま流用して、ブロック番号の一部から連想記憶によ
り、主ディレクトリ情報のエントリを得ることができ
る。しかし、本実施例では、より柔軟で、かつ、コヒー
レンス制御に必要な記憶量が不足した場合に、アクセス
されるデータの性質を予想して対処する効率の良いコヒ
ーレンス制御を実現することができるという効果をより
大きなものとするために、コヒーレンス制御部21内に
次のような記憶を追加する。すなわち、主ディレクトリ
・ポインタ、ブロック・ポインタと使用ビットである。
【0044】主ディレクトリ・ポインタは、主記憶のブ
ロックに対応させて、計M個設ける。主ディレクトリ・
ポインタには、そのデータ・ブロックのコヒーレンス制
御に使用している主ディレクトリ情報のエントリを記憶
する。また、ブロック・ポインタおよび使用ビットは主
ディレクトリ情報のエントリに対応させて、それぞれ計
D個設ける。ブロック・ポインタは、主ディレクトリ・
ポインタと逆方向のポインタであり、主ディレクトリ情
報エントリがどのブロックのコヒーレンス制御に使用し
ているかを記憶する。使用ビットに関しては、本実施例
では、そのエントリが使用されている場合には使用ビッ
トをセットし、使用されていない場合には使用ビットを
リセットしておくものとする。
【0045】主ディレクトリ情報の入力は次のように行
なう。まず、ブロック番号をもとに主ディレクトリ・ポ
インタを調べる。主ディレクトリ・ポインタの内容が空
でなければ、その主ディレクトリ・ポインタに記憶され
ているエントリから主ディレクトリ情報を入力する。主
ディレクトリ・ポインタの内容が空であれば、新たに主
ディレクトリ情報のエントリを確保するが、これについ
ては後述する。
【0046】また、主ディレクトリ情報エントリの解放
は、そのエントリに対応する使用ビットをリセットする
ことで行なえる。また、主ディレクトリ情報エントリの
確保は図7に示す手順で行なう。図7において、U
[k]、T[k]、Ltm[k]はそれぞれエントリ番号がkの
使用ビット、主ディレクトリ情報、ブロック・ポインタ
であり、また、Lmt[b]、R[b]はそれぞれブロック番
号bの主ディレクトリ・ポインタ、アクセス属性ビット
を表している。
【0047】まず、使用ビットがリセットされている主
ディレクトリ情報エントリが存在するかどうかを調べる
(1)。存在していれば、そのエントリを使用することと
し、初期設定を行なう。まず、使用ビットをセットして
(2)エントリを使用状態とし、その主ディレクトリ情報
エントリの初期化を行なう(8)。具体的には、主ディレ
クトリ情報のダーティ・ビット・フィールド11および
計数ビット・フィールド13をともにリセットし、すべ
てのノード・フィールド14を空にする。そして、主デ
ィレクトリ・ポインタおよびブロック・ポインタが互い
に相手の番号を参照するように設定する(9)。
【0048】使用ビットがリセットされている主ディレ
クトリ情報エントリが存在しない場合には、使用中の主
ディレクトリ情報エントリのいずれかを再利用しなけれ
ばならない。そこで、まず、計数ビット・フィールド1
3がセットされている主ディレクトリ情報エントリが存
在するかどうかを調べる(3)。存在してい場合には、さ
らに、ダーティ・ビット・フィールド11がリセットさ
れている主ディレクトリ情報エントリが存在するかどう
かを調べる(4)。これらいずれかの条件を満たす主ディ
レクトリ情報エントリが存在していれば、その主ディレ
クトリ情報に対応するブロックのアクセス属性ビット2
3をセットし(5)、主ディレクトリ情報エントリの初期
化(8)およびポインタの設定(9)を行なう。このような条
件を設けてエントリを選択するのは、エントリの使用状
況を考慮して、共有度がHに至るのを待たず、リード・
オンリー・データであると判断していることになってい
る。
【0049】また、すべての主ディレクトリ情報エント
リがいずれの条件も満たさない場合には、任意にエント
リを選択し(6)、その主ディレクトリ情報のノード・フ
ィールド14に記憶されているキャッシュに書き戻し指
令を発行する(7)。そして、書き戻しが完了した時点
で、主ディレクトリ情報エントリの初期化(8)およびポ
インタの設定(9)を行なう。以上のように本実施例によ
れば、主ディレクトリ格納部2と、アクセス属性記憶部
22と、コヒーレンス制御部21とを具備し、主ディレ
クトリ格納部2は複数の主ディレクトリ情報3を格納
し、主ディレクトリ情報3は、少なくとも、1個の計数
ビット・フィールドとn個のノード・フィールドとを有
し、アクセス属性記憶部22は、対応付けられたデータ
・ブロックの性質を記憶する複数のアクセス属性ビット
を格納し、コヒーレンス制御部21は、外部から入力し
たデータ・アクセス要求の一部をもとに主ディレクトリ
格納部2およびアクセス属性記憶部22から主ディレク
トリ情報3および前記アクセス属性ビットを入力し、メ
モリ制御指令を外部に出力するまでのコヒーレンス制御
を行なう過程で、データ・コピーを保持するキャッシュ
の数がある第1の値を越えるまでは主ディレクトリ情報
3の前記計数ビット・フィールドをリセットするととも
に前記データ・コピーを保持するキャッシュの番号を前
記ノード・フィールドに記憶し、前記データ・コピーを
保持するキャッシュの数が前記第1の値を越えた後は主
ディレクトリ情報3の前記計数ビット・フィールドをセ
ットするとともに前記データ・コピーを保持するキャッ
シュの数を前記ノード・フィールドの1つに記憶し、さ
らに、前記計数ビット・フィールドがセットされてい
て、かつ、前記ノード・フィールドの1つに記憶された
値がある第2の値を越えるときには、それまでリセット
されていた前記アクセス属性ビットをセットすることに
より、アクセスされるデータの性質を活用してコヒーレ
ンス制御に必要な記憶量を節約することができる。
【0050】また、以上のように本実施例によれば、主
ディレクトリ格納部2内に記憶できる主ディレクトリ情
報3の数が実際のデータ・ブロックの数よりも小さく構
成されており、従って、コヒーレンス制御を行なう過程
で使用可能な前記主ディレクトリ情報3のエントリが不
足した場合、計数ビット・フィールドがセットされてい
る主ディレクトリ情報3のエントリを優先して選択し、
選択した主ディレクトリ情報3のデータ・ブロックに対
応するアクセス属性部のビットをセットした後、主ディ
レクトリ情報3のエントリを新たに再利用することによ
り、コヒーレンス制御に必要な記憶量が不足した場合
に、アクセスされるデータの性質を予想して対処する効
率の良いコヒーレンス制御を実現することができる。
【0051】以下本発明のメモリ制御装置の第3の実施
例について、図9を参照しながら説明する。本発明の第
3の実施例におけるメモリ制御装置の構成は図1に示す
ものと基本構成は同じで、コヒーレンス制御部31、主
ディレクトリ情報3を記憶する主ディレクトリ格納部2
からなっている。前述したように、このレベルの構成図
では、従来例と本発明との相違点を示すことができない
点に注意されたい。
【0052】また、本実施例における主ディレクトリ情
報3のフィールド構成は、第1の実施例と同様、図1に
示したダーティ・ビット・フィールド11、同期ビット
・フィールド12、計数ビット・フィールド13、ノー
ド・フィールド14の構成を採用する。なお、これらの
フィールドのうち、ダーティ・ビット・フィールド11
および計数ビット・フィールド13は本実施例では使用
しない。
【0053】以上のように構成されたメモリ制御装置に
ついて、以下図面を用いてその動作を説明する。コヒー
レンス制御部31は各ノードからのバリア同期要求を受
け付け、同期変数をブロック単位で設定してバリア同期
制御を行なう。バリア同期要求時に入力する情報には、
同期変数として用いるブロックの番号と同期カウント数
とがある。ブロック番号を基に主ディレクトリ格納部2
から主ディレクトリ情報3を読み出し、これを用いて同
期制御を行なう。
【0054】コヒーレンス制御部31の動作を図8に示
す。図8において、まず、同期ビット・フィールド12
を調べる(1)。本実施例では、1つのバリア同期の処理
中は同期ビット・フィールド12をセットしておき、バ
リア同期に用いられていない時には同期ビット・フィー
ルド12をリセットしておくものとする。従って、同期
ビット・フィールド12がリセットされていた場合に
は、今回のバリア同期における最初のバリア同期要求で
あるため、ノード・フィールド14の1つを初期化する
(2)とともに、同期ビット・フィールド12をセットす
る(3)ことによって、1つのバリア同期処理が開始され
たことを宣言する。
【0055】次に、同期カウント数を調べる(4)。同期
カウント数は何個のノードで同期をとるのかを示すもの
であり、その数は少なくとも同期処理を開始する以前に
確定しているものとする。すなわち、1つの同期処理に
おいて、同一のブロック番号を対象とするバリア同期要
求はすべて等しい同期カウント数を有するものと仮定す
る。同期カウント数がノード・フィールド14の数を越
えない場合には、各ノード・フィールド14に同期待ち
ノード(バリア同期要求を発したノード)の番号を記憶
する方針を採る。まず、空いているノード・フィールド
14を探す(5)(6)(7)。図8では0番目のノード・フィ
ールド14から順に調べている。同期カウント数がn以
下であることがわかっているため、必ず空きノード・フ
ィールド14は見つかるはずである。従って、その空き
ノード・フィールド14に、バリア同期要求を発したノ
ードの番号を記憶する(8)。
【0056】次に、ノード・フィールド14に記憶され
た同期待ちノードの数が同期カウント数に等くなったか
どうかを調べる(9)。まだ等くなければ、同期の待ち合
わせ条件は満たされていないので、このバリア同期要求
に対する処理は終了する。一方、同期待ちノードの数が
同期カウント数に等くなった場合には、待ち合わせ条件
が満たされたことになるので、ノード・フィールド14
に記憶していたノードに同期完了指令を発し(10)、同期
ビット・フィールド12をリセットして(14)このバリア
同期に関するすべての処理を終了する。
【0057】一方、同期カウント数がノード・フィール
ド14の数を越える場合には、ノード・フィールド14
の1つにそれまで受け付けたバリア同期要求の数を記憶
する方針を採る。本実施例では、これにN[0]を用いる
ものとする。先の初期化(2)はこの場合のためのもので
ある。まず、N[0]に1を加えて、N[0]の値を更新する
(11)。そのN[0]に記憶された値と同期カウント数とを
比較し(12)、両者がまだ一致しない場合には、そこでこ
のバリア同期要求に対する処理を終了する。一方、N
[0]の値と同期カウント数とが一致すれば、同期完了指
令をシステム内のすべてのノードに対して出力し(13)、
同期ビット・フィールド12をリセットする(14)。
【0058】以上のように本実施例によれば、主ディレ
クトリ格納部2と、コヒーレンス制御部31とを具備
し、主ディレクトリ格納部2は複数の主ディレクトリ情
報3を格納し、主ディレクトリ情報3は、複数のノード
・フィールドを有し、コヒーレンス制御部31は、外部
から入力したバリア同期要求の一部をもとに主ディレク
トリ格納部2から主ディレクトリ情報3を入力し、前記
バリア同期要求の一部として含まれる同期カウント数が
ある値以下であれば前記バリア同期要求の送信元である
ノードのノード番号を主ディレクトリ情報3の前記ノー
ド・フィールドに記憶し、また、前記同期カウント数が
前記の値を越えていれば残りの同期待ち数を求めて前記
ノード・フィールドの1つに記憶し、さらに、前記ノー
ド・フィールドに記憶するノード番号の数が同期カウン
ト数に一致する場合あるいは残りの同期待ち数が0とな
る場合には同期完了指令を外部に出力することにより、
バリア同期の制御のために、システム内のすべてのノー
ドでバリア同期をとる場合に必要なほどの記憶容量を必
要とせず、バリア同期をとるノードの数に応じて制御方
式を切り替えた効率の良いバリア同期制御を実現するこ
とができる。
【0059】以下本発明のメモリ制御装置の第4の実施
例について、図10を参照しながら説明する。本実施例
におけるメモリ制御装置の基本構成は図1(a)に示す
ものと概略同一であるが、コヒーレンス制御部33の動
作が異なっている。
【0060】図10において、33はコヒーレンス制御
部、2は主ディレクトリ格納部、3は主ディレクトリ格
納部2内に記憶される主ディレクトリ情報で、主ディレ
クトリ情報3のフィールド構成は、図1(b)に示すよ
うに、ダーティ・ビット・フィールド11、同期ビット
・フィールド12、計数ビット・フィールド13、ノー
ド・フィールド14からなっている。
【0061】以上のように構成されたメモリ制御装置に
ついて、以下図面を用いてその動作を説明する。本実施
例のメモリ制御装置は、コヒーレンス制御部33の動作
を除いて第1の実施例で示したメモリ制御装置と同じで
ある。
【0062】コヒーレンス制御部33は外部からアクセ
ス要求を受け付け、次に、その受け付けた要求がリー
ド、ライト、バリア同期のいずれであるかを判別し、主
ディレクトリ情報を入力してそれぞれの処理を開始す
る。リード、ライト、バリア同期の各要求個々の処理に
ついては第1および第3の実施例で説明したものと同一
であるので、そちらを参照されたい。
【0063】以上のように本実施例によれば、コヒーレ
ンス制御部33が、第1の実施例のメモリ制御装置のコ
ヒーレンス制御部の機能に加え、第3の実施例のメモリ
制御装置のコヒーレンス制御部の機能を有することによ
り、バリア同期のための機能とデータのコヒーレンス制
御機能とを、互いに大きな機能拡張を要することなく、
同様の枠組の中で効率良く実現することができる。
【0064】以下本発明のメモリ制御装置の第5の実施
例について、図面を参照しながら説明する。図11は本
発明の第5の実施例におけるメモリ制御装置の構成を示
すものである。
【0065】図11において、41はコヒーレンス制御
部、2は主ディレクトリ格納部、3は主ディレクトリ格
納部2内に記憶される主ディレクトリ情報、22はアク
セス属性記憶部、23はアクセス属性記憶部22内に記
憶されるアクセス属性ビットである。また、本実施例に
おける主ディレクトリ情報3のフィールド構成は、図1
に示すように、ダーティ・ビット・フィールド11、同
期ビット・フィールド12、計数ビット・フィールド1
3、ノード・フィールド14からなっている。
【0066】以上のように構成されたメモリ制御装置に
ついて、以下図面を用いてその動作を説明する。本発明
のメモリ制御装置は、コヒーレンス制御部41の動作を
除いて第2の実施例で示したメモリ制御装置と同じであ
る。コヒーレンス制御部41は外部からアクセス要求を
受け付け、次に、その受け付けた要求がリード、ライ
ト、バリア同期のいずれであるかを判別し、それぞれの
処理を開始する。リード、ライトの場合の処理について
は第2の実施例で説明したもの、すなわち図5、図6に
示したものと同一であるのでそちらを参照されたい。
【0067】一方、バリア同期要求の処理については第
3の実施例で説明したものと若干異なるので、ここでは
その異なる点についてのみ説明する。まず、コヒーレン
ス制御部41は、リード、ライトの場合と同様、同期変
数として用いられるブロックの番号をもとに主ディレク
トリ情報3を入力し、この後、図8に示した処理を開始
する。また、図8の処理は、同期ビット・フィールド1
2をリセットする(14)と同時に、主ディレクトリ情報エ
ントリを解放するように変更されなければならない。
【0068】本実施例では、主ディレクトリ情報エント
リの確保についても、図7に若干の変更が施されなけれ
ばならない。図7では、新たに主ディレクトリ情報エン
トリが必要となり、しかし、利用可能なエントリが残さ
れていない場合には、使用中のエントリを選択して(3)
(4)(6)、これを再利用することにしている。しかし、こ
のときに選択されるエントリは次の条件を満たしていな
ければならない。すなわち、同期ビット・フィールド1
2がセットされていないことである。つまり、バリア同
期要求の処理に用いている主ディレクトリ情報エントリ
は、再利用の候補から省くのである。
【0069】以上のように本実施例によれば、コヒーレ
ンス制御部が、第2の実施例のメモリ制御装置のコヒー
レンス制御部の機能に加え、第3の実施例のメモリ制御
装置のコヒーレンス制御部の機能を有することにより、
バリア同期のための機能とデータのコヒーレンス制御機
能とを、互いに大きな機能拡張を要することなく、同様
の枠組の中で効率良く、しかも、制御に必要な記憶量を
節約して実現することができる。
【0070】なお、本発明は上記各実施例に限定される
ものではなく、本発明の趣旨に基づいて種々の変形が可
能であり、これらを本発明の範囲から排除するものでは
ない。
【0071】
【発明の効果】以上のように本発明は、前記主ディレク
トリ情報に計数ビット・フィールドと複数のノード・フ
ィールドとを設け、データを共有するノードの数がノー
ド・フィールドの数を越えない時には各ノード・フィー
ルドにデータ・コピーを有するノードの番号を記憶し、
また、データを共有するノードの数がノード・フィール
ドの数を越えた時にはノード・フィールドの1つにデー
タ・コピーを有するノードの総数を記憶し、さらに、こ
れと同様の方法によってバリア同期の制御も行なうコヒ
ーレンス制御部を設けることにより、データ共有度が多
いデータに対してもノード・フィールドの数の制約から
不当にキャッシュを無効化することなく、データ共有度
に応じて効率の良いコヒーレンス制御を行なうことがで
き、また、これと合わせて、バリア同期に対して大きな
機能追加を伴うことなく、従って、低コストでバリア同
期制御機能を実現することができるといった優れた効果
を奏する。
【図面の簡単な説明】
【図1】(a)本発明の第1の実施例におけるメモリ制
御装置の構成図 (b)同実施例における主ディレクトリ情報のフィール
ド構成図
【図2】同アクセスがリードの場合のコヒーレンス制御
部の動作を示すフローチャート
【図3】同アクセスがライトの場合のコヒーレンス制御
部の動作を示すフローチャート
【図4】本発明の第2の実施例におけるメモリ制御装置
の構成図
【図5】同アクセスがリードの場合のコヒーレンス制御
部の動作を示すフローチャート
【図6】同アクセスがライトの場合のコヒーレンス制御
部の動作を示すフローチャート
【図7】同主ディレクトリ情報エントリを確保する場合
のコヒーレンス制御部の動作を示すフローチャート
【図8】同バリア同期要求に対する処理を行なう場合の
コヒーレンス制御部の動作を示すフローチャート
【図9】本発明の第3の実施例におけるメモリ制御装置
の構成図
【図10】本発明の第4の実施例におけるメモリ制御装
置の構成図
【図11】本発明の第5の実施例におけるメモリ制御装
置の構成図
【図12】本発明が対象とするマルチプロセッサ・シス
テムの構成例を示した図
【図13】(a)従来のメモリ制御装置の構成図 (b)従来のメモリ制御装置における主ディレクトリ情
報のフィールド構成図
【符号の説明】
1 コヒーレンス制御部 2 主ディレクトリ格納部 3 主ディレクトリ情報 11 ダーティ・ビット・フィールド 12 同期ビット・フィールド 13 計数ビット・フィールド 14 ノード・フィールド 21 コヒーレンス制御部 22 アクセス属性記憶部 23 アクセス属性ビット 31 コヒーレンス制御部 33 コヒーレンス制御部 41 コヒーレンス制御部 51 主記憶装置 52 メモリ制御装置 53 ネットワーク 54 キャッシュ 55 プロセッサ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年8月19日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図13
【補正方法】変更
【補正内容】
【図13】従来のメモリ制御装置を説明するための図

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 主ディレクトリ格納部と、コヒーレンス
    制御部とを具備し、前記主ディレクトリ格納部は複数の
    主ディレクトリ情報を格納し、前記主ディレクトリ情報
    は、少なくとも、1個の計数ビット・フィールドとn個
    のノード・フィールドとを有し、前記コヒーレンス制御
    部は、外部から入力したデータ・アクセス要求の一部を
    もとに前記主ディレクトリ格納部から前記主ディレクト
    リ情報を入力し、メモリ制御指令を外部に出力するまで
    のコヒーレンス制御を行なう過程で、データ・コピーを
    保持するキャッシュの数がある値を越えるまでは前記主
    ディレクトリ情報の前記計数ビット・フィールドをリセ
    ットするとともに、前記データ・コピーを保持するキャ
    ッシュの番号を前記ノード・フィールドに記憶し、前記
    データ・コピーを保持するキャッシュの数が前記の値を
    越えた後は前記主ディレクトリ情報の前記計数ビット・
    フィールドをセットするとともに前記データ・コピーを
    保持するキャッシュの数を前記ノード・フィールドの1
    つに記憶することを特徴とするメモリ制御装置。
  2. 【請求項2】 主ディレクトリ格納部と、アクセス属性
    記憶部と、コヒーレンス制御部とを具備し、前記主ディ
    レクトリ格納部は複数の主ディレクトリ情報を格納し、
    前記主ディレクトリ情報は、少なくとも、1個の計数ビ
    ット・フィールドとn個のノード・フィールドとを有
    し、前記アクセス属性記憶部は、対応付けられたデータ
    ・ブロックの性質を記憶する複数のアクセス属性ビット
    を格納し、前記コヒーレンス制御部は、外部から入力し
    たデータ・アクセス要求の一部をもとに前記主ディレク
    トリ格納部および前記アクセス属性記憶部から前記主デ
    ィレクトリ情報および前記アクセス属性ビットを入力
    し、メモリ制御指令を外部に出力するまでのコヒーレン
    ス制御を行なう過程で、データ・コピーを保持するキャ
    ッシュの数がある第1の値を越えるまでは前記主ディレ
    クトリ情報の前記計数ビット・フィールドをリセットす
    るとともに前記データ・コピーを保持するキャッシュの
    番号を前記ノード・フィールドに記憶し、前記データ・
    コピーを保持するキャッシュの数が前記第1の値を越え
    た後は前記主ディレクトリ情報の前記計数ビット・フィ
    ールドをセットするとともに前記データ・コピーを保持
    するキャッシュの数を前記ノード・フィールドの1つに
    記憶し、さらに、前記計数ビット・フィールドがセット
    されていて、かつ、前記ノード・フィールドの1つに記
    憶された値がある第2の値を越えるときには、それまで
    リセットされていた前記アクセス属性ビットをセットす
    ることを特徴とするメモリ制御装置。
  3. 【請求項3】 主ディレクトリ格納部内に記憶できる主
    ディレクトリ情報の数が実際のデータ・ブロックの数よ
    りも小さく構成されており、コヒーレンス制御を行なう
    過程で使用可能な前記主ディレクトリ情報のエントリが
    不足した場合、計数ビット・フィールドがセットされて
    いる前記主ディレクトリ情報のエントリを優先して選択
    し、選択した前記主ディレクトリ情報のデータ・ブロッ
    クに対応するアクセス属性部のビットをセットした後、
    前記主ディレクトリ情報のエントリを新たに再利用する
    ことを特徴とする請求項2記載のメモリ制御装置。
  4. 【請求項4】 主ディレクトリ格納部と、コヒーレンス
    制御部とを具備し、前記主ディレクトリ格納部は複数の
    主ディレクトリ情報を格納し、前記主ディレクトリ情報
    は、複数のノード・フィールドを有し、前記コヒーレン
    ス制御部は、外部から入力したバリア同期要求の一部を
    もとに前記主ディレクトリ格納部から前記主ディレクト
    リ情報を入力し、前記バリア同期要求の一部として含ま
    れる同期カウント数がある値以下であれば、前記バリア
    同期要求の送信元であるノードのノード番号を前記主デ
    ィレクトリ情報の前記ノード・フィールドに記憶し、前
    記同期カウント数が前記の値を越えていれば、残りの同
    期待ち数を求めて前記ノード・フィールドの1つに記憶
    し、さらに、前記ノード・フィールドに記憶するノード
    番号の数が同期カウント数に一致する場合あるいは残り
    の同期待ち数が0となる場合には同期完了指令を外部に
    出力することを特徴とするメモリ制御装置。
  5. 【請求項5】 コヒーレンス制御部は、外部から入力し
    たバリア同期要求の一部をもとに主ディレクトリ格納部
    から主ディレクトリ情報を入力し、前記バリア同期要求
    の一部として含まれる同期カウント数がある値以下であ
    れば、前記バリア同期要求の送信元であるノードのノー
    ド番号を前記主ディレクトリ情報の前記ノード・フィー
    ルドに記憶し、前記同期カウント数が前記の値を越えて
    いれば、残りの同期待ち数を求めて前記ノード・フィー
    ルドの1つに記憶し、さらに、前記ノード・フィールド
    に記憶するノード番号の数が同期カウント数に一致する
    場合あるいは残りの同期待ち数が0となる場合には同期
    完了指令を外部に出力する機能をさらに有することを特
    徴とする請求項1記載のメモリ制御装置。
  6. 【請求項6】 コヒーレンス制御部は、外部から入力し
    たバリア同期要求の一部をもとに主ディレクトリ格納部
    から主ディレクトリ情報を入力し、前記バリア同期要求
    の一部として含まれる同期カウント数がある値以下であ
    れば、前記バリア同期要求の送信元であるノードのノー
    ド番号を前記主ディレクトリ情報の前記ノード・フィー
    ルドに記憶し、前記同期カウント数が前記の値を越えて
    いれば、残りの同期待ち数を求めて前記ノード・フィー
    ルドの1つに記憶し、さらに、前記ノード・フィールド
    に記憶するノード番号の数が同期カウント数に一致する
    場合あるいは残りの同期待ち数が0となる場合には同期
    完了指令を外部に出力する機能をさらに請求項3記載の
    メモリ制御装置。
JP3287475A 1991-11-01 1991-11-01 メモリ制御装置 Pending JPH0644136A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3287475A JPH0644136A (ja) 1991-11-01 1991-11-01 メモリ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3287475A JPH0644136A (ja) 1991-11-01 1991-11-01 メモリ制御装置

Publications (1)

Publication Number Publication Date
JPH0644136A true JPH0644136A (ja) 1994-02-18

Family

ID=17717824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3287475A Pending JPH0644136A (ja) 1991-11-01 1991-11-01 メモリ制御装置

Country Status (1)

Country Link
JP (1) JPH0644136A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4721502B2 (ja) * 1999-11-08 2011-07-13 ヒューレット・パッカード・カンパニー ソース定義パケットルーティングシステム及びその方法
WO2012035605A1 (ja) 2010-09-13 2012-03-22 富士通株式会社 情報処理装置および情報処理装置の制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4721502B2 (ja) * 1999-11-08 2011-07-13 ヒューレット・パッカード・カンパニー ソース定義パケットルーティングシステム及びその方法
WO2012035605A1 (ja) 2010-09-13 2012-03-22 富士通株式会社 情報処理装置および情報処理装置の制御方法

Similar Documents

Publication Publication Date Title
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
US5995967A (en) Forming linked lists using content addressable memory
US7613884B2 (en) Multiprocessor system and method ensuring coherency between a main memory and a cache memory
US7340565B2 (en) Source request arbitration
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US5537569A (en) Multiprocessor system utilizing a directory memory and including grouped processing elements each having cache
US7533197B2 (en) System and method for remote direct memory access without page locking by the operating system
JPS5830319Y2 (ja) コンピユ−タシステム
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
EP0185867A2 (en) A memory hierarchy and its method of operation
US5802571A (en) Apparatus and method for enforcing data coherency in an information handling system having multiple hierarchical levels of cache memory
US11269772B2 (en) Persistent memory storage engine device based on log structure and control method thereof
US6115790A (en) System, method and computer program product for organizing page caches
JPH04308956A (ja) 受信バッファ
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
CN107341114B (zh) 一种目录管理的方法、节点控制器和系统
JP2005519391A (ja) 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム
US6587922B2 (en) Multiprocessor system
KR100851738B1 (ko) 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리
US6363458B1 (en) Adaptive granularity method for integration of fine and coarse communication in the distributed shared memory system
EP0468804A2 (en) Hierarchical memory control system
WO1998026352A1 (fr) Procede de commande de prelecture de fichiers dans un systeme d'ordinateur
US7234021B1 (en) Methods and apparatus for accessing data elements using improved hashing techniques
US7669013B2 (en) Directory for multi-node coherent bus
US7725660B2 (en) Directory for multi-node coherent bus