JPH08263371A - キャッシュにおいてコピーバック・アドレスを生成する装置および方法 - Google Patents
キャッシュにおいてコピーバック・アドレスを生成する装置および方法Info
- Publication number
- JPH08263371A JPH08263371A JP8018724A JP1872496A JPH08263371A JP H08263371 A JPH08263371 A JP H08263371A JP 8018724 A JP8018724 A JP 8018724A JP 1872496 A JP1872496 A JP 1872496A JP H08263371 A JPH08263371 A JP H08263371A
- Authority
- JP
- Japan
- Prior art keywords
- address
- cache
- data
- transaction
- unit
- 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
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 処理ユニット内のデータ・キャッシュ・ユニ
ット内での書込みのアドレス・フェーズ中に次読取りア
ドレスを提供する。 【解決手段】 この処理ユニットには、アドレス・バス
に結合されるデータ・キャッシュ・ユニットと、データ
・バスに結合される命令キャッシュ・ユニットが含まれ
る。この2つのバスは、さらに、マイクロプロセッサか
ら分離されたシステム・メモリ・コントローラに接続さ
れる。このプロトコルでは、事前取出しされたアドレス
が現データ・トランザクションのうちにロードされて、
次ラインフィル・アドレスを生成する。ラインフィル・
アドレスは、キャッシュ読取りミスが発生したかどうか
を判定する際に生成され、ミスが発生した場合、修正さ
れたキャッシュ・ラインが主記憶システムにコピーさ
れ、その後、ミスしたキャッシュ読取りラインが、シス
テム・メモリ・コントローラから内部キャッシュにロー
ドされる。
ット内での書込みのアドレス・フェーズ中に次読取りア
ドレスを提供する。 【解決手段】 この処理ユニットには、アドレス・バス
に結合されるデータ・キャッシュ・ユニットと、データ
・バスに結合される命令キャッシュ・ユニットが含まれ
る。この2つのバスは、さらに、マイクロプロセッサか
ら分離されたシステム・メモリ・コントローラに接続さ
れる。このプロトコルでは、事前取出しされたアドレス
が現データ・トランザクションのうちにロードされて、
次ラインフィル・アドレスを生成する。ラインフィル・
アドレスは、キャッシュ読取りミスが発生したかどうか
を判定する際に生成され、ミスが発生した場合、修正さ
れたキャッシュ・ラインが主記憶システムにコピーさ
れ、その後、ミスしたキャッシュ読取りラインが、シス
テム・メモリ・コントローラから内部キャッシュにロー
ドされる。
Description
【0001】
【発明の属する技術分野】本発明は、全般的にはデータ
記憶システムに関し、具体的には、プロセッサ・ユニッ
ト内部にキャッシュ・ユニットを有する記憶システムに
関する。さらに具体的に言うと、本発明は、書込みトラ
ンザクション中に次の読取りトランザクション・アドレ
スを提供する、処理システム内のメモリ管理システムに
関する。
記憶システムに関し、具体的には、プロセッサ・ユニッ
ト内部にキャッシュ・ユニットを有する記憶システムに
関する。さらに具体的に言うと、本発明は、書込みトラ
ンザクション中に次の読取りトランザクション・アドレ
スを提供する、処理システム内のメモリ管理システムに
関する。
【0002】
【従来の技術】現在の多くのコンピュータ・システムに
は、コンピュータ・システムの衝突する必要を満たそう
とする複数のレベルの記憶装置が含まれる。たとえば、
コンピュータ・システムは、超高速で動作するように設
計され、記憶装置は、そのコンピュータ・システム内で
使用される処理ユニットと同一の速度で動作する必要が
ある。困ったことに、高速な記憶要素のコストは、マイ
クロプロセッサ自体のコストに達しており、したがっ
て、入手可能な最高速の記憶装置を使用すると、システ
ム全体のコストが高くなる。妥協策の1つが、特定の応
用分野のために低速だがより安価な記憶装置を使用する
ことである。このような応用分野の1つが、プロセッサ
・ユニットが情報の使用を必要とする前にその情報を一
時的に保持するためのダイナミックRAMメモリの使用
である。もう1つの代替案が、高速だが少量で高価な、
処理ユニットと同一の速度で動作するキャッシュ・ユニ
ットの使用である。このキャッシュ・ユニットは、より
大量の短期間メモリと比較して少量なので、コンピュー
タ・システムの全体コストに関して、これを追加するこ
とは高価ではない。最後に、通常は、他のタイプの記憶
装置と比較して相対的に安価な、ハード・ディスク駆動
装置などの非常に大量の長期間記憶ユニットが供給され
る。
は、コンピュータ・システムの衝突する必要を満たそう
とする複数のレベルの記憶装置が含まれる。たとえば、
コンピュータ・システムは、超高速で動作するように設
計され、記憶装置は、そのコンピュータ・システム内で
使用される処理ユニットと同一の速度で動作する必要が
ある。困ったことに、高速な記憶要素のコストは、マイ
クロプロセッサ自体のコストに達しており、したがっ
て、入手可能な最高速の記憶装置を使用すると、システ
ム全体のコストが高くなる。妥協策の1つが、特定の応
用分野のために低速だがより安価な記憶装置を使用する
ことである。このような応用分野の1つが、プロセッサ
・ユニットが情報の使用を必要とする前にその情報を一
時的に保持するためのダイナミックRAMメモリの使用
である。もう1つの代替案が、高速だが少量で高価な、
処理ユニットと同一の速度で動作するキャッシュ・ユニ
ットの使用である。このキャッシュ・ユニットは、より
大量の短期間メモリと比較して少量なので、コンピュー
タ・システムの全体コストに関して、これを追加するこ
とは高価ではない。最後に、通常は、他のタイプの記憶
装置と比較して相対的に安価な、ハード・ディスク駆動
装置などの非常に大量の長期間記憶ユニットが供給され
る。
【0003】残念ながら、異なるタイプの記憶装置と異
なる種類の記憶位置を有すると、処理ユニットまたは、
周辺装置などのコンピュータ・システムに接続された他
の資源に必要もしくはこれらによって処理される最新の
正確なデータをメモリ・コントローラが維持するという
管理問題が生じる。したがって、処理システムは、使用
されるさまざまなタイプの記憶ユニットの間でメモリの
一貫性を維持しなければならない。
なる種類の記憶位置を有すると、処理ユニットまたは、
周辺装置などのコンピュータ・システムに接続された他
の資源に必要もしくはこれらによって処理される最新の
正確なデータをメモリ・コントローラが維持するという
管理問題が生じる。したがって、処理システムは、使用
されるさまざまなタイプの記憶ユニットの間でメモリの
一貫性を維持しなければならない。
【0004】一貫性のあるメモリ・システムの主目的
は、そのシステムを使用するすべての装置にメモリの同
一のイメージを提供することである。一貫性があると、
共用される資源の同期と共同使用が可能になるが、そう
でないと、一部に古い値が含まれる、記憶位置の複数の
コピーがシステム内に存在し、その古い値が使用される
時にエラーが生じる可能性がある。システム内の潜在的
なバス・マスタのそれぞれが、そのキャッシュの状態を
維持するための規則に従わなければならない。
は、そのシステムを使用するすべての装置にメモリの同
一のイメージを提供することである。一貫性があると、
共用される資源の同期と共同使用が可能になるが、そう
でないと、一部に古い値が含まれる、記憶位置の複数の
コピーがシステム内に存在し、その古い値が使用される
時にエラーが生じる可能性がある。システム内の潜在的
なバス・マスタのそれぞれが、そのキャッシュの状態を
維持するための規則に従わなければならない。
【0005】キャッシュ一貫性プロトコルの一種が、共
用状態を省略する標準MESI4状態プロトコルの一貫
性のあるサブセットである。データを共用できないの
で、プロセッサは、キャッシュ・ブロック・フィルのす
べてを、それが書込みミス(read-with-intent-to-modi
fy、修正目的の読取り)であるかのように信号を送り、
これによって、プロセッサ外部のすべてのキャッシュの
対応するデータのコピーが、プロセッサのキャッシュ・
ブロック・フィル動作の前にフラッシュされる。
用状態を省略する標準MESI4状態プロトコルの一貫
性のあるサブセットである。データを共用できないの
で、プロセッサは、キャッシュ・ブロック・フィルのす
べてを、それが書込みミス(read-with-intent-to-modi
fy、修正目的の読取り)であるかのように信号を送り、
これによって、プロセッサ外部のすべてのキャッシュの
対応するデータのコピーが、プロセッサのキャッシュ・
ブロック・フィル動作の前にフラッシュされる。
【0006】一貫性を維持するために、内部読取りトラ
ンザクション・ミスの際には、内部キャッシュに対して
メモリ・システム読取り動作を実行する。ミスが発生し
たならば、あるメモリ・システムから内部キャッシュに
データをロードしなければならない。読取りトランザク
ションの後に、次のトランザクションのためにアドレス
・バッファにロードしなければならない。読取りロード
とその後の次トランザクション・アドレスの発見という
事象の分離が、システム性能を低下させる。
ンザクション・ミスの際には、内部キャッシュに対して
メモリ・システム読取り動作を実行する。ミスが発生し
たならば、あるメモリ・システムから内部キャッシュに
データをロードしなければならない。読取りトランザク
ションの後に、次のトランザクションのためにアドレス
・バッファにロードしなければならない。読取りロード
とその後の次トランザクション・アドレスの発見という
事象の分離が、システム性能を低下させる。
【0007】したがって、マイクロプロセッシング・ユ
ニット内の内部キャッシュへのシステム・メモリ読取り
トランザクション中に同時に次読取りトランザクション
・アドレス・バッファにロードできる、キャッシュ・メ
モリ・システム内のデータを管理する方法が必要であ
る。
ニット内の内部キャッシュへのシステム・メモリ読取り
トランザクション中に同時に次読取りトランザクション
・アドレス・バッファにロードできる、キャッシュ・メ
モリ・システム内のデータを管理する方法が必要であ
る。
【0008】
【発明が解決しようとする課題】本発明の目的は、改良
されたデータ記憶システムを提供することである。
されたデータ記憶システムを提供することである。
【0009】本発明のもう1つの目的は、処理ユニット
内部のキャッシュ・ユニットを有する改良されたデータ
記憶システムを提供することである。
内部のキャッシュ・ユニットを有する改良されたデータ
記憶システムを提供することである。
【0010】本発明のもう1つの目的は、書込みトラン
ザクション中に次読取りトランザクション・アドレスを
提供する、処理システム内の改良されたメモリ管理シス
テムを提供することである。
ザクション中に次読取りトランザクション・アドレスを
提供する、処理システム内の改良されたメモリ管理シス
テムを提供することである。
【0011】
【課題を解決するための手段】前述の目的は、下記に従
って達成される。本発明によれば、処理ユニット内のデ
ータ・キャッシュ内での書込みトランザクションのアド
レス・フェーズ中に次読取りアドレスを提供するための
プロトコルおよびシステムが提供される。この処理ユニ
ットには、アドレス・バスに結合されるデータ・キャッ
シュ・ユニットと、データ・バスに結合される命令キャ
ッシュ・ユニットが含まれる。この2つのバスは、さら
に、マイクロプロセッサから分離されたシステム・メモ
リ・コントローラに接続される。このプロトコルおよび
システムは、現書込みトランザクション中に次読取りア
ドレスと次トランザクションを提供する。このプロトコ
ルでは、事前取出しされたアドレスが現データ・トラン
ザクションのうちにロードされ、現データ・トランザク
ションに連結される事前取出しされたアドレスを使用し
て、次ラインフィル・アドレスを生成する。事前取出し
されたアドレスは、次ラインフィル・アドレスの生成に
使用される。ラインフィル・アドレスは、キャッシュ読
取りミスが発生したかどうかを判定する際に生成され、
ミスが発生した場合、修正されたキャッシュ・ラインが
主記憶システムにコピーされ、その後、ミスしたキャッ
シュ読取りラインが、システム・メモリ・コントローラ
から内部キャッシュにロードされる。
って達成される。本発明によれば、処理ユニット内のデ
ータ・キャッシュ内での書込みトランザクションのアド
レス・フェーズ中に次読取りアドレスを提供するための
プロトコルおよびシステムが提供される。この処理ユニ
ットには、アドレス・バスに結合されるデータ・キャッ
シュ・ユニットと、データ・バスに結合される命令キャ
ッシュ・ユニットが含まれる。この2つのバスは、さら
に、マイクロプロセッサから分離されたシステム・メモ
リ・コントローラに接続される。このプロトコルおよび
システムは、現書込みトランザクション中に次読取りア
ドレスと次トランザクションを提供する。このプロトコ
ルでは、事前取出しされたアドレスが現データ・トラン
ザクションのうちにロードされ、現データ・トランザク
ションに連結される事前取出しされたアドレスを使用し
て、次ラインフィル・アドレスを生成する。事前取出し
されたアドレスは、次ラインフィル・アドレスの生成に
使用される。ラインフィル・アドレスは、キャッシュ読
取りミスが発生したかどうかを判定する際に生成され、
ミスが発生した場合、修正されたキャッシュ・ラインが
主記憶システムにコピーされ、その後、ミスしたキャッ
シュ読取りラインが、システム・メモリ・コントローラ
から内部キャッシュにロードされる。
【0012】本発明の上記ならびに追加の目的、特徴お
よび長所は、以下の詳細な説明で明らかになる。
よび長所は、以下の詳細な説明で明らかになる。
【0013】
【発明の実施の形態】図1は、本発明を実施することが
できる代表的なマイクロプロセッサ10のブロック図で
ある。マイクロプロセッサ10は、たとえばPower
PC RISCプロセッサの系列から選択することがで
きる。この特定のマイクロプロセッサ10は、32ビッ
ト・アーキテクチャを実施し、32ビット有効アドレス
と、32ビットおよび64ビットの浮動小数点データ型
を提供する。重要な事に、このプロセッサは、1クロッ
クごとに3命令までを発行、撤収することができ、これ
らの命令は、性能向上のため非整順に実行することがで
きるが、完了時には一貫性のある規則正しい動作のため
に逐次式に現れる。
できる代表的なマイクロプロセッサ10のブロック図で
ある。マイクロプロセッサ10は、たとえばPower
PC RISCプロセッサの系列から選択することがで
きる。この特定のマイクロプロセッサ10は、32ビッ
ト・アーキテクチャを実施し、32ビット有効アドレス
と、32ビットおよび64ビットの浮動小数点データ型
を提供する。重要な事に、このプロセッサは、1クロッ
クごとに3命令までを発行、撤収することができ、これ
らの命令は、性能向上のため非整順に実行することがで
きるが、完了時には一貫性のある規則正しい動作のため
に逐次式に現れる。
【0014】マイクロプロセッサ10には、5つの実行
ユニットすなわち、整数ユニット(IU)12、浮動小
数点ユニット(FPR)14、分岐処理ユニット(BP
U)16、ロード/ストア・ユニット(LSU)18お
よびシステム・レジスタ・ユニット(SRU)20も含
まれる。マイクロプロセッサ10には、一方は命令キャ
ッシュ22、他方はデータ・キャッシュ24である2つ
の物理的にアドレッシングされるキャッシュも含まれ
る。どちらのキャッシュも、2ウェイ・セット・アソシ
アティブ・キャッシュである。さらに、2つのメモリ管
理ユニット(MMU)が含まれ、これらは、命令MMU
26とデータMMU28からなる。どちらのMMUに
も、64項目の2ウェイ・セット・アソシアティブの変
換ルック・アサイド・バッファ(それぞれ、データ変換
ルック・アサイド・バッファ(DTLB)30および命
令変換ルック・アサイド・バッファ(ITLB)32と
称する)が含まれ、これらは、デマンド・ページング式
の仮想記憶アドレス変換と可変サイズ・ブロック変換の
サポートを提供する。マイクロプロセッサ10は、それ
ぞれ4項目の2つの独立のブロック・アドレス変換アレ
イ(命令ブロック・アドレス変換(IBAT)アレイ3
4およびデータ・ブロック・アドレス変換(DBAT)
アレイ36)の使用を介するブロック・アドレス変換も
サポートする。有効アドレスは、ブロック変換中にIB
ATアレイ34およびDBATアレイ36の4項目のす
べてと同時に比較される。
ユニットすなわち、整数ユニット(IU)12、浮動小
数点ユニット(FPR)14、分岐処理ユニット(BP
U)16、ロード/ストア・ユニット(LSU)18お
よびシステム・レジスタ・ユニット(SRU)20も含
まれる。マイクロプロセッサ10には、一方は命令キャ
ッシュ22、他方はデータ・キャッシュ24である2つ
の物理的にアドレッシングされるキャッシュも含まれ
る。どちらのキャッシュも、2ウェイ・セット・アソシ
アティブ・キャッシュである。さらに、2つのメモリ管
理ユニット(MMU)が含まれ、これらは、命令MMU
26とデータMMU28からなる。どちらのMMUに
も、64項目の2ウェイ・セット・アソシアティブの変
換ルック・アサイド・バッファ(それぞれ、データ変換
ルック・アサイド・バッファ(DTLB)30および命
令変換ルック・アサイド・バッファ(ITLB)32と
称する)が含まれ、これらは、デマンド・ページング式
の仮想記憶アドレス変換と可変サイズ・ブロック変換の
サポートを提供する。マイクロプロセッサ10は、それ
ぞれ4項目の2つの独立のブロック・アドレス変換アレ
イ(命令ブロック・アドレス変換(IBAT)アレイ3
4およびデータ・ブロック・アドレス変換(DBAT)
アレイ36)の使用を介するブロック・アドレス変換も
サポートする。有効アドレスは、ブロック変換中にIB
ATアレイ34およびDBATアレイ36の4項目のす
べてと同時に比較される。
【0015】マイクロプロセッサ10には、選択可能な
多重化された32ビット・アドレス/64ビット・デー
タ・バス(以下、バスと呼称する)38も含まれる。マ
イクロプロセッサ10のインターフェース・プロトコル
によって、複数のマスタが、中央外部アービタを介して
システム資源を求めて競合できるようになる。バス38
は、プロセッサ・バス・インターフェース42に接続さ
れ、このプロセッサ・バス・インターフェース42に
は、コピーバック・バッファ44とタッチ・ロード・バ
ッファ46が含まれる。プロセッサ・バス・インターフ
ェース42は、さらに、命令キャッシュ22、データ・
キャッシュ24、タグ・ユニット48およびタグ・ユニ
ット50に接続され、タグ・ユニット48はデータ・キ
ャッシュ24に、タグ・ユニット50は命令キャッシュ
22に接続される。命令キャッシュ22は、さらに、命
令ユニット52に接続され、データ・キャッシュ24
は、LSU18に接続される。さらに、命令キャッシュ
22はそのタグ・ユニット50を介して命令MMU26
に接続され、データ・キャッシュ24はそのタグ・ユニ
ット48を介してデータMMU28に接続される。命令
の取出しと発行は、命令ユニット52内で処理される。
キャッシュ・メモリ・アクセスまたは外部メモリ・アク
セスのアドレス変換は、データMMU28および命令M
MU26によって処理される。
多重化された32ビット・アドレス/64ビット・デー
タ・バス(以下、バスと呼称する)38も含まれる。マ
イクロプロセッサ10のインターフェース・プロトコル
によって、複数のマスタが、中央外部アービタを介して
システム資源を求めて競合できるようになる。バス38
は、プロセッサ・バス・インターフェース42に接続さ
れ、このプロセッサ・バス・インターフェース42に
は、コピーバック・バッファ44とタッチ・ロード・バ
ッファ46が含まれる。プロセッサ・バス・インターフ
ェース42は、さらに、命令キャッシュ22、データ・
キャッシュ24、タグ・ユニット48およびタグ・ユニ
ット50に接続され、タグ・ユニット48はデータ・キ
ャッシュ24に、タグ・ユニット50は命令キャッシュ
22に接続される。命令キャッシュ22は、さらに、命
令ユニット52に接続され、データ・キャッシュ24
は、LSU18に接続される。さらに、命令キャッシュ
22はそのタグ・ユニット50を介して命令MMU26
に接続され、データ・キャッシュ24はそのタグ・ユニ
ット48を介してデータMMU28に接続される。命令
の取出しと発行は、命令ユニット52内で処理される。
キャッシュ・メモリ・アクセスまたは外部メモリ・アク
セスのアドレス変換は、データMMU28および命令M
MU26によって処理される。
【0016】命令ユニット52には、順次取出し機構5
4、命令待ち行列56、ディスパッチ・ユニット58お
よびBPU16も含まれて、実行ユニットへの命令フロ
ーの中央制御をもたらす。命令ユニット52は、順次取
出し機構54およびBPU16からの情報に基づいて、
次に取り出される命令のアドレスを判定する。
4、命令待ち行列56、ディスパッチ・ユニット58お
よびBPU16も含まれて、実行ユニットへの命令フロ
ーの中央制御をもたらす。命令ユニット52は、順次取
出し機構54およびBPU16からの情報に基づいて、
次に取り出される命令のアドレスを判定する。
【0017】命令ユニット52は、命令キャッシュ22
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
【0018】図1は、本発明を実施することができる代
表的なマイクロプロセッサ10のブロック図である。マ
イクロプロセッサ10は、たとえばPowerPC R
ISCプロセッサの系列から選択することができる。こ
の特定のマイクロプロセッサ10は、32ビット・アー
キテクチャを実施し、32ビット有効アドレスと、32
ビットおよび64ビットの浮動小数点データ型を提供す
る。重要な事に、このプロセッサは、1クロックごとに
3命令までを発行、撤収することができ、これらの命令
は、性能向上のため非整順に実行することができるが、
完了時には一貫性のある規則正しい動作のために逐次式
に現れる。
表的なマイクロプロセッサ10のブロック図である。マ
イクロプロセッサ10は、たとえばPowerPC R
ISCプロセッサの系列から選択することができる。こ
の特定のマイクロプロセッサ10は、32ビット・アー
キテクチャを実施し、32ビット有効アドレスと、32
ビットおよび64ビットの浮動小数点データ型を提供す
る。重要な事に、このプロセッサは、1クロックごとに
3命令までを発行、撤収することができ、これらの命令
は、性能向上のため非整順に実行することができるが、
完了時には一貫性のある規則正しい動作のために逐次式
に現れる。
【0019】マイクロプロセッサ10には、さらに、5
つの実行ユニットすなわち、整数ユニット(IU)1
2、浮動小数点ユニット(FPR)14、分岐処理ユニ
ット(BPU)16、ロード/ストア・ユニット(LS
U)18およびシステム・レジスタ・ユニット(SR
U)20が含まれる。マイクロプロセッサ10には、さ
らに、一方は命令キャッシュ22、他方はデータ・キャ
ッシュ24である2つの物理的にアドレッシングされる
キャッシュが含まれる。どちらのキャッシュも、2ウェ
イ・セット・アソシアティブ・キャッシュである。さら
に、2つのメモリ管理ユニット(MMU)が含まれ、こ
れらは、命令MMU26とデータMMU28からなる。
どちらのMMUにも、64項目の2ウェイ・セット・ア
ソシアティブの変換ルック・アサイド・バッファ(それ
ぞれ、データ変換ルック・アサイド・バッファ(DTL
B)30および命令変換ルック・アサイド・バッファ
(ITLB)32と称する)が含まれ、これらは、デマ
ンド・ページング式の仮想記憶アドレス変換と可変サイ
ズ・ブロック変換のサポートを提供する。マイクロプロ
セッサ10は、それぞれ4項目の2つの独立のブロック
・アドレス変換アレイ(命令ブロック・アドレス変換
(IBAT)アレイ34およびデータ・ブロック・アド
レス変換(DBAT)アレイ36)の使用を介するブロ
ック・アドレス変換もサポートする。有効アドレスは、
ブロック変換中にIBATアレイ34およびDBATア
レイ36の4項目のすべてと同時に比較される。
つの実行ユニットすなわち、整数ユニット(IU)1
2、浮動小数点ユニット(FPR)14、分岐処理ユニ
ット(BPU)16、ロード/ストア・ユニット(LS
U)18およびシステム・レジスタ・ユニット(SR
U)20が含まれる。マイクロプロセッサ10には、さ
らに、一方は命令キャッシュ22、他方はデータ・キャ
ッシュ24である2つの物理的にアドレッシングされる
キャッシュが含まれる。どちらのキャッシュも、2ウェ
イ・セット・アソシアティブ・キャッシュである。さら
に、2つのメモリ管理ユニット(MMU)が含まれ、こ
れらは、命令MMU26とデータMMU28からなる。
どちらのMMUにも、64項目の2ウェイ・セット・ア
ソシアティブの変換ルック・アサイド・バッファ(それ
ぞれ、データ変換ルック・アサイド・バッファ(DTL
B)30および命令変換ルック・アサイド・バッファ
(ITLB)32と称する)が含まれ、これらは、デマ
ンド・ページング式の仮想記憶アドレス変換と可変サイ
ズ・ブロック変換のサポートを提供する。マイクロプロ
セッサ10は、それぞれ4項目の2つの独立のブロック
・アドレス変換アレイ(命令ブロック・アドレス変換
(IBAT)アレイ34およびデータ・ブロック・アド
レス変換(DBAT)アレイ36)の使用を介するブロ
ック・アドレス変換もサポートする。有効アドレスは、
ブロック変換中にIBATアレイ34およびDBATア
レイ36の4項目のすべてと同時に比較される。
【0020】マイクロプロセッサ10には、多重化され
た32ビット・アドレス/64ビット・データ・バス
(以下、バスと呼称する)38も含まれる。マイクロプ
ロセッサ10のインターフェース・プロトコルによっ
て、複数のマスタが、中央外部アービタを介してシステ
ム資源を求めて競合できるようになる。バス38は、プ
ロセッサ・バス・インターフェース42に接続され、こ
のプロセッサ・バス・インターフェース42には、コピ
ーバック・バッファ44とタッチ・ロード・バッファ4
6が含まれる。プロセッサ・バス・インターフェース4
2は、さらに、命令キャッシュ22、データ・キャッシ
ュ24、タグ・ユニット48およびタグ・ユニット50
に接続され、タグ・ユニット48はデータ・キャッシュ
24に、タグ・ユニット50は命令キャッシュ22に接
続される。命令キャッシュ22は、さらに、命令ユニッ
ト52に接続され、データ・キャッシュ24は、LSU
18に接続される。さらに、命令キャッシュ22はその
タグ・ユニット50を介して命令MMU26に接続さ
れ、データ・キャッシュ24はそのタグ・ユニット48
を介してデータMMU28に接続される。命令の取出し
と発行は、命令ユニット52内で処理される。キャッシ
ュ・メモリ・アクセスまたは外部メモリ・アクセスのア
ドレス変換は、データMMU28および命令MMU26
によって処理される。
た32ビット・アドレス/64ビット・データ・バス
(以下、バスと呼称する)38も含まれる。マイクロプ
ロセッサ10のインターフェース・プロトコルによっ
て、複数のマスタが、中央外部アービタを介してシステ
ム資源を求めて競合できるようになる。バス38は、プ
ロセッサ・バス・インターフェース42に接続され、こ
のプロセッサ・バス・インターフェース42には、コピ
ーバック・バッファ44とタッチ・ロード・バッファ4
6が含まれる。プロセッサ・バス・インターフェース4
2は、さらに、命令キャッシュ22、データ・キャッシ
ュ24、タグ・ユニット48およびタグ・ユニット50
に接続され、タグ・ユニット48はデータ・キャッシュ
24に、タグ・ユニット50は命令キャッシュ22に接
続される。命令キャッシュ22は、さらに、命令ユニッ
ト52に接続され、データ・キャッシュ24は、LSU
18に接続される。さらに、命令キャッシュ22はその
タグ・ユニット50を介して命令MMU26に接続さ
れ、データ・キャッシュ24はそのタグ・ユニット48
を介してデータMMU28に接続される。命令の取出し
と発行は、命令ユニット52内で処理される。キャッシ
ュ・メモリ・アクセスまたは外部メモリ・アクセスのア
ドレス変換は、データMMU28および命令MMU26
によって処理される。
【0021】命令ユニット52には、さらに、順次取出
し機構54、命令待ち行列56、ディスパッチ・ユニッ
ト58およびBPU16が含まれて、実行ユニットへの
命令フローの中央制御をもたらす。命令ユニット52
は、順次取出し機構54およびBPU16からの情報に
基づいて、次に取り出される命令のアドレスを判定す
る。
し機構54、命令待ち行列56、ディスパッチ・ユニッ
ト58およびBPU16が含まれて、実行ユニットへの
命令フローの中央制御をもたらす。命令ユニット52
は、順次取出し機構54およびBPU16からの情報に
基づいて、次に取り出される命令のアドレスを判定す
る。
【0022】命令ユニット52は、命令キャッシュ22
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
【0023】BPU16は、順次取出し機構54から分
岐命令を受け取り、条件分岐を早期に解決するために条
件分岐に対するCRルックアヘッド動作を実行して、多
くの場合に0サイクル分岐の効果を達成する。
岐命令を受け取り、条件分岐を早期に解決するために条
件分岐に対するCRルックアヘッド動作を実行して、多
くの場合に0サイクル分岐の効果を達成する。
【0024】LSU18は、ロード命令とストア命令の
すべてを実行し、GPRファイル60、FPRファイル
62およびキャッシュ/メモリ・サブシステムの間のデ
ータ転送インターフェースを提供する。LSU18は、
文字列ロード/ストア命令および多重ワード・ロード/
ストア命令に関して、有効アドレスを計算し、データ位
置合わせを実行し、順序付けを提供する。ロード命令と
ストア命令は、プログラムの順で発行され、変換され
る。しかし、実際のメモリ・アクセスは、非整順で発生
する可能性がある。厳密な順序付けを実施するために、
同期化命令が設けられている。
すべてを実行し、GPRファイル60、FPRファイル
62およびキャッシュ/メモリ・サブシステムの間のデ
ータ転送インターフェースを提供する。LSU18は、
文字列ロード/ストア命令および多重ワード・ロード/
ストア命令に関して、有効アドレスを計算し、データ位
置合わせを実行し、順序付けを提供する。ロード命令と
ストア命令は、プログラムの順で発行され、変換され
る。しかし、実際のメモリ・アクセスは、非整順で発生
する可能性がある。厳密な順序付けを実施するために、
同期化命令が設けられている。
【0025】データ依存性がない時のキャッシュ可能な
ロードは、1サイクルごとに1回の最大スループットと
2サイクルの総合待ち時間を有する投機的な方法で実行
される。キャッシュから取り除かれたデータは、完了ユ
ニット68がその値をGPRまたはFPRにコミットす
るまで、リネーム・レジスタ64および66に保持され
る。ストアは、投機的に実行することができず、ストア
動作をメモリに対して完了しなければならないことを完
了ユニット68が知らせるまで、ストア待ち行列に保持
される。実際のロード動作またはストア動作を実行する
のに必要な時間は、その動作にキャッシュ、システム・
メモリまたは入出力装置が含まれるかどうかに応じて変
動する。
ロードは、1サイクルごとに1回の最大スループットと
2サイクルの総合待ち時間を有する投機的な方法で実行
される。キャッシュから取り除かれたデータは、完了ユ
ニット68がその値をGPRまたはFPRにコミットす
るまで、リネーム・レジスタ64および66に保持され
る。ストアは、投機的に実行することができず、ストア
動作をメモリに対して完了しなければならないことを完
了ユニット68が知らせるまで、ストア待ち行列に保持
される。実際のロード動作またはストア動作を実行する
のに必要な時間は、その動作にキャッシュ、システム・
メモリまたは入出力装置が含まれるかどうかに応じて変
動する。
【0026】命令MMU26およびデータMMU28
は、命令またはデータに関して物理記憶と仮想記憶の両
方をサポートする。命令MMU26およびデータMMU
28は、ブロック上の空間およびページ粒度に関するア
クセス特権も制御する。LSU18は、データのロード
およびストアの有効アドレスを計算し、キャッシュ・メ
モリとの間のデータ位置合わせを実行し、文字列ロード
/ストア命令および多重ワード・ロード/ストア命令の
順序付けを提供する。命令ユニット52は、命令取出し
の有効アドレスを計算する。
は、命令またはデータに関して物理記憶と仮想記憶の両
方をサポートする。命令MMU26およびデータMMU
28は、ブロック上の空間およびページ粒度に関するア
クセス特権も制御する。LSU18は、データのロード
およびストアの有効アドレスを計算し、キャッシュ・メ
モリとの間のデータ位置合わせを実行し、文字列ロード
/ストア命令および多重ワード・ロード/ストア命令の
順序付けを提供する。命令ユニット52は、命令取出し
の有効アドレスを計算する。
【0027】アドレスが生成された後に、有効アドレス
の上位ビットが、適当なMMUによって物理アドレス・
ビットに変換される。それと同時に、アドレスの下位ビ
ットがキャッシュに送られ、ここで、下位ビットが2ウ
ェイ・セット・アソシアティブ・タグ・アレイへの索引
を形成する。アドレス変換の後に、MMUは、物理アド
レスの上位ビットをキャッシュに渡し、キャッシュ・ル
ックアップが完了する。
の上位ビットが、適当なMMUによって物理アドレス・
ビットに変換される。それと同時に、アドレスの下位ビ
ットがキャッシュに送られ、ここで、下位ビットが2ウ
ェイ・セット・アソシアティブ・タグ・アレイへの索引
を形成する。アドレス変換の後に、MMUは、物理アド
レスの上位ビットをキャッシュに渡し、キャッシュ・ル
ックアップが完了する。
【0028】命令キャッシュ22およびデータ・キャッ
シュ24のそれぞれは、長さ32ビットのライン・サイ
ズを有し、それぞれ順次取出し機構54またはLSU1
8への64ビット・インターフェースを提供する。周囲
の論理機構またはタグ・ユニット48および50は、事
前に要求された情報を選択し、編成し、要求元のユニッ
トに転送する。キャッシュへの書込み動作は、1バイト
単位で実行でき、キャッシュへの完全なリード・モディ
ファイ・ライト(read-modify-write)動作は、各サイ
クルに発生することができる。LSU18と順次取出し
機構54の両方が、取り出されるデータまたは命令のア
ドレスをデータ・キャッシュ24または命令キャッシュ
22に供給する。キャッシュ・ヒットの場合、キャッシ
ュは、要求元のユニットに2ワードを返す。
シュ24のそれぞれは、長さ32ビットのライン・サイ
ズを有し、それぞれ順次取出し機構54またはLSU1
8への64ビット・インターフェースを提供する。周囲
の論理機構またはタグ・ユニット48および50は、事
前に要求された情報を選択し、編成し、要求元のユニッ
トに転送する。キャッシュへの書込み動作は、1バイト
単位で実行でき、キャッシュへの完全なリード・モディ
ファイ・ライト(read-modify-write)動作は、各サイ
クルに発生することができる。LSU18と順次取出し
機構54の両方が、取り出されるデータまたは命令のア
ドレスをデータ・キャッシュ24または命令キャッシュ
22に供給する。キャッシュ・ヒットの場合、キャッシ
ュは、要求元のユニットに2ワードを返す。
【0029】データ・キャッシュのタグ・ユニット48
は、単一ポートであり、ロードまたはストアのアクセス
とスヌープ・アクセスが同時に発生すると、資源競合が
発生する。スヌープ・アクセスは、最高の優先順位を有
し、スヌープ・アクセスがタグ書込みと同時に発生しな
い限り、タグ・ユニット48への最初のアクセス権を与
えられる。同時に発生した場合には、スヌープは再試行
され、このスヌープは、キャッシュへのアクセス権に関
してもう一度アービトレーションされなければならな
い。スヌープ・アクセスのために延期されたロードまた
はストアは、スヌープの次のクロック・サイクルに実行
される。
は、単一ポートであり、ロードまたはストアのアクセス
とスヌープ・アクセスが同時に発生すると、資源競合が
発生する。スヌープ・アクセスは、最高の優先順位を有
し、スヌープ・アクセスがタグ書込みと同時に発生しな
い限り、タグ・ユニット48への最初のアクセス権を与
えられる。同時に発生した場合には、スヌープは再試行
され、このスヌープは、キャッシュへのアクセス権に関
してもう一度アービトレーションされなければならな
い。スヌープ・アクセスのために延期されたロードまた
はストアは、スヌープの次のクロック・サイクルに実行
される。
【0030】命令キャッシュ22とデータ・キャッシュ
24の現在の設計では、現トランザクション中の次バス
・トランザクションの次アドレスの同報通信が許可され
ない。システムが次アドレスの同報通信を行うことがで
きるか、少なくとも現トランザクション中にアクセス権
を与えられるならば、システム・メモリ・コントローラ
または命令MMU26およびデータMMU28は、マイ
クロプロセッサ10の外部のメモリの初期メモリ・アク
セス・タイムでの速度低下を減らすことができる。これ
を達成するために、図2に示された64ビット・データ
・ブロック内で32ビット・アドレスと11ビット属性
を使用するプロトコルを設ける。このプロトコルは、現
書込みトランザクションのアドレス・フェーズ中に次読
取りアドレス変換を使用可能にする。
24の現在の設計では、現トランザクション中の次バス
・トランザクションの次アドレスの同報通信が許可され
ない。システムが次アドレスの同報通信を行うことがで
きるか、少なくとも現トランザクション中にアクセス権
を与えられるならば、システム・メモリ・コントローラ
または命令MMU26およびデータMMU28は、マイ
クロプロセッサ10の外部のメモリの初期メモリ・アク
セス・タイムでの速度低下を減らすことができる。これ
を達成するために、図2に示された64ビット・データ
・ブロック内で32ビット・アドレスと11ビット属性
を使用するプロトコルを設ける。このプロトコルは、現
書込みトランザクションのアドレス・フェーズ中に次読
取りアドレス変換を使用可能にする。
【0031】具体的に言うと、修正されたキャッシュ・
ラインでキャッシュ読取りミスが発生した時などのキャ
ッシュ・トランザクション中に、修正されたキャッシュ
が、主システム・メモリにコピーバックされる。次に、
ミスしたキャッシュ読取りラインが、主システム・メモ
リから内部キャッシュにロードされる。コピーバック・
アドレス・フェーズ中に、コピーバック(書込み)トラ
ンザクションのアドレスおよび属性と、次ラインフィル
(読取り)アドレスの上位アドレス(事前取出しアドレ
スと称する)が、システム・バス上に駆動される。その
後、コピーバック・トランザクションのデータ・フェー
ズ中に、メモリ管理ユニットまたはシステム・メモリ・
コントローラが、図2に示されるように、事前取出しア
ドレスをコピーバック・アドレスの一部(索引付きアド
レスと称する)と連結することによって、次ラインフィ
ル・アドレスを形成する。事前取出しアドレスは、次ラ
インフィルのタグ項目として働く。コピーバックの索引
付きアドレスは、内部キャッシュへの索引として使用さ
れるアドレス・ビットであり、したがって、コピーバッ
ク・トランザクションとラインフィル・トランザクショ
ンは、同一の索引値を共用する。
ラインでキャッシュ読取りミスが発生した時などのキャ
ッシュ・トランザクション中に、修正されたキャッシュ
が、主システム・メモリにコピーバックされる。次に、
ミスしたキャッシュ読取りラインが、主システム・メモ
リから内部キャッシュにロードされる。コピーバック・
アドレス・フェーズ中に、コピーバック(書込み)トラ
ンザクションのアドレスおよび属性と、次ラインフィル
(読取り)アドレスの上位アドレス(事前取出しアドレ
スと称する)が、システム・バス上に駆動される。その
後、コピーバック・トランザクションのデータ・フェー
ズ中に、メモリ管理ユニットまたはシステム・メモリ・
コントローラが、図2に示されるように、事前取出しア
ドレスをコピーバック・アドレスの一部(索引付きアド
レスと称する)と連結することによって、次ラインフィ
ル・アドレスを形成する。事前取出しアドレスは、次ラ
インフィルのタグ項目として働く。コピーバックの索引
付きアドレスは、内部キャッシュへの索引として使用さ
れるアドレス・ビットであり、したがって、コピーバッ
ク・トランザクションとラインフィル・トランザクショ
ンは、同一の索引値を共用する。
【0032】システム・メモリ・コントローラは、ライ
ンフィル用のカラム・アドレスとロウ・アドレスを生成
する。その代わりに、システム・メモリ・コントローラ
は、プロセッサ・ユニットがラインフィル・トランザク
ションを発行する前に、そのバッファにラインフィル・
データをロードすることができる。これによって、プロ
セッサ−主システム・メモリ・サイクルが短縮され、プ
ロセッサ・バス上の帯域幅が増大する。
ンフィル用のカラム・アドレスとロウ・アドレスを生成
する。その代わりに、システム・メモリ・コントローラ
は、プロセッサ・ユニットがラインフィル・トランザク
ションを発行する前に、そのバッファにラインフィル・
データをロードすることができる。これによって、プロ
セッサ−主システム・メモリ・サイクルが短縮され、プ
ロセッサ・バス上の帯域幅が増大する。
【0033】図2の例では、内部キャッシュが4Kバイ
ト2ウェイ・セット・アソシアティブ・キャッシュであ
るから、事前取出しアドレスが21ビット幅であり、索
引付きアドレスが6ビット幅である。他の設計の場合、
事前取出しアドレスと索引付きアドレスの長さを、内部
キャッシュのサイズに応じて変更することができる。た
とえば、8Kバイト2ウェイ・セット・アソシアティブ
・キャッシュは、20ビットの事前取出しアドレスと7
ビットの索引付きアドレスを有するはずであり、16K
の2ウェイ・セット・アソシアティブ・キャッシュは、
19ビットの事前取出しアドレスと8ビットの索引付き
アドレスを有するはずである。
ト2ウェイ・セット・アソシアティブ・キャッシュであ
るから、事前取出しアドレスが21ビット幅であり、索
引付きアドレスが6ビット幅である。他の設計の場合、
事前取出しアドレスと索引付きアドレスの長さを、内部
キャッシュのサイズに応じて変更することができる。た
とえば、8Kバイト2ウェイ・セット・アソシアティブ
・キャッシュは、20ビットの事前取出しアドレスと7
ビットの索引付きアドレスを有するはずであり、16K
の2ウェイ・セット・アソシアティブ・キャッシュは、
19ビットの事前取出しアドレスと8ビットの索引付き
アドレスを有するはずである。
【0034】図2の64ビット・データ・ユニットは、
第0ないし第31ビット位置を占める32ビット幅のコ
ピーバック・アドレスを含む。索引付きアドレスは、6
ビット幅であり、コピーバック・アドレス内のビット位
置22ないし27を占める。事前取出しアドレスは、2
1ビット幅であり、ビット位置32ないし52を占め、
索引付きアドレスと組み合わされて、27ビット幅の次
ラインフィル・アドレスとして働く。最後に、コピーバ
ック属性要素は、11ビット幅であり、ビット位置52
ないし63を占める。
第0ないし第31ビット位置を占める32ビット幅のコ
ピーバック・アドレスを含む。索引付きアドレスは、6
ビット幅であり、コピーバック・アドレス内のビット位
置22ないし27を占める。事前取出しアドレスは、2
1ビット幅であり、ビット位置32ないし52を占め、
索引付きアドレスと組み合わされて、27ビット幅の次
ラインフィル・アドレスとして働く。最後に、コピーバ
ック属性要素は、11ビット幅であり、ビット位置52
ないし63を占める。
【0035】メモリ・コントローラなどのターゲット装
置によってラインフィル・アドレスの生成に使用される
64ビット・データ・ユニットの機能的動作の例を、図
3の流れ図に示す。ステップ302で、このシステム
は、内部キャッシュ読取りトランザクションを実行す
る。ステップ304で、この読取りトランザクションが
内部キャッシュでヒットした場合、ステップ306で、
このデータが内部キャッシュによって使用可能にされ
る。そうでなく、読取りミスが発生する場合には、この
システムはステップ308に進む。プロセッサは、上記
の読取りトランザクションのためにシステム・メモリか
ら内部キャッシュへデータをロードする必要があるの
で、このプロセッサは、内部キャッシュ内の既存の修正
されたデータを内部キャッシュからシステム主記憶に書
き戻して、上記の読取りトランザクションのために使用
可能な空間を作らなければならない。したがって、ステ
ップ308で、このシステムは、プロセッサ内のキャッ
シュ内容のすべてを、システム主記憶に書き戻す。
置によってラインフィル・アドレスの生成に使用される
64ビット・データ・ユニットの機能的動作の例を、図
3の流れ図に示す。ステップ302で、このシステム
は、内部キャッシュ読取りトランザクションを実行す
る。ステップ304で、この読取りトランザクションが
内部キャッシュでヒットした場合、ステップ306で、
このデータが内部キャッシュによって使用可能にされ
る。そうでなく、読取りミスが発生する場合には、この
システムはステップ308に進む。プロセッサは、上記
の読取りトランザクションのためにシステム・メモリか
ら内部キャッシュへデータをロードする必要があるの
で、このプロセッサは、内部キャッシュ内の既存の修正
されたデータを内部キャッシュからシステム主記憶に書
き戻して、上記の読取りトランザクションのために使用
可能な空間を作らなければならない。したがって、ステ
ップ308で、このシステムは、プロセッサ内のキャッ
シュ内容のすべてを、システム主記憶に書き戻す。
【0036】この書込みトランザクションのアドレス・
フェーズ中に、システムは、ステップ310で、システ
ム・バス上の次ラインフィル・アドレスの事前取出しア
ドレスからアドレス属性をロードする。ステップ312
で、データの基本部分を実行し、これによって、事前取
出しアドレスを索引付きアドレスと連結して、ターゲッ
ト装置によって生成される次ラインフィル・アドレスを
形成する。次読取りトランザクション・アドレスが、事
前取出しアドレスとして提供されたので、システム・メ
モリ・コントローラは、システム・メモリからバッファ
へ読取りデータをロードすることによって、事前取出し
アドレスを利用することができる。したがって、プロセ
ッサが読取りトランザクションを実行する時には、メモ
リ・コントローラは、データが既にバッファ内にあるの
で、そのデータを即座にプロセッサに送ることができ
る。
フェーズ中に、システムは、ステップ310で、システ
ム・バス上の次ラインフィル・アドレスの事前取出しア
ドレスからアドレス属性をロードする。ステップ312
で、データの基本部分を実行し、これによって、事前取
出しアドレスを索引付きアドレスと連結して、ターゲッ
ト装置によって生成される次ラインフィル・アドレスを
形成する。次読取りトランザクション・アドレスが、事
前取出しアドレスとして提供されたので、システム・メ
モリ・コントローラは、システム・メモリからバッファ
へ読取りデータをロードすることによって、事前取出し
アドレスを利用することができる。したがって、プロセ
ッサが読取りトランザクションを実行する時には、メモ
リ・コントローラは、データが既にバッファ内にあるの
で、そのデータを即座にプロセッサに送ることができ
る。
【0037】本発明を、好ましい実施例を参照して具体
的に図示し、説明してきたが、当業者であれば、本発明
の趣旨および精神から逸脱することなく、形態および詳
細にさまざまな変更を加えることができることを諒解す
るであろう。
的に図示し、説明してきたが、当業者であれば、本発明
の趣旨および精神から逸脱することなく、形態および詳
細にさまざまな変更を加えることができることを諒解す
るであろう。
【0038】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0039】(1)アドレス・バスおよびデータ・バス
に結合されたデータ・キャッシュ・ユニットおよび命令
キャッシュ・ユニットを有し、アドレス・バスおよびデ
ータ・バスが、さらに、前記マイクロプロセッサの外部
のシステム・メモリ・コントローラに接続される処理ユ
ニットにおいて、現データ・トランザクション内で事前
取出しアドレスをロードするステップと、前記事前取出
しアドレスを用いて次ラインフィル・アドレスを生成す
るステップとを含む、現書込みトランザクションのアド
レス・フェーズ中に提供されるものとして次トランザク
ション用の次読取りアドレスを提供するためのプロトコ
ル。 (2)前記次ラインフィル・アドレスを生成する前記ス
テップが、前記事前取出しアドレスをコピーバック・ア
ドレスの一部と連結するステップを含むことを特徴とす
る、上記(1)に記載のプロトコル。 (3)前記事前取出しアドレスに連結される前記コピー
バック・アドレスの前記一部が、索引付きアドレスであ
ることを特徴とする、上記(2)に記載のプロトコル。 (4)さらに、前記システム・メモリ・コントローラに
結合された主記憶ユニット内で、ラインフィルのために
メモリ・カラム・アドレスおよびメモリ・ロウ・アドレ
スを生成するステップを含む、上記(1)に記載のプロ
トコル。 (5)さらに、ラインフィル・トランザクションの発行
の前に、前記処理ユニット内の命令バッファに前記ライ
ンフィル・データをロードするステップを含む、上記
(1)に記載のプロトコル。 (6)前記システム・バス上に次ラインフィル・アドレ
スを生成するステップの前に、キャッシュ読取りミスが
発生したかどうかを判定するステップと、前記キャッシ
ュ読取りミスが発生している場合に、修正されたキャッ
シュ・ラインを前記主記憶ユニットにコピー・バックす
るステップと、前記ミスしたキャッシュ読取りラインを
主記憶ユニットから前記内部キャッシュにロードするス
テップとを含むことを特徴とする、上記(1)に記載の
プロトコル。 (7)アドレス・バスおよびデータ・バスに結合された
データ・キャッシュ・ユニットおよび命令キャッシュ・
ユニットを有し、アドレス・バスおよびデータ・バス
が、さらに、前記マイクロプロセッサの外部のシステム
・メモリ・コントローラに接続される処理ユニットにお
いて、前記キャッシュ・ユニットに結合された、現デー
タ・トランザクション内で事前取出しアドレスをロード
する手段と、前記ロードする手段に結合された、前記事
前取出しアドレスを用いて次ラインフィル・アドレスを
生成する手段とを含む、現書込みトランザクションのア
ドレス・フェーズ中に提供されるものとして次トランザ
クション用の次読取りアドレスを提供するためのシステ
ム。 (8)前記次ラインフィル・アドレスを生成する前記手
段が、前記事前取出しアドレスをコピーバック・アドレ
スの一部と連結する手段を含むことを特徴とする、上記
(7)に記載のシステム。 (9)前記事前取出しアドレスに連結される前記コピー
バック・アドレスの前記一部が、索引付きアドレスであ
ることを特徴とする、上記(8)に記載のシステム。 (10)さらに、前記システム・メモリ・コントローラ
に結合された主記憶ユニット内で、ラインフィルのため
にメモリ・カラム・アドレスおよびメモリ・ロウ・アド
レスを生成する、前記生成手段に結合された手段を含
む、上記(7)に記載のシステム。 (11)さらに、ラインフィル・トランザクションの発
行の前に、前記処理ユニット内の命令バッファに前記ラ
インフィル・データをロードする、前記生成手段に結合
された手段を含む、上記(7)に記載のシステム。 (12)キャッシュ読取りミスが発生したかどうかを判
定する、前記生成手段に結合された手段と、修正された
キャッシュ・ラインを前記主記憶ユニットにコピー・バ
ックする、前記生成手段に結合された手段と、前記ミス
したキャッシュ読取りラインを主記憶ユニットから前記
内部キャッシュにロードする、前記生成手段に結合され
た手段とをさらに含むことを特徴とする、上記(7)に
記載のシステム。
に結合されたデータ・キャッシュ・ユニットおよび命令
キャッシュ・ユニットを有し、アドレス・バスおよびデ
ータ・バスが、さらに、前記マイクロプロセッサの外部
のシステム・メモリ・コントローラに接続される処理ユ
ニットにおいて、現データ・トランザクション内で事前
取出しアドレスをロードするステップと、前記事前取出
しアドレスを用いて次ラインフィル・アドレスを生成す
るステップとを含む、現書込みトランザクションのアド
レス・フェーズ中に提供されるものとして次トランザク
ション用の次読取りアドレスを提供するためのプロトコ
ル。 (2)前記次ラインフィル・アドレスを生成する前記ス
テップが、前記事前取出しアドレスをコピーバック・ア
ドレスの一部と連結するステップを含むことを特徴とす
る、上記(1)に記載のプロトコル。 (3)前記事前取出しアドレスに連結される前記コピー
バック・アドレスの前記一部が、索引付きアドレスであ
ることを特徴とする、上記(2)に記載のプロトコル。 (4)さらに、前記システム・メモリ・コントローラに
結合された主記憶ユニット内で、ラインフィルのために
メモリ・カラム・アドレスおよびメモリ・ロウ・アドレ
スを生成するステップを含む、上記(1)に記載のプロ
トコル。 (5)さらに、ラインフィル・トランザクションの発行
の前に、前記処理ユニット内の命令バッファに前記ライ
ンフィル・データをロードするステップを含む、上記
(1)に記載のプロトコル。 (6)前記システム・バス上に次ラインフィル・アドレ
スを生成するステップの前に、キャッシュ読取りミスが
発生したかどうかを判定するステップと、前記キャッシ
ュ読取りミスが発生している場合に、修正されたキャッ
シュ・ラインを前記主記憶ユニットにコピー・バックす
るステップと、前記ミスしたキャッシュ読取りラインを
主記憶ユニットから前記内部キャッシュにロードするス
テップとを含むことを特徴とする、上記(1)に記載の
プロトコル。 (7)アドレス・バスおよびデータ・バスに結合された
データ・キャッシュ・ユニットおよび命令キャッシュ・
ユニットを有し、アドレス・バスおよびデータ・バス
が、さらに、前記マイクロプロセッサの外部のシステム
・メモリ・コントローラに接続される処理ユニットにお
いて、前記キャッシュ・ユニットに結合された、現デー
タ・トランザクション内で事前取出しアドレスをロード
する手段と、前記ロードする手段に結合された、前記事
前取出しアドレスを用いて次ラインフィル・アドレスを
生成する手段とを含む、現書込みトランザクションのア
ドレス・フェーズ中に提供されるものとして次トランザ
クション用の次読取りアドレスを提供するためのシステ
ム。 (8)前記次ラインフィル・アドレスを生成する前記手
段が、前記事前取出しアドレスをコピーバック・アドレ
スの一部と連結する手段を含むことを特徴とする、上記
(7)に記載のシステム。 (9)前記事前取出しアドレスに連結される前記コピー
バック・アドレスの前記一部が、索引付きアドレスであ
ることを特徴とする、上記(8)に記載のシステム。 (10)さらに、前記システム・メモリ・コントローラ
に結合された主記憶ユニット内で、ラインフィルのため
にメモリ・カラム・アドレスおよびメモリ・ロウ・アド
レスを生成する、前記生成手段に結合された手段を含
む、上記(7)に記載のシステム。 (11)さらに、ラインフィル・トランザクションの発
行の前に、前記処理ユニット内の命令バッファに前記ラ
インフィル・データをロードする、前記生成手段に結合
された手段を含む、上記(7)に記載のシステム。 (12)キャッシュ読取りミスが発生したかどうかを判
定する、前記生成手段に結合された手段と、修正された
キャッシュ・ラインを前記主記憶ユニットにコピー・バ
ックする、前記生成手段に結合された手段と、前記ミス
したキャッシュ読取りラインを主記憶ユニットから前記
内部キャッシュにロードする、前記生成手段に結合され
た手段とをさらに含むことを特徴とする、上記(7)に
記載のシステム。
【図1】本発明の好ましい実施例による、代表的なマイ
クロプロセッサのブロック図である。
クロプロセッサのブロック図である。
【図2】本発明を使用して生成されるアドレス・ブロッ
クを示す図である。
クを示す図である。
【図3】図2のラインフィル・アドレスの生成に使用さ
れる64ビット・データ・ユニットの機能的動作の例を
示す図である。
れる64ビット・データ・ユニットの機能的動作の例を
示す図である。
10 マイクロプロセッサ 12 整数ユニット(IU) 14 浮動小数点ユニット(FPR) 16 分岐処理ユニット(BPU) 18 ロード/ストア・ユニット(LSU) 20 システム・レジスタ・ユニット(SRU) 22 命令キャッシュ 24 データ・キャッシュ 26 命令MMU 28 データMMU 30 データ変換ルック・アサイド・バッファ(DTL
B) 32 命令変換ルック・アサイド・バッファ(ITL
B) 34 命令ブロック・アドレス変換(IBAT)アレイ 36 データ・ブロック・アドレス変換(DBAT)ア
レイ 38 多重化された32ビット・アドレス/64ビット
・データ・バス(バス) 42 プロセッサ・バス・インターフェース 44 コピーバック・バッファ 46 タッチ・ロード・バッファ 48 タグ・ユニット 50 タグ・ユニット 52 命令ユニット 54 順次取出し機構 56 命令待ち行列 58 ディスパッチ・ユニット 60 GPRファイル 62 FPRファイル 64 リネーム・レジスタ 66 リネーム・レジスタ 68 完了ユニット
B) 32 命令変換ルック・アサイド・バッファ(ITL
B) 34 命令ブロック・アドレス変換(IBAT)アレイ 36 データ・ブロック・アドレス変換(DBAT)ア
レイ 38 多重化された32ビット・アドレス/64ビット
・データ・バス(バス) 42 プロセッサ・バス・インターフェース 44 コピーバック・バッファ 46 タッチ・ロード・バッファ 48 タグ・ユニット 50 タグ・ユニット 52 命令ユニット 54 順次取出し機構 56 命令待ち行列 58 ディスパッチ・ユニット 60 GPRファイル 62 FPRファイル 64 リネーム・レジスタ 66 リネーム・レジスタ 68 完了ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダグラス・クリストファー・ヘスター アメリカ合衆国95035 カリフォルニア州 ミルピタス ニーヴズ・コート 1274 (72)発明者 ジョン・ビクター・セル アメリカ合衆国94024 カリフォルニア州 ロス・アルトス モーラ・ドライブ 11111 (72)発明者 カン・エヌ・チャン アメリカ合衆国78759 テキサス州オース チン グレート・ヒルズ・トレール 909 ナンバー428
Claims (12)
- 【請求項1】アドレス・バスおよびデータ・バスに結合
されたデータ・キャッシュ・ユニットおよび命令キャッ
シュ・ユニットを有し、アドレス・バスおよびデータ・
バスが、さらに、前記マイクロプロセッサの外部のシス
テム・メモリ・コントローラに接続される処理ユニット
において、 現データ・トランザクション内で事前取出しアドレスを
ロードするステップと、 前記事前取出しアドレスを用いて次ラインフィル・アド
レスを生成するステップとを含む、現書込みトランザク
ションのアドレス・フェーズ中に提供されるものとして
次トランザクション用の次読取りアドレスを提供するた
めのプロトコル。 - 【請求項2】前記次ラインフィル・アドレスを生成する
前記ステップが、前記事前取出しアドレスをコピーバッ
ク・アドレスの一部と連結するステップを含むことを特
徴とする、請求項1に記載のプロトコル。 - 【請求項3】前記事前取出しアドレスに連結される前記
コピーバック・アドレスの前記一部が、索引付きアドレ
スであることを特徴とする、請求項2に記載のプロトコ
ル。 - 【請求項4】さらに、前記システム・メモリ・コントロ
ーラに結合された主記憶ユニット内で、ラインフィルの
ためにメモリ・カラム・アドレスおよびメモリ・ロウ・
アドレスを生成するステップを含む、請求項1に記載の
プロトコル。 - 【請求項5】さらに、ラインフィル・トランザクション
の発行の前に、前記処理ユニット内の命令バッファに前
記ラインフィル・データをロードするステップを含む、
請求項1に記載のプロトコル。 - 【請求項6】前記システム・バス上に次ラインフィル・
アドレスを生成するステップの前に、 キャッシュ読取りミスが発生したかどうかを判定するス
テップと、 前記キャッシュ読取りミスが発生している場合に、修正
されたキャッシュ・ラインを前記主記憶ユニットにコピ
ー・バックするステップと、 前記ミスしたキャッシュ読取りラインを主記憶ユニット
から前記内部キャッシュにロードするステップとを含む
ことを特徴とする、請求項1に記載のプロトコル。 - 【請求項7】アドレス・バスおよびデータ・バスに結合
されたデータ・キャッシュ・ユニットおよび命令キャッ
シュ・ユニットを有し、アドレス・バスおよびデータ・
バスが、さらに、前記マイクロプロセッサの外部のシス
テム・メモリ・コントローラに接続される処理ユニット
において、 前記キャッシュ・ユニットに結合された、現データ・ト
ランザクション内で事前取出しアドレスをロードする手
段と、 前記ロードする手段に結合された、前記事前取出しアド
レスを用いて次ラインフィル・アドレスを生成する手段
とを含む、現書込みトランザクションのアドレス・フェ
ーズ中に提供されるものとして次トランザクション用の
次読取りアドレスを提供するためのシステム。 - 【請求項8】前記次ラインフィル・アドレスを生成する
前記手段が、前記事前取出しアドレスをコピーバック・
アドレスの一部と連結する手段を含むことを特徴とす
る、請求項7に記載のシステム。 - 【請求項9】前記事前取出しアドレスに連結される前記
コピーバック・アドレスの前記一部が、索引付きアドレ
スであることを特徴とする、請求項8に記載のシステ
ム。 - 【請求項10】さらに、前記システム・メモリ・コント
ローラに結合された主記憶ユニット内で、ラインフィル
のためにメモリ・カラム・アドレスおよびメモリ・ロウ
・アドレスを生成する、前記生成手段に結合された手段
を含む、請求項7に記載のシステム。 - 【請求項11】さらに、ラインフィル・トランザクショ
ンの発行の前に、前記処理ユニット内の命令バッファに
前記ラインフィル・データをロードする、前記生成手段
に結合された手段を含む、請求項7に記載のシステム。 - 【請求項12】キャッシュ読取りミスが発生したかどう
かを判定する、前記生成手段に結合された手段と、 修正されたキャッシュ・ラインを前記主記憶ユニットに
コピー・バックする、前記生成手段に結合された手段
と、 前記ミスしたキャッシュ読取りラインを主記憶ユニット
から前記内部キャッシュにロードする、前記生成手段に
結合された手段とをさらに含むことを特徴とする、請求
項7に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US386978 | 1995-02-10 | ||
US08/386,978 US5687350A (en) | 1995-02-10 | 1995-02-10 | Protocol and system for performing line-fill address during copy-back operation |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08263371A true JPH08263371A (ja) | 1996-10-11 |
Family
ID=23527902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8018724A Pending JPH08263371A (ja) | 1995-02-10 | 1996-02-05 | キャッシュにおいてコピーバック・アドレスを生成する装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5687350A (ja) |
EP (1) | EP0726524A3 (ja) |
JP (1) | JPH08263371A (ja) |
KR (1) | KR100218616B1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JP3934710B2 (ja) * | 1996-09-13 | 2007-06-20 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
US6065099A (en) * | 1997-08-20 | 2000-05-16 | Cypress Semiconductor Corp. | System and method for updating the data stored in a cache memory attached to an input/output system |
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 |
US6643800B1 (en) * | 2000-02-02 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus for testing microarchitectural features by using tests written in microcode |
US7797472B2 (en) * | 2004-08-25 | 2010-09-14 | Unisys Corporation | Method and apparatus for providing overlapping defer phase responses |
US9916252B2 (en) * | 2015-05-19 | 2018-03-13 | Linear Algebra Technologies Limited | Systems and methods for addressing a cache with split-indexes |
KR101842764B1 (ko) * | 2016-03-18 | 2018-03-28 | 연세대학교 산학협력단 | 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084231A (en) * | 1975-12-18 | 1978-04-11 | International Business Machines Corporation | System for facilitating the copying back of data in disc and tape units of a memory hierarchial system |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
JPH03189845A (ja) * | 1989-12-13 | 1991-08-19 | Internatl Business Mach Corp <Ibm> | 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5251310A (en) * | 1990-06-29 | 1993-10-05 | Digital Equipment Corporation | Method and apparatus for exchanging blocks of information between a cache memory and a main memory |
US5247642A (en) * | 1990-12-05 | 1993-09-21 | Ast Research, Inc. | Apparatus for determining cacheability of a memory address to provide zero wait state operation in a computer system |
US5247643A (en) * | 1991-01-08 | 1993-09-21 | Ast Research, Inc. | Memory control circuit for optimizing copy back/line fill operation in a copy back cache system |
US5353429A (en) * | 1991-03-18 | 1994-10-04 | Apple Computer, Inc. | Cache memory systems that accesses main memory without wait states during cache misses, using a state machine and address latch in the memory controller |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
DE4391002T1 (de) * | 1992-03-06 | 1995-02-23 | Rambus Inc | Vor-heranholen in einen Cache-Speicher zum minimieren der Hauptspeicherzugriffszeit und der Cache-Speichergröße in einen Computersystem |
US5353426A (en) * | 1992-04-29 | 1994-10-04 | Sun Microsystems, Inc. | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete |
US5471602A (en) * | 1992-07-31 | 1995-11-28 | Hewlett-Packard Company | System and method of scoreboarding individual cache line segments |
US5275216A (en) * | 1992-08-07 | 1994-01-04 | Haedt Christopher R | Liquid overflow shut-off valve |
-
1995
- 1995-02-10 US US08/386,978 patent/US5687350A/en not_active Expired - Fee Related
-
1996
- 1996-01-23 EP EP96480013A patent/EP0726524A3/en not_active Withdrawn
- 1996-01-29 KR KR1019960001881A patent/KR100218616B1/ko not_active IP Right Cessation
- 1996-02-05 JP JP8018724A patent/JPH08263371A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0726524A2 (en) | 1996-08-14 |
US5687350A (en) | 1997-11-11 |
EP0726524A3 (en) | 1997-10-15 |
KR960032191A (ko) | 1996-09-17 |
KR100218616B1 (ko) | 1999-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6247107B1 (en) | Chipset configured to perform data-directed prefetching | |
US5510934A (en) | Memory system including local and global caches for storing floating point and integer data | |
US6161166A (en) | Instruction cache for multithreaded processor | |
US6594728B1 (en) | Cache memory with dual-way arrays and multiplexed parallel output | |
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US6725337B1 (en) | Method and system for speculatively invalidating lines in a cache | |
US6119205A (en) | Speculative cache line write backs to avoid hotspots | |
US6212602B1 (en) | Cache tag caching | |
US6122709A (en) | Cache with reduced tag information storage | |
US5781924A (en) | Computer caching methods and apparatus | |
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 | |
US5784590A (en) | Slave cache having sub-line valid bits updated by a master cache | |
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
US5893921A (en) | Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller | |
KR100586057B1 (ko) | 프리디코드 정보를 저장하기 위해 ecc/패리티 비트들의 이용 | |
US6012134A (en) | High-performance processor with streaming buffer that facilitates prefetching of instructions | |
KR20030010727A (ko) | 변환 색인 버퍼 플러시 필터 | |
WO1996012227A1 (en) | An address queue capable of tracking memory dependencies | |
JPH0659976A (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
KR20170139659A (ko) | 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서 | |
US20030074530A1 (en) | Load/store unit with fast memory data access mechanism | |
US6094711A (en) | Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance | |
JPH06236353A (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
JPH0836491A (ja) | パイプライン・ストア命令を実行する装置及びその方法 | |
US5550995A (en) | Memory cache with automatic alliased entry invalidation and method of operation |