JPH07281956A - 順序付け改良型コヒーレンシ技法 - Google Patents

順序付け改良型コヒーレンシ技法

Info

Publication number
JPH07281956A
JPH07281956A JP7028067A JP2806795A JPH07281956A JP H07281956 A JPH07281956 A JP H07281956A JP 7028067 A JP7028067 A JP 7028067A JP 2806795 A JP2806795 A JP 2806795A JP H07281956 A JPH07281956 A JP H07281956A
Authority
JP
Japan
Prior art keywords
module
bus
transaction
data
cache
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.)
Granted
Application number
JP7028067A
Other languages
English (en)
Other versions
JP3640997B2 (ja
Inventor
Craig R Frink
クレーグ・アール・フリンク
William R Bryg
ウイリアム・アール・ブライグ
Kenneth K Chan
ケネス・ケイ・チャン
Thomas R Hotchkiss
トーマス・アール・ホッチキス
Robert D Odineal
ロバート・ディー・オーディニール
James B Williams
ジェイムズ・ビー・ウイリアムズ
Michael L Ziegler
マイケル・エル・ジグラー
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH07281956A publication Critical patent/JPH07281956A/ja
Application granted granted Critical
Publication of JP3640997B2 publication Critical patent/JP3640997B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 ハ゛ス(112)、メイン・メモリ(115)、ハ゛ス上で受け取っ
たトランサ゛クションに応答するメイン・メモリ制御装置(114)、及びハ゛ス
に接続されたフ゜ロセッサ・モシ゛ュールの集合(116,120)を有するシス
テム(100)で使用されるコヒーレンシ技法を提供する。 【構成】 各フ゜ロセッサ・モシ゛ュールはキャッシュ・メモリ(166,170)を有
し、ハ゛ス上で他のフ゜ロセッサ・モシ゛ュール、及びメイン・メモリ制御装置
にコヒーレント・トランサ゛クションを送ることができる。各フ゜ロセッサ・モシ゛
ュールはハ゛ス上でコヒーレント・トランサ゛クションが発行されたことを検出
し、そのコヒーレント・トランサ゛クションのそれぞれに対してキャッシュ・コヒ
ーレンシ検査を実行する。各フ゜ロセッサ・モシ゛ュールはハ゛ス上で発行さ
れた全てのトランサ゛クションを記憶し、先入れ先出しの順でそ
のトランサ゛クションに関するコヒーレンシ検査を実行するためのコヒーレン
シ待ち行列(164,168)を有する。モシ゛ュールがハ゛ス上にコヒーレント・
トランサ゛クションを送ると、モシ゛ュールは自身のトランサ゛クションを自身の
コヒーレンシ待ち行列に置く。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・システ
ムに関し、より詳しくは、1つ以上のプロセッサがキャ
ッシュ・メモリを備える共用メモリ多重プロセッサ・コン
ピュータに関する。
【0002】
【従来の技術】コンピュータ・システムは通常、プロセ
ッサ、メモリ、及び入出力装置のような複数の構成要
素、及び2つ以上の構成要素間において情報を転送する
ための共用バスを備えている。これらの構成要素は通
常、それぞれ、1つ以上のプロセッサ、メモリ、及び入
出力装置を含むことが可能な、構成要素モジュールの形
態でバスに接続されている。情報はバス「サイクル」の間
に、構成要素モジュール間においてバス上で送られる
が、各バス・サイクルは、その間にモジュールがバスの
制御を有し、バス上で限られた量の情報を転送、又は駆
動することができる期間である。所定のサイクルの間に
バスの制御を有するモジュールは、バス所有者と呼ばれ
る。
【0003】構成要素モジュールは、一般に、「読み取
り」及び「書き込み」トランザクションのような、完了に
1サイクル以上を要する「トランザクション」の形態で、
バスを介して、互いに通信を行う。例えば、典型的な読
み取りトランザクションの場合、あるモジュールは、バ
ス上で、メイン・メモリ制御装置、又は獲得する必要の
あるデータを識別し、かつ識別されたデータを送るよう
に要求する別のモジュールに信号を送る。次に、応答モ
ジュールが、その要求を処理し、1つ、又は以降の複数
サイクルの間にそのデータをリターンする。従来の多く
のバスは、応答が必ずしも要求の直後とは限らない、
「分割トランザクション」に適応する。例えば、モジュー
ルは読み取りトランザクションを開始した後、バスの制
御を放棄し、応答モジュールが、要求されたデータをリ
ターンする準備ができるまで、他の目的にバスを使用す
ることを可能にする。この時点で応答モジュールは、バ
スの制御を獲得し、要求されたデータを要求モジュール
に送る。
【0004】多くのコンピュータ・システムでは、シス
テム上で稼働するソフトウェアは、メイン・メモリを共
用する2つ以上のメイン・プロセッサ・モジュールによっ
て実行される。メイン・プロセッサは通常、共用バスに
直接接続されている。メイン・メモリは通常、メイン・メ
モリ制御装置を介してバスに接続されている。プロセッ
サがメイン・メモリからデータを読み取り、又はメイン・
メモリにデータを書き込む場合、プロセッサはメイン・
メモリ制御装置と通信を行わなければならない。このタ
イプのシステムは、しばしば「共用メモリ多重プロセッ
サ」システムと呼ばれる。
【0005】プロセッサ・モジュール、又は入出力モジ
ュールは、モジュールによる迅速なアクセスに備えて、
頻繁に使用されるデータ値を記憶するキャッシュ・メモ
リを備えることも可能である。通常、キャッシュ・メモ
リは、頻繁に使用されるデータ、及びこれらのデータ項
目が記憶されているメイン・メモリのアドレスの両方を
記憶している。モジュールが、メモリのアドレスからデ
ータをシークする場合、そのデータに関連するアドレス
を使用して、キャッシュ・メモリからデータを要求す
る。キャッシュ・メモリは、そのアドレスに関連したデ
ータを保持しているかどうかを確かめるために検査を行
う。保持していれば、キャッシュ・メモリは、要求され
たデータを直接プロセッサにリターンすることが可能で
ある。キャッシュ・メモリが所望の情報を含んでいない
場合(即ち、「キャッシュ・ミス」が生じている場合)、通
常のメモリ・アクセスが生じる。キャッシュ・メモリは通
常、メイン・メモリ(一般的にはRAM)のアクセスが、マイ
クロプロセッサの速度に比較して遅い場合に有効であ
る。キャッシュ・メモリは、メインRAMメモリより高速で
ある。
【0006】各プロセッサがキャッシュ・メモリを有す
る共用メモリ多重プロセッサにおいて、この状況は多少
複雑になる。こうしたシステムにおいて、特定のトラン
ザクションに必要とされるデータは、1つ以上のキャッ
シュ・メモリ、及び/又はメイン・メモリに記憶されう
る。プロセッサによって操作されてきた、キャッシュ・
メモリ内のデータは、メイン・メモリに記憶されている
値とは異なる値を生じる可能性がある。一般に、これら
のプロセッサ上で稼働するソフトウェアは、特定のアド
レスに関連したデータに関して、その最新の値を使用し
なければならない。従って、プロセッサは、他のプロセ
ッサによって使用されていた可能性のあるデータをシー
クする毎に、プロセッサに提供されたデータが最新のも
のであることを保証するための処理「キャッシュ・コヒー
レンシ技法」を実施する必要がある。
【0007】典型的なコヒーレンシ技法では、モジュー
ルによってデータが要求されると、キャッシュ・メモリ
を有する各モジュールが、そのキャッシュ・メモリの「コ
ヒーレンシ検査」を行って、要求されたアドレスに関連
するデータを有しているかどうかを判定し、そのコヒー
レンシ検査の結果を報告する。各モジュールは通常、メ
イン・メモリ、及び他のキャッシュ・メモリに記憶されて
いる、同じアドレスに関連したデータについて、そのキ
ャッシュ・メモリに記憶されているデータの状況の記録
を保持し、報告する。例えば、モジュールは、そのデー
タが「専用」(即ち、データがそのモジュールだけに使用
可能である)か、又は「共用」(即ち、そのデータが、同時
に2つ以上のキャッシュ・メモリに存在し得る)かを報告
することが可能である。モジュールは又、そのデータが
「クリーン」(即ち、メイン・メモリに記憶されている同じ
アドレスに関連したデータと同じである)か、又は「ダー
ティ」(即ち、そのデータが、取得後に操作されている)
かを報告することも可能である。通常、所与のどの時点
においても、データの専用ダーティ・コピーは1つだけ
許可される。「コヒーレント・トランザクション」は、例
えばメモリ読み取りといった、要求されたプロセッサに
送るべきデータ源を決定するために、全てのメモリの検
査を要求する、任意のトランザクションである。
【0008】コヒーレント・トランザクションは通常、
任意の有効なバス・サイクルの間に発行されうる。しか
し、モジュールの中には、内部的にビジー状態であり、
即時にそのトランザクションのコヒーレンシ検査を実施
できないものもあり、キャッシュ・コヒーレンシ検査を
完了するのに数サイクルを要する可能性がある。コヒー
レント・トランザクションが発行されうる速度に適応す
るため、モジュールが、コヒーレンシ検査が実行される
まで、コヒーレント・トランザクションを記憶するため
のキャッシュ・コヒーレンシ待ち行列を有する場合もあ
る。
【0009】各モジュールによって実行されたコヒーレ
ンシ検査の結果は分析され、データを要求したモジュー
ルに最新のデータが提供される。例えば、キャッシュ・
メモリに、要求されたデータのコピーがなければ、その
データはメイン・メモリから供給されることになる。モ
ジュールが専用ダーティ・コピーを有する場合、通常そ
のデータが供給される。そのデータが供給されると、各
モジュールは通常、そのキャッシュ・メモリ内のデータ
の状況を更新する。例えば、データの専用ダーティ・コ
ピーがメイン・メモリにコピーされると、それはクリー
ン・コピーとなる。
【0010】モジュール内のキャッシュ・コヒーレンシ・
ハードウェアにおける遅延によって、多重プロセッサ・
システムに順序問題を生じる可能性がある。上述のよう
に、ハードウェアは、要求された特定のデータ全てに関
して、最新バージョンのデータ供給を保証しなければな
らない。これは、高度にパイプライン化されたシステム
の場合、バス上で発行されたトランザクションに対する
応答遅延が避けられないために問題となる場合がある。
【0011】あるモジュールが特定データ・ラインのコ
ヒーレント読み取りを、別のモジュールが同じデータ・
ラインのダーティ・コピーをライト・バックするのとほぼ
同時に発行する場合、1つの問題が生じる可能性があ
る。ダーティ・コピーは最新であるため、それがコヒー
レント読み取りに応答して供給されるべきである。しか
し、前記書き込みが実行される前に、メモリが前記読み
取りに応答し、既にそのデータ・ラインが「引き渡されて
いる」ため、別のモジュール(即ち、データ・ラインのダ
ーティ・コピーをライト・バックするモジュール)が、コ
ヒーレンシ検査の実行時に競合(conflict)を検出しなか
った場合、最初の要求モジュールは、メモリから間違っ
た「失効(stale)」データを得ることになる。プロセッサ
が間違ったデータに基づいて操作を行う場合、この「順
序」問題によって、間違った結果を生じる可能性がある
のは明白である。
【0012】従来のシステムは、様々な技法を用いて上
記の順序問題を回避してきた。従来の技法には、それぞ
れ欠点がある。システムによっては、1回に1つのコヒ
ーレント・トランザクションしか発行できず、前のコヒ
ーレント・トランザクションについて全てのコヒーレン
シの報告が完了するまで、新しいコヒーレント・トラン
ザクションを発行することができないものもある。この
技法では、利用可能なバスの帯域幅を狭くする、従って
性能を制限するという犠牲を払って、適正な順序でトラ
ンザクションを処理し、最新のデータが供給されること
を保証している。
【0013】他のシステムでは、モジュールが、新しい
トランザクションを発行する前に、競合の可能性につい
て未完了のトランザクションを検査する必要がある。例
えば、プロセッサは、キャッシュ・ラインのライト・バッ
クを発行する前にチェックを行い、同じキャッシュ・ラ
インについて未完了のコヒーレント読み取りがないこと
を確認する。この制約は、潜在的なトランザクション発
行速度も低下させ、このため性能が制限され、かつモジ
ュールの複雑さが増すことになる。
【0014】従って、コヒーレント・トランザクション
が発行される速度を制限せず、かつ各モジュールが本来
の速度でキャッシュ・コヒーレンシ検査を処理できる、
パイプライン化分割トランザクション・バスのためのコ
ヒーレンシ技法が必要とされる。
【0015】
【発明が解決しようとする課題】従って、本発明の課題
は、順序改良型のコヒーレンシ技法を提供することであ
る。
【0016】本発明の別の課題は、トランザクションが
トランザクションの発行時間に基づいて順序付けされ
る、順序付けされたコヒーレンシ技法を提供することで
ある。
【0017】本発明の更に別の課題は、コヒーレント・
トランザクションに過度の待ち時間を加えることのない
順序付けされたコヒーレンシ技法を提供することであ
る。
【0018】本発明の更に別の課題は、各モジュールが
本来のペースで、コヒーレンシ検査に応答することがで
きるような、順序付けされたコヒーレンシ技法を提供す
ることである。
【0019】本発明のこれら、及びその他の課題は、本
発明、及び好的実施例に関する以下の詳細な説明、添付
図面、及び特許請求の範囲から当業者には明らかになろ
う。
【0020】
【課題を解決するための手段】概して言えば、本発明
は、順序付けされたコヒーレンシ技法を実現するもので
ある。このコヒーレンシ技法は、バス、メイン・メモ
リ、バス上で受け取られるトランザクションに応答し
て、メイン・メモリにアクセスするためのメイン・メモリ
制御装置、及びバスに接続された複数のプロセッサ・モ
ジュールを有するシステムで使用される。各プロセッサ
・モジュールは、キャッシュ・メモリを有し、バス上で他
のプロセッサ・モジュール、及びメイン・メモリ制御装置
に対しコヒーレント・トランザクションを送ることが可
能である。各プロセッサ・モジュールは、バス上で発行
されるコヒーレント・トランザクションを検出するため
の手段、及びコヒーレント・トランザクションのそれぞ
れに関して、キャッシュ・コヒーレンシ検査を実行する
ための手段を備えている。各プロセッサ・モジュール
は、バス上で発行される全てのコヒーレント・トランザ
クションを記憶し、先入れ先出しの順で記憶されたトラ
ンザクションのコヒーレンシ検査を実行するためのコヒ
ーレンシ待ち行列を備えている。
【0021】モジュールがバス上でコヒーレント・トラ
ンザクションを送る場合、モジュールは、それ自身のト
ランザクションをそれ自身のコヒーレンシ待ち行列に置
く。従って、各モジュールは正確に同じ順序でコヒーレ
ント・トランザクションを処理する。
【0022】メモリ制御装置は、発行された最新のキャ
ッシュ書き込みと、発行された最新のコヒーレント読み
取りとを照合して、競合の可能性があるか検査し、必要
に応じてトランザクションの順序を再配列し、メモリの
コヒーレント・イメージを保存する。
【0023】本発明は、トランザクションがバス上に発
行された順序によってトランザクションの順序を定義
し、その定義を保存するために必要な動作をとることに
よって、順序問題が回避されるという観測結果に基づく
ものである。モジュールのキャッシュは、バス上でトラ
ンザクションが発行された順序で、コヒーレンシ検査、
及びそれ自身のコヒーレント・トランザクションを処理
することによって定義された順序を保存する。以前に保
持されていた専用ダーティのキャッシュ・データへのラ
イト・バックによって、コヒーレント・メモリ・システム
内におけるデータ位置がちょうど変更されているという
ことが分かると、ほぼ同時に生じている、同じ位置に対
する全ての読み取りの前に、キャッシュのライト・バッ
クが処理される。
【0024】本発明は、1つ以上のプロセッサがキャッ
シュ・メモリを有する、共用メモリ多重プロセッサ・シス
テムに用いられる順序付けされたコヒーレンシ技法を実
現する。各モジュールは、システム・バス上でトランザ
クションが発行される順序で、コヒーレント・トランザ
クションのコヒーレンシ検査を処理するのに加えて、そ
れ自身のトランザクション処理も実施する。
【0025】キャッシュ・メモリを有するプロセッサ、
又は他の構成要素モジュールはそれぞれ、発行されたコ
ヒーレント・トランザクションを記憶するためのキャッ
シュ・コヒーレンシ待ち行列を備えている。トランザク
ションがバス上で発行されると、キャッシュ・メモリを
有する各モジュールが、バス上のトランザクションを検
出し、それを各モジュールのキャッシュ・コヒーレンシ
待ち行列に置く。キャッシュ・コヒーレンシ待ち行列内
のトランザクションに対応するキャッシュ・コヒーレン
シ検査が、先入れ先出しの順で実行される。各モジュー
ルは、本来のペースでキャッシュ・コヒーレンシ検査を
実行することが可能であり、複数のキャッシュ・コヒー
レンシ検査を同時に実行することが可能である。各モジ
ュールは、キャッシュ・コヒーレンシ検査の結果をメイ
ン・メモリ制御装置に送り、トランザクションを発行し
たモジュールに対し、最新のデータ、及びコヒーレンシ
情報を提供する。
【0026】順序を保存するため、コヒーレント・トラ
ンザクションを発行した各モジュールは、それ自身のコ
ヒーレンシ待ち行列にそれ自身のトランザクションを置
く。従って、そのモジュールは、自身のトランザクショ
ンが実行される前に、以前に発行されている全てのコヒ
ーレント・トランザクションに対応するコヒーレンシ検
査を実行する。各モジュールが、バス上で発行されるト
ランザクションを同じ順序でそのコヒーレンシ待ち行列
の中に置くので、各モジュールは、同じ順序でトランザ
クションの発生を知ることになる。
【0027】メモリ制御装置は、発行された最新のキャ
ッシュ書き込みと、発行された最新のコヒーレント読み
取りを照合して、競合の可能性を検査し、必要に応じて
トランザクションの順序を再配列し、メモリのコヒーレ
ント・イメージを保存する。キャッシュ書き込みと以前
のコヒーレント読み取りトランザクションに競合があれ
ば、メモリ制御装置は、コヒーレント読み取りトランザ
クションの前に、キャッシュ書き込みが処理されるよう
に順序の再配列を行って、読み取りトランザクションの
処理がされる前に、メイン・メモリのデータが最新であ
るよう保証する。
【0028】
【実施例】本発明による順序付けされたコヒーレンシ技
法を、例示のコンピュータ・システム10に関連して説明
する。順序付けされたコヒーレンシ技法の説明を行う前
に、コンピュータ・システム10の動作をある程度詳細に
理解しておくことは有用である。
【0029】コンピュータ・システム10は、バス12、及
びバス12に接続された複数の構成要素を有する多重プロ
セッサ・コンピュータである。これらの構成要素は、メ
イン・メモリ制御装置14、入出力モジュール16及び18、
及びプロセッサ・モジュール20、22、24、及び26を含む。こ
れらの構成要素は、バス12上で相互にトランザクション
を送る。
【0030】以下でより詳細に説明するように、メイン
・メモリ制御装置14は「ホスト・モジュール」とみなすこと
ができ、残りの構成要素は「クライアント・モジュール」
とみなすことができる。メイン・メモリ制御装置/ホスト
・モジュールは、もしあれば、所与のサイクルの間にバ
ス上で許可されているトランザクションのタイプを指定
するクライアント・オプション信号を各クライアント・モ
ジュールに送る。所与のサイクルの間におけるバスの所
有者は、そのサイクルを支配するクライアント・オプシ
ョン信号によって許可されるタイプのトランザクション
のみを開始できる。次の有効なサイクルの間におけるバ
スの所有者も、各クライアント・モジュールからの調停
信号、及びバスの制御を保持する必要があるかどうかを
示す現在のバスの所有者によって送られる信号に加え
て、クライアント・オプション信号に基づく調停によっ
て決定される。
【0031】プロセッサ・モジュール20、22、24、及び26
は、コンピュータ・システム10のメイン・プロセッサであ
り、このシステムのためのソフトウェアは全てのプロセ
ッサ上で同時に稼働する。プロセッサ・モジュール20、2
2、24、及び26はそれぞれ、調停信号送信(即ち、ARB)ライ
ン28、30、32、及び34を制御し、ARBラインは、各モジュー
ルを残りのプロセッサ・モジュールに接続する。プロセ
ッサがバス12を使用したい場合、このプロセッサのARB
ライン上の他のプロセッサ・モジュールに所定の信号を
送る。この信号は、次の有効なバス・サイクルの間にお
けるバスの所有者を決定するための調停に使用される。
【0032】入出力モジュール16、及び18は、コンピュ
ータ・システム10と入出力装置(図示せず)の間のインタ
フェイスとして働く。入出力モジュール16、及び18はそ
れぞれ、入出力アダプタを含んでいる。入出力モジュー
ル16、及び18はそれぞれ、ARBライン36、及び38を制御
する。入出力モジュールがバス12を使用したい場合、こ
の入出力モジュールのARBライン上の残りのクライアン
ト・モジュールに所定の信号を送る。この信号は調停に
使用される。
【0033】メイン・メモリ制御装置14は従来の方法
で、メイン・メモリ(図示せず)から情報を読み取り、メ
イン・メモリに情報を記憶する責任がある。メイン・メモ
リ制御装置14は直接、又は従来型のバスを介してメモリ
とのインタフェイスを行う。上述のように、メイン・メ
モリ制御装置14は、バス制御のためにホスト・モジュー
ルとしても働くことが好ましい。メイン・メモリ制御装
置14は、各クライアント・モジュールに直接接続されたC
LIENT_OPライン40を制御する。メイン・メモリ制御装置1
4は、次の有効なバス・サイクルの間にバス12上にどんな
タイプのトランザクションを置いていいかを示すための
信号を、CLIENT_OPライン40上の各クライアント・モジュ
ールに送る。
【0034】バス12は高性能のプロセッサ-メモリ入出
力相互接続バスである。バス12は、分割トランザクショ
ン・バスである。例えば、バス12上で読み取りトランザ
クションが発行された後、その読み取りトランザクショ
ンを発行したモジュールがバスを放棄して、他のモジュ
ールが他のトランザクションのためにバスを使用できる
ようにする。要求されたデータが使用可能である場合、
その読み取りトランザクションに関する応答モジュール
はバスの調停を行い、次にデータを送る。書き込みトラ
ンザクションは分割されておらず、従って、このマスタ
はアドレス・サイクルの直後に書き込みデータを送る。
【0035】バス12は、メイン・にデータ転送に関係す
る、ADDR_DATAバス、MASTER_IDバス、及びTRANS_IDバス
の少なくとも3つのバスを含むことが好ましい。バス12
は又、バス12の制御の調停に関係するLONG_TRANSバスも
含む。
【0036】ADDR_DATAバスはアドレス情報、及びデー
タを送るために使用される。ADDR_DATAバスがアドレス
関連情報を運ぶサイクルを、アドレス・サイクルと呼
び、ADDR_DATAバスがデータを運ぶサイクルをデータ・サ
イクルと呼ぶ。例えば、書き込みトランザクションは一
般に、1回、又は複数回のデータ・サイクルの直前に単
一アドレス・サイクルを有している。バスの所有者は、
データを書き込みたいアドレスを示す書き込みトランザ
クションを開始して、以降のサイクルの間にデータを送
る。読み取りトランザクションは一般に、読み取るため
にシークされるアドレスを示すために、バスの所有者に
よって使用される単一アドレス・サイクルを有してい
る。このアドレス・サイクルの少し後に、要求に応答す
るモジュールによって要求モジュールにデータが送られ
る1回、又は複数回のデータ・サイクルが続く。アドレ
ス関連情報やデータが送られないアイドル・サイクルも
発生する。
【0037】MASTER_IDバス、及びTRANS_IDバスは、分
割トランザクションに関して、リターンされたデータが
元のトランザクションに固有に関連付けられるように一
緒に使用される。各分割トランザクション「読み取り」
は、トランザクションを発行しているモジュールを識別
するMASTER_IDバス上のMASTER_ID信号、及びそのモジュ
ールによって送られた他のトランザクションと前記トラ
ンザクションを区別するTRANS_IDバス上のTRANS_ID信号
によって識別される。例えば、分割トランザクション
「読み取り」は、MASTER_ID信号とTRANS_ID信号の固有の
組合せと共に送られる。MASTER_IDとTRANS_IDは次に、
要求されたデータのリターン時に一緒に送られ、その結
果、リターンされたデータが、適当なトランザクション
と関連付けされる。この機構によって、トランザクショ
ンの順序がトランザクションの識別にとって重要なもの
でなくなったため、トランザクションのリターンは、ト
ランザクションが発行された順序以外の順序で戻ってく
ることができる。固有の識別を可能にするには、所与の
トランザクションIDを有するトランザクション1つだけ
が、所与の時点においてモジュールの中で識別可能とな
ることである。しかし、トランザクションはMASTER_ID
によって区別できるので、同じトランザクションIDを2
つ以上の別々のモジュールで同時に使用することができ
る。
【0038】LONG_TRANSは、長いトランザクションが完
了するまで、バス12の制御を保持するために現在のバス
の所有者によって使用される。例えば、モジュールが一
連のサイクルの間に多量のデータを書き込む必要が生じ
ることがある。LONG_TRANSが示されると、以下でより詳
細に説明するように、より高い優先順位のクライアン
ト、又はホストによって、他のトランザクションをその
データの中に挿入させることができなくなる。
【0039】好的実施例では、CLIENT_OPバスは表1に
示した信号をサポートする。
【0040】
【表1】
【0041】ANY_TRANS、HOST_CONTROL、ONE_CYCLE、及
びNONE_ALLOWEDクライアント・オプション信号は比較的
簡単である。ANY_TRANSクライアント・オプション信号
は、関連するサイクルの間に全てのトランザクションが
許可されることを示す。HOST_CONTROLクライアント・オ
プション信号は、関連するサイクルの間にホストがバス
の制御をシークすることを示す。ONE_CYCLEクライアン
ト・オプション信号は、1サイクルのトランザクション
しか許可されないことを示す。NONE_ALLOWEDクライアン
ト・オプション信号は、トランザクションがいっさい許
可されないことを示すために使用される。
【0042】RET_ONLYクライアント・オプション信号
は、以前に保持されていた専用ダーティ・キャッシュ・ラ
インのリターン(ライト・バック)、又は以前のトランザ
クションに対する応答のみが許可されていることを示
す。例えば、プロセッサ24がプロセッサ20のキャッシュ
で専用ダーティであるキャッシュ・ラインのコヒーレン
ト読み取りを発行した場合、プロセッサ20はキャッシュ
間コピーでそのキャッシュ・ラインを供給することがで
きる。そのキャッシュ間コピーのトランザクションは、
キャッシュ間コピーがコヒーレント読み取りに対する応
答であるため、RET_ONLYクライアント・オプション信号
の影響下で開始されうる。同様に、入出力モジュール16
は、そのリターンされるデータが入出力読み取りトラン
ザクションに対する応答なので、RET_ONLYクライアント
・オプション信号の影響下で以前の入出力読み取りトラ
ンザクションからデータをリターンすることができる。
【0043】NO_IOクライアント・オプション信号、及び
ATOMICクライアント・オプション信号は入出力モジュー
ル16、及び18に関連している。図1に示すように、入出
力モジュール16、及び18は、モジュールがもはや入出力
トランザクションを受け入れられないことを示す信号を
メモリ制御装置14に送るために、それぞれSTOP_IOライ
ン58、及び60を制御することが好ましい。入出力モジュ
ール16、及び18は、メモリ・システムを効果的に制御す
るための信号をメモリ制御装置14に対して、かつ相互に
送るために、それぞれSTOP_MOSTライン62、及び64も制
御することが好ましい。
【0044】ホストがSTOP_IO信号を受信すると、ホス
トはNO_IO信号を示す。クライアント・オプション信号が
NO_IOの場合、入出力トランザクションを除く全てのト
ランザクションが許可される。フロー制御が、通常ANY_
TRANSを許可するものと仮定すると、クライアントがSTO
P_MOSTを示したことに直接応答して、クライアント・オ
プション信号ATOMICが生成される。クライアント・オプ
ション信号ATOMICは、STOP_MOSTを示したクライアント
に対して、バス12上でいくつかの連続したトランザクシ
ョンを実行することを許可する。他の全てのクライアン
トは、ATOMICが示されたサイクルの間にバスを獲得した
場合、以前に送られたトランザクション、又は以前に保
持されていた専用ダーティのキャッシュ・ラインへのラ
イト・バックに対して応答することだけが許可される。
ホストは、通常クライアント・オプション信号RET_ONLY
を利用して、要求モジュールに対するデータのリター
ン、及び従来のデータのライト・バックといった、応答
タイプのトランザクションに、全てのクライアントを制
限することも可能である。従って、不可分所有者が存在
する場合、不可分所有者に関して有効なクライアント・
オプション信号はANY_TRANSであり、他の全てのクライ
アントに関して有効なクライアント・オプション信号はR
ET_ONLYである。
【0045】クライアント・オプション信号SHAR_RTN
は、各モジュールがキャッシュ・メモリを有するシステ
ムに関するコヒーレンシ技法に関連して使用される。各
クライアント・モジュール(プロセッサ・モジュール、及
び入出力モジュールの両方)は、キャッシュ・メモリを有
し、メモリ制御装置14が、1つ、又は複数のキャッシュ
・メモリに記憶される可能性のあるデータの読み取り、
又は書き込みを含むコヒーレント・トランザクションを
統合することができ、それにより、プロセッサによって
最新のデータが使用されるようにする信号を直接、メモ
リ制御装置14に送るための少なくとも1つのコヒーレン
ト・トランザクション信号の送信ライン(即ち、COHライ
ン)を制御する。プロセッサ・モジュール20、22、24、及び2
6は、それぞれCOHライン42、44、46、及び48を制御する。
入出力モジュール16はCOHライン50、及び52を制御す
る。入出力モジュール18はCOHライン54、及び56を制御
する。SHAR_RTN信号は、メイン・メモリ制御装置が共有
状況を有するデータをリターンしていることを示してい
る。
【0046】典型的なトランザクション速度を扱うた
め、3組の主なトランザクション待ち行列が使用され
る。メイン・メモリ制御装置14は、各待ち行列の満杯/空
き状況を監視し、待ち行列がオーバフローしないように
クライアント・オプション信号を発行する。コンピュー
タ・システム10に用いられるこの3つのタイプの待ち行
列について、以下で説明する。
【0047】第1に、各入出力(I/O)モジュールは入出
力待ち行列を有し、これはバス12から入出力モジュール
に向けられたトランザクションを入出力装置、又は入出
力バスに送るために保持する。入出力装置に向けられた
プロセッサの読み取り、及び書き込みは、入出力バス、
及び/又は入出力装置上でトランザクションが処理され
るまで、入出力待ち行列内で待機する。このような待ち
行列は一般に、トランザクションがバス12上で送られる
速度で扱う必要がある。通常、バス12は60-120MHzの周
波数を有し、入出力バスは20MHzより低い周波数を有す
る。従って、トランザクションは、それらが入出力バ
ス、又は入出力装置によって処理されるよりずっと速い
速度で入出力モジュールに送ることができる。
【0048】第2に、メイン・メモリ制御装置14は、メ
イン・メモリ読み取り、及びメイン・メモリ書き込みトラ
ンザクションを保持するための1つ又は複数のメモリ待
ち行列を有する。このようなメモリ関連トランザクショ
ンは、読み取り、又は書き込みがメモリ内で実行される
までメモリ待ち行列内に記憶される。読み取りと書き込
みに別々の待ち行列を使用することが好ましい。コヒー
レンシ検査が完了するまでコヒーレント読み取り、又は
コヒーレント書き込みは実行できない。
【0049】最後に、プロセッサ・モジュールと入出力
モジュールの両方を含む、キャッシュ・メモリを有する
各モジュールは、コヒーレント・トランザクションを先
入れ先出し(FIFO)順で記憶するためのキャッシュ・コヒ
ーレンシ待ち行列を有する。コヒーレント・トランザク
ションは、要求されたデータが他のキャッシュにあるか
どうかを調べ、又はキャッシュが最新のものかどうかを
検証するために、他のキャッシュを検査することが必要
になる全てのトランザクション(読み取り等)である。そ
のようなトランザクションは、バス12上で開始されたト
ランザクションのアドレス・サイクルの間に送られる信
号によって示される。キャッシュ・メモリを有する各モ
ジュールは、バスを監視し、本明細書ではCCC待ち行列
と呼ぶ、各モジュールのキャッシュ・コヒーレンシ待ち
行列にコヒーレント・トランザクションをロードする。
コヒーレント・トランザクションは、特定のモジュール
がそのキャッシュを検査し、そのコヒーレンシ検査の結
果をメイン・メモリ制御装置14に報告するまで、前記モ
ジュールのCCC待ち行列内で待機する。メイン・メモリ制
御装置14は、全てのモジュールによってコヒーレンシ検
査の結果が報告されるまで待機し、次に、コヒーレント
・トランザクションに応答する。そのデータの専用ダー
ティ・コピーを有するクライアント・モジュールがない場
合、メイン・メモリ制御装置14はメイン・メモリからデー
タを供給する。前記クライアント・モジュールがある場
合、専用ダーティ・コピーを有するクライアント・モジュ
ールがデータを供給し、メイン・メモリ制御装置14がそ
の新しいデータ値でメイン・メモリを更新する。この動
作は単一トランザクションで実行される。このトランザ
クションに関するアドレス・サイクルが、データのキャ
ッシュ間コピーが後に続く、要求モジュールに示され
る。メイン・メモリ制御装置は、そのアドレス・サイクル
をメイン・メモリに対する書き込み要求として解釈す
る。従って、要求モジュール、及びメイン・メモリ制御
装置の両方がバスからデータを得て、それに従って動作
する。このアドレス、及びデータ・サイクルと共に使用
されるMASTER_ID、及びTRANS_IDは、元のコヒーレント
読み取りトランザクションのものと同じなので、このデ
ータ・サイクルは、通常のメモリのリターンに関するも
のと同一である。
【0050】メイン・メモリ制御装置14は、メモリ待ち
行列、CCC待ち行列、及び入出力待ち行列の全ての待ち
行列の現在の満杯/空き状況に関する情報を受け取り、
処理するための中央位置として働く。以下でより詳細に
説明するように、各待ち行列のタイプを記録するために
異なる手順が使用される。内部メイン・メモリ待ち行列
に関して、メイン・メモリ制御装置14は内部的に、その
メモリ待ち行列がどの程度満たされているかについての
記録を保持する。入出力待ち行列に関して、各入出力モ
ジュールは入出力待ち行列が満杯に近い場合、メイン・
メモリ制御装置14に対して、用意されたSTOP_IO信号を
示すことによって、その入出力待ち行列の状況をメイン
・メモリ制御装置14に報告する。
【0051】CCC待ち行列に関しては、メイン・メモリ制
御装置14は、バス上で発行されたコヒーレント・トラン
ザクションの数を検出し、各モジュールがいくつのコヒ
ーレント・トランザクションに応答したかという記録を
保持し、それによって各モジュールのCCC待ち行列の満
杯の状況を間接的に監視する。より具体的には、メイン
・メモリ制御装置14は、全てのコヒーレント・トランザク
ションを、それが発行された時に受け取る。又、上述の
ように、キャッシュを有する各モジュールは、各コヒー
レント・トランザクションを受け取り、受け取ったコヒ
ーレント・トランザクションに関するモジュールのキャ
ッシュ・コヒーレンシ検査の結果をメイン・メモリ制御装
置14に送る。この応答は、各モジュールからメイン・メ
モリ制御装置14に用意されたバスであるCOHライン42な
いし56上でメイン・メモリ制御装置14に送られる。従っ
て、メイン・メモリ制御装置14は、モジュールから受け
取ったキャッシュ・コヒーレンシ応答を、発行されたコ
ヒーレント・トランザクションの数と比較することによ
って、モジュールのCCC待ち行列に残っているコヒーレ
ント・トランザクションの数を判定することができる。
【0052】このプロセスは、「スコアボード」上で行わ
れるものとみなすことができる。コヒーレント・トラン
ザクションは、発行されると、このボード上に置かれ、
そのトランザクションが各モジュールのCCC待ち行列に
あることを示す。メイン・メモリ制御装置は、そのよう
なトランザクションがあるかどうかに関してバスを監視
する。メイン・メモリ制御装置14は、COHライン上の各モ
ジュールからコヒーレンシ応答を受け取ると、モジュー
ルの応答を記録し、そのモジュールによって処理される
べき次のCCC要求にポインタを移動し、そのモジュール
のCCC待ち行列にあるものとしてリストされているトラ
ンザクションの数を1だけ減ずる。メイン・メモリ制御
装置14は又、所与のコヒーレント・トランザクションに
関する全てのコヒーレンシ応答を受け取った時間も知っ
ているので、そのコヒーレント・トランザクションに応
答する時間を知っている。
【0053】メイン・メモリ制御装置14は、様々な待ち
行列の状態に基づいて、CLIENT_OPバスを使用し、待ち
行列の過負荷となる全てのトランザクションの発行を防
ぐ。バス12の調停に関して上述したように、メイン・メ
モリ制御装置14は、ホスト・モジュールとして働き、ど
んなタイプのトランザクションが安全に開始できるのか
を示す信号をCLIENT_OPバス上の他の全てのモジュール
に送る。モジュールがバスの調停に勝利すると、調停状
態の間にCLIENT_OPバス上でどんな符号が駆動されたか
を検査し、調停の勝利者がどんなトランザクション(又
はリターン)を開始できるかを調べる。
【0054】次に、図2を参照して、本発明によるコン
ピュータ・システムの動作を詳細に説明する。図2は、
コンピュータ・システム10、及び図1に関して説明した
要素に機能的に対応する、コンピュータ・システム100の
主要な要素を示している。コンピュータ・システム100
は、バス112、メイン・メモリ115に接続されたメイン・メ
モリ制御装置114、入出力モジュール116、プロセッサ・
モジュール120、CLIENT_OPライン140、コヒーレンシ「CO
H」ライン142、152、及びSTOP_IOライン158を備えてい
る。これらの要素はそれぞれ、図1に関して説明した、
バス12、メイン・メモリ制御装置14、入出力モジュール1
6、プロセッサ・モジュール20、CLIENT_OPライン40、COH
ライン42、52、及びSTOP_IOライン58に対応している。
図1に関して説明した、これらの要素の態様、及びそれ
らの相互関係はここでは繰り返さない。
【0055】説明を明確にするために、図2には、1つ
のプロセッサ・モジュールと1つの入出力モジュールし
か示していない。モジュール120と同じ追加プロセッサ・
モジュール、及びモジュール116と同じ追加入出力モジ
ュールが、図1に示した方法でバス112に接続されるこ
とが理解されよう。
【0056】コンピュータ・システム100は、図1に関し
て説明したこれらの要素の他に、入出力モジュール116
に従来の方法で接続された入出力バス160を含む。入出
力モジュール116は、入出力待ち行列162、CCC待ち行列1
64、及びメモリ・キャッシュ166も含む。加えてプロセッ
サ・モジュール120は、CCC待ち行列168とメモリ・キャッ
シュ170を含む。メイン・メモリ制御装置114は、メモリ
制御プロセッサ172、少なくとも1つのメモリ待ち行列1
74、及びスコアボード178を含む。図示されていないプ
ロセッサ・モジュール、及び入出力モジュールはそれぞ
れ、プロセッサ・モジュール120、及び入出力モジュール
116と同じ構成要素を含むことが分かる。
【0057】動作時に、入出力モジュール、又はプロセ
ッサ・モジュールによって発行されたコヒーレント・トラ
ンザクションはバス112上に送られる。このコヒーレン
ト・トランザクションは、各モジュールによって検出さ
れ、各クライアント・モジュールのCCC待ち行列内とスコ
アボード178上に置かれる。CCC待ち行列164、及び168に
FIFO順で記憶されたコヒーレント・トランザクションは
それぞれ、メモリ・キャッシュ166、及び170と突き合わ
せて検査され、その結果がそれぞれライン152、及び142
でメイン・メモリ制御装置114に報告される。結果は、全
てのモジュールが当該のトランザクションに関して報告
するまでスコアボード上に記憶される。メイン・メモリ
制御装置114は、ライン152、及び142で応答されたコヒ
ーレント・トランザクションの数を、スコアボード178内
にリストされたコヒーレント・トランザクションの数と
比較して、CCC待ち行列164、及び168の満杯/空き状況を
判定する。
【0058】例えば、バス112上で発行されたコヒーレ
ント・メモリ読み取りは、モジュール116、及び120によ
って検出され、コヒーレンシ検査のために前記モジュー
ルのCCC待ち行列内に置かれる。どのモジュールにもデ
ータの専用ダーティ・コピーがないことを示すコヒーレ
ンシ検査の結果が、メイン・メモリ制御装置114に報告さ
れる。全てのモジュールが報告し終わると、メイン・メ
モリ制御装置114は、要求モジュールにデータを提供
し、各モジュールがそのコヒーレント・トランザクショ
ンに応答したことをスコアボード上に示し、スコアボー
ドのこのラインを着信トランザクションによって自由に
使用できるものとしてマークする。
【0059】入出力装置への書き込みを行うような入出
力トランザクションは、入出力待ち行列162を介して入
出力バス160に送られる。入出力モジュール116は、入出
力待ち行列162の状況を監視し、入出力待ち行列162が満
杯に近づくと、この情報をライン158でメイン・メモリ制
御装置114に報告する。例えば、プロセッサ・モジュール
20が入出力モジュール116にデータを書き込むことでビ
ジー状態である場合、待ち行列162がトランザクション
で満杯になり、STOP_IO信号が発行されることがある。
メイン・メモリ制御装置114は、NO_IOクライアント・オプ
ション信号を発行する。
【0060】メイン・メモリ制御装置114は、それ自身の
メモリ待ち行列の状況も監視する。従って、メイン・メ
モリ制御装置114は、コンピュータ・システム100におけ
る全ての待ち行列の満杯/空き状況に関する情報を有し
ている。メイン・メモリ制御装置は、そのメモリ待ち行
列が満杯に近づいたことを検出すると、クライアント・
オプション信号NONE_ALLOWEDを発行する。以前に発行さ
れたメモリ・トランザクションが処理されるにつれて、
メモリ待ち行列は空きができ、より制限のないクライア
ント・オプション信号を発行することが可能になる。
【0061】より一般的には、全ての待ち行列の満杯/
空き状況に関する、メイン・メモリ制御装置114に利用可
能な情報に基づいて、メイン・メモリ制御装置114内のメ
モリ制御プロセッサ172が、待ち行列のオーバフローを
生じることなく、次の有効なサイクルの間に発行できる
トランザクションがどのタイプかを判定する。メモリ制
御プロセッサ172は、次の有効なバス・サイクルの間に、
待ち行列のオーバフローを生じさせることのないトラン
ザクションだけが実行されるように、どのクライアント
・オプション信号を発行すべきかを判定する。調停の勝
利者は、クライアント・オプション信号によって許可さ
れたトランザクションだけを発行する。従って、中断さ
せる必要のあるトランザクションは一切なく、モジュー
ル間でハンドシェイクを行う必要もない。
【0062】例えば、入出力待ち行列162が満杯に近づ
きつつあると仮定する。入出力モジュール116はデータ
を受け取るためにビジー状態である。入出力装置への他
の書き込みがバス112で入出力モジュール116に送られ、
入出力待ち行列162に置かれる。入出力モジュール116
は、待ち行列162が満杯に近づいたことを検出すると、
メイン・メモリ制御装置114にSTOP_IO信号を送る。メイ
ン・メモリ制御装置114は、クライアント・オプション信
号NO_IOを駆動し、次のバスの所有者は、入出力装置に
対するトランザクションを駆動することはない。
【0063】更に例を挙げると、メイン・メモリ制御装
置114は1つ、又は複数のコヒーレンシ待ち行列が満杯
に近づきつつあることを(メイン・メモリ制御装置自体の
スコアボードを使用して)検出することができる。メイ
ン・メモリ制御装置114は、クライアント・オプション信
号RET_ONLYを駆動する。バスの所有者は追加の読み取り
トランザクションを駆動しない。しかし、データのリタ
ーン、及びコヒーレンシ検査の応答は許可される。従っ
て、CCC待ち行列は最終的に空になっていき、より制限
のないクライアント・オプション信号が発行される。
【0064】ここでは、本発明の順序付けされたコヒー
レンシ技法について更に説明する。上述のように、キャ
ッシュ・メモリを有する各コヒーレント・モジュールは、
バス上で各コヒーレント・トランザクションが発行され
た後に、各自のキャッシュに対してコヒーレンシ検査を
実施する必要がある。従って、これらのモジュールは、
コヒーレント・トランザクションに関してバスを監視す
る。バス上で発行されるコヒーレント・トランザクショ
ンは、そのモジュールによって発行されたコヒーレント
・トランザクションも含めて、そのモジュールのコヒー
レンシ待ち行列内に置かれる。他のモジュールのトラン
ザクションが、コヒーレンシ待ち行列の先頭に達する
と、そのモジュールはそのトランザクションについてキ
ャッシュ・コヒーレンシ検査を実行し、次にそのCOHライ
ンで、そのトランザクションに関するキャッシュ・コヒ
ーレンシ状況をメイン・メモリ制御装置に報告する。モ
ジュール自身のトランザクションがそのコヒーレンシ待
ち行列の先頭に達すると、そのモジュールは、トランザ
クションを発行するために自身のキャッシュを更新し、
そのラインにマークをして、データのリターンがまだ未
完了であることを表す。更に、このモジュールは、その
COHラインで、メイン・メモリ制御装置にキャッシュ・コ
ヒーレンシ状況を報告するが、必ず信号COH_OK(下記参
照)であり、チェックが完了し、競合が見つからなかっ
たことを示す。
【0065】メイン・メモリ制御装置は、別のキャッシ
ュ・コヒーレンシ状況の報告を受け取り、以下で述べる
方法で、コヒーレント・トランザクション要求に関する
キャッシュ・コヒーレンシ状況の完了を判定する。
【0066】各キャッシュ・ラインの状況は、4つのう
ちの1つ、即ち「無効」、「共用」、「専用ダーティ」、及び
「専用クリーン」のうちの1つで定義される。「共用」ライ
ンは、同時に2つ以上のモジュールのキャッシュ内に存
在することが許可されるものである。定義によれば、全
ての共用ラインはクリーンである。ラインの専用コピー
は、システム内の任意のデータ・キャッシュ内で、いか
なる時点においても1つだけが許可される。「専用」ライ
ンは、クリーン、又はダーティのどちらかである。
【0067】コヒーレンシ状況は、更に後述する、以下
の信号を使用して、COHラインで各モジュールによって
報告される。
【0068】
【表2】
【0069】クライアントは、コヒーレンシ状況の報告
で活動していない場合は必ず、COH_NOPをそのCOHバスに
駆動する。クライアントは、コヒーレンシ状況の報告を
行う準備ができると、そのコヒーレンシ検査の結果に基
づいて、単一バス・サイクル毎に、COH_SHARED、COH_COPY
OUT、又はCOH_OKを駆動する。
【0070】報告モジュールが、要求された専用ダーテ
ィのデータ・ラインを所有し、コヒーレント・トランザク
ションが読み取りトランザクション、又はフラッシュ・
トランザクションである場合、この報告モジュールは、
COH_COPYOUTを駆動して、後続トランザクション内の要
求モジュールに、バス上でデータを提供することを指定
する。モジュールが、COH_COPYOUTの状況を送る場合、
そのモジュールはそのラインを書き出す必要がある。
【0071】報告クライアントが、要求されたラインの
共用、又は専用クリーン・コピーを有しており、そのラ
インのコピーを保持する場合、報告クライアントはCOH_
SHAREDを駆動して、要求モジュールがそのコピーを共用
としてマークするよう指定する。報告モジュールが現
在、専用クリーン・コピーを有している場合、そのコピ
ーを共用としてマークする。2つ以上のクライアント
が、COH_SHARED状況を送ることが可能である。メイン・
メモリ制御装置は応答時に、メイン・メモリ制御装置が
バスの調停を行う時に、要求モジュールに対してCLIENT
_OPバス上でSHAR_RTNの符号を使用することによって、
そのラインが共用にマークされていることを表し、デー
タをリターンする。
【0072】報告クライアントがラインの供給を行って
おらず、そのラインの共用コピーを保持していないとい
う場合には、COH_OKを駆動して、コヒーレンシ検査が完
了しており、報告するものがないことを示す。報告モジ
ュールがコピーを有していないか、コヒーレント・トラ
ンザクションの結果、コピーに無効のマークがされてい
るか、又は報告モジュールがコヒーレント・トランザク
ションを発行した場合に、COH_OKが発行される。
【0073】メイン・メモリ制御装置は、上述のスコア
ボードを使用してコヒーレンシ応答の記録を保持する。
各モジュールが、特定のトランザクションに関するコヒ
ーレンシ状況を報告すると、メイン・メモリ制御装置
は、その信号を分析して、要求モジュールに最新データ
が送られるようにする。ラインの専用ダーティ・コピー
を有しているモジュールがなければ、メイン・メモリ制
御装置は、データが専用で使用可能か、共用で使用可能
かに関する状況と共に、データを供給する。それ以外で
あれば、専用ダーティのデータを有しているモジュール
が、メイン・メモリ制御装置によって非コヒーレントの
キャッシュ・ライト・バック・トランザクションとして扱
われ、従って必要なメモリ更新を行うキャッシュ間コピ
ー・トランザクションによってデータ供給を行うので、
メイン・メモリ制御装置は、このトランザクションに関
して「忘れる」ことができる。
【0074】2つ以上のコヒーレンシ検査の同時実行が
可能である。同時に検査できる数は、コヒーレント・ト
ランザクションの進行を監視するCCCトランザクション
待ち行列の深さのみに制限される。
【0075】上述のように、コヒーレント・トランザク
ションは、発行された時にバス上で検出され、先入れ先
出しの順で、コヒーレンシ検査のために各モジュールの
コヒーレンシ待ち行列内に置かれる。各モジュールは、
それ自身のトランザクションを発行した時に、そのトラ
ンザクションもそれ自身の待ち行列内に置き、それが待
ち行列の先頭に達するまで待って、そのトランザクショ
ンに対するコヒーレンシ検査を実行する。従って、各ク
ライアントは、コヒーレント・トランザクションがバス
上で発行されたのと正確に同じ順序で、各コヒーレント
・トランザクションに関するコヒーレンシ検査に対して
応答を送る。
【0076】メイン・メモリ制御装置は、全てのコヒー
レンシ検査(トランザクションを発行したモジュールに
よる検査を含む)が完了するまで待って、データの供給
をさせる。従って、コヒーレント・トランザクション
は、一般に、発行されるのと同じ順序で完了する。
【0077】好適実施例では、専用ダーティのキャッシ
ュ・データのメモリに対する非コヒーレント書き込み
は、特殊な事例として扱われ、この場合、こうした書き
込みは、キャッシュ・ライト・バックと呼ばれる。キャッ
シュ・ライト・バック以外に、好適実施例では、コヒーレ
ント読み取り、非コヒーレント読み取り、コヒーレント
書き込み、及び非キャッシュ非コヒーレント書き込みと
いった、トランザクションの種類を認識している。好適
実施例では、特殊なトランザクション符号化を使用し
て、キャッシュ・ライト・バックと通常の非コヒーレント
書き込みを区別する。更に、上述のキャッシュ間コピー
・トランザクションは、ダーティのキャッシュ・データで
メモリ更新を行う時の副作用によって、キャッシュ・ラ
イト・バックとして扱われる。キャッシュ・ライト・バッ
ク以外の全てのトランザクションは、バス112上で発行
される論理的順序で処理されなければならない。キャッ
シュ・ライト・バックは、システムのパイプライン化、及
び分割トランザクションの性質のため、特殊である。例
えば、プロセッサ20は、所定のアドレスに読み取りトラ
ンザクションを発行することができる。その直後に、プ
ロセッサ22は、同じアドレスにキャッシュ・ライト・バッ
ク・トランザクションを発行することができるが、プロ
セッサ22がプロセッサ20の読み取りトランザクションに
関してコヒーレンシ検査を実行するのは、キャッシュ・
ライト・バック・トランザクションを発行した後に限られ
る。キャッシュ・ライト・バックが、他のトランザクショ
ンとして処理された場合、プロセッサ22はプロセッサ20
によって要求されたデータのコピーを有していないこと
を示すが(既にバスに書き出しているため)、メイン・メ
モリ制御装置114は、バス112上で、プロセッサ22の書き
込みの前に、プロセッサ20の読み取りがあることが分か
るので、まず読み取りを実行し、メイン・メモリから失
効データをリターンする。
【0078】これを防ぐため、メモリの読み取りに続い
て、同じアドレスに対するキャッシュ・ライト・バックが
行われる場合、メイン・メモリ制御装置114は、書き込ま
れているデータが、実際に、読み取りを満たすためにリ
ターンすべきものであると仮定する。従って、キャッシ
ュ・ライト・バックは、読み取りの前に、効果的に順序の
再配列がなされる。当業者には明らかなように、ほぼ同
じ論旨が、入出力DMA書き込みに関するキャッシュ・ライ
ト・バックの順序にも当てはまる。
【0079】読み取りの実行、及び要求されたデータの
リターンに要する時間は、システムの性能に直接影響す
るので、最短に維持しなければならない。一方、書き込
みは、重大ではない。書き込みを記憶するスペースがあ
る限り、書き込みの実行は、その書き込みが必要になる
まで、又は書き込みの実行において順序を保持すること
が必要になるまで、より重大な読み取りを優先して、延
期することが可能である。
【0080】最大性能(最小の読み取り遅延)のために、
メイン・メモリ制御装置114は、読み取りの推論的実行を
実施する。メイン・メモリ制御装置114には、バス112上
で読み取り要求を受け取った時点で、まだ、同じアドレ
スに対する後続のキャッシュ・ライト・バックがあるかど
うか、又は読み取りが、別のキャッシュからのキャッシ
ュ間コピーによって満たされるかどうか分からない。実
際、メイン・メモリ制御装置114は、既に待ち行列に入れ
られた、同じアドレスに対する書き込みを有している可
能性があるが、チェックに時間はかからない。これらの
全ての場合において、できる限り速く、その読み取りが
メモリに送られる。後で、メイン・メモリから読み取ら
れたデータが正確でないと分かれば、そのデータは廃棄
され、必要であればメモリから再び読み取りが行われ
る。
【0081】読み取り、及びキャッシュ・ライト・バック
を実行するための上記手順の実施は、メイン・メモリ制
御装置114内の3つの先入れ先出しメモリ待ち行列、即
ち、上述の第1待ち行列(待機待ち行列)175、第2待ち
行列(準備完了待ち行列)176、及び読み取り待ち行列(通
常読み取り待ち行列)174によって達成される。全ての読
み取りが読み取り待ち行列174に入れられる。読み取り
待ち行列の先頭のトランザクションが、できるだけ速く
メモリに対し発行される。非コヒーレント・キャッシュ・
ライト・バック以外の全てのトランザクションが、第1
待ち行列175に入れられる。読み取りが、読み取り待ち
行列174と第1待ち行列175の両方に入れられる点に留意
されたい。キャッシュ・ライト・バックは、直接第2待ち
行列176に入れられ、それによって、第1待ち行列内の
他の読み取り、及びライト・バックがバイパスされる。
以下で更に述べるように、これによって、キャッシュ・
ライト・バックが、他のトランザクションの後で、バス1
12上に発行されたとしても、効果的にキャッシュ・ライ
ト・バックが、読み取り、及びDMA書き込みより先になる
ように順序付けられる。
【0082】第1待ち行列175の先頭のトランザクショ
ンが、読み取りトランザクションである場合、対応する
データが、利用可能で、必要なコヒーレンシ検査が完了
していれば、更に、そのデータが正しいデータであれ
ば、そのデータがバス112上でリターンされる。正しい
データを含んだ書き込みの前に、読み取りが実行される
と、そのデータは正しくない可能性がある。
【0083】失効データのチェックは、次のように実施
される。書き込みがメモリに対して発行される毎に、そ
のアドレスが第1待ち行列内に存在する全ての読み取り
のアドレスと比較される。一致すれば、失効データを受
け取る可能性があることを示すフラグが、その読み取り
に関してセットされる(その読み取りが、以前にメモリ
に対して発行されている可能性があるため)。又、読み
取りが第1待ち行列の先頭にあり、バス112上でデータ
をリターンする準備ができている場合にも必ず、そのア
ドレスと、第2待ち行列内にある全ての書き込みのアド
レスが比較される。一致すれば、その読み取りにおい
て、失効データを受け取ったものと仮定される。いずれ
にせよ、メモリに対して読み取りが再び発行されなけれ
ばならない。この再発行は、第2待ち行列にその読み取
りをコピーし、次に第2待ち行列内の全てのトランザク
ションを(順番に)メモリに対して発行することによって
実施される。この読み取りの再発行が完了するまでに、
論理的順序がこの読み取りより前になるべき書き込みは
全て、メモリに対して発行されているので、その読み取
りに関して、正しいデータを受け取ることになる。
【0084】第1待ち行列の先頭にあるトランザクショ
ンが、書き込み(コヒーレント書き込み、又は非キャッ
シュ非コヒーレント書き込み)である場合、そのトラン
ザクションは第1待ち行列から第2待ち行列に転送され
る(やはり、必要なコヒーレンシ検査が完了していれ
ば)。最終的に、書き込みは、それが第2待ち行列の先
頭に達した少し後に、メモリに対して発行される。これ
によって、他の書き込みに関して非コヒーレント・キャ
ッシュ・ライト・バックの順序が保証される。
【0085】当業者には、前記の説明、及び添付図面か
ら、本発明に対する様々な修正が可能なことが明らかに
なろう。従って、本発明は、特許請求の範囲によっての
み制限されるべきものである。
【0086】以下に本発明の実施態様を列挙する。
【0087】1. バスに接続された処理モジュールに
よって実行されるべきトランザクションを指定する情報
の送信、及び受信のためのバスと、前記バス上にトラン
ザクションを送る機能を提供するための、前記バスに接
続されたメモリ制御装置であって、前記トランザクショ
ンが前記機能を提供する前にコヒーレンシ検査を要求す
るトランザクションを含む前記メモリ制御装置と、前記
バスに接続された複数の処理モジュールであって、前記
各処理モジュールが、前記処理モジュールに関連したメ
モリ内に記憶されたデータにコヒーレンシ検査を実施
し、前記コヒーレンシ検査の結果を前記メモリ制御装置
に報告するためのコヒーレンシ検査手段を備え、前記各
コヒーレンシ検査が、前記バス上で発行されたトランザ
クションに対応し、前記コヒーレンシ検査が、対応する
トランザクションが前記バス上で発行された順番で実施
される前記処理モジュールを含むことを特徴とする、デ
ータ処理システム。
【0088】2. 前記各処理モジュールが、前記コヒ
ーレンシ検査を指定する情報を記憶するための待ち行列
を備え、前記コヒーレンシ検査手段が、前記情報が前記
待ち行列に記憶される順番で、前記コヒーレンシ検査を
実施する手段から成ることを特徴とする、項番1に記載
のデータ処理システム。
【0089】3. 前記各処理モジュールが、前記バス
上でコヒーレンシ検査を要求するトランザクションを検
出し、コヒーレンシ検査を要求する前記トランザクショ
ンの1つを検出すると、これに応答して、コヒーレンシ
検査を開始する手段を備えることを特徴とする、項番1
に記載のデータ処理システム。
【0090】4. 前記メイン・メモリ制御装置によっ
て提供された前記トランザクションが、メモリ・アドレ
スからのデータを要求する読み取りトランザクション、
及び前記メモリ・アドレスへデータを送る書き込みトラ
ンザクションから構成されることと、前記メイン・メモ
リ制御装置が、前記書き込みトランザクションを、前記
読み取りトランザクションの前に実行させるための手段
から成ることを特徴とする、項番1に記載のデータ処理
システム。
【0091】
【発明の効果】本発明によるパイプライン化分割トラン
ザクション・バスのためのコヒーレンシ技法によって、
コヒーレント・トランザクションが発行される速度が制
限されず、かつ各モジュールが本来の速度で、キャッシ
ュ・コヒーレンシ検査が処理可能となる。
【図面の簡単な説明】
【図1】本発明による完全に順序付けされたコヒーレン
シ技法を使用するコンピュータ・システムの実施例の1
つを示すブロック図である。
【図2】本発明による完全に順序付けされたコヒーレン
シ技法を使用するコンピュータ・システムの構成要素を
示すブロック図である。
【符号の説明】
100 コンピュータ・システム 112 バス 114 メイン・メモリ制御装置 116 入出力モジュール 120 プロセッサ・モジュール 164、168 CCC待ち行列 170 メモリ・キャッシュ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケネス・ケイ・チャン アメリカ合衆国カリフォルニア州95133− 1461サン・ノゼ,フォックスリッジ・ウエ イ・828 (72)発明者 トーマス・アール・ホッチキス アメリカ合衆国マサチューセッツ州01450 グロートン,タウンゼンド・ロード・907 (72)発明者 ロバート・ディー・オーディニール アメリカ合衆国カリフォルニア州95661ホ ーセヴィレ,タマラック・コート・1001 (72)発明者 ジェイムズ・ビー・ウイリアムズ アメリカ合衆国マサチューセッツ州01852 ローウエル,ホーリールード・アヴェニュ ー・74 (72)発明者 マイケル・エル・ジグラー アメリカ合衆国マサチューセッツ州01588 ホワイティンスヴィレ,ルヴィ・レイン・ 166

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】バスに接続された処理モジュールによって
    実行されるべきトランザクションを指定する情報の送
    信、及び受信のためのバスと、 前記バス上にトランザクションを送る機能を提供するた
    めの、前記バスに接続されたメモリ制御装置であって、
    前記トランザクションが前記機能を提供する前にコヒー
    レンシ検査を要求するトランザクションを含む前記メモ
    リ制御装置と、 前記バスに接続された複数の処理モジュールであって、
    前記各処理モジュールが、前記処理モジュールに関連し
    たメモリ内に記憶されたデータにコヒーレンシ検査を実
    施し、前記コヒーレンシ検査の結果を前記メモリ制御装
    置に報告するためのコヒーレンシ検査手段を備え、前記
    各コヒーレンシ検査が、前記バス上で発行されたトラン
    ザクションに対応し、前記コヒーレンシ検査が、対応す
    るトランザクションが前記バス上で発行された順番で実
    施される前記処理モジュールを含むことを特徴とする、
    データ処理システム。
JP02806795A 1994-02-24 1995-02-16 データ処理システム Expired - Fee Related JP3640997B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/201,463 US5530933A (en) 1994-02-24 1994-02-24 Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
US201463 2002-07-22

Publications (2)

Publication Number Publication Date
JPH07281956A true JPH07281956A (ja) 1995-10-27
JP3640997B2 JP3640997B2 (ja) 2005-04-20

Family

ID=22745920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02806795A Expired - Fee Related JP3640997B2 (ja) 1994-02-24 1995-02-16 データ処理システム

Country Status (6)

Country Link
US (1) US5530933A (ja)
EP (1) EP0669578B1 (ja)
JP (1) JP3640997B2 (ja)
KR (1) KR100371845B1 (ja)
DE (1) DE69423874T2 (ja)
TW (1) TW260770B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298418B1 (en) 1996-11-29 2001-10-02 Hitachi, Ltd. Multiprocessor system and cache coherency control method
JPWO2004107180A1 (ja) * 2003-05-30 2006-07-20 富士通株式会社 マルチプロセッサシステム
KR100582782B1 (ko) * 1998-08-28 2006-08-23 엘지엔시스(주) 캐쉬 일관성 유지 방법
US7181292B2 (en) 2002-02-27 2007-02-20 Nec Corporation System control method, control processing system, and control processing apparatus
JP2007272922A (ja) * 2001-06-04 2007-10-18 Fujitsu Ltd 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2008250373A (ja) * 2007-03-29 2008-10-16 Toshiba Corp マルチプロセッサシステム

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504874A (en) * 1993-09-29 1996-04-02 Silicon Graphics, Inc. System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
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
US5787476A (en) * 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US6108735A (en) * 1995-09-29 2000-08-22 Intel Corporation Method and apparatus for responding to unclaimed bus transactions
US5659710A (en) * 1995-11-29 1997-08-19 International Business Machines Corporation Cache coherency method and system employing serially encoded snoop responses
US5701422A (en) * 1995-12-13 1997-12-23 Ncr Corporation Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US5673413A (en) * 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
US5829035A (en) * 1995-12-22 1998-10-27 Apple Computer, Inc. System and method for preventing stale data in multiple processor computer systems
US5717900A (en) * 1996-01-26 1998-02-10 Unisys Corporation Adjusting priority cache access operations with multiple level priority states between a central processor and an invalidation queue
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
US5960179A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Method and apparatus extending coherence domain beyond a computer system bus
WO1997034237A2 (en) * 1996-03-15 1997-09-18 Sun Microsystems, Inc. Split transaction snooping bus and method of arbitration
US5790822A (en) * 1996-03-21 1998-08-04 Intel Corporation Method and apparatus for providing a re-ordered instruction cache in a pipelined microprocessor
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions
US5987539A (en) * 1996-06-05 1999-11-16 Compaq Computer Corporation Method and apparatus for flushing a bridge device read buffer
US6052513A (en) * 1996-06-05 2000-04-18 Compaq Computer Corporation Multi-threaded bus master
US5903906A (en) * 1996-06-05 1999-05-11 Compaq Computer Corporation Receiving a write request that allows less than one cache line of data to be written and issuing a subsequent write request that requires at least one cache line of data to be written
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device
US5872941A (en) * 1996-06-05 1999-02-16 Compaq Computer Corp. Providing data from a bridge to a requesting device while the bridge is receiving the data
US6075929A (en) * 1996-06-05 2000-06-13 Compaq Computer Corporation Prefetching data in response to a read transaction for which the requesting device relinquishes control of the data bus while awaiting data requested in the transaction
US5872939A (en) * 1996-06-05 1999-02-16 Compaq Computer Corporation Bus arbitration
US6055590A (en) * 1996-06-05 2000-04-25 Compaq Computer Corporation Bridge circuit comprising independent transaction buffers with control logic adapted to store overflow data in second buffer when transaction size exceeds the first buffer size
US5805839A (en) * 1996-07-02 1998-09-08 Advanced Micro Devices, Inc. Efficient technique for implementing broadcasts on a system of hierarchical buses
US5796605A (en) * 1996-07-02 1998-08-18 Sun Microsystems, Inc. Extended symmetrical multiprocessor address mapping
US5963978A (en) * 1996-10-07 1999-10-05 International Business Machines Corporation High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators
US5802355A (en) * 1996-12-10 1998-09-01 International Business Machines Corporation Multi-processor system using processors of different speeds
US5926840A (en) * 1996-12-18 1999-07-20 Unisys Corporation Out-of-order fetching
US5764932A (en) * 1996-12-23 1998-06-09 Intel Corporation Method and apparatus for implementing a dual processing protocol between processors
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request
FR2759178B1 (fr) * 1997-02-05 1999-04-09 Sgs Thomson Microelectronics Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
US6055608A (en) * 1997-04-14 2000-04-25 International Business Machines Corporation Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system
US5944805A (en) * 1997-08-21 1999-08-31 Advanced Micro Devices, Inc. System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus
US6122714A (en) * 1997-10-24 2000-09-19 Compaq Computer Corp. Order supporting mechanisms for use in a switch-based multi-processor system
US6085294A (en) * 1997-10-24 2000-07-04 Compaq Computer Corporation Distributed data dependency stall mechanism
US6108752A (en) * 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
US6154816A (en) * 1997-10-24 2000-11-28 Compaq Computer Corp. Low occupancy protocol for managing concurrent transactions with dependencies
US6070231A (en) * 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
US6003106A (en) * 1998-05-27 1999-12-14 International Business Machines Corporation DMA cache control logic
US6085293A (en) * 1998-08-17 2000-07-04 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US6546429B1 (en) * 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6067603A (en) * 1998-10-01 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6167492A (en) 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6256713B1 (en) * 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6636939B1 (en) * 2000-06-29 2003-10-21 Intel Corporation Method and apparatus for processor bypass path to system memory
US6647466B2 (en) 2001-01-25 2003-11-11 Hewlett-Packard Development Company, L.P. Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
US7015921B1 (en) * 2001-12-31 2006-03-21 Apple Computer, Inc. Method and apparatus for memory access
US7034849B1 (en) 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US7681013B1 (en) 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
US8055492B2 (en) * 2002-01-10 2011-11-08 International Business Machines Corporation Non-unique results in design verification by test programs
US7103728B2 (en) * 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7024520B2 (en) * 2002-10-03 2006-04-04 Hewlett-Packard Development Company, L.P. System and method enabling efficient cache line reuse in a computer system
US6895476B2 (en) * 2002-10-03 2005-05-17 Hewlett-Packard Development Company, L.P. Retry-based late race resolution mechanism for a computer system
US7003635B2 (en) * 2002-10-03 2006-02-21 Hewlett-Packard Development Company, L.P. Generalized active inheritance consistency mechanism having linked writes
US6892290B2 (en) * 2002-10-03 2005-05-10 Hewlett-Packard Development Company, L.P. Linked-list early race resolution mechanism
US6990559B2 (en) * 2002-10-03 2006-01-24 Hewlett-Packard Development Company, L.P. Mechanism for resolving ambiguous invalidates in a computer system
US6898676B2 (en) * 2002-10-03 2005-05-24 Hewlett-Packard Development Company, L.P. Computer system supporting both dirty-shared and non-dirty-shared data processing entities
US7000080B2 (en) * 2002-10-03 2006-02-14 Hewlett-Packard Development Company, L.P. Channel-based late race resolution mechanism for a computer system
US7051163B2 (en) * 2002-10-03 2006-05-23 Hewlett-Packard Development Company, L.P. Directory structure permitting efficient write-backs in a shared memory computer system
EP1426866A1 (en) * 2002-12-06 2004-06-09 Sun Microsystems, Inc. A method to reduce memory latencies by performing two levels of speculation
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US20070186052A1 (en) * 2006-02-07 2007-08-09 International Business Machines Corporation Methods and apparatus for reducing command processing latency while maintaining coherence
US7512723B2 (en) * 2006-12-29 2009-03-31 Freescale Semiconductor, Inc. Queued interface devices, multi-core peripheral systems, and methods for sharing a peripheral in a multi-core system
US8131941B2 (en) * 2007-09-21 2012-03-06 Mips Technologies, Inc. Support for multiple coherence domains
US20090089510A1 (en) * 2007-09-28 2009-04-02 Mips Technologies, Inc. Speculative read in a cache coherent microprocessor
US20090138890A1 (en) * 2007-11-21 2009-05-28 Arm Limited Contention management for a hardware transactional memory
US9513959B2 (en) * 2007-11-21 2016-12-06 Arm Limited Contention management for a hardware transactional memory
US8392663B2 (en) * 2007-12-12 2013-03-05 Mips Technologies, Inc. Coherent instruction cache utilizing cache-op execution resources
US20090248988A1 (en) * 2008-03-28 2009-10-01 Mips Technologies, Inc. Mechanism for maintaining consistency of data written by io devices
US8429353B2 (en) * 2008-05-20 2013-04-23 Oracle America, Inc. Distributed home-node hub
US8108584B2 (en) 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
WO2013095475A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Apparatus and method for memory-hierarchy aware producer-consumer instruction
US9196347B2 (en) * 2013-03-14 2015-11-24 International Business Machines Corporation DRAM controller for variable refresh operation timing
US10282298B2 (en) 2017-06-13 2019-05-07 Microsoft Technology Licensing, Llc Store buffer supporting direct stores to a coherence point
US10303603B2 (en) * 2017-06-13 2019-05-28 Microsoft Technology Licensing, Llc Low power multi-core coherency
KR20210123555A (ko) * 2020-04-03 2021-10-14 에스케이하이닉스 주식회사 메모리 시스템
US12045474B2 (en) * 2021-08-02 2024-07-23 Red Hat, Inc. Efficient dirty page expiration
CN116527555B (zh) * 2023-06-20 2023-09-12 中国标准化研究院 一种跨平台数据互通一致性测试方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473880A (en) * 1982-01-26 1984-09-25 Intel Corporation Arbitration means for controlling access to a bus shared by a number of modules
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus
EP0349123B1 (en) * 1988-06-27 1995-09-20 Digital Equipment Corporation Multi-processor computer systems having shared memory and private cache memories
EP0388574B1 (en) * 1989-03-23 1994-06-15 International Business Machines Corporation Method and apparatus for distributed queue multiple access in a communication system
US5345578A (en) * 1989-06-30 1994-09-06 Digital Equipment Corporation Competitive snoopy caching for large-scale multiprocessors
CA2051209C (en) * 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298418B1 (en) 1996-11-29 2001-10-02 Hitachi, Ltd. Multiprocessor system and cache coherency control method
KR100582782B1 (ko) * 1998-08-28 2006-08-23 엘지엔시스(주) 캐쉬 일관성 유지 방법
JP2007272922A (ja) * 2001-06-04 2007-10-18 Fujitsu Ltd 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
US7181292B2 (en) 2002-02-27 2007-02-20 Nec Corporation System control method, control processing system, and control processing apparatus
JPWO2004107180A1 (ja) * 2003-05-30 2006-07-20 富士通株式会社 マルチプロセッサシステム
US7320056B2 (en) 2003-05-30 2008-01-15 Fujitsu Limited Multi-processor system
US8380933B2 (en) 2007-03-20 2013-02-19 Kabushiki Kaisha Toshiba Multiprocessor system including processor cores and a shared memory
JP2008250373A (ja) * 2007-03-29 2008-10-16 Toshiba Corp マルチプロセッサシステム

Also Published As

Publication number Publication date
EP0669578B1 (en) 2000-04-05
US5530933A (en) 1996-06-25
KR950033893A (ko) 1995-12-26
EP0669578A3 (en) 1995-11-15
DE69423874D1 (de) 2000-05-11
DE69423874T2 (de) 2000-11-16
JP3640997B2 (ja) 2005-04-20
EP0669578A2 (en) 1995-08-30
TW260770B (ja) 1995-10-21
KR100371845B1 (ko) 2003-04-03

Similar Documents

Publication Publication Date Title
JPH07281956A (ja) 順序付け改良型コヒーレンシ技法
KR100360064B1 (ko) 고도로파이프라인된버스구조
US5996036A (en) Bus transaction reordering in a computer system having unordered slaves
EP0681240B1 (en) Duplicate cache tag memory system
JPH07306810A (ja) 待ち行列ベースの予測型フロー制御機構
JP3529566B2 (ja) 情報処理方法および装置
JP3641003B2 (ja) 調停機構付きバス・システム
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US5930485A (en) Deadlock avoidance in a computer system having unordered slaves
KR100310399B1 (ko) 프로세서 인터페이스 버스를 통해 데이터를 전달하기 위한 방법 및 장치
US5933612A (en) Deadlock avoidance in a split-bus computer system
USRE44688E1 (en) Bus transaction reordering in a computer system having unordered slaves
JP2675981B2 (ja) スヌープ・プッシュ・オペレーションを回避する方法
US5991855A (en) Low latency memory read with concurrent pipe lined snoops
JP3759193B2 (ja) アトミック動作バス・システム
US7490184B2 (en) Systems and methods for data intervention for out-of-order castouts
US5924118A (en) Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system
US6055608A (en) Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system
EP0832459B1 (en) Split transaction snooping bus and method of arbitration
US5623694A (en) Aborting an I/O operation started before all system data is received by the I/O controller after detecting a remote retry operation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120128

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130128

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130128

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130128

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees