JPH07210464A - キャッシュ記憶装置および方法 - Google Patents

キャッシュ記憶装置および方法

Info

Publication number
JPH07210464A
JPH07210464A JP6233632A JP23363294A JPH07210464A JP H07210464 A JPH07210464 A JP H07210464A JP 6233632 A JP6233632 A JP 6233632A JP 23363294 A JP23363294 A JP 23363294A JP H07210464 A JPH07210464 A JP H07210464A
Authority
JP
Japan
Prior art keywords
cache
invalid
clock cycle
memory
store
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
JP6233632A
Other languages
English (en)
Other versions
JP3971807B2 (ja
Inventor
David V Jaggar
ビビアン ジャガー デビッド
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.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of JPH07210464A publication Critical patent/JPH07210464A/ja
Application granted granted Critical
Publication of JP3971807B2 publication Critical patent/JP3971807B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 キャッシュ記憶を利用し、システムパフォー
マンスの低下を招くことなく、高速キャッシュアクセス
を可能にするデータ処理装置および方法を提供する。 【構成】 中央処理装置(CPU)4、メモリ管理ユニ
ット(MMU)6、およびキャッシュメモリ8を有する
データ処理システムが記載される。CPU4は、データ
がCPU4から出力されるのと同じクロックサイクルに
おいて、キャッシュへの書き込みを行う。キャッシュメ
モリ8は、各々無効ラインフラグを備えた複数のキャッ
シュ記憶ラインを有し、前記処理クロック周期中に出力
データワードを記憶することにより、単一サイクル記憶
動作を実現する。次のクロックサイクルにおいて、MM
U6は、その記憶動作が無効であったか否かを示す信号
ICを生成する。この信号によって当該記憶動作が無効
であったことが示された場合、無効記憶動作が行われた
キャッシュ記憶ラインに関連する無効ラインフラグをセ
ットして、その無効記憶を指示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理装置および
方法に関し、更に特定すれば、本発明は、キャッシュ記
憶を利用した、データ処理装置および方法に関するもの
である。
【0002】
【従来の技術】高速キャッシュ記憶部を有するデータ処
理システムを備え、システム全体の性能を向上させるこ
とは公知である。キャッシュ記憶部は、アクセス速度の
ために記憶容量を利用し、比較的小さな容量で高速デー
タリードおよびライト能力をもたらすものである。キャ
ッシュ記憶部の容量が比較的小さいと、システムがリー
ドまたはライトを行おうとする、特定のデータワードが
キャッシュ内に存在しないという事態が時として生じ
る。このため、他の記憶システムへのアクセス速度は、
低下せざるを得ない。
【0003】キャッシュ記憶部へのライトおよびリード
動作の制御は、通常キャッシュタグユニットによって行
われ、現在キャッシュ記憶部に記憶されているデータワ
ードのデータアドレスを、このキャッシュタグユニット
に記憶する。アクセスされるデータのアドレスを、キャ
ッシュタグユニット内に記憶されているアドレスと比較
し、一致(「ヒット」)が生じれば、主キャッシュ記憶
部へのアクセスが可能となる。
【0004】データ処理システムの全体としてのパフォ
ーマンスを判定する際、キャッシュアクセス動作を行う
のに要する時間が、非常に重要となる場合が多いことは
認められよう。多くの場合、システムパフォーマンスを
制限する要因の1つは、キャッシュアクセス時間であ
る。
【0005】このようなシステム内で、複雑化をもたら
す要因の1つは、マルチタスクおよびオブジェクト指向
型プログラム方法の使用が増加したことである。これら
の方法では、特定のデータを変更する能力を、特定のプ
ロセッシングスレッドまたはオブジェクトに限定するこ
とが、データの保全性のために重要となっている。この
ような状況では、無効記憶動作、例えば、特定のプロセ
ッシングスレッドまたはオブジェクトがライトアクセス
をすべきでないデータワードに関連する記憶動作を処理
することができる、ライト記憶動作制御機構を設けるこ
とが重要である。
【0006】アドバンスト・リスク・マシン・リミテッ
ド(Advanced RISC Machines Limited)社製造のARM6
00のようなデータ処理システムにおいては、集積回路
の一部として、ハードウエアメモリ管理ユニット(MM
U)を設けることが知られている。このMMU(または
メモリ管理手段)は、システム内の記憶部の異なる部分
に許可されたアクセスを制御するものである。MMU
は、中央処理装置(CPU)やキャッシュとは異なり、
キャッシュタグユニットの機能のように、キャッシュヒ
ットが生じたか否かを判定するのではなく、アクセス許
可を制御する機能を果たす。このようなハードウエアに
基づく手法は、十分に高速な動作を有し、キャッシュ記
憶部への高速クリティカルパスにおける、標準DRAM
またはハードディスク駆動装置のような記憶媒体への記
憶動作のパフォーマンスには影響を与えないが、特定の
記憶動作が無効であるか否かを示す信号をMMUが返送
するのに要する時間が、システムパフォーマンスを制約
する要因となる。
【0007】更に具体的に述べると、中央処理装置(C
PU)とキャッシュメモリとを設け、CPUが発生する
出力データワードを、CPUがそれを生成したのと同じ
クロック期間内に、キャッシュメモリに記憶させるよう
にすること、即ち単一サイクル記憶動作は可能である。
しかしながら、特定の記憶動作が無効であるか否かを示
すMMUの機構は、単一サイクル内の十分早い時期にそ
の結果を返送し、必要であればライト動作を中止できる
ようにすることはできない。したがって、各キャッシュ
記憶動作に2サイクルを使用しなければならない、即
ち、アクセスが有効であることがわかるまで、ライトサ
イクルが開始されないのである。各キャッシュ記憶動作
に2クロックサイクルかけるようにすることは、簡素か
つ信頼性の高い解決法の1つであるが、この手法はシス
テムパフォーマンスに重大な影響を及ぼす。
【0008】他の手法は、出力データワードを記憶しよ
うとするアドレスの発行を、その記憶動作が無効である
か否かについてMMUが行うチェックが間に合うよう
に、CPUがクロックサイクル内の十分早い時期に行
い、そのアドレスを発行するのと同一クロックサイクル
中に発生する特定のデータライトを中止できるようにす
るという試みであろう。しかしながら、高速プロセッサ
においては、データアドレスを生成する機構は、既にそ
の最大能力附近で動作しているので、このような手法を
実現可能にする程早くデータアドレスを生成することは
実用的でない。更に、仮にデータアドレスをより早く生
成できたとしても、キャッシュ記憶の問題に対処するた
めにクロック周期を不必要に長いまま保持しておくより
も、クロック周期を短縮し、プロセッサ動作全体におい
てこれを利用しようとする可能性が最も高いであろう。
【0009】更に他の手法は、CPUとキャッシュメモ
リとの間にライトバッファを追加することであろう。こ
のような手法は、CPUがライト要求を発行しその直後
に同一メモリ位置からのリードが要求された場合に、キ
ャッシュメモリではなく、ライトバッファがリード要求
に対して必要とされるデータを保持することになり、更
に、この状況を検出および回避、または補償すること
が、ロジックに要求されることになろう。この場合に必
要とされるロジックは比較的複雑であり、このような複
雑なロジックを、パフォーマンスが最も重要なCPUか
らキャッシュメモリまでの経路に導入することは不都合
であろう。
【0010】更にまた他の手法は、1クロック周期内で
無効な記憶動作を行わせておいて、次の処理クロックサ
イクル中にMMUからその記憶動作が無効であったとい
う結果が分った時に、この無効データをキャッシュから
追い出す動作を開始するものであろう。これを達成する
には、キャッシュ内のデータのワード毎に「ダーティ」
ビットを設けることによって、当該データワードが無効
であったか否かを示せばよいであろう。したがって、あ
る特定の出力データワードに対する記憶動作をキャッシ
ュに対して行い、次にMMUが生成する信号に応答し
て、そのデータワードが無効と承認されたなら、無効と
してマークすることができる。この手法による重大な問
題は、キャッシュ内のデータワード毎に「ダーティ」ビ
ットを設けることによって、キャッシュの物理サイズを
増大させてしまうという不利益を被ることである。
【0011】
【発明が解決しようとする課題】本発明の目的は、上述
の不利益を受けることなく、高速キャッシュアクセスを
可能にすることである。
【0012】一観点から見た場合本発明はデータ処理装
置を提供し、該装置は、(i)処理クロック周期中に、
記憶するための出力データワードを発生する中央処理装
置と、(ii)前記処理クロック周期中に前記出力デー
タワードを記憶することにより、単一サイクル記憶動作
を実行するキャッシュメモリであって、複数のキャッシ
ュ記憶ラインを有し、各キャッシュ記憶ラインは関連す
る無効ラインフラグを有すると共に複数の前記出力デー
タワードを記憶可能である、前記キャッシュメモリと、
(iii)前記中央処理装置および前記キャッシュメモ
リとは異なり、前記処理クロック周期に続く次のクロッ
ク周期において、キャッシュヒットが発生したか否かと
は独立して、前記処理クロック周期中の前記出力データ
ワードの前記キャッシュメモリへの記憶が無効記憶動作
であったか否かを示す、無効記憶信号を発生するメモリ
管理手段と、(iv)前記無効記憶信号に応答して、前
記無効記憶動作が行われたキャッシュ記憶ラインに関連
する無効ラインフラグをセットするフラッグセット手段
と、から成るものである。
【0013】本発明は、無効ラインフラグを設け、各々
キャッシュメモリ内のキャッシュ記憶ラインの複数のデ
ータワードを無効として扱うべきか否かを指示する。こ
のようにして、あるキャッシュ記憶ライン内の1つの出
力ワードが無効記憶動作の対象である場合、このキャッ
シュライン全体を無効としてマークする。表面上、この
ような手法は、絶対的に必要以上のデータワードを無効
としてマークしキャッシュ内で使用不能にするので、こ
れらがアクセスされるべき時には、速度が遅い非キャッ
シュ動作を行わなければならない点で、不都合と思われ
るかもしれない。しかしながら、驚くべきことに、無効
記憶動作が1回起こると、後続の動作ではいずれの場合
でも、当該キャッシュ記憶ライン全体および多くの他の
周囲のキャッシュ記憶ラインを、異なるデータと交換し
なければならない、或いは交換する原因となる可能性が
高いことが、実際に発見された。したがって、1つのデ
ータワードではなく複数のデータワードを無効にして
も、実際のパフォーマンス損失は比較的少なく、1クロ
ック周期を出力データの発生とキャッシュメモリ内への
記憶とに用いることができ、しかもライトバッファをキ
ャッシュに備えなければならない複雑性、即ち各データ
ワードに「ダーティ」ビットを設けるサイズ面の不利を
回避することができる、システムを提供することが可能
となる。
【0014】複数の出力データワードを記憶するための
キャッシュ記憶ラインは、典型的に回路構造内のライン
として配されるが、必ずしもこうしなければならない訳
ではないことは認められよう。キャッシュ記憶ラインと
いう用語は、何等かの方法で共に集合化或いは関連付け
された1組の記憶素子を意味すると考えることができ
る。更に、単一の無効ラインフラグを用いて無効記憶動
作をマークすることの利点として、この無効ラインフラ
グは典型的に既にキャッシュメモリシステムに設けられ
ており、当該システム内の他の記憶素子内から有効デー
タが特定のキャッシュラインに記憶されたことを示すた
めに、ある段階において用いられていることも認められ
よう。したがって、無効ラインフラグは、キャッシュの
初期化とキャッシュ内の無効記憶動作のマーク付けとい
う、2つの目的のために有効に用いることができる。
【0015】無効記憶信号を発生することに加えて、メ
モリ管理手段は、前記中央処理装置によって発生された
前記出力データワードを物理アドレスに記憶するための
仮想アドレスをマッピングする作用を行うこともできる
という別の利点がある。
【0016】無効記憶信号を発生する機能を設けるため
には、前記メモリ管理手段は、出力データワードを有効
に前記キャッシュメモリに記憶することができる物理ア
ドレスを指示する、キャッシュ記憶ルックアップテーブ
ルを含むことが好ましい。
【0017】このようなキャッシュ記憶ルックアップテ
ーブルは、有効なキャッシュ記憶動作が行われる物理ア
ドレス(例えば、表示スクリーンマッピングアドレス)
か否かを示す、便利な方法を提供するものであるが、こ
のルックアップテーブルの動作が、処理クロック周期内
に無効記憶信号を生成可能にするだけの、十分な速度を
有していないという問題を伴うものではない。したがっ
て、このような実施例は、次のクロック周期中に無効記
憶動作を指示する機能が非常に有用となるものである。
【0018】同様に、本発明の好適実施例は、前記中央
処理装置が複数の処理モードで動作可能となるものであ
り、前記メモリ管理手段は、前記中央処理装置がある所
与の処理モードで動作中に、出力データワードが有効に
記憶できる物理アドレスを指示するモードルックアップ
テーブルを含む。
【0019】前記複数の処理モードは、例えば、マルチ
タスクシステムにおける様々なプロセッシングスレッド
の形であっても良い、或いはオブジェクト指向プログラ
ムにおける様々なオブジェクトの実行という形であって
も良い。
【0020】無効記憶処理を生じ得る様々な状況に対処
するためには、ORゲートを設けて、前記キャッシュ記
憶ルックアップテーブルと前記モードルックアップテー
ブルとの出力を論理的に組み合わせ、前記無効記憶信号
を生成することが有利である。
【0021】本発明が動作する高速処理環境において、
無効記憶信号が発生される時点までには既に次の処理動
作に移行しているので、無効記憶処理が行われたキャッ
シュ記憶ラインは、その時にはアドレスバス上にはもは
や存在しないことは、認められよう。
【0022】これに対処するためには、前記フラグセッ
ト手段は、前記次のクロック周期中に用いられ、前記処
理クロックサイクル中に記憶動作が行われた、前記キャ
ッシュ記憶ラインの1本を識別するデータを記憶するア
ドレスレジスタと、前記次のクロック周期中に、無効記
憶動作を示す前記無効記憶信号によってイネーブルさ
れ、前記アドレスレジスタによって識別された前記無効
ラインフラグの1つをセットする手段と、を含む。
【0023】本発明は個別の回路構成物として実施でき
ることは認められようが、本発明を集積回路として実施
することが有利であろう。これは、中央処理装置と同一
集積回路上にキャッシュメモリを設けることにより、こ
れら2構成物間に十分高速なデータ路を形成する際、特
に言えることである。
【0024】別の観点から見た場合本発明はデータ処理
方法を提供し、該方法は、(i)処理クロック周期中
に、記憶するための出力データワードを発生するステッ
プと、(ii)前記処理クロック周期中に前記出力デー
タワードをキャッシュメモリに記憶することにより、単
一サイクル記憶動作を実行し、前記キャッシュメモリは
複数のキャッシュ記憶ラインを有し、各キャッシュ記憶
ラインが関連する無効ラインフラグを有し、複数の前記
出力データワードを記憶可能とするステップと、(ii
i)前記処理クロック周期に続く次のクロック周期にお
いて、キャッシュヒットが発生したか否かとは独立し
て、前記処理クロック周期中の前記出力データワードの
前記キャッシュメモリへの記憶が無効記憶動作であった
か否かを示す、無効記憶信号を発生するステップと、
(iv)前記無効記憶信号に応答して、前記無効記憶動
作が行われたキャッシュ記憶ラインに関連する無効ライ
ンフラグをセットするステップと、から成るものであ
る。
【0025】本発明の上述のおよびその他の目的、特徴
および利点は、以下の例示実施例の詳細な説明を、添付
図面に関連付けて読むことにより明白となろう。
【0026】
【実施例】図1は、CPU4、MMU6、キャッシュメ
モリ8および出力バッファ10を有する集積回路2を示
す。複数の内部バスが、集積回路2の要素を連結する。
MMU6はCPU4やキャッシュメモリ8とは異なる機
能回路要素であるが、それでも集積回路2の一部として
製造されることは認められよう。
【0027】内部データバスは以下の信号を搬送する。
【0028】Data−キャッシュメモリ8またはバッ
ファ10を通じて集積回路2の外部に記憶するためにC
PU4から出力される32ビット出力(Dout)、或
いはキャッシュメモリ8またはバッファ10を通じて集
積回路2の外部から復元してCPU4に入力される32
ビット入力(Din)データワード。
【0029】VAdd−CPU4によって処理されるデ
ータワードの仮想データアドレス。
【0030】PAdd−MMU6によって仮想データア
ドレスがマッピングされる物理データアドレス。
【0031】P−CPU4がライトアクセスを行おうと
しているデータアドレスが、動作中のCPU4の処理モ
ードで使用可能であるかを示す、(次のクロックサイク
ルに)MMU6によって生成されCPU4に供給される
信号。
【0032】B−バッファ10に送られた出力データワ
ードが、実際にバッファリング可能であるか否かを示
す、(次のクロックサイクルにおいて)MMU6によっ
て生成され、バッファ10に供給される信号。
【0033】IB−無効バッファ記憶動作が生じたので
バッファ10はそのデータを追い出さなければならない
ことを示す、(次のクロックサイクルにおいて)MMU
6によって生成されバッファ10に供給される信号。
【0034】C−キャッシュメモリ8に記憶されている
データワードが適切に記憶されたのか否かを示す、(次
のクロックサイクルにおいて)MMU6によって生成さ
れCPU4に供給される信号。
【0035】IC−無効キャッシュ記憶動作が生じたの
でキャッシュメモリ8はそのデータを追い出さなければ
ならないことを示す、(次のクロックサイクルにおい
て)MMU6によって生成されキャッシュメモリ8に供
給される信号。
【0036】動作中、CPU4は、出力データワードD
outとそのデータワードを記憶すべき仮想アドレスV
Addとを生成する。次に、MMU6は仮想アドレスV
Addを物理アドレスPAddに変換し、この物理アド
レスPAdd上でルックアップ動作を行い、そのアドレ
スがバッファリング可能で、キャッシュ可能であるか、
そしてCPU4が与えられた処理モードでそれにアクセ
スすべきか否かを判断する。物理アドレスPAddは、
出力データワードDoutおよび仮想アドレスPAdd
が生成されるのと同一クロックサイクルにおいて生成さ
れる。その記憶処理に関するMMU6からの他の信号
は、次のクロックサイクルにおいて生成される。
【0037】キャッシュメモリ8(命令およびデータキ
ャッシュ−IDCache)は、物理アドレスPAdd
および出力データワードDoutを、それらがCPU4
によって発生されたのと同一クロックサイクルで受け取
り、当該物理アドレスPAddに対するキャッシュヒッ
トが検出されたなら、出力データワードをキャッシュ内
に記憶する。
【0038】MMU6が、当該キャッシュ記憶動作を無
効記憶動作と判断した場合、これを示す信号ICを生成
し、次のクロックサイクルにおいてこれをキャッシュメ
モリ8に供給する。信号ICは、無効記憶信号である。
また、MMU6は、このような無効記憶動作の発生時
に、物理アドレスPAddを再度キャッシュメモリ8に
供給する。
【0039】キャッシュメモリ8は、物理アドレスPA
ddによって示される1本または複数本のキャッシュラ
イン(後に説明する)をアクセスし、それらのキャッシ
ュラインに無効記憶フラグをセットすることによって、
信号ICに応答する。
【0040】場合によっては、MMU6によって生成され
た物理アドレスPAddが、出力データDoutをバッ
ファ10にバッファすべきであることを示すことがあ
る。メモリ管理ユニット6が、次のクロックサイクル中
に、このバッファリング動作が無効であったことを検出
した場合、続いてその無効バッファ記憶信号IBが確定
され、バッファデータがバッファ10から追い出され
る。
【0041】図2は、キャッシュメモリ8をより詳細に
描いた概略図である。キャッシュメモリ8は、キャッシ
ュヒットを検出する機能を果たす、4つのキャッシュタ
グユニット14を含む。物理アドレスPAddの第5な
いし第10ビットA[10:5]を用いて、各キャッシ
ュタグユニット14中のタグライン15を選択する。こ
のタグライン15の内容を、物理アドレスPAddの第
11ないし第31ビットA[31:11]と比較し、ヒ
ットキャッシュを示すアドレスの一致が生じたか否かを
判定する。
【0042】キャッシュヒットが生じていれば、これ
を、「ヒット」ラインを通じて、4つのキャッシュラン
ダムアクセスメモリ(RAM)16の対応するバンクに
知らせる。キャッシュRAM16の適切な1つを作動さ
せて、物理アドレスPAddの第5ないし第10ビット
A[5:10]を再び用いて、そのキャッシュRAM内
の64本のキャッシュライン17の内1本をアドレスし
選択する。キャッシュライン17全体の内容はマルチプ
レクサ18に並列に接続されており、これを用いて、物
理アドレスPAddの第2ないし第4ビットA[4:
2]にしたがって、キャッシュライン17に記憶されて
いる8個のデータワードの内適切なデータワードを選択
し、ライト動作を行う。
【0043】各出力データワードは、4バイトのデータ
を含む32ビットのデータワードD[31:0]であ
る。アドレスすべき特定のバイトは、第0および第1ビ
ットA[0:1]によって示される。
【0044】キャッシュメモリ8は、キャッシュヒット
を検出するためのキャッシュタグユニット14内のアド
レスルックアップと、マルチプレクサ18を通じた適切
なキャッシュライン17の選択およびキャッシュRAM
16内への書き込みが、単一クロック周期内に生じるよ
うに、設計されている。
【0045】キャッシュメモリ8からのデータの読み取
り、およびキャッシュメモリ8へのデータの書き込み
は、対称的な動作である。キャッシュタグユニット14
によって同じようにキャッシュヒットが検出され、異な
るのはマルチプレクサ18を介したキャッシュRAMへ
の或いはキャッシュRAMからのデータフローの方向の
みである。
【0046】無効記憶動作が発生した状況では、これは
次のクロック周期までに検出され、無効記憶信号ICが
MMU6によって確定される。無効記憶動作が生じた物
理アドレスPAddは、キャッシュメモリ8に再度供給
される。したがって、同一キャッシュタグライン15が
物理アドレスPAddの第5ないし第10ビットA[1
0:5]によって選択されると共に、これらに対する無
効ラインフラグが無効記憶信号ICによってセットされ
る。この追い出し処理の動作を高速化するために、4つ
のキャッシュタグユニット14のキャッシュタグライン
15の内、第5ないし第10ビットA[5:10]と一
致するもの全ての無効記憶フラグがセットされる。第1
1ないし第31ビットA[11:31]がデコードされ
るまで待つことによって、適切なキャッシュタグライン
15の1つの無効記憶フラグのみをセットすることも可
能であるが、こうするには1クロックサイクル余分に必
要となる。実際上、4つのキャッシュタグラインを一度
に全て無効化することに不都合はほとんどない。
【0047】図3は、無効記憶信号ICの発生を担うM
MU6の一部を示す。出力データワードがキャッシュメ
モリ8に記憶するのに適切であるか、或いはその特定の
処理モードによって記憶するのに適切であるか、をそれ
ぞれ示す信号CおよびPが、ORゲート20によってO
Rされる。ゲート20の出力はラッチ22によってラッ
チされると共に、フォールトアドレスレジスタ(FA
R)24に供給される。FAR24は、ゲート20の出
力をライトイネーブル信号として扱い、無効記憶動作が
発生したとして示された出力データワードの物理アドレ
スを記憶する。次のクロックサイクルにおいて、ラッチ
22内にラッチされた信号は、無効記憶信号ICとして
作用すると共に、FAR24へのリードイネーブル信号
として作用し、先の物理アドレスPAddを再度キャッ
シュメモリ8に供給し、前述のように追い出しを行う。
【0048】以上添付図面を参照しながら本発明の例示
的実施例を詳細に説明したが、本発明はこれらの実施例
そのものに限定される訳ではなく、添付の特許請求の範
囲に規定された本発明の範囲および精神から逸脱するこ
となく、種々の変更および改造が当業者によって行われ
得ることは理解されよう。
【図面の簡単な説明】
【図1】集積回路のレイアウトおよび相互接続を概略的
に示す図。
【図2】図1の回路のキャッシュメモリを概略的に示す
図。
【図3】図1の回路のメモリ管理ユニットの一部を概略
的に示す図。
【符号の説明】
2 集積回路 4 CPU 6 MMU 8 キャッシュメモリ 10 出力バッファ 14 キャッシュタグユニット 15 タグライン 16 キャッシュランダムアクセスメモリ 17 キャッシュライン 20 ゲート 22 ラッチ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データ処理装置であって、 (i)処理クロック周期中に、記憶するための出力デー
    タワードを発生する中央処理装置と、 (ii)前記処理クロック周期中に前記出力データワー
    ドを記憶することにより、単一サイクル記憶動作を実行
    するキャッシュメモリであって、複数のキャッシュ記憶
    ラインを有し、各キャッシュ記憶ラインは関連する無効
    ラインフラグを有すると共に複数の前記出力データワー
    ドを記憶可能である、前記キャッシュメモリと、 (iii)前記中央処理装置および前記キャッシュメモ
    リとは異なり、前記処理クロック周期に続く次のクロッ
    ク周期において、キャッシュヒットが発生したか否かに
    拘らず、前記処理クロック周期中の前記出力データワー
    ドの前記キャッシュメモリへの記憶が無効記憶動作であ
    ったか否かを示す、無効記憶信号を発生するメモリ管理
    手段と、 (iv)前記無効記憶信号に応答して、前記無効記憶動
    作が行われたキャッシュ記憶ラインに関連する無効ライ
    ンフラグをセットするフラッグセット手段と、から成る
    ことを特徴とする前記装置。
  2. 【請求項2】請求項1において、前記メモリ管理手段
    は、前記中央処理装置によって発生された仮想アドレス
    のマッピングを行い、前記出力データワードを物理アド
    レスに記憶することを特徴とする装置。
  3. 【請求項3】請求項1において、前記メモリ管理手段
    は、出力データワードを前記キャッシュメモリに有効に
    記憶することができる物理アドレスを指示する、キャッ
    シュ記憶ルックアップテーブルを含むことを特徴とする
    装置。
  4. 【請求項4】請求項1において、 前記中央処理装置は、複数の処理モードで動作可能であ
    り、 前記メモリ管理手段は、前記中央処理装置が所与の処理
    モードで動作している時に、出力データワードを有効に
    記憶することができる物理アドレスを指示する、モード
    ルックアップテーブルを含むことを特徴とする装置。
  5. 【請求項5】請求項4において、前記メモリ管理手段
    は、前記キャッシュメモリ内に出力データワードを有効
    に記憶することができる物理アドレスを示すキャッシュ
    記憶ルックアップテーブルを含み、前記キャッシュ記憶
    ルックアップテーブルと前記モードルックアップテーブ
    ルとを論理的に結合して、前記無効記憶信号を生成する
    ORゲートを含むことを特徴とする装置。
  6. 【請求項6】請求項1において、前記フラグセット手段
    は、 前記次のクロック周期中に用いられ、前記処理クロック
    サイクル中に記憶動作が行われた、前記キャッシュ記憶
    ラインの1本を識別するデータを記憶するアドレスレジ
    スタと、 前記次のクロック周期中に、無効記憶動作を示す前記無
    効記憶信号によってイネーブルされ、前記アドレスレジ
    スタによって識別された前記無効ラインフラグの1つを
    セットする手段と、から成ることを特徴とする装置。
  7. 【請求項7】請求項1において、集積回路から成ること
    を特徴とする装置。
  8. 【請求項8】データ処理方法であって、 (i)処理クロック周期中に、記憶するための出力デー
    タワードを発生するステップと、 (ii)前記処理クロック周期中に前記出力データワー
    ドをキャッシュメモリに記憶することにより、単一サイ
    クル記憶動作を実行し、前記キャッシュメモリは複数の
    キャッシュ記憶ラインを有し、各キャッシュ記憶ライン
    が関連する無効ラインフラグを有し、複数の前記出力デ
    ータワードを記憶可能とするステップと、 (iii)前記処理クロック周期に続く次のクロック周
    期において、キャッシュヒットが発生したか否かとは独
    立して、前記処理クロック周期中の前記出力データワー
    ドの前記キャッシュメモリへの記憶が無効記憶動作であ
    ったか否かを示す、無効記憶信号を発生するステップ
    と、 (iv)前記無効記憶信号に応答して、前記無効記憶動
    作が行われたキャッシュ記憶ラインに関連する無効ライ
    ンフラグをセットするステップと、から成ることを特徴
    とする前記方法。
JP23363294A 1993-09-29 1994-09-28 キャッシュ記憶装置および方法 Expired - Lifetime JP3971807B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB93201432 1993-09-29
GB9320143A GB2282471B (en) 1993-09-29 1993-09-29 Cache storage

Publications (2)

Publication Number Publication Date
JPH07210464A true JPH07210464A (ja) 1995-08-11
JP3971807B2 JP3971807B2 (ja) 2007-09-05

Family

ID=10742747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23363294A Expired - Lifetime JP3971807B2 (ja) 1993-09-29 1994-09-28 キャッシュ記憶装置および方法

Country Status (3)

Country Link
US (1) US5749094A (ja)
JP (1) JP3971807B2 (ja)
GB (1) GB2282471B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170030B1 (en) * 1998-01-23 2001-01-02 Intel Corporation Method and apparatus for restreaming data that has been queued in a bus bridging device
US6412057B1 (en) * 1999-02-08 2002-06-25 Kabushiki Kaisha Toshiba Microprocessor with virtual-to-physical address translation using flags
US6389527B1 (en) * 1999-02-08 2002-05-14 Kabushiki Kaisha Toshiba Microprocessor allowing simultaneous instruction execution and DMA transfer
US6928521B1 (en) 2000-08-01 2005-08-09 International Business Machines Corporation Method, system, and data structures for using metadata in updating data in a storage device
US8438003B2 (en) * 2007-04-12 2013-05-07 Cadence Design Systems, Inc. Methods for improved simulation of integrated circuit designs

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
US5325499A (en) * 1990-09-28 1994-06-28 Tandon Corporation Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US5408636A (en) * 1991-06-24 1995-04-18 Compaq Computer Corp. System for flushing first and second caches upon detection of a write operation to write protected areas

Also Published As

Publication number Publication date
GB9320143D0 (en) 1993-12-22
GB2282471A (en) 1995-04-05
JP3971807B2 (ja) 2007-09-05
US5749094A (en) 1998-05-05
GB2282471B (en) 1997-11-05

Similar Documents

Publication Publication Date Title
US5778433A (en) Computer system including a first level write-back cache and a second level cache
US6366984B1 (en) Write combining buffer that supports snoop request
JP3352598B2 (ja) マイクロプロセッサ
US6138208A (en) Multiple level cache memory with overlapped L1 and L2 memory access
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US7415575B1 (en) Shared cache with client-specific replacement policy
JP3289661B2 (ja) キャッシュメモリシステム
US6412057B1 (en) Microprocessor with virtual-to-physical address translation using flags
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
EP0817066A2 (en) Integrated processor/memory device with full width cache
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2006517040A (ja) キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ
KR20010101694A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
JPH0342745A (ja) 複数キャッシュ・メモリ・アクセス方法
US6205520B1 (en) Method and apparatus for implementing non-temporal stores
JP3245125B2 (ja) 垂直キャッシュのための擬似精細i−キャッシュ包含性
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US6321302B1 (en) Stream read buffer for efficient interface with block oriented devices
US6434665B1 (en) Cache memory store buffer
US5835934A (en) Method and apparatus of low power cache operation with a tag hit enablement
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
EP0470739B1 (en) Method for managing a cache memory system
US6347363B1 (en) Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches
US5926841A (en) Segment descriptor cache for a processor
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040625

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050302

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050307

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050708

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070611

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term