JPH0387948A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH0387948A
JPH0387948A JP2159783A JP15978390A JPH0387948A JP H0387948 A JPH0387948 A JP H0387948A JP 2159783 A JP2159783 A JP 2159783A JP 15978390 A JP15978390 A JP 15978390A JP H0387948 A JPH0387948 A JP H0387948A
Authority
JP
Japan
Prior art keywords
address
cache
processor
data
bus
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
JP2159783A
Other languages
English (en)
Inventor
Osamu Nishii
修 西井
Kunio Uchiyama
邦男 内山
Hirokazu Aoki
郭和 青木
Takashi Kikuchi
隆 菊池
Yasuhiko Saie
齋江 靖彦
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.)
Hitachi ULSI Engineering Corp
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Publication of JPH0387948A publication Critical patent/JPH0387948A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は複数のプロセッサ、主記憶装置、および複数の
階層をもつキャッシュメモリを有するマルチプロセッサ
システムに関する。
〔従来の技術〕
キャッシュメモリについてはニー・シー・エム、コンピ
ユーテイング・サーベイ第14巻3号473−530ペ
ージ(ACM、  Compuing 5urveys
、Vol、14.&3、 pp、473−530)で詳
しく論じている。
キャッシュメモリとは、主記憶に比べ、容量は小さいが
、高速のアクセス(読み出し/書き込み)が可能なメモ
リであり、プロセッサのアクセスを高速に行なう目的で
プロセッサのごく近くに置かれる。
主記憶装置とプロセッサの間のデータの転送時間はプロ
セッサの内部処理時間の数倍になるため。
データを命令の実行のつと読み出していたのでは、処理
の高速化は望めない。一方プロセッサは主記憶の全体を
アクセスの対象としているが、ごく短時間の間にはその
うちのごく一部分にアクセスは集中している。そこで主
記憶装置の情報の一部をキャッシュメモリにコピーし、
プロセッサのアクセスのほとんどをキャッシュメモリと
の間で実行すれば、平均的にアクセス時間を短縮するこ
とが可能となる。
キャッシュメモリは記憶をブロックという適当な大きさ
を単位にして管理する。各ブロックはそれぞれ主記憶の
ある箇所と対応し、その箇所のデータの写しを保持して
いる。この記憶をデータアレイと呼ぶ、加えて各ブロッ
クが主記憶のどの箇所に対応しているかはもちろん動的
に変化することが可能であり、そのアドレスの情報もキ
ャッシュメモリに保持されている。この記憶部分をアド
レスアレイと言う。
プロセッサのアクセスのほとんどをキャッシュメモリと
の間で行なうようにするためには、最近に頻繁にアクセ
スされたデータはキャッシュ内に置かれるべきであるし
、その反対に最近に全くアクセスされていないデータは
必ずしもキャッシュ内tiかれるべきではない、キャッ
シュメモリは上に述べた要求を満たすような制御を行な
う。その制御を読み出し時を例に取って説明すると次の
ようになる。
キャッシュ内のデータをアクセスしたときにはそのデー
タの属するブロックを保持し続け、キャッシュ内にない
データをアクセスしたときには、主記憶上でそのデータ
を含む1ブロツクをキャッシュ内に転送し、その代わり
に、キャッシュ内で最近使われていない1ブロツクを追
い出す。
上記の文献ニー・シー・エム、コンピユーテイング・サ
ーベイ第14巻3号473−530ページ(ACM 。
CCo11putin  5urveys、Vol、1
4.&3.  pp、473−530)   kこ述べ
られているように、キャッシュへのストア方式として、
ライト・スル一方式とコピー・ノくツク方式とがある。
前者のライト・スル一方式は、プロセッサが書き込みを
行なう場合にキャッシュにヒツトすれば。
内側のキャッシュと外側の主記憶の両者に書き込みを行
ない、常に両者の内容を一致させる方式である。
これに対して、後者のコピー・バック方式は。
プロセッサが書き込みを行なう場合にキャッシュにヒツ
トすれば、外側の主記憶には書き込みを行なわず、内側
のキャッシュにのみ書き込みを行なう方式である。
この二つの方式を比較すると、コピー・ノくツク方式は
ライト・スル一方式に比べ制御が複雑であり、その制御
のためにたくさんのノ)−ドウエア量が必要となる。こ
れはとくに、共有メモリ型のマルチプロセッサシステム
における各キャッシュの内容の一貫性を保つための制御
で顕著となる。
しかしながら、性能面から見るとコピー・バック方式は
キャッシュにヒツトした時に、主記憶にdき込みを行な
わないため、主記憶に対する書き込みを省略することが
でき、ライト・スル一方式よりもメリットがある。また
、主記憶に対する書き込み時間の省略により、主記憶に
対するトラフィックが軽減されるメリットもある。マル
チプロセッサシステムでは、この主記憶のトラフィック
低減が、トータルのシステム性能を向上させる上で重要
なポイントである。
次に階層キャッシュについて説明する6階層キャッシュ
記憶とは、プロセッサと主記憶との間に複数のキャッシ
ュ記憶が直列に結合しであるものを言い、その−例は「
日経エレクトロニクス」1981゜10.26のPP1
76−190に開示されている。
この階層キャッシュ構成を取ることによって、キャッシ
ュの効果をより高めることが期待できる。
この「日経エレクトロニクス」に開示された情報処理装
置においては、命令制御部、演算制御部およびキャッシ
ュ記憶(バッファ・ストレージ)からなるプロセッサユ
ニット(CP U)があり、上記CPUと主記憶装置と
の間にさらに別のキャッシュ記憶(グローバル・バッフ
ァ・ストレージ)を配置されている。この場合に、上記
CPU内のキャッシュは物理的にも論理的にも内側のキ
ャッシュであり、地方別のキャッシュ記憶は外側のキャ
ッシュである。この外側のキャッシュは、命令制御部や
演算制御部である本来のプロセッサと内側のキャッシュ
とを合わせて1つのプロセッサと見做すことによって動
作する。
このように、この「日経エレクトロニクス」には2層の
階層キャッシュが開示されているが、3層以上の階層キ
ャッシュも同様にして考えることができる。この3Ji
i5以上の階層キャッシュを持つシステムでは最も外側
のキャッシュを外側のキャッシュ、それ以外のキャッシ
ュを内側のキャッシュと以下では本願では呼ぶことにす
る。従って、主記憶装置に対し、直接にアクセスを行な
うのは外側のキャッシュであることに注意されたい。
また、この「日経エレクトロニクス」には、複数のプロ
セッサ(CP U)が主記憶装置および外側のキャッシ
ュ(グローバル・バッファ・ストレージ)を共有し、内
側のそれぞれキャッシュは関係するプロセッサごとの固
有の情報を記憶すると言う形式のマルチプロセッサ・シ
ステムについても開示されている。
すなわち、このマルチプロセッサ・システムにおいては
、内側のキャッシュと共有の外側のキャッシュとの間に
ストア・スル一方式(ライト・スル一方式)の書き込み
制御を採用し、外側の共有キャッシュがひとつの内側の
キャッシュを経由して更新された場合、外側の共有キャ
ッシュが他の内側のキャッシュに対して更新の有ったブ
ロックのアドレス(無効化アドレス)を送ることによっ
て、他の内側のキャッシュを無効化して、内側のキャッ
シュと外側の共有キャッシュの内容の一致カを取られて
いる。
一方、このマルチプロセッサ・システムにおいては、主
記憶装置へのアクセス頻度を低減するため、外側の共有
キャッシュと主記憶装置との間にスワップ方式(コピー
パック方式)を採用することも開示されている。
また、「電子情報通信学会技術研究報告J lCD89
−8〜15 1989年4月21日PP29〜36には
、マルチプロセッサ・システムにおいて、他のバス・マ
スクによる主記憶装置の書き換えに対処するため、マイ
クロプロセッサがシステム・アドレス・バスを監視し、
マイクロプロセッサ内部のキャッシュ・メモリに登録し
ているデータのうち他のバス・マスクによって書き換え
られたデータを含む1ブロツクをクリアするバス・モニ
タリング機能をマイクロプロセッサに持たせることを開
示している。この機能によって、マルチプロセッサ環境
でも内部キャッシュと主記憶装置との一貫性(コヒーレ
ンジ)が保たれる。また、この機能を具体的に実現する
ために、28ビツトのモニタリング・アドレスがマイク
ロプロセッサに浜給される。
一方、「テンス・アニューアル・インターナショナル・
シンポジウム・オン・コンピュータ・アーキテクチュア
J 124−131ページ1983、(10th An
nualInternational Symposi
uilon ComuperArchitecture
 PP124−131)にはJ、R,Goodmanに
よるυ5ING CACHE MEMORY TORE
DUCING PROCESSOR−MEMORY T
RAFIC”なる文献が掲載されている。かかる、Go
odmanの文献には、従来のライト・スル一方式およ
びコピー・バック方式とは異なる新しい方式としてライ
ト・ワンス方式が提案されている。このライト・ワンス
方式は、データ更新の問題を解決するとともに、最小の
バス転送を可能とすると説明されている。また、このラ
イト・ワンス方式では、キャッシュの各格納ブロックに
二つのビットが関連し、この二つのビットは関係データ
の四つの状態を下記の通りに定義している。
まず、一つ目の状態は、無効状態(Invalid)で
、ブロック中にデータが無いことを示す。
二つ目の状態は、有効状態(Valid)で、主記憶か
ら読み出され、更新されていないブロック中にデータが
存在していることを示す。
三つ目の状態は、予力状態(Reserved)で、ブ
ロックのデータがローカルに一度だけ更新され、それが
キャッシュ中に取り込まれ、その変更が主記憶に伝達さ
れていることを示す。
最後の四つ目の状態はダーティ状態(Dirty)で、
ブロックのデータは一回以上ローカルに更新され、それ
がキャッシュ中に取り込まれ、その最新の変更が主記憶
に伝達されていないことを示す。
また、Goodmanの文献には、ライト・ワンス方式
はCPUによるアドレス・タグへのアクセスと具備(c
oncurrently)な状態ビット対とアドレスか
タグへの迅速なアクセスが必要であること、これはダグ
・メモリの二つ(同一)のコピーを作ることによって容
易に達成できること、またこの重複によってキャッシュ
無効化要求と通常のキャッシュ参照との間の衝突を解消
することも開示されている。
〔発明が解決しようとする課題〕
一方1本願発明は、2層の階層キャッシュを有するマル
チプロセッサ・システムにおいて、外側および内側のキ
ャッシュともプロセッサごとに異なるキャッシュを持つ
方式(外側および内側のキャッシュとも非共有の方式)
を本願発明の前に本願発明者等が検討した際に、下記の
如き検討結果を基礎としてなされたものである。
すなわち、本願発明の以前に公知の階層キャッシュを有
するシステムにおいては、プロセッサ(CPU)から内
側キャッシュメモリおよび外側キャッシュメモリへのラ
イト・アクセス(書き込み・アクセス)の要求とキャッ
シュの無効化の要求とが生じた場合の問題について、さ
らには外側キャッシュ;^モリのアドレス端子数を低減
することに関しては、十分な配慮がなされていなかった
従って、本願発明の目的とするところは、階層キャッシ
ュの外側および内側のキャッシュとも非共有の方式のマ
ルチプロセッサシステムにおいて、プロセッサ(c P
 U)から内側キャッシュメモリおよび外側キャッシュ
メモリへのライト・アクセス(書き込み・アクセス)の
要求とキャッシュの無効化の要求とが生じた場合の問題
を解決する一方、外側キャッシュメモリのアドレス端子
数を低減することにある。
〔課題を解決するための手段〕
上記目的を達成する如く、本発明の代表的な実施例によ
るマルチプロセッサシステムはニアドレスを発生する第
1のプロセッサ(10)と、上記第1のプロセッサ(1
(1)からの上記アドレスに従ってアクセスされる第1
の内側キャッシュメモリ(11)と、 上記第1のプロセッサ(10)からの上記アドレスに従
ってアクセスされる第1の外側キャッシュメモリ(12
)と、 アドレスを発生する第2のプロセッサ(20)と、上記
第2のプロセッサ(20)からの上記アドレスに従って
アクセスされる第2の内側キャッシュメモリ(21)と
上記第2のプロセッサ(20)からの上記アドレスに従
ってアクセスされる第2の外側キャッシュメモリ(22
)と、 上記第1の外側キャッシュメモリ(12)を介して伝達
される上記第1のプロセッサ(10)からの上記アドレ
スおよび上記第2の外側キャッシュメモリ(22)を介
して伝達される上記第2のプロセッサ(20)からの上
記アドレスが伝達されるアドレスバス(31)と。
上記第1の外側キャッシュメモリ(12)を介して上記
第1のプロセッサ(lO)および上記第1の内側キャッ
シュメモリ(11)に接続され、上記第2の外側キャッ
シュメモリ(22)を介して上記第2のプロセッサ(2
0)および上記第2の内側キャッシュメモリ(21)に
接続されたデータバス(32)と、 上記アドレスバス(31)および上記データバス(32
)に接続された記憶手段(30)と、 上記第1の外側キャッシュメモリ(12)および上記第
2の外側キャッシュメモリ(22)を迂回して上記アド
レスバス(31)と上記第1の内側キャッシュメモリ(
11)および上記第2の内側キャッシュメモリ(21)
との間を接続するバス(35,36)とを具備してなり
、上記第1の内側キャッシュメモリ(11)および上記
第2の内側キャッシュメモリ(21)はライト・スルー
方式で動作し、 上記第1の外側キャッシュメモリ(12)および上記第
2の外側キャッシュメモリ(2z)はコピー・バック方
式およびライト・ワンス方式の少なくとも一方で動作し
上記第1の外側キャッシュメモリ(12)と上記アドレ
スバス(31)との間の接続は、該両者間で双方向にア
ドレス伝達が可能であり、 上記第2の外側キャッシュメモリ(22)と上記アドレ
スバス(31)との間の接続は、該両者間で双方向にア
ドレス伝達が可能であるであることを特徴とする。
〔作用〕
以上の構成によるマルチプロセッサシステムによれば、
記憶手段(30)の書き換えに付随して発生されるアド
レスバス(31)上の無効化アドレスはバス(35,3
6)を介して第1の内側キャッシュ(11)と第2の内
側キャッシュ(21)とに伝達されるので、これらの内
側キャッシュが無効化される。また、アドレスバス(3
1)と第1の外側キャッシュ(12)および第2の外側
キャッシュ(22)との間の双方向接続を介して上記無
効化アドレスが第1の外側キャッシュ(12)と第2の
外側キャッシュ(22)とに伝達されるので、これらの
外側キャッシュが無効化され、マルチプロセッサシステ
ムにおける記憶手段(30)と内側および外側キャッシ
ュ(11,21,12,22)との一貫性が保たれる。
さらに、第1の外側キャッシュメモリ(12)および第
2の外側キャッシュメモリ(22)はコピー・バック方
式およびライト・ワンス方式の少なくとも一方で動作す
る。一方、第1のプロセッサ(10)もしくは第2のプ
ロセッサ(20)からのライト・アクセスの際に、ライ
ト・アクセスのアドレスが第1の外側キャッシュメモリ
(12)もしくは第2の外側キャッシュメモリ(22)
にヒツトする可能性が高い。
このヒツトの際は、コピー・バック方式においては、ラ
イト・アクセスのアドレスがアドレスバス(31)に伝
達されることが無いので、アドレスバス(31)と第1
の外側キャッシュ(12)および第2の外側キャッシュ
(22)との間の双方向接続を介して無効化アドレスが
第1の外側キャッシュ(12)と第2の外側キャッシュ
(22)とに伝達されても、この双方向接続の上でライ
ト・アクセスのアドレスと信号の競合を生じる可能性が
極めて少ない。
また、ヒツトの際は、ライト・ワンス方式においては、
特定のアドレスのデータの最初の更新時には外側キャッ
シュと主記憶とにライト・アクセスして最初の更新デー
タを格納するが、特定のアドレスのデータの再更新時に
は外側キャッシュのみライト・アクセスして再更新デー
タを格納し、主記憶をライト・アクセスすることがない
、よって、特定のアドレスのデータの再更新時には、ラ
イト・アクセスのアドレスがアドレスバス(31)に伝
達されることが無いので、アドレスバス(31)と第1
の外側キャッシュ(12)および第2の外側キャッシュ
(22)との間の双方向接続を介して無効化アドレスが
第1の外側キャッシュ(12)と第2の外側キャッシュ
(22)とに伝達されても、この双方向接続の上でライ
ト・アクセスのアドレスと(a号の競合を生じる可能性
が極めて少ない。
従って、外側キャッシュ(12,22)のアドレスバス
(31)との双方向接続によって、外側キャッシュ(1
2,22)のアドレス端子数を低減することができる。
また、以上の構成によるマルチプロセッサシステムによ
れば、第1の内側キャッシュメモリ(11)と第1の外
側キャッシュメモリ(12)とは第1のプロセッサ(1
0)からのアドレスに従ってアクセスされ。
第2の内側キャッシュメモリ(21)と第2の外側キャ
ッシュメーモリ(22)とは第2のプロセッサ(20)
からのアドレスに従ってアクセスされる。このように。
内側キャッシュと外側キャッシュとも非共有の方式であ
る。一方、マルチプロセッサ・システムのデータ処理能
力を増大するためには、プロセッサ接続数を増大する必
要がある。この際、上記の構成によれば、プロセッサ接
続数の増加数に対応して内側キャッシュと外側キャッシ
ュの接続数を増加するだけで対処が可能である。
もし、外側キャッシュが複数のプロセッサによって共有
されたとすると、プロセッサ接続数の増加に対処するこ
とが困難となることは言うまでもない。この点において
も、上記の構成(内側キャッシュと外側キャッシュとも
非共有の方式)によるマルチプロセッサ・システムは有
益である。
本願発明のその他の目的と他の特徴は、以下の実施例の
説明から明らかとなろう。
〔実施例] マルチプロセッサシステムの  の 第1図に本発明の一実施例による情報処理装置の全体図
を示す6本情報処理装置は、2個のプロセッサ(CP 
U:Central Processing Unit
) 10.20と、2個の内側のキャッシュ11.21
と。
2個の外側のキャッシュ12.22と、2個の入出力袋
[33,34と、1個の主記憶装置30と、主記憶バス
アドレス線31と、主記憶バスデータ線32とからなる
マルチプロセッサシステムである。
主記憶30は二つのプロセッサ10.20によって共有
してアクセスされる一方、内側のキャッシュ11と外側
のキャッシュ12はプロセッサ10からのアドレスによ
ってのみプライベートにライト・アクセスされ、内側の
キャッシュ21と外側のキャッシュ22はプロセッサ2
0からのアドレスによってのみプライベートにライト・
アクセスされる。
プロセッサ10と内側のキャッシュ11はプロセッサア
ドレス線13、プロセッサデータ線14を用いてアドレ
スおよびデータの授受を行なう。
内側のキャッシュ11と外側のキャッシュ12はキャッ
シュ間アドレス線15、キャッシュ間データ線16を用
いてアドレスおよびデータの授受を行なう。20乃至2
6の接続は10乃至16と全く同じように接続されてい
る。
主記憶装置30に対するアドレスおよびデータの授受は
すべて主記憶バスアドレスm31、主記憶バスデータ線
32を用いて行なう。主記憶バスアドレス線31.主記
憶バスデータ線32は外側のキャッシュ12.22、お
よび入出力装置33.34と接続されている。
また主記憶バスアドレス線31は、後述するように、第
1のバス35と第2のバス36とを介してそれぞれ内側
のキャッシュ11.12にも入力されている。なお、リ
ード・ライト識別信号、バススタート信号等のバスの制
御信号はすべて主記憶アドレス線31に含まれていると
考える。よって内側のキャッシュ11.12には主記憶
バスのリード・ライト識別信号、バススタート信号など
も入力されている。
プロセッサアドレス線13とキャッシュ間アドレス線1
5とを介して、アドレスはプロセッサ10から内側キャ
ッシュ11と外側キャッシュ12とへ一方向に伝達され
る一方、この線13.15で逆方向にアドレスが伝達さ
れることはない。同様に、プロセッサアドレス線23と
キャッシュ間アドレス線25とを介して、アドレスはプ
ロセッサ20から内側キャッシュ21と外側キャッシュ
22とへ一方向に伝達される一方、この線23.25で
逆方向にアドレスが伝達されることはない。
従って、内側キャッシュ11と外側キャッシュ12とは
プロセッサ10からのアドレスに従ってアクセスされ、
内側キャッシュ21と外側キャッシュ22とはプロセッ
サ20からのアドレスに従ってアクセスされる。
また主記憶バスアドレス線31は外側キャッシュ12を
介して伝達されるプロセッサ10からのアドレスが伝達
され、外側キャッシュ22を介して伝達されるプロセッ
サ20からのアドレスが伝達され、また入出力装置33
.34からのアドレスも伝達される。
従って、主記憶袋@30は二つのプロセッサ10.20
からのアドレスによって共有してアクセスされることに
なる。
主記憶バスデータw&32は外側キャッシュ12を介し
てプロセッサ10と内側キャッシュ11と接続され、外
側キャッシュ22を介してプロセッサ20と内側キャッ
シュ21と接続されている。
すなわち、プロセッサデータ線14とキャッシュ間デー
タ線16とを介して、外側キャッシュ12とプロセッサ
10および内側キャッシュ1工との間はデータが双方向
に伝達されることができ、プロセッサデータ線24とキ
ャッシュ間データ線26とを介して、外側キャッシュ2
2とプロセッサ20および内側キャッシュ21との間は
データが双方向に伝達されることができる。
また、外側キャッシュ12.22、入出力装置33.3
4、主記憶装置30と主記憶バスデータ線32との間は
、データが双方向に伝達されることができる。
一方、外側キャッシュ12を迂回して主記憶バスアドレ
ス線31と内側キャッシュ11とを接続する第1のバス
35と、外側キャッシュ22を迂回して主記憶バスアド
レス線31と内側キャッシュ21とを接続する第2のバ
ス36とがシステムに配置されている。
また、キャッシュに書き込みアクセスを受けた場合のキ
ャッシュ内の処理としては、既に説明したようにライト
・スル一方法とコピー・バック方法とライト・ワンス方
法の3通りがある。ライト・スル一方法は書き込みアク
セスのたびに、キャッシュ・ヒツトの際も自キャッシュ
と自キャッシュの外側とに書き込みを行う方法であり、
コピー・バック方法はキャッシュ・ヒツトの際に自キャ
ッシュにのみ書き込み、自キャッシュの外側には書き込
まない方法であり、ライト・ワンス方式においては、特
定のアドレスのデータの最初の更新時には外側キャッシ
ュと主記憶とにライト・アクセスして最初の更新データ
を格納するが、特定のアドレスのデータの再更新時には
外側キャッシュのみライト・アクセスして再更新データ
を格納し、主記憶をライト・アクセスすることがない。
本実施例では内側キャッシュ11.21はライト・スル
一方法で動作し、外側キャッシュ12.22は状況に応
じてコピー・バック方法もしくはライト・ワンス方法で
動作する。
また、主記憶バスアドレス線3Lは外側キャッシュ12
.22.入出力装置33.34と双方向のアドレスの伝
達が可能である一方、主記憶バスアドレス11A31か
ら主記憶装置130への一方向のみのアドレスの伝達が
行なわれる。
キ ・シュ彊    の このようなマルチプロセッサシステムによれば、主記憶
装置30の書き換えに付随して発生される主記憶アドレ
スバス31上の無効化アドレスは第1のバス35と第2
のバス36とを介して内側キャッシュ11と内側キャッ
シュ21とに伝達されるので、これらの内側キャッシュ
11.21が無効化される。
また、主記憶アドレスバス31と外側キャッシュ12お
よび外側キャッシュ22との間の双方向接続を介して無
効化アドレスが外側キャッシュ12と外側キャッシュ2
2とに伝達されるので、これらの外側キャッシュ12.
22が無効化され、マルチプロセッサシステムにおける
主記憶装置30と内側および外側キャッシュ11.21
.12゜22との一貫性が保たれる。
八〇゛の さらに、外側キャッシュ12および外側キャッシュ22
はコピー・バック方式もしくはライト・ワンス方式のい
ずれかで動作する。従って、プロセッサ10もしくはプ
ロセッサ20からのライト・アクセスの際に、ライト・
アクセスのアドレスが外側キャッシュメモリ12もしく
は外側キャッシュメモリ22にヒツトする可能性が高い
このヒツトの際は、コピー・バック方式では。
ライト・アクセスのアドレスが主記憶アドレスバス31
に伝達されることが無いので、主記憶アドレスバス31
と外側キャッシュ12および外側キャッシュ22との間
の双方向接続を介して無効化アドレスが外側キャッシュ
12と外側キャッシュ22とに伝達されても、この双方
向接続の上でライト・アクセスのアドレスと信号の競合
を生じる可能性が極めて少ない。
また、ヒツトの際は、ライト・ワンス方式においては、
特定のアドレスのデータの最初の更新時には外側キャッ
シュと主記憶とにライト・アクセスして最初の更新デー
タを格納するが、特定のアドレスのデータの再更新時に
は外側キャッシュのみライト・アクセスして再更新デー
タを格納し、主記憶をライト・アクセスすることがない
。よって、特定のアドレスのデータの再更新時には、ラ
イト・アクセスのアドレスがアドレスバス(31)に伝
達されることが無いので、アドレスバス(31)と第1
の外側キャッシュ(12)および第2の外側キャッシュ
(22)との間の双方向接続を介して無効化アドレスが
第1の外側キャッシュ(12)と第2の外側キャッシュ
(22)とに伝達されても、この双方向接続の上でライ
ト・アクセスのアドレスと信号の競合を生じる可能性が
極めて少ない。
キヤ・シュの 内側のキャッシュ11の内部回路構成図を、第2図に示
す。
アドレスアレイ200は、上位アドレスおよびデータア
レイの記憶が有効であることを示す1ビツトのフラグ(
Vbit)を組にして1列分とした記憶部を多数列持っ
ている。その記憶部は、入力アドレスの下位アドレス2
11によっていずれか1列が選択される。アドレスアレ
イ200はプロセッサ10の下位アドレス211、主記
憶アドレスバス31の下位アドレス217を入力として
いるが、その記憶部はデュアルポートのRAMによって
構成されているので、2つの入力に対して独立に動作可
能であり、同時に異なる列に対してアクセスすることが
できる。
データアレイ201は1ブロック分のデータの記憶部か
らなる列をアドレスアレイ200とちょうど同数列もち
、そのデータは信号線219を介して読み出し/書き込
みのアクセスが可能である。
データアレイ201の各列はアドレスアレイ200の各
列と1対1に対応している。ある下位アドレス211に
対応する列のアドレスアレイ200のVビットが1のと
き、アドレスアレイ200から読み出した上位アドレス
と該当下位アドレスとを組合せたアドレスから始まる1
ブロック分のデータをデータアレイ201は有している
ことを示し、VビットがOのときには、そのブロックは
何も格納していないことを示す。
アドレスアレイ200、データアレイ201がセットア
ソシアティブ方式をとる場合には、以上に述べたアドレ
スアレイ、データアレイを複数個多重に構成すればよい
。本特許はセットアソシアティブ方式のキャッシュに適
用しても何ら障害はない。
202.203.204はアドレス線のスイッチ、20
5,206はデータ線のスイッチである。
209はキャッシュ11の全体の制御を行なうコントロ
ールブロックである。コントロールブロック209はキ
ャッシュがブロックの転送をするのに必要なアドレスの
保持も行う。
プロセッサ10からのアクセスが発生した場合のキャッ
シュ11の動作を以下に述べる。要求元がアクセスした
データがキャッシュ内に存在することをヒツトと言う。
キャッシュはアクセスのたびにヒツトしたか否か次のよ
うにして調べる。プロセッサ10からのアクセスが発生
すると、アクセスアドレス13の下位アドレス211に
よってアドレスアレイ200のうちの1列を選択し、そ
の内容を読み出す。読み出した上位アドレスは信号線2
12に出力される。この信号線212上の上位アドレス
とアクセスアドレスの上位アドレス210とを比較する
。アドレスが一致し、かつアドレスアレイ200のVビ
ットが1ならばヒツトである。すなわち、(アドレス一
致)X (V=1)がヒツト条件である。その判断はヒ
ツト判定器208が行ない、その結果は信号線214を
介してコントロールブロック209に伝えられる。
プロセッサ10が読み出しアクセスを発行した場合、も
しヒツトすれば内側のキャッシュ11はデータアレイ2
01からプロセッサ10ヘヒツトしたアクセスアドレス
に対応するデータを供給する。すなわち、データはデー
タアレイ201から信号線219、スイッチ205、プ
ロセッサデータ線14を介して、プロセッサ10に転送
される。
ヒツトしなかった場合には、要求するデータが内側のキ
ャッシュ11内に存在しないことを意味するので、内側
のキャッシュ11は外側のキャッシュ12に対し該当ブ
ロックのリード要求を出す。
このため、プロセッサ10から上位アドレス210、下
位アトレイ211がスイッチ203とキャッシュ間アド
レス線15とを介して外側のキャッシュ12に伝達され
、該当ブロックを外側のキャッシュ12もしくは主記憶
30から獲得して、データアレイ201に格納すると同
時にプロセッサ10にデータを供給する。
コントロールブロック209は、上記のアドレスおよび
データの転送が可能となるように、スイッチ202.2
03.204.205,206の信号伝達を制御してい
る。
またプロセッサ10が書き込みアクセスを発行した場合
は、もしヒツトすれば内側のキャッシュ11はデータを
データアレイ201と外側のキャッシュ12の両方に書
き込み、ヒツトしなかった場合にはデータを外側のキャ
ッシュ12にのみ書き込む、すなわち、ライト・スル一
方法の書き込み動作を内側のキャッシュ11が実行する
ものとなる。
内側のキャッシュ11の無効化について以下に説明する
。主記憶バス31のリード、ライト識別信号、バススタ
ート信号等の制御信号は第1のバス35と信号線218
とを介して内側のキャッシュ11のコントロールブロッ
ク209に入力されているので、内側のキャッシュ11
は主記憶装置30に対する書き込みが行われるタイミン
グを知ることができる。主記憶バス上で書き込みアクセ
スが行なわれるたびに、主記憶アドレスバス31上の下
位アドレス217を使ってアドレスアレイ200の列の
うち1列を選択し、その内容を読み出す。その結果読み
出した上位アドレスは信号線213に出力される。この
信号線213上の上位アドレスと主記憶バスの上位アド
レス216とを比較し、もしくアドレス一致) x (
Vビット=1)であったら、該当のVビットをOに書き
換えて内側のキャッシュ11の無効化を実行する。この
ためのアドレス一致の判断はヒツト判定器207が行な
い、その結果は信号線215を介してコントロールブロ
ック209に伝えられ、コントロールブロック209の
出力によってVビットは1から0に書き換えられる。
久1し萱V−)2呈1ヱロ連見皮 外側のキャッシュ12の構成図を第3図に示す。
300乃至319は内側のキャッシュ11の200乃至
219とそれぞれほぼ等しいもので構成されている。
しかし、若干の相違点はある。アドレスアレイ300は
アドレスアレイ200に比べ1列につき2ビツトの記憶
部を余計に持っている。そのlビットは更新ビット(U
bit)と言い、コピー・バック方法を可能とするため
に存在する。他のlヒツトは予約ビット(Rbit)と
言い、ライト・ワンス方法を可能とするために存在する
。このライト・ワンス方法については、後に詳細に説明
する。
コントロールブロック309は主記憶バス31のアドレ
ス316,317とアドレスの授受を行う、また図には
表示しないがコントロールブロック309はアドレスア
レイ300のV、U、Rフラグを直接入力している。
内側のキャッシュ11からのアクセスが発生した場合の
外側のキャッシュ12の動作を、以下に述べる。
内側のキャッシュ11が読み出しアクセスを発行した場
合、もしヒツトすれば外側のキャッシュ12はデータア
レイ301から内側のキャッシュ11ヘデータを供給す
る。ヒツトしなかった場合には要求するデータがキャッ
シュ内に存在しないことを意味するので外側のキャッシ
ュ12は主記憶装置30に対し該当ブロックのリード要
求を出す。そして該当ブロックを獲得すると同時に内側
のキャッシュ11にデータを供給する。
また内側のキャッシュ11が書き込みアクセスを発行し
た場合の外側キャッシュ12のライト・アクセス動作お
よび外側キャッシュ12の主記憶アドレスバス31の監
視の動作等についても、以キ  シュのライ ・アクセ
ス まず、プロセッサ10から内側キャッシュ11を経由し
たライト・アクセスのアドレスを受けた第3図の外側キ
ャッシュ12の場合の動作を、第4図の動作フロー図を
参照して説明する。
キャッシュ間データ線15を経由して供給される上記ア
ドレスの下位アドレスに従って第3図の外側キャッシュ
12のアドレスアレイ300の一列から上位アドレス、
V、U、Rのビットが読み出される。読み出された上位
アドレスと供給アドレスの上位アドレスの一致とVビッ
トとから、第4図の処理10で外側キャッシュ12に対
するヒツトもしくはミスが判別される。ヒツトの場合に
動作は処理10の右のルートに移り、ミスの場合に処理
10の左のルートに移る。
第4図の処理11では、読み出されたVビット。
Uビットの判定が行われ、■=1、U=1の場合に動作
は処理12に移り、それ以外のv=oもしくはV=1.
U=Oの場合に動作は処理12を迂回して処理13に移
る。
すなわち、ミス時のV=1.U=1の事実は、外側キャ
ッシュ12に格納されかつ下位アドレスに対応したデー
タが、主記憶30に格納されかつ下位アドレスに対応し
たデータと対応してないことを意味している。従って、
ミスしたアドレスへの新しいデータの書き込みの前に、
ミスしたアドレスの以前のデータを外側キャッシュ12
から主記憶30に戻すと言う動作(コピー・バック)が
必要である。このコピー・バックが省略されたとすれば
、その後の処理13の後以前のデータが外側キュッシュ
12および主記憶30のいずれにも存在し得ないと言う
問題が生じる。
これを回避するための第4図の処理12は、このコピー
・バックの動作を示している。このコピー・バックの処
理に際して、まず下位アドレスと該下位アドレスに従っ
て外側キャッシュ12のアドレスアレイ300から読み
出された上位アドレスとを連結してアドレスが生成され
る一方、外側キャッシュ12のデータアレイ301から
下位アドレスに対応したlブロックのデータが読み出さ
れる。このようにして読み出されたlブロックのデータ
が上記の連結アドレスに従って主記憶3゜に書き込まれ
、コピー・バックの処理が完了する。
V=OもしくはV=1、U=O(7)場合には、このコ
ピー・バック処理12は必要とされず、処理13のミス
時に対処するための外部キャッシュのデータ格納動作に
移る。
ミス時に対処するためのこの処理13においては、下位
アドレスおよびプロセッサ1oから発行された上位アド
レスに従って主記憶3oがらデータが読み出され、この
読み出しデータと上位アドレスとはそれぞれ外側キャッ
シュ12のデータアレイ301とアドレスアレイ300
とに下位アドレスによって指定される1列に書き込まれ
る。それと同時に外側キャッシュ12の該当フラグは。
V=1、U=O,R=Oとセットされる。
処理10の右のルートおよび処理13に続いて。
処理14のRビット判定処理が行なわれる。このRビッ
トは、プロセッサ10から発行されたアドレスの下位ア
ドレスに従って外側キャッシュのアドレスアレイ300
から読み出された列のRビットである。R=Oの場合は
処理15に移り、R=1の場合は処理16に移る。
R=Oの場合の処理15はライト・ワンスの書き込み動
作となる。すなわち、この処理15では、プロセッサ1
0から発行されたアドレスに従って外側キャッシュ12
と主記憶30とにデータを書き込む。また、この主記憶
30へのデータ書き込み時に、外側キャッシュ12の該
当RビットをOから1に更新する。この処理15は通常
のコピー・バック方式のライト・アクセスと異なり、R
=0の場合、ヒツト時に自キャッシュのみにデータを書
き込むのではなく、該当アドレスに従って一回だけ主記
憶袋fit30にもデータを書き込むのでライト・ワン
ス方式の書き込みと言う。
一方、R=1の場合の処理16は1通常のヒツト時のコ
ピー・バック方式の書き込みとなる。すなわち、プロセ
ッサ10から発行されたアドレスに従って外側キャッシ
ュ12にデータが書き込まれるが、主記憶30にはアド
レスが伝達されることもなく、主記憶30にデータが書
き込まれることもない。この外側キャッシュ12へのデ
ータ書き込み時に、外側キャッシュ12の該当Uピット
を1にセットする。
以上の処理15または16の完了によって、プロセッサ
10から内側キャッシュ11を経由したライト・アクセ
スのアドレスを受けた外側キャッシュ12の場合の動作
が完了することとなる。
入 力  による   の き え 第1図のマルチプロセッサシステムで、主記憶袋[30
の特定のアドレスのデータDのコピーが内側キャッシュ
11.21、外側キャッシュ12.22に保持されてい
る状態で、1個の入出力装置33によって主記憶袋[3
0の特定のアドレスのデータDがデータD′に書き換え
られる場合を考える。このような主記憶のデータ更新に
際して、キャッシュの該当データを無効化する必要が有
ることは良く知られている。
このデータ更新に際して、入出力装置33から上記特定
のアドレスが主記憶アドレスバス31に供給される一方
、入出力装置33から更新データD′が主記憶データバ
ス32に供給される。この時の主記憶アドレスバス3工
上の上記特定のアドレスが、キャッシュ無効化のための
無効化アドレスとして利用される。
この無効化アドレスは第1のバス35と第2のバス36
とを介して内側キャッシュ11と内側キャッシュ21と
に伝達されるので、これらの内側キャッシュが無効化さ
れる。また、アドレスバス31と外側キャッシュ12お
よび外側キャッシュ22との間の双方向接続を介して上
記無効化アドレスが外側キャッシュ12と外側キャッシ
ュ22とに伝達されるので、これらの外側キャッシュが
無効化される。
このキャッシュの無効化の後、プロセッサ10が上記特
定のアドレスを発生して、主記憶30にリード・アクセ
スすると、更新データD′が内側キャッシュ11と外側
キャッシュ12とに格納されることとなる。
このようにして、マルチプロセッサシステムにおける主
記憶30と内側および外側キャッシュ11.21.12
.22との一貫性が保たれる。
プロセ・すによる   の き え この書き換え前の、キャッシュの動作から説明する。
今、第1図のマルチプロセッサシステムで、内側および
外側キャッシュ11.21.12.22には、どのよう
なデータも格納されていない状態(すなわち、空の状態
)であると考える。この時は、外側キャッシュ12.2
2はともにV=O1U=0、R=Oの無効状態となって
いる。
この状態でプロセッサ20が特定アドレスを発行するこ
とによってデータのリード・アクセスを行うと、内側キ
ャッシュ21と外側キャッシュ22とでキャッシュ・ミ
スが生じ、主記憶30がアクセスされ1発行アドレスに
該当するデータDが主記憶30から外側キャッシュ22
、内側キャッシュ21に格納される一方、プロセッサ2
0にも転送される。このデータDの外側キャッシュ22
への格納によって、外側キャッシュ22はv=O1U=
O,R=O(7)無効状態からV=1.U=O1R=O
の有効状態に状態が遷移する。
次に、プロセッサ10が上記特定アドレスに該当するデ
ータDをデータD′に更新するようなライト・アクセス
する場合について考える。
この時は、内側キャッシュ11でキャッシュ・ミスが生
じ、更新データD′は内側キャッシュ1工に書き込まれ
ない。
外側キャッシュ12もキャッシュ・ミスとなるので、第
4図の処理の左のルートに移り、処理11でVビット、
Uビットの判定が行なわれる。外側キャッシュ12は無
効状態であったので、動作は第4図の処理土1から処理
13に移り、データDを含む1ブロツクのデータが主記
憶30から外側キャッシュ12に転送される。このデー
タ転送によって、外側キャッシュ12の該当アドレスは
V=1、U=O,R=Oとビットの設定が行なわれる。
R=Oであるため、処理14を介して動作は処理15に
移り、この処理15によってプロセッサ10からデータ
D′が外側キャッジツユ12と主記憶30とに書き込ま
れ、外側キャッジツユ12のRビットがOから1に更新
される。また、この主記憶30へのデータの書き込みに
おける主記憶アドレスバス31上のアドレスが無効化ア
ドレスとして外側キャッシュ22、内側キャッシュ21
に供給されるので、外側キャッシュ22、内側キャッシ
ュ21の格納データDを含む各1ブロツクのデータが無
効化される。
さらに、プロセッサ10がデータD′をデータp l 
1に再更新するようなライト・アクセスする時の動作に
ついて考える。この時も、内側キャッシュ11はミスと
なり、データD I +は内側キャッシュ11に格納さ
れない。一方、外側キャッシュ12は今度はヒツトとな
るので、その動作は第4図の処理10の右から処理14
のRピット判定に動作が移る。データDからデータD′
への更新時にR=1にセットされていたので、処理16
に動作が移り、再更新データ[) t jは外側キャッ
シュ12に格納される一方、主記憶30には格納されな
い。
再更新データDjlの外側キャッシュ12への格納時に
、外側キャッシュ12の該当するUビットはlにセット
される。
このように、外側キャッシュ12のRビットは、特定の
アドレスのデータの最初の更新時には主記憶をライト・
アクセスする一方、特定のアドレスのデータの再更新時
には主記憶をライト・アクセスしないようにするために
利用されている。かくして、このRビットによる制御に
よって、外側キャッシュ12はライト・ワンス方式のラ
イト動作を行なうので、一般にキャッシュのヒツト率が
高いので滅多にアドレスを主記憶アドレスバス31に出
力することはない。従って、外側キャッシュ12は主記
憶アドレスバス31との双方向アドレスバスを介して無
効化ア・ドレスを受けることができる。
ライト・ワンス方式のライト動作の書き込みと無効化ア
ドレスの受信の競合に対処する手法について説明する。
この競合に対処するため、主記憶アドレスバスの監視の
機能が外側キャッシュに設けられている。
以下に、その監視機能について説明する。
キャッシュの   アドレスバス 第3図の外側キャッシュ12が主記憶アドレスバス31
のリード・アクセスもしくはライト・アクセスのアドレ
スに応答してどのように動作するかを、第5図の動作フ
ロー図を参照して説明する。
主記憶アドレスバス31のリード・ライト識別信号に応
答して第3図の外側キャッシュ12のコントローラ30
9は、主記憶アドレスバス31への要求がリード要求か
ライト要求かを第7図の処理10で判別する。リード要
求であれば第5図の処理10の左のルートに動作が移り
、ライト要求であれば処理10の右のルートに移る。
処理11はリード・アクセスのアドレスが、外側キャッ
シュにヒツトしているかミスしているを判別する。
ミスの場合は、外側キャッシュ12に対して主記憶アド
レスバス31のリード・アクセスは何の関係も無いので
、処理11の左のルートに移って処理を終了する。
ヒツトの場合は、主記憶アドレスバス31のリード・ア
クセスと外側キャッシュ12の格納データとの関係が問
題となるので、処理12のUビットの判定処理に動作が
移る。すなわち、リード・アクセスのアドレスに従って
、外側キャッシュ12のアドレスアレイ300からUビ
ットを読み出し、U=OかU=1かを判定する。
U=1の場合は、リード・アクセス要求のあったデータ
が外側キャッシュ12でのみ更新されているので、処理
13に動作が移る。
この処理13では、リード・アクセス要求のあったデー
タを外側キャッシュ12から主記憶30に転送し、その
後外側キャッシュ12のUビットを1からOに更新する
・ この処理13の後、もしくはU=Oの場合、処理14に
動作が移り、この処理14ではR=1かR=Oかが判定
される@R=1の場合は、外側キャッシュ12が特定の
アドレスに対応したデータを初めて更新し、キャッシュ
21,22の特定のアドレスに対応したデータを無効化
したことを意味している。しかし、この主記憶バス31
のリード・アクセスはプロセッサ20が特定のアドレス
で主記憶30をリード・アクセスして、主記憶30から
読み出したデータのコピーをキュッシュ21.22が保
持している可能性が有ることを示している0次に、プロ
セッサ10が特定のアドレスのデータを再更新するよう
なライト・アクセスを実行すると、特定のアドレスが外
側キャッシュにヒツトし、R=1であるので、動作は第
4図の処理16に移ってしまい、データ再更新は外側キ
ャッシュでのみ行なわれ、主記憶アドレスバス31にア
ドレスが出力されず、キャッシュ21.22を無効化す
ることができなくなる。これを回避するため、R=1の
場合は第5図の処理15に動作が移り、この処理15で
Rビットが1からOに更新して、処理を終了する。R=
Oの場合は、そのまま処理を終了する。
ライト要求時には、動作は第5図の処理10の右のルー
トに移る。
処理16はライト・アクセスのアドレスが、外側キャッ
シュにヒツトしているかミスしているを判別する。
ミスの場合は、外側キャッシュ12に対して主記憶アド
レスバス31のライト・アクセスは何の関係も無いので
、処理16の右のルートに移って処理を終了する。
ヒツトの場合は、主記憶アドレスバス31のライト・ア
クセスと外側キャッシュ12の格納データとの関係が問
題となるので、処理17のUビットの判定処理に動作が
移る。すなわち、ライト・アクセスのアドレスに従って
、外側キャッシュ12のアドレスアレイ300からUビ
ットを読み出し、U=OかU=1かを判定する。
U=1の場合は、ライト・アクセス要求のあったアドレ
スに対応する以前データが外側キャッシュ12でのみ更
新され主記憶30に格納されていないので、処理18に
動作が移る。
この処理18では、ライト・アクセス要求のあった以前
のデータを外側キャッシュ12から主記憶30に転送し
、その後外側キャッシュ12のVビットをlからOに更
新して、外側キャッシュ12の該当ブロックを無効化す
る。
主記憶30では、外側キャッシュ12から戻された以前
のデータの上にライト・アクセス要求に従った新しいデ
ータが上書きされる。
U=Oの場合は、Vビットを1からOにセットし、Rビ
ットを0として、単に外側キャッシュ(2の該当ブロッ
クを無効化して処理を完了する。
すなわち、この処理17で、もしU=Oの場合、処理1
9に動作が移り、この処理19ではVビットを1からO
に更新して処理を終了する。
先に問題にした信号の競合に、説明を戻す、すなわち、
外側キャッシュ12のライト・ワンスの書き込みタイミ
ングと主記憶アドレスバス31上の無効化アドレスの発
生タイミングの時間差によって、信号の競合が下記のよ
うにして問題とならなくなる。
まず、前者が後者より早い場合は、外側キャッシュ12
のライト・ワンスの書き込み(第4図の処理15)によ
って、他のキャッシュ21.22は無効化されている。
その後、入出力装置33からバス31.32を介して主
記憶30にデータの転送が行なわれ、この際の無効化ア
ドレスがバス31から外側キャッシュ12に供給されて
も何ら問題ない。
一方、後者が前者よりも早い場合を、考える。
この時は、外側キャッシュ12はライト・ワンスの書き
込みを行なう直前であるので、そのUビットはOである
。従って、主記憶アドレスバス31上の無効化アドレス
に応答して、外側キャッシュ12は第5図の処理10.
16.17.19のルートによって無効化される。従っ
て、RビットとVビットとがOとなるので、その後のラ
イト動作は、外側キャッシュ12はキャッシュ・ミスと
なり、第4図の処理10.11.13.14.15のル
ートになって、ライト・ワンスのライト・アクセスが実
行される。
以上説明した本発明の一実施例によれば、下記 の如き効果を有する。
(1)内側および外側のキャッシュともにアドレスアレ
イ200,300がデュアルポートのRAMによって構
成されているので、プロセッサ側からのアクセスのアド
レスと主記憶アドレスバスからの無効化アドレスとを並
行して処理することが可能となり、情報処理効率が良い
(2)外側キャッジユニ2.22にコピー・バック方式
又はライト・ワンスのいずれかで動作するため。
ライト・アクセス時のアドレスと無効化アドレスとが競
合する可能性が低く、外側キャッシュ12.22のアド
レス出力と主記憶アドレスバス31との間を双方向接続
とすることができ、外側キャッシュ12.22のアドレ
ス端子数を低減することができた。
本発明は上記実施例に限定されるものではなく、その技
術思想の範囲内で種々の変形が可能であることは言うま
でもない。
例えば、第1図で30の記憶装置を共有キャッシュとし
て3層の階層キャッシュとし、主記憶装置を4層目の記
憶装置とすることも可能である。
また、3層目の共有キャッシュを複数配置し、この複数
の3層目の共有キャッシュと4層目の主記憶装置との間
に第2の主記憶アドレスバスと第2の主記憶データバス
とを接続することも可能である。
また、プロセッサ10と内側キャッシュ2oとを、ひと
つの半導体チップに形成することも可能である。
また、ULSIの集積密度の飛躍的向上によって、二つ
のプロセッサ1O120、二つの内側キャッシュ11.
21、二つの外側キャッシュ12.22のすべてを、ひ
とつの半導体チップに形成することも可能である。この
際は、バス35.36は共通化され、ひとつのバスとし
て半導体チップの外部に取り出されることとなり、バス
の配線数を低減することが可能となる。
[発明の効果] 本発明によれば、階層キャッシュの外側および内側のキ
ャッシュとも非共有の方式のマルチプロセッサシステム
において、プロセッサ(CPU)から内側キャッシュメ
モリおよび外側キャッシュメモリへのライト・アクセス
(書き込み・アクセス)の要求とキャッシュの無効化の
要求とが生じた場合に、これらを問題無く対処できる一
方、外側キャッシュメモリのアドレス端子数を低減する
ことが可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例によるマルチプロセッサシス
テムのブロックダイヤグラムを示し。 第2図は第1図のシステム中の内側キャッシュの内部構
成を示すブロックダイヤグラムであり、第3図はオニ図
のシステム中の外側キャッシュの内部構成を示すブロッ
クダイヤグラムであり、第4図は外側キャッシュのライ
ト・アクセスの動作を説明するための動作フロー図であ
り。 第5図は外側キャッシュの主記憶アドレスバス監視の動
作を説明するための動作フロー図である。 第 図 3C鳩六裟亙 第 図 第 図 第 亭 茅5図

Claims (1)

  1. 【特許請求の範囲】 1、マルチプロセッサシステムであって: (1)アドレスを発生する第1のプロセッサと、 (2)上記第1のプロセッサからの上記アドレスに従っ
    てアクセスされる第1の内側キャッシュメモリと、 (3)上記第1のプロセッサからの上記アドレスに従っ
    てアクセスされる第1の外側キャッシュメモリと、 (4)アドレスを発生する第2のプロセッサと、 (5)上記第2のプロセッサからの上記アドレスに従っ
    てアクセスされる第2の内側キャッシュメモリと、 (6)上記第2のプロセッサからの上記アドレスに従っ
    てアクセスされる第2の外側キャッシュメモリと、 (7)上記第1の外側キャッシュメモリを介して伝達さ
    れる上記第1のプロセッサからの上記アドレスおよび上
    記第2の外側キャッシュメモリを介して伝達される上記
    第2のプロセッサからの上記アドレスが伝達されるアド
    レスバスと、 (8)上記第1の外側キャッシュメモリを介して上記第
    1のプロセッサおよび上記第1の内側キャッシュメモリ
    に接続され、上記第2の外側キャッシュメモリを介して
    上記第2のプロセッサおよび上記第2の内側キャッシュ
    メモリに接続されたデータバスと、 (9)上記アドレスバスおよび上記データバスに接続さ
    れた記憶手段と、 (10)上記第1の外側キャッシュメモリおよび上記第
    2の外側キャッシュメモリを迂回して上記アドレスバス
    と上記第1の内側キャッシュメモリおよび上記第2の内
    側キャッシュメモリとの間を接続するバスとを具備し、 上記第1の内側キャッシュメモリおよび上記第2の内側
    キャッシュメモリはライト・スルー方式で動作し、 上記第1の外側キャッシュメモリ)および上記第2の外
    側キャッシュメモリはコピー・バック方式でおよびライ
    ト・ワンス方式の少なくとも一方で動作し、 上記第1の外側キャッシュメモリと上記アドレスバスと
    の間の第1の接続は、該両者間で双方向にアドレス伝達
    が可能であり、 上記第2の外側キャッシュメモリと上記アドレスバスと
    の間の第2の接続は、該両者間で双方向にアドレス伝達
    が可能であることを特徴とするマルチプロセッサシステ
    ム。 2、請求項1記載のマルチプロセッサシステムであって
    、 上記アドレスバスと上記データバスとに接続された入出
    力装置をさらに具備し、 上記アドレスバスと上記データバスとを介してアドレス
    とデータとが上記入出力装置から上記記憶手段に転送さ
    れ、 上記転送時に上記アドレスバスの上記アドレスが上記バ
    スを介して第1と第2の内側キャッシュメモリに供給さ
    れ、上記アドレスは上記第1と第2の接続を介してそれ
    ぞれ上記第1と第2の外側キャッシュメモリに供給され
    、その結果上記アドレスに関係するキャッシュの保持デ
    ータが無効化されることを特徴とするマルチプロセッサ
    システム。 3、請求項2記載のマルチプロセッサシステムであって
    、 上記記憶手段は主記憶装置であることを特徴とするマル
    チプロセッサシステム。 4、請求項1乃至3のいずれかに記載のマルチプロセッ
    サシステムであって、 上記第1の内側キャッシュは上記第1のプロセッサから
    の上記アドレスと上記バスを介しての上記アドレスバス
    の上記アドレスとによって並行してアクセスされること
    の可能なデュアルポートのRAMによるアドレスアレイ
    を有し、上記第2の内側キャッシュは上記第2のプロセ
    ッサからの上記アドレスと上記バスを介しての上記アド
    レスバスの上記アドレスとによって並行してアクセスさ
    れることの可能なデュアルポートのRAMによるアドレ
    スアレイを有し、上記第1の外側キャッシュは上記第1
    のプロセッサからの上記アドレスと上記第1の接続を介
    しての上記アドレスバスの上記アドレスとによって並行
    してアクセスされることの可能なデュアルポートのRA
    Mによるアドレスアレイを有し、 上記第2の外側キャッシュは上記第2のプロセッサから
    の上記アドレスと上記第1の接続を介しての上記アドレ
    スバスの上記アドレスとによって並行してアクセスされ
    ることの可能なデュアルポートのRAMによるアドレス
    アレイを有することを特徴とするマルチプロセッサシス
    テム。 5、請求項1記載のマルチプロセッサシステムであって
    、 上記第1と第2の外側キヤッシュメモリは上記第1と第
    2の接続を介して上記アドレスバス上のライト・アクセ
    ス要求のアドレスを監視し、該アドレスに上記第1と第
    2の外側キャッシュメモリの少なくともひとつがヒット
    した際、該ヒットした上記アドレスに関係したデータが
    該ヒットしたキャッシュでのみ更新されていない場合、
    該ヒットのキャッシュは該アドレスに関係したデータを
    無効化し、該アドレスに関係したライト・アクセスに際
    してライト・ワンス方式に従って該ヒットのキャッシュ
    と記憶手段とにデータを書き込むことを指示するビット
    をセットすることを特徴とするマルチプロセッサシステ
    ム。
JP2159783A 1989-06-21 1990-06-20 マルチプロセッサシステム Pending JPH0387948A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-156804 1989-06-21
JP15680489 1989-06-21

Publications (1)

Publication Number Publication Date
JPH0387948A true JPH0387948A (ja) 1991-04-12

Family

ID=15635688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2159783A Pending JPH0387948A (ja) 1989-06-21 1990-06-20 マルチプロセッサシステム

Country Status (4)

Country Link
EP (1) EP0404128B1 (ja)
JP (1) JPH0387948A (ja)
KR (1) KR910001548A (ja)
DE (1) DE69031365T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241954A (ja) * 1991-10-11 1993-09-21 Intel Corp プロセッサ

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
US5410654A (en) * 1991-07-22 1995-04-25 International Business Machines Corporation Interface with address decoder for selectively generating first and second address and control signals respectively in response to received address and control signals
US6065098A (en) * 1997-09-18 2000-05-16 International Business Machines Corporation Method for maintaining multi-level cache coherency in a processor with non-inclusive caches and processor implementing the same
US7272609B1 (en) * 2004-01-12 2007-09-18 Hyperion Solutions Corporation In a distributed hierarchical cache, using a dependency to determine if a version of the first member stored in a database matches the version of the first member returned
JP4471947B2 (ja) 2005-04-28 2010-06-02 Necエレクトロニクス株式会社 データ処理装置及びデータ処理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2609195A1 (fr) * 1986-12-31 1988-07-01 Thomson Csf Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede
DE3740834A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241954A (ja) * 1991-10-11 1993-09-21 Intel Corp プロセッサ

Also Published As

Publication number Publication date
EP0404128A2 (en) 1990-12-27
EP0404128A3 (en) 1992-04-29
KR910001548A (ko) 1991-01-31
DE69031365D1 (de) 1997-10-09
DE69031365T2 (de) 1998-04-02
EP0404128B1 (en) 1997-09-03

Similar Documents

Publication Publication Date Title
JP2662603B2 (ja) 無効要求を選別する方法及び装置
US7814279B2 (en) Low-cost cache coherency for accelerators
US6901495B2 (en) Cache memory system allowing concurrent reads and writes to cache lines to increase snoop bandwith
JP2540517B2 (ja) 階層キヤツシユメモリ装置および方法
US5752264A (en) Computer architecture incorporating processor clusters and hierarchical cache memories
KR100491435B1 (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
US6463510B1 (en) Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5287484A (en) Multi-processor system for invalidating hierarchical cache
US6470429B1 (en) System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
GB2439650A (en) Snoop filter that maintains data coherency information for caches in a multi-processor system by storing the exclusive ownership state of the data
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
JPH04260146A (ja) データ・アクセス管理装置および方法
JPH0576060B2 (ja)
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
JP2000067024A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JPH09237223A (ja) バスブリッジを用いたコンピュータシステム
US7325102B1 (en) Mechanism and method for cache snoop filtering
US6950906B2 (en) System for and method of operating a cache
JPH0387948A (ja) マルチプロセッサシステム
US20040221112A1 (en) Data storage and distribution apparatus and method
JPS63253448A (ja) マルチ計算機装置
CN113435153B (zh) 一种gpu缓存子系统互联的数字电路设计方法
JP2976980B2 (ja) キャッシュ制御方式
JPH10232831A (ja) キャッシュ・タグ維持装置