JP2002518734A - マルチプロセッサ・システム用のブリッジにおけるメモリ・ページ変更のトラッキング - Google Patents

マルチプロセッサ・システム用のブリッジにおけるメモリ・ページ変更のトラッキング

Info

Publication number
JP2002518734A
JP2002518734A JP2000555159A JP2000555159A JP2002518734A JP 2002518734 A JP2002518734 A JP 2002518734A JP 2000555159 A JP2000555159 A JP 2000555159A JP 2000555159 A JP2000555159 A JP 2000555159A JP 2002518734 A JP2002518734 A JP 2002518734A
Authority
JP
Japan
Prior art keywords
bus
bridge
memory
processing set
processing
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
Application number
JP2000555159A
Other languages
English (en)
Inventor
ローリンソン,スティーブン
オイラキン,フェミ・エイ
ガーネット,ポール・ジェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2002518734A publication Critical patent/JP2002518734A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 マルチプロセッサ・システム用のブリッジは、第1の処理セットのI/Oバスと、第2の処理セットのI/Oバスと、デバイス・バスとに接続するためのバス・インタフェースを含む。ブリッジ制御機構は、デバイス・バス上のデバイスから処理セットのメモリへの直接メモリ・アクセスを許可し、ブリッジへのアクセスに対して第1と第2の処理セット間を第1のスプリット・モードで調停し、第1および第2の処理セットのロックステップ動作を第2の複合モードで監視するように動作可能である。ダーティRAM機構は、処理セット・メモリの複数の領域のそれぞれにダーティ・インジケータ(例えばビット)を規定し、ダーティ・インジケータは、そのメモリ領域がDMAアクセスによって書き込まれたときに所定の値にセットされる。処理セットの一方は、スプリット・モードでプライマリ処理セットとして、そのメモリの内容を他の処理セットにコピーできるように、かつ、対応するダーティ指示がセットされたことによって書込みがあったとダーティRAM機構中で識別された、そのメモリのそれらの領域を再コピーするように動作可能とすることができる。ブリッジ制御機構は、ダーティRAM機構中で識別されたメモリ領域の内容のコピーが完了して、そのように識別された領域がそれ以上ないときに、プライマリ処理セットからの同期化リセット動作に応答して、スプリットモードから複合モードに移行することができる。

Description

【発明の詳細な説明】
【0001】 (発明の背景) 本発明は、I/Oデバイス・バスと通信する第1および第2の処理セット(そ
れぞれが1つまたは複数のプロセッサを含むことができる)を含むマルチプロセ
ッサ・コンピュータ・システムに関する。
【0002】 本出願は、2つ以上のプロセッサ・セットがロックステップでI/Oデバイス
・バスと通信する必要があり、システム全体の誤った動作を識別するためにロッ
クステップ・エラーを識別できる、フォールト・トレラント(故障許容)なコン
ピュータ・システムに対して特に適用される。
【0003】 このようなフォールト・トレラントなコンピュータ・システムでは、障害を識
別できるようにするだけでなく、高水準のシステム稼働率(system availabilit
y)実現できる構造を提供することも目的である。高水準のシステム稼働率を実
現するには、このようなシステムがロックステップ・エラーから自動的に回復し
ようとすることが望ましいであろう。
【0004】 このような自動回復プロセスの一部として、ロックステップでリスタートする
ために処理セットの状態を共通のステータスに再統合することが必要である。こ
れを達成する手法は、処理セットのうちの一方の完全な状態(すなわち「よい」
状態)を他方の処理セットにコピーすることである。これは、両方のプロセッサ
のメモリの内容が、ロックステップ・モードでリスタートしようとする前の時点
で確実に同じであるようにすることを必要とする。
【0005】 しかし、一方の処理セットから他方の処理セットにメモリの内容をコピーする
ことの問題は、この間に、I/Oバスに接続されたデバイスが処理セットのメモ
リに直接メモリ・アクセス(DMA)を行っている可能性があることである。す
でにコピーされたメモリ・エリアに書込みが行われると、それによって、コピー
の最後に処理セット中のメモリ状態が同じでなくなる。
【0006】 プロセッサ中にダーティRAMを採用して、ダーティRAMが最後にリセット
されてから変更されたメモリ・エリアを示すことが提案されてきた。ダーティR
AMは、メモリのブロックまたはページごとにビットを有するビット・マップで
あり、このビットは、当該のメモリ・エリアへの書込みアクセスが行われるとき
にセットされる。しかし、他の処理セットのダーティRAMへのアクセスが困難
であり、遅れるために、処理セット中にダーティRAMを設けることは、プロセ
ッサのメモリを元の状態に戻す問題に対して信頼性のある解決法を提供しないで
あろう。
【0007】 本発明の一目的は、第1および第2の処理セット中の並行状態の回復を達成す
る際に直接メモリ・アクセスに対処する問題への解決法を提供することである。
【0008】 (発明の概要) 本発明の特定かつ好ましい態様は、添付の独立クレームおよび従属クレームに
述べる。従属クレームからの特徴の組合せを、特許請求の範囲に明示的に述べる
ようにだけではなく適切に、独立クレームの特徴と組み合わせることができる。
【0009】 本発明の一態様によれば、マルチプロセッサ・システム用のブリッジが提供さ
れる。ブリッジは、第1の処理セットのI/Oバスと、第2の処理セットのI/
Oバスと、デバイス・バスとに接続するバス・インタフェースを備える。ブリッ
ジ制御機構が、デバイス・バス上のデバイスから処理セットのメモリへの直接メ
モリ・アクセスを許可し、ブリッジへのアクセスに対して第1と第2の処理セッ
ト間を第1のスプリット・モードで調停し、第1および第2の処理セットのロッ
クステップ動作を第2の複合モードで監視するように動作可能である。デバイス
・バス上のデバイスによる直接メモリ・アクセスによって変更されたプロセッサ
・セット・メモリの領域を監視するために、ダーティRAM機構がブリッジ中に
提供される。
【0010】 したがって、本発明の一実施態様は、デバイス・バス上のデバイスによって開
始されたDMA動作によって変更されたメモリ部分を監視することができる。ブ
リッジ中にダーティRAM機構を設けることによって、処理セットからダーティ
RAMへのアクセスを容易にする。再統合プロセスはいくつかのパスを含むこと
ができ、これらの各パスの間に、ダーティにされたメモリが、よい処理セットか
ら不良な(ターゲット)処理セットにコピーされる。再統合のプロセスの間に、
よい処理セットはダーティRAMにアクセスして、いずれかのパス上でコピーす
べき、ダーティにされたメモリ(それ自体の中のメモリまたはターゲット処理セ
ットのメモリ)を決定することができる。
【0011】 上に参照されるバス・インタフェースは、ブリッジの別々のコンポーネントで
ある必要はなく、ブリッジの他のコンポーネント中に組み込むこともでき、実際
、単に当該のバスのライン用の接続とすることもできることに留意されたい。
【0012】 本発明の一実施態様では、ダーティRAM機構は、処理セット・メモリの複数
の領域のそれぞれにダーティ・インジケータ(例えばビット)を決め、ダーティ
・インジケータは、メモリのその領域がDMAアクセスによって書き込まれたと
きに所定の値にセットされる。
【0013】 処理セットは、処理セットの一方がスプリット・モードでプライマリ処理セッ
トとして、かつ、そのメモリの内容を他の処理セットにコピーできるように動作
可能であるように構成することができる。このコピー動作中にいくつかのメモリ
領域が直接メモリ・アクセスによって書き込まれた場合、コピー動作の最後の状
態は、様々な処理セット中で同じでないことになる。この結果、プライマリ処理
セットは、対応するダーティ指示がセットされたことによって書込みがあったと
ダーティRAM機構中にマークされた、そのメモリのそれらの領域を再コピーす
る。このプロセスは必要とされるパスの数だけ繰り返すことができる。
【0014】 本発明の一実施態様では、ブリッジ制御機構は、第1および第2のプロセッサ
・バス・インタフェースおよびデバイス・バス・インタフェースに接続された調
停装置を備え、調停装置は、第1および第2の処理セットとデバイス・バス上の
デバイスとによるブリッジの使用を調停するようにスプリット・モードで動作可
能に構成される。ブリッジ制御機構は、ダーティRAM機構中で識別されたメモ
リ領域の内容のコピーが完了して、そのように識別された領域がそれ以上ないと
きに、プライマリ処理セットからの同期化リセット動作に応答して、スプリット
動作モードから複合動作モードに移行するように動作可能に構成される。
【0015】 ダーティRAM機構は、ブリッジ中のランダム・アクセス・メモリ中に構成さ
れたダーティRAMを備えることができる。あるいは、別々のハードウェア・メ
モリ・デバイスを設けてもよい。ダーティRAMの内容は、処理セットによって
読み取られる際にクリアすることができる。あるいは、2つのダーティRAMを
設けることもでき、2つのダーティRAMは、トグル・モードで動作可能であり
、一方が書き込まれる間に他方が読み取られる。任意選択で、それぞれのダーテ
ィRAMを各処理セットに設けることもできる。
【0016】 各処理セットのI/Oバスに接続するための2つ以上のプロセッサ・バス・イ
ンタフェースがあってもよい。
【0017】 本発明の別の態様によれば、I/Oバスを有する第1の処理セットと、I/O
バスを有する第2の処理セットと、デバイス・バスと、デバイス・バス上の少な
くとも1つのデバイスと、前述のブリッジとを備えたコンピュータ・システムが
提供される。各処理セットは、少なくとも1つのプロセッサ、メモリ、および処
理セットI/Oバス・コントローラを備える。
【0018】 本発明の他の態様によれば、前述のマルチプロセッサ・システムを操作する方
法が提供され、この方法は、 デバイス・バス上の少なくとも1つのデバイスから処理セットのメモリへの直
接メモリ・アクセスを許可すること、および ブリッジ中のダーティRAM中で、デバイス・バス上のデバイスによって書き
込まれたプロセッサ・セット・メモリの領域を監視することを含む。
【0019】 再統合の方法は、メモリ・エリアを第1の処理セットから第2の処理セットに
コピーすべきエリアの複数のパスを含むことができ、コピーすべきエリアは、対
応するダーティRAMビットがセットされたメモリ・エリアによって識別される
【0020】 再統合の方法は、直接メモリ・アクセスを妨げて、複合モードすなわちロック
ステップ・モードでリスタートするセットを含むことができる。
【0021】 (好ましい実施形態の説明) 図1は、複数のCPUset(処理セット)14および16と、1つのブリッ
ジ12とを備えるフォールトトレラントなコンピューティング・システム10の
概要図である。図1に示すように、2つの処理セット14および16を示してあ
るが、別の実施形態では3つ以上の処理セットを備えることがある。ブリッジ1
2は、処理セットとデバイス28、29、30、31および32などのI/Oデ
バイスの間でインタフェースを形成している。本文書においては、「処理セット
(processing set)」という用語を使用して、共通の出力と入力
を送出しかつ受け取り、メモリを含むこともある、1つまたは複数のプロセッサ
からなるグループを表している。上述した代替の用語「CPUset」を代わり
に使用することも可能であり、これらの用語は本文書の全体において相互に交換
可能であることに留意すべきである。さらに、用語の「ブリッジ(bridge
)」は、同じタイプまたは異なるタイプの2つ以上のバスを相互接続するに適し
た、任意のデバイス、装置、あるいは配置を意味していることに留意すべきであ
る。
【0022】 第1の処理セット14は、第1の処理セットのI/Oバス(PAバス)24、
この例では周辺コンポーネント相互接続(PCI)バス、を介してブリッジ12
に接続されている。第2の処理セット16は、PAバス24(すなわち、この例
ではPCIバス)と同じタイプの第2の処理セットのI/Oバス(PBバス)2
6を介してブリッジ12に接続されている。I/Oデバイスは、デバイスI/O
バス(Dバス)22、この例ではここもPCIバス、を介してブリッジ12に接
続されている。
【0023】 記載した具体的な例では、バス22、24および26がすべてPCIバスであ
るが、これは例示のためだけであって、別の実施形態では他のバス・プロトコル
を使用することがあり、またDバス22はPAバスおよびPBバス(Pバス)2
4および26のプロトコルと異なるプロトコルを有することもある。
【0024】 処理セット14および16、並びにブリッジ12は、これらに対してクロック
信号線21により接続されている共通クロック20の制御の下で同期して動作す
ることができる。
【0025】 Ethernet(E−NET)のインタフェース28および小型コンピュー
タ・システム・インタフェース(SCSI)のインタフェース29を含むデバイ
スのうちの幾つかはデバイス・バス22と永続的に接続されているが、I/Oデ
バイス30、31および32などその他のI/Oデバイスは、個々に切り替えを
受けるスロット33、34および35としてホット・インサート可能である。ス
ロット33、34および35に対してダイナミック式の電界効果トランジスタ(
FET)スイッチングを提供することができ、これによりデバイス30、31お
よび32などのデバイスに対するホット・インサート機能が可能となる。FET
を設けることにより、アクティブ状態にあるデバイスのみをスイッチオンとし、
これによりバスの全体の実効長を減少させて、Dバス22の長さを長くすること
ができる。Dバス22に接続できるI/Oデバイスの数、並びに、これらI/O
デバイス用に設けられるスロットの数は、具体的な設計要件に一致させるための
特定の実施に従って調整することができる。
【0026】 図2は、図1に図示したタイプのブリッジ構造を利用するフォールトトレラン
トなコンピュータの具体的な実施概要図である。図2では、そのフォールトトレ
ラントなコンピュータ・システムは、接続できるI/Oデバイスの数を増加させ
、さらに信頼性および冗長性を向上させるため、第1および第2のI/Oマザー
ボード(MB40およびMB42)上に複数の(この図では4つの)ブリッジ1
2を含んでいる。したがって、図2に示す実施形態では、2つの処理セット14
および16の各々は、それぞれ処理セットのボード44および46の上に備えら
れ、この処理セットのボード44および46によりI/OマザーボードMB40
およびMB42を「ブリッジ」している。第1の、マスタ・クロック源20Aは
第1のマザーボード40上にマウントされており、また第2の、スレーブ・クロ
ック源20Bは第2のマザーボード42上にマウントされている。クロック信号
は、それぞれの結線(図2では図示せず)を介して処理セットのボード44およ
び46に供給されている。
【0027】 第1および第2のブリッジ12.1および12.2は、第1のI/Oマザーボ
ード40上にマウントされている。第1のブリッジ12.1は、それぞれPバス
24.1および26.1によって処理セット14および16に接続されている。
同様に、第2のブリッジ12.2は、それぞれPバス24.2および26.2に
よって処理セット14および16に接続されている。ブリッジ12.1はI/O
データ(Dバス)22.1に接続され、またブリッジ12.2はI/Oデータ(
Dバス)22.2に接続されている。
【0028】 第3および第4のブリッジ12.3および12.4は、第2のI/Oマザーボ
ード42上にマウントされている。ブリッジ12.3は、それぞれPバス24.
3および26.3によって処理セット14および16に接続されている。同様に
、ブリッジ4は、それぞれPバス24.4および26.4によって処理セット1
4および16に接続されている。ブリッジ12.3はI/Oデータ(Dバス)2
2.3に接続され、またブリッジ12.4はI/Oデータ(Dバス)22.4に
接続されている。
【0029】 図2に示すに示す配置により、Dバス22.1、22.2、22.3および2
2.4を介して多数のI/Oデバイスを2つの処理セット14および16に接続
することが可能になり、利用可能なI/Oデバイスの範囲を拡大するか、または
高水準の冗長性を提供するかのいずれか、あるいは、この両者を実現することが
できることが分かる。
【0030】 図3は、図1の処理セット14などの処理セットに対する可能な構成のうちの
1つに関する概要図である。処理セット16は、同じ構成を取ることもあり得る
。図3では、複数のプロセッサ(この図では、4つのプロセッサ)52が1つま
たは複数のバス54によって処理セットのバス・コントローラ50に接続されて
いる。図3に示すように、1つまたは複数の処理セットの出力バス24は、処理
セットのバス・コントローラ50に接続されており、処理セットの出力バス24
の各々はそれぞれに対するブリッジ12に接続されている。例えば、図1の配置
では、処理セットI/Oバス(Pバス)24を1つだけしか設けていないが、図
2の配置では、こうした処理セットI/Oバス(Pバス)24を4つ設けている
。図3に示す処理セット14では、個々のプロセッサは共通のメモリ56を用い
て動作しており、共通のPバス24上で入力を受け取り、かつ出力を供給してい
る。
【0031】 図4は、図1の処理セット14などの処理セットに対する別の構成である。こ
の図では、プロセッサ/メモリの複数のグループ61が共通内部バス64に接続
されている。プロセッサ/メモリのグループ61の各々は、1つまたは複数のプ
ロセッサ62と、内部のグループ・バス63に接続された付属のメモリ66とを
含んでいる。インタフェース65により、内部のグループ・バス63を共通内部
バス64に接続させている。したがって、図4に示す配置では、個々の処理グル
ープでは、プロセッサ62と付属メモリ66のそれぞれが共通内部バス64を介
して処理セットのバス・コントローラ60に接続されている。インタフェース6
5により、1つの処理グループのプロセッサ62は、自身のローカル・メモリ6
6内のデータに対する操作だけではなく、処理セット14の範囲内の別の処理グ
ループ61のメモリ内のデータに対しても操作をすることができる。処理セット
のバス・コントローラ60は、共通内部バス64とそのブリッジ12に接続され
ている処理セットのI/Oバス(Pバス)24との間の共通インターフェースと
なっている。ここで留意すべきことは、図4に示した処理グループ61は2つだ
けであるが、この構造により処理グループの数が2つに限定されるわけではない
ことを理解されたい。
【0032】 図5は、図1の処理セット14などの処理セットに対する別の構成を図示した
ものである。この図では、単一の処理セットが、単一のプロセッサ72と、共通
バス74を介して処理セットのバス・コントローラ70に接続されている付属メ
モリ76とを含んでいる。この処理セットのバス・コントローラ70が、内部バ
ス74とブリッジ12への接続のための処理セットのI/Oバス(Pバス)24
の間のインタフェースとなっている。
【0033】 したがって、図3、4および5から、処理セットが多くの異なる形態をもつこ
とができること、並びに具体的な処理セットの構造に関しては、具体的なアプリ
ケーションの例に関する処理要件および必要とする冗長性の程度に基づいて具体
的に選択することができることを理解されたい。以下の記載では、処理セット1
4および16が図3に示すような構造を有するものと仮定する、しかしながら処
理セットについては別の形態とすることも可能であることを理解されたい。
【0034】 ブリッジ12は、多くの動作モードで動作可能である。これらの動作モードは
、以下でより詳細に記載する。しかし、ブリッジの構造に関する全般的な理解を
助けるために、2つの動作モードについて、ここで簡単に要約することにする。
第1の、複合モードでは、ブリッジ12は、処理セット14および16(それぞ
れPAバスおよびPBバス24および26を介する)と、デバイス(Dバス22
を介する)との間でアドレスおよびデータをルーティングするように動作可能で
ある。この複合モードでは、処理セット14と16が発生させるI/Oサイクル
を比較し、この2つの処理セットが正しい動作をしていることを確認する。比較
不可になると、ブリッジ12は強制的に、デバイスI/Oを阻止し、診断情報を
収集するモードであるエラー制限モード(EState)になる。第2の、スプ
リット・モードでは、ブリッジ12は処理セット14および16のうちの1つか
らのアドレスおよびデータをルーティングし、かつ調停して、Dバス22におよ
び/または処理セット16および14のそれぞれの相手方に渡す。この動作モー
ドでは、処理セット14および16は同期しておらず、I/O比較は行われない
。さらに、両モードにおいて、DMA動作は許可されている。上記のように、複
合モードやスプリット・モードを含め様々な動作モードについて、以下で詳細に
記載する。しかし、ここでは続いて、ブリッジ12の一例の基本構造に関して記
載する。
【0035】 図6は、図1のブリッジ12の機能概要図である。第1および第2の処理セッ
トのI/Oバス・インタフェース(PAバス・インタフェース84およびPBバ
ス・インタフェース86)は、それぞれPAバスおよびPBバス24および26
に接続されている。デバイスのI/Oバス・インタフェース(Dバス・インタフ
ェース82)は、Dバス22に接続されている。PAバス・インタフェース、P
Bバス・インタフェースおよびDバス・インタフェースは、必ずしも別々の要素
として構成する必要はなく、ブリッジの別の要素内に組み込むことも可能である
ことに留意すべきである。したがって、本文書のコンテクストの範囲でバス・イ
ンタフェースについて述べている場合、必ずしも特定のコンポーネントを個別に
存在させる必要はなく、むしろ、必要となるのは例えば、当該のバスの線に対す
る物理的または論理的なブリッジ結線によってブリッジを当該のバスに接続する
機能である。
【0036】 ルーティング(以下においては、ルーティング・マトリックスという用語を用
いる)80は、第1の内部経路94を介してPAバス・インタフェース84に接
続され、また第2の内部経路96を介してPBバス・インタフェース86に接続
されている。ルーティング・マトリックス80はさらに、第3の内部経路92を
介してDバス・インタフェース82に接続されている。これにより、ルーティン
グ・マトリックス80は、PAバスおよびPBバス・インタフェース84および
86の間で双方向にI/Oバスのトランザクションのルーティングを実施するこ
とができる。さらに、ルーティング・マトリックス80は、PAバスおよびPB
バス・インタフェースのうちの1つまたはこれらの両者、並びにDバス・インタ
フェース82の間で双方向性のルーティングを提供することができる。ルーティ
ング・マトリックス80はさらに、内部経路100を介して記憶制御ロジック9
0に接続されている。記憶制御ロジック90はブリッジ・レジスタ110へのア
クセスおよびランダム・アクセス・メモリ(SRAM)126へのアクセスを制
御している。したがって、ルーティング・マトリックス80はさらに、PAバス
・インタフェース、PBバス・インタフェースおよびDバス・インタフェース8
4、86および82と、記憶制御ロジック90との間で双方向性のルーティング
を提供するように動作可能である。ルーティング・マトリックス80は、ブリッ
ジ制御ロジック88により制御経路98および99を介して制御を受けている。
ブリッジ制御ロジック88は、内部経路93、95および97上の制御信号、デ
ータおよびアドレスに応答し、またクロック線21上のクロック信号に応答する
【0037】 本発明のこの実施形態では、Pバス(PAバス24およびPBバス26)の各
々はPCIプロトコルの下で動作する。処理セットのバス・コントローラ50(
図3参照)もまた、PCIプロトコルの下で動作する。したがって、PAバスお
よびPBバス・インタフェース84および86の各々により、Dバス22または
記憶サブシステム90内のブリッジの内部メモリおよびレジスタに転送されるデ
ータ、並びにこれらから伝送されるデータに関するマスタとスレーブの両動作を
行う互換性のあるインタフェースで必要となる機能のすべてを提供できる。バス
・インタフェース84および86により、ブリッジのエラー状態(EState
)への移行に関する診断情報あるいはI/Oエラーの検出に関する診断情報を記
憶サブシステム90内の内部ブリッジ・ステータス・レジスタに提供できる。
【0038】 デバイス・バス・インタフェース82は、PAバスおよびPBバス84および
86のうちの1つに対するデータ転送およびこれらの1つからのデータの転送の
ための、PCIに準拠したマスタおよびスレーブ・インタフェースで必要となる
機能のすべてを実行する。Dバス82は、直接記憶アクセス(DMA)転送の間
に、EState状態への移行に関する診断情報あるいはI/Oエラーの検出に
関する診断情報を、ブリッジの記憶サブシステム90内の内部ステータス・レジ
スタに提供するように動作可能である。
【0039】 図7は、ブリッジ・レジスタ110およびSRAM124をより詳細に図示し
たものである。記憶制御ロジック90は経路(例えば、バス)112を介して多
数のレジスタ・コンポーネント114、116、118、120に接続されてい
る。さらに、記憶制御ロジックは経路(例えばバス)128を介してSRAM1
26に接続されており、このSRAM126内でポスティング済み書き込みバッ
ファ・コンポーネント122およびダーティ(dirty)RAMコンポーネン
ト124がマッピングを受ける。コンポーネント114、116、118、12
0、122および124の具体的な構成を図7に示しているが、これらのコンポ
ーネントは別の方式により、共通のメモリ(例えば、その経路112/128が
メモリの領域に対する内部のアドレス付けにより形成されている、SRAM12
6などのランダム・アクセス・メモリ)の領域として規定されている別のコンポ
ーネントを備えるようにして構成することも可能である。図7に示すように、ポ
スティング済み書き込みバッファ122およびダーティRAM124はRAMメ
モリ126の様々な領域に対してマッピングされ、一方レジスタ114、116
、118および120はRAMメモリから分離して構成されている。
【0040】 制御およびステータス・レジスタ(CSR)114は、ブリッジの様々な動作
モードを可能にし、EStateおよびI/Oエラーに関する診断情報の捕捉を
可能にし、PCIスロットおよびDバス22に接続されたデバイスに対する処理
セットのアクセスを制御する内部レジスタを形成している。これらのレジスタは
、ルーティング・マトリックス80からの信号によりセットされる。
【0041】 異種データ・レジスタ(DDR)116は、異なる処理セットが不確定データ
・イベントを処理することができるように、異種データを包含するためのロケー
ションを提供できる。これらのレジスタはPAバスおよびPBバスからの信号に
よりセットされる。
【0042】 ブリッジ・デコード・ロジックにより、データ・コンパレータをディスエイブ
ルにすると共にそれぞれが処理セット14および16の各々に対するDDRであ
る2つのDDR116に対して書き込みを許可するような共通の書き込みが可能
となる。
【0043】 次いで、DDRのうちの選択した1つは、処理セット14および16により非
同期的に読み取られる。このため、DDRは、あるロケーションを処理セット(
14/16)の1つから別の処理セット(16/14)に反映させるメカニズム
を提供できる。
【0044】 スロット応答レジスタ(SSR)118は、Dバス22上のデバイス・スロッ
トの所有権を決定し、これによりDMAを適当な処理セットにルーティングする
ことができる。これらのレジスタはアドレス・デコード・ロジックにリンクされ
ている。
【0045】 切断レジスタ120は、ブリッジ内でデータが別のバスに至る途中にある間に
アボートされたI/Oサイクルのデータ・フェーズを格納するために使用される
。切断レジスタ120は、ターゲット・デバイスがトランザクションを開放した
時点、またはEStateが検出された場合には、ブリッジ内でキューに入れら
れているすべてのデータを受け取る。これらのレジスタはルーティング・マトリ
ックス80に接続されている。ルーティング・マトリックスは、データワードお
よびバイト・イネーブルを最大で3つまでキューに入れることができる。初期ア
ドレスが同じであると決定されている場合、ブリッジと宛先(すなわち、ターゲ
ット)との間でデータがやり取りされるごとに繰り上げられるアドレスが、アド
レス・ターゲット・コントローラにより引き出される。書き込み装置(例えば、
プロセッサI/O書き込み、またはDVMA(DバスからPバスへのアクセス)
)がデータをターゲットに書き込んでいる場合、エラーが起きたときにはこのデ
ータをブリッジ内で捕らえることができる。したがって、エラーが起きたときに
は、このデータは切断レジスタ120内に格納される。次いで、これらの切断レ
ジスタはEStateから修復に関するアクセスを受け、EStateが開始し
たときに継続中であった書き込みサイクルまたは読み取りサイクルと関連付けら
れたデータが修復される。
【0046】 分離して示しているが、DDR116、SSR118および切断レジスタはC
SR114の一体をなす一部を形成することがある。
【0047】 EStateおよびCSR114のエラーにより、異常なデータのしるしを伴
ってPバス24および26上で異常なサイクルが捕捉される。EStateへの
移行に続いて、Pバスに対して起動された書き込みのすべてがポスティング済み
書き込みバッファ122内にログ記録される。これらは、処理セットのバス・コ
ントローラ50内にポスティングされている別の書き込みとすることができ、ま
たこの書き込みは、EState割込がプロセッサのPバス24および26への
書き込みの実行を停止させる前に、ソフトウェアにより起動することができる。
【0048】 処理セット14および16のメイン・メモリ56のうちのどのページがDバス
22上の1つまたは複数のデバイスからの直接記憶アクセス(DMA)のトラン
ザクションにより修正を受けているのかを示すために、ダーティRAM124が
用いられる。各ページ(例えば8Kのページの各々)は、DMA書き込みが起き
たときにセットされるダーティRAM124内の単一のビットによりマークされ
、処理セット14および16のプロセッサ52によりダーティRAM124上で
起動される読み取りおよびクリア・サイクルによってクリアすることができる。
【0049】 ダーティRAM124とポスティング済み書き込みバッファ122の双方は、
ブリッジ12のメモリ124内にマッピングすることができる。このメモリ空間
には、通常の読み取りおよび書き込みサイクルの間にテスト目的でアクセスする
ことができる。
【0050】 図8は、図6に示すブリッジ制御ロジック88の機能概要図である。
【0051】 Dバス22に接続されたデバイスはすべて、地図的にアドレス付けされている
。したがって、ブリッジは各スロット用の別々のFETをイネーブルするのに必
要となるデコード処理を、これらのスロットに対するアクセスの開始前に実行す
ることができる。
【0052】 アドレス・デコード・ロジック136および138により実行されるアドレス
のデコード処理では本質的に以下の4つの基本アクセス・タイプが可能である。 ・一方の処理セット(例えば、図1の処理セット14)によるもう一方の処理
セット(例えば、図1の処理セット16)への非同期の(すなわち、複合モード
でない)アクセス。この事例では、そのアクセスが、PAバス・インタフェース
84からPBバス・インタフェース86までルーティングされる。 ・Dバス22上のI/Oデバイスに対する、処理セット14および16のうち
の1つによるスプリット・モードでのアクセス、または処理セット14および1
6の両者による複合モードでのアクセス。この事例では、そのアクセスが、Dバ
ス・インタフェース82を介してルーティングされる。 ・Dバス22上のデバイスによる処理セット14および16のうちのいずれか
、あるいはこの両者に対するDMAアクセス。このアクセスは複合モードでは処
理セット14および16の両者に向けられたものであり、非同期の場合には関連
する処理セット14または16に向けられたものであり、またスプリット・モー
ドではデバイスが配置されているスロットを所有している処理セット14または
16に向けられたものとなる。 ・I/Oスロット内のデバイスに対するPCI構成アクセス。
【0053】 上記のように、地図的なアドレス付けが利用されている。したがって、例えば
、マザーボードAの上のスロット0は、処理セット14または処理セット16に
よって参照を受けたときに同じアドレスを有している。
【0054】 地図的アドレス付けは、PCIスロットのFET切り替えと組み合わせて用い
られる。上記の構成アクセスの間で、個別のデバイス選択信号がFETにより分
離されていないデバイスに提供される。FET信号を用いて正しいカードをイネ
ーブルすることができるので切り替えPCIスロットに単一のデバイス選択信号
を提供することができる。FETをスロットごとに個別に切り替えるために、別
々のFET切り替え線がスロットの各々に用意されている。
【0055】 SSR118はCSRレジスタ114内に組み込むことが可能であり、アドレ
ス・デコード機能に関連付けられている。SSR118は、以下でより詳細に記
載するような多くの異なる役割を果たしている。しかし、これらの役割のうちの
幾つかについては、ここで要約する。
【0056】 複合モードでは、各スロットをディスエイブルし、デバイス・バス22にデー
タを紛失させることになるようなトランザクションを生じさせることなしに、書
き込みは簡単にアクノリッジを受けることができる。読み取りを行うと無意味な
データが返されることになり、ここでもデバイス・ボードにトランザクションを
生じさせることがない。
【0057】 スプリット・モードでは、各スロットは次の3つの状態のうちの1つとなるこ
とができる。 ・所有を受けていない状態 ・処理セットA14により所有された状態 ・処理セットB16により所有された状態
【0058】 アクセスを行っている処理セット14または16により所有されていないスロ
ット(これには所有を受けていないスロット、すなわち未所有スロットが含まれ
る)は、アクセスを受けることができない。したがって、こうしたアクセスはア
ボートされる。
【0059】 処理セット14または16が電源断のときには、このセットにより所有されて
いるすべてのスロットは未所有状態に移行する。処理セット14または16は、
未所有スロットのみに対して請求をすることができ、別の処理セットから所有権
を横取りすることはできない。この横取りを可能とするには、もう一方の処理セ
ットを電源断とするか、またはもう一方の処理セットに所有権を放棄してもらう
しかない。
【0060】 所有権ビットは、複合モードにある間はアクセス可能かつ設定可能であるが、
スプリット状態に入るまでは効力を有しない。これにより、まだ複合モードにあ
る間に、スプリット・システムの構成を決定することができる。
【0061】 各PCIデバイスは処理セットのアドレス・マップの1つのエリアに割り付け
されている。このアドレスの上位ビットはPCIスロットによって決定される。
デバイスがDMAを実行するときには、Dバス調停装置によりブリッジに対して
ある特定の時刻においてどのデバイスがそのバスを使用しているかを通知される
ため、ブリッジはそのデバイスが正しいアドレスを使用しているか否かをチェッ
クすることができる。デバイス・アクセスが、アクセスが有効でない処理セット
のアドレスに対するものである場合には、そのデバイス・アクセスは無視される
ことになる。あるデバイスにより示されるアドレスは、処理セットのバス・コン
トローラ50内のI/O記憶管理ユニットにより実際のメモリ・アドレスに変換
される仮想アドレスであることに留意すべきである。
【0062】 アドレス・デコーダが出力するアドレスは、ブリッジ・コントローラ132お
よび調停装置134の制御の下で、イニシエータ・コントローラおよびターゲッ
ト・コントローラ138および140を介し、線98を介してルーティング・マ
トリックス80に渡される。
【0063】 調停装置134は、PバスおよびDバス上の従来のPCIバス信号を用いてブ
リッジの使用が先着順で調停されるように、異なる様々なモードで動作可能であ
る。
【0064】 複合モードでは、調停装置134は、非同期の処理セット14および16と、
デバイス・バス22上の任意のイニシエータとの間でブリッジ12が使用できる
ように調停するように動作可能である。起こりうるシナリオとしては以下のもの
がある。 ・デバイス・バス22に対する処理セットのアクセス ・ブリッジ12内の内部レジスタに対する処理セットのアクセス ・処理セットのメモリ56に対するデバイス・アクセス。
【0065】 スプリット・モードでは、処理セット14および16の双方は、ブリッジの使
用を調停する必要があり、また、このためデバイス・バス22および内部のブリ
ッジ・レジスタ(例えば、CSRレジスタ114)にアクセスする必要がある。
さらに、ブリッジ12は、当該のデバイス・バス22の使用を巡って、デバイス
・バス22上のイニシエータと取り合いをする必要がある。
【0066】 デバイス・バス上の各スロットは、このスロットに関連付けられた調停イネー
ブル・ビットを有している。これらの調停イネーブル・ビットは、リセット後に
クリアされ、スロットによるバスの要求を可能とするようにセットする必要があ
る。デバイス・バス22上のデバイスがI/Oエラーをもたらしていると疑われ
る場合には、そのデバイスに関する調停イネーブル・ビットはブリッジにより自
動的にリセットされる。
【0067】 処理セットのバス・コントローラ50内のPCIバス・インタフェースは、対
応するPバスに対するマスタ・バス・コントローラになることが予期される、す
なわち、このインタフェースには接続先にあたるPAバスまたはPBバスに対す
るPCIバス調停装置を含んでいる。ブリッジ12はPAバスおよびPBバス2
4および26に対するアクセスを直接に制御することはできない。ブリッジ12
は、当該のバス上のバス・コントローラ50の制御の下で、PAバスまたはPB
バスに対するアクセスを巡って、当該のバス上の処理セットと取り合いをしてい
る。
【0068】 さらに図8には、コンパレータ130およびブリッジ・コントローラ132を
示している。コンパレータ130は、任意の非同期イベントを決定するために、
処理セット14および16からのI/Oサイクルを比較するように動作可能であ
る。非同期イベントが決定されると、コンパレータ130は、ブリッジ・コント
ローラ132にEStateをアクティブにさせ、非同期イベントの分析および
このイベントからの可能な修復を行わせるように動作可能である。
【0069】 図9は、ルーティング・マトリックス80の機能概要図である。
【0070】 ルーティング・マトリックス80は、PAバス経路94、PBバス経路96、
Dバス経路92または内部バス経路100のうちの1つをルーティング・マトリ
ックスに対するカレント入力として選択するために、図8のイニシエータ・コン
トローラ138からのイニシエータ制御信号98に応答するマルチプレクサ14
3を備えている。別々の出力バッファ144、145、146および147が、
経路94、96、92および100の各々に対する出力に対して設けられており
、これらのバッファは、図8のターゲット・コントローラ140からの信号99
によって選択的にイネーブルにされる。マルチプレクサとバッファ144〜14
7の間で、信号はバッファ149内に保持されている。この実施形態では、I/
Oサイクルに関する3サイクル分のデータが、マルチプレクサ143、バッファ
149およびバッファ144によって表されるパイプライン内に保持されること
になる。
【0071】 図6〜9では、ブリッジの要素に関する機能的説明が与えられた。図10は、
ブリッジ制御ロジック88、記憶制御ロジック90およびブリッジ・レジスタ1
10を第1のフィールド・プログラマブル・ゲートアレイ(FPGA)89内に
実現し、ルーティング・マトリックス80をさらにFPGA80.1および80
.2内に実現し、かつSRAM126をアドレス制御線127によって1つまた
は複数の別々のSRAMアドレスとして実現しているような、ブリッジの物理的
構成の概要図である。図6に示すバス・インタフェース82、84および86は
、別々の要素ではなく、FPGA80.1、80.2および89内に統合されて
いる。2つのFPGA80.1および80.2は、64ビットPCIバスのうち
の上位の32ビット32〜63向け、および64ビットPCIバスのうちの下位
32ビット0〜31向けに使用される。そのデバイス内に必要なロジックを収容
できるようなルーティング・マトリックス80では、単一のFPGAを利用する
ことも可能であることを理解されたい。実際に、十分な容量をもつFPGAが利
用可能であれば、そのブリッジ制御ロジック、記憶制御ロジックおよびブリッジ
・レジスタを同じFPGA内にルーティング・マトリックスとして組み込むこと
が可能である。実際に他の多くの構成を想定することができる。また実際にFP
GA以外のテクノロジ、例えば1つまたは複数の特定用途向け集積回路(ASI
C)を利用することができる。図10に示すように、FPGA89、80.1お
よび80.2と、SRAM126と内部バス経路85は、経路制御線87を介し
て接続されている。
【0072】 図11は、ブリッジの様々な動作モードをより詳細に図示した遷移図である。
ブリッジ動作は、3つの基本モード、すなわち、エラー状態(EState)モ
ード150、スプリット状態モード156および複合状態モード158に区分す
ることができる。EStateモード150はさらに、2つの状態に区分するこ
とができる。
【0073】 ブリッジの電源投入時の初期のリセット動作の後、または非同期イベントに続
いて、ブリッジはこの初期EState152の状態になる。この状態では、す
べての書き込みがポスティング済み書き込みバッファ122内に格納され、また
内部ブリッジ・レジスタ(例えば、CSRレジスタ116)からの読み取りが許
可され、さらに他のすべての読み取りはエラーとして扱われる(すなわち、これ
らの読み取りはアボートされる)。この状態では、個別の処理セット14および
16は、リスタート時刻を決定するために評定を実施する。各処理セット14お
よび16は、自身のリスタート・タイマのタイミングを決定することになる。こ
のタイマの設定は、EStateへの遷移に関する「ブレーム(blame)」
ファクタにより異なる。処理セットがエラーを生じさせた可能性が高いと決定し
た場合は、そのタイマを長い時間に設定する。処理セットがエラーを生じさせた
可能性が低いと判断した場合は、そのタイマを短い時間に設定する。タイムアウ
トした第1の処理セット14および16は、プライマリ処理セットとなる。した
がって、タイムアウトと決定された時点で、ブリッジはプライマリEState
154の状態に遷移(153)する。
【0074】 処理セット14/16のいずれかがプライマリ処理セットになると、ブリッジ
はプライマリEState154状態で動作している。この状態では、プライマ
リ処理セットはブリッジ・レジスタに対する(具体的には、SSR118に)書
き込みをすることができる。その他の書き込みはポスティング済み書き込みバッ
ファに格納されることがなく、単に失われる。デバイス・バスの読み取りは、プ
ライマリEState154状態では、まだアボートされたままである。
【0075】 EState状態が解消された後は、ブリッジは続いてスプリット状態156
に遷移(155)する。スプリット状態156では、ブリッジ記憶へのアクセス
が単に調停を受けている間に、デバイス・バス22へのアクセスはSSRレジス
タ118により制御される。処理セット14および16のプライマリ・ステータ
スは無視される。複合動作への遷移(157)はsync_resetによって
達成される。sync_reset動作が発行された後、次いで、ブリッジは複
合状態158で動作可能となり、これにより、Dバス22およびPAバスおよび
PBバス24および26上での読み取りおよび書き込みのアクセスのすべてが許
可される。PAバスおよびPBバス24および26上でのこうしたアクセスのす
べては、コンパレータ130内で比較される。任意の読み取りおよび書き込みサ
イクルの間に(特定の異種データI/Oサイクルを例外として)ミスマッチが検
出されたら、EState150への遷移151が起きる。記載した様々な状態
はブリッジ・コントローラ132により制御される。
【0076】 コンパレータ130の役割は、複合状態158において、PAバスおよびPB
バス上のI/O動作をモニタしかつ比較し、ミスマッチの信号があればこれに応
答して、ブリッジ・コントローラ132に通知する。これにより、ブリッジ・コ
ントローラ132はエラー状態150への遷移151を起こさせる。このI/O
動作としては、デバイス・バス上のデバイスにより起動されるDMAに関するD
MA転送だけでなく、処理セットにより起動されるすべてのI/O動作が含まれ
る。
【0077】 下の表1は、動作状態の各々にある際に許可される様々なアクセス動作を要約
したものである。
【表1】
【0078】 上述のように、初期リセットの後、システムは初期EState152状態に
ある。この状態では、処理セット14と16はいずれも、もう一方の処理セット
14または16のDバス22、あるいはPバス26または24にアクセスするこ
とができない。ブリッジの内部ブリッジ・レジスタ110はアクセス可能である
が、読み取りのみが可能である。
【0079】 複合モード158で稼働しているシステムは、このブリッジ内で比較不可が検
出された場合、EState150に遷移する、また別法として、比較不可は例
えば、図2に示すマルチブリッジ・システム内の別のブリッジで検出される。さ
らに、別の状況において、例えばソフトウェア制御のイベントがセルフテスト動
作の一部を形成している場合に、EState150への遷移が起きることがあ
る。
【0080】 EState150に移行すると、すべてのプロセッサ、またはその処理セッ
トのプロセッサからなるサブセットに対して、割込線95を介して割込が伝達さ
れる。これに続いて、Pバス24または26上に発生しているすべてのI/Oサ
イクルにより、読み取りは例外付き(with a exception)で返
還され、書き込みはポスティング済み書き込みバッファ内に記録される。
【0081】 ここで、コンパレータ130の動作をより詳細に記載する。コンパレータは、
アドレス、データおよびPAバス・インタフェースおよびPBバス・インタフェ
ース84および86からの選択された制御信号を比較するために、経路94、9
5、96および97に接続されている。デバイスI/Oバス22のデバイスに対
する非同期アクセスが比較不可になると、複合状態158からEState15
0への移行を起こさせる。
【0082】 処理セットのI/O読み取りサイクルの間、アドレス、コマンド、アドレス・
パリティ、バイト・イネーブル、並びにパリティ・エラーの各パラメータが比較
される。
【0083】 アドレス・フェーズの間に比較が不可になった場合、ブリッジは処理セットの
バス・コントローラ50に対してリトライをアサートし、これによりデータがI
/Oバス・コントローラ50からなくなるのを防止する。この場合、デバイスI
/Oバス22上では何の作用も生じない。プロセッサがリトライすると、ノー・
エラーが返される。
【0084】 データ・フェーズ(制御信号およびバイト・イネーブルのみがチェックを受け
る)の間に比較が不可になった場合、ブリッジは処理セットのバス・コントロー
ラ50に対してターゲット−アボートを信号伝達する。プロセッサに対してはエ
ラーが返される。
【0085】 処理セットのI/Oバス書き込みサイクルの場合には、アドレス、コマンド、
パリティ、バイト・イネーブル、並びにデータの各パラメータが比較される。
【0086】 アドレス・フェーズの間に比較が不可になった場合、ブリッジは処理セットの
バス・コントローラ50に対してリトライをアサートし、この結果、処理セット
のバス・コントローラ50は再びそのサイクルをリトライする。次いで、ポステ
ィング済み書き込みバッファ122がアクティブ状態となる。デバイスのI/O
バス22上には何の作用も生じない。
【0087】 書き込み動作のデータ・フェーズの間に比較が不可になった場合、Dバス22
に対してはデータが全く渡されない。処理セット14および16の双方からの不
可となったデータやその他のあらゆる転送属性は切断レジスタ120内に格納さ
れる、また後続のあらゆるポスティング済み書き込みサイクルはポスティング済
み書き込みバッファ122内に記録される。
【0088】 直接仮想記憶アクセス(DVMA)の読み取りの場合では、データ制御および
パリティが各データごとにチェックされる。そのデータがマッチングしない場合
には、ブリッジ12はPバス上の転送を終了させる。DVMA書き込みの場合で
は、制御およびパリティ・エラー信号の正確性がチェックされる。
【0089】 上述した信号以外の別の信号を比較してその処理セットのダイバージェンス(
divergence)を示すことができる。これらに関する例としては、処理
セット転送の間およびDMA転送の間のバス許可および様々な特定の信号がある
【0090】 エラーは概ね2つのタイプに分けられる、すなわち、処理セットのバス・コン
トローラ50を用いてソフトウェアにより識別できるエラーと、処理セットのバ
ス・コントローラ50によっては識別できず、このためブリッジ12からの割込
によって識別できるようにする必要があるエラーとである。したがって、このブ
リッジは、処理セットの読み取りおよび書き込みサイクル、並びにDMA読み取
りおよび書き込みに関連して通報されたエラーを捕捉するように動作可能である
【0091】 ブリッジに対するクロック制御は、クロック線21からのクロック信号に応答
してブリッジ・コントローラ132により実行される。コントローラ132から
ブリッジの様々な要素への個々の制御線は、図6〜10には示していない。
【0092】 図12は、複合動作モード中にロックステップ・エラーが検出された場合の、
可能な一連の動作ステージを表した流れ図である。
【0093】 ステージS1は、ロックステップ・エラーのチェック作業が図8に示すコンパ
レータ130により実行されるような複合動作モードを表している。
【0094】 ステージS2では、ロックステップ・エラーが、コンパレータ130によって
すでに検出されたものと仮定している。
【0095】 ステージS3において、カレント状態がCSRレジスタ114内にセーブされ
、またポスティング済み書き込みがポスティング済み書き込みバッファ122内
および/または切断レジスタ120内にセーブされる。
【0096】 図13は、ステージS3をより詳細に表したものである。このように、ステー
ジS31において、コンパレータ130が通知したロックステップ・エラーが、
デバイス・バス22にデータを渡すことが可能なフェーズであるデータ・フェー
ズの間に起きたか否かを、ブリッジ・コントローラ132により検出する。この
場合では、ステージS32において、このバス・サイクルを終了させる。次いで
、ステージS33において、このデータ・フェーズを切断レジスタ120内に格
納し、次いで制御は、さらにI/Oサイクルを格納する必要があるかどうかに関
する評価を行うステージであるステージS35に渡される。一方、ステージS3
1において、ロックステップ・エラーがデータ・フェーズの間に起きたものでな
いと決定された場合には、任意のポスティング済み書き込みI/Oサイクルに対
するアドレスおよびデータ・フェーズをポスティング済み書き込みバッファ12
2内に格納する。ステージS34において、さらに何らかのポスティング済み書
き込みI/O動作が待ち状態(pending)である場合には、さらにこれら
もポスティング済み書き込みバッファ122内に格納される。
【0097】 ステージS3は、図11に示す初期エラー状態152の始動時に実行される。
この状態では、第1および第2の処理セットは、ブリッジへのアクセスに関して
調停する。このように、ステージS31〜S35において、処理セット14およ
び16の各々に対するポスティング済み書き込みアドレスおよびデータ・フェー
ズがポスティング済み書き込みバッファ122の別々の部分内、および/または
上述のような切断レジスタの単一のセット内に格納される。
【0098】 図14は、ポスティング済み書き込みバッファ122内への格納に必要となる
ポスティング済み書き込み170のサイクルのソースを図示したものである。処
理セット14および16の通常の動作中に、個々のプロセッサ内の出力バッファ
162は処理セットのバス・コントローラ50を介したブリッジ12に対する、
並びに実際上はデバイス・バス22に対する転送に関するポスティングがすでに
なされているI/Oサイクルを含んでいる。同様に、処理セットのコントローラ
50のバッファ160はさらに、バス24および26を介したブリッジ12に対
する、並びに実際上はデバイス・バス22に対する転送に関するポスティング済
みI/Oサイクルを含んでいる。
【0099】 したがって、エラー状態が起きたときに、I/O書き込みサイクルはすでに自
身のバッファ162内のプロセッサ52によりポスティング済みか、または処理
セットのバス・コントローラ50のバッファ160にすでに転送済みかのいずれ
かであることが分かる。ポスティング済み書き込みバッファ122中を段階的に
伝播させ、このバッファ122内に格納する必要があるのは、バッファ162お
よび160内のI/O書き込みサイクルである。
【0100】 図15に示すように、ポスティング済み書き込みバッファ122に対してポス
ティングされた書き込みサイクル164は、アドレスおよびアドレス・タイプを
含むアドレス・フィールド165と、バイト・イネーブル・フィールドおよびデ
ータそれ自体を含む1〜16個のデータ・フィールド166とを備えることがで
きる。
【0101】 このデータは、起動する処理セットがプライマリCPUsetに指定されてい
ない場合に、EState状態においてポスティング済み書き込みバッファ12
2内に書き込まれる。この時点では、EState状態における非プライマリ書
き込みは、CPUsetのうちの1つがプライマリ処理セットになった後であっ
ても、ポスティング済み書き込みバッファに渡される。CSRレジスタ114の
アドレス・ポインタは、ポスティング済み書き込みバッファの利用可能な次のア
ドレスを指示し、さらに、ブリッジが処理セット14および16のうちの任意の
1つに対してポスティング済み書き込みバッファの最上位を越える書き込みを試
みた場合にセットされるオーバーフロー・ビットを備えている。実際には、本実
施においては、最初の16Kのデータのみが各バッファ内に記録される。ポステ
ィング済み書き込みバッファの最上位を越えて書き込もうとしても無視される。
ポスティング済み書き込みバッファのポインタの値は、リセット時にクリアされ
るか、またはプライマリ処理セットの制御下での書き込みを用いてソフトウェア
によりクリアすることができる。
【0102】 図12を参照すると、ステータスおよびポスティング済み書き込みをセーブし
た後、ステージS4において、個々の処理セットは独立の実行により、エラー状
態を評価し、処理セットのうちの1つに障害があるかどうかを決定する。この決
定はエラー状態にある個々のプロセッサにより実施され、制御状態およびESt
ateレジスタ114からステータスが個別に読み取られる。このエラー・モー
ドの間に、調停装置134はブリッジ12に対するアクセスを調停する。
【0103】 ステージS5において、処理セット14および16のうちの1つは、自身をプ
ライマリ処理セットとして確立する。この確立は、そのエラーに対する責務の程
度の評価に基づいて処理セットの各々が時間ファクタを特定することによって決
定され、これにより、タイムアウトになる第1の処理セットがプライマリ処理セ
ットとなる。ステージS5において、当該の処理セットに対するステータスが回
復され、もう一方の処理セットにコピーされる。プライマリ処理はポスティング
済み書き込みバッファ122および切断レジスタ120にアクセスすることがで
きる。
【0104】 ステージS6において、ブリッジはスプリット・モードで動作可能である。第
1および第2の処理セットに対して同等のステータスを再確立できる場合には、
ステージS7においてリセットを発行して処理セットがステージS1における複
合モードに戻る。しかし、障害となた処理セットが交換されるまでは同等な状態
を再確立することはできない。したがって、システムは、単一の処理セットに基
づく動作を継続するために、ステージS6のスプリット・モードに留め置かれる
。障害となった処理セットを交換した後には、システムは同等の状態を確立し、
ステージS7を経てステージS1に移行することができる。
【0105】 上述のように、コンパレータ130は、第1および第2の処理セット14およ
び16が出力するI/O動作を比較するように、複合モードで動作可能である。
この動作は、第1および第2の処理セット14および16のI/O動作がすべて
完全に同期しておりかつ確定している限りにおいては、満足なものである。ここ
から何らかのズレが生じると、コンパレータ130はロックステップの喪失であ
ると解釈することになる。この解釈は原則的には正しく、同一出力からのズレが
小さい場合に、コンパレータ130により捕捉されなければ、個々の処理セット
がズレている出力に基づいて動作し、処理セットがさらに互いの相手方からズレ
てしまうことにつながる。しかし、これを厳格に適用すると個々の処理セットの
設計に対して重大な制約を課すことになる。その一例は、自身のクロックの下で
動作している個々の処理セット内に独立の日時用クロックを有することができな
くなることである。その理由は、動作が100%同一である2つの水晶振動子を
得ることができないからである。クロックの位相に僅かな差でも、任意の時刻、
例えば、それぞれの処理セットのクロック遷移の両側で同じサンプリングを行え
るかどうかに関しては重大である。
【0106】 したがって、この問題の解決策の1つでは、先にも述べた異種データ・レジス
タ(DDR)116を利用している。解決策とは、書き込み動作のデータ・フェ
ーズの比較をディスエイブルしている間に処理セットからのデータをブリッジ内
のそれぞれのDDR内に書き込み、さらにDDRのうちの選択した1つを各処理
セットに読み戻して、これにより処理セットの各々が同じデータに基づいて動作
できるようにすることである。
【0107】 図17は、図6〜10のブリッジの詳細を表した概要図である。図6〜8に示
していないブリッジの詳細が図17に示してあり、また図6〜8に示すブリッジ
のその他の詳細については明瞭にするために図17に示していないことに留意さ
れたい。
【0108】 DDR116は図7のブリッジ・レジスタ110内に設けられているが、別の
実施形態では、ブリッジ内の別の箇所に設けることができる。各処理セットごと
にDDR116を1つ設ける。2つの処理セット14および16を設けている図
1のマルチプロセッサ・システムの例では、第1および第2の処理セット14お
よび16の各々に対してそれぞれ1つずつで、2つのDDR116Aおよび11
6Bが設けられている。
【0109】 図17は、異種データ書き込みステージを図示したものである。このアドレス
付けロジック136では、第1の処理セットに対する1つのデコーダ・セクショ
ン136A、および第2の処理セット16に対する1つのデコーダ・セクション
136Bという2つのデコーダ・セクションを備えるように模式的に表してある
。異種データI/O書き込み動作のアドレス・フェーズの間に、処理セット14
および16の各々は予め定めた同じアドレスDDR−Wを出力する。このアドレ
スは、第1および第2のデコーディング・セクション136Aおよび136Bの
それぞれにより、第1および第2のDDR116Aおよび116Bのそれぞれに
対するアドレス付けとして別々に解釈される。第1および第2の処理セット14
および16により同じアドレスが出力されても、コンパレータ130はこれをロ
ックステップ・エラーであると解釈しない。
【0110】 デコーディング・セクション136A、またはデコーディング・セクション1
36B、あるいはこれらの両者は、第1および第2の処理セット14および16
により与えられた予め定めた書き込みアドレスに応答して、さらにディスエイブ
ル信号137を出力するように配置されている。このディスエイブル信号は、コ
ンパレータ130に供給され、また書き込み動作のデータ・フェーズの間にこの
コンパレータをディスエイブルにするように動作する。その結果、第1および第
2の処理セットからのデータが異なる場合であっても、コンパレータに違いを検
出するように動作させることなしに、第1の処理セットが出力したデータを第1
のDDR116A内に格納し、また第2の処理セットが出力したデータを第2の
DDR116D内に格納することができる。第1のデコーディング・セクション
は、ルーティング・マトリックスに第1の処理セット14からのデータを第1の
DDR116A内に格納させるように動作可能であり、かつ第2のデコーディン
グ・セクションは、ルーティング・マトリックスに第2の処理セット16からの
データを第2のDDR116B内に格納させるように動作可能である。データ・
フェーズの終了時に、コンパレータ130は、I/Oアドレスおよび/またはデ
ータ・フェーズの間の任意の差をロックステップ・エラーを示すものとして検出
するように再びイネーブルにされる。
【0111】 第1および第2のDDR116Aおよび116Bへの異種データの書き込みに
続いて、処理セットは、次いで、DDR116Aおよび116Bのうちの選択し
た1つからのデータを読み取るように動作可能となる。
【0112】 図18は、ディスエイブル信号137をニゲート(negate)し、これを
用いてコンパレータ130の出力の位置にあるゲート131を制御している別の
配置を図示したものである。ディスエイブル信号がアクティブのときには、コン
パレータの出力がディスエイブルとなり、ディスエイブル信号がイナクティブの
ときには、コンパレータの出力はイネーブルとなる。
【0113】 図19は、後続の異種データ読み取りステージでの第1のDDR116Aの読
み取りを図示したものである。図19に図示したように、処理セット14および
16の各々は、予め定めた同じアドレスDDR−RAを出力する。このアドレス
は、第1および第2のデコーディング・セクション136Aおよび136Bのそ
れぞれにより、同じDDR、すなわち、第1のDDR116Aに対するアドレス
付けとして別々に解釈される。その結果、第1のDDR116Aの内容は処理セ
ット14および16の双方により読み取られ、これによりこれらの処理セットは
同じデータを受け取ることができる。これにより、2つの処理セット14および
16は、DDR116内に処理セット14および16が書き込むデータのソース
が不確定であった場合であっても、確定した挙動を達成することができる。
【0114】 別法の1つとして、これらの処理セットは、それぞれが第2のDDR116B
からのデータを読み取ることができる。図20は、図15の異種データ読み取り
ステージに続く異種データ読み取りステージでの第2のDDR116Bの読み取
りを図示したものである。図20に図示したように、処理セット14および16
の各々は、予め定めた同じアドレスDDR−RBを出力する。このアドレスは、
第1および第2のデコーディング・セクション136Aおよび136Bのそれぞ
れにより、同じDDR、すなわち、第2のDDR116Bに対するアドレス付け
として別々に解釈される。その結果、第2のDDR116Bの内容は処理セット
14および16の双方により読み取られ、これによりこれらの処理セットは同じ
データを受け取ることができる。これにより、図16の異種データ読み取りステ
ージの場合と同様にして、2つの処理セット14および16は、DDR116内
に処理セット14および16が書き込むデータのソースが不確定であった場合で
あっても、確定した挙動を達成することができる。
【0115】 第1および第2のDDR116Aおよび116Bのどちらに対して読み取りを
するかの選択は、その処理モジュール上で動作しているソフトウェアにより任意
の適当な方式により決定することができる。この決定は一方のDDRか他方のD
DRかの単純な選択に基づくか、あるいは、統計学に基づく、すなわち、処理セ
ットの両者またはそのすべてによりDDRの選択が同じである限り無作為または
任意の別の方式に基づくことが可能である。
【0116】 図21は、上記のDDRのメカニズムの様々な動作ステージを要約した流れ図
である。
【0117】 ステージS10において、DDR書き込み動作のアドレス・フェーズの間に、
アドレス・デコーダ・セクション136Aおよび136BによりDDRの書き込
みアドレスDDR−Wを受け取り、デコードする。
【0118】 ステージS11において、コンパレータ130はディスエイブルされる。
【0119】 ステージS12において、DDR書き込み動作のデータ・フェーズの間に処理
セット14および16から受け取ったデータが、第1および第2のデコード・セ
クション136Aおよび136Bのそれぞれの選択に従って第1および第2のD
DR116Aおよび116Bのそれぞれに格納される。
【0120】 ステージS13において、DDR読み取りアドレスは、デコード・セクション
136Aおよび136Bのそれぞれにより、第1および第2の処理セットから受
け取られ、デコードされる。
【0121】 受け取ったアドレスDDR−RAが第1のDDR116Aのものである場合に
は、ステージS14において、処理セット14および16の双方によりDDR1
16Aの内容が読み取られる。
【0122】 一方、受け取ったアドレスDDR−RBが第2のDDR116Bのものである
場合には、ステージS15において、処理セット14および16の双方によりD
DR116Bの内容が読み取られる。
【0123】 図22は、それぞれのバス22、24および26上で実施されるブリッジ自身
のための調停を表した概要図である。
【0124】 それぞれの処理セット14および16内の処理セットのバス・コントローラ5
0の各々は、バス24および26のそれぞれに対して調停するための従来のPC
Iマスタ・バス調停装置180を含んでいる。マスタ調停装置180の各々は、
関連付けられた処理セットのバス・コントローラ50およびそれぞれの要求(R
EQ)線181および182上のブリッジ12からの要求信号に応答している。
マスタ調停装置180は、勝利側に対して適当な許可線183または184上に
許可(GNT)信号を発生させて、バスに対するアクセスを先着順で割り付けす
る。
【0125】 従来のPCIバス調停装置185はDバス22の調停をする。Dバス調停装置
185は、図6のDバス・インタフェース82の一部として構成することができ
、あるいはこのインタフェースとは別にすることも可能である。Pバスのマスタ
調停装置180の場合と同様に、Dバス調停装置はブリッジ並びにデバイス・バ
ス22に接続されているデバイス30、31などを含む競合するデバイスからの
要求信号に応答している。Dバス22に対するアクセスを競っているエンティテ
ィの各々に対するそれぞれの要求線186、187、188などは、要求信号(
REQ)用に設けられている。Dバス調停装置185は、それぞれの許可線18
9、190、192などを介して勝利エンティティに対して許可(GNT)信号
を発生させて、Dバスに対するアクセスを先着順で割り付けする。
【0126】 図23は、Dバス調停装置185の動作を要約した状態図である。実施の具体
的な一形態では、それぞれのDバス・デバイスにより最大6つまでの要求信号と
、ブリッジ自体により1つの要求信号を発生させることができる。許可状態に移
行すると、これらの信号は優先順位エンコーダによってソートされ、最高の優先
順位を有する要求信号(REQ#)は勝者として登録され許可(GNT#)信号
を得る。選択された勝者の各々は、次に同じREQ#信号を出したものが許可と
なるように、優先順位エンコーダ内の優先順位を修正する。最高の優先順位を有
するデバイスは様々である、すなわち、各デバイスはDEVへのアクセスに関し
公平なチャンスを有している。ブリッジのREQ#はDバス・デバイスよりも重
要度が高く、極めて混雑した状態でも、デバイスが2回バスを得るごとにバスを
得ることができる。
【0127】 バスを要求しているデバイスが16サイクル以内にトランザクションを実行で
きない場合には、BACKOFF状態を介してGNT#を取り消すことができる
。BACKOFFは、デバイスがGNT#が削除された後の1サイクルでバスに
アクセスすることができるように、PCIの規則に従って要求される。ブリッジ
がEStateにない場合、デバイスはDバスに対するアクセスのみが許可され
る。新たなGNT#は、バスがアイドル状態にある時点で発生させる。
【0128】 GRANTおよびBUSY状態では、FETはイネーブルにされ、アクセスし
ているデバイスが知られると共に、そのデバイスが提供するDMAアドレスと照
合するためにDバスのアドレス・デコード・ロジックに転送される。
【0129】 ここでブリッジ調停装置134に戻ると、この調停装置134により、アドレ
ス・フェーズであることを示すようにPCI FRAME#信号をアサートにし
ている第1のデバイスに対するブリッジに対するアクセスが可能となる。図24
は、ブリッジ調停装置134の動作を要約している状態図である。
【0130】 Dバス調停装置の場合と同様に、アクセスの企ての衝突を解決するために優先
順位エンコーダを設けることができる。この「衝突」の場合では、そのバスの放
棄を余儀なくされた敗者はリトライすることになる。PCIの規則に従って、リ
トライを受けたデバイスの側では、ブリッジにアクセスするために挑戦を繰り返
す必要があり、こうしたことは起こりうることである。
【0131】 そのリトライの企てが極めて迅速であるようなデバイスがブリッジを占有する
ことを防ぐため、リトライを受けたインタフェースは記憶され、より高い優先順
位が割り当てられる。これらの記憶されたリトライに対して、アドレス・フェー
ズの場合と同じ方式により優先順位が与えられる。しかし、念のために述べると
、障害のあるデバイス、すなわち死んでいるデバイスのためにウェーティングに
なって滞ることがないように、このメカニズムはタイムアウト動作をする。まだ
一度もリトライをしたことがなく、リトライをすれば、目下待機中のデバイスと
比べより高い優先順位のリトライが得られるようなデバイスでは、アルゴリズム
を利用して第1回目の企てがリトライとならないようにしている。
【0132】 複合動作では、PAバスまたはPBバスの入力により、どちらのPバス・イン
タフェースがブリッジへのアクセスを獲得するかが選択される。両者に対してア
クセスの獲得が通報される。選択の許可により、通常の動作中での潜在的な誤り
チェックが可能となる。EState状態ではDバスの獲得ができない。
【0133】 ブリッジ調停装置134は、標準のPCI制御線22、24および25上に提
供される標準のPCI信号に応答して、ブリッジ12に対するアクセスを制御す
る。
【0134】 図25は、PCIバス上のI/O動作サイクルに関連付けられた信号を図示し
たものである。PCIフレーム信号(FRAME#)が先ずアサートされる。同
時に、アドレス(A)信号がDATA BUS上で利用可能となり、また適当な
コマンド(リード/ライト)信号(C)がコマンド・バス(CMDバス)上で利
用可能となる。フレーム信号がロー(low)でアサートされた後間もなく、イ
ニシエータ・レディ信号(IRDY#)がローでアサートされる。デバイスが応
答すると、デバイス選択済み信号(DEVSEL#)がローでアサートされる。
ターゲット・レディ信号(TRDY#)がローでアサートされると、データ・バ
ス上でデータ転送(D)が起こる。
【0135】 ブリッジは、ブリッジ・リソースに対するアクセスを割り付け、これにより、
当該のイニシエータ・バスに対するFRAME#がローにアサートされたことに
応答してターゲット・バスの割り付けに関して折衝を行うように動作可能である
。したがって、ブリッジ調停装置134は、FRAME#がローにアサートされ
たことに応答して、ブリッジ・リソースおよび/またはターゲット・バスに対す
るアクセスを先着順で割り付けするように動作可能である。単純な先着順の他に
、調停装置はさらに、調停の要求をログ記録するためのメカニズムも備えること
があり、これにより2つの要求を同時刻に受けとった場合に要求および割り付け
の履歴に基づいて衝突を解決することができる。別法としては、様々な要求元に
対して単に優先順位を割り付けし、これにより、同一時刻の要求の場合には、特
定の要求元に対して常に割り付けプロセスを獲得させるようにしている。
【0136】 デバイス・バス22のスロットの各々は、SCSIインタフェースなどのバス
に接続された他のデバイス以外に、スロット応答レジスタ(SSR)118を有
している。SSR118の各々は、スロットの所有権、あるいは直接記憶アクセ
スのバス上のスロットに接続されているデバイスを規定しているビットを含んで
いる。この実施形態では、以下に詳述する理由により、各SSR118は4ビッ
ト・レジスタを備えている。しかし、3つ以上の処理セット間で所有権を決定す
るためには、これより大きなレジスタが必要となることを理解されたい。例えば
、3つの処理セットを設ける場合には、各スロットごとに5ビットのレジスタ1
つが必要である。
【0137】 図16は、こうした4ビットのレジスタ600の1つの概略図である。図16
に示すように、第1ビット602は、SSR[0]として特定され、第2ビット
604はSSR[1]として特定され、第3ビット606はSSR[2]として
特定され、さらに第4ビット608はSSR[3]として特定される。
【0138】 ビットSSR[0]は、有効なトランザクションに関する書き込みが抑制され
ている場合にセットされるビットである。
【0139】 ビットSSR[1]は、デバイス・スロットが第1の処理セット14によって
所有されている場合にセットされる。このビットにより第1の処理セット14と
デバイス・スロットの間のアクセス・ルートが決まる。このビットがセットされ
ると、第1の処理セット14は常にデバイス・スロット22のマスタとなり、一
方デバイス・スロットがマスタになることができるかどうかは、ビットSSR[
3]がセットされているか否かよって決まる。
【0140】 ビットSSR[2]は、デバイス・スロットが第2の処理セット16によって
所有されている場合にセットされる。このビットにより、第2の処理セット16
とデバイス・スロットの間のアクセス・ルートが決まる。このビットがセットさ
れると、第2の処理セット16は常にデバイス・スロットまたはバス22のマス
タとなり、一方デバイス・スロットがマスタになることができるかどうかは、ビ
ットSSR[3]がセットされているか否かよって決まる。
【0141】 ビットSSR[3]は、デバイス・スロットにデバイス・バス22のマスタに
なる能力を与えるための調停ビットである。しかし、この能力を付与できるのは
、処理セット14および16のうちの1つにより所有されている場合にのみ、す
なわちSSR[1]およびSSR[2]ビットのうちの1つがセットされている
場合のみである。
【0142】 SSR118のフェイク・ビット(SSR[0])がセットされている場合に
は、当該スロットに対するデバイスへの書き込みは無視され、デバイス・バス2
2には現れない。読み取りをすると、デバイス・バス22にトランザクションを
生じさせずに不確定データを返す。I/Oエラーが起きた場合には、エラーを起
こしたデバイスに対応するSSR188のフェイク・ビットSSR[0]は、ブ
リッジのハードウェア構成によりセットされ、さらに当該のデバイス・スロット
に対するアクセスをディスエイブルにする。さらに、ブリッジにより割込を発生
させて、I/Oエラーにつながるアクセスを発したソフトウェアに対してエラー
が起こったことを通知する。このフェイク・ビットは、システムがスプリット動
作モードにあっても、複合動作モードにあっても有効である。
【0143】 しかし、所有権ビットは、スプリット・システム動作モードでのみが有効であ
る。このモードでは、各スロットは次の3つの状態をとることが可能である。 ・所有を受けていない状態 ・処理セット14により所有された状態 ・処理セット16により所有された状態
【0144】 これは、2つのSSRビット、SSR[1]およびSSR[2]により、SS
R[1]をスロットが処理セット14により所有された状態の場合にセットし、
またSSR[2]をスロットが処理セットBにより所有された状態の場合にセッ
トするようにして決定される。スロットが所有を受けていない状態の場合には、
どちらのビットもセットされない(両ビットがセットされることは、不正な状態
であり、ハードウェアにより防止されている)。
【0145】 アクセスを起こす処理セットにより所有されていないスロット(これには未所
有スロットも含まれる)は、アクセスを受けることができず、結果としてアボー
トとなる。処理セットは未所有スロットに対してのみ争奪をすることができる、
すなわち、別の処理セットから所有権を奪い取ることはできない。これが可能と
なるのはその処理セットを電源断にした場合のみである。処理セットが電源断に
なると、その処理セットが所有していたすべてのスロットが未所有状態に移行す
る。処理セットは別の処理セットから所有権を奪い取ることはできないが、ある
処理セットが別の処理セットに所有権を与えることはできる。
【0146】 所有のビットは複合モードの動作状態にある場合には変更することができるが
、スプリット・モードに入るまでは効力を発揮しない。
【0147】 下の表2はSSR118により決定されるアクセス権を要約したものである。
【0148】 表2から、所与のデバイスに対する4ビットのSSRが、例えば、1100と
セットされている場合、そのスロットは処理セットBにより所有されており(す
なわちSSR[2]はロジックハイであり)、またそのブリッジに対する読み出
しまたは書き込みはできるものの、処理セットAによりそのデバイスに対して読
み出しまたは書き込みをすることはできない(すなわちSSR[1]はロジック
ローである)ということが分かる。「FAKE_AT」は、そのバス上に誤りが
なければそのデバイス・バスに対するアクセスが可能であることを示すように、
ロジックローにセットされている(すなわちSSR[0]はロジックローである
)。「ARB EN」がロジックハイにセットされると(すなわちSSR[3]
はロジックハイの場合)、そのレジスタが関連付けられているデバイスは、Dバ
スのマスタになることができる。この例により、バスおよび関連付けられたデバ
イスが正しく動作している場合のレジスタ動作が明らかとなる。
【0149】
【表2】
【0150】 そのデバイスのSSRを0101にセットする別の例では、SSR[2]のロ
ジックハイ設定により、そのデバイスが処理セットBにより所有されていること
を示している。しかし、そのデバイスが動作不良になると、SSR[3]はロジ
ックローにセットされて、そのデバイスは処理セットに対するアクセスが禁止さ
れる。SSR[0]は、そのデバイスに対するあらゆる書き込みを無視し、その
デバイスからの読み取りに対して不確定データを返すように、ハイに設定される
。この方法では、動作不良のデバイスを処理セットから事実上分離させて、例え
ば、そのデバイスからの応答を求めているような任意のデバイス・ドライバを満
足させるように不確定データを提供することができる。
【0151】 図26は、デバイス28、29、30、31および32のうちの1つなどのデ
バイスによる処理セット14および16のメモリ56への直接記憶アクセスをす
るためのブリッジ12の動作を図示したものである。Dバス調停装置185が直
接記憶アクセス(DMA)の要求193をデバイス・バス上のあるデバイス(例
えば、スロット33のデバイス30)から受け取った場合、Dバス調停装置は当
該スロットにバスを割り付けるべきか否かを決定する。この許可手続きの結果、
Dバス調停装置はDMA要求193を出したスロットを認識する。DMA要求は
、ブリッジ内のアドレス・デコーダ142に提供され、ここでその要求に関連付
けられたアドレスがデコードされる。このアドレス・デコーダは、当該のスロッ
トに対するDバス許可信号194に応答して、そのDMA要求に対してDバスへ
のアクセスの許可を受けているスロットを特定する。
【0152】 アドレス・デコード・ロジック142は地図的アドレス・マップ196へのア
クセスを保持、すなわち有しており、これにより、利用している地図的アドレス
の結果としてプロセッサのアドレス空間とスロットの間の関係を特定する。この
地図的アドレス・マップ196は、ブリッジのメモリ126内、さらにはポステ
ィング済み書き込みバッファ122およびダーティRAM124内で、1つのテ
ーブルとして保持することができる。別法としては、この地図的アドレス・マッ
プ196は、アドレス・デコーダ142自体の一部を形成することがあるような
、別のメモリ要素内で、1つのテーブルとして保持することができる。このマッ
プ182はテーブル以外の形態で構成することもできる。
【0153】 アドレス・デコード・ロジック142は、デバイス30が供給するDMAアド
レスの正当性を検証するように構成されている。本発明の一実施形態では、この
検証はデバイス30が供給するアドレスのうちのアドレス・ビットの最上位から
の4ビットを、DMA要求に対するDバス許可信号により特定されたスロットに
関して、地図的アドレス付けマップ196内に保持されているアドレスのうちの
対応するアドレス・ビットの4ビットと比較することにより実施することができ
る。この例において、供給されたアドレスが正常なアドレス範囲内にあるかどう
かを決定するためには、4つのアドレス・ビットで十分である。この具体例では
、32ビットのPCIバス・アドレスを使用しており、そのビット31および3
0は常に1にセットされ、ビット29はマザーボード上の2つのブリッジのうち
のいずれにアドレス付けされているかを特定するために割り当てられ(図2参照
)、またビット28〜26はPCIデバイスを特定している。ビット25〜0は
、各スロットに対するアドレス範囲に関する基本アドレスからのオフセットを規
定している。したがって、ビット29〜26の比較よって、供給されたアドレス
が当該のスロットに対して適正なアドレス範囲内にあるか否かを判定することが
できる。別の実施形態では、アドレスの割り付けに基づいてこの決定をするため
の比較において必要となるビット数は異なることを理解されたい。
【0154】 アドレス・デコード・ロジック142は、当該のスロットに対するバス許可信
号184を使用して当該のスロットに対するテーブルのエントリを特定し、次い
で当該エントリ内のアドレスをDMA要求を用いて受け取ったアドレスを上述の
ようにして比較するように配置することも可能である。別法として、アドレス・
デコード・ロジック142は、DMAアドレスで受け取ったアドレスを用いて、
リレーショナル式の地図的アドレス・マップをアドレス付けし、かつこれからス
ロット番号を決定するような配置であって、このスロット番号によりバス許可信
号194を得ようとするスロットに対応させ、かつ、これによりそのアドレスが
当該のスロットに対して適当なアドレス範囲内にある否かを決定するようにした
配置とすることも可能である。
【0155】 いずれの方法においても、アドレス・デコード・ロジック142はDMAアド
レスが当該のスロットに対して予期されるアドレス空間の範囲内にある場合には
DMAの進行を許可するように配置される。予期されるアドレス空間範囲外であ
るときには、アドレス・デコーダはそのスロットおよび物理アドレスを無視する
ように配置される。
【0156】 アドレス・デコード・ロジック142はさらに、DMA要求の適当な処理セッ
ト14/16へのルーティングを制御するように動作可能である。ブリッジが複
合モードである場合、そのDMAアクセスは非同期の処理セット14/16のす
べてに対して自動的に割り付けされる。アドレス・デコード・ロジック142は
、そのブリッジが、ブリッジ・コントローラ132の制御下にあって(図8参照
)、複合モードにあることを認識することになる。しかし、ブリッジがスプリッ
ト・モードである場合には、DMA要求が送られる処理セットがあるとして、ど
ちらの処理セットに対して要求を送るのかを決定する必要がでてくる。
【0157】 システムがスプリット・モードにあるときは、そのアクセスは当該のスロット
を所有している処理セット14または16に向けられる。スロットが未所有であ
る場合には、ブリッジはそのDMA要求に対して応答しない。スプリット・モー
ドでは、アドレス・デコード・ロジック142は、当該のスロットに対するSS
R118にアクセスすることにより、そのDMA要求を出したデバイスの所有権
を決定するように動作可能である。適当なスロットはDバス許可信号により特定
することができる。アドレス・デコード・ロジック142は、ターゲット・コン
トローラ140を制御し(図8参照)、所有権ビットSSR[1]およびSSR
[2]に基づいてそのDMA要求を適当な処理セット14/16に渡すように動
作可能である。ビットSSR[1]がセットされている場合、第1の処理セット
14が所有者であり、DMA要求は第1の処理セットに渡される。ビットSSR
[2]がセットされている場合、第2の処理セット16が所有者であり、DMA
要求は第2の処理セットに渡される。ビットSSR[1]とSSR[2]の両方
共がセットされている場合には、そのDMA要求はアドレス・デコーダにより無
視され、処理セット14および16のいずれにも渡されない。
【0158】 図27は、図24に関連して図示して、DMA照合プロセスを要約した流れ図
である。
【0159】 ステージS20において、Dバス調停装置160は、Dバス22に対するアク
セスを調停する。
【0160】 ステージS21において、アドレス・デコーダ142は、地図的アドレス・マ
ップにアクセスすることによって、DMA要求を用いて供給されたDMAアドレ
スを検証する。
【0161】 ステージS22において、そのアドレスが当該のスロットに対して予期される
範囲外にある場合には、アドレス・デコーダはこのDMAアクセスを無視する。
【0162】 予期される範囲内にある場合には、ステージS23に示すように、アドレス・
デコーダの動作は、そのブリッジが複合モードにあるか、スプリット・モードに
あるかにより異なる。
【0163】 ブリッジが複合モードである場合には、ステージS24において、アドレス・
デコーダは、ルーティング・マトリックス80(図6参照)がDMA要求を処理
セット14および16の双方に渡すようにターゲット・コントローラ140(図
8参照)を制御する。
【0164】 ブリッジスプリット・モードである場合には、アドレス・デコーダは、ステー
ジS25において、当該スロットに対するSSR118を参照して当該のスロッ
トの所有権を検証するように動作する。
【0165】 スロットが第1の処理セット14に割り付けされている(すなわち、SSR[
1]ビットがセットされている)場合には、ステージS26において、アドレス
・デコーダ142は、ルーティング・マトリックス80(図6参照)がそのDM
A要求を第1の処理セット14に渡すようにターゲット・コントローラ140(
図8参照)を制御する。
【0166】 スロットが第2の処理セット16に割り付けされている(すなわち、SSR[
2]ビットがセットされている)場合には、ステージS27において、アドレス
・デコーダ142は、ルーティング・マトリックス80(図6参照)がそのDM
A要求を第2の処理セット16に渡すようにターゲット・コントローラ140(
図8参照)を制御する。
【0167】 スロットが割り付けされていない(すなわちSSR[1]ビットとSSR[2
]ビットのいずれもがセットされていない)場合には、ステップS18において
、アドレス・デコーダ142はこのDMA要求を無視、または廃棄し、このDM
A要求は処理セット14および16には渡されない。
【0168】 1つまたは複数の処理セットにより送出されたDMA、すなわち、直接ベクト
ル記憶アクセス(DVMA)の要求により、必要なメモリ動作(読み取りまたは
書き込みの適当な動作)が処理セットのメモリ上で実施される。
【0169】 ここで、続いて、EState(図11参照)からの自動的な回復ーを可能に
するためのメカニズムの一例について記載する。
【0170】 この自動的な回復ー処理には、ロックステップでのリスタートを企てるために
、処理セットの状態を共通のステータスに合わせて再統合することが含まれる。
これを実現するためには、上述のように自身をプライマリ処理セットであるとア
サートしている処理セットが、もう一方の処理セットに完全な状態をコピーする
。このためには、両方のプロセッサのメモリの内容が、ロックステップ・モード
でのリスタートを試みる前の時点で確実に同じであることが不可欠である。
【0171】 しかし、一方の処理セットからもう一方の処理セットにメモリの内容をコピー
することに伴う問題は、Dバス22に接続されているデバイスが、このコピー処
理中にプライマリ処理セットのメモリに対するアクセスをする直接記憶アクセス
(DMA)要求を企てる可能性があることである。DMAが有効である場合で、
すでにコピーがなされたメモリ領域に書き込みをすると、コピーの終了時点での
2つのプロセッサのメモリ状態が同じでなくなってしまう。原則としては、コピ
ー処理の全体に対してDMAを禁止することは可能ではある。しかし、システム
またはシステムのリソースが利用不可能となる時間を最短にすることが望ましい
ことを考慮に入れると、こうした禁止は好ましくない。別法として、コピーの期
間中にDMA動作が発生したときには、コピー動作の全体をリトライさせること
が可能である。しかし、コピーのリトライ中にさらにDMA動作が実施される可
能性が高く、したがって、この代案ではうまくない。したがって、本システムで
は、ブリッジ内にダーティRAM124を設けている。上述のように、ダーティ
RAM124はブリッジのRAMメモリ126の一部として構成されている。
【0172】 ダーティRAM124は、例えば、メモリのブロックまたはページの各々に対
するダーティ・ビットなどのダーティ・インジケータ(dirty indic
ator)を有するビット・マップを備えている。当該のメモリ領域に対する書
き込みアクセスが行われると、メモリのあるページに対するビットをセットする
。本発明の一実施形態では、メインの処理セットのメモリの各8Kページごとに
1ビットを設けている。処理セットのメモリのあるページのビットは、Dバス2
2に接続されたデバイスからの処理セット14または16のいずれかのメモリの
当該のページに対するDMA要求をデコードした時点で、アドレス・デコーダ1
42により自動的にセットされる。ダーティRAMは、処理セットにより読み取
られたときには、例えば、コピー・パス(copy pass)の開始時点の読
み取りおよびクリア命令により、リセットまたはクリアすることができ、これに
より所与の時刻以降にダーティとなったページの記録を開始することができる。
【0173】 ダーティRAM124はワード単位で読み取ることができる。ダーティRAM
124を読み取るために選択したワード・サイズが大きい場合には、ダーティR
AM124に対する読み取りかつリセットが最適化される。
【0174】 したがって、コピー・パスの終了時点でのダーティRAM124内のビットに
より、処理セットのメモリのうちのコピー期間中にDMA書き込みによって変更
された(すなわち、ダーティとなった)ページが指示される。次いで、メモリの
うちのダーティとなったページのみに対して、さらに別のコピー・パスを実行す
る。こうすることにより、その所要時間はメモリの全体をコピーするより短くな
る。したがって、次のコピー・パスの終了時点でダーティであるとマークされる
ページが減り、その結果、コピー・パスをどんどん短くすることができるのが普
通である。かつては、最終の、短い、コピー・パスの短期間でDMA書き込みの
禁止を決定する必要があったが、2つの処理セットのメモリがその終了時点で同
じとなり、プライマリ処理セットはリセット動作を行って複合モードをリスター
トさせることができるようになる。
【0175】 ダーティRAM124は、複合モードおよびスプリット・モードの双方におい
てセットおよびクリアされる。このため、スプリット・モードではダーティRA
M124はいずれの処理セットによってもクリアすることができる。
【0176】 ダーティRAM124のアドレスは、Dバス・デバイスにより提示されたPC
Iアドレスのビット13〜28からデコードされる。アドレス・ビット29〜3
1の不正な組み合わせをもった誤ったアクセスがあると、ブリッジが処理セット
に対してこれらのトランザクションを渡さない場合であっても、このアクセスは
ダーティRAM124内にマッピングされ、書き込みに関する1ビットがダーテ
ィにされる。
【0177】 ダーティRAM124を読み取るときには、ブリッジは0×00008000
から0×0000ffffまでの領域の全体をダーティRAMと規定し、読み取
りがあるとこの範囲内の各位置の内容はクリアされることになる。
【0178】 読み取られる時点でクリアされる単一のダーティRAM124を設けることの
代替として、別法では、2つのダーティRAMを設け、その1つに対する読み取
り中に別の1つに対して書き込みを行うようなトグル・モードで使用している。
【0179】 図28は、ダーティRAM124の動作を要約した流れ図である。
【0180】 ステージS41において、プライマリ処理セットはダーティRAM124を読
み取る、この読み取りによりダーティRAM124はリセットされる結果となる
【0181】 ステージS42において、プライマリ・プロセッサ(例えば、処理セット14
)は、自身のメモリ56の全体をもう一方の処理セット(例えば、処理セット1
6)のメモリ56にコピーする。
【0182】 ステージS43において、プライマリ処理セットは、ダーティRAM124を
読み取る、この読み取りによりダーティRAM124はリセットされる結果とな
る。
【0183】 ステージS44において、プライマリ・プロセッサは、ダーティRAM124
に書き込んだビット数が予め定めたビット数未満であるか否かを決定する。
【0184】 予め定めたビット数を超えるビット数がセットされている場合には、ステージ
S45において、プロセッサは、自身のメモリ56のダーティとなったページを
、ステージS43においてダーティRAM124から読み取ったダーティ・ビッ
トの指示に従って、もう一方の処理セットのメモリ56にコピーする。次いで、
制御はステージS43に戻される。
【0185】 ステージS44において、ダーティRAM124内に書き込まれたビット数が
予め定めたビット数未満であるか否かが決定され、ステージS45において、プ
ライマリ・プロセッサはブリッジに対し当該デバイスからDバス22へのDMA
要求を禁止させる。この禁止は、例えば、デバイス・スロットの各々に対する調
停イネーブル・ビットをクリアして、これによりDMAデバイスのDバス22に
対するアクセスを拒絶することにより実施される。別法としては、そのアドレス
・デコーダ142は、プライマリ・プロセッサからの命令に基づいてそのDMA
要求を無視するように構成することができる。DMAアクセスが妨げられている
期間中に、プライマリ・プロセッサは、次いで、ダーティRAM124内でセッ
トされているビットに対応したメモリ・ページに関して、自身のメモリからもう
一方のプロセッサのメモリ56への最終のコピー・パスを行う。
【0186】 ステージS47において、プライマリ・プロセッサは、複合モードを起動させ
るためのリセット動作を発行する。
【0187】 ステージS48において、DMAアクセスは再び可能になる。
【0188】 本発明の具体的な実施形態を記載してきたが、添付の特許請求の範囲に規定し
た本発明の精神および範囲内で、多くの修正、追加および/または代用が可能で
あることを理解されたい。例えば、具体的な記載では2つの処理セットを設けて
いるが、この具体的な記載の特徴は、3つ以上の処理セットを設けるように修正
することができることを理解されたい。
【図面の簡単な説明】
【図1】 本発明の一実施形態を取り入れたフォールトトレラントなコンピュータ・シス
テムの概要図である。
【図2】 図1の実施に基づくシステムの具体的な実施に関する概要図である。
【図3】 処理セットの1つの実施を表す概要図である。
【図4】 処理セット別の例を表す概要図である。
【図5】 別の処理セットを表す概要図である。
【図6】 図1のシステムに対するブリッジの一実施形態のブロック概要図である。
【図7】 図6のブリッジの記憶に関するブロック概要図。
【図8】 図6のブリッジの制御ロジックに関するブロック概要図
【図9】 図6のブリッジのルーティング・マトリックスを表す概要図である。
【図10】 図6のブリッジの実施の一例の図である。
【図11】 図6のブリッジの動作状態を表した状態図である。
【図12】 図6のブリッジの動作の各ステージを表した流れ図である。
【図13】 図12のうちの1つの動作ステージの詳細図である。
【図14】 図1のシステムでのI/Oサイクルのポスティングを表した図である。
【図15】 ポスティング済み書き込みバッファ内に格納されているデータを表した図であ
る。
【図16】 スロット応答レジスタを表す概要図である。
【図17】 異種データ書き込みステージを表した図である。
【図18】 図17の1つの修正形態を表した図である。
【図19】 異種データ読み取りステージの1つを表した図である。
【図20】 別の異種データ読み取りステージを表した図である。
【図21】 異種データ書き込みメカニズムの動作を要約した流れ図である。
【図22】 図1のシステムの範囲内での調停を説明するためのブロック概要図である。
【図23】 デバイス・バス調停装置の動作を表した状態図である。
【図24】 ブリッジ調停装置の動作を表した状態図である。
【図25】 PCI信号のタイミング図である。
【図26】 直接記憶アクセスに対する図6のブリッジの動作を表した概要図である。
【図27】 図6のブリッジ内の直接記憶アクセスの一方法を表した流れ図である。
【図28】 ダーティRAMをモニタすることを含む再統合方法の1つの流れ図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年5月9日(2000.5.9)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 オイラキン,フェミ・エイ イギリス国・ユービイ3 1エルイー・ミ ドルセクス・ヘイズ・ジャニパー ウェ イ・44 (72)発明者 ガーネット,ポール・ジェイ イギリス国・ダブリュエイ12 9ピイダブ リュ・マージーサイド・ニュートン−ル− ウィローズ・ザ ルークリー・2 Fターム(参考) 5B034 AA02 CC01 CC02 DD02 5B061 FF01 GG01 GG12 RR03 【要約の続き】 することができる。ブリッジ制御機構は、ダーティRA M機構中で識別されたメモリ領域の内容のコピーが完了 して、そのように識別された領域がそれ以上ないとき に、プライマリ処理セットからの同期化リセット動作に 応答して、スプリットモードから複合モードに移行する ことができる。

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 メモリを含む第1の処理セットのI/Oバスに接続する第1
    のプロセッサ・バス・インタフェースと、 メモリを含む第2の処理セットのI/Oバスに接続する第2のプロセッサ・バ
    ス・インタフェースと、 デバイス・バスに接続するデバイス・バス・インタフェースと、 前記デバイス・バス上の前記デバイスから前記処理セットのメモリへの直接メ
    モリ・アクセスを許可し、ブリッジへのアクセスに対して前記第1と第2の処理
    セット間を第1のスプリット・モードで調停し、前記第1および第2の処理セッ
    トのロックステップ動作を第2の複合モードで監視するように動作可能なブリッ
    ジ制御機構と、 前記デバイス・バス上の前記デバイスによる直接メモリ・アクセスによって変
    更されたプロセッサ・セット・メモリの領域を監視するダーティRAM機構と を備えるマルチプロセッサ・システム用のブリッジ。
  2. 【請求項2】 前記ダーティRAM機構が、メモリの領域がDMAアクセス
    によって書き込まれたときに所定の値にセットされるダーティ・インジケータを
    処理セット・メモリの複数の領域のそれぞれに規定する請求項1に記載のブリッ
    ジ。
  3. 【請求項3】 前記ダーティ・インジケータがダーティ・ビットである請求
    項2に記載のブリッジ。
  4. 【請求項4】 前記処理セットが、処理セットの一方がスプリット・モード
    でプライマリ処理セットとして、かつ、そのメモリの内容を他方の処理セットに
    コピーできるように動作可能なように構成される請求項2に記載のブリッジ。
  5. 【請求項5】 前記プライマリ処理セットが、コピー・パスの最後に、対応
    するダーティ・インジケータがセットされたことによって書き込みがあったと前
    記RAM機構中で識別されたメモリ領域をそのメモリから他方の処理セットのメ
    モリに再コピーする請求項3に記載のブリッジ。
  6. 【請求項6】 前記ブリッジ制御機構が、前記第1および第2のプロセッサ
    と前記デバイス・バス上のデバイスとによるブリッジへのアクセスを調停するよ
    うにスプリット・モードで動作可能に構成された調停装置を備える請求項4に記
    載のブリッジ。
  7. 【請求項7】 前記ブリッジ制御機構が、前記ダーティRAM機構中で識別
    されたメモリ領域の内容のコピーが完了して、そのように識別された領域がそれ
    以上ないときに、前記プライマリ処理セットからの同期化リセット動作に応答し
    て、スプリット動作モードから複合動作モードに移行するように動作可能に構成
    される請求項6に記載のブリッジ。
  8. 【請求項8】 前記ダーティRAM機構が、ブリッジ中のランダム・アクセ
    ス・メモリ中に構成されたダーティRAMを備える請求項7に記載のブリッジ。
  9. 【請求項9】 前記ダーティRAMの内容が、処理セットによって読取られ
    る際にクリアされる請求項6に記載のブリッジ。
  10. 【請求項10】 他の処理セットのI/Oバスに接続するための少なくとも
    1つの他のプロセッサ・バス・インタフェースを備える請求項1に記載のブリッ
    ジ。
  11. 【請求項11】 第1の処理セット用の第1のI/Oバス、第2の処理セッ
    ト用の第2のI/Oバス、およびデバイス・バスとインタフェースする手段と、
    デバイス・バス上のデバイスによる前記処理セットのメモリへの直接メモリ・ア
    クセスを許可する手段とブリッジへのアクセスに対して前記第1および第2の処
    理セット間を第1のスプリット・モードで調停する手段と、前記第1および第2
    の処理セットのロックステップ動作を第2の複合モードで監視する手段と、前記
    デバイス・バス上のデバイスによる直接メモリ・アクセスによって変更されたプ
    ロセッサ・セット・メモリの領域を監視するためのダーティRAM手段とを備え
    る、マルチプロセッサ・システム用のブリッジ。
  12. 【請求項12】 メモリおよび第1のI/Oバスを有する第1の処理セット
    と、メモリおよび第2のI/Oバスを有する第2の処理セットと、デバイス・バ
    スと、前記デバイス・バス上の少なくとも1つのデバイスと、前記第1のI/O
    バス、前記第2のI/Oバス、および前記デバイス・バスに接続されるブリッジ
    とを備えるコンピュータ・システムであって、 前記デバイス・バス上の前記少なくとも1つのデバイスから前記処理セットの
    メモリへの直接メモリ・アクセスを許可し、前記ブリッジへのアクセスに対して
    前記第1および第2の処理セット間を第1のスプリット・モードで調停し、前記
    第1および第2の処理セットのロックステップ動作を第2の複合モードで監視す
    るように動作可能に構成されるブリッジ制御機構と、 前記デバイス・バス上の前記デバイスによる直接メモリ・アクセスによって変
    更されたプロセッサ・セット・メモリの領域を監視するための、前記ブリッジ中
    のダーティRAM機構と を備えるコンピュータ・システム。
  13. 【請求項13】 各処理セットが少なくとも1つのプロセッサ、メモリ、お
    よび処理セットI/Oバス・コントローラを備える請求項12に記載のコンピュ
    ータ・システム。
  14. 【請求項14】 少なくとも1つの他の処理セットをさらに備える請求項1
    2に記載のコンピュータ・システム。
  15. 【請求項15】 メモリおよび第1のI/Oバスを有する第1の処理セット
    と、メモリおよび第2のI/Oバスを有する第2の処理セットと、少なくとも1
    つのデバイスが接続されたデバイス・バスと、前記第1のI/Oバス、前記第2
    のI/Oバス、および前記デバイス・バスに接続されるブリッジとを備えるマル
    チプロセッサ・システムを操作する方法であって、 前記デバイス・バス上の前記少なくとも1つのデバイスから前記処理セットの
    メモリへの直接メモリ・アクセスを許可し、および 前記デバイス・バス上の前記デバイスによる直接メモリ・アクセスによって変
    更されたプロセッサ・セット・メモリの領域を前記ブリッジ中のダーティRAM
    中で監視することを含む方法。
  16. 【請求項16】 メモリおよび第1のI/Oバスを有する第1の処理セット
    と、メモリおよびI/Oバスを有する第2の処理セットと、少なくとも1つのデ
    バイスが接続されたデバイス・バスと、前記第1のI/Oバス、前記第2のI/
    Oバス、および前記デバイス・バスに接続されるブリッジとを備えるフォールト
    ・トレラントなマルチプロセッサ・システムを再統合する方法であって、 ロックステップ・エラーに続いてスプリット・モードで前記システムを操作し
    、その際に前記処理セットの一方が他方の処理セットにその状態をコピーするよ
    うに動作可能であり、そのスプリット・モードの間に、前記デバイス・バス上の
    前記少なくとも1つのデバイスから前記処理セットのメモリへの直接メモリ・ア
    クセスが許可され、前記デバイスによって書き込まれたプロセッサ・セット・メ
    モリの領域が前記ブリッジ中のダーティRAM中でマークされ、および 前のコピー・ステップの開始以来にダーティにされたダーティRAM中に示さ
    れたメモリ・エリアをコピーするステップをいくつかの回数行うことを含む方法
  17. 【請求項17】 最後のコピー・ステップの間に直接メモリ・アクセスが禁
    止され、次いで複合モードが開始され、この複合モードで前記第1および第2の
    処理セットのロックステップ動作が監視される請求項16に記載の方法。
JP2000555159A 1998-06-15 1999-06-03 マルチプロセッサ・システム用のブリッジにおけるメモリ・ページ変更のトラッキング Pending JP2002518734A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/097,486 1998-06-15
US09/097,467 US6138198A (en) 1998-06-15 1998-06-15 Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data write accesses
US09/097,486 US6260159B1 (en) 1998-06-15 1998-06-15 Tracking memory page modification in a bridge for a multi-processor system
PCT/US1999/012429 WO1999066402A1 (en) 1998-06-15 1999-06-03 Tracking memory page modification in a bridge for a multi-processor system

Publications (1)

Publication Number Publication Date
JP2002518734A true JP2002518734A (ja) 2002-06-25

Family

ID=38829267

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000555159A Pending JP2002518734A (ja) 1998-06-15 1999-06-03 マルチプロセッサ・システム用のブリッジにおけるメモリ・ページ変更のトラッキング
JP2000555160A Pending JP2002518735A (ja) 1998-06-15 1999-06-03 異種データ・レジスタを有するプロセッサ・ブリッジ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2000555160A Pending JP2002518735A (ja) 1998-06-15 1999-06-03 異種データ・レジスタを有するプロセッサ・ブリッジ

Country Status (6)

Country Link
US (2) US6138198A (ja)
EP (2) EP1086424B1 (ja)
JP (2) JP2002518734A (ja)
AT (2) ATE213554T1 (ja)
DE (2) DE69900916T2 (ja)
WO (2) WO1999066403A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217608A (ja) * 2008-03-11 2009-09-24 Hitachi Ltd 仮想計算機システム及びその制御方法
WO2010116402A1 (ja) * 2009-03-30 2010-10-14 富士通株式会社 情報処理装置

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587961B1 (en) * 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
US7197589B1 (en) * 1999-05-21 2007-03-27 Silicon Graphics, Inc. System and method for providing access to a bus
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US6708244B2 (en) * 1999-07-22 2004-03-16 Cypress Semiconductor Corp. Optimized I2O messaging unit
US6691257B1 (en) * 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6901481B2 (en) * 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6658519B1 (en) * 2000-07-28 2003-12-02 International Business Machines Corporation Bus bridge with embedded input/output (I/O) and transaction tracing capabilities
US6636919B1 (en) * 2000-10-16 2003-10-21 Motorola, Inc. Method for host protection during hot swap in a bridged, pipelined network
GB2369693B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Protection for memory modification tracking
GB2369692B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Processor state reintegration
GB2369694B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
GB2369691B (en) * 2000-11-29 2003-06-04 Sun Microsystems Inc Control logic for memory modification tracking
GB2369690B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Enhanced protection for memory modification tracking
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9411532B2 (en) * 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
EP1249744A1 (de) * 2001-08-23 2002-10-16 Siemens Aktiengesellschaft Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
US6976191B2 (en) * 2002-03-07 2005-12-13 International Business Machines Corporation Method and apparatus for analyzing hardware errors in a logical partitioned data processing system
US6934888B2 (en) * 2002-03-07 2005-08-23 International Business Machines Corporation Method and apparatus for enhancing input/output error analysis in hardware sub-systems
GB2390442B (en) * 2002-03-19 2004-08-25 Sun Microsystems Inc Fault tolerant computer system
GB2399917B (en) * 2002-03-19 2005-01-19 Sun Microsystems Inc Computer system
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
JP2004046455A (ja) * 2002-07-10 2004-02-12 Nec Corp 情報処理装置
JP3774826B2 (ja) * 2002-07-11 2006-05-17 日本電気株式会社 情報処理装置
US7096306B2 (en) * 2002-07-31 2006-08-22 Hewlett-Packard Development Company, L.P. Distributed system with cross-connect interconnect transaction aliasing
DE102004001819A1 (de) * 2004-01-07 2005-08-04 Siemens Ag Redundante Rechnerkonfiguration
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
US7669073B2 (en) * 2005-08-19 2010-02-23 Stratus Technologies Bermuda Ltd. Systems and methods for split mode operation of fault-tolerant computer systems
US7673199B2 (en) * 2006-02-03 2010-03-02 Teradyne, Inc. Multi-stream interface for parallel test processing
US7984336B2 (en) * 2006-05-24 2011-07-19 Freescale Semiconductor, Inc. Method and system for storing data from a plurality of processors
US7430584B1 (en) * 2008-03-12 2008-09-30 Gene Fein Data forwarding storage
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US8458285B2 (en) * 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7877456B2 (en) * 2008-04-08 2011-01-25 Post Dahl Co. Limited Liability Company Data file forwarding storage and search
US8386585B2 (en) * 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US8452844B2 (en) * 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
ES2630035T3 (es) * 2008-06-02 2017-08-17 Kabushiki Kaisha Toshiba Dispositivo de control de procedimiento digital
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US8478823B2 (en) * 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8352635B2 (en) 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
CN102628921B (zh) * 2012-03-01 2014-12-03 华为技术有限公司 一种集成电路及对集成电路中总线状态进行监控的方法
CN103793190A (zh) * 2014-02-07 2014-05-14 北京京东方视讯科技有限公司 一种信息显示方法、信息显示装置及显示设备
CN113740851B (zh) * 2021-09-07 2023-06-13 电子科技大学 一种分时复用单ddr的sar成像数据处理系统
US12032960B2 (en) * 2022-03-30 2024-07-09 Infineon Technologies Ag Flexible support for device emulation and bank swapping

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503535A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for recovery from failures in a multiprocessing system
US4916704A (en) * 1987-09-04 1990-04-10 Digital Equipment Corporation Interface of non-fault tolerant components to fault tolerant system
EP0306211A3 (en) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
US5551035A (en) * 1989-06-30 1996-08-27 Lucent Technologies Inc. Method and apparatus for inter-object communication in an object-oriented program controlled system
DE69028821D1 (de) 1989-08-01 1996-11-14 Digital Equipment Corp Massenspeicherübertragung während der Neusynchronisierung
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
US5301283A (en) * 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US6233702B1 (en) 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
US5339408A (en) * 1992-12-30 1994-08-16 Digital Equipment Corporation Method and apparatus for reducing checking costs in fault tolerant processors
US5809340A (en) * 1993-04-30 1998-09-15 Packard Bell Nec Adaptively generating timing signals for access to various memory devices based on stored profiles
US6311286B1 (en) * 1993-04-30 2001-10-30 Nec Corporation Symmetric multiprocessing system with unified environment and distributed system functions
EP0986008B1 (en) * 1993-12-01 2008-04-16 Marathon Technologies Corporation Computer system comprising controllers and computing elements
US5586253A (en) * 1994-12-15 1996-12-17 Stratus Computer Method and apparatus for validating I/O addresses in a fault-tolerant computer system
EP0727728A1 (en) * 1995-02-15 1996-08-21 International Business Machines Corporation Computer system power management
WO1996029652A1 (en) * 1995-03-22 1996-09-26 Ast Research, Inc. Rule-based dram controller
TW320701B (ja) * 1996-05-16 1997-11-21 Resilience Corp
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
US5844856A (en) * 1996-06-19 1998-12-01 Cirrus Logic, Inc. Dual port memories and systems and methods using the same
US5953742A (en) 1996-07-01 1999-09-14 Sun Microsystems, Inc. Memory management in fault tolerant computer systems utilizing a first and second recording mechanism and a reintegration mechanism
US6148348A (en) * 1998-06-15 2000-11-14 Sun Microsystems, Inc. Bridge interfacing two processing sets operating in a lockstep mode and having a posted write buffer storing write operations upon detection of a lockstep error
US6173351B1 (en) * 1998-06-15 2001-01-09 Sun Microsystems, Inc. Multi-processor system bridge

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217608A (ja) * 2008-03-11 2009-09-24 Hitachi Ltd 仮想計算機システム及びその制御方法
WO2010116402A1 (ja) * 2009-03-30 2010-10-14 富士通株式会社 情報処理装置

Also Published As

Publication number Publication date
EP1090349A1 (en) 2001-04-11
EP1086424A1 (en) 2001-03-28
DE69900916D1 (de) 2002-03-28
US6260159B1 (en) 2001-07-10
DE69900947D1 (de) 2002-04-04
ATE213850T1 (de) 2002-03-15
WO1999066402A1 (en) 1999-12-23
JP2002518735A (ja) 2002-06-25
US6138198A (en) 2000-10-24
DE69900916T2 (de) 2002-08-29
DE69900947T2 (de) 2002-09-12
WO1999066403A1 (en) 1999-12-23
EP1086424B1 (en) 2002-02-27
ATE213554T1 (de) 2002-03-15
EP1090349B1 (en) 2002-02-20

Similar Documents

Publication Publication Date Title
JP2002518734A (ja) マルチプロセッサ・システム用のブリッジにおけるメモリ・ページ変更のトラッキング
JP2002518738A (ja) ポスティング済み書き込みバッファを備えたプロセッサ・ブリッジ
JP2002518745A (ja) サイクル終了モニタ付きのバス・コントローラ
JP2002518742A (ja) マルチプロセッサ・システム用のブリッジにおける直接記憶アクセス
JP2002518739A (ja) マルチプロセッサ・システム・ブリッジ
JP2002518736A (ja) アクセスが制御されるマルチプロセッサ・システム・ブリッジ
US6065102A (en) Fault tolerant multiple client memory arbitration system capable of operating multiple configuration types
JP2002518737A (ja) 異種データ・アクセスを伴うプロセッサ・ブリッジ
JP2002526818A (ja) コンピュータ・システムにおけるリソース制御
JPH0954703A (ja) メモリコピーシステム