JPH06110844A - 分散共有メモリ型マルチプロセッサシステム - Google Patents
分散共有メモリ型マルチプロセッサシステムInfo
- Publication number
- JPH06110844A JPH06110844A JP5199772A JP19977293A JPH06110844A JP H06110844 A JPH06110844 A JP H06110844A JP 5199772 A JP5199772 A JP 5199772A JP 19977293 A JP19977293 A JP 19977293A JP H06110844 A JPH06110844 A JP H06110844A
- Authority
- JP
- Japan
- Prior art keywords
- shared
- cache
- memory
- state
- cpu
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 CPUとキャッシュメモリと主記憶の一部と
共有管理部とを備えた複数のプロセッサを共有バスで接
続して成る分散共有メモリ型マルチプロセッサシステム
において、共有バス上のトラフィックを少なくして、キ
ャッシュの一貫性保持を実現する。 【構成】 共有管理部4が、自己の主メモリのアドレス
が他のプロセッサのキャッシュメモリ上に存在するか
(共有か)否か(非共有か)の情報を記憶する主記憶タ
グメモリ27やキャッシュメモリのデータ・エントリが
更新され且つ共有メモリに書き戻されていないか(ダー
ティ)否か(クリーン)の情報を記憶するキャッシュ状
態タグメモリ24備え、CPUが自己の主メモリへの書
き込みを行う際に、主記憶タグが共有であれば共有バス
上に無効化命令を出してキャッシュの一貫性を保証し、
非共有であれば共有バス上には何も出さずに自己のプロ
セッサ内部だけで処理を行う。又、別のプロセッサ・ユ
ニットからのアクセス要求に対し、キャッシュ状態タグ
がダーティであればこのアクセス要求に介入して一貫性
保持を行う。
共有管理部とを備えた複数のプロセッサを共有バスで接
続して成る分散共有メモリ型マルチプロセッサシステム
において、共有バス上のトラフィックを少なくして、キ
ャッシュの一貫性保持を実現する。 【構成】 共有管理部4が、自己の主メモリのアドレス
が他のプロセッサのキャッシュメモリ上に存在するか
(共有か)否か(非共有か)の情報を記憶する主記憶タ
グメモリ27やキャッシュメモリのデータ・エントリが
更新され且つ共有メモリに書き戻されていないか(ダー
ティ)否か(クリーン)の情報を記憶するキャッシュ状
態タグメモリ24備え、CPUが自己の主メモリへの書
き込みを行う際に、主記憶タグが共有であれば共有バス
上に無効化命令を出してキャッシュの一貫性を保証し、
非共有であれば共有バス上には何も出さずに自己のプロ
セッサ内部だけで処理を行う。又、別のプロセッサ・ユ
ニットからのアクセス要求に対し、キャッシュ状態タグ
がダーティであればこのアクセス要求に介入して一貫性
保持を行う。
Description
【0001】
【産業上の利用分野】本発明は電子計算機、特に、複数
のCPUをバスで結合する密結合マルチプロセッサシス
テムに関する。
のCPUをバスで結合する密結合マルチプロセッサシス
テムに関する。
【0002】
【従来の技術】共有メモリ型マルチプロセッサは、図1
のように複数のプロセッサ(プロセッサ1〜プロセッサ
n)1000−1〜1000−nと共有メモリ1000
−1〜1000−mをバスまたはスイッチを用いた結合
路1002で結合した構成を持ち、メモリは全てのプロ
セッサから平等にアクセスすることができる。よって、
並列プログラムは主メモリ上のメモリを区別することな
くアクセスを行なうことができ、他のプロセスと共有し
ている変数をアクセスする際に、そのプロセスがプロセ
ッサ間に跨っているか否かを意識せずにアクセスを行な
うことができる。
のように複数のプロセッサ(プロセッサ1〜プロセッサ
n)1000−1〜1000−nと共有メモリ1000
−1〜1000−mをバスまたはスイッチを用いた結合
路1002で結合した構成を持ち、メモリは全てのプロ
セッサから平等にアクセスすることができる。よって、
並列プログラムは主メモリ上のメモリを区別することな
くアクセスを行なうことができ、他のプロセスと共有し
ている変数をアクセスする際に、そのプロセスがプロセ
ッサ間に跨っているか否かを意識せずにアクセスを行な
うことができる。
【0003】ところで、並列プログラムといえども、共
有変数へのアクセスばかりでプログラムが実行されるわ
けではない。むしろ、メモリアクセスの大部分はそのプ
ログラムの局所変数へのアクセスであり、マルチプロセ
ッサの性能を高める上で、局所変数のアクセス性能が大
きな影響を及ぼす。
有変数へのアクセスばかりでプログラムが実行されるわ
けではない。むしろ、メモリアクセスの大部分はそのプ
ログラムの局所変数へのアクセスであり、マルチプロセ
ッサの性能を高める上で、局所変数のアクセス性能が大
きな影響を及ぼす。
【0004】図1の共有メモリ型マルチプロセッサでは
プロセッサで共有していない局所変数へのアクセスであ
っても、キャッシュミスを起こした場合は、共有変数へ
のアクセスと同様に共有バスへアクセスを出し、共有メ
モリをアクセスすることでキャッシュをリフィルする。
この方式では、並列プログラムの作成にあたり変数がプ
ロセッサ間で共有されているか否かを区別する必要がな
くプログラム作成上の制約が少ないことが特徴である
が、局所変数のアクセス性能を高めることができない。
プロセッサで共有していない局所変数へのアクセスであ
っても、キャッシュミスを起こした場合は、共有変数へ
のアクセスと同様に共有バスへアクセスを出し、共有メ
モリをアクセスすることでキャッシュをリフィルする。
この方式では、並列プログラムの作成にあたり変数がプ
ロセッサ間で共有されているか否かを区別する必要がな
くプログラム作成上の制約が少ないことが特徴である
が、局所変数のアクセス性能を高めることができない。
【0005】密結合マルチプロセッサで高いシステム性
能を得るためには、共有バス上のトラフィックを低減
し、より多くのプロセッサを結合することが肝要である
が、この方式の共有メモリ型マルチプロセッサでは局所
変数のアクセスにも共有バスを使用しなければならず、
多数のプロセッサを結合することが事実上困難であると
いう課題があった。
能を得るためには、共有バス上のトラフィックを低減
し、より多くのプロセッサを結合することが肝要である
が、この方式の共有メモリ型マルチプロセッサでは局所
変数のアクセスにも共有バスを使用しなければならず、
多数のプロセッサを結合することが事実上困難であると
いう課題があった。
【0006】近年、半導体集積回路の製造技術は長足の
進歩を遂げ、今日に至っては汎用計算機の中央処理装置
(CPU)のみならず、周辺のキャッシュメモリや記憶
管理機構(MMU)をも1個のチップ上に集積すること
が困難となった。いわゆる、マイクロプロセッサと呼ば
れるチップである。主記憶に用いるDRAMにおいては
1チップあたり4ないし16メガビットの集積度が実現
され、更に高い集積度を目指した研究開発が行なわれて
いる。これらの技術の恩恵を受けて、ワークステーショ
ンと呼ばれる小型計算機は、ディスク、LAN回線とい
った周辺機器の制御装置までを含めて1枚の基板上に集
積する。メモリとCPUが密に結合することで高い性能
を実現し、CPUの処理性能のみに注目すれば同世代の
汎用計算機と肩を並べるまでに至った。この様に今日の
技術をもってすれば、実用的なレベルでCPUとメモリ
を同一基板上に搭載することは可能である。
進歩を遂げ、今日に至っては汎用計算機の中央処理装置
(CPU)のみならず、周辺のキャッシュメモリや記憶
管理機構(MMU)をも1個のチップ上に集積すること
が困難となった。いわゆる、マイクロプロセッサと呼ば
れるチップである。主記憶に用いるDRAMにおいては
1チップあたり4ないし16メガビットの集積度が実現
され、更に高い集積度を目指した研究開発が行なわれて
いる。これらの技術の恩恵を受けて、ワークステーショ
ンと呼ばれる小型計算機は、ディスク、LAN回線とい
った周辺機器の制御装置までを含めて1枚の基板上に集
積する。メモリとCPUが密に結合することで高い性能
を実現し、CPUの処理性能のみに注目すれば同世代の
汎用計算機と肩を並べるまでに至った。この様に今日の
技術をもってすれば、実用的なレベルでCPUとメモリ
を同一基板上に搭載することは可能である。
【0007】図2はメモリを各プロセッサ基板に分散配
置した分散共有メモリ型マルチプロセッサの構成図を示
す。この構成では、CPUとメモリを同一基板に搭載
し、各基板1010−1〜1010−nはバス駆動バッ
ファを経由して共有バス1012で結合されている。こ
の構成で、同一基板上のメモリを局所変数に割り当てれ
ば、局所変数のアクセスは共有バスを経由しなくてもア
クセス可能である。そして、プロセッサ間で共有する変
数は、共有を行うプロセッサのいずれかの主メモリ上に
おき、共有バスを用いてアクセスする。
置した分散共有メモリ型マルチプロセッサの構成図を示
す。この構成では、CPUとメモリを同一基板に搭載
し、各基板1010−1〜1010−nはバス駆動バッ
ファを経由して共有バス1012で結合されている。こ
の構成で、同一基板上のメモリを局所変数に割り当てれ
ば、局所変数のアクセスは共有バスを経由しなくてもア
クセス可能である。そして、プロセッサ間で共有する変
数は、共有を行うプロセッサのいずれかの主メモリ上に
おき、共有バスを用いてアクセスする。
【0008】しかし、既存の並列プログラムは共有変数
と局所変数を区別して記述されておらず、新たに作成す
る並列プログラムにおいても、これを区別して記述する
ことは大きな制約となる。また、同一基板上にCPUと
メモリを搭載するにはマイクロプロセッサを用いるが、
既存のマイクロプロセッサに共有変数と局所変数を区別
してアクセスする手段を持ち合わせていないものが多
い。
と局所変数を区別して記述されておらず、新たに作成す
る並列プログラムにおいても、これを区別して記述する
ことは大きな制約となる。また、同一基板上にCPUと
メモリを搭載するにはマイクロプロセッサを用いるが、
既存のマイクロプロセッサに共有変数と局所変数を区別
してアクセスする手段を持ち合わせていないものが多
い。
【0009】メモリシステムの振舞いとしては、あるア
クセスが共有変数へのアクセスである可能性が否定でき
ない限り、共有バスを用いて他の基板上のプロセッサの
キャッシュメモリにアクセスを行なった旨を伝達しなけ
れば、一貫性を保持することができないため、全てのア
クセスを共有バス上に伝達する必要が生じる。
クセスが共有変数へのアクセスである可能性が否定でき
ない限り、共有バスを用いて他の基板上のプロセッサの
キャッシュメモリにアクセスを行なった旨を伝達しなけ
れば、一貫性を保持することができないため、全てのア
クセスを共有バス上に伝達する必要が生じる。
【0010】よって、この様な構成を用いても、共有バ
スのトラフィックは減少せず、システムの拡張性を高め
られないという問題点があった。
スのトラフィックは減少せず、システムの拡張性を高め
られないという問題点があった。
【0011】
【発明が解決しようとする課題】以上まとめると、従来
のマルチプロセッサでは、全てのアクセスについて共有
バスを経由して共有メモリをアクセスするという動作が
行われるため、共有バスのトラフィックが増大し、シス
テムの拡張性を高められないという問題点があった。
のマルチプロセッサでは、全てのアクセスについて共有
バスを経由して共有メモリをアクセスするという動作が
行われるため、共有バスのトラフィックが増大し、シス
テムの拡張性を高められないという問題点があった。
【0012】本発明は以上の問題点を解決するためにな
されたものであり、その目的とするところは、並列プロ
グラムに変数アクセスに対する制約を加えることなく、
共有バスの不必要なトラフィックを削減し、システム拡
張性の高いマルチプロセッサシステムを提供することに
ある。
されたものであり、その目的とするところは、並列プロ
グラムに変数アクセスに対する制約を加えることなく、
共有バスの不必要なトラフィックを削減し、システム拡
張性の高いマルチプロセッサシステムを提供することに
ある。
【0013】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、CPUと、内部バスを介してCPUと接続され、シ
ステムの共有メモリの分散された一部を記憶する主メモ
リと、内部バスを介して主メモリと接続され、共有メモ
リの選択されたデータ・エントリをキャッシュするCP
Uキャッシュメモリと、内部バスを介して主メモリとC
PUキャッシュメモリと接続され、内部バスと共有バス
をインタフェースする共有管理部で、該各プロセッサ・
ユニット上の主メモリの各データ・エントリが他のプロ
セッサ・ユニット上のCPUキャッシュメモリに共有さ
れているか否かを示す主メモリの各データ・エントリの
共有状態を記憶する主記憶タグ手段と、CPUによる主
メモリの或るデータ・エントリに対する書き込み命令の
実行に対して、主記憶タグ手段の該或るデータ・エント
リの共有状態が該或るデータ・エントリは他のプロセッ
サ・ユニット上のCPUキャッシュメモリに共有されて
いることを示している時に、該他のプロセッサ・ユニッ
ト上のCPUキャッシュメモリの該或るデータ・エント
リを無効化するように該他のプロセッサ・ユニットに命
令する無効化命令を共有バス上に発行する命令手段と、
CPUキャッシュメモリに記憶された選択されたデータ
・エントリのアドレスを記憶するキャッシュ・タグ手段
と、某データ・エントリに対する無効化命令を共有バス
から受け取り該某データ・エントリのアドレスがキャッ
シュ・タグ手段に記憶されている時に、CPUキャッシ
ュメモリの該某データ・エントリを無効化する制御手段
と、を含むものと、から成るシステムを提供する。
に、本発明は、共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、CPUと、内部バスを介してCPUと接続され、シ
ステムの共有メモリの分散された一部を記憶する主メモ
リと、内部バスを介して主メモリと接続され、共有メモ
リの選択されたデータ・エントリをキャッシュするCP
Uキャッシュメモリと、内部バスを介して主メモリとC
PUキャッシュメモリと接続され、内部バスと共有バス
をインタフェースする共有管理部で、該各プロセッサ・
ユニット上の主メモリの各データ・エントリが他のプロ
セッサ・ユニット上のCPUキャッシュメモリに共有さ
れているか否かを示す主メモリの各データ・エントリの
共有状態を記憶する主記憶タグ手段と、CPUによる主
メモリの或るデータ・エントリに対する書き込み命令の
実行に対して、主記憶タグ手段の該或るデータ・エント
リの共有状態が該或るデータ・エントリは他のプロセッ
サ・ユニット上のCPUキャッシュメモリに共有されて
いることを示している時に、該他のプロセッサ・ユニッ
ト上のCPUキャッシュメモリの該或るデータ・エント
リを無効化するように該他のプロセッサ・ユニットに命
令する無効化命令を共有バス上に発行する命令手段と、
CPUキャッシュメモリに記憶された選択されたデータ
・エントリのアドレスを記憶するキャッシュ・タグ手段
と、某データ・エントリに対する無効化命令を共有バス
から受け取り該某データ・エントリのアドレスがキャッ
シュ・タグ手段に記憶されている時に、CPUキャッシ
ュメモリの該某データ・エントリを無効化する制御手段
と、を含むものと、から成るシステムを提供する。
【0014】又、本発明は、共有バスを介して結合され
た複数のプロセッサ・ユニットから成る分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、CP
Uキャッシュメモリの各データ・エントリが該各プロセ
ッサ・ユニット上のCPUキャッシュメモリにおいて更
新され且つ共有メモリに書き戻されていないか否かを示
すCPUキャッシュメモリの各データ・エントリのキャ
ッシュ状態を記憶するキャッシュ状態タグ手段と、共有
バスを介して受け取った別のプロセッサ・ユニットから
の或るデータ・エントリに対するアクセス要求に対し
て、キャッシュ状態タグ手段の該或るデータ・エントリ
のキャッシュ状態が該或るデータ・エントリは該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないことを示
している時に、該別のプロセッサ・ユニット上の主メモ
リの該或るデータ・エントリへのアクセスに介入する介
入手段と、介入手段が該別のプロセッサ上の主メモリの
該或るデータ・エントリへのアクセスに介入した時に、
キャッシュ状態タグ手段の該或るデータ・エントリのキ
ャッシュ状態を、該或るデータ・エントリの所有権を持
った一キャッシュ状態から該或るデータ・エントリの所
有権を持たない他のキャッシュ状態に状態遷移させ、該
各プロセッサ・ユニットからの某データ・エントリへの
アクセスが他のプロセッサ・ユニットの介入手段により
介入された時に、キャッシュ状態タグ手段の該某データ
・エントリのキャッシュ状態を、該某データ・エントリ
の所有権を持たない一キャッシュ状態から該某データ・
エントリの所有権を持った他のキャッシュ状態に状態遷
移させるように制御する制御手段と、を含むものと、か
ら成るシステムを提供する。
た複数のプロセッサ・ユニットから成る分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、CP
Uキャッシュメモリの各データ・エントリが該各プロセ
ッサ・ユニット上のCPUキャッシュメモリにおいて更
新され且つ共有メモリに書き戻されていないか否かを示
すCPUキャッシュメモリの各データ・エントリのキャ
ッシュ状態を記憶するキャッシュ状態タグ手段と、共有
バスを介して受け取った別のプロセッサ・ユニットから
の或るデータ・エントリに対するアクセス要求に対し
て、キャッシュ状態タグ手段の該或るデータ・エントリ
のキャッシュ状態が該或るデータ・エントリは該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないことを示
している時に、該別のプロセッサ・ユニット上の主メモ
リの該或るデータ・エントリへのアクセスに介入する介
入手段と、介入手段が該別のプロセッサ上の主メモリの
該或るデータ・エントリへのアクセスに介入した時に、
キャッシュ状態タグ手段の該或るデータ・エントリのキ
ャッシュ状態を、該或るデータ・エントリの所有権を持
った一キャッシュ状態から該或るデータ・エントリの所
有権を持たない他のキャッシュ状態に状態遷移させ、該
各プロセッサ・ユニットからの某データ・エントリへの
アクセスが他のプロセッサ・ユニットの介入手段により
介入された時に、キャッシュ状態タグ手段の該某データ
・エントリのキャッシュ状態を、該某データ・エントリ
の所有権を持たない一キャッシュ状態から該某データ・
エントリの所有権を持った他のキャッシュ状態に状態遷
移させるように制御する制御手段と、を含むものと、か
ら成るシステムを提供する。
【0015】又、本発明は、共有バスを介して結合され
た複数のプロセッサ・ユニットからなる分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、該各
プロセッサ・ユニット上の主メモリの各データ・エント
リが他のプロセッサ・ユニット上のCPUキャッシュメ
モリに共有されているか否かを示す主メモリの各データ
・エントリの共有状態を記憶する主記憶タグ手段と、C
PUキャッシュメモリの各データ・エントリが該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないか否かを
示すCPUキャッシュメモリの各データ・エントリのキ
ャッシュ状態を記憶するキャッシュ状態タグ手段と、C
PUによる主メモリの或るデータ・エントリに対する読
み出し/書き込み命令の実行に対して、主記憶タグ手段
の該或るデータ・エントリの共有状態が該或るデータ・
エントリは他のプロセッサ・ユニット上のCPUキャッ
シュメモリに共有されていることを示している時に、該
他のプロセッサ・ユニット上のCPUキャッシュメモリ
の該或るデータ・エントリを共有バス上に読み出すよう
に該他のプロセッサ・ユニットに命令する読み出し命令
を共有バス上に発行する命令手段と、共有バスを介して
受け取った別のプロセッサ・ユニットからの読み出し命
令に対して、キャッシュ状態タグ手段の某データ・エン
トリのキャッシュ状態が該某データ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該某データ・エントリへのアクセスに介入する介
入手段と、を含むものと、から成るシステムを提供す
る。
た複数のプロセッサ・ユニットからなる分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、該各
プロセッサ・ユニット上の主メモリの各データ・エント
リが他のプロセッサ・ユニット上のCPUキャッシュメ
モリに共有されているか否かを示す主メモリの各データ
・エントリの共有状態を記憶する主記憶タグ手段と、C
PUキャッシュメモリの各データ・エントリが該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないか否かを
示すCPUキャッシュメモリの各データ・エントリのキ
ャッシュ状態を記憶するキャッシュ状態タグ手段と、C
PUによる主メモリの或るデータ・エントリに対する読
み出し/書き込み命令の実行に対して、主記憶タグ手段
の該或るデータ・エントリの共有状態が該或るデータ・
エントリは他のプロセッサ・ユニット上のCPUキャッ
シュメモリに共有されていることを示している時に、該
他のプロセッサ・ユニット上のCPUキャッシュメモリ
の該或るデータ・エントリを共有バス上に読み出すよう
に該他のプロセッサ・ユニットに命令する読み出し命令
を共有バス上に発行する命令手段と、共有バスを介して
受け取った別のプロセッサ・ユニットからの読み出し命
令に対して、キャッシュ状態タグ手段の某データ・エン
トリのキャッシュ状態が該某データ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該某データ・エントリへのアクセスに介入する介
入手段と、を含むものと、から成るシステムを提供す
る。
【0016】又、本発明は、共有バスを介して結合され
た複数のプロセッサ・ユニットから成る分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、CP
Uキャッシュメモリの各データ・エントリが該各プロセ
ッサ・ユニット上のCPUキャッシュメモリにおいて更
新され且つ共有メモリに書き戻されていないか否かを示
すCPUキャッシュメモリの各データ・エントリのキャ
ッシュ状態を記憶するキャッシュ状態タグ手段と、共有
バスを介して受け取った別のプロセッサ・ユニットから
の或るデータ・エントリに対するアクセス要求に対し
て、キャッシュ状態タグ手段の該或るデータ・エントリ
のキャッシュ状態が該或るデータ・エントリは該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないことを示
している時に、該別のプロセッサ・ユニット上の主メモ
リの該或るデータ・エントリへのアクセスに介入する介
入手段と、を含むものと、から成るシステムを提供す
る。
た複数のプロセッサ・ユニットから成る分散共有メモリ
型マルチプロセッサ・システムであって、各プロセッサ
・ユニットが、CPUと、内部バスを介してCPUと接
続され、システムの共有メモリの分散された一部を記憶
する主メモリと、内部バスを介して主メモリと接続さ
れ、共有メモリの選択されたデータ・エントリをキャッ
シュするCPUキャッシュメモリと、内部バスを介して
主メモリとCPUキャッシュメモリと接続され、内部バ
スと共有バスをインタフェースする共有管理部で、CP
Uキャッシュメモリの各データ・エントリが該各プロセ
ッサ・ユニット上のCPUキャッシュメモリにおいて更
新され且つ共有メモリに書き戻されていないか否かを示
すCPUキャッシュメモリの各データ・エントリのキャ
ッシュ状態を記憶するキャッシュ状態タグ手段と、共有
バスを介して受け取った別のプロセッサ・ユニットから
の或るデータ・エントリに対するアクセス要求に対し
て、キャッシュ状態タグ手段の該或るデータ・エントリ
のキャッシュ状態が該或るデータ・エントリは該各プロ
セッサ・ユニット上のCPUキャッシュメモリにおいて
更新され且つ共有メモリに書き戻されていないことを示
している時に、該別のプロセッサ・ユニット上の主メモ
リの該或るデータ・エントリへのアクセスに介入する介
入手段と、を含むものと、から成るシステムを提供す
る。
【0017】更に、請求項4記載のシステムにおいて、
共有管理部が更に、該各プロセッサ・ユニット上の主メ
モリの各データ・エントリの共有状態を記憶する主記憶
タグ手段で、共有状態は該各データ・エントリの所有権
が該各プロセッサ・ユニット上に存在することを示す
[H]状態と、該各データ・エントリの所有権が他のプ
ロセッサ・ユニット上に存在することを示す[A]状態
とを含むものと、CPUによる主メモリの某データ・エ
ントリに対するアクセス要求に対して、主記憶タグ手段
の該某データ・エントリの共有状態が[A]状態である
時に、該他のプロセッサ・ユニット上のCPUキャッシ
ュメモリの該某データ・エントリを共有バス上に読み出
すように該他のプロセッサ・ユニットに命令する読み出
し命令を共有バス上に発行する命令手段と、を含むシス
テムを提供する。
共有管理部が更に、該各プロセッサ・ユニット上の主メ
モリの各データ・エントリの共有状態を記憶する主記憶
タグ手段で、共有状態は該各データ・エントリの所有権
が該各プロセッサ・ユニット上に存在することを示す
[H]状態と、該各データ・エントリの所有権が他のプ
ロセッサ・ユニット上に存在することを示す[A]状態
とを含むものと、CPUによる主メモリの某データ・エ
ントリに対するアクセス要求に対して、主記憶タグ手段
の該某データ・エントリの共有状態が[A]状態である
時に、該他のプロセッサ・ユニット上のCPUキャッシ
ュメモリの該某データ・エントリを共有バス上に読み出
すように該他のプロセッサ・ユニットに命令する読み出
し命令を共有バス上に発行する命令手段と、を含むシス
テムを提供する。
【0018】
【作用】請求項1記載の第1の発明によれば、主記憶タ
グ手段が、自己の主メモリのアドレスが他のプロセッサ
のキャッシュメモリ上に存在するか(共有か)否か(非
共有か)の情報を記憶しているため、CPUが自己の主
メモリへの書き込みを行う際に、共有であれば命令手段
が共有バス上に無効化命令を出してキャッシュの一貫性
を保証し、非共有であれば共有バス上には何も出さずに
自己のプロセッサ内部だけで処理を行う。書き込むアド
レスをキャッシュメモリ上に持っている他のプロセッサ
は、キャッシュメモリ上にあるアドレスの情報を持つキ
ャッシュ・タグ手段を用いて、制御手段により前記の無
効化命令を共有バスから拾い出して無効化を行う。この
ように、非共有である場合に共有バスを用いないため、
共有バス上のトラフィックを少なくして、キャッシュの
一貫性保持が実現できる。
グ手段が、自己の主メモリのアドレスが他のプロセッサ
のキャッシュメモリ上に存在するか(共有か)否か(非
共有か)の情報を記憶しているため、CPUが自己の主
メモリへの書き込みを行う際に、共有であれば命令手段
が共有バス上に無効化命令を出してキャッシュの一貫性
を保証し、非共有であれば共有バス上には何も出さずに
自己のプロセッサ内部だけで処理を行う。書き込むアド
レスをキャッシュメモリ上に持っている他のプロセッサ
は、キャッシュメモリ上にあるアドレスの情報を持つキ
ャッシュ・タグ手段を用いて、制御手段により前記の無
効化命令を共有バスから拾い出して無効化を行う。この
ように、非共有である場合に共有バスを用いないため、
共有バス上のトラフィックを少なくして、キャッシュの
一貫性保持が実現できる。
【0019】又、請求項2記載の発明によれば、制御手
段がキャッシュ状態タグ手段のキャッシュ状態を、介入
先から介入元へ所有権移転が行われるように状態遷移さ
せるので、所有権に併う主メモリへ書き戻す義務が指定
されたアドレスのデータ・エントリを主メモリに持たず
CPUキャッシュメモリに持つ介入元の基板から指定さ
れたアドレスのデータ・エントリを主メモリに持つ介入
先の基板に移転され、後に書き戻しが要求された時には
指定されたアドレスのデータ・エントリの書き戻しが主
メモリに持つ基板のCPUキャッシュメモリから主メモ
リへ内部バスのみを使用して行えるようになる。
段がキャッシュ状態タグ手段のキャッシュ状態を、介入
先から介入元へ所有権移転が行われるように状態遷移さ
せるので、所有権に併う主メモリへ書き戻す義務が指定
されたアドレスのデータ・エントリを主メモリに持たず
CPUキャッシュメモリに持つ介入元の基板から指定さ
れたアドレスのデータ・エントリを主メモリに持つ介入
先の基板に移転され、後に書き戻しが要求された時には
指定されたアドレスのデータ・エントリの書き戻しが主
メモリに持つ基板のCPUキャッシュメモリから主メモ
リへ内部バスのみを使用して行えるようになる。
【0020】又、請求項3記載の発明によれば、主記憶
タグ手段が、自己の主メモリのアドレスが他のプロセッ
サのキャッシュメモリ上に存在するか(共有か)否か
(非共有か)の情報を記憶しているため、CPUが自己
の主メモリからの読出し/書込みを行う際に、共有であ
れば命令手段が共有バス上に読み出し命令を出してキャ
ッシュの一貫性を保証し、非共有であれば共有バス上に
は何も出さずに自己のプロセッサ内部だけで処理を行
う。読み出すアドレスをキャッシュメモリ上に持ってい
る他のプロセッサは、キャッシュ状態タグ手段が、キャ
ッシュメモリ上にあるアドレスが最新の値でまだ主メモ
リに書き戻されていない(ダーティ)か否(クリ−ン)
かの情報を記憶しているため、介入手段により前記の読
み出し命令を共有バスから拾い出してそのアドレスがダ
ーティであれば介入を行う。このように、非共有である
場合に共有バスを用いないため、共有バス上のトラフィ
ックを少なくして、キャッシュの一貫性保持が実現でき
る。
タグ手段が、自己の主メモリのアドレスが他のプロセッ
サのキャッシュメモリ上に存在するか(共有か)否か
(非共有か)の情報を記憶しているため、CPUが自己
の主メモリからの読出し/書込みを行う際に、共有であ
れば命令手段が共有バス上に読み出し命令を出してキャ
ッシュの一貫性を保証し、非共有であれば共有バス上に
は何も出さずに自己のプロセッサ内部だけで処理を行
う。読み出すアドレスをキャッシュメモリ上に持ってい
る他のプロセッサは、キャッシュ状態タグ手段が、キャ
ッシュメモリ上にあるアドレスが最新の値でまだ主メモ
リに書き戻されていない(ダーティ)か否(クリ−ン)
かの情報を記憶しているため、介入手段により前記の読
み出し命令を共有バスから拾い出してそのアドレスがダ
ーティであれば介入を行う。このように、非共有である
場合に共有バスを用いないため、共有バス上のトラフィ
ックを少なくして、キャッシュの一貫性保持が実現でき
る。
【0021】又、請求項4及び5記載の発明によれば、
主記憶タグ手段の共有状態は[H]状態と[A]状態の
2種類のみとなり。メモリ容量やコストの削減が実現可
能である上、所有権の所在が共有バス上の介入を待たず
に分かるので、共有バス上のトラフィックを低減出来る
ようになる。
主記憶タグ手段の共有状態は[H]状態と[A]状態の
2種類のみとなり。メモリ容量やコストの削減が実現可
能である上、所有権の所在が共有バス上の介入を待たず
に分かるので、共有バス上のトラフィックを低減出来る
ようになる。
【0022】
【実施例】本実施例の概要を説明すると、CPUとキャ
ッシュメモリと主メモリと共有管理部とが内部バスで結
合されたプロセッサ基板を複数共有バスで接続したマル
チプロセッサシステムであって、共有管理部は、主メモ
リのキャッシュラインごとに該キャッシュラインが他の
基板上のプロセッサのキャッシュメモリと共有している
か否かを示す共有状態を記憶し、プロセッサが要求した
アドレスが他の基板上のプロセッサのキャッシュメモリ
と共有しているか否かを判定し、共有バス上のトラフィ
ックを監視して、トラフィックが作用するエントリの状
態遷移に応じて共有状態を適宜設定し、CPUのキャッ
シュメモリのエントリごとに該キャッシュラインのCP
Uのキャッシュメモリ上の状態を記憶し、共有バス上の
アクセス要求に対して同一基板上のプロセッサのキャッ
シュメモリと一貫性保持の動作が必要か否かを判定し、
内部バス上のトラフィックを監視して、CPUのキャッ
シュメモリの状態遷移に応じて、CPUキャッシュのキ
ャッシュ状態を適宜に設定する。
ッシュメモリと主メモリと共有管理部とが内部バスで結
合されたプロセッサ基板を複数共有バスで接続したマル
チプロセッサシステムであって、共有管理部は、主メモ
リのキャッシュラインごとに該キャッシュラインが他の
基板上のプロセッサのキャッシュメモリと共有している
か否かを示す共有状態を記憶し、プロセッサが要求した
アドレスが他の基板上のプロセッサのキャッシュメモリ
と共有しているか否かを判定し、共有バス上のトラフィ
ックを監視して、トラフィックが作用するエントリの状
態遷移に応じて共有状態を適宜設定し、CPUのキャッ
シュメモリのエントリごとに該キャッシュラインのCP
Uのキャッシュメモリ上の状態を記憶し、共有バス上の
アクセス要求に対して同一基板上のプロセッサのキャッ
シュメモリと一貫性保持の動作が必要か否かを判定し、
内部バス上のトラフィックを監視して、CPUのキャッ
シュメモリの状態遷移に応じて、CPUキャッシュのキ
ャッシュ状態を適宜に設定する。
【0023】そして、CPUによって行なわれたアクセ
スは内部バスに出力され、同一基板上のメモリのアクセ
スの場合は同一基板上のメモリをアクセスする。
スは内部バスに出力され、同一基板上のメモリのアクセ
スの場合は同一基板上のメモリをアクセスする。
【0024】同時に共有管理部でアドレスを解釈し、該
当するアドレスが他の基板上のプロセッサのキャッシュ
メモリと共有されているか否かを判定する。他のキャッ
シュメモリと共有が行なわれていない場合は共有バスを
用いず、同一基板上のメモリのアクセスで要求が満たさ
れる。すなわち、この場合の、共有バスを使用すること
なくアクセス要求を満たすことができ、共有バスのトラ
フィックを減少させることができる。その間に、共有バ
スは他の基板の発行する要求の処理を行なうことができ
る。
当するアドレスが他の基板上のプロセッサのキャッシュ
メモリと共有されているか否かを判定する。他のキャッ
シュメモリと共有が行なわれていない場合は共有バスを
用いず、同一基板上のメモリのアクセスで要求が満たさ
れる。すなわち、この場合の、共有バスを使用すること
なくアクセス要求を満たすことができ、共有バスのトラ
フィックを減少させることができる。その間に、共有バ
スは他の基板の発行する要求の処理を行なうことができ
る。
【0025】同一基板上のメモリへのアクセスであって
も、共有管理部によって他の基板上のプロセッサのキャ
ッシュメモリと共有されていると判定された場合は、内
部バスと同時に外部アクセス手段を用いて共有バスにも
アクセスを行ない、他の基板上のキャッシュメモリとの
一貫性保持を行なう。
も、共有管理部によって他の基板上のプロセッサのキャ
ッシュメモリと共有されていると判定された場合は、内
部バスと同時に外部アクセス手段を用いて共有バスにも
アクセスを行ない、他の基板上のキャッシュメモリとの
一貫性保持を行なう。
【0026】要求されたアドレスが他の基板上のメモリ
である場合は、共有バスを用いて必要なメモリを持つ基
板にアクセスを伝える。要求されたアドレスのメモリを
持つ基板上は共有バス上のアドレスを判定してメモリを
アクセスし、共有バス上の要求に答える。このとき、メ
モリを持つ基板上の共有管理部は、そのアドレスが他の
基板との共有状態であることを示すように設定する。
である場合は、共有バスを用いて必要なメモリを持つ基
板にアクセスを伝える。要求されたアドレスのメモリを
持つ基板上は共有バス上のアドレスを判定してメモリを
アクセスし、共有バス上の要求に答える。このとき、メ
モリを持つ基板上の共有管理部は、そのアドレスが他の
基板との共有状態であることを示すように設定する。
【0027】共有バス上にアクセスを行なうと、他の全
ての基板の共有管理部が各自の基板上のキャッシュメモ
リに該当アドレスが存在するか否かを判定する。該当ア
ドレスが存在した場合、共有管理部は該当アドレスが共
有であることをアクセス元に応答する。もし、共有バス
上のいずれの基板も共有を応答しなかったならばアクセ
スを行なった基板の共有管理部は、該当アドレスは非共
有になったことを示すように設定する。この場合、それ
以降のアクセスは共有バスを用いずに行なうことができ
るようになる。
ての基板の共有管理部が各自の基板上のキャッシュメモ
リに該当アドレスが存在するか否かを判定する。該当ア
ドレスが存在した場合、共有管理部は該当アドレスが共
有であることをアクセス元に応答する。もし、共有バス
上のいずれの基板も共有を応答しなかったならばアクセ
スを行なった基板の共有管理部は、該当アドレスは非共
有になったことを示すように設定する。この場合、それ
以降のアクセスは共有バスを用いずに行なうことができ
るようになる。
【0028】また、共有管理部はCPUのキャッシュメ
モリの状態を推定しており、共有バス上に要求されたア
ドレスがキャッシュメモリ上で更新されていた場合や共
有バス上の要求が共有変数への書き込みであったなど一
貫性保持のための動作が必要と判定した場合のみ、その
基板の内部バスを用いてCPUのキャッシュに一貫性保
持に必要な動作を指示する。
モリの状態を推定しており、共有バス上に要求されたア
ドレスがキャッシュメモリ上で更新されていた場合や共
有バス上の要求が共有変数への書き込みであったなど一
貫性保持のための動作が必要と判定した場合のみ、その
基板の内部バスを用いてCPUのキャッシュに一貫性保
持に必要な動作を指示する。
【0029】内部バス上に発行されたCPUのアクセス
要求は以上のような過程を経て完了し、要求されたキャ
ッシュエントリが他のプロセッサのキャッシュと共有し
ているか否かの応答が示され、これに基づいてCPUの
キャッシュはそのエントリの状態を決定する。共有管理
部は以上の一連の内部バスのトラフィックを監視し、こ
れに基づいてCPUキャッシュの状態遷移を推定し、C
PUのキャッシュの状態変化を設定する。この結果、共
有管理部は共有バス上のトラフィックに対して一貫性保
持の動作が必要か否かをCPUのキャッシュに問い合わ
せずに判定する事ができ、CPUを内部バスをその処理
に使用し、共有アクセスに伴う不要な干渉を防ぐことが
できる。
要求は以上のような過程を経て完了し、要求されたキャ
ッシュエントリが他のプロセッサのキャッシュと共有し
ているか否かの応答が示され、これに基づいてCPUの
キャッシュはそのエントリの状態を決定する。共有管理
部は以上の一連の内部バスのトラフィックを監視し、こ
れに基づいてCPUキャッシュの状態遷移を推定し、C
PUのキャッシュの状態変化を設定する。この結果、共
有管理部は共有バス上のトラフィックに対して一貫性保
持の動作が必要か否かをCPUのキャッシュに問い合わ
せずに判定する事ができ、CPUを内部バスをその処理
に使用し、共有アクセスに伴う不要な干渉を防ぐことが
できる。
【0030】以下、図面に基づいてこの発明に係る分散
共有メモリ型マルチプロセッサシステムの実施例につい
て説明する。
共有メモリ型マルチプロセッサシステムの実施例につい
て説明する。
【0031】図3は本発明の第1実施例の分散共有メモ
リ型マルチプロセッサシステムの全体の構成図である。
各々のプロセッサ・ユニットはCPU1とキャッシュメ
モリ2、主メモリ3、共有管理部4を持ち、内部バス5
で結合されて、同一基板上に搭載されている。プロセッ
サ・ユニットを搭載した各基板A,B,C,Dは、バッ
クプレーン上の共有バス6によって結合され、共有管理
部4を介して他の基板上のメモリへのアクセスを行な
う。
リ型マルチプロセッサシステムの全体の構成図である。
各々のプロセッサ・ユニットはCPU1とキャッシュメ
モリ2、主メモリ3、共有管理部4を持ち、内部バス5
で結合されて、同一基板上に搭載されている。プロセッ
サ・ユニットを搭載した各基板A,B,C,Dは、バッ
クプレーン上の共有バス6によって結合され、共有管理
部4を介して他の基板上のメモリへのアクセスを行な
う。
【0032】CPU1は少なくともメモリに対する読み
出し命令と書き込み命令を各々1種類以上持ち、プログ
ラムの命令列に従ってプログラムを実行する。
出し命令と書き込み命令を各々1種類以上持ち、プログ
ラムの命令列に従ってプログラムを実行する。
【0033】図4にキャッシュメモリ2の内部構成を示
す。キャッシュメモリ2は、各基板上の主メモリの総体
から成るマルチプロセッサ全体の共有メモリのデータ・
エントリの一部分のコピーを持ち、そのコピーを記憶す
るデータ記憶部13と、そのコピーの主メモリ上でのア
ドレスを記憶するアドレスタグ部11と、そのコピーの
状態を記憶する状態タグ部12を持つ。本実施例のキャ
ッシュメモリのデータ記憶部は1メガバイトの容量を持
つが、キャッシュメモリの容量は本発明の有効性と関係
ない。
す。キャッシュメモリ2は、各基板上の主メモリの総体
から成るマルチプロセッサ全体の共有メモリのデータ・
エントリの一部分のコピーを持ち、そのコピーを記憶す
るデータ記憶部13と、そのコピーの主メモリ上でのア
ドレスを記憶するアドレスタグ部11と、そのコピーの
状態を記憶する状態タグ部12を持つ。本実施例のキャ
ッシュメモリのデータ記憶部は1メガバイトの容量を持
つが、キャッシュメモリの容量は本発明の有効性と関係
ない。
【0034】アドレスや状態の管理はキャッシュライン
と呼ばれるブロックで行う。本実施例では以下の説明で
キャッシュラインを64バイトとするが、このキャッシ
ュラインの大きさはCPUが扱うデータ長以上で有れば
本発明の有効性を失わない。本発明のキャッシュメモリ
は16キロラインのキャッシュラインを管理する。
と呼ばれるブロックで行う。本実施例では以下の説明で
キャッシュラインを64バイトとするが、このキャッシ
ュラインの大きさはCPUが扱うデータ長以上で有れば
本発明の有効性を失わない。本発明のキャッシュメモリ
は16キロラインのキャッシュラインを管理する。
【0035】なお、状態タグ部12に記憶される情報
は、他のCPUとの共有状態(共有/非共有)やCPU
によって書換が行われ最新の値を保持しているか否かの
書換状態(ダーティ/クリーン)、そのキャッシュライ
ンの値が有効であるか否かの有効状態(有効/無効)な
ど、共有メモリの一貫性保持を想定した通常のキャッシ
ュメモリの状態タグと同様の状態情報であり、キャッシ
ュメモリ2は一貫性保持を行う共有メモリのキャッシュ
メモリとして動作するようキャッシュ制御部17が制御
を行う。このようなキャッシュメモリの動作は特開平2
−253356号公報および“Cache Coherence Protoc
ols: Evaluation Using a MultiprocessorSimulation M
odel”,J.Archibald J.Bare,ACM Transaction on Com
puter Systems, Vol.4 No.4 Nov. 1986などに種々の方
法が詳細に紹介されているが、本発明の本質に関わらな
いのでここでは詳細に説明を行わない。
は、他のCPUとの共有状態(共有/非共有)やCPU
によって書換が行われ最新の値を保持しているか否かの
書換状態(ダーティ/クリーン)、そのキャッシュライ
ンの値が有効であるか否かの有効状態(有効/無効)な
ど、共有メモリの一貫性保持を想定した通常のキャッシ
ュメモリの状態タグと同様の状態情報であり、キャッシ
ュメモリ2は一貫性保持を行う共有メモリのキャッシュ
メモリとして動作するようキャッシュ制御部17が制御
を行う。このようなキャッシュメモリの動作は特開平2
−253356号公報および“Cache Coherence Protoc
ols: Evaluation Using a MultiprocessorSimulation M
odel”,J.Archibald J.Bare,ACM Transaction on Com
puter Systems, Vol.4 No.4 Nov. 1986などに種々の方
法が詳細に紹介されているが、本発明の本質に関わらな
いのでここでは詳細に説明を行わない。
【0036】本実施例のキャッシュメモリは、コピーバ
ック型のキャッシュ方式を持ち、無効化型の一貫性保持
方式をとるものとする。
ック型のキャッシュ方式を持ち、無効化型の一貫性保持
方式をとるものとする。
【0037】主メモリ3はシステムの共有メモリを各基
板に分散したもので、それぞれ異なるアドレスが割り付
けてある。すなわち、アドレスによってどの基板上の主
メモリをアクセスするかが決定される。本実施例では主
メモリの容量を64メガ・バイトとして以下の説明を行
うが、主メモリの容量の大きさは本発明の有効性に関係
ない。また、主メモリの容量は基板ごとに異なっていて
も本発明の有効性を損なわない。
板に分散したもので、それぞれ異なるアドレスが割り付
けてある。すなわち、アドレスによってどの基板上の主
メモリをアクセスするかが決定される。本実施例では主
メモリの容量を64メガ・バイトとして以下の説明を行
うが、主メモリの容量の大きさは本発明の有効性に関係
ない。また、主メモリの容量は基板ごとに異なっていて
も本発明の有効性を損なわない。
【0038】内部バス5はキャッシュミスや一貫性保持
動作の際に用いられ、以下のコマンドを持つ。データ転
送を行う際は、キャッシュライン単位に行う。
動作の際に用いられ、以下のコマンドを持つ。データ転
送を行う際は、キャッシュライン単位に行う。
【0039】[CR:](Coherent Read ) 共有読み出し。CPUのread miss によって発生し、一
貫性を保持しながらデータを読み出す。
貫性を保持しながらデータを読み出す。
【0040】[CRI:](Coherent Read and Invali
date) 排他読み出し。CPUのwrite missによって発生し、デ
ータを読み出すとともに他の基板のキャッシュメモリ上
の同じアドレスのキャッシュラインを無効化する。
date) 排他読み出し。CPUのwrite missによって発生し、デ
ータを読み出すとともに他の基板のキャッシュメモリ上
の同じアドレスのキャッシュラインを無効化する。
【0041】[CI:](Coherent Invalidate ) 無効化要求。CPUのshared write hitによって発生
し、他の基板のキャッシュメモリ上の同じアドレスのキ
ャッシュラインを無効化する。または、他のプロセッサ
からの無効化要求を共有管理部を介してCPUキャッシ
ュに伝達する場合に発生し、CPUキャッシュの該当エ
ントリを無効化する。データ転送を伴わない。
し、他の基板のキャッシュメモリ上の同じアドレスのキ
ャッシュラインを無効化する。または、他のプロセッサ
からの無効化要求を共有管理部を介してCPUキャッシ
ュに伝達する場合に発生し、CPUキャッシュの該当エ
ントリを無効化する。データ転送を伴わない。
【0042】[WR:](Normal Write) 書き戻し。キャッシュのリプレースの際にリプレース対
象のキャッシュラインが後述するダーティの状態であれ
ば発生し、データを書き込む。
象のキャッシュラインが後述するダーティの状態であれ
ば発生し、データを書き込む。
【0043】内部バス5はこれらのコマンドを伝送する
コマンド線19、通常のアドレス線20、データ線22
の他、読み出したデータが他の基板のキャッシュメモリ
と共有されているか否かを示す共有指示線18と後述す
る介入の有無を示す介入指示線21を持つ。この内部バ
スの共有指示線はその基板の共有管理部が共有している
と判断した場合に駆動する。
コマンド線19、通常のアドレス線20、データ線22
の他、読み出したデータが他の基板のキャッシュメモリ
と共有されているか否かを示す共有指示線18と後述す
る介入の有無を示す介入指示線21を持つ。この内部バ
スの共有指示線はその基板の共有管理部が共有している
と判断した場合に駆動する。
【0044】共有バス6は一貫性保持動作の際に用いら
れ、以下のコマンドを持つ。データ転送を行う際は、キ
ャッシュライン単位に行う。
れ、以下のコマンドを持つ。データ転送を行う際は、キ
ャッシュライン単位に行う。
【0045】[RS:](Read Shared ) 共有読み出し。一貫性を保持しながらデータを読み出
す。
す。
【0046】[RM:](Read Modified ) 排他読み出し。一貫性を保持しながらデータを読み出
し、他の基板のキャッシュメモリの該当エントリを無効
化する。
し、他の基板のキャッシュメモリの該当エントリを無効
化する。
【0047】[INV:](INValidate) 無効化要求。他の基板上のキャッシュメモリの該当エン
トリを無効化する。
トリを無効化する。
【0048】[WB:](Write Back) 書き戻し。プロセッサ基板間に跨る書き戻し。他の基板
に読み出され、書き換えられたデータを元の基板の主メ
モリに書き戻す際に用いる。
に読み出され、書き換えられたデータを元の基板の主メ
モリに書き戻す際に用いる。
【0049】共有バス6は、内部バス5と同様のコマン
ド線、アドレス線、データ線他に、読み出したデータが
他の基板のキャッシュメモリと共有しているか否かを示
す共有指示線と後述する介入の有無を示す介入指示線を
持つ。この共有バスの共有指示線はそれぞれの基板の共
有管理部が指定されたキャッシュラインをその基板のキ
ャッシュメモリが持っていると判断した場合に駆動し、
いずれかの基板が駆動すれば共有していると判断され
る。この様な結線論理はopen collector型出力の論理回
路をwired or接続する事で容易に実現できる。
ド線、アドレス線、データ線他に、読み出したデータが
他の基板のキャッシュメモリと共有しているか否かを示
す共有指示線と後述する介入の有無を示す介入指示線を
持つ。この共有バスの共有指示線はそれぞれの基板の共
有管理部が指定されたキャッシュラインをその基板のキ
ャッシュメモリが持っていると判断した場合に駆動し、
いずれかの基板が駆動すれば共有していると判断され
る。この様な結線論理はopen collector型出力の論理回
路をwired or接続する事で容易に実現できる。
【0050】図5は本実施例の特徴部分である共有管理
部4の内部構成図である。共有管理部は、主メモリ3の
1ラインに対して1bitの記憶容量を持ち、主メモリ
の各ラインが他の基板上のプロセッサのキャッシュメモ
リに存在しているか否かを記憶する主記憶タグメモリ2
7と、キャッシュメモリ2のタグ部分(アドレスタグ部
11、状態タグ部12)と同じ記憶容量を持ち、CPU
のキャッシュメモリの状態を推定した結果を記憶し、共
有バス上のアクセスが要求したアドレスが同一基板上の
プロセッサのキャッシュメモリ上にどのような状態にあ
るかを記憶するキャッシュアドレスタグメモリ23、キ
ャッシュ状態タグメモリ24とを有する。そして、内部
バス5上のアクセスを制御する内部アクセス制御部29
と、共有バス6上のアクセスを制御する外部アクセス制
御部28と、主記憶タグメモリ27の読み出し・更新を
制御する主記憶タグメモリ制御部26と、キャッシュ状
態タグメモリ24の読み出し・更新を制御するキャッシ
ュ状態タグメモリ制御部25とが設けられている。
部4の内部構成図である。共有管理部は、主メモリ3の
1ラインに対して1bitの記憶容量を持ち、主メモリ
の各ラインが他の基板上のプロセッサのキャッシュメモ
リに存在しているか否かを記憶する主記憶タグメモリ2
7と、キャッシュメモリ2のタグ部分(アドレスタグ部
11、状態タグ部12)と同じ記憶容量を持ち、CPU
のキャッシュメモリの状態を推定した結果を記憶し、共
有バス上のアクセスが要求したアドレスが同一基板上の
プロセッサのキャッシュメモリ上にどのような状態にあ
るかを記憶するキャッシュアドレスタグメモリ23、キ
ャッシュ状態タグメモリ24とを有する。そして、内部
バス5上のアクセスを制御する内部アクセス制御部29
と、共有バス6上のアクセスを制御する外部アクセス制
御部28と、主記憶タグメモリ27の読み出し・更新を
制御する主記憶タグメモリ制御部26と、キャッシュ状
態タグメモリ24の読み出し・更新を制御するキャッシ
ュ状態タグメモリ制御部25とが設けられている。
【0051】本実施例の主記憶タグメモリ27は1メガ
bitの容量を持ち、各ビットは対応する同一基板上の
主メモリのキャッシュラインが他のプロセッサのキャッ
シュメモリに存在している場合(状態G(Grobal))に
値1をとり、同じ基板上のキャッシュメモリにのみコピ
ーがあるかどの基板のキャッシュメモリにもコピーが存
在しない場合(状態P(Private ))に値0をとる。
bitの容量を持ち、各ビットは対応する同一基板上の
主メモリのキャッシュラインが他のプロセッサのキャッ
シュメモリに存在している場合(状態G(Grobal))に
値1をとり、同じ基板上のキャッシュメモリにのみコピ
ーがあるかどの基板のキャッシュメモリにもコピーが存
在しない場合(状態P(Private ))に値0をとる。
【0052】主記憶タグメモリ27の状態は、主記憶タ
グメモリ制御部26の制御に従い、以下のように遷移す
る。
グメモリ制御部26の制御に従い、以下のように遷移す
る。
【0053】(1)初期状態はP。
【0054】(2)対応するキャッシュラインのエント
リに対して他のCPUから共有バスを介してRSまたは
RMのアクセス要求があったとき状態Gに遷移する。
リに対して他のCPUから共有バスを介してRSまたは
RMのアクセス要求があったとき状態Gに遷移する。
【0055】(3)対応するキャッシュラインのエント
リに対して共有バスのINVまたはRMを自分のCPU
から発行したとき状態Pに遷移する。
リに対して共有バスのINVまたはRMを自分のCPU
から発行したとき状態Pに遷移する。
【0056】本実施例のキャッシュアドレスタグメモリ
23、キャッシュ状態タグメモリ24は、キャッシュメ
モリのタグ部と同じ、16キロラインのキャッシュライ
ンの情報を管理する。管理する情報は、キャッシュメモ
リ上のキャッシュラインに対して、各々、主メモリ上で
のアドレスと、システム中の状態である。キャッシュラ
インの状態は以下の5状態のいずれかである。
23、キャッシュ状態タグメモリ24は、キャッシュメ
モリのタグ部と同じ、16キロラインのキャッシュライ
ンの情報を管理する。管理する情報は、キャッシュメモ
リ上のキャッシュラインに対して、各々、主メモリ上で
のアドレスと、システム中の状態である。キャッシュラ
インの状態は以下の5状態のいずれかである。
【0057】なお、以下の説明でダーティとはキャッシ
ュラインが更新されており、かつ更新されたデータを主
メモリへまだ書き戻していない状態、つまり主メモリへ
の書き戻し義務を負っている状態で、クリーンとはその
ような義務を負わない状態である。キャッシュラインが
共有されている場合、書き戻し義務を負うのはそのうち
の1つのキャッシュのみで良いので、ダーティなライン
の共有を要求したキャッシュは、共有クリーン状態に設
定する。
ュラインが更新されており、かつ更新されたデータを主
メモリへまだ書き戻していない状態、つまり主メモリへ
の書き戻し義務を負っている状態で、クリーンとはその
ような義務を負わない状態である。キャッシュラインが
共有されている場合、書き戻し義務を負うのはそのうち
の1つのキャッシュのみで良いので、ダーティなライン
の共有を要求したキャッシュは、共有クリーン状態に設
定する。
【0058】[M]排他ダーティ。他のキャッシュにコ
ピーは存在しない、このラインのデータは変更されてお
り、メモリへ書き戻す必要がある。
ピーは存在しない、このラインのデータは変更されてお
り、メモリへ書き戻す必要がある。
【0059】[O]共有ダーティ。他のキャッシュにコ
ピーが存在する可能性がある。このラインのデータは変
更されており、メモリへ書き戻す必要がある。
ピーが存在する可能性がある。このラインのデータは変
更されており、メモリへ書き戻す必要がある。
【0060】[E]排他クリーン。他のキャッシュにコ
ピーは存在しない。このラインのデータは変更されてい
ないので、メモリへ書き戻す必要はない。
ピーは存在しない。このラインのデータは変更されてい
ないので、メモリへ書き戻す必要はない。
【0061】[S]共有クリーン。他のキャッシュにコ
ピーが存在する可能性がある。このラインのデータは変
更されていないので、メモリへ書き戻す必要はない。
ピーが存在する可能性がある。このラインのデータは変
更されていないので、メモリへ書き戻す必要はない。
【0062】(以上の4つの状態では、キャッシュライ
ンは有効である。) [I]無効。このキャッシュラインは有効ではない。
ンは有効である。) [I]無効。このキャッシュラインは有効ではない。
【0063】キャッシュメモリ2の状態タグ部12の状
態はキャッシュ制御部17の制御に従い、CPUからの
命令、及び、共有管理部が内部バスに発行するコマンド
に基づいて、図6の表にまとめた通り以下のように状態
を遷移する。
態はキャッシュ制御部17の制御に従い、CPUからの
命令、及び、共有管理部が内部バスに発行するコマンド
に基づいて、図6の表にまとめた通り以下のように状態
を遷移する。
【0064】(1)初期状態はI。
【0065】(2)状態Iから自分のCPUが読み出し
を行い内部バスの共有指示線が他のCPUと共有してい
る事を示したとき、もしくは、状態Eから他のCPUが
共有バスを介して共有読み出しを行ったときに、状態S
に遷移する。
を行い内部バスの共有指示線が他のCPUと共有してい
る事を示したとき、もしくは、状態Eから他のCPUが
共有バスを介して共有読み出しを行ったときに、状態S
に遷移する。
【0066】(3)状態Iから自分のCPUが読み出し
を行い内部バスの共有指示線が他のCPUと共有しない
事を示したとき状態Eに遷移する。
を行い内部バスの共有指示線が他のCPUと共有しない
事を示したとき状態Eに遷移する。
【0067】(4)自分のCPUが書き込みを行ったと
き、状態Mに遷移する。
き、状態Mに遷移する。
【0068】(5)状態Mから他のCPUが共有バスを
介して共有読み出しを行ったとき状態Oに遷移する。
介して共有読み出しを行ったとき状態Oに遷移する。
【0069】(6)他のCPUが共有バスを介して排他
読み出し、または、無効化要求を行ったとき状態Iに遷
移する。
読み出し、または、無効化要求を行ったとき状態Iに遷
移する。
【0070】また、状態EまたはSからキャッシュメモ
リのリプレースが行われて、状態Iに遷移することがあ
る。
リのリプレースが行われて、状態Iに遷移することがあ
る。
【0071】一方、共有管理部4のキャッシュ状態タグ
メモリ24の状態は、キャッシュ状態タグメモリ制御部
25の制御に従い、キャッシュ制御部17が上記のよう
に状態遷移を行うと共に内部バスに発行するコマンド、
及び、他の基板の共有管理部が共有バスに発行するコマ
ンドに基づいて、以下のように状態を遷移する。
メモリ24の状態は、キャッシュ状態タグメモリ制御部
25の制御に従い、キャッシュ制御部17が上記のよう
に状態遷移を行うと共に内部バスに発行するコマンド、
及び、他の基板の共有管理部が共有バスに発行するコマ
ンドに基づいて、以下のように状態を遷移する。
【0072】まず、自分の基板上の主メモリに対するア
クセスの場合は図7の表にまとめた通り以下のように状
態を遷移する。
クセスの場合は図7の表にまとめた通り以下のように状
態を遷移する。
【0073】(1)初期状態はI。
【0074】(2)状態Iで主記憶タグがGの場合に、
自分のCPUが内部バスを介して共有読み出しを行い共
有バスの共有指示線が駆動されているとき、もしくは、
状態Eから他のCPUが共有バスを介して共有読み出し
を行いキャッシュからの介入が無かったとき、状態Sに
遷移する。
自分のCPUが内部バスを介して共有読み出しを行い共
有バスの共有指示線が駆動されているとき、もしくは、
状態Eから他のCPUが共有バスを介して共有読み出し
を行いキャッシュからの介入が無かったとき、状態Sに
遷移する。
【0075】ここで、介入とは、主メモリから値を読み
出すとき、最新の値でまだ主メモリに書き戻されていな
いものがキャッシュメモリに存在する場合に、キャッシ
ュメモリが、バス上の読み出しのコマンドに対して、主
メモリからの読み出しを中止するよう介入指示線を駆動
して、自分の持っている最新の値を送る動作のことを言
う。この介入は、読み出しが行われる主メモリと最新の
値を持っているキャッシュメモリが同じ基板上にあると
きには、内部バスを介して行われ、両者が異なる基板上
にあるときには、共有バスを介して行われる。
出すとき、最新の値でまだ主メモリに書き戻されていな
いものがキャッシュメモリに存在する場合に、キャッシ
ュメモリが、バス上の読み出しのコマンドに対して、主
メモリからの読み出しを中止するよう介入指示線を駆動
して、自分の持っている最新の値を送る動作のことを言
う。この介入は、読み出しが行われる主メモリと最新の
値を持っているキャッシュメモリが同じ基板上にあると
きには、内部バスを介して行われ、両者が異なる基板上
にあるときには、共有バスを介して行われる。
【0076】(3)状態Iから自分のCPUが内部バス
を介して共有読み出しを行い共有バスの共有指示線が駆
動されていないとき、状態Eに遷移する。但し、共有管
理部の状態タグがSでも、キャッシュメモリの状態タグ
がIに遷移してしまっている(キャッシュのリプレース
により)ことがあるため、状態Sから同様に状態Eに遷
移することがある。
を介して共有読み出しを行い共有バスの共有指示線が駆
動されていないとき、状態Eに遷移する。但し、共有管
理部の状態タグがSでも、キャッシュメモリの状態タグ
がIに遷移してしまっている(キャッシュのリプレース
により)ことがあるため、状態Sから同様に状態Eに遷
移することがある。
【0077】(4)自分のCPUが排他読み出しあるい
は無効化要求を行い他の基板上のキャッシュを無効化し
たとき、状態Mに遷移する。
は無効化要求を行い他の基板上のキャッシュを無効化し
たとき、状態Mに遷移する。
【0078】(5)状態Mから他のCPUが共有バスを
介して共有読み出しを行ったとき、状態Oに遷移する。
但し、共有管理部の状態タグがEでも、キャッシュメモ
リの状態タグがMに遷移してしまっている(書き込みヒ
ットにより)ことがあるため、状態Eから他のCPUが
共有バスを介して共有読み出しを行いキャッシュからの
介入が有ったとき(ここで実はMに遷移していたことが
わかる)も、状態Oに遷移する。
介して共有読み出しを行ったとき、状態Oに遷移する。
但し、共有管理部の状態タグがEでも、キャッシュメモ
リの状態タグがMに遷移してしまっている(書き込みヒ
ットにより)ことがあるため、状態Eから他のCPUが
共有バスを介して共有読み出しを行いキャッシュからの
介入が有ったとき(ここで実はMに遷移していたことが
わかる)も、状態Oに遷移する。
【0079】(6)他のCPUが共有バスを介して排他
読み出し、または、無効化要求を行ったとき、状態Iに
遷移する。リプレースが行われた時も状態Iに遷移す
る。
読み出し、または、無効化要求を行ったとき、状態Iに
遷移する。リプレースが行われた時も状態Iに遷移す
る。
【0080】一方、他の基板上の主メモリに対するアク
セスの場合は図8の表にまとめた通り以下のように状態
を遷移する。
セスの場合は図8の表にまとめた通り以下のように状態
を遷移する。
【0081】(1)初期状態はI。
【0082】(2)状態Iから自分のCPUが内部バス
を介して共有読み出しを行い共有バスの共有指示線が駆
動されているとき、もしくは、状態Eから他のCPUが
共有バスを介して共有読み出しを行ったとき、状態Sに
遷移する。但し、共有管理部の状態タグがEでも、キャ
ッシュメモリの状態タグがIに遷移してしまっている
(キャッシュのリプレースにより)ことがあるため、状
態Eから状態Iと同様に状態Sに遷移することがある。
を介して共有読み出しを行い共有バスの共有指示線が駆
動されているとき、もしくは、状態Eから他のCPUが
共有バスを介して共有読み出しを行ったとき、状態Sに
遷移する。但し、共有管理部の状態タグがEでも、キャ
ッシュメモリの状態タグがIに遷移してしまっている
(キャッシュのリプレースにより)ことがあるため、状
態Eから状態Iと同様に状態Sに遷移することがある。
【0083】(3)状態Iから自分のCPUが内部バス
を介して共有読み出しを行い共有バスの共有指示線が駆
動されていないとき、状態Eに遷移する。但し、共有管
理部の状態タグがSでも、キャッシュメモリの状態タグ
がIに遷移してしまっている(キャッシュのリプレース
により)ことがあるため、状態Sから状態Iと同様に状
態Eに遷移することがある。
を介して共有読み出しを行い共有バスの共有指示線が駆
動されていないとき、状態Eに遷移する。但し、共有管
理部の状態タグがSでも、キャッシュメモリの状態タグ
がIに遷移してしまっている(キャッシュのリプレース
により)ことがあるため、状態Sから状態Iと同様に状
態Eに遷移することがある。
【0084】(4)自分のCPUが排他読み出しあるい
は無効化要求を行い他の基板上のキャッシュを無効化し
たとき、状態Mに遷移する。
は無効化要求を行い他の基板上のキャッシュを無効化し
たとき、状態Mに遷移する。
【0085】(5)状態Mから他のCPUが共有バスを
介して共有読み出しを行ったとき、状態Oに遷移する。
介して共有読み出しを行ったとき、状態Oに遷移する。
【0086】(6)他のCPUが共有バスを介して排他
読み出し、または、無効化要求を行ったとき、状態Iに
遷移する。リプレースが行われた時も状態Iに遷移す
る。
読み出し、または、無効化要求を行ったとき、状態Iに
遷移する。リプレースが行われた時も状態Iに遷移す
る。
【0087】このように図6〜図8にまとめた通り、キ
ャッシュメモリと共有管理部が状態遷移とバス上に発行
するコマンドを制御することにより、一部の例外を除い
てキャッシュメモリの状態タグ部12と共有管理部のキ
ャッシュ状態タグメモリ24の内部が一致するようにな
る。一致しない場合も、上記の但し書きで説明したよう
に制御すればエラーは起こらない。さらに共有指示線の
駆動に工夫をすることによりエラーを防いでいるが、こ
れについては後述する。
ャッシュメモリと共有管理部が状態遷移とバス上に発行
するコマンドを制御することにより、一部の例外を除い
てキャッシュメモリの状態タグ部12と共有管理部のキ
ャッシュ状態タグメモリ24の内部が一致するようにな
る。一致しない場合も、上記の但し書きで説明したよう
に制御すればエラーは起こらない。さらに共有指示線の
駆動に工夫をすることによりエラーを防いでいるが、こ
れについては後述する。
【0088】以下、この第1実施例の共有管理部の動作
について説明する。
について説明する。
【0089】図9,10はCPUの読み出し命令に対す
る本実施例のキャッシュ制御部17及び共有管理部4の
動作を示したフローチャートである。CPUが読み出し
命令を実行し、キャッシュメモリにミスした場合(S1
No)、内部バス上に共有読み出しCRを発行する(S
2)。要求されたアドレスが同一基板上の主メモリのア
ドレスであれば(S3Yes)、同一基板上の主メモリ
が応答する(S4)。同時に共有管理部4の内部アクセ
ス制御部29が内部バス上の要求を解釈し、主記憶タグ
メモリ27を検索し(S4)、要求された主メモリのキ
ャッシュラインが共有されているか否かを判定する(S
5)。共有が行われていなければ、共有管理部は動作を
終了し、主メモリのみにアクセスで内部バスの共有読み
出しCRは終了する(S6,S7)。これは同一基板上
の主メモリ上に割り当てられた局所変数のアクセスに相
当し、プログラム実行時のアクセスのほとんどはこの形
態のアクセスが行われる。このとき、共有バスを使用せ
ずにアクセスが行われるので、共有バスのトラフィック
を軽減する事ができる。また、この間に共有バスは他の
基板のアクセス要求を実行できるので他の基板のプロセ
ッサの実行に干渉する可能性が軽減される。内部バスの
共有指示線は非共有を示す。
る本実施例のキャッシュ制御部17及び共有管理部4の
動作を示したフローチャートである。CPUが読み出し
命令を実行し、キャッシュメモリにミスした場合(S1
No)、内部バス上に共有読み出しCRを発行する(S
2)。要求されたアドレスが同一基板上の主メモリのア
ドレスであれば(S3Yes)、同一基板上の主メモリ
が応答する(S4)。同時に共有管理部4の内部アクセ
ス制御部29が内部バス上の要求を解釈し、主記憶タグ
メモリ27を検索し(S4)、要求された主メモリのキ
ャッシュラインが共有されているか否かを判定する(S
5)。共有が行われていなければ、共有管理部は動作を
終了し、主メモリのみにアクセスで内部バスの共有読み
出しCRは終了する(S6,S7)。これは同一基板上
の主メモリ上に割り当てられた局所変数のアクセスに相
当し、プログラム実行時のアクセスのほとんどはこの形
態のアクセスが行われる。このとき、共有バスを使用せ
ずにアクセスが行われるので、共有バスのトラフィック
を軽減する事ができる。また、この間に共有バスは他の
基板のアクセス要求を実行できるので他の基板のプロセ
ッサの実行に干渉する可能性が軽減される。内部バスの
共有指示線は非共有を示す。
【0090】主記憶タグメモリの検索の結果、要求され
たキャッシュラインが他の基板上のCPUキャッシュと
共有していると判断された場合は(S5Yes)、共有
管理部4の外部アクセス制御部28を通して共有バス上
に共有読み出しRSを発行し、他の基板上のキャッシュ
メモリと一貫性保持のための動作を行う。他の基板上の
キャッシュメモリに最新の値(ダーティなライン)が存
在した場合は、その値を持つ基板の共有管理部が介入を
行い、最新の値を供給する。その基板のキャッシュメモ
リにも最新の値が存在しなければ、そのキャッシュライ
ンの値は主メモリ上に存在するので、主メモリから供給
された値をキャッシュメモリに供給する(以上S8)。
このとき、主記憶タグメモリの状態は、共有バス上の共
有指示線の値に応じて設定し直される(S9)。これに
より、前回のアクセスから今回のアクセスの間に共有が
解除されていれば検出する事ができる。内部バスの共有
指示線は共有バスの共有指示線の状態を伝達する(S1
0)。
たキャッシュラインが他の基板上のCPUキャッシュと
共有していると判断された場合は(S5Yes)、共有
管理部4の外部アクセス制御部28を通して共有バス上
に共有読み出しRSを発行し、他の基板上のキャッシュ
メモリと一貫性保持のための動作を行う。他の基板上の
キャッシュメモリに最新の値(ダーティなライン)が存
在した場合は、その値を持つ基板の共有管理部が介入を
行い、最新の値を供給する。その基板のキャッシュメモ
リにも最新の値が存在しなければ、そのキャッシュライ
ンの値は主メモリ上に存在するので、主メモリから供給
された値をキャッシュメモリに供給する(以上S8)。
このとき、主記憶タグメモリの状態は、共有バス上の共
有指示線の値に応じて設定し直される(S9)。これに
より、前回のアクセスから今回のアクセスの間に共有が
解除されていれば検出する事ができる。内部バスの共有
指示線は共有バスの共有指示線の状態を伝達する(S1
0)。
【0091】内部バス上に出された共有読み出しのアド
レスが他の基板上の主メモリのアドレスであれば(S3
No)、共有管理部4は共有バス上に共有読み出しRS
を発行し、一貫性保持のための動作を行う(S11)。
要求されたアドレスの主メモリを持つ基板はこの共有読
み出しRSに応答し、共有管理部の主記憶タグメモリの
状態をGに設定し、共有が開始された事を記憶する。内
部バスの共有指示線は共有バスの共有指示線が共有/非
共有のどちらであっても共有を示す(S12)。
レスが他の基板上の主メモリのアドレスであれば(S3
No)、共有管理部4は共有バス上に共有読み出しRS
を発行し、一貫性保持のための動作を行う(S11)。
要求されたアドレスの主メモリを持つ基板はこの共有読
み出しRSに応答し、共有管理部の主記憶タグメモリの
状態をGに設定し、共有が開始された事を記憶する。内
部バスの共有指示線は共有バスの共有指示線が共有/非
共有のどちらであっても共有を示す(S12)。
【0092】以上のように読み出されたキャッシュライ
ンはキャッシュメモリに記憶され、キャッシュラインの
状態は、内部バスの共有指示線が共有を示している場合
は状態Sに(S15)、非共有を示している場合は状態
Eに(S14)設定される。共有管理部のキャッシュ状
態タグは共有バスの共有指示線の示す値によって状態を
SまたはEに設定する。
ンはキャッシュメモリに記憶され、キャッシュラインの
状態は、内部バスの共有指示線が共有を示している場合
は状態Sに(S15)、非共有を示している場合は状態
Eに(S14)設定される。共有管理部のキャッシュ状
態タグは共有バスの共有指示線の示す値によって状態を
SまたはEに設定する。
【0093】ここで注意したいのは、S10とS12の
違いである。これが前述したエラーを防ぐための工夫
で、他の基板上の主メモリを読み出して共有バスの共有
指示線が非共有を示した場合に、共有管理部のキャッシ
ュ状態タグは状態Eに設定されるが、共有管理部は、共
有バスの共有指示線が非共有を示しているにも関わらず
内部バスの共有指示線を共有にするのでCPUのキャッ
シュは状態Sに設定される。もし、CPUキャッシュの
状態をEと設定してしまうとこのエントリに書き込みが
行われてもCPUは無効化要求を出さずに状態Mに遷移
してしまい、共有管理部のキャッシュ状態タグが書換を
認識できず、それ以降の共有バス上の読み出し要求に正
しい応答ができなくなってしまう。本実施例では、わざ
とCPUキャッシュの状態と共有管理部のキャッシュ状
態タグの状態を違える事でこの問題を回避する。CPU
キャッシュの状態がSであれば、CPUキャッシュは書
き込みの際に無効化要求を内部バスに発行するので共有
管理部は書き込みを認識する事ができる。この場合、キ
ャッシュ状態タグが状態Eである事から内部バス上の無
効化要求を共有バス上に伝達する必要がない事が判り、
共有バス上のトラフィックを増加させる事にはならな
い。
違いである。これが前述したエラーを防ぐための工夫
で、他の基板上の主メモリを読み出して共有バスの共有
指示線が非共有を示した場合に、共有管理部のキャッシ
ュ状態タグは状態Eに設定されるが、共有管理部は、共
有バスの共有指示線が非共有を示しているにも関わらず
内部バスの共有指示線を共有にするのでCPUのキャッ
シュは状態Sに設定される。もし、CPUキャッシュの
状態をEと設定してしまうとこのエントリに書き込みが
行われてもCPUは無効化要求を出さずに状態Mに遷移
してしまい、共有管理部のキャッシュ状態タグが書換を
認識できず、それ以降の共有バス上の読み出し要求に正
しい応答ができなくなってしまう。本実施例では、わざ
とCPUキャッシュの状態と共有管理部のキャッシュ状
態タグの状態を違える事でこの問題を回避する。CPU
キャッシュの状態がSであれば、CPUキャッシュは書
き込みの際に無効化要求を内部バスに発行するので共有
管理部は書き込みを認識する事ができる。この場合、キ
ャッシュ状態タグが状態Eである事から内部バス上の無
効化要求を共有バス上に伝達する必要がない事が判り、
共有バス上のトラフィックを増加させる事にはならな
い。
【0094】図11は、CPUの書き込み命令に対する
本実施例のキャッシュ制御部17及び共有管理部4の動
作を示したフローチャートである。CPUが書き込み命
令を実行し、キャッシュメモリにミスした場合(S21
ミス)、内部バス上に排他読み出しCRIを発行する
(S32)。要求されたアドレスが同一基板上の主メモ
リのアドレスであれば(S33Yes)、同一基板上の
主メモリが応答する。同時に共有管理部の内部アクセス
制御部29が内部バス上の要求を解釈し、主記憶タグメ
モリ27を検索し(S34)、要求された主メモリのキ
ャッシュラインが共有されているか否かを判定する(S
36)。共有が行われていなければ、共有管理部は動作
を終了し、主メモリのみのアクセスで内部バスの排他読
み出しCRIは終了する(S39)。これは同一基板上
の主メモリ上に割り当てられた局所変数への書き込みに
相当し、プログラム実行時のアクセスのほとんどはこの
形態のアクセスが行われる。このとき、共有バスを使用
せずにアクセスが行われるので、共有バスのトラフィッ
クを軽減する事ができる。また、この間に共有バスは他
の基板のアクセス要求を実行できるので他の基板のプロ
セッサの実行に干渉する可能性が軽減される。
本実施例のキャッシュ制御部17及び共有管理部4の動
作を示したフローチャートである。CPUが書き込み命
令を実行し、キャッシュメモリにミスした場合(S21
ミス)、内部バス上に排他読み出しCRIを発行する
(S32)。要求されたアドレスが同一基板上の主メモ
リのアドレスであれば(S33Yes)、同一基板上の
主メモリが応答する。同時に共有管理部の内部アクセス
制御部29が内部バス上の要求を解釈し、主記憶タグメ
モリ27を検索し(S34)、要求された主メモリのキ
ャッシュラインが共有されているか否かを判定する(S
36)。共有が行われていなければ、共有管理部は動作
を終了し、主メモリのみのアクセスで内部バスの排他読
み出しCRIは終了する(S39)。これは同一基板上
の主メモリ上に割り当てられた局所変数への書き込みに
相当し、プログラム実行時のアクセスのほとんどはこの
形態のアクセスが行われる。このとき、共有バスを使用
せずにアクセスが行われるので、共有バスのトラフィッ
クを軽減する事ができる。また、この間に共有バスは他
の基板のアクセス要求を実行できるので他の基板のプロ
セッサの実行に干渉する可能性が軽減される。
【0095】主記憶タグメモリの検索の結果、要求され
たキャッシュラインが他の基板上のCPUキャッシュと
共有していると判断された場合は(S36Yes)、共
有管理部の外部アクセス制御部28を通して共有バス上
に排他読み出しRMを発行し、他の基板上のキャッシュ
メモリと一貫性保持のための動作を行う(S37)。他
の基板上のキャッシュメモリに最新の値が存在した場合
は、その値を持つ基板の共有管理部が介入を行い、最新
の値を供給する。どの基板のキャッシュメモリにも最新
の値が存在しなければ、そのキャッシュラインの値は主
メモリ上に存在するので、主メモリから共有された値を
キャッシュメモリに共有する。このとき、他の基板上の
キャッシュメモリは無効化が行われ排他読み出しRMを
発行したキャッシュメモリのみが排他的にコピーを持つ
事になる。よって、主記憶タグメモリは状態Pに設定さ
れる(S38)。
たキャッシュラインが他の基板上のCPUキャッシュと
共有していると判断された場合は(S36Yes)、共
有管理部の外部アクセス制御部28を通して共有バス上
に排他読み出しRMを発行し、他の基板上のキャッシュ
メモリと一貫性保持のための動作を行う(S37)。他
の基板上のキャッシュメモリに最新の値が存在した場合
は、その値を持つ基板の共有管理部が介入を行い、最新
の値を供給する。どの基板のキャッシュメモリにも最新
の値が存在しなければ、そのキャッシュラインの値は主
メモリ上に存在するので、主メモリから共有された値を
キャッシュメモリに共有する。このとき、他の基板上の
キャッシュメモリは無効化が行われ排他読み出しRMを
発行したキャッシュメモリのみが排他的にコピーを持つ
事になる。よって、主記憶タグメモリは状態Pに設定さ
れる(S38)。
【0096】内部バス上に出された排他読み出しCRI
のアドレスが他の基板上の主メモリのアドレスであれば
(S33No)、共有管理機構は共有バス上に排他読み
出しRMを発行し、一貫性保持のための動作を行う(S
35)。要求されたアドレスの主メモリを持つ基板はこ
の排他読み出しRMに応答し、共有管理部の主記憶タグ
メモリの状態をGに設定し、共有が開始された事を記憶
する。
のアドレスが他の基板上の主メモリのアドレスであれば
(S33No)、共有管理機構は共有バス上に排他読み
出しRMを発行し、一貫性保持のための動作を行う(S
35)。要求されたアドレスの主メモリを持つ基板はこ
の排他読み出しRMに応答し、共有管理部の主記憶タグ
メモリの状態をGに設定し、共有が開始された事を記憶
する。
【0097】以上のように読み出されたキャッシュライ
ンはキャッシュメモリに記憶され、CPUの書き込み命
令によって更新される。キャッシュラインの状態はMに
設定され(S40)、これに応じて共有管理部のキャッ
シュ状態タグも状態Mに設定される。
ンはキャッシュメモリに記憶され、CPUの書き込み命
令によって更新される。キャッシュラインの状態はMに
設定され(S40)、これに応じて共有管理部のキャッ
シュ状態タグも状態Mに設定される。
【0098】CPUが書き込み命令を実行し、キャッシ
ュメモリにヒットしてもキャッシュラインの状態が共有
(状態タグ部12の状態がSまたはO)であれば(S2
1共有ヒット)、他のキャッシュメモリ上のコピーを無
効化する必要があり、内部バス上に無効化要求CIを発
行する(S22)。共有管理部の内部アクセス制御部が
内部バス上の要求を解釈し、要求されたアドレスが同一
基板上の主メモリのアドレスであれば(S23Ye
s)、共有管理部の共有バス制御部を通して共有バス上
に無効化要求INVを発行し、他の基板上のキャッシュ
メモリのエントリを無効化する(S26)。そして、主
記憶タグメモリを状態Pに設定する(S27)。
ュメモリにヒットしてもキャッシュラインの状態が共有
(状態タグ部12の状態がSまたはO)であれば(S2
1共有ヒット)、他のキャッシュメモリ上のコピーを無
効化する必要があり、内部バス上に無効化要求CIを発
行する(S22)。共有管理部の内部アクセス制御部が
内部バス上の要求を解釈し、要求されたアドレスが同一
基板上の主メモリのアドレスであれば(S23Ye
s)、共有管理部の共有バス制御部を通して共有バス上
に無効化要求INVを発行し、他の基板上のキャッシュ
メモリのエントリを無効化する(S26)。そして、主
記憶タグメモリを状態Pに設定する(S27)。
【0099】内部バス上に出された無効化要求CIのア
ドレスが他の基板上の主メモリのアドレスであれば(S
23No)、共有管理部はキャッシュ状態タグメモリ2
4を調べて(S28)状態が共有(SまたはO)であれ
ば(S29Yes)共有バス上に無効化要求INVを発
行し、他の基板上のキャッシュメモリのエントリを無効
化する(S30)。要求元のエントリは無効化されずに
残るため、主メモリをもつ基板上の共有管理部の主記憶
タグメモリの状態はGのままに残し、共有が継続してい
る事を記憶する。尚、S28で状態がEであれば(S2
9No)、内部バス上の無効化要求CIはCPUキャッ
シュで書き込みヒットが起こったことを示すものである
(前述した工夫)から、共有バスにコマンドを伝達する
ことはしない。
ドレスが他の基板上の主メモリのアドレスであれば(S
23No)、共有管理部はキャッシュ状態タグメモリ2
4を調べて(S28)状態が共有(SまたはO)であれ
ば(S29Yes)共有バス上に無効化要求INVを発
行し、他の基板上のキャッシュメモリのエントリを無効
化する(S30)。要求元のエントリは無効化されずに
残るため、主メモリをもつ基板上の共有管理部の主記憶
タグメモリの状態はGのままに残し、共有が継続してい
る事を記憶する。尚、S28で状態がEであれば(S2
9No)、内部バス上の無効化要求CIはCPUキャッ
シュで書き込みヒットが起こったことを示すものである
(前述した工夫)から、共有バスにコマンドを伝達する
ことはしない。
【0100】以上のように無効化の行われたキャッシュ
ラインはCPUの書き込み命令によって更新され、キャ
ッシュラインの状態はMに設定される(S31)。これ
に応じて共有管理部のキャッシュ状態タグも状態Mに設
定される。
ラインはCPUの書き込み命令によって更新され、キャ
ッシュラインの状態はMに設定される(S31)。これ
に応じて共有管理部のキャッシュ状態タグも状態Mに設
定される。
【0101】さて、全ての基板の共有管理部4の外部ア
クセス制御部28は共有バス上のトラフィックを監視し
ており、共有バス上のコマンドと対応するキャッシュ状
態タグの状態によって以下のような一貫性保持動作を行
う。
クセス制御部28は共有バス上のトラフィックを監視し
ており、共有バス上のコマンドと対応するキャッシュ状
態タグの状態によって以下のような一貫性保持動作を行
う。
【0102】図12は共有バス6上の共有読み出しRS
に対する共有管理部4及びキャッシュ制御部17の動作
を示すフローチャートである。指定されたアドレスの主
メモリを持つ基板の場合は(S41Yes)、主メモリ
をアクセスするために内部バスに共有読み出しCRを発
行する(S42)。この際に、キャッシュメモリの対応
する状態タグ部12の状態がIまたはSであればCPU
のキャッシュメモリから最新の値を読み出す必要も状態
遷移を行う必要もないので、内部バスに共有読み出しC
Rを発行せず、単に主メモリの読み出しだけを行っても
良い。そして、主メモリの読み出しを行うが、キャッシ
ュメモリの状態がMまたはOであれば介入が行われる
(S43)。CPUキャッシュメモリは状態Eで書き込
みを行なうと内部バスにコマンドを発行することなく状
態Mに遷移するので、共有管理部はこの遷移を認識でき
ない。よって、キャッシュ状態タグの状態がEであって
も、CPUのキャッシュメモリの状態はMである可能性
が残り、内部バスに発行するコマンドは共有読み出しC
Rでなければならない。
に対する共有管理部4及びキャッシュ制御部17の動作
を示すフローチャートである。指定されたアドレスの主
メモリを持つ基板の場合は(S41Yes)、主メモリ
をアクセスするために内部バスに共有読み出しCRを発
行する(S42)。この際に、キャッシュメモリの対応
する状態タグ部12の状態がIまたはSであればCPU
のキャッシュメモリから最新の値を読み出す必要も状態
遷移を行う必要もないので、内部バスに共有読み出しC
Rを発行せず、単に主メモリの読み出しだけを行っても
良い。そして、主メモリの読み出しを行うが、キャッシ
ュメモリの状態がMまたはOであれば介入が行われる
(S43)。CPUキャッシュメモリは状態Eで書き込
みを行なうと内部バスにコマンドを発行することなく状
態Mに遷移するので、共有管理部はこの遷移を認識でき
ない。よって、キャッシュ状態タグの状態がEであって
も、CPUのキャッシュメモリの状態はMである可能性
が残り、内部バスに発行するコマンドは共有読み出しC
Rでなければならない。
【0103】共有読み出しCRの結果、CPUキャッシ
ュメモリの状態タグ部12の状態は、キャッシュ制御部
17により MまたはOならばOに EまたはSならばSに IならばIに それぞれ遷移する(S44)。これに合わせて共有管理
部のキャッシュ状態タグメモリ24の状態は、 MまたはO、またはEでキャッシュからの介入が起これ
ば、Oに S、またはEでキャッシュからの介入が起こらなけれ
ば、Sに IならばIに それぞれ遷移する(S45)。また、共有管理部の主記
憶タグメモリはGに設定される(S46)。
ュメモリの状態タグ部12の状態は、キャッシュ制御部
17により MまたはOならばOに EまたはSならばSに IならばIに それぞれ遷移する(S44)。これに合わせて共有管理
部のキャッシュ状態タグメモリ24の状態は、 MまたはO、またはEでキャッシュからの介入が起これ
ば、Oに S、またはEでキャッシュからの介入が起こらなけれ
ば、Sに IならばIに それぞれ遷移する(S45)。また、共有管理部の主記
憶タグメモリはGに設定される(S46)。
【0104】内部バスの共有指示線はCPUキャッシュ
メモリが状態Iであれば非共有を、それ以外では共有を
示し、この値を共有バスの共有指示線に伝達すると共
に、主メモリ又はキャッシュメモリから読み出した値を
共有バスに出力する(S47)。
メモリが状態Iであれば非共有を、それ以外では共有を
示し、この値を共有バスの共有指示線に伝達すると共
に、主メモリ又はキャッシュメモリから読み出した値を
共有バスに出力する(S47)。
【0105】指定されたアドレスの主メモリを持たない
基板の場合は(S41No)、対応するキャッシュ状態
タグの状態に応じて内部バスの使用を決定する(S4
8,S49)。状態がIの場合はこの基板上のキャッシ
ュメモリには有効なコピーが存在しないので一貫性保持
のための動作は不要であり、共有指示線の駆動も行なわ
ない。状態がI以外の場合は有効なコピーを持つので共
有指示線を駆動する(S52,S54)。状態がMまた
はOの場合はCPUのキャッシュメモリに最新の値が存
在するので内部バスに共有読み出しCRを発行して最新
の値をキャッシュメモリから読み出すと共に、共有バス
の介入指示線に介入を示し、別の基板上の主メモリに代
わって値を共有する(S50,S52)。状態がMまた
はO以外の場合は内部バスをアクセスしない。
基板の場合は(S41No)、対応するキャッシュ状態
タグの状態に応じて内部バスの使用を決定する(S4
8,S49)。状態がIの場合はこの基板上のキャッシ
ュメモリには有効なコピーが存在しないので一貫性保持
のための動作は不要であり、共有指示線の駆動も行なわ
ない。状態がI以外の場合は有効なコピーを持つので共
有指示線を駆動する(S52,S54)。状態がMまた
はOの場合はCPUのキャッシュメモリに最新の値が存
在するので内部バスに共有読み出しCRを発行して最新
の値をキャッシュメモリから読み出すと共に、共有バス
の介入指示線に介入を示し、別の基板上の主メモリに代
わって値を共有する(S50,S52)。状態がMまた
はO以外の場合は内部バスをアクセスしない。
【0106】CPUキャッシュメモリの状態タグは、M
またはOならばOに(その他はそのまま)共有管理部の
キャッシュ状態タグは、MまたはOならばOにそれぞれ
遷移する(S51)。
またはOならばOに(その他はそのまま)共有管理部の
キャッシュ状態タグは、MまたはOならばOにそれぞれ
遷移する(S51)。
【0107】図13は共有バス上の排他読み出しRMに
対する共有管理部4及びキャッシュ制御部17の動作を
示すフローチャートである。指定されたアドレスの主メ
モリを持つ基板の場合は(S61Yes)、主メモリを
アクセスするために内部バスに排他読み出しCRIを発
行する(S62)。この排他読み出しCRIが行なわれ
る(S63,S65)に併い、CPUキャッシュメモリ
の状態と、共有管理部のキャッシュ状態タグの状態はI
に遷移する。また、共有管理部の主記憶タグメモリはG
に設定される(S64)。
対する共有管理部4及びキャッシュ制御部17の動作を
示すフローチャートである。指定されたアドレスの主メ
モリを持つ基板の場合は(S61Yes)、主メモリを
アクセスするために内部バスに排他読み出しCRIを発
行する(S62)。この排他読み出しCRIが行なわれ
る(S63,S65)に併い、CPUキャッシュメモリ
の状態と、共有管理部のキャッシュ状態タグの状態はI
に遷移する。また、共有管理部の主記憶タグメモリはG
に設定される(S64)。
【0108】指定されたアドレスの主メモリを持たない
基板の場合は(S61No)、対応するキャッシュ状態
タグの状態に応じて内部バスの使用を決定する(S6
6,S67)。状態がIの場合はこの基板上のキャッシ
ュメモリには有効なコピーが存在しないので一貫性保持
のための動作は不要であり、内部バスへのコマンド発行
は行わない。状態がSまたはEの場合は、無効化要求C
Iを内部バスに発行する(S71)。状態がMまたはO
の場合は、CPUのキャッシュメモリに最新の値が存在
するので内部バスに排他読み出しCRIを発行して最新
の値をキャッシュメモリから読み出すと共に、共有バス
の介入指示線に介入を示し、キャッシュを無効化する
(S68)。読み出した値は主メモリに代わって要求元
に供給する(S70)。CPUキャッシュメモリの状態
と、共有管理部のキャッシュ状態タグの状態はいずれも
Iに遷移する(S69,S72)。
基板の場合は(S61No)、対応するキャッシュ状態
タグの状態に応じて内部バスの使用を決定する(S6
6,S67)。状態がIの場合はこの基板上のキャッシ
ュメモリには有効なコピーが存在しないので一貫性保持
のための動作は不要であり、内部バスへのコマンド発行
は行わない。状態がSまたはEの場合は、無効化要求C
Iを内部バスに発行する(S71)。状態がMまたはO
の場合は、CPUのキャッシュメモリに最新の値が存在
するので内部バスに排他読み出しCRIを発行して最新
の値をキャッシュメモリから読み出すと共に、共有バス
の介入指示線に介入を示し、キャッシュを無効化する
(S68)。読み出した値は主メモリに代わって要求元
に供給する(S70)。CPUキャッシュメモリの状態
と、共有管理部のキャッシュ状態タグの状態はいずれも
Iに遷移する(S69,S72)。
【0109】図14は共有バス上の無効化要求INVに
対する共有管理部4及びキャッシュ制御部17の動作を
示すフローチャートである。指定されたアドレスに対応
するキャッシュ状態タグの状態がIでなければ(S8
1,S82)。内部バスに無効化要求CIを発行し、C
PUのキャッシュメモリの有効なエントリを無効化する
(S83)。CPUキャッシュメモリの状態と、共有管
理部のキャッシュ状態タグの状態はIに遷移し、要求さ
れたアドレスを割り当てられた主メモリを持つプロセッ
サ基板の場合は主記憶タグの状態はGに設定される(S
84)。
対する共有管理部4及びキャッシュ制御部17の動作を
示すフローチャートである。指定されたアドレスに対応
するキャッシュ状態タグの状態がIでなければ(S8
1,S82)。内部バスに無効化要求CIを発行し、C
PUのキャッシュメモリの有効なエントリを無効化する
(S83)。CPUキャッシュメモリの状態と、共有管
理部のキャッシュ状態タグの状態はIに遷移し、要求さ
れたアドレスを割り当てられた主メモリを持つプロセッ
サ基板の場合は主記憶タグの状態はGに設定される(S
84)。
【0110】共有バス上の書き戻しWBに対しては、主
メモリを持つ基板のみが応答し、送られてきた値を取り
込み主メモリに書き戻す。他の基板は何も応答せずに動
作を終了する。
メモリを持つ基板のみが応答し、送られてきた値を取り
込み主メモリに書き戻す。他の基板は何も応答せずに動
作を終了する。
【0111】以下、例題を用いて本実施例の動作の例を
示す。図15は例題の構成図である。ここでアドレスの
先頭の0x は16進数であることを示す。
示す。図15は例題の構成図である。ここでアドレスの
先頭の0x は16進数であることを示す。
【0112】プロセッサ基板PB0 はアドレス0x0000 0
000 から0x03ff ffff の主メモリM0 を持ち、プロセッ
サ基板PB1 はアドレス0x0400 0000 から0x07ff ffff
の主メモリM1 を持ち、プロセッサ基板PB2 はアドレ
ス0x0800 0000 から0x0bff ffff の主メモリM2 を持
ち、プロセッサ基板PB3 はアドレス0x0c00 0000 から
0x0fff ffff の主メモリM3 を持つ。
000 から0x03ff ffff の主メモリM0 を持ち、プロセッ
サ基板PB1 はアドレス0x0400 0000 から0x07ff ffff
の主メモリM1 を持ち、プロセッサ基板PB2 はアドレ
ス0x0800 0000 から0x0bff ffff の主メモリM2 を持
ち、プロセッサ基板PB3 はアドレス0x0c00 0000 から
0x0fff ffff の主メモリM3 を持つ。
【0113】アドレス0x0000 1000 のキャッシュライン
はプロセッサ基板PB0 の主メモリM0 にあるが、どの
プロセッサのキャッシュメモリにも存在しない。よっ
て、対応する主記憶タグメモリMTag0 の状態はPであ
る。
はプロセッサ基板PB0 の主メモリM0 にあるが、どの
プロセッサのキャッシュメモリにも存在しない。よっ
て、対応する主記憶タグメモリMTag0 の状態はPであ
る。
【0114】アドレス0x0400 2000 のキャッシュライン
はプロセッサ基板PB1 の主メモリM1 にあるが、プロ
セッサ基板PB1 のキャッシュメモリC1 に状態Eで存
在する。よって、対応する主記憶タグメモリMTag1 の
状態はPである。
はプロセッサ基板PB1 の主メモリM1 にあるが、プロ
セッサ基板PB1 のキャッシュメモリC1 に状態Eで存
在する。よって、対応する主記憶タグメモリMTag1 の
状態はPである。
【0115】図16はプロセッサ基板PB0 のCPU
(CPU0 )がアドレス0x0000 1000を読み出し(1)
たときの動作を示している。プロセッサ基板PB0 のキ
ャッシュC0 は読み出しミスを起こし(2)、プロセッ
サ基板PB0 の内部バスB0 に共有読み出しCRを発行
する(3)。プロセッサ基板PB0 の主記憶タグメモリ
MTag0 は状態Pであるので、共有バスSBへのアクセ
スは行わず(5)、プロセッサ基板PB0 の主メモリM
0 を読み出して(6)キャッシュC0 に記憶し、CPU
(CPU0 )に値を供給する(8)。
(CPU0 )がアドレス0x0000 1000を読み出し(1)
たときの動作を示している。プロセッサ基板PB0 のキ
ャッシュC0 は読み出しミスを起こし(2)、プロセッ
サ基板PB0 の内部バスB0 に共有読み出しCRを発行
する(3)。プロセッサ基板PB0 の主記憶タグメモリ
MTag0 は状態Pであるので、共有バスSBへのアクセ
スは行わず(5)、プロセッサ基板PB0 の主メモリM
0 を読み出して(6)キャッシュC0 に記憶し、CPU
(CPU0 )に値を供給する(8)。
【0116】プロセッサ基板PB0 のキャッシュメモリ
C0 とキャッシュ状態タグメモリCTag0 は状態Eに遷
移する(4)(7)。以降、プロセッサ基板PB0 のC
PU(CPU0 )からの読み出しはキャッシュC0 にヒ
ットし、内部バスB0 に要求がでない。
C0 とキャッシュ状態タグメモリCTag0 は状態Eに遷
移する(4)(7)。以降、プロセッサ基板PB0 のC
PU(CPU0 )からの読み出しはキャッシュC0 にヒ
ットし、内部バスB0 に要求がでない。
【0117】図17はこの状態からプロセッサ基板PB
0 のCPU(CPU0 )がアドレス0x0000 1000 へ書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB0 のキャッシュC0 は書き込みヒットを起こ
し(2)、内部バスB0 にアクセスすることなく、状態
をMに遷移する(3)。以降、キャッシュC0 から追い
出されるまで、プロセッサ基板PB0 のCPU(CPU
0 )からの読み出しと書き込みのいずれのアクセスもキ
ャッシュC0 にヒットし、内部バスB0 に要求がでない
(4)。この様に、同一基板上の局所変数は共有バスS
Bを用いることなくアクセスすることができる。共有管
理部S0 のキャッシュ状態タグCTag0は状態Eのまま
に残るが、共有読み出しを行なう際は主メモリM0 をア
クセスする関係で共有読み出しを行なうので問題を生じ
ない。他のプロセッサ基板から共有バスSBを介して共
有読み出しを行なえば不一致の状態が解消される。
0 のCPU(CPU0 )がアドレス0x0000 1000 へ書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB0 のキャッシュC0 は書き込みヒットを起こ
し(2)、内部バスB0 にアクセスすることなく、状態
をMに遷移する(3)。以降、キャッシュC0 から追い
出されるまで、プロセッサ基板PB0 のCPU(CPU
0 )からの読み出しと書き込みのいずれのアクセスもキ
ャッシュC0 にヒットし、内部バスB0 に要求がでない
(4)。この様に、同一基板上の局所変数は共有バスS
Bを用いることなくアクセスすることができる。共有管
理部S0 のキャッシュ状態タグCTag0は状態Eのまま
に残るが、共有読み出しを行なう際は主メモリM0 をア
クセスする関係で共有読み出しを行なうので問題を生じ
ない。他のプロセッサ基板から共有バスSBを介して共
有読み出しを行なえば不一致の状態が解消される。
【0118】図18はプロセッサ基板PB0 のCPU
(CPU0 )がアドレス0x0400 2000を読み出し(1)
たときの動作を示している。プロセッサ基板PB0 のキ
ャッシュC0 は読み出しミスを起こし(2)、プロセッ
サ基板PB0 の内部バスB0 に共有読み出しCRを発行
する(3)。このアドレスはプロセッサ基板PB0 の主
メモリM0 ではないので共有バスSB上に共有読み出し
RSを発行する(4)。
(CPU0 )がアドレス0x0400 2000を読み出し(1)
たときの動作を示している。プロセッサ基板PB0 のキ
ャッシュC0 は読み出しミスを起こし(2)、プロセッ
サ基板PB0 の内部バスB0 に共有読み出しCRを発行
する(3)。このアドレスはプロセッサ基板PB0 の主
メモリM0 ではないので共有バスSB上に共有読み出し
RSを発行する(4)。
【0119】プロセッサ基板PB1 からPB3 は共有バ
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 からPB3 はキャッシュ状態タグ
CTag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1 は要求されたアドレスの
主メモリM1 を持ち、キャッシュ状態タグCTag1 が状
態Eなのでその内部バスB1 に共有読み出しCRを発行
し(6)、主メモリM1 がキャッシュラインの値を供給
する(7)。このときプロセッサ基板PB1 のCPUキ
ャッシュC1 は共有が開始されたことを認識し、状態E
からSに遷移する(8)。また、プロセッサ基板PB1
のキャッシュ状態タグCTag1 も状態Sに、主記憶タグ
MTag1 は状態Gに遷移する(8)。
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 からPB3 はキャッシュ状態タグ
CTag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1 は要求されたアドレスの
主メモリM1 を持ち、キャッシュ状態タグCTag1 が状
態Eなのでその内部バスB1 に共有読み出しCRを発行
し(6)、主メモリM1 がキャッシュラインの値を供給
する(7)。このときプロセッサ基板PB1 のCPUキ
ャッシュC1 は共有が開始されたことを認識し、状態E
からSに遷移する(8)。また、プロセッサ基板PB1
のキャッシュ状態タグCTag1 も状態Sに、主記憶タグ
MTag1 は状態Gに遷移する(8)。
【0120】読み出されたキャッシュラインは共有バス
SBを介してプロセッサ基板PB0に供給される
(9)。このとき共有バスSBの共有指示線は共有を指
示している。プロセッサ基板PB0 のキャッシュ状態タ
グCTag0 は状態をSに設定し(10)、内部バスB0
に共有指示線に共有を指示しながらCPUキャッシュC
0 にキャッシュラインの値を供給する(11)。CPU
キャッシュC0 は状態Sとなり(12)、このCPUキ
ャッシュC0 からCPU(CPU0 )にキャッシュライ
ンの値が読出される(13)。
SBを介してプロセッサ基板PB0に供給される
(9)。このとき共有バスSBの共有指示線は共有を指
示している。プロセッサ基板PB0 のキャッシュ状態タ
グCTag0 は状態をSに設定し(10)、内部バスB0
に共有指示線に共有を指示しながらCPUキャッシュC
0 にキャッシュラインの値を供給する(11)。CPU
キャッシュC0 は状態Sとなり(12)、このCPUキ
ャッシュC0 からCPU(CPU0 )にキャッシュライ
ンの値が読出される(13)。
【0121】図19は、この状態からプロセッサ基板P
B0 のCPU(CPU0 )がアドレス0x0400 2000 に書
き込みを行った(1)ときの動作を示している。プロセ
ッサ基板PB0 のキャッシュC0 は共有ヒットを起こし
(2)、内部バスに無効化要求CIを発行する(3)。
プロセッサ基板PB0 の共有管理部S0 は同一基板上の
主メモリM0 のアドレスでないので、共有バスSBに無
効化要求INVを発行する(4)。
B0 のCPU(CPU0 )がアドレス0x0400 2000 に書
き込みを行った(1)ときの動作を示している。プロセ
ッサ基板PB0 のキャッシュC0 は共有ヒットを起こし
(2)、内部バスに無効化要求CIを発行する(3)。
プロセッサ基板PB0 の共有管理部S0 は同一基板上の
主メモリM0 のアドレスでないので、共有バスSBに無
効化要求INVを発行する(4)。
【0122】プロセッサ基板PB1 からPB3 は共有バ
スSB上の無効化要求INVを見て動作を開始するが、
プロセッサ基板PB2 からPB3 はキャッシュ状態タグ
CTag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1 はキャッシュ状態タグC
Tag1 が状態Sなので無効化要求CIを内部バスB1に
伝達する(6)。プロセッサ基板PB1 のCPUキャッ
シュC1 はこの無効化要2CIによって状態をIに遷移
し(7)、キャッシュ状態タグCTag1 も状態Iに遷移
する(8)が、主記憶タグMTag1 の状態はGのままで
ある。プロセッサ基板PB1 の無効化が終了するとプロ
セッサ基板PB0 のキャッシュ状態タグCTag0 は状態
Mに遷移し(9)、CPUキャッシュC0 の状態もMに
遷移して(10)キャッシュC0 に対する書き込みが行
われる(11)。
スSB上の無効化要求INVを見て動作を開始するが、
プロセッサ基板PB2 からPB3 はキャッシュ状態タグ
CTag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1 はキャッシュ状態タグC
Tag1 が状態Sなので無効化要求CIを内部バスB1に
伝達する(6)。プロセッサ基板PB1 のCPUキャッ
シュC1 はこの無効化要2CIによって状態をIに遷移
し(7)、キャッシュ状態タグCTag1 も状態Iに遷移
する(8)が、主記憶タグMTag1 の状態はGのままで
ある。プロセッサ基板PB1 の無効化が終了するとプロ
セッサ基板PB0 のキャッシュ状態タグCTag0 は状態
Mに遷移し(9)、CPUキャッシュC0 の状態もMに
遷移して(10)キャッシュC0 に対する書き込みが行
われる(11)。
【0123】図20は、この状態からプロセッサ基板P
B1 のCPU(CPU1 )がアドレス0x0400 2000 に読
み出しを行った(1)ときの動作を示している。プロセ
ッサ基板PB1 のキャッシュC1 は読み出しミスを起こ
し(2)、内部バスB1 に共有読み出しCRを発行する
(3)。プロセッサ基板PB1 の共有管理部S1 は同一
基板の主メモリM1 のアドレスではあるが、主記憶タグ
MTag1 の状態がGであるので主メモリM1 のアクセス
(4)と同時に共有バスSBにも共有読み出しRSを発
行する(4)。
B1 のCPU(CPU1 )がアドレス0x0400 2000 に読
み出しを行った(1)ときの動作を示している。プロセ
ッサ基板PB1 のキャッシュC1 は読み出しミスを起こ
し(2)、内部バスB1 に共有読み出しCRを発行する
(3)。プロセッサ基板PB1 の共有管理部S1 は同一
基板の主メモリM1 のアドレスではあるが、主記憶タグ
MTag1 の状態がGであるので主メモリM1 のアクセス
(4)と同時に共有バスSBにも共有読み出しRSを発
行する(4)。
【0124】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB2 からPB3 はキャッシュ
状態タグCTag2 、CTag3 が無効状態Iなので動作を
終了する(5)。プロセッサ基板PB0 はキャッシュ状
態タグCTag0 が状態Mなので要求に介入する(6)。
この時点でプロセッサ基板PB1 の主メモリM1 のアク
セスは中断される(7)。プロセッサ基板PB0 の共有
管理部S0 は内部バスB0 に共有読み出しCRを発行し
(8)、CPUキャッシュC0 からキャッシュラインの
値を取り出す。この共有読み出しCRによってCPUキ
ャッシュC0 は状態をOに遷移する(9)。プロセッサ
基板PB0 の共有管理部S0 は読み出されたキャッシュ
ラインの値を共有バスSBにのせると共にキャッシュ状
態タグCTag0 を状態Oに遷移する(10)。
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB2 からPB3 はキャッシュ
状態タグCTag2 、CTag3 が無効状態Iなので動作を
終了する(5)。プロセッサ基板PB0 はキャッシュ状
態タグCTag0 が状態Mなので要求に介入する(6)。
この時点でプロセッサ基板PB1 の主メモリM1 のアク
セスは中断される(7)。プロセッサ基板PB0 の共有
管理部S0 は内部バスB0 に共有読み出しCRを発行し
(8)、CPUキャッシュC0 からキャッシュラインの
値を取り出す。この共有読み出しCRによってCPUキ
ャッシュC0 は状態をOに遷移する(9)。プロセッサ
基板PB0 の共有管理部S0 は読み出されたキャッシュ
ラインの値を共有バスSBにのせると共にキャッシュ状
態タグCTag0 を状態Oに遷移する(10)。
【0125】プロセッサ基板PB1 の共有管理部S1 は
えられた値を内部バスB1 に返すと共に、キャッシュ状
態タグCTag1 の状態をSに遷移する(11)。プロセ
ッサ基板PB1 のCPUキャッシュC1 は、主メモリM
1 の古い値ではなく、共有管理部S1 が供給するプロセ
ッサ基板PB0 で更新された新しいキャッシュラインの
値をキャッシュC1 に取り込んで状態をSに設定し(1
2)このCPUキャッシュC1 からCPU(CPU1 )
にキャッシュラインの値が読出される(13)。以上の
動作によってプロセッサ基板PB1 の読み出しはプロセ
ッサ基板PB0で行われた書き込みの結果が反映され、
キャッシュ間の一貫性が保たれる。
えられた値を内部バスB1 に返すと共に、キャッシュ状
態タグCTag1 の状態をSに遷移する(11)。プロセ
ッサ基板PB1 のCPUキャッシュC1 は、主メモリM
1 の古い値ではなく、共有管理部S1 が供給するプロセ
ッサ基板PB0 で更新された新しいキャッシュラインの
値をキャッシュC1 に取り込んで状態をSに設定し(1
2)このCPUキャッシュC1 からCPU(CPU1 )
にキャッシュラインの値が読出される(13)。以上の
動作によってプロセッサ基板PB1 の読み出しはプロセ
ッサ基板PB0で行われた書き込みの結果が反映され、
キャッシュ間の一貫性が保たれる。
【0126】図21は、この状態からプロセッサ基板P
B2 のCPU(CPU2 )がアドレス0x0400 2000 に読
み出しを行った(1)ときの動作を示している。プロセ
ッサ基板PB2 のキャッシュC2 は読み出しミスを起こ
し(2)、内部バスB2 に共有読み出しCRを発行する
(3)。プロセッサ基板PB2 の共有管理部S2 は同一
基板の主メモリM2 のアドレスでないので、共有バスS
Bに共有読み出しRSを発行する(4)。
B2 のCPU(CPU2 )がアドレス0x0400 2000 に読
み出しを行った(1)ときの動作を示している。プロセ
ッサ基板PB2 のキャッシュC2 は読み出しミスを起こ
し(2)、内部バスB2 に共有読み出しCRを発行する
(3)。プロセッサ基板PB2 の共有管理部S2 は同一
基板の主メモリM2 のアドレスでないので、共有バスS
Bに共有読み出しRSを発行する(4)。
【0127】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はキャッシュ状態タグC
Tag3 が無効状態Iなので動作を終了する(5)。プロ
セッサ基板PB1 は要求されたアドレスの主メモリM1
を持つので、主メモリM1 のアクセスを行うために内部
バスB1 に共有読み出しCRを発行する(6)。プロセ
ッサ基板PB0 はキャッシュ状態タグCTag0 が状態O
なので要求に介入する(7)。この時点でプロセッサ基
板PB1 の主メモリM1 のアクセスは中断される
(8)。プロセッサ基板PB0 の共有管理部S0 は内部
バスB0 に共有読み出しCRを発行し、CPUキャッシ
ュC0 からキャッシュラインの値を取り出す(8)。プ
ロセッサ基板PB0 の共有管理部S0 は読み出されたキ
ャッシュラインの値を共有バスSBに載せる。
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はキャッシュ状態タグC
Tag3 が無効状態Iなので動作を終了する(5)。プロ
セッサ基板PB1 は要求されたアドレスの主メモリM1
を持つので、主メモリM1 のアクセスを行うために内部
バスB1 に共有読み出しCRを発行する(6)。プロセ
ッサ基板PB0 はキャッシュ状態タグCTag0 が状態O
なので要求に介入する(7)。この時点でプロセッサ基
板PB1 の主メモリM1 のアクセスは中断される
(8)。プロセッサ基板PB0 の共有管理部S0 は内部
バスB0 に共有読み出しCRを発行し、CPUキャッシ
ュC0 からキャッシュラインの値を取り出す(8)。プ
ロセッサ基板PB0 の共有管理部S0 は読み出されたキ
ャッシュラインの値を共有バスSBに載せる。
【0128】プロセッサ基板PB2 の共有管理部S2 は
得られた値を内部バスB2 に返すと共に、キャッシュ状
態タグCTag2 の状態をSに遷移する(9)。プロセッ
サ基板PB2 のCPUキャッシュC2 は、内部バスB2
に返された値を取り込んで状態をSに設定する(1
0)。この値はプロセッサ基板PB1 の主メモリM1 の
古い値ではなく、プロセッサ基板PB0 で更新された新
しい値であるので、プロセッサ基板PB0 で行われた書
き込みの結果が反映され、共有しているプロセッサ基板
PB0 からPB2 の間でキャッシュ間の一貫性が保たれ
る。
得られた値を内部バスB2 に返すと共に、キャッシュ状
態タグCTag2 の状態をSに遷移する(9)。プロセッ
サ基板PB2 のCPUキャッシュC2 は、内部バスB2
に返された値を取り込んで状態をSに設定する(1
0)。この値はプロセッサ基板PB1 の主メモリM1 の
古い値ではなく、プロセッサ基板PB0 で更新された新
しい値であるので、プロセッサ基板PB0 で行われた書
き込みの結果が反映され、共有しているプロセッサ基板
PB0 からPB2 の間でキャッシュ間の一貫性が保たれ
る。
【0129】図22はプロセッサ基板PB0 のCPU
(CPU0 )が、アドレス0x0000 1000に対して、プロ
セッサ基板PB1 上のキャッシュメモリC1 がこのアド
レスのキャッシュラインを状態Oで持ち、プロセッサ基
板PB2 上のキャッシュメモリC2 がこのアドレスのキ
ャッシュラインを状態Sで持ち、プロセッサ基板PB0
上の主記憶タグMTag0 がこのアドレスのキャッシュラ
インの共有状態が状態Gであることを示している時に、
書き込みを行った(1)ときの動作を示している。プロ
セッサ基板PB0 のキャッシュメモリC0 は書き込みミ
スを起こし(2)、内部バスB0 に排他読み出しCRI
を発行する(3)。このアドレスはプロセッサ基板PB
0 上の主メモリM0 に割当てられたものであるが、この
プロセッサ基板PB0 上の主記憶タグMTag0 の示す共
有状態が状態Gであるので、このプロセッサ基板PB0
の共有管理部S0 は主メモリM0 にアクセスする(4)
と共に、共有バスSBに排他読出しRMを発行する
(4)。
(CPU0 )が、アドレス0x0000 1000に対して、プロ
セッサ基板PB1 上のキャッシュメモリC1 がこのアド
レスのキャッシュラインを状態Oで持ち、プロセッサ基
板PB2 上のキャッシュメモリC2 がこのアドレスのキ
ャッシュラインを状態Sで持ち、プロセッサ基板PB0
上の主記憶タグMTag0 がこのアドレスのキャッシュラ
インの共有状態が状態Gであることを示している時に、
書き込みを行った(1)ときの動作を示している。プロ
セッサ基板PB0 のキャッシュメモリC0 は書き込みミ
スを起こし(2)、内部バスB0 に排他読み出しCRI
を発行する(3)。このアドレスはプロセッサ基板PB
0 上の主メモリM0 に割当てられたものであるが、この
プロセッサ基板PB0 上の主記憶タグMTag0 の示す共
有状態が状態Gであるので、このプロセッサ基板PB0
の共有管理部S0 は主メモリM0 にアクセスする(4)
と共に、共有バスSBに排他読出しRMを発行する
(4)。
【0130】プロセッサ基板PB1 からPB3 は共有バ
スSB上の排他読み出しRMを見て動作を開始するが、
プロセッサ基板PB3 はキャッシュ状態タグCTag3 が
無効状態Iなので動作を終了する(5)。プロセッサ基
板PB1 はキャッシュ状態タグCTag1 が状態Oなので
その内部バスB1 に排他読み出しCRIを発行すると共
に、共有バスSBからの要求に介入し(6)、プロセッ
サ基板PB0 上の主メモリM0 のアクセスを中断する
(7)と共に、プロセッサ基板PB1 上のキャッシュメ
モリC1 からこのアドレスのキャッシュラインが共有バ
スSBに読み出される。プロセッサ基板PB2 はキャッ
シュ状態タグCTag2 が状態Sなのでその内部バスB2
に無効化要求CIを発行する(6)。
スSB上の排他読み出しRMを見て動作を開始するが、
プロセッサ基板PB3 はキャッシュ状態タグCTag3 が
無効状態Iなので動作を終了する(5)。プロセッサ基
板PB1 はキャッシュ状態タグCTag1 が状態Oなので
その内部バスB1 に排他読み出しCRIを発行すると共
に、共有バスSBからの要求に介入し(6)、プロセッ
サ基板PB0 上の主メモリM0 のアクセスを中断する
(7)と共に、プロセッサ基板PB1 上のキャッシュメ
モリC1 からこのアドレスのキャッシュラインが共有バ
スSBに読み出される。プロセッサ基板PB2 はキャッ
シュ状態タグCTag2 が状態Sなのでその内部バスB2
に無効化要求CIを発行する(6)。
【0131】これにより、プロセッサ基板PB1 のキャ
ッシュメモリC1 は状態をIに遷移し(7)、プロセッ
サ基板PB2 のキャッシュメモリC2 も状態をIに遷移
して(7)、当該アドレスのキャッシュラインを無効化
する。これに併い、プロセッサ基板PB1 のキャッシュ
状態タグCTag1 も状態Iに遷移し(8)、プロセッサ
基板PB2 のキャッシュ状態タグCTag2 も状態Iに遷
移する(8)。
ッシュメモリC1 は状態をIに遷移し(7)、プロセッ
サ基板PB2 のキャッシュメモリC2 も状態をIに遷移
して(7)、当該アドレスのキャッシュラインを無効化
する。これに併い、プロセッサ基板PB1 のキャッシュ
状態タグCTag1 も状態Iに遷移し(8)、プロセッサ
基板PB2 のキャッシュ状態タグCTag2 も状態Iに遷
移する(8)。
【0132】プロセッサ基板PB1 及びPB2 の無効化
が終了するとプロセッサ基板PB0のキャッシュ状態タ
グCTag0 が状態Mに遷移し、主記憶タグMTag0 が状
態Pに遷移する(9)。そして、キャッシュメモリC0
の状態が状態Mに遷移し(10)、キャッシュメモリC
0 に対して書き込みが行われる(11)。
が終了するとプロセッサ基板PB0のキャッシュ状態タ
グCTag0 が状態Mに遷移し、主記憶タグMTag0 が状
態Pに遷移する(9)。そして、キャッシュメモリC0
の状態が状態Mに遷移し(10)、キャッシュメモリC
0 に対して書き込みが行われる(11)。
【0133】次に、本発明の第2実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
リ型マルチプロセッサシステムについて説明する。
【0134】この第2実施例は上記第1実施例において
異なるプロセッサ基板の間での所有権の移転に関する改
良を加えたもので、ここで所有権とは最新の値をキャッ
シュから主メモリに書き戻す義務があることを意味す
る。
異なるプロセッサ基板の間での所有権の移転に関する改
良を加えたもので、ここで所有権とは最新の値をキャッ
シュから主メモリに書き戻す義務があることを意味す
る。
【0135】本実施例においては、共有バス6は更に共
有バス6上のメモリアクセス要求の要求元であるプロセ
ッサ基板を同定する要求元識別線を備えている。
有バス6上のメモリアクセス要求の要求元であるプロセ
ッサ基板を同定する要求元識別線を備えている。
【0136】あるプロセッサ基板上のCPU1が同基板
上の主メモリに割り当てられたアドレスに対する読み出
し命令を実行し、キャッシュメモリ2で読み出しミスが
起こった際に、別のプロセッサ基板上のキャッシュメモ
リ2がこのアドレスの最新の値を持っていた場合、この
別のプロセッサ基板は上記第1実施例の場合同様に介入
を行う。
上の主メモリに割り当てられたアドレスに対する読み出
し命令を実行し、キャッシュメモリ2で読み出しミスが
起こった際に、別のプロセッサ基板上のキャッシュメモ
リ2がこのアドレスの最新の値を持っていた場合、この
別のプロセッサ基板は上記第1実施例の場合同様に介入
を行う。
【0137】上記第1実施例では、このような場合でも
所有権は介入元である別のプロセッサ基板の方に残すた
め、後に書き戻しが要求されると、この別のプロセッサ
基板が前記あるプロセッサ基板の主メモリに対して共有
バス6を介して書き戻しを行わねばならない。
所有権は介入元である別のプロセッサ基板の方に残すた
め、後に書き戻しが要求されると、この別のプロセッサ
基板が前記あるプロセッサ基板の主メモリに対して共有
バス6を介して書き戻しを行わねばならない。
【0138】これに対して、この第2実施例では、介入
時に最新の値と共に所有権もこの別のプロセッサ基板か
ら前記あるプロセッサ基板に移転させて、後の書き戻し
がこのあるプロセッサ基板内だけで、共有バス6を使わ
ずに行えるようにしている。
時に最新の値と共に所有権もこの別のプロセッサ基板か
ら前記あるプロセッサ基板に移転させて、後の書き戻し
がこのあるプロセッサ基板内だけで、共有バス6を使わ
ずに行えるようにしている。
【0139】このような所有権の移転を行うために、こ
の第2実施例では、共有バス6上のメモリ・アクセス要
求は要求元識別線上の要求元プロセッサ基板を示す情報
を併うようにする。この情報は通常のバスが持つ基板識
別番号でも良いが、実質的には要求元のプロセッサ基板
が指定されたアドレスが割り当てられた主メモリを持っ
たプロセッサ基板であるかどうかを示すもので充分であ
るので、このことを示す1ビットの信号で与えても良
い。
の第2実施例では、共有バス6上のメモリ・アクセス要
求は要求元識別線上の要求元プロセッサ基板を示す情報
を併うようにする。この情報は通常のバスが持つ基板識
別番号でも良いが、実質的には要求元のプロセッサ基板
が指定されたアドレスが割り当てられた主メモリを持っ
たプロセッサ基板であるかどうかを示すもので充分であ
るので、このことを示す1ビットの信号で与えても良
い。
【0140】ここで、指定されたアドレスが割り当てら
れた主メモリを持ち、介入を受けた要求元のプロセッサ
基板では、キャッシュメモリ2が最新の値と併せて所有
権をも共有バス6を介して受けとるので、キャッシュメ
モリ2のキャッシュ状態は状態Oにされ、介入を行った
別のプロセッサ基板ではキャッシュのキャッシュ状態は
状態Sにされる。
れた主メモリを持ち、介入を受けた要求元のプロセッサ
基板では、キャッシュメモリ2が最新の値と併せて所有
権をも共有バス6を介して受けとるので、キャッシュメ
モリ2のキャッシュ状態は状態Oにされ、介入を行った
別のプロセッサ基板ではキャッシュのキャッシュ状態は
状態Sにされる。
【0141】従って、キャッシュメモリ2のキャッシュ
状態タグ部12の状態遷移は上記図6にまとめたものに
代わって図23にまとめたものとなり、一方共有管理部
4のキャッシュ状態タグメモリ24の状態遷移は自分の
プロセッサ基板上の主メモリのアクセスの際には上記図
7にまとめたものに代わって図24にまとめたものとな
り、他のプロセッサ基板上の主メモリへのアクセスの際
には上記図8にまとめたものに代わって図25にまとめ
たものとなる。
状態タグ部12の状態遷移は上記図6にまとめたものに
代わって図23にまとめたものとなり、一方共有管理部
4のキャッシュ状態タグメモリ24の状態遷移は自分の
プロセッサ基板上の主メモリのアクセスの際には上記図
7にまとめたものに代わって図24にまとめたものとな
り、他のプロセッサ基板上の主メモリへのアクセスの際
には上記図8にまとめたものに代わって図25にまとめ
たものとなる。
【0142】又、この第2実施例では、CPUの読み出
し命令に対するキャッシュ制御部17及び共有管理部4
の動作を示す上記図9,10のフローチャートを、図2
6,27のように変更する。
し命令に対するキャッシュ制御部17及び共有管理部4
の動作を示す上記図9,10のフローチャートを、図2
6,27のように変更する。
【0143】即ち、S8における一貫性保持動作の終了
後、この一貫性保持動作において介入があったか否かを
決定し(S16)、なかった場合は図9,10の場合と
同様にS9に進むが、あった場合は内部バス5の介入指
示線を駆動し(S17)、CPUキャッシュの状態を状
態Oに設定する(S18)ようにする。これ以外は図
9,10と同様で良い。
後、この一貫性保持動作において介入があったか否かを
決定し(S16)、なかった場合は図9,10の場合と
同様にS9に進むが、あった場合は内部バス5の介入指
示線を駆動し(S17)、CPUキャッシュの状態を状
態Oに設定する(S18)ようにする。これ以外は図
9,10と同様で良い。
【0144】更に、共有バス6上の共有読み出しRSに
対する共有管理部4とキャッシュ制御部17の動作を示
す上記図12のフローチャートを図28の様に変更す
る。
対する共有管理部4とキャッシュ制御部17の動作を示
す上記図12のフローチャートを図28の様に変更す
る。
【0145】即ち、S50の後で、要求されたアドレス
の割り当てられた主メモリを持つプロセッサ基板からの
アクセスか否かを決定し(S55)、そうでなければ図
12の場合と同様にS51に進むが、そうであった場合
にはCPUキャッシュメモリの状態タグは、MまたはO
ならばSに(その他はそのまま)、共有管理部のキャッ
シュ状態タグは、MまたはOならばSに、それぞれ遷移
させ(S56)、そしてS52に進むようにする。これ
以外は図12と同様で良い。
の割り当てられた主メモリを持つプロセッサ基板からの
アクセスか否かを決定し(S55)、そうでなければ図
12の場合と同様にS51に進むが、そうであった場合
にはCPUキャッシュメモリの状態タグは、MまたはO
ならばSに(その他はそのまま)、共有管理部のキャッ
シュ状態タグは、MまたはOならばSに、それぞれ遷移
させ(S56)、そしてS52に進むようにする。これ
以外は図12と同様で良い。
【0146】図29はプロセッサ基板PB0 のCPU
(CPU0 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されているアドレス0x0000 0000に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB0 のキャッシュメモリC0 は読み出
しミスを起こし(2)、内部バスB0 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
B0 上の主メモリM0 に割り当てれられたものである
が、このプロセッサ基板PB0 上の主記憶タグMTag0
の示す共有状態が状態Gであるので、このプロセッサ基
板PB0 の共有管理部S0 は主メモリM0 にアクセスす
る(4)と共に、共有バスSBに共有読み出しRSを発
行する(4)。
(CPU0 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されているアドレス0x0000 0000に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB0 のキャッシュメモリC0 は読み出
しミスを起こし(2)、内部バスB0 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
B0 上の主メモリM0 に割り当てれられたものである
が、このプロセッサ基板PB0 上の主記憶タグMTag0
の示す共有状態が状態Gであるので、このプロセッサ基
板PB0 の共有管理部S0 は主メモリM0 にアクセスす
る(4)と共に、共有バスSBに共有読み出しRSを発
行する(4)。
【0147】プロセッサ基板PB1 からPB3 は共有バ
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 とPB3 はキャッシュ状態タグC
Tag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1はキャッシュ状態タグC
Tag1 が状態Mなので、その内部バスB1 に共有読み出
しCRを発行すると共に共有バスSBからの要求に介入
し(6)、プロセッサ基板PB1 上のキャッシュメモリ
C1 からこのアドレスのキャッシュラインを読み出す
(7)。この時、このキャッシュメモリC1 のキャッシ
ュ状態がMからSに遷移する。
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 とPB3 はキャッシュ状態タグC
Tag2 、CTag3 が無効状態Iなので動作を終了する
(5)。プロセッサ基板PB1はキャッシュ状態タグC
Tag1 が状態Mなので、その内部バスB1 に共有読み出
しCRを発行すると共に共有バスSBからの要求に介入
し(6)、プロセッサ基板PB1 上のキャッシュメモリ
C1 からこのアドレスのキャッシュラインを読み出す
(7)。この時、このキャッシュメモリC1 のキャッシ
ュ状態がMからSに遷移する。
【0148】これにより、プロセッサ基板PB0 上の主
メモリM0 のアクセスが中断される(7)と共に、キャ
ッシュメモリC1 から読み出した最新の値が共有バスS
Bを介してプロセッサ基板PB0 に転送される(8)。
この時点で、キャッシュ状態タグメモリCTag1 のキャ
ッシュ状態がMからSに遷移する(8)。
メモリM0 のアクセスが中断される(7)と共に、キャ
ッシュメモリC1 から読み出した最新の値が共有バスS
Bを介してプロセッサ基板PB0 に転送される(8)。
この時点で、キャッシュ状態タグメモリCTag1 のキャ
ッシュ状態がMからSに遷移する(8)。
【0149】次に、プロセッサ基板PB0 においては、
キャッシュ状態タグメモリCTag0のキャッシュ状態が
IからOに遷移して(9)、所有権が移転されてきたこ
とを示す。共有バスSBを介して転送されたデータはキ
ャッシュメモリC0 にキャッシュされて(10)、キャ
ッシュメモリC0 のキャッシュ状態もIからOに遷移し
て、所有権が移転されてきたことを示す。このキャッシ
ュC0 からCPU(CPU0 )に最新の値が読出される
(11)。
キャッシュ状態タグメモリCTag0のキャッシュ状態が
IからOに遷移して(9)、所有権が移転されてきたこ
とを示す。共有バスSBを介して転送されたデータはキ
ャッシュメモリC0 にキャッシュされて(10)、キャ
ッシュメモリC0 のキャッシュ状態もIからOに遷移し
て、所有権が移転されてきたことを示す。このキャッシ
ュC0 からCPU(CPU0 )に最新の値が読出される
(11)。
【0150】次に、本発明の第3実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
リ型マルチプロセッサシステムについて説明する。
【0151】この第3実施例は上記第1実施例において
キャッシュメモリ2のキャッシュ状態タグ部12と共有
管理部4のキャッシュ状態タグメモリ24で用いるキャ
ッシュ状態をM,E,S,Iの4状態に限定し、状態O
を省略するという改良を加えたものである。
キャッシュメモリ2のキャッシュ状態タグ部12と共有
管理部4のキャッシュ状態タグメモリ24で用いるキャ
ッシュ状態をM,E,S,Iの4状態に限定し、状態O
を省略するという改良を加えたものである。
【0152】実際の回路では各キャッシュ状態は2進数
のビットで表現されるためキャッシュ状態数を2の巾数
とすることが望ましく、このためこの第3実施例のよう
にキャッシュ状態を4状態に限定することによりキャッ
シュ状態タグ部12やキャッシュ状態タグメモリ24の
実現が容易となる。
のビットで表現されるためキャッシュ状態数を2の巾数
とすることが望ましく、このためこの第3実施例のよう
にキャッシュ状態を4状態に限定することによりキャッ
シュ状態タグ部12やキャッシュ状態タグメモリ24の
実現が容易となる。
【0153】4状態だけを使ったキャッシュメモリの一
貫性保持方式としてはBerkeley方式とIllinois方式の2
方式が知られているが、本実施例ではIllinois方式を適
用したものとして説明する。但し、Berkeley方式を用い
ても同様に実現が可能である。
貫性保持方式としてはBerkeley方式とIllinois方式の2
方式が知られているが、本実施例ではIllinois方式を適
用したものとして説明する。但し、Berkeley方式を用い
ても同様に実現が可能である。
【0154】Illinois方式では主メモリ3にいわゆるリ
フレクティブ機能を持たせる。これは、主メモリ3の共
有読み出しの際に介入が発生した時に、主メモリ3の読
み出し動作を中断する代わりに、介入によって内部バス
に転送されてきたデータを主メモリ3に書き込む機能で
ある。この機能によれば、介入を行ったキャッシュは介
入と同時に書き戻し義務を果すことになるので、所有権
の存在を示す状態O(共有ダーティ)は不要となる。
フレクティブ機能を持たせる。これは、主メモリ3の共
有読み出しの際に介入が発生した時に、主メモリ3の読
み出し動作を中断する代わりに、介入によって内部バス
に転送されてきたデータを主メモリ3に書き込む機能で
ある。この機能によれば、介入を行ったキャッシュは介
入と同時に書き戻し義務を果すことになるので、所有権
の存在を示す状態O(共有ダーティ)は不要となる。
【0155】従って、共有管理部4のキャッシュ状態タ
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図30にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図31にまとめたものとなる。
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図30にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図31にまとめたものとなる。
【0156】図32はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上のキャッシュ
メモリC0 で更新されているアドレス0x0000 1000に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB1 のキャッシュメモリC1 は読み出
しミスを起こし(2)、内部バスB1 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
B1 上の主メモリM1 に割り当てられたものではないの
で、プロセッサ基板PB1 の共有管理部S1 は共有バス
SBに共有読み出しRSを発行する(4)。
(CPU1 )が、プロセッサ基板PB0 上のキャッシュ
メモリC0 で更新されているアドレス0x0000 1000に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB1 のキャッシュメモリC1 は読み出
しミスを起こし(2)、内部バスB1 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
B1 上の主メモリM1 に割り当てられたものではないの
で、プロセッサ基板PB1 の共有管理部S1 は共有バス
SBに共有読み出しRSを発行する(4)。
【0157】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はキャッシュ状
態タグCTag2 ,CTag3 が無効状態Iなので動作を終
了する(5)。プロセッサ基板PB0 はキャッシュ状態
タグCTag0 が状態Mなので、その内部バスB0 に共有
読み出しCRを発行して、キャッシュメモリC0 からこ
のアドレスのキャッシュラインを読み出す(6)と共
に、内部バスB0 の介入指示線を駆動して(6)このメ
モリアクセスに介入する。この時、このキャッシュメモ
リC0 はキャッシュ状態をMからSに遷移する。
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はキャッシュ状
態タグCTag2 ,CTag3 が無効状態Iなので動作を終
了する(5)。プロセッサ基板PB0 はキャッシュ状態
タグCTag0 が状態Mなので、その内部バスB0 に共有
読み出しCRを発行して、キャッシュメモリC0 からこ
のアドレスのキャッシュラインを読み出す(6)と共
に、内部バスB0 の介入指示線を駆動して(6)このメ
モリアクセスに介入する。この時、このキャッシュメモ
リC0 はキャッシュ状態をMからSに遷移する。
【0158】これによりプロセッサ基板PB0 上の主メ
モリM0 のアクセスが中断される(7)と共に、キャッ
シュメモリC0 の最新の値が主メモリM0 に書き込まれ
て書き戻し義務が果され、最新の値は共有バスSBを介
して、プロセッサ基板PB1に転送される。この時点
で、キャッシュ状態タグメモリCTag0 はキャッシュ状
態をMからSに遷移し、主記憶タグメモリMTag0 は共
有状態をPからGに遷移する(7)。
モリM0 のアクセスが中断される(7)と共に、キャッ
シュメモリC0 の最新の値が主メモリM0 に書き込まれ
て書き戻し義務が果され、最新の値は共有バスSBを介
して、プロセッサ基板PB1に転送される。この時点
で、キャッシュ状態タグメモリCTag0 はキャッシュ状
態をMからSに遷移し、主記憶タグメモリMTag0 は共
有状態をPからGに遷移する(7)。
【0159】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
て、キャッシュメモリC1 はキャッシュ状態をIからS
に遷移する(9)。このキャッシュC1 からCPU(C
PU1 )に最新の値が読み出される。
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
て、キャッシュメモリC1 はキャッシュ状態をIからS
に遷移する(9)。このキャッシュC1 からCPU(C
PU1 )に最新の値が読み出される。
【0160】図33はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上のキャッシュ
メモリC0 で更新されているアドレス0x0000 1000 に対
して書き込みを行った(1)ときの動作を示している。
プロセッサ基板PB1 のキャッシュメモリC1 は書き込
みミスを起こし(2)、内部バスB1 に排他読み出しC
RIを発行する(3)。このアドレスはプロセッサ基板
PB1 上の主メモリM1に割り当てられたものではない
ので、プロセッサ基板PB1 の共有管理部S1 は共有バ
スSBに排他読み出しRMを発行する(4)。
(CPU1 )が、プロセッサ基板PB0 上のキャッシュ
メモリC0 で更新されているアドレス0x0000 1000 に対
して書き込みを行った(1)ときの動作を示している。
プロセッサ基板PB1 のキャッシュメモリC1 は書き込
みミスを起こし(2)、内部バスB1 に排他読み出しC
RIを発行する(3)。このアドレスはプロセッサ基板
PB1 上の主メモリM1に割り当てられたものではない
ので、プロセッサ基板PB1 の共有管理部S1 は共有バ
スSBに排他読み出しRMを発行する(4)。
【0161】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はキャッシュ状
態タグCTag2 ,CTag3 が無効状態Iなので動作を終
了する(5)。プロセッサ基板PB0 はキャッシュ状態
タグCTag0 が状態Mなので、その内部バスB0 に排他
読み出しCRIを発行して、キャッシュメモリC0 から
このアドレスのキャッシュラインを読み出す(6)と共
に、内部バスB0 の介入指示線を駆動して(6)、この
メモリアクセスに介入する。この時、キャッシュメモリ
C0 はキャッシュ状態をMからIに遷移する。
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はキャッシュ状
態タグCTag2 ,CTag3 が無効状態Iなので動作を終
了する(5)。プロセッサ基板PB0 はキャッシュ状態
タグCTag0 が状態Mなので、その内部バスB0 に排他
読み出しCRIを発行して、キャッシュメモリC0 から
このアドレスのキャッシュラインを読み出す(6)と共
に、内部バスB0 の介入指示線を駆動して(6)、この
メモリアクセスに介入する。この時、キャッシュメモリ
C0 はキャッシュ状態をMからIに遷移する。
【0162】これにより、プロセッサ基板PB0 上の主
メモリM0 のアクセスが中断される(7)と共に、最新
の値は共有バスSBを介してプロセッサ基板PB1 に転
送される。ここで最新の値はいづれプロセッサ基板PB
1 で書き替えられるので、主メモリM0 に書き込む必要
はない。この時点で、キャッシュ状態タグメモリCTag
0 はキャッシュ状態をMからIに遷移し、主記憶タグメ
モリMTag0 は共有状態をPからGに遷移する(7)。
メモリM0 のアクセスが中断される(7)と共に、最新
の値は共有バスSBを介してプロセッサ基板PB1 に転
送される。ここで最新の値はいづれプロセッサ基板PB
1 で書き替えられるので、主メモリM0 に書き込む必要
はない。この時点で、キャッシュ状態タグメモリCTag
0 はキャッシュ状態をMからIに遷移し、主記憶タグメ
モリMTag0 は共有状態をPからGに遷移する(7)。
【0163】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
て、キャッシュメモリC1 はキャッシュ状態をIからM
に遷移する(9)。このキャッシュC1 に対してCPU
(CPU1 )が書き込みを行う。
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
て、キャッシュメモリC1 はキャッシュ状態をIからM
に遷移する(9)。このキャッシュC1 に対してCPU
(CPU1 )が書き込みを行う。
【0164】図34はプロセッサ基板PB2 のCPU
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新させているアドレス0x0000 1000 に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB2 のキャッシュメモリC2 は読み出
しミスを起こし(2)、内部バスB2 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
B2 上の主メモリM2 に割り当てられたものではないの
で、プロセッサ基板PB2 の共有管理部S2 は共有バス
SBに共有読み出しRSを発行する(4)。
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新させているアドレス0x0000 1000 に対
して読み出しを行った(1)ときの動作を示している。
プロセッサ基板PB2 のキャッシュメモリC2 は読み出
しミスを起こし(2)、内部バスB2 に共有読み出しC
Rを発行する(3)。このアドレスはプロセッサ基板P
B2 上の主メモリM2 に割り当てられたものではないの
で、プロセッサ基板PB2 の共有管理部S2 は共有バス
SBに共有読み出しRSを発行する(4)。
【0165】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はこのキャッシュライン
のコピーをキャッシュメモリC3 にも主メモリM3 にも
持たないので動作を終了する(5)。プロセッサ基板P
B1 はキャッシュ状態タグCTag1 が状態Mなので、そ
の内部バスに共有読み出しCRを発行して(5)、キャ
ッシュメモリC1 からこのアドレスの最新の値を読み出
す(6)と共に、内部バスの介入指示線を駆動して介入
を示す。この時点で、キャッシュメモリC1 はキャッシ
ュ状態をMからSに遷移させ、共有管理部S1 のキャッ
シュ状態タグCTag1 もキャッシュ状態をMからSに遷
移させる(7)。そして、最新の値は共有バスSBを介
して介入指示線の介入指示と共にプロセッサ基板PB2
に転送される(7)。
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はこのキャッシュライン
のコピーをキャッシュメモリC3 にも主メモリM3 にも
持たないので動作を終了する(5)。プロセッサ基板P
B1 はキャッシュ状態タグCTag1 が状態Mなので、そ
の内部バスに共有読み出しCRを発行して(5)、キャ
ッシュメモリC1 からこのアドレスの最新の値を読み出
す(6)と共に、内部バスの介入指示線を駆動して介入
を示す。この時点で、キャッシュメモリC1 はキャッシ
ュ状態をMからSに遷移させ、共有管理部S1 のキャッ
シュ状態タグCTag1 もキャッシュ状態をMからSに遷
移させる(7)。そして、最新の値は共有バスSBを介
して介入指示線の介入指示と共にプロセッサ基板PB2
に転送される(7)。
【0166】プロセッサ基板PB0 はキャッシュ状態タ
グCTag0 が状態Iなので、共有バスSB上の共有読み
出しRSには応答しない。
グCTag0 が状態Iなので、共有バスSB上の共有読み
出しRSには応答しない。
【0167】次に、プロセッサ基板PB2 においては、
キャッシュ状態タグメモリCTag2がキャッシュ状態を
IからSに遷移する(8)が、プロセッサ基板PB0 の
キャッシュ状態タグメモリCTag0 のキャッシュ状態は
Iのままである(8)。
キャッシュ状態タグメモリCTag2がキャッシュ状態を
IからSに遷移する(8)が、プロセッサ基板PB0 の
キャッシュ状態タグメモリCTag0 のキャッシュ状態は
Iのままである(8)。
【0168】そして、共有バスSBを介して転送された
データがキャッシュメモリC2 にキャッシュされて、キ
ャッシュメモリC2 はキャッシュ状態をIからSに遷移
する(9)。このキャッシュC2 からCPU(CP
U2 )に最新の値が読み出される。
データがキャッシュメモリC2 にキャッシュされて、キ
ャッシュメモリC2 はキャッシュ状態をIからSに遷移
する(9)。このキャッシュC2 からCPU(CP
U2 )に最新の値が読み出される。
【0169】一方、プロセッサ基板PB0 では、共有バ
スSBの介入指示線の介入指示に応じて共有バスを介し
て転送されたこのキャッシュラインの最新の値が主メモ
リM0 に書き込まれて(9)、書き戻し義務が果たされ
る。
スSBの介入指示線の介入指示に応じて共有バスを介し
て転送されたこのキャッシュラインの最新の値が主メモ
リM0 に書き込まれて(9)、書き戻し義務が果たされ
る。
【0170】次に、本発明の第4実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
リ型マルチプロセッサシステムについて説明する。
【0171】この第4実施例は上記第1実施例において
共有管理部4の主記憶タグメモリ27で用いる共有状態
に他のプロセッサ基板上のキャッシュメモリで書き変え
られているか否か、即ち他のプロセッサ基板上に所有権
が存在するか否か、を示す情報を、他のプロセッサ基板
上のキャッシュメモリからのアクセスの有無に加えると
いう改良を加えたものである。
共有管理部4の主記憶タグメモリ27で用いる共有状態
に他のプロセッサ基板上のキャッシュメモリで書き変え
られているか否か、即ち他のプロセッサ基板上に所有権
が存在するか否か、を示す情報を、他のプロセッサ基板
上のキャッシュメモリからのアクセスの有無に加えると
いう改良を加えたものである。
【0172】この追加の情報は所有権がプロセッサ基板
上に不在であるか否かを示すものであるため、主メモリ
3に対して読み出しを行う際に介入が起こるか否かを前
もって知らせることが可能である。
上に不在であるか否かを示すものであるため、主メモリ
3に対して読み出しを行う際に介入が起こるか否かを前
もって知らせることが可能である。
【0173】この追加の情報を表すビットは共有バス6
上に排他読み出しRMと無効化要求INVが発行された
時に駆動され、共有バス6上に書き戻しWBが発行され
た時に解除されることで、所有権の所在を正確に反映出
来るようにされる。
上に排他読み出しRMと無効化要求INVが発行された
時に駆動され、共有バス6上に書き戻しWBが発行され
た時に解除されることで、所有権の所在を正確に反映出
来るようにされる。
【0174】従って、この第4実施例では、主記憶タグ
メモリ27は以下の3状態P,G,Aのいずれかを取り
得る。
メモリ27は以下の3状態P,G,Aのいずれかを取り
得る。
【0175】[P]:他のプロセッサ基板のキャッシュ
にコピーがない。
にコピーがない。
【0176】[G]:他のプロセッサ基板のキャッシュ
にコピーが存在する可能性があるが、所有権はこのプロ
セッサ基板にある。
にコピーが存在する可能性があるが、所有権はこのプロ
セッサ基板にある。
【0177】[A]:他のプロセッサ基板のキャッシュ
に所有権がある。
に所有権がある。
【0178】ここで、所有権が存在するということは、
キャッシュにコピーがあることをも意味するので、これ
ら3状態で全ての状況をカバーできる。
キャッシュにコピーがあることをも意味するので、これ
ら3状態で全ての状況をカバーできる。
【0179】この第4実施例では、主メモリ3に対して
読み出しを行なう際に介入が起こるか否かを、所有バス
6からの介入を待つことなく主記憶タグメモリの共有状
態から前もって知ることが可能なため、指定されたアド
レスを割り当てられた主メモリ3を持つプロセッサ基板
での動作を主記憶タグメモリの共有状態に応じて以下の
様にすることで、共有バス6上のトラフィックを減らす
ことが可能である。
読み出しを行なう際に介入が起こるか否かを、所有バス
6からの介入を待つことなく主記憶タグメモリの共有状
態から前もって知ることが可能なため、指定されたアド
レスを割り当てられた主メモリ3を持つプロセッサ基板
での動作を主記憶タグメモリの共有状態に応じて以下の
様にすることで、共有バス6上のトラフィックを減らす
ことが可能である。
【0180】[P]:読み書き共に共有バス6を介さず
に内部バス5のみで行う。
に内部バス5のみで行う。
【0181】[G]:読み出しは内部バス5のみで行
い、書き込みは共有バス6に無効化要求INVを発行し
て行う。
い、書き込みは共有バス6に無効化要求INVを発行し
て行う。
【0182】[A]:読み出しは主メモリ3へのアクセ
スを中断して共有バス6からの介入を待って行い、書き
込みは共有バス6に無効化要求INVを発行して行う。
スを中断して共有バス6からの介入を待って行い、書き
込みは共有バス6に無効化要求INVを発行して行う。
【0183】又、この第4実施例では、キャッシュリフ
ィルを行なった際に共有状態が[P]であれば、他のキ
ャッシュにコピーが存在しないことを意味するので、キ
ャッシュ状態を状態E(排他クリーン)に設定出来る。
キャッシュ状態がEの時には書き込み、読み出し、リプ
レースの全てを内部バス5のみを使って行うことが可能
なので、共有バス6上の不要なトラフィックを削減出来
る。
ィルを行なった際に共有状態が[P]であれば、他のキ
ャッシュにコピーが存在しないことを意味するので、キ
ャッシュ状態を状態E(排他クリーン)に設定出来る。
キャッシュ状態がEの時には書き込み、読み出し、リプ
レースの全てを内部バス5のみを使って行うことが可能
なので、共有バス6上の不要なトラフィックを削減出来
る。
【0184】又、自分のプロセッサ基板上の主メモリに
対するアクセスであっても、共有状態が[A]であれ
ば、他のプロセッサ基板上のキャッシュが介入を行うの
で、主メモリ3にアクセスする必要はなく、内部バス5
のトラフィックを削減出来る。
対するアクセスであっても、共有状態が[A]であれ
ば、他のプロセッサ基板上のキャッシュが介入を行うの
で、主メモリ3にアクセスする必要はなく、内部バス5
のトラフィックを削減出来る。
【0185】従って、共有管理部4のキャッシュ状態タ
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図35にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図36にまとめたものとなる。
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図35にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図36にまとめたものとなる。
【0186】図37はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上の主メモリM
0 に記憶されているアドレス0x0000 1000 に対して書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB1 のキャッシュメモリC1 は読み出しミスを
起こし(2)、内部バスB1 に排他読み出しCRIを発
行する(3)。このアドレスはプロセッサ基板PB1 上
の主メモリM1 に割り当てられたものではないので、プ
ロセッサ基板PB1 の共有管理部S1 は共有バスSBに
排他読み出しRMを発行する(4)。
(CPU1 )が、プロセッサ基板PB0 上の主メモリM
0 に記憶されているアドレス0x0000 1000 に対して書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB1 のキャッシュメモリC1 は読み出しミスを
起こし(2)、内部バスB1 に排他読み出しCRIを発
行する(3)。このアドレスはプロセッサ基板PB1 上
の主メモリM1 に割り当てられたものではないので、プ
ロセッサ基板PB1 の共有管理部S1 は共有バスSBに
排他読み出しRMを発行する(4)。
【0187】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 は、このキャッ
シュラインのコピーをキャッシュメモリC2 ,C3 にも
主メモリM2 ,M3 にも持たないので動作を終了する
(5)。プロセッサ基板PB0 はこのアドレスが割り当
てられた主メモリM0 を持つので、その内部バスB0 に
排他読み出しCRIを発行して(5)、主メモリM0 か
らこのキャッシュラインを読み出す(6)。
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 は、このキャッ
シュラインのコピーをキャッシュメモリC2 ,C3 にも
主メモリM2 ,M3 にも持たないので動作を終了する
(5)。プロセッサ基板PB0 はこのアドレスが割り当
てられた主メモリM0 を持つので、その内部バスB0 に
排他読み出しCRIを発行して(5)、主メモリM0 か
らこのキャッシュラインを読み出す(6)。
【0188】読み出されたデータは共有バスSBを介し
てプロセッサ基板PB1 に転送される(7)。この時点
で主記憶タグメモリMTag0 の共有状態はPからAに遷
移して(7)、他のプロセッサ基板に所有権が移転した
ことを示すが、キャッシュ状態タグメモリCTag0 のキ
ャッシュ状態はIのままである。
てプロセッサ基板PB1 に転送される(7)。この時点
で主記憶タグメモリMTag0 の共有状態はPからAに遷
移して(7)、他のプロセッサ基板に所有権が移転した
ことを示すが、キャッシュ状態タグメモリCTag0 のキ
ャッシュ状態はIのままである。
【0189】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
(9)、キャッシュメモリC1はキャッシュ状態をIか
らMに遷移する(9)。このキャッシュC1 に対してC
PU(CPU1 )が書き込みを行う。
キャッシュ状態タグメモリCTag1がキャッシュ状態を
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
(9)、キャッシュメモリC1はキャッシュ状態をIか
らMに遷移する(9)。このキャッシュC1 に対してC
PU(CPU1 )が書き込みを行う。
【0190】図38は、プロセッサ基板PB2 のCPU
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0 からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB2 のキャッシュ
メモリC2 は読み出しミスを起こし(2)、内部バスB
2 に共有読み出しCRを発行する(3)。このアドレス
はプロセッサ基板PB2 上の主メモリM2 に割り当てら
れたものではないので、プロセッサ基板PB2 の共有管
理部S2 は共有バスSBに共有読み出しRSを発行する
(4)。
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0 からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB2 のキャッシュ
メモリC2 は読み出しミスを起こし(2)、内部バスB
2 に共有読み出しCRを発行する(3)。このアドレス
はプロセッサ基板PB2 上の主メモリM2 に割り当てら
れたものではないので、プロセッサ基板PB2 の共有管
理部S2 は共有バスSBに共有読み出しRSを発行する
(4)。
【0191】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB0 とPB3 はキャッシュ状
態タグCTag0 ,CTag3 が無効状態Iなので、動作を
終了する(5)。特に、プロセッサ基板PB0 はこのア
ドレスが割り当てあられた主メモリM0 を持つが、主記
憶タグメモリMTag0 が状態Aで所有権の不在を示して
いることから内部バスB0 には一斉コマンドを発行しな
い。
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB0 とPB3 はキャッシュ状
態タグCTag0 ,CTag3 が無効状態Iなので、動作を
終了する(5)。特に、プロセッサ基板PB0 はこのア
ドレスが割り当てあられた主メモリM0 を持つが、主記
憶タグメモリMTag0 が状態Aで所有権の不在を示して
いることから内部バスB0 には一斉コマンドを発行しな
い。
【0192】一方、プロセッサ基板PB1 はキャッシュ
状態タグCTag1 が状態Mなので、その内部バスB1 に
共有読み出しCRを発行して(5)、キャッシュメモリ
C1からこのアドレスの最新の値を読み出す(6)。こ
の時点で、キャッシュメモリC1 はキャッシュ状態をM
からOに遷移し(6)、キャッシュ状態タグメモリCT
ag1 もキャッシュ状態をMからOに遷移する(7)。読
み出された最新の値は共有バスSBを介してプロセッサ
基板PB2 に転送される(7)。
状態タグCTag1 が状態Mなので、その内部バスB1 に
共有読み出しCRを発行して(5)、キャッシュメモリ
C1からこのアドレスの最新の値を読み出す(6)。こ
の時点で、キャッシュメモリC1 はキャッシュ状態をM
からOに遷移し(6)、キャッシュ状態タグメモリCT
ag1 もキャッシュ状態をMからOに遷移する(7)。読
み出された最新の値は共有バスSBを介してプロセッサ
基板PB2 に転送される(7)。
【0193】次に、プロセッサ基板PB2 においては、
キャッシュ状態タグメモリCTag2がキャッシュ状態を
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC2 にキャッシュされ
て、キャッシュメモリC2 はキャッシュ状態をIからS
に遷移する(9)。このキャッシュC2 からCPU(C
PU2 )に最新の値が読み出される。
キャッシュ状態タグメモリCTag2がキャッシュ状態を
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC2 にキャッシュされ
て、キャッシュメモリC2 はキャッシュ状態をIからS
に遷移する(9)。このキャッシュC2 からCPU(C
PU2 )に最新の値が読み出される。
【0194】図39はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB1 上のキャッシュ
メモリで更新されて、その所有権がプロセッサ基板PB
0 からプロセッサ基板PB1 に移転しているアドレス0x
0000 1000 に対してキャッシュの衝突又はキャッシュフ
ラッシュ命令に基づいて書き戻し(リプレース)を行っ
た(1)ときの動作を示している。プロセッサ基板PB
1 のキャッシュメモリC2 は最新の値を読み出し
(2)、キャッシュメモリC2 はキャッシュ状態をMか
らIに遷移し、内部バスB1 に書き戻しWRを発行する
(3)。このアドレスはプロセッサ基板PB1 上の主メ
モリM1 に割り当てられたものではないので、プロセッ
サ基板PB1 の共有管理部S1 は共有バスSBに書き戻
しWBを発行して(4)最新の値を転送すると共に、キ
ャッシュ状態タグメモリCTag1 のキャッシュ状態をM
からIに遷移する。
(CPU1 )が、プロセッサ基板PB1 上のキャッシュ
メモリで更新されて、その所有権がプロセッサ基板PB
0 からプロセッサ基板PB1 に移転しているアドレス0x
0000 1000 に対してキャッシュの衝突又はキャッシュフ
ラッシュ命令に基づいて書き戻し(リプレース)を行っ
た(1)ときの動作を示している。プロセッサ基板PB
1 のキャッシュメモリC2 は最新の値を読み出し
(2)、キャッシュメモリC2 はキャッシュ状態をMか
らIに遷移し、内部バスB1 に書き戻しWRを発行する
(3)。このアドレスはプロセッサ基板PB1 上の主メ
モリM1 に割り当てられたものではないので、プロセッ
サ基板PB1 の共有管理部S1 は共有バスSBに書き戻
しWBを発行して(4)最新の値を転送すると共に、キ
ャッシュ状態タグメモリCTag1 のキャッシュ状態をM
からIに遷移する。
【0195】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の書き戻しWBを見て動作を開始する
が、プロセッサ基板PB2 とPB3 はこのキャッシュラ
インを書き戻すエントリを主メモリM2 ,M3 に持たな
いので動作を終了する(5)。プロセッサ基板PB0 は
このアドレスが割り当てられた主メモリM0 を持つの
で、その内部バスB0 に書き戻しWRを発行し(5)、
主記憶タグメモリMTag0 の共有状態をAからGに遷移
して、所有権を取り戻したことを示す。共有バスSBを
介して転送された最新の値が主メモリM0 に書き戻され
る(6)。
は共有バスSB上の書き戻しWBを見て動作を開始する
が、プロセッサ基板PB2 とPB3 はこのキャッシュラ
インを書き戻すエントリを主メモリM2 ,M3 に持たな
いので動作を終了する(5)。プロセッサ基板PB0 は
このアドレスが割り当てられた主メモリM0 を持つの
で、その内部バスB0 に書き戻しWRを発行し(5)、
主記憶タグメモリMTag0 の共有状態をAからGに遷移
して、所有権を取り戻したことを示す。共有バスSBを
介して転送された最新の値が主メモリM0 に書き戻され
る(6)。
【0196】図40は、プロセッサ基板PB0 のCPU
(CPU0 )がその主メモリM0 に割り当てられたアド
レス0x0000 1000 に読み出しを行った(1)ときの動作
を示している。プロセッサ基板PB0 のキャッシュメモ
リC0 は読み出しミスを起こし(2)、内部バスB0 に
共有読み出しCRを発行する(3)。主記憶タグメモリ
MTag0 の共有状態がPで(4)、完全に排他なprivat
e 状態であることを示している(5)ので共有バスSB
にアクセスすることなく、主メモリM0 に直接アクセス
を行い、このアドレスのデータを読み出し(4)、これ
をキャッシュメモリC0 にキャッシュする(5)。この
キャッシュC0 からCPU0 がこのキャッシュラインを
読み出す。
(CPU0 )がその主メモリM0 に割り当てられたアド
レス0x0000 1000 に読み出しを行った(1)ときの動作
を示している。プロセッサ基板PB0 のキャッシュメモ
リC0 は読み出しミスを起こし(2)、内部バスB0 に
共有読み出しCRを発行する(3)。主記憶タグメモリ
MTag0 の共有状態がPで(4)、完全に排他なprivat
e 状態であることを示している(5)ので共有バスSB
にアクセスすることなく、主メモリM0 に直接アクセス
を行い、このアドレスのデータを読み出し(4)、これ
をキャッシュメモリC0 にキャッシュする(5)。この
キャッシュC0 からCPU0 がこのキャッシュラインを
読み出す。
【0197】これに伴い、キャッシュメモリC0 をキャ
ッシュ状態タグメモリCTag0 のキャッシュ状態がIか
らEに遷移する(5)。
ッシュ状態タグメモリCTag0 のキャッシュ状態がIか
らEに遷移する(5)。
【0198】その後、このアドレスに対するCPU(C
PU0 )からのアクセスはキャッシュメモリC0 でキャ
ッシュヒットするので、内部バスB0 にコマンドを出す
ことなく行えるようになる。
PU0 )からのアクセスはキャッシュメモリC0 でキャ
ッシュヒットするので、内部バスB0 にコマンドを出す
ことなく行えるようになる。
【0199】次に、本発明の第5実施例の分散共有メモ
リ型マルチプロセッサシステムについて説明する。
リ型マルチプロセッサシステムについて説明する。
【0200】この第5実施例は上記第1実施例の改良で
ある上記第4実施例を更に改良して、主記憶タグメモリ
27で用いる共有状態の意味を変えて他のプロセッサ基
板上のキャッシュメモリで書き変えられているか否か、
即ち他のプロセッサ基板上に所有権が存在するか否か、
のみを示す2状態にしたものである。
ある上記第4実施例を更に改良して、主記憶タグメモリ
27で用いる共有状態の意味を変えて他のプロセッサ基
板上のキャッシュメモリで書き変えられているか否か、
即ち他のプロセッサ基板上に所有権が存在するか否か、
のみを示す2状態にしたものである。
【0201】このように共有状態を2状態に限定するこ
とにより、システムのコスト低減を図ることが可能とな
る。例えば主メモリ3が64メガ・バイトの場合主記憶
タグを64バイトのキャッシュライン単位に持つとする
と、共有状態が2状態ならば1ビットで表すことが可能
であるから、全体として1メガ・ビットの主記憶タグメ
モリで充分であるが、共有状態が第4実施例の様に3状
態の場合は2ビットで表さねばならず、全体として2メ
ガ・ビットの主記憶タグメモリが必要となる。この容量
は現在のSRAM1チップ分の容量に匹敵し、実現は可
能であるが、コストの増大を免れ得ない。
とにより、システムのコスト低減を図ることが可能とな
る。例えば主メモリ3が64メガ・バイトの場合主記憶
タグを64バイトのキャッシュライン単位に持つとする
と、共有状態が2状態ならば1ビットで表すことが可能
であるから、全体として1メガ・ビットの主記憶タグメ
モリで充分であるが、共有状態が第4実施例の様に3状
態の場合は2ビットで表さねばならず、全体として2メ
ガ・ビットの主記憶タグメモリが必要となる。この容量
は現在のSRAM1チップ分の容量に匹敵し、実現は可
能であるが、コストの増大を免れ得ない。
【0202】この第5実施例では主記憶タグメモリ27
は以下の2状態H,Aのいずれかを取り得る。
は以下の2状態H,Aのいずれかを取り得る。
【0203】「H]:他のプロセッサ基板のキャッシュ
にコピーが存在する可能性があるが、所有権はこのプロ
セッサ基板にある。
にコピーが存在する可能性があるが、所有権はこのプロ
セッサ基板にある。
【0204】[A]:他のプロセッサ基板のキャッシュ
に所有権がある。
に所有権がある。
【0205】この第5実施例においては、共有バス6か
らの介入を待つことなく所有権の所在が主記憶タグメモ
リ27の共有状態から前もって知ることが可能なため、
指定されたアドレスを割り当てられた主メモリ3を持つ
プロセッサ基板での動作を主記憶タグメモリ27の共有
状態に応じて以下の様にすることで、共有バス6上のト
ラフィックを減らすことが可能である。
らの介入を待つことなく所有権の所在が主記憶タグメモ
リ27の共有状態から前もって知ることが可能なため、
指定されたアドレスを割り当てられた主メモリ3を持つ
プロセッサ基板での動作を主記憶タグメモリ27の共有
状態に応じて以下の様にすることで、共有バス6上のト
ラフィックを減らすことが可能である。
【0206】[H]:読み出しは内部バス5のみで行
い、書き込みは共有バス6に無効化要求INVを発行し
て行う。
い、書き込みは共有バス6に無効化要求INVを発行し
て行う。
【0207】[A]:読み出しは主メモリ3へのアクセ
スを中断して共有バス6からの介入を待って行い、書き
込みは共有バス6に無効化要求INVを発行して行う。
スを中断して共有バス6からの介入を待って行い、書き
込みは共有バス6に無効化要求INVを発行して行う。
【0208】但し、状態Hにおいては読み出しを内部バ
ス5のみで行うため、他のプロセッサ基板のキャッシュ
にコピーが存在するか否か正確な情報が得られない。こ
のため、キャッシュのリフィル時に共有指示線を駆動し
て共有状態にあるものとしてキャッシュメモリに供給す
る必要がある。
ス5のみで行うため、他のプロセッサ基板のキャッシュ
にコピーが存在するか否か正確な情報が得られない。こ
のため、キャッシュのリフィル時に共有指示線を駆動し
て共有状態にあるものとしてキャッシュメモリに供給す
る必要がある。
【0209】又、共有バス6上に自分の主メモリ3に割
り当てられたアドレスに対するアクセス要求があって
も、主記憶タグメモリ27の共有状態がAであれば他の
プロセッサ基板が介入を行うもので、主メモリ3へのア
クセスは不要であり内部バス5を一斉使わずに済むの
で、この内部バス5のトラフィックも削減出来る。
り当てられたアドレスに対するアクセス要求があって
も、主記憶タグメモリ27の共有状態がAであれば他の
プロセッサ基板が介入を行うもので、主メモリ3へのア
クセスは不要であり内部バス5を一斉使わずに済むの
で、この内部バス5のトラフィックも削減出来る。
【0210】従って、共有管理部4のキャッシュ状態タ
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図41にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図42にまとめたものとなる。
グメモリ24の状態遷移は自分のプロセッサ基板上の主
メモリへのアクセスの際には上記図7にまとめたものに
代わって図41にまとめたものとなり、他のプロセッサ
基板上の主メモリへのアクセスの際には上記図8にまと
めたものに代わって図42にまとめたものとなる。
【0211】図43はプロセッサ基板PB0 のCPU
(CPU0 )が、その主メモリM0 に割り当てられたア
ドレス0x0000 1000 に読み出しを行った(1)ときの動
作を示している。プロセッサ基板PB0 のキャッシュメ
モリC0 は読み出しミスを起こし(2)、内部バスB0
に共有読み出しCRを発行し(3)、主メモリM0 にア
クセスする(4)。主記憶タグメモリMTag0 の共有状
態がHで(4)、他のプロセッサ基板に所有権が不在で
あることを示している(5)ので、共有バスSBにアク
セスすることなく、主メモリM0 に直接アクセスを行
い、このアドレスのデータを読み出し(4)、これをキ
ャッシュメモリC0 にキャッシュする(5)。このキャ
ッシュC0 からCPU0 がこのキャッシュラインを読み
出す。
(CPU0 )が、その主メモリM0 に割り当てられたア
ドレス0x0000 1000 に読み出しを行った(1)ときの動
作を示している。プロセッサ基板PB0 のキャッシュメ
モリC0 は読み出しミスを起こし(2)、内部バスB0
に共有読み出しCRを発行し(3)、主メモリM0 にア
クセスする(4)。主記憶タグメモリMTag0 の共有状
態がHで(4)、他のプロセッサ基板に所有権が不在で
あることを示している(5)ので、共有バスSBにアク
セスすることなく、主メモリM0 に直接アクセスを行
い、このアドレスのデータを読み出し(4)、これをキ
ャッシュメモリC0 にキャッシュする(5)。このキャ
ッシュC0 からCPU0 がこのキャッシュラインを読み
出す。
【0212】これに伴い、キャッシュメモリC0 とキャ
ッシュ状態タグメモリCTag0 のキャッシュ状態がIか
らSに遷移する。
ッシュ状態タグメモリCTag0 のキャッシュ状態がIか
らSに遷移する。
【0213】その後、このアドレスに対するCPU(C
PU0 )からのアクセスはキャッシュメモリC0 でキャ
ッシュヒットするので、内部バスB0 にコマンドを出す
ことなく行えるようになる。
PU0 )からのアクセスはキャッシュメモリC0 でキャ
ッシュヒットするので、内部バスB0 にコマンドを出す
ことなく行えるようになる。
【0214】図44はプロセッサ基板PB1 のCPU
(CPU1 )が、プロセッサ基板PB0 上の主メモリM
0 に記憶されているアドレス0x0000 1000 に対して書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB1 のキャッシュメモリC1 は書き込みミスを
起こし(2)、内部バスB1 に排他読み出しCRIを発
行する(3)。このアドレスはプロセッサ基板PB1 上
の主メモリM1 に割り当てられたものではないので、プ
ロセッサ基板PB1 の共有管理部S1 は共有バスSBに
排他読み出しRMを発行する(4)。
(CPU1 )が、プロセッサ基板PB0 上の主メモリM
0 に記憶されているアドレス0x0000 1000 に対して書き
込みを行った(1)ときの動作を示している。プロセッ
サ基板PB1 のキャッシュメモリC1 は書き込みミスを
起こし(2)、内部バスB1 に排他読み出しCRIを発
行する(3)。このアドレスはプロセッサ基板PB1 上
の主メモリM1 に割り当てられたものではないので、プ
ロセッサ基板PB1 の共有管理部S1 は共有バスSBに
排他読み出しRMを発行する(4)。
【0215】プロセッサ基板PB0 とPB2 からPB3
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はこのキャッシ
ュラインのコピーをキャッシュメモリC2 ,C3 にも主
メモリM2 ,M3 にも持たないので、動作を終了する
(5)。プロセッサ基板PB0 はこのアドレスが割り当
てられた主メモリM0 を持つので、その内部バスB0 に
排他読み出しCRIを発行して(5)、主メモリM0 か
らこのキャッシュラインを読み出す(6)。
は共有バスSB上の排他読み出しRMを見て動作を開始
するが、プロセッサ基板PB2 とPB3 はこのキャッシ
ュラインのコピーをキャッシュメモリC2 ,C3 にも主
メモリM2 ,M3 にも持たないので、動作を終了する
(5)。プロセッサ基板PB0 はこのアドレスが割り当
てられた主メモリM0 を持つので、その内部バスB0 に
排他読み出しCRIを発行して(5)、主メモリM0 か
らこのキャッシュラインを読み出す(6)。
【0216】読み出されたデータは共有バスSBを介し
てプロセッサ基板PB1 に転送される(7)。この時点
で主記憶タグメモリMTag0 の共有状態はHからAに遷
移して、他のプロセッサ基板に所有権が移転したことを
示すが、キャッシュ状態タグメモリCTag0 のキャッシ
ュ状態はIのままである。
てプロセッサ基板PB1 に転送される(7)。この時点
で主記憶タグメモリMTag0 の共有状態はHからAに遷
移して、他のプロセッサ基板に所有権が移転したことを
示すが、キャッシュ状態タグメモリCTag0 のキャッシ
ュ状態はIのままである。
【0217】次に、プロセッサ基板PB1 においては、
キャッシュ状態タグメモリCTag1のキャッシュ状態が
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
(9)、キャッシュメモリC1のキャッシュ状態がIか
らMに遷移する(9)。このキャッシュC1 に対してC
PU(CPU1 )が書き込みを行う。
キャッシュ状態タグメモリCTag1のキャッシュ状態が
IからMに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC1 にキャッシュされ
(9)、キャッシュメモリC1のキャッシュ状態がIか
らMに遷移する(9)。このキャッシュC1 に対してC
PU(CPU1 )が書き込みを行う。
【0218】図45はプロセッサ基板PB0 のCPU
(CPU0 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB0 のキャッシュ
メモリC0 は読み出しミスを起こし(2)、内部バスB
0 に共有読み出しCRを発行し(3)、主メモリM0 に
アクセスする(4)。
(CPU0 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB0 のキャッシュ
メモリC0 は読み出しミスを起こし(2)、内部バスB
0 に共有読み出しCRを発行し(3)、主メモリM0 に
アクセスする(4)。
【0219】しかし、主記憶タグメモリMTag0 の共有
状態がAで(4)、このプロセッサ基板に所有権が不在
であることを示している(5)ので、このプロセッサ基
板PB0 の共有管理部S0 が共有バスSBの介入指示線
を調べることなく主メモリM0 へのアクセスに介入して
(5)、このアクセスを中断(6)する一方、共有バス
SBに共有読み出しRSを発行する(4)。
状態がAで(4)、このプロセッサ基板に所有権が不在
であることを示している(5)ので、このプロセッサ基
板PB0 の共有管理部S0 が共有バスSBの介入指示線
を調べることなく主メモリM0 へのアクセスに介入して
(5)、このアクセスを中断(6)する一方、共有バス
SBに共有読み出しRSを発行する(4)。
【0220】プロセッサ基板PB1 からPB3 は共有バ
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 とPB3 はこのキャッシュライン
のコピーをキャッシュメモリC2 ,C3 にも主メモリM
2 ,M3 にも持たないので動作を終了する(5)。プロ
セッサ基板PB1 は、キャッシュ状態タグCTag1 が状
態Mなので、その内部バスB1 に共有読み出しCRを発
行して(5)、キャッシュメモリC1 からこのアドレス
の最新の値を読み出す(6)。この時点で、キャッシュ
メモリC1 のキャッシュ状態がMからOに遷移し
(6)、キャッシュ状態タグメモリCTag1 のキャッシ
ュ状態もMからOに遷移する(7)。読み出された最新
の値は共有バスSBを介してプロセッサ基板PB0 に転
送される(7)。
スSB上の共有読み出しRSを見て動作を開始するが、
プロセッサ基板PB2 とPB3 はこのキャッシュライン
のコピーをキャッシュメモリC2 ,C3 にも主メモリM
2 ,M3 にも持たないので動作を終了する(5)。プロ
セッサ基板PB1 は、キャッシュ状態タグCTag1 が状
態Mなので、その内部バスB1 に共有読み出しCRを発
行して(5)、キャッシュメモリC1 からこのアドレス
の最新の値を読み出す(6)。この時点で、キャッシュ
メモリC1 のキャッシュ状態がMからOに遷移し
(6)、キャッシュ状態タグメモリCTag1 のキャッシ
ュ状態もMからOに遷移する(7)。読み出された最新
の値は共有バスSBを介してプロセッサ基板PB0 に転
送される(7)。
【0221】次に、プロセッサ基板PB0 においては、
キャッシュ状態タグメモリCTag0のキャッシュ状態が
IからSに遷移する(8)が、主記憶タグメモリMTag
0 の共有状態はAのままで、このプロセッサ基板に所有
権が不在であることを示す。
キャッシュ状態タグメモリCTag0のキャッシュ状態が
IからSに遷移する(8)が、主記憶タグメモリMTag
0 の共有状態はAのままで、このプロセッサ基板に所有
権が不在であることを示す。
【0222】共有バスSBを介して転送されたデータが
キャッシュメモリC0 にキャッシュされて(9)、キャ
ッシュメモリC0 のキャッシュ状態がIからSに遷移す
る(9)。このキャッシュC0 からCPU(CPU0 )
に最新の値が読み出される。
キャッシュメモリC0 にキャッシュされて(9)、キャ
ッシュメモリC0 のキャッシュ状態がIからSに遷移す
る(9)。このキャッシュC0 からCPU(CPU0 )
に最新の値が読み出される。
【0223】図46はプロセッサ基板PB2 のCPU
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB2 のキャッシュ
メモリC2 は読み出しミスを起こし(2)、内部バスB
2 に共有読み出しCRを発行する(3)。このアドレス
はプロセッサ基板PB2 上の主メモリM2 に割り当てら
れたものではないので、プロセッサ基板PB2 の共有管
理部S2 は共有バスに共有読み出しRSを発行する
(4)。
(CPU2 )が、プロセッサ基板PB1 上のキャッシュ
メモリC1 で更新されて、その所有権がプロセッサ基板
PB0からプロセッサ基板PB1 に移転しているアドレ
ス0x0000 1000 に対して読み出しを行った(1)ときの
動作を示している。プロセッサ基板PB2 のキャッシュ
メモリC2 は読み出しミスを起こし(2)、内部バスB
2 に共有読み出しCRを発行する(3)。このアドレス
はプロセッサ基板PB2 上の主メモリM2 に割り当てら
れたものではないので、プロセッサ基板PB2 の共有管
理部S2 は共有バスに共有読み出しRSを発行する
(4)。
【0224】プロセッサ基板PB0 からPB1 とPB3
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はこのキャッシュライン
のコピーをキャッシュメモリC3 にも主メモリM3 にも
持たないので動作を終了し(5)、プロセッサ基板PB
0 は主記憶タグメモリMTag0 が状態Aであるので動作
を終了する(5)。ここで、プロセッサ基板PB0 はこ
のアドレスが割り当てあられた主メモリM0 を持つが、
主記憶タグメモリMTag0 が状態Aで所有権の不在を示
していることから内部バスB0 には一斉コマンドを発行
しない。
は共有バスSB上の共有読み出しRSを見て動作を開始
するが、プロセッサ基板PB3 はこのキャッシュライン
のコピーをキャッシュメモリC3 にも主メモリM3 にも
持たないので動作を終了し(5)、プロセッサ基板PB
0 は主記憶タグメモリMTag0 が状態Aであるので動作
を終了する(5)。ここで、プロセッサ基板PB0 はこ
のアドレスが割り当てあられた主メモリM0 を持つが、
主記憶タグメモリMTag0 が状態Aで所有権の不在を示
していることから内部バスB0 には一斉コマンドを発行
しない。
【0225】一方、プロセッサ基板PB1 はキャッシュ
状態タグCTag1 が状態Mなので、その内部バスB1 に
共有読み出しCRを発行して(5)、キャッシュメモリ
C1からこのアドレスの最新の値を読み出す(6)。こ
の時点で、キャッシュメモリC1 のキャッシュ状態がM
からOに遷移し(6)、キャッシュ状態タグメモリCT
ag1 のキャッシュ状態もMからOに遷移する(7)。読
み出された最新の値は共有バスSBを介してプロセッサ
基板PB2 に転送される(7)。
状態タグCTag1 が状態Mなので、その内部バスB1 に
共有読み出しCRを発行して(5)、キャッシュメモリ
C1からこのアドレスの最新の値を読み出す(6)。こ
の時点で、キャッシュメモリC1 のキャッシュ状態がM
からOに遷移し(6)、キャッシュ状態タグメモリCT
ag1 のキャッシュ状態もMからOに遷移する(7)。読
み出された最新の値は共有バスSBを介してプロセッサ
基板PB2 に転送される(7)。
【0226】次に、プロセッサ基板PB2 においては、
キャッシュ状態タグメモリCTag2のキャッシュ状態が
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC2 にキャッシュされて
(9)、キャッシュメモリC2 のキャッシュ状態がIか
らSに遷移する(9)。このキャッシュC2 からCPU
(CPU2 )に最新の値が読み出される。
キャッシュ状態タグメモリCTag2のキャッシュ状態が
IからSに遷移し(8)、共有バスSBを介して転送さ
れたデータがキャッシュメモリC2 にキャッシュされて
(9)、キャッシュメモリC2 のキャッシュ状態がIか
らSに遷移する(9)。このキャッシュC2 からCPU
(CPU2 )に最新の値が読み出される。
【0227】
【発明の効果】以上のように本発明によれば、同一基板
上のメモリに対する非共有変数のアクセスを、共有バス
を用いることなくかつ一貫性を保証しながら実現するこ
とができる。この同一基板上のメモリに対する非共有変
数のアクセスは、通常メモリアクセスの大部分を占めて
いるため、CPUの実行動作性能の低下を防ぎ、また、
共有バス上の不必要なトラフィックを削減できるのでよ
り多くのプロセッサ基板をバス上に接続することが可能
となる。結果として並列プログラムに共有変数アクセス
に対する制約を加えることなく、高いシステム拡張性を
持つマルチプロセッサシステムを実現できるという多大
な効果を奏する。
上のメモリに対する非共有変数のアクセスを、共有バス
を用いることなくかつ一貫性を保証しながら実現するこ
とができる。この同一基板上のメモリに対する非共有変
数のアクセスは、通常メモリアクセスの大部分を占めて
いるため、CPUの実行動作性能の低下を防ぎ、また、
共有バス上の不必要なトラフィックを削減できるのでよ
り多くのプロセッサ基板をバス上に接続することが可能
となる。結果として並列プログラムに共有変数アクセス
に対する制約を加えることなく、高いシステム拡張性を
持つマルチプロセッサシステムを実現できるという多大
な効果を奏する。
【図1】従来の共有メモリ型マルチプロセッサシステム
の概略ブロック図。
の概略ブロック図。
【図2】従来の分散共有メモリ型マルチプロセッサシス
テムの概略ブロック図。
テムの概略ブロック図。
【図3】本発明の第1実施例の分散共有メモリ型マルチ
プロセッサシステムの概略ブロック図。
プロセッサシステムの概略ブロック図。
【図4】本発明の第1実施例におけるキャッシュメモリ
2の詳細ブロック図。
2の詳細ブロック図。
【図5】本発明の第1実施例における共有管理部4の詳
細ブロック図。
細ブロック図。
【図6】本発明の第1実施例における状態タグ部12の
状態とCPUからの命令及び内部バスからのコマンドに
対する発行コマンド/状態遷移をまとめた表を示す図。
状態とCPUからの命令及び内部バスからのコマンドに
対する発行コマンド/状態遷移をまとめた表を示す図。
【図7】本発明の第1実施例におけるキャッシュ状態タ
グメモリ24の状態と内部バス及び共有バスからのコマ
ンドに対する発行コマンド/状態遷移を、自分の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
グメモリ24の状態と内部バス及び共有バスからのコマ
ンドに対する発行コマンド/状態遷移を、自分の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
【図8】本発明の第1実施例におけるキャッシュ状態タ
グメモリ24の状態と内部バス及び共有バスからのコマ
ンドに対する発行コマンド/状態遷移を、他の基板上の
主メモリに対するアクセスの場合についてまとめた表を
示す図。
グメモリ24の状態と内部バス及び共有バスからのコマ
ンドに対する発行コマンド/状態遷移を、他の基板上の
主メモリに対するアクセスの場合についてまとめた表を
示す図。
【図9】本発明の第1実施例におけるCPUの読み出し
命令に対するキャッシュ制御部及び共有管理部の動作を
示すフローチャートの前半。
命令に対するキャッシュ制御部及び共有管理部の動作を
示すフローチャートの前半。
【図10】本発明の第1実施例におけるCPUの読み出
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの後半。
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの後半。
【図11】本発明の第1実施例におけるCPUの書き込
み命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャート。
み命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャート。
【図12】本発明の第1実施例における共有読み出しに
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
【図13】本発明の第1実施例における排他読み出しに
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
【図14】本発明の第1実施例における無効化要求に対
する共有管理部及びキャッシュ制御部の動作を示すフロ
ーチャート。
する共有管理部及びキャッシュ制御部の動作を示すフロ
ーチャート。
【図15】本発明の分散共有メモリ型マルチプロセッサ
システムの構成例を示す図。
システムの構成例を示す図。
【図16】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図17】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図18】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図19】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図20】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図21】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図22】本発明の第1実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図23】本発明の第2実施例における状態タグ部12
の状態とCPUからの命令及び内部バスからのコマンド
に対する発行コマンド/状態遷移をまとめた表を示す
図。
の状態とCPUからの命令及び内部バスからのコマンド
に対する発行コマンド/状態遷移をまとめた表を示す
図。
【図24】本発明の第2実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
【図25】本発明の第2実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
【図26】本発明の第2実施例におけるCPUの読み出
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの前半。
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの前半。
【図27】本発明の第2実施例におけるCPUの読み出
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの後半。
し命令に対するキャッシュ制御部及び共有管理部の動作
を示すフローチャートの後半。
【図28】本発明の第2実施例における共有読み出しに
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
対する共有管理部及びキャッシュ制御部の動作を示すフ
ローチャート。
【図29】本発明の第2実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図30】本発明の第3実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
【図31】本発明の第3実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
【図32】本発明の第3実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図33】本発明の第3実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図34】本発明の第3実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図35】本発明の第4実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
【図36】本発明の第4実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
【図37】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図38】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図39】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図40】本発明の第4実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図41】本発明の第5実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、自分の基板
上の主メモリに対するアクセスの場合についてまとめた
表を示す図。
【図42】本発明の第5実施例におけるキャッシュ状態
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
タグメモリ24の状態と内部バス及び共有バスからのコ
マンドに対する発行コマンド/状態遷移を、他の基板上
の主メモリに対するアクセスの場合についてまとめた表
を示す図。
【図43】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図44】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図45】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
【図46】本発明の第5実施例の具体的動作例を図15
の構成例において示す図。
の構成例において示す図。
1 CPU 2 キャッシュメモリ 3 主記憶 4 共有管理部 5 内部バス 6 共有バス 11 アドレスタグ部 12 状態タグ部 13 データ記憶部 14 比較器 15 有効/無効判断部 16 hit/miss信号算出部 17 キャッシュ制御部 18 共有指示線 19 コマンド線 20 アドレス線 21 介入指示線 22 データ線 23 キャッシュアドレスタグメモリ 24 キャッシュ状態タグメモリ 25 キャッシュ状態タグメモリ制御部 26 主記憶タグメモリ制御部 27 主記憶タグメモリ 28 外部アクセス制御部 29 内部アクセス制御部
Claims (5)
- 【請求項1】 共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 該各プロセッサ・ユニット上の主メモリの各データ・エ
ントリが他のプロセッサ・ユニット上のCPUキャッシ
ュメモリに共有されているか否かを示す主メモリの各デ
ータ・エントリの共有状態を記憶する主記憶タグ手段
と、 CPUによる主メモリの或るデータ・エントリに対する
書き込み命令の実行に対して、主記憶タグ手段の該或る
データ・エントリの共有状態が該或るデータ・エントリ
は他のプロセッサ・ユニット上のCPUキャッシュメモ
リに共有されていることを示している時に、該他のプロ
セッサ・ユニット上のCPUキャッシュメモリの該或る
データ・エントリを無効化するように該他のプロセッサ
・ユニットに命令する無効化命令を共有バス上に発行す
る命令手段と、 CPUキャッシュメモリに記憶された選択されたデータ
・エントリのアドレスを記憶するキャッシュ・タグ手段
と、 某データ・エントリに対する無効化命令を共有バスから
受け取り該某データ・エントリのアドレスがキャッシュ
・タグ手段に記憶されている時に、CPUキャッシュメ
モリの該某データ・エントリを無効化する制御手段と、
を含むものと、から成るシステム。 - 【請求項2】 共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 CPUキャッシュメモリの各データ・エントリが該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないか否か
を示すCPUキャッシュメモリの各データ・エントリの
キャッシュ状態を記憶するキャッシュ状態タグ手段と、 共有バスを介して受け取った別のプロセッサ・ユニット
からの或るデータ・エントリに対するアクセス要求に対
して、キャッシュ状態タグ手段の該或るデータ・エント
リのキャッシュ状態が該或るデータ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該或るデータ・エントリへのアクセスに介入する
介入手段と、 介入手段が該別のプロセッサ上の主メモリの該或るデー
タ・エントリへのアクセスに介入した時に、キャッシュ
状態タグ手段の該或るデータ・エントリのキャッシュ状
態を、該或るデータ・エントリの所有権を持った一キャ
ッシュ状態から該或るデータ・エントリの所有権を持た
ない他のキャッシュ状態に状態遷移させ、該各プロセッ
サ・ユニットからの某データ・エントリへのアクセスが
他のプロセッサ・ユニットの介入手段により介入された
時に、キャッシュ状態タグ手段の該某データ・エントリ
のキャッシュ状態を、該某データ・エントリの所有権を
持たない一キャッシュ状態から該某データ・エントリの
所有権を持った他のキャッシュ状態に状態遷移させるよ
うに制御する制御手段と、を含むものと、から成るシス
テム。 - 【請求項3】 共有バスを介して結合された複数のプロ
セッサ・ユニットからなる分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 該各プロセッサ・ユニット上の主メモリの各データ・エ
ントリが他のプロセッサ・ユニット上のCPUキャッシ
ュメモリに共有されているか否かを示す主メモリの各デ
ータ・エントリの共有状態を記憶する主記憶タグ手段
と、 CPUキャッシュメモリの各データ・エントリが該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないか否か
を示すCPUキャッシュメモリの各データ・エントリの
キャッシュ状態を記憶するキャッシュ状態タグ手段と、 CPUによる主メモリの或るデータ・エントリに対する
読み出し/書き込み命令の実行に対して、主記憶タグ手
段の該或るデータ・エントリの共有状態が該或るデータ
・エントリは他のプロセッサ・ユニット上のCPUキャ
ッシュメモリに共有されていることを示している時に、
該他のプロセッサ・ユニット上のCPUキャッシュメモ
リの該或るデータ・エントリを共有バス上に読み出すよ
うに該他のプロセッサ・ユニットに命令する読み出し命
令を共有バス上に発行する命令手段と、 共有バスを介して受け取った別のプロセッサ・ユニット
からの読み出し命令に対して、キャッシュ状態タグ手段
の某データ・エントリのキャッシュ状態が該某データ・
エントリは該各プロセッサ・ユニット上のCPUキャッ
シュメモリにおいて更新され且つ共有メモリに書き戻さ
れていないことを示している時に、該別のプロセッサ・
ユニット上の主メモリの該某データ・エントリへのアク
セスに介入する介入手段と、を含むものと、から成るシ
ステム。 - 【請求項4】 共有バスを介して結合された複数のプロ
セッサ・ユニットから成る分散共有メモリ型マルチプロ
セッサ・システムであって、各プロセッサ・ユニット
が、 CPUと、 内部バスを介してCPUと接続され、システムの共有メ
モリの分散された一部を記憶する主メモリと、 内部バスを介して主メモリと接続され、共有メモリの選
択されたデータ・エントリをキャッシュするCPUキャ
ッシュメモリと、 内部バスを介して主メモリとCPUキャッシュメモリと
接続され、内部バスと共有バスをインタフェースする共
有管理部で、 CPUキャッシュメモリの各データ・エントリが該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないか否か
を示すCPUキャッシュメモリの各データ・エントリの
キャッシュ状態を記憶するキャッシュ状態タグ手段と、 共有バスを介して受け取った別のプロセッサ・ユニット
からの或るデータ・エントリに対するアクセス要求に対
して、キャッシュ状態タグ手段の該或るデータ・エント
リのキャッシュ状態が該或るデータ・エントリは該各プ
ロセッサ・ユニット上のCPUキャッシュメモリにおい
て更新され且つ共有メモリに書き戻されていないことを
示している時に、該別のプロセッサ・ユニット上の主メ
モリの該或るデータ・エントリへのアクセスに介入する
介入手段と、を含むものと、から成るシステム。 - 【請求項5】 請求項4記載のシステムにおいて、共有
管理部が更に、 該各プロセッサ・ユニット上の主メモリの各データ・エ
ントリの共有状態を記憶する主記憶タグ手段で、共有状
態は該各データ・エントリの所有権が該各プロセッサ・
ユニット上に存在することを示す[H]状態と、該各デ
ータ・エントリの所有権が他のプロセッサ・ユニット上
に存在することを示す[A]状態とを含むものと、 CPUによる主メモリの某データ・エントリに対するア
クセス要求に対して、主記憶タグ手段の該某データ・エ
ントリの共有状態が[A]状態である時に、該他のプロ
セッサ・ユニット上のCPUキャッシュメモリの該某デ
ータ・エントリを共有バス上に読み出すように該他のプ
ロセッサ・ユニットに命令する読み出し命令を共有バス
上に発行する命令手段と、を含むシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5199772A JPH06110844A (ja) | 1992-08-11 | 1993-08-11 | 分散共有メモリ型マルチプロセッサシステム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4-213133 | 1992-08-11 | ||
JP21313392 | 1992-08-11 | ||
JP5199772A JPH06110844A (ja) | 1992-08-11 | 1993-08-11 | 分散共有メモリ型マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06110844A true JPH06110844A (ja) | 1994-04-22 |
Family
ID=26511742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5199772A Pending JPH06110844A (ja) | 1992-08-11 | 1993-08-11 | 分散共有メモリ型マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06110844A (ja) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH086856A (ja) * | 1994-06-15 | 1996-01-12 | Nec Corp | バスインタフェースアダプタ |
JPH08185359A (ja) * | 1994-10-31 | 1996-07-16 | Toshiba Corp | メモリサブシステム |
US5890217A (en) * | 1995-03-20 | 1999-03-30 | Fujitsu Limited | Coherence apparatus for cache of multiprocessor |
US6141733A (en) * | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
US6173370B1 (en) | 1997-06-19 | 2001-01-09 | Nec Corporation | Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction |
US6192451B1 (en) | 1998-02-17 | 2001-02-20 | International Business Machines Corporation | Cache coherency protocol for a data processing system including a multi-level memory hierarchy |
US6263407B1 (en) | 1998-02-17 | 2001-07-17 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
US6272603B1 (en) | 1998-02-17 | 2001-08-07 | International Business Machines Corporation | Cache coherency protocol having hovering (H), recent (R), and tagged (T) states |
US6292872B1 (en) | 1998-02-17 | 2001-09-18 | International Business Machines Corporation | Cache coherency protocol having hovering (H) and recent (R) states |
US6415358B1 (en) | 1998-02-17 | 2002-07-02 | International Business Machines Corporation | Cache coherency protocol having an imprecise hovering (H) state for instructions and data |
JP2005148771A (ja) * | 2002-06-28 | 2005-06-09 | Sun Microsyst Inc | コンピュータ・システム内でキャッシュ整合性を維持するためのメカニズム |
JP2006085292A (ja) * | 2004-09-14 | 2006-03-30 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
US7093078B2 (en) | 1999-12-09 | 2006-08-15 | Nec Corporation | Data access method in the network system and the network system |
WO2007096979A1 (ja) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | 情報処理装置およびデータ転送方法 |
JP2007272922A (ja) * | 2001-06-04 | 2007-10-18 | Fujitsu Ltd | 複数ノード間での通信方法、相互接続ポートおよび相互接続システム |
WO2010038301A1 (ja) * | 2008-10-02 | 2010-04-08 | 富士通株式会社 | メモリアクセス方法及び情報処理装置 |
US7904665B2 (en) | 2006-01-26 | 2011-03-08 | Nec Computer Techno, Ltd. | Multiprocessor system and its operational method |
US8032717B2 (en) | 2005-01-24 | 2011-10-04 | Fujitsu Limited | Memory control apparatus and method using retention tags |
US10747699B2 (en) | 2016-08-31 | 2020-08-18 | Socionext Inc | Bus control circuit, semiconductor integrated circuit, circuit board, information processing device and bus control method |
US11954034B2 (en) | 2022-03-28 | 2024-04-09 | Woven By Toyota, Inc. | Cache coherency protocol for encoding a cache line with a domain shared state |
-
1993
- 1993-08-11 JP JP5199772A patent/JPH06110844A/ja active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH086856A (ja) * | 1994-06-15 | 1996-01-12 | Nec Corp | バスインタフェースアダプタ |
JPH08185359A (ja) * | 1994-10-31 | 1996-07-16 | Toshiba Corp | メモリサブシステム |
US5890217A (en) * | 1995-03-20 | 1999-03-30 | Fujitsu Limited | Coherence apparatus for cache of multiprocessor |
US6173370B1 (en) | 1997-06-19 | 2001-01-09 | Nec Corporation | Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction |
US6141733A (en) * | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
US6192451B1 (en) | 1998-02-17 | 2001-02-20 | International Business Machines Corporation | Cache coherency protocol for a data processing system including a multi-level memory hierarchy |
US6263407B1 (en) | 1998-02-17 | 2001-07-17 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
US6272603B1 (en) | 1998-02-17 | 2001-08-07 | International Business Machines Corporation | Cache coherency protocol having hovering (H), recent (R), and tagged (T) states |
US6292872B1 (en) | 1998-02-17 | 2001-09-18 | International Business Machines Corporation | Cache coherency protocol having hovering (H) and recent (R) states |
US6415358B1 (en) | 1998-02-17 | 2002-07-02 | International Business Machines Corporation | Cache coherency protocol having an imprecise hovering (H) state for instructions and data |
US7093078B2 (en) | 1999-12-09 | 2006-08-15 | Nec Corporation | Data access method in the network system and the network system |
JP2007272922A (ja) * | 2001-06-04 | 2007-10-18 | Fujitsu Ltd | 複数ノード間での通信方法、相互接続ポートおよび相互接続システム |
JP2005148771A (ja) * | 2002-06-28 | 2005-06-09 | Sun Microsyst Inc | コンピュータ・システム内でキャッシュ整合性を維持するためのメカニズム |
JP2006085292A (ja) * | 2004-09-14 | 2006-03-30 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
US8032717B2 (en) | 2005-01-24 | 2011-10-04 | Fujitsu Limited | Memory control apparatus and method using retention tags |
US7904665B2 (en) | 2006-01-26 | 2011-03-08 | Nec Computer Techno, Ltd. | Multiprocessor system and its operational method |
WO2007096979A1 (ja) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | 情報処理装置およびデータ転送方法 |
JPWO2007096979A1 (ja) * | 2006-02-24 | 2009-07-09 | 富士通株式会社 | 情報処理装置およびデータ転送方法 |
US8176261B2 (en) | 2006-02-24 | 2012-05-08 | Fujitsu Limited | Information processing apparatus and data transfer method |
WO2010038301A1 (ja) * | 2008-10-02 | 2010-04-08 | 富士通株式会社 | メモリアクセス方法及び情報処理装置 |
JPWO2010038301A1 (ja) * | 2008-10-02 | 2012-02-23 | 富士通株式会社 | メモリアクセス方法及び情報処理装置 |
US10747699B2 (en) | 2016-08-31 | 2020-08-18 | Socionext Inc | Bus control circuit, semiconductor integrated circuit, circuit board, information processing device and bus control method |
US11954034B2 (en) | 2022-03-28 | 2024-04-09 | Woven By Toyota, Inc. | Cache coherency protocol for encoding a cache line with a domain shared state |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5522058A (en) | Distributed shared-memory multiprocessor system with reduced traffic on shared bus | |
US5652859A (en) | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues | |
US5325504A (en) | Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system | |
US6343347B1 (en) | Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction | |
US7237068B2 (en) | Computer system employing bundled prefetching and null-data packet transmission | |
JPH06110844A (ja) | 分散共有メモリ型マルチプロセッサシステム | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US6601144B1 (en) | Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
US5740400A (en) | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field | |
KR100274771B1 (ko) | Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법 | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US5946709A (en) | Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing | |
US6353875B1 (en) | Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions | |
US6138217A (en) | Method and apparatus for cache coherency in an interconnecting network | |
US6502171B1 (en) | Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data | |
US5940864A (en) | Shared memory-access priorization method for multiprocessors using caches and snoop responses | |
US6275909B1 (en) | Multiprocessor system bus with system controller explicitly updating snooper cache state information | |
US6185658B1 (en) | Cache with enhanced victim selection using the coherency states of cache lines | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
US6763433B1 (en) | High performance cache intervention mechanism for symmetric multiprocessor systems | |
US6721856B1 (en) | Enhanced cache management mechanism via an intelligent system bus monitor | |
US7165146B2 (en) | Multiprocessing computer system employing capacity prefetching | |
US8332592B2 (en) | Graphics processor with snoop filter | |
US5987544A (en) | System interface protocol with optional module cache |