JPH10133917A - コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システム - Google Patents
コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システムInfo
- Publication number
- JPH10133917A JPH10133917A JP9208224A JP20822497A JPH10133917A JP H10133917 A JPH10133917 A JP H10133917A JP 9208224 A JP9208224 A JP 9208224A JP 20822497 A JP20822497 A JP 20822497A JP H10133917 A JPH10133917 A JP H10133917A
- Authority
- JP
- Japan
- Prior art keywords
- coherency
- agent
- error
- state
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
(57)【要約】
【課題】 グローバル・コヒーレンシ活動を実行する際
に使用されるプロトコル・エージェントが実行中の活動
に関するエラーを検出する。 【解決手段】 エラーは、検出されたエラーを判定し、
エラーを発生させたソフトウェアまたはハードウェアを
追跡するために診断ソフトウェアを実行できるように、
コンピュータ・システムによってロギングされる。具体
的には、検出すべき第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 Store Cohe
rency State Within Multip
le Subnodes of a Processi
ng Node」(参照番号P1527)。 33.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform Pr
efetching Operations」(参照番
号P1571)。 34.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform Sy
nchronization Operations」
(参照番号P1551)。 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 Store Cohe
rency State Within Multip
le Subnodes of a Processi
ng Node」(参照番号P1527)。 33.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform Pr
efetching Operations」(参照番
号P1571)。 34.本出願と同時出願されたHagersten等の
「A Multiprocessing System
Configured to Perform Sy
nchronization Operations」
(参照番号P1551)。 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】分散共用メモリ・コンピュータ・システム
は、多数のプロセッサをサポートするので、いわゆる
「ミッション・クリティカル」アプリケーションを実行
するために使用されることが多い。ミッション・クリテ
ィカル・アプリケーションとは、特定の業務の依存度が
高いアプリケーションである。ミッション・クリティカ
ル・アプリケーションが使用できない場合、業務の運営
は重大な影響を受ける。したがって、そのようなコンピ
ュータ・システムは極めて高度な可用性および信頼性を
有する必要がある。可用性および信頼性の1つの尺度
は、コンピュータ・システムの耐故障性である。コンピ
ュータは、ハードウェアが発生させたエラーであるか、
それともソフトウェアが発生させたエラーであるかにか
かわらず、エラーが発生しても、コンピュータ・システ
ムが動作を停止しない場合には耐故障性を有する。障害
を有するソフトウェアは実行を終了する恐れがある。同
様に、故障したハードウェアは停止する恐れがある。
は、多数のプロセッサをサポートするので、いわゆる
「ミッション・クリティカル」アプリケーションを実行
するために使用されることが多い。ミッション・クリテ
ィカル・アプリケーションとは、特定の業務の依存度が
高いアプリケーションである。ミッション・クリティカ
ル・アプリケーションが使用できない場合、業務の運営
は重大な影響を受ける。したがって、そのようなコンピ
ュータ・システムは極めて高度な可用性および信頼性を
有する必要がある。可用性および信頼性の1つの尺度
は、コンピュータ・システムの耐故障性である。コンピ
ュータは、ハードウェアが発生させたエラーであるか、
それともソフトウェアが発生させたエラーであるかにか
かわらず、エラーが発生しても、コンピュータ・システ
ムが動作を停止しない場合には耐故障性を有する。障害
を有するソフトウェアは実行を終了する恐れがある。同
様に、故障したハードウェアは停止する恐れがある。
【0012】
【発明が解決しようとする課題】コンピュータ・システ
ムは、耐故障性と、場合によっては、コンピュータ・シ
ステムの可用性および信頼性を高めるその他の特性だけ
でなく、エラー・ロギング機能を備えることが望まし
い。検出されたエラーに関する情報をログすることによ
って、機械を補修する技術者は、エラーを発生させたハ
ードウェアまたはソフトウェアをより容易に見つけるこ
とができる。したがって、分散共用メモリ・コンピュー
タ・システム用のエラー・ロギング・システムが望まし
い。
ムは、耐故障性と、場合によっては、コンピュータ・シ
ステムの可用性および信頼性を高めるその他の特性だけ
でなく、エラー・ロギング機能を備えることが望まし
い。検出されたエラーに関する情報をログすることによ
って、機械を補修する技術者は、エラーを発生させたハ
ードウェアまたはソフトウェアをより容易に見つけるこ
とができる。したがって、分散共用メモリ・コンピュー
タ・システム用のエラー・ロギング・システムが望まし
い。
【0013】
【課題を解決するための手段】上記で概略的に説明した
問題は主として、本発明によるコンピュータ・システム
によって解決される。グローバル・コヒーレンシ活動を
実行する際に使用されるプロトコル・エージェントは、
実行中の活動に関するエラーを検出する。エラーは、検
出されたエラーを判定し、エラーを発生させたソフトウ
ェアまたはハードウェアを追跡するために診断ソフトウ
ェアを実行できるように、コンピュータ・システムによ
ってロギングされる。具体的には、検出すべき第1のエ
ラーに関する情報がロギングされる。その後のエラー
は、プログラム可能な構成値に応じて多少ともロギング
を受けることができる。また、フル・ロギングを受ける
エラーをエラー・マスクを介してプログラム可能に選択
することができる。
問題は主として、本発明によるコンピュータ・システム
によって解決される。グローバル・コヒーレンシ活動を
実行する際に使用されるプロトコル・エージェントは、
実行中の活動に関するエラーを検出する。エラーは、検
出されたエラーを判定し、エラーを発生させたソフトウ
ェアまたはハードウェアを追跡するために診断ソフトウ
ェアを実行できるように、コンピュータ・システムによ
ってロギングされる。具体的には、検出すべき第1のエ
ラーに関する情報がロギングされる。その後のエラー
は、プログラム可能な構成値に応じて多少ともロギング
を受けることができる。また、フル・ロギングを受ける
エラーをエラー・マスクを介してプログラム可能に選択
することができる。
【0014】一実施態様では、各プロトコル・エージェ
ントは、複数の独立の状態マシンを備える。各状態マシ
ンは、他の要求を処理する他の状態マシンとは独立に1
つの要求を処理する。特定の状態マシンが処理している
要求の結果としてエラーが発生した場合、その特定の状
態マシンはフリーズ状態を開始することができる。それ
によって、状態マシンによって収集される要求に関する
情報を、後でアクセスできるように保存することができ
る。状態マシンがフリーズするのは、エラーが検出され
たときに、最大数の複数の状態マシンがまだフリーズさ
れておらず、前述のエラー・マスクが、検出されたエラ
ーに対してフル・エラー・ロギングが使用されることを
示している場合である。したがって、多数のエラーが存
在する場合でも、少なくとも最大数の複数の状態マシン
は動作し続ける。
ントは、複数の独立の状態マシンを備える。各状態マシ
ンは、他の要求を処理する他の状態マシンとは独立に1
つの要求を処理する。特定の状態マシンが処理している
要求の結果としてエラーが発生した場合、その特定の状
態マシンはフリーズ状態を開始することができる。それ
によって、状態マシンによって収集される要求に関する
情報を、後でアクセスできるように保存することができ
る。状態マシンがフリーズするのは、エラーが検出され
たときに、最大数の複数の状態マシンがまだフリーズさ
れておらず、前述のエラー・マスクが、検出されたエラ
ーに対してフル・エラー・ロギングが使用されることを
示している場合である。したがって、多数のエラーが存
在する場合でも、少なくとも最大数の複数の状態マシン
は動作し続ける。
【0015】さらに、プロトコル状態マシンは、フリー
ズ状態を開始する前に、エラー・ロギングのために使用
される資源が、エラーを発生させた要求から解放される
回復状態に遷移することができる。このように、その後
の要求を引き続き適切に処理することができる。したが
って、このコンピュータ・システムは高度の信頼性およ
び可用性を有することができる。
ズ状態を開始する前に、エラー・ロギングのために使用
される資源が、エラーを発生させた要求から解放される
回復状態に遷移することができる。このように、その後
の要求を引き続き適切に処理することができる。したが
って、このコンピュータ・システムは高度の信頼性およ
び可用性を有することができる。
【0016】本発明は、プロトコル・エージェントと記
憶装置とを備える、エラーをログする装置を企図するも
のである。プロトコル・エージェントは、処理ノードか
らのコヒーレンシ単位へのアクセスに応答してコヒーレ
ンシ動作を実行するように構成される。記憶装置は、プ
ロトコル・エージェントによってエラーが検出されたと
きにプロトコル・エージェントの表示を記憶するように
構成される。
憶装置とを備える、エラーをログする装置を企図するも
のである。プロトコル・エージェントは、処理ノードか
らのコヒーレンシ単位へのアクセスに応答してコヒーレ
ンシ動作を実行するように構成される。記憶装置は、プ
ロトコル・エージェントによってエラーが検出されたと
きにプロトコル・エージェントの表示を記憶するように
構成される。
【0017】本発明はさらに、エラーをログする方法を
企図するものである。プロトコル・エージェントを備え
る複数の状態マシンのうちの1つによって処理されてい
るトランザクションに関してエラーが検出される。検出
時に複数の状態マシンのうちの1つの状態マシン内で回
復状態が開始され、それによって、トランザクションが
占有している資源が解放される。それに続いて、複数の
状態マシンのうちの1つの状態マシン内でフリーズ状態
が開始される。このように、トランザクションに関する
トランザクション情報が保存される。
企図するものである。プロトコル・エージェントを備え
る複数の状態マシンのうちの1つによって処理されてい
るトランザクションに関してエラーが検出される。検出
時に複数の状態マシンのうちの1つの状態マシン内で回
復状態が開始され、それによって、トランザクションが
占有している資源が解放される。それに続いて、複数の
状態マシンのうちの1つの状態マシン内でフリーズ状態
が開始される。このように、トランザクションに関する
トランザクション情報が保存される。
【0018】本発明はさらに、第1の処理ノードと第2
の処理ノードとを備えるコンピュータ・システムを企図
するものである。第1の処理ノードは、それから開始さ
れたコヒーレンシ要求に関する第1のエラーを検出しロ
グするように構成される。第2の処理ノードは、それか
ら開始されたコヒーレンシ・デマンドに関する第2のエ
ラーを検出しログするように構成されたホーム・エージ
ェントを含む。
の処理ノードとを備えるコンピュータ・システムを企図
するものである。第1の処理ノードは、それから開始さ
れたコヒーレンシ要求に関する第1のエラーを検出しロ
グするように構成される。第2の処理ノードは、それか
ら開始されたコヒーレンシ・デマンドに関する第2のエ
ラーを検出しログするように構成されたホーム・エージ
ェントを含む。
【0019】本発明の他の目的および利点は、下記の詳
細な説明を読み添付の図面を参照したときに明らかにな
ろう。
細な説明を読み添付の図面を参照したときに明らかにな
ろう。
【0020】本発明では様々な修正形態および変更形態
が可能であるが、本発明の特定の実施形態が、一例とし
て図示され、本明細書に詳しく記載されている。しか
し、図面および詳細な説明が、開示した特定の形態に本
発明を制限するものではなく、本発明が、添付の特許請
求の範囲で定義した本発明の趣旨および範囲内のすべて
の修正形態、等価物、変更形態をカバーするものである
ことを理解されたい。
が可能であるが、本発明の特定の実施形態が、一例とし
て図示され、本明細書に詳しく記載されている。しか
し、図面および詳細な説明が、開示した特定の形態に本
発明を制限するものではなく、本発明が、添付の特許請
求の範囲で定義した本発明の趣旨および範囲内のすべて
の修正形態、等価物、変更形態をカバーするものである
ことを理解されたい。
【0021】
【発明の実施の形態】次に、図1を参照すると、多重処
理コンピュータ・システム10の一実施形態のブロック
図が示されている。コンピュータ・システム10は、ポ
イント・ツー・ポイント・ネットワーク14によって相
互接続された複数のSMPノード12Aないし12Dを
含む。本明細書で特定の参照符号とその後に続く文字で
参照された要素は、集合的に参照符号のみで参照する。
たとえば、SMPノード12Aないし12Dを集合的に
SMPノード12と呼ぶ。図の実施形態では、各SMP
ノード12は、複数のプロセッサと、外部キャッシュ
と、SMPバスと、メモリと、システム・インタフェー
スとを含む。たとえば、SMPノード12Aは、プロセ
ッサ16Aないし16Bを含む複数のプロセッサと共に
構成される。プロセッサ16は外部キャッシュ18に接
続され、外部キャッシュ18はさらにSMPバス20に
結合される。また、メモリ22およびシステム・インタ
フェース24はSMPバス20に結合される。さらに、
SMPバス20に1つまたは複数の入出力(I/O)イ
ンタフェース26を結合することができる。入出力イン
タフェース26は、シリアル・ポートおよびパラレル・
ポート、ディスク・ドライブ、モデム、プリンタなどの
周辺装置とのインタフェースをとるために使用される。
他のSMPノード12Bないし12Dを同様に構成する
ことができる。
理コンピュータ・システム10の一実施形態のブロック
図が示されている。コンピュータ・システム10は、ポ
イント・ツー・ポイント・ネットワーク14によって相
互接続された複数のSMPノード12Aないし12Dを
含む。本明細書で特定の参照符号とその後に続く文字で
参照された要素は、集合的に参照符号のみで参照する。
たとえば、SMPノード12Aないし12Dを集合的に
SMPノード12と呼ぶ。図の実施形態では、各SMP
ノード12は、複数のプロセッサと、外部キャッシュ
と、SMPバスと、メモリと、システム・インタフェー
スとを含む。たとえば、SMPノード12Aは、プロセ
ッサ16Aないし16Bを含む複数のプロセッサと共に
構成される。プロセッサ16は外部キャッシュ18に接
続され、外部キャッシュ18はさらにSMPバス20に
結合される。また、メモリ22およびシステム・インタ
フェース24はSMPバス20に結合される。さらに、
SMPバス20に1つまたは複数の入出力(I/O)イ
ンタフェース26を結合することができる。入出力イン
タフェース26は、シリアル・ポートおよびパラレル・
ポート、ディスク・ドライブ、モデム、プリンタなどの
周辺装置とのインタフェースをとるために使用される。
他のSMPノード12Bないし12Dを同様に構成する
ことができる。
【0022】一般的に言えば、コンピュータ・システム
10は、エラーを検出しログするように構成される。具
体的には、コヒーレンシ活動に関与する要求エージェン
トおよびホーム・エージェントは、実行中のコヒーレン
シ活動に関係するエラーを検出するように構成される。
エラーは、エラーの検出時に実行されていた活動に関す
る情報と共にロギングされる。また、コヒーレンシ活動
を開始したトランザクションによって占有されていたコ
ンピュータ・システム10内の資源が解放され、それに
よって、その後のトランザクションおよびコヒーレンシ
動作を継続することができる。たとえば、エラーが検出
されたトランザクションをローカル・ノード内で再発行
し、そのトランザクションによって占有されていたシス
テム・インタフェース24内の再発行待ち行列エントリ
を解放することができる。さらに、そのトランザクショ
ンを完了させることによって、そのトランザクションに
よって占有されていたプロセッサ資源を解放することが
できる。再発行トランザクションは、トランザクション
がエラーと共に完了しており、そのため、開始側プロセ
ッサが、トラップし、コンピュータ・システム10を制
御するオペレーティング・システムに是正処置を取らせ
ることができることを示すことができる。コヒーレンシ
関連エラーがコンピュータ・システム10によって検出
され是正されるので有利である。コンピュータ・システ
ム10は、そのようなエラーが存在するにもかかわらず
動作し続け、システムの可用性および信頼性を高めるこ
とができる。
10は、エラーを検出しログするように構成される。具
体的には、コヒーレンシ活動に関与する要求エージェン
トおよびホーム・エージェントは、実行中のコヒーレン
シ活動に関係するエラーを検出するように構成される。
エラーは、エラーの検出時に実行されていた活動に関す
る情報と共にロギングされる。また、コヒーレンシ活動
を開始したトランザクションによって占有されていたコ
ンピュータ・システム10内の資源が解放され、それに
よって、その後のトランザクションおよびコヒーレンシ
動作を継続することができる。たとえば、エラーが検出
されたトランザクションをローカル・ノード内で再発行
し、そのトランザクションによって占有されていたシス
テム・インタフェース24内の再発行待ち行列エントリ
を解放することができる。さらに、そのトランザクショ
ンを完了させることによって、そのトランザクションに
よって占有されていたプロセッサ資源を解放することが
できる。再発行トランザクションは、トランザクション
がエラーと共に完了しており、そのため、開始側プロセ
ッサが、トラップし、コンピュータ・システム10を制
御するオペレーティング・システムに是正処置を取らせ
ることができることを示すことができる。コヒーレンシ
関連エラーがコンピュータ・システム10によって検出
され是正されるので有利である。コンピュータ・システ
ム10は、そのようなエラーが存在するにもかかわらず
動作し続け、システムの可用性および信頼性を高めるこ
とができる。
【0023】一実施形態では、要求エージェントおよび
ホーム・エージェントは、それらに含まれる複数の独立
の状態マシン内でフリーズ状態を実施する。トランザク
ションに関するエラーが検出されると、そのトランザク
ションを処理している状態マシンがフリーズする。言い
換えれば、状態マシンは、ソフトウェアによって特定的
にクリアされるまで新しいトランザクションを処理する
ことはない。したがって、トランザクションに関係し状
態マシンによって制御される状態を分析に使用すること
ができる。エラーを発生させた問題のデバッグは、この
情報が存在することによって簡略化することができる。
さらに、フリーズ状態を開始する前に回復状態を開始す
ることができる。回復状態によって、エラーが検出され
たトランザクションによって占有されていた資源を解放
する処置を取ることができる(その資源がデバッグには
有用でない場合)。複数の状態マシンが使用されるの
で、エラーを検出した状態マシンがフリーズしたままで
ある間、他の状態マシンはその後のトランザクションを
処理することができる。システム・インタフェース24
のプログラム可能な特性は、同時にフリーズすることの
できる状態マシンの最大数を定義する。最大数に達した
後に検出されたエラーはロギングされるが、状態マシン
はフリーズされない。このように、頻繁に起こるエラー
が存在する場合でも、少なくとも最小数の状態マシンが
動作し続ける。
ホーム・エージェントは、それらに含まれる複数の独立
の状態マシン内でフリーズ状態を実施する。トランザク
ションに関するエラーが検出されると、そのトランザク
ションを処理している状態マシンがフリーズする。言い
換えれば、状態マシンは、ソフトウェアによって特定的
にクリアされるまで新しいトランザクションを処理する
ことはない。したがって、トランザクションに関係し状
態マシンによって制御される状態を分析に使用すること
ができる。エラーを発生させた問題のデバッグは、この
情報が存在することによって簡略化することができる。
さらに、フリーズ状態を開始する前に回復状態を開始す
ることができる。回復状態によって、エラーが検出され
たトランザクションによって占有されていた資源を解放
する処置を取ることができる(その資源がデバッグには
有用でない場合)。複数の状態マシンが使用されるの
で、エラーを検出した状態マシンがフリーズしたままで
ある間、他の状態マシンはその後のトランザクションを
処理することができる。システム・インタフェース24
のプログラム可能な特性は、同時にフリーズすることの
できる状態マシンの最大数を定義する。最大数に達した
後に検出されたエラーはロギングされるが、状態マシン
はフリーズされない。このように、頻繁に起こるエラー
が存在する場合でも、少なくとも最小数の状態マシンが
動作し続ける。
【0024】一般的に言えば、メモリ動作とは、データ
を送信元から宛先へ転送させる動作である。送信元また
は宛先、あるいはその両方は、開始側内の記憶位置で
も、あるいはメモリ内の記憶位置でもよい。送信元また
は宛先は、メモリ内の記憶位置であるとき、メモリ動作
と共に搬送されるアドレスを介して指定される。メモリ
動作は、読取り動作でも、あるいは書込み動作でもよ
い。読取り動作では、データが開始側の外側の送信元か
ら開始側内の宛先へ転送される。逆に、書込み動作で
は、データが開始側内の送信元から開始側の外側の宛先
へ転送される。図1に示したコンピュータ・システムで
は、メモリ動作は、SMPバス20上の1つまたは複数
のトランザクションと、ネットワーク14上の1つまた
は複数のコヒーレンシ動作を含むことができる。
を送信元から宛先へ転送させる動作である。送信元また
は宛先、あるいはその両方は、開始側内の記憶位置で
も、あるいはメモリ内の記憶位置でもよい。送信元また
は宛先は、メモリ内の記憶位置であるとき、メモリ動作
と共に搬送されるアドレスを介して指定される。メモリ
動作は、読取り動作でも、あるいは書込み動作でもよ
い。読取り動作では、データが開始側の外側の送信元か
ら開始側内の宛先へ転送される。逆に、書込み動作で
は、データが開始側内の送信元から開始側の外側の宛先
へ転送される。図1に示したコンピュータ・システムで
は、メモリ動作は、SMPバス20上の1つまたは複数
のトランザクションと、ネットワーク14上の1つまた
は複数のコヒーレンシ動作を含むことができる。
【0025】アーキテクチャの概要 各SMPノード12は基本的に、メモリ22を共用メモ
リとして有するSMPシステムである。プロセッサ16
は、高性能プロセッサである。一実施形態では、各プロ
セッサ16は、SPARCプロセッサ・アーキテクチャ
のバージョン9に適合するSPARCプロセッサであ
る。しかし、プロセッサ16が任意のプロセッサ・アー
キテクチャを使用できることに留意されたい。
リとして有するSMPシステムである。プロセッサ16
は、高性能プロセッサである。一実施形態では、各プロ
セッサ16は、SPARCプロセッサ・アーキテクチャ
のバージョン9に適合するSPARCプロセッサであ
る。しかし、プロセッサ16が任意のプロセッサ・アー
キテクチャを使用できることに留意されたい。
【0026】通常、プロセッサ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によってセ
ットアソシエーティブ構成またはダイレクトマッピング
構成を使用することができる。
【0027】SMPバス20は、プロセッサ16(キャ
ッシュ18を通じた通信)とメモリ22とシステム・イ
ンタフェース24と入出力インタフェース26との間の
通信に適応する。一実施形態では、SMPバス20は、
アドレス・バスおよび関連する制御信号、ならびにデー
タ・バスおよび関連する制御信号を含む。アドレス・バ
スとデータ・バスが別々のものなので、SMPバス20
上で分割トランザクション・バス・プロトコルを使用す
ることができる。一般的に言えば、分割トランザクショ
ン・バス・プロトコルは、アドレス・バス上で行われる
トランザクションが、データ・バス上で行われる並行ト
ランザクションとは異なるものでよいプロトコルであ
る。アドレスとデータを使用するトランザクションは、
アドレス・バス上でアドレスおよび関連する制御情報が
搬送されるアドレス・フェーズと、データ・バス上でデ
ータが搬送されるデータ・フェーズとを含む。特定のア
ドレス・フェーズに対応するデータ・フェーズの前に、
他のトランザクションに関する追加アドレス・フェーズ
または追加データ・フェーズ、あるいはその両方を開始
することができる。アドレス・フェーズと対応するデー
タ・フェーズは、多数の方法で相関付けることができ
る。たとえば、データ・トランザクションをアドレス・
トランザクションと同じ順序で行うことができる。別法
として、トランザクションのアドレス・フェーズとデー
タ・フェーズを固有のタグを介して識別することができ
る。
ッシュ18を通じた通信)とメモリ22とシステム・イ
ンタフェース24と入出力インタフェース26との間の
通信に適応する。一実施形態では、SMPバス20は、
アドレス・バスおよび関連する制御信号、ならびにデー
タ・バスおよび関連する制御信号を含む。アドレス・バ
スとデータ・バスが別々のものなので、SMPバス20
上で分割トランザクション・バス・プロトコルを使用す
ることができる。一般的に言えば、分割トランザクショ
ン・バス・プロトコルは、アドレス・バス上で行われる
トランザクションが、データ・バス上で行われる並行ト
ランザクションとは異なるものでよいプロトコルであ
る。アドレスとデータを使用するトランザクションは、
アドレス・バス上でアドレスおよび関連する制御情報が
搬送されるアドレス・フェーズと、データ・バス上でデ
ータが搬送されるデータ・フェーズとを含む。特定のア
ドレス・フェーズに対応するデータ・フェーズの前に、
他のトランザクションに関する追加アドレス・フェーズ
または追加データ・フェーズ、あるいはその両方を開始
することができる。アドレス・フェーズと対応するデー
タ・フェーズは、多数の方法で相関付けることができ
る。たとえば、データ・トランザクションをアドレス・
トランザクションと同じ順序で行うことができる。別法
として、トランザクションのアドレス・フェーズとデー
タ・フェーズを固有のタグを介して識別することができ
る。
【0028】メモリ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上の
スヌーピングはノード内コヒーレンシを与える。
【0029】システム・インタフェース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のノードと通信するために使用した
リンクとは異なるリンクを使用する。
【0030】図1では4つのSMPノード12が示され
ているが、任意の数のノードを使用するコンピュータ・
システム10の実施形態が企図されることに留意された
い。
ているが、任意の数のノードを使用するコンピュータ・
システム10の実施形態が企図されることに留意された
い。
【0031】図2Aおよび2Bは、コンピュータ・シス
テム10の一実施形態によってサポートされる分散メモ
リ・アーキテクチャの概念図である。具体的には、図2
Aおよび2Bは、図1の各SMPノード12がデータを
キャッシュしメモリ・アクセスを実行する代替方法を示
す。コンピュータ・システム10がそのようなアクセス
をサポートする方法に関する詳細については、下記で詳
しく説明する。
テム10の一実施形態によってサポートされる分散メモ
リ・アーキテクチャの概念図である。具体的には、図2
Aおよび2Bは、図1の各SMPノード12がデータを
キャッシュしメモリ・アクセスを実行する代替方法を示
す。コンピュータ・システム10がそのようなアクセス
をサポートする方法に関する詳細については、下記で詳
しく説明する。
【0032】次に、図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内の位置に対応する。
【0033】アーキテクチャ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を通
じたアクセスは、ローカル・メモリ内で完了するアクセ
スよりも低速である。たとえば、ローカル・アクセスは
数百ナノ秒で完了することができ、それに対してネット
ワークを介したアクセスは数マイクロ秒を占有する可能
性がある。
【0034】リモート・ノードに記憶されているアドレ
スに対応するデータは任意のキャッシュ34にキャッシ
ュすることができる。しかし、キャッシュ34がそのよ
うなリモート・アドレスに対応するデータを放棄した
後、リモート・アドレスへのその後のアクセスはネット
ワーク38上での転送を介して完了する。
スに対応するデータは任意のキャッシュ34にキャッシ
ュすることができる。しかし、キャッシュ34がそのよ
うなリモート・アドレスに対応するデータを放棄した
後、リモート・アドレスへのその後のアクセスはネット
ワーク38上での転送を介して完了する。
【0035】NUMAアーキテクチャは、主として特定
のローカル・メモリに対応するアドレスを使用するソフ
トウェア・アプリケーションに優れた性能特性を付与す
ることができる。一方、より多くのランダム・アクセス
・パターンを有しメモリ・アクセスを特定のローカル・
メモリ内のアドレスに制限しないソフトウェア・アプリ
ケーションは、特定のプロセッサ32がリモート・ノー
ドへの反復アクセスを実行するときに大量のネットワー
ク・トラフィックを経験する。
のローカル・メモリに対応するアドレスを使用するソフ
トウェア・アプリケーションに優れた性能特性を付与す
ることができる。一方、より多くのランダム・アクセス
・パターンを有しメモリ・アクセスを特定のローカル・
メモリ内のアドレスに制限しないソフトウェア・アプリ
ケーションは、特定のプロセッサ32がリモート・ノー
ドへの反復アクセスを実行するときに大量のネットワー
ク・トラフィックを経験する。
【0036】次に図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上のアクセスの数を低減させ
る。
【0037】アーキテクチャ40をキャッシュ専用メモ
リ・アーキテクチャ(COMA)と呼ぶ。メモリ46の
組合せで形成された分散共用メモリ内の複数の位置は、
特定のアドレスに対応するデータを記憶することができ
る。特定の記憶位置に特定のアドレスの永久的なマッピ
ングが割り当てられることはない。その代わり、特定の
アドレスに対応するデータを記憶する位置は、その特定
のアドレスにアクセスするプロセッサ42に基づいて動
的に変化する。逆に、NUMAアーキテクチャでは、メ
モリ46内の特定の記憶位置が特定のアドレスに割り当
てられる。アーキテクチャ40は、アーキテクチャ上で
実行中のアプリケーションによって実行されるメモリ・
アクセス・パターンに調整し、メモリ46どうしの間で
コヒーレンシが維持される。
リ・アーキテクチャ(COMA)と呼ぶ。メモリ46の
組合せで形成された分散共用メモリ内の複数の位置は、
特定のアドレスに対応するデータを記憶することができ
る。特定の記憶位置に特定のアドレスの永久的なマッピ
ングが割り当てられることはない。その代わり、特定の
アドレスに対応するデータを記憶する位置は、その特定
のアドレスにアクセスするプロセッサ42に基づいて動
的に変化する。逆に、NUMAアーキテクチャでは、メ
モリ46内の特定の記憶位置が特定のアドレスに割り当
てられる。アーキテクチャ40は、アーキテクチャ上で
実行中のアプリケーションによって実行されるメモリ・
アクセス・パターンに調整し、メモリ46どうしの間で
コヒーレンシが維持される。
【0038】好ましい実施形態では、コンピュータ・シ
ステム10は、図2Aおよび2Bに示した両方のメモリ
・アーキテクチャをサポートする。具体的には、1つの
SMPノード12Aないし12DからNUMA方式でメ
モリ・アドレスにアクセスし、同時に他のSMPノード
12Aないし12DからCOMA方式でメモリ・アドレ
スにアクセスすることができる。一実施形態では、SM
Pバス20上のアドレスのあるビットが、他のSMPノ
ード12を、与えられたアドレスのホーム・ノードとし
て識別している場合に、NUMAアクセスが検出され
る。そうでない場合は、COMAアクセスが仮定され
る。他の詳細を下記に与える。
ステム10は、図2Aおよび2Bに示した両方のメモリ
・アーキテクチャをサポートする。具体的には、1つの
SMPノード12Aないし12DからNUMA方式でメ
モリ・アドレスにアクセスし、同時に他のSMPノード
12Aないし12DからCOMA方式でメモリ・アドレ
スにアクセスすることができる。一実施形態では、SM
Pバス20上のアドレスのあるビットが、他のSMPノ
ード12を、与えられたアドレスのホーム・ノードとし
て識別している場合に、NUMAアクセスが検出され
る。そうでない場合は、COMAアクセスが仮定され
る。他の詳細を下記に与える。
【0039】一実施形態では、COMAアーキテクチャ
は、ハードウェア技法とソフトウェア技法の組合せを使
用して実施される。ハードウェアは、ページのローカル
にキャッシュされたコピー間のコヒーレンシを維持し、
ソフトウェア(たとえば、コンピュータ・システム10
で使用されるオペレーティング・システム)は、キャッ
シュされたページを割り振り、割り振り解除する責任を
負う。
は、ハードウェア技法とソフトウェア技法の組合せを使
用して実施される。ハードウェアは、ページのローカル
にキャッシュされたコピー間のコヒーレンシを維持し、
ソフトウェア(たとえば、コンピュータ・システム10
で使用されるオペレーティング・システム)は、キャッ
シュされたページを割り振り、割り振り解除する責任を
負う。
【0040】図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を形成する。
【0041】図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にも結合される。
【0042】図3の実施形態では、各サブノード50
は、SMPバス20が配置されたバックプレーンに挿入
できるプリント回路ボード上に構成される。このよう
に、SMPノード12内に含まれるプロセッサまたは入
出力インタフェース26あるいはその両方の数は、サブ
ノード50を挿入しあるいは取り外すことによって変更
することができる。たとえば、コンピュータ・システム
10は最初、少数のサブノード50と共に構成すること
ができる。コンピュータ・システム10のユーザが必要
とするコンピューティング・パワーが増大するにつれて
必要に応じて追加サブノード50を追加することができ
る。
は、SMPバス20が配置されたバックプレーンに挿入
できるプリント回路ボード上に構成される。このよう
に、SMPノード12内に含まれるプロセッサまたは入
出力インタフェース26あるいはその両方の数は、サブ
ノード50を挿入しあるいは取り外すことによって変更
することができる。たとえば、コンピュータ・システム
10は最初、少数のサブノード50と共に構成すること
ができる。コンピュータ・システム10のユーザが必要
とするコンピューティング・パワーが増大するにつれて
必要に応じて追加サブノード50を追加することができ
る。
【0043】アドレス・コントローラ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に入れられる。
【0044】出力待ち行列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へ転送することが
できる。
【0045】したがって、システム・インタフェース論
理ブロック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に
入れられ、再発行時に行われるトランザクションと共に
順序正しく完了することができる。
【0046】一実施形態では、特定のアドレス・コント
ローラ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の他の実施形態が可能であることに留意された
い。
【0047】データ・コントローラ54は、データ・バ
ス60、メモリ部分56、キャッシュ18との間でデー
タをルーティングする。データ・コントローラ54は、
アドレス・コントローラ52と同様な入力待ち行列と出
力待ち行列とを含むことができる。一実施形態では、デ
ータ・コントローラ54は、バイト・スライス・バス構
成の複数の物理装置を使用する。
ス60、メモリ部分56、キャッシュ18との間でデー
タをルーティングする。データ・コントローラ54は、
アドレス・コントローラ52と同様な入力待ち行列と出
力待ち行列とを含むことができる。一実施形態では、デ
ータ・コントローラ54は、バイト・スライス・バス構
成の複数の物理装置を使用する。
【0048】図3に示したプロセッサ16は、メモリ管
理装置(MMU)76Aないし76Bを含む。MMU7
6は、プロセッサ16上で実行される命令コードによっ
て生成されたデータ・アドレスと、命令アドレスに対し
て、仮想アドレス・物理アドレス変換を実行する。命令
の実行に応答して生成されるアドレスは仮想アドレスで
ある。言い換えれば、仮想アドレスは、命令コードのプ
ログラマによって作成されるアドレスである。仮想アド
レスは(MMU76内で具体化される)アドレス変換機
構を通過し、アドレス変換機構から対応する物理アドレ
スが作成される。物理アドレスは、メモリ22内の記憶
位置を識別する。
理装置(MMU)76Aないし76Bを含む。MMU7
6は、プロセッサ16上で実行される命令コードによっ
て生成されたデータ・アドレスと、命令アドレスに対し
て、仮想アドレス・物理アドレス変換を実行する。命令
の実行に応答して生成されるアドレスは仮想アドレスで
ある。言い換えれば、仮想アドレスは、命令コードのプ
ログラマによって作成されるアドレスである。仮想アド
レスは(MMU76内で具体化される)アドレス変換機
構を通過し、アドレス変換機構から対応する物理アドレ
スが作成される。物理アドレスは、メモリ22内の記憶
位置を識別する。
【0049】アドレス変換は多数の理由で実行される。
たとえば、アドレス変換機構を使用して、あるメモリ・
アドレスに対する特定のコンピューティング・タスクの
アクセスを許可または拒否することができる。このよう
に、あるコンピューティング・タスク内のデータおよび
命令は、他のコンピューティング・タスクのデータおよ
び命令から分離される。また、コンピューティング・タ
スクのデータおよび命令の各部分は、ハード・ディスク
・ドライブに「ページアウト」することができる。ある
部分がページアウトされると、その変換は無効化され
る。コンピューティング・タスクによるその部分へのア
クセス時には、変換が失敗しているために割り込みが行
われる。この割り込みによって、オペレーティング・シ
ステムは、ハード・ディスク・ドライブから対応する情
報を検索することができる。このように、メモリ22内
の実際のメモリよりも多くの仮想メモリを使用すること
ができる。仮想メモリの他の多くの用途が良く知られて
いる。
たとえば、アドレス変換機構を使用して、あるメモリ・
アドレスに対する特定のコンピューティング・タスクの
アクセスを許可または拒否することができる。このよう
に、あるコンピューティング・タスク内のデータおよび
命令は、他のコンピューティング・タスクのデータおよ
び命令から分離される。また、コンピューティング・タ
スクのデータおよび命令の各部分は、ハード・ディスク
・ドライブに「ページアウト」することができる。ある
部分がページアウトされると、その変換は無効化され
る。コンピューティング・タスクによるその部分へのア
クセス時には、変換が失敗しているために割り込みが行
われる。この割り込みによって、オペレーティング・シ
ステムは、ハード・ディスク・ドライブから対応する情
報を検索することができる。このように、メモリ22内
の実際のメモリよりも多くの仮想メモリを使用すること
ができる。仮想メモリの他の多くの用途が良く知られて
いる。
【0050】再び、図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上で再発行する。それに続いて、トランザクションが
完了する。
【0051】一般的に言えば、特定の記憶位置(たとえ
ば、キャッシュまたはメモリ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がコヒーレンシ単
位のコピーを有さないことを示す。一実施形態では、修
正状態は、書込み許可を示すが、無効状態を除く状態
は、対応するコヒーレンシ単位への読取り許可を示す。
【0052】本明細書では、コヒーレンシ単位は、コヒ
ーレンシに対して一つの単位とみなされるメモリのいく
つかの連続バイトである。たとえば、コヒーレンシ単位
内の1バイトが更新された場合、コヒーレンシ単位全体
が更新されたとみなされる。特定の一実施形態では、コ
ヒーレンシ単位はキャッシュ・ラインであり、連続64
バイトを備える。しかし、コヒーレンシ単位が任意の数
のバイトを備えることができることが理解されよう。
ーレンシに対して一つの単位とみなされるメモリのいく
つかの連続バイトである。たとえば、コヒーレンシ単位
内の1バイトが更新された場合、コヒーレンシ単位全体
が更新されたとみなされる。特定の一実施形態では、コ
ヒーレンシ単位はキャッシュ・ラインであり、連続64
バイトを備える。しかし、コヒーレンシ単位が任意の数
のバイトを備えることができることが理解されよう。
【0053】システム・インタフェース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に変換することができる。
【0054】特定のホーム・ノードのディレクトリ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がホーム・ノードである)コ
ヒーレンシ単位に対応するコヒーレンシ情報を記憶す
る。
【0055】図3の実施形態では、ディレクトリ66お
よびMTAG68が各コヒーレンシ単位ごとに情報を記
憶することに留意されたい。逆に、変換記憶域64は、
ページに関して定義されたローカル物理・グローバル変
換を記憶する。ページは、複数のコヒーレンシ単位を含
み、通常、サイズが数キロバイト、あるいは場合によっ
ては数メガバイトである。
よびMTAG68が各コヒーレンシ単位ごとに情報を記
憶することに留意されたい。逆に、変換記憶域64は、
ページに関して定義されたローカル物理・グローバル変
換を記憶する。ページは、複数のコヒーレンシ単位を含
み、通常、サイズが数キロバイト、あるいは場合によっ
ては数メガバイトである。
【0056】したがって、ソフトウェアは、ページごと
にローカル物理アドレス・グローバル・アドレス変換を
作成する(それによって、リモートに記憶されているグ
ローバル・ページのコピーを記憶するローカル・メモリ
・ページを割り振る)。したがって、メモリ22のブロ
ックはページごとにも特定のグローバル・アドレスに割
り振られる。しかし、前述のように、コヒーレンシ状態
およびコヒーレンシ活動はコヒーレンシ単位上で実行さ
れる。したがって、メモリの特定のグローバル・アドレ
スにページが割り振られたときに、ページに対応するデ
ータは必ずしも、割り振られたメモリへ転送されるわけ
ではない。その代わり、プロセッサ16がページ内の様
々なコヒーレンシ単位にアクセスすると、それらのコヒ
ーレンシ単位はコヒーレンシ単位の所有者から転送され
る。このように、SMPノード12Aから実際にアクセ
スされたデータは、対応するメモリ22へ転送される。
SMPノード12Aからアクセスされないデータは転送
できず、そのため、メモリ22内のページの割り振り時
にデータのページを転送する実施形態と比べてネットワ
ーク14上の全体的な帯域幅使用度が低減する。
にローカル物理アドレス・グローバル・アドレス変換を
作成する(それによって、リモートに記憶されているグ
ローバル・ページのコピーを記憶するローカル・メモリ
・ページを割り振る)。したがって、メモリ22のブロ
ックはページごとにも特定のグローバル・アドレスに割
り振られる。しかし、前述のように、コヒーレンシ状態
およびコヒーレンシ活動はコヒーレンシ単位上で実行さ
れる。したがって、メモリの特定のグローバル・アドレ
スにページが割り振られたときに、ページに対応するデ
ータは必ずしも、割り振られたメモリへ転送されるわけ
ではない。その代わり、プロセッサ16がページ内の様
々なコヒーレンシ単位にアクセスすると、それらのコヒ
ーレンシ単位はコヒーレンシ単位の所有者から転送され
る。このように、SMPノード12Aから実際にアクセ
スされたデータは、対応するメモリ22へ転送される。
SMPノード12Aからアクセスされないデータは転送
できず、そのため、メモリ22内のページの割り振り時
にデータのページを転送する実施形態と比べてネットワ
ーク14上の全体的な帯域幅使用度が低減する。
【0057】一実施形態では、変換記憶域64、または
ディレクトリ66、またはMTAG68、あるいはそれ
らの組合せはそれぞれ、関連する変換、ディレクトリ、
MTAG情報の一部しか記憶しないキャッシュでよいこ
とに留意されたい。変換、ディレクトリ、MTAG情報
の全体は、メモリ22内のテーブルまたは専用メモリ記
憶域(図示せず)に記憶される。アクセスに必要な情報
が、対応するキャッシュにない場合、テーブルはシステ
ム・インタフェース24からアクセスされる。
ディレクトリ66、またはMTAG68、あるいはそれ
らの組合せはそれぞれ、関連する変換、ディレクトリ、
MTAG情報の一部しか記憶しないキャッシュでよいこ
とに留意されたい。変換、ディレクトリ、MTAG情報
の全体は、メモリ22内のテーブルまたは専用メモリ記
憶域(図示せず)に記憶される。アクセスに必要な情報
が、対応するキャッシュにない場合、テーブルはシステ
ム・インタフェース24からアクセスされる。
【0058】次に、図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は、コヒーレンシ単位を
識別するグローバル・アドレスで形成されたオフセット
位置にあるディレクトリ・エントリのテーブル内に記憶
される。
【0059】有効ビット73は、セットされると、ディ
レクトリ・エントリ71が有効である(すなわち、その
ディレクトリ・エントリ71は、対応するコヒーレンシ
単位に関するコヒーレンシ情報を記憶している)ことを
示す。有効ビット73は、クリアされると、そのディレ
クトリ・エントリ71が無効であることを示す。
レクトリ・エントリ71が有効である(すなわち、その
ディレクトリ・エントリ71は、対応するコヒーレンシ
単位に関するコヒーレンシ情報を記憶している)ことを
示す。有効ビット73は、クリアされると、そのディレ
クトリ・エントリ71が無効であることを示す。
【0060】所有者フィールド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つのビットを
備える。
【0061】共用者フィールド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内
に存在するコヒーレンシ単位のすべての共用コピーを示
す。
【0062】書き直しビット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に書き込んでいないことを示す。
【0063】次に図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として示されている。
【0064】システム・インタフェース24は、SMP
バス20またはネットワーク14上で実行すべきトラン
ザクションを記憶するための入力待ち行列と出力待ち行
列も含む。具体的には、図の実施形態では、システム・
インタフェース24は、ヘッダ・パケットをネットワー
ク14との間でバッファするための入力ヘッダ待ち行列
84と出力ヘッダ待ち行列86とを含む。ヘッダ・パケ
ットは、実行すべき動作を識別し、その後に続くデータ
・パケットの数およびフォーマットを指定する。出力ヘ
ッダ待ち行列86は、ネットワーク14上で送信すべき
ヘッダ・パケットをバッファし、入力ヘッダ待ち行列8
4は、システム・インタフェース24が、受信したヘッ
ダ・パケットを処理するまで、ネットワーク14から受
信したヘッダ・パケットをバッファする。同様に、デー
タ・パケットは、データがそれぞれ、SMPデータ・バ
ス60およびネットワーク14上で転送されるまで入力
データ待ち行列88および出力データ待ち行列90にバ
ッファされる。
バス20またはネットワーク14上で実行すべきトラン
ザクションを記憶するための入力待ち行列と出力待ち行
列も含む。具体的には、図の実施形態では、システム・
インタフェース24は、ヘッダ・パケットをネットワー
ク14との間でバッファするための入力ヘッダ待ち行列
84と出力ヘッダ待ち行列86とを含む。ヘッダ・パケ
ットは、実行すべき動作を識別し、その後に続くデータ
・パケットの数およびフォーマットを指定する。出力ヘ
ッダ待ち行列86は、ネットワーク14上で送信すべき
ヘッダ・パケットをバッファし、入力ヘッダ待ち行列8
4は、システム・インタフェース24が、受信したヘッ
ダ・パケットを処理するまで、ネットワーク14から受
信したヘッダ・パケットをバッファする。同様に、デー
タ・パケットは、データがそれぞれ、SMPデータ・バ
ス60およびネットワーク14上で転送されるまで入力
データ待ち行列88および出力データ待ち行列90にバ
ッファされる。
【0065】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
に存在する入出力インタフェースへ搬送される入出力ト
ランザクションを記憶する。入出力トランザクションは
一般に、非コヒーレントとみなされ、したがってコヒー
レンシ活動を生成しない。
【0066】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がアサート解除されコヒーレ
ンシ・トランザクションは生成されない。
【0067】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に関する再発行トランザクションを生成
する。
【0068】システム・インタフェース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が、コヒーレ
ンシ要求の受信時にただちに実行されたコヒーレンシ活
動に応じてコヒーレンシ情報を更新できることに留意さ
れたい。
【0069】スレーブ・エージェント104は、コヒー
レンシ・デマンドを入力ヘッダ待ち行列84を介して他
のSMPノード12のホーム・エージェントから受け取
る。スレーブ・エージェント104は、特定のコヒーレ
ンシ・デマンドに応答して、コヒーレンシ・トランザク
ションをSMP出力待ち行列92で待機させる。一実施
形態では、コヒーレンシ・トランザクションによって、
キャッシュ18およびプロセッサ16の内部のキャッシ
ュは、影響を受けるコヒーレンシ単位を無効化すること
ができる。コヒーレンシ単位がキャッシュ内で修正され
た場合、修正済みデータはシステム・インタフェース2
4へ転送される。別法として、コヒーレンシ・トランザ
クションによって、キャッシュ18およびプロセッサ1
6の内部のキャッシュは、コヒーレンシ単位のコヒーレ
ンシ状態を共用に変更することができる。スレーブ・エ
ージェント104は、コヒーレンシ・デマンドに応答し
て活動を完了した後、コヒーレンシ・デマンドに対応す
るコヒーレンシ要求を開始した要求エージェントへコヒ
ーレンシ応答を送信する。コヒーレンシ応答は出力ヘッ
ダ待ち行列86で待機させられる。コヒーレンシ・デマ
ンドに応答して活動を実行する前に、コヒーレンシ・デ
マンドと共に受け取ったグローバル・アドレスがGA2
LPA変換装置80を介してローカル物理アドレスに変
換される。
レンシ・デマンドを入力ヘッダ待ち行列84を介して他
のSMPノード12のホーム・エージェントから受け取
る。スレーブ・エージェント104は、特定のコヒーレ
ンシ・デマンドに応答して、コヒーレンシ・トランザク
ションをSMP出力待ち行列92で待機させる。一実施
形態では、コヒーレンシ・トランザクションによって、
キャッシュ18およびプロセッサ16の内部のキャッシ
ュは、影響を受けるコヒーレンシ単位を無効化すること
ができる。コヒーレンシ単位がキャッシュ内で修正され
た場合、修正済みデータはシステム・インタフェース2
4へ転送される。別法として、コヒーレンシ・トランザ
クションによって、キャッシュ18およびプロセッサ1
6の内部のキャッシュは、コヒーレンシ単位のコヒーレ
ンシ状態を共用に変更することができる。スレーブ・エ
ージェント104は、コヒーレンシ・デマンドに応答し
て活動を完了した後、コヒーレンシ・デマンドに対応す
るコヒーレンシ要求を開始した要求エージェントへコヒ
ーレンシ応答を送信する。コヒーレンシ応答は出力ヘッ
ダ待ち行列86で待機させられる。コヒーレンシ・デマ
ンドに応答して活動を実行する前に、コヒーレンシ・デ
マンドと共に受け取ったグローバル・アドレスがGA2
LPA変換装置80を介してローカル物理アドレスに変
換される。
【0070】一実施形態によれば、要求エージェント1
00、ホーム・エージェント102、スレーブ・エージ
ェント104によって実行されるコヒーレンシ・プロト
コルは書込み無効化ポリシーを含む。言い換えれば、S
MPノード12内のプロセッサ16があるコヒーレンシ
単位を更新すると、他のSMPノード12内に記憶され
ているそのコヒーレンシ単位のコピーは無効化される。
しかし、他の実施形態では他の書込みポリシーを使用す
ることができる。たとえば、書込み更新ポリシーを使用
することができる。書込み更新ポリシーによれば、ある
コヒーレンシ単位が更新されると、更新済みデータは各
SMPノード12に記憶されているそのコヒーレンシ単
位の各コピーへ送信される。
00、ホーム・エージェント102、スレーブ・エージ
ェント104によって実行されるコヒーレンシ・プロト
コルは書込み無効化ポリシーを含む。言い換えれば、S
MPノード12内のプロセッサ16があるコヒーレンシ
単位を更新すると、他のSMPノード12内に記憶され
ているそのコヒーレンシ単位のコピーは無効化される。
しかし、他の実施形態では他の書込みポリシーを使用す
ることができる。たとえば、書込み更新ポリシーを使用
することができる。書込み更新ポリシーによれば、ある
コヒーレンシ単位が更新されると、更新済みデータは各
SMPノード12に記憶されているそのコヒーレンシ単
位の各コピーへ送信される。
【0071】次に図6を参照すると、要求エージェント
100に対応するSMPノード12内のSMPバス20
上の特定のトランザクションに応答して、第1のSMP
ノード12Aないし12D(「要求側ノード」)の要求
エージェント100と第2のSMPノード12Aないし
12D(「ホーム・ノード」)のホーム・エージェント
102と第3のSMPノード12Aないし12D(「ス
レーブ・ノード」)のスレーブ・エージェント104と
の間で実行される通常のコヒーレンシ活動を示す図が示
されている。図1に示すようなコンピュータ・システム
10の一実施形態によって使用される特定のコヒーレン
シ活動を、下記で図11ないし15に関して詳しく説明
する。この説明の残りの部分全体にわたって、参照符号
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ないし15に関して詳しく説明
する。この説明の残りの部分全体にわたって、参照符号
100、102、104は、要求エージェント、ホーム
・エージェント、スレーブ・エージェントを識別するた
めに使用される。エージェントが他のエージェントと通
信する際、2つのエージェントがそれぞれの異なるSM
Pノード12Aないし12Dに存在することが多いこと
を理解されたい。
【0072】要求エージェント100は、SMPバス2
0からトランザクションを受け取ると、トランザクショ
ンに適したコヒーレンシ要求を形成し、トランザクショ
ンのアドレスに対応するホーム・ノードへコヒーレンシ
要求を送信する(参照符号110)。コヒーレンシ要求
は、要求エージェント100から要求されたアクセス権
ならびに影響を受けるコヒーレンシ単位のグローバル・
アドレスを示す。要求されたアクセス権は、要求エージ
ェント100に対応するSMPノード12で試みられて
いるトランザクションの実行を可能にするのに十分なも
のである。
0からトランザクションを受け取ると、トランザクショ
ンに適したコヒーレンシ要求を形成し、トランザクショ
ンのアドレスに対応するホーム・ノードへコヒーレンシ
要求を送信する(参照符号110)。コヒーレンシ要求
は、要求エージェント100から要求されたアクセス権
ならびに影響を受けるコヒーレンシ単位のグローバル・
アドレスを示す。要求されたアクセス権は、要求エージ
ェント100に対応するSMPノード12で試みられて
いるトランザクションの実行を可能にするのに十分なも
のである。
【0073】ホーム・エージェント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は、コヒーレンシ要求が完了したことを反映する
ようにコヒーレンシ情報を更新する。
【0074】ホーム・エージェント102は、要求エー
ジェント100へコヒーレンシ応答を送信することもで
きる(参照符号114)。コヒーレンシ応答は、スレー
ブ・エージェント104から発行されるコヒーレンシ応
答の数を示すことができる。別法として、ある種のトラ
ンザクションは、スレーブ・エージェント104との対
話なしで完了することができる。たとえば、ホーム・エ
ージェント102を含むSMPノード12内の入出力イ
ンタフェース26を目標とする入出力トランザクション
は、ホーム・エージェント102によって完了すること
ができる。ホーム・エージェント102は、関連するS
MPバス20に関するトランザクションを待機させ(参
照符号116)、次いで、トランザクションが完了した
ことを示す応答を送信することができる。
ジェント100へコヒーレンシ応答を送信することもで
きる(参照符号114)。コヒーレンシ応答は、スレー
ブ・エージェント104から発行されるコヒーレンシ応
答の数を示すことができる。別法として、ある種のトラ
ンザクションは、スレーブ・エージェント104との対
話なしで完了することができる。たとえば、ホーム・エ
ージェント102を含むSMPノード12内の入出力イ
ンタフェース26を目標とする入出力トランザクション
は、ホーム・エージェント102によって完了すること
ができる。ホーム・エージェント102は、関連するS
MPバス20に関するトランザクションを待機させ(参
照符号116)、次いで、トランザクションが完了した
ことを示す応答を送信することができる。
【0075】スレーブ・エージェント104は、ホーム
・エージェント102からのコヒーレンシ・デマンドに
応答して、関連するSMPバス20上に与えるトランザ
クションを待機させることができる(参照符号11
8)。また、スレーブ・エージェント104は要求エー
ジェント100へコヒーレンシ応答を送信する(参照符
号120)。コヒーレンシ応答は、特定のコヒーレンシ
要求に応答して受け取ったコヒーレンシ・デマンドがそ
のスレーブによって完了したことを示す。コヒーレンシ
応答は、コヒーレンシ・デマンドが完了したとき、ある
いはコヒーレンシ・デマンドが、対応するSMPノード
12上で確実に完了し、影響を受けるコヒーレンシ単位
に対する状態変化がコヒーレンシ・デマンドが完了する
よりも前に実行される、コヒーレンシ・デマンドが完了
するよりも前の時間に、スレーブ・エージェント104
によって送信される。
・エージェント102からのコヒーレンシ・デマンドに
応答して、関連するSMPバス20上に与えるトランザ
クションを待機させることができる(参照符号11
8)。また、スレーブ・エージェント104は要求エー
ジェント100へコヒーレンシ応答を送信する(参照符
号120)。コヒーレンシ応答は、特定のコヒーレンシ
要求に応答して受け取ったコヒーレンシ・デマンドがそ
のスレーブによって完了したことを示す。コヒーレンシ
応答は、コヒーレンシ・デマンドが完了したとき、ある
いはコヒーレンシ・デマンドが、対応するSMPノード
12上で確実に完了し、影響を受けるコヒーレンシ単位
に対する状態変化がコヒーレンシ・デマンドが完了する
よりも前に実行される、コヒーレンシ・デマンドが完了
するよりも前の時間に、スレーブ・エージェント104
によって送信される。
【0076】要求エージェント100は、影響を受ける
各スレーブ・エージェント104からコヒーレンシ応答
を受け取ると、ホーム・エージェント102へコヒーレ
ンシ完了を送信する(参照符号122)。ホーム・エー
ジェント102は、コヒーレンシ完了を受け取ると、対
応するコヒーレンシ情報からブロックを削除する。要求
エージェント100は、再発行トランザクションを、S
MPバス20上で実行できるように待機させ、SMPノ
ード12内でトランザクションを完了することができる
(参照符号124)。
各スレーブ・エージェント104からコヒーレンシ応答
を受け取ると、ホーム・エージェント102へコヒーレ
ンシ完了を送信する(参照符号122)。ホーム・エー
ジェント102は、コヒーレンシ完了を受け取ると、対
応するコヒーレンシ情報からブロックを削除する。要求
エージェント100は、再発行トランザクションを、S
MPバス20上で実行できるように待機させ、SMPノ
ード12内でトランザクションを完了することができる
(参照符号124)。
【0077】コヒーレンシ要求を発行した要求エージェ
ント100によって各コヒーレンシ要求に固有のタグが
割り当てられることに留意されたい。その後に続くコヒ
ーレンシ・デマンド、コヒーレンシ応答、コヒーレンシ
完了はこのタグを含む。このように、特定のコヒーレン
シ要求に関するコヒーレンシ活動は、関連する各エージ
ェントによって識別することができる。さらに、非コヒ
ーレント・トランザクション(たとえば、入出力トラン
ザクション)に応答して非コヒーレント動作を実行でき
ることに留意されたい。非コヒーレント動作は、要求側
ノードとホーム・ノードしか使用しないものでよい。さ
らに、ホーム・エージェント102によって各コヒーレ
ンシ要求に異なる固有のタグを割り当てることができ
る。それぞれの異なるタグは、ホーム・エージェント1
02を識別し、要求側のタグの代わりにコヒーレンシ完
了を表すために使用される。
ント100によって各コヒーレンシ要求に固有のタグが
割り当てられることに留意されたい。その後に続くコヒ
ーレンシ・デマンド、コヒーレンシ応答、コヒーレンシ
完了はこのタグを含む。このように、特定のコヒーレン
シ要求に関するコヒーレンシ活動は、関連する各エージ
ェントによって識別することができる。さらに、非コヒ
ーレント・トランザクション(たとえば、入出力トラン
ザクション)に応答して非コヒーレント動作を実行でき
ることに留意されたい。非コヒーレント動作は、要求側
ノードとホーム・ノードしか使用しないものでよい。さ
らに、ホーム・エージェント102によって各コヒーレ
ンシ要求に異なる固有のタグを割り当てることができ
る。それぞれの異なるタグは、ホーム・エージェント1
02を識別し、要求側のタグの代わりにコヒーレンシ完
了を表すために使用される。
【0078】次に図7を参照すると、SMPバス20上
でのリード・ツー・オウン・トランザクションに応答し
たコンピュータ・システム10の例示的な実施形態に関
するコヒーレンシ活動を示す図が示されている。リード
・ツー・オウン・トランザクションが実行されるのは、
プロセッサ16によって要求された特定のデータに関し
てキャッシュ・ミスが検出され、プロセッサ16がコヒ
ーレンシ単位への書込み許可を要求したときである。ス
トア・キャッシュ・ミスはたとえば、リード・ツー・オ
ウン・トランザクションを生成することができる。
でのリード・ツー・オウン・トランザクションに応答し
たコンピュータ・システム10の例示的な実施形態に関
するコヒーレンシ活動を示す図が示されている。リード
・ツー・オウン・トランザクションが実行されるのは、
プロセッサ16によって要求された特定のデータに関し
てキャッシュ・ミスが検出され、プロセッサ16がコヒ
ーレンシ単位への書込み許可を要求したときである。ス
トア・キャッシュ・ミスはたとえば、リード・ツー・オ
ウン・トランザクションを生成することができる。
【0079】要求エージェント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」は、それらのノー
ドでの共用状態を示す。リード・ツー・オウン動作は、
要求されたコヒーレンシ単位を要求側ノードへ転送させ
る。要求側ノードはコヒーレンシ単位を修正状態で受け
取る。
【0080】要求エージェント100は、SMPバス2
0からリード・ツー・オウン・トランザクションを受け
取ると、コヒーレンシ単位のホーム・ノードへリード・
ツー・オウン・コヒーレンシ要求を送信する(参照符号
130)。受信側ホーム・ノードのホーム・エージェン
ト102は、1つまたは複数の他のノードに関する共用
状態を検出する。スレーブ・エージェントが所有状態で
はなく共用状態であるので、ホーム・ノードは、要求さ
れたデータを直接供給することができる。ホーム・エー
ジェント102は、要求されたコヒーレンシ単位に対応
するデータを含むデータ・コヒーレンシ応答を要求エー
ジェント100へ送信する(参照符号132)。データ
・コヒーレンシ応答は、要求エージェント100がデー
タの所有権を得る前に他のノードのスレーブ・エージェ
ントから受信すべき肯定応答の数も示す。ホーム・エー
ジェント102は、要求側SMPノード12Aないし1
2Dがコヒーレンシ単位の所有者であり、他のSMPノ
ード12Aないし12Dがそれぞれ無効であることを示
すようにディレクトリ66を更新する。要求エージェン
ト100からのコヒーレンシ完了の受信時に、コヒーレ
ンシ単位に関するコヒーレンシ情報がブロック解除され
ると、ディレクトリ66は各SMPノード12でのコヒ
ーレンシ単位の状態に一致する。
0からリード・ツー・オウン・トランザクションを受け
取ると、コヒーレンシ単位のホーム・ノードへリード・
ツー・オウン・コヒーレンシ要求を送信する(参照符号
130)。受信側ホーム・ノードのホーム・エージェン
ト102は、1つまたは複数の他のノードに関する共用
状態を検出する。スレーブ・エージェントが所有状態で
はなく共用状態であるので、ホーム・ノードは、要求さ
れたデータを直接供給することができる。ホーム・エー
ジェント102は、要求されたコヒーレンシ単位に対応
するデータを含むデータ・コヒーレンシ応答を要求エー
ジェント100へ送信する(参照符号132)。データ
・コヒーレンシ応答は、要求エージェント100がデー
タの所有権を得る前に他のノードのスレーブ・エージェ
ントから受信すべき肯定応答の数も示す。ホーム・エー
ジェント102は、要求側SMPノード12Aないし1
2Dがコヒーレンシ単位の所有者であり、他のSMPノ
ード12Aないし12Dがそれぞれ無効であることを示
すようにディレクトリ66を更新する。要求エージェン
ト100からのコヒーレンシ完了の受信時に、コヒーレ
ンシ単位に関するコヒーレンシ情報がブロック解除され
ると、ディレクトリ66は各SMPノード12でのコヒ
ーレンシ単位の状態に一致する。
【0081】ホーム・エージェント102は、影響を受
けるコヒーレンシ単位の共用コピーを維持している各ス
レーブ・エージェント104へ無効化コヒーレンシ・デ
マンドを送信する(参照符号134A、134B、13
4C)。無効化コヒーレンシ・デマンドは、受信側スレ
ーブ・エージェントにノード内の対応するコヒーレンシ
単位を無効化させ、無効化が完了したことを示す肯定コ
ヒーレンシ応答を要求側ノードへ送信させる。各スレー
ブ・エージェント104は、コヒーレンシ単位の無効化
を完了し、それに続いて肯定コヒーレンシ応答を送信す
る(参照符号136A、136B、136C)。一実施
形態では、各肯定応答は、コヒーレンシ単位に関して要
求エージェント100によって受信される応答の総数の
カウントを含む。
けるコヒーレンシ単位の共用コピーを維持している各ス
レーブ・エージェント104へ無効化コヒーレンシ・デ
マンドを送信する(参照符号134A、134B、13
4C)。無効化コヒーレンシ・デマンドは、受信側スレ
ーブ・エージェントにノード内の対応するコヒーレンシ
単位を無効化させ、無効化が完了したことを示す肯定コ
ヒーレンシ応答を要求側ノードへ送信させる。各スレー
ブ・エージェント104は、コヒーレンシ単位の無効化
を完了し、それに続いて肯定コヒーレンシ応答を送信す
る(参照符号136A、136B、136C)。一実施
形態では、各肯定応答は、コヒーレンシ単位に関して要
求エージェント100によって受信される応答の総数の
カウントを含む。
【0082】要求エージェント100は、スレーブ・エ
ージェント104から各肯定コヒーレンシ応答を受信
し、ホーム・エージェント102からデータ・コヒーレ
ンシ応答を受信した後、ホーム・エージェント102へ
コヒーレンシ完了を送信する(参照符号138)。要求
エージェント100は、そのローカル・メモリ内のコヒ
ーレンシ単位を無効化し、ホーム・エージェント102
は、対応するコヒーレンシ情報に対するブロックを解除
する。データ・コヒーレンシ応答132および肯定コヒ
ーレンシ応答136が、特に各ノード内の未処理のトラ
ンザクションの数に応じて任意の順序で受信できること
に留意されたい。
ージェント104から各肯定コヒーレンシ応答を受信
し、ホーム・エージェント102からデータ・コヒーレ
ンシ応答を受信した後、ホーム・エージェント102へ
コヒーレンシ完了を送信する(参照符号138)。要求
エージェント100は、そのローカル・メモリ内のコヒ
ーレンシ単位を無効化し、ホーム・エージェント102
は、対応するコヒーレンシ情報に対するブロックを解除
する。データ・コヒーレンシ応答132および肯定コヒ
ーレンシ応答136が、特に各ノード内の未処理のトラ
ンザクションの数に応じて任意の順序で受信できること
に留意されたい。
【0083】次に図8を参照すると、要求エージェント
100によって使用される例示的な状態マシンを示すフ
ローチャート140が示されている。要求エージェント
100は、フローチャート140で表した状態マシンの
複数の独立のコピーを含むので、複数の要求を並行して
処理することができる。
100によって使用される例示的な状態マシンを示すフ
ローチャート140が示されている。要求エージェント
100は、フローチャート140で表した状態マシンの
複数の独立のコピーを含むので、複数の要求を並行して
処理することができる。
【0084】要求エージェント100は、SMP入力待
ち行列94からトランザクションを受け取ると、要求準
備完了状態142を開始する。要求準備完了状態142
では、要求エージェント100は、影響を受けるコヒー
レンシ単位のグローバル・アドレスで識別されるホーム
・ノードに存在するホーム・エージェント102へコヒ
ーレンシ要求を送信する。要求エージェント100は、
コヒーレンシ要求を送信すると、要求アクティブ状態1
44に遷移する。要求アクティブ状態144中に、要求
エージェント100はスレーブ・エージェント104か
ら(および任意選択でホーム・エージェント102か
ら)コヒーレンシ応答を受け取る。各コヒーレンシ応答
が受信されると、要求エージェント100は、コヒーレ
ンシ活動を開始したトランザクションのタイプに応じて
新しい状態に遷移する。また、要求活動状態142は、
タイマを使用して、所定のタイムアウト期間内にコヒー
レンシ応答が受信されなかったことを検出することがで
きる。ホーム・エージェント102によって指定された
応答の数を受け取る前にタイマが満了した場合、要求エ
ージェント100はエラー状態に遷移する(図示せ
ず)。さらに、ある種の実施形態は、読取り転送が失敗
したことを示す応答を使用することができる。そのよう
な応答が受け取った場合、要求エージェント100は、
要求準備完了状態142に遷移し再び読取りを試みる。
ち行列94からトランザクションを受け取ると、要求準
備完了状態142を開始する。要求準備完了状態142
では、要求エージェント100は、影響を受けるコヒー
レンシ単位のグローバル・アドレスで識別されるホーム
・ノードに存在するホーム・エージェント102へコヒ
ーレンシ要求を送信する。要求エージェント100は、
コヒーレンシ要求を送信すると、要求アクティブ状態1
44に遷移する。要求アクティブ状態144中に、要求
エージェント100はスレーブ・エージェント104か
ら(および任意選択でホーム・エージェント102か
ら)コヒーレンシ応答を受け取る。各コヒーレンシ応答
が受信されると、要求エージェント100は、コヒーレ
ンシ活動を開始したトランザクションのタイプに応じて
新しい状態に遷移する。また、要求活動状態142は、
タイマを使用して、所定のタイムアウト期間内にコヒー
レンシ応答が受信されなかったことを検出することがで
きる。ホーム・エージェント102によって指定された
応答の数を受け取る前にタイマが満了した場合、要求エ
ージェント100はエラー状態に遷移する(図示せ
ず)。さらに、ある種の実施形態は、読取り転送が失敗
したことを示す応答を使用することができる。そのよう
な応答が受け取った場合、要求エージェント100は、
要求準備完了状態142に遷移し再び読取りを試みる。
【0085】エラーやタイムアウトなしで応答が受け取
った場合、状態は読取りトランザクションに関しては要
求エージェント100によって読取り完了状態146に
遷移する。読取りトランザクションの場合、受信される
応答のうちの1つに、要求されたコヒーレンシ単位に対
応するデータを含めることができることに留意された
い。要求エージェント100は、SMPバス20上で読
取りトランザクションを再発行し、さらにホーム・エー
ジェント102へコヒーレンシ完了を送信する。それに
続いて、要求エージェント100はアイドル状態148
に遷移する。次いで、図8に示した状態マシンを使用し
て、要求エージェント100によって新しいトランザク
ションを処理することができる。
った場合、状態は読取りトランザクションに関しては要
求エージェント100によって読取り完了状態146に
遷移する。読取りトランザクションの場合、受信される
応答のうちの1つに、要求されたコヒーレンシ単位に対
応するデータを含めることができることに留意された
い。要求エージェント100は、SMPバス20上で読
取りトランザクションを再発行し、さらにホーム・エー
ジェント102へコヒーレンシ完了を送信する。それに
続いて、要求エージェント100はアイドル状態148
に遷移する。次いで、図8に示した状態マシンを使用し
て、要求エージェント100によって新しいトランザク
ションを処理することができる。
【0086】逆に、書込みトランザクションには書込み
アクティブ状態150および無視書込み再発行状態15
2が使用される。コンピュータ・システム10のある種
の書込みトランザクションでは、ネットワーク14上で
コヒーレンシ活動が開始されても、無視信号70はアサ
ートされない。たとえば、入出力書込みトランザクショ
ンは無視されない。書込みデータは、システム・インタ
フェース24へ転送され、そこに記憶される。SMPバ
ス20上での書込みトランザクションのデータ・フェー
ズよりも前にコヒーレンシ応答が受け取った場合にシス
テム・インタフェース24へデータを転送できるよう
に、非無視書込みトランザクションには書込みアクティ
ブ状態150が使用される。対応するデータが受け取っ
た後、要求エージェント100は書込み完了状態154
に遷移する。書込み完了状態154中に、コヒーレンシ
完了応答がホーム・エージェント102へ送信される。
それに続いて、要求エージェント100がアイドル状態
148に遷移する。
アクティブ状態150および無視書込み再発行状態15
2が使用される。コンピュータ・システム10のある種
の書込みトランザクションでは、ネットワーク14上で
コヒーレンシ活動が開始されても、無視信号70はアサ
ートされない。たとえば、入出力書込みトランザクショ
ンは無視されない。書込みデータは、システム・インタ
フェース24へ転送され、そこに記憶される。SMPバ
ス20上での書込みトランザクションのデータ・フェー
ズよりも前にコヒーレンシ応答が受け取った場合にシス
テム・インタフェース24へデータを転送できるよう
に、非無視書込みトランザクションには書込みアクティ
ブ状態150が使用される。対応するデータが受け取っ
た後、要求エージェント100は書込み完了状態154
に遷移する。書込み完了状態154中に、コヒーレンシ
完了応答がホーム・エージェント102へ送信される。
それに続いて、要求エージェント100がアイドル状態
148に遷移する。
【0087】無視された書込みトランザクションは、無
視書込み再発行状態152への遷移を介して処理され
る。無視書込み再発行状態152中に、要求エージェン
ト100は、無視された書込みトランザクションをSM
Pバス20上で再発行する。このように、書込みデータ
を送信側プロセッサ16から転送することができ、対応
する書込みトランザクションをプロセッサ16によって
解除することができる。要求エージェント100は、書
込みデータをコヒーレンシ完了と共に送信すべきかどう
かに応じて、無視書込みアクティブ状態156と無視書
込み完了状態158のどちらかに遷移する。無視書込み
アクティブ状態156は、書込みアクティブ状態150
と同様に、SMPバス20からのデータ転送を待つため
に使用される。無視書込み完了状態158中に、ホーム
・エージェント102へコヒーレンシ完了が送信され
る。それに続いて、要求エージェント100がアイドル
状態148に遷移する。要求エージェント100は、S
MP入力待ち行列94からトランザクションを受け取る
と、アイドル状態148から要求準備完了状態142に
遷移する。
視書込み再発行状態152への遷移を介して処理され
る。無視書込み再発行状態152中に、要求エージェン
ト100は、無視された書込みトランザクションをSM
Pバス20上で再発行する。このように、書込みデータ
を送信側プロセッサ16から転送することができ、対応
する書込みトランザクションをプロセッサ16によって
解除することができる。要求エージェント100は、書
込みデータをコヒーレンシ完了と共に送信すべきかどう
かに応じて、無視書込みアクティブ状態156と無視書
込み完了状態158のどちらかに遷移する。無視書込み
アクティブ状態156は、書込みアクティブ状態150
と同様に、SMPバス20からのデータ転送を待つため
に使用される。無視書込み完了状態158中に、ホーム
・エージェント102へコヒーレンシ完了が送信され
る。それに続いて、要求エージェント100がアイドル
状態148に遷移する。要求エージェント100は、S
MP入力待ち行列94からトランザクションを受け取る
と、アイドル状態148から要求準備完了状態142に
遷移する。
【0088】次に図9を参照すると、ホーム・エージェ
ント102に関する例示的な状態マシンを示すフローチ
ャート160が示されている。ホーム・エージェント1
02は、それに対する複数の未処理の要求を処理できる
ように、フローチャート160で表した状態マシンの複
数の独立のコピーを含む。しかし、一実施形態によれ
ば、複数の未処理の要求が同じコヒーレンシ単位に影響
を与えることはない。
ント102に関する例示的な状態マシンを示すフローチ
ャート160が示されている。ホーム・エージェント1
02は、それに対する複数の未処理の要求を処理できる
ように、フローチャート160で表した状態マシンの複
数の独立のコピーを含む。しかし、一実施形態によれ
ば、複数の未処理の要求が同じコヒーレンシ単位に影響
を与えることはない。
【0089】ホーム・エージェント102は、要求受信
状態162でコヒーレンシ要求を受け取る。この要求
は、コヒーレント要求とその他のトランザクション要求
のどちらかとして分類することができる。一実施形態に
よれば、他のトランザクション要求には、入出力読取り
要求および入出力書込み要求と、割り込み要求と、管理
要求を含めることができる。非コヒーレント要求は、状
態164の間にSMPバス20上でトランザクションを
送信することによって処理される。それに続いて、コヒ
ーレンシ完了が送信される。コヒーレンシ完了の受信時
に、入出力書込みトランザクションおよび割り込み許可
トランザクションによって、ホーム・ノード内のSMP
バス20上でデータ・トランザクションが送信される
(データ専用状態165)。データが転送されると、ホ
ーム・エージェント102はアイドル状態166に遷移
する。別法として、コヒーレンシ完了の受信時に、入出
力読取りトランザクション、管理トランザクション、割
り込み拒否トランザクションによって、アイドル状態へ
の遷移が行われる。
状態162でコヒーレンシ要求を受け取る。この要求
は、コヒーレント要求とその他のトランザクション要求
のどちらかとして分類することができる。一実施形態に
よれば、他のトランザクション要求には、入出力読取り
要求および入出力書込み要求と、割り込み要求と、管理
要求を含めることができる。非コヒーレント要求は、状
態164の間にSMPバス20上でトランザクションを
送信することによって処理される。それに続いて、コヒ
ーレンシ完了が送信される。コヒーレンシ完了の受信時
に、入出力書込みトランザクションおよび割り込み許可
トランザクションによって、ホーム・ノード内のSMP
バス20上でデータ・トランザクションが送信される
(データ専用状態165)。データが転送されると、ホ
ーム・エージェント102はアイドル状態166に遷移
する。別法として、コヒーレンシ完了の受信時に、入出
力読取りトランザクション、管理トランザクション、割
り込み拒否トランザクションによって、アイドル状態へ
の遷移が行われる。
【0090】逆に、ホーム・エージェント102は、コ
ヒーレンシ要求を受け取ると検査状態168に遷移す
る。検査状態168は、コヒーレンシ要求の影響を受け
るコヒーレンシ単位に関してコヒーレンシ活動が進行中
であるかどうかを検出するために使用される。コヒーレ
ンシ活動が進行中である(すなわち、コヒーレンシ情報
がブロックされている)場合、ホーム・エージェント1
02は、進行中のコヒーレンシ活動が完了するまで検査
状態168のままである。それに続いて、ホーム・エー
ジェント102は設定状態170に遷移する。
ヒーレンシ要求を受け取ると検査状態168に遷移す
る。検査状態168は、コヒーレンシ要求の影響を受け
るコヒーレンシ単位に関してコヒーレンシ活動が進行中
であるかどうかを検出するために使用される。コヒーレ
ンシ活動が進行中である(すなわち、コヒーレンシ情報
がブロックされている)場合、ホーム・エージェント1
02は、進行中のコヒーレンシ活動が完了するまで検査
状態168のままである。それに続いて、ホーム・エー
ジェント102は設定状態170に遷移する。
【0091】設定状態170中に、ホーム・エージェン
ト102は、ブロックすべき影響を受けるコヒーレンシ
単位に対応するコヒーレンシ情報を記憶するディレクト
リ・エントリの状況を設定する。ブロック状況によっ
て、影響を受けるコヒーレンシ単位へのその後の活動の
進行が妨げられ、コンピュータ・システム10のコヒー
レンシ・プロトコルが簡略化される。ホーム・エージェ
ント102は、受信したコヒーレンシ要求に対応するト
ランザクションの読取り特性または書込み特性に応じ
て、読取り状態172または書込み応答状態174に遷
移する。
ト102は、ブロックすべき影響を受けるコヒーレンシ
単位に対応するコヒーレンシ情報を記憶するディレクト
リ・エントリの状況を設定する。ブロック状況によっ
て、影響を受けるコヒーレンシ単位へのその後の活動の
進行が妨げられ、コンピュータ・システム10のコヒー
レンシ・プロトコルが簡略化される。ホーム・エージェ
ント102は、受信したコヒーレンシ要求に対応するト
ランザクションの読取り特性または書込み特性に応じ
て、読取り状態172または書込み応答状態174に遷
移する。
【0092】ホーム・エージェント102は、読取り状
態172中に、読取りトランザクションに関して更新さ
れるコヒーレンシ・デマンドをスレーブ・エージェント
104に発行する。ホーム・エージェント102は、要
求エージェント100からコヒーレンシ完了が受信され
るまで読取り状態172のままであり、その後、ブロッ
ク状況クリア状態176に遷移する。読取りを求めるコ
ヒーレンシ要求が失敗する可能性のある実施形態では、
ホーム・エージェント102は、読取りトランザクショ
ンの失敗を示すコヒーレンシ完了を受け取ると、影響を
受けるディレクトリ・エントリの状態をコヒーレンシ要
求の前の状態に復元する。
態172中に、読取りトランザクションに関して更新さ
れるコヒーレンシ・デマンドをスレーブ・エージェント
104に発行する。ホーム・エージェント102は、要
求エージェント100からコヒーレンシ完了が受信され
るまで読取り状態172のままであり、その後、ブロッ
ク状況クリア状態176に遷移する。読取りを求めるコ
ヒーレンシ要求が失敗する可能性のある実施形態では、
ホーム・エージェント102は、読取りトランザクショ
ンの失敗を示すコヒーレンシ完了を受け取ると、影響を
受けるディレクトリ・エントリの状態をコヒーレンシ要
求の前の状態に復元する。
【0093】書込み状態174中に、ホーム・エージェ
ント102は要求エージェント100へコヒーレンシ応
答を送信する。ホーム・エージェント102は、要求エ
ージェント100からコヒーレンシ完了が受信されるま
で応答書込み状態174のままである。コヒーレンシ完
了と共にデータが受け取った場合、ホーム・エージェン
ト102は書込みデータ状態178に遷移する。別法と
して、ホーム・エージェント102は、データを含まな
いコヒーレンシ完了を受信したときに、ブロック状況ク
リア状態176に遷移する。
ント102は要求エージェント100へコヒーレンシ応
答を送信する。ホーム・エージェント102は、要求エ
ージェント100からコヒーレンシ完了が受信されるま
で応答書込み状態174のままである。コヒーレンシ完
了と共にデータが受け取った場合、ホーム・エージェン
ト102は書込みデータ状態178に遷移する。別法と
して、ホーム・エージェント102は、データを含まな
いコヒーレンシ完了を受信したときに、ブロック状況ク
リア状態176に遷移する。
【0094】ホーム・エージェント102は、受信した
書込みデータを転送するために、書込みデータ状態17
8中にSMPバス20上で書込みトランザクションを発
行する。たとえば、書込みストリーム動作(後述)によ
って、データがホーム・エージェント102へ転送され
る。ホーム・エージェント102は、受信したデータ
を、記憶するためにメモリ22へ送信する。それに続い
て、ホーム・エージェント102はブロック状況クリア
状態176に遷移する。
書込みデータを転送するために、書込みデータ状態17
8中にSMPバス20上で書込みトランザクションを発
行する。たとえば、書込みストリーム動作(後述)によ
って、データがホーム・エージェント102へ転送され
る。ホーム・エージェント102は、受信したデータ
を、記憶するためにメモリ22へ送信する。それに続い
て、ホーム・エージェント102はブロック状況クリア
状態176に遷移する。
【0095】ホーム・エージェント102は、ブロック
状況クリア状態176で受信したコヒーレンシ要求の影
響を受けるコヒーレンシ単位に対応するコヒーレンシ情
報のブロック状況をクリアする。それに続いて、コヒー
レンシ情報にアクセスすることができる。非ブロック・
コヒーレンシ情報内に存在する状態は、前に受信したコ
ヒーレンシ要求によって開始されたコヒーレンシ活動を
反映する。ホーム・エージェント102は、対応するコ
ヒーレンシ情報のブロック状況をクリアすることによっ
て、アイドル状態166に遷移する。ホーム・エージェ
ント102は、コヒーレンシ要求を受け取ると、アイド
ル状態166から受信要求状態162に遷移する。
状況クリア状態176で受信したコヒーレンシ要求の影
響を受けるコヒーレンシ単位に対応するコヒーレンシ情
報のブロック状況をクリアする。それに続いて、コヒー
レンシ情報にアクセスすることができる。非ブロック・
コヒーレンシ情報内に存在する状態は、前に受信したコ
ヒーレンシ要求によって開始されたコヒーレンシ活動を
反映する。ホーム・エージェント102は、対応するコ
ヒーレンシ情報のブロック状況をクリアすることによっ
て、アイドル状態166に遷移する。ホーム・エージェ
ント102は、コヒーレンシ要求を受け取ると、アイド
ル状態166から受信要求状態162に遷移する。
【0096】次に図10を参照すると、スレーブ・エー
ジェント104に関する例示的な状態マシンを示すフロ
ーチャート180が示されている。スレーブ・エージェ
ント104は、受信状態182中にコヒーレンシ・デマ
ンドを受け取る。スレーブ・エージェント104は、コ
ヒーレンシ・デマンドに応答して、SMPバス20上に
与えられるトランザクションを待機させる。このトラン
ザクションによって、キャッシュ18およびプロセッサ
16の内部のキャッシュの状態が、受信したコヒーレン
シ・デマンドに応じて変化する。スレーブ・エージェン
ト104は、このトランザクションを要求送信状態18
4の間待機させる。
ジェント104に関する例示的な状態マシンを示すフロ
ーチャート180が示されている。スレーブ・エージェ
ント104は、受信状態182中にコヒーレンシ・デマ
ンドを受け取る。スレーブ・エージェント104は、コ
ヒーレンシ・デマンドに応答して、SMPバス20上に
与えられるトランザクションを待機させる。このトラン
ザクションによって、キャッシュ18およびプロセッサ
16の内部のキャッシュの状態が、受信したコヒーレン
シ・デマンドに応じて変化する。スレーブ・エージェン
ト104は、このトランザクションを要求送信状態18
4の間待機させる。
【0097】応答送信状態186中に、スレーブ・エー
ジェント104は、トランザクションを開始した要求エ
ージェント100へコヒーレンシ応答を送信する。様々
な実施形態によれば、スレーブ・エージェント104
が、SMPバス20に関するトランザクションを待機さ
せ、あるいはSMPバス20上のトランザクションが首
尾良く完了したときに要求送信状態184から応答送信
状態186に遷移できることに留意されたい。スレーブ
・エージェント104は、コヒーレンシ応答を送信した
後、アイドル状態188に遷移する。スレーブ・エージ
ェント104は、コヒーレンシ・デマンドを受け取ると
アイドル状態188から受信状態182に遷移すること
ができる。
ジェント104は、トランザクションを開始した要求エ
ージェント100へコヒーレンシ応答を送信する。様々
な実施形態によれば、スレーブ・エージェント104
が、SMPバス20に関するトランザクションを待機さ
せ、あるいはSMPバス20上のトランザクションが首
尾良く完了したときに要求送信状態184から応答送信
状態186に遷移できることに留意されたい。スレーブ
・エージェント104は、コヒーレンシ応答を送信した
後、アイドル状態188に遷移する。スレーブ・エージ
ェント104は、コヒーレンシ・デマンドを受け取ると
アイドル状態188から受信状態182に遷移すること
ができる。
【0098】次に図11ないし14を参照すると、例示
的なコヒーレンシ要求タイプ、コヒーレンシ・デマンド
・タイプ、コヒーレンシ応答タイプ、コヒーレンシ完了
タイプをリストしたいくつかの表が示されている。図1
1ないし14の表に示したタイプは、コンピュータ・シ
ステム10の一実施形態によって使用することができ
る。他の実施形態は、他の数組のタイプを使用すること
ができる。
的なコヒーレンシ要求タイプ、コヒーレンシ・デマンド
・タイプ、コヒーレンシ応答タイプ、コヒーレンシ完了
タイプをリストしたいくつかの表が示されている。図1
1ないし14の表に示したタイプは、コンピュータ・シ
ステム10の一実施形態によって使用することができ
る。他の実施形態は、他の数組のタイプを使用すること
ができる。
【0099】図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を示す。
【0100】リード・ツー・シェア要求は、特定のSM
Pノードにコヒーレンシ単位が存在せず、SMPバス2
0からコヒーレンシ単位へのトランザクションの性質
上、コヒーレンシ単位への読取りアクセスが必要である
ときに実行される。たとえば、キャッシュ可能読取りト
ランザクションではリード・ツー・シェア要求が実行さ
れる。一般的に言えば、リード・ツー・シェア要求と
は、共用状態のコヒーレンシ単位のコピーを求める要求
である。同様に、リード・ツー・オウン要求とは、所有
状態のコヒーレンシ単位のコピーを求める要求である。
他のSMPノード内のコヒーレンシ単位のコピーは無効
状態に変更すべきである。リード・ツー・オウン要求
は、たとえばキャッシュ可能書込みトランザクションの
キャッシュ・ミスに応答して実行することができる。
Pノードにコヒーレンシ単位が存在せず、SMPバス2
0からコヒーレンシ単位へのトランザクションの性質
上、コヒーレンシ単位への読取りアクセスが必要である
ときに実行される。たとえば、キャッシュ可能読取りト
ランザクションではリード・ツー・シェア要求が実行さ
れる。一般的に言えば、リード・ツー・シェア要求と
は、共用状態のコヒーレンシ単位のコピーを求める要求
である。同様に、リード・ツー・オウン要求とは、所有
状態のコヒーレンシ単位のコピーを求める要求である。
他のSMPノード内のコヒーレンシ単位のコピーは無効
状態に変更すべきである。リード・ツー・オウン要求
は、たとえばキャッシュ可能書込みトランザクションの
キャッシュ・ミスに応答して実行することができる。
【0101】読取りストリームおよび書込みストリーム
とは、コヒーレンシ単位全体の読取りまたは書込みを求
める要求である。これらの動作は通常、ブロック・コピ
ー動作に使用される。プロセッサ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)とし
て実行できることに留意されたい。
【0102】書き直し要求は、コヒーレンシ単位のホー
ム・ノードにコヒーレンシ単位が書き込まれるときに実
行される。ホーム・ノードは、コヒーレンシ単位を書き
直す許可と共に応答する。コヒーレンシ単位は次いで、
コヒーレンシ完了と共にホーム・ノードに渡される。
ム・ノードにコヒーレンシ単位が書き込まれるときに実
行される。ホーム・ノードは、コヒーレンシ単位を書き
直す許可と共に応答する。コヒーレンシ単位は次いで、
コヒーレンシ完了と共にホーム・ノードに渡される。
【0103】無効要求は、他のSMPノード内のコヒー
レンシ単位のコピーを無効化するために実行される。無
効化要求が生成される例示的なケースは、共用または所
有されているコヒーレンシ単位への書込みストリーム・
トランザクションである。書込みストリーム・トランザ
クションではコヒーレンシ単位が更新され、したがって
他のSMPノード内のコヒーレンシ単位のコピーが無効
化される。
レンシ単位のコピーを無効化するために実行される。無
効化要求が生成される例示的なケースは、共用または所
有されているコヒーレンシ単位への書込みストリーム・
トランザクションである。書込みストリーム・トランザ
クションではコヒーレンシ単位が更新され、したがって
他のSMPノード内のコヒーレンシ単位のコピーが無効
化される。
【0104】入出力読取りトランザクションおよび入出
力書込みトランザクションに応答して入出力読取り要求
および入出力書込み要求が送信される。入出力トランザ
クションは非コヒーレントである(すなわち、トランザ
クションはキャッシュされず、トランザクションに対し
てコヒーレンシは維持されない)。入出力ブロック・ト
ランザクションでは、通常の入出力トランザクションよ
りも大きな、データの一部が転送される。一実施形態で
は、ブロック入出力動作で64バイトの情報が転送さ
れ、それに対して非ブロック入出力トランザクションで
8バイトが転送される。
力書込みトランザクションに応答して入出力読取り要求
および入出力書込み要求が送信される。入出力トランザ
クションは非コヒーレントである(すなわち、トランザ
クションはキャッシュされず、トランザクションに対し
てコヒーレンシは維持されない)。入出力ブロック・ト
ランザクションでは、通常の入出力トランザクションよ
りも大きな、データの一部が転送される。一実施形態で
は、ブロック入出力動作で64バイトの情報が転送さ
れ、それに対して非ブロック入出力トランザクションで
8バイトが転送される。
【0105】フラッシュ要求では、コヒーレンシ単位の
コピーが無効化される。修正されたコピーはホーム・ノ
ードへ返される。割り込み要求は、リモートSMPノー
ド内の特定の装置への割り込みを知らせるために使用さ
れる。割り込みは特定のプロセッサ16に与えることが
でき、そのプロセッサは、割り込みに応答して所定のア
ドレスに記憶されている割り込みサービス・ルーチンを
実行することができる。管理パケットは、ノード間であ
る種のリセット信号を送信するために使用される。
コピーが無効化される。修正されたコピーはホーム・ノ
ードへ返される。割り込み要求は、リモートSMPノー
ド内の特定の装置への割り込みを知らせるために使用さ
れる。割り込みは特定のプロセッサ16に与えることが
でき、そのプロセッサは、割り込みに応答して所定のア
ドレスに記憶されている割り込みサービス・ルーチンを
実行することができる。管理パケットは、ノード間であ
る種のリセット信号を送信するために使用される。
【0106】図12は、例示的なコヒーレンシ・デマン
ド・タイプをリストした表198である。表190と同
様に、表198には列192、194、196が含まれ
る。リード・ツー・シェア・デマンドは、コヒーレンシ
単位の所有者へ搬送され、それによってその所有者は要
求側ノードへデータを送信する。同様に、リード・ツー
・オウン・デマンドおよび読取りストリーム・デマンド
によって、コヒーレンシ単位の所有者は要求側ノードへ
データを送信する。また、リード・ツー・オウン・デマ
ンドによって、所有者は所有者ノード内のコヒーレンシ
単位の状態を無効に変更する。読取りストリーム・デマ
ンドおよびリード・ツー・シェア・デマンドによって、
所有者ノードにおける状態が(修正から)所有に変更さ
れる。
ド・タイプをリストした表198である。表190と同
様に、表198には列192、194、196が含まれ
る。リード・ツー・シェア・デマンドは、コヒーレンシ
単位の所有者へ搬送され、それによってその所有者は要
求側ノードへデータを送信する。同様に、リード・ツー
・オウン・デマンドおよび読取りストリーム・デマンド
によって、コヒーレンシ単位の所有者は要求側ノードへ
データを送信する。また、リード・ツー・オウン・デマ
ンドによって、所有者は所有者ノード内のコヒーレンシ
単位の状態を無効に変更する。読取りストリーム・デマ
ンドおよびリード・ツー・シェア・デマンドによって、
所有者ノードにおける状態が(修正から)所有に変更さ
れる。
【0107】無効化デマンドでは、対応するコヒーレン
シ単位は転送されない。その代わり、無効化デマンドで
はコヒーレンシ単位のコピーが無効化される。最後に、
管理デマンドは管理要求に応答して搬送される。各デマ
ンドが要求エージェント100からの要求に応答してホ
ーム・エージェント102によって開始されることを留
意されたい。
シ単位は転送されない。その代わり、無効化デマンドで
はコヒーレンシ単位のコピーが無効化される。最後に、
管理デマンドは管理要求に応答して搬送される。各デマ
ンドが要求エージェント100からの要求に応答してホ
ーム・エージェント102によって開始されることを留
意されたい。
【0108】図13は、コンピュータ・システム10の
一実施形態によって使用される例示的な応答タイプをリ
ストした表200である。図11および12と同様に、
図13はコヒーレンシ応答に関する列192、194、
196を含む。
一実施形態によって使用される例示的な応答タイプをリ
ストした表200である。図11および12と同様に、
図13はコヒーレンシ応答に関する列192、194、
196を含む。
【0109】データ応答とは、要求されたデータを含む
応答である。所有者スレーブ・エージェントは通常、コ
ヒーレンシ要求に関するデータ応答を与える。しかし、
ホーム・エージェントは入出力読取り要求に関するデー
タを与えることができる。
応答である。所有者スレーブ・エージェントは通常、コ
ヒーレンシ要求に関するデータ応答を与える。しかし、
ホーム・エージェントは入出力読取り要求に関するデー
タを与えることができる。
【0110】肯定応答は、特定のコヒーレンシ要求に関
連するコヒーレンシ・デマンドが完了したことを示す。
スレーブ・エージェントは通常、肯定応答を与えるが、
ホーム・エージェントは、ホーム・ノードがコヒーレン
シ単位の所有者であるときに肯定応答を(データと共
に)与える。
連するコヒーレンシ・デマンドが完了したことを示す。
スレーブ・エージェントは通常、肯定応答を与えるが、
ホーム・エージェントは、ホーム・ノードがコヒーレン
シ単位の所有者であるときに肯定応答を(データと共
に)与える。
【0111】スレーブ所有なし応答、アドレス・マップ
なし応答、エラー応答は、エラーが検出されたときにス
レーブ・エージェント104によって搬送される。スレ
ーブ所有なし応答は、ホーム・エージェント102によ
ってコヒーレンシ単位の所有者としてスレーブが識別さ
れた場合、及びスレーブがもはやコヒーレンシ単位を所
有していないときに送信される。アドレス・マップなし
応答は、所有権を主張している装置が、対応するSMP
バス20上にはないデマンドを、スレーブが受信した場
合に、送信される。スレーブ・エージェントによって検
出された他のエラー条件はエラー応答を介して示され
る。
なし応答、エラー応答は、エラーが検出されたときにス
レーブ・エージェント104によって搬送される。スレ
ーブ所有なし応答は、ホーム・エージェント102によ
ってコヒーレンシ単位の所有者としてスレーブが識別さ
れた場合、及びスレーブがもはやコヒーレンシ単位を所
有していないときに送信される。アドレス・マップなし
応答は、所有権を主張している装置が、対応するSMP
バス20上にはないデマンドを、スレーブが受信した場
合に、送信される。スレーブ・エージェントによって検
出された他のエラー条件はエラー応答を介して示され
る。
【0112】ホーム・エージェント102は、スレーブ
・エージェント104が使用できるエラー応答以外のエ
ラー応答を与えることができる。対応する要求がホーム
・エージェント102によるサービスを必要としていな
いことを示すために、ホーム・エージェント102によ
って否定肯定(NACK)および否定応答(NOPE)
が使用される。NACKトランザクションを使用して、
対応する要求がホーム・ノードによって拒否されたこと
を示すことができる。たとえば、割り込み要求は、受信
側ノードによって割り込みが拒否された場合にNACK
を受け取る。受信側ノードによって割り込みが受け入れ
られた場合には肯定応答(ACK)が搬送される。NO
PEトランザクションは、受信側ノードによって記憶さ
れていないコヒーレンシ単位のための対応するフラッシ
ュ要求が搬送されたことを示すために使用される。
・エージェント104が使用できるエラー応答以外のエ
ラー応答を与えることができる。対応する要求がホーム
・エージェント102によるサービスを必要としていな
いことを示すために、ホーム・エージェント102によ
って否定肯定(NACK)および否定応答(NOPE)
が使用される。NACKトランザクションを使用して、
対応する要求がホーム・ノードによって拒否されたこと
を示すことができる。たとえば、割り込み要求は、受信
側ノードによって割り込みが拒否された場合にNACK
を受け取る。受信側ノードによって割り込みが受け入れ
られた場合には肯定応答(ACK)が搬送される。NO
PEトランザクションは、受信側ノードによって記憶さ
れていないコヒーレンシ単位のための対応するフラッシ
ュ要求が搬送されたことを示すために使用される。
【0113】図14は、コンピュータ・システム10の
一実施形態による例示的なコヒーレンシ完了タイプを示
す表202である。図14は、図11ないし13と同様
に、コヒーレンシ完了に関する列192、194、19
6を含む。
一実施形態による例示的なコヒーレンシ完了タイプを示
す表202である。図14は、図11ないし13と同様
に、コヒーレンシ完了に関する列192、194、19
6を含む。
【0114】データなしの完了は、特定の要求が完了し
たことを示す、要求エージェント100からホーム・エ
ージェント102への信号として使用される。ホーム・
エージェント102は、これに応答して、対応するコヒ
ーレンシ情報をブロック解除する。SMPバス20上の
異なるトランザクションに対応する2種類のデータ完了
が含まれている。一方のタイプの再発行トランザクショ
ンでは、SMPバス20上でデータ・フェーズしか使用
されない。この再発行トランザクションは、一実施形態
では入出力書込みトランザクションおよび割り込みトラ
ンザクションに使用することができる。他方のタイプの
再発行トランザクションではアドレス・フェーズとデー
タ・フェーズの両方が使用される。書込みストリームや
書き直しなどのコヒーレント書込みは、アドレス・フェ
ーズとデータ・フェーズの両方を含む再発行トランザク
ションを使用することができる。最後に、要求された状
態を得ることに失敗した読取り要求に関する、失敗を示
す完了が含まれている。
たことを示す、要求エージェント100からホーム・エ
ージェント102への信号として使用される。ホーム・
エージェント102は、これに応答して、対応するコヒ
ーレンシ情報をブロック解除する。SMPバス20上の
異なるトランザクションに対応する2種類のデータ完了
が含まれている。一方のタイプの再発行トランザクショ
ンでは、SMPバス20上でデータ・フェーズしか使用
されない。この再発行トランザクションは、一実施形態
では入出力書込みトランザクションおよび割り込みトラ
ンザクションに使用することができる。他方のタイプの
再発行トランザクションではアドレス・フェーズとデー
タ・フェーズの両方が使用される。書込みストリームや
書き直しなどのコヒーレント書込みは、アドレス・フェ
ーズとデータ・フェーズの両方を含む再発行トランザク
ションを使用することができる。最後に、要求された状
態を得ることに失敗した読取り要求に関する、失敗を示
す完了が含まれている。
【0115】次に図15を参照すると、SMPバス20
上の様々なトランザクションに対するコヒーレンシ活動
を示す表210が示されている。表210は、他のSM
Pノード12へ要求を送信させるトランザクションを示
す。SMPノード内で完了するトランザクションは示さ
れていない。列内の「−」は、特定の行内で考えられる
ケースではその列に関して実行される活動がないことを
示す。要求エージェント100によってSMPバス20
上で受信されるトランザクションを示すトランザクショ
ン列212が含まれている。MTAG列214は、トラ
ンザクションに対応するアドレスによってアクセスされ
るコヒーレンシ単位のMTAGの状態を示す。図の状態
は、前述のMOSI状態と「n」状態とを含む。「n」
状態は、コヒーレンシ単位が、トランザクションが開始
されたSMPノードではNUMAモードでアクセスされ
ることを示す。したがって、コヒーレンシ単位のローカ
ル・コピーは要求側ノード・メモリには記憶されない。
その代わり、コヒーレンシ単位は、ホームSMPノード
(または所有者ノード)から転送され、メモリ22に記
憶されずに要求側プロセッサ16またはキャッシュ18
へ送信される。
上の様々なトランザクションに対するコヒーレンシ活動
を示す表210が示されている。表210は、他のSM
Pノード12へ要求を送信させるトランザクションを示
す。SMPノード内で完了するトランザクションは示さ
れていない。列内の「−」は、特定の行内で考えられる
ケースではその列に関して実行される活動がないことを
示す。要求エージェント100によってSMPバス20
上で受信されるトランザクションを示すトランザクショ
ン列212が含まれている。MTAG列214は、トラ
ンザクションに対応するアドレスによってアクセスされ
るコヒーレンシ単位のMTAGの状態を示す。図の状態
は、前述のMOSI状態と「n」状態とを含む。「n」
状態は、コヒーレンシ単位が、トランザクションが開始
されたSMPノードではNUMAモードでアクセスされ
ることを示す。したがって、コヒーレンシ単位のローカ
ル・コピーは要求側ノード・メモリには記憶されない。
その代わり、コヒーレンシ単位は、ホームSMPノード
(または所有者ノード)から転送され、メモリ22に記
憶されずに要求側プロセッサ16またはキャッシュ18
へ送信される。
【0116】要求列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に示す。
【0117】コヒーレンシ単位の所有者として示された
SMPノード内のスレーブ・エージェント104は列2
28に示したようにコヒーレンシ応答を送信する。共用
ノードとして示されたノード内のスレーブ・エージェン
ト104は、受信したコヒーレンシ・デマンドで示され
た状態変化を実行した後に、列230に示したコヒーレ
ンシ応答を用いて、列224に示したコヒーレンシ・デ
マンドに応答する。
SMPノード内のスレーブ・エージェント104は列2
28に示したようにコヒーレンシ応答を送信する。共用
ノードとして示されたノード内のスレーブ・エージェン
ト104は、受信したコヒーレンシ・デマンドで示され
た状態変化を実行した後に、列230に示したコヒーレ
ンシ応答を用いて、列224に示したコヒーレンシ・デ
マンドに応答する。
【0118】要求エージェント100は、適当な数のコ
ヒーレンシ応答を受け取ると、ホーム・エージェント1
02へコヒーレンシ完了を送信する。様々なトランザク
ションに使用されるコヒーレンシ完了を列232に示
す。
ヒーレンシ応答を受け取ると、ホーム・エージェント1
02へコヒーレンシ完了を送信する。様々なトランザク
ションに使用されるコヒーレンシ完了を列232に示
す。
【0119】一例を挙げると、行234は、対応するM
TAG状態が無効であるSMPバス20上のリード・ツ
ー・シェア・トランザクションに対するコヒーレンシ活
動を示す。対応する要求エージェント100は、リード
・ツー・シェア・トランザクションに関連付けられたグ
ローバル・アドレスで識別されたホーム・ノードへリー
ド・ツー・シェア・コヒーレンシ要求を送信する。行2
34に示したケースでは、ホーム・ノードのディレクト
リは、要求側ノードがデータを無効状態で記憶している
ことを示す。要求側ノードに関するホーム・ノードのデ
ィレクトリ内の状態は共用に更新され、ホーム・エージ
ェント102により、ディレクトリによって所有者とし
て示されたノードへリード・ツー・シェア・コヒーレン
シ・デマンドが送信される。トランザクションが共用状
態を得ようとするので、共用者へはデマンドは送信され
ない。所有者ノード内のスレーブ・エージェント104
は、コヒーレンシ単位に対応するデータを要求側ノード
へ送信する。要求側ノード内の要求エージェント100
は、データを受け取るとホーム・ノード内のホーム・エ
ージェント102へコヒーレンシ完了を送信する。した
がって、トランザクションが完了する。
TAG状態が無効であるSMPバス20上のリード・ツ
ー・シェア・トランザクションに対するコヒーレンシ活
動を示す。対応する要求エージェント100は、リード
・ツー・シェア・トランザクションに関連付けられたグ
ローバル・アドレスで識別されたホーム・ノードへリー
ド・ツー・シェア・コヒーレンシ要求を送信する。行2
34に示したケースでは、ホーム・ノードのディレクト
リは、要求側ノードがデータを無効状態で記憶している
ことを示す。要求側ノードに関するホーム・ノードのデ
ィレクトリ内の状態は共用に更新され、ホーム・エージ
ェント102により、ディレクトリによって所有者とし
て示されたノードへリード・ツー・シェア・コヒーレン
シ・デマンドが送信される。トランザクションが共用状
態を得ようとするので、共用者へはデマンドは送信され
ない。所有者ノード内のスレーブ・エージェント104
は、コヒーレンシ単位に対応するデータを要求側ノード
へ送信する。要求側ノード内の要求エージェント100
は、データを受け取るとホーム・ノード内のホーム・エ
ージェント102へコヒーレンシ完了を送信する。した
がって、トランザクションが完了する。
【0120】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の様々な実施形態に応じて他のトラ
ンザクションを使用できることに留意されたい。
【0121】エラー・ロギング次に図16を参照する
と、エラー・ロギングを使用するコンピュータ・システ
ム10の実施形態において要求エージェント100によ
って使用できる例示的な要求エージェント状態マシンを
示すフローチャート300が示されている。複数のコヒ
ーレンシ要求を並行して処理するために、要求エージェ
ント100によって例示的な状態マシンの複数のコピー
を使用することができる。フローチャート300は、
(図8に示した)フローチャート140と同様な状態1
42、144、146、148、150、152、15
4、156、158を含む。フローチャート300は、
回復状態302とフリーズ状態304も含む。
と、エラー・ロギングを使用するコンピュータ・システ
ム10の実施形態において要求エージェント100によ
って使用できる例示的な要求エージェント状態マシンを
示すフローチャート300が示されている。複数のコヒ
ーレンシ要求を並行して処理するために、要求エージェ
ント100によって例示的な状態マシンの複数のコピー
を使用することができる。フローチャート300は、
(図8に示した)フローチャート140と同様な状態1
42、144、146、148、150、152、15
4、156、158を含む。フローチャート300は、
回復状態302とフリーズ状態304も含む。
【0122】読取り完了状態146、書込みアクティブ
状態150、無視された書込みの再発行状態152への
遷移だけでなく、要求アクティブ状態144が、アクテ
ィブな要求に関するエラーが検出されたときに回復状態
302に遷移するように構成される。このエラーはいく
つかのタイプのものでよい。第1のタイプのエラーをタ
イムアウト・エラーと呼ぶ。要求エージェント100
は、状態マシンが要求アクティブ状態144である間定
期的に増分される、要求エージェント自体に含まれる各
状態マシンごとのカウンタを実施する。状態マシンが要
求アクティブ状態144から遷移する前に、カウンタ
が、プログラム可能に定義された最大値に達した場合、
状態マシンは回復状態302に遷移する。この最大値と
しては、コンピュータ・システム10が適切に動作して
いる場合にコヒーレンシ要求で必要とされるよりもずっ
と大きな値が選択される。したがって、タイムアウト・
エラーが発生した場合、コンピュータ・システム10の
ある構成要素が誤動作を犯している恐れがある。
状態150、無視された書込みの再発行状態152への
遷移だけでなく、要求アクティブ状態144が、アクテ
ィブな要求に関するエラーが検出されたときに回復状態
302に遷移するように構成される。このエラーはいく
つかのタイプのものでよい。第1のタイプのエラーをタ
イムアウト・エラーと呼ぶ。要求エージェント100
は、状態マシンが要求アクティブ状態144である間定
期的に増分される、要求エージェント自体に含まれる各
状態マシンごとのカウンタを実施する。状態マシンが要
求アクティブ状態144から遷移する前に、カウンタ
が、プログラム可能に定義された最大値に達した場合、
状態マシンは回復状態302に遷移する。この最大値と
しては、コンピュータ・システム10が適切に動作して
いる場合にコヒーレンシ要求で必要とされるよりもずっ
と大きな値が選択される。したがって、タイムアウト・
エラーが発生した場合、コンピュータ・システム10の
ある構成要素が誤動作を犯している恐れがある。
【0123】要求エージェント100によって検出され
る第2のタイプのエラーは、スレーブ・エージェント1
04によって搬送されるエラーである。たとえば、テー
ブル200には、ERRコヒーレンシ応答、ANMコヒ
ーレンシ応答、SNOコヒーレンシ応答がリストされて
いる。これらの応答を要求エージェント100がスレー
ブ・エージェント104から受信した場合、対応するト
ランザクションはエラーである。最後に、要求エージェ
ント100は、第3のタイプのエラーを検出する。第3
のタイプのエラーは、トランザクションに関する予期さ
れない応答を受け取ることや、LPA2GA変換82へ
のアクセス時のアクセス・エラーが含まれる。第2およ
び第3のタイプのエラーが検出されると、要求アクティ
ブ状態144から回復状態302への遷移が実行され
る。
る第2のタイプのエラーは、スレーブ・エージェント1
04によって搬送されるエラーである。たとえば、テー
ブル200には、ERRコヒーレンシ応答、ANMコヒ
ーレンシ応答、SNOコヒーレンシ応答がリストされて
いる。これらの応答を要求エージェント100がスレー
ブ・エージェント104から受信した場合、対応するト
ランザクションはエラーである。最後に、要求エージェ
ント100は、第3のタイプのエラーを検出する。第3
のタイプのエラーは、トランザクションに関する予期さ
れない応答を受け取ることや、LPA2GA変換82へ
のアクセス時のアクセス・エラーが含まれる。第2およ
び第3のタイプのエラーが検出されると、要求アクティ
ブ状態144から回復状態302への遷移が実行され
る。
【0124】回復状態302への遷移時に、要求エージ
ェント100は、他のトランザクションへ資源を送るこ
とができるように、エラーを発生させたトランザクショ
ンからできるだけ多くの資源を解放しようとする。トラ
ンザクションに関する情報に後で診断のためにアクセス
できるように、ある種の資源は解放することができない
(たとえば、状態マシン自体)。
ェント100は、他のトランザクションへ資源を送るこ
とができるように、エラーを発生させたトランザクショ
ンからできるだけ多くの資源を解放しようとする。トラ
ンザクションに関する情報に後で診断のためにアクセス
できるように、ある種の資源は解放することができない
(たとえば、状態マシン自体)。
【0125】特定の一実施形態では、要求エージェント
100は回復状態302中に下記の処置を実行する。
100は回復状態302中に下記の処置を実行する。
【0126】(i)無視信号がアサートされたコヒーレ
ンシ・トランザクションを再発行する。再発行トランザ
クションは、エラーを示すアドレス・コードを含み、そ
のため開始側プロセッサはオペレーティング・システム
・ルーチンにトラップする。
ンシ・トランザクションを再発行する。再発行トランザ
クションは、エラーを示すアドレス・コードを含み、そ
のため開始側プロセッサはオペレーティング・システム
・ルーチンにトラップする。
【0127】(ii)入出力読取りがエラーと共に完了し
たことを示すデータ・パケットと共に、入出力読取りト
ランザクションを再発行する。
たことを示すデータ・パケットと共に、入出力読取りト
ランザクションを再発行する。
【0128】(iii)割り込みが、対応するスレーブ・エ
ージェントからNACK応答を受信したことを示す、割
り込みトランザクションを再発行する。
ージェントからNACK応答を受信したことを示す、割
り込みトランザクションを再発行する。
【0129】対応するトランザクションがエラーを発生
させたときにそのような活動を実行することによって、
開始側プロセッサにそのエラーを知らせることができ
る。上記にリストしたトランザクション以外のトランザ
クションが回復活動を必要としないことに留意された
い。たとえば、トランザクションは、解放を必要とする
資源を占有することはできない。また、検出されたエラ
ーが存在するにもかかわらず、エラーが検出されたSM
Pノード12Aないし12Dは引き続き動作することが
できる。
させたときにそのような活動を実行することによって、
開始側プロセッサにそのエラーを知らせることができ
る。上記にリストしたトランザクション以外のトランザ
クションが回復活動を必要としないことに留意された
い。たとえば、トランザクションは、解放を必要とする
資源を占有することはできない。また、検出されたエラ
ーが存在するにもかかわらず、エラーが検出されたSM
Pノード12Aないし12Dは引き続き動作することが
できる。
【0130】要求エージェント状態マシンは、回復状態
302からアイドル状態148またはフリーズ状態30
4に遷移する。要求エージェント状態マシンは、フリー
ズできないと判定した場合はアイドル状態148に遷移
する。それに続いて、要求エージェント状態マシンは、
新しいトランザクションを受け入れ、コヒーレンシ要求
の実行を開始することができる。一方、フローチャート
300で表された要求エージェント状態マシンは、フリ
ーズできると判定した場合にはフリーズ状態304に遷
移する。
302からアイドル状態148またはフリーズ状態30
4に遷移する。要求エージェント状態マシンは、フリー
ズできないと判定した場合はアイドル状態148に遷移
する。それに続いて、要求エージェント状態マシンは、
新しいトランザクションを受け入れ、コヒーレンシ要求
の実行を開始することができる。一方、フローチャート
300で表された要求エージェント状態マシンは、フリ
ーズできると判定した場合にはフリーズ状態304に遷
移する。
【0131】エラーが検出され、それに続いて回復ステ
ップが実行されたときに、図16に示した要求エージェ
ント状態マシンがフリーズするかどうかを、いくつかの
因子によって判定することができる。一実施形態では、
最大数のフリーズ状態要求エージェント状態マシンが定
義される。ある要求エージェント状態マシンが回復状態
302から遷移する準備が完了しているときにフリーズ
されている他の要求エージェント状態マシンの数が、フ
リーズ状態要求エージェント状態マシンの最大数に等し
い場合、状態マシンはアイドル状態148に遷移する。
また、この実施形態は、検出可能なある種のエラーが、
検出側要求エージェント状態マシンをフリーズさせ、そ
れに対して検出可能な他のエラーはそうさせないように
するプログラム可能なマスクを含む。プログラム可能な
このマスクが、検出されたエラーがマスクされているこ
とを示している場合、要求エージェント状態マシンはア
イドル状態148に遷移する。そうでない場合、要求エ
ージェント状態マシンはフリーズ状態304に遷移す
る。
ップが実行されたときに、図16に示した要求エージェ
ント状態マシンがフリーズするかどうかを、いくつかの
因子によって判定することができる。一実施形態では、
最大数のフリーズ状態要求エージェント状態マシンが定
義される。ある要求エージェント状態マシンが回復状態
302から遷移する準備が完了しているときにフリーズ
されている他の要求エージェント状態マシンの数が、フ
リーズ状態要求エージェント状態マシンの最大数に等し
い場合、状態マシンはアイドル状態148に遷移する。
また、この実施形態は、検出可能なある種のエラーが、
検出側要求エージェント状態マシンをフリーズさせ、そ
れに対して検出可能な他のエラーはそうさせないように
するプログラム可能なマスクを含む。プログラム可能な
このマスクが、検出されたエラーがマスクされているこ
とを示している場合、要求エージェント状態マシンはア
イドル状態148に遷移する。そうでない場合、要求エ
ージェント状態マシンはフリーズ状態304に遷移す
る。
【0132】要求エージェント状態マシンは、フリーズ
状態304を開始した後、明示的に解放されるまでその
状態のままになる。一実施形態では、要求エージェント
状態マシンは、制御レジスタ(後述)内の対応するビッ
トを更新することによって解放される。それによって、
トランザクションに関する要求エージェント状態マシン
によって保持されている情報をソフトウェア(たとえ
ば、オペレーティング・システムまたは診断ソフトウェ
ア)によって調べることができる。ソフトウェアは、検
査が完了すると、制御レジスタを更新し、要求エージェ
ント状態マシンがトランザクションを再び処理できるよ
うにすることができる。要求エージェント状態マシン
は、解放されると、アイドル状態148に遷移する。
状態304を開始した後、明示的に解放されるまでその
状態のままになる。一実施形態では、要求エージェント
状態マシンは、制御レジスタ(後述)内の対応するビッ
トを更新することによって解放される。それによって、
トランザクションに関する要求エージェント状態マシン
によって保持されている情報をソフトウェア(たとえ
ば、オペレーティング・システムまたは診断ソフトウェ
ア)によって調べることができる。ソフトウェアは、検
査が完了すると、制御レジスタを更新し、要求エージェ
ント状態マシンがトランザクションを再び処理できるよ
うにすることができる。要求エージェント状態マシン
は、解放されると、アイドル状態148に遷移する。
【0133】次に図17を参照すると、エラー・ロギン
グを実施するコンピュータ・システム10の実施形態に
おいてホーム・エージェント102によって使用できる
例示的なホーム・エージェント状態マシンを示すフロー
チャート310が示されている。複数のコヒーレンシ要
求を並行して処理するために、ホーム・エージェント1
02によって例示的な状態マシンの複数のコピーを使用
することができる。フローチャート310は、(図9に
示した)フローチャート160と同様な状態162、1
64、165、166、168、170、172、17
4、176、178を含む。フローチャート310は、
回復状態312とフリーズ状態314も含む。
グを実施するコンピュータ・システム10の実施形態に
おいてホーム・エージェント102によって使用できる
例示的なホーム・エージェント状態マシンを示すフロー
チャート310が示されている。複数のコヒーレンシ要
求を並行して処理するために、ホーム・エージェント1
02によって例示的な状態マシンの複数のコピーを使用
することができる。フローチャート310は、(図9に
示した)フローチャート160と同様な状態162、1
64、165、166、168、170、172、17
4、176、178を含む。フローチャート310は、
回復状態312とフリーズ状態314も含む。
【0134】フローチャート310内の状態は、コヒー
レンシ活動が実行されているトランザクションに関する
エラーが検出されたときに、遷移時にフリーズが許可さ
れている場合には(アーク316)フリーズ状態314
に遷移するように構成される。そうでない場合、アイド
ル状態166への遷移が実行される(アーク318)。
ホーム・エージェント102は、要求エージェント10
0と同様に、プログラム可能な最大数のフリーズ状態ホ
ーム・エージェント状態マシンを含む。ホーム・エージ
ェント状態マシンは、エラーを検出した後、フリーズし
ているエージェントの数が最大値よりも小さい場合には
フリーズすることができる。また、プログラム可能なマ
スクは、フリーズを発生させたエラーを定義する。ホー
ム・エージェント状態マシンは、検出されたエラーがフ
リーズ可能なエラーであることを示している場合にプロ
グラム可能なマスクがフリーズ状態314に遷移する。
レンシ活動が実行されているトランザクションに関する
エラーが検出されたときに、遷移時にフリーズが許可さ
れている場合には(アーク316)フリーズ状態314
に遷移するように構成される。そうでない場合、アイド
ル状態166への遷移が実行される(アーク318)。
ホーム・エージェント102は、要求エージェント10
0と同様に、プログラム可能な最大数のフリーズ状態ホ
ーム・エージェント状態マシンを含む。ホーム・エージ
ェント状態マシンは、エラーを検出した後、フリーズし
ているエージェントの数が最大値よりも小さい場合には
フリーズすることができる。また、プログラム可能なマ
スクは、フリーズを発生させたエラーを定義する。ホー
ム・エージェント状態マシンは、検出されたエラーがフ
リーズ可能なエラーであることを示している場合にプロ
グラム可能なマスクがフリーズ状態314に遷移する。
【0135】一実施形態によれば、ホーム・エージェン
ト102によって検出されるエラーは複数のタイプのも
のである。第1のタイプは、前述のタイムアウト・エラ
ーと同様なタイムアウト・エラーである。第2のタイプ
のエラーは、予期されないコヒーレンシ動作、すなわち
予期されない要求と予期されない完了信号のどちらかを
受け取ることである。予期されない要求が検出されるの
は、無効なトランザクション・タイプ(すなわち、この
タイプは、図11に示したテーブル190にリストされ
たタイプのうちの1つではない)を有する要求が受け取
った場合である。予期されない完了信号とは、ホーム・
エージェント102内で処理済みであったトランザクシ
ョンに関して受け取った完了信号である。第3のタイプ
のエラーは、ディレクトリにアクセスする間にパリティ
・エラーを検出することと、他のノードと共用できない
アドレスに対する要求を検出することと、ノードに関し
てエラーが検出されたことを示すディレクトリ・エント
リにアクセスすることとが含まれる。
ト102によって検出されるエラーは複数のタイプのも
のである。第1のタイプは、前述のタイムアウト・エラ
ーと同様なタイムアウト・エラーである。第2のタイプ
のエラーは、予期されないコヒーレンシ動作、すなわち
予期されない要求と予期されない完了信号のどちらかを
受け取ることである。予期されない要求が検出されるの
は、無効なトランザクション・タイプ(すなわち、この
タイプは、図11に示したテーブル190にリストされ
たタイプのうちの1つではない)を有する要求が受け取
った場合である。予期されない完了信号とは、ホーム・
エージェント102内で処理済みであったトランザクシ
ョンに関して受け取った完了信号である。第3のタイプ
のエラーは、ディレクトリにアクセスする間にパリティ
・エラーを検出することと、他のノードと共用できない
アドレスに対する要求を検出することと、ノードに関し
てエラーが検出されたことを示すディレクトリ・エント
リにアクセスすることとが含まれる。
【0136】図16に示した要求エージェント状態マシ
ンとは異なり、エラーによる多くの遷移は、フリーズ状
態314又はアイドル状態166への直接的な遷移であ
る。言い換えれば、回復状態312はこれらのトランザ
クションには使用されない。ホーム・エージェント10
2は多くの場合、ローカル・ノード内のSMPバス20
上のトランザクションには使用されないので通常、シス
テム・インタフェース24及びプロセッサ16内には、
検出されたエラーのために解放される資源はない。しか
し、送信状態164を介して処理されるトランザクショ
ンによってホーム・ノード内のSMPバス20上にトラ
ンザクションがもたらされることはない。このようなト
ランザクションは、入出力トランザクション、割り込み
トランザクション、管理トランザクションである。これ
らのタイプのトランザクションに関するエラーが検出さ
れると、回復状態312への遷移が実行される。ホーム
・エージェント状態マシンは、回復状態312から、図
16に示した回復状態312の動作と同様に、ホーム・
ノード内のSMPバス20上でトランザクションを再発
行する。それに続いて、前に定義した状態マシンのフリ
ーズ可能性に基づいてフリーズ状態314とアイドル状
態166のどちらかへの遷移が行われる。
ンとは異なり、エラーによる多くの遷移は、フリーズ状
態314又はアイドル状態166への直接的な遷移であ
る。言い換えれば、回復状態312はこれらのトランザ
クションには使用されない。ホーム・エージェント10
2は多くの場合、ローカル・ノード内のSMPバス20
上のトランザクションには使用されないので通常、シス
テム・インタフェース24及びプロセッサ16内には、
検出されたエラーのために解放される資源はない。しか
し、送信状態164を介して処理されるトランザクショ
ンによってホーム・ノード内のSMPバス20上にトラ
ンザクションがもたらされることはない。このようなト
ランザクションは、入出力トランザクション、割り込み
トランザクション、管理トランザクションである。これ
らのタイプのトランザクションに関するエラーが検出さ
れると、回復状態312への遷移が実行される。ホーム
・エージェント状態マシンは、回復状態312から、図
16に示した回復状態312の動作と同様に、ホーム・
ノード内のSMPバス20上でトランザクションを再発
行する。それに続いて、前に定義した状態マシンのフリ
ーズ可能性に基づいてフリーズ状態314とアイドル状
態166のどちらかへの遷移が行われる。
【0137】次に図18を参照すると、エラー・ロギン
グをサポートするためにシステム・インタフェース24
の一実施形態によって使用されるレジスタのブロック図
が示されている。他の実施形態は、それぞれの異なるレ
ジスタを使用することも、あるいは同様なレジスタを使
用することもできる。図18は、エージェント状況レジ
スタ320と、エラー状況レジスタ322と、要求エー
ジェント構成レジスタ324と、ホーム・エージェント
構成レジスタ326と、エージェント・フリーズ・マス
ク328と、要求エージェント状態マシン・レジスタ3
30と、ホーム・エージェント状態マシン・レジスタ3
32とを示す。
グをサポートするためにシステム・インタフェース24
の一実施形態によって使用されるレジスタのブロック図
が示されている。他の実施形態は、それぞれの異なるレ
ジスタを使用することも、あるいは同様なレジスタを使
用することもできる。図18は、エージェント状況レジ
スタ320と、エラー状況レジスタ322と、要求エー
ジェント構成レジスタ324と、ホーム・エージェント
構成レジスタ326と、エージェント・フリーズ・マス
ク328と、要求エージェント状態マシン・レジスタ3
30と、ホーム・エージェント状態マシン・レジスタ3
32とを示す。
【0138】エージェント状況レジスタ320は、エラ
ーを検出したエージェント状態マシンに関する情報を記
憶する。エージェント状況レジスタ320は、エラーを
検出するためにそれぞれ、第1のホーム・エージェント
状態マシンの表示および第1の要求エージェント状態マ
シンの表示を記憶する、第1のホーム・フィールド33
4と第1の要求フィールド336とを含む。言い換えれ
ば、第1のホーム・フィールド334は、すべてのホー
ム・ノード状態マシンがまだ正常に動作している間にエ
ラーを検出したホーム・エージェント状態マシンの表示
を記憶する。一実施形態では、ホーム・エージェント1
02および要求エージェント100内にそれぞれ、ホー
ム・エージェント状態マシンの16個のコピーおよび要
求エージェント状態マシンの16個のコピーが含まれ
る。従って、第1のホーム・フィールド334および第
1の要求フィールド336はそれぞれ、4ビットを含
み、第1のエラーを検出した対応する状態マシンに割り
当てられた番号を記憶する。
ーを検出したエージェント状態マシンに関する情報を記
憶する。エージェント状況レジスタ320は、エラーを
検出するためにそれぞれ、第1のホーム・エージェント
状態マシンの表示および第1の要求エージェント状態マ
シンの表示を記憶する、第1のホーム・フィールド33
4と第1の要求フィールド336とを含む。言い換えれ
ば、第1のホーム・フィールド334は、すべてのホー
ム・ノード状態マシンがまだ正常に動作している間にエ
ラーを検出したホーム・エージェント状態マシンの表示
を記憶する。一実施形態では、ホーム・エージェント1
02および要求エージェント100内にそれぞれ、ホー
ム・エージェント状態マシンの16個のコピーおよび要
求エージェント状態マシンの16個のコピーが含まれ
る。従って、第1のホーム・フィールド334および第
1の要求フィールド336はそれぞれ、4ビットを含
み、第1のエラーを検出した対応する状態マシンに割り
当てられた番号を記憶する。
【0139】エージェント状況レジスタ320はさら
に、ホーム・フローズン・フィールド338と要求フロ
ーズン・フィールド340とを含む。ホーム・フローズ
ン・フィールド338は、各ホーム・エージェント状態
マシンごとのビットを含む。このビットは、対応するホ
ーム・エージェント状態マシンがフリーズした場合にセ
ットされる。このビットは、対応するホーム・エージェ
ント状態マシンがフリーズしていない(すなわち、正常
に動作している)場合にはクリアされる。同様に、要求
フローズン・フィールド340は、状態マシンのフロー
ズン/非フローズン状況を示す各要求エージェント状態
マシンごとのビットを含む。例示的な実施形態では、ホ
ーム・フローズン・フィールド338および要求フロー
ズン・フィールド340はそれぞれ、16ビットを含
む。
に、ホーム・フローズン・フィールド338と要求フロ
ーズン・フィールド340とを含む。ホーム・フローズ
ン・フィールド338は、各ホーム・エージェント状態
マシンごとのビットを含む。このビットは、対応するホ
ーム・エージェント状態マシンがフリーズした場合にセ
ットされる。このビットは、対応するホーム・エージェ
ント状態マシンがフリーズしていない(すなわち、正常
に動作している)場合にはクリアされる。同様に、要求
フローズン・フィールド340は、状態マシンのフロー
ズン/非フローズン状況を示す各要求エージェント状態
マシンごとのビットを含む。例示的な実施形態では、ホ
ーム・フローズン・フィールド338および要求フロー
ズン・フィールド340はそれぞれ、16ビットを含
む。
【0140】ホーム・エージェント状態マシン、または
要求エージェント状態マシン、あるいはその両方が、コ
ンピュータ・システム10内で発生した第1のエラーを
検出したかを判定するために、ソフトウェアは、アクセ
ス・エージェント状況レジスタ320にアクセスする。
この情報は、第1のエラーが発生した後に、第1のエラ
ーの直接的な結果であり、あるいは何らかの点で第1の
エラーに関係する追加エラーが発生する可能性が高いの
で有用である。したがって、診断手順は、第1のエラー
に関係する条件を調べることによって、検出されたエラ
ーの原因となった問題をより迅速に判定することができ
る。また、ソフトウェアは、ホーム・フローズン・フィ
ールド338および要求フローズン・フィールド340
を調べることによって、どのホーム・エージェント状態
マシンおよび要求エージェント状態マシンがフリーズし
ているかを判定することができる。さらに、ソフトウェ
アは、対応するフローズン・フィールド内の対応するビ
ットを更新することによって状態マシンをフローズン状
態から解放することができる(すなわち、図16および
15で「解放」と示したアーク)。一実施形態では、シ
ステム・インタフェース24は、ソフトウェア・コマン
ドに応答して、特定のビットにバイナリ1が記憶されて
いることを検出し、それに応答してその特定のビットを
クリアし、対応する状態マシンを解放する。
要求エージェント状態マシン、あるいはその両方が、コ
ンピュータ・システム10内で発生した第1のエラーを
検出したかを判定するために、ソフトウェアは、アクセ
ス・エージェント状況レジスタ320にアクセスする。
この情報は、第1のエラーが発生した後に、第1のエラ
ーの直接的な結果であり、あるいは何らかの点で第1の
エラーに関係する追加エラーが発生する可能性が高いの
で有用である。したがって、診断手順は、第1のエラー
に関係する条件を調べることによって、検出されたエラ
ーの原因となった問題をより迅速に判定することができ
る。また、ソフトウェアは、ホーム・フローズン・フィ
ールド338および要求フローズン・フィールド340
を調べることによって、どのホーム・エージェント状態
マシンおよび要求エージェント状態マシンがフリーズし
ているかを判定することができる。さらに、ソフトウェ
アは、対応するフローズン・フィールド内の対応するビ
ットを更新することによって状態マシンをフローズン状
態から解放することができる(すなわち、図16および
15で「解放」と示したアーク)。一実施形態では、シ
ステム・インタフェース24は、ソフトウェア・コマン
ドに応答して、特定のビットにバイナリ1が記憶されて
いることを検出し、それに応答してその特定のビットを
クリアし、対応する状態マシンを解放する。
【0141】エラー状況レジスタ322は、特定のSM
Pノード12Aないし12Dに関する一般的なエラー状
況を記憶するために使用される。後述の図19は、例示
的な実施形態のエラー状況レジスタ322に記憶されて
いる状況を示す。
Pノード12Aないし12Dに関する一般的なエラー状
況を記憶するために使用される。後述の図19は、例示
的な実施形態のエラー状況レジスタ322に記憶されて
いる状況を示す。
【0142】要求エージェント100は、要求エージェ
ント構成レジスタ324を使用して構成される。図18
に示した要求エージェント構成レジスタの実施形態に
は、フリーズ限界フィールド342、カウンタ・フリー
ズ・ビット344、フリーズ・イネーブル・ビット34
6、タイムアウト限界フィールド348、入出力限界フ
ィールド350が含まれる。フリーズ限界フィールド3
42は、並行してフリーズすることのできる最大数の要
求エージェント状態マシンをコード化する。このよう
に、多数のエラーが発生した場合でも、少なくとも最大
数の要求エージェント状態マシンが引き続き要求を処理
する。したがって、フリーズ限界フィールド342の値
を使用して、要求エージェント状態マシンが回復状態3
02からフリーズ状態304に遷移するか、それともア
イドル状態148に遷移するかが判定される。カウンタ
・フリーズ・ビット344は、タイムアウト・エラーを
検出するために各要求エージェント状態マシンによって
実施されるタイムアウト・カウンタをフリーズするため
に使用される。カウンタ・フリーズ・ビット344がセ
ットされると、タイムアウト・カウンタは増分しなくな
る。したがって、カウンタ・フリーズ・ビット344が
セットされているときはタイムアウト・エラーは検出さ
れない。フリーズ・イネーブル・ビット346によっ
て、要求エージェント状態マシンは、タイムアウト・エ
ラーに応答してフリーズ状態302を開始することがで
きる。フリーズ・イネーブル・ビット346がクリアさ
れている場合、タイムアウト・エラーによってフリーズ
状態302への遷移が行われることはない。
ント構成レジスタ324を使用して構成される。図18
に示した要求エージェント構成レジスタの実施形態に
は、フリーズ限界フィールド342、カウンタ・フリー
ズ・ビット344、フリーズ・イネーブル・ビット34
6、タイムアウト限界フィールド348、入出力限界フ
ィールド350が含まれる。フリーズ限界フィールド3
42は、並行してフリーズすることのできる最大数の要
求エージェント状態マシンをコード化する。このよう
に、多数のエラーが発生した場合でも、少なくとも最大
数の要求エージェント状態マシンが引き続き要求を処理
する。したがって、フリーズ限界フィールド342の値
を使用して、要求エージェント状態マシンが回復状態3
02からフリーズ状態304に遷移するか、それともア
イドル状態148に遷移するかが判定される。カウンタ
・フリーズ・ビット344は、タイムアウト・エラーを
検出するために各要求エージェント状態マシンによって
実施されるタイムアウト・カウンタをフリーズするため
に使用される。カウンタ・フリーズ・ビット344がセ
ットされると、タイムアウト・カウンタは増分しなくな
る。したがって、カウンタ・フリーズ・ビット344が
セットされているときはタイムアウト・エラーは検出さ
れない。フリーズ・イネーブル・ビット346によっ
て、要求エージェント状態マシンは、タイムアウト・エ
ラーに応答してフリーズ状態302を開始することがで
きる。フリーズ・イネーブル・ビット346がクリアさ
れている場合、タイムアウト・エラーによってフリーズ
状態302への遷移が行われることはない。
【0143】タイムアウト限界フィールド348は、ト
ランザクションに関するタイムアウト限界(すなわち、
タイムアウト・エラーを検出する前に経過させるサイク
ル数)をコード化したものである。一実施形態では、タ
イムアウト限界フィールド348は下記の表1に示した
ようにコード化された3ビットを含む。 表1: タイムアウト限界フィールド348のコード化 コード 限界(サイクル) 0 2k 1 1M 2 2M 3 4M 4 8M
ランザクションに関するタイムアウト限界(すなわち、
タイムアウト・エラーを検出する前に経過させるサイク
ル数)をコード化したものである。一実施形態では、タ
イムアウト限界フィールド348は下記の表1に示した
ようにコード化された3ビットを含む。 表1: タイムアウト限界フィールド348のコード化 コード 限界(サイクル) 0 2k 1 1M 2 2M 3 4M 4 8M
【0144】多くの場合、タイムアウト限界を、より下
位のハードウェア(プロセッサ16、またはSMPノー
ド12内のその他のハードウェア)のタイムアウトの前
に要求エージェントにタイムアウトさせる値に設定する
ことが望ましい。そのようなより下位のハードウェア
は、タイムアウト・エラーが発生するとしばしば遮断さ
れるが、より円滑なエラー処理が望ましい。タイムアウ
トを計算するための手引きを下記に示す。TO<=(下
位タイムアウト*非フリーズ可能要求エージェントの
数)/(ノード内のサブノードの数*ノード当たりの最
大未処理トランザクション数)
位のハードウェア(プロセッサ16、またはSMPノー
ド12内のその他のハードウェア)のタイムアウトの前
に要求エージェントにタイムアウトさせる値に設定する
ことが望ましい。そのようなより下位のハードウェア
は、タイムアウト・エラーが発生するとしばしば遮断さ
れるが、より円滑なエラー処理が望ましい。タイムアウ
トを計算するための手引きを下記に示す。TO<=(下
位タイムアウト*非フリーズ可能要求エージェントの
数)/(ノード内のサブノードの数*ノード当たりの最
大未処理トランザクション数)
【0145】この数式によって、下位タイムアウトを発
生させずに最悪ケースに対する要求エージェント・タイ
ムアウトを行うことができる(すなわち、最大数のトラ
ンザクションが未処理になり、すべてのトランザクショ
ンが要求エージェント100内でタイムアウトし、最大
数の要求エージェントがフリーズする)。たとえば、
(フリーズ限界フィールド342のコード化に応じて)
16個のうちの8つの要求エージェントがフリーズして
おり、下位ハードウェア・タイムアウトの前に16Mサ
イクルが経過し、ノード内の16個のサブノードがあ
り、ノードの7つのトランザクションを並行して未処理
にすることができる場合、タイムアウト限界は1.14
Mサイクル以下にすべきである。したがって、そのよう
な構成には1Mサイクルのコード化が適切である。
生させずに最悪ケースに対する要求エージェント・タイ
ムアウトを行うことができる(すなわち、最大数のトラ
ンザクションが未処理になり、すべてのトランザクショ
ンが要求エージェント100内でタイムアウトし、最大
数の要求エージェントがフリーズする)。たとえば、
(フリーズ限界フィールド342のコード化に応じて)
16個のうちの8つの要求エージェントがフリーズして
おり、下位ハードウェア・タイムアウトの前に16Mサ
イクルが経過し、ノード内の16個のサブノードがあ
り、ノードの7つのトランザクションを並行して未処理
にすることができる場合、タイムアウト限界は1.14
Mサイクル以下にすべきである。したがって、そのよう
な構成には1Mサイクルのコード化が適切である。
【0146】最後に、入出力限界フィールド350は、
入出力要求を並行して処理することができる要求エージ
ェント状態マシンの最大数をコード化する。SMP P
IQ96で入出力トランザクションが待機しており、最
大数の入出力要求が要求状態マシンによって並行して処
理されている場合、入出力トランザクションは、1つの
未処理入出力トランザクションが完了するまで開始され
ない。
入出力要求を並行して処理することができる要求エージ
ェント状態マシンの最大数をコード化する。SMP P
IQ96で入出力トランザクションが待機しており、最
大数の入出力要求が要求状態マシンによって並行して処
理されている場合、入出力トランザクションは、1つの
未処理入出力トランザクションが完了するまで開始され
ない。
【0147】要求エージェント構成レジスタ324と同
様に、ホーム・エージェント構成レジスタ326は、フ
リーズ限界フィールド342と、カウンタ・フリーズ・
ビット344と、フリーズ・イネーブル・ビット346
と、タイムアウト限界フィールド348と、入出力限界
フィールド350とを含む。しかし、これらのフィール
ドには、ホーム・エージェント構成レジスタ326に含
まれるホーム・エージェント状態マシンの特性がコード
化される。DCサイズ・フィールド352も含まれる。
DCサイズ・フィールド352は、ディレクトリ・キャ
ッシュ・ライン・サイズのサイズ(バイト単位)をコー
ド化したものである。一実施形態では、DCサイズ・フ
ィールド352は、下記の表2に示したようにコード化
された2ビットを含む。 表2 DCサイズ・フィールドのコード化 コード(バイナリ) バイト 00 8 01 16 10 32 11 64
様に、ホーム・エージェント構成レジスタ326は、フ
リーズ限界フィールド342と、カウンタ・フリーズ・
ビット344と、フリーズ・イネーブル・ビット346
と、タイムアウト限界フィールド348と、入出力限界
フィールド350とを含む。しかし、これらのフィール
ドには、ホーム・エージェント構成レジスタ326に含
まれるホーム・エージェント状態マシンの特性がコード
化される。DCサイズ・フィールド352も含まれる。
DCサイズ・フィールド352は、ディレクトリ・キャ
ッシュ・ライン・サイズのサイズ(バイト単位)をコー
ド化したものである。一実施形態では、DCサイズ・フ
ィールド352は、下記の表2に示したようにコード化
された2ビットを含む。 表2 DCサイズ・フィールドのコード化 コード(バイナリ) バイト 00 8 01 16 10 32 11 64
【0148】エージェント・フリーズ・マスク・レジス
タ328は、要求エージェント100およびホーム・エ
ージェント102を、ある種のエラーが検出されたとき
にフリーズし、それに対して他のエラーが検出されたと
きにはフリーズしないように構成できるようにする前述
のマスクを記憶する。一実施形態では、各マスクは、対
応するエージェントによって検出された各エラーごとの
ビットを含む。このビットがセットされている場合、そ
のエージェント内の状態マシンは、対応するエラーが検
出されたときにフリーズする。あるいは、エージェント
は、対応するビットがクリアされているエラーが検出さ
れたときにはフリーズしない。エージェント・フリーズ
・マスク・レジスタ328は、それぞれ、要求エージェ
ント100とホーム・エージェント102に対応する、
要求エラー・マスク・フィールド354とホーム・エラ
ー・マスク・フィールド356とを含む。
タ328は、要求エージェント100およびホーム・エ
ージェント102を、ある種のエラーが検出されたとき
にフリーズし、それに対して他のエラーが検出されたと
きにはフリーズしないように構成できるようにする前述
のマスクを記憶する。一実施形態では、各マスクは、対
応するエージェントによって検出された各エラーごとの
ビットを含む。このビットがセットされている場合、そ
のエージェント内の状態マシンは、対応するエラーが検
出されたときにフリーズする。あるいは、エージェント
は、対応するビットがクリアされているエラーが検出さ
れたときにはフリーズしない。エージェント・フリーズ
・マスク・レジスタ328は、それぞれ、要求エージェ
ント100とホーム・エージェント102に対応する、
要求エラー・マスク・フィールド354とホーム・エラ
ー・マスク・フィールド356とを含む。
【0149】各要求エージェント状態マシンには、それ
によって処理されているトランザクションに関する情報
を記憶する要求エージェント状態マシン・レジスタ33
0が与えられる。要求エージェント状態マシン・レジス
タ330は、アドレス・フィールド358と、応答受信
フィールド360と、エラー・コード・フィールド36
2と、最初のトランザクション・フィールド364と、
SNOビット366と、状態フィールド368とを含
む。アドレス・フィールド358は、エラーに関連する
トランザクションのアドレスを記憶する。応答受信フィ
ールド360は、各SMPノード12Aないし12Dご
とのビットを含む。このビットがセットされている場
合、対応するSMPノード12Aないし12Dから応答
が受信されている。エラー・コード・フィールド362
は、検出されたエラーを示すコードを記憶する。一実施
形態では、エラー・コード・フィールド362は、下記
の表3に示したようにコード化された3ビットを含む。 表3 エラー・コード・フィールド362のコード化 コード(バイナリ) エラー 001 タイムアウト 010 予想されない応答 011 LPA2GAパリティ・エラー 100 スレーブ・エラー 101 ANM応答受信
によって処理されているトランザクションに関する情報
を記憶する要求エージェント状態マシン・レジスタ33
0が与えられる。要求エージェント状態マシン・レジス
タ330は、アドレス・フィールド358と、応答受信
フィールド360と、エラー・コード・フィールド36
2と、最初のトランザクション・フィールド364と、
SNOビット366と、状態フィールド368とを含
む。アドレス・フィールド358は、エラーに関連する
トランザクションのアドレスを記憶する。応答受信フィ
ールド360は、各SMPノード12Aないし12Dご
とのビットを含む。このビットがセットされている場
合、対応するSMPノード12Aないし12Dから応答
が受信されている。エラー・コード・フィールド362
は、検出されたエラーを示すコードを記憶する。一実施
形態では、エラー・コード・フィールド362は、下記
の表3に示したようにコード化された3ビットを含む。 表3 エラー・コード・フィールド362のコード化 コード(バイナリ) エラー 001 タイムアウト 010 予想されない応答 011 LPA2GAパリティ・エラー 100 スレーブ・エラー 101 ANM応答受信
【0150】最初のトランザクション・フィールド36
4は、SMPバス20から受け取ったトランザクション
の表示を記憶する。SNOビット366は、所有者スレ
ーブ・エージェント104からSNO応答が受け取った
場合にセットされる。最後に、状態フィールド368
は、エラーが検出されたときの要求エージェント状態マ
シンの状態を示す。
4は、SMPバス20から受け取ったトランザクション
の表示を記憶する。SNOビット366は、所有者スレ
ーブ・エージェント104からSNO応答が受け取った
場合にセットされる。最後に、状態フィールド368
は、エラーが検出されたときの要求エージェント状態マ
シンの状態を示す。
【0151】同様に、各ホーム・エージェント状態マシ
ンにはホーム・エージェント状態マシン・レジスタ33
2が与えられる。ホーム・エージェント状態マシン・レ
ジスタ332は、アドレス・フィールド358と、最初
のディレクトリ・フィールド370と、エラー・コード
・フィールド372と、要求フィールド374と、送信
元IDフィールド376と、送信元ノード・フィールド
378とを含む。最初のディレクトリ・フィールド37
0は、アドレス・フィールド358に記憶されているア
ドレスに対応するディレクトリ・エントリを記憶する。
記憶されるディレクトリ・エントリは、エラーが検出さ
れた動作が開始する前のディレクトリ・エントリの状態
である。エラー・コード・フィールド372は、検出さ
れたエラーの表示を記憶する。一実施形態では、エラー
・コード・フィールド372は、下記の表4に示したよ
うにコード化された3ビットを含む。 表4 エラー・コード・フィールド372のコード化 コード(バイナリ) エラー 001 タイムアウト 010 エラー状態のディレクトリ・エン
トリへのアクセス 011 ディレクトリ・パリティ・エラー 100 共用不能アドレスの要求 101 予想されない要求 110 予想されない完了
ンにはホーム・エージェント状態マシン・レジスタ33
2が与えられる。ホーム・エージェント状態マシン・レ
ジスタ332は、アドレス・フィールド358と、最初
のディレクトリ・フィールド370と、エラー・コード
・フィールド372と、要求フィールド374と、送信
元IDフィールド376と、送信元ノード・フィールド
378とを含む。最初のディレクトリ・フィールド37
0は、アドレス・フィールド358に記憶されているア
ドレスに対応するディレクトリ・エントリを記憶する。
記憶されるディレクトリ・エントリは、エラーが検出さ
れた動作が開始する前のディレクトリ・エントリの状態
である。エラー・コード・フィールド372は、検出さ
れたエラーの表示を記憶する。一実施形態では、エラー
・コード・フィールド372は、下記の表4に示したよ
うにコード化された3ビットを含む。 表4 エラー・コード・フィールド372のコード化 コード(バイナリ) エラー 001 タイムアウト 010 エラー状態のディレクトリ・エン
トリへのアクセス 011 ディレクトリ・パリティ・エラー 100 共用不能アドレスの要求 101 予想されない要求 110 予想されない完了
【0152】要求フィールド374は、最初の要求が要
求エージェント100から受け取ったことを示す。送信
元IDフィールド376は、ホーム・エージェント状態
マシンによって処理されている要求を開始させたトラン
ザクションのトランザクションIDを記憶する。最後
に、送信元ノード・フィールド378は、要求の送信元
のノードを記憶する。
求エージェント100から受け取ったことを示す。送信
元IDフィールド376は、ホーム・エージェント状態
マシンによって処理されている要求を開始させたトラン
ザクションのトランザクションIDを記憶する。最後
に、送信元ノード・フィールド378は、要求の送信元
のノードを記憶する。
【0153】次に図19を参照すると、エラー状態レジ
スタ322の一実施形態の内容を示す表380が示され
ている。表380は、レジスタの各フィールド(列38
2)とフィールドの説明(列384)をリストしたもの
である。NIAC_HWフィールドは、システム・イン
タフェース24自体で検出されたハードウェア・エラー
を記憶するために使用される。IDQ_PTR_ERR
ORビットは、セットされると、ネットワーク14から
受け取ったパケット内でパリティ・エラーが検出された
ことを示す。パリティ・エラーは、入出力データ待ち行
列92内のどのエントリがそのエラーと共に送信された
データを記憶するかを示すフィールド上で検出される。
GA2LPA_VIOLAビットは、スレーブ・エージ
ェントがGA2LPAキャッシュにアクセスした際に違
反が検出されたことを示す。違反が検出されるのは、そ
の動作に関してスレーブ・エージェントがGA2LPA
キャッシュにアクセスする動作が、GA2LPA変換か
ら許可されないからである(すなわち、読取り専用コヒ
ーレンシ単位への書込み)。GA2LP_PERRビッ
トは、GA2LPAキャッシュへのアクセス時にパリテ
ィ・エラーが検出された場合にセットされる。NETW
ORK_ERRORビットは、ネットワーク14上でエ
ラーが検出された場合にセットされる。
スタ322の一実施形態の内容を示す表380が示され
ている。表380は、レジスタの各フィールド(列38
2)とフィールドの説明(列384)をリストしたもの
である。NIAC_HWフィールドは、システム・イン
タフェース24自体で検出されたハードウェア・エラー
を記憶するために使用される。IDQ_PTR_ERR
ORビットは、セットされると、ネットワーク14から
受け取ったパケット内でパリティ・エラーが検出された
ことを示す。パリティ・エラーは、入出力データ待ち行
列92内のどのエントリがそのエラーと共に送信された
データを記憶するかを示すフィールド上で検出される。
GA2LPA_VIOLAビットは、スレーブ・エージ
ェントがGA2LPAキャッシュにアクセスした際に違
反が検出されたことを示す。違反が検出されるのは、そ
の動作に関してスレーブ・エージェントがGA2LPA
キャッシュにアクセスする動作が、GA2LPA変換か
ら許可されないからである(すなわち、読取り専用コヒ
ーレンシ単位への書込み)。GA2LP_PERRビッ
トは、GA2LPAキャッシュへのアクセス時にパリテ
ィ・エラーが検出された場合にセットされる。NETW
ORK_ERRORビットは、ネットワーク14上でエ
ラーが検出された場合にセットされる。
【0154】AGENT_ERRORビットは、ホーム
・フローズン・フィールド338または要求フローズン
・フィールド340内のビットがセットされた場合にセ
ットされる。HOME_LOGフィールドは、対応する
ホーム・エージェント状態マシンが(ホーム・エラー・
マスク・フィールド356を介して)フリーズしないエ
ラーをログするために使用される。HOME_LOGフ
ィールド内の1つのビットは、ホーム・エージェント状
態マシンによって検出された各エラーに対応する。エラ
ーが検出されフリーズが行われなかった場合、HOME
_LOGフィールド内の対応するビットがセットされ
る。同様に、REQ_LOGフィールドは、検出側要求
エージェント状態マシンをフリーズさせないエラーをロ
グする。
・フローズン・フィールド338または要求フローズン
・フィールド340内のビットがセットされた場合にセ
ットされる。HOME_LOGフィールドは、対応する
ホーム・エージェント状態マシンが(ホーム・エラー・
マスク・フィールド356を介して)フリーズしないエ
ラーをログするために使用される。HOME_LOGフ
ィールド内の1つのビットは、ホーム・エージェント状
態マシンによって検出された各エラーに対応する。エラ
ーが検出されフリーズが行われなかった場合、HOME
_LOGフィールド内の対応するビットがセットされ
る。同様に、REQ_LOGフィールドは、検出側要求
エージェント状態マシンをフリーズさせないエラーをロ
グする。
【0155】ADM_ERRビットは、予想されない管
理要求が受け取った場合にセットされる。HOME_C
ERRビットは、フリーズ状態またはアイドル状態のホ
ーム・エージェント状態マシンがコヒーレンシ完了信号
を受信した場合にセットされる。同様に、REQ_RE
RRビットは、フリーズ状態またはアイドル状態の要求
エージェント状態マシンがコヒーレンシ応答を受信した
場合にセットされる。最後に、ECC_PCEビット、
ECC_PUEビット、ECC_CCEビット、ECC
_CUEビットは、SMPバス20上で、表380にリ
ストしたタイプのトランザクションに関するECCエラ
ーが検出された場合にセットされる。
理要求が受け取った場合にセットされる。HOME_C
ERRビットは、フリーズ状態またはアイドル状態のホ
ーム・エージェント状態マシンがコヒーレンシ完了信号
を受信した場合にセットされる。同様に、REQ_RE
RRビットは、フリーズ状態またはアイドル状態の要求
エージェント状態マシンがコヒーレンシ応答を受信した
場合にセットされる。最後に、ECC_PCEビット、
ECC_PUEビット、ECC_CCEビット、ECC
_CUEビットは、SMPバス20上で、表380にリ
ストしたタイプのトランザクションに関するECCエラ
ーが検出された場合にセットされる。
【0156】次に図20を参照すると、例示的なカウン
タ回路390が示されている。カウンタ回路390は、
要求エージェント状態マシンまたはホーム・エージェン
ト状態マシン、あるいはその両方用のタイムアウト・カ
ウンタとして使用することができる。カウンタ回路39
0は、カウンタ・フィールド394と繰り上げビット3
96とを有するカウンタ記憶域392と、マルチプレク
サ398とを含む。マルチプレクサ398は、カウンタ
回路用のクロック入力を高速クロック線400および低
速クロック線402から選択する。繰り上げビット39
6は、マルチプレクサ398の選択制御を行う。
タ回路390が示されている。カウンタ回路390は、
要求エージェント状態マシンまたはホーム・エージェン
ト状態マシン、あるいはその両方用のタイムアウト・カ
ウンタとして使用することができる。カウンタ回路39
0は、カウンタ・フィールド394と繰り上げビット3
96とを有するカウンタ記憶域392と、マルチプレク
サ398とを含む。マルチプレクサ398は、カウンタ
回路用のクロック入力を高速クロック線400および低
速クロック線402から選択する。繰り上げビット39
6は、マルチプレクサ398の選択制御を行う。
【0157】カウンタ回路390がリセットされると、
カウンタ・フィールド394と繰り上げビット396が
クリアされる。高速クロックはマルチプレクサ398を
介して選択され、カウンタ・フィールド394に記憶さ
れているカウント値は、高速クロックの1サイクル当た
り1増分の率で増分を開始する。カウント・フィールド
394のカウント値がオーバフローすると、繰り上げビ
ット396がセットされる。カウンタ・フィールド39
4は、クリアされた値に戻る。繰り上げビット396が
セットされているので、低速クロック線402上の低速
クロックを使用してカウンタ回路390が増分される。
カウンタ・フィールド394と繰り上げビット396が
クリアされる。高速クロックはマルチプレクサ398を
介して選択され、カウンタ・フィールド394に記憶さ
れているカウント値は、高速クロックの1サイクル当た
り1増分の率で増分を開始する。カウント・フィールド
394のカウント値がオーバフローすると、繰り上げビ
ット396がセットされる。カウンタ・フィールド39
4は、クリアされた値に戻る。繰り上げビット396が
セットされているので、低速クロック線402上の低速
クロックを使用してカウンタ回路390が増分される。
【0158】カウンタ回路390は、少数のビットを使
用してカウンタ機能を実施し、しかも、互いに比較的近
い時間に行われるいくつかのタイムアウトのうちの第1
のタイムアウトを検出できるようにする細分性を維持す
るので有利である。カウンタは、まず高速クロックを使
用してカウントし、それに続いて低速クロックを使用し
てより低速のカウントを行う。低速カウントが、高速ク
ロックを使用するカウンタが1回オーバフローするまで
開始されないので、互いに比較的近い時間に開始された
動作が、それぞれの異なる時間に低速クロック上でカウ
ントを開始する。まず、最初に開始された動作が低速カ
ウント上でカウントを開始し、それに続いて2番目に開
始された動作がカウントを開始し、以下同様である。し
たがって、第1の動作は第2の動作よりも前にタイムア
ウトし、以下同様である。最初に繰り上げビット396
がセットされると、低速クロック上で特別パルスが生成
され、高速クロックを使用することによって生成された
細分性が維持される。このように、最初に低速クロック
を用いてカウントを開始したカウンタは、それに続いて
低速クロックを用いてカウントを開始するカウンタに先
行したままになる。低速クロックに切り換えることによ
り、全体にわたって高速クロックを使用した場合に必要
になるよりも少ないビットを使用して、一定数のクロッ
ク・サイクルにわたってカウントすることができる。
用してカウンタ機能を実施し、しかも、互いに比較的近
い時間に行われるいくつかのタイムアウトのうちの第1
のタイムアウトを検出できるようにする細分性を維持す
るので有利である。カウンタは、まず高速クロックを使
用してカウントし、それに続いて低速クロックを使用し
てより低速のカウントを行う。低速カウントが、高速ク
ロックを使用するカウンタが1回オーバフローするまで
開始されないので、互いに比較的近い時間に開始された
動作が、それぞれの異なる時間に低速クロック上でカウ
ントを開始する。まず、最初に開始された動作が低速カ
ウント上でカウントを開始し、それに続いて2番目に開
始された動作がカウントを開始し、以下同様である。し
たがって、第1の動作は第2の動作よりも前にタイムア
ウトし、以下同様である。最初に繰り上げビット396
がセットされると、低速クロック上で特別パルスが生成
され、高速クロックを使用することによって生成された
細分性が維持される。このように、最初に低速クロック
を用いてカウントを開始したカウンタは、それに続いて
低速クロックを用いてカウントを開始するカウンタに先
行したままになる。低速クロックに切り換えることによ
り、全体にわたって高速クロックを使用した場合に必要
になるよりも少ないビットを使用して、一定数のクロッ
ク・サイクルにわたってカウントすることができる。
【0159】たとえば、高速クロックは、4クロック・
サイクルの周期と共に構成することができる(この場
合、クロック・サイクルを画定するクロックは、システ
ム・インタフェース24に供給されるクロックであ
る)。約1Mサイクルのタイムアウト値が必要である場
合、カウント回路は18ビットを必要とする(すなわ
ち、218≒250kサイクル*4クロック/高速クロッ
ク周期)。しかし、クロック回路390と、周期が20
00サイクルである低速クロックを使用する場合、カウ
ンタ・フィールド394は9ビットしか含むことができ
ない(すなわち、29 =512*(2000クロック/
低速クロック周期+4クロック/高速クロック周期)。
サイクルの周期と共に構成することができる(この場
合、クロック・サイクルを画定するクロックは、システ
ム・インタフェース24に供給されるクロックであ
る)。約1Mサイクルのタイムアウト値が必要である場
合、カウント回路は18ビットを必要とする(すなわ
ち、218≒250kサイクル*4クロック/高速クロッ
ク周期)。しかし、クロック回路390と、周期が20
00サイクルである低速クロックを使用する場合、カウ
ンタ・フィールド394は9ビットしか含むことができ
ない(すなわち、29 =512*(2000クロック/
低速クロック周期+4クロック/高速クロック周期)。
【0160】上記の例示的な実施形態ではSMPノード
12について説明したが、一般的に言えば、コンピュー
タ・システム10は1つまたは複数の処理ノードを含む
ことができる。本明細書では、処理ノードは、少なくと
も1つのプロセッサと対応するメモリとを含む。他の処
理ノードと通信する回路も含まれる。コンピュータ・シ
ステム10の実施形態に複数の処理ノードが含まれると
き、処理ノード内の対応するメモリは分散共用メモリを
形成する。処理ノードはリモート処理ノードまたはロー
カル処理ノードと呼ぶことができる。処理ノードは、特
定のプロセッサを含まない場合、その特定のプロセッサ
に対してリモート処理ノードである。逆に、特定のプロ
セッサを含む処理ノードは、その特定のプロセッサのロ
ーカル処理ノードである。
12について説明したが、一般的に言えば、コンピュー
タ・システム10は1つまたは複数の処理ノードを含む
ことができる。本明細書では、処理ノードは、少なくと
も1つのプロセッサと対応するメモリとを含む。他の処
理ノードと通信する回路も含まれる。コンピュータ・シ
ステム10の実施形態に複数の処理ノードが含まれると
き、処理ノード内の対応するメモリは分散共用メモリを
形成する。処理ノードはリモート処理ノードまたはロー
カル処理ノードと呼ぶことができる。処理ノードは、特
定のプロセッサを含まない場合、その特定のプロセッサ
に対してリモート処理ノードである。逆に、特定のプロ
セッサを含む処理ノードは、その特定のプロセッサのロ
ーカル処理ノードである。
【0161】上記では、要求エージェント100および
ホーム・エージェント102を、エラー・ロギングを実
行するものとして説明したことに留意されたい。しか
し、任意のプロトコル・エージェントが同様なエラー・
ロギング機能を実行することができる。一般的に言え
ば、プロトコル・エージェントとは、コヒーレンシ活動
が必要とされるトランザクションに応答してコヒーレン
シ動作を実行する1つまたは複数の状態マシンである。
コヒーレンシ動作は、特定のトランザクションを実行す
る適当なアクセス権を得るために使用されるコヒーレン
シ活動の一部を含む。コヒーレンシ動作は、コヒーレン
シ活動に関与する単一の処理ノードによって実行され
る。
ホーム・エージェント102を、エラー・ロギングを実
行するものとして説明したことに留意されたい。しか
し、任意のプロトコル・エージェントが同様なエラー・
ロギング機能を実行することができる。一般的に言え
ば、プロトコル・エージェントとは、コヒーレンシ活動
が必要とされるトランザクションに応答してコヒーレン
シ動作を実行する1つまたは複数の状態マシンである。
コヒーレンシ動作は、特定のトランザクションを実行す
る適当なアクセス権を得るために使用されるコヒーレン
シ活動の一部を含む。コヒーレンシ動作は、コヒーレン
シ活動に関与する単一の処理ノードによって実行され
る。
【0162】上記の開示によって、コンピュータ・シス
テム自体で実行されるコヒーレンシ活動に関するエラー
・ロギングを実行するコンピュータ・システムについて
説明した。エラーは後で診断アクセスができるようにロ
ギングされるが、コンピュータ・システムは動作し続け
る。コンピュータ・システムが高度の可用性および信頼
性を有し、そのため、ミッション・クリティカル・アプ
リケーションをコンピュータ・システム上で実行できる
ので有利である。
テム自体で実行されるコヒーレンシ活動に関するエラー
・ロギングを実行するコンピュータ・システムについて
説明した。エラーは後で診断アクセスができるようにロ
ギングされるが、コンピュータ・システムは動作し続け
る。コンピュータ・システムが高度の可用性および信頼
性を有し、そのため、ミッション・クリティカル・アプ
リケーションをコンピュータ・システム上で実行できる
ので有利である。
【0163】当業者には、上記の開示を完全に理解した
後に多数の変形形態および修正形態が明らかになろう。
たとえば、本明細書に示した様々なブロックおよび構成
要素はハードウェア実施形態に関して説明したが、代替
実施形態では、ハードウェア機能のすべてまたは一部を
ソフトウェアで実施することができる。特許請求の範囲
は、すべてのそのような変形形態および修正形態を包含
するものと解釈されるものである。
後に多数の変形形態および修正形態が明らかになろう。
たとえば、本明細書に示した様々なブロックおよび構成
要素はハードウェア実施形態に関して説明したが、代替
実施形態では、ハードウェア機能のすべてまたは一部を
ソフトウェアで実施することができる。特許請求の範囲
は、すべてのそのような変形形態および修正形態を包含
するものと解釈されるものである。
【図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】 エラー・ロギングに関する状態を含む要求
エージェント用の例示的な状態マシンを示すフローチャ
ートである。
エージェント用の例示的な状態マシンを示すフローチャ
ートである。
【図17】 エラー・ロギングに関する状態を含む要求
エージェント用の例示的な状態マシンを示すフローチャ
ートである。
エージェント用の例示的な状態マシンを示すフローチャ
ートである。
【図18】 検出されたエラーに関する情報を記憶する
ために使用される1組のレジスタを示す図である。
ために使用される1組のレジスタを示す図である。
【図19】 エラー状況レジスタの一実施形態による、
図18に示したエラー状況レジスタに記憶されている情
報をリストした表である。
図18に示したエラー状況レジスタに記憶されている情
報をリストした表である。
【図20】 カウンタ回路の一実施形態を示す論理図で
ある。
ある。
10 コンピュータ・システム 12 SMPノード 14 ポイント・ツー・ポイント・ネットワーク 16 プロセッサ 18 外部キャッシュ 20 SMPバス 22 メモリ 24 システム・インタフェース 26 入出力インタフェース 30 第1のメモリ・アーキテクチャ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年12月4日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図4】
【図12】
【図1】
【図2】
【図6】
【図7】
【図20】
【図3】
【図5】
【図14】
【図8】
【図13】
【図9】
【図10】
【図11】
【図18】
【図15】
【図19】
【図16】
【図17】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ジョン・アール・カテンザロ アメリカ合衆国・03053・ニュー ハンプ シャー州・ロンドンペリー・ウィリー ヒ ル ロード・35 (72)発明者 ウイリアム・エイ・ニシーム アメリカ合衆国・03087・ニュー ハンプ シャー州・ウィンダム・ローウェル ロー ド・8 (72)発明者 モニカ・シー・ウォン−チャン アメリカ合衆国・01742・マサチューセッ ツ州・コンコード・ターベル スプリング ス ロード・73 (72)発明者 ロバート・シー・ザック・ジュニア アメリカ合衆国・02173・マサチューセッ ツ州・レキシントン・スプリング ストリ ート・58 (72)発明者 ポール・エヌ・ローウェンステイン アメリカ合衆国・94301・カリフォルニア 州・パロ アルト・チャニング アヴェニ ュ・919
Claims (21)
- 【請求項1】 エラーをログする装置であって、 処理ノードによるコヒーレンシ単位へのアクセスに応答
してコヒーレンシ動作を実行するように構成されたプロ
トコル・エージェントと、 前記プロトコル・エージェントによってエラーが検出さ
れたときに前記プロトコル・エージェントの表示を記憶
するように構成された記憶装置とを備えることを特徴と
する装置。 - 【請求項2】 前記プロトコル・エージェントが、複数
の状態マシンを備え、前記複数の状態マシンがそれぞ
れ、前記アクセスに応答して、前記複数の状態マシンの
うちの他の状態マシンが他のコヒーレンシ動作を実行す
るのと並行して前記コヒーレンシ動作を実行するように
構成されることを特徴とする請求項1に記載の装置。 - 【請求項3】 前記表示がさらに、前記複数の状態マシ
ンのうちの1つを識別し、前記複数の状態マシンのうち
の前記1つが、前記エラーが検出された前記コヒーレン
シ動作を実行していることを特徴とする請求項2に記載
の装置。 - 【請求項4】 前記プロトコル・エージェントが、ホー
ム・エージェントを備えることを特徴とする請求項3に
記載の装置。 - 【請求項5】 前記プロトコル・エージェントが、要求
エージェントを備えることを特徴とする請求項3に記載
の装置。 - 【請求項6】 前記要求エージェントがさらに、スレー
ブ・エージェントによって検出されたエラーをログする
ように構成されることを特徴とする請求項5に記載の装
置。 - 【請求項7】 前記エラーを検出した前記複数の状態マ
シンのうちの前記1つが、フリーズ状態を含み、前記フ
リーズ状態が、前記アクセスに関するトランザクション
情報が保持されるように前記エラーの検出時に開始され
ることを特徴とする請求項2に記載の装置。 - 【請求項8】 前記複数の状態マシンのうちの前記1つ
が、回復状態を通じて前記フリーズ状態に遷移し、前記
アクセスによって占有されている資源が解放されること
を特徴とする請求項7に記載の装置。 - 【請求項9】 さらに、前記エラーを識別する第2の表
示を記憶するように構成された第2の記憶装置を備える
ことを特徴とする請求項1に記載の装置。 - 【請求項10】 前記エラーが、前記アクセスが開始し
てから前記アクセスが完了するまでに所定の時間間隔が
満了するタイムアウトを含むことを特徴とする請求項9
に記載の装置。 - 【請求項11】 前記エラーが、前記プロトコル・エー
ジェントによる予想されないコヒーレンシ動作の受信を
含むことを特徴とする請求項9に記載の装置。 - 【請求項12】 さらに、前記エラーが検出されたトラ
ンザクションを識別するデータを記憶するように構成さ
れた第3の記憶装置を備えることを特徴とする請求項9
に記載の装置。 - 【請求項13】 エラーをログする方法であって、 プロトコル・エージェントを備える複数の状態マシンの
うちの1つによって処理されているトランザクションに
関するエラーを検出することと、 前記検出時に前記複数の状態マシンのうちの前記1つ内
で回復状態に遷移し、それによって、前記トランザクシ
ョンによって占有されている資源を解放することと、 前記複数の状態マシンのうちの前記1つ内でフリーズ状
態に遷移し、それによって、前記トランザクションに関
するトランザクション状態を保存することとを含むこと
を特徴とする方法。 - 【請求項14】 さらに、前記複数の状態マシンのうち
の最大数の状態マシンが前記フリーズ状態である場合に
前記フリーズ状態ではなくアイドル状態に遷移すること
を含むことを特徴とする請求項13に記載の方法。 - 【請求項15】 前記最大数がプログラム可能であるこ
とを特徴とする請求項14に記載の方法。 - 【請求項16】 さらに、前記エラーがプログラム可能
なマスク・フィールドを介してディスエーブルされた場
合に前記フリーズ状態ではなく前記アイドル状態に遷移
することを含むことを特徴とする請求項14に記載の方
法。 - 【請求項17】 さらに、前記エラーの表示をレジスタ
に記憶することを含むことを特徴とする請求項13に記
載の方法。 - 【請求項18】 前記プロトコル・エージェントが、要
求エージェントを備えることを特徴とする請求項13に
記載の方法。 - 【請求項19】 前記検出が、前記エラーの表示をスレ
ーブ・エージェントから受け取ることを含むことを特徴
とする請求項18に記載の方法。 - 【請求項20】 コンピュータ・システムであって、 第1の処理ノード自体から開始されたコヒーレンシ要求
に関する第1のエラーを検出しログするように構成され
た要求エージェントを含む第1の処理ノードと、 第2の処理ノード自体から開始されたコヒーレンシ・デ
マンドに関する第2のエラーを検出しログするように構
成されたホーム・エージェントを含む第2の処理ノード
とを備えることを特徴とするコンピュータ・システム。 - 【請求項21】 さらに、スレーブ・エージェントを含
む第3の処理ノードを備え、前記スレーブ・エージェン
トが、スレーブ・エージェント自体で受け取ったコヒー
レンシ・デマンドに関する第3のエラーを検出するよう
に構成され、かつ前記第3のエラーの表示を前記要求エ
ージェントへ送信するように構成されることを特徴とす
る請求項20に記載のコンピュータ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/674276 | 1996-07-01 | ||
| US08/674,276 US5862316A (en) | 1996-07-01 | 1996-07-01 | Multiprocessing system having coherency-related error logging capabilities |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10133917A true JPH10133917A (ja) | 1998-05-22 |
Family
ID=24706004
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9208224A Pending JPH10133917A (ja) | 1996-07-01 | 1997-06-30 | コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5862316A (ja) |
| EP (1) | EP0817051B1 (ja) |
| JP (1) | JPH10133917A (ja) |
| DE (1) | DE69727856T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014197402A (ja) * | 2014-05-26 | 2014-10-16 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
| US10511502B2 (en) | 2016-06-15 | 2019-12-17 | Fujitsu Limited | Information processing method, device and recording medium for collecting logs at occurrence of an error |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6370585B1 (en) * | 1997-09-05 | 2002-04-09 | Sun Microsystems, Inc. | Multiprocessing computer system employing a cluster communication launching and addressing mechanism |
| US6249520B1 (en) * | 1997-10-24 | 2001-06-19 | Compaq Computer Corporation | High-performance non-blocking switch with multiple channel ordering constraints |
| US6622264B1 (en) | 1999-10-28 | 2003-09-16 | General Electric Company | Process and system for analyzing fault log data from a machine so as to identify faults predictive of machine failures |
| US6343236B1 (en) * | 1999-04-02 | 2002-01-29 | General Electric Company | Method and system for analyzing fault log data for diagnostics |
| US6947797B2 (en) * | 1999-04-02 | 2005-09-20 | General Electric Company | Method and system for diagnosing machine malfunctions |
| US6405322B1 (en) * | 1999-04-13 | 2002-06-11 | Hewlett-Packard Company | System and method for recovery from address errors |
| US20110208567A9 (en) * | 1999-08-23 | 2011-08-25 | Roddy Nicholas E | System and method for managing a fleet of remote assets |
| US6536000B1 (en) * | 1999-10-15 | 2003-03-18 | Sun Microsystems, Inc. | Communication error reporting mechanism in a multiprocessing computer system |
| US6658603B1 (en) | 2000-04-17 | 2003-12-02 | International Business Machines Corporation | Method and apparatus for efficiently generating and implementing engine error codes and verifying the correctness of the implementation of the engine error codes |
| US6618823B1 (en) | 2000-08-15 | 2003-09-09 | Storage Technology Corporation | Method and system for automatically gathering information from different types of devices connected in a network when a device fails |
| 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 |
| JP3377994B2 (ja) * | 2000-11-14 | 2003-02-17 | 三菱電機株式会社 | データ配信管理装置およびデータ配信管理方法 |
| 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 |
| US20020087775A1 (en) * | 2000-12-29 | 2002-07-04 | Looi Lily P. | Apparatus and method for interrupt delivery |
| US20020087766A1 (en) * | 2000-12-29 | 2002-07-04 | Akhilesh Kumar | Method and apparatus to implement a locked-bus transaction |
| US6721918B2 (en) | 2000-12-29 | 2004-04-13 | Intel Corporation | Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect |
| US6701464B2 (en) * | 2001-03-01 | 2004-03-02 | International Business Machines Corporation | Method and system for reporting error logs within a logical partition environment |
| US7085869B1 (en) * | 2001-04-04 | 2006-08-01 | Advanced Micro Devices, Inc. | Arrangement for managing transmitted packets requiring acknowledgement in a host channel adapter |
| US6971098B2 (en) | 2001-06-27 | 2005-11-29 | Intel Corporation | Method and apparatus for managing transaction requests in a multi-node architecture |
| US6973643B2 (en) * | 2001-08-17 | 2005-12-06 | International Business Machines Corporation | Method, system and program for handling errors occurring in function calls |
| US6993675B2 (en) * | 2002-07-31 | 2006-01-31 | General Electric Company | Method and system for monitoring problem resolution of a machine |
| US6810312B2 (en) * | 2002-09-30 | 2004-10-26 | General Electric Company | Method for identifying a loss of utilization of mobile assets |
| US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
| US7069479B2 (en) * | 2002-11-07 | 2006-06-27 | International Business Machines Corporation | Method and apparatus for obtaining diagnostic data for a device attached to a computer system |
| US7424653B2 (en) * | 2003-05-09 | 2008-09-09 | Hewlett-Packard Development Company, L.P. | System and method for error capture and logging in computer systems |
| CA2433750A1 (en) | 2003-06-27 | 2004-12-27 | Ibm Canada Limited - Ibm Canada Limitee | Automatic collection of trace detail and history data |
| US7685573B2 (en) * | 2003-07-31 | 2010-03-23 | Sun Microsystems, Inc. | Flexible error trace mechanism |
| US8302111B2 (en) | 2003-11-24 | 2012-10-30 | Time Warner Cable Inc. | Methods and apparatus for hardware registration in a network device |
| US7266726B1 (en) * | 2003-11-24 | 2007-09-04 | Time Warner Cable Inc. | Methods and apparatus for event logging in an information network |
| US7107411B2 (en) * | 2003-12-16 | 2006-09-12 | International Business Machines Corporation | Apparatus method and system for fault tolerant virtual memory management |
| US9213538B1 (en) | 2004-02-06 | 2015-12-15 | Time Warner Cable Enterprises Llc | Methods and apparatus for display element management in an information network |
| US7251755B2 (en) * | 2004-02-13 | 2007-07-31 | Intel Corporation | Apparatus and method for maintaining data integrity following parity error detection |
| US8078669B2 (en) | 2004-02-18 | 2011-12-13 | Time Warner Cable Inc. | Media extension apparatus and methods for use in an information network |
| US7437617B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers |
| US7418629B2 (en) * | 2005-02-11 | 2008-08-26 | International Business Machines Corporation | Synchronizing triggering of multiple hardware trace facilities using an existing system bus |
| US20060184837A1 (en) * | 2005-02-11 | 2006-08-17 | International Business Machines Corporation | Method, apparatus, and computer program product in a processor for balancing hardware trace collection among different hardware trace facilities |
| US7437618B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing |
| US7904760B2 (en) * | 2005-07-06 | 2011-03-08 | Cisco Technology, Inc. | Method and system for using presence information in error notification |
| US7500141B2 (en) * | 2005-11-29 | 2009-03-03 | International Business Machines Corporation | Saving state data in parallel in a multi-processor system |
| US7941610B2 (en) | 2006-04-27 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Coherency directory updating in a multiprocessor computing system |
| US7805634B2 (en) * | 2006-09-16 | 2010-09-28 | International Business Machines Corporation | Error accumulation register, error accumulation method, and error accumulation system |
| US8370818B2 (en) | 2006-12-02 | 2013-02-05 | Time Warner Cable Inc. | Methods and apparatus for analyzing software interface usage |
| US8127181B1 (en) * | 2007-11-02 | 2012-02-28 | Nvidia Corporation | Hardware warning protocol for processing units |
| US8250308B2 (en) * | 2008-02-15 | 2012-08-21 | International Business Machines Corporation | Cache coherency protocol with built in avoidance for conflicting responses |
| US9274909B2 (en) | 2013-08-23 | 2016-03-01 | Scaleo Chip | Method and apparatus for error management of an integrated circuit system |
| US11716558B2 (en) | 2018-04-16 | 2023-08-01 | Charter Communications Operating, Llc | Apparatus and methods for integrated high-capacity data and wireless network services |
| US11044597B2 (en) | 2018-08-07 | 2021-06-22 | Charter Communications Operating, Llc | Apparatus and methods for registration and operation in wireless networks |
| EP3864917A4 (en) | 2018-10-12 | 2022-07-06 | Charter Communications Operating, LLC | APPARATUS AND METHODS FOR IDENTIFYING CELLS IN WIRELESS NETWORKS |
| US10980025B2 (en) | 2019-01-31 | 2021-04-13 | Charter Communications Operating, Llc | Methods and apparatus for frequency transition management in a quasi-licensed wireless system |
| US11129171B2 (en) | 2019-02-27 | 2021-09-21 | Charter Communications Operating, Llc | Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system |
| US11026205B2 (en) | 2019-10-23 | 2021-06-01 | Charter Communications Operating, Llc | Methods and apparatus for device registration in a quasi-licensed wireless system |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4674038A (en) * | 1984-12-28 | 1987-06-16 | International Business Machines Corporation | Recovery of guest virtual machines after failure of a host real machine |
| US5019971A (en) * | 1987-04-13 | 1991-05-28 | Prime Computer, Inc. | High availability cache organization |
| DE68923863T2 (de) * | 1989-01-13 | 1996-03-28 | Ibm | Ein-/Ausgabecachespeicherung. |
| JPH02297228A (ja) * | 1989-05-11 | 1990-12-07 | Fujitsu Ltd | 障害情報格納方式 |
| US5113514A (en) * | 1989-08-22 | 1992-05-12 | Prime Computer, Inc. | System bus for multiprocessor computer system |
| US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
| US5253359A (en) * | 1990-06-11 | 1993-10-12 | Supercomputer Systems Limited Partnership | Control and maintenance subsystem network for use with a multiprocessor computer system |
| US5649090A (en) * | 1991-05-31 | 1997-07-15 | Bull Hn Information Systems Inc. | Fault tolerant multiprocessor computer system |
| EP0553743A1 (en) * | 1992-01-31 | 1993-08-04 | Motorola, Inc. | A cache controller |
| US5629950A (en) * | 1992-04-24 | 1997-05-13 | Digital Equipment Corporation | Fault management scheme for a cache memory |
| US5361267A (en) * | 1992-04-24 | 1994-11-01 | Digital Equipment Corporation | Scheme for error handling in a computer system |
| US5426754A (en) * | 1992-05-26 | 1995-06-20 | International Business Machines Corporation | Cross-interrogate method and means for combined scaler and vector processing system |
| US5355471A (en) * | 1992-08-14 | 1994-10-11 | Pyramid Technology Corporation | Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort |
| US5428766A (en) * | 1992-12-01 | 1995-06-27 | Digital Equipment Corporation | Error detection scheme in a multiprocessor environment |
| US5675579A (en) * | 1992-12-17 | 1997-10-07 | Tandem Computers Incorporated | Method for verifying responses to messages using a barrier message |
| US5418794A (en) * | 1992-12-18 | 1995-05-23 | Amdahl Corporation | Error determination scan tree apparatus and method |
| GB2276739A (en) * | 1993-03-30 | 1994-10-05 | Ibm | System for storing persistent and non-persistent queued data. |
| US5406504A (en) * | 1993-06-30 | 1995-04-11 | Digital Equipment | Multiprocessor cache examiner and coherency checker |
| US5491788A (en) * | 1993-09-10 | 1996-02-13 | Compaq Computer Corp. | Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error |
| US5463768A (en) * | 1994-03-17 | 1995-10-31 | General Electric Company | Method and system for analyzing error logs for diagnostics |
| US5608878A (en) * | 1994-10-03 | 1997-03-04 | International Business Machines Corporation | Dual latency status and coherency reporting for a multiprocessing system |
| US5581713A (en) * | 1994-10-25 | 1996-12-03 | Pyramid Technology Corporation | Multiprocessor computer backplane bus in which bus transactions are classified into different classes for arbitration |
| US5615335A (en) * | 1994-11-10 | 1997-03-25 | Emc Corporation | Storage system self-test apparatus and method |
| US5557748A (en) * | 1995-02-03 | 1996-09-17 | Intel Corporation | Dynamic network configuration |
| US5581729A (en) * | 1995-03-31 | 1996-12-03 | Sun Microsystems, Inc. | Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system |
| US5619644A (en) * | 1995-09-18 | 1997-04-08 | International Business Machines Corporation | Software directed microcode state save for distributed storage controller |
-
1996
- 1996-07-01 US US08/674,276 patent/US5862316A/en not_active Expired - Lifetime
-
1997
- 1997-06-27 EP EP97304598A patent/EP0817051B1/en not_active Expired - Lifetime
- 1997-06-27 DE DE69727856T patent/DE69727856T2/de not_active Expired - Fee Related
- 1997-06-30 JP JP9208224A patent/JPH10133917A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014197402A (ja) * | 2014-05-26 | 2014-10-16 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
| US10511502B2 (en) | 2016-06-15 | 2019-12-17 | Fujitsu Limited | Information processing method, device and recording medium for collecting logs at occurrence of an error |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0817051A3 (en) | 2001-03-28 |
| DE69727856D1 (de) | 2004-04-08 |
| EP0817051A2 (en) | 1998-01-07 |
| DE69727856T2 (de) | 2005-02-10 |
| US5862316A (en) | 1999-01-19 |
| EP0817051B1 (en) | 2004-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10133917A (ja) | コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システム | |
| JP3987162B2 (ja) | 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム | |
| US5734922A (en) | Multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
| EP0818733B1 (en) | A multiprocessing system configured to perform software initiated prefetch operations | |
| US5749095A (en) | Multiprocessing system configured to perform efficient write 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 | |
| US5860159A (en) | Multiprocessing system including an apparatus for optimizing spin--lock operations | |
| US5881303A (en) | Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode | |
| EP0817074B1 (en) | Multiprocessing system employing a three-hop communication protocol | |
| EP0817070B1 (en) | Multiprocessing system employing a coherency protocol including a reply count | |
| US5958019A (en) | Multiprocessing system configured to perform synchronization operations | |
| JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム |