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
Application number
JP8018801A
Other languages
English (en)
Inventor
Timothy Bucher
ティモシー・ブッチャー
Christopher Hester Douglas
ダグラス・クリストファー・ヘスター
John V Sell
ジョン・ビクター・セル
N Chan Kan
カン・エヌ・チャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08263373A publication Critical patent/JPH08263373A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache 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)
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling 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つのバスのいずれ
かへのアクセスを要求することから開始し、データは、
マスタ・バス・コントローラを使用して転送される。ス
ヌープ活動が開始されるのは、バス上でデータを転送し
ている間に無効データ信号を受け取る時である。スヌー
プは、無効データ信号を受け取った後にのみ挿入され、
最後のスヌープ挿入は、最後の読取りデータを読み取る
前にのみ発生可能である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全般的には記憶シ
ステムに関し、具体的には、処理ユニット内または処理
ユニット外にキャッシュ・ユニットを有するデータ記憶
システムに関する。さらに、本発明は、具体的には、改
良されたスヌープ方式によってメモリ一貫性を維持され
るキャッシュ・ユニットを有するデータ記憶システムに
関する。
【0002】
【従来の技術】現在の多くのコンピュータ・システムに
は、コンピュータ・システムの衝突する必要を満たそう
とする複数のレベルの記憶装置が含まれる。たとえば、
コンピュータ・システムは、超高速で動作するように設
計され、記憶装置は、そのコンピュータ・システム内で
使用される処理ユニットと同一の速度で動作する必要が
ある。困ったことに、高速な記憶要素のコストは、マイ
クロプロセッサ自体のコストに達しており、したがっ
て、入手可能な最高速の記憶装置を使用すると、システ
ム全体のコストが高くなる。妥協策の1つが、特定の応
用分野のために低速だがより安価な記憶装置を使用する
ことである。このような応用分野の1つが、プロセッサ
・ユニットが情報の使用を必要とする前にその情報を一
時的に保持するためのダイナミックRAMメモリの使用
である。もう1つの代替案が、高速だが少量で高価な、
処理ユニットと同一の速度で動作するキャッシュ・ユニ
ットの使用である。このキャッシュ・ユニットは、より
大量の短期間メモリと比較して少量なので、コンピュー
タ・システムの全体コストに関して、これを追加するこ
とは高価ではない。最後に、通常は、他のタイプの記憶
装置と比較して相対的に安価な、ハード・ディスク駆動
装置などの非常に大量の長期間記憶ユニットが供給され
る。
【0003】残念ながら、異なるタイプの記憶装置と異
なる種類の記憶位置を有すると、処理ユニットまたは、
周辺装置などのコンピュータ・システムに接続された他
の資源に必要もしくはこれらによって処理される最新の
正確なデータをメモリ・コントローラが維持するという
管理問題が生じる。したがって、処理システムは、使用
されるさまざまなタイプの記憶ユニットの間でメモリの
一貫性を維持しなければならない。
【0004】一貫性のあるメモリ・システムの主目的
は、そのシステムを使用するすべての装置にメモリの同
一のイメージを提供することである。一貫性があると、
共用される資源の同期と共同使用が可能になるが、そう
でないと、一部に古い値が含まれる、記憶位置の複数の
コピーがシステム内に存在し、その古い値が使用される
時にエラーが生じる可能性がある。システム内の潜在的
なバス・マスタのそれぞれが、そのキャッシュの状態を
維持するための規則に従わなければならない。
【0005】キャッシュ一貫性プロトコルの一種が、共
用状態を省略する標準MESI4状態プロトコルの一貫
性のあるサブセットである。データを共用できないの
で、プロセッサは、キャッシュ・ブロック・フィルのす
べてを、それが書込みミス(read-with-intent-to-modi
fy、修正目的の読取り)であるかのように信号を送り、
これによって、プロセッサ外部のすべてのキャッシュの
対応するデータのコピーが、プロセッサのキャッシュ・
ブロック・フィル動作の前にフラッシュされる。キャッ
シュ・ブロック・ロードの後に、プロセッサは、そのデ
ータの排他的所有者になり、バス同報通信トランザクシ
ョンなしにそれに書き込むことができる。
【0006】この一貫性を維持するために、プロセッサ
によってバス上で観察される大域読取りのすべてが、書
込みであるかのようにスヌープされ、プロセッサに、修
正されたキャッシュ・ブロックのメモリへの書戻しとキ
ャッシュ・ブロックの無効化を行わせるか、キャッシュ
・ブロックが無修正の場合には単にキャッシュ・ブロッ
クを無効化させる。
【0007】複数のバスが存在する時の問題の1つが、
読取りトランザクション中にスヌープ・サイクルを全く
実行できないことである。たとえば、システム・メモリ
・コントローラを有する二重バス・アーキテクチャで
は、システム・メモリ・コントローラが、一方のバスの
マスタの現読取りトランザクションの完了を待たなけれ
ばならない。その後、メモリ・コントローラは、第2の
バスに接続された別のマスタがシステム・メモリにアク
セスすることを許可して、メモリの整合性または一貫性
を保証する。
【0008】したがって、多重化バスと、データ・フェ
ーズまたは読取りトランザクション中にスヌープ動作を
提供することによって一貫性を制御する複数のバス・マ
スタまたは二重バス・メモリ・コントローラとを有する
処理システム用のバス・プロトコルが必要である。
【0009】
【発明が解決しようとする課題】本発明の目的は、デー
タ記憶システムを提供することである。
【0010】本発明のもう1つの目的は、処理ユニット
内または処理ユニット外にキャッシュ・ユニットを有す
るデータ記憶システムを提供することである。
【0011】本発明のもう1つの目的は、改良されたス
ヌープ方式によってメモリ一貫性を維持されるキャッシ
ュ・ユニットを有するデータ記憶システムを提供するこ
とである。
【0012】
【課題を解決するための手段】前述の目的は、下記に従
って達成される。本発明による、データ処理システム内
でメモリ一貫性を維持するための方法を開示する。この
データ処理システムには、二重バス・メモリ・コントロ
ーラが含まれ、この二重バス・メモリ・コントローラ
は、第1バス・マスタを介して第1バスに結合され、第
2バス・マスタに結合された第2バスに結合される。こ
の方法では、データ処理ユニット内のアドレス/データ
多重化バス上の属性について第1バスまたは第2バスの
いずれかをスヌープすることによってメモリ一貫性を維
持する。スヌープ動作が必要な時を判定するために、こ
のシステムは、二重バス・メモリ・コントローラを介し
て2つのバスのいずれかへのアクセスを要求することか
ら開始する。要求時にバスの制御が認可されたならば、
データは、マスタ・バス・コントローラを使用して転送
される。スヌープ活動が開始されるのは、バス上でデー
タを転送している間に無効データ信号を受け取る時であ
る。スヌープは、無効データ信号を受け取った後にのみ
挿入され、最後のスヌープ挿入は、最後の読取りデータ
を読み取る前にのみ発生可能である。
【0013】本発明の上記ならびに追加の目的、特徴お
よび長所は、以下の詳細な説明で明らかになる。
【0014】
【発明の実施の形態】図1は、本発明を実施することが
できる代表的なマイクロプロセッサ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項目のす
べてと同時に比較される。
【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によって処理される。
【0017】命令ユニット52には、順次取出し機構5
4、命令待ち行列56、ディスパッチ・ユニット58お
よびBPU16も含まれて、実行ユニットへの命令フロ
ーの中央制御をもたらす。命令ユニット52は、順次取
出し機構54およびBPU16からの情報に基づいて、
次に取り出される命令のアドレスを判定する。
【0018】命令ユニット52は、命令キャッシュ22
から命令待ち行列56へ命令を取り出す。BPU16
は、順次取出し機構54から分岐命令を抽出し、未解決
の条件分岐に対して静的分岐予測を使用して、命令ユニ
ットが、条件分岐を評価している間に、予測されたター
ゲット命令ストリームから命令を取り出せるようにす
る。命令待ち行列56は、複数の命令を保持するように
設計され、単一サイクル中に命令ユニット52から複数
の命令をロードすることができる。順次取出し機構54
は、命令待ち行列内の空間に収まる範囲でできる限り多
くの命令を継続的にロードする。ディスパッチ・ユニッ
ト58は、ソース・レジスタとデスティネーション・レ
ジスタの依存性検査を実行し、ディスパッチ直列化を決
定し、必要に応じて後続命令のディスパッチを禁止す
る。
【0019】BPU16は、順次取出し機構54から分
岐命令を受け取り、これらの分岐を早期に解決するため
に条件分岐に対するCRルックアヘッド動作を実行し
て、多くの場合に0サイクル分岐の効果を達成する。
【0020】LSU18は、ロード命令とストア命令の
すべてを実行し、汎用レジスタ(GPR)60、浮動小
数点レジスタ(FPR)62およびキャッシュ/メモリ
・サブシステムの間のデータ転送インターフェースを提
供する。LSU18は、文字列ロード/ストア命令およ
び多重ワード・ロード/ストア命令に関して、有効アド
レスを計算し、データ位置合わせを実行し、順序付けを
提供する。ロード命令とストア命令は、プログラムの順
で発行され、変換される。しかし、実際のメモリ・アク
セスは、非整順で発生する可能性がある。厳密な順序付
けを実施するために、同期化命令が設けられている。
【0021】データ依存性がない時のキャッシュ可能な
ロードは、1サイクルごとに1回の最大スループットと
2サイクルの総合待ち時間を有する投機的な方法で実行
される。キャッシュから取り除かれたデータは、完了ユ
ニット68がその値をGPRまたはFPRにコミットす
るまで、リネーム・レジスタ64および66に保持され
る。ストアは、投機的に実行することができず、ストア
動作をメモリに対して完了しなければならないことを完
了ユニット68が知らせるまで、ストア待ち行列に保持
される。実際のロード動作またはストア動作を実行する
のに必要な時間は、その動作にキャッシュ、システム・
メモリまたは入出力装置が含まれるかどうかに応じて変
動する。
【0022】命令MMU26およびデータMMU28
は、命令またはデータに関して物理記憶と仮想記憶の両
方をサポートする。命令MMU26およびデータMMU
28は、ブロック上の空間およびページ粒度に関するア
クセス特権も制御する。LSU18は、データのロード
およびストアの有効アドレスを計算し、キャッシュ・メ
モリとの間のデータ位置合わせを実行し、文字列ロード
/ストア命令および多重ワード・ロード/ストア命令の
順序付けを提供する。命令ユニット52は、命令取出し
の有効アドレスを計算する。
【0023】アドレスが生成された後に、有効アドレス
の上位ビットが、適当なMMUによって物理アドレス・
ビットに変換される。それと同時に、アドレスの下位ビ
ットがキャッシュに送られ、ここで、下位ビットが2ウ
ェイ・セット・アソシアティブ・タグ・アレイへの索引
を形成する。アドレス変換の後に、MMUは、物理アド
レスの上位ビットをキャッシュに渡し、キャッシュ・ル
ックアップが完了する。
【0024】命令キャッシュ22およびデータ・キャッ
シュ24のそれぞれは、長さ32ビットのライン・サイ
ズを有し、それぞれ順次取出し機構54またはLSU1
8への64ビット・インターフェースを提供する。周囲
の論理機構またはタグ・ユニット48および50は、事
前に要求された情報を選択し、編成し、要求元のユニッ
トに転送する。キャッシュへの書込み動作は、1バイト
単位で実行でき、キャッシュへの完全なリード・モディ
ファイ・ライト(read-modify-write)動作は、各サイ
クルに発生することができる。LSU18と順次取出し
機構54の両方が、取り出されるデータまたは命令のア
ドレスをデータ・キャッシュ24または命令キャッシュ
22に供給する。キャッシュ・ヒットの場合、キャッシ
ュは、要求元のユニットに2ワードを返す。
【0025】データ・キャッシュのタグ・ユニット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の間にある、挿入されたスヌープ・ウィンドウ
内の最初の可能なスヌープに関するタイミング図であ
る。
【0027】図3のタイミング図には、クロック信号
(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)上に無効データが発生する際に、転送開始線
がトライステート化される。
【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_線がトラ
イステート化される。この時間の全体を通じて、アドレ
ス確認線と転送エラー確認線は、非活動状態である。
【0030】図4は、挿入されたスヌープ・ウィンドウ
(クロック・サイクル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)に記載の方法。
【図面の簡単な説明】
【図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
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダグラス・クリストファー・ヘスター アメリカ合衆国95035 カリフォルニア州 ミルピタス ニューヴェス・コート 1274 (72)発明者 ジョン・ビクター・セル アメリカ合衆国94024 カリフォルニア州 ロス・アルトス モーラ・ドライブ 11111 (72)発明者 カン・エヌ・チャン アメリカ合衆国78759 テキサス州オース チン グレート・ヒルズ・トレール 909 ナンバー428

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】第1バス・マスタに結合された第1バスと
    第2バス・マスタに結合された第2バスとを有する二重
    バス・メモリ・コントローラを含むメモリ・システムを
    有するデータ処理システムにおいて、 前記データ処理ユニット内のアドレス/データ多重化バ
    ス上の属性に関して、前記第1バスまたは前記第2バス
    のいずれかをスヌープするステップを含む、メモリ一貫
    性を維持するための方法。
  2. 【請求項2】前記スヌープするステップの前に、前記二
    重バス・メモリ・コントローラによるアクセスのために
    前記第1バスまたは前記第2バスのアクセスを要求する
    ステップと、 バス・アクセス要求の後に、前記第1バスまたは前記第
    2バスの制御を認可するステップと、 前記第1バスまたは前記第2バスを介してデータ転送を
    開始するステップと、 無効データ信号を受け取るステップとをさらに含む、請
    求項1に記載の方法。
JP8018801A 1995-02-10 1996-02-05 キャッシュにおけるスヌーピング装置および方法 Pending JPH08263373A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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