JPH0659976A - 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 - Google Patents

遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法

Info

Publication number
JPH0659976A
JPH0659976A JP3114206A JP11420691A JPH0659976A JP H0659976 A JPH0659976 A JP H0659976A JP 3114206 A JP3114206 A JP 3114206A JP 11420691 A JP11420691 A JP 11420691A JP H0659976 A JPH0659976 A JP H0659976A
Authority
JP
Japan
Prior art keywords
cache
line
addressable
data
controller
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.)
Granted
Application number
JP3114206A
Other languages
English (en)
Other versions
JP3067112B2 (ja
Inventor
Robin W Edenfield
ロビン・ダブリュー・エデンフィールド
Jr William B Ledbetter
ウィリアム・ビー・レッドベター・ジュニア
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 JPH0659976A publication Critical patent/JPH0659976A/ja
Application granted granted Critical
Publication of JP3067112B2 publication Critical patent/JP3067112B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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)【要約】 【目的】 コピー・バック・キャッシュにおいて遅延さ
れたプッシュを再ロードするデータ・プロセッサを提供
する。 【構成】 キャッシュ「ミス」が生じた場合、キャッシ
ュ・コントローラ14は置換するキャッシュ・ラインを
選択し、必要なキャッシュ・ラインを外部メモリから転
送するためバースト・ライン・リードを要求する。置換
のため選択されたキャッシュ・ラインのデータ入力がダ
ーティとマークされると、キャッシュ・コントローラ1
4はキャッシュ・ラインまたはそのダーティ部分をバッ
ファに「プッシュ」し、このバッファは、バス・インタ
ーフェース・コントローラ20によるバースト・ライン
・リードが完了するまで、キャッシュ・ラインを格納す
る。バス・エラーまたはバス・キャッシュ禁止(もしく
はその他の理由)により、バースト・ライン・リードが
異常終了すると、データ・キャッシュ・コントローラ1
4はバッファ22に格納されたキャッシュ・ラインをコ
ピー・バック・キャッシュに再ロードする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータ・プロセ
ッサに関し、さらに詳しくは、コピー・バック・データ
・キャッシュを有するデータ・プロセッサに関する。
【0002】
【従来の技術】外部メモリ・バスの帯域幅の確保は、マ
イクロプロセッサのスピードが増加するにつれて重要な
設計要件となっている。これら高速マイクロプロセッサ
では、メモリ・システムとシステム・バスを共有するマ
ルチ・プロセッサおよびDMAとにかかる負担が大きく
なる。M68000ファミリ・マイクロプロセッサで
は、中央処理装置(CPU)の内部で高能率パイプライ
ンを構築しているため、一般に90〜95%の利用率で
外部バスを利用している。システムによっては、不十分
なバス帯域幅の問題をキャッシュ方式、特に多量のデー
タ入力(例えば、バス・サイズよりかなり大きいデータ
入力)を格納するキャッシュを用いることにより、この
問題に対処している。
【0003】キャッシュ方式は、CPUがメイン・メモ
リにアクセスするアクセス時間を短縮させ、システム性
能を向上させるため、コンピュータ設計者により用いら
れてきた。多くのコンピュータ・システムでは、メイン
・メモリはプロセッサのスピードに比べて遅いメモリ・
デバイスの大きなアレイによって構成されている。メイ
ン・メモリに対するアクセス期間中、スピードの遅いメ
モリ・デバイスに対応するため、プロセッサは待ち状態
を追加挿入しなくてはならない。メモリ・アクセス期間
中のシステム性能は、キャッシュを用いることにより向
上できる。メイン・メモリよりも小さくかつはるかに高
速なキャッシュは、プロセッサが頻繁に使用するデータ
や命令コードを高速で局部的に格納する。キャッシュを
有するコンピュータ・システムでは、プロセッサによる
メモリ動作は最初にキャッシュにより実行される。スピ
ードの遅いメイン・メモリは、メモリ動作がキャッシュ
により完了できない時しかプロセッサによりアクセスさ
れない。一般に、プロセッサはメモリ動作の大半をキャ
ッシュで実行する可能性が高い。従って、キャッシュを
用いるコンピュータ・システムでは、プロセッサと比較
的スピードの遅いメイン・メモリとの間の有効メモリ・
アクセス時間を短縮できる。
【0004】キャッシュは、多数の異なる特徴に応じて
高度に最適化することができる。キャッシュの性能と設
計の複雑性とに影響を及ぼす重要な特徴の1つとして、
プロセッサによる書き込みの処理または別のバス・マス
タがある。ある1つのデータまたは命令コードについて
2つのコピー、すなわちメイン・メモリ内の1つとキャ
ッシュ内のコピーとが存在するため、メイン・メモリま
たはキャッシュのいずれかに書き込むと、これら2つの
記憶装置の間に不整合が生じる。例えば、特定のデータ
は、キャッシュおよびメイン・メモリの両方において所
定アドレスに格納される。プロセッサが所定アドレスに
書き込む間、プロセッサはまずキャッシュの内容からア
ドレスを調べる。キャッシュにおいてアドレスが割り出
されると、プロセッサは所定のアドレスにおいてキャッ
シュに新たなデータの書き込みを開始する。その結果、
キャッシュにおいてデータは修正されるが、メイン・メ
モリのデータは修正されず、従って、キャッシュとメイ
ン・メモリとの間に不整合が生じる。
【0005】プロセッサ書き込み中におけるキャッシュ
とメイン・メモリとの間の不整合は、2つの手法を用い
て対処できる。第1の手法では、「ライト・スルー(w
rite−through)」キャッシュ方式により、
プロセッサ書き込み期間中にキャッシュとメイン・メモ
リの両方に書き込み、キャッシュとメイン・メモリとの
間の整合性を保証する。キャッシュおよびメイン・メモ
リの内容は、常に同一であり、従ってこの2つの記憶装
置は常に整合性を維持している。第2の手法では、「ラ
イト・バック(write−back)」または「コピ
ー・バック(copy−back)」キャッシュ方式に
より、キャッシュだけに書き込み、プロセッサによって
変更されたキャッシュ入力を指定する「ダーティ・ビッ
ト(dirty bits)」を設定することで、プロ
セッサの書き込みに対処している。次にプロセッサがキ
ャッシュにアクセスを試みると、「キャッシュ・ミス
(cache miss)」が生じ、置換アルゴリズム
により置換されるダーティ・キャッシュ入力を選択し
て、ダーティ・キャッシュ入力全体またはダーティ部分
をメイン・メモリに「プッシュ」(転送)する。新たな
データは、ダーティ入力によって空白となった番地おい
てキャッシュに書き込まれる。一般に、これらのプロセ
ッサはキャッシュ・ライン全体をメイン・メモリにバー
スト・ライト転送することによってダーティ・キャッシ
ュ入力をアンロードする。キャッシュ入力はシステム・
バス・サイズよりもかなり大きいので、キャッシュ・ラ
イン全体をメイン・メモリにバースト書き込みするに
は、バス帯域幅のかなりの部分を使用する。
【0006】
【発明が解決しようとする課題】最小限のバス帯域幅で
性能を向上させるため、マイクロプロセッサおよびコン
ピュータシステムでは、コピー・バック・データ・キャ
ッシュの多用化が進んでいる。コピー・バック・データ
・キャッシュは、置換キャッシュ入力のロードが完了す
るまで、ダーティ・データのプッシュを遅延することが
できる。メモリからのライン・リードが完了するまでラ
イン「プッシュ」を遅延させるこの手順では、プッシュ
された入力をバッファする必要がある。外部バスの問題
(例えばバス・エラーまたはバス・キャッシュ禁止)が
原因で、キャッシュをロードするためライン・リードに
失敗すると、置換される入力をライン・「プッシュ」す
る性能により、別の例外状態(すなわち、別のバス・エ
ラー)が生じる可能性がある。さらに、ライン「プッシ
ュ」を続けると、データ・キャッシュから再び必要とな
りうる入力を不必要に排出すことになり、従ってシステ
ム性能に支障(system performance
penalty)をきたす。従って、コピー・バック
書き込み方式を効率よく使用するには、ライン・リード
・バス転送の異常終了によりキャッシュ・ロードできな
い際に、プッシュ・バッファの利用を最適化するメカニ
ズムが必要となる。
【0007】従って、本発明の目的は、キャッシュ利用
を最適化する改善されたデータ・プロセッサを提供する
ことである。
【0008】本発明の他の目的は、データ・キャッシュ
入力をロードすることにより生じるダーティ・データの
プッシュを遅延できるコピー・バック・データ・キャッ
シュを有する改善されたデータ・プロセッサを提供する
ことである。
【0009】さらに本発明の目的は、コピー・バック・
データ・キャッシュの維持に起因する複数の同時例外状
態の可能性を除外する改善されたデータ・プロセッサを
提供することである。
【0010】
【課題を解決するための手段】本発明のこれらおよび他
の目的は、バス・インターフェース・コントローラを有
するデータ・プロセッサによって実現され、ここでバス
・インターフェース・コントローラはシステム・バスを
介して外部メモリに結合され、キャッシュ・コントロー
ラからのライン・リード転送要求に応答して、外部メモ
リから複数のアドレス指定可能なデータ入力を取り出
し、その複数のアドレス指定可能なデータ入力をコピー
・バック・キャッシュ・メモリにロードし、かつキャッ
シュ・コントローラからのライト転送要求に応答して、
選択されたアドレス指定可能なダーティ・データをキャ
ッシュメモリを一時的に格納するレジスタから外部メモ
リに転送する。ライン・リード転送の異常終了が発生す
ると、キャッシュ・メモリには選択されたアドレス指定
可能なダーティ・データ入力が再ロードされる。ライン
・リード転送要求および第1リード・アドレスは、置換
のために選択されたアドレス指定可能なダーティ・デー
タ入力がキャッシュ・コントローラによりキャッシュ・
メモリにおいて無効にされ、かつ格納レジスタに書き込
まれる時、バス・インターフェース・ユニットに同時に
転送される。選択されたアドレス指定可能なダーティ・
データ入力は、バス・インターフェース・コントローラ
がライン・リード転送の異常終了を表示し、かつ選択さ
れたアドレス指定可能なダーティ・データ入力がキャッ
シュ・コントローラによりキャッシュ・メモリにおいて
再有効化される時、格納レジスタからキャッシュ・メモ
リに再ロードされる。
【0011】
【実施例】図1は、本発明を実現するデータ処理システ
ム10の好適な実施例を示すブロック図である。ここ
で、データ処理システム10は、CPU12,データ・
キャッシュ・コントローラ14,データ・キャッシュ1
6,内部バス18,バス・インターフェース・コントロ
ーラ20,バッファ22,システム・バス24,メイン
・メモリ26,DMAユニット28,ディスク30およ
びアドレス・レジスタ32からなる。データ処理システ
ム10は、典型的なユニ・プロセッサ・システムを示
し、本発明に対応可能な単一キャッシュを用いている。
好適な実施例では、内部バスはnバイト幅で、nバイト
はCPU12の最大固有データ・タイプのデータ幅(す
なわち4バイト)を示し、システム・バス24はmバイ
ト幅で、mバイトはデータ・キャッシュ16の単一ライ
ンのデータ幅(すなわち16バイト)を示す。図示の例
では、CPU12は、所定の命令セットを実行する従来
の実行ユニットを有する第1内部機能ユニットである。
データ・キャッシュ・コントローラ14は、バス・イン
ターフェース・コントローラ20およびCPU12から
制御信号を受け取り、データ・キャッシュ16とCPU
12とバス・インターフェース・コントローラ20との
間のデータ転送を管理する第2内部機能ユニットであ
る。データ・キャッシュ16は、データ・キャッシュ・
コントローラ14、バッファ22および内部バス18に
結合される第3機能ユニットである。
【0012】また、データ・キャッシュ・コントローラ
14は、バス・スヌーピング(bus snoopin
g)に対応しており、共願の第07/351,898号
「同時リードおよび無効メモリ動作用データ・バス・ス
ヌープ・コントローラ(AData Bus Snoo
p Controller for Concurre
nt Read and Invalidate me
mory Operation)」William L
edbetter et alで開示されているよう
に、CPU12がカーレント・バス・マスタでない場
合、システム・バス24を監視することにより、データ
・キャッシュ16とメイン・メモリ26との間の整合性
を維持する。データ・キャッシュ16は、データ・キャ
ッシュ・コントローラ14、バッファ22および内部バ
ス18に結合される第3機能ユニットである。データ・
キャッシュ16は、キャッシュに対する読み取り、書き
込み、更新、無効化および排出(flush)を行うの
に必要な適切なロジックを有する。好適な実施例では、
3つの内部機能ユニットが同時に動作して、最大限の性
能を維持する。
【0013】好適な実施例では、データ・キャッシュ1
6は、4つの16バイト・キャッシュ・ラインを64セ
ット有する4方向セット連想型キャッシュ(4−way
set−associative cache)であ
り、ここで各キャッシュ・ラインは4つのロングワード
(LW1〜LW4)から成り、各ロングワード(LW)
は連続した32ビットからなる。従って、データ・キャ
ッシュ16の総記憶容量は4KBである。図2に示すよ
うに、各キャッシュ・ライン32に対してアドレス(T
AG)およびステータス情報が関連している。各キャッ
シュ・ライン32に対するステータス情報は、ライン毎
の有効性(第1状態入力)とデータ・キャッシュ・ライ
ン32の各ロングワード(LW)に対するライト・ステ
ータス−「ダーティネス(dirtiness)」(第
2状態入力)とから成る。従って、データ・キャッシュ
・ライン32は、図2に示すように、第1VALID
(V)ビットと各ロングワード(LW1〜LW4)に関
連したDIRTY(D)ビットとを有する。各データ・
キャッシュ・ライン32に対して3つの状態、VALI
D,INVALIDおよびDIRTYが存在しうる。V
ALIDビットがクリアの場合、キャッシュ・ラインに
はデータ4が格納されておらず、これはINVALID
状態を意味する。VALID(V)ビットがセットさ
れ、またDIRTYビットがセットされていない場合、
データ・キャッシュ・ライン32は有効となり、メイン
・メモリ26において対応するメモリ番地に格納された
データと整合したデータがデータ・キャッシュ・ライン
32に入る。VALIDビットがセットされ、またDI
RTYビットの1つがセットされると、キャッシュ・ラ
インのデータは有効となるが、メモリ26とは不整合と
なる。ダーティ・キャッシュ入力をアンロードするのに
必要なメモリ・アクセスの回数を最小限に抑えるため複
数のDIRTYビットを使用することは、共願の第07
/351,899号「合成サイズ・データ・キャッシュ
・ステータス・フィールド(Mixed Size D
ata Cache Status Field)」R
obin W.Edenfield et alに開示
されている。
【0014】好適な実施例では、データ・キャッシュ1
6は、ページ毎にコピー・バック・ライト方式をサポー
トしている。コピー・バック・ライト方式により、修正
されたキャッシュ・ライン32はメモリ24に「コピー
・バック」され、その後新たなキャッシュ・ラインでオ
ーバーライトされる。従って、ページが「コピー・バッ
ク」として指定され、ライト「ヒット」がデータ・キャ
ッシュ16で生じた場合、CPU12は対応するデータ
・キャッシュ・ライン32を更新し、データ・キャッシ
ュ・コントローラ14は修正されたロングワード(LW
1〜LW4)のDIRTYビットをセットする。そうす
ることで、データ・キャッシュ・コントローラ14は、
データ・キャッシュ16の修正された入力とメモリ26
における対応する入力との間の不整合を表示する。コピ
ー・バック・ライト方式では、修正されたキャッシュ・
ライン32が置換のため選択されてから、CPU12は
メモリ24を更新するためバス・ライト・サイクルを実
行する。ライト「ミス」がデータ・キャッシュ16で生
じ、修正されたデータ・キャッシュ・ライン32が置換
のため選択されると、データ・キャッシュ・コントロー
ラ14はプッシュ・バッファ22bを介して修正(DI
RTY)キャッシュ・ライン32をメモリ24にプッシ
ュ・アウトする。本発明では、修正(DIRTY)キャ
ッシュ・ライン32がメモリ24にプッシュ・アウトさ
れる前に、データ・キャッシュ・コントローラ14は
(メモリ24から)新たなデータ・キャッシュ・ライン
32を取り出す。
【0015】動作中、CPU12はデータ・コントロー
ラ14に対してライト要求を出し、同時にアドレス・レ
ジスタ32に対してライト・アドレスを送出する。好適
な実施例では、データ・キャッシュ16は物理キャッシ
ュであり、従って、ライト・アドレスは変換ルック・ア
サイド・バッファ(translation look
−aside buffer:TLB)34によって変
換され、対応する物理アドレスとなる。TLB34は、
オペランド・アドレスの所定の数の上位アドレス・ビッ
トを物理アドレスに変換し、同時にその物理アドレスを
データ・キャッシュ・コントローラ14とバス・インタ
ーフェース・コントローラ20とに転送する。また、デ
ータ・キャッシュ16は、TLB34により生成された
物理アドレスを受け取り、その物理アドレスをデータ・
キャッシュ16に格納されたタグ・アドレス・セット
(a set of tag addresses)と
照合する。照合によりアドレスが一致した場合、キャッ
シュ「ヒット」が生じ、データ・キャッシュ16はデー
タ・キャッシュ・コントローラ14に対してHIT信号
をアサートする。HIT信号に応答して、データ・キャ
ッシュ・コントローラ14はCACHE CONTRO
L信号をアサートし、それによりデータ・キャッシュ1
6は内部バス18からデータをロードすることが可能と
なる。キャッシュ・ロードが完了すると、データ・キャ
ッシュ・コントローラ14は、データ・キャッシュ・ラ
イン16の適当なロングワードのDIRTYビットをセ
ットする。データ・キャッシュ・コントローラ14は、
このように書き込まれた各データ・キャッシュ・ライン
16に対し(DIRTY)とマークする。CPU12は
メモリ26を更新するために同時バス・ライト・サイク
ルを実行しないので、修正キャッシュ・ライン32に格
納されたデータは、メモリ26において対応するメモリ
番地に格納されたデータとは不整合となる。従って、デ
ータ・キャッシュ・ライン32の少なくとも一部は、D
IRTY状態にある。修正データ・キャッシュ・ライン
32は、DIRTYデータ入力が置換のため選択される
かあるいはCPU12によって無効にされるまでDIR
TY状態に維持される。
【0016】通常動作中、CPU12はデータ・キャッ
シュ・コントローラ14にリード要求またはライト要求
を出し、対応する論理アドレスをアドレス・レジスタ3
2を介してTLB34に転送する。前述のように、論理
アドレスは対応する物理アドレスに変換され、データ・
キャッシュ16の選択されたTAGアドレス・セットと
照合される。照合の結果、アドレスが一致しない場合、
キャッシュ「ミス」が生じ、データ・キャッシュ16は
MISS信号をアサートする。MISS信号に応答し
て、データ・キャッシュ・コントローラ14は置換アル
ゴリズムを用いて置換されるデータ・キャッシュ・ライ
ン32を選択する。データ・キャッシュ・ライン32を
選択すると、データ・キャッシュ・コントローラ14は
データ・キャッシュ・ライン32に置かれたステータス
情報を読み取る。DIRTY(修正)データ・キャッシ
ュ・ライン32(ステータス情報により表示される)が
置換のため選択されると、DIRTYデータはメモリ2
4に「コピー・バック」されなければならない。
【0017】要するに、置換のために選択されたデータ
・キャッシュ・ライン32がDIRTYの場合、データ
・キャッシュ・コントローラ14はDIRTYデータを
選択されたキャッシュ・ライン32からプッシュ・バッ
ファ22bにプッシュする。同時に、データ・キャッシ
ュ・コントローラ14は、キャッシュ・ライン・リード
を実行し、CPU12が要求するデータ・キャッシュ・
ライン32を取り出すため外部バス転送を要求する。デ
ータ・キャッシュ・コントローラ14は、CONTRO
L信号をアサートし、その結果、置換のため選択された
データ・キャッシュ・ライン32(TAGおよびステー
タス情報を含む)をデータ・キャッシュ16からプッシ
ュ・アウト(転送)し、プッシュ・バッファ22bに入
れる。そうすることで、データ・キャッシュ・コントロ
ーラ14は、データ・キャッシュ16における対応する
VALIDビットをクリアする。従って、データ・キャ
ッシュ・コントローラ14は、DIRTYデータをプッ
シュ・バッファ22bにロードし、同時に第1BURS
T READ REQUEST信号をアサートする。キ
ャッシュ・ライン・リードの外部バス・サイクル中に、
プッシュ・バッファ22bを同時にロードすることによ
り、DIRTYデータを「プッシュ」してもCPU12
は機能停止しないことが保証される。プッシュ・バッフ
ァ22bが満杯になると、データ・キャッシュ・コント
ローラ14はBURST WRITEREQUEST信
号をバス・インターフェース・コントローラ20に生成
し、プッシュ・バッファ22bに格納された情報の転送
(プッシュ)を要求する。
【0018】DIRTYデータ入力(修正キャッシュ・
ライン32)を書き込む(プッシュする)外部バス・サ
イクルは、キャッシュ・ライン・リードが完了するまで
遅延される。従って、データ・キャッシュ・コントロー
ラ14によってアサートされたBURST READ
REQUEST信号に応答して、バス・インターフェー
ス・コントローラ20は、リード・アドレスをシステム
・バス24に転送し、メモリ制御(CONTROL)信
号を用いてバースト・リード転送を表示する。リード・
アドレスおよびバースト・リードCONTROL信号を
受け取ると、メモリ26はデータ・バス幅に対応する所
定のデータ領域においてシステム・バス24に、要求さ
れたデータを転送する。バス・インターフェース・コン
トローラ20は、システム・バス24を介して各データ
領域を受け取り、データをリード・バッファ22aに転
送する。バッファ22aが満杯になると、バス・インタ
ーフェース・コントローラ20は、データ・キャッシュ
・コントローラ14が出したBURST WRITE
REQUEST(「プッシュ」要求)を受け入れ可能と
なり、またデータ・キャッシュ・コントローラ14は、
データ・キャッシュ16に置換入力をロードすることが
可能となる。データ・キャッシュ・コントローラ14
は、バス・インターフェース・コントローラ20がBU
RST WRITE REQUEST信号を受け入れる
まで待機し、従って、データ・キャッシュ・ライン32
(またはその一部)は、プッシュ・バッファ22bに格
納されたままとなる。STATUS信号セットは、デー
タ・キャッシュ・コントローラ14に対して、データ・
キャッシュ・コントローラ14が要求するバス転送のス
テータスを知らせる。
【0019】バースト・ライン・リードが正常に終了す
ると、バス・インターフェース・コントローラ20は第
1STATUS信号をアサートし、要求されたデータ・
キャッシュ・ライン32のバースト・リード転送が完了
(エラー無し)したことをデータ・キャッシュ・コント
ローラ14に知らせる。第1STATUS信号に応答し
て、データ・キャッシュ・コントローラ14は、(リー
ド・バッファ22aに格納された)置換データ・キャッ
シュ・ライン32をデータ・キャッシュ16にロードす
るため、CONTROL信号をアサートする。TAGお
よびステータス情報を含む置換データ・キャッシュ・ラ
イン32は、データ・キャッシュ16にロードされる。
データ・キャッシュ・コントローラ14は、DIRTY
ビットすべてを適当な値にセットする。バス・インター
フェース・コントローラ20がプッシュ要求を受け入れ
ると、データ・キャッシュ・ライン32からのTAGア
ドレスおよび必要数のデータ入力(LW1〜LW4)が
バッファ22bからプッシュ・アウトされ、バス・イン
ターフェース・コントローラ20に入る。データ・キャ
ッシュ・ライン32のDIRTY領域のみがメモリ26
に「コピー・バック」されるので、最小限のシステム・
バス帯域幅が利用される。
【0020】本発明では、バースト・ライン・リードが
異常終了すると、バス・インターフェース・コントーラ
20が第2STATUS信号をアサートする。第2ST
ATUS信号は、データ・キャッシュ・コントローラ1
4に対して、要求されたデータ・キャッシュ・ライン3
2をキャッシュ不可能にするバースト・リード転送の終
了(例えば、バス・エラーやキャッシュ禁止とマークさ
れたライン等)が生じたことを知らせる。バースト・ラ
イン・リード要求により生じるバス・エラーが発生する
と、データ・キャッシュ・コントローラ14はデータ・
キャッシュ16に新たなデータ・キャッシュ・ライン3
2(置換入力)をロードすることができなくなる。従っ
て、置換のために選択されたデータ・キャッシュ・ライ
ン32のライン「プッシュ」を継続することは不合理で
ある。なぜならば、そうすることにより、再度必要とな
るかもしれない入力をデータ・キャッシュ16から不必
要に排出することになるからである。さらに、ライン
「プッシュ」をシステム・バス24まで進めると、別の
例外状態(例えば、別のバス・エラー)が発生する可能
性があり、バースト・ライン・リード要求のバス・エラ
ーを矯正するのに必要な例外処理手順をさらに複雑にす
ることになる。従って、バス・インターフェース・コン
トローラ20は、データ・キャッシュ・コントローラ1
4が特定の管理機能を実行するまで待機する。管理機能
を完了すると、データ・キャッシュ・コントローラ14
は、第3STATUS信号をアサートし、バス・インタ
ーフェース・コントローラ20が通常動作を再開するこ
とを可能にする。
【0021】バス・インターフェース・コントローラ2
0から第2STATUS信号を受け取ると、データ・キ
ャッシュ・コントローラ14はプッシュ・バッファ22
bの内容をデータ・キャッシュ16に再ロードする。プ
ッシュ・バッファ22bに格納されたTAGアドレスお
よび追加ステータス情報を用いて、データ・キャッシュ
・コントローラ14は、データ・キャッシュ・ライン3
2をデータ・キャッシュ16の元の番地に戻す。データ
・キャッシュ・コントローラ14は、選択されたセット
に再ロードされる入力を示すTAGアドレスおよび追加
ステータス情報を読み出すことにより、再ロードする適
切な番地を求める。データ・キャッシュ・ライン32が
再ロードされると、データ・キャッシュ・コントローラ
14はVALIDビットをリセットする(このVALI
Dビットは、データ・キャッシュ・ラインがプッシュ・
バッファ22bに転送されたときクリアされている)。
データ・キャッシュ・コントローラ14がデータ・キャ
ッシュ16を再ロードした後、データ・キャッシュ・ラ
イン32は、次に置換のため選択されるまでデータ・キ
ャッシュに格納されたままとなる。
【0022】本発明は好適な実施例において説明してき
たが、開示された発明は多くの点で変更でき、上述の実
施例以外にも多くの実施例が可能であることが当業者に
は明かである。例えば、データ・キャッシュ16の適切
な番地でVALIDビットをクリアおよびリセットし、
再ロード後にデータキャッシュ16のデータ・キャッシ
ュ・ライン32を再捕捉(再有効化)することにより再
ロードの構築コストを削減することができる。従って、
データ・キャッシュ16のデータ・キャッシュ・ライン
32は、VALIDビット以外には影響を受けず、この
VALIDビットは、プッシュ・バッファがロードされ
るとクリアされ、データ・キャッシュ16が再ロードさ
れると(バースト・ライン・リードの異常終了時)リセ
ットされる。この再ロード方法により、データ・キャッ
シュ16とプッシュ・バッファ22bとの間に双方向路
を設けずに済み、またプッシュされた入力を1クロック
・サイクルで再有効化することが可能となる。プッシュ
・バッファ22bの再ロードは、いかなる種類のバース
イト・ライン・リードの異常終了の結果によって生じう
ることが当業者には明かである。従って、添付のクレー
ムには、本発明の真の精神と範躊に該当する本発明のす
べての変形例が含まれるものとする。
【図面の簡単な説明】
【図1】本発明を実施する集積回路データ処理システム
を示すブロック図である。
【図2】本発明に従った、図1のコピー・バック・デー
タ・キャッシュにおけるデータ・キャッシュ入力置換方
式の好適な実施例を示すブロック図である。
【符号の説明】
10 データ処理システム 12 CPU 14 データ・キャッシュ・コントローラ 16 データ・キャッシュ 18 内部バス 20 バス・インターフェース・コントローラ 22a リード・バッファ 22b プッシュ・バッファ 24 システム・バス 26 メイン・メモリ 28 DMAユニット 30 ディスク 32 アドレス・レジスタ(データ・キャッシュ・ライ
ン) 34 変換ルック・アサイド・バッファ(TLB)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】システム・バスを介して外部メモリに結合
    されるバス・インターフェース・コントローラを有し、
    キャッシュ・コントローラによって生成されるライン・
    リード転送要求に応答して、前記外部メモリから複数の
    アドレス指定可能なデータ入力を取り出し、前記複数の
    アドレス指定可能なデータ入力をコピー・バック・キャ
    ッシュ・メモリにロードし、かつ前記キャッシュ・コン
    トローラによって生成されるライン・ライト転送要求に
    応答して、キャッシュ・メモリを一時的に格納するレジ
    スタから前記外部メモリに、置換のために選択されたア
    ドレス指定可能なダーティ・データ入力を転送するデー
    タ・プロセッサにおいて、前記ライン・リード転送の異
    常終了時に前記アドレス指定可能なダーティ・データ入
    力を前記キャッシュ・メモリに再ロードする方法であっ
    て:前記アドレス指定可能なダーティ・データ入力が前
    記キャッシュ・コントローラにより前記キャッシュ・メ
    モリにおいて無効にされ、かつ前記キャッシュ・メモリ
    から前記格納レジスタに書き込まれる時、前記ライン・
    リード転送要求と第1リード・アドレスとを前記バス・
    インターフェース・コントローラに同時に転送する段
    階;前記第1リード・アドレスに対応する第1アドレス
    指定可能なデータ入力を、前記外部メモリから前記キャ
    ッシュメモリに前記システム・バスを介して転送する段
    階;前記バス・インターフェース・コントローラが前記
    ライン・リード転送の前記異常終了を表示し、かつ前記
    アドレス指定可能なダーティ・データ入力が前記キャッ
    シュ・コントローラにより前記キャッシュ・メモリにお
    いて再有効化される時、前記格納レジスタから前記キャ
    ッシュ・メモリに、アドレス指定可能なダーティ・デー
    タ入力を再ロードする段階;によって構成されることを
    特徴とする方法。
  2. 【請求項2】前記アドレス指定可能なダーティ・データ
    入力が前記格納レジスタに書き込まれた後、前記ライン
    ・ライト転送要求を前記バス・インターフェース・コン
    トローラに転送し、それにより前記格納レジスタに格納
    された前記アドレス指定可能なダーティ・データ入力の
    バス転送を要求する段階によって構成されることを特徴
    とする請求項1の方法。
  3. 【請求項3】前記バス・インターフェース・コントロー
    ラが前記ラインリード転送を異常終了した場合、前記バ
    ス・インターフェース・コントローラから前記キャッシ
    ュ・コントローラに第1ステータス信号を転送し、それ
    により前記ライン・リード転送の前記異常終了の発生を
    表示する段階によって構成されることを特徴とする請求
    項2の方法。
  4. 【請求項4】システム・バスを介して外部メモリに結合
    されるバス・インターフェース・コントローラを有し、
    キャッシュ・コントローラによって生成されるライン・
    リード転送要求に応答して、前記外部メモリから複数の
    アドレス指定可能なデータ入力を取り出し、前記複数の
    アドレス指定可能なデータ入力をコピー・バック・キャ
    ッシュ・メモリにロードし、かつ前記キャッシュ・コン
    トローラによって生成されるライン・ライト転送要求に
    応答して、置換のため選択されたアドレス指定可能なダ
    ーティ・データ入力を前記キャッシュ・メモリから前記
    外部メモリに転送するデータ・プロセッサにおいて、前
    記ラインリード転送の異常終了時に前記アドレス指定可
    能なダーティ・データ入力を前記キャッシュ・メモリに
    再ロードする方法であって:前記アドレス指定可能なダ
    ーティ・データ入力が前記キャッシュ・メモリにおいて
    無効にされる時、前記ライン・リード転送要求と第1リ
    ード・アドレスとを同時に前記バス・インターフェース
    ・コントローラに転送する段階;前記第1リード・アド
    レスに対応する第1アドレス指定可能なデータ入力を、
    前記外部メモリから前記キャッシュ・メモリに前記シス
    テム・バスを介して転送する段階;前記バス・インター
    フェース・コントローラが前記ライン・リード転送の異
    常終了を表示した時、前記キャッシュ・メモリの前記ア
    ドレス指定可能なダーティ・データ入力を再有効化する
    段階;によって構成されることを特徴とする方法。
JP3114206A 1990-02-26 1991-02-26 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 Expired - Fee Related JP3067112B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/484,592 US5197144A (en) 1990-02-26 1990-02-26 Data processor for reloading deferred pushes in a copy-back data cache
US484592 1995-06-07

Publications (2)

Publication Number Publication Date
JPH0659976A true JPH0659976A (ja) 1994-03-04
JP3067112B2 JP3067112B2 (ja) 2000-07-17

Family

ID=23924779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3114206A Expired - Fee Related JP3067112B2 (ja) 1990-02-26 1991-02-26 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法

Country Status (5)

Country Link
US (1) US5197144A (ja)
EP (1) EP0444401B1 (ja)
JP (1) JP3067112B2 (ja)
KR (1) KR920000040A (ja)
DE (1) DE69127111T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2646854B2 (ja) * 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ
US5295259A (en) * 1991-02-05 1994-03-15 Advanced Micro Devices, Inc. Data cache and method for handling memory errors during copy-back
EP0547769B1 (en) * 1991-12-18 1999-10-13 Sun Microsystems, Inc. Write overlap with overwrite prevention
AU4279793A (en) * 1992-04-07 1993-11-08 Video Technology Computers, Ltd. Self-controlled write back cache memory apparatus
KR100294105B1 (ko) * 1992-04-29 2001-09-17 썬 마이크로시스템즈, 인코포레이티드 멀티 프로세서 컴퓨터 시스템의 일관성 카피-백 버퍼용 방법 및 장치
JP3242161B2 (ja) * 1992-09-11 2001-12-25 株式会社日立製作所 データプロセッサ
JP2737820B2 (ja) * 1992-09-24 1998-04-08 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリアクセス方法およびシステム
US5479636A (en) * 1992-11-16 1995-12-26 Intel Corporation Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory
US5903911A (en) * 1993-06-22 1999-05-11 Dell Usa, L.P. Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US5897667A (en) * 1993-11-16 1999-04-27 Intel Corporation Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner
GB2286910B (en) * 1994-02-24 1998-11-25 Intel Corp Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer
US5526510A (en) * 1994-02-28 1996-06-11 Intel Corporation Method and apparatus for implementing a single clock cycle line replacement in a data cache unit
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
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
EP0683457A1 (en) * 1994-05-20 1995-11-22 Advanced Micro Devices, Inc. A computer system including a snoop control circuit
US5835787A (en) * 1994-07-07 1998-11-10 Lucent Technologies, Inc. System for bi-directionally transferring a digital signal sample from a CODEC to a particular memory location and a second sample from memory to CODEC
US5761709A (en) * 1995-06-05 1998-06-02 Advanced Micro Devices, Inc. Write cache for servicing write requests within a predetermined address range
US5778431A (en) * 1995-12-19 1998-07-07 Advanced Micro Devices, Inc. System and apparatus for partially flushing cache memory
US5920891A (en) * 1996-05-20 1999-07-06 Advanced Micro Devices, Inc. Architecture and method for controlling a cache memory
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5926832A (en) * 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
US5960457A (en) * 1997-05-01 1999-09-28 Advanced Micro Devices, Inc. Cache coherency test system and methodology for testing cache operation in the presence of an external snoop
US6016532A (en) * 1997-06-27 2000-01-18 Sun Microsystems, Inc. Method for handling data cache misses using help instructions
US5920889A (en) * 1997-06-27 1999-07-06 Sun Microsystems, Inc. Apparatus and method for write miss processing in a copy-back data cache with an allocating load buffer and a non-allocating store buffer
US6078992A (en) * 1997-12-05 2000-06-20 Intel Corporation Dirty line cache
US6745298B2 (en) * 1999-06-16 2004-06-01 Intel Corporation Internal processor buffering for implicit writebacks
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
US6782453B2 (en) * 2002-02-12 2004-08-24 Hewlett-Packard Development Company, L.P. Storing data in memory
US6941393B2 (en) * 2002-03-05 2005-09-06 Agilent Technologies, Inc. Pushback FIFO
US7441081B2 (en) * 2004-12-29 2008-10-21 Lsi Corporation Write-back caching for disk drives
US20130124800A1 (en) * 2010-07-27 2013-05-16 Freescale Semiconductor, Inc. Apparatus and method for reducing processor latency
US9606929B2 (en) * 2011-11-08 2017-03-28 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Simulated NVRAM
JP5906881B2 (ja) * 2012-03-27 2016-04-20 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US9081689B2 (en) * 2013-01-14 2015-07-14 Freescale Semiconductor, Inc. Methods and systems for pushing dirty linefill buffer contents to external bus upon linefill request failures
KR102278583B1 (ko) * 2018-12-26 2021-07-16 중앙대학교 산학협력단 모바일 기기에서의 상황정보를 기반으로 한 파일 입출력 관리 시스템 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394733A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem
US4598357A (en) * 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US4523206A (en) * 1982-03-03 1985-06-11 Sperry Corporation Cache/disk system with writeback regulation relative to use of cache memory
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
CA1299767C (en) * 1987-02-18 1992-04-28 Toshikatsu Mori Cache memory control system
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
DE3912705C2 (de) * 1989-04-18 1996-06-20 Siemens Nixdorf Inf Syst Verfahren und Anordnung zur Steuerung des Datenaustausches bei Schreibanforderungen von Verarbeitungseinheiten an einen Cachespeicher

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム

Also Published As

Publication number Publication date
DE69127111D1 (de) 1997-09-11
EP0444401A3 (en) 1992-09-02
KR920000040A (ko) 1992-01-10
EP0444401A2 (en) 1991-09-04
DE69127111T2 (de) 1998-02-19
EP0444401B1 (en) 1997-08-06
US5197144A (en) 1993-03-23
JP3067112B2 (ja) 2000-07-17

Similar Documents

Publication Publication Date Title
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US5627992A (en) Organization of an integrated cache unit for flexible usage in supporting microprocessor operations
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US5185878A (en) Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
US6366984B1 (en) Write combining buffer that supports snoop request
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US5784590A (en) Slave cache having sub-line valid bits updated by a master cache
US5025366A (en) Organization of an integrated cache unit for flexible usage in cache system design
US4959777A (en) Write-shared cache circuit for multiprocessor system
US5136691A (en) Methods and apparatus for caching interlock variables in an integrated cache memory
US5897655A (en) System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
US8782348B2 (en) Microprocessor cache line evict array
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JPH08263373A (ja) キャッシュにおけるスヌーピング装置および方法
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6665767B1 (en) Programmer initiated cache block operations
US5724550A (en) Using an address pin as a snoop invalidate signal during snoop cycles
KR20060102565A (ko) 라이트 백 캐시 내에서 동시 발생하는 스누프 푸시 또는스누프 킬 연산중에 라이트 백 연산을 취소하는 시스템 및방법
EP0309995B1 (en) System for fast selection of non-cacheable address ranges using programmed array logic
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
JPH0574103B2 (ja)

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090519

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees