JPH09160892A - データ変更要求を処理するための方法及びシステム - Google Patents
データ変更要求を処理するための方法及びシステムInfo
- Publication number
- JPH09160892A JPH09160892A JP8225595A JP22559596A JPH09160892A JP H09160892 A JPH09160892 A JP H09160892A JP 8225595 A JP8225595 A JP 8225595A JP 22559596 A JP22559596 A JP 22559596A JP H09160892 A JPH09160892 A JP H09160892A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processor
- copy
- request
- designated data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012545 processing Methods 0.000 title claims description 69
- 238000012508 change request Methods 0.000 title claims description 3
- 230000015654 memory Effects 0.000 claims abstract description 102
- 230000008569 process Effects 0.000 claims abstract description 32
- 230000008859 change Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 claims 2
- 230000006870 function Effects 0.000 abstract description 2
- 230000001427 coherent effect Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 101000648528 Homo sapiens Transmembrane protein 50A Proteins 0.000 description 1
- 102100028770 Transmembrane protein 50A Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 複数のストア要求を効率的に処理する。
【解決手段】 システムは、各々がキャッシュを含むプ
ロセッサと、メモリ・ユニットと、各プロセッサをメモ
リ・ユニットに接続するクロスバー・スイッチとを含
む。メモリ・ユニットは、同一データを記憶するキャッ
シュ・ラインのステータス、例えば排他的かまたは共用
かを保持する高機能メモリ・ディレクトリ・ユニットを
含む。高機能メモリ・ディレクトリ・ユニットの使用に
より、任意のプロセッサが単一のコマンドにより共用ス
トアまたはストア・ミスを発行することが可能となり、
メモリ・ディレクトリ・ユニットがコマンドが実行しよ
うとする内容を判断し、適切なアクションを取る。
ロセッサと、メモリ・ユニットと、各プロセッサをメモ
リ・ユニットに接続するクロスバー・スイッチとを含
む。メモリ・ユニットは、同一データを記憶するキャッ
シュ・ラインのステータス、例えば排他的かまたは共用
かを保持する高機能メモリ・ディレクトリ・ユニットを
含む。高機能メモリ・ディレクトリ・ユニットの使用に
より、任意のプロセッサが単一のコマンドにより共用ス
トアまたはストア・ミスを発行することが可能となり、
メモリ・ディレクトリ・ユニットがコマンドが実行しよ
うとする内容を判断し、適切なアクションを取る。
Description
【0001】
【発明の属する技術分野】本発明は一般にデータ処理シ
ステムに関し、特にデータ処理システムにおける複数の
ストア要求の処理に関する。
ステムに関し、特にデータ処理システムにおける複数の
ストア要求の処理に関する。
【0002】
【従来の技術】従来の対称マルチプロセッサ(SMP)
・システムでは、相当な時間を消費するものの、効果的
なプロシジャにより、データ・コヒーレンシが維持され
る。例えば、システム内のリクエスタ(例えば中央処理
ユニット(CPU)または入出力(I/O)ユニット)
が、データの特定部分(例えばキャッシュ・ライン)を
所望する場合、リクエスタは最初に、所望のデータがそ
のローカル・キャッシュ内に配置されているか否かを判
断する。データがリクエスタのローカル・キャッシュに
内在しない場合、データがシステム・メモリからCPU
に供給されるように要求するロード・ミス(または読出
しミス)要求がメモリ・ユニットに送信され、メモリ・
ユニットがSMPシステムのためにメモリを制御する。
・システムでは、相当な時間を消費するものの、効果的
なプロシジャにより、データ・コヒーレンシが維持され
る。例えば、システム内のリクエスタ(例えば中央処理
ユニット(CPU)または入出力(I/O)ユニット)
が、データの特定部分(例えばキャッシュ・ライン)を
所望する場合、リクエスタは最初に、所望のデータがそ
のローカル・キャッシュ内に配置されているか否かを判
断する。データがリクエスタのローカル・キャッシュに
内在しない場合、データがシステム・メモリからCPU
に供給されるように要求するロード・ミス(または読出
しミス)要求がメモリ・ユニットに送信され、メモリ・
ユニットがSMPシステムのためにメモリを制御する。
【0003】上述のデータ・コヒーレンシ・プロセス
は、ディレクトリ・ベースのメモリ・ユニットの使用に
より改良される。ディレクトリ・ベースのメモリ・ユニ
ット(メモリ・ユニット)は通常、データの最新の有効
コピーが配置される場所を示すディレクトリを含む。デ
ータの有効コピーは、SMPシステム内のシステム・メ
モリまたは1つ以上のCPU内に配置され得る。SMP
システム内の複数のCPUが、それぞれのキャッシュ内
に同一データの有効な(変更されていない)コピーを有
する場合、そのコピーを含むキャッシュ・ラインの状態
は、共用(shared)のステータスを有するものと見なさ
れる。この関係は、メモリ・ユニットのディレクトリ内
に反映される。
は、ディレクトリ・ベースのメモリ・ユニットの使用に
より改良される。ディレクトリ・ベースのメモリ・ユニ
ット(メモリ・ユニット)は通常、データの最新の有効
コピーが配置される場所を示すディレクトリを含む。デ
ータの有効コピーは、SMPシステム内のシステム・メ
モリまたは1つ以上のCPU内に配置され得る。SMP
システム内の複数のCPUが、それぞれのキャッシュ内
に同一データの有効な(変更されていない)コピーを有
する場合、そのコピーを含むキャッシュ・ラインの状態
は、共用(shared)のステータスを有するものと見なさ
れる。この関係は、メモリ・ユニットのディレクトリ内
に反映される。
【0004】共用のステータスを有するキャッシュ・ラ
インを有するCPUが、そこに含まれるデータを変更し
ようとする度に、CPUはデータを変更する排他的権利
を有さねばならない。換言すると、データのコヒーレン
シを保証するために、共用のステータスを有し、同一の
メモリ位置にマップされる任意の他のキャッシュ・ライ
ンが無効にされなければならない。これは通常、CPU
がデータを変更する排他的権利のために、"共用ストア
(shared store)"などの要求をメモリ・ユニットに発
行することにより達成される。共用ストアは以降では、
リクエスタのキャッシュ・ラインのコピーが少なくとも
1つの他のプロセッサにより所有され、リクエスタがそ
こに含まれるデータの排他的所有権を要求している状態
を指す。共用ストア要求の受信に応答して、メモリ・ユ
ニットは適宜、そのデータを含む他の全てのキャッシュ
・ラインを無効にし、要求元CPUはデータを変更する
排他的権利を与えられる。
インを有するCPUが、そこに含まれるデータを変更し
ようとする度に、CPUはデータを変更する排他的権利
を有さねばならない。換言すると、データのコヒーレン
シを保証するために、共用のステータスを有し、同一の
メモリ位置にマップされる任意の他のキャッシュ・ライ
ンが無効にされなければならない。これは通常、CPU
がデータを変更する排他的権利のために、"共用ストア
(shared store)"などの要求をメモリ・ユニットに発
行することにより達成される。共用ストアは以降では、
リクエスタのキャッシュ・ラインのコピーが少なくとも
1つの他のプロセッサにより所有され、リクエスタがそ
こに含まれるデータの排他的所有権を要求している状態
を指す。共用ストア要求の受信に応答して、メモリ・ユ
ニットは適宜、そのデータを含む他の全てのキャッシュ
・ラインを無効にし、要求元CPUはデータを変更する
排他的権利を与えられる。
【0005】しかしながらこうしたSMPシステムで
は、共用キャッシュ・ラインを所有する複数のCPU
が、本質的に同時に共用データを変更しようとし得る。
従って、複数の共用ストア要求がメモリ・ユニットに送
信されることになる。メモリ・ユニットは通常、複数要
求を順次的に処理するように設計される。その結果、最
初の要求が処理され、要求元CPUが排他的権利を獲得
すると、他の全ての要求元CPUは、それらのそれぞれ
のキャッシュ・ラインのステータスを無効にセットされ
る。従って、メモリ・ユニットによる続く共用ストア要
求の処理では、続く要求元CPUに、要求が失敗したこ
とを知らせる。なぜなら、CPUはもはや変更されるデ
ータの有効なコピーを有さないからである。こうした通
知の受信に応答して、CPUは一般に、"ストア・ミス"
のための新たな要求を発行する。ストア・ミスは以降で
は、リクエスタが変更されるデータのコピーをそのキャ
ッシュ内に有さず、排他的所有権と共に、そのデータの
コピーを要求する状態を指す。上述のプロセスは、相当
な量の貴重なバス帯域幅を要求する。
は、共用キャッシュ・ラインを所有する複数のCPU
が、本質的に同時に共用データを変更しようとし得る。
従って、複数の共用ストア要求がメモリ・ユニットに送
信されることになる。メモリ・ユニットは通常、複数要
求を順次的に処理するように設計される。その結果、最
初の要求が処理され、要求元CPUが排他的権利を獲得
すると、他の全ての要求元CPUは、それらのそれぞれ
のキャッシュ・ラインのステータスを無効にセットされ
る。従って、メモリ・ユニットによる続く共用ストア要
求の処理では、続く要求元CPUに、要求が失敗したこ
とを知らせる。なぜなら、CPUはもはや変更されるデ
ータの有効なコピーを有さないからである。こうした通
知の受信に応答して、CPUは一般に、"ストア・ミス"
のための新たな要求を発行する。ストア・ミスは以降で
は、リクエスタが変更されるデータのコピーをそのキャ
ッシュ内に有さず、排他的所有権と共に、そのデータの
コピーを要求する状態を指す。上述のプロセスは、相当
な量の貴重なバス帯域幅を要求する。
【0006】
【発明が解決しようとする課題】従って、複数の共用ス
トア要求を処理するためのバス帯域幅の使用を低減する
改良された方法及びシステムを有することが明らかに有
利である。本発明はこうした方法及びシステムを提供す
るものである。
トア要求を処理するためのバス帯域幅の使用を低減する
改良された方法及びシステムを有することが明らかに有
利である。本発明はこうした方法及びシステムを提供す
るものである。
【0007】
【課題を解決するための手段】1つの態様によれば、本
発明は、各々がキャッシュを有する複数のプロセッサを
有するデータ処理システムにおいて実施される方法であ
る。本方法は、データを変更するために、複数のプロセ
ッサから発行される要求を処理する。本方法は、第1及
び第2のプロセッサからそれぞれ発行され、第1及び第
2のキャッシュに記憶される同一の指定データを変更す
るための第1及び第2の要求を、メモリ・ユニットにお
いて受信するステップを含む。本方法は更に、第1のプ
ロセッサに指定データを変更する排他的権利を提供する
ように、第1の要求を処理するステップを含む。本方法
は更に、第2のプロセッサに指定データの有効コピー、
並びに指定データを変更する排他的権利を提供するよう
に、第2の要求を処理するステップを含む。
発明は、各々がキャッシュを有する複数のプロセッサを
有するデータ処理システムにおいて実施される方法であ
る。本方法は、データを変更するために、複数のプロセ
ッサから発行される要求を処理する。本方法は、第1及
び第2のプロセッサからそれぞれ発行され、第1及び第
2のキャッシュに記憶される同一の指定データを変更す
るための第1及び第2の要求を、メモリ・ユニットにお
いて受信するステップを含む。本方法は更に、第1のプ
ロセッサに指定データを変更する排他的権利を提供する
ように、第1の要求を処理するステップを含む。本方法
は更に、第2のプロセッサに指定データの有効コピー、
並びに指定データを変更する排他的権利を提供するよう
に、第2の要求を処理するステップを含む。
【0008】本発明の別の態様によれば、本発明は、各
々がキャッシュを有する複数のプロセッサを含むマルチ
プロセッサ・システムである。本システムはまた、複数
の各プロセッサに接続されるバスを含む。本システムは
更に、バスに接続されるメモリ・ユニットを含む。メモ
リ・ユニットは、データを記憶する手段と、複数のプロ
セッサから発行されるデータ変更要求を受信する手段と
を含む。メモリ・ユニットは更に、キャッシュがデータ
のコピーを有するか否か、及びキャッシュの任意の1つ
が、そのデータを変更する排他的権利を有するか否かを
示す手段を含む。メモリ・ユニットは更に、ディレクト
リ手段を用いて要求を処理する手段を含む。
々がキャッシュを有する複数のプロセッサを含むマルチ
プロセッサ・システムである。本システムはまた、複数
の各プロセッサに接続されるバスを含む。本システムは
更に、バスに接続されるメモリ・ユニットを含む。メモ
リ・ユニットは、データを記憶する手段と、複数のプロ
セッサから発行されるデータ変更要求を受信する手段と
を含む。メモリ・ユニットは更に、キャッシュがデータ
のコピーを有するか否か、及びキャッシュの任意の1つ
が、そのデータを変更する排他的権利を有するか否かを
示す手段を含む。メモリ・ユニットは更に、ディレクト
リ手段を用いて要求を処理する手段を含む。
【0009】
【発明の実施の形態】以降の説明では、本発明を十分に
理解するために、例えば特定のワード長またはバイト長
などの多数の特定の詳細が述べられる。しかしながら、
当業者には明らかなように、本発明はこうした特定の詳
細無しでも実施し得る。他の例では、本発明を不要な詳
細により不明瞭化しないように、既知の回路がブロック
図形式で示される。大部分において、タイミングなどに
関する詳細は本発明を理解する上で不要であり、当業者
の知る範囲内である限り省略される。
理解するために、例えば特定のワード長またはバイト長
などの多数の特定の詳細が述べられる。しかしながら、
当業者には明らかなように、本発明はこうした特定の詳
細無しでも実施し得る。他の例では、本発明を不要な詳
細により不明瞭化しないように、既知の回路がブロック
図形式で示される。大部分において、タイミングなどに
関する詳細は本発明を理解する上で不要であり、当業者
の知る範囲内である限り省略される。
【0010】図1を参照すると、本発明が実施される対
称マルチプロセッサ・システム(SMP)100が示さ
れる。SMP100は複数のプロセッサ・ユニット10
1乃至101N、システム・クロック106、複数の入
出力(I/O)ユニット120乃至120N、及び複数
のメモリ・ユニット107乃至107Nを含む。SMP
100の通信は、クロスバー・スイッチ104を介す
る。クロスバー・スイッチ104は、複数の各プロセッ
サ・ユニット101乃至101N、システム・クロック
106、各I/Oユニット120乃至120N、及び各
メモリ・ユニット107乃至107Nに、それぞれ双方
向接続108乃至108N、116、117乃至117
N、及び114乃至114Nを介して、接続される。
称マルチプロセッサ・システム(SMP)100が示さ
れる。SMP100は複数のプロセッサ・ユニット10
1乃至101N、システム・クロック106、複数の入
出力(I/O)ユニット120乃至120N、及び複数
のメモリ・ユニット107乃至107Nを含む。SMP
100の通信は、クロスバー・スイッチ104を介す
る。クロスバー・スイッチ104は、複数の各プロセッ
サ・ユニット101乃至101N、システム・クロック
106、各I/Oユニット120乃至120N、及び各
メモリ・ユニット107乃至107Nに、それぞれ双方
向接続108乃至108N、116、117乃至117
N、及び114乃至114Nを介して、接続される。
【0011】各プロセッサ・ユニット101乃至101
Nは、それぞれ中央処理ユニット(CPU)118乃至
118N、ローカル・キャッシュ・メモリ122乃至1
22N、及びバス・インタフェース124乃至124N
を含む。ローカル・キャッシュ・メモリ122乃至12
2Nは、例えばレベル1またはレベル2キャッシュであ
る。一般に、キャッシュ・メモリは比較的小さく、高速
なメモリ・ユニットであり、そこにはプログラム命令及
び(または)データのアクティブ部分が記憶される。
Nは、それぞれ中央処理ユニット(CPU)118乃至
118N、ローカル・キャッシュ・メモリ122乃至1
22N、及びバス・インタフェース124乃至124N
を含む。ローカル・キャッシュ・メモリ122乃至12
2Nは、例えばレベル1またはレベル2キャッシュであ
る。一般に、キャッシュ・メモリは比較的小さく、高速
なメモリ・ユニットであり、そこにはプログラム命令及
び(または)データのアクティブ部分が記憶される。
【0012】図2を参照すると、本発明による図1のメ
モリ・ユニット107の様々なコンポーネントが詳細に
示される。メモリ・ユニット107は、別の米国特許出
願番号第430079号"A METHOD AND SYSTEM FOR PRO
CESSING MULTIPLE REQUESTSFOR DATA RESIDING AT THE
SAME MEMORY ADDRESS"(1995年4月27日出願)の
主題である。
モリ・ユニット107の様々なコンポーネントが詳細に
示される。メモリ・ユニット107は、別の米国特許出
願番号第430079号"A METHOD AND SYSTEM FOR PRO
CESSING MULTIPLE REQUESTSFOR DATA RESIDING AT THE
SAME MEMORY ADDRESS"(1995年4月27日出願)の
主題である。
【0013】メモリ・ユニット107はシステム・イン
タフェース202、Dビット・セット論理214A、D
ビット・リセット論理214B、合同クラス・キャッシ
ュ(CCC)226、メモリ・ディレクトリ・ユニット
(MDU)216、入力キュー204、メモリ制御ディ
スパッチ論理206、メモリ制御装置208、メモリ・
モジュール210、及び出力キュー212を含む。各メ
モリ・ユニット107のコンポーネントの様々なオペレ
ーション及び機能の概要について、次に述べることにす
る。
タフェース202、Dビット・セット論理214A、D
ビット・リセット論理214B、合同クラス・キャッシ
ュ(CCC)226、メモリ・ディレクトリ・ユニット
(MDU)216、入力キュー204、メモリ制御ディ
スパッチ論理206、メモリ制御装置208、メモリ・
モジュール210、及び出力キュー212を含む。各メ
モリ・ユニット107のコンポーネントの様々なオペレ
ーション及び機能の概要について、次に述べることにす
る。
【0014】システム・インタフェース202は、プロ
セッサ・ユニット101乃至101Nの任意の1つ、ま
たはI/Oユニット120乃至120Nの任意の1つか
らトランザクションを受信し、また出力キュー212に
記憶される出力情報を処理する。システム・インタフェ
ース202により受信されるトランザクションは、コヒ
ーレントまたは非コヒーレントとして識別され得る。コ
ヒーレント・トランザクションは、以降では、SMP1
00(図1)のメモリ階層内において、特定のデータの
最新のコピーを要求するトランザクションを指す。一
方、非コヒーレント・トランザクションは、以降では、
プロセッサ・ユニットへの正しい順序のメモリ・アクセ
スだけを要求するトランザクションを指す。
セッサ・ユニット101乃至101Nの任意の1つ、ま
たはI/Oユニット120乃至120Nの任意の1つか
らトランザクションを受信し、また出力キュー212に
記憶される出力情報を処理する。システム・インタフェ
ース202により受信されるトランザクションは、コヒ
ーレントまたは非コヒーレントとして識別され得る。コ
ヒーレント・トランザクションは、以降では、SMP1
00(図1)のメモリ階層内において、特定のデータの
最新のコピーを要求するトランザクションを指す。一
方、非コヒーレント・トランザクションは、以降では、
プロセッサ・ユニットへの正しい順序のメモリ・アクセ
スだけを要求するトランザクションを指す。
【0015】入力キュー204は、システム・インタフ
ェース202により受信され、処理されたコヒーレント
及び非コヒーレント・トランザクションを記憶する。D
ビット・セット論理214Aは、受信されたコヒーレン
ト・トランザクションに関連付けられる重複ビット(D
B)・フラグをセットする。Dビット・リセット論理2
14Bは、入力キュー204に記憶されたコヒーレント
・トランザクションに関連付けられるDBフラグをリセ
ットする。
ェース202により受信され、処理されたコヒーレント
及び非コヒーレント・トランザクションを記憶する。D
ビット・セット論理214Aは、受信されたコヒーレン
ト・トランザクションに関連付けられる重複ビット(D
B)・フラグをセットする。Dビット・リセット論理2
14Bは、入力キュー204に記憶されたコヒーレント
・トランザクションに関連付けられるDBフラグをリセ
ットする。
【0016】MDU216はメモリ・ディレクトリ・デ
ィスパッチ論理218、強制消去(force purge)テー
ブル224、メモリ・ディレクトリ論理222、及びメ
モリ・ディレクトリ220を含む。MDU216は、入
力キュー204に記憶されるコヒーレント・トランザク
ションを管理及び処理する。メモリ・ディレクトリ22
0は、同一の合同クラス(CC)に属するキャッシュ・
ラインに関する情報を記憶するための、複数の合同クラ
ス・ディレクトリ(CCD)・エントリを記憶する。合
同クラス(CC)は以降では、所定ビット位置に同一の
ビット・パターンを有するアドレスを有する全てのキャ
ッシュ・ラインを定義する。
ィスパッチ論理218、強制消去(force purge)テー
ブル224、メモリ・ディレクトリ論理222、及びメ
モリ・ディレクトリ220を含む。MDU216は、入
力キュー204に記憶されるコヒーレント・トランザク
ションを管理及び処理する。メモリ・ディレクトリ22
0は、同一の合同クラス(CC)に属するキャッシュ・
ラインに関する情報を記憶するための、複数の合同クラ
ス・ディレクトリ(CCD)・エントリを記憶する。合
同クラス(CC)は以降では、所定ビット位置に同一の
ビット・パターンを有するアドレスを有する全てのキャ
ッシュ・ラインを定義する。
【0017】用語"合同クラス"は、"セット・アソシア
ティブ・キャッシュ"を定義するために使用される用語"
セット"と類似と見なすことができる。セット・アソシ
アティブ・キャッシュは、J.L.Hennessy及びD.A.Patter
sonによる文献"Computer Architecture: A Quantitativ
e Approach"(section 8.3、pages 408-414)の中で詳
しく述べられている。nウェイ・セット・アソシアティ
ブ・キャッシュでは、各セットが最大nエントリを含
む。同様に、nウェイ合同クラス・メモリ・ディレクト
リ設計では、各合同クラスが最大nエントリを含む。
ティブ・キャッシュ"を定義するために使用される用語"
セット"と類似と見なすことができる。セット・アソシ
アティブ・キャッシュは、J.L.Hennessy及びD.A.Patter
sonによる文献"Computer Architecture: A Quantitativ
e Approach"(section 8.3、pages 408-414)の中で詳
しく述べられている。nウェイ・セット・アソシアティ
ブ・キャッシュでは、各セットが最大nエントリを含
む。同様に、nウェイ合同クラス・メモリ・ディレクト
リ設計では、各合同クラスが最大nエントリを含む。
【0018】メモリ制御ディスパッチ論理206は、入
力キュー204から受信されるトランザクションのディ
スパッチ方法を決定する。メモリ制御装置208は、メ
モリ・モジュール210へのアクセスを制御する。出力
キュー212は、入力キュー204から読出されるコヒ
ーレント及び非コヒーレント・トランザクションの処理
の結果の情報を記憶する。この情報はシステム・インタ
フェース202を介して、SMPシステム100内の適
切なコンポーネントに中継される。
力キュー204から受信されるトランザクションのディ
スパッチ方法を決定する。メモリ制御装置208は、メ
モリ・モジュール210へのアクセスを制御する。出力
キュー212は、入力キュー204から読出されるコヒ
ーレント及び非コヒーレント・トランザクションの処理
の結果の情報を記憶する。この情報はシステム・インタ
フェース202を介して、SMPシステム100内の適
切なコンポーネントに中継される。
【0019】合同クラス・キャッシュ(CCC)226
は、入力キュー204に記憶される同一の合同クラス
(CC)のコヒーレント・トランザクションに関する情
報を含むエントリ(合同クラス・キャッシュ・エント
リ)を記憶する。
は、入力キュー204に記憶される同一の合同クラス
(CC)のコヒーレント・トランザクションに関する情
報を含むエントリ(合同クラス・キャッシュ・エント
リ)を記憶する。
【0020】コヒーレント及び非コヒーレント・トラン
ザクションは、双方向接続114に結合されるシステム
・インタフェース202を介して、メモリ・ユニット1
07により受信され、処理される。これらの受信トラン
ザクションの各々は重複ビット(DB)・フラグに関連
付けられ、単方向パス228を介して入力キュー204
に記憶される。
ザクションは、双方向接続114に結合されるシステム
・インタフェース202を介して、メモリ・ユニット1
07により受信され、処理される。これらの受信トラン
ザクションの各々は重複ビット(DB)・フラグに関連
付けられ、単方向パス228を介して入力キュー204
に記憶される。
【0021】一般にDBフラグは、SMPシステム10
0においてデータ・コヒーレンシが維持されるように、
コヒーレント・トランザクションを処理する順序を調整
する手段として使用される。特定のコヒーレント・トラ
ンザクションに対して、DBフラグがセットされている
場合、そのトランザクションの処理は、DBフラグがリ
セットされるまで遅延される。DBフラグがセットされ
ていない場合には、トランザクションは規則通り処理さ
れる。
0においてデータ・コヒーレンシが維持されるように、
コヒーレント・トランザクションを処理する順序を調整
する手段として使用される。特定のコヒーレント・トラ
ンザクションに対して、DBフラグがセットされている
場合、そのトランザクションの処理は、DBフラグがリ
セットされるまで遅延される。DBフラグがセットされ
ていない場合には、トランザクションは規則通り処理さ
れる。
【0022】図3を参照すると、本発明に従い、図1の
メモリ・ユニット107が複数のストア要求を処理する
様子が、ブロック図で示される。メモリ・ユニット10
7の様々なコンポーネント、並びにそれらのお互いの相
互作用については、図2に関連して既に述べた通りであ
る。従って、本発明の様々な新規の態様を明確にするた
めに、入力キュー204、メモリ・ディレクトリ論理2
22、及びメモリ・ディレクトリ220についてのみ、
述べることにする。メモリ・ディレクトリ220は、プ
ロセッサ・ユニット101乃至101Nの各キャッシュ
・ラインに関する情報を保持するために使用される。本
発明の好適な態様では、メモリ・ディレクトリ220が
次の4つのフィールドを保持する。 (1)有効(V) 306a (2)排他(E) 306b (3)タグ情報(TAG) 306c (4)包含ビット情報 306d
メモリ・ユニット107が複数のストア要求を処理する
様子が、ブロック図で示される。メモリ・ユニット10
7の様々なコンポーネント、並びにそれらのお互いの相
互作用については、図2に関連して既に述べた通りであ
る。従って、本発明の様々な新規の態様を明確にするた
めに、入力キュー204、メモリ・ディレクトリ論理2
22、及びメモリ・ディレクトリ220についてのみ、
述べることにする。メモリ・ディレクトリ220は、プ
ロセッサ・ユニット101乃至101Nの各キャッシュ
・ラインに関する情報を保持するために使用される。本
発明の好適な態様では、メモリ・ディレクトリ220が
次の4つのフィールドを保持する。 (1)有効(V) 306a (2)排他(E) 306b (3)タグ情報(TAG) 306c (4)包含ビット情報 306d
【0023】有効フィールド306aは、メモリ・ディ
レクトリ220内のエントリにより表されるデータが有
効か否かを示し、1ビット長である。有効フィールド3
06aがセットされている場合、対応するエントリによ
り表されるデータは有効である。逆に、有効フィールド
306aがリセットされている場合には、対応するエン
トリにより表されるデータは無効である。データは、例
えばキャッシュ・ラインの所有者が所有権をメモリに返
却するなどの、幾つかの理由から無効になる。
レクトリ220内のエントリにより表されるデータが有
効か否かを示し、1ビット長である。有効フィールド3
06aがセットされている場合、対応するエントリによ
り表されるデータは有効である。逆に、有効フィールド
306aがリセットされている場合には、対応するエン
トリにより表されるデータは無効である。データは、例
えばキャッシュ・ラインの所有者が所有権をメモリに返
却するなどの、幾つかの理由から無効になる。
【0024】排他フィールド306bは、データを変更
する排他的権利が、単一のプロセッサ・ユニット101
乃至101Nにより排他的に保持されるか否か、或いは
複数のプロセッサ・ユニット101乃至101Nが、現
在データを共用しているか否かを示す。排他フィールド
306bもまた1ビットにより表される。排他フィール
ド306bがセットされている場合、単一のプロセッサ
・ユニット101乃至101Nが、データのコピーを変
更する排他的権利を有する。逆に、排他フィールドがリ
セットされている場合には、2つ以上のプロセッサ・ユ
ニット101乃至101Nがデータのコピーを現在共用
しており、どの共用所有者もデータを変更する排他的権
利を有さない。
する排他的権利が、単一のプロセッサ・ユニット101
乃至101Nにより排他的に保持されるか否か、或いは
複数のプロセッサ・ユニット101乃至101Nが、現
在データを共用しているか否かを示す。排他フィールド
306bもまた1ビットにより表される。排他フィール
ド306bがセットされている場合、単一のプロセッサ
・ユニット101乃至101Nが、データのコピーを変
更する排他的権利を有する。逆に、排他フィールドがリ
セットされている場合には、2つ以上のプロセッサ・ユ
ニット101乃至101Nがデータのコピーを現在共用
しており、どの共用所有者もデータを変更する排他的権
利を有さない。
【0025】タグ・フィールド306cは、タグを用い
て主メモリ内のデータの位置をマップする現方法を表
し、従って、これについては詳細な説明は不要である。
て主メモリ内のデータの位置をマップする現方法を表
し、従って、これについては詳細な説明は不要である。
【0026】包含フィールド306dは、SMP100
の各プロセッサ・ユニット101乃至101Nに対応し
て、1ビットを使用する。従って、包含フィールド30
6dの長さは、特定のSMPによりサポートされるプロ
セッサ・ユニットの数により決定される。包含フィール
ド306dの任意のビットがセットされている場合、セ
ットされたビット位置に対応するプロセッサ・ユニット
が、データのコピーを含む。
の各プロセッサ・ユニット101乃至101Nに対応し
て、1ビットを使用する。従って、包含フィールド30
6dの長さは、特定のSMPによりサポートされるプロ
セッサ・ユニットの数により決定される。包含フィール
ド306dの任意のビットがセットされている場合、セ
ットされたビット位置に対応するプロセッサ・ユニット
が、データのコピーを含む。
【0027】この例では、それぞれのプロセッサ・ユニ
ット101及び101Aのローカル・キャッシュ122
及び122aの両方が、Xデータのコピーを有するもの
と仮定される。更に、ある時点において、プロセッサ・
ユニット101が、Xデータの変更が必要であると判断
するものとする。従来のSMPシステムでは、プロセッ
サ・ユニット101はXデータを変更する排他的権利を
獲得するために、"共用ストア"要求をメモリ・ユニット
107に発行する。しかしながら、本発明の好適な態様
では、"共用ストア"要求は"ストア・ミス"要求と併合さ
れる。これを以降では、RWITM(Read With Intent
ion To Modify:変更を意図する読出し)として参照す
る。従って、プロセッサ・ユニット101は、RWIT
M A要求302をメモリ・ユニット107に発行す
る。
ット101及び101Aのローカル・キャッシュ122
及び122aの両方が、Xデータのコピーを有するもの
と仮定される。更に、ある時点において、プロセッサ・
ユニット101が、Xデータの変更が必要であると判断
するものとする。従来のSMPシステムでは、プロセッ
サ・ユニット101はXデータを変更する排他的権利を
獲得するために、"共用ストア"要求をメモリ・ユニット
107に発行する。しかしながら、本発明の好適な態様
では、"共用ストア"要求は"ストア・ミス"要求と併合さ
れる。これを以降では、RWITM(Read With Intent
ion To Modify:変更を意図する読出し)として参照す
る。従って、プロセッサ・ユニット101は、RWIT
M A要求302をメモリ・ユニット107に発行す
る。
【0028】RWITM A要求302の処理が終了す
る以前の、続くある時点において、プロセッサ・ユニッ
ト101Aが、Xデータのコピーを変更することが必要
であると判断する。従って、プロセッサ・ユニット10
1Aは、RWITM B要求304をメモリ・ユニット
107に発行する。
る以前の、続くある時点において、プロセッサ・ユニッ
ト101Aが、Xデータのコピーを変更することが必要
であると判断する。従って、プロセッサ・ユニット10
1Aは、RWITM B要求304をメモリ・ユニット
107に発行する。
【0029】メモリ・ユニット107はRWITM A
要求302及びRWITM B要求304を受信し、そ
れらを入力キュー204に記憶する。図2に関連して上
述したように、RWITM A要求302及びRWIT
M B要求304は、それぞれDBフラグ302a及び
304aに関連付けられ、順次処理される。この例で
は、RWITM A302が最初に入力キュー204に
到来したので、最初に処理される。従って、DBフラグ
302aが0にセットされる。RWITM B要求30
4は入力キュー204に2番目に到来したので、その処
理はRWITMA要求302の処理が完了するまで遅延
される。その結果、DBフラグ304aがこの遅延を達
成するために、1にセットされる。
要求302及びRWITM B要求304を受信し、そ
れらを入力キュー204に記憶する。図2に関連して上
述したように、RWITM A要求302及びRWIT
M B要求304は、それぞれDBフラグ302a及び
304aに関連付けられ、順次処理される。この例で
は、RWITM A302が最初に入力キュー204に
到来したので、最初に処理される。従って、DBフラグ
302aが0にセットされる。RWITM B要求30
4は入力キュー204に2番目に到来したので、その処
理はRWITMA要求302の処理が完了するまで遅延
される。その結果、DBフラグ304aがこの遅延を達
成するために、1にセットされる。
【0030】MDU216によるRWITM A要求3
02の処理は、任意のプロセッサ・ユニット101乃至
101Nに関して、Xデータの状態を表すメモリ・ディ
レクトリ220のエントリを突き止めることから開始す
る。この例では、エントリ307がこの関係を表す正し
いエントリである。エントリ307の調査において、有
効ビット307aが1にセットされており、従って任意
のキャッシュ122乃至122Nに内在するXデータの
コピーが有効であることが判明する。排他ビット307
bは0にセットされており、現在複数のプロセッサ・ユ
ニット101乃至101Nが、その対応するキャッシュ
122乃至122NにXデータのコピーを所有している
ことを示す。包含ビット307c及び307dはセット
されており、プロセッサ・ユニット101及び101A
のそれぞれのキャッシュ122及び122aの両方が、
Xデータのコピーを有することを示す。RWITM A
要求302の処理が継続し、続いてメモリ・ディレクト
リ論理222が、RWITM A要求302がXデータ
のコピーを要求するか否かを判断する。これについて
は、図5に関連して詳述する。
02の処理は、任意のプロセッサ・ユニット101乃至
101Nに関して、Xデータの状態を表すメモリ・ディ
レクトリ220のエントリを突き止めることから開始す
る。この例では、エントリ307がこの関係を表す正し
いエントリである。エントリ307の調査において、有
効ビット307aが1にセットされており、従って任意
のキャッシュ122乃至122Nに内在するXデータの
コピーが有効であることが判明する。排他ビット307
bは0にセットされており、現在複数のプロセッサ・ユ
ニット101乃至101Nが、その対応するキャッシュ
122乃至122NにXデータのコピーを所有している
ことを示す。包含ビット307c及び307dはセット
されており、プロセッサ・ユニット101及び101A
のそれぞれのキャッシュ122及び122aの両方が、
Xデータのコピーを有することを示す。RWITM A
要求302の処理が継続し、続いてメモリ・ディレクト
リ論理222が、RWITM A要求302がXデータ
のコピーを要求するか否かを判断する。これについて
は、図5に関連して詳述する。
【0031】図5を参照すると、本発明に従い、図3及
び図4のメモリ・ディレクトリ論理222により、RW
ITM要求を処理するフローチャートが示される。プロ
セスはMDU216によるRWITM要求の受信に際し
て、ステップ400で開始する。プロセスは次にステッ
プ402に移行し、要求データを表すエントリを求め
て、メモリ・ディレクトリ220が探索される。以降で
は要求データをXデータとして参照する。その後、プロ
セスはステップ404に移行し、マッチング・エントリ
が見い出されたか否かが判断される。ステップ404で
マッチングが見い出されない、すなわちどのプロセッサ
101乃至101Nも、Xデータのコピーをそれぞれの
キャッシュに記憶しない場合、プロセスはステップ40
5に移行し、Xデータがメモリ・ユニット107から取
り出され、プロセスはステップ426で終了する。
び図4のメモリ・ディレクトリ論理222により、RW
ITM要求を処理するフローチャートが示される。プロ
セスはMDU216によるRWITM要求の受信に際し
て、ステップ400で開始する。プロセスは次にステッ
プ402に移行し、要求データを表すエントリを求め
て、メモリ・ディレクトリ220が探索される。以降で
は要求データをXデータとして参照する。その後、プロ
セスはステップ404に移行し、マッチング・エントリ
が見い出されたか否かが判断される。ステップ404で
マッチングが見い出されない、すなわちどのプロセッサ
101乃至101Nも、Xデータのコピーをそれぞれの
キャッシュに記憶しない場合、プロセスはステップ40
5に移行し、Xデータがメモリ・ユニット107から取
り出され、プロセスはステップ426で終了する。
【0032】しかしながら、ステップ404で、マッチ
ング・エントリが見い出されると、プロセスはステップ
406に移行し、マッチング・エントリのフィールド3
06a乃至306dが前述のように調査され、Xデータ
のコピーを有するあらゆるプロセッサ101乃至101
Nのステータスを判断する。
ング・エントリが見い出されると、プロセスはステップ
406に移行し、マッチング・エントリのフィールド3
06a乃至306dが前述のように調査され、Xデータ
のコピーを有するあらゆるプロセッサ101乃至101
Nのステータスを判断する。
【0033】要求元プロセッサ101乃至101Nが、
Xデータのコピーを有する唯一のプロセッサの場合、プ
ロセスはステップ407に移行し、要求元プロセッサ1
01乃至101Nが、Xデータを変更する排他的権利を
有するか否かが判断される。ステップ407で、要求元
プロセッサ101乃至101NがXデータを変更する排
他的権利を有すると判断されると、プロセスはステップ
426で終了する。しかしながら、ステップ407で、
要求元プロセッサ101乃至101NがXデータを変更
する排他的権利を有さないと判断されると、プロセスは
ステップ409に移行し、排他的権利を獲得する。その
後、プロセスはステップ426で終了する。
Xデータのコピーを有する唯一のプロセッサの場合、プ
ロセスはステップ407に移行し、要求元プロセッサ1
01乃至101Nが、Xデータを変更する排他的権利を
有するか否かが判断される。ステップ407で、要求元
プロセッサ101乃至101NがXデータを変更する排
他的権利を有すると判断されると、プロセスはステップ
426で終了する。しかしながら、ステップ407で、
要求元プロセッサ101乃至101NがXデータを変更
する排他的権利を有さないと判断されると、プロセスは
ステップ409に移行し、排他的権利を獲得する。その
後、プロセスはステップ426で終了する。
【0034】ステップ406で、要求元プロセッサ10
1乃至101N及び少なくとも1つの他のプロセッサ1
01乃至101Nが、Xデータのコピーを有する、すな
わちXデータが共用のステータスを有すると判断される
と、プロセスはステップ408に移行する。ステップ4
08では、Xデータのコピーを有する全ての非要求元プ
ロセッサ101乃至101Nが、それらのXデータのコ
ピーを無効にされる。その後、プロセスはステップ41
0に移行し、要求元プロセッサ101乃至101Nがデ
ータを変更する排他的権利を獲得し、プロセスはステッ
プ426で終了する。
1乃至101N及び少なくとも1つの他のプロセッサ1
01乃至101Nが、Xデータのコピーを有する、すな
わちXデータが共用のステータスを有すると判断される
と、プロセスはステップ408に移行する。ステップ4
08では、Xデータのコピーを有する全ての非要求元プ
ロセッサ101乃至101Nが、それらのXデータのコ
ピーを無効にされる。その後、プロセスはステップ41
0に移行し、要求元プロセッサ101乃至101Nがデ
ータを変更する排他的権利を獲得し、プロセスはステッ
プ426で終了する。
【0035】ステップ406で、少なくとも1つの非要
求元プロセッサ101乃至101NだけがXデータのコ
ピーを有すると判断されると、プロセスはステップ41
2に移行する。ステップ412では、その少なくとも1
つの非要求元プロセッサ101乃至101Nのステータ
スが排他的か、または共用かが判断される。ステータス
が共用の場合、プロセスはステップ414に移行し、そ
れらの非要求元プロセッサ101乃至101Nにより保
持されるXデータの全てのコピーが無効にされる。その
後、プロセスはステップ416に移行し、要求元プロセ
ッサ101乃至101NがXデータを変更する排他的権
利を与えられ、Xデータのコピーが要求元プロセッサ1
01乃至101Nに提供される。
求元プロセッサ101乃至101NだけがXデータのコ
ピーを有すると判断されると、プロセスはステップ41
2に移行する。ステップ412では、その少なくとも1
つの非要求元プロセッサ101乃至101Nのステータ
スが排他的か、または共用かが判断される。ステータス
が共用の場合、プロセスはステップ414に移行し、そ
れらの非要求元プロセッサ101乃至101Nにより保
持されるXデータの全てのコピーが無効にされる。その
後、プロセスはステップ416に移行し、要求元プロセ
ッサ101乃至101NがXデータを変更する排他的権
利を与えられ、Xデータのコピーが要求元プロセッサ1
01乃至101Nに提供される。
【0036】ステップ412で、非要求元プロセッサ1
01乃至101NがXデータを変更する排他的権利を有
すると判断されると、プロセスはステップ418に移行
し、非要求元プロセッサ101乃至101Nは、MDU
216により、Xデータ及び排他的権利を要求元プロセ
ッサ101乃至101Nに転送するように、相互問い合
わせ要求が伝送される。この要求の受信に際して、ステ
ップ420で、非要求元プロセッサ101乃至101N
は、Xデータのそのコピーが依然有効か否かを判断す
る。Xデータのコピーが有効の場合、プロセスはステッ
プ424に移行する。しかしながら、ステップ420で
Xデータのコピーが無効と判断されると、プロセスはス
テップ422に移行する。
01乃至101NがXデータを変更する排他的権利を有
すると判断されると、プロセスはステップ418に移行
し、非要求元プロセッサ101乃至101Nは、MDU
216により、Xデータ及び排他的権利を要求元プロセ
ッサ101乃至101Nに転送するように、相互問い合
わせ要求が伝送される。この要求の受信に際して、ステ
ップ420で、非要求元プロセッサ101乃至101N
は、Xデータのそのコピーが依然有効か否かを判断す
る。Xデータのコピーが有効の場合、プロセスはステッ
プ424に移行する。しかしながら、ステップ420で
Xデータのコピーが無効と判断されると、プロセスはス
テップ422に移行する。
【0037】ステップ424では、Xデータのコピー及
び排他的権利がリクエスタに転送される。この転送は、
係属中の米国特許出願番号第387689号"System an
d Method for Handling Stale Data in a Multiprocess
or System"(1995年2月13日出願)で述べられる
キャッシュ間転送により実現される。その後、プロセス
はステップ426で終了する。
び排他的権利がリクエスタに転送される。この転送は、
係属中の米国特許出願番号第387689号"System an
d Method for Handling Stale Data in a Multiprocess
or System"(1995年2月13日出願)で述べられる
キャッシュ間転送により実現される。その後、プロセス
はステップ426で終了する。
【0038】ステップ422では、要求元プロセッサ1
01乃至101NがXデータのコピーを取り出し、Xデ
ータを変更する排他的権利を与えられる。その後、プロ
セスはステップ426で終了する。
01乃至101NがXデータのコピーを取り出し、Xデ
ータを変更する排他的権利を与えられる。その後、プロ
セスはステップ426で終了する。
【0039】再度図3を参照し、この特定の例では要求
元プロセッサ・ユニット101がXデータのコピーを有
するので、要求元プロセッサ・ユニット101は、MD
U216により提供されるXデータを変更する排他的権
利を有する必要があるだけである。排他的権利はプロセ
ッサ・ユニット101に次のように提供される。すなわ
ち、最初にプロセッサ・ユニット101Aのキャッシュ
122a内のXデータのコピーを無効にするように、相
互問い合わせ要求310がMDU216からプロセッサ
・ユニット101Aに伝送される。プロセッサ・ユニッ
ト101AがそのXデータのコピーを無効にすると、プ
ロセッサ・ユニット101AはMDU216に、無効応
答信号312の伝送を介して通知する。無効応答信号3
12の受信後、MDU216はプロセッサ・ユニット1
01に、プロセッサ・ユニット101が現在、Xデータ
を変更する排他的権利を有することを、排他応答信号3
14の伝送を介して通知する。
元プロセッサ・ユニット101がXデータのコピーを有
するので、要求元プロセッサ・ユニット101は、MD
U216により提供されるXデータを変更する排他的権
利を有する必要があるだけである。排他的権利はプロセ
ッサ・ユニット101に次のように提供される。すなわ
ち、最初にプロセッサ・ユニット101Aのキャッシュ
122a内のXデータのコピーを無効にするように、相
互問い合わせ要求310がMDU216からプロセッサ
・ユニット101Aに伝送される。プロセッサ・ユニッ
ト101AがそのXデータのコピーを無効にすると、プ
ロセッサ・ユニット101AはMDU216に、無効応
答信号312の伝送を介して通知する。無効応答信号3
12の受信後、MDU216はプロセッサ・ユニット1
01に、プロセッサ・ユニット101が現在、Xデータ
を変更する排他的権利を有することを、排他応答信号3
14の伝送を介して通知する。
【0040】図4を参照すると、RWITM A要求3
02が処理されたので、DBフラグ304aが0にセッ
トされ、RWITM B要求304の処理が開始され得
る。処理は、任意のプロセッサ・ユニット101乃至1
01Nに関して、Xデータの状態を表すエントリを求め
て、メモリ・ディレクトリ220を探索することから始
まる。再度、エントリ307がこの関係を表す正しいエ
ントリである。しかしながら、エントリ307のフィー
ルドは、以前のRWITM A要求302の処理を表す
ように更新されている。その結果、排他フィールド30
7bが1にセットされており、包含ビット307cによ
り表される指定プロセッサ・ユニットが、Xデータを変
更する排他的権利を有することを示す。従って、包含ビ
ット307dは0にセットされており、プロセッサ・ユ
ニット101AがもはやXデータの有効なコピーを有さ
ないことを示す。
02が処理されたので、DBフラグ304aが0にセッ
トされ、RWITM B要求304の処理が開始され得
る。処理は、任意のプロセッサ・ユニット101乃至1
01Nに関して、Xデータの状態を表すエントリを求め
て、メモリ・ディレクトリ220を探索することから始
まる。再度、エントリ307がこの関係を表す正しいエ
ントリである。しかしながら、エントリ307のフィー
ルドは、以前のRWITM A要求302の処理を表す
ように更新されている。その結果、排他フィールド30
7bが1にセットされており、包含ビット307cによ
り表される指定プロセッサ・ユニットが、Xデータを変
更する排他的権利を有することを示す。従って、包含ビ
ット307dは0にセットされており、プロセッサ・ユ
ニット101AがもはやXデータの有効なコピーを有さ
ないことを示す。
【0041】メモリ・ディレクトリ論理222は図5に
関連して上述したステップにより、RWITM B要求
304を処理する。この例では、MDU216がプロセ
ッサ・ユニット101に、そのキャッシュ122に含ま
れるXデータのコピーをキャッシュ122aに転送し、
そのコピーを無効にするように、相互問い合わせ316
を伝送する。その結果、キャッシュ122からキャッシ
ュ122aへの転送が、キャッシュ間転送318により
表されるように実行され、キャッシュ122内のXデー
タのコピーが無効にされる。これはプロセッサ・ユニッ
ト101からMDU216への無効応答信号320の伝
送により応答される。従って、MDU216は排他応答
信号322をプロセッサ101Aに伝送することによ
り、プロセッサ101AがXデータのコピーを変更する
排他的権利を有することを示す。
関連して上述したステップにより、RWITM B要求
304を処理する。この例では、MDU216がプロセ
ッサ・ユニット101に、そのキャッシュ122に含ま
れるXデータのコピーをキャッシュ122aに転送し、
そのコピーを無効にするように、相互問い合わせ316
を伝送する。その結果、キャッシュ122からキャッシ
ュ122aへの転送が、キャッシュ間転送318により
表されるように実行され、キャッシュ122内のXデー
タのコピーが無効にされる。これはプロセッサ・ユニッ
ト101からMDU216への無効応答信号320の伝
送により応答される。従って、MDU216は排他応答
信号322をプロセッサ101Aに伝送することによ
り、プロセッサ101AがXデータのコピーを変更する
排他的権利を有することを示す。
【0042】通常のSMPシステムでは、RWITM
B304の上述の処理は次の点で異なる。第1に、いず
れのプロセッサ・ユニット101乃至101AもRWI
TM要求ではなく、共用ストア要求を発行する。その結
果、プロセッサ・ユニット101からの共用ストア要求
の処理が完了した後、プロセッサ・ユニット101Aに
よる共用ストア要求の処理において、プロセッサ・ユニ
ット101Aは要求が失敗したことを通知される。その
結果、プロセッサ・ユニット101Aはストア・ミス要
求をMDU216に再発行する。このプロシジャは、不
必要にクロスバー・スイッチ104の貴重な帯域幅を使
用する。
B304の上述の処理は次の点で異なる。第1に、いず
れのプロセッサ・ユニット101乃至101AもRWI
TM要求ではなく、共用ストア要求を発行する。その結
果、プロセッサ・ユニット101からの共用ストア要求
の処理が完了した後、プロセッサ・ユニット101Aに
よる共用ストア要求の処理において、プロセッサ・ユニ
ット101Aは要求が失敗したことを通知される。その
結果、プロセッサ・ユニット101Aはストア・ミス要
求をMDU216に再発行する。このプロシジャは、不
必要にクロスバー・スイッチ104の貴重な帯域幅を使
用する。
【0043】本発明のオペレーション及び構成が、上述
の説明から明らかになったことであろう。上述された方
法及びシステムは、好適な態様として特長付けられた
が、当業者には、本発明の趣旨及び範囲から逸脱するこ
と無しに、様々な変更及び変形が可能であることが理解
されよう。
の説明から明らかになったことであろう。上述された方
法及びシステムは、好適な態様として特長付けられた
が、当業者には、本発明の趣旨及び範囲から逸脱するこ
と無しに、様々な変更及び変形が可能であることが理解
されよう。
【0044】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0045】(1)各々がキャッシュを有する複数のプ
ロセッサを有するデータ処理システムにおいて、前記複
数のプロセッサから発行されるデータ変更のための要求
を処理する方法であって、前記プロセッサの内の第1及
び第2のプロセッサからそれぞれ発行され、第1及び第
2のキャッシュに記憶される同一の指定データを変更す
るための第1及び第2の要求を、メモリ・ユニットにお
いて受信するステップと、前記第1のプロセッサに前記
指定データを変更する排他的権利を提供するように、前
記第1の要求を処理するステップと、前記第2のプロセ
ッサに前記指定データの有効コピー、並びに前記指定デ
ータを変更する前記排他的権利を提供するように、前記
第2の要求を処理するステップと、を含む、方法。 (2)前記メモリ・ユニットが、該メモリ・ユニットに
記憶されるデータのコピーを有するキャッシュ・ライン
のステータスを示すエントリを有するメモリ・ディレク
トリを含み、前記第1の要求を処理するステップが、前
記メモリ・ディレクトリ内で、前記指定データに対応す
るエントリを突き止めるステップと、前記突き止められ
たエントリから、前記指定データのコピーが前記第1及
び第2のキャッシュに内在すると判断するステップと、
前記第2のキャッシュ内の前記指定データのコピーを無
効にするステップと、前記第1のプロセッサに前記指定
データを変更する前記排他的権利を提供するステップ
と、を含む、前記(1)記載の方法。 (3)前記第2の要求を処理するステップが、前記メモ
リ・ディレクトリ内で前記エントリを突き止めるステッ
プと、前記突き止められたエントリから、前記指定デー
タのコピーが前記第1のキャッシュに内在し、前記第1
のプロセッサが前記指定データを変更する前記排他的権
利を有すると判断するステップと、前記第1のプロセッ
サに、前記指定データのコピーを前記第2のプロセッサ
に転送するように要求するステップと、前記第2のプロ
セッサに前記指定データを変更する前記排他的権利を提
供するステップと、を含む、前記(2)記載の方法。 (4)前記エントリの各々がタグ、排他ビット、及び包
含フィールドを含み、前記包含フィールドの各ビット
が、対応する前記プロセッサが前記タグにより表される
データのコピーを有するか否かを表し、前記(2)記載
の判断ステップが、前記突き止められた排他ビットがセ
ットされていないと判断するステップと、前記第1及び
第2のプロセッサを表す前記包含フィールド・ビットが
セットされていることから、前記指定データのコピーが
前記第1及び第2のキャッシュに内在すると判断するス
テップと、を含む、前記(3)記載の方法。 (5)前記無効ステップが、前記第2のプロセッサを表
す前記突き止められた包含フィールド・ビットをリセッ
トするステップを含む、前記(4)記載の方法。 (6)前記第1のプロセッサに前記排他的権利を提供す
るステップが、前記突き止められた排他ビットをセット
するステップを含む、前記(5)記載の方法。 (7)前記(3)記載の判断ステップが、前記第1のプ
ロセッサを表す前記突き止められた包含フィールド・ビ
ットがセットされていることから、前記第1のキャッシ
ュが前記指定データのコピーを有すると判断するステッ
プと、前記突き止められた排他ビットがセットされてい
ることから、前記第1のプロセッサが前記指定データを
変更する前記排他的権利を有すると判断するステップ
と、を含む、前記(6)記載の方法。 (8)前記第2のプロセッサに前記排他的権利を提供す
るステップが、前記第1のプロセッサを表す前記突き止
められた包含フィールド・ビットをリセットするステッ
プを含む、前記(7)記載の方法。 (9)前記第1及び第2の要求が同一のコマンドを前記
メモリ・ユニットに発行する、前記(8)記載の方法。 (10)各々がキャッシュを有する複数のプロセッサ
と、前記複数のプロセッサの各々に接続されるバスと、
前記バスに接続されるメモリ・ユニットであって、該メ
モリ・ユニットが、データを記憶する手段と、前記複数
のプロセッサから発行される前記データの変更要求を受
信する手段と、前記キャッシュが前記データのコピーを
有するか否か、及び前記キャッシュの任意の1つが前記
データを変更する排他的権利を有するか否かを示すディ
レクトリ手段と、前記ディレクトリ手段を用いて前記要
求を処理する手段と、を含む、データ処理システム。 (11)前記受信手段が、前記プロセッサの内の第1及
び第2のプロセッサからそれぞれ発行され、第1及び第
2のキャッシュに記憶される同一の指定データを変更す
るための第1及び第2の要求を受信する手段を含む、前
記(10)記載のデータ処理システム。 (12)前記処理手段が、前記第1のプロセッサに前記
指定データを変更する排他的権利を提供するように、前
記第1の要求を処理する手段と、前記第2のプロセッサ
に前記指定データの有効コピー、並びに前記指定データ
を変更する前記排他的権利を提供するように、前記第2
の要求を処理する手段と、を含む、前記(11)記載の
データ処理システム。 (13)前記ディレクトリ手段が、前記メモリ・ユニッ
トに記憶されるデータのコピーを有するキャッシュ・ラ
インのステータスを示すエントリを有するメモリ・ディ
レクトリを含む、前記(12)記載のデータ処理システ
ム。 (14)前記第1の要求を処理する手段が、前記メモリ
・ディレクトリ内で、前記指定データに対応するエント
リを突き止める手段と、前記突き止められたエントリか
ら、前記指定データのコピーが前記第1及び第2のキャ
ッシュに内在すると判断する手段と、前記第2のキャッ
シュ内の前記指定データのコピーを無効にする手段と、
前記第1のプロセッサに前記指定データを変更する前記
排他的権利を提供する手段と、を含む、前記(13)記
載のデータ処理システム。 (15)前記第2の要求を処理する手段が、前記メモリ
・ディレクトリ内で、前記エントリを突き止める手段
と、前記突き止められたエントリから、前記指定データ
のコピーが前記第1のキャッシュに内在し、前記第1の
プロセッサが前記指定データを変更する前記排他的権利
を有すると判断する手段と、前記第1のプロセッサに、
前記指定データのコピーを前記第2のプロセッサに転送
するように要求する手段と、前記第2のプロセッサに前
記指定データを変更する前記排他的権利を提供する手段
と、を含む、前記(14)記載のデータ処理システム。 (16)前記エントリの各々が、タグと、排他ビット
と、包含フィールドと、を含み、前記包含フィールドの
各ビットが、前記複数のプロセッサの内の対応する1つ
を表す、前記(15)記載のデータ処理システム。 (17)前記(14)記載の判断手段が、前記突き止め
られた排他ビットがセットされていないと判断する手段
と、前記第1及び第2のプロセッサに対応する前記突き
止められた包含フィールド・ビットがセットされている
ことから、前記指定データのコピーが前記第1及び第2
のキャッシュに内在すると判断する手段と、を含む、前
記(16)記載のデータ処理システム。 (18)前記無効手段が、前記第2のプロセッサに対応
する前記突き止められた包含フィールド・ビットをリセ
ットする手段を含む、前記(17)記載のデータ処理シ
ステム。 (19)前記第1のプロセッサに前記排他的権利を提供
する手段が、前記突き止められた排他ビットをセットす
る手段を含む、前記(18)記載のデータ処理システ
ム。 (20)前記(15)記載の判断手段が、前記第1のプ
ロセッサに対応する前記突き止められた包含フィールド
・ビットがセットされていることから、前記第1のキャ
ッシュが前記指定データのコピーを有すると判断する手
段と、前記突き止められた排他ビットがセットされてい
ることから、前記第1のプロセッサが前記指定データを
変更する前記排他的権利を有すると判断する手段と、を
含む、前記(19)記載のデータ処理システム。 (21)前記第2のプロセッサに前記排他的権利を提供
するステップが、前記第1のプロセッサに対応する前記
突き止められた包含フィールド・ビットをリセットする
手段を含む、前記(20)記載のデータ処理システム。
ロセッサを有するデータ処理システムにおいて、前記複
数のプロセッサから発行されるデータ変更のための要求
を処理する方法であって、前記プロセッサの内の第1及
び第2のプロセッサからそれぞれ発行され、第1及び第
2のキャッシュに記憶される同一の指定データを変更す
るための第1及び第2の要求を、メモリ・ユニットにお
いて受信するステップと、前記第1のプロセッサに前記
指定データを変更する排他的権利を提供するように、前
記第1の要求を処理するステップと、前記第2のプロセ
ッサに前記指定データの有効コピー、並びに前記指定デ
ータを変更する前記排他的権利を提供するように、前記
第2の要求を処理するステップと、を含む、方法。 (2)前記メモリ・ユニットが、該メモリ・ユニットに
記憶されるデータのコピーを有するキャッシュ・ライン
のステータスを示すエントリを有するメモリ・ディレク
トリを含み、前記第1の要求を処理するステップが、前
記メモリ・ディレクトリ内で、前記指定データに対応す
るエントリを突き止めるステップと、前記突き止められ
たエントリから、前記指定データのコピーが前記第1及
び第2のキャッシュに内在すると判断するステップと、
前記第2のキャッシュ内の前記指定データのコピーを無
効にするステップと、前記第1のプロセッサに前記指定
データを変更する前記排他的権利を提供するステップ
と、を含む、前記(1)記載の方法。 (3)前記第2の要求を処理するステップが、前記メモ
リ・ディレクトリ内で前記エントリを突き止めるステッ
プと、前記突き止められたエントリから、前記指定デー
タのコピーが前記第1のキャッシュに内在し、前記第1
のプロセッサが前記指定データを変更する前記排他的権
利を有すると判断するステップと、前記第1のプロセッ
サに、前記指定データのコピーを前記第2のプロセッサ
に転送するように要求するステップと、前記第2のプロ
セッサに前記指定データを変更する前記排他的権利を提
供するステップと、を含む、前記(2)記載の方法。 (4)前記エントリの各々がタグ、排他ビット、及び包
含フィールドを含み、前記包含フィールドの各ビット
が、対応する前記プロセッサが前記タグにより表される
データのコピーを有するか否かを表し、前記(2)記載
の判断ステップが、前記突き止められた排他ビットがセ
ットされていないと判断するステップと、前記第1及び
第2のプロセッサを表す前記包含フィールド・ビットが
セットされていることから、前記指定データのコピーが
前記第1及び第2のキャッシュに内在すると判断するス
テップと、を含む、前記(3)記載の方法。 (5)前記無効ステップが、前記第2のプロセッサを表
す前記突き止められた包含フィールド・ビットをリセッ
トするステップを含む、前記(4)記載の方法。 (6)前記第1のプロセッサに前記排他的権利を提供す
るステップが、前記突き止められた排他ビットをセット
するステップを含む、前記(5)記載の方法。 (7)前記(3)記載の判断ステップが、前記第1のプ
ロセッサを表す前記突き止められた包含フィールド・ビ
ットがセットされていることから、前記第1のキャッシ
ュが前記指定データのコピーを有すると判断するステッ
プと、前記突き止められた排他ビットがセットされてい
ることから、前記第1のプロセッサが前記指定データを
変更する前記排他的権利を有すると判断するステップ
と、を含む、前記(6)記載の方法。 (8)前記第2のプロセッサに前記排他的権利を提供す
るステップが、前記第1のプロセッサを表す前記突き止
められた包含フィールド・ビットをリセットするステッ
プを含む、前記(7)記載の方法。 (9)前記第1及び第2の要求が同一のコマンドを前記
メモリ・ユニットに発行する、前記(8)記載の方法。 (10)各々がキャッシュを有する複数のプロセッサ
と、前記複数のプロセッサの各々に接続されるバスと、
前記バスに接続されるメモリ・ユニットであって、該メ
モリ・ユニットが、データを記憶する手段と、前記複数
のプロセッサから発行される前記データの変更要求を受
信する手段と、前記キャッシュが前記データのコピーを
有するか否か、及び前記キャッシュの任意の1つが前記
データを変更する排他的権利を有するか否かを示すディ
レクトリ手段と、前記ディレクトリ手段を用いて前記要
求を処理する手段と、を含む、データ処理システム。 (11)前記受信手段が、前記プロセッサの内の第1及
び第2のプロセッサからそれぞれ発行され、第1及び第
2のキャッシュに記憶される同一の指定データを変更す
るための第1及び第2の要求を受信する手段を含む、前
記(10)記載のデータ処理システム。 (12)前記処理手段が、前記第1のプロセッサに前記
指定データを変更する排他的権利を提供するように、前
記第1の要求を処理する手段と、前記第2のプロセッサ
に前記指定データの有効コピー、並びに前記指定データ
を変更する前記排他的権利を提供するように、前記第2
の要求を処理する手段と、を含む、前記(11)記載の
データ処理システム。 (13)前記ディレクトリ手段が、前記メモリ・ユニッ
トに記憶されるデータのコピーを有するキャッシュ・ラ
インのステータスを示すエントリを有するメモリ・ディ
レクトリを含む、前記(12)記載のデータ処理システ
ム。 (14)前記第1の要求を処理する手段が、前記メモリ
・ディレクトリ内で、前記指定データに対応するエント
リを突き止める手段と、前記突き止められたエントリか
ら、前記指定データのコピーが前記第1及び第2のキャ
ッシュに内在すると判断する手段と、前記第2のキャッ
シュ内の前記指定データのコピーを無効にする手段と、
前記第1のプロセッサに前記指定データを変更する前記
排他的権利を提供する手段と、を含む、前記(13)記
載のデータ処理システム。 (15)前記第2の要求を処理する手段が、前記メモリ
・ディレクトリ内で、前記エントリを突き止める手段
と、前記突き止められたエントリから、前記指定データ
のコピーが前記第1のキャッシュに内在し、前記第1の
プロセッサが前記指定データを変更する前記排他的権利
を有すると判断する手段と、前記第1のプロセッサに、
前記指定データのコピーを前記第2のプロセッサに転送
するように要求する手段と、前記第2のプロセッサに前
記指定データを変更する前記排他的権利を提供する手段
と、を含む、前記(14)記載のデータ処理システム。 (16)前記エントリの各々が、タグと、排他ビット
と、包含フィールドと、を含み、前記包含フィールドの
各ビットが、前記複数のプロセッサの内の対応する1つ
を表す、前記(15)記載のデータ処理システム。 (17)前記(14)記載の判断手段が、前記突き止め
られた排他ビットがセットされていないと判断する手段
と、前記第1及び第2のプロセッサに対応する前記突き
止められた包含フィールド・ビットがセットされている
ことから、前記指定データのコピーが前記第1及び第2
のキャッシュに内在すると判断する手段と、を含む、前
記(16)記載のデータ処理システム。 (18)前記無効手段が、前記第2のプロセッサに対応
する前記突き止められた包含フィールド・ビットをリセ
ットする手段を含む、前記(17)記載のデータ処理シ
ステム。 (19)前記第1のプロセッサに前記排他的権利を提供
する手段が、前記突き止められた排他ビットをセットす
る手段を含む、前記(18)記載のデータ処理システ
ム。 (20)前記(15)記載の判断手段が、前記第1のプ
ロセッサに対応する前記突き止められた包含フィールド
・ビットがセットされていることから、前記第1のキャ
ッシュが前記指定データのコピーを有すると判断する手
段と、前記突き止められた排他ビットがセットされてい
ることから、前記第1のプロセッサが前記指定データを
変更する前記排他的権利を有すると判断する手段と、を
含む、前記(19)記載のデータ処理システム。 (21)前記第2のプロセッサに前記排他的権利を提供
するステップが、前記第1のプロセッサに対応する前記
突き止められた包含フィールド・ビットをリセットする
手段を含む、前記(20)記載のデータ処理システム。
【図1】本発明が実施される対称マルチプロセッサ・シ
ステム(SMP)100を示す図である。
ステム(SMP)100を示す図である。
【図2】本発明による図1のメモリ・ユニットの様々な
コンポーネントを詳細に示す図である。
コンポーネントを詳細に示す図である。
【図3】本発明に従い、図1のメモリ・ユニットが複数
のストア要求を処理する様子を示すブロック図である。
のストア要求を処理する様子を示すブロック図である。
【図4】本発明に従い、図1のメモリ・ユニットが複数
のストア要求を処理する様子を示すブロック図である。
のストア要求を処理する様子を示すブロック図である。
【図5】本発明に従い、図3及び図4のメモリ・ディレ
クトリ論理によるRWITM要求の処理のステップのフ
ローチャートを示す図である。
クトリ論理によるRWITM要求の処理のステップのフ
ローチャートを示す図である。
100 対称マルチプロセッサ・システム 107 メモリ・ユニット 204 入力キュー 307 エントリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カイ・チェン アメリカ合衆国78750、テキサス州オース ティン、グランド・オーク・サークル 10515 (72)発明者 キミング・ソ アメリカ合衆国78746、テキサス州オース ティン、ウォルシュ・タールトン・レーン 2101エイ (72)発明者 ジン・チン・ワン アメリカ合衆国78717、テキサス州オース ティン、カンブリア・ドライブ 8308
Claims (21)
- 【請求項1】各々がキャッシュを有する複数のプロセッ
サを有するデータ処理システムにおいて、前記複数のプ
ロセッサから発行されるデータ変更のための要求を処理
する方法であって、 前記プロセッサの内の第1及び第2のプロセッサからそ
れぞれ発行され、第1及び第2のキャッシュに記憶され
る同一の指定データを変更するための第1及び第2の要
求を、メモリ・ユニットにおいて受信するステップと、 前記第1のプロセッサに前記指定データを変更する排他
的権利を提供するように、前記第1の要求を処理するス
テップと、 前記第2のプロセッサに前記指定データの有効コピー、
並びに前記指定データを変更する前記排他的権利を提供
するように、前記第2の要求を処理するステップと、 を含む、方法。 - 【請求項2】前記メモリ・ユニットが、該メモリ・ユニ
ットに記憶されるデータのコピーを有するキャッシュ・
ラインのステータスを示すエントリを有するメモリ・デ
ィレクトリを含み、前記第1の要求を処理するステップ
が、 前記メモリ・ディレクトリ内で、前記指定データに対応
するエントリを突き止めるステップと、 前記突き止められたエントリから、前記指定データのコ
ピーが前記第1及び第2のキャッシュに内在すると判断
するステップと、 前記第2のキャッシュ内の前記指定データのコピーを無
効にするステップと、 前記第1のプロセッサに前記指定データを変更する前記
排他的権利を提供するステップと、 を含む、請求項1記載の方法。 - 【請求項3】前記第2の要求を処理するステップが、 前記メモリ・ディレクトリ内で前記エントリを突き止め
るステップと、 前記突き止められたエントリから、前記指定データのコ
ピーが前記第1のキャッシュに内在し、前記第1のプロ
セッサが前記指定データを変更する前記排他的権利を有
すると判断するステップと、 前記第1のプロセッサに、前記指定データのコピーを前
記第2のプロセッサに転送するように要求するステップ
と、 前記第2のプロセッサに前記指定データを変更する前記
排他的権利を提供するステップと、 を含む、請求項2記載の方法。 - 【請求項4】前記エントリの各々がタグ、排他ビット、
及び包含フィールドを含み、 前記包含フィールドの各ビットが、対応する前記プロセ
ッサが前記タグにより表されるデータのコピーを有する
か否かを表し、請求項2記載の判断ステップが、 前記突き止められた排他ビットがセットされていないと
判断するステップと、 前記第1及び第2のプロセッサを表す前記包含フィール
ド・ビットがセットされていることから、前記指定デー
タのコピーが前記第1及び第2のキャッシュに内在する
と判断するステップと、 を含む、請求項3記載の方法。 - 【請求項5】前記無効ステップが、前記第2のプロセッ
サを表す前記突き止められた包含フィールド・ビットを
リセットするステップを含む、請求項4記載の方法。 - 【請求項6】前記第1のプロセッサに前記排他的権利を
提供するステップが、前記突き止められた排他ビットを
セットするステップを含む、請求項5記載の方法。 - 【請求項7】請求項3記載の判断ステップが、 前記第1のプロセッサを表す前記突き止められた包含フ
ィールド・ビットがセットされていることから、前記第
1のキャッシュが前記指定データのコピーを有すると判
断するステップと、 前記突き止められた排他ビットがセットされていること
から、前記第1のプロセッサが前記指定データを変更す
る前記排他的権利を有すると判断するステップと、 を含む、請求項6記載の方法。 - 【請求項8】前記第2のプロセッサに前記排他的権利を
提供するステップが、前記第1のプロセッサを表す前記
突き止められた包含フィールド・ビットをリセットする
ステップを含む、請求項7記載の方法。 - 【請求項9】前記第1及び第2の要求が同一のコマンド
を前記メモリ・ユニットに発行する、請求項8記載の方
法。 - 【請求項10】各々がキャッシュを有する複数のプロセ
ッサと、 前記複数のプロセッサの各々に接続されるバスと、 前記バスに接続されるメモリ・ユニットであって、該メ
モリ・ユニットが、 データを記憶する手段と、 前記複数のプロセッサから発行される前記データの変更
要求を受信する手段と、 前記キャッシュが前記データのコピーを有するか否か、
及び前記キャッシュの任意の1つが前記データを変更す
る排他的権利を有するか否かを示すディレクトリ手段
と、 前記ディレクトリ手段を用いて前記要求を処理する手段
と、 を含む、データ処理システム。 - 【請求項11】前記受信手段が、前記プロセッサの内の
第1及び第2のプロセッサからそれぞれ発行され、第1
及び第2のキャッシュに記憶される同一の指定データを
変更するための第1及び第2の要求を受信する手段を含
む、請求項10記載のデータ処理システム。 - 【請求項12】前記処理手段が、 前記第1のプロセッサに前記指定データを変更する排他
的権利を提供するように、前記第1の要求を処理する手
段と、 前記第2のプロセッサに前記指定データの有効コピー、
並びに前記指定データを変更する前記排他的権利を提供
するように、前記第2の要求を処理する手段と、 を含む、請求項11記載のデータ処理システム。 - 【請求項13】前記ディレクトリ手段が、前記メモリ・
ユニットに記憶されるデータのコピーを有するキャッシ
ュ・ラインのステータスを示すエントリを有するメモリ
・ディレクトリを含む、請求項12記載のデータ処理シ
ステム。 - 【請求項14】前記第1の要求を処理する手段が、 前記メモリ・ディレクトリ内で、前記指定データに対応
するエントリを突き止める手段と、 前記突き止められたエントリから、前記指定データのコ
ピーが前記第1及び第2のキャッシュに内在すると判断
する手段と、 前記第2のキャッシュ内の前記指定データのコピーを無
効にする手段と、 前記第1のプロセッサに前記指定データを変更する前記
排他的権利を提供する手段と、 を含む、請求項13記載のデータ処理システム。 - 【請求項15】前記第2の要求を処理する手段が、 前記メモリ・ディレクトリ内で、前記エントリを突き止
める手段と、 前記突き止められたエントリから、前記指定データのコ
ピーが前記第1のキャッシュに内在し、前記第1のプロ
セッサが前記指定データを変更する前記排他的権利を有
すると判断する手段と、 前記第1のプロセッサに、前記指定データのコピーを前
記第2のプロセッサに転送するように要求する手段と、 前記第2のプロセッサに前記指定データを変更する前記
排他的権利を提供する手段と、 を含む、請求項14記載のデータ処理システム。 - 【請求項16】前記エントリの各々が、 タグと、 排他ビットと、 包含フィールドと、 を含み、前記包含フィールドの各ビットが、前記複数の
プロセッサの内の対応する1つを表す、請求項15記載
のデータ処理システム。 - 【請求項17】請求項14記載の判断手段が、 前記突き止められた排他ビットがセットされていないと
判断する手段と、 前記第1及び第2のプロセッサに対応する前記突き止め
られた包含フィールド・ビットがセットされていること
から、前記指定データのコピーが前記第1及び第2のキ
ャッシュに内在すると判断する手段と、 を含む、請求項16記載のデータ処理システム。 - 【請求項18】前記無効手段が、前記第2のプロセッサ
に対応する前記突き止められた包含フィールド・ビット
をリセットする手段を含む、請求項17記載のデータ処
理システム。 - 【請求項19】前記第1のプロセッサに前記排他的権利
を提供する手段が、前記突き止められた排他ビットをセ
ットする手段を含む、請求項18記載のデータ処理シス
テム。 - 【請求項20】請求項15記載の判断手段が、 前記第1のプロセッサに対応する前記突き止められた包
含フィールド・ビットがセットされていることから、前
記第1のキャッシュが前記指定データのコピーを有する
と判断する手段と、 前記突き止められた排他ビットがセットされていること
から、前記第1のプロセッサが前記指定データを変更す
る前記排他的権利を有すると判断する手段と、 を含む、請求項19記載のデータ処理システム。 - 【請求項21】前記第2のプロセッサに前記排他的権利
を提供するステップが、前記第1のプロセッサに対応す
る前記突き止められた包含フィールド・ビットをリセッ
トする手段を含む、請求項20記載のデータ処理システ
ム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US55401695A | 1995-11-06 | 1995-11-06 | |
US08/554016 | 1995-11-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09160892A true JPH09160892A (ja) | 1997-06-20 |
Family
ID=24211713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8225595A Pending JPH09160892A (ja) | 1995-11-06 | 1996-08-27 | データ変更要求を処理するための方法及びシステム |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0772128A1 (ja) |
JP (1) | JPH09160892A (ja) |
KR (1) | KR970029123A (ja) |
TW (1) | TW469376B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007257637A (ja) * | 2006-03-23 | 2007-10-04 | Internatl Business Mach Corp <Ibm> | アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム |
JP2015194877A (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | 転送装置、決定方法、及びデータ処理装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265271A (ja) * | 2006-03-29 | 2007-10-11 | Nec Corp | ストレージ装置、データ配置方法およびプログラム |
Family Cites Families (2)
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 |
US5655100A (en) * | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
-
1996
- 1996-03-04 TW TW085102616A patent/TW469376B/zh not_active IP Right Cessation
- 1996-08-27 JP JP8225595A patent/JPH09160892A/ja active Pending
- 1996-09-24 KR KR1019960041952A patent/KR970029123A/ko not_active Application Discontinuation
- 1996-10-15 EP EP96307490A patent/EP0772128A1/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007257637A (ja) * | 2006-03-23 | 2007-10-04 | Internatl Business Mach Corp <Ibm> | アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム |
JP2012181860A (ja) * | 2006-03-23 | 2012-09-20 | Internatl Business Mach Corp <Ibm> | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム |
JP2015194877A (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | 転送装置、決定方法、及びデータ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
KR970029123A (ko) | 1997-06-26 |
EP0772128A1 (en) | 1997-05-07 |
TW469376B (en) | 2001-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6636906B1 (en) | Apparatus and method for ensuring forward progress in coherent I/O systems | |
KR100194253B1 (ko) | 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템 | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US6779086B2 (en) | Symmetric multiprocessor systems with an independent super-coherent cache directory | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
US5297269A (en) | Cache coherency protocol for multi processor computer system | |
US6785774B2 (en) | High performance symmetric multiprocessing systems via super-coherent data mechanisms | |
US7996625B2 (en) | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture | |
US6704844B2 (en) | Dynamic hardware and software performance optimizations for super-coherent SMP systems | |
US7284097B2 (en) | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes | |
JP2013058225A (ja) | マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態 | |
JPH10149342A (ja) | プリフェッチ動作を実行するマルチプロセス・システム | |
JPH10143482A (ja) | エフィシェントな書込み動作を実行するマルチプロセッサ・システム | |
JPH10340227A (ja) | ローカル・グローバル・アドレス・スペース及びマルチアクセス・モードを用いたマルチプロセッサ・コンピュータ・システム | |
JPH10143476A (ja) | プリフェッチ動作を開始するソフトウエアを実行するマルチプロセス・システム | |
JPH10134014A (ja) | 3ホップ通信プロトコルを用いたマルチプロセス・システム | |
US6658539B2 (en) | Super-coherent data mechanisms for shared caches in a multiprocessing system | |
JP2002259211A (ja) | キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット | |
EP2122470B1 (en) | System and method for implementing an enhanced hover state with active prefetches | |
US8332592B2 (en) | Graphics processor with snoop filter | |
US5987544A (en) | System interface protocol with optional module cache | |
US6763435B2 (en) | Super-coherent multiprocessor system bus protocols | |
US6484241B2 (en) | Multiprocessor computer system with sectored cache line system bus protocol mechanism | |
JPH09160892A (ja) | データ変更要求を処理するための方法及びシステム | |
US6553462B2 (en) | Multiprocessor computer system with sectored cache line mechanism for load and store operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RVOP | Cancellation by post-grant opposition |