JPH10133947A - 統合されたプロセッサ・メモリ装置 - Google Patents
統合されたプロセッサ・メモリ装置Info
- Publication number
- JPH10133947A JPH10133947A JP9187285A JP18728597A JPH10133947A JP H10133947 A JPH10133947 A JP H10133947A JP 9187285 A JP9187285 A JP 9187285A JP 18728597 A JP18728597 A JP 18728597A JP H10133947 A JPH10133947 A JP H10133947A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- bank
- victim
- main memory
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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)【要約】
【課題】 ヴィクティム・データ・キャッシュを有する
統合されたプロセッサ・メモリ装置を提供する。 【解決手段】 統合されたプロセッサ・メモリ装置は、
主メモリと、CPUと、ヴィクティムキャッシュと、一
次キャッシュとを備える。主メモリは主メモリバンクを
備えている。CPUによってメイン・メモリのアドレス
空間におけるアドレスが送出されると、ヴィクティム・
キャッシュ・ストレージにおいてヴィクティム・キャッ
シュ・ヒット又はヴィクティム・キャッシュ・ミスの何
れが生じたかを決定し、ヴィクティム・キャッシュ・ミ
スのときは、ヴィクティム・キャッシュ・ストレージに
おけるヴィクティム・キャッシュ・サブラインから選択
したヴィクティム・キャッシュ・サブラインを、新しい
ヴィクティム・キャッシュ・サブラインと置き換える。
統合されたプロセッサ・メモリ装置を提供する。 【解決手段】 統合されたプロセッサ・メモリ装置は、
主メモリと、CPUと、ヴィクティムキャッシュと、一
次キャッシュとを備える。主メモリは主メモリバンクを
備えている。CPUによってメイン・メモリのアドレス
空間におけるアドレスが送出されると、ヴィクティム・
キャッシュ・ストレージにおいてヴィクティム・キャッ
シュ・ヒット又はヴィクティム・キャッシュ・ミスの何
れが生じたかを決定し、ヴィクティム・キャッシュ・ミ
スのときは、ヴィクティム・キャッシュ・ストレージに
おけるヴィクティム・キャッシュ・サブラインから選択
したヴィクティム・キャッシュ・サブラインを、新しい
ヴィクティム・キャッシュ・サブラインと置き換える。
Description
【0001】
【発明の属する技術分野】本発明は、一般にオンチップ
のキャッシュとオンチップのメイン・メモリを有する統
合されたプロセッサ・メモリ(P/M)装置に係り、特
にオンチップ・データ・キャッシュ、オンチップ・ヴィ
クティム・データ・キャッシュおよび御チップ・メイン
・メモリを有するP/M装置に関する。
のキャッシュとオンチップのメイン・メモリを有する統
合されたプロセッサ・メモリ(P/M)装置に係り、特
にオンチップ・データ・キャッシュ、オンチップ・ヴィ
クティム・データ・キャッシュおよび御チップ・メイン
・メモリを有するP/M装置に関する。
【0002】
【従来の技術】従来プロセッサとメモリ装置の開発は別
々に進められて来た。プロセス技術、回路設計及び集積
チップ(IC)体系の進歩によって、プロセッサの速度
とメモリの容量は指数関数的に増大した。しかし、メモ
リ装置の遅延は劇的には改善されず、アクセス・タイム
はますますプロセッサの性能に対する制限要因となって
きつつある。このことは、メモリの壁として知られてい
る問題であり、ウィリアム・A・ウルフ(William A. w
ulf)及びサリー・A・マッキー(Sally A. Mckee)に
よる「メモリの壁の打開:明白なものとの関連」(Hitt
ing the Memory Wall: Implication of the Obviou
s),ACMコンピュータ・アーキテクチャー・ニュー
スVol.23, No. 1,1995年3月,に詳細に記載
されており、参照により明細書に組み込まれるものとす
る。
々に進められて来た。プロセス技術、回路設計及び集積
チップ(IC)体系の進歩によって、プロセッサの速度
とメモリの容量は指数関数的に増大した。しかし、メモ
リ装置の遅延は劇的には改善されず、アクセス・タイム
はますますプロセッサの性能に対する制限要因となって
きつつある。このことは、メモリの壁として知られてい
る問題であり、ウィリアム・A・ウルフ(William A. w
ulf)及びサリー・A・マッキー(Sally A. Mckee)に
よる「メモリの壁の打開:明白なものとの関連」(Hitt
ing the Memory Wall: Implication of the Obviou
s),ACMコンピュータ・アーキテクチャー・ニュー
スVol.23, No. 1,1995年3月,に詳細に記載
されており、参照により明細書に組み込まれるものとす
る。
【0003】階層化されたキャッシュを介して外部のオ
フチップのメイン・メモリにインターフェースする複雑
なスーパー・スカラー中央処理装置(CPU)を用いる
現在の高性能プロセッサは特にこのメモリの壁の問題に
影響される。事実、このCPU中心の設計方法ではCP
Uとメモリとの間の速度のギャップを埋めるのに多大な
電力とチップ領域を必要とする。
フチップのメイン・メモリにインターフェースする複雑
なスーパー・スカラー中央処理装置(CPU)を用いる
現在の高性能プロセッサは特にこのメモリの壁の問題に
影響される。事実、このCPU中心の設計方法ではCP
Uとメモリとの間の速度のギャップを埋めるのに多大な
電力とチップ領域を必要とする。
【0004】かかるメモリの壁の問題の解決の努力は、
数段階のキャッシュをメモリ・システムに追加して、小
型で高速なスタティック・ランダム・アクセス・メモリ
(SRAM)によりCPUに低遅延でデータを与えるよ
うにすることによって行われている。プリフェッチや適
切なコード・スケジュールのような遅延隠しの技術と組
み合わせることによって、キャッシュが十分活用できる
局所性を持つアプリケーションに対しては高性能プロセ
ッサを妥当な効率で動作させることが可能である。しか
し、キャッシュにうまく適合するアプリケーションにつ
いては劇的なパフォーマンスを達成するけれども、これ
らのプロセッサはますますアプリケーションに対する依
存性が高くなってしまった。例えば、CADプログラ
ム、データベース・アプリケーションあるいは科学技術
アプリケーションは、しばしばCPUベースの高速度の
期待から大きくはずれることがある。
数段階のキャッシュをメモリ・システムに追加して、小
型で高速なスタティック・ランダム・アクセス・メモリ
(SRAM)によりCPUに低遅延でデータを与えるよ
うにすることによって行われている。プリフェッチや適
切なコード・スケジュールのような遅延隠しの技術と組
み合わせることによって、キャッシュが十分活用できる
局所性を持つアプリケーションに対しては高性能プロセ
ッサを妥当な効率で動作させることが可能である。しか
し、キャッシュにうまく適合するアプリケーションにつ
いては劇的なパフォーマンスを達成するけれども、これ
らのプロセッサはますますアプリケーションに対する依
存性が高くなってしまった。例えば、CADプログラ
ム、データベース・アプリケーションあるいは科学技術
アプリケーションは、しばしばCPUベースの高速度の
期待から大きくはずれることがある。
【0005】更に、CPU中心の設計方式によって、深
いパイプラインを有する非常に複雑なスーパー・スカラ
ー・プロセッサがもたらされた。順不同実行やレジスタ
・スコアボード等の複雑さの多くはメモリ・システムの
遅延隠しのためである。さらに、これらのプロセッサは
外部のメイン・メモリと通信するためにキャッシュ、コ
ントローラおよびデータ・パスに関する膨大なサポート
・ロジックを必要とする。これによって、コスト、消費
電力及び設計の複雑さがかなり増大する。
いパイプラインを有する非常に複雑なスーパー・スカラ
ー・プロセッサがもたらされた。順不同実行やレジスタ
・スコアボード等の複雑さの多くはメモリ・システムの
遅延隠しのためである。さらに、これらのプロセッサは
外部のメイン・メモリと通信するためにキャッシュ、コ
ントローラおよびデータ・パスに関する膨大なサポート
・ロジックを必要とする。これによって、コスト、消費
電力及び設計の複雑さがかなり増大する。
【0006】スーパー・スカラー・プロセッサを完全に
利用するためには、大きなメモリ・システムが必要であ
る。この結果、CPUとメイン・メモリの間の距離が長
くなるというボトルネックが生ずることになる。特に、
パッケージングや接続制限事項によって、利用可能なメ
モリ帯域幅を減少させるインターフェース及びチップ境
界が増加してしまう。
利用するためには、大きなメモリ・システムが必要であ
る。この結果、CPUとメイン・メモリの間の距離が長
くなるというボトルネックが生ずることになる。特に、
パッケージングや接続制限事項によって、利用可能なメ
モリ帯域幅を減少させるインターフェース及びチップ境
界が増加してしまう。
【0007】しかし、プロセッサとメモリ装置を統合す
ることによって、CPU中心の設計方式の問題の大半が
避けられる。更に、そうすることによって、単一チップ
設計の技術的制約を効果的に補償する多くの利点が生ず
る。
ることによって、CPU中心の設計方式の問題の大半が
避けられる。更に、そうすることによって、単一チップ
設計の技術的制約を効果的に補償する多くの利点が生ず
る。
【0008】
【発明が解決しようとする課題】特に、CPU中心のプ
ロセッサ設計においては、命令とキャッシュ・ラインの
幅はメイン・メモリの幅よりもかなり狭い。これは主と
して、オフチップのメイン・メモリからこれらのキャッ
シュ・ラインにフィルするための時間によってプロセッ
サのメモリ・インターフェースで厳しい2次衝突効果(s
econd order contention effects)が生ずるためであ
る。この結果、このような全幅より小さな幅のキャッシ
ュでは、命令とデータ・スリームに関してしばしば高い
空間的局所性の利点を活用できない。
ロセッサ設計においては、命令とキャッシュ・ラインの
幅はメイン・メモリの幅よりもかなり狭い。これは主と
して、オフチップのメイン・メモリからこれらのキャッ
シュ・ラインにフィルするための時間によってプロセッ
サのメモリ・インターフェースで厳しい2次衝突効果(s
econd order contention effects)が生ずるためであ
る。この結果、このような全幅より小さな幅のキャッシ
ュでは、命令とデータ・スリームに関してしばしば高い
空間的局所性の利点を活用できない。
【0009】1996年7月1日に出願されたAshley S
aulsbury, Andreas Nowatzyk, FongPong により発明さ
れた「全幅キャッシュを有する統合されたプロセッサ・
メモリ装置」と題する米国特許出願第675254号
(代理人整理番号A−62864/GSW/SMK)には、全幅
の小形オンチップのデータキャッシュ及び命令キャッシ
ュを有する統合されたプロセッサ・メモリ装置(P/M
装置)が開示れクレームされている。その命令キャッシ
ュでは、命令ストリームの一般に良好な局所性は、長い
命令キャッシュラインのプリフェッチが有効に機能する
ことを意味する。その一方で、このような全幅のデータ
キャッシュでは、効果的に機能するには、より複雑なア
クセスパターンに対応する必要がある。したがって、長
いデータキャッシュラインが低データキャッシュミス率
となるアプリケーションが存在する一方で、アプリケー
ションによっては、長いデータキャッシュラインは高デ
ータキャッシュミス率を生じ得ることになってしまう。
aulsbury, Andreas Nowatzyk, FongPong により発明さ
れた「全幅キャッシュを有する統合されたプロセッサ・
メモリ装置」と題する米国特許出願第675254号
(代理人整理番号A−62864/GSW/SMK)には、全幅
の小形オンチップのデータキャッシュ及び命令キャッシ
ュを有する統合されたプロセッサ・メモリ装置(P/M
装置)が開示れクレームされている。その命令キャッシ
ュでは、命令ストリームの一般に良好な局所性は、長い
命令キャッシュラインのプリフェッチが有効に機能する
ことを意味する。その一方で、このような全幅のデータ
キャッシュでは、効果的に機能するには、より複雑なア
クセスパターンに対応する必要がある。したがって、長
いデータキャッシュラインが低データキャッシュミス率
となるアプリケーションが存在する一方で、アプリケー
ションによっては、長いデータキャッシュラインは高デ
ータキャッシュミス率を生じ得ることになってしまう。
【0010】
【課題を解決するための手段】要約すると、本発明は、
統合されたプロセッサ・メモリ装置に関する。本発明
は、メイン・メモリと、CPUと、ヴィクティム(犠
牲)キャッシュと、1次(プライマリイ)キャッシュと
を備えている。
統合されたプロセッサ・メモリ装置に関する。本発明
は、メイン・メモリと、CPUと、ヴィクティム(犠
牲)キャッシュと、1次(プライマリイ)キャッシュと
を備えている。
【0011】メイン・メモリは、所定のアドレス空間を
有し、メイン・メモリバンクを備えている。各メイン・
メモリバンクはアドレス空間の対応する部分を占め、ア
ドレス空間の対応部分におけるアドレスを有するメモリ
位置にワードをストアする。
有し、メイン・メモリバンクを備えている。各メイン・
メモリバンクはアドレス空間の対応する部分を占め、ア
ドレス空間の対応部分におけるアドレスを有するメモリ
位置にワードをストアする。
【0012】ヴィクティム・キャッシュは、ヴィクティ
ム・キャッシュ・ライン・ストレージと、ヴィクティム
・キャッシュ・バンク・タグ・ストレージと、ヴィクテ
ィム・キャッシュ・バンクロ・ジックとを備える。ヴィ
クティム・キャッシュストレージはワードのヴィクティ
ム・キャッシュ・サブラインをストアする。各ヴィクテ
ィム・キャッシュ・サブラインは、メイン・メモリの対
応するメモリ位置を有する。ヴィクティム・キャッシュ
・バンク・タグ・ストレージは、各ヴィクティム・キャ
ッシュ・サブラインに対して対応するヴィクティム・キ
ャッシュ・タグをストアする。各ヴィクティム・キャッ
シュ・タグは対応するヴィクティム・キャッシュ・サブ
ラインのメイン・メモリにおけるメモリ位置を識別す
る。ヴィクティム・キャッシュ・ロジックは、CPU及
びヴィクティム・キャッシュ・サブライン・ストレージ
に結合されている。CPUがメイン・メモリのアドレス
空間におけるアドレスを送出すると、ヴィクティム・キ
ャッシュ・ロジックは、アドレス及びヴィクティム・キ
ャッシュ・サブラインのアドレス・タグから、ヴィクテ
ィム・キャッシュ・ストレージにおいてヴィクティム・
キャッシュ・ヒットあるいはヴィクティム・キャッシュ
・ミスがで生じたか否かを判定する。ヴィクティム・キ
ャッシュ・ミスが生じると、ヴィクティム・キャッシュ
・ロジックは、ヴィクティム・キャッシュ・ストレージ
のヴィクティム・キャッシュ・サブライン中から選択さ
れたヴィクティム・キャッシュ・サブラインを、新しい
ヴィクティム・キャッシュ・サブラインに置き換える。
ム・キャッシュ・ライン・ストレージと、ヴィクティム
・キャッシュ・バンク・タグ・ストレージと、ヴィクテ
ィム・キャッシュ・バンクロ・ジックとを備える。ヴィ
クティム・キャッシュストレージはワードのヴィクティ
ム・キャッシュ・サブラインをストアする。各ヴィクテ
ィム・キャッシュ・サブラインは、メイン・メモリの対
応するメモリ位置を有する。ヴィクティム・キャッシュ
・バンク・タグ・ストレージは、各ヴィクティム・キャ
ッシュ・サブラインに対して対応するヴィクティム・キ
ャッシュ・タグをストアする。各ヴィクティム・キャッ
シュ・タグは対応するヴィクティム・キャッシュ・サブ
ラインのメイン・メモリにおけるメモリ位置を識別す
る。ヴィクティム・キャッシュ・ロジックは、CPU及
びヴィクティム・キャッシュ・サブライン・ストレージ
に結合されている。CPUがメイン・メモリのアドレス
空間におけるアドレスを送出すると、ヴィクティム・キ
ャッシュ・ロジックは、アドレス及びヴィクティム・キ
ャッシュ・サブラインのアドレス・タグから、ヴィクテ
ィム・キャッシュ・ストレージにおいてヴィクティム・
キャッシュ・ヒットあるいはヴィクティム・キャッシュ
・ミスがで生じたか否かを判定する。ヴィクティム・キ
ャッシュ・ミスが生じると、ヴィクティム・キャッシュ
・ロジックは、ヴィクティム・キャッシュ・ストレージ
のヴィクティム・キャッシュ・サブライン中から選択さ
れたヴィクティム・キャッシュ・サブラインを、新しい
ヴィクティム・キャッシュ・サブラインに置き換える。
【0013】1次キャッシュは1次キャッシュ・バンク
を備える。各1次キャッシュ・バンクは、メイン・メモ
リ・バンク中の対応するメイン・メモリ・バンク、ヴィ
クティム・キャッシュ、及び、CPUに結合されてい
る。各1次キャッシュ・バンクは、1次キャッシュ・バ
ンク・ライン・ストレージと、1次キャッシュ・バンク
・タグ・ストレージと、1次キャッシュ・バンク・ロジ
ックとを備えている。1次キャッシュ・バンク・ライン
・ストレージは対応するメイン・メモリ・バンクに結合
されている。1次キャッシュ・バンク・ライン・ストレ
ージは複数ワードの1以上のキャッシュ・ラインをスト
アする。各キャッシュ・ラインは対応するメイン・メモ
リ・バンクにおけて対応するメモリ位置を有する。1次
キャッシュ・バンク・タグ・ストレージは各キャッシュ
・ラインの対応するアドレス・タグをストアし、各アド
レス・タグは対応するメイン・メモリ・バンクにおける
対応するキャッシュ・ラインのメモリ位置を識別する。
1次キャッシュ・バンク・ロジックは、CPUと、対応
するメイン・メモリ・バンクと、1次キャッシュ・バン
ク・ライン・ストレージとに結合されている。CPUが
対応するメイン・メモリ・バンクのアドレス空間の一部
におけるアドレスを送出すると、1次キャッシュ・バン
ク・ロジックは、アドレス及びキャッシュ・ラインのア
ドレス・タグから、キャッシュ・ヒットあるいはキャッ
シュ・ミスが1次キャッシュ・バンク・ライン・ストレ
ージで生じたかどうかを判定する。キャッシュ・ミスが
生じると、1次キャッシュ・バンク・ロジックは、1次
キャッシュ・バンク・ライン・ストレージにおけるキャ
ッシュ・ラインのヴィクティム・キャッシュ・ライン
を、送出されたアドレスにより指定された対応するメイ
ン・メモリ・バンクにおける対応するメモリ位置からの
新しいキャッシュ・ラインと置き換え、ヴィクティム・
キャッシュ・ラインのサブラインを新しいヴィクティム
・キャッシュ・サブラインとしてルーティングをする。
を備える。各1次キャッシュ・バンクは、メイン・メモ
リ・バンク中の対応するメイン・メモリ・バンク、ヴィ
クティム・キャッシュ、及び、CPUに結合されてい
る。各1次キャッシュ・バンクは、1次キャッシュ・バ
ンク・ライン・ストレージと、1次キャッシュ・バンク
・タグ・ストレージと、1次キャッシュ・バンク・ロジ
ックとを備えている。1次キャッシュ・バンク・ライン
・ストレージは対応するメイン・メモリ・バンクに結合
されている。1次キャッシュ・バンク・ライン・ストレ
ージは複数ワードの1以上のキャッシュ・ラインをスト
アする。各キャッシュ・ラインは対応するメイン・メモ
リ・バンクにおけて対応するメモリ位置を有する。1次
キャッシュ・バンク・タグ・ストレージは各キャッシュ
・ラインの対応するアドレス・タグをストアし、各アド
レス・タグは対応するメイン・メモリ・バンクにおける
対応するキャッシュ・ラインのメモリ位置を識別する。
1次キャッシュ・バンク・ロジックは、CPUと、対応
するメイン・メモリ・バンクと、1次キャッシュ・バン
ク・ライン・ストレージとに結合されている。CPUが
対応するメイン・メモリ・バンクのアドレス空間の一部
におけるアドレスを送出すると、1次キャッシュ・バン
ク・ロジックは、アドレス及びキャッシュ・ラインのア
ドレス・タグから、キャッシュ・ヒットあるいはキャッ
シュ・ミスが1次キャッシュ・バンク・ライン・ストレ
ージで生じたかどうかを判定する。キャッシュ・ミスが
生じると、1次キャッシュ・バンク・ロジックは、1次
キャッシュ・バンク・ライン・ストレージにおけるキャ
ッシュ・ラインのヴィクティム・キャッシュ・ライン
を、送出されたアドレスにより指定された対応するメイ
ン・メモリ・バンクにおける対応するメモリ位置からの
新しいキャッシュ・ラインと置き換え、ヴィクティム・
キャッシュ・ラインのサブラインを新しいヴィクティム
・キャッシュ・サブラインとしてルーティングをする。
【0014】
【発明の実施の形態】図1を参照すると、本発明による
統合されたP/M装置100の典型的な実施形態が示さ
れている。P/M装置の統合されている構成要素にはC
PU102、オンチップ・メモリ・システム103、6
4ビット・データ・バス108、25ビット・データ・
アドレス・バス110、32ビット命令バス112、2
5ビット命令アドレス・バス114及び制御バス116
が含まれる。メモリ・システムは16個のメモリ・ブロ
ック104及び1個のヴィクティム・キャッシュ106
を有する。
統合されたP/M装置100の典型的な実施形態が示さ
れている。P/M装置の統合されている構成要素にはC
PU102、オンチップ・メモリ・システム103、6
4ビット・データ・バス108、25ビット・データ・
アドレス・バス110、32ビット命令バス112、2
5ビット命令アドレス・バス114及び制御バス116
が含まれる。メモリ・システムは16個のメモリ・ブロ
ック104及び1個のヴィクティム・キャッシュ106
を有する。
【0015】各メモリ・ブロック104には、対応する
メイン・メモリ・バンク118、対応する命令キャッシ
ュ・バンク120及び対応するデータ・キャッシュ・バ
ンク122が含まれる。以下の検討から明らかなよう
に、16個のメイン・メモリ・バンクはP/M装置のメ
イン・メモリを形成する。更に16個の命令キャッシュ
・バンクは直接マップされた命令キャッシュを形成し、
16個のデータ・キャッシュ・バンクは2ウェイのセッ
ト・アソシエイティブ・データ・キャッシュを形成す
る。更に、ヴィクティム・キャッシュは16ウェイのフ
ル・アソシエイティブ・キャッシュである。
メイン・メモリ・バンク118、対応する命令キャッシ
ュ・バンク120及び対応するデータ・キャッシュ・バ
ンク122が含まれる。以下の検討から明らかなよう
に、16個のメイン・メモリ・バンクはP/M装置のメ
イン・メモリを形成する。更に16個の命令キャッシュ
・バンクは直接マップされた命令キャッシュを形成し、
16個のデータ・キャッシュ・バンクは2ウェイのセッ
ト・アソシエイティブ・データ・キャッシュを形成す
る。更に、ヴィクティム・キャッシュは16ウェイのフ
ル・アソシエイティブ・キャッシュである。
【0016】図2を参照すると、各メモリ・ブロック1
04のメイン・メモリ・バンク118はメモリ・セル1
23の4096(4K)行を有する16MビットDRA
Mを具備する。各行は4096のメモリ・セルを有す
る。メイン・メモリ・バンクには12アドレス・ビット
によってアドレス(識別)される行を突き止めるための
12アドレス・ビットをデコードする行デコーダ124
が含まれる。更に、メイン・メモリ・バンクには、アド
レスされた行のメモリ・セルに対して同時に4096ビ
ットをまとめて読み書きする4096個のセンス・アン
プ126が含まれる。典型的実施形態では、メイン・メ
モリ・バンクはDRAMを具備しているので、メイン・
メモリ・バンクに対するアクセス・タイムは6サイクル
(30ns)である。
04のメイン・メモリ・バンク118はメモリ・セル1
23の4096(4K)行を有する16MビットDRA
Mを具備する。各行は4096のメモリ・セルを有す
る。メイン・メモリ・バンクには12アドレス・ビット
によってアドレス(識別)される行を突き止めるための
12アドレス・ビットをデコードする行デコーダ124
が含まれる。更に、メイン・メモリ・バンクには、アド
レスされた行のメモリ・セルに対して同時に4096ビ
ットをまとめて読み書きする4096個のセンス・アン
プ126が含まれる。典型的実施形態では、メイン・メ
モリ・バンクはDRAMを具備しているので、メイン・
メモリ・バンクに対するアクセス・タイムは6サイクル
(30ns)である。
【0017】各メイン・メモリ・バンク118の行は4
096ビットすなわち512バイト幅であるので、各メ
イン・メモリ・バンクは2Mバイトを有し、16個のメ
イン・メモリ・バンクでは合わせて32Mバイトを有す
ることになる。従って、各メイン・メモリ・バンクは3
2Mバイトのメイン・メモリ・アドレス空間のうちの2
Mバイト部分を占有する。更に、各バイトは25ビット
・アドレスA24〜A0でアドレス可能であり、このう
ち最上位4アドレス・ビットA24〜A21はメイン・
メモリ・バンクを識別し、次の12アドレス・ビットA
20〜A9はメイン・メモリ・バンクの行を識別し、最
下位9アドレス・ビットA0〜A8は行内のバイトを識
別する。
096ビットすなわち512バイト幅であるので、各メ
イン・メモリ・バンクは2Mバイトを有し、16個のメ
イン・メモリ・バンクでは合わせて32Mバイトを有す
ることになる。従って、各メイン・メモリ・バンクは3
2Mバイトのメイン・メモリ・アドレス空間のうちの2
Mバイト部分を占有する。更に、各バイトは25ビット
・アドレスA24〜A0でアドレス可能であり、このう
ち最上位4アドレス・ビットA24〜A21はメイン・
メモリ・バンクを識別し、次の12アドレス・ビットA
20〜A9はメイン・メモリ・バンクの行を識別し、最
下位9アドレス・ビットA0〜A8は行内のバイトを識
別する。
【0018】〔命令キャッシュ〕図2を再び参照する
と、各メモリ・ブロック104の命令キャッシュ・バン
ク120は命令キャッシュ・バンク・ライン・ストレー
ジ128を含む。この命令キャッシュ・バンク・ライン
・ストレージは4096個のラッチを有する単一の長い
バッファ130を具備する。このバッファのラッチは、
メモリ・ブロックのメイン・メモリ・バンク118の各
行のように、4096ビットすなわち512バイト幅で
ある単一の長い命令キャッシュ・ライン(又はブロッ
ク)を一括してストアする。更に、命令キャッシュ・ラ
インはメイン・メモリ・バンクの各行の幅と同じ幅であ
るので、全幅であると考えられる。典型的実施形態にお
いて、各命令ワードは32ビットすなわち4バイト長で
ある。この結果、命令キャッシュ・ラインは128命令
ワード幅であり、同様にメイン・メモリ・バンクの各行
も命令ワードをストアする。
と、各メモリ・ブロック104の命令キャッシュ・バン
ク120は命令キャッシュ・バンク・ライン・ストレー
ジ128を含む。この命令キャッシュ・バンク・ライン
・ストレージは4096個のラッチを有する単一の長い
バッファ130を具備する。このバッファのラッチは、
メモリ・ブロックのメイン・メモリ・バンク118の各
行のように、4096ビットすなわち512バイト幅で
ある単一の長い命令キャッシュ・ライン(又はブロッ
ク)を一括してストアする。更に、命令キャッシュ・ラ
インはメイン・メモリ・バンクの各行の幅と同じ幅であ
るので、全幅であると考えられる。典型的実施形態にお
いて、各命令ワードは32ビットすなわち4バイト長で
ある。この結果、命令キャッシュ・ラインは128命令
ワード幅であり、同様にメイン・メモリ・バンクの各行
も命令ワードをストアする。
【0019】更に、各メモリ・ブロック104におい
て、メイン・メモリ・バンク118の各行は命令キャッ
シュ・バンク・ライン・ストレージ128の単一命令キ
ャッシュ・バンク・ラインにインデックス付け(マッ
プ)される。従って、メイン・メモリ・バンクの1行を
指定する25ビットの命令アドレスA24〜A0は全て
命令キャッシュ・バンク・ライン・ストレージに対して
同一のインデックスを有する。このインデックスは、こ
れらアドレスの上位4ビットA24〜A21であり、メ
イン・メモリ・バンクも識別する。
て、メイン・メモリ・バンク118の各行は命令キャッ
シュ・バンク・ライン・ストレージ128の単一命令キ
ャッシュ・バンク・ラインにインデックス付け(マッ
プ)される。従って、メイン・メモリ・バンクの1行を
指定する25ビットの命令アドレスA24〜A0は全て
命令キャッシュ・バンク・ライン・ストレージに対して
同一のインデックスを有する。このインデックスは、こ
れらアドレスの上位4ビットA24〜A21であり、メ
イン・メモリ・バンクも識別する。
【0020】各メイン・メモリ・バンク104の命令キ
ャッシュ・バンク120も命令キャッシュ・バンク・タ
グ・ストレージ132を含む。命令キャッシュ・バンク
・タグ・ストレージは、12ビットの命令キャッシュ・
タグ(これは、命令キャッシュ・バンク・ライン・スト
レージ128に現在ストア(キャッシュ)されている命
令キャッシュ・ラインで通常占有されている対応するメ
イン・メモリ・バンク118の行を識別する)をストア
する。このタグは、まもなく説明するように、生成され
てメイン・メモリ・アドレス空間の対応するメイン・メ
モリ・バンク部分に存在する25ビットの各命令アドレ
スA24〜A0の中の12アドレス・ビットA20〜A
9に対して、命令キャッシュ・バンク・ロジック134
によって比較される。
ャッシュ・バンク120も命令キャッシュ・バンク・タ
グ・ストレージ132を含む。命令キャッシュ・バンク
・タグ・ストレージは、12ビットの命令キャッシュ・
タグ(これは、命令キャッシュ・バンク・ライン・スト
レージ128に現在ストア(キャッシュ)されている命
令キャッシュ・ラインで通常占有されている対応するメ
イン・メモリ・バンク118の行を識別する)をストア
する。このタグは、まもなく説明するように、生成され
てメイン・メモリ・アドレス空間の対応するメイン・メ
モリ・バンク部分に存在する25ビットの各命令アドレ
スA24〜A0の中の12アドレス・ビットA20〜A
9に対して、命令キャッシュ・バンク・ロジック134
によって比較される。
【0021】各メモリ・ブロック104の命令キャッシ
ュ・バンク120の動作は命令キャッシュ・バンク・ロ
ジック134によって制御される。図3に転じると、各
命令キャッシュ・バンクの命令キャッシュ・バンク・ロ
ジックは、命令キャッシュ・バンク制御状態マシン13
6、命令キャッシュ・バンク・アドレス/タグ比較回路
138及び命令キャッシュ・バンク選択回路140を含
む。図4は、命令キャッシュ・バンク制御状態マシンの
動作状態を示す。
ュ・バンク120の動作は命令キャッシュ・バンク・ロ
ジック134によって制御される。図3に転じると、各
命令キャッシュ・バンクの命令キャッシュ・バンク・ロ
ジックは、命令キャッシュ・バンク制御状態マシン13
6、命令キャッシュ・バンク・アドレス/タグ比較回路
138及び命令キャッシュ・バンク選択回路140を含
む。図4は、命令キャッシュ・バンク制御状態マシンの
動作状態を示す。
【0022】図2〜4を参照すると、CPUがその命令
パイプラインに対する新しい命令ワードをフェッチしよ
うとするとき、命令ワードをフェッチするため、CPU
は25ビットの命令アドレスA24〜A0を命令アドレ
ス・バス114に送出する。この送出された命令アドレ
スは、メイン・メモリのアドレス空間における命令ワー
ドのメモリ位置を指定する。
パイプラインに対する新しい命令ワードをフェッチしよ
うとするとき、命令ワードをフェッチするため、CPU
は25ビットの命令アドレスA24〜A0を命令アドレ
ス・バス114に送出する。この送出された命令アドレ
スは、メイン・メモリのアドレス空間における命令ワー
ドのメモリ位置を指定する。
【0023】各命令キャッシュ・バンク120におい
て、命令キャッシュ・バンク・ロジック134の命令キ
ャッシュ・バンク選択回路140は、命令アドレス・バ
ス114から、この送出された命令アドレスの最上位4
ビットA24〜A21を受け取る。それに応答して、命
令キャッシュ・バンク選択回路140はこれら4アドレ
ス・ビットをデコードし、これらが対応するメイン・メ
モリ・バンク118を識別しているかどうか(すなわ
ち、送出されたアドレスがメイン・メモリ・アドレス空
間の対応するメイン・メモリ部分にあるかどうか)を決
定する。もしこれらが対応するメイン・メモリ・バンク
を識別していれば、命令キャッシュ・バンク選択回路
は、バンク選択信号を、命令キャッシュ・バンク制御状
態マシン136及び命令キャッシュ・バンク・アドレス
/タグ比較回路138に送って対応するメイン・メモリ
・バンクが選択されたことを知らせる。そうでない場合
は、バンク選択信号は対応するメイン・メモリ・バンク
が選択されなかったことを示し、命令キャッシュ・バン
ク制御状態マシンはアイドル状態(図4の状態137)
のままである。
て、命令キャッシュ・バンク・ロジック134の命令キ
ャッシュ・バンク選択回路140は、命令アドレス・バ
ス114から、この送出された命令アドレスの最上位4
ビットA24〜A21を受け取る。それに応答して、命
令キャッシュ・バンク選択回路140はこれら4アドレ
ス・ビットをデコードし、これらが対応するメイン・メ
モリ・バンク118を識別しているかどうか(すなわ
ち、送出されたアドレスがメイン・メモリ・アドレス空
間の対応するメイン・メモリ部分にあるかどうか)を決
定する。もしこれらが対応するメイン・メモリ・バンク
を識別していれば、命令キャッシュ・バンク選択回路
は、バンク選択信号を、命令キャッシュ・バンク制御状
態マシン136及び命令キャッシュ・バンク・アドレス
/タグ比較回路138に送って対応するメイン・メモリ
・バンクが選択されたことを知らせる。そうでない場合
は、バンク選択信号は対応するメイン・メモリ・バンク
が選択されなかったことを示し、命令キャッシュ・バン
ク制御状態マシンはアイドル状態(図4の状態137)
のままである。
【0024】各命令キャッシュ・バンク120におい
て、バンク選択信号により対応するメイン・メモリ・バ
ンク118の選択が示されると、命令キャッシュ・バン
ク・アドレス/タグ比較回路138は、命令キャッシュ
・バンク・タグ・ストレージ132に現在ストアされて
いる命令キャッシュ・ライン・タグと、命令アドレス・
バス114上に送出された12アドレス・ビットA20
〜A9とを比較する。前にそれとなく述べたように、こ
れら12アドレス・ビットは、命令ワードがストアされ
ている対応するメイン・メモリ・バンクの行のメモリ位
置を識別する。
て、バンク選択信号により対応するメイン・メモリ・バ
ンク118の選択が示されると、命令キャッシュ・バン
ク・アドレス/タグ比較回路138は、命令キャッシュ
・バンク・タグ・ストレージ132に現在ストアされて
いる命令キャッシュ・ライン・タグと、命令アドレス・
バス114上に送出された12アドレス・ビットA20
〜A9とを比較する。前にそれとなく述べたように、こ
れら12アドレス・ビットは、命令ワードがストアされ
ている対応するメイン・メモリ・バンクの行のメモリ位
置を識別する。
【0025】もし、一致の結果が得られれば、命令キャ
ッシュ・バンク・アドレス/タグ比較回路138は、バ
ンク選択信号と共に命令キャッシュ・バンク・ヒットが
生じたことを示す命令キャッシュ・バンク・ヒット/ミ
ス信号を送出する。これは、送出された命令アドレスで
指定されたメモリ位置が命令キャッシュ・バンク・ライ
ン・ストレージ128に現在ストアされている命令キャ
ッシュ・ラインにおいて現在アクセス可能であることを
意味する。
ッシュ・バンク・アドレス/タグ比較回路138は、バ
ンク選択信号と共に命令キャッシュ・バンク・ヒットが
生じたことを示す命令キャッシュ・バンク・ヒット/ミ
ス信号を送出する。これは、送出された命令アドレスで
指定されたメモリ位置が命令キャッシュ・バンク・ライ
ン・ストレージ128に現在ストアされている命令キャ
ッシュ・ラインにおいて現在アクセス可能であることを
意味する。
【0026】各命令キャッシュ・バンク120からの命
令キャッシュ・バンク・ビット/ミス信号及びバンク選
択信号は、制御バス116を介してCPU102に与え
られる。命令キャッシュ・バンクからの命令キャッシュ
・バンク・ヒット/ミス信号及びバンク選択信号が、命
令キャッシュ・バンク内で命令キャッシュ・バンク・ヒ
ットが生じたことを示すと、これにより、命令ワードが
命令キャッシュ・バンク120から直接フェッチされる
ことがCPUに知らされる。この結果、命令キャッシュ
・バンク・ミスが生じた場合のように、メイン・メモリ
・バンクから命令キャッシュ・バンクへ命令が読み出さ
れるのを待つために、CPUが命令パイプラインを失速
させる必要がない。
令キャッシュ・バンク・ビット/ミス信号及びバンク選
択信号は、制御バス116を介してCPU102に与え
られる。命令キャッシュ・バンクからの命令キャッシュ
・バンク・ヒット/ミス信号及びバンク選択信号が、命
令キャッシュ・バンク内で命令キャッシュ・バンク・ヒ
ットが生じたことを示すと、これにより、命令ワードが
命令キャッシュ・バンク120から直接フェッチされる
ことがCPUに知らされる。この結果、命令キャッシュ
・バンク・ミスが生じた場合のように、メイン・メモリ
・バンクから命令キャッシュ・バンクへ命令が読み出さ
れるのを待つために、CPUが命令パイプラインを失速
させる必要がない。
【0027】各命令キャッシュ・バンク120におい
て、命令キャッシュ・バンク・ヒット/ミス信号は命令
キャッシュ・バンク制御状態マシン136にも与えられ
る。命令キャッシュ・バンク制御状態マシン136は、
更に命令アドレス・バス114から、送出された命令ア
ドレスの7アドレス・ビットA8〜A2、及び、命令キ
ャッシュ・バンク・ライン・ストレージ128に現在ス
トアされている命令キャッシュ・ラインを受け取る。
て、命令キャッシュ・バンク・ヒット/ミス信号は命令
キャッシュ・バンク制御状態マシン136にも与えられ
る。命令キャッシュ・バンク制御状態マシン136は、
更に命令アドレス・バス114から、送出された命令ア
ドレスの7アドレス・ビットA8〜A2、及び、命令キ
ャッシュ・バンク・ライン・ストレージ128に現在ス
トアされている命令キャッシュ・ラインを受け取る。
【0028】命令キャッシュ・バンク120からの命令
キャッシュ・バンク・ヒット/ミス信号及びバンク選択
信号が、命令キャッシュ・バンク内で命令キャッシュ・
バンク・ヒットが生じたことを示すと、命令キャッシュ
・バンクの命令キャッシュ・バンク制御状態マシン13
6はそのアイドル状態(図4の状態137)を脱し、受
け取った7アドレス・ビットをデコードして送出された
命令アドレスによって指定された命令キャッシュ・ライ
ン内のアクセス可能なメモリ位置を決定する。次に命令
キャッシュ・バンク状態マシン136はこのメモリ位置
から命令ワードをフェッチし、CPU102へ与える
(図4の状態139)。これは、その命令ワードがCP
U102によって受信されるようにその命令ワードを命
令バス112へルーティング(マルチプレクシング)す
ることによって行われる。その結果、命令ワードのフェ
ッチが完了する。典型的実施形態では、これは単一サイ
クル(例えば5ns)で行われる。
キャッシュ・バンク・ヒット/ミス信号及びバンク選択
信号が、命令キャッシュ・バンク内で命令キャッシュ・
バンク・ヒットが生じたことを示すと、命令キャッシュ
・バンクの命令キャッシュ・バンク制御状態マシン13
6はそのアイドル状態(図4の状態137)を脱し、受
け取った7アドレス・ビットをデコードして送出された
命令アドレスによって指定された命令キャッシュ・ライ
ン内のアクセス可能なメモリ位置を決定する。次に命令
キャッシュ・バンク状態マシン136はこのメモリ位置
から命令ワードをフェッチし、CPU102へ与える
(図4の状態139)。これは、その命令ワードがCP
U102によって受信されるようにその命令ワードを命
令バス112へルーティング(マルチプレクシング)す
ることによって行われる。その結果、命令ワードのフェ
ッチが完了する。典型的実施形態では、これは単一サイ
クル(例えば5ns)で行われる。
【0029】しかし、各命令キャッシュ・バンク120
において、命令キャッシュ・バンク・アドレス/タグ比
較回路138は、命令キャッシュ・ライン・タグと12
アドレス・ビットA20〜A9との比較で一致しなかっ
たと決定したときには、バンク選択信号と共に命令キャ
ッシュ・バンク・ミスが生じたことを示す命令キャッシ
ュ・バンク・ヒット/ミス信号を送出する。これは、送
出された命令アドレスで指定された場所が、命令キャッ
シュ・バンク・ライン・ストレージ128に現在ストア
されている命令キャッシュ・ラインではアクセスが現在
可能でないことを意味する。
において、命令キャッシュ・バンク・アドレス/タグ比
較回路138は、命令キャッシュ・ライン・タグと12
アドレス・ビットA20〜A9との比較で一致しなかっ
たと決定したときには、バンク選択信号と共に命令キャ
ッシュ・バンク・ミスが生じたことを示す命令キャッシ
ュ・バンク・ヒット/ミス信号を送出する。これは、送
出された命令アドレスで指定された場所が、命令キャッ
シュ・バンク・ライン・ストレージ128に現在ストア
されている命令キャッシュ・ラインではアクセスが現在
可能でないことを意味する。
【0030】従って、命令キャッシュ・バンク120か
らCPU102が受け取った命令キャッシュ・バンク・
ヒット/ミス信号及びバンク選択信号により、命令キャ
ッシュ・バンク・ミスが生じたことを示されると、動作
を遅らせて、送出された命令アドレスによって指定され
たメモリ位置での新しい命令キャッシュ・ラインが、命
令キャッシュ・バンク制御状態マシンによって対応する
メイン・メモリ・バンク118から命令キャッシュ・バ
ンクへと読み出されるように(図4の状態141)す
る。この場合、命令キャッシュ・バンク制御状態マシン
136は、命令キャッシュ・バンク・ヒット/ミス信号
及びバンク選択信号を受け取ると、読み出しが行われる
ことを示すW/R制御信号及びメモリ・アドレス・バス
114から受け取った12アドレス・ビットA20〜A
9を、メイン・メモリ・バンク118へと送出する。こ
の12アドレス・ビットに応答して、行デコーダは、こ
の12アドレス・ビットによって識別されるメイン・メ
モリ・バンクの行を突き止める。更に、このW/R制御
信号に応答して、センス・アンプ126はこの行を新し
い命令キャッシュ・ラインとして読み出す。この動作が
行われている間に、命令キャッシュ・バンク制御状態マ
シン136は命令キャッシュ・バンク・ライン・ストレ
ージ128のバッファ130へバッファ制御信号を送出
する。これに応答して、バッファはセンス・アンプ12
6から受け取った新しい命令キャッシュ・ラインをラッ
チし、これによって以前そのバッファにラッチされてい
た前の命令キャッシュ・ラインを置き換える。典型的な
実施形態では、これを行うために6サイクルを必要と
し、その内訳は、キャッシュ・バンク・ミスが生じたこ
とを判定するのに1サイクル、センス・アンプのプリチ
ャージと行デコーダによるアドレス・ビットのデコード
に4サイクル、センス・アンプによって読み出された新
しい命令キャッシュ・ラインをバッファにラッチするの
に1サイクルとなっている。
らCPU102が受け取った命令キャッシュ・バンク・
ヒット/ミス信号及びバンク選択信号により、命令キャ
ッシュ・バンク・ミスが生じたことを示されると、動作
を遅らせて、送出された命令アドレスによって指定され
たメモリ位置での新しい命令キャッシュ・ラインが、命
令キャッシュ・バンク制御状態マシンによって対応する
メイン・メモリ・バンク118から命令キャッシュ・バ
ンクへと読み出されるように(図4の状態141)す
る。この場合、命令キャッシュ・バンク制御状態マシン
136は、命令キャッシュ・バンク・ヒット/ミス信号
及びバンク選択信号を受け取ると、読み出しが行われる
ことを示すW/R制御信号及びメモリ・アドレス・バス
114から受け取った12アドレス・ビットA20〜A
9を、メイン・メモリ・バンク118へと送出する。こ
の12アドレス・ビットに応答して、行デコーダは、こ
の12アドレス・ビットによって識別されるメイン・メ
モリ・バンクの行を突き止める。更に、このW/R制御
信号に応答して、センス・アンプ126はこの行を新し
い命令キャッシュ・ラインとして読み出す。この動作が
行われている間に、命令キャッシュ・バンク制御状態マ
シン136は命令キャッシュ・バンク・ライン・ストレ
ージ128のバッファ130へバッファ制御信号を送出
する。これに応答して、バッファはセンス・アンプ12
6から受け取った新しい命令キャッシュ・ラインをラッ
チし、これによって以前そのバッファにラッチされてい
た前の命令キャッシュ・ラインを置き換える。典型的な
実施形態では、これを行うために6サイクルを必要と
し、その内訳は、キャッシュ・バンク・ミスが生じたこ
とを判定するのに1サイクル、センス・アンプのプリチ
ャージと行デコーダによるアドレス・ビットのデコード
に4サイクル、センス・アンプによって読み出された新
しい命令キャッシュ・ラインをバッファにラッチするの
に1サイクルとなっている。
【0031】各命令キャッシュ・バンクにおいて、一旦
新しい命令キャッシュ・ラインが命令キャッシュ・バン
ク・ライン・ストレージ128にストアされると、命令
キャッシュ・バンク制御状態マシン136は、送出され
た命令アドレスの7アドレス・ビットA8〜A2をデコ
ードして新しい命令キャッシュ・ライン内の命令ワード
を突き止め、次にその突き止めた命令ワードを命令キャ
ッシュ・ラインからフェッチし、前に述べたようにその
命令ワードをCPU102へ送る(図4の状態13
9)。前述のように、典型的な実施形態では、これは1
サイクルで行われる。これが実行された後、命令キャッ
シュ・バンク制御状態マシン136はアイドル状態に戻
り(図4の状態137)、次に送出される命令アドレス
を待つ。
新しい命令キャッシュ・ラインが命令キャッシュ・バン
ク・ライン・ストレージ128にストアされると、命令
キャッシュ・バンク制御状態マシン136は、送出され
た命令アドレスの7アドレス・ビットA8〜A2をデコ
ードして新しい命令キャッシュ・ライン内の命令ワード
を突き止め、次にその突き止めた命令ワードを命令キャ
ッシュ・ラインからフェッチし、前に述べたようにその
命令ワードをCPU102へ送る(図4の状態13
9)。前述のように、典型的な実施形態では、これは1
サイクルで行われる。これが実行された後、命令キャッ
シュ・バンク制御状態マシン136はアイドル状態に戻
り(図4の状態137)、次に送出される命令アドレス
を待つ。
【0032】前述の通り、16個の命令キャッシュ・バ
ンク120は、8Kバイトを有する直接マップされたオ
ンチップの命令キャッシュ・メモリを形成している。各
命令キャッシュ・バンクにストアされている命令キャッ
シュ・ラインは全幅であるのでキャッシュ・ミスの割合
は、全幅より少ない幅の命令キャッシュ・ラインを有す
る従来のプロセッサに比べて、大幅に低減される。この
低いキャッシュ・ミスの割合は長い命令キャッシュ・ラ
インをプリフェッチする効果と命令ストリームにおける
常に高い空間的局所性によるものである。
ンク120は、8Kバイトを有する直接マップされたオ
ンチップの命令キャッシュ・メモリを形成している。各
命令キャッシュ・バンクにストアされている命令キャッ
シュ・ラインは全幅であるのでキャッシュ・ミスの割合
は、全幅より少ない幅の命令キャッシュ・ラインを有す
る従来のプロセッサに比べて、大幅に低減される。この
低いキャッシュ・ミスの割合は長い命令キャッシュ・ラ
インをプリフェッチする効果と命令ストリームにおける
常に高い空間的局所性によるものである。
【0033】更に、オフチップのメイン・メモリとオン
チップの命令キャッシュを有する従来のプロセッサは、
全幅の命令キャッシュ・ラインの利益を受けられない。
これは、全幅のキャッシュ・ラインをメイン・メモリか
ら命令キャッシュへ読み出すときにメモリ・インターフ
ェースに導入される厳しい2次衝突効果によるためであ
る。しかし、本発明では、命令キャッシュ・バンク11
8とメイン・メモリ・バンク120が両方共オンチップ
であるためにこれらの衝突効果は除去される。従って、
典型的実施形態では、全幅の命令キャッシュ・ラインの
全体はメイン・メモリ・バンクから対応する命令キャッ
シュ・バンクへ6サイクルで読み出すことができる。
チップの命令キャッシュを有する従来のプロセッサは、
全幅の命令キャッシュ・ラインの利益を受けられない。
これは、全幅のキャッシュ・ラインをメイン・メモリか
ら命令キャッシュへ読み出すときにメモリ・インターフ
ェースに導入される厳しい2次衝突効果によるためであ
る。しかし、本発明では、命令キャッシュ・バンク11
8とメイン・メモリ・バンク120が両方共オンチップ
であるためにこれらの衝突効果は除去される。従って、
典型的実施形態では、全幅の命令キャッシュ・ラインの
全体はメイン・メモリ・バンクから対応する命令キャッ
シュ・バンクへ6サイクルで読み出すことができる。
【0034】〔データ・キャッシュ及びヴィクティム・
データ・キャッシュ〕再び図2を参照すると、各メモリ
・ブロック104の1次(プライマリイの)データ・キ
ャッシュ・バンク122には、2つのバッファ146を
有する1次(プライマリイの)データ・キャッシュ・バ
ンク・ライン・ストレージ144が含まれる。各命令キ
ャッシュ・バンク・ライン・ストレージ128のバッフ
ァ130のように、1次データ・キャッシュ・バンク・
ライン・ストレージの各バッファは、4096ビットす
なわち512バイト幅である1次データ・キャッシュ・
バンク・ラインをストアする4096個のラッチを含
む。更に、典型的な実施形態では、各1次データ・キャ
ッシュ・ラインは、各ワードが64ビットすなわち8バ
イト長である64データ・ワードの幅である。
データ・キャッシュ〕再び図2を参照すると、各メモリ
・ブロック104の1次(プライマリイの)データ・キ
ャッシュ・バンク122には、2つのバッファ146を
有する1次(プライマリイの)データ・キャッシュ・バ
ンク・ライン・ストレージ144が含まれる。各命令キ
ャッシュ・バンク・ライン・ストレージ128のバッフ
ァ130のように、1次データ・キャッシュ・バンク・
ライン・ストレージの各バッファは、4096ビットす
なわち512バイト幅である1次データ・キャッシュ・
バンク・ラインをストアする4096個のラッチを含
む。更に、典型的な実施形態では、各1次データ・キャ
ッシュ・ラインは、各ワードが64ビットすなわち8バ
イト長である64データ・ワードの幅である。
【0035】各メモリ・ブロック104では、メイン・
メモリ・バンク118の各行は、命令キャッシュ・バン
ク・ライン・ストレージ128の命令キャッシュ・ライ
ンに対してインデックス付けされていると共に、1次デ
ータ・キャッシュ・バンク・ライン・ストレージ144
の両方の1次データ・キャッシュ・ラインに対してイン
デックス付けされている。従って、メイン・メモリ・バ
ンクの行を指定する25ビットのデータ・アドレスA2
4〜A0は1次データ・キャッシュ・バンク・ライン・
ストレージに対して同一のインデックスを有する。命令
アドレスと同様に、このインデックスはデータ・アドレ
スの最上位4ビットA24〜A21であり、メイン・メ
モリ・バンクを識別する。
メモリ・バンク118の各行は、命令キャッシュ・バン
ク・ライン・ストレージ128の命令キャッシュ・ライ
ンに対してインデックス付けされていると共に、1次デ
ータ・キャッシュ・バンク・ライン・ストレージ144
の両方の1次データ・キャッシュ・ラインに対してイン
デックス付けされている。従って、メイン・メモリ・バ
ンクの行を指定する25ビットのデータ・アドレスA2
4〜A0は1次データ・キャッシュ・バンク・ライン・
ストレージに対して同一のインデックスを有する。命令
アドレスと同様に、このインデックスはデータ・アドレ
スの最上位4ビットA24〜A21であり、メイン・メ
モリ・バンクを識別する。
【0036】各メモリ・ブロック104の1次データ・
キャッシュ・バンク122は、1次データ・キャッシュ
・バンク・タグ/フラグ・ストレージ148も有する。
1次データ・キャッシュ・バンク・タグ/フラグ・スト
レージは、1次データ・キャッシュ・バンク・ストレー
ジ144に現在ストアされていつ2つの1次データ・キ
ャッシュ・ラインのそれぞれに対する対応する、12ビ
ットの1次データ・キャッシュ・ライン・タグ及び対応
するダーティ・フラグをストアする。各タグは、対応す
る1次データ・キャッシュ・ラインで通常占有されてい
る対応するメイン・メモリ・バンク118の行を識別す
る。これらのタグは、送出されてメイン・メモリ・アド
レス空間の対応するメイン・メモリ・バンク部分に存在
する各25ビットのデータ・アドレスA24〜A0の1
2アドレス・ビットと1次データ・キャッシュ・バンク
・ロジック150によって比較される。各ダーティ・フ
ラグは、対応する1次データ・キャッシュ・ラインがダ
ーティ(すなわち、1つ以上のデータ・ワードが1次デ
ータ・キャッシュ・ラインには書き込まれたが、まだメ
イン・メモリ・バンクには書き込まれていない状態)で
あるか否か、を識別する。更に、この1次データ・キャ
ッシュ・バンク・タグ/フラグ・ストレージは、どの1
次データ・キャッシュ・ラインが最も古い時点で用いら
れた(アクセスされた)かを示す最古使用(LRU, L
east Recently Used)フラグをストアする。
キャッシュ・バンク122は、1次データ・キャッシュ
・バンク・タグ/フラグ・ストレージ148も有する。
1次データ・キャッシュ・バンク・タグ/フラグ・スト
レージは、1次データ・キャッシュ・バンク・ストレー
ジ144に現在ストアされていつ2つの1次データ・キ
ャッシュ・ラインのそれぞれに対する対応する、12ビ
ットの1次データ・キャッシュ・ライン・タグ及び対応
するダーティ・フラグをストアする。各タグは、対応す
る1次データ・キャッシュ・ラインで通常占有されてい
る対応するメイン・メモリ・バンク118の行を識別す
る。これらのタグは、送出されてメイン・メモリ・アド
レス空間の対応するメイン・メモリ・バンク部分に存在
する各25ビットのデータ・アドレスA24〜A0の1
2アドレス・ビットと1次データ・キャッシュ・バンク
・ロジック150によって比較される。各ダーティ・フ
ラグは、対応する1次データ・キャッシュ・ラインがダ
ーティ(すなわち、1つ以上のデータ・ワードが1次デ
ータ・キャッシュ・ラインには書き込まれたが、まだメ
イン・メモリ・バンクには書き込まれていない状態)で
あるか否か、を識別する。更に、この1次データ・キャ
ッシュ・バンク・タグ/フラグ・ストレージは、どの1
次データ・キャッシュ・ラインが最も古い時点で用いら
れた(アクセスされた)かを示す最古使用(LRU, L
east Recently Used)フラグをストアする。
【0037】各メモリ・ブロック104の1次(プライ
マリイの)データ・キャッシュ・バンク120の動作
は、1次(プライマリイの)データ・キャッシュ・バン
ク・ロジック150によって制御される。図5に示すよ
うに、各1次データ・キャッシュ・バンクの1次データ
・キャッシュ・バンク・ロジックは、1次データ・キャ
ッシュ・バンク制御状態マシン152、1次データ・キ
ャッシュ・バンク・アドレス/タグ比較回路154及び
1次データ・キャッシュ・バンク選択回路156を含
む。図6は1次データ・キャッシュ・バンク・ロジック
制御状態マシンの動作の状態を示す。
マリイの)データ・キャッシュ・バンク120の動作
は、1次(プライマリイの)データ・キャッシュ・バン
ク・ロジック150によって制御される。図5に示すよ
うに、各1次データ・キャッシュ・バンクの1次データ
・キャッシュ・バンク・ロジックは、1次データ・キャ
ッシュ・バンク制御状態マシン152、1次データ・キ
ャッシュ・バンク・アドレス/タグ比較回路154及び
1次データ・キャッシュ・バンク選択回路156を含
む。図6は1次データ・キャッシュ・バンク・ロジック
制御状態マシンの動作の状態を示す。
【0038】図7を参照すると、後に詳細に説明するよ
うに、ヴィクティム・データ・キャッシュを用いて、最
近置き換えられた(置換ヴィクティムであった)1次デ
ータ・キャッシュ・ラインのヴィクティム・データ・キ
ャッシュ・サブライン(又はサブブロック)に、1次デ
ータ・キャッシュ・バンク122における新しい1次デ
ータ・キャッシュ・ラインをストアする。ヴィクティム
・データ・キャッシュは、16個のバッファ162を具
備したヴィクティム・データ・キャッシュ・ライン・ス
トレージ160を含む。ヴィクティム・データ・キャッ
シュ・ライン・ストレージの各バッファは、256ビッ
トすなわち32バイト幅のヴィクティム・データ・キャ
ッシュ・サブラインをストアする256個のラッチを含
む。従って、典型的な実施形態では、各ヴィクティム・
データ・キャッシュ・サブラインは4データ・ワード幅
である。
うに、ヴィクティム・データ・キャッシュを用いて、最
近置き換えられた(置換ヴィクティムであった)1次デ
ータ・キャッシュ・ラインのヴィクティム・データ・キ
ャッシュ・サブライン(又はサブブロック)に、1次デ
ータ・キャッシュ・バンク122における新しい1次デ
ータ・キャッシュ・ラインをストアする。ヴィクティム
・データ・キャッシュは、16個のバッファ162を具
備したヴィクティム・データ・キャッシュ・ライン・ス
トレージ160を含む。ヴィクティム・データ・キャッ
シュ・ライン・ストレージの各バッファは、256ビッ
トすなわち32バイト幅のヴィクティム・データ・キャ
ッシュ・サブラインをストアする256個のラッチを含
む。従って、典型的な実施形態では、各ヴィクティム・
データ・キャッシュ・サブラインは4データ・ワード幅
である。
【0039】ヴィクティム・データ・キャッシュ106
は、ヴィクティム・データ・キャッシュ・タグ/フラグ
・ストレージ164も含む。ヴィクティム・データ・キ
ャッシュ・タグ/フラグ・ストレージは、ヴィクティム
・データ・キャッシュ・ライン・ストレージ160に現
在ストアされている16個のヴィクティム・データ・キ
ャッシュ・サブ・ラインのそれぞれに対する対応する2
2ビットのタグをストアする。各タグは、対応するヴィ
クティム・データ・キャッシュ・サブラインを識別し、
そのヴィクティム・データ・キャッシュ・サブラインが
通常メイン・メモリ内に占有するメモリ位置を示す。こ
れらのタグは、ヴィクティム・データ・キャッシュ・ロ
ジック166によって、送出された各25ビット・デー
タ・アドレスA24〜A0の19アドレス・ビットA2
4〜A6と比較される。更に、ヴィクティム・データ・
キャッシュ・タグ/フラグ・ストレージはフラッシュ・
フラグをストアし、そのフラッシュ・フラグは、次にど
のヴィクティム・データ・キャッシュ・サブラインがフ
ラッシュされ、新しいヴィクティム・データ・キャッシ
ュ・サブラインがそのヴィクティム・データ・キャッシ
ュに書き込まれるかを識別する。
は、ヴィクティム・データ・キャッシュ・タグ/フラグ
・ストレージ164も含む。ヴィクティム・データ・キ
ャッシュ・タグ/フラグ・ストレージは、ヴィクティム
・データ・キャッシュ・ライン・ストレージ160に現
在ストアされている16個のヴィクティム・データ・キ
ャッシュ・サブ・ラインのそれぞれに対する対応する2
2ビットのタグをストアする。各タグは、対応するヴィ
クティム・データ・キャッシュ・サブラインを識別し、
そのヴィクティム・データ・キャッシュ・サブラインが
通常メイン・メモリ内に占有するメモリ位置を示す。こ
れらのタグは、ヴィクティム・データ・キャッシュ・ロ
ジック166によって、送出された各25ビット・デー
タ・アドレスA24〜A0の19アドレス・ビットA2
4〜A6と比較される。更に、ヴィクティム・データ・
キャッシュ・タグ/フラグ・ストレージはフラッシュ・
フラグをストアし、そのフラッシュ・フラグは、次にど
のヴィクティム・データ・キャッシュ・サブラインがフ
ラッシュされ、新しいヴィクティム・データ・キャッシ
ュ・サブラインがそのヴィクティム・データ・キャッシ
ュに書き込まれるかを識別する。
【0040】ヴィクティム・データ・キャッシュ106
の動作はヴィクティム・データ・キャッシュ・ロジック
166によって制御される。図8に示すように、ヴィク
ティム・データ・キャッシュ・ロジック166はヴィク
ティム・データ・キャッシュ制御状態マシン168及び
ヴィクティム・データ・キャッシュ・アドレス/タグ比
較回路170を含む。図9は、ヴィクティム・データ・
キャッシュ・ロジック制御状態マシンの動作状態を示
す。
の動作はヴィクティム・データ・キャッシュ・ロジック
166によって制御される。図8に示すように、ヴィク
ティム・データ・キャッシュ・ロジック166はヴィク
ティム・データ・キャッシュ制御状態マシン168及び
ヴィクティム・データ・キャッシュ・アドレス/タグ比
較回路170を含む。図9は、ヴィクティム・データ・
キャッシュ・ロジック制御状態マシンの動作状態を示
す。
【0041】図1を参照すると、CPUは、メイン・メ
モリに対してデータ・ワードを読み書きしようとすると
き、25ビットのデータ・アドレスA24〜A0をデー
タ・アドレス・バス110上に送出する。送出されたデ
ータ・アドレスは、データ・ワードが読み書きされるメ
イン・メモリ内のアドレス空間のメモリ位置を指定す
る。CPUは読み出しか書き込みかを示す書き込み/読
み出し(W/R)信号も制御バス116上に送出する。
モリに対してデータ・ワードを読み書きしようとすると
き、25ビットのデータ・アドレスA24〜A0をデー
タ・アドレス・バス110上に送出する。送出されたデ
ータ・アドレスは、データ・ワードが読み書きされるメ
イン・メモリ内のアドレス空間のメモリ位置を指定す
る。CPUは読み出しか書き込みかを示す書き込み/読
み出し(W/R)信号も制御バス116上に送出する。
【0042】次に図7〜図9に移り、CPU102によ
ってデータ・アドレスが送出される毎に、ヴィクティム
・データ・キャッシュ106のヴィクティム・データ・
キャッシュ・アドレス/タグ比較回路170は、ヴィク
ティム・データ・キャッシュ・タグ/フラグ・ストレー
ジ164に現在ストアされているタグとデータ・アドレ
ス・バス110上に送出されたデータ・アドレスの中の
19アドレス・ビットA24〜A6とを比較する。もし
一致すれば、ヴィクティム・データ・キャッシュ・アド
レス/タグ比較回路は、ヴィクティム・データ・キャッ
シュ・ヒットが生じたことを示すヴィクティム・データ
・キャッシュ・ヒット/ミス信号を送出する。これは、
送出されたアドレスによってアドレスされたメモリ位置
がヴィクティム・データ・ライン・ストレージ160内
にストアされたヴィクティム・データ・キャッシュ・サ
ブラインの1つで現在アクセス可能である事を意味す
る。ヴィクティム・データ・キャッシュ・ヒット/ミス
信号はまた、ヴィクティム・データ・キャッシュ・ヒッ
トが生じたヴィクティム・データ・キャッシュ・サブラ
インを識別する。しかし、一致しなければ、送出された
アドレスによってアドレスされたメモリ位置が、ヴィク
ティム・データ・キャッシュ・ライン・ストレージ内に
ストアされているヴィクティム・データ・キャッシュ・
サブラインの1つにおいて現在アクセスできないことを
意味し、ヴィクティム・データ・キャッシュ・アドレス
/タグ比較回路は、ヴィクティム・データ・キャッシュ
・ミスが生じたことを示すヴィクティム・データ・キャ
ッシュ・ヒット/ミス信号を送出する。
ってデータ・アドレスが送出される毎に、ヴィクティム
・データ・キャッシュ106のヴィクティム・データ・
キャッシュ・アドレス/タグ比較回路170は、ヴィク
ティム・データ・キャッシュ・タグ/フラグ・ストレー
ジ164に現在ストアされているタグとデータ・アドレ
ス・バス110上に送出されたデータ・アドレスの中の
19アドレス・ビットA24〜A6とを比較する。もし
一致すれば、ヴィクティム・データ・キャッシュ・アド
レス/タグ比較回路は、ヴィクティム・データ・キャッ
シュ・ヒットが生じたことを示すヴィクティム・データ
・キャッシュ・ヒット/ミス信号を送出する。これは、
送出されたアドレスによってアドレスされたメモリ位置
がヴィクティム・データ・ライン・ストレージ160内
にストアされたヴィクティム・データ・キャッシュ・サ
ブラインの1つで現在アクセス可能である事を意味す
る。ヴィクティム・データ・キャッシュ・ヒット/ミス
信号はまた、ヴィクティム・データ・キャッシュ・ヒッ
トが生じたヴィクティム・データ・キャッシュ・サブラ
インを識別する。しかし、一致しなければ、送出された
アドレスによってアドレスされたメモリ位置が、ヴィク
ティム・データ・キャッシュ・ライン・ストレージ内に
ストアされているヴィクティム・データ・キャッシュ・
サブラインの1つにおいて現在アクセスできないことを
意味し、ヴィクティム・データ・キャッシュ・アドレス
/タグ比較回路は、ヴィクティム・データ・キャッシュ
・ミスが生じたことを示すヴィクティム・データ・キャ
ッシュ・ヒット/ミス信号を送出する。
【0043】従来のヴィクティム・データ・キャッシュ
と異なり、典型的実施形態におけるヴィクティム・デー
タ・キャッシュ106は、ヴィクティム・データ・キャ
ッシュ・サブラインを1次データ・キャッシュ・バンク
122へライト・バックする(書き戻す)ためには使用
されない。言い換えれば、ヴィクティム・データ・キャ
ッシュは、データ・ワードをヴィクティム・データ・キ
ャッシュ・サブラインに書き込むことができず、またダ
ーティ・ヴィクティム・データ・キャッシュ・サブライ
ンを対応する1次データ・キャッシュ・バンクにライト
・バックすることができない。これは、後で論ずるよう
にタイミングと体系的制約によるものである。
と異なり、典型的実施形態におけるヴィクティム・デー
タ・キャッシュ106は、ヴィクティム・データ・キャ
ッシュ・サブラインを1次データ・キャッシュ・バンク
122へライト・バックする(書き戻す)ためには使用
されない。言い換えれば、ヴィクティム・データ・キャ
ッシュは、データ・ワードをヴィクティム・データ・キ
ャッシュ・サブラインに書き込むことができず、またダ
ーティ・ヴィクティム・データ・キャッシュ・サブライ
ンを対応する1次データ・キャッシュ・バンクにライト
・バックすることができない。これは、後で論ずるよう
にタイミングと体系的制約によるものである。
【0044】ヴィクティム・データ・キャッシュ制御状
態マシン168は、CPU102からのW/R信号を制
御バス上で受け取り、ヴィクティム・データ・キャッシ
ュ・ヒット/ミス信号をヴィクティム・データ・キャッ
シュ・アドレス/タグ比較回路170から受け取り、送
出されたアドレスの中の6アドレス・ビットA8〜A3
をデータ・アドレス・バス110上で受け取り、ヴィク
ティム・データ・キャッシュ・ライン・ストレージ16
0に現在ストアされているヴィクティム・データ・キャ
ッシュ・サブラインを受け取る。W/R信号により読み
出しが行われていることが示され、ヴィクティム・デー
タ・キャッシュ・ヒット/ミス信号がヴィクティム・デ
ータ・キャッシュ・ヒットが生じたことを示すと、ヴィ
クティム・データ・キャッシュ制御状態マシンはそのア
イドル状態(図9の状態171)から脱し、受け取った
6アドレス・ビットをデコードしてデータ・ワードを読
み出すべき識別されたヴィクティム・データ・キャッシ
ュ内のデータ・ワードのアクセス可能なメモリ位置を決
定する。ヴィクティム・データ・キャッシュ制御状態マ
シン168は、データ・ワードを識別されたヴィクティ
ム・データ・キャッシュ・サブラインから読み出し、C
PU102へ与える(図9の状態173)。これは、識
別されたヴィクティム・データ・キャッシュ・サブライ
ンのデータをデータ・バス108に送出してCPUが受
け取れるようにすることによって行われる。典型的実施
形態では、ヴィクティム・データ・キャッシュをアクセ
スし、ヴィクティム・データ・キャッシュ・サブライン
をCPUへ読み出すのにわずか1サイクルが必要なだけ
である。
態マシン168は、CPU102からのW/R信号を制
御バス上で受け取り、ヴィクティム・データ・キャッシ
ュ・ヒット/ミス信号をヴィクティム・データ・キャッ
シュ・アドレス/タグ比較回路170から受け取り、送
出されたアドレスの中の6アドレス・ビットA8〜A3
をデータ・アドレス・バス110上で受け取り、ヴィク
ティム・データ・キャッシュ・ライン・ストレージ16
0に現在ストアされているヴィクティム・データ・キャ
ッシュ・サブラインを受け取る。W/R信号により読み
出しが行われていることが示され、ヴィクティム・デー
タ・キャッシュ・ヒット/ミス信号がヴィクティム・デ
ータ・キャッシュ・ヒットが生じたことを示すと、ヴィ
クティム・データ・キャッシュ制御状態マシンはそのア
イドル状態(図9の状態171)から脱し、受け取った
6アドレス・ビットをデコードしてデータ・ワードを読
み出すべき識別されたヴィクティム・データ・キャッシ
ュ内のデータ・ワードのアクセス可能なメモリ位置を決
定する。ヴィクティム・データ・キャッシュ制御状態マ
シン168は、データ・ワードを識別されたヴィクティ
ム・データ・キャッシュ・サブラインから読み出し、C
PU102へ与える(図9の状態173)。これは、識
別されたヴィクティム・データ・キャッシュ・サブライ
ンのデータをデータ・バス108に送出してCPUが受
け取れるようにすることによって行われる。典型的実施
形態では、ヴィクティム・データ・キャッシュをアクセ
スし、ヴィクティム・データ・キャッシュ・サブライン
をCPUへ読み出すのにわずか1サイクルが必要なだけ
である。
【0045】しかし、CPU102から受け取ったW/
R信号が書き込みが行われることを示し、あるいはヴィ
クティム・データ・キャッシュ・ミスが生じたことを示
すヴィクティム・データ・キャッシュ・ヒット/ミス信
号が送出されると、ヴィクティム・データ・キャッシュ
制御状態マシン168はアイドル状態(図9の状態17
1)のままである。この場合、送出されたデータ・アド
レスによって指定されたメモリ位置に読み書きされるデ
ータ・ワードは、送出されたデータ・アドレスによって
指定されたメモリ位置を有する対応するメイン・メモリ
・バンク118を有するメモリ・ブロック104内の1
次データ・キャッシュ・バンク122に対して読み書き
をされなければならない。
R信号が書き込みが行われることを示し、あるいはヴィ
クティム・データ・キャッシュ・ミスが生じたことを示
すヴィクティム・データ・キャッシュ・ヒット/ミス信
号が送出されると、ヴィクティム・データ・キャッシュ
制御状態マシン168はアイドル状態(図9の状態17
1)のままである。この場合、送出されたデータ・アド
レスによって指定されたメモリ位置に読み書きされるデ
ータ・ワードは、送出されたデータ・アドレスによって
指定されたメモリ位置を有する対応するメイン・メモリ
・バンク118を有するメモリ・ブロック104内の1
次データ・キャッシュ・バンク122に対して読み書き
をされなければならない。
【0046】CPU102はヴィクティム・データ・キ
ャッシュ・ヒット/ミス信号も受け取る。従って、CP
Uは、読み出し中にヴィクティム・データ・キャッシュ
・ヒットが生じたことを示すヴィクティム・データ・キ
ャッシュ・ヒット/ミス信号を受け取ると、データ・バ
ス108を介してヴィクティム・データ・キャッシュ1
06によって与えられるべき送出されたデータ・アドレ
スによって指定されたメモリ位置でそのデータ・ワード
を待つ。しかし、CPUは、書き込み中にヴィクティム
・データ・キャッシュ・ヒットが生じたことを示すヴィ
クティム・データ・キャッシュ・ヒット/ミス信号を受
け取るか、あるいはヴィクティム・データ・キャッシュ
・ミスが生じたことを示すヴィクティム・データ・キャ
ッシュ・ヒット信号を受け取ると、送出されたデータ・
アドレスによって指定されたメモリ位置を有するメイン
・メモリ・バンク118に対応する1次データ・キャッ
シュ・バンク122によって1次データ・キャッシュ・
バンクのヒット信号又はミス信号が送出されたかどうか
を判定する。
ャッシュ・ヒット/ミス信号も受け取る。従って、CP
Uは、読み出し中にヴィクティム・データ・キャッシュ
・ヒットが生じたことを示すヴィクティム・データ・キ
ャッシュ・ヒット/ミス信号を受け取ると、データ・バ
ス108を介してヴィクティム・データ・キャッシュ1
06によって与えられるべき送出されたデータ・アドレ
スによって指定されたメモリ位置でそのデータ・ワード
を待つ。しかし、CPUは、書き込み中にヴィクティム
・データ・キャッシュ・ヒットが生じたことを示すヴィ
クティム・データ・キャッシュ・ヒット/ミス信号を受
け取るか、あるいはヴィクティム・データ・キャッシュ
・ミスが生じたことを示すヴィクティム・データ・キャ
ッシュ・ヒット信号を受け取ると、送出されたデータ・
アドレスによって指定されたメモリ位置を有するメイン
・メモリ・バンク118に対応する1次データ・キャッ
シュ・バンク122によって1次データ・キャッシュ・
バンクのヒット信号又はミス信号が送出されたかどうか
を判定する。
【0047】図2、5及び6を参照すると、各1次デー
タ・キャッシュ・バンク122において、1次データ・
キャッシュ・バンク・ロジック150の1次データ・キ
ャッシュ・バンク選択回路156は、各命令キャッシュ
・バンク120の命令キャッシュ・バンク・ロジック1
34の命令キャッシュ・バンク選択回路140と同様に
動作する。従って、1次データ・キャッシュ・バンク選
択回路156は、送出されたデータ・アドレスの上位4
ビットA24〜A21をデータ・アドレス・バス110
から受け取る。それに応答して、1次データ・キャッシ
ュ・バンク選択回路156は、これら4アドレス・ビッ
トをデコードしてこれらのビットが対応するメイン・メ
モリ・バンク118を識別しているかどうか判定する。
もし対応するメイン・メモリ・バンクを識別していれ
ば、1次データ・キャッシュ・バンク選択回路はバンク
選択信号を1次データ・キャッシュ・バンク制御状態マ
シン152及び1次データ・キャッシュ・バンク・アド
レス/タグ比較回路154に送って対応するメイン・メ
モリ・バンクが選択されたことを知らせる。その他の場
合は、バンク選択信号は、対応するメイン・メモリ・バ
ンクが選択されなかったことを示し、1次データ・キャ
ッシュ・バンク制御状態マシンはアイドル状態(図6の
状態157)のままである。
タ・キャッシュ・バンク122において、1次データ・
キャッシュ・バンク・ロジック150の1次データ・キ
ャッシュ・バンク選択回路156は、各命令キャッシュ
・バンク120の命令キャッシュ・バンク・ロジック1
34の命令キャッシュ・バンク選択回路140と同様に
動作する。従って、1次データ・キャッシュ・バンク選
択回路156は、送出されたデータ・アドレスの上位4
ビットA24〜A21をデータ・アドレス・バス110
から受け取る。それに応答して、1次データ・キャッシ
ュ・バンク選択回路156は、これら4アドレス・ビッ
トをデコードしてこれらのビットが対応するメイン・メ
モリ・バンク118を識別しているかどうか判定する。
もし対応するメイン・メモリ・バンクを識別していれ
ば、1次データ・キャッシュ・バンク選択回路はバンク
選択信号を1次データ・キャッシュ・バンク制御状態マ
シン152及び1次データ・キャッシュ・バンク・アド
レス/タグ比較回路154に送って対応するメイン・メ
モリ・バンクが選択されたことを知らせる。その他の場
合は、バンク選択信号は、対応するメイン・メモリ・バ
ンクが選択されなかったことを示し、1次データ・キャ
ッシュ・バンク制御状態マシンはアイドル状態(図6の
状態157)のままである。
【0048】各1次データ・キャッシュ・バンク122
において、バンク選択信号が、対応するメイン・メモリ
・バンク118が選択されたことを示すと、1次データ
・キャッシュ・バンク・アドレス/タグ比較回路154
は、1次データ・キャッシュ・バンク・タグ/フラグ・
ストレージ148に現在ストアされている1次データ・
キャッシュ・ライン・タグと、データ・アドレス・バス
110上に送出された12アドレス・ビットA20〜A
9とを比較する。これらの12アドレス・ビットは、読
み出しのため現在データ・ワードがストアされている
か、あるいは書き込みのためにこれからデータ・ワード
がストアされる対応するメイン・メモリ・バンクの行の
メモリ位置を識別する。
において、バンク選択信号が、対応するメイン・メモリ
・バンク118が選択されたことを示すと、1次データ
・キャッシュ・バンク・アドレス/タグ比較回路154
は、1次データ・キャッシュ・バンク・タグ/フラグ・
ストレージ148に現在ストアされている1次データ・
キャッシュ・ライン・タグと、データ・アドレス・バス
110上に送出された12アドレス・ビットA20〜A
9とを比較する。これらの12アドレス・ビットは、読
み出しのため現在データ・ワードがストアされている
か、あるいは書き込みのためにこれからデータ・ワード
がストアされる対応するメイン・メモリ・バンクの行の
メモリ位置を識別する。
【0049】もし一致していれば、1次データ・キャッ
シュ・アドレス/タグ比較回路154は、バンク選択信
号と共に1次データ・キャッシュ・バンク・ヒットが生
じたことを示す1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号を送出する。これは、送出されたデータ・
アドレスによって指定されたメモリ位置が、1次データ
・キャッシュ・バンク・ライン・ストレージ144にス
トアされている1次データ・キャッシュ・ラインの1つ
で現在アクセス可能であることを意味する。1次データ
・キャッシュ・バンク・ヒット/ミス信号は、この1次
データ・キャッシュ・ラインも識別する。一方、一致し
なければ、これは、送出されたデータ・アドレスによっ
てアドレスされたメモリ位置が、1次データ・キャッシ
ュ・バンク・ライン・ストレージ144にストアされて
いる1次データ・キャッシュ・ラインの1つにおいて現
在アクセス可能でないことを意味し、1次データ・キャ
ッシュ・バンク・アドレス/タグ比較回路は、バンク選
択信号と共に1次データ・キャッシュ・バンク・ミスが
生じたことを示す1次データ・キャッシュ・バンク・ヒ
ット/ミス信号を送出する。
シュ・アドレス/タグ比較回路154は、バンク選択信
号と共に1次データ・キャッシュ・バンク・ヒットが生
じたことを示す1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号を送出する。これは、送出されたデータ・
アドレスによって指定されたメモリ位置が、1次データ
・キャッシュ・バンク・ライン・ストレージ144にス
トアされている1次データ・キャッシュ・ラインの1つ
で現在アクセス可能であることを意味する。1次データ
・キャッシュ・バンク・ヒット/ミス信号は、この1次
データ・キャッシュ・ラインも識別する。一方、一致し
なければ、これは、送出されたデータ・アドレスによっ
てアドレスされたメモリ位置が、1次データ・キャッシ
ュ・バンク・ライン・ストレージ144にストアされて
いる1次データ・キャッシュ・ラインの1つにおいて現
在アクセス可能でないことを意味し、1次データ・キャ
ッシュ・バンク・アドレス/タグ比較回路は、バンク選
択信号と共に1次データ・キャッシュ・バンク・ミスが
生じたことを示す1次データ・キャッシュ・バンク・ヒ
ット/ミス信号を送出する。
【0050】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンク・ヒット/
ミス信号が1次データ・キャッシュ・バンク制御状態マ
シン152に与えられる。ヴィクティム・データ・キャ
ッシュ106からのヴィクティム・データ・キャッシュ
・ヒット/ミス信号も、CPUからのW/R信号と共に
制御バス116を介して1次データ・キャッシュ・バン
ク制御状態マシンに与えられる。
において、1次データ・キャッシュ・バンク・ヒット/
ミス信号が1次データ・キャッシュ・バンク制御状態マ
シン152に与えられる。ヴィクティム・データ・キャ
ッシュ106からのヴィクティム・データ・キャッシュ
・ヒット/ミス信号も、CPUからのW/R信号と共に
制御バス116を介して1次データ・キャッシュ・バン
ク制御状態マシンに与えられる。
【0051】前に示したように、読み出し中にヴィクテ
ィム・データ・キャッシュ・ヒットを表すヴィクティム
・データ・キャッシュ・ヒット/ミス信号が送出される
と、ヴィクティム・データ・キャッシュ106はCPU
に、送出されたアドレスによってアドレスされたメモリ
位置のデータ・ワードを与える。従って、各1次データ
・キャッシュ・バンク122において、1次データ・キ
ャッシュ・バンク制御状態マシン152は、ヴィクティ
ム・データ・キャッシュ・ヒットを示すヴィクティム・
データ・キャッシュ・ヒット/ミス信号及び読み出しを
示すW/R信号を受け取ると、アイドル状態(図6の状
態157)のままとなる。これは、1次データ・キャッ
シュ・バンク制御状態マシンが、1次データ・キャッシ
ュ・バンク・アドレス/タグ比較回路154から1次デ
ータ・キャッシュ・バンク・ヒットが生じたことを示す
1次データ・キャッシュ・バンク・ヒット/ミス信号を
受け取ったときも同じである。
ィム・データ・キャッシュ・ヒットを表すヴィクティム
・データ・キャッシュ・ヒット/ミス信号が送出される
と、ヴィクティム・データ・キャッシュ106はCPU
に、送出されたアドレスによってアドレスされたメモリ
位置のデータ・ワードを与える。従って、各1次データ
・キャッシュ・バンク122において、1次データ・キ
ャッシュ・バンク制御状態マシン152は、ヴィクティ
ム・データ・キャッシュ・ヒットを示すヴィクティム・
データ・キャッシュ・ヒット/ミス信号及び読み出しを
示すW/R信号を受け取ると、アイドル状態(図6の状
態157)のままとなる。これは、1次データ・キャッ
シュ・バンク制御状態マシンが、1次データ・キャッシ
ュ・バンク・アドレス/タグ比較回路154から1次デ
ータ・キャッシュ・バンク・ヒットが生じたことを示す
1次データ・キャッシュ・バンク・ヒット/ミス信号を
受け取ったときも同じである。
【0052】しかし、ヴィクティム・データ・キャッシ
ュ・ヒットを示すヴィクティム・データ・キャッシュヒ
ット/ミス信号が書き込み中に送出されたときや、ヴィ
クティム・データ・キャッシュ・ミスを示すヴィクティ
ム・データ・キャッシュ・ヒット/ミス信号が送出され
たときは、ヴィクティム・データ・キャッシュ106
は、送出されたデータ・アドレスによってアドレスされ
た場所をアクセスするためには用いられない。従って、
各1次データ・キャッシュ・バンク122において、今
説明した2つの条件のどちらにおいても、1次データ・
キャッシュ・バンク制御状態マシン152は、1次デー
タ・キャッシュ・バンク・ヒット/ミス信号及びバンク
選択信号が1次データ・キャッシュ・バンクのヒットが
生じたことを示す場合やミスが生じたことを示す場合の
何れにおいても、送出されたデータ・アドレスによって
指定されたメモリ位置でのデータ・ワードの読み・書き
を制御する。
ュ・ヒットを示すヴィクティム・データ・キャッシュヒ
ット/ミス信号が書き込み中に送出されたときや、ヴィ
クティム・データ・キャッシュ・ミスを示すヴィクティ
ム・データ・キャッシュ・ヒット/ミス信号が送出され
たときは、ヴィクティム・データ・キャッシュ106
は、送出されたデータ・アドレスによってアドレスされ
た場所をアクセスするためには用いられない。従って、
各1次データ・キャッシュ・バンク122において、今
説明した2つの条件のどちらにおいても、1次データ・
キャッシュ・バンク制御状態マシン152は、1次デー
タ・キャッシュ・バンク・ヒット/ミス信号及びバンク
選択信号が1次データ・キャッシュ・バンクのヒットが
生じたことを示す場合やミスが生じたことを示す場合の
何れにおいても、送出されたデータ・アドレスによって
指定されたメモリ位置でのデータ・ワードの読み・書き
を制御する。
【0053】各1次データ・キャッシュ・バンク122
からの1次データ・キャッシュ・バンク・ヒット/ミス
信号及びバンク選択信号は、制御バス116を介してC
PU102に与えられる。1次データ・キャッシュ・バ
ンクからのこれらの信号が、1次データ・キャッシュ・
バンク・ヒットが生じたことを示し、ヴィクティム・デ
ータ・キャッシュ・ヒットが生じたことを示すヴィクテ
ィム・データ・キャッシュ・ヒット/ミス信号が書き込
み中に受信された場合や、ヴィクティム・データ・キャ
ッシュ・ミスが生じたことを示すヴィクティム・データ
・キャッシュ・ヒット/ミス信号が受信された場合、C
PUは書き込みされるデータは1次データ・キャッシュ
・バンク122に対して直接読み・書きされることを知
る。CPUは従って、1次データ・キャッシュ・バンク
・ミスが生じた場合のように、送出されたデータ・アド
レスによって指定されたアクセス可能なメモリ位置を有
する1次データ・キャッシュ・ラインがメイン・メモリ
・バンクから1次データ・キャッシュ・バンクへ読み出
されるのを待つために命令パイプラインを遅らせること
はしない。
からの1次データ・キャッシュ・バンク・ヒット/ミス
信号及びバンク選択信号は、制御バス116を介してC
PU102に与えられる。1次データ・キャッシュ・バ
ンクからのこれらの信号が、1次データ・キャッシュ・
バンク・ヒットが生じたことを示し、ヴィクティム・デ
ータ・キャッシュ・ヒットが生じたことを示すヴィクテ
ィム・データ・キャッシュ・ヒット/ミス信号が書き込
み中に受信された場合や、ヴィクティム・データ・キャ
ッシュ・ミスが生じたことを示すヴィクティム・データ
・キャッシュ・ヒット/ミス信号が受信された場合、C
PUは書き込みされるデータは1次データ・キャッシュ
・バンク122に対して直接読み・書きされることを知
る。CPUは従って、1次データ・キャッシュ・バンク
・ミスが生じた場合のように、送出されたデータ・アド
レスによって指定されたアクセス可能なメモリ位置を有
する1次データ・キャッシュ・ラインがメイン・メモリ
・バンクから1次データ・キャッシュ・バンクへ読み出
されるのを待つために命令パイプラインを遅らせること
はしない。
【0054】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンク制御状態マ
シン152は、1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号、バンク選択信号及びW/R信号の他に、
データ・アドレス・バス110から、送出された6アド
レス・ビットA8〜A3及び1次データ・キャッシュ・
バンク・ライン・ストレージ144に現在ストアされて
いる1次データ・キャッシュ・ラインを受け取る。1次
データ・キャッシュ・バンク・ヒット/ミス信号及びバ
ンク選択信号が1次データ・キャッシュ・バンク・ヒッ
トが生じたことを示すと、1次データ・キャッシュ・バ
ンク制御状態マシン152は受け取った6データ・ビッ
トをデコードして1次データ・キャッシュ・バンク・ヒ
ット/ミス信号によって識別された1次データ・キャッ
シュ・ライン内の送出されたアドレスによって指定され
たアクセス可能なメモリ位置を1次データ・キャッシュ
・バンク・ヒットが生じた1次データ・キャッシュ・ラ
インと決定する。もしW/R信号が読み出しを示すと、
1次データ・キャッシュ・バンク制御状態マシンは、識
別されたデータ・キャッシュ・ライン内の決定された場
所からデータ・ワードを読み出してCPU102へ与え
る(図6の状態159)。これは、識別されたデータ・
キャッシュ・ラインのデータ・ワイドをデータ・バス1
08へ送出し、CPUがそれを受け取れるようにするこ
とによって行われる。典型的な実施形態では、1次デー
タ・キャッシュ・バンクをアクセスしてデータ・ワード
をCPUへ読み出すのにわずか1サイクルしか要しな
い。読み出しが一旦完了すると、1次データ・キャッシ
ュ・バンク制御状態マシンはアイドル状態へ戻る(図6
の状態157)。
において、1次データ・キャッシュ・バンク制御状態マ
シン152は、1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号、バンク選択信号及びW/R信号の他に、
データ・アドレス・バス110から、送出された6アド
レス・ビットA8〜A3及び1次データ・キャッシュ・
バンク・ライン・ストレージ144に現在ストアされて
いる1次データ・キャッシュ・ラインを受け取る。1次
データ・キャッシュ・バンク・ヒット/ミス信号及びバ
ンク選択信号が1次データ・キャッシュ・バンク・ヒッ
トが生じたことを示すと、1次データ・キャッシュ・バ
ンク制御状態マシン152は受け取った6データ・ビッ
トをデコードして1次データ・キャッシュ・バンク・ヒ
ット/ミス信号によって識別された1次データ・キャッ
シュ・ライン内の送出されたアドレスによって指定され
たアクセス可能なメモリ位置を1次データ・キャッシュ
・バンク・ヒットが生じた1次データ・キャッシュ・ラ
インと決定する。もしW/R信号が読み出しを示すと、
1次データ・キャッシュ・バンク制御状態マシンは、識
別されたデータ・キャッシュ・ライン内の決定された場
所からデータ・ワードを読み出してCPU102へ与え
る(図6の状態159)。これは、識別されたデータ・
キャッシュ・ラインのデータ・ワイドをデータ・バス1
08へ送出し、CPUがそれを受け取れるようにするこ
とによって行われる。典型的な実施形態では、1次デー
タ・キャッシュ・バンクをアクセスしてデータ・ワード
をCPUへ読み出すのにわずか1サイクルしか要しな
い。読み出しが一旦完了すると、1次データ・キャッシ
ュ・バンク制御状態マシンはアイドル状態へ戻る(図6
の状態157)。
【0055】しかし、もしW/R信号が書き込みを示す
場合には、1次データ・キャッシュ・バンク制御状態マ
シン152は、CPUからのデータ・ワードを識別され
たデータ・キャッシュ・ライン内の決定された場所へ書
き込む。これは、データ・バス108からのデータ・ワ
ードを、識別された1次データ・キャッシュ・ラインを
ストアする1次データ・キャッシュ・バンク・ライン・
ストレージ144内のバッファ146へ送出し、バッフ
ァにそのデータ・ワードをラッチさせる(図6の状態1
59)バッファ制御信号を送出することによって行われ
る。次に、識別された1次データ・キャッシュ・ライン
に対する対応するダーティ・フラグが1次データ・キャ
ッシュ・ラインがダーティであることを示していない場
合には、1次データ・キャッシュ・バンク制御状態マシ
ンは、そのダーティ・フラグを更新して1次データ・キ
ャッシュ・ラインがダーティであることを示す(図6の
小状態161)。これは、更新されたダーティ・フラグ
を1次データ・キャッシュ・バンク・タグ/フラグ・ス
トレージ148に与え、1次データ・キャッシュ・バン
ク・タグ/フラグ・ストレージにその更新されたダーテ
ィ・フラグをストアさせるストレージ制御信号を送出す
ることによって行われる。一旦書き込みが終了すると、
1次データ・キャッシュ・バンク制御状態マシンはアイ
ドル状態(図6の状態157)に戻る。
場合には、1次データ・キャッシュ・バンク制御状態マ
シン152は、CPUからのデータ・ワードを識別され
たデータ・キャッシュ・ライン内の決定された場所へ書
き込む。これは、データ・バス108からのデータ・ワ
ードを、識別された1次データ・キャッシュ・ラインを
ストアする1次データ・キャッシュ・バンク・ライン・
ストレージ144内のバッファ146へ送出し、バッフ
ァにそのデータ・ワードをラッチさせる(図6の状態1
59)バッファ制御信号を送出することによって行われ
る。次に、識別された1次データ・キャッシュ・ライン
に対する対応するダーティ・フラグが1次データ・キャ
ッシュ・ラインがダーティであることを示していない場
合には、1次データ・キャッシュ・バンク制御状態マシ
ンは、そのダーティ・フラグを更新して1次データ・キ
ャッシュ・ラインがダーティであることを示す(図6の
小状態161)。これは、更新されたダーティ・フラグ
を1次データ・キャッシュ・バンク・タグ/フラグ・ス
トレージ148に与え、1次データ・キャッシュ・バン
ク・タグ/フラグ・ストレージにその更新されたダーテ
ィ・フラグをストアさせるストレージ制御信号を送出す
ることによって行われる。一旦書き込みが終了すると、
1次データ・キャッシュ・バンク制御状態マシンはアイ
ドル状態(図6の状態157)に戻る。
【0056】しかし、CPUが1次データ・キャッシュ
・バンク122から1次データ・キャッシュ・バンク・
ミスが生じたことを示す1次データ・キャッシュ・バン
ク・ヒット/ミス信号及びバンク選択信号を受信し、ヴ
ィクティム・データ・キャッシュ・ヒットが生じたこと
を示すヴィクティム・データ・キャッシュ・ヒット/ミ
ス信号を書き込み中に受信するか、あるいはヴィクティ
ム・データ・キャッシュ・ミスが生じたことを示すヴィ
クティム・データ・キャッシュ・ヒット/ミス信号を受
信すると、CPUは、送出されたデータ・アドレスによ
って指定されたメモリ位置を有する新しい1次データ・
キャッシュ・ラインが対応するメイン・メモリ・バンク
118から1次データ・キャッシュ・バンクへ読み出さ
れる間時間稼ぎを行う。1次ヴィクティム・データ・キ
ャッシュ・ラインに対する対応するダーティ・フラグ
が、1次ヴィクティム・データ・キャッシュ・ラインが
ダーティであることを示すと、新しいデータ・キャッシ
ュ・ラインによって置き換えられつつある1次ヴィクテ
ィム・データ・キャッシュ・ラインをメイン・メモリ・
バンクに書き込む必要がある。この場合、CPUは更に
失速させられる。
・バンク122から1次データ・キャッシュ・バンク・
ミスが生じたことを示す1次データ・キャッシュ・バン
ク・ヒット/ミス信号及びバンク選択信号を受信し、ヴ
ィクティム・データ・キャッシュ・ヒットが生じたこと
を示すヴィクティム・データ・キャッシュ・ヒット/ミ
ス信号を書き込み中に受信するか、あるいはヴィクティ
ム・データ・キャッシュ・ミスが生じたことを示すヴィ
クティム・データ・キャッシュ・ヒット/ミス信号を受
信すると、CPUは、送出されたデータ・アドレスによ
って指定されたメモリ位置を有する新しい1次データ・
キャッシュ・ラインが対応するメイン・メモリ・バンク
118から1次データ・キャッシュ・バンクへ読み出さ
れる間時間稼ぎを行う。1次ヴィクティム・データ・キ
ャッシュ・ラインに対する対応するダーティ・フラグ
が、1次ヴィクティム・データ・キャッシュ・ラインが
ダーティであることを示すと、新しいデータ・キャッシ
ュ・ラインによって置き換えられつつある1次ヴィクテ
ィム・データ・キャッシュ・ラインをメイン・メモリ・
バンクに書き込む必要がある。この場合、CPUは更に
失速させられる。
【0057】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンク制御状態マ
シン152は、ダーティかどうかを判定するため、1次
データ・キャッシュ・バンク・ライン・ストレージ14
4にストアされている1次データ・キャッシュ・ライン
に対するダーティ・フラグを1次データ・キャッシュ・
バンク・タグ/フラグ・ストレージ148から受け取
る。前に説明したように、各ダーティ・フラグは、デー
タ・ワードが対応する1次データ・キャッシュ・ライン
に書き込まれ、ダーティ・フラグが1次データ・キャッ
シュ・ラインはダーティであることを示していないとき
はいつでも、対応する1次データ・キャッシュ・ライン
がダーティであることを示すように更新される。
において、1次データ・キャッシュ・バンク制御状態マ
シン152は、ダーティかどうかを判定するため、1次
データ・キャッシュ・バンク・ライン・ストレージ14
4にストアされている1次データ・キャッシュ・ライン
に対するダーティ・フラグを1次データ・キャッシュ・
バンク・タグ/フラグ・ストレージ148から受け取
る。前に説明したように、各ダーティ・フラグは、デー
タ・ワードが対応する1次データ・キャッシュ・ライン
に書き込まれ、ダーティ・フラグが1次データ・キャッ
シュ・ラインはダーティであることを示していないとき
はいつでも、対応する1次データ・キャッシュ・ライン
がダーティであることを示すように更新される。
【0058】各1次データ・キャッシュ・バンク122
の1次データ・キャッシュ・バンク制御状態マシン15
2は、1次データ・キャッシュ・バンクの1次データ・
キャッシュ・バンク・タグ/フラグ・ストレージ148
からLRUフラグを受信する。前に述べたように、LR
Uフラグは最も古い時点で用いられた1次データ・キャ
ッシュ・ラインを識別する。LRUフラグは、異なった
1次データ・キャッシュ・ラインが読み出し又は書き込
みのためにアクセスされる毎に1次データ・キャッシュ
・バンク制御状態マシンによって更新される。更新され
たLRUフラグは1次データ・キャッシュ・バンク・タ
グ/フラグ・ストレージに与えられ、1次データ・キャ
ッシュ・バンク制御状態マシンによって送出されたスト
レージ制御信号と共にストアされる。
の1次データ・キャッシュ・バンク制御状態マシン15
2は、1次データ・キャッシュ・バンクの1次データ・
キャッシュ・バンク・タグ/フラグ・ストレージ148
からLRUフラグを受信する。前に述べたように、LR
Uフラグは最も古い時点で用いられた1次データ・キャ
ッシュ・ラインを識別する。LRUフラグは、異なった
1次データ・キャッシュ・ラインが読み出し又は書き込
みのためにアクセスされる毎に1次データ・キャッシュ
・バンク制御状態マシンによって更新される。更新され
たLRUフラグは1次データ・キャッシュ・バンク・タ
グ/フラグ・ストレージに与えられ、1次データ・キャ
ッシュ・バンク制御状態マシンによって送出されたスト
レージ制御信号と共にストアされる。
【0059】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンクの1次デー
タ・キャッシュ・バンク制御状態マシン152は、1次
データ・キャッシュ・バンク・ミスが生じたことを示す
1次データ・キャッシュ・バンク・ヒット/ミス信号及
びバンク選択信号を受信し、ヴィクティム・データ・キ
ャッシュ・ヒットが生じたことを示すヴィクティム・デ
ータ・キャッシュ・ヒット/ミス信号及び書き込みが行
われることを示すW/R信号を受信するか、あるいはヴ
ィクティム・データ・キャッシュ・ミスが生じたことを
示すヴィクティム・データ・キャッシュ・ヒット/ミス
信号を受信すると、これは、送出されたデータ・アドレ
スによって指定されたメモリ位置を有する新しい1次デ
ータ・キャッシュ・ラインが対応するメイン・メモリ・
バンク118から読み出されなければならないことを意
味する。しかし、そうする前に、1次データ・キャッシ
ュ・バンク制御状態マシンはLRUフラグから、現在ス
トアされている1次データ・キャッシュ・ラインの内の
どちらが最も古く用いられたものであるか従って、新し
いデータ・キャッシュ・ラインによって置き換えられる
1次ヴィクティム・データ・キャッシュ・ラインである
かを決定する。
において、1次データ・キャッシュ・バンクの1次デー
タ・キャッシュ・バンク制御状態マシン152は、1次
データ・キャッシュ・バンク・ミスが生じたことを示す
1次データ・キャッシュ・バンク・ヒット/ミス信号及
びバンク選択信号を受信し、ヴィクティム・データ・キ
ャッシュ・ヒットが生じたことを示すヴィクティム・デ
ータ・キャッシュ・ヒット/ミス信号及び書き込みが行
われることを示すW/R信号を受信するか、あるいはヴ
ィクティム・データ・キャッシュ・ミスが生じたことを
示すヴィクティム・データ・キャッシュ・ヒット/ミス
信号を受信すると、これは、送出されたデータ・アドレ
スによって指定されたメモリ位置を有する新しい1次デ
ータ・キャッシュ・ラインが対応するメイン・メモリ・
バンク118から読み出されなければならないことを意
味する。しかし、そうする前に、1次データ・キャッシ
ュ・バンク制御状態マシンはLRUフラグから、現在ス
トアされている1次データ・キャッシュ・ラインの内の
どちらが最も古く用いられたものであるか従って、新し
いデータ・キャッシュ・ラインによって置き換えられる
1次ヴィクティム・データ・キャッシュ・ラインである
かを決定する。
【0060】しかし、各1次データ・キャッシュ・バン
ク122において、ヴィクティム・データ・キャッシュ
・ラインを新しいデータ・キャッシュ・ラインで置き換
える前に1次データ・キャッシュ・バンク制御状態マシ
ン152は、もしダーティであれば(図6の状態16
3)1次ヴィクティム・データ・キャッシュ・ラインを
対応するメイン・メモリ・バンク118にライト・バッ
クする。1次データ・キャッシュ・バンク制御状態マシ
ンは、1次データ・キャッシュ・バンク・タグ/フラグ
・ストレージ148から与えられた対応するダーティ・
フラグからその1次ヴィクティム・データ・キャッシュ
・ラインがダーティであるかどうかを判定することによ
ってこれを行う。もしダーティであれば、1次データ・
キャッシュ・バンク制御状態マシンは、ダーティな1次
ヴィクティム・データ・キャッシュ・ラインをライト・
バックする必要があることを示すダーティ・キャッシュ
・ライン書き込み信号を制御バス116上に送出する。
この信号はCPU102によって受信され、それに応答
してCPUは、ダーティな1次ヴィクティム・データ・
キャッシュ・ラインが対応するメイン・メモリ・バンク
にライト・バックされ、新しい1次データ・キャッシュ
・ラインが1次データ・キャッシュ・バンクに読み出さ
れるのを可能にするために時間稼ぎを行う。
ク122において、ヴィクティム・データ・キャッシュ
・ラインを新しいデータ・キャッシュ・ラインで置き換
える前に1次データ・キャッシュ・バンク制御状態マシ
ン152は、もしダーティであれば(図6の状態16
3)1次ヴィクティム・データ・キャッシュ・ラインを
対応するメイン・メモリ・バンク118にライト・バッ
クする。1次データ・キャッシュ・バンク制御状態マシ
ンは、1次データ・キャッシュ・バンク・タグ/フラグ
・ストレージ148から与えられた対応するダーティ・
フラグからその1次ヴィクティム・データ・キャッシュ
・ラインがダーティであるかどうかを判定することによ
ってこれを行う。もしダーティであれば、1次データ・
キャッシュ・バンク制御状態マシンは、ダーティな1次
ヴィクティム・データ・キャッシュ・ラインをライト・
バックする必要があることを示すダーティ・キャッシュ
・ライン書き込み信号を制御バス116上に送出する。
この信号はCPU102によって受信され、それに応答
してCPUは、ダーティな1次ヴィクティム・データ・
キャッシュ・ラインが対応するメイン・メモリ・バンク
にライト・バックされ、新しい1次データ・キャッシュ
・ラインが1次データ・キャッシュ・バンクに読み出さ
れるのを可能にするために時間稼ぎを行う。
【0061】1次データ・キャッシュ・バンク制御状態
マシン152は、書き込みが行われることを示すW/R
制御信号及び1次データ・キャッシュ・バンク・タグ/
フラグ・ストレージ148から与えられたダーティな1
次ヴィクティム・データ・キャッシュ・ラインに対する
対応するタグから受け取った12アドレス・ビットA2
0〜A9を対応するメイン・メモリ・バンク118に送
出することによって、ダーティな1次ヴィクティム・デ
ータ・キャッシュ・ラインをライト・バックする。更
に、1次データ・キャッシュ・バンク制御状態マシン
は、バッファ制御信号をライト・バックされつつあるダ
ーティな1次ヴィクティム・データ・キャッシュ・ライ
ンをストアするバッファ146に送出してダーティな1
次ヴィクティム・データ・キャッシュ・ラインが対応す
るメイン・メモリ・バンクのセンス・アンプ126へ送
出されるようにする。この12アドレス・ビットに応答
して、行デコーダ124は、その12アドレス・ビット
によって識別された対応するメイン・メモリ・バンクの
行を突き止める。更に、W/R制御信号に応答して、セ
ンス・アンプ126は、与えられたダーティな1次ヴィ
クティム・データ・キャッシュ・ラインを対応するメイ
ン・メモリ・バンクの識別された行に書き込む。典型的
実施形態では、ダーティな1次ヴィクティム・データ・
キャッシュ・ラインをライト・バックするのに6サイク
ルを必要とし、その内訳は、1次データ・キャッシュ・
バンク・ミスが生じたことを判定し、ダーティな1次ヴ
ィクティム・データ・キャッシュ・ラインを識別するた
めに1サイクル、センス・アンプをプリチャージし、行
デコーダによるアドレス・ビットのデコードに4サイク
ル、ダーティな1次ヴィクティム・データ・キャッシュ
・ラインをメイン・メモリ・バンクに書き込むのに1サ
イクルである。
マシン152は、書き込みが行われることを示すW/R
制御信号及び1次データ・キャッシュ・バンク・タグ/
フラグ・ストレージ148から与えられたダーティな1
次ヴィクティム・データ・キャッシュ・ラインに対する
対応するタグから受け取った12アドレス・ビットA2
0〜A9を対応するメイン・メモリ・バンク118に送
出することによって、ダーティな1次ヴィクティム・デ
ータ・キャッシュ・ラインをライト・バックする。更
に、1次データ・キャッシュ・バンク制御状態マシン
は、バッファ制御信号をライト・バックされつつあるダ
ーティな1次ヴィクティム・データ・キャッシュ・ライ
ンをストアするバッファ146に送出してダーティな1
次ヴィクティム・データ・キャッシュ・ラインが対応す
るメイン・メモリ・バンクのセンス・アンプ126へ送
出されるようにする。この12アドレス・ビットに応答
して、行デコーダ124は、その12アドレス・ビット
によって識別された対応するメイン・メモリ・バンクの
行を突き止める。更に、W/R制御信号に応答して、セ
ンス・アンプ126は、与えられたダーティな1次ヴィ
クティム・データ・キャッシュ・ラインを対応するメイ
ン・メモリ・バンクの識別された行に書き込む。典型的
実施形態では、ダーティな1次ヴィクティム・データ・
キャッシュ・ラインをライト・バックするのに6サイク
ルを必要とし、その内訳は、1次データ・キャッシュ・
バンク・ミスが生じたことを判定し、ダーティな1次ヴ
ィクティム・データ・キャッシュ・ラインを識別するた
めに1サイクル、センス・アンプをプリチャージし、行
デコーダによるアドレス・ビットのデコードに4サイク
ル、ダーティな1次ヴィクティム・データ・キャッシュ
・ラインをメイン・メモリ・バンクに書き込むのに1サ
イクルである。
【0062】更に、CPUはダーティな1次ヴィクティ
ム・データ・キャッシュ・ラインがライト・バック中は
時間稼ぎ(失速)をしているので、他の1次データ・キ
ャッシュ・バンク122はそれぞれ、もし少なくとも1
つのダーティな1次データ・キャッシュ・ラインをスト
アしていれば(図6の状態163)、ダーティな1次デ
ータ・キャッシュ・ラインを対応するメイン・メモリ・
バンク118にライト・バックする。これら他の1次デ
ータ・キャッシュ・バンクのそれぞれにおいて、制御バ
ス116上のダーティ・キャッシュ・ライン書き込み信
号が、ダーティな1次ヴィクティム・データ・キャッシ
ュ・ラインがライト・バック中であることを示し、バン
ク選択信号が、対応するメイン・メモリ・バンクが選択
されていないことを示していると、これが行われる。こ
のライト・バックは、他の1次データ・キャッシュ・バ
ンクのそれぞれの1次データ・キャッシュ・バンク制御
状態マシン152によって、今説明したと同様に制御さ
れる。しかし、1次データ・キャッシュ・バンクにスト
アされているダーティな1次データ・キャッシュ・ライ
ンが1つだけのときは、そのダーティな1次データ・キ
ャッシュ・ラインがライト・バックされる。しかし、2
つのダーティな1次データ・キャッシュ・ラインがある
とLRUフラグによってLRU1次データ・キャッシュ
・ラインと識別されたダーティな1次データ・キャッシ
ュ・ラインがライト・バックされる。このライト・バッ
クが完了すると、1次データ・キャッシュ・バンク制御
状態マシンはアイドル状態(図6の状態157)に戻
る。
ム・データ・キャッシュ・ラインがライト・バック中は
時間稼ぎ(失速)をしているので、他の1次データ・キ
ャッシュ・バンク122はそれぞれ、もし少なくとも1
つのダーティな1次データ・キャッシュ・ラインをスト
アしていれば(図6の状態163)、ダーティな1次デ
ータ・キャッシュ・ラインを対応するメイン・メモリ・
バンク118にライト・バックする。これら他の1次デ
ータ・キャッシュ・バンクのそれぞれにおいて、制御バ
ス116上のダーティ・キャッシュ・ライン書き込み信
号が、ダーティな1次ヴィクティム・データ・キャッシ
ュ・ラインがライト・バック中であることを示し、バン
ク選択信号が、対応するメイン・メモリ・バンクが選択
されていないことを示していると、これが行われる。こ
のライト・バックは、他の1次データ・キャッシュ・バ
ンクのそれぞれの1次データ・キャッシュ・バンク制御
状態マシン152によって、今説明したと同様に制御さ
れる。しかし、1次データ・キャッシュ・バンクにスト
アされているダーティな1次データ・キャッシュ・ライ
ンが1つだけのときは、そのダーティな1次データ・キ
ャッシュ・ラインがライト・バックされる。しかし、2
つのダーティな1次データ・キャッシュ・ラインがある
とLRUフラグによってLRU1次データ・キャッシュ
・ラインと識別されたダーティな1次データ・キャッシ
ュ・ラインがライト・バックされる。このライト・バッ
クが完了すると、1次データ・キャッシュ・バンク制御
状態マシンはアイドル状態(図6の状態157)に戻
る。
【0063】各1次データ・キャッシュ・バンク122
において、ダーティな1次ヴィクティム・データ・キャ
ッシュ・ラインが対応するメイン・メモリ・バンク11
8にライト・バックされるか、あるいは1次ヴィクティ
ム・データ・キャッシュ・ラインに対する対応するダー
ティ・フラグがその1次ヴィクティム・データ・キャッ
シュ・ラインはダーティでないことを示すと、1次デー
タ・キャッシュ・バンク制御状態マシン152は、送出
されたデータ・アドレスによって指定されたメモリ位置
を有する新しい1次データ・キャッシュ・ラインを対応
するメイン・メモリ・バンク118から1次データ・キ
ャッシュ・バンクに読み出す(図6の状態163)。こ
れは、書き込みが行われることを示すW/R制御信号及
びデータ・アドレス・バス110上に送出されたデータ
・アドレスの12アドレス・ビットA20〜A9を対応
するメイン・メモリ・バンク118へ送出することによ
って行われる。この12アドレス・ビットに応答して、
行デコーダ124は、この12アドレス・ビットによっ
て識別された対応するメイン・メモリ・バンクの行を突
き止める。更に、W/R制御信号に応答して、センス・
アンプ126は、対応するメイン・メモリ・バンクの識
別された行から新しい1次データ・キャッシュ・ライン
を読み出す。更に、1次データ・キャッシュ・バンク制
御状態マシンは、置き換えられつつある1次ヴィクティ
ム・データ・キャッシュ・ラインをストアしているバッ
ファ146にバッファ制御信号を送出して、新しい1次
ヴィクティム・データ・キャッシュ・ラインがそのバッ
ファにラッチされ、その1次ヴィクティム・データ・キ
ャッシュ・ラインを置き換えるようにする。典型的実施
形態では、これには5サイクルを必要とし、その内訳
は、センス・アンプのプリチャージ及び行デコーダによ
るアドレス・ビットのデコードに4サイクル、センス・
アンプによって読み出された新しい1次データ・キャッ
シュ・ラインをメイン・メモリ・バックにラッチするの
に1サイクルである。
において、ダーティな1次ヴィクティム・データ・キャ
ッシュ・ラインが対応するメイン・メモリ・バンク11
8にライト・バックされるか、あるいは1次ヴィクティ
ム・データ・キャッシュ・ラインに対する対応するダー
ティ・フラグがその1次ヴィクティム・データ・キャッ
シュ・ラインはダーティでないことを示すと、1次デー
タ・キャッシュ・バンク制御状態マシン152は、送出
されたデータ・アドレスによって指定されたメモリ位置
を有する新しい1次データ・キャッシュ・ラインを対応
するメイン・メモリ・バンク118から1次データ・キ
ャッシュ・バンクに読み出す(図6の状態163)。こ
れは、書き込みが行われることを示すW/R制御信号及
びデータ・アドレス・バス110上に送出されたデータ
・アドレスの12アドレス・ビットA20〜A9を対応
するメイン・メモリ・バンク118へ送出することによ
って行われる。この12アドレス・ビットに応答して、
行デコーダ124は、この12アドレス・ビットによっ
て識別された対応するメイン・メモリ・バンクの行を突
き止める。更に、W/R制御信号に応答して、センス・
アンプ126は、対応するメイン・メモリ・バンクの識
別された行から新しい1次データ・キャッシュ・ライン
を読み出す。更に、1次データ・キャッシュ・バンク制
御状態マシンは、置き換えられつつある1次ヴィクティ
ム・データ・キャッシュ・ラインをストアしているバッ
ファ146にバッファ制御信号を送出して、新しい1次
ヴィクティム・データ・キャッシュ・ラインがそのバッ
ファにラッチされ、その1次ヴィクティム・データ・キ
ャッシュ・ラインを置き換えるようにする。典型的実施
形態では、これには5サイクルを必要とし、その内訳
は、センス・アンプのプリチャージ及び行デコーダによ
るアドレス・ビットのデコードに4サイクル、センス・
アンプによって読み出された新しい1次データ・キャッ
シュ・ラインをメイン・メモリ・バックにラッチするの
に1サイクルである。
【0064】しかし、メイン・メモリ・バンク118を
アクセスして新しいデータ・キャッシュ・ラインを読み
出すには、行デコーダ124によるアドレス・ビット・
デコード及びセンス・アンプ126のプリチャージに時
間がかかるので、この時間を有効に使って、新しい1次
データ・キャッシュ・ラインがバッファ146にラッチ
される前に、1次ヴィクティム・データ・キャッシュ・
ラインの最近使われた(MRU, Most Recently Used)
1次データ・キャッシュ・サブラインをヴィクティム・
データ・キャッシュ106に書き込むことができる。1
次ヴィクティム・データ・キャッシュ・ラインのどの1
次データ・キャッシュ・サブラインがMRUサブライン
かを判定するために、各1次データ・キャッシュ・バン
ク122の1次データ・キャッシュ・バンク・タグ/フ
ラグ・ストレージ148は1次データ・キャッシュ・バ
ンク・ライン・ストレージ144にストアされている各
1次データ・キャッシュ・ラインのMRUヴィクティム
・データ・キャッシュ・サブラインを識別するMRUフ
ラグをストアする。更に、この時間中データ・バス10
8は使われていないので、これを有効に使ってMRUヴ
ィクティム・データ・キャッシュ・サブラインをヴィク
ティム・データ・キャッシュに書くことができる。
アクセスして新しいデータ・キャッシュ・ラインを読み
出すには、行デコーダ124によるアドレス・ビット・
デコード及びセンス・アンプ126のプリチャージに時
間がかかるので、この時間を有効に使って、新しい1次
データ・キャッシュ・ラインがバッファ146にラッチ
される前に、1次ヴィクティム・データ・キャッシュ・
ラインの最近使われた(MRU, Most Recently Used)
1次データ・キャッシュ・サブラインをヴィクティム・
データ・キャッシュ106に書き込むことができる。1
次ヴィクティム・データ・キャッシュ・ラインのどの1
次データ・キャッシュ・サブラインがMRUサブライン
かを判定するために、各1次データ・キャッシュ・バン
ク122の1次データ・キャッシュ・バンク・タグ/フ
ラグ・ストレージ148は1次データ・キャッシュ・バ
ンク・ライン・ストレージ144にストアされている各
1次データ・キャッシュ・ラインのMRUヴィクティム
・データ・キャッシュ・サブラインを識別するMRUフ
ラグをストアする。更に、この時間中データ・バス10
8は使われていないので、これを有効に使ってMRUヴ
ィクティム・データ・キャッシュ・サブラインをヴィク
ティム・データ・キャッシュに書くことができる。
【0065】従って、センス・アンプのプリチャージ中
及び行デコーダがアドレス・ビットをデコードしている
間、1次データ・キャッシュ・バンク制御状態マシン1
52は、1次データ・キャッシュ・バンク・タグ/フラ
グ・ストレージ148から受け取った対応するMRUフ
ラグからMRUヴィクティム・データ・キャッシュ・サ
ブラインを識別する。1次データ・キャッシュ・バンク
制御状態マシン152は、次にデータ・バス106を用
いて、MRUヴィクティム・データ・キャッシュ・サブ
ラインをヴィクティム・データ・キャッシュ106に送
出する(図6の小状態165)。典型的実施形態では、
データ・バスが64ビット幅すなわち1データ・ワード
幅であり、MRUヴィクティム・データ・キャッシュ・
サブラインが256ビット幅すなわち4データ・ワード
幅であるので、これは4サイクルで行われる。従って、
1次データ・キャッシュ・バンク制御状態マシンは、こ
の時間中64ビットすなわち1データ・ワードのMRU
ヴィクティム・データ・キャッシュ・サブラインを各サ
イクル毎にデータ・バスに送出する。
及び行デコーダがアドレス・ビットをデコードしている
間、1次データ・キャッシュ・バンク制御状態マシン1
52は、1次データ・キャッシュ・バンク・タグ/フラ
グ・ストレージ148から受け取った対応するMRUフ
ラグからMRUヴィクティム・データ・キャッシュ・サ
ブラインを識別する。1次データ・キャッシュ・バンク
制御状態マシン152は、次にデータ・バス106を用
いて、MRUヴィクティム・データ・キャッシュ・サブ
ラインをヴィクティム・データ・キャッシュ106に送
出する(図6の小状態165)。典型的実施形態では、
データ・バスが64ビット幅すなわち1データ・ワード
幅であり、MRUヴィクティム・データ・キャッシュ・
サブラインが256ビット幅すなわち4データ・ワード
幅であるので、これは4サイクルで行われる。従って、
1次データ・キャッシュ・バンク制御状態マシンは、こ
の時間中64ビットすなわち1データ・ワードのMRU
ヴィクティム・データ・キャッシュ・サブラインを各サ
イクル毎にデータ・バスに送出する。
【0066】図7〜9を再び参照すると、ヴィクティム
・データ・キャッシュ制御状態マシン168は、制御バ
ス116から、各1次データ・キャッシュ・バンク12
2からの1次データ・キャッシュ・バンク・ヒット/ミ
ス信号とバンク選択信号及びダーティ・キャッシュ・ラ
イン書き込み信号を受け取る。1次データ・キャッシュ
・バンクからの1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号及びバンク選択信号が、1次データ・キャ
ッシュ・バンク・ミスが生じたことを示し、ダーティ・
キャッシュ・ライン書き込み信号が、ダーティな1次ヴ
ィクティム・データ・キャッシュ・ラインがライト・バ
ックされないことを示すと、ヴィクティム・データ・キ
ャッシュ制御状態マシンは、1次データ・キャッシュ・
バンクによってデータ・バス108上に与えられたMR
Uヴィクティム・データ・キャッシュ・サブラインをヴ
ィクティム・データ・キャッシュ・ライン・ストレージ
160に書き込む(図9の状態175)。
・データ・キャッシュ制御状態マシン168は、制御バ
ス116から、各1次データ・キャッシュ・バンク12
2からの1次データ・キャッシュ・バンク・ヒット/ミ
ス信号とバンク選択信号及びダーティ・キャッシュ・ラ
イン書き込み信号を受け取る。1次データ・キャッシュ
・バンクからの1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号及びバンク選択信号が、1次データ・キャ
ッシュ・バンク・ミスが生じたことを示し、ダーティ・
キャッシュ・ライン書き込み信号が、ダーティな1次ヴ
ィクティム・データ・キャッシュ・ラインがライト・バ
ックされないことを示すと、ヴィクティム・データ・キ
ャッシュ制御状態マシンは、1次データ・キャッシュ・
バンクによってデータ・バス108上に与えられたMR
Uヴィクティム・データ・キャッシュ・サブラインをヴ
ィクティム・データ・キャッシュ・ライン・ストレージ
160に書き込む(図9の状態175)。
【0067】ヴィクティム・データ・キャッシュ制御状
態マシン168は、どのヴィクティム・データ・キャッ
シュ・サブラインがMRUヴィクティム・データ・キャ
ッシュ・サブラインで置き換えられるべきかを先ず決定
することによってこれを行う。読み出し中にヴィクティ
ム・データ・キャッシュ・ヒットがあった場合は、ヴィ
クティム・データ・キャッシュ制御状態マシン168
は、ヒットが生じたヴィクティム・データ・キャッシュ
・サブラインをMRUヴィクティム・データ・キャッシ
ュ・サブラインで置き換える。これは、MRUヴィクテ
ィム・データ・キャッシュ・サブラインを与える1次デ
ータ・キャッシュ・バンク122で1次データ・キャッ
シュ・バンク・ミスが生じ、それに対応して対応するメ
イン・メモリ・バンクから1次データ・キャッシュ・バ
ンクに読み出される1次データ・キャッシュ・ラインが
置き換えられるヴィクティム・データ・キャッシュ・サ
ブラインを含んでいるために行われる。これは、置き換
えられつつあるヴィクティム・データ・キャッシュ・サ
ブラインでヴィクティム・データ・キャッシュ・ヒット
が生じたという事実によって示される。
態マシン168は、どのヴィクティム・データ・キャッ
シュ・サブラインがMRUヴィクティム・データ・キャ
ッシュ・サブラインで置き換えられるべきかを先ず決定
することによってこれを行う。読み出し中にヴィクティ
ム・データ・キャッシュ・ヒットがあった場合は、ヴィ
クティム・データ・キャッシュ制御状態マシン168
は、ヒットが生じたヴィクティム・データ・キャッシュ
・サブラインをMRUヴィクティム・データ・キャッシ
ュ・サブラインで置き換える。これは、MRUヴィクテ
ィム・データ・キャッシュ・サブラインを与える1次デ
ータ・キャッシュ・バンク122で1次データ・キャッ
シュ・バンク・ミスが生じ、それに対応して対応するメ
イン・メモリ・バンクから1次データ・キャッシュ・バ
ンクに読み出される1次データ・キャッシュ・ラインが
置き換えられるヴィクティム・データ・キャッシュ・サ
ブラインを含んでいるために行われる。これは、置き換
えられつつあるヴィクティム・データ・キャッシュ・サ
ブラインでヴィクティム・データ・キャッシュ・ヒット
が生じたという事実によって示される。
【0068】しかし、ヴィクティム・データ・キャッシ
ュ・ミスがあった場合には、ヴィクティム・データ・キ
ャッシュ制御状態マシン168は、LRUヴィクティム
・データ・キャッシュ・サブラインをMRUヴィクティ
ム・データ・キャッシュ・サブラインで置き換える。L
RUヴィクティム・データ・キャッシュ・サブラインは
ヴィクティム・データ・キャッシュ・タグ/フラグ・ス
トレージ164にストアされているLRUフラグによっ
て識別される。LRUフラグは、ヴィクティム・データ
・キャッシュ・サブラインが読み出しのためにアクセス
される毎にヴィクティム・データ・キャッシュ制御状態
マシンによって更新される。更新されたLRUフラグ
は、次にヴィクティム・データ・キャッシュ・タグ/フ
ラグ・ストレージに与えられ、ヴィクティム・データ・
キャッシュ制御状態マシンから送出されたストレージ制
御信号と共にストアされる。
ュ・ミスがあった場合には、ヴィクティム・データ・キ
ャッシュ制御状態マシン168は、LRUヴィクティム
・データ・キャッシュ・サブラインをMRUヴィクティ
ム・データ・キャッシュ・サブラインで置き換える。L
RUヴィクティム・データ・キャッシュ・サブラインは
ヴィクティム・データ・キャッシュ・タグ/フラグ・ス
トレージ164にストアされているLRUフラグによっ
て識別される。LRUフラグは、ヴィクティム・データ
・キャッシュ・サブラインが読み出しのためにアクセス
される毎にヴィクティム・データ・キャッシュ制御状態
マシンによって更新される。更新されたLRUフラグ
は、次にヴィクティム・データ・キャッシュ・タグ/フ
ラグ・ストレージに与えられ、ヴィクティム・データ・
キャッシュ制御状態マシンから送出されたストレージ制
御信号と共にストアされる。
【0069】ヴィクティム・データ・キャッシュ制御状
態マシン168は、MRUヴィクティム・データ・キャ
ッシュ・サブラインを、置き換えられつつあるヴィクテ
ィム・データ・キャッシュ・サブラインを現在ストアし
ているバッファ162にストアする。これは、MRUヴ
ィクティム・データ・キャッシュ・サブラインを転送す
るのに要する4サイクル中にデータ・バス上で受信した
64ビットのブロックをバッファの対応するラッチへ送
出することによって行われる。同時に、64ビットのブ
ロックをバッファにラッチできるように、この4サイク
ルの間にバッファ制御信号が対応するラッチに送出され
る。
態マシン168は、MRUヴィクティム・データ・キャ
ッシュ・サブラインを、置き換えられつつあるヴィクテ
ィム・データ・キャッシュ・サブラインを現在ストアし
ているバッファ162にストアする。これは、MRUヴ
ィクティム・データ・キャッシュ・サブラインを転送す
るのに要する4サイクル中にデータ・バス上で受信した
64ビットのブロックをバッファの対応するラッチへ送
出することによって行われる。同時に、64ビットのブ
ロックをバッファにラッチできるように、この4サイク
ルの間にバッファ制御信号が対応するラッチに送出され
る。
【0070】再び図2、5及び6に転ずると、各1次デ
ータ・キャッシュ・バンク122において、新しい1次
データ・キャッシュ・ラインが1次データ・キャッシュ
・バンクに読み出され、MRUヴィクティム・データ・
キャッシュ・サブラインがヴィクティム・データ・キャ
ッシュ106に読み出された後、前に説明したようにデ
ータ・ワードが新しい1次データ・キャッシュ・ライン
に対して読み・書きされる(図6の状態159及び16
1)。
ータ・キャッシュ・バンク122において、新しい1次
データ・キャッシュ・ラインが1次データ・キャッシュ
・バンクに読み出され、MRUヴィクティム・データ・
キャッシュ・サブラインがヴィクティム・データ・キャ
ッシュ106に読み出された後、前に説明したようにデ
ータ・ワードが新しい1次データ・キャッシュ・ライン
に対して読み・書きされる(図6の状態159及び16
1)。
【0071】従って、前述から、16個の1次データ・
キャッシュ・バンク122は16Kバイトを有する2ウ
ェイのセット・アソシエイティブ・データ・キャッシュ
を形成し、ヴィクティム・データ・キャッシュ106は
16ウェイのフル・アソシエイティブのヴィクティム・
データ・キャッシュである。更に、まとめると、P/M
装置100のデータ・キャッシュ・システムを形成す
る。各データ・キャッシュ・バンクにストアされる1次
データ・キャッシュ・ラインは全幅であり、オンチップ
であるので、全幅より少ないデータ・キャッシュ・ライ
ンをストアする従来のデータ・キャッシュに比べてキャ
ッシュ・ミスは大幅に低減される。命令キャッシュ・バ
ンク120によって形成される命令キャッシュのよう
に、この低いミス率は、高い空間的局所性でアクセスす
るために長いデータ・キャッシュ・ラインをプリフェッ
チする利点に起因する。更に、このミス率は、低い局所
性でのアクセスを吸収するオンチップのヴィクティム・
データ・キャッシュの利用によって一層低減される。更
に、オフチップのメイン・メモリとオンチップの命令キ
ャッシュに関して前述したような厳しい2次衝突効果の
ために、オフチップのメイン・メモリとオンチップのデ
ータ・キャッシュを有する従来のプロセッサは、全幅の
データ・キャッシュ・ラインの利益を利用することがで
きない。
キャッシュ・バンク122は16Kバイトを有する2ウ
ェイのセット・アソシエイティブ・データ・キャッシュ
を形成し、ヴィクティム・データ・キャッシュ106は
16ウェイのフル・アソシエイティブのヴィクティム・
データ・キャッシュである。更に、まとめると、P/M
装置100のデータ・キャッシュ・システムを形成す
る。各データ・キャッシュ・バンクにストアされる1次
データ・キャッシュ・ラインは全幅であり、オンチップ
であるので、全幅より少ないデータ・キャッシュ・ライ
ンをストアする従来のデータ・キャッシュに比べてキャ
ッシュ・ミスは大幅に低減される。命令キャッシュ・バ
ンク120によって形成される命令キャッシュのよう
に、この低いミス率は、高い空間的局所性でアクセスす
るために長いデータ・キャッシュ・ラインをプリフェッ
チする利点に起因する。更に、このミス率は、低い局所
性でのアクセスを吸収するオンチップのヴィクティム・
データ・キャッシュの利用によって一層低減される。更
に、オフチップのメイン・メモリとオンチップの命令キ
ャッシュに関して前述したような厳しい2次衝突効果の
ために、オフチップのメイン・メモリとオンチップのデ
ータ・キャッシュを有する従来のプロセッサは、全幅の
データ・キャッシュ・ラインの利益を利用することがで
きない。
【0072】当業者は、図1〜9の典型的実施形態に対
する多くの代替実施形態が存在することを認識するであ
ろう。例えば、メイン・メモリ・バンク118の行、及
びデータ及び命令キャッシュ・バンク・ライン・ストレ
ージにおけるバッファ130、146は4096ビット
の典型的幅とは異なった幅を有することができるが、同
じサイズの幅であることが望ましい。更に、各命令キャ
ッシュ・バンク及び各データ・キャッシュ・バンクは1
つ以上のバッファを持つことができる。更に、ヴィクテ
ィム・データ・キャッシュは、1次データ・キャッシュ
・バンクに対して使用されるヴィクティム・データ・キ
ャッシュのように、命令キャッシュ・バンクに使用でき
る。最後に、LRU方式によってヴィクティム・データ
・キャッシュ・ラインを判定したり、MRU方式によっ
てヴィクティム・データ・キャッシュに書き込むヴィク
ティム・データ・キャッシュ・サブラインを判定するの
ではなく、他の方式も使用できる。
する多くの代替実施形態が存在することを認識するであ
ろう。例えば、メイン・メモリ・バンク118の行、及
びデータ及び命令キャッシュ・バンク・ライン・ストレ
ージにおけるバッファ130、146は4096ビット
の典型的幅とは異なった幅を有することができるが、同
じサイズの幅であることが望ましい。更に、各命令キャ
ッシュ・バンク及び各データ・キャッシュ・バンクは1
つ以上のバッファを持つことができる。更に、ヴィクテ
ィム・データ・キャッシュは、1次データ・キャッシュ
・バンクに対して使用されるヴィクティム・データ・キ
ャッシュのように、命令キャッシュ・バンクに使用でき
る。最後に、LRU方式によってヴィクティム・データ
・キャッシュ・ラインを判定したり、MRU方式によっ
てヴィクティム・データ・キャッシュに書き込むヴィク
ティム・データ・キャッシュ・サブラインを判定するの
ではなく、他の方式も使用できる。
【0073】本発明についていくつかの具体的実施形態
を参照して説明したけれども、説明は本発明の例示的な
ものであり、発明を限定するように解釈すべきでない。
添付特許請求の範囲で定義された発明の真の精神と範囲
を逸脱することなく、様々な変更が当業者によって行わ
れるであろう。
を参照して説明したけれども、説明は本発明の例示的な
ものであり、発明を限定するように解釈すべきでない。
添付特許請求の範囲で定義された発明の真の精神と範囲
を逸脱することなく、様々な変更が当業者によって行わ
れるであろう。
【図1】 本発明による統合されたプロセッサ・メモリ
(P/M)装置のブロック図である。
(P/M)装置のブロック図である。
【図2】 P/M装置の各メモリ・ブロックのメイン・
メモリ・バンクと、1次データ・キャッシュ・バンク及
び命令キャッシュ・バンクのブロック図である。
メモリ・バンクと、1次データ・キャッシュ・バンク及
び命令キャッシュ・バンクのブロック図である。
【図3】 各命令キャッシュ・バンクの命令キャッシュ
・バンク・ロジックのブロック図である。
・バンク・ロジックのブロック図である。
【図4】 各命令キャッシュ・バンクの命令キャッシュ
・バンク・ロジックの状態の状態図である。
・バンク・ロジックの状態の状態図である。
【図5】 各1次データ・キャッシュ・バンクの1次キ
ャッシュ・バンク・ロジックのブロック図である。
ャッシュ・バンク・ロジックのブロック図である。
【図6】 各1次データ・キャッシュ・バンクの1次デ
ータ・キャッシュ・バンク・ロジックの状態の状態図で
ある。
ータ・キャッシュ・バンク・ロジックの状態の状態図で
ある。
【図7】 P/M装置のヴィクティム・キャッシュのブ
ロック図である。
ロック図である。
【図8】 ヴィクティム・キャッシュのヴィクティム・
キャッシュ・ロジックのブロック図である。
キャッシュ・ロジックのブロック図である。
【図9】 ヴィクティム・キャッシュ・ロジックの状態
の状態図である。
の状態図である。
100・・統合されたP/M装置 102・・CPU 103・・オン・チップのメモリ・システム 104・・メモリ・ブロック 118・・メイン・メモリ・バック 120・・命令キャッシュ・バンク 122・・データ・キャッシュ・バンク 128・・命令キャッシュ・バンク・ライン・ストレー
ジ 136・・命令キャッシュ・バンク制御状態マシン 144・・データ・キャッシュ・バンク・ライン・スト
レージ 152・・1次データ・キャッシュ・バンク制御状態マ
シン 168・・ヴィクティム・データ・キャッシュ制御状態
マシン
ジ 136・・命令キャッシュ・バンク制御状態マシン 144・・データ・キャッシュ・バンク・ライン・スト
レージ 152・・1次データ・キャッシュ・バンク制御状態マ
シン 168・・ヴィクティム・データ・キャッシュ制御状態
マシン
【手続補正書】
【提出日】平成9年9月17日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図2】
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 アンドレアス・ノアズィック アメリカ合衆国・94101−1901・カリフォ ルニア州・マウンテン ヴュー・チャーチ ストリート・801 (72)発明者 フォン・ポン アメリカ合衆国・94040・カリフォルニア 州・マウンテン ヴュー・ブライアント アヴェニュ・150
Claims (3)
- 【請求項1】 統合されたプロセッサ・メモリ装置にお
いて、 所定のアドレス空間を有していて、前記アドレス空間の
対応する部分をそれぞれ占めるメイン・メモリ・バンク
を含むメイン・メモリを備え、前記メイン・メモリ・バ
ンクの各々に、前記アドレス空間の対応する部分内のア
ドレスを有するメモリ位置にワードがストアされ、 前記メモリ・バンクの各々に結合された中央処理装置
(CPU)を備え、 ヴィクティム・キャッシュを備え、このヴィクティム・
キャッシュには、 ワードのヴィクティム・キャッシュ・サブラインをスト
アするヴィクティム・キャッシュ・ストレージが設けら
れ、各ヴィクティム・キャッシュ・サブラインは、メイ
ン・メモリの対応するメモリ位置を有しており、 前記ヴィクティム・キャッシュ・サブラインの各々に対
して対応するヴィクティム・キャッシュ・タグをストア
するヴィクティム・キャッシュ・バンク・タグ・ストレ
ージが設けられ、前記ヴィクティム・キャッシュ・タグ
の各々により、対応するヴィクティム・キャッシュ・サ
ブラインのメイン・メモリにおけるメモリ位置が識別さ
れ、 前記CPU及び前記ヴィクティム・キャッシュ・サブラ
イン・ストレージに結合されたヴィクティム・キャッシ
ュ・ロジックが設けられ、このヴィクティム・キャッシ
ュ・ロジックは、前記CPUによりメイン・メモリのア
ドレス空間におけるアドレスが送出されると、前記アド
レスおよび前記ヴィクティム・キャッシュ・サブライン
のアドレスタグから、前記ヴィクティム・キャッシュ・
ストレージにおいてヴィクティム・キャッシュ・ヒット
又はヴィクティム・キャッシュ・ミスの何れが生じたか
を決定し、そして、ヴィクティム・キャッシュ・ミスの
ときは、ヴィクティム・キャッシュ・ストレージにおけ
るヴィクティム・キャッシュ・サブラインから選択した
ヴィクティム・キャッシュ・サブラインを、新しいヴィ
クティム・キャッシュ・サブラインと置き換えるもので
あり、 1次キャッシュ・バンクを含む1次キャッシュを備え、
前記1次キャッシュ・バンクの各々は、前記メイン・メ
モリバンクの対応するメイン・メモリ・バンクと、前記
ヴィクティム・キャッシュと、前記CPUとに結合され
ており、前記1次キャッシュバンクの各々には、 前記対応するメイン・メモリ・バンクに結合される1次
キャッシュ・バンク・ライン・ストレージにして、ワー
ドの1以上のキャッシュ・ラインをストアし、前記キャ
ッシュ・ラインの各々が前記対応するメイン・メモリバ
ンクにおける対応するメモリ位置を有する、1次キャッ
シュ・バンク・ライン・ストレージが設けられ、 前記キャッシュ・ラインの各々に対して対応するアドレ
ス・タグを記憶する1次キャッシュ・バンク・タグ・ス
トレージが設けられ、前記アドレス・タグの各々は、前
記対応するメイン・メモリバンクにおける前記対応する
キャッシュ・ラインのメモリ位置を識別し、 前記CPUと、前記対応するメイン・メモリ・バンク
と、前記1次キャッシュ・バンク・ライン・ストレージ
に結合された1次キャッシュ・バンク・ロジックが設け
られ、この1次キャッシュ・バンク・ロジックは、前記
CPUにより前記対応するメイン・メモリ・バンクの一
部のアドレス空間におけるアドレスが送出されると、前
記アドレス及び前記キャッシュラインのアドレス・タグ
から、前記1次キャッシュ・バンク・ライン・ストレー
ジにおいてキャッシュ・ヒット又はキャッシュ・ミスの
何れが生じたかを決定し、そして、キャッシュ・ミスの
ときは、前記1次キャッシュ・バンク・ライン・ストレ
ージのキャッシュ・ラインにおけるヴィクティム・キャ
ッシュ・ラインを、前記送出されたアドレスによって指
定された対応するメイン・メモリ・バンクの前記対応す
るメモリ位置からの新しいキャッシュ・ラインで置き換
え、前記ヴィクティム・キャッシュ・ラインのサブライ
ンを前記新しいヴィクティム・キャッシュ・サブライン
としてルーティングすることを特徴とする統合されたプ
ロセッサ・メモリ装置。 - 【請求項2】 中央処理装置(CPU)及びメイン・メ
モリとともに使用するキャッシュ・セットであって、 前記メイン・メモリは所定のアドレス空間を有し且つメ
イン・メモリ・バンクを含み、前記メイン・メモリバン
クの各々が前記アドレス空間の対応する部分を占有し、
前記メイン・メモリ・バンクの各々に、前記アドレス空
間の対応する部分内のアドレスを有するメモリ位置にワ
ードがストアされ、 ヴィクティム・キャッシュを備え、このヴィクティム・
キャッシュには、 ワードのヴィクティム・キャッシュ・サブラインをスト
アするヴィクティム・キャッシュ・ストレージが設けら
れ、各ヴィクティム・キャッシュ・サブラインは、メイ
ン・メモリの対応するメモリ位置を有しており、 前記ヴィクティム・キャッシュ・サブラインの各々に対
して対応するヴィクティム・キャッシュ・タグをストア
するヴィクティム・キャッシュ・バンク・タグ・ストレ
ージが設けられ、前記ヴィクティム・キャッシュ・タグ
の各々により、対応するヴィクティム・キャッシュ・サ
ブラインのメイン・メモリにおけるメモリ位置が識別さ
れ、 前記CPU及び前記ヴィクティム・キャッシュ・サブラ
イン・ストレージに結合されたヴィクティム・キャッシ
ュ・ロジックが設けられ、このヴィクティム・キャッシ
ュ・ロジックは、前記CPUによりメイン・メモリのア
ドレス空間におけるアドレスが送出されると、前記アド
レスおよび前記ヴィクティム・キャッシュ・サブライン
のアドレスタグから、前記ヴィクティム・キャッシュ・
ストレージにおいてヴィクティム・キャッシュ・ヒット
又はヴィクティム・キャッシュ・ミスの何れが生じたか
を決定し、そして、ヴィクティム・キャッシュ・ミスの
ときは、ヴィクティム・キャッシュ・ストレージにおけ
るヴィクティム・キャッシュ・サブラインから選択した
ヴィクティム・キャッシュ・サブラインを、新しいヴィ
クティム・キャッシュ・サブラインと置き換えるもので
あり、 1次キャッシュ・バンクを含む1次キャッシュを備え、
前記1次キャッシュ・バンクの各々は、前記メイン・メ
モリバンクの対応するメイン・メモリ・バンクと、前記
ヴィクティム・キャッシュと、前記CPUとに結合され
ており、前記1次キャッシュバンクの各々には、 前記対応するメイン・メモリ・バンクに結合される1次
キャッシュ・バンク・ライン・ストレージにして、ワー
ドの1以上のキャッシュ・ラインをストアし、前記キャ
ッシュ・ラインの各々が前記対応するメイン・メモリバ
ンクにおける対応するメモリ位置を有する、1次キャッ
シュ・バンク・ライン・ストレージが設けられ、 前記キャッシュ・ラインの各々に対して対応するアドレ
ス・タグを記憶する1次キャッシュ・バンク・タグ・ス
トレージが設けられ、前記アドレス・タグの各々は、前
記対応するメイン・メモリバンクにおける前記対応する
キャッシュ・ラインのメモリ位置を識別し、 前記CPUと、前記対応するメイン・メモリ・バンク
と、前記1次キャッシュ・バンク・ライン・ストレージ
に結合された1次キャッシュ・バンク・ロジックが設け
られ、この1次キャッシュ・バンク・ロジックは、前記
CPUにより前記対応するメイン・メモリ・バンクの一
部のアドレス空間におけるアドレスが送出されると、前
記アドレス及び前記キャッシュラインのアドレス・タグ
から、前記1次キャッシュ・バンク・ライン・ストレー
ジにおいてキャッシュ・ヒット又はキャッシュ・ミスの
何れが生じたかを決定し、そして、キャッシュ・ミスの
ときは、前記1次キャッシュ・バンク・ライン・ストレ
ージのキャッシュ・ラインにおけるヴィクティム・キャ
ッシュ・ラインを、前記送出されたアドレスによって指
定された対応するメイン・メモリ・バンクの前記対応す
るメモリ位置からの新しいキャッシュ・ラインで置き換
え、前記ヴィクティム・キャッシュ・ラインのサブライ
ンを前記新しいヴィクティム・キャッシュ・サブライン
としてルーティングすることを特徴とする統合されたプ
ロセッサ・メモリ装置。 - 【請求項3】 中央処理装置(CPU)及びメイン・メ
モリとともに使用する、ヴィクティム・キャッシュ及び
1次キャッシュを設ける方法であって、 前記メイン・メモリは所定のアドレス空間を有し且つメ
イン・メモリ・バンクを含み、前記メイン・メモリバン
クの各々が前記アドレス空間の対応する部分を占有し、
前記メイン・メモリ・バンクの各々に、前記アドレス空
間の対応する部分内のアドレスを有するメモリ位置にワ
ードがストアされ、 前記メイン・メモリの対応するメモリ位置をそれぞれ有
するヴィクティム・キャッシュ・サブラインのワードを
ストアするステップと、 ヴィクティム・キャッシュ・サブラインの各々に対す
る、対応するヴィクティム・キャッシュ・タグにして、
前記対応するヴィクティム・キャッシュ・サブラインの
メイン・メモリ内のメモリ位置をそれぞれ識別するヴィ
クティム・キャッシュ・タグをストアするステップと、 前記CPUによりメイン・メモリのアドレス空間におけ
るアドレスが送出されたとき、前記アドレスおよび前記
ヴィクティム・キャッシュ・サブラインのアドレスタグ
から、前記ヴィクティム・キャッシュ・ストレージにお
いてヴィクティム・キャッシュ・ヒット又はヴィクティ
ム・キャッシュ・ミスの何れが生じたかを判定するステ
ップと、 ヴィクティム・キャッシュ・ミスのときは、ヴィクティ
ム・キャッシュ・ストレージにおけるヴィクティム・キ
ャッシュ・サブラインから選択したヴィクティム・キャ
ッシュ・サブラインを、新しいヴィクティム・キャッシ
ュ・サブラインと置き換えるステップと、 前記メイン・メモリ・バンク中の1つに対応する1次キ
ャッシュ・バンクを提供するステップとを備え、 前記1次キャッシュ・バンクの各々において、 1ワード以上のワードのキャッシュ・ラインをストアす
るステップを備え、前記キャッシュ・ラインの各々が、
前記対応するメイン・メモリ・バンク中の対応するメモ
リ位置を有し、 前記キャッシュ・ラインの各々に対して対応するアドレ
ス・タグをストアするステップを備え、前記アドレス・
タグの各々が前記対応するメイン・メモリ・バンク中の
前記対応するキャッシュ・ラインの前記メモリ位置を識
別し、 前記CPUにより前記対応するメイン・メモリ・バンク
の一部のアドレス空間におけるアドレスが送出されたと
き、前記アドレス及び前記キャッシュラインのアドレス
・タグから、前記1次キャッシュ・バンク・ライン・ス
トレージにおいてキャッシュ・ヒット又はキャッシュ・
ミスの何れが生じたかを決定するステップを備え、 キャッシュ・ミスのときは、前記1次キャッシュ・バン
ク・ライン・ストレージのキャッシュ・ラインにおける
ヴィクティム・キャッシュ・ラインを、前記送出された
アドレスによって指定された対応するメイン・メモリ・
バンクの前記対応するメモリ位置からの新しいキャッシ
ュ・ラインで置き換え、前記ヴィクティム・キャッシュ
・ラインのサブラインを前記新しいヴィクティム・キャ
ッシュ・サブラインとしてルーティングするステップを
備えている、ことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/675,272 US5900011A (en) | 1996-07-01 | 1996-07-01 | Integrated processor/memory device with victim data cache |
US08/675272 | 1996-07-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10133947A true JPH10133947A (ja) | 1998-05-22 |
Family
ID=24709757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9187285A Pending JPH10133947A (ja) | 1996-07-01 | 1997-06-30 | 統合されたプロセッサ・メモリ装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US5900011A (ja) |
EP (1) | EP0817067A3 (ja) |
JP (1) | JPH10133947A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005190494A (ja) * | 1999-01-21 | 2005-07-14 | Sony Computer Entertainment Inc | 高速プロセッサシステム、これを使用する方法及び記録媒体 |
KR100546295B1 (ko) * | 1999-07-27 | 2006-01-26 | 삼성전자주식회사 | 데이타 전송 시간을 줄인 2-레벨 캐쉬 메모리 시스템 |
US7028141B2 (en) | 1999-01-21 | 2006-04-11 | Sony Computer Entertainment Inc. | High-speed distributed data processing system and method |
JP2012194742A (ja) * | 2011-03-16 | 2012-10-11 | Nec Engineering Ltd | リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理方法 |
JP2014209392A (ja) * | 2014-08-13 | 2014-11-06 | Necエンジニアリング株式会社 | リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理用プログラム |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897656A (en) * | 1996-09-16 | 1999-04-27 | Corollary, Inc. | System and method for maintaining memory coherency in a computer system having multiple system buses |
US6185660B1 (en) * | 1997-09-23 | 2001-02-06 | Hewlett-Packard Company | Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss |
US6202126B1 (en) * | 1997-10-24 | 2001-03-13 | Compaq Computer Corporation | Victimization of clean data blocks |
US6101581A (en) * | 1997-10-24 | 2000-08-08 | Doren; Stephen Van | Separate victim buffer read and release control |
US6105108A (en) * | 1997-10-24 | 2000-08-15 | Compaq Computer Corporation | Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter |
US6195729B1 (en) * | 1998-02-17 | 2001-02-27 | International Business Machines Corporation | Deallocation with cache update protocol (L2 evictions) |
GB2385174B (en) * | 1999-01-19 | 2003-11-26 | Advanced Risc Mach Ltd | Memory control within data processing systems |
US6502171B1 (en) * | 1999-08-04 | 2002-12-31 | International Business Machines Corporation | Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data |
US6640267B1 (en) * | 1999-09-27 | 2003-10-28 | Cypress Semiconductor Corp. | Architecture for multi-queue storage element |
US7124160B2 (en) * | 2000-03-08 | 2006-10-17 | Sun Microsystems, Inc. | Processing architecture having parallel arithmetic capability |
US7080234B2 (en) * | 2000-03-08 | 2006-07-18 | Sun Microsystems, Inc. | VLIW computer processing architecture having the problem counter stored in a register file register |
WO2001067234A2 (en) * | 2000-03-08 | 2001-09-13 | Sun Microsystems, Inc. | Vliw computer processing architecture having a scalable number of register files |
US7028170B2 (en) * | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
US6631439B2 (en) | 2000-03-08 | 2003-10-07 | Sun Microsystems, Inc. | VLIW computer processing architecture with on-chip dynamic RAM |
EP1261912A2 (en) | 2000-03-08 | 2002-12-04 | Sun Microsystems, Inc. | Processing architecture having sub-word shuffling and opcode modification |
US6892295B2 (en) | 2000-03-08 | 2005-05-10 | Sun Microsystems, Inc. | Processing architecture having an array bounds check capability |
JP2001267578A (ja) * | 2000-03-17 | 2001-09-28 | Sony Corp | 薄膜半導体装置及びその製造方法 |
US6892279B2 (en) * | 2000-11-30 | 2005-05-10 | Mosaid Technologies Incorporated | Method and apparatus for accelerating retrieval of data from a memory system with cache by reducing latency |
US6587920B2 (en) | 2000-11-30 | 2003-07-01 | Mosaid Technologies Incorporated | Method and apparatus for reducing latency in a memory system |
US20020147884A1 (en) | 2001-04-05 | 2002-10-10 | Michael Peters | Method and circuit for increasing the memory access speed of an enhanced synchronous SDRAM |
US6931505B2 (en) * | 2001-12-31 | 2005-08-16 | Intel Corporation | Distributed memory module cache command formatting |
US6925534B2 (en) * | 2001-12-31 | 2005-08-02 | Intel Corporation | Distributed memory module cache prefetch |
US6938129B2 (en) * | 2001-12-31 | 2005-08-30 | Intel Corporation | Distributed memory module cache |
US6880044B2 (en) * | 2001-12-31 | 2005-04-12 | Intel Corporation | Distributed memory module cache tag look-up |
US7389387B2 (en) * | 2001-12-31 | 2008-06-17 | Intel Corporation | Distributed memory module cache writeback |
US6865646B2 (en) * | 2001-12-31 | 2005-03-08 | Intel Corporation | Segmented distributed memory module cache |
US6986001B2 (en) * | 2002-10-21 | 2006-01-10 | Silicon Graphics, Inc. | System and method for hierarchical approximation of least recently used replacement algorithms within a cache organized as two or more super-ways of memory blocks |
WO2004059491A1 (en) | 2002-12-30 | 2004-07-15 | Intel Corporation | Cache victim sector tag buffer |
US7254681B2 (en) | 2003-02-13 | 2007-08-07 | Intel Corporation | Cache victim sector tag buffer |
US8751753B1 (en) | 2003-04-09 | 2014-06-10 | Guillermo J. Rozas | Coherence de-coupling buffer |
US7636815B1 (en) | 2003-04-09 | 2009-12-22 | Klaiber Alexander C | System and method for handling direct memory accesses |
US6996679B2 (en) * | 2003-04-28 | 2006-02-07 | International Business Machines Corporation | Cache allocation mechanism for saving multiple elected unworthy members via substitute victimization and imputed worthiness of multiple substitute victim members |
US6993628B2 (en) * | 2003-04-28 | 2006-01-31 | International Business Machines Corporation | Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member |
US7028144B2 (en) * | 2003-10-28 | 2006-04-11 | Intel Corporation | Method and apparatus for an in-situ victim cache |
US7143240B2 (en) * | 2003-10-31 | 2006-11-28 | International Business Machines Corporation | System and method for providing a cost-adaptive cache |
US7418582B1 (en) | 2004-05-13 | 2008-08-26 | Sun Microsystems, Inc. | Versatile register file design for a multi-threaded processor utilizing different modes and register windows |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7290116B1 (en) | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7380047B2 (en) * | 2004-09-30 | 2008-05-27 | International Business Machines Corporation | Apparatus and method for filtering unused sub-blocks in cache memories |
US7380070B2 (en) * | 2005-02-17 | 2008-05-27 | Texas Instruments Incorporated | Organization of dirty bits for a write-back cache |
US7971002B1 (en) | 2005-04-07 | 2011-06-28 | Guillermo Rozas | Maintaining instruction coherency in a translation-based computer system architecture |
KR100717113B1 (ko) | 2005-09-12 | 2007-05-10 | 삼성전자주식회사 | 반도체 메모리 모듈 및 반도체 메모리 시스템 |
US7774549B2 (en) * | 2006-10-11 | 2010-08-10 | Mips Technologies, Inc. | Horizontally-shared cache victims in multiple core processors |
WO2012061048A1 (en) | 2010-11-04 | 2012-05-10 | Rambus Inc. | Techniques for storing data and tags in different memory arrays |
KR102116981B1 (ko) | 2013-10-02 | 2020-05-29 | 삼성전자 주식회사 | 광선 추적 가속 방법 및 장치 |
US20170168957A1 (en) * | 2015-12-10 | 2017-06-15 | Ati Technologies Ulc | Aware Cache Replacement Policy |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
CN114168525B (zh) | 2017-03-14 | 2023-12-19 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
US11144466B2 (en) * | 2019-06-06 | 2021-10-12 | Intel Corporation | Memory device with local cache array |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4725945A (en) * | 1984-09-18 | 1988-02-16 | International Business Machines Corp. | Distributed cache in dynamic rams |
US4894770A (en) * | 1987-06-01 | 1990-01-16 | Massachusetts Institute Of Technology | Set associative memory |
US5226147A (en) * | 1987-11-06 | 1993-07-06 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device for simple cache system |
US5184320A (en) * | 1988-02-12 | 1993-02-02 | Texas Instruments Incorporated | Cached random access memory device and system |
US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
US5317718A (en) * | 1990-03-27 | 1994-05-31 | Digital Equipment Corporation | Data processing system and method with prefetch buffers |
US5386547A (en) * | 1992-01-21 | 1995-01-31 | Digital Equipment Corporation | System and method for exclusive two-level caching |
US5649154A (en) * | 1992-02-27 | 1997-07-15 | Hewlett-Packard Company | Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits |
US5623627A (en) * | 1993-12-09 | 1997-04-22 | Advanced Micro Devices, Inc. | Computer memory architecture including a replacement cache |
US5687338A (en) * | 1994-03-01 | 1997-11-11 | Intel Corporation | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor |
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
JPH10502181A (ja) * | 1994-06-20 | 1998-02-24 | ネオマジック・コーポレイション | メモリインタフェースのないグラフィックスコントローラ集積回路 |
-
1996
- 1996-07-01 US US08/675,272 patent/US5900011A/en not_active Expired - Lifetime
-
1997
- 1997-06-25 EP EP97304523A patent/EP0817067A3/en not_active Withdrawn
- 1997-06-30 JP JP9187285A patent/JPH10133947A/ja active Pending
-
1999
- 1999-01-08 US US09/227,133 patent/US6128702A/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005190494A (ja) * | 1999-01-21 | 2005-07-14 | Sony Computer Entertainment Inc | 高速プロセッサシステム、これを使用する方法及び記録媒体 |
US7028141B2 (en) | 1999-01-21 | 2006-04-11 | Sony Computer Entertainment Inc. | High-speed distributed data processing system and method |
JP4656565B2 (ja) * | 1999-01-21 | 2011-03-23 | 株式会社ソニー・コンピュータエンタテインメント | 高速プロセッサシステム、これを使用する方法及び記録媒体 |
KR100546295B1 (ko) * | 1999-07-27 | 2006-01-26 | 삼성전자주식회사 | 데이타 전송 시간을 줄인 2-레벨 캐쉬 메모리 시스템 |
JP2012194742A (ja) * | 2011-03-16 | 2012-10-11 | Nec Engineering Ltd | リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理方法 |
JP2014209392A (ja) * | 2014-08-13 | 2014-11-06 | Necエンジニアリング株式会社 | リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理用プログラム |
Also Published As
Publication number | Publication date |
---|---|
US5900011A (en) | 1999-05-04 |
EP0817067A2 (en) | 1998-01-07 |
EP0817067A3 (en) | 1999-02-03 |
US6128702A (en) | 2000-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10133947A (ja) | 統合されたプロセッサ・メモリ装置 | |
JPH10177519A (ja) | 統合されたプロセッサ・メモリ装置 | |
US5559986A (en) | Interleaved cache for multiple accesses per clock cycle in a microprocessor | |
US5586295A (en) | Combination prefetch buffer and instruction cache | |
US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
US6161166A (en) | Instruction cache for multithreaded processor | |
JP2509766B2 (ja) | キャッシュメモリ交換プロトコル | |
US5781926A (en) | Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill | |
KR20010101695A (ko) | 가상 메모리 시스템에서의 메모리 접근 개선 기술 | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
US5809562A (en) | Cache array select logic allowing cache array size to differ from physical page size | |
JPH06318177A (ja) | キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム | |
JPH08328958A (ja) | 命令キャッシュ、キャッシュメモリ装置及びその方法 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP2001297037A (ja) | スマート・キャッシュ | |
US5835929A (en) | Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of a line fill | |
US6718439B1 (en) | Cache memory and method of operation | |
US5761714A (en) | Single-cycle multi-accessible interleaved cache | |
JPH0836491A (ja) | パイプライン・ストア命令を実行する装置及びその方法 | |
US5835934A (en) | Method and apparatus of low power cache operation with a tag hit enablement | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
JP2716350B2 (ja) | 電子データ記憶システム | |
US6415362B1 (en) | Method and system for write-through stores of varying sizes |