JPH08263373A - キャッシュにおけるスヌーピング装置および方法 - Google Patents
キャッシュにおけるスヌーピング装置および方法Info
- Publication number
- JPH08263373A JPH08263373A JP8018801A JP1880196A JPH08263373A JP H08263373 A JPH08263373 A JP H08263373A JP 8018801 A JP8018801 A JP 8018801A JP 1880196 A JP1880196 A JP 1880196A JP H08263373 A JPH08263373 A JP H08263373A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data
- cache
- snooping
- memory
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 データ処理システム内でメモリ一貫性を維持
する。 【解決手段】 二重バス・メモリ・コントローラは、第
1バス・マスタを介して第1バスに結合され、第2バス
・マスタに結合された第2バスに結合される。データ処
理ユニット内のアドレス/データ多重化バス上の属性に
ついて、第1バス又は第2バスのいずれかをスヌープす
ることによってメモリ一貫性を維持する。スヌープ動作
が必要な時を判定するために、このシステムは、二重バ
ス・メモリ・コントローラを介して2つのバスのいずれ
かへのアクセスを要求することから開始し、データは、
マスタ・バス・コントローラを使用して転送される。ス
ヌープ活動が開始されるのは、バス上でデータを転送し
ている間に無効データ信号を受け取る時である。スヌー
プは、無効データ信号を受け取った後にのみ挿入され、
最後のスヌープ挿入は、最後の読取りデータを読み取る
前にのみ発生可能である。
する。 【解決手段】 二重バス・メモリ・コントローラは、第
1バス・マスタを介して第1バスに結合され、第2バス
・マスタに結合された第2バスに結合される。データ処
理ユニット内のアドレス/データ多重化バス上の属性に
ついて、第1バス又は第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】複数のバスが存在する時の問題の1つが、
読取りトランザクション中にスヌープ・サイクルを全く
実行できないことである。たとえば、システム・メモリ
・コントローラを有する二重バス・アーキテクチャで
は、システム・メモリ・コントローラが、一方のバスの
マスタの現読取りトランザクションの完了を待たなけれ
ばならない。その後、メモリ・コントローラは、第2の
バスに接続された別のマスタがシステム・メモリにアク
セスすることを許可して、メモリの整合性または一貫性
を保証する。
読取りトランザクション中にスヌープ・サイクルを全く
実行できないことである。たとえば、システム・メモリ
・コントローラを有する二重バス・アーキテクチャで
は、システム・メモリ・コントローラが、一方のバスの
マスタの現読取りトランザクションの完了を待たなけれ
ばならない。その後、メモリ・コントローラは、第2の
バスに接続された別のマスタがシステム・メモリにアク
セスすることを許可して、メモリの整合性または一貫性
を保証する。
【0008】したがって、多重化バスと、データ・フェ
ーズまたは読取りトランザクション中にスヌープ動作を
提供することによって一貫性を制御する複数のバス・マ
スタまたは二重バス・メモリ・コントローラとを有する
処理システム用のバス・プロトコルが必要である。
ーズまたは読取りトランザクション中にスヌープ動作を
提供することによって一貫性を制御する複数のバス・マ
スタまたは二重バス・メモリ・コントローラとを有する
処理システム用のバス・プロトコルが必要である。
【0009】
【発明が解決しようとする課題】本発明の目的は、デー
タ記憶システムを提供することである。
タ記憶システムを提供することである。
【0010】本発明のもう1つの目的は、処理ユニット
内または処理ユニット外にキャッシュ・ユニットを有す
るデータ記憶システムを提供することである。
内または処理ユニット外にキャッシュ・ユニットを有す
るデータ記憶システムを提供することである。
【0011】本発明のもう1つの目的は、改良されたス
ヌープ方式によってメモリ一貫性を維持されるキャッシ
ュ・ユニットを有するデータ記憶システムを提供するこ
とである。
ヌープ方式によってメモリ一貫性を維持されるキャッシ
ュ・ユニットを有するデータ記憶システムを提供するこ
とである。
【0012】
【課題を解決するための手段】前述の目的は、下記に従
って達成される。本発明による、データ処理システム内
でメモリ一貫性を維持するための方法を開示する。この
データ処理システムには、二重バス・メモリ・コントロ
ーラが含まれ、この二重バス・メモリ・コントローラ
は、第1バス・マスタを介して第1バスに結合され、第
2バス・マスタに結合された第2バスに結合される。こ
の方法では、データ処理ユニット内のアドレス/データ
多重化バス上の属性について第1バスまたは第2バスの
いずれかをスヌープすることによってメモリ一貫性を維
持する。スヌープ動作が必要な時を判定するために、こ
のシステムは、二重バス・メモリ・コントローラを介し
て2つのバスのいずれかへのアクセスを要求することか
ら開始する。要求時にバスの制御が認可されたならば、
データは、マスタ・バス・コントローラを使用して転送
される。スヌープ活動が開始されるのは、バス上でデー
タを転送している間に無効データ信号を受け取る時であ
る。スヌープは、無効データ信号を受け取った後にのみ
挿入され、最後のスヌープ挿入は、最後の読取りデータ
を読み取る前にのみ発生可能である。
って達成される。本発明による、データ処理システム内
でメモリ一貫性を維持するための方法を開示する。この
データ処理システムには、二重バス・メモリ・コントロ
ーラが含まれ、この二重バス・メモリ・コントローラ
は、第1バス・マスタを介して第1バスに結合され、第
2バス・マスタに結合された第2バスに結合される。こ
の方法では、データ処理ユニット内のアドレス/データ
多重化バス上の属性について第1バスまたは第2バスの
いずれかをスヌープすることによってメモリ一貫性を維
持する。スヌープ動作が必要な時を判定するために、こ
のシステムは、二重バス・メモリ・コントローラを介し
て2つのバスのいずれかへのアクセスを要求することか
ら開始する。要求時にバスの制御が認可されたならば、
データは、マスタ・バス・コントローラを使用して転送
される。スヌープ活動が開始されるのは、バス上でデー
タを転送している間に無効データ信号を受け取る時であ
る。スヌープは、無効データ信号を受け取った後にのみ
挿入され、最後のスヌープ挿入は、最後の読取りデータ
を読み取る前にのみ発生可能である。
【0013】本発明の上記ならびに追加の目的、特徴お
よび長所は、以下の詳細な説明で明らかになる。
よび長所は、以下の詳細な説明で明らかになる。
【0014】
【発明の実施の形態】図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命令までを発行、撤収することができ、これ
らの命令は、性能向上のため非整順に実行することがで
きるが、完了時には一貫性のある規則正しい動作のため
に逐次式に現れる。
【0015】マイクロプロセッサ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項目のす
べてと同時に比較される。
【0016】マイクロプロセッサ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によって処理される。
【0017】命令ユニット52には、順次取出し機構5
4、命令待ち行列56、ディスパッチ・ユニット58お
よびBPU16も含まれて、実行ユニットへの命令フロ
ーの中央制御をもたらす。命令ユニット52は、順次取
出し機構54およびBPU16からの情報に基づいて、
次に取り出される命令のアドレスを判定する。
4、命令待ち行列56、ディスパッチ・ユニット58お
よびBPU16も含まれて、実行ユニットへの命令フロ
ーの中央制御をもたらす。命令ユニット52は、順次取
出し機構54およびBPU16からの情報に基づいて、
次に取り出される命令のアドレスを判定する。
【0018】命令ユニット52は、命令キャッシュ22
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
【0019】BPU16は、順次取出し機構54から分
岐命令を受け取り、これらの分岐を早期に解決するため
に条件分岐に対するCRルックアヘッド動作を実行し
て、多くの場合に0サイクル分岐の効果を達成する。
岐命令を受け取り、これらの分岐を早期に解決するため
に条件分岐に対するCRルックアヘッド動作を実行し
て、多くの場合に0サイクル分岐の効果を達成する。
【0020】LSU18は、ロード命令とストア命令の
すべてを実行し、汎用レジスタ(GPR)60、浮動小
数点レジスタ(FPR)62およびキャッシュ/メモリ
・サブシステムの間のデータ転送インターフェースを提
供する。LSU18は、文字列ロード/ストア命令およ
び多重ワード・ロード/ストア命令に関して、有効アド
レスを計算し、データ位置合わせを実行し、順序付けを
提供する。ロード命令とストア命令は、プログラムの順
で発行され、変換される。しかし、実際のメモリ・アク
セスは、非整順で発生する可能性がある。厳密な順序付
けを実施するために、同期化命令が設けられている。
すべてを実行し、汎用レジスタ(GPR)60、浮動小
数点レジスタ(FPR)62およびキャッシュ/メモリ
・サブシステムの間のデータ転送インターフェースを提
供する。LSU18は、文字列ロード/ストア命令およ
び多重ワード・ロード/ストア命令に関して、有効アド
レスを計算し、データ位置合わせを実行し、順序付けを
提供する。ロード命令とストア命令は、プログラムの順
で発行され、変換される。しかし、実際のメモリ・アク
セスは、非整順で発生する可能性がある。厳密な順序付
けを実施するために、同期化命令が設けられている。
【0021】データ依存性がない時のキャッシュ可能な
ロードは、1サイクルごとに1回の最大スループットと
2サイクルの総合待ち時間を有する投機的な方法で実行
される。キャッシュから取り除かれたデータは、完了ユ
ニット68がその値をGPRまたはFPRにコミットす
るまで、リネーム・レジスタ64および66に保持され
る。ストアは、投機的に実行することができず、ストア
動作をメモリに対して完了しなければならないことを完
了ユニット68が知らせるまで、ストア待ち行列に保持
される。実際のロード動作またはストア動作を実行する
のに必要な時間は、その動作にキャッシュ、システム・
メモリまたは入出力装置が含まれるかどうかに応じて変
動する。
ロードは、1サイクルごとに1回の最大スループットと
2サイクルの総合待ち時間を有する投機的な方法で実行
される。キャッシュから取り除かれたデータは、完了ユ
ニット68がその値をGPRまたはFPRにコミットす
るまで、リネーム・レジスタ64および66に保持され
る。ストアは、投機的に実行することができず、ストア
動作をメモリに対して完了しなければならないことを完
了ユニット68が知らせるまで、ストア待ち行列に保持
される。実際のロード動作またはストア動作を実行する
のに必要な時間は、その動作にキャッシュ、システム・
メモリまたは入出力装置が含まれるかどうかに応じて変
動する。
【0022】命令MMU26およびデータMMU28
は、命令またはデータに関して物理記憶と仮想記憶の両
方をサポートする。命令MMU26およびデータMMU
28は、ブロック上の空間およびページ粒度に関するア
クセス特権も制御する。LSU18は、データのロード
およびストアの有効アドレスを計算し、キャッシュ・メ
モリとの間のデータ位置合わせを実行し、文字列ロード
/ストア命令および多重ワード・ロード/ストア命令の
順序付けを提供する。命令ユニット52は、命令取出し
の有効アドレスを計算する。
は、命令またはデータに関して物理記憶と仮想記憶の両
方をサポートする。命令MMU26およびデータMMU
28は、ブロック上の空間およびページ粒度に関するア
クセス特権も制御する。LSU18は、データのロード
およびストアの有効アドレスを計算し、キャッシュ・メ
モリとの間のデータ位置合わせを実行し、文字列ロード
/ストア命令および多重ワード・ロード/ストア命令の
順序付けを提供する。命令ユニット52は、命令取出し
の有効アドレスを計算する。
【0023】アドレスが生成された後に、有効アドレス
の上位ビットが、適当なMMUによって物理アドレス・
ビットに変換される。それと同時に、アドレスの下位ビ
ットがキャッシュに送られ、ここで、下位ビットが2ウ
ェイ・セット・アソシアティブ・タグ・アレイへの索引
を形成する。アドレス変換の後に、MMUは、物理アド
レスの上位ビットをキャッシュに渡し、キャッシュ・ル
ックアップが完了する。
の上位ビットが、適当なMMUによって物理アドレス・
ビットに変換される。それと同時に、アドレスの下位ビ
ットがキャッシュに送られ、ここで、下位ビットが2ウ
ェイ・セット・アソシアティブ・タグ・アレイへの索引
を形成する。アドレス変換の後に、MMUは、物理アド
レスの上位ビットをキャッシュに渡し、キャッシュ・ル
ックアップが完了する。
【0024】命令キャッシュ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ワードを返す。
【0025】データ・キャッシュのタグ・ユニット48
は、単一ポートであり、したがってロードまたはストア
のアクセスとスヌープ・アクセスが同時に発生すると、
資源競合が発生する可能性がある。スヌープ・アクセス
は、最高の優先順位を有し、スヌープ・アクセスがタグ
書込みと同時に発生しない限り、タグ・ユニット48へ
の最初のアクセス権を与えられる。同時に発生した場合
には、スヌープは再試行され、このスヌープは、キャッ
シュへのアクセス権に関してもう一度アービトレーショ
ンされなければならない。スヌープ・アクセスのために
延期されたロードまたはストアは、スヌープの次のクロ
ック・サイクルに実行される。
は、単一ポートであり、したがってロードまたはストア
のアクセスとスヌープ・アクセスが同時に発生すると、
資源競合が発生する可能性がある。スヌープ・アクセス
は、最高の優先順位を有し、スヌープ・アクセスがタグ
書込みと同時に発生しない限り、タグ・ユニット48へ
の最初のアクセス権を与えられる。同時に発生した場合
には、スヌープは再試行され、このスヌープは、キャッ
シュへのアクセス権に関してもう一度アービトレーショ
ンされなければならない。スヌープ・アクセスのために
延期されたロードまたはストアは、スヌープの次のクロ
ック・サイクルに実行される。
【0026】図2は、第1バス・マスタAまたは図1の
マイクロプロセッサ10に結合されたメモリ・システム
100のブロック図である。メモリ・システム100に
は、二重バス・メモリ・コントローラ102も含まれ、
この二重バス・メモリ・コントローラ102は、バス線
Aを介して第1バス・マスタAに接続され、第2バス線
Bを介して第2バス・マスタBまたは直接メモリ・アク
セス(DMA)ユニット104に接続される。このメモ
リ・コントローラは、さらに、短期間メモリまたはDR
AM106に接続される。二重バス・メモリ・コントロ
ーラ102が、読取りデータではなくアドレス/データ
バス上の属性に関して、マスタ・バスにまたがるスヌー
プとDRAM106へのスヌープを行えるようにするプ
ロトコルを提供する。図3は、クロック・サイクル6お
よび10の間にある、挿入されたスヌープ・ウィンドウ
内の最初の可能なスヌープに関するタイミング図であ
る。
マイクロプロセッサ10に結合されたメモリ・システム
100のブロック図である。メモリ・システム100に
は、二重バス・メモリ・コントローラ102も含まれ、
この二重バス・メモリ・コントローラ102は、バス線
Aを介して第1バス・マスタAに接続され、第2バス線
Bを介して第2バス・マスタBまたは直接メモリ・アク
セス(DMA)ユニット104に接続される。このメモ
リ・コントローラは、さらに、短期間メモリまたはDR
AM106に接続される。二重バス・メモリ・コントロ
ーラ102が、読取りデータではなくアドレス/データ
バス上の属性に関して、マスタ・バスにまたがるスヌー
プとDRAM106へのスヌープを行えるようにするプ
ロトコルを提供する。図3は、クロック・サイクル6お
よび10の間にある、挿入されたスヌープ・ウィンドウ
内の最初の可能なスヌープに関するタイミング図であ
る。
【0027】図3のタイミング図には、クロック信号
(CLK)、バス要求信号(BR_)、バス認可信号
(BG_)、転送開始信号(TS_)、アドレス確認信
号(AACK_)、アドレスまたはデータ信号(A/D
(0:63))、バス・ビジー信号(BB_)、転送確
認信号(TA_),アドレス再試行信号(ARTRY
_)および転送エラー確認(TEA_)が示されてい
る。追加の信号も示されており、これには、読取りアド
レス信号(RA)、スヌープ・アドレス信号(SA)お
よび読取りデータ(D0…D3)が含まれる。
(CLK)、バス要求信号(BR_)、バス認可信号
(BG_)、転送開始信号(TS_)、アドレス確認信
号(AACK_)、アドレスまたはデータ信号(A/D
(0:63))、バス・ビジー信号(BB_)、転送確
認信号(TA_),アドレス再試行信号(ARTRY
_)および転送エラー確認(TEA_)が示されてい
る。追加の信号も示されており、これには、読取りアド
レス信号(RA)、スヌープ・アドレス信号(SA)お
よび読取りデータ(D0…D3)が含まれる。
【0028】このタイミング図の初期の信号の連なりの
間に、クロック信号は、クロック・サイクルごとに高低
に切り替わり、バス要求が、第1クロック・サイクル中
に出される。バス要求がアサートされている時間の間の
中間に、バスが認可されたことを示す信号が、第2クロ
ック・サイクルの間にアサートされ、バス要求サイクル
が通常のサイクルに戻った後に、第3クロック・サイク
ルに転送開始信号が出される。この第3クロック・サイ
クルの間に、A/D信号に示されるように、プロセッサ
によって読取りアドレスが駆動される。次に、第4クロ
ック・サイクルにバス・ビジー信号が始まる際に、バス
認可が終了し、転送開始信号が終了する。このBB_信
号のアサートの後、第4クロック・サイクルの間に、A
/D線上にトライステート信号がアサートされる。その
後、第5クロック・サイクルに、アドレス・データ線
(A/D)上に無効データが発生する際に、転送開始線
がトライステート化される。
間に、クロック信号は、クロック・サイクルごとに高低
に切り替わり、バス要求が、第1クロック・サイクル中
に出される。バス要求がアサートされている時間の間の
中間に、バスが認可されたことを示す信号が、第2クロ
ック・サイクルの間にアサートされ、バス要求サイクル
が通常のサイクルに戻った後に、第3クロック・サイク
ルに転送開始信号が出される。この第3クロック・サイ
クルの間に、A/D信号に示されるように、プロセッサ
によって読取りアドレスが駆動される。次に、第4クロ
ック・サイクルにバス・ビジー信号が始まる際に、バス
認可が終了し、転送開始信号が終了する。このBB_信
号のアサートの後、第4クロック・サイクルの間に、A
/D線上にトライステート信号がアサートされる。その
後、第5クロック・サイクルに、アドレス・データ線
(A/D)上に無効データが発生する際に、転送開始線
がトライステート化される。
【0029】無効データ・ユニットが検出されたなら
ば、スヌープを、クロック・サイクル6とクロック・サ
イクル10の間に挿入されたスヌープ・ウィンドウに挿
入する。この時点で、転送開始信号がアサートされ、ス
ヌープ・アドレスは、メモリ・コントローラによってA
/D線上に駆動される。第7クロック・サイクルで転送
開始信号が終了する際に、転送確認がTA_線で認可さ
れ、メモリ・コントローラは、第1読取りデータ(D
0)を駆動する。第2読取りデータ(D1)も、プロセ
ッサによってARTRY_線にアドレス再試行信号がア
サートされる際にメモリ・コントローラによって駆動さ
れて、第6クロックのスヌープがヒットであることを示
す。ARTRY_信号は、そのスヌープがヒットである
ことを示すためにマイクロプロセッサ10によって駆動
される。スヌープがミスの場合には、この信号は接続さ
れない。第9クロック・サイクルに、メモリ・コントロ
ーラによって第3読取りデータが駆動され、その後、第
10クロック・サイクルに無効データが感知され、その
後、転送確認信号が、TA_線上で非活動化される。次
のクロック・サイクル(サイクル11)には、第4読取
りデータが、メモリ・コントローラによって駆動され
る。その後、第12クロック・サイクルに、A/D線と
同様にTS_線がトライステート化される。これは、バ
ス・ビジー信号がBB_線上でネゲートされ、転送確認
信号がTA_線上でネゲートされた後に発生する。サイ
クル13には、BB_線とTA_線がトライステート化
され、最後に、サイクル14に、ARTRY_線がトラ
イステート化される。この時間の全体を通じて、アドレ
ス確認線と転送エラー確認線は、非活動状態である。
ば、スヌープを、クロック・サイクル6とクロック・サ
イクル10の間に挿入されたスヌープ・ウィンドウに挿
入する。この時点で、転送開始信号がアサートされ、ス
ヌープ・アドレスは、メモリ・コントローラによってA
/D線上に駆動される。第7クロック・サイクルで転送
開始信号が終了する際に、転送確認がTA_線で認可さ
れ、メモリ・コントローラは、第1読取りデータ(D
0)を駆動する。第2読取りデータ(D1)も、プロセ
ッサによってARTRY_線にアドレス再試行信号がア
サートされる際にメモリ・コントローラによって駆動さ
れて、第6クロックのスヌープがヒットであることを示
す。ARTRY_信号は、そのスヌープがヒットである
ことを示すためにマイクロプロセッサ10によって駆動
される。スヌープがミスの場合には、この信号は接続さ
れない。第9クロック・サイクルに、メモリ・コントロ
ーラによって第3読取りデータが駆動され、その後、第
10クロック・サイクルに無効データが感知され、その
後、転送確認信号が、TA_線上で非活動化される。次
のクロック・サイクル(サイクル11)には、第4読取
りデータが、メモリ・コントローラによって駆動され
る。その後、第12クロック・サイクルに、A/D線と
同様にTS_線がトライステート化される。これは、バ
ス・ビジー信号がBB_線上でネゲートされ、転送確認
信号がTA_線上でネゲートされた後に発生する。サイ
クル13には、BB_線とTA_線がトライステート化
され、最後に、サイクル14に、ARTRY_線がトラ
イステート化される。この時間の全体を通じて、アドレ
ス確認線と転送エラー確認線は、非活動状態である。
【0030】図4は、挿入されたスヌープ・ウィンドウ
(クロック・サイクル6ないし10)で実行できる最後
の可能なスヌープのタイミング図である。この図のタイ
ミング図と、挿入されたスヌープ・ウィンドウの最初の
スヌープに関する前の図のタイミング図の間の相違は、
スヌープ・サイクル(クロック10)にTA_線をハイ
(ネゲート)に駆動しなければならないことと、第2の
TS_パルスが、メモリ・コントローラによって駆動さ
れることである。また、可能な最後のスヌープは、最終
読取りデータ(D3)が読み取られる前に挿入しなけれ
ばならない。
(クロック・サイクル6ないし10)で実行できる最後
の可能なスヌープのタイミング図である。この図のタイ
ミング図と、挿入されたスヌープ・ウィンドウの最初の
スヌープに関する前の図のタイミング図の間の相違は、
スヌープ・サイクル(クロック10)にTA_線をハイ
(ネゲート)に駆動しなければならないことと、第2の
TS_パルスが、メモリ・コントローラによって駆動さ
れることである。また、可能な最後のスヌープは、最終
読取りデータ(D3)が読み取られる前に挿入しなけれ
ばならない。
【0031】好ましい実施例に関して本発明を具体的に
図示し、説明してきたが、当業者であれば、本発明の趣
旨および範囲から逸脱することなく、形態と詳細にさま
ざまな変更を加えることができることを理解するであろ
う。
図示し、説明してきたが、当業者であれば、本発明の趣
旨および範囲から逸脱することなく、形態と詳細にさま
ざまな変更を加えることができることを理解するであろ
う。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0033】(1)第1バス・マスタに結合された第1
バスと第2バス・マスタに結合された第2バスとを有す
る二重バス・メモリ・コントローラを含むメモリ・シス
テムを有するデータ処理システムにおいて、前記データ
処理ユニット内のアドレス/データ多重化バス上の属性
に関して、前記第1バスまたは前記第2バスのいずれか
をスヌープするステップを含む、メモリ一貫性を維持す
るための方法。 (2)前記スヌープするステップの前に、前記二重バス
・メモリ・コントローラによるアクセスのために前記第
1バスまたは前記第2バスのアクセスを要求するステッ
プと、バス・アクセス要求の後に、前記第1バスまたは
前記第2バスの制御を認可するステップと、前記第1バ
スまたは前記第2バスを介してデータ転送を開始するス
テップと、無効データ信号を受け取るステップとをさら
に含む、上記(1)に記載の方法。
バスと第2バス・マスタに結合された第2バスとを有す
る二重バス・メモリ・コントローラを含むメモリ・シス
テムを有するデータ処理システムにおいて、前記データ
処理ユニット内のアドレス/データ多重化バス上の属性
に関して、前記第1バスまたは前記第2バスのいずれか
をスヌープするステップを含む、メモリ一貫性を維持す
るための方法。 (2)前記スヌープするステップの前に、前記二重バス
・メモリ・コントローラによるアクセスのために前記第
1バスまたは前記第2バスのアクセスを要求するステッ
プと、バス・アクセス要求の後に、前記第1バスまたは
前記第2バスの制御を認可するステップと、前記第1バ
スまたは前記第2バスを介してデータ転送を開始するス
テップと、無効データ信号を受け取るステップとをさら
に含む、上記(1)に記載の方法。
【図面の簡単な説明】
【図1】本発明を実施できる代表的なマイクロプロセッ
サのブロック図である。
サのブロック図である。
【図2】図1の処理ユニットに結合された、メモリ・シ
ステムのブロック図である。
ステムのブロック図である。
【図3】挿入されたスヌープ・ウィンドウ内の最初のス
ヌープのタイミング図である。
ヌープのタイミング図である。
【図4】挿入されたスヌープ・ウィンドウ内の最後に実
行されるスヌープのタイミング図である。
行されるスヌープのタイミング図である。
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 完了ユニット 100 メモリ・システム 102 二重バス・メモリ・コントローラ 104 直接メモリ・アクセス(DMA)ユニット 106 DRAM
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 完了ユニット 100 メモリ・システム 102 二重バス・メモリ・コントローラ 104 直接メモリ・アクセス(DMA)ユニット 106 DRAM
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダグラス・クリストファー・ヘスター アメリカ合衆国95035 カリフォルニア州 ミルピタス ニューヴェス・コート 1274 (72)発明者 ジョン・ビクター・セル アメリカ合衆国94024 カリフォルニア州 ロス・アルトス モーラ・ドライブ 11111 (72)発明者 カン・エヌ・チャン アメリカ合衆国78759 テキサス州オース チン グレート・ヒルズ・トレール 909 ナンバー428
Claims (2)
- 【請求項1】第1バス・マスタに結合された第1バスと
第2バス・マスタに結合された第2バスとを有する二重
バス・メモリ・コントローラを含むメモリ・システムを
有するデータ処理システムにおいて、 前記データ処理ユニット内のアドレス/データ多重化バ
ス上の属性に関して、前記第1バスまたは前記第2バス
のいずれかをスヌープするステップを含む、メモリ一貫
性を維持するための方法。 - 【請求項2】前記スヌープするステップの前に、前記二
重バス・メモリ・コントローラによるアクセスのために
前記第1バスまたは前記第2バスのアクセスを要求する
ステップと、 バス・アクセス要求の後に、前記第1バスまたは前記第
2バスの制御を認可するステップと、 前記第1バスまたは前記第2バスを介してデータ転送を
開始するステップと、 無効データ信号を受け取るステップとをさらに含む、請
求項1に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/387,148 US5893921A (en) | 1995-02-10 | 1995-02-10 | 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 |
| US387148 | 1995-02-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08263373A true JPH08263373A (ja) | 1996-10-11 |
Family
ID=23528678
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8018801A Pending JPH08263373A (ja) | 1995-02-10 | 1996-02-05 | キャッシュにおけるスヌーピング装置および方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5893921A (ja) |
| EP (1) | EP0726523A3 (ja) |
| JP (1) | JPH08263373A (ja) |
| KR (1) | KR100228940B1 (ja) |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6526469B1 (en) | 1999-11-12 | 2003-02-25 | International Business Machines Corporation | Bus architecture employing varying width uni-directional command bus |
| US6557069B1 (en) | 1999-11-12 | 2003-04-29 | International Business Machines Corporation | Processor-memory bus architecture for supporting multiple processors |
| US6513091B1 (en) | 1999-11-12 | 2003-01-28 | International Business Machines Corporation | Data routing using status-response signals |
| US6643752B1 (en) * | 1999-12-09 | 2003-11-04 | Rambus Inc. | Transceiver with latency alignment circuitry |
| US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
| US7266634B2 (en) | 2000-01-05 | 2007-09-04 | Rambus Inc. | Configurable width buffered module having flyby elements |
| US7363422B2 (en) * | 2000-01-05 | 2008-04-22 | Rambus Inc. | Configurable width buffered module |
| US7404032B2 (en) * | 2000-01-05 | 2008-07-22 | Rambus Inc. | Configurable width buffered module having switch elements |
| US7017002B2 (en) * | 2000-01-05 | 2006-03-21 | Rambus, Inc. | System featuring a master device, a buffer device and a plurality of integrated circuit memory devices |
| US7356639B2 (en) | 2000-01-05 | 2008-04-08 | Rambus Inc. | Configurable width buffered module having a bypass circuit |
| US6587905B1 (en) | 2000-06-29 | 2003-07-01 | International Business Machines Corporation | Dynamic data bus allocation |
| US6851056B2 (en) | 2002-04-18 | 2005-02-01 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
| US7089419B2 (en) | 2002-04-18 | 2006-08-08 | International Business Machines Corporation | Control function with multiple security states for facilitating secure operation of an integrated system |
| US6715085B2 (en) | 2002-04-18 | 2004-03-30 | International Business Machines Corporation | Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function |
| US7266842B2 (en) * | 2002-04-18 | 2007-09-04 | International Business Machines Corporation | Control function implementing selective transparent data authentication within an integrated system |
| TWI282513B (en) * | 2002-06-12 | 2007-06-11 | Mediatek Inc | A pre-fetch device of instruction for an embedded system |
| US6944698B2 (en) * | 2002-07-08 | 2005-09-13 | International Business Machines Corporation | Method and apparatus for providing bus arbitrations in a data processing system |
| US6976132B2 (en) * | 2003-03-28 | 2005-12-13 | International Business Machines Corporation | Reducing latency of a snoop tenure |
| US7461268B2 (en) * | 2004-07-15 | 2008-12-02 | International Business Machines Corporation | E-fuses for storing security version data |
| US7340568B2 (en) * | 2005-02-11 | 2008-03-04 | International Business Machines Corporation | Reducing number of rejected snoop requests by extending time to respond to snoop request |
| US7464225B2 (en) * | 2005-09-26 | 2008-12-09 | Rambus Inc. | Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology |
| US7562271B2 (en) | 2005-09-26 | 2009-07-14 | Rambus Inc. | Memory system topologies including a buffer device and an integrated circuit memory device |
| US11328764B2 (en) | 2005-09-26 | 2022-05-10 | Rambus Inc. | Memory system topologies including a memory die stack |
| US20080065837A1 (en) * | 2006-09-07 | 2008-03-13 | Sodick Co., Ltd. | Computerized numerical control system with human interface using low cost shared memory |
| US7958314B2 (en) * | 2007-12-18 | 2011-06-07 | International Business Machines Corporation | Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources |
| US8510509B2 (en) * | 2007-12-18 | 2013-08-13 | International Business Machines Corporation | Data transfer to memory over an input/output (I/O) interconnect |
| US9336003B2 (en) | 2013-01-25 | 2016-05-10 | Apple Inc. | Multi-level dispatch for a superscalar processor |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5157774A (en) * | 1987-09-28 | 1992-10-20 | Compaq Computer Corporation | System for fast selection of non-cacheable address ranges using programmed array logic |
| US5072369A (en) * | 1989-04-07 | 1991-12-10 | Tektronix, Inc. | Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates |
| US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
| JPH03219345A (ja) * | 1990-01-25 | 1991-09-26 | Toshiba Corp | 多ポートキャッシュメモリ制御装置 |
| ATE158882T1 (de) * | 1990-06-15 | 1997-10-15 | Compaq Computer Corp | Vorrichtung zur echten lru-ersetzung |
| US5293603A (en) * | 1991-06-04 | 1994-03-08 | Intel Corporation | Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path |
| US5228134A (en) * | 1991-06-04 | 1993-07-13 | Intel Corporation | Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus |
| US5426765A (en) * | 1991-08-30 | 1995-06-20 | Compaq Computer Corporation | Multiprocessor cache abitration |
| US5359723A (en) * | 1991-12-16 | 1994-10-25 | Intel Corporation | Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only |
| US5341487A (en) * | 1991-12-20 | 1994-08-23 | International Business Machines Corp. | Personal computer having memory system with write-through cache and pipelined snoop cycles |
| US5463753A (en) * | 1992-10-02 | 1995-10-31 | Compaq Computer Corp. | Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller |
| US5353415A (en) * | 1992-10-02 | 1994-10-04 | Compaq Computer Corporation | Method and apparatus for concurrency of bus operations |
| US5394555A (en) * | 1992-12-23 | 1995-02-28 | Bull Hn Information Systems Inc. | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory |
-
1995
- 1995-02-10 US US08/387,148 patent/US5893921A/en not_active Expired - Fee Related
-
1996
- 1996-01-23 EP EP96480009A patent/EP0726523A3/en not_active Withdrawn
- 1996-01-29 KR KR1019960001883A patent/KR100228940B1/ko not_active Expired - Fee Related
- 1996-02-05 JP JP8018801A patent/JPH08263373A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR100228940B1 (ko) | 1999-11-01 |
| EP0726523A3 (en) | 1996-11-20 |
| US5893921A (en) | 1999-04-13 |
| EP0726523A2 (en) | 1996-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| US5784590A (en) | Slave cache having sub-line valid bits updated by a master cache | |
| US5692152A (en) | Master-slave cache system with de-coupled data and tag pipelines and loop-back | |
| US5551001A (en) | Master-slave cache system for instruction and data cache memories | |
| JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
| US5774700A (en) | Method and apparatus for determining the timing of snoop windows in a pipelined bus | |
| US8180981B2 (en) | Cache coherent support for flash in a memory hierarchy | |
| EP0734553B1 (en) | Split level cache | |
| US5551005A (en) | Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches | |
| US6594728B1 (en) | Cache memory with dual-way arrays and multiplexed parallel output | |
| 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 | |
| US5797026A (en) | Method and apparatus for self-snooping a bus during a boundary transaction | |
| US8301843B2 (en) | Data cache block zero implementation | |
| US5666509A (en) | Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof | |
| US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
| US6665767B1 (en) | Programmer initiated cache block operations | |
| US6094711A (en) | Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance | |
| US5590310A (en) | Method and structure for data integrity in a multiple level cache system | |
| JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
| US5596731A (en) | Single clock bus transfers during burst and non-burst cycles | |
| US6182201B1 (en) | Demand-based issuance of cache operations to a system bus | |
| US20080086594A1 (en) | Uncacheable load merging | |
| US5860113A (en) | System for using a dirty bit with a cache memory | |
| US5748938A (en) | System and method for maintaining coherency of information transferred between multiple devices | |
| US8108621B2 (en) | Data cache with modified bit array |