JP3635634B2 - データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法 - Google Patents

データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法 Download PDF

Info

Publication number
JP3635634B2
JP3635634B2 JP2000519362A JP2000519362A JP3635634B2 JP 3635634 B2 JP3635634 B2 JP 3635634B2 JP 2000519362 A JP2000519362 A JP 2000519362A JP 2000519362 A JP2000519362 A JP 2000519362A JP 3635634 B2 JP3635634 B2 JP 3635634B2
Authority
JP
Japan
Prior art keywords
bus
data
early warning
signal
memory storage
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.)
Expired - Fee Related
Application number
JP2000519362A
Other languages
English (en)
Other versions
JP2001522092A (ja
Inventor
ミッチェル エイ. バウマン
ジョーゼフ エス. シュバイナー
ドナルド アール. カルベストランド
ダグラス イー. モリシー
Original Assignee
ユニシス コーポレーション
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 ユニシス コーポレーション filed Critical ユニシス コーポレーション
Publication of JP2001522092A publication Critical patent/JP2001522092A/ja
Application granted granted Critical
Publication of JP3635634B2 publication Critical patent/JP3635634B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration

Description

【0001】
(発明の背景)
(発明の分野)
本発明は、一般に、多重プロセッサシステムに関するものであり、より詳しくは、メモリ記憶ユニットから多重プロセッサシステム内の装置へデータを転送する動作を加速する手法に関する。
【0002】
(関連技術)
多重プロセッサシステムにおいて、マイクロプロセッサ、メモリバンク(memory bank)、および周辺制御装置などの装置は複数のバスにより相互接続されている。このようなシステムでは、メモリやデータバスなどのマシンリソース(machine resources)を割り当てる、アービトレーション(arbitration)と呼ばれる規則を採用している。複数の装置がデータ転送のためバスアクセスに関して競合する多重プロセッサバス環境では、それぞれの装置はバスの所有権を得るためにアービトレーションを必要とする。たとえば、プロセッサが1単位のデータをメモリに対し要求した場合、しばらくしてから、そのデータはプロセッサに配信される。メモリ装置(memory unit)がデータの要求を受信すると、そのメモリ装置はデータロケーション(data location)を読み込み、物理データにアクセスし、そのデータをプロセッサに配信しなければならない。データの要求を受信してからデータが送信されるまでのメモリの待ち時間は長くなる場合がある。
この例は、アップルコンピュータ社(Apple Computer, Inc)の国際出願番号WO96/35172の出願に見出すことができる。この出願は、システムバスに結合された要求元エージェントを有するシステム内のグラフィック・コントローラについて開示している。このシステムでは、コントローラはアービトレーションを初期化して要求元エージェントがメモリ内のフレーム・バッファをアクセスすることを可能にしている。
【0003】
データをメモリ(またはキャッシュ)からプロセッサに配信する前に、データを配信するバスエージェント(bus agent)はデータバスの所有権を獲得するためにアービトレーションを行わなければならない。アービトレーションは時間のかかる作業である。メモリコントローラがディレクトリ情報をデータ自体と同じ媒体に格納するディレクトリベースのシステムでは、メモリコントローラは要求元プロセッサへの転送のため関連データを取得するのと同時にディレクトリ情報も取得する。ディレクトリ状態が適切でなければ、読み込まれたデータは転送されず、ディレクトリを要求を満たす適切な状態にする処置が講じられる。しかし、時間の大半はデータがプロセッサへ転送することが可能である。メモリコントローラがディレクトリ情報を観察するまで待ち、それからアービトレーションを開始する場合、要求を満たすためにアービトレーションの時間を無駄にすることになる。メモリコントローラがアービトレーションの直接制御を行ったとすれば、データが記憶媒体から使用可能となったときにデータバスを使用可能とするアービトレーションを開始し、およびアービトレーションの時間を失わずにバス上にデータを配信するか、またはディレクトリ状態が適切でない場合にデータ転送せずにバスを解放することができる。大規模なマルチプロセッサシステムでは、メモリコントローラはバスの介在でプロセッサバスから分離され、データ配信のためプロセッサバスに対し推論的にアービトレーションを行う方法とシステムが必要である。
【0004】
(発明の概要)
簡単に説明すると、本発明は、マルチリクエスタバス(multi-requestor bus)環境でリクエスタ(requestor)(装置)がメモリ記憶ユニットからデータを受け取るのに要する時間を最適化するシステムと方法を対象とするものである。本発明は、早期警告信号と呼ばれ、プロセッサバス上のバスエージェントがプロセッサの代わりにMSUにデータを要求した後にメモリ記憶ユニットからそのエージェントに送信される単方向信号を提供する。この信号は、データがまもなく来ることを知らせるバスエージェントへの警告である。この早期警告信号により、エージェントはデータバスのアービトレーションを行うことができるため、データが到着したときに、エージェント側でデータバスの所有権に関するアービトレーションを実施していることになり、データを即座に配信できる。
【0005】
好ましい実施形態において、本発明は、メインメモリ、キャッシュメモリ、1つまたは2つ以上のプロセッサモジュール、1つまたは2つ以上のI/Oモジュール、および早期警告バスを備える。キャッシュメモリは、インタフェースバスを介してメインメモリに接続されている。プロセッサモジュールは、プロセッサインタフェースバスを介してキャッシュメモリに接続されている。I/Oモジュールは、I/Oインタフェースバスを介してメインメモリに接続されている。プロセッサモジュールとI/Oモジュールは両方とも、データ単位をメインメモリに要求する手段を含む。早期警告バスは、メインメモリとキャッシュメモリとの間に接続されている。
【0006】
早期警告バスは、転送先バスエージェントを識別する第1のフィールドと、「1」に設定されたときに有効な早期警告信号であることを示す有効ビットを含む。
【0007】
要求されたデータ単位は、早期警告信号が早期警告バス上で転送された後要求元インタフェースバスを介して転送される。早期警告信号を使用することにより、バスエージェントは要求されたデータ単位を受信する前にデータバスのアービトレーションを行うことができる。
【0008】
早期警告信号の推測的性質を考慮するために、本発明はさらに、早期警告信号を受信したときに設定されるエージェントのアービトレーション・ロジック内にタイマがさらに備えられ、これにより、エージェントは、要求されたデータがまだ届いていない場合にタイマが期限切れになると、バスを解放するかまたはアービトレーションの試行を中止する。本発明では、警告信号なしでメインメモリからデータを受信したときに、エージェントがバスのアービトレーションを実行し、そのデータを配信できることも必要である。
【0009】
本発明の他の特長と利点について、本発明のさまざまな実施形態の構造と動作とともに、添付図面を参照しながら以下の段で詳述する。図面では、類似の参照番号は一般に、同一の要素、機能上類似している要素、および/または構造上類似している要素を示す。最初にある要素が示されている図面は、対応する参照番号の一番右の2つの桁の左側にある。
【0010】
(好ましい実施形態の詳細な説明)
本発明の好ましい実施形態を以下で詳細に解説する。特定の構成を解説しているが、これは例示を目的としてのみ行うものであることを理解すべきである。当業者は、本発明の趣旨および範囲から逸脱することなく、他の部品および構成を用いてもよいことを理解するであろう。
【0011】
本発明は、マルチリクエスタバス環境でリクエスタ(装置)がメモリ記憶ユニットからデータを受け取るのに要する時間を最適化するシステムと方法を対象とするものである。本発明は、ときに装置がデータのフェッチ要求を実行した後に、データがまもなく来るということを装置に警告するためメモリ記憶ユニットからその装置に送信される、早期警告信号と呼ばれる単方向応答信号を提供する。この早期警告信号により、装置はデータバスのアービトレーションを行うことができるため、データが到着したときに、装置側はデータバスの排他的所有権を持ち、データを即座に受け付ける。
【0012】
本発明を詳細に説明する前に、システム処理プラットフォームの例の説明を行う。図1は、本発明が使用されているシステム処理プラットフォーム100のブロック図である。システム処理プラットフォーム100は、多数の処理システムおよび多数のメモリ記憶システム間でのデータフローを管理するのに有用である。システム処理プラットフォーム100は、1つまたは2つ以上のメモリ記憶ユニット(MSU)110(MSU110AおよびMSU110Bとして図示)および1つまたは2つ以上の処理モジュール(POD)120(POD120AおよびPOD120Bとして図示)を含む。顧客は、追加のMSU110やPOD120を付加することにより、システム処理プラットフォーム100を拡張することができる。
【0013】
各MSU110はMSUインタフェース(MI)バス130(MIバス130A、130B、130C、および130Dとして図示)を介して各POD120に接続されている。MIバス130は、個別のアドレス/機能およびデータバスを有するポイント−ツー−ポイントのインタフェースである。MIバス130は単方向制御バス、双方向要求バスおよび双方向データバスを含む。要求バスはシステムクロック周波数(SYSCLK)で動作し、データバスはシステムクロック周波数の2倍のソース同期で動作する。好ましい実施形態では、システム処理プラットフォーム100で、システムクロック周波数は100メガヘルツ(MHZ)である。
【0014】
POD120はMIバス130の1つを介して、あらゆるMSU110のデータに直接的なアクセス権を有している。例えば、MIバス130AはPOD120AのMSU110Aへの直接アクセスを可能にし、MIバス130CはPOD120AのMSU110Bへの直接アクセスを可能にする。
【0015】
図2に、メモリ記憶ユニット(MSU)110を更に詳細に示す。MSU110はメモリコントローラ210とメモリ220とを含む。メモリ220は複数のデータライン230を備える。各データライン230は、システムプラットフォーム100においてMSU110とPOD120との間で転送されるデータの最小量である。システム処理プラットフォーム100において、データライン230は64バイトの情報と同等である。
【0016】
メモリコントローラ210はメモリ220のメモリマネージャとして動作する。メモリコントローラ210はMIバス130を介して、POD120から制御およびアドレスラインを受信する。メモリコントローラ210は、以下で詳細に解説する方法で各データライン230のステータスを制御し監視する。
【0017】
POD120の詳細なブロック図は図3に示されている。POD120は、クロスバー350、1つまたは2つ以上のサブ処理モジュール(サブPOD)(サブPOD310AおよびサブPOD310Bとして図示)および1つまたは2つ以上の入出力(I/O)モジュール320(I/Oモジュール320AおよびI/Oモジュール320Bとして図示)を備える。システム処理プラットフォーム100において、各POD120は2つのサブPOD310および2つのI/Oモジュール320を備える。
【0018】
クロスバー350は、MIバス130を介してサブPOD310およびI/Oモジュール320をMSU110に接続している。サブPOD310(サブPOD310AおよびサブPOD310Bとして図示)は、インタフェース330(インタフェース330Aおよびインタフェース330Bとして図示)を介してクロスバー350に接続されている。クロスバー350は、インタフェース340(インタフェース340Aおよびインタフェース340Bとして図示)を介してI/Oモジュール320(I/Oモジュール320AおよびI/Oモジュール320Bとして図示)にインタフェースしている。システム処理プラットフォーム100において、MIバス130およびインタフェース330は同等の転送レートでデータを転送する。I/Oモジュール320とクロスバー350との間のインタフェース340は、MIバス130およびインタフェース330と同様の構成を有しているが、半分の転送レートで動作する。
【0019】
I/Oモジュール320は図4に示されている。I/Oモジュール320は、POD120と、I/O320に接続された1つまたは2つ以上のI/O装置(図示されていない)との間のインタフェースとして機能する。I/Oモジュール320は、バス430(バス430A、バス430Bおよびバス430Cとして図示)を介して、1つまたは2つ以上のペリフェラル・コンポーネント・インターコネクト(PCI)(PCI420A、PCI420BおよびPCI420Cとして図示)を相互接続するブリッジ410を含む。ブリッジ410は、図3に示されているようにバス340を介してPOD120のクロスバー350にも接続されている。ブリッジ410は、POD120が各PCI420にアクセスすることを可能にする、バス340とバス330との間のスイッチとして機能する。
【0020】
ペリフェラル・コンポーネント・インターコネクト(PCI)420は、各種I/O装置(図示されていない)をI/Oモジュール320に接続するI/Oバスである。システム処理プラットフォーム100において、各PCI420は4つまでの装置を支援できる。これらの装置は、モニタ、キーボード、プリンタ、ディスクまたはテープドライブなどを含むが、これらに限定されない。
【0021】
サブPOD310のブロック図は図5に示されている。サブPOD310は、第3レベルキャッシュ(TLC)510および1つまたは2つ以上のコヒーレントドメイン530(コヒーレントドメイン530Aおよびコヒーレントドメイン530Bとして図示)を含む。TLC510はバス520(バス520Aおよびバス520Bとして図示)を介して各コヒーレントドメイン530に接続されている。TLC510は、各コヒーレントドメイン530間のコヒーレンシを維持する。各コヒーレントドメイン530は、2つまたは3つ以上の第2レベルキャッシュ(SLC)550(コヒーレントドメイン530AにおけるSLC550AおよびSLC550Bならびにコヒーレントドメイン530BにおけるSLC550CおよびSLC550Dとして図示)および、バス560(コヒーレントドメイン530Aにおけるバス560Aおよびバス560Bならびにコヒーレントドメイン530Bにおけるバス560Cおよびバス560Dとして図示)を介して各SLC550に接続されたプロセッサ540(コヒーレントドメイン530Aにおけるプロセッサ540Aおよびプロセッサ540Bならびにコヒーレントドメイン530Bにおけるプロセッサ540Cおよびプロセッサ540Dとして図示)を備える。各バスインタフェース520は、コヒーレントドメイン530における2つまでのプロセッサ/SLC(540/550)の構成を支援する。プロセッサモジュール540は、例えば、デシュート(Deshutes)スタイルP6、メルセド(Merced)スタイルP7、ボイジャー(Voyager)スタイル2200またはカプリコーン(Capricorn)スタイルAシリーズの命令処理装置のうち1つを含むことができる。これら4種類の命令処理装置の全てが当業者にはよく知られている。
【0022】
各コヒーレントドメイン530のSLC550は、それらの間ならびにそれら独自のコヒーレントドメイン内においてコヒーレンスを維持する。これは、バス520を共有し、スヌーピーベースのコヒーレンスに従うことによって達成される。スヌーピーベースのコヒーレンスによれば、各SLC550は要求バス520を「覗いて(スヌープ)」データライン230の状態を確認して、必要であれば、そこに記憶されたデータラインの状態を更新する。スヌーピープロトコルに関する更に詳細な解説は、参照によって本明細書中にその全体を含めた、本願と同時に出願した「ディレクトリ・ベースのキャッシュ・コヒーレンシ・システム」という名称の並行して係属中である出願(代理人整理番号TN050;1521.0080000)に含まれている。
【0023】
POD120およびMSU110は協同してコヒーレントメモリシステムを作り出す。システム処理プラットフォーム100のコヒーレンシスキームはディレクトリベースの所有権プロトコルである。図6は、システム処理プラットフォーム100に使用されたディレクトリベースの所有権プロトコルを示している。メモリ220および各レベルのキャッシュ(すなわち、TLC510、SLC550など)がコヒーレンスを維持するためのディレクトリプロトコルを許容している。図6に示したように、メモリ220はメモリディレクトリ610を有し、TLC510はTLCディレクトリ640を有し、SLC550はMESI(Modified Exclusive Shared Invalid)というSLCディレクトリ650を有している。
【0024】
好ましい実施形態では、各キャッシュ510および550は、キャッシュライン(TLC510ではキャッシュライン620、SLC550ではキャッシュライン630として図示)と呼ばれるデータライン記憶用のメモリを含む。キャッシュラインは、1つまたは2つ以上のキャッシュ510、550に存在するデータラインのコピーである。
【0025】
ディレクトリ610において、各データライン230についての情報は監視されて、状態612とベクトル614とを使って更新される。状態612は、データライン230に関してリクエスタに与えられたアクセス権のステータスについての情報を維持する。かかるステータスは現在のステータス、共有ステータスおよび独占ステータスを含むことができる。現在のステータスは、データライン230がメモリ220にのみ存在することを示している。共有ステータスは、データライン230のリードオンリーのコピーが1つまたは2つ以上のPOD120に存在することを示している。これは、これら1つまたは2つ以上のPOD120がデータライン230のコピーを自由に読むことができることを示している。独占ステータスは、単一のリクエスタのみがデータライン230への書き込みアクセス権を与えられていることを示している。これは、単一のリクエスタのみがデータライン230を修正する権利を有することを示している。ベクトル614は、メモリ状態612が独占ステータスを示しているときに、書き込みアクセス権が与えられているサブPOD310へのポインタである。ベクトル614は、メモリステータス612が共有ステータスを示しているときに、どのサブPOD310がリードオンリーコピーを有するかを示すビットのマスクである。
【0026】
TLCディレクトリ640では、各キャッシュライン620に関する情報が監視されており、状態642とベクトル644を使用して更新される。状態642は、キャッシュライン620のステータスに関する3つの情報を保持している。この情報には、所有権、データステータス、およびバスの権利が含まれる。ベクトル644は、キャッシュライン620が存在している1つまたは2つ以上のロケーションを指している。
【0027】
所有権は、独占権、共有権および未知の権利を含むことができる。独占権は、TLC510がキャッシュライン620への独占権(すなわち、書き込みアクセス権)を有することを示しており、この独占権はメモリ220におけるデータライン230の対応するステータスと一致する。共有権は、メモリ220がキャッシュライン620を共有されたもの(すなわち、リードオンリーアクセス)として関連づけていることを示している。未知の権利は、キャッシュライン620に関する所有権が未知であることを示している。
【0028】
TLCディレクトリ640のデータステータスは、データなし、修正データまたはクリーンデータを含むことができる。データなしは、キャッシュライン620ロケーションにデータが存在しないことを示している。修正データは、キャッシュライン620上のデータが修正されたことを意味している。修正データはメモリ220に書き戻されなければならない。クリーンデータは、キャッシュライン620上のデータが修正されていないことを示している。
【0029】
バスの権利は、バス520Aまたは520Bのどちらに権利が与えられたかを示している。バスの権利も状態とベクトル(状態およびベクトルとも図示されていない)を含む。バスの権利は、独占状態、共有状態または未知の状態を含むことができる。独占権は、バス520Aまたは520Bのどちらかに関連づけられたSLC550に独占的所有権が属することを示している。共有権は、バス520Aと520Bの両方に権利が与えられていることを示している。未知の権利は、どちらのバスが権利を有しているか分からないことを示している。
【0030】
SLCディレクトリ650において、キャッシュライン630の状態のみが維持されている。状態は、修正されたステータス、独占ステータス、共有ステータスまたは無効なステータスを含むことができる。修正されたステータスは、キャッシュライン630上のデータが修正されていることを示している。独占ステータスは、キャッシュライン630上のデータを修正することができ、関連づけられたSLC550はデータが含まれる唯一の装置であることを示している。共有ステータスは、キャッシュライン630上のデータが装置間で共有されていることを示している。無効なステータスは、SLC550のキャッシュライン630にあるデータライン230のコピーは、別の装置のデータライン230で行われた書き込みのために、もはや有効ではないことを示している。
【0031】
プロセッサ540などのプロセッサによって必要とされる時間を削減し、メモリ220のデータライン230を読み取るために、キャッシュスキームが開発された。システム処理プラットフォーム100で使用されているようなキャッシュシステムは、システム処理プラットフォーム100が適切かつ効率的に処理を遂行できるように、メモリ220、TLC510およびSLC550の各々の中でコヒーレントなデータを維持しなければならない。
【0032】
コヒーレンシは当該事業分野ではよく知られた用語であり、多数のメモリと処理装置を備えたシステムにおいてデータのアクセスを管理する。コヒーレントシステムは、データラインの読み取りは最近書き込まれたそのデータラインの値を戻し、データラインの書き込みは、読み取りアクセス権を有する全てのエージェントが所有するそのデータラインの全てのコピーを無効にすることを要求する。処理システムプラットフォーム100に関しては、コヒーレンシは、POD120がそのリクエスタの1つにキャッシュ510および550のいずれかの中でキャッシュライン620または630を修正することを許可する前に、このデータについてMSU110から所有権許可(特に、独占的または書き込み所有権)を得なければならないことを意味する。独占的所有権が与えられると、POD120のリクエスタは、MSU110と対話することなくキャッシュライン620を変更することを許可される。POD120がキャッシュライン620との関係が断たれたとき、キャッシュライン620はMSU110に書き戻される。
【0033】
MSU110は、TLC510およびI/Oバスインタフェース340でキャッシュライン620状態情報を追跡する。MSU110はディレクトリ構造610を使ってこれを行う。ディレクトリ610は、MSU110、特定のTLC510または特定のI/Oバスインタフェース340のいずれがデータライン230を所有しているかに関する情報を維持する。ディレクトリ610は、もしあるとすれば、どのTLC510がデータライン230の未処理のコピーを有しているか、あるいは、特定のI/Oが未処理のコヒーレントコピーを有しているかに関する情報を維持する。ディレクトリ610は、特定のデータライン230が修正不可能なエラーを含んでいるかどうかも示す。
【0034】
システム処理プラットフォーム100のコヒーレンシスキームは、一度に1つの所有者しか許容せず、コヒーレンシはキャッシュラインベースで実行される。したがって、別のTLC510またはI/Oバスインタフェース340が修正されたキャッシュライン620または630へのアクセス権を有する必要がある場合には、新たなデータをリクエスタに送るために、所有者に対してキャッシュライン620または630をMSU110に戻すように要求することはMSU110の責任である。リクエスタがキャッシュライン620または630を修正したいのであれば、元の所有者は対応するキャッシュライン620または630をそのキャッシュから削除する(無効にする)。次に、その特定のキャッシュライン620または630に再びアクセスする必要があれば、最新のコピーを求めてMSU110に行かされるであろう。リクエスタがデータライン230を読みたいのであれば、元の所有者は対応するキャッシュライン620または630のコピーを保持することを許可される。いずれの場合にも、元の所有者は、対応するキャッシュライン620または630においてデータのいずれをも修正する特権を失っており、そうするためには、MSU110に独占的所有権を再び要求しなければならない。
【0035】
システム処理プラットフォーム100のコヒーレンシスキームは、本願と同時に出願された「ディレクトリ・ベースのキャッシュ・コヒーレンシ・システム」という名称の並行して係属中の出願(代理人整理番号TN050;1521.0080000)で更に説明している。
【0036】
本発明については、上記の例の環境で説明している。これらの用語の説明は利便性ためにのみ行っている。本発明をこの例の環境における応用に限定することは意図していない。事実、以下の説明を読んだ後に、当業者には他のメモリ記憶ユニットや処理モジュールの構成で本発明をどのように実施するのかが明らかになるであろう。例えば、本発明は、複数のプロセッサに接続されたバス階層を利用した如何なるシステムにも適用性を有する。複数レベルのキャッシングは本発明を実施するためには要求されない。
【0037】
図7に本発明の好ましい実施形態の図を示す。前記のように、本発明はデータをMSU110からフェッチしなければならないときにMSU110からPOD120へのデータライン230の転送を加速するシステムと方法である。本発明は、データライン230の要求を行ったときに早期警告(E_W)信号を送信することによって、MSU110からPOD120へのデータ転送を加速する。早期警告信号によって、要求元装置(たとえば、プロセッサ540やI/Oモジュール320)は、データバスのアービトレーションによりデータライン230の到着を準備し、したがって、データライン230が使用可能となったときに、データライン230を要求した装置は即座にそれを受け入れることができる。
【0038】
プロセッサ540またはI/Oモジュール320のような要求元装置は、MSU110に対するデータフェッチ要求を実行する。データがMSU110から要求元装置に戻る前に、要求元装置はデータバスのアービトレーションを実行しなければならない。本発明では、要求データの転送前に早期警告バス上でMSU110から要求元装置に転送する早期警告信号を提供する。早期警告信号により、要求元装置は要求データを受信する前にデータバスのアービトレーションを行うことができる。要求データの受信前にアービトレーションを行うと、要求元装置はデータの到着後直ちにデータにアクセスできる。
【0039】
好ましい実施形態において、本発明は、MIバス130のサブセットである(図1に示されている)。それとは別に、本発明の他の実施形態ではバスを別にすることができる。本発明は、MSU110からPOD120への早期警告単方向バス(E_W[2:0])710を提供する。早期警告単方向バス710は、R_bus信号720、P_bus信号730、およびValid信号740を含む。
【0040】
R_bus信号720は、どのインタフェースバスがデータを要求しているかを示す。より詳しく述べると、R_bus信号720はデータの要求がどのリクエスタバス(I/Oモジュール320に対してはバス340およびバス340B、サブPOD310に対してはバス330Aおよびバス330B)から出たかを示す。P_bus信号730は、要求元装置を識別する。より詳しく述べると、R_bus720がI/Oモジュール320からデータ要求が発行されたということを示している場合に、P_bus730はI/Oモジュール320のどれが要求を出したかを示す。R_bus720がTLCインタフェースバス330からデータ要求が来たということを示している場合に、P_bus730はプロセッサ540のどれが要求を出したかを示す。Valid信号740は、1に設定され、信号が有効であることを示し、データがまもなく来るという早期警告を出す。
【0041】
本発明の好ましい実施形態では、タイマ(図示されていない)は、データが指定時間範囲内に要求元装置に到着していない場合にアービトレーションを解放するために使用される。タイマは、E_Wバス710上の有効な情報を指示するValid信号740の0から1への遷移を受け取ると、それを合図に起動する。指定された時間内にデータが転送できない理由はいくつかある。たとえば、データライン230のコピーが要求されても、他のリクエスタがデータライン230を所有していれば、必ずしも更新されたコピーではないため現在MSU110内にあるデータライン230は第1のリクエスタに配信されない。更新されたコピーは現在所有者側にある。しかし、E_Wバス710はそのまま、MSU110が単独でデータライン230を保有したのと同時にリクエスタに送られる。さらに、データライン230を要求元POD120に配信するのを妨げるが、E_Wバス710の送信は禁止しないMI130の双方向的性質と関連するタイミングの時間枠もある。このような場合、要求データライン230はすぐには到着しない。したがって、タイマを使って、アービトレーションを解放し、データバスの利用率を最大にする。
【0042】
Valid信号740を実行するMSU110からプロセッサ540へのデータ転送のタイミング図を図8に示す。REQ信号810によって、POD120からMSU110への要求トランザクションが開始する。REQ信号810は、任意のクロックサイクルでアサートできる。好ましい実施形態では、REQ信号810は1クロックサイクル長である。MIバス130上のアドレスおよびファンクション(ADR_FNC)信号820は、2クロックサイクルを要する。好ましい実施形態では、REQ信号810はADR_FNC信号820の第1のサイクルでアサートされる。R_bus720およびP_bus730は、ADR_FNC信号820に含まれる。MSU110は、E_W[2:0]バス710、R_bus720、およびP_bus730に、ADR_FNC信号820から得られた値を出し、E_W[2:0]バス710を介してPOD120に早期警告を送る。Valid信号740は、データライン230の到着の2クロックサイクル前に出現する。MSU110は、MSU110がデータライン230を所有しているという仮定を使用してすべての内部データパス経路制御優先度(routing priorities)が解決された後に有効な信号740を送信する。これは、MSU110が、データライン230を所有しているかどうかを知る前である。POD120に転送された有効なデータ230の開始は、MSU110からPOD120へのResponse信号840によって示される。MSU110が後になって、データライン230を所有していないことを検出した場合、Response信号840は禁止される。Response信号840は、MIインタフェース130の一部である。Valid信号740がトリガとなって、要求元装置はバスアービトレーション信号830を発生する。バスアービトレーション信号830は、要求元装置への要求であって、これによりデータバス(たとえば、プロセッサバス520)のアービトレーションが行われる。データバスはこれでデータライン230の到着後、直ちにそのデータラインを受け付ける用意ができた。Response信号840が有効な信号740に関して2クロックのタイミング時間枠内で到着しない場合、他の転送のためにデータバスは解放される。
【0043】
これまで本発明のさまざまな実施形態について説明してきたが、例示のためのみに提示されており、制限していないことが理解されるであろう。したがって、本発明の範囲は上述の実施形態の例によって制限されず、前記の特許請求の範囲およびその均等物によってのみ定義されるべきであろう。
【図面の簡単な説明】
添付図面を参照しながら本発明について説明する。
【図1】 本発明の好ましい実施形態によるシステムプラットフォーム環境のブロック図である。
【図2】 メモリ記憶ユニットの実施形態を示す図である。
【図3】 処理モジュールの実施形態を示す図である。
【図4】 I/Oモジュールの実施形態を示す図である。
【図5】 サブ処理モジュールの実施形態を示す図である。
【図6】 ディレクトリベースのメモリおよびキャッシュシステムの実施形態を示す図である。
【図7】 本発明の好ましい実施形態を示す図である。
【図8】 本発明の好ましい実施形態を使用してデータ転送を加速するためのタイミング図である。

Claims (11)

  1. 多重プロセッサシステム(100)において、
    少なくとも1つのメモリ記憶装置(110)と
    インタフェースバス(130)を介して前記少なくとも1つのメモリ記憶装置(110)のそれぞれに接続されている少なくとも1つのキャッシュメモリ(510)と、
    前記少なくとも1つのキャッシュメモリ(510)を複数のプロセッサ(540)に接続し、前記複数のプロセッサ(540)のそれぞれは前記少なくとも1つのメモリ記憶装置(110)にデータを要求する手段(540)を含む少なくとも1つのプロセッサインタフェースバス(520)と、
    前記複数のプロセッサ(540)の1つによって要求されたデータはまもなく使用可能となること、および前記複数のプロセッサ(540)の前記1つは接続先の前記プロセッサインタフェースバス(520)の使用に対するアービトレーションを開始すべきことを前記複数のプロセッサ(540)の1つに通知する早期警告信号(740)を生成する手段(210)と、
    前記少なくとも1つのメモリ記憶装置(110)の1つを前記少なくとも1つのキャッシュメモリ(510)の1つに接続し、該接続によって前記警告信号(740)が送信される少なくとも1つの早期警告バス(710)と
    を備えたことを特徴とするシステム。
  2. I/Oインタフェースバスを介して前記少なくとも1つのメモリ記憶装置に接続されている複数のI/Oモジュールをさらに備え、該複数のI/Oモジュールのそれぞれは前記少なくとも1つのメモリ記憶装置のそれぞれにデータを要求する手段を有し、前記早期警告信号が前記早期警告バス上で転送された後に前記要求されたデータを前記I/Oインタフェースバスに転送し、前記早期警告バスによって前記早期警告信号は、前記I/Oモジュールが前記要求されたデータの受信前に前記I/Oインタフェースバスに対するアービトレーションを行うことを可能にすることを特徴とする請求項1に記載のシステム。
  3. 前記早期警告バスは、
    要求元バスを識別するためのデータラインと、
    要求元装置を識別するためのデータラインと、
    前記要求されたデータが前記少なくとも1つのメモリ記憶装置の1つから転送されることを指示する少なくとも1つのデータラインと
    を備え、前記メモリ記憶装置によって前記早期警告信号が前記要求元装置に送られることを特徴とする請求項1に記載のシステム。
  4. 前記プロセッサインタフェースバスの使用に対するアービトレーションが開始したときに計数を開始するタイマをさらに備え、および前記タイマが前記要求されたデータの到着前に期限切れになった場合に前記アービトレーションは終了することを特徴とする請求項3に記載のシステム。
  5. 前記早期警告バスは、前記少なくとも1つのメモリ記憶装置の1つと前記少なくとも1つのキャッシュメモリの1つの間の前記インタフェースバスの一部であることを特徴とする請求項1に記載のシステム。
  6. 多重プロセッサ処理システム(100)においてメモリ記憶装置(110)から複数の要求元装置(540、320)の1つへのデータ転送に関する早期警告を提供する方法であって、
    (1)前記複数の要求元装置(540、320)の1つによって、メモリ記憶装置(110)にデータ(230)を要求するステップと、
    (2)前記要求されたデータ(230)がまもなく来るということ、および前記複数の要求元装置(540、320)の1つがバスアービトレーションを開始すべきことを前記複数の要求元装置(540、320)の1つに指示するためにメモリ記憶装置(110)から早期警告信号(740)を送信するステップであって、
    第1の信号(720)を早期警告バス(710)に送信し、前記第1の信号(720)は複数のインタフェースバス(330、340)から前記データ(230)が要求された1つを識別するステップと、
    第2の信号(730)を前記早期警告バス(710)に送信し、前記第2の信号(730)は前記複数の要求元装置(540、320)の1つを識別するステップと、
    第3の信号(740)を早期警告バス(710)に送信し、前記第3の信号(740)は、有効な早期警告が実際に与えられたこと、および前記複数の要求元装置(540、320)の1つによって前記バスアービトレーションが開始されるべきことを指示するステップと
    を含むステップと、
    (3)前記複数の要求元装置(540、320)の1つによって、前記複数のバスインタフェース(520、340)の1つの使用に関するアービトレーションを行うステップと、
    (4)前記複数の要求元装置(540、320)の1つによって要求された前記データ(230)を受信するステップと
    を備えることを特徴とする方法。
  7. ステップ(3)は
    前記バスアービトレーションが開始したときにタイマを設定するステップと、
    ステップ(4)で前記要求されたデータが送信される前に前記タイマが期限切れになった場合に前記バスアービトレーションを解放するステップと
    を備えることを特徴とする請求項6に記載の方法。
  8. 多重プロセッサ処理システム(100)においてメモリ記憶装置(110)から複数の要求元装置(540、320)の1つへのデータ転送に関する早期警告を提供するシステムであって、
    前記複数の装置(540、320)の1つによって、メモリ記憶装置(110)からのデータ(230)を要求する手段(330、340)と、
    前記要求されたデータ(230)がまもなく来るということ、および前記複数の要求元装置(540、320)の1つがバスアービトレーションを開始すべきことを前記複数の要求元装置(540、320)の1つに指示するためにメモリ記憶装置(110)から早期警告信号(740)を送信する手段(710)であって、
    第1の信号(720)を早期警告バス(740)に送信し、前記第1の信号(720)は複数の要求先インタフェースバス(330、340)から前記データ(230)が要求された1つを識別する手段と、
    第2の信号(730)を前記早期警告バス(740)に送信し、前記第2の信号(730)は前記複数の要求元装置(540、320)の1つを識別する手段と、
    第3の信号(740)を早期警告バスに送信し、前記第3の信号(740)は、有効な早期警告が実際に送られたこと、および前記複数の要求元装置(540、320)の1つによって前記バスアービトレーションが開始されるべきことを指示する手段と
    を含む手段と、
    前記複数の要求元装置(540、320)の1つによって、前記複数のバスインタフェース(520、340)の1つの使用に関するアービトレーションを行う手段(540、320)と、
    前記複数の要求元装置(540、320)の1つによって要求された前記データ(230)を受信する手段(110)と
    を備えたことを特徴とするシステム。
  9. 前記アービトレーションを行う手段は、
    前記バスアービトレーションが開始したときにタイマを設定する手段と、
    前記送信手段により前記要求データが送信される前に前記タイマが期限切れになった場合に、前記バスアービトレーションを解放する手段と
    を備えたことを特徴とする請求項8に記載のシステム。
  10. 前記早期警告バスは前記メモリ記憶装置と前記複数の要求元装置の1つとの間に接続されることを特徴とする請求項6に記載の方法。
  11. 前記早期警告バスは前記メモリ記憶装置と前記複数の要求元装置の1つとの間に接続されることを特徴とする請求項8に記載のシステム。
JP2000519362A 1997-11-05 1998-11-04 データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法 Expired - Fee Related JP3635634B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/964,630 1997-11-05
US08/964,630 US6049845A (en) 1997-11-05 1997-11-05 System and method for providing speculative arbitration for transferring data
PCT/US1998/023459 WO1999023570A1 (en) 1997-11-05 1998-11-04 System and method for providing speculative arbitration for transferring data

Publications (2)

Publication Number Publication Date
JP2001522092A JP2001522092A (ja) 2001-11-13
JP3635634B2 true JP3635634B2 (ja) 2005-04-06

Family

ID=25508789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000519362A Expired - Fee Related JP3635634B2 (ja) 1997-11-05 1998-11-04 データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法

Country Status (9)

Country Link
US (1) US6049845A (ja)
EP (1) EP1029283B1 (ja)
JP (1) JP3635634B2 (ja)
KR (1) KR100381619B1 (ja)
AT (1) ATE235713T1 (ja)
AU (1) AU1305199A (ja)
BR (1) BR9814844A (ja)
DE (1) DE69812685T2 (ja)
WO (1) WO1999023570A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199135B1 (en) * 1998-06-12 2001-03-06 Unisys Corporation Source synchronous transfer scheme for a high speed memory interface
US6263409B1 (en) * 1998-12-22 2001-07-17 Unisys Corporation Data processing system and method for substituting one type of request for another for increased performance when processing back-to-back requests of certain types
US6304945B1 (en) * 1999-05-13 2001-10-16 Compaq Computer Corporation Method and apparatus for maintaining cache coherency in a computer system having multiple processor buses
JP2001184295A (ja) * 1999-12-27 2001-07-06 Toshiba Corp 周辺装置および計算機システム
US7058750B1 (en) * 2000-05-10 2006-06-06 Intel Corporation Scalable distributed memory and I/O multiprocessor system
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6791412B2 (en) * 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US20020087766A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and apparatus to implement a locked-bus transaction
US20020087775A1 (en) * 2000-12-29 2002-07-04 Looi Lily P. Apparatus and method for interrupt delivery
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
US6662277B2 (en) * 2001-07-31 2003-12-09 Hewlett-Packard Development Company, L.P. Cache system with groups of lines and with coherency for both single lines and groups of lines
CN100445973C (zh) * 2002-04-17 2008-12-24 威盛电子股份有限公司 总线控制权仲裁方法与仲裁器
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6862665B2 (en) * 2002-07-19 2005-03-01 Intel Corporation Method, system, and apparatus for space efficient cache coherency
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7966439B1 (en) * 2004-11-24 2011-06-21 Nvidia Corporation Apparatus, system, and method for a fast data return memory controller
US20080059674A1 (en) * 2006-09-01 2008-03-06 Jiaxiang Shi Apparatus and method for chained arbitration of a plurality of inputs
JP2009026135A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
JP2009026136A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
US20090164689A1 (en) * 2007-12-21 2009-06-25 Unisys Corporation Early response indication for data retrieval in a multi-processor computing system
US8090967B2 (en) * 2008-05-23 2012-01-03 Intel Corporation Power state transition initiation control of memory interconnect based on early warning signal, memory response time, and wakeup delay
US8713277B2 (en) * 2010-06-01 2014-04-29 Apple Inc. Critical word forwarding with adaptive prediction

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3641505A (en) * 1969-06-25 1972-02-08 Bell Telephone Labor Inc Multiprocessor computer adapted for partitioning into a plurality of independently operating systems
US3768074A (en) * 1972-05-12 1973-10-23 Burroughs Corp Multiprocessing system having means for permissive coupling of different subsystems
US4000485A (en) * 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4253146A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Module for coupling computer-processors
US4253144A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Multi-processor communication network
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
US4488217A (en) * 1979-03-12 1984-12-11 Digital Equipment Corporation Data processing system with lock-unlock instruction facility
US4392196A (en) * 1980-08-11 1983-07-05 Harris Corporation Multi-processor time alignment control system
US4466059A (en) * 1981-10-15 1984-08-14 International Business Machines Corporation Method and apparatus for limiting data occupancy in a cache
US4441155A (en) * 1981-11-23 1984-04-03 International Business Machines Corporation Page controlled cache directory addressing
US4464717A (en) * 1982-03-31 1984-08-07 Honeywell Information Systems Inc. Multilevel cache system with graceful degradation capability
US4586133A (en) * 1983-04-05 1986-04-29 Burroughs Corporation Multilevel controller for a cache memory interface in a multiprocessing system
US4667288A (en) * 1983-06-30 1987-05-19 Honeywell Information Systems Inc. Enable/disable control checking apparatus
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
US4562536A (en) * 1983-06-30 1985-12-31 Honeywell Information Systems Inc. Directory test error mode control apparatus
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
JPS62194563A (ja) * 1986-02-21 1987-08-27 Hitachi Ltd バツフア記憶装置
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5016167A (en) * 1987-12-21 1991-05-14 Amdahl Corporation Resource contention deadlock detection and prevention
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
EP0348053B1 (en) * 1988-06-21 1995-08-16 Amdahl Corporation Controlling the initiation of logical systems in a data processing system with logical processor facility
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
US5060136A (en) * 1989-01-06 1991-10-22 International Business Machines Corp. Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first
US4967414A (en) * 1989-01-06 1990-10-30 International Business Machines Corp. LRU error detection using the collection of read and written LRU bits
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
JP2833062B2 (ja) * 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JP2826857B2 (ja) * 1989-12-13 1998-11-18 株式会社日立製作所 キャッシュ制御方法および制御装置
JPH0470946A (ja) * 1990-07-04 1992-03-05 Mitsubishi Electric Corp Dmaコントローラを内蔵した処理装置
JPH04119445A (ja) * 1990-09-11 1992-04-20 Canon Inc 計算機システム
US5408629A (en) * 1992-08-13 1995-04-18 Unisys Corporation Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
JP2809961B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 マルチプロセッサ
US5499354A (en) * 1993-05-19 1996-03-12 International Business Machines Corporation Method and means for dynamic cache management by variable space and time binding and rebinding of cache extents to DASD cylinders
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
FR2707774B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux.
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
WO1995025306A2 (en) * 1994-03-14 1995-09-21 Stanford University Distributed shared-cache for multi-processors
US5490280A (en) * 1994-03-31 1996-02-06 Intel Corporation Apparatus and method for entry allocation for a resource buffer
US5465336A (en) * 1994-06-30 1995-11-07 International Business Machines Corporation Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
KR100357338B1 (ko) * 1994-08-02 2003-02-11 가부시끼가이샤 히다치 세이사꾸쇼 데이타처리시스템
JP3531074B2 (ja) * 1994-11-28 2004-05-24 富士通株式会社 記憶装置制御システム
US5717942A (en) * 1994-12-27 1998-02-10 Unisys Corporation Reset for independent partitions within a computer system
US5838955A (en) * 1995-05-03 1998-11-17 Apple Computer, Inc. Controller for providing access to a video frame buffer in split-bus transaction environment
US5852718A (en) * 1995-07-06 1998-12-22 Sun Microsystems, Inc. Method and apparatus for hybrid packet-switched and circuit-switched flow control in a computer system
US5787265A (en) * 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
US5793992A (en) * 1996-06-13 1998-08-11 Vlsi Technology, Inc. Method and apparatus for arbitrating access to main memory of a computer system
US5717897A (en) * 1996-09-09 1998-02-10 Unisys Corporation System for coordinating coherency of cache memories of multiple host computers of a distributed information system

Also Published As

Publication number Publication date
WO1999023570A1 (en) 1999-05-14
ATE235713T1 (de) 2003-04-15
DE69812685T2 (de) 2003-11-06
EP1029283B1 (en) 2003-03-26
DE69812685D1 (de) 2003-04-30
JP2001522092A (ja) 2001-11-13
EP1029283A1 (en) 2000-08-23
KR20010031690A (ko) 2001-04-16
KR100381619B1 (ko) 2003-04-26
US6049845A (en) 2000-04-11
BR9814844A (pt) 2000-10-03
AU1305199A (en) 1999-05-24

Similar Documents

Publication Publication Date Title
JP3635634B2 (ja) データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法
JP3703716B2 (ja) 非アトミックオペレーション中のメモリに対する独占的アクセスを提供する分割ロック操作方法
US6052760A (en) Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US5778438A (en) Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5991819A (en) Dual-ported memory controller which maintains cache coherency using a memory line status table
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
JP3999821B2 (ja) データ処理システム内でバス仲裁プロトコルを実行する方法および装置
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US6088771A (en) Mechanism for reducing latency of memory barrier operations on a multiprocessor system
JP3660679B2 (ja) 高度パイプライン式バス・アーキテクチャ
JPH0786849B2 (ja) 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム
KR100263633B1 (ko) 각종프로세서와버스프로토콜에적용가능한범용구조를제공하는컴퓨터시스템
JP2000250881A (ja) 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
JPH05100952A (ja) データ処理装置
JPH06282528A (ja) データ転送方法及びそのシステム
US6889343B2 (en) Method and apparatus for verifying consistency between a first address repeater and a second address repeater
US20020087766A1 (en) Method and apparatus to implement a locked-bus transaction
KR100277446B1 (ko) 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치
CA2181704C (en) Highly pipelined bus architecture
Lee et al. Design of a bus-based shared-memory multiprocessor DICE
JPH0962578A (ja) 情報処理装置及びその制御方法
CaoHuu et al. Universal read/write buffer for multiprocessor cache coherency schemes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040527

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

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041224

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090114

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090114

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100114

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110114

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120114

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130114

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130114

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees