JPH10187645A - プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム - Google Patents
プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システムInfo
- Publication number
- JPH10187645A JPH10187645A JP9208231A JP20823197A JPH10187645A JP H10187645 A JPH10187645 A JP H10187645A JP 9208231 A JP9208231 A JP 9208231A JP 20823197 A JP20823197 A JP 20823197A JP H10187645 A JPH10187645 A JP H10187645A
- Authority
- JP
- Japan
- Prior art keywords
- coherency
- node
- transaction
- address
- bus
- 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
Classifications
-
- 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
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 SRAMモジュールの数を最小限に抑えるた
めアクセス権の記憶専用に使用するメモリを削減する。 【解決手段】1つのサブノード(コントローラ・サブノ
ード)は、処理ノードとコンピュータ・システムの残り
の部分との間のインタフェースを管理する。他のサブノ
ード(スヌーパ・サブノード)は、コヒーレンシ単位に
対するアクセス権をメモリ内に記憶するために使用され
る。処理ノードのメモリは論理的にいくつかの部分に分
割され、各サブノードは、特定のメモリ部分に対するア
クセス権を記憶する。処理ノード内でトランザクション
が開始されると、そのトランザクションの影響を受ける
コヒーレンシ単位に対するアクセス権を記憶しているサ
ブノードは、アクセス権を分析し、トランザクションが
ローカルに処理ノード内で完了できるかどうかを判定す
る。
めアクセス権の記憶専用に使用するメモリを削減する。 【解決手段】1つのサブノード(コントローラ・サブノ
ード)は、処理ノードとコンピュータ・システムの残り
の部分との間のインタフェースを管理する。他のサブノ
ード(スヌーパ・サブノード)は、コヒーレンシ単位に
対するアクセス権をメモリ内に記憶するために使用され
る。処理ノードのメモリは論理的にいくつかの部分に分
割され、各サブノードは、特定のメモリ部分に対するア
クセス権を記憶する。処理ノード内でトランザクション
が開始されると、そのトランザクションの影響を受ける
コヒーレンシ単位に対するアクセス権を記憶しているサ
ブノードは、アクセス権を分析し、トランザクションが
ローカルに処理ノード内で完了できるかどうかを判定す
る。
Description
【0001】関連特許出願の相互参照本特許出願は、開
示が引用によって本明細書に組み込まれた、下記の関連
特許出願に関係するものである。 1.本出願と同時出願されたHagersten等の
「ExtendingThe Coherence D
omain Beyond A Computer S
ystem Bus」(参照番号P990)。 2.本出願と同時出願されたHagerstenの「M
ethod AndApparatus Optimi
zing Global Data Replies
In A Computer System」(参照番
号P991)。 3.本出願と同時出願されたHagersten等の
「Method AndApparatus Prov
iding Short Latency Round
−Robin Arbitration For Ac
cess ToA Shared Resource」
(参照番号P992)。 4.本出願と同時出願されたSinghal等の「Im
plementingSnooping On A S
plit−Transaction Computer
System Bus」(参照番号P993)。 5.本出願と同時出願されたSinghal等の「Sp
lit Transaction Snooping
Bus Protocol」(参照番号P989)。 6.本出願と同時出願されたHeller等の「Int
erconnection Subsystem Fo
r A Multiprocessor Comput
er System With A Small Nu
mber OfProcessors Using A
Switching Arrangement Of
Limited Degree」(参照番号P160
9)。 7.本出願と同時出願されたWade等の「Syste
m And Method For Performi
ng Deadlock Free Message
Transfer In Cyclic Multi−
Hop Digital Computer Netw
ork」(参照番号P1572)。 8.本出願と同時出願されたCassiday等の「S
ynchronization System And
Method For Plesiochronou
s Signaling」(参照符号P1593)。 9.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r A Coherence Transformer
For Connecting Computer
System Coherence Domains」
(参照番号P1519)。 10.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r A Coherence Transformer
With Limited Memory For
Connecting Computer Syste
m Coherence Domains」(参照番号
P1530)。 11.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r Sharing Data Objects In
A Computer System」(参照番号P
1463)。 12.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r A Directory−Less Memory
Access Protocol In A Dis
tributed Shared Memory Co
mputer System」(参照番号P153
1)。 13.本出願と同時出願されたHagersten等の
「Hybrid Memory Access Pro
tocol In A Distributed Sh
ared Memory Computer Syst
em」(参照番号P1550)。 14.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r Substantially Memory−Le
ss Coherence Transformer
For Connecting Computer S
ystem」(参照番号P1529)。 15.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Including An EnhancedBlo
cking Mechanism For Read
To Share Transactions In
A NUMA Mode」(参照番号P1786)。 16.本出願と同時出願されたGuzovskiy等の
「EncodingMethod For Direc
tory State In CacheCohere
nt Distributed Shared Mem
ory System」(参照番号P1520)。 17.本出願と同時出願されたNesheim等の「S
oftware Use Of Address Tr
anslation Mechanism」(参照番号
P1560)。 18.本出願と同時出願されたLowenstein等
の「Directory−Based,Shared−
Memory,Scaleable Multipro
cessor Computer System Ha
ving Deadlock−free Transa
ction Flow Sans Flow Cont
rol Protocol」(参照番号P1561)。 19.本出願と同時出願されたNesheimの「Ma
intainingA Sequential Sto
red Order (SSO) In ANon−S
SO Machine」(参照番号P1562)。 20.本出願と同時出願されたWong−Chanの
「Node To Node Interrupt M
echanism In A Multiproces
sor System」(参照番号P1587)。 21.1996年4月8日に出願された、「Deter
ministic Distributed Mult
icache Coherence Protoco
l」と題するHagersten等の出願第08/63
0703号。 22.1995年12月22日に出願された、「A H
ybrid NUMAComa Cashing Sy
stem And Methods ForSelec
ting Between The Caching
Modes」と題するHagersten等の出願第0
8/577283号。 23.1995年12月22日に出願された、「A H
ybrid NUMAComa Cashing Sy
stem And Methods ForSelec
ting Between The Caching
Modes」と題するWood等の出願第08/575
787号。 24.本出願と同時出願されたHagersten等の
「Flusing Of Cache Memory
In A Computer System」(参照番
号P1416)。 25.本出願と同時出願されたHagersten等の
「EfficientAllocation Of C
ache Memory Space InA Com
puter System」(参照番号P1576)。 26.本出願と同時出願されたHagersten等の
「EfficientSelection Of Me
mory Storage Modes In A C
omputer System」(参照番号P172
6)。 27.本出願と同時出願されたHagersten等の
「Skip−level Write−through
In A Multi−level Memory
Of A Computer System」(参照番
号P1736)。 28.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Configured to PerformEff
icient Write Operations」
(参照番号P1500)。 29.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Configured to PerformEff
icient Block Copy Operati
ons」(参照番号P1515)。 30.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Including An Apparatus F
or Optimizing Spin−Lock O
perations」(参照番号P1525)。 31.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Detectand
Efficiently Provide for M
igratory Data Access Patt
erns」(参照番号P1555)。 32.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform Pr
efetching Operations」(参照番
号P1571)。 33.本出願と同時に出願されたHagersten等
の「A Multiprocessing Syste
m Configured to Perform S
ynchronization Operation
s」(参照番号P1551)。 34.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Having Coherency−Related
Error Logging Capabiliti
es」(参照番号P1719)。 35.本出願と同時出願されたHagerstenの
「Multiprocessing System E
mploying A Three−Hop Comm
unication Protocol」(参照番号P
1785)。 36.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform So
ftware Initiated Prefetch
Operations」(参照番号P1787)。 37.本出願と同時出願されたHagersten等の
「A Multiprocessing Comput
er System Employing Local
and Global Spaces and Mu
ltipleAccee Modes」(参照番号P1
784)。 38.本出願と同時出願されたHagersten等の
「Multiprocessing System E
mploying A CoherencyProto
col Including A Reply Cou
nt」(参照番号P1570)。
示が引用によって本明細書に組み込まれた、下記の関連
特許出願に関係するものである。 1.本出願と同時出願されたHagersten等の
「ExtendingThe Coherence D
omain Beyond A Computer S
ystem Bus」(参照番号P990)。 2.本出願と同時出願されたHagerstenの「M
ethod AndApparatus Optimi
zing Global Data Replies
In A Computer System」(参照番
号P991)。 3.本出願と同時出願されたHagersten等の
「Method AndApparatus Prov
iding Short Latency Round
−Robin Arbitration For Ac
cess ToA Shared Resource」
(参照番号P992)。 4.本出願と同時出願されたSinghal等の「Im
plementingSnooping On A S
plit−Transaction Computer
System Bus」(参照番号P993)。 5.本出願と同時出願されたSinghal等の「Sp
lit Transaction Snooping
Bus Protocol」(参照番号P989)。 6.本出願と同時出願されたHeller等の「Int
erconnection Subsystem Fo
r A Multiprocessor Comput
er System With A Small Nu
mber OfProcessors Using A
Switching Arrangement Of
Limited Degree」(参照番号P160
9)。 7.本出願と同時出願されたWade等の「Syste
m And Method For Performi
ng Deadlock Free Message
Transfer In Cyclic Multi−
Hop Digital Computer Netw
ork」(参照番号P1572)。 8.本出願と同時出願されたCassiday等の「S
ynchronization System And
Method For Plesiochronou
s Signaling」(参照符号P1593)。 9.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r A Coherence Transformer
For Connecting Computer
System Coherence Domains」
(参照番号P1519)。 10.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r A Coherence Transformer
With Limited Memory For
Connecting Computer Syste
m Coherence Domains」(参照番号
P1530)。 11.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r Sharing Data Objects In
A Computer System」(参照番号P
1463)。 12.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r A Directory−Less Memory
Access Protocol In A Dis
tributed Shared Memory Co
mputer System」(参照番号P153
1)。 13.本出願と同時出願されたHagersten等の
「Hybrid Memory Access Pro
tocol In A Distributed Sh
ared Memory Computer Syst
em」(参照番号P1550)。 14.本出願と同時出願されたHagersten等の
「Methods And Apparatus Fo
r Substantially Memory−Le
ss Coherence Transformer
For Connecting Computer S
ystem」(参照番号P1529)。 15.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Including An EnhancedBlo
cking Mechanism For Read
To Share Transactions In
A NUMA Mode」(参照番号P1786)。 16.本出願と同時出願されたGuzovskiy等の
「EncodingMethod For Direc
tory State In CacheCohere
nt Distributed Shared Mem
ory System」(参照番号P1520)。 17.本出願と同時出願されたNesheim等の「S
oftware Use Of Address Tr
anslation Mechanism」(参照番号
P1560)。 18.本出願と同時出願されたLowenstein等
の「Directory−Based,Shared−
Memory,Scaleable Multipro
cessor Computer System Ha
ving Deadlock−free Transa
ction Flow Sans Flow Cont
rol Protocol」(参照番号P1561)。 19.本出願と同時出願されたNesheimの「Ma
intainingA Sequential Sto
red Order (SSO) In ANon−S
SO Machine」(参照番号P1562)。 20.本出願と同時出願されたWong−Chanの
「Node To Node Interrupt M
echanism In A Multiproces
sor System」(参照番号P1587)。 21.1996年4月8日に出願された、「Deter
ministic Distributed Mult
icache Coherence Protoco
l」と題するHagersten等の出願第08/63
0703号。 22.1995年12月22日に出願された、「A H
ybrid NUMAComa Cashing Sy
stem And Methods ForSelec
ting Between The Caching
Modes」と題するHagersten等の出願第0
8/577283号。 23.1995年12月22日に出願された、「A H
ybrid NUMAComa Cashing Sy
stem And Methods ForSelec
ting Between The Caching
Modes」と題するWood等の出願第08/575
787号。 24.本出願と同時出願されたHagersten等の
「Flusing Of Cache Memory
In A Computer System」(参照番
号P1416)。 25.本出願と同時出願されたHagersten等の
「EfficientAllocation Of C
ache Memory Space InA Com
puter System」(参照番号P1576)。 26.本出願と同時出願されたHagersten等の
「EfficientSelection Of Me
mory Storage Modes In A C
omputer System」(参照番号P172
6)。 27.本出願と同時出願されたHagersten等の
「Skip−level Write−through
In A Multi−level Memory
Of A Computer System」(参照番
号P1736)。 28.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Configured to PerformEff
icient Write Operations」
(参照番号P1500)。 29.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Configured to PerformEff
icient Block Copy Operati
ons」(参照番号P1515)。 30.本出願と同時出願されたHagerstenの
「A Multiprocessing System
Including An Apparatus F
or Optimizing Spin−Lock O
perations」(参照番号P1525)。 31.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Detectand
Efficiently Provide for M
igratory Data Access Patt
erns」(参照番号P1555)。 32.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform Pr
efetching Operations」(参照番
号P1571)。 33.本出願と同時に出願されたHagersten等
の「A Multiprocessing Syste
m Configured to Perform S
ynchronization Operation
s」(参照番号P1551)。 34.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Having Coherency−Related
Error Logging Capabiliti
es」(参照番号P1719)。 35.本出願と同時出願されたHagerstenの
「Multiprocessing System E
mploying A Three−Hop Comm
unication Protocol」(参照番号P
1785)。 36.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform So
ftware Initiated Prefetch
Operations」(参照番号P1787)。 37.本出願と同時出願されたHagersten等の
「A Multiprocessing Comput
er System Employing Local
and Global Spaces and Mu
ltipleAccee Modes」(参照番号P1
784)。 38.本出願と同時出願されたHagersten等の
「Multiprocessing System E
mploying A CoherencyProto
col Including A Reply Cou
nt」(参照番号P1570)。
【0002】
【発明の属する技術分野】本発明は、多重処理コンピュ
ータ・システムの分野に関し、詳細には、分散共用メモ
リ多重処理コンピュータ・システム内の処理ノードの複
数のサブノード内にコヒーレンシ状態を記憶することに
関する。
ータ・システムの分野に関し、詳細には、分散共用メモ
リ多重処理コンピュータ・システム内の処理ノードの複
数のサブノード内にコヒーレンシ状態を記憶することに
関する。
【0003】
【従来の技術】多重処理コンピュータ・システムは、コ
ンピューティング・タスクを実行するために使用できる
2つ以上のプロセッサを含む。1つのプロセッサ上で特
定のコンピューティング・タスクを実行し、同時に他の
プロセッサが、関係のないコンピューティング・タスク
を実行することができる。別法として、特定のコンピュ
ーティング・タスクの構成要素を複数のプロセッサ間で
分散し、コンピューティング・タスク全体を実行するの
に必要な時間を短縮することができる。一般的に言え
ば、プロセッサは、1つまたは複数のオペランドに対す
る演算を実行して結果を生成するように構成された装置
である。演算は、プロセッサによって実行される命令に
応答して実行される。
ンピューティング・タスクを実行するために使用できる
2つ以上のプロセッサを含む。1つのプロセッサ上で特
定のコンピューティング・タスクを実行し、同時に他の
プロセッサが、関係のないコンピューティング・タスク
を実行することができる。別法として、特定のコンピュ
ーティング・タスクの構成要素を複数のプロセッサ間で
分散し、コンピューティング・タスク全体を実行するの
に必要な時間を短縮することができる。一般的に言え
ば、プロセッサは、1つまたは複数のオペランドに対す
る演算を実行して結果を生成するように構成された装置
である。演算は、プロセッサによって実行される命令に
応答して実行される。
【0004】市販の多重処理コンピュータ・システムで
広く使用されているアーキテクチャは、対称型マルチプ
ロセッサ(SMP)アーキテクチャである。通常、SM
Pコンピュータ・システムは、キャッシュ階層を通じて
共用バスに接続された複数のプロセッサを備える。共用
バスにはメモリも接続され、メモリはシステム内のプロ
セッサ間で共用される。メモリ内の特定のメモリ位置へ
のアクセスは、他の特定のメモリ位置へのアクセスと同
様な時間で行われる。メモリ内の各位置に一様にアクセ
スできるので、この構造はしばしば、一様なメモリ・ア
ーキテクチャ(UMA)と呼ばれる。
広く使用されているアーキテクチャは、対称型マルチプ
ロセッサ(SMP)アーキテクチャである。通常、SM
Pコンピュータ・システムは、キャッシュ階層を通じて
共用バスに接続された複数のプロセッサを備える。共用
バスにはメモリも接続され、メモリはシステム内のプロ
セッサ間で共用される。メモリ内の特定のメモリ位置へ
のアクセスは、他の特定のメモリ位置へのアクセスと同
様な時間で行われる。メモリ内の各位置に一様にアクセ
スできるので、この構造はしばしば、一様なメモリ・ア
ーキテクチャ(UMA)と呼ばれる。
【0005】プロセッサは多くの場合、内部キャッシュ
と共に構成され、SMPコンピュータ・システム内のプ
ロセッサと共用バスとの間のキャッシュ階層には通常、
1つまたは複数のキャッシュが含まれる。特定のメイン
・メモリ・アドレスに存在するデータの複数のコピーを
これらのキャッシュに記憶することができる。特定のア
ドレスが所与の時間に1つのデータ値しか記憶しない共
用メモリ・モデルを維持するために、共用バス・コンピ
ュータ・システムはキャッシュ・コヒーレンシを使用す
る。一般的に言えば、特定のメモリ・アドレスに記憶さ
れているデータに対する演算の効果がキャッシュ階層内
のデータの各コピーに反映される場合、その演算はコヒ
ーレントである。たとえば、特定のメモリ・アドレスに
記憶されているデータを更新したときには、前のデータ
のコピーを記憶しているキャッシュにその更新を供給す
ることができる。別法として、特定のメモリ・アドレス
へのその後のアクセスによって、更新済みコピーがメイ
ン・メモリから転送されるように、前のデータのコピー
をキャッシュ内で無効化することができる。共用バス・
システムの場合、通常、スヌープ・バス・プロトコルが
使用される。共用バス上で実行される各コヒーレント・
トランザクションは、キャッシュ内のデータと突き合わ
せて調べられる(あるいは「スヌープ」される)。影響
を受けるデータのコピーが見つかった場合、コヒーレン
ト・トランザクションに応答して、そのデータを含むキ
ャッシュ・ラインの状態を更新することができる。
と共に構成され、SMPコンピュータ・システム内のプ
ロセッサと共用バスとの間のキャッシュ階層には通常、
1つまたは複数のキャッシュが含まれる。特定のメイン
・メモリ・アドレスに存在するデータの複数のコピーを
これらのキャッシュに記憶することができる。特定のア
ドレスが所与の時間に1つのデータ値しか記憶しない共
用メモリ・モデルを維持するために、共用バス・コンピ
ュータ・システムはキャッシュ・コヒーレンシを使用す
る。一般的に言えば、特定のメモリ・アドレスに記憶さ
れているデータに対する演算の効果がキャッシュ階層内
のデータの各コピーに反映される場合、その演算はコヒ
ーレントである。たとえば、特定のメモリ・アドレスに
記憶されているデータを更新したときには、前のデータ
のコピーを記憶しているキャッシュにその更新を供給す
ることができる。別法として、特定のメモリ・アドレス
へのその後のアクセスによって、更新済みコピーがメイ
ン・メモリから転送されるように、前のデータのコピー
をキャッシュ内で無効化することができる。共用バス・
システムの場合、通常、スヌープ・バス・プロトコルが
使用される。共用バス上で実行される各コヒーレント・
トランザクションは、キャッシュ内のデータと突き合わ
せて調べられる(あるいは「スヌープ」される)。影響
を受けるデータのコピーが見つかった場合、コヒーレン
ト・トランザクションに応答して、そのデータを含むキ
ャッシュ・ラインの状態を更新することができる。
【0006】残念なことに、共用バス・アーキテクチャ
は、多重処理コンピュータ・システムの有用性を制限す
るいくつかの欠点を有する。バスはピーク帯域幅を利用
することができる(たとえば、バスを介して転送できる
バイト数/秒)。バスに追加プロセッサを取り付ける
と、プロセッサにデータおよび命令を供給するのに必要
な帯域幅がピーク・バス帯域幅を超えることがある。い
くつかのプロセッサが使用可能なバス帯域幅を待たなけ
ればならないので、プロセッサの帯域幅要件が使用可能
なバス帯域幅を超えるとコンピュータ・システムの性能
が影響を受ける。
は、多重処理コンピュータ・システムの有用性を制限す
るいくつかの欠点を有する。バスはピーク帯域幅を利用
することができる(たとえば、バスを介して転送できる
バイト数/秒)。バスに追加プロセッサを取り付ける
と、プロセッサにデータおよび命令を供給するのに必要
な帯域幅がピーク・バス帯域幅を超えることがある。い
くつかのプロセッサが使用可能なバス帯域幅を待たなけ
ればならないので、プロセッサの帯域幅要件が使用可能
なバス帯域幅を超えるとコンピュータ・システムの性能
が影響を受ける。
【0007】また、共用バスにより多くのプロセッサを
追加するとバスに対する容量負荷が増大し、場合によっ
てはバスの物理長が増加する。容量負荷が増大しバス長
が延びると、バスを横切って信号が伝搬する際の遅延が
長くなる。伝搬遅延が長くなるので、トランザクション
の実行時間が長くなる。したがって、より多くのプロセ
ッサを追加するほど、バスのピーク帯域幅が減少する。
追加するとバスに対する容量負荷が増大し、場合によっ
てはバスの物理長が増加する。容量負荷が増大しバス長
が延びると、バスを横切って信号が伝搬する際の遅延が
長くなる。伝搬遅延が長くなるので、トランザクション
の実行時間が長くなる。したがって、より多くのプロセ
ッサを追加するほど、バスのピーク帯域幅が減少する。
【0008】これらの問題は、プロセッサの動作周波数
および性能が引き続き向上していることによってさらに
深刻化する。より高い周波数およびより高度なプロセッ
サ・マイクロアーキテクチャによって性能が向上するの
で、帯域幅要件は、プロセッサの数が同じであっても前
のプロセッサ世代より高くなる。したがって、前に多重
処理コンピュータ・システムに十分な帯域幅を与えたバ
スが、より高性能のプロセッサを使用する同様なコンピ
ュータ・システムには不十分であることがある。
および性能が引き続き向上していることによってさらに
深刻化する。より高い周波数およびより高度なプロセッ
サ・マイクロアーキテクチャによって性能が向上するの
で、帯域幅要件は、プロセッサの数が同じであっても前
のプロセッサ世代より高くなる。したがって、前に多重
処理コンピュータ・システムに十分な帯域幅を与えたバ
スが、より高性能のプロセッサを使用する同様なコンピ
ュータ・システムには不十分であることがある。
【0009】多重処理コンピュータ・システム用の他の
構造は、分散共用メモリ・アーキテクチャである。分散
共用メモリ・アーキテクチャは、内部にプロセッサおよ
びメモリが存在する複数のノードを含む。複数のノード
は、その間の結合されたネットワークを介して通信す
る。全体的に考えると、複数のノード内に含まれるメモ
リは、コンピュータ・システムの共用メモリを形成す
る。通常、ディレクトリを使用して、どのノードが特定
のアドレスに対応するデータのキャッシュ・コピーを有
するかが識別される。ディレクトリを調べることによっ
てコヒーレンシ活動を生成することができる。
構造は、分散共用メモリ・アーキテクチャである。分散
共用メモリ・アーキテクチャは、内部にプロセッサおよ
びメモリが存在する複数のノードを含む。複数のノード
は、その間の結合されたネットワークを介して通信す
る。全体的に考えると、複数のノード内に含まれるメモ
リは、コンピュータ・システムの共用メモリを形成す
る。通常、ディレクトリを使用して、どのノードが特定
のアドレスに対応するデータのキャッシュ・コピーを有
するかが識別される。ディレクトリを調べることによっ
てコヒーレンシ活動を生成することができる。
【0010】分散共用メモリ・システムは、スケーリン
グ可能であり、共用バス・アーキテクチャの制限を解消
する。多くのプロセッサ・アクセスはノード内で完了す
るので、通常、ノードがネットワーク上で有する帯域幅
要件は、共用バス・アーキテクチャが共用バス上で与え
なければならない帯域幅要件よりもずっと低い。ノード
は、高いクロック周波数および帯域幅で動作し、必要に
応じてネットワークにアクセスすることができる。ノー
ドのローカル帯域幅に影響を与えずにネットワークに追
加ノードを追加することができる。その代わり、ネット
ワーク帯域幅のみが影響を受ける。
グ可能であり、共用バス・アーキテクチャの制限を解消
する。多くのプロセッサ・アクセスはノード内で完了す
るので、通常、ノードがネットワーク上で有する帯域幅
要件は、共用バス・アーキテクチャが共用バス上で与え
なければならない帯域幅要件よりもずっと低い。ノード
は、高いクロック周波数および帯域幅で動作し、必要に
応じてネットワークにアクセスすることができる。ノー
ドのローカル帯域幅に影響を与えずにネットワークに追
加ノードを追加することができる。その代わり、ネット
ワーク帯域幅のみが影響を受ける。
【0011】多くの分散共用メモリ・システムでは、ノ
ード内に含めることのできるメモリが限られている。こ
の制限は、メモリを形成するためにノードとして構成す
ることのできるメモリ・モジュール(業界で広く使用さ
れているダイナミック・ランダム・アクセス・メモリ
(DRAM)モジュールなど)の数によるものではな
く、特定のコヒーレンシ単位に対するノードのアクセス
権をメモリ内に記憶するために使用できるメモリの量に
よるものである。システム全体のメモリ・コヒーレンシ
を維持するには、特定のノードに与えられるアクセス権
をそのノードによって維持しければならない。しかし、
ノードは通常、高速内部通信を使用し、そのため、アク
セス権には非常に迅速にアクセスできなければならな
い。しかし、DRAMは通常、高速アクセスには適して
いない。その代わりに、アクセス権を記憶するには通
常、スタティック・ランダム・アクセス・メモリ(SR
AM)が使用される。
ード内に含めることのできるメモリが限られている。こ
の制限は、メモリを形成するためにノードとして構成す
ることのできるメモリ・モジュール(業界で広く使用さ
れているダイナミック・ランダム・アクセス・メモリ
(DRAM)モジュールなど)の数によるものではな
く、特定のコヒーレンシ単位に対するノードのアクセス
権をメモリ内に記憶するために使用できるメモリの量に
よるものである。システム全体のメモリ・コヒーレンシ
を維持するには、特定のノードに与えられるアクセス権
をそのノードによって維持しければならない。しかし、
ノードは通常、高速内部通信を使用し、そのため、アク
セス権には非常に迅速にアクセスできなければならな
い。しかし、DRAMは通常、高速アクセスには適して
いない。その代わりに、アクセス権を記憶するには通
常、スタティック・ランダム・アクセス・メモリ(SR
AM)が使用される。
【0012】
【発明が解決しようとする課題】SRAMモジュール
は、アクセス権を記憶する際に使用するのに適した速度
で応答できるが、他の欠点を有する。SRAMモジュー
ルは、通常DRAMが有する密度を有さない。言い換え
れば、特定の数のDRAMモジュールと同じ数のビット
を記憶するには、ずっと多くの数のSRAMモジュール
を使用しなければならない。残念なことに、SRAMモ
ジュールの密度が不足しているので、ノード内で行われ
るトランザクションからアクセスされるコヒーレンシ単
位に対応するアクセス権を記憶し、検索し、分析するた
めにSRAMモジュールとのインタフェースをとる制御
ロジックを収納するモジュール上のピンが増加する。し
たがって、使用できるSRAMモジュールの数は、制御
ロジック・モジュール上で使用できるピンの数によって
制限される。したがって、ノードに記憶できるアクセス
権の数(したがって、コヒーレンシ単位の数)は限られ
ている。また、SRAMモジュールはDRAMモジュー
ルよりもずっと高価である。コンピュータ・システムの
コストを最小限に抑えるには、含まれるSRAMモジュ
ールの数を最小限に抑えることが重要である。
は、アクセス権を記憶する際に使用するのに適した速度
で応答できるが、他の欠点を有する。SRAMモジュー
ルは、通常DRAMが有する密度を有さない。言い換え
れば、特定の数のDRAMモジュールと同じ数のビット
を記憶するには、ずっと多くの数のSRAMモジュール
を使用しなければならない。残念なことに、SRAMモ
ジュールの密度が不足しているので、ノード内で行われ
るトランザクションからアクセスされるコヒーレンシ単
位に対応するアクセス権を記憶し、検索し、分析するた
めにSRAMモジュールとのインタフェースをとる制御
ロジックを収納するモジュール上のピンが増加する。し
たがって、使用できるSRAMモジュールの数は、制御
ロジック・モジュール上で使用できるピンの数によって
制限される。したがって、ノードに記憶できるアクセス
権の数(したがって、コヒーレンシ単位の数)は限られ
ている。また、SRAMモジュールはDRAMモジュー
ルよりもずっと高価である。コンピュータ・システムの
コストを最小限に抑えるには、含まれるSRAMモジュ
ールの数を最小限に抑えることが重要である。
【0013】少なくとも上記の理由で、アクセス権を記
憶するのに必要なメモリの量のために、ノード内に含め
ることのできるメイン・メモリの数が制限される恐れが
ある。さらに、最大量よりも少ないメモリをノードに含
める場合は、それに応じてアクセス権の記憶専用に使用
するメモリを削減することが望ましい。また、コンピュ
ータ・システムを製造した後に所与のノード内のメモリ
の量を更新できることが望ましい。したがって、アクセ
ス権を記憶するために使用されるメモリの量も同様に増
加できなければならない。
憶するのに必要なメモリの量のために、ノード内に含め
ることのできるメイン・メモリの数が制限される恐れが
ある。さらに、最大量よりも少ないメモリをノードに含
める場合は、それに応じてアクセス権の記憶専用に使用
するメモリを削減することが望ましい。また、コンピュ
ータ・システムを製造した後に所与のノード内のメモリ
の量を更新できることが望ましい。したがって、アクセ
ス権を記憶するために使用されるメモリの量も同様に増
加できなければならない。
【0014】
【課題を解決するための手段】上記で概略的に説明した
問題は主として、本発明によるコンピュータ・システム
によって解決される。コンピュータ・システムは、それ
ぞれ、1つまたは複数のサブノードを含む、1つまたは
複数の処理ノードを含む。1つのサブノード(コントロ
ーラ・サブノード)は、処理ノードとコンピュータ・シ
ステムの残りの部分との間のインタフェースを管理す
る。他のサブノード(スヌーパ・サブノード)は、コヒ
ーレンシ単位に対するアクセス権をメモリ内に記憶する
ために使用される。処理ノードのメモリは論理的にいく
つかの部分に分割され、各サブノードは、特定のメモリ
部分に対するアクセス権を記憶する。処理ノード内でト
ランザクションが開始されると、そのトランザクション
の影響を受けるコヒーレンシ単位に対するアクセス権を
記憶しているサブノードは、アクセス権を分析し、トラ
ンザクションがローカルに処理ノード内で完了できるか
どうかを判定する。コヒーレンシ活動が必要である場
合、サブノードは無視信号をアサートし、十分なアクセ
ス権を得るためにコヒーレンシ活動が実行される間トラ
ンザクションを遅延させる。
問題は主として、本発明によるコンピュータ・システム
によって解決される。コンピュータ・システムは、それ
ぞれ、1つまたは複数のサブノードを含む、1つまたは
複数の処理ノードを含む。1つのサブノード(コントロ
ーラ・サブノード)は、処理ノードとコンピュータ・シ
ステムの残りの部分との間のインタフェースを管理す
る。他のサブノード(スヌーパ・サブノード)は、コヒ
ーレンシ単位に対するアクセス権をメモリ内に記憶する
ために使用される。処理ノードのメモリは論理的にいく
つかの部分に分割され、各サブノードは、特定のメモリ
部分に対するアクセス権を記憶する。処理ノード内でト
ランザクションが開始されると、そのトランザクション
の影響を受けるコヒーレンシ単位に対するアクセス権を
記憶しているサブノードは、アクセス権を分析し、トラ
ンザクションがローカルに処理ノード内で完了できるか
どうかを判定する。コヒーレンシ活動が必要である場
合、サブノードは無視信号をアサートし、十分なアクセ
ス権を得るためにコヒーレンシ活動が実行される間トラ
ンザクションを遅延させる。
【0015】アクセス権は、コヒーレンシ活動が実行さ
れたトランザクションの再発行と並行して更新される。
このように、更新されたアクセス権は、(再発行トラン
ザクションを実行する)コントローラ・サブノードとは
異なるサブノードに記憶される場合でも、その後のトラ
ンザクションによって使用することができる。一実施態
様では、更新されたアクセス権は、再発行トランザクシ
ョンの1つのアドレス・フェーズ内に搬送される。1つ
のアドレス・フェーズ内のバイトマスク・フィールドが
使用される。
れたトランザクションの再発行と並行して更新される。
このように、更新されたアクセス権は、(再発行トラン
ザクションを実行する)コントローラ・サブノードとは
異なるサブノードに記憶される場合でも、その後のトラ
ンザクションによって使用することができる。一実施態
様では、更新されたアクセス権は、再発行トランザクシ
ョンの1つのアドレス・フェーズ内に搬送される。1つ
のアドレス・フェーズ内のバイトマスク・フィールドが
使用される。
【0016】アクセス権記憶域を複数のサブノードに分
割することによって、サブノードを追加し、処理ノード
内に記憶できるアクセス権の数を増加させることができ
る。したがって、(コヒーレンシ単位で測定される)メ
モリの量を、1つのサブノードで管理できるコヒーレン
シ単位の数よりも多くすることができる。このコンピュ
ータ・システムは、融通性と再構成可能性が高いので有
利である。たとえば、少量のメモリを含むコンピュータ
・システムを購入し、後で比較的に容易にそれよりも多
くのメモリに更新することができる。
割することによって、サブノードを追加し、処理ノード
内に記憶できるアクセス権の数を増加させることができ
る。したがって、(コヒーレンシ単位で測定される)メ
モリの量を、1つのサブノードで管理できるコヒーレン
シ単位の数よりも多くすることができる。このコンピュ
ータ・システムは、融通性と再構成可能性が高いので有
利である。たとえば、少量のメモリを含むコンピュータ
・システムを購入し、後で比較的に容易にそれよりも多
くのメモリに更新することができる。
【0017】また、アクセス権記憶域を分割することに
よって、高速であるが粗なSRAM型メモリにアクセス
権を記憶する物理的な問題が解決される。各サブノード
は、ある数(たとえば、2)のSRAMバンクと共に構
成することができる。記憶すべきアクセス権の数のため
に、このある数よりも多くのバンクが必要であるとき
は、他のサブノードを追加することができる。このよう
に、所与のサブノード内の制御ロジックが接続される信
号線の数は、単一のサブノードを使用する場合よりも少
ない数に限られる。必要なピンの数が最小限に抑えられ
るので、制御ロジックは市販のパッケージングを使用で
きるので有利である。さらに、高速SRAMを使用し
て、高速ノード内通信を用いたアクセスに関する速度要
件を満たすことができる。
よって、高速であるが粗なSRAM型メモリにアクセス
権を記憶する物理的な問題が解決される。各サブノード
は、ある数(たとえば、2)のSRAMバンクと共に構
成することができる。記憶すべきアクセス権の数のため
に、このある数よりも多くのバンクが必要であるとき
は、他のサブノードを追加することができる。このよう
に、所与のサブノード内の制御ロジックが接続される信
号線の数は、単一のサブノードを使用する場合よりも少
ない数に限られる。必要なピンの数が最小限に抑えられ
るので、制御ロジックは市販のパッケージングを使用で
きるので有利である。さらに、高速SRAMを使用し
て、高速ノード内通信を用いたアクセスに関する速度要
件を満たすことができる。
【0018】概して、本発明は、多重処理システムの処
理ノード内のトランザクションを完了する方法を企図す
るものである。トランザクションは、それに対して実行
されるコヒーレンシ活動が完了したときに処理ノード内
で再発行される。これと並行して、トランザクションの
影響を受けるコヒーレンシ単位に対応する新しいコヒー
レンシ状態がブロードキャストされる。このコヒーレン
シ状態は、コヒーレンシ状態のテーブル内のある位置に
記録される。この位置はこのコヒーレンシ単位に対応す
る。
理ノード内のトランザクションを完了する方法を企図す
るものである。トランザクションは、それに対して実行
されるコヒーレンシ活動が完了したときに処理ノード内
で再発行される。これと並行して、トランザクションの
影響を受けるコヒーレンシ単位に対応する新しいコヒー
レンシ状態がブロードキャストされる。このコヒーレン
シ状態は、コヒーレンシ状態のテーブル内のある位置に
記録される。この位置はこのコヒーレンシ単位に対応す
る。
【0019】本発明はさらに、第1のノードと第2のノ
ードとを備えるシステム・インタフェースを企図するも
のである。第1のノードは、処理ノードのローカル・バ
スとネットワークとの間で通信するように構成される。
第2のサブノードは、ローカル・バスに結合され、処理
ノード内に記憶されている第1の複数のコヒーレンシ単
位に対応する第1の複数のコヒーレンシ状態を記憶する
ように構成される。
ードとを備えるシステム・インタフェースを企図するも
のである。第1のノードは、処理ノードのローカル・バ
スとネットワークとの間で通信するように構成される。
第2のサブノードは、ローカル・バスに結合され、処理
ノード内に記憶されている第1の複数のコヒーレンシ単
位に対応する第1の複数のコヒーレンシ状態を記憶する
ように構成される。
【0020】本発明はさらに、ネットワークと第1の処
理ノードとを備えるコンピュータ・システムを企図する
ものである。第1の処理ノードは、ネットワークに結合
され、コントローラ・サブノードとスヌーパ・サブノー
ドとを含む。コントローラ・サブノードは、ネットワー
ク上で通信を実施し、通信の完了時に通信が実施された
トランザクションを再発行するように構成される。さら
に、コントローラ・サブノードは、通信を介して達成さ
れたコヒーレンシ状態をブロードキャストするように構
成される。スヌーパ・サブノードは、第1の処理ノード
内に記憶されている第1の複数のコヒーレンシ単位に対
応する第1の複数のコヒーレンシ状態を記憶するように
構成される。また、スヌーパ・サブノードは、コヒーレ
ンシ状態が複数のコヒーレンシ状態のうちの1つである
場合にコントローラ・サブノードによってブロードキャ
ストされたコヒーレンシ状態を取り込むように構成され
る。
理ノードとを備えるコンピュータ・システムを企図する
ものである。第1の処理ノードは、ネットワークに結合
され、コントローラ・サブノードとスヌーパ・サブノー
ドとを含む。コントローラ・サブノードは、ネットワー
ク上で通信を実施し、通信の完了時に通信が実施された
トランザクションを再発行するように構成される。さら
に、コントローラ・サブノードは、通信を介して達成さ
れたコヒーレンシ状態をブロードキャストするように構
成される。スヌーパ・サブノードは、第1の処理ノード
内に記憶されている第1の複数のコヒーレンシ単位に対
応する第1の複数のコヒーレンシ状態を記憶するように
構成される。また、スヌーパ・サブノードは、コヒーレ
ンシ状態が複数のコヒーレンシ状態のうちの1つである
場合にコントローラ・サブノードによってブロードキャ
ストされたコヒーレンシ状態を取り込むように構成され
る。
【0021】本発明の他の目的および利点は、下記の詳
細な説明を読み添付の図面を参照したときに明らかにな
ろう。
細な説明を読み添付の図面を参照したときに明らかにな
ろう。
【0022】
【発明の実施の形態】本発明では様々な修正形態および
変更形態が可能であるが、本発明の特定の実施形態が、
一例として図示され、本明細書に詳しく記載されてい
る。しかし、図面および詳細な説明が、開示した特定の
形態に本発明を制限するものではなく、本発明が、添付
の特許請求の範囲で定義した本発明の趣旨および範囲内
のすべての修正形態、等価物、変更形態をカバーするも
のであることを理解されたい。
変更形態が可能であるが、本発明の特定の実施形態が、
一例として図示され、本明細書に詳しく記載されてい
る。しかし、図面および詳細な説明が、開示した特定の
形態に本発明を制限するものではなく、本発明が、添付
の特許請求の範囲で定義した本発明の趣旨および範囲内
のすべての修正形態、等価物、変更形態をカバーするも
のであることを理解されたい。
【0023】次に、図1を参照すると、多重処理コンピ
ュータ・システム10の一実施形態のブロック図が示さ
れている。コンピュータ・システム10は、ポイント・
ツー・ポイント・ネットワーク14によって相互接続さ
れた複数のSMPノード12Aないし12Dを含む。本
明細書で特定の参照符号とその後に続く文字で参照され
た要素は、集合的に参照符号のみで参照する。たとえ
ば、SMPノード12Aないし12Dを集合的にSMP
ノード12と呼ぶ。図の実施形態では、各SMPノード
12は、複数のプロセッサと、外部キャッシュと、SM
Pバスと、メモリと、システム・インタフェースとを含
む。たとえば、SMPノード12Aは、プロセッサ16
Aないし16Bを含む複数のプロセッサと共に構成され
る。プロセッサ16は外部キャッシュ18に接続され、
外部キャッシュ18はさらにSMPバス20に結合され
る。また、メモリ22およびシステム・インタフェース
24はSMPバス20に結合される。さらに、SMPバ
ス20に1つまたは複数の入出力(I/O)インタフェ
ース26を結合することができる。入出力インタフェー
ス26は、シリアル・ポートおよびパラレル・ポート、
ディスク・ドライブ、モデム、プリンタなどの周辺装置
とのインタフェースをとるために使用される。他のSM
Pノード12Bないし12Dを同様に構成することがで
きる。
ュータ・システム10の一実施形態のブロック図が示さ
れている。コンピュータ・システム10は、ポイント・
ツー・ポイント・ネットワーク14によって相互接続さ
れた複数のSMPノード12Aないし12Dを含む。本
明細書で特定の参照符号とその後に続く文字で参照され
た要素は、集合的に参照符号のみで参照する。たとえ
ば、SMPノード12Aないし12Dを集合的にSMP
ノード12と呼ぶ。図の実施形態では、各SMPノード
12は、複数のプロセッサと、外部キャッシュと、SM
Pバスと、メモリと、システム・インタフェースとを含
む。たとえば、SMPノード12Aは、プロセッサ16
Aないし16Bを含む複数のプロセッサと共に構成され
る。プロセッサ16は外部キャッシュ18に接続され、
外部キャッシュ18はさらにSMPバス20に結合され
る。また、メモリ22およびシステム・インタフェース
24はSMPバス20に結合される。さらに、SMPバ
ス20に1つまたは複数の入出力(I/O)インタフェ
ース26を結合することができる。入出力インタフェー
ス26は、シリアル・ポートおよびパラレル・ポート、
ディスク・ドライブ、モデム、プリンタなどの周辺装置
とのインタフェースをとるために使用される。他のSM
Pノード12Bないし12Dを同様に構成することがで
きる。
【0024】一般的に言えば、システム・インタフェー
ス24は1つまたは複数のサブノードを備える。1つの
サブノード(コントローラ・サブノード)はネットワー
ク14のインタフェースを含み、それに対して他のノー
ドは単に、メモリ22に記憶されているコヒーレンシ単
位へのアクセス権の記憶域を維持する。コントローラ・
ノードは、トランザクションに応答してネットワーク1
4を介してコヒーレンシ活動が完了すると、SMPバス
20上でトランザクションを再発行する。これと並行し
て、コントローラ・ノードは、影響を受けるコヒーレン
シ単位に対応するサブノードに記憶すべき更新済みアク
セス権を与える。更新済みアクセス権が、再発行される
トランザクションと並行して与えられるので、その後の
トランザクションは、対応するサブノードを介してこの
更新済みアクセス権を使用することができる。アクセス
権が、コンピュータ・システム10によってサポートさ
れるメモリ・コヒーレンシ・モデルに従って、トランザ
クションが完了するのと同時に論理的に更新されるので
有利である。更新は、アクセス権をコントローラ・サブ
ノード以外のサブノードに記憶できる場合でも実行する
ことができる。コントローラ・サブノードがアクセス権
メモリ(本明細書ではMTAGと呼ぶ)の一部を含むこ
ともできることに留意されたい。
ス24は1つまたは複数のサブノードを備える。1つの
サブノード(コントローラ・サブノード)はネットワー
ク14のインタフェースを含み、それに対して他のノー
ドは単に、メモリ22に記憶されているコヒーレンシ単
位へのアクセス権の記憶域を維持する。コントローラ・
ノードは、トランザクションに応答してネットワーク1
4を介してコヒーレンシ活動が完了すると、SMPバス
20上でトランザクションを再発行する。これと並行し
て、コントローラ・ノードは、影響を受けるコヒーレン
シ単位に対応するサブノードに記憶すべき更新済みアク
セス権を与える。更新済みアクセス権が、再発行される
トランザクションと並行して与えられるので、その後の
トランザクションは、対応するサブノードを介してこの
更新済みアクセス権を使用することができる。アクセス
権が、コンピュータ・システム10によってサポートさ
れるメモリ・コヒーレンシ・モデルに従って、トランザ
クションが完了するのと同時に論理的に更新されるので
有利である。更新は、アクセス権をコントローラ・サブ
ノード以外のサブノードに記憶できる場合でも実行する
ことができる。コントローラ・サブノードがアクセス権
メモリ(本明細書ではMTAGと呼ぶ)の一部を含むこ
ともできることに留意されたい。
【0025】一実施形態では、システム・インタフェー
ス24の一部を形成する各サブノードは、SMPバス2
0を備えるバックプレーンに独立に挿入されるプリント
回路ボードを備える。含まれるサブノードの数は、構成
可能であり、したがってメモリ22のサイズを拡張する
場合には拡張可能である。MTAGメモリの量がメモリ
22のサイズに必要な量に一致するように調整できるの
で有利である。たとえば、各コヒーレンシ単位が64バ
イトでありアクセス権がコヒーレンシ単位当たりに2ビ
ットを含む場合、MTAGメモリの量はメモリ22のサ
イズの256分の1である。コンピュータ・システム1
0を最初、特定の量のメモリと共に製造し、それに続い
てメモリ22との間でメモリ・モジュールを追加または
削除し、システム・インタフェース24との間でサブノ
ードを追加または削除することによってメモリを追加ま
たは削除することができる。
ス24の一部を形成する各サブノードは、SMPバス2
0を備えるバックプレーンに独立に挿入されるプリント
回路ボードを備える。含まれるサブノードの数は、構成
可能であり、したがってメモリ22のサイズを拡張する
場合には拡張可能である。MTAGメモリの量がメモリ
22のサイズに必要な量に一致するように調整できるの
で有利である。たとえば、各コヒーレンシ単位が64バ
イトでありアクセス権がコヒーレンシ単位当たりに2ビ
ットを含む場合、MTAGメモリの量はメモリ22のサ
イズの256分の1である。コンピュータ・システム1
0を最初、特定の量のメモリと共に製造し、それに続い
てメモリ22との間でメモリ・モジュールを追加または
削除し、システム・インタフェース24との間でサブノ
ードを追加または削除することによってメモリを追加ま
たは削除することができる。
【0026】一般的に言えば、メモリ動作とは、データ
を発送元から宛先へ転送させる動作である。発送元また
は宛先、あるいはその両方は、開始側内の記憶位置で
も、あるいはメモリ内の記憶位置でもよい。発送元また
は宛先は、メモリ内の記憶位置であるとき、メモリ動作
と共に搬送されるアドレスを介して指定される。メモリ
動作は、読取り動作でも、あるいは書込み動作でもよ
い。読取り動作では、データが開始側の外側の発送元か
ら開始側内の宛先へ転送される。逆に、書込み動作で
は、データが開始側内の発送元から開始側の外側の宛先
へ転送される。図1に示したコンピュータ・システムで
は、メモリ動作は、SMPバス20上の1つまたは複数
のトランザクションと、ネットワーク14上の1つまた
は複数のコヒーレンシ動作を含むことができる。
を発送元から宛先へ転送させる動作である。発送元また
は宛先、あるいはその両方は、開始側内の記憶位置で
も、あるいはメモリ内の記憶位置でもよい。発送元また
は宛先は、メモリ内の記憶位置であるとき、メモリ動作
と共に搬送されるアドレスを介して指定される。メモリ
動作は、読取り動作でも、あるいは書込み動作でもよ
い。読取り動作では、データが開始側の外側の発送元か
ら開始側内の宛先へ転送される。逆に、書込み動作で
は、データが開始側内の発送元から開始側の外側の宛先
へ転送される。図1に示したコンピュータ・システムで
は、メモリ動作は、SMPバス20上の1つまたは複数
のトランザクションと、ネットワーク14上の1つまた
は複数のコヒーレンシ動作を含むことができる。
【0027】アーキテクチャの概要各SMPノード12
は基本的に、メモリ22を共用メモリとして有するSM
Pシステムである。プロセッサ16は、高性能プロセッ
サである。一実施形態では、各プロセッサ16は、SP
ARCプロセッサ・アーキテクチャのバージョン9に適
合するSPARCプロセッサである。しかし、プロセッ
サ16が任意のプロセッサ・アーキテクチャを使用でき
ることに留意されたい。
は基本的に、メモリ22を共用メモリとして有するSM
Pシステムである。プロセッサ16は、高性能プロセッ
サである。一実施形態では、各プロセッサ16は、SP
ARCプロセッサ・アーキテクチャのバージョン9に適
合するSPARCプロセッサである。しかし、プロセッ
サ16が任意のプロセッサ・アーキテクチャを使用でき
ることに留意されたい。
【0028】通常、プロセッサ16は、内部命令キャッ
シュと内部データ・キャッシュとを含む。したがって、
外部キャッシュ18はL2キャッシュと呼ばれる(レベ
ル2を表す。内部キャッシュはレベル1キャッシュであ
る)。プロセッサ16が内部キャッシュと共に構成され
ていない場合、外部キャッシュ18はレベル1キャッシ
ュである。「レベル」の語が、特定のキャッシュがプロ
セッサ16内の処理コアにどのくらい近接しているかを
識別するために使用されることに留意されたい。レベル
1は、処理コアに最も近く、レベル2は2番目に近く、
以下同様である。外部キャッシュ18は、それに結合さ
れたプロセッサ16から頻繁にアクセスされるメモリ・
アドレスに迅速にアクセスする。外部キャッシュ18が
様々な特定のキャッシュ構成として構成できることに留
意されたい。たとえば、外部キャッシュ18によってセ
ットアソシエーティブ構成または直接マップ構成を使用
することができる。
シュと内部データ・キャッシュとを含む。したがって、
外部キャッシュ18はL2キャッシュと呼ばれる(レベ
ル2を表す。内部キャッシュはレベル1キャッシュであ
る)。プロセッサ16が内部キャッシュと共に構成され
ていない場合、外部キャッシュ18はレベル1キャッシ
ュである。「レベル」の語が、特定のキャッシュがプロ
セッサ16内の処理コアにどのくらい近接しているかを
識別するために使用されることに留意されたい。レベル
1は、処理コアに最も近く、レベル2は2番目に近く、
以下同様である。外部キャッシュ18は、それに結合さ
れたプロセッサ16から頻繁にアクセスされるメモリ・
アドレスに迅速にアクセスする。外部キャッシュ18が
様々な特定のキャッシュ構成として構成できることに留
意されたい。たとえば、外部キャッシュ18によってセ
ットアソシエーティブ構成または直接マップ構成を使用
することができる。
【0029】SMPバス20は、プロセッサ16(キャ
ッシュ18を通じた通信)とメモリ22とシステム・イ
ンタフェース24と入出力インタフェース26との間の
通信に適応する。一実施形態では、SMPバス20は、
アドレス・バスおよび関連する制御信号、ならびにデー
タ・バスおよび関連する制御信号を含む。アドレス・バ
スとデータ・バスが別々のものなので、SMPバス20
上で分割トランザクション・バス・プロトコルを使用す
ることができる。一般的に言えば、分割トランザクショ
ン・バス・プロトコルは、アドレス・バス上で行われる
トランザクションが、データ・バス上で行われる並行ト
ランザクションとは異なるものでよいプロトコルであ
る。アドレスとデータを使用するトランザクションは、
アドレス・バス上でアドレスおよび関連する制御情報が
搬送されるアドレス・フェーズと、データ・バス上でデ
ータが搬送されるデータ・フェーズとを含む。特定のア
ドレス・フェーズに対応するデータ・フェーズの前に、
他のトランザクションに関する追加アドレス・フェーズ
または追加データ・フェーズ、あるいはその両方を開始
することができる。アドレス・フェーズと対応するデー
タ・フェーズは、多数の方法で相関付けることができ
る。たとえば、データ・トランザクションをアドレス・
トランザクションと同じ順序で行うことができる。別法
として、トランザクションのアドレス・フェーズとデー
タ・フェーズを固有のタグを介して識別することができ
る。
ッシュ18を通じた通信)とメモリ22とシステム・イ
ンタフェース24と入出力インタフェース26との間の
通信に適応する。一実施形態では、SMPバス20は、
アドレス・バスおよび関連する制御信号、ならびにデー
タ・バスおよび関連する制御信号を含む。アドレス・バ
スとデータ・バスが別々のものなので、SMPバス20
上で分割トランザクション・バス・プロトコルを使用す
ることができる。一般的に言えば、分割トランザクショ
ン・バス・プロトコルは、アドレス・バス上で行われる
トランザクションが、データ・バス上で行われる並行ト
ランザクションとは異なるものでよいプロトコルであ
る。アドレスとデータを使用するトランザクションは、
アドレス・バス上でアドレスおよび関連する制御情報が
搬送されるアドレス・フェーズと、データ・バス上でデ
ータが搬送されるデータ・フェーズとを含む。特定のア
ドレス・フェーズに対応するデータ・フェーズの前に、
他のトランザクションに関する追加アドレス・フェーズ
または追加データ・フェーズ、あるいはその両方を開始
することができる。アドレス・フェーズと対応するデー
タ・フェーズは、多数の方法で相関付けることができ
る。たとえば、データ・トランザクションをアドレス・
トランザクションと同じ順序で行うことができる。別法
として、トランザクションのアドレス・フェーズとデー
タ・フェーズを固有のタグを介して識別することができ
る。
【0030】メモリ22は、プロセッサ16によって使
用されるデータおよび命令コードを記憶するように構成
される。メモリ22は、ダイナミック・ランダム・アク
セス・メモリ(DRAM)を備えることが好ましい。た
だし、任意のタイプのメモリを使用することができる。
メモリ22は、他のSMPノード12内の図示した同様
なメモリと共に、分散共用メモリ・システムを形成す
る。分散共用メモリのアドレス空間の各アドレスは、そ
のアドレスのホーム・ノードと呼ばれる特定のノードに
割り当てられる。ホーム・ノードとは異なるノード内の
プロセッサは、ホーム・ノードのアドレスにあるデータ
にアクセスし、場合によってはデータをキャッシュする
ことができる。したがって、SMPノード12どうしの
間と、特定のSMPノード12Aないし12D内のプロ
セッサ16とキャッシュ18との間に、コヒーレンシが
維持される。システム・インタフェース24はノード間
コヒーレンシを与え、それに対してSMPバス20上の
スヌーピングはノード内コヒーレンシを与える。
用されるデータおよび命令コードを記憶するように構成
される。メモリ22は、ダイナミック・ランダム・アク
セス・メモリ(DRAM)を備えることが好ましい。た
だし、任意のタイプのメモリを使用することができる。
メモリ22は、他のSMPノード12内の図示した同様
なメモリと共に、分散共用メモリ・システムを形成す
る。分散共用メモリのアドレス空間の各アドレスは、そ
のアドレスのホーム・ノードと呼ばれる特定のノードに
割り当てられる。ホーム・ノードとは異なるノード内の
プロセッサは、ホーム・ノードのアドレスにあるデータ
にアクセスし、場合によってはデータをキャッシュする
ことができる。したがって、SMPノード12どうしの
間と、特定のSMPノード12Aないし12D内のプロ
セッサ16とキャッシュ18との間に、コヒーレンシが
維持される。システム・インタフェース24はノード間
コヒーレンシを与え、それに対してSMPバス20上の
スヌーピングはノード内コヒーレンシを与える。
【0031】システム・インタフェース24は、ノード
間コヒーレンシを維持するだけでなく、他のSMPノー
ド12との間のデータ転送を必要とするSMPバス20
上のアドレスを検出する。システム・インタフェース2
4は、転送を実行し、トランザクションのための対応す
るデータをSMPバス20上に与える。図の実施形態で
は、システム・インタフェース24はポイント・ツー・
ポイント・ネットワーク14に結合される。しかし、代
替実施形態では他のネットワークを使用できることに留
意されたい。ポイント・ツー・ポイント・ネットワーク
では、ネットワーク上の各ノード間に個別の接続が存在
する。特定のノードは、専用リンクを介して第2のノー
ドと直接通信する。特定のノードは、第3のノードと通
信するときは、第2のノードと通信するために使用した
リンクとは異なるリンクを使用する。
間コヒーレンシを維持するだけでなく、他のSMPノー
ド12との間のデータ転送を必要とするSMPバス20
上のアドレスを検出する。システム・インタフェース2
4は、転送を実行し、トランザクションのための対応す
るデータをSMPバス20上に与える。図の実施形態で
は、システム・インタフェース24はポイント・ツー・
ポイント・ネットワーク14に結合される。しかし、代
替実施形態では他のネットワークを使用できることに留
意されたい。ポイント・ツー・ポイント・ネットワーク
では、ネットワーク上の各ノード間に個別の接続が存在
する。特定のノードは、専用リンクを介して第2のノー
ドと直接通信する。特定のノードは、第3のノードと通
信するときは、第2のノードと通信するために使用した
リンクとは異なるリンクを使用する。
【0032】図1では4つのSMPノード12が示され
ているが、任意の数のノードを使用するコンピュータ・
システム10の実施形態が企図されることに留意された
い。
ているが、任意の数のノードを使用するコンピュータ・
システム10の実施形態が企図されることに留意された
い。
【0033】図2Aおよび2Bは、コンピュータ・シス
テム10の一実施形態によってサポートされる分散メモ
リ・アーキテクチャの概念図である。具体的には、図2
Aおよび2Bは、図1の各SMPノード12がデータを
キャッシュし、メモリ・アクセスを実行する代替方法を
示す。コンピュータ・システム10がそのようなアクセ
スをサポートする方法に関する詳細については、下記で
詳しく説明する。
テム10の一実施形態によってサポートされる分散メモ
リ・アーキテクチャの概念図である。具体的には、図2
Aおよび2Bは、図1の各SMPノード12がデータを
キャッシュし、メモリ・アクセスを実行する代替方法を
示す。コンピュータ・システム10がそのようなアクセ
スをサポートする方法に関する詳細については、下記で
詳しく説明する。
【0034】次に、図2Aを参照すると、コンピュータ
・システム10の一実施形態によってサポートされる第
1のメモリ・アーキテクチャ30を示す論理図が示され
ている。アーキテクチャ30は、複数のプロセッサ32
Aないし32Dと、複数のキャッシュ34Aないし34
Dと、複数のメモリ36Aないし36Dと、相互接続ネ
ットワーク38とを含む。複数のメモリ36は分散共用
メモリを形成する。アドレス空間内の各アドレスは、1
つのメモリ36内の位置に対応する。
・システム10の一実施形態によってサポートされる第
1のメモリ・アーキテクチャ30を示す論理図が示され
ている。アーキテクチャ30は、複数のプロセッサ32
Aないし32Dと、複数のキャッシュ34Aないし34
Dと、複数のメモリ36Aないし36Dと、相互接続ネ
ットワーク38とを含む。複数のメモリ36は分散共用
メモリを形成する。アドレス空間内の各アドレスは、1
つのメモリ36内の位置に対応する。
【0035】アーキテクチャ30は非一様メモリ・アー
キテクチャ(NUMA)である。NUMAアーキテクチ
ャでは、第1のメモリ・アドレスにアクセスするのに必
要な時間の長さが、第2のメモリ・アドレスにアクセス
するのに必要な時間の長さと大幅に異なることがある。
アクセス時間は、アクセスの開始側と、アクセスされた
データを記憶しているメモリ36Aないし36Dの位置
に依存する。たとえば、プロセッサ32Aが、メモリ3
6Aに記憶されている第1のメモリ・アドレスにアクセ
スする場合、このアクセス時間は、メモリ36Bないし
36Dのうちの1つに記憶されている第2のメモリ・ア
ドレスへのアクセスのアクセス時間よりもずっと短い。
すなわち、プロセッサ32Aによるメモリ36Aへのア
クセスはローカルに(たとえば、ネットワーク38上で
の転送なしに)完了することができ、それに対してメモ
リ36Bへのプロセッサ32Aアクセスはネットワーク
38を介して実行される。通常、ネットワーク38を通
じたアクセスは、ローカル・メモリ内で完了するアクセ
スよりも低速である。たとえば、ローカル・アクセスは
数百ナノ秒で完了することができ、それに対してネット
ワークを介したアクセスは数マイクロ秒を占有する可能
性がある。
キテクチャ(NUMA)である。NUMAアーキテクチ
ャでは、第1のメモリ・アドレスにアクセスするのに必
要な時間の長さが、第2のメモリ・アドレスにアクセス
するのに必要な時間の長さと大幅に異なることがある。
アクセス時間は、アクセスの開始側と、アクセスされた
データを記憶しているメモリ36Aないし36Dの位置
に依存する。たとえば、プロセッサ32Aが、メモリ3
6Aに記憶されている第1のメモリ・アドレスにアクセ
スする場合、このアクセス時間は、メモリ36Bないし
36Dのうちの1つに記憶されている第2のメモリ・ア
ドレスへのアクセスのアクセス時間よりもずっと短い。
すなわち、プロセッサ32Aによるメモリ36Aへのア
クセスはローカルに(たとえば、ネットワーク38上で
の転送なしに)完了することができ、それに対してメモ
リ36Bへのプロセッサ32Aアクセスはネットワーク
38を介して実行される。通常、ネットワーク38を通
じたアクセスは、ローカル・メモリ内で完了するアクセ
スよりも低速である。たとえば、ローカル・アクセスは
数百ナノ秒で完了することができ、それに対してネット
ワークを介したアクセスは数マイクロ秒を占有する可能
性がある。
【0036】リモート・ノードに記憶されているアドレ
スに対応するデータは任意のキャッシュ34にキャッシ
ュすることができる。しかし、キャッシュ34がそのよ
うなリモート・アドレスに対応するデータを放棄した
後、リモート・アドレスへのその後のアクセスはネット
ワーク38上での転送を介して完了する。
スに対応するデータは任意のキャッシュ34にキャッシ
ュすることができる。しかし、キャッシュ34がそのよ
うなリモート・アドレスに対応するデータを放棄した
後、リモート・アドレスへのその後のアクセスはネット
ワーク38上での転送を介して完了する。
【0037】NUMAアーキテクチャは、主として特定
のローカル・メモリに対応するアドレスを使用するソフ
トウェア・アプリケーションに優れた性能特性を付与す
ることができる。一方、より多くのランダム・アクセス
・パターンを有しメモリ・アクセスを特定のローカル・
メモリ内のアドレスに制限しないソフトウェア・アプリ
ケーションは、特定のプロセッサ32がリモート・ノー
ドへの反復アクセスを実行するときに大量のネットワー
ク・トラフィックを経験する。
のローカル・メモリに対応するアドレスを使用するソフ
トウェア・アプリケーションに優れた性能特性を付与す
ることができる。一方、より多くのランダム・アクセス
・パターンを有しメモリ・アクセスを特定のローカル・
メモリ内のアドレスに制限しないソフトウェア・アプリ
ケーションは、特定のプロセッサ32がリモート・ノー
ドへの反復アクセスを実行するときに大量のネットワー
ク・トラフィックを経験する。
【0038】次に図2Bを参照すると、図1のコンピュ
ータ・システム10によってサポートされる第2のメモ
リ・アーキテクチャ40を示す論理図が示されている。
アーキテクチャ40は、複数のプロセッサ42Aないし
42Dと、複数のキャッシュ44Aないし44Dと、複
数のメモリ46Aないし46Dと、ネットワーク48と
を含む。しかし、メモリ46はキャッシュ44とネット
ワーク48との間に論理的に結合される。メモリ46
は、より大規模なキャッシュ(たとえば、レベル3のキ
ャッシュ)として働き、対応するプロセッサ42からア
クセスされるアドレスを記憶する。メモリ46は、対応
するプロセッサ42から作用を受けているデータを「ア
トラクトする」と言われる。図2Aに示したNUMAア
ーキテクチャとは異なり、アーキテクチャ40は、ロー
カル・プロセッサがリモート・データにアクセスする際
にリモート・データをローカル・メモリに記憶すること
によってネットワーク48上のアクセスの数を低減させ
る。
ータ・システム10によってサポートされる第2のメモ
リ・アーキテクチャ40を示す論理図が示されている。
アーキテクチャ40は、複数のプロセッサ42Aないし
42Dと、複数のキャッシュ44Aないし44Dと、複
数のメモリ46Aないし46Dと、ネットワーク48と
を含む。しかし、メモリ46はキャッシュ44とネット
ワーク48との間に論理的に結合される。メモリ46
は、より大規模なキャッシュ(たとえば、レベル3のキ
ャッシュ)として働き、対応するプロセッサ42からア
クセスされるアドレスを記憶する。メモリ46は、対応
するプロセッサ42から作用を受けているデータを「ア
トラクトする」と言われる。図2Aに示したNUMAア
ーキテクチャとは異なり、アーキテクチャ40は、ロー
カル・プロセッサがリモート・データにアクセスする際
にリモート・データをローカル・メモリに記憶すること
によってネットワーク48上のアクセスの数を低減させ
る。
【0039】アーキテクチャ40をキャッシュ専用メモ
リ・アーキテクチャ(COMA)と呼ぶ。メモリ46の
組合せで形成された分散共用メモリ内の複数の位置は、
特定のアドレスに対応するデータを記憶することができ
る。特定の記憶位置に特定のアドレスの永久的なマッピ
ングが割り当てられることはない。その代わり、特定の
アドレスに対応するデータを記憶する位置は、その特定
のアドレスにアクセスするプロセッサ42に基づいて動
的に変化する。逆に、NUMAアーキテクチャでは、メ
モリ46内の特定の記憶位置が特定のアドレスに割り当
てられる。アーキテクチャ40は、アーキテクチャ上で
実行中のアプリケーションによって実行されるメモリ・
アクセス・パターンに調整し、メモリ46どうしの間で
コヒーレンシが維持される。
リ・アーキテクチャ(COMA)と呼ぶ。メモリ46の
組合せで形成された分散共用メモリ内の複数の位置は、
特定のアドレスに対応するデータを記憶することができ
る。特定の記憶位置に特定のアドレスの永久的なマッピ
ングが割り当てられることはない。その代わり、特定の
アドレスに対応するデータを記憶する位置は、その特定
のアドレスにアクセスするプロセッサ42に基づいて動
的に変化する。逆に、NUMAアーキテクチャでは、メ
モリ46内の特定の記憶位置が特定のアドレスに割り当
てられる。アーキテクチャ40は、アーキテクチャ上で
実行中のアプリケーションによって実行されるメモリ・
アクセス・パターンに調整し、メモリ46どうしの間で
コヒーレンシが維持される。
【0040】好ましい実施形態では、コンピュータ・シ
ステム10は、図2Aおよび2Bに示した両方のメモリ
・アーキテクチャをサポートする。具体的には、メモリ
・アドレスに、1つのSMPノード12Aないし12D
からNUMA方式でアクセスし、同時に他のSMPノー
ド12Aないし12DからCOMA方式でアクセスする
ことができる。一実施形態では、SMPバス20上のア
ドレスのあるビットが、他のSMPノード12を、与え
られたアドレスのホーム・ノードとして識別している場
合に、NUMAアクセスが検出される。そうでない場合
は、COMAアクセスが仮定される。他の詳細を下記に
与える。
ステム10は、図2Aおよび2Bに示した両方のメモリ
・アーキテクチャをサポートする。具体的には、メモリ
・アドレスに、1つのSMPノード12Aないし12D
からNUMA方式でアクセスし、同時に他のSMPノー
ド12Aないし12DからCOMA方式でアクセスする
ことができる。一実施形態では、SMPバス20上のア
ドレスのあるビットが、他のSMPノード12を、与え
られたアドレスのホーム・ノードとして識別している場
合に、NUMAアクセスが検出される。そうでない場合
は、COMAアクセスが仮定される。他の詳細を下記に
与える。
【0041】一実施形態では、COMAアーキテクチャ
は、ハードウェア技法とソフトウェア技法の組合せを使
用して実施される。ハードウェアは、ページのローカル
にキャッシュされたコピー間のコヒーレンシを維持し、
ソフトウェア(たとえば、コンピュータ・システム10
で使用されるオペレーティング・システム)は、キャッ
シュされたページを割り振り、割り振り解除する責任を
負う。
は、ハードウェア技法とソフトウェア技法の組合せを使
用して実施される。ハードウェアは、ページのローカル
にキャッシュされたコピー間のコヒーレンシを維持し、
ソフトウェア(たとえば、コンピュータ・システム10
で使用されるオペレーティング・システム)は、キャッ
シュされたページを割り振り、割り振り解除する責任を
負う。
【0042】図3は、一般に、図1に示したSMPノー
ド12Aに適合する、SMPノード12Aの一実施形態
の詳細を示す。他のノード12も同様に構成することが
できる。図1の各SMPノード12の特定の代替実施形
態も可能であることに留意されたい。図3に示したSM
Pノード12Aの実施形態は、サブノード50Aやサブ
ノード50Bなど複数のサブノードを含む。各サブノー
ド50は、2つのプロセッサ16および対応するキャッ
シュ18と、メモリ部分56と、アドレス・コントロー
ラ52と、データ・コントローラ54とを含む。サブノ
ード50内のメモリ部分56は集合的に、図1のSMP
ノード12Aのメモリ22を形成する。他のサブノード
(図示せず)はさらに、SMPバス20に結合され入出
力インタフェース26を形成する。
ド12Aに適合する、SMPノード12Aの一実施形態
の詳細を示す。他のノード12も同様に構成することが
できる。図1の各SMPノード12の特定の代替実施形
態も可能であることに留意されたい。図3に示したSM
Pノード12Aの実施形態は、サブノード50Aやサブ
ノード50Bなど複数のサブノードを含む。各サブノー
ド50は、2つのプロセッサ16および対応するキャッ
シュ18と、メモリ部分56と、アドレス・コントロー
ラ52と、データ・コントローラ54とを含む。サブノ
ード50内のメモリ部分56は集合的に、図1のSMP
ノード12Aのメモリ22を形成する。他のサブノード
(図示せず)はさらに、SMPバス20に結合され入出
力インタフェース26を形成する。
【0043】図3に示したように、SMPバス20は、
アドレス・バス58とデータ・バス60とを含む。アド
レス・コントローラ52はアドレス・バス58に結合さ
れ、データ・コントローラ54はデータ・バス60に結
合される。図3は、システム・インタフェース論理ブロ
ック62と、変換記憶域64と、ディレクトリ66と、
メモリ・タグ(MTAG)68とを含むシステム・イン
タフェース24も示す。論理ブロック62は、アドレス
・バス58とデータ・バス60の両方に結合され、下記
で詳しく説明するようにある種の状況でアドレス・バス
58上で無視信号70をアサートする。論理ブロック6
2は、変換記憶域64、ディレクトリ66、MTAG6
8、ネットワーク14にも結合される。
アドレス・バス58とデータ・バス60とを含む。アド
レス・コントローラ52はアドレス・バス58に結合さ
れ、データ・コントローラ54はデータ・バス60に結
合される。図3は、システム・インタフェース論理ブロ
ック62と、変換記憶域64と、ディレクトリ66と、
メモリ・タグ(MTAG)68とを含むシステム・イン
タフェース24も示す。論理ブロック62は、アドレス
・バス58とデータ・バス60の両方に結合され、下記
で詳しく説明するようにある種の状況でアドレス・バス
58上で無視信号70をアサートする。論理ブロック6
2は、変換記憶域64、ディレクトリ66、MTAG6
8、ネットワーク14にも結合される。
【0044】図3の実施形態では、各サブノード50
は、SMPバス20が配置されたバックプレーンに挿入
できるプリント回路ボード上に構成される。このよう
に、SMPノード12内に含まれるプロセッサまたは入
出力インタフェース26あるいはその両方の数は、サブ
ノード50を挿入しあるいは取り外すことによって変更
することができる。たとえば、コンピュータ・システム
10は最初、少数のサブノード50と共に構成すること
ができる。コンピュータ・システム10のユーザが必要
とするコンピューティング・パワーが増大するにつれて
必要に応じて追加サブノード50を追加することができ
る。
は、SMPバス20が配置されたバックプレーンに挿入
できるプリント回路ボード上に構成される。このよう
に、SMPノード12内に含まれるプロセッサまたは入
出力インタフェース26あるいはその両方の数は、サブ
ノード50を挿入しあるいは取り外すことによって変更
することができる。たとえば、コンピュータ・システム
10は最初、少数のサブノード50と共に構成すること
ができる。コンピュータ・システム10のユーザが必要
とするコンピューティング・パワーが増大するにつれて
必要に応じて追加サブノード50を追加することができ
る。
【0045】アドレス・コントローラ52は、キャッシ
ュ18とSMP20のアドレス部分との間のインタフェ
ースを形成する。図の実施形態では、アドレス・コント
ローラ52は、出力待ち行列72といくつかの入力待ち
行列74とを含む。出力待ち行列72は、アドレス・コ
ントローラ52がアドレス・バス58へのアクセスを許
可されるまで出力待ち行列に接続されたプロセッサから
のトランザクションをバッファする。アドレス・コント
ローラ52は、出力待ち行列72に記憶されているトラ
ンザクションを、それらが出力待ち行列72に入れられ
た順に実行する(すなわち、出力待ち行列72はFIF
O待ち行列である)。アドレス・コントローラ52によ
って実行されるトランザクション、ならびにキャッシュ
18およびプロセッサ16の内部のキャッシュによって
スヌープされるアドレス・バス58から受け取られるト
ランザクションは、入力待ち行列74に入れられる。
ュ18とSMP20のアドレス部分との間のインタフェ
ースを形成する。図の実施形態では、アドレス・コント
ローラ52は、出力待ち行列72といくつかの入力待ち
行列74とを含む。出力待ち行列72は、アドレス・コ
ントローラ52がアドレス・バス58へのアクセスを許
可されるまで出力待ち行列に接続されたプロセッサから
のトランザクションをバッファする。アドレス・コント
ローラ52は、出力待ち行列72に記憶されているトラ
ンザクションを、それらが出力待ち行列72に入れられ
た順に実行する(すなわち、出力待ち行列72はFIF
O待ち行列である)。アドレス・コントローラ52によ
って実行されるトランザクション、ならびにキャッシュ
18およびプロセッサ16の内部のキャッシュによって
スヌープされるアドレス・バス58から受け取られるト
ランザクションは、入力待ち行列74に入れられる。
【0046】出力待ち行列72と同様に、入力待ち行列
74はFIFO待ち行列である。すべてのアドレス・ト
ランザクションは、各サブノード50の入力待ち行列7
4(場合によっては、アドレス・トランザクションを開
始したサブノード50の入力待ち行列74内)に記憶さ
れる。したがって、アドレス・トランザクションは、ス
ヌーピングのために、アドレス・トランザクションがア
ドレス・バス58上で行われる順にキャッシュ18およ
びプロセッサ16に与えられる。トランザクションがア
ドレス・バス58上で行われる順序は、SMPノード1
2Aの順序である。しかし、完全なシステムは1つのグ
ローバル・メモリ順序を有することが予期される。この
ように順序が予期されるため、ネットワーク14上の動
作の順序によってグローバル順序を確立する必要がある
ので、コンピュータ・システム10が使用するNUMA
アーキテクチャとCOMAアーキテクチャの両方で問題
が生じる。2つのノードがあるアドレスに対するトラン
ザクションを実行する場合、そのアドレスのホーム・ノ
ードで対応するコヒーレンシ動作が行われる順序は、各
ノード内で見られる2つのトランザクションの順序を定
義する。たとえば、同じアドレスに対して2つの書込み
トランザクションが実行される場合、そのアドレスのホ
ーム・ノードに2番目に到着する書込み動作は2番目に
完了する書込みトランザクションであるべきである(す
なわち、両方の書込みトランザクションによって更新さ
れるバイト位置は、両方のトランザクションの完了時に
第2の書込みトランザクションから与えられる値を記憶
する)。しかし、第2のトランザクションを実行するノ
ードは実際には、SMPバス20上で最初に第2のトラ
ンザクションを行わせることができる。無視信号70に
よって、SMPノード12の残りの部分が第2のトラン
ザクションに反応することなしに、第2のトランザクシ
ョンをシステム・インタフェース24へ転送することが
できる。
74はFIFO待ち行列である。すべてのアドレス・ト
ランザクションは、各サブノード50の入力待ち行列7
4(場合によっては、アドレス・トランザクションを開
始したサブノード50の入力待ち行列74内)に記憶さ
れる。したがって、アドレス・トランザクションは、ス
ヌーピングのために、アドレス・トランザクションがア
ドレス・バス58上で行われる順にキャッシュ18およ
びプロセッサ16に与えられる。トランザクションがア
ドレス・バス58上で行われる順序は、SMPノード1
2Aの順序である。しかし、完全なシステムは1つのグ
ローバル・メモリ順序を有することが予期される。この
ように順序が予期されるため、ネットワーク14上の動
作の順序によってグローバル順序を確立する必要がある
ので、コンピュータ・システム10が使用するNUMA
アーキテクチャとCOMAアーキテクチャの両方で問題
が生じる。2つのノードがあるアドレスに対するトラン
ザクションを実行する場合、そのアドレスのホーム・ノ
ードで対応するコヒーレンシ動作が行われる順序は、各
ノード内で見られる2つのトランザクションの順序を定
義する。たとえば、同じアドレスに対して2つの書込み
トランザクションが実行される場合、そのアドレスのホ
ーム・ノードに2番目に到着する書込み動作は2番目に
完了する書込みトランザクションであるべきである(す
なわち、両方の書込みトランザクションによって更新さ
れるバイト位置は、両方のトランザクションの完了時に
第2の書込みトランザクションから与えられる値を記憶
する)。しかし、第2のトランザクションを実行するノ
ードは実際には、SMPバス20上で最初に第2のトラ
ンザクションを行わせることができる。無視信号70に
よって、SMPノード12の残りの部分が第2のトラン
ザクションに反応することなしに、第2のトランザクシ
ョンをシステム・インタフェース24へ転送することが
できる。
【0047】したがって、システム・インタフェース論
理ブロック62は、アドレス・コントローラ52の出力
待ち行列/入力待ち行列構造によって課される順序付け
制約と共に効果的に動作するために、無視信号70を使
用する。アドレス・バス58上にトランザクションが与
えられ、システム・インタフェース論理ブロック62
が、このトランザクションに応答してリモート・トラン
ザクションを実行すべきであることを検出すると、論理
ブロック62は無視信号70をアサートする。あるトラ
ンザクションに対して無視信号70をアサートすると、
アドレス・コントローラ52は入力待ち行列74へのそ
のトランザクションの格納を抑制する。したがって、無
視されたトランザクションに続いて行われ、SMPノー
ド12A内でローカルに完了する他のトランザクション
は、入力待ち行列74の順序付け規則を破らずに、無視
されたトランザクションに対して所定の順序とは異なる
順序で完了することができる。具体的には、ネットワー
ク14上のコヒーレンシ活動に応答してシステム・イン
タフェース24によって実行されるトランザクション
を、無視されたトランザクションの後に続けて実行し完
了することができる。リモート・トランザクションから
応答が受け取ったときに、システム・インタフェース論
理ブロック62によって、無視されたトランザクション
をアドレス・バス58上で再発行することができる。そ
れによって、トランザクションは、入力待ち行列74に
入れられ、再発行時に行われるトランザクションと共に
順序正しく完了することができる。
理ブロック62は、アドレス・コントローラ52の出力
待ち行列/入力待ち行列構造によって課される順序付け
制約と共に効果的に動作するために、無視信号70を使
用する。アドレス・バス58上にトランザクションが与
えられ、システム・インタフェース論理ブロック62
が、このトランザクションに応答してリモート・トラン
ザクションを実行すべきであることを検出すると、論理
ブロック62は無視信号70をアサートする。あるトラ
ンザクションに対して無視信号70をアサートすると、
アドレス・コントローラ52は入力待ち行列74へのそ
のトランザクションの格納を抑制する。したがって、無
視されたトランザクションに続いて行われ、SMPノー
ド12A内でローカルに完了する他のトランザクション
は、入力待ち行列74の順序付け規則を破らずに、無視
されたトランザクションに対して所定の順序とは異なる
順序で完了することができる。具体的には、ネットワー
ク14上のコヒーレンシ活動に応答してシステム・イン
タフェース24によって実行されるトランザクション
を、無視されたトランザクションの後に続けて実行し完
了することができる。リモート・トランザクションから
応答が受け取ったときに、システム・インタフェース論
理ブロック62によって、無視されたトランザクション
をアドレス・バス58上で再発行することができる。そ
れによって、トランザクションは、入力待ち行列74に
入れられ、再発行時に行われるトランザクションと共に
順序正しく完了することができる。
【0048】一実施形態では、特定のアドレス・コント
ローラ52からのトランザクションが無視された後、そ
の特定のアドレス・コントローラ52からのその後のコ
ヒーレント・トランザクションも無視される。特定のプ
ロセッサ16からのトランザクションは、アドレス・バ
ス58上に与えられることによって課される順序付け要
件にはかかわらず、互いに重要な順序付け関係を有する
ことができる。たとえば、トランザクションは、SPA
RCアーキテクチャに含まれるMEMBAR命令などの
メモリ同期命令によって他のトランザクションから分離
することができる。プロセッサ16は、トランザクショ
ンを、それらが互いに実行される順に搬送する。トラン
ザクションは、出力待ち行列72内で順序付けされ、し
たがって、特定の出力待ち行列72から発行されるトラ
ンザクションは順序正しく実行されるはずである。特定
のアドレス・コントローラ52からのその後のトランザ
クションを無視することによって、特定の出力待ち行列
72に関するインオーダー規則を保存することができ
る。さらに、特定のプロセッサからのすべてのトランザ
クションを順序付けなくて済むことに留意されたい。し
かし、アドレス・バス58上で、どのトランザクション
を順序付けなければならないかと、どのトランザクショ
ンを順序付けなくてもよいかを判定することは困難であ
る。したがって、この実施形態で、論理ブロック62は
特定の出力待ち行列72からのすべてのトランザクショ
ンの順序を維持する。この規則の例外を許容するサブノ
ード50の他の実施形態が可能であることに留意された
い。
ローラ52からのトランザクションが無視された後、そ
の特定のアドレス・コントローラ52からのその後のコ
ヒーレント・トランザクションも無視される。特定のプ
ロセッサ16からのトランザクションは、アドレス・バ
ス58上に与えられることによって課される順序付け要
件にはかかわらず、互いに重要な順序付け関係を有する
ことができる。たとえば、トランザクションは、SPA
RCアーキテクチャに含まれるMEMBAR命令などの
メモリ同期命令によって他のトランザクションから分離
することができる。プロセッサ16は、トランザクショ
ンを、それらが互いに実行される順に搬送する。トラン
ザクションは、出力待ち行列72内で順序付けされ、し
たがって、特定の出力待ち行列72から発行されるトラ
ンザクションは順序正しく実行されるはずである。特定
のアドレス・コントローラ52からのその後のトランザ
クションを無視することによって、特定の出力待ち行列
72に関するインオーダー規則を保存することができ
る。さらに、特定のプロセッサからのすべてのトランザ
クションを順序付けなくて済むことに留意されたい。し
かし、アドレス・バス58上で、どのトランザクション
を順序付けなければならないかと、どのトランザクショ
ンを順序付けなくてもよいかを判定することは困難であ
る。したがって、この実施形態で、論理ブロック62は
特定の出力待ち行列72からのすべてのトランザクショ
ンの順序を維持する。この規則の例外を許容するサブノ
ード50の他の実施形態が可能であることに留意された
い。
【0049】データ・コントローラ54は、データ・バ
ス60、メモリ部分56、キャッシュ18との間でデー
タをルーティングする。データ・コントローラ54は、
アドレス・コントローラ52と同様な入力待ち行列と出
力待ち行列とを含むことができる。一実施形態では、デ
ータ・コントローラ54は、バイト・スライス・バス構
成の複数の物理装置を使用する。
ス60、メモリ部分56、キャッシュ18との間でデー
タをルーティングする。データ・コントローラ54は、
アドレス・コントローラ52と同様な入力待ち行列と出
力待ち行列とを含むことができる。一実施形態では、デ
ータ・コントローラ54は、バイト・スライス・バス構
成の複数の物理装置を使用する。
【0050】図3に示したプロセッサ16は、メモリ管
理装置(MMU)76Aないし76Bを含む。MMU7
6は、プロセッサ16上で実行される命令コードによっ
て生成されたデータ・アドレスと、命令アドレスに対し
て、仮想アドレス・物理アドレス変換を実行する。命令
の実行に応答して生成されるアドレスは仮想アドレスで
ある。言い換えれば、仮想アドレスは、命令コードのプ
ログラマによって作成されるアドレスである。仮想アド
レスは(MMU76内で具体化される)アドレス変換機
構を通過し、アドレス変換機構から対応する物理アドレ
スが作成される。物理アドレスは、メモリ22内の記憶
位置を識別する。
理装置(MMU)76Aないし76Bを含む。MMU7
6は、プロセッサ16上で実行される命令コードによっ
て生成されたデータ・アドレスと、命令アドレスに対し
て、仮想アドレス・物理アドレス変換を実行する。命令
の実行に応答して生成されるアドレスは仮想アドレスで
ある。言い換えれば、仮想アドレスは、命令コードのプ
ログラマによって作成されるアドレスである。仮想アド
レスは(MMU76内で具体化される)アドレス変換機
構を通過し、アドレス変換機構から対応する物理アドレ
スが作成される。物理アドレスは、メモリ22内の記憶
位置を識別する。
【0051】アドレス変換は多数の理由で実行される。
たとえば、アドレス変換機構を使用して、あるメモリ・
アドレスに対する特定のコンピューティング・タスクの
アクセスを許可または拒否することができる。このよう
に、あるコンピューティング・タスク内のデータおよび
命令は、他のコンピューティング・タスクのデータおよ
び命令から分離される。また、コンピューティング・タ
スクのデータおよび命令の各部分は、ハード・ディスク
・ドライブに「ページアウト」することができる。ある
部分がページアウトされると、その変換は無効化され
る。コンピューティング・タスクによるその部分へのア
クセス時には、変換が失敗しているために割り込みが行
われる。この割り込みによって、オペレーティング・シ
ステムは、ハード・ディスク・ドライブから対応する情
報を検索することができる。このように、メモリ22内
の実際のメモリよりも多くの仮想メモリを使用すること
ができる。仮想メモリの他の多くの用途が良く知られて
いる。
たとえば、アドレス変換機構を使用して、あるメモリ・
アドレスに対する特定のコンピューティング・タスクの
アクセスを許可または拒否することができる。このよう
に、あるコンピューティング・タスク内のデータおよび
命令は、他のコンピューティング・タスクのデータおよ
び命令から分離される。また、コンピューティング・タ
スクのデータおよび命令の各部分は、ハード・ディスク
・ドライブに「ページアウト」することができる。ある
部分がページアウトされると、その変換は無効化され
る。コンピューティング・タスクによるその部分へのア
クセス時には、変換が失敗しているために割り込みが行
われる。この割り込みによって、オペレーティング・シ
ステムは、ハード・ディスク・ドライブから対応する情
報を検索することができる。このように、メモリ22内
の実際のメモリよりも多くの仮想メモリを使用すること
ができる。仮想メモリの他の多くの用途が良く知られて
いる。
【0052】再び、図1に示したコンピュータ・システ
ム10を、図3に示したSMPノード12A実施形態と
共に参照すると分かるように、MMU76によって算出
される物理アドレスは、プロセッサ16が配置されたS
MPノード12に関連付けられたメモリ22内の位置を
定義するローカル物理アドレス(LPA)である。MT
AG68は、メモリ22内の各「コヒーレンシ単位」ご
とにコヒーレンシ状態を記憶する。SMPバス20上で
アドレス変換が実行されると、システム・インタフェー
ス論理ブロック62は、アクセスされたコヒーレンシ単
位に関する、MTAG68に記憶されているコヒーレン
シ状態を調べる。SMPノード12がこのアクセスを実
行するのに十分な、このコヒーレンシ単位へのアクセス
権を有することをコヒーレンシ状態が示している場合、
アドレス変換は続行する。しかし、トランザクションを
完了する前にコヒーレンシ活動を実行すべきであること
をコヒーレンシ状態が示している場合、システム・イン
タフェース論理ブロック62は無視信号70をアサート
する。論理ブロック62は、ネットワーク14上でコヒ
ーレンシ動作を実行し、適当なコヒーレンシ状態を得
る。適当なコヒーレンシ状態が得られると、論理ブロッ
ク62は、無視されたトランザクションをSMPバス2
0上で再発行する。それに続いて、トランザクションが
完了する。
ム10を、図3に示したSMPノード12A実施形態と
共に参照すると分かるように、MMU76によって算出
される物理アドレスは、プロセッサ16が配置されたS
MPノード12に関連付けられたメモリ22内の位置を
定義するローカル物理アドレス(LPA)である。MT
AG68は、メモリ22内の各「コヒーレンシ単位」ご
とにコヒーレンシ状態を記憶する。SMPバス20上で
アドレス変換が実行されると、システム・インタフェー
ス論理ブロック62は、アクセスされたコヒーレンシ単
位に関する、MTAG68に記憶されているコヒーレン
シ状態を調べる。SMPノード12がこのアクセスを実
行するのに十分な、このコヒーレンシ単位へのアクセス
権を有することをコヒーレンシ状態が示している場合、
アドレス変換は続行する。しかし、トランザクションを
完了する前にコヒーレンシ活動を実行すべきであること
をコヒーレンシ状態が示している場合、システム・イン
タフェース論理ブロック62は無視信号70をアサート
する。論理ブロック62は、ネットワーク14上でコヒ
ーレンシ動作を実行し、適当なコヒーレンシ状態を得
る。適当なコヒーレンシ状態が得られると、論理ブロッ
ク62は、無視されたトランザクションをSMPバス2
0上で再発行する。それに続いて、トランザクションが
完了する。
【0053】一般的に言えば、特定の記憶位置(たとえ
ば、キャッシュまたはメモリ22)でコヒーレンシ単位
に関して維持されるコヒーレンシ状態は、そのSMPノ
ード12でのコヒーレンシ単位へのアクセス権を示す。
このアクセス権は、コヒーレンシ単位の妥当性と、その
SMPノード12内でコヒーレンシ単位のコピーに対し
て与えられている読取り/書込み許可を示す。一実施形
態では、コンピュータ・システム10によって使用され
るコヒーレンシ状態は、修正、所有、共用、無効であ
る。修正状態は、SMPノード12が対応するコヒーレ
ンシ単位を更新したことを示す。したがって、他のSM
Pノード12はこのコヒーレンシ単位のコピーを有さな
い。また、修正されたコヒーレンシ単位は、SMPノー
ド12から放棄されると、再びホーム・ノードに記憶さ
れる。所有状態は、このコヒーレンシ単位に対してSM
Pノード12が責任を負うが、他のSMPノード12が
コピーを共用している可能性があることを示す。この場
合も、コヒーレンシ単位は、SMPノード12から放棄
されると、再びホーム・ノードに記憶される。共用状態
は、SMPノード12がコヒーレンシ単位を読み取るこ
とはできるが、所有状態を得ないかぎり更新することは
できないことを示す。また、他のSMPノード12もこ
のコヒーレンシ単位のコピーを有する可能性がある。最
後に、無効状態は、SMPノード12がコヒーレンシ単
位のコピーを有さないことを示す。一実施形態では、修
正状態は、書込み許可を示すが、無効状態を除く状態
は、対応するコヒーレンシ単位への読取り許可を示す。
ば、キャッシュまたはメモリ22)でコヒーレンシ単位
に関して維持されるコヒーレンシ状態は、そのSMPノ
ード12でのコヒーレンシ単位へのアクセス権を示す。
このアクセス権は、コヒーレンシ単位の妥当性と、その
SMPノード12内でコヒーレンシ単位のコピーに対し
て与えられている読取り/書込み許可を示す。一実施形
態では、コンピュータ・システム10によって使用され
るコヒーレンシ状態は、修正、所有、共用、無効であ
る。修正状態は、SMPノード12が対応するコヒーレ
ンシ単位を更新したことを示す。したがって、他のSM
Pノード12はこのコヒーレンシ単位のコピーを有さな
い。また、修正されたコヒーレンシ単位は、SMPノー
ド12から放棄されると、再びホーム・ノードに記憶さ
れる。所有状態は、このコヒーレンシ単位に対してSM
Pノード12が責任を負うが、他のSMPノード12が
コピーを共用している可能性があることを示す。この場
合も、コヒーレンシ単位は、SMPノード12から放棄
されると、再びホーム・ノードに記憶される。共用状態
は、SMPノード12がコヒーレンシ単位を読み取るこ
とはできるが、所有状態を得ないかぎり更新することは
できないことを示す。また、他のSMPノード12もこ
のコヒーレンシ単位のコピーを有する可能性がある。最
後に、無効状態は、SMPノード12がコヒーレンシ単
位のコピーを有さないことを示す。一実施形態では、修
正状態は、書込み許可を示すが、無効状態を除く状態
は、対応するコヒーレンシ単位への読取り許可を示す。
【0054】本明細書では、コヒーレンシ単位は、コヒ
ーレンシのために単位とみなされるメモリのいくつかの
連続バイトである。たとえば、コヒーレンシ単位内の1
バイトが更新された場合、コヒーレンシ単位全体が更新
されたとみなされる。特定の一実施形態では、コヒーレ
ンシ単位はキャッシュ・ラインであり、連続64バイト
を備える。しかし、コヒーレンシ単位が任意の数のバイ
トを備えることができることが理解されよう。
ーレンシのために単位とみなされるメモリのいくつかの
連続バイトである。たとえば、コヒーレンシ単位内の1
バイトが更新された場合、コヒーレンシ単位全体が更新
されたとみなされる。特定の一実施形態では、コヒーレ
ンシ単位はキャッシュ・ラインであり、連続64バイト
を備える。しかし、コヒーレンシ単位が任意の数のバイ
トを備えることができることが理解されよう。
【0055】システム・インタフェース24は、変換記
憶域64を使用してローカル物理アドレスからグローバ
ル・アドレス(GA)への変換を記憶する変換機構も含
む。グローバル・アドレス内のあるビットは、そのグロ
ーバル・アドレスに関するコヒーレンシ情報が記憶され
ているアドレスのホーム・ノードを識別する。たとえ
ば、コンピュータ・システム10の実施形態は、図1の
SMPノードなど4つのSMPノード12を使用するこ
とができる。そのような実施形態では、グローバル・ア
ドレスの2ビットがホーム・ノードを識別する。グロー
バル・アドレスの最上位部分のビットはホーム・ノード
を識別するために使用されることが好ましい。同じビッ
トが、ローカル物理アドレスではNUMAアクセスを識
別するために使用される。LPAのビットが、ローカル
・ノードがホーム・ノードではないことを示す場合、そ
のLPAはグローバル・アドレスであり、トランザクシ
ョンはNUMAモードで実行される。したがって、オペ
レーティング・システムは、NUMAタイプ・ページの
場合はMMU76にグローバル・アドレスを置く。逆
に、オペレーティング・システムは、COMAタイプ・
ページの場合にはMMU76にLPAを置く。LPA
が、GAに等しくてよい(ホームが、LPAが与えられ
たノードのメモリ22内にある、NUMAアドレスなら
びにグローバル・アドレスの場合)ことに留意された
い。また、LPAは、他のSMPノード12にホームを
有するデータのコピーを記憶するために使用される記憶
位置を識別するときはGAに変換することができる。
憶域64を使用してローカル物理アドレスからグローバ
ル・アドレス(GA)への変換を記憶する変換機構も含
む。グローバル・アドレス内のあるビットは、そのグロ
ーバル・アドレスに関するコヒーレンシ情報が記憶され
ているアドレスのホーム・ノードを識別する。たとえ
ば、コンピュータ・システム10の実施形態は、図1の
SMPノードなど4つのSMPノード12を使用するこ
とができる。そのような実施形態では、グローバル・ア
ドレスの2ビットがホーム・ノードを識別する。グロー
バル・アドレスの最上位部分のビットはホーム・ノード
を識別するために使用されることが好ましい。同じビッ
トが、ローカル物理アドレスではNUMAアクセスを識
別するために使用される。LPAのビットが、ローカル
・ノードがホーム・ノードではないことを示す場合、そ
のLPAはグローバル・アドレスであり、トランザクシ
ョンはNUMAモードで実行される。したがって、オペ
レーティング・システムは、NUMAタイプ・ページの
場合はMMU76にグローバル・アドレスを置く。逆
に、オペレーティング・システムは、COMAタイプ・
ページの場合にはMMU76にLPAを置く。LPA
が、GAに等しくてよい(ホームが、LPAが与えられ
たノードのメモリ22内にある、NUMAアドレスなら
びにグローバル・アドレスの場合)ことに留意された
い。また、LPAは、他のSMPノード12にホームを
有するデータのコピーを記憶するために使用される記憶
位置を識別するときはGAに変換することができる。
【0056】特定のホーム・ノードのディレクトリ66
は、どのSMPノード12が、コピー間のコヒーレンシ
が維持できるようにホーム・ノードに割り当てられた所
与のグローバル・アドレスに対応するデータのコピーを
有するかを識別する。また、ホーム・ノードのディレク
トリ66は、コヒーレンシ単位を所有するSMPノード
12を識別する。したがって、キャッシュ18とプロセ
ッサ16との間のローカル・コヒーレンシはスヌーピン
グを介して維持され、それに対してシステム・ワイド
(またはグローバル)コヒーレンシはMTAG68およ
びディレクトリ66を使用して維持される。ディレクト
リ66は、SMPノード12Aに割り当てられた(すな
わち、SMPノード12Aがホーム・ノードである)コ
ヒーレンシ単位に対応するコヒーレンシ情報を記憶す
る。
は、どのSMPノード12が、コピー間のコヒーレンシ
が維持できるようにホーム・ノードに割り当てられた所
与のグローバル・アドレスに対応するデータのコピーを
有するかを識別する。また、ホーム・ノードのディレク
トリ66は、コヒーレンシ単位を所有するSMPノード
12を識別する。したがって、キャッシュ18とプロセ
ッサ16との間のローカル・コヒーレンシはスヌーピン
グを介して維持され、それに対してシステム・ワイド
(またはグローバル)コヒーレンシはMTAG68およ
びディレクトリ66を使用して維持される。ディレクト
リ66は、SMPノード12Aに割り当てられた(すな
わち、SMPノード12Aがホーム・ノードである)コ
ヒーレンシ単位に対応するコヒーレンシ情報を記憶す
る。
【0057】図3の実施形態では、ディレクトリ66お
よびMTAG68が各コヒーレンシ単位ごとに情報を記
憶することに留意されたい。逆に、変換記憶域64は、
ページに関して定義されたローカル物理・グローバル変
換を記憶する。ページは、複数のコヒーレンシ単位を含
み、通常、サイズが数キロバイト、あるいは場合によっ
ては数メガバイトである。
よびMTAG68が各コヒーレンシ単位ごとに情報を記
憶することに留意されたい。逆に、変換記憶域64は、
ページに関して定義されたローカル物理・グローバル変
換を記憶する。ページは、複数のコヒーレンシ単位を含
み、通常、サイズが数キロバイト、あるいは場合によっ
ては数メガバイトである。
【0058】したがって、ソフトウェアは、ページごと
にローカル物理アドレス・グローバル・アドレス変換を
作成する(それによって、リモートに記憶されているグ
ローバル・ページのコピーを記憶するローカル・メモリ
・ページを割り振る)。したがって、メモリ22のブロ
ックはページごとにも特定のグローバル・アドレスに割
り振られる。しかし、前述のように、コヒーレンシ状態
およびコヒーレンシ活動はコヒーレンシ単位上で実行さ
れる。したがって、メモリの特定のグローバル・アドレ
スにページが割り振られたときに、ページに対応するデ
ータは必ずしも、割り振られたメモリへ転送されるわけ
ではない。その代わり、プロセッサ16がページ内の様
々なコヒーレンシ単位にアクセスすると、それらのコヒ
ーレンシ単位はコヒーレンシ単位の所有者から転送され
る。このように、SMPノード12Aから実際にアクセ
スされたデータは、対応するメモリ22へ転送される。
SMPノード12Aからアクセスされないデータは転送
できず、そのため、メモリ22内のページの割り振り時
にデータのページを転送する実施形態と比べてネットワ
ーク14上の全体的な帯域幅使用度が低減する。
にローカル物理アドレス・グローバル・アドレス変換を
作成する(それによって、リモートに記憶されているグ
ローバル・ページのコピーを記憶するローカル・メモリ
・ページを割り振る)。したがって、メモリ22のブロ
ックはページごとにも特定のグローバル・アドレスに割
り振られる。しかし、前述のように、コヒーレンシ状態
およびコヒーレンシ活動はコヒーレンシ単位上で実行さ
れる。したがって、メモリの特定のグローバル・アドレ
スにページが割り振られたときに、ページに対応するデ
ータは必ずしも、割り振られたメモリへ転送されるわけ
ではない。その代わり、プロセッサ16がページ内の様
々なコヒーレンシ単位にアクセスすると、それらのコヒ
ーレンシ単位はコヒーレンシ単位の所有者から転送され
る。このように、SMPノード12Aから実際にアクセ
スされたデータは、対応するメモリ22へ転送される。
SMPノード12Aからアクセスされないデータは転送
できず、そのため、メモリ22内のページの割り振り時
にデータのページを転送する実施形態と比べてネットワ
ーク14上の全体的な帯域幅使用度が低減する。
【0059】一実施形態では、変換記憶域64、または
ディレクトリ66、またはMTAG68、あるいはそれ
らの組合せはそれぞれ、関連する変換、ディレクトリ、
MTAG情報の一部しか記憶しないキャッシュでよいこ
とに留意されたい。変換、ディレクトリ、MTAG情報
の全体は、メモリ22内のテーブルまたは専用メモリ記
憶域(図示せず)に記憶される。アクセスに必要な情報
が、対応するキャッシュにない場合、テーブルはシステ
ム・インタフェース24からアクセスされる。
ディレクトリ66、またはMTAG68、あるいはそれ
らの組合せはそれぞれ、関連する変換、ディレクトリ、
MTAG情報の一部しか記憶しないキャッシュでよいこ
とに留意されたい。変換、ディレクトリ、MTAG情報
の全体は、メモリ22内のテーブルまたは専用メモリ記
憶域(図示せず)に記憶される。アクセスに必要な情報
が、対応するキャッシュにない場合、テーブルはシステ
ム・インタフェース24からアクセスされる。
【0060】次に、図4を参照すると、例示的なディレ
クトリ・エントリ71が示されている。ディレクトリ・
エントリ71は、図3に示したディレクトリ66の一実
施形態によって使用することができる。ディレクトリ6
6の他の実施形態は、異なるディレクトリ・エントリを
使用することができる。ディレクトリ・エントリ71
は、有効ビット73と、書き直しビット75と、所有者
フィールド77と、共用者フィールド79とを含む。デ
ィレクトリ・エントリ71は、ディレクトリ・エントリ
のテーブル内に存在し、対応するコヒーレンシ単位を識
別するグローバル・アドレスを介してテーブル内に配置
される。具体的には、コヒーレンシ単位に関連付けられ
たディレクトリ・エントリ71は、コヒーレンシ単位を
識別するグローバル・アドレスで形成されたオフセット
位置にあるディレクトリ・エントリのテーブル内に記憶
される。
クトリ・エントリ71が示されている。ディレクトリ・
エントリ71は、図3に示したディレクトリ66の一実
施形態によって使用することができる。ディレクトリ6
6の他の実施形態は、異なるディレクトリ・エントリを
使用することができる。ディレクトリ・エントリ71
は、有効ビット73と、書き直しビット75と、所有者
フィールド77と、共用者フィールド79とを含む。デ
ィレクトリ・エントリ71は、ディレクトリ・エントリ
のテーブル内に存在し、対応するコヒーレンシ単位を識
別するグローバル・アドレスを介してテーブル内に配置
される。具体的には、コヒーレンシ単位に関連付けられ
たディレクトリ・エントリ71は、コヒーレンシ単位を
識別するグローバル・アドレスで形成されたオフセット
位置にあるディレクトリ・エントリのテーブル内に記憶
される。
【0061】有効ビット73は、セットされると、ディ
レクトリ・エントリ71が有効である(すなわち、その
ディレクトリ・エントリ71は、対応するコヒーレンシ
単位に関するコヒーレンシ情報を記憶している)ことを
示す。有効ビット73は、クリアされると、そのディレ
クトリ・エントリ71が無効であることを示す。
レクトリ・エントリ71が有効である(すなわち、その
ディレクトリ・エントリ71は、対応するコヒーレンシ
単位に関するコヒーレンシ情報を記憶している)ことを
示す。有効ビット73は、クリアされると、そのディレ
クトリ・エントリ71が無効であることを示す。
【0062】所有者フィールド77は、1つのSMPノ
ード12をコヒーレンシ単位の所有者として識別する。
所有側SMPノード12Aないし12Dは、コヒーレン
シ単位を修正状態と所有状態のどちらかで維持する。通
常、所有側SMPノード12Aないし12Dは、コヒー
レンシ単位を修正状態で得る(下記の図15を参照され
たい)。それに続いて、所有側SMPノード12Aない
し12Dは、コヒーレンシ単位のコピーを他のSMPノ
ード12Aないし12Dに与える際に所有状態に遷移す
ることができる。他のSMPノード12Aないし12D
はコヒーレンシ単位を共用状態で得る。一実施形態で
は、所有者フィールド77は、4つのSMPノード12
Aないし12Dのうちの1つをコヒーレンシ単位の所有
者として識別するようにコード化された2つのビットを
備える。
ード12をコヒーレンシ単位の所有者として識別する。
所有側SMPノード12Aないし12Dは、コヒーレン
シ単位を修正状態と所有状態のどちらかで維持する。通
常、所有側SMPノード12Aないし12Dは、コヒー
レンシ単位を修正状態で得る(下記の図15を参照され
たい)。それに続いて、所有側SMPノード12Aない
し12Dは、コヒーレンシ単位のコピーを他のSMPノ
ード12Aないし12Dに与える際に所有状態に遷移す
ることができる。他のSMPノード12Aないし12D
はコヒーレンシ単位を共用状態で得る。一実施形態で
は、所有者フィールド77は、4つのSMPノード12
Aないし12Dのうちの1つをコヒーレンシ単位の所有
者として識別するようにコード化された2つのビットを
備える。
【0063】共用者フィールド79は、各SMPノード
12Aないし12Dに割り当てられた1つのビットを含
む。SMPノード12Aないし12Dがコヒーレンシ単
位の共用コピーを維持している場合、共用者フィールド
79内の対応するビットがセットされる。逆に、SMP
ノード12Aないし12Dがコヒーレンシ単位の共用コ
ピーを維持していない場合、共用者フィールド79内の
対応するビットはクリアされる。このように、共用者フ
ィールド79は、図1のコンピュータ・システム10内
に存在するコヒーレンシ単位のすべての共用コピーを示
す。
12Aないし12Dに割り当てられた1つのビットを含
む。SMPノード12Aないし12Dがコヒーレンシ単
位の共用コピーを維持している場合、共用者フィールド
79内の対応するビットがセットされる。逆に、SMP
ノード12Aないし12Dがコヒーレンシ単位の共用コ
ピーを維持していない場合、共用者フィールド79内の
対応するビットはクリアされる。このように、共用者フ
ィールド79は、図1のコンピュータ・システム10内
に存在するコヒーレンシ単位のすべての共用コピーを示
す。
【0064】書き直しビット75は、セットされると、
所有者フィールド77を介してコヒーレンシ単位の所有
者として識別されたSMPノード12Aないし12Dが
コヒーレンシ単位の更新済みコピーをホームSMPノー
ド12に書き込んだことを示す。ビット75は、クリア
されると、所有側SMPノード12Aないし12Dがコ
ヒーレンシ単位の更新済みコピーをホームSMPノード
12Aないし12Dに書き込んでいないことを示す。
所有者フィールド77を介してコヒーレンシ単位の所有
者として識別されたSMPノード12Aないし12Dが
コヒーレンシ単位の更新済みコピーをホームSMPノー
ド12に書き込んだことを示す。ビット75は、クリア
されると、所有側SMPノード12Aないし12Dがコ
ヒーレンシ単位の更新済みコピーをホームSMPノード
12Aないし12Dに書き込んでいないことを示す。
【0065】次に図5を参照すると、システム・インタ
フェース24の一実施形態のブロック図が示されてい
る。図5に示したように、システム・インタフェース2
4は、ディレクトリ66と、変換記憶域64と、MTA
G68とを含む。変換記憶域64は、グローバル・アド
レス/ローカル物理アドレス(GA2LPA)変換装置
80およびローカル物理アドレス/グローバル・アドレ
ス(LPA2GA)変換装置82として示されている。
フェース24の一実施形態のブロック図が示されてい
る。図5に示したように、システム・インタフェース2
4は、ディレクトリ66と、変換記憶域64と、MTA
G68とを含む。変換記憶域64は、グローバル・アド
レス/ローカル物理アドレス(GA2LPA)変換装置
80およびローカル物理アドレス/グローバル・アドレ
ス(LPA2GA)変換装置82として示されている。
【0066】システム・インタフェース24は、SMP
バス20またはネットワーク14上で実行すべきトラン
ザクションを記憶するための入力待ち行列と出力待ち行
列も含む。具体的には、図の実施形態では、システム・
インタフェース24は、ヘッダ・パケットをネットワー
ク14との間でバッファするための入力ヘッダ待ち行列
84と出力ヘッダ待ち行列86とを含む。ヘッダ・パケ
ットは、実行すべき動作を識別し、その後に続くデータ
・パケットの数およびフォーマットを指定する。出力ヘ
ッダ待ち行列86は、ネットワーク14上で送るべきヘ
ッダ・パケットをバッファし、入力ヘッダ待ち行列84
は、システム・インタフェース24が、受け取ったヘッ
ダ・パケットを処理するまで、ネットワーク14から受
け取ったヘッダ・パケットをバッファする。同様に、デ
ータ・パケットは、データがそれぞれ、SMPデータ・
バス60およびネットワーク14上で転送されるまで入
力データ待ち行列88および出力データ待ち行列90に
バッファされる。
バス20またはネットワーク14上で実行すべきトラン
ザクションを記憶するための入力待ち行列と出力待ち行
列も含む。具体的には、図の実施形態では、システム・
インタフェース24は、ヘッダ・パケットをネットワー
ク14との間でバッファするための入力ヘッダ待ち行列
84と出力ヘッダ待ち行列86とを含む。ヘッダ・パケ
ットは、実行すべき動作を識別し、その後に続くデータ
・パケットの数およびフォーマットを指定する。出力ヘ
ッダ待ち行列86は、ネットワーク14上で送るべきヘ
ッダ・パケットをバッファし、入力ヘッダ待ち行列84
は、システム・インタフェース24が、受け取ったヘッ
ダ・パケットを処理するまで、ネットワーク14から受
け取ったヘッダ・パケットをバッファする。同様に、デ
ータ・パケットは、データがそれぞれ、SMPデータ・
バス60およびネットワーク14上で転送されるまで入
力データ待ち行列88および出力データ待ち行列90に
バッファされる。
【0067】SMP出力待ち行列92、SMP入力待ち
行列94、SMP入出力入力待ち行列(PIQ)96
は、アドレス・バス58との間でアドレス・トランザク
ションをバッファするために使用される。SMP出力待
ち行列92は、アドレス・バス58上のシステム・イン
タフェース24から与えられるトランザクションをバッ
ファする。無視されたトランザクションに関するコヒー
レンシ活動の完了に応答して待機させられた再発行トラ
ンザクションは、SMP出力待ち行列92にバッファさ
れる。また、ネットワーク14から受け取ったコヒーレ
ンシ活動に応答して生成されたトランザクションは、S
MP出力待ち行列92にバッファされる。SMP入力待
ち行列94は、システム・インタフェース24によって
処理されるコヒーレンシ関連トランザクションを記憶す
る。逆にSMP PIQ96は、他のSMPノード12
に存在する入出力インタフェースへ搬送される入出力ト
ランザクションを記憶する。入出力トランザクションは
一般に、非コヒーレントとみなされ、したがってコヒー
レンシ活動を生成しない。
行列94、SMP入出力入力待ち行列(PIQ)96
は、アドレス・バス58との間でアドレス・トランザク
ションをバッファするために使用される。SMP出力待
ち行列92は、アドレス・バス58上のシステム・イン
タフェース24から与えられるトランザクションをバッ
ファする。無視されたトランザクションに関するコヒー
レンシ活動の完了に応答して待機させられた再発行トラ
ンザクションは、SMP出力待ち行列92にバッファさ
れる。また、ネットワーク14から受け取ったコヒーレ
ンシ活動に応答して生成されたトランザクションは、S
MP出力待ち行列92にバッファされる。SMP入力待
ち行列94は、システム・インタフェース24によって
処理されるコヒーレンシ関連トランザクションを記憶す
る。逆にSMP PIQ96は、他のSMPノード12
に存在する入出力インタフェースへ搬送される入出力ト
ランザクションを記憶する。入出力トランザクションは
一般に、非コヒーレントとみなされ、したがってコヒー
レンシ活動を生成しない。
【0068】SMP入力待ち行列94およびSMP P
IQ96は、トランザクション・フィルタ98から、待
機させるべきトランザクションを受け取る。トランザク
ション・フィルタ98はMTAG68およびSMPアド
レス・バス58に結合される。トランザクション・フィ
ルタ98は、他のSMPノード12上の入出力インタフ
ェースを識別する入出力トランザクションをアドレス・
バス58上で検出した場合、そのトランザクションをS
MP PIQ96に入れる。LPAアドレスへのコヒー
レント・トランザクションがトランザクション・フィル
タ98によって検出された場合、MTAG68から得た
対応するコヒーレンシ状態が調べられる。トランザクシ
ョン・フィルタ98は、コヒーレンシ状態に応じて、無
視信号70をアサートすることができ、コヒーレンシ・
トランザクションをSMP入力待ち行列94で待機させ
ることができる。コヒーレント・トランザクションを実
行するのに十分な、コヒーレンシ単位へのアクセス権
が、SMPノード12Aによって維持されていないこと
をMTAG68が示している場合には、無視信号70が
アサートされ、コヒーレンシ・トランザクションが待機
させられる。逆に、SMPノード12Aによって十分な
アクセス権が維持されていることをMTAG68が示し
ている場合、無視信号70がアサート解除されコヒーレ
ンシ・トランザクションは生成されない。
IQ96は、トランザクション・フィルタ98から、待
機させるべきトランザクションを受け取る。トランザク
ション・フィルタ98はMTAG68およびSMPアド
レス・バス58に結合される。トランザクション・フィ
ルタ98は、他のSMPノード12上の入出力インタフ
ェースを識別する入出力トランザクションをアドレス・
バス58上で検出した場合、そのトランザクションをS
MP PIQ96に入れる。LPAアドレスへのコヒー
レント・トランザクションがトランザクション・フィル
タ98によって検出された場合、MTAG68から得た
対応するコヒーレンシ状態が調べられる。トランザクシ
ョン・フィルタ98は、コヒーレンシ状態に応じて、無
視信号70をアサートすることができ、コヒーレンシ・
トランザクションをSMP入力待ち行列94で待機させ
ることができる。コヒーレント・トランザクションを実
行するのに十分な、コヒーレンシ単位へのアクセス権
が、SMPノード12Aによって維持されていないこと
をMTAG68が示している場合には、無視信号70が
アサートされ、コヒーレンシ・トランザクションが待機
させられる。逆に、SMPノード12Aによって十分な
アクセス権が維持されていることをMTAG68が示し
ている場合、無視信号70がアサート解除されコヒーレ
ンシ・トランザクションは生成されない。
【0069】SMP入力待ち行列94およびSMP P
IQ96からのトランザクションは、システム・インタ
フェース24内の要求エージェント100によって処理
される。LPA2GA変換装置82は、要求エージェン
ト100による動作の前に、トランザクションのアドレ
ス(LPAアドレスである場合)を、SMPアドレス・
バス58上に与えられるローカル物理アドレスから、対
応するグローバル・アドレスに変換する。要求エージェ
ント100は次いで、グローバル・アドレスによって識
別されたホーム・ノードへ送られる特定のコヒーレンシ
要求を指定するヘッダ・パケットを生成する。このコヒ
ーレンシ要求は出力ヘッダ待ち行列86に入れられる。
それに続いて、コヒーレンシ応答が入力ヘッダ待ち行列
84で受け取られる。要求エージェント100は、入力
ヘッダ待ち行列84から得たコヒーレンシ応答を処理
し、場合によっては(下記で説明するように)SMP出
力待ち行列92に関する再発行トランザクションを生成
する。
IQ96からのトランザクションは、システム・インタ
フェース24内の要求エージェント100によって処理
される。LPA2GA変換装置82は、要求エージェン
ト100による動作の前に、トランザクションのアドレ
ス(LPAアドレスである場合)を、SMPアドレス・
バス58上に与えられるローカル物理アドレスから、対
応するグローバル・アドレスに変換する。要求エージェ
ント100は次いで、グローバル・アドレスによって識
別されたホーム・ノードへ送られる特定のコヒーレンシ
要求を指定するヘッダ・パケットを生成する。このコヒ
ーレンシ要求は出力ヘッダ待ち行列86に入れられる。
それに続いて、コヒーレンシ応答が入力ヘッダ待ち行列
84で受け取られる。要求エージェント100は、入力
ヘッダ待ち行列84から得たコヒーレンシ応答を処理
し、場合によっては(下記で説明するように)SMP出
力待ち行列92に関する再発行トランザクションを生成
する。
【0070】システム・インタフェース24には、ホー
ム・エージェント102とスレーブ・エージェント10
4とが含まれる。ホーム・エージェント102は、入力
ヘッダ待ち行列84から受け取ったコヒーレンシ要求を
処理する。ホーム・エージェント102は、特定のグロ
ーバル・アドレスに関してディレクトリ66に記憶され
ているコヒーレンシ情報から、他のSMPノード12内
の1つまたは複数のスレーブ・エージェントへコヒーレ
ンシ・デマンドを送るべきかどうかを判定する。一実施
形態では、ホーム・エージェント102は、影響を受け
るコヒーレンシ単位に対応するコヒーレンシ情報をブロ
ックする。言い換えれば、そのコヒーレンシ単位に関連
するその後の要求は、コヒーレンシ要求に対応するコヒ
ーレンシ活動が完了するまで実行されない。一実施形態
によれば、ホーム・エージェント102は、(入力ヘッ
ダ待ち行列84を介して)コヒーレンシ要求を開始した
要求エージェントからコヒーレンシ完了を受け取る。コ
ヒーレンシ完了は、コヒーレンシ活動が完了したことを
示す。ホーム・エージェント102は、コヒーレンシ完
了を受け取ると、影響を受けるコヒーレンシ単位に対応
するコヒーレンシ情報上のブロックを削除する。コヒー
レンシ情報がコヒーレンシ活動が完了するまでブロック
されるので、ホーム・エージェント102が、コヒーレ
ンシ要求の受取時にただちに実行されたコヒーレンシ活
動に応じてコヒーレンシ情報を更新できることに留意さ
れたい。
ム・エージェント102とスレーブ・エージェント10
4とが含まれる。ホーム・エージェント102は、入力
ヘッダ待ち行列84から受け取ったコヒーレンシ要求を
処理する。ホーム・エージェント102は、特定のグロ
ーバル・アドレスに関してディレクトリ66に記憶され
ているコヒーレンシ情報から、他のSMPノード12内
の1つまたは複数のスレーブ・エージェントへコヒーレ
ンシ・デマンドを送るべきかどうかを判定する。一実施
形態では、ホーム・エージェント102は、影響を受け
るコヒーレンシ単位に対応するコヒーレンシ情報をブロ
ックする。言い換えれば、そのコヒーレンシ単位に関連
するその後の要求は、コヒーレンシ要求に対応するコヒ
ーレンシ活動が完了するまで実行されない。一実施形態
によれば、ホーム・エージェント102は、(入力ヘッ
ダ待ち行列84を介して)コヒーレンシ要求を開始した
要求エージェントからコヒーレンシ完了を受け取る。コ
ヒーレンシ完了は、コヒーレンシ活動が完了したことを
示す。ホーム・エージェント102は、コヒーレンシ完
了を受け取ると、影響を受けるコヒーレンシ単位に対応
するコヒーレンシ情報上のブロックを削除する。コヒー
レンシ情報がコヒーレンシ活動が完了するまでブロック
されるので、ホーム・エージェント102が、コヒーレ
ンシ要求の受取時にただちに実行されたコヒーレンシ活
動に応じてコヒーレンシ情報を更新できることに留意さ
れたい。
【0071】スレーブ・エージェント104は、コヒー
レンシ・デマンドを入力ヘッダ待ち行列84を介して他
のSMPノード12のホーム・エージェントから受け取
る。スレーブ・エージェント104は、特定のコヒーレ
ンシ・デマンドに応答して、コヒーレンシ・トランザク
ションをSMP出力待ち行列92で待機させる。一実施
形態では、コヒーレンシ・トランザクションによって、
キャッシュ18およびプロセッサ16の内部のキャッシ
ュは、影響を受けるコヒーレンシ単位を無効化すること
ができる。コヒーレンシ単位がキャッシュ内で修正され
た場合、修正済みデータはシステム・インタフェース2
4へ転送される。別法として、コヒーレンシ・トランザ
クションによって、キャッシュ18およびプロセッサ1
6の内部のキャッシュは、コヒーレンシ単位のコヒーレ
ンシ状態を共用に変更することができる。スレーブ・エ
ージェント104は、コヒーレンシ・デマンドに応答し
て活動を完了した後、コヒーレンシ・デマンドに対応す
るコヒーレンシ要求を開始した要求エージェントへコヒ
ーレンシ応答を送る。コヒーレンシ応答は、出力ヘッダ
待ち行列86で待機させられる。コヒーレンシ・デマン
ドに応答して活動を実行する前に、コヒーレンシ・デマ
ンドと共に受け取ったグローバル・アドレスがGA2L
PA変換装置80を介してローカル物理アドレスに変換
される。
レンシ・デマンドを入力ヘッダ待ち行列84を介して他
のSMPノード12のホーム・エージェントから受け取
る。スレーブ・エージェント104は、特定のコヒーレ
ンシ・デマンドに応答して、コヒーレンシ・トランザク
ションをSMP出力待ち行列92で待機させる。一実施
形態では、コヒーレンシ・トランザクションによって、
キャッシュ18およびプロセッサ16の内部のキャッシ
ュは、影響を受けるコヒーレンシ単位を無効化すること
ができる。コヒーレンシ単位がキャッシュ内で修正され
た場合、修正済みデータはシステム・インタフェース2
4へ転送される。別法として、コヒーレンシ・トランザ
クションによって、キャッシュ18およびプロセッサ1
6の内部のキャッシュは、コヒーレンシ単位のコヒーレ
ンシ状態を共用に変更することができる。スレーブ・エ
ージェント104は、コヒーレンシ・デマンドに応答し
て活動を完了した後、コヒーレンシ・デマンドに対応す
るコヒーレンシ要求を開始した要求エージェントへコヒ
ーレンシ応答を送る。コヒーレンシ応答は、出力ヘッダ
待ち行列86で待機させられる。コヒーレンシ・デマン
ドに応答して活動を実行する前に、コヒーレンシ・デマ
ンドと共に受け取ったグローバル・アドレスがGA2L
PA変換装置80を介してローカル物理アドレスに変換
される。
【0072】一実施形態によれば、要求エージェント1
00、ホーム・エージェント102、スレーブ・エージ
ェント104によって実行されるコヒーレンシ・プロト
コルは書込み無効化ポリシーを含む。言い換えれば、S
MPノード12内のプロセッサ16があるコヒーレンシ
単位を更新すると、他のSMPノード12内に記憶され
ているそのコヒーレンシ単位のコピーは無効化される。
しかし、他の実施形態では他の書込みポリシーを使用す
ることができる。たとえば、書込み更新ポリシーを使用
することができる。書込み更新ポリシーによれば、ある
コヒーレンシ単位が更新されると、更新済みデータは各
SMPノード12に記憶されているそのコヒーレンシ単
位の各コピーへ送られる。
00、ホーム・エージェント102、スレーブ・エージ
ェント104によって実行されるコヒーレンシ・プロト
コルは書込み無効化ポリシーを含む。言い換えれば、S
MPノード12内のプロセッサ16があるコヒーレンシ
単位を更新すると、他のSMPノード12内に記憶され
ているそのコヒーレンシ単位のコピーは無効化される。
しかし、他の実施形態では他の書込みポリシーを使用す
ることができる。たとえば、書込み更新ポリシーを使用
することができる。書込み更新ポリシーによれば、ある
コヒーレンシ単位が更新されると、更新済みデータは各
SMPノード12に記憶されているそのコヒーレンシ単
位の各コピーへ送られる。
【0073】次に図6を参照すると、要求エージェント
100に対応するSMPノード12内のSMPバス20
上の特定のトランザクションに応答して、第1のSMP
ノード12Aないし12D(「要求側ノード」)の要求
エージェント100と第2のSMPノード12Aないし
12D(「ホーム・ノード」)のホーム・エージェント
102と第3のSMPノード12Aないし12D(「ス
レーブ・ノード」)のスレーブ・エージェント104と
の間で実行される通常のコヒーレンシ活動を示す図が示
されている。図1に示すようなコンピュータ・システム
10の一実施形態によって使用される特定のコヒーレン
シ活動を、下記で図11ないし13に関して詳しく説明
する。この説明の残りの部分全体にわたって、参照符号
100、102、104は、要求エージェント、ホーム
・エージェント、スレーブ・エージェントを識別するた
めに使用される。エージェントが他のエージェントと通
信する際、2つのエージェントがそれぞれの異なるSM
Pノード12Aないし12Dに存在することが多いこと
を理解されたい。
100に対応するSMPノード12内のSMPバス20
上の特定のトランザクションに応答して、第1のSMP
ノード12Aないし12D(「要求側ノード」)の要求
エージェント100と第2のSMPノード12Aないし
12D(「ホーム・ノード」)のホーム・エージェント
102と第3のSMPノード12Aないし12D(「ス
レーブ・ノード」)のスレーブ・エージェント104と
の間で実行される通常のコヒーレンシ活動を示す図が示
されている。図1に示すようなコンピュータ・システム
10の一実施形態によって使用される特定のコヒーレン
シ活動を、下記で図11ないし13に関して詳しく説明
する。この説明の残りの部分全体にわたって、参照符号
100、102、104は、要求エージェント、ホーム
・エージェント、スレーブ・エージェントを識別するた
めに使用される。エージェントが他のエージェントと通
信する際、2つのエージェントがそれぞれの異なるSM
Pノード12Aないし12Dに存在することが多いこと
を理解されたい。
【0074】要求エージェント100は、SMPバス2
0からトランザクションを受け取ると、トランザクショ
ンに適したコヒーレンシ要求を形成し、トランザクショ
ンのアドレスに対応するホーム・ノードへコヒーレンシ
要求を送る(参照符号110)。コヒーレンシ要求は、
要求エージェント100から要求されたアクセス権なら
びに影響を受けるコヒーレンシ単位のグローバル・アド
レスを示す。要求されたアクセス権は、要求エージェン
ト100に対応するSMPノード12で試みられている
トランザクションの実行を可能にするのに十分なもので
ある。
0からトランザクションを受け取ると、トランザクショ
ンに適したコヒーレンシ要求を形成し、トランザクショ
ンのアドレスに対応するホーム・ノードへコヒーレンシ
要求を送る(参照符号110)。コヒーレンシ要求は、
要求エージェント100から要求されたアクセス権なら
びに影響を受けるコヒーレンシ単位のグローバル・アド
レスを示す。要求されたアクセス権は、要求エージェン
ト100に対応するSMPノード12で試みられている
トランザクションの実行を可能にするのに十分なもので
ある。
【0075】ホーム・エージェント102は、コヒーレ
ンシ要求を受け取ると、関連するディレクトリ66にア
クセスし、どのSMPノード12が、影響を受けるコヒ
ーレンシ単位のコピーを記憶しているかを判定する。ま
た、ホーム・エージェント102はコヒーレンシ単位の
所有者を判定する。ホーム・エージェント102は、影
響を受けるコヒーレンシ単位のコピーを記憶している各
ノードのスレーブ・エージェント104と、影響を受け
るコヒーレンシ単位に対する所有コヒーレンシ状態を有
するノードのスレーブ・エージェント104へのコヒー
レンシ・デマンドを生成することができる(参照符号1
12)。コヒーレンシ・デマンドは、受取側SMPノー
ド12内の影響を受けるコヒーレンシ単位の新しいコヒ
ーレンシ状態を示す。コヒーレンシ要求が未処理なの
で、ホーム・エージェント102は、影響を受けるコヒ
ーレンシ単位に関連するその後のコヒーレンシ要求がホ
ーム・エージェント102によって開始されないよう
に、影響を受けるコヒーレンシ単位に対応するコヒーレ
ンシ情報をブロックする。また、ホーム・エージェント
102は、コヒーレンシ要求が完了したことを反映する
ようにコヒーレンシ情報を更新する。
ンシ要求を受け取ると、関連するディレクトリ66にア
クセスし、どのSMPノード12が、影響を受けるコヒ
ーレンシ単位のコピーを記憶しているかを判定する。ま
た、ホーム・エージェント102はコヒーレンシ単位の
所有者を判定する。ホーム・エージェント102は、影
響を受けるコヒーレンシ単位のコピーを記憶している各
ノードのスレーブ・エージェント104と、影響を受け
るコヒーレンシ単位に対する所有コヒーレンシ状態を有
するノードのスレーブ・エージェント104へのコヒー
レンシ・デマンドを生成することができる(参照符号1
12)。コヒーレンシ・デマンドは、受取側SMPノー
ド12内の影響を受けるコヒーレンシ単位の新しいコヒ
ーレンシ状態を示す。コヒーレンシ要求が未処理なの
で、ホーム・エージェント102は、影響を受けるコヒ
ーレンシ単位に関連するその後のコヒーレンシ要求がホ
ーム・エージェント102によって開始されないよう
に、影響を受けるコヒーレンシ単位に対応するコヒーレ
ンシ情報をブロックする。また、ホーム・エージェント
102は、コヒーレンシ要求が完了したことを反映する
ようにコヒーレンシ情報を更新する。
【0076】ホーム・エージェント102は、要求エー
ジェント100へコヒーレンシ応答を送ることもできる
(参照符号114)。コヒーレンシ応答は、スレーブ・
エージェント104から発行されるコヒーレンシ応答の
数を示すことができる。別法として、ある種のトランザ
クションは、スレーブ・エージェント104との対話な
しで完了することができる。たとえば、ホーム・エージ
ェント102を含むSMPノード12内の入出力インタ
フェース26を目標とする入出力トランザクションは、
ホーム・エージェント102によって完了することがで
きる。ホーム・エージェント102は、関連するSMP
バス20に関するトランザクションを待機させ(参照符
号116)、次いで、トランザクションが完了したこと
を示す応答を送ることができる。
ジェント100へコヒーレンシ応答を送ることもできる
(参照符号114)。コヒーレンシ応答は、スレーブ・
エージェント104から発行されるコヒーレンシ応答の
数を示すことができる。別法として、ある種のトランザ
クションは、スレーブ・エージェント104との対話な
しで完了することができる。たとえば、ホーム・エージ
ェント102を含むSMPノード12内の入出力インタ
フェース26を目標とする入出力トランザクションは、
ホーム・エージェント102によって完了することがで
きる。ホーム・エージェント102は、関連するSMP
バス20に関するトランザクションを待機させ(参照符
号116)、次いで、トランザクションが完了したこと
を示す応答を送ることができる。
【0077】スレーブ・エージェント104は、ホーム
・エージェント102からのコヒーレンシ・デマンドに
応答して、関連するSMPバス20上に与えるトランザ
クションを待機させることができる(参照符号11
8)。また、スレーブ・エージェント104は要求エー
ジェント100へコヒーレンシ応答を送る(参照符号1
20)。コヒーレンシ応答は、特定のコヒーレンシ要求
に応答して受け取ったコヒーレンシ・デマンドがそのス
レーブによって完了したことを示す。コヒーレンシ応答
は、コヒーレンシ・デマンドが完了したとき、あるいは
コヒーレンシ・デマンドが、対応するSMPノード12
上で確実に完了し、影響を受けるコヒーレンシ単位に対
する状態変化がコヒーレンシ・デマンドが完了するより
も前に実行される、コヒーレンシ・デマンドが完了する
よりも前の時間に、スレーブ・エージェント104によ
って送られる。
・エージェント102からのコヒーレンシ・デマンドに
応答して、関連するSMPバス20上に与えるトランザ
クションを待機させることができる(参照符号11
8)。また、スレーブ・エージェント104は要求エー
ジェント100へコヒーレンシ応答を送る(参照符号1
20)。コヒーレンシ応答は、特定のコヒーレンシ要求
に応答して受け取ったコヒーレンシ・デマンドがそのス
レーブによって完了したことを示す。コヒーレンシ応答
は、コヒーレンシ・デマンドが完了したとき、あるいは
コヒーレンシ・デマンドが、対応するSMPノード12
上で確実に完了し、影響を受けるコヒーレンシ単位に対
する状態変化がコヒーレンシ・デマンドが完了するより
も前に実行される、コヒーレンシ・デマンドが完了する
よりも前の時間に、スレーブ・エージェント104によ
って送られる。
【0078】要求エージェント100は、影響を受ける
各スレーブ・エージェント104からコヒーレンシ応答
を受け取ると、ホーム・エージェント102へコヒーレ
ンシ完了を送る(参照符号122)。ホーム・エージェ
ント102は、コヒーレンシ完了を受け取ると、対応す
るコヒーレンシ情報からブロックを削除する。要求エー
ジェント100は、再発行トランザクションを、SMP
バス20上で実行できるように待機させ、SMPノード
12内でトランザクションを完了することができる(参
照符号124)。
各スレーブ・エージェント104からコヒーレンシ応答
を受け取ると、ホーム・エージェント102へコヒーレ
ンシ完了を送る(参照符号122)。ホーム・エージェ
ント102は、コヒーレンシ完了を受け取ると、対応す
るコヒーレンシ情報からブロックを削除する。要求エー
ジェント100は、再発行トランザクションを、SMP
バス20上で実行できるように待機させ、SMPノード
12内でトランザクションを完了することができる(参
照符号124)。
【0079】コヒーレンシ要求を発行した要求エージェ
ント100によって各コヒーレンシ要求に固有のタグが
割り当てられることに留意されたい。その後に続くコヒ
ーレンシ・デマンド、コヒーレンシ応答、コヒーレンシ
完了はこのタグを含む。このように、特定のコヒーレン
シ要求に関するコヒーレンシ活動は、関連する各エージ
ェントによって識別することができる。さらに、非コヒ
ーレント・トランザクション(たとえば、入出力トラン
ザクション)に応答して非コヒーレント動作を実行でき
ることに留意されたい。非コヒーレント動作は、要求側
ノードとホーム・ノードしか使用しないものでよい。さ
らに、ホーム・エージェント102によって各コヒーレ
ンシ要求に異なる固有のタグを割り当てることができ
る。それぞれの異なるタグは、ホーム・エージェント1
02を識別し、要求側のタグの代わりにコヒーレンシ完
了を表すために使用される。
ント100によって各コヒーレンシ要求に固有のタグが
割り当てられることに留意されたい。その後に続くコヒ
ーレンシ・デマンド、コヒーレンシ応答、コヒーレンシ
完了はこのタグを含む。このように、特定のコヒーレン
シ要求に関するコヒーレンシ活動は、関連する各エージ
ェントによって識別することができる。さらに、非コヒ
ーレント・トランザクション(たとえば、入出力トラン
ザクション)に応答して非コヒーレント動作を実行でき
ることに留意されたい。非コヒーレント動作は、要求側
ノードとホーム・ノードしか使用しないものでよい。さ
らに、ホーム・エージェント102によって各コヒーレ
ンシ要求に異なる固有のタグを割り当てることができ
る。それぞれの異なるタグは、ホーム・エージェント1
02を識別し、要求側のタグの代わりにコヒーレンシ完
了を表すために使用される。
【0080】次に図7を参照すると、SMPバス20上
でのリード・ツー・オウン・トランザクションに応答し
たコンピュータ・システム10の例示的な実施形態に関
するコヒーレンシ活動を示す図が示されている。リード
・ツー・オウン・トランザクションが実行されるのは、
プロセッサ16によって要求された特定のデータに関し
てキャッシュ・ミスが検出され、プロセッサ16がコヒ
ーレンシ単位への書込み許可を要求したときである。ス
トア・キャッシュ・ミスはたとえば、リード・ツー・オ
ウン・トランザクションを生成することができる。
でのリード・ツー・オウン・トランザクションに応答し
たコンピュータ・システム10の例示的な実施形態に関
するコヒーレンシ活動を示す図が示されている。リード
・ツー・オウン・トランザクションが実行されるのは、
プロセッサ16によって要求された特定のデータに関し
てキャッシュ・ミスが検出され、プロセッサ16がコヒ
ーレンシ単位への書込み許可を要求したときである。ス
トア・キャッシュ・ミスはたとえば、リード・ツー・オ
ウン・トランザクションを生成することができる。
【0081】要求エージェント100、ホーム・エージ
ェント102、いくつかのスレーブ・エージェント10
4を図7に示す。SMPバス20からリード・ツー・オ
ウン・トランザクションを受け取ったノードは、影響を
受けるコヒーレンシ単位を無効状態で記憶する(たとえ
ば、コヒーレンシ単位はそのノードには記憶されな
い)。要求ノード100の下付き文字「i」は無効状態
を示す。ホーム・ノードは、コヒーレンシ単位を共用状
態で記憶し、いくつかのスレーブ・エージェント104
に対応するノードもコヒーレンシ単位を共用状態で記憶
する。ホーム・エージェント102およびスレーブ・エ
ージェント104の下付き文字「s」は、それらのノー
ドでの共用状態を示す。リード・ツー・オウン動作は、
要求されたコヒーレンシ単位を要求側ノードへ転送させ
る。要求側ノードはコヒーレンシ単位を修正状態で受け
取る。
ェント102、いくつかのスレーブ・エージェント10
4を図7に示す。SMPバス20からリード・ツー・オ
ウン・トランザクションを受け取ったノードは、影響を
受けるコヒーレンシ単位を無効状態で記憶する(たとえ
ば、コヒーレンシ単位はそのノードには記憶されな
い)。要求ノード100の下付き文字「i」は無効状態
を示す。ホーム・ノードは、コヒーレンシ単位を共用状
態で記憶し、いくつかのスレーブ・エージェント104
に対応するノードもコヒーレンシ単位を共用状態で記憶
する。ホーム・エージェント102およびスレーブ・エ
ージェント104の下付き文字「s」は、それらのノー
ドでの共用状態を示す。リード・ツー・オウン動作は、
要求されたコヒーレンシ単位を要求側ノードへ転送させ
る。要求側ノードはコヒーレンシ単位を修正状態で受け
取る。
【0082】要求エージェント100は、SMPバス2
0からリード・ツー・オウン・トランザクションを受け
取ると、コヒーレンシ単位のホーム・ノードへリード・
ツー・オウン・コヒーレンシ要求を送る(参照符号13
0)。受取側ホーム・ノードのホーム・エージェント1
02は、1つまたは複数の他のノードに関する共用状態
を検出する。スレーブ・エージェントが所有状態ではな
く共用状態であるので、ホーム・ノードは、要求された
データを直接供給することができる。ホーム・エージェ
ント102は、要求されたコヒーレンシ単位に対応する
データを含むデータ・コヒーレンシ応答を要求エージェ
ント100へ送る(参照符号132)。データ・コヒー
レンシ応答は、要求エージェント100がデータの所有
権を得る前に他のノードのスレーブ・エージェントから
受け取るべき肯定応答の数も示す。ホーム・エージェン
ト102は、要求側SMPノード12Aないし12Dが
コヒーレンシ単位の所有者であり、他のSMPノード1
2Aないし12Dがそれぞれ無効であることを示すよう
にディレクトリ66を更新する。要求エージェント10
0からのコヒーレンシ完了の受取時に、コヒーレンシ単
位に関するコヒーレンシ情報がブロック解除されると、
ディレクトリ66は各SMPノード12でのコヒーレン
シ単位の状態に一致する。
0からリード・ツー・オウン・トランザクションを受け
取ると、コヒーレンシ単位のホーム・ノードへリード・
ツー・オウン・コヒーレンシ要求を送る(参照符号13
0)。受取側ホーム・ノードのホーム・エージェント1
02は、1つまたは複数の他のノードに関する共用状態
を検出する。スレーブ・エージェントが所有状態ではな
く共用状態であるので、ホーム・ノードは、要求された
データを直接供給することができる。ホーム・エージェ
ント102は、要求されたコヒーレンシ単位に対応する
データを含むデータ・コヒーレンシ応答を要求エージェ
ント100へ送る(参照符号132)。データ・コヒー
レンシ応答は、要求エージェント100がデータの所有
権を得る前に他のノードのスレーブ・エージェントから
受け取るべき肯定応答の数も示す。ホーム・エージェン
ト102は、要求側SMPノード12Aないし12Dが
コヒーレンシ単位の所有者であり、他のSMPノード1
2Aないし12Dがそれぞれ無効であることを示すよう
にディレクトリ66を更新する。要求エージェント10
0からのコヒーレンシ完了の受取時に、コヒーレンシ単
位に関するコヒーレンシ情報がブロック解除されると、
ディレクトリ66は各SMPノード12でのコヒーレン
シ単位の状態に一致する。
【0083】ホーム・エージェント102は、影響を受
けるコヒーレンシ単位の共用コピーを維持している各ス
レーブ・エージェント104へ無効化コヒーレンシ・デ
マンドを送る(参照符号134A、134B、134
C)。無効化コヒーレンシ・デマンドは、受取側スレー
ブ・エージェントにノード内の対応するコヒーレンシ単
位を無効化させ、無効化が完了したことを示す肯定コヒ
ーレンシ応答を要求側ノードへ送らせる。各スレーブ・
エージェント104は、コヒーレンシ単位の無効化を完
了し、それに続いて肯定コヒーレンシ応答を送る(参照
符号136A、136B、136C)。一実施形態で
は、各肯定応答は、コヒーレンシ単位に関して要求エー
ジェント100によって受け取られる応答の総数のカウ
ントを含む。
けるコヒーレンシ単位の共用コピーを維持している各ス
レーブ・エージェント104へ無効化コヒーレンシ・デ
マンドを送る(参照符号134A、134B、134
C)。無効化コヒーレンシ・デマンドは、受取側スレー
ブ・エージェントにノード内の対応するコヒーレンシ単
位を無効化させ、無効化が完了したことを示す肯定コヒ
ーレンシ応答を要求側ノードへ送らせる。各スレーブ・
エージェント104は、コヒーレンシ単位の無効化を完
了し、それに続いて肯定コヒーレンシ応答を送る(参照
符号136A、136B、136C)。一実施形態で
は、各肯定応答は、コヒーレンシ単位に関して要求エー
ジェント100によって受け取られる応答の総数のカウ
ントを含む。
【0084】要求エージェント100は、スレーブ・エ
ージェント104から各肯定コヒーレンシ応答を受け取
り、ホーム・エージェント102からデータ・コヒーレ
ンシ応答を受け取った後、ホーム・エージェント102
へコヒーレンシ完了を送る(参照符号138)。要求エ
ージェント100は、そのローカル・メモリ内のコヒー
レンシ単位を無効化し、ホーム・エージェント102
は、対応するコヒーレンシ情報に対するブロックを解除
する。データ・コヒーレンシ応答132および肯定コヒ
ーレンシ応答136が、特に各ノード内の未処理のトラ
ンザクションの数に応じて任意の順序で受け取ることが
できることに留意されたい。
ージェント104から各肯定コヒーレンシ応答を受け取
り、ホーム・エージェント102からデータ・コヒーレ
ンシ応答を受け取った後、ホーム・エージェント102
へコヒーレンシ完了を送る(参照符号138)。要求エ
ージェント100は、そのローカル・メモリ内のコヒー
レンシ単位を無効化し、ホーム・エージェント102
は、対応するコヒーレンシ情報に対するブロックを解除
する。データ・コヒーレンシ応答132および肯定コヒ
ーレンシ応答136が、特に各ノード内の未処理のトラ
ンザクションの数に応じて任意の順序で受け取ることが
できることに留意されたい。
【0085】次に図8を参照すると、要求エージェント
100によって使用される例示的な状態マシンを示すフ
ローチャート140が示されている。要求エージェント
100は、フローチャート140で表した状態マシンの
複数の独立のコピーを含むことができ、そのため、複数
の要求を並行して処理することができる。
100によって使用される例示的な状態マシンを示すフ
ローチャート140が示されている。要求エージェント
100は、フローチャート140で表した状態マシンの
複数の独立のコピーを含むことができ、そのため、複数
の要求を並行して処理することができる。
【0086】要求エージェント100は、SMP入力待
ち行列94からトランザクションを受け取ると、要求準
備完了状態142を開始する。要求準備完了状態142
では、要求エージェント100は、影響を受けるコヒー
レンシ単位のグローバル・アドレスで識別されるホーム
・ノードに存在するホーム・エージェント102へコヒ
ーレンシ要求を送る。要求エージェント100は、コヒ
ーレンシ要求を送ると、要求アクティブ状態144に遷
移する。要求アクティブ状態144中に、要求エージェ
ント100はスレーブ・エージェント104から(およ
び任意選択でホーム・エージェント102から)コヒー
レンシ応答を受け取る。各コヒーレンシ応答が受け取ら
れると、要求エージェント100は、コヒーレンシ活動
を開始したトランザクションのタイプに応じて新しい状
態に遷移する。また、要求活動状態142は、タイマを
使用して、所定のタイムアウト期間内にコヒーレンシ応
答が受け取られなかったことを検出することができる。
ホーム・エージェント102によって指定された応答の
数を受け取る前にタイマが満了した場合、要求エージェ
ント100はエラー状態に遷移する(図示せず)。さら
に、ある種の実施形態は、読取り転送が失敗したことを
示す応答を使用することができる。そのような応答が受
け取った場合、要求エージェント100は、要求準備完
了状態142に遷移し再び読取りを試みる。
ち行列94からトランザクションを受け取ると、要求準
備完了状態142を開始する。要求準備完了状態142
では、要求エージェント100は、影響を受けるコヒー
レンシ単位のグローバル・アドレスで識別されるホーム
・ノードに存在するホーム・エージェント102へコヒ
ーレンシ要求を送る。要求エージェント100は、コヒ
ーレンシ要求を送ると、要求アクティブ状態144に遷
移する。要求アクティブ状態144中に、要求エージェ
ント100はスレーブ・エージェント104から(およ
び任意選択でホーム・エージェント102から)コヒー
レンシ応答を受け取る。各コヒーレンシ応答が受け取ら
れると、要求エージェント100は、コヒーレンシ活動
を開始したトランザクションのタイプに応じて新しい状
態に遷移する。また、要求活動状態142は、タイマを
使用して、所定のタイムアウト期間内にコヒーレンシ応
答が受け取られなかったことを検出することができる。
ホーム・エージェント102によって指定された応答の
数を受け取る前にタイマが満了した場合、要求エージェ
ント100はエラー状態に遷移する(図示せず)。さら
に、ある種の実施形態は、読取り転送が失敗したことを
示す応答を使用することができる。そのような応答が受
け取った場合、要求エージェント100は、要求準備完
了状態142に遷移し再び読取りを試みる。
【0087】エラーやタイムアウトなしで応答が受け取
った場合、状態は読取りトランザクションに関しては要
求エージェント100によって読取り完了状態146に
遷移する。読取りトランザクションの場合、受け取られ
る応答のうちの1つに、要求されたコヒーレンシ単位に
対応するデータを含めることができることに留意された
い。要求エージェント100は、SMPバス20上で読
取りトランザクションを再発行し、さらにホーム・エー
ジェント102へコヒーレンシ完了を送る。それに続い
て、要求エージェント100はアイドル状態148に遷
移する。次いで、図8に示した状態マシンを使用して、
要求エージェント100によって新しいトランザクショ
ンを処理することができる。
った場合、状態は読取りトランザクションに関しては要
求エージェント100によって読取り完了状態146に
遷移する。読取りトランザクションの場合、受け取られ
る応答のうちの1つに、要求されたコヒーレンシ単位に
対応するデータを含めることができることに留意された
い。要求エージェント100は、SMPバス20上で読
取りトランザクションを再発行し、さらにホーム・エー
ジェント102へコヒーレンシ完了を送る。それに続い
て、要求エージェント100はアイドル状態148に遷
移する。次いで、図8に示した状態マシンを使用して、
要求エージェント100によって新しいトランザクショ
ンを処理することができる。
【0088】逆に、書込みトランザクションには書込み
アクティブ状態150および無視書込み再発行状態15
2が使用される。コンピュータ・システム10のある種
の書込みトランザクションでは、ネットワーク14上で
コヒーレンシ活動が開始されても、無視信号70はアサ
ートされない。たとえば、入出力書込みトランザクショ
ンは無視されない。書込みデータは、システム・インタ
フェース24へ転送され、そこに記憶される。SMPバ
ス20上での書込みトランザクションのデータ・フェー
ズよりも前にコヒーレンシ応答が受け取った場合にシス
テム・インタフェース24へデータを転送できるよう
に、非無視書込みトランザクションには書込みアクティ
ブ状態150が使用される。対応するデータが受け取っ
た後、要求エージェント100は書込み完了状態154
に遷移する。書込み完了状態154中に、コヒーレンシ
完了応答がホーム・エージェント102へ送られる。そ
れ続いて、要求エージェント100がアイドル状態14
8に遷移する。
アクティブ状態150および無視書込み再発行状態15
2が使用される。コンピュータ・システム10のある種
の書込みトランザクションでは、ネットワーク14上で
コヒーレンシ活動が開始されても、無視信号70はアサ
ートされない。たとえば、入出力書込みトランザクショ
ンは無視されない。書込みデータは、システム・インタ
フェース24へ転送され、そこに記憶される。SMPバ
ス20上での書込みトランザクションのデータ・フェー
ズよりも前にコヒーレンシ応答が受け取った場合にシス
テム・インタフェース24へデータを転送できるよう
に、非無視書込みトランザクションには書込みアクティ
ブ状態150が使用される。対応するデータが受け取っ
た後、要求エージェント100は書込み完了状態154
に遷移する。書込み完了状態154中に、コヒーレンシ
完了応答がホーム・エージェント102へ送られる。そ
れ続いて、要求エージェント100がアイドル状態14
8に遷移する。
【0089】無視された書込みトランザクションは、無
視書込み再発行状態152への遷移を介して処理され
る。無視書込み再発行状態152中に、要求エージェン
ト100は、無視された書込みトランザクションをSM
Pバス20上で再発行する。このように、書込みデータ
を発送側プロセッサ16から転送することができ、対応
する書込みトランザクションをプロセッサ16によって
解除することができる。要求エージェント100は、書
込みデータをコヒーレンシ完了と共に送るべきかどうか
に応じて、無視書込みアクティブ状態156と無視書込
み完了状態158のどちらかに遷移する。無視書込みア
クティブ状態156は、書込みアクティブ状態150と
同様に、SMPバス20からのデータ転送を待つために
使用される。無視書込み完了状態158中に、ホーム・
エージェント102へコヒーレンシ完了が送られる。そ
れに続いて、要求エージェント100がアイドル状態1
48に遷移する。要求エージェント100は、SMP入
力待ち行列94からトランザクションを受け取ると、ア
イドル状態148から要求準備完了状態142に遷移す
る。
視書込み再発行状態152への遷移を介して処理され
る。無視書込み再発行状態152中に、要求エージェン
ト100は、無視された書込みトランザクションをSM
Pバス20上で再発行する。このように、書込みデータ
を発送側プロセッサ16から転送することができ、対応
する書込みトランザクションをプロセッサ16によって
解除することができる。要求エージェント100は、書
込みデータをコヒーレンシ完了と共に送るべきかどうか
に応じて、無視書込みアクティブ状態156と無視書込
み完了状態158のどちらかに遷移する。無視書込みア
クティブ状態156は、書込みアクティブ状態150と
同様に、SMPバス20からのデータ転送を待つために
使用される。無視書込み完了状態158中に、ホーム・
エージェント102へコヒーレンシ完了が送られる。そ
れに続いて、要求エージェント100がアイドル状態1
48に遷移する。要求エージェント100は、SMP入
力待ち行列94からトランザクションを受け取ると、ア
イドル状態148から要求準備完了状態142に遷移す
る。
【0090】次に図9を参照すると、ホーム・エージェ
ント102に関する例示的な状態マシンを示すフローチ
ャート160が示されている。ホーム・エージェント1
02は、それに対する複数の未処理の要求を処理できる
ように、フローチャート160で表した状態マシンの複
数の独立のコピーを含むことができる。しかし、一実施
形態によれば、複数の未処理の要求が同じコヒーレンシ
単位に影響を与えることはない。
ント102に関する例示的な状態マシンを示すフローチ
ャート160が示されている。ホーム・エージェント1
02は、それに対する複数の未処理の要求を処理できる
ように、フローチャート160で表した状態マシンの複
数の独立のコピーを含むことができる。しかし、一実施
形態によれば、複数の未処理の要求が同じコヒーレンシ
単位に影響を与えることはない。
【0091】ホーム・エージェント102は、要求受取
状態162でコヒーレンシ要求を受け取る。この要求
は、コヒーレント要求とその他のトランザクション要求
のどちらかとして分類することができる。一実施形態に
よれば、他のトランザクション要求には、入出力読取り
要求および入出力書込み要求と、割り込み要求と、管理
要求を含めることができる。非コヒーレント要求は、状
態164の間にSMPバス20上でトランザクションを
送ることによって処理される。それに続いて、コヒーレ
ンシ完了が送られる。コヒーレンシ完了の受取時に、入
出力書込みトランザクションおよび割り込み許可トラン
ザクションによって、ホーム・ノード内のSMPバス2
0上でデータ・トランザクションが送られる(データ専
用状態165)。データが転送されると、ホーム・エー
ジェント102はアイドル状態166に遷移する。別法
として、コヒーレンシ完了の受取時に、入出力読取りト
ランザクション、管理トランザクション、割り込み拒否
トランザクションによって、アイドル状態への遷移が行
われる。
状態162でコヒーレンシ要求を受け取る。この要求
は、コヒーレント要求とその他のトランザクション要求
のどちらかとして分類することができる。一実施形態に
よれば、他のトランザクション要求には、入出力読取り
要求および入出力書込み要求と、割り込み要求と、管理
要求を含めることができる。非コヒーレント要求は、状
態164の間にSMPバス20上でトランザクションを
送ることによって処理される。それに続いて、コヒーレ
ンシ完了が送られる。コヒーレンシ完了の受取時に、入
出力書込みトランザクションおよび割り込み許可トラン
ザクションによって、ホーム・ノード内のSMPバス2
0上でデータ・トランザクションが送られる(データ専
用状態165)。データが転送されると、ホーム・エー
ジェント102はアイドル状態166に遷移する。別法
として、コヒーレンシ完了の受取時に、入出力読取りト
ランザクション、管理トランザクション、割り込み拒否
トランザクションによって、アイドル状態への遷移が行
われる。
【0092】逆に、ホーム・エージェント102は、コ
ヒーレンシ要求を受け取ると検査状態168に遷移す
る。検査状態168は、コヒーレンシ要求の影響を受け
るコヒーレンシ単位に関してコヒーレンシ活動が進行中
であるかどうかを検出するために使用される。コヒーレ
ンシ活動が進行中である(すなわち、コヒーレンシ情報
がブロックされている)場合、ホーム・エージェント1
02は、進行中のコヒーレンシ活動が完了するまで検査
状態168のままである。それに続いて、ホーム・エー
ジェント102は設定状態170に遷移する。
ヒーレンシ要求を受け取ると検査状態168に遷移す
る。検査状態168は、コヒーレンシ要求の影響を受け
るコヒーレンシ単位に関してコヒーレンシ活動が進行中
であるかどうかを検出するために使用される。コヒーレ
ンシ活動が進行中である(すなわち、コヒーレンシ情報
がブロックされている)場合、ホーム・エージェント1
02は、進行中のコヒーレンシ活動が完了するまで検査
状態168のままである。それに続いて、ホーム・エー
ジェント102は設定状態170に遷移する。
【0093】設定状態170中に、ホーム・エージェン
ト102は、ブロックすべき影響を受けるコヒーレンシ
単位に対応するコヒーレンシ情報を記憶するディレクト
リ・エントリの状況を設定する。ブロック状況によっ
て、影響を受けるコヒーレンシ単位へのその後の活動の
進行が妨げられ、コンピュータ・システム10のコヒー
レンシ・プロトコルが簡略化される。ホーム・エージェ
ント102は、受け取ったコヒーレンシ要求に対応する
トランザクションの読取り特性または書込み特性に応じ
て、読取り状態172または書込み応答状態174に遷
移する。
ト102は、ブロックすべき影響を受けるコヒーレンシ
単位に対応するコヒーレンシ情報を記憶するディレクト
リ・エントリの状況を設定する。ブロック状況によっ
て、影響を受けるコヒーレンシ単位へのその後の活動の
進行が妨げられ、コンピュータ・システム10のコヒー
レンシ・プロトコルが簡略化される。ホーム・エージェ
ント102は、受け取ったコヒーレンシ要求に対応する
トランザクションの読取り特性または書込み特性に応じ
て、読取り状態172または書込み応答状態174に遷
移する。
【0094】ホーム・エージェント102は、読取り状
態172中に、読取りトランザクションに関して更新さ
れるコヒーレンシ・デマンドをスレーブ・エージェント
104に発行する。ホーム・エージェント102は、要
求エージェント100からコヒーレンシ完了が受け取ら
れるまで読取り状態172のままであり、その後、ブロ
ック状況クリア状態176に遷移する。読取りを求める
コヒーレンシ要求が失敗する可能性のある実施形態で
は、ホーム・エージェント102は、読取りトランザク
ションの失敗を示すコヒーレンシ完了を受け取ると、影
響を受けるディレクトリ・エントリの状態をコヒーレン
シ要求の前の状態に復元する。
態172中に、読取りトランザクションに関して更新さ
れるコヒーレンシ・デマンドをスレーブ・エージェント
104に発行する。ホーム・エージェント102は、要
求エージェント100からコヒーレンシ完了が受け取ら
れるまで読取り状態172のままであり、その後、ブロ
ック状況クリア状態176に遷移する。読取りを求める
コヒーレンシ要求が失敗する可能性のある実施形態で
は、ホーム・エージェント102は、読取りトランザク
ションの失敗を示すコヒーレンシ完了を受け取ると、影
響を受けるディレクトリ・エントリの状態をコヒーレン
シ要求の前の状態に復元する。
【0095】書込み状態174中に、ホーム・エージェ
ント102は要求エージェント100へコヒーレンシ応
答を送る。ホーム・エージェント102は、要求エージ
ェント100からコヒーレンシ完了が受け取られるまで
応答書込み状態174のままである。コヒーレンシ完了
と共にデータが受け取った場合、ホーム・エージェント
102は書込みデータ状態178に遷移する。別法とし
て、ホーム・エージェント102は、データを含まない
コヒーレンシ完了を受け取ったときに、ブロック状況ク
リア状態176に遷移する。
ント102は要求エージェント100へコヒーレンシ応
答を送る。ホーム・エージェント102は、要求エージ
ェント100からコヒーレンシ完了が受け取られるまで
応答書込み状態174のままである。コヒーレンシ完了
と共にデータが受け取った場合、ホーム・エージェント
102は書込みデータ状態178に遷移する。別法とし
て、ホーム・エージェント102は、データを含まない
コヒーレンシ完了を受け取ったときに、ブロック状況ク
リア状態176に遷移する。
【0096】ホーム・エージェント102は、受け取っ
た書込みデータを転送するために、書込みデータ状態1
78中にSMPバス20上で書込みトランザクションを
発行する。たとえば、書込みストリーム動作(後述)に
よって、データがホーム・エージェント102へ転送さ
れる。ホーム・エージェント102は、受け取ったデー
タを、記憶するためにメモリ22へ送る。それに続い
て、ホーム・エージェント102はブロック状況クリア
状態176に遷移する。
た書込みデータを転送するために、書込みデータ状態1
78中にSMPバス20上で書込みトランザクションを
発行する。たとえば、書込みストリーム動作(後述)に
よって、データがホーム・エージェント102へ転送さ
れる。ホーム・エージェント102は、受け取ったデー
タを、記憶するためにメモリ22へ送る。それに続い
て、ホーム・エージェント102はブロック状況クリア
状態176に遷移する。
【0097】ホーム・エージェント102は、ブロック
状況クリア状態176で受け取ったコヒーレンシ要求の
影響を受けるコヒーレンシ単位に対応するコヒーレンシ
情報のブロック状況をクリアする。それに続いて、コヒ
ーレンシ情報にアクセスすることができる。非ブロック
・コヒーレンシ情報内に存在する状態は、前に受け取っ
たコヒーレンシ要求によって開始されたコヒーレンシ活
動を反映する。ホーム・エージェント102は、対応す
るコヒーレンシ情報のブロック状況をクリアすることに
よって、アイドル状態166に遷移する。ホーム・エー
ジェント102は、コヒーレンシ要求を受け取ると、ア
イドル状態166から受取要求状態162に遷移する。
状況クリア状態176で受け取ったコヒーレンシ要求の
影響を受けるコヒーレンシ単位に対応するコヒーレンシ
情報のブロック状況をクリアする。それに続いて、コヒ
ーレンシ情報にアクセスすることができる。非ブロック
・コヒーレンシ情報内に存在する状態は、前に受け取っ
たコヒーレンシ要求によって開始されたコヒーレンシ活
動を反映する。ホーム・エージェント102は、対応す
るコヒーレンシ情報のブロック状況をクリアすることに
よって、アイドル状態166に遷移する。ホーム・エー
ジェント102は、コヒーレンシ要求を受け取ると、ア
イドル状態166から受取要求状態162に遷移する。
【0098】次に図10を参照すると、スレーブ・エー
ジェント104に関する例示的な状態マシンを示すフロ
ーチャート180が示されている。スレーブ・エージェ
ント104は、受取状態182中にコヒーレンシ・デマ
ンドを受け取る。スレーブ・エージェント104は、コ
ヒーレンシ・デマンドに応答して、SMPバス20上に
与えられるトランザクションを待機させる。このトラン
ザクションによって、キャッシュ18およびプロセッサ
16の内部のキャッシュの状態が、受け取ったコヒーレ
ンシ・デマンドに応じて変化する。スレーブ・エージェ
ント104は、このトランザクションを要求発送状態1
84の間待機させる。
ジェント104に関する例示的な状態マシンを示すフロ
ーチャート180が示されている。スレーブ・エージェ
ント104は、受取状態182中にコヒーレンシ・デマ
ンドを受け取る。スレーブ・エージェント104は、コ
ヒーレンシ・デマンドに応答して、SMPバス20上に
与えられるトランザクションを待機させる。このトラン
ザクションによって、キャッシュ18およびプロセッサ
16の内部のキャッシュの状態が、受け取ったコヒーレ
ンシ・デマンドに応じて変化する。スレーブ・エージェ
ント104は、このトランザクションを要求発送状態1
84の間待機させる。
【0099】応答発送状態186中に、スレーブ・エー
ジェント104は、トランザクションを開始した要求エ
ージェント100へコヒーレンシ応答を送る。様々な実
施形態によれば、スレーブ・エージェント104が、S
MPバス20に関するトランザクションを待機させ、あ
るいはSMPバス20上のトランザクションが首尾良く
完了したときに要求発送状態184から応答発送状態1
86に遷移できることに留意されたい。スレーブ・エー
ジェント104は、コヒーレンシ応答を送った後、アイ
ドル状態188に遷移する。スレーブ・エージェント1
04は、コヒーレンシ・デマンドを受け取るとアイドル
状態188から受取状態182に遷移することができ
る。
ジェント104は、トランザクションを開始した要求エ
ージェント100へコヒーレンシ応答を送る。様々な実
施形態によれば、スレーブ・エージェント104が、S
MPバス20に関するトランザクションを待機させ、あ
るいはSMPバス20上のトランザクションが首尾良く
完了したときに要求発送状態184から応答発送状態1
86に遷移できることに留意されたい。スレーブ・エー
ジェント104は、コヒーレンシ応答を送った後、アイ
ドル状態188に遷移する。スレーブ・エージェント1
04は、コヒーレンシ・デマンドを受け取るとアイドル
状態188から受取状態182に遷移することができ
る。
【0100】次に図11ないし14を参照すると、例示
的なコヒーレンシ要求タイプ、コヒーレンシ・デマンド
・タイプ、コヒーレンシ応答タイプ、コヒーレンシ完了
タイプをリストしたいくつかの表が示されている。図1
1ないし14の表に示したタイプは、コンピュータ・シ
ステム10の一実施形態によって使用することができ
る。他の実施形態は、他の数組のタイプを使用すること
ができる。
的なコヒーレンシ要求タイプ、コヒーレンシ・デマンド
・タイプ、コヒーレンシ応答タイプ、コヒーレンシ完了
タイプをリストしたいくつかの表が示されている。図1
1ないし14の表に示したタイプは、コンピュータ・シ
ステム10の一実施形態によって使用することができ
る。他の実施形態は、他の数組のタイプを使用すること
ができる。
【0101】図11は、コヒーレンシ要求のタイプをリ
ストした表190である。第1の列192は、下記の図
15で使用される各要求タイプのコードをリストしたも
のである。第2の列194は、コヒーレンシ要求タイプ
をリストしたものであり、第3の列196は、コヒーレ
ンシ要求の発送元を示すものである。図12ないし14
では、同様な列がコヒーレンシ・デマンド、コヒーレン
シ応答、コヒーレンシ完了に使用される。「R」は要求
エージェント100を示し、「S」はスレーブ・エージ
ェント104を示し、「H」はホーム・エージェント1
02を示す。
ストした表190である。第1の列192は、下記の図
15で使用される各要求タイプのコードをリストしたも
のである。第2の列194は、コヒーレンシ要求タイプ
をリストしたものであり、第3の列196は、コヒーレ
ンシ要求の発送元を示すものである。図12ないし14
では、同様な列がコヒーレンシ・デマンド、コヒーレン
シ応答、コヒーレンシ完了に使用される。「R」は要求
エージェント100を示し、「S」はスレーブ・エージ
ェント104を示し、「H」はホーム・エージェント1
02を示す。
【0102】リード・ツー・シェア要求は、特定のSM
Pノードにコヒーレンシ単位が存在せず、SMPバス2
0からコヒーレンシ単位へのトランザクションの性質
上、コヒーレンシ単位への読取りアクセスが必要である
ときに実行される。たとえば、キャッシュ可能読取りト
ランザクションではリード・ツー・シェア要求が実行さ
れる。一般的に言えば、リード・ツー・シェア要求と
は、共用状態のコヒーレンシ単位のコピーを求める要求
である。同様に、リード・ツー・オウン要求とは、所有
状態のコヒーレンシ単位のコピーを求める要求である。
他のSMPノード内のコヒーレンシ単位のコピーは無効
状態に変更すべきである。リード・ツー・オウン要求
は、たとえばキャッシュ可能書込みトランザクションの
キャッシュ・ミスに応答して実行することができる。
Pノードにコヒーレンシ単位が存在せず、SMPバス2
0からコヒーレンシ単位へのトランザクションの性質
上、コヒーレンシ単位への読取りアクセスが必要である
ときに実行される。たとえば、キャッシュ可能読取りト
ランザクションではリード・ツー・シェア要求が実行さ
れる。一般的に言えば、リード・ツー・シェア要求と
は、共用状態のコヒーレンシ単位のコピーを求める要求
である。同様に、リード・ツー・オウン要求とは、所有
状態のコヒーレンシ単位のコピーを求める要求である。
他のSMPノード内のコヒーレンシ単位のコピーは無効
状態に変更すべきである。リード・ツー・オウン要求
は、たとえばキャッシュ可能書込みトランザクションの
キャッシュ・ミスに応答して実行することができる。
【0103】読取りストリームおよび書込みストリーム
とは、コヒーレンシ単位全体の読取りまたは書込みを求
める要求である。これらの動作は通常、ブロック・コピ
ー動作に使用される。プロセッサ16およびキャッシュ
18は、読取りストリーム要求または書込みストリーム
要求に応答して与えられたデータはキャッシュしない。
その代わり、読取りストリーム要求の場合には、コヒー
レンシ単位がプロセッサ16へのデータとして与えら
れ、書込みストリーム要求の場合にはメモリ22にデー
タが書き込まれる。リード・ツー・シェア要求、リード
・ツー・オウン要求、読取りストリーム要求をCOMA
動作(たとえば、RTS、RTO、RS)またはNUM
A動作(たとえば、RTSN、RTON、RSN)とし
て実行できることに留意されたい。
とは、コヒーレンシ単位全体の読取りまたは書込みを求
める要求である。これらの動作は通常、ブロック・コピ
ー動作に使用される。プロセッサ16およびキャッシュ
18は、読取りストリーム要求または書込みストリーム
要求に応答して与えられたデータはキャッシュしない。
その代わり、読取りストリーム要求の場合には、コヒー
レンシ単位がプロセッサ16へのデータとして与えら
れ、書込みストリーム要求の場合にはメモリ22にデー
タが書き込まれる。リード・ツー・シェア要求、リード
・ツー・オウン要求、読取りストリーム要求をCOMA
動作(たとえば、RTS、RTO、RS)またはNUM
A動作(たとえば、RTSN、RTON、RSN)とし
て実行できることに留意されたい。
【0104】書き直し要求は、コヒーレンシ単位のホー
ム・ノードにコヒーレンシ単位が書き込まれるときに実
行される。ホーム・ノードは、コヒーレンシ単位を書き
直す許可と共に応答する。コヒーレンシ単位は次いで、
コヒーレンシ完了と共にホーム・ノードに渡される。
ム・ノードにコヒーレンシ単位が書き込まれるときに実
行される。ホーム・ノードは、コヒーレンシ単位を書き
直す許可と共に応答する。コヒーレンシ単位は次いで、
コヒーレンシ完了と共にホーム・ノードに渡される。
【0105】無効要求は、他のSMPノード内のコヒー
レンシ単位のコピーを無効化するために実行される。無
効化要求が生成される例示的なケースは、共用または所
有されているコヒーレンシ単位への書込みストリーム・
トランザクションである。書込みストリーム・トランザ
クションではコヒーレンシ単位が更新され、したがって
他のSMPノード内のコヒーレンシ単位のコピーが無効
化される。
レンシ単位のコピーを無効化するために実行される。無
効化要求が生成される例示的なケースは、共用または所
有されているコヒーレンシ単位への書込みストリーム・
トランザクションである。書込みストリーム・トランザ
クションではコヒーレンシ単位が更新され、したがって
他のSMPノード内のコヒーレンシ単位のコピーが無効
化される。
【0106】入出力読取りトランザクションおよび入出
力書込みトランザクションに応答して入出力読取り要求
および入出力書込み要求が送られる。入出力トランザク
ションは非コヒーレントである(すなわち、トランザク
ションはキャッシュされず、トランザクションに対して
コヒーレンシは維持されない)。入出力ブロック・トラ
ンザクションでは、通常の入出力トランザクションより
も大きな、データの一部が転送される。一実施形態で
は、ブロック入出力動作で64バイトの情報が転送さ
れ、それに対して非ブロック入出力トランザクションで
8バイトが転送される。
力書込みトランザクションに応答して入出力読取り要求
および入出力書込み要求が送られる。入出力トランザク
ションは非コヒーレントである(すなわち、トランザク
ションはキャッシュされず、トランザクションに対して
コヒーレンシは維持されない)。入出力ブロック・トラ
ンザクションでは、通常の入出力トランザクションより
も大きな、データの一部が転送される。一実施形態で
は、ブロック入出力動作で64バイトの情報が転送さ
れ、それに対して非ブロック入出力トランザクションで
8バイトが転送される。
【0107】フラッシュ要求では、コヒーレンシ単位の
コピーが無効化される。修正されたコピーはホーム・ノ
ードへ返される。割り込み要求は、リモートSMPノー
ド内の特定の装置への割り込みを知らせるために使用さ
れる。割り込みは特定のプロセッサ16に与えることが
でき、そのプロセッサは、割り込みに応答して所定のア
ドレスに記憶されている割り込みサービス・ルーチンを
実行することができる。管理パケットは、ノード間であ
る種のリセット信号を送るために使用される。
コピーが無効化される。修正されたコピーはホーム・ノ
ードへ返される。割り込み要求は、リモートSMPノー
ド内の特定の装置への割り込みを知らせるために使用さ
れる。割り込みは特定のプロセッサ16に与えることが
でき、そのプロセッサは、割り込みに応答して所定のア
ドレスに記憶されている割り込みサービス・ルーチンを
実行することができる。管理パケットは、ノード間であ
る種のリセット信号を送るために使用される。
【0108】図12は、例示的なコヒーレンシ・デマン
ド・タイプをリストした表198である。表190と同
様に、表198には列192、194、196が含まれ
る。リード・ツー・シェア・デマンドは、コヒーレンシ
単位の所有者へ搬送され、それによってその所有者は要
求側ノードへデータを送る。同様に、リード・ツー・オ
ウン・デマンドおよび読取りストリーム・デマンドによ
って、コヒーレンシ単位の所有者は要求側ノードへデー
タを送る。また、リード・ツー・オウン・デマンドによ
って、所有者は所有者ノード内のコヒーレンシ単位の状
態を無効に変更する。読取りストリーム・デマンドおよ
びリード・ツー・シェア・デマンドによって、所有者ノ
ードにおける状態が(修正から)所有に変更される。
ド・タイプをリストした表198である。表190と同
様に、表198には列192、194、196が含まれ
る。リード・ツー・シェア・デマンドは、コヒーレンシ
単位の所有者へ搬送され、それによってその所有者は要
求側ノードへデータを送る。同様に、リード・ツー・オ
ウン・デマンドおよび読取りストリーム・デマンドによ
って、コヒーレンシ単位の所有者は要求側ノードへデー
タを送る。また、リード・ツー・オウン・デマンドによ
って、所有者は所有者ノード内のコヒーレンシ単位の状
態を無効に変更する。読取りストリーム・デマンドおよ
びリード・ツー・シェア・デマンドによって、所有者ノ
ードにおける状態が(修正から)所有に変更される。
【0109】無効化デマンドでは、対応するコヒーレン
シ単位は転送されない。その代わり、無効化デマンドで
はコヒーレンシ単位のコピーが無効化される。最後に、
管理デマンドは管理要求に応答して搬送される。各デマ
ンドが要求エージェント100からの要求に応答してホ
ーム・エージェント102によって開始されることを留
意されたい。
シ単位は転送されない。その代わり、無効化デマンドで
はコヒーレンシ単位のコピーが無効化される。最後に、
管理デマンドは管理要求に応答して搬送される。各デマ
ンドが要求エージェント100からの要求に応答してホ
ーム・エージェント102によって開始されることを留
意されたい。
【0110】図13は、コンピュータ・システム10の
一実施形態によって使用される例示的な応答タイプをリ
ストした表200である。図11および12と同様に、
図13はコヒーレンシ応答に関する列192、194、
196を含む。
一実施形態によって使用される例示的な応答タイプをリ
ストした表200である。図11および12と同様に、
図13はコヒーレンシ応答に関する列192、194、
196を含む。
【0111】データ応答とは、要求されたデータを含む
応答である。所有者スレーブ・エージェントは通常、コ
ヒーレンシ要求に関するデータ応答を与える。しかし、
ホーム・エージェントは入出力読取り要求に関するデー
タを与えることができる。
応答である。所有者スレーブ・エージェントは通常、コ
ヒーレンシ要求に関するデータ応答を与える。しかし、
ホーム・エージェントは入出力読取り要求に関するデー
タを与えることができる。
【0112】肯定応答は、特定のコヒーレンシ要求に関
連するコヒーレンシ・デマンドが完了したことを示す。
スレーブ・エージェントは通常、肯定応答を与えるが、
ホーム・エージェントは、ホーム・ノードがコヒーレン
シ単位の所有者であるときに肯定応答を(データと共
に)与える。
連するコヒーレンシ・デマンドが完了したことを示す。
スレーブ・エージェントは通常、肯定応答を与えるが、
ホーム・エージェントは、ホーム・ノードがコヒーレン
シ単位の所有者であるときに肯定応答を(データと共
に)与える。
【0113】スレーブ所有なし応答、アドレス・マップ
なし応答、エラー応答は、エラーが検出されたときにス
レーブ・エージェント104によって搬送される。スレ
ーブ所有なし応答は、コヒーレンシ単位の所有者および
スレーブがもはやコヒーレンシ単位を所有していないと
きにホーム・エージェント102によってスレーブが識
別された場合に送られる。アドレス・マップなし応答
は、所有権を主張している装置が、対応するSMPバス
20上にはないデマンドを、スレーブが受け取った場合
に、送られる。スレーブ・エージェントによって検出さ
れた他のエラー条件はエラー応答を介して示される。
なし応答、エラー応答は、エラーが検出されたときにス
レーブ・エージェント104によって搬送される。スレ
ーブ所有なし応答は、コヒーレンシ単位の所有者および
スレーブがもはやコヒーレンシ単位を所有していないと
きにホーム・エージェント102によってスレーブが識
別された場合に送られる。アドレス・マップなし応答
は、所有権を主張している装置が、対応するSMPバス
20上にはないデマンドを、スレーブが受け取った場合
に、送られる。スレーブ・エージェントによって検出さ
れた他のエラー条件はエラー応答を介して示される。
【0114】ホーム・エージェント102は、スレーブ
・エージェント104が使用できるエラー応答以外のエ
ラー応答を与えることができる。対応する要求がホーム
・エージェント102によるサービスを必要としていな
いことを示すために、ホーム・エージェント102によ
って否定肯定(NACK)および否定応答(NOPE)
が使用される。NACKトランザクションを使用して、
対応する要求がホーム・ノードによって拒否されたこと
を示すことができる。たとえば、割り込み要求は、受取
側ノードによって割り込みが拒否された場合にNACK
を受け取る。受取側ノードによって割り込みが受け入れ
られた場合には肯定応答(ACK)が搬送される。NO
PEトランザクションは、受取側ノードによって記憶さ
れていないコヒーレンシ単位のための対応するフラッシ
ュ要求が搬送されたことを示すために使用される。
・エージェント104が使用できるエラー応答以外のエ
ラー応答を与えることができる。対応する要求がホーム
・エージェント102によるサービスを必要としていな
いことを示すために、ホーム・エージェント102によ
って否定肯定(NACK)および否定応答(NOPE)
が使用される。NACKトランザクションを使用して、
対応する要求がホーム・ノードによって拒否されたこと
を示すことができる。たとえば、割り込み要求は、受取
側ノードによって割り込みが拒否された場合にNACK
を受け取る。受取側ノードによって割り込みが受け入れ
られた場合には肯定応答(ACK)が搬送される。NO
PEトランザクションは、受取側ノードによって記憶さ
れていないコヒーレンシ単位のための対応するフラッシ
ュ要求が搬送されたことを示すために使用される。
【0115】図14は、コンピュータ・システム10の
一実施形態による例示的なコヒーレンシ完了タイプを示
す表202である。図14は、図11ないし13と同様
に、コヒーレンシ完了に関する列192、194、19
6を含む。
一実施形態による例示的なコヒーレンシ完了タイプを示
す表202である。図14は、図11ないし13と同様
に、コヒーレンシ完了に関する列192、194、19
6を含む。
【0116】データなしの完了は、特定の要求が完了し
たことを示す、要求エージェント100からホーム・エ
ージェント102への信号として使用される。ホーム・
エージェント102は、これに応答して、対応するコヒ
ーレンシ情報をブロック解除する。SMPバス20上の
異なるトランザクションに対応する2種類のデータ完了
が含まれている。一方のタイプの再発行トランザクショ
ンでは、SMPバス20上でデータ・フェーズしか使用
されない。この再発行トランザクションは、一実施形態
では入出力書込みトランザクションおよび割り込みトラ
ンザクションに使用することができる。他方のタイプの
再発行トランザクションではアドレス・フェーズとデー
タ・フェーズの両方が使用される。書込みストリームや
書き直しなどのコヒーレント書込みは、アドレス・フェ
ーズとデータ・フェーズの両方を含む再発行トランザク
ションを使用することができる。最後に、要求された状
態を得ることに失敗した読取り要求に関する、失敗を示
す完了が含まれている。
たことを示す、要求エージェント100からホーム・エ
ージェント102への信号として使用される。ホーム・
エージェント102は、これに応答して、対応するコヒ
ーレンシ情報をブロック解除する。SMPバス20上の
異なるトランザクションに対応する2種類のデータ完了
が含まれている。一方のタイプの再発行トランザクショ
ンでは、SMPバス20上でデータ・フェーズしか使用
されない。この再発行トランザクションは、一実施形態
では入出力書込みトランザクションおよび割り込みトラ
ンザクションに使用することができる。他方のタイプの
再発行トランザクションではアドレス・フェーズとデー
タ・フェーズの両方が使用される。書込みストリームや
書き直しなどのコヒーレント書込みは、アドレス・フェ
ーズとデータ・フェーズの両方を含む再発行トランザク
ションを使用することができる。最後に、要求された状
態を得ることに失敗した読取り要求に関する、失敗を示
す完了が含まれている。
【0117】次に図15を参照すると、SMPバス20
上の様々なトランザクションに対するコヒーレンシ活動
を示す表210が示されている。表210は、他のSM
Pノード12へ要求を送らせるトランザクションを示
す。SMPノード内で完了するトランザクションは示さ
れていない。列内の「−」は、特定の行内で考えられる
ケースではその列に関して実行される活動がないことを
示す。要求エージェント100によってSMPバス20
上で受け取られるトランザクションを示すトランザクシ
ョン列212が含まれている。MTAG列214は、ト
ランザクションに対応するアドレスによってアクセスさ
れるコヒーレンシ単位のMTAGの状態を示す。図の状
態は、前述のMOSI状態と「n」状態とを含む。
「n」状態は、コヒーレンシ単位が、トランザクション
が開始されたSMPノードではNUMAモードでアクセ
スされることを示す。したがって、コヒーレンシ単位の
ローカル・コピーは要求側ノード・メモリには記憶され
ない。その代わり、コヒーレンシ単位は、ホームSMP
ノード(または所有者ノード)から転送され、メモリ2
2に記憶されずに要求側プロセッサ16またはキャッシ
ュ18へ送られる。
上の様々なトランザクションに対するコヒーレンシ活動
を示す表210が示されている。表210は、他のSM
Pノード12へ要求を送らせるトランザクションを示
す。SMPノード内で完了するトランザクションは示さ
れていない。列内の「−」は、特定の行内で考えられる
ケースではその列に関して実行される活動がないことを
示す。要求エージェント100によってSMPバス20
上で受け取られるトランザクションを示すトランザクシ
ョン列212が含まれている。MTAG列214は、ト
ランザクションに対応するアドレスによってアクセスさ
れるコヒーレンシ単位のMTAGの状態を示す。図の状
態は、前述のMOSI状態と「n」状態とを含む。
「n」状態は、コヒーレンシ単位が、トランザクション
が開始されたSMPノードではNUMAモードでアクセ
スされることを示す。したがって、コヒーレンシ単位の
ローカル・コピーは要求側ノード・メモリには記憶され
ない。その代わり、コヒーレンシ単位は、ホームSMP
ノード(または所有者ノード)から転送され、メモリ2
2に記憶されずに要求側プロセッサ16またはキャッシ
ュ18へ送られる。
【0118】要求列216は、トランザクションのアド
レスによって識別されるホーム・エージェントへ送られ
るコヒーレンシ要求をリストしたものである。ホーム・
エージェント102は、列216にリストしたコヒーレ
ンシ要求を受け取ると、ディレクトリ66に記録されて
いる要求側ノードのコヒーレンシ単位の状態を検査す
る。D列218は、要求側ノードに関して記録されるコ
ヒーレンシ単位の現状態をリストしたものであり、D’
列220は、受け取ったコヒーレンシ要求に応答してホ
ーム・エージェント102によって更新された、要求側
ノードに関して記録されるコヒーレンシ単位の状態をリ
ストしたものである。ホーム・エージェント102は、
コヒーレンシ単位の所有者への第1のコヒーレンシ・デ
マンドと、コヒーレンシ単位の共用コピーを維持してい
るノードへの追加コヒーレンシ・デマンドを生成するこ
とができる。所有者へ送られるコヒーレンシ・デマンド
を列222に示し、それに対して共用ノードへ送られる
コヒーレンシ・デマンドを列224に示す。さらに、ホ
ーム・エージェント102は要求側ノードへコヒーレン
シ応答を送ることができる。ホーム・エージェント応答
を列226に示す。
レスによって識別されるホーム・エージェントへ送られ
るコヒーレンシ要求をリストしたものである。ホーム・
エージェント102は、列216にリストしたコヒーレ
ンシ要求を受け取ると、ディレクトリ66に記録されて
いる要求側ノードのコヒーレンシ単位の状態を検査す
る。D列218は、要求側ノードに関して記録されるコ
ヒーレンシ単位の現状態をリストしたものであり、D’
列220は、受け取ったコヒーレンシ要求に応答してホ
ーム・エージェント102によって更新された、要求側
ノードに関して記録されるコヒーレンシ単位の状態をリ
ストしたものである。ホーム・エージェント102は、
コヒーレンシ単位の所有者への第1のコヒーレンシ・デ
マンドと、コヒーレンシ単位の共用コピーを維持してい
るノードへの追加コヒーレンシ・デマンドを生成するこ
とができる。所有者へ送られるコヒーレンシ・デマンド
を列222に示し、それに対して共用ノードへ送られる
コヒーレンシ・デマンドを列224に示す。さらに、ホ
ーム・エージェント102は要求側ノードへコヒーレン
シ応答を送ることができる。ホーム・エージェント応答
を列226に示す。
【0119】コヒーレンシ単位の所有者として示された
SMPノード内のスレーブ・エージェント104は、列
228に示したようにコヒーレンシ応答を送る。共用ノ
ードとして示されたノード内のスレーブ・エージェント
104は、受け取ったコヒーレンシ・デマンドで示され
た状態変化を実行した後に、列230に示したコヒーレ
ンシ応答を用いて、列224に示したコヒーレンシ・デ
マンドに応答する。
SMPノード内のスレーブ・エージェント104は、列
228に示したようにコヒーレンシ応答を送る。共用ノ
ードとして示されたノード内のスレーブ・エージェント
104は、受け取ったコヒーレンシ・デマンドで示され
た状態変化を実行した後に、列230に示したコヒーレ
ンシ応答を用いて、列224に示したコヒーレンシ・デ
マンドに応答する。
【0120】要求エージェント100は、適当な数のコ
ヒーレンシ応答を受け取ると、ホーム・エージェント1
02へコヒーレンシ完了を送る。様々なトランザクショ
ンに使用されるコヒーレンシ完了を列232に示す。
ヒーレンシ応答を受け取ると、ホーム・エージェント1
02へコヒーレンシ完了を送る。様々なトランザクショ
ンに使用されるコヒーレンシ完了を列232に示す。
【0121】一例を挙げると、行234は、対応するM
TAG状態が無効であるSMPバス20上のリード・ツ
ー・シェア・トランザクションに対するコヒーレンシ活
動を示す。対応する要求エージェント100は、リード
・ツー・シェア・トランザクションに関連付けられたグ
ローバル・アドレスで識別されたホーム・ノードへリー
ド・ツー・シェア・コヒーレンシ要求を送る。行234
に示したケースでは、ホーム・ノードのディレクトリ
は、要求側ノードがデータを無効状態で記憶しているこ
とを示す。要求側ノードに関するホーム・ノードのディ
レクトリ内の状態は共用に更新され、ホーム・エージェ
ント102により、ディレクトリによって所有者として
示されたノードへリード・ツー・シェア・コヒーレンシ
・デマンドが送られる。トランザクションが共用状態を
得ようとするので、共用者へはデマンドは送られない。
所有者ノード内のスレーブ・エージェント104は、コ
ヒーレンシ単位に対応するデータを要求側ノードへ送
る。要求側ノード内の要求エージェント100は、デー
タを受け取るとホーム・ノード内のホーム・エージェン
ト102へコヒーレンシ完了を送る。したがって、トラ
ンザクションが完了する。
TAG状態が無効であるSMPバス20上のリード・ツ
ー・シェア・トランザクションに対するコヒーレンシ活
動を示す。対応する要求エージェント100は、リード
・ツー・シェア・トランザクションに関連付けられたグ
ローバル・アドレスで識別されたホーム・ノードへリー
ド・ツー・シェア・コヒーレンシ要求を送る。行234
に示したケースでは、ホーム・ノードのディレクトリ
は、要求側ノードがデータを無効状態で記憶しているこ
とを示す。要求側ノードに関するホーム・ノードのディ
レクトリ内の状態は共用に更新され、ホーム・エージェ
ント102により、ディレクトリによって所有者として
示されたノードへリード・ツー・シェア・コヒーレンシ
・デマンドが送られる。トランザクションが共用状態を
得ようとするので、共用者へはデマンドは送られない。
所有者ノード内のスレーブ・エージェント104は、コ
ヒーレンシ単位に対応するデータを要求側ノードへ送
る。要求側ノード内の要求エージェント100は、デー
タを受け取るとホーム・ノード内のホーム・エージェン
ト102へコヒーレンシ完了を送る。したがって、トラ
ンザクションが完了する。
【0122】D列218に示した状態がMTAG列21
4の状態に合致しないことがあることに留意されたい。
たとえば、行236は、MTAG列214では無効状態
のコヒーレンシ単位を示す。しかし、D列218内の対
応する状態は、修正でも、あるいは所有でも、あるいは
共用でもよい。そのような状況が発生するのは、コヒー
レンシ単位への現トランザクションに関するMTAG6
8へのアクセスがアドレス・バス58上で実行されると
きに、コヒーレンシ単位に関する要求側ノードからの前
のコヒーレンシ要求がコンピュータ・システム10内で
未処理であるときである。しかし、特定のアクセス時に
ディレクトリ・エントリがブロックされるので、未処理
の要求は、現要求によるディレクトリ66のアクセスよ
りも前に完了する。このため、生成されるコヒーレンシ
・デマンドは、(ディレクトリがアクセスされるときの
MTAG状態に合致する)ディレクトリ状態に依存す
る。行236に示した例では、コヒーレンシ単位が現
在、要求側ノードに存在していることをディレクトリが
示しているので、リード・ツー・シェア要求は、単に要
求側ノード内のSMPバス20上で読取りトランザクシ
ョンを再発行することによって完了することができる。
したがって、ホーム・ノードは、応答カウント1を含
め、要求に肯定応答し、それに続いて要求側ノードは読
取りトランザクションを再発行することができる。さら
に、表210には多数のタイプのトランザクションがリ
ストされているが、コンピュータ・システム10の様々
な実施形態に応じて他のトランザクションを使用できる
ことに留意されたい。
4の状態に合致しないことがあることに留意されたい。
たとえば、行236は、MTAG列214では無効状態
のコヒーレンシ単位を示す。しかし、D列218内の対
応する状態は、修正でも、あるいは所有でも、あるいは
共用でもよい。そのような状況が発生するのは、コヒー
レンシ単位への現トランザクションに関するMTAG6
8へのアクセスがアドレス・バス58上で実行されると
きに、コヒーレンシ単位に関する要求側ノードからの前
のコヒーレンシ要求がコンピュータ・システム10内で
未処理であるときである。しかし、特定のアクセス時に
ディレクトリ・エントリがブロックされるので、未処理
の要求は、現要求によるディレクトリ66のアクセスよ
りも前に完了する。このため、生成されるコヒーレンシ
・デマンドは、(ディレクトリがアクセスされるときの
MTAG状態に合致する)ディレクトリ状態に依存す
る。行236に示した例では、コヒーレンシ単位が現
在、要求側ノードに存在していることをディレクトリが
示しているので、リード・ツー・シェア要求は、単に要
求側ノード内のSMPバス20上で読取りトランザクシ
ョンを再発行することによって完了することができる。
したがって、ホーム・ノードは、応答カウント1を含
め、要求に肯定応答し、それに続いて要求側ノードは読
取りトランザクションを再発行することができる。さら
に、表210には多数のタイプのトランザクションがリ
ストされているが、コンピュータ・システム10の様々
な実施形態に応じて他のトランザクションを使用できる
ことに留意されたい。
【0123】コントローラ・サブノードおよびスヌーパ
・サブノード次に図16を参照すると、SMPノード1
2Aの1つの特定の実施形態のブロック図が示されてい
る。他の実施形態も企図される。図16に示したよう
に、SMPノード12Aは、(点線で囲まれた)システ
ム・インタフェース24と、図3に示したのと同様なサ
ブノード50Aおよび50Bとを備える。図を簡単にす
るために、図3に示したサブノード50Aおよび50B
の実施形態のある細部は図16では省略してある。図1
6は、システム・インタフェース24を、コントローラ
・サブノード300とスヌーパ・サブノード302とを
含む複数のサブノードとして示す。コントローラ・サブ
ノード300は、ネットワーク14ならびにSMPバス
20に結合され、それに対してスヌーパ・サブノード3
02はSMPバス20に結合される。スヌーパ・サブノ
ード302とコントローラ・サブノード300との間に
MTAGミス線304が結合される。MTAGミス線3
04および無視信号70が、SMPバス20上で使用で
きるブロードキャスト信号であり、図16では話を明確
にするために別々に示されていることに留意されたい。
・サブノード次に図16を参照すると、SMPノード1
2Aの1つの特定の実施形態のブロック図が示されてい
る。他の実施形態も企図される。図16に示したよう
に、SMPノード12Aは、(点線で囲まれた)システ
ム・インタフェース24と、図3に示したのと同様なサ
ブノード50Aおよび50Bとを備える。図を簡単にす
るために、図3に示したサブノード50Aおよび50B
の実施形態のある細部は図16では省略してある。図1
6は、システム・インタフェース24を、コントローラ
・サブノード300とスヌーパ・サブノード302とを
含む複数のサブノードとして示す。コントローラ・サブ
ノード300は、ネットワーク14ならびにSMPバス
20に結合され、それに対してスヌーパ・サブノード3
02はSMPバス20に結合される。スヌーパ・サブノ
ード302とコントローラ・サブノード300との間に
MTAGミス線304が結合される。MTAGミス線3
04および無視信号70が、SMPバス20上で使用で
きるブロードキャスト信号であり、図16では話を明確
にするために別々に示されていることに留意されたい。
【0124】一般的に言えば、コントローラ・サブノー
ド300は、SMPノード12Aとネットワーク14と
の間で通信するように構成される。スヌーパ・サブノー
ド302は、追加MTAGデータを記憶するように構成
される。SMPノード12Aの様々な構成は、サブノー
ド50のメモリ部分56に含まれるメモリの量と、MT
AGデータを記憶する際に使用できるコントローラ・ノ
ードまたはスヌーパ・サブノード上で構成できるメモリ
・モジュールの数に応じて、零個以上のスヌーパ・サブ
ノード302を含むことができる。一実施形態では、S
MPノード12Aないし12Dに最大で3つのスヌーパ
・サブノード302を含めることができる。特定の一実
施形態では、コントローラ・サブノード300およびス
ヌーパ・サブノード302はそれぞれ、(サブノード5
0Aおよび50Bに関する図3の議論と同様に)SMP
バス20を備えるバックプレーンに挿入できる別々のプ
リント回路ボードを備える。本明細書では、サブノード
の語は、より大きな機能の一部を実施する論理回路のブ
ロックを示すために使用される。たとえば、コントロー
ラ・サブノード300およびスヌーパ・サブノード30
2は、システム・インタフェース24の一実施形態を実
施する。
ド300は、SMPノード12Aとネットワーク14と
の間で通信するように構成される。スヌーパ・サブノー
ド302は、追加MTAGデータを記憶するように構成
される。SMPノード12Aの様々な構成は、サブノー
ド50のメモリ部分56に含まれるメモリの量と、MT
AGデータを記憶する際に使用できるコントローラ・ノ
ードまたはスヌーパ・サブノード上で構成できるメモリ
・モジュールの数に応じて、零個以上のスヌーパ・サブ
ノード302を含むことができる。一実施形態では、S
MPノード12Aないし12Dに最大で3つのスヌーパ
・サブノード302を含めることができる。特定の一実
施形態では、コントローラ・サブノード300およびス
ヌーパ・サブノード302はそれぞれ、(サブノード5
0Aおよび50Bに関する図3の議論と同様に)SMP
バス20を備えるバックプレーンに挿入できる別々のプ
リント回路ボードを備える。本明細書では、サブノード
の語は、より大きな機能の一部を実施する論理回路のブ
ロックを示すために使用される。たとえば、コントロー
ラ・サブノード300およびスヌーパ・サブノード30
2は、システム・インタフェース24の一実施形態を実
施する。
【0125】コントローラ・サブノード300は、デー
タ・コントローラ306とアドレス・コントローラ30
8とを含む。データ・コントローラ306は、図5に示
したように入力データ待ち行列88と出力データ待ち行
列90とを含み、かつ待ち行列を管理する制御ロジック
を含む。アドレス・コントローラ308は、要求エージ
ェント100と、ホーム・エージェント102と、スレ
ーブ・エージェント104と、図5に示した残りの入力
待ち行列および出力待ち行列と、トランザクション・フ
ィルタ98とを備える。アドレス・コントローラ308
は、ディレクトリ66、変換記憶域64、複数のMTA
G記憶域310Aおよび310Bが結合される。MTA
G記憶域310Aおよび310Bは、図5に示したMT
AG68の一部を備える。スヌーパ・サブノード302
には他のMTAG記憶域310Cおよび310Dが含ま
れる。スヌーパ・サブノード302はさらに、アドレス
・コントローラ312を含む。
タ・コントローラ306とアドレス・コントローラ30
8とを含む。データ・コントローラ306は、図5に示
したように入力データ待ち行列88と出力データ待ち行
列90とを含み、かつ待ち行列を管理する制御ロジック
を含む。アドレス・コントローラ308は、要求エージ
ェント100と、ホーム・エージェント102と、スレ
ーブ・エージェント104と、図5に示した残りの入力
待ち行列および出力待ち行列と、トランザクション・フ
ィルタ98とを備える。アドレス・コントローラ308
は、ディレクトリ66、変換記憶域64、複数のMTA
G記憶域310Aおよび310Bが結合される。MTA
G記憶域310Aおよび310Bは、図5に示したMT
AG68の一部を備える。スヌーパ・サブノード302
には他のMTAG記憶域310Cおよび310Dが含ま
れる。スヌーパ・サブノード302はさらに、アドレス
・コントローラ312を含む。
【0126】特定のコヒーレンシ単位に対応するMTA
Gは1つのMTAG記憶域310に記憶される。SMP
バス20上にトランザクションが与えられると、各サブ
ノード300または302は、トランザクションの影響
を受けるコヒーレンシ単位に対応するMTAGがサブノ
ード自体に記憶されているかどうかを判定し、MTAG
を記憶しているサブノードは、無視信号70を適切にア
サートまたはアサート解除することによって応答する。
MTAGに記憶されているアクセス権が、トランザクシ
ョンを継続できることを示している場合、無視信号70
はアサート解除される。逆に、MTAGに記憶されてい
るアクセス権が、まずネットワーク14上でコヒーレン
シ活動を実行しなければならないことを示している場合
は、無視信号70がアサートされる。
Gは1つのMTAG記憶域310に記憶される。SMP
バス20上にトランザクションが与えられると、各サブ
ノード300または302は、トランザクションの影響
を受けるコヒーレンシ単位に対応するMTAGがサブノ
ード自体に記憶されているかどうかを判定し、MTAG
を記憶しているサブノードは、無視信号70を適切にア
サートまたはアサート解除することによって応答する。
MTAGに記憶されているアクセス権が、トランザクシ
ョンを継続できることを示している場合、無視信号70
はアサート解除される。逆に、MTAGに記憶されてい
るアクセス権が、まずネットワーク14上でコヒーレン
シ活動を実行しなければならないことを示している場合
は、無視信号70がアサートされる。
【0127】スヌーパ・サブノード302は、必要に応
じて無視信号70をアサートするだけでなく、MTAG
ミス線304上でMTAGミス信号をアサートする。コ
ントローラ・サブノード300は、MTAGミス線30
4がアサートされたことを検出し、それによって、SM
Pノードによって維持されているトランザクションを完
了するためのアクセス権が不十分であることを、トラン
ザクションに対応するMTAGが示すように無視信号7
0がアサートされていることを知る。たとえば、読取り
専用アクセス権が維持されているコヒーレンシ単位への
書込みトランザクションでは、無視信号70およびMT
AGミス線304がアサートされる。MTAGミス線3
04が含まれているのは、他の理由でSMPバス20に
取り付けられた他の装置によって無視信号70をアサー
トすることができるからである。コントローラ・サブノ
ード300は、MTAGミスの理由(一実施形態によれ
ば、この理由の場合、コヒーレンシ活動を開始し、影響
を受けるコヒーレンシ単位を事前に取り込むことができ
る)とその他の理由(装置が有する、トランザクション
用の待ち行列内の記憶空間が不十分であることなど)と
を区別する。
じて無視信号70をアサートするだけでなく、MTAG
ミス線304上でMTAGミス信号をアサートする。コ
ントローラ・サブノード300は、MTAGミス線30
4がアサートされたことを検出し、それによって、SM
Pノードによって維持されているトランザクションを完
了するためのアクセス権が不十分であることを、トラン
ザクションに対応するMTAGが示すように無視信号7
0がアサートされていることを知る。たとえば、読取り
専用アクセス権が維持されているコヒーレンシ単位への
書込みトランザクションでは、無視信号70およびMT
AGミス線304がアサートされる。MTAGミス線3
04が含まれているのは、他の理由でSMPバス20に
取り付けられた他の装置によって無視信号70をアサー
トすることができるからである。コントローラ・サブノ
ード300は、MTAGミスの理由(一実施形態によれ
ば、この理由の場合、コヒーレンシ活動を開始し、影響
を受けるコヒーレンシ単位を事前に取り込むことができ
る)とその他の理由(装置が有する、トランザクション
用の待ち行列内の記憶空間が不十分であることなど)と
を区別する。
【0128】一実施形態では、各MTAG記憶域310
はSRAMモジュールのバンクを備える。バンク当たり
のSRAMモジュールの数は、MTAG記憶域310へ
のアクセス時間に課される制約内で変更することができ
る。バンクに含まれるSRAMモジュールが多すぎる場
合、MTAG記憶域310とアドレス・コントローラ3
08との間の通信を行う信号線に対する容量負荷によっ
て、無視信号70を適切にアサート/アサート解除でき
るようにMTAGアクセスを完了することができなくな
るほど記憶域のアクセス時間が長くなる恐れがある。含
まれるSRAMモジュールの数を変更するだけでなく、
SRAM技法レベルを変更することもできる。したがっ
て、バンクに含まれるMTAG記憶域の量は、選択され
るSRAM技法に応じて変更することができる。
はSRAMモジュールのバンクを備える。バンク当たり
のSRAMモジュールの数は、MTAG記憶域310へ
のアクセス時間に課される制約内で変更することができ
る。バンクに含まれるSRAMモジュールが多すぎる場
合、MTAG記憶域310とアドレス・コントローラ3
08との間の通信を行う信号線に対する容量負荷によっ
て、無視信号70を適切にアサート/アサート解除でき
るようにMTAGアクセスを完了することができなくな
るほど記憶域のアクセス時間が長くなる恐れがある。含
まれるSRAMモジュールの数を変更するだけでなく、
SRAM技法レベルを変更することもできる。したがっ
て、バンクに含まれるMTAG記憶域の量は、選択され
るSRAM技法に応じて変更することができる。
【0129】前述の容量負荷問題は、各MTAG記憶域
310と対応するアドレス・コントローラ308または
312との間に別々の通信経路を与える理由でもある。
しかし、別々の通信経路によって、アドレス・コントロ
ーラ308および312が受け取る信号の数が増加す
る。アドレス・コントローラ308および312は一般
にMTAG記憶域310とは独立に実装されるので、使
用可能な信号線の数は実装によって制限される。したが
って、MTAG68を、(メモリ部分56で形成され
る)所与の量のメモリ22に必要なサイズに拡張する複
数のサブノードが与えられる。
310と対応するアドレス・コントローラ308または
312との間に別々の通信経路を与える理由でもある。
しかし、別々の通信経路によって、アドレス・コントロ
ーラ308および312が受け取る信号の数が増加す
る。アドレス・コントローラ308および312は一般
にMTAG記憶域310とは独立に実装されるので、使
用可能な信号線の数は実装によって制限される。したが
って、MTAG68を、(メモリ部分56で形成され
る)所与の量のメモリ22に必要なサイズに拡張する複
数のサブノードが与えられる。
【0130】無視信号70がアサートされる(かつ、コ
ヒーレンシ単位へのアクセス権がスヌーパ・サブノード
302に記憶されている場合に、アサートされたMTA
Gミス信号を受け取る)と、コントローラ・サブノード
300は、ネットワーク14上でのコヒーレンシ活動を
開始し、無視されたトランザクションに必要なアクセス
権を得る。上記の図15で例示的な1組のコヒーレンシ
活動について説明する。コントローラ・サブノード30
0は、コヒーレンシ活動が完了すると、SMPバス20
上でトランザクションを再発行する。これと並行して、
影響を受けるコヒーレンシ単位に対応するMTAGが更
新され、そのためSMPバス20上のその後のトランザ
クションは、コヒーレンシ活動に応答してSMPノード
12Aに与えられたアクセス権を検出する。一実施形態
では、更新済みMTAGは、下記で詳しく説明するよう
に再発行トランザクションのアドレス・フェーズの一部
として送られる。
ヒーレンシ単位へのアクセス権がスヌーパ・サブノード
302に記憶されている場合に、アサートされたMTA
Gミス信号を受け取る)と、コントローラ・サブノード
300は、ネットワーク14上でのコヒーレンシ活動を
開始し、無視されたトランザクションに必要なアクセス
権を得る。上記の図15で例示的な1組のコヒーレンシ
活動について説明する。コントローラ・サブノード30
0は、コヒーレンシ活動が完了すると、SMPバス20
上でトランザクションを再発行する。これと並行して、
影響を受けるコヒーレンシ単位に対応するMTAGが更
新され、そのためSMPバス20上のその後のトランザ
クションは、コヒーレンシ活動に応答してSMPノード
12Aに与えられたアクセス権を検出する。一実施形態
では、更新済みMTAGは、下記で詳しく説明するよう
に再発行トランザクションのアドレス・フェーズの一部
として送られる。
【0131】本明細書では、再発行トランザクションと
は、無視されたトランザクションに関するコヒーレンシ
活動を実行した結果として実行されるトランザクション
である。再発行トランザクションによって、無視された
トランザクションがSMPノード12A内で完了する。
一実施形態では、SMPバス20はタグ付き分割トラン
ザクション・バスであり、アドレス・フェーズおよび対
応するデータ・フェーズが、トランザクションのアドレ
ス・フェーズの開始側によって割り当てられたタグで識
別される。そのような実施形態では、再発行トランザク
ションは一般に、無視されたトランザクションのタグ
(またはトランザクションID)を使用する。しかし、
同じSMPノード12Aないし12Dからの第1のトラ
ンザクションの順序とは異なる順序で第2のトランザク
ションに関するデータが返される場合、コントローラ・
サブノード300は、コントローラ・サブノード300
によって割り当てられたタグを使用して第2のトランザ
クションの再発行トランザクションを実行することがで
きる。第1のトランザクションが完了した後、コントロ
ーラ・サブノード300は、最初のタグを使用して第2
のトランザクションを再発行し、第2のトランザクショ
ンを完了することができる。本明細書では、再発行トラ
ンザクションを実行する動作を「再発行」と呼ぶ。
は、無視されたトランザクションに関するコヒーレンシ
活動を実行した結果として実行されるトランザクション
である。再発行トランザクションによって、無視された
トランザクションがSMPノード12A内で完了する。
一実施形態では、SMPバス20はタグ付き分割トラン
ザクション・バスであり、アドレス・フェーズおよび対
応するデータ・フェーズが、トランザクションのアドレ
ス・フェーズの開始側によって割り当てられたタグで識
別される。そのような実施形態では、再発行トランザク
ションは一般に、無視されたトランザクションのタグ
(またはトランザクションID)を使用する。しかし、
同じSMPノード12Aないし12Dからの第1のトラ
ンザクションの順序とは異なる順序で第2のトランザク
ションに関するデータが返される場合、コントローラ・
サブノード300は、コントローラ・サブノード300
によって割り当てられたタグを使用して第2のトランザ
クションの再発行トランザクションを実行することがで
きる。第1のトランザクションが完了した後、コントロ
ーラ・サブノード300は、最初のタグを使用して第2
のトランザクションを再発行し、第2のトランザクショ
ンを完了することができる。本明細書では、再発行トラ
ンザクションを実行する動作を「再発行」と呼ぶ。
【0132】アドレス・コントローラ312は、SMP
バス20とのインタフェースをとり、MTAG記憶域3
10Cおよび310Dを管理し、無視信号70をアサー
トする際にMTAGミス信号304をアサートする。し
たがって、アドレス・コントローラ312に必要な機能
は、アドレス・コントローラ308に必要な機能のサブ
セットである。アドレス・コントローラ312は、MT
AG記憶域310を管理し、MTAG記憶域内に表され
るコヒーレンシ単位へのアクセスに応答するのに必要な
機能のみを含むことができる。別法として、アドレス・
コントローラ312はアドレス・コントローラ308と
同じであってよい。アドレス・コントローラ312内に
含まれる構成レジスタは、アドレス・コントローラ31
2がコントローラ・サブノード300ではなくスヌーパ
・サブノード302として動作するように設定すること
ができる。さらに、スヌーパ・サブノード302はコン
トローラ・サブノード300と同じであってよい。しか
し、構成レジスタの設定が、このサブノードがスヌーパ
・サブノードであることを示しているので、このサブノ
ードの各部分は動作時にアイドル状態のままでいること
ができる。
バス20とのインタフェースをとり、MTAG記憶域3
10Cおよび310Dを管理し、無視信号70をアサー
トする際にMTAGミス信号304をアサートする。し
たがって、アドレス・コントローラ312に必要な機能
は、アドレス・コントローラ308に必要な機能のサブ
セットである。アドレス・コントローラ312は、MT
AG記憶域310を管理し、MTAG記憶域内に表され
るコヒーレンシ単位へのアクセスに応答するのに必要な
機能のみを含むことができる。別法として、アドレス・
コントローラ312はアドレス・コントローラ308と
同じであってよい。アドレス・コントローラ312内に
含まれる構成レジスタは、アドレス・コントローラ31
2がコントローラ・サブノード300ではなくスヌーパ
・サブノード302として動作するように設定すること
ができる。さらに、スヌーパ・サブノード302はコン
トローラ・サブノード300と同じであってよい。しか
し、構成レジスタの設定が、このサブノードがスヌーパ
・サブノードであることを示しているので、このサブノ
ードの各部分は動作時にアイドル状態のままでいること
ができる。
【0133】MTAG68が、図16に示したMTAG
記憶域310で形成されるとき、集合的に、メモリ22
に記憶されているメモリ位置に関するコヒーレンシ状態
のテーブルを形成することに留意されたい。一般的に言
えば、特定のアドレスが一貫してコヒーレンシ状態のテ
ーブル内の特定のコヒーレンシ状態を使用して、特定の
アドレスに記憶されているデータへのSMPノードの現
アドレス権を判定するかぎり、コヒーレンシ状態のテー
ブルは任意の方式で構築することができる。
記憶域310で形成されるとき、集合的に、メモリ22
に記憶されているメモリ位置に関するコヒーレンシ状態
のテーブルを形成することに留意されたい。一般的に言
えば、特定のアドレスが一貫してコヒーレンシ状態のテ
ーブル内の特定のコヒーレンシ状態を使用して、特定の
アドレスに記憶されているデータへのSMPノードの現
アドレス権を判定するかぎり、コヒーレンシ状態のテー
ブルは任意の方式で構築することができる。
【0134】次に図17を参照すると、SMPノード1
2Aの一実施形態によるSMPバス20上のトランザク
ションのアドレス・フェーズを示すタイミング図が示さ
れている。他の実施形態は、異なるアドレス・フェーズ
定義を含むことも、あるいは同様なアドレス・フェーズ
定義を含むこともできる。複数の連続バス・クロック・
サイクルが示され、0ないし5として示され、垂直な点
線で区切られている。図の実施形態では、トランザクシ
ョンのアドレス・フェーズは、第1のアドレス・フェー
ズ320と第2のアドレス・フェーズ322とを含む。
第1のアドレス・フェーズ320および第2のアドレス
・フェーズ322はそれぞれ、連続バス・クロック・サ
イクル0および1で行われる。SMPバス20のアドレ
ス・バス58上の同じ1組の線は、アドレス・フェーズ
320および322で送られる情報を送るために使用さ
れる。
2Aの一実施形態によるSMPバス20上のトランザク
ションのアドレス・フェーズを示すタイミング図が示さ
れている。他の実施形態は、異なるアドレス・フェーズ
定義を含むことも、あるいは同様なアドレス・フェーズ
定義を含むこともできる。複数の連続バス・クロック・
サイクルが示され、0ないし5として示され、垂直な点
線で区切られている。図の実施形態では、トランザクシ
ョンのアドレス・フェーズは、第1のアドレス・フェー
ズ320と第2のアドレス・フェーズ322とを含む。
第1のアドレス・フェーズ320および第2のアドレス
・フェーズ322はそれぞれ、連続バス・クロック・サ
イクル0および1で行われる。SMPバス20のアドレ
ス・バス58上の同じ1組の線は、アドレス・フェーズ
320および322で送られる情報を送るために使用さ
れる。
【0135】第1のアドレス・フェーズ320では、ト
ランザクションのアドレスと、トランザクションの性質
を示すコマンド(たとえば、リード・ツー・シェア、リ
ード・ツー・オウンなど)が搬送される。第2のアドレ
ス・フェーズ320は、トランザクションに関する追加
情報を搬送する。具体的には、第2のアドレス・フェー
ズ320は、バイトマスク・フィールドと、発送元ID
フィールドと、ポート・フィールドと、ビクティム・フ
ィールドとを含む。発送元IDフィールドは、前述のタ
グまたはトランザクションIDを搬送するために使用さ
れる。それに続いて、タグを使用して、対応するデータ
・トランザクションまたは再発行トランザクションを識
別することができる。特定のトランザクションに割り当
てられるタグは、その特定のトランザクションが完了す
るまで他のトランザクションに再割り当てされない。し
たがって、タグはSMPバス20上で所与のトランザク
ションを一意に識別する。ポート・フィールドは、サブ
ノード50内のどのプロセッサ16が特定のトランザク
ションの開始側であるかを示す。ビクティム・フィール
ドは、セットされたときに、トランザクションが、プロ
セッサ16の内部のキャッシュまたはプロセッサ16に
対応する外部キャッシュ18内の修正されたラインを変
位させていることを示す、ビットを含む。ビクティム・
フィールドは、プロセッサ16からコピーバックが行わ
れていることを示す初期警告として使用することができ
る。
ランザクションのアドレスと、トランザクションの性質
を示すコマンド(たとえば、リード・ツー・シェア、リ
ード・ツー・オウンなど)が搬送される。第2のアドレ
ス・フェーズ320は、トランザクションに関する追加
情報を搬送する。具体的には、第2のアドレス・フェー
ズ320は、バイトマスク・フィールドと、発送元ID
フィールドと、ポート・フィールドと、ビクティム・フ
ィールドとを含む。発送元IDフィールドは、前述のタ
グまたはトランザクションIDを搬送するために使用さ
れる。それに続いて、タグを使用して、対応するデータ
・トランザクションまたは再発行トランザクションを識
別することができる。特定のトランザクションに割り当
てられるタグは、その特定のトランザクションが完了す
るまで他のトランザクションに再割り当てされない。し
たがって、タグはSMPバス20上で所与のトランザク
ションを一意に識別する。ポート・フィールドは、サブ
ノード50内のどのプロセッサ16が特定のトランザク
ションの開始側であるかを示す。ビクティム・フィール
ドは、セットされたときに、トランザクションが、プロ
セッサ16の内部のキャッシュまたはプロセッサ16に
対応する外部キャッシュ18内の修正されたラインを変
位させていることを示す、ビットを含む。ビクティム・
フィールドは、プロセッサ16からコピーバックが行わ
れていることを示す初期警告として使用することができ
る。
【0136】バイトマスク・フィールドは、転送中のバ
イトを識別するために入出力トランザクションに使用さ
れる。一実施形態では、バイトマスク・フィールドは1
6ビットを含む。各ビットは、データ・バス60(SM
Pバス20の一部)上で転送できるバイト内の特定のバ
イトに対応する。ビットがセットされると、対応するバ
イトが転送される。また、バイトマスク・フィールド
は、再発行トランザクションの影響を受けるコヒーレン
シ単位のMTAGを記憶するスヌーパ・サブノード30
2へMTAG更新情報を送るために再発行トランザクシ
ョンによって使用される。スヌーパ・サブノード302
は、第1のアドレス・フェーズ320中に再発行トラン
ザクションのアドレスを取り込み、そのアドレスが、ス
ヌーパ・サブノードに結合されたMTAG記憶域310
内のMTAGに対応するかどうかを判定する。アドレス
が、スヌーパ・サブノード302によって管理されるM
TAGに対応する場合、第2のアドレス・フェーズ32
2中にバイトマスク・フィールドから更新済みMTAG
状態情報が取り込まれる。それに続いて、対応するMT
AGが更新される。
イトを識別するために入出力トランザクションに使用さ
れる。一実施形態では、バイトマスク・フィールドは1
6ビットを含む。各ビットは、データ・バス60(SM
Pバス20の一部)上で転送できるバイト内の特定のバ
イトに対応する。ビットがセットされると、対応するバ
イトが転送される。また、バイトマスク・フィールド
は、再発行トランザクションの影響を受けるコヒーレン
シ単位のMTAGを記憶するスヌーパ・サブノード30
2へMTAG更新情報を送るために再発行トランザクシ
ョンによって使用される。スヌーパ・サブノード302
は、第1のアドレス・フェーズ320中に再発行トラン
ザクションのアドレスを取り込み、そのアドレスが、ス
ヌーパ・サブノードに結合されたMTAG記憶域310
内のMTAGに対応するかどうかを判定する。アドレス
が、スヌーパ・サブノード302によって管理されるM
TAGに対応する場合、第2のアドレス・フェーズ32
2中にバイトマスク・フィールドから更新済みMTAG
状態情報が取り込まれる。それに続いて、対応するMT
AGが更新される。
【0137】図17はさらに、一実施形態ではSMPバ
ス20上で無視信号70およびMTAGミス信号304
が有効であるバス・クロック・サイクルを示す。これら
の信号が有効であるバス・クロック・サイクルは、コン
トローラ・サブノード300(および無視信号70の場
合にはSMPバス20上の他の装置)によってこれらの
信号が取り込まれるバス・クロック・サイクルである。
図の実施形態によれば、無視信号はバス・クロック・サ
イクル5で有効であり(参照符号324)、それに対し
てMTAGミス信号はバス・クロック・サイクル6で有
効である(参照符号326)。図の実施形態では、MT
AGミス信号と無視信号の両方に同じ物理ワイヤが使用
される。他の実施形態は、この2つの信号にそれぞれの
異なるワイヤを使用することができ、そのような実施形
態は、MTAGミス信号を(無視信号と共に)バス・ク
ロック・サイクル5で有効な信号として定義することが
できる。
ス20上で無視信号70およびMTAGミス信号304
が有効であるバス・クロック・サイクルを示す。これら
の信号が有効であるバス・クロック・サイクルは、コン
トローラ・サブノード300(および無視信号70の場
合にはSMPバス20上の他の装置)によってこれらの
信号が取り込まれるバス・クロック・サイクルである。
図の実施形態によれば、無視信号はバス・クロック・サ
イクル5で有効であり(参照符号324)、それに対し
てMTAGミス信号はバス・クロック・サイクル6で有
効である(参照符号326)。図の実施形態では、MT
AGミス信号と無視信号の両方に同じ物理ワイヤが使用
される。他の実施形態は、この2つの信号にそれぞれの
異なるワイヤを使用することができ、そのような実施形
態は、MTAGミス信号を(無視信号と共に)バス・ク
ロック・サイクル5で有効な信号として定義することが
できる。
【0138】図18は、2つのトランザクションのアド
レス・フェーズを示す他のタイミング図である。第1の
トランザクションは、第1のアドレス・フェーズ320
Aおよび第2のアドレス・フェーズ322Aで表され
る。同様に、第2のトランザクションは、第1のアドレ
ス・フェーズ320Bおよび第2のアドレス・フェーズ
322Bで表される。図18の例では、第1のアドレス
・トランザクションは、MTAG状態の更新を保持する
再発行トランザクションである。第2のアドレス・トラ
ンザクションは、再発行トランザクションに対応するト
ランザクションを発信したプロセッサ16とは異なるプ
ロセッサ16内の活動に応答して実行される。また、こ
れらのトランザクションは同じコヒーレンシ単位に影響
を与える。したがって、第1のトランザクションによっ
て更新されたMTAG状態を第2のトランザクションの
MTAG状態として検出すべきである。
レス・フェーズを示す他のタイミング図である。第1の
トランザクションは、第1のアドレス・フェーズ320
Aおよび第2のアドレス・フェーズ322Aで表され
る。同様に、第2のトランザクションは、第1のアドレ
ス・フェーズ320Bおよび第2のアドレス・フェーズ
322Bで表される。図18の例では、第1のアドレス
・トランザクションは、MTAG状態の更新を保持する
再発行トランザクションである。第2のアドレス・トラ
ンザクションは、再発行トランザクションに対応するト
ランザクションを発信したプロセッサ16とは異なるプ
ロセッサ16内の活動に応答して実行される。また、こ
れらのトランザクションは同じコヒーレンシ単位に影響
を与える。したがって、第1のトランザクションによっ
て更新されたMTAG状態を第2のトランザクションの
MTAG状態として検出すべきである。
【0139】更新中のMTAGを記憶するスヌーパ・サ
ブノード302は、第1のアドレス・フェーズ320A
および第2のアドレス・フェーズ322Aからそれぞ
れ、アドレスおよびバイトマスク・フィールドを取り込
む。バス・クロック・サイクル2中に、MTAGを更新
するための情報が受け取られており、したがって更新を
開始することができる(参照330)。それに続いて、
更新済みMTAGは、他のトランザクションから参照で
きるようになる(参照符号332)。図18に示しよう
に、MTAGを更新するために1バス・クロック・サイ
クルが使用される。しかし、その後のアドレス・トラン
ザクションと、無視信号およびMTAGミス信号の対応
する有効時間の前に決定される適当な無視アサートおよ
びMTAGミス・アサートに応答して更新済みMTAG
を調べることができるかぎり、MTAGの更新時に複数
のバス・クロック・サイクルが経過することができる。
ブノード302は、第1のアドレス・フェーズ320A
および第2のアドレス・フェーズ322Aからそれぞ
れ、アドレスおよびバイトマスク・フィールドを取り込
む。バス・クロック・サイクル2中に、MTAGを更新
するための情報が受け取られており、したがって更新を
開始することができる(参照330)。それに続いて、
更新済みMTAGは、他のトランザクションから参照で
きるようになる(参照符号332)。図18に示しよう
に、MTAGを更新するために1バス・クロック・サイ
クルが使用される。しかし、その後のアドレス・トラン
ザクションと、無視信号およびMTAGミス信号の対応
する有効時間の前に決定される適当な無視アサートおよ
びMTAGミス・アサートに応答して更新済みMTAG
を調べることができるかぎり、MTAGの更新時に複数
のバス・クロック・サイクルが経過することができる。
【0140】図18に示したように、同じコヒーレンシ
単位に対するアドレス・トランザクションが連続バス・
クロック・サイクル中に実行される場合でも、更新済み
MTAG状態を検査することができる。このように、い
くつかのサブノード300および302のうちの1つに
MTAG状態を記憶できるにもかかわらず各トランザク
ションに正しいMTAG状態が与えられる。
単位に対するアドレス・トランザクションが連続バス・
クロック・サイクル中に実行される場合でも、更新済み
MTAG状態を検査することができる。このように、い
くつかのサブノード300および302のうちの1つに
MTAG状態を記憶できるにもかかわらず各トランザク
ションに正しいMTAG状態が与えられる。
【0141】次に図19を参照すると、例示的なバイト
マスク・フィールド340内のフィールドを示す図が示
されている。バイトマスク・フィールド340は、他の
実施形態では代替フォーマットでコード化することがで
きる。SMPノード12Aの一実施形態によれば、バイ
トマスク・フィールド340は再発行トランザクション
に関して図19で示したようにコード化される。他のキ
ャッシュ可能な(たとえば、非入出力)トランザクショ
ンでは、バイトマスク・フィールド340はバイナリ・
ゼロとしてコード化される。本明細書で説明したバイト
マスク・フィールド340が非入出力トランザクション
に対して有効であることに留意されたい。(前述の)入
出力トランザクションでは異なるコード化が使用され
る。
マスク・フィールド340内のフィールドを示す図が示
されている。バイトマスク・フィールド340は、他の
実施形態では代替フォーマットでコード化することがで
きる。SMPノード12Aの一実施形態によれば、バイ
トマスク・フィールド340は再発行トランザクション
に関して図19で示したようにコード化される。他のキ
ャッシュ可能な(たとえば、非入出力)トランザクショ
ンでは、バイトマスク・フィールド340はバイナリ・
ゼロとしてコード化される。本明細書で説明したバイト
マスク・フィールド340が非入出力トランザクション
に対して有効であることに留意されたい。(前述の)入
出力トランザクションでは異なるコード化が使用され
る。
【0142】バイトマスク・フィールド340は、事前
取り込み(P)ビット342と、最初の発送元IDフィ
ールド344と、エージェント・フィールド346と、
変更状態ビット348と、新しい状態フィールド350
と、オリジン・ビット352と、イミューン・ビット3
54とを含む。Pビット342、最初の発送元IDフィ
ールド344、エージェント・フィールド346は、S
MPバス20に取り付けられた装置から実際には解釈さ
れない情報フィールドとして与えられる。その代わり、
情報フィールドはたとえばデバッグ時に有用である。
取り込み(P)ビット342と、最初の発送元IDフィ
ールド344と、エージェント・フィールド346と、
変更状態ビット348と、新しい状態フィールド350
と、オリジン・ビット352と、イミューン・ビット3
54とを含む。Pビット342、最初の発送元IDフィ
ールド344、エージェント・フィールド346は、S
MPバス20に取り付けられた装置から実際には解釈さ
れない情報フィールドとして与えられる。その代わり、
情報フィールドはたとえばデバッグ時に有用である。
【0143】Pビット342は、トランザクションが事
前取り込みトランザクションとして実行される場合にセ
ットされる。コンピュータ・システム10の一実施形態
によれば、前の第1のトランザクションが無視されてい
るサブノード50から第2のトランザクションが与えら
れた場合、第2のトランザクションも無視される。しか
し、システム・インタフェース24は、MTAGミス信
号304もアサートされた場合には、第2のトランザク
ションの影響を受けるコヒーレンシ単位を事前に取り込
むことができる。最初の発送元IDフィールド344
は、実行中の再発行トランザクションに対応する最初の
トランザクションのタグをコード化する。また、再発行
トランザクションの発送元はエージェント・フィールド
346にコード化される。発送元エージェントは、他の
実施形態では、要求エージェント100でも、あるいは
ホーム・エージェント102でも、あるいはスレーブ・
エージェント104でも、あるいは場合によってはSM
Pバス20上の他の装置でもよい。
前取り込みトランザクションとして実行される場合にセ
ットされる。コンピュータ・システム10の一実施形態
によれば、前の第1のトランザクションが無視されてい
るサブノード50から第2のトランザクションが与えら
れた場合、第2のトランザクションも無視される。しか
し、システム・インタフェース24は、MTAGミス信
号304もアサートされた場合には、第2のトランザク
ションの影響を受けるコヒーレンシ単位を事前に取り込
むことができる。最初の発送元IDフィールド344
は、実行中の再発行トランザクションに対応する最初の
トランザクションのタグをコード化する。また、再発行
トランザクションの発送元はエージェント・フィールド
346にコード化される。発送元エージェントは、他の
実施形態では、要求エージェント100でも、あるいは
ホーム・エージェント102でも、あるいはスレーブ・
エージェント104でも、あるいは場合によってはSM
Pバス20上の他の装置でもよい。
【0144】変更状態ビット348、新しい状態フィー
ルド350、オリジン・ビット352、イミュン・ビッ
ト354は、再発行トランザクションに対応するMTA
G状態更新を検出するためにスヌーパ・サブノード30
2によって使用される。オリジン・ビット352は、再
発行トランザクションのためにセットされ、そのトラン
ザクションがコントローラ・サブノード300から発信
されていることを示す。オリジン・ビット352は、実
行中のトランザクションが再発行トランザクションであ
ることを検出するためにスヌーパ・サブノード302か
らは有効ビットとみなされる。このビットがクリアされ
ている場合、バイトマスク・フィールド340の残りの
部分は無効である。変更状態ビット348は、セットさ
れると、トランザクションの影響を受けるコヒーレンシ
単位に関連付けられたMTAG値を更新する必要がある
ことを示す。スヌーパ・サブノード302は、変更状態
ビット348および発信元ビット352がセットされて
いることを検出した場合、対応するMTAGを更新す
る。MTAGの新しい状態(すなわち、更新済み状態)
は新しい状態フィールド350にコード化される。一実
施形態では、各MTAGは2ビットを含み、したがって
新しい状態フィールド350は2ビットを含む。
ルド350、オリジン・ビット352、イミュン・ビッ
ト354は、再発行トランザクションに対応するMTA
G状態更新を検出するためにスヌーパ・サブノード30
2によって使用される。オリジン・ビット352は、再
発行トランザクションのためにセットされ、そのトラン
ザクションがコントローラ・サブノード300から発信
されていることを示す。オリジン・ビット352は、実
行中のトランザクションが再発行トランザクションであ
ることを検出するためにスヌーパ・サブノード302か
らは有効ビットとみなされる。このビットがクリアされ
ている場合、バイトマスク・フィールド340の残りの
部分は無効である。変更状態ビット348は、セットさ
れると、トランザクションの影響を受けるコヒーレンシ
単位に関連付けられたMTAG値を更新する必要がある
ことを示す。スヌーパ・サブノード302は、変更状態
ビット348および発信元ビット352がセットされて
いることを検出した場合、対応するMTAGを更新す
る。MTAGの新しい状態(すなわち、更新済み状態)
は新しい状態フィールド350にコード化される。一実
施形態では、各MTAGは2ビットを含み、したがって
新しい状態フィールド350は2ビットを含む。
【0145】最後に、イミューン・ビット354は、再
発行トランザクションに関して、トランザクションが無
視信号70のアサートの影響を受けないことを示すため
にセットされる。スヌーパ・サブノード302は、この
ビットを使用して、MTAGミスが検出されたために行
われる無視信号70のアサートを抑制する。たとえば、
あるコヒーレンシ単位がリード・ツー・シェア・トラン
ザクションからアクセスされ、MTAGが無効を示して
いる場合、スヌーパ・サブノードは無視信号をアサート
する。再発行トランザクションは一般に、最初のトラン
ザクションと同じコマンドを用いてコード化されるの
で、スヌーパ・サブノード302は、そのトランザクシ
ョンが再発行されるときに再び無視信号をアサートす
る。しかし、このアサートはイミューン・ビット354
によって抑制される。
発行トランザクションに関して、トランザクションが無
視信号70のアサートの影響を受けないことを示すため
にセットされる。スヌーパ・サブノード302は、この
ビットを使用して、MTAGミスが検出されたために行
われる無視信号70のアサートを抑制する。たとえば、
あるコヒーレンシ単位がリード・ツー・シェア・トラン
ザクションからアクセスされ、MTAGが無効を示して
いる場合、スヌーパ・サブノードは無視信号をアサート
する。再発行トランザクションは一般に、最初のトラン
ザクションと同じコマンドを用いてコード化されるの
で、スヌーパ・サブノード302は、そのトランザクシ
ョンが再発行されるときに再び無視信号をアサートす
る。しかし、このアサートはイミューン・ビット354
によって抑制される。
【0146】次に図20を参照すると、アドレス・コン
トローラ308および312の一実施形態内に含めるこ
とのできる構成レジスタ360および362の図が示さ
れている。構成レジスタ360は、予約フィールド36
4と、ノードIDフィールド366と、LEフィールド
368と、RAMフィールド370と、SEフィールド
372と、SNフィールド374とを含む。構成レジス
タ362は、MTAG範囲が始まるローカル物理アドレ
スを識別するベース・アドレスを含む。言い換えれば、
構成レジスタ362に記憶されているベース・アドレス
よりも小さなアドレスは、対応するコヒーレンシ状態を
MTAG68内に有さない。そのようなメモリ・アドレ
スは、専用記憶域用のローカルSMPノード内のプロセ
ッサによって使用することができる(たとえば、他のS
MPノード12Aないし12Dとは共用されないメモリ
位置)。
トローラ308および312の一実施形態内に含めるこ
とのできる構成レジスタ360および362の図が示さ
れている。構成レジスタ360は、予約フィールド36
4と、ノードIDフィールド366と、LEフィールド
368と、RAMフィールド370と、SEフィールド
372と、SNフィールド374とを含む。構成レジス
タ362は、MTAG範囲が始まるローカル物理アドレ
スを識別するベース・アドレスを含む。言い換えれば、
構成レジスタ362に記憶されているベース・アドレス
よりも小さなアドレスは、対応するコヒーレンシ状態を
MTAG68内に有さない。そのようなメモリ・アドレ
スは、専用記憶域用のローカルSMPノード内のプロセ
ッサによって使用することができる(たとえば、他のS
MPノード12Aないし12Dとは共用されないメモリ
位置)。
【0147】予約フィールド364は、アドレス・コン
トローラ308および312の機能を将来拡張できるよ
うに予約される。通常、予約フィールド364の値は零
に設定される。ノードIDフィールド366は、アドレ
ス・コントローラ308および312が構成されるSM
Pノード12Aないし12DのノードIDを記憶する。
LEフィールド368は試験のために使用される。LE
フィールドは、セットされると、ノード内のエージェン
ト間のショートカットをディスエーブルする(すなわ
ち、ノード内のエージェントがノード内の他のエージェ
ントと通信する必要がある場合、通信はネットワーク1
4上で送られるパケットを介して行われる)ビットを含
む。
トローラ308および312の機能を将来拡張できるよ
うに予約される。通常、予約フィールド364の値は零
に設定される。ノードIDフィールド366は、アドレ
ス・コントローラ308および312が構成されるSM
Pノード12Aないし12DのノードIDを記憶する。
LEフィールド368は試験のために使用される。LE
フィールドは、セットされると、ノード内のエージェン
ト間のショートカットをディスエーブルする(すなわ
ち、ノード内のエージェントがノード内の他のエージェ
ントと通信する必要がある場合、通信はネットワーク1
4上で送られるパケットを介して行われる)ビットを含
む。
【0148】RAMフィールド370は、MTAG記憶
域310を形成するために使用されるSRAM技法を示
す。一実施形態では、RAMフィールド370は、1メ
ガビット、2メガビット、4メガビット、16メガビッ
トのSRAM技法を識別するようにコード化できる2ビ
ットを含む。SEフィールド372は、アドレス・コン
トローラ308および312が構成されるコントローラ
/スヌーパ・ロールを示す。SEフィールド372は、
セットされると、アドレス・コントローラがスヌーパ・
ロールを実行している(たとえば、アドレス・コントロ
ーラがスヌーパ・サブノード302として構成される)
ことを示すビットを含む。あるいは、このビットがクリ
アされている場合、アドレス・コントローラはコントロ
ーラ・ロールを実行している(たとえば、アドレス・コ
ントローラがコントローラ・サブノード300として構
成される)。SNフィールド374は、SEフィールド
372の値に応じて解釈される。SEフィールド372
が、アドレス・コントローラがコントローラ・モードで
あることを示している場合、SNフィールド374は、
SMPノード内に含まれるスヌーパ・サブノードの数を
示す。SEフィールド372が、アドレス・コントロー
ラがスヌーパ・モードであることを示している場合、S
Nフィールド374は、そのアドレス・コントローラを
含むスヌーパ・サブノード302にどのスヌーパ番号が
割り当てられているかを示す。一実施形態では、コンピ
ュータ・システム10は、SMPノード12内の最大で
3つのスヌーパ・サブノード302をサポートする。そ
のような実施形態では、SNフィールド374は2ビッ
トを含む。
域310を形成するために使用されるSRAM技法を示
す。一実施形態では、RAMフィールド370は、1メ
ガビット、2メガビット、4メガビット、16メガビッ
トのSRAM技法を識別するようにコード化できる2ビ
ットを含む。SEフィールド372は、アドレス・コン
トローラ308および312が構成されるコントローラ
/スヌーパ・ロールを示す。SEフィールド372は、
セットされると、アドレス・コントローラがスヌーパ・
ロールを実行している(たとえば、アドレス・コントロ
ーラがスヌーパ・サブノード302として構成される)
ことを示すビットを含む。あるいは、このビットがクリ
アされている場合、アドレス・コントローラはコントロ
ーラ・ロールを実行している(たとえば、アドレス・コ
ントローラがコントローラ・サブノード300として構
成される)。SNフィールド374は、SEフィールド
372の値に応じて解釈される。SEフィールド372
が、アドレス・コントローラがコントローラ・モードで
あることを示している場合、SNフィールド374は、
SMPノード内に含まれるスヌーパ・サブノードの数を
示す。SEフィールド372が、アドレス・コントロー
ラがスヌーパ・モードであることを示している場合、S
Nフィールド374は、そのアドレス・コントローラを
含むスヌーパ・サブノード302にどのスヌーパ番号が
割り当てられているかを示す。一実施形態では、コンピ
ュータ・システム10は、SMPノード12内の最大で
3つのスヌーパ・サブノード302をサポートする。そ
のような実施形態では、SNフィールド374は2ビッ
トを含む。
【0149】構成レジスタ362に記憶されているベー
ス・アドレス、RAMフィールド370、SEフィール
ド372、SNフィールド374は、図21に示した所
与のアドレスに関するMTAGの位置を判定するために
アドレス・コントローラ308および312によって使
用される。図21は、LPAアドレス空間380の図で
ある。アドレス空間380のアドレス0は、図21に示
したLPAアドレス空間380の1番下にあり、それに
対してアドレス空間380内の最大アドレスは、LPA
アドレス空間380の1番上にある。
ス・アドレス、RAMフィールド370、SEフィール
ド372、SNフィールド374は、図21に示した所
与のアドレスに関するMTAGの位置を判定するために
アドレス・コントローラ308および312によって使
用される。図21は、LPAアドレス空間380の図で
ある。アドレス空間380のアドレス0は、図21に示
したLPAアドレス空間380の1番下にあり、それに
対してアドレス空間380内の最大アドレスは、LPA
アドレス空間380の1番上にある。
【0150】構成レジスタ362に記憶されているベー
ス・アドレスよりも小さなアドレスは、MTAG68に
記憶されているコヒーレンシ状態を有さない。したがっ
て、アドレス・コントローラ308および312は、ベ
ース・アドレスよりも小さなアドレスを無視する。ベー
ス・アドレスは、図21でアドレス空間380内の水平
線を介して示されている(参照符号382)。アドレス
空間380の領域384は、サイズの等しい4つの部分
386、388、390、392に分割される。部分3
92内のアドレスよりも大きなアドレス空間380内の
残りのアドレスも、MTAG68内に対応するコヒーレ
ンシ状態を有さない。部分386、388、390、3
92のサイズは、RAMフィールド370内にコード化
されるSRAM技法によって決定される。各MTAGは
2ビットを含み、したがって、所与のSRAM技法は、
その技法の所与のSRAMに記憶できるMTAGの数を
意味する。
ス・アドレスよりも小さなアドレスは、MTAG68に
記憶されているコヒーレンシ状態を有さない。したがっ
て、アドレス・コントローラ308および312は、ベ
ース・アドレスよりも小さなアドレスを無視する。ベー
ス・アドレスは、図21でアドレス空間380内の水平
線を介して示されている(参照符号382)。アドレス
空間380の領域384は、サイズの等しい4つの部分
386、388、390、392に分割される。部分3
92内のアドレスよりも大きなアドレス空間380内の
残りのアドレスも、MTAG68内に対応するコヒーレ
ンシ状態を有さない。部分386、388、390、3
92のサイズは、RAMフィールド370内にコード化
されるSRAM技法によって決定される。各MTAGは
2ビットを含み、したがって、所与のSRAM技法は、
その技法の所与のSRAMに記憶できるMTAGの数を
意味する。
【0151】図21に示したように、部分386に対応
するMTAGはコントローラ・サブノード300に記憶
され、それに対して部分388、390、392はスヌ
ーパ・サブノード302に記憶される。構成レジスタ3
60のSNフィールド374が(バイナリで)01とし
てコード化されたアドレス・コントローラを有するスヌ
ーパ・サブノード302は、メモリ空間380の部分3
88に対応するMTAGを記憶する。同様に、対応する
SNフィールド374が(バイナリで)10および11
としてコード化されたスヌーパ・サブノード302はそ
れぞれ、メモリ空間380の部分390および392に
対応するMTAGを記憶する。
するMTAGはコントローラ・サブノード300に記憶
され、それに対して部分388、390、392はスヌ
ーパ・サブノード302に記憶される。構成レジスタ3
60のSNフィールド374が(バイナリで)01とし
てコード化されたアドレス・コントローラを有するスヌ
ーパ・サブノード302は、メモリ空間380の部分3
88に対応するMTAGを記憶する。同様に、対応する
SNフィールド374が(バイナリで)10および11
としてコード化されたスヌーパ・サブノード302はそ
れぞれ、メモリ空間380の部分390および392に
対応するMTAGを記憶する。
【0152】SMPバス20上にアドレスが与えられる
と、コントローラ・サブノード300および各スヌーパ
・サブノード302は、そのアドレスが、そのサブノー
ド内に記憶されているMTAGによってカバーされるア
ドレス空間380の部分に含まれるかどうかを判定す
る。アドレスがそのサブノードに割り当てられた部分に
含まれる場合、そのサブノードは、無視信号70および
MTAGミス信号304を介して応答することはない。
一方、アドレスがそのサブノードに割り当てられた部分
に含まれる場合、そのサブノードは対応するMTAG値
にアクセスする。記憶されているコヒーレンシ状態がト
ランザクションに十分なアクセス権を示している場合、
サブノードは無視信号70をアサートしない。あるい
は、記憶されているコヒーレンシ状態がトランザクショ
ンには不十分なアクセス権を示している場合、サブノー
ドは無視信号70(およびMTAGミス信号304)を
アサートする。
と、コントローラ・サブノード300および各スヌーパ
・サブノード302は、そのアドレスが、そのサブノー
ド内に記憶されているMTAGによってカバーされるア
ドレス空間380の部分に含まれるかどうかを判定す
る。アドレスがそのサブノードに割り当てられた部分に
含まれる場合、そのサブノードは、無視信号70および
MTAGミス信号304を介して応答することはない。
一方、アドレスがそのサブノードに割り当てられた部分
に含まれる場合、そのサブノードは対応するMTAG値
にアクセスする。記憶されているコヒーレンシ状態がト
ランザクションに十分なアクセス権を示している場合、
サブノードは無視信号70をアサートしない。あるい
は、記憶されているコヒーレンシ状態がトランザクショ
ンには不十分なアクセス権を示している場合、サブノー
ドは無視信号70(およびMTAGミス信号304)を
アサートする。
【0153】図22は、MTAGエントリ400の例示
的な構成を示すと共に、コンピュータ・システム10の
一実施形態によって使用できる例示的なMTAGコード
化をリストしたテーブル402を示す。MTAGエント
リ400は、33ビットを含み、MTAG記憶域310
と対応するアドレス・コントローラ308または312
との間で転送されるデータの量である。各コヒーレンシ
状態が2ビットとしてコード化されるので、各MTAG
エントリ400に16個のMTAGが記憶される(図2
2ではM0ないしM15として示す)。エントリには
(図22ではPとして示した)パリティ・ビットも含ま
れる。パリティ・ビットは、エントリ400内のMTA
Gの32ビットの奇数パリティである。エントリ400
はパリティ保護されるので、エントリ400全体が書き
込まれるのは、エントリ内の少なくとも1つのMTAG
が更新されるときである。
的な構成を示すと共に、コンピュータ・システム10の
一実施形態によって使用できる例示的なMTAGコード
化をリストしたテーブル402を示す。MTAGエント
リ400は、33ビットを含み、MTAG記憶域310
と対応するアドレス・コントローラ308または312
との間で転送されるデータの量である。各コヒーレンシ
状態が2ビットとしてコード化されるので、各MTAG
エントリ400に16個のMTAGが記憶される(図2
2ではM0ないしM15として示す)。エントリには
(図22ではPとして示した)パリティ・ビットも含ま
れる。パリティ・ビットは、エントリ400内のMTA
Gの32ビットの奇数パリティである。エントリ400
はパリティ保護されるので、エントリ400全体が書き
込まれるのは、エントリ内の少なくとも1つのMTAG
が更新されるときである。
【0154】再び図18を参照すると分かるように、更
新すべきMTAGを含むデータの最初の33ビットは、
バス・クロック・サイクル2中に読み取られる(参照符
号330)。指定されたMTAGが修正され、新しいパ
リティが算出される。それに続いて、MTAGが再びM
TAG記憶域310に記憶される。修正済みエントリが
MTAG記憶域310に記憶される前に、修正済みエン
トリ内の16個のMTAGのうちの1つへのアクセスが
実行された場合、コントローラ・サブノード内の情報の
更新済みコピーが使用される。
新すべきMTAGを含むデータの最初の33ビットは、
バス・クロック・サイクル2中に読み取られる(参照符
号330)。指定されたMTAGが修正され、新しいパ
リティが算出される。それに続いて、MTAGが再びM
TAG記憶域310に記憶される。修正済みエントリが
MTAG記憶域310に記憶される前に、修正済みエン
トリ内の16個のMTAGのうちの1つへのアクセスが
実行された場合、コントローラ・サブノード内の情報の
更新済みコピーが使用される。
【0155】部分386、388、390、392のい
ずれか内の数値的に最も小さなアドレスをアドレスから
減じ、結果値を、対応するサブノードに組み込まれたM
TAG記憶域310のインデックスとして使用すること
によって、特定のMTAGを見つけることができる。結
果値の一部がインデックスとして使用される。たとえ
ば、一実施形態では、各コヒーレンシ単位は64バイト
である。したがって、アドレスの下位6ビットはコヒー
レンシ単位内のオフセットである。次の下位4ビット
は、MTAGエントリ400内の16個のMTAGのう
ちの1つを識別する。したがって、結果値の残りのビッ
ト(すなわち、コヒーレンシ単位内のオフセットも、あ
るいはMTAGエントリ内の1つのMTAGを選択する
ために使用されるビットも含まない)を使用してMTA
Gエントリ400が見つけられる。
ずれか内の数値的に最も小さなアドレスをアドレスから
減じ、結果値を、対応するサブノードに組み込まれたM
TAG記憶域310のインデックスとして使用すること
によって、特定のMTAGを見つけることができる。結
果値の一部がインデックスとして使用される。たとえ
ば、一実施形態では、各コヒーレンシ単位は64バイト
である。したがって、アドレスの下位6ビットはコヒー
レンシ単位内のオフセットである。次の下位4ビット
は、MTAGエントリ400内の16個のMTAGのう
ちの1つを識別する。したがって、結果値の残りのビッ
ト(すなわち、コヒーレンシ単位内のオフセットも、あ
るいはMTAGエントリ内の1つのMTAGを選択する
ために使用されるビットも含まない)を使用してMTA
Gエントリ400が見つけられる。
【0156】テーブル402は、1つの例示的なMTA
Gコード化を示す。ただし、任意のMTAGコード化を
使用することができる。この例示的なMTAGコード化
は、コヒーレンシ状態がMOSIコヒーレンシ・プロト
コルを介して定義されるケースで使用するのに適してい
る。
Gコード化を示す。ただし、任意のMTAGコード化を
使用することができる。この例示的なMTAGコード化
は、コヒーレンシ状態がMOSIコヒーレンシ・プロト
コルを介して定義されるケースで使用するのに適してい
る。
【0157】上記の例示的な実施形態ではSMPノード
12について説明したが、一般的に言えば、コンピュー
タ・システム10は1つまたは複数の処理ノードを含む
ことができる。本明細書では、処理ノードは、少なくと
も1つのプロセッサと対応するメモリとを含む。他の処
理ノードと通信する回路も含まれる。コンピュータ・シ
ステム10の実施形態に複数の処理ノードが含まれると
き、処理ノード内の対応するメモリは分散共用メモリを
形成する。処理ノードはリモート処理ノードまたはロー
カル処理ノードと呼ぶことができる。処理ノードは、特
定のプロセッサを含まない場合、その特定のプロセッサ
に対してリモート処理ノードである。逆に、特定のプロ
セッサを含む処理ノードは、その特定のプロセッサのロ
ーカル処理ノードである。
12について説明したが、一般的に言えば、コンピュー
タ・システム10は1つまたは複数の処理ノードを含む
ことができる。本明細書では、処理ノードは、少なくと
も1つのプロセッサと対応するメモリとを含む。他の処
理ノードと通信する回路も含まれる。コンピュータ・シ
ステム10の実施形態に複数の処理ノードが含まれると
き、処理ノード内の対応するメモリは分散共用メモリを
形成する。処理ノードはリモート処理ノードまたはロー
カル処理ノードと呼ぶことができる。処理ノードは、特
定のプロセッサを含まない場合、その特定のプロセッサ
に対してリモート処理ノードである。逆に、特定のプロ
セッサを含む処理ノードは、その特定のプロセッサのロ
ーカル処理ノードである。
【0158】上記の開示によって、コンピュータ・シス
テムの処理ノードに含まれる共用メモリの量を拡張する
際に融通の利くコンピュータ・システムについて説明し
た。必要に応じてスヌーパ・サブノードの挿入または削
除を介して、コンピュータ・システムとの間でコヒーレ
ンシ状態メモリを追加または削除することができる。コ
ンピュータ・システムは、スヌーパ・サブノード内にコ
ヒーレンシ状態情報を記憶できるにもかかわらず、トラ
ンザクションの再発行と並行してコヒーレンシ状態情報
を更新する機構を含む。コンピュータ・システムをユー
ザのニーズに応じて構成し更新するうえで融通が利くの
で有利である。
テムの処理ノードに含まれる共用メモリの量を拡張する
際に融通の利くコンピュータ・システムについて説明し
た。必要に応じてスヌーパ・サブノードの挿入または削
除を介して、コンピュータ・システムとの間でコヒーレ
ンシ状態メモリを追加または削除することができる。コ
ンピュータ・システムは、スヌーパ・サブノード内にコ
ヒーレンシ状態情報を記憶できるにもかかわらず、トラ
ンザクションの再発行と並行してコヒーレンシ状態情報
を更新する機構を含む。コンピュータ・システムをユー
ザのニーズに応じて構成し更新するうえで融通が利くの
で有利である。
【0159】当業者には、上記の開示を完全に理解した
後に多数の変形形態および修正形態が明らかになろう。
たとえば、本明細書に示した様々なブロックおよび構成
要素はハードウェア実施形態に関して説明したが、代替
実施形態では、ハードウェア機能のすべてまたは一部を
ソフトウェアで実施することができる。特許請求の範囲
は、すべてのそのような変形形態および修正形態を包含
するものと解釈されるものである。
後に多数の変形形態および修正形態が明らかになろう。
たとえば、本明細書に示した様々なブロックおよび構成
要素はハードウェア実施形態に関して説明したが、代替
実施形態では、ハードウェア機能のすべてまたは一部を
ソフトウェアで実施することができる。特許請求の範囲
は、すべてのそのような変形形態および修正形態を包含
するものと解釈されるものである。
【図1】マルチプロセッサ・コンピュータ・システムの
ブロック図である。
ブロック図である。
【図2】図1に示したコンピュータ・システムの一実施
形態によってサポートされる非一様メモリ・アーキテク
チャを示す概念ブロック図(A)と図1に示したコンピ
ュータ・システムの一実施形態によってサポートされる
キャッシュ専用メモリ・アーキテクチャを示す概念ブロ
ック図(B)である。
形態によってサポートされる非一様メモリ・アーキテク
チャを示す概念ブロック図(A)と図1に示したコンピ
ュータ・システムの一実施形態によってサポートされる
キャッシュ専用メモリ・アーキテクチャを示す概念ブロ
ック図(B)である。
【図3】図1に示した対称型多重処理ノードの一実施形
態のブロック図である。
態のブロック図である。
【図4】図3に示したディレクトリの一実施形態に記憶
された例示的なディレクトリ・エントリを示す図であ
る。
された例示的なディレクトリ・エントリを示す図であ
る。
【図5】図1に示したシステム・インタフェースの一実
施形態のブロック図である。
施形態のブロック図である。
【図6】要求エージェントとホーム・エージェントとス
レーブ・エージェントとの間の通常のコヒーレンシ動作
に応答して実行される活動を示す図である。
レーブ・エージェントとの間の通常のコヒーレンシ動作
に応答して実行される活動を示す図である。
【図7】プロセッサからのリード・ツー・オウン要求に
応答して実行される例示的なコヒーレンシ動作を示す図
である。
応答して実行される例示的なコヒーレンシ動作を示す図
である。
【図8】図5に示した要求エージェントの一実施形態に
関する例示的な状態マシンを示すフローチャートであ
る。
関する例示的な状態マシンを示すフローチャートであ
る。
【図9】図5に示したホーム・エージェントの一実施形
態に関する例示的な状態マシンを示すフローチャートで
ある。
態に関する例示的な状態マシンを示すフローチャートで
ある。
【図10】図5に示したスレーブ・エージェントの一実
施形態に関する例示的な状態マシンを示すフローチャー
トである。
施形態に関する例示的な状態マシンを示すフローチャー
トである。
【図11】システム・インタフェースの一実施形態によ
る要求タイプをリストした表である。
る要求タイプをリストした表である。
【図12】システム・インタフェースの一実施形態によ
るデマンド・タイプをリストした表である。
るデマンド・タイプをリストした表である。
【図13】システム・インタフェースの一実施形態によ
る応答タイプをリストした表である。
る応答タイプをリストした表である。
【図14】システム・インタフェースの一実施形態によ
る完了タイプをリストした表である。
る完了タイプをリストした表である。
【図15】システム・インタフェースの一実施形態によ
る、プロセッサによって実行される様々な動作に応答し
て実行されるコヒーレンシ動作を表す表である。
る、プロセッサによって実行される様々な動作に応答し
て実行されるコヒーレンシ動作を表す表である。
【図16】図1に示した対称型多重処理ノードの第2の
実施形態のブロック図である。
実施形態のブロック図である。
【図17】図16に示した対称型多重処理ノードのバス
上のトランザクションの一部を示すタイミング図であ
る。
上のトランザクションの一部を示すタイミング図であ
る。
【図18】2つのトランザクションのうちの第1のトラ
ンザクションに関するMTAG状態の更新を強調した、
図16に示した対称型多重処理ノードのバス上での2つ
のトランザクションの一部を示すタイミング図である。
ンザクションに関するMTAG状態の更新を強調した、
図16に示した対称型多重処理ノードのバス上での2つ
のトランザクションの一部を示すタイミング図である。
【図19】対称型多重処理ノードの一実施形態による、
図16に示した対称型多重処理ノードのバス上で送られ
るバイトマスクのフィールドを示す図である。
図16に示した対称型多重処理ノードのバス上で送られ
るバイトマスクのフィールドを示す図である。
【図20】図16に示した対称型多重処理ノードの一実
施形態で使用される制御レジスタの図である。
施形態で使用される制御レジスタの図である。
【図21】図16に示した対称型多重処理ノードの一実
施形態のアドレス空間の図である。
施形態のアドレス空間の図である。
【図22】図16に示した対称型多重処理ノードの一実
施形態で使用される例示的なMTAGレイアウトを示す
図である。
施形態で使用される例示的なMTAGレイアウトを示す
図である。
10 コンピュータ・システム 12 SMPノード 14 ポイント・ツー・ポイント・ネットワーク 16 プロセッサ 18 外部キャッシュ 20 SMPバス 22 メモリ 24 システム・インタフェース 26 入出力インタフェース
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年12月19日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図 1】
【図 2】
【図 4】
【図 5】
【図 7】
【図 3】
【図 10】
【図 12】
【図 13】
【図 14】
【図 19】
【図 6】
【図 11】
【図 16】
【図 8】
【図 20】
【図 22】
【図 9】
【図 15】
【図 18】
【図 21】
【図 17】
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.
Claims (22)
- 【請求項1】 多重処理コンピュータ・システムの処理
ノード内でトランザクションを完了する方法であって、 前記トランザクションに関して実行されるコヒーレンシ
活動が完了したときに前記処理ノード内で前記トランザ
クションを再発行するステップと、 前記再発行に並行して前記トランザクションの影響を受
けるコヒーレンシ単位に対応するコヒーレンシ状態をブ
ロードキャストするステップと、 前記コヒーレンシ単位に対応するコヒーレンシ状態のテ
ーブル内の一部に、前記コヒーレンシ状態を記録するス
テップとを含むことを特徴とする方法。 - 【請求項2】 前記コヒーレンシ状態が、前記コヒーレ
ンシ単位に関して前記処理ノードに与えられるアクセス
権を示すことを特徴とする請求項1に記載の方法。 - 【請求項3】 前記発行が、前記処理ノード内のバス上
で実行されることを特徴とする請求項1に記載の方法。 - 【請求項4】 前記ブロードキャストが前記バス上で実
行されることを特徴とする請求項3に記載の方法。 - 【請求項5】 前記再発行が、前記処理ノード内の第1
のノードによって実行され、前記第1のノードが、前記
多重処理システム内の前記処理ノードと他の処理ノード
との間で通信するように構成されることを特徴とする請
求項4に記載の方法。 - 【請求項6】 前記ブロードキャストが前記第1のサブ
ノードによって実行されることを特徴とする請求項5に
記載の方法。 - 【請求項7】 前記記録が、前記バスに結合された第2
のサブノードによって実行されることを特徴とする請求
項6に記載の方法。 - 【請求項8】 さらに、前記発行に続いて、前記コヒー
レンシ単位に影響を与える第2のトランザクションを発
行するステップを含み、前記第2のサブノードが、前記
記録時に受け取った前記コヒーレンシ状態に従って応答
することを特徴とする請求項7に記載の方法。 - 【請求項9】 システム・インタフェースであって、 処理ノードのローカル・バスとネットワークとの間で通
信するように構成された第1のノードと、 前記ローカル・バスに結合され、前記処理ノード内に記
憶されている第1の複数のコヒーレンシ単位に対応する
第1の複数のコヒーレンシ状態を記憶するように構成さ
れた、第2のサブノードとを備えることを特徴とするシ
ステム・インタフェース。 - 【請求項10】 前記第1のサブノードがさらに、前記
処理ノード内に記憶されている第2の複数のコヒーレン
シ単位に対応する第2の複数のコヒーレンシ状態を記憶
するように構成されることを特徴とする請求項9に記載
のシステム・インタフェース。 - 【請求項11】 さらに、前記処理ノード内に記憶され
ている第3の複数のコヒーレンシ単位に対応する第3の
複数のコヒーレンシ状態を記憶するように構成された第
3の状態を備えることを特徴とする請求項10に記載の
システム・インタフェース。 - 【請求項12】 前記第1のサブノードがさらに、前記
トランザクションに関連するコヒーレンシ活動が前記ネ
ットワークを介して完了したときに前記ローカル・バス
上でトランザクションを再発行するように構成され、前
記第1のサブノードがさらに、前記ローカル・バス上の
前記トランザクションの影響を受けるコヒーレンシ単位
に対応するコヒーレンシ状態を並行してブロードキャス
トするように構成されることを特徴とする請求項10に
記載のシステム・インタフェース。 - 【請求項13】 前記第2のサブノードがさらに、前記
コヒーレンシ単位が前記第1の複数のコヒーレンシ単位
のうちの1つである場合に前記コヒーレンシ状態を取り
込み記憶するように構成されることを特徴とする請求項
12に記載のシステム・インタフェース。 - 【請求項14】 前記トランザクションが、第1のアド
レス・フェーズと第2のアドレス・フェーズとを含むこ
とを特徴とする請求項12に記載のシステム・インタフ
ェース。 - 【請求項15】 前記第1のアドレス・フェーズおよび
前記第2のアドレス・フェーズが、連続バス・クロック
・サイクル上で実行されることを特徴とする請求項14
に記載のシステム・インタフェース。 - 【請求項16】 前記第2のアドレス・フェーズが前記
コヒーレンシ状態を含むことを特徴とする請求項15に
記載のシステム・インタフェース。 - 【請求項17】 前記コヒーレンシ状態が、前記第2の
アドレス・フェーズのバイトマスク・フィールドを介し
て指定されることを特徴とする請求項16に記載のシス
テム・インタフェース。 - 【請求項18】 前記トランザクションが、前記ローカ
ル・バス上で無視信号がアサートされたことの影響を受
けないことを示す表示が、前記バイトマスクに含まれる
ことを特徴とする請求項17に記載のシステム・インタ
フェース。 - 【請求項19】 前記第2のサブノードが、トランザク
ションが実行される場合に無視信号をアサートするよう
に構成され、前記第2のサブノード内に記憶されている
対応するコヒーレンシ状態が、前記処理ノードが有す
る、影響を受けるコヒーレンシ単位へのアクセス権を不
十分であることを示すことを特徴とする請求項9に記載
のシステム・インタフェース。 - 【請求項20】 前記第2のサブノードがさらに、前記
第1のサブノードに結合された第2の信号線上で第2の
信号をアサートするように構成され、前記第2の信号
が、前記第2のサブノードが前記無視信号をアサートし
ていることを前記第1のサブノードに知らせるものであ
ることを特徴とする請求項19に記載のシステム・イン
タフェース。 - 【請求項21】 コンピュータ・システムであって、 ネットワークと、 前記ネットワークに結合され、 前記ネットワーク上で通信を実施し、前記通信の完了時
に前記通信が実施されたトランザクションを発行し、さ
らに前記通信を介して達成されるコヒーレンシ状態をブ
ロードキャストするように構成されたコントローラ・サ
ブノードと、 前記第1の処理ノード内に記憶されている第1の複数の
コヒーレンシ単位に対応する第1の複数のコヒーレンシ
状態を記憶するように構成され、前記コヒーレンシ状態
が前記複数のコヒーレンシ状態のうちの1つである場合
に前記コントローラ・サブノードによってブロードキャ
ストされた前記コヒーレンシ状態を取り込むように構成
されるスヌーパ・サブノードとを含む、第1の処理ノー
ドとを備えることを特徴とするコンピュータ・システ
ム。 - 【請求項22】 前記コントローラ・サブノードが、第
2の複数のコヒーレンシ単位に対応する第2の複数のコ
ヒーレンシ状態を記憶するように構成されることを特徴
とする請求項21に記載のコンピュータ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/674274 | 1996-07-01 | ||
| US08/674,274 US5878268A (en) | 1996-07-01 | 1996-07-01 | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10187645A true JPH10187645A (ja) | 1998-07-21 |
Family
ID=24705992
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9208231A Pending JPH10187645A (ja) | 1996-07-01 | 1997-06-30 | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5878268A (ja) |
| EP (1) | EP0817072A3 (ja) |
| JP (1) | JPH10187645A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012077169A1 (ja) | 2010-12-06 | 2012-06-14 | 富士通株式会社 | 情報処理システムおよび情報送信方法 |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6327640B1 (en) * | 1997-03-07 | 2001-12-04 | Advanced Micro Devices, Inc. | Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| US6122709A (en) * | 1997-12-19 | 2000-09-19 | Sun Microsystems, Inc. | Cache with reduced tag information storage |
| US6148375A (en) * | 1998-02-13 | 2000-11-14 | International Business Machines Corporation | Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes |
| US6038651A (en) * | 1998-03-23 | 2000-03-14 | International Business Machines Corporation | SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum |
| 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 |
| 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 |
| 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 |
| US6338122B1 (en) * | 1998-12-15 | 2002-01-08 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node |
| 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 |
| 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 |
| 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 |
| 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 |
| US6275900B1 (en) * | 1999-01-27 | 2001-08-14 | International Business Machines Company | Hybrid NUMA/S-COMA system and method |
| 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 |
| US6826619B1 (en) | 2000-08-21 | 2004-11-30 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
| US6487643B1 (en) | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
| US6772298B2 (en) | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
| US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
| US6791412B2 (en) * | 2000-12-28 | 2004-09-14 | Intel Corporation | Differential amplifier output stage |
| US6721918B2 (en) | 2000-12-29 | 2004-04-13 | Intel Corporation | Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect |
| US20020087766A1 (en) * | 2000-12-29 | 2002-07-04 | Akhilesh Kumar | Method and apparatus to implement a locked-bus transaction |
| US20020087775A1 (en) * | 2000-12-29 | 2002-07-04 | Looi Lily P. | Apparatus and method for interrupt delivery |
| US6971098B2 (en) | 2001-06-27 | 2005-11-29 | Intel Corporation | Method and apparatus for managing transaction requests in a multi-node architecture |
| US6748479B2 (en) | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
| US7206879B2 (en) * | 2001-11-20 | 2007-04-17 | Broadcom Corporation | Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems |
| US7394823B2 (en) * | 2001-11-20 | 2008-07-01 | Broadcom Corporation | System having configurable interfaces for flexible system configurations |
| 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 |
| US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
| US7003631B2 (en) * | 2002-05-15 | 2006-02-21 | Broadcom Corporation | System having address-based intranode coherency and data-based internode coherency |
| US6965973B2 (en) | 2002-05-15 | 2005-11-15 | Broadcom Corporation | Remote line directory which covers subset of shareable CC-NUMA memory space |
| US6993631B2 (en) * | 2002-05-15 | 2006-01-31 | Broadcom Corporation | L2 cache maintaining local ownership of remote coherency blocks |
| US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
| US7089376B2 (en) * | 2003-03-20 | 2006-08-08 | International Business Machines Corporation | Reducing snoop response time for snoopers without copies of requested data via snoop filtering |
| US7395380B2 (en) * | 2003-03-20 | 2008-07-01 | International Business Machines Corporation | Selective snooping by snoop masters to locate updated data |
| US20040199727A1 (en) * | 2003-04-02 | 2004-10-07 | Narad Charles E. | Cache allocation |
| 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 |
| US7644221B1 (en) | 2005-04-11 | 2010-01-05 | Sun Microsystems, Inc. | System interface unit |
| US7395376B2 (en) * | 2005-07-19 | 2008-07-01 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks |
| US7360032B2 (en) * | 2005-07-19 | 2008-04-15 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks |
| US7698523B2 (en) * | 2006-09-29 | 2010-04-13 | Broadcom Corporation | Hardware memory locks |
| US7636816B2 (en) * | 2006-09-29 | 2009-12-22 | Broadcom Corporation | Global address space management |
| US20080082622A1 (en) * | 2006-09-29 | 2008-04-03 | Broadcom Corporation | Communication in a cluster system |
| US7631150B2 (en) * | 2006-09-29 | 2009-12-08 | Broadcom Corporation | Memory management in a shared memory system |
| US7519780B2 (en) * | 2006-11-03 | 2009-04-14 | International Business Machines Corporation | System and method for reducing store latency in symmetrical multiprocessor systems |
| 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 |
| US10452547B2 (en) * | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| 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 |
|---|---|---|---|---|
| US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
| JPH04367963A (ja) * | 1991-06-15 | 1992-12-21 | Hitachi Ltd | 共有記憶通信方法 |
| US5428803A (en) * | 1992-07-10 | 1995-06-27 | Cray Research, Inc. | Method and apparatus for a unified parallel processing architecture |
| US5522058A (en) * | 1992-08-11 | 1996-05-28 | Kabushiki Kaisha Toshiba | Distributed shared-memory multiprocessor system with reduced traffic on shared bus |
| JP3200757B2 (ja) * | 1993-10-22 | 2001-08-20 | 株式会社日立製作所 | 並列計算機の記憶制御方法および並列計算機 |
| US5577204A (en) * | 1993-12-15 | 1996-11-19 | Convex Computer Corporation | Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device |
| US5613071A (en) * | 1995-07-14 | 1997-03-18 | Intel Corporation | Method and apparatus for providing remote memory access in a distributed memory multiprocessor system |
-
1996
- 1996-07-01 US US08/674,274 patent/US5878268A/en not_active Expired - Lifetime
-
1997
- 1997-06-27 EP EP97304617A patent/EP0817072A3/en not_active Ceased
- 1997-06-30 JP JP9208231A patent/JPH10187645A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012077169A1 (ja) | 2010-12-06 | 2012-06-14 | 富士通株式会社 | 情報処理システムおよび情報送信方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0817072A2 (en) | 1998-01-07 |
| EP0817072A3 (en) | 2001-11-14 |
| US5878268A (en) | 1999-03-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3987162B2 (ja) | 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム | |
| US5878268A (en) | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node | |
| US5734922A (en) | Multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
| EP0817073B1 (en) | A multiprocessing system configured to perform efficient write operations | |
| EP0818733B1 (en) | A multiprocessing system configured to perform software initiated prefetch operations | |
| US5860159A (en) | Multiprocessing system including an apparatus for optimizing spin--lock operations | |
| JPH10149342A (ja) | プリフェッチ動作を実行するマルチプロセス・システム | |
| US5958019A (en) | Multiprocessing system configured to perform synchronization operations | |
| US5887138A (en) | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes | |
| EP0817093B1 (en) | A multiprocessor system configured to perform block copy operations | |
| EP0817074B1 (en) | Multiprocessing system employing a three-hop communication protocol | |
| EP0817070B1 (en) | Multiprocessing system employing a coherency protocol including a reply count | |
| CA2349569C (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
| JPH10133917A (ja) | コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システム | |
| CA2271536C (en) | Non-uniform memory access (numa) data processing system that buffers potential third node transactions to decrease communication latency | |
| JP2001515244A (ja) | スケーリング可能な共用メモリ・マルチプロセッサ・システム | |
| JP2000227908A (ja) | 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム |