JPH09510308A - 高度パイプライン式バス・アーキテクチャ - Google Patents

高度パイプライン式バス・アーキテクチャ

Info

Publication number
JPH09510308A
JPH09510308A JP7523503A JP52350395A JPH09510308A JP H09510308 A JPH09510308 A JP H09510308A JP 7523503 A JP7523503 A JP 7523503A JP 52350395 A JP52350395 A JP 52350395A JP H09510308 A JPH09510308 A JP H09510308A
Authority
JP
Japan
Prior art keywords
data
bus
phase
transaction
agent
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
JP7523503A
Other languages
English (en)
Other versions
JP3660679B2 (ja
Inventor
サラングダー,ニチン・ヴイ
シングー,ガーバー
ライ,コンラッド
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH09510308A publication Critical patent/JPH09510308A/ja
Application granted granted Critical
Publication of JP3660679B2 publication Critical patent/JP3660679B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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

Abstract

(57)【要約】 データ・コヒーレンシを維持し、長い待ち行列のトランザクションをサポートし、プロセッサ順序を与えるパイプライン式バスを組み込んだコンピュータ・システムが記載されている。このコンピュータ・シスデムは、システム・バスを介して複数の未処理のトランザクションを追跡し、トランザクション要求に応答してスヌープを実行し、1回のトランザクション内でスヌープ結果および修正済みデータを提供するインオーダー待ち行列を有するバス・エージェントを含む。このシステムは、デファード・トランザクションを再開するために使用されるデファード識別子をトランザクション要求中に提供することによって長い待ち行列のトランザクションもサポートする。

Description

【発明の詳細な説明】 高度パイプライン式バス・アーキテクチャ 発明の背景 これは、1994年5月1日に出願された米国特許出願第08/206382 号の部分継続出願である。発明の分野 本発明は全般的には、コンピュータ・システムの分野に関し、詳細には、マル チプロセッサ・コンピュータ・システムで使用すべき高度パイプライン式バス・ アーキテクチャに関する。関連技術 コンピュータ・システムは、マイクロプロセッサ、メモリ装置、入出力装置を 含むが、それに限らないいくつかの構成要素(下記では一般に「エージェント」 と呼ぶ)を備えることは常識である。このようなエージェントは通常、システム ・バスを通じて情報を交換する。コンピュータ・システムの全体的な性能は、シ ステム・バスのこの交換速度(すなわち、速度、効率など)に直接関係している ので、その効率を高めるために多くの試みがなされている。 システムの性能を向上させる従来の1つの方法はパイプライン化である。パイ プライン化とは、前のトランザクションが完了する前に新しいバス・トランザク ションを開始できるようにするプロセスである。このプロセスは、データの読取 りまたは書込みを求める要求と実際の読取りトランザクションまたは書込みトラ ンザクションとの間の時間遅延を他のトランザクションによって使用することが できるため、有効であることが証明されている。このような時間遅延は、エージ ェントのそれぞれの異なる応答機能によってもたらされる。したがって、パイプ ライン化では、システム・バスがより効率的に使用され、より優れた全体的なシ ステム性能がもたらされる。 コンピュータ・システムの設計の様々な他の発展によって、全体的な性能は向 上するが、システム・バスを介してデータを転送するプロセスは複雑になる。し たがって、パイプライン化はサポートするのがかなり難しい。 そのような発展の一例は「多重処理」である。多重処理とは、それぞれ、他の マイクロプロセッサと同時にタスクを実行する複数のマイクロプロセッサを単一 のコンピュータ・システムで使用することである。理論的には、“n”個のマイ クロプロセッサを含むコンピュータ・システムは、“n”倍の数のタスクを実行 することができ、したがって単一のプロセッサを含むコンピュータの“n”倍の 速さで動作することができる。 多重処理の条件は、常に最新のデータ・バージョンがあり、各プロセッサが、 タスクを実行する必要があるときには必ず各プロセッサに最新のデータ・バージ ョンが与えられることである。これを「データ・コヒーレンシ」と呼ぶ。しかし 、データ・コヒーレンシを与えると、複数のトランザクションが未処理であると きに最新のデータ・バージョンがどこにあるかを判定することが困難であること が多いので、バス・トランザクションをパイプライン化することはますます困難 になる。この問題に対する通常の対策は、データをキャッシュしているエージェ ントがそのデータをメモリに書き込むまでバス・トランザクションの実行を放棄 することである。しかし、この対策は、最初にパイプライン化から得られていた 利益をかなり失わせる。 システム・バスの性能を向上させるために個別に使用される他の方法は、マル チプロセッサ・システムにおける「プロセッサ順序付け」サポートである。プロ セッサ順序付けは、コンピュータ・システム中の任意のプロセッサによって生成 されるトランザクションがそのコンピュータ・システム中のすべてのエージェン トによって同じ順序で観測されることを意味する。トランザクションを中止する ことができるパイプライン化環境では、プロセッサ順序付けを保証する1組のプ ロトコルを与えなければならない。 システム・バスの性能を向上させる他の方法は、デファード(deferred)・ト ランザクションを使用することである。デファード・トランザクションでは、要 求時に完了できないトランザクションが、データを提供する責任を負うバス上の 構成要素(すなわち、「応答側エージェント」)によって遅延させられる。デー タが得られると、応答側エージェントは、データを要求した構成要素(すなわち 、「要求側エージェント」)を対象とする新しいトランザクションを開始する。 これによって、バスが、まだ得られていないデータを求める要求側エージェント からの繰り返し失敗した要求で満たされるのが防止される。 デファード・トランザクションを使用してシステム・バスの効率を高めること は、コンピュータ・システムで複数のマイクロプロセッサを使用することと矛盾 する。これは、トランザクションを遅延させている間に最新のデータ・バージョ ンの位置が移動する可能性があるからである。繰り返しになるが、コンピュータ ・システムで複数のマイクロコンピュータを使用することは、バス・システムを より効率的に使用することと矛盾する。 コンピュータ・バスの効率を高めるために個別に使用されるこれらの方法と、 マルチプロセッサ・システムに必要な条件との間の様々な矛盾のために、マイク ロプロセッサ・コンピュータ・システムの全体的な効率の最大の潜在性が実現さ れたことはない。しかし、高度パイプライン式アーキテクチャを提供し、同時に MESIキャッシュ・コヒーレンシ、プロセッサ順序付け、デファード・トラン ザクション応答サポートを含む複数のマイクロプロセッサをサポートするシステ ム・バスを開発できる場合、最大の潜在性により近い状態で実行するコンピュー タ・システムを達成することができる。 発明の簡単な概要 本発明は、単一処理コンピュータ・システム、または好ましくは多重処理コン ピュータ・システム内で使用される様々な構成要素間でメッセージおよびデータ を交換する方法およびシステムである。 本発明の一態様によれば、コンピュータ・システム内にシステム・バスが準備 されている。システム・バスは、数組のデータ線、アドレス線、状況線、エラー 線としてグループ化された多数の信号線を含む。トランザクションは、調停、要 求、エラー、スヌープ、応答、データを含む6つのフェーズに分割される。各フ ェーズ間で実行されるクロック・サイクルの数と、各フェーズ中にデータを保持 する信号線の数は、バス・システムを通じて複数のトランザクションをパイプラ イン化できるような値に設定される。また、同じ信号線がその機能を実行する必 要がないかぎり、それぞれの異なるトランザクションのそれぞれの異なるフェー ズを同時にバス上に置くことができる。 本発明の好ましい実施態様では、暗黙的書き戻し(Implicit Writeback)トラ ンザクションを使用することによってデータ・コヒーレンシが維持される。デー タ転送用バスを使用し、ローカル・メモリ(「キャッシュ」)を有する装置(「 エージェント」)は、バス・トランザクションの要求フェーズの後にキャッシュ ・スヌープを実行することを要求され、スヌープ・フェーズ中にそのスヌープの 結果を提供する。スヌープ中に、キャッシング・エージェントによって、要求さ れたデータの最新コピーが検出された場合、そのエージェントは、パイプライン を妨害せずに要求側エージェントにデータを提供しなければならない。また、同 じデータを要求する他のトランザクションが確実に最新のバージョンを受け取る ように、そのデータの所有権がトランザクション全体にわたって管理される。 本発明の好ましい実施態様では待ち時間の長いトランザクションもサポートさ れる。要求時に、トランザクションを所定の期間で完了することができないとき 、データを提供するエージェント(「応答側エージェント」)は、パイプライン を妨害せずにトランザクションを遅延することができる。後でデータが得られた ときに、応答側エージェントは、新しいトランザクションを開始し完了応答およ びデータを最初の要求側エージェントに与えることができる。デファード・トラ ンザクションの場合にプロセッサ順序付けを維持するために、同じエージェント からのバック・ツー・バック書込みトランザクションは、第1のトランザクショ ンに対して実行されたスヌープの結果が得られるまで禁止される。 図面の簡単な説明 本発明の特徴および利点は、以下に述べる本発明の詳細な説明から明白になろ う。 第1図は、システム・バスに沿ったトランザクションのパイプライン化を開始 し制御する複数のエージェントを備えるバス・クラスタのブロック図である。 第2図は、第1図のシステム・バスによってサポートされる2つのパイプライ ン式トランザクションによって実行されたフェーズを示す一般的なタイミング位 相図である。 第3図は、要求開始型「書込み」トランザクションをサポートして第1図のシ ステム・バス内で伝搬される情報信号の例示的なタイミング図である。 第4図は、応答開始型「読取り」トランザクションをサポートして第1図のシ ステム・バス内で伝搬される情報信号の例示的なタイミング図である。 第5図は、読取りトランザクション中に実行されている暗黙的書き戻しトラン ザクションをサポートして第1図のシステム・バス内で伝搬される情報信号の例 示的なタイミング図である。 第6図は、書込みトランザクション中に実行されている暗黙的書き戻しトラン ザクションをサポートして第1図のシステム・バス内で伝搬される情報信号の例 示的なタイミング図である。 第7図は、複数の部分キャッシュ線読取りトランザクションをサポートして第 1図のシステム・バス内で伝搬される情報信号の例示的なタイミング図である。 第8図は、同じエージェントからの複数のキャッシュ線読取りトランザクショ ンをサポートして第1図のシステム・バス内で伝搬される情報信号の例示的なタ イミング図である。 第9図は、複数の部分キャッシュ線書込みトランザクションをサポートして第 1図のシステム・バス内で伝搬される情報信号の例示的なタイミング図である。 第10図は、複数のキャッシュ線書込みトランザクションをサポートする第1 のパイプライン式バスの例示的なタイミング図である。 第11図は、同じデータを修正するために所有権を要求する2つの順次バス・ トランザクションをサポートして第1図のシステム・バス内で伝搬される情報信 号の例示的なタイミング図である。 第12図は、デファード応答トランザクションに対するデファード応答をサポ ートして第1図のシステム・バス内で伝搬される情報信号の例示的なタイミング 図である。 第13図は、デファード・トランザクションに対するスヌープ責任をサポート して第1図のシステム・バス内で伝搬される情報信号の例示的なタイミング図で ある。 第14図は、第1図のシステム・バスの状態を監視する際に使用すべき第1図 のエージェントで実施されるインオーダー待ち行列を示すブロック図である。 第15図は、第1図の1つのマイクロプロセッサ内で使用されるバッファ構造 の例示的なブロック図である。 発明の詳細な説明 データ・コヒーレンシを維持しパイプライン化を妨害せずにプロセッサ順序付 けサポートを行うようにパイプライン式システム・バスを効率的に操作する方法 および装置について説明する。下記の詳細な説明では、本発明を十分に説明する ために様々なバス・トランザクションの多数の特定の詳細および例示的なタイミ ング図について述べる。しかし、当業者には、本発明が、このような特定の詳細 を組み込まずに実施できるが、任意のコンピュータ・システムでの使用に広く応 用できることが明らかになろう。 詳細な説明では、コンピュータ・システム内の構成要素のある種の特性を説明 するためにいくつかの語が頻繁に使用される。これらの語は相互に排他的なもの ではない。「要求側エージェント」とは、通常はデータを読み取り、あるいは書 き込むために要求を開始するエージェントである。「応答側エージェント」とは 、データを提供することによって要求に応答するエージェントである。「キャッ シング・エージェント」は、マイクロプロセッサなどキャッシュ機能を有するエ ージェントである。「スヌーピング・エージェント」とは、バス・トランザクシ ョンによるデータ要求に対して内部メモリ、通常は1つのキャッシング・エージ ェントをスヌープするエージェントである。より一般的な語には、通常は書込み トランザクションからデータを受け取る「受け取り側」エージェントと、システ ム・バスに沿ってデータを送る要求側エージェント、または応答側エージェント 、またはスヌーピング・エージェントである「データ転送」エージェントが含ま れる。 第1図は、4つのマイクロプロセッサ2、4、6、8と、システム・バス20 に結合された入出力ブリッジ10およびメモリ制御装置12とを含むバス・クラ スタ15のブロック図である。上記で識別したこれらの「エージェント」はそれ ぞれ、バスを介してデータまたはメッセージを送り、あるいは受け取ることがで きる。この実施形態では、入出力ブリッジ10は、システム・バス20と、表示 装置23、英数字入力装置21、大容量記憶装置26、ハード・コピー装置27 を含むがこれらに限らない、入出力バス22に結合されたいくつかの周辺装置と の間の通信経路を形成する。この同じ実施形態では、メモリ制御装置12は1組 の動的ランダム・アクセス・メモリ19(DRAM)に結合されているが、他の メモリ装置も予想される。さらに、システム・バス20と、このバス・クラスタ が他のバス・クラスタ17aないし17m(“m”は任意である)と通信できる ようにするクラスタ相互接続機構16に、クラスタ・ブリッジ14が結合される 。 信号線およびシステム・バス20の論理機構は、電力消費量および電磁干渉( EMI)が低い、ゼロックス社(Xerox Corporation)から市 販されているGunning Transceiver Logic(GTL) を使用して実施される。この技術を使用することによって、最大8つのエージェ ントをシステム・バス20に結合することができ、しかも最大100MHzのバ ス・クロック速度が維持される。様々な実施形態には、33.3MHz、44. 4MHz、66.7MHzを含む様々なクロック速度が組み込まれている。ただ し、他のクロック速度を使用することができる。これらのクロック速度によって 、本発明は、様々なハードウェア機能を有するコンピュータ・システムに組み込 むことができる。 第2図は、第1図のシステム・バスによってサポートされる2つのバス・トラ ンザクションのフェーズを示すタイミング図である。各バス・トランザクション は、システム・クロック“CLK“29の選択された数のクロック・サイクル( “T1”、“T2”などと呼ばれる)によって適切に分離された6つのフェーズ 、すなわち調停、要求、エラー、スヌープ、データ、応答を含む。これらのフェ ーズを必要に応じて様々なタイミング成分で構成できることが企図される。 調停フェーズ中には、残りのフェーズ中のバスの所有権が決定される。要求フ ェーズ中には、調停フェーズのシステム・バスを「所有する」エージェントは、 要求側エージェントによって要求されたトランザクションを開始するのに必要な 情報を他のエージェントへ提供する。この情報は、処理すべきデータがもしあれ ば、そのアドレスと、実行すべき動作を示すコードとを含む。要求フェーズ中に パリティ・エラーが検出されると、エラー・フェーズ中にエラー信号がアサート される。スヌープ・フェーズ中には、システム上のキャッシング・エージェント によって実行されたスヌープの結果がアサートされる。データ・フェーズ中には 、要求されたデータ転送が行われる。トランザクションがバス・パイプラインか ら除去され、応答フェーズ中に、そのトランザクションの結果がアサートされる 。後述のように情報を供給するために各フェーズ中に様々な信号が使用される。 好ましい実施形態でサポートされるトランザクションのタイプには、(i)3 2バイトまたは4つの8バイト「チャンク(chunk)」からなるキャッシュ線の 読取りおよび書込み、(ii)8バイトおよび16バイトの読取りおよび書込み (部分キャッシュ線読取りおよび書込みと呼ばれる)、(iii)キャッシュ線 の読取り・無効化、(iv)キャッシュ線の無効化が含まれるが、これらに限ら ない。無効化トランザクションでは、他のキャッシング・エージェントが、要求 されたデータを記憶しているキャッシュ線を「無効」状態にし(無効の説明につ いては下記を参照されたい)、そのため、要求側エージェントは、それ自体のキ ャッシュ内の要求されたデータの専用所有権を得ることができる。これは本発明 の一実施形態でサポートされるトランザクションであるが、他の実施形態は異な る1組のトランザクションを使用し、しかも本発明を組み込むことができる。 バス調停を実行する際、第1図の各エージェントは、4つの調停信号群、すな わち、BR[3:0]#信号、BPRI#信号、BNR#信号、LOCK#信号 に依存する。BR[3:0]#信号はバス要求信号であり、バス所有権要求を受 け取ったり、送ったりするために使用される。BPRI#信号は優先順位要求信 号であり、エージェントが高優先順位のバス・エージェントからバス所有権要求 を受け取っていることを示すために使用される。さらに、LOCK#信号はバス ・ロック・トランザクション信号であり、あるエージェントによって、バス所有 権が現在ロックされていることをすべての他のエージェントに知らせるために使 用される。すなわち、エージェントがLOCK#信号をアサートしている間にバ ス所有権を変更することはできない。BNR#信号は、任意のエージェントによ って、すべての他のエージェントが新しいバス・トランザクションをアサートす ることを一時的に要求するためにアサートされる。 要求フェーズでは、新しいバス・トランザクション要求を作成するために使用 される信号はADS#、REQ[4:0]#、A[35:3]#、AP[1:0 #、RP#てある。ADS#をアサートすることは、要求フェーズ中の残りの信 号が有効であることを示す。REQ[4:0]#は、バス・トランザクション中 に出された要求のタイプを示す。A[35:3]#は、要求されたバス・トラン ザクションのターゲットとされるアドレスが、もしあれば、それを示す。RP# およびAP[1:0]#は、それぞれ信号REQ[4:0]#およびA[35: 3]#に対するパリティ保護を行う。この応用例では、信号ADS#、REQ[ 4:0]#、A[35:3]#、AP[1:0]#、RP#は、ADS#がアサ ートされたときから2連続クロック・サイクルにわたって有効である。参照を容 易にするために、第1のクロック・サイクルでアサートされる信号には下付き文 字“a”が付加され、第2のクロック・サイクルでアサートされる信号には下付 き文字“b”が付加される。たとえば、第1のクロック・サイクルでアサートさ れるREQ0#を“REQa0#”と呼ぶ。同様に、第2のクロック・サイクル でアサートされるREQ0#を“REQb0#”と呼ぶ。 エラー・フェーズでは、要求信号がパリティ・エラーを含む場合にはAERR #がアサートされる。AERR#がアサートされると、進行中のトランザクショ ンが中止され、トランザクションを発行しているエージェントはそのトランザク ションを調停フェーズから再開する必要がある。AERR#がアサートされた場 合、すべてのエージェントがその調停状態を再同期させ、調停の失敗によって発 生したパリティ・エラーのための「自動補正」を可能にする必要もある。 スヌープ・フェーズでは、好ましい実施形態でスヌープ結果を与えるために使 用される信号はHIT#およびHITM#である。HIT#は、要求されたデー タを共用状態または専用状態(下記で定義する)にし、要求されたデータを共用 状態で要求側エージェント自体のキャッシュに入力すべきであることを要求側エ ージェントに示したあらゆるキャッシング・エージェントによってアサートされ る。HITM#は、要求されたデータを修正済み状態(下記で定義する)にした キャッシング・エージェントによってアサートされる。スヌープ・フェーズ中に HITM#がアサートされた場合、第6図および第7図に関して論じるようにデ ータ・コヒーレンシを保存できるように暗黙的書き戻しと呼ばれる特殊なトラン ザクションを行わなければならないことが要求側エージェント、スヌーピング・ エージェント、メモリ・エージェントに通知される。 エージェントがスヌープを完了する追加時間を必要とする場合、HIT#とH ITM#を同時にアサートし、2サイクルにわたってスヌープ・フェーズを遅延 させることができる。これによって、パイプライン化が一時的に停止されるが、 それをフラッシュさせる必要はなくなる。また、応答側エージェントは、必要な データがただちには得られないと判定した場合、後でトランザクションを再開し て要求されたデータを提供し、あるいは要求側エージェントにトランザクション を再試行させるオプションを、応答側エージェントに提供するDEFER#信号 をアサートすることができる。 応答フェーズは、トランザクションの終わりと、応答/スヌープ開始データ・ フェーズが開始したことを示す。信号RS[2:0]#は、応答フェーズが開始 されたこととトランザクションの結果を示すコード化メッセージを送るために使 用される。これらの「応答結果」を下記の表Aにリストする。 応答結果は、RS[2:0]#がアサートされるまで「アイドル」のままであ る。「再試行」応答が可能なのは、スヌープ・フェーズ中に(非活動状態のHI TM#を含む)DEFER#がアサートされたときだけである。再試行応答を用 いる場合、応答エージェントは、トランザクションを再試行しなければならない ことを要求側エージェントに知らせる。「ハード障害」は、トランザクションの 障害を示す有効な応答である。要求側エージェントは、回復処置をとる必要があ る。「データなし」応答が必要なのは、アドレスされたエージェントからデータ が返されず、かつスヌープ・フェーズ中にDEFER#およびHITM#が非活 動状態であるときである。「暗黙的書き戻し」は、スヌープ・フェーズ中にHI TM#がアサートされたときに必要な応答である。スヌーピング・エージェント は、修正済み状態であることが分かったキャッシュ線を送るために必要である。 メモリ・エージェントは、応答をドライブし修正済みキャッシュ線を受け入れる ために必要である。「正常データ」応答が必要なのは、要求フェーズからのバス 要求が読取り応答を必要とし、かつスヌープ・フェーズ中にHITM#とDEF ER#が共にアサート解除されているときである。「正常データ」応答を用いる 場合、応答側エージェントは、読取りデータを応答と共に送る必要がある。 データ・フェーズ中には、いくつかのバス線、すなわち、D[63:0]#、 DEP[7:0]#、DRDY#、DBSY#に関連付けられたバス線がドライ ブされる。D[63:0]#はデータ信号であり、それぞれ、64本のデータ線 を通して1データ・ビットを専用に伝搬する。DEP[7:0]#はパリティ信 号であり、D[63:0]#と共に使用される。DRDY#およびDBSY#は 、データ線D[63:0]#の使用を調和させ制御するために使用される信号で ある。すべてのデータ・フェーズ・バス信号、DBSY#、DRDY#、D[6 3:0]#、DEP[7:0]#は、データ転送エージェントによってドライブ される。クロック・サイクル“n”中に線D[63:0]#上にデータを置くに は、次のトランザクション中にこのデータ線が空くことを示すDBSY#のアサ ート解除をデータ転送エージェントがクロック・サイクル“n−1”中に観測し なければならない。DRDY#がアサートされるのは、データ線D[63:0] #上に有効なデータが置かれたときである。また、要求開始型(「書込み」)ト ラン ザクションに関するデータ・フェーズの前のあるときに応答側エージェントによ ってバス信号“TRDY#”がアサートされ、応答側エージェントが要求側エー ジェントからデータを受け取る準備が完了したことが示される。TRDY#は、 暗黙的書き戻しトランザクション中に修正済みデータを含むデータをスヌーピン グ・エージェントから受け取る準備ができたことを示すためにも使用される。 下記のプロトコル規則は、データ・フェーズ中のデータ転送を調和させるため に使用される上記の制御信号の使用法を規定したものである。要求フェーズとデ ータ・フェーズとの間の相互作用は、あるトランザクションと次のトランザクシ ョンとの間の円滑な遷移を確保するために重要なので、要求フェーズに関するプ ロトコル規則についても論じる。 n番目の要求開始型(「書込み」)トランザクションに応答して、要求フェー ズの第1サイクルから最低で3クロック・サイクル後および前のn−1番目のト ランザクションの応答フェーズから最低で1クロック・サイクル後にトランザク ションが転送すべき書込みデータをトランザクションが有するときに要求開始型 TRDY#がアサートされる。応答側エージェントは、TRDY#信号をアサー トすることに責任を負う。また、n番目のトランザクションに関するスヌープ結 果がHITM#がアサートされたことを示す場合には必然的に、スヌープ開始型 TRDY#をアサートしなければならない。スヌープ開始型TRDY#がアサー トされたことは、応答側エージェントの暗黙的書き戻しデータを受け入れる準備 が完了したことをスヌーピング・エージェントに示す。 TRDY#をアサート解除できるのは、非活動状態のDBSY#および活動状 態のTRDY#が1クロック・サイクルにわたって観測されたときである。TR DY#がアサートされたクロック・サイクルにDBSY#が非活動状態であるこ とが観測され、次のクロック・サイクルが、前にTRDY#がアサートされてか ら3クロック・サイクル後である場合、1クロック・サイクル後にTRDY#を アサート解除することができる。応答結果が与えられるまでTRDY#をアサー ト解除する必要はない。ただし、書込みトランザクション中に暗黙的書き戻しが 要求された場合はそうではなく、この場合、TRDY#をできるだけ早くアサー ト解除し、暗黙的書き戻しに必要な第2のアサートを可能にしなければならない 。 n番目のトランザクションに関するスヌープ結果が与えられ、前のn−1番目 のトランザクションに関する応答結果が与えられた後、n番目のトランザクショ ンに関する応答結果(応答フェーズ)が与えられる。トランザクションが書込み データを含む場合、応答フェーズを実行できるのは、TRDY#がアサートされ 、非活動状態のDSBY#と共に観測された後だけである。トランザクションが 書込みデータを含み、暗黙的書き戻しを伴う場合、応答フェーズを実行できるの は、TRDY#が2度にわたってアサートされ、非活動状態のDSBY#と共に 観測された後である。応答結果が正常データ応答を示す場合、応答フェーズを実 行できるのは、前のトランザクションのDBSY#アサートが非活動状態である ことが観測された後だけである。 一般に、TRDY#に応答するエージェントは、TRDY#が活動状態である ことが観測され、DBSY#が非活動状態であることが観測された後に、データ を提供し、あるいはDBSY#を1クロック・サイクルにわたってアサートしな ければならない。データがまだ得られない場合はDBSY#をアサートしてデー タ線を「保持」することができる。データを提供するエージェントがTRDY# を観測した場合、それが、現在DBSY#をアサートしているエージェントであ り、かつDBSY#がアサート解除されることを事前に予想することができる場 合には、DBSY#がアサート解除されたことが観測される1クロック・サイク ル前にそのデータの書込みを開始することができる。読取り転送は、応答フェー ズがドライブされるのと同じクロック・サイクルで開始しなければならない。こ のプロトコルは、様々な動作の一連の例示的な図を介して示すことができる。 本発明の好ましい実施形態で使用されるシステム・バスは、MESIキャッシ ュ・プロトコルを使用することによってデータ・コヒーレンシを維持する。ME SIキャッシュ・プロトコルでは、システム・バス上の各キャッシング・エージ ェントは4つの状態のうちの1つを、そのエージェントがキャッシュする各デー タ線に関連付ける必要がある。これらの状態とは、「修正済み」、「専用」、「 共用」、「無効」であり、したがってMESIと呼ばれる。具体的には、修正済 み状態のキャッシュ線は、データが、キャッシング・エージェントによって変更 され、したがってメモリ・エージェントから得られるデータと異なるものとな っていることを示す。システムが正しく動作している場合、修正済み状態のこの データは、最新のデータ・バージョンである。また、専用状態のキャッシュ線は 、キャッシング・エージェントが、メモリ・エージェントに記憶されているデー タと同じデータを有し、現在同じデータをキャッシュしている他のキャッシング ・エージェントがないことを示す。共用状態のキャッシュ線は、そのキャッシン グ・エージェント、他のキャッシング・エージェント、メモリ・エージェントが 現データ・バージョンを有することを示す。無効状態のキャッシュ線は、キャッ シュ線内のデータが無効であることを示す。要求フェーズ中に提供された情報に 基づいてスヌープを実行し、次いでそのスヌープ・フェーズの結果をアサートす るよう各キャッシング・エージェントに要求することにより、システム・バス上 のあらゆるトランザクションによってMESIキャッシュ・プロトコルを使用す ることができる。 第3図は、要求開始型データ転送または書込みトランザクションを示すタイミ ング図である。この図で、“Tn”はシステム・バス・クロック(“CLK”) のn番目のクロック・サイクルを示す。ADS#およびREQa0#は、トラン ザクション要求を開始するために使用される信号である。この応用例全体にわた って、すべての事象は、観測される1クロック・サイクル前にアサートされる。 たとえば、ADS#は時間T2でローになり、あるいは観測されるものとして示 されている。これは、ADS#がクロック・サイクルT1中に、あるエージェン トによって論理ローとしてアサートされた結果である。この規約が使用されるの は、トランザクションがバス全体にわたって観測されるのに1クロック・サイク ルかかるからである。円は、信号が観測されることを示し、これに対して、正方 形はアサートを示すために使用される。 依然として第3図を参照すると分かるように、要求側エージェントが、システ ム・バスの制御を得て、時間T2での信号ADS#およびREQa0#のアサー トによって示したようにトランザクションの要求フェーズ中に書込み要求を発行 したときに、要求開始型トランザクションが開始する。要求側エージェントは次 いで、時間T5でそのデータを受け取るエージェント、通常は、DRAMに結合 されたメモリ制御装置によってTRDY#がアサートされるまで待機する。スヌ ープ・フェーズ中のクロック・サイクルT6には信号HITM#はアサートされ ないので、暗黙的書き戻しトランザクションは必要とされない。TRDY#がア サートされた後、要求側エージェントは、DBSY#がアサートされているかど うかを判定する。DBSY#は時間T4およびT5ではアサートされておらず、 要求側エージェントは、データ・フェーズ中に、DRDY#をアサートし、同時 に線D[63:0]#上にデータを置くことによって、クロック・サイクルT6 でデータの供給を開始する。これはクロック・サイクルT7で観測される。 トランザクションが、単一の8バイト・チャンクを使用する部分キャッシュ線 書込みであるため、次のクロック・サイクル中にはデータ線D[63:0]#が 使用できるので、DBSY#をアサートする必要はない。トランザクションで複 数の8バイト・チャンクが使用される場合、DBSY#はT6でアサートされ、 最後のチャンクが与えられる1クロック・サイクル前までアサートされたままに なる。TRDY#がアサートされ、非活動状態のDBSY#と共に観測された後 、応答結果が書込みトランザクションの間アサートされる。 第4図は、データ転送を含む応答開始型(「読取り」)トランザクションのタ イミング図である。読取りトランザクションが開始するのは、時間T2で示した バス・トランザクションの要求フェーズ中に、ADS#をアサートしREQa0 #をアサート解除することによって読取り要求が出されたときである。読取り要 求が出された後、要求側エージェントは、DRDY#がアサートされ、システム ・バス上に有効なデータが置かれたことが示されるまで待機し、その後、そのデ ータの読取りを開始する。応答開始型トランザクション中にはTRDY#をアサ ートする必要はない。トランザクションが、2つの8バイト・チャンクを使用す る部分キャッシュ線読取りなので、DBSY#はT8、すなわち第2のチャンク が与えられるクロック・サイクルの1クロック・サイクル前までアサートされな い。読取りトランザクション中には、スヌープ結果が観測されDBSY#が非活 動状態であることが観測されてから1クロック・サイクル後に応答結果がアサー トされる。 第5図は、暗黙的書き戻しを使用するデータ転送を含む応答開始型トランザク ションのタイミング図である。このトランザクションは、T2でADS#がアサ ートされREQa0#がアサート解除され、読取りトランザクションであること が示されたときに開始する。次いで、キャッシング・エージェントは、それ自体 のキャッシュをスヌープし、要求された最新のデータ・バージョンを有すること を検出すると、トランザクションのスヌープ・フェーズ中のT6にHITM#を アサートすることによって、そのキャッシング・エージェントがそのデータを所 有していることを示す。スヌーピング・エージェントは次いで、要求側エージェ ントにデータを提供する責任を負う。HITM#がアサートされた後、応答側エ ージェントは、たとえ前にはそうする必要がなかった場合でも、TRDY#をア サートしキャッシング・エージェントからデータを受け取る責任を負う。これは 、T7で行われT8で観測される。スヌーピング・エージェントは、TRDY# がアサートされたことを検出し、線D[63:0]#上にデータを置きDBSY #およびDRDY#をアサートすることによってデータの提供を開始する。この 例のキャッシング・エージェントは1クロック・サイクルおきにしかデータ・チ ャンクを提供できないので、DRDY#は1クロック・サイクルおきにしかアサ ートされず、DBSY#は、T16で最後のデータ・チャンクが観測される1ク ロック・サイクル前にアサート解除されたことが観測される。要求結果は、クロ ック・サイクルT8でTRDY#がアサートされたことが観測されDBSY#が アサート解除されたことが観測された後、クロック・サイクルT9でアサートさ れ、T10で観測される。 第6図は、書込みトランザクション中に行われる暗黙的書き戻しを示す例示的 なタイミング図である。書込みトランザクション中に暗黙的書き戻しを行うとき には、2回のデータ転送が必要である。第1のデータ転送は、通常要求開始型書 込みであり、第2のデータ転送は暗黙的書き戻しである。受け取り側エージェン トは、通常はメモリ・エージェントであり、両方の書込みを受け取り、情報を1 本のキャッシュ線としてマージし、このキャッシュ線がメモリに入力される。 時間T2で、ADS#およびREQa0#をアサートすることによって書込み 要求が発行された後、応答側エージェントは、3クロック・サイクルが経過した 後T5で第1のTRDY#をアサートする。T6で、暗黙的書き戻しが必要であ ることを示すHITM#が観測される。やはり受け取り側エージェントによって 行われたこの第2のTRDY#アサートは、T6でスヌープ結果が観測された後 、かつ2回のアサートを区別できるようにT6で第1のTRDY#がアサート解 除された後に、T8で観測され、行われる。要求側エージェントは、T5で第1 のTRDY#がアサートされた後、DRDY#およびDBSY#をアサートし線 D[63:0]#上にデータを置くことによってデータの提供を開始する。スヌ ープ側エージェントは、T10でDBSY#をアサートしてデータを提供する意 図を示す前に、T8でDBSY#がアサート解除され要求開始型データ転送が完 了したことが示されたことを検出するまで待機しなければならない。T10でD BSY#がアサートされるが、データは実際には、T12でDRDY#がアサー トされるまで提供されないことに留意されたい。スヌーピング・エージェントは 、データを有さない場合、T10でDBSY#をアサートせず、データ転送は行 われない。T10で、暗黙的書き戻し応答を示す応答結果がシステム・バス上に 置かれる。 第7図は、定常状態で行われる複数の部分キャッシュ線読取りトランザクショ ンを示すタイミング図である。各トランザクション中には1つのデータ・チャン クしか書き込まれないので、DBSY#はアサートされない。図で示したように 、この定常状態では読取りを3クロック・サイクルおきに行うことができる。 第8図は、同じエージェントからバック・ツー・バックで行われる全キャッシ ュ線読取りの定常状態動作を示す。トランザクション1に関する応答およびデー タ転送は、T8、すなわちスヌープ・フェーズから2クロック・サイクル後に行 われる。データは、4連続2クロック・サイクル・タイム・フレームで送られる 。DBSY#は、トランザクション1ではT8でアサートされ、T11、すなわ ち最後のデータ転送の前のクロック・サイクルまでアサートされたままになる。 データが同じエージェントから提供されている場合にのみ、中間ターンアラウン ド・サイクルなしで連続データ転送を行うことができる。これは、エージェント が、クロック・サイクルT11およびT15でDBSY#がアサート解除される ことを予想し、クロック・サイクルを失わずに次のトランザクションのデータ・ フェーズを開始することができるためである。TRDY#がアサートされないの は、読取りトランザクションがあり、かつスヌープ結果が、暗黙的書き戻しデー タ転 送がないことを示すからである。信号RS[2:0]#がアサートされることに よって示される応答フェーズと同じクロック・サイクルに第1のデータ転送を行 わなければならないことに留意されたい。現トランザクションに関する応答が「 正常データ」または暗黙的書き戻し応答である場合、この応答をドライブできる ようにするには、前のトランザクションに関するDBSY#をアサート解除して おかなければならない。 第9図は、フルスピード部分キャッシュ書込みトランザクションを含むシステ ム・バスの定常状態動作を示す。第1のトランザクションは、アイドル状態のシ ステム・バス上で行われ、第3図の簡単な書込みケースに類似している。TRD Y#はT5、すなわちADS#およびREQ[4:0]#がアサート解除されて から3クロック後にアサートされる。T6で暗黙的書き戻しがないことを示す非 活動状態のHITM#が観測された後、T8で応答結果がアサートされる。T5 で、TRDY#が活動状態であることが観測され、DBSY#が非活動状態であ ることが観測される。したがって、DRDY#がアサートされることによって示 されるようにT7でデータ転送を開始することができる。データ転送には1クロ ック・サイクルしかかからないので、DBSY#はアサートされない。第2のト ランザクションに関するTRDY#は、第1のトランザクションに関する応答結 果がサンプリングされるまで待機しなければならない。TRDY#は、応答結果 が観測された後のクロック・サイクルでアサートされる。第2のトランザクショ ンに関するスヌープ結果がT9で観測されたので、T11で応答をドライブする ことができる。T10でTRDY#が観測されると共に、DBSY#がアサート 解除され、T12でデータがドライブされる。 第10図は、2つのエージェントのみの間のデータ転送を含むフルスピード全 キャッシュ線書込みトランザクションを含むバスの定常状態動作を示す。第1の トランザクションはアイドル状態のシステム・バス上で行われる。TRDY#は T6まで据え置かれる。応答結果は、T6で観測された非活動状態のHITM# が、暗黙的書き戻しがないことを示した後に、T8でドライブすることができる が、この例ではT9でドライブされる。T6で、TRDY#が活動状態であるこ とが観測され、DBSY#が非活動状態であることが観測される。したがって、 DBSY#がアサートされることによって示されるように、T8でデータ転送を 開始することができる。 RS[2:0]#とTRDY#が共に同じエージェントから得られたものであ る場合、応答結果がドライブされた後のクロック・サイクルで第2のトランザク ションに関するTRDY#をドライブすることができる。同じエージェントが両 方の要求開始型データ転送をドライブする際は、特殊な最適化を行うことができ る。要求側エージェントは、T11で、DBSY#をアサート解除し、トランザ クション2に関してアサートされたTRDY#をサンプリングし、トランザクシ ョン2に関するデータ転送を所有しているので、T12、すなわちDBSY#が アサート解除されてから1クロック後に次のデータ転送をドライブすることがで きる。T12で、データを受け取ったエージェントは、活動状態のTRDY#お よび非活動状態のDBSY#をサンプリングし、T12から開始するデータ転送 を受け入れる。トランザクション2に関するスヌープ結果がT9で観測されたの で、応答側エージェントはT12で自由に応答をドライブすることができる。 要求側エージェントによって待機状態が挿入されることはないことに留意され たい。この場合、最終的にバスのバック・エンドがフロント・エンドを抑圧する が、全バス帯域幅を達成することができる。一実施形態では、マイクロプロセッ サは、ある種の例でそれが回避できる場合でも常に、書込みデータ転送間にター ンアラウンド・サイクルを挿入する。 暗黙的書き戻しトランザクション中の2回のパイプライン式トランザクション 間でデータ・コヒーレンシを維持するために、最初にトランザクションを要求し たエージェント(すなわち、要求側エージェント)は、この第1のトランザクシ ョンのスヌープ・フェーズを観測した後にキャッシュ線のスヌープ責任を負う。 また、要求側エージェントは常に、応答フェーズを観測し、スヌープ開始型転送 の暗黙的書き戻しに、要求されているもの以外のデータが含まれるかどうかを判 定する。たとえば、最初の要求が部分線読取りトランザクション、すなわちキャ ッシュ線全体の一部しか必要としないトランザクションである場合、要求側エー ジェントは、32バイトを含むキャッシュ線書き直しの第1の8バイト・チャン クから必要なデータを得る。最初の要求が線読取りトランザクションまたは線読 取り無効化トランザクション(すべての他のキャッシング・エージェントにデー タを無効状態にするよう通知するトランザクション)である場合、要求側エージ ェントは線全体を吸収する。最初の要求が線無効化トランザクションであり、こ の線が他のキャッシュ内で修正されている場合、要求側エージェントは、スヌー プ開始型データ・フェーズで受け取った更新済みキャッシュ線で内部キャッシュ 線を更新する。最初の線無効化トランザクションがデファード応答を受け取った 場合、デファード応答のスヌープ・フェーズ中のHITM#は、データが返され ることを示し、要求側エージェントはそのデータで内部キャッシュを更新する。 要求側エージェントがキャッシュ線に対するスヌープ責任を受け入れ、ただちに その後のトランザクションに応答してその責任を放棄すると、暗黙的書き戻しを 実行する前にキャッシュ線を1度だけ内部用途に使用することができる。 要求側エージェントは、読取り/書込みトランザクション中に他のエージェン トにそのキャッシュをスヌープさせるだけでなく、要求側エージェント自体のキ ャッシュをスヌープすることができる。この自己スヌープ機能によって、要求側 エージェントはそれ自体のトランザクション要求をスヌープし、スヌープ・フェ ーズ中にスヌープ結果を提示することができる。スヌープが要求側エージェント のキャッシュ中の「修正済み」キャッシュ線をヒットした場合、要求側エージェ ントはHITM#をアサートし、スヌープ開始型データ・フェーズの責任を負う 。メモリ・エージェントは、自己スヌープ機能のための書き直しと通常のスヌー プ機能のための暗黙的書き戻しを区別しない。いずれの場合も、アドレスされた メモリ・エージェントは、応答側エージェントのままとなり、暗黙的書き戻しも 受け取り、それを書込みデータとマージする。 たとえば、要求側エージェントが、バス・ロック変数と呼ばれるある種のデー タにアクセスすると、キャッシュ線は、バス・トランザクションを発行する前に 内部キャッシュ・ロックアップを行う必要なしにバス・ロック・トランザクショ ンの一部として内部キャッシュから取り出される。したがって、トランザクショ ンでは自己スヌープ機能が必要である。自己スヌープ機能は、ページ・テーブル 項目(すなわち、ページ属性)によって、アクセスされた変数がキャッシュ不能 (キャッシュ・メモリに記憶すべきではないデータ)と定義されている場合にも 必要である。この場合、内部キャッシュ・ロックアップは実行されずに、トラン ザクションがシステム・バスに発行される。ページ・テーブル・エイリアシング またはその他の理由のために、キャッシュ線は依然としてその内部キャッシュに 存在することができる。この場合、キャッシュ線は、バス・トランザクションの 一部としてキャッシュから書き直される。 簡単に言えば、スヌーピング・エージェントとは、トランザクションのスヌー プ・フェーズ中にHITM#をアサートするエージェントである。スヌーピング ・エージェントは、暗黙的書き戻し中に2つのパイプライン式トランザクション 間のデータ・コヒーレンシを維持するある種の責任も有する。HITM#をアサ ートする際、スヌーピング・エージェントはトランザクションの暗黙的書き戻し に対する責任を引き受ける。スヌーピング・エージェントは、メモリ・エージェ ントからのスヌープ開始型TRDY#アサートを待ち、メモリ・エージェントに よる暗黙的書き戻し応答アサートに同期した活動状態のTRDY#(および非活 動状態のDBSY#)から厳密に2クロックに渡ってDBSY#をアサートする ことによって暗黙的書き戻しデータ転送を開始する。 TRDY#がスヌープ開始型のものであるか、それとも要求開始型のものであ るかは、トランザクションを開始させた要求のタイプによって判定される。書込 みトランザクションでは、第1のTRDY#アサートは常に書込みデータ転送を 要求し(要求開始型データ転送)、任意選択で、第2のTRDY#アサートは暗 黙的書き戻しデータ転送を要求する(スヌープ開始型データ転送)。スヌープさ れたトランザクションがキャッシュ線全体を書き込む場合、スヌーピング・エー ジェントは暗黙的書き戻しデータを送っても、あるいは送らなくてもよい。 最初にトランザクションの対象となり、通常はDRAMを制御するエージェン トは、アドレスされるメモリ・エージェントと呼ばれる。アドレスされたメモリ ・エージェントは、暗黙的書き戻し中に2つのパイプライン式トランザクション 間のデータ・コヒーレンシを維持するある種の責任も負う。アドレスされたメモ リ・エージェントは、スヌープ・フェーズ中に活動状態のHITM#を観測する と、応答側エージェントのままとなるが、暗黙的書き戻し応答に対する応答を変 更する。トランザクションは、要求開始型データ転送(書込み)を含む場合、依 然として、書込みデータ転送を開始できることを示すTRDY#のアサートに責 任を負う。 スヌープされたトランザクションが要求開始型データ転送であり、スヌープ開 始型データ転送(たとえば、修正済み線書き直し)を含む場合、トランザクショ ンは2回のデータ転送を含む。要求開始型TRDY#に関するTRDY#のアサ ートおよびアサート解除が完了した後、メモリ・エージェントは、修正済み線書 き直しを受け取る空きキャッシュ線バッファを確保した後、スヌープ開始型TR DY#をアサートする。メモリ・エージェントは、活動状態のTRDY#および 非活動状態のDBSY#から厳密に2クロック・サイクルにわたって、エージェ ントの暗黙的書き戻しデータ転送に関するスヌーピング・エージェントからのD BSY#のアサートと同期した暗黙的書き戻し応答をドライブする。メモリ・エ ージェントは、書込みデータと書き直しキャッシュ線をマージする責任も負う。 メモリ・エージェントは次いで、最新のキャッシュ線データでメイン・メモリを 更新する。スヌープされたトランザクションがキャッシュ線全体を書き込む場合 、暗黙的書き戻しデータはあっても、あるいはなくてもよい。DBSY#が活動 状態のTRDY#および非活動状態のDBSY#から厳密に2サイクルにわたっ てアサートされない場合、暗黙的書き戻しデータはない。 第11図は、2つの順次(すなわち、バック・ツー・バック)パイプライン式 トランザクションが同じデータ位置を要求する状況を示し、したがって、パイプ ラインが維持されている間データ・コヒーレンシがどのように維持されるかを示 すタイミング図である。第1のバス・エージェント(“A1”)は、論理ローA DS#をアサートすることによってクロック・サイクルT2で第1の線無効化ト ランザクションを開始する。A1がこのデータを修正するので、線無効化トラン ザクションは、システム上のすべての他のメモリ・エージェントに、このデータ 位置を無効状態にするよう通知する。3サイクル後、第2のバス・エージェント (“A2”)が、やはりADS#上の論理ローによって示される同じアドレスを 要求する。本発明を組み込んだシステム・バスの好ましい実施形態では、A1は この第2の要求を観測し、この要求が、A1が第1のトランザクションで要求し たのと同じデータ位置に関するものであると判定する。A1は、第1のトランザ クションのスヌープ・フェーズの後にこのデータ位置の所有権を得るので、適当 なスヌープ結果を与え、第2のトランザクションのスヌープ・フェーズ中にHI TM#をアサートする。 第2のトランザクションのスヌープ・フェーズ中にHITM#をアサートする ことによって、A2とシステム・バス上のメモリ・エージェントに、A1がデー タ・フェーズ中に必要なデータを提供することが知らされる。第1のトランザク ションの応答フェーズはクロック・サイクルT8中に実行され、第1のトランザ クションが完了したことが示される。クロック・サイクルT11中に、A2は、 TRDY#をアサートすることによって、アドレスされたデータを受け取る準備 が完了したことを示す。2クロック・サイクル後、A1は、RS[2:0]#、 DBSY#、D[63:0]#をアサートすることによってそのデータの提供を 開始する。したがって、同じデータを要求する2つのパイプライン式トランザク ションにわたってデータ・コヒーレンシが維持される。 本発明の好ましい実施形態では待ち時間の長いトランザクションもサポートさ れる。要求されたデータを提供する責任を負うが、要求時にはそうすることがで きないエージェントは、情報を含む要求が、DEFER#信号が適切でないこと を示していないかぎり、スヌープ・フェーズ中にDEFER#信号をアサートす ることができる。これは、長い待ち時間のトランザクションの例である。他のエ ージェントがHITM#をアサートしなかった場合、現トランザクションの応答 フェーズ中に固有のデファード・コードが入力され、応答側エージェント(すな わち、DEFER#をアサートしているエージェント)が、それ自体がデータを 提供し新しい動作を開始することができると判定するまでデータ転送が据え置か れる。このデファード動作は、要求側エージェントが、まだ得られないデータに 対する周期的要求を発行する必要をなくするので有用である。これによって、不 要なバス・トランザクションがなくなり、ある種のケースでは、いくつかのエー ジエントが未成功の再試行トランザクションを発行する優先順位を無駄にする必 要がある競合条件を防止することができる。 厳密に1つのエージェントが、デファード動作のメモリ・エージェントまたは 入出力エージェントである。メモリ・アドレスされたこのエージェントがデファ ード応答で応答できるようにするために、トランザクションのスヌープ・フェー ズ中にDEFER#信号がアサートされる。この処置によって、トランザクショ ンが据え置かれる可能性があり、かつインオーダー完了が保証できないことを示 す初期表示が要求側エージェントに与えられる。その結果、要求側エージェント は、デファード動作が首尾良く完了するまでその後の順序依存トランザクション の発行を停止しなければならない。他のキャッシング・エージェントが、暗黙化 書き直しを含むトランザクションを順序正しく完了する責任を引き継ぐので、ス ヌープ・フェーズの活動状態のHITM#が活動状態のDEFER#信号を無効 にすることに留意されたい。 暗黙的書き戻しトランザクションの場合とまったく同じように、メモリ順序付 けを維持することと、デファード動作中のスヌープ責任を明確に定義することは 、デファード動作を行い、同時にバス・パイプラインを維持しマルチプロセッサ ・システムにおけるデータ・コヒーレンシを維持することができるようにするう えで重大である。スヌープ・フェーズ中にトランザクションに関するDEFER #がアサートされた後、依然としてメモリ・エージェントまたは入出力エージェ ントが責任を負っている場合(非活動状態HITM#)、そのエージェントはキ ャッシュ線へのその後のアクセスでの(要求側エージェントの代わりに)その線 に対するスヌープ責任を負う。アドレスされたエージェントが再試行応答で応答 する場合にも(HITM#が非活動状態であると仮定する)、スヌープ・フェー ズ中にDEFER#がアサートされることに留意されたい。トランザクションに 関してDEFER#がアサートされ、HITM#が非活動状態である場合、メモ リ・エージェントまたは入出力エージェントは、(再試行応答で)トランザクシ ョンを取り消し、あるいは応答フェーズ中にデファード応答を与える必要がある 。 第12図は、デファード応答と、その後に続く、読取り動作の対応するデファ ード応答を示す。T2で、要求側エージェントは、線読取り要求を発行する際に ADS#をアサートしREQ[4:0]#をドライブする。T5およびT6で、 スヌープ・フェーズ中に、要求がアドレスされたエージェント(すなわち、「応 答側エージェント」)は、トランザクションを順序正しく完了することはできな いと判定し、したがってT6でDEFER#をアサートする。T6でHITM# が非活動状態であることが観測されるので、応答側エージェントは、T8でRS [2:0]#に対する適当なコード化をアサートすることによって「デファード 応答を返す。 T10の前に、応答側エージェントは、デファード要求で必要とされるデータ を得る。T10で、最初の応答側エージェントは、最初のトランザクションの装 置識別“DID[7:0]#”信号からラッチされた値をアドレスとして使用し て、デファード応答トランザクションを発行する。T13で、応答側エージェン トは、返された線の最後のキャッシュ状態を示すHIT#信号に対する有効なレ ベルをドライブする。最初の要求側エージェントは、スヌープ責任を負う。T1 5で、最初の要求側エージェントは、通常の完了応答をドライブし、データ・フ ェーズも開始する。 T11で、最初の要求側エージェントは、デファード応答トランザクションを 観測する。要求側エージェントは、その未処理のトテンザクション待ち行列に最 初の要求と共に記憶されているデファード識別子とDID[7:0]#を突き合 わせる。最初の要求側エージェントはT14で、返されたキャッシュ線の最後の 状態を観測する。T16で、要求側エージェントは、トランザクション応答を観 測し、未処理トランザクション待ち行列および第14図に示したインオーダー待 ち行列(“IOQ”)からトランザクションを除去する。これによって、デファ ード動作シーケンス全体が完了する。 データ・コヒーレンシを維持するには、デファード動作中にスヌープ所有権を 明確に定義しなければならない。応答側エージェントは、キャッシュ線トランザ クションのスヌープ・フェーズ中にDEFER#をアサートした後、第1図に示 したバス・クラスタ内のそのキャッシュ線のスヌープ所有権も受け入れる。した がって、バス・クラスタ内の同じキャッシュ線へのその後のアクセスでは、応答 側エージェントは2つの可能な処置、すなわち(i)データおよび(ii)再試 行をとることができる。再試行応答は、競合するトランザクションを取り消すた めに応答フェーズ中に応答側エージェントによって発行される。この機構は、エ ージェントが機能的に正しい動作を行えるようにする手段を提供する。任意選択 で、応答側エージェントは、DEFER#信号を発行し、バス・クラスタ内のキ ャッシュ線状態の全責任を負うことによって複数の再試行要求を有することを回 避する。応答側エージェントは、デファード応答トランザクションを第1の要求 側エージェントに発行する。応答側エージェントは、同じキャッシュ線の次の応 答側エージェントにデファード応答を返す前に、第2の要求のデファード応答が 完了することによる必要に応じて第1の要求側エージェントのキャッシュから得 たキャッシュ線を明示的に無効化する無効化トランザクションを発行する。 応答側エージェントは、最初の要求のデファード応答が完了する前に、前述の クラスタに結合された別のシステム・バスからの要求の結果として線無効化トラ ンザクションを開始することもできる。この場合、応答側エージェントは、シス テム・バスからのインバウンド・トランザクションがシステム・バスからのアウ トバウンド・トランザクションよりも前に実行されるように順序付けている。こ の機構は、複数のバス・クラスタからの同じキャッシュ線への競合アクセス間の 競合条件をなくする機構としてクラスタ・ブリッジ(たとえば、第1図のクラス タ・ブリッジ)によって使用され、複数のバス・クラスタを接続できるようにす る。 第13図は、応答側エージェントが、第1の線無効化要求にデファード要求を 与えるときに行うスヌープ所有権獲得の効果を示す。デファード応答がない場合 、スヌープ所有権はただちに応答側エージェントに移る。T2で、要求側エージ ェント(“1”)は、ADS#をアサートし、REQ[4:0]#をドライブし て第1の線無効化要求を発行する。T5で、異なる要求側エージェント(“2” )がADS#をアサートし、REQ[4:0]#をドライブして同じキャッシュ 線に第2の線無効化要求を発行する。 メモリ・エージェントは、スヌープ・フェーズでDEFER#をアサートし、 応答フェーズでデファード応答をアサートして、第1の線無効化要求にデファー ド応答が与えられることを示す。メモリ・エージェントはまた、第2の線無効化 要求を観測し、要求されたアドレスが、メモリ・エージェントがDEFER#を アサートしたキャッシュ線と同じであることを知る。メモリ・アドレスは、競合 アドレスを知り、スヌープ・フェーズでDEFER#をアサートし、応答フェー ズで再試行応答をアサートして、第2の応答が再試行されることを示す。第2の 要求を再発行するための異なる要求側エージェントによるすべてのその後の試み には、メモリ・エージェントによって再試行応答が与えられる。 T6で、要求側エージェントは、活動状態のDEFER#を観測し、トランザ クションがインオーダー完了に関してコミットされていないことを知る。要求側 エージェントは、キャッシュ線の所有権を受け入れない。その結果、要求側エー ジェントは、T8、すなわち第2のトランザクションのスヌープ・フェーズでH ITM#をアサートしない。T9で、異なる要求側エージェントが、活動状態の DEFER#を観測し、トランザクションがインオーダー完了に関してコミット されていないことを知り、キャッシュ線に対して無効状態のままになる。 メモリ・エージェントは、バス・クラスタ内のキャッシュ線の所有権を得た後 、T14でデファード応答トランザクション2dを開始する。T15で、異なる 要求側エージェントが要求“2r”を再発行する。このとき、メモリ・エージェ ントはトランザクション“2r”に関する再試行応答を生成しない。T17でキ ャッシュ線所有権を得た要求側エージェントは、要求“2r”を観測すると、第 12図と同様に要求を完了する。 第14図は、パイプライン式バスに結合された各エージェントに組み込まれた 「インオーダー待ち行列」のブロック図である。システム・バス上の複数の未処 理トランザクションをサポートするには、任意の特定の時間にシステム・バス上 に配置されている情報を識別し、かつトランザクションで使用されるエージェン トを知ることができるように、各エージェントがある種の最小量の情報を追跡し なければならない。インオーダー待ち行列(“IOQ”)100はこの情報を記 憶する。IOQ100は、複数のトランザクション・レジスタ、たとえば8つの トランザクション・レジスタ101ないし108と、2つの待ち行列ポインタ・ レジスタ110および112と、スヌープ・ポインタ・レジスタ113と、「空 」レジスタ114とを含む。IOQ100の1番上から1番したへ延びる矢印は 、IOQ100が円形であり、そのため、第1の待ち行列ポインタ(すなわち、 「要求」)レジスタ110がトランザクション・レジスタ108を指していると き、要求レジスタ110が増分されると、第1の待ち行列ポインタ・レジスタ1 10がトランザクション・レジスタ101を指すようになることを示す。 好ましい実施形態では8つのトランザクション・レジスタが使用されるが、こ れよりも多くのレジスタを使用することも、あるいはこれよりも少ないレジスタ を使用することもできる。これらのトランザクション・レジスタ101ないし1 08は、データ転送をサポートしていることを示すデータ転送フィールド、トラ ンザクションに関するキャッシング・エージェントによってHITM#がアサー トされたことを示す暗黙的書き戻しフィールド、トランザクションが読取りトラ ンザクションまたは書込みトランザクションであることを示す読取り/書込みフ ィールドなどのフィールドを含む。 バス・トランザクションは、システム・バス上に発行されると、要求レジスタ 110の指すトランザクション・レジスタに入力され、次いで要求レジスタ11 0が増分される。トランザクションに関する応答フェーズを受け取った後、IO Q100の1番上にあるトランザクションが除去され、第2の待ち行列ポインタ 「応答」レジスタ112が増分される。応答レジスタ112は常に要求レジスタ 110よりも遅れる。また、スヌープ・ポインタ・レジスタ113は、現在スヌ ープ中のトランザクションを指す。 待ち行列ポインタ・レジスタ110および112が共に同じトランザクション ・レジスタを指し、かつ空レジスタ114が非活動状態であるとき、IOQ10 0は満杯である。しかし、空レジスタ114が活動状態であるとき、IOQ10 0は空である。未処理のトランザクションがない場命、空レジスタ114はセッ トされる。パリティ・エラーを除いて、トランザクションは、それらが発行され たのと同じ順序で応答およびデータを受け取り、したがってIOQ100の1番 上にある各トランザクションは次に応答フェーズおよびデータ・フェーズ、すな わちトランザクションが完了する前の最後のフェーズに入る。 好ましくは、各エージェントは最低でも、未処理のトランザクションの数、次 にどのトランザクションをスヌープすべきか、どのトランザクションが次に応答 を受け取るべきか、トランザクションはこのエージェントへ発行されたのか、そ れともこのエージェントから発行されたのかの各情報をIOQに記憶する。エー ジェント特有のその他のバス情報も追跡しなければならないが、あらゆるエージ ェントがこの情報を追跡する必要があるわけではない。たとえば、要求側エージ ェントは、このエージェントがあといくつのトランザクションを発行できるか( 注:好ましい実施形態では、マイクロプロセッサは4つの未処理のトランザクシ ョンを有することができる)、このトランザクションは読取りか、それとも書込 みか、このバス・エージェントがデータを提供する必要があるか、それともデー タを受け入れる必要があるかを追跡することができる。応答側エージェントは、 このエージェントがIOQの1番上にあるトランザクションに関する応答を所有 しているかどうか、このトランザクションが暗黙的書き戻しデータを含むかどう か、このエージェントが書き直しデータを受け取る必要があるかどうか、このエ ージェントがデータ転送を所有しているかどうか、トランザクションが読取りで ある場合にこのエージェントがデータを受け入れなければならないかどうか、エ ージェントが必要に応じて次のトランザクションを停止できるようにバッファ資 源が利用できるかどうかを追跡することができる。スヌーピング・エージェント は、トランザクションをスヌープする必要があるかどうか、スヌープ・フェーズ を延長する必要があるかどうか、このトランザクションが、このエージェントか ら供給すべき暗黙的書き戻しデータを含むかどうか、いくつのスヌープ要求が待 ち行列にあるかを追跡することができる。また、トランザクションを据え置くこ とができるエージェントは、デファード・トランザクションおよびそのエージェ ントID、バッファ資源の可用性を追跡することができる。好ましい実施形態で は、すべてIOQを包含する複数の待ち行列または1つの待ち行列を実施するこ とによってこの種のトランザクション情報を追跡することができる。 キャッシュ・コヒーレンシに悪影響を及ぼすアクセス競合が発生する恐れのあ るある種の他の状況がある。このようなアクセス競合は主として、発信トランザ クションが現バス・トランザクションと同じアドレスを有するときに発生する。 このことをより良く理解するためにまず、本発明の好ましい実施形態で使用され る、発信トランザクションが記憶される概念的バッファ構造について説明し、次 いで、競合を解決するために使用される手法について説明する。 第15図は、本発明の一実施形態で使用されるプロセッサ・バッファ構造を示 す。調停時間および応答時間が短いので、バス上の大部分のエージェントはその ようなプロセッサ・バッファ構造を維持しなければならない。プロセッサ・バッ ファ構造の実際の実施態様が、第15図に示したものとまったく同じではないが 、プロセッサ・バッファ構造の趣旨および機能を反映することが企図される。未 処理要求バッファは、ローカル・バスへ送られた要求を含むが、トランザクショ ンは完了されていない。バッファ中のすべての要求をスヌープして、適切な線状 態を確保する必要がある。発信バッファは、これからシステム・バス上で送り出 される要求を保持する。他のエージェントからの現バス・トランザクションのア ドレスがバッファ中の要求に一致する場合、競合を解決することができるように 後述の処置をとる必要がある。 現バス要求のアドレスが発信バッファ中の1つの要求のアドレスに一致すると き、同じバス・クラスタ内で競合が発生する。使用されるすべてのプロセッサが 同じバス上に存在するので、アクセス順序を確立しなければならない。具体的に は、発信要求が読取りまたは部分線書込みである場合、リモート・エージェント の要求はローカル・エージェントの読取り/書込みミスにも部分書込み要求にも 影響を及ぼさないので特殊な処置は必要とされない。 発信要求が読取りを含まない線無効化トランザクションである場合、他のエー ジェントからの現バス要求が線無効化、または部分書込み要求、または線書込み である場合には、他のエージェントからの現要求によって、ローカル・キャッシ ュに存在する現キャッシュ線が無効化されるので、発信線無効化要求を線読取り ・無効化要求に変換する必要はない。他のエージェントからの現バス要求が線読 取りまたは部分線読取りである場合、リモート・エージェントの要求によってロ ーカル・キャッシュ線が除去されることはないので、特殊な処置は必要とされな い。 発信要求が線書き直しトランザクションであり、現バス要求が線読取りトラン ザクション、または部分線読取りトランザクション、または線読取り・無効化ト ランザクション、または線無効化トランザクション、または部分線書込みトラン ザクション、またはBLR線読取りトランザクションである場合、書き直しが暗 黙的書き戻しに変換され、次いで発信要求が除去され、あるいは、現バス要求が 線書込みトランザクションである場合、最適には、現バス要求が線全体を上書き するので暗黙的書き戻しデータ転送が取り消される。 前述のバス・システムは、デファード・トランザクションとマルチプロセッサ 対応データ・コヒーレンシをもたらすパイプライン式バスを提供するだけでなく 、プロセッサの順序付けを可能にする。プロセッサ順序付けは、各マイクロプロ セッサに、順序依存動作を求める要求を、それが依存する動作が観測され、それ を取り消すことができる点(すなわち、スヌープ・フェーズ)を越えるまで延期 させる技法によって行われる。従属動作とは、計算する必要がある他のデータに 作用する動作である。パイプライン式システムでは、プロセッサが2つの順次( すなわち、バック・ツー・バック)命令を要求し、次いでその後のフェーズ中に デファードと再試行のどちらかによって一方の命令を取り消させることができる ので、前述のことが問題となることがある。これは、好ましい実施形態で使用さ れるマイクロプロセッサが、取り消される可能性が高いスペキュラティブ命令を 発行するので可能性の高い事象である。他のエージェントがその後に続くトラン ザクションを発行し、次いで必要なデータを得ることができなくなるのを防止す るには、スヌープ・フェーズに到達しDEFER#がアサートされなくなるまで バック・ツー・バック書込みが待機しなければならない。したがって、バック・ ツー・バック書込みは6クロック・サイクルおきにしかアサートできない。これ に対して、他のトランザクションでは3クロック・サイクルおきにアサートする ことができる。 したがって、マルチプロセッサ対応であり、長い待ち行列のトランザクション を可能にする高度パイプライン式バス・システムを提供する方法および装置につ いて説明した。当業者には、開示したもの以外に本発明の様々な実施形態が可能 であることが明らかになろう。一般に、本明細書で説明する例示的な実施形態は 、本発明を例示するものに過ぎず、その範囲を制限するものとみなすべきもので はない。したがって、本発明は、下記の請求の範囲に関して検討すべきである。
【手続補正書】特許法第184条の8 【提出日】1996年4月16日 【補正内容】 補正請求の範囲 1.少なくとも1つのマイクロプロセッサが選択されたプロトコルに従って動 作するキャッシュを含む複数の第2のマイクロプロセッサを備えた複数のエージ ェントに結合されたバスを含むコンピュータ・システムで、前記複数のエージェ ントのうちの少なくとも1つによって開始された、データを転送する際の複数の マルチフェーズ・バス・トランザクションをサポートする方法であって、 前記少なくとも1つのマイクロプロセッサが、(i)前記複数のマルチフェー ズ・バス・トランザクションの各スヌープ・フェーズ中にキャッシュ・スヌープ を実行し、(ii)前記少なくとも1つのマイクロプロセッサの前記キャッシュ が前記データを修正済み状態で含む場合に、対応するスヌープ・フェーズの直後 のデータ・フェーズ中に前記データを与えることによって、前記データのコヒー レンシを維持するステップと、 (i)前記複数のマルチフェーズ・バス・トランザクションのうちの少なくと も1つに関する情報を与えるためにアドレスされた前記複数のエージェントのう ちの1つが、前記情報を適切な時間に提供することができず、(ii)前記少な くとも1つのマイクロプロセッサの前記キャッシュが前記情報を前記修正済み状 態で含まない場合に、前記複数のマルチフェーズ・バス・トランザクションのう ちの少なくとも1つを据え置くステップとを含む方法。 2.前記維持するステップがさらに、前記データ・フェーズ中に前記データを 与える前に、 前記少なくとも1つのマイクロプロセッサが、前記キャッシュが前記データを 前記修正済み状態で含んでいることを検出した場合に、前記スヌープ・フェーズ 中に前記バスの第1の制御線をアサートするステップを含むことを特徴とする請 求項1に記載の方法。 3.前記維持するステップがさらに、前記第1の制御線をアサートした後およ び前記データ・フェーズ中に前記データを与える前に、 前記少なくとも1つのマイクロプロセッサが、前記キャッシュが前記データを 共用状態または専用状態で含んでいることを検出した場合に、前記スヌープ・フ ェーズ中に前記バスの第2の制御線をアサートするステップを含むことを特徴と する請求項2に記載の方法。 4.前記据え置くステップがさらに、 前記複数のマルチフェーズ・バス・トランザクションのうちの前記少なくとも 1つが据え置かれることを示すデファード信号を、前記エージェントによって前 記スヌープ・フェーズ中に発行するステップと、 対応するデファード応答トランザクションに関する要求アドレスとして使用さ れるデファード識別子を、前記エージェントによって前記応答フェーズ中に記憶 するステップとを含むことを特徴とする請求項1に記載の方法。 5.前記据え置くステップがさらに、 前記エージェントが前記情報を適切な時間に提供し、前記対応するデファード 応答トランザクションを開始し、前記複数のマルチフェーズ・バス・トランザク ションのうちの前記少なくとも1つを完了した後に、前記エージェントによって 記憶されているデファード識別子を発行するステップを含むことを特徴とする請 求項4に記載の方法。 6.前記マルチフェーズ・バス・トランザクションのうちの1つに依存するマ ルチフェーズ・バス・トランザクションを要求することを、前記複数のマルチフ ェーズ・バス・トランザクションのうちの前記1つを据え置くことも、あるいは 取り消すこともできなくなるまで延期するよう、前記複数の第2のマイクロプロ セッサに要求することによって、データを求める前記複数のマルチフェーズ・バ ス・トランザクションのプロセッサ順序付けをおこなうステップをさらに含む請 求項1に記載の方法。 7.少なくとも1つのマイクロプロセッサが選択されたプロトコルに従って動 作するキャッシュを含む複数のマイクロプロセッサとメモリ装置とを含む複数の エージェントを含み、メモリ装置と複数のマイクロプロセッサとが、パイプライ ン式バス・アーキテクチャを使用してシステム・バスに結合されているコンピュ ータ・システムにおいてデータ・コヒーレンを維持する方法であって、 前記メモリ装置の所定のアドレス位置に記憶されているデータを求めるトラン ザクション要求を、前記複数のマイクロプロセッサによって要求フェーズ中に発 行するステップと、 前記所定のアドレス位置に基づくスヌープを前記少なくとも1つのマイクロプ ロセッサによってスヌープ・フェーズ中に実行するステップと、 前記スヌープ・フェーズ中に前記システム・バス上に前記スヌープの結果を与 えるステップとを含み、前記少なくとも1つのマイクロプロセッサが、 前記少なくとも1つのマイクロプロセッサの前記キャッシュが前記データを修 正済み状態で含む場合に第1の制御信号をアサートし、 データ・フェーズ中に前記データを提供する責任を負い、前記トランザクショ ン要求をサポートすることを特徴とする方法。 8.さらに、前記少なくとも1つのマイクロプロセッサが、前記修正済み状態 の前記データが前記キャッシュに含まれていると判定した場合に、前記データ・ フェーズ中に前記少なくとも1つのマイクロプロセッサから前記データを提供す るステップを含むことを特徴とする請求項7に記載の方法。 9.提供するステップが、 前記トランザクション要求が読取りである場合に、前記データを受け取る準備 が完了したことを示す第1の信号を受け取り側エージェントから受け取った後に 前記少なくとも1つのマイクロプロセッサから前記データを提供するステップと 、 前記トランザクション要求が書込みである場合に、前記データを受け取る準備 が完了したことを示す第2の信号を受け取り側エージェントから受け取った後に 前記少なくとも1つのマイクロプロセッサから前記データを提供するステップと を含むことを特徴とする請求項8に記載の方法。 10.結果を提供する前記ステップがさらに、 前記データが、前記キャッシュ内に前記修正状態で含まれていない場合に、前 記少なくとも1つのマイクロプロセッサによって前記第1の制御信号をアサート 解除し、前記メモリ装置に前記データを提供する責任を負わせるステップを含む ことを特徴とする請求項7に記載の方法。 11.前記データ・フェーズ中に前記メモリ装置から前記データを提供するス テップをさらに含む請求項10に記載の方法。 12.少なくとも1つのマイクロプロセッサが選択されたプロトコルに従って 動作するキャッシュを含む複数の第2のマイクロプロセッサを有する複数のエー ジェントに結合されたバスを備えたコンピュータ・システムにおいて、前記複数 のエージェントのうちの少なくとも1つによって開始された、データを転送する 際の複数のマルチフェーズ・バス・トランザクションをサポートする方法であっ て、 (i)前記複数のマルチフェーズ・バス・トランザクションのうちの少なくと も1つに関する情報を与えるためにアドレスされた前記複数のエージェントのう ちの1つが、前記情報を適切な時間に与えることができず、(ii)前記少なく とも1つのマイクロプロセッサの前記キャッシュが前記情報を前記修正済み状態 で記憶していない場合に、前記複数のマルチフェーズ・バス・トランザクション のうちの少なくとも1つを据え置くステップと、 前記マルチフェーズ・バス・トランザクションのうちの1つに依存するマルチ フェーズ・バス・トランザクションを要求することを、前記複数のマルチフェー ズ・バス・トランザクションのうちの前記1つを据え置くことも、あるいは取り 消すこともできなくなるまで延期するよう、前記複数の第2のマイクロプロセッ サに要求することによって、前記複数のマルチフェーズ・バス・トランザクショ ンのプロセッサ順序付けをおこなうステップを含むことを特徴とする方法。 13.さらに、前記少なくとも1つのマイクロプロセッサが、(i)前記複数 のマルチフェーズ・バス・トランザクションの各スヌープ・フェーズ中にキャッ シュ・スヌープを実行し、(ii)前記少なくとも1つのマイクロプロセッサの 前記キャッシュが前記データを前記修正済み状態で含む場合に、対応するスヌー プ・フェーズの直後のデータ・フェーズ中に前記データを与えることによって、 前記データのコヒーレンシを維持するステップを含むことを特徴とする請求項1 0に記載の方法。 14.少なくとも第1および第2のマルチフェーズ・バス・トランザクション をサポートするためにデータを送るバスと、 (i)前記データを記憶するメモリ装置と、(ii)前記メモリ装置から得た データを一時的に含むキャッシュ・メモリを有する少なくとも1つのマイクロプ ロセッサを含む複数のマイクロプロセッサと、を有する複数のエージェントとを 備え、 その複数のエージェントは、前記バスの所有権に関する調停を行い、その後、 1つのエージェントが、現在、前記第2のマルチフェーズ・バス・トランザクシ ョンとは異なるフェーズであり、前記第2のマルチフェーズ・バス・トランザク ションの前に要求された前記第1のマルチフェーズ・バス・トランザクションと 同時にサポートされる前記第2のマルチフェーズ・バス・トランザクションを前 記バス上に置くバス要求を発行することを特徴とするコンピュータ・システム。 15.前記複数のバス・エージェントがそれぞれ、 前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションを 追跡するために必要な情報を含むために前記バスに結合されたインオーダー待ち 行列を含むことを特徴とする請求項14に記載のコンピュータ・システム。 16.前記インオーダー待ち行列が、 前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションに 関する必要な情報を記憶する際に使用される複数のトランザクション・レジスタ を含む円形バッファと、 現在、要求フェーズである、前記少なくとも第1および第2のマルチフェーズ ・バス・トランザクションのうちの一方に関する情報をどの遷移レジスタが含ん でいるかを監視する第1のトランザクション・ポインタ・レジスタと、 現在、応答フェーズである、前記少なくとも第1および第2のマルチフェーズ ・バス・トランザクションのうちの一方に関する情報をどの遷移レジスタが含ん でいるかを監視する第2のトランザクション・ポインタ・レジスタと、 前記円形バッファが空であることを示し、前記円形バッファが満杯であること を示す空レジスタとを備えることを特徴とする請求項15に記載のコンピュータ ・システム。 17.前記インオーダー待ち行列がさらに、現在、スヌープ・フェーズである 、前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションの うちの一方に関する情報をどの遷移レジスタが含んでいるかを監視する第3のト ランザクション・ポインタ・レジスタを含むことを特徴とする請求項16に記載 のコンピュータ・システム。 18.少なくとも第1および第2のマルチフェーズ・バス・トランザクション をサポートするためにデータを送るバス手段と、 前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションを 求めるバス要求を開始するエージェント手段とを備え、前記エージェント手段が 、前記バスの所有権に関する調停を行い、その後、前記エージェントのうちの1 つが、現在、前記第2のマルチフェーズ・バス・トランザクションとは異なるフ ェーズであり、前記第2のマルチフェーズ・バス・トランザクションの前に要求 された少なくとも前記第1のマルチフェーズ・バス・トランザクションと同時に 前記バス上でサポートすべき前記第2のマルチフェーズ・バス・トランザクショ ンを前記バス上に置くバス要求を発行することを特徴とするコンピュータ・シス テム。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AP(KE,MW,SD,SZ,UG), AM,AT,AU,BB,BG,BR,BY,CA,C H,CN,CZ,DE,DK,EE,ES,FI,GB ,GE,HU,JP,KE,KG,KP,KR,KZ, LK,LR,LT,LU,LV,MD,MG,MN,M W,MX,NL,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,TJ,TT,UA, UZ,VN (72)発明者 ライ,コンラッド アメリカ合衆国 97006 オレゴン州・ア ロハ・サウス ウエスト サンドラ コー ト・20245

Claims (1)

  1. 【特許請求の範囲】 1.少なくとも1つのマイクロプロセッサが、MESIプロトコルに従って動 作するキャッシュを含む、第2の複数のマイクロプロセッサを含む複数のエージ ェントに結合されたバスを含むコンピュータ・システムにおいて、前記複数のエ ージェントのうちの少なくとも1つによって開始された、データを転送する際の 複数のマルチフェーズ・バス・トランザクションをサポートする方法であって、 前記少なくとも1つのマイクロプロセッサが、(i)前記複数のマルチフェー ズ・バス・トランザクションの各スヌープ・フェーズ中にキャッシュ・スヌープ を実行し、(ii)前記少なくとも1つのマイクロプロセッサの前記キャッシュ が前記データを「修正済み」状態で記憶している場合に、対応するスヌープ・フ ェーズの直後のデータ・フェーズ中に前記データを提供することによって、前記 データのコヒーレンシを維持するステップと、 (i)前記複数のマルチフェーズ・バス・トランザクションのうちの少なくと も1つに関する情報を提供するためにアドレスされた前記複数のエージェントの うちの1つが、前記情報を適切な時間に提供することができず、(ii)前記少 なくとも1つのマイクロプロセッサの前記キャッシュが前記情報を前記「修正済 み」状態で記憶していない場合に、前記複数のマルチフェーズ・バス・トランザ クションのうちの少なくとも1つを据え置くステップとを含む方法。 2.前記維持ステップがさらに、前記データ・フェーズ中に前記データを提供 する前に、 前記少なくとも1つのマイクロプロセッサが、前記キャッシュが前記データを 前記「修正済み」状態で含んでいることを検出した場合に、前記スヌープ・フェ ーズ中に前記バスの第1の制御線をアサートするステップを含むことを特徴とす る請求項1に記載の方法。 3.前記維持ステップがさらに、前記第1の制御線をアサートした後および前 記データ・フェーズ中に前記データを提供する前に、 前記少なくとも1つのマイクロプロセッサが、前記キャッシュが前記データを 「共用」状態または「専用」状態で含んでいることを検出した場合に、前記スヌ ープ・フェーズ中に前記バスの第2の制御線をアサートするステップを含むこと を特徴とする請求項2に記載の方法。 4.前記デファードステップがさらに、 前記複数のマルチフェーズ・バス・トランザクションのうちの前記少なくとも 1つが据え置かれることを示すデファード信号を、前記エージェントによって前 記スヌープ・フェーズ中に発行するステップと、 対応するデファード応答トランザクションに関する要求アドレスとして使用さ れるデファード識別子を、前記エージェントによっで前記応答フェーズ中に記憶 するステップとを含むことを特徴とする請求項1に記載の方法。 5.前記デファードステップがさらに、 前記エージェントが前記情報を適切な時間に提供し、前記対応するデファード 応答トランザクションを開始し、前記複数のマルチフェーズ・バス・トランザク ションのうちの前記少なくとも1つを完了した後に、前記エージェントによって 記憶されているデファード識別子を発行するステップを含むことを特徴とする請 求項4に記載の方法。 6.前記マルチフェーズ・バス・トランザクションのうちの1つに依存するマ ルチフェーズ・バス・トランザクションを要求することを、前記複数のマルチフ ェーズ・バス・トランザクションのうちの前記1つを据え置くことも、あるいは 取り消すこともできなくなるまで延期するよう、前記第2の複数のマイクロプロ セッサに要求することによって、データを求める前記複数のマルチフェーズ・バ ス・トランザクションのプロセッサ順序付けをおこなうステップをさらに含む請 求項1に記載の方法。 7.少なくとも1つのマイクロプロセッサが、MESIプロトコルに従って動 作するキャッシュを含む、第2の複数のマイクロプロセッサと、メモリ装置とを 含む複畝のエージェントを含むコンピュータ・システムにおいてデータ・コヒー レンを維持する方法であって、メモリ装置および複数のマイクロプロセッサが、 パイプライン式バス・アーキテクチャを使用してシステム・バスに結合され、前 記方法が、 前記メモリ装置の所定のアドレス位置に記憶されているデータを求めるトラン ザクション要求を、前記複数のマイクロプロセッサによって要求フェーズ中に発 行するステップと、 前記所定のアドレス位置に基づくスヌープを前記少なくとも1つのマイクロプ ロセッサによってスヌープ・フェーズ中に実行するステップと、 前記スヌープ・フェーズ中に前記システム・バス上に前記スヌープの結果を提 供するステップとを含み、前記少なくとも1つのマイクロプロセッサが、 前記少なくとも1つのマイクロプロセッサの前記キャッシュが前記データを修 正済み状態で記憶している場合に第1の制御信号をアサートし、 データ・フェーズ中に前記データを提供する責任を負い、前記トランザクショ ン要求をサポートすることを特徴とする方法。 8.さらに、前記少なくとも1つのマイクロプロセッサが、前記修正済み状態 の前記データが前記キャッシュに記憶されていると判定した場合に、前記データ ・フェーズ中に前記少なくとも1つのマイクロプロセッサから前記データを提供 するステップを含むことを特徴とする請求項7に記載の方法。 9.提供ステップが、 前記トランザクション要求が読取りである場合に、前記データを受け取る準備 が完了したことを示す第1の信号を受け取り側エージェントから受け取った後に 前記少なくとも1つのマイクロプロセッサから前記データを提供するステップと 、 前記トランザクション要求が書込みである場合に、前記データを受け取る準備 が完了したことを示す第2の信号を受け取り側エージェントから受け取った後に 前記少なくとも1つのマイクロプロセッサから前記データを提供するステップと を含むことを特徴とする請求項8に記載の方法。 10.結果を提供する前記ステップがさらに、 前記データが、前記キャッシュ内に修正状態で記憶されていない場合に、前記 少なくとも1つのマイクロプロセッサによって前記第1の制御信号をアサート解 除し、前記メモリ装置に前記データを提供する責任を負わせるステップを含むこ とを特徴とする請求項7に記載の方法。 11.前記データ・フェーズ中に前記メモリ装置から前記データを提供するス テップをさらに含む請求項10に記載の方法。 12.少なくとも1つのマイクロプロセッサが、MESIプロトコルに従って 動作するキャッシュを含む、第2の複数のマイクロプロセッサを含む複数のエー ジェントに結合されたバスを含むコンピュータ・システムにおいて、前記複数の エージェントのうちの少なくとも1つによって開始された、データを転送する際 の複数のマルチフェーズ・バス・トランザクションをサポートする方法であって 、 (i)前記複数のマルチフェーズ・バス・トランザクションのうちの少なくと も1つに関する情報を提供するためにアドレスされた前記複数のエージェントの うちの1つが、前記情報を適切な時間に提供することができず、(ii)前記少 なくとも1つのマイクロプロセッサの前記キャッシュが前記情報を前記「修正済 み」状態で記憶していない場合に、前記複数のマルチフェーズ・バス・トランザ クションのうちの少なくとも1つを据え置くステップと、 前記マルチフェーズ・バス・トランザクションのうちの1つに依存するマルチ フェーズ・バス・トランザクションを要求することを、前記複数のマルチフェー ズ・バス・トランザクションのうちの前記1つを据え置くことも、あるいは取り 消すこともできなくなるまで延期するよう、前記第2の複数のマイクロプロセッ サに要求することによって、前記複数のマルチフェーズ・バス・トランザクショ ンのプロセッサ順序付けをおこなうステップを含むことを特徴とする方法。 13.さらに、前記少なくとも1つのマイクロプロセッサが、(i)前記複数 のマルチフェーズ・バス・トランザクションの各スヌープ・フェーズ中にキャッ シュ・スヌープを実行し、(ii)前記少なくとも1つのマイクロプロセッサの 前記キャッシュが前記データを前記「修正済み」状態で記憶している場合に、対 応するスヌープ・フェーズの直後のデータ・フェーズ中に前記データを提供する ことによって、前記データのコヒーレンシを維持するステップを含むことを特徴 とする請求項10に記載の方法。 14.少なくとも第1および第2のマルチフェーズ・バス・トランザクション をサポートするためにデータを送るバスと、 (i)前記データを記憶するメモリ装置と、(ii)前記メモリ装置から得た データを一時的に記憶するキャッシュ・メモリを有する少なくとも1つのマイク ロプロセッサを含む複数のマイクロプロセッサとを含むエージェントとを含み、 前記複数のエージェントが、前記バスの所有権に関する調停を行い、その後、1 つのエージェントが、現在、前記第2のマルチフェーズ・バス・トランザクショ ンとは異なるフェーズであり、前記第2のマルチフェーズ・バス・トランザクシ ョンの前に要求された前記第1のマルチフェーズ・バス・トランザクションと同 時にサポートされる前記第2のマルチフェーズ・バス・トランザクションを前記 バス上に置くバス要求を発行することを特徴とするコンピュータ・システム。 15.前記複数のバス・エージェントがそれぞれ、 前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションを 追跡するために必要な情報を記憶するために前記バスに結合されたインオーダー 待ち行列を含むことを特徴とする請求項14に記載のコンピュータ・システム。 16.前記インオーダー待ち行列が、 前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションに 関する必要な情報を記憶する際に使用される複数のトランザクション・レジスタ を含む円形バッファと、 現在、要求フェーズである、前記少なくとも第1および第2のマルチフェーズ ・バス・トランザクションのうちの一方に関する情報をどの遷移レジスタが記憶 しているかを監視する第1のトランザクション・ポインタ・レジスタと、 現在、応答フェーズである、前記少なくとも第1および第2のマルチフェーズ ・バス・トランザクションのうちの一方に関する情報をどの遷移レジスタが記憶 しているかを監視する第2のトランザクション・ポインタ・レジスタと、 活動状態であるときに、前記円形バッファが空であることを示し、非活動状態 であり前記第1および第2のトランザクションが同じトランザクション・レジス タを指しているときに、前記円形バッファが満杯であることを示す空レジスタと を備えることを特徴とする請求項15に記載のコンピュータ・システム。 17.前記インオーダー待ち行列がさらに、現在、スヌープ・フェーズである 、前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションの うちの一方に関する情報をどの遷移レジスタが記憶しているかを監視する第3の トランザクション・ポインタ・レジスタを含むことを特徴とする請求項16に記 載のコンピュータ・システム。 18.少なくとも第1および第2のマルチフェーズ・バス・トランザクション をサポートするためにデータを送るバス手段と、 前記少なくとも第1および第2のマルチフェーズ・バス・トランザクションを 求めるバス要求を開始するエージェント手段とを備え、前記エージェント手段が 、前記バスの所有権に関する調停を行い、その後、前記エージェントのうちの1 つが、現在、前記第2のマルチフェーズ・バス・トランザクションとは異なるフ ェーズであり、前記第2のマルチフェーズ・バス・トランザクションの前に要求 された少なくとも前記第1のマルチフェーズ・バス・トランザクションと同時に 前記バス上でサポートすべき前記第2のマルチフェーズ・バス・トランザクショ ンを前記バス上に置くバス要求を発行することを特徴とするコンピュータ・シス テム。
JP52350395A 1994-03-01 1995-03-01 高度パイプライン式バス・アーキテクチャ Expired - Lifetime JP3660679B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US20638294A 1994-03-01 1994-03-01
US08/206,382 1994-03-01
US39096995A 1995-02-21 1995-02-21
US08/390,969 1995-02-21
PCT/US1995/002505 WO1995024678A2 (en) 1994-03-01 1995-03-01 Highly pipelined bus architecture

Publications (2)

Publication Number Publication Date
JPH09510308A true JPH09510308A (ja) 1997-10-14
JP3660679B2 JP3660679B2 (ja) 2005-06-15

Family

ID=26901290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52350395A Expired - Lifetime JP3660679B2 (ja) 1994-03-01 1995-03-01 高度パイプライン式バス・アーキテクチャ

Country Status (8)

Country Link
US (1) US5796977A (ja)
EP (2) EP0748481B1 (ja)
JP (1) JP3660679B2 (ja)
KR (1) KR100360064B1 (ja)
AU (1) AU1973595A (ja)
BR (1) BR9506997A (ja)
DE (1) DE69531933T2 (ja)
WO (1) WO1995024678A2 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US5673413A (en) * 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
JPH11501141A (ja) * 1996-03-15 1999-01-26 サン・マイクロシステムズ・インコーポレーテッド 分割トランザクション・スヌーピング・バスおよび調停方法
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
KR100454652B1 (ko) * 1997-04-11 2005-01-13 엘지전자 주식회사 하이파이버스시스템의주기억장치
US6260117B1 (en) * 1997-09-18 2001-07-10 International Business Machines Corporation Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US6070231A (en) * 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
US6029225A (en) * 1997-12-16 2000-02-22 Hewlett-Packard Company Cache bank conflict avoidance and cache collision avoidance
US6292906B1 (en) * 1997-12-17 2001-09-18 Intel Corporation Method and apparatus for detecting and compensating for certain snoop errors in a system with multiple agents having cache memories
US6460119B1 (en) * 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
US6138218A (en) * 1998-02-17 2000-10-24 International Business Machines Corporation Forward progress on retried snoop hits by altering the coherency state of a local cache
US6330591B1 (en) * 1998-03-09 2001-12-11 Lsi Logic Corporation High speed serial line transceivers integrated into a cache controller to support coherent memory transactions in a loosely coupled network
US6269360B1 (en) * 1998-04-24 2001-07-31 International Business Machines Corporation Optimization of ordered stores on a pipelined bus via self-initiated retry
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
US6216190B1 (en) * 1998-09-30 2001-04-10 Compaq Computer Corporation System and method for optimally deferring or retrying a cycle upon a processor bus that is destined for a peripheral bus
US7555603B1 (en) * 1998-12-16 2009-06-30 Intel Corporation Transaction manager and cache for processing agent
US6732208B1 (en) 1999-02-25 2004-05-04 Mips Technologies, Inc. Low latency system bus interface for multi-master processing environments
US6397304B1 (en) * 1999-06-16 2002-05-28 Intel Corporation Method and apparatus for improving system performance in multiprocessor systems
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
US6493776B1 (en) 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6490642B1 (en) 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6393500B1 (en) 1999-08-12 2002-05-21 Mips Technologies, Inc. Burst-configurable data bus
US6604159B1 (en) 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6519685B1 (en) * 1999-12-22 2003-02-11 Intel Corporation Cache states for multiprocessor cache coherency protocols
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6681320B1 (en) * 1999-12-29 2004-01-20 Intel Corporation Causality-based memory ordering in a multiprocessing environment
US6438737B1 (en) 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6745297B2 (en) * 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US6601145B2 (en) 2000-12-27 2003-07-29 International Business Machines Corporation Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US6546468B2 (en) * 2000-12-27 2003-04-08 International Business Machines Corporation Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update
US6742160B2 (en) 2001-02-14 2004-05-25 Intel Corporation Checkerboard parity techniques for a multi-pumped bus
US6546469B2 (en) 2001-03-12 2003-04-08 International Business Machines Corporation Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers
US6546470B1 (en) 2001-03-12 2003-04-08 International Business Machines Corporation Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers with banked directory implementation
US7076627B2 (en) * 2001-06-29 2006-07-11 Intel Corporation Memory control for multiple read requests
US7114038B2 (en) * 2001-12-28 2006-09-26 Intel Corporation Method and apparatus for communicating between integrated circuits in a low power mode
US7085889B2 (en) 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory
US7343395B2 (en) * 2002-03-29 2008-03-11 Intel Corporation Facilitating resource access using prioritized multicast responses to a discovery request
DE60211874T2 (de) * 2002-06-20 2007-05-24 Infineon Technologies Ag Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US6986010B2 (en) * 2002-12-13 2006-01-10 Intel Corporation Cache lock mechanism with speculative allocation
US7043656B2 (en) * 2003-01-28 2006-05-09 Hewlett-Packard Development Company, L.P. Methods and apparatus for extending a phase on an interconnect
US20040226011A1 (en) * 2003-05-08 2004-11-11 International Business Machines Corporation Multi-threaded microprocessor with queue flushing
US7747733B2 (en) 2004-10-25 2010-06-29 Electro Industries/Gauge Tech Power meter having multiple ethernet ports
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
US7788240B2 (en) * 2004-12-29 2010-08-31 Sap Ag Hash mapping with secondary table having linear probing
US7360008B2 (en) * 2004-12-30 2008-04-15 Intel Corporation Enforcing global ordering through a caching bridge in a multicore multiprocessor system
US7886086B2 (en) * 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US10771532B2 (en) 2011-10-04 2020-09-08 Electro Industries/Gauge Tech Intelligent electronic devices, systems and methods for communicating messages over a network
US10862784B2 (en) 2011-10-04 2020-12-08 Electro Industries/Gauge Tech Systems and methods for processing meter information in a network of intelligent electronic devices
US20170063566A1 (en) * 2011-10-04 2017-03-02 Electro Industries/Gauge Tech Internet of things (iot) intelligent electronic devices, systems and methods
US11816465B2 (en) 2013-03-15 2023-11-14 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US11734396B2 (en) 2014-06-17 2023-08-22 El Electronics Llc Security through layers in an intelligent electronic device
US10958435B2 (en) 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
US11754997B2 (en) 2018-02-17 2023-09-12 Ei Electronics Llc Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems
US11734704B2 (en) 2018-02-17 2023-08-22 Ei Electronics Llc Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data
US11686594B2 (en) 2018-02-17 2023-06-27 Ei Electronics Llc Devices, systems and methods for a cloud-based meter management system
US11863589B2 (en) 2019-06-07 2024-01-02 Ei Electronics Llc Enterprise security in meters
US11941428B2 (en) 2021-04-16 2024-03-26 Apple Inc. Ensuring transactional ordering in I/O agent

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353416A (en) * 1989-10-25 1994-10-04 Zenith Data Systems Corporation CPU lock logic for corrected operation with a posted write array
JPH04119445A (ja) * 1990-09-11 1992-04-20 Canon Inc 計算機システム
US5339399A (en) * 1991-04-12 1994-08-16 Intel Corporation Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5345569A (en) * 1991-09-20 1994-09-06 Advanced Micro Devices, Inc. Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
GB2260628A (en) * 1991-10-11 1993-04-21 Intel Corp Line buffer for cache memory
US5353415A (en) * 1992-10-02 1994-10-04 Compaq Computer Corporation Method and apparatus for concurrency of bus operations
US5420991A (en) * 1994-01-04 1995-05-30 Intel Corporation Apparatus and method for maintaining processing consistency in a computer system having multiple processors

Also Published As

Publication number Publication date
AU1973595A (en) 1995-09-25
JP3660679B2 (ja) 2005-06-15
BR9506997A (pt) 1997-11-18
WO1995024678A3 (en) 1995-10-12
EP1215584A3 (en) 2004-04-21
DE69531933T2 (de) 2004-08-12
US5796977A (en) 1998-08-18
EP0748481B1 (en) 2003-10-15
WO1995024678A2 (en) 1995-09-14
EP0748481A4 (en) 2000-07-05
EP0748481A1 (en) 1996-12-18
DE69531933D1 (de) 2003-11-20
EP1215584A2 (en) 2002-06-19
KR100360064B1 (ko) 2003-03-10

Similar Documents

Publication Publication Date Title
JPH09510308A (ja) 高度パイプライン式バス・アーキテクチャ
US5572702A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US8321634B2 (en) System and method for performing memory operations in a computing system
US5893151A (en) Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
CN101770397B (zh) 扩展高速缓存一致性协议以支持本地缓冲的数据的设备、处理器、系统和方法
US5550988A (en) Apparatus and method for performing error correction in a multi-processor system
US6466825B1 (en) Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US6199144B1 (en) Method and apparatus for transferring data in a computer system
US7549025B2 (en) Efficient marking of shared cache lines
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
TW200534110A (en) A method for supporting improved burst transfers on a coherent bus
US20030145136A1 (en) Method and apparatus for implementing a relaxed ordering model in a computer system
EP0514024B1 (en) Method and apparatus for an improved memory architecture
US6611906B1 (en) Self-organizing hardware processing entities that cooperate to execute requests
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
WO2009009583A1 (en) Bufferless transactional memory with runahead execution
JP2000235543A (ja) 書込み動作順序付けバスブリッジ
USRE40921E1 (en) Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US5778441A (en) Method and apparatus for accessing split lock variables in a computer system
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
US6598140B1 (en) Memory controller having separate agents that process memory transactions in parallel
CN113900968B (zh) 多副本非原子写的存储序同步操作实现方法与实现装置
US20080104335A1 (en) Facilitating load reordering through cacheline marking

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040510

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040722

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: 20050308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050318

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: 20090325

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130325

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130325

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140325

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term