JPH02224042A - キャッシュデータアクセス方法及び装置 - Google Patents
キャッシュデータアクセス方法及び装置Info
- Publication number
- JPH02224042A JPH02224042A JP1281586A JP28158689A JPH02224042A JP H02224042 A JPH02224042 A JP H02224042A JP 1281586 A JP1281586 A JP 1281586A JP 28158689 A JP28158689 A JP 28158689A JP H02224042 A JPH02224042 A JP H02224042A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- tag
- data
- processor
- cycle
- 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 OR CALCULATING; 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
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)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明はデータ・キャッシング方法及びデータ・キャッ
シング装置と部面するディジタル・コンピュータ・シス
テムに関する。
シング装置と部面するディジタル・コンピュータ・シス
テムに関する。
[発明の背景]
理想的な条件下では、プロセッサの処理速度が増大する
と、単位時間当たりにアクセスするメモリ容iも増大す
るはずである。処理装置は、1次記記憶装置どしてしば
しば用いられているダイナミック・ランダム・アクセス
・メモリ(DRAM)の動作速度よりも速い速度で処理
できることがしばしばある。システム能力が頭打ちにな
ったときは、[キャッシュ(Cache)、+と呼ばれ
ている付加的レベルのメモリ階層が利用され、キャッシ
ュの性能は関連するフ゛ロセッサの能力に適合したもの
である。
と、単位時間当たりにアクセスするメモリ容iも増大す
るはずである。処理装置は、1次記記憶装置どしてしば
しば用いられているダイナミック・ランダム・アクセス
・メモリ(DRAM)の動作速度よりも速い速度で処理
できることがしばしばある。システム能力が頭打ちにな
ったときは、[キャッシュ(Cache)、+と呼ばれ
ている付加的レベルのメモリ階層が利用され、キャッシ
ュの性能は関連するフ゛ロセッサの能力に適合したもの
である。
キャッシュは、(1次記記憶装置のサイズと比較したと
きには)小さく、プロセッサの処理能力を阻害しない速
度でデータを供給できる高速アクセスメモリである。キ
ャッシュの能力は、プログラムが別のデータ区画に参照
場所を移動する前に、特定の同じデータ区画を何度も参
照する傾向があること(時間的局在性)、及び連続する
参照は従前の参照と互いに近いという傾向があること(
空間的局在性)に基づいている。キャッシュの設計者達
は、このことを利用するために、近い過去(即ち、前回
のデータ参照パターン)を知って、近い将来を予測し、
後続の使用のために最近実行された参照に関連するデー
タを収集する。
きには)小さく、プロセッサの処理能力を阻害しない速
度でデータを供給できる高速アクセスメモリである。キ
ャッシュの能力は、プログラムが別のデータ区画に参照
場所を移動する前に、特定の同じデータ区画を何度も参
照する傾向があること(時間的局在性)、及び連続する
参照は従前の参照と互いに近いという傾向があること(
空間的局在性)に基づいている。キャッシュの設計者達
は、このことを利用するために、近い過去(即ち、前回
のデータ参照パターン)を知って、近い将来を予測し、
後続の使用のために最近実行された参照に関連するデー
タを収集する。
データ・キャッシュを利用する処理システムにおいては
、実行された全ての参照は妥当性の検証が行なわれなけ
ればならない。全゛Cの?fヤッシュ・エン■・りは、
メイン・メモリ内のどのデータが現在それによって表さ
れているかを示す「タグ」及びキャッシュ・エントり自
体の有効性を示す「有効」ピッ1−に関連付(゛)られ
る、「キャッシュ・ビy )・Jは望みのデータかキャ
ッシュ内に存在j2ていたときに起き、「キャッシュ・
ミス」はそれがなかったときに起きる。プロセッサとキ
ャッシュとの間のデータの実際の転送はAヤッシュ・タ
グ・ルックアップに結果によりしばしば条件付けられる
。その結果、キャッシュ・アクセスの有効回数が増加1
−2それに比例しでプロセッサのサイクル回数を増加さ
せ、或いは、システム能力低下させる。
、実行された全ての参照は妥当性の検証が行なわれなけ
ればならない。全゛Cの?fヤッシュ・エン■・りは、
メイン・メモリ内のどのデータが現在それによって表さ
れているかを示す「タグ」及びキャッシュ・エントり自
体の有効性を示す「有効」ピッ1−に関連付(゛)られ
る、「キャッシュ・ビy )・Jは望みのデータかキャ
ッシュ内に存在j2ていたときに起き、「キャッシュ・
ミス」はそれがなかったときに起きる。プロセッサとキ
ャッシュとの間のデータの実際の転送はAヤッシュ・タ
グ・ルックアップに結果によりしばしば条件付けられる
。その結果、キャッシュ・アクセスの有効回数が増加1
−2それに比例しでプロセッサのサイクル回数を増加さ
せ、或いは、システム能力低下させる。
キャッシュ・ストア待ち時間を最少化させることは特に
効果的である。というのは、キャッシュがデータのソー
スになってからキャッシュ・アクセスが検証されるまで
プロセッサはしばしば立往生しなければならないからで
ある。更に、全′このキャッシュ・データ修正は、キャ
ッシュの一致性を維持するなめにキヤ・yシュ・タグの
ステー1・が反映されなければならない。
効果的である。というのは、キャッシュがデータのソー
スになってからキャッシュ・アクセスが検証されるまで
プロセッサはしばしば立往生しなければならないからで
ある。更に、全′このキャッシュ・データ修正は、キャ
ッシュの一致性を維持するなめにキヤ・yシュ・タグの
ステー1・が反映されなければならない。
キャッシュ・ストアの共通的な方針は、キャッシュ・タ
グ・ルックアップの結果を利用して、キャッシュ・アッ
プデートの条件付けを行なうことである。キャッシュ。
グ・ルックアップの結果を利用して、キャッシュ・アッ
プデートの条件付けを行なうことである。キャッシュ。
・ヒツトのときは、キャッシュ修正が続行する。キャッ
シュ・ミスのときは42つの対策の1つが取られる。そ
り、は、キャッシュ・ライト・バイパスかキャッシュ・
ライトの割り振りである。キャッシュ・ライト・バイパ
スは一般的な解決て゛はない。というのは、くれは仮想
キャッシュ構造に有用ではないからであるが、・、ヤッ
シュ修正が行なわれなくなって以来のシンラ゛ル・サイ
クル・ヘヤッシュ・アクセスを達成すに6、一方、簡単
なキャッシュ・ライトの割り振りは2つのキャッシュ・
サイクルで行なう、キャッシュ・タグ・リードとキャッ
シュ・データ/タグのライトである。キャッシュ・タグ
・ルックアップからキャッシュ・データ修正の連続性は
2つの要因により、キャッシュ・ストアの有効アクセス
回数を増加させる。即ち、1つのキャッシュ・タグ・リ
ード及び1つのキャッシュ・データ及び追加のタグ・ラ
イ1−・サイクルである。プロセッサはデータのソース
であるので、キャッシュ・タグ・チエツクが完了するま
でプロセッサはしばしば立往生する。
シュ・ミスのときは42つの対策の1つが取られる。そ
り、は、キャッシュ・ライト・バイパスかキャッシュ・
ライトの割り振りである。キャッシュ・ライト・バイパ
スは一般的な解決て゛はない。というのは、くれは仮想
キャッシュ構造に有用ではないからであるが、・、ヤッ
シュ修正が行なわれなくなって以来のシンラ゛ル・サイ
クル・ヘヤッシュ・アクセスを達成すに6、一方、簡単
なキャッシュ・ライトの割り振りは2つのキャッシュ・
サイクルで行なう、キャッシュ・タグ・リードとキャッ
シュ・データ/タグのライトである。キャッシュ・タグ
・ルックアップからキャッシュ・データ修正の連続性は
2つの要因により、キャッシュ・ストアの有効アクセス
回数を増加させる。即ち、1つのキャッシュ・タグ・リ
ード及び1つのキャッシュ・データ及び追加のタグ・ラ
イ1−・サイクルである。プロセッサはデータのソース
であるので、キャッシュ・タグ・チエツクが完了するま
でプロセッサはしばしば立往生する。
この連続性のべたルティを回避するもう1つの方策は、
キャッシュ・タグを完全に無視することである。この方
策では、全てのキャッシュ・ス1−ア操作はキャッシュ
をバイパスする。キャッシュの一致性を維持するため、
修正されたキャッシュ・エントリは関係なく無効にされ
る。プロセッサは1つのプロセッサ(データ)・ライト
・サイクルのためのデータを必要とするだけである。こ
の方策はストア・キャッシュ・アクセス回数を減らすが
、このような無効にする方法はキャッシュから有効なデ
ータを追い払うことになるかもしれないので、かなりの
損失を伴う。
キャッシュ・タグを完全に無視することである。この方
策では、全てのキャッシュ・ス1−ア操作はキャッシュ
をバイパスする。キャッシュの一致性を維持するため、
修正されたキャッシュ・エントリは関係なく無効にされ
る。プロセッサは1つのプロセッサ(データ)・ライト
・サイクルのためのデータを必要とするだけである。こ
の方策はストア・キャッシュ・アクセス回数を減らすが
、このような無効にする方法はキャッシュから有効なデ
ータを追い払うことになるかもしれないので、かなりの
損失を伴う。
[発明の概要]
本発明による参照キャッシュ・タグ修正は、簡単で効率
的で低オーバーヘッドなキャッシュ・ライト方法であり
、2ステージ・ラップされたキャッシュ分割サイクル・
アクセス・バイグラインであり、第1ステージ即ちアク
セス(ACC)ステージでデータ・ストアをアップデー
1− L、キャッシュ・タグ・チエツクのステートが判
るまでタグ・ストアは延期される。10セサがバイトラ
イトを出せるから、キャッシュ幅のバイト当たりの[有
効な」ビットを使える。ライト・ヒツトが検出されたと
きは、タグ修正は不要であり、プロセッサは再びシング
ル・サイクル・キャッシュ・アクセスの[幻想」を有す
る。タグが一致し、しかし適切な有効ビットがセットさ
れないときは、キヘ・ツシュ・マネイジメント・ファン
クションはミスしたライトの第2スデージ即ち実行ステ
ージに続くサイクルでキャッシュ・タグ・アップデート
を「計画」する。
的で低オーバーヘッドなキャッシュ・ライト方法であり
、2ステージ・ラップされたキャッシュ分割サイクル・
アクセス・バイグラインであり、第1ステージ即ちアク
セス(ACC)ステージでデータ・ストアをアップデー
1− L、キャッシュ・タグ・チエツクのステートが判
るまでタグ・ストアは延期される。10セサがバイトラ
イトを出せるから、キャッシュ幅のバイト当たりの[有
効な」ビットを使える。ライト・ヒツトが検出されたと
きは、タグ修正は不要であり、プロセッサは再びシング
ル・サイクル・キャッシュ・アクセスの[幻想」を有す
る。タグが一致し、しかし適切な有効ビットがセットさ
れないときは、キヘ・ツシュ・マネイジメント・ファン
クションはミスしたライトの第2スデージ即ち実行ステ
ージに続くサイクルでキャッシュ・タグ・アップデート
を「計画」する。
キャッシュ・マネイジメンI・・ファンクション (C
MF:Cache ManagementFun
ction)はキャッシュの前回のタグ有効ビット・ス
テートを、このライト操作の結果としてセットされる有
効ビット・に組み合わぜることができる。更に、同じキ
ャッシュ・ラインにアドレス指定されるキャッシュ操作
の直ぐ後にライ1−操作があるときは、とのストアによ
り選択されるバイトはタグ・アップデーI−・ステート
に組みB−わされ、それにより、潜在的なバック・ツウ
−・バック・ライト・ミスを回避できる。タグがミスマ
ツチのときは、前回のタグ/有効ビット・ステー1・・
が無視され、タグ・アップデート・ステートが変更され
、適当なアドレス・タグ情報に関連する実行(EXC)
ステージ内のスj・アにより選択されるバイトになる。
MF:Cache ManagementFun
ction)はキャッシュの前回のタグ有効ビット・ス
テートを、このライト操作の結果としてセットされる有
効ビット・に組み合わぜることができる。更に、同じキ
ャッシュ・ラインにアドレス指定されるキャッシュ操作
の直ぐ後にライ1−操作があるときは、とのストアによ
り選択されるバイトはタグ・アップデーI−・ステート
に組みB−わされ、それにより、潜在的なバック・ツウ
−・バック・ライト・ミスを回避できる。タグがミスマ
ツチのときは、前回のタグ/有効ビット・ステー1・・
が無視され、タグ・アップデート・ステートが変更され
、適当なアドレス・タグ情報に関連する実行(EXC)
ステージ内のスj・アにより選択されるバイトになる。
同じキャッシュ・ラインにアドレス指定された直ぐ後の
ライト操作があるときは、アクセス・ステージで1、こ
のストアにより選択されるバイトはタグ・アップデー1
へ・ステートに組み合わされる。どちらの場合に6、こ
のキャッシュ・ライ1−・アップデートの方針は「ライ
■−割り振り」と呼ばれ、ライト・ミスで空間がキャッ
シュ内に割り振られることを意味する。更に、ライト・
ミスが続いている間、データがキャッシュに捕えられて
以来、プロセッサは立往生する必要がない、キャッシュ
・マネイジメント・ファンクションがキャッシュ・ミス
のサービスのコントロールを回復しなければならないの
で、プロセッサはキャッシュにアクセスするときは、C
MFがキャッシュを使用している間だけ立往生しなけれ
ばならないだけである。
ライト操作があるときは、アクセス・ステージで1、こ
のストアにより選択されるバイトはタグ・アップデー1
へ・ステートに組み合わされる。どちらの場合に6、こ
のキャッシュ・ライ1−・アップデートの方針は「ライ
■−割り振り」と呼ばれ、ライト・ミスで空間がキャッ
シュ内に割り振られることを意味する。更に、ライト・
ミスが続いている間、データがキャッシュに捕えられて
以来、プロセッサは立往生する必要がない、キャッシュ
・マネイジメント・ファンクションがキャッシュ・ミス
のサービスのコントロールを回復しなければならないの
で、プロセッサはキャッシュにアクセスするときは、C
MFがキャッシュを使用している間だけ立往生しなけれ
ばならないだけである。
[実施例〕
第1図のブロック図を参照すると、キャッシュアクセス
の第1サイクルで、ここではアクセス(ACC>ステー
ジと呼ばれるリード操作では、キャッシュ・データ・ス
トア52からプロセッサ54への要求データの転送が行
なわれる。更に、タグはキャッシュ・タグ・ストア56
かへメモリ・°ンネイジメント・ユニット(MMU)6
0内のキャッシュ・マネイジメンl−・ファンクション
へと転送され、そこでキャッシュ・タグ比較される。
の第1サイクルで、ここではアクセス(ACC>ステー
ジと呼ばれるリード操作では、キャッシュ・データ・ス
トア52からプロセッサ54への要求データの転送が行
なわれる。更に、タグはキャッシュ・タグ・ストア56
かへメモリ・°ンネイジメント・ユニット(MMU)6
0内のキャッシュ・マネイジメンl−・ファンクション
へと転送され、そこでキャッシュ・タグ比較される。
キャッシュ・マネイジメント・ファンクション60内の
他のロジックはキャッシュに関連しない例外をチエツク
する。例外に関する詳細はAPOLL−115XXのr
DUPtJLIcATE TAG 5TORE
PURGE QUEIJE(タグ・トスア・パージの
複写)」と題する文献やAPOLL−119XXのrM
BTHOD ANDAPPARATUS FOR
DRAM MEMOR,Y PERFORMA
NCE ENCHANCEMENT (DRAMメ
モリの性能向上のための方法及び装置)」と題する文献
に掲載されている。ACCステージの終わりまでに、デ
ータは10セツ→り54中にクロック転送されるととも
に、キャッシュ・タグ比較が完了する。
他のロジックはキャッシュに関連しない例外をチエツク
する。例外に関する詳細はAPOLL−115XXのr
DUPtJLIcATE TAG 5TORE
PURGE QUEIJE(タグ・トスア・パージの
複写)」と題する文献やAPOLL−119XXのrM
BTHOD ANDAPPARATUS FOR
DRAM MEMOR,Y PERFORMA
NCE ENCHANCEMENT (DRAMメ
モリの性能向上のための方法及び装置)」と題する文献
に掲載されている。ACCステージの終わりまでに、デ
ータは10セツ→り54中にクロック転送されるととも
に、キャッシュ・タグ比較が完了する。
第2図及び第3図に関連して本発明を更に説明する。
本発明の方法及び装置は、通常のキャッシュ、・アクセ
スの進行中に、キャッシュの内容を破壊しないしプ□ロ
セ・yすを待たせむせず、タグ修正の延期を通してシス
テム性能に大きな損失を生じさせずにシングル・サイク
ルでキャッシュ・ストア・アクセスを達成する。シング
ル・サイクル・キャッシュ・アクセスは、タグ・ルック
アップが実行されている間にプロセッサにキャッシュ・
データを修正させることにより、達成される。キャッシ
ュ・ミスが生じたときは、キャッシュ・アクセスのステ
ートが知られる前にキャッシュは修正されたので、キャ
ッシュ・エントリの新しい内容を反映するようにタグは
修正されなければならない。
スの進行中に、キャッシュの内容を破壊しないしプ□ロ
セ・yすを待たせむせず、タグ修正の延期を通してシス
テム性能に大きな損失を生じさせずにシングル・サイク
ルでキャッシュ・ストア・アクセスを達成する。シング
ル・サイクル・キャッシュ・アクセスは、タグ・ルック
アップが実行されている間にプロセッサにキャッシュ・
データを修正させることにより、達成される。キャッシ
ュ・ミスが生じたときは、キャッシュ・アクセスのステ
ートが知られる前にキャッシュは修正されたので、キャ
ッシュ・エントリの新しい内容を反映するようにタグは
修正されなければならない。
タグ修正は修正キャッシング・エントりの無効化或いは
割り振りの何れかを招かなければならない。
割り振りの何れかを招かなければならない。
キャッシュの性能を向トさせるためには、パージするの
ではなくキャッシュ内にデータを割り振ることの方が常
に良いので、キャッシュの割り0りが行なわれなければ
ならない6 典型的にはフ゛ログラムは全てのサイクルでメモリ内の
データを参照するものではない、このことは、未使用キ
ャッシュ幅が常に存在することを意味する0本発明の目
的は、バッファリングを通じで、キャッシュ・ライト・
ミスを原因とするタグ修正をこれらの1フリー〕・キャ
ッシュ・サイクルまで延期12て、プロセッサの待ちを
回避することである。タグ修正の延期は、キャッシュが
一時的に不一致であることを意味する。後続のキャッシ
ュ・アクセスは、未決のタグ修正を存するエンl−りに
とって、タグ修正バッファ内で予定された未決のタグ・
アップデーl−に対するアクセスをキャッシュ自体に対
する場合・と同様6S有効化j〜なければならない、−
旦、バッファが空になるどA・ヤッシ工の一致が復元さ
れる。
ではなくキャッシュ内にデータを割り振ることの方が常
に良いので、キャッシュの割り0りが行なわれなければ
ならない6 典型的にはフ゛ログラムは全てのサイクルでメモリ内の
データを参照するものではない、このことは、未使用キ
ャッシュ幅が常に存在することを意味する0本発明の目
的は、バッファリングを通じで、キャッシュ・ライト・
ミスを原因とするタグ修正をこれらの1フリー〕・キャ
ッシュ・サイクルまで延期12て、プロセッサの待ちを
回避することである。タグ修正の延期は、キャッシュが
一時的に不一致であることを意味する。後続のキャッシ
ュ・アクセスは、未決のタグ修正を存するエンl−りに
とって、タグ修正バッファ内で予定された未決のタグ・
アップデーl−に対するアクセスをキャッシュ自体に対
する場合・と同様6S有効化j〜なければならない、−
旦、バッファが空になるどA・ヤッシ工の一致が復元さ
れる。
延期されるタグ修正の回数はアグリゲーションに依存す
る。本発明は概念的制限のないことを意味する。
る。本発明は概念的制限のないことを意味する。
期間についてみれば、プログラムは物理的に互いに近接
i、2ているデータを参照する傾向がある。
i、2ているデータを参照する傾向がある。
こうしたどき連続する延期されたタグ修正は実際には同
じ六−一ツシュ・エントリに影響すて、;’)’もじれ
ない、そうであれば、タグ修正操作は「組み1〜わされ
J、それにより、キャッシュを゛γッグi1−トするた
め(9,〕、必委な1フリー」キャラ;・・ユサ−イン
ルの数が減り、タグ修正バッファの実効性が増大する。
じ六−一ツシュ・エントリに影響すて、;’)’もじれ
ない、そうであれば、タグ修正操作は「組み1〜わされ
J、それにより、キャッシュを゛γッグi1−トするた
め(9,〕、必委な1フリー」キャラ;・・ユサ−イン
ルの数が減り、タグ修正バッファの実効性が増大する。
シングル・サイクル・キャッシュ・アクセスの本発明の
第1の概念は以下のごときである。即ち、データ・キャ
ッシュ・データ・スト・アを今リード/ライトし、必要
であれば後にタグ・ストアをアップデートする。ライト
・ミスの結果のタグ修正を延期することである。キャッ
シュ・サイクルを遊休させて10セツザの待ちの発生を
最、少にすることである。キャッシュ・タグ・ステート
、延長タグ・ステ・−1・、及び現在の参照ステートを
組み合わせて最大限の性能を達成することである。
第1の概念は以下のごときである。即ち、データ・キャ
ッシュ・データ・スト・アを今リード/ライトし、必要
であれば後にタグ・ストアをアップデートする。ライト
・ミスの結果のタグ修正を延期することである。キャッ
シュ・サイクルを遊休させて10セツザの待ちの発生を
最、少にすることである。キャッシュ・タグ・ステート
、延長タグ・ステ・−1・、及び現在の参照ステートを
組み合わせて最大限の性能を達成することである。
第2図のフロー・チャートのキャッシュ・アクセス・フ
ローは多数回の戸スj−と活動を直列化しているが、本
発明の実際の適用においては性能を向上させるため、あ
る程度の並列化を行なってもよい、好ましい実施形態が
第3図に示されている。サイクルtにおいて、プロセッ
サはメモリ・リクエスト・アト】ミスをキャッシュ・マ
ネイジメント・ファンクション(CMF)に向けてPR
,0C−ADDRバス上に表し、そのメモリ・リクエス
ト・アドレスは「アト1/ス・マルチブレフサ(AMU
X)J 207を介して「アドレス・レジスタ」200
ヘロードされる。リクエスト・サイズ及びタイプはリク
エスト・レジスタ(RREG)210ヘロードされる。
ローは多数回の戸スj−と活動を直列化しているが、本
発明の実際の適用においては性能を向上させるため、あ
る程度の並列化を行なってもよい、好ましい実施形態が
第3図に示されている。サイクルtにおいて、プロセッ
サはメモリ・リクエスト・アト】ミスをキャッシュ・マ
ネイジメント・ファンクション(CMF)に向けてPR
,0C−ADDRバス上に表し、そのメモリ・リクエス
ト・アドレスは「アト1/ス・マルチブレフサ(AMU
X)J 207を介して「アドレス・レジスタ」200
ヘロードされる。リクエスト・サイズ及びタイプはリク
エスト・レジスタ(RREG)210ヘロードされる。
サイクル(を十i>において、メモリ・リクエスト・ア
ドレスは、キャッシュ・タグ・ストア(CTS)202
、アドレス変換メカニズム(ATM)20m及びタグ・
アップデート待ちパン・ファ(TtJQ)206へと、
CI NDEXバスを介してロードされる。ATM20
1は、物理キャッシュに関連して本発明を利用するよう
なシステムに向けて、物理アドレス変換をX L A
T −A DDR,バス上に与える。更に、ATM20
1は状δ74を与え、この状況はライト・アクセス特権
を決定するために後に使用されるにれはキャッシュ・ア
クセス・パイプラインの第1のステージである。
ドレスは、キャッシュ・タグ・ストア(CTS)202
、アドレス変換メカニズム(ATM)20m及びタグ・
アップデート待ちパン・ファ(TtJQ)206へと、
CI NDEXバスを介してロードされる。ATM20
1は、物理キャッシュに関連して本発明を利用するよう
なシステムに向けて、物理アドレス変換をX L A
T −A DDR,バス上に与える。更に、ATM20
1は状δ74を与え、この状況はライト・アクセス特権
を決定するために後に使用されるにれはキャッシュ・ア
クセス・パイプラインの第1のステージである。
→イ1−・リクエストがあるとキャッシュ・データスト
アは無条件で書き込まれる1、全体のサイクルはキヤ・
yシ、ブ、及び待ぢのヒツト・/ミス状況をチ、J1ツ
クするのに利用される。
アは無条件で書き込まれる1、全体のサイクルはキヤ・
yシ、ブ、及び待ぢのヒツト・/ミス状況をチ、J1ツ
クするのに利用される。
サイクル(t + 2 )即ちA−ヤッシュ・アクセス
の第2サイクルにおいて、キャッシュ及び待ちルツクア
ツプが知られ、必要な状況がプロセッサに報告される6
ライI・・ミスが起きたときは、TUQ206が後述の
ようにアンプデートされるが、プロセッサはミスの状況
には無関係に続行する。
の第2サイクルにおいて、キャッシュ及び待ちルツクア
ツプが知られ、必要な状況がプロセッサに報告される6
ライI・・ミスが起きたときは、TUQ206が後述の
ようにアンプデートされるが、プロセッサはミスの状況
には無関係に続行する。
リード・ミスが起きたときは、プロセッサはC’M)パ
がメモリからデー・・夕を検索するまで待たされる。
がメモリからデー・・夕を検索するまで待たされる。
メモリ・リフニスl=−が鳥される)−M 100 (
第2図)、CMFは、WREQ信号及びR,REQ信号
からリクエストのタイプを決定する。ライドリクエスト 熱条件で書き込まれる(104)。アドレスさねたキャ
ッシュ・タグは、バイト・バリデイティがキャッシュ・
タグ有効ビット及びメモリ参照のBYTE MASK
の突合わせにより決定される間、キャッシュ・タグ・コ
ンパレータ(CTC.>2[)3を介して、X L A
T − A D D R.にターt して比較される
。同時に、TUQ206が照会されてアドレスされたキ
ャッシュ・エントリがタグ修正107のために予定され
ているかどうかが決定される4キヤツシユ・インテ・ソ
クスが待ちキャッシュ・インデックスに一致し、XLA
T−ADr3Rか待ちキャッシュ・タグ110に一致す
るとき、[待ちライト・ヒツト]が起きたといえる、「
キャッシュ・ミス及び待ちコントロールJ (CMQ
C)204は、次にこの参照により、アクセスされたバ
イトを割り振るが前動にするかを決定する、どちらの場
合にも、一致している待ちエントリの有効ビットだけが
TUQ206により修正される。
第2図)、CMFは、WREQ信号及びR,REQ信号
からリクエストのタイプを決定する。ライドリクエスト 熱条件で書き込まれる(104)。アドレスさねたキャ
ッシュ・タグは、バイト・バリデイティがキャッシュ・
タグ有効ビット及びメモリ参照のBYTE MASK
の突合わせにより決定される間、キャッシュ・タグ・コ
ンパレータ(CTC.>2[)3を介して、X L A
T − A D D R.にターt して比較される
。同時に、TUQ206が照会されてアドレスされたキ
ャッシュ・エントリがタグ修正107のために予定され
ているかどうかが決定される4キヤツシユ・インテ・ソ
クスが待ちキャッシュ・インデックスに一致し、XLA
T−ADr3Rか待ちキャッシュ・タグ110に一致す
るとき、[待ちライト・ヒツト]が起きたといえる、「
キャッシュ・ミス及び待ちコントロールJ (CMQ
C)204は、次にこの参照により、アクセスされたバ
イトを割り振るが前動にするかを決定する、どちらの場
合にも、一致している待ちエントリの有効ビットだけが
TUQ206により修正される。
適切な有効ビット及びコントロール情報はT U Q2
06へ向けて、CMQC204により、MISS−VA
LIDバス、ALLOCATE、INVALI DAT
E、及びL OA D −Q信号を通じて与えられる。
06へ向けて、CMQC204により、MISS−VA
LIDバス、ALLOCATE、INVALI DAT
E、及びL OA D −Q信号を通じて与えられる。
「待ちライト・ミス」は、キャッシュ・インデックスが
待ちキャッシュ・インデックスに一致するか、或いはキ
ャッシュ・インデックスが存在するがXLAT−ADD
R,がエントリの待ちキャッシュ・タグ110に一致し
ないときに、起きるといえる。CMQC204は、次に
新しいエントリをT tJ Q内に「割り振ら」なけれ
ばならない。
待ちキャッシュ・インデックスに一致するか、或いはキ
ャッシュ・インデックスが存在するがXLAT−ADD
R,がエントリの待ちキャッシュ・タグ110に一致し
ないときに、起きるといえる。CMQC204は、次に
新しいエントリをT tJ Q内に「割り振ら」なけれ
ばならない。
CMQC204は、適切なタグ及び有効ビット情報を、
MISS−TAGバス及びMISS−VALIDバスを
通じて、TUQ206に示す役割がある。全ての有効ビ
ット操作はCMQC204により行なわれる1割り振り
及び無効化の決定は、WRITE−ALI、0WED信
号の状態テ為すレる。TUQ206がCMQC204に
より指令されて、ALLOCATE及びL OA D−
Q信号が認められ、待ちライI−・ヒツトが存在すると
きに(119) 、BYTE−MASKを現在の内容に
組み合わせて、待ちキャッシュ有効ビットとオろ(11
7)。
MISS−TAGバス及びMISS−VALIDバスを
通じて、TUQ206に示す役割がある。全ての有効ビ
ット操作はCMQC204により行なわれる1割り振り
及び無効化の決定は、WRITE−ALI、0WED信
号の状態テ為すレる。TUQ206がCMQC204に
より指令されて、ALLOCATE及びL OA D−
Q信号が認められ、待ちライI−・ヒツトが存在すると
きに(119) 、BYTE−MASKを現在の内容に
組み合わせて、待ちキャッシュ有効ビットとオろ(11
7)。
キャッシュ・ライトを許可しないのは幾ワかの理由があ
る。即ち、非常駐データ、不十分なアクセス特権、整頓
されないメモリ参照、キャッシュに入れられないデータ
、等である。CMFブロック図は、ATMがライ1−を
許可するための単独の行列式であることを示している。
る。即ち、非常駐データ、不十分なアクセス特権、整頓
されないメモリ参照、キャッシュに入れられないデータ
、等である。CMFブロック図は、ATMがライ1−を
許可するための単独の行列式であることを示している。
一般的にもこの事が必要なのではない、どんな場合でも
、キへ・ッシュ・データ・ス1−・アはライト許諾が知
り、る前に書き込まhるので、キャッシュの不一致作を
回避するためにライトが許可されない(118)ような
場合については、キャッシュは無効化されなければなら
ない、CMQC204はTUQ206をして、L OA
D −Q及びI NVALI DATE信号によりB
YTE−MASK信号内に表されたビットに対応する待
ち有効ビットをリセットさせる0組み合わせタグ・アッ
プデー1−操作はキャッシュのアップデートに必要な「
フリー」キャッシュ・ライクルの数を滅べし、TUQ2
06の有用性を向上させる。
、キへ・ッシュ・データ・ス1−・アはライト許諾が知
り、る前に書き込まhるので、キャッシュの不一致作を
回避するためにライトが許可されない(118)ような
場合については、キャッシュは無効化されなければなら
ない、CMQC204はTUQ206をして、L OA
D −Q及びI NVALI DATE信号によりB
YTE−MASK信号内に表されたビットに対応する待
ち有効ビットをリセットさせる0組み合わせタグ・アッ
プデー1−操作はキャッシュのアップデートに必要な「
フリー」キャッシュ・ライクルの数を滅べし、TUQ2
06の有用性を向上させる。
待ちライ1−・ヒツトが起きないとき(1,10)、キ
ャッシュ・タグ/有効ビット比較の結果が重要になりう
る。しかし、もしライ■・・リフストが「許可」されな
いとしたら、キャッシュ無効化が予定されなければなら
ない(1,11,)。CMQC204がM I 5S−
TAGバスを通じてキャッシュ・タグの前回の内容をパ
スする。CMQCは、BYTE−MASK内のピッ■−
に対応するところの送信されたキャッシュ有効ビットを
リセットすることにより、MISIVALIDを形成す
る。
ャッシュ・タグ/有効ビット比較の結果が重要になりう
る。しかし、もしライ■・・リフストが「許可」されな
いとしたら、キャッシュ無効化が予定されなければなら
ない(1,11,)。CMQC204がM I 5S−
TAGバスを通じてキャッシュ・タグの前回の内容をパ
スする。CMQCは、BYTE−MASK内のピッ■−
に対応するところの送信されたキャッシュ有効ビットを
リセットすることにより、MISIVALIDを形成す
る。
こうした操作は、不法なキャッシュ参照によりアクセス
されたバイトを効果的に「無効化」する。
されたバイトを効果的に「無効化」する。
TtJQは次にこの情報により待ちをロードするように
指令される。待ちライト・ヒツトが起きないので、CM
QCカ月、0AD−Q信号及びI N V AI D
A T E (Ql;号を現j1.たときには、新しい
待ちエントリが創られる(114.120)。
指令される。待ちライト・ヒツトが起きないので、CM
QCカ月、0AD−Q信号及びI N V AI D
A T E (Ql;号を現j1.たときには、新しい
待ちエントリが創られる(114.120)。
待ちヒラl−が起さず5、キャッシュ・ライ]・か許可
され、キャッシュ・タグかX L A T A D
DRに一致するときは、そのキャッシュ・エンl−’J
はこのキャッシュ参照とは全く関1系がなく (112
)、新しいエントりをT tJ Q内に創る、−どにJ
、リキャッシュ割り振りが予定される。 M I S
5TAGは送信されたXLAT−ADDRとなり、M
I S S −V A l、 I n)は送信されたB
Y TFコーMASKとなる(11、120)。L
OA D−Q及びA L I、 OCA T E信号か
現われたとき、−1′シQはこの新しいエントりを創る
。
され、キャッシュ・タグかX L A T A D
DRに一致するときは、そのキャッシュ・エンl−’J
はこのキャッシュ参照とは全く関1系がなく (112
)、新しいエントりをT tJ Q内に創る、−どにJ
、リキャッシュ割り振りが予定される。 M I S
5TAGは送信されたXLAT−ADDRとなり、M
I S S −V A l、 I n)は送信されたB
Y TFコーMASKとなる(11、120)。L
OA D−Q及びA L I、 OCA T E信号か
現われたとき、−1′シQはこの新しいエントりを創る
。
待ちヒラ[・が起きず、キャッシュ・ライトが許可され
、キャッシュ・タグがX L A T −A D DR
に一致し、有効ビットが一致しないときは(113)、
’rヤッシュ割り振りは、「ミスする」有効ビットを効
果的にアップデートするような新しいエントリをTUQ
内に創ることにより、予定される。MI 5S−TAG
はXLAT−ADDR,の送信されたコピーとなり、M
ISS−VALIDは送信されたBYTE−MASKビ
ットと送信されたキャッシュ有効ビットとのロジカルO
Rである(116.120)。T tJ Qは、LOA
D−Q及びALLOCATE信号が現われたときに、こ
の新しいエントリを創る。待ちヒ□y トが起きず、キ
ャッシュ・ライトが許可され、キャッシュ・タグがXL
AT−ADDRに一致し、有効ビットが一致するときは
(113)、キャッシュ・ヒラl−が起きていると言わ
れる。タグ修正は予定されない。
、キャッシュ・タグがX L A T −A D DR
に一致し、有効ビットが一致しないときは(113)、
’rヤッシュ割り振りは、「ミスする」有効ビットを効
果的にアップデートするような新しいエントリをTUQ
内に創ることにより、予定される。MI 5S−TAG
はXLAT−ADDR,の送信されたコピーとなり、M
ISS−VALIDは送信されたBYTE−MASKビ
ットと送信されたキャッシュ有効ビットとのロジカルO
Rである(116.120)。T tJ Qは、LOA
D−Q及びALLOCATE信号が現われたときに、こ
の新しいエントリを創る。待ちヒ□y トが起きず、キ
ャッシュ・ライトが許可され、キャッシュ・タグがXL
AT−ADDRに一致し、有効ビットが一致するときは
(113)、キャッシュ・ヒラl−が起きていると言わ
れる。タグ修正は予定されない。
独自に出されたメモリ参照がリード・リクエストであっ
たとすると(105にライト・リクエストについて上述
したのと同様にして、リフニスl〜・アドレスがCMF
に現されていたことになる。リード・リクエストについ
ては、待ち及びタグ・ストア・ルックアップが作られて
いる間に、データがデータ・スI・アからリードされる
(106)、全ての待ちタグ・ステートは、キャッジ“
ユ・エントりがTUQ内に関連有効待ちエンドすを有す
るとき(即ち、待ちキャッシュ・インデックスが現在の
メモリ・リクエストのキャッシュ・インデックスに一致
するとき)、キャッシュ・タグ・ステートをスーパーシ
ードする。キャッシュ・インデックスが待ちキャッシュ
・インデックスに一致し、XLAT−ADDR,が待ち
キャッシュ・タグに一致し、BYTE−MASKが待ち
有効ピッl−に含まれるとき、「待ちリード・ヒツト」
が起きたという、リード・リクエストが待ちリード・ヒ
ツトを招いたならば、キャッシュからリードされたデー
タは有効であり、プロセッサは躊躇なく続行する(10
8)。
たとすると(105にライト・リクエストについて上述
したのと同様にして、リフニスl〜・アドレスがCMF
に現されていたことになる。リード・リクエストについ
ては、待ち及びタグ・ストア・ルックアップが作られて
いる間に、データがデータ・スI・アからリードされる
(106)、全ての待ちタグ・ステートは、キャッジ“
ユ・エントりがTUQ内に関連有効待ちエンドすを有す
るとき(即ち、待ちキャッシュ・インデックスが現在の
メモリ・リクエストのキャッシュ・インデックスに一致
するとき)、キャッシュ・タグ・ステートをスーパーシ
ードする。キャッシュ・インデックスが待ちキャッシュ
・インデックスに一致し、XLAT−ADDR,が待ち
キャッシュ・タグに一致し、BYTE−MASKが待ち
有効ピッl−に含まれるとき、「待ちリード・ヒツト」
が起きたという、リード・リクエストが待ちリード・ヒ
ツトを招いたならば、キャッシュからリードされたデー
タは有効であり、プロセッサは躊躇なく続行する(10
8)。
リード・リクエストがTUQにより満足されないときは
、キャッシュ・タグ/有効ビット比較の結果が重要にな
る。キャッシュ・タグがXLAT−ADDr(に一致し
、BYTE−MASKがキャッシュ・タグ有効ビットに
含まれるときは、「リード・ヒラ1〜」か起きたといわ
れ、プロセッサは躊躇なく続行する(109)、そうで
なければ、「リード・ミス」が起きてプロセッサは、リ
フニスl−・データがメモリからフェッチされるまで、
待たなければならない(103)、この点を越えて取ら
れるステップは本発明の範囲外である。
、キャッシュ・タグ/有効ビット比較の結果が重要にな
る。キャッシュ・タグがXLAT−ADDr(に一致し
、BYTE−MASKがキャッシュ・タグ有効ビットに
含まれるときは、「リード・ヒラ1〜」か起きたといわ
れ、プロセッサは躊躇なく続行する(109)、そうで
なければ、「リード・ミス」が起きてプロセッサは、リ
フニスl−・データがメモリからフェッチされるまで、
待たなければならない(103)、この点を越えて取ら
れるステップは本発明の範囲外である。
CMQCは、キャッシュがビジーでないとき即ちメモリ
・リクエストが通知されていないとき(100)及び待
ちが空でないとき(101)に、タグ修正を行なわせな
いようにすることだけを目的としている。この条件が存
在するとき、CMQCがキャッシュをコントロールする
。キャッシュ・タグ・ストアは、AREG200、AM
UX207を通じて、待ちキャッシュ・インデックスQ
−CI NDEXによりアドレスされる。−8ヤツシユ
・タグは、待ちキャッシュ・タグQ−CTAG、待ち有
効ピッ1−Q−VALID、マルチプレクサTMUX2
00、及びマルチプレクサV M U X’208によ
り、アップデートされる。待ちアンロード・シーケンス
はメモリ・リクエストの未決状態がない間だけ続行され
る。有限の長さの待ちについては、CMFがないかをア
ンロードするまえに、ライ1〜・ミスの長いながれが待
ちを「満たす」ことができる、この場合、CMFはプロ
セッサを待たせてキャッシュを優先使用し、TtJQの
妥当な部分がアンロードされ得ることになる(121)
。
・リクエストが通知されていないとき(100)及び待
ちが空でないとき(101)に、タグ修正を行なわせな
いようにすることだけを目的としている。この条件が存
在するとき、CMQCがキャッシュをコントロールする
。キャッシュ・タグ・ストアは、AREG200、AM
UX207を通じて、待ちキャッシュ・インデックスQ
−CI NDEXによりアドレスされる。−8ヤツシユ
・タグは、待ちキャッシュ・タグQ−CTAG、待ち有
効ピッ1−Q−VALID、マルチプレクサTMUX2
00、及びマルチプレクサV M U X’208によ
り、アップデートされる。待ちアンロード・シーケンス
はメモリ・リクエストの未決状態がない間だけ続行され
る。有限の長さの待ちについては、CMFがないかをア
ンロードするまえに、ライ1〜・ミスの長いながれが待
ちを「満たす」ことができる、この場合、CMFはプロ
セッサを待たせてキャッシュを優先使用し、TtJQの
妥当な部分がアンロードされ得ることになる(121)
。
第1図は本発明がパイプライン・プロセッサに適用され
た実施ρノを示すブロック図、第2図は本発明の一実施
例の操作を示すフロー・チャー1・、第3図は第1図の
実施例のより詳細な部分を示すブロック図である。 52:キャッシュ・データ・ストア 54:グロセッサ 56:キャッシュ・タグ・ストア 外(′ん
た実施ρノを示すブロック図、第2図は本発明の一実施
例の操作を示すフロー・チャー1・、第3図は第1図の
実施例のより詳細な部分を示すブロック図である。 52:キャッシュ・データ・ストア 54:グロセッサ 56:キャッシュ・タグ・ストア 外(′ん
Claims (2)
- (1)次の各工程からなるキャッシュデータ転送方法。 第1のサイクルで、リクエストされたキャッシュデータ
をキャッシュから目的地に転送する工程、 第1のサイクルで、リクエストされたキャッシュデータ
に関連するキャッシュタグをキャッシュマネジメント手
段に転送し、リクエストされたデータタグと該キャッシ
ュデータに対応するアドレス信号の一部とを比較する工
程、 リクエストされたキャッシュデータを目的地にクロック
し、第1のサイクルの終わりまでにタグの比較を完了す
る工程、 後のサイクルのキャッシュに目的地の状態を知らせる工
程、 リクエストされたキャッシュデータタグの比較が成功し
たときに転送を完了する工程、 リクエストされたキャッシュデータタグの比較が成功し
ないときに転送を完了させない工程、リクエストされた
キャッシュデータタグの比較が成功しないときに、後の
サイクルのキャッシュタグをアップデートする工程。 - (2)対応のタグ信号を含むデータリクエストをキャッ
シュに送るプロセッサ、第1のサイクルで、リクエスト
されたキャッシュデータをプロセッサに転送する手段、
第1のサイクルでタグ比較を行うためにキャッシュメモ
リ内のデータからタグを受け取り、プロセッサからリク
エストされたデータのタグを受け取るキャッシュマネジ
メント手段、リクエストされたキャッシュデータの転送
がキャッシュとプロセッサの間で成功したことをキャッ
シュマネジメント手段に知らせる装置、データの転送が
成功しないことを知らせるための前記装置からの指示と
、タグの比較が成功しない旨の前記マネジメント手段か
らの指示との一方で条件づけされる、後のサイクルのキ
ャッシュタグをアップデートする装置からなる、キャッ
シュメモリからデータ及び対応のタグを選択的に転送す
る装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US26405888A | 1988-10-28 | 1988-10-28 | |
| US264058 | 1994-06-22 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02224042A true JPH02224042A (ja) | 1990-09-06 |
| JP3219196B2 JP3219196B2 (ja) | 2001-10-15 |
Family
ID=23004384
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28158689A Expired - Fee Related JP3219196B2 (ja) | 1988-10-28 | 1989-10-27 | キャッシュデータアクセス方法及び装置 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0366324A3 (ja) |
| JP (1) | JP3219196B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004199677A (ja) * | 2002-12-13 | 2004-07-15 | Hewlett-Packard Development Co Lp | キャッシュを動作させるためのシステム及び方法 |
-
1989
- 1989-10-16 EP EP19890310611 patent/EP0366324A3/en not_active Withdrawn
- 1989-10-27 JP JP28158689A patent/JP3219196B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004199677A (ja) * | 2002-12-13 | 2004-07-15 | Hewlett-Packard Development Co Lp | キャッシュを動作させるためのシステム及び方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0366324A2 (en) | 1990-05-02 |
| EP0366324A3 (en) | 1991-09-18 |
| JP3219196B2 (ja) | 2001-10-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12417186B2 (en) | Write merging on stores with different tags | |
| US5163142A (en) | Efficient cache write technique through deferred tag modification | |
| KR100262906B1 (ko) | 데이터 선인출 방법 및 시스템 | |
| US5642494A (en) | Cache memory with reduced request-blocking | |
| US6976130B2 (en) | Cache controller unit architecture and applied method | |
| JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
| JPH02224042A (ja) | キャッシュデータアクセス方法及び装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20080810 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |