JPH02253356A - 階層キャッシュメモリ装置とその制御方式 - Google Patents

階層キャッシュメモリ装置とその制御方式

Info

Publication number
JPH02253356A
JPH02253356A JP1073876A JP7387689A JPH02253356A JP H02253356 A JPH02253356 A JP H02253356A JP 1073876 A JP1073876 A JP 1073876A JP 7387689 A JP7387689 A JP 7387689A JP H02253356 A JPH02253356 A JP H02253356A
Authority
JP
Japan
Prior art keywords
cache memory
memory device
state
cache
address information
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
JP1073876A
Other languages
English (en)
Inventor
Shigeaki Iwasa
岩佐 繁明
Satoshi Hashimoto
智 橋本
Shigehiro Asano
滋博 浅野
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 JP1073876A priority Critical patent/JPH02253356A/ja
Priority to US07/501,256 priority patent/US5241641A/en
Priority to EP19900303315 priority patent/EP0390538A3/en
Publication of JPH02253356A publication Critical patent/JPH02253356A/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
    • 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

【発明の詳細な説明】 [発明の目的コ (産業上の利用分野) 本発明は複数のプロセッサおよびメモリ装置を含む多重
プロセッサ・システムに組み込むに適した階層キャッシ
ュメモリ装置とその制御方式に関する。
(従来の技術) 近時、複数のプロセッサにてメインメモリ装置を共有し
た密結合の多重プロセッサ・システムが種々開発されき
ている。この種の多重プロセッサ・システムは、−数的
には共用バスを用いて複数のプロセッサとメインメモリ
装置とを相互接続して構築される。しかし共用バスを用
いた場合、各プロセッサとメインメモリ装置と間のトラ
フィックの全てが上記共用バスを通して行われるので、
メインメモリ装置のアクセスによるバスの競合が極めて
大きくなり、性能の向上が期待できなかった。
そこで複数のプロセッサとメインメモリ装置との間にキ
ャッシュメモリ装置を設けることが提唱されている。こ
のキャッシュメモリ装置はプロセッサとメインメモリ装
置との処理速度差を緩衝し、メインメモリ装置に対する
アクセス速度を実効的に速く見せるようにするものであ
る。またこの種のキャッシュメモリ装置を用いることで
、メインメモリ装置との間では低速なアクセスを行うこ
とでそのデータ幅を広くとり、またプロセッサとの間で
は高速なアクセスで、且つそのデータ幅を整えて扱うこ
とにより、プロセッサの性能を落とすことなく動作させ
ることができる。
更にはプロセッサがアクセスしたデータ(命令。
オペランド、データ)をキャッシュメモリ装置内に一時
的に格納しておくことで、再び同じデータがアクセスさ
れた場合、メインメモリ装置からではなく上記キャッシ
ュメモリ装置から所望とするデータを高速にアクセスす
ることができる。即ち、キャッシュメモリ装置によって
メインメモリ装置へのトラフィックを減らす効果がある
ところでこの種のキャッシュメモリ装置を密結合の多重
プロセッサ・システムに適用させた場合、例えば複数の
プロセッサがキャッシュメモリ装置を共有するものとす
ると、キャッシュメモリ装置からメインメモリ装置への
トラフィックを減らすことが可能となる。しかし複数の
プロセッサがキャッシュメモリ装置をアクセスするトラ
フィックはキャッシュメモリ装置を用いない場合と同じ
である。従ってこの場合にはキャッシュメモリ装置内の
メモリサイズの大容量化と、プロセッサとキャッシュメ
モリ装置との間のバスサイクルの高速化およびそのバス
幅の拡張を行わない限り性能の向上を図ることが望めな
い。
これに対して各プロセッサ毎にキャッシュメモリ装置を
設けた場合には、複数のキャッシュメモリ装置からのメ
インメモリ装置へのトラフィックを減らすことが可能と
なる。またプロセッサからキャッシュメモリ装置へのア
クセスも1対1とすることができるので、上述したよう
に複数のプロセッサにてキャッシュメモリ装置を共有す
るときのようなバスの競合は起こらない。しかしプロセ
ッサ毎にキャッシュメモリ装置が個別に設けられるので
、これらのキャッシュメモリ装置間′でのコンシステン
シ(一貫性)を確保する上で問題が生じる。
ところでキャッシュメモリ装置間でのコンシステンシの
問題は、各プロセッサにそれぞれ対応するキャッシュメ
モリ装置が特定のメインメモリ装置のメモリ番地の内容
のコピーを持っているときに生じる。キャッシュメモリ
装置を用いる場合には、これらメインメモリ装置からコ
ピーされた内容が同じであることが極めて重要である。
従って、例えば成るプロセッサがキャッシュメモリ装置
に保持しているメインメモリ装置の特定のメモリ番地の
コピー内容を変更する場合、他のプロセッサがキャッシ
ュメモリ装置に保持している上記メモリ番地のコピー内
容についても同じように変更することが必要となる。こ
れ故、キャッシュメモリ装置に保持しているコピー内容
を変更する場合には、メインメモリ装置における該当メ
モリ番地の内容、およびそのコピーを持っている他の全
てのキャッシュメモリ装置における該当コピー内容に変
更を加える処理が必要となる。或いはメインメモリ装置
の変更と他の全てのキャッシュメモリ装置で保持してい
る特定のメインメモリ装置における該当メモリ番地の内
容を変更し、またそのコピーを持っている他の全てのキ
ャッシュメモリ装置における該当コピー内容を無効化す
ることが必要となる。
さてキャッシュメモリ装置の実現方式として、大略的に
は次の2つの方式がある。その1つはストアスルー(s
tore through ) 、或いはライトスルー
(write through )方式と呼ばれるもの
で、キャッシュメモリ装置への書き込みと同時にメイン
メモリ装置へも同じ情報を書き込む方式である。
今1つ方式はストアイン(store 1n) 、ライ
トイン(write in) * ライトバック(wr
lte back) 。
コピーパック(copy back )方式と呼ばれる
もので、データの書き込みをキャッシュメモリ装置に対
してのみ行ない、メインメモリ装置への書き込みについ
てはそのキャッシュブロックの追い出しが起こったとき
に行なうものである。
単一プロセッサシステムの場合では、メインメモリ装置
との共用バスでのトラフィックを少なくする上で上述し
たストアイン方式が望ましい。このことは理論的にキャ
ッシュメモリ装置内のメモリサイズが無限大に近づくと
、メインメモリ装置へのキャッシュブロックの追い出し
が行われ難くなり、メインメモリ装置との共用バスのト
ラフィックが零(0)に近づくことに要因する。
これに対してメインメモリ装置を複数のキャッシュメモ
リ装置により共有する多重プロセッサシステムに上記ス
トアスルーを適用した場合、キャッシュメモリ装置に保
持されているメインメモリ装置のコピー内容に対してプ
ロセッサが書き込みを行う都度、キャッシュメモリ装置
とメインメモリ装置をつなぐ共用バスを通して同じデー
タをメインメモリ装置に書き込むことが必要となる。そ
して全てのキャッシュメモリ装置においては上記共用バ
スをモニタ(監視)し、共用バス上に当該キャッシュメ
モリ装置に保持している特定のメモリ番地の情報が含ま
れていたら、その内容を無効化することが必要となる。
この為、この共用バスの監視によって無効化された内容
をプロセッサが読みに行った場合、そのキャッシュメモ
リ装置では改めて前記メインメモリ装置からその内容の
コピーを行う必要が生じる。
一方、メインメモリ装置を複数のキャッシュメモリ装置
により共有する多重プロセッサシステムに前述したスト
アイン方式を適用した場合、ストアスル一方式よりもメ
インメモリ装置のアクセスが少なくなるこがは多くの論
文で論ぜられている。
しかし複数のキャッシュメモリ装置間のコンシステンシ
を保つことは、単一プロセッサシステムと同じ手段での
実現は不可能であった。
一方、最近では、より多くのプロセッサ有効率よく接続
し、また共用バスのトラフィックを少なくシ、更にはプ
ロセッサとメインメモリ装置の速度差をより少なくする
為に、複数のキャッシュメモリ装置を階層的に構築し、
これによってシステム性能を向上させることが考えられ
ている。しかし複数のキャッシュメモリ装置を階層的に
構築するにしても、キャッシュメモリ装置間のコンシス
テンシを保つ為には、上述した効率の良いストアイン方
式を採用することを断念し、ストアスルー方式を選択し
なければならない。換言すればストアスル一方式を採用
すれば、キャッシュメモリ装置間でのコンシステンシを
保つことが可能である。
しかし複数のキャッシュメモリ装置に対する全ての書き
込み動作がその都度メインメモリ装置に対して行われ、
また無効化による余分なメインメモリ装置の読出し動作
が頻繁に起こるのでその処理性能が落ちることが否めな
い。
(発明が解決しようとする課題) このように従来にあっては多重プロセッサ・システムを
階層キャッシュメモリ装置を用いて構築しようとした場
合、キャッシュメモリ装置間のコンシステンシを保証す
るにはストアスル一方式を採用するしか手段がなかった
。しかもこのようなストアスル一方式を採用した場合に
は、共用バスでのトラフィックが多くなり、プロセッサ
が持つ性能を十分に発揮させることが困難となると云う
不具合があった。
本発明はこのような事情を考、慮してなされたもので、
その目的とするところは、種々の問題のあるストアスル
一方式を採用することなく、キャッシュメモリ装置間で
のコンシステンシの問題や共用バスでのトラフィックの
聞届を招来することのない多重プロセッサーシステムを
構築することのできる階層キャッシュメモリ装置とその
制御方式を提供することにある。
つまりプロセッサの性能に制限を与えることのない実用
性の高い階層キャッシュメモリ装置とその制御方式を提
供することを目的としている。
[発明の構成] (問題点を解決するための手段とその作用)本発明は複
数のプロセッサおよびメモリ装置を含む多重プロセッサ
やコンピュータ拳システムと共にm1る階層キャッシュ
・メモリ装置に係り、複数のプロセッサに対して1対1
に第1のキャッシュメモリ装置を設けると共に、これら
の第1のキャッシュメモリ装置を複数個づつ第1の接続
装置でそれぞれ接続し、これらの第1の接続装置毎に第
2のキャッシュメモリ装置を接続する。そしてこれらの
第2のキャッシュメモリ装置を相互に接続する第2の接
続装置にメインメモリ装置を接続するようにし、前記第
2キヤツシユメモリ装置には、そこに接続された全ての
第1キヤツシユメモリ装置のアドレス情報を必ず持つよ
うにキャッシュメモリ管理し、且つメインメモリ装置に
は、第2のキャッシュメモリ装置が持つアドレス情報が
必ず存在するようにメモリ管理するようにしたことを特
徴とするものである。
また上記階層キャッシュ・メモリ装置において第1およ
び第2のキャッシュメモリ装置にそれぞれ状態識別手段
を設け、その状態が有効であるか無効であるかを示すよ
うにしたことを特徴とする。
更に前記階層キャッシュ・メモリ装置において第1およ
び第2のキャッシュメモリ装置にある状態識別手段に対
応するアドレス情報を無効化する手段と、第1の接続装
置上の無効化要求手段を第2の接続装置に伝達する手段
と、第2の接続装置上の無効化要求手段を別の当該ミニ
・クラスタ装置に含まれる6第1の接続装置に伝達する
手段とを設けたことを゛特徴とする。
また前記階層キャッシュ・メモリ装置において第1およ
び第2のキャッシュメモリ装置にある状態識別手段を書
き戻し義務有りの状態に設定する手段や、第1および第
2のキャッシュメモリ装置にある状態識別装置を排他状
態にする手段を設けたことを特徴とする。
更に前記階層キャッシュ・メモリ装置において第1のキ
ャッシュメモリ装置に読み出すアドレス情報があった時
、データ情報を一プロセッサに返す手段と、第1の状態
識別装置の状態の変更や第1のキャッシュメモリ装置か
ら第1の接続装置に信号を伝達しない手段とを設けたこ
とを特徴とする。
また前記階層キャッシュ・メモリ装置において第1およ
び′iJ2の接続装置に共有読出しの要求を出す手段を
設け、この共有読出し要求に対して第1および第2のキ
ャッシュメモリ装置がアドレス情報に対応するデータ情
報を提供する手段と、第1および第2のキャッシュメモ
リ装置がデータを供給した旨を識別する手段と、第2の
キャッシュメモリ装置にアドレス情報の供給が行われて
いない旨を識別した場合には、メモリ装置から読みだし
要求に応答する手段とを設けたことを特徴とする。
また第1のキャッシュメモリ装置が要求されたアドレス
情報に対応するデータ情報を提供した場合には、第1の
状態識別装置の排他状態を解除する手段を設けたことを
特徴とし、 第2のキャッシュメモリ装置が要求されたアドレス情報
に対応するデータ情報を提供する場合には、第2の状態
識別装置の排他状態を解除して第1の接続装置に接続さ
れる第1のキャッシュメモリ装置に対して吐き出し要求
を出し、この第1のキャッシュメモリ装置の対応するア
ドレス情報に対応する状態識別装置の書き戻し義務有り
の状態を解除するようにしたことを特徴とする。
また前記階層キャッシュ・メモリ装置において第1のキ
ャッシュメモリ装置でアドレス情報を追い出す場合には
、書き戻し義務を有するアドレス情報を第2のキャッシ
ュメモリ装置に書き戻し、第2のキャッシュメモリ装置
でアドレス情報を追い出す場合には、書き戻し義務を有
するアドレス情報をメモリ装置に書き戻すようにしたこ
とを特徴とする。
更に第1のキャッシュメモリ装置から第1の接続装置上
に独占読出し要求を出す手段を設け、例えば第1の接続
装置上の独占読出し要求に対して第1の接続装置に接続
された別の第1のキャッシュメモリ装置がアドレス情報
に対応するデータ情報を供給するようにし、第2のキャ
ッシュメモリ装置が第2の接続装置上に独占読出し要求
を出す手段を設け、この第2の接続装置上の独占読出し
要求に対して第2の接続装置に接続された別の第2のキ
ャッシュメモリ装置がアドレス情報に対応するデータ情
報を供給するようにしたことを特徴と・するものである
またアドレス情報に対応する第2の状態識別装置の状態
が有効でありかつ書き戻し義務を有しかつ排他状態であ
る場合には、そのアドレス情報に対応する第2の状態識
別装置を無効状態に設定し、第1のキャッシュメモリ装
置に対して無効化吐き出し要求を出してこの無効化吐き
出し要求に応答した第1のキャッシュメモリ装置の対応
するアドレス情報に対応する状態識別装置を無効状態に
設定するようにしたことを特徴とする。
更に前記階層キャッシュ・メモリ装置において、対応す
るプロセッサによってリード・モディファイ・ライトさ
れるアドレスに等しいアドレス情報があるとき、第1の
キャッシュメモリ装置が接続されている接続装置上に無
効化要求を出した後、プロセッサより要求されたアドレ
スのデータ情報を供給し、変更された後に書き込む手段
と、対応するプロセッサによってリード・モディファイ
・ライトされるアドレスに等しいアドレス情報が第1の
状態識別装置で無効状態である場合、第1のキャッシュ
メモリ装置が接続されている接続装置上に独占読出し要
求を出すことでプロセッサより要求されたアドレスのデ
ータ情報を得、これをプロセッサに供給し、変更された
後に書き込む手段とを設けたことを特徴とする。
また第1および第2のキャッシュメモリ装置をそれぞれ
データ・キャッシュメモリ装置と命令キャッシュメモリ
装置とにより構成してプロセッサからの命令を独立に取
り扱うようにし、これらのデータ・キャッシュメモリ装
置および命令キャッシュメモリ装置に各アドレス情報毎
に情報が有効であるか無効であるかを識別する命令キャ
ッシュ状態識別手段とデータキャッシュ状態識別手段と
をそれぞれ設け、 プロセッサからの要求に対して上記命令キャッシュメモ
リ装置から命令情報を提供しながらデータ・キャッシュ
メモリ装置からのデータ情報の供給を制御するようにし
たことを特徴とするものである。
また第2の接続装置上に出されている無効化要求を、無
効状態となっている第2のキャッシュメモリ装置、およ
びその第2のキャッシュメモリ装置が接続されている第
1の接続装置に対して伝達しないようにしたことを特徴
としている。
またプロセッサによって書き込まれるアドレスに等しい
アドレス情報に対応する状態識別手段が既に有効状態で
、且つ排他状態に設定されている場合には、第1の接続
装置に対して信号を出力しないことで、システム全体の
コンシステンシを保つようにしたことを特徴としている
また本発明ではキャッシュメモリ装置内において、アド
レス情報を記憶する領域を確保するため追い出したアド
レス情報に対応する状態識別装置が書き戻し義務有りの
状態で、対応するデータ情報を第2のキャッシュメモリ
装置に書き戻す必要がある時には第2の状態識別装置の
排他状態を解除し、共有読出し要求や独占読出し要求に
対して応答しないようにしたことを特徴としている。
またプロセッサによってリード・モディファイ争ライト
されるときにも、そのアドレス情報に対応する第1の状
態識別装置が有効状態で書き戻し義務を有し、且つ排他
状態である場合には状態識別装置の状態を変更せず、ま
た第1の接続装置に対しても信号を伝達しないようにし
たことを特徴としている。
(実施例) 以下、図面を参照して本発明の一実施例に係る階層キャ
ッシュメモリ装置とその制御方式につき説明する。
第1図は実施例装置を組み込んで構成されるマルチプロ
セッサシステムの概略構成図であり、本装置は複数のプ
ロセッサと主記憶装置(メインメモリ)との間に構築さ
れる。
第1図に示すシステムにおいて、pH,PI3. 〜P
ln、P21.P22.〜P2m、 〜P11.PI2
.〜P目は複数のプロセッサを示している。またMl、
M2は上記各プロセッサからのデータを保有し、またプ
ロセッサからの要求に従って上記保存データをプロセッ
サに読出す主記憶装置(メインメモリ)である。
本装置は上述した複数のプロセッサのそれぞれに1対1
に対応させて各プロセッサに固有な第1のキャッシュメ
モリ装置(fcache) pH,F12. 〜F1n
、P21.P22.〜F2m、〜FI1.PI2.〜F
ilをそれぞれ設け、これらの第1のキャッシュメモリ
装置を所定数づつ第1の接続装置であるキャッシュバス
Cache−Busにてそれぞれ共通接続してグルービ
ングし、複数のミニ・クラスタ装置を形成する。そして
これらの各ミニ・クラスタ装置のキャッシュバスCae
he−Busに第2のキャッシュメモリ装置(scac
he) SL、82.〜81をそれぞれ接続し、これら
の第2のキャッシュメモリ装置を第2の接続装置である
メモリバスMeo+ory−Busにて相互に接続して
2段の階層構造をなすキャッシュメモリ装置を構築した
構造を有する。このように構成される本装置の前記メモ
リバスMemory−Busに前述した主記憶装置(メ
インメモリ) Ml、M2が接続される。
尚、以下の説明ではr 5cacheの上のrcach
eJとは、ある5eacheにCache−Bus経由
で接続されたrcacheのことを指すものとする。例
えば「Slの上のf’cacheJとは第1のキャッシ
ュメモリ装置pH。
F12.〜Pinを示すものとする。同様にr I’c
acheの下の5cacheJとはあるf’cache
にCache−Bus経由で接続された5caeheの
ことを示すものとする。具体的にはrollの下の5c
acheJは第2のキャッシュメモリ装置Slを示すも
のとする。更にここでは「兄弟の1’eacheJとは
同じCache−Busで接続されているI’caeh
eの関係をいい、例えばrollとFllは兄弟である
」がrpttとF22は兄弟でない」ことを示すものと
する。
次に上記システムにおけるキャッシュエントリについて
説明する。
キャッシュメモリは一般に数バイトのブロック単位で管
理されている。このブロックに当該ブロックを管理する
ための情報を付加したものがエントリである。このエン
トリには、対応するアドレスの内容が入れられるデータ
部と、エントリがどのアドレスに対応するかを管理する
アドレス情報と、またそのエントリがどのような状態に
あるかを管理する状態情報、更にはデータをリプレース
(replace)する場合にどのエントリをrepl
aceするかを決定する為のreplace情報が付加
される。
これらのエントリの状態情報、アドレス情報、およびr
eplace情報をまとめたものをタグ部と称する。
一方、キャッシュにデータをコピーする動作はフェッチ
(1’etch)と称される。このf’etchの単位
は、例えばこの実施例ではブロック単位に定められる。
ブロックがf’etchされるときには、そのブロック
の為のエントリを確保する必要があり、エントリが確保
できない場合には成るエントリを選択し、そのエントリ
の内容をキャッシュから追い出さなくてはならない。こ
の追い出しが上述したreplaceと称される。
しかしてこの実施例では上記第1のキャッシュメモリ装
置rcache、および第2のキャッシュメモリ装置5
cacheについて、その状態情報として第2図に模式
的に示すように次の4つの状態が定義されている。
[rcacheの4状態] (1) E X C(excluslve own) 
 ;この状態はキャッシュメモリ装置が有効で書き戻し
義務を持ち、排他的な状態にあることを示しており、次
のような意味を持つ。
■他のrcacheには当該エントリに対応するエント
リが存在しない。■このエントリのデータ部のデータは
有効である。■このfcacheの下の5cacheの
当該エントリに対応するデータ部は当該エントリのデー
タ部と内容が一致しない。■のエントリは書き戻し義務
(以後ではOwnershll)と表す)を持っており
、このエントリがrep I aceされる時にはコピ
ーバックする必要がある。
(2)  I NV(Invalid)  ;この状態
はキャッシュメモリ装置が無効な状態にあることを示し
ており、次のような意味を持つ。
■このエントリは使用されていない。■データ部および
アドレス情報の双方が共に意味のない情報である。
(3) N ON (not exclusive o
wn)  ;この状態はキャッシュメモリ装置が有効で
書き戻し義務を持つが排他的でない状態であることを示
しており、次のような意味を持つ。
■このエントリのコピーが他のf’cacheに存在す
る可能性がある。■このreacheの下の5caeh
eの当該エントリに対応するデータ部は、当該エントリ
のデータ部と内容が一致しない可能性がある。■このエ
ントリのデータ部のデータは有効である。
■このエントリはOwnershipを持っていて、こ
のエントリがreplaceされる時にはコピーバック
する必要がある。
(4) U N O(nnoνn);この状態はキャッ
シュメモリ装置が有効で書き戻し義務を持たず、排他的
でない状態にあることを示し、次のような意味を持つO ■このエントリのコピーが他のf’cacheに存在す
る可能性がある。■このf’cacheの下の5cac
heの当該エントリに対応するデータ部は、当該エント
リのデータ部と内容が一致しない可能性がある。■この
エントリのデータ部のデータは有効である。
■このエントリはOwnershipを持たず、従って
このエントリがreplaceされる時にはコピーバッ
クする必要はない。
[5cacheの4状態] (1) E X C(excusive own) ;
この状態はキャッシュメモリ装置が有効で書き戻し義務
を持ち、排他的な状態にあることを示し、次のような意
味を持つO ■他の5cacheにはこのエントリに対応するアドレ
スのエントリが存在しない。■この5cacheの上の
I’cacheの、対応するエントリのデータ部のデー
タと、このエントリのデータ部のデータは一致しない。
■このエントリはOwnershipを持っており、こ
のエントリがreplaceされる時にはf’cach
eとデータ部を一致させたのちコピーバックする必要が
ある。■この5cacheの上のf’cacheの内、
対応するエントリの必ず一つにはOwnershlpを
持つものがあり、EXCまたはNONが存在する。
(2)  I NV(1nvalid)  ;この状態
はキャッシュメモリ装置が無効な状態であることを示し
ており、次ような意味を持つ。
■このエントリは使用されていない。■データ部および
アドレス情報の双方が共に意味のない情報である。
(3) N ON (not ey:cluslve 
own)  ;この状態はキャッシュメモリ装置が有効
で書き戻し義務を持ち、排他的でない状態にあることを
示し、次のような意味を持つ。
■このエントリに対応するエントリが他の5eache
に存在する可能性がある。■この5cacheの上のf
’caeheの当該エントリに対応するデータ部は、当
該エントリのデータ部と内容が一致する。■この5ca
cheの上のfcacheの、対応するエントリには0
vnersh1pを持っているものがなく、その上のr
cacheに対応するエントリがあればその状態はUN
Oである。■このエントリのデータ部のデータは有効で
ある。■このエントリは0vnersh1pを持ってお
り、当該エントリがreplaceされる時にはコピー
バックする必要がある。
(4) U N O(unown)  ;この状態はキ
ャッシュメモリ装置が有効で書き戻し義務を持たず、排
他的でない状態にあり、次のような意味を持つ。
■このエントリの対応するエントリが他の5cache
に存在する可能性がある。■この5cacheの上のf
’cacheに、当該エントリに対応するエントリがあ
ればその状態は必ずUNOである。■そのエントリのデ
ータ部は、当該エントリのデータ部と内容が一致する。
■このエントリのデータ部の内容は有効である。■この
エントリにはownershtpがなく、このエントリ
がrep I aceされる時にはコピーバックする必
要はない。
このような状態情報が、例えば第4図に示すようにキャ
ッシュされたアドレス情報のそれぞれに対応付けられて
管理される。
次に第1のキャッシュメモリ装置(「cache)の機
能について説明する。
第1のキャッシュメモリ装置f’cacheは、第3図
に示すようにタグメモリ、データメモリとリプレース・
ロジックを具備して構成され、I’cacheはプロセ
ッサからのコマンド、およびCache−Busからの
コマンドと、その時のキャッシュエントリの状態によっ
て必要な動作を行い、そのエントリの内容を変化させる
以下の説明ではコマンドのアドレスオペランドとエント
リのタグ部のアドレス情報が一致して、且つINVでな
いことをヒツト(bit > 、一致しているエントリ
がない、またはアドレスが一致していても状態情報がI
NVであることをヒツトミス(miss)と呼ぶ。
先ず前記Cache−Busには以下のコマンドが定義
されている。
[1] RS H: Read−3hared(add
ress) ; addressで示されるキャッシュ
ブロックをfetchする要求。
[2] RF O: Read−For−Owners
hip(address)  ;addressで示さ
れるキャッシュブロックの要求であるか、addres
sで示される他のエントリを無効化する。シrite−
missが発生してretchするときに使用する。
[3コ WFI:  シrite−For−lnval
idat1on(address)   ;他のエント
リを無効化するための要求である。他のrcacheに
存在するaddressで示されるエントリを無効化す
る。データの書き込みは行わない(アドレスだけを出力
する)。
[4]WWI: シrite−Without−1nv
al Idation(data。
address) ;コピーパックをする為の命令であ
る。
addressで示される5cacheにdataを書
き込む。他のキャッシュブロックは無効化しない。
[5] F A I : Flush−And−Inv
alidate(address)  ;reache
に存在する唯一のデータを5eacheに書き込んで、
rcacheに存在したエントリを無効化するコマンド
[8] F W I : Flush−Without
−Invalidate(address); f’c
acheに存在するデータを5caeheに書き戻すコ
マンド。EXC状態の5cacheのブロックが他の5
cacheから要求が有った時、データを返す前に最新
のデータを5cacheに書き込むために使われる。
FAIと違うのはf’cacheのエントリを無効化し
ないことである。
尚、これらのバスコマンドの終了はキャッシュバス上に
ある全てのキャッシュからの応答が返ってきたときであ
る。肯定(ack)信号がすべて揃ったかどうかを調べ
ることは、ack信号をオーブンコレクタでドライブす
る共通な信号線としておけばその実現が容易である。
Rlrcacheのプロセッサからのコマンドに対する
応答としては次のようなものがある。プロセッサからr
cacheに与えられるコマンドはRead。
i/riteおよびRead Modff’y Vrf
teの3種であり、これらの各コマンドに応じて次のよ
うな応答がなされる。
[1,Readする場合] (a)hHしたとき;hltしたエントリのデータ部の
内容をプロセッサに返す。このときその状態は変えない
(b) ml5sシたとき; replaceが行われ
た後、R2O:]7ンドをCache−Busに発行し
、データをfetchする。その後、プロセッサにデー
タ部の内容を返し、その状態をUNOにする。
[2,Writeする場合〕 (a−1) E X Cに旧tしたとき、hltLだエ
ントリに書き込む。状態は変えない。
(a−2) E X C以外に旧tしたとき;書き込む
アドレスのコピーを他のキャッシュが持たないことを保
証するべく、νP+ コマンドをCache−Bus 
ニ発行する。wp+コマンドの応答が返ってきたら旧t
したエントリに書き込み、その状態をEXCにする。
(b) m1ssしたとき; replaceが行われ
た後、RPOコマンドをCache−Busに発行し、
データを1’etchする。その後、fetch して
きたエントリにプロセッサから書き込み、その状態をE
XCにする。
[3,Read Modlf’y Writeする場合
コ(a−1) E X Cに旧tしたとき、hltした
エントリを読んで書き込む。このエントリを読んで書き
込む間にはCache−Busからの要求を受付けない
ようにし、その状態は変えない。
(a−2) E X C以外にhlt したとき;Re
ad ModifyWriteするアドレスのqビーを
他のキャッシュが持たないことを保証するべく、wp+
 コマンドをCache−Busに発行する。vFl 
コマンドの応答が返ってきたらhtt したエントリを
読んで書き込む。
このエントリを読んで書き込む間にはCache−Bu
sからの要求を受は付けないようにし、その状態をEX
Cにする。
(b) alssしたとき; replaceが行われ
た後、RFOニア7ンドをCache−Busに発行し
、データをf’etchする。その後、f’etch 
してきたエントリにプロセッサから読んで書き込む。こ
のエントリを読んで書き込む間にはバスからの要求を受
は付けないようにし、状態をEXCにする。
さて「cacheのrepIaeeは次のようにして行
われる。このf’cacheからreplaceされる
エントリの状態によって、コピーバック動作が必要かど
うかが決まる。
01 replaceされるエントリがINV、または
UNOのとき;コピーバック動作はしない。
[2] replaceされるエントリがEXC,また
はNONのとき;WWIコマンドをCache−bus
に発行してエントリの内容を5cachcにコピーバッ
クする。
またfeacheのCache−Busバスコマンドに
対する応答としては次のようなものがある。このときf
cacheはCache−Busを監視し、Cache
−Bus上のコマンドのアドレスに対応するエントリの
状態によって必要な動作を行う。
Cache−Busの監視は、Cache−Bus上の
コマンドがアドレスを持っているので、このアドレスに
対応するエントリがfcacheに存在し、且つその状
態がINVでないことをbitとして検出する。またア
ドレスに対応するエントリがfcacheに存在しない
、或いはアドレスに対応するエントリの状態がINVで
ある場合には、これをm1ssとして扱う。
このm1ssの場合には、f’cacheは応答として
Cache−Bu、sにack信号を返すのみである。
bitの場合はCache−Bus上のコマンドに応じ
て次のような動作を行う。
尚、Cache−Busのコマンドでキャッシュに新た
なエントリを確保する必要はないのでreplaceは
必要ない。
[1,R3IIに対する応答] (a) hlt LだエントリがEXCの場合; Ca
che−Busにこのエントリのデータを返し、このエ
ントリの状態はNONにする。Cache−Busにa
ck信号を返す。
(b) hit LだエントリがNONの場合; Ca
che−Busにこのエントリのデータを返し、このエ
ントリの状態は変えない。Cache−Bus l: 
ack信号を返す。
(e) hlt したエントリがUNOの場合; Ca
che−Busにack信号を返す。
[2,RPOに対する応答] (a) hit したエントリがEXCの場合; Ca
che−Busにこのエントリのデータを返し、このエ
ントリの状態をINVにする。Cache−Busにa
ck信号を返す。
(b) hitしたエントリがNONの場合; Cac
he−Busにこのエントリのデータを返し、このエン
トリの状態をINVにする。Cache−Busにac
k信号を返す。
(c) hit LだエントリがUNOの場合;このエ
ントリの状態をINVにする。Cache−Busにa
ek信号を返す。
[3,Wlコ1に対する応答コ (a) hit したエントリがEXCの場合;このよ
うなケースは有り得ない。
(b) hit L、たエントリがNOHの場合;この
エントリの状態をINVに変える。Cache−Bus
にack信号を返す。
(c) hit LだエントリがUNOの場合;このエ
ントリの状態をINVに変える。Cache−Busに
ack信号を返す。
[4,VVIに対する応答] (a) hit L、たエントリがEXCの場合;この
ようなケースは有り得ない。
(b) hit したエントリがNONの場合;このよ
うなケースは有り得ない。
(c) hit したエントリがUNOの場合; Ca
che−Busにack信号を返す。
[5,FAIに対する応答] (a) hlt LだエントリがEXCの場合; Ca
che−Busにこのエントリのデータを返し、このエ
ントリの状態をINVにする。Cache−Busにa
ck信号を返す。
(b) hit したエントリがNOHの場合;Cac
he−Busにこのエントリのデータを返し、このエン
トリの状態をINVにする。 Cache−Busにa
ck信号を返す。
(c) hit したエントリがUNOの場合;このエ
ントリの状態をINVにするa Cache−Busに
ack信号を返す。
[8,PWIに対する応答] (a) hit したエントリがEXCの場合; Ca
che−Busにこのエントリのデータを返し、このエ
ントリの状態をUNOにする。Cache−Busにa
ck信号を返す。
(b) hit したエントリがNONの場合; Ca
che−Busにこのエントリのデータを返し、このエ
ントリの状態をUNOにする。Cache−Busにa
ck信号を返す。
(c) hit L、たエントリがUNOの場合; C
ache−Busにack信号を返す。
尚、システム上、有り得ない状態に遷移した場合はハー
ドウェアの故障とみなせるからシステムに割り込みをか
ける。
次に上述した機能を備えた第1のキャッシュメモリ装置
fcacheがどのように動作するかを、第3図に示す
f’cacheの構成を参照しながら説明する。
プロセッサからのコマンドはプロセッサ・インターフェ
ース(Processor Interf’ace )
 Pctを通じてキャッシュψブロセ・ソサ拳コントロ
ーラ(rcache Processor contr
oller ) Pc2に伝えられる。このコントロー
ラPc2ではキャッシュ・タグ・メモリ(fcache
 Tag a+ewory ) Fc4を参照して与え
られたアドレスがキャッシュに旧tしているかどうかを
判定し、エントリの状態によって必要な動作を行う。
データ部に対するアクセスは、キャッシュ・タグ・メモ
リFc4で与えられるアドレスのキャッシュ・データ句
メモリ(f’cache Data memory) 
Pc5に行われる。また、replaceされるエント
リはリプレース−oシック(replacement 
Logic ) Pc3で決定され、仮にコピーパック
が必要ならばそのエントリは上記リプレース・ロジック
Pc3の指示によりキャッシュψデータφメモリFe5
からキャッシュ・バス−インターフェース(cache
che−BusInterf’ace ) Pe7を通
じてキャッシュ”バス(CaChe−Bus ) CI
にWVI コマンドを用いてコピーバックされる。
キャッシュ・バスCIにコマンドを出す場合は、キャッ
シュ・プロセッサ・コントローラFc2からキャッシュ
・バス・インターフェースPC7を通じてコマンドが発
行され、その結果読み出されたデータはキャッシュ・バ
ス・インターフェースPc7経由でキャッシュ・データ
・メモリFc5に書き込まれる。
エントリのタグ部を書き換えるにはキャッシュ・プロセ
ッサ・コントローラPc2からキャッシュ・タグ・メモ
リFc4へ書き込む。
一方、キャッシュ・バス(Cache−Bus )から
のコマンドは前記キャッシュ・バス・インターフェース
PC7を通じてキャッシュ・キャッシュバス−コントロ
ーラ(1’cache CaChe−Bus cont
ro++er )Pc8へ伝えられる。このコントロー
ラPc6ではキャッシュ・タグ・メモリFc4を参照し
て与えられたアドレスがキャッシュに旧tしているかど
うかを判定し、エントリの状態によって必要な動作を行
う。
尚、フェッチ(retch )やフラッシュ(rlus
h )要求に対する応答はキャッシュ・データ・メモリ
Pc5のデータを読出し、キャッシュ・バス・インター
フェースPc7を通じてキャッシュ・バスC1に出され
る。また、エントリのタグ部に書き込むときはキャッシ
ュ・キャッシュバス・コントローラFeeからキャッシ
ュ・タグ・メモリPc4へ書き込まれる。
以上がプロセッサにそれぞれ対応して設けられる第1の
キャッシュメモリ装置の構成とその機能、および主たる
動作の形態である。
次に第2のキャッシュメモリ装置(5cache)につ
いて説明する。
この第2のキャッシュメモリ装置(5cache)はキ
ャッシュバス(Cache−Bus )からのコマンド
、およびメモリバス(Men+ory−Bus)からの
コマンドと、そのときのキャッシュエントリの状態によ
って必要な動作を行い、エントリの内容を変化させる。
以下の説明でもコマンドのアドレスオペランドとエント
リのタグ部のアドレス情報が一致し、且つINVでない
ことをヒツト(hlt)、一致するエントリがないとき
やアドレスが一致していてもその状態がINVであるこ
とをヒツトミス(m1ss)として説明する。
先ずメモリバス(MeLlory−Bus)には以下の
コマンドが定義されている。
[1] RF O: Read−For−Owners
hip(address)  ;addressで示さ
れるキャッシュブロックをfetchするとともにad
dressで示されるエントリを無効化するコマンド。
[2] RS H: Read−8hared(add
ress) ; addressで示されるキャッシュ
ブロックをfetchするコマンド。
[3] W F I  : Write−For−1n
valldaLIon(address)  ;add
ressで示される他のエントリを無効化するコマンド
[4] WW I : Write−Without−
1nvalidatlon(data。
address) ; addressで示されるキャ
ッシュブロックのdataをメモリに書き込むコマンド
。5cacheがうMeIIOryへコピーバックをす
るときに使用する。
尚、MeIIory−BusのコマンドはMellor
y−Bus上の全てのキャッシュおよびメモリがらac
k信号が返ってくると終了となる。ack信号がすべて
揃ったがどうかの監視は、例えばack信号をオーブン
コレクタでドライブする共通な信号線として実現される
一方、5cacheのCache−Busからのコマン
ドに対する応答としては次のようなものがある。キャッ
シュバスから5cacheに与えられるコマンドは4種
であり、これらのコマンドに応じて次のような応答がな
される。
rI、 I?SRに対する応答〕 (a−1) E X Cに旧tしたとき;この5cac
heの上のf’cacheの対応するエントリには必ず
Ownershipを持ったエントリがあるので、応答
する必要がない。つまり、fcacheの兄弟間で転送
が行われる。
応答としてはCache−Busにack信号を返す。
(a−2) N ONまたはUNOに旧tしたとき;こ
の5cacheの上のf’cacheにはOwners
hipを持つものがいない筈であるから5eacheが
応答する必要がある。従って旧tしたエントリのデータ
をCaehe−Busに返し、状態は変化させない。C
ache−Busにack信号を返す。
(b) m1ssした場合; replaeeを行った
後、R2OをMemory−Busに発行し、データを
読み込む。読み込んだエントリの状態をUNOにする。
読み込んだエントリのデータをCache−Busに返
す。Cache−Bus II: ack信号を返す。
[2,RFOに対する応答] (a−1) E X Cにhit した場合;上のfc
acheに対応する0νncrshipを持つエントリ
があり、このエントリがRPOに応答する。また他の5
cacheと、その上のfcacheにはこのエントリ
に対応するものがないので、Cache−Busにac
k信号を返す。
(a−2) N ONまたはUNOにhi’LL、た場
合;wFI コマンドをMea+ory−Busに発行
して対応する他のエントリを無効化し、エントリのデー
タをCache−Busに返す。そしてその状態をEX
Cに変え、cache−nusにack信号を返す。
(b) m1ss した場合; replaeeを行っ
た後、I?FOをMemory−Busに発行し、デー
タを読み込む。読んできたエントリの状態をEXCにす
る。読み込んだエントリのデータをCache−Bus
に返し、更にCache−Busにack信号を返す。
[3,WPIに対する応答コ (a−1) E X Cに旧tした場合;他の5cac
heと、その上の「cacheにはこのエントリに対応
するものがないので、対応するエントリを無効化する必
要がない。Cache−Busにack信号を返す。
(a−2) N ONまたはUNOに旧tした場合;v
Fl コマンドをMea+ory−Busに発行して対
応する他のエントリを無効化し、その状態をEXCに変
える。Cache−Bus l:aek信号を返す。
(b) talss した場合; rcacheに存在
してその下の5cacheに存在しないエントリが有る
ことになり、このようなケースは有り得ない。
[4,WWIに対する応答〕 (a−1) E X Cにhit した場合;このエン
トリにvw1コマンドのデータを書き込んで、その状態
をNONに変える。Cache−Busにack信号を
返す。
(a−2) E X C以外に旧tした場合; EXC
以外の状態ではこの5cacheの上のrcacheに
Ownershipを持つものがない筈だから、このよ
うなケースは有り得ない。
(1)) @iss した場合; fcacheに存在
してその下の5cachcに存在しないエントリが有る
ことになり、このようなケースは有り得ない。
さて5cacheにおけるreplaceは次のように
して行われる。
キャッシュのコンシステンシを保つためには、feac
heに存在するエントリが全て5cacheに存在する
という制約がある。この制約を実現する為には1つの5
cacheにCache−Bus経由で接続されるf’
cacheのエントリ数の総和がその5cacheのエ
ントリ数より少なくなくてはならない。また5cach
eからrep I aceされるエントリはその5ea
cheの上のrcaeheに存在しないようなエントリ
を選択する必要がある。このエントリを選択する為に、
5cacheのタグ部のrep I ace情報には、
上のとのf’cacheがこのエントリを使用している
かを示す情報が含まれている。
尚、前述した第1のキャッシュメモリ装置の場合と同様
に、この第2のキャッシュメモリ装置Jこあっても、5
cacheからreplaceされるエントリの状態に
よって、コピーバック動作が必要かどうかが決まる。
[1] replaceされるエントリがINV、また
はUNOのとき;コピーバック動作はしない。
[2] replaceされるエントリがEXCのとき
;5cachcでEXCのエントリはその5cache
に接続されるfcache上に対応するエントリが存在
する筈で、このエントリがreplaceに選択される
ことはない。
[3コreplaceされるエントリがNOHのとき;
wwl コマンドをMemory−Busに発行してエ
ントリの内容をMemoryにコピーバックする。
しかしてこのようなMemory−Busバスからのコ
マンドに対する5caeheからの応答は次のようにし
て行われる。この応答は、5caehcにてMeIgo
ry−Busを監視し、Mc+++ory−Bus上の
コマンドのアドレスに対応するエントリの状態によって
必要な動作を行う。
尚、この応答はNetIlary−Bus上のコマンド
がアドレスを持っているので、このアドレスに対応する
エントリが5caeheに存在し、且つ状態がINVで
ないことを旧tとし、上記エントリが存在しない、また
は存在しても状態がINVであることをm1ssとして
扱う。このm1ssの場合は5cacheは Mea+
ory−Busにack信号を返すだけである。
hatの場合はMeIIory−Bus上のコマンドに
応じて次のような動作を行う。
尚、Memory−Busのコマンドでキャッシュに新
たなエントリを確保する必要はないのでreplace
は必要ない。また5cacheのエントリにはrap!
cace情報にそのエントリがどの上のrcacheに
使用されているかを示す情報がある。従ってエントリが
どの上のfcachelこも使用されてないときは上の
fcacheニCache−Bus経由でコマンドを発
行する必要がない。またMemory−Busのcac
he信号はキャッシュが応答しているときにメモリに応
答させないようにする為の信号であるから、この信号が
アサートされたらメモリはMOllOry−BuSにa
ck信号だけを返すに止める。
[1,I?SHに対する応答コ (a)旧tしたエントリがEXCの場合; Mea+o
ry−Busのcache信号をアサートし、Memo
ryが応答しないようにする。そして、その上のf’c
acheの対応するエントリのデータとこのエントリの
データは違うので、先ず、その上のI’cacheのデ
ータを5cacheにコピーする為にCache−Bu
s l: PWI コマンドを発行して、その応答デー
タをこのエントリに書き込む。次にRS Hコマンドに
対する応答としてそのエントリのデータをMea+or
y−Busに返す。そしてこのエントリの状態をNON
にし、Memory−Busにaek信号を返す。
(b) hit t、たエントリがNONの場合; M
emory−Busのcache信号をアサートする。
次にデータを要求している5cacheにこのエントリ
のデータを与える。この場合、そのエントリの状態を変
えないで、MeIIory−Busにack信号を返す
(c) hli L、たエントリがUNOの場合;Me
IIlO「y−Busにackを返す。
[2,RPOに対する応答] (a) hit L、たエントリがEXCの場合; M
ea+ory−Busのcache信号をアサートし、
Memoryが応答しないようにする。次にその上のf
’cacheの対応するエントリのデータとこのエント
リのデータは違うので、その上のfcacheのデータ
を5cacheにコピーする為にCache−Bus 
l:FAIコマンドを発行し、その応答データをこのエ
ントリに書き込む。FAIの効果として上のfcach
eは無効化されている。次にRPOコマンドに対する応
答としてそのエントリのデータをMemory−Bus
に返す。そしてこのエントリの状態をINVにし、Me
IIory−Busにack信号を返す。
(b) hit したエントリがNONの場合−仮にこ
の5cacheの上のf’caeheに対応するエント
リが存在する可能性があるならCache−BusにW
FIコマンドを発行する。RPO要求に対する応答とし
てこのエントリのデータをMemory−Busに返す
。そしてこのエントリの状態はINVにし、Memor
y−Busにack信号を返す。
(c) hit したエントリがUNOの場合;仮にこ
の5cacheの上のf’cacheに対応するエント
リが存在する可能性があるならCache−11usに
Wl’lコマンドを発行する。そしてこのエントリの状
態をINVにし、MeIIory−Bust、: ae
k信号を返す。
[3,VFIに対する応答] (a) hit したエントリがEXCの場合; 他の
5cacheが対応するエントリを持っていたことにな
る。このようなケースは有り得ない。
(b) hlt したエントリがNOHの場合;もし、
この5cacheの上のfeacheに対応するエント
リが存在する可能性があるならばCache−Busに
VFI コマンドを発行する。そしてこのエントリの状
態をINVにし、Memory−Busにack信号を
返す。
(c) hlt LだエントリがUNOの場合;もし、
この5cacheの上のf’caeheに対応するエン
トリが存在する可能性があるならCache−Busに
wF1コマンドを発行する。そしてこのエントリの状態
をINVにし、Mcvo ry−Busにack信号を
返す。
[4,WWIに対する応答] (a) hit したエントリがEXCの場合; 他の
5cacheの対応するエントリが0νnership
を持っていたことになり、このようなケースは有り得な
い。
(b) hit したエントリがNONの場合; 他の
5cacheの対応するエントリがOwnershlp
を持っていたことになる。このようなケースは有り得な
い。
(c) hit LだエントリがUNOの場合; Me
IIory−Busにack信号を返す。
尚、システムとして有り得ない状態が起こったときは、
これをハードウェアの異常と見なせるからシ不テムに割
込みをかける。
次に第5図に示す第2のキャッシュメモリ装置の構成を
参照しながら当該第2のキャッシュメモリ装置(5ca
che)の動作について説明する。
キャッシュバス(Cache−Bus )からのコマン
ドはキャッシュバス・インターフェース(Caehe−
Bus Interracc ) Sclを通じてキャ
ッシュバス・コントローラ(Scache Cache
−Bus controller )Sc2に伝えられ
る。キャッシュバス・コントローラSc2ではキャッシ
ュ・タグ・メモリ(scacheTag memory
) Sc4を参照して与えられたアドレスがキャッシュ
にhit Lでいるかどうかを判定し、エントリの状態
によって必要な動作を行う。
データ部に対するアクセスは、キャッシュ・タグ・メモ
リSc4で与えられるアドレスのキャッシュ拳データ中
メモリ(scache Data 5esory)  
Sc5に対して行われる。また、replaceされる
エントリはリプレース・ロジック(replaceme
nt Logic )Sc3で決定され、仮にコピーパ
ックの必要が生じた場合にはそのエントリはリプレース
・ロジックSc3の指示によりキャッシュ・データ・メ
モリSc5よりメモリバス−インターフェース(Mea
+ory−Bus Interface) Sc7を通
じてメモリバス(Memory−Bus) BlにνW
1 コマンドでコピーバックされる。
Cache−Busのコマンドによりメモリバス(Me
mory−Bus) Blにコマンドを出す場合は、キ
ャッシュバス・コントローラSc2からメモリバス−イ
ンターフェースSc7を通じてコマンドが発行され、そ
の結果読み出されたデータはメモリバス・インターフェ
ースSc7経由でキャッシュ・データ・メモリSc5に
書き込まれる。
またCache−Busのコマンドによりエントリのタ
グ部を書き換えるにはキャッシュバス・コントローラS
c2からキャッシュ・タグ・メモリSc4へ書き込むこ
とにより行われる。
一方、メモリバス(MeIlory−Bus)からのコ
マンドは前記メモリバス・インターフェース(Memo
ry−Bus Interl’ace) Sc7を通じ
てキャッシュ・メモリバス拳コントローラ(5cach
e Memory−Buscontroller) S
eeへ伝えられる。このキャッシュナメモリバスーコン
トローラSc6ではキャッシュ・タグ・メモリSc4を
参照して与えられたアドレスがキャッシュに旧tしてい
るかどうかを判定し、エントリの状態によって必要な動
作を行う。
尚、その上に接続された第1のキャッシュメモリ装置(
[’cache)をフラッジz、 (Hush )する
必要があるときはキャッシュ・メモリバス・コントロー
ラSc6からメモリバスSclを通じてキャッシュバス
(cache−bus ) CIにコマンドを発行し、
その応答でキャッシュ・データ・メモリSc5を書き換
えることにより行われる。
またフェッチ(fetch )に対する応答はキャッシ
ュ・データ・メモリSc5からデータを読み出し、メモ
リバス・インターフェースSc7を通じてメモリバスB
1に出される。またエントリのタグ部はSeeからSe
4へ書き込まれる。
WPIをCache−Busに発行する必要がある時は
キャッシュ・メモリバス・コントローラSc6がキャッ
シュバス・インターフェースSclを経由して前記キャ
ッシュバス(cache−bus ) CIに発行する
以上が第2のキャッシュメモリ装置における動作の態様
である。
次に上述した階層キャッシュメモリ装置に接続されるメ
モリ装置について説明する。このメモリは前記メモリバ
ス(Memory−Bus)のコマンドに応答する。上
述したキャッシュメモリ装置の場合と違って、このメモ
リではamissすることがない。またメモリバス(M
emory−Bus)のCache信号がアサートされ
ているときは、そのコマンドに対して5cacheが応
答するからメモリは応答してはならないと云う制約があ
る。
このメモリはメモリバス(Memory−Bus)上の
次の4つのコマンドに応答する。
[1,R311に対する応答] cache信号がアサートされていなければ、データを
Memory−Busに返す。そしてMeo+ory−
Busにaek信号を返す。
[2,RPOに対する応答] cache信号がアサートされていなければデータをM
eIlory−Busに返す。そしてMemory−B
usにack信号を返す。
[3,i/Flに対する応答] Memory−Busにack信号を返す。
[4,シシ1に対する応答] データをメモリに書き込む。Meo+ory−Busに
ack信号を返す。
第6図はこの種のメモリの構成を示すものである。この
メモリは、前述したメモリバス(Memory−Bus
)上のコマンドをメモリバス・インターフェース(Me
mory−Bus Interf’ace) Milを
介して監視している。このメモリバス・インターフェー
スMllはコマンドのアドレス、およびcache信号
が現れるかどうかによってデータ蓄積メモリ(data
storage ) M12からdataを読み出すか
どうかを決定する。このデータ蓄積メモリ(data 
storage)M12から読出されたdataは前記
メモリバス・インターフェースMllを通じてメモリバ
ス(MeIlory−Bus) 81に出力される。ま
たメモリバス・インターフェースMllはack信号を
上記メモリバス(M−ea+ory−Bus) 81に
返す働きをする。尚、メモリコントローラ(Contr
oller) M13はメモリバス・インターフェース
旧1.およびデータ蓄積メモリ旧2をそれぞれ制御する
装置である。
本発明に係る階層キャッシュメモリ装置は上述した如く
構成される第1および第2のキャッシュメモリ装置を第
1図に示すように構築し、各部の状態に応じてそれぞれ
の動作を制御することで、前記プロセッサに対するキャ
ッシュ動作を呈する。
次に上述した如くシステム構成された階層キャッシュメ
モリ装置における具体的な動作について第7図を参照し
て説明する。
第7図(a)はプロセッサからの第1の読み込み動作例
[1036例1]を模式的に示すものであり、この動作
は次のようにして実行される。
■ プロセッサpHから第1のキャッシュメモリ装置(
f’cache) Fil ヘ読出しく read)の
要求を出し、 ■ このreadの要求に対してf’cache pH
でm1ssすると、 ■ f’cahce pHがキャッシュバス(Caeh
e−Bus)CIにR8)Iコマンドを出す。
■ このR8Hコマンドに対して第2のキャッシュメモ
リ装置(scache) Stでもm1ssすると、■
 5cache SlがメモリバスBlにR8Hコマン
ドを出す。
■ このR8Hコマンドに対してメモリ(Mea+or
)’)旧がdataを読出し、前記R9Hコマンドに応
答する。
■ すると5cache 81がそのdataを読み込
み、状態をUNOに変化させる。
■ そして5cache Slは上記■のR8I+に対
する応答としてdataをキャッシュバスC1に返す。
■ このキャッシュバスCIのdataを前記f’ca
hcepHが読み込み、状態をUNOに変化させる。
[相] そして「cahce Filからプロセッサp
Hに対して上述した如く獲得したdataを返す。
第7図(b)はプロセッサからの第2の読み込み動作例
[read例2]を模式的に示すものであり、この動作
は次のようにして実行される。
■ pHがfcache Filにreadの要求を出
す。
■ この要求に対してrcache FILでm1ss
すると、■ f’cache pHがR3Hコマンドを
Cache−Bus C1に出す。
■ これに対してI’cache F14が■の応答と
してdataをCache−Bus C1に返す。この
時、状態をEXCからNONに変化させる。
■ rcache Filがaataを読み込み、ソノ
状態をUNOに変化させる。
■ そしてrcache pHがdataをpHに返す
第3の読み込み動作例[read例3]は第7図(C)
に示すようにして行われる。
■ pHがreadの要求をrcache FILに出
し、■ これに対してI’caehe pHがm1ss
すると、■ I’cache FllはCache−B
us C1にR8Hコマンドを出す。
■ 更に5eache Slがamissすると、■ 
5cache SlがMeaeory−Bus Blに
I?SI+コマンドを出す。
■ この時、5cache S3がEXCにhitする
と、Mea+eory−Bus Blにcache信号
を出し、Memoryが応答しないようにする。同時に
PWI コマンドをCache−Bus C3に出す。
■ するとfcache F31が■の応答としてda
taをCache−Bus C3に返す。そしてその状
態をEXCから11NOに変化させる。
■ また5CaChe S3はCache−Bus C
3のdataを読み込み、状態をEXCからNONに変
化させる。
■ その後、5cache 83が■の応答としてda
taをMemory−Bus Blに返す。
[相] 次に5cache S3がMea+ory−B
us Blのdataを読み込み、状態をUNOに変化
させる。■ 5eacheS3が■の応答としてdat
aをCache−Bus C1に返す。
@ するとf’eache FilがdataをCac
he−Bus C1から読み込み、その状態をUNOに
変化させる。
◎ そしてfcachc pHがdataをPitに返
す。
また第7図(d)はプロセッサからの第4の読み込み動
作例[read例4]を模式的に示すものであり、この
動作は次のようにして実行される。
■ pHがread要求をfcache pHに出し、
■ I’cache  Filがm1ssすると、■ 
rcaehe FilはCache−Bus C1にR
8Hコマンドを出す。
■ このR8Hコマンドに対して5eache Slの
UNOが旧tすると、■の応答としてdataをCac
he−BusClに返す。
■ これによってfcache FilがCache−
Bus C1からdataを読み込んで状態をUNOに
変化させる。
■ そしてfcache FilがpHにaataを返
す。
更に第5の読出し動作例[1836例5]は第7図(e
)に示すようにして実行される。
■ pttがread要求をf’cache pHに出
し、■ これに対してreachcpHにm1ssする
と、■ f’cache pHはCaceh−Bus 
C1にR3H:17ンドを出す。
■ また5caehe 81でもにm1ssすると、■
 5cache StがMemory−Bus Blに
R8Hコマンドを出す。
■ このR9Hコマンドに5cache S3のNON
が旧tすると、■の応答としてdataをMemory
−Bus Blに返す。この際、MeIlory−Bu
s Blのcache信号をアサートしMemory旧
が応答しないようにする。
■ すると5cache Sl はdataをMemo
ry−Bus Blから読み込み、状態をUNOに変化
させる。
■ これによって5eaehe Slは■の応答として
dataをC’achc−Bus C1に返す。
■ この結果、fcache pHはdataをCac
he−Bus C1から読み込み、その状態をUNOに
変化させる。
■ そしてreaehe FILはdataをPILに
返す。
第7図(「)は正規の読出し動作例[read例6コを
示している。
■ pHがread要求をrcache Fllに出す
■ これに対してrcache FilのEXC、NO
N 、 [JNOのどれかにbitすると、 ■ f’caehe Fllは、これに対して直接的に
dataをpHに返すことになる。
以上が本装置におけるプロセッサからの読出し要求に対
する動作例である。
次にプロセッサからの書き込み要求時の動作例について
説明する。
第7図(g)は第1の書き込み例[vrl te例1コ
を模式的に示す図である。この処理動作は、■ wri
te要求をpHがfcache Fllに出すことによ
って行われる。
■ この要求に対して「cache FllのEXC’
が旧tすると、 ■ f’cache pHが書き込み動作を行い、pH
に対してack信号を返してその動作を終了する。
第7図(h)に示す第2の書き込み例[write例2
]は次のようにして行われる。
■ write要求をptiがfcache Filに
出す。
■ これに対してf’eache pHのUNOが旧t
すると、■ f’cache pHがCaceh−Bu
s C1にVFIニア7ンドを出す。
■ このコマンドにf’caehe PL4がhitす
ると、その状態NONをINVに変化させる。そして■
の応答としてcache−bus ctにack信号を
返す。この場合、5cachc 81の状態ははBXC
だったのでack信号のみを返す。
■ するとrcache pHが上記aek信号を受取
り、その状態LINOをEXCに変化させる。■ この
結果、[’cache pHが書き込み動作を行いac
k信号をpHに返す。
第3の書き込み例[vrlte例3]は、第7図(i)
に示すようにして実行される。
■ write要求をpHがf’cache Fllに
出す。
■ この要求がrcache pHのUNOに旧tする
と、reache FilはCache−Bus C1
にνF1 コマンドを出す。
■ このコマンドが5cache SlのUNOにhi
tすると、5cachc SlはMemory−Bus
 BlにWFI コマンドを出す。
■ しかしてWPI コマンドに対して5cache 
S3のNONが旧tすると、5cache 83はその
Cache−BusC3に対してWPI コマンドを出
す。
■ そしてこのコマンドがrcache P34のUN
Oにhitすると、その状態をINVに変化させ、前記
■のコマンドに応答としてCache−Bus C3に
ack信号を返す。
■ この結果、5eache S3が状態をNONから
INVに変化させ、■のコマンドに応答としてMemo
ry−Bus Bl l:: ack信号を返す。
■ そして前記5cache 81がその状態をIJN
OがらEXCに変化させ、■のコマンドに応答としてC
ache−Bus C1にack信号を返す。
■ この結果、fcache Filがその状fiUN
O−をEXCに変化させ、 ■ fcache Fllが書き込み動作を行う。そし
てpHにack信号を返す。
第7図(j)は更に別の書き込み動作例[write例
4]を示している。この動作は、 ■ write要求をpttがrcache Filに
出し、■ rcache pHがm1ssした場合であ
る。
■ この場合には、f’cache pHはCache
−Bus C1にRPOコマンドを出す。
■ このRPOニアマントに対してI’cache P
I3のEXCが旧tすると、rcache PI3は■
のコマンドへの応答としてCache−Bus C1に
aataを返す。そしてその状態をINVに変化させ、
また5cache 81の状態がEXCなのでack信
号のみを返す。
■ するとfcache Filがaataを読み込み
、その状態をINVからEXCに変化させる。
■ この結果、fcache pHが読み込んだdat
aに書き込み動作し、ack信号をPitに返す。
第5の書き込み動作例[vr1te例5]は、第7図(
k)に示すようにして実行される。■ write要求
をpHがreaehe pHに出し、■ f’cach
e Filがn+lssすると、■ fcachc F
ilはCache−Bus C1にRPOコマンドを出
す。
■ これに対して5cache Slがll1ssする
と、■ 5cache 81はMea+ory−Bus
 BlにRPOコマンドを出す。
■ これによってIlemory Mlが■の応答とし
てdataをMemory−Bus Blに返す。
■ すると5cache StがMea+ory−Bu
sからdataを読み込み、その状態をINVからEX
Cに変化させる。
■ そして5cache Slは■の応答としてdat
aをCache−Bus C1に返す。
■ この結果、f’cache FilがCache−
Bus C1からdataを読み込み、その状態をIN
VからEXCに変化させる。
[相] そしてfcache Filは読み込んだda
taに書き込み、ack信号をpHに返す。
第7図(1)は第6の書き込み動作例[vrlte例6
]を模式的に示している。この例では、■ vr1te
要求をpHがfcache Fllに出し、■ rca
che Filがm1ssL、■ f’cache p
HがCache−I3us C1にRF01マントを出
し、 ■ 更にこのRFOコマンドに対して5eache 8
1がrAissL、 ■ 5cache 81がMemory−Bus Bl
にRPOコマンドを出すときの動作を示している。
■ しかしてRpoコマンドが5cache S3のE
XCにhitすると、5caehe S3はMemro
y−Bus Blのcache信号をアサートし、Me
mory Mlが応答しないようにする。同時に5ca
che 83はFAI コマンドをCache−Bus
 C3に出す。
■ このF^1コマンドにf’cache F34のE
XCが旧tすると、前記■の応答としてCache−B
us C31,: dataを返す。この際、その状態
をINVにする。
■ すると5cache 33がCache−Busの
dataを読み込み、■の応答として肋−ory−Bu
sにdataを返し、その状態をEXCからINVに変
化させる。
■ そして5cahee SlがMemory−Bus
のdataを読み込み、■の応答としてCache−B
usにaatぽを返し、同時にその状態をINVからE
XCに変化させる。
[相] この結果、rcache FilがCache
−Busのdataを読み込み、その状態をINVから
EXCに変化させ、■ 「caehe Filは読み込
んだdataに書き込み動作を行い、pHにack信号
を返す。
以上が上述した如く構成された階層キャッシュメモリ装
置における、プロセッサの読出し、書き込みに対する動
作例である。
次に、上述した実施例の変形例として命令用のキャッシ
ュメモリを別に持った第2の実施例について説明する。
この第2の実施例装置は第8図に示すように、第1およ
び第2のキャッシュメモリ装置fcaehe。
5cacheのそれぞれに、データ用のキャッシュメモ
リ装置とは別に命令用のキャッシュメモリ装置を設けた
ことを特徴としている。
即ち、プロセッサpH,〜Pin、・Pil、 〜PI
Jのそれぞれに、データ用のキャッシュメモリ装置DF
II。
〜DP1n・・・1)Pil、〜DPilと、これと対
をなす命令用のキャッシュメモリ装置IPII、〜IP
In・・・IPll、〜1Fijとを第1のキャッシュ
メモリ装置f’cacheとして接続し、これらを前述
した実施例と同様にキャッシュバス(Cache−Bu
s ) C1,〜C2にそれぞれ接続する。
そして2段目のキャッシュメモリとしても、データ用の
キャッシュメモリ装置OSt、〜DSIと、これと対を
なす命令用のキャッシュメモリ装置+si。
〜IsI とを準備し、これらを前記キャッシュバス(
Cache−Bus ) C1,〜C2にそれぞれ接続
する。そしてこれらの第2のキャッシュメモリ装置5c
acheをメモリバス(Memory−Bus)  B
lにて共通接続し、このメモリバス(Memory−B
us)  Blにメインメモリ(Mea+ory) M
lを接続して階層構造をなすキャッシュメモリ装置が構
築される。
尚、ここでは命令用の1段目のキャッシュを1−fca
che、命令用の2段目のキャッシュを1−scach
eと称して説明を進める。また上記命令用のキャッシュ
はプロセッサから書き込むことはできないものである。
また命令用のキャッシュはシステムのコマンドにより無
効化することができる。
またプロセッサは、命令を読み込むときには1−1’c
acheから行い、プロセッサはデータに対するアクセ
スはrcacheに対して行うものとし、更にこれらの
命令用のキャッシュはデータ用のキャッシュとも同じバ
スを使用するものとする。
またここでは命令用のキャッシュメモリには書き込みが
頻繁に起こらないことから、コンシステンシを保つため
のハードウェアを少なくする上で、命令用のキャッシュ
にコピーが存在するアドレスに書き込んだときに、命令
用のキャッシュのコピーについては無効化されない、つ
まり命令用のキャッシュについてはスヌーブ動作を行わ
ないものとしている。
しかし新しいプログラムをロードしたときなどは命令キ
ャッシュを無効化しなければならない。
これはロードされたプログラムを実行しようとしている
プロセッサの下の命令用のキャッシュに、システムから
無効化のコマンドを送ることで達成される。例えばプロ
セッサpHが新たにロードされたプログラムを実行しよ
うとしているときには、このプロセッサpHに対応する
命令用キャッシュIPI1. ISIに対して無効化の
コマンドが送られる。
このような実施例装置によれば、以下に説明するように
実行するプロセッサの1−1’cache及びその+−
5cacheの下の+−5cacheを無効化するだけ
でプロセッサから書き込まれた命令の列を実行すること
が可能となる。
次に1段目の命令用キャッシュメモリ装置(1−fca
che)の機能について説明する。
この命令用キャッシュメモリ装置(1−f’cache
)のエントリは、そのエントリがどのアドレスのもので
あるかを示すアドレス情報、そのエントリが有効かどう
かを示す状態情報、およびデータ部からなる。これらの
状態情報とアドレス情報とによりタグ部が構成される。
しかして1段目の命令用キャッシュメモリ装置(1−r
cache)が取り得る状態は次の2つである。
[11I  (lnValid )  :このエントリ
のデータ部は無効である。
[2] V (Valid )  ;このエントリのデ
ータ部は有効である。
1−fcaeheにヒツトchtt )するのはエント
リのタグ部のアドレスが、要求しているアドレスと等し
く、且つその状態がVのときであり、それ以外はミスヒ
ツト(m1ss)となる。
また命令用キャッシュメモリ装置(1−fcache)
のリプレース(replace )については、1−r
cacheはプロセッサによって書き込まれることがな
いので、リプレースつまりコピーバックは行わない。
更にキャッシュバス(Cache−Bus )に対して
は、1−fcacheが追加されることによって次のバ
スコマンドが1つ追加されるされることになる。
I F C: 1nstruct1on−Fetch(
address);addressで示されるキャッシ
ュブロックをI−f’cacheに読み込む為の要求。
さて1−fcacheはプロセッサからの要求に対して
次のように応答する。
(a−1)プロセッサが命令をf’etch L、i−
1’cacheに旧tした場合; 1−fcacheの
データをプロセッサに返す。
(a−2)プロセッサが命令をf’etch L、i−
1’cacheがm1ssした場合; t−rcach
eはCache−BusにIPc ニアマントを発行し
、dataを読み込む。そしてプロセッサがこのaat
aをf’etchする。
(b)プロセッサが命令のfetch以外を実行する場
合; 1−fcacheは応答しない。
一方、f’cacheはCache−BusのIFCコ
マンドに対して次のように応答する。
(a−1) E X Cl、:hlt した時; da
taをCache−Busに読出し、cache信号を
アサートする。
尚、cache信号は1−scacheが応答しないよ
うにするための信号である。そして状態を変化させるこ
となく 、ack信号を返す。
(a−2) N ONに旧tした時; dataをCa
che−Busに読出し、cache信号をアサートす
る。そしてその状態を変化させることなく 、ack信
号を返す。
(a−3) U N Oに旧tした時; t−5cac
heが応答するので、この場合には応答しない。そして
ack信号だけを返す。
(b) l1issした時; ack信号を返し、リプ
レース(replace )も行わない。
尚、命令キャッシュを加えたこの実施例ではCache
−Busのcache信号線が使用されるo fcac
heはバスコマンドに対する応答としてaataを(:
Bhe−Busに出すときはcache信号をアサート
して 1−scacheが応答しないように配慮する必
要がある。
次に第9図を参照して上述したt−rcacheがどの
ように動作するのかを説明する。
プロセッサpHからの命令のfetchは1−fcac
he(IFII)にて扱われ、プロセッサPILからの
データへのアクセスはf’cache (DPII)に
て扱われる。
命令のfetch要求は、まずプロセッサ・インターフ
ェース(Processor Interrace )
 IPIIIに伝えられる。プロセッサ・インターフェ
ースIPIIIはその命令が旧tしているかどうかを命
令キャッシュ・タグメモリ(1−f’cache ta
g memory)IP、112を参照して判定する。
そして命令が旧tしている場合には命令キャッシュ・デ
ータメモリ(1−fcache data seg+o
ry) IFII3から前記プロセッサ・インターフェ
ースIPIIIを通してプロセッサPl+にデータが与
えられる。
また命令がm1ssしたときはキャッシュバス・インタ
ーフェース(Cache−Bus Interf’ac
e ) IFII4を通じてIFCコマンドがキャッシ
ュバス(Cache−Bus、) CLに与えられ、そ
の結果として与えられたデータは命令キャッシュ・デー
タメモリ1F113に格納される。同時に前記命令キャ
ッシュ・タグメモリ1F112のエントリが書き換えら
れる。
尚、命令キャッシュ・コントローラ(1−fcache
controller) IFII5はこれらを制御す
る装置である。
しかしてシステム中のプロセッサ、或いは他の周辺装置
から新たにロードされた命令列を実行する為には、1(
cacheの命令列のアドレスに対応するエントリを無
効化する必要がある。この無効化は前記命令キャッシュ
・タグメモリIP112の対応するエントリの状態情報
を無効化することによって達成される。この場合、キャ
ッシュバスCache−Bus上のコマンドに対しては
ack信号だけが返される。
一方、2段目(第2)の命令用キャッシュメモリド5c
acheは次のようなものである。
この命令用キャッシュメモリ+−5cacheのエント
リは、そのエントリがどのアドレスのものであるかを示
すアドレス情報、そのエントリが有効かどうかを示す状
態情報、およびデータ部とからなる。
これらのアドレス情報と状態情報をまとめてタグ部と呼
ぶ。
しかして命令用キャッシュメモリ1−scacheは、
前述した1段目の第1の命令用キャッシュメモリ1(c
acheと同様に次の2つの状態をとる。
[1] 1 (Invalid )  ;このエントリ
のデータ部は無効である。
[2] V (Valid )  ;このエントリのデ
ータ部ハ有効である。
1−8eaeheにヒツト(hlt )するのはエント
リのタグ部のアドレスが、要求しているアドレスと等し
く、且つその状態がVのときであり、それ以外はミスヒ
ツト(slss)となる◎ また命令用キャッシュメモリ装置(i−scache)
のリプレース(replace )については、1−s
cacheは書き込まれることがないので、リプレース
つまりコピーバックは行わない。
更にメモリバス(memory−Bus)に対しては、
1−scacheが追加されることによって次のバスコ
マンドが1つ追加されるされることになる。
I F C: In5truction−Fetch(
address);addressで示されるキャッシ
ュブロックを1−scacheに読み込む為の要求。
さてt−5cacheはキャッシュバス(Cache−
Bus)からの要求に対して次のように応答する。
(a−1) Ireコマンドがl−5cacheに旧t
し、且っcache信号がアサートされていない場合;
エントリのデータをCache−Busに返し、その状
態は変えない。そしてack信号を返す。
(a−2) I PCコマンドが1−seacheに5
issL、このときcache信号がアサートされてい
ない場合;Memory−BusにIFCコマンドを発
行し、aataを読み込む。そしてその状態をVにし、
Cache−Busにaata、およびack信号を返
す。
(a−3) IPCコマンドが1−scacheにm1
ssL、このときcache信号がアサートされている
場合;この状態はIPCに対してその上のf’cach
eが応答したことを示しているので、ack信号だけを
返す。
(b) +pcコマンド以外の場合; 1−scach
eからは応答しない。モしてack信号だけを返す。
これに対して5cacheはCache−Bus上のJ
PC:Iマントに対して応答することがない。またl−
5cacheはMemory−Bus上のコマンドに対
しては、これに応答することなく 、ack信号のみを
返す。
一方、5cacheのMemory−Bus上のIFG
コマンドに対しては次のような応答が行われる。
(a−1) E X Cに旧tしたとき;先ずcach
e信号をアサートしてMemoryが応答しないように
する。
その上のf’caeheと内容が違うからCache−
BusにFw1コマンドを送ってこのエントリのデータ
をrcacheと一致させる。その後、Memory−
Busにデータを返し、IPcに応答する。そしてその
状態をNONに変化させ、ack信号を返す。
(a−2) N ONに旧tしたとき;先ずcache
信号をアサートしてMemoryが応答しないようにす
る。
その後、Memory−Busにデータを返し、IPc
に応答する。この場合には状態を変化させないでack
信号を返す。
(a−3) U N Oにhit したとき;応答しな
いでack信号のみを返す。
(b) m1ssしたとき;応答しないでack信号の
みを返す。
次に第10図を参照して上述した1−scacheの構
成とその動作について説明する。
この2段目のキャッシュメモリ装置にあっては、Cac
he−Bus C1上のコマンドがIPGのときは 1
−scache IsIが対応し、それ以外のコマンド
では5cache Stが対応する。但し、Cache
−Bus C1上のコマンドに対してはJSI、81の
どちらもaek信号は返す。
しかしてIFCコマンドに対してはキャッシュバス・イ
ンターフェース(cache−Bus Interfa
ce )1!311が命令キャッシュ・タグメモリ(1
1−5cacheta l1eolory) l512
を参照して、その命令が旧tしているかどうかを判定す
る。
命令が旧tしており、CaChe信号がアサートされて
いないときは命令キャッシュ・データメモリ(1−sc
aehe data Ilemory) l513から
データを読出し、キャッシュバス・インターフェースl
5IIがキャッシュバス(Cache−Bus ) C
Iにデータを返す。
これに対して上記命令がm1ss L、またこの時にc
ache信号がアサートされていないときには、メモリ
バス・インターフェース(Memory−BusInt
erface ) 1814を通じてメモリバス(Me
mory−Bus) BlにIPCコマンドを送る。こ
のコマンドに対する応答は上記メモリバス・インターフ
ェース(Mesroy−Bus Interf’ace
) l514を通じて命令キャッシュ争データメモリ(
1−scache data meIlory)l31
3に書き込まれる。このときに命令キャッシュφタグメ
モリ (1−scache tag memory )
 1s12のエントリの内容が書き換えられる。
また命令が5issした時にcache信号がアサート
されている場合には、キャッシュバス・インターフェー
ス+811か′らack信号のみを返す。またメモリバ
ス(Memory−Bus) Bl上のコマンドに対し
ては応答しないでackのみを返す。
尚、命令キャッシュ・コントローラ(1=scache
controller) l515はこれらを制御する
装置である。
またシステム中のプロセッサ、或いは他の周辺装置から
新たにロードされた命令列を実行する為の、t−5ea
cheの命令列のアドレスに対応するエントリの無効化
は、命令キャッシュ・タグメモリl512の対応するエ
ントリの状態情報を無効化することによって達成される
尚、Memoryにおける上述したlFcコマンドに対
する応答は、仮にcache信号がアサートされていな
かったらデータを返すことで上記lFcコマンドに応答
する。この際、同時にack信号を返す。またcach
e信号がアサートされていない場合には、ack信号の
みを返す。その他の応答については、前述した実施例と
同様に、他のMemory−Busコマンドと同じよう
にlFcコマンドを扱う。
次にこのように構成された実施例装置における具体的な
動作例について第11図を参照して説明する。
第11図(a)はプロセッサからのフェッチ動作例[f
’etch例1コを模式的に示すもので、次のようにし
て実行される。
■ プロセッサpHがfetch要求を出し、■ この
f’etch要求に対して1−4cache IPII
がhitすると、 ■ 1−fcache IPIIがプロセッサpHにd
ataを返すことにより、その処理動作が実行される。
また第11図(b)に示すフェッチ動作例[fetch
例2]では、 ■ プロセッサpHがf’etch要求を出し、■ こ
れに対して1−f’eache IPIIが一1ssす
ると、■ IFIIがCache−Bus C1に+p
cコマンドを出す。
■ このlFcコマンドがFilのNONにhitする
と、■ pHが■の応答としてdataをCae、he
−Bus C1に返す。そしてcache信号をアサー
トする。
■ これによってIFIIがdataを読み込み、その
エントリに書き込む。
■ そしてIFIIからdataをpHに返すことによ
り、そのフェッチ動作が行われる。
更に第11図(c)に示す3番目のフェッチ動作例[r
eLch例3]では、 ■ プロセッサpHがf’etch要求を出し、■、 
if’cache IPIIがamissすると、■ 
It’llはCache−Bus C1にlFcコマン
ドを出す。
■ このlFcコマンドに対して更に1−scache
 ISIがm1ssすると、 ■ ISIがlFcコマンドをMemory−Bus 
Blに出す。
■ この結果、Memory Mlが■の応答としてa
ataをMeIlory−Bus Blに返す。
■ するとISLがMemory−Bus Blからd
ataを読み込み、エントリに書き込む。
■ そして+81は■の応答としてCache−Bus
 C1にdataを返す。
■ IPllではこのdataをCache−Bus 
C1から読み込み、エントリに書き込む。
[相] そしてIPIIからaataをpHに返すこと
により、そのフェッチ動作が完了する。
また第4番目のフェッチ動作例[fetch例4]は、
第11図(d)に示すようにして実行される。
■ プロセッサpHがretch要求を出し、■ これ
に対してi−f’cache IPIIにm1ssする
と、■ IFIIはCache−Bus C1に+pc
コマンドを出す。
■ このlFcコマンドに対してF1aのEXCが旧t
すると、 ■ PI3が■の応答としてdataをCaehe−B
us C1に返し、同時にcache信号をアサートす
る。
■ この結果、IFIIがdataをcache−bu
sから読み込み、そのエントリに書き込む。
■ そしてIPIIがdataをpHに返すことにより
、フェッチ動作が終了する。
第11図(e)は5番目のフェッチ動作例[f’etc
h例5コを示すもので、この場合には次のように動作す
る。
■ プロセッサpHがfetch要求を出し、■ 1(
cache !pHが1ssすると、■ IPIIはC
ache−Bus C1にlFcコマンドを出す。
■ このIPCニア7ンドに対してl−5cache 
181が■lssすると、 ■ IsIカ月pcコマンドをMemory−Bus 
Blに出す。
■ このIPc:Iマントに対して5cache S2
のNONが旧tすると、 ■ このS2は■の応答としてdataをMemory
−BusBlに返し、cache信号をアサートする。
■ この結果、ISIはdataをMemory−Bu
s Blから読み込み、そのエントリに書き込み、■ 
+81は■の応答としてdataをCache−Bus
 C1に返す。
[株] すると)FllはdataをCache−Bu
s  C1から読み込み、エントリの書き込み、 ■ IPIIはdataをpHに返してフェッチ動作を
終了する。
第11図(e)は今1つのフェッチ動作例[fetch
例6]を示すものである。このフェッチ動作は、■ プ
ロセッサpHがfetch要求を出し、■ これに対し
て1(cache IPIIにm1ssすると、■ I
PIIがCache−Bus C1にIPC:l?ンド
を出す。
■ このIFCコマンドに対して1−scache 1
81が更に■1ss L、 ■ ISIはrpcコマンドをMemory−Buh 
Blに出す。
■ このIPcコマンドに対して5cache S2の
EXCがhitすると、 ■ 5cache 82はCache−Bus C2に
Fν1コマンドを出し、Memory−Bus Blの
cache信号をアサートする。
■ このFWI コマンドに対してfcache R2
1のEXCが旧tすると、■の応答としてaataをC
ache−BusC2に返す。そしてCache−Bu
s C2のCache信号をアサートし、その状態をU
NOに変化させる。
■ この結果、5cache S2がCache−Bu
s C2のaataを読み込み、その状態をNONに変
化させる。
[相] すると5cache S2は、■の応答として
dataをMemory−Bus Blに返す。
■ この結果、!−5caehe ISIはMeIIo
ry−Bus Blからdataを読み込み、それをエ
ントリに書き込む。
0 そして1−scache 181は■の応答として
dataをCaCbe−Bus C1に返す。
0 この結果、14CaChe FilはCache−
Bus C1のdataヲ読み込んでそのエントリに書
き込み、■ IPIIはdataをpHに返してフェッ
チ動作を終了する。
以上がメモリ用のキャッシュを独立に設けたこの実施例
装置におけるフェッチ動作の形態である。
次に上述した如くシステム構成された階層キャッシュメ
モリ装置における具体的な動作について第7図を参照し
て説明する。
第7図(a)はプロセッサからの第1の読み込み動作例
[read例1]を模式的に示すものであり、この動作
は次のようにして実行される。
■ プロセッサpHから第1のキャッシュメモリ装置(
fcache) Fil ヘ読出しく read)の要
求を出し、 ■ このreadの要求に対してfcache pHで
一1ssすると、 ■ rcahce Filがキャッシュバス(Cach
e−Bus )C1にR9Hコマンドを出す。
■ このRSI(コマンドに対して第2のキャッシュメ
モリ装置(scache) Slでもm1ssすると、
■ 5cache StがメモリバスB1にR8I!コ
マンドを出す。
■ このR911コマンドに対してメモリ(Memor
y)Mlがdataを読出し、前記R9Hコマンドに応
答する。
■ すると5cache Slがそのdataを読み込
み、状態をUNOに変化させる。
■ そして5cache Slは上記■のRSIに対す
る応答としてdataをキャッシュバスC1に返す。
■ このキャッシュバスC1のaataを前記rcah
ceFllが読み込み、状態をUNOに変化させる。
[株] そしてfcahcc pHからプロセッサpH
に対して上述した如く獲得したdataを返す。
第7図(b)はプロセッサからの第2の読み込み動作例
[read例2]を模式的に示すものであり、この動作
は次のようにして実行される。
■ pHがfcache Filにreadの要求を出
す。
■ この要求に対してrcache Pitで履1ss
すると、■ rcache FllがR8IIコマンド
をCache−Bus C1に出す。
■ これに対してreachs R14が■の応答とし
てdataをCache−Bus C1に返す。この時
、状態をEXCからNONに変化させる。
■ rcaehe pHがciataを読み込み、その
状態をUNOに変化させる。
■ モしてf’cache FilがdataをpHに
返す。
第3の読み込み動作例[read例3]は第7図(c)
に示すようにして行われる。
■ pHがreadの要求をrcache Filに出
し、■ これに対してrcache Filがm1ss
すると、■ fcache FilはCache−Bu
s C1にR8Iコマンドを出す。
■ 更に5cache stが1Iissすると、■ 
5cache SlがMemeory−Bus Blに
R8Hコマンドを出す。
■ この時、5cache S3がEXCにbitする
と、Memeory−Bus Blにcache信号を
出し、Mea+oryが応答しないようにする。同時に
FW! コマンドをCache−Bus C3に出す。
■ するとfcache Filが■の応答としてaa
taをCache−Bus C3に返す。そしてその状
態をEXCからUNOに変化させる。
■ また5cache S3はCache−Bus C
3のdataを読み込み、状態をExCからNOHに変
化させる。
■ その後、5cache 83が■の応答としてti
ataをMcsory−Bus Blに返す。
[相] 次に5cache S3がMemory−Bu
s Blのdataを読み込み、状態をUNOに変化さ
せる。
(iF)  5cache S3が■の応答としてda
taをCache−Bus C1に返す。
0 するとfcache FilがdataをCach
e−Bus C1から読み込み、その状態をUNOに変
化させる。
0 そしてfcache pHがdataをpHに返す
また第7図(d)はプロセッサからの第4の読み込み動
作例[read例4]を模式的に示すものであり、この
動作は次のようにして実行される。
■ pHがread要求をfeache Filに出し
、■ fcache  Filがm1ssすると、■ 
fcache FilはCache−Bus C1にR
8Hコマンドを出す。
■ このR8Hコマンドに対して5cache 81の
UNOが旧tすると、■の応答としてdataをCac
he−BusClに返す。
■ これによってfcache FilがCache−
Bus C1からdataを読み込んで状態をUNOに
変化させる。
■ そしてrcache FilがpHにaataを返
す。
更に第5の読出し動作例[read例5]は第7図(e
)に示すようにして実行される。
■ pHがread要求をfeache Fllに出し
、■ これ1こ対してf’cache Fillこ一1
ssすると、■ rcache pHはCaceh−B
us C1にR8H:ff7ンドを出す。
■ また5cache Slでもにm1ssすると、■
 5eache SlがMemory−Bus Bl 
lこR8Hコマンドを出す。
■ このR311コマンドに5cache 83のNO
Nが旧tす、ると、■の応答としてdataをMeg+
ory−Bus旧に返す。この際、Memory−Bu
s 81のcache信号をアサートしMemory旧
が応答しないようにする。
■ すると5cache SlはdataをMemor
y−Bus Blから読み込み、状態をUNOに変化さ
せる。
■ これによって5cache 81は■の応答として
dataをCache−Bus C1に返す。
■ この結果、rcache FilはdataをCa
che−Bus C1から読み込み、その状態をUNO
に変化させる。
[株] そしてrcache FilはdataをpH
に返す。
第7図(「)は正規の読出し動作例[read例6]を
示している。
■ pHがread要求をf’cache pHに出す
■ これに対してrcache FilのEXC、NO
N 、 UNOのどれかに旧tすると、 ■ rcache Filは、これに対して直接的にd
ataをpttに返すことになる。
以上が本装置におけるプロセッサからの読出し要求に対
する動作例である。
次にプロセッサからの書き込み要求時の動作例について
説明する。
第7図(g)は第1の書き込み例[vrlte例1]を
模式的に示す図である。この処理動作は、■ vrtt
e要求をpttがfcache Filに出すことによ
って行わ、れる。
■ この要求に対してfcache FilのEXCが
旧tすると、 ■ I’cache Filが書き込み動作を行い、p
Hに対してack信号を返してその動作を終了する。
第7図(h)に示す第2の書き込み例[vrHe例2コ
は次のようにして行われる。
■ vrtte要求をpHがfcache pHに出す
■ これに対してf’cache FilのUNOがh
ltすると、■ fcache FitがCaceh−
Bus C1にVFI コマンドを出す。
■ このコマンドにfcache PI4が旧tすると
、その状態NONをINVに変化させる。そして■の応
答としてCache−bus C11,:ack信号を
返す。この場合、5cache 81の状態ははEXC
だったのでack信号のみを返す。
■ するとrcache pHが上記ack信号を受取
り、その状態tlNOをIEXcに変化させる。■ こ
の結果、rcache Fllが書き込み動作を行いa
ck信号をpHに返す。
第3の書き込み例[νr1t13例3]は、第3](+
)に示すようにして実行される。
■ Vr1t8要求をpHがfeache FILに出
す。
■ この要求がrcache PiIのtlNOに旧t
すると、1’cache FilはCache−Bus
 C1にWFI コマンドを出す。
■ このコマンドが5cache SlのUNOに旧t
すると、5cache 81はMemory−Bus 
BlにWFI コマンドを出す。
■ しかしてWFI コマンドに対して5cache 
S3のNONがhttすると、5cache S3はそ
のCache−BusC3に対してWFI コマンドを
出す。
■ そしてこのコマンドがfcache P34のUN
Oにhttすると、その状態をINVに変化させ、前記
■のコマンドに応答としてCache−Bus C3に
ack信号を返す。
■ この結果、5cache 93が状態をNONから
INVに変化させ、■のコマンドに応答としてMemo
ry−Bus Blにack信号を返す。
■ そして前記5cache 81がその状態をUNO
からEXCに変化させ、■のコマンドに応答としてCa
che−Bus C1にack信号を返す。
■ この結果、rcache Filがその状a UN
OをEXCに変化させ、 ■ rcache Fllが書き込み動作を行う。そし
てpHにack信号を返す。
第7図(j)は更に別の書き込み動作例Cwrlte例
4]を示している。この動作は、 ■ vrl、te要求をpHがrcache FILに
出し、■ fcache Filがm1ssした場合で
ある。
■ この場合には、f’cache PLIはCach
e−Bus C1にRFOコマンドを出す。
■ このRPOコマンドに対してfcache PI3
のEXCがhttすると、rcache PI4は■の
コマンドへの応答としてCache−Bus C1にd
ataを返す。そしてその状態をINVに変化させ、ま
た5cache Stの状態がEICなのでack信号
のみを返す。
■ すると「cache Fllがdataを読み込み
、その状態をINVからEXCに変化させる。
■ この結果、fcache pHが読み込んだdat
aに書き込み動作し、ack信号をpHに返す。
第5の書き込み動作例[vrite例5]は、第7図(
k)に示すようにして実行される。
■ vrtte要求をpHがreachs Filに出
し、■ (’cache Filがamissすると、
■ I’caehe pHはCache−Bus C1
にRPOコマンドを出す。
■ これに対して5cache 81が1ssすると、
■ 5cache SlはMemory−Bus Bl
にRFOコマンドを出す。
■ これによってmemory Mlが■の応答として
dataをMemory−Bus Blに返す。
■ すると5eache StがMemory−Bus
からdataを読み込み、その状態をINVからEXC
に変化させる。
■ そして5cache Slは■の応答としてaat
aをCache−Bus C1に返す。
■ この結果、feache FilがCache−B
us C1からdataを読み込み、その状態をINV
からEXCに変化させる。
[相] そしてfcache Filは読み込んだda
taに書き込み、ack信号をpHに返す。
第7図(1)は第6の書き込み動作例[wrlt’e例
6]を模式的に示している。この例では、■ writ
e要求をpHがfcache Fllに出し、■ fe
ache Filが1ssL、■ I’cache F
llがCache−Bus C1にRPOコマンドを出
し、 ■ 更にこのRPOコマンドに対して5cache S
lがm1ssL、、 ■ 5eache SlがMeIIory−Bus B
lにRPOニア7ンドを出すときの動作を示している。
■ しかしてRPOコマンドが5cache S3のE
XCにbitすると、5cache S3はMesro
y−Bus 81のcache信号をアサートし、Me
mory Mlが応答しないようにする。同時に5ca
che S3はFAI コマンドをCache−Bus
 C3に出す。
■ このFAIニア7ンドにfcache P34のE
XCがhitすると、前記■の応答としてCache−
Bus C3にdataを返す。この際、その状態をI
NVにする。
■ すると5cache S3がCache−Busの
dataを読み込み、■の応答としてMemory−B
usにdataを返し、その状態をEXCからINVに
変化させる。
■ そして5cahce SlがMemory−Bus
のdataを読み込み、■の応答としてCache−B
usにdataを返し、同時にその状態をINVからE
XCに変化させる。
[相] この結果、f’c、ache pHがCach
e−Busのdataを読み込み、その状態をINVか
らEXCに変化させ、0fcache pHは読み込ん
だdataに書き込み動作を行い、pHにack信号を
返す。
以上が上述した如く構成された階層キャッシュメモリ装
置における、プロセッサの読出し、書き込みに対する動
作例である。
次に、上述した実施例の変形例として命令用のキャッシ
ュメモリを別に持った第2の実施例について説明する。
この第2の実施例装置は第8図に示すように、第1およ
び第2のキャッシュメモリ装置1’cache。
5cacheのそれぞれに、データ用のキャッシュメモ
リ装置とは別に命令用のキャッシュメモリ装置を設けた
ことを特徴としている。
即ち、プロセッサpH,〜Pln、−pH,〜Pi1の
それぞれに、データ用のキャッシュメモリ装置DPII
〜DPln・・・DFil、〜DPiJと、これと対を
なす命令用のキャッシュメモリ装置IFI1.〜1Fi
n・・・IPII、〜1F11とを第1のキャッシュメ
モリ装置f’cacheとして接続し、これらを前述し
た実施例と同様にキャッシュバス(Cache−Bus
 、) C1,〜C2にそれぞれ接続する。
そして2段目のキャッシュメモリとしても、データ用の
キャッシュメモリ装置DSL、〜DS1と、これと対を
なす命令用のキャッシュメモリ装置+81゜〜ISI 
とを!ff1iし、これらを前記キャッシュバス(Ca
che−Bus ) C1,〜C2にそれぞれ接続する
。そしてこれらの第2のキャッシュメモリ装置5cac
heをメモリバス(Memory−Bus)  Blに
て共通接続し、このメモリバス(Memory−Bus
)  Blにメインメモリ(Memory) Mlを接
続して階層構造をなすキャッシュメモリ装置が構築され
る。
尚、ここでは命令用の1段目のキャッシュを1−「ca
che、命令用の2段目のキャッシュを1−scach
eと称して説明を進める。また上記命令用のキャッシュ
はプロセッサから書き込むことはできないものである。
また命令用のキャッシュはシステムのコマンドにより無
効化することができる。
またプロセッサは、命令を読み込むときには1−fea
chcから行い、プロセッサはデータに対するアクセス
はrcacheに対して行うものとし、更にこれらの命
令用のキャッシュはデータ用のキャッシュとも同じバス
を使用するものとする。
またここでは命令用のキャッシュメモリには書き込みが
頻繁に起こらないことから、コンシステンシを保つため
のハードウェアを少なくする上で、命令用のキャッシュ
にコピーが存在するアドレスに書き込んだときに、命令
用のキャッシュのコピーについては無効化されない、つ
まり命令用のキャッシュについてはスヌーブ動作を行わ
ないものとしている。
しかし新しいプログラムをロードしたときなどは命令キ
ャッシュを無効化しなければならない。
これはロードされたプログラムを実行しようとしている
プロセッサの下の命令用のキャッシュに、システムから
無効化のコマンドを送ることで達成される。例えばプロ
セッサpHが新たにロードされたプログラムを実行しよ
うとしているときには、このプロセッサpHに対応する
命令用キャッシュIPII、 IsIに対して無効化の
コマンドが送られる。
このような実施例装置によれば、以下に説明するように
実行するプロセッサの1−rcache及びその1−r
CaCheの下の1−scacheを無効化するだけで
プロセッサから書き込まれた命令の列を実行することが
可能となる。
次に1段目の命令用キャッシュメモリ装置(1−rca
che)の機能について説明する。
この命令用キャッシュメモリ装置< 1−rcache
)のエントリは、そのエントリがどのアドレスのもので
あるかを示すアドレス情報、そのエントリが有効かどう
かを示す状態情報、およびデータ部からなる。これらの
状態情報とアドレス情報とによりタグ部が構成される。
しかして1段目の命令用キャッシュメモリ装置(1−1
’cache)が取り得る状態は次の2つである。
[111(InvaNd )  ;このエントリのデー
タ部は無効である。
[2] V (Valld )  ; コ(Ds> )
 !J(7)y’−9部ハ有効である。
1−1’cacheにヒツト(bit )するのはエン
トリのタグ部のアドレスが、要求しているアドレスと等
しく、且つその状態がVのときであり、それ以外はミス
ヒツト(m1ss)となる。
また命令用キャッシュメモリ装置(1−f’cache
)のリプレース(replace )については、[−
1’cacheはプロセッサによって書き込まれること
がないので、リプレースつまりコピーパックは行わない
更にキャッシュバス(Cache−Bus )に対して
は、1−rcacheが追加されることによって次のバ
スコマンドが1つ追加されるされることになる。
I F C: In5truction−Fetch(
address);addressで示されるキャッシ
ュブロックを1−fcacheに読み込む為の要求。
さて1(cacheはプロセッサからの要求に対して次
のように応答する。
(a−1)プロセッサが命令をfetch L、i−1
’cacheにhit した場合; I(cacheの
データをプロセッサに返す。
(a−2)プロセッサが命令をfetch L、、、I
−fcacheがl1issした場合; 1−rcac
heはCache−BusにIFcコマンドを発行し、
dataを読み込む。そしてプロセッサがこのdata
をfetchする。
(b)プロセッサが命令のfetch以外を実行する場
合; I−fcacheは応答しない。
一方、「cacheはCache−BusのIFCコマ
ンドに対して次のように応答する。
(a−1) E X Cにhit した時; data
をCache−Busに読出し、cache信号をアサ
ートする。
尚、cache信号は1−scacheが応答しないよ
うにするための信号である。そして状態を変化させるこ
となく 、ack信号を返す。
(a−2) N ONに旧tした時; dataをCa
che−Busに読出し、cache信号をアサートす
る。そしてその状態を変化させることなく 、ack信
号を返す。
(a−3) U N Oに旧tした時; l−5cac
heが応答するので、この場合には応答しない。そして
ack信号だけを返す。
(b) m1ssした時;  ack信号を返し、リプ
レース(replace )も行わない。
尚、命令キャッシュを加えたこの実施例ではCache
−Busのcache信号線が使用されるo rcac
heはバスコマンドに対する応答としてdataをCa
che−Busに出すときはcache信号をアサート
して 1−scacheが応答しないように配慮する必
要がある。
次に第9図を参照して上述したi−f’cacheがど
のように動作するのかを説明する。
プロセッサpHからの命令のretehはI−rcac
he(IPII)にて扱われ、プロセッサpHからのデ
ータへのアクセスはrcache (DFII)にて扱
われる。
命令のfetch要求は、まずプロセッサ・インターフ
ェース(Processor Interface )
 IFIIIに伝えられる。プロセッサーインターフェ
ースrF111はその命令がhIt L、ているかどう
かを命令キャッジ+L”タグメモリ(1−f’cach
e tag *es+ory)IPII2を参照して判
定する。そして命令が旧tしている場合には、命令キャ
ッシュ・データメモリ(i(cache data m
eIIory) IPII3から前記プロセッサ・イン
ターフェースIFIIIを通してブロセッサ pHにデ
ータが与えられる。
また命令がm1ssしたときはキャッシュバス・インタ
ーフェース(Cache−Bus Interf’ac
e ) IpH4を通じてIFCコマンドがキャッシュ
バス(Cache−Bus ) C1に与えられ、その
結果として与えられたデータは命令キャッシュ・データ
メモリlpH3に格納される。同時に前記命令キャッシ
ュ・タグメモリIP112のエントリが書き換えられる
尚、命令キャッシュ・コントローラ(1−f’cach
econtroller ) IF115はこれらを制
御する装置である。
しかしてシステム中のプロセッサ、或いは他の周辺装置
から新たにロードされた命令列を実行する為には、1−
feacheの命令列のアドレスに対応するエントリを
無効化する必要がある。この無効化は前記命令キャッシ
ュ・タグメモリIF112の対応するエントリの状態情
報を無効化することによって達成される。この場合、キ
ャッシュバスCache−Bus上のコマンドに対して
はack信号だけが返される。
一方、2段目(第2)の命令用キャッシュメモリ1−s
cachcは次のようなものである。
この命令用キャッシュメモリ1−scacheのエント
リは、そのエントリがどのアドレスのものであるかを示
すアドレス情報、そのエントリが有効かどうかを示す状
態情報、およびデータ部とからなる。
これらのアドレス情報と状態情報をまとめてタグ部と呼
ぶ。
しかして命令用キャッシュメモリl−5cacheは、
前述した1段目の命令用キャッシュメモリ 1−rca
cheと同様に次の2つの状態をとる。
[111(Invalid )  ;このエントリのデ
ータ部は無効である。
[2] V (Valid )  ;このエントリのデ
ータ部は有効である。
+−5cacheにヒツト(bit )するのはエント
リのタグ部のアドレスが、要求しているアドレスと等し
く、且つその状態がVのときであり、それ以外はミスヒ
ツト(5lss)となる。
また命令用キャッシュメモリ装置(1−scache)
のリプレース(replace )については、1−s
cacheは書き込まれることがないので、リプレース
つまりコピーパックは行わない。
更にメモリバス(IIemory−Bus)に対しては
、■−5cacheが追加されることによって次のバス
コマンドが1つ追加されるされることになる。
I F C: In5truction−Fetch(
address):addressで示されるキャッシ
ュブロックを1−scacheに読み込む為の要求。
さて1−5eaeheはキャッシュバス(Cache−
Bus)からの要求に対して次のように応答する。
(a−1) IPcコマンドがl−5cachel: 
hit L、且つcache信号がアサートされていな
い場合;エントリのデータをCache−Busに返し
、その状態は変えない。そしてack信号を返す。
(a−2) lI’cコマンドが1−scacheに5
issL、、このときcache信号がアサートされて
いない場合;Memory−BusにII’Cコマンド
を発行し、dataを読み込む。そしてその状態をVに
し、Cache−Busにdata、およびack信号
を返す。
(a−3)Ireコマンドが1−scaeheにm1s
sL、このときcache信号がアサートされている場
合;この状態はIFCに対してその上のrCacheが
応答したことを示しているので、ack信号だけを返す
(b) IFCコマンド以外の場合; t−5cach
eからは応答しない。そしてack信号だけを返す。
これに対して5eacheはCache−Bus上のI
FCコ?ンドに対して応答することがない。また1−s
cacheはMelOrV−BtlS上のコマンドに対
しては、これに応答することなく 、ack信号のみを
返す。
一方、5cacheのMemory−Bus上のrpc
コマンドに対しては次のような応答が行われる。
(a−1) E X Cにhlt したとき;先ずca
che信号をアサートしてMei+oryが応答しない
ようにする。
その上のfcacheと内容が違うからCache−B
usにFwl コマンドを送ってこのエントリのデータ
をrcacheと一致させる。その後、Memory−
Busにデータを返し、IFCに応答する。そしてその
状態を、N ONに変化させ、ack信号を返す。
(a−2) N ONに旧tしたとき;先ずcache
信号をアサートしてMemoryが応答しないようにす
る。
その後、Memory−Busにデータを返し、IFc
に応答する。この場合には状態を変化させないでack
信号を返す。
(a−3) U N Oに旧tしたとき;応答しないで
ack信号のみを返す。
(b) m1ssしたとき;応答しないでack信号の
みを返す。
次に第10図を参照して上述した1−scacheの構
成とその動作について説明する。
この2段目のキャッシュメモリ装置にあっては、Cac
he−Bus C1上のコマンドがIFcのときは 1
−scache IsIが対応し、それ以外のコマンド
では5cache Stが対応する。但し、Cache
−Bus C1上のコマンドに対してはISl、Slの
どちらもack信号は返す。
しかしてIFCコマンドに対してはキャッシュバス帝イ
ンターフェース(cache−Bus Interfa
ce )ISIIが命令キャッシュ・タグメモリ(il
−5cacheta megory) l512を参照
して、その命令が1tしているかどうかを判定する。
命令が旧tしており、cache信号がアサートされて
いないときは命令キャッシュ・データメモリ(1−sc
ache data a+emory) 1s13から
データを読出し、キャッシュバス・インターフェース+
811がキャッシュバス(Cache−Bus ) C
1にデータを返す。
これに対して上記命令がa+l5sL、またこの時にc
ache信号がアサートされていないときには、メモリ
バス拳インターフェース(Memory−BusInt
erface ) 1s14を通じてメモリバス(Me
mory−Bus) BlにIFCコマンドを送る。こ
のコマンドに対する応答は上記メモリバス・インターフ
ェース(Mesroy−Bus Interrace)
 1s14を通じて命令キャッシュ・データメモリ(1
−scach’e aata meIlory)IsI
3に書き込まれる。このときに命令キヤ・ソシュ・タグ
メモリ (1−scache tag Ilemory
 ) 1812のエントリの内容が書き換えられる。
また命令がm1ssL、た時にcache信号がアサー
トされている場合には、キャッシュバス中インターフェ
ースl5IIからack信号のみを返す。またメモリバ
ス(Memory−Bus) Bl上のコマンドに対し
ては応答しないでackのみを返す。
尚、命令キャッシュ・コントローラ(1−scache
controller) l515はこれらを制゛御す
る装置である。
またシステム中のプロセッサ、或いは他の周辺装置から
新たにロードされた命令列を実行する為の、1−sea
cheの命令列のアドレスに対応するエントリの無効化
は、命令キャッシュ・タグメモリ+312の対応するエ
ントリの状態情報を無効化することによって達成される
尚、Memoryにおける上述したIPcコマンドに対
する応答は、仮にcache信号がアサートされていな
かったらデータを返すことで上記IFCコマンドに応答
する。、この際、同時にack信号を返す。またcac
he信号がアサートされていない場合には、ack信号
のみを返す。その他の応答については、前述した実施例
と同様に、他のMellOry−Busコマンドと同じ
ようにlFCコマンドを扱う。
次にこのように構成された実施例装置における具体的な
動作例について第11図を参照して説明する。
第11図(a)はプロセッサからのフェッチ動作例[f
etch例1]を模式的に示すもので、次のようにして
実行される。
■ プロセッサpttがfetch要求を出し、■ こ
のfetch要求に対して1−rcache IPII
がhttすると、 ■ 1−rcache IPIIがプロセッサpHにd
ataを返すことにより、その処理動作が実行される。
また第11図(b)に示すフェッチ動作例[1’etc
h例2]では、 ■ プロセッサpHがI’etch要求を出し、■ こ
れに対してi−1’cache IPIIがm1ssす
ると、■ IPIIがCache−Bus C1にIP
Cコマンドを出す。
■ このIFCコマンドがFilのNONに旧tすると
、■ I’llが■の応答としてaataをCache
−Bus C1に返す。そしてcache信号をアサー
トする。
■ これによってIFIIがdataを読み込み、その
エントリに書き込む。
■ そしてIFIIからaataをpHに返すことによ
り、そのフェッチ動作が行われる。
更に第11図(C)に示す3番目のフェッチ動作例[f
etch例3コでは、 ■ プロセッサpHがfetch要求を出し、■ 1−
rcachc IPIIが1ssすると、■ IPII
はCache−Bus C1にIFCコマンドを出す。
■ このIPcコマンドに対して更に1−scaehe
 IsIがm1ssすると、 ■ +81がIPCコマンドをMemory−Bus 
Blに出す。
■ この結果、Memory旧が■の応答としてaat
aをMemory−Bus旧に返す。
■ するとISIがMemory−Bus Blからd
ataを読み込み、エントリに書き込む。
■ そしてISIは■の応答としてCache−Bus
 C1にdataを返す。
■ IFIIではこのdataをCache−Bus 
C1から読み込み、エントリに書き込む。
[相] そしてIFIIからdataをpHに返すこと
により、そのフェッチ動作が完了する。
また第4番目のフェッチ動作例[f’etch例4]は
、第4]図(d)に示すようにして臭性される。
■ プロセッサpHがf’eteh要求を出し、■ こ
れに対してl−1’cache IFIIにamiss
すφ、と、■ IFllはCache−Bus C1に
IFCコマンドを出す。
■ このIPCコマンドに対してF1aのEXCが旧t
すると、 ■ F1aが■の応答としてdataをCac−he−
Bus C1に返し、同時にcache信号をアサート
する。
■ この結果、lPLLがdataをcache−bu
sから読み込み、そのエントリに書き込む。
■ そしてIFIIがdataをpHに返すことにより
、フェッチ動作が終了する。
第11図(e)は、5番目のフェッチ動作例[f’eL
ch例5]を示すもので、この場合には次のように動作
する。
■ プロセッサpHが[’etch要求を出し、■ 1
−rcache IFIIが1ssすると、■ IFI
IはCache−Bus C1にIFcコマンドを出す
■ このIFc:17ンドに対してl−5cache 
ISIがm1ssすると、 ■ IsIがIFCコマンドをMeIlory−Bus
 Blに出す。
■ このIFcコマンドに対して5cache S2の
NONが旧tすると、 ■ このS2は■の応答としてdataをMemory
−BusBlに返し、cache信号をアサートする。
■ この結果、ISIはaataをMemory−Bu
s BLから読み込み、そのエントリに書き込み、■ 
ISIは■の応答としてdataをCache−Bus
 C1に返す。
[相] するとIPIIはaataをCache−Bu
s  C1から読み込み、エントリの書き込み、 ■ IFIIはdataをpHに返してフェッチ動作を
終了する。
第11図(c)は、今1つのフェッチ動作例[retc
h例6]を示すものである。このフェッチ動作は、 ■ プロセッサpHがreach要求を出し、■ これ
に対して[−1’cache IFLIに5issする
と、■ IFllがCache−13us C1にIP
C:]?ンドを出す。
■ このIPCコマンドに対して+−5cache I
sIが更にm1ssL、 ■ ISIはIFCコマンドをMemory−Bus 
Blに出す。
■ このIFCコマンドに対して5cache S2の
EXCがhitすると、 ■ 5cache S2はCache−Bus C2に
PVl:Iマントを出し、Memory−Bus旧のc
ache信号をアサートする。
■ このp%l コ7ンドに対しテfcache P2
1(7) EXCが旧tすると、■の応答としてdat
aをCache−BusC2に返す。そしてCache
−Bus C2のCache信号をアサートし、その状
態をυNOに変化させる。
■ この結果、5cache S2がCache−Bu
s C2のdataを読み込み、その状態をNONに変
化させる。
[相] すると5cachc S2は、■の応答として
dataをMemory−Bus旧に返す。
■ この結果、1−scache 181はMemor
y−Bus Blからdataを読み込み、それをエン
トリに書き込む。
0 そして1−scache ISIは■の応答として
dataをCache−Bus C1に返す。
◎ この結果、!−1’cache pHはCache
−Bus C1のdataを読み込んでそのエントリに
書き込み、Q  IPIIはdataをPitに返して
フェッチ動作を終了する。
以上がメモリ用のキャッシュを独立に設けたこの実施例
装置におけるフェッチ動作の形態である。
ところで上述した各実施例では1段目の第1のキャッシ
ュメモリ装置、および2段目の第2のキャッシュメモリ
装置が共に4つの状態をとり、これらの状態に応じてキ
ャッシュ動作を行うものとして説明した。然し乍ら、第
2のキャッシュメモリ装置に着目すると、所有権がない
場合、他の第2のキャッシュメモリ装置とエントリを共
有している場合と、排他的に持つ場合とがあることが分
かる。しかも所有権を持ち、且つ排他的にエントリを持
つ場合であっても、それが一致している場合と不一致で
ある場合とがある。
そこで本発明の第3の実施例では第2のキャッシュメモ
リ装置に、例えば第12図に示すような6つの状態を設
定し、これらの状態に応じて更に効率的にキャッシュ動
作を行わせるように工夫している。
尚、第1のキャッシュメモリ装置が取り得る状態は前述
した実施例と同様に4つの状態であることから、以下の
説明では第2のキャッシュメモリ装置の特徴的な部分を
主体として説明する。
この第3の実施例装置に係るシステムは基本的には前述
した第3図に示すシステムと同様に構築され、また第1
のキャッシュメモリ装置が持つ機能も同様である。
しかしてこの実施例では第2のキャッシュメモリ装置(
5cache)は次の6つの状態をとるようになってい
る。
(1) E C(Exclusive C1ean) 
;この状態はキャッシュメモリが有効で書き戻し義務を
持たず、且つ排他的な状態であることを示し、次のよう
な意味を持つ。
■他の5cachcにはこのエントリに対応するアドレ
スのエントリが存在しない。■この5cacheの上の
rcachcの、対応するエントリのデータ部のデータ
と、このエントリのデータ部のデータは一致している。
■このエントリはOwnershipを持っていないの
でreplaceされる時にはコピーバックする必要が
ない。■この5eachcの上のfcachcにはOw
nershipを持つものがなく、NONやEXCは存
在しない。
(2) EMD (Exclusive Modifi
ed Dlfferentrrots f’cache
 ;この状態はキャッシュメモリが有効で書き戻し義務
を持ち、且つ排他的な状態にあり、I’Cacheとの
間で内容が一致しない状態であることを示し、次のよう
な意味を持つ。
■他の5cacheにはこのエントリに対応するアドレ
スのエントリが存在しない。■この5cacheの上の
rcacheの、対応するエントリのデータ部のデータ
と、このエントリのデータ部のデータは一致していない
。■この5cacheの上のf’cacheの対応する
エントリは必ず存在し、しかも0vnershIpを持
つものがある。即ち、NONまたはEXCが必ず存在す
る。
(3) EMS (Exclusive Modlri
ed 5a11e asfcache)  ;この状態
はキャッシュメモリが有効で書き戻し義務を持ち、且つ
排他的な状態で、rcacheとの間での内容が一致し
ている状態を示しており、次のような意味を持つ。
■他の5cacheにはこのエントリに対応するアドレ
スのエントリが存在しない。■この5cacheの上の
rcacheの、対応するエントリのデータ部のデータ
と、このエントリのデータ部のデータは一致している。
■この5cacheの上のf’cacheの対応するエ
ントリは、存在すればQwnershlpを持っていな
い。
即ち、EXCもNONも存在しない。
(4) S M (Shared Modirled)
  ;この状態はキャッシュメモリが有効で書き戻し義
務を持ち、排他的でない状態を示しており、次のような
意味を持つ。
■このエントリに対応するエントリが他の5cachc
に存在する可能性がある。■この5cachcの上のf
cachcの、このエントリに対応するデータ部は、こ
のエントリのデータ部と内容が一致する。
■この5cachcの上のrcacheの、対応するエ
ントリには0vnershipを持っているものがない
。即ち、上の[’cacheの、対応するエントリがあ
ればその状態はUNOである。このエントリのデータ部
のデ−タは有効である。■このエントリはOwners
hipを持っていて、このエントリがreplaceさ
れる時にはコピーバックする必要がある。
(5) S C(Shared C1ean) ;この
状態はキャッシュメモリが有効で書き戻し義務を持たず
、排他的でない状態であることを示しており、次のよう
な意味を持つ。
■このエントリの対応するエントリが他の5cache
に存在する可能性がある。■この5cachcの上のr
cacheの、このエントリに対応するエントリはあれ
ばその状態は必ずUNOである。■そのエントリのデー
タ部は、このエントリのデータ部と内容が一致する。こ
のエントリのデータ部のデータは有効である。■このエ
ントリは0vnershlpを持ってない。従って、こ
のエントリが「eplaceされる時にコピーバックす
る必要はない。
(B)  I NV(lNValid)  :キャッシ
ュメモリが無効な状態であることを示し、次のような意
味を持つ。
■このエントリは使用されていない。■データ部、アド
レス情報ともに意味のない情報である。
以上が、第2のキャッシュメモリ装置のアドレス情報に
それぞれ対応して設定される状態と、その状態が持つ意
味である。
さてこのような構成を持つ第2のキャッシュメモリ装置
5cacheは、先の実施例と基本的には同様に動作し
、C1c11e−Busからのコマンド、およびMem
ory−Busからのコマンドとそのときのキャッシュ
エントリの状態によって必要な動作を行い、エントリの
内容を変化させる。
先ず第1のキャッシュメモリ装置から与えられるコマン
ドに対する応答について説明する。
キャッシュバス(Cache−Bus )上のコマンド
は、全部で6種類である。その内、第1のキャッシュメ
モリ装置から2のキャッシュメモリ装置に対して出力さ
れるコマンドはR9H,RFO,WWI、νF1の4種
であり、また第2のキャッシュメモリ装置から第1のキ
ャッシュメモリ装置に対して出力されるVEI、FWI
、PAI (7) 3種である。
[1,R3IIに対する応答] (a−1)EMDにhit L、、た場合;この5ca
cheの上の「cachcの対応するエントリには必ず
0νnershlpを持ったエントリがあるので、応答
する必要がない。つまり、fcacheの兄弟間で転送
が行われる。
応答としてはCache−Busにack信号を返す。
(a−2)EMS、EC,SM、SCに旧tした場合;
この5cacheの上のfcacheにはOwners
hipを持つものがいない筈だから、この場合には当該
5eacheが応答する必要がある。そこで旧tしたエ
ントリのデータをCache−Busに返し、状態は変
化させない。そしてCache−Busにack信号を
返す。
(b) *Issした場合; replaceを行った
後、先ずR8IIをMemory−I3usに発行し、
データを読み込む。
読み込んだエントリの状態はそのエントリが共有されて
いるかどうかで違ってくる。仮にそのエントリが共有さ
れていなかったら状態をECとする。
また共有されていたらその状態をSCにする。そして読
み込んだエントリのデータをCache−Busに返し
、またCache−Busにack信号を返す。
この共有状態の検出が共有識別手段である。尚、共有さ
れているかの検出は、例えばMemory−Bus上に
共有状態を示す信号線を張り、各キャッシュがMemo
ry−Busのコマンドに旧tした場合はこの信号線を
アサートすることによって他のキャッシュにこのエント
リは共有されていることを知らせる。
実施例ではこの信号線をsh倍信号呼ぶ。
[2,RPOに対する応答] (a−1) E M DにhjL した場合;その上の
fcacheに、対応するOwnershipを持つエ
ントリがあり、このOwnershipを持つエントリ
がデータを返すから、当該5cacheはデータを返す
必要がない。他の5cacheと、その上のrcach
eにはこのエントリに対応するものがないのでMemo
ry−13us上にコマンドを出すこともない。従って
Cache−Busにack信号を返すだけとする。
(a−2) E M Sに旧tした場合;その上のfe
aeheには、対応するOwnershipをもつエン
トリがないので、当該5cacheから応答する必要が
ある。そこでデータをCache−Busに返す。しか
し他の5cacheが対応するエントリを持つことはな
いからMemory−Busにパスコマンrを出す必要
はない。そしてCache−Busにはack信号を返
し、その状態をEMDに変える。
(a−3)SMまたはSCに旧tした場合;VPI:+
マントをMemory−Busに発行して対応する。そ
して他のエントリを無効化し、エントリのデータをCa
che−Busに返す。データを返す必要があるのはこ
の上のf’cacheにはOwnershipを持つも
のがいないからである。この場合には状態をEMDに変
え、Cache−Busにはaek信号を返す。
(a−4) E Cに旧むした場合;その上のI’ca
cheに対応するOwnershipを持つエントリは
ない。つまり当該5caeheからdataをCach
e−Busに返してやる必要がある。また他の5cac
heと、その上のrcacheにはこのエントリに対応
するものがないのでMemory−Bus上にコマンド
を出すことはなく、Cache−Busに対してはac
k信号を返すだけとする。
この場合には、その状態をEMDに変える。
(b) m1ssした場合; replaceを行った
後、先ずRFOコマンドをMemory−Busに発行
し、データを読み込む。そして読んできたエントリの状
態をEMDにし、読み込んだエントリのデータをCac
he−Busに返す。この時、Cache−Busには
ack信号を返す。
[3,1fPJに対する応答] (a−1)EMDにhit した場合;他の5each
eと、その上のf’cacheにはこのエントリに対応
するものがないので、MeIlory−Busに無効化
の要求を出す必要はない。この場合にはCache−B
usにaek信号を返すだけとする。
(a−2) E M Sにhit した場合;他の5e
acheと、その上のrcacheにはこのエントリに
対応するものがないので、この場合にもMemory−
I3usに無効化の要求を出す必要がない。従ってCa
che−Busにack信号を返すだけとする。またこ
の上のfcacheと内容が一致していないことを示す
為に、当該エントリの状態をEMDに変化させる。
(a−3)SMまたはSCに旧tした場合;νF!コマ
ンドをMemory−Busに発行して対応する他のエ
ントリを無効化し、その状態をEMDに変える。そして
Cache−Busにack信号を返す。
(a−4) E Cに旧tした場合;他の5cache
と、その上のfcacheにはこのエントリに対応する
ものがないので、対応するエントリを無効化する必要が
ない。この場合には、その状態をEMDに変え、Cac
he−Busにはack信号を返す。
(b) m1ssL、た場合;この場合は、f’eac
heに存在してその下の5cacheに存在しないエン
トリが有ることになり、このようなケースは有り得ない
[4,VWIに対する応答] (a−1)EMDに旧tした場合;データをこのエント
リに書き込む。そしてこの上のreacheと内容が一
致したから状態をEMSに変え、Cache−Busに
ack信号を返す。
(a−2) E M D以外にhit した場合、EM
D以外の状態では、この5cacheの上の「cach
eに0νnershlpを持つものがない筈であるから
、このようなケースは有り得ない。
(b) ll5S した場合:この場合は、reach
eに存在してその下の5caeheに存在しないエント
リが有ることになるから、このようなケースは有り得な
い。
ところでこの第2のキャッシュメモリにおけるリプレー
スは前述した実施例と基本的には同様に実行制御される
が、その状態に応じて若干違っている。
[11replaceされるエントリがINV、または
ECまたはSCのとき;コピーバック動作はしない。
[2] replaceされるエントリがEMDのとき
;5cacheでEMDのエントリはその5cache
に接続されるf’caehc上に対応するエントリが存
在する筈なので、このエントリがrep I aceに
選択されることはない。
[3] rcpIacaされるエントリがSM、EMS
のとき;νw1コマンドをMea+ory−Busに発
行してエントリの内容をMemoryにコピーバックす
る。
次にこの第2のキャッシュメモリ装置(5cache)
におけるMea+ory−Busバスコマンドに対する
応答について説明する。
この応答制御も、基本的には前述した実施例と同様にM
eIIlory−Busを監視し、MeIlory−B
us上のコマンドのアドレスに対応するエントリの状態
に応じて次のように実行される。
[1,R2Oに対する応答] (a) hit したエントリがEMDの場合;先ずM
emory−Busのcache信号をアサートし、M
emoryが応答しないようにし、sh倍信号アサート
する。そしてその上のfcacheの対応するエントリ
のデータと当該エントリのデータとが違うので、先ずそ
の上のf’cacheのデータを5cacheにコピー
する為に、Cache−BusにPWI コマンドを発
行し、その応答データをこのエントリに書き込む。次に
R8Hコマンドに対する応答としてそのエントリのデー
タをMemory−Busに返す。このエントリの状態
をSMとし、Memory−Busにack信号を返す
(b) hHしたエントリがEMSの場合; 先ずMe
mory−Busのcache信号をアサートし、また
sh倍信号アサートする。次にデータを要求している5
cacheにこのエントリのデータを与える為のMem
ory−Busにエントリデータを返す。そして、その
エントリの状態をSMに変えて、Memory−Bus
にack信号を返す。
(e) hit したエントリがSMの場合−先ずMe
mory−Busのcache信号をアサートし、また
sh倍信号アサートする。そしてデータを要求している
5cachcにこのエントリのデータを与える為のMe
Ilory−Busにエントリデータを返す。この場合
、エントリの状態は変えない。そしてMe塵ory−B
usにはack信号を返す。
(d) hit LだエントリがECの場合; 先ずM
emory−Busのcache信号をアサートし、ま
たsh倍信号アサートする。そしてデータを要求してい
る5cacheにこのエントリのデータを与える為のM
emory−Busにエントリデータを返す。このエン
トリの状態をSCに変え、Me■ory’Busに対し
てはack信号を返す。
(e) hlt L、たエントリがSCの場合;sh倍
信号アサートし、Memory−Busにack信号を
返す。
[2,RPOに対する応答] (a) hit LだエントリがEMDの場合; 先ず
Memory−Busのcache信号をアサートし、
Memoryが応答しないようにする。その上でsh倍
信号アサートする。そしてその上のfeacheの対応
するエントリのデータと当該エントリのデータは違うの
で、先ずその上のrcacheのデータを5eache
にコピーする為にCache−BusにF^1コマンド
を発行し、その応答データをこのエントリに書き込む。
このFAIの効果として、上のfcacheは無効化さ
れる。次にRFOコマンドに対する応答としてそのエン
トリのデータをMemory−Busに返す。そしてエ
ントリの状態をINVにし、Memory−Busにa
ck信号を返す。
(b) hit したエントリがEMSの場合; Me
mory−Busのcache信号をアサートし、Me
moryが応答しないようにし、その上でsh倍信号ア
サートする。
仮にこの5cacheの上のf’caeheに対応する
エントリが存在する可能性があるならば、cache−
Busにwp1コマンドを発行する。モしてRPO要求
に対する応答としてこのエントリのデータをMeIio
ry−Busに返す。このときエントリの状態をINV
にし、Memory−Busにack信号を返す。
(c) hit したエントリがSMの場合;MeII
O「y−Busのcache信号をアサートし、Mem
oryが応答しないようにする。そして前記sh倍信号
アサートする。この際、この5cacheの上のf’c
acheに対応するエントリが存在する可能性があるな
らば、Cache−BusにwF1コマンドを発行する
。そしてRFO要求に対する応答としてこのエントリの
データをMeyh。
ry−Busに返す。この時にエントリの状態をINV
にし、Memory−Busにaek信号を返す。
(d) hit したエントリがSCの場合;sh倍信
号アサートする。この際、この5cacheの上のf’
cacheに対応するエントリが存在する可能性がある
ならば、Cache−BusにVFI コマンドを発行
し、エントリの状態をINVにする。この場合、データ
はMemoryまたは他の5cacheから与えられる
。このような状態でMemory−Busにack信号
を返す。
(c) hlt L、たエントリがECの場合; 先ず
MetAory−Busのcache信号をアサートし
、Memoryが応答しないようにし、sh倍信号アサ
ートする。この際、この5cacheの上のI’cac
heに対応するエントリが存在する可能性があるならば
、Cache−BusにwFl コマンドを発行する。
そしてRPO要求に対する応答としてこのエントリのデ
ータをMemory−Busに返す。そしてこのエント
リの状態をINVにし、Memory−Busにack
信号を返す。
[3,WPIに対する応答] (a) hit したエントリがEMDまたはEMSま
たはECの場合;他の5cacheが対応するエントリ
を持っていたことになるので、このようなケースは生じ
ない。
(b) hit t、たエントリがSMまたはSCの場
合;この5cacheの上のrcacheに、対応する
エントリが存在する可能性があるならば、Cache−
Busに対してvFI コマンドを発行する。そしてエ
ントリの状態をINVにし、Me+gory−Busに
aek信号を返す。
[4,νW+に対する応答] (a) hit したエントリがEMDまたはEMSま
たはECの場合;他の5cacheの対応するエントリ
が存在することになるので、このようなケースは有り得
ない。
(b) hit LだエントリがSMの場合; 他の5
cacheの対応するエントリがOwnershipを
持っていたことになるので、このようなケースは生じな
い。
(C)旧tしたエントリがSCの場合;  Metso
ry−Bus 1.:ack信号を返す。
以上が6つの状態を取るようにした第2のキャッシュメ
モリ装置の機能と、そのコマンドに対する応答等の動作
態様である。
次にこの本発明の第3の実施例装置における実行動作例
につき説明する。
第13図(a)は第1の読出し例r read例1コを
模式的に示すもので、次のように実行される。
■ プロセッサpHからrcache Fllへrea
dの要求を出し、 ■ rcache Fllがm1ssすると、■ rc
ahce pHはR9)lコマンドをCache−Bu
s C1に出す。
■ 二のI?SI+コマンドに対して5cache 8
1が+elssすると、 ■ 5cache 31はtietxory−Bus 
BlにR3Hコマンドを出す。
■ この結果、Memory Mlがaataを読出し
、R8Hコマンドに応答する。
■ すると5cache Stがそのdataを読み込
む。この時、Sh倍信号アサートされていないのでその
状態をECに変化させる。
■ しかる後、5cache Slは■のR8Hコマン
ドに対する応答としてaataをCache−Bus 
C1に返す。
■ この結果、rcahce pttがaataを読み
込み、その状態をUNOに変化させ、 @l  fcahce FilはプロセッサpHにda
taを返す。
また第13図(b)は第2の読出し例[rcad例2]
を模式的に示すもので、次のように実行される。
■ プロセッサpHがread要求をfcache p
Hに出し、 ■ fcachc FilのUNOにhitすると、■
 fcache Filはそこに持ツーdataをブロ
モ・ンサpHに返して、その読出し動作を終了する。
第3の読出し例Cread例3]は、第13図(c)に
示すようにして実行される。
■ プロセッサpHがfcache pHにreadの
要求を出し、 ■ rcache Filがこれをm1ssすると、■
 fcache FllはR3H:ITンドをCach
e−Bus C1に出す。
■ このR8)lコマンドに対してf’cache F
14が旧tすると、■の応答としてdataをCach
e−Bus C1に返す。そしてその状態をEXCから
NOHに変化させる。
■ するとfcache Fllはdataを読み込み
、その状態をUNOに変化させる。
■ この結果、rcaahe Filはdataをプロ
セッサpHに返してその動作を終了する。
第13図(d)は第4の読出し例[read例4コを模
式的に示すもので、次のように実行される。
■ プロセッサpHがread要求をfeache F
ilに出し、 ■ これに対してfcache pHがm1ssすると
、■ fcachc FilはCache−Bus C
I I: R3Hコマンドを出す。
■ このR3Hコマンドに対して5cache Slの
SCがhatすると、■の応答としてdataをCac
he−Bus C1に返す。
■ この結果、(’cache FilはCache−
Bus C1からdataを読み込んみ、その状態をU
NOに変化させる。
■ そしてf’eache FilはプロセッサpHに
aataを返して、その動作を終了する。
第13図(e)は第5の読出し例[read例5]を示
している。この読出し動作は、 ■ プロセッサpHがread要求をfcache F
ilに出し、 ■ これに対して「cache Pitにm1ssする
と、■ fcaehe pHはCaceh−Bus C
1にR8Hコマンドを出す。
■ このR3Hコマンドに対して5cache Stが
m1ssすると、 ■ 5cache SlはMemory−Bus Bl
にR3Hコマンドを出す。
■ このR9II:ITマント5cache 83のE
Cにbitすると、5cache S3は■の応答とし
てdataをMemory−Bus Blに返す。そし
てMemory−Bus Blのcache信号をアサ
ートしMemory旧が応答しないようにする。同時に
sh倍信号アサートする。
■ すると5cache 31はdataをMemor
y−Bus Blから読み込み、shがアサートされて
いることから、その状態をSCに変化させる。
■ そして5caehc 81は、■の応答としてda
taをCache−Bus C1に返す。
■ この結果、fcachc FilはdataをCa
che−Bus C1から読み込み、その状態をLIN
Oに変化させる。
[相] そしてfeache Filはaataをプロ
セッサpHに返し、その動作を終了する。
また第6の読出し例[read例6]は第13図<nに
示すようにして実行される。
■ プロセッサpHがread要求をrcache F
llに出し、 ■ これに対してf’cache Filがgilss
すると、■ rcache FilはCaceh−Bu
s C1にR811コマンドを出す。
■ このR811コマンドに対して5cache Sl
がm1ssすると、 ■ 5cache SlはMemory−Bus Bl
にR3I+コマンドを出す。
■ このR2O:+マントに5cache S3のSC
がhitすると、5cache S3はsh倍信号アサ
ートする。そしてdataはMeIloryからMem
ory−Bus Bl に与えられる。
■ この結果、5cache SlはdataをMem
ory−BusBlから読み込み、sh倍信号アサート
されていることから、その状態をSCに変化させる。
■ そして5cache Stは、■の応答としてda
taをCache−Bus C1に返す。
■ するとrcache pHはdataをCache
−Bus C1から読み込み、その状態をUNOに変化
させる。
[相] そしてrcache Fitはdataをプロ
セッサpHに返し、その動作を終了する。
第13図(g)は第7の読出し例[read例7]を示
している。この読出し動作は、 ■ プロセッサpHがreadの要求をf’cache
 Filに出し、 ■ これにfcache Filがm1ssしたとき、
■ rcachc FilはCache−Bus C1
にI?S)lコマンドを出す。
■ このR3Hコマンドに対して5cache Slが
m1ssすると、 ■ 5eaehe StはMen+eory−Bus 
B1にR3)lコマンドを出す。
■ しかしてこのI?SHコマンドに対して5cach
eS3のENDが旧tすると、5cache 83は、
Memeory−Bus 81にcache信号を出し
、Memoryが応答しないようにする。そしてFwl
 コマンドをCache−Bus C3に出す。またs
h倍信号アサートする。
■ このPvl コマンドに対してfcache P3
4がbitすると、■の応答としてdataをCach
e−Bus C3に返す。そしてその状態をEXCから
UNOに変化させる。
■ この結果、5cache 83がCache−Bu
s C1のdataを読み込み、その状態をENDから
SHに変化させる。
■ そして5cache S3は■の応答としてdat
aをMemory−Bus Blに返す。
[株] 次に5cache S3はMemory−Bu
s BLのctataを読み込み、sh倍信号アサート
されているから状態をSCに変化させる。
■ そして5cache S3は■の応答としてdat
aをCache−Bus C1に返す。
0 するとfcache FilはaataをCach
e−Bus C1から読み込み、その状態をUNOに変
化させ、@  fcache Filはaataをプロ
セッサpHに返す。
このように第2のキャッシュメモリ装置(5cache
)に6つの状態が設けられている場合、前述した4つの
状態を設けた実施例とは若干界なる動きでその読出し動
作が効率的に実行される。
次にこの実施例装置における書き込み動作例について説
明する。
第13図(h)は第1の書き込み例[vr1te例1]
を模式的に示す図で、次のように実行される。
■ write要求をプロセッサpHがf’cache
 Filに出し、 ■ fcache FilのEXCに旧tすると、■ 
fcache Filは書き込み動作を行い、ack信
号をプロセッサpttに返して、その書き込み動作を終
了する。
第13図(1)に示す第2の書き込み例[write例
2]では、 ■ プロセッサpttがvrtte要求をf’cach
e ’ Pi 1に出し、 ■ feache Filがll1lSSすると、■ 
fcache Filはcache−Bus C1にR
POコマンドを出す。
■ このRFOコマンドがfcache F14のUN
O1,:hftすると、その状態をINVに変化させる
。またこの時、5cache Slの状態はECなので
、その状態をENDに変化される。
■ しかして5cache 81が■の応答としてda
taをCache−Bus C1に返すと、 ■ I’cache Filはこのdataを読み込み
、その状態をINVからEXCに変化させる。
■ そしてrcaehe Filは読み込んだdata
に書き込み動作を実行し、ack信号をプロセッサをP
ILに返して、その動作を終了する。
また第3の書き込み動作例[write例3]は、第1
3図U)に示すようにして行われる。
■ write要求をプロセッサpHがfcache 
Fllに出し、 ■ 「cache Filがm1ssすると、■ rc
ache FilはCache−Bus ctにRFO
]7ンドを出す。
■ このgpoコマンドに対して5cache Slが
m1ssすると、 ■ 5caehe 81はMesory−Bus Bl
にRPOコマンドを出す。
■ このRPOコマンドに対してMemory Mlが
■の応答としてdataをMemory−Bus Bl
に返す。
■ すると5cache 81はMemory−Bus
からaataを読み込み、その状態をINVからEND
に変化させる。
■ そして5cache Slは■の応答としてdat
aをCache−Bus C1に返す。
■ この結果、rcache FllはCache−B
us C1からdataを読み込み、その状態をINv
からEXCに変化させ、 eJ)  rcache Filは読み込んだaata
を書き込んで、プロセッサpHにack信号を返す。こ
れによってぞの動作が終了する。
第4の書き込み動作例[vrite例4コは、第13図
(k)に示すようにして実行される。
■ vrlte要求をプロセッサpHがfcache 
Filに出し、 ■ rcachc Filがm1ssすると、■ f’
eache FilはCache−Bus C1にRP
Oコマンドを出す。
■ このRFOコマンドに5eache stのSCが
旧tすると、 ■ 5cache 31はMetxory−Bus B
lにWFI コマンドを出す。
■ このWPI コマンドが5cache S3のSM
に旧tすると、 ■ 5cache S3はCache−Bus C3に
VFI コマンドを出す。
■ wp+ コマンドに対してI’cache F31
のUNOがhatすると、その状態をINVにし、■ 
rcache F31は■の応答としてCache−B
us C31;:ack信号を返す。
[相] この結果、5cache 83がその状態をS
MからINVに変え、 ■ 5cache 83は■の応答としてMemory
−Bus Blにack信号を返す。
@ すると5cache Slがその状態をENDに変
化させ、 @  5cache Sl は■の応答としてdata
をCache−Bus C1に返す。
■ この結果、f’cache FilがCache−
Busのdataを読み込み、その状態をINVからE
XCに変化させ、@  rcache Filは読み込
んだdataに対して書き込み動作を行う。そしてプロ
セッサpHにack信号を返してその処理動作を終了す
る。
第13図(1)は5番目の書き込み動作例[write
例、5]を示している。この書き込み動作は、■ wr
ite要求をプロセッサPitがrcache Fil
に出し、 ■ f’cachc Filがll5SL、■ これに
伴ってf’cache FilがCache−Bus 
C1にRPOコマンドを出す。
■ このRFOコマンドに対して更に5cache S
tがalssL、 ■ 5cache StがMemory−Bus Bl
にRPOコマンドを出し、 ■ 5cache S3のECに旧tした場合を示して
いる。
この場合には、5cache S3はMemoryが応
答しないようにMemory−Bus Blのcach
e信号をアサートし、またsh倍信号アサートする。そ
してCache−Bus C3にWFI コマンドを出
す。
■ このVFIニアマントに対してI’cache P
34のIJNOが旧tすると、fcache P34は
■の応答としてCache−Bus C3にackを返
す。そしてその状態をINVに変化させる。
■ この結果、5cache S3が■の応答としてd
ataをMemory−Bus Blに返し、その状態
はINVに変化させる。
■ すると5cache SlがMatxory−Bu
s Blからdataを読み込み、その状態をEMDに
変化させる。
[相] そして5cache 81は■の応答としてd
ataをCache−Bus C1に返し、 ■ これによってfcache FilはCache−
Bus C1のdataを読み込み、その状態をINV
からEXCに変化させる。
@ この結果、f’cache pHは読み込んだda
taに書き込み動作を行い、プロセッサpHにack信
号を返す。
更に6番目の書き込み動作例[write例6]は、第
13図(m)に示すようにして実行される。
■ write要求をプロセッサpHがrcache 
pHに出し、 ■ f’eache Fitが一1ssすると、■ f
cache FilはCache−Bus C1にRP
Oコマンドを出す。
■ このRFOコマンドに対して5cache Stが
m1ssすると、 ■ 5cache SlはMemory−Bus Bl
にJ?FOコマンドを出す。
■ このRFOコvンドに対して5cache S3の
ENDが旧【すると、5cache S3はMeIIr
oy−Bus Blのcache信号をアサートし、M
emory旧が応答しないようにする。またsh倍信号
アサートする。そしてF^1コマンドをCache−B
us C3に出す。
■ このPAIニア7ンドがfcache F34のE
XCに旧tすると、rcache P34は■の応答と
してCache−BusC3にdataを返し、その状
態をINVにする。
■ すると5cache S3はCache−Busの
dataを読み込み、■の応答としてMen+ory−
Busにdataを返す。
そしてその状態をENDからINVに変化させる。
■ この結果、5cahee SlがMemory−B
usのdataを読み込み、■の応答としてCache
−Busにaataを返す。そしてその状態をINVか
らENDに変化させる。
[相] するとrcache pHはCache−Bu
sのaataを読み込み、その状態をINVからEXC
に変化させ、■ fcache Filは読み込んだd
ataに書き込み動作を行う。そしてプロセッサpHに
ack信号を返してその処理動作を終了する。
第13図(n)は、7番目の書き込み動作例[vrli
c例7]を示すものである。この書き込み動作は、 ■ write要求をプロセッサPitがI’cach
e Filに出し、 ■ fcache FilのtlNoにhit した場
合を示している。
■ しかしてこの場合には、f’cache pHはc
aceh−Bus C1にVFI コマンドを出す。
■ このvp+ コマンドがfcache F14にh
ltすると、その状態NONをINVに変化させ、fc
ache F14は■の応答としてCache−bus
 C1にack信号を返す。この時、5cache 8
1の状態はENDであるのでack信号のみを返す。
■ するとrcache Filはack信号を受取り
、その状態UNOをEXCに変化させる。
■ そしてrcache Filは書き込み動作を行い
、ack信号をプロセッサpHに返して、その動作を終
了する。
第13図(o)は最後の書き込み動作例Cvrite例
8]を示すもので、次のように実行される。
■ Write要求をプロセッサpHがfcache 
Pitに出し、 ■ fcache FilのUNOにhitする。この
結果、fcache pHはCache−Bus C1
にWPIコマンドを出す。
■ このWPI コマンドが5cache StのSC
にbitすると、5cache SlはMemory−
Bus BlにWPI コマンドを出す。
■ しかしてこのwp+ コマンドが5cache S
3のSMに旧tすると、5cachc S3はWPI 
コマンドをCache−Bus C3に出す。
■ このWPIニア7ンドがrcache F34のU
NOに旧tすると、rcache P34はその状態を
INVに変化させる。そして■のコマンドに対する応答
としてCache−[3us C3にack信号を返す
■ するとこのack信号を受けて5cache S3
はその状態をSMからINVに変化させ、■の応答とし
てMemory−13us Blにack信号を返す。
■ このaek信号によって5eache Slがその
状態をSCからEMDに変化させ、■の応答としてCa
che−Bus C1にack信号を返す。
■ この結果、f’cache Pitはその状態UN
OをEXCに変化させ、 ■ reachcFilは書き込み動作を行い、プロセ
ッサpHl:ack信号を返して、その動作を終了する
このように書き込み動作の場合でも、第2のキャッシュ
メモリ装置が6つの状態を取ることから、先の実施例と
は若干具なった動きにより、効率的なキャッシュ動作を
実行するものとなっている。
ところでこのように第2のキャッシュメモリ装置に6つ
の状態を設定してキャッシュ動作を制御するようにした
場合も、前述した実施例と同様に命令用のキャッシュを
独立に設けることが可能である。この場合、上述した実
施例装置がどのように変わるかについて説明する。
この場合、Memory−Bus上のIPCコマンドに
対する第2のキャッシュメモリ(5cache)の応答
が次のように変わる。
(a−1) E M Dに旧むしたとき;先ずcach
e信号をアサートしてMeIIloryが応答しないよ
うにする。
そしてその上のfcacheと内容が違うからCach
e−Busに111コマンドを送り、このエントリのデ
ータをfcaehcと一致させる。その後、Memor
y−Busにデータを返し、IFCコマンドに応答する
。そしてその状態をEMSに変化させ、ack信号を返
す。
(a−2) SMまたはEMSまたはECにhlt し
たとき;この場合には、先ずcache信号をアサート
してMemoryが応答しないようにする。その後、M
eIlory−Busにデータを返し、IFCコマンド
に応答する。この時には状態を変化させずに、ack信
号を返す。
(a−3) S Cに旧tしたとき;この場合には応答
せず、ack信号のみを返す。
(b) 1ssL、たとき;この場合にも命令に応答せ
ず、ack信号のみを返す。
このような命令用のキャッシュメモリを別個に設けた場
合、プロセッサからの命令に対してデータがどのように
ロードされるかについて、第14図を参照し、具体例を
挙げて説明する。
第14図(a)は第1のフェッチ動作例[retch例
1]を示すもので、次のように実行される。
■ プロセッサpHがfetch要求を出し、■ 1−
rcachc IPIIがtnissすると、■ IF
IIがCache−Bus C1にIPcコマンドを出
す。
■ このIPCコマンドに同じキャッシュにおけるfc
ache DFIIのEXCがhltすると、rcae
he PILはcache信号をアサートする。
■ するとI’cache Fllが■の応答としてd
ataをCache−Bus C1に返す。
■ この応答によってi−f’cache IFIIが
dataを読み込み、エントリに書き込む。そしてその
状態をVにする。
■ そしてI−f’cache IFIIはdataを
プロセッサpHに返し、その動作を終了する。
第14図(b)は第2のフェッチ動作例E f’etc
h例2]を示すものである。このフェッチ動作は次のよ
うに実行される。
■ プロセッサpHがfetch要求を出し、■ 1−
fcache IPIIにhitする。
■ この場合には、1−fcache IPIIが直接
的にdataをプロセッサpttに返し、その動作を終
了する。
これに対してt−rcacheがm1ssした場合には
、第14図(c)に第3のフェッチ動作例[fetch
例3〕を示すように、その実行動作が行われる。即ち、
■ プロセッサpHがf’etch要求を出し、■ 1
−fcache IPIIがm1ssすると、■ 1−
rcache IFIIはCache−Bus C1に
IFCコマンドを出す。
■ このIPCコマンドに対して1−scache I
SIがm1ssすると、 ■ 1−scache 181はIPcコマンドをMe
mory−BusBlに出す。
■ しかしてこのIFCコマンドに5eache 82
のENDが旧tすると、5cache 82はMemo
ry−Bus Blのcache信号をアサートし、 ■ 5cache 82はCache−Bus C2に
FVI コマンドを出す。
■ このpHll=:+マントを受けてreache 
P21のEXCがhitすると、rcache P21
は■の応答としてdataをCache−Bus C2
に返す。そしてCache−Bus C2のcache
信号をアサートし、その状態をUNOに変化させる。
■ この結果、5cache 82はCache−Bu
s C2のdataを読み込み、その状態をEMSに変
化させる。
[株] そして5cache S2は■の応答としてd
ataをMemory−Bus Blに返す。
■ すると1−scache IsIはMemory−
Bus Blからdataを読み込み、エントリに書き
込む。そしてその状態をVにする。
0 この状態で1−seache ISLは、■の応答
としてaataをCache−Bus C1に返し、@
  I−1’cache IFIIはCache−Bu
s C1のdataを読み込み、エントリに書き込む。
そしてその状態をVにし、 ■ I−1’cache IFIIはdataをプロセ
ッサpHに返す。これにより、その動作を終了する。
また第4のフェッチ動作例[retch例4]は、同様
にm1ssが生じた場合であり、第14図(d)に示す
ように動作する。この場合には、 ■ プロセッサPliがf’etch要求を出し、■ 
I−fcache IFII がm1ssL、■ 1−
1’cache IPIIがCache−Bus C1
にIPcコマンドを出す。
■ しかしてこのIFCコマンドに対して別のキャッシ
ュメモリfcache PI3のEXCがhitすると
、fcache PI3はcache信号をアサートす
る。
■ そして「cache PI3は■の応答としてaa
taをCache−Bus C1に返す。
■ この結果、1−fcache IPIIはdata
をCache−busから読み込み、エントリに書き込
む。そしてその状態をVにする。
■ モしてl−f’cache IFIIはdataを
プロセッサpHに返し、そのフェッチ動作を終了する。
このようなフェッチ動作により前述した各実施例と同様
に効率的なキャッシュ処理が行われる。
尚、本発明は上述した実施例に限定されるものではない
。例えばキャッシュバスに接続する第1のキャッシュメ
モリ装置の数や、キャッシュバスの数は仕様に応じて定
めれば良いものである。つまりミニ・クラスタ装置の数
は格別限定されないし、各ミニ・クラスタ装置に属する
キャッシュメモリ装置の数も限定されない。更には命令
用キャッシュを別個に設けたキャッシュと、別個に設け
ていないキャッシュとを混在させて階層キャッシュメそ
り装置を構築することも可能である。この場合には、命
令用キャッシュが別に設けられているか否かの情報を用
い、その処理制御を適宜切り替えるようにすれば良い。
その他、本発明はその要旨を逸脱しない範囲で種々変形
して実施することができる。
[発明の効果] 以上説明したように本発明によれば、キャッシュメモリ
を階層化し、プロセッサに対応して設けられた第1のキ
ャッシュメモリと、所定数毎にまとめられたミニ・クラ
スタ装置に対応して設けられた第2のキャッシュメモリ
との間で、これらのキャッシュメモリの状態に応じた処
理手続きを進めるので、データの高速アクセス有効率的
に行うことが可能となる。しかも階層化されたキャッシ
ュメモリ間でのコンシステンシ有効果的に保証して多重
プロセッサシステムに組み込むことが可能なので、従来
のキャッシュメモリ装置に比較して、その取扱いの簡易
化を図り、また処理速度の高速化を図ることができる等
の実用上多大なる効果かが奏せられる。
【図面の簡単な説明】
図は本発明に係る階層キャッシュメモリ装置とその制御
方式についての実施例を示すもので、第1図は第1の実
施例システムの全体的な概略構成図、第2図はキャッシ
ュメモリ装置に設定される4つの状態を模式的に示す図
、第3図は第1のキャッシュメモリ装置の構成例を示す
図、第4図はキャッシュされたアドレス情報に対する状
態情報の付属形態を示す図、第5図は第2のキャッシュ
メモリの構成例を示す図、第6図はメモリの構成例を示
す図、第7図は第1の実施例システムにおける動作例を
模式的に示す図である。 第8図は第2の実施例システムの全体的な概略構成図、
第9図はこの実施例における第1のキャッシュメモリ装
置の構成例を示す図、第10図はこの実施例における第
2のキャッシュメモリの構成例を示す図、第11図はこ
の第2の第1の実施例システムにおける動作例を模式的
に示す図である。 第12図は本発明の別の実施例においてキャッシュメモ
リ装置に設定される6つの状態を模式的に示す図、第1
3図は第3の実施例における動作例を模式的に示す図、
そして第14図は第4の実施例における動作例を模式的
に示す図である。 pH,PI3.〜Pln、P21.P22.〜P2m、
Pi1.Pi2.〜PiJ・・・プロセッサ、Fll、
PI2.〜Pln、F21.P22.〜P2m。 Fil、PI2.〜Flj・・・第1のキャッシュメモ
リ装置(1’cache) 、Sl、S2.〜Si・=
第2のキ+ ”/シュメモリ装置(scache) 、
C1,C2,〜CI−・・キャッシュバス(Cache
−Bus ;第1の接続装置) 、Bl・・・メモリバ
ス(Memory−Bus ;第2の接続装置) 、M
l、M2−・・メインメモリ (Memory) 、I
PII、 〜1Pln、1Fi1.〜IPiJ・・・第
1の命令用データキャッシュメモリ(i−fcache
) 、ISl、lS2−・・第2の命令用データキャッ
シュメモリ(1−scache)。 第3図 出願人代理人 弁理士 鈴江武彦 第4図 第5図 第6 図 第7図(a) 第7 図(b) 第7 図(C) 第7 図(d) 第7図(9) 第7図(h) 第7図(e)。 第7図(f) 第7図(ii 第7図(j) 第7図(k) 第7 図(1) 第9図 第10図 第11図(a) 第11 図(b) 第11図(C) 第11 図(d) 第12図 第11図(e) 第11図(f) 第13図(a) 第13図(b) 第13図(c) 第13図(d) 第13図(9) 第」3図(h) 第13図(e) 第13図(f) 第13図(i) 第13図(j) 第13図(k) 第13図(L) 第13図(0) 第13図(m) 第13図(n ’) 第14図(a) 第14図(b)

Claims (28)

    【特許請求の範囲】
  1. (1)複数のプロセッサおよびメモリ装置を含む多重プ
    ロセッサ・コンピュータ・システムに組み込まれる階層
    キャッシュメモリ装置であって、複数のプロセッサのそ
    れぞれに対応して設けられる複数の第1のキャッシュメ
    モリ装置と、これらの第1のキャッシュメモリ装置を複
    数個づつ相互に接続して複数のミニ・クラスタ装置をそ
    れぞれ構成する複数の第1の接続装置と、これらの各ミ
    ニ・クラスタ装置のそれぞれに対応して上記各第1の接
    続装置に接続して設けられ、上記各ミニ・クラスタ装置
    における前記複数の第1のキャッシュメモリ装置が持つ
    アドレス情報の全てのアドレス情報をそれぞれ持つ複数
    の第2のキャッシュメモリ装置と、これらの第2のキャ
    ッシュメモリ装置を相互に接続してクラスタ装置を構成
    する第2の接続装置とを備え、 この第2の接続装置に前記複数の第2のキャッシュメモ
    リ装置が持つアドレス情報の全てのアドレスを持つメモ
    リ装置を接続したことを特徴とする階層キャッシュメモ
    リ装置。
  2. (2)第1および第2のキャッシュメモリ装置は、複数
    のアドレス情報毎に該情報の状態を識別する為の状態識
    別手段をそれぞれ備えていることを特徴とする請求項(
    1)に記載の階層キャッシュメモリ装置。
  3. (3)状態識別手段は、その状態識別手段が対応するア
    ドレス情報が有効であるか無効であるかを示すものであ
    って、プロセッサにより情報が書き込まれるアドレスに
    等しいアドレス情報が当該プロセッサに対応する第1の
    キャッシュメモリ装置に存在し、且つそのアドレス情報
    に対応する状態識別手段の状態が有効である場合、 当該第1のキャッシュメモリ装置が接続されている第1
    の接続装置上に無効化要求を出力して、当該第1の接続
    装置に接続されている別の第1のキャッシュメモリ装置
    に存在するアドレス情報の中の、前記第1の接続装置上
    の無効化要求のアドレスに等しいアドレス情報に対応す
    る状態識別手段をそれぞれ無効状態にする手段と、 前記第1の接続装置上の無効化要求を第2のキャッシュ
    メモリ装置を介して第2の接続装置に伝達し、この無効
    化要求を伝達した第2のキャッシュメモリ装置とは別の
    第2のキャッシュメモリ装置に存在するアドレス情報の
    中の、上記第2の接続装置上に伝達された無効化要求の
    アドレスに等しいアドレス情報に対応する状態識別手段
    をそれぞれ無効状態にする手段と、 この状態識別手段が無効化された第2のキャッシュメモ
    リ装置に接続されている第1の接続装置上に前記無効化
    要求を伝達し、この無効化要求が伝達された第1の接続
    装置に接続されている第1のキャッシュメモリ装置に存
    在するアドレス情報の中の、前記第1の接続装置上の無
    効化要求のアドレスに等しいアドレス情報に対応する状
    態識別手段をそれぞれ無効状態にする手段とを備えたこ
    とを特徴とする請求項(2)に記載の階層キャッシュメ
    モリ装置。
  4. (4)第1のキャッシュメモリ装置に設けられる第1の
    状態識別手段は、当該第1の状態識別手段に対応したア
    ドレス情報が有効である時、このアドレス情報に関連す
    るデータを第2のキャッシュメモリ装置に対して書き戻
    す義務を有するか否かを識別する為の機能をそれぞれ備
    え、第2のキャッシュメモリ装置に設けられる第2の状
    態識別手段は、当該第2の状態識別手段に対応したアド
    レス情報が有効である時、このアドレス情報に関連する
    データをメモリ装置に対して書き戻す義務を有するか否
    かを識別する為の機能を備えており、プロセッサにより
    情報の書き込みが行われる第1のキャッシュメモリ装置
    の、上記書き込みが行われたアドレス情報に対応する第
    1の状態識別手段を書き戻し義務有りの状態に設定する
    手段と、この書き戻し義務有りの状態に設定された第1
    のキャッシュメモリ装置に接続されている第2のキャッ
    シュメモリ装置の、前記プロセッサによって書き込まれ
    たアドレスに等しいアドレス情報に対応する第2の状態
    識別手段を書き戻し義務有りの状態に設定する手段とを
    備えたことを特徴とする請求項(3)に記載の階層キャ
    ッシュメモリ装置の制御方式。
  5. (5)第1の状態識別手段は、当該第1の状態識別手段
    が有効で、且つ書き戻し義務を有する時、全ての第1の
    キャッシュメモリ装置と全ての第2のキャッシュメモリ
    装置の中で、当該第1のキャッシュメモリ装置とその第
    1のキャッシュメモリ装置に第1の接続装置を介して接
    続される第2のキャッシュメモリ装置のみがプロセッサ
    により書き込まれるデータについてのアドレス情報を排
    他的に持つか否かを識別する機能を備え、 第2の状態識別手段は、当該第2の状態識別手段が対応
    しているアドレス情報が有効で、且つ書き戻し義務を有
    する時、全ての第2のキャッシュメモリ装置の中で、当
    該第2のキャッシュメモリ装置のみが前記プロセッサに
    より書き込まれるデータについてのアドレス情報を排他
    的に持つか否かを識別する機能を備えており、 プロセッサによって情報が書き込まれた第1のキャッシ
    ュメモリ装置のアドレス情報に対応する第1の状態識別
    手段を排他状態に設定する手段と、この排他状態が設定
    された第1のキャッシュメモリ装置に第1の接続装置を
    介して接続されている第2のキャッシュメモリ装置にお
    ける、前記プロセッサによって書き込まれたアドレスに
    等しいアドレス情報に対応する第2の状態識別手段を排
    他状態に設定する手段とを備えたことを特徴とする請求
    項(4)に記載の階層キャッシュメモリ装置。
  6. (6)プロセッサが読出したアドレスに等しいアドレス
    情報が上記プロセッサに対応する第1のキャッシュメモ
    リ装置に存在し、且つそのアドレス情報に対応する第1
    の状態識別手段が有効状態である時、当該第1のキャッ
    シュメモリ装置における上記第1の状態識別手段の状態
    を維持し、且つこの第1のキャッシュメモリ装置に接続
    されている第1の接続装置に対する信号を伝達を行うこ
    となく、前記アドレス情報に対応するデータ情報を前記
    プロセッサに返すことを特徴とする請求項(3)に記載
    の階層キャッシュメモリ装置。
  7. (7)プロセッサが読出したアドレスに等しいアドレス
    情報が上記プロセッサに対応する第1のキャッシュメモ
    リ装置に存在しない時、または上記読出しアドレスに等
    しいアドレス情報に対応する第1の状態識別手段が無効
    状態である時、前記第1のキャッシュメモリ装置から第
    1の接続装置上に共有読出し要求を出す手段と、 この第1の接続装置上の共有読出し要求に対して、当該
    第1の接続装置に接続された別の第1のキャッシュメモ
    リ装置であって、上記共有読出しアドレスに等しいアド
    レス情報を持ち、そのアドレス情報に対応する第1の状
    態識別装置の状態が有効で、且つ書き戻し義務を有して
    いる第1のキャッシュメモリ装置から前記共有読出し要
    求を出した第1のキャッシュメモリ装置に対して該アド
    レス情報に対応するデータ情報を供給する手段と、この
    手段により第1のキャッシュメモリ装置間でデータ情報
    が供給されたことを識別する第1のキャッシュ間転送識
    別手段と、 この第1のキャッシュ間転送識別手段にて前記第1のキ
    ャッシュメモリ装置間でのデータ情報の供給が行われな
    いことが識別された時、前記共有読出し要求を出した第
    1のキャッシュメモリ装置に第1の接続装置を介して接
    続されている第2のキャッシュメモリ装置から前記読出
    し要求に対して応答する手段と、 この共有読出し要求に応答した第2のキャッシュメモリ
    装置に前記読出しアドレスに等しいアドレス情報が存在
    し、そのアドレス情報に対応する第2の状態識別装置が
    有効状態である時、この第2のキャッシュメモリ装置か
    ら前記共有読出し要求を出した第1のキャッシュメモリ
    装置に対して該アドレス情報に対応するデータ情報を供
    給する手段と、 前記共有読出し要求に応答する前記第2のキャッシュメ
    モリ装置に前記読出しアドレスに等しいアドレス情報が
    存在しない時、または前記読出しアドレスに等しいアド
    レス情報に対応する第2の状態識別手段が無効状態であ
    る時、当該第2のキャッシュメモリ装置から第2の接続
    装置上に共有読出し要求を出す手段と、 この第2の接続装置上の共有読出し要求に対し、前記第
    2の接続装置に接続された別の第2のキャッシュメモリ
    装置であって、上記共有読出し要求されたアドレスに等
    しいアドレス情報を有し、そのアドレス情報に対応する
    第2の状態識別手段の状態が有効であり、且つ書き戻し
    義務を有する第2のキャッシュメモリ装置から前記共有
    読出し要求を出した第2のキャッシュメモリ装置に対し
    て該アドレス情報に対応するデータ情報を供給する手段
    と、 この手段により第2のキャッシュメモリ装置間でデータ
    情報が供給されたことを識別する第2のキャッシュ間転
    送識別手段と、 この第2のキャッシュ間転送識別手段にて、前記第2の
    キャッシュメモリ装置間でのデータ情報の供給が行われ
    ないことが識別された時、前記共有読出し要求に対して
    メモリ装置から応答する手段とを備えたことを特徴とす
    る請求項(4)に記載の階層キャッシュメモリ装置。
  8. (8)第1の接続装置上の共有読出し要求に対してデー
    タ情報を供給した第1のキャッシュメモリ装置の、上記
    共有読出し要求アドレスに等しいアドレス情報に対応す
    る第1の状態識別装置の状態が有効で書き戻し義務を持
    ち、且つ排他状態である時、上記データ情報の供給に伴
    って上記第1の状態識別装置の排他状態を解除する手段
    を備えたことを特徴とする請求項(5)または(7)に
    記載の階層キャッシュメモリ装置。
  9. (9)第2の接続装置上の共有読出し要求に対してデー
    タ情報を供給した第2のキャッシュメモリ装置の、上記
    読出し要求アドレスに等しいアドレス情報に対応する第
    2の状態識別装置の状態が有効で書き戻し義務を持ち、
    且つ排他状態である時、上記データ情報の供給に伴って
    上記第2の状態識別装置の排他状態を解除する手段と、 共有読出し要求に対するデータ情報の供給を受けた第2
    のキャッシュメモリ装置から、この第2のキャッシュメ
    モリ装置が第1の接続装置を介して接続されている第1
    のキャッシュメモリ装置に対してデータ情報の吐出し要
    求を出す手段と、この吐出し要求のアドレスに等しいア
    ドレス情報を有し、該アドレス情報に対応する第1の状
    態識別装置の状態が有効でありかつ書き戻し義務を有す
    る第1のキャッシュメモリ装置に対して上記アドレス情
    報に対応するデータ情報を供給する手段と、 この吐き出し要求に応答してデータ情報を供給した前記
    第1のキャッシュメモリ装置の前記アドレス情報に対応
    する第1の状態識別手段における書き戻し義務有りの状
    態を解除する手段とを備えたことを特徴とする請求項(
    8)に記載の階層キャッシュメモリ装置。
  10. (10)第1のキャッシュメモリ装置は、アドレス情報
    を記憶する領域を確保する為に他のアドレス情報を追い
    出す際、この追い出されるアドレス情報に対応する第1
    の状態識別手段が書き戻し義務状態である時、このアド
    レス情報に対応するデータ情報を第2のキャッシュメモ
    リ装置に書き戻す手段を備え、 第2のキャッシュメモリ装置は、アドレス情報を記憶す
    る領域を確保する為の他のアドレス情報を追い出す際、
    この追い出されるアドレス情報に対応する第2の状態識
    別手段が書き戻し義務状態である時、このアドレス情報
    に対応するデータ情報をメモリ装置に書き戻す手段を備
    えることを特徴とする請求項(4)に記載の階層キャッ
    シュメモリ装置。
  11. (11)プロセッサによって書き込まれるアドレスに等
    しいアドレス情報が上記プロセッサに対応する第1のキ
    ャッシュメモリ装置に存在しない時、または上記アドレ
    スに等しいアドレス情報に対応する第1の状態識別手段
    が無効状態である時、当該第1のキャッシュメモリ装置
    に接続されている第1の接続装置上に独占読出し要求を
    出す手段と、この第1の接続装置上の独占読出し要求に
    対して、当該第1の接続装置に接続された別の第1のキ
    ャッシュメモリ装置であって、上記独占読出し要求のア
    ドレスに等しいアドレス情報を持ち、そのアドレス情報
    に対応する第1の状態識別装置の状態が有効で、且つ書
    き戻し義務を有する第1のキャッシュメモリ装置から前
    記独占読出し要求を出した第1のキャッシュメモリ装置
    に対して該アドレス情報に対応するデータ情報を供給す
    る手段と、 この手段により第1のキャッシュメモリ装置間でデータ
    情報が供給されたことを識別する第1のキャッシュ間転
    送識別手段と、 前記第1の接続装置上の独占読出し要求に対し、当該第
    1の接続装置に接続された別の第1のキャッシュメモリ
    装置の中の、前記要求されたアドレスに等しいアドレス
    情報に対応する第1の状態識別手段の状態が有効である
    第1のキャッシュメモリ装置における該アドレス情報に
    対応する状態識別手段を無効状態に設定する手段と、 前記第1のキャッシュ間転送識別手段にて前記第1のキ
    ャッシュメモリ装置間でのデータ情報の供給が行われな
    いことが識別された時、前記独占読出し要求を出した第
    1のキャッシュメモリ装置に第1の接続装置を介して接
    続されている第2のキャッシュメモリ装置から前記独占
    読出し要求に応答する手段と、 この独占読出し要求に応答した第2のキャッシュメモリ
    装置に前記読出しアドレスに等しいアドレス情報が存在
    し、当該アドレス情報に対応する第2の状態識別手段が
    有効状態である時、この第2のキャッシュメモリ装置か
    ら前記独占読出し要求を出した第1のキャッシュメモリ
    装置に対して該アドレス情報に対応するデータ情報を供
    給する手段と、この手段によってデータ情報を供給する
    第2のキャッシュメモリ装置から第2の接続装置上に向
    こうか要求を出す手段と、 前記独占読出し要求に応答した前記第2のキャッシュメ
    モリ装置に読出されたアドレスに等しいアドレス情報が
    存在しない時、または前記読出しアドレスに等しいアド
    レス情報に対応する第2の状態識別装置が無効状態であ
    る時、当該第2のキャッシュメモリ装置から第2の接続
    装置上に独占読出し要求を出す手段と、 この第2の接続装置上の独占読出し要求に対し、当該第
    2の接続装置に接続された別の第2のキャッシュメモリ
    装置であって、上記独占読出し要求されたアドレスに等
    しいアドレス情報を有し、該アドレス情報に対応する第
    2の状態識別手段の状態が有効で、且つ書き戻し義務を
    有する第2のキャッシュメモリ装置から前記独占読出し
    要求を出した第2のキャッシュメモリ装置に対して該ア
    ドレス情報に対応するデータ情報を供給する手段と、こ
    の第2の接続装置上の独占読出し要求に対して前記第2
    のキャッシュメモリ装置間でデータ情報が供給されたこ
    とを識別する第2のキャッシュ間転送識別手段と、 前記独占読出し要求に対してこの第2の接続装置に接続
    された別の第2のキャッシュメモリ装置の中の、前記独
    占読出し要求されたアドレスに等しいアドレス情報に対
    応する第2の状態識別手段の状態が有効である第2のキ
    ャッシュメモリ装置における該アドレス情報に対応する
    第2の状態識別手段を無効状態に設定する手段と、この
    手段によって無効化された第2のキャッシュメモリ装置
    から該第2のキャッシュメモリ装置に接続されている第
    1の接続装置のそれぞれの上に無効化要求を出す手段と
    、 前記第2のキャッシュ間転送識別手段にて前記独占読出
    し要求に対する第2のキャッシュメモリ装置間でのデー
    タ情報の供給が行われないことが識別された時、前記独
    占読出し要求に対してメモリ装置から応答する手段を備
    えたことを特徴とする請求項(4)に記載の階層キャッ
    シュメモリ装置。
  12. (12)第2の接続装置上の独占読出し要求のアドレス
    に等しいアドレス情報を有し、該アドレス情報に対応す
    る第2の状態識別手段の状態が有効で書き戻し義務を有
    し、且つ排他状態である別の第2のキャッシュメモリ装
    置が前記独占読出し要求に対して応答するとき、 データ情報を供給する第2のキャッシュメモリ装置から
    当該第2のキャッシュメモリ装置に第1の接続装置を介
    して接続されている第1のキャッシュメモリ装置に対し
    て無効化吐出し要求を出す手段と、 この無効化吐出し要求のアドレスに等しいアドレス情報
    を有する第1のキャッシュメモリ装置であって、上記ア
    ドレス情報に対応する第1の状態識別手段の状態が有効
    で、且つ書き戻し義務を有する第1のキャッシュメモリ
    装置から上記無効化吐出し要求されたデータ情報を供給
    する手段と、この無効化吐き出し要求のアドレスに等し
    いアドレス情報を有する前記第1のキャッシュメモリ装
    置のアドレス情報に対応する第1の状態識別手段を無効
    状態に設定する手段とを備えたことを特徴とする請求項
    (5)または(11)に記載の階層キャッシュメモリ装
    置。
  13. (13)プロセッサによってリード・モディファイ・ラ
    イトされるアドレスに等しいアドレス情報が上記プロセ
    ッサに対応する第1のキャッシュメモリ装置に存在し、
    該アドレス情報に対応する第1の状態識別手段が有効状
    態である時、該第1のキャッシュメモリ装置は、第1の
    接続装置上に無効化要求を出した後に前記プロセッサか
    ら要求されたアドレスのデータ情報を前記プロセッサに
    供給し、このデータ情報がプロセッサにて変更された後
    に前記第1のキャッシュメモリ装置に書込む制御手段と
    、 プロセッサによってリード・モディファイ・ライトされ
    るアドレスに等しいアドレス情報が第1のキャッシュメ
    モリ装置に存在しない時、または当該アドレスに等しい
    アドレス情報に対応する第1の状態識別手段が無効状態
    である時、該第1のキャッシュメモリ装置から第1の接
    続装置上に独占読出し要求を出すことで別の第1のキャ
    ッシュメモリ装置または第2のキャッシュメモリ装置か
    ら前記プロセッサが要求しているアドレスのデータ情報
    を得、このデータ情報を前記プロセッサに供給して該プ
    ロセッサにて変更された後、当該第1のキャッシュメモ
    リ装置に書き込む制御手段とを備えたことを特徴とする
    請求項(12)に記載の階層キャッシュメモリ装置の制
    御方式。
  14. (14)第1のキャッシュメモリ装置は、第1のデータ
    ・キャッシュメモリ装置と第1の命令キャッシュメモリ
    装置とを独立に備え、第2のキャッシュメモリ装置は、
    第2のデータ・キャッシュメモリ装置と第2の命令キャ
    ッシュメモリ装置とを独立に備えることを特徴とする請
    求項(1)に記載の階層キャッシュメモリ装置。
  15. (15)請求項(14)に記載の階層キャッシュメモリ
    装置において、 第1および第2のデータ・キャッシュメモリ装置は各ア
    ドレス情報毎に該情報が有効であるか無効であるか、書
    き戻し義務を有するか否か、および排他的にアドレス情
    報を持つか否かを識別するデータキャッシュ状態識別手
    段をそれぞれ備えると共に、第1および第2の命令キャ
    ッシュメモリ装置は各アドレス情報毎に該情報が有効で
    あるか無効であるかを識別する命令キャッシュ状態識別
    手段をそれぞれ備え、 プロセッサによって命令が読出されるアドレスに等しい
    アドレス情報が前記第1のキャッシュメモリ装置におけ
    る第1の命令キャッシュメモリ装置に存在し、該アドレ
    ス情報に対応する命令キャッシュ状態識別手段が有効状
    態である時、前記プロセッサの命令読出し要求に対して
    前記第1の命令キャッシュメモリ装置から命令情報を供
    給する手段と、 前記プロセッサによって命令が読出されるアドレスに等
    しいアドレス情報が前記第1の命令キャッシュメモリ装
    置に存在しない時、または第1の命令キャッシュメモリ
    装置の上記アドレスに等しいアドレス情報に対応する命
    令キャッシュ状態識別手段が無効状態である場合、前記
    プロセッサの命令読出し要求に対して前記第1の命令キ
    ャッシュメモリ装置から第1の接続装置上に命令読出し
    要求を出す手段と、 この第1の接続装置上の命令読出し要求に対し、当該第
    1の接続装置に接続された別の第1のキャッシュメモリ
    装置またはその第1のキャッシュメモリ装置内の第1の
    データ・キャッシュメモリ装置であって、要求されたア
    ドレスに等しいアドレス情報を持ち、そのアドレス情報
    に対応するデータキャッシュ状態識別手段の状態が有効
    で、且つ書き戻し義務を有する第1のデータ・キャッシ
    ュメモリ装置から前記アドレス情報に対応する命令情報
    を供給する手段と、 この手段により命令情報を供給した第1のキャッシュメ
    モリ装置またはこの第1のキャッシュメモリ装置に含ま
    れる第1のデータ・キャッシュメモリ装置から前記プロ
    セッサが読出しを行った第1の命令キャッシュメモリ装
    置に対してデータが供給されたことを識別する第1のキ
    ャッシュ間転送識別手段と、 この第1のキャッシュ間転送識別手段にて前記第1のキ
    ャッシュメモリ装置間での命令情報の供給が行われてい
    ないことが識別されたとき、前記プロセッサによって読
    出された第1のキャッシュメモリ装置に第1の接続装置
    を介して接続されている、第2のキャッシュメモリ装置
    内の第2の命令キャッシュメモリ装置から前記命令読出
    し要求に応答する手段と、 この命令読出し要求に応答した第2の命令キャッシュメ
    モリ装置に前記読出し要求されたアドレスに等しいアド
    レス情報が存在し、該アドレス情報に対応する命令キャ
    ッシュ状態識別手段が有効状態である時、当該第2の命
    令キャッシュメモリ装置から前記アドレス情報に対応す
    る命令情報を供給する手段と、 前記命令読出し要求に応答した第2のキャッシュメモリ
    装置に前記読出し要求されたアドレスに等しいアドレス
    情報が存在しない時、または上記アドレスに等しいアド
    レス情報に対応する第2の命令キャッシュメモリ装置に
    おける命令キャッシュ状態識別手段が無効状態である時
    、当該第2の命令キャッシュメモリ装置から第2の接続
    装置上に命令読出し要求を出す手段と、 この第2の接続装置上の命令読出し要求に対して、別の
    第2のキャッシュメモリ装置またはその第2のキャッシ
    ュメモリ装置内の第2のデータキャッシュメモリ装置で
    あって、前記読出し要求されたアドレスに等しいアドレ
    ス情報を持ち、該アドレス情報に対応するデータキャッ
    シュ状態識別手段の状態が有効で、且つ書き戻し義務を
    有する第2のデータ・キャッシュメモリ装置から前記命
    令読出し要求を出した第2の命令キャッシュメモリ装置
    に対して前記アドレス情報に対応する命令情報を供給す
    る手段と、 この手段により命令情報を供給した第2のキャッシュメ
    モリ装置またはこの第2のキャッシュメモリ装置に含ま
    れる第2のデータ、キャッシュメモリ装置からデータが
    供給されたことを識別する第2のキャッシュ間転送識別
    手段と、 この第2のキャッシュ間転送識別手段にて前記第2のキ
    ャッシュメモリ装置間または第2のデータ・キャッシュ
    メモリ装置間での命令情報の供給が行われないことが識
    別された時、前記命令読出し要求に対してメモリ装置か
    ら応答する手段とを備えたことを特徴とする請求項(1
    4)に記載の階層キャッシュメモリ装置。
  16. (16)プロセッサによって書き込まれる第1のキャッ
    シュメモリ装置が含まれるミニ・クラスタ装置とは別の
    ミニ・クラスタ装置に接続される第2のキャッシュメモ
    リ装置であって、 当該第2のキャッシュメモリ装置に前記プロセッサによ
    って書き込まれるアドレスと等しいアドレス情報が存在
    しない時、または上記アドレスに等しいアドレス情報に
    対応する第2の状態識別手段が無効状態である時、 前記書き込みによって第2の接続装置上に出される無効
    化要求を、当該第2のキャッシュメモリ装置が接続され
    ている第1の接続装置上に伝達しないことを特徴とする
    請求項(3)に記載の階層キャッシュメモリ装置の制御
    方式。
  17. (17)プロセッサにより書き込まれるアドレスに等し
    いアドレス情報が上記プロセッサに対応する第1のキャ
    ッシュメモリ装置に存在し、該アドレス情報に対応する
    状態識別手段が有効状態で書き戻し義務を有し、且つ排
    他状態である時、該アドレス情報に対応するデータ情報
    に前記プロセッサが要求したデータを書き込み、前記状
    態識別状態の状態をそのまま維持し、且つ第1の接続装
    置に対して信号を伝達しないことでコンシステンシを保
    つことを特徴とする請求項(5)に記載の階層キャッシ
    ュメモリ装置の制御方式。
  18. (18)第1のキャッシュメモリ装置は、アドレス情報
    を記憶する領域を確保する為に追い出したアドレス情報
    に対応する状態識別手段が書き戻し義務有りの状態で有
    り、上記アドレス情報に対応するデータ情報を第2のキ
    ャッシュメモリ装置に書き戻す時、該第2のキャッシュ
    メモリ装置の前記アドレス情報に対応する状態識別手段
    の排他状態を解除する手段を備え、 第2のキャッシュメモリ装置は、前記第1の接続装置上
    の共有読出し要求のアドレスに等しいアドレス情報に対
    応する状態識別手段が有効状態で書き戻し義務を有し、
    且つ排他状態である時、前記共有読出し要求に対して応
    答しない手段を備え、第1のキャッシュ間転送識別手段
    を用いることなく共有読出し要求に対する応答を制御し
    てそのコンシステンシを保つことを特徴とする請求項(
    5)または(7)に記載の階層キャッシュメモリ装置の
    制御方式。
  19. (19)第1のキャッシュメモリ装置は、アドレス情報
    を記憶する領域を確保する為に追い出したアドレス情報
    に対応する状態識別手段が書き戻し義務有りの状態で有
    り、上記アドレス情報に対応するデータ情報を第2のキ
    ャッシュメモリ装置に書き戻す時、該第2のキャッシュ
    メモリ装置の該アドレス情報に対応する第2の状態識別
    手段の排他状態を解除する手段を備え、 第2のキャッシュメモリ装置は、前記第1の接続装置上
    の独占読出し要求のアドレスに等しいアドレス情報に対
    応する状態識別手段が有効状態で書き戻し義務を有し、
    且つ排他状態である時、前記独占読出し要求に対して応
    答しない手段を備え、第1のキャッシュ間転送識別手段
    を用いることなく独占読出し要求に対する応答を制御し
    てそのコンシステンシを保つことを特徴とする請求項(
    5)または(11)に記載の階層キャッシュメモリ装置
    の制御方式。
  20. (20)プロセッサによってリード・モディファイ・ラ
    イトされるアドレスに等しいアドレス情報が上記プロセ
    ッサに対応する第1のキャッシュメモリ装置に存在し、
    該アドレス情報に対応する第1の状態識別手段が有効状
    態で書き戻し義務を持ち、且つ排他状態である時、該ア
    ドレス情報に対応するデータ情報を前記プロセッサに供
    給し、このデータ情報がプロセッサによって変更された
    後に該第1のキャッシュメモリ装置に書き込み、前記第
    1の状態識別手段の状態をそのまま維持して前記第1の
    接続装置に対しては信号を伝達しないことでそのコンシ
    ステンシを保つことを特徴とする請求項(13)に記載
    の階層キャッシュメモリ装置の制御方式。
  21. (21)第2のキャッシュメモリ装置は、第2の状態識
    別手段にて示されるアドレス情報が有効で書き戻し義務
    を持ち、且つ排他状態である時、当該アドレス情報に関
    連するデータ情報が該第2のキャッシュメモリ装置が第
    1の接続装置を介して接続されている第1のキャッシュ
    メモリ装置の対応するデータ情報と不一致であるか否か
    を識別する手段を備え、 前記プロセッサによって書き込まれた第1のキャッシュ
    メモリ装置に第1の接続装置を介して接続されて第2の
    キャッシュメモリ装置に存在するアドレス情報の、前記
    プロセッサによって書き込まれたアドレスに等しいアド
    レス情報に対応する第2の状態識別手段を書き戻し義務
    があり、且つ排他的で不一致である状態にすることを特
    徴とする請求項(5)に記載の階層キャッシュメモリ装
    置。
  22. (22)第2の接続装置上の共有読出し要求に対し、こ
    の第2の接続装置に接続された別の第2のキャッシュメ
    モリ装置の中の、上記共有読出し要求されたアドレスに
    等しいアドレス情報に対応する第2の状態識別手段が有
    効状態である第2のキャッシュメモリ装置が存在するこ
    とを識別する第2のキャッシュメモリ共有識別手段と、 この第2のキャッシュメモリ共有識別手段により別の第
    2のキャッシュメモリ装置が有効なアドレス情報を持つ
    ことを識別した時、前記共有読出し要求を行った第2の
    キャッシュメモリ装置の当該アドレス情報に対応する第
    2の状態識別手段の状態を有効で書き戻し義務がなく、
    且つ排他的でない状態に設定する手段と、 前記第2のキャッシュメモリ共有識別手段が別の第2の
    キャッシュメモリ装置に有効なアドレス情報がないこと
    を識別した時、前記共有読出し要求を行った第2のキャ
    ッシュメモリ装置の当該アドレス情報に対応する第2の
    状態識別手段の状態を有効で書き戻し義務がなく、且つ
    排他的である状態に設定する手段とを備えたことを特徴
    とする請求項(21)に記載の階層キャッシュメモリ装
    置。
  23. (23)第2の接続装置上の共有読出し要求に対し、要
    求されたアドレスに等しいアドレス情報に対応する第2
    の状態識別手段の状態が有効で、書き戻し義務があり、
    且つ排他的で不一致である第2のキャッシュメモリ装置
    が第1のキャッシュメモリ装置に対して吐出し要求を行
    ったとき、 この吐出し要求のアドレスに等しいアドレス情報を有し
    、該アドレス情報に対応する第1の状態識別手段の状態
    が有効であり、且つ書き戻し義務を有する第1のキャッ
    シュメモリ装置から上記吐出し要求されたアドレス情報
    に対応するデータ情報を供給する手段と、 この吐出し要求に応答してデータ情報を供給した第1の
    キャッシュメモリ装置の当該アドレス情報に対応する第
    1の状態識別手段における書き戻し義務有りの状態を解
    除する手段と、 上記データ情報の吐出し動作が完了した後、吐出し要求
    を行った第2のキャッシュメモリ装置の該当アドレス情
    報に対応する第2の状態識別手段の不一致状態を解除す
    る手段を備えたことを特徴とする請求項(7)または(
    22)に記載の階層キャッシュメモリ装置。
  24. (24)第2の接続装置上の独占読み出し要求に対して
    第2のキャッシュメモリ装置が応答し、当該第2のキャ
    ッシュメモリ装置の上記アドレス情報に対応する第2の
    状態識別手段が無効状態に設定され、且つ前記第2の状
    態識別手段が不一致状態である場合には、前記第2のキ
    ャッシュメモリ装置が第1の接続装置を介して接続され
    ている第1のキャッシュメモリ装置に対して無効化吐き
    出し要求を行う手段を備えたことを特徴とする請求項(
    11)または(21)に記載の記載の階層キャッシュメ
    モリ装置。
  25. (25)第1のキャッシュメモリ装置は、アドレス情報
    を記憶する領域を確保する為に追い出したアドレス情報
    に対応する状態識別手段が書き戻し義務有りの状態であ
    り、上記アドレス情報に対応するデータ情報を第2のキ
    ャッシュメモリ装置に書き戻す時、該第2のキャッシュ
    メモリ装置の該アドレス情報に対応する第2の状態識別
    手段の不一致状態を解除する手段を備え、 第2のキャッシュメモリ装置は、前記第1の接続装置上
    の共有読出し要求のアドレスに等しいアドレス情報に対
    応する第2の状態識別装置が有効状態で書き戻し義務を
    有し、且つ排他的で不一致状態である場合に、前記共有
    読み出し要求に対して応答しない手段を備え、 第1のキャッシュ間転送識別手段を用いることなく共有
    読出し要求に対する応答を制御してそのコンシステンシ
    を保つことを特徴とする請求項(7)または(22)に
    記載の階層キャッシュメモリ装置の制御方式。
  26. (26)第1のキャッシュメモリ装置は、アドレス情報
    を記憶する領域を確保する為に追い出したアドレス情報
    に対応する状態識別手段が有効で書き戻し義務有りの状
    態であり、上記アドレス情報に対応するデータ情報を第
    2のキャッシュメモリ装置に書き戻す時、該第2のキャ
    ッシュメモリ装置の該アドレス情報に対応する第2の状
    態識別装置の不一致状態を解除する手段を備え、 第2のキャッシュメモリ装置は、前記第1の接続装置上
    の独占読出し要求のアドレスに等しいアドレス情報に対
    応する第2の状態識別手段が有効状態で書き戻し義務を
    有し、且つ排他的で不一致状態である場合、前記独占読
    み出し要求に対して応答しない手段を備え、 第1のキャッシュ間転送識別手段を用いることなく独占
    読出し要求に対する応答を制御してそのコンシステンシ
    を保つことを特徴とする請求項(11)または(21)
    に記載の階層キャッシュメモリ装置の制御方式。
  27. (27)プロセッサによって書き込まれる第1のキャッ
    シュメモリ装置に第1の接続装置を介して接続されてい
    る第2のキャッシュメモリ装置における上記書き込みア
    ドレスに等しいアドレス情報に対応する第2の状態識別
    手段の状態が排他的である時、 前記第1の接続装置上の無効化要求を第2の接続装置に
    伝達しないことでそのコンシステンシを保つことを特徴
    とする請求項(11)または(21)に記載の階層キャ
    ッシュメモリ装置の制御方式。
  28. (28)プロセッサによって書き込まれる第1のキャッ
    シュメモリ装置に第1の接続装置を介して接続されてい
    る第2のキャッシュメモリ装置における上記書き込みア
    ドレスに等しいアドレス情報に対応する第2の状態識別
    手段の状態が排他的である時、 前記第1の接続装置上の独占読出し要求によって無効化
    要求を第2の接続装置に出さないことでそのコンシステ
    ンシを保つことを特徴とする請求項(11)または(2
    1)に記載の階層キャッシュメモリ装置の制御方式。
JP1073876A 1989-03-28 1989-03-28 階層キャッシュメモリ装置とその制御方式 Pending JPH02253356A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP1073876A JPH02253356A (ja) 1989-03-28 1989-03-28 階層キャッシュメモリ装置とその制御方式
US07/501,256 US5241641A (en) 1989-03-28 1990-03-28 Hierarchical cache memory apparatus
EP19900303315 EP0390538A3 (en) 1989-03-28 1990-03-28 Hierarchical cache memory apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1073876A JPH02253356A (ja) 1989-03-28 1989-03-28 階層キャッシュメモリ装置とその制御方式

Publications (1)

Publication Number Publication Date
JPH02253356A true JPH02253356A (ja) 1990-10-12

Family

ID=13530838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1073876A Pending JPH02253356A (ja) 1989-03-28 1989-03-28 階層キャッシュメモリ装置とその制御方式

Country Status (3)

Country Link
US (1) US5241641A (ja)
EP (1) EP0390538A3 (ja)
JP (1) JPH02253356A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
JPH04337854A (ja) * 1991-05-15 1992-11-25 Mitsubishi Electric Corp データ処理装置
JPH04347749A (ja) * 1991-05-24 1992-12-02 Nec Corp 情報処理装置
JPH07152646A (ja) * 1993-07-15 1995-06-16 Bull Sa 記憶階層レベル間での交換のコヒーレンシー管理方法
JPH07152648A (ja) * 1993-10-05 1995-06-16 Kofu Nippon Denki Kk 階層バッファメモリ装置
JP2005148771A (ja) * 2002-06-28 2005-06-09 Sun Microsyst Inc コンピュータ・システム内でキャッシュ整合性を維持するためのメカニズム
JP2010002986A (ja) * 2008-06-18 2010-01-07 Nec Corp 再構成可能電子回路装置

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
JPH04328657A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5359723A (en) * 1991-12-16 1994-10-25 Intel Corporation Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
FR2707777B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Ensemble informatique à mémoire partagée.
FR2707776B1 (fr) 1993-07-15 1995-08-18 Bull Sa Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé.
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
US5809525A (en) * 1993-09-17 1998-09-15 International Business Machines Corporation Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories
DE4423559A1 (de) * 1993-11-09 1995-05-11 Hewlett Packard Co Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher
US5572704A (en) * 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5420991A (en) * 1994-01-04 1995-05-30 Intel Corporation Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
US5832303A (en) * 1994-08-22 1998-11-03 Hitachi, Ltd. Large scale interconnecting switch using communication controller groups with multiple input-to-one output signal lines and adaptable crossbar unit using plurality of selectors
WO1996013779A1 (fr) * 1994-10-31 1996-05-09 Nkk Corporation Systeme de multiprocesseur
US5752264A (en) * 1995-03-31 1998-05-12 International Business Machines Corporation Computer architecture incorporating processor clusters and hierarchical cache memories
US5623632A (en) * 1995-05-17 1997-04-22 International Business Machines Corporation System and method for improving multilevel cache performance in a multiprocessing system
DE69629331T2 (de) * 1995-06-02 2004-02-12 Sun Microsystems, Inc., Mountain View System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US5813034A (en) * 1996-01-25 1998-09-22 Unisys Corporation Method and circuitry for modifying data words in a multi-level distributed data processing system
US6021466A (en) * 1996-03-14 2000-02-01 Compaq Computer Corporation Transferring data between caches in a multiple processor environment
US5835946A (en) * 1996-04-18 1998-11-10 International Business Machines Corporation High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations
JP3269967B2 (ja) * 1996-04-24 2002-04-02 株式会社日立製作所 キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム
US5835908A (en) * 1996-11-19 1998-11-10 Microsoft Corporation Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US5860093A (en) * 1997-01-21 1999-01-12 Unisys Corporation Reduced instruction processor/storage controller interface
US5987577A (en) * 1997-04-24 1999-11-16 International Business Machines Dual word enable method and apparatus for memory arrays
US7027836B2 (en) * 2002-09-10 2006-04-11 Eastman Kodak Company Method and system for establishing a communication network
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
JP5300407B2 (ja) 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP2011198091A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US9135172B2 (en) * 2012-08-02 2015-09-15 Qualcomm Incorporated Cache data migration in a multicore processing system
KR20140075370A (ko) * 2012-12-11 2014-06-19 한국전자통신연구원 계층적 캐시 구조를 가지는 멀티코어 프로세서
US9734069B2 (en) * 2014-12-11 2017-08-15 Intel Corporation Multicast tree-based data distribution in distributed shared cache
US10740116B2 (en) * 2015-09-01 2020-08-11 International Business Machines Corporation Three-dimensional chip-based regular expression scanner

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
JPH04337854A (ja) * 1991-05-15 1992-11-25 Mitsubishi Electric Corp データ処理装置
JPH04347749A (ja) * 1991-05-24 1992-12-02 Nec Corp 情報処理装置
JPH07152646A (ja) * 1993-07-15 1995-06-16 Bull Sa 記憶階層レベル間での交換のコヒーレンシー管理方法
JPH07152648A (ja) * 1993-10-05 1995-06-16 Kofu Nippon Denki Kk 階層バッファメモリ装置
JP2005148771A (ja) * 2002-06-28 2005-06-09 Sun Microsyst Inc コンピュータ・システム内でキャッシュ整合性を維持するためのメカニズム
JP2010002986A (ja) * 2008-06-18 2010-01-07 Nec Corp 再構成可能電子回路装置

Also Published As

Publication number Publication date
EP0390538A3 (en) 1992-05-27
US5241641A (en) 1993-08-31
EP0390538A2 (en) 1990-10-03

Similar Documents

Publication Publication Date Title
JPH02253356A (ja) 階層キャッシュメモリ装置とその制御方式
US7657710B2 (en) Cache coherence protocol with write-only permission
US9372808B2 (en) Deadlock-avoiding coherent system on chip interconnect
JP3269967B2 (ja) キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム
TW508575B (en) CLFLUSH micro-architectural implementation method and system
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
WO2015057846A1 (en) Computer processor employing cache memory with pre-byte valid bits
JPH036757A (ja) ライトバツクデータキヤツシユメモリ装置
US6871267B2 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
CN100419715C (zh) 嵌入式处理器系统及其数据操作方法
TW201011537A (en) Apparatus and method for ensuring data coherency within a cache memory hierarchy of a microprocessor
US20070005899A1 (en) Processing multicore evictions in a CMP multiprocessor
US20060064518A1 (en) Method and system for managing cache injection in a multiprocessor system
JP2006252358A (ja) ディスクアレイ装置及びその共有メモリ装置、ディスクアレイ装置の制御プログラム及び制御方法
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US6412047B2 (en) Coherency protocol
JP5319049B2 (ja) キャッシュシステム
JPH0748197B2 (ja) データ・バスを確保する方法
JP2006079218A (ja) メモリ制御装置及び制御方法
JPH09128346A (ja) 階層バスシステム
JP3320562B2 (ja) キャッシュメモリを有する電子計算機
US5361368A (en) Cross interrogate synchronization mechanism including logic means and delay register
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
JPH06282528A (ja) データ転送方法及びそのシステム