JPH04245350A - キャッシュ一致化方式 - Google Patents

キャッシュ一致化方式

Info

Publication number
JPH04245350A
JPH04245350A JP3009814A JP981491A JPH04245350A JP H04245350 A JPH04245350 A JP H04245350A JP 3009814 A JP3009814 A JP 3009814A JP 981491 A JP981491 A JP 981491A JP H04245350 A JPH04245350 A JP H04245350A
Authority
JP
Japan
Prior art keywords
cache
memory
tag information
processors
tag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3009814A
Other languages
English (en)
Inventor
Tatsuhiro Goshima
龍宏 五島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP3009814A priority Critical patent/JPH04245350A/ja
Publication of JPH04245350A publication Critical patent/JPH04245350A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数のプロセッサが
1つのメモリを共有する密結合マルチプロセッサシステ
ムに係り、特に各プロセッサにそれぞれ設けられたキャ
ッシュ(プライベートキャッシュ)を一致化させるため
のキャッシュ一致化方式に関する。
【0002】
【従来の技術】複数のプロセッサが1つのメモリを共有
するいわゆる共有メモリ型の密結合マルチプロセッサシ
ステムでは、各プロセッサにそれぞれプライベートキャ
ッシュが設けられるのが一般的である。この種のシステ
ムでは、複数のプロセッサが同一メモリアドレスのデー
タをそれぞれのプライベートキャッシュ上に保持してい
る状態が起こり得る。
【0003】さて、上記したような状態にあるプロセッ
サのうちの1つがそのデータ(同一メモリアドレスのデ
ータ)を更新した場合には、他のプロセッサの該当デー
タは古い値となってしまう。この古い値は、論理的にそ
のプロセッサが用いてはならないデータである。このた
め、一般には、このデータが格納されているキャッシュ
ライン(キャッシュブロック)を無効化するか、或いは
更新されたデータに改めるかの処理を行わなければなら
ない。この処理はキャッシュの一致化処理と呼ばれるも
のである。
【0004】従来、キャッシュの一致化処理は次のよう
な手順で行われていた。 (1)まず、各プロセッサは、他のプロセッサのメモリ
ライトアクセスを監視して、アドレス空間上のどのメモ
リアドレスのデータを更新したかを知る。 (2)次に各プロセッサは、更新されたアドレスのデー
タ(該当データ)を自身のキャッシュ上に保持している
か否かを調べる。 (3)もし、該当データが自キャッシュ上にある場合に
は、そのプロセッサはキャッシュ上の該当するキャッシ
ュラインを無効化或いは更新する。
【0005】さて、以上のキャッシュ一致化処理手順の
うち、(1),(2)の処理は、他のプロセッサがメモ
リライトアクセスする毎に実行しなければならないもの
である。しかし、この(1),(2)の処理を各プロセ
ッサが実行するには、各プロセッサのオーバヘッドの増
大を伴うことから、システム全体の性能低下を招くとい
う問題があった。
【0006】
【発明が解決しようとする課題】上記したように従来は
、各プロセッサがプライベートキャッシュを持つ密結合
マルチプロセッサシステムでは、キャッシュ一致化のた
めに、各プロセッサが他のプロセッサのメモリライトア
クセスを監視して、どのメモリアドレスのデータを更新
したかを知り、更に更新されたアドレスのデータが自キ
ャッシュ上に存在するか否かを調べる処理が必ず必要で
あり、各プロセッサのオーバヘッドの増大によるシステ
ム性能の低下を招くという問題があった。特に、上記の
処理の結果、自キャッシュ上に該当データを持たないこ
とを判別したプロセッサ、即ちキャッシュ一致化の必要
性のないプロセッサでは、上記の処理が無駄となる問題
があった。
【0007】また、プロセッサ数が多く、したがって複
数プロセッサがほぼ同時にメモリアクセスを行う確率が
極めて高いシステムでは、各プロセッサにおいて上記の
処理を行うことが処理速度の点で困難となる問題もあっ
た。
【0008】この発明は上記事情に鑑みてなされたもの
でその目的は、各プロセッサがプライベートキャッシュ
を持つ密結合マルチプロセッサシステムにおいて、本来
キャッシュ一致化の必要のないプロセッサを、極力キャ
ッシュ一致化処理から解放でき、もってシステム全体の
性能向上が図れるキャッシュ一致化方式を提供すること
にある。
【0009】
【課題を解決するための手段】この発明は、各プロセッ
サがそれぞれプライベートキャッシュを持つ密結合マル
チプロセッサシステムにおいて、上記各プロセッサによ
って共有されるメモリに、同メモリ上のデータが各プロ
セッサのキャッシュ上でどのような保持状態にあるかを
示すタグ情報をキャッシュライン単位で保持するタグ保
持手段と、プロセッからのメモリアクセス要求時に、少
なくとも対応キャッシュラインのタグ情報をもとに、キ
ャッシュ一致化処理が必要であるか否かを判定して、そ
の判定結果を上記各プロセッサに通知すると共に、タグ
保持手段内の該当タグ情報を更新する判定手段とを設け
、この判定手段からキャッシュ一致化処理が必要である
ことが通知された場合だけ、プロセッサでのキャッシュ
一致化処理が実行されるようにしたたことを特徴とする
ものである。
【0010】
【作用】上記の構成において、メモリに設けられたタグ
保持手段に保持されるタグ情報は、そのメモリ上の該当
データ(1キャッシュライン分のデータ)が各プロセッ
サのキャッシュ(プライベートキャッシュ)上でどのよ
うな保持状態にあるかを示すもので、例えば次の(a)
,(b)のいずれかが適用可能である。
【0011】(a)マルチプロセッサシステム内のプロ
セッサの台数と等しいビット数のフラグ情報をタグ情報
とするもの。このタグ情報では、同情報の各ビット毎に
プロセッサが対応付けられており、そのビット状態によ
り、メモリ上の該当データが対応するプロセッサのキャ
ッシュに保持されているか否かが示される。
【0012】(b)メモリ上の該当データが幾つかのプ
ロセッサ間で共有されているか否かを示すタグ情報、更
に具体的に述べるならば、メモリ上の該当データが、各
プロセッサのいずれのキャッシュにも保持されていない
第1の状態(初期状態)、各プロセッサのうちのいずれ
か1つのプロセッサのキャッシュのみに保持されている
第2の状態(独占中)、および各プロセッサのうちの2
つ以上のプロセッサのキャッシュに保持されている第3
状態(共有中)のいずれかを示すタグ情報である。
【0013】上記(a)のタグ情報を適用する方式では
、判定手段は、どのプロセッサがキャッシュ上に該当デ
ータを保持しているかをタグ情報によって判別すること
ができる。このため、キャッシュ一致化処理を必要とす
るプロセッサだけに同処理を要求することが可能となり
、一致化処理が必要でないプロセッサにおいて無駄な一
致化処理が行われるのを完全に避けることができる。 但し、タグ情報のためのメモリ量が多くなる。
【0014】一方、上記(b)のタグ情報を適用する方
式では、どのプロセッサがキャッシュ一致化処理を必要
とするかは判別できないものの、キャッシュ一致化処理
を必要とするプロセッサが存在するか否かは判別できる
。具体的には、キャッシュミスヒット時のメモリライト
アクセスで且つタグ情報により第2または第3の状態(
独占中または共有中)が示されている場合、およびキャ
ッシュヒット時のメモリライトアクセスで且つタグ情報
により第3の状態(共有中)が示されている場合には、
キャッシュ一致化処理を必要とするプロセッサが必ず存
在することが判別できる。したがって判定手段は、この
ようなプロセッサが存在することを判別した場合に限り
各プロセッサに一致化処理を要求すればよい。
【0015】即ち、上記(b)の方式では、キャッシュ
一致化処理を必要とするプロセッサが1つも存在しない
場合には、判定手段から各プロセッサに対して一致化処
理要求を出さずに済むので、このような場合でも各プロ
セッサが一致化処理を行ってしまうという無駄がなくな
る。この(b)の方式では、一致化処理が必要でないプ
ロセッサにおいて無駄な一致化処理が行われるのを完全
に避けることはできないものの、タグ情報をプロセッサ
の台数に無関係に2ビットで構成することができるため
、タグ情報のためのメモリ量が少なくて済む。
【0016】
【実施例】図1は本発明を適用する密結合マルチプロセ
ッサシステムにおけるメインメモリの一実施例を示すブ
ロック構成図、図2は上記マルチプロセッサシステムの
ブロック構成図である。
【0017】図2において、10はメインメモリ(主記
憶装置)、20−0,20−1…20−nはメインメモ
リ10を共有するCPU(プロセッサ)である。CPU
20−0〜20−nは、メインメモリ10の記憶データ
の一部の写しが置かれる、例えばライトスルー方式のキ
ャッシュ(プライベートキャッシュ)21−0〜21−
nを持っている。ライトスルー方式とは、キャッシュに
ヒットしたか否かに無関係に、該当データをメインメモ
リ10に書込むためのメモリアクセス(メモリライトア
クセス)が発生するものである。メインメモリ10およ
びCPU20−0〜20−nは、システムバス等で代表
されるメモリ−CPU結合網30により結合されている
【0018】メインメモリ10は、図1に示すように、
各種プログラム、データ等を記憶するためのメモリ部1
1を有している。このメモリ部11には、図2に示すキ
ャッシュ21−0〜20−nの1キャッシュライン(キ
ャッシュブロック)に相当するデータサイズ毎に、2ビ
ットのタグ情報が付加されている。具体的には、メモリ
部11のメモリ空間をキャッシュラインに相当するデー
タサイズで分割したブロック数分のタグ情報を保持する
ための例えばRAM構成のタグメモリ12が、メモリ部
11に付加されている。
【0019】上記2ビットのタグ情報は、メモリ部11
上の該当メモリデータがキャッシュ21−0〜21−n
上でどのような保持状態にあるかを示すもので、具体的
な定義内容は次の通りである。
【0020】00:初期状態(どのCPUも該当データ
をキャッシングしていない) 01:独占中(1CPUだけが該当データを自キャッシ
ュに保持している) 10:共有中(複数のCPUが該当データを自キャッシ
ュに保持している。但し、どのCPUがデータを保持し
ているかは不明) 11:未定義
【0021】メインメモリ10はまた、CPU20−0
〜20−nのいずれかからメモリ−CPU結合網30を
介して転送されるメモリアクセス要求信号REQ(リー
ドまたはライトアクセス要求信号)をラッチするメモリ
アクセス要求レジスタ(REQレジスタ)13、メモリ
アクセス要求元CPUのCPU番号#i(mビット)を
ラッチするCPU番号レジスタ(#iレジスタ)14、
およびメモリアクセス要求元CPUにおいてメモリアク
セス要求時にキャッシュにミスヒットしたか否かを示す
キャッシュミス/ヒット信号M/Hをラッチするキャッ
シュミス/ヒットレジスタ(M/Hレジスタ)15を有
している。このCPU番号#iおよびキャッシュミス/
ヒット信号M/Hも、メモリアクセス要求元CPUから
転送されるものである。なお、CPU20−0,20−
1…20−nのCPU番号#iは、それぞれ「0」,「
1」…「n」であるものとする。
【0022】メインメモリ10は更に、メモリ部11の
アドレス(メモリアドレス)をラッチするメモリアドレ
スレジスタ(MAR)16、メモリ部11のリード/ラ
イトデータをラッチするメモリデータレジスタ(MDR
)17、およびCPU20−0〜20−nのいずれかか
らのメモリアクセス要求を受けた際に、キャッシュ一致
化処理が必要なCPUが存在するか否かを判定するため
の判定回路18を有している。なお図1では、メモリコ
ントローラ等、本発明に直接関係しない部分については
省略されている。
【0023】判定回路18は、REQレジスタ13の出
力(メモリアクセス要求信号REQ)、M/Hレジスタ
15の出力(キャッシュミス/ヒット信号M/H)、お
よびMAR16の示すメモリアドレスに対応するタグメ
モリ12上の2ビットタグ情報(参照タグ情報)をもと
に、キャッシュ一致化処理が必要なCPUが存在するか
否かを判定して、キャッシュ一致化処理を要求するアド
レスチェック信号19を出力する機能を有する。判定回
路18はまた、参照タグ情報の更新情報(更新タグ情報
)を生成する機能を有する。この判定回路18の動作機
能を図3に整理して示す。
【0024】次に、この発明の一実施例の動作を、図1
乃至図3を適宜参照して説明する。今、CPU20−0
においてライトアクセス要求が発生したものとする。こ
の場合、ライトスルー方式を適用していることから、キ
ャッシュ21−0にヒットしたか否かに無関係にメイン
メモリ10に対するメモリアクセス(メモリライトアク
セス)が生じる。即ち、CPU20−0は、メモリライ
トを要求するメモリアクセス要求信号REQ、CPU2
0−0を示すCPU番号#i、メモリアドレス、および
ライトデータを、メモリ−CPU結合網30を介してメ
インメモリ10に出力する。CPU20−0からの信号
REQはREQレジスタ13に、CPU番号#iは#i
レジスタ14に、メモリアドレスはMAR16に、ライ
トデータはMDR17に、それぞれラッチされる。そし
て、REQレジスタ13の指定するメモリライトアクセ
スが、図示せぬメモリコントローラの制御により、MA
R16の指定するメモリ部11の領域を対象に行われる
。このとき、MAR16の指定するメモリ部11の領域
を含む1キャッシュライン相当のブロックに対応するタ
グメモリ12内タグ情報が読出され、(参照タグ情報と
して)判定回路18に供給される。
【0025】さて本実施例では、メインメモリ10に対
するメモリアクセス要求時には、その要求元CPUでの
キャッシュミス/ヒットの判定結果を示すキャッシュミ
ス/ヒット信号M/Hも、要求元CPUからメインメモ
リ10に出力される。したがって上記の例では、CPU
20−0からメインメモリ10に対してキャッシュミス
/ヒット信号M/Hが出力されることになる。
【0026】メモリアクセス要求元のCPU20−0か
ら出力された信号M/Hは、メインメモリ10内のM/
Hレジスタ15を介して判定回路18に供給される。こ
の判定回路18には、REQレジスタ13の出力(メモ
リアクセス要求信号REQ)も供給される。また判定回
路18には、前記したように、タグメモリ12から読出
されたタグ情報(参照タグ情報)も供給される。このタ
グ情報は、メモリ部11上のメモリアクセス対象領域を
含む1キャッシュライン相当のブロックのデータが各C
PUのキャッシュ上でどのような保持状態にあるかを示
している。
【0027】判定回路18は、以上のメモリアクセス要
求信号REQの状態(メモリリードアクセスか、或いは
メモリライトアクセスか)、キャッシュミス/ヒット信
号M/Hの状態(キャッシュミスか或いはヒットか)、
および参照タグ情報をもとに、各CPU20−0〜20
−nに共通に出力するアドレスチェック信号19、およ
びタグメモリ12に出力する更新タグ情報を、図3の論
理に従って生成する。この判定回路18の動作を、(A
)キャッシュミス時のメモリライトアクセスの場合、(
B)キャッシュヒット時のメモリライトアクセスの場合
、(C)キャッシュミス時のメモリリードアクセスの場
合のそれぞれについて以下に説明する。なお、リードヒ
ット時はメモリアクセスはない。
【0028】 (A)キャッシュミス時のメモリライトアクセスの場合
まず、キャッシュミス時のメモリライトアクセスで、参
照タグ情報が“00”の場合について説明する。この場
合、判定回路18は、どのCPUも該当データを自身の
キャッシュに保持しておらず、したがってキャッシュ一
致化処理は不要であるものと判定し、アドレスチェック
信号19をオフする。この結果、各CPU20−0〜2
0−n(特に、アクセス要求元でないCPU20−1/
20−n)が不要なキャッシュ一致化処理を行う無駄が
防止できる。また判定回路18は、メモリライトアクセ
スの後は、アクセス要求元CPU(ここではCPU20
−0)のみが自キャッシュ(キャッシュ21−0)に該
当データを持つことになるため、独占中を示す更新タグ
情報“01”を生成する。この更新タグ情報はタグメモ
リ12に供給され、前記したタグ情報のリード動作に続
くライト動作により、元のタグ情報“00”が“01”
に更新される。
【0029】次に、キャッシュミス時のメモリライトア
クセスで、参照タグ情報が“01”の場合について説明
する。この場合、判定回路18は、アクセス要求元以外
のCPUが該当データを独占中であり、したがって(そ
のCPUでの)キャッシュ一致化処理が必要であるもの
として、アドレスチェック信号19をオンする。このア
ドレスチェック信号19は全てのCPU20−0〜20
−nに共通に転送され、これによりアクセス要求元CP
Uを除く全CPUでキャッシュ一致化処理が行われる。 また判定回路18は、上記のキャッシュ一致化処理とメ
モリライトアクセスの後は、アクセス要求元CPU(2
0−0)のみが自身のキャッシュ(21−0)に該当デ
ータを持つことになるため、参照タグ情報と同じ独占中
を示す更新タグ情報“01”を生成する。
【0030】次に、キャッシュミス時のメモリライトア
クセスで、参照タグ情報が“10”の場合について説明
する。この場合、判定回路18は、アクセス要求元以外
で複数のCPUが該当データを共有中であり、したがっ
て(それらのCPUでの)キャッシュ一致化処理が必要
であるものとして、アドレスチェック信号19をオンす
る。これによりアクセス要求元CPUを除く全CPUで
キャッシュ一致化処理が行われる。また判定回路18は
、上記のキャッシュ一致化処理とメモリライトアクセス
の後は、アクセス要求元CPU(20−0)のみが該当
データを持つことになるため、独占中を示す更新タグ情
報“01”を生成する。この結果、元のタグ情報“10
”が“01”に更新される。
【0031】(B)キャッシュヒット時のメモリライト
アクセスの場合 まず、キャッシュヒット時のメモリライトアクセスで、
参照タグ情報が“00”の場合について説明する。この
場合、判定回路18は、どのCPUも該当データを自身
のキャッシュに保持しておらず、したがってキャッシュ
一致化処理は不要であるものと判定し、アドレスチェッ
ク信号19をオフする。この結果、各CPU20−0〜
20−n(特に、アクセス要求元でないCPU20−1
/20−n)が不要なキャッシュ一致化処理を行う無駄
が防止できる。また判定回路18は、メモリライトアク
セスの後は、アクセス要求元CPU(20−0)のみが
該当データを持つことになるため、独占中を示す更新タ
グ情報“01”を生成する。この結果、元のタグ情報“
00”が“01”に更新される。
【0032】次に、キャッシュヒット時のメモリライト
アクセスで、参照タグ情報が“01”の場合について説
明する。この場合、判定回路18は、アクセス要求元の
CPU(CPU20−0)が該当データを独占中であり
、したがってキャッシュ一致化処理は不要であるものと
して、アドレスチェック信号19をオフする。この結果
、各CPU20−0〜20−n(特に、アクセス要求元
でないCPU20−1/20−n)が不要なキャッシュ
一致化処理を行う無駄が防止できる。また判定回路18
は、アクセス要求元CPU(20−0)のみが依然とし
て該当データを持つことになるため、参照タグ情報と同
じ独占中を示す更新タグ情報“01”を生成する。
【0033】次に、キャッシュヒット時のメモリライト
アクセスで、参照タグ情報が“10”の場合について説
明する。この場合、判定回路18は、アクセス要求元C
PUを含む複数のCPUが該当データを共有中であり、
したがってキャッシュ一致化処理が必要であるものとし
て、アドレスチェック信号19をオンする。これにより
アクセス要求元CPUを除く全CPUでキャッシュ一致
化処理が行われる。また判定回路18は、上記のキャッ
シュ一致化処理によりアクセス要求元CPU(20−0
)のみが該当データを持つことになるため、独占中を示
す更新タグ情報“01”を生成する。この結果、元のタ
グ情報“10”が“01”に更新される。
【0034】 (C)キャッシュミス時のメモリリードアクセスの場合
キャッシュミス時のメモリリードアクセスの場合には、
明らかなように、CPU20−0〜20−nのいずれに
おいてもキャッシュ一致化処理は不要であるため、判定
回路18はアドレスチェック信号19をオフする。但し
、メモリリードアクセスの場合でも、更新タグ情報が生
成され、タグ情報の更新が行われる。
【0035】即ち判定回路18は、参照タグ情報が“0
0”であるならば、メモリリードアクセスの後は、アク
セス要求元CPU(20−0)のみが自身のキャッシュ
(21−0)に該当データを持つことになるため、独占
中を示す更新タグ情報“01”を生成する。この結果、
元のタグ情報“00”が“01”に更新される。
【0036】また判定回路18は、参照タグ情報が“0
1”であるならば、メモリリードアクセスの後は、アク
セス要求元CPU(20−0)を含む複数のCPUが該
当データを持つことになるため、共有中を示す更新タグ
情報“10”を生成する。この結果、元のタグ情報“0
1”が“10”に更新される。
【0037】また判定回路18は、参照タグ情報が“1
0”であるならば、複数のCPUが該当データを持つこ
とから、参照タグ情報と同じ共有中を示す更新タグ情報
“10”を生成する。
【0038】上記したように本実施例では、CPUから
のメモリアクセス要求に応じて、タグメモリ12からの
タグ情報読出しと、同読出しに続くタグメモリ12上の
同一領域へのタグ情報(更新タグ情報)書込みとを行う
必要があるため、オーバヘッドとなる虞がある。しかし
、このタグ情報読出しおよび書込みは、タグメモリ12
(を構成するRAM)のリードモディファイライト動作
を利用することで、オーバヘッドなしに高速に行うこと
ができる。
【0039】以上は、2ビットのタグ情報(タイプbの
タグ情報と呼ぶ)により、1CPUだけが該当データを
保持している独占中か、或いは複数のCPUが該当デー
タを保持している共有中かなどを示す場合について説明
したが、これに限るものではない。例えば、CPUの台
数分のビット数のフラグ情報をタグ情報(タイプaのタ
グ情報と呼ぶ)として用い、同情報の各ビットにCPU
を割当て、そのビット状態により、メモリ部11上の該
当データが対応するCPUのキャッシュに保持されてい
るか否かを示すようにすることも可能である。
【0040】図4は上記したタイプaのタグ情報を図2
のシステムに適用した場合のメインメモリ10のブロッ
ク構成図、図5は同タグ情報の各ビットと図2のシステ
ム中のCPU20−0〜20−nとの対応関係を示す図
である。図5に示すタグ情報は、n+1ビットで構成さ
れ、ビット0,1…nは、メモリ部11上の該当データ
がそれぞれCPU20−0,20−1…20−nのキャ
ッシュ21−0,21−1…21−nに保持されている
か否かを示す。
【0041】図4において、42は図1のタグメモリ1
2と同様のタグメモリ、48は図1の判定回路18と同
様の判定回路である。但しタグメモリ42は、タグメモ
リ12と異なって、図5に示すn+1ビットのタグ情報
をキャッシュライン単位で保持するのに用いられる。一
方、判定回路48は、REQレジスタ13の出力(メモ
リアクセス要求信号REQ)、#iレジスタ14の出力
(CPU番号#i)、およびMAR16の示すメモリア
ドレスに対応するタグメモリ42上のn+1ビットのタ
グ情報(参照タグ情報)をもとに、キャッシュ一致化処
理が必要なCPUを判定して、CPU20−0〜20−
n毎にキャッシュ一致化処理の必要/不要を示すアドレ
スチェック信号49−0〜49−nを出力する機能を有
する。判定回路48はまた、参照タグ情報の更新情報(
更新タグ情報)を生成する機能を有する。タグメモリ4
2および判定回路48以外については、図1の構成と同
じであり、説明を省略する。
【0042】判定回路48の動作機能を図6に整理して
示す。図6から明らかなように、判定回路48の動作は
、メモリアクセス要求元CPU20−i(i=0〜n)
からのメモリアクセス要求信号REQによってメモリリ
ードアクセス(キャッシュミス時のメモリリードアクセ
ス)が示されている場合と、メモリライトアクセス(キ
ャッシュミスまたはキャッシュヒット時のメモリライト
アクセス)が示されている場合とで異なる。
【0043】まず(キャッシュミス時の)メモリリード
アクセスの場合は、判定回路48は、アドレスチェック
信号49−0〜49−nを全てオフする。また判定回路
48は、メモリリードアクセスの後はアクセス要求元C
PU20−iが新たに該当データを持つことになること
から、タグメモリ42から読出されるn+1ビットの参
照タグ情報(図5参照)のうち、#iレジスタ14の出
力(CPU番号#i)で示されるビットi(アクセス要
求元CPU20−iに対応するビットi)をオンし、他
をそのままとして、n+1ビットの更新タグ情報を生成
する。
【0044】次に(キャッシュミスまたはキャッシュヒ
ット時の)メモリライトアクセスの場合は、判定回路4
8は、タグメモリ42から読出される参照タグ情報の各
ビット0〜nをそのままアドレスチェック信号49−0
〜49−nとしてCPU20−0〜20−nに出力する
。この結果、アドレスチェック信号49−j(j=0〜
n、但しj≠i)がオンのCPU20−jだけが、即ち
アクセス要求元CPU20−i以外で該当データを自身
のキャッシュ(21−j)に保持しており、したがって
真にキャッシュ一致化処理が必要なCPUだけが、キャ
ッシュ一致化処理を行う。この結果、従来例、或いは2
ビットタグ情報を用いた前記実施例と異なり、該当デー
タを持たないCPUが不要なキャッシュ一致化処理を行
う無駄が完全に防止できる。なお、アクセス要求元CP
U20−iに対応するアドレスチェック信号49−iを
オフし、CPU20−iがアクセス要求元であることを
意識しなくても、CPU20−iにおいてキャッシュ一
致化処理が行われないようにすることも可能である。
【0045】さてメモリライトアクセスの場合、判定回
路48は、上記のキャッシュ一致化処理の後はアクセス
要求元CPU20−iだけが該当データを持つことから
、タグメモリ42から読出されるn+1ビットの参照タ
グ情報のうち、アクセス要求元CPU20−iに対応す
るビットiをオンし、他を全てオフすることで、n+1
ビットの更新タグ情報を生成する。
【0046】
【発明の効果】以上詳述したようにこの発明によれば、
密結合マルチプロセッサシステムの各プロセッサ(CP
U)によって共有されるメモリに、同メモリ上のデータ
が各プロセッサのキャッシュ上でどのような保持状態に
あるかを示すタグ情報をキャッシュライン単位で保持す
るタグ保持手段を設け、プロセッからのメモリアクセス
要求時に、対応キャッシュラインのタグ情報等をもとに
、キャッシュ一致化処理が必要であるか否かを判定して
、その判定結果を各プロセッサに通知する構成とするこ
とにより、プロセッからのメモリアクセス要求時に、該
当データを自身のキャッシュに持たないプロセッサ、即
ち本来キャッシュ一致化の必要のないプロセッサを、極
力キャッシュ一致化処理から解放することができるよう
になり、システム全体の性能向上が図れる。
【0047】本発明は特に、複数のプロセッサが同時に
メモリライトを実行できるようなシステム(メモリバン
ク毎にアクセスポートを持つシステム等)に適用した場
合に有効である。即ち、この種のシステムでは、従来は
1サイクルに複数の一致化処理を行う必要があり、かな
りのオーバヘッドを招いていたが、本発明により一致化
処理の回数を大きく減少させることで、オーバヘッドを
減らし、システム本来の性能を引出すことが可能となる
ものである。
【図面の簡単な説明】
【図1】本発明を適用する密結合マルチプロセッサシス
テムにおけるメインメモリの一実施例を示すブロック構
成図。
【図2】上記マルチプロセッサシステムのブロック構成
図。
【図3】図1の判定回路18の動作機能を整理して示す
図。
【図4】図1に示すメインメモリ10の他の実施例を示
すブロック構成図。
【図5】図4のタグメモリ42に保持されるタグ情報の
各ビットと図2のシステム中のCPU20−0〜20−
nとの対応関係を示す図。
【図6】図4の判定回路48の動作機能を整理して示す
図。
【符号の説明】
10…メインメモリ。11…メモリ部、12,42…タ
グメモリ、13…REQレジスタ、14…#iレジスタ
、15…M/Hレジスタ、16…MAR、17…MDR
、18,48…判定回路、19,49−0〜49−n…
アドレスチェック信号(キャッシュ一致化処理要求信号
)、20−0〜20−n…CPU(プロセッサ)、21
−0〜21−n…キャッシュ(プライベートキャッシュ
)、30…メモリ−CPU結合網。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】  複数のプロセッサが1つのメモリを共
    有すると共に、それぞれプライベートキャッシュを持つ
    密結合マルチプロセッサシステムにおいて、上記メモリ
    に、同メモリ上のデータが上記各プロセッサのキャッシ
    ュ上でどのような保持状態にあるかを示すタグ情報をキ
    ャッシュライン単位で保持するタグ保持手段と、上記複
    数のプロセッサのいずれかからのメモリアクセス要求時
    に、少なくとも対応キャッシュラインの上記タグ情報を
    もとに、キャッシュ一致化処理が必要であるか否かを判
    定して、その判定結果を上記各プロセッサに通知すると
    共に、上記タグ保持手段内の該当タグ情報を更新する判
    定手段と、を設け、上記各プロセッサは、上記判定手段
    からの判定結果通知をもとにキャッシュ一致化処理を実
    行するようにしたことを特徴とするキャッシュ一致化方
    式。
  2. 【請求項2】  上記判定手段は、上記タグ保持手段に
    保持されている対応キャッシュラインのタグ情報、メモ
    リアクセス要求元プロセッサでのキャッシュミス/ヒッ
    ト判定結果、およびリード/ライトの種別を示すメモリ
    アクセス要求信号をもとに、キャッシュ一致化処理が必
    要であるか否かを判定すると共に、上記タグ保持手段内
    の該当タグ情報を更新することを特徴とする請求項1記
    載のキャッシュ一致化方式。
  3. 【請求項3】  複数のプロセッサが1つのメモリを共
    有すると共に、それぞれプライベートキャッシュを持つ
    密結合マルチプロセッサシステムにおいて、上記メモリ
    に、同メモリ上のデータが、上記各プロセッサのいずれ
    のキャッシュにも保持されていない第1の状態、上記各
    プロセッサのうちのいずれか1つのプロセッサのキャッ
    シュのみに保持されている第2の状態、および上記各プ
    ロセッサのうちの2つ以上のプロセッサのキャッシュに
    保持されている第3状態のいずれかを示すタグ情報をキ
    ャッシュライン単位で保持するタグ保持手段と、上記複
    数のプロセッサのいずれかからのメモリアクセス要求時
    に、上記タグ保持手段に保持されている対応キャッシュ
    ラインのタグ情報、メモリアクセス要求元プロセッサで
    のキャッシュミス/ヒット判定結果、およびリード/ラ
    イトの種別を示すメモリアクセス要求信号をもとに、他
    の各プロセッサでのキャッシュ一致化処理が必要である
    か否かを判定して、その判定結果を上記各プロセッサに
    共通に通知すると共に、上記タグ保持手段内の該当タグ
    情報を更新する判定手段と、を設け、上記各プロセッサ
    は、上記判定手段からの判定結果通知をもとにキャッシ
    ュ一致化処理を実行するようにしたことを特徴とするキ
    ャッシュ一致化方式。
  4. 【請求項4】  上記判定手段は、キャッシュミスヒッ
    ト時のメモリライトアクセスで且つ上記タグ情報により
    上記第2または第3の状態が示されている場合、および
    キャッシュヒット時のメモリライトアクセスで且つ上記
    タグ情報により上記第3の状態が示されている場合だけ
    、キャッシュ一致化処理が必要であることを判定するこ
    とを特徴とする請求項3記載のキャッシュ一致化方式。
  5. 【請求項5】  複数のプロセッサが1つのメモリを共
    有すると共に、それぞれプライベートキャッシュを持つ
    密結合マルチプロセッサシステムにおいて、上記メモリ
    に、同メモリ上のデータが、上記各プロセッサのキャッ
    シュに保持されているかを各プロセッサ別に示すタグ情
    報をキャッシュライン単位で保持するタグ保持手段と、
    上記複数のプロセッサのいずれかからのメモリライトア
    クセス要求時には、上記タグ保持手段に保持されている
    対応キャッシュラインのタグ情報により該当データの保
    持状態にあることが示されているプロセッサ、または同
    プロセッサのうちのアクセス要求元を除くプロセッサに
    対してのみ、キャッシュ一致化処理を要求すると共に、
    上記複数のプロセッサのいずれかからのメモリライトま
    たはメモリリードアクセス要求時に、上記タグ保持手段
    内の該当タグ情報を更新する判定手段と、を設け、上記
    判定手段からキャッシュ一致化処理が要求され、且つメ
    モリアクセス要求状態にない上記プロセッサだけが、キ
    ャッシュ一致化処理を実行することを特徴とするキャッ
    シュ一致化方式。
JP3009814A 1991-01-30 1991-01-30 キャッシュ一致化方式 Pending JPH04245350A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3009814A JPH04245350A (ja) 1991-01-30 1991-01-30 キャッシュ一致化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3009814A JPH04245350A (ja) 1991-01-30 1991-01-30 キャッシュ一致化方式

Publications (1)

Publication Number Publication Date
JPH04245350A true JPH04245350A (ja) 1992-09-01

Family

ID=11730633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3009814A Pending JPH04245350A (ja) 1991-01-30 1991-01-30 キャッシュ一致化方式

Country Status (1)

Country Link
JP (1) JPH04245350A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235065A (ja) * 1995-02-22 1996-09-13 Nec Ibaraki Ltd キャッシュ制御装置
JP2005044342A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235065A (ja) * 1995-02-22 1996-09-13 Nec Ibaraki Ltd キャッシュ制御装置
JP2005044342A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法

Similar Documents

Publication Publication Date Title
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
US4484267A (en) Cache sharing control in a multiprocessor
CA1322058C (en) Multi-processor computer systems having shared memory and private cache memories
US8924653B2 (en) Transactional cache memory system
EP0349122B1 (en) Method and apparatus for filtering invalidate requests
US20050021913A1 (en) Multiprocessor computer system having multiple coherency regions and software process migration between coherency regions without cache purges
US20070005908A1 (en) Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
US6502168B1 (en) Cache having virtual cache controller queues
US6915396B2 (en) Fast priority determination circuit with rotating priority
US20060294319A1 (en) Managing snoop operations in a data processing apparatus
US10949292B1 (en) Memory interface having data signal path and tag signal path
US5375220A (en) Multiprocessor system including a cache memory with tag copy units
US5530835A (en) Computer memory data merging technique for computers with write-back caches
US7032079B1 (en) System and method for accelerating read requests within a multiprocessor system
JPH07152647A (ja) 共有メモリマルチプロセッサ
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
JP2001109662A (ja) キャッシュ装置及び制御方法
US5361368A (en) Cross interrogate synchronization mechanism including logic means and delay register
JPS63253448A (ja) マルチ計算機装置
JPH04245350A (ja) キャッシュ一致化方式
US9558119B2 (en) Main memory operations in a symmetric multiprocessing computer
US5907853A (en) Method and apparatus for maintaining duplicate cache tags with selectable width