JPH10334068A - 非均一メモリアクセスを有するマシン用の置換カウンタ - Google Patents
非均一メモリアクセスを有するマシン用の置換カウンタInfo
- Publication number
- JPH10334068A JPH10334068A JP10144680A JP14468098A JPH10334068A JP H10334068 A JPH10334068 A JP H10334068A JP 10144680 A JP10144680 A JP 10144680A JP 14468098 A JP14468098 A JP 14468098A JP H10334068 A JPH10334068 A JP H10334068A
- Authority
- JP
- Japan
- Prior art keywords
- block
- module
- modules
- address
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 163
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000007246 mechanism Effects 0.000 abstract description 20
- 230000008569 process Effects 0.000 abstract description 19
- 238000013507 mapping Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100021906 Cyclin-O Human genes 0.000 description 1
- 101000897441 Homo sapiens Cyclin-O Proteins 0.000 description 1
- GQYIWUVLTXOXAJ-UHFFFAOYSA-N Lomustine Chemical group ClCCN(N=O)C(=O)NC1CCCCC1 GQYIWUVLTXOXAJ-UHFFFAOYSA-N 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】 適当なサイズのテーブルLMDとテーブルR
CTとを備える複数のモジュールで構成され、所望の性
能を有するマシンを提供する。 【解決手段】 非均一メモリアクセスおよびキャッシュ
メモリのコヒーレンシーを有するマシンは複数のモジュ
ール(10、20、40、60)で構成され、各モジュ
ール(10)は装置(6、26、46、66)を備え、
装置(6)は、モジュール(10)に対しローカルなメ
モリ部分(5’)へのローカルアクセスを管理するテー
ブル(8)と、システムバス(7)により、モジュール
(10)に対しリモートなメモリ部分(25’、4
5’、65’)へのアクセスを管理するテーブル(9)
とを備え、テーブル(8)内の置換数のカウンタ(8
1)およびテーブル(8)へのアクセスのカウンタ(8
3)と、テーブル(9)内の置換数のカウンタ(91)
およびテーブル(9)へのアクセスのカウンタ(93)
とを備える。
CTとを備える複数のモジュールで構成され、所望の性
能を有するマシンを提供する。 【解決手段】 非均一メモリアクセスおよびキャッシュ
メモリのコヒーレンシーを有するマシンは複数のモジュ
ール(10、20、40、60)で構成され、各モジュ
ール(10)は装置(6、26、46、66)を備え、
装置(6)は、モジュール(10)に対しローカルなメ
モリ部分(5’)へのローカルアクセスを管理するテー
ブル(8)と、システムバス(7)により、モジュール
(10)に対しリモートなメモリ部分(25’、4
5’、65’)へのアクセスを管理するテーブル(9)
とを備え、テーブル(8)内の置換数のカウンタ(8
1)およびテーブル(8)へのアクセスのカウンタ(8
3)と、テーブル(9)内の置換数のカウンタ(91)
およびテーブル(9)へのアクセスのカウンタ(93)
とを備える。
Description
【0001】
【発明の属する技術分野】本発明は、非均一メモリアク
セスおよびキャッシュメモリのコヒーレンシーを有する
マシンの製造方法、および情報処理分野においてそのよ
うな方法を実施するのに適したマシンを対象とする。
セスおよびキャッシュメモリのコヒーレンシーを有する
マシンの製造方法、および情報処理分野においてそのよ
うな方法を実施するのに適したマシンを対象とする。
【0002】
【従来の技術】情報処理分野では、マシンを構成するプ
ロセッサの数を増やすことによりマシンの性能を上げる
ことが可能である。SMPという名称で知られている種
類のマシンにより、同一のマシン内の種々のプロセッサ
は、システムバスを使用してマシンのメモリにバランス
よくアクセスすることができる。アクセスされた全デー
タについてメモリへのアクセス時間がほぼ同じである限
り、これらは、均一メモリアクセスを有するマシンであ
る。しかしながらこのようなマシンの性能曲線は、プロ
セッサ数に比例して直線的に増加することはない。プロ
セッサ数が多い場合、マシンは、アプリケーションを実
行するために使用するリソースへのアクセス可能性につ
いてより多くの問題を管理することになる。その結果、
プロセッサ数がしばしば4個程度と見積もられる最適値
を超えると性能曲線が顕著に低下する。この問題に対
し、先行技術は種々の解決方法を提案している。
ロセッサの数を増やすことによりマシンの性能を上げる
ことが可能である。SMPという名称で知られている種
類のマシンにより、同一のマシン内の種々のプロセッサ
は、システムバスを使用してマシンのメモリにバランス
よくアクセスすることができる。アクセスされた全デー
タについてメモリへのアクセス時間がほぼ同じである限
り、これらは、均一メモリアクセスを有するマシンであ
る。しかしながらこのようなマシンの性能曲線は、プロ
セッサ数に比例して直線的に増加することはない。プロ
セッサ数が多い場合、マシンは、アプリケーションを実
行するために使用するリソースへのアクセス可能性につ
いてより多くの問題を管理することになる。その結果、
プロセッサ数がしばしば4個程度と見積もられる最適値
を超えると性能曲線が顕著に低下する。この問題に対
し、先行技術は種々の解決方法を提案している。
【0003】既知の解決方法は、複数のマシンをクラス
タにグループ分けしてネットワークでこれらの間で通信
を行うことから成る。各マシンは、最適な数、たとえば
4個のプロセッサと、独自のオペレーティングシステム
とを有する。各マシンは、別のマシンが有する最新デー
タについての処理を行う毎に、この別のマシンとの通信
を確立する。これらの通信に必要な時間およびコヒーレ
ンシーのあるデータで作業を行う必要性から、たとえ
ば、多くの通信を必要とする分散アプリケーションなど
の大きなアプリケーションの場合、待ち時間の問題が生
じる。待ち時間とは、メモリへのアクセス要求の送信時
からこの要求に対する応答が受信されるまでの時間であ
る。
タにグループ分けしてネットワークでこれらの間で通信
を行うことから成る。各マシンは、最適な数、たとえば
4個のプロセッサと、独自のオペレーティングシステム
とを有する。各マシンは、別のマシンが有する最新デー
タについての処理を行う毎に、この別のマシンとの通信
を確立する。これらの通信に必要な時間およびコヒーレ
ンシーのあるデータで作業を行う必要性から、たとえ
ば、多くの通信を必要とする分散アプリケーションなど
の大きなアプリケーションの場合、待ち時間の問題が生
じる。待ち時間とは、メモリへのアクセス要求の送信時
からこの要求に対する応答が受信されるまでの時間であ
る。
【0004】別の既知の解決方法は、NUMA型マシン
による解決方法である。これは、アクセスされるデータ
のロケーションによりメモリへのアクセス時間が異な
る、不均一メモリアクセス(英語ではNon Uniform Memo
ry Access)を有するマシンである。NUMA型マシン
は複数のモジュールで構成され、各モジュールは、最適
数のプロセッサと、マシンの全メモリのうちの物理的部
分とを備える。モジュールは通常、別のモジュールと共
有しないメモリの物理的部分へのアクセスの方が、別の
マシンと共有する部分へのアクセスよりも容易であるこ
とから、このようなマシンは不均一メモリアクセス型で
ある。各モジュールは、これらのプロセッサと物理メモ
リとを接続する専用システムバスを有するが、全モジュ
ールに共通なオペレーティングシステムにより、専用シ
ステムバスの全てが、マシンの唯一無二のシステムバス
であるとみなされる。論理アドレシングにより、あるモ
ジュールの所定の物理メモリロケーションに常駐場所が
割り当てられる。あるプロセッサを想定した場合、物理
的にプロセッサと同じモジュール上にあるローカルメモ
リ部分へのアクセスと、プロセッサがあるモジュールと
は別の単数または複数のモジュール上に物理的に存在す
るリモートメモリ部分へのアクセスとの異なったアクセ
スがある。
による解決方法である。これは、アクセスされるデータ
のロケーションによりメモリへのアクセス時間が異な
る、不均一メモリアクセス(英語ではNon Uniform Memo
ry Access)を有するマシンである。NUMA型マシン
は複数のモジュールで構成され、各モジュールは、最適
数のプロセッサと、マシンの全メモリのうちの物理的部
分とを備える。モジュールは通常、別のモジュールと共
有しないメモリの物理的部分へのアクセスの方が、別の
マシンと共有する部分へのアクセスよりも容易であるこ
とから、このようなマシンは不均一メモリアクセス型で
ある。各モジュールは、これらのプロセッサと物理メモ
リとを接続する専用システムバスを有するが、全モジュ
ールに共通なオペレーティングシステムにより、専用シ
ステムバスの全てが、マシンの唯一無二のシステムバス
であるとみなされる。論理アドレシングにより、あるモ
ジュールの所定の物理メモリロケーションに常駐場所が
割り当てられる。あるプロセッサを想定した場合、物理
的にプロセッサと同じモジュール上にあるローカルメモ
リ部分へのアクセスと、プロセッサがあるモジュールと
は別の単数または複数のモジュール上に物理的に存在す
るリモートメモリ部分へのアクセスとの異なったアクセ
スがある。
【0005】NUMA型マシンの特別な種類はCCNU
MA型、すなわちキャッシュのコヒーレンシー(英語で
はCache Coherency)を有するマシンである。共有キャ
ッシュメモリ機構では、ある瞬間において、このブロッ
クの有効なすなわち最新のコピーは、必ずしも物理的常
駐メモリのロケーションにあるとは限らない。従ってブ
ロックの単数または複数の最新コピーは、アプリケーシ
ョンの要求およびシステムコールに応じて、あるモジュ
ールから別のモジュールに移動することがある。当該モ
ジュール内にある物理メモリは、当該モジュールのアク
セスが最も速いメモリである。なぜならローカルシステ
ムバスにより直接行われるからである。離れた別のモジ
ュールのところにある物理メモリは、当該モジュールの
アクセスが最も遅いメモリである。なぜならモジュール
間で単数または複数のトランザクションを必要とするか
らである。当該モジュールに対してローカルな物理メモ
リは、このモジュール内に常駐するデータブロックに特
に割り当てられた第一部分と、他のモジュール内に常駐
するブロックのコピーに特に割り当てられた第二部分と
を備える。物理メモリの第二部分は、他のモジュール内
のリモートメモリのキャッシュメモリを構成する。
MA型、すなわちキャッシュのコヒーレンシー(英語で
はCache Coherency)を有するマシンである。共有キャ
ッシュメモリ機構では、ある瞬間において、このブロッ
クの有効なすなわち最新のコピーは、必ずしも物理的常
駐メモリのロケーションにあるとは限らない。従ってブ
ロックの単数または複数の最新コピーは、アプリケーシ
ョンの要求およびシステムコールに応じて、あるモジュ
ールから別のモジュールに移動することがある。当該モ
ジュール内にある物理メモリは、当該モジュールのアク
セスが最も速いメモリである。なぜならローカルシステ
ムバスにより直接行われるからである。離れた別のモジ
ュールのところにある物理メモリは、当該モジュールの
アクセスが最も遅いメモリである。なぜならモジュール
間で単数または複数のトランザクションを必要とするか
らである。当該モジュールに対してローカルな物理メモ
リは、このモジュール内に常駐するデータブロックに特
に割り当てられた第一部分と、他のモジュール内に常駐
するブロックのコピーに特に割り当てられた第二部分と
を備える。物理メモリの第二部分は、他のモジュール内
のリモートメモリのキャッシュメモリを構成する。
【0006】物理メモリの第一部分内に常駐するブロッ
クは、その内容が最新コピーでない場合には、ただちに
使用可能であるわけではない。たとえば、他の単数また
は複数のモジュールがこのブロックを共有し、これら他
のモジュールのうちの一つが、メモリのコヒーレンシー
の意味において最新のコピーを有する場合がこれに該当
する。当該モジュールは、他のモジュールとの、物理メ
モリの第一部分内に常駐するブロックの共有を管理する
ために、ローカルメモリテーブルLMD(英語ではLoca
l Memory Directory)を使用することができる。テーブ
ルLMDは複数の行で構成され、各行は、モジュール内
に常駐し単数または複数の他のモジュールにより共有さ
れるブロックを参照する用途になっている。テーブルL
MDが含む行数が多ければ多いほど、ある瞬間に他のモ
ジュールが共有できる常駐ブロックも多くなる。これは
他のモジュールにとっては有利であるが、常駐ブロック
の最新コピーのロケーションがより分散しその結果アク
セスにより時間がかかる当該モジュールにとっては、そ
れほど有利ではない。他方、テーブルLMDは物理メモ
リの第一部分へのアクセスに含まれることから、このテ
ーブルは高速アクセスメモリ内に配置することが好まし
い。たとえば静的メモリなどの高速アクセスメモリを使
用するコストのため、テーブルLMDにおいて、物理メ
モリの第一部分内に常駐するブロックの全てを参照する
ことは禁止される。
クは、その内容が最新コピーでない場合には、ただちに
使用可能であるわけではない。たとえば、他の単数また
は複数のモジュールがこのブロックを共有し、これら他
のモジュールのうちの一つが、メモリのコヒーレンシー
の意味において最新のコピーを有する場合がこれに該当
する。当該モジュールは、他のモジュールとの、物理メ
モリの第一部分内に常駐するブロックの共有を管理する
ために、ローカルメモリテーブルLMD(英語ではLoca
l Memory Directory)を使用することができる。テーブ
ルLMDは複数の行で構成され、各行は、モジュール内
に常駐し単数または複数の他のモジュールにより共有さ
れるブロックを参照する用途になっている。テーブルL
MDが含む行数が多ければ多いほど、ある瞬間に他のモ
ジュールが共有できる常駐ブロックも多くなる。これは
他のモジュールにとっては有利であるが、常駐ブロック
の最新コピーのロケーションがより分散しその結果アク
セスにより時間がかかる当該モジュールにとっては、そ
れほど有利ではない。他方、テーブルLMDは物理メモ
リの第一部分へのアクセスに含まれることから、このテ
ーブルは高速アクセスメモリ内に配置することが好まし
い。たとえば静的メモリなどの高速アクセスメモリを使
用するコストのため、テーブルLMDにおいて、物理メ
モリの第一部分内に常駐するブロックの全てを参照する
ことは禁止される。
【0007】物理メモリの第一部分内に常駐していない
ブロックは、物理メモリの第二部分内でこのブロックの
最新コピーにアクセスすることができれば、ただちに使
用することができる。当該モジュールは、物理メモリの
第二部分内の最新コピーの存在を管理するために、リモ
ートキャッシュテーブルRCT(英語ではRemote Cache
Table)を有している。リモートキャッシュテーブルR
CTは複数の行で構成され、各行は、物理メモリの第二
部分のロケーションと対応するようになっており、各ロ
ケーションは、この行により参照されるブロックのコピ
ーを格納するためのものである。従ってリモートキャッ
シュテーブルRCTは、物理メモリの第二部分が含むこ
とができるロケーションと同数の行を含む。物理メモリ
の第二部分のサイズが大きくなればなるほど、物理メモ
リの第二部分が含むことができる、他のモジュール内に
常駐するブロックのコピーの数も多くなることがわか
る。しかしながら、他のモジュール内に常駐するブロッ
ク全てのコピーを瞬間的に格納するために用意される物
理メモリの第二部分のサイズは法外なものとなろう。他
方、テーブルRCTは物理メモリの第二部分へのアクセ
スに含まれることから、このテーブルは高速アクセスメ
モリ内に設置することが好ましい。たとえば静的メモリ
などの高速アクセスメモリを使用するコストのため、テ
ーブルRCTにおいて、他のモジュール内に常駐するブ
ロックの全てを参照することは禁止される。
ブロックは、物理メモリの第二部分内でこのブロックの
最新コピーにアクセスすることができれば、ただちに使
用することができる。当該モジュールは、物理メモリの
第二部分内の最新コピーの存在を管理するために、リモ
ートキャッシュテーブルRCT(英語ではRemote Cache
Table)を有している。リモートキャッシュテーブルR
CTは複数の行で構成され、各行は、物理メモリの第二
部分のロケーションと対応するようになっており、各ロ
ケーションは、この行により参照されるブロックのコピ
ーを格納するためのものである。従ってリモートキャッ
シュテーブルRCTは、物理メモリの第二部分が含むこ
とができるロケーションと同数の行を含む。物理メモリ
の第二部分のサイズが大きくなればなるほど、物理メモ
リの第二部分が含むことができる、他のモジュール内に
常駐するブロックのコピーの数も多くなることがわか
る。しかしながら、他のモジュール内に常駐するブロッ
ク全てのコピーを瞬間的に格納するために用意される物
理メモリの第二部分のサイズは法外なものとなろう。他
方、テーブルRCTは物理メモリの第二部分へのアクセ
スに含まれることから、このテーブルは高速アクセスメ
モリ内に設置することが好ましい。たとえば静的メモリ
などの高速アクセスメモリを使用するコストのため、テ
ーブルRCTにおいて、他のモジュール内に常駐するブ
ロックの全てを参照することは禁止される。
【0008】
【発明が解決しようとする課題】それぞれがテーブルL
MDとテーブルRCTとを備える複数のモジュールで構
成されるマシンを製造するにあたっては、上記に示す制
約から、これらのテーブルのサイズを所望のマシン性能
と両立可能なものとすることが必要であることがわか
る。問題は、この両立可能なサイズを先験的に求めるこ
とが困難であることである。
MDとテーブルRCTとを備える複数のモジュールで構
成されるマシンを製造するにあたっては、上記に示す制
約から、これらのテーブルのサイズを所望のマシン性能
と両立可能なものとすることが必要であることがわか
る。問題は、この両立可能なサイズを先験的に求めるこ
とが困難であることである。
【0009】
【課題を解決するための手段】本発明は、複数のモジュ
ールで構成され、所与のモジュールが、 − 当該モジュール内に常駐するデータブロックを格納
するための第一部分と、 − 他のモジュール内に常駐するデータブロックのコピ
ーを格納するための第二部分との少なくとも二つの部分
で構成される物理メモリを備えるマシンの製造方法であ
って、 − 二つのテーブルLMDおよびRCTを当該モジュー
ルに付与し、該二つのテーブルは、それぞれが所定数の
行を含み、第一テーブルLMDの各行が、単数または複
数の他のモジュールとの間で共有されるべく使用可能な
物理メモリの第一部分内に常駐するブロックのアドレス
をインデッスクすると共に、他のモジュールのアクセス
要求による置換のために物理メモリの第一部分内に常駐
する別のブロックのアドレスをインデッスクするための
ものであり、第二テーブルRCTの各行が、他のモジュ
ール内に常駐し、この行に対応する物理的メモリの第二
部分のロケーションにおいてそのコピーにアクセス可能
なブロックのアドレスを参照すると共に、当該モジュー
ルのアクセス要求による置換のために他のモジュール内
に常駐する別のブロックのアドレスを参照するためのも
のであり、 − 第一テーブルLMD内の置換数及び/または第二テ
ーブルRCT(9)内の置換数をカウントする、所与の
オペレーティングモードでマシンを動作させ、 − 第一テーブルまたは第二テーブルにおける置換の数
が、平均して前記所与のオペレーティングモードのしき
い値よりも小さくなるようにマシンのアーキテクチャを
適合させることから成ることを特徴とする方法を対象と
する。
ールで構成され、所与のモジュールが、 − 当該モジュール内に常駐するデータブロックを格納
するための第一部分と、 − 他のモジュール内に常駐するデータブロックのコピ
ーを格納するための第二部分との少なくとも二つの部分
で構成される物理メモリを備えるマシンの製造方法であ
って、 − 二つのテーブルLMDおよびRCTを当該モジュー
ルに付与し、該二つのテーブルは、それぞれが所定数の
行を含み、第一テーブルLMDの各行が、単数または複
数の他のモジュールとの間で共有されるべく使用可能な
物理メモリの第一部分内に常駐するブロックのアドレス
をインデッスクすると共に、他のモジュールのアクセス
要求による置換のために物理メモリの第一部分内に常駐
する別のブロックのアドレスをインデッスクするための
ものであり、第二テーブルRCTの各行が、他のモジュ
ール内に常駐し、この行に対応する物理的メモリの第二
部分のロケーションにおいてそのコピーにアクセス可能
なブロックのアドレスを参照すると共に、当該モジュー
ルのアクセス要求による置換のために他のモジュール内
に常駐する別のブロックのアドレスを参照するためのも
のであり、 − 第一テーブルLMD内の置換数及び/または第二テ
ーブルRCT(9)内の置換数をカウントする、所与の
オペレーティングモードでマシンを動作させ、 − 第一テーブルまたは第二テーブルにおける置換の数
が、平均して前記所与のオペレーティングモードのしき
い値よりも小さくなるようにマシンのアーキテクチャを
適合させることから成ることを特徴とする方法を対象と
する。
【0010】本発明の第一変形例によれば、第一テーブ
ル及び/または第二テーブルに、置換の数が、平均して
前記しきい値よりも小さくなるような行数を付与するこ
とにより、マシンのアーキテクチャは適合される。
ル及び/または第二テーブルに、置換の数が、平均して
前記しきい値よりも小さくなるような行数を付与するこ
とにより、マシンのアーキテクチャは適合される。
【0011】本発明はまた、複数のモジュールで構成さ
れ、各所与のモジュールが、 − 当該モジュール内に常駐するデータブロックを格納
するための第一部分と、 − 他のモジュール内に常駐するデータブロックのコピ
ーを格納するための第二部分との少なくとも二つの部分
で構成される物理メモリを備えるマシンであって、当該
モジュールが、 − 二つのテーブルLMCおよびRCTであって、それ
ぞれが所定数の行を含み、第一テーブルLMDの各行
が、単数または複数の他のモジュールとの間で共有され
るべく使用可能な物理メモリの第一部分内に常駐するブ
ロックのアドレスをインデッスクすると共に、他のモジ
ュールのアクセス要求による置換のために物理メモリの
第一部分内に常駐する別のブロックのアドレスをインデ
スクするためのものであり、第二テーブルRCTの各行
が、他のモジュール内に常駐し、この行に対応する物理
的メモリの第二部分のロケーションにおいてそのコピー
にアクセス可能なブロックのアドレスを参照すると共
に、当該モジュールのアクセス要求による置換のために
他のモジュール内に常駐する別のブロックのアドレスを
参照するためのものである二つのテーブルLMDおよび
RCTと、 − 第一テーブルLMD内の置換数のカウンタおよび/
または第二テーブルRCT内の置換数のカウンタとを備
えることを特徴とするマシンも対象とする。
れ、各所与のモジュールが、 − 当該モジュール内に常駐するデータブロックを格納
するための第一部分と、 − 他のモジュール内に常駐するデータブロックのコピ
ーを格納するための第二部分との少なくとも二つの部分
で構成される物理メモリを備えるマシンであって、当該
モジュールが、 − 二つのテーブルLMCおよびRCTであって、それ
ぞれが所定数の行を含み、第一テーブルLMDの各行
が、単数または複数の他のモジュールとの間で共有され
るべく使用可能な物理メモリの第一部分内に常駐するブ
ロックのアドレスをインデッスクすると共に、他のモジ
ュールのアクセス要求による置換のために物理メモリの
第一部分内に常駐する別のブロックのアドレスをインデ
スクするためのものであり、第二テーブルRCTの各行
が、他のモジュール内に常駐し、この行に対応する物理
的メモリの第二部分のロケーションにおいてそのコピー
にアクセス可能なブロックのアドレスを参照すると共
に、当該モジュールのアクセス要求による置換のために
他のモジュール内に常駐する別のブロックのアドレスを
参照するためのものである二つのテーブルLMDおよび
RCTと、 − 第一テーブルLMD内の置換数のカウンタおよび/
または第二テーブルRCT内の置換数のカウンタとを備
えることを特徴とするマシンも対象とする。
【0012】本発明は、図面を参照して行う実施例の記
述により、より良く理解されよう。
述により、より良く理解されよう。
【0013】
【発明の実施の形態】図1は、リング16により相互接
続される四つのモジュール10、20、40および60
で構成される非均一メモリアクセスを備えたマシンのア
ーキテクチャの例を示す図である。図1を参照して行う
以下の記述は、二つ以上の任意の数のモジュールについ
て有効である。モジュール間の接続方法のうちで最も知
られているのは、単数または複数の切り換えリング(sw
itched ring)、あるいはグリッド、ハイパーキューブ
相互接続、さらにはクロスバースイッチである。モジュ
ールを相互接続することにより、メモリコヒーレンシー
プロトコルを使用するモジュール間でトランザクション
を行うことができる。
続される四つのモジュール10、20、40および60
で構成される非均一メモリアクセスを備えたマシンのア
ーキテクチャの例を示す図である。図1を参照して行う
以下の記述は、二つ以上の任意の数のモジュールについ
て有効である。モジュール間の接続方法のうちで最も知
られているのは、単数または複数の切り換えリング(sw
itched ring)、あるいはグリッド、ハイパーキューブ
相互接続、さらにはクロスバースイッチである。モジュ
ールを相互接続することにより、メモリコヒーレンシー
プロトコルを使用するモジュール間でトランザクション
を行うことができる。
【0014】モジュール10は、四つのプロセッサ1〜
4と、メモリ5と、リング16により他のモジュールに
接続する装置6とを備える。種々の要素1〜6は、モジ
ュール10内のシステムバス7により相互に接続され
る。モジュール20は、四つのプロセッサ21〜24
と、メモリ25と、リング16により他のモジュールに
接続する装置26とを備える。種々の要素21〜26
は、モジュール20内のシステムバス27により相互に
接続される。モジュール40は、四つのプロセッサ41
〜44と、メモリ45と、リング16により他のモジュ
ールに接続する装置46とを備える。種々の要素41〜
46は、モジュール40内のシステムバス47により相
互に接続される。モジュール60は、四つのプロセッサ
61〜64と、メモリ65と、リング16により他のモ
ジュールに接続する装置66とを備える。種々の要素6
1〜66は、モジュール60内のシステムバス67によ
り相互に接続される。装置6、26、46、66はそれ
ぞれリンク17、37、57、77によりリング16に
接続される。
4と、メモリ5と、リング16により他のモジュールに
接続する装置6とを備える。種々の要素1〜6は、モジ
ュール10内のシステムバス7により相互に接続され
る。モジュール20は、四つのプロセッサ21〜24
と、メモリ25と、リング16により他のモジュールに
接続する装置26とを備える。種々の要素21〜26
は、モジュール20内のシステムバス27により相互に
接続される。モジュール40は、四つのプロセッサ41
〜44と、メモリ45と、リング16により他のモジュ
ールに接続する装置46とを備える。種々の要素41〜
46は、モジュール40内のシステムバス47により相
互に接続される。モジュール60は、四つのプロセッサ
61〜64と、メモリ65と、リング16により他のモ
ジュールに接続する装置66とを備える。種々の要素6
1〜66は、モジュール60内のシステムバス67によ
り相互に接続される。装置6、26、46、66はそれ
ぞれリンク17、37、57、77によりリング16に
接続される。
【0015】各プロセッサ1〜4、21〜24、41〜
44、61〜64は、内部および/または外部の専用キ
ャッシュメモリ11〜14、31〜34、51〜54、
71〜74を有する。また、モジュール10はRCと記
されたリモートアクセスキャッシュメモリ15を備え、
モジュール20はRCと記されたリモートアクセスキャ
ッシュメモリ35を備え、モジュール40はRCと記さ
れたリモートアクセスキャッシュメモリ55を備え、モ
ジュール60はRCと記されたリモートアクセスキャッ
シュメモリ75を備える。キャッシュメモリ15、3
5、55および/または75のサイズをパラメータ化す
ることができるようにするためには、図1に示すよう
に、メモリ5、25、45、65の専用領域にキャッシ
ュメモリを物理的に置くことが有利である。この場合、
以下の記述では、メモリ5’、25’、45’、65’
を、キャッシュメモリ15、35、55、75のデータ
ブロックを含まないメモリ5、25、45、65のデー
タブロックで構成されているものとみなす。キャッシュ
メモリ15、35、55、75が、メモリ5、25、4
5、65の物理的構成要素とは異なる物理的構成要素で
具体化される場合には、符号5’、25’、45’、6
5’は5、25、45、65と同一であることを考慮し
なければならない。
44、61〜64は、内部および/または外部の専用キ
ャッシュメモリ11〜14、31〜34、51〜54、
71〜74を有する。また、モジュール10はRCと記
されたリモートアクセスキャッシュメモリ15を備え、
モジュール20はRCと記されたリモートアクセスキャ
ッシュメモリ35を備え、モジュール40はRCと記さ
れたリモートアクセスキャッシュメモリ55を備え、モ
ジュール60はRCと記されたリモートアクセスキャッ
シュメモリ75を備える。キャッシュメモリ15、3
5、55および/または75のサイズをパラメータ化す
ることができるようにするためには、図1に示すよう
に、メモリ5、25、45、65の専用領域にキャッシ
ュメモリを物理的に置くことが有利である。この場合、
以下の記述では、メモリ5’、25’、45’、65’
を、キャッシュメモリ15、35、55、75のデータ
ブロックを含まないメモリ5、25、45、65のデー
タブロックで構成されているものとみなす。キャッシュ
メモリ15、35、55、75が、メモリ5、25、4
5、65の物理的構成要素とは異なる物理的構成要素で
具体化される場合には、符号5’、25’、45’、6
5’は5、25、45、65と同一であることを考慮し
なければならない。
【0016】各プロセッサ1〜4、21〜24、41〜
44、61〜64は、ただ一つのアドレス空間の論理ア
ドレスを使用して、メモリ5’、25’、45’、6
5’に含まれるデータブロックにアクセスするが、その
際、メモリ5’、25’、45’、65’がローカルで
あってプロセッサと同じモジュールに属するか、あるい
はリモートであってプロセッサとは異なるモジュールに
属するかは区別しない。モジュール10内では、たとえ
ば、アドレスされたメモリが物理的に存在するモジュー
ルを示す論理アドレスの上位ビットを使用して、論理ア
ドレスがメモリ5’内に常駐するブロックのローカル物
理アドレスに対応するか、論理アドレスがモジュール2
0、40、60のうちのいずれかに常駐するブロックの
ローカル物理アドレスに対応するかを区別するのは装置
6であり、その場合、下位ビットは常駐モジュールの内
部の物理アドレスを示す。モジュール20内では、たと
えば、アドレスされたメモリが物理的に存在するモジュ
ールを示す論理アドレスの上位ビットを使用して、論理
アドレスがメモリ25’内に常駐するブロックのローカ
ル物理アドレスに対応するか、論理アドレスがモジュー
ル40、60、10のうちのいずれかに常駐するブロッ
クのリモート物理アドレスに対応するかを区別するのは
装置26であり、その場合、下位ビットは常駐モジュー
ルの内部の物理アドレスを示し、以下、他のモジュール
についても同様である。前記に記載の上位ビットは、論
理アドレスのフィールドA4を構成する。このようにし
てアクセスされたデータブロックは、全プロセッサが共
有するメモリユニットSMを構成する。
44、61〜64は、ただ一つのアドレス空間の論理ア
ドレスを使用して、メモリ5’、25’、45’、6
5’に含まれるデータブロックにアクセスするが、その
際、メモリ5’、25’、45’、65’がローカルで
あってプロセッサと同じモジュールに属するか、あるい
はリモートであってプロセッサとは異なるモジュールに
属するかは区別しない。モジュール10内では、たとえ
ば、アドレスされたメモリが物理的に存在するモジュー
ルを示す論理アドレスの上位ビットを使用して、論理ア
ドレスがメモリ5’内に常駐するブロックのローカル物
理アドレスに対応するか、論理アドレスがモジュール2
0、40、60のうちのいずれかに常駐するブロックの
ローカル物理アドレスに対応するかを区別するのは装置
6であり、その場合、下位ビットは常駐モジュールの内
部の物理アドレスを示す。モジュール20内では、たと
えば、アドレスされたメモリが物理的に存在するモジュ
ールを示す論理アドレスの上位ビットを使用して、論理
アドレスがメモリ25’内に常駐するブロックのローカ
ル物理アドレスに対応するか、論理アドレスがモジュー
ル40、60、10のうちのいずれかに常駐するブロッ
クのリモート物理アドレスに対応するかを区別するのは
装置26であり、その場合、下位ビットは常駐モジュー
ルの内部の物理アドレスを示し、以下、他のモジュール
についても同様である。前記に記載の上位ビットは、論
理アドレスのフィールドA4を構成する。このようにし
てアクセスされたデータブロックは、全プロセッサが共
有するメモリユニットSMを構成する。
【0017】プロセッサ1に関する以下の例は、モジュ
ール10に関するプロセッサ2〜4、モジュール20に
関するプロセッサ21〜24、モジュール40に関する
プロセッサ41〜44、ならびにモジュール60に関す
るプロセッサ61〜64に対しても有効である。
ール10に関するプロセッサ2〜4、モジュール20に
関するプロセッサ21〜24、モジュール40に関する
プロセッサ41〜44、ならびにモジュール60に関す
るプロセッサ61〜64に対しても有効である。
【0018】プロセッサ1は、専用キャッシュ11を使
用して、直接マッピング、連想マッピング、あるいはブ
ロックセット連想マッピングなどの既知のキャッシュメ
モリ機構を使用して、ユニットSMのデータブロックB
1に含まれる語を処理する。これらの機構についてはこ
こでは説明しない。
用して、直接マッピング、連想マッピング、あるいはブ
ロックセット連想マッピングなどの既知のキャッシュメ
モリ機構を使用して、ユニットSMのデータブロックB
1に含まれる語を処理する。これらの機構についてはこ
こでは説明しない。
【0019】ただ、図示はしなかったが、キャッシュメ
モリは、基本的に高速アクセスメモリと対応テーブルと
を備えることだけは留意されたい。直接マッピングの場
合、ある語の論理アドレス内で上位ビットから下位ビッ
ト側に向かって、基本的に三つのフィールドがある。す
なわち、ラベルと呼ばれる第一フィールドA1と、イン
デックスと呼ばれる第二フィールドA2と、この語を含
むデータブロック内の語のアドレスと呼ばれる第三フィ
ールドA3である。通常、第一および第二フィールドは
ブロックB1の論理アドレスを構成する。インデックス
A2は、本来これら二つの値を含む対応テーブルのある
一行を指す。第一の値は、このインデックスにより物理
イメージが高速アクセスメモリ内に直接アドレスされる
ブロックB2のラベルA1’である。第二の値は、ブロ
ックB2がプロセッサに占有されているか、別のプロセ
ッサにより共有されているか、また後者の場合、その内
容は有効であるかまたは該他のプロセッサにより変更さ
れたかどうかを示すステータスコードである。
モリは、基本的に高速アクセスメモリと対応テーブルと
を備えることだけは留意されたい。直接マッピングの場
合、ある語の論理アドレス内で上位ビットから下位ビッ
ト側に向かって、基本的に三つのフィールドがある。す
なわち、ラベルと呼ばれる第一フィールドA1と、イン
デックスと呼ばれる第二フィールドA2と、この語を含
むデータブロック内の語のアドレスと呼ばれる第三フィ
ールドA3である。通常、第一および第二フィールドは
ブロックB1の論理アドレスを構成する。インデックス
A2は、本来これら二つの値を含む対応テーブルのある
一行を指す。第一の値は、このインデックスにより物理
イメージが高速アクセスメモリ内に直接アドレスされる
ブロックB2のラベルA1’である。第二の値は、ブロ
ックB2がプロセッサに占有されているか、別のプロセ
ッサにより共有されているか、また後者の場合、その内
容は有効であるかまたは該他のプロセッサにより変更さ
れたかどうかを示すステータスコードである。
【0020】ブロックB1のラベルA1がブロックB2
のラベルA1’と等しく、かつステータスコードが占有
または有効な内容を示している場合には、ブロックB2
は、高速アクセスメモリ内に物理的に含まれたブロック
B1でしかなく、プロセッサは、論理アドレスの第二お
よび第三フィールドを使用して高速アクセスメモリ内に
語を物理的にアドレスすることにより、このブロック内
に含まれている語を直接処理することができる。ステー
タスコードが共有を示している場合には、キャッシュメ
モリ機構は、ブロックB1のアドレスに変更を示すため
に信号S1をバス7に送信し、その結果、このブロック
を共有するキャッシュメモリ内でこのブロックのステー
タスコードが変更される。
のラベルA1’と等しく、かつステータスコードが占有
または有効な内容を示している場合には、ブロックB2
は、高速アクセスメモリ内に物理的に含まれたブロック
B1でしかなく、プロセッサは、論理アドレスの第二お
よび第三フィールドを使用して高速アクセスメモリ内に
語を物理的にアドレスすることにより、このブロック内
に含まれている語を直接処理することができる。ステー
タスコードが共有を示している場合には、キャッシュメ
モリ機構は、ブロックB1のアドレスに変更を示すため
に信号S1をバス7に送信し、その結果、このブロック
を共有するキャッシュメモリ内でこのブロックのステー
タスコードが変更される。
【0021】ブロックB1のラベルA1がブロックB2
のラベルA1’とは異なる場合、あるいはステータスコ
ードが共有及び変更された内容を示している場合には、
プロセッサは、論理アドレスの第二および第三フィール
ドを使用して高速アクセスメモリ内に語を物理的にアド
レスしてこのブロック内に含まれている語を直接処理す
ることはできない。ステータスコードが占有を示してい
る場合には、キャッシュメモリ機構は、キャッシュメモ
リ内の、インデックスA2により指示された物理アドレ
スに場所を開放するように、共有メモリへのブロックB
2の書き込み要求Q2を送信し、次に、キャッシュメモ
リ内の、インデックスA2により指示された物理アドレ
スにブロックB1をロードするように、共有メモリから
のブロックB1の読み出し要求Q1を送信する。そうで
なければ、キャッシュメモリ機構は、インデックスA2
により指示された物理アドレスのキャッシュメモリにブ
ロックB1をロードするように、共有メモリからのブロ
ックB1の読み出し要求Q1を送信する。
のラベルA1’とは異なる場合、あるいはステータスコ
ードが共有及び変更された内容を示している場合には、
プロセッサは、論理アドレスの第二および第三フィール
ドを使用して高速アクセスメモリ内に語を物理的にアド
レスしてこのブロック内に含まれている語を直接処理す
ることはできない。ステータスコードが占有を示してい
る場合には、キャッシュメモリ機構は、キャッシュメモ
リ内の、インデックスA2により指示された物理アドレ
スに場所を開放するように、共有メモリへのブロックB
2の書き込み要求Q2を送信し、次に、キャッシュメモ
リ内の、インデックスA2により指示された物理アドレ
スにブロックB1をロードするように、共有メモリから
のブロックB1の読み出し要求Q1を送信する。そうで
なければ、キャッシュメモリ機構は、インデックスA2
により指示された物理アドレスのキャッシュメモリにブ
ロックB1をロードするように、共有メモリからのブロ
ックB1の読み出し要求Q1を送信する。
【0022】図2は、装置6の第一レベルの詳細、なら
びにフィールドA1およびA2で構成されるブロックの
アドレスが信号S1、要求Q1またはQ2に結合され
て、バス7上を移動する時に使われるハードウェアおよ
び論理要素を示す図である。RCCと呼ばれる装置6
は、LMDと呼ばれるテーブル8と、RCTと呼ばれる
テーブル9と、レジスタ18と、レジスタ19とを備え
る。ブロックのアドレスも三つのフィールドA4〜A
6、または二つのフィールドA7およびA8に分割され
る。フィールドA4はフィールドA5よりも上位のビッ
トで構成され、フィールドA6はフィールドA5よりも
下位のビットで構成される。フィールドA8は下位のビ
ットで構成され、フィールドA7は、フィールドA4を
包含するように、フィールドA4のビット数よりも多い
数の上位ビットで構成される。フィールドA4〜A8の
有用性は以下の記述において明らかになろう。フィール
ドA4〜A8の値に応じたレジスタ18および19への
書き込みロジックは、中に論理関数が示されているセル
により表わされる。同一項を含み、一方には頭に=記号
が付き、他方には頭に≠が付いた各対のセルは比較器を
表わし、その結果により下流側の論理レベルを起動す
る。各レジスタ18および19には、一対のセルで象徴
的に示す信号の二つの可能な状態のうちのいずれかが書
き込まれる。記述したロジックは、装置6専用のマイク
ロプロセッサを使用することにより実施することができ
る。ハードウェア回路でこのロジックを実現することに
より、実行速度は向上する。モジュール10に対しロー
カルとみなされ、モジュール20、40、60に対しリ
モートとみなされる装置6について図2を参照して行う
説明は、円順列により符号を置き換えることにより、と
くに、当該モジュールに応じて、循環置換により8を2
8、48または68に、9を29、49または69に置
き換えることにより、装置26、46、66についても
依然として有効である。
びにフィールドA1およびA2で構成されるブロックの
アドレスが信号S1、要求Q1またはQ2に結合され
て、バス7上を移動する時に使われるハードウェアおよ
び論理要素を示す図である。RCCと呼ばれる装置6
は、LMDと呼ばれるテーブル8と、RCTと呼ばれる
テーブル9と、レジスタ18と、レジスタ19とを備え
る。ブロックのアドレスも三つのフィールドA4〜A
6、または二つのフィールドA7およびA8に分割され
る。フィールドA4はフィールドA5よりも上位のビッ
トで構成され、フィールドA6はフィールドA5よりも
下位のビットで構成される。フィールドA8は下位のビ
ットで構成され、フィールドA7は、フィールドA4を
包含するように、フィールドA4のビット数よりも多い
数の上位ビットで構成される。フィールドA4〜A8の
有用性は以下の記述において明らかになろう。フィール
ドA4〜A8の値に応じたレジスタ18および19への
書き込みロジックは、中に論理関数が示されているセル
により表わされる。同一項を含み、一方には頭に=記号
が付き、他方には頭に≠が付いた各対のセルは比較器を
表わし、その結果により下流側の論理レベルを起動す
る。各レジスタ18および19には、一対のセルで象徴
的に示す信号の二つの可能な状態のうちのいずれかが書
き込まれる。記述したロジックは、装置6専用のマイク
ロプロセッサを使用することにより実施することができ
る。ハードウェア回路でこのロジックを実現することに
より、実行速度は向上する。モジュール10に対しロー
カルとみなされ、モジュール20、40、60に対しリ
モートとみなされる装置6について図2を参照して行う
説明は、円順列により符号を置き換えることにより、と
くに、当該モジュールに応じて、循環置換により8を2
8、48または68に、9を29、49または69に置
き換えることにより、装置26、46、66についても
依然として有効である。
【0023】バス7上を信号S1、要求Q1または要求
Q2が通過するのを装置6が知った場合、論理アドレス
のフィールドA4内に含まれる上位ビットが、モジュー
ル10に対しローカルなメモリ5’内に当該ブロックが
物理的に常駐していることを示している場合には、装置
はそのテーブル8を使用してキャッシュメモリ機構によ
り当該ブロックを処理し、ラベルの上位ビットが、リモ
ートモジュール20、40または60のうちのいずれか
に当該ブロックが物理的に常駐していることを示してい
る場合には、そのテーブル9を使用してキャッシュメモ
リ機構により当該ブロックを処理する。
Q2が通過するのを装置6が知った場合、論理アドレス
のフィールドA4内に含まれる上位ビットが、モジュー
ル10に対しローカルなメモリ5’内に当該ブロックが
物理的に常駐していることを示している場合には、装置
はそのテーブル8を使用してキャッシュメモリ機構によ
り当該ブロックを処理し、ラベルの上位ビットが、リモ
ートモジュール20、40または60のうちのいずれか
に当該ブロックが物理的に常駐していることを示してい
る場合には、そのテーブル9を使用してキャッシュメモ
リ機構により当該ブロックを処理する。
【0024】テーブル8は、ラベルの上位ビットに続く
論理アドレスのフィールドA5を構成するm個のビット
によりインデックスされる。数mの値によりテーブル8
のサイズが直接決まる。テーブルの行数は2mに等し
い。テーブル8の各行は、単数または複数のリモートモ
ジュールとの間で共有されるブロックの論理アドレスの
フィールドA6およびステータスコードS2を構成する
下位ビットを含む。ステータスコードS2はたとえば、
存在ビットおよび状態ビットから成るバイトである。フ
ィールドA5およびA6により参照されるブロックが常
駐するモジュール10に対しリモートな各モジュール2
0、40、60には、このブロックの前記リモートモジ
ュール20、40、60との共有の有無を示す存在ビッ
トが付与される。単数または複数の状態ビットは、ブロ
ックがリモートモジュールにより変更されたかどうかを
示す。ある所与の時点において、一つのモジュールのみ
が、ブロックの最新版となる変更コピーを有する場合、
すなわち、ステータスコードS2が変更を示している場
合、このブロックのリモートモジュールとの共有を示す
存在ビットは一つしかなく、それは、最新版を含むモジ
ュールに付与されたビットである。モジュール10内の
ブロックのコピーはすでに更新されなくなり、他のモジ
ュール内のブロックのコピーは無効化される。ステータ
スコードS2が変更を示していない場合、モジュール1
0がブロックの最新コピーを有し、存在ビットが立って
いるモジュールは全て、モジュール10と共有されるブ
ロックの最新コピーを有することを意味する。リモート
モジュールとの共有が存在することを示す存在ビットが
ない場合、ブロックの最新コピーはモジュール10内に
ある。実際、必要であれば、別のブロックを参照するた
めに、テーブル8の対応する行を利用することができ
る。ここでは、ブロックの論理アドレスの下位ビット
は、前記に記載のm個のビットに続くビットであり、そ
の結果、フィールドA4、A5、A6の連結はフィール
ドA1およびA2と重なる。フィールドA5およびA6
により、メモリ5’で構成されるローカルメモリ内にブ
ロックを物理的にアドレスすることができる。
論理アドレスのフィールドA5を構成するm個のビット
によりインデックスされる。数mの値によりテーブル8
のサイズが直接決まる。テーブルの行数は2mに等し
い。テーブル8の各行は、単数または複数のリモートモ
ジュールとの間で共有されるブロックの論理アドレスの
フィールドA6およびステータスコードS2を構成する
下位ビットを含む。ステータスコードS2はたとえば、
存在ビットおよび状態ビットから成るバイトである。フ
ィールドA5およびA6により参照されるブロックが常
駐するモジュール10に対しリモートな各モジュール2
0、40、60には、このブロックの前記リモートモジ
ュール20、40、60との共有の有無を示す存在ビッ
トが付与される。単数または複数の状態ビットは、ブロ
ックがリモートモジュールにより変更されたかどうかを
示す。ある所与の時点において、一つのモジュールのみ
が、ブロックの最新版となる変更コピーを有する場合、
すなわち、ステータスコードS2が変更を示している場
合、このブロックのリモートモジュールとの共有を示す
存在ビットは一つしかなく、それは、最新版を含むモジ
ュールに付与されたビットである。モジュール10内の
ブロックのコピーはすでに更新されなくなり、他のモジ
ュール内のブロックのコピーは無効化される。ステータ
スコードS2が変更を示していない場合、モジュール1
0がブロックの最新コピーを有し、存在ビットが立って
いるモジュールは全て、モジュール10と共有されるブ
ロックの最新コピーを有することを意味する。リモート
モジュールとの共有が存在することを示す存在ビットが
ない場合、ブロックの最新コピーはモジュール10内に
ある。実際、必要であれば、別のブロックを参照するた
めに、テーブル8の対応する行を利用することができ
る。ここでは、ブロックの論理アドレスの下位ビット
は、前記に記載のm個のビットに続くビットであり、そ
の結果、フィールドA4、A5、A6の連結はフィール
ドA1およびA2と重なる。フィールドA5およびA6
により、メモリ5’で構成されるローカルメモリ内にブ
ロックを物理的にアドレスすることができる。
【0025】フィールドA5のm個のビットによりイン
デックスされる行が、処理されたブロックの行とは異な
るアドレス値を含む場合には、モジュール10以外のモ
ジュールはそこにアクセスしないことを意味する。その
場合、ブロックの処理はモジュール10に対し依然ロー
カルであり、メモリ5’、および場合によっては専用キ
ャッシュメモリ11〜14内での更新で十分であるた
め、テーブル8内のテーブルを作成する必要はない。装
置6は、リモートモジュールとの間でトランザクション
を行うことなくローカルヒットを示すために、ローカル
ヒット信号LHを発生する。信号LHはレジスタ18に
書き込まれる。ステータスコードS2のいずれのビット
も、リモートモジュールとの間の共有を示さない場合も
同様である。
デックスされる行が、処理されたブロックの行とは異な
るアドレス値を含む場合には、モジュール10以外のモ
ジュールはそこにアクセスしないことを意味する。その
場合、ブロックの処理はモジュール10に対し依然ロー
カルであり、メモリ5’、および場合によっては専用キ
ャッシュメモリ11〜14内での更新で十分であるた
め、テーブル8内のテーブルを作成する必要はない。装
置6は、リモートモジュールとの間でトランザクション
を行うことなくローカルヒットを示すために、ローカル
ヒット信号LHを発生する。信号LHはレジスタ18に
書き込まれる。ステータスコードS2のいずれのビット
も、リモートモジュールとの間の共有を示さない場合も
同様である。
【0026】フィールドA5のm個のビットによりイン
デックスされるテーブル8の行が、処理されたブロック
のアドレスの値に等しいアドレスの値A6を含み、少な
くとも一つのステータスコードのビットが共有を示す場
合、モジュール10以外のモジュール、たとえばモジュ
ール20が以前そこにアクセスしたことを意味する。従
ってブロックの処理は、リモートモジュール20による
前のアクセスとこのブロックに関する処理とによって異
なる。ステータスコードS2が、ブロックは現在、共有
使用状態であるとした場合には、装置6は、リモートモ
ジュール20との間でトランザクションを行う必要があ
るかどうかを判定する。
デックスされるテーブル8の行が、処理されたブロック
のアドレスの値に等しいアドレスの値A6を含み、少な
くとも一つのステータスコードのビットが共有を示す場
合、モジュール10以外のモジュール、たとえばモジュ
ール20が以前そこにアクセスしたことを意味する。従
ってブロックの処理は、リモートモジュール20による
前のアクセスとこのブロックに関する処理とによって異
なる。ステータスコードS2が、ブロックは現在、共有
使用状態であるとした場合には、装置6は、リモートモ
ジュール20との間でトランザクションを行う必要があ
るかどうかを判定する。
【0027】ステータスコードS2が、ブロックがリモ
ートモジュールにより変更されたことを示している場
合、ブロックの有効コピーをモジュール10内の常駐物
理メモリ内に戻すために、読み出し要求Q1は、この有
効コピーを有するリモートモジュールとのトランザクシ
ョンを必要とし、従って装置6は、ローカルミスを知ら
せるためにローカルミス信号LMを発生する。これには
リモートモジュールとの少なくとも一回のトランザクシ
ョンが伴う。信号LMはレジスタ18に書き込まれ、次
に装置6は、トランザクションの最後で、コードS2を
非変更状態に更新する。
ートモジュールにより変更されたことを示している場
合、ブロックの有効コピーをモジュール10内の常駐物
理メモリ内に戻すために、読み出し要求Q1は、この有
効コピーを有するリモートモジュールとのトランザクシ
ョンを必要とし、従って装置6は、ローカルミスを知ら
せるためにローカルミス信号LMを発生する。これには
リモートモジュールとの少なくとも一回のトランザクシ
ョンが伴う。信号LMはレジスタ18に書き込まれ、次
に装置6は、トランザクションの最後で、コードS2を
非変更状態に更新する。
【0028】ステータスコードS2が、ブロックがリモ
ートモジュールにより変更されたことを示していない場
合、モジュール10はブロックの有効コピーを有するの
で、読み出し要求Q1は、リモートモジュールとのトラ
ンザクションを必要とせず、従って装置6は、ローカル
ヒット信号LHを発生する。一方、ブロックの変更信号
S1または書き込み要求Q2は、コードS2のビットが
存在を示す各リモートモジュールとのトランザクション
を必要とし、各リモートモジュールが有するブロックの
コピーが有効でないことをリモートモジュールに知らせ
る。従って装置6は、ローカルミス信号LMを発生す
る。
ートモジュールにより変更されたことを示していない場
合、モジュール10はブロックの有効コピーを有するの
で、読み出し要求Q1は、リモートモジュールとのトラ
ンザクションを必要とせず、従って装置6は、ローカル
ヒット信号LHを発生する。一方、ブロックの変更信号
S1または書き込み要求Q2は、コードS2のビットが
存在を示す各リモートモジュールとのトランザクション
を必要とし、各リモートモジュールが有するブロックの
コピーが有効でないことをリモートモジュールに知らせ
る。従って装置6は、ローカルミス信号LMを発生す
る。
【0029】ここでは、再書き込み(ライトバック;wr
ite-back)キャッシュメモリ機構を使用しての信号LH
およびLMの発生について説明した。同時書き込み(ラ
イトスルー;write-through)キャッシュメモリ機構を
使用する場合、モジュール10がブロックの最新コピー
を有し、従って装置6は信号LHを発生するので、要求
Q1はトランザクションを必要としないが、要求Q2ま
たは信号S1は、リモートモジュール20内でブロック
のコピーを更新するために、少なくとも一つのこのよう
なモジュールとのトランザクションを必要とし、その時
装置6はLM信号を発生することを理解されたい。
ite-back)キャッシュメモリ機構を使用しての信号LH
およびLMの発生について説明した。同時書き込み(ラ
イトスルー;write-through)キャッシュメモリ機構を
使用する場合、モジュール10がブロックの最新コピー
を有し、従って装置6は信号LHを発生するので、要求
Q1はトランザクションを必要としないが、要求Q2ま
たは信号S1は、リモートモジュール20内でブロック
のコピーを更新するために、少なくとも一つのこのよう
なモジュールとのトランザクションを必要とし、その時
装置6はLM信号を発生することを理解されたい。
【0030】テーブル9は、フィールドA8を構成する
論理アドレスのn個の下位ビットによりインデックスさ
れる。数nの値によりテーブル9のサイズが直接決ま
る。テーブルの行数は2nに等しい。テーブル9の各行
はステータスコードS3と、フィールドA8によりキャ
ッシュメモリ15内で直接インデックスされるブロック
のコピーを参照する論理アドレスのフィールドA7とを
含む。従って、キャッシュメモリ15のサイズは2nブ
ロックである。ステータスコードS3はたとえば、フィ
ールドA8によりテーブル9内で参照されるブロックの
状態を示す三つの状態Inv、Sha、Modをコード
化するための二つのビットで構成される。状態Inv
は、参照されたブロックが無効であること、すなわち参
照されたブロックが、リモートモジュール20、40ま
たは60により変更されたことを示す。状態Shaは、
参照されたブロックが少なくとも一つのリモートモジュ
ール20、40、60により共有されていることを示
す。状態Modは、参照されたブロックがローカルモジ
ュール10により変更され、キャッシュメモリ15内の
そのコピーが最新であることを示す。
論理アドレスのn個の下位ビットによりインデックスさ
れる。数nの値によりテーブル9のサイズが直接決ま
る。テーブルの行数は2nに等しい。テーブル9の各行
はステータスコードS3と、フィールドA8によりキャ
ッシュメモリ15内で直接インデックスされるブロック
のコピーを参照する論理アドレスのフィールドA7とを
含む。従って、キャッシュメモリ15のサイズは2nブ
ロックである。ステータスコードS3はたとえば、フィ
ールドA8によりテーブル9内で参照されるブロックの
状態を示す三つの状態Inv、Sha、Modをコード
化するための二つのビットで構成される。状態Inv
は、参照されたブロックが無効であること、すなわち参
照されたブロックが、リモートモジュール20、40ま
たは60により変更されたことを示す。状態Shaは、
参照されたブロックが少なくとも一つのリモートモジュ
ール20、40、60により共有されていることを示
す。状態Modは、参照されたブロックがローカルモジ
ュール10により変更され、キャッシュメモリ15内の
そのコピーが最新であることを示す。
【0031】フィールドA8のn個のビットによりイン
デックスされるテーブル9の行が、処理されたブロック
のフィールド値に等しいフィールド値A’7を含む場
合、モジュール10以外のモジュール、たとえばモジュ
ール20内に常駐するブロックが、プロセッサ1〜4に
共通なキャッシュメモリ15内にコピーされたことを意
味する。キャッシュメモリのサイズは、テーブル9内で
参照された2n個のブロックを格納するように設計され
る。テーブル9のサイズはnの値を選択することにより
パラメータ化することが可能であることから、キャッシ
ュメモリ15のサイズも同様のことが言える。このパラ
メータ化を可能にする有利な手段は、メモリ5から専用
アドレス格納領域を取り出し、それをキャッシュメモリ
15に割り当てることである。従って、メモリ25、4
5、65内の専用アドレス格納領域をキャッシュメモリ
35、55、75に割り当てるために、この方法が各リ
モートモジュール20、40、60に繰り返される。メ
モリ5、25、45、65と比べてキャッシュメモリ1
5、35、55、75のサイズは小さいため、この方法
では、全モジュールに共通なメモリのサイズはあまり小
さくならない。
デックスされるテーブル9の行が、処理されたブロック
のフィールド値に等しいフィールド値A’7を含む場
合、モジュール10以外のモジュール、たとえばモジュ
ール20内に常駐するブロックが、プロセッサ1〜4に
共通なキャッシュメモリ15内にコピーされたことを意
味する。キャッシュメモリのサイズは、テーブル9内で
参照された2n個のブロックを格納するように設計され
る。テーブル9のサイズはnの値を選択することにより
パラメータ化することが可能であることから、キャッシ
ュメモリ15のサイズも同様のことが言える。このパラ
メータ化を可能にする有利な手段は、メモリ5から専用
アドレス格納領域を取り出し、それをキャッシュメモリ
15に割り当てることである。従って、メモリ25、4
5、65内の専用アドレス格納領域をキャッシュメモリ
35、55、75に割り当てるために、この方法が各リ
モートモジュール20、40、60に繰り返される。メ
モリ5、25、45、65と比べてキャッシュメモリ1
5、35、55、75のサイズは小さいため、この方法
では、全モジュールに共通なメモリのサイズはあまり小
さくならない。
【0032】すると装置6は、テーブル9内で参照され
たブロック、すなわち信号S1または要求Q1またはQ
2により処理されたブロックのステータスコードS3を
みる。ステータスコードS3が、ブロックは無効である
ことを示している場合には、装置6は、後記する記述の
中で説明するように、フィールドA8のn個のビットに
よりインデックスされる行が、処理されたブロックのフ
ィールド値と異なるフィールド値A7’を含む場合と同
じトランザクションおよび同じ信号を発生する。
たブロック、すなわち信号S1または要求Q1またはQ
2により処理されたブロックのステータスコードS3を
みる。ステータスコードS3が、ブロックは無効である
ことを示している場合には、装置6は、後記する記述の
中で説明するように、フィールドA8のn個のビットに
よりインデックスされる行が、処理されたブロックのフ
ィールド値と異なるフィールド値A7’を含む場合と同
じトランザクションおよび同じ信号を発生する。
【0033】ステータスコードS3が、ブロックが別の
モジュールに共有されていないことを示している場合に
は、リモートモジュールとのトランザクションは一切必
要なく、装置6は、リモートモジュールとのトランザク
ションなしのリモートヒットを知らせるために、リモー
トヒット信号RHを発生する。
モジュールに共有されていないことを示している場合に
は、リモートモジュールとのトランザクションは一切必
要なく、装置6は、リモートモジュールとのトランザク
ションなしのリモートヒットを知らせるために、リモー
トヒット信号RHを発生する。
【0034】テーブル9内のステータスコードが、ブロ
ックは現在、共有使用状態であることを示す場合には、
装置6は、リモートモジュール20との間でトランザク
ションを行う必要があるかどうかを判定する。信号S1
に関しては、ブロックが常駐しているモジュール20の
ステータスコードS2に、ブロックが変更されることを
書き込み、キャッシュメモリ55、75内にブロックの
コピーを有するモジュール40または60のステータス
コードS3に、ブロックが無効であることを書き込むた
めにトランザクションが必要であり、従って装置6は、
リモートモジュールとの間で少なくとも一つのトランザ
クションにおけるリモートミスを知らせるために、リモ
ートミス信号RMを発生する。装置6は、ブロックが変
更されたことを、そのステータスコードS3内で宣言す
る。モジュール10に対しリモートなメモリへの書き込
み要求Q2に関しては、トランザクションは一切必要で
なく、装置6はリモートヒット信号RHを発生する。読
み出し要求Q1に関しては、テーブル9内のステータス
コードS3が、モジュール10内のブロックの内容が有
効であることを示している場合には、トランザクション
は一切必要でなく、従って装置6はリモートヒット信号
RHを発生する。すなわち、テーブル9内のステータス
コードS3が、モジュール10内のブロックの内容が無
効であることを示している場合には、モジュール10内
のブロックの内容を更新するためにトランザクションが
必要であり、従って装置6はリモートミス信号RMを発
生し、トランザクションの終了時に、そのステータスコ
ードS3でブロックは有効であると宣言する。ここで
は、再書き込み(ライトバック)キャッシュメモリ機構
を使用して信号RHおよびRMの発生について説明し
た。同時書き込み(ライトスルー)のキャッシュメモリ
機構を使用する場合は、前記ロジックを修正するだけで
よく、その結果、信号S1および要求Q2が、リモート
モジュールとのトランザクションを必要とするようにな
り、モジュール20、40、60内でブロックが各々更
新され、装置6は信号RMを発生するようになり、ま
た、その結果、ブロックの内容は系統的に更新されるの
で、要求Q1はトランザクションを必要としない。
ックは現在、共有使用状態であることを示す場合には、
装置6は、リモートモジュール20との間でトランザク
ションを行う必要があるかどうかを判定する。信号S1
に関しては、ブロックが常駐しているモジュール20の
ステータスコードS2に、ブロックが変更されることを
書き込み、キャッシュメモリ55、75内にブロックの
コピーを有するモジュール40または60のステータス
コードS3に、ブロックが無効であることを書き込むた
めにトランザクションが必要であり、従って装置6は、
リモートモジュールとの間で少なくとも一つのトランザ
クションにおけるリモートミスを知らせるために、リモ
ートミス信号RMを発生する。装置6は、ブロックが変
更されたことを、そのステータスコードS3内で宣言す
る。モジュール10に対しリモートなメモリへの書き込
み要求Q2に関しては、トランザクションは一切必要で
なく、装置6はリモートヒット信号RHを発生する。読
み出し要求Q1に関しては、テーブル9内のステータス
コードS3が、モジュール10内のブロックの内容が有
効であることを示している場合には、トランザクション
は一切必要でなく、従って装置6はリモートヒット信号
RHを発生する。すなわち、テーブル9内のステータス
コードS3が、モジュール10内のブロックの内容が無
効であることを示している場合には、モジュール10内
のブロックの内容を更新するためにトランザクションが
必要であり、従って装置6はリモートミス信号RMを発
生し、トランザクションの終了時に、そのステータスコ
ードS3でブロックは有効であると宣言する。ここで
は、再書き込み(ライトバック)キャッシュメモリ機構
を使用して信号RHおよびRMの発生について説明し
た。同時書き込み(ライトスルー)のキャッシュメモリ
機構を使用する場合は、前記ロジックを修正するだけで
よく、その結果、信号S1および要求Q2が、リモート
モジュールとのトランザクションを必要とするようにな
り、モジュール20、40、60内でブロックが各々更
新され、装置6は信号RMを発生するようになり、ま
た、その結果、ブロックの内容は系統的に更新されるの
で、要求Q1はトランザクションを必要としない。
【0035】n個のビットによりインデックスされる行
が、処理されたブロックの行とは異なるアドレスの値を
含む場合には、テーブル9をインデックスすることによ
りキャッシュメモリ15内に論理的にアドレスされたブ
ロックは処理されたブロックとは異なることを意味す
る。その場合、テーブル9内で参照されたブロックを、
処理されたブロックに置き換える必要がある。従って装
置6は信号RMを発生する。この場合、装置6は、キャ
ッシュメモリ15内で、インデックスされたブロックが
処理されたブロックに置き換えられたことを示す信号S
4も発生する。テーブル9はもはやそのコヒーレンシー
を確保することができないので、キャッシュメモリ15
内でインデックスされるブロックを専用キャッシュメモ
リ11〜14内で無効化するために、信号S4がバス7
に送信される。装置6はまた、常駐モジュールの装置2
6、46または66に、装置がブロックを参照すること
を止める旨知らせる。その結果、装置26、46または
66は、ブロックが参照されていたテーブル28、48
または68の行内のモジュール10に相当する存在ビッ
トを下げる。次に装置6は、リモートモジュール20、
40または60とのトランザクションにより、テーブル
9の更新を行い、処理されたブロックを、テーブル9を
インデックスすることによりキャッシュメモリ15内に
論理的にアドレスされる物理的ロケーションに戻す。ト
ランザクションは主に、ブロックの常駐リモートモジュ
ール20、40または60に読み出し要求を送信するこ
とから成る。説明を簡単にするために、たとえばブロッ
クの常駐モジュールがモジュール20であるとみなすこ
とにする。
が、処理されたブロックの行とは異なるアドレスの値を
含む場合には、テーブル9をインデックスすることによ
りキャッシュメモリ15内に論理的にアドレスされたブ
ロックは処理されたブロックとは異なることを意味す
る。その場合、テーブル9内で参照されたブロックを、
処理されたブロックに置き換える必要がある。従って装
置6は信号RMを発生する。この場合、装置6は、キャ
ッシュメモリ15内で、インデックスされたブロックが
処理されたブロックに置き換えられたことを示す信号S
4も発生する。テーブル9はもはやそのコヒーレンシー
を確保することができないので、キャッシュメモリ15
内でインデックスされるブロックを専用キャッシュメモ
リ11〜14内で無効化するために、信号S4がバス7
に送信される。装置6はまた、常駐モジュールの装置2
6、46または66に、装置がブロックを参照すること
を止める旨知らせる。その結果、装置26、46または
66は、ブロックが参照されていたテーブル28、48
または68の行内のモジュール10に相当する存在ビッ
トを下げる。次に装置6は、リモートモジュール20、
40または60とのトランザクションにより、テーブル
9の更新を行い、処理されたブロックを、テーブル9を
インデックスすることによりキャッシュメモリ15内に
論理的にアドレスされる物理的ロケーションに戻す。ト
ランザクションは主に、ブロックの常駐リモートモジュ
ール20、40または60に読み出し要求を送信するこ
とから成る。説明を簡単にするために、たとえばブロッ
クの常駐モジュールがモジュール20であるとみなすこ
とにする。
【0036】図3は、装置6、26、46、66の第二
レベルの詳細、ならびにフィールドA1およびA2で構
成されるブロックのアドレスが、他のモジュールからリ
ンク17、37、57、77を介して、このブロックの
常駐モジュールに到達する時に使われるハードウェアお
よび論理要素を示す図である。図2の前文のところで示
した注釈は図3についても有効である。とくに、図3に
示した符号は、以下の記述をわかりやすくするための装
置26の符号となっている。
レベルの詳細、ならびにフィールドA1およびA2で構
成されるブロックのアドレスが、他のモジュールからリ
ンク17、37、57、77を介して、このブロックの
常駐モジュールに到達する時に使われるハードウェアお
よび論理要素を示す図である。図2の前文のところで示
した注釈は図3についても有効である。とくに、図3に
示した符号は、以下の記述をわかりやすくするための装
置26の符号となっている。
【0037】処理されたブロックがテーブル28内でイ
ンデックスされる場合、ブロックがモジュール10によ
り共有されることを示すために、そのステータスコード
S2が更新される。処理されたブロックをインデックス
するテーブル28の行において、ステータスコードS2
が、別のモジュール40、60によってはブロックが変
更されないことを示している場合には、装置26はブロ
ックのコピーを装置6に送信する。このコピーは、メモ
リ25の中、またはキャッシュメモリ31〜34のうち
の一つの中を読むことにより得られる。ステータスコー
ドが、ブロックが変更されていることを示している場
合、装置26は、ブロックの最新版を有するモジュール
40、60の装置に読み出し要求を送信する。最新のコ
ピーを有する装置46、66は、ブロックのコピーをモ
ジュール10の装置6およびモジュール20の装置26
に送信する。装置26は、そのローカルメモリ25’お
よび共有状態のコードS2を再更新する。装置6は、共
有され変更されていないステータスコードで、テーブル
9内のブロックのインデックスを作成し、ブロックをキ
ャッシュメモリ15内に書き込む。次に装置6は、肯定
応答を装置26に送信する。装置は、そのステータスコ
ードS2に、モジュール10との共有を付加する。
ンデックスされる場合、ブロックがモジュール10によ
り共有されることを示すために、そのステータスコード
S2が更新される。処理されたブロックをインデックス
するテーブル28の行において、ステータスコードS2
が、別のモジュール40、60によってはブロックが変
更されないことを示している場合には、装置26はブロ
ックのコピーを装置6に送信する。このコピーは、メモ
リ25の中、またはキャッシュメモリ31〜34のうち
の一つの中を読むことにより得られる。ステータスコー
ドが、ブロックが変更されていることを示している場
合、装置26は、ブロックの最新版を有するモジュール
40、60の装置に読み出し要求を送信する。最新のコ
ピーを有する装置46、66は、ブロックのコピーをモ
ジュール10の装置6およびモジュール20の装置26
に送信する。装置26は、そのローカルメモリ25’お
よび共有状態のコードS2を再更新する。装置6は、共
有され変更されていないステータスコードで、テーブル
9内のブロックのインデックスを作成し、ブロックをキ
ャッシュメモリ15内に書き込む。次に装置6は、肯定
応答を装置26に送信する。装置は、そのステータスコ
ードS2に、モジュール10との共有を付加する。
【0038】処理されたブロックがテーブル28内でイ
ンデックスされない場合、装置26は、インデックスさ
れたブロックが、処理されたブロックに置き換えられる
ことを示すために、信号S5を発生する。インデックス
されたブロックのステータスコードS2が、モジュール
10、40、又は60によりブロックが変更されたこと
を示している場合、装置26は、ブロックの最新版を有
するモジュール10、40、又は60の装置に読み出し
要求を送信する。ブロックのコピーが変更されているこ
とをインデックスされたブロックのコードS3が示す装
置6、46、66は、モジュール20の装置26にブロ
ックのコピーを送信し、そのローカルメモリ25’を更
新する。テーブル9、49、69の行でブロックを参照
する単数または複数の装置6、46、又は66に、信号
S5が送信され、その結果、各々が、無効状態にコード
S3を更新する。次に装置26は、ブロックが、変更さ
れていないモジュール10との間で共有されることを示
すステータスコードS2で、テーブル28内で処理ブロ
ックをインデックスする。最後に装置26は、処理され
たブロックの内容を装置6に送信し、装置は、無効化さ
れてなく共有されており変更されていないステータスコ
ードで、テーブル9内のブロックをインデックスし、ブ
ロックをキャッシュメモリ15に書き込む。テーブル2
8内でインデックスされたブロックのステータスコード
S2が、ブロックが変更されたことを示していない場
合、信号S5が単数または複数の装置6、46、66に
送信され、装置はそのテーブル9、49、69の行でブ
ロックを参照し、その結果、各々が、無効状態にコード
S3を更新する。次に装置26は、ブロックが、変更さ
れていないモジュール10との間で共有されることを示
すステータスコードS2で、テーブル28内で処理ブロ
ックをインデックスする。最後に装置26は、処理され
たブロックの内容を装置6に送信し、装置は、無効化さ
れておらず共有されており変更されていないステータス
コードで、テーブル9内のブロックをインデックスし、
ブロックをキャッシュメモリ15に書き込む。
ンデックスされない場合、装置26は、インデックスさ
れたブロックが、処理されたブロックに置き換えられる
ことを示すために、信号S5を発生する。インデックス
されたブロックのステータスコードS2が、モジュール
10、40、又は60によりブロックが変更されたこと
を示している場合、装置26は、ブロックの最新版を有
するモジュール10、40、又は60の装置に読み出し
要求を送信する。ブロックのコピーが変更されているこ
とをインデックスされたブロックのコードS3が示す装
置6、46、66は、モジュール20の装置26にブロ
ックのコピーを送信し、そのローカルメモリ25’を更
新する。テーブル9、49、69の行でブロックを参照
する単数または複数の装置6、46、又は66に、信号
S5が送信され、その結果、各々が、無効状態にコード
S3を更新する。次に装置26は、ブロックが、変更さ
れていないモジュール10との間で共有されることを示
すステータスコードS2で、テーブル28内で処理ブロ
ックをインデックスする。最後に装置26は、処理され
たブロックの内容を装置6に送信し、装置は、無効化さ
れてなく共有されており変更されていないステータスコ
ードで、テーブル9内のブロックをインデックスし、ブ
ロックをキャッシュメモリ15に書き込む。テーブル2
8内でインデックスされたブロックのステータスコード
S2が、ブロックが変更されたことを示していない場
合、信号S5が単数または複数の装置6、46、66に
送信され、装置はそのテーブル9、49、69の行でブ
ロックを参照し、その結果、各々が、無効状態にコード
S3を更新する。次に装置26は、ブロックが、変更さ
れていないモジュール10との間で共有されることを示
すステータスコードS2で、テーブル28内で処理ブロ
ックをインデックスする。最後に装置26は、処理され
たブロックの内容を装置6に送信し、装置は、無効化さ
れておらず共有されており変更されていないステータス
コードで、テーブル9内のブロックをインデックスし、
ブロックをキャッシュメモリ15に書き込む。
【0039】前記の説明は直接マッピングキャッシュメ
モリ機構に基くものである。専用キャッシュメモリ11
〜14、31〜34、41〜44、61〜64およびテ
ーブル8、9、28、29、48、49、68、69の
全てまたは一部において、連想マッピング、あるいはブ
ロックセットによる連想マッピングキャッシュメモリ機
構など他の既知のキャッシュメモリ機構を使用する場
合、このようにして提供した方法を実施しても、当業者
であれば、克服できないような問題は生じないであろ
う。
モリ機構に基くものである。専用キャッシュメモリ11
〜14、31〜34、41〜44、61〜64およびテ
ーブル8、9、28、29、48、49、68、69の
全てまたは一部において、連想マッピング、あるいはブ
ロックセットによる連想マッピングキャッシュメモリ機
構など他の既知のキャッシュメモリ機構を使用する場
合、このようにして提供した方法を実施しても、当業者
であれば、克服できないような問題は生じないであろ
う。
【0040】とくに、テーブル8、28、48、68で
は、ブロックセットによる連想マッピングを使用するこ
とが有利である。フィールドA5を構成する同じm個の
ビットの場合、たとえば四つのブロックの、ブロックセ
ット連想マッピングでは、直接マッピングと比べて、テ
ーブル8に関して4倍のメモリを必要とする。各行はそ
の時各々そのステータスコードS2で四つのブロックを
参照することができるためである。一方、直接マッピン
グでは、フィールドA5によりインデックスされる行に
ブロックを参照させることが必要な時には、行が使用可
能であれば問題はないが、フィールドA6’など別のブ
ロックへの参照行が、参照すべきブロックのフィールド
A6とは異なる場合には、置換が必要である。行で参照
されるブロックがない場合、あるいは既に参照されたブ
ロックのステータスコードS2が、リモートモジュール
との共有の存在を示していない場合には、その行は使用
可能であり、その場合、このようなブロックの参照は無
効であるとされる。たとえば四つのブロックの、ブロッ
クセット連想マッピングでは、行で参照されるブロック
が四つ未満である場合、あるいは既に参照された少なく
とも一つのブロックの参照が無効である場合には、行が
使用可能であることが有利である。こうすることによ
り、新規ブロックを参照する必要が生じる前に既に参照
されたブロックの参照が無効になる確率は直接マッピン
グ機構と比べて増加する。行が使用不可能であるため置
換が必要である場合、最も古いブロック上、またはステ
ータスコードS2内に立った存在ビットが最小のブロッ
ク上で置換を行うことができる。こうすることにより、
置き換えられたばかりのブロックを別のモジュールがた
だちに再度、参照を要求する可能性が低くなる。
は、ブロックセットによる連想マッピングを使用するこ
とが有利である。フィールドA5を構成する同じm個の
ビットの場合、たとえば四つのブロックの、ブロックセ
ット連想マッピングでは、直接マッピングと比べて、テ
ーブル8に関して4倍のメモリを必要とする。各行はそ
の時各々そのステータスコードS2で四つのブロックを
参照することができるためである。一方、直接マッピン
グでは、フィールドA5によりインデックスされる行に
ブロックを参照させることが必要な時には、行が使用可
能であれば問題はないが、フィールドA6’など別のブ
ロックへの参照行が、参照すべきブロックのフィールド
A6とは異なる場合には、置換が必要である。行で参照
されるブロックがない場合、あるいは既に参照されたブ
ロックのステータスコードS2が、リモートモジュール
との共有の存在を示していない場合には、その行は使用
可能であり、その場合、このようなブロックの参照は無
効であるとされる。たとえば四つのブロックの、ブロッ
クセット連想マッピングでは、行で参照されるブロック
が四つ未満である場合、あるいは既に参照された少なく
とも一つのブロックの参照が無効である場合には、行が
使用可能であることが有利である。こうすることによ
り、新規ブロックを参照する必要が生じる前に既に参照
されたブロックの参照が無効になる確率は直接マッピン
グ機構と比べて増加する。行が使用不可能であるため置
換が必要である場合、最も古いブロック上、またはステ
ータスコードS2内に立った存在ビットが最小のブロッ
ク上で置換を行うことができる。こうすることにより、
置き換えられたばかりのブロックを別のモジュールがた
だちに再度、参照を要求する可能性が低くなる。
【0041】図4は装置6の追加的詳細を示す図であ
る。装置26、46、66は同一である。ここでは、モ
ジュール10以外のモジュールに常駐するブロックに関
するバス7上を通過しているブロックのアドレスと、モ
ジュール10に常駐するブロックに関するリンク17か
らのブロックのアドレスとに注目する。専用キャッシュ
メモリ11〜14のレベルではフィールドA1およびA
2が特に有効であることが上の説明でわかったため、こ
こでは、バス7上を通過しているブロックのアドレスの
構成は、フィールドA7およびA8だけで示してあり、
フィールドA7の上位ビットはフィールドA4を包含
し、また、リンク17からのブロックのアドレスの構成
はフィールドA4〜A6だけで示してある。フィールド
A4が、モジュール10に対しリモートなモジュール2
0、40、60内に常駐するブロックのアドレスに関す
るものである場合には、フィルタ85は、バス7上を通
過しているブロックのアドレスをテーブル9に送る。イ
ンデックスレジスタ94は、ブロックのアドレスのフィ
ールドA8によりアドレスされるテーブル9のエントリ
を指し示す。フィールドA4が、モジュール10に常駐
するブロックのアドレスに関するものである場合には、
フィルタ82は、リンク17からのブロックのアドレス
をテーブル8に送る。インデックスレジスタ84は、ブ
ロックのアドレスのフィールドA5によりアドレスされ
るテーブル8のエントリを指し示す。フィルタ82およ
び85はそれぞれ異なるか、全てまたは一部の共通部品
を有する。
る。装置26、46、66は同一である。ここでは、モ
ジュール10以外のモジュールに常駐するブロックに関
するバス7上を通過しているブロックのアドレスと、モ
ジュール10に常駐するブロックに関するリンク17か
らのブロックのアドレスとに注目する。専用キャッシュ
メモリ11〜14のレベルではフィールドA1およびA
2が特に有効であることが上の説明でわかったため、こ
こでは、バス7上を通過しているブロックのアドレスの
構成は、フィールドA7およびA8だけで示してあり、
フィールドA7の上位ビットはフィールドA4を包含
し、また、リンク17からのブロックのアドレスの構成
はフィールドA4〜A6だけで示してある。フィールド
A4が、モジュール10に対しリモートなモジュール2
0、40、60内に常駐するブロックのアドレスに関す
るものである場合には、フィルタ85は、バス7上を通
過しているブロックのアドレスをテーブル9に送る。イ
ンデックスレジスタ94は、ブロックのアドレスのフィ
ールドA8によりアドレスされるテーブル9のエントリ
を指し示す。フィールドA4が、モジュール10に常駐
するブロックのアドレスに関するものである場合には、
フィルタ82は、リンク17からのブロックのアドレス
をテーブル8に送る。インデックスレジスタ84は、ブ
ロックのアドレスのフィールドA5によりアドレスされ
るテーブル8のエントリを指し示す。フィルタ82およ
び85はそれぞれ異なるか、全てまたは一部の共通部品
を有する。
【0042】フィルタ82が、リンク17からのブロッ
クのアドレスをテーブル8に送る毎に、カウンタ83は
増分される。カウンタ83は、リモートモジュールによ
るテーブル8へのアクセス回数をカウントする。カウン
タ83はバス7により読み取りアクセス可能である。
クのアドレスをテーブル8に送る毎に、カウンタ83は
増分される。カウンタ83は、リモートモジュールによ
るテーブル8へのアクセス回数をカウントする。カウン
タ83はバス7により読み取りアクセス可能である。
【0043】フィルタ82はブロックのアドレスをテー
ブル8に送ることから、図3の記述に関して、装置6
は、入力ブロックのフィールドA6を、テーブル8の行
内ですでにインデックスされたブロックのフィールドA
6’と比較することにより、ブロックがすでにテーブル
8内でインデックスされていたかどうかを判定していた
ことがわかった。レジスタ84により指示されるテーブ
ル8の行が全て使用不可能であって、提示ブロックのア
ドレスのフィールドA6の値に等しい値A6’を格納す
ることができなかった場合には、置換の必要性を知らせ
るために装置6内で信号S5が発生されており、その結
果、以前にインデックスされたブロックの代わりに、リ
ンク17から要求されたブロックがインデックスされ
る。この置換により、他のモジュール20、40、60
との単数または複数のトランザクションが発生し、リン
ク17に示されるアドレスの提示の基になるモジュール
20、40、60に、新しくインデックスされたブロッ
クのコピーが送信される。信号S5が生成される毎に、
置換カウンタ81は増分される。カウンタ81の内容
は、たとえば入出力型の読み出し時、バス7上でアクセ
ス可能である。
ブル8に送ることから、図3の記述に関して、装置6
は、入力ブロックのフィールドA6を、テーブル8の行
内ですでにインデックスされたブロックのフィールドA
6’と比較することにより、ブロックがすでにテーブル
8内でインデックスされていたかどうかを判定していた
ことがわかった。レジスタ84により指示されるテーブ
ル8の行が全て使用不可能であって、提示ブロックのア
ドレスのフィールドA6の値に等しい値A6’を格納す
ることができなかった場合には、置換の必要性を知らせ
るために装置6内で信号S5が発生されており、その結
果、以前にインデックスされたブロックの代わりに、リ
ンク17から要求されたブロックがインデックスされ
る。この置換により、他のモジュール20、40、60
との単数または複数のトランザクションが発生し、リン
ク17に示されるアドレスの提示の基になるモジュール
20、40、60に、新しくインデックスされたブロッ
クのコピーが送信される。信号S5が生成される毎に、
置換カウンタ81は増分される。カウンタ81の内容
は、たとえば入出力型の読み出し時、バス7上でアクセ
ス可能である。
【0044】フィルタ85が、バス7上を走るブロック
のアドレスをテーブル9に送る毎に、カウンタ93は増
分される。カウンタ93は、ローカルモジュール10に
よるテーブル9へのアクセス回数をカウントする。カウ
ンタ93はバス7により読み取りアクセス可能である。
図2を参照して、モジュール10がテーブル9にアクセ
スする毎に信号RHまたは信号RMが発生することがわ
かった。信号RHの数および信号RMの数もカウントさ
れれば、テーブル9へのアクセス数は、信号RHの数お
よび信号RMの数の和に等しいものとして、計算するこ
とができる。
のアドレスをテーブル9に送る毎に、カウンタ93は増
分される。カウンタ93は、ローカルモジュール10に
よるテーブル9へのアクセス回数をカウントする。カウ
ンタ93はバス7により読み取りアクセス可能である。
図2を参照して、モジュール10がテーブル9にアクセ
スする毎に信号RHまたは信号RMが発生することがわ
かった。信号RHの数および信号RMの数もカウントさ
れれば、テーブル9へのアクセス数は、信号RHの数お
よび信号RMの数の和に等しいものとして、計算するこ
とができる。
【0045】フィルタ85がブロックのアドレスをテー
ブル9に送るとき、図2の記述に関して、レジスタ84
により指示されるテーブル8の行に含まれる値A7’
が、提示ブロックのアドレスのフィールドA7の値と異
なっていた場合には、置換の必要性を知らせるために装
置6内で信号S4が発生されており、その結果、以前に
テーブルを作成されたブロックの代わりに、バス7上を
通過しているブロックがインデックスされる。この置換
によりさらに、他のモジュール20、40、60との単
数または複数のトランザクションが発生し、メモリ15
に、新しくインデックスされたブロックの最新コピーが
格納される。信号S4が出される毎に、置換カウンタ9
1は増分される。カウンタ91の内容は、たとえば入出
力型の読み出し時、バス7上でアクセス可能である。
ブル9に送るとき、図2の記述に関して、レジスタ84
により指示されるテーブル8の行に含まれる値A7’
が、提示ブロックのアドレスのフィールドA7の値と異
なっていた場合には、置換の必要性を知らせるために装
置6内で信号S4が発生されており、その結果、以前に
テーブルを作成されたブロックの代わりに、バス7上を
通過しているブロックがインデックスされる。この置換
によりさらに、他のモジュール20、40、60との単
数または複数のトランザクションが発生し、メモリ15
に、新しくインデックスされたブロックの最新コピーが
格納される。信号S4が出される毎に、置換カウンタ9
1は増分される。カウンタ91の内容は、たとえば入出
力型の読み出し時、バス7上でアクセス可能である。
【0046】カウンタ91の内容は、テーブル9内で置
換を行うのに必要なトランザクションの数、このトラン
ザクションの数のみに相関することに留意されたい。カ
ウンタ91の内容は、置換を必要としないトランザクシ
ョンには無関係である。たとえば図2で、フィールドA
8により指示される行に含まれるブロックのステータス
コードS3が無効状態を示している場合、リモートモジ
ュールとの少なくとも一つのトランザクションが必要で
ある。しかしながら、この行に含まれる値A7’がフィ
ールドA7の値に等しければ、アドレスされたブロック
はすでにインデックスされており、従ってこの行の置換
を必要としない。このケースはリモートミス信号RMを
発生するが、カウンタ91の内容には影響しない。
換を行うのに必要なトランザクションの数、このトラン
ザクションの数のみに相関することに留意されたい。カ
ウンタ91の内容は、置換を必要としないトランザクシ
ョンには無関係である。たとえば図2で、フィールドA
8により指示される行に含まれるブロックのステータス
コードS3が無効状態を示している場合、リモートモジ
ュールとの少なくとも一つのトランザクションが必要で
ある。しかしながら、この行に含まれる値A7’がフィ
ールドA7の値に等しければ、アドレスされたブロック
はすでにインデックスされており、従ってこの行の置換
を必要としない。このケースはリモートミス信号RMを
発生するが、カウンタ91の内容には影響しない。
【0047】オーバーフロー時、割り込みをバス7に送
信するために、各カウンタ81、83、91、93が設
けられる。図4にはさらに、コントロールレジスタ86
と、状態レジスタ87とがある。レジスタ86は読み出
しおよび書き込み時、バス7上でアクセス可能である。
レジスタ87は読み出し時、バス7上でアクセス可能で
あり、その内容を読み出すことにより系統的にリセット
される。
信するために、各カウンタ81、83、91、93が設
けられる。図4にはさらに、コントロールレジスタ86
と、状態レジスタ87とがある。レジスタ86は読み出
しおよび書き込み時、バス7上でアクセス可能である。
レジスタ87は読み出し時、バス7上でアクセス可能で
あり、その内容を読み出すことにより系統的にリセット
される。
【0048】レジスタ87は、各カウンタ81、83、
92、93用として1ビットを含み、このビットの所定
の論理状態が、ビットが割り当てられるカウンタのオー
バーフローを知らせる。
92、93用として1ビットを含み、このビットの所定
の論理状態が、ビットが割り当てられるカウンタのオー
バーフローを知らせる。
【0049】レジスタ86は組み合せ論理素子によりカ
ウンタ81、83、91、93を制御するためのビット
を含む。図を必要以上に複雑にしないための配慮から、
この組み合せ論理素子は図示しない。第一ビットは、カ
ウンタ81および83を無条件にオフにして、ビットの
一方の論理状態により、テーブル8への新規アクセスが
あってもカウンタの内容を変更できないようにし、ビッ
トの反対の論理状態により、テーブル8への新規アクセ
スがあった場合カウンタの内容を変更できるようにする
ために設けられるものである。第二ビットは、カウンタ
81および83を条件付でオフにして、ビットの一方の
論理状態により、レジスタ87のビットにより知らされ
るオーバーフロー後は、テーブル8への新規アクセスが
あってもカウンタの内容を変更できないようにし、ビッ
トの反対の論理状態により、テーブル8への新規アクセ
スがあった場合、レジスタ87の内容とは無関係に、カ
ウンタ81および83の内容を変更できるようにするた
めに設けられるものである。第三ビットは、前記に記載
のオーバーフロー時に割り込みをオフにして、ビットの
一方の論理状態により、割り込みを有効にし、ビットの
反対の論理状態により、割り込みを無効にするために設
けられるものである。第四ビットは、カウンタ81、8
3の内容をリセットするために設けられるものである。
テーブル9へのアクセスについてもまったく同じであ
り、第一、第二、第三および第四ビットが、カウンタ9
1および93の起動の管理を行う。これらのビットは、
カウンタ81および83を管理するビットと同じものと
することも、カウンタ91および93に固有なビットと
することもできる。全てのカウンタに共通な第四ビット
を一つ設けることも、存在するカウンタと同数の第四ビ
ットを設け、各第四ビットが、自身が割り当てられたカ
ウンタに作用するようにすることも可能である。
ウンタ81、83、91、93を制御するためのビット
を含む。図を必要以上に複雑にしないための配慮から、
この組み合せ論理素子は図示しない。第一ビットは、カ
ウンタ81および83を無条件にオフにして、ビットの
一方の論理状態により、テーブル8への新規アクセスが
あってもカウンタの内容を変更できないようにし、ビッ
トの反対の論理状態により、テーブル8への新規アクセ
スがあった場合カウンタの内容を変更できるようにする
ために設けられるものである。第二ビットは、カウンタ
81および83を条件付でオフにして、ビットの一方の
論理状態により、レジスタ87のビットにより知らされ
るオーバーフロー後は、テーブル8への新規アクセスが
あってもカウンタの内容を変更できないようにし、ビッ
トの反対の論理状態により、テーブル8への新規アクセ
スがあった場合、レジスタ87の内容とは無関係に、カ
ウンタ81および83の内容を変更できるようにするた
めに設けられるものである。第三ビットは、前記に記載
のオーバーフロー時に割り込みをオフにして、ビットの
一方の論理状態により、割り込みを有効にし、ビットの
反対の論理状態により、割り込みを無効にするために設
けられるものである。第四ビットは、カウンタ81、8
3の内容をリセットするために設けられるものである。
テーブル9へのアクセスについてもまったく同じであ
り、第一、第二、第三および第四ビットが、カウンタ9
1および93の起動の管理を行う。これらのビットは、
カウンタ81および83を管理するビットと同じものと
することも、カウンタ91および93に固有なビットと
することもできる。全てのカウンタに共通な第四ビット
を一つ設けることも、存在するカウンタと同数の第四ビ
ットを設け、各第四ビットが、自身が割り当てられたカ
ウンタに作用するようにすることも可能である。
【0050】装置6内に物理的に存在するカウンタの管
理は、プロセッサ1〜4、21〜24、41〜44、6
1〜64により起動されたプロセスにより実行される、
バス7およびリンク17によるメモリアクセスを妨害す
ることなく行われることに留意されたい。従って、置換
のカウント自体では、キャッシュメモリのヒットまたは
ミスは発生しない。さらに、入出力型読み出しまたは書
き込みにより、バス7を介してカウンタ81、83、9
1、93へのアクセスを行うことは、テーブル8および
9に結合されたキャッシュメモリ機構を使用しない。キ
ャッシュメモリ機構をわずらわせる可能性があるプロセ
スは、オペレーティングシステムまたはマシンが実行す
るアプリケーションの性能に関するレポートを生成する
のに有用なカウンタ81、83、91、03の内容を利
用するプロセスのみである。しかし、これらのプロセス
はマシンにより実行される他のプロセスと比較すれば十
分取るに足らないものであり、その結果、これらのプロ
セスによって得られる測定値は、キャッシュメモリ機構
に対するこれら測定プロセスの影響が全くない場合に得
られる測定値と実質的に同一である。
理は、プロセッサ1〜4、21〜24、41〜44、6
1〜64により起動されたプロセスにより実行される、
バス7およびリンク17によるメモリアクセスを妨害す
ることなく行われることに留意されたい。従って、置換
のカウント自体では、キャッシュメモリのヒットまたは
ミスは発生しない。さらに、入出力型読み出しまたは書
き込みにより、バス7を介してカウンタ81、83、9
1、93へのアクセスを行うことは、テーブル8および
9に結合されたキャッシュメモリ機構を使用しない。キ
ャッシュメモリ機構をわずらわせる可能性があるプロセ
スは、オペレーティングシステムまたはマシンが実行す
るアプリケーションの性能に関するレポートを生成する
のに有用なカウンタ81、83、91、03の内容を利
用するプロセスのみである。しかし、これらのプロセス
はマシンにより実行される他のプロセスと比較すれば十
分取るに足らないものであり、その結果、これらのプロ
セスによって得られる測定値は、キャッシュメモリ機構
に対するこれら測定プロセスの影響が全くない場合に得
られる測定値と実質的に同一である。
【0051】レジスタ86および87のアーキテクチャ
により、プロセッサ1〜4で実行されるプログラムによ
り実施される様々な種類の測定プロセスを作ることがで
きる。たとえば、レジスタ87内で発生された割り込み
により起動されるプロセス、あるいはレジスタ86との
間のインタラクションにより周期的に起動されるプロセ
スを挙げることができる。測定プロセスは、二つのカウ
ンタ81、83または二つのカウンタ91、93の内容
を同時に読み、得られた値を処理する。
により、プロセッサ1〜4で実行されるプログラムによ
り実施される様々な種類の測定プロセスを作ることがで
きる。たとえば、レジスタ87内で発生された割り込み
により起動されるプロセス、あるいはレジスタ86との
間のインタラクションにより周期的に起動されるプロセ
スを挙げることができる。測定プロセスは、二つのカウ
ンタ81、83または二つのカウンタ91、93の内容
を同時に読み、得られた値を処理する。
【0052】測定プロセスは、カウンタ81の内容をカ
ウンタ83の内容で割ることにより、テーブル8へのリ
モートモジュール20、40、60の一回のアクセスあ
たりの置換率を決定する。測定プロセスは、カウンタ9
1の内容をカウンタ93の内容で割ることにより、テー
ブル9へのローカルモジュール10の一回のアクセスあ
たりの置換率を決定する。
ウンタ83の内容で割ることにより、テーブル8へのリ
モートモジュール20、40、60の一回のアクセスあ
たりの置換率を決定する。測定プロセスは、カウンタ9
1の内容をカウンタ93の内容で割ることにより、テー
ブル9へのローカルモジュール10の一回のアクセスあ
たりの置換率を決定する。
【0053】上記の説明により、テーブル8またはテー
ブル9内で置換があると、常駐モジュール以外のモジュ
ールがもつブロックのコピーを更新または無効化するた
めに、モジュール間で単数または複数のトランザクショ
ンを伴うことがわかった。これらのトランザクションに
は待ち時間があり、これが過度に累積するとマシンの速
度を著しく下げるおそれがある。一回のアクセスあたり
の置換数のしきい値を設定することが好ましい。このし
きい値はこれを超過するとマシンの性能を損ねると思わ
れるようなものである。
ブル9内で置換があると、常駐モジュール以外のモジュ
ールがもつブロックのコピーを更新または無効化するた
めに、モジュール間で単数または複数のトランザクショ
ンを伴うことがわかった。これらのトランザクションに
は待ち時間があり、これが過度に累積するとマシンの速
度を著しく下げるおそれがある。一回のアクセスあたり
の置換数のしきい値を設定することが好ましい。このし
きい値はこれを超過するとマシンの性能を損ねると思わ
れるようなものである。
【0054】一回あたり一行について一つのブロックし
か参照することができないことから、テーブルの一行あ
たりで参照できるブロックの数が多ければ多いほど、置
換が発生する可能性も高くなる。置換回数が、設定した
しきい値を超えないようにするために、各行が、設定し
きい値を超える置換回数を生じさせない数のブロックを
参照するよう、テーブルのサイズが決められる。マシン
を起動させれば、置換カウンタにより、テーブルのサイ
ズが正しいこと、また、したがって、テーブルのサイズ
を大きくする必要がないかどうかを確認することができ
る。
か参照することができないことから、テーブルの一行あ
たりで参照できるブロックの数が多ければ多いほど、置
換が発生する可能性も高くなる。置換回数が、設定した
しきい値を超えないようにするために、各行が、設定し
きい値を超える置換回数を生じさせない数のブロックを
参照するよう、テーブルのサイズが決められる。マシン
を起動させれば、置換カウンタにより、テーブルのサイ
ズが正しいこと、また、したがって、テーブルのサイズ
を大きくする必要がないかどうかを確認することができ
る。
【図1】四つのモジュールを有するマシンのアーキテク
チャを示す図である。
チャを示す図である。
【図2】ローカルとみなされるモジュール内にある図1
の装置6の詳細を示す図である。
の装置6の詳細を示す図である。
【図3】リモートとみなされるモジュール内にある図1
の装置6の詳細を示す図である。
の装置6の詳細を示す図である。
【図4】本発明を実施するための装置6の他の例の詳細
を示す図である。
を示す図である。
1、2、3、4、21、22、23、24、41、4
2、43、44、61、62、63、64 プロセッサ 5、25、45、65 メモリ 6、26、46、66 他のモジュールへ接続する装置 7、27、47、67 システムバス 8、28、48、68 第一テーブル 9 第二テーブル 10、20、40、60 モジュール 11、12、13、14、31、32、33、34、5
1、52、53、54、71、72、73、74 専用
キャッシュメモリ 15、35、55、75 リモートアクセスキャッシュ
メモリ 16 リング 17、37、57、77 リンク 81、91 置換数のカウンタ 82、85 フィルタ 83、93 テーブルへのアクセスのカウンタ 84、94 インデックスレジスタ 86 制御レジスタ 87 状態レジスタ A1、A2、A3、A4、A5、A6、A7、A8 フ
ィールド LH ローカルヒット信号 LM ローカルミス信号 RH リモートヒット信号 RM リモートミス信号 S1 ブロックの変更信号 S2、S3 ステータスコード S5 信号
2、43、44、61、62、63、64 プロセッサ 5、25、45、65 メモリ 6、26、46、66 他のモジュールへ接続する装置 7、27、47、67 システムバス 8、28、48、68 第一テーブル 9 第二テーブル 10、20、40、60 モジュール 11、12、13、14、31、32、33、34、5
1、52、53、54、71、72、73、74 専用
キャッシュメモリ 15、35、55、75 リモートアクセスキャッシュ
メモリ 16 リング 17、37、57、77 リンク 81、91 置換数のカウンタ 82、85 フィルタ 83、93 テーブルへのアクセスのカウンタ 84、94 インデックスレジスタ 86 制御レジスタ 87 状態レジスタ A1、A2、A3、A4、A5、A6、A7、A8 フ
ィールド LH ローカルヒット信号 LM ローカルミス信号 RH リモートヒット信号 RM リモートミス信号 S1 ブロックの変更信号 S2、S3 ステータスコード S5 信号
Claims (6)
- 【請求項1】 複数のモジュール(10、20、40、
60)で構成され、所与のモジュール(10)が、 当該モジュール(10)内に常駐するデータブロックを
格納するための第一部分(5’)と、 他のモジュール(20、40、60)内に常駐するデー
タブロックのコピーを格納するための第二部分(15)
との少なくとも二つの部分で構成される物理メモリ
(5)を備えるマシンの製造方法であって、 二つのテーブルLMDおよびRCTを当該モジュールに
付与し、該二つのテーブルは、それぞれが所定数の行を
含み、第一テーブルLMD(8)の各行が、単数または
複数の他のモジュール(20、40、60)との間で共
有されるべく使用可能な物理メモリの第一部分(5’)
内に常駐するブロックのアドレスをインデックスすると
共に、他のモジュール(20、40、60)の要求によ
る置換のために物理メモリの第一部分(5’)内に常駐
する別のブロックのアドレスをインデッスクするための
ものであり、第二テーブルRCT(9)の各行が、他の
モジュール(20、40、60)内に常駐し、この行に
対応する物理的メモリの第二部分(15)のロケーショ
ンにおいてそのコピーにアクセス可能なブロックのアド
レスを参照すると共に、当該モジュール(10)のアク
セス要求による置換のために他のモジュール(20、4
0、60)内に常駐する別のブロックのアドレスを参照
するためのものであり、 第一テーブルLMD(8)内の置換数及び/または第二
テーブルRCT(9)内の置換数をカウントする、所与
のオペレーティングモードでマシンを動作させ、 第一テーブル(8)または第二テーブル(9)における
置換の数が、平均して前記所与のオペレーティングモー
ドのためのしきい値よりも小さくなるようにマシンのア
ーキテクチャを適合させることから成ることを特徴とす
る方法。 - 【請求項2】 第一テーブル(8)または第二テーブル
(9)に、置換の数が、平均して前記しきい値よりも小
さくなるような行数を付与することにより、マシンのア
ーキテクチャが適合されることを特徴とする請求項1に
記載の方法。 - 【請求項3】 第一テーブルLMD(8)又は第二テー
ブルRCT(9)内の置換の数の平均値が、置換数を、
第一テーブルLMD(8)への合計アクセス数、又は第
二テーブルRCT(9)へのアクセス数でそれぞれ割る
ことにより計算されることを特徴とする請求項1に記載
の方法。 - 【請求項4】 複数のモジュール(10、20、40、
60)で構成されるマシンであって、各所与のモジュー
ル(10)が、 当該モジュール(10)内に常駐するデータブロックを
格納するための第一部分(5’)と、 他のモジュール(20、40、60)内に常駐するデー
タブロックのコピーを格納するための第二部分(15)
との少なくとも二つの部分で構成される物理メモリ
(5)を備えるマシンであって、 二つのテーブルLMDおよびRCTであって、それぞれ
が所定数の行を含み、第一テーブルLMD(8)の各行
が、単数または複数の他のモジュール(20、40、6
0)との間で共有されるべく使用可能な物理メモリの第
一部分(5’)内に常駐するブロックのアドレスをイン
デッスクすると共に、他のモジュール(20、40、6
0)のアクセス要求による置換のために物理メモリの第
一部分(5’)内に常駐する別のブロックのアドレスを
インデッスクするためのものであり、第二テーブルRC
T(9)の各行が、他のモジュール(20、40、6
0)内に常駐し、この行に対応する物理的メモリの第二
部分(15)のロケーションにおいてそのコピーにアク
セス可能なブロックのアドレスを参照すると共に、当該
モジュールのアクセス要求による置換のために他のモジ
ュール(20、40、60)内に常駐する別のブロック
のアドレスを参照するためのものである二つのテーブル
LMDおよびRCTと、 第一テーブルLMD(8)内の置換数のカウンタ(8
1)および/または第二テーブルRCT(9)内の置換
数をカウントするカウンタ(91)とを備えることを特
徴とするマシン。 - 【請求項5】 各モジュールが、他のモジュールと通信
する装置(6、26、46、66)を備え、各装置が、
前記テーブル(8、9)と同じタイプの二つのテーブル
と、前記カウンタ(81、91)と同じタイプの二つの
カウンタとを備えることを特徴とする請求項4に記載の
複数のモジュール(10、20、40、60)で構成さ
れるマシン。 - 【請求項6】 装置(6)が、第一テーブルLMD
(8)への総アクセス数をカウントする手段(83)及
び/または第二テーブルRCT(9)への総アクセス数
をカウントする手段(93)を備えることを特徴とする
請求項5に記載の複数のモジュール(10、20、4
0、60)で構成されるマシン。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9706388A FR2763714B1 (fr) | 1997-05-26 | 1997-05-26 | Compteurs de remplacement pour machine avec memoire a acces non uniforme |
FR9706388 | 1997-05-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10334068A true JPH10334068A (ja) | 1998-12-18 |
Family
ID=9507221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10144680A Pending JPH10334068A (ja) | 1997-05-26 | 1998-05-26 | 非均一メモリアクセスを有するマシン用の置換カウンタ |
Country Status (5)
Country | Link |
---|---|
US (1) | US6148378A (ja) |
EP (1) | EP0881579B1 (ja) |
JP (1) | JPH10334068A (ja) |
DE (1) | DE69806855T2 (ja) |
FR (1) | FR2763714B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020175173A1 (ja) * | 2019-02-26 | 2020-09-03 | 日本電気株式会社 | メモリ配置装置、メモリ配置方法、及び、メモリ配置プログラムを格納した記録媒体 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785888B1 (en) * | 1997-08-29 | 2004-08-31 | International Business Machines Corporation | Memory allocator for a multiprocessor computer system |
US6052760A (en) * | 1997-11-05 | 2000-04-18 | Unisys Corporation | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks |
US6826651B2 (en) * | 1998-05-29 | 2004-11-30 | International Business Machines Corporation | State-based allocation and replacement for improved hit ratio in directory caches |
US6237065B1 (en) * | 1999-05-14 | 2001-05-22 | Hewlett-Packard Company | Preemptive replacement strategy for a caching dynamic translator |
US6651157B1 (en) * | 1999-10-15 | 2003-11-18 | Silicon Graphics, Inc. | Multi-processor system and method of accessing data therein |
US6754784B1 (en) * | 2000-02-01 | 2004-06-22 | Cirrus Logic, Inc. | Methods and circuits for securing encached information |
US6763432B1 (en) * | 2000-06-09 | 2004-07-13 | International Business Machines Corporation | Cache memory system for selectively storing directory information for a higher level cache in portions of a lower level cache |
FR2820850B1 (fr) * | 2001-02-15 | 2003-05-09 | Bull Sa | Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur |
US6760809B2 (en) * | 2001-06-21 | 2004-07-06 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory |
US7103636B2 (en) * | 2002-05-28 | 2006-09-05 | Newisys, Inc. | Methods and apparatus for speculative probing of a remote cluster |
US7181744B2 (en) * | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
US7296121B2 (en) * | 2002-11-04 | 2007-11-13 | Newisys, Inc. | Reducing probe traffic in multiprocessor systems |
US7346744B1 (en) | 2002-11-04 | 2008-03-18 | Newisys, Inc. | Methods and apparatus for maintaining remote cluster state information |
US7003633B2 (en) * | 2002-11-04 | 2006-02-21 | Newisys, Inc. | Methods and apparatus for managing probe requests |
US7299468B2 (en) * | 2003-04-29 | 2007-11-20 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
US7251815B2 (en) * | 2003-04-29 | 2007-07-31 | International Business Machines Corporation | Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle |
JP4012517B2 (ja) | 2003-04-29 | 2007-11-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 仮想計算機環境におけるロックの管理 |
US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
US7337279B2 (en) * | 2003-06-27 | 2008-02-26 | Newisys, Inc. | Methods and apparatus for sending targeted probes |
US7698397B2 (en) * | 2003-06-27 | 2010-04-13 | Microsoft Corporation | Method and framework for providing system performance information |
US8949537B2 (en) * | 2013-02-25 | 2015-02-03 | Hitachi, Ltd. | Storage control apparatus and method for detecting write completion of data |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4068304A (en) * | 1973-01-02 | 1978-01-10 | International Business Machines Corporation | Storage hierarchy performance monitor |
JPH02181844A (ja) * | 1989-01-06 | 1990-07-16 | Matsushita Electric Ind Co Ltd | キャッシュメモリ管理方法 |
US5887146A (en) * | 1995-08-14 | 1999-03-23 | Data General Corporation | Symmetric multiprocessing computer with non-uniform memory access architecture |
US6014690A (en) * | 1997-10-24 | 2000-01-11 | Digital Equipment Corporation | Employing multiple channels for deadlock avoidance in a cache coherency protocol |
-
1997
- 1997-05-26 FR FR9706388A patent/FR2763714B1/fr not_active Expired - Fee Related
-
1998
- 1998-05-14 DE DE69806855T patent/DE69806855T2/de not_active Expired - Lifetime
- 1998-05-14 EP EP98401148A patent/EP0881579B1/fr not_active Expired - Lifetime
- 1998-05-22 US US09/082,938 patent/US6148378A/en not_active Expired - Lifetime
- 1998-05-26 JP JP10144680A patent/JPH10334068A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020175173A1 (ja) * | 2019-02-26 | 2020-09-03 | 日本電気株式会社 | メモリ配置装置、メモリ配置方法、及び、メモリ配置プログラムを格納した記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
EP0881579A1 (fr) | 1998-12-02 |
DE69806855T2 (de) | 2003-02-06 |
FR2763714A1 (fr) | 1998-11-27 |
FR2763714B1 (fr) | 1999-07-02 |
DE69806855D1 (de) | 2002-09-05 |
EP0881579B1 (fr) | 2002-07-31 |
US6148378A (en) | 2000-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10334068A (ja) | 非均一メモリアクセスを有するマシン用の置換カウンタ | |
EP0908825B1 (en) | A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory | |
TWI391821B (zh) | 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法 | |
US6289420B1 (en) | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem | |
KR100491435B1 (ko) | 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법 | |
US8799588B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration | |
US5606686A (en) | Access control method for a shared main memory in a multiprocessor based upon a directory held at a storage location of data in the memory after reading data to a processor | |
US8799589B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads | |
US7447845B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality | |
US7788452B2 (en) | Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches | |
JP2001515243A (ja) | クラスタ保護メカニズムを使用する多重処理コンピュータ・システム | |
US6195731B1 (en) | Instrumentation device for a machine with non-uniform memory access | |
US6195728B1 (en) | Detection of hot points in a non-uniform memory access machine | |
KR20210041485A (ko) | 데이터 신호 경로 및 태그 신호 경로를 갖는 메모리 인터페이스 | |
US12093177B2 (en) | Multi-level partitioned snoop filter | |
KR100395768B1 (ko) | 멀티 레벨 캐쉬 시스템 | |
JPH10187631A (ja) | 拡張された対称マルチプロセッサ・アーキテクチャ | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
JP2017037538A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US6826654B2 (en) | Cache invalidation bus for a highly scalable shared cache memory hierarchy | |
US6826655B2 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
JPH01102662A (ja) | 記憶装置 | |
JPH06195263A (ja) | キャッシュ・メモリ・システム | |
JPH06161895A (ja) | 多階層メモリにおけるアクセスブロック通知方法 | |
SE523283C2 (sv) | Multiprocessorsystem för att minska effektförbrukningen hos logik i förbindelse med processorer i systemet |