JP3832833B2 - 情報処理方法および装置 - Google Patents
情報処理方法および装置 Download PDFInfo
- Publication number
- JP3832833B2 JP3832833B2 JP2003136734A JP2003136734A JP3832833B2 JP 3832833 B2 JP3832833 B2 JP 3832833B2 JP 2003136734 A JP2003136734 A JP 2003136734A JP 2003136734 A JP2003136734 A JP 2003136734A JP 3832833 B2 JP3832833 B2 JP 3832833B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- coherency
- data
- response
- request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、全般的にはデータ処理システムに関し、具体的には、多重プロセッサ・システム内でコヒーレンシ情報を提供するためのシステムおよび方法に関する。
【0002】
【従来の技術】
本特許出願は、1994年10月4日出願の下記の米国特許出願に関連するので、必要により参照されたい。
SYSTEM AND METHOD FOR COMMUNICATING BETWEEN DEVICES、米国特許出願第08/298,873号(HQ9-94-017)
DUAL LATENCY STATUS AND COHERENCY REPORTING FOR A MULTIPROCESSING SYSTEM、米国特許出願第08/316,980号(HQ9-94-033)
SYSTEM AND METHOD FOR DETERMINING SOURCE OF DATA IN A SYSTEM WITH INTERVENING CACHES、米国特許出願第08/317,256号(HQ9-94-034)
【0003】
共用バスを介してメモリ・システムに結合される複数のバス・デバイスを有する多重プロセッサ・システムでは、バス・デバイスが、読取り動作など、メモリ・システムに記憶されたデータの特定の部分を要求する動作を発行する。「スヌープ」・バス・デバイスを使用するシステムでは、共用バスに結合されたバス・デバイスが、動作を監視して、その動作がそのバス・デバイスのキャッシュ内に含まれるデータに関連するかどうかを判定する。これを「コヒーレンシ検査」と称することがしばしばである。このようなコヒーレンシ検査には、メモリ・システムまたはバス・デバイスのうちの1つが現在最新版のコピーを保持しているかどうかに無関係に、要求されたデータの最も新しく有効な版が要求元デバイスに送られるようにすることが含まれる。
【0004】
バス・デバイスが共用バスを介してバス要求を送る時には、複数のタイプの報告が要求元デバイスに送り返される可能性がある。要求元バス・デバイスに送り返される情報の一部によって、要求されたデータのコヒーレンシすなわち、どのデバイスが要求されたデータの有効な版を所有するかが報告される。関連特許である米国特許出願第08/316980号明細書に記載のものなどの応答ウィンドウ(「アドレス応答ウィンドウ」)を、コヒーレンシ報告に使用することができる。このウィンドウは、コヒーレンシ応答ウィンドウとも称するが、他のバス・デバイスのそれぞれで必要なキャッシュ・ディレクトリ索引に起因する長い遅延を考慮に入れて、アドレスと要求コードから構成可能なクロック数だけ後に置かれる。
【0005】
コヒーレンシ情報を即座に取得して許容されるアドレス応答ウィンドウ内で返すことができない時には、応答のウィンドウを延長する必要がある。これは、たとえば、不均一メモリ・アクセス(NUMA)型システムまたはスイッチ式メモリ・ディレクトリ型システムで必要になる。というのは、このようなシステムでは、コヒーレンシ情報がローカル・スヌープ・バス上で常に入手可能ではなく、読取り要求を別のバスまたはメモリ・ディレクトリ・システムに転送する必要があるからである(NUMAアーキテクチャでは、処理システムがローカル・バス・メモリだけを有する。メモリ・ディレクトリ・アーキテクチャでは、処理システムが、どのローカル・バスにも属さない大域メモリだけを有する)。コヒーレンシ応答ウィンドウを延長するためのプロトコルが、関連特許である米国特許出願第08/298873号明細書に記載されている。
【0006】
【発明が解決しようとする課題】
本発明の目的は、NUMAまたはメモリ・ディレクトリ・ベースのシステムで一般に発生するように、読取りデータが要求元プロセッサのローカル・バス以外のバスから与えられる時に、コヒーレンシ報告の性能を改善することである。
【0007】
本発明のもう1つの目的は、前に定義されたプロトコルにハードウェア信号を追加せずに、そのような読取り動作の性能を改善することである。
【0008】
【課題を解決するための手段】
これらの目的を達成する際に、ローカルでない供給源のデータに対する読取り要求に応答して、読取り要求が受け入れられた(すなわち、読取り動作に応答してRetry(再試行)応答が発行されなかった)場合に、あるコヒーレンシ応答が返され、要求されたデータが、ローカルでない供給源から取得され、データが要求元に配布される時に、ある信号がデータのコヒーレンシ状況を示す。
【0009】
本発明のもう1つの態様では、コヒーレンシ状況が、「共用」または「排他」のいずれかとして示される。
【0010】
本発明は、デバイスがReRun(再実行)動作を待機し、その後読取り動作を再発行する必要なしに、コヒーレンシ応答ウィンドウを延長できることが長所である。これによって、NUMAまたはメモリ・ディレクトリ・タイプのシステムで非ローカル・データに対する読取り動作の待ち時間が大幅に短縮される。読取り動作は、すべてのバス動作のかなりの部分になるので、これによってシステム性能がかなり向上する可能性がある。
【0011】
前述は、以下の本発明の詳細な説明をよりよく理解できるように本発明の特徴と技術的長所をかなりおおまかに述べたものである。
以下に、本発明の構成に関して以下の事項を開示する。
(1) 1組のバスを介して少なくとも1つの記憶デバイスに結合された複数のバス・デバイスを含む情報処理システムにおいて、
要求元となる第1デバイスによって、データ及びコヒーレンシ情報を求める要求をバス上に発行するステップと、
定められたコヒーレンシ応答間隔の間、1組のバスを介して前記第1デバイスに直接に結合された第2デバイスによって、前記要求されたコヒーレンシ情報を監視するステップと、
前記定められたコヒーレンシ応答間隔の間に、前記第2デバイスによって、前記コヒーレンシ情報が第2の間隔の間に返されることを示す第1信号を送るステップと、
前記第2間隔の間に、前記第2デバイスによって、前記コヒーレンシ情報を前記第1デバイスに提供するための第2信号を送るステップと
を含む、情報処理方法。
(2) 前記第2信号を送る前記ステップにおいて、前記バス上で前記第1信号を送る前記ステップよりも少ない本数の線が使用される、(1)に記載の方法。
(3) 前記第2間隔が、タグ及び要求されたデータとをアサートすることによって識別される、(2)に記載の方法。
(4) 前記第2信号が、単一の線上で単独に送られる、(3)に記載の方法。
(5) 前記第1信号が第1バス上にあり、前記第2信号が第2バス上にある、(4)に記載の方法。
(6) 前記第2デバイスによって、少なくとも1つの可能なコヒーレンシ応答を除去するステップをさらに含む、(1)に記載の方法。
(7) 前記第2デバイスによって、可能なコヒーレンシ応答を残りの2つのコヒーレンシ応答にまで減少するステップをさらに含み、第2信号を送る前記ステップが、前記残りの2つのコヒーレンシ応答のうちの1つを送るステップをさらに含む、(1)に記載の方法。
(8) 1組のバスからなるシステム・バスを複数備えた情報処理システムであって、前記システム・バスの各々には、複数の第1デバイス、少なくとも1つの記憶デバイス及び1つの第2デバイスが直接に結合されており、前記第2デバイスの各々が相互接続されている前記情報処理システムにおいて、
要求元のバスであるシステム・バスに結合され且つ要求元となる第1デバイスによって、前記第1デバイスによって決められたタグをバス動作中に含む前記バス動作を、前記要求元のバスとは異なるシステム・バスに結合されている第1デバイスであるリモート・デバイスに向けて発行するステップと、
前記要求元のバスであるシステム・バスを介して前記要求元の第1デバイスに直接に結合された第2デバイスによって、前記バス動作を検査するステップと、
前記リモート・デバイスに常駐するデータに向けられた読取り要求に応答して、前記第2デバイスによって定められたコヒーレンシ応答間隔の間に、前記第2デバイスによって前記要求元のバスである1組のバス上で第1コヒーレンシ応答を発行するステップと、
前記リモート・デバイスに、前記第2デバイスによって前記読取り要求を送るステップと、
前記リモート・デバイスから、要求されたデータを前記第2デバイスによって受け取るステップと、
前記要求元のバスである1組のバス上で、前記第2デバイスによって、前記タグ、要求されたデータおよび第2コヒーレンシ応答をアサートするステップと、
第2間隔の間に、前記要求元の第1デバイスによって、前記要求されたデータ及びコヒーレンシ情報を読み取るステップと
を含む方法。
(9) 前記第2コヒーレンシ応答が、前記第1コヒーレンシ応答よりも少ないバスの線の上にアサートされる、(8)に記載の方法。
(10) 前記要求されたデータ及び前記コヒーレンシ情報が前記リモート・デバイスから受け取られた後に、前記タグ及び前記要求されたデータをアサートして、前記第2デバイスによって前記第2間隔を開始するステップをさらに含む、(9)に記載の方法。
(11) 複数のバス・デバイスであって、前記複数のバス・デバイスは1又はそれ以上のプロセッサを含む、前記複数のバス・デバイスと、
少なくとも1つの記憶デバイスと、
前記複数のバス・デバイス及び前記記憶デバイスとを結合するバスと、
を含む情報処理システムであって、
要求元となる第1デバイスがデータおよびコヒーレンシ情報を求める要求を前記バス上に発行させる手段と、
定められたコヒーレンシ応答間隔の間に、1組のバスを介して前記第1デバイスに直接に結合された第2デバイスが前記要求されたコヒーレンシ情報について監視させる手段と、
前記定められたコヒーレンシ応答間隔の間に、前記第2デバイスは前記コヒーレンシ情報が第2間隔の間に返されることを示す第1コヒーレンシ応答を送らせる手段と、 前記第2間隔の間に、前記第2デバイスが前記コヒーレンシ情報を前記第1デバイスに提供するための第2コヒーレンシ応答を送らせる手段と
を含む、情報処理システム。
(12) 前記第2コヒーレンシ応答を送らせる前記手段が、前記第1コヒーレンシ応答よりも少ないバスの線の上に前記第2コヒーレンシ応答を送らせる、(11)に記載のシステム。
(13) 前記第2間隔は、前記第2デバイスが前記要求されたデータ及び前記タグをアサートすることによって識別される、(12)に記載のシステム。
(14) 前記第2コヒーレンシ応答が、前記第2デバイスによって単一の線の上に単独に送られる、(13)に記載のシステム。
(15) 前記第2デバイスが、前記第2コヒーレンシ応答を少なくとも1つの可能なコヒーレンシ応答にまで除去させる手段をさらに含む、(11)に記載のシステム。
(16) 前記第2デバイスが、可能なコヒーレンシ応答を残りの2つのコヒーレンシ応答にまで減少させる手段をさらに含み、第2コヒーレンシ応答を送らせる前記手段が、残りの2つのコヒーレンシ応答のうちの1つを送る、(11)に記載のシステム。
(17) 複数のシステム・バスを備えた情報処理システムであって、前記システム・バス各々には複数の第1デバイス、少なくとも1つの記憶デバイス及び1つの第2デバイスが直接に結合されており、前記第2デバイス各々が相互接続されている前記情報処理システムにおいて、
要求元となる第1デバイスが、前記要求元とは異なるシステム・バスに結合されている第1デバイスであるリモート・デバイスに常駐するデータに向けられた読取り要求を発行するため、前記要求元によって決められたタグをバス動作中に含む前記バス動作を自システム・バス上に発行するステップと、
前記第2デバイスが、前記読取り要求が前記自システム・バスを離れるか否かを検査するステップと、
前記読取り要求に応答して、前記第2デバイスが、定められたコヒーレンシ応答間隔の間に前記自システム・バス上で第1コヒーレンシ応答を発行するステップと、
前記リモート・デバイスに向けて、前記第2デバイスが前記読取り要求を送り出すステップと、
前記リモート・デバイスから返された前記データを、前記第2デバイスが受け取るステップと、
前記自システム・バス上で、前記第2デバイスが、前記タグ及び前記データ並びにコヒーレンシ情報を含む第2コヒーレンシ応答をアサートするステップと、
アサートされた前記タグを検出した前記第1デバイスが、第2間隔の間に前記データ及び前記コヒーレンシ情報を読取るステップと、
を含み、
前記コヒーレンシ情報は前記第1コヒーレンシ応答より少ないバス線上にアサートされることを特徴とする情報処理方法。
本発明の追加の特徴および長所を、以下で説明するが、これが本発明の請求の対象を形成する。
【0012】
【発明の実施の形態】
本発明の新規の特徴を明瞭に指摘するために、以下の議論では、当業者に明白な、情報処理システムの通常の特徴は、省略するかごく簡略に述べる。当業者は、マルチユーザ、多重プロセッサ・オペレーティング・システムに精通し、特に、仮想記憶を含むメモリ管理と、プロセッサ・スケジューリングと、プロセスおよびプロセッサの両方に関する同期化機能と、メッセージ送受と、通常のデバイス・ドライバと、端末およびネットワークのサポートと、システム初期設定と、割込み管理と、システム呼出し機能と、管理機能とに関するそのようなオペレーティング・システムの要件に精通していると仮定する。
【0013】
ここで図1を参照して、本発明を有利に実施するデータ処理システムを説明する。多重プロセッサの情報処理システム100には、複数のローカルなシステム・バス108.1、108.2などが含まれ、システム・バス108.1などのローカル・システム・バスは、複数のプロセッサ102.1、104.1、106.1などと、プロセッサ・ノード・コントローラ(または「バス・アダプタ」、以下ではノード・コントローラと呼称する)130.1とが動作可能に接続されている(システム・バス108.1、108.2など、複数の同様の符号を付された要素を参照または図示する場合、これらの要素を「システム・バス108」などのように接尾辞なしで集合的に参照する場合がある)。プロセッサ・ユニット102、104、106などには、プロセッサとキャッシュ記憶デバイスが含まれる可能性があるが、本明細書では単に「プロセッサ」と呼称する。ノード・コントローラ130には、ローカル・メモリが存在する場合に、ローカル・バス上のシステム・メモリ110のディレクトリが含まれる。システム・バス108は、ノード・コントローラ130を介して相互接続140に動作可能に結合され、これによって、システム・バス108が、NUMAアーキテクチャでは他のシステム・バス108に結合され、メモリ・ディレクトリ・アーキテクチャでは、それが含まれるディレクトリと共にメモリ要素150に結合される。
【0014】
ここで図2を参照すると、ローカルのシステム・バス108が、プロセッサ・ユニット102、104、106ないしnまでの複数のプロセッサに動作的に接続されている。また、システム・バス108には、システム・メモリ110も接続されている。この図の実施例では、システム・バス108に、とりわけ、5ビットの転送タイプ(「TT」)・バス221、64ビットのアドレス・バス222、128ビットのデータ・バス224、8ビットのデータ・タグ(「DTag」)・バス226、6ビットのアドレス応答(「AResp」)バス227および1ビットのキャッシュ・データ(「DCache」)・バス228が含まれる。プロセッサ102ないしnおよびシステム・メモリ110は、ノード・コントローラ130の制御の下で動作し、ノード・コントローラ130は、2地点間接続線(図示せず)によって、システム・バス108に接続されたプロセッサ102ないしnおよびシステム・メモリ110と通信する。ノード・コントローラ130は、符号132で、他のバスおよびデバイスと結合される(図1参照)。したがって、図1を参照すると、システム・バス108.1にローカルに結合されたプロセッサ102.1は、ノード・コントローラ130.1を介して、ローカルなシステム・バス108.1を超えたデバイス、たとえばローカルなシステム・バス108.2に結合されたプロセッサ102.2、ローカルなシステム・バス108.3に結合されたシステム・メモリ110.3、相互接続140に接続されたメモリ要素150.1と通信することができる。
【0015】
システム・バス108のアクセスの要求と認可は、すべてがノード・コントローラ130によって制御される。プロセッサ102など、バス・デバイスのうちの1つが、2地点間接続(図示せず)を介してノード・コントローラ130からシステム・バス108上での動作を可能にするよう要求する可能性がある。ノード・コントローラ130からバス認可を受け取ると、プロセッサ102は、要求元デバイスとしてプロセッサ102を識別するトランザクション・タグを含むアドレスを、システム・バス108上でイネーブルする。
【0016】
バス接続数およびバス周波数を最大にし、なおかつCMOS論理デバイスに対するシステム・バス108の直接接続を可能にするために、バス・デバイスからのさまざまな状況応答およびコヒーレンシ応答は、バスに関与する各デバイスから、ノード・コントローラ130内などの共通の集合点へ単一方向に駆動され、この集合点では、すべての応答を組み合わせた後に、組合せ応答を各要求元バス・デバイスに返す。ノード・コントローラ130は、リモートのメモリ要素150またはシステム・メモリ110すなわち、要求元のプロセッサ102のシステム・バス108に対してリモートに置かれるメモリ要素150またはシステム・メモリ110に関するコヒーレンシ情報も集める。また、ノード・コントローラ130の組合せ論理は、応答に優先順位をつける。これは、バス・デバイスが異なる応答を送る可能性があるからである。この優先順位づけは、下で説明する表に記載されている。
【0017】
次に図3を参照すると、アドレスAは、プロセッサ102によってシステム・バス108上でイネーブルされる。一定の時間の後に、状況情報すなわち、フロー制御とエラーの状況が、フロー制御状況応答ウィンドウA(「状況A」として図示)の間にプロセッサ102に返される。プロセッサ102は、固定だが構成可能な時間の間、さらにコヒーレンシ情報を待つこともでき、この情報は、アドレス応答ウィンドウA(「スヌープA」として図示)の間にARespバス227上でノード・コントローラ130によって情報処理システム100内のさまざまな他のバス・デバイスからプロセッサ102に返される。このコヒーレンシ情報は、他のバス・デバイスによる通常のスヌープ動作の結果として作成されるが、プロセッサ102に、要求されたデータの最新版がある場所を示す。たとえば、プロセッサ104が、要求されたデータを修正された形で保持すると判定する場合、プロセッサ104は、プロセッサ104が要求されたデータの最新版を保持しており、システム・メモリ110に最新版が含まれないことをプロセッサ102に知らせる。アドレスと要求コードの後で構成可能なクロック・サイクル数の後にアドレス応答ウィンドウを配置できるので、情報処理システム100内のさまざまなバス・デバイスのそれぞれでのキャッシュ・ディレクトリ索引を実行するための異なるより長いアクセス時間が可能になる。
【0018】
表1に、好ましい実施例で符号化されるコヒーレンシ・メッセージの例を示す。
【表1】
【0019】
この表に、返されるコヒーレンシ・メッセージの優先順位づけが含まれることに留意されたい。この優先順位づけは、返されるメッセージを最初に受け取るノード・コントローラ130によって、さまざまなバス・デバイスから受け取るメッセージのどれをプロセッサ102に送るかを決定するのに使用される可能性がある。たとえば、バス・デバイスであるプロセッサ104が優先順位2を有する「Modified(変更あり)」メッセージ(表1参照)を返し、バス・デバイスであるプロセッサ106が優先順位3を有する「ReRun」メッセージを返す場合、ノード・コントローラ130は、「Modified」メッセージ・コヒーレンシ応答を送るように実施することができる。
【0020】
表1に示された応答のうちの3つが、延長されないアドレス応答ウィンドウ中の即座のコヒーレンシ解決をもたらす。Modified応答は、要求元デバイス、たとえばプロセッサ102に、他のプロセッサ104、106などのうちの1つのキャッシュに変更されたキャッシュ・ラインが存在することを示すのに使用される。Shared(共用)応答は、1つまたは複数のそのようなローカル・キャッシュにデータが存在するが、変更されていないことを示す。Null(無)応答は、データがローカル・キャッシュにもリモート・キャッシュにも存在せず、ローカル・メモリに存在することを示す。
【0021】
表1に示された応答のうちの3つでは、アドレス応答ウィンドウが延長される。Retry応答は、コヒーレンシ衝突を示し、要求元デバイスが後程その動作を再送しなければならないことを示すのに使用される。ReRun応答とRemStat応答は、ローカル・バスを離れる時に使用される。
【0022】
図4および図5は、時間間隔T1、T2などの間にシステム・バス108に含まれるバス上でアサートされるさまざまな信号を示す図である。図4および図5のどちらでも、図示の時間間隔は、持続時間または間隔の間の時間のいずれについても必ずしも実際の値の通りではない。
【0023】
図4は、ReRun応答によってセット・アップされる延長アドレス応答ウィンドウの実装を示す図である。時刻T1に、プロセッサ、たとえばプロセッサ102が、コヒーレンシ情報を必要とする読取り動作を発行するが、これには、プロセッサ102が、TTバス221上で読取り信号をアサートし、アドレス・バス222上でアドレスとタグをアサートすることが含まれる。読取り要求に続くある構成された時間であるアドレス応答ウィンドウ(時間間隔T2)の間に、ノード・コントローラ130が、ARespバス227上でReRun信号をアサートする。ReRun応答によって、ノード・コントローラ130が後程ReRun要求を開始することが示され、その時まで要求元のプロセッサ102がコヒーレンシ情報を得るために別の処置を開始する必要が実質的になくなる。コヒーレンシ情報が非ローカル供給源から得られた後、ノード・コントローラ130は、当初は要求元のプロセッサ102によって確立されたトランザクション・タグをDTagバス226上でアサートし、TTバス221上でReRun要求をアサートすることによって、時刻T3に要求元のプロセッサ102にReRun要求を送る。これに応答して、プロセッサ102は、時刻T4に読取り動作を再送し、今回は、アドレス・バス222上のあるビット(「Rビット」)もアサートし、ノード・コントローラ130は、構成されたアドレス応答ウィンドウ(時間間隔T5)中にARespバス227上にコヒーレンシ情報をアサートする。要求されたデータが得られた時に、読取り間隔(時間間隔T6)の間にトランザクション・タグがDTagバス226上でアサートされ、データがデータ・バス224上でアサートされる。
【0024】
図5は、RemStat応答の送出によってセット・アップされる延長アドレス応答ウィンドウの実施を示す図である。時刻T1に、プロセッサ102などのプロセッサが、コヒーレンシ情報を必要とする読取り動作を発行するが、これには、プロセッサ102がTTバス221上で読取り信号をアサートすることと、アドレス・バス222上でアドレスとタグをアサートすることが含まれる。読取り要求の後のある構成された時間であるアドレス応答ウィンドウ(時間間隔T2)中に、ノード・コントローラ130が、ARespバス227上でRemStat信号をアサートする。RemStat応答は、後程ノード・コントローラ130が要求されたデータと共にそのデータのコヒーレンシ情報を要求元のプロセッサ102に返すことを示し、要求元のプロセッサ102がコヒーレンシ情報を得るために別の処置を開始する必要を実質的になくし、また、待ち時間を実質的に減少させる。
【0025】
本発明に先行する関連特許である米国特許出願第08/317256(HQ9−94−034)号明細書に記載されているように、DCacheバスは、データ転送がシステム・メモリからではなく間にあるキャッシュ・デバイスからであり、その状況でキャッシュ・デバイスによって駆動されたことをDCache信号によって示すのに使用されている。非ローカル・バス読取り動作中にはそのようなキャッシュ介在のためにDCache信号がアサートされることはないので、本発明に従ってコヒーレンシ情報を担持するのにこのDCache信号を利用することができる。
【0026】
プロセッサ102が、この特定のデータを読み取る要求などの保留中の要求を有する時には、プロセッサ102は、クロック・サイクルごとにDTagバスを監視する。ノード・コントローラ130が、要求されたデータとそのデータのコヒーレンシ情報を取得したならば、ノード・コントローラ130は、要求元デバイスを識別するトランザクション・タグ信号をDTagバス226上にアサートし、データ信号をデータ・バス224上にアサートし、コヒーレンシ情報信号をDCacheバス228上にアサートする。好ましい実施例では、タグ、データおよびコヒーレンシ情報のすべてが、同一のクロック・サイクル(時間間隔T3として図示)の間にアサートされる。トランザクション・タグが送られている時のサイクル(すなわち間隔T3)の間に、DTagバス上でのタグの検出に応答して、プロセッサ102は、データ・バス224上のデータ信号とDCacheバス228上のコヒーレンシ信号の両方を読み取るが、この時、ノード・コントローラ130からのReRun動作を待機することに関連する追加の遅延を被る必要はなく、その後に必要な情報を読み取るためにアドレス応答ウィンドウの追加の要求を開始し、待機する必要もない。
【0027】
ここで図6および図7を参照すると、情報処理システム100によって実行される動作の流れ図が示されている。具体的に言うと、図6および図7の流れ図は、好ましい実施例のノード・コントローラ130などのバス・デバイスによって実行される動作を示す流れ図である。図6および図7に示された動作は、図示のシーケンスで実行する必要はない。図6の場合、実行は、ブロック400で開始され、ブロック402に進んで、ノード・コントローラ130が、ローカルのシステム・バス108を越えるバス動作を分析する。たとえば、システム・バス108.1は、プロセッサ102.1に対してローカルであり、その結果、プロセッサ102.1による、システム・バス108.2上のシステム・メモリ110.2からまたはメモリ要素150からデータを供給される読取り動作は、ローカルのシステム・バス108.1を越えるバス動作になる。
【0028】
その後、そのようなバス動作について、実行は判断ブロック404に継続し、ここで、ノード・コントローラ130の論理は、コヒーレンシ応答が不要な場合にはブロック406に分岐し(この場合、本発明の目的のための分析は、ブロック408に示されるように完了している)、コヒーレンシ応答が必要な場合にはブロック410に分岐する。
【0029】
ブロック410の判断に従って、ノード・コントローラ130の論理は、読取り動作の場合にはブロック412へ、他の動作の場合にはブロック418へ分岐する。読取り動作の場合、ノード・コントローラ130は、通常のアドレス応答ウィンドウ中に要求元にRemStat応答を返す(ブロック412)。読取り動作以外の場合、ノード・コントローラ130は、通常のアドレス応答ウィンドウ中にReRun応答を返す(ブロック414)。その後、ノード・コントローラ130は、その動作の要求元によって生成されたタグを保存し(ブロック416)、動作のこの段階の分析を完了し、動作を非ローカルのバスまたはメモリに転送する(ブロック418)。
【0030】
図7からわかるように、ノード・コントローラ130が、リモート動作が完了したことの表示を受け取る時(ブロック430)、ノード・コントローラ130の論理は、ブロック432に進んで、その動作が読取り動作であったかどうかを判定し、それに応じて分岐する。動作が読取り動作の場合には(ブロック434)、ノード・コントローラ130は、元のタグと共にデータを返す。コントローラは、データとDTag信号をアサートする間に、データのコヒーレンシ状況がSharedの場合にはDCacheバス上の信号もアサートする。Nullのコヒーレンシ状況を示すには、DCacheバスの信号をアサートしない。この実施例に関しては、これでリモート読取り動作のリターンに関するノード・コントローラ130による応答が完了する(ブロック436)。読取り動作でないリモート動作のリターンの場合、ノード・コントローラ130は、ReRun要求を発行し、DTag信号をアサートする(ブロック438)。その後、要求元が、アドレス・バスのRビットをアサートしてこれが再実行されたリターン動作であることを示しながら非読取り動作を再発行する時に、ノード・コントローラ130は、通常のアドレス応答ウィンドウ中にコヒーレンシ応答を返す(ブロック440)。その後、動作がRead With Intent To Modify(変更目的の読取り)であった場合(ブロック442)、ノード・コントローラ130は、データ・バス224上でそのデータのデータ信号をアサートし、DTagバス226上でタグをアサートし(ブロック444)、これによって、この実施例の観点からは動作が完了する。
【0031】
ここで図8を参照すると、情報処理システム100によって実行される追加動作の流れ図が示されている。具体的に言うと、図8の流れ図は、好ましい実施例のプロセッサ102などのマスタ・バス・デバイスによって実行される動作の流れ図である。図8に示された動作は、図示のシーケンスで実行する必要はない。
【0032】
ブロック460に示されているように、マスタであるプロセッサ102は、読取り動作を開始し、コヒーレンシ応答を受け取る。マスタであるプロセッサ102は、受け取ったコヒーレンシ応答のタイプを判定する。要求したデータが「Shared」状況であることが応答から示される場合(ブロック462)、これは、そのデータが、ローカルのシステム・バス108上のシステム・メモリ110と、システム・バス108上の別のプロセッサ104、106などのキャッシュ内にも存在するが、キャッシュ内で変更されていないことを意味する。したがって、マスタであるプロセッサ102は、プロセッサ102用のタグを付けられたデータを待ち、このデータをキャッシュ内で共用としてマークする(ブロック464)。この場合、現在の議論に関しては、これでマスタの処理が終了する(ブロック466)。
【0033】
状況が「Modified」であることが応答から示される場合(ブロック468)、これは、そのデータがローカルのシステム・バス108上のシステム・メモリ110と、システム・バス108上の別のプロセッサ104、106などのキャッシュとに存在し、キャッシュ内で変更されていることを意味する。したがって、マスタであるプロセッサ102は、タグ付きのデータを待つ(ブロック470)。この場合、読取り要求に対する応答は、キャッシュと他のシステム・メモリ110の両方から来るので、最初に受け取られるデータは、システム・メモリ110とキャッシュの間の競争に依存する。したがって、正しいデータが使用されることを保証するために、マスタであるプロセッサ102は、タグ付きデータのキャッシュ版を待つが、このデータは、DCache信号がアサートされた状態で返される。その後、マスタであるプロセッサ102は、このデータをキャッシュ内で「Shared」としてマークし(ブロック470)、この議論の目的に関して終了する(ブロック466)。
【0034】
状況が「Null」であることが応答から示される場合(ブロック472)、これは、そのデータがローカルなシステム・バス108のシステム・メモリ110だけに存在することを意味する。したがって、マスタであるプロセッサ102は、タグ付きのデータを待ち、その後、マスタであるプロセッサ102は、このデータをキャッシュ内で「排他」としてマークし(ブロック474)、この議論の目的に関して終了する(ブロック466)。
【0035】
状況が「RemStat」であることが応答から示される場合(ブロック476)、これは、そのデータがシステム・メモリ110にもローカルなシステム・バス108のキャッシュにも存在しないことを意味する。この場合、要求元であるプロセッサ102は、ノード・コントローラ130を介してメッセージを受け取るだけで、ローカルなシステム・メモリ110とローカル・キャッシュの間の競争はない。したがって、「Modified」コヒーレンシ状況を返す必要がなくなり、必要なコヒーレンシ応答としては「排他」状況または「共有」状況だけが残され、その結果、コヒーレンシ応答は、単一の線上のディジタル論理信号としてアサートできるようになる。したがって、マスタであるプロセッサ102は、タグ付きのデータを待ち、DCache信号がアサートされた状態でタグ付きデータが返される場合には、マスタであるプロセッサ102は、そのデータをキャッシュ内で「共用」としてマークするが、そうでない場合にはそのデータを「排他」としてマークし(ブロック478)、この目的に関して終了する(ブロック466)。
【0036】
マスタであるプロセッサ102が、応答から「RemStat」状況が示されないと判定する場合、マスタであるプロセッサ102は、状況が「ReRun」であるかどうかを判定する(ブロック480)。そうである場合、マスタであるプロセッサ102は、Rビットとタグをセットし、読取り動作を再発行する(ブロック482)が、そうでない場合には、マスタであるプロセッサ102は、Rビットをセットせずに読取り動作を再発行する(ブロック484)。
【0037】
本発明とその長所を詳細に説明してきたが、請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに、さまざまな変更、置換および代替を作成できることを理解されたい。
【0038】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0039】
(1)1組のバスを介して少なくとも1つの記憶デバイスに結合される複数のバス・デバイスを含む情報処理システムにおいて、
第1デバイス(「要求元」)によって、データおよびコヒーレンシ情報を求める要求をバス上に発行するステップと、
定められたコヒーレンシ応答間隔の間、要求されたコヒーレンシ情報について監視するステップと、
第2デバイスによって、コヒーレンシ情報が第2の間隔の間に返されることを示す第1信号を、定められたコヒーレンシ応答間隔の間に送るステップと、 第2間隔の間に、要求元にコヒーレンシ情報を提供するために第2信号を送るステップと を含む情報処理方法。
(2)第2信号を送るステップが、第1信号を送るステップよりも少ない本数のバス線を使用することを特徴とする、上記(1)に記載の方法。
(3)第2間隔が、タグと要求されたデータとをアサートすることによって少なくとも部分的に識別されることを特徴とする、上記(2)に記載の方法。
(4)第2信号が、単一の線上で単独で送られることを特徴とする、上記(3)に記載の方法。
(5)さらに、第1信号が第1バス上にあり、第2信号が第2バス上にあることを含む、上記(4)に記載の方法。(6)さらに、第2デバイスによって、少なくとも1つの可能なコヒーレンシ応答を除去するステップを含む、上記(1)に記載の方法。
(7)さらに、第2デバイスによって、可能なコヒーレンシ応答を残りの2つのコヒーレンシ応答まで減少するステップを含み、第2信号を送るステップが、さらに、2つの残りのコヒーレンシ応答のうちの1つを送るステップを含むことを特徴とする、上記(1)に記載の方法。
(8)1組のバスを介して少なくとも1つの記憶装置に結合された複数のバス・デバイスを含む情報処理システムにおいて、
1組のバス(以下「要求元のバス」という)に結合された第1デバイス(以下「要求元」という)によって、要求元によって決められたタグを含むバス動作を、要求元のバスに直接には結合されない少なくとも1つのデバイス(以下「リモート・デバイス」という)に向けて発行するステップと、
第2デバイスによってバス動作を検査するステップと、
リモート・デバイス内に常駐するデータに向けられた読取り要求に応答して、応答デバイスによって、定められたコヒーレンシ応答間隔中に要求元のバスのうちの1つで第1コヒーレンシ応答を発行するステップと、
リモート・デバイスに読取り要求を送るステップと、
リモート・デバイスから、要求されたデータを受け取るステップと、
要求元のバスのうちのいくつかでタグ、要求されたデータおよび第2コヒーレンシ応答をアサートするステップと、
ある間隔(「読取り間隔」)中に要求元によって、要求されたデータおよびコヒーレンシ情報を読み取るステップと
を含む方法。
(9)さらに、第1コヒーレンシ応答が、バス上のある本数の線上にあり、第2コヒーレンシ応答が、バス上のより少ない本数の線上にある、上記(8)に記載の方法。
(10)さらに、読取り間隔が、少なくとも部分的に、要求されたデータとコヒーレンシ情報とをリモート・デバイスから受け取った後に、応答デバイスがタグと要求されたデータとをアサートすることによって開始されることを含む、上記(9)に記載の方法。
(11)1つまたは複数のプロセッサを含む複数のバス・デバイスと、
少なくとも1つの記憶装置と、
前記複数のバス・デバイスと前記記憶装置とを結合するバスと、
データおよびコヒーレンシ情報を求める要求を第1デバイス(「要求元」)によってバス上に発行するための手段と、
定められたコヒーレンシ応答間隔の間、コヒーレンシ情報に関して要求元によって監視を行うための手段と、
コヒーレンシ情報が第2間隔の間に返されることを示す第1コヒーレンシ応答を、定められたコヒーレンシ応答間隔の間に第2デバイスによって送るための手段と、
第2間隔の間に要求元にコヒーレンシ情報を提供するために第2コヒーレンシ応答を送るための手段と
を含む情報処理システム。
(12)第1コヒーレンシ応答が、バスの何本かの線上にあり、第2コヒーレンシ応答が、第1コヒーレンシ応答より少ない本数のバスの線上にあることを特徴とする、上記(11)に記載のシステム。
(13)第2間隔が、少なくとも部分的に、要求されたデータと要求に関連するタグとをアサートすることによって識別されることを特徴とする、上記(12)に記載のシステム。
(14)第2コヒーレンシ応答が、単一の線上で単独に通信されることを特徴とする、上記(13)に記載のシステム。
(15)さらに、第2コヒーレンシ応答に関して可能なコヒーレンシ応答を、少なくとも1つの可能な応答だけ減らすための手段を含む、上記(11)に記載のシステム。
(16)さらに、第2デバイスによって、可能なコヒーレンシ応答を2つの残りのコヒーレンシ応答に減らすための手段を含み、第2コヒーレンシ応答を送るための手段が、残りのコヒーレンシ応答のうちの1つを送ることを特徴とする、上記(11)に記載のシステム。
【図面の簡単な説明】
【図1】 複数の共用ローカル・バスを示すシステム・ブロック図である。
【図2】システム内のローカル・バスのブロック図である。
【図3】フロー制御状況応答間隔とコヒーレンシ情報応答間隔を使用する動作を全体的に示す図である。
【図4】コヒーレンシ情報応答間隔を延長する手段を提供するReRun動作を示す図である。
【図5】コヒーレンシ情報応答間隔を延長する手段を提供するRemStat動作を示す図である。
【図6】延長されたコヒーレンシ情報応答間隔を使用する動作を示す流れ図である。
【図7】延長されたコヒーレンシ情報応答間隔を使用する動作を示す流れ図である。
【図8】延長されたコヒーレンシ情報応答間隔を使用する動作を示す流れ図である。
【符号の説明】
100 情報処理システム
102 プロセッサ
104 プロセッサ
106 プロセッサ
108 システム・バス
110 システム・メモリ
130 ノード・コントローラ
140 相互接続
150 メモリ要素
Claims (4)
- 複数のシステム・バスと、
該複数のシステム・バスを相互に接続する相互接続バスと、
各システム・バスに接続されたノード・コントローラ、各々がキャッシュ・メモリを有する複数のプロセッサ、及びシステム・メモリと、
を含むデータ処理システムにおいて、
要求元プロセッサが、該プロセッサが接続されているシステム・バス(以下「ローカル・バス」とする)以外のシステム・バスに接続されたキャッシュ・メモリ又はシステム・メモリ(以下「リモート・ノード」とする)からデータが提供される場合の性能を改善する方法であって、
(1)前記要求元プロセッサが、データおよびコヒーレンシ情報を求める要求をバス上に発行するステップと、
(2)前記ローカル・バスのノード・コントローラが、定められたコヒーレンシ応答間隔の間、前記要求がリモート・バスへの要求であるか否かを分析し、リモート・ノードへの要求である場合には、前記要求が読取り動作であるか否かをさらに判断するステップと、
(3)読取り動作の場合には、前記ノード・コントローラが、前記定められたコヒーレンシ応答間隔の間に、前記要求元プロセッサに第1信号(RemStat)を返し、これにより、前記要求元プロセッサの待ち時間を短縮する、ステップと、
(4)前記ノード・コントローラが前記要求を前記リモート・ノードへ送るステップと、
(5)前記ノード・コントローラが、前記リモート・ノードにおける動作が完了したことの表示を受け取り、該動作が読取り動作であったか否かを判断するステップと、
(6)読取り動作であった場合には、前記ノード・コントローラが、データと共に、コヒーレンシ状況を示す第2信号を、前記ローカル・バス中の所定の信号線であって、ローカル・ノード内でのデータ転送において、該データがキャッシュ・メモリから送信される事を示す際に活性化される信号線(DCacheバス)を用いて送信し、これにより、ハードウェアを追加せずにコヒーレンシ報告を行う、ステップと、
を含む、情報処理方法。」 - 前記ステップ(6)において、DCacheバスが活性化された場合には、前記データのコヒーレンシ状況が共用であり、活性化されない場合には排他である、請求項1記載の方法。
- 前記DCacheバスが1ビット信号線である、請求項1または2記載の方法。
- 前記データ処理システムが、不均一メモリ・アクセス(NUMA)型システム又はスイッチ式メモリ・ディレクトリ型システムである、請求項1〜3のいずれか1項記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/573,092 US5673413A (en) | 1995-12-15 | 1995-12-15 | Method and apparatus for coherency reporting in a multiprocessing system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29541996A Division JP3529566B2 (ja) | 1995-12-15 | 1996-11-07 | 情報処理方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004005657A JP2004005657A (ja) | 2004-01-08 |
JP3832833B2 true JP3832833B2 (ja) | 2006-10-11 |
Family
ID=24290613
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29541996A Expired - Fee Related JP3529566B2 (ja) | 1995-12-15 | 1996-11-07 | 情報処理方法および装置 |
JP2003136734A Expired - Fee Related JP3832833B2 (ja) | 1995-12-15 | 2003-05-15 | 情報処理方法および装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29541996A Expired - Fee Related JP3529566B2 (ja) | 1995-12-15 | 1996-11-07 | 情報処理方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5673413A (ja) |
EP (1) | EP0779583B1 (ja) |
JP (2) | JP3529566B2 (ja) |
KR (1) | KR100241644B1 (ja) |
CN (1) | CN1099644C (ja) |
DE (1) | DE69628127T2 (ja) |
TW (1) | TW401542B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166339B2 (en) | 2008-04-21 | 2012-04-24 | Sony Corporation | Information processing apparatus, information processing method, and computer program |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860120A (en) * | 1996-12-09 | 1999-01-12 | Intel Corporation | Directory-based coherency system using two bits to maintain coherency on a dual ported memory system |
US6055608A (en) * | 1997-04-14 | 2000-04-25 | International Business Machines Corporation | Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system |
US5996049A (en) * | 1997-04-14 | 1999-11-30 | International Business Machines Corporation | Cache-coherency protocol with recently read state for data and instructions |
US6026448A (en) * | 1997-08-27 | 2000-02-15 | International Business Machines Corporation | Method and means for exchanging messages, responses and data between different computer systems that require a plurality of communication paths between them |
US6067611A (en) * | 1998-06-30 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency |
DE19981441D2 (de) * | 1998-07-30 | 2001-07-12 | Siemens Ag | Bus-Steuereinheit zur Unterstützung einer Programmablauf-Überwachung in Sternstrukturen, dazugehöriges Programmablauf-Überwachungssystem sowie Verfahren zur Programmablauf-Überwachung |
US6085293A (en) * | 1998-08-17 | 2000-07-04 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests |
US6546429B1 (en) * | 1998-09-21 | 2003-04-08 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry |
US6145032A (en) * | 1998-09-21 | 2000-11-07 | International Business Machines Corporation | System for recirculation of communication transactions in data processing in the event of communication stall |
US6081874A (en) * | 1998-09-29 | 2000-06-27 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect |
US6067603A (en) * | 1998-10-01 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect |
US6108764A (en) * | 1998-12-17 | 2000-08-22 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention |
US6490661B1 (en) | 1998-12-21 | 2002-12-03 | Advanced Micro Devices, Inc. | Maintaining cache coherency during a memory read operation in a multiprocessing computer system |
US6631401B1 (en) | 1998-12-21 | 2003-10-07 | Advanced Micro Devices, Inc. | Flexible probe/probe response routing for maintaining coherency |
US6275905B1 (en) * | 1998-12-21 | 2001-08-14 | Advanced Micro Devices, Inc. | Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system |
US6370621B1 (en) | 1998-12-21 | 2002-04-09 | Advanced Micro Devices, Inc. | Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation |
US6115804A (en) * | 1999-02-10 | 2000-09-05 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention |
US6269428B1 (en) * | 1999-02-26 | 2001-07-31 | International Business Machines Corporation | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system |
US6779036B1 (en) * | 1999-07-08 | 2004-08-17 | International Business Machines Corporation | Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system |
US6467012B1 (en) * | 1999-07-08 | 2002-10-15 | International Business Machines Corporation | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors |
US6442597B1 (en) * | 1999-07-08 | 2002-08-27 | International Business Machines Corporation | Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory |
US6480973B1 (en) * | 1999-09-30 | 2002-11-12 | Bull Information Systems Inc. | Gate close failure notification for fair gating in a nonuniform memory architecture data processing system |
US6654837B1 (en) * | 1999-12-28 | 2003-11-25 | Intel Corporation | Dynamic priority external transaction system |
US6757793B1 (en) | 2000-03-29 | 2004-06-29 | Advanced Micro Devices, Inc. | Reducing probe traffic in multiprocessor systems using a victim record table |
FR2832859B1 (fr) * | 2001-11-28 | 2004-01-09 | Commissariat Energie Atomique | Generateur electrochimique au lithium comprenant au moins une electrode bipolaire avec substrats conducteurs en aluminium ou alliage d'aluminium |
US8055492B2 (en) * | 2002-01-10 | 2011-11-08 | International Business Machines Corporation | Non-unique results in design verification by test programs |
US6988173B2 (en) * | 2003-05-12 | 2006-01-17 | International Business Machines Corporation | Bus protocol for a switchless distributed shared memory computer system |
US7085898B2 (en) | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Coherency management for a “switchless” distributed shared memory computer system |
JP2005057738A (ja) * | 2003-07-18 | 2005-03-03 | Canon Inc | 信号処理装置、信号処理方法及びプログラム |
JP4507563B2 (ja) * | 2003-11-10 | 2010-07-21 | 株式会社日立製作所 | マルチプロセッサシステム |
US20070079072A1 (en) * | 2005-09-30 | 2007-04-05 | Collier Josh D | Preemptive eviction of cache lines from a directory |
JP4335298B2 (ja) | 2006-02-24 | 2009-09-30 | 富士通株式会社 | スヌープ制御方法および情報処理装置 |
CN103795770B (zh) * | 2012-10-26 | 2017-07-04 | 伊姆西公司 | 在网络基础设施中提供高速缓存服务的方法和装置 |
CN103631534B (zh) * | 2013-11-12 | 2017-01-11 | 北京兆芯电子科技有限公司 | 数据存储系统以及其管理方法 |
US10747298B2 (en) | 2017-11-29 | 2020-08-18 | Advanced Micro Devices, Inc. | Dynamic interrupt rate control in computing system |
US10503648B2 (en) | 2017-12-12 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache to cache data transfer acceleration techniques |
US11210246B2 (en) | 2018-08-24 | 2021-12-28 | Advanced Micro Devices, Inc. | Probe interrupt delivery |
US12167102B2 (en) | 2018-09-21 | 2024-12-10 | Advanced Micro Devices, Inc. | Multicast in the probe channel |
US12332795B2 (en) | 2022-04-12 | 2025-06-17 | Advanced Micro Devices, Inc. | Reducing probe filter accesses for processing in memory requests |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5406504A (en) * | 1993-06-30 | 1995-04-11 | Digital Equipment | Multiprocessor cache examiner and coherency checker |
US5530933A (en) * | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
KR100360064B1 (ko) * | 1994-03-01 | 2003-03-10 | 인텔 코오퍼레이션 | 고도로파이프라인된버스구조 |
US5682516A (en) * | 1994-03-01 | 1997-10-28 | Intel Corporation | Computer system that maintains system wide cache coherency during deferred communication transactions |
US5557769A (en) * | 1994-06-17 | 1996-09-17 | Advanced Micro Devices | Mechanism and protocol for maintaining cache coherency within an integrated processor |
US5548797A (en) * | 1994-10-03 | 1996-08-20 | International Business Machines Corporation | Digital clock pulse positioning circuit for delaying a signal input by a fist time duration and a second time duration to provide a positioned clock signal |
-
1995
- 1995-12-15 US US08/573,092 patent/US5673413A/en not_active Expired - Fee Related
-
1996
- 1996-06-26 TW TW085107704A patent/TW401542B/zh not_active IP Right Cessation
- 1996-10-14 KR KR1019960045652A patent/KR100241644B1/ko not_active Expired - Fee Related
- 1996-11-07 JP JP29541996A patent/JP3529566B2/ja not_active Expired - Fee Related
- 1996-11-22 DE DE69628127T patent/DE69628127T2/de not_active Expired - Fee Related
- 1996-11-22 EP EP96308460A patent/EP0779583B1/en not_active Expired - Lifetime
- 1996-12-04 CN CN96121853A patent/CN1099644C/zh not_active Expired - Fee Related
-
2003
- 2003-05-15 JP JP2003136734A patent/JP3832833B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166339B2 (en) | 2008-04-21 | 2012-04-24 | Sony Corporation | Information processing apparatus, information processing method, and computer program |
Also Published As
Publication number | Publication date |
---|---|
JP2004005657A (ja) | 2004-01-08 |
EP0779583A2 (en) | 1997-06-18 |
CN1099644C (zh) | 2003-01-22 |
JP3529566B2 (ja) | 2004-05-24 |
KR970049647A (ko) | 1997-07-29 |
EP0779583B1 (en) | 2003-05-14 |
DE69628127T2 (de) | 2004-04-08 |
KR100241644B1 (ko) | 2000-02-01 |
TW401542B (en) | 2000-08-11 |
JPH09204405A (ja) | 1997-08-05 |
EP0779583A3 (en) | 1999-03-24 |
DE69628127D1 (de) | 2003-06-18 |
US5673413A (en) | 1997-09-30 |
CN1157440A (zh) | 1997-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3832833B2 (ja) | 情報処理方法および装置 | |
US6128711A (en) | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes | |
KR100360064B1 (ko) | 고도로파이프라인된버스구조 | |
US6012120A (en) | Method and apparatus for providing DMA transfers between devices coupled to different host bus bridges | |
EP0681240B1 (en) | Duplicate cache tag memory system | |
US6029204A (en) | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries | |
US7529799B2 (en) | Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system | |
KR910001789B1 (ko) | 디지탈 컴퓨터 시스템의 다중 프로세서 시스템용 캐쉬 무효 장치 | |
US4769768A (en) | Method and apparatus for requesting service of interrupts by selected number of processors | |
JP3470951B2 (ja) | 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法 | |
US8015366B2 (en) | Accessing memory and processor caches of nodes in multi-node configurations | |
US5659708A (en) | Cache coherency in a multiprocessing system | |
US20020152343A1 (en) | Arbitration method for a source strobed bus | |
KR100263633B1 (ko) | 각종프로세서와버스프로토콜에적용가능한범용구조를제공하는컴퓨터시스템 | |
JP2018109965A (ja) | データ処理 | |
US6662216B1 (en) | Fixed bus tags for SMP buses | |
WO2015169054A1 (zh) | 一种实现数据一致性的方法、装置及计算机存储介质 | |
JPH0473176B2 (ja) | ||
KR100644596B1 (ko) | 버스 시스템 및 그 버스 중재방법 | |
US5822765A (en) | System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system | |
JPH08249231A (ja) | マルチプロセッサ・システムにおける古いデータの処理システム及び方法 | |
KR980010804A (ko) | 프로세서와 고성능 시스템 버스간의 신호처리 프로토콜 변환 장치 | |
US5594875A (en) | Method and apparatus to provide pended transaction on a non-pended system bus | |
JPH0719242B2 (ja) | 割り込みを行う装置 | |
JP2008511890A (ja) | アトミック・オペレーションを用いて情報単位を変更する方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051028 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060126 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060126 |
|
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: 20060712 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060712 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20060712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060714 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |