JPH07168763A - ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ - Google Patents

ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ

Info

Publication number
JPH07168763A
JPH07168763A JP5283263A JP28326393A JPH07168763A JP H07168763 A JPH07168763 A JP H07168763A JP 5283263 A JP5283263 A JP 5283263A JP 28326393 A JP28326393 A JP 28326393A JP H07168763 A JPH07168763 A JP H07168763A
Authority
JP
Japan
Prior art keywords
cache
write
data
coherency
logic circuit
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
JP5283263A
Other languages
English (en)
Inventor
Marvin Wayne Martinez Jr
ウェイン マーティネズ ジュニア マーヴィン
Mark Bluhm
ブルーム マーク
Jeffrey S Byrne
エス バーン ジェフリー
David A Courtright
エイ コートライト ディヴィッド
Douglas Ewing Duschatko
エーウィング ダスチャトコ ダグラス
Jr Raul A Garibay
エイ ガリベイ ジュニア ラウル
Margaret R Herubin
アール ヘルビン マーガレット
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.)
SAIRITSUKUSU CORP
Cyrix Corp
Original Assignee
SAIRITSUKUSU CORP
Cyrix 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 SAIRITSUKUSU CORP, Cyrix Corp filed Critical SAIRITSUKUSU CORP
Publication of JPH07168763A publication Critical patent/JPH07168763A/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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • 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)【要約】 【目的】 ライトバックコヒーレンシシステムが、ライ
トバックキャシュを実現するために、かつ、ライトスル
ーキャシュのみをサポートするマルチコンピユータシス
テムに486型マイクロプロセッサが搭載される場合、
486マイクロプロセッサにキャシュコヒーレンシを維
持するために、使用される。 【構成】 ライトバックコヒーレンシシステムは、汚れ
データ“エクスポートオンホールド”機能、瞬時無効化
(PDIRTY)機能、待ち時間短縮(X%DIRT
Y)機能、キャシュ無効化(INVD)命令実行機能を
含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に集積回路に関
し、特にライトスルーキャシュのみをサポートする設計
のコンピュータシステムで使用されるライトバックキャ
シュのキャシュのコヒーレンシを維持するための回路及
び方法に関する。一実施例では、ライトバックコヒーレ
ンシ技術は、キャシュコヒーレンシを維持するのに要す
るライトバックプロトコルをサポートしていないコンピ
ュータシステムに搭載されている486型マイクロプロ
セッサ用のライトバックキャシュを実現するのに使用さ
れる。
【0002】
【従来の技術】キャシュメモリの設計は、二つの書き込
み方法、即ちライトスルー方法またはライトバック方法
の両方またはいずれか一方をサポートしている。ライト
スルーモードでは、キャシュラインへの各書き込みは、
メインメモリの対応するブロックへ書き込みをする外部
バスサイクルを生じさせ、結果として、キャシュ及びメ
インメモリは、常時同じデータを有す。ライトバックモ
ードでは、キャシュへの書き込みは、外部バスサイクル
を自動的に起動するとはかぎらず、それよりも、“汚れ
た”データを含むキャシュラインの置き換え、無効化、
または照会(置き換えまたは無効化することなしのライ
トバック)によりメインメモリは更新される。キャシュ
のデータがメインメモリの対応するデータと異なると
き、データは、“汚れて”いるとする。キャシュデータ
がメインメモリの対応するデータと同じであれば、その
キャシュデータは“クリーン”である。マルチマスタコ
ンピュータシステムでは、メインメモリは、直接メモリ
アクセス(DMA)装置及びマイクロコントローラ(他
のCPUを含む)を含むCPU以外のバスマスタにより
アクセスされる。キャシュメモリとメインメモリとのコ
ヒーレンシを維持するためには、CPUは、一般に次の
二つのコヒーレンシ手法のうちの一つを実行する:
(a)バススヌーピング(バス監視):何時、他のバス
マスタがキャシュのメモリロケーションにアクセスした
かを検出するためバス上で全てのアドレス操作を監視す
るか、(b)バス調停:他のバスマスタがメインメモリ
のキャシュ化可能な区域にアクセスできるように、他の
バスマスタがシステムバスの制御を要求するときを検出
する。バス調停の場合は、CPUと他のバスマスタは、
メモリバス(即ち、メモリにアクセス可能なあらゆるバ
ス)の制御を調停するための要求アクノリッジハンドシ
ェイクのプロトコルとしてのHOLD(バスホールドリ
クエスト)やHLDA(ホールドアクノリッジ)といっ
たバス調停信号を共通に使用し、メインメモリにアクセ
スする。キャシュのコヒーレンシを維持するには、CP
Uは、他のバスマスタによりアクセスされるアドレスを
含むそれらのキャシュロケーションを少なくとも無効化
しなければならない(実際のキャシュメモリのコヒーレ
ンシ手法は、ライトスルー/ライトバックといった多数
の要因及び、CPUが外部バスマスタにより駆動されて
いるアドレスを検出するためにバスを監視することが可
能かどうかといったことに依存する)。
【0003】ライトスルーキャシュ用に、即ちライトバ
ックプロトコルをサポートすることなく設計された従来
の、486を搭載したコンピュータシステムへの組み込
みを意図した、キャシュコヒーレンシ機構を有すライト
バックキャシュ法を実現する486型マイクロプロセッ
サを提供するという本発明の応用分野に付随するある特
定の問題を念頭に置いて、背景説明をするが、本発明の
範囲を限定する意図はない。インテル社の現在の486
世代のマイクロプロセッサは、関連出願(1)で説明さ
れているように、ライトスルーキャシュ法とライトバッ
クキャシュ法の選択のための一制御ビットを含むが、内
部キャシュのためのライトスルーキャシュ法をサポート
しているのみである。486型マイクロプロセッサにラ
イトバックキャシュをサポートするとメモリバンド幅条
件が低減されるので、極めて大幅な性能上のメリットが
得られる。キャシュへの全ての書き込みがメインメモリ
への対応する書き込みとして実行される訳ではないの
で、必要とする外部バスサイクルがより少なくでき、書
込み収集やバースト書込みといった高性能化手法が実現
可能となる。
【0004】486搭載のコンピュータシステムは、ラ
イトバックキャシュ法をサポートするように構成でき、
特に、(キャシュコヒーレンシを維持して、ライトバッ
クを実現するのに使用される追加のマイクロプロセッサ
のピンのスヌーピング及びサポートを含む)ライトバッ
クに必要なサポートを提供するように構成できる。あら
ゆる新規マイクロプロセッサ設計は、ライトバックキャ
シュ及び関連のライトバックプロトコルをサポートす
る、しないにかかわらず、あらゆる486搭載コンピュ
ータシステムでの装置をサポートすることが好ましい。
ライトバックプロトコルをサポートしないマルチマスタ
コンピュータシステムで上述の486型マイクロプロセ
ッサを使用すると、キャシュコヒーレンシ維持に問題を
起こす。関連出願(2)は、従来の486搭載のコンピ
ュータシステムに組み込むようにされた内部キャシュを
有すマイクロプロセッサのキャシュコヒーレンシを維持
するためのメカニズムを開示している;従来の386世
代のマイクロプロセッサは、内部キャシュを含まず、こ
れらのシステムは、ときとしてマイクロプロセッサへ通
常のHOLD/HLDAバスマスタ調停信号を提供しな
い(または、そうでなければバススヌーピング等をキャ
シュコヒーレンシ用に備えがない)。しかし、内部キャ
シュを有するマイクロプロセッサ用に設計された486
搭載のコンピュータシステムは、ライトバックキャシュ
を導入しようとして、(a)データインテグリティ及び
(b)キャシュ無効化仕様とのコンパチビリティといっ
た、異なったキャシュコヒーレンシ項目を提示してい
る。
【0005】データインテグリティは、バスマスタへの
メモリアクセスを許可するのに使用されるバス調停プロ
トコルの故に、導入される;(ディスクコントローラと
いった)外部バスマスタは、HOLDをアサートするこ
とでバスの制御を要求し、マイクロプロセッサによりH
LDAが戻されると、メモリバスでアドレスを駆動する
間は、EADS(外部アドレスストローブ)をアサート
する。これは、メインメモリは、データの殆どの最新の
写しを含むので、ライトスルーキャシュの設計では問題
とならない。HOLD/HLDAプロトコルを用いてバ
スが調停されると、マイクロプロセッサは、バスを監視
し、外部バスマスタにより駆動されているアドレスを含
むいかなるキャシュラインも無効とする。ライトバック
キャシュの設計では、しかし、データの現在の写しの殆
どは、メインメモリにではなく、キャシュにあり、キャ
シュでの対応するロケーションが汚れたデータを含む、
メモリロケーションへ、バスマスタがアクセスを試みる
と、ライトバックコヒーレンシプロトコルなしで、コヒ
ーレンシが破られ、(a)バスマスタにより駆動されて
いる各アドレスをマイクロプロセッサが監視することを
可能とし、かつ、(b)汚れデータを表示するアドレス
に付き、該当キャシュライン(または少なくとも汚れデ
ータ)をライトバックするかフラッシュ(ライトバック
し、無効化する)する。
【0006】関連出願 本出願は、以下の同時係属中の米国特許出願に関連し、
これら全ては、本発明の譲受人に譲渡されている。
(1)1992年11月13日付けで出願の出願番号N
o. 07/975,783“ライトスルー環境下でのライ
トバックキャシュを実現する方法”( ″Method of Allo
wing Write-Back Caching in a Write-ThroughEnvironm
ent"); (2)1992年8月26日付けで出願の出願
番号No. 07/935,564“バスマスタ調停信号な
しのキャシュコヒーレンシ”( ″CacheCoherency Witho
ut Bus Master Arbitration Signals")、これは(3)
の一部係属出願;(3)1992年4月3日付けで出願
の出願番号No. 864,399“非キャシュ区域を指定
するためのキャシュ制御システム”(“Cache Control
System for Designating Non-Cashable Regions")、以上
出願はともに本出願の譲受人に譲渡されている;(4)
1992年11月13日付けで出願の出願番号No.07
/975,863“非ブロック化ライトバックキャシュ
を実現するための構成及び方法”(“Design and Metho
d for lmplementing Non-Blocking Write-Back Cach
e"); (5)1992年11月13日付けで出願の出願
番号No. 07/976,902“キャシュフィルサイクル
期間中の逐次アクセス要求のサービス”(“Servicing S
uccesive Access Requests During A Cache Fill Cycle
”)、及び;(6)1992年11月13日付けで出
願の出願番号No. 07/975,804“アドレス区域
で記憶サブシステムオペレーションを制御するための区
域構成システム及び方法”(“Region Configuration S
ystem and Method For Controlling Memory Subsystem
Operations By Address Region”)。
【0007】
【発明が解決しようとする課題】キャシュ無効化仕様と
のコンパチビリティは、従来の486型マイクロプロセ
ッサ仕様が単サイクルキャシュライン無効化を必要とす
る故に、導入される。バスマスタが、EADSをアサー
トした後に、一つのアドレスを駆動すると、マイクロプ
ロセッサは、単クロックサイクルで(キャシュヒットの
場合)該当のキャシュラインを無効化する。ライトバッ
ク及び無効化の両方を必要とするフラッシュ動作は、実
行には一般に2クロックサイクル必要とする。更に、4
86の命令セットは、INVD(キャシュ無効)及びW
BINVD(ライトバック及びキャシュ無効)キャシュ
無効命令を含み、これらはライトスルーとライトバック
を区別していて、MBINVD命令は、外部ライトバッ
クキャシュのためにのみサポートされる(なぜなら、従
来の486型マイクロプロセッサのみが、ライトスルー
内部キャシュをサポートしているからである)。このよ
うに、従来の486型マイクロプロセッサ用に書かれた
ソフトウェアは、内部ライトスルーキャシュのためのI
NVDを使用でき、このことにより、内部キャシュがラ
イトバックされるとコヒーレンシ問題が発生する可能性
がある。
【0008】
【発明が解決するための手段】従って、本発明の特定の
目的の一つは、キャシュコヒーレンシを維持するための
ライトバックプロトコルをサポートしないコンピュータ
システムでの装置のサポートをするキャシュコヒーレン
シメカニズムの実現を含む、ライトバックキャシュをサ
ポートする486型マイクロプロセッサのための設計を
提供することにある。本発明は、マルチマスタコンピュ
ータシステムでの使用に適する、ライトバックキャシュ
と組み合わせた、プロセッサ用のライトバックコヒーレ
ンシの方法とシステムに関し、(a)プロセッサ以外の
バスマスタがメインメモリにアクセスを許可される場
合、(HOLD/HLDAといった)要求アクノリッジ
バス調停プロトコルが調停に使用され、(b)コンピュ
ータシステムは、キャシュコヒーレンシを維持するため
のライトバックをサポートしない。本発明の一つの特徴
として、ライトバックコヒーレンシ法は、(a)メモリ
アクセスのためバスマスタによる要求を示す調停要求信
号を検出し、(b)調停要求信号に応答して、もしも存
在するとして、汚れデータを含むキャシュロケーション
が検出され、該当する汚れデータがメモリヘライトバッ
クされる、データエクスポート動作を実行し、(c)デ
ータエクスポート動作の完了後、要求側バスマスタにメ
モリアクセスを許可する調停アクノリッジ信号をアサー
トし、(d)少なくとも、要求側バスマスタによりアク
セスされたメモリロケーションに対応するそれらのキャ
シュロケーションを無効化すことを必要とする。
【0009】本発明の他の特徴として、ライトバックコ
ヒーレンシシステムは、調停エクスポート機能を実行す
るためのライトバックコヒーレンシ論理回路を含む。バ
ス調停論理回路は、メモリアクセスを要求の他のバスマ
スタからの調停要求信号を検出する。この検出に応答し
て、ライトバックコヒーレンシ論理回路は、データエク
スポート動作を実行する。このデータエクスポート動作
に於いて、汚れデータを含むキャシュロケーションが、
もし存在すれば、検出され、対応する汚れデータは、メ
モリヘライトバックされる。データエクスポート動作が
完了すると、バス調停論理回路は、要求側バスマスタに
メモリアクセスを許可するために、調停アクノリッジ信
号をアサートする。要求側バスマスタがメモリバス上で
制御権を有している期間は、無効化論理回路は、要求側
バスマスタによりアクセスされたメモリロケーションに
対応する少なくともそれらキャシュロケーションを無効
化する。一実施例では、プロセッサは、バススヌーピン
グ(バス監視)を実行する。スヌーピング論理回路は、
要求側バスマスタからの出力されるアドレスをモニタ
し、各バスマスタアドレスに応答して、(a)それらの
アドレスがキャシュのデータに対応するかどうか判断
し、もし対応すれば、(b)少なくとも、そのデータを
含むキャシュでのロケーションを無効化するための無効
化動作を実行する。
【0010】本発明の更に他の特徴として、ライトバッ
クコヒーレンシ論理回路は、要求側バスマスタがメモリ
にアクセスしている期間はキャシュのデータが汚される
ことがないように、ライトバックキャシュモードからラ
イトスルーキャシュモードへ動的に切り替えることによ
り、調停アクノリッジ信号のアサートに応答する。ま
た、プロセッサの命令セットがキャシュを無効にする命
令(INVD)と、キャシュをフラッシュするための命
令(WBINVD)とを含む場合、ライトバックコヒー
レンシ論理回路は、INVD命令をWBINVD命令と
して理解する。本発明の更に他の特徴として、ライトバ
ックコヒーレンシシステムは、PDIRTY論理回路と
X%DIRTY論理回路を含む。PDIRTY論理回路
は、キャシュが汚れたデータをいつ含まないかを示し、
従って無効化論理回路は、エクスポート動作をまず実行
することなしに無効化動作を実行することが可能であ
る。X%DIRTY論理回路は、書込により、汚れたデ
ータを含むキャシュロケーションの数が、キャシュロケ
ーションの総数に対する予め設定した最大のパーセント
を越えるいかなる期間でも、ライトバックからライトス
ルーモードへの動的切り換えをする。
【0011】実施例のX%DIRTY論理回路は、汚れ
たデータを含む許容キャシュロケーションの最大数に対
応する予め設定された値を記憶するためのCDIRTY
MAXレジスタと、汚れたデータを含むキャシュロケー
ションの最新数に対応する値を記憶するためのCDIR
TYCURレジスタとを含む。CDIRTYCUR論理
回路は、クリーンデータロケーションへのキャシュアク
セスの書込みがそのデータを汚せば、CDIRTYCU
R値を増分するか、(b)キャシュアクセスが汚れロケ
ーションを新規データで交換するか、または汚れロケー
ションを無効化するか、または汚れロケーションをエク
スポートするかする場合にCDIRTYCUR値を減分
する。キャシュモードスイッチング論理回路は、(a)
CDIRTYCURがCDIRTYMAX以上で、且
つ、(b)書込みが更なるクリーンなロケーションを汚
すようないかなる書込みでも、キャシュをライトバック
からライトスルーモードへ動的に切り替え、従ってCD
IRTYCURが更に増分するのを防止する。本発明の
技術的な効果は、次のものがある。ライトバックコヒー
レンシシステムのエクスポートオンホールド機能によ
り、キャシュコヒーレンシを維持するに必要な機能を欠
くコンピュータシステムでライトバックキャシュ法の利
点を有効に利用でき、特に、ライトバックキャシュは、
キャシュコヒーレンシを維持するに必要なピンをサポー
トしていないソケットに装備可能なマイクロプロセッサ
で使用できる。PDIRTYは、クリアされていると、
単サイクルキャシュ無効化/フラッシュを実現できる
(これは、ライトスルーモードで動作中のコンパチビリ
ティに有効である)。X%DIRTYにより、オペレー
ティングシステムは、任意の時間に存在する許容汚れデ
ータ量に基づいた最大保証ホールドアクノリッジ待ち時
間を課すことが可能となる。INVD命令は、INVD
命令をキャシュを無効化するのに使用しているソフトウ
ェアのデータインテグリティを保証するために、WBI
NVD命令として理解される。
【0012】添付図面と共に本発明の詳細な実施例を参
照すれば、本発明のより完全な理解が得られ、更なる特
徴及び利点に明らかになろう。本発明の変形及び代替実
施例は、本発明の範囲に含まれる。
【0013】
【実施例】ライトバックコヒーレンシシステムの実施例
の詳細な説明は、次のように構成される。 1.従来の386型マイクロプロセッサ 1.1 BARB(バス調停)を有すキャシュコヒーン
ス 1.2 BARBなしのキャシュコヒーレンシ 2.ライトバックコヒーレンシ 2.1 BARB機能 2.1.1 エクスポートオンホールド 2.1.2 キャシュライン無効化 2.1.3 ライトスルーへの切り替え 2.2 PDIRTY機能 2.3 X%DIRTY機能 2.4 INVD命令 3.結論 以上の目次及び実施例の詳細な説明に使用される対応す
る表題は、参照上の便宜を図るためである。
【0014】実施例のライトバックコヒーレンシシステ
ムは、ライトスルーキャシュのみをサポートしているマ
ルチマスタコンピュータシステム(即ち、システムは、
キャシュコヒーレンシを維持するためライトバックプロ
トコルをサポートしていない)に搭載される486型マ
イクロプロセッサに於いて、ライトバックキャシュを実
現し、キャシュコヒーレンシを維持する目的で使用され
る。マイクロプロセッサは、ライトスルーモードとライ
トバックモード間の切り替えをするNWビットを制御レ
ジスタCRO(図不指示)に含み、マイクロプロセッサ
がライトバック動作をサポートしない従来の468型マ
イクロプロセッサの設計とコンパチビリティを得るため
に、関連出願(1)で説明しているライトバック構成法
を使用し、ライトバックモードでNWビットがセットさ
れると一般保護フォールトを発する。マイクロプロセッ
サは、ライトバックモードと従来の486のライトスル
ーモード間の切り替えが可能な内部、単ポート統合型キ
ャシュを含む。統合型キャシュは、命令及びデータの両
方を記憶する。この実施例の詳細な説明では、用語“デ
ータ”は、命令及びデータの両方の意味を含み、用語
“アドレス”は、データまたはデータのメモリアドレス
を意味する。
【0015】1.従来の386型マイクロプロセッサ 更なる背景説明として、関連出願(2)及び(3)によ
る、内部キャシュを有す386型マイクロプロセッサの
キャシュ制御及びキャシュコヒーレンシシステムについ
て説明がある。キャシュコヒーレンシは、次のいずれか
を利用することで維持される。(a)従来のバス調停信
号HOLD及びHLDAを利用したバス調停(BAR
B)機能か、あるいは(b)バス調停が使用不可能の場
合か、使用しない場合のキャシュコヒーレンシシステム
かを利用する。 1.1 BARBを有すキャシュコヒーレンシ 関連出願(2)及び(3)で説明されているように、こ
のマイクロプロセッサは、スヌーピングをサポートして
(即ち、他のバスマスタによるメモリアクセス動作期間
中にバスアクティビティをモニタして)いないので、他
のバスマスタによりキャシュ可能なデータが外部メモリ
で変更されると、内部キャシュの内容は無効となるキャ
シュコヒーレンシの論理が支配する。キャシュコヒーレ
ンシを実現するための一手法は、BARB機能である。
キャシュ構成レジスタは、BARBビットを含み、BA
RBビットはセットされると、他のバスマスタによりア
サートのHOLD及びマイクロプロセッサによるHLD
Aの戻しに応答してメモリバスが調停されるといつで
も、キャシュを無効にする。
【0016】これに替えて、内部キャシュは、FLUS
H命令(フラッシュビットが、キャシュ構成レジスタで
セットされると)、またはINVDかWBINVD命令
を使用して無効にすることができる。フラッシュ信号出
力に付いては、マイクロプロセッサは、各クロックサイ
クルでFLUSH#入力をサンプリングし、アサートさ
れていると、内部キャシュの全内容を無効とする。 1.2 BARBなしのキャシュコヒーレンシ 関連出願(2)で説明されているように、386搭載の
マルチマスタコンピュータシステムのあるものは、バス
調停信号の全てがマイクロプロセッサソケットで得られ
るようになっていて、これらシステムとコンパチビリテ
ィを有すように設計されたマイクロプロセッサでは、バ
ス調停信号は、内部キャシュのコヒーレンシを安定して
維持するために使用することはできない。この関連出願
は、このような環境下でのキャシュコヒーレンシを維持
するためのキャシュコヒーレンシシステムを説明してい
る。外部チップの構成では、キャシュコヒーレンシシス
テムは、二つのPLA、即ちフラッシュモジュール及び
波形成形モジュールを含む。フラッシュモジュールは、
マイクロプロセッサから選択されたバスサイクル定義信
号及び制御信号を受信し、それに基づいて、フラッシュ
モジュールは、フラッシュ(キャシュ無効化)条件(即
ち、バスマスタ同期イベント)を検出し、各フラッシュ
条件に付き、フラッシュ出力信号を出力する。波形成形
モジュールは、マイクロプロセッサに適当なセットアッ
プ時間及びホールド時間でもって対応するCPU/フラ
ッシュ信号を与える。
【0017】キャシュ無効を生じさせるフラッシュ条件
の例としては、(a)ハードウェアで発生した割込み、
(b)ハードディスクや外部プロセッサへのものを除
く、I/Oアドレスベースへの読込みアクセスまたは読
込み/書込みアクセスがある。バスアーキテクチャがメ
モリマップドI/Oの場合は、メモリマップドI/Oス
ペースの選択区域に対するアクセスも利用可能である。 2.ライトバックコヒーレンシ 本発明を実施するライトバックコヒーレンシシステムの
実施例は、従来の468形マイクロプロセッサとコンパ
チブルな486型マイクロプロセッサで実現されてい
る。ライトバックコヒーレンシシステムにより、このマ
イクロプロセッサは、システムをライトバックキャシュ
動作に構成することによって、ライトバックモードの期
間はキャシュコヒーレンシを維持するのに要するライト
バックプロトコルをサポートしていないマルチマスタコ
ンピュータシステムに搭載可能となる。従来の486型
マイクロプロセッサ設計とのコンパチビリティを得る目
的で、実施例のマイクロプロセッサは、関連出願(1)
で説明されているライトバック構成システムを利用して
いる。本発明のライトバックコヒーレンシシステムの有
効な開示をするには、ライトバック構成システムの詳し
い説明は、必要ない。一般にライトバック構成技術は、
(a)ライトバックキャシュに構成されたコンピュータ
システムで、ソフトウェア(またはハードウェア)がキ
ャシュを誤ってライトスルーモードに置くことを禁止し
(例えば、キャシュイネーブル動作への切り替えで、N
Wプロトコル選択ビットをライトスルーにセットするこ
とにより)、(b)ライトスルーキャシュに構成された
コンピュータシステムでは、通常のライトスルーキャシ
ュで動作させる(例えば、ソフトウェアが誤ってNWプ
ロトコル選択ビットをライトバックモードにセットしよ
うとすると、一般保護フォールトが発せられる)。この
ように、ライトバック構成技術によれば、本発明を実現
しているマイクロプロセッサは、プロトコル選択ビット
NWの状態をセットするための制御ビット(LOCK
NW)を利用して、ライトバックキャシュに構成され
る。
【0018】図1は、486型マイクロプロセッサ10
を示し、キャシュ12及びキャシュ制御システム13よ
りなる内部キャシュメモリシステム11を含む。バスイ
ンタフェースユニット14は、バス制御論理回路を含
み、他のバスの制御機能に加えて、HOLD/HLDA
要求アクノリッジバス調停プロトコルを実現する。キャ
シュ12は、ライトバックモードか、ライトスルーモー
ドで動作するように設計されている。キャシュ制御シス
テムは、BARBビット及びLOCK NWビットの両
方を含む制御構成レジスタを含む、キャシュ(及び他の
機能)を制御するための二つのキャシュ構成レジスタを
含む。I/Oスペースに存在するこれらレジスタへのア
クセスは、論理I/Oポート(486アーキテクチャで
は22h)へレジスタインデックスを書込み、次にデー
タ転送のため他の論理I/Oポート(486アーキテク
チャでは23h)を使用する。特に、BARBビットが
セットされている場合は、“エクスポートオンホール
ド”手法が、イネーブルされ、ライトバックコヒーレン
シを確実にし(節2.2.1を参照)、全汚れデータ
は、ホールドが要求され、HLDAがアサートされる前
に、ライトバック(エクスポート)される。
【0019】2.1 ライトバックキャシュ ライトバックキャシュの設計に付いて詳述することは本
発明のライトバックコヒーレンシシステムを有効に開示
するための必要な条件ではなく、これは当業者にとって
通常の設計の範囲内のものである。関連出願(4)及び
(5)は、キャシュメモリシステム12(及びそのライ
トバックモードでの動作)の追加説明をしていて、関連
出願(6)は、キャシュ構成レジスタの追加説明をして
いる。この節は、実施例のライトバックキャシュ設計の
一般説明をする。実施例のキャシュ12は、16バイト
(4ダブルワード)のキャシュラインサイズの2Kバイ
ト統合(命令及びデータ)キャシュである。キャシュ
は、4ウェイセットアソシアティブとして構成され、ラ
イトスルーモードか、ライトバックモードで動作する。
各4ダブルワードキャシュラインは、23ビットのタ
グ、一つの有効性ビット、四つの汚れビット(各ダブル
ワードに付き一つ)を有す。キャシュラインあたり一つ
の有効性ビットは、キャシュラインが有効か、無効か示
し、四つの汚れビットは、エクスポート即ちフラッシュ
動作期間中に必要とされるダブルワードバス書込みの数
を最小にするため設けられた。キャシュの全体の構成及
び動作は、従来のものと変わらない。
【0020】図2は、ライトバックキャシュ12の例を
示し、それぞれが四つのダブルワード長である四つの入
力/出力バッファ、即ち、キャシュフィルバッファ1
5、キャシュライトバック(フラッシュ)バッファ1
6、キャシュ照会(HITM)バッファ17、及びキャ
シュブリフェッチバッファ18を有す。キャシュフィル
バッファ15は、バーストモードのキャシュフィルサイ
クルの入力ダブルワードを組み立て、完全なキャシュラ
インが(バスコントローラ14aを経由して)ロードさ
れると、四つのダブルワードが、キャシュフィルサイク
ルを完了するために、キャシュ12へ入力(メモリ位置
合わせ)される。関連出願(5)は、(キャシュフィル
バッファまたは外部データバスからの)キャシュフィル
サイクル期間中のキャシュラインへのアクセスの逐次要
求を処理するため、即ちキャシュフィルサイクルを起動
した初期要求後のアクセス要求を処理するためのキャシ
ュフィルペンデングシステムに付いて説明している。キ
ャシュライトバックバッファ16は、キャシュラインの
置換えのためや、キャシュエクスポートやキャシュフラ
ッシュ(即ち、エクスポートし、無効化する)の期間中
の、ライトバック動作のためにキャシュラインをステー
ジする。キャシュラインの置換えでは、ライトバックバ
ッファ16は、新規キャシュラインが書き込まれる同じ
クロックサイクルで埋められ、置換えの発生とともに、
同じサイクルで置き換えられる被置換のデータの照合と
読込みを実行することによってコヒーレンシ条件が緩和
される。エクスポート及びフラッシュ動作は、キャシュ
が汚れデータを含む場合のみ実行される(2.2節参
照)。
【0021】ライトバックバッファ16は、メインメモ
リへデータを転送するために、マルチプレクサ16aを
通じてデータをバスコントローラ14aへ出力する。ラ
イトバックバッファは、ダブルワード当たり一汚れビッ
トを含み、最後のダブルワードがバスコントローラによ
り受信されてしまうまでは無効化されない。このように
して、置換え動作では、置き換えられるキャシュライン
は、ライトバックバッファ16に転送され、汚れビット
がライトバックが必要かどうかを判断するためにチェッ
クされる。同様に、エクスポート及びフラッシュ動作で
は、各キャシュラインは、ライトバックバッファに読み
込まれ、汚れビットが調べられる。汚れビットの状態に
よって、マルチプレクサ16aは、必要なら、どのダブ
ルワードを、ライトバックするかを選択するのに使用さ
れる。キャシュ照会バッファ17は、他のバスマスタが
(キャシュコヒーレンシの維持のため)外部メモリバス
のアドレスを駆動するとき、マイクロプロセッサにより
実行されるスヌーピング動作の期間中、外部照会の主体
となるキャシュラインを記憶する。照会バッファは、マ
ルチプレクサ17aを通じてバスコントローラ14へデ
ータを出力する。このバッファは、ライトバックプロト
コルをサポートするコンピュータシステムでの照会をサ
ポートするのに使用され、コンピュータシステムは、ラ
イトスルーキャシュをサポートするのみの本実施例の環
境下では、使用されない。
【0022】キャシュプリフェッチバッファ18は、キ
ャシュ12への命令アクセスの数を最小にするために使
用しされる。プリフェッチ命令要求は、まず、プリフェ
ッチバッファ18にて照会され、プリフェッチミスの場
合は、キャシュ12で照会される。キャシュ12でプリ
フェッチミスの場合は、プリフェッチサイクルが実行さ
れ、プリフェッチバッファは、外部データバスからロー
ドされ、同時にその命令がキャシュフィルバッファ16
及び命令待ち行列19へ入力される。ライトバックモー
ドで動作する期間はキャシュ12のコヒーレンシを維持
するための本実施例でのマイクロプロセッサで利用され
る本発明を実施するライトバックコヒーレンシシステム
の主な特徴は、(a)BARBエクスポートオンホール
ド機能、(b)PDIRTY瞬時無効化機能、(c)X
%DIRTY待ち時間短縮機能、及び(d)INVD命
令実行機能がある。これらの機能は、従来の順序論理
(組み合わせ、クロック制御論理)設計技術を用いて実
現できる。 2.2 BARB機能 本発明を実施するBARBライトバックコヒーレンシの
特徴は、他のバスマスタがHOLDをアサートし、マイ
クロプロセッサがHLDAを戻す以前に、キャシュの汚
れデータをメインメモリにエクスポートし、従って、要
求側バスマスタによるいかなるアクセスより以前に、キ
ャシュ12の現データによりメインメモリを更新する。
【0023】図3は、BARBエクスポートオンホール
ド機能を示す。図1では、バスコントローラ14aは、
他のバスマスタがメインメモリへアクセスするためにメ
モリバスへのアクセスを要求するときを検出するための
マイクロプロセッサのホールド信号をサンプリングする
(図3の20)バス調停論理回路を含む。要求側バスマ
スタがホールドをアサートすると、バス調停論理回路
は、キャシュ制御システム13に調停要求条件を信号出
力する。キャシュ制御システム13のライトバックコヒ
ーレンシは、BARBビットをテストし、クリアされて
いる場合(即ち、エクスポートオンホールドが禁止ささ
ている)、バス調停論理回路に要求側バスマスタにHL
DA応答を戻すことができる旨の信号を出力する。しか
し、BARBビットがセットされていると、ライトバッ
クコヒーレンシシステムのエクスポートオンホールド機
能は、使用可能となる。 2.2.1 エクスポートオンホールド エクスポートオンホールドが使用可能である場合は、キ
ャシュコヒーレンシ制御システム13のライトバックコ
ヒーレンシ論理回路は、従来のデータエクスポート動作
(30)を実行する。キャシュの各ラインの汚れビット
は、汚れデータ(即ち、あらゆる汚れダブルワード)を
含むそれらキャシュユニットを検出する(32)ために
チェックされる。ライトバックキャシュの本実施例で
は、汚れているそれらキャシュユニット(ダブルワー
ド)は、メモリ書込みサイクルでメインメモリへライト
バックされる(34)。これに替えて、ライトバックキ
ャシュ設計は、ライン内のいかなるキャシュユニットが
汚れている場合でも、不必要なバストラフィックのある
ものを犠牲にして、キャシュラインの全体をエクスポー
トする。
【0024】汚れデータのエクスポート動作は、メイン
メモリを更新し、要求側バスマスタによるそのデータへ
のいかなるアクセスも、キャシュにあるより最新のデー
タを使用することを確実にしている。この動作は、キャ
シュラインが無効化されないという意味では、フラッシ
ュ動作ではなく、エクスポート動作の機能は、単に、キ
ャシュにある修正されたデータの最新版でメインメモリ
を更新することである。エクスポート動作が完了する
と、キャシュ制御システム13のライトバックコヒーレ
ンシ論理回路は、HLDAをアサートすることで(4
0)、HOLD/HLDAハンドシェイクを完了するよ
うに、従ってメモリバスの制御を要求側バスマスタへ許
可するようにバス調停論理回路へ信号を出力する。要求
側バスマスタは、次に、EADSアドレスストローブ信
号をアサートし、メモリバスへアドレスを駆動する。 2.2.2 キャシュライン無効化 従来のスヌーピング論理回路は、メモリバスを監視する
キャシュ制御システム14のバスコントローラ14a
(図2)に含まれる。HLDAのアサートにより動作可
能となると、スヌーピング論理回路は、要求側バスマス
タによりメモリバスに駆動されたアドレスをモニタする
(50)。具体的には、バスコントローラ14aのスヌ
ーピング論理回路は、EADSストローブをサンプリン
グして(52)、キャシュ制御システム13のスヌーピ
ング論理回路へ、(アドレスバッファを通じて)アドレ
スバス上に現れる次のバスマスタアドレスがキャシュ1
2の内容をチェックし、対応するデータがキャシュに記
憶されているかどうか判断する(54)ために使用され
るべきことを通報する。
【0025】このスヌーピング論理回路が、要求側バス
マスタが、現在キャシュされているメインメモリ内の位
置をアドレス指定していることを検出すると、アドレス
指定されたデータを含むキャシュライン全体を無効化す
るために無効化動作を実行する(56)。このスヌーピ
ング動作は、キャシュコヒーレンシが確実に維持される
ようにし、要求側バスマスタによるキャシュされたデー
タへのアクセスは、メインメモリでのデータの修正をも
たらし、キャシュのそのデータの写しは、無効とされ
る。このスヌーピング動作では、エクスポートオンホー
ルド機能がキャシュを汚れデータを除いてクリーンにし
た後、実施例のマイクロプロセッサは、ライトスルーキ
ャシュの従来の486型マイクロプロセッサと互換的に
機能する。即ち、スヌーピング動作は、該当バスライト
バックサイクル(2.1.3及び2.2節参照)でフラ
ッシュ動作(無効化の前にエクスポート)を実行する必
要性なしに、外部バスマスタにより駆動されたアドレス
に対応するキャシュラインを無効化することにより実施
される。これは、エクスポートオンホールド機能が必要
されず、マイクロプロセッサが、外部バスマスタより駆
動されるアドレスを監視し、キャシュにヒットがあれ
ば、HITMをアサートし、キャシュラインをフラッシ
ュするライトバックプロトコルをコンピュータシステム
がサポートしている場合であるとするなら、マイクロプ
ロセッサにより実行され得るであろうスヌーピングと対
照をなす。
【0026】要求側バスマスタが、メモリアクセス動作
を完了すると、これは、HOLDをアサートすること
で、HOLD/HLDA要求アクノリッジハンドシェイ
クを完了する。(HLDAをアサートする一方でHOL
Dのサンプリングを継続する)マイクロプロセッサは、
HLDAをアサートすることによって、応答し、マイク
ロプロセッサを含む他のバスマスタがメモリバスでメイ
ンメモリにアクセスすること可能にしている。図6は、
エクスポートオンホールド機能、特にCLK、HOL
D、HLDA及びメモリバスの状態を示す信号を示す。
要するに、HOLDがアサートされると(61)、マイ
クロプロセッサは、汚れデータ(63)をメモリバスで
メインメモリへエクスポートする。キャシュがクリーン
の場合は(64)、メインメモリへエクスポートする。
キャシュがクリーンの場合は(64)、HLDAがアサ
ートされ(66)、外部バスマスタがバスを制御可能と
なる。 2.2.3 ライトスルーへの切り替え 要求側のバスマスタがメインメモリにアクセスする間
は、マイクロプロセッサのCPUは、キャシュからの命
令の実行を継続することが可能である。CPUにより発
せられたキャシュ12への読込みアクセス要求では、デ
ータがキャシュされていれば、CPUへデータが戻さ
れ、キャシュでアクセス要求ミスがあると、CPUは、
マイクロプロセッサが、メインメモリからの対応するキ
ャシュラインを検索するために必要なバスサイクルをマ
イクロプロセッサが実行するまで機能停止する。
【0027】CPUによる書込みアクセスの場合、書込
みアクセスがキャシュ12でヒットすると、コヒーレン
シ条件が強化され、キャシュでのミスの場合は、メイン
メモリ中へデータを書き込むバスライトサイクルを生じ
る(これは、キャシュ書込み割当手法に依存してキャシ
ュフイルサイクルを生じさせるかも知れないし、生じさ
せないかも知れない)。即ち、キャシュは、ライトバッ
クモードなので、ライトアクセスのヒットにより、デー
タはキャシュ内に書き込まれるが、メインメモリには書
き込まれない。このようにして、CPUは、バスライト
サイクルの要求事項により機能停止することなく、書込
みアクセスを完了することができる。この書込みアクセ
スは、要求側バスマスタがメインメモリ内の同じデータ
にアクセスしている間に起こり、要求側バスマスタによ
るメモリアクセス以前にメインメモリにエクスポートさ
れない汚れデータを発生させる。(このコヒーレシン問
題は、コンピュータシステムがライトバックプロトコル
をサポートしていれば回避できる。) 実施例のマイクロプロセッサは、汚れデータエクスポー
ト動作の後に、キャシュ12をライトスルーモードに動
的に切り替えられ、メモリバスがマイクロプロセッサへ
調停により戻されるとき(即ち、要求側バスマスタがH
OLDをデアサートし、バス制御論理回路がHLDAを
デアサートすることで応答するとき)ライトバックモー
ドに切り替えられる。この場合、エクスポートオンホー
ルド動作の後に、キャシュ12は、読込みアクセス(ヒ
ットまたはミス)及び書込みアクセス(ミス)のために
CPU(及び他のキャシュ要求側)により利用可能であ
る。しかし、書込みヒットは、バスライトサイクル中に
書込みバッファへ通知される(書込みバッファが利用で
きない場合は、CPUは機能停止する)。
【0028】2.3 PDIRTY瞬時無効化 以下に説明の本発明の実施例では、ライトバックコヒー
レンシシステムは、キャシュ12が汚れデータを含まな
いか、または、キャシュが汚れデータを潜在的に含む可
能性がある場合を示して、無効化理論回路が、まず、デ
ータエクスポート(ライトバック)動作を第一に実行し
ないで無効化動作を実行できるような論理回路(PDI
RTY論理回路)を実現している。キャシュ12は、メ
インメモリへエクスポートされるべきであった汚れデー
タを各キャシュラインが含むかどうかを判断するため
に、各キャシュラインをテストすることなしに、単サイ
クルで無効化されることが可能である。この同じPDI
RTY機能は、単ライン無効化(バススヌーピング期間
中に発生する)へ利用可能である。PDIRTY瞬時無
効化機能は、PDIRTY内部状態ビットを利用して実
行できる。エクスポート動作後(且つ、リセット状態
で)、PDIRTYは、キャシュ12がクリーンで、即
ち、全汚れビットがクリアされた状態であることを示す
ために、セットされる。書込みがライトバックモード
(即ち、ライトスルーバス書込みサイクルを生じさせる
ことなく)、発生するとすぐに、キャシュライトバック
コヒーレンシ論理回路は、PDIRTYをセットするこ
とで、キャシュが汚れデータを現在含んでいることを示
す。
【0029】図1、3b及び3cでは、バス調停論理回
路がHOLDを検出し(20)、調停要求条件を信号出
力した後に、キャシュ制御システム13は、BARBビ
ットがセットされたことを判断し(22)、キャシュ制
御システム13のライトバックコヒーレンシ論理回路
は、PDIRTYビットをテストする(72、図5)。
PDIRTYビットがクリアされていると、エクスポー
ト動作は省略することができ、バス調停論理回路は、直
ちにHLDAをアサートするように通知を受ける(4
0)。PDIRTYがセットされて、キャシュ12は潜
在的に汚れデータを含んでいることを示すと、ライトバ
ックコヒーレンシ論理回路は、データエクスポート動作
(30)の実行にすすむ。エクスポート動作が完了する
と、PDIRTYは、クリアされる(74、図5)。P
DIRTYがクリアされると、スヌーピング論理回路
は、単サイクルで、各キャシュライン無効動作を実行す
る(56)(外部バスサイクルは実行されない)。即
ち、スヌーピング論理回路は、(二サイクルの無効化動
作となっていたであろう)他の無効化動作の前に、無効
とするキャシュラインの汚れドット(先行のエクスポー
ト動作の故に、クリーンである)を第一にテストすると
いう通常のライトバック無効化オーバヘッドを回避す
る。これに替えて、キャシュラインを、ライトバックバ
ッファか、照会バッフアかに(図2の16または1
7)、一サイクルで読込み、次のサイクルで汚れビット
をチェックし、次のキャシュライン無効化は、それらの
汚れビットがチェックされるまでは受け付けられない。
【0030】更に、PDIRTYクリアでは、キャシュ
12は、キャシュの内容全体の単サイクル無効化のフラ
ッシュ信号に応答することが可能である。即ち、PDI
RTYクリアは、汚れデータをエクスポートすることを
不要とするので、汚れデータを検出するためのキャシュ
のラインを読み込むエクスポート動作は、不要となる。
ライトバックモード期間中の単サイクルキャシュ及びキ
ャシュライン無効化を実現することに加えて、この特徴
の故に、マイクロプロセッサは、ライトスルーモードで
動作する従来の486型マイクロプロセッサ用の単サイ
クルキャシュ及びキャシュライン無効化仕様を満足す
る。PDIRTYのタイミング信号は、図4に示され
る。PDIRTYは、HOLDがアサートされる(6
1)より前のある時間にセットされ(68)、次にエク
スポート動作(64)の後にクリアされる(69)。 2.4 X%DRITY待ち時間短縮 以下に説明の本発明の実施例では、ライトバックコヒー
レンシシステムは、書込により、汚れたデータを含むキ
ャシュロケーションの数が、キャシュロケーションの総
数に対する予め設定した最大のパーセントを越えるいか
なる期間でも、ライトバックからライトスルーモードへ
キャシュを動的切り替えをする論理回路(X%DIRT
Y論理回路)を実現している。これにより、いかなる時
点でも、汚れデータを含むことが可能なキャシュ12の
容量の予め設定されたパーセント基づき、オペレーティ
ングシステムは、最大保証HLDA待ち時間を課すこと
が許される。ライトバックの高性能化に加えて、この特
徴により、マイクロプロセッサ10は、HOLDがアサ
ートされた後、HLDAが最大待ち時間内にマイクロプ
ロセッサにより戻されるのを想定する(ディスクコント
ローラといった)ある種のバスマスタ製品と使用するこ
とが可能となる。
【0031】ライトバックコヒーレンシシステムのX%
DIRTY機能は、キャシュ制御システム13のCDI
RTYMAX及びCDIRTYCURの二つのレジスタ
を使用して実行される。CDIRTYMAXレジスタ
は、汚れデータを含む、キャシュロケーションの最大許
容数に対応する予め設定された値を記憶する。CDIR
TYCURレジスタは、汚れデータを含むキャシュロケ
ーションの現在数に対応する値を記憶する。これらレジ
スタの両方とも、汚れ状態の情報が維持されるキャシュ
12の最小ユニットに基づく数、本実施例のキャシュの
場合は、ダブルワード、を二進コード化するに十分大き
い。CDIRTMAXは、オペレーティングシステムの
制御下でCDIRTMAX値をロードすることによりリ
セット状態で初期設定される。CDIRTYCURは、
電源オン時またはハードリセット時、あるいはキャシュ
エクスポートまたはフラッシュ(無効化処理が続くエク
スポート)の後に、初期設定され、通常のライトバック
キャシュ動作期間中は、増分または減分される。キャシ
ュ制御システム(図1の13)のライトバックコヒーレ
ンシ論理回路は、書込みアクセス及び汚れデータエクス
ポートが発生するとCDIRTYCURを増分/減分す
るために、ライトバックモード期間中に動作するX%D
IRTY論理回路を含む。同時に、X%DIRTY論理
回路は、CDIRTYCURの値をモニタし、かつ、C
DIRTYCURがCDIRTYMAX以上であり、キ
ャシュへの書込みがCDIRTYCURを増加するいか
なる期間でも、キャシュを動的にライトバックモードか
らライトスルーモードへ切り替える。
【0032】図6aは、X%DIRTYライトバックコ
ヒーレンシ機能を示す。ライトバックモードでは、X%
DIRTY論理回路は、キャシュアクセスの各種類、即
ち、読込み、書込み、置換え、無効化、またはエクスポ
ートをモニタする(100)。読込みアクセスは、キャ
シュの汚れデータ量に何の影響も与えず、従って無視さ
れる。キャシュアクセスが書込みの場合は、X%DIR
TY論理回路は、CDIRTYCURとCDIRTYM
AXを比較する(110)。CDIRTYCURがCD
IRTYMAXより小さい場合は、書込みアクセスは、
ライトスルーモードへの切り替えは、発生させない(1
12)。CDIRTYCURがCDIRTYMAX以上
の場合は、X%DIRTY論理回路は、キャシュ制御シ
ステムをライトスルーモードへ動的切り替えを実行する
(114)。書込みアクセスは、完了し、書込みは、メ
インメモリにもライトスルーされるので、汚れキャシュ
ユニットを増加させることはない。X%DIRTY論理
回路は、キャシュアクセスの種類をモニタする(10
0)。キャシュアクセスが置換え、無効化、またはエク
スポート動作の場合は、CDIRTYCURは、対応し
て減分される(120)。次の書込みアクセスでは、C
DIRTYCURは、CDIRTYMAXより小さい値
に減分されていて、X%DIRTY論理回路は、CDI
RTYCURはCDIRTYMAX(110)より小さ
いことを検出し、キャシュ制御システムにライトバック
モードへ動的に切り替えさせる(112)。
【0033】図6aと共に、図6bは、CDIRTYC
URがCDIRTYMAX以上でライトバックモードで
ライトアクセスが発生した状態を処理するための上述の
方法の変形を示している。書込みアクセスが一度に二つ
以上のキャシュユニットを汚し、CDIRTYCUR
が、CDIRTYMAXより小さい値からCDIRTY
MAXより大きい値に増分されると、CDIRTYCU
Rは、CDIRTYMAXを越えることが可能となる。
実施例のライトバックコヒーレンシシステムで、CDI
RTYCURがCDIRTYMAX以上で書込みアクセ
スが発生すると(110、図6a)、X%DIRTY論
理回路は、書込みアクセスが汚れユニットの数を増加す
るかどうかを判定するため(図6bの130)、該当キ
ャシュラインへ問い合わせる。汚れユニットの数が増加
する場合は、キャシュは、動的にその書込みアクセスの
ために、ライトスルーモード(図6aの114)へ切り
替わる。しかし、書込みアクセスが、例えば既に汚れた
キャシュユニットへの書込みアクセスといった、汚れキ
ャシュユニットの数を増加しない場合は、X%DIRT
Y論理回路は、ライトスルーモード(図6aの112)
への切り替えを実行する。
【0034】2.4 INVD命令 本発明のINVD命令実行により、INVD命令は、W
BINVD命令として取り扱われ、従って、あらゆる汚
れデータをライトバックするためにエクスポート動作
が、キャシュ無効化に先行するフラッシュ動作を呼び出
す。(ソフトウェアがライトスルーであると想定してい
る)内部キャシュを無効化するためのINVD命令を使
用する既存のソフトウェアとの互換性を維持するため
に、本発明の実施例のライトバックコヒーレンシ手法
は、INVD命令をWBINVD命令として解釈させて
いる。特に、キャシュ制御システムがINVDをWBI
NVDと解釈し、無効化以前にフラッシュを実行する
と、瞬時無効化が実行可能かどうかを(従って汚れデー
タのライトバックを不要とする)判定するためにPRI
RTYをチエックすることを含むエクスポート動作が実
行される。 3.結論 本発明の実施例の詳細な説明は、特定の実施例について
なされたが、これら実施例の変形や代替の実施例は、当
業者によれば容易に可能である。例えば、本発明は、ラ
イトバックコヒーレンシプロトコルなしの環境下で動作
するライトバックキャシュメモリのためのキャシュコヒ
ーレンシを維持するという一般利用も可能である。キャ
シュ動作(読込み、書込み、置換え、無効化、エクスポ
ート)の個別の実行を含むキャシュ構成、及び該当キャ
シュ制御動作、及びキャシュラインのキャシュユニット
数としての構成条件は、従来技術の範囲内に入る詳細で
あり、本発明にとってさほど重要ではない。プロセッサ
とキャシュの組み合わせは、単一のマイクロプロセッサ
に集積化されるのが一般的であるが、キャシュを外部装
置としてもかまわない。用語“キャシュ”は、一次記憶
装置の総称であるが、用語“レジスタ”は、記憶位置の
総称である。
【0035】本発明は、特許請求の範囲に含まれる変形
及び代替実施例の全てを包含する。
【図面の簡単な説明】
【図1】ライトバックキャシュを含む486型マイクロ
プロセッサを示す。
【図2】本発明を実施するライトバックキャシュコヒー
レンシを示す。
【図3】図2に示されるライトバックコヒーレンシシス
テムの動作に関連する“エクスポートオンホールド”機
能及び“PDIRTY”機能のフロー図である。
【図4】図2に示されるライトバックコヒーレンシシス
テムの動作に関連する“エクスポートオンホールド”機
能及び“PDIRTY”機能のフロー図である。
【図5】図2に示されるライトバックコヒーレンシシス
テムの動作に関連する“エクスポートオンホールド”機
能及び“PDIRTY”機能のフロー図である。
【図6】図2に示されるライトバックコヒーレンシシス
テムの“X%DIRTY”機能を示すフロー図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク ブルーム アメリカ合衆国 テキサス州 75007 カ ーロルトン ブルックシャー ドライヴ 2711 (72)発明者 ジェフリー エス バーン アメリカ合衆国 テキサス州 75044 ガ ーランド カペラ サークル 2816 (72)発明者 ディヴィッド エイ コートライト アメリカ合衆国 テキサス州 75082 リ チャードソン ハニーサックル 2671 (72)発明者 ダグラス エーウィング ダスチャトコ アメリカ合衆国 テキサス州 75075 プ ラノハーパーズ プレイス 3512 (72)発明者 ラウル エイ ガリベイ ジュニア アメリカ合衆国 テキサス州 75074 プ ラノティー3 イースト パーク 2500 (72)発明者 マーガレット アール ヘルビン アメリカ合衆国 テキサス州 75019 コ ッペル エディンバーグ レーン 540

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 ライトバックモードでの動作可能なキャ
    シュでのプロセッサ/キャシュの組み合わせのためのラ
    イトバックコヒーレンシシステムであって、プロセッサ
    以外のバスマスタがメインメモリにアクセスを許可され
    る場合を調停するのに要求アクノリッジバス調停プロト
    コルが使用され、キャシュコヒーレンシを維持するため
    のライトバックプロトコルをコンピュータシステムがサ
    ポートしていないマルチマスコンピュータシステムで使
    用されるプロセッサ/キャシュに於いて、 メモリアルアクセスのためのバスマスタによる要求を示
    す調停要求信号を検出するためのバス調停論理回路と、 汚れデータを含むキャシュロケーションが、存在すれ
    ば、検出され、対応する汚れデータがメモリヘライトバ
    ックされるデータエクスポート動作を、調停要求信号の
    検出に応答して、実行するためのライトバックコヒーレ
    ンシ論理回路と、 前記エクスポート動作が完了すると、前記要求側バスマ
    スタにメモリアクセスを許可するために、前記バス調停
    論理回路は、調停アクノリッジ信号をアサートし、 前記要求側バスマスタによりアクセスされたメモリロケ
    ーションに対応する少なくともキャシュロケーションを
    無効化するための無効化論理回路を含むことを特徴とす
    るライトバックコヒーレンシシステム。
  2. 【請求項2】 前記無効化論理回路は、前記要求含バス
    マスタからの出力されるアドレスをモニタし、各バスマ
    スタアドレスに応答して、そのアドレスがキャシュのデ
    ータに対応するかどうかを判断し、対応すれば、そのデ
    ータを含む少なくとも前記キャシュのロケーションを無
    効化するための無効化動作を実行するためのスヌーピン
    グ論理回路を含むことを特徴とする請求項1記載のライ
    トバックコヒーレンシシステム。
  3. 【請求項3】 前記キャシュは、各キャシュラインから
    構成され、前記無効化動作は、一つのキャシュライン全
    体を無効化することを特徴とする請求項2記載のライト
    バックコヒーレンシシステム。
  4. 【請求項4】 エクスポート動作を完了した後に、前記
    ライトバックコヒーレンシ論理回路は、前記要求側バス
    マスタがメモリにアクセスしている間は前記キャシュの
    データが汚されないように、ライトバックキャシュをラ
    イトスルーモードへ動的に切り替えることを特徴とする
    請求項1〜3のいずれか1項に記載のライトバックコヒ
    ーレンシシステム。
  5. 【請求項5】 前記キャシュがいつ汚れデータを含まな
    いかを指示するための指示論理回路と、汚れデータの検
    出の必要を除去するために、データエクスポート動作を
    第一に実行することなく、無効化動作を実行するため、
    前記指示に応答する前記無効化論理回路とを更に含むこ
    とを特徴とする請求項1記載のライトバックコヒーレン
    シシステム。
  6. 【請求項6】 前記指示論理回路は、無効化動作がキャ
    シュ全体を対象とした場合のみ動作可能となることを特
    徴とする請求項5記載のライトバックコヒーレンシシス
    テム。
  7. 【請求項7】 書込により、汚れデータを含むキャシュ
    ロケーションの数が、キャシュロケーションの総数に対
    する予め設定した最大のパーセントを越えるいかなる期
    間でも、ライトバックからライトスルーモードへ前記キ
    ャシュを動的切り替えをするためのスィッチング論理回
    路を更に含むことを特徴とする請求項1〜6のいずれか
    1項に記載のライトバックコヒーレンシシステム。
  8. 【請求項8】 前記スィッチング論理回路は、 汚れデータを含むキャシュロケーションの最大許容数に
    対応する予め設定の値を記憶する第一レジスタと、 汚れデータを含むキャシュロケーションの最新の数に対
    応する値を記憶する第二レジスタと、 クリーンなデータロケーションへキャシュアクセスが書
    き込まれ前記クリーデータロケーションが汚される場合
    は、前記第二レジスタの値を増分するか、キャシュアク
    セスが汚れロケーションを新規データで置き替えるか、
    汚れロケーションを無効化するか、汚れロケーションを
    エクスポートする場合は、前記第二レジスタの値を減分
    するための増分論理回路と、 書込みにより前記第二レジスタの値が前記第一レジスタ
    の値以上となり、かつ、前記書込みは、更なるクリーン
    なロケーションを汚すような前記あらゆる書込みに付い
    て、ライトバックモードからライトスルーモードへ前記
    キャシュを動的に切り替え、従って前記第二レジスタが
    更なる増分を回避するためのキャシュモードスィッチン
    グ論理回路とを含むことを特徴とする請求項7記載のラ
    イトバックコヒーレンシシステム。
  9. 【請求項9】 プロセッサ命令セットは、前記キャシュ
    を無効化するための命令と、前記キャシュをフラッシュ
    するための命令とを含み、前記ライトコヒーレンシ論理
    回路は、前記無効化命令をフラッシュ命令として解釈す
    ることを特徴とする請求項1〜8項のいずれか1項に記
    載のライトバックコヒーレンシシステム。
  10. 【請求項10】 ライトバックモードで動作可能なキャ
    シュでのプロセッサ/キャシュの組み合わせのためのラ
    イトバックコヒーレンシシステムであって、プロセッサ
    以外のバスマスタがメインメモリにアクセスを許可され
    る場合を調停するのに要求アクノリッジバス調停プロト
    コルが使用され、コンピュータシステムがライトスルー
    モードでのみ使用されるマルチマスタコンピュータシス
    テムで使用されるプロセッサ/キャシュに於いて、 メモリアクセスのためにバスマスタによる要求を示す調
    停要求信号を検出し、 汚れデータを含むキャシュロケーションが、存在する場
    合、検出され、対応する汚れデータがメモリヘライトバ
    ックされるデータエクスポート動作を、調停要求信号の
    検出に応答して、実行し、 前記エクスポート動作が完了すると、前記要求側バスマ
    スタにメモリアクセスを許可するために、調停アクノリ
    ッジ信号をアサートし、 前記要求側バスマスタによりアクセスされたメモリロケ
    ーションに対応する少なくともそれらのキャシュロケー
    ションを無効化するステップを含むことを特徴とするラ
    イトバックコヒーレンシ法。
  11. 【請求項11】 前記無効化ステップは、 前記要求側バスマスタからの出力されるアドレスをモニ
    タし、 各バスマスタアドレスに応答して、そのアドレスがキャ
    シュのデータに対応するかどうかを判断し、対応すれ
    ば、そのデータを含む少なくとも前記キャシュのロケー
    ションを無効化するための無効化動作を実行するステッ
    プを含むことを特徴とする請求項10記載のライトバッ
    クコヒーレンシ法。
  12. 【請求項12】 エクスポート動作を完了した後に、前
    記要求側バスマスタがメモリにアクセスしている間は前
    記キャシュのデータが汚されないように、ライトバック
    キャシュをライトスルーモードへ動的に切り替えるステ
    ップを更に含むことを特徴とする請求項10及び11の
    いずれか1項に記載のライトバックコヒーレンシ法。
  13. 【請求項13】 前記キャシュがいつ汚れデータを含ま
    ないかを指示し、汚れデータの検出の必要を除去するた
    めに、データエクスポート動作を第一に実行することな
    く、無効化動作を実行するため、前記指示に応答するス
    テップを更に含むことを特徴とする請求項10〜12の
    いずれか1項に記載のライトバックコヒーレンシ法。
  14. 【請求項14】 書込により、汚れたデータを含むキャ
    シュロケーションの数が、キャシュロケーションの総数
    に対する予め設定した最大のパーセントを越えていかな
    る期間でも、ライトバックからライトスルーモードへ前
    記キャシュを動的切り替えをするステップを更に含むこ
    とを特徴とする請求項10〜13のいずれか1項に記載
    のライトバックコヒーレンシ法。
  15. 【請求項15】 プロセッサ命令セットは、前記キャシ
    ュを無効化するための命令と、前記キャシュをフラッシ
    ュするための命令とを含み、前記無効化命令をフラッシ
    ュ命令として解釈するステップを更に含むことを特徴と
    する請求項10〜14のいずれか1項に記載のライトバ
    ックコヒーレンシ法。
JP5283263A 1992-11-13 1993-11-12 ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ Pending JPH07168763A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97636692A 1992-11-13 1992-11-13
US07/976366 1992-11-13

Publications (1)

Publication Number Publication Date
JPH07168763A true JPH07168763A (ja) 1995-07-04

Family

ID=25524025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5283263A Pending JPH07168763A (ja) 1992-11-13 1993-11-12 ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ

Country Status (3)

Country Link
US (3) US5664149A (ja)
EP (1) EP0600626A1 (ja)
JP (1) JPH07168763A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd 情報処理装置
JP2010027048A (ja) * 2008-07-07 2010-02-04 Intel Corp 部分書込と非スヌープアクセスとの間のメモリ順序付け要件の充足

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664106A (en) * 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
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
US5802574A (en) * 1993-12-28 1998-09-01 Intel Corporation Method and apparatus for quickly modifying cache state
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
US5699548A (en) * 1995-06-01 1997-12-16 Intel Corporation Method and apparatus for selecting a mode for updating external memory
US5860110A (en) * 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
US5860105A (en) * 1995-11-13 1999-01-12 National Semiconductor Corporation NDIRTY cache line lookahead
US5815648A (en) * 1995-11-14 1998-09-29 Eccs, Inc. Apparatus and method for changing the cache mode dynamically in a storage array system
US5778432A (en) * 1996-07-01 1998-07-07 Motorola, Inc. Method and apparatus for performing different cache replacement algorithms for flush and non-flush operations in response to a cache flush control bit register
US6021473A (en) * 1996-08-27 2000-02-01 Vlsi Technology, Inc. Method and apparatus for maintaining coherency for data transaction of CPU and bus device utilizing selective flushing mechanism
US6049866A (en) * 1996-09-06 2000-04-11 Silicon Graphics, Inc. Method and system for an efficient user mode cache manipulation using a simulated instruction
US6581126B1 (en) * 1996-12-20 2003-06-17 Plx Technology, Inc. Method, system and apparatus for a computer subsystem interconnection using a chain of bus repeaters
US5900016A (en) * 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture
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
US6658537B2 (en) * 1997-06-09 2003-12-02 3Com Corporation DMA driven processor cache
GB2331379A (en) * 1997-11-13 1999-05-19 Advanced Telecommunications Mo Controlling access to a shared memory by dual mapping
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
US6418537B1 (en) 1997-12-07 2002-07-09 Conexant Systems, Inc. Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL
US6516442B1 (en) 1997-12-07 2003-02-04 Conexant Systems, Inc. Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
US6292705B1 (en) 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US6633945B1 (en) 1997-12-07 2003-10-14 Conexant Systems, Inc. Fully connected cache coherent multiprocessing systems
US6134635A (en) * 1997-12-09 2000-10-17 Intel Corporation Method and apparatus of resolving a deadlock by collapsing writebacks to a memory
US6438660B1 (en) 1997-12-09 2002-08-20 Intel Corporation Method and apparatus for collapsing writebacks to a memory for resource efficiency
US6023747A (en) * 1997-12-17 2000-02-08 International Business Machines Corporation Method and system for handling conflicts between cache operation requests in a data processing system
JPH11272555A (ja) * 1998-03-20 1999-10-08 Fujitsu Ltd キャッシュメモリ制御システム
JP3626609B2 (ja) * 1998-10-30 2005-03-09 日本電気株式会社 マルチプロセッサシステム
US6795968B1 (en) 1998-11-25 2004-09-21 Microsoft Corporation Dynamic object behavior for object-oriented-computing environments
US6304879B1 (en) * 1998-11-25 2001-10-16 Microsoft Corporation Dynamic data cache for object-oriented computing environments
US6473769B1 (en) 1999-03-31 2002-10-29 Microsoft Corporation Property linking in object-oriented computing environments
US6564301B1 (en) * 1999-07-06 2003-05-13 Arm Limited Management of caches in a data processing apparatus
US6469988B1 (en) 1999-07-08 2002-10-22 Conexant Systems, Inc. Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals
JP3710341B2 (ja) * 1999-09-02 2005-10-26 富士通株式会社 キャッシュパージ制御機構を有するプロセッサ
US6438658B1 (en) * 2000-06-30 2002-08-20 Intel Corporation Fast invalidation scheme for caches
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP4434534B2 (ja) * 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
US6928518B2 (en) * 2001-11-01 2005-08-09 Sun Microsystems, Inc. Disk drive employing adaptive flushing of a write cache
US7003630B1 (en) * 2002-06-27 2006-02-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor storage hierarchies
US7017025B1 (en) 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
US6895475B2 (en) * 2002-09-30 2005-05-17 Analog Devices, Inc. Prefetch buffer method and apparatus
US7130969B2 (en) * 2002-12-19 2006-10-31 Intel Corporation Hierarchical directories for cache coherency in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US6976132B2 (en) * 2003-03-28 2005-12-13 International Business Machines Corporation Reducing latency of a snoop tenure
US7636815B1 (en) 2003-04-09 2009-12-22 Klaiber Alexander C System and method for handling direct memory accesses
US8751753B1 (en) 2003-04-09 2014-06-10 Guillermo J. Rozas Coherence de-coupling buffer
US7233880B2 (en) * 2003-09-11 2007-06-19 Intel Corporation Adaptive cache algorithm for temperature sensitive memory
GB0326293D0 (en) * 2003-11-12 2003-12-17 Ibm Data storage systems
TWI242134B (en) * 2004-02-12 2005-10-21 Via Tech Inc Data extraction method and system
CN1307560C (zh) * 2004-03-25 2007-03-28 威盛电子股份有限公司 数据撷取方法及***
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7231497B2 (en) * 2004-06-15 2007-06-12 Intel Corporation Merging write-back and write-through cache policies
US7254686B2 (en) * 2005-03-31 2007-08-07 International Business Machines Corporation Switching between mirrored and non-mirrored volumes
US7971002B1 (en) 2005-04-07 2011-06-28 Guillermo Rozas Maintaining instruction coherency in a translation-based computer system architecture
US20070079070A1 (en) * 2005-09-30 2007-04-05 Arm Limited Cache controller
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US7774522B2 (en) * 2008-11-17 2010-08-10 Applied Micro Circuits Corporation Cache stashing processor control messages
US8464001B1 (en) * 2008-12-09 2013-06-11 Nvidia Corporation Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism
US8140767B2 (en) * 2009-06-04 2012-03-20 International Business Machines Corporation Cache management through delayed writeback
US8756377B2 (en) * 2010-02-02 2014-06-17 Arm Limited Area and power efficient data coherency maintenance
WO2011114384A1 (en) * 2010-03-19 2011-09-22 Hitachi, Ltd. Storage system and method for changing configuration of cache memory for storage system
US9075720B2 (en) * 2010-10-04 2015-07-07 International Business Machines Corporation Locking a cache line for write operations on a bus
CN102567220A (zh) * 2010-12-10 2012-07-11 中兴通讯股份有限公司 Cache存取的控制方法及装置
US20130117511A1 (en) * 2011-11-08 2013-05-09 Arm Limited Data processing apparatus and method
US20130262780A1 (en) * 2012-03-30 2013-10-03 Srilatha Manne Apparatus and Method for Fast Cache Shutdown
DE112013007751B3 (de) * 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US8949544B2 (en) * 2012-11-19 2015-02-03 Advanced Micro Devices, Inc. Bypassing a cache when handling memory requests
WO2014102879A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Data storage apparatus and control method thereof
US9244841B2 (en) * 2012-12-31 2016-01-26 Advanced Micro Devices, Inc. Merging eviction and fill buffers for cache line transactions
US9058282B2 (en) * 2012-12-31 2015-06-16 Intel Corporation Dynamic cache write policy
US9646012B1 (en) * 2014-03-06 2017-05-09 Veritas Technologies Llc Caching temporary data in solid state storage devices
US10248567B2 (en) 2014-06-16 2019-04-02 Hewlett-Packard Development Company, L.P. Cache coherency for direct memory access operations
US9658959B2 (en) * 2015-02-20 2017-05-23 PernixData, Inc. Cache resource manager
JP6540391B2 (ja) * 2015-09-03 2019-07-10 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US10795820B2 (en) * 2017-02-08 2020-10-06 Arm Limited Read transaction tracker lifetimes in a coherent interconnect system
US11119770B2 (en) * 2019-07-26 2021-09-14 Microsoft Technology Licensing, Llc Performing atomic store-and-invalidate operations in processor-based devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506323A (en) * 1982-03-03 1985-03-19 Sperry Corporation Cache/disk file status indicator with data protection feature
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPS6436351A (en) * 1987-07-31 1989-02-07 Alps Electric Co Ltd Disk cache system
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same
JPH02226449A (ja) * 1989-02-28 1990-09-10 Toshiba Corp キャッシュメモリ制御方式
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
EP0407067A3 (en) * 1989-07-06 1992-07-29 Digital Equipment Corporation Cache support architecture
EP0468831B1 (en) * 1990-06-29 1997-10-15 Digital Equipment Corporation Bus protocol for write-back cache processor
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5301298A (en) * 1991-10-11 1994-04-05 Intel Corporation Processor for multiple cache coherent protocols
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
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
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd 情報処理装置
JP4725044B2 (ja) * 2004-07-06 2011-07-13 富士通株式会社 情報処理装置
JP2010027048A (ja) * 2008-07-07 2010-02-04 Intel Corp 部分書込と非スヌープアクセスとの間のメモリ順序付け要件の充足
JP2013080512A (ja) * 2008-07-07 2013-05-02 Intel Corp 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足

Also Published As

Publication number Publication date
EP0600626A1 (en) 1994-06-08
US5664149A (en) 1997-09-02
US5860111A (en) 1999-01-12
US5524234A (en) 1996-06-04

Similar Documents

Publication Publication Date Title
JPH07168763A (ja) ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ
US6182168B1 (en) Programmable sideband port for generating sideband signal
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
US5319766A (en) Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5353415A (en) Method and apparatus for concurrency of bus operations
US5247648A (en) Maintaining data coherency between a central cache, an I/O cache and a memory
JP3533355B2 (ja) キャッシュ・メモリ・システム
US6330643B1 (en) Cache coherency protocols with global and local posted operations
US5488709A (en) Cache including decoupling register circuits
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US5524208A (en) Method and apparatus for performing cache snoop testing using DMA cycles in a computer system
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US5732241A (en) Random access cache memory controller and system
US6178481B1 (en) Microprocessor circuits and systems with life spanned storage circuit for storing non-cacheable data
WO1994008297A9 (en) Method and apparatus for concurrency of bus operations
GB2296353A (en) Cache memory system with reduced request-blocking
US5926830A (en) Data processing system and method for maintaining coherency between high and low level caches using inclusive states
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US6003106A (en) DMA cache control logic
US5485592A (en) Write back cache controller method and apparatus for use in a system having a CPU with internal cache memory
US6418514B1 (en) Removal of posted operations from cache operations queue
US6182201B1 (en) Demand-based issuance of cache operations to a system bus
US5717894A (en) Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
US5920891A (en) Architecture and method for controlling a cache memory