JPH08171513A - キャッシュメモリの変更されたインデックスラインを識別し、その変更されたインデックスラインを外部メモリに書込むための装置 - Google Patents

キャッシュメモリの変更されたインデックスラインを識別し、その変更されたインデックスラインを外部メモリに書込むための装置

Info

Publication number
JPH08171513A
JPH08171513A JP7169529A JP16952995A JPH08171513A JP H08171513 A JPH08171513 A JP H08171513A JP 7169529 A JP7169529 A JP 7169529A JP 16952995 A JP16952995 A JP 16952995A JP H08171513 A JPH08171513 A JP H08171513A
Authority
JP
Japan
Prior art keywords
data
signal
array
tag
multiplexer
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.)
Ceased
Application number
JP7169529A
Other languages
English (en)
Inventor
Mark Silla
マーク・シラ
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH08171513A publication Critical patent/JPH08171513A/ja
Ceased 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

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)【要約】 【課題】 キャッシュメモリの変更ラインのアドレスを
決定し、タグと、データと、対応のアソシアティビティ
とを取出し、変更ラインに対して外部メモリへのコピー
バックルーチンを実行する装置および方法を提供する。 【解決手段】 このキャッシュメモリは属性アレイと、
タグアレイと、データアレイとを含む。この装置は属性
アレイの各ラインの状態を同時にチェックして、1つ以
上の変更ラインがあるかどうかを判断する優先順位ルッ
クアヘッドエンコーダ論理回路(56)を含む。この回
路は変更ラインを外部メモリに書込むコピーバックルー
チンのために、複数の場合には変更ラインに優先順位を
付ける。この装置は変更ラインの各々に対応する外部メ
モリのアドレスを発生し、最終的にコピーバックのため
に変更ラインの各々に対応するデータを取出しかつ保持
する。

Description

【発明の詳細な説明】
【0001】
【関連出願の相互参照】この出願は「複数の条件を同時
に検出するための装置、およびその方法」と題された同
じ発明者の出願に関連する。この関連出願は同じ日に提
出され、この発明の譲受人に譲渡され、その全体をここ
に引用により援用する。
【0002】
【発明の分野】この発明は一般にコンピュータのキャッ
シュメモリに関し、より特定的に、キャッシュメモリの
変更されたラインのアドレスを決定して、タグアドレ
ス、データ、および対応のアソシアティビティを取出
し、変更されたキャッシュラインに対するコピーバック
ルーチンを実行するための装置および方法に関する。
【0003】
【関連技術の説明】コンピュータおよび他のデジタル処
理装置のキャッシュメモリは一般に知られている。キャ
ッシュとは後にアクセスや永久的な格納をされるかもし
れないしまたはされないかもしれないデータの記憶、通
常は一時的な記憶のために与えられたメモリ割当であ
る。キャッシュメモリはフェッチおよびストア時間をス
ピードアップするために関連のプロセッサによって非常
にしばしば要求されるデータを保持する機能をする。キ
ャッシュはしたがって高速メモリであり、そのためプロ
セッサ性能を最適化し、バス帯域幅を高めるために装置
においてしばしば使用される。
【0004】キャッシュメモリは実際には装置の平均メ
モリアクセス時間を低減する機能を果たす。その時間を
低減することによって、キャッシュは、通常はより大き
くかつアクセス時間がずっと劣る外部メモリにアクセス
する必要性を排除することによって処理の速度を速め
る。キャッシュをプロセッサの近くに配置し、キャッシ
ュに望ましいアクセス手順および記憶手順を備えること
によって、キャッシュは処理装置の動作を著しく速める
ことができる。予測され得るように、多くのファクタ、
たとえばキャッシュのサイズ、物理的な構成、キャッシ
ュライン置換/変更アルゴリズム、およびキャッシュメ
モリを使用する実行されているあらゆるソフトウェアの
振る舞いなどの多くのファクタがキャッシュの有効性に
影響を与える。
【0005】典型的な動作では、キャッシュはメイン
(または「外部の」)メモリから最近使用されたコード
またはデータのコピーを維持する。キャッシュのこのコ
ードまたはデータはプロセッサがその反復動作において
使用するものである。メインメモリ、つまり、外部メモ
リは永久的な(または拡張)データ記憶のために使用さ
れ、典型的にはプロセッサによって直接アクセスされな
い。プロセッサはキャッシュメモリからのデータで動作
するために、その時々に応じてキャッシュに記憶された
データは外部メモリに記憶されたデータと同一でなけれ
ばならない。キャッシュメモリがプロセッサ動作中に所
望の態様で変更されると、外部メモリのデータも同様に
更新されなければならない。
【0006】キャッシュメモリの変更を判断し、変更さ
れたデータを外部メモリに書込むための多くの既知の手
順および装置がある。これらの手順およびその効果は、
キャッシュ構成およびキャッシュ効果に関連して前に説
明された他のファクタに一般に依存する。しかしなが
ら、構成および他のファクタにかかわらず、キャッシュ
の変更を判断して、キャッシュ変更を外部メモリに書込
む従来の手順では、キャッシュ内の記憶された情報の各
ロケーションを段階的な態様でチェックして、各ロケー
ションでキャッシュされたデータの何らかの変更があっ
たか否かを判断する必要があった。その段階的なチェッ
クで変更が見つかった場合にのみ、外部メモリが更新さ
れる。キャッシュメモリはプロセッサの動作中継続的に
置換されているので、変更が見つかるまでキャッシュに
記憶されたすべての情報を1ステップずつ進む従来の手
順は、プロセッサ動作と比較すると時間のかかるもので
ある。したがって、キャッシュの変更を識別し、それら
の変更を反映するように外部メモリを更新するための新
しい装置および手順が開発されれば、先行技術より有利
なものとなろうし、そのような装置および手順によりキ
ャッシュメモリ動作時間の短縮が可能となるであろう。
【0007】キャッシュメモリについて議論する際に、
多くの特定の用語がしばしば使用される。この発明の目
的および利点をよりよく理解するために、それらの言葉
のいくつかについて以下のようにここで定義する。
【0008】アソシアティビティ−−キャッシュ構成に
基づく、特定のアドレスがキャッシュされ得る、キャッ
シュ内の可能なロケーション数を指す数。これはまた同
時に読出されかつ比較されるタグの数をも指す。
【0009】クリーンライン−−コピーバック書込方式
で主メモリに書込まれていないために、変更されたとマ
ークされていないキャッシュライン。そのようなキャッ
シュラインが変更されたとしてマークされていないとい
う事実は、そのラインが関連のある主メモリに対して変
更されていないことを示す。
【0010】コピーバック−−データがキャッシュ内で
変更された場合にライトバックがキャッシュ内で実行さ
れる書込方式。キャッシュされたデータが変更される
と、そのキャッシュはフラッシュされる。フラッシュさ
れると、そのとき変更されたとマークされていたキャッ
シュの一本または複数のラインのデータは主メモリに書
込まれる(コピーバックされる)。
【0011】データアレイ−−プロセッサが使用するた
めのデータ変数を含むランダムアクセスメモリアレイ。
【0012】データキャッシュ−−頻繁に使用されるプ
ロセッサデータ変数をキャッシュするために使用される
キャッシュ。
【0013】インデックス−−各キャッシュラインは、
それに関連する、記憶され、かつメモリ要求のインデッ
クスと比較されなければならないインデックスを有す
る。インデックスはキャッシュ内のデータと、それによ
り代理されている主メモリの特定のフラグメントとの間
に対応関係を確立するディレクトリのエントリ(ライン
当り1個)として保持される。
【0014】ライン(またはブロック)−−キャッシュ
ラインまたはブロックはタグと関連付けされたキャッシ
ュメモリ内で順に並んだワードのグループである。
【0015】ルックアップ−−何らかのデータが主メモ
リから引出され、キャッシュに置かれたときに、ルック
アップが実行されたという。
【0016】変更されたライン−−キャッシュラインは
コピーバック書込方式で書込まれた場合に変更されたと
マークされる。このマークはそのラインがそのデータの
最近のものを含むことを示す。
【0017】状態ビット−−状態ビットは各キャッシュ
ラインと関連付けられ、ラインが変更された状態または
変更されていない状態を示す。
【0018】タグ−−タグは現在キャッシュに存在する
データまたは命令のアドレスを識別する。キャッシュタ
グは各キャッシュラインと関連付けられ、タグアレイに
記憶される。
【0019】タグアレイ−−キャッシュデータに対する
アドレスタグを含むランダムアクセスメモリアレイ。
【0020】この発明は、キャッシュメモリの変更され
たラインのアドレスを決定し、そのラインのタグアドレ
ス、データ、および対応のアソシアティビティを取出
し、変更されたキャッシュラインに対するコピーバック
ルーチンを実行するための改良された装置および方法を
与えるキャッシュコントローラインデックスアドレス発
生器である。実際には、この発明はキャッシュメモリに
より高速型のフラッシュ機構を与え、高速化されたキャ
ッシュメモリ動作を可能にする。このように、この発明
は当該技術分野における重要な改良である。
【0021】
【発明の概要】この発明の一実施例はキャッシュメモリ
の変更されたラインを識別し、その変更されたラインを
外部メモリに書込むための装置である。この装置は、キ
ャッシュメモリのすべての変更を同時に判断するための
検出器と、その変更を外部メモリに順次書込むためにそ
の変更に優先順位を付けるための優先順位付け器と、変
更の各々が書込まれるべき外部メモリのアドレスを識別
するための識別器とを含む。
【0022】別の局面では、このキャッシュメモリは属
性アレイと、タグアレイと、データアレイとを含む。
【0023】さらに別の局面では、この検出器は変更を
判断するために属性アレイの各ラインの状態ビットを同
時にチェックする論理回路である。
【0024】他の局面では、この優先順位付け器は論理
回路の設計に固有の所望の優先順位付け方式に従って、
各々が変更の各々に対応するアソシアティビティ信号と
インデックス信号とを順次出力する論理回路である。
【0025】さらに別の局面では、このキャッシュメモ
リは属性アレイと、タグアレイと、データアレイとを含
み、優先順位付け器は、論理回路の設計に固有の所望の
優先順位付け方式に従って、変更の各々に対応するアソ
シアティビティ信号とインデックス信号とを順次出力す
る論理回路である。
【0026】さらに別の局面では、この識別器はインデ
ックス信号とアソシアティビティ信号とを使用して、タ
グアレイからインデックス信号と組合せるためのタグ信
号を決定し、アドレスを生み出す決定器を含む。
【0027】さらに別の局面では、変更されたインデッ
クスラインのアソシアティビティに対応するデータ信号
は、第2のマルチプレクサによって発生され、このイン
デックス信号は可能なデータ信号のデータアレイのロケ
ーションを決定し、アソシアティビティ信号は適切なキ
ャッシュラインを選択するために第2のマルチプレクサ
に入力され、第2のマルチプレクサはデータ信号を発生
する。
【0028】さらに別の局面では、キャッシュメモリは
属性アレイと、タグアレイと、データアレイとを含み、
検出器は変更を判断するために属性アレイの各ラインの
状態ビットを同時にチェックする論理回路である。
【0029】他の局面では、識別器は第1のマルチプレ
クサを含み、インデックス信号は可能なタグ信号のタグ
アレイのロケーションを決定し、アソシアティビティ信
号は適切なタグアドレスを選択するために第1のマルチ
プレクサに入力され、第1のマルチプレクサはタグ信号
を発生する。
【0030】他の局面では、この装置はさらにコピーバ
ックバッファを含み、データ信号は外部メモリへの書込
みのためにこのコピーバックバッファに記憶される。
【0031】この発明の別の実施例は、キャッシュメモ
リの変更されたラインのアドレスを決定し、タグと、デ
ータと、対応するアソシアティビティとを取出し、変更
されたラインに対して外部メモリへのコピーバックルー
チンを実行するための装置であり、このキャッシュメモ
リは属性アレイと、タグアレイと、データアレイとを含
む。この装置は属性アレイの各ラインの状態ビットを同
時にチェックして、変更されたラインのうちの1つ以上
が示されているかどうかを判断するためのチェッカと、
1つより多い場合には変更されたラインに優先順位を付
けるための優先順位付け器と、変更されたラインの各々
が次の優先順位になるとき、およびそうなったときに、
変更されたラインの各々に対応する外部メモリアドレス
を発生するための発生器と、変更されたラインの各々が
次の優先順位になるとき、およびそうなったときに、変
更されたラインの各々に対応するデータの各々を取出す
ためのレトリーバとを含む。
【0032】別の局面では、このチェッカは優先順位ル
ックアヘッドエンコーダである。他の局面では、この発
生器は第1のマルチプレクサを含み、この第1のマルチ
プレクサは優先順位ルックアヘッドエンコーダからのア
ソシアティビティ信号と、優先順位ルックアヘッドエン
コーダからのインデックス信号によって決定されるタグ
アレイからの数個の可能なタグとの入力を受取り、第1
のマルチプレクサはタグを発生し、タグはインデックス
信号と組合されてアドレスを与える。
【0033】さらに他の局面では、このレトリーバは第
2のマルチプレクサを含み、この第2のマルチプレクサ
はアソシアティビティ信号の入力を受取り、インデック
ス信号によって決定されるデータアレイからの数個の可
能なデータから選択し、第2のマルチプレクサはデータ
を発生する。
【0034】さらに他の局面では、この装置はコピーバ
ックルーチンを実行するためのデータを記憶する記憶装
置をさらに含む。
【0035】別の局面では、この記憶装置はコピーバッ
クバッファである。この発明のさらに他の実施例は、キ
ャッシュメモリの変更されたラインのアドレスを決定
し、タグと、データと、対応のアソシアティビティとを
取出し、変更されたラインに対して外部メモリへのコピ
ーバックルーチンを実行するための方法であり、このキ
ャッシュメモリは属性アレイと、タグアレイと、データ
アレイとを含む。この方法は属性アレイの各ラインの状
態ビットを同時にチェックして、変更されたラインの1
つ以上が示されているかどうかを判断するステップと、
1つより多い場合には変更されたラインに優先順位を付
けるステップと、変更されたラインの各々が次の優先順
位になるとき、およびそうなったときに、変更されたラ
インの各々に対応する外部メモリのアドレスを発生する
ステップと、変更されたラインの各々が次の優先順位に
なるとき、およびそうなったときに、変更されたライン
の各々に対応するデータの各々を取出すステップとを含
む。
【0036】別の局面では、チェックするステップおよ
び優先順位を付けるステップは優先順位ルックアヘッド
エンコーダ論理回路によって実行される。
【0037】さらに別の局面では、発生するステップは
第1のマルチプレクサによって実行され、第1のマルチ
プレクサは優先順位ルックアヘッドエンコーダからのア
ソシアティビティ信号の入力を受取り、優先順位ルック
アヘッドエンコーダ論理回路からのインデックス信号に
よって決定されるタグアレイからの数個の可能なタグか
ら選択し、第1のマルチプレクサはタグを発生し、タグ
はインデックス信号と組合されてアドレスを与える。
【0038】さらに別の局面では、取出すステップは第
2のマルチプレクサによって実行され、第2のマルチプ
レクサはアソシアティビティ信号の入力を受取り、イン
デックス信号によって決定されるデータアレイからの数
個の可能なデータから選択し、第2のマルチプレクサは
データを発生する。
【0039】他の局面では、この方法はさらにコピーバ
ックルーチンで使用するためにデータをコピーバックバ
ッファに記憶するステップを含む。
【0040】この発明をよりよく理解するために、かつ
この発明のさらなる目的および利点のために、添付の図
面とともに考慮される以下の説明をここで参照する。
【0041】
【実施例】まず図1を参照して、先行技術のキャッシュ
メモリアドレス指定およびコピーバック装置2が示され
る。この先行の装置2は中央処理装置(「CPU」)3
およびある外部メモリ18からなる。CPU3はデータ
アレイ14とタグおよび属性アレイ10とを含む。
【0042】依然として図1を参照して、この先行技術
のキャッシュメモリ装置2のデータアレイ14は多数の
メモリロケーション、たとえば各々が128のラインの
キャッシュデータを有する4層アレイの場合には512
のメモリロケーションを含む。このようなデータアレイ
14は反復動作中に装置のCPU3によって頻繁に使用
されるプロセッサデータ変数を記憶するためにこのよう
な構成で典型的に使用される。データアレイ14はCP
U3が即時アクセスし処理するための変数値を保持す
る。
【0043】引続き図1を参照して、タグおよび属性ア
レイ10は、データアレイ14に記憶された情報のアド
レス指定に関連する識別データを記憶するために使用さ
れるキャッシュである。タグおよび属性アレイ10に記
憶された特定の識別データは、キャッシュメモリ2で使
用される特定のタイプのアドレス指定技術に依存して様
々な形式をとり得る。典型的なタイプのアドレス指定技
術では、タグおよび属性アレイ10はデータアレイ14
の各特定のロケーションにおけるデータの状態のインジ
ケータ(つまり変更されているか変更されていない
か)、およびデータアレイ14のそのデータに対するそ
れぞれのロケーションアドレスを含む。
【0044】引続き図1を参照して、CPU3はまたカ
ウンタ4機構を含む。カウンタ4はデータアレイ14の
データにアクセスする場合に、タグおよび属性アレイ1
0に記憶されたアドレスタグの各々を1ステップずつ処
理する機能をする。カウンタ信号6は変更されたかどう
かのチェック機構12にタグおよび属性アレイ10の特
定のラインを見るように命令する。ポイント信号8はカ
ウンタ4にタグおよび属性アレイ10の4つの層の各々
をそれぞれ指し、カウンタ信号6により変更されたかど
うかのチェック機構12が層の各々の各ラインをチェッ
クするようにする。CPU3の変更されたかどうかのチ
ェック機構12は、タグおよび属性アレイ10の各ロケ
ーションに変更があるかどうかを、カウンタ4がそれら
のロケーションを1ステップずつ進むときにチェックす
る機能をする。
【0045】依然として図1を参照して、先行技術のキ
ャッシュメモリアドレス指定およびコピーバック装置2
の動作が理解される。例示の目的のために、タグおよび
属性アレイ10の各々ならびにデータアレイ14は4層
であり、層当り128のラインを有すると考える。カウ
ンタ信号6はたとえば7ビットの信号であり、これはタ
グおよび属性アレイ10の各層の128のロケーション
に対応する。ポイント信号8はたとえば2ビットの信号
であり、それにより変更されたかどうかのチェック機構
12は4つの層のうちの特定の1つを見る。一方、カウ
ンタ信号6により変更されたかどうかのチェック機構1
2はその層の各ラインを1ステップずつ進む。特定の層
のすべてのロケーションについて変更があったかどうか
チェックされると、ポイント信号8により変更されたか
どうかのチェック機構12は変更が発見されるまで次の
連続層、次の連続層、…と見ていくか、または変更がな
い場合には、全体のタグおよび属性アレイ10の各ロケ
ーションがチェックされてしまうまで次々と層を見てい
く。
【0046】さらに図1を参照して、この先行技術の装
置2のカウンタ4は、変更されたかどうかのチェック機
構12をタグおよび属性アレイ10の各メモリロケーシ
ョンを介して1ステップずつ進め、タグおよび属性アレ
イ10の特定の関連のラインが変更されたかどうかを判
断するために各そのようなロケーションをチェックしな
ければならない。ここに記載されるこの典型的な先行技
術の装置2では、これは変更されたかどうかのチェック
機構12にキャッシュメモリが変更があったかどうかチ
ェックされるたびに最大512のシーケンスをルックア
ップしかつチェックすることを要求する。変更されたラ
インが発見され、アドレスが決定され、コピーバックル
ーチンが実施されても、変更されたかどうかのチェック
機構12はタグおよび属性アレイ10の各メモリロケー
ションを再び1ステップずつ進められ、次のまたは後の
変更されたラインを判断しなければならない。容易に理
解され得るように、変更が判断されなければならないた
びに512もの可能なキャッシュラインの各々を介して
チェック機構12を1ステップずつ進めていくことは、
プロセッサ速度の点で時間のかかることである。キャッ
シュメモリ変更アドレス指定およびコピーバックの速度
は、装置の中でキャッシュメモリのサイズが大きくなる
につれてさらに重要になる。ここに説明される8Kアレ
イ10、14は例示としてのみ意図され、この発明が取
り組む問題はすべてのキャッシュメモリに見られること
が当業者によって理解されるであろう。
【0047】次に図2を参照して、この発明のキャッシ
ュコントローラインデックスアドレス発生器50が示さ
れる。以下でより十分に理解されるように、このキャッ
シュコントローラインデックスアドレス発生器50は、
キャッシュメモリの変更されたラインのアドレスの決
定、およびそのラインのタグアドレス、データおよび対
応のアソシアティビティを取り出す速度を上げ、変更さ
れたキャッシュラインに対するコピーバックルーチンを
実行する。一般的な概念では、発生器50はラインの状
態(つまり変更されたか変更されていないか)を示す属
性アレイ10bの各ラインの特定されたビットを同時に
見、複数の変更されたラインが示された場合に変更され
たラインのコピーバックに優先順位をつける方式を提供
する。
【0048】依然として図2を参照して、図1および図
2と類似の要素は同じ番号によって識別される。図1の
先行技術のキャッシュメモリアドレス指定およびコピー
バック装置2の場合のように、このキャッシュコントロ
ーラインデックスアドレス発生器50はタグおよび属性
アレイ10a、10b(ここ図2に別々に示される)
と、データアレイ14とを含む。キャッシュコントロー
ラインデックスアドレス発生器50はこれらの属性およ
びタグアレイ10b、10a上で動作し、変更されたデ
ータアレイ14のライン、ならびにそれらの変更された
ラインのタグ、属性および対応のアソシアティビティを
直接決定する。
【0049】引続き図2を参照して、優先順位ルックア
ヘッドエンコーダ56は属性アレイ10bの各ラインの
特定の状態を同時にチェックする。状態ビットは、前に
定義されたように、各メモリロケーションまたはキャッ
シュラインに関連し、そのロケーションの変更されたま
たは変更されていないフィールド状態を示す。属性アレ
イ10bのいずれかのライン(または複数のライン)の
状態ビットがキャッシュされたデータの変更、つまりデ
ータアレイ14の変更されたラインを示せば、それによ
り優先順位ルックアヘッドエンコーダ56に信号が送ら
れ、(複数の場合には)変更に優先順位をつけ、キャッ
シュメモリにコピーバックルーチンを実行させ、変更さ
れたデータを外部メモリに書込む。
【0050】さらに図2を参照して、優先順位ルックア
ヘッドエンコーダ56は好ましくは、エンコーダ130
は属性アレイ10bの各ラインの各状態ビットを同時に
見る論理回路である。この態様で各そのようなラインの
各状態ビットを見ることによって、優先順位ルックアヘ
ッドエンコーダ56は状態ビットによって示される変更
が何かあればそれを検出する。優先順位ルックアヘッド
エンコーダ56論理回路はまた、外部メモリへのコピー
バックのために、1つより多くある場合には検出された
変更に優先順位をつける機能をする。ここの説明は主に
好ましい優先順位ルックアヘッドエンコーダ56機構の
ものであるが、この機構は優先順位ルックアヘッドエン
コーダ56によって実行されない機能を実行する他の装
置または機構を使用して、これらの機能のうちのある程
度を代替的に実行することができる。別の代替案とし
て、優先順位ルックアヘッドエンコーダ56は属性アレ
イ10bのラインのほんの一部であってすべてではない
ラインの状態ビットを同時にチェックすることができ、
その場合には、優先順位ルックアヘッドエンコーダ56
は代替のまたは付加的な優先順位付け構成を提供するこ
とができるかもしれない。なぜなら、変更を判断するた
めにすべてのキャッシュロケーションを一度しか見ない
で複数の判断を行なうことが必要であるからである。当
業者には明らかなように、優先順位ルックアヘッドエン
コーダ56の付加的なさらなる代替の組合せ変更が考え
られる。
【0051】依然として図2を参照して、キャッシュコ
ントローラインデックスアドレス発生器50の好ましい
実施例において、優先順位ルックアヘッドエンコーダ5
6は、データアレイ14の変更されたラインを示す属性
アレイ10bの1つ以上の状態ビットを検出したとき、
2つの信号、つまり優先順位が与えられたデータアレイ
の変更されたラインのアソシアティビティおよびインデ
ックスをそれぞれ示すアソシアティビティ信号60およ
びインデックス信号58を発生する。なお、優先順位ル
ックアヘッドエンコーダ56は変更を示す属性アレイ1
0bの複数の状態ビットを同時に検出し得る。これはデ
ータアレイ14に複数の変更されたラインがある場合で
ある。実際、いかなる時点においてもそのとき変更され
たデータアレイ14の各ラインに対する変更を示す1つ
の状態ビットがあるであろう。優先順位ルックアヘッド
エンコーダ56はこのように変更を示す数個の状態ビッ
トを同時に検出し得るので、発生器50は、ある態様に
おいては、コピーバックを行なう目的のために数個の変
更に優先順位をつけなければならない。前に論じたよう
に、キャッシュコントローラインデックスアドレス発生
器50の優先順位ルックアヘッドエンコーダ56は、好
ましい実施例においてその機能を実行し得る。アソシア
ティビティ信号60およびインデックス信号58は第1
の優先順位が与えられた変更とまず一致し、第2の優先
順位が与えられた変更と次に一致し、優先順位ルックア
ヘッドエンコーダ56による変更チェックで検出された
各変更に対応するアソシアティビティ信号60およびイ
ンデックス信号58が優先順位ルックアヘッドエンコー
ダ56から送られるまで次々と一致する。
【0052】依然として図2を参照して、検出された各
特定の変更に対する各アソシアティビティ信号60およ
びインデックス信号58が優先順位ルックアヘッドエン
コーダ56から送られると、信号60、58はアソシア
ティビティ/インデックスレジスタ64に記憶される。
このアソシアティビティ/インデックスレジスタ64は
一時データ記憶レジスタであり、データアレイ14の変
更されたラインに対応する各連続アソシアティビティ信
号60およびインデックス信号58が優先順位ルックア
ヘッドエンコーダ56によって確立された優先順位に従
って処理されることを可能にする。
【0053】さらに図2を参照して、アソシアティビテ
ィ信号60はアソシアティビティ/インデックスレジス
タ64から第1のマルチプレクサ80および第2のマル
チプレクサ90へと送られる。一方、インデックス信号
58はアソシアティビティ/インデックスレジスタ64
からタグアレイ10aおよびタグ/インデックスレジス
タ84へと送られ記憶される。タグ/インデックスレジ
スタ84は一時データ記憶レジスタであり、優先順位ル
ックアヘッドエンコーダ56からの特定のアソシアティ
ビティ信号60およびインデックス信号58の処理の間
インデックス信号58を保持する。タグ/インデックス
レジスタ84もまたタグ信号82を保持するが、この信
号については以下により十分に論じる。
【0054】さらに図2を参照して、タグアレイ10a
に送られたインデックス信号58はタグアレイ10aの
すべての4つの層上でルックアップを実行し、インデッ
クス信号58によって示されたタグアレイ10aのイン
デックスを発見する。特定のアソシアティビティがマル
チプレクサ80によって選択され、マルチプレクサ80
は優先順位ルックアヘッドエンコーダ56によってアソ
シアティビティ/インデックスレジスタ64に送られた
アソシアティビティ信号60を受信する。事実上、マル
チプレクサ80は所望されるアソシアティビティを示す
アソシアティビティ信号60を受信し、タグアレイ10
aの4つのインデックスからタグアレイ10aへのイン
デックス信号58に対応するものを選択する。マルチプ
レクサ80は識別された4つの層のメモリロケーション
から選択し、タグ信号82を発生する。前述のように、
タグ/インデックスレジスタ84はタグ信号82および
インデックス信号60を記憶する。
【0055】さらに、依然として図2を参照して、イン
デックス信号58も同様にデータアレイ14に送られ
る。データアレイ14に送られたそのインデックス信号
58はデータアレイ14のすべての4つの層上でルック
アップを実行し、インデックス信号58によって示され
たデータアレイ14の中のインデックスを発見する。そ
の後マルチプレクサ90によって特定のアソシアティビ
ティが選択され、マルチプレクサ90は優先順位ルック
アヘッドエンコーダ56によってアソシアティビティ/
インデックスレジスタ64に送られたアソシアティビテ
ィ信号60を受信する。この方法は、第1のマルチプレ
クサ80におけるものと同様に、基本的にはどのウェ
イ、つまりどのアソシアティビティが外部メモリに向け
て送り出されるべきかを選択するキャッシュデータルッ
クアップである。マルチプレクサ90は識別された4つ
の層のメモリロケーションの中から選択を行ない、デー
タ信号86を発生する。データ信号86はコピーバック
ルーチンの実行中コピーバックバッファ94に送られ記
憶される。
【0056】依然として図2を参照して、タグ/インデ
ックスレジスタ84は、コピーバックバッファ94にそ
のとき記憶されている特定のデータ86が書込まれるべ
き外部メモリのロケーションを示すアドレス92を利用
可能にする。説明されたように、コピーバックバッファ
94はコピーバックルーチンの実行のために特定のデー
タ86を記憶する。この態様で、発生器50は変更され
たキャッシュメモリラインを即時に判断することを可能
にし、それらの変更されたラインからのデータが何らか
のコピーバックルーチンを経て外部メモリに書込まれる
ことを可能にする。明らかに、発生器50およびその方
法はキャッシュ動作の速度を上げ、変更をさがしてキャ
ッシュを1ステップずつチェックする必要性を排除す
る。
【0057】依然として図2を参照して、このキャッシ
ュコントローラインデックスアドレス発生器50の動作
は一例によってより良く理解され得る。例示の目的のた
めに、属性アレイ10b、タグアレイ10aおよびデー
タアレイ14の各々は4層であり、層当り128のライ
ンを有する、つまり各アレイ10b、10a、14は5
12キロバイトのメモリであると考える。優先順位ルッ
クアヘッドエンコーダ56は4つの層の各々の各ライン
の単一のビット、つまり状態ビットを同時に検出し、そ
うして512のビットを同時に検出する(これは図8に
信号54によって示される)。メモリのラインの変更を
示す512の状態ビットのうちの1つ以上を検出する
と、優先順位ルックアヘッドエンコーダ56は複数の場
合には検出された変更に優先順位をつける。優先順位ル
ックアヘッドエンコーダ56は、優先順位をつけられた
順序で、変更を示す各状態ビットが発見されたラインに
対応する7ビットのインデックス信号58および7ビッ
トのアソシアティビティ信号60を連続的に伝送する。
これらの7ビットの信号58、60の各々はアソシアテ
ィビティ/インデックスレジスタ64に保持される。加
えて、7ビットのアソシアティビティ信号60は第1の
マルチプレクサ80および第2のマルチプレクサ90に
送られ、7ビットのインデックス信号58はタグアレイ
10aおよびデータアレイ14に送られる。各アレイ1
0a、10bでルックアップが実行され、特定のインデ
ックス信号58に対応するタグおよびデータ情報をそれ
ぞれ発生する。各マルチプレクサ80、90は、アソシ
アティビティ信号60入力に基づいて、タグ信号21と
して伝送される特定のタグと、データ信号86として伝
送される特定のデータとを選択する。タグ信号21はこ
の例では21ビットである。データ信号86はこの例で
は128ビットである。タグ信号21およびインデック
ス信号58はタグ/インデックスレジスタ84で組合わ
され、変更を外部メモリに書込む際のコピーバックルー
チンのための28ビットアドレス92を与える(図2に
は図示せず)。データ信号86はコピーバックバッファ
に記憶され、コピーバックルーチンのための28ビット
データを与える。明らかにわかるように、先行技術の装
置および方法によって示された問題を克服する。この発
明はここに記載されたように構成されかつ使用された場
合に特に効果的であると考えられるが、当業者はこの装
置、その用途および構成に数多くの変更および置換えを
行ない、実施例、特にここに明らかに記載された好まし
い実施例によって達成されるのと実質的に同じ結果を達
成するようにすることが可能であることを容易に理解す
るであろう。それらの変更の各々はこの説明に含まれる
ことが意図され、この発明の一部を形成する。したがっ
て、前述の詳細な説明は例示としてのみ与えられたもの
であることが明らかに理解されるはずであり、この発明
の精神および範囲は前掲の特許請求の範囲によってのみ
制限される。
【図面の簡単な説明】
【図1】先行技術のキャッシュアクセスおよびコピーバ
ック方法および装置の単純化されたブロック図である。
【図2】この発明のキャッシュコントローラインデック
スアドレス発生器の単純化されたブロック図であり、キ
ャッシュメモリの変更されたラインのアドレスを決定
し、そのラインのタグアドレスと、データと、対応のア
ソシアティビティとを取出し、コピーバックルーチンを
実行するための改良された装置および方法であって、優
先順位エンコーダ機構を使用しかつ組込む改良された装
置および方法を示す図である。
【符号の説明】
50 キャッシュコントローラインデックスアドレス発
生器 56 優先順位ルックアヘッドエンコーダ 58 インデックス信号 60 アソシアティビティ信号 64 アソシアティビティ/インデックスレジスタ 80 第1のマルチプレクサ 90 第2のマルチプレクサ

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュメモリの変更されたインデッ
    クスラインを識別し、前記変更されたインデックスライ
    ンを外部メモリに書込むための装置であって、 前記キャッシュメモリのすべての変更を同時に判断する
    ための検出器と、 前記変更を前記外部メモリに順次書込むために前記変更
    に優先順位を付けるための優先順位付け器と、 各前記変更が書込まれるべき前記外部メモリのアドレス
    を識別するための識別器とを含む、キャッシュメモリの
    変更されたインデックスラインを識別し、前記変更され
    たインデックスラインを外部メモリに書込むための装
    置。
  2. 【請求項2】 前記キャッシュメモリは属性アレイと、
    タグアレイと、データアレイとを含む請求項1に記載の
    装置。
  3. 【請求項3】 前記検出器は前記変更を判断するために
    前記属性アレイの各ラインの状態ビットを同時にチェッ
    クする論理回路である、請求項1に記載の装置。
  4. 【請求項4】 前記優先順位付け器は前記論理回路の設
    計に固有の所望の優先順位付け方式に従って、各々が前
    記変更の各々に対応するアソシアティビティ信号とイン
    デックス信号とを順次出力する論理回路である、請求項
    1に記載の装置。
  5. 【請求項5】 前記優先順位付け器は、前記論理回路の
    設計に固有の所望の優先順位付け方式に従って、各々が
    前記変更の各々に対応するアソシアティビティ信号とイ
    ンデックス信号とを順次出力する論理回路である、請求
    項2に記載の装置。
  6. 【請求項6】 前記識別器は前記インデックス信号と前
    記アソシアティビティ信号とを使用して、前記タグアレ
    イから前記インデックス信号と組合せるためのタグ信号
    を決定し、前記アドレスを生み出す決定器を含む、請求
    項5に記載の装置。
  7. 【請求項7】 前記変更されたインデックスラインのア
    ソシアティビティに対応するデータ信号は第2のマルチ
    プレクサによって発生され、前記インデックス信号は可
    能なデータ信号の前記データアレイのロケーションを決
    定し、前記アソシアティビティ信号は適切なキャッシュ
    ラインを選択するために前記第2のマルチプレクサに入
    力され、前記第2のマルチプレクサは前記データ信号を
    発生する、請求項5に記載の装置。
  8. 【請求項8】 前記検出器は前記変更を判断するために
    前記属性アレイの各ラインの状態ビットを同時にチェッ
    クする論理回路である、請求項5に記載の装置。
  9. 【請求項9】 前記識別器は第1のマルチプレクサを含
    み、前記インデックス信号は可能なタグ信号の前記タグ
    アレイのロケーションを決定し、前記アソシアティビテ
    ィ信号は適切なタグアドレスを選択するために前記第1
    のマルチプレクサに入力され、前記第1のマルチプレク
    サはタグ信号を発生する、請求項6に記載の装置。
  10. 【請求項10】 コピーバックバッファをさらに含み、
    前記データ信号は前記外部メモリへの書込みのために前
    記コピーバックバッファに記憶される、請求項7に記載
    の装置。
  11. 【請求項11】 キャッシュメモリの変更されたライン
    のアドレスを決定し、タグと、データと、対応するアソ
    シアティビティとを取出し、前記変更されたラインに対
    して外部メモリへのコピーバックルーチンを実行するた
    めの装置であって、前記キャッシュメモリは属性アレイ
    と、タグアレイと、データアレイとを含み、 前記属性アレイの各ラインの状態ビットを同時にチェッ
    クして、前記変更されたラインのうちの1つ以上が示さ
    れているかどうかを判断するためのチェッカと、 複数の場合には前記変更されたラインに優先順位を付け
    るための優先順位付け器と、 前記変更されたラインの各々が次の優先順位になると
    き、およびそうなったときに、前記変更されたラインの
    各々に対応する前記外部メモリのアドレスを発生するた
    めの発生器と、 前記変更されたラインの各々が次の優先順位になると
    き、およびそうなったときに、前記変更されたラインの
    各々に対応する前記データの各々を取出すためのレトリ
    ーバとを含む、キャッシュメモリの変更されたラインの
    アドレスを決定するための装置。
  12. 【請求項12】 前記チェッカは優先順位ルックアヘッ
    ドエンコーダである、請求項11に記載の装置。
  13. 【請求項13】 前記発生器は第1のマルチプレクサを
    含み、前記第1のマルチプレクサは前記優先順位ルック
    アヘッドエンコーダからのアソシアティビティ信号と、
    前記優先順位ルックアヘッドエンコーダからのインデッ
    クス信号によって決定される前記タグアレイからの数個
    の可能なタグとの入力を受取り、前記第1のマルチプレ
    クサは前記タグを発生し、前記タグは前記インデックス
    信号と組合されて前記アドレスを与える、請求項12に
    記載の装置。
  14. 【請求項14】 前記レトリーバは第2のマルチプレク
    サを含み、前記第2のマルチプレクサは前記アソシアテ
    ィビティ信号と、前記インデックス信号によって決定さ
    れる前記データアレイからの数個の可能なデータとの入
    力を受取り、前記第2のマルチプレクサは前記データを
    発生する、請求項13に記載の装置。
  15. 【請求項15】 前記コピーバックルーチンを実行する
    ために前記データを記憶する記憶装置をさらに含む、請
    求項14に記載の装置。
  16. 【請求項16】 前記記憶装置はコピーバックバッファ
    である、請求項15に記載の装置。
  17. 【請求項17】 キャッシュメモリの変更されたライン
    のアドレスを決定し、タグと、データと、対応のアソシ
    アティビティとを取出し、前記変更されたラインに対し
    て外部メモリへのコピーバックルーチンを実行するため
    の方法であって、前記キャッシュメモリは属性アレイ
    と、タグアレイと、データアレイとを含み、 前記属性アレイの各ラインの状態ビットを同時にチェッ
    クして、前記変更されたラインの1つ以上が示されてい
    るかどうかを判断するステップと、 複数の場合には前記変更されたラインに優先順位を付け
    るステップと、 前記変更されたラインの各々が次の優先順位になると
    き、およびそうなったときに、前記変更されたラインの
    各々に対応する前記外部メモリのアドレスを発生するス
    テップと、 前記変更されたラインの各々が次の優先順位になると
    き、およびそうなったときに、前記変更されたラインの
    各々に対応する前記データの各々を取出すステップとを
    含む、キャッシュメモリの変更されたラインのアドレス
    を決定するための方法。
  18. 【請求項18】 前記チェックするステップおよび前記
    優先順位を付けるステップは優先順位ルックアヘッドエ
    ンコーダ論理回路によって実行される、請求項17に記
    載の方法。
  19. 【請求項19】 前記発生するステップは第1のマルチ
    プレクサによって実行され、前記第1のマルチプレクサ
    は前記優先順位ルックアヘッドエンコーダからのアソシ
    アティビティ信号と、前記優先順位ルックアヘッドエン
    コーダ論理回路からのインデックス信号によって決定さ
    れる前記タグアレイからの数個の可能なタグとの入力を
    受取り、前記第1のマルチプレクサは前記タグを発生
    し、前記タグは前記インデックス信号と組合されて前記
    アドレスを与える、請求項18に記載の方法。
  20. 【請求項20】 前記取出すステップは第2のマルチプ
    レクサによって実行され、前記第2のマルチプレクサは
    前記アソシアティビティ信号と、前記インデックス信号
    によって決定される前記データアレイからの数個の可能
    なデータとの入力を受取り、前記第2のマルチプレクサ
    は前記データを発生する、請求項19に記載の方法。
  21. 【請求項21】 前記コピーバックルーチンで使用する
    ために前記データをコピーバックバッファに記憶するス
    テップをさらに含む、請求項20に記載の方法。
JP7169529A 1994-07-06 1995-07-05 キャッシュメモリの変更されたインデックスラインを識別し、その変更されたインデックスラインを外部メモリに書込むための装置 Ceased JPH08171513A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/271,105 US5555379A (en) 1994-07-06 1994-07-06 Cache controller index address generator
US08/271105 1994-07-06

Publications (1)

Publication Number Publication Date
JPH08171513A true JPH08171513A (ja) 1996-07-02

Family

ID=23034213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7169529A Ceased JPH08171513A (ja) 1994-07-06 1995-07-05 キャッシュメモリの変更されたインデックスラインを識別し、その変更されたインデックスラインを外部メモリに書込むための装置

Country Status (3)

Country Link
US (1) US5555379A (ja)
EP (1) EP0691614A1 (ja)
JP (1) JPH08171513A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860105A (en) * 1995-11-13 1999-01-12 National Semiconductor Corporation NDIRTY cache line lookahead
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
JP4303803B2 (ja) * 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
US7062761B2 (en) 2001-07-10 2006-06-13 Micron Technology, Inc. Dynamic arrays and overlays with bounds policies
US7127559B2 (en) * 2001-07-10 2006-10-24 Micron Technology, Inc. Caching of dynamic arrays
AU2002366867A1 (en) * 2001-12-21 2003-07-09 Micronas Gmbh Method and device for the exchange of data
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
US8108621B2 (en) * 2009-05-27 2012-01-31 Via Technologies, Inc. Data cache with modified bit array
US8108624B2 (en) * 2009-05-27 2012-01-31 Via Technologies, Inc. Data cache with modified bit array
US8412824B1 (en) * 2009-08-27 2013-04-02 Symantec Corporation Systems and methods for dynamically managing the migration of a single instance of data between storage devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
DE3068498D1 (en) * 1979-05-09 1984-08-16 Int Computers Ltd Hierarchical data storage system
US4394732A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem trickle
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
EP0190575A1 (de) * 1985-01-25 1986-08-13 Siemens Aktiengesellschaft Verfahren und Anordnung zur Verringerung des Einflusses von Speicherfehlern auf in Cache-Speichern von Datenverarbeitungsanlagen gespeicherten Daten
US4953079A (en) * 1988-03-24 1990-08-28 Gould Inc. Cache memory address modifier for dynamic alteration of cache block fetch sequence
US5140690A (en) * 1988-06-14 1992-08-18 Mitsubishi Denki Kabushiki Kaisha Least-recently-used circuit
US5224217A (en) * 1988-12-30 1993-06-29 Saied Zangenehpour Computer system which uses a least-recently-used algorithm for manipulating data tags when performing cache replacement
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache

Also Published As

Publication number Publication date
US5555379A (en) 1996-09-10
EP0691614A1 (en) 1996-01-10

Similar Documents

Publication Publication Date Title
US6990557B2 (en) Method and apparatus for multithreaded cache with cache eviction based on thread identifier
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US6912623B2 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US6542965B2 (en) Cache line replacement using cable status to bias way selection
US6282617B1 (en) Multiple variable cache replacement policy
US5778434A (en) System and method for processing multiple requests and out of order returns
US6339813B1 (en) Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
JP2839060B2 (ja) データ処理システムおよびデータ処理方法
US6134633A (en) Prefetch management in cache memory
JPS604494B2 (ja) キヤツシユ記憶システム
EP0139407B1 (en) Data select match
US5548739A (en) Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations
KR20000069836A (ko) 로킹을 사용한 캐시 대체방법
JPH07295886A (ja) 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法
JPH08171513A (ja) キャッシュメモリの変更されたインデックスラインを識別し、その変更されたインデックスラインを外部メモリに書込むための装置
US7246202B2 (en) Cache controller, cache control method, and computer system
JP2006018841A (ja) さまざまなメモリラインサイズに適応的に対応可能なキャッシュメモリシステムおよび方法
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
US5581730A (en) Condition detector and prioritizer with associativity determination logic
US7469332B2 (en) Systems and methods for adaptively mapping an instruction cache
KR20070049677A (ko) 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법
US10268581B2 (en) Cache hierarchy management
GB2037466A (en) Computer with cache memory
EP0400851A2 (en) Efficient cache utilizing a store buffer
JPH05120139A (ja) キヤツシユメモリ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040820

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041019

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20050222