JPH03121548A - ライトバツクキヤツシユと主メモリとの間の無矛盾化を維持するデータバススヌープ制御方法 - Google Patents

ライトバツクキヤツシユと主メモリとの間の無矛盾化を維持するデータバススヌープ制御方法

Info

Publication number
JPH03121548A
JPH03121548A JP2122789A JP12278990A JPH03121548A JP H03121548 A JPH03121548 A JP H03121548A JP 2122789 A JP2122789 A JP 2122789A JP 12278990 A JP12278990 A JP 12278990A JP H03121548 A JPH03121548 A JP H03121548A
Authority
JP
Japan
Prior art keywords
cache
data
memory
write
data bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2122789A
Other languages
English (en)
Inventor
Jr William B Ledbetter
ウイリアム・ビー・レドベツター・ジユニア
Russell A Reininger
ラツセル・エイ・レイニンガー
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH03121548A publication Critical patent/JPH03121548A/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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)

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

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は゛ライトバック°(’wr 1te−back
’ )キャッシュ(cache)に関するものであり、
さらに特定すると、メモリアクセス中の゛ライトバック
キャッシュにおける矛盾化(不一致)(inconsi
stent)データを代替データバスマスターによって
処理するためのライトバックキャッシュと主メモリとの
間の無矛盾化を維持するデータバススヌープ制御方法に
関するものである。
〔従来の技術〕
キャッシュメモリの構成方式はコンピュータ設計者によ
ってよく用いられておりCPUによる主メモリへのアク
セスタイムを減少し、それゆえシステム性能を向上する
ものである。多くの計算システムにおいて、主メモリは
プロセッサ速度に比べて速度が遅い、大容量アレイのメ
モリ装置(デバイス)から構成されている。主メモリへ
のアクセス期間中に、プロセッサはより動作速度の遅い
メモリ装置(デバイス)に適合させるために、追加の待
ち状態(wait 5tates)を挿入させられる。
メモリアクセス期間中のシステム性能はキャッシュによ
り向上し促進され得る。主メモリよりもサイズが小さく
しかも著しく速いキャッシュはプロセッサによってしば
しば使用されるデータ及びインストラクション(命令)
コードのための速いローカル記憶器(fast 1oc
al storage)を提供する。キャッシュを有す
る計算システムにおいて、プロセッサによるメモリ動作
は最初にキャッシュと情報交換する。より遅い主メモリ
はメモリ動作がキャッシュで完了できないときにのみプ
ロセッサによってアクセスされる。一般に、プロセッサ
はキャッシュによりそのメモリ動作の大部分を満足する
高い確率を有する。キャッシュを用いる計算システムに
おいてその結果として、プロセッサと比較的遅い主メモ
リとの間の実効的なメモリアクセスタイムを減少するこ
とができる。
キャッシュは多数の異なる特徴に従って高度に最適化さ
れる。キャッシュの性能及び設計複雑度に影響を与える
1つの重要な特徴はプロセッサあるいは代替バスマスタ
ー(bus master)による書込みの操作取扱い
である。データあるいはインストラクション(命令)コ
ードの特定なものの2つのコピー、主メモリ内に1つ、
キャッシュに写し、が存在し得るので、主メモリもしく
はキャッシュへの書込みは結果として2つの記憶システ
ムの間の矛盾化(不一致)(1ncoherency)
となり得る。例えば、特定のデータがキャッシュと主メ
モリとの両方における所定のアドレスにストアされてい
る。所定のアドレスへのプロセッサ書込み期間中に、プ
ロセッサはまずそのデータのためのキャッシュの内容を
チエツクする。キャッシュにおけるそのデータを見つけ
た後、プロセッサは新しいデータを所定のアドレスにお
いてキャッシュに書込みに行く。結果として、データが
主メモリ内ではなくキャッシュ内において修飾(mod
ify)され、それゆえ、キャッシュ及び主メモリが矛
盾化(不一致)(incoherent)となる。同様
にして、他の代替バスマスターを有するシステムにおい
て、代替バスマスターによる主メモリへの直接メモリア
クセス(Direct Memory Access)
(DMA)書込みがキャッシュではなく主メモリにおい
てデータを修飾する。
もう−度、キャッシュと主メモリが矛盾化(不一致)(
1ncoherent )となる。
プロセッサ書込み中のキャッシュと主メモリとの間の矛
盾化(Incoherency)は2つの技術を用いて
処理できる。第1の技術において、゛ライトスルー’ 
(’write−through’ )キャッシュはプ
ロセッサ書込み期間中にキャッシュと主メモリとの両方
に書込むことによってキャッシュと主メモリとの間の無
矛盾化(一致性)を保証する。キャッシュと主メモリの
内容は必ず同一であり、そのために2つの記憶システム
は必ず無矛盾化(一致)(co*herent)する。
第2の技術において、 ゛ライトバック゛(write
−back’ )キャッシュはキャッシュのみに書込み
、プロセッサによって変更されたキャッシュエントリを
指定する゛ダーティ′(不一致、 dirty)ビット
をセットすることによってプロセッサ書込みを処理する
。゛ダーティ′(不一致、dirty)もしくは変更さ
れたキャッシュがあとでリプレイス(replace)
される時、修飾されたデータは主メモリ(記憶)にライ
トバックされる。
どのキャッシュアーキテクチャが実行されるかに依存し
て、DMA読出し動作中のキャッシュと主メモリ(記憶
)との間の矛盾化は、オペレーティングシステムによっ
て実行されるインストラクション(命令)、或いはそれ
らの組み合わせによって、バスウォッチ(bus wa
tch)もしくは°スヌーピング′(監視、 snoo
ping)技術とともに処理され得る。
゛ライトスルー’ (write−through)キ
ャッシュにおいて、特別な技術はDMA動作期間中に何
も必要とされない。“ライトバック’ (write−
back)キャッシュにおいて、パススヌーピング(監
視)は変更されたデータに対してキャッシュの内容をチ
エツクするために用いられ、無矛盾化を維持することが
適当である時に、キャッシュからリクエスト中(req
uest ing)のバスマスターへデータを供給(s
ource)する。キャッシュがリクエスト中のバスマ
スターへデータを供給している時には、主メモリ(記憶
)はリクエスト(要求)中のバスマスターにデータを供
給することを禁止される。代りに、オペレーティングシ
ステムはDMA読出し動作の前にキャッシュから主メモ
リ(記憶)に“ダーティ°(不一致)データを書込む、
WRI RTEインストラクション(命令)を実行可能
である。すべての°ダーティ゛(不一致)データは主メ
モリに書込まれ、それによってキャッシュと主メモリと
の間の無矛盾化(一致性)を確保する。
DMA書込み動作期間中には同様にして、キャッシュと
主メモリとの間の矛盾化は、オペレーティングシステム
によって実行される゛スヌーピングあるいはモニタリン
グ(監視)命令もしくはそれらの組み合わせによって処
理可能である。゛ライトスルー゛キャッシュ及び゛ライ
トバック°キャッシュにおいて、パススヌーピング(監
視)はDMA書込み動作の後で主メモリと“ステイル°
(stale)もしくは矛盾化となるキャッシュエント
リを無効化する。さらに加えて、キャッシュのPUSH
及びINVAL I DATEインストラクションが、
DMA書込み動作の前にオペレーティングシステムによ
って実行され、WRITE’ダーティ゛もしくは変更さ
れたデータを主メモリに書き出し、全キャッシュの内容
を無効化可能である。データの単一コピーのみがインス
トラクションの後に主メモリ内に存在するので、主メモ
リへのDMA書込みは、キャッシュ内のデータはおよそ
“ステイル”(矛盾化)となる問題を提出しない。
仮想メモリシステムにおいて、データは、異なるロジカ
ルページ上で分離し独自のデータが主メモリとディスク
との間で転送される、ページアウト/ページインシーケ
ンス期間中に、メモリと、ディスクのような不揮発性記
憶デバイスとの間でしばしば転送される。ページアウト
シーケンス期間中には、データがメモリから転送されデ
ィスク上にストアされるが、一方ページインシーケンス
期間中には、データがディスクから転送されメモリ内に
ストアされる。例えば、ページアウト/ページインシー
ケンスはコンチクスト(context)スイッチ中も
しくは拡張データ操作中(manipulation)
に起り得る。
数多くの方法が、代替バスマスターによって起動される
ページアウト/ページインシーケンス期間中のライトバ
ックキャッシュと主メモリとの間の無矛盾化)(一致性
)を保証するために存在する。第1の既知の方法におい
て、バスはページアウト動作もしくはページイン動作の
いづれの期間中にもスヌーブ(監視)されない。代りに
、オペレーティングシステムはページアウト動作の前に
PUSH及びl NVAL I DATEインストラク
ションを実行する。前述の議論のとおり、Pu5)lイ
ンストラクション(命令)は、ライトバックキャッシュ
に待機のページアウト動作のアクセスし得る゛ダーティ
゛(不一致)データを求めてすべてのキャッシュエント
リをサーチ(search)させ、これらのエントリを
主メモリにコピーし戻させる(コピーバックさせる)。
l NVAL I DATEインストラクションはペー
ジ転送によってアクセス可能なライトバックキャッシュ
内におけるデータを無効(invalid)としてマー
クする。メモリからディスクへのDMAページ転送は2
つのインストラクションの実行後に行われ、ページイン
動作に対応するディスクからメモリへの第2のDMA転
送が後に続く。ライトバックキャッシュがキャッシュP
USHインストラクション(命令)に続いて主メモリ(
記憶)と無矛盾となるので、スヌープ(監視)は、DM
Aページアウト動作期間中には必要とされない。同様に
、ページ転送に対応するキャッシュエントリは無効とマ
ークされており、そのために主メモリ(記憶)の新ペー
ジとステイル゛(stale)もしくは矛盾化となるこ
とからスヌービングは、DMAページイン動作中には必
要とされない。
ページアウト/ページインシーケンス期間中のキャッシ
ュの無矛盾化(一致性)を維持する第1の既知の技法は
実行することが簡単であるけれども、その技法は数多く
の欠点を表現する。もっとも重大な点は、プロセッサが
、゛ダーティ′(不一致)キャッシュエントリをサーチ
してキャッシュ内をシーケンスし、必要とされるキャッ
シュのPu5)I及びINVALIDATEインストラ
クション(命令)の実行期間中に、大量の時間を消費す
る点である。インストラクション(命令)の期間中には
、プロセッサは別のタスクもしくはプロセスを実行でき
ないためこの時間は失なわれる。さらに加えて、プロセ
ッサは変更されたキャッシュエントリを主メモリにライ
トバックするために遅い主メモリ(記憶)とさらにイン
タフェースしなければならない。
ページアウト/ページインシーケンス中のキャッシュの
無矛盾化を確保するための第2の既知の技法においては
、バスはメモリからディスクへのページ転送中のみスヌ
ーブ(監視)され、゛ダーティ°(不一致)データが、
無矛盾化(一致性)を維持するのに適当な時にライトバ
ックキャッシュからリクエスト中のバスマスターへ供給
される。ダーティ(不一致)データはページアウト動作
のあとにキャッシュの中に変更されないままでいる。ペ
ージ転送が完了されると、ディスクからメモリへのデー
タの待機中のDMAページ転送を起動する前に、オペレ
ーティングシステムはキャッシュのINVAL I D
ATEインストラクション(命令)を実行する。
l NVAL I DATEインストラクションは実質
的に第1の既知の技法と同じ理由のために実行され、ラ
イトバックキャッシュ内のデータがページイン動作中に
主メモリと “ステイル’ (stale)もしくは矛
盾することを防止する。
ページアウト/ページインシーケンス中のキャッシュの
無矛盾化を確保するための第3の既知の技法においては
、データバスはメモリからディスクへのページ転送及び
ディスクからメモリへのページ転送の両方の期間中にス
ヌーズ(監視)される。第2の既知の技法と実質的に同
じ理由のために、゛ダーティ°(不一致)データはペー
ジアウト動作期間中に無矛盾化を確保することが適当で
ある時に、ライトバックキャッシュからリクエスト(要
求)中のバスマスターへ供給される。データバスはさら
に加えてページイン動作中にスヌーズ(監視)され、キ
ャッシュエントリは無効とされ(invalidate
d)データが主メモリと矛盾化となることシュの無矛盾
化を確保するための第2及び第3の技法は第1の技法よ
りも良い性能をもたらすけれども、それにもかかわらず
、これら第2及び第3の技法はいくつかの欠陥を有する
。第2の技法はすべてのキャッシュエントリ中をシーケ
ンスするのに過度に大量な時間を必要とし得る、オペレ
ーティングシステムのI NVAL I DATEイン
ストラクション(命令)を未だに使用している。第3の
技法はINVAL I DATEインストラクションの
必要とされる実行を軽減するためにページインシーケン
ス期間中にスヌーズ(監視)することによって第2の技
法を改善する。この事実にもかかわらず、ライトバック
キャッシュにおける各々の゛ダーティ′(不一致)デー
タ位置は第3の既知の方法においては2度もアクセスさ
れなければならない、すなわち、1回目は“ダーティ°
 もしくは変更されたデータをリクエスト中のバスマス
ターへ供給するためにページアウト動作中にアクセスさ
れ、2回目は“ステイル゛ もしくは矛盾化するデータ
を無効とするためにページイン動作中にアクセスされる
。全体のシステム性能はライトバックキャッシュへのア
クセス数が最小とされ得るならば増強され向上される。
〔発明が解決しようとする課題〕
従って、本発明の目的の1つはユニプロセッサ、即ち単
一キャッシュ計算システムにおいてキャッシュの無矛盾
化(一致性)を維持するための改善されたデータバス制
御方法を提供することである。
本発明の別の目的の1つはユニプロセッサ、即ち単一キ
ャッシュ計算システム、とマルチプロセッサ、即ち多重
キャッシュ計算システム、との両方においてキャッシュ
の無矛盾化(一致性)を維持するための改善された方法
を提供することである。
本発明のさらに別の目的はページアウト/ページインデ
ータ転送シーケンス中にデータ処理システム内において
ライトバックキャッシュと主メモリとの間の無矛盾化(
一致性)を維持するための改善された機構を提供するこ
とである。
〔課題を解決するための手段〕
本発明の上記及び他の目的の履行において、ひとつもし
くはそれ以上の代替データバスマスターによって用いら
れるデータバススヌープコントローラ(制御器)を実行
するための方法とシステムが、1つの形式において提供
されている。データの無矛盾化(coherency)
あるいは統一性(uniformity)はその両者と
もにデータバスに結合されたキャッシュと主メモリとの
間で維持されている。データはデータバスを介してキャ
ッシュと主メモリとの間で通信される。パススヌープコ
ントローラ(制御器)はキャッシュ内の所定のキャッシ
ュエントリ内にストアされたデータに対する転送リクエ
スト(要求)に応答して、データバス転送期間中にデー
タバスがスヌーズ(監視)もしくはモニターされるプロ
セッサ状態を実現することによつて実行される。そのプ
ロセッサの状態の期間中において、パススヌープコント
ローラ(制御器)がひとつもしくはそれ以上の代替バス
マスターによって起動される読出し動作を検知し、所定
のキャッシュエントリが事前のプロセッサ動作によって
変更されているならば、データは、リクエストに応答し
て所定のキャッシュ再ントリから供給される。所定キャ
ッシュエントリは、パススヌープコントローラ(制御器
)が代替バスマスターによって起動される読出し動作を
検知し、所定のキャッシュエントリが事前のプロセッサ
動作によって変ark)される。
これらと他の目的、特徴、及び利点は、付随する図面と
関連させた以下の詳細な説明からもつと明確に理解され
るであろう。
〔概 要〕
代替バスマスターによるメモリアクセス期間中にライト
バックキャッシュと主記憶(メモリ)との間の無矛盾化
を維持するためのパススヌープ制御方法。その方法と装
置は、メモリ読出し動作期間中に、ライトバックキャッ
シュから代替バスマスターへ゛ダーティ°(不一致)も
しくは変更されたデータを供給し、かつ同時にライトバ
ックキャッシュからの“ダーティ′(不一致)もしくは
変更されたデータを無効化するオプションを組み入れて
いる。その方法は、代替バスマスターによって起動され
るページアウト/ページインシーケンス中のキャッシュ
と主メモリとの間の無矛盾化を維持するために必要とさ
れるキャッシュアクセス数を最小とし、それによってシ
ステム性能を向上する〔実施例〕 第1図に図示されているのは計算システム10の望まし
い実施例のブロック図であり、中央演算処理装置(CP
U)12、データキャッシュコントローラ(制御器)1
4、ライトバックキャッシュ16、内部データバス18
、バスインタフェースユニット20、バッファ22、シ
ステムデータバス24、主記憶(メモリ)26 、DM
A(直接メモリアクセス)ユニット28、及びディスク
30から成る。
計算システムlOは代替バスマスターによって起動され
たページイン/ページアウトシーケンス期間中に、シス
テム性能を改善するために本発明を利用する典型的なユ
ニプロセッサ(un 1−processor)、即ち
単一キャッシュ及びその周辺を図示している。図示され
た形式において、CPU12は所定のインストラクショ
ンセットを実行するデータ実行ユニットである。データ
キャッシュコントローラ(制御器[4はCPU12とバ
スインタフェースユニット20に接続され、その結果と
してバスインタフェースユニット20とCPU12との
間にさらに詳しく図示された制御信号を送る。データキ
ャッシュコントローラ(制御器)14もまたライトバッ
クキャッシュ16に接続され、ライトバックキャッシュ
16、CPUI 2、及びバスインタフェースユニット
の間のデータ転送を管理する。データキャッシュコント
ローラ(制御器)14及びバスインタフェースユニット
20はシステムデータバス24のデータバス“スヌーピ
ング°(監視)を支援L、CPU12がバスマスターで
ない時にシステムデータバス24をモニター(監視)す
ることによってライトバックキャッシュ16と主メモリ
26との間の無矛盾化を維持する。ライトバックキャッ
シュ16はデータキャッシュコントローラ(制御器)1
4、バッファ22、及び内部データバス18に接続され
ている。データキャッシュコントローラ(制御器)14
はライトバックキャッシュ16を読出し、書込み、アッ
プデート化しくupdate)、無効化しく 1nva
lidate)、及びフラッシュ(flush)するた
めに必要な論理回路を含む。特筆すべきことは望ましい
形式においてCPU12、データキャッシュコントロー
ラ(制御器)14、及びライトバックキャッシュ16は
計算システム性能内において可能な最大保持性能を提供
するために同時に動作するということである。
システムデータバス24はシステムの主たるデ−タバス
であり、所定のビット幅(bit width)を有す
る。主メモリ26は所定のサイズの物理的メモリであり
かつシステムバス24に結合されている。DMAユニッ
ト28はシステムバス24の代替データバスマスターと
して機能しシステムバス24とディスク30との間のデ
ータ転送を管理する。ディスク30はDMAユニット2
8に接続された恒久的データ貯蔵システム(perma
nent data storage system)
を表わす。
更に加えて、内部データバス18はライトバックキャッ
シュ16、バッファ22及びCPU12(7)間でデー
タを通信する。バスインタフェースユニット20は“ア
ドレス”(“Address”)とラベル付けされたア
ドレスバス、 データ“じData”)とラベル付けさ
れたデータバス、及び“制御“(“Contor。
■“)とラベル付けされた制御バスを介してシステムデ
ータバス24に結合されている。バスインタフェースユ
ニット20はシステムデータバスコントローラ(制御器
)であり、システムデータバス24とCPU12、デー
タキャッシュコントローラ(制御器)14、及びライト
バックキャッシュ16の各々との間のインタフェースを
管理する。バッファ22は、ライトバックキャッシュ1
6とバスインタフェースユニット20との間のデータ転
送中の中間データ貯蔵のためのデータバッファである。
バッファ22は、本発明の重要な特徴を実行可能にする
。DMAユニット28のような代替バスマスターがライ
トバックキャッシュ16のデータの読出し動作をリクエ
スト(要求)するならば、データは貯蔵のためにバッフ
ァ22へ転送される。
代替バスマスターによってリクエスト(要求)されたす
べてのデータが、サイズに関係なく、バッファ22ヘロ
ードされ、計算システムlOが次に述べるような“無効
とマークする”じMark Invalid”)状態に
ある時にのみ、データはライトバックキャッシュI6内
でINVALID(無効)とマークされ、同時にバスイ
ンタフェースユニット20及びシステムバス24を介し
てDMAユニット28に結合される。データは読出され
修飾されると仮定し自動的にI NVAL I Dとマ
ークされる。それゆえに、読み出されたデータ値はもは
やライトバックキャッシュ16内においては有効(va
lid)ではない。注意すべき点は、データがDMAユ
ニット28に結合されているのに対して、ライトバック
キャッシュ16は他の処理のためにCPU12との利用
にあてられ得る点である。
DMAユニット28がシステムデータバス24のバスマ
スター性(bus mastership)を仮定しデ
ータを要求する時は、DMAユニット28によって必要
とされるデータは主メモリ26か、もしくはCPU12
、データキャッシュコントローラ(制御器)14、ライ
トバックキャッシュ16、バッファ22、バスインタフ
ェースユニット20かう成るプロセッサのライトバック
キャッシュ16のいずれかから読出される。主記憶(メ
モリ)26あるいはライトバックキャッシュ16の内の
1つだけがデータを供給し、どのメモリがデータを供給
するかを決めるのはCPLII2等から成るプロセッサ
である。CPU12等から成るプロセッサから主メモリ
2Gへシステムバス24上で結合されるメモリ禁止制御
信号(図示されていない)は、主メモリ26がDMAユ
ニット28のメモリ読出しリクエスト(要求)に応答す
ることを禁止する。DMAユニット28リクエストがシ
ステムデータバス24のデータを読出す時に、CPU1
2等から成るプロセッサはライトバックキャッシュ16
内を内部的に見ることによってスヌープ(監視)し、主
メモリ26は禁止されているが、ライトバックキャッシ
ュ16内にデータが存在するかどうかを決定する。読出
されるべきデータがキャッシュ“ヒツト”じhit”)
によって明白とされるように、ライトバックキャッシュ
16内に存在するならば、読出しデータはバッファ22
の中ヘデータを結合しかつ前述の如くライトバックキャ
ッシュ16内のデータを無効化することによって供給さ
れている。読出しデータがライトバックキャッシュ16
内に存在しないならば、キャッシュ“ミス”(“m1s
s”)により明白とされるように、主メモリ26はメモ
リ禁止制御信号を介して開放されDMAユニット28に
応答し読出しデータを提供する。
1つの形式においては、ライトバックキャッシュ16は
所定のデータ貯蔵能力を有する4ウエイ(four−w
ay)、セットアソシアティブ(set−associ
ative)ライトバックキャッシュとして組織され得
る。ライトバックキャッシュ16の各々のラインに関連
させてアドレスタグ(tag)及び状態情報が存在する
。アドレスタグは各ライトバックキャッシュ16のエン
トリに対応する主メモリ26内の物理的アドレスを示す
。状態情報はVALID(有効)ビットとDIRTY(
不一致)ビットから成り、4つの可能な状態まで許容す
る。十分に理解されるべきことは、4つの可能な状態の
いかなる組合せ、或いは全部がエンコードされ用いられ
得るということである。図示された形式では、VALI
D(有効)ビットは所定のキャッシュラインが有効なキ
ャッシュ′データを含むかどうかを指示するが、一方D
IRTY(不一致)ビットは各キャッシュラインの書込
み状態を同定する。INVALID(無効)状態におい
て、適当なるライトバックキャッシュ16のエントリ内
にはデータが存在しない。VALID(有効)状態にお
いては、ライトバックキャッシュ16のエントリは主メ
モリ26と無矛盾化するデータを含む。
DIRTV(不一致)状態において、ライトバックキャ
ッシュ16のエントリは主メモリ26と矛盾化する有効
データ(valid)を含む。典型的には、D I R
TY(不一致)状態は、ライトバックキャッシュ16の
エントリが書込み動作によって変更される時に起こる。
第2図に図示するのは、CPU12、ライトバックキャ
ッシュ16、バッファ22、バスインタフェースユニッ
ト20及びシステムバス24と機能するためのデータキ
ャッシュコントローラ(制御器)14の実施例をさらに
詳しく図示するブロック図である。第1図及び第2図の
照合の都合のために、第2図において重複する第1図に
おいて図示された各回路部分は同じ番号が付されている
CPU12の仮想アドレス出力はアドレス翻訳キャッシ
ュ40の入力に接続されている。所定の物理的アドレス
を提供するアドレス翻訳キャッシュ40の出力はマルチ
プレクサ42の第1の入力に接続されている。また所定
の物理的アドレスを与えるバスインタフェース回路20
の第1の出力はマルチプレクサ42の第2の入力に接続
されている。マルチプレクサ42の1つの出力は比較器
46の第1の入力に接続されている。ライトバックキャ
ッシュ16はCPU12のデータ人力/出力端子とバッ
ファ22の第1のデータ人力/出力端子とを接続する内
部データバス18を第1の入力/出力端子に接続させる
。ライトバックキャッシュ16はさらにキャッシュタグ
48を含む。ライトバック16の入力端子及びキャッシ
ュタグ48の入力は各々マルチプレクサ42の出力に接
続されている。キャッシュタグ48の出力は比較器46
の入力に接続されている。比較器46の出力は“ヒツト
あるいはミス”(“hit or m1ss”)信号を
提供ししかもキャッシュ制御ロジック50の第1の入力
に接続されている。バスインタフェースユニット20の
第2の出力は“スヌープルックアップリクエスト”じ5
noop 1ook−up request’)信号を
提供するためにキャッシュ制御ロジック50の第2の入
力に接続されている。データルックアップリクエスト信
号は選択的にCPU12によって提供され、キャッシュ
制御ロジック50の第3の入力に接続されている。キャ
ッシュ制御ロジック5oの制御出力はバスインタフェー
スユニット20の制御入力に接続されている。バスイン
タフェースユニット20の第3の出力はバッファ22の
制御入力に接続されている。バッファ22の第2のデー
タ人力/出力端子はバスインタフェースユニット20の
データ入力/′出力端子に接続されている。
バスインタフェースユニット20の第3の出カババッフ
ァ22の制御入力に接続されている。詳細には示されて
いない制御信号はデータキャッシュ制御ロジック50か
ら、キャッシュタグ48及びマルチプレクサ42に接続
されており、説明されたようなシステム動作を実施して
いる。
−船釣に、CPU12がメモリ検索(memory r
etrieval)を必要とするデータをリクエストす
ると、CPU12は主メモリ26を禁止し、アドレス翻
訳キャッシュ40に対して仮想アドレスを提供し、ライ
トバックキャッシュ16及びキャッシュタグ48への物
理的アドレスを提供し、比較器46に対して仮想アドレ
スの一部分を提供する。データルックアップリクエスト
信号はCPU12によってデータキャッシュ制御ロジッ
ク50へ与えられる。データキャッシュ制御ロジック5
0は次の動作を実行するための制御信号を提供する。キ
ャッシュタグ48はライトバックキャッシュ16内のデ
ータについての現在の状態情報を提供するデータのタグ
部分もしくはフィールド(field)を含む。
キャッシュタグ48にある状態情報はアドレス翻訳キャ
ッシュ40によって受信される仮想アドレスの一部分に
よってアドレスされ得る。状態情報はVALID(有効
)、INVALID(無効)、DIRTY(不一致)デ
ータのような情報を含む。この現在の状態情報はアドレ
ス翻訳キャッシュ40によって提供されるデータのタグ
部分と比較される。もしもタグ状態のデータが符(整)
合し、かつ特定のキャッシュエントリがVALID(有
効)かあるいはD I RTY (不一致)かいずれか
であるならば、“ヒツト”(hit”)が表示されデー
タキャッシュ制御ロジック5oはライトバックキャッシ
ュ16に内部データバス16及びCPU12へのアドレ
スされたデータを提供するこの部分の動作は従来のもの
である。
スヌープ動作を行なうために、バスインタフェースユニ
ット20はデータキャッシュ制御ロジック50をリクエ
ストし、CPU12からよりもむしろDMAユニット2
8のような代替バスマスターからの読出しリクエストに
関連させてスヌーブルックアップを実行する。再び、バ
スインタフェースユニット20は主メモリ26がリクエ
スト(要求)された読出しデータを提供することを初期
的に禁止する。バスインタフェースユニット2oはライ
トバックキャッシュ16及びキャッシュタグ48に対し
てマルチプレクサ42を介してデータの物理的アドレス
を提供し比較器46に対して仮想アドレスの一部分を提
供する。キャッシュタグ48はバスインタフェースユニ
ット2oによって提供された物理的アドレスにおいてラ
イトバックキャッシュ16内のデータのタグ部分を提供
する。比較器46は用意されたアドレスのタグ部分とス
トアされたアドレスとを比較する。“ミス”(”m1s
s”)が示されると、データキャッシュ制御ロジックは
、メモリ禁止信号を主メモリ26に対してリリースする
、バスインタフェースユニット20へ信号を送り、その
結果として主メモリはDMAユニット28へデータを提
供できるようになる。しかしながら、“ヒツト”(“b
it”)が示されると、データキャッシュ制御ロジック
50はライトバックキャッシュ16内にあるデータを内
部データバスに結合されるようにし、バッファ22内に
ストアされるようにする。バッファ22からは、データ
はバスインタフェースユニット20によって与えられた
制御信号に応答してバスインタフェースユニット20及
びシステムデータバス24を介してDMAユニット28
に結合されている。
メモリ書込みもしくは読出し動作のいずれかの期間中で
、ライトバックキャッシュ16は上記のようにタグフィ
ールドと比べられるアドレス翻訳キャッシュ40からの
物理的アドレスによってアクセスされる。しかしながら
、もしもメモリアクセスが書込み動作であるならば、デ
ータはライトバックキャッシュ16の適当なるキャッシ
ュエントリに書込まれる。
第1図のDMAユニット28のような代替バスマスター
によるメモリアクセスの期間中に、バスインタフェース
ユニット20及びデータキャッシュコントローラ(制御
器)14はキャッシュの無矛盾化を確保するためにシス
テムデータバス24をモニタ(すなわちパススヌーピン
グ)する機構を具備する。データキャッシュコントロー
ラ(制御器)14は一般的にアドレス翻訳キャッシュ4
0、マルチプレクサ42、比較器46、キャッシュタグ
48、及びキャッシュ制御ロジック50として第2図と
互いに関係されていてもよい。データキャッシュコント
ローラ(制御器)14及びバス制御器である、バスイン
タフェースユニット20はシステム10内にあるスヌー
プ機構を実行するために集合的に機能する。データキャ
ッシュコントローラ(制御器)14はシステムデータバ
ス24上の活動ヲ全く感知せず、バスインタフェースユ
ニット20はライトバックキャッシュ16の動作を全く
感知しない。DMAユニット28がバスインタフェース
ユニット20を認識するシステムデータバス24上にて
活動しようとすると、バスインタフェースユニット20
はライトバックキャッシュ16にデータを求めなければ
ならない。同様に、ライトバックキャッシュ16はバス
インタフェースユニット20との相互作用を除いてDM
Aユニット28によるデータバスアクセスを感知しない
。CPu12及びDMAユニット28の両方ともバスイ
ンタフェースユニット20を介してライトバックキャッ
シュ16をアクセスしなければならないので、バスイン
タフェースユニット20はCPU12に対して優先権を
与えられる。このようにして、パススヌーピング(監視
)はそのパススヌービング動作持続中はCPU12によ
るメモリアクセスを除外する。図示された形式では、代
替バスマスターDMAユニット28は、バスインタフェ
ースユニット20によって検知され得る、システムデー
タバス2シユの無矛盾化を維持するためにとられる行動
を決定する。ある1つの形式では、スヌープモード状態
はバスインタフェースユニット20に対して結合され第
3図の表に示されるようにエンコードされたスヌープ制
御信号の2つのビットSCO及びSCIと共にシステム
データバス24上で断定され得る。スヌープ制御信号は
システムデータバス24及びバスインタフェースユニッ
ト20に対して結合された制御データバスを介してDM
Aユニット28からのデータキャッシュ制御ロジック5
0に結合されている。
第3図の表は代替バスマスターによるメモリアクセスを
支援し、かつキャッシュの無矛盾化を確保するキャッシ
ュ無矛盾化プロトコル(cache consiste
ncy protocol)を要約している。第3図に
図示されるように、両方のスヌープ制御ビットの論理低
(low)値によってエンコードされた“スヌープイン
ヒビッド(snoop−inhibit’ )状態にお
いて、データパススヌーピングが禁止される。スヌープ
制御ビットSCIに対して論理低値及びスヌープ制御ビ
ットSCO上において論理高(high)値を与えるこ
とによってエンコード(復号化)された“リーブダーテ
ィ°(’1eave dirty’ )スヌーブ状態に
おいて、パススヌーピングはイネーブルされるが、DI
RTY(不一致)キャッシュエントリはDIRTY(不
一致)状態のままで残されている。メモリ動作がVAL
ID(有効)状態にあるキャッシュエントリの読出しリ
クエストであるならば、キャッシュエントリ状態を変更
するためのいかなる行動もとられない。キャッシュエン
トリが上記のようにキャッシュから読出されるか無視さ
れるかのどちらかであってもよいが、その場合に主メモ
リ26はデータを得るためにアドレスされている。メモ
リ動作がDIRTV(不一致)状態にあるキャッシュエ
ントリに対する読出しリクエスト(要求)であるならば
、データは無矛盾化を維持するために上記のようにキャ
ッシュエントリから供給される。もしもメモリ動作がキ
ャッシュエントリへの書込みリクエストであるならば、
キャッシュレジスタタグ48内のキャッシュエントリは
INVALID(無効)の状態に置かれる。
留意すべきことは、クリーンラインデータ(clean
line data)がキャッシュによって提供されな
い第1及び第2の状態はコントローラ(制御器)に対し
て結合された単一ビットスヌーブインヒビット(Sl)
信号とともに先に実施されているという点である。
スヌープ制御ビットSCOに論理高値でスヌープ制御ピ
ッ) SCIに論理低値でエンコード(符号化)された
°マーククリーン’ (’mark clean’ )
(一致をマークする)状態において、パススヌーピング
はイネーブルにされダーティキャッシュエントリはキャ
ッシュタグ48において、クリーン(一致)もしくはV
ALID(有効)とマークされる。メモリ動作がVAL
ID(有効)状態にあるキャッシュエントリの読出しリ
クエスト(要求)であるならば、キャッシュエントリ状
態を変更するいかなる行動もとられない。データは上記
のようにキャッシュから読出&九るか主メモリ26から
読出されるかのどちらかが可能である。メモリ動作がD
IRTY(不一致)状態におけるキャッシュエントリに
対する読出しリクエストであるならば、データは無矛盾
化を維持するためにキャッシュから供給され、キャッシ
ュエントリの状態は変更され、かつVALID(有効)
とマークされる。このスヌープ状態にあるキャッシュエ
ントリへの書込み要求は自動的にデータキャッシュ制御
ロジック50にキャッシュエントリをINVALID(
無効)とマークさせる。゛マーククリーン°(一致をマ
ークする)(’mark−clean’ )状態はDM
Aページアウト動作にキャッシュエントリをクリーン(
一致)もしくはVALID(有効)とマークし同時にキ
ャッシュエントリからディスクへデータを書出すことを
許す。これは、DMAページイン動作の前に先行技術に
おいて同じページに対して必要とされた高価なPUSH
インストラクション(命令)を不要とする。さらに、′
マーククリーン′(一致をマークする) (’mark
−clean’ )オプションは多重バスマスター及び
1つのライトバックキャッシュを有する計算システムが
主メモリをアップデート(update)することを許
す。特に、キャッシュからのダーティ(不一致)データ
は、ダーティ(不一致)データが代替バスマスターへ供
給される一方で、主メモリへ同定されコピーされ得る。
システム性能は、キャッシュの無矛盾化を維持するため
に必要とされるPUSHインストラクション(命令)の
数が減る傾向にあり、それにより使用可能な許容バスバ
ンド幅が増加することから向上可能である。この向上さ
れたシステム性能は増大された外部主メモリ制御回路を
必要とすることがあり得る。主メモリ26と接続した追
加の外部制御回路は、ダーティ(不一致)データが代替
バスマスターへ供給される一方で、メモリアップデート
(memory updates)を許容するのに必要
とされ得る。主メモリ26はデータがシステムデータバ
ス24上で転送されるレート(rate)でデータをと
らえることができねばならない。一般に、この転送レー
トはメモリスピードではなくプロセッサスピードで決定
される。
両方のスヌープ制御ビットに論理高値で示される゛マー
クインバリッド’(’mark 1nvaled’)状
態において、パススヌーピングはDMAユニット28に
よってイネーブルされダーティキャッシュエントリの状
態が修飾されI NVAL I Dとマークされる。
もしもメモリ動作がキャッシュエントリに対する読出し
リクエストであるならば、キャッシュエントリはINV
ALID(無効)状態に置かれる。もしもメモリ動作が
DIRTY(不一致)状態にあるキャッシュエントリに
対する読出しリクエストであるならば、データは無矛盾
化を維持するためにキャッシュエントリから供給され、
しかもキャッシュエントリは同時にI NVAL I 
Dとマークされる。メモリ動作がVAL I Dもしく
はクリーン(一致)状態にあるキャッシュエントリに対
する読出しリクエストであるならば、データは設計上の
選択に従って、キャッシュエントリからDMAユニット
28へ供給されてもあるいはされなくてもよい。さらに
、キャッシュエントリへの書込みリクエストはエントリ
の状態に関係な(、キャッシュエントリを無効化(in
validates)する。’?−クインバリツド°(
’mark−invalid’ )状態は、後述の通り
、DMAページイン動作中にユニプロセッサシステム内
のパススヌーピングを不要とする。
゛マークインバリッド’ (’mark−invali
d’ )状態は多重キャッシュで計算システムに対する
限定された支持(support)を加える。分離した
個々のキャッシュ間の共有されたデータとのキャッシュ
の無矛盾化は重複のキャッシュエントリのひとつだけを
VALID(有効)状態に受入れることによって維持さ
れ得る。残りのキャッシュエントリはI NVAL I
 D(無効)状態にされる。データの特定の共有部分は
、リクエストするキャッシュへキャッシュの保有するあ
るいは′所有の′(own fng’ )データから移
される場合に、゛所有の°(“owning”)キャッ
シュにあるキャッシュエントリはINVALID(無効
)とマークされ、一方リクエストする(“reques
 t ing” )キャッシュにある重複キャッシュエ
ントリはVAL I Dとマークされる。留意すべきで
ある点は、ここで述べられる多重キャッシュ無矛盾化プ
ロトコルは結果的にキャッシュデータが共有されしかも
多重キャッシュ内に所在することを許容する他の多重キ
ャッシュ無矛盾化プロトコルと比べてより低い性能とな
る。それゆえに、°マークインバリッド′(’mark
−inval id’ )状態は主に単一キャッシュ、
マルチプロセッサに対して有用である。
評価されるべき点は、ここで述べられるキャッシュ無矛
盾化プロトコルもまたDMAを有するユニプロセッサシ
ステムに向けられているという点である。事実、キャッ
シュ無矛盾化プロトコルの第1の力点はプロセッサによ
って現在アクセスされていないメモリページへのDMA
活動に対して置かれている。次の例は第1図の計算シス
テムlOにおける典型的なページアウト/ページインシ
ーケンスを図示し、本発明のキャッシュ無矛盾化プロト
コルを用いている。
ページアウト動作上で、DMAユニット28は次のメモ
リ読出し転送をスヌーブ(監視)するためにデータキャ
ッシュコントローラ(制御器)14に対して指示する。
スヌープ制御ビットSCO及びSCIはメモリ読出し期
間中のパススヌープを可能とする°マークインバリッド
°じmark−invalid” )オプションを選択
するために第3図において説明されたプロトコルに従っ
て断定される。クリーン(一致)もしくはVALID 
(有効)エントリ上で主メモリ26によって供給される
読出しデータと関連するキャツシュヒツト(bit)は
そのエントリをINVALID(無効)としてマークし
、一方変更されたもしくはDIRTY(不一致)エント
リ上でライトバックキャッシュからのデータと関連する
キャツシュヒツトはライトバックキャッシュ16からデ
ィスク30ヘデータを供給し、しかもそのエントリをI
NVALID(無効)としてマークする。留意すべき点
はディスク30へ移動されるメモリページはもはやライ
トバックキャッシュ16に所在しないし、オペレーティ
ングシステムのFLUSHインストラクション(命令)
はページアウト動作の以前には実行されていないという
ことである。次のページイン動作において、DMAユニ
ット28は次のメモリ書込み転送をスヌープ(監視)し
ないようにデータキャッシュ制御器14へ指示する。ス
ヌープ制御ピッ) SCO及びSCIは゛スヌープ禁止
’ (’5noop−inhibit’)オプグは、メ
モリページに対応し、かつライトバックキャッシュ16
に前から所在するすべてのデータが無効とされることか
ら、メモリ書込み期間中に禁止される。このようにして
、メモリページはライトバックキャッシュ16内にある
キャッシュエントリが矛盾化あるいは°ステイル°(’
5tale’ )にならなくとも、主メモリ26に対し
てコピーされ得る。
第4図に示されるのはCPU12もしくは代替バスマス
ターDMAユニット28によってメモリアクセス中のラ
イトバックキャッシュ16内における所定のエントリの
状態の間の遷移を図示する状態図60である。状態図6
0に図示されるように、ライトバックキャッシュ16内
の各々のエントリは3つの可能な状態、即ちVALID
(有効)状態、INVALID(無効)状態、あるいは
DIRTV(不一致)状態の内の1つになり得る。状態
間の遷移は矢印によって同定され番号をあとに伴なう状
態(V=VALID、 1=lNVALID、 D=D
IRTY )を指示する大文字でラベルされている。留
意すべき点は、番号の付いたケースのすべてが可能では
ないことから第4図には番号のすべては記載されていな
いということである。次の擬似コード(pseudo−
code)はもっと詳細にINVALID(無効)状態
にあるキャッシュエントリを説明する。第4図のラベル
をする方式は擬似コードにおいても継続されている。
INVALID(無効)状態 ケース11:(プロセッサからミス(miss)を読出
す。) メモリからキャッシュラインを 読出す。
データをプロセッサに供給する。
VALID(有効)ビットをセットす る。
VALID(有効)状態に行く。
ケース■2:(プロセッサからヒツト(bit)を読出
す。) 不可能。
ケースI3:(プロセッサからミス(miss)を書き
込む。) メモリからキャッシュラインを 読出す。
キャッシュ内のラインにデータ を書込む。
適当なラインのDIRTY(不一致) ビットをセットする。
VALID(有効)ビットをセットす る。
D + RTY (不一致)状態へ行く。
ケースI4:(プロセッサからのヒツト(bit)を書
き込む。) 不可能。
ケースI5: (キャッシュ無効化) ここに留まる。
ケースI6: (キャッシュブツシュ)ここに留まる。
ケースI7: (代替バスマスター書込みヒツト(bi
t)、スヌープされる) 不可能。
ケース■8: (代替バススター読出しヒツト(bit
) 、スヌープされる) 不可能。
I NVAL I D (無効)状態には、8つの可能
ケースがある。ケース11において、メモリアクセスは
ライトバックキャッシュ16内に含まれていないデータ
のためのプロセッサ読出し動作である。適当なデータは
主メモリ26からキャッシュエントリに対してコピーさ
れ、プロセッサに供給され、しかもキャッシュエントリ
はVALID(有効)状態に変更する。ケースI2にお
いて、メモリアクセスは結果的にキャツシュヒツトと成
るプロセッサ読出し動作である。本キャッシュエントリ
はI NVAL I D(無効)状態にあるので、これ
は不可能である。ケースI3において、メモリアクセス
は結果的にキャッシュミスとなるプロセッサ書込み動作
である。適当なデータは主メモリからフェッチ(fet
ch)されしかもライトバックキャッシュ16に対して
コピーされる。プロセッサはライトバックキャッシュ1
6に書込むことによって書込み動作を完了する。キャッ
シュエントリはDIRTY(不一致)状態に変化する。
ケースI4において、メモリアクセスは結果的にキャツ
シュヒツトとなるプロセッサ書込み動作である。本キャ
ッシュエントリはI NVALID(無効)状態にある
ので、これは不可能であるケースI5において、キャッ
シュ無効化インストラクション(命令)はオペレーティ
ングシステムによって発出されている。INVALID
(無効)キャッシュエントリはINVALID(無効)
状態に留まる。ケース■6において、キャッシュブツシ
ュ(cash push)インストラクション(命令)
がオペレーティングシステムから発出されている。再び
、l NVAL I D(無効)キャッシュエンドリカ
月NVALID(無効)状態に留まる。最後に、ケース
■7と■8において、メモリアクセスは結果的にキャツ
シュヒツトとなる代替バスマスター書込みもしくは読出
し動作のいずれかである。本キャッシュエントリはI 
NVAL ID(無効)状態にあるので、これらのアク
セスは不可能である。
次の第2部分の擬似コードはVALID(有効)状態に
あるキャッシュエントリを説明する。
VALID(有効)状態 ケースV1:(プロセッサからミス(miss)を読出
し、エントリをリプレイス する。) メモリからキャッシュラインを 読出す。
データをプロセッサへ供給する。
ここに留まる。
ケースV2:(プロセッサからヒツト(bit)を読出
す) データをプロセッサに供給する。
ここに留まる。
ケースv3:(プロセッサからミス(miss)を書込
み、エントリメをリプレイ スする。) メモリからキャッシュラインを 読出す。
データをキャッシュ内のライン に書込む。
適当なラインのDIRTY(不一致) ビットをセットする。
DIRTV(不一致)状態へ行く。
ケースv4: (プロセッサからヒツト(bit)を書
込む。) データをキャッシュラインへ書 込む。
適当なラインのDIRTY(不一致) ビットをセットする。
DIRTY(不一致)状態に行く。
ケースv5: (キャッシュ無効化。)INVALID
(無効)状態に行く。
ケースV6: (キャッシュブツシュ)INVALID
(無効)状態へ行く。
ケースv7: (代替バスマスター書込みヒラ) (b
it)、スヌープされる。) INVALID(無効)状態へ行く。
ケースv8: (代替バスマスター読出しヒラ) (b
it)、スヌープされる。) ここに留まる。
VALID(有効)状態には、8つの可能なケースがあ
る。ケースVtでは、メモリアクセスがライドパ・ツク
キャッシュ16内に含まれないデータのためのプロセッ
サ読出し動作である。適当なるデータは主メモリ26か
ら読み出されプロセッサ、CPU12に供給される。本
キャッシュエントリ内にあるデータは新データとリプレ
イスされ、しかもキャッシュエントリはVALID(有
効)(状態)に留まる。ケースV2において、メモリア
クセスは結果的にキャツシュヒツトとなるプロセッサ読
出し動作である。適当なるデータはライトバックキャッ
シュ16から供給されキャッシュエントリはVAL I
D(有効)(状態)に留まる。ケースv3において、メ
モリアクセスは結果的にキャッシュミス(miss)と
なるプロセッサ書込み動作である。適当なるデータは主
メモリ26から読出されライトバックキャッシュ、16
に書込まれる。プロセッサは新データを本キャッシュエ
ントリへ書込み、状態をDIRTY(不一致)(状態)
に変える。ケースv4において、メモリアクセスは結果
的にキャツシュヒツト(bit)となるプロセッサ書込
み動作である。新しいデータはプロセッサによって本キ
ャッシュエントリに書込まれ状態をDIRTY(不一致
)(状態)に変える。ケースV5において、キャッシュ
無効化インストラクション(命令)はオペレーティング
システムによって発出されている。本キャッシュエント
リはINVALID(無効)状態に行く。ケースv6に
おいて、キャッシュPUSH命令はオペレーティングシ
ステムによって発出されている。本キャッシュエントリ
はINVALID(無効)状態に行く。ケースv7にお
いて、パススヌービングはキャツシュヒツトになる代替
バスマスターによる書込み動作を検知する。本キャッシ
ュエントリは無矛盾化を維持するためにINVALID
(無効)状態に変えられる。最後に、ケースv8におい
て、パススヌーピングは代替バスマスターによって読出
し動作を検知する。
本キャッシュエントリはVALID(有効)(状態)に
留まる。
次の第3部分の擬似コード(pseudo−code)
はDIRTY(不一致)状態におけるキャッシュエント
リを説明する。
DIRTY(不一致)状態 ケースDi :(ミス(miss)をプロセッサから読
出し、エントリをリプレイス する。) ダーティキャッシュデータ(オ ールドエントリ、 Old Entry)をメモリへ書
込む。
キャッシュラインをメモリから 読出す。
データをプロセッサに供給する。
DIRTY(不一致)ビットをクリア する。
VALID(有効)状態へ行く。
ケースD2:(ヒツト(bit)をプロセッサから読出
す。) データをプロセッサに供給する。
ここに留まる。
ケースD3:(ミス(miss)をプロセッサから書出
し、エントリをリプレイス する。) ダーティキャッシュデータ(オ ールドエントリ、 Old Entry)をメモリに書
込む。
新しいキャッシュラインをメモ リから読出す。
データをキャッシュラインへ書 込む。
ここに留まる。
ケースD4:(ヒツト(bit)をプロセッサから書込
む。) データをキャッシュラインに書 込む。
ここに留まる。
ケースD5:(キャッシュ無効化。) VALID(有効)及びDIRTV(不一致)ビットを
クリアする。
INVALID(無効)状態へ行く。
ケースD6: (キャッシュブツシュ)ダーティキャッ
シュデータをメ モリに書込む。
VALID(有効)及びD I RTV (不一致)ビ
ットをクリアする。
INVALID(無効)状態へ行く。
ケースD7:(代替バスマスター書込みヒラ) (bi
t)、スヌープされる。) VALID(有効)及びD I RTY (不一致)ビ
ットをクリアする。
INVALID(無効)状態に行く。
ケースD8:(代替バスマスター読出シヒット(bit
)、スヌープされる。) メモリを禁止しかつデータを提 供する。
ここに留まる。
ケースD9:(ヒツト(bit)をプロセッサから読出
し、クリーン(一致)とマー クする。) メモリを禁止しかつデータを提 供する。
DIRTV(不一致)ビットをクリア する。
VALID(有効)状態へ行く。
ケースDIO:(代替バスマスク−続出ヒツト(bit
)、INVALID(無効)とマークする。) メモリを禁止しデータを提供す る。
VALID(有効)及びDIRTY(不一致)ビットを
クリアする。
INVALID(無効)状態へ行く。
D I RTV (不一致)状態では、10の可能なケ
ースがある。ケースD1において、メモリアクセスは結
果としてキャッシュミス(miss)となるプロセッサ
読出し動作である。適当なるデータが主メモリ26から
読出され、プロセッサ、CPU12、に供給される。本
ダーティキャッシュエントリは無矛盾化を維持するよう
に主メモリに書き戻(ライトバック)され、新しいデー
タとリプレイスされる。D I RTY (不一致)ビ
ットはリセットされ、キャッシュエントリはVALID
(有効)状態に変わる。ケースD2において、メモリア
クセスは結果的にキャツシュヒツトとなるプロセッサ読
出し動作である。適当なるデータはライトバックキャッ
シュ16からCPU12へ供給され、キャッシュエント
リはDIRTV<不一致)(状態)に留まる。ケースD
3において、メモリアクセスは結果的にキャッシュミス
となるプロセッサ書込み動作である。ダーティ(不一致
)データは本キャッシュエントリから主メモリ26へ畜
房(ライトバック)され、しかも適当なるデータが主メ
モリ26から読出される。プロセッサは新しいデータを
本キャッシュエントリに書込み、しかも状態はDIRT
V(不一致)(状態)に留まる。ケースD4において、
メモリアクセスは結果的にキャツシュヒツト(bit)
となるプロセッサ書込み動作である。プロセッサは新し
いデータを本キャッシュエントリに書込み、しかも状態
はDIRTV(不一致)(状態)に留まる。ケースD5
において、キャッシュINVALIDATE(無効化)
インストラクション(命令)はオペレーティングシステ
ムによって発出されている。有効及びダーティビットが
クリアされ、しかも本キャッシュエンドリカ月NVAL
 10(無効)状態に変わる。ケースD6において、キ
ャッシュPυS)lインストラクション(命令)はオペ
レーティングシステムによって発出されている。ダーテ
ィ(不一致)データは無矛盾化を維持するために本キャ
ッシュエントリから主メモリに書き戻(ライトバック)
され、有効及びダーティ(不一致)ビットがクリアされ
、しかも状態カ月NVALID(無効)(状態)に変わ
る。ケースD7において、パススヌーピングは゛スヌー
プ”(監視)を表示する代替バスマスターによって書込
み動作を検知する。有効及びダーティ(不一致)ビット
はクリアされ、しかも本キャッシュエントリはINVA
LID(無効)状態へ行く。ケースD8において、パス
スヌーピングはキャッシュ内でヒツト(bit)する代
替バスマスターによる読出し動作を検知する。ダーティ
(不一致)データは読出しリクエストを満たすために本
キャッシュエントリから供給され、しかもエントリはD
IRTY(不一致)(状態)に留まる。ケースD9にお
いて、パススヌーピングはキャッシュ内でヒツトする代
替バスマスターによる書込み動作を検知し、ここでバス
マスターは“マーククリーン”(“mark clea
n”)(一致をマークする)を表示する。ダーティ(不
一致)データは続出しリクエストを満たすために本キャ
ッシュエントリから供給される。
ダーティ(不一致)ビットはクリアされ、かつ本キャッ
シュエントリはVALID(有効)状態に行く。最後に
、ケースDIOにおいて、パススヌーピングは“マーク
−インバリッド°(’mark−invalid’ )
を指示する代替バスマスターによる読出し動作を検知す
る。ダーティ(不一致)データは読出しリクエストを満
たすために本キャッシュエントリから供給される。有効
(valid)及びダーティ(不一致)ビットはクリア
され、本キャッシュエントリはtNVALID(無効)
状態に変わる。
ここまでで明白とすべきことは、共通して“スヌーピン
グ′として言及された、方法及びシステムはユニプロセ
ッサ単一キャッシュシステムとマルチプロセッサ多重キ
ャッシュシステムとの両方においてキャッシュの無矛盾
化を維持するために提供されているという点である。従
来のスヌーピング方式はシステム動作性能を犠牲にする
必要があった。さらに明白であることは、ページイン/
ページアウトシーケンス中のライトバックキャッシュと
主メモリとの間の無矛盾化を維持するための有効な方法
が提供されているという点である。
ここで教示された方法はライトバックキャッシュへのア
クセス数を最小化し、かつプロセッサに動作を続行する
最大量の時間を許容することによってシステム性能を向
上するものである。例えば、システムのcpuは別のタ
スク(separate tasks)を実行するかも
しくは直接メモリアクセスと同時に実行可能である。D
MAユニットはまた各データバス転送に際して特定のデ
ータ値を無効化とするかクリーン(一致)とマークする
かどうかを指示する。データPu5)lインストラクシ
ョン(命令)はキャッシュと主メモリとの間のデータの
無矛盾化を維持するためにシステムによって実行されな
くてもよい。ここで提供されたパススヌープ制御方法は
“ダーティ゛(“dirty’ )(不一致)もしくは
変更されたデータを読出し動作中にライトバックキャッ
シュから代替バスマスターに供給するオプションを組み
入れ、同時にライトバックキャッシュからの“ダーティ
′(“dirty’ )もしくは変更されたデータを無
効化するかあるいはクリーン(一致)とマークする。本
発明はライトバックキャッシュを有するユニプロセッサ
計算機システムにおけるページアウト/ページインシー
ケンス中のプロセッサ制御負担(processor 
control overhead)を減らし、それに
よってシステム性能を改善するものである。
本発明の原理がここで以上に説明されているが、この説
明が実施例を介してのみなされているのであって本発明
の範囲を限定するものではないということは当業技術者
達には明白に理解されるものである。従って、付随する
特許請求の範囲によって、本発明の真正なる精神と展望
の範囲の中において本発明のあらゆる変更を包含するこ
とが意図されている。
以下、本発明の実施態様を列記する。
1、 前記キャッシュメモリは、結果的にキャツシュヒ
ツトとなるシステム(主)メモリへの所定のデータのプ
ロセッサ書込みが、前記ライトノくツクキャッシュにの
み前記所定のデータを書込むことによって処理される、
前記ライトバックキャッシュである、請求項1記載のラ
イトバックキャッシュと主メモリとの間の無矛盾化を維
持するデータノくススヌープ制御方法。
2、 前記キャッシュメモリは、結果的にキャツシュヒ
ツトとなるシステムメモリへの所定のデータのプロセッ
サ書込みが、ライトスルーキャッシュと主メモリとの両
方に前記所定のデータを書込むことによって処理される
、前記ライトスルーキャッシュである、請求項1記載の
ライトバックキャッシュと主メモリとの間の無矛盾化を
維持するデータバススヌープ制御方法。
3、 前記キャッシュメモリと前記システムメモリとの
間の無矛盾化を維持する前記方法が単一キャッシュを有
するユニプロセッサ計算システム内において用いられる
、請求項1記載のライトバックキャッシュと主メモリと
の間の無矛盾化を維持するデータバススヌープ制御方法
4、 前記キャッシュメモリと前記システムメモリとの
間の無矛盾化を維持する前記方法が複数のキャッシュメ
モリを有するマルチプロセッサ計算システム内において
用いられる、請求項1記載のライトバックキャッシュと
主メモリとの間の無矛盾化を維持するデータバススヌー
プ制御方法。
5、 前記代替バスマスターは恒久的データ貯蔵手段・
に結合された直接メモリアクセス(Direct Me
m。
ry Access)ユニットから成る、請求項1記載
のライトバックキャッシュと主メモリとの間の無矛盾化
を維持するデータバススヌープ制御方法。
6、 前記キャッシュメモリは、結果的にキャツシュヒ
ツトとなる主メモリへ所定のデータのプロセッサ書込み
が、前記ライトバックキャッシュにのみ前記所定のデー
タを書込むことによって処理される、ライトバックキャ
ッシュである、請求項7記載のライトバックキャッシュ
と主メモリとの間の無矛盾化を維持するデータバススヌ
ープ制御方法。
7、 前記キャッシュメモリは、結果的にキャツシュヒ
ツトとなる主メモリへ所定のデータのプロセッサ書込み
が、ライトスルーキャッシュと主メモリとの両方に対し
て前記所定のデータを書込むことによって処理される、
前記ライトスルーキャッシュである、請求項2記載のラ
イトバックキャッシュと主メモリとの間の無矛盾化を維
持するデータバススヌープ制御方法。
8、 前記ページアウト/ページインシーケンスの期間
中の前記キャッシュメモリと前記主メモリとの間の無矛
盾化を維持する前記方法が単一キャッシュメモリを有す
る単一プロセッサ計算システムにおいて用いられる、請
求項2記載のライトバックキャッシュと主メモリとの間
の無矛盾化を維持するデータバススヌープ制御方法。
9、 前記ページアウト/ページインシーケンス期間中
の前記キャッシュメモリと前記主メモリとの間の無矛盾
化を維持する前記方法が複数のキャッシュメモリ回路を
有するマルチプロセッサ計算システムにおいて用いられ
る、請求項2記載のライトバックキャッシュと主メモリ
との間の無矛盾化を維持するデータバススヌープ制御方
法。
10、前記データバススヌープコントローラは前記デー
タバス転送が書込みか読出し要求かどうかを指示する第
1の制御信号と前記パススヌープコントローラの動作状
態、を定義する第2の制御信号とによって制御される、
請求項2記載のライトバックキャッシュと主メモリとの
間の無矛盾化を維持するデータバススヌープ制御方法。
【図面の簡単な説明】
第1図は本発明に従うデータバススヌープ制御を有する
計算システムのブロック図である。 第2図は第1図のシステムのパススヌープ特性に関連し
た制御回路のブロック図である。 第3図はライトバックキャッシュと主メモリとの間のデ
ータの統一性(無矛盾性)を維持するためにパススヌー
プ制御器(コントローラ)によって用いられるプロトコ
ルを要約する表である。 第4図は本発明に従ってライトパックキャッシュと主メ
モリにストアされたデータの無矛盾性を保持するための
方法を例示する状態図である。 lO・・・計算システム 12・・・中央処理装置(CPU) 14・・・データキャッシュコントローラ(制御器)1
6・・・ライトバックキャッシュ 18・・・内部データバス 20・・・バスインタフェースユニット22・・・バッ
ファ 24・・・システムデータバス 26・・・主メモリ(記憶) 28・・・DMA 30・・・ディスク 40・・・アドレス翻訳キャッシュ 42・・・マルチプレクサ 46・・・比較器(コンパレータ) 48・・・キャッシュタグ 50・・・データキャッシュ制御ロジック60・・・状
態遷移図 I7γλ3

Claims (2)

    【特許請求の範囲】
  1. (1)キャッシュメモリもしくはシステムメモリのいず
    れかと代替バスマスターとの間でデータバスを介してデ
    ータが転送されるデータ転送期間中に、データバスに結
    合された少なくともひとつの代替データバスマスターに
    よって用いられるデータ処理システム内において、デー
    タバススヌープコントローラを実行して、データバスに
    結合されたプロセッサ内のキャッシュメモリとシステム
    (主)メモリとの間の無矛盾化を維持する方法であって
    、前記キャッシュ内の所定のキャッシュエントリ内にス
    トアされたデータに対する代替バスマスターによる要求
    に応答して、前記データバス転送期間中に前記データバ
    スがスヌープされるか或いはモニターされるシステムに
    おける状態を断定する工程と、 前記データバススヌープが前記代替データバスマスター
    によって起動された読出し動作を検知し前記所定のキャ
    ッシュエントリが以前のプロセッサ活動によって変更さ
    れている場合には、データを前記所定のキャッシュエン
    トリから供給する工程と、 前記データバススヌープが前記代替データバスマスター
    によって起動された読出し動作を検知し前記所定のキャ
    ッシュエントリが以前のプロセッサ活動によって変更さ
    れている場合には、前記データを供給する工程と同時に
    前記所定のキャッシュエントリを無効あるいは空白とし
    てマークする工程とを含む、ライトバックキャッシュと
    主メモリとの間の無矛盾化を維持するデータバススヌー
    プ制御方法。
  2. (2)恒久的データ貯蔵手段に結合された代替データバ
    スマスターによって実行されるページアウト/ページイ
    ンシーケンスの期間中に仮想メモリシステム内において
    、キャッシュメモリと主メモリとの間の無矛盾化を維持
    する方法であって、前記方法は、 データの第1ページが、前記主メモリから転送されしか
    も前記恒久的データ貯蔵手段に書込まれる、ページアウ
    ト転送動作を実行する工程を含み、さらに前記ページア
    ウト転送動作は、 ページアウト転送動作期間中に並びに前記キヤツシユメ
    モリ内の所定のキャッシュエントリ内にストアされたデ
    ータの読出しリクエストに応答してキャッシュメモリと
    主メモリと代替データバスマスターとに結合されたデー
    タバスをスヌープもしくはモニターする工程と、 前記データバススヌープが前記キャッシュメモリ内の前
    記所定のキャッシュエントリ内にストアされたデータに
    対する読出し要求を検知する場合には、前記所定のキャ
    ッシュエントリを無効もしくは空白としてマークする工
    程と、 前記データバススヌープが前記キャッシュメモリ内の前
    記所定のキャッシュエントリ内にストアされたデータの
    読出し要求を検知する場合には、並びに前記所定のキャ
    ッシュエントリが以前のプロセッサ活動で変更されてい
    る場合には、データを前記所定のキャッシュエントリか
    ら供給する工程と、 前記データバススヌープが前記キャッシュメモリ内の前
    記所定のキャッシュエントリ内にストアされたデータに
    対応する読出し要求を検知する場合には、並びに前記所
    定のキャッシュエントリが以前のプロセッサ活動で変更
    されている場合には、同時にデータを供給すると共に前
    記所定のキャッシュエントリを無効あるいは空白とマー
    クする工程と、及び データの第2ページが前記恒久的データ貯蔵手段から転
    送されしかも前記主メモリへ書込まれるページイン転送
    動作を実行する工程と、及び前記ページイン転送動作中
    に前記データバスの前記データバススヌープを禁止する
    工程とを含む、ライドバックキャッシュと主メモリとの
    間の無矛盾化を維持するデータバススヌープ制御方法。
JP2122789A 1989-05-15 1990-05-11 ライトバツクキヤツシユと主メモリとの間の無矛盾化を維持するデータバススヌープ制御方法 Pending JPH03121548A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/351,898 US5119485A (en) 1989-05-15 1989-05-15 Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US351,898 1989-05-15

Publications (1)

Publication Number Publication Date
JPH03121548A true JPH03121548A (ja) 1991-05-23

Family

ID=23382894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2122789A Pending JPH03121548A (ja) 1989-05-15 1990-05-11 ライトバツクキヤツシユと主メモリとの間の無矛盾化を維持するデータバススヌープ制御方法

Country Status (2)

Country Link
US (1) US5119485A (ja)
JP (1) JPH03121548A (ja)

Families Citing this family (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
EP0440243A3 (en) * 1990-01-31 1993-12-15 Nec Corp Memory controller for sub-memory unit such as disk drives
US5838946A (en) * 1990-04-14 1998-11-17 Sun Microsystems, Inc. Method and apparatus for accomplishing processor read of selected information through a cache memory
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
US5611070A (en) * 1990-05-10 1997-03-11 Heidelberger; Philip Methods and apparatus for performing a write/load cache protocol
JPH0418648A (ja) * 1990-05-11 1992-01-22 Mitsubishi Electric Corp キャッシュを有するデータ処理装置及びそのデータアクセス方法
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
EP0464848B1 (en) * 1990-07-06 1996-05-01 Nec Corporation Structure for enabling direct memory-to-memory transfer
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US5226150A (en) * 1990-10-01 1993-07-06 Digital Equipment Corporation Apparatus for suppressing an error report from an address for which an error has already been reported
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram
US5276835A (en) * 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
JP2646854B2 (ja) * 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ
JPH04353947A (ja) * 1991-02-13 1992-12-08 Hewlett Packard Co <Hp> メモリページ特性タグ付けシステム
ATE295571T1 (de) * 1991-03-01 2005-05-15 Advanced Micro Devices Inc Ausgangspuffer für mikroprozessor
US5386538A (en) * 1991-04-30 1995-01-31 Texas Instruments Incorporated Data cache access for signal processing systems
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5353423A (en) * 1991-06-21 1994-10-04 Compaq Computer Corporation Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses
JPH0512117A (ja) * 1991-07-04 1993-01-22 Toshiba Corp キヤツシユ一致化方式
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US5426765A (en) * 1991-08-30 1995-06-20 Compaq Computer Corporation Multiprocessor cache abitration
US5386540A (en) * 1991-09-18 1995-01-31 Ncr Corporation Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
US5966728A (en) * 1992-01-02 1999-10-12 International Business Machines Corp. Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
JPH0727494B2 (ja) * 1992-01-02 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
JPH05257899A (ja) * 1992-02-19 1993-10-08 Nec Corp キャッシュメモリユニット
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
WO1993018461A1 (en) * 1992-03-09 1993-09-16 Auspex Systems, Inc. High-performance non-volatile ram protected write cache accelerator system
JP2568017B2 (ja) * 1992-03-12 1996-12-25 株式会社東芝 マイクロプロセッサ及びそれを使用したデータ処理システム
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
US5485592A (en) * 1992-04-07 1996-01-16 Video Technology Computers, Ltd. Write back cache controller method and apparatus for use in a system having a CPU with internal cache memory
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
US5555382A (en) * 1992-04-24 1996-09-10 Digital Equipment Corporation Intelligent snoopy bus arbiter
KR100294105B1 (ko) * 1992-04-29 2001-09-17 썬 마이크로시스템즈, 인코포레이티드 멀티 프로세서 컴퓨터 시스템의 일관성 카피-백 버퍼용 방법 및 장치
US5440707A (en) * 1992-04-29 1995-08-08 Sun Microsystems, Inc. Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle
EP0638183B1 (en) 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
JPH0797352B2 (ja) * 1992-07-02 1995-10-18 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・システム及び入出力コントローラ
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5353415A (en) * 1992-10-02 1994-10-04 Compaq Computer Corporation Method and apparatus for concurrency of bus operations
JPH07168763A (ja) * 1992-11-13 1995-07-04 Cyrix Corp ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ
WO1994016384A1 (en) 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
JP3027843B2 (ja) * 1993-04-23 2000-04-04 株式会社日立製作所 バススヌ−プ方法
US5636355A (en) * 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US5893154A (en) * 1993-07-06 1999-04-06 Intel Corporation CPU write-back cache coherency mechanism that transeers data from a cache memory to a main memory before access of the main memory by an alternate bus master
US5598551A (en) * 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
US5526512A (en) * 1993-09-20 1996-06-11 International Business Machines Corporation Dynamic management of snoop granularity for a coherent asynchronous DMA cache
JP2675981B2 (ja) * 1993-09-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション スヌープ・プッシュ・オペレーションを回避する方法
TW228580B (en) * 1993-10-01 1994-08-21 Ibm Information processing system and method of operation
US5522057A (en) * 1993-10-25 1996-05-28 Intel Corporation Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems
US5809532A (en) * 1993-12-06 1998-09-15 Motorola Inc. Data processor with cache and method of operation
US5797026A (en) * 1994-02-28 1998-08-18 Intel Corporation Method and apparatus for self-snooping a bus during a boundary transaction
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5717894A (en) * 1994-03-07 1998-02-10 Dell Usa, L.P. Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache
US5666509A (en) * 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
KR960009659B1 (ko) * 1994-04-11 1996-07-23 김광호 멀티프로세서 시스템의 스누프회로
US5555398A (en) * 1994-04-15 1996-09-10 Intel Corporation Write back cache coherency module for systems with a write through cache supporting bus
US5557769A (en) * 1994-06-17 1996-09-17 Advanced Micro Devices Mechanism and protocol for maintaining cache coherency within an integrated processor
US5671231A (en) * 1994-07-07 1997-09-23 Dell Usa, L.P. Method and apparatus for performing cache snoop testing on a cache system
US5749090A (en) * 1994-08-22 1998-05-05 Motorola, Inc. Cache tag RAM having separate valid bit array with multiple step invalidation and method therefor
US5615334A (en) * 1994-10-07 1997-03-25 Industrial Technology Research Institute Memory reflection system and method for reducing bus utilization and device idle time in the event of faults
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US5862358A (en) * 1994-12-20 1999-01-19 Digital Equipment Corporation Method and apparatus for reducing the apparent read latency when connecting busses with fixed read reply timeouts to CPUs with write-back caches
US5530932A (en) * 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
US5893921A (en) * 1995-02-10 1999-04-13 International Business Machines Corporation Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5694596A (en) * 1995-05-25 1997-12-02 Kangaroo, Inc. On-line database updating network system and method
US6240451B1 (en) * 1995-05-25 2001-05-29 Punch Networks Corporation Method and apparatus for automatically disseminating information over a network
EP0836711B1 (en) * 1995-06-26 1999-12-22 Novell, Inc. Apparatus and method for redundant write removal
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
US5765195A (en) * 1995-12-08 1998-06-09 Ncr Corporation Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US5778431A (en) * 1995-12-19 1998-07-07 Advanced Micro Devices, Inc. System and apparatus for partially flushing cache memory
US5781733A (en) * 1996-06-20 1998-07-14 Novell, Inc. Apparatus and method for redundant write removal
US5915262A (en) * 1996-07-22 1999-06-22 Advanced Micro Devices, Inc. Cache system and method using tagged cache lines for matching cache strategy to I/O application
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6049847A (en) * 1996-09-16 2000-04-11 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6134634A (en) * 1996-12-20 2000-10-17 Texas Instruments Incorporated Method and apparatus for preemptive cache write-back
US5924118A (en) * 1997-04-14 1999-07-13 International Business Machines Corporation Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system
US5900017A (en) * 1997-05-14 1999-05-04 International Business Machines Corporation Snooping a variable number of cache addresses in a multiple processor system by a single snoop request
US6658537B2 (en) * 1997-06-09 2003-12-02 3Com Corporation DMA driven processor cache
KR100287366B1 (ko) * 1997-11-24 2001-04-16 윤순조 엠피이지 방식을 이용한 휴대용 음향 재생장치 및 방법
US6032228A (en) * 1997-11-26 2000-02-29 International Business Machines Corporation Flexible cache-coherency mechanism
US6292872B1 (en) * 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6275908B1 (en) * 1998-02-17 2001-08-14 International Business Machines Corporation Cache coherency protocol including an HR state
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6263407B1 (en) * 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6272603B1 (en) * 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6295583B1 (en) * 1998-06-18 2001-09-25 Compaq Information Technologies Group, L.P. Method and apparatus for resolving probes in multi-processor systems which do not use external duplicate tags for probe filtering
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US6389527B1 (en) * 1999-02-08 2002-05-14 Kabushiki Kaisha Toshiba Microprocessor allowing simultaneous instruction execution and DMA transfer
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6584513B1 (en) * 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6651130B1 (en) 2000-04-28 2003-11-18 Emc Corporation Data storage system having separate data transfer section and message network with bus arbitration
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
US6983452B1 (en) * 2000-11-03 2006-01-03 Hewlett-Packard Development Company, L.P. System and method for collecting system data using record based requests with tag lists and pausing all but one thread of a computer system
US6622216B1 (en) * 2001-05-10 2003-09-16 Lsi Logic Corporation Bus snooping for cache coherency for a bus without built-in bus snooping capabilities
US20030115402A1 (en) * 2001-11-16 2003-06-19 Fredrik Dahlgren Multiprocessor system
US6782453B2 (en) * 2002-02-12 2004-08-24 Hewlett-Packard Development Company, L.P. Storing data in memory
WO2004017209A2 (en) * 2002-08-14 2004-02-26 Koninklijke Philips Electronics N.V. Optimized write back for context switching
US7302616B2 (en) * 2003-04-03 2007-11-27 International Business Machines Corporation Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US20040199722A1 (en) * 2003-04-03 2004-10-07 International Business Machines Corp. Method and apparatus for performing bus tracing in a data processing system having a distributed memory
US7213169B2 (en) * 2003-04-03 2007-05-01 International Business Machines Corporation Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory
WO2004102401A1 (ja) * 2003-05-13 2004-11-25 Fujitsu Limited 入出力装置、計算機、計算機システム、入出力制御プログラム、os、ページ管理プログラム、及びページ管理方法
US7484045B2 (en) * 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
US7366845B2 (en) * 2004-06-29 2008-04-29 Intel Corporation Pushing of clean data to one or more processors in a system having a coherency protocol
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7594081B2 (en) * 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
DK1794979T3 (en) * 2004-09-10 2017-07-24 Cavium Inc Selective copying of data structure
US7635987B1 (en) 2004-12-13 2009-12-22 Massachusetts Institute Of Technology Configuring circuitry in a parallel processing environment
US20060184735A1 (en) * 2005-02-15 2006-08-17 Maxwell Technologies, Inc. Methodology for effectively utilizing processor cache in an electronic system
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
WO2007110557A1 (en) * 2006-03-29 2007-10-04 Arm Limited Local memory and main memory management in a data processing system
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
JP5057360B2 (ja) * 2006-08-08 2012-10-24 ルネサスエレクトロニクス株式会社 半導体装置、データ処理装置、及び記憶装置へのアクセス方法
US7853752B1 (en) 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
US20080104333A1 (en) * 2006-10-31 2008-05-01 Veazey Judson E Tracking of higher-level cache contents in a lower-level cache
US7958314B2 (en) 2007-12-18 2011-06-07 International Business Machines Corporation Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources
US8510509B2 (en) * 2007-12-18 2013-08-13 International Business Machines Corporation Data transfer to memory over an input/output (I/O) interconnect
US8977820B2 (en) * 2007-12-21 2015-03-10 Arm Limited Handling of hard errors in a cache of a data processing apparatus
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
US7944375B2 (en) * 2009-06-02 2011-05-17 International Business Machines Corporation Wear reduction methods by using compression/decompression techniques with fast random access
US8996812B2 (en) * 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US7987407B2 (en) * 2009-08-20 2011-07-26 Arm Limited Handling of hard errors in a cache of a data processing apparatus
CN103714014B (zh) * 2013-11-18 2016-12-07 华为技术有限公司 处理缓存数据的方法及装置
CN109101439B (zh) * 2017-06-21 2024-01-09 深圳市中兴微电子技术有限公司 一种报文处理的方法及装置
GB2571539B (en) * 2018-02-28 2020-08-19 Imagination Tech Ltd Memory interface
US11455251B2 (en) * 2020-11-11 2022-09-27 Advanced Micro Devices, Inc. Enhanced durability for systems on chip (SOCs)
CN112699061B (zh) * 2020-12-07 2022-08-26 海光信息技术股份有限公司 实现PCIe设备的缓存一致性的系统、方法和介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4858111A (en) * 1983-07-29 1989-08-15 Hewlett-Packard Company Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache
US4612612A (en) * 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4814981A (en) * 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
EP0288649B1 (en) * 1987-04-22 1992-10-21 International Business Machines Corporation Memory control subsystem
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5043886A (en) * 1988-09-16 1991-08-27 Digital Equipment Corporation Load/store with write-intent for write-back caches
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors

Also Published As

Publication number Publication date
US5119485A (en) 1992-06-02

Similar Documents

Publication Publication Date Title
JPH03121548A (ja) ライトバツクキヤツシユと主メモリとの間の無矛盾化を維持するデータバススヌープ制御方法
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US6757784B2 (en) Hiding refresh of memory and refresh-hidden memory
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US5802559A (en) Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
US6282615B1 (en) Multiprocessor system bus with a data-less castout mechanism
EP0945805B1 (en) A cache coherency mechanism
US5623633A (en) Cache-based computer system employing a snoop control circuit with write-back suppression
US7100001B2 (en) Methods and apparatus for cache intervention
US6775748B2 (en) Methods and apparatus for transferring cache block ownership
US5946709A (en) Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JPH036757A (ja) ライトバツクデータキヤツシユメモリ装置
KR19980079433A (ko) 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US5920891A (en) Architecture and method for controlling a cache memory
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6275908B1 (en) Cache coherency protocol including an HR state
US6477622B1 (en) Simplified writeback handling
US6256710B1 (en) Cache management during cache inhibited transactions for increasing cache efficiency