JPH07311711A - データ処理装置とその動作方法及びメモリ・キャッシュ動作方法 - Google Patents

データ処理装置とその動作方法及びメモリ・キャッシュ動作方法

Info

Publication number
JPH07311711A
JPH07311711A JP7009106A JP910695A JPH07311711A JP H07311711 A JPH07311711 A JP H07311711A JP 7009106 A JP7009106 A JP 7009106A JP 910695 A JP910695 A JP 910695A JP H07311711 A JPH07311711 A JP H07311711A
Authority
JP
Japan
Prior art keywords
cache
data
way
allocated
line
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
JP7009106A
Other languages
English (en)
Other versions
JP2713332B2 (ja
Inventor
Y Chan Joseph
ジョーゼフ・ワイ・チャン
Liu Hidayat
ヒダーヤト・リウ
A Reed Paul
ポール・エイ・リード
J Snyder Brian
ブライアン・ジェイ・スナイダー
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.)
International Business Machines Corp
Motorola Solutions Inc
Original Assignee
International Business Machines Corp
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp, Motorola Inc filed Critical International Business Machines Corp
Publication of JPH07311711A publication Critical patent/JPH07311711A/ja
Application granted granted Critical
Publication of JP2713332B2 publication Critical patent/JP2713332B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms

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)【要約】 【目的】 改良されたメモリ・キャッシュを有するデー
タ処理装置を開示する。 【構成】 データ処理装置は、複数の最新アクセス・デ
ータ・ラインを格納するためにキャッシュ・アレイと制
御ユニットとを有する。実行ユニットがメモリ・キャッ
シュに格納されていないデータ・ラインを要求する(ミ
スヒット)と、制御ユニットは、外部メモリ装置からそ
のデータを要求し、返されたときに要求されたデータを
格納するための位置をキャッシュ・アレイ内に割り振
る。図示の実施例では、制御ユニットは、まず、N通り
の位置のうちの無効位置の割振りを試みる。この場合、
Nはメモリ・キャッシュのセット・ウェイ・アソシアテ
ィブである。いずれのウェイも無効である場合、制御ユ
ニットはLRUアルゴリズムを使用して、位置を選択す
る。このため、データ・キャッシュは同じセットに対し
最高N回まで非ブロック化することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にはディジタル
計算システムに関し、より具体的にはメモリ・キャッシ
ュを備えたデータ処理装置に関する。
【0002】
【従来の技術】一般に、データ処理システムは、システ
ム・パフォーマンスの改善のためにメモリ・キャッシュ
を取り入れている。メモリ・キャッシュは、データ処理
システムのメイン・メモリの内容のうち、頻繁にアクセ
スされるサブセットを格納するものである。メモリ・キ
ャッシュの内容は、データの場合もあれば、命令の場合
もあり、データと命令の組合せである場合もある。デー
タ処理装置はメイン・メモリの内容にアクセスするより
メモリ・キャッシュの内容の方がより高速にアクセスで
きるので、メモリ・キャッシュによってデータ処理装置
のパフォーマンスが改善される。データ処理装置がメモ
リ・キャッシュの内容により高速にアクセスできる理由
は、(1)メモリ・キャッシュがメイン・メモリより高
速の構成要素で構成されていること、(2)データ処理
装置によるメモリ・キャッシュへのアクセスが専用バス
を介して行われること、(3)メモリ・キャッシュがデ
ータ処理装置と同じ半導体デバイス上に集積されている
こと、または(4)上記の(1)、(2)、(3)の任
意の組合せである。
【0003】メモリ・キャッシュは、「Nウェイ・セッ
ト・アソシアティブ」と記述される場合があるが、この
場合、Nは整数で、通常、2、4、または8である。こ
のようなメモリ・キャッシュでは、メモリ・キャッシュ
内のN個のウェイのうちのいずれか1つに1つのデータ
・ラインを格納することができる。このN個のウェイ
は、入力アドレスの一部によって2進数で索引が付けら
れた1つの「セット」を形成する。入力アドレスは、メ
イン・メモリ内にある要求されたデータの位置を識別す
るものである。N個のウェイのそれぞれにはタグが1つ
ずつ関連付けられている。このタグは、入力アドレスの
うち、2進索引として使用されない部分を格納する。メ
モリ・キャッシュに要求されたデータが収容されている
かどうかを判定するために、1つのセット内のすべての
有効なタグが入力アドレスの対応部分と比較される。タ
グの1つが入力アドレスの対応部分と一致すると、「ヒ
ット」が発生し、一致したタグと関連するキャッシュ・
ラインに格納されているデータが要求されたデータとし
て出力される。どのタグも入力アドレスの対応部分と一
致しない場合は、「ミスヒット」が発生し、メモリ・キ
ャッシュ自体が要求されたデータをメモリ・システムに
要求しなければならない。
【0004】メモリ・キャッシュは、ブロック化または
非ブロック化と記述される場合もある。この特徴は、ミ
スヒットが発生してからメモリ・システムが要求された
データを返すまでの期間中にメモリ・キャッシュが実行
できることまたは実行できないことを記述するものであ
る。ブロック化メモリ・キャッシュは、最初の要求でミ
スヒットしたときに後続のデータ要求をすべて拒否す
る。非ブロック化キャッシュは、最初の要求でミスヒッ
トしても、後続のデータ要求のうちの少なくとも一部に
ついて処理を続行する。他のパラメータがすべて同じで
あれば、非ブロック化キャッシュの方がブロック化メモ
リ・キャッシュより多くのデータをデータ処理装置に提
供できる。
【0005】
【発明が解決しようとする課題】最も制限の多い非ブロ
ック化メモリ・キャッシュでも、ブロック化キャッシュ
よりかなり複雑である。一般に、非ブロック化メモリ・
キャッシュは、そのメモリ・キャッシュが特定のセット
でミスヒットしてから、要求されたデータが特定のセッ
トに書き込まれるまで、その特定のセットについてはブ
ロック化キャッシュになる。このように変化しても、特
定のセットのヒットには影響せず、メモリ・キャッシュ
内の他のセットへのアクセスにも影響しない。しかし、
メモリ・キャッシュは、特定のセットでミスヒットした
データを要求した回路に対し、後で同じ操作を再試行す
るよう強制する。あるいは、メモリ・キャッシュは、特
定のセット内の同じウェイに、返された2つのデータ・
ラインを書き込むこともある。このような限定非ブロッ
ク化キャッシュ設計でも、メモリ・キャッシュがミスヒ
ットするたびに、メモリ・キャッシュの入力と、保留中
のシステム・メモリ・アクセスの待ち行列とのアドレス
比較が必要である。
【0006】
【課題を解決するための手段】本発明により、既知のデ
ータ処理装置の欠点をほぼ解消するメモリ・キャッシュ
を有するデータ処理装置を開示する。
【0007】データ処理装置には、実行ユニットとメモ
リ・キャッシュがまとめて連結されている。実行ユニッ
トは、要求されたキャッシュ・ラインのアドレスを生成
する。メモリ・キャッシュは、キャッシュ・アレイと制
御ユニットを有する。キャッシュ・アレイは複数のセッ
トを有する。複数のセットのそれぞれは複数のウェイを
有する。複数のウェイのそれぞれは1つのキャッシュ・
ラインと1つのタグを格納する。キャッシュ・アレイ
は、選択されたウェイのタグが要求されたキャッシュ・
ラインのアドレスのサブセットと論理的に等価である場
合に、選択されたウェイの1つのキャッシュ・ラインを
出力する。選択されたウェイを含むセット(選択された
セット)は、要求されたキャッシュ・ラインのアドレス
のサブセットによって選択される。キャッシュ・ライン
のミスヒットが発生した場合、制御ユニットが割振り済
みウェイを選択する。割振り済みウェイは、選択された
セットのウェイの1つである。
【0008】データ処理装置の操作方法についても記載
する。この方法は、データ・キャッシュ内の要求された
データ・ラインの入力アドレスを受け取る第一の受取り
ステップと、要求されたデータ・ラインがデータ・キャ
ッシュ内に存在しないと判定する第一の判定ステップ
と、データ・キャッシュ内の記憶位置に割振り済みキャ
ッシュ・ラインを割り振るステップとを含む。さらにこ
の方法は、外部記憶装置からデータ・ラインを要求する
ステップと、データ・キャッシュ内の外部装置から要求
されたデータ・ラインを受け取る第二の受取りステップ
と、割振り済みキャッシュ・ラインに要求されたデータ
・ラインを格納するステップとを含む。
【0009】
【実施例】図1は、本発明により構築されたデータ処理
装置10のブロック図を示している。データ処理装置1
0は、頻繁に使用するデータを統合メモリ・キャッシュ
に格納することによりそのパフォーマンスを改善するデ
ータ処理装置である。このメモリ・キャッシュは、51
2本のキャッシュ・ラインを含む4ウェイ・セット・ア
ソシアティブ非ブロック化キャッシュである。開示され
たメモリ・キャッシュは、高性能データ処理装置に組み
込むことができるという利点がある。しかし、開示され
た非ブロック化キャッシュは、同じサイズでパフォーマ
ンスが低いブロック化キャッシュに比べ、実現するのが
大幅に難しいわけではない。それぞれのキャッシュ・ラ
インは、256ビットのデータと、キャッシュ・ライン
の2進索引と組み合わせた場合にデータのメイン・メモ
リ内の位置を識別する20ビットのタグと、3つの状況
ビットとを格納する。また、メモリ・キャッシュは、4
本のキャッシュ・ラインからなる各セットごとに6つの
("LRU")ビットも収容する。3つの状況ビットは、
各キャッシュ・ラインごとの状態をデータ整合性プロト
コルの一部として定義する。もう1つの状態は、割振り
状態と呼ばれ、特定のウェイのミスヒット後にそのウェ
イ内の1つの項目に割り当てられる。LRUビットと状
況ビットは、それぞれのミスヒット後にどのウェイが
「割り振られる」かを判定するものである。メモリ・キ
ャッシュは、要求されたデータが返されたときにそのデ
ータを割振り済みウェイに格納する。このため、開示さ
れたメモリ・キャッシュは、最高N回まで同じウェイで
非ブロック化状態を継続することができる。この場合、
Nはキャッシュのウェイネスである。
【0010】引き続き図1を参照して説明すると、バス
・インタフェース・ユニット(以下BIUという)12
は、データ処理装置10とデータ処理システム(図示せ
ず)の残りの部分との間のデータの流れを制御する。B
IU12は、命令キャッシュ14とデータ・キャッシュ
16に接続されている。データ・キャッシュ16につい
ては、図2〜図11に関連して以下に詳述する。命令キ
ャッシュ14は、シーケンサ・ユニット18に命令スト
リームを供給する。シーケンサ・ユニット18は、適切
な実行ユニットに個々の命令を転送する。データ処理装
置10は、ブランチ・ユニット20、固定小数点実行ユ
ニットA 22、固定小数点実行ユニットB 24、複
合固定小数点実行ユニット26、ロード/ストア実行ユ
ニット28、および浮動小数点実行ユニット30を有す
る。固定小数点実行ユニットA22、固定小数点実行ユ
ニットB 24、複合固定小数点実行ユニット26、お
よびロード/ストア実行ユニット28は、その結果を読
み取って、汎用体系レジスタ・ファイル32(GPRと
いうラベルが付けられているので、以下GPRファイル
という)および第一の名前変更バッファ34に書き込
む。浮動小数点実行ユニット26およびロード/ストア
実行ユニット28は、その結果を読み取って、浮動小数
点体系レジスタ・ファイル36(FPRというラベルが
付けられているので、以下FPRファイルという)およ
び第二の名前変更バッファ38に書き込む。
【0011】開示されたデータ・キャッシュを使用しな
いデータ処理装置10の操作は当技術分野では既知であ
る。一般に、ブランチ・ユニット20は、所与のデータ
・レジスタの内容と命令そのものを考慮して、どのシー
ケンスのプログラム式命令が適切かを判定する。命令キ
ャッシュ14は、このシーケンスのプログラム式命令を
シーケンサ18に提供する。命令キャッシュ14に必要
な命令が収容されていない場合は、このキャッシュがデ
ータ処理装置10の外部にあるメイン・メモリ・システ
ム(図示せず)からその命令を取り出す。
【0012】シーケンサ・ユニット18は、このシーケ
ンスのプログラム式命令の個々の命令を様々な実行ユニ
ット20、22、24、26、28、および30に出
す。それぞれの実行ユニットは、特定クラスの命令のう
ちの1つまたは複数の命令を実行する。各実行ユニット
の特定クラスの命令は、実行ユニットの名前によって示
される。たとえば、固定小数点実行ユニットAおよびB
は、固定小数点表記で表されたオペランドに対して加
算、減算、AND、OR、XORなどの単純な数学演算
を実行する。複合固定小数点実行ユニット26は、固定
小数点表記で表されたオペランドに対して乗算、除算な
どのより複雑な数学演算を実行する。浮動小数点実行ユ
ニット30は、浮動小数点表記で表されたオペランドに
対して乗算、除算などの数学演算を実行する。
【0013】固定小数点実行ユニットAおよびBと、複
合固定小数点実行ユニット26は、その操作結果を第一
の名前変更バッファ34内の指定の項目に返す。第一の
名前変更バッファ34は、その結果を生成した命令より
前のすべての命令がそのGPRファイル項目の更新を完
了したときに、第一の名前変更バッファ34からの項目
によってGPRファイル32の項目を定期的に更新す
る。シーケンサ・ユニット18はこの更新を調整する。
第一の名前変更バッファ34とGPRファイル32はど
ちらも、固定小数点実行ユニットAおよびBと、複合固
定小数点ユニット26にオペランドを提供することがで
きる。
【0014】浮動小数点実行ユニット30は、その操作
結果を第二の名前変更バッファ38内の指定の項目に返
す。第二の名前変更バッファ38は、その結果を生成し
た命令より前のすべての命令がそのFPRファイル項目
の更新を完了したときに、第二の名前変更バッファ38
内の項目によってFPRファイル36の項目を定期的に
更新する。シーケンサ・ユニット18はこの更新も調整
する。第二の名前変更バッファ38とFPRファイル3
6はどちらも、浮動小数点実行ユニット30にオペラン
ドを提供する。
【0015】ロード/ストア実行ユニット28は、GP
Rファイル32、第一の名前変更バッファ34、FPR
ファイル36、または第二の名前変更バッファ38に格
納されたデータを読み取り、選択したデータをデータ・
キャッシュ16に書き込む。このデータは、開示された
発明に関連しないデータ処理装置10の動作特性に応じ
て、外部メモリ・システム(図示せず)に書き込むこと
もできる。上記とは反対に、ロード/ストア実行ユニッ
ト28は、データ・キャッシュ16に格納されたデータ
を読み取り、読み取ったデータをGPRファイル32、
第一の名前変更バッファ34、FPRファイル36、ま
たは第二の名前変更バッファ38に書き込む。データ・
キャッシュ16に必要なデータが収容されていない場合
は、このキャッシュがBIU12を介してデータ処理装
置10の外部にあるメイン・メモリ・システムからその
データを取り出す。
【0016】開示されたデータ・キャッシュを備えたデ
ータ処理装置10の操作については、図2ないし図6に
関連して以下に説明する。一般に、データ処理装置10
は、縮小命令セット・コンピュータ("RISC")であ
る。データ処理装置10は、それぞれの命令を一連のよ
り小さいステップに分解することによって高性能を達成
するが、それぞれのステップは他の命令のステップと時
間的に重なり合うこともある。このパフォーマンス対策
は、「パイプライン方式」と呼ばれている。図示の実施
例では、それぞれの命令が、取出し、復号、タスク指
名、実行、完了の5つの個別のステップに分割されてい
る。
【0017】取出し段階では、命令キャッシュ14内の
メモリ管理回路(図示せず)が、前のクロック・サイク
ルでシーケンサ・ユニット18またはブランチ・ユニッ
ト20によって識別されたメモリ・アドレスから始まる
1つまたは複数の命令を取り出す。
【0018】復号段階では、後続の段階で使用するため
に、シーケンサ・ユニット18によって命令が複数の制
御信号に復号される。
【0019】タスク指名段階では、許されないデータま
たは資源依存関係が存在しないと判定し、命令の結果用
に名前変更バッファの項目を予約した後で、シーケンサ
・ユニット18がそれぞれの命令を適切な実行ユニット
に経路指定する。このタスク指名段階では、タスク指名
される命令にオペランド情報を提供することも担当す
る。
【0020】実行段階では、それぞれの特定の実行ユニ
ットがそのプログラム式命令を実行する。結果がある場
合は、それぞれ整数結果および浮動小数点結果用の名前
変更バッファ34または38のいずれかに結果が返され
る。
【0021】完了段階では、特定の命令より前のすべて
の命令が体系レジスタ・ファイルを更新した後で、シー
ケンサ・ユニット18が名前変更バッファに格納された
特定の命令の結果によって体系レジスタ・ファイルを更
新する。完了段階では、特定の命令より前のすべての命
令が体系状態を更新した後で、マシン内の他の体系状態
もすべて更新する。
【0022】一般に、それぞれの命令段階は、マシンの
クロック・サイクル1つ分の時間を要する。しかし、複
合固定小数点命令などの一部の命令は、実行するのにク
ロック・サイクル1つ分以上の時間を要する。したがっ
て、前の命令が実行に要した時間に幅があるため、特定
の命令の実行段階と完了段階との間に遅延が生じる場合
もある。
【0023】図2は、図1に示すデータ・キャッシュ1
6のブロック図である。データ・キャッシュ16は、4
ウェイ・セット・アソシアティブ・キャッシュである。
すべてのキャッシュ・ライン情報は、スタティック・ラ
ンダム・アクセス・メモリ("SRAM")のビット・セ
ルに格納される。データ・キャッシュ16には、128
セット×4ウェイとして構成された512本のキャッシ
ュ・ラインを含むキャッシュ・アレイ40が収容されて
いる。512本のキャッシュ・ラインのそれぞれには、
タグ項目42、状況項目44、データ項目46、LRU
項目48が含まれている。タグ・アドレス・マルチプレ
クサ("MUX")50は、1回の読取りまたは書込み操
作中にアドレス・ビット0:19のどのソースがタグ・
アレイ42に提示されるかを判定する。この20ビット
は、入力アドレス・マルチプレクサ("MUX")52ま
たはメモリ管理ユニット("MMU")54を起源とする
場合もある。入力アドレス・マルチプレクサ52自体
は、BIU12、MMU54、ロード/ストア実行ユニ
ット28、またはスヌープ・タグ・マルチプレクサ62
からの入力アドレスの索引アドレス部分を受け取る。キ
ャッシュ・アービトレータ56は、データ処理装置10
の様々な操作と開示された発明に関連しない優先順位方
式に基づいて、どのユニットがキャッシュ・アレイ40
へのアクセスを読み取ったり書き込んだりするかを判定
する。データ・キャッシュ16は、キャッシュ・アレイ
40とスヌープ・タグ・アレイ60に連結された制御ユ
ニット58も有する。スヌープ・タグ・アレイ60に
は、タグ・アレイ42内に格納されたアドレス・タグの
コピーが収容される。スヌープ・タグ・マルチプレクサ
("MUX")62は、スヌープ・タグ・アレイ60への
入力アドレスのソースを判定する。スヌープ・タグ・マ
ルチプレクサ62は、入力アドレス・マルチプレクサ5
2によって出力されるアドレスまたは"SNOOP E
XTERNAL"というスヌープ操作に対する応答とし
て外部装置によって供給されるアドレスのいずれかをス
ヌープ・タグ・アレイ60に転送することができる。
【0024】キャッシュ・アレイ40は、選択されたセ
ット内の4つのウェイのいずれかであるデータ・アレイ
40に256データ・ビットのキャッシュ・ラインを格
納する。メイン・メモリ内のキャッシュ・ラインに索引
を付けるアドレスの12個の最下位ビットは、選択され
たセットにも索引を付ける。選ばれたウェイ内で選択さ
れたウェイのタグ・アレイ42は、アドレスのうち、選
択されたセットに索引を付けるのに使用しない20ビッ
トを格納する。また、タグ・アレイ42は、入力アドレ
スの索引部分によって指定されたセットに格納されてい
るタグと入力アドレスのタグ部分とを比較する4つの2
0ビット・タグ比較器も収容している。タグ・アレイ4
2は、一致を検出すると、制御ユニット58に信号を送
出する。状況アレイ44は、それぞれのキャッシュ・ラ
インごとに3つの状況ビットを格納する。これらの3つ
のビットは、データ整合性プロトコルのどの状態がその
キャッシュ・ラインに関連するかを識別するものであ
る。これらの3つのビットは、キャッシュ・ラインが置
換用に割り振られているかどうかも示す。状況アレイ4
4とLRUアレイ48は、デュアル・ポート式のSRA
Mセルで実現される。これらの余分なポートによって、
各アレイの内容を同じクロック・サイクル内で読み取っ
たり書き込んだりすることができる。LRUアレイ48
は、4本のキャッシュ・ラインからなる各セットごとに
6つのビットを格納する。これらの6つのビットは、各
セット内の4本のキャッシュ・ラインのうちのどれ
(「どのウェイ」)が各セットのLRUラインかを示
す。
【0025】MMU54は、データ・キャッシュ16用
のメモリ管理の機能を果たす。ロード/ストア実行ユニ
ット28の論理アドレスのデータは、実際には、データ
処理システムのメイン・メモリ(図示せず)によって異
なる物理アドレス位置に収容されることもある。MMU
54は、2通りのマッピング方式に関連する情報を格納
し、ロード/ストア実行ユニット28がデータ・キャッ
シュ16にアドレスを提示するたびにアドレス変換を実
行する。
【0026】制御ユニット58は、キャッシュ・アレイ
40によって実行される読取りまたは書込みアクセス操
作を監視し、LRUアレイ48の状況を更新し、「キャ
ッシュ・ミスヒット」が発生した場合にウェイを割り振
る。
【0027】スヌープ・タグ・アレイ60は、入力アド
レスの索引部分によって指定されるセットに格納されて
いるタグと入力アドレスのタグ部分とを比較する4つの
20ビット・タグ比較器も収容している。この特徴によ
って、データ・キャッシュ16は、同じクロック・サイ
クル内にスヌープ操作と内部ロード/ストア操作に対応
することができる。
【0028】データ・キャッシュ16は、2つの主な機
能と、様々な二次的機能を実行する。第一に、データ・
キャッシュ16は、様々な実行ユニットにデータを提供
するか、様々な実行ユニットからのデータをメイン・メ
モリに格納する。このデータは、最初に要求されたとき
にデータ・キャッシュ16内にある場合(「ヒット」)
もあれば、最初に要求されたときにデータ・キャッシュ
16内にない場合(「ミスヒット」)もある。(開示さ
れたデータ整合性プロトコルでは、メイン・メモリに書
き込まれたか格納されたデータは、最初はデータ・キャ
ッシュ16内に存在しなければならないことになってい
る。このため、ストア操作はキャッシュ・アレイ40で
もヒットしなければならない。)第二に、データ・キャ
ッシュ16は、データ処理装置10を組み込んだデータ
処理システムで発生する各トランザクションを監視、す
なわち「スヌープ」することにより、データ整合性プロ
トコルを維持する。図示の実施例のデータ整合性プロト
コルについては、図4〜図11に関連して以下に説明す
る。
【0029】キャッシュ・アクセス中にキャッシュ・ア
ービトレータ56は、ロード/ストア実行ユニット28
によって生成された仮想アドレス("VA")の12個の
最下位ビットをキャッシュ・アレイ40に転送する。同
時に、MMU54は、同じ仮想アドレスの20個の最上
位ビットを実際のタグに変換し、その実際のタグをタグ
・アレイ42に転送する。前述の通り、仮想アドレスの
12個の最下位ビットは4つのキャッシュ・ラインから
なる1つのセット、すなわち1つのウェイに索引を付け
る。タグ・アレイ42は、提示された実際のタグと、選
択されたセットに関連する4つのタグとを比較する。選
択されたウェイ内のタグの1つが実際のタグと論理的に
等価で、しかも有効であれば、「ヒット」が発生する。
このようなヒットの場合、タグ・アレイ42は、制御ユ
ニット58が受け取った制御信号をアサートする。選択
されたウェイ内の有効なタグのいずれも実際のタグと論
理的に等価でない場合は、「ミスヒット」が発生する。
このようなミスヒットの場合、タグ・アレイ42は、制
御ユニット58が受け取った制御信号をアサート解除す
る。
【0030】キャッシュ・ヒットの場合、一致するタグ
に関連するデータ・アレイ項目は、ヒットの原因となる
命令のタイプに応じて操作される。操作がロード操作の
場合は、データ・キャッシュ16は、ヒットしたキャッ
シュ・ラインに格納されている256ビットのデータの
うちの64ビットをロード/ストア実行ユニット28に
転送する。操作がストア操作の場合は、データ・キャッ
シュ16は、ヒットしたキャッシュ・ラインに格納され
ている256ビットのデータのうちの64ビットをロー
ド/ストア実行ユニット28によって提供されたデータ
で置き換える。いずれの場合も、入力アドレスの追加の
2ビットによって特定のダブルワードが選択される。ま
た、図3ないし図11に関連して以下に説明するよう
に、制御ユニット58は、ヒットしたキャッシュ・ライ
ンの状況アレイ44に格納されているデータ状態を変更
する。
【0031】キャッシュ・ミスヒットの場合は、アドレ
ス指定したデータをメイン・メモリから最初に入手しな
ければならない。制御ユニット58は、前述の制御信号
のアサート解除によってミスヒットを検出する。同時
に、制御ユニット58は、選択されたセットのLRU項
目と、選択されたセットの4つの状況項目を読み取る。
制御ユニット58は、メイン・メモリから返された場合
に要求されたデータを格納する場所として、選択された
セットの4つのウェイのうちの1つを割り振る。また、
制御ユニット58は、その新しい状態を反映するため
に、割振り済みウェイの状況項目を変更する。図3は、
制御ユニット58が特定のセット内の4つのウェイのう
ちの1つを割り振る方法を示している。図10は、制御
ユニット58が割振り済みウェイの状況を変更する方法
を示している。さらに制御ユニット58は、"WAY
SELECT"という割振り済みウェイの表示ととも
に、そのデータに関する要求をBIU12に転送する。
【0032】最終的にBIU12は、そのアドレス、そ
の新しいデータ整合性プロトコル状態、およびWAY
SELECTとともに、要求されたデータをデータ・キ
ャッシュ16に返す。キャッシュ・アービトレータ56
は、要求されたデータのアドレスをキャッシュ・アレイ
40に転送し、それにより、前述の通り、セットを選択
する。次に、制御ユニット58は、制御信号WAY S
ELECTに対する応答として選択されたセット内の特
定のウェイを選択する。BIU12は、データとそのア
ドレスの20個の最上位ビットとを、選択されたウェイ
のデータ項目とタグ項目のそれぞれに書き込む。さらに
制御ユニット58は、その新しい状態を反映するため
に、割振り済みウェイの状況項目を変更する。図10
は、制御ユニット58が割振り済みウェイの状況を変更
する方法を示している。
【0033】スヌープ・タグ・アレイ60は、データ・
キャッシュ16が通常の操作を妨害せずに外部ソースか
らのスヌープ操作に対応できるようにする。このような
スヌープ操作は、始めはBIU12によって受け取られ
る。スヌープ・タグ・マルチプレクサ62は、スヌープ
・アドレスをスヌープ・タグ・アレイ60に転送する。
スヌープ・タグ・アレイ60およびタグ・アレイ42は
実際のタグの同一セットを維持する。スヌープ・タグ・
アレイ60は、スヌープによって指定された実際のタグ
を含む場合もあれば、含まない場合もある。スヌープ・
タグ・アレイ60がスヌープ・タグを含む場合は、スヌ
ープ・ヒットが発生する。スヌープ・タグ・アレイ60
がスヌープ・タグを含まない場合は、スヌープ・ミスヒ
ットが発生する。スヌープ・ヒットの場合には、スヌー
プ・タグ・アレイは制御ユニット58が受け取ったSN
OOP HITという制御信号をアサートする。スヌー
プ・ヒットまたはスヌープ・ミスヒットの詳細は、前述
のタグ・ヒットまたはタグ・ミスヒットの操作の詳細と
ほぼ同じである。また、BIU12は、状況アレイ44
の第二のポートにスヌープ・アドレスを転送する。同時
に、状況アレイ44は、スヌープ項目の格納済み項目を
制御ユニット58に転送する。スヌープ・タグ・ヒット
が発生した場合、制御ユニット58は、データ整合性プ
ロトコルに応じてスヌープ項目の状況を変更する。図示
の実施例のデータ整合性プロトコルについては、図5な
いし図11に関連して以下に説明する。スヌープ・タグ
・ミスヒットが発生した場合は、制御ユニット58は何
も実行しない。
【0034】図3は、開示された発明がミスヒットの後
で図2に示すデータ・キャッシュ内の特定のウェイを選
択する方法を示す流れ図76である。制御ユニット58
は、データ・キャッシュ・アクセスの発生を待っている
間、ノー・オペレーション・ループを実行する(ステッ
プ78)。アクセスが発生すると、制御ユニット58
は、そのアクセスがタグ・ヒットかタグ・ミスヒットか
を示す制御信号をタグ・アレイ42から受け取る(ステ
ップ80)。(前述の通り、制御ユニット58は、ウェ
イの割振りに関連しない他の機能を実行する。)アクセ
スの結果、ヒットが発生すると、制御ユニット58は、
ヒットされたウェイが現在では新しい最新使用ウェイに
なっていること、前の最新使用項目が現在では新しい2
番目の最新使用ウェイになっていることなどを反映する
ように、選択されたセットのLRU項目を更新する(ス
テップ82)。アクセスの結果、ミスヒットが発生する
と、制御ユニット58は、選択されたセット内の任意の
ウェイが無効かどうかを判定する(ステップ84)。ウ
ェイの1つが無効であれば、制御ユニット58は、その
無効ウェイを割り振る(ステップ86)。また、制御ユ
ニット58は、割振り済みウェイが現在では最新使用ウ
ェイになっていること、前の最新使用項目が現在では新
しい2番目のウェイになっていることなどを反映するよ
うに、選択されたセットのLRU項目も更新する(ステ
ップ86)。どのウェイも無効でなければ、制御ユニッ
ト58は、LRUウェイが割り振られているかどうかを
判定する(ステップ88)。LRUウェイが割り振られ
ていない場合、制御ユニット58は、LRUウェイを割
り振る(ステップ90)。制御ユニット58は、割振り
済みウェイが現在では最新使用ウェイになっているこ
と、前の最新使用項目が現在では新しい第2最新使用ウ
ェイになっていることなどを反映するため、選択された
セットのLRU項目も更新する(ステップ90)。LR
Uウェイがすでに割り振られている場合、制御ユニット
58は、データを要求する実行ユニットに対し、それが
使用中であることを示す制御信号をアサートする。その
場合、要求側の実行ユニットは後で要求を再試行しなけ
ればならない(ステップ92)。
【0035】図示の実施例では、使用中の制御信号をア
サートする前にLRUウェイが割り振られていないかど
うかのみを判定することに留意されたい。この設計を選
択したのは、予想されるデータ・キャッシュの用途と設
計の単純化との妥協の結果である。開示された発明の他
の実施例では、使用中の制御信号をアサートする前に第
2最新使用ウェイ、第3最新使用ウェイなどが割り振ら
れていないかどうかを判定してもよい。
【0036】図4は、図1に示すデータ処理装置によっ
て実行されるデータ整合性プロトコルを表形式で示して
いる。このデータ整合性プロトコルは、データ・キャッ
シュ16内のすべてのキャッシュ・ラインに対し、
(1)排他変更済み("M")、(2)排他未変更("
E")、(3)共用("S")、(4)無効("I")、
(5)割振り済み("A")の5つのデータ状態の1つを
特性として与える。上記の(1)〜(4)の状態は、"
MESI"(「メッシー」と読む)プロトコルと呼ばれ
るプロトコルを定義するものである。排他変更済み状態
は、キャッシュ・ライン・データの有効なデータがデー
タ・キャッシュ16に収容されており、データ・キャッ
シュ16がデータ処理システム内でそのデータに対する
排他的所有権を有することを示す。また、排他変更済み
状態は、データ処理システムのメイン・メモリに関連し
てキャッシュ・ラインが修正または変更されていること
も示す。排他未変更状態は、データ・キャッシュ16が
キャッシュ・ライン・データの有効なデータを有し、デ
ータ処理システム内でそのデータに対する排他的所有権
を有することを示す。共用状態は、データ・キャッシュ
16がキャッシュ・ライン・データの有効なコピーを有
するが、データ処理システム内でそのデータが他のデー
タ処理装置と共用されることを示す。無効状態は、デー
タ・キャッシュ16がキャッシュ・ラインの有効なコピ
ーを持っていないことを示す。割振り済み状態は、デー
タ・キャッシュ16がキャッシュ・ラインの有効なコピ
ーを持っていないが、メイン・メモリがそのデータを返
したときにキャッシュ・ラインを格納するために特定の
ウェイをすでに予約してあることを示す。
【0037】4通りのMESI状態と割振り済み状態
は、状況アレイ44に格納され、各キャッシュ・ライン
ごとに、変更済みビット("M")、共用ビット("
S")、有効ビット("V")という3つの状況ビットに
よって符号化される。図4に示すように、無効状態は、
有効ビットがセットされていないキャッシュ・ラインで
あると定義される。排他未変更状態は、変更済みビット
がセットされず、共用ビットがセットされず、有効ビッ
トがセットされたものとして定義される。共用状態は、
変更済みビットがセットされず、共用ビットがセットさ
れ、有効ビットがセットされたものとして定義される。
排他変更済み状態は、有効ビットがセットされ、共用ビ
ットがセットされず、変更済みビットがセットされたも
のとして定義される。割振り済み状態は、有効ビットが
セットされず、共用ビットと変更済みビットの両方がセ
ットされたものとして定義される。
【0038】図4に示す符号化方式には、高速データ処
理装置の設計との互換性を維持するための特徴がいくつ
かある。どのキャッシュ・ラインにもデータ処理システ
ム内で共用(Sがハイに設定される)と変更済み(Mが
ハイに設定される)の両方のマークを付けることはでき
ないので、割振り済み状態は他の許容されるMESI状
態の1つとの区別が容易である。また、有効ビットがク
リアされるので、正規のデータ・キャッシュ・アクセス
中に割振り済みキャッシュ・ラインが無視される。外部
スヌープ・アクセス中にキャッシュ・ラインの状況を変
更しなければならないかどうかを判定するために、制御
ユニット58は有効ビットを復号するだけでよい。2つ
の無効状態では、変更済みビットまたは共用ビットのい
ずれか一方だけが論理状態ゼロになる必要がある。所与
のキャッシュ・ライン・ミスヒット要求では、データ処
理システムの操作のために、BIU12によって開始さ
れた未解決のアクセスを取り消す必要がある。データ・
キャッシュ16が、要求されたキャッシュ・ライン用と
して1つのウェイをすでに割り振っている場合、BIU
12は、操作が取り消されたので予約済みの位置をクリ
アするためにデータ・キャッシュ16に信号を送出しな
ければならない。このような処理は、変更済みビットま
たは共用ビットのいずれか一方をクリアするだけで容易
に達成することができる。
【0039】図5ないし図11は、図1に示すデータ処
理装置によって実行されるデータ整合性プロトコルの状
態遷移図である。図示のデータ・プロトコルは、上記の
データ状態を変更するすべての外部バス・トランザクシ
ョンを、(1)クリーン、(2)フラッシュ、(3)抹
消、(4)読取り(外部)、(5)書込み(外部)の5
つの操作の1つとして特徴づけるものである。また、図
示のデータ・プロトコルは、上記のデータ状態を変更す
るすべての内部データ処理装置トランザクションを、
(1)読取りヒット(内部)、(2)読取りミスヒット
(内部)、(3)書込みヒット(内部)、(4)書込み
ミスヒット(内部)の4つの操作の1つとしても特徴づ
ける。
【0040】図5は、MESIデータ整合性プロトコル
におけるクリーン操作の状態図である。クリーン操作と
して特徴づけられたバス・トランザクションは、データ
処理システム内のすべてのデータ処理装置に対して、変
更済みデータをメイン・メモリ・システムにコピーして
戻すよう強制する。PowerPCアーキテクチャの命
令セットでは、データ処理装置10は、クリーン操作と
して特徴づけられた2つの命令、すなわち、クリーンお
よびキャッシュする意図のない読取りをスヌープする。
データ処理装置10がクリーン操作に対応するトランザ
クション・タイプ信号を外部装置から受け取り、そこに
識別済みデータが含まれている場合、データ処理装置1
0は、図5に従ってそのデータのデータ状態を変更す
る。特に、スヌープ・データのデータ状態が排他変更済
みである場合、データ処理装置10は、外部装置のトラ
ンザクションを遅延させて、外部装置に対して制御信号
をアサートする。データ処理装置10は、次のアドレス
保有期間内にスヌープ・アドレスに関連するデータのコ
ピーをメイン・メモリに書き戻す。この手順は、スヌー
プ・コピーバック操作と呼ばれる。次に、データ処理装
置10は、スヌープ・データのデータ状態を排他変更済
みから排他未変更に変更する。スヌープ・データのデー
タ状態が無効、共用、または排他未変更である場合、デ
ータ処理装置10は何も実行しない(ノー・オペレーシ
ョン、すなわち、NOPとして示されている)。
【0041】図6は、MESIデータ整合性プロトコル
におけるフラッシュ操作の状態図である。フラッシュ操
作として特徴づけられたバス・トランザクションは、デ
ータ処理システム内のすべてのデータ処理装置に対し
て、変更済みデータをメイン・メモリ・システムにコピ
ーして戻し、スヌープ・データのコピーを無効にするよ
う強制する。PowerPCアーキテクチャの命令セッ
トでは、データ処理装置10は、フラッシュ操作として
特徴づけられた1つの命令、すなわち、フラッシュをス
ヌープする。データ処理装置10がフラッシュ操作に対
応するトランザクション・タイプ信号を外部装置から受
け取り、そこに識別済みデータが含まれている場合、デ
ータ処理装置10は、図6に従ってそのデータのデータ
状態を変更する。特に、スヌープ・データのデータ状態
が排他変更済みである場合、データ処理装置10は、外
部装置のトランザクションを遅延させて、外部装置に対
して制御信号をアサートする。データ処理装置10は、
次のアドレス保有期間内にスヌープ・アドレスに関連す
るデータのコピーをメイン・メモリに書き戻す。次に、
データ処理装置10は、スヌープ・データのデータ状態
を排他変更済みから無効に変更する。スヌープ・データ
のデータ状態が共用または排他未変更である場合、デー
タ処理装置10は、スヌープ・アドレスのデータ状態を
無効に変更する。スヌープ・データのデータ状態が無効
である場合、データ処理装置10は何も実行しない。
【0042】図7は、MESIデータ整合性プロトコル
における抹消操作の状態図である。抹消操作として特徴
づけられたバス・トランザクションは、データ処理シス
テム内のすべてのデータ処理装置に対して、スヌープ・
データを無効にするよう強制する。PowerPCアー
キテクチャの命令セットでは、データ処理装置10は、
抹消操作として特徴づけられた2つの命令、すなわち、
抹消および抹消付き書込みをスヌープする。データ処理
装置10が抹消操作に対応するトランザクション・タイ
プ信号を外部装置から受け取り、そこに識別済みデータ
が含まれている場合、データ処理装置10は、図7に従
ってそのデータのデータ状態を変更する。特に、スヌー
プ・データのデータ状態が排他変更済み、共用、または
排他未変更である場合、データ処理装置10は、スヌー
プ・データのデータ状態を無効に変更する。スヌープ・
データのデータ状態が無効である場合、データ処理装置
10は何も実行しない。
【0043】図8は、MESIデータ整合性プロトコル
における外部読取り操作の状態図である。読取り操作と
して特徴づけられたバス・トランザクションは、データ
処理システム内のすべてのデータ処理装置に対して、変
更済みデータをメイン・メモリ・システムにコピーして
戻し、スヌープ・データの所有権を解放するよう強制す
る。PowerPCアーキテクチャの命令セットでは、
データ処理装置10は、読取り操作として特徴づけられ
た2つの命令、すなわち、読取りおよびアトミック読取
りをスヌープする。データ処理装置10が読取り操作に
対応するトランザクション・タイプ信号を外部装置から
受け取り、そこに識別済みデータが含まれている場合、
データ処理装置10は、図8に従ってそのデータのデー
タ状態を変更する。特に、スヌープ・データのデータ状
態が排他変更済みである場合、データ処理装置10は、
外部装置のトランザクションを遅延させて、外部装置に
対して制御信号をアサートする。データ処理装置10
は、次のアドレス保有期間内にスヌープ・アドレスに関
連するデータのコピーをメイン・メモリに書き戻す。次
に、データ処理装置10は、スヌープ・データのデータ
状態を排他変更済みから共用に変更する。スヌープ・デ
ータのデータ状態が排他未変更である場合、データ処理
装置10は、スヌープ・アドレスのデータ状態を共用に
変更する。スヌープ・データのデータ状態が無効または
共用である場合、データ処理装置10は何も実行しな
い。
【0044】図9は、MESIデータ整合性プロトコル
における書込み操作の状態図である。書込み操作として
特徴づけられたバス・トランザクションは、データ処理
システム内のすべてのデータ処理装置に対して、変更済
みデータをメイン・メモリ・システムにコピーして戻
し、データのコピーを無効にするよう強制する。Pow
erPCアーキテクチャの命令セットでは、データ処理
装置10は、書込み操作として特徴づけられた4つの命
令、すなわち、変更する意図のある読取り、アトミック
変更する意図のある読取り、フラッシュ付き書込み、お
よびアトミック・フラッシュ付き書込みをスヌープす
る。データ処理装置10が書込み操作に対応するトラン
ザクション・タイプ信号を外部装置から受け取り、そこ
に識別済みデータが含まれている場合、データ処理装置
10は、図9に従ってそのデータのデータ状態を変更す
る。特に、スヌープ・データのデータ状態が排他変更済
みである場合、データ処理装置10は、外部装置のトラ
ンザクションを遅延させて、外部装置に対して制御信号
をアサートする。データ処理装置10は、次のアドレス
保有期間内にスヌープ・アドレスに関連するデータのコ
ピーをメイン・メモリに書き戻す。次に、データ処理装
置10は、スヌープ・データのデータ状態を排他変更済
みから無効に変更する。スヌープ・データのデータ状態
が共用または排他未変更である場合、データ処理装置1
0は、スヌープ・アドレスのデータ状態を無効に変更す
る。スヌープ・データのデータ状態が無効である場合、
データ処理装置10は何も実行しない。
【0045】図10は、MESIデータ整合性プロトコ
ルにおける内部読取りミスヒット操作および内部書込み
ミスヒット操作の状態図である。データ処理装置10
は、内部読取りミスヒット操作および内部書込みミスヒ
ット操作を実行するときにデータ処理システム内の他の
装置に外部読取りおよび外部書込みトランザクション・
タイプをそれぞれ伝送する。次に、外部装置は、図8お
よび図9に示す状態遷移図に従って動作する。
【0046】PowerPCアーキテクチャの命令セッ
トでは、データ処理装置10は、内部読取り操作として
特徴づけられた39通りの命令を実行する。このような
命令としては、様々なタイプのロード命令(LD)、デ
ータ・キャッシュ・ブロック・タッチ(DCBT)命
令、およびストア用データ・キャッシュ・ブロック・タ
ッチ(DCBTST)命令がある。データ処理装置10
が内部読取り操作として特徴づけられた命令を実行し、
そこにその命令のオペランド・データが含まれていない
(データ・キャッシュ・ミスヒット)場合、データ処理
装置10は、図10に従ってそのオペランド・データの
データ状態を変更する。特に、そのデータがメイン・メ
モリから返されると、データ処理装置10は、要求され
たデータを格納するためのウェイをまず選択する。デー
タ処理装置10は、割振り済みウェイの状態を排他変更
済み、排他未変更、共用、または無効から割振り済みに
変更する。セット内の未割振りウェイは、以前のデータ
状態(NOP)に維持される。メイン・メモリがデータ
・キャッシュ16に要求されたデータを返すと、データ
・キャッシュ16は、メモリのデータ状態をデータ処理
システムのオペレーティング・システムによって維持さ
れている通り、すなわち、排他未変更または共用のいず
れかとして記録する。前述の通り、データ処理装置10
はデータ要求を取り消すことができる。このような場
合、データ処理装置10は割振り済みというデータ状態
を無効に変更する。
【0047】PowerPCアーキテクチャの命令セッ
トでは、データ処理装置10は、内部書込み操作として
特徴づけられた32通りの命令を実行する。このような
命令としては、様々なタイプのストア命令(ST)およ
びデータ・キャッシュ・ブロック・ゼロ設定(DCB
Z)命令がある。データ処理装置10が内部書込み操作
として特徴づけられた命令を実行し、そこにその命令の
オペランド・データが含まれていない(データ・キャッ
シュ・ミスヒット)場合、データ処理装置10は、図1
0に従ってそのオペランド・データのデータ状態を変更
する。特に、そのデータがメイン・メモリから返される
と、データ処理装置10は、要求されたデータを格納す
るためのウェイをまず選択する。データ処理装置10
は、割振り済みウェイの状態を排他変更済み、排他未変
更、共用、または無効から割振り済みに変更する。セッ
ト内の未割振りウェイは、以前のデータ状態(NOP)
に維持される。メイン・メモリがデータ・キャッシュ1
6に要求されたデータを返すと、データ・キャッシュ1
6は、排他変更済みというデータ状態を割振り済みウェ
イに書き込む。前述の通り、データ処理装置10はデー
タ要求を取り消すことができる。このような場合、デー
タ処理装置10は割振り済みというデータ状態を無効に
変更する。
【0048】図11は、MESIデータ整合性プロトコ
ルにおける内部読取りヒット操作および内部書込みヒッ
ト操作の状態図である。データ処理装置10は、共用デ
ータ・ラインへの内部書込みヒット操作を実行する際に
データ処理システム内の他の装置に外部読取りおよび外
部書込みトランザクション・タイプを伝送する。次に、
外部装置は、図9および図10に示す状態遷移図に従っ
て動作する。
【0049】データ処理装置10は、内部読取りミスヒ
ット操作および内部書込みミスヒット操作として特徴づ
けたのと同じ命令を、内部読取りヒット操作および内部
書込みヒット操作としてそれぞれ特徴づける。しかし、
内部ヒット操作の場合、命令のオペランド・データはデ
ータ・キャッシュ16に収容される。
【0050】データ処理装置10が内部読取りヒット操
作として特徴づけられた命令を実行する場合、データ処
理装置10は、図11に従ってそのオペランド・データ
のデータ状態を変更する。特に、オペランド・データの
データ状態が共用、排他未変更、または排他変更済みで
ある場合、データ処理装置10は何も実行しない。
【0051】データ処理装置10が内部書込みヒット操
作として特徴づけられた命令を実行する場合、データ処
理装置10は、図11に従ってそのオペランド・データ
のデータ状態を変更する。特に、オペランド・データの
データ状態が共用または排他未変更である場合、データ
処理装置10は、オペランド・データのデータ状態を排
他変更済みに変更する。オペランド・データのデータ状
態が排他変更済みである場合は、データ処理装置10は
何も実行しない。
【0052】具体的な実施例に関連して本発明を説明し
てきたが、当業者は、他の変更態様および改良態様を思
いつくだろう。たとえば、開示された発明は、複雑命令
セット・コンピュータ、すなわちCISCマシンとして
従来分類されているデータ処理装置に取り入れることも
できる。また、所与の実施例で所与の機能ユニットを省
略したり、所与の機能ユニットをデータ処理装置10の
他の領域に再配置することもできる。このため、本発明
は、特許請求の範囲で定義する本発明の精神および範囲
から逸脱しないこのような変更態様をすべて包含するこ
とに留意されたい。
【0053】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0054】(1)要求されたキャッシュ・ラインのア
ドレスを生成する実行ユニットと、実行ユニットに連結
されたメモリ・キャッシュを含むデータ処理装置であっ
て、該メモリ・キャッシュが、複数のセットを含み、複
数のセットのそれぞれが複数のウェイを含み、複数のウ
ェイのそれぞれが1つのキャッシュ・ラインと1つのタ
グを含み、キャッシュ・アレイが選択されたウェイの1
つのキャッシュ・ラインを出力し、選択されたウェイが
選択されたセットの複数のウェイのうちの1つであり、
選択されたウェイのタグが要求されたキャッシュ・ライ
ンのアドレスのサブセットと論理的に等価であり、選択
されたセットが複数のセットのうちの1つであり、選択
されたセットが要求されたキャッシュ・ラインのアドレ
スのサブセットに対する応答として選択される、キャッ
シュ・アレイと、キャッシュ・アレイに連結され、キャ
ッシュ・ライン・ミスヒットが発生した場合に、制御ユ
ニットが割振り済みウェイを選択し、割振り済みウェイ
が選択されたセットの複数のウェイのうちの1つであ
る、制御ユニットとを含む前記データ処理装置。 (2)データ・キャッシュの複数のウェイのそれぞれが
割振りビットを含み、制御ユニットが割振り済みウェイ
の割振りビットを第一の論理状態に設定することを特徴
とする、上記(1)に記載のデータ処理装置。 (3)実行ユニットおよびキャッシュ・アレイに連結さ
れた変換回路をさらに含み、変換回路がキャッシュ・ラ
インのアドレスのサブセットを実際のタグに変換し、選
択されたウェイのタグが実際のタグと論理的に等価であ
ることを特徴とする、上記(2)に記載のデータ処理装
置。 (4)制御ユニットが複数のセットの各セットごとに複
数の状況ビットを格納し、複数の状況ビットのそれぞれ
が複数のセットの各セット内の最低アクセス頻度ウェイ
を表すことを特徴とする、上記(3)に記載のデータ処
理装置。 (5)実行ユニットおよびキャッシュ・アレイに連結さ
れた変換回路をさらに含み、変換回路がキャッシュ・ラ
インのアドレスのサブセットを実際のタグに変換し、選
択されたウェイのタグが実際のタグと論理的に等価であ
ることを特徴とする、上記(1)に記載のデータ処理装
置。 (6)制御ユニットが複数のセットの各セットごとに複
数の状況ビットを格納し、複数の状況ビットのそれぞれ
が複数のセットの各セット内の最低アクセス頻度ウェイ
を表すことを特徴とする、上記(5)に記載のデータ処
理装置。 (7)制御ユニットが複数のセットの各セットごとに複
数の状況ビットを格納し、複数の状況ビットのそれぞれ
が複数のセットの各セット内の最低アクセス頻度ウェイ
を表すことを特徴とする、上記(1)に記載のデータ処
理装置。 (8)データ・キャッシュ内の要求されたデータ・ライ
ンの入力アドレスを受け取る第一の受取りステップと、
要求されたデータ・ラインがデータ・キャッシュ内に存
在しないと判定する第一の判定ステップと、データ・キ
ャッシュ内の記憶位置を割振り済みキャッシュ・ライン
として割り振るステップと、外部記憶装置からデータ・
ラインを要求するステップと、データ・キャッシュ内の
外部装置から要求されたデータ・ラインを受け取る第二
の受取りステップと、割振り済みキャッシュ・ラインに
要求されたデータ・ラインを格納するステップとを含
む、メモリ・キャッシュの動作方法。 (9)第一の判定ステップが、入力アドレスに対する応
答としてデータ・キャッシュの複数のセットから1つの
セット、すなわち選択されたセットを選択し、複数のセ
ットのそれぞれが複数のウェイを含み、複数のウェイの
それぞれがキャッシュ・ラインと1つのタグを含む第一
の選択ステップと、入力アドレスのサブセットと選択さ
れたセットのそれぞれのタグとを比較するステップとを
さらに含むことを特徴とする、上記(8)に記載の方
法。 (10)受け取った仮想アドレスの一部を入力アドレス
に変換するステップをさらに含むことを特徴とする、上
記(9)に記載の方法。 (11)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれかが無効であるかどうか、すなわ
ち、無効ウェイであるかどうかを判定する第二の判定ス
テップと、無効ウェイ、すなわち割振り済みキャッシュ
・ラインを選択する第二の選択ステップとを含むことを
特徴とする、上記(10)に記載の方法。 (12)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれも無効ではない、すなわち、LR
Uウェイではない場合に、選択されたセットのLRUウ
ェイを判定する第三の判定ステップと、LRUウェイが
前の割振りステップに対する応答として割り振られたキ
ャッシュ・ラインであるかどうか、すなわち、事前割振
り済みウェイであるかどうかを判定する第四の判定ステ
ップと、LRUウェイが事前割振り済みウェイではない
場合に、割振り済みキャッシュ・ラインとしてLRUウ
ェイを選択する第三の選択ステップとをさらに含むこと
を特徴とする、上記(11)に記載の方法。 (13)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれかが無効であるかどうか、すなわ
ち、無効ウェイであるかどうかを判定する第二の判定ス
テップと、無効ウェイ、すなわち、割振り済みキャッシ
ュ・ラインを選択する第二の選択ステップとを含むこと
を特徴とする、上記(8)に記載の方法。 (14)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれも無効ではない、すなわち、LR
Uウェイではない場合に、選択されたセットのLRUウ
ェイを判定する第三の判定ステップと、LRUウェイが
前の割振りステップに対する応答として割り振られたキ
ャッシュ・ラインであるかどうか、すなわち、事前割振
り済みウェイであるかどうかを判定する第四の判定ステ
ップと、LRUウェイが事前割振り済みウェイではない
場合に、割振り済みキャッシュ・ラインとしてLRUウ
ェイを選択する第三の選択ステップとをさらに含むこと
を特徴とする、上記(13)に記載の方法。 (15)要求されたデータ・ラインの入力アドレスを生
成するステップと、要求されたデータ・ラインがデータ
・キャッシュ内に存在しないと判定する第一の判定ステ
ップと、データ・キャッシュ内の記憶位置を割振り済み
キャッシュ・ラインとして割り振るステップと、データ
処理装置の外部にある記憶装置からデータ・ラインを要
求するステップと、データ・キャッシュ内の記憶装置か
ら要求されたデータ・ラインを受け取る第二の受取りス
テップと、割振り済みキャッシュ・ラインに要求された
データ・ラインを格納するステップとを含む、メモリ・
キャッシュを備えたデータ処理装置の動作方法。 (16)第一の判定ステップが、入力アドレスに対する
応答としてデータ・キャッシュの複数のセットから1つ
のセット、すなわち、選択されたセットを選択し、複数
のセットのそれぞれが複数のウェイを含み、複数のウェ
イのそれぞれがキャッシュ・ラインと1つのタグを含む
第一の選択ステップと、入力アドレスのサブセットと選
択されたセットのそれぞれのタグとを比較するステップ
とをさらに含むことを特徴とする、上記(15)に記載
の方法。 (17)受け取った仮想アドレスの一部を入力アドレス
に変換するステップをさらに含むことを特徴とする、上
記(16)に記載の方法。 (18)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれかが無効であるかどうか、すなわ
ち、無効ウェイであるかどうかを判定する第二の判定ス
テップと、無効ウェイ、すなわち、割振り済みキャッシ
ュ・ラインを選択する第二の選択ステップとを含むこと
を特徴とする、上記(17)に記載の方法。 (19)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれも無効ではない、すなわち、LR
Uウェイではない場合に、選択されたセットのLRUウ
ェイを判定する第三の判定ステップと、LRUウェイが
前の割振りステップに対する応答として割り振られたキ
ャッシュ・ラインであるかどうか、すなわち、事前割振
り済みウェイであるかどうかを判定する第四の判定ステ
ップと、LRUウェイが事前割振り済みウェイではない
場合に、割振り済みキャッシュ・ラインとしてLRUウ
ェイを選択する第三の選択ステップとをさらに含むこと
を特徴とする、上記(18)に記載の方法。 (20)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれかが無効であるかどうか、すなわ
ち無効ウェイであるかどうかを判定する第二の判定ステ
ップと、無効ウェイ、すなわち割振り済みキャッシュ・
ラインを選択する第二の選択ステップとを含むことを特
徴とする、上記(15)に記載の方法。 (21)割振りステップが、選択されたセットのキャッ
シュ・ラインのいずれも無効ではない、すなわち、LR
Uウェイではない場合に、選択されたセットのLRUウ
ェイを判定する第三の判定ステップと、LRUウェイが
前の割振りステップに対する応答として割り振られたキ
ャッシュ・ラインであるかどうか、すなわち事前割振り
済みウェイであるかどうかを判定する第四の判定ステッ
プと、LRUウェイが事前割振り済みウェイではない場
合に、割振り済みキャッシュ・ラインとしてLRUウェ
イを選択する第三の選択ステップとをさらに含むことを
特徴とする、上記(20)に記載の方法。
【図面の簡単な説明】
【図1】本発明により構築されたデータ処理装置のブロ
ック図である。
【図2】図1に示すデータ・キャッシュのブロック図で
ある。
【図3】ミスヒットの後で本発明が図2に示すデータ・
キャッシュ内の特定のウェイを選択する方法を示す流れ
図である。
【図4】図1に示すデータ処理装置によって実行される
データ整合性プロトコルを表形式で示す図である。
【図5】図1に示すデータ処理装置によって実行される
データ整合性プロトコルの状態遷移図である。
【図6】図1に示すデータ処理装置によって実行される
データ整合性プロトコルの状態遷移図である。
【図7】図1に示すデータ処理装置によって実行される
データ整合性プロトコルの状態遷移図である。
【図8】図1に示すデータ処理装置によって実行される
データ整合性プロトコルの状態遷移図である。
【図9】図1に示すデータ処理装置によって実行される
データ整合性プロトコルの状態遷移図である。
【図10】図1に示すデータ処理装置によって実行され
るデータ整合性プロトコルの状態遷移図である。
【図11】図1に示すデータ処理装置によって実行され
るデータ整合性プロトコルの状態遷移図である。
【符号の説明】
10 データ処理装置 12 バス・インタフェース・ユニット(BIU) 14 命令キャッシュ 16 データ・キャッシュ 18 シーケンサ・ユニット 20 ブランチ・ユニット 22 固定小数点実行ユニットA 24 固定小数点実行ユニットB 26 複合固定小数点実行ユニット 28 ロード/ストア実行ユニット 30 浮動小数点実行ユニット 32 汎用体系レジスタ・ファイル(GPRファイル) 34 第一の名前変更バッファ 36 浮動小数点体系レジスタ・ファイル(FPRファ
イル) 38 第二の名前変更バッファ
フロントページの続き (71)出願人 594083818 モトローラ・インコーポレイテッド アメリカ合衆国60196、イリノイ州シャー ムバーク、イースト・アルゴンクイン・ロ ード1303、サ−ド・フロワー (72)発明者 ジョーゼフ・ワイ・チャン アメリカ合衆国78613 テキサス州シーダ ーパーク メドウ・ラーク・ドライブ 1115 (72)発明者 ヒダーヤト・リウ アメリカ合衆国78613 テキサス州シーダ ーパーク リトル・エルム・トレール 2700 (72)発明者 ポール・エイ・リード アメリカ合衆国78737 テキサス州オース チン エル・ドラド・ドライブ 7839 (72)発明者 ブライアン・ジェイ・スナイダー アメリカ合衆国78759 テキサス州オース チン キャピタル・オブ・テキサス・ハイ ウェイ 8529 ナンバー2060

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】要求されたキャッシュ・ラインのアドレス
    を生成する実行ユニットと、 実行ユニットに連結されたメモリ・キャッシュを含むデ
    ータ処理装置であって、該メモリ・キャッシュが、 複数のセットを含み、複数のセットのそれぞれが複数の
    ウェイを含み、複数のウェイのそれぞれが1つのキャッ
    シュ・ラインと1つのタグを含み、キャッシュ・アレイ
    が選択されたウェイの1つのキャッシュ・ラインを出力
    し、選択されたウェイが選択されたセットの複数のウェ
    イのうちの1つであり、選択されたウェイのタグが要求
    されたキャッシュ・ラインのアドレスのサブセットと論
    理的に等価であり、選択されたセットが複数のセットの
    うちの1つであり、選択されたセットが要求されたキャ
    ッシュ・ラインのアドレスのサブセットに対する応答と
    して選択される、キャッシュ・アレイと、 キャッシュ・アレイに連結され、キャッシュ・ライン・
    ミスヒットが発生した場合に、制御ユニットが割振り済
    みウェイを選択し、割振り済みウェイが選択されたセッ
    トの複数のウェイのうちの1つである、制御ユニットと
    を含む前記データ処理装置。
  2. 【請求項2】データ・キャッシュの複数のウェイのそれ
    ぞれが割振りビットを含み、制御ユニットが割振り済み
    ウェイの割振りビットを第一の論理状態に設定すること
    を特徴とする、請求項1に記載のデータ処理装置。
  3. 【請求項3】実行ユニットおよびキャッシュ・アレイに
    連結された変換回路をさらに含み、変換回路がキャッシ
    ュ・ラインのアドレスのサブセットを実際のタグに変換
    し、選択されたウェイのタグが実際のタグと論理的に等
    価であることを特徴とする、請求項2に記載のデータ処
    理装置。
  4. 【請求項4】制御ユニットが複数のセットの各セットご
    とに複数の状況ビットを格納し、複数の状況ビットのそ
    れぞれが複数のセットの各セット内の最低アクセス頻度
    ウェイを表すことを特徴とする、請求項3に記載のデー
    タ処理装置。
  5. 【請求項5】実行ユニットおよびキャッシュ・アレイに
    連結された変換回路をさらに含み、変換回路がキャッシ
    ュ・ラインのアドレスのサブセットを実際のタグに変換
    し、選択されたウェイのタグが実際のタグと論理的に等
    価であることを特徴とする、請求項1に記載のデータ処
    理装置。
  6. 【請求項6】制御ユニットが複数のセットの各セットご
    とに複数の状況ビットを格納し、複数の状況ビットのそ
    れぞれが複数のセットの各セット内の最低アクセス頻度
    ウェイを表すことを特徴とする、請求項5に記載のデー
    タ処理装置。
  7. 【請求項7】制御ユニットが複数のセットの各セットご
    とに複数の状況ビットを格納し、複数の状況ビットのそ
    れぞれが複数のセットの各セット内の最低アクセス頻度
    ウェイを表すことを特徴とする、請求項1に記載のデー
    タ処理装置。
  8. 【請求項8】データ・キャッシュ内の要求されたデータ
    ・ラインの入力アドレスを受け取る第一の受取りステッ
    プと、 要求されたデータ・ラインがデータ・キャッシュ内に存
    在しないと判定する第一の判定ステップと、 データ・キャッシュ内の記憶位置を割振り済みキャッシ
    ュ・ラインとして割り振るステップと、 外部記憶装置からデータ・ラインを要求するステップ
    と、 データ・キャッシュ内の外部装置から要求されたデータ
    ・ラインを受け取る第二の受取りステップと、 割振り済みキャッシュ・ラインに要求されたデータ・ラ
    インを格納するステップとを含む、メモリ・キャッシュ
    の動作方法。
  9. 【請求項9】第一の判定ステップが、 入力アドレスに対する応答としてデータ・キャッシュの
    複数のセットから1つのセット、すなわち選択されたセ
    ットを選択し、複数のセットのそれぞれが複数のウェイ
    を含み、複数のウェイのそれぞれがキャッシュ・ライン
    と1つのタグを含む第一の選択ステップと、 入力アドレスのサブセットと選択されたセットのそれぞ
    れのタグとを比較するステップとをさらに含むことを特
    徴とする、請求項8に記載の方法。
  10. 【請求項10】受け取った仮想アドレスの一部を入力ア
    ドレスに変換するステップをさらに含むことを特徴とす
    る、請求項9に記載の方法。
  11. 【請求項11】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれかが無
    効であるかどうか、すなわち、無効ウェイであるかどう
    かを判定する第二の判定ステップと、 無効ウェイ、すなわち割振り済みキャッシュ・ラインを
    選択する第二の選択ステップとを含むことを特徴とす
    る、請求項10に記載の方法。
  12. 【請求項12】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれも無効
    ではない、すなわち、LRUウェイではない場合に、選
    択されたセットのLRUウェイを判定する第三の判定ス
    テップと、 LRUウェイが前の割振りステップに対する応答として
    割り振られたキャッシュ・ラインであるかどうか、すな
    わち、事前割振り済みウェイであるかどうかを判定する
    第四の判定ステップと、 LRUウェイが事前割振り済みウェイではない場合に、
    割振り済みキャッシュ・ラインとしてLRUウェイを選
    択する第三の選択ステップとをさらに含むことを特徴と
    する、請求項11に記載の方法。
  13. 【請求項13】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれかが無
    効であるかどうか、すなわち、無効ウェイであるかどう
    かを判定する第二の判定ステップと、 無効ウェイ、すなわち、割振り済みキャッシュ・ライン
    を選択する第二の選択ステップとを含むことを特徴とす
    る、請求項8に記載の方法。
  14. 【請求項14】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれも無効
    ではない、すなわち、LRUウェイではない場合に、選
    択されたセットのLRUウェイを判定する第三の判定ス
    テップと、 LRUウェイが前の割振りステップに対する応答として
    割り振られたキャッシュ・ラインであるかどうか、すな
    わち、事前割振り済みウェイであるかどうかを判定する
    第四の判定ステップと、 LRUウェイが事前割振り済みウェイではない場合に、
    割振り済みキャッシュ・ラインとしてLRUウェイを選
    択する第三の選択ステップとをさらに含むことを特徴と
    する、請求項13に記載の方法。
  15. 【請求項15】要求されたデータ・ラインの入力アドレ
    スを生成するステップと、 要求されたデータ・ラインがデータ・キャッシュ内に存
    在しないと判定する第一の判定ステップと、 データ・キャッシュ内の記憶位置を割振り済みキャッシ
    ュ・ラインとして割り振るステップと、 データ処理装置の外部にある記憶装置からデータ・ライ
    ンを要求するステップと、 データ・キャッシュ内の記憶装置から要求されたデータ
    ・ラインを受け取る第二の受取りステップと、 割振り済みキャッシュ・ラインに要求されたデータ・ラ
    インを格納するステップとを含む、メモリ・キャッシュ
    を備えたデータ処理装置の動作方法。
  16. 【請求項16】第一の判定ステップが、 入力アドレスに対する応答としてデータ・キャッシュの
    複数のセットから1つのセット、すなわち、選択された
    セットを選択し、複数のセットのそれぞれが複数のウェ
    イを含み、複数のウェイのそれぞれがキャッシュ・ライ
    ンと1つのタグを含む第一の選択ステップと、 入力アドレスのサブセットと選択されたセットのそれぞ
    れのタグとを比較するステップとをさらに含むことを特
    徴とする、請求項15に記載の方法。
  17. 【請求項17】受け取った仮想アドレスの一部を入力ア
    ドレスに変換するステップをさらに含むことを特徴とす
    る、請求項16に記載の方法。
  18. 【請求項18】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれかが無
    効であるかどうか、すなわち、無効ウェイであるかどう
    かを判定する第二の判定ステップと、 無効ウェイ、すなわち、割振り済みキャッシュ・ライン
    を選択する第二の選択ステップとを含むことを特徴とす
    る、請求項17に記載の方法。
  19. 【請求項19】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれも無効
    ではない、すなわち、LRUウェイではない場合に、選
    択されたセットのLRUウェイを判定する第三の判定ス
    テップと、 LRUウェイが前の割振りステップに対する応答として
    割り振られたキャッシュ・ラインであるかどうか、すな
    わち、事前割振り済みウェイであるかどうかを判定する
    第四の判定ステップと、 LRUウェイが事前割振り済みウェイではない場合に、
    割振り済みキャッシュ・ラインとしてLRUウェイを選
    択する第三の選択ステップとをさらに含むことを特徴と
    する、請求項18に記載の方法。
  20. 【請求項20】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれかが無
    効であるかどうか、すなわち無効ウェイであるかどうか
    を判定する第二の判定ステップと、 無効ウェイ、すなわち割振り済みキャッシュ・ラインを
    選択する第二の選択ステップとを含むことを特徴とす
    る、請求項15に記載の方法。
  21. 【請求項21】割振りステップが、 選択されたセットのキャッシュ・ラインのいずれも無効
    ではない、すなわち、LRUウェイではない場合に、選
    択されたセットのLRUウェイを判定する第三の判定ス
    テップと、 LRUウェイが前の割振りステップに対する応答として
    割り振られたキャッシュ・ラインであるかどうか、すな
    わち事前割振り済みウェイであるかどうかを判定する第
    四の判定ステップと、 LRUウェイが事前割振り済みウェイではない場合に、
    割振り済みキャッシュ・ラインとしてLRUウェイを選
    択する第三の選択ステップとをさらに含むことを特徴と
    する、請求項20に記載の方法。
JP7009106A 1994-01-31 1995-01-24 データ処理装置及びメモリ・キャッシュの動作方法 Expired - Lifetime JP2713332B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18898794A 1994-01-31 1994-01-31
US188987 1994-01-31

Publications (2)

Publication Number Publication Date
JPH07311711A true JPH07311711A (ja) 1995-11-28
JP2713332B2 JP2713332B2 (ja) 1998-02-16

Family

ID=22695424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7009106A Expired - Lifetime JP2713332B2 (ja) 1994-01-31 1995-01-24 データ処理装置及びメモリ・キャッシュの動作方法

Country Status (3)

Country Link
US (1) US5765199A (ja)
JP (1) JP2713332B2 (ja)
TW (1) TW243509B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008155833A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US7805576B2 (en) 2006-08-17 2010-09-28 Fujitsu Limited Information processing system, information processing board, and method of updating cache tag and snoop tag
JP2015503160A (ja) * 2011-11-30 2015-01-29 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 物理的な行に共に記憶されたタグ及びデータを有するdramキャッシュ

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923898A (en) * 1997-05-14 1999-07-13 International Business Machines Corporation System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched
GB2385174B (en) 1999-01-19 2003-11-26 Advanced Risc Mach Ltd Memory control within data processing systems
US6385696B1 (en) * 1999-06-25 2002-05-07 Intel Corporation Embedded cache with way size bigger than page size
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US6405287B1 (en) * 1999-11-17 2002-06-11 Hewlett-Packard Company Cache line replacement using cache status to bias way selection
EP1275045A4 (en) * 2000-02-25 2005-12-21 Sun Microsystems Inc APPARATUS AND METHOD FOR MAINTAINING HIGH CAPACITY TRAFFIC FILTERING AND CACHE DATA EXPEDITION PREVENTION DURING ATOMIC OPERATION
US6745297B2 (en) * 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US6732236B2 (en) * 2000-12-18 2004-05-04 Redback Networks Inc. Cache retry request queue
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US7100001B2 (en) * 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US7464227B2 (en) * 2002-12-10 2008-12-09 Intel Corporation Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US20040153611A1 (en) * 2003-02-04 2004-08-05 Sujat Jamil Methods and apparatus for detecting an address conflict
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7996619B2 (en) * 2004-04-22 2011-08-09 Intel Corporation K-way direct mapped cache
US20080288725A1 (en) * 2007-05-14 2008-11-20 Moyer William C Method and apparatus for cache transactions in a data processing system
KR20120060278A (ko) * 2010-12-01 2012-06-12 한국전자통신연구원 이미지 시그널 프로세서의 자동 밝기 조절 방법 및 장치
US11367500B2 (en) 2019-12-20 2022-06-21 Taiwan Semiconductor Manufacturing Company, Ltd. Method for LUT-free memory repair
DE102020120488A1 (de) * 2019-12-20 2021-06-24 Taiwan Semiconductor Manufacturing Co. Ltd. Verfahren zur nachschlagtabellenfreien speicherreperatur
TWI760702B (zh) * 2020-03-03 2022-04-11 瑞昱半導體股份有限公司 資料寫入系統與方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910656A (en) * 1987-09-21 1990-03-20 Motorola, Inc. Bus master having selective burst initiation
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
US4977498A (en) * 1988-04-01 1990-12-11 Digital Equipment Corporation Data processing system having a data memory interlock coherency scheme
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5276835A (en) * 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
JPH05257899A (ja) * 1992-02-19 1993-10-08 Nec Corp キャッシュメモリユニット
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US5479641A (en) * 1993-03-24 1995-12-26 Intel Corporation Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
US5550995A (en) * 1994-01-03 1996-08-27 Motorola, Inc. Memory cache with automatic alliased entry invalidation and method of operation

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805576B2 (en) 2006-08-17 2010-09-28 Fujitsu Limited Information processing system, information processing board, and method of updating cache tag and snoop tag
WO2008155833A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JPWO2008155833A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP4710024B2 (ja) * 2007-06-20 2011-06-29 富士通株式会社 キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US8677070B2 (en) 2007-06-20 2014-03-18 Fujitsu Limited Cache memory control apparatus and cache memory control method
JP2015503160A (ja) * 2011-11-30 2015-01-29 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 物理的な行に共に記憶されたタグ及びデータを有するdramキャッシュ
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows

Also Published As

Publication number Publication date
TW243509B (en) 1995-03-21
US5765199A (en) 1998-06-09
JP2713332B2 (ja) 1998-02-16

Similar Documents

Publication Publication Date Title
US11372777B2 (en) Memory interface between physical and virtual address spaces
JPH07311711A (ja) データ処理装置とその動作方法及びメモリ・キャッシュ動作方法
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
US7194597B2 (en) Method and apparatus for sharing TLB entries
US6728858B2 (en) Method and apparatus including heuristic for sharing TLB entries
US11734177B2 (en) Memory interface having multiple snoop processors
US7213248B2 (en) High speed promotion mechanism suitable for lock acquisition in a multiprocessor data processing system
US11914514B2 (en) Data coherency manager with mapping between physical and virtual address spaces
US7284094B2 (en) Mechanism and apparatus allowing an N-way set associative cache, implementing a hybrid pseudo-LRU replacement algorithm, to have N L1 miss fetch requests simultaneously inflight regardless of their congruence class
WO2010132655A2 (en) Cache coherent support for flash in a memory hierarchy
JPH0612327A (ja) キャッシュメモリを有するデータプロセッサ
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
KR19990072593A (ko) 캐시갱신프로토콜을이용한캐시할당해제방법및데이터처리시스템
US6950909B2 (en) System and method for reducing contention in a multi-sectored cache
KR100308675B1 (ko) 캐쉬어드레스발생방법
US5636354A (en) Data processor with serially accessed set associative memory cache interface and method
TWI723069B (zh) 用於在多個快取層級之間的共用最近最少使用(lru)策略的設備及方法
US6397300B1 (en) High performance store instruction management via imprecise local cache update mechanism
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
US5895486A (en) Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
US6385694B1 (en) High performance load instruction management via system bus with explicit register load and/or cache reload protocols
US8108624B2 (en) Data cache with modified bit array