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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability 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
れたプッシュを再ロードするデータ・プロセッサを提供
する。 【構成】 キャッシュ「ミス」が生じた場合、キャッシ
ュ・コントローラ14は置換するキャッシュ・ラインを
選択し、必要なキャッシュ・ラインを外部メモリから転
送するためバースト・ライン・リードを要求する。置換
のため選択されたキャッシュ・ラインのデータ入力がダ
ーティとマークされると、キャッシュ・コントローラ1
4はキャッシュ・ラインまたはそのダーティ部分をバッ
ファに「プッシュ」し、このバッファは、バス・インタ
ーフェース・コントローラ20によるバースト・ライン
・リードが完了するまで、キャッシュ・ラインを格納す
る。バス・エラーまたはバス・キャッシュ禁止(もしく
はその他の理由)により、バースト・ライン・リードが
異常終了すると、データ・キャッシュ・コントローラ1
4はバッファ22に格納されたキャッシュ・ラインをコ
ピー・バック・キャッシュに再ロードする。
Description
ッサに関し、さらに詳しくは、コピー・バック・データ
・キャッシュを有するデータ・プロセッサに関する。
イクロプロセッサのスピードが増加するにつれて重要な
設計要件となっている。これら高速マイクロプロセッサ
では、メモリ・システムとシステム・バスを共有するマ
ルチ・プロセッサおよびDMAとにかかる負担が大きく
なる。M68000ファミリ・マイクロプロセッサで
は、中央処理装置(CPU)の内部で高能率パイプライ
ンを構築しているため、一般に90〜95%の利用率で
外部バスを利用している。システムによっては、不十分
なバス帯域幅の問題をキャッシュ方式、特に多量のデー
タ入力(例えば、バス・サイズよりかなり大きいデータ
入力)を格納するキャッシュを用いることにより、この
問題に対処している。
リにアクセスするアクセス時間を短縮させ、システム性
能を向上させるため、コンピュータ設計者により用いら
れてきた。多くのコンピュータ・システムでは、メイン
・メモリはプロセッサのスピードに比べて遅いメモリ・
デバイスの大きなアレイによって構成されている。メイ
ン・メモリに対するアクセス期間中、スピードの遅いメ
モリ・デバイスに対応するため、プロセッサは待ち状態
を追加挿入しなくてはならない。メモリ・アクセス期間
中のシステム性能は、キャッシュを用いることにより向
上できる。メイン・メモリよりも小さくかつはるかに高
速なキャッシュは、プロセッサが頻繁に使用するデータ
や命令コードを高速で局部的に格納する。キャッシュを
有するコンピュータ・システムでは、プロセッサによる
メモリ動作は最初にキャッシュにより実行される。スピ
ードの遅いメイン・メモリは、メモリ動作がキャッシュ
により完了できない時しかプロセッサによりアクセスさ
れない。一般に、プロセッサはメモリ動作の大半をキャ
ッシュで実行する可能性が高い。従って、キャッシュを
用いるコンピュータ・システムでは、プロセッサと比較
的スピードの遅いメイン・メモリとの間の有効メモリ・
アクセス時間を短縮できる。
高度に最適化することができる。キャッシュの性能と設
計の複雑性とに影響を及ぼす重要な特徴の1つとして、
プロセッサによる書き込みの処理または別のバス・マス
タがある。ある1つのデータまたは命令コードについて
2つのコピー、すなわちメイン・メモリ内の1つとキャ
ッシュ内のコピーとが存在するため、メイン・メモリま
たはキャッシュのいずれかに書き込むと、これら2つの
記憶装置の間に不整合が生じる。例えば、特定のデータ
は、キャッシュおよびメイン・メモリの両方において所
定アドレスに格納される。プロセッサが所定アドレスに
書き込む間、プロセッサはまずキャッシュの内容からア
ドレスを調べる。キャッシュにおいてアドレスが割り出
されると、プロセッサは所定のアドレスにおいてキャッ
シュに新たなデータの書き込みを開始する。その結果、
キャッシュにおいてデータは修正されるが、メイン・メ
モリのデータは修正されず、従って、キャッシュとメイ
ン・メモリとの間に不整合が生じる。
とメイン・メモリとの間の不整合は、2つの手法を用い
て対処できる。第1の手法では、「ライト・スルー(w
rite−through)」キャッシュ方式により、
プロセッサ書き込み期間中にキャッシュとメイン・メモ
リの両方に書き込み、キャッシュとメイン・メモリとの
間の整合性を保証する。キャッシュおよびメイン・メモ
リの内容は、常に同一であり、従ってこの2つの記憶装
置は常に整合性を維持している。第2の手法では、「ラ
イト・バック(write−back)」または「コピ
ー・バック(copy−back)」キャッシュ方式に
より、キャッシュだけに書き込み、プロセッサによって
変更されたキャッシュ入力を指定する「ダーティ・ビッ
ト(dirty bits)」を設定することで、プロ
セッサの書き込みに対処している。次にプロセッサがキ
ャッシュにアクセスを試みると、「キャッシュ・ミス
(cache miss)」が生じ、置換アルゴリズム
により置換されるダーティ・キャッシュ入力を選択し
て、ダーティ・キャッシュ入力全体またはダーティ部分
をメイン・メモリに「プッシュ」(転送)する。新たな
データは、ダーティ入力によって空白となった番地おい
てキャッシュに書き込まれる。一般に、これらのプロセ
ッサはキャッシュ・ライン全体をメイン・メモリにバー
スト・ライト転送することによってダーティ・キャッシ
ュ入力をアンロードする。キャッシュ入力はシステム・
バス・サイズよりもかなり大きいので、キャッシュ・ラ
イン全体をメイン・メモリにバースト書き込みするに
は、バス帯域幅のかなりの部分を使用する。
性能を向上させるため、マイクロプロセッサおよびコン
ピュータシステムでは、コピー・バック・データ・キャ
ッシュの多用化が進んでいる。コピー・バック・データ
・キャッシュは、置換キャッシュ入力のロードが完了す
るまで、ダーティ・データのプッシュを遅延することが
できる。メモリからのライン・リードが完了するまでラ
イン「プッシュ」を遅延させるこの手順では、プッシュ
された入力をバッファする必要がある。外部バスの問題
(例えばバス・エラーまたはバス・キャッシュ禁止)が
原因で、キャッシュをロードするためライン・リードに
失敗すると、置換される入力をライン・「プッシュ」す
る性能により、別の例外状態(すなわち、別のバス・エ
ラー)が生じる可能性がある。さらに、ライン「プッシ
ュ」を続けると、データ・キャッシュから再び必要とな
りうる入力を不必要に排出すことになり、従ってシステ
ム性能に支障(system performance
penalty)をきたす。従って、コピー・バック
書き込み方式を効率よく使用するには、ライン・リード
・バス転送の異常終了によりキャッシュ・ロードできな
い際に、プッシュ・バッファの利用を最適化するメカニ
ズムが必要となる。
を最適化する改善されたデータ・プロセッサを提供する
ことである。
入力をロードすることにより生じるダーティ・データの
プッシュを遅延できるコピー・バック・データ・キャッ
シュを有する改善されたデータ・プロセッサを提供する
ことである。
データ・キャッシュの維持に起因する複数の同時例外状
態の可能性を除外する改善されたデータ・プロセッサを
提供することである。
の目的は、バス・インターフェース・コントローラを有
するデータ・プロセッサによって実現され、ここでバス
・インターフェース・コントローラはシステム・バスを
介して外部メモリに結合され、キャッシュ・コントロー
ラからのライン・リード転送要求に応答して、外部メモ
リから複数のアドレス指定可能なデータ入力を取り出
し、その複数のアドレス指定可能なデータ入力をコピー
・バック・キャッシュ・メモリにロードし、かつキャッ
シュ・コントローラからのライト転送要求に応答して、
選択されたアドレス指定可能なダーティ・データをキャ
ッシュメモリを一時的に格納するレジスタから外部メモ
リに転送する。ライン・リード転送の異常終了が発生す
ると、キャッシュ・メモリには選択されたアドレス指定
可能なダーティ・データ入力が再ロードされる。ライン
・リード転送要求および第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機能ユニットである。
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つの内部機能ユニットが同時に動作して、最大限の性
能を維持する。
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に開示
されている。
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を取り出す。
ラ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状態に維持される。
シュ・コントローラ14にリード要求またはライト要求
を出し、対応する論理アドレスをアドレス・レジスタ3
2を介してTLB34に転送する。前述のように、論理
アドレスは対応する物理アドレスに変換され、データ・
キャッシュ16の選択されたTAGアドレス・セットと
照合される。照合の結果、アドレスが一致しない場合、
キャッシュ「ミス」が生じ、データ・キャッシュ16は
MISS信号をアサートする。MISS信号に応答し
て、データ・キャッシュ・コントローラ14は置換アル
ゴリズムを用いて置換されるデータ・キャッシュ・ライ
ン32を選択する。データ・キャッシュ・ライン32を
選択すると、データ・キャッシュ・コントローラ14は
データ・キャッシュ・ライン32に置かれたステータス
情報を読み取る。DIRTY(修正)データ・キャッシ
ュ・ライン32(ステータス情報により表示される)が
置換のため選択されると、DIRTYデータはメモリ2
4に「コピー・バック」されなければならない。
・キャッシュ・ライン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に格納された情報の転送
(プッシュ)を要求する。
ライン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が要求するバス転送のス
テータスを知らせる。
ると、バス・インターフェース・コントローラ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
に「コピー・バック」されるので、最小限のシステム・
バス帯域幅が利用される。
異常終了すると、バス・インターフェース・コントーラ
20が第2STATUS信号をアサートする。第2ST
ATUS信号は、データ・キャッシュ・コントローラ1
4に対して、要求されたデータ・キャッシュ・ライン3
2をキャッシュ不可能にするバースト・リード転送の終
了(例えば、バス・エラーやキャッシュ禁止とマークさ
れたライン等)が生じたことを知らせる。バースト・ラ
イン・リード要求により生じるバス・エラーが発生する
と、データ・キャッシュ・コントローラ14はデータ・
キャッシュ16に新たなデータ・キャッシュ・ライン3
2(置換入力)をロードすることができなくなる。従っ
て、置換のために選択されたデータ・キャッシュ・ライ
ン32のライン「プッシュ」を継続することは不合理で
ある。なぜならば、そうすることにより、再度必要とな
るかもしれない入力をデータ・キャッシュ16から不必
要に排出することになるからである。さらに、ライン
「プッシュ」をシステム・バス24まで進めると、別の
例外状態(例えば、別のバス・エラー)が発生する可能
性があり、バースト・ライン・リード要求のバス・エラ
ーを矯正するのに必要な例外処理手順をさらに複雑にす
ることになる。従って、バス・インターフェース・コン
トローラ20は、データ・キャッシュ・コントローラ1
4が特定の管理機能を実行するまで待機する。管理機能
を完了すると、データ・キャッシュ・コントローラ14
は、第3STATUS信号をアサートし、バス・インタ
ーフェース・コントローラ20が通常動作を再開するこ
とを可能にする。
0から第2STATUS信号を受け取ると、データ・キ
ャッシュ・コントローラ14はプッシュ・バッファ22
bの内容をデータ・キャッシュ16に再ロードする。プ
ッシュ・バッファ22bに格納されたTAGアドレスお
よび追加ステータス情報を用いて、データ・キャッシュ
・コントローラ14は、データ・キャッシュ・ライン3
2をデータ・キャッシュ16の元の番地に戻す。データ
・キャッシュ・コントローラ14は、選択されたセット
に再ロードされる入力を示すTAGアドレスおよび追加
ステータス情報を読み出すことにより、再ロードする適
切な番地を求める。データ・キャッシュ・ライン32が
再ロードされると、データ・キャッシュ・コントローラ
14はVALIDビットをリセットする(このVALI
Dビットは、データ・キャッシュ・ラインがプッシュ・
バッファ22bに転送されたときクリアされている)。
データ・キャッシュ・コントローラ14がデータ・キャ
ッシュ16を再ロードした後、データ・キャッシュ・ラ
イン32は、次に置換のため選択されるまでデータ・キ
ャッシュに格納されたままとなる。
たが、開示された発明は多くの点で変更でき、上述の実
施例以外にも多くの実施例が可能であることが当業者に
は明かである。例えば、データ・キャッシュ16の適切
な番地でVALIDビットをクリアおよびリセットし、
再ロード後にデータキャッシュ16のデータ・キャッシ
ュ・ライン32を再捕捉(再有効化)することにより再
ロードの構築コストを削減することができる。従って、
データ・キャッシュ16のデータ・キャッシュ・ライン
32は、VALIDビット以外には影響を受けず、この
VALIDビットは、プッシュ・バッファがロードされ
るとクリアされ、データ・キャッシュ16が再ロードさ
れると(バースト・ライン・リードの異常終了時)リセ
ットされる。この再ロード方法により、データ・キャッ
シュ16とプッシュ・バッファ22bとの間に双方向路
を設けずに済み、またプッシュされた入力を1クロック
・サイクルで再有効化することが可能となる。プッシュ
・バッファ22bの再ロードは、いかなる種類のバース
イト・ライン・リードの異常終了の結果によって生じう
ることが当業者には明かである。従って、添付のクレー
ムには、本発明の真の精神と範躊に該当する本発明のす
べての変形例が含まれるものとする。
を示すブロック図である。
タ・キャッシュにおけるデータ・キャッシュ入力置換方
式の好適な実施例を示すブロック図である。
ン) 34 変換ルック・アサイド・バッファ(TLB)
Claims (4)
- 【請求項1】システム・バスを介して外部メモリに結合
されるバス・インターフェース・コントローラを有し、
キャッシュ・コントローラによって生成されるライン・
リード転送要求に応答して、前記外部メモリから複数の
アドレス指定可能なデータ入力を取り出し、前記複数の
アドレス指定可能なデータ入力をコピー・バック・キャ
ッシュ・メモリにロードし、かつ前記キャッシュ・コン
トローラによって生成されるライン・ライト転送要求に
応答して、キャッシュ・メモリを一時的に格納するレジ
スタから前記外部メモリに、置換のために選択されたア
ドレス指定可能なダーティ・データ入力を転送するデー
タ・プロセッサにおいて、前記ライン・リード転送の異
常終了時に前記アドレス指定可能なダーティ・データ入
力を前記キャッシュ・メモリに再ロードする方法であっ
て:前記アドレス指定可能なダーティ・データ入力が前
記キャッシュ・コントローラにより前記キャッシュ・メ
モリにおいて無効にされ、かつ前記キャッシュ・メモリ
から前記格納レジスタに書き込まれる時、前記ライン・
リード転送要求と第1リード・アドレスとを前記バス・
インターフェース・コントローラに同時に転送する段
階;前記第1リード・アドレスに対応する第1アドレス
指定可能なデータ入力を、前記外部メモリから前記キャ
ッシュメモリに前記システム・バスを介して転送する段
階;前記バス・インターフェース・コントローラが前記
ライン・リード転送の前記異常終了を表示し、かつ前記
アドレス指定可能なダーティ・データ入力が前記キャッ
シュ・コントローラにより前記キャッシュ・メモリにお
いて再有効化される時、前記格納レジスタから前記キャ
ッシュ・メモリに、アドレス指定可能なダーティ・デー
タ入力を再ロードする段階;によって構成されることを
特徴とする方法。 - 【請求項2】前記アドレス指定可能なダーティ・データ
入力が前記格納レジスタに書き込まれた後、前記ライン
・ライト転送要求を前記バス・インターフェース・コン
トローラに転送し、それにより前記格納レジスタに格納
された前記アドレス指定可能なダーティ・データ入力の
バス転送を要求する段階によって構成されることを特徴
とする請求項1の方法。 - 【請求項3】前記バス・インターフェース・コントロー
ラが前記ラインリード転送を異常終了した場合、前記バ
ス・インターフェース・コントローラから前記キャッシ
ュ・コントローラに第1ステータス信号を転送し、それ
により前記ライン・リード転送の前記異常終了の発生を
表示する段階によって構成されることを特徴とする請求
項2の方法。 - 【請求項4】システム・バスを介して外部メモリに結合
されるバス・インターフェース・コントローラを有し、
キャッシュ・コントローラによって生成されるライン・
リード転送要求に応答して、前記外部メモリから複数の
アドレス指定可能なデータ入力を取り出し、前記複数の
アドレス指定可能なデータ入力をコピー・バック・キャ
ッシュ・メモリにロードし、かつ前記キャッシュ・コン
トローラによって生成されるライン・ライト転送要求に
応答して、置換のため選択されたアドレス指定可能なダ
ーティ・データ入力を前記キャッシュ・メモリから前記
外部メモリに転送するデータ・プロセッサにおいて、前
記ラインリード転送の異常終了時に前記アドレス指定可
能なダーティ・データ入力を前記キャッシュ・メモリに
再ロードする方法であって:前記アドレス指定可能なダ
ーティ・データ入力が前記キャッシュ・メモリにおいて
無効にされる時、前記ライン・リード転送要求と第1リ
ード・アドレスとを同時に前記バス・インターフェース
・コントローラに転送する段階;前記第1リード・アド
レスに対応する第1アドレス指定可能なデータ入力を、
前記外部メモリから前記キャッシュ・メモリに前記シス
テム・バスを介して転送する段階;前記バス・インター
フェース・コントローラが前記ライン・リード転送の異
常終了を表示した時、前記キャッシュ・メモリの前記ア
ドレス指定可能なダーティ・データ入力を再有効化する
段階;によって構成されることを特徴とする方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004529435A (ja) * | 2001-05-16 | 2004-09-24 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | キャッシュ中のラインを投機的に無効にする方法とシステム |
Families Citing this family (38)
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)
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 |
-
1990
- 1990-02-26 US US07/484,592 patent/US5197144A/en not_active Expired - Fee Related
-
1991
- 1991-01-10 DE DE69127111T patent/DE69127111T2/de not_active Expired - Fee Related
- 1991-01-10 EP EP91100264A patent/EP0444401B1/en not_active Expired - Lifetime
- 1991-02-21 KR KR1019910002769A patent/KR920000040A/ko active IP Right Grant
- 1991-02-26 JP JP3114206A patent/JP3067112B2/ja not_active Expired - Fee Related
Cited By (1)
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 |