JP3729891B2 - マルチプロセッサコンピュータシステム - Google Patents

マルチプロセッサコンピュータシステム Download PDF

Info

Publication number
JP3729891B2
JP3729891B2 JP10672395A JP10672395A JP3729891B2 JP 3729891 B2 JP3729891 B2 JP 3729891B2 JP 10672395 A JP10672395 A JP 10672395A JP 10672395 A JP10672395 A JP 10672395A JP 3729891 B2 JP3729891 B2 JP 3729891B2
Authority
JP
Japan
Prior art keywords
main memory
data
data line
memory controller
processor module
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
JP10672395A
Other languages
English (en)
Other versions
JPH086855A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH086855A publication Critical patent/JPH086855A/ja
Application granted granted Critical
Publication of JP3729891B2 publication Critical patent/JP3729891B2/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
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、メモリに関し、より詳細には1つあるいはそれ以上のプロセッサがキャッシュ・メモリを有する共有メモリ・マルチプロセッサに関する。
【0002】
【従来の技術】
コンピュータは通常プロセッサ、記憶装置、および入出力装置等の複数の構成要素を有する。これらの構成要素は通常それぞれが1つあるいはそれ以上のプロセッサ、記憶装置および/または入出力装置を有する構成要素モジュールとしてまとめられる。構成要素モジュールは一般に従来の「読み出し」トランザクションや「書き込み」トランザクションといった「トランザクション」の形態で互いに通信する。たとえば、典型的な読み出しトランザクションでは、1つのモジュールが、それが必要とするデータを識別し、その識別されたデータを送ることを要求する信号を別のモジュールに送る。これに応答するモジュールはこの要求を処理しデータを返す。
【0003】
多くのコンピュータにおいて、装置で実行するソフトウエアは1つあるいはそれ以上の主記憶装置を共有する2つ以上の主プロセッサ・モジュールによって実行される。この種の装置はよく「共有メモリ・マルチプロセッサ」装置と呼ばれる。
【0004】
共有メモリ・マルチプロセッサ装置においては、トランザクションは一般に従来の共有バスや従来のクロス・バー・スイッチ等の共有メモリ相互接続上でプロセッサ・モジュールと主記憶装置モジュール間で転送される。トランザクションは「サイクル」中にこの共有メモリ相互接続を介して送出される。それぞれのサイクルはある限られた数のトランザクションをその共有メモリ相互接続上で転送可能な期間である。クロス・バー・スイッチにおいては、それぞれのモジュールは通常各サイクル中にこのスイッチにトランザクションを送り、スイッチからトランザクションを受け取ることができる。これは、ある1つのサイクル中には1つのモジュールだけがバス上にトランザクションを送ることのできる従来の共有バスと対照的である。
【0005】
従来の多くの共有メモリ相互接続では「分割トランザクション」が可能である。分割トランザクションでは、要求にただちに応答する必要はない。たとえば、あるモジュールがあるサイクル中に別のモジュールへの読み出し、トランザクションをクロス・バー・スイッチ上で送る場合がある。この他方のモジュールは他のタスクを実行するために使用中で1つあるいはそれ以上のサイクルの間この読み出しトランザクションを処理できない場合がある。最終的には、この応答側のモジュールは後のサイクルでこのトランザクションを処理し、要求されたデータを返す。要求トランザクションとそれに対する応答を相互に関係付けるために、それぞれの要求トランザクションには一般にそのトランザクションを開始するモジュールを識別し、そのトランザクションをそのモジュールが発した他のトランザクションと区別するためのトランザクション識別コードが含まれる。応答トランザクションは一般に、その応答をその要求トランザクションと関係付けることができるように、このトランザクション識別コードを付して送られる。たとえば、ある読み出しトランザクションに対して返されるデータはそのデータを返す対象となる特定の読み出しトランザクションを識別する。
【0006】
共有メモリ・マルチプロセッサ装置では、主プロセッサは一般に共有メモリ相互接続と直結されている。それぞれの主プロセッサは一般に別々の主メモリ・コントローラを介して共有メモリ相互接続に接続されている。装置が2つ以上の主メモリを有する場合、それぞれのメモリは相互に排他的なデータアドレスの集合を含む。あるプロセッサがある主メモリからデータを読み出すとき、あるいはある主メモリにデータを書き込むとき、このプロセッサはそのメモリの主メモリ・コントローラと通信しなければならない。
【0007】
装置内の主メモリに加えて、それぞれのプロセッサ・モジュールもまたキャッシュ・メモリを有する。かかるキャッシュ・メモリはモジュールによるアクセスを高速化するために最近用いられたデータを格納する。通常、キャッシュ・メモリには最近使用されたデータとそれらのデータ項目が格納された関係する主メモリのアドレスの両方が格納される。モジュールが主メモリ内のあるアドレスからデータを探すとき、モジュールはそのデータに関係付けられたアドレスを用いてそのキャッシュ・メモリにそのデータを要求する。キャッシュ・メモリはそのアドレスに関係付けられたデータを保持しているかどうかをチェックする。保持している場合、キャッシュ・メモリは要求されたデータをプロセッサに直接返す。キャッシュ・メモリが所望のデータを保持していない場合(すなわち「キャッシュ・ミス」が発生した場合)、通常、正規のメモリ・アクセスが発生する。キャッシュ・メモリは通常主メモリ(一般にはRAM)へのアクセスがマイクロプロセッサの速度と比較して遅い場合に有益である。キャッシュ・メモリは主RAMより速い。
【0008】
それぞれのプロセッサがキャッシュ・メモリを有する共有メモリ・マルチプロセッサ装置の場合には、状況はキャッシュ・メモリを有する単一プロセッサ装置より多少複雑である。マルチプロセッサ装置では、特定の主メモリ・アドレスに対応する現行データを1つあるいはそれ以上のキャッシュ・メモリおよび/または主メモリに格納することができる。キャッシュ・メモリ内のデータはプロセッサによって操作されて主メモリに格納された値と異なる値になっている場合がある。したがって、任意のアドレスについての現行のデータ値が、データ値がどこにあるかにかかわりなく提供されるように「キャッシュ・コヒーレンシ法」を実行しなければならない。
【0009】
【発明が解決しようとする課題】
通常のコヒーレンシ法では、モジュール間で相当な量の通信が行われ、これがコンピュータに不必要な遅延をもたらすことがある。典型的なコヒーレンシ法において、あるモジュールがデータを要求するとき、キャッシュ・メモリを有するそれぞれのモジュールは、そのキャッシュ・メモリの「コヒーレンシ・チェック」を実行して要求されたアドレスに関係付けられたデータを持っているかどうかを判定してそのコヒーレンシ・チェックの結果を報告すべき旨の通知を受ける。すると、モジュールはコヒーレンシ・チェックを行い、その結果を報告しなければならない。コヒーレンシ・チェックの実行すべき旨のモジュールへの通知およびその結果の報告はいずれも処理遅延を発生させることがある。
【0010】
キャッシュ・メモリに要求されたデータを保持しているかどうかの報告に加えて、それぞれのモジュールは一般にそのキャッシュ・メモリに格納されたデータの状態に関する報告を行う。たとえば、モジュールがデータのコピーを持っており、そのコピーが「使用」(すなわち、そのデータはそのモジュールしか利用することができない)である、あるいはそのデータが「共有」(すなわち、そのデータは2つ以上のキャッシュ・メモリに同時に存在することができる)であるといった報告を行うことがある。あるいは、モジュールは、データが「きれい」である(すなわち、主メモリ内の同じアドレスのデータと同じである)、あるいは「汚れている」(すなわち、そのデータが獲得された後に操作されている)といった報告を行うこともある。通常、専用の汚れているデータのコピーは常に1つしか存在してはならない。一般に、キャッシュ・メモリに格納されたある特定のデータ・ラインについてのコヒーレンシ状態情報はそのデータ・ラインに対する「キャッシュ・タグ」として知られる1組のフィールドに格納される。
【0011】
「コヒーレントなトランザクション」とは、要求したプロセッサに供給すべきデータのソースを判定するためにすべてのメモリのチェックを必要とする任意のトランザクションをいう。コヒーレントなトランザクションは一般に共有メモリ相互接続の任意の利用可能なサイクル中に発生しうるものである。しかし、モジュールによっては内部的に使用中であり、そのトランザクションについてのコヒーレンシ・チェックをただちに行うことができず、キャッシュ・コヒーレンシ・チェックが完了するのに数サイクルを要する場合がある。コヒーレントなトランザクションが発生する速度に対応するために、モジュールがコヒーレンシ・チェックが実行可能になるまでコヒーレントなトランザクションを格納するためのキャッシュ・コヒーレンシを持つこともある。コヒーレンシ・チェックの実行速度に応じて、特定のモジュールのコヒーレンシ待ちライン列に多数のコヒーレントなトランザクションを格納して、かかるトランザクションの実行を比較的長時間にわたって延期することができる。
【0012】
それぞれのモジュールによって実行されるコヒーレンシ・チェックの結果が分析され、そのデータを要求したモジュールに最も新しいデータが提供される。たとえば、要求されたデータのコピーを持つキャッシュ・メモリがない場合、データは主メモリから供給される。あるモジュールが専用の操作されたコピーを持っている場合、このコピーは主メモリ・コントローラに返され、主メモリ・コントローラがこのデータを供給するか、あるいはこのコピーはキャッシュ間コピーで要求したモジュールに直接供給される。データが供給されると、各モジュールはそれぞれのキャッシュ・メモリも状態を更新する。たとえば、ある専用のデータ・コピーがある特定のモジュールに供給される場合、他のモジュールは通常そのデータのコピーを持っている場合にはそれに無効のマークを付ける。
【0013】
したがって、不必要な遅延を発生させることなくキャッシュ・コヒーレンシ・チェックを行うことのできる、主メモリとキャッシュ・メモリを有するメモリが必要とされている。
【0014】
したがって、本発明の目的は改良されたコヒーレントなメモリを提供することである。
【0015】
本発明の他の目的は、キャッシュ・コヒーレンシ・チェックが可能であり、コヒーレントなトランザクションに過大な遅延を生じさせない、主メモリおよびキャッシュ・メモリを有するメモリを提供することである。
【0016】
本発明の以上の目的およびその他の目的は当業者には、本発明とその実施例に関する以下の詳細な説明、添付図面および特許請求の範囲から明らかになるであろう。
【0017】
【課題を解決するための手段】
本発明は広義には複製キャッシュ・タグ・メモリを包含する。このメモリは受け取ったトランザクションに応じてデータを供給する主メモリ・コントローラを有する。このメモリはまた2つあるいはそれ以上のモジュールを有し、それぞれのモジュールは主メモリ・コントローラによってそのモジュールに供給されたデータを格納するためのキャッシュ・メモリを有する。それぞれのモジュールはメモリ・コントローラにトランザクションを送ってそのモジュールが必要とするがそのモジュールのキャッシュ・メモリに格納されていないデータを要求する。
【0018】
また、このメモリは主メモリ・コントローラに結合されたキャッシュ・タグ・アレー有する。このキャッシュ・タグ・アレーは前記のモジュールのキャッシュ・メモリのうちの1つに格納されたそれぞれのデータ・ラインに対応するキャッシュ・タグを有する。あるデータ・ラインのキャッシュ・タグは主メモリ・コントローラに最後にそのデータ・ラインを要求したモジュールを示す。
【0019】
好適な実施例においては、かかるキャッシュ・タグはまた関連するデータ・ラインが専用であるが共有であるかを示す。
【0020】
【実施例】
本発明は1つあるいはそれ以上のプロセッサ・モジュールおよび/または入出力もがキャッシュ・メモリを有する共有メモリ・マルチプロセッサ・コンピュータのための改良されたメモリを包含する。本発明によれば、それぞれの主メモリの主メモリ・コントローラは、キャッシュ・メモリに格納された主メモリからのデータ・ラインの状態に関する現ラインの情報を含む複製キャッシュ・タグ・アレーを有する。したがって、コヒーレンシ・チェックは主メモリ・コントローラによって直接実行することができる。これによってそれぞれのプロセッサが、キャッシュ・メモリに個別にコヒーレンシ・チェックを実行させ、そのコヒーレンシ・チェックの結果を主メモリ・コントローラに送らせることが不要となり、その結果コヒーレントなトランザクションの処理にかかわる遅延が低減される。
【0021】
本発明のメモリを用いたコンピュータを図1の10に示す。
【0022】
コンピュータ10はクロス・バー・スイッチ12とクロス・バー・スイッチ12に接続された複数の構成要素を有するマルチプロセッサ・コンピュータである。かかる構成要素には主メモリ・コントローラ14,16、出力モジュール(図示せず)およびモジュールとしてのプロセッサ・モジュール20,22,24がある。これらの構成要素はクロス・バー・スイッチ12上で互いにトランザクションを送出する。
【0023】
トランザクションはサイクル中にクロス・バー・スイッチ12によって授受される。メモリ・コントローラ、入出力モジュール、およびプロセッサ・モジュールはそれぞれ、各サイクル中にクロス・バー・スイッチ12上にトランザクションを送りだし、またクロス・バー・スイッチ12からトランザクションを受け取ることができる。
【0024】
クロスバースイッチに送られるそれぞれのトランザクションは、そのトランザクションを送るべきモジュールを識別し、そのトランザクションをそのモジュールが発した他の未処理のトランザクションと区別するためのトランザクション識別情報を含む。トランザクションはまたそのトランザクションを送る相手である応答側モジュールを識別する。クロス・バー・スイッチはあるサイクル中に受け取ったトランザクションをこの応答側モジュールに送る。
【0025】
応答側モジュールがトランザクションを処理する速度より高いバースト・トランザクション発行速度に対処するために、クロス・バー・スイッチ12はそれぞれのモジュールに対応する待ちライン列を含む。クロス・バー・スイッチ12によってあるモジュールに送られるトランザクションはそれぞれのモジュールに対応する待ちライン列に入れられ、その待ちライン列からモジュールに先入れ先出し(「FIFO」)で送られる。待ちライン列30,32,36,38および40は主メモリ・コントローラ14,16およびプロセッサ・モジュール20,22,24にそれぞれ対応する。
【0026】
2つ以上のモジュールがあるサイクル中にある特定のモジュールに送る場合に対処するために、それぞれのモジュールに所定の優先順位が割り当てられている。同じサイクル中にクロス・バー・スイッチに置かれ、同じモジュールを対象とする複数のトランザクションは、送出側モジュールの優先順位にしたがってこの応答側のモジュールの待ちライン列に入れられる。したがって、1つのサイクル中にクロス・バー・スイッチが受け取った1つの受信側モジュールを対象とする複数のトランザクションは、この受信側モジュールに別々のサイクル中に送られる。
【0027】
主メモリ・コントローラ14および16はそれぞれ、従来の方法で主メモリ15および17から情報を読み出し、また対応する主メモリに情報を格納する責任がある。主メモリ・コントローラ14および16は主メモリ15および17と直接あるいは従来のバスを介してインターフェースする。
【0028】
プロセッサ・モジュール20、22および24はコンピュータ10の主プロセッサである。このコンピュータのソフトウエアはすべてのプロセッサ上で同時に実行することができる。
【0029】
プロセッサ・モジュール20、22および24はそれぞれキャッシュ・メモリ50、52および54を有する。最近使用されたデータが、そのデータの主メモリ・アドレスとそのデータのコヒーレンシ状態に関する情報とともに、キャッシュ・メモリ50、52および54に格納される。主メモリ・アドレスとコヒーレンシ情報はキャッシュ・メモリに格納されたそれぞれのデータ・ラインに関係付けられた「キャッシュ・タグ」とみることができる。
【0030】
好適な実施例において、それぞれのキャッシュ・ライン(すなわち、キャッシュ・メモリに格納されるデータ・ラインのコピー)の状態が「無効」、「専用」、「共有」、「専用−未処理」、「共有−未処理」の5つのうちのいずれかとして定義される。「専用」ラインは1つのプロセッサ・モジュールのキャッシュ・メモリにのみ存在でき、またそのプロセッサ・モジュールだけが使用できるものである。あるプロセッサ・モジュールが専用データ・ラインを保持している場合、このプロセッサ・モジュールはそのデータ・ラインをそのデータの現在の値を表わす任意の方法で用いることができる。「共有」ラインは2つ以上のプロセッサ・モジュールのキャッシュに同時に存在することのできるものである。共有とマークされたあるデータ・ラインの現在の値をあるプロセッサ・モジュールによって変更されるためには、他のプロセッサ・モジュールの保持する共有されたコピーが無効とマークされ、そのプロセッサ・モジュールはそのデータ・ラインを専用データ・ラインとして得なければならない。「無効」とは、そのデータを使用してはならないことを示す。専用−未処理あるいは共有−未処理の状態については後に説明する。
【0031】
それぞれのプロセッサ・モジュールのキャッシュ・タグに加えて、それぞれの主メモリ・コントローラはプロセッサ・モジュールの保持するその主メモリに関係するそれぞれのキャッシュ・ラインの現在の状態を格納する複製キャッシュ・タグ・アレーを有する。複製キャッシュ・タグ・アレー44は主メモリ・コントローラ14に対応する。複製キャッシュ・タグ・アレー46は主メモリ・コントローラ16に対応する。
【0032】
それぞれの主メモリに対応する複製キャッシュ・タグ・アレーは、キャッシュ・メモリに格納されたその主メモリからのそれぞれのデータ・ラインに関係付けられたキャッシュ・タグに対応する「複製キャッシュ・タグ」を含む。複製キャッシュ・タグはそのデータに関係付けられる主メモリ・アドレスとそのキャッシュ・ラインのコヒーレンシ状態を含む。複製キャッシュ・タグはまたそれぞれのデータ・ラインを有するプロセッサを識別する情報あるいはそのラインを要求したプロセッサのトランザクション識別コードを含む。したがって、任意の時にそれぞれの主メモリは常にその主メモリに関係するそれぞれのデータ・ラインに関する現在のキャッシュ・コヒーレンシ状態を有する複製キャッシュ・タグ・アレーへのアクセスを有する。それぞれのモジュールはコヒーレントなトランザクションについてキャッシュ・コヒーレンシ・チェックを実行し、またその結果を主メモリコントローラに報告する必要がない。
【0033】
「複製キャッシュ・タグ」は関連するキャッシュ・タグの正確なコピーではないことに注意しなければならない。むしろ、複製キャッシュ・タグは実際のキャッシュ・タグに含まれるすべてのコヒーレンシ状態情報、あるいは後述するように最新の情報を持っていなければならないという点においてのみ複製という。
【0034】
あるプロセッサ・モジュールがある特定のデータ・ラインのコピーを必要とするとき、このプロセッサ・モジュールはクロス・バー・スイッチ上にそのデータ・ラインを要求する読み出しトランザクションを送りだす。この読み出しトランザクションはトランザクション識別コードを含み、またそのデータの共有コピーが必要であるのか専用コピーが必要であるのかを指定する。読み出し−専用トランザクションはデータの専用コピーに対する要求であり、読み出し−共有トランザクションはデータの共有コピーに対する要求である。読み出しトランザクションは指定されたメモリアドレスを含む主メモリの主メモリ・コントローラに送られる。
【0035】
主メモリ・コントローラは読み出しトランザクションを受け取ると、複製キャッシュ・タグ・アレーをチェックしてそのデータ・ラインがキャッシュ・メモリに保持されているか、またそのラインのコヒーレンシ状態を判定する。そのデータ・ラインを保持するキャッシュ・メモリがない場合、主メモリ・コントローラはそのラインを主メモリからそれを要求したプロッセサ・モジュールに供給する。
【0036】
そのラインが1つあるいはそれ以上のキャッシュ・メモリに共有されている場合、主メモリ・コントローラはそのデータ・ラインを主メモリから供給する。共有データが要求されている場合(すなわち、読み出し−共有トランザクションである場合)、データは単純にそれを要求したプロッセサ・モジュールに送られる。専用データが要求されている場合(すなわち、読み出し−専用トランザクションである場合)、主メモリ・コントローラはそのデータを主メモリから供給し、それぞれのプロッセサ・モジュールに対して、そのデータの共有されたコピーを無効としてマークするように指示するパージ・トランザクション(無効化トランザクション)を送る。本発明のある実施例では、主メモリ・コントローラはあるデータ・ラインの共有コピーを有するすべてのプロッセサ・モジュールを記録しておくことができる。このような実施例では、主メモリ・コントローラはそのデータ・ラインの共有コピーを有するプロッセサ・モジュールにパージ・トランザクションを送るだけでよい。
【0037】
データがあるプロッセサ・モジュールのキャッシュ・メモリに専用として保持されている場合、主メモリ・コントローラは当該プロッセサ・モジュールに対して、そのデータを要求している読み出しトランザクションのトランザクション識別コードとともにフラッシュ・バック(すなわちデータ返送)トランザクションを送る。このフラッシュ・バック・トランザクションに応じて、そのプロッセサ・モジュールはそのデータ・ラインに対する自己のキャッシュ・タグを無効としてマークし、そのデータ・ラインを、トランザクション識別コードとともにそれを要求した主メモリ・コントローラに返送する。主メモリ・コントローラはそのデータ・ラインを受け取ると、これを要求したプロッセサ・モジュールに供給し、主メモリ内の関連のアドレスを更新する。
【0038】
このフラッシュ・バック・トランザクションを関係するプロッセサ・モジュールに送るとき、主メモリ・コントローラは、要求を出したプロッセサ・モジュールをそのデータ・ラインの所有者とし、また所有権が未決である、すなわちデータがまだそのラインの所有者に送られていないことを示すように、自己の複製キャッシュ・タグの状況を更新する。そのデータ・ラインが専用として要求された場合、その状態は「未処理・専用」として記録される。そのデータ・ラインが共有として要求された場合、その状態は「未処理・共有」として記録される。
【0039】
そのデータを要求するトランザクションが他のプロッセサ・モジュールから受け取られないと仮定すると、この複製キャッシュ・タグはフラッシュ・バックに応答してそのデータがこの主メモリによって受け取られたとき再度更新される。そのデータ・ラインが専用として要求された場合、複製キャッシュ・タグは専用・未処理ではなく専用状態を反映するように更新され、そのデータが要求したプロッセサ・モジュールに送られる。そのデータ・ラインが共有として要求された場合、複製キャッシュ・タグは未処理・共有ではなく共有状態を反映するように更新され、そのデータが要求したプロッセサ・モジュールに送られる。
【0040】
フラッシュ・バックに応じてそのデータ・ラインが受け取られる前にそのデータを要求するトランザクションが別のプロッセサ・モジュールから受け取られた場合、多少異なる処理が必要になる。上述したように、フラッシュ・バックが送られるとき、複製キャッシュ・タグは要求中のプロッセサ・モジュールを現在の所有者とするように更新され、フラッシュ・バックとともにそのトランザクション識別コードが送られる。このトランザクション識別コードにはまたそのデータが主メモリ・コントローラにいつ返送されるかを示すデータが含まれる。次に説明する理由から、これによって同じデータ・ラインに対する複数の要求が未処理である場合に対処することができる。
【0041】
主メモリ・コントローラがデータに対する第2の要求を受け取ったとき、そのデータの複製キャッシュ・タグはすでにそのデータに対する第1の要求に基づいて未処理状態としてマークされている。第2の要求の時点で、複製キャッシュ・タグはその新しい要求プロセッサ・モジュールとそのデータ要求がこの新しいプロセッサ・モジュールによる専用要求であるか共有要求であるかを反映するように更新される。第1の要求プロセッサ・モジュールがそのデータを専用として要求した場合、この第1の要求プロセッサ・プロセッサ・モジュールに対して、そのデータに対する第2の要求を識別するトランザクション識別コードとともにフラッシュ・バックトランザクションが送られる。第1の要求モジュールが共有データを要求していた場合、第1の要求プロセッサ・モジュールにパージ・トランザクションが送られる。第1の要求プロセッサ・モジュールは、要求したデータを受け取り、それを一度用いた後、これらのトランザクションにしたがって動作する。
【0042】
第1のデータ要求に対するフラッシュ・バックに応答してデータが主メモリ・コントローラによって受け取られたとき、複製キャッシュ・タグはすでに第2のデータ要求を反映するように更新されている。しかし、上述したように、このデータは第1の要求に対するトランザクション識別コードとともに主メモリ・コントローラに返される。このようにして、主メモリ・コントローラはそのデータを適切に供給することができる。主メモリ・コントローラがこのデータを受け取ったとき、この情報に基づいて第1の要求プロセッサ・モジュールに送る。さらに、第1の要求プロセッサ・モジュールが共有データを受け取る場合、このデータは第1の要求プロセッサ・モジュールにも送られる。
【0043】
第1の要求プロセッサ・モジュールが専用データを要求していた場合、そのデータが受け取られる前に、第1の要求プロセッサ・モジュールはすでにフラッシュ・バック・トランザクションを受け取っている。この順序の狂ったコマンド・シーケンスは第1の要求プロセッサ・モジュールに対して、第1の要求プロセッサ・モジュールがそのデータを一度用いることができ、次にそのデータを主メモリ・コントローラに返送しなければならないことを指示するのに用いられる。
【0044】
第1の要求プロセッサ・モジュールが共有データを要求していた場合、そのデータが受け取られる前に、第1の要求プロセッサ・モジュールはすでにパージ・トランザクションを受け取っている。この順序外のコマンド・シーケンスは第1の要求プロセッサ・モジュールに対して、それがそのデータを一度用いることができ、次にそのコピーを無効とマークしなければならないことを指示するのに用いられる。
【0045】
前に要求されたデータに対して第3あるいは後続の要求があった場合、同じ手順が用いられる。複製キャッシュ・タグはそのデータに対する最新の要求を反映するように更新される。前の要求者が専用データを要求したか共有データを要求したかに応じて、前の要求者にフラッシュ・バックトランザクションあるいはパージ・トランザクションが送られる。前の要求者が共有データを要求していた場合、主メモリ・コントローラはそのデータを受け取るとそれを前の要求者とそれ以後の要求者の両方に送る。
【0046】
本発明の動作の一例として、コンピュータ10の場合を考察する。各キャッシュ・メモリ50,52,および54に対するそれぞれのキャッシュ・タグは初めに無効としてマークされる。それぞれの複製キャッシュ・タグはしたがって無効とマークされる。
【0047】
クロス・バー・スイッチ12の1つのサイクル中に、プロセッサ・モジュール20は主メモリ・コントローラ14に対して、データ・ライン「A」の専用コピーを探索中であることを示す読み出し−専用トランザクションを送る。データ・ラインAは主メモリ15にのみ格納されているため、主メモリ・コントローラ14は次のサイクル中にデータ・ラインAをプロセッサ・モジュール20に供給し、複製キャッシュ・タグ・アレー44をデータ・ラインAがプロセッサ・モジュール20によって専用されることを示すように更新する。
【0048】
プロセッサ・モジュール20はデータ・ラインAを受け取る。データ・ラインAは、そのデータが専用に保持されることを示すキャッシュ・タグとともにキャッシュ・メモリ50に格納される。プロセッサ・モジュール20はそのキャッシュ・メモリ50内のデータ・ラインAの値を自由に変更することができる。
【0049】
次のサイクル中に、プロセッサ・モジュール22が主メモリ・コントローラ14に、データ・ラインAの専用コピーを探索中であることを示す読み出し−専用トランザクションを送る。主メモリ・コントローラ14は複製キャッシュ・タグアレー44をチェックしてデータ・ラインAがプロセッサ・モジュール20によって専用として保持されていることを判定する。主メモリ・コントローラ14はプロセッサ・モジュール20に対してプロセッサ・モジュール20が保持するデータ・ラインAの専用コピーを主メモリ・コントローラ14に送り返すように要求するフラッシュバックA{あるいはイールドA(yield A )}トランザクションを送る。また、プロセッサ・モジュール22によって送られる読み出し−専用トランザクションを示すトランザクション識別コードが、このフラッシュ・バック・トランザクションとともにプロセッサ・モジュール20に送られる。主メモリ・コントローラ14はまた、プロセッサ・モジュール22が専用・未処理データ・ラインAを所有することを示すように複製キャッシュ・タグ・アレー44を更新する。
【0050】
プロセッサ・モジュール20はこのフラッシュ・バック・トランザクションを受け取ると、主メモリ・コントローラ14に対して、プロセッサ・モジュール22の読み出し−専用トランザクションに対するトランザクション識別コードとともにデータ・ラインAを送り、そのデータ・ラインAのコピーを無効としてマークする。
【0051】
データ・ラインAに対する要求がそれ以上なかったとすると、主メモリ・コントローラ14はデータ・ラインAを受け取ったとき、データ・ラインAを、トランザクション識別コードとともにプロセッサ・モジュール22に送り、複製キャッシュ・タグ・アレー44をデータ・ラインAがプロセッサ・モジュール22によって専用として保持されていることを示すように更新する。
【0052】
次に、主メモリ・コントローラ14がプロセッサ・モジュール20からデータ・ラインAを受け取る前にプロセッサ・モジュール24がデータ・ラインAの共有コピーを受け取っていた場合を考える。この場合、プロセッサ・モジュール24の読み出し−共有トランザクションが受け取られると、データ・ラインAに対する複製キャッシュ・タグが、プロセッサ・モジュール24をデータ・ラインAの所有者として「未処理・共有」の状態で示すように更新される。プロセッサ・モジュール22に対して、プロセッサ・モジュール24によって送られる読み出し−共有トランザクションのトランザクション識別コードとともにフラッシュ・バックが送られる。
【0053】
主メモリ・コントローラ14がプロセッサ・モジュール20からデータ・ラインAを受け取ると、データ・ラインAはこのデータとともに返されるトランザクション識別コードに基づいてプロセッサ・モジュール22に送られる。プロセッサ・モジュール22はデータ・ラインAを一度用い、次にそれをプロセッサ・モジュール24によって送られた読み出し−共有トランザクションのトランザクション識別コードとともに主メモリ・コントローラ14に返す。プロセッサ・モジュール22はまたデータ・ラインAのそのコピーをマークする。
【0054】
主メモリ・コントローラ14はプロセッサ・モジュール22からデータ・ラインAを受け取ると、データ・ラインAをプロセッサ・モジュール24に送る。主メモリ・コントローラ14はまたデータ・ラインAに対する複製キャッシュ・タグを、それがプロセッサ・モジュール24に共有されていることを示すように更新する。プロセッサ・モジュール24のキャッシュ・メモリ54は、データ・ラインAとそのデータが共有されていることを示すキャッシュ・タグによって更新される。
【0055】
当業者には、データの専用コピーが関係する主メモリ・コントローラによって受け取られるたびに、主メモリをデータの現在の値に更新することができることが理解されるであろう。
【0056】
本発明をキャッシュ・メモリを有するプロセッサ・モジュールを用いて説明したが、これは例として掲げたに過ぎない。本発明はキャッシュ・メモリを有する入出力モジュール等の他の任意の種類のモジュールに適用することが可能であることは当業者には明らかであろう。
【0057】
当業者には以上の説明と添付図面から本発明にさまざまな変更を加えうることは明らかであろう。したがって、本発明は特許請求の範囲によってのみ限定されるものである。
【0058】
以上、本発明の各実施例について詳述したが、ここで各実施例の理解を容易にするために、各実施例ごとに要約して以下に列挙する。
【0059】
1. 受け取ったトランザクションに応じてデータを供給する主メモリコントローラ(14,16)、
それぞれが、前記主メモリコントローラ(14,16)によってそれに供給されるデータを格納するためのキャッシュ・メモリ(50,52,54)を有し、またそれぞれが前記主メモリ・コントローラ(14,16)にトランザクションを送ってそれが必要としそのキャッシュ・メモリには格納されていないデータを要求する複数のモジュール(20,22,24)、および
前記主メモリ・コントローラ(14,16)に接続されたキャッシュ・タグ・アレー(44,46)であって、前記モジュール(20,22,24)の前記キャッシュ・メモリ(50,52,54)の1つに格納されたそれぞれのデータ・ラインに対するキャッシュ・タグを含み、前記キャッシュ・タグが前記主メモリ・コントローラ(14,16)に対して前記データ・ラインを要求した最後のモジュールを示すキャッシュ・タグ・アレー(44,46)からなるメモリである。
【0060】
2・ 前記キャッシュ・タグ・アレー(44、46)は前記のキャッシュ・メモリ(50,52,54)の1つに格納された前記データ・ラインのキャッシュ・コヒーレンシ状況を示す情報を含む上記1に記載のメモリである。
【0061】
3. データを要求する前記トランザクションのそれぞれは、前記トランザクションによって要求されたデータに対する所望の転送先モジュールを示す転送先符号を含み、前記主メモリ・コントローラ(14,16)は要求されたデータを前記の転送先符号によって示される転送先モジュールに送る上記1に記載のメモリである。
【0062】
4. 前記主メモリ・コントローラ(14,16)は、あるモジュールのあるキャッシュ・メモリ内に専用として保持されているデータ・ラインを要求するトランザクションを受け取ると、前記のモジュールにデータ返送トランザクションを送って前記モジュールに前記データ・ラインを前記主メモリ・コントローラ(14,16)に返送させ、その後前記主メモリ・コントローラ(14,16)は前記のデータ・ラインを前記の転送先モジュールに送る上記3に記載のメモリである。
【0063】
5. 前記データ返送トランザクションは前記転送先符号を含み、前記データ・ラインは前記転送先符号とともに前記主メモリ・コントローラ(14,16)に返送される上記5に記載のメモリである。
【0064】
6. 前記モジュールが前記データ・ラインを受け取る前にある選択されたデータ・ラインに対するデータ返送トランザクションを受け取るモジュールは前記データ・ラインを受け取ると前記データ・ラインを返送する前に前記データ・ラインを一度用いて処理を実行することができる上記5に記載のメモリである。
【0065】
【発明の効果】
以上のように本発明によれば、複数のモジュールから受け取ったトランザクションに応じて主メッモリ・コントローラは主メモリからデータを読み取り、その読み取ったデータをモジュールに供給し、モジュールはそのデータを自己に所属するキャッシュ・メモリに格納し、このキャッシュ・メモリの一つに格納されたデータ・ラインに対するキャッシュ・タグが主メモリ・コントローラに対してデータ・ラインを要求した最後のモジュールを示すようにしたので、キャッシュ・コヒーレンシ・チェックが可能であり、コヒーレントなトランザクションに過大な遅延を生じさせない主メモリおよびキャッシュ・メモリを有するメモリを得ることができる。
【図面の簡単な説明】
【図1】本発明の複製キャッシュ・タグ・メモリを用いたコンピュータの一実施例を示すブロック図である。
【符号の説明】
10 コンピュータ
12 クロス・バー・スイッチ
14,16 主メモリ・コントローラ
15,17 主メモリ
20,22,24 プロセッサ・モジュール
30,32,36,38,40 待ちライン列
44,46 複製キャッシュ・タグ・アレー
50,52,54 キャッシュ・メモリ

Claims (2)

  1. メモリを備えるマルチプロセッサコンピュータシステムであって、
    受け取ったトランザクションに応じてデータを供給する主メモリ・コントローラと、
    それぞれが前記主メモリ・コントローラによって供給されるデータを格納するためのキャッシュ・メモリを有し、またそれぞれが前記主メモリ・コントローラにモジュールで生成したトランザクションを送信することによって前記主メモリ・コントローラにデータを要求する複数のプロセッサモジュールと、
    前記主メモリ・コントローラに接続されたキャッシュ・タグ・アレーであって、前記プロセッサモジュールの前記キャッシュ・メモリに格納された各データ・ラインのキャッシュ・コヒーレンシ状況を示す情報を含むキャッシュ・タグを含み、該キャッシュ・タグと該データ・ラインの間に一対一の対応関係があり、前記キャッシュ・タグは、前記データ・ラインを求めるプロセッサモジュールからの前回の要求が完了したか否かとは無関係に、前記データ・ラインを最後に要求した別のプロセッサモジュールを指定するキャッシュ・タグ・アレーと、
    からなり、
    前記主メモリ・コントローラで生成されたトランザクションを受け取る第1のプロセッサモジュールが前記データ・ラインの専用コピーを有しており、前記データ・ラインが第2のプロセッサモジュールにより要求されているとき、前記主メモリ・コントローラは、前記データ・ラインを要求するために、前記要求されたデータ・ラインおよび前記第2のプロセッサモジュールを示す、前記主メモリ・コントローラで生成されたトランザクションを前記第1のプロセッサモジュールに送信し、
    前記第1のプロセッサモジュールは、前記データ・ラインと、前記第2のプロセッサモジュールを示すコードと、を該第1のプロセッサモジュールで生成されたトランザクションで前記メモリ・コントローラに返送し、
    前記主メモリ・コントローラは、前記主メモリ・コントローラで生成されたトランザクションに応じて前記第1のプロセッサモジュールからデータ・ラインを受け取るとき、前記第1のプロセッサモジュールから受け取った前記データ・ラインを前記第2のプロセッサモジュールに送るよう構成されている、
    マルチプロセッサコンピュータシステム。
  2. 任意の前記複数のプロセッサモジュールは、要求したデータ・ラインを受け取る前に、該データ・ラインを要求する前記主メモリ・コントローラで生成されたトランザクションを受けとった場合、該要求したデータ・ラインを受け取ると、これを使用してから、前記主メモリ・コントローラからの該データ・ラインを要求するトランザクションに応じることができるよう構成されている、
    請求項に記載のマルチプロセッサコンピュータシステム。
JP10672395A 1994-05-03 1995-04-28 マルチプロセッサコンピュータシステム Expired - Fee Related JP3729891B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23654194A 1994-05-03 1994-05-03
US236-541 1994-05-03

Publications (2)

Publication Number Publication Date
JPH086855A JPH086855A (ja) 1996-01-12
JP3729891B2 true JP3729891B2 (ja) 2005-12-21

Family

ID=22889948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10672395A Expired - Fee Related JP3729891B2 (ja) 1994-05-03 1995-04-28 マルチプロセッサコンピュータシステム

Country Status (4)

Country Link
US (1) US5737757A (ja)
EP (1) EP0681240B1 (ja)
JP (1) JP3729891B2 (ja)
DE (1) DE69519816T2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3856341B2 (ja) * 1995-03-20 2006-12-13 リコープリンティングシステムズ株式会社 インタフェース制御方式
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US5848434A (en) * 1996-12-09 1998-12-08 Intel Corporation Method and apparatus for caching state information within a directory-based coherency memory system
US6122711A (en) * 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US5978886A (en) * 1997-01-17 1999-11-02 Hewlett-Packard Company Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache
US5963977A (en) * 1997-10-09 1999-10-05 Quantum Corporation Buffer management and system coordination method
US6122714A (en) * 1997-10-24 2000-09-19 Compaq Computer Corp. Order supporting mechanisms for use in a switch-based multi-processor system
US6108752A (en) * 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
US6154816A (en) * 1997-10-24 2000-11-28 Compaq Computer Corp. Low occupancy protocol for managing concurrent transactions with dependencies
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US6463506B1 (en) * 2000-04-29 2002-10-08 Hewlett-Packard Company Arrangement of data within cache lines so that tags are first data received
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
US20030167379A1 (en) * 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
US7017054B2 (en) * 2002-07-02 2006-03-21 Dell Products L.P. Mirrored tag snoop optimization
US7103728B2 (en) * 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
US20040022022A1 (en) * 2002-08-02 2004-02-05 Voge Brendan A. Modular system customized by system backplane
US6931489B2 (en) * 2002-08-12 2005-08-16 Hewlett-Packard Development Company, L.P. Apparatus and methods for sharing cache among processors
US6892290B2 (en) * 2002-10-03 2005-05-10 Hewlett-Packard Development Company, L.P. Linked-list early race resolution mechanism
US6990559B2 (en) * 2002-10-03 2006-01-24 Hewlett-Packard Development Company, L.P. Mechanism for resolving ambiguous invalidates in a computer system
US6895476B2 (en) * 2002-10-03 2005-05-17 Hewlett-Packard Development Company, L.P. Retry-based late race resolution mechanism for a computer system
US7024520B2 (en) * 2002-10-03 2006-04-04 Hewlett-Packard Development Company, L.P. System and method enabling efficient cache line reuse in a computer system
US7051163B2 (en) * 2002-10-03 2006-05-23 Hewlett-Packard Development Company, L.P. Directory structure permitting efficient write-backs in a shared memory computer system
US7003635B2 (en) * 2002-10-03 2006-02-21 Hewlett-Packard Development Company, L.P. Generalized active inheritance consistency mechanism having linked writes
US7000080B2 (en) * 2002-10-03 2006-02-14 Hewlett-Packard Development Company, L.P. Channel-based late race resolution mechanism for a computer system
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7051166B2 (en) * 2003-04-21 2006-05-23 Hewlett-Packard Development Company, L.P. Directory-based cache coherency scheme for reducing memory bandwidth loss
JP4362454B2 (ja) * 2005-04-07 2009-11-11 富士通株式会社 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
JP4373485B2 (ja) 2006-02-28 2009-11-25 富士通株式会社 情報処理装置及び該制御方法
US8291174B2 (en) 2007-08-15 2012-10-16 Micron Technology, Inc. Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same
US7822911B2 (en) * 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US8055852B2 (en) 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
US7991963B2 (en) * 2007-12-31 2011-08-02 Intel Corporation In-memory, in-page directory cache coherency scheme
US8352669B2 (en) * 2009-04-27 2013-01-08 Lsi Corporation Buffered crossbar switch system
US10026458B2 (en) 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
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
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US4989131A (en) * 1988-07-26 1991-01-29 International Business Machines Corporation Technique for parallel synchronization
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems
US5490261A (en) * 1991-04-03 1996-02-06 International Business Machines Corporation Interlock for controlling processor ownership of pipelined data for a store in cache
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5388224A (en) * 1992-04-24 1995-02-07 Digital Equipment Corporation Processor identification mechanism for a multiprocessor system
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system

Also Published As

Publication number Publication date
US5737757A (en) 1998-04-07
EP0681240B1 (en) 2001-01-10
DE69519816T2 (de) 2001-09-20
EP0681240A3 (en) 1997-01-08
DE69519816D1 (de) 2001-02-15
EP0681240A2 (en) 1995-11-08
JPH086855A (ja) 1996-01-12

Similar Documents

Publication Publication Date Title
JP3729891B2 (ja) マルチプロセッサコンピュータシステム
US5276828A (en) Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
JP3640997B2 (ja) データ処理システム
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
US8176259B2 (en) System and method for resolving transactions in a cache coherency protocol
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
US6480927B1 (en) High-performance modular memory system with crossbar connections
JP3529566B2 (ja) 情報処理方法および装置
KR100704089B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
US6397302B1 (en) Method and apparatus for developing multiprocessor cache control protocols by presenting a clean victim signal to an external system
US6871267B2 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JPH04501027A (ja) キャッシュメモリー付マルチ処理システム
WO1990005953A1 (en) Hardware implemented cache coherency protocole with duplicated distributed directories for high-performance multiprocessors
JPH07306810A (ja) 待ち行列ベースの予測型フロー制御機構
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US7533223B1 (en) System and method for handling memory requests in a multiprocessor shared memory system
US20010029574A1 (en) Method and apparatus for developing multiprocessore cache control protocols using a memory management system generating an external acknowledgement signal to set a cache to a dirty coherence state
JP3759193B2 (ja) アトミック動作バス・システム
US5978886A (en) Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache
US7620696B2 (en) System and method for conflict responses in a cache coherency protocol
JP2003216597A (ja) マルチプロセッサシステム
US5907853A (en) Method and apparatus for maintaining duplicate cache tags with selectable width
US6314496B1 (en) Method and apparatus for developing multiprocessor cache control protocols using atomic probe commands and system data control response commands

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051005

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