JPH076092A - ライト・バック・キャッシュ・メモリおよびキャッシュ・メモリ内のキャッシュ・ラインを置換する方法 - Google Patents

ライト・バック・キャッシュ・メモリおよびキャッシュ・メモリ内のキャッシュ・ラインを置換する方法

Info

Publication number
JPH076092A
JPH076092A JP5302259A JP30225993A JPH076092A JP H076092 A JPH076092 A JP H076092A JP 5302259 A JP5302259 A JP 5302259A JP 30225993 A JP30225993 A JP 30225993A JP H076092 A JPH076092 A JP H076092A
Authority
JP
Japan
Prior art keywords
cache
memory
line
controller
bus
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
JP5302259A
Other languages
English (en)
Inventor
Bjorn Liencres
ビジョーン・リーンクレス
Douglas Lee
ダグラス・リー
Pradeep S Sindhu
プラディープ・エス・シンドウ
Tung Pham
タン・ファム
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.)
Xerox Corp
Sun Microsystems Inc
Original Assignee
Xerox Corp
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp, Sun Microsystems Inc filed Critical Xerox Corp
Publication of JPH076092A publication Critical patent/JPH076092A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 マルチプロセッサ・キャッシュ・メモリ構造
における保留ライト・バック・キャッシュ・コントロー
ラを備えたライト・バック・キャッシュ制御システム。 【構成】 マルチプロセッサ・システムにおけるプロセ
ッサ・サブシステムが、メモリ・バスと呼ばれる高速同
期パケット・スイッチング・バスを利用して、互いに結
合されている。プロセッサのキャッシュ制御システム
は、所有キャッシュ・ラインが置換されている場合、主
メモリに対する所有キャッシュ・ラインのライト・バッ
クを担うライト・バック・キャッシュ・コントローラに
古いキャッシュ・ライン・データをコピーする。次に、
置換される古いキャッシュ・ラインの所有権を保留ライ
ト・バック・コントローラに移行する。キャッシュ制御
システムは、メモリ・バスから新しいキャッシュ・ライ
ン情報を受信すると、即座に、そのキャッシュ・ライン
の置換を行い、処理の続行を可能にする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサ・コ
ンピュータ・システムのためのキャッシュ・メモリ構造
の分野に関するものである。とりわけ、本発明は、パケ
ット・スイッチ式バスを利用した、マルチプロセッサ・
コンピュータ・システムのためのキャッシュ制御システ
ムにおける保留ライト・バックキャッシュ・コントロー
ラに関するものである。
【0002】
【従来の技術】一般的なコンピュータ・システムの場
合、処理装置は、主メモリに比べてかなり高速度で動作
する。処理装置による命令の実行速度が、主メモリに可
能な命令の供給速度を上回ると、処理装置は、主メモリ
が次の命令を検索しているのを待つ間、遊休状態にとど
まらなければならない。主メモリからのデータまたは命
令を待つ間の、不必要な処理装置の遊休時間を回避する
ため、主メモリより高速で動作可能なキャッシュ・メモ
リを利用して、主メモリと処理装置の間におけるデータ
及び命令の緩衝処理が行われることが多い。キャッシュ
・メモリは、一般に、主メモリよりもはるかに小さい。
【0003】主メモリからのデータ及び命令は、キャッ
シュ・ラインと呼ばれる均一な単位でキャッシュ・メモ
リにマッピングされる。各キャッシュ・ラインは、主メ
モリのアライメントのとれた連続セグメントを表してい
る。キャッシュ・メモリは、通常、主メモリよりはるか
に小さいので、主メモリの限られた部分集合についてし
か記憶することができない。従って、キャッシュ・メモ
リは、データの主メモリ・アドレスの一部を記憶する必
要がある。アドレスのこの部分は、アドレス・タグと呼
ばれ、キャッシュ・ライン毎に1つのアドレス・タグが
存在する。各キャッシュ・ラインは、さらに、サブブロ
ックと呼ばれる、より小さい均一なインクリメントに細
分することができる。キャッシュ・メモリのキャッシュ
・ラインに対するアクセスは、アドレス・タグ及びキャ
ッシュ・ラインに関連した状況ビットの集合を記憶して
いるキャッシュ・ディレクトリを利用して実施される。
【0004】最近では、処理速度の上昇を目指して、複
数のプロセッサを備えたコンピュータ・システムが一般
的になっている。マルチプロセッサ・システムの場合、
プロセッサ・サブシステムは、それ自体の独立したキャ
ッシュ・メモリを備えることが可能である。各プロセッ
サは、その局所キャッシュ・メモリに記憶されたデータ
を変更することができるので、独立したキャッシュ・メ
モリを備えたマルチプロセッサ・システムが適正に動作
するためには、そのシステムは、キャッシュ・メモリに
記憶されているデータの対応を適正に保つ必要がある。
異なるキャッシュにおけるデータの対応は、「キャッシ
ュ整合性」と呼ばれる。「メモリからのロード」操作に
よって戻される値が、常に、同じメモリ・アドレスに対
する最新の「メモリへの記憶」操作の値と同じである場
合、キャッシュ・システムは、「整合している」とみな
される。
【0005】キャッシュの整合性を維持するため、いく
つかの状況ビットは、各キャッシュ・ラインにおける情
報の現在の状態を反映するキャッシュ・ディレクトリに
保持されるのが普通である。保持される一般的な状況ビ
ットには、「有効ビット」、「共用ビット」、及び、
「所有ビット」がある。「有効ビット」は、キャッシュ
・ラインに記憶されている情報が、現在有効であるか否
かを表示する。「共用」状況ビットは、キャッシュ・ラ
インの情報が、他のキャッシュ・メモリと共用されてい
るか否かを表示する。あるキャッシュ・ラインが「共
用」という場合には、最初に、他のキャッシュ・メモリ
のキャッシュ・ラインを無効にするか、あるいは、他の
キャッシュ・メモリのキャッシュ・ラインを更新しない
限り、その修正を行うことはできない。「所有」状況ビ
ットは、キャッシュ・ラインの情報が、主メモリにライ
ト・バックすることができないように、修正されている
ことを表示する。メモリのラインは、1度に1つのプロ
セッサ・サブシステムによってしか「所有」することが
できない。プロセッサは、そのキャッシュ・ラインの1
つの内容に修正を施す必要がある場合、まず、キャッシ
ュ・ラインの状況を変更して、「所有」状況にしなけれ
ばならない。所有キャッシュ・ラインは、新しい情報に
置き換える前に、主メモリにライト・バックしなければ
ならない。
【0006】キャッシュの整合性を維持するマルチプロ
セッサ・システムの一例が、図1〜5に示されている。
図1の場合、主メモリ装置は、1の値を含むアドレスA
を備えている。プロセッサ2及び3は、ロードA操作を
実施して、Aの値を求める。各プロセッサのロード操作
時に、Aの値がプロセッサの局所キャッシュ・メモリに
記憶される。プロセッサ2及び3は、これで、記憶場所
Aを「共用」することになり、両方のキャッシュが「有
効」データを備えることになる。図2の場合、プロセッ
サ1は、記憶場所Aに値2を書き込んでいる。これは、
プロセッサ2及びプロセッサ3のどちらも記憶場所Aを
「所有」していなかったので可能である。記憶場所Aの
内容を変更するため、プロセッサ1は、メモリ・バスを
通じて、記憶場所Aの内容が変わったことを知らせるメ
ッセージを他のメモリ装置に対して同報通信する。この
メッセージによって、プロセッサ2及び3のキャッシュ
・メモリは、記憶場所Aの状況を「無効」に変更する。
主メモリ装置は、各メモリ・ライン毎に状況ビットの集
合を保持しているわけではない。代わりに、主メモリ
は、プロセッサ・サブシステムによって「所有」されて
いるメモリ・ラインに対する要求がある毎にアサートさ
れる、メモリ・バスの制御ラインをモニターする。「所
有」制御ラインがアサートされると、主メモリは、その
ラインが、プロセッサ・サブシステムによって所有され
ていることを学習し、従って、要求には応答しない。キ
ャッシュ・メモリ1は、従って、主メモリを更新せずに
記憶場所Aの内容を修正したので、記憶場所Aを「所
有」していることになる。図3の場合、プロセッサ1
は、記憶場所Aの内容を値3に変更している。プロセッ
サ1は、他のプロセッサと記憶場所Aを共用していない
ので、メモリ・バスでメッセージを送る必要はない。し
かし、図4の場合、プロセッサ3が、ロード操作のた
め、記憶場所Aの値を要求している。プロセッサ3は、
従って、バスを介して、記憶場所Aの値を要求するメッ
セージを送らなければならない。プロセッサ1は、記憶
場所Aを「所有」しているので、記憶場所の内容を含む
回答によって、要求に応答しなければならない。今や、
プロセッサ1及び3のキャッシュ・メモリに、記憶場所
Aが表示されることになる。記憶場所Aは、やはり、プ
ロセッサ1によって所有されているが、現時点では、プ
ロセッサ3と記憶場所を「共用」しなければならない。
従って、プロセッサ1が記憶場所Aに加える変更は、プ
ロセッサ3に送る必要がある。プロセッサ1は、結局、
主メモリに記憶場所Aの内容をライト・バックしなけれ
ばならない。
【0007】キャッシュ・メモリ・システムを実施する
コンピュータ・システムにおいて、プロセッサがメモリ
・アドレスからデータを要求する場合には、まず、キャ
ッシュ・メモリを探索することになる。キャッシュ・コ
ントローラが、要求されたメモリ・アドレスを求めて、
キャッシュ・ディレクトリのアドレス・タグを調べる。
キャッシュ・ディレクトリのアドレス・タグが必要なメ
モリ・アドレスと一致し、キャッシュ・ラインが有効で
あれば、キャッシュの「ヒット」が生じ、データは、キ
ャッシュ・メモリからプロセッサに転送される。プロセ
ッサが、引き続き、キャッシュ・ラインに記憶されてい
るデータを修正する場合には、キャッシュ・ラインは、
「所有」キャッシュ・ラインになる。上述のように、修
正された、すなわち、「所有」されたキャッシュ・ライ
ンは、最終的には、主メモリにライト・バックしなけれ
ばならない。キャッシュ・コントローラが、キャッシュ
・ラインの修正直後に必ず主メモリを更新する場合に
は、そのシステムは、「ライト・スルー」キャッシュと
呼ばれる。そのキャッシュ・システムは、必ず、キャッ
シュ・メモリに書き終えると、主メモリに書き込むの
で、「ライト・スルー」キャッシュと呼ばれる。
【0008】一方、プロセッサが、メモリ・アドレスか
らデータの読み取り要求を行い、キャッシュ・ディレク
トリ内のアドレス・タグに要求されたメモリアドレスと
一致するものがないか、あるいは、アドレスは一致する
が、キャッシュ・ラインが無効の場合には、キャッシュ
「ミス」が生じる。従って、キャッシュ・コントローラ
は、主メモリ、または、データを所有している別のプロ
セッサのキャッシュ・メモリからデータを検索しなけれ
ばならない。メモリ・ラインの検索時、処理装置は、検
索の完了まで、遊休状態のままでいなければならないの
が普通である。
【0009】キャッシュ・コントローラが、局所プロセ
ッサのために、主メモリ、または、別のプロセッサのキ
ャッシュ・メモリからデータ・ラインを検索する場合、
そのラインは、局所キャッシュ・メモリに記憶される。
空のキャッシュ・ラインが利用できない場合、キャッシ
ュは、現在使用中のキャッシュ・ラインの1つを置換し
なければならない。置換するように選択されたキャッシ
ュ・ラインは、転置ラインまたは犠牲ラインと呼ばれ
る。キャッシュ・システムが、「ライト・スルー」の場
合、犠牲ラインは、即座に置換される。主メモリが既に
犠牲ラインとしてその内容を記憶しているので、「ライ
ト・スルー」キャッシュ・システムの犠牲ラインは、即
座に置換することができる。しかし、プロセッサがキャ
ッシュ・ラインの内容を修正した場合(「所有」キャッ
シュ・ライン)、キャッシュ・ラインの置換が可能にな
る前に、キャッシュ・コントローラは、まず、キャッシ
ュ・ラインの内容を主メモリにライト・バックしなけれ
ばならない。キャッシュ・ラインの置換が必要な場合
に、所有キャッシュ・ラインの内容をライト・バックす
るだけのキャッシュ・システムは、「ライト・バック」
キャッシュと呼ばれる。プロセッサが同じ所有キャッシ
ュ・ラインに連続して書き込みを行っても、主メモリに
は複数書き込みが行われないので、「ライト・バック」
キャッシュ・システムによる主メモリの更新頻度は、
「ライト・スルー」システムより少ない。「ライト・バ
ック」キャッシュ・システムは、主メモリの更新頻度が
少ないので、「ライト・バック」キャッシュ・システム
よりも効率が高い。
【0010】図5には、各プロセッサ・サブシステム毎
に、独立したライト・バック・キャッシュ・メモリを備
える先行技術によるマルチ・プロセッサ・システムが示
されている。図5のマルチ・プロセッサ・システムは、
各キャッシュ・コントローラ29に配置された1組のキ
ャッシュ・ディレクトリ28を利用して、キャッシュの
整合性を維持する。キャッシュ・ディレクトリ28に
は、各キャッシュ・ラインに関するタグ・アドレス、及
び、キャッシュ・ラインが有効(有効データを含んでい
る)、所有(修正されているが、まだ、主メモリにはラ
イト・バックされていない)、共用(別のプロセッサの
キャッシュ・メモリに表示されている)の全て、また
は、いずれかであることを指定する状況ビットが含まれ
ている。
【0011】図5のマルチ・プロセッサ・システムが、
局所キャッシュ・メモリに現在記憶されていない情報の
読み取りを必要とする場合、現在利用されているキャッ
シュ・ラインを置換しなければならない場合が多い。置
換すべきキャッシュ・ラインは「所有」されている場
合、キャッシュ・ラインの内容を主メモリ23にライト
・バックしなければならない、典型的なライト・バック
・キャッシュ・メモリ・システムの場合、キャッシュ・
コントローラ29は、まず、「所有」キャッシュ・ライ
ンを主メモリ23にライト・バックし、ライト・バック
が完了すると、主メモリ23からの新しいデータ・ライ
ンを要求する。所有キャッシュ・ラインのライト・バッ
ク後にしか新しいキャッシュ・ラインを要求しないの
で、設計が単純になるが、この方法の場合、所有キャッ
シュ・ラインをライト・バックし、新しいキャッシュ・
ラインを得る間の、待ち期間が長くなる。この待ち期間
において、プロセッサ21は、必要なデータを待つ間、
遊休状態のままでいるのが普通である。従って、キャッ
シュ・ライン置換に必要なこの長い待ち期間によって、
マルチプロセッサ・コンピュータ・システムの効率が劣
化する。これは、キャッシュ・ラインが長くなりがちで
あり、新しい所望のキャッシュ・ライン・データを要求
する前に、いくつかの所有サブブロックをメモリに書き
込むことが必要になる可能性がある、大形のキャッシュ
・メモリ37には特に当てはまる。
【0012】
【発明が解決しようとする課題】本発明の目的は、キャ
ッシュ・メモリ構造を支援する多重処理装置において、
保留ライト・バック・キャッシュ・コントローラを備え
る二重ディレクトリ・キャッシュ制御システムを実現す
る装置及び方法を提供することにある。
【0013】
【課題を解決するための手段】本発明によれば、マルチ
プロセッサ・システムにおける処理装置は、メモリ・バ
スと呼ばれる、高速同期パケット・スイッチング・バス
を利用して、互いに結合されている。各処理装置は、関
連するライト・バック・キャッシュ制御システムを備え
ている。各ライト・バック・キャッシュ制御システム
は、2つの独立したキャッシュ・コントローラ、すなわ
ち、バス・キャッシュ・コントローラ及びプロセッサ・
キャッシュ・コントローラに分割される。バス・キャッ
シュ・コントローラ・及びプロセッサ・キャッシュ・コ
ントローラは、キャッシュ・バスと呼ばれる、第2の高
速同期パケット・スイッチング・バスを介して、互いに
結合されている。バス・キャッシュ・コントローラ及び
プロセッサ・キャッシュ・コントローラは、それぞれ、
タグ・アドレス及び状況ビットを納めた独立したディレ
クトリを維持している。
【0014】プロセッサ・キャッシュ・コントローラ
は、実際の処理装置に緊密に結合されている。プロセッ
サ・キャッシュ・コントローラは、処理装置によって行
われるメモリ要求のサービスを実施する。プロセッサ・
キャッシュ・コントローラは、キャッシュ・メモリに要
求された記憶場所を備えていない場合、キャッシュ・バ
スを介してバス・キャッシュ・コントローラに要求を送
る。キャッシュ・ラインを置換しなければならない場
合、プロセッサ・キャッシュ・コントローラは、即座
に、置換されることになるキャッシュ・ラインからの所
有サブブロックをバス・キャッシュ・コントローラに送
る操作にとりかかる。
【0015】バス・キャッシュ・コントローラは、メモ
リ・バスに直接接続されており、処理装置に関するメモ
リ・バス・トランザクションの全てを取り扱う。バス・
キャッシュ・コントローラには、主メモリに対する所有
キャッシュ・ラインのライト・バックの取扱いを任され
た保留ライト・バック・コントローラが含まれている。
バス・キャッシュ・コントローラは、キャッシュ・ミス
によって生じたプロセッサ・キャッシュ・コントローラ
からのメモリ要求を受信すると、メモリ・バスを通じ
て、すぐに対応するメモリ要求パケットを同報通信す
る。所有キャッシュ・ラインを置換すべき場合には、プ
ロセッサ・キャッシュ・コントローラは、所有キャッシ
ュ・ラインからのサブブロックをバス・キャッシュ・コ
ントローラに送り、バス・キャッシュ・コントローラ
は、所有サブブロックを保留ライト・バック・コントロ
ーラに緩衝処理する。バス・キャッシュ・コントローラ
は、メモリ・バスから新しいキャッシュ・ライン情報を
受信すると、即座に、新しいキャッシュ・ライン情報を
プロセッサ・キャッシュ・コントローラに送り、プロセ
ッサ・キャッシュ・コントローラは、キャッシュ・ライ
ンを置換して、処理の続行を可能にする。所有キャッシ
ュ・ラインの緩衝処理によって、保留ライト・バック・
コントローラは、所有キャッシュ・ラインを主メモリに
ライト・バックする前に、新しいキャッシュ・ラインを
要求し、置換することが可能になる。この結果、キャッ
シュ・ミスによる待ち期間を平均して大幅に短縮するこ
とが可能になる。
【0016】バス・キャッシュ・コントローラの保留ラ
イト・バック・キャッシュ・コントローラは、バス・キ
ャッシュ・コントローラのためのインテリジェント・ラ
イト・バック・バッファの働きをする。バス・キャッシ
ュ・コントローラが、新しいキャッシュ・ライン・デー
タの読み取り要求を送り出すと、所有キャッシュ・ライ
ンからの古いキャッシュ・ライン・データは、主メモリ
にライト・バックするため、保留ライト・バック・コン
トローラに送られる。保留ライト・バック・コントロー
ラは、まだライト・バックされていない所有キャッシュ
・ラインを制御している間に、そのキャッシュ・ライン
に向けられた読み取り要求に応答しなければならない。
メモリ・バスのもう1つの装置が、保留ライト・バック
・コントローラによって所有されたキャッシュ・ライン
に対する書き込みを実施する場合、保留ライト・バック
・コントローラは、古くなったデータを含んでいるの
で、ライト・バックを実施してはならない。
【0017】
【実施例】保留ライト・バック・キャッシュ・コントロ
ーラを備えた二重ディレクトリ・キャッシュ制御システ
ムを実施するための装置及び方法について、開示され
る。以下の解説における特定の数、時間、信号等は、説
明を目的として、本発明の完全な理解が得られるように
提示されたものである。ただし、当該技術の熟練者には
明らかなように、本発明は、これらの特定の細部にこだ
わらなくても、実施することが可能である。他の例の場
合、本発明が不必要に曖昧にならないように、周知の回
路及び装置については、ブロック図の形で示されてい
る。
【0018】次に、図6を参照すると、本発明の教示を
組み込んだ、マルチプロセッサによる高性能コンピュー
タ・システムの概要がブロック図で示されている。図6
には、メモリ・バス25に結合された主メモリ装置23
が示されている。図6には、主メモリ装置が1つだけし
か示されていないが、主メモリのアドレス空間は、いく
つかの独立したメモリ装置に分割することができる。従
って、2つ以上のメモリ装置をメモリ・バス25に接続
することが可能である。メモリ・バス25に結合され
た、1対のプロセッサ・サブシステム20も示されてい
る。プロセッサ・サブシステム20は、メモリ・バス2
5を介して、主メモリ23からデータを読み取ったり、
主メモリにデータを書き込んだりする。3つ以上のプロ
セッサ・サブシステム20をメモリ・バス25に結合す
ることによって、処理パワーを追加することも可能であ
る。
【0019】図6のメモリ・バス25は、メモリ・バス
における複数の装置間でデータ転送を行うために用いら
れる、高速同期パケット・スイッチング・バスである。
参考までに、1990年11月30日に提出された、
「Consistent Packet Switch
ed Memory Bus For SharedM
emory Multiprocessors」と題す
る米国特許出願第07/620,508号には、パケッ
ト・スイッチ式メモリ・バスの実施に関する詳細が示さ
れている。メモリ・バス25のほとんどのトランザクシ
ョンでは、第1の装置によって要求パケットが送られ、
任意の時間期間だけ遅れて、第2の装置によって回答パ
ケットが送られることになる。例えば、メモリ・バス2
5のプロセッサ・サブシステム20は、メモリのサブブ
ロックを要求する読み取り要求パケットを送り出すとす
る。次に、主メモリ23(または、そのサブブロックを
「所有」している別のプロセッサ・サブシステム20)
が、要求プロセッサ・サブシステムに答えて、要求され
たメモリのサブブロックを含む読み取り回答パケットを
送り返す。少数のメモリ・バス25におけるトランザク
ションの場合には、書き込み要求のように要求パケット
だけで対応する回答パケットはない。
【0020】図6のプロセッサ・サブシステム20は、
バス・キャッシュ・コントローラ31、キャッシュ・バ
ス33、及び、プロセッサ・モジュール32から構成さ
れている。プロセッサ・モジュール32は実際の処理を
実施する。バス・キャッシュ・コントローラ31は、関
連するプロセッサ・モジュール32に必要なメモリ・バ
ス・トランザクションの全てを実施する。バス・キャッ
シュ・コントローラ31及びプロセッサ・モジュール3
2は、キャッシュ・バス33と呼ばれる高速同期パケッ
ト・スイッチング・バスを介して互いに通じている。キ
ャッシュ・バス33は、各トランザクションにおいて、
要求パケットに任意の時間期間だけ遅れて回答パケット
が生じるという点でメモリ・バス25と似ている。
【0021】キャッシュ・バス33は、プロセッサ・モ
ジュール32が、独立したメモリ・バスに結合された複
数バス・キャッシュ・コントローラを支援するために利
用することができる。図7を参照すると、2つのメモリ
・バスを備えた本発明の代替実施例が示されている。図
7の実施例の場合、プロセッサ・モジュール32は、2
つの独立したバス・キャッシュ・コントローラ30及び
31を備えたキャッシュ・バス33に結合されている。
各バスキャッシュ・コントローラ30及び31は、独立
したメモリ・バスにおけるバス・トランザクションを制
御する。独立したメモリ・バスは、それぞれ、それ自体
の関連した主メモリ装置22及び24を備えている。
【0022】図6をもう1度参照すると、プロセッサ・
モジュール32には、プロセッサ21、プロセッサ・キ
ャッシュ・コントローラ35、及び、キャッシュ・メモ
リ37が含まれている。プロセッサ・キャッシュ・コン
トローラ35は、プロセッサ・キャッシュ・メモリ37
に記憶されているキャッシュ・ラインに関するアドレス
・タグ及び状況ビットを含むプロセッサ・キャッシュ・
ディレクトリ34を維持している。プロセッサ・キャッ
シュ・コントローラ35は、プロセッサ・キャッシュ・
メモリ37とプロセッサ21の間におけるインターフェ
イスとしての役目を担っている。
【0023】バス・キャッシュ・コントローラ31は、
プロセッサ・サブシステム20に関するいくつかのキャ
ッシュ制御操作を実施する。バス・キャッシュ・コント
ローラ31の主たる目的は、プロセッサ・サブシステム
20に必要な全てのメモリ・バス25におけるトランザ
クションを実施することである。バス・キャッシュ・コ
ントローラ31は、キャッシュ・メモリ37におけるア
ドレス・タグ及び状況ビットを含むキャッシュ・ディレ
クトリ46を維持する。バス・キャッシュ・コントロー
ラ31には、後述のように、新しい情報に置換された所
有キャッシュ・ラインのライト・バックを任された、保
留ライト・バック・コントローラ40が含まれている。
バス・キャッシュ・コントローラ31の機能性について
は、メモリ・バス25において管理するトランザクショ
ンに関連して説明するのが最も分かりやすい。バス・キ
ャッシュ・コントローラ31は、メモリ・バス25にお
いて、3タイプのバス・トランザクション、すなわち、
読み取り、書き込み、及び、ライト・バックを実施す
る。各トランザクション・タイプは、別個に取り扱われ
ることになる。
【0024】読み取りトランザクション プロセッサ・キャッシュ・メモリ37のデータによっ
て、プロセッサ21によるメモリ要求を満たすことがで
きない場合、プロセッサ・キャッシュ・コントローラ3
5は、キャッシュ・バス33を介してバス・キャッシュ
・コントローラ31に読み取り要求パケットを送る。バ
ス・キャッシュ・コントローラ31は、メモリ・バス2
5を介して対応する読み取り要求パケットの同報通信に
とりかかる。バス・キャッシュ・コントローラ31によ
って開始される読み取りトランザクションは、2つのパ
ケット、すなわち、バス・キャッシュ・コントローラ3
1によってメモリ・バス25を介して送られる読み取り
要求パケット、及び、メモリ・バスを介してもう1つの
装置によって送られる読み取り回答パケットに関するも
のである。読み取り要求パケットには、プロセッサ・キ
ャッシュ・コントローラ35によって要求されるメモリ
のアドレスが含まれており、メモリ・バス25を通じて
全てのエンティティに同報通信される。要求されたメモ
リ・アドレスを含んでいるメモリ・バス25における装
置は、要求されたメモリ・アドレスを含むサブブロック
を納めた読み取り回答パケットによって、読み取り要求
パケットに応答する。読み取り回答パケットは、所望の
メモリ・アドレスが別のプロセッサ・サブシステム20
によって「所有」されている場合を除けば、主メモリ2
3によって送り出されるのが普通である。その場合、サ
ブブロックを所有しているプロセッサ・サブシステム
は、要求されたデータを備える読み取り回答パケットを
生成しなければならない。
【0025】書き込みトランザクション プロセッサ・サブシステムに関するキャッシュ・メモリ
・システムは、特定のキャッシュ・ラインを「所有」し
ている場合、そのキャッシュ・ラインの内容に修正を加
えることが可能である。プロセッサ21が、他のキャッ
シュ・メモリと共用のキャッシュ・ラインに修正を加え
る場合には、バス・キャッシュ・コントローラ31は、
書き込みトランザクションを実施して、キャッシュ・ラ
インを共用するキャッシュ・メモリの情報を更新する。
キャッシュ・ラインがサブブロックに細分される場合、
キャッシュ・ラインのデータに対する修正の全てが、書
き込みトランザクションにつながるわけではない。サブ
ブロックを備えたシステムの場合、必要なのは、修正さ
れ、他のキャッシュにも納められているサブブロックに
同報通信することだけである。この情報を保持するため
には、各サブブロック毎に「共用」フラグが必要になる
が、ここでは説明しない。1990年11月30日に提
出された、「Consistency Protoco
ls ForShared Memory Multi
processors」と題する米国特許出願第07/
620,496号の開示が、参考になる。
【0026】ライト・バック・トランザクション もはやプロセッサ21にとって必要のないキャッシュ・
ラインからの所有サブブロックによって主メモリ23の
更新を行う場合、バス・キャッシュ・コントローラ31
によって、ライト・バック・トランザクションが送り出
される。メモリ・バス25によるライト・バック・トラ
ンザクションは、主メモリ23に向けて行われるもので
あり、メモリ・バスにおける他のプロセッサ・サブシス
テムからは無視される。
【0027】ライト・バック・トランザクションの説明
を完全なものにするには、キャッシュ・ミスがあり、空
のキャッシュ・ラインが利用できない場合に生じる事象
をステップ・バイ・ステップで説明するのが最良であ
る。こうした場合、キャッシュ・ラインの古い情報を取
り除くライト・バック・トランザクション、及び、新し
いキャッシュ・ライン関する新しい情報を得る読み取り
トランザクションの両方が行われる。
【0028】図6を参照すると、プロセッサ21が局所
キャッシュ・メモリ37に記憶されていないデータを必
要とする場合にキャッシュ・ミスが生じる。プロセッサ
・キャッシュ・コントローラ35は、キャッシュ・バス
33を介して、必要なメモリ・アドレスを含む読み取り
要求パケットをバス・キャッシュ・コントローラ31に
対して送り出す。読み取りトランザクションのセクショ
ンで解説のように、バス・キャッシュ・コントローラ3
1は、読み取り要求パケットに応答し、メモリ・バス2
5を介して対応する読み取り要求パケットの同報通信を
行う。最終的には、メモリ・バス25において適合する
メモリ装置またはプロセッサ・サブシステムが、要求さ
れたデータを含む読み取り回答パケットによって、この
読み取り要求パケットに応答する。新しい情報に関する
読み取り要求パケットを送りだした後、バス・キャッシ
ュ・コントローラ31は、置換されるキャッシュ・ライ
ンからの古い所有サブブロックをライト・バックする責
任を保留ライト・バック・コントローラ40に負わせ
る。保留ライト・バック・コントローラ40は、主メモ
リ23にライト・バックされるまで、古いキャッシュ・
ラインのデータに関する全ての読み取り要求を取り扱
う、インテリジェント・バッファの働きをする。
【0029】プロセッサ・キャッシュ・コントローラ3
5は、バス・キャッシュ・コントローラ31に読み取り
要求パケットを送り出すと、バス・キャッシュ・コント
ローラ31が読み取り要求パケットを送りだしたか否か
に関係なく、新しい情報に置換されるキャッシュ・ライ
ン内の所有サブブロックをバス・キャッシュ・コントロ
ーラ31に送り始める。これらの所有サブブロックは、
バス・キャッシュ・コントローラ31によって保留ライ
ト・バック・コントローラ40に送られ、データRAM
に記憶される。プロセッサ・キャッシュ・コントローラ
35は、全ての所有サブブロックを保留ライト・バック
コントローラ40に送ってしまうと、そのキャッシュ・
ラインに無効のマーキングを施すので、新しいキャッシ
ュ・ライン・データの受け入れが容易になる。
【0030】保留ライト・バック・コントローラ40
が、プロセッサ・キャッシュ・コントローラ35から全
ての所有サブブロックを受信し、バス・キャッシュ・コ
ントローラ31が所望のデータに関する読み取り要求を
送り出してしまうと、保留ライト・バック・コントロー
ラ40は、主メモリ23に対して、所有サブブロックを
含むライト・バック・パケットを送り始める。主メモリ
23に対するライト・バックは、バス・キャッシュ・コ
ントローラが読み取り回答パケットを受信したか否かに
関係なく行われる。
【0031】これらのトランザクションの進行中、他の
プロセッサ・サブシステムは、主メモリ23にライト・
バックされるサブブロックに対する書き込みトランザク
ションを送り出すことが可能である。同様に、他のプロ
セッサは、これらの同じサブブロックに対して読み取り
要求を送り出すことが可能である。キャッシュの整合性
を維持するため、保留ライト・バック・コントローラ4
0は、下記の原則に固執しなければならない。 1.保留ライト・バック・コントローラ40によって、
サブブロックが主メモリにライト・バックされる前に、
別のプロセッサ・サブシステムが、所有サブブロックに
対応するアドレスに対して書き込みトランザクションを
送り出す場合、保留ライト・バック・コントローラ40
に「古くなった」データが含まれているので、ライト・
バックを行ってはならない。 2.主メモリにサブブロックがライト・バックされる前
に、あるいは、別のプロセッサが、同じサブブロックに
対応するアドレスに書き込みトランザクションを送り出
す前に、別のプロセッサ・サブシステムが、保留ライト
・バック・コントローラ40が所有するサブブロックに
対応するアドレスに対して読み取り要求パケットを送り
出す場合、保留ライト・バック・コントローラ40は、
読み取り回答パケットで応答しなければならない。
【0032】図6から明らかなように、本発明のライト
・バック・キャッシュ・システムは、3つの独立したキ
ャッシュ・ディレクトリ、すなわち、プロセッサ・キャ
ッシュ・ディレクトリ34、バス・キャッシュ・コント
ローラ・ディレクトリ46、及び、保留ライト・バック
・コントローラの小ディレクトリの維持を行う。
【0033】プロセッサ・キャッシュ・ディレクトリ3
4及びバス・キャッシュ・コントローラ・ディレクトリ
46は、キャッシュ・メモリ37における情報に関する
アドレス・タグ及び状況ビットを記憶している。プロセ
ッサ・キャッシュ・ディレクトリ34及びバス・キャッ
シュ・コントローラ・ディレクトリ46におけるアドレ
ス・タグ及び状況ビットは、通常一致する。しかし、プ
ロセッサ・キャッシュ・ディレクトリ34及びバス・キ
ャッシュ・コントローラ・ディレクトリ46における所
定のキャッシュ・ラインに関するアドレス・タグ及び状
況ビットは、常には、相関していなくてもよい。例え
ば、プロセッサ・キャッシュ・コントローラ35は、キ
ャッシュ・ラインからバス・キャッシュ・コントローラ
31にサブブロックをライト・バックしたとすると、プ
ロセッサ・キャッシュ・コントローラ35は、もはや、
サブブロックを「所有」していないが、バス・キャッシ
ュ・コントローラ31は、まだ、サブブロックを所有し
ている。バス・キャッシュ・コントローラ31が、新し
い情報に関する要求を送り出して、古いサブブロックの
制御を保留ライト・バック・コントローラ40に移行す
る場合、バス・キャッシュ・コントローラ・ディレクト
リ46は、再び、プロセッサ・キャッシュ・ディレクト
リ34と一致することになる。
【0034】保留ライト・バック・コントローラ40
は、主メモリ23にライト・バックされるまで、緩衝処
理を施されている所有サブブロックの小ディレクトリを
維持する。保留ライト・バック・コントローラ40に記
憶されているサブブロックは、それぞれ、3つの状態、
すなわち、有効、所有、及び、無効のうちの1つである
とみなすことができる。保留ライト・バック・コントロ
ーラ40は、そのディレクトリを用いて、上述の2つの
原則を実施する。別のプロセッサ・サブシステムが、保
留ライト・バック・コントローラにおける所有サブブロ
ックの1つに対する書き込みを実施する場合、保留ライ
ト・バック・コントローラのデータは、この時点では古
くなっているので、サブブロックの状況を非所有に変更
する。保留ライト・バック・コントローラ40は、所有
サブブロックに関して、別のプロセッサ・サブシステム
から読み取り要求パケットを受信すると、保留ライト・
バック・コントローラ40は、要求された情報を含む読
み取り回答パケットによって応答する。
【0035】図8には、キャッシュ・ラインのライト・
バックを実施するために用いられるバス・キャッシュ・
コントローラ31の内部が、ブロック図の形で示されて
いる。バス・キャッシュ・コントローラ31の他の部分
については、混乱を避けるため省略した。ライト・バッ
クを実施するために用いられるバス・キャッシュ・コン
トローラ31の該当部分には、アービタ・コントローラ
41、バス・データ・コントローラ43、保留ライト・
バック・コントローラ40、及び、アドレス・タグ及び
状況ビットを納めた関連キャッシュ・ディレクトリ46
を備えるタグ・コントローラ45がある。
【0036】アービタ・コントローラ41は、保留ライ
ト・バック・コントローラ40に必要なメモリ・バス調
停ステップを実施する。アービタ・コントローラ41
は、所有キャッシュ・ラインのライト・バックを実施す
るか、または、別のプロセッサ・サブシステムから受信
する読み取り要求パケットに応答して、読み取り回答パ
ケットを送るために、メモリ・バス25を必要とする場
合に、保留ライト・バック・コントローラ40によって
利用される。パケット・スイッチ式バスにおけるバス調
停の実施方法については、参考として、1990年11
月30日に提出された、「Arbitration O
f Packet Switched Busses,
Including Busses For Shar
ed Memory Multiprocssors」
と題する米国特許出願第07/621,123号に記載
がある。
【0037】バス・データ・コントローラ43は、アー
ビタ・コントローラ41がメモリ・バス25の所有権を
得ると、メモリ・バスで「要求」及び「回答」パケット
を送るために必要な「パッケージング」操作を実施す
る。保留ライト・バック・コントローラ40は、バス・
データ・コントローラ43を利用して、ライト・バック
及び読み取り回答パケットを送り出す。パケット・スイ
ッチ式バスでパケットを送るための方法及び装置は、当
該技術において周知のところであり、従って、バス・デ
ータ・コントローラについては、これ以上の説明を行わ
ない。
【0038】タグ・コントローラ45は、アドレス・タ
グのバス・キャッシュ・コントローラ・ディレクトリ4
6及びキャッシュ・メモリ37の状態を反映した状況ビ
ットを制御する。タグ・コントローラ45は、保留ライ
ト・バック・コントローラ40にowned_flag
[L]信号を加える。[L]は、後述することになるサ
ブブロック索引を表している。owned_flag
[L]は、バス・キャッシュ・コントローラから保留ラ
イト・バック・コントローラ40へサブブロックの所有
権を移行するために用いられる。
【0039】保留ライト・バック・コントローラ40
は、主メモリにライト・バックする必要のある所有キャ
ッシュ・ラインを記憶し、ライト・バック操作を制御す
る。保留ライト・バック・コントローラ40の内部につ
いては次に詳細に説明する。
【0040】保留ライト・バック・コントローラ論理回
保留ライト・バック・コントローラの制御論理回路につ
いては、3つの階層レベルに分割することによって最も
明確に説明される。最低レベルが、サブブロック論理回
路である。サブブロック論理回路は、保留ライト・バッ
ク・コントローラに記憶された各サブブロックの制御に
必要な論理回路である。次のレベルは、キャッシュ・ラ
イン論理回路である。キャッシュ・ライン論理回路は、
保留ライト・バック・コントローラにおける各キャッシ
ュ・ラインの制御に必要な論理回路である。最高レベル
は、大域論理回路である。大域論理回路は、その動作に
おいて、2つのより低いレベルの論理回路からの情報を
利用する。
【0041】図10、11、12、13、14、及び、
15を利用して、保留ライト・バック・コントローラ論
理回路の詳細な説明が行われる。図10、11、12、
13、及び、14におけるページの左側の信号は、全
て、入力信号であり、ページの右側の信号は、全て、出
力信号である。「(EXTERNAL)」ラベルを伴う
信号名は、高い階層レベルに接続される信号を表してい
る。「(EXTERNAL)」ラベルのない信号名は、
低い階層レベルに接続される信号を表している。
【0042】図10、11、12、13、及び、14に
は、図9に示したキャッシュ・メモリを備えるシステム
における保留ライト・バック・コントローラ論理回路が
解説されている。図9のキャッシュ・メモリには、索引
Kを利用して1〜Mの索引がつけられたM個のキャッシ
ュ・ラインが含まれている。キャッシュ・ラインは、そ
れぞれ、索引Lを利用して1〜Nの索引がつけられたN
個のサブブロックに分割される。M及びNは、一般に、
2の累乗になるように選択される。図10、11、1
2、13、及び、14において、特定のキャッシュ・ラ
インに関連した全ての信号に、付属の索引値[K]が付
与され、特定のサブブロックに関する信号に、付属の索
引値[L]が付与されている。さらに、Iは、log2
Mすなわち1とMの間の任意の数を表すのに必要なビッ
ト数であると定義される。Jは、主メモリ内におけるキ
ャッシュ・ラインのアドレスを一意的に識別するアドレ
ス・タグに必要なビット数であると定義される。この数
は、J=A−log2 N−log2 Bと定義されるが、
ここで、Aは、全メモリ・アドレス空間を定義する全ビ
ット数であり、Bは、各サブブロック[K]に記憶され
ているアドレス可能なバイト数である。
【0043】保留ライト・バック・コントローラの論理
回路については、「逆の」見方で詳細に説明する。すな
わち、保留ライト・バック・コントローラにおける各サ
ブブロック[L]の第1のサブブロック論理回路につい
ては、図10に関連して説明する。次に、各キャッシュ
・ライン[K]のキャッシュ・ライン論理回路について
は、図11及び図12に関連して説明する。最後に、大
域保留ライト・バック・コントローラ論理回路について
は、図13及び14に関連して説明する。保留ライト・
バック・コントローラ論理回路の個々の階層レベル間に
おける相互接続については、図15に示されている。
【0044】サブブロック論理回路 図10を参照すると、個々のサブブロックに関する制御
論理回路が示されている。保留ライト・バック・コント
ローラ内の各サブブロックは、それぞれ、2つの信号ビ
ットsubblock_valid[L]及びsubb
lock_owned[L]を発生する、2つのフリッ
プ・フロップ61及び63を備えている。これらのビッ
トは、保留ライト・バック・コントローラにおけるサブ
ブロックの状況を反映している。追加論理回路は、su
bblock_owned_match[L]信号を発
生する。
【0045】subblock_valid[L]信号
ビット61がアサートされる場合、それは、保留ライト
・バック・コントローラ・データRAM内における対応
するサブブロックが、キャッシュ・バスを介してプロセ
ッサ・キャッシュ・コントローラから受信した、そのサ
ブブロックに関する有効データを含んでいるか、あるい
は、このデータがプロセッサ・キャッシュ・コントロー
ラによって送られるとは期待されていないということを
表している。従って、それがセットされるのは、プロセ
ッサ・キャッシュ・コントローラが保留ライト・バック
・コントローラに所有サブブロックの全てを送ったこと
を知らせる、last_data_arrivedがア
サートされた場合か、あるいは、バス・キャッシュ・コ
ントローラが読み取り要求パケットを送り出し(図12
参照のこと)、タグ・ディレクトリの対応する所有ビッ
トがセットされていない場合である。
【0046】他のプロセッサに対して保留中の読み取り
回答がなく、保留ライト・バック・コントローラが、プ
ロセッサ・キャッシュ・コントローラから必要な全ての
サブブロックを受信し、まだ、それらを所有している場
合に、ライト・バックを行ったとすると、subblo
ck_valid[L]信号ビット61が、リセットさ
れる。subblock_valid[L]信号につい
ては、キャッシュ・ライン論理回路の解説において、さ
らに詳述する。
【0047】subblock_owned[L]フリ
ップ・フロップ63は、対応するサブブロックが、保留
ライト・バック・コントローラによって所有されている
ことを表す。サブブロックが、保留ライト・バック・コ
ントローラによって所有されている場合、このサブブロ
ックを要求している他のプロセッサ・サブシステムに読
み取り回答を送らなければならず、subblock_
owned[L]フリップ・フロップのクリアが可能に
なる前に、サブブロックを主メモリにライト・バックし
なければならない。バス・キャッシュ・コントローラが
メモリ・バスによって読み取り要求パケットを送り出
し、バス・キャッシュ制御ディレクトリ46の対応する
「所有」状況ビットが(図6参照のこと)、owned
_flag[L]によって表示のようにセットされる
と、subblock_owned[L]ビット63
が、セットされる。これは、事実上、バス・キャッシュ
・コントローラ・ディレクトリ46から保留ライト・バ
ック・コントローラにサブブロックの「所有権」を移行
するということである。
【0048】主メモリに対するライト・バックが、保留
ライト・バック・コントローラによって実施されるか、
あるいは、ライト・バックが行われる前に、別のプロセ
ッサがサブブロックに書き込みを行い、この結果、保留
ライト・バック・コントローラのこのサブブロックに関
するデータが、古くなったことを知らせると、subb
lock_owned[L]ビット63がリセットされ
る。subblock_owned[L]ビット63を
リセットする信号は、メモリ・バスにおいて書き込みを
検出する信号(wb_or_write)、キャッシュ
・ラインの一致を検出する信号(cache_line
_match)、及び、サブブロックの一致を検出する
信号(mem_bus_addr_dec[L])の論
理積によって形成される。
【0049】subblock_owned_matc
h[L]信号は、メモリ・バスの現在のサブブロックが
この特定のサブブロックと一致しており、かつサブブロ
ックが保留ライト・バック・コントローラによって所有
されていることを表している。この信号は、次にレベル
の高い2つの保留ライト・バック・コントローラ論理回
路によって利用される。subblock_owned
_match[L]信号は、cache_line_m
atch信号(メモリ・バスにおけるアドレスがこのキ
ャッシュ・ラインのアドレスに一致する信号)と、me
m_bus_addr_dec[L](メモリ・バスに
おけるサブブロックがこのサブブロックに一致する信
号)と、subblock_owned信号との論理積
によって生じる。
【0050】キャッシュ・ライン論理回路 図11及び12を参照すると、個々のキャッシュ・ライ
ンに関する制御論理回路が示されている。先行セクショ
ンに記載のsubblock_valid[1−N]、
subblock_owned[1−N]、及び、su
bblock_owned_match[1−N]信号
は、この特定のキャッシュ・ラインに関連したサブブロ
ック論理演算装置からの入力信号である。
【0051】cache_line_valid信号
は、プロセッサ・キャッシュ・コントローラが読み取り
要求を送り出す時から、必要な全てのサブブロックが主
メモリにライト・バックされる時までの間にアサートさ
れ、他の要求プロセッサに対して、それ以上読み取り回
答を送り出す必要はない。この信号は、キャッシュ・ラ
インの関連するsubblock_valid[1−
N]、subblock_owned[1−N]、rd
_req_pending、及び、rd_reply_
pendingビットによって発生する。
【0052】rd_req_pending信号ビット
73は、プロセッサ・キャッシュ・コントローラがバス
・キャッシュ・コントローラに対して読み取り要求を送
り出すとセットされる。この信号は、プロセッサ・キャ
ッシュ・コントローラが新しいキャッシュ・ラインを要
求したが、バス・キャッシュ・コントローラは、対応す
る読み取り要求をメモリ・バスに送り出さなかったこと
を表している。rd_req_pending信号ビッ
ト73は、バス・キャッシュ・コントローラがメモリ・
バスに対応する読み取り要求を同報通信しない場合にリ
セットされる。その時点において、set_subbl
ock_valid信号がアサートされ、バス・キャッ
シュ・コントローラから保留ライト・バック・コントロ
ーラに所有サブブロックの所有権が転送される。バス・
キャッシュ・コントローラによって所有されないサブブ
ロックは、対応するsubblock_valid
[L]信号ビットが高にセットされる。
【0053】rd_reply_pending信号ビ
ット75は、システム内の別のプロセッサが、保留ライ
ト・バック・コントローラによって所有されているサブ
ブロックに対する読み取り要求を送り出す毎に、セット
される。rd_reply_pending信号ビット
75は、キャッシュ・ラインの除去が可能になる前に、
保留ライト・バック・コントローラが、適合する要求プ
ロセッサ・サブシステムに対して、所有サブブロックを
含む1つ以上の読み取り回答パケットを送り返す必要が
あることを表している。rd_reply_pendi
ng信号ビット75は、other_rd_req信
号、及び、メモリ・バスとこのキャッシュ・ラインのサ
ブブロックとのアドレスが一致することを表す信号の論
理積によってセットされる。rd_reply_pen
ding信号ビット75をセットするために用いられる
信号は、queue_other_rd_req[K]
信号を発生して、送り出さなければならない読み取り回
答リストを記憶するFIFOの待ち行列に読み取り要求
を入れることを、保留ライト・バック大域論理回路に知
らせるためにも利用される。
【0054】rd_reply_pending信号ビ
ット75は、適合する回答パケットを送ることによっ
て、他のプロセッサからの全ての読み取り要求に対する
サービスがすむと、リセットされる。このリセットは、
送り出さなければならない読み取り回答リストを記憶す
るFIFOが空であることを示す信号によって実施され
る。
【0055】cache_line_addrフリップ
・フロップ71は、関連するキャッシュ・ラインの現在
のアドレスを記憶する。mem_bus_addr_m
atch信号は、メモリ・バスにおける指令に関するア
ドレスが、cache_line_addrフリップ・
フロップ71に記憶されたアドレスに一致する場合に、
アサートされる。
【0056】cache_line_busy[K]
は、プロセッサ・キャッシュ・コントローラが、cac
he_line_addrフリップ・フロップ71に記
憶されているものと同じアドレスを備えたキャッシュ・
バスを介してパケットを送る場合に限ってアサートされ
るという点を除けば、cache_line_vali
d信号に似ている。この結果、プロセッサ・キャッシュ
・コントローラは、複数の未決着の読み取り要求を同じ
キャッシュ・ラインに送ることが可能になるが、これ
は、キャッシュ・ライン内の追加データをあらかじめ取
り出すために実施することができる。
【0057】cache_subblock_xfer
ラインは、プロセッサ・キャッシュ・コントローラが保
留ライト・バック・コントローラに対して送り出す各サ
ブブロック毎にアサートされる。cache_subb
lock_xfer信号は、現在のcache_bus
_addrと各cache_line_addrとのア
ドレスの一致を示す信号との論理積演算が施されるの
で、プロセッサ・キャッシュ・コントローラが保留WC
・コントローラに対して送り出す各所有サブブロック毎
に、せいぜい1つのcache_xfer_match
[K]信号しかアサートされない。cache_xfe
r_match[K]信号は、保留ライト・バック・コ
ントローラの大域コントローラが、保留サブブロック・
ライト・バックを記憶するFIFOの待ち行列にライト
・バック要求をロードするために用いられる。
【0058】rst_subblock_valid信
号は、キャッシュ・ラインに関するsubblock_
valid[L]ビットの全てがセットされ、キャッシ
ュ・ラインに関してred_req_pendingが
なく、キャッシュ・ラインに関してred_reply
_pendingがなく、どのサブブロックも所有され
ていない(全てのsubblock_owned[L]
ビットの否定論理和によって示される)場合にアサート
される。rst_subblock_valid信号に
よって、キャッシュ・ラインに関する全ての関連sub
block_valid[L]ビットがリセットされ、
これによって、cache_line_valid信号
がリセットされる。これは、保留ライト・バック・コン
トローラが、キャッシュ・ラインの所有サブブロックを
ライト・バックする責任を果たしたことを表している。
【0059】queue_other_rd_req
[K]ラインは、別のプロセッサが、いつ保留ライト・
バック・コントローラにおけるこのキャッシュ・ライン
からの所有サブブロックを要求したかを表示する。qu
eue_other_rd_req[K]ラインは、s
ubblock_owned_match[L]ビット
の任意の1つが、メモリ・バスのパケットとアドレスが
一致することを表示し、other_rd_req信号
が、メモリ・バスにおけるパケットが別のプロセッサ・
サブシステムからの読み取り要求であることを表示して
いる場合に、アサートされる。queue_other
_rd_req信号によって、読み取り要求は、送り出
さなければならない読み取り回答リストを記憶する大域
論理回路におけるFIFOの待ち行列に入れられる。
【0060】キャッシュ・ラインに関するred_rp
ly_enable[K]信号は、要求される全ての所
有サブブロックがプロセッサ・キャッシュ・コントロー
ラによって送り出されているか、あるいは、このキャッ
シュ・ライン・コントローラが用いられていない場合に
アサートされる。この信号は、大域論理回路によって、
アービタ・コントローラがメモリ・バスにアクセスを試
みるべきか否かを判定するために利用される。
【0061】last_data_arrived信号
は、プロセッサ・キャッシュ・コントローラから保留ラ
イト・バック・コントローラに所有サブブロックを転送
する最後のサイクルが、いつ行われたかを表示する。こ
の信号は、cache_line_valid、las
t_data_xferred、及び、wb_fifo
_dec[K]の論理積である。
【0062】大域保留ライト・バック・コントローラ論
理回路 図13及び14には、大域保留ライト・バック・コント
ローラ論理回路が示されている。プロセッサ・キャッシ
ュ・コントローラが読み取り要求を送り出すと、デコー
ダ82が、読み取り要求制御情報を復号化し、優先順位
エンコーダ89を用いて使用中でないキャッシュ・ライ
ンを確かめることによって、キャッシュ・ラインの割り
振りを行う。この結果、cache_line_all
ocated[K]信号がアサートされ、アドレスが、
選択されたキャッシュ・ライン・コントローラのcac
he_line_addrフリップ・フロップ71にロ
ードされる。
【0063】data_ram81は、保留ライト・バ
ック・コントローラによって所有されている全てのサブ
ブロックに関するデータを記憶している。data_r
am81に書き込むデータのアドレスは、サブブロック
を指定するlog2 Nの低番地アドレス・ビットと、そ
のデータのアドレスを納めたキャッシュ・ラインを指定
するIアドレス・ビットを連結することによって形成さ
れる。data_ram81に書き込まれる所有サブブ
ロックは、データが古くなっていなければ、最終的に
は、メモリ・バスを介して主メモリにライト・バックさ
れる。
【0064】wb_fifo83には、主メモリにライ
ト・バックする必要のあるdata_ram81におけ
るサブブロックの符号化リストが納められている。これ
らのサブブロックは、全てのrd_req_pendi
ng[1−M]信号が、取り消されるまで、主メモリに
送ることはできないが、このことは、読み取り要求がバ
ス・キャッシュ・コントローラによって送り出され、サ
ブブロックの所有権が保留ライト・バック・コントロー
ラに移行することを表している。サブブロックをメモリ
・バスに転送する準備が整うと、適合するsubblo
ck_owned[L]ビットをチェックして、それが
まだセットされていることを確認しなければならない。
特定のサブブロックに対する別のプロセッサによる書き
込み要求が生じると、subblock_owned
[L]ビットは、セットされない。subblock_
owned[L]ビットがセットされなければ、サブブ
ロックが古くなっているので、そのサブブロックを主メ
モリに書き込んではならない。メモリ・バスへのアクセ
スを要求する前に、同様のチェックを実施することがで
きるが、メモリ・バス調停論理回路の詳細は、本特許の
範囲外である。
【0065】rd_fifo85には、保留ライト・バ
ック・コントローラによって所有されているサブブロッ
クに対して他のプロセッサ・サブシステムから送り出さ
れた読み取り要求符号化リストが含まれいている。保留
ライト・バック・コントローラは、置換される全ての所
有サブブロックが、プロセッサ・キャッシュ・コントロ
ーラから送り出されるまで、rd_fifo85におい
て保留中の読み取り要求に回答しない。保留ライト・バ
ック・コントローラは、保留ライト・バック・コントロ
ーラのサブブロックを無効にすることが可能になる前
に、rd_fifo85における全ての読み取り要求に
応答しなければならない。
【0066】data_ram81、wb_fifo8
3、及び、rd_fifo85は、単一のRAMまたは
FIFOとして実現する必要はない。それぞれ、キャッ
シュ・ラインと同じ数のRAM及びFIFOによって実
現することが可能である。このアプローチによって、全
てのキャッシュ・ラインに対する従属性が取り除かれ、
wb_fifo83、及び、rd_fifo85が空に
なる。例えば、単一RAMを用いて、rd_fifo8
5を実施する場合、待ち行列の先頭における読み取り要
求に対応するキャッシュ・ラインは、まだ、プロセッサ
・キャッシュ・コントローラからのデータを受信してい
ない可能性がある。このため、data_ram81に
おいてデータが得られるとしても、他のキャッシュ・ラ
インからの情報を要求するrd_fifo85における
他の読み取り要求に取りかかれなくなる。
【0067】保留ライト・バック・コントローラ論理回
路の接続 図10、11、12、13、及び、14に示す個々の階
層論理レベル間における相互接続が、図15に示されて
いる。単一の大域保留ライト・バック・コントローラ論
理演算装置については、今後、大域論理回路と呼ぶこと
にする。各キャッシュ・ライン論理演算装置には、ラベ
ルCx が付与されるが、ここで、xは、キャッシュ・ラ
インに対応する1〜Mの値である。各サブブロック論理
演算装置には、ラベルCx.SByが付与されるが、ここ
で、xは、キャッシュ・ラインに対応する1〜Mの値で
あり、yは、サブブロックに対応する1〜Nの値であ
る。図15には、各キャッシュ・ライン論理演算装置毎
に2つのサブブロック論理演算装置が設けられた、3つ
のキャッシュ・ライン論理演算装置が示されている。従
って、図15に示すシステムは、それぞれ、2つのサブ
ブロックを備える(N=2)、3つのキャッシュ・ライ
ンが設けられた(M=3)、完全なシステムである。現
在のところ望ましい実施例の場合、キャッシュ・メモリ
は、それぞれ、4つのサブブロック(N=4)を有す
る、2つのキャッシュ・ライン(M=2)を備えてい
る。
【0068】大域保留ライト・バック・コントローラ論
理回路は、2つの外部入力と4つの内部出力を備えてい
る。2つの外部入力は、プロセッサ・キャッシュ・コン
トローラからのキャッシュ・バス及びメモリ・バスによ
って構成される。外部出力は、enable_subb
lock_xfer、arb_rq_rd_repl
y、arb_rq_wb信号及びメモリ・バスである。
arb_rq_rd_reply及びarb_rq_w
b信号は、メモリ・バスの調停に用いられる。
【0069】大域論理回路には、キャッシュ・ライン論
理演算装置とサブブロック論理演算装置に接続されたい
くつかの内部入力及び出力も設けられている。大域論理
出力ライン91は、信号、issued_rd_rq、
mem_bus_addr、cache_bus_sb
block_xfer、other_rd_rq、及
び、rd_fifo_emptyを全てのキャッシュ・
ライン論理演算装置C1〜CMに伝送する。大域論理出
力ライン91は、また、各キャッシュ論理演算装置CK
に適合する信号cache_line_allocat
ed[K]及びwb_fifo_dec[K]を伝送す
るが、ここで、Kは、1〜Mである。大域論理出力ライ
ン93は、全てのサブブロック論理演算装置に対して信
号を伝送する。大域論理出力ライン93は、wb_or
_write信号を全てのサブブロック論理演算装置に
伝送し、適合するmem_bus_addr_dec
[L]信号を各サブブロック論理演算装置Cx.SBL
に伝送する。大域論理入力ライン94は、各キャッシュ
・ライン論理回路CKからの信号、cache_lin
e_busy[K]、cache_line_vali
d、cache_xfer_match[K]、rd_
req_pending[K]、last_data_
xfer、queue_other_rd_req
[K]、及び、rd_rply_enable[K]を
伝送するが、ここで、Kは、1〜Mである。大域論理入
力ライン97は、全てのサブブロック論理演算装置C
K.SBLからの信号subblock_owned
[K,L]及びsubblock_owned_mat
ch[K,L]を伝送するが、ここで、Kは、1〜Mで
あり、Lは、1〜Nである。
【0070】大域論理回路の右のキャッシュ・ライン論
理演算装置は、大域論理回路及び関連サブブロックから
の入力を受信する。各キャッシュ・ライン論理回路CK
は、入力として上述の大域論理出力ライン91を受け
る。各キャッシュ・ライン論理回路CKは、また、サブ
ブロック出力ライン99を介して、関連サブブロックL
から信号、subblock_valid[1−N]、
subblock_owned[1−N]、及び、su
bblock_owned_match[1−N]を受
信する。キャッシュ・ライン論理演算装置は、上述の大
域論理入力ライン95を出力する。各キャッシュ・ライ
ン論理演算装置は、また、キャッシュ・ライン出力ライ
ン92を介して、各関連サブブロック論理演算装置に信
号set_subblock_valid、rst_s
ubblock_valid、last_data_a
rrived、及び、cache_line_matc
hを出力する。
【0071】サブブロック論理演算装置は、関連するキ
ャッシュ・ライン論理演算装置、大域論理回路、及び、
タグ・コントローラからの入力を受信する。サブブロッ
ク論理演算装置は、それぞれ、大域論理回路からの大域
論理出力ライン93、及び、関連するキャッシュ・ライ
ン論理回路からのキャッシュ・ライン出力ライン92を
受ける。各サブブロック論理演算装置は、バス・キャッ
シュ・コントローラのタグ・コントローラからの入力o
wned_flag[L]も受信する。この信号は、バ
ス・キャッシュ・コントローラから保留ライト・バック
・コントローラへの所有権の移行に利用される。各サブ
ブロック論理演算装置は、上述の大域論理回路の入力ラ
イン97信号及びキャッシュ・ラインに対するサブブロ
ック信号を出力する。
【0072】以上で、マルチプロセッサ・システムにお
ける保留ライト・バック・キャッシュ・コントローラを
備えた二重ディレクトリ・キャッシュ制御システムを実
現するための装置及び方法の解説を終えるものとする。
当該技術の通常の技能者であれば、本発明の精神及び範
囲を逸脱することなく、本発明の装置のコンポーネント
と、構成要素の構成に関して変更及び修正を加えること
ができるように意図されている。例えば、2つの独立し
た単位、すなわち、バス・キャッシュ・コントローラ及
びプロセッサ・キャッシュ・コントローラに分割された
キャッシュ制御システムにおいて動作する保留ライト・
バック・コントローラについて説明してきたが、保留ラ
イト・バック・コントローラは、パケット・スイッチン
グ・メモリ・バスを利用する任意のライト・バック・キ
ャッシュ制御システムにおいて利用することが可能であ
る。
【図面の簡単な説明】
【図1】各プロセッサ・サブシステムがそれ自体のキャ
ッシュ・メモリを備えている、マルチプロセッサ・シス
テムにおけるキャッシュの整合性の維持を説明する図で
ある。
【図2】各プロセッサ・サブシステムがそれ自体のキャ
ッシュ・メモリを備えている、マルチプロセッサ・シス
テムにおけるキャッシュの整合性の維持を説明する図で
ある。
【図3】各プロセッサ・サブシステムがそれ自体のキャ
ッシュ・メモリを備えている、マルチプロセッサ・シス
テムにおけるキャッシュの整合性の維持を説明する図で
ある。
【図4】各プロセッサ・サブシステムがそれ自体のキャ
ッシュ・メモリを備えている、マルチプロセッサ・シス
テムにおけるキャッシュの整合性の維持を説明する図で
ある。
【図5】各プロセッサ・サブシステム毎に先行技術によ
るライト・バック・キャッシュ・メモリ・システムを備
えたマルチプロセッサ・システムのブロック図である。
【図6】キャッシュ・コントローラがプロセッサ・キャ
ッシュ・コントローラ及びバス・キャッシュ・コントロ
ーラに分割された、本発明のキャッシュ制御システムを
備えた、マルチプロセッサ・システムのブロック図であ
る。
【図7】マルチプロセッサ・システムが複数メモリ・バ
スを備える、本発明のキャッシュ・メモリ・システムの
代替実施例に関するブロック図である。
【図8】本発明の保留ライト・バック・コントローラに
関連したバス・キャッシュ・コントローラの内部を示す
ブロック図である。
【図9】本発明に用いられるキャッシュ・メモリ構造の
ブロック図である。
【図10】本発明の保留ライト・バック・コントローラ
におけるサブブロック論理回路を示す電気回路図であ
る。
【図11】本発明の保留ライト・バック・コントローラ
におけるキャッシュ・ライン論理回路を示す第1の電気
回路図である。
【図12】本発明の保留ライト・バック・コントローラ
におけるキャッシュ・ライン論理回路を示す第2の電気
回路図である。
【図13】本発明の大域保留ライト・バック・コントロ
ーラ論理回路を示す第1の電気回路図である。
【図14】本発明の大域保留ライト・バック・コントロ
ーラ論理回路を示す第2の電気回路図である。
【図15】本発明の保留ライト・バック・コントローラ
の個々の階層論理レベル間における相互接続を示すブロ
ック図である。
【符号の説明】
1 プロセッサ 2 プロセッサ 3 プロセッサ 20 プロセッサ・サブシステム 21 プロセッサ 22 主メモリ 23 主メモリ 24 主メモリ 25 メモリ・バス 28 キャッシュ・ディレクトリ 29 キャッシュ・コントローラ 30 バス・キャッシュ・コントローラ 31 バス・キャッシュ・コントローラ 32 プロセッサ・モジュール 33 キャッシュ・バス 34 プロセッサ・キャッシュ・ディレクトリ 35 プロセッサ・キャッシュ・コントローラ 37 プロセッサ・キャッシュ・メモリ 40 保留ライト・バック・コントローラ 41 アービタ・コントローラ 43 バス・データ・コントローラ 46 バス・キャッシュ・コントローラ・ディレクトリ 82 デコーダ 84 優先順位エンコーダ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591174933 ゼロックス・コーポレーション アメリカ合衆国 06904−1600 コネティ カット州・スタンフォード・ロング リッ ジ ロード・800 (72)発明者 ビジョーン・リーンクレス アメリカ合衆国 94303 カリフォルニア 州・パロ アルト・グリート ロード・ 2731 (72)発明者 ダグラス・リー アメリカ合衆国 94102 カリフォルニア 州・サン フランシスコ・ナンバー105・ リーベンワース・434 (72)発明者 プラディープ・エス・シンドウ アメリカ合衆国 94040 カリフォルニア 州・マウンテン ビュー・モンタルト ド ライブ・1557 (72)発明者 タン・ファム アメリカ合衆国 95111 カリフォルニア 州・サン ホゼ・ラ レジョン アヴェニ ュ・2417

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 パケット・スイッチ式メモリ・バスを介
    して結合された、少なくとも1つのプロセッサ・サブシ
    ステムと主メモリを具備しているコンピュータ・システ
    ムのライト・バック・キャッシュ・メモリにおいて、 それぞれ情報を記憶する、少なくとも1つのキャッシュ
    ・ラインを有するキャッシュ・メモリと、 前記キャッシュ・メモリの各キャッシュ・ラインに関す
    るアドレス・タグ、及び、有効ビット及び所有ビットを
    含む複数の状況ビットを記憶するキャッシュ・ディレク
    トリと、 前記キャッシュ・メモリ及び前記キャッシュ・ディレク
    トリに結合されており、さらに、前記パケット・スイッ
    チ式メモリ・バスにも結合されて、前記キャッシュ・デ
    ィレクトリの制御を行うキャッシュ制御システムと、 前記キャッシュ制御システムに結合され、置き換えられ
    た複数の所有キャッシュ・ラインの緩衝処理を行い、前
    記主メモリに対する所有キャッシュ・ラインのライト・
    バックを担う保留ライト・バックコントローラから構成
    される、 前記プロセッサ・サブシステムのそれぞれに設けられて
    いるライト・バック・キャッシュ・メモリ。
  2. 【請求項2】 パケット・スイッチ式メモリ・バスを介
    して結合された、少なくとも1つのプロセッサ・サブシ
    ステムと主メモリを具備しているコンピュータ・システ
    ムのライト・バック・キャッシュ・メモリにおいて、 それぞれが、対応する主メモリのアドレスを有する情報
    ラインのそれぞれを記憶する、少なくとも1つのキャッ
    シュ・ラインを有するキャッシュ・メモリと、 前記キャッシュ・メモリの各キャッシュ・ライン毎に、
    前記キャッシュ・ラインに関する主メモリの対応するア
    ドレスであるアドレス・タグ、及び、状況ビットの集合
    を記憶するキャッシュ・ディレクトリと、 前記キャッシュ・メモリ及び前記キャッシュ・ディレク
    トリを維持するライト・バック・キャッシュ制御システ
    ムと、 前記メモリ・バスを介して、前記キャッシュ・メモリに
    所有ラインを記憶するキャッシュ・ラインに関する新し
    い情報ラインを要求するための手段と、 キャッシュ・メモリのキャッシュ・ラインから保留ライ
    ト・バック・コントローラに所有情報ラインをコピーす
    るための手段と、 キャッシュ・メモリのキャッシュ・ラインの前記所有情
    報ラインを前記要求された新しい情報ラインに置き換え
    るための手段と、 保留ライト・バック・コントローラの前記所有情報ライ
    ンを前記主メモリにライト・バックするための手段から
    構成される、 前記プロセッサ・サブシステムのそれぞれに設けられて
    いるライト・バック・キャッシュ・メモリ。
  3. 【請求項3】 パケット・スイッチ式メモリ・バスを介
    して結合された、少なくとも1つのプロセッサ・サブシ
    ステムと主メモリとを具備しており、前記プロセッサ・
    サブシステムが、それぞれ、少なくとも1つのキャッシ
    ュ・ラインを有するキャッシュ・メモリから構成され
    る、ライト・バック・キャッシュ・メモリ・システムを
    備えているコンピュータ・システムの前記プロセッサ・
    サブシステムのキャッシュ・メモリ内のキャッシュ・ラ
    インを置換する方法において、 前記メモリ・バスを介して、前記プロセッサ・サブシス
    テムのキャッシュ・メモリのキャッシュ・ラインに関す
    る新しい情報を要求するステップと、 前記プロセッサ・サブシステムのキャッシュ・メモリに
    おけるキャッシュ・ラインから保留ライト・バック・コ
    ントローラに所有情報ラインを転送するステップと、 前記プロセッサ・サブシステムのキャッシュ・メモリの
    キャッシュ・ラインに前記要求された新しい情報ライン
    を受信するステップと、 保留ライト・バック・コントローラにおける前記所有情
    報ラインを主メモリにライト・バックするステップから
    構成され、前記所有情報ラインをライト・バックする前
    記ステップが、新しい情報ラインの前記要求ステップの
    後で行われることを特徴とする、 プロセッサ・サブシステムのキャッシュ・メモリ内のキ
    ャッシュ・ラインを置換する方法。
JP5302259A 1992-11-09 1993-11-09 ライト・バック・キャッシュ・メモリおよびキャッシュ・メモリ内のキャッシュ・ラインを置換する方法 Pending JPH076092A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/973,309 US5434993A (en) 1992-11-09 1992-11-09 Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US973309 1992-11-09

Publications (1)

Publication Number Publication Date
JPH076092A true JPH076092A (ja) 1995-01-10

Family

ID=25520741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5302259A Pending JPH076092A (ja) 1992-11-09 1993-11-09 ライト・バック・キャッシュ・メモリおよびキャッシュ・メモリ内のキャッシュ・ラインを置換する方法

Country Status (4)

Country Link
US (1) US5434993A (ja)
EP (1) EP0598535B1 (ja)
JP (1) JPH076092A (ja)
DE (1) DE69327387T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5890217A (en) * 1995-03-20 1999-03-30 Fujitsu Limited Coherence apparatus for cache of multiprocessor

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE186411T1 (de) * 1992-08-19 1999-11-15 Siemens Nixdorf Inf Syst Multiprozessorsystem mit cache-speichern
US6088768A (en) * 1993-12-28 2000-07-11 International Business Machines Corporation Method and system for maintaining cache coherence in a multiprocessor-multicache environment having unordered communication
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
TW243509B (en) * 1994-01-31 1995-03-21 Ibm Data processor with memory cache and method of operation
JP2778913B2 (ja) * 1994-04-26 1998-07-23 株式会社東芝 マルチプロセッサシステム及びメモリアロケーション方法
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5566317A (en) * 1994-06-14 1996-10-15 International Business Machines Corporation Method and apparatus for computer disk drive management
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US6000017A (en) * 1995-01-20 1999-12-07 Intel Corporation Hybrid tag architecture for a cache memory
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5689713A (en) * 1995-03-31 1997-11-18 Sun Microsystems, Inc. Method and apparatus for interrupt communication in a packet-switched computer system
DE69628079T2 (de) * 1995-03-31 2004-02-26 Sun Microsystems, Inc., Santa Clara Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
DE69628493T2 (de) * 1995-03-31 2004-05-19 Sun Microsystems, Inc., Santa Clara Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
US5907485A (en) * 1995-03-31 1999-05-25 Sun Microsystems, Inc. Method and apparatus for flow control in packet-switched computer system
US5710891A (en) * 1995-03-31 1998-01-20 Sun Microsystems, Inc. Pipelined distributed bus arbitration system
US5634068A (en) * 1995-03-31 1997-05-27 Sun Microsystems, Inc. Packet switched cache coherent multiprocessor system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US6076150A (en) * 1995-08-10 2000-06-13 Lsi Logic Corporation Cache controller with improved instruction and data forwarding during refill operation
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6021472A (en) * 1995-08-21 2000-02-01 Canon Kabushiki Kaisha Information processing device and control method thereof
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
US5829035A (en) * 1995-12-22 1998-10-27 Apple Computer, Inc. System and method for preventing stale data in multiple processor computer systems
JP3919224B2 (ja) * 1996-01-25 2007-05-23 ユニシス・コーポレイション マルチレベル分散データ処理システムにおいて読出コマンドを実行しデータ語を変更するための方法および回路
JPH09223118A (ja) * 1996-02-14 1997-08-26 Oki Electric Ind Co Ltd スヌープキャッシュメモリ制御システム
US6385710B1 (en) 1996-02-23 2002-05-07 Sun Microsystems, Inc. Multiple-mode external cache subsystem
US5765196A (en) * 1996-02-27 1998-06-09 Sun Microsystems, Inc. System and method for servicing copyback requests in a multiprocessor system with a shared memory
US5829033A (en) * 1996-07-01 1998-10-27 Sun Microsystems, Inc. Optimizing responses in a coherent distributed electronic system including a computer system
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US5860117A (en) * 1996-05-31 1999-01-12 Sun Microsystems, Inc. Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
JPH1078934A (ja) * 1996-07-01 1998-03-24 Sun Microsyst Inc パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US5809548A (en) * 1996-08-30 1998-09-15 International Business Machines Corporation System and method for zeroing pages with cache line invalidate instructions in an LRU system having data cache with time tags
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US5829029A (en) * 1996-12-18 1998-10-27 Bull Hn Information Systems Inc. Private cache miss and access management in a multiprocessor system with shared memory
US6122711A (en) * 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US6032226A (en) * 1997-04-14 2000-02-29 International Business Machines Corporation Method and apparatus for layering cache and architectural specific functions to expedite multiple design
US6209072B1 (en) 1997-05-06 2001-03-27 Intel Corporation Source synchronous interface between master and slave using a deskew latch
US6434639B1 (en) * 1998-11-13 2002-08-13 Intel Corporation System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation
US6859399B1 (en) 2000-05-17 2005-02-22 Marvell International, Ltd. Memory architecture and system and multiport interface protocol
US7472230B2 (en) * 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US6785779B2 (en) * 2002-01-09 2004-08-31 International Business Machines Company Multi-level classification method for transaction address conflicts for ensuring efficient ordering in a two-level snoopy cache architecture
US20050005075A1 (en) * 2003-04-11 2005-01-06 Sun Microsystems, Inc. Multi-node computer system employing multiple memory response states
US7814278B2 (en) * 2003-04-11 2010-10-12 Oracle America, Inc. Multi-node system with response information in memory
US7945738B2 (en) * 2003-04-11 2011-05-17 Oracle America, Inc. Multi-node computer system employing a reporting mechanism for multi-node transactions
GB2416416B (en) * 2003-04-11 2006-11-22 Sun Microsystems Inc Multi-node computer system implementing global access state dependent transactions
US7360029B2 (en) * 2003-04-11 2008-04-15 Sun Microsystems, Inc. Multi-node computer system in which interfaces provide data to satisfy coherency transactions when no owning device present in modified global access state node
US20050013294A1 (en) * 2003-04-11 2005-01-20 Sun Microsystems, Inc. Multi-node computer system with active devices employing promise arrays for outstanding transactions
US20050010615A1 (en) * 2003-04-11 2005-01-13 Sun Microsystems, Inc. Multi-node computer system implementing memory-correctable speculative proxy transactions
GB2416417B (en) * 2003-04-11 2006-12-13 Sun Microsystems Inc Multi-node computer system with proxy transaction to read data from a non-owning memory device
US8559443B2 (en) 2005-07-22 2013-10-15 Marvell International Ltd. Efficient message switching in a switching apparatus
WO2014065879A1 (en) * 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5247648A (en) * 1990-04-12 1993-09-21 Sun Microsystems, Inc. Maintaining data coherency between a central cache, an I/O cache and a memory
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
US5263144A (en) * 1990-06-29 1993-11-16 Digital Equipment Corporation Method and apparatus for sharing data between processors in a computer system
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
US5265235A (en) * 1990-11-30 1993-11-23 Xerox Corporation Consistency protocols for shared memory multiprocessors
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
US5355471A (en) * 1992-08-14 1994-10-11 Pyramid Technology Corporation Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5890217A (en) * 1995-03-20 1999-03-30 Fujitsu Limited Coherence apparatus for cache of multiprocessor

Also Published As

Publication number Publication date
DE69327387T2 (de) 2000-08-31
US5434993A (en) 1995-07-18
DE69327387D1 (de) 2000-01-27
EP0598535B1 (en) 1999-12-22
EP0598535A1 (en) 1994-05-25

Similar Documents

Publication Publication Date Title
JPH076092A (ja) ライト・バック・キャッシュ・メモリおよびキャッシュ・メモリ内のキャッシュ・ラインを置換する方法
US6615322B2 (en) Two-stage request protocol for accessing remote memory data in a NUMA data processing system
KR100491435B1 (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
US6760809B2 (en) Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US6760817B2 (en) Method and system for prefetching utilizing memory initiated prefetch write operations
US6711652B2 (en) Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
US6901485B2 (en) Memory directory management in a multi-node computer system
US6754782B2 (en) Decentralized global coherency management in a multi-node computer system
US6633959B2 (en) Non-uniform memory access (NUMA) data processing system that provides notification of remote deallocation of shared data
JP2662603B2 (ja) 無効要求を選別する方法及び装置
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US6886079B2 (en) Dynamic history based mechanism for the granting of exclusive data ownership in a non-uniform memory access (NUMA) computer system
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US20040049640A1 (en) System and method for directional prefetching
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US6823431B2 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JPH10133943A (ja) リンクリスト形成方法
JP2008525901A (ja) 共有メモリコンピュータシステムにおける、所有されている複数のキャッシュブロックのライトバックの早期予測
JPH04233048A (ja) 多重レベルキャッシュの制御方法及び装置
US6334172B1 (en) Cache coherency protocol with tagged state for modified values
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US20030009635A1 (en) Non-uniform memory access (NUMA) computer system having distributed global coherency management
EP1224553B1 (en) Multi-processor system and method of accessing data therein
Chaudhry et al. Separated caches and buses for multiprocessor system
US6247098B1 (en) Cache coherency protocol with selectively implemented tagged state

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040506

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040907