JPH1031625A - マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ - Google Patents

マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ

Info

Publication number
JPH1031625A
JPH1031625A JP9036260A JP3626097A JPH1031625A JP H1031625 A JPH1031625 A JP H1031625A JP 9036260 A JP9036260 A JP 9036260A JP 3626097 A JP3626097 A JP 3626097A JP H1031625 A JPH1031625 A JP H1031625A
Authority
JP
Japan
Prior art keywords
copyback
data
controller
address
processor
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
JP9036260A
Other languages
English (en)
Inventor
Bjorn O Liencres
オー リーンクレス ビヨルン
Ashok Singhal
シンガル アショク
David J Broniarczyk
ジェイ ブローニアークジーク ディヴィッド
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.)
Sun Microsystems Inc
Original Assignee
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1031625A publication Critical patent/JPH1031625A/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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)

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)【要約】 (修正有) 【課題】 あるデータを持つプロセッサのキャッシュが
他のプロセッサからコピーバック要求をサービスしてい
るときでも自身のプロセッサからの要求をサービスでき
るようにして、コピーバック性能を向上させる。 【解決手段】 ライトバックおよびコピーバック指令を
処理する関連スヌープ・アーキテクチャと、複数のタグ
・バッファを伴うバッファを利用する。アドレス・コン
トローラ200は主キャッシュ250に関連づけられて
いるタグをミラーする一組の重複タグ、補助入力バッフ
ァ、補助出力バッファをもち、また、データ・コントロ
ーラの出力キューの各ラインに対して出力キュー指令に
関するデータの位置決めをするための関連ポインタをも
ち、補助タグ・バッファの出力キューを利用してコピー
バック・データのタグ情報を記憶する。各CPUの主キ
ャッシュ250にアクセスすることなくインバウンド・
マルチプル・コピーバック要求を処理できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にプロセッサがメ
モリ資源を共有するようなマルチ・プロセッサ・コンピ
ュータ・システムに関し、特に、コピーバック性能を改
良するために複合型ライトバック及びコピーバック・バ
ッファを利用するマルチ・プロセッサ・コンピュータ・
システムに関する。
【0002】
【従来の技術】キャッシュは、性能を改良するために多
くのコンピュータ・システムに用いられている。キャッ
シュは、中央処理装置(CPU)によるアクセスが主メ
モリよりも高速な記憶領域である。ほんどのキャッシュ
では、初めてアドレスがCPUによって参照されると
き、対応データは、メモリからフェッチされる。このデ
ータへの後続アクセスは、メモリからではなく、キャッ
シュからフェッチされる。
【0003】キャッシュは、一つ以上のキャッシュ・ラ
インから一般に構成される。各キャッシュ・ラインは、
関連キャッシュ・タグ及びキャッシュ・フラグを有す
る。キャッシュ・タグは、主メモリにおけるどのアドレ
スが所与のキャッシュ・ラインに対応するかを示し、か
つフラグは、キャッシュ・ラインの状態を示す。一度キ
ャッシュ・ラインがロードされると、要求しているプロ
セッサによるその同じアドレスの後続読取りは、主メモ
リをアクセスしなければならないのとは対照的に、キャ
ッシュを簡単にアクセスすることができる。更に、メモ
リ・アドレスに関連付けられたデータは、非常の多くの
回数更新されうる。キャッシュの型により、“更新され
た”データは、逐次または同時に主メモリに書き込まれ
る。
【0004】ライトバック・キャッシュ・スキームで
は、キャッシュ・ラインの更新された値は、キャッシュ
置換が発生するまで主メモリに送られない。CPUがキ
ャッシュの中にない別のメモリ位置をアクセスすること
を必要とするとき、従って、新しいデータを記憶するた
めにキャッシュ・ラインをフリー・アップしなければな
らないときに、キャッシュ置換が発生する。キャッシュ
・コントローラは、新しいデータに用いられるべきキャ
ッシュ・ラインを識別する。この識別処理は、しばしば
最後の使用に依存するが、他の置換スキームが用いられ
うる。CPUは、置換されるキャッシュ・ラインに関連
付けられたフラグを見てかつキャッシュ・ラインが先に
更新されたかどうかを決定する。キャッシュ・ラインが
先に更新されていたならば、更新を保存するために主メ
モリに“新しい”データが保管されなければならない。
置換されるキャッシュ・ラインが更新されていないなら
ば、主メモリの更新は必要ない。
【0005】置換あれたキャッシュ・ラインに記憶され
たデータの主メモリへの後続メモリ更新は、ライトバッ
クと呼ばれる。従来技術では、ライトバックは、新しい
データでのキャッシュ・ラインの置換より前にライトバ
ックを実行するかまたは代替的に、ライトバック・バッ
ファを用いてインプリメントされる。ライトバックバッ
ファは、それが到着しかつキャッシュのその場所を取る
ときにキャッシュ・ラインが新しいデータを自由に受け
入れるような、置換されるキャッシュ・ラインから更新
されたデータを保持する特別のバッファである。従っ
て、ライトバックを処理することに関連付けられたオー
バヘッドが新しいデータに対する要求がサービスされる
後まで遅らせることができるので、“新しい”データを
より速くリターンすることができる。
【0006】ライトバック・バッファに加えて、置換さ
れたキャッシュ・ラインに関連付けられたデータだけで
なく、更新されたデータに関連付けられたキャッシュ・
タグ及びフラグもまた一時的に記憶されなければならな
い。これは、新しいデータがそれ自身のアドレス(タ
グ)及び状態(フラグ)情報を必要とするからである。
一般的なライトバック・バッファ・インプリメンテーシ
ョンでは、個別のアドレス及び状態情報は、キャッシュ
に対するタグ・アレーまたは個別のレジスタのいずれか
に記憶される。上述したように、対応する主メモリ位置
がまだ更新されていないにも係わらず、ライトバック・
キャッシュは、プロセッサによって更新されたデータを
有することができる。マルチ・プロセッサ・システムに
おける別のキャッシュがその同じ位置をアクセスするこ
とを望むならば、そのキャッシュは、更新されたデータ
が必要である。マルチ・プロセッサ・システムでは、ラ
イトバックは、一つのキャッシュに別の要求キャッシュ
に対してデータを供給させるオペレーションである。
【0007】
【発明が解決しようとする課題】従来技術では、コピー
バックは、更新したデータを所有するキャッシュに要求
を供給する要求キャッシュを有することによって実行さ
れる。更新したデータを所有するキャッシュに関連付け
られたプロセッサは、コピーバック要求をサービスしか
つ要求キャッシュへのシステム・データ・バス上にデー
タを供給する。しかしながら、従来技術では、コピーバ
ック要求をサービスしているプロセッサは、サービス処
理中にそれ自身のキャッシュをアクセスすることができ
ず、従ってサービス・プロセッサの性能を低下させた。
マルチ・プロセッサ・コンピュータ・システムでは、こ
の問題は、マルチ・プロセッサが一つのプロセッサに関
連付けられたキャッシュによって所有される情報を要求
するかまたは争うときに更に悪化されうる。例えば、ソ
フトウェア・セマフォはマルチ・プロセッサが同時に同
じメモリ位置へのアクセスを争うことを必要とするとき
に、メモリ位置は、データをアクセスしている最初のプ
ロセッサによってキャッシュされる。この場合が非常に
一般的である理由は、複数のプロセッサがループのセマ
フォ・ロックをアクセスしているからである。これらプ
ロセッサの全ては、キャッシュされたセマフォを有す
る。ロックを解放するために一つのプロセッサがセマフ
ォを更新するとき、セマフォの全ての他のキャッシュさ
れたコピーが無効になり、従って全ての他のプロセッサ
は、更新を実行した一つのプロセッサに対して読取りを
発行する。
【0008】通常のマルチ・プロセッサ・システムで
は、データを所有するプロセッサは、同じメモリ位置を
アクセスすることを試みているマルチ・プロセッサ・シ
ステムの他のプロセッサのそれぞれから一つの要求を受
け取る。データを所有するプロセッサに関連付けられた
キャッシュは、システムの他のプロセッサから受け取っ
たこれらコピーバック要求のそれぞれをサービスするこ
とを要求される。従って、データを所有するキャッシュ
は、それ自身のプロセッサのキャッシュ・メモリ要求を
サービスすることができない。従って、マルチ・プロセ
ッサ・コンピュータ・システムにおけるコピーバック性
能を改良すべくコピーバック・オペレーション中にバッ
ファを利用することが本発明の目的である。
【0009】
【課題を解決するための手段】本発明の上記目的は、共
有主メモリを有しているマルチ・プロセッサ・コンピュ
ータ・システムにおけるコピーバック性能を改良するプ
ロセッサ・システムであって:中央処理装置;中央処理
装置に結合され、データを記憶するライトバック・キャ
ッシュ・メモリ;中央処理装置に結合され、当該中央処
理装置とマルチ・プロセッサ・コンピューティング・シ
ステムの間でデータを転送するデータ・コントローラ;
及び中央処理装置に結合され、当該中央処理装置とマル
チ・プロセッサ・・コンピューティング・システムの間
でアドレス及び制御情報を転送するアドレス・コントロ
ーラを備え;アドレス・コントローラは、インバウンド
・プロセッサ・アドレス及び指令情報を受け取りかつ記
憶する入力キュー;アウトバウンド・アドレス及び指令
情報を記憶しかつ発行する出力キュー;出力キューにお
いて保留しているコピーバック及びライトバック・オペ
レーションに関連付けられたアドレス及び状態情報を記
憶する補助タグ出力バッファ;補助タグ出力バッファに
記憶されたアドレス情報と入力キューによって受け取ら
れたインバウンド・コピーバック・オペレーションに関
連付けられたメモリ位置情報の間で一致が発生するかど
うかを決定するタグ・コントローラ;及びタグ・コピー
バックによるアドレス情報の一致の決定によりライトバ
ック・キャッシュ・メモリをアクセスすることなくコピ
ーバック応答を生成するロジックを含み、ロジックは、
コピーバック応答を発生してマルチ・プロセッサ・シス
テムへの発行のために該コピーバック応答を出力キュー
に配置するプロセッサ・システムによって達成される。
【0010】本発明のシステムでは、データ・コントロ
ーラは、アドレス・コントローラの出力キューに記憶さ
れた指令に関連付けられたデータを記憶する出力キュー
を更に含むようにしてもよい。本発明のシステムでは、
アドレス・コントローラは、当該アドレス・コントロー
ラの出力キューに記憶されたデータ転送指令に関連付け
られたデータを含むデータ・コントローラ出力キューに
おける位置を示すポインタを含み;かつタグ・コントロ
ーラ・ロジックは、ポインタを用いて、インバウンド・
コピーバック要求に関連付けられたデータを包含してい
るデータ・コントローラにおける位置を決定するように
してもよい。本発明のシステムでは、アドレス・コント
ローラ出力キューは、データ・コントローラ出力キュー
よりも大きくサイズが決められるようにしてもよい。
【0011】本発明のシステムでは、タグ・コントロー
ラは、インバウンド・コピーバック・オペレーションが
アドレス・コントローラ入力キューの最高部に到達する
ときに補助タグ出力バッファに記憶されたアドレス情報
とインバウンド・コピーバック・オペレーションに関連
付けられたメモリ位置情報の間で一致が存在するかどう
かを決定するようにしてもよい。また、本発明の上記目
的は、共有メモリ資源を有しているマルチ・プロセッサ
・システムにおいて接続されたプロセッサによってコピ
ーバック要求をサービスする方法であり、プロセッサが
中央処理装置とマルチ・プロセッサ・コンピュータ・シ
ステムの間でデータ、アドレス及び指令情報をそれぞれ
転送するデータ・コントローラ及びアドレス・コントロ
ーラを含んでいる、該方法であって:(a)ライトバッ
ク及びコピーバック・オペレーションに関連付けられた
アドレス情報で補助タグ出力バッファをロードし;
(b)アドレス・コントローラによってコピーバック要
求を受け取り;(c)コピーバック要求に関連付けられ
たアドレス情報との一致に対して補助タグ出力バッファ
・アドレス情報をチェックし;(d)一致が検出されな
いならば、中央処理装置によってコピーバック要求を処
理し;かつ(e)一致が検出されたならば、(e1)ア
ドレス・コントローラによってコピーバック応答を、中
央処理装置によって処理することなく、生成し;かつ
(e2)マルチ・プロセッサ・コンピュータ・システム
への発行のためにアドレス・コントローラのアウトバウ
ンド・キューにコピーバック応答を記憶する段階を具備
する方法によって達成される。
【0012】本発明の方法では、段階(b)は、中央処
理装置によって処理するためにインバウンド・データ要
求のキューの中にコピーバック要求をロードすることを
含み;かつ段階(c)は、コピーバック要求がインバウ
ンド・データ要求のキューの最高部に到達することによ
り実行されるようにしてもよい。本発明の方法では、
(f)中央処理装置とマルチ・プロセッサ・コンピュー
タ・システムの間で転送されるデータをデータ・コント
ローラにおける複数の位置に記憶する段階を含み;段階
(a)は、その中にロードされたアドレス情報が第1の
コピーバック応答に関連付けられるならば補助タグ出力
バッファにフラグを設定することを含み;かつ段階
(e)は、:補助タグ出力バッファ・フラグが関連コピ
ーバック・オペレーションを示して設定されるかどうか
を段階(e2)の前に決定し;かつフラグが設定される
ならば、第1のコピーバック応答に関連付けられたデー
タを含むデータ・コントローラにおける同じ位置を示し
ている第2のコピーバック応答を生成することを更に含
むようにしてもよい。
【0013】更に、本発明の上記目的は、共有メモリ資
源を有しているマルチ・プロセッサ・システムにおいて
接続されたプロセッサによってコピーバック要求をサー
ビスする方法であり、プロセッサが中央処理装置とマル
チ・プロセッサ・コンピュータ・システムの間でデー
タ、アドレス及び指令情報をそれぞれ転送するデータ・
コントローラ及びアドレス・コントローラを含んでい
る、該方法であって:(a)ライトバック及びコピーバ
ック・オペレーションに関連付けられたアドレス情報で
補助タグ出力バッファをロードし、ローディング段階
は、コピーバック応答及びライトバック要求がマルチ・
プロセッサ・コンピュータ・システムへの発行の前に中
央処理装置によって生成されるときに実行され;(b)
中央処理装置とマルチ・プロセッサ・コンピュータ・シ
ステムの間で転送されるデータをデータ・コントローラ
における複数の位置に記憶し;(c)アドレス・コント
ローラによってコピーバック要求を受け取り;(d)コ
ピーバック要求に関連付けられたアドレス情報との一致
に対して補助タグ出力バッファ・アドレス情報をチェッ
クし;(e)一致が検出されないならば、中央処理装置
によってコピーバック要求を処理し;かつ(f)一致が
検出されたならば、(f1)コピーバック応答に関連付
けられたデータを含んでいるデータ・コントローラにお
ける位置を決定し;(f2)アドレス・コントローラに
よってコピーバック応答を、中央処理装置によって処理
することなく、生成し;かつ(f3)マルチ・プロセッ
サ・コンピュータ・システムへの発行のためにアドレス
・コントローラのアウトバウンド・キューにコピーバッ
ク応答を記憶する段階を具備する方法によって達成され
る。
【0014】本発明の方法では、段階(c)は、中央処
理装置によって処理するためにインバウンド・データ要
求のキューの中にコピーバック要求をロードすることを
含み;かつ段階(d)は、コピーバック要求がインバウ
ンド・データ要求のキューの最高部に到達することによ
り実行されるようにしてもよい。本発明の方法では、段
階(a)は、その中にロードされたアドレス情報がライ
トバック・オペレーションに関係付けられるならば補助
タグ出力バッファにフラグを設定することを含み;かつ
段階(e)は、補助タグ出力バッファ・フラグが設定さ
れるかどうかを決定し、関連ライトバック・オペレーシ
ョンを示し、かつフラグが設定されないならば、コピー
バック要求に関連付けられたアドレス情報で補助タグ出
力バッファをロードすることを含むようにしてもよい。
【0015】
【作用】纏めると、本発明は、キャッシュ・サブシステ
ムでライトバック及びコピーバック指令を処理する関連
スヌープ・アーキテクチャ及び複数のタグ・バッファを
伴うバッファを利用することによってマルチ・プロセッ
サ・コンピューティング・システムのコピーバック性能
を改良する方法及び装置である。各セントラル・プロセ
ッサは、主メモリ及びシステム・コントローラにシステ
ム・アドレス及び制御バスを介して接続される。各中央
プロセッサに関連付けられるのは、システム・インター
フェイス、主キャッシュ及び関連タグ・アレーを含むキ
ャッシュ・サブシステムである。システム・インターフ
ェイスは、それぞれがマルチ・プロセッサ・コンピュー
ティング・システムで用いる中央処理装置とシステム制
御及びデータ・バスとの間をインターフェイスする個別
の入力及び出力キューを有している、アドレス・コント
ローラ及びデータ・コントローラを有する。アドレス・
コントローラは、また、主キャッシュに関連付けられた
タグをミラーする一組の重複タグと、補助タグ入力バッ
ファ及び補助タグ出力バッファとを含む。アドレス・コ
ントローラは、出力キューの各ラインに対して、データ
を転送するそれら出力キュー指令に関連付けられるデー
タが記憶されるところのデータ・コントローラにおける
位置を示す関連ポインタを有する。好ましい実施例で
は、ライトバック・バッファは、多重コピーバック要求
をサービスするために利用される。読取りミスにより、
補助タグ入力バッファは、置換されるキャッシュ・ライ
ンに関連付けられたタグ情報でロードされ、かつ出力キ
ューからシステム制御バスへのライトバックの発行によ
りその後クリアされる。補助タグ出力バッファは、アド
レス・コントローラへのプロセッサによるコピーバック
応答またはライトバック要求の発行によりロードされ
る。補助タグ出力バッファは、アドレス情報並びにタグ
がライトバックまたはコピーバックを示すかどうかに関
連付けられたフラグを含む。オペレーションでは、アド
レス・コントローラは、セントラル・プロセッサにその
関連主キャッシュからデータをアクセスすることを必要
としないで複数のインバウンド・コピーバック要求を処
理する。アドレス・コントローラは、コピーバック・デ
ータ及びタグ情報を記憶するためにアドレス及びデータ
・コントローラ並びに補助タグ・バッファにおける出力
キューを利用する。
【0016】
【実施例】図1を参照すると、本発明のキャッシュ・ア
ーキテクチャを組み込んでいるマルチ・プロセッサ・コ
ンピュータ・システム100が示されている。マルチ・
プロセッサ・コンピュータ・システム100は、複数の
プロセッサ102、複数のメモリ・バンク106に分割
されうる主メモリ104、システム・データ・バス10
8及びシステム制御バス110を含む。システム・デー
タ・バス108及びシステム制御バス110は、プロセ
ッサ102を主メモリ104に相互接続する。システム
制御バス110は、プロセッサ102にアドレス及び制
御情報を転送する。更に、システム制御バス110は、
プロセッサと主メモリ104間にアドレス情報を送る。
システム・データ・バス110は、プロセッサ102と
主メモリ104の間にデータ経路を供給する。システム
・バス(108及び110)のそれぞれは、独立して動
作する。
【0017】図2を参照すると、本発明の好ましい実施
例によるプロセッサのためのアーキテクチャが示されて
いる。プロセッサ102は、アドレス・コントローラ2
00、データ・コントローラ202、及び中央処理装置
(CPU)204を含む。アドレス・コントローラ20
0は、CPUと他のシステム資源の間にCPU指令及び
制御情報の転送を許容するようにシステム制御バス11
0に双方向制御バス210を介して接続される。データ
・コントローラ202は、プロセッサ102の中へまた
はそれから外へのデータの伝送を許容すべくシステム・
データ・バス108に双方向バス220によって接続さ
れる。アドレス・コントローラは、アドレス・コントロ
ーラ200とCPU204の間の制御信号の双方向フロ
ーを許容する制御データ・バス230によってCPU2
04に接続される。同様に、データ・コントローラ20
2は、双方向データ・バス240によってCPUに接続
される。
【0018】そして、中央処理装置は、キャッシュ・コ
ントローラ270を介して主キャッシュ・メモリ250
に結合される。主キャッシュ・メモリ250は、データ
を記憶するための複数のキャッシュ・ラインを含む。好
ましい実施例では、主キャッシュ・メモリ250は、犠
牲になったキャッシュ・ラインに記憶されたダーティ・
データに対するライトバック指令を生成するライトバッ
ク・キャッシュである。主キャッシュ・メモリ250
は、アレー260に記憶される一組のE−タグをそれに
関連付けた。E−タグは、主キャッシュ・メモリ250
における各エントリのアドレス及び状態を含んでいる情
報を包括する。図3をここで参照すると、本発明の好ま
しい実施例によるデータ・コントローラ202のブロッ
ク図が示されている。データ・コントローラ202は、
インバウンド・バッファ300及びアウトバウンド・バ
ッファ302を含む。インバウンド・バッファ300
は、種々の読取り及び他のデータ転送オペレーションの
一部としてCPUによって読み取られるべきデータを受
け取る。この実施例では、インバウンド・バッファは、
それぞれが64バイトのデータを保持する8キャッシュ
・ラインとしてサイズが決められる。
【0019】アウトバウンド・データ・バッファ302
は、マルチ・プロセッサ・システムにおける主メモリま
たは他のプロセッサへの伝送のための非コヒーレント、
非キャッシュド及びI/Oアドレス空間書込みデータ並
びにライトバック及びコピーバック・データを保持する
ために利用される。好ましい実施例では、アウトバウン
ド・バッファ302は、各キャッシュ・ラインが64バ
イトを有する、8キャッシュ・ラインのサイズである。
システム・インターフェイス(System Interface)304
は、マルチ・プロセッサ・コンピュータ・システムのデ
ータ・コントローラ202と他の構成要素との間のデー
タの転送のために双方向データ・バス220をインバウ
ンド及びアウトバウンド・キュー300及び302に接
続する。CPUインターフェイス(Interface) 305
は、データ・コントローラ202とCPU204の間の
データの転送のためにインバウンド及びアウトバウンド
・キュー300及び302にデータ・バス240を接続
する。更に、データ・コントローラは、データ・バス2
40からシステム・データ・バス108へのデータの直
接伝送を許容するバイパス・バス306及び制御ロジッ
ク308を含む。
【0020】ここで図4を参照すると、本発明の一実施
例によるアドレス・コントローラが示されている。アド
レス・コントローラ200は、インバウンド・キュー4
00、アウトバウンド・キュー402、システム・イン
ターフェイス404及びCPUインターフェイス405
を含む。システム・インターフェイス404は、双方向
制御バス210に接続され、マルチ・プロセッサ・コン
ピュータ・システムのアドレス・コントローラ200と
他の構成要素の間でアドレス及び制御情報の転送を許容
する。CPUインターフェイス405は、アドレス・コ
ントローラ200とCPU204の間でアドレス及び制
御情報の転送を許容すべく制御データ・バス230に接
続される。インバウンド・キュー400は、制御バス4
06及び408によりシステム・インターフェイス40
4及びCPUインターフェイスに接続されている。同様
に、アウトバウンド・キュー402は、データ・バス4
07及び409によりシステム・インターフェイス40
4及びCPUインターフェイス405に接続されてい
る。好ましい実施例では、インバウンド・キュー400
は、64ライン深さにサイズが決められる。好ましい実
施例では、アウトバウンド・キューは、18深さにサイ
ズが決められる。プロセッサから発行された全ての指令
及び制御信号がデータ・コントローラ202に記憶され
ることが必要である関連データ・ブロックを有するとは
かぎらないので、アウトバウンド・キュー402は、デ
ータ・コントローラ202におけるアウトバウンド・バ
ッファより大きくサイズが決められる。
【0021】アドレス・コントローラ200は、また、
ポインタ・アレー410を含む。ポインタ・アレー41
0は、アドレス・コントローラのインバウンド及びアウ
トバウンド・キューに記憶された各対応指令に関連付け
られたデータ・コントローラ202における位置を示す
複数のポインタ411を含む。アドレス・コントローラ
200は、重複タグ・バッファ415、補助タグ入力バ
ッファ420、補助タグ出力バッファ430及びタグ・
コントローラ440を更に含む。タグ・コントローラ4
40に接続されるのは、タグ・コントローラにデータ・
バス406、408及び409上でそれぞれスヌープさ
せる3つのスヌープ・バス446、448及び449で
ある。重複タグ・バッファ415は、重複タグ情報を包
含しかつ主キャッシュ250に関連付けられたE−タグ
情報をミラーする。重複タグ及びスヌープ・バスの機能
は、以下に詳述する。
【0022】補助タグ入力バッファ420は、ライトバ
ック・データに対するタグ情報を記憶する。同様に、補
助タグ出力バッファ430は、ライトバックまたはコピ
ーバック・データに関連付けられたタグ情報を記憶す
る。好ましい実施例では、バッファ420及び430
は、それぞれ一つのタグを記憶すべくサイズが決められ
るが、代替実施例ではバッファ420及び430の大き
なバージョンを用いることができる。
【0023】図5を参照すると、補助タグ入力及び出力
バッファに記憶されるべきデータのフォーマットが示さ
れている。補助入力タグ500は、アドレスが有効であ
りかつ書戻されるべきダーティ・キャッシュ・ラインに
対するものであることを示している“所有された”ビッ
ト504及びアドレス・ビット[40:6]502を含
む。補助出力タグ550は、アドレス・ビット[40:
6]552、有効ビット554、コピーバック/ライト
バック・ビット556、データ保留ビット558及びデ
ータ・コントローラ・ポインタ559を含む。有効ビッ
トは、有効アドレスを示す。コピーバック/ライトバッ
ク・ビット556は、データが書戻されなければならな
いかどうかまたはそれが先のコピーバックに対するだけ
であるか否かを示す。データ保留ビット558は、デー
タがCPUからまだ到着していないか否かを示す。そし
て、データ制御ポインタ559は、コピーバックに対し
てどのバッファにデータが位置決めされるを示す。
【0024】図5は、また、アドレス・コントローラの
アウトバウンド・キューに記憶されるようなインバウン
ド指令560及びアウトバウンド要求570及び応答5
80に対するフォーマットを示す。補助タグ入力バッフ
ァ及び補助タグ出力バッファの機能並びにアウトバウン
ド指令は、ライトバック及びコピーバック・オペレーシ
ョンに関して以下に詳細に説明する。
【0025】ライトバック・オペレーション ライトバック・オペレーションは、キャッシュ・ミスに
より起動されうる。読取りミスは、読取り要求がCPU
204によってなされかつ主キャッシュ250が読取り
要求に関連付けられた情報を包含しないときに発生す
る。キャッシュ・コントローラ270は、犠牲にされる
べき主キャッシュ250のキャッシュ・ラインを決定し
かつ犠牲になったキャッシュ・ラインがダーティ・デー
タを含むならばライトバック要求を発行する。データ
は、キャッシュに到着以来それが更新されかつ主メモリ
にライトバックされていないときにキャッシュ・ライン
においてダーティである。読取りミスが発生するとき、
プロセッサは、読取られることが望ましいデータに関連
付けられたアドレスを示しているアドレス・コントロー
ラ200に制御データ・バス230を介してアドレス情
報を伝送している読取り要求を発行する。キャッシュ・
コントローラ270は、主キャッシュ250におけるど
のキャッシュ・ラインが読取り要求に関連付けられたデ
ータに対して割り当てられるかを決定すべくその置換ア
ルゴリズムを起動する。先のキャッシュ・ライン状態が
ダーティである場合には、ライトバック要求が起動され
る。先のキャッシュ・ライン状態がクリーンである場合
には、タグが無効(Invalid) に設定されかつキャッシュ
・ラインが新しいデータ及び関連付けられたタグ情報の
到着により自由に書込まれる。
【0026】アドレス・コントローラ200によるCP
U204からの読取り要求の受け取りにより、CPUイ
ンターフェイス405は、読取り要求をアウトバウンド
・キュー402に転送する。読取り要求は、アウトバウ
ンド・キューの最高部まで到達しかつ主メモリへのメモ
リ要求としてシステムへ発行される。タグ・コントロー
ラ440は、インバウンド読取り要求に関連付けられた
制御バス406上の読取りタグ・データをスヌープす
る。タグ・コントローラ440は、インバウンド要求に
関連付けられた制御バス406上の読取りタグ・データ
をスヌープする。タグ・コントローラ440は、キャッ
シュ・ラインがダーティであるかどうかを決定しかつそ
うであれば補助タグ入力バッファ420の中にその関連
タグ情報をロードする。
【0027】ある地点で、プロセッサ204は、アドレ
ス・コントローラ200に制御バス230を介してライ
トバック指令を発行する。アドレス・コントローラ20
0は、CPUからのライトバック要求を処理して、要求
をアウトバウンド・キュー402の中にロードする。ア
ドレス・コントローラは、データ・コントローラ202
のアウトバウンド・キューにおける利用可能な次の位置
を決定すべくポインタ・アレー410のポインタを評価
する。続いて、ポインタ・アレー410のポインタ41
1は、ライトバック・データを含むデータ・コントロー
ラ・アウトバウンド・キューにおける位置を示すべく指
定される。CPUインターフェイス405からアウトバ
ウンド・キュー402へのライトバック要求の転送中、
タグ・コントローラ440は、データ・バス409上を
スヌープ・バス449を介してスヌープし、かつライト
バック要求に関連付けられたタグ情報で補助出力タグ・
バッファ430をロードする。ライトバック要求が発行
されかつシステム・バスにパスされるときに、補助タグ
入力バッファ420及び補助タグ出力バッファは、クリ
アされてライトバック・オペレーションを終了する。
【0028】コピーバック・オペレーション コピーバック・オペレーションは、所与のプロセッサ2
04に対する主キャッシュ250が更新されかつ、主メ
モリにライトバックされていないデータを含むときに発
生する。コピーバックは、マルチ・プロセッサ・コンピ
ューティング・システムにおける別のプロセッサがその
関連キャッシュにデータを“所有する”プロセッサから
データを要求するときに発生する。コピーバック要求
は、システム制御バス110上で受け取られ、かつイン
バウンド・キュー400における評価及び可能な記憶の
ためにデータ・バス406上にアサートされる。タグ・
コントローラ440は、受け取ったコピーバック要求が
データ・バス406上に最初にアサートされるときにス
ヌープ・バス446を介してデータ・バス406をスヌ
ープする。タグ・コントローラは、要求したメモリ位置
が補助タグ入力バッファ420に記憶されたメモリ位置
と同じであるかどうかまたはメモリ位置がD−タグ41
5に記憶されるかどうかを決定すべく各受け取った読取
り要求を評価する。上述したように、補助タグ入力バッ
ファ420は、アドレス・コントローラにまだ処理され
ていないライトバック・データまたはコピーバック・デ
ータに関連付けられたアドレスを記憶する。
【0029】受け取ったコピーバック要求におけるアド
レス情報とD−タグ・アレー415のD−タグとの間
で、または補助タグ入力バッファ420で一致が発生し
たならば、要求されたデータがこのプロセッサの主キャ
ッシュ250またはデータ・コントローラの出力キュー
302に位置決めされるので、受け取ったコピーバック
要求は、インバウンド・キュー400に記憶される。コ
ピーバック要求は、インバウンド・キュー400を通っ
て達成され、結果としてCPUインターフェイス405
に発行される。インバウンド・キューに配置されたコピ
ーバック要求は、キューの最高部に最終的に到達しかつ
CPUインターフェイス405にパスされる。好ましい
実施例では、タグ・コントローラ440は、インバウン
ド・キュー400の最高部でコピーバック要求に関連付
けられたアドレスが、CPU204へのコピーバック要
求の発行の前に補助タグ出力バッファ430に記憶され
たアドレス情報と同じであるかどうかを見るためにスヌ
ープ・バス448を介してデータ・バス408上でスヌ
ープする。アドレス情報が同じであれば、CPU204
は、同じメモリ位置に対してアドレス・コントローラに
より処理するためにライトバックまたはコピーバックを
既に発行している。従って、コピーバックに関連付けら
れたデータ(プロセッサ204によって発行された先の
ライトバックまたはコピーバック指令に関連付けられた
同じデータである)は、データ・コントローラ202の
アウトバウンド・キューの一部分に常駐する。従って、
CPUインターフェイスのロジックは、中央プロセッサ
により処理することなく、コピーバック応答を生成し、
かつアウトバウンド・キュー402にコピーバック応答
を記憶する。生成されたコピーバック応答は、先のライ
トバックまたはコピーバックに関連付けられたデータを
含むデータ・コントローラの同じ位置を参照する。
【0030】タグ・コントローラ440がそのスヌープ
・オペレーションにおいて受け取ったコピーバック指令
のアドレス及び補助タグ出力バッファ430は、異なる
アドレス情報を含むということを決定するならば、コピ
ーバック要求は、CPU204によって処理され、かつ
プロセッサは、コピーバック応答としてコピーバック要
求に関連付けられたデータを発行する。CPU204
は、CPUインターフェイス405を介してアドレス・
コントローラ200にコピーバック応答指令を発行する
ことによってコピーバック要求をサービスする。アドレ
ス・コントローラ200は、コピーバック応答を処理し
て、アウトバウンド・キュー402の中に要求をロード
し、かつコピーバック要求に関連付けられたデータを記
憶すべくデータ・コントローラにおける位置をCPUに
示す。アドレス・コントローラ200は、データ・コン
トローラ202のアウトバウンド・キューにおいて利用
可能な次の位置を決定すべくポインタ・アレー410の
ポインタを評価する。その後、ポインタ・アレー410
のポインタ411は、コピーバック・データを含むデー
タ・コントローラ・アウトバウンド・キューにおける位
置を示すべく指定される。CPUインターフェイス40
5からアウトバウンド・キュー402へのコピーバック
応答要求の転送中、タグ・コントローラ440は、制御
バス409上でスヌープ・バス449を介してスヌープ
し、かつコピーバック要求に関連付けられたタグ情報で
補助出力タグ・バッファをロードする。コピーバック応
答がアウトバウンド・キューの最高部に到達したとき、
それは、発行されかつシステム・バスにパスする。
【0031】コピーバック応答が発行されたとき、コピ
ーバック要求メモリ位置に関連付けられたデータを含む
補助タグ出力バッファ430は、クリアされない。同様
に、コピーバック・アドレスに関連付けられたデータ・
コントローラにおける位置は、また、維持される。これ
は、プロセッサまたはその主キャッシュによるサービス
を必要としないでアドレス・コントローラによってサー
ビスされるべき複数のコピーバック指令の逐次転送を許
容する。補助タグ出力バッファ430は、異なるメモリ
位置への別のコピーバック要求の発行、または逐次ライ
トバック要求により新しい値で最終的に上書きされる。
【0032】ライトバック処理中のコピーバック 先に記述したように、コピーバック要求は、システム制
御バス110を介してアドレス・コントローラ200に
よって受け取られる。タグ・コントローラ440は、コ
ピーバックに関連付けられたアドレスが補助タグ入力バ
ッファ420に存在するかどうかを決定すべくデータ・
バス406上でスヌープする。アドレスが補助タグ入力
バッファ420に存在するならば、読取り要求は、読取
りミス・オペレーションの一部としてプロセッサ204
によって発行される。しかしながら、プロセッサからの
ダーティ・データのライトバックは、まだ発生していな
い。従って、アドレス・コントローラは、コピーバック
指令を処理しかつそれを入力キュー400の中に転送す
る。入力キュー400の最高部に到達することにより、
タグ・コントローラは、コピーバック指令に関連付けら
れたアドレスの補助タグ出力バッファ430における存
在をチェックするためにデータ・バス408をスヌープ
する。
【0033】補助タグ出力バッファ430に記憶された
データのタグ・コントローラのスヌープが、入力キュー
からCPU204へ転送されるコピーバック要求のアド
レスが同じであるということを決定するならば、ライト
バックまたはコピーバック応答のいずれかが同じメモリ
位置に発行される。補助タグ出力バッファ430のタグ
がコピーバック応答を示すならば、アドレス・コントロ
ーラ(CPUインターフェイス405のロジックを用い
て)は、同じメモリ位置に対して対応するコピーバック
応答を生成する。対応するコピーバック応答は、アウト
バウンド・キュー402に発行され、かつコピーバック
要求に応答しているデータ・コントローラ202におけ
るデータの位置をポイントするポインタを示す。補助タ
グ出力バッファ430のタグがライトバックを示してい
るならば、アドレス・コントローラは、ライトバック要
求に関連付けられるデータ・コントローラに記憶された
データを利用しているコピーバック要求に関連付けられ
たコピーバック応答を生成する。代替的に、アドレス・
コントローラは、ライトバックを同じ関連データを有す
るコピーバック応答に変換し、かつ要求しているCPU
にデータの所有権を転送しうる。この代替実施例では、
ライトバックは、その後実行される必要がなくかつ所有
権は、要求しているCPUへ転送する。
【0034】ここで図6を参照すると、本発明の好まし
い実施例によるコピーバック・オペレーションに関連付
けられたフローチャートが示されている。コピーバック
要求は、アドレス・コピーバックによって受け取られる
(600)。タグ・コントローラは、一致のために補助
タグ入力バッファ及びD−タグをチェックする(60
2)。一致が検出されたならば、コピーバック要求は、
インバウンド・キューに記憶される(604)。一致が
検出されなかったならば、何も行われない。コピーバッ
ク要求がインバウンド・キューの最高部に到達したと
き、タグ・コントローラは、コピーバック要求に関連付
けられたアドレスが補助タグ出力バッファに記憶された
アドレスと一致するかどうかを見るべくチェックする
(606)。一致が見出されたならば、コピーバック応
答が(CPUインターフェイス405によって)アウト
バウンド・キューの中に記憶されて、補助タグ出力バッ
ファに関連付けられたアウトバウンド・キュー項目に対
するデータと同じデータを示す(620)。同じコピー
バック応答は、補助タグ出力バッファのフラグ556
(図5)が保留ライトバックまたはコピーバック・オペ
レーションを示すかどうかに係わりなく生成されかつア
ウトバウンド・キューに記憶される。
【0035】補助タグ出力バッファとのコピーバック・
アドレスの比較が一致を見出せないならば、要求は、C
PUへの伝送のためにCPUインターフェイスに転送さ
れる(608)。CPUは、コピーバック要求を処理し
かつアウトバウンド・キュー402にCPUインターフ
ェイス405によって次いで記憶される(614)コピ
ーバック応答を発行する(612)。更に、個々に補助
タグ出力バッファ430のコピーバック/ライトバック
・フラグ556(図5)は、その中に記憶された情報が
ライトバックまたはコピーバック応答に関連付けられる
かどうかを決定すべくチェックされる(616)。フラ
グがライトバックを示すならば、補助タグ出力バッファ
に関してなにも行われない(617)。フラグがコピー
バック応答を示すならば、補助タグ出力バッファの内容
は、現行コピーバック要求に対するタグ・データ(アド
レス+関連フラグ)で置換される。
【0036】アウトバウンド・キュー402に記憶され
たコピーバック要求は、アウトバウンド・キューの最高
部まで最終的に到達し、そしてシステムに発行される
(622)。好ましい実施例では、ライトバックは、コ
ピーバックに対して補助タグ出力バッファ及びデータ・
バッファの使用において優先する。従って、プロセッサ
によって発行されたライトバックは、コピーバック・オ
ペレーションに係わりなく、上記したように補助タグ出
力及び入力バッファをロードさせかつクリアさせる。最
悪の場合には、コピーバックは、補助バッファがビジー
であればプロセッサによって処理されることを必要とす
る。本発明は、2〜3の特定な実施例を参照して記述さ
れたが、記述は、本発明の説明のためであり本発明を限
定することを意図しない。添付した特許請求の範囲によ
って規定されたように本発明の真の精神及び範疇から逸
脱することなく種々の変更が当業者に生起されうる。
【0037】
【発明の効果】本発明のプロセッサ・システムは、共有
主メモリを有しているマルチ・プロセッサ・コンピュー
タ・システムにおけるコピーバック性能を改良するプロ
セッサ・システムであって:中央処理装置;中央処理装
置に結合され、データを記憶するライトバック・キャッ
シュ・メモリ;中央処理装置に結合され、当該中央処理
装置とマルチ・プロセッサ・コンピューティング・シス
テムの間でデータを転送するデータ・コントローラ;及
び中央処理装置に結合され、当該中央処理装置とマルチ
・プロセッサ・・コンピューティング・システムの間で
アドレス及び制御情報を転送するアドレス・コントロー
ラを備え;アドレス・コントローラは、インバウンド・
プロセッサ・アドレス及び指令情報を受け取りかつ記憶
する入力キュー;アウトバウンド・アドレス及び指令情
報を記憶しかつ発行する出力キュー;出力キューにおい
て保留しているコピーバック及びライトバック・オペレ
ーションに関連付けられたアドレス及び状態情報を記憶
する補助タグ出力バッファ;補助タグ出力バッファに記
憶されたアドレス情報と入力キューによって受け取られ
たインバウンド・コピーバック・オペレーションに関連
付けられたメモリ位置情報の間で一致が発生するかどう
かを決定するタグ・コントローラ;及びタグ・コピーバ
ックによるアドレス情報の一致の決定によりライトバッ
ク・キャッシュ・メモリをアクセスすることなくコピー
バック応答を生成するロジックを含み、ロジックは、コ
ピーバック応答を発生してマルチ・プロセッサ・システ
ムへの発行のために該コピーバック応答を出力キューに
配置するので、データを所有するキャッシュがそれ自身
のプロセッサのキャッシュ・メモリ要求をサービスする
ことができ、その結果、マルチ・プロセッサ・コンピュ
ータ・システムにおけるコピーバック性能を向上するこ
とができる。
【0038】本発明の方法は、共有メモリ資源を有して
いるマルチ・プロセッサ・システムにおいて接続された
プロセッサによってコピーバック要求をサービスする方
法であり、プロセッサが中央処理装置とマルチ・プロセ
ッサ・コンピュータ・システムの間でデータ、アドレス
及び指令情報をそれぞれ転送するデータ・コントローラ
及びアドレス・コントローラを含んでいる、該方法であ
って:(a)ライトバック及びコピーバック・オペレー
ションに関連付けられたアドレス情報で補助タグ出力バ
ッファをロードし;(b)アドレス・コントローラによ
ってコピーバック要求を受け取り;(c)コピーバック
要求に関連付けられたアドレス情報との一致に対して補
助タグ出力バッファ・アドレス情報をチェックし;
(d)一致が検出されないならば、中央処理装置によっ
てコピーバック要求を処理し;かつ(e)一致が検出さ
れたならば、(e1)アドレス・コントローラによって
コピーバック応答を、中央処理装置によって処理するこ
となく、生成し;かつ(e2)マルチ・プロセッサ・コ
ンピュータ・システムへの発行のためにアドレス・コン
トローラのアウトバウンド・キューにコピーバック応答
を記憶する段階を具備するので、データを所有するキャ
ッシュがそれ自身のプロセッサのキャッシュ・メモリ要
求をサービスすることができ、その結果、マルチ・プロ
セッサ・コンピュータ・システムにおけるコピーバック
性能を向上することができる。
【0039】本発明の方法は、共有メモリ資源を有して
いるマルチ・プロセッサ・システムにおいて接続された
プロセッサによってコピーバック要求をサービスする方
法であり、プロセッサが中央処理装置とマルチ・プロセ
ッサ・コンピュータ・システムの間でデータ、アドレス
及び指令情報をそれぞれ転送するデータ・コントローラ
及びアドレス・コントローラを含んでいる、該方法であ
って:(a)ライトバック及びコピーバック・オペレー
ションに関連付けられたアドレス情報で補助タグ出力バ
ッファをロードし、ローディング段階は、コピーバック
応答及びライトバック要求がマルチ・プロセッサ・コン
ピュータ・システムへの発行の前に中央処理装置によっ
て生成されるときに実行され;(b)中央処理装置とマ
ルチ・プロセッサ・コンピュータ・システムの間で転送
されるデータをデータ・コントローラにおける複数の位
置に記憶し;(c)アドレス・コントローラによってコ
ピーバック要求を受け取り;(d)コピーバック要求に
関連付けられたアドレス情報との一致に対して補助タグ
出力バッファ・アドレス情報をチェックし;(e)一致
が検出されないならば、中央処理装置によってコピーバ
ック要求を処理し;かつ(f)一致が検出されたなら
ば、(f1)コピーバック応答に関連付けられたデータ
を含んでいるデータ・コントローラにおける位置を決定
し;(f2)アドレス・コントローラによってコピーバ
ック応答を、中央処理装置によって処理することなく、
生成し;かつ(f3)マルチ・プロセッサ・コンピュー
タ・システムへの発行のためにアドレス・コントローラ
のアウトバウンド・キューにコピーバック応答を記憶す
る段階を具備するので、データを所有するキャッシュが
それ自身のプロセッサのキャッシュ・メモリ要求をサー
ビスすることができ、その結果、マルチ・プロセッサ・
コンピュータ・システムにおけるコピーバック性能を向
上することができる。
【図面の簡単な説明】
本発明の更なる目的及び特徴は、以下に示す添付した図
面に関して詳細な説明及び特許請求の範囲から容易に理
解できるであろう。
【図1】本発明によるマルチ・プロセッサ・コンピュー
ティング・システムの図である。
【図2】図1のマルチ・プロセッサ・コンピューティン
グ・システムの個々のプロセッサのブロック図である。
【図3】図2に示したデータ・コントローラのブロック
図である。
【図4】図2に示したアドレス・コントローラのブロッ
ク図である。
【図5】本発明の一実施例に関連して用いられるタグ及
びキュー指令のフォーマットを示す図である。
【図6】本発明の一実施例によるコピーバック・オペレ
ーションのフローチャートである。
【符号の説明】
100 マルチ・プロセッサ・コンピュータ・システム 102 プロセッサ 104 主メモリ 106 メモリ・バンク 108 システム・データ・バス 110 システム制御バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アショク シンガル アメリカ合衆国 カリフォルニア州 94062 レッドウッド シティー レイク ミード ウェイ 711 (72)発明者 ディヴィッド ジェイ ブローニアークジ ーク アメリカ合衆国 カリフォルニア州 94043 マウンテン ヴィュー グラーデ ィス アベニュー 175−11

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 共有主メモリを有しているマルチ・プロ
    セッサ・コンピュータ・システムにおけるコピーバック
    性能を改良するプロセッサ・システムであって:中央処
    理装置;前記中央処理装置に結合され、データを記憶す
    るライトバック・キャッシュ・メモリ;前記中央処理装
    置に結合され、当該中央処理装置と前記マルチ・プロセ
    ッサ・コンピューティング・システムの間でデータを転
    送するデータ・コントローラ;及び前記中央処理装置に
    結合され、当該中央処理装置と前記マルチ・プロセッサ
    ・・コンピューティング・システムの間でアドレス及び
    制御情報を転送するアドレス・コントローラを備え;前
    記アドレス・コントローラは、 インバウンド・プロセッサ・アドレス及び指令情報を受
    け取りかつ記憶する入力キュー;アウトバウンド・アド
    レス及び指令情報を記憶しかつ発行する出力キュー;前
    記出力キューにおいて保留しているコピーバック及びラ
    イトバック・オペレーションに関連付けられたアドレス
    及び状態情報を記憶する補助タグ出力バッファ;前記補
    助タグ出力バッファに記憶されたアドレス情報と前記入
    力キューによって受け取られたインバウンド・コピーバ
    ック・オペレーションに関連付けられたメモリ位置情報
    の間で一致が発生するかどうかを決定するタグ・コント
    ローラ;及び前記タグ・コピーバックによるアドレス情
    報の前記一致の決定により前記ライトバック・キャッシ
    ュ・メモリをアクセスすることなくコピーバック応答を
    生成するロジックを含み、 前記ロジックは、コピーバック応答を発生して前記マル
    チ・プロセッサ・システムへの発行のために該コピーバ
    ック応答を前記出力キューに配置することを特徴とする
    プロセッサ・システム。
  2. 【請求項2】 前記データ・コントローラは、前記アド
    レス・コントローラの前記出力キューに記憶された指令
    に関連付けられたデータを記憶する出力キューを更に含
    むことを特徴とする請求項1に記載のシステム。
  3. 【請求項3】 前記アドレス・コントローラは、当該ア
    ドレス・コントローラの前記出力キューに記憶されたデ
    ータ転送指令に関連付けられたデータを含む前記データ
    ・コントローラ出力キューにおける位置を示すポインタ
    を含み;かつ前記タグ・コントローラ・ロジックは、前
    記ポインタを用いて、前記インバウンド・コピーバック
    要求に関連付けられたデータを包含している前記データ
    ・コントローラにおける位置を決定することを特徴とす
    る請求項2に記載のシステム。
  4. 【請求項4】 前記アドレス・コントローラ出力キュー
    は、前記データ・コントローラ出力キューよりも大きく
    サイズが決められることを特徴とする請求項2に記載の
    システム。
  5. 【請求項5】 前記タグ・コントローラは、前記インバ
    ウンド・コピーバック・オペレーションが前記アドレス
    ・コントローラ入力キューの最高部に到達するときに前
    記補助タグ出力バッファに記憶された前記アドレス情報
    とインバウンド・コピーバック・オペレーションに関連
    付けられたメモリ位置情報の間で一致が存在するかどう
    かを決定することを特徴とする請求項1に記載のシステ
    ム。
  6. 【請求項6】 共有メモリ資源を有しているマルチ・プ
    ロセッサ・システムにおいて接続されたプロセッサによ
    ってコピーバック要求をサービスする方法であり、前記
    プロセッサが中央処理装置と前記マルチ・プロセッサ・
    コンピュータ・システムの間でデータ、アドレス及び指
    令情報をそれぞれ転送するデータ・コントローラ及びア
    ドレス・コントローラを含んでいる、該方法であって: (a)ライトバック及びコピーバック・オペレーション
    に関連付けられたアドレス情報で補助タグ出力バッファ
    をロードし; (b)前記アドレス・コントローラによってコピーバッ
    ク要求を受け取り; (c)前記コピーバック要求に関連付けられたアドレス
    情報との一致に対して前記補助タグ出力バッファ・アド
    レス情報をチェックし; (d)一致が検出されないならば、前記中央処理装置に
    よって前記コピーバック要求を処理し;かつ (e)一致が検出されたならば、 (e1)前記アドレス・コントローラによってコピーバ
    ック応答を、前記中央処理装置によって処理することな
    く、生成し;かつ(e2)前記マルチ・プロセッサ・コ
    ンピュータ・システムへの発行のために前記アドレス・
    コントローラのアウトバウンド・キューに前記コピーバ
    ック応答を記憶する段階を具備することを特徴とする方
    法。
  7. 【請求項7】 前記段階(b)は、前記中央処理装置に
    よって処理するためにインバウンド・データ要求のキュ
    ーの中に前記コピーバック要求をロードすることを含
    み;かつ前記段階(c)は、前記コピーバック要求がイ
    ンバウンド・データ要求の前記キューの最高部に到達す
    ることにより実行されることを特徴とする請求項6に記
    載の方法。
  8. 【請求項8】 (f)前記中央処理装置と前記マルチ・
    プロセッサ・コンピュータ・システムの間で転送される
    データを前記データ・コントローラにおける複数の位置
    に記憶する段階を含み;前記段階(a)は、その中にロ
    ードされたアドレス情報が第1のコピーバック応答に関
    連付けられるならば前記補助タグ出力バッファにフラグ
    を設定することを含み;かつ前記段階(e)は、:前記
    補助タグ出力バッファ・フラグが関連コピーバック・オ
    ペレーションを示して設定されるかどうかを前記段階
    (e2)の前に決定し;かつ前記フラグが設定されるな
    らば、前記第1のコピーバック応答に関連付けられたデ
    ータを含む前記データ・コントローラにおける同じ位置
    を示している第2のコピーバック応答を生成することを
    更に含むことを特徴とする請求項6に記載の方法。
  9. 【請求項9】 共有メモリ資源を有しているマルチ・プ
    ロセッサ・システムにおいて接続されたプロセッサによ
    ってコピーバック要求をサービスする方法であり、前記
    プロセッサが中央処理装置と前記マルチ・プロセッサ・
    コンピュータ・システムの間でデータ、アドレス及び指
    令情報をそれぞれ転送するデータ・コントローラ及びア
    ドレス・コントローラを含んでいる、該方法であって: (a)ライトバック及びコピーバック・オペレーション
    に関連付けられたアドレス情報で補助タグ出力バッファ
    をロードし、前記ローディング段階は、コピーバック応
    答及びライトバック要求が前記マルチ・プロセッサ・コ
    ンピュータ・システムへの発行の前に前記中央処理装置
    によって生成されるときに実行され; (b)前記中央処理装置と前記マルチ・プロセッサ・コ
    ンピュータ・システムの間で転送されるデータを前記デ
    ータ・コントローラにおける複数の位置に記憶し; (c)前記アドレス・コントローラによってコピーバッ
    ク要求を受け取り; (d)前記コピーバック要求に関連付けられたアドレス
    情報との一致に対して前記補助タグ出力バッファ・アド
    レス情報をチェックし; (e)一致が検出されないならば、前記中央処理装置に
    よって前記コピーバック要求を処理し;かつ (f)一致が検出されたならば、(f1)前記コピーバ
    ック応答に関連付けられたデータを含んでいる前記デー
    タ・コントローラにおける位置を決定し;(f2)前記
    アドレス・コントローラによってコピーバック応答を、
    前記中央処理装置によって処理することなく、生成し;
    かつ(f3)前記マルチ・プロセッサ・コンピュータ・
    システムへの発行のために前記アドレス・コントローラ
    のアウトバウンド・キューに前記コピーバック応答を記
    憶する段階を具備することを特徴とする方法。
  10. 【請求項10】 前記段階(c)は、前記中央処理装置
    によって処理するためにインバウンド・データ要求のキ
    ューの中に前記コピーバック要求をロードすることを含
    み;かつ前記段階(d)は、前記コピーバック要求がイ
    ンバウンド・データ要求の前記キューの最高部に到達す
    ることにより実行されることを特徴とする請求項9に記
    載の方法。
  11. 【請求項11】 前記段階(a)は、その中にロードさ
    れたアドレス情報がライトバック・オペレーションに関
    係付けられるならば前記補助タグ出力バッファにフラグ
    を設定することを含み;かつ前記段階(e)は、前記補
    助タグ出力バッファ・フラグが設定されるかどうかを決
    定し、関連ライトバック・オペレーションを示し、かつ
    前記フラグが設定されないならば、前記コピーバック要
    求に関連付けられたアドレス情報で前記補助タグ出力バ
    ッファをロードすることを含むことを特徴とする請求項
    9に記載の方法。
JP9036260A 1996-02-27 1997-02-20 マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ Pending JPH1031625A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/607364 1996-02-27
US08/607,364 US5765196A (en) 1996-02-27 1996-02-27 System and method for servicing copyback requests in a multiprocessor system with a shared memory

Publications (1)

Publication Number Publication Date
JPH1031625A true JPH1031625A (ja) 1998-02-03

Family

ID=24431961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9036260A Pending JPH1031625A (ja) 1996-02-27 1997-02-20 マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ

Country Status (3)

Country Link
US (1) US5765196A (ja)
EP (1) EP0793178A3 (ja)
JP (1) JPH1031625A (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204403A (ja) * 1996-01-26 1997-08-05 Hitachi Ltd 並列計算機
US5946709A (en) * 1997-04-14 1999-08-31 International Business Machines Corporation Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing
KR19980081499A (ko) * 1997-04-17 1998-11-25 모리시다요이치 메모리 내장 데이터 처리장치 및 처리시스템
EP1454253A4 (en) * 1997-12-19 2010-12-29 Bull Hn Information Syst SYSTEM FOR MANAGING LOST AND PRIVATE CACHING ACCESS IN A MULTIPROCESSOR COMPUTER SYSTEM EMPLOYING PRIVATE CACES FOR SHARED INDIVIDUAL AND SHARED CENTRAL CONTROL UNITS
US6347361B1 (en) * 1998-02-17 2002-02-12 International Business Machines Corporation Cache coherency protocols with posted operations
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US6466993B1 (en) * 1998-11-05 2002-10-15 Compaq Information Technologies Group, L.P. Method and apparatus for performing transactions rendering between host processors and I/O devices using concurrent non-blocking queuing techniques and I/O bus write operations
US6298417B1 (en) * 1998-11-20 2001-10-02 International Business Machines Corporation Pipelined cache memory deallocation and storeback
US6636950B1 (en) * 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
US6725307B1 (en) * 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6401175B1 (en) * 1999-10-01 2002-06-04 Sun Microsystems, Inc. Shared write buffer for use by multiple processor units
US6484238B1 (en) * 1999-12-20 2002-11-19 Hewlett-Packard Company Apparatus and method for detecting snoop hits on victim lines issued to a higher level cache
SE522447C2 (sv) 2000-02-29 2004-02-10 System Edstroem Bilinredningar För uppbyggnad av lådhurtsar avsedd kassett av det slag som hyser en utdragslåda
US7363427B2 (en) * 2004-01-12 2008-04-22 Hewlett-Packard Development Company, L.P. Memory controller connection to RAM using buffer interface
US9270770B2 (en) * 2004-06-30 2016-02-23 Cisco Technology, Inc. System and method for optimizing publication of operating states
US7225300B1 (en) 2004-09-15 2007-05-29 Azul Systems, Inc Duplicate snoop tags partitioned across multiple processor/cache chips in a multi-processor system
JP4366298B2 (ja) 2004-12-02 2009-11-18 富士通株式会社 記憶装置、その制御方法及びプログラム
JP2006185348A (ja) * 2004-12-28 2006-07-13 Fujitsu Ltd マルチプロセッサシステム及びロックフラグ操作方法
US8732409B2 (en) * 2008-11-17 2014-05-20 Entropic Communications, Inc. Cache management policy and corresponding device
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
RU2475822C1 (ru) * 2011-12-08 2013-02-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Подсистема памяти ядра микропроцессора
RU2475817C1 (ru) * 2011-12-08 2013-02-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Устройство буферизации потоков данных, считываемых из озу
JP2014182488A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 演算処理装置、及び演算処理装置の制御方法
AU2015411096A1 (en) * 2015-12-17 2017-07-06 Huawei Technologies Co., Ltd. Write request processing method, processor and computer

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
DE69616402T2 (de) * 1995-03-31 2002-07-18 Sun Microsystems Inc Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
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

Also Published As

Publication number Publication date
US5765196A (en) 1998-06-09
EP0793178A3 (en) 1998-04-15
EP0793178A2 (en) 1997-09-03

Similar Documents

Publication Publication Date Title
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
CA1322058C (en) Multi-processor computer systems having shared memory and private cache memories
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
US5551005A (en) Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
JP3533355B2 (ja) キャッシュ・メモリ・システム
EP0349122B1 (en) Method and apparatus for filtering invalidate requests
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JPH09114736A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ
US5559987A (en) Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US8015364B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
JP2000250883A (ja) 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
JPH11328026A (ja) ホバ―リング(h)及びリ―セント(r)状態を有するキャッシュ・コヒ―レンシ・プロトコル
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US7032079B1 (en) System and method for accelerating read requests within a multiprocessor system
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
US6477622B1 (en) Simplified writeback handling
JPH10232832A (ja) 重複タグ・システム維持方法
US11249908B1 (en) Technique for managing coherency when an agent is to enter a state in which its cache storage is unused