JPH09128356A - フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム - Google Patents

フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム

Info

Publication number
JPH09128356A
JPH09128356A JP8145278A JP14527896A JPH09128356A JP H09128356 A JPH09128356 A JP H09128356A JP 8145278 A JP8145278 A JP 8145278A JP 14527896 A JP14527896 A JP 14527896A JP H09128356 A JPH09128356 A JP H09128356A
Authority
JP
Japan
Prior art keywords
packet
data
memory
register
router
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.)
Granted
Application number
JP8145278A
Other languages
English (en)
Other versions
JP3800564B2 (ja
Inventor
W Horst Robert
ダブリュー ホースト ロバート
David J Garcia
ジェイ ガーシア ディヴィッド
William Patterson Bunton
パターソン バントン ウィリアム
William F Bruckert
エフ ブルッカート ウィリアム
Daniel L Fowler
エル ファウラー ダニエル
Curtis Willard Jones Jr
ウィーラード ジョーンズ ジュニア カーティス
David Paul Sonnier
ポール ソーニア ディヴィッド
William Joel Watson
ジョエル ワトソン ウィリアム
Frank A Williams
エイ ウィリアムス フランク
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH09128356A publication Critical patent/JPH09128356A/ja
Application granted granted Critical
Publication of JP3800564B2 publication Critical patent/JP3800564B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31727Clock circuits aspects, e.g. test clock circuit details, timing aspects for signal generation, circuits for testing clocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • 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/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • 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
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • 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/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • 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/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • 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
    • 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/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2736Tester hardware, i.e. output processing circuits using a dedicated service processor for test
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Abstract

(57)【要約】 (修正有) 【課題】 フェイル−ファースト、フェイル−ファンク
ショナル、フォルトトレラント・マルチプロセッサ・シ
ステム。 【解決手段】 マルチプロセッサ・システムは、それぞ
れが実質的に同一に構成された多数のサブ−プロセッサ
・システムを含む。サブ−プロセッサ・システムの一つ
のCPUは、システムのI/O装置、またはシステムの
CPUと、ルーティング装置を通して、通信しうる。I
/O装置とCPUsとの間の通信は、パケット化された
メッセージによって行なわれる。CPUs及びI/O装
置は、システムのCPUのメモリへ書込まれるか、また
はそれから読取られる。メモリ保護は、そのCPUのメ
モリへの読取り/書込みに対する妥当性検査を備えてい
るような各CPUによって保守される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータ処理シス
テムに関し、特に多重処理システム並びにプロセッサ間
及び入力/出力連絡の連結性を供給するリライアブル・
システム・エリア・ネットワークに関する。更に、シス
テムは、フォルトトレラント機能を示すべく構成され
る。
【0002】
【従来の技術】今日のフォルトトレラント・コンピュー
ティングは、特殊な軍事及び通信システムから汎用の高
可用性(high availability) 商用(commercial)システム
に発展した。フォルトトレラント・コンピュータの発展
は、よく記録されている(D. P. Siewiorek, R. S. Swa
rz, "The Theory and Practice of Reliable System De
sign", Digital Press, 1982及びA. Avizienis, H. Kop
etz, J. C. Laprie, eds, "The Evolution of Fault To
lerant Computing", Vienna: Springer-Verlag,1987を
参照)。初期の高可用性システムは、軍事アプリケーシ
ョンに対してアイ・ビー・エム(IBM)、ユニヴァック(U
nivac)、及びレミントン・ランド(Remington Rand)によ
って1950年代に開発された。1960年代には、アメリカ航
空宇宙局(NASA)アイ・ビー・エム(IBM) 、エス・アール
・アイ(SRI) 、シー・エス・ドレイパー研究所(C. S. D
raper Laboratory) 及びジェット推進研究所(Jet Propu
lsion Laboratory) は、航空宇宙アプリケーションに対
するガイダンス コンピュータの開発にフォルトトレラ
ントを適用し始めた。また、1960年代には、最初の米国
電信電話会社(AT&T)製電子スイッチングシステム
の開発もあった。
【0003】最初の商用フォルトトレラント・マシン
は、オンライン・トランザクション処理アプリケーショ
ン用に1970年代にタンデム・コンピュータによって紹介
された(J. Bartlett, "A NonStop Kernal", in proc. E
ighth Symposium on OperatingSystem Principles, pp.
22-29, Dec. 1981) 。1980年代には、多数他の商用フ
ォルトトレラント・システムが紹介された(O. Serlin,
"Fault-Tolerant Systems in Commercial Application
s", Computer, pp. 19-30, August, 1984) 。現行の商
用フォルトトレラント・システムは、分散型メモリ・マ
ルチプロセッサ、共用−メモリ・トランザクション・ベ
ース・システム、“ペア−アンド−スペア(pair-and-sp
are)”ハードウェア・フォルトトレラント・システム
(R. Freiburghouse, "Making Processing Fail-safe",
Mini-micro Systems, pp. 255-264, May1982;米国特許
第 4,907,228号公報もこのペア−アンド−スペア、及び
共用−メモリ・トランザクション・ベース・システム技
術の一例である) 、及びこの出願及びその中に開示され
た発明の出願人である、アメリカ合衆国カリフォルニア
州カッパティノのタンデム・コンピュータ・インコーポ
レイティッドによって製造される“インテグリティ(Int
egrity) ”コンピューティング・システムのようなトリ
プル−モジュラ−リダンダント(triple-modular-redund
ant)・システムを含む。
【0004】商用フォルトトレラント・コンピュータの
殆どのアプリケーションは、オンライン・トランザクシ
ョン処理に分類される。金融機関は、電子資金移動(ele
ctronic funds transfer) 、自動窓口機(ATM)の制
御、及び株式市場取引システム(stock market trading
systems)に対して高可用性を必要とする。製造メーカー
は、自動化された工場の制御、在庫管理、及びオンライ
ン文書アクセス・システムに対してフォルトトレラント
・マシンを用いる。フォルトトレラント・マシンの他の
アプリケーションは、予約システム、行政データベー
ス、賭け事(wagering)システム、及び電気通信システム
を含む。
【0005】フォルトトレラント・マシンのヴェンダー
(Vendors) は、増大したシステム可用性、連続処理の両
方、及び故障が存在するときでもデータの正確性を達成
することを試みる。特定のシステム・アーキテクチャに
より、故障にもかかわらずランを継続するか、または処
理が故障が起きたときに最も近いチェックポイントから
自動的に再開されるかのいずれかである。あるフォルト
トレラント・システムは、故障したコンポーネントにつ
いて再構成可能であるべく十分なコンポーネント冗長性
を備えているが、故障したモジュールで走行している処
理は、失われる。商用フォルトトレラント・システムの
ヴェンダーは、プロセッサ及びディスクを越えてフォル
トトレランスを拡張した。信頼性における大きな改良を
行うために、電源、ファン及びモジュール間接続を含ん
でいる、故障の全てのソース(原因)がアドレスされな
ければならない。タンデム・コンピュータ・インコーポ
レイティッドによって製造される“ノン・ストップ(Non
Stop) ”及び“インテグリティ”アーキテクチャ(この
出願の出願人による、両者がそれぞれ広範に説明された
米国特許第 4,228,496号公報、米国特許第 5,146,589号
公報及び米国特許第 4,965,717号公報;NonStop (ノン
・ストップ)及びIntegrity (インテグリティ)は、タ
ンデム・コンピュータ・インコーポレイティッドの登録
商標である)は、商用フォルトトレラント・コンピュー
ティングに対する二つの現行のアプローチを表わす。上
記米国特許第 4,278,496号公報に一般に示した、ノン・
ストップ・システムは、一つのハードウェア・コンポー
ネントの故障にも係わらず動作(オペレーション)を継
続すべく設計されたマルチプル・プロセッサ・システム
を用いるアーキテクチャを採り入れている。通常動作で
は、各プロセッサ・システムは、“ホット・バックアッ
プ”としてよりも、その主要コンポーネントを独立にか
つ同時に用いる。ノン・ストップ・システム・アーキテ
クチャは、プロセッサ間連絡に対してバスによって相互
接続された16個のプロセッサ・システムまで含みう
る。各プロセッサ・システムは、メッセージ・ベース・
オペレーティング・システムのコピーを含むそれ自身の
メモリを有する。各プロセッサ・システムは、一つ以上
の入力/出力(I/O)バスを制御する。I/Oコント
ローラ及び装置の双方向ポーティング(dual-porting)
は、各装置への多重経路を供給する。ディスク記憶装置
のような、(プロセッサ・システムに対する)外部記憶
装置は、冗長永久データ記憶(redundantpermanent data
storage)を維持すべくミラーされうる。
【0006】このアーキテクチャは、“フェイル−ファ
ースト(fail-fast) ”動作を供給すべく各システム・モ
ジュールに自己検査ハードウェアを供給する:動作は、
他のモジュールの汚染を防ぐためにフォルトが発生した
ならば一時停止される。フォルトは、例えば、パリティ
検査、重合(複写)及び比較、並びに誤り検出コードに
よって検出される。フォルト検出は、主にハードウェア
の責任であり、フォルト回復は、ソフトウェアの責任で
ある。また、ノン・ストップ・マルチ−プロセッサ・ア
ーキテクチャでは、アプリケーション・ソフトウェア
(“プロセス”)は、プライマリ・プロセス及びバック
アップ・プロセスを含んでいる、“プロセス−ペア”と
してオペレーティング・システム下でシステム上で走り
うる。プライマリ・プロセスは、一つの多重プロセッサ
上で走り、バックアップ・プロセスは、異なるプロセッ
サ上で走る。バックアップ・プロセスは、通常、活動停
止状態であるが、プライマリ・プロセスからのチェック
ポイント・メッセージに応じてその状態を周期的に更新
する。チェックポイント・メッセージの内容は、完全状
態更新の形、または先のチェックポイント・メッセージ
からの変化だけを連絡する形を取ることができる。最初
は、チェックポイントは、アプリケーション・プログラ
ムに手動で挿入されたが、現行では、ほとんどのアプリ
ケーション・コードは、チェックポイントとトランザク
ション2段階コミット(transaction two-phase commit)
プロトコルとの組合せを通して回復を供給するトランザ
クション処理ソフトウェアの下で走る。
【0007】タンデム・ノン・ストップ・アーキテクチ
ャのプロセッサ間メッセージ・トラフィックは、各プロ
セッサが、それ自身を含んでいる、システムの全てのプ
ロセッサによる受信のために“私は、生きている(I'm A
live) ”メッセージを周期的にブロードキャストするこ
とを含み、ブロードキャストしているプロセッサがまだ
機能していることを他のプロセッサに知らせる。プロセ
ッサが故障したときには、その故障が発表されかつ故障
したプロセッサの周期的な“私は、生きている(I'm Ali
ve) ”メッセージの欠如によって識別される。応答とし
て、オペレーティング・システムは、最後のチェックポ
イントからプライマリ・エクスキューション(primary e
xecution) を始めるべく適切なバックアップ処理を導
く。新しいバックアップ処理は、別のプロセッサで開始
されうるか、または処理は、ハードウェアが修復される
までバックアップなしで走らせうる。米国特許第 4,81
7,091号公報は、この技術の一例である。
【0008】各I/Oコントローラは、それが取り付け
られた2つのプロセッサの一つによって管理される。コ
ントローラの管理は、プロセッサ間で周期的に切替えら
れる。管理しているプロセッサが故障したならば、コン
トローラの所有権は、他のプロセッサへ自動的に切替え
られる。コントローラが故障したならば、データへのア
クセスは、別のコントローラを通して維持される。ハー
ドウェア・フォルトトレランスを供給することに加え
て、上述したアーキテクチャのプロセッサ・ペアは、ソ
フトウェア・フォルトトレランスのある測定を供給す
る。プロセッサがソフトウェア・エラーにより故障する
ときには、バックアップ・プロセッサは、同じエラーに
遭遇することなく処理をしばしば成功裏に継続すること
ができる。バックアップ・プロセッサのソフトウェア環
境は、異なるキュー・レングス(queue lengths) 、テー
ブル・サイズ、及びプロセス・ミックスを一般に有す
る。ソフトウェア品質確認検査を逃れてくるソフトウェ
ア・バグのほとんどが、稀なデータ依存境界条件(infre
quent data dependent boundary conditions) を含むの
で、バックアップ処理は、しばしば成功する。上述した
アーキテクチャとは対照的に、インテグリティ・システ
ムは、フォルトトレラント・コンピューティングに対す
る別のアプローチを示す。1990年に紹介された、イ
ンテグリティは、ユニックス(Unix)の標準版を走らせる
べく設計された(“Unix(ユニックス)”は、アメリカ
合衆国デラウエア州のユニックス・システム研究所Inc.
の登録商標である)。互換性が主な目的であるシステム
では、ソフトウェアに対する変更をあまり必要としない
ので、ハードウェア故障回復は、論理的選択である。プ
ロセッサ及び局所メモリは、トリプル−モジュラ−リダ
ンダンシー(TMR)を用いて構成される。全てのプロ
セッサは、同じコードストリームを走らせるが、各モジ
ュールの刻時(clocking)は、刻時回路における故障(フ
ォルト)のトレランスを供給すべく独立である。3つの
ストリームのエクスキューション(実行)は、非同期で
あり、かついくつかのクロック周期だけ離れてドリフト
しうる。ストリームは、グローバル・メモリのアクセス
の間中に周期的に再同期される。TMRコントローラ・
ボード上の有権者(voters)は、プロセッサ・モジュール
の故障を検出しかつマスクする。メモリは、三重(tripl
icated) プロセッサ・ボード上の局所メモリと二重(dup
licated)TMRCボード上のグローバル・メモリに区分
される。システムの二重部分は、故障を検出するために
自己検査技術を用いる。各グローバル・メモリは、双方
向ポートされかつプロセッサ並びにI/Oプロセッサ
(IOPs)にインターフェイスされる。標準VME周
辺コントローラは、バス・インターフェイス・モジュー
ル(Bus Interface Module)(BIM)を通して一対のバ
スにインターフェイスされる。IOPが故障であるなら
ば、ソフトウェアは、全てのコントローラの制御を残存
するIOPに切替えるためにBIMsを用いることがで
きる。ミラー型ディスク記憶装置は、二つの異なるVM
Eコントローラに取り付けられうる。
【0009】インテグリティ・システムでは、全てのハ
ードウェア故障は、冗長ハードウェアによってマスクさ
れる。修理後、コンポーネントは、オンラインに再統合
される。
【0010】
【発明が解決しようとする課題】先の例は、フォルトト
レランスをデータ処理システムに組み込んでいる現在の
アプローチを示す。ソフトウェア回復を含んでいるアプ
ローチは、少ない冗長ハードウェアを必要とし、かつあ
るソフトウェア・フォルトトレランスの可能性を与え
る。ハードウェア・アプローチは、標準オペレーティン
グ・システムを有する完全互換性を許容しかつ他のシス
テム上で開発されたアプリケーションを透過的に走らせ
るべくエクストラ・ハードウェア冗長性を用いる。それ
ゆえに、上述したシステムは、ハードウェア(例えば、
冗長性を採り入れている、フェイル−ファンクショナ
ル)またはソフトウェア技術(例えば、高データ・イン
テグリティ・ハードウェアを有するソフトウェア回復を
採り入れている、フェイル−ファースト)のいずれかに
よりフォルトトレラント・データ処理を供給する。しか
しながら、上述したいずれのシステムも、単一データ処
理システムによる、ハードウェア(フェイル−ファンク
ショナル)及びソフトウェア(フェイル−ファースト)
アプローチの両方を用いる、フォルトトレラント・デー
タ処理を供給するように構成されているとは思われな
い。
【0011】上述したような、コンピューティング・シ
ステムは、電子データ交換(EDI)及びグローバル・
メッセージングのような、電子商業に対してしばしば用
いられる。しかしながら、そのような電子商業における
今日の要求は、ユーザの数が増加しかつメッセージが更
に複雑になるので、更に多くのスループット能力を要求
している。例えば、インターネットの最も広く用いられ
るファシリティである、テキスト−オンリー イー・メ
ール(e−mail)は、毎年かなり成長している。インタ
ーネットは、画像、音声、及びビテオ・ファイルを送付
するためにますます用いられている。音声記憶及び前送
り(voice store-and-forward) メッセージは、いたると
ころにあるようになり、かつデスクトップ・ビデオ会議
及びビデオ−メッセージは、ある組織(organization)で
受け入れを取得している。メッセージの各型は、更なる
スループットを継続的に要求する。そのような環境で
は、ローカル・エリア・ネットワーク(LANs)等の
ような種々の通信ネットワークにより相互接続された、
並列アーキテクチャが用いられる。
【0012】サーバ・アーキテクチャに対する重要な要
求事項は、膨大な量のデータを移動する能力である。サ
ーバは、データボリュームが増加しかつトランザクショ
ンが更に複雑になるときに付加されたスループット能力
を加えることができるように、スケーラブルな高帯域幅
を有すべきである。バス・アーキテクチャは、各システ
ム・コンポーネントに対して利用可能な帯域幅の量を制
限する。バス上のコンポーネントの数が増加すると、そ
れぞれに対して更に少ない帯域幅が利用可能である。加
えて、即応答は、全てのアプリケーションに対して有利
でありかつ対話形アプリケーションに対して必要であ
る。それは、ソース(発生源)からデスティネーション
(宛先)にデータを移動するのにどのくらいかかるかの
測定である、非常に少ない待ち時間(latency) を必要と
する。応答時間に密接に関連した、待ち時間は、サービ
ス・レベル及び被雇用者生産性に影響を及ぼす。本発明
の目的は、単一システムで、フォルトトレラント・アー
キテクチャ、ハードウェア冗長性及びソフトウェア回復
技術に上記二つのアプローチの両方を組み合わせる多重
プロセッサ・システムを提供することである。
【0013】
【課題を解決するための手段及びその作用並びに効果】
一般に、本発明は、多重サブ(副)処理システムから構
成された処理システムを含む。各サブ処理システムは、
主要処理素子として、同時に命令ストリームの各命令を
実行すべくロック−ステップ、同期方式で動作している
一対のプロセッサを含む中央処理装置(CPU)を有す
る。サブ処理システムのそれぞれは、CPU及びサブ処
理システムのアソート(assorted)された周辺装置(例え
ば、マス記憶装置、プリンタ等)を含んでいる、より大
きな処理システムの種々のコンポーネント間、並びによ
り大きな総括処理システムを構成しうるサブ−プロセッ
サ間に冗長通信経路を供給する入力/出力(I/O)シ
ステム・エリア・ネットワーク・システムを更に含む。
処理システムのコンポーネント間(例えば、それがどの
サブ処理システムに属しうるかに関係なく、CPUと別
のCPU、またはCPUといずれかの周辺装置)の通信
は、複数の相互接続しているリンクのバス構造(ここで
は、“TNet”と称する)によって相互接続される多
数のルータ素子を含んでいるシステム・エリア・ネット
ワーク構造により送信またはソース・コンポーネント
(例えば、CPU)からデスティネーション(宛先)素
子(例えば、周辺装置)に送られるパケット化されたメ
ッセージを形成しかつ送信することによって実施され
る。ルータ素子は、メッセージ・パケットに含まれた情
報に基づいて処理システムの送信コンポーネントから宛
先コンポーネントまで適切または利用可能な通信経路を
選択する役割を果す。それゆえに、ルータ素子のルーテ
ィング能力(機能)は、周辺装置への通信経路をCPU
sのI/Oシステムに供給するが、プロセッサ間連絡に
用いられることをそれに許容もする。
【0014】上記したように、本発明の処理システム
は、“フェイル−ファースト”及び“フェイル−ファン
クショナル”動作の両方を通してフォルトトレラント動
作を供給すべく構成される。フェイル−ファースト動作
は、誤り検査機能をシステムの戦略地点に位置決めする
ことによって達成される。例えば、各CPUは、CPU
の(ロック−ステップ動作型)プロセッサ素子とその関
連メモリとの間の種々のデータ経路における多様な地点
で誤り検査機能を有する。特に、本発明の処理システム
は、インターフェイスで、かつ性能にほとんど影響を及
ぼさないように、誤り検査を実行する。従来技術のシス
テムは、プロセッサのペアを走らせて、かつデータとプ
ロセッサ及びキャッシュメモリ間の命令フローとを検査
(比較)することによって誤り検査を一般に実施する。
この誤り検査の技術は、アクセスに遅れを付加する傾向
があった。また、この型の誤り検査は、利用可能であり
うるオフザシェルフ(off-the-shelf) 部分(即ち、単一
半導体チップまたはモジュール上のプロセッサ/キャッ
シュメモリ組合せ)の使用を排除した。本発明は、主メ
モリ及びプロセッサ−キャッシュ・インターフェイスよ
りも遅いスピードで動作するI/Oインターフェイスの
ような、より遅い速度で動作する地点でプロセッサの誤
り検査を実行する。更に、誤り検査は、プロセッサ、そ
れらのキャッシュメモリ、I/O及びメモリ・インター
フェイスで発生しうる誤りの検出を許容する位置で実行
される。これは、それらがパリティまたは他のデータ・
インテグリティ検査を必要としないのでメモリ及びI/
Oインターフェイスに対するより簡単な設計を許容す
る。
【0015】処理システムのコンポーネント間の通信フ
ローの誤り検査は、システムの素子間に送られるメッセ
ージ・パケットに巡回冗長検査(CRC)を付加するこ
とによって達成される。各メッセージ・パケットのCR
Cは、メッセージの宛先においてだけでなく、そのソー
ス(発生源)からデスティネーション(宛先)にメッセ
ージ・パケットを送るために用いられる各ルータ素子に
より宛先への途中でも検査される。メッセージ・パケッ
トが間違ったCRCを有すべくルータ素子によって見出
されたならば、メッセージ・パケットは、そのようにタ
グ付けされ、かつ保守診断システムに報告される。この
特徴は、故障分離に対する有用なツールを供給する。こ
のようなCRCの使用は、メッセージ・パケットが通過
するときにルータ素子がCRCを変更または再生しない
ので終端間でメッセージ・パケットを保護すべく動作す
る。各メッセージ・パケットのCRCは、各ルータ・ク
ロッシング(router crossing) で検査される。指令記号
−“このパケットは、よい(This packet Good)”(TP
G)または“このパケットは、悪い(This packet Bad)
”(TPB)−は、全てのパケットに添えられる(付
加される)。保守診断プロセッサは、誤りが一時(過
渡)的であっても、誤りを導くリンクまたはルータ素子
を分離するためにこの情報を用いることができる。
【0016】ルータ素子は、メッセージを受信しかつ送
信することができる複数の双方向ポートを備えている。
そのように、それらは、多様なトポロジーの用途に適し
ていおり、代替経路を処理システムのいずれかの二つの
素子間(例えば、CPUとI/O装置間)に設けること
ができ、故障が存在する通信に対して、フォルトトレラ
ント・システムをもたらす。更に、ルータ論理は、メッ
セージ・パケットが受信されるルータ・ポート及びメッ
セージ・パケットの宛先に基づいて、ある一定のポート
を出力としての考慮からディスエーブルする(disablin
g) 機能を含む。そのメッセージ・パケットのルータの
出力ポートとしての無許可ポートを示す宛先アドレスを
含んでいるメッセージ・パケットを受信するルータは、
メッセージ・パケットを捨て、かつ保守診断システムに
知らせる。この特徴の適切な使用は、メッセージ・パケ
ットを連続ループ及び遅延に入ることから防ぐかまたは
(例えば、以下に説明する、“デッドロック”条件を生
成することによって、)そのようにすることから他のメ
ッセージ・パケットを防ぐ。
【0017】処理システムのCPUsは、二つの基本モ
ードの一つで動作するように構成される:(ペアの)各
CPUが他とは独立に動作する“シンプレックス・モー
ド”か、または、CPUsのペアが同期された、ロック
−ステップ方式で動作する“デュプレックス・モード”
である。シンプレックス・モード動作は、誤り検査ハー
ドウェア(例えば、各プロセッサが、そのシブリング
(同胞)プロセッサの動作可能性を検査し、かつ故障し
たと思われるかまたは信じられるプロセッサの処理を取
って代わる機能を有するようなマルチ処理システムを教
示する米国特許第4,228,496号公報)によって検出され
る故障から回復する機能を供給する。デュプレックス・
モードで動作するときには、ペアになったCPUsは、
両方ともに同様な命令ストリームを実行し、ペアの各C
PUは、実質的に同時にストリームの各命令を実行す
る。
【0018】デュプレックス・モード動作は、あまり堅
牢でない(less robust) オペレーティング・システム
(例えば、ユニックス(UNIX)オペレーティング・
システム)に対するフォルトトレラント・プラットフォ
ームを供給する。ペアになった、ロック−ステップCP
Usを有する、本発明の処理システムは、故障が、主に
ハードウェアを通して、多くの場合にマスクされる(即
ち、故障の存在にも係わらず動作する)ように構成され
る。処理システムがデュプレックス・モードで動作して
いるときには、各CPUペアは、周辺装置が表面上どの
(二つ以上の)サブ−プロセッサ・システムのメンバー
であるかに係わりなく、処理システムの周辺装置をアク
セスするためにI/Oシステムを用いる。また、デュプ
レックス・モードでは、CPUペアへの送付向けメッセ
ージ・パケットは、CPUペアの同期、ロック−ステッ
プ動作を維持するために実質的に同時にI/Oシステム
によりペアの両方のCPUsに送付される。それゆえ
に、本発明の主な創作的態様は、ロック−ステップ・ペ
アの両方のCPUsが同じ方法で同じ時間にI/Oメッ
セージ・パケットを受信することを確実にする機能を有
するデュプレックスの動作モードを供給する。これに関
しては、デュプレックス・ペアの一つのCPUに接続さ
れたルータ素子は、ペアの両方のCPU素子に接続され
る。(マス記憶装置のような周辺装置かまたは処理装置
から)CPUペアに対してメッセージを受信することに
よって、そのように接続された、ルータは、メッセージ
を複写しかつCPUsが同期されたままであることを確
実にする同期方法を用いてそれをペアの両方のCPUs
に送付する。結果として、I/Oシステム及び他のデュ
プレックスCPUペアから視た、デュプレックスCPU
ペアは、単一CPUとして見られる。それゆえに、全て
のサブ処理システムからの素子を含む、I/Oシステム
は、周辺装置がアクセス可能であるような一つのホモジ
ェニアス(homogeneous) システムとしてデュプレックス
CPUペアによって見られるようにされる。
【0019】本発明の別の重要かつ新規な特徴は、ルー
タ素子の多用(融通)性がいずれかのCPUが実際には
一対の同期された、ロック−ステップCPUsであるよ
うなマルチプロセッサ・システムを形成すべくデュプレ
ックス・モード・オペレーティング・システム・ペアの
クラスタを結合させるということである。本発明の更に
別の重要な態様は、I/O素子から発行されている割込
みが、他の情報転送と同じ方法で、即ち、メッセージ・
パケットによって、CPU(またはデュプレックス・モ
ードの場合にはCPUペア)に伝達されるということで
ある。これは、多数の利点を有する: 割込みは、通常
のI/Oメッセージ・パケットのように、CRCによっ
て保護することができる。また、両方のCPUsへの同
時送付に対する信号への割込み専用の追加信号回線の要
求が不要になる;メッセージ・パケット・システムを介
して割込みを送付することは、それらが、I/Oメッセ
ージ・パケットと同じ方法で、同期されたファッション
てデュプレックスされたCPUsに到着することを確実
にする。割込みメッセージ・パケットは、割込みの原因
となる情報を含み、現在行われるように、CPU(s)
が原因を決定すべく割込みを発行している装置を読取る
という時間のかかる要求を不要にする。更に、上記した
ように、ルーティング素子は、割込みパケット送付に対
する多重経路を供給することができ、それによってシス
テムのフォルトトレラント能力を上昇させる。加えて、
I/O装置とCPUsの間でデータを伝達しかつCPU
sに割込みを伝達するために同じメッセージング・シス
テムを用いることは、I/O及び割込みの順番を維持す
る; 即ち、I/O装置は、割込みメッセージが送られ
る前にI/Oが終了するまで待つ。
【0020】本発明の更なる新規な態様は、CPUのメ
モリへのアクセスの妥当性を検査する技術の実施であ
る。本発明により構成されたような、処理システムは、
CPUのメモリをシステムの他の素子(即ち、他のCP
Us及び周辺装置)によってアクセスさせる。そうであ
るならば、不注意な及び/又は無許可なアクセスに対し
て保護する方法が供給されなければならない。本発明の
この態様に従って、各CPUは、そのCPUのメモリへ
のアクセスが許可されるCPUの外部の各ソースに対す
るエントリを含んでいるアクセス妥当性検査及び変換
(AVT)表を維持する。各そのようなAVT表エント
リは、許容されたアクセスの型(例えば、メモリへの書
込み)、及びそのアクセスが許容されるメモリの場所に
対するような情報を含む。I/Oシステムを通して送ら
れるメッセージ・パケットは、メッセージ・パケットの
オリジネータ(originator)、メッセージ・パケットの宛
先、メッセージが含んでいるもの(例えば、宛先で書込
まれるべきデータ、または宛先から読取られるべきデー
タに対する要求)、等を記述している情報を有して、上
述したように、生成される。ルータ素子にその最終宛先
にメッセージ・パケットを迅速に送らせることに加え
て、受信CPUは、メッセージ・パケットのソースに関
係している(属している)エントリに対してAVT表を
アクセスし、アクセスが許容されるかどうか、かつそう
であるならば、受信CPUがリマップ(即ち、変換)す
べく選択するアドレスの型及びその場所を理解するため
に検査すべく情報を用いる。この方法で、CPUのメモ
リは、逸脱したアクセスに対して保護される。また、A
VT表は、CPUへ割込みを通過するためにも用いられ
る。
【0021】AVT表は、CPUsのメモリが故障のI
/O装置によって汚染されないことを保証する。アクセ
ス権は、1バイトからページの広がりまでの大きさの範
囲であるフォーム・メモリ(form memory) に付与するこ
とができる。システムのシステム・ベンダーは、サード
パーティー周辺サプライヤのハードウェア及びソフトウ
ェアの品質に関してより少ない制御を通常有するので、
この故障封じ込め(fault containment) は、I/Oにお
いて特に重要である。問題は、I/Oシステム全体より
も単一のI/O装置またはコントローラに分離すること
ができる。本発明の更なる態様は、データをI/Oに送
信するためにCPUによって用いられる技術を含む。本
発明のこの態様によれば、CPUとプロセッサ・システ
ムの他のコンポーネントとの間の入力/出力情報転送を
処理するために各CPUにブロック転送エンジンが備え
られる。それによって、CPUの個別のプロセッサ装置
は、メモリからTNetネットワーク上に情報を得るこ
と、またはネットワークから情報を受け入れることのよ
りありふれたタスク(more mundane tasks)から取り除か
れる。CPUのプロセッサ装置は、所望の宛先、データ
の量、及び応答が必要であるならば、受信したときに応
答が配置されるメモリの場所、のような他の情報を伴っ
た、送られるべきデータを含んでいるメモリにデータ構
造を単にセットアップする。プロセッサ装置がデータ構
造を生成するタスクを終了したときには、ブロック転送
エンジンは、それが取って代わり、かつメッセージ・パ
ケットの形で、データを送ることを始める原因となるこ
とが知らされる。応答が期待されるならば、ブロック転
送エンジンは、応答が行くメモリの場所を含んでいる、
応答を処理するために必要な構造をセットアップする。
応答が受信されるとき及び受信されたならば、それは、
識別された期待メモリ位置に送られ、かつ応答を受信し
たことをプロセッサ装置に知らせる。
【0022】本発明の更なる態様及び特徴は、添付した
図面に関連して本発明の以下の詳細な説明を読むことに
より当業者に明らかになるであろう。
【0023】
【実施例】概要 :ここで、図1を参照すると、本発明の種々の教示
により構成された、データ処理システムが参照番号10
で示されている。図1が示すように、データ処理システ
ム10は、それぞれの構造及び機能が実質的に同じであ
る二つのサブプロセッサシステム10A及び10Bを備
えている。従って、特に示さない限り、サブプロセッサ
システム10のいずれ一つの説明は、他のサブプロセッ
サシステム10に同様に適用されるということが理解さ
れるべきである。従って、図1を続いて参照すると、サ
ブプロセッサシステム10A,10Bのそれぞれは、中
央処理装置(CPU)12、ルータ14、及びそれぞれ
がネイティブ(固有の)入力/出力(NIO)バスによ
って多数(n)のI/O装置17に結合される複数の入
力/出力(I/O)パケット・インターフェイス16を
含んで示されている。I/Oパケット・インターフェイ
ス16の少なくとも一つは、保守プロセッサ(MP)1
8にも結合される。
【0024】各サブプロセッサシステム10A,10B
のMP18は、IEEE1149.1テスト・バス17
(図1では、想像線で示す;明瞭化のために図2及び図
3では示されていない)及び、状態及び制御情報を素子
とMP18の間に伝達(通信)するためにMP18によ
って用いられるレジスタを、各素子に対して、含むオン
ライン・アクセス・ポート(OLAP)インターフェイ
スを介してそのサブプロセッサシステムの素子のそれぞ
れに接続する。MP18は、メッセージ・パケットを生
成しかつ送ることによって、図1に示すように、CPU
s12とも通信することができる。(実際には、MP1
8からの要求に応じてパケットを生成しかつ送るのは、
I/Oパケット・インターフェイス16である。) CPU12、ルータ14、及びI/Oパケット・インタ
ーフェイス16は、“TNet”リンクLによって相互
接続され、双方向データ通信を供給する。各TNetリ
ンクLは、二つの一方向10ビット・サブリンク・バス
を備えている。各TNetサブリンクは、データの9ビ
ット及び付随クロック信号を運ぶ。図1に更に示すよう
に、TNetリンクLは、サブプロセッサシステム10
A及び10Bを互いに相互接続もし、各サブプロセッサ
システム10に他の並びにCPU間通信のI/O装置へ
のアクセスを供給する。理解されるように、処理システ
ム10のCPU12は、そのようなアクセスは確証され
なければならないが、他のCPU12のメモリへのアク
セスを付与されることができる − 本発明の重要な側
面である。ある程度類似なファッションで、CPU12
のメモリは、通常CPUによって起動された動作の結果
として、周辺装置へもアクセス可能である。これらのア
クセスは、方向の定まらない(wayward) 周辺装置17に
よるCPU12のメモリの汚染を防ぐためにも確証され
る。
【0025】サブプロセッサシステム10A/10B
は、図1(及び以下に説明する図2、図3)に示すよう
に一対になるのが好ましく、各サブプロセッサシステム
10A/10Bペアは、CPU12、少なくとも一つの
ルータ14、及び関連I/O装置を有する少なくとも一
つのI/Oパケット・インターフェイス16を含んでい
る。
【0026】各CPU12は、そこにおいてメッセージ
・パケットが送信及び/又は受信される、二つのI/O
ポート、Xポート及びYポートを有する。CPU12
(例えばCPU12A)のXポートは、対応サブプロセ
ッサシステム(例えば10A)のルータ(14A)へT
NetリンクLによって、接続する。逆に、Yポート
は、CPU(12A)をコンパニオン・サブプロセッサ
システム(10B)のルータ(14B)に接続する。こ
の後者の接続は、他のサブプロセッサシステム(10
B)のI/O装置へのCPU(12A)によるアクセス
に対する通信経路だけでなく、CPU間通信に対してそ
のシステムのCPU(12B)への通信経路も供給す
る。情報は、メッセージ“パケット”を介して処理シス
テム10の素子とシステムの他の素子(例えば、サブプ
ロセッサシステム10AのCPU12A)及びシステム
の他の素子(例えば、サブプロセッサシステム10Bの
I/Oパケット・インターフェイス16Bに関連したI
/O装置)との間で伝達される。各メッセージ・パケッ
トは、データを含みうるかまたは指令記号でありうる多
数の9ビット記号で構成される。メッセージ・パケット
は、メッセージ・パケットを送信しているコンポーネン
トによって供給される送信機クロックを伴った、ビット
−並列、記号−直列ファッションで、TNetリンクL
上に同期的に送信される。通信素子(即ち、送信機及び
受信機)間のクロックは、二つのモード、“近周波数(n
ear frequency)”モード、または“周波数封じ込み(fre
quency locked)”モードの一つで動作されうる。
【0027】近周波数で動作するときには、送信素子及
び受信素子によって用いられるクロック信号は、所定の
トレランス(許容範囲)内で−実質的に同じ周波数であ
るべく制約されるが、別々であり、かつ局所的に生成さ
れる。この理由により、クロック同期先入り先出し(C
S FIFO)記憶装置構造(以下に詳述)を用いて、
受信機で記号を受信する固有の方法が開発された。CS
FIFOは、近周波数動作の結果としてメッセージ・
パケットの受信機と送信機のクロック信号間に起こりう
るスキューを吸収すべく動作する。近周波数動作は、一
つのルータ14から別のルータへ、またはルータ14と
I/Oパケット・インターフェイス16との間で、また
はルータ14とシンプレックス・モード(以下に詳述)
で動作しているCPUs12の間で記号を送信するとき
に用いられる。
【0028】周波数封じ込み動作は、同相である必要は
ないが、送信機及び受信機装置のクロック信号の周波数
が封じ込め(lock)られることを意味する。周波数封じ込
みクロック信号は、ルータ14A,14Bと対になった
サブプロセッサシステム(例えば、図1のサブプロセッ
サシステム10A、10B)のCPUs12との間で記
号を送信するために用いられる。送信及び受信素子のク
ロックは、位相関係にないので、近周波数動作に対して
用いられるものとは多少異なるモードで動作するにもか
かわらず−−クロック同期FIFO(CS FIFO)
が再び用いられる。各ルータ14は、一つを除き、それ
ぞれが実質的の同じように構成される、6個の双方向T
Netポート、0〜5を備えている:CPU12に接続
するために用いられる二つのポート(4,5)は、ある
程度異なって構成される。この相違は、理解されるよう
に、サブプロセッサシステム10のペアが、各CPU1
2が同じ命令ストリームから同時に同じ命令を実行する
ために動作する、デュプレックス・モードと呼ばれる、
同期された、ロック−ステップ・モードで動作すること
ができるという事実による。デュプレックス・モードで
は、ある一つのI/O装置からの入力I/Oは、実質的
に同じ時間に両方のCPUs12に供給されるというこ
とが重要である。それゆえに、例えば、ルータ14Aの
ポート3で受信したメッセージ・パケットは、ルータ1
4Aによって複写(複製)されかつ同じ記号が実質的に
同じ時間にCPUs12へ伝達されるようにルータ4,
5から送信される。ポート4,5がルータ14の他のポ
ート0〜3とは異なるのは、この点においてである。
【0029】図1は、本発明の別の特徴である、追加の
ルータ14(図1では、ルータRX 1 ,RX2 ,R
1 ,及びRY2 で示される)の使用による二つのサブ
プロセッサシステム10A,10B間のクロス・リンク
接続を示す。図1に示すように、追加されたルータRX
1 ,RX2 ,RY1 ,及びRY2 は、それらをI/Oパ
ケット・インターフェイス16X,16Yに結合するた
めにサブプロセッサ10A,10B(または、示したよ
うに、それぞれX及びY“側”)間にクロス・リンク接
続を形成する。ルータRX1 −RY2 及びRY1 −RX
2 間のクロス接続リンクは、CPUs12A,12Bと
ルータ14B,14Aの間のクロス・リンク接続Lyと
同じように一つの側(XまたはY)から別の側へクロス
−リンク経路を供給する。しかしながら、ルータR
1 ,RX2 ,RY1 ,及びRY2 によって供給される
クロス・リンクは、I/Oパケット・インターフェイス
16X,16Yに接続されうるI/O装置(図示省略)
を一つの側(XまたはY)又は別の側へ送らせる。図1
に示すように、ルータRX2 及びRY2 は、I/Oパケ
ット・インターフェイス装置16x及び16yにデュア
ル・ポートされたインターフェイスを供給する。もちろ
ん、I/Oパケット・インターフェイス16X,16Y
が、ルータRX2 及びRY2 によって形成されたデュア
ル・ポート接続によって供給されたクロス−リンク接続
に対する代替としてデュアル・ポート及びルータR
1 ,RY1 に接続するためのそれらデュアル・ポート
を有すべくそれ自身を構成することができるということ
は、いま明らかである。
【0030】ルータ14の構成及び設計が理解されたと
きに明らかになるように、それらは、図2及び図3に示
すような追加のサブプロセッサシステムを含むべく処理
システム10の構造を拡張できるように用いるのに向い
ている。図2では、例えば、ルータ14A及び14Bの
それぞれの一つのポートは、対応サブプロセッサシステ
ム10A及び10Bを追加のサブプロセッサシステム1
0A’及び10B’に接続するために用いられ、それに
より、図1の基本処理システム10のクラスタを含んで
いる更に大きな処理システムを形成する。同様に、図3
において上記の内容は、サブプロセッサシステム・ペア
10A/10B,10A’/10B’,10A’’/1
0B’’,及び10A’’’/10B’’’を備えてい
る、8つのサブプロセッサシステム・クラスタを形成す
べく拡張される。次に、サブプロセッサシステムのそれ
ぞれ(例えば、サブプロセッサシステム10A)は、図
3が示すように、サブプロセッサシステム10A及び1
0Bが、サブプロセッサシステム10A’/10B’,
10A’’/10B’’,及び10A’’’/10
B’’’を越えてクラスタを拡張するために、追加のル
ータ14C及び14Dをそれぞれ含むということを除
き、CPU12、ルータ14、及びI/Oパケット・イ
ンターフェイス16によってTNetに接続されたI/
Oの同じ基本最小構成を本質的に有する。更に図3に示
すように、ルータ14C及び14Dの未使用ポート4及
び5は、クラスタを更に拡張するために用いうる。
【0031】ルータ14の設計、並びにシステム10の
トポロジーを構成するときのルータ14の適切な使用と
共に、メッセージ・パケットを送るために用いる方法に
より、図3の処理システム10のCPU12は、他のサ
ブプロセッサシステムの他の“端末装置”(例えば、C
PU又は/及びI/O装置)をアクセスできる。二つの
経路が、CPU12からI/Oパケット・インターフェ
イス16に接続している最後のルータ14まで利用可能
である。例えば、サブプロセッサシステム10B’のC
PU12Bは、(サブプロセッサシステム10B’)の
ルータ14B、ルータ14D、及び(サブプロセッサシ
ステム10B’’’)のルータ14B及び、リンクLA
を介して、ルータ14A(サブシステム10
A’’’)、(サブシステム10A’の)ルータ14A
を介するOR、ルータ14C、及びルータ14A(サブ
システム10A’’’)を介してサブプロセッサシステ
ム10A’’’のI/O16’’’をアクセスできる。
同様に、サブ処理システム10A’’のCPU12A
は、データを読取りまたは書込むためにサブプロセッサ
10BのCPU12Bに含まれるメモリを(二つの経路
を介して)アクセスしうる。(処理システムの別のコン
ポーネントの一つのCPU12によりメモリ・アクセス
は、分かるように、そのようにするための許可を有する
ことのアクセスを求めているコンポーネントを必要とす
る。この点において、各CPU12は、そのCPUのメ
モリをアクセスするための許可を有している各コンポー
ネントに対するエントリを含み、通常、そのアクセスを
メモリの選択されたセクションに制限し、かつ許可した
アクセスの型を制限している、表を維持する。このよう
な方法で許可を要求することは、誤ったアクセスによる
CPUのメモリ・データの汚染を防ぐ。)
【0032】図2に示す処理システムのトポロジーは、
サブプロセッサシステム10A’,10B’のルータ1
4A’,14B’に接続すべく、ルータ14A、14B
のポート1、及び補助TNetリンクLAを用いて達成
される。それによって得られたトポロジーは、図2に示
す処理システム10のCPU12(12A,12B,1
2A’,12B’)とI/Oパケット・インターフェイ
ス16との間に冗長通信経路を確立する。例えば、サブ
プロセッサシステム10A’のCPU12A’は、ルー
タ14A’(イン ポート4、アウト ポート3)、ル
ータ14A(イン ポート3、アウト ポート0)、及
び関連相互接続TNetリンクLによって形成された第
1の経路によりサブプロセッサシステム10AのI/O
16Aをアクセスしうる。しかしながら、ルータ14
A’が失われたならば、CPU12A’は、ルータ14
B’(イン ポート4、アウト ポート3)、ルータ1
4B(イン ポート3、アウト ポート1)、リンクL
A、及びルータ14A(イン ポート1、アウト ポー
ト0)によって形成された経路によりI/O 16Aを
アクセスしうる。また、図2のトポロジーは、システム
10のCPUs12のペア間に冗長通信経路をも確立
し、フォルトトレラントCPU間通信に対する手段を供
給するということに注目する。
【0033】図3は、図2に示したもののトポロジーの
拡張を示す。各サブプロセッサ・ペアの各ルータ14の
一つのポートを相互接続し、サブプロセッサシステム1
0A’’,10B’’及び10A’’’,10B’’’
のルータ14(14A’’及び14B’’)のポート1
間に追加の補助TNetリンクLA(鎖線接続で図3に
示す)を用いることによって、二つの分離、独立データ
経路がCPU12とI/Oパケット・インターフェイス
16との間に見出すことができる。このファッションで
は、端末装置(例えば、CPU12またはI/Oパケッ
ト・インターフェイス16)は、他の端末装置への少な
くとも二つの経路を有する。二つの端末装置間(例え
ば、図3のシステム10における、CPU12と他のC
PU12の間、またはCPU12とI/Oパケット・イ
ンターフェイス16との間)のアクセスの代替経路を供
給することは、重要な概念である。フォルト・ドメイン
(fault domain)の損失は、二つの残っているフォルト・
ドメイン間の通信を分断しない。ここで、フォルト・ド
メインは、サブプロセッサシステム(例えば、10A)
でありうる。それゆえに、ルータ14A’’’及び14
B’’’間に補助TNetリンクLAなしで、電力が供
給される故障によりサブプロセッサシステム10Aが破
壊されたならば、サブプロセッサシステム10BのCP
U12Bは、(ルータ14A、ルータ14C、ルータ1
4A’’’を介して、I/Oパケット・インターフェイ
ス16’’’へ)I/Oパケット・インターフェイス1
6’’’へのアクセスを失うであろう。ルータ14
A’’’及び14B’’’間の補助接続LAで、サブプ
ロセッサシステム10Aの損失のよるルータ14A(及
びルータ14C)の損失を伴っても、CPU12B間の
通信は、ルータ14Bのルート、ルータ14D、ルータ
14B’’’、ルータ14A’’’へ、及び最後にI/
Oパケット・インターフェイス16’’’への補助接続
LAを介してまだ可能である。
【0034】CPUアーキテクチャ:ここで図4を参照
すると、CPU12Aがより詳細に示されている。CP
U12A及び12Bの両方は、構成及び機能が実質的に
同じなので、CPU12Aの詳細だけを説明する。しか
しながら、特に示さない限り、CPU12Aの説明がC
PU12Bにも同様に適用するということが理解される
であろう。図4に示すように、CPU12Aは、両方の
プロセッサ装置20a,20bが同じ命令を受信しかつ
実行し、そして時間において実質的に同じ瞬間に、同じ
データ及び指令出力を発行するように、同期した、ロッ
ク−ステップ動作に対して構成される一対のプロセッサ
装置20a,20bを含む。プロセッサ装置20a,2
0bのそれぞれは、対応キャッシュメモリ22に、バス
21(21a,21b)によって、接続される。用いら
れる特定の型のプロセッサ装置は、キャッシュメモリ2
2が必要でないように十分な内部キャッシュメモリを含
むことができる。代替的に、キャッシュメモリ22は、
プロセッサ装置20の内部でありうるキャッシュメモリ
を補うために用いることができる。とにかく、キャッシ
ュメモリ22が用いられたならば、バス21は、128
ビットのデータ、16ビットの誤り訂正コード(EC
C)チェックビットを導通すべく構成され、データ、
(データ及び対応ECCに対する)25のタグ・ビッ
ト、タグ・ビットをカバーしている3つのチェックビッ
ト、22のアドレス・ビット、アドレスをカバーしてい
る3ビットのパリティ、及び7つの制御ビットを保護す
る。
【0035】また、プロセッサ20a,20bは、X及
びYインターフェイス装置24a,24bに分離64ビ
ット・アドレス/データ・バス23を介して、それぞれ
結合される。所望ならば、各バス23a,23b上で伝
達されたアドレス/データは、これはバスの幅を増大す
るが、パリティによっても保護することができる。(プ
ロセッサ20は、アメリカ合衆国カリフォルニア州サン
タ・クララのシリコン・グラフィッス,インク(Silicon
Graphics, Inc.)のMIPSディビジョンから入手可能
なような、RISC R4000型マイクロプロセッサ
を含むべく構成されるのが好ましい。) X及びYインターフェイス装置24a,24bは、プロ
セッサ装置20a,20bと(二つのMCハーフ26a
及び26bからなる)メモリ・コントローラ(MC)2
6及びダイナミック・ランダム・アクセス・メモリ・ア
レー28を含んでいるCPU12Aのメモリ・システム
との間にデータ及び指令信号を伝達すべく動作する。イ
ンターフェイス装置24は、72ビット・アドレス/指
令バス25により互いにかつMcs26a及び26bに
相互接続する。しかしながら、見て分かるように、(E
CCの8ビットを伴った)データの64ビット倍長語
(ダブルワード)は、インターフェイス装置24 によ
ってメモリ28に書込まれ、一つのインターフェイス装
置24は、書込まれる倍長語の一つの語(例えば、上位
32ビット部分)だけを駆動し、他のインターフェイス
装置24は、倍長語の他の語(例えば、倍長語の下位3
2ビット部分)。更に、各書込み動作で、インターフェ
イス装置24a,24bは、誤りを検査するためにその
インターフェイス装置24によって書込まれないデータ
上で他のものによって書込まれたデータでクロスチェッ
ク動作を実行する;また、読取り動作では、バス25上
に置かれたアドレスが同じ方法でクロス・チェックされ
る。キャッシュメモリ22並びに(主)メモリ28に書
き込まれたデータの両方を保護するために用いられる特
定のECCは、通常のものであり、かつ単一ビット誤り
訂正、ダブルビット誤り検出を供給する。
【0036】概念的に、各倍長語は、“奇数”及び“偶
数”語を含む。Mcs26の一つは、メモリに奇数語を
書込み、他のものは、偶数語を書込む。更に、Mcs2
6は、その倍長語に対する8ビット誤り訂正コード(E
CC)と一緒に、一度に二つの倍長語を書込む。加え
て、ECCチェックビットは、倍長語だけでなく、倍長
語が書込まれるメモリ位置のアドレスをカバーするため
にも形成される。後者がアクセスされたときには、EC
Cは、単一ビット誤りを修正し、かつアクセスされた倍
長語が、倍長語がそれから記憶された位置のアドレスに
対応することを検査すると同時にデータに発生しうる、
ダブルビット誤りを検出するために用いられる。CPU
12Aのインターフェイス装置24a,24bは、CP
U12AのX及びY(I/O)ポートをそれぞれサービ
スするための回路素子を形成する。それゆえに、Xイン
ターフェイス装置24aは、プロセッサシステム10A
(図1)のルータ14Aのポートに双方向TNetリン
クLxによって接続し、Yインターフェイス装置24b
は、TNetリンクLyによりプロセッサシステム10
B(図1)のルータ14Bに同様に接続する。Xインタ
ーフェイス装置24aは、ルータ14Aとサブプロセッ
サシステム10AのCPU12Aとの間の全てのI/O
トラフィックを処理する。同様に、Yインターフェイス
装置24bは、CPU12Aとサブプロセッサシステム
10Bのルータ14Bとの間の全てのI/Oトラフィッ
クに対して役割を果たす。
【0037】Xインターフェイス装置24aをルータ1
4Aに接続しているTNetリンクLx(図1、図2及
び図3)は、上述したように、それぞれがクロック信
号、及び9ビットのデータを運ぶ、二つの10ビット・
バス30x ,32x を含む。バス30X は、ルータ14
Aに送信されたデータを運ぶ;バス32x は、ルータ1
4Aから入力してくるデータを運ぶ。同様なファッショ
ンで、Yインターフェイス装置24bは、一緒にTNe
tリンクLyを形成している二つの10ビット・バス3
0(出力送信に対する)y 及び32y (入力送信に対す
る)により(サブプロセッサシステム10Bの)ルータ
14Bに接続される。X及びYインターフェイス装置2
4a,24bは、ロック−ステップで同時の動作され、
実質的に同じ時間に同じ動作を実質的に実行する。それ
ゆえに、Xインターフェイス装置24aだけがデータを
バス30x 上に実際に送信するが、同じ出力データがY
インターフェイス装置24bによって生成され、そして
誤り検査に用いられる。Yインターフェイス装置24b
出力データは、それがXインターフェイス装置24aに
よって受信されかつXインターフェイス装置によって生
成される同じ出力データに対して比較されるところのク
ロス・リンク34y によってXインターフェイス装置2
4aに結合される。このように、CPU12aのXポー
トで利用可能にされる出力データは、誤りについて検査
される。
【0038】同じファッションで、CPU12Aのポー
トから送信された出力データが検査される。Yインター
フェイス装置24bからの出力データは、10ビット・
バス30y によりYポートに、かつXインターフェイス
装置によって生成されたもので検査される9ビット・ク
ロス・リンク34y によりXインターフェイス装置24
aに結合される。
【0039】上述したように、二つのインターフェイス
装置24a,24bは、互いに同期の、ロック−ステッ
プで動作し、それぞれが同時に同じ動作を実質的に実行
する。この理由で、CPU12AのX及び/又はYポー
トで受信したデータは、このロック−ステップ・モード
に二つのインターフェイス装置を維持すべく両方のイン
ターフェイス装置24a,24bによって受信されなけ
ればならない。それゆえに、一つのインターフェイス装
置(24aまたは24b)によって受信されたデータ
は、破線及び(Xインターフェイス装置24aによって
Xポートで受信される入力データをYインターフェイス
装置24bに伝達する)9ビット・クロス・リンク接続
36x 及び(Yインターフェイス装置24bによってY
ポートで受信したデータをXインターフェイス装置24
aに伝達する)36y に示されるように、他のインター
フェイス装置(24bまたは24a)に渡される。ある
一定のより強固なオペレーティング・システムは、マイ
クロプロセッサ・システムのコンテキストにおけるフォ
ルトトレラント機能で構成される。この型のマイクロプ
ロセッサ・システムは、ハードウェアまたはソフトウェ
アによって検出された故障から回復するためにソフトウ
ェアをイネーブルすることによってフォルトトレラント
環境を供給する。例えば、米国特許第 4,817,091号公報
は、各プロセッサが、継続動作の表示をそれにより供給
すべく、ソフトウェア制御の下で、システムのプロセッ
サのそれぞれ(それ自身を含む)に周期的にメッセージ
を送るようなマルチプロセッサ・システムを教示する。
プロセッサのそれぞれは、その通常タスクを実行するこ
とに加えて、別のプロセッサに対してバックアップ・プ
ロセッサとして動作する。バックアップ・プロセッサの
一つが同胞(シブリング)プロセッサからのメッセージ
表示を受信することに失敗した場合には、それ自身のタ
スクを実行することに加えて、その同胞(いま動作不能
であると考えられる) の動作を取って代わる。あまり強
固でないソフトウェアまたはオペレーティング・システ
ムを用いている(即ち、検出された故障から回復するた
めの本質的機能がない)、他のフォルトトレラント技術
は、ハードウェア及び検出された誤りから回復すべく動
作する論理回路で設計される。
【0040】本発明は、両方の型のソフトウェアに対す
るハードウェア・プラットフォームを供給することに指
向される。それゆえに、強固なオペレーティング・シス
テムが利用可能であるときには、処理システム10は、
CPU12A及び12Bのそれぞれが独立したファッシ
ョンで動作するような“シンプレックス”モードで動作
すべく構成することができる。CPUs12は、CPU
内部データ経路の種々の重要な地点に誤り検査回路素子
を有して構成される。ルータ14は、システム10で相
互接続されうる種々のCPUs12間でプロセッサ間通
信を供給すると共に、システムのCPUからI/Oパケ
ット・インターフェイス16によって制御される装置へ
の通信ルートを供給する。誤りが検出されたときには、
その誤りから回復する役割は、ほとんどの場合、ソフト
ウェアに残される。代替的に、あまり強固でないオペレ
ーティング・システム及びソフトウェアに対して、処理
システム10は、一対のCPUs(例えば、CPUs1
2A,12B)が同期された、ロック−ステップ・ファ
ッションで動作すべく図1に示すように一緒に結合され
るように“デュプレックス”モードで動作すべく構成さ
れているハードウェア・ベース・フォルトトレランスを
供給し、実質的に同じ瞬間に同じ命令を実行する。それ
ゆえに、各CPUは、他のチェックとして動作する。C
PUs12の一つが故障を生じる場合には、それは、
“フェイル−ファースト”でかつ誤りがシステムの残り
に拡散しかつそれらを汚染することが許容される前にシ
ャット・ダウンする。他のCPU12は、二つのタスク
を実行すべく動作を継続する。次に、デュプレックス・
モード動作は、システム・ハードウェアに故障の効果を
マスクさせる。
【0041】データ及び指令記号は、9ビット・データ
及び指令記号を含んでいるメッセージ・パケットによっ
て種々のCPUs12とI/Oパケット・インターフェ
イス16との間で伝達される。CPU12の設計を簡略
化するために、プロセッサ20は、外側のエンティティ
(例えば、別のCPU12またはI/Oパケット・イン
ターフェイス16を介するI/O装置)と直接通信する
ことから排除される。それよりも、見て分かるように、
プロセッサは、メモリにデータ構造を構成しかつインタ
ーフェイス装置24に制御を転換する。各インターフェ
イス装置24は、メモリからのデータ構造をアクセスし
かつメッセージ・パケットに含まれた情報による宛先へ
の通信に対して適切なXまたはYポートを介してそれら
を伝送するための直接メモリ・アクセス(DMA)機能
のフォームを供給すべく構成されたブロック転送エンジ
ン(BTE;図9)を含む。処理システム10の設計
は、CPUのメモリ28に外側のソース(例えば、CP
U12BまたはI/O装置)によって読み取られるかま
たは書き込まれることを許容する。この理由で、CPU
12のメモリ28の外部使用が許可されることを確実に
すべく注意が払われなければならない。それゆえに、メ
モリ28へのアクセスは、アクセス要求が来た場所、要
求されたアクセスの型、要求されたアクセスの位置、等
のようなファクターを試験することによりアクセスを許
容するかまたは排除するアクセス妥当性検査(確認)機
構によって保護される。アクセス妥当性検査は、以下の
図16〜図20の説明中に記載されるアクセス妥当性検
査表(AVT)論理回路によって実施される。
【0042】本発明の種々の態様が、ルータ14を介し
てI/Oパケット・インターフェイス16とCPUs1
2との間で伝送されるデータ及び指令パケットの構成を
用いる。従って、処理システム10の構成の説明を続け
る前に、TNetリンクL上で送信されかつルータ14
によって送られる(ルート付けられる)データ及び指令
記号及びパケットの構成をまず理解することは、有利で
ある。
【0043】− パケット構成:4つの基本メッセージ
・パケット型がCPUs12とシステムの周辺装置17
との間に指令記号及びデータを伝達するために用いられ
る。図5(a)〜図5(d)は、そのパケットのフィー
ルドの分解と共に、一つのメッセージ・パケットの構成
を示す;図6〜図8は、他の3つのパケット型の構成を
示す。TNetエリア・ネットワーク上に書込みデータ
を伝達するために用いられるメッセージ・パケット型
は、HADCパケットとして識別され、かつ図5(a)
に示されている。図示するように、HADCパケット
は、4つのフィールドを有する:8バイト・ヘッダ・フ
ィールド、4バイト・データ・アドレス・フィールド、
Nバイト・データ・フィールド(より大きなデータは、
単一パケットによって移動することができるということ
が明らかであるが、Nは、64の最大値であるのが好ま
しい)、及び4バイト・サイクリック冗長チェック(C
RC)フィールド。図5(b)に詳細に示される、ヘッ
ダ・フィールドは、3バイト宛先IDを含み、メッセー
ジ・パケットの最終宛先を識別する; メッセージ・パ
ケットのソースまたは送信者、トランザクションの型
(例えば、読取りまたは書込み動作)及びメッセージ・
パケットの型(例えば、データに対する要求か否か、ま
たはデータ要求への応答か否か)を識別する3バイト・
ソースID。宛先IDは、4つのサブフィールドを含
む: 宛先が配置される“領域”を特定するための領域
IDを含む14ビット・サブフィールド;識別された領
域内の宛先を特定している、装置IDを含んでいる6ビ
ット・サブフィールド;及び二つの経路間を選択するた
めに用いられる経路選択(P)ビット;及び更なる拡張
のために確保された3ビット。同様に、ソースIDは、
3つのサブフィールドを有する;送信者の領域を識別す
る、14ビット領域ID;その領域内の送信装置を識別
する、6ビット装置ID;及び トランザクションの型
を識別する、上記したような、4ビット型サブフィール
ド。更に、制御フィールドは、9ビット指令/データ
“記号”によるメッセージ・パケットの添付したデータ
・フィールドに含まれるデータの量を特定する。(各記
号は、以下に示すように、指令記号としてデータバイト
を、またはその逆を、表わすことができる、単一ビット
誤りに対して保護すべく9ビット量としてコード化され
たデータの8ビット・バイト誤りである。)
【0044】図5(b)に特に示さないのは、宛先フィ
ールドが3つのサブフィールド、即ち、領域(Region)
(14ビット)、装置(Device)(6ビット)及び経路選
択(Path Select) (1ビット)に分割されるという事実
である。領域フィールドの情報は、メッセージ・パケッ
トの宛先を含んでいる特定の“領域”を識別する。領域
の概念は、ルータ14のアーキテクチャの説明に関連し
て以下に説明する。6ビット装置フィールドは、メッセ
ージ・パケットの最終宛先である特定の装置(例えば、
装置17、CPU12、またはMP18)を識別する。
領域及び装置フィールドは、宛先を漸増的かつ一意に識
別する。経路選択ビットとして確保されたビットは、メ
ッセージ・パケットの宛先を含んでいる(図1に示した
ような)二つの“側”XまたはYの一つまたは他のもの
を識別すべく動作する。経路選択ビットは、メモリ・ア
クセス妥当性検査(図16及び図17)及びルータのポ
ート選択動作(図31)に関連して以下に更に説明す
る。残りの3ビットは、必要により更なる拡張のために
確保されている。4バイト・データ・アドレス・フィー
ルドは、図5(c)に詳細に示される。アドレス・フィ
ールドは、HADCパケットの場合に、データの添付し
たNバイトが書込まれる宛先の仮想位置を識別する。例
えば、メッセージ・パケットのソースが、CPU12の
メモリ28に書込まれるべきデータを含んでいるI/O
装置17であるならば、データ・アドレス・フィールド
は、データが書込まれるべきメモリ28における位置を
識別しているアドレスを含む。(見て分かるように、C
PUsに対してデータ・アドレスは、AVT論理回路
(図16)によってメモリ28をアクセスするために実
際に用いられる物理アドレスに変換される。I/Oパケ
ット・インターフェイス16は、同様な妥当性検査及び
変換機構を有する。)アドレス・フィールドがCPU1
2のメモリ位置を識別するときには、フィールドは、二
つのサブフィールドを含む:アドレス・フィールドの上
位20ビットは、20ビット・メモリ頁数を形成する;
残りの12ビットは、メモリ頁にオフセットを形成す
る。頁数は、妥当性検査情報を含むエントリを含んでい
る表の中へのインデックス(索引)としてAVT論理回
路(図16)によって用いられる。
【0045】説明したように、HADCメッセージ・パ
ケットは、処理システム10の端末装置(例えばCPU
12)間で書込みデータを伝達すべく動作する。しかし
ながら、他のメッセージ・パケットは、それらの機能及
び使用により、異なって構成されうる。それゆえに、図
6は、ヘッダ、アドレス、及びCRCフィールドだけを
含んでいるHACメッセージ・パケットを示す。HAC
パケットは、システム・コンポーネント(例えば、I/
O装置17)に読取りデータ要求を送信するために用い
られる。図7は、8バイト・ヘッダ・フィールド、Nバ
イト・データ・フィールド(再度、いかなる整数でもあ
りうるが、Nは、64までである)、及び4バイト・C
RCフィールドを有している、HDC型のメッセージ・
パケットを示す。HDCメッセージ・パケットは、要求
されたデータのリターン(戻り)を含む、読取り要求へ
の応答を伝達するためである。図8は、8バイト・ヘッ
ダ、及び4バイトCRCだけを含んでいる、HCメッセ
ージ・パケットを示す。HCメッセージ・パケットは、
データを書込むための要求に肯定応答するために用いら
れる。
【0046】− インターフェイス装置:X及びYイン
ターフェイス装置24(即ち、24a及び24b−図
4)は、CPU12内の3つの主な機能を実行すべく動
作する:プロセッサ20をメモリ28にインターフェイ
スすること;プロセッサに対して透過的に動作するが、
その制御下で、I/Oサービスを供給すること;及び外
側ソースからのメモリ28へのアクセスに対する要求の
妥当性を検査すること。まずインターフェイス機能に関
して、X及びYインターフェイス装置24a,24b
は、読取られた/書込まれたデータのフェイル−ファー
スト検査を含むような方法でデータを書込みかつ読取る
ためにプロセッサ20a,20bをメモリ・コントロー
ラ(Mcs26a,26b)及びメモリ28にそれぞれ
伝達すべく動作する。例えば、書込み動作は、後で検索
(読取り)されたときに、適当なデータが検索されるだ
けでなく、適切なアドレスから検索されたことが分かる
ように、メモリ28に書込まれたデータだけでなく、そ
のデータが書込まれる位置のメモリ・アドレスも、見て
分かるように、カバーする誤り訂正コード(ECC)を
発生すべくそのインテグリティ(及び同時に、インター
フェイス装置24が動作すること)を確実にすべく書込
まれるべきデータをクロス・チェックするために協同し
ている二つのインターフェイス装置24a,24bを有
する。
【0047】I/Oアクセスに関して、プロセッサ20
は、入力/出力システムと直接伝達するための機能を備
えていない;それよりも、それらは、メモリ28にデー
タ構造を書込み、次にそれらのデータ構造を検索すべく
直接メモリ・アクセス(DMA)動作を実行するインタ
ーフェイス装置24へ制御を渡し、そして所望の宛先へ
の伝達のためにTNetにそれらを渡さなければならな
い。(宛先のアドレスは、データ構造それ自体に示され
る。) X及びYインターフェイス装置24の第3の機能であ
る、メモリ28へのアクセス妥当性検査は、インターフ
ェイス装置によって保守されるアドレス妥当性検査及び
変換(AVT)表を用いる。AVT表は、アクセスが許
可された各システム・コンポーネント(例えば、I/O
装置17、またはCPU12)に対するアドレス、許可
されたアドレスの型、及びアクセスが許可されるメモリ
の物理位置を含む。表は、入力メッセージ・パケットに
含まれたアドレスが仮想アドレスなので、アドレス変換
を実行するための手段にもなる。これらの仮想アドレス
は、メモリ28をアクセスするためにメモリ制御装置2
6により認識可能な物理アドレスにインターフェイス装
置によって変換される。
【0048】図9を参照すると、CPU12AのXイン
ターフェイス装置24aの簡略化されたブロック図が示
されている。コンパニオンYインターフェイス装置24
b(並びにCPU12B、または他のCPU12のイン
ターフェイス装置24)は、実質的に同じように構成さ
れる。従って、インターフェイス装置24aの説明が処
理システム10の他のインターフェイス装置24にも同
様に適用されるということが理解されるであろう。図9
に示すように、Xインターフェイス装置24aは、プロ
セッサ・インターフェイス60、メモリ・インターフェ
イス70、割込み論理回路86、ブロック転送エンジン
(BTE)88、アクセス妥当性検査及び変換論理回路
90、パケット送信機94、及びパケット受信機96を
含む。
【0049】− プロセッサ・インターフェイス:プロ
セッサ・インターフェイス60は、プロセッサ20aと
Xインターフェイス装置24aとの間の情報フロー(デ
ータ及び指令)を処理する。64ビット・アドレス及び
データ・バス(SysAD)23aと9ビット指令バス
23bとを含んでいる、プロセッサ・バス23は、プロ
セッサ20a及びプロセッサ・インターフェイス60を
互いに結合する。SysADバス23aは、通常の時分
割ファッションで、メモリ・アドレス及びデータを運ぶ
と同時に、指令バス23bは、指令及びデータ識別子情
報(SysCmd)を運び、SysADバス23a上で
実質的に同時に運ばれた指令を識別しかつ認定する。プ
ロセッサ・インターフェイス60は、プロセッサ・イン
ターフェイスのメモリまたは制御レジスタに読取り/書
込みを渡すためにプロセッサ装置20aによって発行さ
れた指令を解釈すべく動作する。更に、プロセッサ・イ
ンターフェイス60は、(メモリ・コントローラ26を
介して)メモリ28へのアクセスに対してアドレス及び
データをバッファする一時記憶装置(図示省略)を含
む。メモリから読取ったデータ及び指令情報は、プロセ
ッサ装置20aへの途中で同様にバッファされ、かつプ
ロセッサ装置がそれを受容する準備ができたときに利用
可能になる。更に、プロセッサ・インターフェイス60
は、Xインターフェイス装置24aに対して必要割込み
信号を生成すべく動作する。
【0050】プロセッサ・インターフェイス60は、双
方向性64ビット・プロセッサ・アドレス/データ・バ
ス76によってメモリ・インターフェイス70及び構成
レジスタ74に接続される。構成レジスタ74は、Xイ
ンターフェイス装置24aの他のコンポーネントに含ま
れる種々の制御レジスタの記号的表現であり、かつそれ
らの特定コンポーネントを説明するときに説明する。し
かしながら、図9に特に示されていないが、構成レジス
タ74の種々のものがXインターフェイス24aを実施
するために用いられる論理回路の他のもの中に分散する
という事実により、プロセッサ・アドレス/データ・バ
ス76は、同様にそれらのレジスタに対する読取りまた
は書込みに結合される。構成レジスタ74は、プロセッ
サ20aに対して読取り/書込みアクセス可能である;
それらは、Xインターフェイス装置を“個人専用化”さ
せる。例えば、一つのレジスタは、CPU12Aから生
ずるメッセージ・パケットのソース・アドレスを形成す
るために用いられる、CPU12Aのノード・アドレス
を識別する;別の、読取り可能専用は、インターフェイ
ス装置24の固定識別番号を含み、かつ他のレジスタ
は、例えば、(データ構造及びBTE指令/制御語が配
置される)BTE88、(メッセージ・パケットを介し
て受信した外部で生成された割込みについての情報を含
む割込みキューを指している)割込み論理回路86、ま
たはAVT論理回路90によって用いることができるメ
モリの領域を画定する。他のレジスタは、割込み論理回
路86による割込みポスティング(記入)に対して用い
られる。レジスタの多くは、それらを採り入れている論
理回路コンポーネント(例えば、割込み論理回路86、
AVT論理回路90、等)を説明するときに以下に更に
説明する。
【0051】メモリ・インターフェイス70は、二つの
36双方向ビット・バス25a,25bを含むバス25
によってXインターフェイス装置24aをメモリ・コン
トローラ26(及びYインターフェイス装置24b;図
4参照)に結合する。メモリ・インターフェイスは、プ
ロセッサ装置20、BTE88、及びAVT論理回路9
0からのメモリ・アクセスに対する要求間を調停(arbit
rate) すべく動作する。プロセッサ装置20aからのメ
モリ・アクセスに加えて、メモリ28は、例えば、I/
O装置17からプロセッサ装置20aによって読取られ
るべく要求されたデータを記憶するために、処理システ
ム10のコンポーネントによってもアクセスされうる
か、またはメモリ28は、プロセッサ装置によってメモ
リに予めセットアップされたI/Oデータ構造に対して
もアクセスされうる。これらのアクセスは、全て非同期
なので、それらは、調停されなければならず、かつメモ
リ・インターフェイス70は、この調停を実行する。メ
モリ28からアクセスされたデータ及び指令情報は、メ
モリ読取りバス82によってメモリ・インターフェイス
からプロセッサ・インターフェイス60に、並びに割込
み論理回路86、ブロック転送エンジン(BTE)8
8、及びアクセス妥当性検査及び変換(AVT)論理回
路90に結合される。以下に詳述するように、データ
は、倍長語量でメモリ28に書込まれる。しかしなが
ら、X及びYインターフェイス装置24a及び24bの
両方のメモリ・インターフェイス70は、(64ビッ
ト)倍長語を形成しかつバス25に適用し、各メモリ・
インターフェイス70は、その64ビット倍長語量の3
2ビットだけを書込む役割を果たす;メモリ・インター
フェイス70によって書込まれない32ビットは、それ
らが誤りに対して同じ32ビットと比較されるコンパニ
オン・インターフェイス装置24によってメモリ・イン
ターフェイスに結合される。
【0052】ちょっと脇道にそれると、図1〜図3の処
理システムでは、割込みは、特定割込み型を伝達するた
めに専用信号回線の従来技術を用いるよりも、メッセー
ジ・パケットとして送信される。割込み情報を含んでい
るメッセージ・パケットが受信されるときには、その情
報は、CPU12Aの内部で生成された割込みと共に、
プロセッサ20による作用に対して処理しかつポスティ
ングするために割込み論理回路86に運ばれる。内部で
生成された割込みは、割込みの原因を示している、(割
込み論理回路86の内部の)レジスタ71にビットをセ
ットする。次に、プロセッサ20は、割込みにより読取
りかつ作用することができる。割込み論理回路は、以下
により完全に説明する。Xインターフェイス装置24a
のBTE88は、直接メモリ・アクセスを実行すべく動
作し、かつプロセッサ20に外部資源をアクセスさせる
機構を供給する。BTE88は、プロセッサ20に透過
である、I/O要求を生成すべくプロセッサ20によっ
てセットアップし、かつ要求が終了したときにプロセッ
サに知らせることができる。BTE論理回路88は、以
下に更に説明する。入力メッセージ・パケットに含まれ
るメモリ・アクセスに対する要求は、AVT論理回路9
0によって妥当性が検査される。アクセス要求の妥当性
検査は、要求のソースの識別、要求されたアクセスの型
を含んでいる、種々の許可により行われる。更に、AV
T論理回路は、要求が適切に確認されたときに実際のア
クセスにするために用いることができる物理メモリ・ア
ドレスに、メッセージ・パケットに含まれたときには仮
想アドレスである、アクセスが所望である(受信したメ
ッセージ・パケットに含まれる)メモリ・アドレスを変
換する。また、AVT論理回路90は、以下により詳細
に説明する。
【0053】BTE論理回路88は、送られるべきデー
タ及び/又は指令記号をパケット送信機94に供給すべ
くAVT論理回路90に関連して動作する。次に、パケ
ット送信機94は、メッセージ・パケット・フォームに
BTE及びAVT論理回路88,90から受信した情報
をアセンブルし、それらが送信できるまでそれらをバッ
ファする。更にまた、BTE及びAVT論理回路88,
90は、入力メッセージ・パケットを受信し、解釈しか
つ処理すべくパケット受信機96で動作し、必要により
それらをバッファし、かつメモリ28に記憶するために
必要な8バイト幅フォーマットにそれらを変換する。プ
ロセッサから発生されたトランザクション要求を含んで
いる出力メッセージ・パケット(例えば、I/O装置か
らブロック・データを要求している読取り要求)は、要
求トランザクション論理回路(RTL)100によって
監視される。RTL100は、要求が所定の期間内に応
答するかどうかを確認するアウトバウンド(出発)要求
に対するタイム−アウト・カウンタを供給する;もしそ
うでなければ、RTLは、要求が受け入れられなかった
ことをプロセッサ20に報告すべく(割込み論理回路8
6によって処理されかつ報告される)割込みを生成す
る。加えて、RTL100は、応答を確認する。RTL
100は、応答に対するアドレスを保持し、かつそれが
応答を位置決めできるようにプロセッサ20に既知な位
置で応答をメモリ28に配置することができるように応
答が受信されたときにこのアドレスをBTE88に進め
る。
【0054】CPUs12のそれぞれは、説明するよう
に、多数の方法で検査される。一つのそのような検査
は、各CPUのインターフェイス装置24a,24bの
動作の前進(on-going)監視である。インターフェイス装
置24a,24bは、ロック−ステップで動作するの
で、同期性検査は、それらの内部状態のあるものの連続
比較によりペアになったインターフェイス装置24a,
24bの動作状態を監視することによって実行できる。
このアプローチは、CPU12Aの装置24aに含まれ
る状態マシン(図示省略)の1ステージを使用し、かつ
そのステージによって想定された各状態をインターフェ
イス装置24bのその同じ状態マシン・ステージと比較
することによって実施される。インターフェイス装置2
4の全ての装置は、それらの動作を制御すべく状態マシ
ンを用いる。従って、インターフェイス装置24とMC
26との間のデータ転送を制御するメモリ・インターフ
ェイス70の状態マシンを用いるのが好ましい。それゆ
えに、インターフェイス装置24aのメモリ・インター
フェイス70に用いられる状態マシンの選択されたステ
ージが選択される。また、一つのインターフェイス装置
24bの状態マシンの同じステージも選択される。二つ
の選択されたステージは、インターフェイス装置24
a,24b間で伝達されかつインターフェイス24a,
24bの両方に含まれる比較回路によって受信される。
インターフェイス装置が互いにロック−ステップで動作
すると、状態マシンは、同じ同一状態を通って同様にマ
ーチし、実質的に同じ瞬間で各状態を想定する。インタ
ーフェイス装置が誤りに遭遇するか、または故障したな
らば、そのアクティビティは、インターフェイス装置が
発散する原因となり、かつ状態マシンは、異なる状態を
想定する。また、状態マシンから比較回路に伝達された
選択ステージが異なる場合もある。この相違は、比較回
路が、そのCPUのインターフェイス装置24a,24
bがもはやロック−ステップでないCPU12A(また
は12B)の注意を喚起する“損失sync(lost syn
c) ”誤り信号を発行し、かつそれに応じて作用する原
因となる。この技術の一例は、Humphrey, et. al. によ
り発明されかつ本願発明の出願人にアサインされた米国
特許第 4,672,609号公報に見ることができる。
【0055】図9に戻ると、CPU12AのXインター
フェイスのパケット受信機96は、Xポートだけをサー
ビスすべく機能し、サブプロセッサシステム10A(図
1)のルータ14Aによって送信されたそれらのメッセ
ージ・パケットだけを受信する。Yポートは、コンパニ
オン・サブプロセッサシステム10Bのルータ14Bか
らメッセージ・パケットを受信すべくYインターフェイ
ス装置24bによってサービスされる。しかしながら、
両方のインターフェイス(並びにMcs26及びプロセ
ッサ20)は、示されたように、基本的に構造及び機能
において両方が実質的に同一である互いのミラー・イメ
ージである。この理由で、一つのインターフェイス装置
(例えば、24a)によって受信された、メッセージ・
パケット情報は、コンパニオン・インターフェイス装置
(例えば、24b)へも処理するために渡されなければ
ならない。更に、インターフェイス装置24a,24b
の両方は、XまたはYポートからの送信に対して同じメ
ッセージ・パケットをアセンブルするので、関連ポート
(例えば、Yポート)から実際に伝達されるインターフ
ェイス装置(例えば、24b)によって送信されるメッ
セージ・パケットは、誤りに対するクロス−チェックの
ために他のインターフェイス装置(例えば、24a)に
も結合される。これらの特徴は、図10及び13に示さ
れている。
【0056】− パケット受信機:図10を参照する
と、X及びYインターフェイス装置24a,24bのパ
ケット受信機96(96x,96y)の受信部分は、拡
大して示されている。示したように、各パケット受信機
96x,96yは、TNetリンク32の対応している
ものを受信すべく結合されたクロックsync(CS)
FIFO102を有する。CS FIFOs102は、
パケット受信機96の局所クロックに入力指令/データ
記号を同期すべく動作し、それらをバッファして、それ
をマルチプレクサ(MUX)104に渡す。しかしなら
が、Xポート及びXインターフェイス24aのパケット
受信機96xで受信した情報は、MUX104xに渡さ
れることに加えて、クロス−リンク接続36x によりY
インターフェイス装置24bのパケット受信機96yの
MUX104yに結合されるということに注目する。同
様なファッションで、Yポートで受信した情報は、クロ
ス−リンク接続36y によりXインターフェイス装置2
4aに結合される。この方法で、対応Y,Yインターフ
ェイス装置によりX,Yポートの一つで受信された情報
パケットの指令/データ記号は、両方が同じ情報を処理
しかつインターフェイス装置24の他のコンポーネント
及び/又はメモリ28に伝達するように他のものに渡さ
れる。
【0057】図10を続けると、どのポートX,Yがメ
ッセージ・パケットを受信しているいかにより、MUX
s104は、インターフェイス装置24の記憶及び処理
論理回路110への通信に対してCS FIFOs10
2x,102yの一つまたは他のものの出力のいずれか
を選択する。各9ビット記号に含まれる情報は、その符
号化が図14を参照して以下に説明される、指令または
データ情報の8ビット・バイトである。記憶及び処理論
理回路110は、まず9ビット記号を8ビットデータま
たは指令バイトに変換し、64ビット倍長語としてバイ
トを編成し、よのように形成された倍長語を入力パケッ
ト・バッファ(特に示していない)に渡す。入力パケッ
ト・バッファは、それをメモリ・インターフェイス7
0、並びにAVT論理回路90及び/又はBTE88に
渡すことができるまで受信した情報を一時的に保持す
る。パケット受信機96は、それぞれメッセージ・パケ
ットのCRCを検査するCRCチェッカ論理回路106
を含む。各CRCチェッカ論理回路106は、どのポー
ト(XまたはY)がメッセージ・パケットを受信するか
に関係なく、両方の受信機96x,96yが受信したメ
ッセージ・パケットのCRCを検査するように配置され
るということに、特に、注目する。この特徴は、フォル
ト分離機能を有する。この受信ステージで検査されるけ
れども、他のものからではなく一つの受信機からのCR
C誤り表示は、二つの受信機間のインターフェイスまた
は誤りを発行している受信機の論理回路における問題を
示す。それゆえに、フォルトは、受信しているCS F
IFOの出力からの経路のその部分に対して少なくとも
最初のうちは分離することができる。
【0058】図示されていないのは、CS FIFOs
102x,102yの出力は、MUX104に加えて指
令復号装置にも結合されるという事実である。指令復号
装置は、指令記号を認識すべく(以下に説明する方法で
データ記号からそれらを区分すべく)動作し、受信機制
御装置、パケット受信機動作を制御すべく機能する状態
マシン・ベース素子に印加される指令信号をそれから生
成すべく指令記号を復号する。上述したように、パケッ
トは、周期冗長検査(CRC)値によって誤り保護され
る。それゆえに、受信したパケットのCRC情報がMU
X104の出力に現れるときには、記憶制御装置の受信
機制御部分は、CRC記号を計算するためにCRC検査
論理回路106をイネーブルし、同時に、データ記号
は、受信したCRCに対する生成された量をメッセージ
・パケットと続いて比較すべく受信される。可能な誤り
がパケット受信機96への送信中に生じたことを示して
いる、ミスマッチが存在するならば、CRC検査論理回
路106は、割込みレジスタ(割込みレジスタ280;
図21)をセットするために用いられる誤り割込み信号
(BADCRC)を発行しかつパケットは、廃棄され
る。しかしながら、パケット・ヘッダは、後の試験のた
めに割込みキューにセーブされる。
【0059】以下に更に説明するように、CS FIF
Osは、インターフェイス装置24のパケット受信機9
6においてだけでなく、ルータ14及びI/Oパケット
・インターフェイス16の各受信ポートでも見出され
る。しかしながら、CPUs12A,12Bとルータ1
4A,14B(即ち、ポート1及び2)を接続するTN
etリンクLから記号を受信するために用いられたCS
FIFOsは、ルータ14の他のポート上で用いられ
るもの、及びCPU12に直接接続されていない他のル
ータ14とは多少異なる。換言すると、周波数ロックド
(frequency locked)クロッキングを用いている素子間で
記号を伝達するために用いられたCS FIFOsは、
近周波数クロッキングを用いている素子間で記号を伝達
するために用いられたものとは異なる。また、以下の説
明は、CS FIFOsは、近周波数モード(即ち、送
信及び受信素子のクロック信号は、同じである必要はな
いが、所定のトレランス内であることが期待される)で
動作している素子間でTNetリンクL上の情報を転送
することにおける重要部分の役をするということも明ら
かにする。しかし、CSFIFOsは、一対のサブプロ
セッサシステムがデュプレックス・モードで動作しかつ
サブプロセッサシステム10A,10Bの二つのCPU
s12A及び12Bが同期された、ロック−ステップで
動作し、同時に同じ命令を実行するときには、より重要
な部分の役をし、かつ固有の機能を実行する。この後モ
ードで動作しているときには、ルータ14Aまたは14
Bの一つからCPUs12A及び12Bに送信された情
報が、同期、ロック−ステップ動作を維持するために本
質的に同時に両方のCPUsによって受信されること
は、絶対必要である。ルータ14A及び14Bのクロッ
クキング・レジムがCPUs12A及び12Bのものに
正確に同期されることを確実にするのは、周波数封じ込
みクロッキングを用いているときでさえも、非常に難し
いので、これは、不幸にも、容易なタスクではない。C
PUs12のパケット受信機96において、CPU12
に記号を送信するために用いられるルータ14のクロッ
クとそれらの記号を受信すべくインターフェイス装置2
4によって用いられるクロックとの間の可能な相違を収
容する(accommodate) ことは、CS FIFOs102
の機能である。
【0060】CS FIFO 102の構造は、図
に、説明の目的で、図式的しめされている;CS FI
FOの好ましい構造は、図12に示されている。再び、
CSFIFOに対してここで参照がなされるときには、
特に示さない限り、図11を参照して説明される機能及
び動作、及び図12に示された構造を有している構造を
参照することを意図するということが理解されるべきで
ある。従って、図11のCS FIFOの説明は、その
性質において一般的であることを意図しており、そのよ
うに理解されるべきである。更に、上記したように、周
波数ロックド動作に用いられるCS FIFOsのある
ものは、近周波数動作で用いられるものと異なるが、以
下の説明は、両方に適用する。その説明に続いては、近
周波数環境における動作のためにCS FIFOの一般
的な構成になされなければならない変更の説明である。
図11に示すのは、パケット受信機96xのCS FI
FO 102xである。CS FIFO 102yは、
CS FIFO 102xの以下の説明がCSFIFO
102yに同様に適用されることが理解されるような
実質的に同一の構成及び動作である。図11では、CS
FIFO 102xは、ルータ14A(図1)の送信
(Xmt)レジスタ120から送信される9ビット指令
/データ記号及びルータからの添付送信クロック(T_
Clk)を受信すべくTNetリンク32x によって結
合されて示される。図11の破線Bは、対応TNetリ
ンク32x の一端における送信エンティティ(ルータ1
4A)とCPU12Aの受信エンティティ、パケット受
信機96xとの間のクロック境界を記号化する。従っ
て、CS FIFO 102xは、記憶キュー126へ
渡される前にそれらが一時的に保持される(例えば、一
つのT_Clk期間に対して)受信(Rcv)レジスタ
124で9ビット記号を受信する。記憶キュー126
は、表示及び説明の容易のために4つの位置を含んで示
される。しかしながら、追加記憶位置が供給でき、かつ
事実必要または所望でありうることは、この分野におけ
る当業者には、明らかである。
【0061】受信した記号は、プッシュ・ポインタ・カ
ウンタ128によって識別された記憶キュー126の位
置で(Rcvレジスタ124から)CS FIFO 1
02x上に“プッシュ”される。プッシュ・ポインタ・
カウンタ128は、T Clkによってクロックされ
る、バイナリ・カウンタ(2進計数器)の形であるのが
好ましい。次に、受信した記号は、プル・ポインタ・カ
ウンタ130によって識別される記憶キュー126の位
置から逐次的に“プル(pull)”され、FIFO出力レジ
スタ132に渡される。局所クロック信号、“Rcv
Clk”は、記憶キュー126及びFIFO出力レジス
タ130から記号をプルするために用いられ、(CPU
12Aに対して)内部で生成された信号によって生成さ
れる。FIFO出力レジスタ132からの記号は、MU
X104xに行く。TNet送信に用いられたプロトコ
ルにより、記号の一定ストリームは、常に全ての送信ポ
ート(例えば、CPU12aのX及びYポート、ルータ
14AまたはI/Oインターフェイス16のいずれかの
送信ポート−図1)から送信される;それらは、ある一
定の情況(例えば、リセット、初期化、同期化及び以下
に説明するその他)の間を除いて − 実際の指令/デ
ータ記号(例えば、パケット)またはIDLE記号のい
ずれかでありうる。上述したように、ルータ14Aの送
信レジスタ120に保持された各記号は、Rcvレジス
タ124に結合され、かつルータ14Aによって供給さ
れるクロック信号、T_Clkで、記憶キュー126に
記憶される。逆に言えば、記号は、局所的に生成された
クロック、Rcv Clkと同期して記憶キュー126
からプルされる。これらは、実質的に同じ周波数である
にもかかわらず、二つの異なるクロック信号である。し
かしながら、CS FIFO 102xに入ってくる記
号とCS FIFOからプルされるその同じ記号との間
に十分な時間(例えば、2〜3のクロック)が存在する
限り、準安定性問題が存在すべきではない。入力クロッ
ク信号(T_Clk)及びRcv Clkが周波数封じ
込みモードで動作されるときには、CS FIFO10
2xは、決してオーバーフローまたはアンダーフローす
べきでない。
【0062】CS FIFO 102xを初期化するの
は、次の通りである。アウトセットでは、ルータ14A
は、送信クロック信号、T_Clkの各パルスに対する
IDLE記号を送信し、IDLE記号でRcvレジスタ
124、記憶キュー126、及びFIFO出力レジスタ
132を最後に充たし、CS FIFO 102xをア
イドル状態にリセットする。プッシュ・ポインタ・カウ
ンタ128及びプル・ポインタ・カウンタ130は、S
YNC指令記号の受信(及び検出)によりリセットされ
る。SYNC信号の受信は、プッシュ・ポインタ・カウ
ンタ128を、記憶キュー126の特定の位置に対する
ポイントにセットする原因になる。同時に、プル・ポイ
ンタ・カウンタ130は、好ましくは2つの記憶位置に
よってプッシュ・ポインタ・カウンタのそれから離間し
た記憶キュー126の位置におけるポイントに同様にセ
ットされる。それゆえに、公称(nominal) 2クロック遅
延は、記憶キュー126に入ってくる記号と記憶キュー
を出て行くその同じ記号との間に確立され、それがクロ
ック・アウトされかつMUX104x(及び104y)
によって記憶及び処理装置110x(及び110y)に
渡される前に記憶キュー126に入ってくる各記号を整
定(settle)させる。送信及び受信クロックは、位相−独
立であるので、公称2クロック遅延は、許容されたリセ
ット・スキューが1クロック以下であるべく期待される
ようにある所定量が+または−の誤りを含む。
【0063】図12は、各組合せが記憶キュー126の
記憶位置を形成している、マルチプレクサ/ラッチ組合
せ140,142によって形成されているとして記憶キ
ュー126を示している、CS FIFO 102xの
一つの実施を示す。ラッチ142は、T_Clkの各パ
ルスでクロックされる。プッシュ・ポインタ・カウンタ
128は、その関連ラッチ142に結合されるべくマル
チプレクサ140の一つにrcvレジスタ124の出力
を選択させるべくデコータ144によって復号される。
ラッチは、T_Clkと、Rcvレジスタを関連ラッチ
142に伝達させるためにマルチプレクサ140の別の
ものをもたらすべくインクリメントされたプッシュ・ポ
インタ・カウンタとで装填される。rcvレジスタ12
4の出力を受信すべく選択されないそれらのラッチ14
2は、その代わりにT_Clkを有するラッチの内容を
受信しかつ装填する。実質的に同じ時間に、プル・カウ
ンタ130は、各Rcv Clkで − FIFO出力
レジスタ132に転送されかつFIFO出力レジスタ1
32によって装填されるべく、マルチプレクサ146を
介して、ラッチの一つの内容を選択する;プル・ポイン
タ・カウンタは、同時に、更新される(インクリメント
される)。
【0064】CS FIFO 102xは、一対のCP
Us12がデュプレックス・モードで機能しているとき
にだけ、かつルータ14A,14BとペアになったCP
Us12A,12Bとの間の送信に対してだけ用いられ
る周波数封じ込みクロッキング(即ち、T_Clk及び
Rcv Clkは、周波数において実質的に同じである
が、同相である必要なない)を実施すべく構成される
(図1、図2及び図3)。CPUs12と通信していな
い(デュプレックス・モードで機能している)ルータ1
4(及びI/Oインターフェイス16)の他のポート
は、近周波数クロッキングで記号を送信すべく動作す
る。そうであっても、クロック同期化FIFOsは、近
周波数クロッキングで送信された記号を受信すべくこれ
らの他のポートで用いられ、これらクロック同期化FI
FOsの構造は、周波数封じ込み環境で用いられたも
の、即ち、CS FIFOs 102のものと実質的に
同じである。しかしならが、違いが存在する。例えば、
記憶キュー126の記号位置は、9ビット幅である;近
周波数環境では、クロック同期化FIFOsは、10ビ
ット幅であるキュー126の記号位置を用い、余分のビ
ットは、その状態に依存して、関連記号が有効か否かを
識別する、“有効”フラグである。この特徴は、この議
論において更に説明する。
【0065】ルータ14は、記号を送信または受信すべ
くルータ14のものと同じ公称周波数であるが、多少異
なる実周波数を有する、他のクロック・ソースの保護
(影響)の下で走る他のキャビネットの装置(例えば、
他のルータまたはI/Oインターフェイス16)と通信
しているそれ自身をしばしば見出しうる。これは、近周
波数情況であり、かつこれは、記号転送に対するクロッ
キングのこの形は、デュプレックス・モードであるとき
にCPU12に直接接続するそれらのポートを除くルー
タ14の全ポートで見られる。近周波数モードでは、ク
ロック信号(例えば、一端で記号を送信するために用い
られるクロック、及び他端で記号を受信するために用い
られるクロック)は、他に対してサイクルを結果として
ゲインする一つでゆっくりドリフトしうる。これが起き
るときには、CS FIFO 102の二つのポインタ
(それぞれプッシュ及びプル・ポインタ・カウンタ12
8,130)は、どのエンティティ(送信機または受信
機)がより速いクロック・ソースを有するかによって、
より近い記憶キュー126の一つの記号位置または互い
にもっと離れた一つの記号位置のいずれかをポイントす
る。このクロック・ドリフトを処理するために、二つの
ポインタは、周期的に効果的に再同期される。
【0066】CPUs12がペアにされかつデュプレッ
クス・モードで動作しているときには、全ての4つのイ
ンターフェイス装置24は、同じデータを送信しかつ同
じクロック(T_Clk及びRcv Clk)でデータ
を受信すべく、ことのほか、ロック−ステップで動作
し、周波数封じ込みクロッキングが必要でありかつ用い
られる。CPUs12がシンプレックス・モードで動作
するときには、それぞれは他とは独立であり、クロッキ
ングは、近周波数であるだけが必要である。インターフ
ェイス装置24は、Rcvレジスタ124を初期化しか
つ送信ルータ14に同期するためにSYNC指令記号と
の組合せで用いられるSYNC CLK信号を受信す
る。記号転送に対して近周波数または周波数封じ込みク
ロッキング・モードのいずれかを用いるときには、CS
FIFO 102xは、ある既知の状態から開始する
のが好ましい。入力記号は、パケット受信機96の記憶
及び処理装置110によって試験される。記憶及び処理
装置110は、指令記号を探し、かつそれにより適切に
作用する。ここで関連するのは、パケット受信機96が
SYNC指令記号を受信するときにそれが記憶及び処理
装置110によって復号されかつ検出されることであ
る。記憶及び処理装置110によるSYNC指令記号の
検出は、RESET信号のアサーションをもたらす。R
ESET信号は、SYNC CLK信号の同期制御下
で、(クロック同期化バッファを含んでいる)入力バッ
ファを所定の状態にリセットし、かつそれらをルータ1
4に同期すべく用いられる。
【0067】ルータ14A,14Bの一つまたは両方の
インターフェイス装置24のCSFIFOs 102の
同期化は、同期化を説明するセクションにおいて以下に
より完全に説明する。
【0068】− パケット送信機:各インターフェイス
装置24は、CPU12のXまたはYポートの一つだけ
から送信しかつそこで受信すべく割り当てられる。イン
ターフェイス装置24の一つが送信するときには、他
は、送信されるデータを検査すべく動作する。シンプレ
ックス・モードで動作するときでさえもCPU12に自
己検査フォルト検出及びフォルト包括機能を供給するの
で、これは、パケット送信機の重要な機能(特徴)であ
る。この機能(特徴)は、X及びYインターフェイス装
置24a,24bのパケット送信機94x,94yを、
短縮形で、それぞれ表わす、図13に示されている。両
方のパケット送信機は、同じように構成され、一つ(パ
ケット送信機94x)の説明は、特に示したことを除
き、他(パケット送信機94y)に同様に適用される。
図13に示すように、パケット送信機94xは、倍長語
(64ビット)フォーマットで−送信されるべきデータ
を、関連インターフェイス装置(ここでは、Xインター
フェイス装置24a)のBTE88またはAVT90か
ら、受信するパケット・アセンブリ論理回路152を含
む。パケット・アセンブリ論理回路152は、CPU1
2のXまたはYポートからの送信の準備ができるまで情
報をバッファし、倍長語フォーマットからバイト・フォ
ーマットにデータを変換すべくバイト・ステアリング動
作を実行し、パケット・フォーマットにバイトをアセン
ブルし、かつXまたはYエンコーダ150x,150y
の一つにそれらを渡す。エンコーダ150の一つだけ
が、どのポート(XまたはY)が合成メッセージ・パケ
ットを送信するかによって、バイトを受信する。
【0069】8ビット・バイトを受信するXまたはYエ
ンコーダ150は、図14に示した9ビット指令/デー
タ記号にそれを符号化すべく動作する。合成9ビット記
号の3つの左側ビットの符号化が以下の表1の3つの最
左列に示される。
【0070】
【表1】 表 1 8B−9B 記号符号化 ─────────────────────────────── CDC CDB CDA 機 能 0 0 0 指令 0 0 1 誤り 0 1 0 誤り 1 0 0 誤り 0 1 1 データ<7:6>=00 1 0 1 データ<7:6>=01 1 1 0 データ<7:6>=10 1 1 1 データ<7:6>=11
【0071】表1が示すように、図14に関連して見る
と、9ビットの高位3ビット(CDC,CDB,CD
A)は、記号の残りの、下位6ビット(CD5,CD
4,CD3,CD2,CD1,及びCD0)が(1)指
令情報または(2)データとして解釈されるべきかを示
すべく符号化される。結果として、3つの上位ビットC
DC,CDB,及びCDAが全てゼロであるならば、9
ビット記号は、指令記号としてそれにより識別され、か
つ残りの6ビットは、指令を形成する。例えば、“00
0cccccc”と表される指令/データ記号は、
“c”ビットが指令である、指令として解釈される。他
方、指令/データ記号の、3つの上位ビットCDC,C
DB,及びCDAが、データを表わす4つの値のいずれ
かを取るならば、それらは、残りの6ビットのデータと
組合わされるべき2ビットのデータとして解釈され、そ
れから1バットのデータを得る。残りの6ビットは、デ
ータバイトの下位ビットである。従って、“11000
1101”と表される、指令/データ記号は、データ記
号として解釈され、かつ“10001101”と表され
る1バイトのデータに変換される。上位3ビットが 0
01,010,及び100の形を取るならば、それは誤
りである。
【0072】指令記号からそのデータ記号を分離する3
つの誤りコードは、指令及びデータ間の二つの最小ハミ
ング距離(Hamming distance)を確立する。単一ビット誤
りは、データを指令記号にまたはその逆に変えることが
きない。更に、(データ記号とは反対側の)指令記号の
下位6ビットは、指令を含んでいる6ビット位置が正確
に3つの“1”を常に含むような既知の“6つのうちの
3つ”の符号に符号化される。全ての単一方向誤り、並
びに指令記号のあらゆる奇数の誤りは、検出される。デ
ータにおける誤りは、指令記号をデータに変える誤りで
あるように、パケットCRCsを介して検出される。デ
ータを指令記号に変える誤りは、以下により完全に説明
されるように、CRC及び/又はプロトコル違反(妨
害)誤りによって検出される。XまたはYエンコーダ1
50のどれがパケット・アセンブリ論理回路152から
情報のバイトを受信するのかは、取るべき経路を示して
いる経路ビット(P)を含んでいる、送信されるべき情
報に含まれる宛先IDに基づく。例えば、情報の宛先I
Dは、それがCPU12のXポートを介して送られると
いうことを提案するものと想定する。(パケット送信機
94x,94yの両方の)パケット・アセンブリ論理回
路152は、その情報をXエンコーダ150xに送る;
同時に、それは、IDLE記号をYエンコーダ150y
に送る。(記号は、X及びYポートから連続的に送られ
る: それらは、送信される処理におけるメッセージ・
パケットを形成する記号、IDLE記号、または制御機
能を実行すべく用いられる他の指令記号のいずれかであ
る。) X及びYエンコーダ150の出力は、マルチプレクサ1
54、156を含んでいる、マルチプレキシング構造に
印加される。マルチプレクサ154の出力は、Xポート
に接続する。(インターフェイス装置24bは、マルチ
プレクサ154の出力をYポートに接続する。)マルチ
プレクサ156は、クロス−リンク34yを介して、Y
ポートに接続するマルチプレクサ154の出力も受信す
るチェッカ論理回路160に接続する。Xポート及びT
Netリンク30x に接続するマルチプレクサ154の
出力は、(インターフェイス装置24bの)パケット送
信機94yのチェッカ論理回路160にクロス−リンク
34x によっても結合されるということに注目する。
【0073】マルチプレクサの選択(S)入力は、構成
レジスタ162のX/Yステージからの1ビット出力を
受信する。構成レジスタ162は、インターフェイス装
置24に形成されるOLAP(図示省略)を介してMP
18にアクセス可能であり、かつ インターフェイス装
置24を、特に、“個人専用”にする情報を伴って書込
まれる。ここで、構成レジスタ162のX/Yステージ
は、Xエンコーダ150x出力をXポートに伝達すべく
Xインターフェイス装置24aのパケット送信機94x
を構成する;Yエンコーダ150yの出力は、チェッカ
160に同様に結合される。同様なファッションで、
(Yインターフェイス装置24bの)Yパケット送信機
94yの構成レジスタ162のX/Yステージは、マル
チプレクサ154にYエンコーダ150yの出力を選択
させ;かつそれがXポート送信と比較されるパケット送
信機160のチェッカ160に結合されるべくXエンコ
ーダ150xの出力を選択させるような状態にセットさ
れる。簡単に言うと、XまたはYポートからのメッセー
ジ・パケット送信の動作は、次の通りである。まず、示
されたように、メッセージ・パケット送信が存在しない
ときには、X及びYエンコーダの両方は、制御機能を実
行すべく用いられるIDLE記号または他の記号を送信
する。両方のパケット送信機94の構成レジスタ162
のX/Yステージが上記したようにセットされると(即
ち、マルチプレクサ154によって出力ポート(X)に
伝達されたパケット送信機94xのXエンコーダ150
x;マルチプレクサ154によってポート(Y)に伝達
されたパケット送信機94yのYエンコーダ150
y)、(パケット送信機94xの)Xエンコーダ150
xからのIDLE記号は、CPU12AのXポートから
送信され、かつ(パケット送信機94yの)Yエンコー
ダ150yによって生成されたIDLE記号は、Yポー
トから送信される。同時に、Xポート送信は、パケット
送信機94yのチェッカ160にクロス−リンク34x
によって結合され、かつそのパケット送信機のXエンコ
ーダ150xによって生成されたもので検査される。同
じ方法で、Yポートから出力するIDLE記号は、パケ
ット送信機94yから、それらがパケット送信機94x
のYエンコーダ150yによって生成されたものに対し
て検査されるパケット送信機94xのチェッカ160に
結合される。
【0074】この説明は、重要な事実を明らかにする:
パケット送信機は、それらが正しい動作に対して監視さ
れるためにメッセージ・パケットを送信する必要がな
い。逆に、メッセージ・パケット・トラフィックが存在
しないときでさえも、二つのパケット・インターフェイ
ス94(及び、それにより、それらが関連するインター
フェイス装置24)の動作は、連続的に監視される。チ
ェッカの一つがそれに印加されたものの間でミスマッチ
を検出したならば、ERROR信号がアサートされて、
プロセッサ20による適切なアクションに対して内部割
込みがポスト(表示)されることを結果として生ずる。
メッセージ・パケット・トラフィックは、同じような方
法で動作する。パケット送信機94のパケット・アセン
ブリ論理回路152が送信に対して情報を受信し、かつ
宛先IDがXポートが用いられるべきであることを示す
ということを、ここで、想定する。パケット・アセンブ
リ論理回路は、各バイトを符号化された9ビット形に変
換する、両方のインターフェイス装置96のXエンコー
ダ150xに、一度に1バイトずつ、その情報を進め
る。パケット送信機94xのXエンコーダ150xの出
力は、XポートかつTNetリンク30x、及びパケッ
ト送信機94yのチェッカ160にマルチプレクサ15
4によって伝達される。また、パケット送信機94yの
Xエンコーダの出力は、それが、パケット送信機94x
からのもので検査される、チェッカ160にだけ、マル
チプレクサ156によって、結合される。再び、インタ
ーフェイス装置24a,24bの動作、及びそれらが含
むパケット送信機は、誤りに対して検査される。
【0075】同じファッションで、Yポート・メッセー
ジ・パケット送信が監視されるということをここで理解
することができる。図9にちょっと戻り、出力メッセー
ジ・パケットがプロセッサ始動型トランザクション(例
えば、読取り要求)であるならば、プロセッサ20は、
応答でメッセージ・パケットが戻されることを期待す
る。それゆえに、BTE88が送られるべきデータをメ
モリ28からパケット送信機94に転送するときには、
それは、要求トランザクション論理回路100の要求タ
イマ(図示省略)をセットし、その内で応答を受信すべ
きタイムアウト期間をマーキングすることを要求タイマ
に開始させる。出力要求に対する応答が受信されたとき
には、パケット受信機96の応答整合(reply match) 回
路は、メッセージ・パケットが応答であり、かつ要求タ
イマがリセットされることを決定する。宛先への顕著な
要求の各数に対して一つの要求タイマ(図示省略)だけ
が存在する。BTE88がトランザクションの送信を始
動するたびに、タイマがリセットされる。他方、割り当
てられた時間内に応答が受信されなかったならば、要求
タイマは、特定のトランザクション(例えば、読取り要
求)に対する応答の欠如をプロセッサ20にそれにより
報告すべく割込み論理回路(図21)にタイムアウト
(時間切れ)信号を発行する。複数の顕著な要求が管理
されることが望ましいならば、要求タイマの追加するも
の−−各顕著な要求に対して一つ−−を用いることがで
きる。
【0076】CPU12Aのメモリ28への外部アクセ
スが供給されるけれども、それは、保護なしではない。
メモリ28へのアクセスに対する外部的に生成された要
求は、認められ、かつ2〜3の例として、要求のソース
の識別、要求されたアクセスの型(例えば、読取りまた
は書込み)、アクセスのメモリ領域、を含んでいる、あ
る一定の基準に従って許可されたときにのみ許される。
また、アクセスされることが望ましいメモリ装置28の
メモリの領域は、仮想またはI/Oメモリ・アドレスに
よりメッセージ・パケットで識別される(それにより、
仮想記憶方法を使用させる)。許可、及び許されるなら
ば、アクセスの決定は、これらの仮想アドレスがメモリ
28の物理アドレスに変換されることを必要とする。そ
して、CPU12Aの外部の装置または素子によって生
成された割込みは、プロセッサ20を中断すべくメッセ
ージ・パケットを介して送信され、受信したときにメモ
リ28にも書き込まれる。これら全ては、割込み論理回
路及びAVT論理回路86,90によって処理される。
AVT論理回路装置90は、メモリ28へのアクセスが
許可された各可能な外部ソースに対するAVTエントリ
を含んでいる(メモリ28のプロセッサ20によって保
守される)表を用いている。各AVTエントリは、指定
のソース素子または装置、及びアクセスが認められるメ
モリの、特定の頁(頁は、標準的に4K(4096)バ
イトである)、または頁の一部分を識別する。一頁以上
がCPU12の外部の素子によってアクセスされるなら
ば、素子によってアクセスされることが望ましい各頁に
対してAVTエントリが存在しなければならない。更
に、各AVTエントリは、許可されたメモリ動作の型
(例えば、書込み、読取り、または両方)の情報を含
む。AVT表は、必要でなく、かつ“期待された”メモ
リ・アクセスに対して用いられない。期待されたメモリ
・アクセスは、I/O装置からの情報に対する読取り要
求のような、CPU12(即ち、プロセッサ20)によ
って始動されたものである。これら後者のメモリ・アク
セスは、各プロセッサ始動型要求に割り当てられたトラ
ンザクション・シーケンス番号(TSN)によって処理
される。読取り要求が生成された頃に、プロセッサ20
は、読取り要求に応じて受信されることが期待されるデ
ータに対してメモリの領域を割り当てる。この領域に対
するアドレスは、読取り要求が送られるときに要求トラ
ンザクション論理回路100によって保守されるレジス
タ・ファイル(図示省略)に記憶され、かつアドレスに
対するレジスタ・ファイルへのポインタは、TSNであ
る。それゆえに、読取り要求への応答は、データを伴っ
てリターンし、かつ戻されたデータを記憶すべくメモリ
のバッファ領域のアドレスを得るためにそれが運ぶTS
Nを用いる。
【0077】アクセス妥当性検査は、以下のセクション
でより完全に説明される。メモリ・アレー28は、事実
上、それぞれがメモリ28に書込まれるかまたはメモリ
28から読取られる各64ビットの倍長語の半分を管理
するメモリ・コントローラ26a,26bによってそれ
ぞれが管理される二つの半分に分割される。次に、メモ
リ・コントローラ26a及び26bは、各インターフェ
イス装置24a,24bのメモリ・インターフェイス7
0にそれぞれ結合される。64ビット倍長語は、“上
位”MC26aによって書込まれる上位32ビット(及
び関連ECC)及び“下位”MC26bによって書込ま
れる下位32ビット(及び関連ECC)でメモリ28に
書込まれる。Mcs26a,26bは、各々、インター
フェイス装置24a,24b(図9)のそれぞれのメモ
リ・インターフェイス70(70a,70b)からデー
タの32ビット及び4ECCチェック・ビットをそれぞ
れ受信する。図15を参照すると、各メモリ・インター
フェイス70は、メモリに書込まれるべき64ビットの
データを、関連インターフェイス装置24の、プロセッ
サ・インターフェイス60からのバス82またはAVT
論理回路90(図9参照)からのバス83のいずれかか
ら受信する。バス76及び83は、どれがMCADバス
25に結合されるべきであるかを選択するマルチプレク
サ(MUX)84に印加される。
【0078】各メモリ・インターフェイス70a,70
bは、同じで、かつ全ての、メモリに書込まれるべき6
4ビットを受信するが、それぞれは、それら64ビット
のデータの半分(及びそれぞれが生成する8ビットのE
CCチエック・ビットの4つ)だけをMcs26a,2
6bに転送する。Mcs26を駆動するために用いられ
ない32ビット(及びECC論理回路85によって生成
された8ビットのECCチエック・ビットの4つ)は、
それらの間のクロス検査のために各メモリ・インターフ
ェイス70から他に結合される。それゆに、例えば、
(インターフェイス装置24aの)メモリ・インターフ
ェイス70aは、64ビットのデータの“上位”32ビ
ット(及び8ビットECC検査語の4ビット)だけでM
C26aを駆動する。同時に、メモリ・インターフェイ
ス70aは、そのコンパニオン・メモリ・インターフェ
イス70bからデータの“下位”32ビットを受信し、
かつ比較論理回路81によりそれ自身の下位32ビット
とそれを比較する。ミス比較が検出されたならばERR
OR信号がアサートされる。同様なファッションで、コ
ンパニオン・メモリ・インターフェイス70bは、メモ
リ28に書込まれるべく64ビット倍長語を伴って供給
されるが、下位32ビット(及び生成されたECC検査
ビットの4ビット)だけが用いられる。メモリ・インタ
ーフェイスは、メモリ・インターフェイス70aから上
位32ビットを受信し、かつ比較論理回路81でそれら
をそれ自身の上位32ビットと比較して、ミス比較が結
果として生じたならばERROR信号を発行する。
【0079】追加の誤り検査は、各メモリ・インターフ
ェイス70のECC検査回路85によって読取り動作上
で実行される。MC26から戻された各64ビット倍長
語は、8つのECC検査ビットを一緒に、両方のメモリ
・インターフェイス70によって受信される。データ及
びECC検査ビットは、各メモリ・インターフェイス7
0のECC論理回路85に印加され、通常のファッショ
ンでデータのインテグリティを検査するためのシンドロ
ームを生ずる。単一ビット誤りが検出されたならば、E
CC論理回路85は、訂正(修正)を実行する;訂正不
可能な誤りが検出されたならば、ECC論理回路は、割
込みレジスタ280(図26)の状態をセットすること
を結果として生ずる、誤り信号(図示省略)を発行し、
かつ動作の凍結をもたらす。各メモリ・インターフェイ
スのECC論理回路85によって実施される特定のEC
C検査は、112ビット・フィールドまでのSEC−D
EC−SbEDアクロス(across)に対して8検査ビット
を用いる。コードは、奇数列重みコード(odd column we
ight code)であり、あらゆる単一誤りが奇数のシンドロ
ーム・ビットを生成することを意味する。112の可能
ビットのうち、64は、データ、8は、検査ビットであ
り、40ビットを未使用のまま残す。
【0080】− アクセス妥当性検査:先に示したよう
に、CPU12Aの外部の処理システム10のコンポー
ネント(例えば、I/Oパケット・インターフェイス1
6の装置、またはCPU12B)は、メモリ28を直接
アクセスできるが、認定なしにではない。アクセス妥当
性検査は、インターフェイス装置24のAVT論理回路
90によって実施されるように、それらのメモリ位置に
書込まれるべきでない他のデータで良好なデータが誤っ
て(erroneously) または不注意に(inadvertently) 上書
きされることによりメモリ28の内容が汚染されること
を防ぐべく動作する。同様に、アクセス妥当性検査は、
間違ったメモリ位置を不注意に読取り、それにより読み
取られるデータを要求しているエンティティまたはシス
テム素子に誤ったデータを供給する、アクセスに対する
保護も供給する。これら及び同様な理由で、アクセス妥
当性検査方法は、メモリ・アクセスが適切に行われるこ
と、即ち、適切な装置が適切なメモリ位置に書込むか、
または適切なメモリ位置から読取ること、を確実にすべ
く供給される。入力メモリ要求(即ち、読取りまたは書
込み)が確認されたならば、メモリ位置のアドレスは、
要求を運んでいるメッセージ・パケットのアドレス・フ
ィールドによって運ばれるように、メモリ・アドレスに
AVT論理回路によって変換される。
【0081】メモリ28へのアクセスは、6つ検査の全
てを用いて、各インターフェイス装置24(図9)のA
VT論理回路90によって確認される:(1)要求を運
んでいるメッセージ・パケットのCRCが誤りなしであ
る、(2)メッセージ・パケットで識別された宛先(例
えば、CPU12A)が受信機のそれである、(3)メ
ッセージ・パケットで識別された要求のソースが正しい
ソースである、(4)シークされたアクセスの型がアク
セスを要求しているソースに対して許容される、(5)
アクセスがシークされるメモリ28の位置へのアクセス
がソースに対して許容される、かつ(6)アクセスの転
送サイズが所定のバウンド(上下限)内である。最初の
検査は、上述したように、CRC論理回路チェッカ10
6によって、パケット受信機96で行われる。受信した
メッセージ・パケットが不良CRC(または、以下に示
すように、それが“このパケットは、不良”(TPB)
指令記号でタグされる)を有することが見出されたなら
ば、パケットは、廃棄され、かつアクセスは、否定され
る。メッセージ・パケット・ヘッダに含まれる宛先ID
は、パケットの宛先が正しい(即ち、CPUによって受
信されたならば、適切なCPU12が宛先として指定さ
れる)ことを確実にすべく受信素子に割り当てられた宛
先IDに対して比較される。ミスマッチは、パケットが
何らかで誤指向され、かつパケットが再び廃棄され、そ
して、もちろん、アクセスが再び否定されたことを表わ
す。
【0082】残りの検査は、少なくともそのメモリがア
クセスされる素子のメモリへのアクセスのある形が認め
られた各システム素子に対してアクセス妥当性検査(A
VT)エントリ(図18)を、メモリ28において、保
持することによってなされる。入力パケットのヘッダの
アドレス・フィールドは、ソースID(SourceI
D)において識別されたシステム素子に対するAVTエ
ントリを含んでいるメモリ位置へのポインタとして用い
られる。AVT論理回路は、どのアクセスがメッセージ
・パケットの識別されたソースを許可されるかを決定す
るためにAVTエントリの妥当性検査情報を用いる。そ
れゆえに、受信したメッセージ・パケットのソースID
フィールドは、パケットのクリエータがCPU12のメ
モリ28へのアクセスを許可されるかどうかを決定する
ために用いられる。この検査は、特定のソースが特定の
受信機のファシリティへのアクセスを認められるべきか
否かを決定するためにパケット・ヘッダのソースIDフ
ィールドをAVTエントリ(ソースID)の部分と比較
することを含む。シークされるアクセスの型(例えば、
メモリの読取りまたは書込み)を識別している、パケッ
トの型フィードは、シークされるアクセスの型がメッセ
ージ・パケットによって識別されたソースを許可される
かどうか、またはパケットが求められていない応答(誤
りとして削除される)であるかどうかを決定すべく検査
される。
【0083】そして、シークされたメモリ位置、及びあ
らゆる転送のサイズは、それらが特定のメッセージ・パ
ケット・ソースも許可されるかどうかを見るために検査
される。インターフェイス装置24aのアクセス妥当性
検査機構、AVT論理回路88は、図16に詳細に示さ
れる。CPU12のメモリ空間へのアクセスをシークし
ている入力メッセージ・パケットは、パケット受信機9
6(図9)からAVT論理回路90のAVT入力レジス
タ170へ転送されたそれらのヘッダの選択された部分
を有する。従って、AVT入力レジスタ170は、ソー
スIDと、メモリ28に書込まれるかまたはそれから読
取られるべきデータの量を識別している、レングス(L
en)フィールドと、AVT表エントリを含んでいるメ
モリ28のエントリを指し示している、アドレス(AV
T頁#)と、AVTエントリが指し示すそのメモリ頁の
中へのオフセットと、シークされたアクセスの型(Ty
pe)とを入力メッセージ・パケットから受信する。こ
れらの値は、AVT入力レジスタ170のレジスタ・セ
グメント170a,170b,...,170eにそれ
ぞれ含まれる。
【0084】AVT入力レジスタ170に含まれるAV
T頁数フィールドは、妥当性検査に対して必要なAVT
エントリのアドレスを生成すべく組合せ論理回路176
によりそれがAVTベース・レジスタ174の内容と組
合わされるAVTアドレス論理回路172に結合され
る。AVTベース・レジスタ174は、AVT表全体の
メモリにおける開始アドレスを含む。生起したアドレス
を用いて、AVTアドレス論理回路172は、次にAV
Tエントリ・レジスタ180の中に装填される、そのA
VTエントリに対するメモリをアクセスする。AVTア
ドレス論理回路172は、AVT表に割り当てられたア
ドレス範囲内に入らないAVT頁数アドレスを検出する
AVTマスク・レジスタ175も含む。規則は、AVT
マスク・レジスタ175のあるビット位置が0であるな
らば、AVT頁数アドレスの対応ビットも0でなければ
ならない;そうでなければ、マスク検査論理回路177
がマスク誤りを検出しかつメモリ28へのアクセスを否
定すべく動作するというようなものである。AVTエン
トリ・アドレス生成及びマスク動作は、図17によく示
されている。図17が図式で示すように、レジスタ・セ
グメント170cの20ビットAVT頁数値の高位8ビ
ット部分は、AVT表エントリ・アドレスの高位部分
(ビット16−31)を生成すべくAVTベース・レジ
スタ174の内容と合計される。同時に、レジスタ・セ
グメント170cからのAVT頁数アドレスの残りの
(下位)12ビットは、AVTエントリ・アドレスの部
分を直接形成する。AVTエントリは、4倍長語(quadw
ord)量なので、それらは、4倍長語境界上に位置決めさ
れる;それゆえに、AVTエントリ・アドレスの下位4
ビットは、示すように、常にゼロである。
【0085】図17は、マスク動作も示す。AVT頁数
アドレスの高位2バイトは、マスク・レジスタ175に
含まれるマスクと比較される。0を含んでいるマスク・
レジスタのビット位置が“1”を有する高位2バイトの
対応ビット位置を検出したならば、マスク・レジスタ
は、メモリ28へのアクセスを否定する“マスク誤り
(Mask Error)”信号をアサートし、かつプ
ロセッサ20による作用に対して割込み論理回路86
(図9)への割込みを生成しかつポストする。マスク動
作は、AVTエントリの表のサイズを変化させる。AV
Tマスク・レジスタ175の内容は、プロセッサ20に
アクセス可能であり、プロセッサ20にAVTエントリ
表のサイズを随意に選択させる。最大AVT表サイズ
は、あらゆる32ビットTNetアドレスの検証(及び
変換)を許容する;即ち、最大サイズAVTエントリ表
は、2020の異なる頁アドレスを検証しかつ変換するこ
とができる。最小サイズAVT表は、あらゆる24ビッ
トTNetアドレス(即ち、高位8ビットがゼロである
ようなTNetアドレス)の検証及び変換を許容する。
最小AVT表は、2012の異なる頁アドレスを検証しか
つ変換することができる。
【0086】従って、AVT表エントリが16バイトで
あるので、最大サイズAVT表は、専用メモリ空間の1
6メガバイトを必要とする。しかしながら、AVTマス
ク・レジスタ175及びAVTアドレス論理回路172
の内容によって実行されるマスク動作は、AVTサイズ
をシステムのニーズにマッチさせる。非常に多数の外部
素子(例えば、システム中のI/O装置の数は、大き
い)を含む処理システム10は、広範囲のTNetアド
レス、及び対応AVTエントリを必要とし、かつAVT
エントリにメモリ28のかなりの量のメモリ空間を確保
し(割り当て)なければならない。逆に、小さな数の外
部素子を有する、小さな処理システム10は、小さなA
VT表を用いることができようにそのような大きなTN
etアドレス要求を有さず、メモリ空間を節約する。従
って、小さなシステムでは、高位ビットは、用いられな
い(または、より正確には、用いられるべきでない)。
小さなAVT表が順番であるときには、TNetアドレ
スの高位ビットは、ゼロであるべきである;特定のシス
テムに対して範囲外であるTNetアドレスを有するA
VT表エントリをシークする試みは、誤りである。マス
ク・レジスタ175の内容を用いて、そのような誤りを
検出することはマスク論理回路の機能である。それゆえ
に、あらゆるCPU12(またはこの妥当性検査技術を
用いている他のシステム素子)に対するときのAVT表
拡張の許容可能サイズは、論理“ONE(1)”にセッ
トされるビット位置によりマスク・レジスタ175の内
容によって示される。論理“ZERO(0)”にセット
されるマスク・レジスタ175のビット位置は、処理シ
ステム10の限界の外側の、存在しないTNetアドレ
スを表わす。許容可能TNet範囲外のTNetアドレ
スを有する受信パケットは、それがらZEROであるべ
きところの論理ONEにセットされたビット位置を有す
る。AVTアドレス論理回路172は、この範囲外TN
etアドレスを検出し、かつAVT誤り割込みを発行さ
せる。
【0087】メモリ28で保守されることが必要なAV
T表のサイズを変化することができることに加えて、上
述したように、図17に示した技術は、また、可撓性を
伴ってメモリ28にAVT表を位置決めさせるというこ
とが、いま当業者に明らかであろう。図17は、AVT
表が 217(128K)の累乗境界上に位置決めするこ
とができるということを示す。各AVTエントリは、妥
当性検査処理の間中にAVTエントリ・レジスタ180
に保持されるときに図16に示したフィールドを含む1
28ビット4倍長語である。AVTエントリは、二つの
基本フォーマットを有する:標準及び割込み。標準AV
Tエントリのフォーマットは、図18(及び、AVTエ
ントリ・レジスタ180の内容を示すことによって、あ
る程度、図16にも)に示される;割込みフォーマット
は、図20に示される。AVT論理回路90の説明を続
ける前に、AVTエントリの意味及び内容の理解は、役
に立つであろう。図18を参照すると、標準AVTエン
トリが52ビットPhysical Page Num
ber(物理頁数)フィールドを含んで示されている。
このフィールドの内容は、その内でアクセスがメッセー
ジ・パケットの要求ソースを許容されるメモリ28の頁
の物理アドレスを識別する。(一般に、各メモリ頁は、
4K(4096)バイト・メモリ位置を含む。)Phy
sical Page Numberフィールドの内容
は、(妥当性検査をシークしているメッセージ・パケッ
トのヘッダから引き出された)AVT入力レジスタ17
0に保持される12ビット・オフセット・フィールド1
70dの内容と連結される。結果は、妥当性検査が許可
されるならば − データが書込まれるかまたは読取ら
れるメモリ28内の位置の物理アドレス全体である。
【0088】アクセスが特定の4K頁の全メモリ位置に
認められうると同時に、アクセスは、また、その頁の部
分だけに制限されうる。後者の制限を実施するために、
AVTエントリは、アクセスが許可されるメモリ28の
識別された頁内の上部及び下部バウンドを画定する二つ
の12ビット・フィールド(上部バウンド、下部バウン
ド;図18)を含む。特に、AVTエントリの下部バウ
ンド・フィールドは、このAVT表エントリが適用され
る最低値を有するバイトのメモリ頁を有する(メモリ頁
内の)オフセットを指定する。上部バウンド・フィール
ドは、このAVT表エントリが適用される最高アドレス
を有するバイトのメモリ頁内のオフセットを指定する。
この値(例えば、オフセット値170d+AVT入力レ
ジスタ170のLenフィールド170bの内容)を渡
すメモリ位置をアクセスする試みは、割込みを介してプ
ロセッサにポストされる誤りを結果として生ずる。12
ビット“Permissions(許可)”フィールド
は、AVTエントリに対応している要求ソースに認めら
れた許可を指定すべくAVTエントリに含まれる。Pe
rmissionsフィールドは、図19に示されてお
り、あるPermissionsサブ・フィールド
(E,PEX,PEY,I,C,W,R,及びB)は、
メモリ・アクセスへの以下の認定を識別する:
【0089】E: (Error Enable(誤り
イネーブル)) このAVTエントリを通って指向され
る誤ったアクセスは、このフィールドが二つの特定状態
に一つ(例えば“ONE”)にセットされるならば(割
込み論理回路に)報告される。
【0090】PEX: (Path Enable X
(経路イネーブルX)) この1ビット・フィールドの
状態は、(全ての他の適用可能な許可も合致したなら
ば)このAVTエントリを用いるべくゼロに等しいヘッ
ダの“path(経路)”ビットで受信したメッセージ
・パケットをイネーブルすべく“ONE”にセットされ
る。このビットが“ZERO”にセットされたならば、
アクセスは、“x経路”(経路=0)にわたり受信した
AVTエントリが適用されるメッセージ・パケットが否
定される。否定は、割込み論理回路で割込みとしてログ
され、かつEフィールドが誤り−報告をイネーブルする
状態(“ONE”)にセットされたならば− プロセッ
サ20に報告される。
【0091】PEY: (Path Enable Y
(経路イネーブルY)) この1ビット・フィールド
は、それがONE(1)にセットされた経路ビットで受
信したメッセージ・パケットに適用されるということを
除き、PEXフィールドと同じ方法で動作する。
【0092】I: (Interrupt(割込み))
このビットが(例えば、“ONE”に)セットされた
ならば、他のフィールド(上部バウンド、等)は、割込
み書込みを処理しかつ割込みキューを管理するための新
しい定義を得る。これは、割込み論理回路86の説明に
関して以下により詳細に説明する。
【0093】C: (Cache Coherency
(キャッシュ・コヒーレンシー))これは、どのように
メモリ28への書込み要求が処理されるかを指定すべく
符号化された、2ビット・フィールドである。一つの状
態にセットすると、要求書込み動作は、普通に処理され
る;第2の状態にセットすると、メモリのAVTエント
リ・マップド領域の上部または下部バウンドに含まれた
部分キャッシュ回線(fractional cache line) を有する
アドレスを指定している書込み要求は、以下に説明す
る、割込みハンドラ250(図21)によって保守され
るキャッシュ・コヒーレンシー・キューに書込まれる。
これは、第3の状態にセットされた全キャッシュ回線ア
ライメントを有さないメモリ28のユーザ・データ構造
またはバッファ領域への書込み転送をCPU12に管理
させ、このAVTエントリをアクセスする全ての書込み
要求は、キャッシュ・コヒーレンシー・キューに書込ま
れる。第4の状態にセットすると、このAVTエントリ
によって参照される物理メモリ位置は、ハードウェア・
コヒーレンシー機構を用いてアクセスされる。
【0094】W: (Write Access(書込
みアクセス)) この1ビット・フィールドの状態は、
Lower(下部)及びUpper(上部)Bound
(バウンド)フィールドによって識別されるメモリ領域
内で − 要求ソースに対してメモリへの書込みアクセ
スを認めるかまたは否定する。
【0095】R: (Read Access(読取り
アクセス)) この1ビット・フィールドの状態は、指
定したメモリ領域内で − 要求ソースが読取り動作に
対してメモリへのアクセスを有するか否かを決定する。
【0096】B: (Barrier Access
(バリア・アクセス)) この1ビット・フィールドの
状態は、指定したメモリ領域内で − 要求ソースがバ
イア動作(以下に説明)に対してメモリへのアクセスを
有するか否かを決定する。そして、AVTエントリの2
0ビット“SourceID”フィールドは、AVTエ
ントリの許可情報が適用される特定のソースを識別す
る。図16に示されたAVT論理回路にここで戻ると、
一度AVTエントリのアドレスが形成されると、エント
リは、アクセスされかつAVT表エントリ・レジスタ1
80に一時的に記憶される。AVTエントリ・レジスタ
180に含まれるように、Permissionsフィ
ールドの内容は、アクセス論理回路184によりAVT
エントリ・レジスタに保持されるTypeフィールドに
よって指定されたように、要求されるアクセスの型と比
較される。要求されたアクセスが許可されたものと一致
しないならば、アクセスは、否定され、あつアクセス論
理回路184は、ORゲート184及びANDゲート1
86を含んでいる誤り生成論理回路を介して生成された
AVTエントリ割込み信号をもたらすべく誤り信号
(“No”)をアサートする。シークされたアクセスの
型がPermissionsの一つでないならば、アク
セスは、否定される。
【0097】(AVTエントリ・レジスタ180の“s
rc ID”値として識別される)アクセスされたAV
TエントリのSourceIDフィールドは、用いられ
るAVTエントリに対応するソースを指定し、かつ比較
論理回路190によって要求メッセージ・パケットに含
まれるSourceIDと比較される。再び、ミスマッ
チは、AVT Error Interrupt(誤り
割込み)を生成させることを比較論理回路190に結果
として生じ、そしてアクセスが否定される。同時に、A
VTエントリのLower Boundフィールド(A
VTエントリ・レジスタ180において“lwr bn
d”として図16に示される)は、それがAVT入力レ
ジスタ・セグメント170dにおけるOffset(オ
フセット)値と比較される論理回路194を比較すべく
適用される。Offset値がAVTエントリのLow
er Boundフィールドに含まれたものよりも小さ
く、アクセスが許可された頁部分の外側であるというこ
とを示しているならば、コンパレータ(比較器)194
は、ORゲート184及びANDゲート186を介し
て、AVT誤り割込みを生成する、信号を始動し、メモ
リ28へのアクセスを否定する。
【0098】同様に、比較論理回路196は、(書込み
動作が要求されたならば)書込まれるべきデータの量
が、(エントリのLower及びUpper Boun
dフィールドによって画定されるように)要求ソースに
割り当てるメモリ空間の量を超えるかどうかを決定すべ
く − 加算器論理回路200から − UpperB
oundフィールド(AVTエントリ・レジスタ180
の“upr bnd”)をLenフィールド(即ち、書
込まれるべきデータ・バイトの数)及びOffsetの
合計と比較する。アクセス要求が確認されたならば、A
VTエントリ・レジスタ180のPhysical P
age Number (phys pg #)内容
は、アクセスが行われるメモリ位置をアドレス指定すべ
く、図17に関して上述したように、AVT入力レジス
タ170からのOffsetと一緒に、用いられる。シ
ステム10の素子(例えば、装置17とCPU12;図
1、図2及び図3)間のメッセージ・パケットの通信
は、ことのほか、アクティビティを要求するか、または
アクティビティを報告するか、或いは誤りの発生を知ら
せるべく割込みを分配する、新規な方法にも採り入れら
れる。それゆえに、割込みメッセージ・パケット送付
は、他の素子間通信と同じ方法でTNetネットワーク
・システムを用い、かつ3つのステージ進行を含む:
(1)ソース素子からの割込みメッセージ・パケットの
生成及びタスク指名(ディスパッチ);(2)その宛先
へのTNetネットワークを通る割込みメッセージ・パ
ケットの伝播;(3)宛先での作用に対する解釈及び
“ポスティング”。あらゆるシステム素子は、割込みメ
ッセージ・パケットの受信者でありうる。宛先がCPU
であるならば、割込みメッセージ・パケットは、実質的
に、メッセージ・パケット・ヘッダのDestinat
ion IDフィールド(図5(b))がCPUを識別
し、かつAddressフィールドがどのように割込み
メッセージ・パケットが処理されるべきかの命令を含ん
でいるAVTエントリ(Interrupt Desc
riptor)を選択するような標準“書込み”要求で
ある。
【0099】割込みアクティビティの始動するための許
可は、また、AVT論理回路88によって確認されなけ
ればならない。それゆえに、受信したメッセージ・パケ
ットは、割込みを説明する割込みデータを含む。その割
込みデータは、割込みが受信されかつ“ポスト”され、
そしてプロセッサ20によってサービスする準備ができ
ていることを示すべくプロセッサ20に供給する信号
で、メモリ28の特定のキュー(割込みキュー)に書込
まれるべきである。割込みキューは、特定のメモリ位置
にあるので、プロセッサは、必要なときに割込みデータ
を得ることができる。割込みに対するAVT割込みエン
トリは、二つの型の一つでありうる:マルチエントリ・
キュー型割込み、または単一エントリ・キュー型割込
み。AVT割込みエントリの両方の型に対するフォーマ
ットは、基本的に同じであり、そのフォーマットは、図
20に示されている。マルチエントリ・キュー型割込み
に対するAVT割込みエントリは、割込みを送付すべく
最初に構成されたか、またはルータ14或いは受信CP
U(例えば、不良CRC)によって検出された例外によ
り途中で割込みになったかのいずれかである受信したメ
ッセージ・パケットに対して用いられる。これらのエン
トリは、上述したのとほぼ同じ方法でメッセージ・パケ
ットを確認すべくAVT論理回路90によって用いら
れ、かつ割込みメッセージ・パケットのヘッダ、及び付
随しているデータが記憶されるメモリ28の円形キュー
を識別すべく割込み論理回路86(図9及び図21)に
よって用いられる。更に、割込み論理回路86は、信号
受信及び/又はマルチエントリ割込みの生成に対して割
込みまたは“原因”レジスタ280(図21:以下によ
り完全に説明される)にビットをセットする。
【0100】単一エントリ・キュー型割込みに対するA
VT割込みエントリは、AVT割込みエントリが記憶に
対してメッセージ・パケット情報を指向する割込みデー
タ構造が、メモリ28における(変更可能であるが)固
定された位置であるということを除き、実質的に同じよ
うな方法で動作する。両方のAVT割込みエントリ型
(マルチエントリ及び単一エントリ割込み)は、図20
に示した4倍長語(128ビット)フォーマットを有す
る。AVT割込みエントリの64ビット・セグメント
(“Queue Base Addr(キュー・ベース
加算器)”)は、割込みデータが書込まれる割込みキュ
ーのメモリ28の位置へのポインタとして用いられる。
割込みキューは、割込みをサービスするときに、割込み
データが割込み論理回路86によりFIFOキューのテ
ール(tail)で受信されかつ挿入され、かつプロセッサ2
0によりキューのヘッド(head)から抽出されるようにF
IFOの形で構成される。また、AVT割込みエントリ
は、ソースID情報を含んでいる20ビット・セグメン
ト(“SourceID”)も含み、割込み処理による
注意をシークしている外部装置を識別する。AVT割込
みエントリのソースID情報が、コンパレータ190
(図16)によって実行される比較によって決定される
ように、入力メッセージ・パケット(Source;図
5(b))のヘッダに含まれたものとマッチしないなら
ば、割込みキューへのアクセスは、否定され、かつAV
T誤り割込みが生成される。
【0101】AVT割込みエントリの12ビット“Pe
rmissions”セグメントは、標準AVTエント
リに関して上述したのと同じ許可情報を含む。しかしな
がら、一般に、割込みを送付するメッセージ・パケット
は、書込み要求として構成され、それがメモリ28に運
ぶ割込みデータを書込むべくシークする。それゆえに、
適切なAVT割込みエントリは、割込みデータをメモリ
28に書込ませるべくセットされたWrite Acc
ess(書込みアクセス)ビット(W)を有する。Pe
rmissionsフィールドの割込みビット(I)
は、セットされたときに、割込みメッセージ・パケット
を確認しかつ処理するためのものとしてAVT割込みエ
ントリを識別する。そして、AVT割込みエントリの4
つの、1バイト・セグメント(“c”,“q”,
“l”,及び“z”)は、(1)プロセッサ20にセッ
トされた割込みレベルを決定するために用いられる割込
みの“class(クラス)”(以下により完全に説明
される);(2)、その内容が(Queue Base
Address(キュー・ベース・アドレス)フィー
ルドによって識別された)特定のキューのどこに割込み
データが書込まれるべきであるかということを示す、レ
ジスタを、分かるように、選択するために用いられるキ
ュー数;(3)そこに記憶することができる倍長語の数
による各キュー位置で利用可能な記憶装置のサイズまた
は量;及び(4)キューのどこにデータが書込まれるか
を識別するために用いられるキュー・テール・カウンタ
におけるビットの数、をそれぞれ識別する。Queue
Base Addr、とc,q,l,及びzセグメン
トは、メモリ28の位置をポイントすべく割込み論理回
路86によって用いられる。割込み論理回路86は、そ
れぞれが割込みデータを挿入することができる4つのキ
ューの一つをポイントする4つの“テール”・カウンタ
を含む。4つのカウンタの特定の一つは、AVT割込み
エントリのqセグメントの内容によって選択される。そ
こから割込みエントリが引き出される点である、キュー
の他端は、4つの“ヘッド”・カウンタの一つによって
識別される。ヘッド及びテール・カウンタの(ビット数
による)サイズは、以下に示す表2に指定されたよう
に、9により負にバイアスされた、zサブ・フィールド
によって指定される。キュー・テール・カウンタ・サイ
ズは、テール・ポインタがゼロの値にラップバック(wra
p back) するときを決定するために用いられる。各エン
トリのサイズによって分割された語の数(バイト)は、
キュー・エントリの数を与える。最短キューは、ほんの
32エントリ(128バイト・エントリによって分割さ
れた4kBキュー)を有して、4kBを必要とすると同
時に、最長キューは、32,768エントリ(エントリ
当たり16バイトによって分割された512kB)と同
じ数だけ有することができる。
【0102】
【表2】表 2 解 釈 0 512 倍長語 (4K バイト) 1 1K 倍長語 (8K バイト) 2 2K 倍長語 (16K バイト) 3 4K 倍長語 (32K バイト) 4 8K 倍長語 (64K バイト) 5 16K 倍長語 (128K バイト) 6 32K 倍長語 (256K バイト) 7 64K 倍長語 (512K バイト) 8−15 使用せず
【0103】割込みキューの各割込みエントリのサイズ
は、以下の表3に示した方法で、4倍長語で、1フィー
ルドによって指定される。
【0104】
【表3】表 3 解 釈 0 1 4倍長語 (16 バイト) 1 2 4倍長語 (32 バイト) 2 4 4倍長語 (64 バイト) 3 8 4倍長語 (128 バイト) 4−15 使用せず
【0105】− 割込み処理:上記したように、本発明
の新規の特徴(機能)は、サービスをするためにCPU
12に割込みを送付すべくTNetネットワーク・メッ
セージ送付能力を用いる能力(機能)である。例えば、
I/O装置は、トランザクションを送付したメッセージ
・パケットにおける不適当なアドレス、またはCRC誤
りを有するメッセージ・パケットの受信、または受信メ
ッセージ・パケットが受信者を識別しなかった宛先アド
レスを有していたということに気付く(注目する)こと
のような多数の理由によりCPUによって発行される読
取りまたは書込みトランザクションを終了することがで
きないであろう。I/O装置、またI/Oインターフェ
イス素子によって気付かれた(注目された)、これら及
び他の誤り、例外、及び不規則性は、CPUの介入を必
要とする条件(状態)になることができる。従来のシス
テムでは、そのような条件(状態)は、割込みの対象事
項である;そこで、それらは、そのような割込みが送付
されないということを除き、過去におけるように −
割込み条件(状態)についての情報を殆どまたは全く有
さなず、かつそのような目的のためにだけ確保された信
号回線によって − しかしシステムのI/O素子に利
用可能なメッセージ・システムを通して、ここにある。
この特徴(機能)は、余分な信号回線に対する必要性を
低減する(他の使用に対して信号回線空間が利用可能で
あるものを許容する)だけでなく、CPUが調査を実行
するために時間を費やさなくてもよいように割込みの原
因になったものに対するより多くの情報を供給すること
ができるファシリティを供給する。
【0106】この特徴(機能)により、メモリ28に書
込まれるべき割込みタスク指名を含んでいる、入力メッ
セージ・パケットは、妥当性検査のためにAVT論理回
路90(図16)にまず渡される。また、AVT論理回
路90は、メッセージ・パケットが正規のI/O書込み
要求、割込み、あるいは禁止されているメモリ28への
誤アクセスであるか否かを決定する。AVT論理回路9
0のAVTベース・レジスタ174の内容は、標準メッ
セージ・パケットに対して上述したのと同じような方法
で主メモリにおけるAVT割込みエントリに対するポイ
ンタを生成するためにAVT入力レジスタ170に含ま
れる頁数フィールド170c(図16)を伴って用いら
れる(例えば、データを読取るかまたは書込むためにメ
モリ28へのアクセスをシークすること)。形成された
アドレスによってそのように識別されたAVTエントリ
は、メモリ28からアクセスされかつインターフェイス
装置24(図9)の割込み論理回路86による使用のた
めにAVTエントリ・レジスタ180にセットされ、図
21に詳細に示される。一度その割込み情報を運んでい
るメッセージ・パケットがAVT論理回路90によって
クリアされたならば、割込み情報を処理する役割を果た
すのは、割込み論理回路86である。割込み論理回路8
6は、4つのキュー・テール・レジスタ256の内容を
受信し、かつそれらの間で選択する、マルチプレクサ
(MUX)252を含んで、図21に示されている。同
様に、MUX254は、4つのキュー・ヘッド・レジス
タ262の内容を受信し、かつそれらの間で選択する。
各MUX252,254の選択入力は、AVTエントリ
・レジスタ180に保持された(割込みメッセージ・パ
ケットに対応している)検索AVTエントリの“q”セ
グメントの内容を受信すべく結合される。使用すべくキ
ュー・レジスタ256,262の各グループからの一つ
を選択するために用いられるのは、q値である。
【0107】数は、ここでは、以下に説明する理由によ
り4つに制限されるが、割込みデータの記憶を処理する
ためにメモリにセット・アップされたあらゆる数のキュ
ーが存在しうる。各そのようなキューのメモリ28内の
位置は、アクセスされたAVTエントリのキュー・ベー
ス・アドレス値によって指定され、かつエントリ・レジ
スタ180(図16の“phys pg#”; 図21
の“ベース”)に保持される。4つのキュー・テール・
レジスタ256の内容は、それぞれが特定のキューの中
にオフセットを形成してキュー・ベース・アドレス値に
よって指定される。選択したキュー・テール・レジスタ
256の内容は、加算器258によりキュー・ベース・
アドレスと組合わされ、そこで割込みデータが書込まれ
る指定されたキューの中にエントリ・ポイントを形成す
る。さらに多くのまたは少ないキューを維持(保守)す
ることができるということは、当業者には、明らかなこ
とであるが、4つのキュー・ヘッド及びテール・レジス
タ262,256は、4つのキューを処理することだけ
に割込み論理回路86を制限する。レジスタ256は、
特定のキューの“テール”の位置を指定し、次の受信割
込みデータが配置されるキュー・エントリを指し示す。
4つのキュー・ヘッド・レジスタ262は、特定のキュ
ーの他端を指定する。
【0108】キュー・ベース・アドレスと選択されたテ
ール・キュー・レジスタ256の内容との組合せから生
起されたアドレスは、4倍長語(16バイト)境界上に
位置合わせすべく形成されるのが好ましい。これは、キ
ュー・エントリ・アドレスの下位4ビットを0に強要す
ることによって達成される。キュー・エントリ・アドレ
スの形成は、図22に図式的に示され、選択されたテー
ル・レジスタ256の15ビット内容の高位7ビット
が、AVTエントリ・レジスタ180に含まれるキュー
・ベース・アドレス・フィールドのビット位置12−3
1に付加されることを示している;この合計の結果は、
キュー・エントリ・アドレスの高位20ビット(ビット
位置12−31)を形成する。選択されたテール・レジ
スタ256の下位8ビット内容は、キュー・エントリ・
アドレスの下位ビット位置4−11として直接用いられ
る。上述したように、キュー・エントリ・アドレスの下
位4ビット(ビット位置0−3)は、所望の位置合わせ
に対して全てゼロに強要される。纏めると、割込みを含
んでいるメッセージ・パケットは、それらが、実質的
に、受信CPU12のメモリ28にデータを書込むため
の要求であるので、他のメッセージ・パケットと同じ方
法で最初処理され、その要求は、AVT論理回路90に
よって確認されなければならない。それゆえに、メッセ
ージ・パケットからの情報は、AVT入力レジスタ17
0及びAVTエントリを位置決めしかつメモリ28から
アクセスするために用いられる部分(フィールド170
c及び170d)にセットされる。AVTエントリは、
メッセージ・パケットが割込み処理に対する適当な情報
を含むならば、AVTエントリ・レジスタ180にセッ
トされる割込みAVTエントリでありかつ割込みを確認
(オーセンチケート)するために用いられ、そして、割
込み論理回路86を用いて、AVTエントリに含まれる
ベース・アドレス情報によって指定された4つの円形キ
ューの一つに割込みデータを記憶する。プロセッサ20
は、通知され、かつ割込みが処理されるか否か、及びど
のように処理されるということは、それら次第である。
【0109】キューに割込みメッセージ・パケット・デ
ータを記憶して、アドレス指定は、次のメッセージ・パ
ケットの割込みデータの受信を見越して更新されなけれ
ばならない。割込みデータが選択キューに書込まれた
後、AVT表エントリ・レジスタ180に含まれる
“1”フィールドの内容は、組合せ(combiner)回路27
0により選択テール・キュー・レジスタ256と組合わ
され、その出力は、次の割込みメッセージ・パケットの
割込みデータが記憶されるところで新しいオフセットを
キューに変える(turn into) べく“mod z”回路2
73によって処理される。その新しいオフセット値は、
選択テール・キュー・レジスタ256に戻される。同時
に、組合せ回路270の出力は、比較回路272に供給
される。割込み問合わせは、zのモジュール・サイズを
有するファッションで環状であるべく構成される。mo
d z回路は、環状性を維持する出力を生成する。テー
ル・キュー・ポインタがキューにおけるネスト・エント
リ・ポイントを識別し、かつヘッド・ポインタがキュー
にどのくらいのルームが残っているのか、対応テール・
ポインタに関して、識別するので、これら二つの値が等
しいならば、キューは、充満(いっぱい)である。それ
ゆえに、(選択されたヘッド・キュー・レジスタ262
によって供給された)ヘッド・ポインタを最後のエント
リの結果として生成されたテール・ポインタと比較する
ことによってこの決定を行うのは、比較回路272であ
る。キューに対してヘッド及びテール・ポントがいま等
しいならば、比較回路272は、それ自身が割込み信号
である、“Queue Full(キュー充満)”警告
信号を発行する。Queue Full警告信号は、事
項(matter)が適格に処理されないならば、キューがいっ
ぱいであったならば、追加割込みメッセージが廃棄され
るので、遅く受信した割込みデータが失われうるとい
う、警告としてプロセッサ装置20に運ばれる“固有(i
ntrinsic) ”の割込みになる。
【0110】入力メッセージ・パケット割込みは、割込
みレジスタ280の多数のビット位置の一つをまずセッ
トすることによって割込みをプロセッサ20にポストさ
せる。マルチ−エントリ・キュー型割込みは、プロセッ
サ20にポストするために割込みレジスタ280aにセ
ットされる;単一エントリ・キュー割込みは、割込みレ
ジスタ280bを用いる。どのビットがセットされたか
は、AVT入力レジスタ180に保持されたAVTエン
トリのクラス・フィールド(c)に依存する。
【0111】まずマルチ−エントリ・キュー型割込みを
考慮すると、マルチ−エントリ・キュー型割込みが決定
された後すぐに、インターフェイス装置は、復号回路2
83に印加(供給)される対応割込み信号(I1)をア
サートする。復号回路283は、セットすべきレジスタ
280aのレジスタ位置を決定すべくAVTエントリ・
レジスタ180からクラス(c)値を受信しかつ復号
し、それによりプロセッサ20に受信割込みに関する先
進の情報、即ち、(1)ポストされた割込みの型、及び
(2)その割込みのクラス、を供給する,同様に、単一
エントリ・キュー割込みは、受信したときに、セットす
べきレジスタ280bのビット部分を決定すべくクラス
(c)値を受信しかつ復号する、復号論理回路287に
対応割込み信号(I2)をアサートさせかつ印加させ
る。
【0112】テール及びヘッド・キュー・レジスタ25
6,262は、マルチプレクサ(MUXs)276,2
74の別のペアにも結合される。更新レジスタ278の
内容は、比較回路279によって互いに比較されるレジ
スタ256,262の対応ペアを選択する。更新レジス
タは、比較のためのレジスタ・ペアを選択するためにプ
ロセッサ20によって書込み可能である。二つの選択さ
れたレジスタ256,262の内容が等しく、対応キュ
ーが空であるということを示していることがわかったな
らば、対応割込みレジスタは、クリアされる。クラス・
レジスタ281は、クリアされることが必要な割込みレ
ジスタ280aの割込みビットを(クラスにより)選択
する。ちょっと脇道にそれると、プロセッサ20に係わ
る二つの割込みの基本型が存在する:メッセージ・パケ
ットによりCPU12に伝達される割込みと、“固有”
割込みと呼ばれる、CPU12自身によって生成される
割込みである。固有割込みは、割込み論理回路86の比
較回路272によって生成されるキュー充満警告信号の
ような内部的に検出された誤りの結果として生ずる。し
かしながら、それらは、最初に割込みパケットとして送
られなかったメッセージ・パケットを受信するときに気
付く例外も含みうる。そのようなメッセージ・パケット
割込みは、メッセージ・パケットが不良指令記号を有し
ているものとして検出されたこと、または受信メッセー
ジ・パケットが不要CRCを有する(かまたは以下に説
明するように、TPB識別子でタグされる)ことを見出
した結果として生ずる誤り。これらの固有割込みは、固
有割込みがマルチ−エントリ及び単一エントリ割込みが
割込みレジスタ180a,180bのビット位置をセッ
トすることによってポストされるのと同じ方法でポスト
されるところに固有レジスタ280cの特定ビット位置
をもたらす。更に、メモリ28に維持されるAVT表
は、固有AVT割込みのために確保された第1の数のエ
ントリを有する。固有割込み信号が固有割込みレジスタ
180cをセットすべく生成されたときには、それは、
割込みをアクセスさせかつAVT論理回路90のAVT
エントリ・レジスタ180に装填させた例外に対応して
いるAVTエントリをもたらす。それ以後、割込みは、
メッセージ・パケット送信型割込みとして同じ方法で処
理される。
【0113】ビット毎に基づき、割込みレジスタ280
a,280b,及び280cの各々と関連するのは、そ
れぞれ対応マスク・レジスタ282a,282b,及び
282cである。割込みレジスタ280(例えば、28
0a)の各ビット位置は、マスク・レジスタ282(例
えば、282a)における対応ビット位置を有する。マ
スク・レジスタ282の特定ビットがセットされたとき
には、関連割込みの認識は、抑制される。割込みレジス
タ280の内容は、マスク・レジスタ282の内容によ
って渡されたならば、それらが7つの割込み“ポスティ
ング(postings)”(信号)に組合わされる、複数のOR
ゲートを含んでいる、組合せ論理回路286に結合され
る。組合せ論理回路286は、7つの割込みポスティン
グをラッチ288に結合し、ラッチからそれらは、ポス
ティングを受信しかつ保持するポインタ割込みレジスタ
を有するプロセッサ20(20a,及び20b)に結合
される。加えて、レジスタ288の内容は、比較回路2
89に印加(供給)され、かつレジスタ288の入力と
(レジスタ288を装填する各クロックの前に)比較さ
れる。割込みにおける変化(割込みがサービスされ、か
つそのポスティングがプロセッサ20によって削除され
たか、または新しい割込みがポストされたかのじずれ
か)を示している、相違が存在するならば、“CHAN
GE(変化)”信号が、割込みポスティング変化が発生
し、かつ変化をプロセッサ20に伝達すべきであること
をそれに報告すべくプロセッサ・インターフェイス60
に発行される。
【0114】AVTエントリ・レジスタ180は、TA
G及び有効ビットを備えた単一回線キャッシュのようの
動作すべく構成されるのが好ましい。TAGは、システ
ム・メモリ28からAVTエントリを調べる(ルックア
ップ)ために用いられるTNetアドレスの部分からな
る。通常動作では、TAGが入力パケットのTNetア
ドレスとマッチしないならば、正しいAVTエントリが
システム・メモリ28から読取られかつAVTエントリ
・レジスタ206に読取られて、古いAVTエントリを
置換する。当業者は、ちょっと挙げてみると、セットア
ソシエイティブ、完全−関連(fully-associate) 、また
は直接−マップ型(direct-mapped) のような他のキャッ
シュ編成が可能であるということを認識するであろう。 − コヒーレンシー:キャッシュ・メモリ用いるデータ
処理システムは、コヒーレンシーの問題を長く認識して
いた:キャッシュまたは主メモリへのアクセスが新鮮で
ないデータを決して戻さないか、または良好(最新)な
データを上書きしないことを確実にすること。この問題
に対する多数の解決策が存在するが、その多くが大規模
かつ複雑なハードウェアを使用する。コヒーレンシー問
題は、データが外部(CPUに対して)I/Oまたは別
のCPU12からメモリに書込まれるとき、または、シ
ステム10のコンテキストにおけるように(例えば、図
4)、データがCPU12BによってCPU12Aのメ
モリ28に書込まれるときにも生ずる。一つの解決策
は、入力データがバッファのバウンドがキャッシュ・ブ
ロック境界に位置合わせされるようにメモリ・バッファ
に書込まれることを確実にすることである。しかしなが
ら、この解決策は、入力データに対して用いられるキャ
ッシュ・ブロックの妥当性を検査するためにソフトウェ
ア・スキームと一緒に用いられるときにだけ応用(アプ
リケーション)を見出し、出力データに用いるキャッシ
ュ・ブロックの書戻しを強要する。
【0115】それゆえに、(I/O、または別のCPU
12からの)入力読取り要求、及び出力読取り及び書込
み要求に適するコヒーレンシー問題のソフトウェア管理
に対する従来技術が存在する。しかしながら、従来技術
は、キャッシュ・ブロック境界上に位置合わせされてい
ないメモリ28のI/Oバッファへの入力書込み要求を
管理するのに向いていない。しかしながら、キャッシュ
・ブロック境界上にメモリのI/Oバッファの位置合わ
せを要求することは、より可撓性が少ないシステム、及
び既存の(オペレーティング・システム)ソフトウェア
と非互換性でありうるシステムを結果として生ずる。従
って、本発明の割込み機構は、そのバッファの境界がキ
ャッシュ・ブロックの境界に位置合わせされるか否かと
いうことを考慮することなくデータ・バッファをメモリ
に位置決めさせるようにコヒーレンシーを確立するため
に用いられる。この関連において、入力パケットのソー
スがアクセスを許容されるメモリ28の領域の上部及び
下部境界(upr bnd, lwr bnd)を画定
しているAVT表Entryレジスタ180のフィール
ド(図16)は、境界クロッシング(Bdry Xin
g)検査装置219に印加(供給)される。境界検査装
置219は、それでCPU12が動作すべく構成される
キャッシュ・ブロックのサイズの表示、AVT Ent
ryレジスタ180に保持されるAVTエントリのPe
rmissionsフィールドからのコヒーレンシー・
ビット(“c[1:0]”)、及びAVT入力レジスタ
170からのヘッダ情報のLenフィールドも受信す
る。Bdry Xing装置は、入力パケットのデータ
が 上に位置合わせされていないかを決定し、かつコ
ヒーレンシー・ビット(“c[1:0]”)が適切にセ
ットされたならば、データ及びそのデータを含んでいる
パケットのヘッダを記憶するために特別のコヒーレンシ
ー・キューを指し示すべく用いられる割込みエントリの
アドレスのフェッチを強要する。
【0116】図42をここでちょっと参照すると、CP
U12のメモリ28(図4)によって実施されるメモリ
空間の部分28’が示されている。図42が更に示すよ
うに、3つのキャッシュ境界CBa ,CBb ,及びCB
c は、メモリ部分28’と一緒に含まれ、二つのキャッ
シュ・ブロックC_BLKa 及びC_BLKb を画定す
る。書込み要求メッセージ・パケットが受信され(例え
ば、別のCPU12、またはI/O装置から)、かつク
ロス−ハッチング(格子縞)で示される、そのメッセー
ジ・パケットに含まれるデータがメモリ部分28’を含
むメモリ28の領域に書込まれるものであると想定す
る。事実、書込まれるべきデータは、キャッシュ・ブロ
ックC_BLKa をほんの部分的に上書きするが、キャ
ッシュ・ブロックC_BLKb 、及び他のキャッシュ・
ブロックを完全に上書きする。書込まれるCPU12の
キャッシュ22がキャッシュ・ブロックC_BLKb
またはキャッシュ・ブロックC_BLKa 以外の他のキ
ャッシュ・ブロック(または、キャッシュ境界上に位置
合わせされていないならば、入力データの他端を含んで
いるキャッシュ・ブロック)を含むならば、ブロック
は、“無効”とマークすることができ、メモリに書戻さ
れかつ新しく受信したデータを上書きすることからそれ
を防ぐ。
【0117】しかしながら、キャッシュ22がキャッシ
ュ・ブロックC_BLKa を含むならば、AVT90の
(“c”がPermissionsフィールドにセット
されることによりイネーブルされたならば;図16及び
図19を参照)境界クロッシング論理回路219は、キ
ャッシュ・エントリを部分的に無効にするI/Oパケッ
トを検出し、かつコヒーレンシー割込みを強要すること
が必要である。これは、特別割込みキャッシュへのポイ
ンタを含んでいる、割込み記述子のフェッチを結果とし
て生じ、かつ全入力TNet要求パケットは、キューに
書込まれる。同時に、割込みは、入力データの一部分が
特別のキューに装填されるということをプロセッサ20
に知らせるためにキュー型割込みレジスタ280に書込
まれる。
【0118】要するに、入力パケットがメモリ28に書
込まれるべきデータを有するならば、境界クロッシング
論理回路219は、データが書込まれるバッファの境界
がキャッシュ境界と位置合わせされるかどうかを見る
(調べる)べく検査する。そうであるならば、データ
は、指示(指導)されるように書込まれる。そうでなけ
れば、パケット(ヘッダ及びデータの両方)は、特別の
キューに書込まれ、かつプロセッサは、上述した固有割
込み処理によってそのように知らされる。次に、プロセ
ッサは、特別のキューからキャッシュ22にデータを移
動し、よいデータが上書きされないかそもなくば失われ
ず、かつキャッシュ22とメモリ28の間のコヒーレン
シーが保存されることを確実にすべく後でキャッシュを
メモリ28に書込みうる。
【0119】− ブロック転送エンジン(BTE):プ
ロセッサ20は、CPU12Aの外部素子に情報を直接
伝達(例えば、送る)することを禁止されているので、
CPUのインターフェイス24a(図9)のBTE88
は、情報送信の間接方法に対して供給される。BTE8
8は、情報のブロックを転送すべく全プロセッサ始動型
(all processor initiated) I/Oトラフィックを実施
するために用いる機構である。BTE88は、TNet
パケット規定によった許容される最大値、現在は64バ
イト、までの長さを有する読取り及び書込みパケットの
生成を許容する。BTE88は、一つが他よりも高い優
先度を与えられる、二つの“仮想”チャネルを供給す
る。図23を参照する、BTE88は、それらの内容が
(インターフェイス装置24aの;図9)MUX306
に結合されかつメモリ・コントローラ26(図23に図
示せず)を介してシステム・メモリ28をアクセスする
ために用いられる二つのBTEレジスタ300,302
を含んで示されている。レジスタ300,302の部分
は、CPU12A(図4)のメモリ28におけるBTE
データ構造304の始まりへのポインタ(例えば、BT
Eアドレス−0及びBTEアドレス1)を含む。プロセ
ッサ20は、CPU12Aの外部の一つまたは別の素子
(例えば、CPU12BまたはI/Oパケット・インタ
ーフェイス16のI/O装置17,18のどれか)に情
報が送られるかまたはそれから情報が検索される度にメ
モリ28にデータ構造304を書込む。各データ構造
は、4倍長語境界上で始まることを必要とし、かつBT
Eレジスタ300,302は、プロセッサ20によって
のみ書込み可能である。プロセッサがBTEレジスタ3
00,302の一つに書込むときには、それは、BTE
状態マシン307によって制御される、BTE処理を始
動すべく動作する、クリア状態に要求ビット(rc0,
rc1)をセットする語でそのようにする。
【0120】BTEレジスタ300,302は、タイム
−アウト/NAK誤り表示を報告する誤りビット(e
0,e1)も含む。誤りビットは、対応BTEレジスタ
が書込まれるときにクリアされる。誤り原因(ec)ビ
ットは、タイム−アウトとNAKsとを差分する。情報
が外部装置にプロセッサ20によって転送されるとき
に、データ構造304のデータ・バッファ部分304b
は、転送されるべき情報を保持する。外部装置からの情
報がプロセッサ20によって受信されたときには、デー
タ・バッファ部分304bは、読取り応答情報を保持す
べくターゲットされた位置である。データ構造304の
始まり、プロセッサ20によって書込まれた部分304
aは、送られるパケットを受信する外部素子を識別す
る、情報フィールド(Dest)を含む。部分304a
は、所望の動作(例えば、読取りまたは書込み情報)を
記述する情報フィールド(TYPE)、書込まれるかま
たは要求されるデータのバイト数を記載している、長さ
情報フィールド(Len)、及び所望のデータが位置決
めされる外部素子(Dest)の場所、または送信され
たデータが書込まれるべき場所を識別している、アドレ
ス情報フィールド(Address)も含む。この情報
は、図5(a)〜図5(d)及び図6〜図8に示す形に
パケットをアセンブルすべくパケット送信機装置120
(図9)によって用いられる。
【0121】データ構造部分304aにおけるアドレス
情報にすぐ続くのは、データ・バッファ部分304bが
位置決めされるメモリのアドレスを含んでいる語(Lo
cal Buffer Ptr)である。次に、チェイ
ン・ポインタ、要求が終了したことを示すエンド−オブ
−リスト(el)フラグ、終了インディケータ上の割込
み(ic)及びチェックサム(cs)要求を含んでいる
語が、その後にすぐ続く。一つのデータ構造304は、
最大64バッファ長まで外部素子(例えば、I/O記憶
装置)に移動されるべくメモリのデータの各部分に対し
て用いられる。BTEは、データの64バイト・セグメ
ントに対して、各要求構造に応じて、メモリ28を逐次
的にアクセスすべく動作し、各セグメントに対してメッ
セージ・パケットを形成し、かつ進行してそのメッセー
ジ・パケットを送る。チェイン・ポインタは、エンド−
オブ−リスト・ビット(el)がセットされない限り、
データの別の64バイトに対する次のデータ構造にBT
Eを指向して、動作を終わらせる。データが多数の外部
素子へ送られるべきであるならば、各異なる素子は、セ
ットアップされるべくそれ自身のデータ構造(64バイ
ト以上が送られるならば複数のデータ構造)に要求す
る。次に、これら個別のデータ構造は、要求構造のチェ
イン・ポインタ・フィールドに含まれるチェイン・ポイ
ンタを用いて、チェインで繋がれうる。チェイン・ポイ
ンタ・フィールドは、後続データ構造に対するBTEレ
ジスタの内容として用いられる。例えば、メモリ28の
大きなブロックのデータがNの異なる外部素子に送られ
るべきであるならば、データ構造は、BTE論理回路8
8が送られるべきデータを見出すことができるメモリ2
8の場所を識別している各データ構造でNの外部素子の
それぞれに対するメモリに書込まれる。各素子に対する
データは、BTE論理回路88によってアクセスされ、
メッセージ・パケットがデータを含んで形成され、かつ
それらが適切にTNetに送られるパケット送信機12
0に伝達される。次に、データ構造に含まれるチェイン
・ポインタは、別のデータ構造にチェインで繋がれるこ
とが必要であるならば、アクセスされかつ作用を始動し
た適切なBTEレジスタ300、302に書込まれて、
要求パケットを受信すべく次の素子のための次の構造に
対するアドレスを供給する。
【0122】エンド−オブ−リスト(el)ビットは、
セットされたときには、チェインの終りを示し、かつB
TE処理を停止する。割込み終了(ic)ビットは、セ
ットされたときには、インターフェイス装置24aに、
前のBTE送信パケット(チェイン・ポインタによって
示されたものではない)の終了を示すために割込みレジ
スタ280(図21)にビットをセットする割込み(B
TECmp)をアサートさせる。割込みタイム−アウト
(it)ビットは、セットされたときには、インターフ
ェイス装置24aに、アクセスの肯定応答がタイム−ア
ウト(即ち、要求タイマ(図示省略)がタイムアウト信
号を発行して、予期応答を適切な時間内に受け取らなか
ったことを示す)するか、またはNAK応答を導き出す
(要求のターゲットが要求を処理できないということを
示している)ならば、プロセッサ20に対する割込み信
号をアサートさせる。そして、チェック・サム(cs)
ビットがセットされたならば、外部素子に書込まれるべ
きデータは、チェック・サム量を生ずるべくBTE88
(インターフェイス24a;図9)のチェック・サム発
生器(図示省略)を通過させる。生成されたチェック・
サムは、メモリに書込まれ、それ自身のパケットに続い
て位置決めさかつチェック・サムが形成されたデータを
含んでいるメッセージ・パケットの宛先に送られうる。
【0123】纏めると、CPU12Aのプロセッサ20
が外部装置にデータを送ることを望むときには、それら
は、データ構造の部分304aに識別子情報、バッファ
部分304bにデータを含んでいる、データ構造304
をメモリ28に書込む。次に、プロセッサ20は、デー
タの優先度を決定し、かつデータ構造304(即ち、ヘ
ッダ部分304a)を見出すことができるメモリ28の
アドレスを有するBTEレジスタ300,302を書込
み、同時にBTEレジスタ300,302の要求終了ビ
ット(rc1)をクリアして、BTE動作を、BTE状
態マシン306の制御下で開始させる。Dest,TY
PE,Len,及び部分304aからのアドレス情報
は、メモリ28からアクセスされかつ適切なパケット形
に配置されるパケット送信機120に伝達される。デー
タ構造304が、転送が書込み動作であることを指定す
るならば、局所バッファ・ポインタは、アクセスされか
つデータ・バッファ部分304bを位置決めするために
用いられる。次に、データは、アクセスされ、パケット
送信機120に伝達され、ヘッダ及びアドレス情報と一
緒にパケット化され、かつ送られる。データ構造304
が読取り要求(例えば、プロセッサ20が外部装置 −
I/O装置またはCPU12のいずれかからのデータ
をシークする)を示すならば、Len及びLocal
Buffer Ptr情報は、(外部素子から要求が行
われたところに)読取り応答パケットが戻されたとき
に、メモリ28への書込み要求を生成するために用いら
れる。データは、局所メモリ書込み動作が実行されるま
でパケット受信機100(図9)の入力パケット・バッ
ファ110に保持される。
【0124】外部装置へのプロセッサ−生成型読取り要
求に対する応答は、AVT表論理回路146によって処
理されない。それよりも、プロセッサ20がBTEデー
タ構造をセットアップしたときに、トランザクション・
シーケンス番号(TSN)は、要求が割り当てられ、か
つ上述したHAC型パケット(図6〜図8)である、B
TE88によって形成されかつ送られるメッセージ・パ
ケットのヘッダ・フィールドに含まれる。また、プロセ
ッサ20は、データが、受信したときに、配置されるべ
きところで、BTEデータ構造においてメモリ・アドレ
スを含む。BTE論理回路88が進行してパケットを送
るときには、バッファ位置のメモリ・アドレスは、レジ
スタ・ファイル(図示省略)に書込まれる、要求トラン
ザクション論理回路100(図9)であり、レジスタ・
ファイルへのポインタとしてTSNを用いている。応答
(HDCメッセージ・パケットの形である − 図7)
がCPU12によって受信されたときに、要求トランザ
クション論理回路100は、入力メッセージ・パケット
に含まれるデータがメモリ28において配置されるバッ
ファの対応メモリ・アドレスに対するレジスタ・ファイ
ル(図示省略)へのポインタとしてパケットのヘッダか
らのトランザクション・シーケンス番号(TSN)を用
いる。
【0125】BTEレジスタ300,302の優先順位
(prioritization)を理解擦るために、CPU12Aから
外部装置へのデータの前述の転送は、情報の大きなブロ
ックのものであると想定する。従って、多数のデータ構
造は、プロセッサ20によってメモリ28にセットアッ
プされ、(最後を除き)それぞれは、追加データ構造へ
のチェイン・ポインタ、送られるべきデータを(データ
構造304のデータ・バッファ部分304bに)備える
総計を含んでいる。優先順位の高い要求は、プロセッサ
20によってなされるのが望ましいということをここで
想定する。そのような場合には、そのような優先順位の
高い要求に対する関連データ構造304は、上述したの
と同じ形で、メモリ28に書込まれる。次に、優先順位
の高いBTEレジスタ300は、データ構造を位置決め
するために必要なBTEアドレス、及びクリアされた要
求終了表示ビット(rc0)で書込まれる。しかしなら
ば、BTEレジスタ300を書込むことによって示され
たBTE要求は、すぐにはスタートしない。それは、B
TEレジスタ302の内容によって始動されたBTE動
作がパケット間で休止するまで待つ。更に、BTEレジ
スタ302の内容により信号が送られたBTE動作は、
BTEレジスタ300の内容によって示されたBTE動
作のために中断される。そのBTE動作は、終了するま
で進行し、そのときに、BTEレジスタ302の内容に
よって信号が送られたBTE動作は、再開され、かつB
TEレジスタ300が別のBTE動作記述子で再び書込
まれない限り終了される。
【0126】− メモリ・コントローラ:図4にちょっ
と戻ると、インターフェイス装置24a,24bは、一
対のメモリ・コントローラ(MC)26a,26bを介
してメモリ28をアクセスする。Mcsは、インターフ
ェイス装置24とメモリ28の間にフェイル−ファース
ト・インターフェイスを供給する。Mcs26は、(ダ
イナミック・ランダム・アクセス・メモリ(DRAM)
論理回路で実施される)メモリ・アレー28をアクセス
するために必要な制御論理回路を供給する。Mcsは、
インターフェイス装置24からメモリ要求を受信し、か
つ読取り及び書込みを実行すると共にリフレッシュ信号
を28でメモリ・アレーを実施するDRAMsに供給す
る。二つのMcs26a,26bは、メモリ・アレー2
8とインターフェイス装置24a,24bとの間に72
ビット・データ経路を供給すべく並列に走り、SBC−
DBD−SbD ECCスキームを用いており、ここで
b=4であり、合計100ビット(64データ・ビット
+28アドレス・ビット+8チェック・ビット)のう
ち、72ビット(64データ及び8チェック・ビット)
だけが実際にメモリ28に書込まれる。
【0127】図24を参照すると、メモリ28から14
4ビットのデータをフェッチすべく並列に動作する二つ
のMcs26a,26bが示されている。一つのMC
(例えば、26a)は、MCとメモリ28の間に72ビ
ット経路330aを形成すべく8チェック・ビットと一
緒に連続偶数アドレスで二つの32ビット語を同時にア
クセスすべく接続される。他のMC(例えば、26b)
は、第2の72ビット経路330bを形成すべく二つの
32ビット奇数語を別の8チェック・ビットと一緒に同
様にアクセスすべく接続される。この構成は、二つのM
cs26a,26bを一緒に作動させ、かつ最小待ち時
間でインターフェイス装置24に64ビット語を同時に
供給させ、半分(D0)は、MC26aから生じ、他の
半分(D1)は、他のMC26bから生ずる。インター
フェイス装置24は、ECCチェック・ビットを生成し
かつ検査する。用いられるECCスキームは、(単一ビ
ット)データ誤りを検出しかつ修正するだけでなく、全
ての二重ビット誤り及び単一DRAMからの4ビットま
での誤りも検出する。フェイル−ファースト設計は、イ
ンターフェイス24とMCバス25の間、並びに内部レ
ジスタ間のアドレス転送上のパリティを検査する。
【0128】インターフェイス装置24の視点から、メ
モリ28は、二つの命令でアクセスされる:“N二重語
を読取る”及び“N二重語を書込む”。これら指令の両
方は、第1の36ビット転送上のアドレス及び制御と、
第2の32ビット転送上のバイト・カウントとを有する
Mcs26に入力する。書込みで、Mcs26は、指令
を、二重語書込み、または二重語書込みのブロックのい
ずれかに分解する。読取りで、要求データは、単一二重
語読取りまたはブロック読取りフォーマットのいずれか
に戻される。“データ有効”と呼ばれる信号は、読取り
データが戻されるかまたは戻されない2サイクル先の時
間をインターフェイス装置24に告げる。上記したよう
に、保守プロセッサ(MP18;図1)は、CPUs1
2へのアクセスの二つの手段を有する。一つは、TNe
t構造を用いることによって、パケット化された情報を
送る(または受信する)ために、ルータ14を含んでい
る。より限定されたにもかかわらず、別のものは、シス
テム10の種々の素子(例えば、ルータ14、CPUs
12、I/Oパケット・インターフェイス16)に組込
まれたOn Line Access Port(オン
・ライン・アクセス・ポート)(OLAP)を通してで
ある。アクセスのこの後者の形は、メモリ・コントロー
ラ26のそれぞれを通してMP18に対する読取り及び
書込みアクセスの両方を供給しているOLAP直列ポー
ト285を示す図25に示されている。(図25に示し
たのは、メモリ・コントローラ26aへのOLAPアク
セスである;メモリ・コントローラ26bは、実質的に
同一デザインのものである。)ブート・タイムでは、M
P18は、プロセッサ20に、それら(プロセッサ2
0)に動作を開始させ、メモリに一連の命令のイメージ
を組込ませる命令で、OLAP285に含まれるレジス
タを書込み、例えばブート処理を終了する外部(記憶)
装置から命令及びデータを転送すべくI/Oに行く。
【0129】また、OLAP285は、誤り表示をMP
18に伝達するためにプロセッサ20によって用いられ
る。例えば、インターフェイス装置24の一つが、メモ
リ・コントローラ26から受信したデータにおいてパリ
ティ誤りを検出したならば、それは、動作を一時停止す
る誤り信号を発行すると共に、誤りをMP18に知らせ
るためにビット位置をOLAP285にセットさせる。
メモリ・コントローラ26によって実行される誤り検査
(例えば、パリティは、レジスタ読取り動作上の不良を
検出する)は、動作を同様に一時停止しかつ 誤りが発
生したことをOLAP285を介してMP18に知らせ
る。システムのMP18及び種々のOLAPs(例え
ば、MC26aのOLAP285)は、IEEE標準1
149.1に準じて構成される直列バス287を通して
通信する。メモリ・コントローラのアーキテクチャは、
Mcs26を実施することにおいて用いる種々の状態マ
シンを監視することによる誤り検査の特定の形を除き、
一般に通常の設計のものである。図26が示すように、
MC26aの機能(MC26bについても同様)は、そ
れぞれが複写されかつ比較される、3つの主な状態マシ
ンによって制御される。マスタ状態マシン・ペア390
は、メモリ28にデータを伝達するためにMCADバス
25からDRAMデータ・バスにデータ及び命令を得る
ような、MC26a自身の機能を制御すべく動作する。
次に、マスタ状態マシン・ペア390は、MC26aと
対応インターフェイス装置24aとの間のバス25上の
データ及びアドレス転送を処理するメモリ制御アドレス
/データ(MCAD)状態マシン392にわたり制御を
実施する。DRAMデータ・バス上のアドレシング及び
データ転送、並びに必要なリフレッシュ信号の生成及び
シーケンシングは、DRAM状態マシン・ペア394に
よって制御される。状態マシン・ペア390,392,
及び394によって入力されたディジタル状態は、比較
回路395によって互いに比較される。比較ミス(mis-c
ompare) は、CPU12の動作を一時停止すべく比較ミ
スを検出している比較回路395からのERROR信号
のアサーションを結果として生ずる。
【0130】パケット・ルーティング:処理システム1
0の種々の素子間(例えば、CPUs12A,12Bと
I/Oパケット・インターフェイス16に結合された装
置)で伝達されるメッセージ・パケットは、パケットに
含まれる情報(即ち、情報の他のものは、ソース・フィ
ールドとしても、用いることができるが、ヘッダの宛先
フィールド、図5(b))により、ルータ14によって
“送られる(routed)”。しかしながら、ルータ14の構
成及び設計を説明する前に、CPUs12とルータ14
との間、またはルータ14とI/Oパケット・インター
フェイス16との間のTNetリンクL上でメッセージ
を伝達するために用いるプロトコルをまず理解すること
は、有利である。まず、各TNetリンクLは、受信及
び送信能力(機能)の両方を有するポートを介して処理
システム10の素子(例えば、ルータ14A)に接続す
る。素子の各送信ポートは、記号毎の、メッセージ・パ
ケットの同期送信に用いられる送信クロック(T_Cl
k)信号を供給しなければならない。記号は、送信の受
信端のクロック同期FIFOが同期を維持するようにT
_Clkの各及び全てのクロック・サイクル(即ち、各
クロック周期)で送信される。
【0131】クロック同期は、処理システム10が動作
されるモードに依存する。CPUs12A及び12B
が、例えば、互いに独立(個別)に動作するシンプレッ
クス・モードで動作しているならば、ルータ14とCP
Us12との間のクロッキングは、“近周波数”であ
る;即ち、CPUs12及びCPUsに直接接続するル
ータ14によって用いられるクロックは、互いに関して
ドリフトしうる。逆に、処理システム10がデュプレッ
クス・モードで動作する(例えば、CPUsが同期され
た、ロック−ステップ動作で動作する)ときには、それ
らが接続するルータ14とCPUs12との間のクロッ
キングは、“周波数封じ込み(位相封じ込みである必要
はない)である。処理システム10の種々の素子間のデ
ータ・パケットのフローは、いつでも、パケット内でさ
えも、現れうる、指令記号によって制御される。(表1
を参照して)上記で考慮したように、指令記号は、全て
0である上位ビットによって識別される。それらの指令
記号は、次の通りである。
【0132】IDLE: IDLE指令記号は、送るべ
き他の指令記号またはデータ・パケットが存在しないと
きにクロック毎に送信される。IDLE指令記号は、T
Netリンク上でパケットまたは指令記号間の空白詰め
物(space filler)として作用する。 BUSY: BUSY指令記号は、受信装置がデータ記
号を受容することがすぐにできなくなるときに送られ
る。 FILL: FILL指令記号は、それが記号を送って
いる受信素子が使用中であるということを送信素子が知
る(例えば、BUSY指令記号の受信により)ときに送
信素子によってメッセージ・パケットに注入される。 HALT: この指令記号は、CPU12またはMP1
8によって始動(起動)され、かつ全てのCPUs12
及びある一定のI/O装置によるソフトウェア作用を必
要とする事象を伝達すべくルータ14により処理システ
ム10の全ての素子に発布される(広められる)。HA
LT指令記号は、I/Oアクティビティを始動(起動)
することを停止することが必要であることをシステム1
0の全てのCPUs12に素早く通知する機構を供給す
る。
【0133】OTHER LINK BAD(OL
B): CPU12に接続されかつデュプレックス・モ
ードで動作しているルータ14がCPUs12の一つか
ら受信する指令記号またはパケットに誤りを検出し、か
つCPUs12の他のものから受信する指令記号または
パケットに誤りを検出しないときに、ルータ14は、よ
い(良好な)パケットまたは指令記号を送付したCPU
12にOLB指令記号を送る。また、この指令記号は、
デュプレックス・モードにおいてのみ、CRC誤り、指
令記号誤り、及びプロトコル違反誤りに応じても送られ
る。OLB及びTLB(以下に説明する)指令記号は、
デュプレックスされたCPUs12へ同時に送られる;
即ち、TLB指令記号は、そこから誤ったパケットまた
は記号が受信され、または誤りに気付き(error noted)
、かつそこから実質的に同時にOLB記号がデュプレ
ックスされたペアの他のCPU12に送られる、ような
CPU12に送られる。 READY: この指令記号は、先に使用中の素子がい
ま追加データを受容できるときに送られる。 SKIP: この指令記号は、随意にスキップされうる
クロック・サイクルを示す。この指令記号は、(1)各
記号を転送し、かつそれを各受信クロック同期FIFO
に装填し、かつ(2)FIFOからの記号を検索する、
二つのクロック信号間で同期を維持することへの補助と
して近周波数動作に関連して用いられる。
【0134】SLEEP: この指令記号は、READ
Y指令記号(以下に説明する)が受信されるまで追加の
パケット(もしあれば、現在送信されているものの後)
が特定のリンクLにわたり送られえないことを示すべく
処理システム10のあらゆる素子によって送られる。 SOFT RESET(SRST): SRST指令記
号は、CPUs12とルータ14A,14Bとの間の記
号転送を同期し、続いて、デュプレックス動作に対して
同一の状態にCPUs12を配置するために用いられる
処理(以下に説明する、“同期”及び“再統一(reinteg
ration) ”)の間中にトリガとして用いられる。 SYNC: SYNC指令記号は、デュプレックス・モ
ードに入る前に、または以下に完全に説明するように、
デュプレックス・モードにおいて同期を要求するとき
に、CPUs12とルータ14A,14Bとのの間に周
波数封じ込み同期を確立すべく処理システム10(即
ち、サブプロセッサシステム10A/10B)のCPU
12へルータ14によって送られる。SYNC指令記号
は、例えば、Synchronization及びRe
integrationのセクションで以下に更に説明
するように、システム・オペレーティング・モードを切
り替える(即ち、シンプレックスからデュプレックスま
たはデュプレックスからシンプレックス)ためにSRS
T指令記号に関連して用いられる。
【0135】THIS LINK BAD(TLB):
TNetリンクLから記号を受信しているシステム素
子(例えば、ルータ、CPU、またはI/O装置)が指
令記号またはパケットを受信しているときに誤りに気付
くときには、それは、ファシリティ・パケットまたは記
号を送付したシステム素子にTLB指令記号を送り返
す。それは、CRC誤り、指令記号誤り、またはプロト
コル違反誤りに応じて通常送られる。 I OWN YOU(IOY): IOY指令記号は、
送信CPUからのデータを選択することをルータ14に
強要するためにルータ14へCPU12によってのみ
(かつデュプレックス・モードで動作しているときにの
み)送られて、送信CPU12に、実質的に、所有権を
与える;非送信CPUからの更なるデータ送信は、無視
される。IOY指令記号の実際のビット構造は、Oth
er Link Bad(OLB)指令記号に用いられ
るものと同じである − 記号のソースがどれかを決定
する。IOY/OLB記号がCPU12によって送られ
たならば、それは、IOY記号として解釈される;IO
Y/OLB記号がルータによって送られたならば、それ
は、OLBとして解釈される。換言すると、CPUs1
2とルータ14A,14Bとの間で、CPUsだけがI
OY指令記号を送りかつルータだけがOLB指令記号を
送る。
【0136】DIVERGE(DVRG): DVRG
記号は、デュプレックス動作におけるときに、CPUs
から受信したデータ・ストリームの発散が検出されたこ
とをデュプレックスされたCPUsに知らせるために、
ルータによって送られる;即ち、ルータは、クロック同
期FIFOsから引かれたときに互いに比較される記号
の同一ペアを二つのCPUs12から受信している..
DVRG指令記号は、比較ミスに気付いたことをCPU
12に知らせる。CPUsによって受信されたときに、
発散検出処理が入力され、それによりどのCPUが故障
しているかまたは誤っているか、かつそのCPUの更な
る動作を終了することの決定がCPUsによってなされ
る。 THIS PACKET GOOD(TPG): パケ
ットの送信者がパケットのCRCが良好であると決定し
たことを示している、メッセージ・パケットに続く指令
記号。より詳細は、以下の“Packet Statu
s”を参照のこと。 THIS PACKET BAD(TPB): TPB
指令記号は、受信素子が受信メッセージ・パケットのC
RCが正しくないということを決定したときにTPG指
令記号を置換する。
【0137】− Flow Control:ルータ1
4は、記憶容量が限られており、従って、メッセージ・
パケットをルーティングするときには、“蓄積交換(sto
re and forward) ”方法の型を用いない;それよりも、
それらは、“虫の穴(worm-hole) ”ルーティングとして
知られるものを実施する:メッセージ・パケットのヘッ
ドは、そのテールが受信される前にルータを通過してそ
れから出る。これは、上述したBUSY/FILL/R
EADY指令記号を主に用いて、上述した指令記号が処
理システム10の種々の素子間(例えば、CPUs1
2、ルータ14、等)のメッセージ・フローを制御すべ
く動作する一つの理由である。このフロー制御は、“バ
ックプレッシャ”と称される。特定のシステム素子は、
その受信キュー(例えば、エラスティック(伸縮性)・
バッファ506 − 図27)がほとんどいっぱい(充
満)であることを決定するときはいつでも、それは、そ
の上でそれが入力メッセージ・パケットを受信しかつ、
更なる送信を防ぐことを送信素子に告げるべく関連送信
ポートからのBUSY指令記号を、TNetリンクLの
他端の送信素子に、送信する、TNetリンクLの双方
向能力(機能)を利用する。BUSY指令記号の使用
は、“バックプレッシャ”をアサートすると、ここで称
される。CPUs12またはI/Oパケット・インター
フェイス16は、その送信ポートの一つがバックプレッ
シャされるので“エンド・ノード(end node)”(例え
ば、CPU12またはI/O装置17 − 図1〜図
3)がバックプレッシャをアサートしえないが、そのよ
うな内部資源が特定のTNetポートにアサートされた
バックプレッシャに関係なく利用可能になるときにの
み、内部資源が利用可能になるのを待っている間にその
ようなバックプレッシャをアサートしうる。この要求事
項(必要事項)の監察することの失敗は、送信ポートが
送信できないので、そしてまた関連受信機がバックプレ
ッシャをアサートしているので、受信ポートが受信でき
ないところのバックプレッシャ・デッドロック(backpre
ssure deadlocks)を結果として生じうる。それゆえに、
ルータ14だけがバックプレッシャを伝播できる;エン
ド・ノード(CPUs12,I/Oパケット・インター
フェイス16)は、受信バックプレッシャを送信バック
プレッシャに変換することを許可されていない。
【0138】ルータ14は、そのポートに到着している
更なるデータ記号がバッファされるか前進されることが
できないときはいつでも、その受信ポートのいずれか一
つにバックプレッシャをアサートしうる。不適当にアド
レスされたパケットは、ルータ14によって廃棄され
る。処理システム10のシステム素子がその上でそれが
メッセージ・パケットを送信しているTNetリンクL
上のBUSY指令記号を受信したときには、素子は、パ
ケットを送ることを停止し、かつREADY指令記号が
送信クロックT_Clkの各クロック・サイクルで受信
されるまで、その代わりにFILL指令記号を送ること
を始める。FILL指令記号は、送られ続ける。また、
関連送信ポートがパケットを送信しない間にBUSY指
令記号がTNetリンクL上で受信されるならば、BU
SY記号を受信している素子は、それがそのリンク上で
READY記号を続いて受信するまで新しいパケット送
信を始動することを慎む。送信ポートは、他の指令記号
(READY,BUSY等)を送信する能力(機能)を
さもなくば保持する。処理システム10の素子のTNe
tポートがREADY指令記号を検出するときはいつで
も、それは、関連送信ポートでのFILL指令記号の送
信を終了し、かつ先の受信BUSY指令記号によって停
止されたパケットを送くることを再開するか、またはそ
れは、IDLE指令記号を注入することを終了しかつ保
留しているパケットを送ることを始動するか、またはパ
ケットが利用可能であるまでIDLE指令記号を送り続
ける。
【0139】しかしながら、BUSY/READYフロ
ー制御は、他の指令記号の送信に適用されないというこ
とが理解されるべきである。上述したように、送信クロ
ック、T_Clk、の全てのサイクルは、指令またはデ
ータ記号の送信を伴うことを思い出す。それゆえに、全
てのTNetインターフェイスは、TNetインターフ
ェイスが受信する、関連送信クロック、T_Clk、の
クロック・サイクルで新しい指令またはデータ記号を受
容する準備ができていなければならない。分かるよう
に、送信された記号を受信するためにTNetリンクL
に接続する処理システム10の全ての素子(例えば、ル
ータ14、CPUs12)は、クロック同期(CS)F
IFOを介してそれらの記号を受信する。例えば、上述
したように、CPUs12のインターフェイス装置24
は、全てのCS FIFOs102x,102y(図1
0に示される)を含む。各CS FIFO102は、対
応TNetリンクLから指令またはデータ記号を受信す
べく接続される。CSFIFOは、スピード・マッチン
グ(速度整合)を許容すべく十分な深さを供給しなけれ
ばならないし、かつエラスティックFIFOsは、メッ
セージ・パケットの受信の間中のBUSY指令記号の送
信と、FILLまたはIDLE指令記号のためによる入
力メッセージ・パケットの中断との間で発生しうる遅延
を処理するのに十分な深さを供給しなければならない。
また、ルータ14のエラスティックFIFOs506
(図27)は、送信経路におけるBUSY及びREAD
Y指令記号の注入を許容すべく十分な深さを供給すべき
である。例えば、図1〜図3を参照すると、CPU12
Aが、ルータ14Aのポート3を介して − I/Oパ
ケット・インターフェイス16Aの一つによる受信に対
してメッセージ・パケットを送信していることを想定す
る。同時に、また、CPU12Aによって送られるメッ
セージ・パケットを受信しているその同じI/Oパケッ
ト・インターフェイス16Aは、ルータ14Aのポート
3に同じ(双方向)TNetリンクL上のメッセージ・
パケットを送っている。ルータ14AがI/Oパケット
・インターフェイス16Aによって送られるメッセージ
・パケットの宛先からのホールドアップ(バックプレッ
シャ)を経験することを更に想定する。ある時間後、エ
ラスティックFIFO518(図27)は、メッセージ
・パケットの送信を一時的に停止すべくI/Oパケット
・インターフェイスにリクエストすることをルータ14
Aに要求する点まで充たす。従って、ルータ14Aは、
ポート3(I/Oパケット・インターフェイス16Aか
らのメッセージ・トラフィックを受信しているのと同じ
ポート)からBUSY記号を送信する。そのBUSY記
号は、CPU12Aからルータ14Aを通って送られる
メッセージ・パケットの記号ストリームに挿入される。
入力メッセージ・パケットのストリームへのBUSY記
号の挿入は、入力パケットの一つの余分な記号を記憶す
ることをルータ14Aに要求する。BUSY記号が送ら
れた後、ルータ14Aは、それがI/Oパケット・イン
ターフェイス16Aからのメッセージ・パケットの切断
された送信の受信を再び始められるような時までCPU
12Aからの入力メッセージ・パケットの送信を再開す
ることができる。I/Oパケット・インターフェイス1
6Aに対して割込まれたメッセージ・パケットの再送信
を始めるために、ルータ14Aは、ポート3から送られ
る記号ストリームにREADY信号を挿入し、CPU1
2Aからのメッセージ・パケットの別の記号を記憶する
ことをルータに再び要求する。
【0140】BUSY/READY指令記号のこのペア
は、I/Oパケット・インターフェイス16とCPU1
2との間の経路に各ルータ14及びCPU12によって
挿入することができる。I/Oパケット・インターフェ
イス16に直接接続されたルータ14は、2n指令記号
(n=経路におけるルータの数+1)を単一パケットに
注入できる。これは、一方向にアサートされたバックプ
レッシャが、反対方向にアサートされるためにバックプ
レッシャを必要としないことを確実にするために2nバ
イトのFIFOが最低レベル・ルータ14(即ち、I/
Oパケット・インターフェイス16に最も近いルータ)
に要求されるということを意味する。例えば、I/Oパ
ケット・インターフェイス16がルータ14にパケット
Aを送信し、同時にその同じルータからパケットBを受
信し、パケットAを受信しているそのルータがバックプ
レッシャによりそれを先に進めることができないものと
想定する。そのルータは、パケットAを送ることを停止
すべくI/Oパケット・インターフェイス16に知らせ
るためにBUSY信号をパケットBに注入しなければな
らない。パケットBに注入されたBUSY指令記号は、
一つだけFIFOの深さを増加する一つのデータ記号を
変位する。READYを注入することによるバックプレ
ッシャの後続の除去は、パケットBにおける別のデータ
・バイトを変位する。パケットAが次のルータに進む
と、処理は、繰り返される。ルータ14がFIFOが処
理できるよりも多くのデータ・バイトを変位したなら
ば、それは、パケットBのソースにバックプレッシャを
アサートしなければならない。
【0141】− パケット状態:各送信されたパケット
は、TPGまたはTPB指令記号がすぐ後に続き、関連
パケットのインテグリティを報告する。パケットがそこ
で始まるシステム素子は、適切なTPGまたはTPB指
令記号を挿入する。ルータ14は、付随しているCRC
を確認し、かつそれらがソース(例えば、I/Oパケッ
ト・インターフェイス16またはCPU12)から宛先
(例えば、CPU12AまたはI/Oパケット・インタ
ーフェイス16)にフローするときに全てのパケットに
対して種々のプロトコル検査を実行する。問題のフロー
の経路における、ルータ14が入力パケット上に誤りを
検出し、かつパケットがTPG指令記号で終結する(パ
ケットが良好であることを示している)ならば、ルータ
は、TPG指令記号をTPB指令記号で置換する。TP
B記号へのTPG指令記号の変更をもたらすことができ
る誤りは、検査したときにCRCデータによる受信デー
タを確認することの失敗に加えて、使用したプロトコル
によって許容されるものよりも大きい長さを有するパケ
ットを含む。あらゆるパケット長を用いることができる
が、ここでは、パケットは、状態(TPG/TPB)記
号を含んで、1024記号に制限される。受信したパケ
ットが、この制限よりも多くを有しているとして検出さ
れたならば、受信ルータは、1024番目の記号におけ
るTPB指令記号でパケットを終了し、パケットの残り
を廃棄する。パケット長のこの制限は、それを絶え間な
くバブルさせ、かつTNetネットワークを詰まらせる
パケット送信素子において発生することからフォルトを
排除する誤り検査技術である。
【0142】TPB指令記号に続いてパケットを受信す
るルータ14は、それ自身の結果にかかわらず、不変更
のTPB指令記号を先に進める。
【0143】− SLEEP Protocol:SL
EEPプロトコルは、以下に説明する、保守インターフ
ェイス(オン−ライン・アクセス・ポート−OLAP)
を介して保守プロセッサによって始動される。SLEE
Pプロトコルは、パケット境界で一つ以上のTNetリ
ンクLを静止する(quiesce) ための機構を供給する。一
つのシステム10を再統一するためにモードを変える
(例えば、デュプレックスからシンプレックス)ことが
必要である。ルータ14は、データ損失または汚染をも
たらすことなくモードを変えるためにアイドル(idle)
(処理にパケットがない)でなければならない。SLE
EP指令記号を受信したときに、処理システム10の受
信素子は、そのTNetリンクL上の許可された指令記
号だけを送信しなければならない関連送信ポート上の新
しいパケットの送信の始動を抑制する。(例外は、再統
一を取り扱うセクションで以下に説明する、自己アドレ
ス型AtomicWriteメッセージ・パケットであ
る。)SLEEP指令記号が受信されるときに送信され
るパケットは、終了するまで普通に送信される。しかし
ながら、SLEEP指令記号が受信される受信ポートに
関連した送信ポートは、許可された指令記号(例えば、
BUSY,READY,IDLE,FILL)を送信し
続けるが、READY指令記号がその関連受信ポートで
受信されるまで送信のための新しいパケットを始動しな
い。
【0144】− HALT Protocol:HAL
T指令記号は、I/Oアクティビティ(即ち、CPUs
12とI/Oパケット・インターフェイス16との間の
メッセージ送信、または異なるCPUs12間のメッセ
ージ送信)を終了ことが必要であることを処理システム
10の全てのCPUs12に素早く知らせる機構を供給
する。各ルータ14は、HALT指令記号がCPU12
から受信されたときに、受信ルータ14がその送信ポー
トのそれぞれからHALT指令記号を伝播し、かつその
システム停止イネーブル・ビットをクリアするようにO
LAP285’(図27)を通してMP18によってセ
ットすることができるシステムHALTイネーブル構成
レジスタを有する。ルータ14は、システム停止イネー
ブル・ビットがクリアされた状態であるときに受信する
全てのHALT指令記号を無視する。このようにして、
システム停止イネーブル・ビットは、停止機能のための
ソフトウェア・セット可能イネーブル、並びに一度第1
のHALT指令記号がアサートされるとHALT指令記
号の無限サイクリングを防ぐことの両方に機能する。
(インターフェイス装置24)のそれらの受信ポートの
いずれかでHALT指令記号を受信するCPUsは、シ
ステム停止割込みがイネーブルされる(即ち、マスク・
レジスタ282の関連処理(associated disposition)が
割込みをイネーブルする;図21)ならば割込みレジス
タ280に割込みをポストする。
【0145】CPUs12は、HALT処理をディスエ
ーブ(禁止)するための機能(能力)を備えうる。それ
ゆえに、例えば、インターフェイス装置24の構成レジ
スタ75は、所定の状態(例えば、ZERO)にセット
されたときにHALT処理をディスエーブルするが、誤
りとしてHALT記号の検出を知らせる、“停止イネー
ブル・レジスタ”を含むことができる。
【0146】ルータ・アーキテクチャ:ここで図27を
参照すると、ルータ14Aの略ブロック図が示されてい
る。処理システム10の他のルータ14(例えば、ルー
タ14B,14’等)は、実質的の同一な構成のもので
あり、従って、ルータ14Aに関する説明は、他のルー
タ14に同様に適用する。図27に示すように、ルータ
14Aは、それぞれがポート入力502(50
0 ,...,5025 )及び出力504(50
0 ,...,5045 )を含んでいる、6つのTNe
tポート0,...,5を含む。各ポート出力504
は、上述したそれから出ている10の信号回線を有す
る:並列9ビット指令/データ記号を送信する9つの信
号回線、及び関連送信クロック(T_Clk)を運ぶ信
号回線。同様に、ポート入力502のそれぞれは、デー
タ、受信クロック(Rcv Clk)を含んでいる10
の並列信号を受信すべく接続する。更に示すように、各
ポート入力502は、入力論理回路505及びそれをク
ロスバー・スイッチ500に印加する前に入力メッセー
ジ・パケットを受信しかつバッファするエラスティック
FIFO506を含む。クロスバー論理回路500は、
メッセージ・パケットのDestination(宛
先)IDに含まれる情報によりポート出力504へポー
ト入力502によって受信したメッセージ・パケットを
送るべく動作する。クロスバー論理回路500は、真の
クロスバー・スイッチとして動作して、そのポート出力
504がパケットを受信しているポート入力502に関
連したとしても(例えば、ポート入力5022 及びポー
ト出力5042 )、ポート入力502で受信したメッセ
ージ・パケットをポート出力504に送らせる。クロス
バー論理回路500は、ポート入力502の対応するも
のからポート出力504に二つ以上のメッセージ・パケ
ットを送るようにも構成されている。クロスバー論理回
路500は、その構成についての更なる説明が必要でな
いように通常の設計のものである。
【0147】シェーディングにより図において強調され
た、ルータ14Aのポートの二つ、4及び5は、他のも
のとはある程度異なって構成される;これら二つのポー
トは、一対のCPUs12に(TNetリンクLx及び
Lyによって)直接接続するそれらのポートとして用い
られることを意図している。これらのポート4,5に対
するポート入力5024 ,5025 は、処理システム1
0がデュプレックス・モード動作に対してセットされる
ときに周波数封じ込み環境で動作すべく構成される。更
に、デュプレックス・モードであるときに、入力ポート
0−5のいずれか一つで受信され、かつルータが接続す
るCPUs12のいずれか一つに向けられたメッセージ
・パケットは、クロスバー論理回路500によって繰り
返え(再現)され、かつそれらが実質的に同時に、記号
毎に、同じ記号を接続するCPUsへ送信すべくロック
−ステップ・ファッションで動作する二つのポート出力
5044 ,5045 の両方に送られる。デュプレックス
・モードで動作していない(即ち、シンプレックス・モ
ード)ときには、ポート入力5024 ,5025 、及び
全ての他のポート入力は、近周波数モードで動作する。
更に、また、ルータ4及び5に対する入力論理回路50
2は、二つのCPUsから受信した指令/データ記号の
記号毎の比較を実行すべく、CPUs12A,12Bが
デュプレックス・モードであるときに、動作する比較回
路を備えている。従って、図28に示すように、ポート
入力5024 ,5025 は、CPUsから指令/データ
記号を受信し、クロック同期FIFOs518(以下に
更に説明する)を通してそれらを渡し、かつクロック同
期FIFOsを出て行く各記号をゲート型比較回路51
7と比較する。デュプレックス動作が入力されたとき
に、制御論理回路509の構成レジスタ(図示省略)
は、DPX信号をアサートする状態にセットされる。D
PX信号は、ポート4及び5に対するルータ入力論理回
路502の二つの同期FIFOs518から出て行く記
号の記号毎の比較をアクティベート(活性化)すべく制
御論理回路509からゲート型比較回路517へ伝達さ
れる。もちろん、DPXビットが制御論理回路509に
セットされなかったときには、比較がディスエーブルさ
れる。
【0148】同一記号ストリームである、デュプレック
スされたCPUs12からのメッセージ・トラフィック
は、ポート入力5024 ,5025 によって受信され、
一つのポート入力によって受信されたストリームの各記
号は、他のポート入力によって、実質的に同時に、受信
されたものと同一である。デュプレックス・モードにお
いて同期を維持するために、CPUs12に送信するル
ータ14Aの二つのポート出力は、ロック−ステップで
動作しなければならない;即ち、ポート出力は、サイク
ル間に応じて(on a cycle-to-cycle basis) 同じ記号が
CPUs12の両方に送られなければならないように動
作しなければならない。それゆえに、図4を参照する
と、ルータ14Aのポート0−5(図27)の一つで受
信され、かつCPUs12に向けられた記号ストリーム
は、同一記号が実質的に同時にCPUsによって受信さ
れるように、デュプレックス動作で、両方のCPUs1
2に進められ(送られ)なければならない。(CPUs
12は、デュプレックス・モードであるときには、ルー
タ14によって複写され、かつ両方のCPUsに戻され
る、自己アドレス型メッセージ・パケットを送ることが
できる。)CPUs12に直接結合される出力論理回路
装置5044 ,5045 は、両方ともに同期したファッ
ションで(メッセージ・パケットのDestinati
onフィールドがデュプレックスされたCPUs12の
一つ、例えば、CPU12Aだけを識別しても)クロス
バー論理回路500から記号を受信し、二つのCPUs
12へ実質的に同期ファッションでそれらの記号を与え
る。もちろん、CPUs12(より正確には、関連イン
ターフェイス装置24)は、図11に示したものと実質
的に同じ構成の同期FIFOsで送信された記号を受信
して、それを伴って記号がCPUs12によって受信さ
れる多少の実時間位相差が存在していても、二つのCP
Us12間で維持されるクロッキングは、同じ記号が同
じ命令サイクルで両方のCPUs12によってFIFO
構造から引き出されることを確実にして、デュプレック
ス動作モードによって要求されるCPUs12の同期し
た、ロック−ステップ動作を維持する。
【0149】ポート入力502のより詳細な図(図29
及び図31)の説明に関して見られるように、ルーティ
ング制御は、(オン・ライン・アクセス・ポート28
5’及び直列バッファ19Aを介して;図1参照)保守
プロセッサ18により制御論理回路509に含まれるレ
ジスタに書込まれた構成データと共に、ポート入力50
2の論理回路によって主に行われる。ルータ14Aは、
適切な動作を確実にするためにルータ14A を構成する種
々のコンポーネントの検査を実行する自己検査論理回路
511を更に含む。一般に、自己検査論理回路511
は、内部パリティ検査、状態マシンの違法状態検出、及
び複写された論理回路の出力の比較のような動作を実行
する。実行される自己検出は、通常の特質のものであ
る。ルータ14Aの同期動作は、クロック論理回路51
0によって生成される(局所)検査信号により実行され
る。ルータ14の各出力ポート504は、TNetリン
クL上の記号を伝達するために、上述した、フロー制御
プロトコルの要求事項を実施すべく構成される。また、
各ポート入力502の入力論理回路505は、受信した
SKIP指令記号を除去することによって − 少なく
とも近周波数環境で記号を送っているポートに対して
− 同期を維持することを補佐する。SKIP指令記号
は、このコンテキストにおいて、実質的に、クロック・
サイクルをスキップさせて低速な受信機に高速な受信機
からデータを受容させる、位置−保持記号として用いら
れる。TNetリンクLの端末における装置が異なるク
ロックで動作するので、近周波数環境で動作していると
きに、一つのクロックが多少の量だけ他のものよりも速
いということは、相対的に確実である。検査されないま
まであったならば、高速−送信素子から記号を受信して
いる低速−受信素子は、低速−受信素子の入力クロック
同期FIFOに負荷を掛け過ぎる。即ち、高速クロック
によりそこに置かれた低速クロックがクロック同期FI
FOから記号を引く(pull)ために用いられたならば、結
果として検査同期FIFOは、オーバーフローするであ
ろう。
【0150】ここに採り入れられた好ましい技術は、同
期化FIFOから記号を引くために用いる局所クロック
よりも周波数が多少高いFIFOに記号を押す(push)T
_CLK信号によりルータ14(またはCPU12)の
クロック同期FIFO(即ち、クロック同期FIFO5
18;図29)のオーバーフローの可能性を回避、また
は少なくとも最小にすべく記号ストリームにSKIP記
号を周期的に挿入することである。(FIFOへの)押
し(push)動作をバイパスするためにSKIP記号を用い
ることは、SKIP指令記号が受信される毎にFIFO
の押しポインタを失速させる効果を有するので、クロッ
ク同期FIFOに関する限り、SKIP記号を伴った送
信クロックが失われていた(欠けていた)。それゆえ
に、ポート入力502のそれぞれにおける論理回路は、
何もFIFOに押されないが、記号が引かれるように、
近周波数クロッキング環境における同期に対してSKI
P指令記号を認識し、かつその受信をキー・オフ(key o
ff) する。SKIP記号は、おおよそ512送信機クロ
ック毎に挿入されるのが好ましい。50Mhz速度で記
号がリンクLに送信される(例えば、CPU12とルー
タ14との間、またはルータ14間、またはルータ14
とI/Oインターフェイス装置16Aとの間 − 図1
〜図3)と仮定すれば、これは、最悪の場合、2000
ppmの周波数差を許容する。
【0151】各ポート入力502のエラスティックFI
FOs506は、通常設計のものであり、例えば、通過
中にメッセージ・パケットの中にフロー制御及び指令記
号を挿入することによってもたらされた、記号ストリー
ムにおけるジッタを吸収しかつ平滑にすることを補助す
るために用いられる。たぶん、最も重要なことは、エラ
スティックFIFOs506は、出力ポートが使用中の
ときに入力メッセージ・トラフィックのバッファリング
を許容する。システム10の他の素子のように、ルータ
14Aは、宛先装置へ受信したメッセージ・パケットを
送るときに“バックプレッシャ”を経験しうるし、かつ
宛先装置は、更なる記号を受信できないことを瞬間的に
知らせる(例えば、BUSY指令記号)。バックプレッ
シャの適切な実施は、エラスティックFIFOs506
が、先の装置(例えば、ルータにメッセージ・パケット
を供給する装置)が(受信されかつクロック同期FIF
Osに押されるが、エラスティックFIFOsに渡され
ない)FILLまたはIDLE記号を供給することによ
りBUSY記号に応答できるまで宛先装置が受信を停止
した後で入力記号を受信しかつ保持するのに十分に大き
な深さ有する(即ち、十分な数の記憶位置を有する)こ
とを必要とする。要約すると、各エラスティックFIF
O506は、送信装置が送くることを一時的に停止でき
るまで記号を記憶し続けるために十分な空間をもたなけ
ればならない。
【0152】記号ストリームにおけるジッタを低減する
ことを補助するために、エラスティックFIFOs50
6は、高及び低“水位標(water marks) ”で動作する。
エラスティックFIFO506が充満し始め、かつ高水
位標に達したならば、バックプレッシャ記号(例えば、
BUSY)は、記号ストリームを受信している受信ポー
トに対応している送信ポートから送信される。例えば、
記号ストリームがルータ・ポート入力5023 によって
受信されており、かつエラスティックFIFO5063
を制御するために用いられるFIFO制御論理回路54
6がFIFOが充満している(即ち、高水位標を通過し
た)ことを示すならば、入力ポート5023 は、BUS
Y記号を送信させるべく対応出力ポート5043 に知ら
せる。BUSY状態は、ポート出力5043 がREAD
Y記号を送るべく知らされて、記号ストリームのフロー
の再開を要求するときに、FIFO制御論理回路546
(図29)によって決定されたように、エラスティック
FIFO5063 の深さが低水位標以下であるまでルー
タ14(及びパケットを送っていたTNetリンクLの
他端における装置)によって維持される。TNetリン
クLの他端において、メッセージ・パケットを送ってい
た装置は、関連出力指令リンク上に送信されたFILL
指令記号で入力リンクでのBUSY指令記号の受信に応
答する。送信装置は、BUSY指令記号を送った装置が
READY記号を送るまで、メッセージ・パケットの更
なる送信を手控えて(見合わせて)、FILL記号を送
り続ける。メッセージ・パケットの送信は、終了まで、
またはバックプレッシャが受信機によって再びアサート
されるまで、再開する。
【0153】エラスティックFIFOs506がこの
“バックプレッシャ”ジッタを処理するために十分に大
きくなければならないばかりでなく、それは、制御記号
が他の方向におけるTNetリンクLの制御に対して記
号ストリームに挿入されている間にFIFOに累積する
データ記号を記憶することもできなければならないとい
うことに注目すべきである。BUSY/READY組合
せは、ポート出力504から2サイクルを奪ってそのポ
ート出力504を供給しているエラスティックFIFO
506を2文字(two characters)でいっぱいにする。ジ
ッタを最小に保つために、エラスティックFIFOs5
06のサイジング(及び高及び低水位標の配置)は、バ
ックプレッシャがアサートされる前にストリームの中に
挿入されることを少なくとも二つの文字、好ましくはそ
れ以上に対して許容しなければならない。ここに記載さ
れたシステムの環境内で、エラスティックFIFOs5
06は、96記号を一時的に記憶することが可能であ
る。ルータ14Aは、バックプレッシャが要求される前
に挿入されることを所定数の記号に対して許容する(バ
ックプレッシャは、所定数が受信されかつ一時的に記憶
された後で次の記号に発行される)。エラスティックF
IFOs506の96記号深さは、所定数の記号の標準
蓄積(buildup) 、及びポート入力502がデータを受容
することをやめる(バックプレッシャをアサートする)
か、またはオーバーフローによるデータの損失の醜行(i
gnominy)に見舞われなければならない前にバックプレッ
シャ遅延の12サイクルを許容する。
【0154】ポート入力502のそれぞれは、一つの説
明が全てに適用されるように実質的に同一に構成され
る。従って、図29に示すように、ポート0に対するポ
ート入力5020 の詳細ブロック図が示される。ポート
入力5020 は、それが付随する送信クロック(T_C
lk)によって一時的に記憶される入力レジスタ516
で各9ビット・データ/指令記号を受信する。次に、受
信した記号は、またT_Clkによって、入力レジスタ
516から伝達されかつクロック同期化FIFO518
に印加される。クロック同期FIFO518は、CPU
s12のインターフェイス装置24に用いられる、図8
A及び図8Bに示したものと論理的に同じである。ここ
で、図29が示すように、クロック同期FIFO518
は、入力レジスタ516の出力を、並列に、受信する複
数のレジスタ520を含んでいる。レジスタ520のそ
れぞれと関連するのは、図30に詳細に示され、かつ以
下に説明される、2段階妥当性(V)ビット・シンクロ
ナイザ522である。レジスタ20のそれぞれの内容
は、各関連2段階妥当性ビット・シンクロナイザ522
の1ビット内容と一緒に、マルチプレクサ524に印加
され、かつ選択されたレジスタ/シンクロナイザがFI
FOから引かれ、かつ一対のレジスタ526によりエラ
スティックFIFO506に結合される。入力レジスタ
516の内容を受信するレジスタ520の選択は、押し
ポインタ論理回路装置530によって供給されたPus
h Select信号の状態によって決定される;そし
て、レジスタ526に、MUX524を介して、その内
容を供給するレジスタ520の選択は、引きポインタ論
理回路532によって供給されたPull Selec
t信号の状態によって決定される。押し及び引きポイン
タ論理回路530,532は、syncFIFO制御論
理回路534の制御下である。syncFIFO制御論
理回路534は、押しポインタ論理回路530(並びに
入力レジスタ516)を動作しかつ押しポインタ論理回
路530によって選択されたレジスタ520を装填すべ
く入力T_Clkを受信する。同様に、同期FIFO制
御論理回路534は、引きポインタ論理回路532を制
御すべくルータ(Rcv Clk)に対して局所的であ
るクロック信号を受信する。
【0155】ちょっと脇道にそれて、図30を参照する
と、イネーブル機能を有するD型フリップフロップ54
1、遅延素子541a、ORゲート541b、(以下に
示す真理値表に示される機能を供給するためのセット/
リセット/イネーブル能力を有する)D型フリップフロ
ップ542、及びD型フリップフロップ543を含んで
いる妥当性ビット・シンクロナイザ522が詳細に示さ
れている。D型フリップフロップ541は、そのデータ
(D)入力でSKIP検査論理回路540の出力を受信
すべく結合される。フリップフロップ541のEnab
le(イネーブル)入力は、押しポインタ530、Pu
sh Select(選択)、によって供給される復号
を受信し、かつフリップフロップ541のクロック(C
lk)は、入力記号を付随している入力送信クロック
(T_Clk)を受信する。フリップフロップ541の
出力(Q)は、ORゲート541bの一つの入力に印加
され、かつ遅延素子541aを通して他の入力にも印加
される。フリップフロップ541の出力(Q)は、ポイ
ンタ論理回路530(図29)からのPush Sel
ect信号が、妥当性ビット・シンクロナイザが次の記
号 − SKIP記号でないならば − の受信に対し
て関連するFIFOのレジスタ520を選択するときに
(論理“1”レベルに)セットされる。
【0156】遅延素子541a及びORゲート541b
は、通常設計のパルス引伸し回路を形成すべく動作し、
フリップフロップ542のSet入力での信号が少なく
とも1クロック期間の持続時間を有することを確実にす
る。その場合でありかつ(ルータに対して)局所的なR
cv Clkという知識及び受信したT_Clk信号
が、もし同一でないならば、類似な周波数を有すること
を想定すると、RcvClkの少なくとも一つのアクテ
ィブ・トランザクションが、フリップフロップの出力
(Q)をセットすることによってフリップフロップ54
2に引伸ばされた信号を記録させるということが明らか
になる(以下の、真理値表を参照)。D型フリップフロ
ップ543は、同期の追加段階として作用し、局所Re
c Clkに関してV出力で安定レベルを確実にする。
Pull Select信号、引きポインタ532の復
号は、フリップフロップ542のイネーブル入力に接続
し、関連レジスタ520が読取られたときにPull信
号(syncFIFO制御装置534からの周期パル
ス)に妥当性シンクロナイザ522上の妥当性ビットを
クリアさせる。
【0157】
【表4】 表 4 真理値表 セット Rst イネーブル n n+1 1 X X X 1 0 X 0 0 0 0 X 0 1 1 0 1 1 X 0 0 0 1 1 1 0 0 1 0 0
【0158】要約すると、妥当性シンクロナイザ522
は、有効記号であるとその記号を識別するために記号が
FIFO518のレジスタ520に装填されるときに
“妥当性”(V)信号をアサートすべく動作する。他
方、記号がSKIP記号であったならば、SKIP検査
論理回路540の出力は、LOWに行き、フリップフロ
ップ541(即ち、データ(Q)出力)をゼロのままに
させて、関連記号が有効でないことを示し、かつ無視さ
れるべきある。図29を続けると、入力レジスタ516
の内容は、SKIP検査論理回路540にも印加され
る。SKIP指令記号の受信は、SKIP制御論理回路
540によって検出されたときには、押しポインタ論理
回路530の動作を禁止(抑制)すべく動作し、かつT
_Clkの一付随クロック周期に対してクロック同期F
IFO518にその記号を装填することを排除する。S
KIP指令記号の受信は、押しポインタ530を先に進
めないかまたは妥当性ビットVをセットさせず、実質的
に、押しサイドによるSKIP記号の受信のFIFO無
知の引きサイドを保持する。レジスタ・パイプライン5
26から渡された入力データ/指令記号は、入力ストリ
ームの指令記号が復号されかつFIFO制御論理回路5
46を制御するために用いられる。エラスティックFI
FO5060 を動作することに加えて、FIFO制御論
理回路546は、クロスバー論理回路500を介してポ
ート入力5020 から記号を受信するポート出力504
に対して必要なハンドシェーク信号を生成すべく動作す
る。
【0159】指令/データ記号は、リンク・レベル“キ
ープアライブ(keep-alive)”プロトコル(以下に説明す
る)、メッセージ・パケット終了検査、等を含んでい
る、リンク・レベル及びパケット・プロトコルを確認す
べく動作するプロトコル及びパケット検査論理回路55
0にも印加される。(見出されたときに、記号ストリー
ムから抽出される)指令記号でない、即ち、データ記号
である、それらの記号は、アクセスされたときに、それ
からクロスバー論理回路500に伝達される、エラステ
ィックFIFO5060 に渡されかつ記憶される。ま
た、メッセージ・パケットのDestination
IDは、ターゲット・ポート選択論理回路560にも伝
達される。ターゲット・ポート選択論理回路560は、
メッセージが送信のために送られる、ポート出力504
の“ターゲット・ポート”アドレスを、受信したDes
tination ID及びルータの構成レジスタのあ
る情報から決定すべく動作する。ターゲット・ポート選
択論理回路560は、適切なクロス接続を行うためにク
ロスバー論理回路500に印加されかつそれによって用
いられる3ビット・コードを発生する。しかしながら、
選択ポート出力504は、ポート入力5020 からメッ
セージ・パケットを受信すべく“イネーブル”されなけ
ればならない。この目的のために、ポート入力5020
は、どのポート出力504がポート入力5020 からメ
ッセージ・パケットを受信すべく許可されるかという情
報を含んでいる、6ビット・ポート・イネーブル・レジ
スタ562を含む。ポート・イネーブル・レジスタ56
2の各ビット位置は、一つのポート出力504に対応し
ており、かつ特定ビット位置の状態により、対応ポート
出力は、ポート入力からそれに送られるメッセージ・ト
ラフィックを有すべく“イネーブル”されうるか、また
は“ディスエーブル”されて、ポート入力5020 から
それに送られるメッセージ・トラフィックを排除する。
例えば、ポート入力5020 がターゲット・ポート選択
論理回路に宛先ポートとしてポート出力5044 を識別
させる宛先情報を有しているメッセージ・パケットを受
信し始めると想定する。しかしながら、ポート・イネー
ブル・レジスタ562の状態は、ポート出力5044
ポート入力5020 からメッセージ・トラフィックを受
信すべく許可されないようであると更に想定する。この
場合には、ポート・イネーブル・レジスタ562の内容
は、ターゲット・ポート選択論理回路506によって発
生された選択情報がクロスバー論理回路500に印加さ
れることを禁止すべく動作する。それよりも、パケット
は、降下され、かつルータ14Aが、パケットが受信さ
れたポートに対して許可されないポート向けのパケット
を受信したということを示すべく誤り信号が生成され
る。誤りは、OLAP285’を介してMP18に知ら
される(図27)。
【0160】従って、ポート・イネーブル機能(特徴)
は、ルータ14を通るある一定のルーティング経路を選
択的に防止すべく動作する。この機能は、デッドロック
状態を防止する重要な機構でありうる。デッドロック状
態は、メッセージを伝達すべく用いるネットワークが、
ルーティング装置及び相互接続リンクによって形成され
た“ルーティング・ループ(routing loops) ”を含むと
きに発生する。別のメッセージが既にそのポートから送
られる処理中であるので、一つのルーティング装置で受
信したメッセージが特定のポートから送られることから
ブロックされることが発生する。しかしながら、次い
で、他のメッセージも第3のメッセージにより別のルー
ティング装置でブロックされる、等。全てのメッセージ
は、それぞれ環状ループでブロックされる。ループの各
メッセージがループの別のメッセージによってブロック
され、かつループの別のメッセージをブロックしている
ので、何も移動しない;メッセージは、デッドロックさ
れる。適切な設計なしで、大きなルーティング・ネット
ワークは、一群のメッセージ・パケットのそれぞれが通
信リンクへのアクセスを獲得する前に別のものが進行す
るのを待たなければならないような環状(循環)依存性
(circular dependencies) のために、通信ネットワーク
を通して更なる前進を行うことができないメッセージ・
パケットのグループを結果として生ずるデッドロックに
対する多数の環境の可能性を生じさせることができる。
ルータを通るある一定の通信経路をディスエーブルでき
ることにより、可能なルーティング・ループを除去する
ことができ、それにより、デッドロックが発生する可能
性を除去することができる。
【0161】もちろん、ルーティング・ループに対抗す
る防御の最初のライン及びデッドロックの可能性は、適
切なルーティング情報が、入力メッセージ・パケットが
ルーティング・ループの部分でありうるルータ14のポ
ートから送られないようにターゲット・ポート・アドレ
スを選択するために用いられることを確実にすることで
ある。しかし、ポート・イネーブル・レジスタによって
達成されるような、ルータ14を通るある一定のルーテ
ィング経路をディスエーブルする能力(機能)は、ルー
ティングまたは他の誤りがデッドロック状態を結果とし
て生じないことを確実にする。この概念の実施は、以下
により詳細に説明される。再度、図29を続けると、入
力メッセージ・パケットのヘッダが受信されると、De
stination IDsは、ターゲット・ポート選
択論理回路560に逐次的に渡されかつ先着順にそこで
試験される。ターゲット・ポート選択論理回路560
は、指定ポート出力を識別する、ターゲット・ポート・
アドレスを生ずる。上記したように、選択ポート出力5
04がポート入力に対してイネーブルされることを条件
として − そのアドレスは、メッセージ・パケットを
受信するエラスティックFIFO506の出力を適切な
ポート出力に伝達する適切なクロスバー選択を行うため
にクロスバー論理回路500に印加される。(ルーティ
ング14がCPUs12への直接的なTNet接続を有
するものであり、かつデュプレックス・モードで動作し
ているならば、CPUsに向かう入力メッセージ・パケ
ットは、メッセージ・パケットを同時に両方のポート出
力5044 及び5045 にルーティングすることにより
クロスバー論理回路装置によって複写される。) ターゲット・ポート選択論理回路560は、図31によ
り詳細に示されており、かつ入力パケットの3バイトD
estination IDをポート出力502のエラ
スティックFIFOs506(図27〜図29)から受
信する、宛先レジスタ570を含んで示されている。D
estination(宛先)IDは、図5(b)に関
して上述した3つのフィールドを含む:Region
(領域)ID,Device(装置)ID,及び経路選
択ビット(P)を含んでいる1ビット・フィールド。R
egion(領域)IDは、名前が示唆するように、領
域による宛先を識別し、Device(装置)IDは、
その領域内の特定の装置を表わす。経路選択ビット
(P)は、経路(XまたはY)のどちらが二つのサブプ
ロセッシング装置をアクセスするのために用いられるべ
きかを識別する。
【0162】ルータ14は、例えば、大規模な並列処理
アーキテクチャに対して、大きくて、用途が広いルーテ
ィング・ネットワークを構築する能力(機能)を供給す
る。ルータは、制御論理回路509に含まれるある一定
のルータの構成レジスタにセットされた情報によりネッ
トワークにおけるそれらの位置(即ち、レベル)によっ
て構成される。これらの構成レジスタは、上部領域ID
レジスタ509a 、下部領域ID509b 、HiLoレ
ジスタ509c 、デフォルト・ポート・レジスタ509
d 、クロス−リンク・ポート・レジスタ509e 、デフ
ォルト・レジスタへの経路509f 、装置ID比較レジ
スタ509g 、及びサイド・レジスタ509h として図
31に示される。二つの追加構成レジスタは、装置位置
としてかつレジスタ509j 及び509k をそれぞれ伴
って図33に示される。これら種々の構成レジスタの内
容は、Device ID及びメッセージ・パケットの
付随経路選択ビット(P)と一緒に、メッセージ・パケ
ットがクロスバー論理回路500を通して送られるポー
ト出力504の選択を決定する。ルータのレベルは、部
分的に、Destination IDのどの部分がタ
ーゲット・ポートの選択に用いられるか、及びアルゴリ
ズム・アドレス選択を用いることができるか否かを決定
する。この目的のために、Region IDは、二つ
の重複10ビット・レベル識別に更に分割される。Re
gion IDの内容の上位10ビットは、上部レベル
として画定され、Region IDの下位10ビット
は、下部レベルを指定する。両方のレベル識別は、マル
チプレクサ572の二つの10ビット入力の対応するも
のに印加される。マルチプレクサ572は、ルータのレ
ベル(上部または下部)を識別し、かつ選択した10ビ
ットをアドレスとしてルーティング表584に供給する
HiLoレジスタ509cの内容に応じて二つの10ビ
ット入力の一つを選択する。
【0163】図29及び図31は、それぞれがそれら自
身、個別のターゲット・ポート選択論理回路560、及
びルーティング表584を有しているようにポート入力
502を示す。しかしながら、空間を最小にするため
に、単一ルーティング表を全ての6つのポート入力50
2のターゲット・ポート選択論理回路によって共有する
ことができることは、当業者には明らかであろう。マル
チプレクサ572の出力は、通常のラウンド・ロビン・
アービトレーション方法を用いて、アービトレーティド
・ベイシスで(arbitrated basis)、(状態及び制御論理
回路509に含まれうる)ルーティング表584にそれ
自身マルチプレクスされうる。ルーティング表のアクセ
スの結果は、戻されかつマルチプレクサ586の入力に
印加される。簡略化のために、このアービトレーション
及びマルチプレキシングは、図31に示さない。また、
Region IDの4つの上位ビットは、それらが上
部領域IDレジスタ509a の内容と比較される4ビッ
ト比較回路574にも印加される。Region ID
の下位10ビットは、それらが下部領域IDレジスタ5
09b の内容と比較される比較回路578に結合され
る。
【0164】例えば、ランダム・アクセス・メモリの形
でだりうる、ルーティング表584は、複数の3ビット
・ターゲット・ポート識別を記憶すべく動作する。Re
gion IDの一つのまたは他の10ビット部分によ
ってアドレスされたときに、ターゲット・ポート選択情
報の3つのビットは、マルチプレクサ586の一つの入
力に結合される;マルチプレクサ586の他の入力は、
デフォルト・ポート・レジスタ509d の3ビット内容
を受信する。マルチプレクサ586によるルーティング
表584の出力の選択は、(ルータが上部レベル・ルー
タであることを示している)ONEのときに、HiLo
レジスタ509c の内容、または(宛先がこの“低レベ
ル・ルータ”と同じ“高領域(high region) ”であるこ
とを示している)比較回路574による上部Regio
n IDレジスタ509a の内容とRegion ID
の4つのMSBsとの間の成功した比較(successful co
mpare)のいずれかによって行われる。それら条件のいず
れも満足されないならば、マルチプレクサ586は、タ
ーゲット・ポート識別としてデフォルト・ポート・レジ
スタ509d の(3ビット)内容を代わりに選択する。
ルーティング表584は、どんなサイズのものでもあり
うる。しかしながら、当業者に明らかなように、ルーテ
ィング表584のサイズは、ルータが用いられるシステ
ムのアドレス可能素子の数、及び表に対して利用可能な
空間のようなファクター(因子)によって指図される。
ターゲット・ポート選択論理回路560は、ルーティン
グ表において空間を確保するために、要求されたときに
表ルックアップ技術の使用、または要求されなかったと
きにアルゴリズム的ルーティングを組み合わせることに
より新規な妥協(コンプロミス)を実施する。この組合
せは、入力メッセージ・パケットを6つの利用可能なポ
ートの一つへ渡し、かつそれから送信させ、及び非常に
多種多用なルーティング能力を供給する。
【0165】マルチプレクサ586によって選択された
3ビット・ターゲット・ポート識別は、マルチプレクサ
586の出力とクロス−リンク・ポート・レジスタ50
eの3ビット内容との間を選択する更なるマルチプレ
クサ590の一つの(3ビット)入力に伝達される。二
つの値のいずれが選択されるかは、入力メッセージの経
路選択ビット(P)の状態によって示されるように最終
宛先のサイド(即ち、XまたはY)によって決定され
る。入力メッセージ・パケットの経路選択ビット(P)
は、その出力がマルチプレクサ590によって行われる
選択に影響を与えるサイド・レジスタ509h の内容と
比較される。ルータが、メッセージ・パケットが向けら
れたもの同じサイド(XまたはY)上でないならば、コ
ンパレータ592の出力は、クロス−リンク・ポート・
レジスタ509e の内容の選択に影響を与える。これ
は、ルータを含んでいるXまたはYサイドからメッセー
ジ・パケットの宛先を含んでいる他のサイドにメッセー
ジ・パケット直接的または間接的(即ち、別のルータを
通す)に送るそのポート出力504にメッセージ・パケ
ットを送る。マルチプレクサ590によって行われる選
択は、その選択入力がANDゲート論理回路596の出
力を受信するマルチプレクサ594の入力に印加され
る。マルチプレクサ594は、マルチプレクサ590及
びマルチプレクサ598によって供給されるポート・ア
ドレス間を選択する。次いで、マルチプレクサ598
は、アルゴリズム・ルーティング論理回路600の出力
とデフォルト・ポート・レジスタ509d の内容との間
を選択する。この選択は、Device ID(構成)
レジスタ509g の内容及び入力メッセージのDevi
ce IDの6ビットの選択部分を受信する選択及び比
較回路601によって行われる。特に示されていないの
は、アルゴリズム・ルーティング論理回路600(図3
3)のそれぞれ装置ビット位置及び拡張レジスタ509
j ,509k も、選択及び比較回路601に印加される
ということである。装置ビット位置及び拡張レジスタ5
09j,509k に含まれる値は、アルゴリズム・ルー
ティング技術で用いられないDevice IDの高位
ビットだけがDevice IDレジスタ509g の内
容と比較されるようにメッセージのDevice ID
ビットをマスクすべく動作する。
【0166】メッセージのRegion IDの選択さ
れた(マスクされた)ビットとDevice IDレジ
スタ509g の内容との間のマッチは、可能なターゲッ
ト・アドレスとしてマルチプレクサ598でアルゴリズ
ム・ルータ600の結果を選択することを結果として生
ずる。例えば、Region IDが“abcdef”
(aが高位ビットである)であり、かつ装置ビット位置
及び拡張レジスタ509j ,509k に含まれる値がビ
ット“def”がアルゴリズム処理に用いられるのよう
なものであるならば、Region IDのビット“a
bc”は、選択及び比較回路601によってDevic
e IDレジスタ509g の内容と比較される。逆に、
ビット“cdef”がアルゴリズム・ルーティングに用
いられるならば、ビット“ab”だけがDevice
IDレジスタ509g の内容と比較される。また、メッ
セージのDevice IDのどのビットがアルゴリズ
ム・ルーティングに含まれるかまたは含まれないかは、
図33に関して以下に説明されるよに装置ビット位置及
び拡張レジスタ509j ,509k によって決定され
る。その動作が以下により完全に説明される、アルゴリ
ズム・ルーティング論理回路600は、デフォルト・レ
ジスタ509d の内容またはルーティング表584によ
って供給されるターゲット・ポート識別の代わりに選択
されうる3ビット・ターゲット・ポート識別をそれから
生ずるべく装置ビット位置及び拡張レジスタ509j
509k (明確さの理由により図31には示されていな
い、図33参照)によって供給される6ビットDevi
ce ID及び情報を受信する。アルゴリズム・ルーテ
ィング論理回路600は、ルータが低レベル・ルータと
して構成されるならば用いられる。
【0167】マルチプレクサ594によって行われた選
択は、(デフォルト・レジスタ509f への経路の内容
の状態により)その選択、またはデフォルト・ポート・
レジスタの3ビット内容を選択処理の最終段階、検査論
理回路602に渡す最終マルチプレクサ599に印加さ
れる。検査論理回路602は、ターゲット・ポート選択
決定のプロダクト(結果)、マルチプレクサ599の出
力によって識別されるポート出力の状態を検査すべく動
作する。例えば、ターゲット・ポート識別は、有効でな
ければならない(即ち、6または7でない)。他の検査
も行われ、その一つは、識別されたポート出力が、上述
したようなアクセスをシークしている特定のポート入力
に対して“イネーブル”されなければならないというこ
とである。ルーティング・ループを生成することがで
き、かつ次いで可能なデッドロック状態を発生させるこ
とを結果として生ずる、誤りに対するバックアップとし
て用いられるのは、この後者の検査である。検査論理回
路602は、図31に示すように、6つのポート出力5
02のそれぞれのポート・イネーブル・レジスタ562
の内容を受信する。示したように、各ポート・イネーブ
ル・レジスタ562の内容は、各入力ポート502に対
して、どの出力ポート504が入力メッセージを送るこ
とができ、そして勿論、どれができないかを識別する。
それゆえに、例えば、ポート0がメッセージはポート3
からの送信のために送られるということを示しているD
estinationIDを含んでいるメッセージ・ト
ラフィックを受信したならば、選択論理回路560は、
ポート3としてターゲット・ポートを識別する3ビット
量(3-bit quantity)を生じ、かつその量を検査論理回路
602に印加する。更に、ポート3からのメッセージ・
トラフィック送信がポート0で受信した入力メッセージ
・トラフィックに対して許容されないということになっ
たならば、ポート0に対するポート・イネーブル・レジ
スタ589の内容は、クロスバー論理回路500へのタ
ーゲット・ポート・アドレスの伝達(通信)をブロック
する。メッセージは、クロスバー論理回路500の存在
しない出力にその代わり送られ、かつ実質的に廃棄さ
れ、MPシステム18に知らせるべく誤り信号が生成さ
れる。
【0168】他方、ポート3がポート0から送られたメ
ッセージ・トラフィックに対してイネーブルされるなら
ば、検査論理回路602は、選択論理回路560によっ
て発生されたターゲット・ポート識別をクロスバー論理
回路500に渡し、メッセージをポート3に送らせる。
検査論理回路602は、通常設計のものであり、例え
ば、通常のファッションで行われるべき検査及び決定を
実施すべく構成された組合せ論理回路を含んでいる。上
部及び下部レベルの概念的階層が可視化されたことは、
少なくとも部分的にターゲット・ポート選択論理回路の
コンポーネント・カウント、及びルーティング表584
のサイズを制限する理由のためである。そして、ルータ
14が上部または下部レベル・ルータを指定しうるし、
かつサブプロセッシングシステム10A,10Bの一つ
または他の一つに配置されうるということは、その階層
によるものである。ルータが上部レベルまたは下部レベ
ル・ルータであるかは、ルーティング表584をアドレ
ス指定するために入力メッセージのRegion ID
のどの部分が用いられるかも画定する、制御論理回路5
09のその種々の構成レジスタに書込まれた情報によっ
て決定されるそのルータの構成による。
【0169】これらの概念を考えに入れて、図32は、
適切なポート出力へのクロスバー論理回路500を通る
入力メッセージ・パケットの経路を選択するために用い
られる最終ターゲット・ポート・アドレスを選択すべく
用いられる決定チャート604を示す。決定チャート6
04は、入力メッセージ・パケットのDestinat
ion ID(及び経路選択ビットP)、及びその構成
レジスタ(即ち、図31に示すレジスタ50
a ,...,509h )の内容によって指定されたよ
うに − そのルータの構成に基づいて行われた決定を
示す。図32が示すように、全ての決定をオーバーライ
ドする(overriding)ことは、デフォルト・レジスタ50
f への経路の内容である: デフォルト・レジスタ5
09d の内容を選択すべくセットされたならば、全ての
他の情報(Destination ID、経路選択ビ
ットP、他の構成レジスタの内容、等)は、不必要にな
る(余計になる)。上述したように、各ルータは、上部
または下部レベル・ルータのいずれかとして構成され
る。ルータ・レベルは、Destination ID
のどのビットがルーティング表584をアドレス指定す
べく用いられか、かつアルゴリズム・ルーティングが用
いられるべきか否かを決定する。(HiLoレジスタ5
09cの内容によってそのように識別される)高レベル
・ルータは、ルーティング表、クロス−リンク・アドレ
ス、またはデフォルト・アドレスのいずれかを用いる。
低レベル・ルータ(HiLoレジスタ509c がZER
Oを含む)は、表ベース、デフォルト、クロス−リン
ク、及びアルゴリズム・ルーティングを用いる。
【0170】一般に、高レベル・ルータであるべく構成
されたルータは、多数のルータ14を備えておりかつ多
数のCPUs12及びI/O装置を互いに伝達(通信)
しているTNetリンクLを相互接続しているネットワ
ーク“雲(clouds)”(任意ネットワーク)を相互接続す
べく用いられ、大規模な並列処理(MPP)システムを
形成している。他のそのようなMPPシステムが存在し
うるし、かつそれは、一つのMPPシステムのそのよう
なネットワーク雲を他のMPPシステムに相互接続する
ために主に用いられる高レベル・ルータとして構成され
るそれらのルータである。図27〜図29をちょっと参
照すると、入力メッセージ・パケットのDestina
tion IDは、特定のポートの入力論理回路502
によって受信されたときには、エラスティックFIFO
506に、かつエラスティックFIFO506からそれ
が捕獲されるターゲット・ポート選択論理回路560
(図31)のレジスタ570に伝達される。メッセージ
・パケットのDestinationIDがそのように
捕獲されるとすぐに、選択処理が始まり、適切な出力ポ
ートに − 出力ポートがイネーブルされるということ
を想定して、両方とも一般的に、かつメッセージ・パケ
ットを受信している特定の入力ポートに対して、クロス
バー論理回路を通してメッセージ・パケットを指向すべ
く用いられるターゲット・ポート・アドレスの発生に進
む。
【0171】ここで図33を参照すると、3つの一に対
して8ビット(8-bit to one)のマルチプレクサ620,
622,及び624を含んでいるアルゴリズム・ルーテ
ィング論理回路600が、詳細に示されている。マルチ
プレクサ620,622,624のそれぞれの3つの選
択入力(A,B,C)は、3ビット装置位置レジスタ5
09j の内容、制御論理回路509に含まれる構成レジ
スタの別のものを受信する。各マルチプレクサ620,
622,624の入力(0,1,...)は、Devi
ce IDの6ビットの所定のものを受信する。装置位
置レジスタ509j の内容は、以下に説明する、表4の
符号化によりターゲット・ポート・アドレスとして用い
るべき3ビットの選択を制御する。MUXes620,
622,624によって選択されるDevice ID
の3ビットは、直接用いられない。それよりも、選択さ
れたビットは、2ビット幅レジスタ509k の内容によ
って調整される、二つの入力ORゲート626及び3つ
のANDゲート628(628a,628b,及び62
8c)と、制御帯状態論理回路509(図509)に含
まれる構成レジスタの別のものとを備えている組合せ論
理回路に印加される。組合せ論理回路のプロダクト(生
成物)は、3ビット・ターゲット・ポート識別である。
幅フィールドは、ポート選択に用いる装置フィールド・
ビットの数を指定する。0(ゼロ)の幅フィールド値
は、全てのアルゴリズム的にアドレス指定された装置
は、ポート0を通して接続することを表わす。3の幅フ
ィールド値は、アルゴリズム的にアドレス指定された装
置がいずれのポートにも接続することができることを表
わす。
【0172】装置フィールド幅拡張レジスタ509k
内容は、クロスバー論理回路500に適用されるターゲ
ット・ポート・アドレスを指定するために用いるビット
の選択を特定する。位置及び幅ビットの値及び意味は、
以下の表4及び表5に示される。
【0173】
【表5】 表 5 装置フィールド幅 装置の数 拡張 使用したIDビット 00 0 01 1 10 2 11 3
【0174】図9は、入力メッセージ・パケットのDe
vice IDのどのビットがMUXes620,62
2,624のそれぞれによって選択されるかを示す。そ
れゆえに、例えば、000の装置ビット位置レジスタ5
09j における(2進)値は、MUXes620,62
2,及び624に入力メッセージ・パケットのDevi
ce IDから、それぞれ、ビット2、1、及び0を選
択させる。逆に、装置ビット位置レジスタ509j の内
容が2進100であるならば、ビット5及び4だけが、
Device IDのMUXes620及び622によ
ってそれぞれ選択される;MUX624の出力は、残り
のビット位置に対してZEROに強要される。装置ビッ
ト位置レジスタ509j における110及び111(2
進)の値は、MUXes620,622,及び624の
出力をZEROに強要させて、ターゲット・ポート0を
選択する。MUXes620,622,及び624によ
ってそのように選択されたビットは、装置フィールド幅
拡張レジスタ509k の内容により用いられる。それゆ
えに、図10が示すように、00の幅値は、MUXes
620,622,及び624からのビットのいずれをも
選択せず、000のターゲット・ポート・アドレスを強
要する。逆に、装置フィールド幅拡張レジスタ509k
における10の幅値は、MUXes620,622,及
び624によって選択されたビットの二つを用いる。
【0175】結果は、多くの場合、制限された値のセッ
トを有する、3ビット・ターゲット・ポート数である。
効果は、レジスタ509k の内容によって指定された幅
を有するレジスタ509j の内容によって指定されたビ
ット位置で始まる、3ビット・フィールドを生成するこ
とである。図27〜図28及び図33にちょっと戻る
と、出力ポート504は、メッセージ・パケットを順序
付ける役割を果たす。一般に、メッセージ・パケット
は、先着順でポート出力504によって受容されかつ送
られる。しかしながら、一度メッセージ・パケットが特
定のポート出力から送信されると、多数の他のものがそ
のポート出力へのアクセスを待って遅延(停滞)されう
る。それゆえに、アービトレーション方法は、これらの
パケット間で選択することが必要であろう。ラウンドロ
ビン・アービトレーションのような、多数の通常のアー
ビトレーション技術を用いることができる。しかしなが
ら、好ましいアービトレーション技術は、1995年6
月6日に出願され、かつ本出願の出願人にアサインされ
た、“Biased Routing Arbitration of Message traffi
c in Communication System (通信システムにおけるメ
ッセージ・トラフィックのバイアスされたルーティング
・アービトレーション)”という発明の名称であり、現
在係属中の米国出願に開示されたものである。
【0176】簡単に、各ポート出力504は、自律アー
ビター論理回路630を含む(図34)。これらのアー
ビター630は、ポート入力502のそれぞれからルー
ティング要求を取り、かつ使用されることが許可される
ポート出力の合計帯域幅の割合いを表わすバイアス値を
各ポート入力502が実質的に供給されるバイアシング
技術に基づく順番でそのようなサービスを与える。この
アービトレーション技術によれば、ポート出力504の
一つに送られるべきメッセージ・トラフィックを有して
いるポート入力502は、アクセスに対するそれらの要
求を知らせる。二つ以上のポート入力がアクセスをシー
クしているならば、要求されたポート出力は、それぞれ
のバイアス値を比較することによってポート入力をアー
ビトレートし、アクセスに対して一つ(例えば、最も高
いバイアス値を有するポート入力)を選択する。アービ
トレーションに負けたポート入力は、次のアービトレー
ションの間にそれらの機会を増やすべくそれらの対応バ
イアス値が変更される;勝ったポート入力502もその
バイアス値が変更されるが、次のアービトレーションで
勝つことの機会を減少するためである。ここで図34を
参照すると、それからメッセージ・パケットがルータ1
4A(図27)によって送信されるポート出力504n
のブロック図が示されている。ポート出力504の基本
コンポーネント及びそれらの機能は、: − 入力ポートの間をアービトレートすべく動作し、パ
ケットが出力ポートによって送信される順序を決定する
アービター論理回路630。
【0177】− プロトコル規則を維持しかつそれに従
うために必要なときに指令記号を生成しかつ記号ストリ
ームの中に(マルチプレクサ634を用いて)挿入すべ
く動作する指令記号発生器632。例えば、ルータ14
Aが、受信素子が使用中なのでそれが送信することがで
きないということを見出したときには、関連ポート出力
504は、BUSY指令記号の受信に応じてメッセージ
・パケット送信を停止することによって“バックプレッ
シャ”を課さなければならず、かつメッセージ・パケッ
トの送信がREADY指令記号の受信によって示される
ように再開することができるまでFILLまたはIDL
E記号を挿入する。それが既に進行中のメッセージ・パ
ケットを停止しなければならないならば、それは、FI
LL記号を送る。代替的に、BUSY指令記号が受信さ
れたときにルータ14Aのポートが活動停止状態(メッ
セージ・パケットが送られない)であるならば、それ
は、IDLEし、かつREADY指令記号がBUSY指
令記号を早めに送ったシステム素子から受信されるまで
メッセージ・パケットの開始を遅延する。FILL記号
は、指令記号発生器632によってポート出力504に
供給される。プロトコルは、“キープアライブ”機構を
実施するために出力論理回路も必要とする:ルータ14
Aがまだ動作状態であることを受信素子に知らせるため
の記号の周期的送信(即ち、メッセージ・パケットがな
いときの、BUSY、IDLE)。キープアライブとし
て用いる記号の型は、そのときに存在しているい動作の
モードによる。例えば、メッセージ・トラフィックがな
い期間中、READY記号が用いられかつ送信クロッ
ク、T_Clkの各クロック周期またはサイクルで周期
的に送られる。代替的に、ポート出力がバックプレッシ
ャを作用させたならば、BUSY記号は、送られる。規
定された時間内に、記号をまったく受信しないと、アク
ションに対するルータ(またはインターフェイス装置)
のOLAPを介してMP18にポストされる誤りを結果
として生ずる。
【0178】脇道にそれて、ルータ14によって観測さ
れるこれらのプロトコル規則は、CPUs12(即ち、
インターフェイス装置24)及びI/Oパケット・イン
ターフェイス17によっても観測されるということを理
解すべきである。そして、ルータ14AがCPUs12
A,12Bと直接的に伝達すべくシステム10(図1)
にあり、かつデュプレックス・モードが用いられるとき
に、デュプレックス動作論理回路装置638は、CPU
s12A,12Bの一つにも接続される他のものにCP
Us12A,12Bの一つに接続されるポート出力を協
調すべく用いられる。ルータ14Aのポート出力504
のそれぞれは、パケット順位付けの役割を果たす。一般
に、パケットは、先着順に送られる。しかしながら一度
パケットが送信されたならば、複数の他のものは、待た
され続けうる。ルータ入力論理回路502のそれぞれか
らルーティング要求を取り、かつ上記した出願係属中の
出願において示される優先度スキームに基づいて適切な
順序でサービスを要求している各入力ポートに出力ポー
トを与えることは、各ポート出力504のアービター論
理回路630の機能である。ポート出力504の各アー
ビター630は、それが要求を与えるときに全ての他の
アービター630に信号を送る。
【0179】それは、二つのCPUs12から伝達され
た(デュプレックス動作における)同一記号のペアを受
信する入力論理回路のクロック同期FIFOs518で
ある。各クロックsync518FIFOは、二つのC
PUs12からの記号ストリーム間で発生する遅延原因
スキューに対して調整することができる。MP18にC
PU12への通信アクセスを供給したオンライン・アク
セス・ポート(OLAP)がMCに含まれていたこと
が、上記CPUs12の説明に関連して思い出される。
MP18は、CPU12にブート(開始)動作を終了さ
せるべく小さなメモリ画像及びルーチンを構築するため
にプロセッサ20によって実行されうるOLAP285
に命令を書込むことができた。同様なアクセスがルータ
14へのMP18に供給される。図27に少しの間戻る
と、ルータ14Aは、ターゲット・ポート選択論理回路
の上部及び下部領域レジスタ509a,509b(図3
1)、及びアルゴリズム・ルーティング論理回路600
(図33)の装置ビット位置及び拡張レジスタ50
j ,509k のような、多数の構成レジスタを含むO
LAP285’を含んで示されている。ルータ14Aを
含んでいるサブ−システム10Aの初期化の間中、OL
AP285’に含まれる構成レジスタは、それを一つの
マナーまたは別のマナーで動作させる構成をルータ14
Aに供給すべく(OLAPバス287’を介して)MP
18による情報で書込まれる。
【0180】しかしながら、ルータ14Aは、OLAP
285’を通してMPへ情報(誤り表示、等)を渡しう
る。例えば、ルータ14Aによって送られた各メッセー
ジ・パケットは、上記したように、そのCRCが検査さ
れる。パケットのCRCが不良であるとルータ14によ
って決定されたならば、TPB記号でメッセージ・パケ
ットにタグを付けることに加えて、ルータは、MP18
によって後で読取ることができるOLAP285’に含
まれる誤りレジスタ(図示省略)をセットすることによ
ってMP18にフラグをたてる。それゆえに、システム
は、この特徴(機能)を通して送信フォルトを知らせる
手段を備えている。
【0181】クロッキング:明らかに、CPUs12が
デュプレックス・モードで同期的にマッチしたペアとし
て適切に動作されるならば、それらが用いるクロック信
号は、同期されていなければならない。図36は、クロ
ック発生回路設計を示す。同期を維持するために各サブ
−プロセッサ・システム10A/10Bに一つのクロッ
ク発生器回路が存在する。参照番号650で一般に指定
される、クロック発生器回路は、クリスタル発振器回路
652a及び逓減係数8(divide-by-eight) の計数回路
(カウンタ)652bを備える発振器回路652を含
む。クリスタル発振器回路652aは、25/16 5
Mhzの周波数を有するマスタ・クロック(M_CL
K)信号を生起すべく8によって分割される12.5M
hzの周波数を有する周期的信号を生成する。M_CL
K信号は、SYNC CLKにも印加される。クロック
発生器654に印加されて、M_CLK信号は、M_C
LKに対して全てが位相封じ込みされた、多数の50M
hzクロック信号を生起すべく用いられる。これらの5
0Mhz信号は、クロック回路650を含んでいるサブ
−プロセッサ・システム(例えば、10A)の種々の素
子(例えば、CPU12、ルータ14、等)に分配され
かつ用いられる。
【0182】クロック発生器654は、M_CLK信号
を受信しかつ、それ自身の位相−封じ込みされた複製で
ある、フィードバック・クロック信号と比較すべく接続
された位相コンパレータ660を含んで示される。M_
CLKとフィードバック・クロック信号との間の位相差
を表わすアナログ電圧(V)である、位相コンパレータ
回路660の出力は、位相及び周波数の両方において、
M_CLK信号に対してクロック発生器によって生成さ
れた50Mhz信号のロックを維持すべく電圧制御型ク
リスタル発振器(VCXO)662に印加される。位相
コンパレータ660が、M_CLKとフィードバック信
号の間で所定の位相範囲よりも大きい位相差を検出した
ならば、それは、位相封じ込み(phase lock)の損失を示
すべくLOCK信号をディアサートする。VCXO66
2(図36)は、厳しい許容誤差範囲(tight tolerance
s)内で動作すべく構成された100Mhz電圧制御型ク
リスタル発振器である。VCXO662の生成物は、5
0Mhz信号を生成すべく2で、かつM_CLK信号の
複製、フィードバック信号を生成すべく64で、VCX
O662の出力をカウント・ダウン(分割)する同期カ
ウンタに印加される。カウンタ663によって生成され
た50Mhzクロック信号は、サブ−プロセッサ・シス
テム中の必要な場所に分配される。
【0183】ここで、図37を参照すると、周波数封じ
込み動作用の一対のサブ−プロセッサ・システム10
A,10B(図1〜図3)に対する同期クロック信号を
生起するために用いられる二つのクロック回路650の
相互接続及び使用を示す。図37に示すように、サブ−
プロセッサ・システム10A,10Bの二つのCPUs
12A及び12Bは、それぞれ、発振器回路652A,
652Bを含んでいる、クロック回路650A及び65
0Bとして図37に示す、クロック回路650を有す
る。しかしながら、CPUs12の一つのクロック発振
器652だけが、両方のCPUs12に対するM_CL
K信号を生起するために用いられる。図37は、両方の
CPUs12のクロック発生器654A及び654Bを
駆動するために用いられるCPU12Aの発振回路65
2Aを示す。ドライバ及び信号回線667は、サブ−プ
ロセッサ・システム10Bのクロック発生器654Bに
発振器回路652Aによって生起されたM_CLK信号
を送付すべく二つのサブ−プロセッサ・システムを相互
接続する。フォルト分離に対し、かつ信号の品質を維持
するために、M_CLK信号は、個別ドライバ及びルー
プバック接続668を通してサブ−プロセッサ・システ
ム10Aのクロック発生器654Aに送付される。ルー
プバック接続668の理由は、信号相互接続667によ
って課せられた遅延によりクロック発生器654Bによ
って見られるものにおおよそし等しい遅延を発振器回路
652Aとクロック発生器654Aとの間に課すことで
ある。
【0184】簡略化のために、図37に特に示されない
のは、発振器回路652が発振器652Aからのそれら
をミラーする接続及びドライバを有するということであ
る。それは、どの発振器回路652A,652Bが二つ
のクロック発生器654A,654Bを駆動する発振器
であるかを制定するCPUs12A,12Bを接続する
ための用いるケーブルである。即ち、一つの方法(one w
ay) で接続されて、ケーブル(図示省略)は、サブ−プ
ロセッサ・システム10A,10B間で図37に図示し
た接続を制定する;別の方法で接続されて、接続は、同
じであるが、発振器652Bが用いられる発振器であ
る。図37を続けると、サブ−プロセッサ・システム1
0Aの発振器回路652Aによって生成されたM_CL
K信号は、それらの対応SYNC CLK信号及びクロ
ック発生器654A,654Bによって生成された50
Mhz信号から生起された種々の他のクロック信号のよ
うに、両方のサブ−プロセッサ・システム10A,10
Bによって用いられる。それにより、ペアになったサブ
−プロセッサ・システム10A,10Bのクロック信号
は、デュプレックス・モードに必要な周波数封じ込み動
作に対して同期される。
【0185】クロック発生器654A,654BのVC
XOs662は、通常設計のものであり、かつ位相コン
パレータ660からの印加されたアナログ電圧(V)
が、制御限度の外側である(位相コンパレータ660か
ら受信したクロック信号がひどく位相がずれていること
を示している)ときでさえも所望の周波数を維持し続け
る型のものである。これは、サブ−プロセッサ・システ
ムがもはや周波数封じ込みされていないけれども、両方
のクロック発生器654A,654Bに、発振器回路6
52Aの不適切な動作のフェース(face)において二つの
サブ−プロセッサ・システム10A,10Bにクロック
信号を供給することを継続させる。クロック発生器回路
654A,654Bの(M_CLKが存在しかつその複
製、フィードバック信号と同期(sync)であることを示し
ている)位相コンパレータ660によってアサートされ
たLOCK信号は、両方ともに誤り論理回路670A,
670Bに結合される。LOCK信号をアサートするこ
とは、クロック発生器654によって生成された50M
hz信号が、M_CLK信号に、位相及び周波数の両方
において、同期されることを意味する。それゆえに、L
OCK信号のいずれかがZEROであった(即ち、ディ
アサートされた)ならば、誤り論理回路670は、どの
クロック発生器がそのLOCK信号をディアサートした
がを決定しかつOLAP285を介してMP18に知ら
せる。両方のLOCK信号がディアサートされたなら
ば、CPUsは、クロック発生器654A,654Bを
駆動している発振器回路652Aが正しく動作していな
いことをそれから想定することができる。
【0186】− 一定比率クロッキング:上述したよう
に、一対のデュプレックスされたCPUs12とルータ
14A,14B(図1〜図3)の間の記号転送は、周波
数封じ込みモードでそのように行われる;即ち、記号ス
トリームを付随し、かつ受信素子(ルータ14、または
CPU12)クロック同期FIFOに記号をプッシュす
る(押す)ために用いられるクロック信号は、クロック
同期FIFOsから記号をプルする(引く)ために用い
られた受信素子のものに、位相でなければ、周波数にお
いて実質的に同一である。例えば、ルータ14Aから一
対のデュプレックスされたCPUs12A,12Bに送
られた記号を示す、図35を参照すると、ルータ14A
で発生している(かつ受信クロック(Rcv Clk)
としてCPUs12A,12Bで受信されるべき、記号
ストリームを付随している、)クロック信号は、局所ク
ロック(Local Clk)に周波数において実質的
に同一である。前者(RcvClk)は、各CPUのク
ロック同期FIFOs126に記号をプッシュするため
に用いられ、後者は、FIFOsから記号をプルするた
めに用いられる。この技術は、同じ周波数のものであ
り、クロック信号(T_Clk/RcvClk及びLo
cal Clk)に対してよく動作し、かつ偶然にもT
NetリンクL上の通信に用いられたクロック周波数で
ある。しかしながら、送信媒体、即ち、TNetリンク
Lの電気的または他の特性に従うために、その媒体にわ
たり記号を送信するために用いられたクロック信号の周
波数が制限されが、受信エンティティが制限されないと
仮定したならば、ここでCPUs12は、より高い周波
数のクロック信号で動作することができる。そのようが
情況において、それぞれのクロック同期FIFOs12
6からプルされた記号に対して同期が二つのCPUsの
間で維持されるということを確実にするために準備がな
されなければならない。
【0187】ここで、一定比率クロッキング機構が、二
つのクロック同期FIFOs126の動作を制御するた
めに用いられ、それらがFIFOsにプッシュされるの
と同じ速度で二つのFIFOsから記号をプルするクロ
ック信号を供給する。図38を参照すると、参照番号7
0で示された一定比率クロック制御機構が示されてい
る。図38が示すように、クロック同期FIFO制御機
構700は、その並列出力がN対1マルチプレクサ(M
UX)704に印加されるプル・セット可能なマルチ・
ステージ直列シフト・レジスタ702を含む。直列シフ
ト・レジスタ702は、シフト・レジスタのクロック
(CK)入力に印加されるより速い(より高い周波数)
局所クロック信号(Locak Clk)で動作され
る。15ビット・バス701は、直列シフト・レジスタ
702をプリセットすべくデータ入力(DI)にプリセ
ット(PR1 )を運ぶ。 直列シフト・レジスタを形成
しているステージ数は、わかるように、局所的に用いら
れるクロック信号の周波数に対する記号が伝達されかつ
クロック同期FIFOs126にプッシュされるクロッ
ク信号の比率により、あらゆるものでありうる、という
ことが当業者には明らかであろう。ここでは、15ステ
ージが十分であると思われる。
【0188】MUX704は、シフト・レジスタ702
から15並列データ出力(DO)の一つを選択すべく動
作し、クロック同期FIFOs126から記号をプル
し、かつプル・ポインタ・カウンタ130を動作(更
新)すべくLocal Clk信号として用いられる一
定比率クロック制御機構の、出力として、MUXの入力
(I)に印加される。選択された出力は、MUXの出力
(O)からも結合されかつ直列シフト・レジスタのシフ
ト・イン(SI)入力に印加される。選択は、4ビット
・カウンタで実施されうる − サイクル長論理回路の
データ入力(DI)に印加された(4ビット)プリセッ
ト(PR2 )値でプリセット可能なサイクル長論理回路
706によってなされる。サイクル長論理回路の4ビッ
ト出力は、MUX704の選択(C)に印加される選択
値を形成する。本質において、一定比率クロック制御
は、所定の時期(期間)にわたりRcvClkで同じ数
のクロック・エクスカージョン(excursions)を有してい
る出力信号を生成すべく動作する。クロック同期FIF
O126に記号をプッシュするために用いられるクロッ
ク信号に対するCPU12のクロック信号の間のN:M
(ここでN>M)の比率が、Rcv Clkであると想
定すると、直列シフト・レジスタは、シフト・レジスタ
のMステージが第1のディジタル状態(例えば、ON
E)を保持し、かつ他が別のディジタル状態(例えば、
ZERO)を保持するようにプリセットされる。サイク
ル長論理回路は、(もちろん、最後または15番目のス
テージが第1のステージへのフィードバックを形成する
ような、Mが15であることを除き)Mステージを有す
るトランケートされた直列シフト・レジスタを、実質的
に、生成する直列シフト・レジスタの出力を選択すべく
値でプリセットされる。例は、これをよりクリアにす
る。
【0189】図35をちょっと参照して、記号が50M
hzクロックでルータ14Aから二つのデュプレックス
されたCPUs12に送信されると想定する。それゆえ
に、記号は、50Mhz速度でCPUsのクロック同期
FIFOs126にプッシュされる。CPUsのクロッ
ク信号が40Mhzであると更に想定する。従って、R
cv Clk信号に対する局所クロック(80Mhz)
の比率は、8:5である。直列シフト・レジスタは、1
5ステージの最初または第1の8つが5つのONEsと
3つのZEROsを含むようなビット・パターンでプリ
セットされる。サイクル長論理回路は、MUX704に
よる直列シフト・レジスタの8番目のステージの選択を
動作する値でプリセットされる。それゆえに、シフト・
レジスタ及びサイクル長論理回路は、それぞれが100
ns(ナノ秒)期間である3つの“待ち(wait)”状態及
び5つの“出る(out) ”状態を、実質的に、含んでいる
8つのステージを有する直列シフト・レジスタを、実質
的に、生成する値が供給される。従って、クロック同期
FIFOs126から記号をプルするクロック信号を生
成する、MUX704の出力、Rcv Clkは、各1
00ns期間に対して、5つのクロック・パルスを含
む。それゆえに、各100ns期間に対して、5つの記
号がクロック同期FIFOs126にプッシュされ、か
つ5つの記号がクロック同期FIFOs126からプル
される。
【0190】この例は、図39に記号的に示され、図4
0に示されたタイミング図は、制御論理回路700の動
作を示す。各100ns期間に対して、Rcv Clk
の5つのクロック・パルス(図40において“IN”と
示された)は、クロック同期FIFOs126に記号を
プッシュする。それと同じ100ns期間中に、直列シ
フト・レジスタ702は、MUX704によって選択さ
れたステージ710を通して“01101011”シー
ケンスを循環させ、Rcv Clk信号と同じ数のアク
ティブ・クロック・パルスを有するLocal Clk
信号を生成する。シフト・レジスタ702のステージの
数は、ここの示されたようなシステムにおける最も一般
的なクロック・スピード差分を収容すべく変更されうる
ということが当業者には明らかである。好ましくは、シ
フト・レジスタ702は、示されたように、15のステ
ージを有し、比較的広い範囲のクロック比率をカバーす
るための能力(機能)を供給する。ここで理解できるよ
うに、この一定比率クロッキングのこの技術は、決して
1クロック以上ずれない。更に、例えば、5つのクロッ
クをカウントしかつ追加の記憶(例えば、同期FIFO
のサイズにおける増加)を必要としかつより待ち時間を
課す3つのクロックを保持するよりも良好な実施であ
る。
【0191】ここに示された一定比率クロック回路(図
38及び図39)は、一周波数のクロック様式(regime)
から異なる、より高い周波数のクロック様式にデータ素
子を転送するために用いられる。クロック同期FIFO
の使用は、二つの異なるソースから同一の指令/データ
記号のペアを受信すべく同期化された、デュプレックス
ド・モードで動作するときに、信号遅延の影響を補償す
るためにここで必要である。しかしながら、ここに開示
された一定比率クロック回路は、クロック同期FIFO
の代わりに少なくとも二つのレジスタが存在する限り、
二つの異なるクロック様式間でデータを伝達するために
有用であるというが当業者に自明である。より高い周波
数クロック様式からより低い周波数クロック様式にデー
タを転送することは、一定比率クロック回路702によ
って生起されたクロック信号の制御下で入力ステージま
たはレジスタにデータ素子を転送すべく一定比率クロッ
ク回路702を用いる;より低いクロック様式のクロッ
ク信号は、二つ(または、ここでは、それ以上)の受信
レジスタ・ステージの間でデータ素子を転送し、かつそ
れからデータ素子を除去するために用いられる。逆に、
より低い周波数クロック様式からより高い周波数を有し
ているものに転送されたデータ素子は、ここに示された
ように本質的に動作する。
【0192】この概念は、異なるクロック信号が用いら
れるところに用いることができる。例えば、マイクロプ
ロセッサ技術においてよく知られるように、多くのマイ
クロプロセッサは、一周波数のクロック信号に応じて動
作するマイクロプロセッサが、異なる、通常より低い周
波数のクロック信号に応じて動作する同期装置(例え
ば、メモリ、または外部、システム・バス)と伝達する
ときに“待ち”状態を挿入すべく構成されている。一般
に、そのようなマイクロプロセッサ/装置通信は、より
遅いクロック信号がマイクロプロセッサ・クロック周波
数の整数倍であるということが要求される。一定比率ク
ロック制御回路702は、広い範囲の可能なクロック比
率を供給できる。
【0193】I/Oパケット・インターフェイス:サブ
−プロセッサ・システムが局所I/Oを有することを必
要としないように他のサブ−プロセッサ・システムのI
/Oが利用可能であるということが考えられるけれど
も、サブ−プロセッサ・システム10A,10B、等の
それぞれは、種々の周辺装置で実施される、入力/出力
機能を有する。あらゆる場合において、局所I/Oが供
給されたならば、周辺装置及び/又はMP18は、I/
Oパケット・インターフェイス16を介して伝達(通
信)する。I/Oパケット・インターフェイス16は、
装着されたI/O装置に対してより互換性があるかまた
はネーティブな形にそれがTNetリンクLから受信し
た入力メッセージ・パケットを変換すべく動作する;次
いで、I/Oパケット・インターフェイス16は、反対
方向にも変換して、装着されたI/O装置から“ネーテ
ィブI/O”(NIO)を受信し、上述した8B−9B
フォーマットのデータにバイトを符号化し(上記、表1
参照)、かつデータを宛先に送るために必要なパケット
を形成する。更に、特定のI/O装置(例えば、信号回
線)に対して最も普通の方法でアサートされる、I/O
装置からの割込みは、I/Oパケット・インターフェイ
ス装置16によって受信され、かつそれが上述したよう
に処理される、割込みが意図したCPU12に送られる
割込みパケットを形成するために用いられる。それゆえ
に、NIOバス上の装置は、読取りをし、書込みをし、
かつCPU12のメモリ28にTNetリンクL及びル
ータ14を通して透過的に渡されたデータ/制御情報で
慣例的にメッセージ・パケットを介して割込みを発行す
る。
【0194】そして、I/Oパケット・インターフェイ
ス16が、I/O装置の一つ、MP18として、それに
接続されうるけれども、I/Oパケット・インターフェ
イス16は、構成情報を、OLAPバスを介して、受信
するMC26(図17B)にに含まれ(OLAP28
5)かつルータ14に含まれた(OLAP 285’;
図27)ようなOLAPも含む。
【0195】オン−ライン・アクセス・ポート:MP1
8は、(IEEE1149.1−1990、5月、19
90年、SH13144、Institute of Electrical an
d Electronic Engineerings, 345 East47th Street, Ne
w York, NY 10017 に基づく)IEEE標準1149.
1に準拠するインターフェイス信号でインターフェイス
装置24、メモリ・コントローラ(MC)26、ルータ
14、及びI/Oパケット・インターフェイスに接続す
る。OLAP258は、そのIEEE標準を実施し、か
つOLAP258の構成及び動作は、それがどの素子
(例えば、ルータ14、インターフェイス装置24、
等)を用いたかに関係なく本質的に同じである。図41
は、IEEE1149.1標準インターフェイスを実施
しているOLAP258の一般構造を図式的に示す。O
LAPは、ここに説明した素子のあるものを実施するた
めに用いられる各集積回路チップ上で形成されるのが好
ましい。例えば、各インターフェイス装置24、メモリ
・コントローラ26、及びルータ14は、OLAPも含
むアプリケーション指定集積回路(ASIC)によって
実施され、ASICの回路素子へのアクセスをMP18
に供給する。それゆえに、図41に示したOLAP15
8の説明は、インターフェイス装置24、MC26、及
びシステムのルータ14に関連するOLAPを説明す
る。
【0196】図41に示すように、直列バス19Aは、
4つの1ビット信号回線を備えている:OLAP258
へ周期的クロック信号を運ぶ試験クロック(TCK)信
号回線;2状態指令信号を伝達する試験指令(TCM)
信号回線、OLAPへデータを運ぶ試験データ・イン
(TDI)信号回線;及びOLAPからデータを伝達す
る試験データ・アウト(TDO)信号回線。これらの信
号は、IEEE1149.1標準の要求事項に従ってい
る。OLAP258は、直列バス19AのTCK及びT
CM回線上で受信したクロック及び指令信号に応じてO
LAPの動作を制御する4ビット状態マシンを含む。O
LAP258によって受信されたデータ(及び/又は命
令)は、16ビット命令レジスタ(IR)802及び/
又は32ビット・データ・レジスタ(DR)104によ
って記憶される;データは、DR804だけが関連論理
回路(例えば、ルータ14)からのデータで装填するこ
とができるということを除き、IR、DRレジスタのい
ずれかから伝達されうる。OLAP258に関連する
が、その一部でないものは、MP18(OLAP258
を介して)及びOLAP258が関連される論理回路の
両方によってアクセスすることができる64の32ビッ
ト・レジスタまでを含むレジスタ・ファイルの形の構成
レジスタ806である。例えば、構成レジスタ806の
レジスタのあるものは、ルータ14の制御及び状態論理
回路509(図27)を形成する。構成レジスタ806
は、IR802によって最初に供給される10ビット命
令によって命令される(32ビット)位置(即ち、64
の利用可能な32ビット・アドレスの選択されたもの)
でDR804から書込まれる。構成レジスタ806を装
填するための命令は、命令復号論理回路810によって
復号される4ビット部分を含み、指令発生器812に印
加された合成復号は、読取りまたは書込み動作を識別す
る。動作の目的、即ち、読取られるかまたは書込まれる
べき、構成レジスタ806を構成している64レジスタ
の一つは、アドレス復号論理回路814によって復号さ
れる6ビット・アドレスによって識別される。指令発生
器812は、状態マシン800の状態も受信する。それ
ゆえに、状態マシン800によって想定された特定状態
により、命令復号論理回路810からの復号された指令
と一緒に、書込みまたは読取り指令信号は、構成レジス
タ806に、(アドレス復号論理回路814によって復
号されたような)命令の6ビット・アドレスによって識
別された64のレジスタの一つで読取りまたは書込みを
実行させるべく指令発生器論理回路812によって生成
される。
【0197】MP18(図1)によって供給されたデー
タは、マルチプレクサ816を介してDR804に書込
まれる。OLAP258を用いている論理回路は、二つ
の個別ソースからDR804を書込みうるし、IR80
2に早めに書込まれた命令情報及び直列バス19AのT
CK及びTCM信号回線によって運ばれた信号(signall
ing)による状態マシン800の動作を用いてMP18に
よてDR804に選択的に結合されかつ書込まれたそれ
らのソースで32ビット・レジスタを供給する。32ビ
ットDR804は、適切な1149.1命令の使用と一
緒に、“CAPTURE−DR”、“SHIFT−D
R”、及び“UPDATE−DR”として1149.1
に記載された状態を通して状態マシン800をステップ
することによってアクセスされる。命令の追加ビット
は、DR804に、CAPTURE−DR状態によりチ
ップ状態情報を含んでいるチップ内の選択された値を読
取らせる。他の1149.1命令は、構成及び初期化目
的のためにUPDATE−DR状態に選択されたレジス
タに対してレジスタ内容をコピーさせる。DR804の
内容は、1149.1 SHIFT−DR状態を用いて
(直列バス19Aを介して)MP18と変換される。O
LAP258の構成及び動作の更なる情報に対して、I
EEE1149.1標準(IEEE1149.1−19
90、5月、1990年、SH13144)が参照され
うる。
【0198】非対象変数:“非対象変数”は、他のもの
から一対のCPUs12の一つにおいて異なるか、また
は異なりうる、値である。非対象変数の例は、他のCP
Uのものから異なる、CPU−読取り可能位置、例え
ば、レジスタ外側メモリ28か、または訂正可能メモリ
またはキャッシュ誤りの発生をトラックするために用い
られるレジスタの内容、に割り当てられかつ保持される
通し番号を含むことができる(誤りを検出し、訂正し及
び報告することは、デュプレックされたCPUsにロッ
ク−ステップ同期を失わさせないものと想定する)。デ
ュプレックス・モードでは、非対象変数の注意深い処理
は、論理的の同等であると仮定して、(各CPU12の
メモリ28に維持された)システム・メモリの多重コピ
ーが、常に同一のデータを含むことを確実にするために
重要である。非対象変数が二つのデュプレックスされた
CPUs12のそれぞれによって単に読取られたなら
ば、次いでメモリへ書込まれ、各CPUのメモリ28の
内容は、それにより少なくともそれぞれによって読取ら
れた値で異なる。一対のCPUs12を許容するため
に、デュプレックス・モードで動作し、非対象変数を処
理すべく、“ソフト−ヴォート(soft-vote) ”(SV)
論理回路素子900(図43)が各CPU12の各イン
ターフェイス装置24に供給される。図43〜図44が
示すように、各インターフェイス装置24のSV論理回
路素子900は、バス回線902a及び902bを含ん
でいる、2ビットSVバス902によって互いに接続さ
れる。バス回線902aは、CPU12Aのインターフ
ェイス装置24からCPU12Bのそれらに1ビット値
を運ぶ。逆に、バス回線902bは、CPU12BのS
V論理回路素子900からCPU12Aのそれらに1ビ
ット値を運ぶ。
【0199】図44に示すのは、CPU12Aのインタ
ーフェイス装置24aのSV論理回路素子900aであ
る。各SV論理回路素子900は、示さない限り、論理
回路素子900aの説明が(CPU12A,インターフ
ェイス装置24bの)他の論理回路素子900a、及び
(CPU12Bの、インターフェイス装置24a,24
bの)900bにも同様に適用されるということが理解
されるべきであるように各他のSV論理回路素子900
に対して構成及び機能において実質的に同一である。図
44が示すように、SV論理回路素子900aは、4つ
の1ビット・レジスタを含む:出力レジスタ904、局
所入力レジスタ906、遠隔入力レジスタ907、及び
出力イネーブル・レジスタ912。出力レジスタ904
は、共有バス回線902aに、マルチプレクサ(MU
X)914及び3状態ドライバ918を介して、結合さ
れる。CPU12Aの論理回路素子900aだけが、バ
ス回線902aを駆動し、次いで二つの論理回路素子に
一つだけがバス回線を駆動する。どれか一つは、イネー
ブル・レジスタ912の内容に依存する。従って、バス
回線902aは、論理回路素子900aの出力レジスタ
904を、CPU12Bの論理回路素子900bのそれ
ぞれの遠隔入力レジスタ907に伝達する。バス回線9
02aは、論理回路素子900aの一つの(マルチプレ
クサ914及びドライバ916を介して)出力レジスタ
904を、論理回路素子900aの他の(並びにそれ自
身の)局所入力レジスタに伝達する。この方法で、CP
U12Aの二つのインターフェイス装置24a,24b
は、互いに非対象変数を伝達することができる。
【0200】同様なファッションで、CPU12Bの論
理回路素子900bの出力レジスタ904は、論理回路
素子902a(及び他のインターフェイス装置24bの
もの)の遠隔レジスタ907にバス回線902bによっ
て伝達される。論理回路素子902は、一対の構成レジ
スタ74(図9)を形成する。それゆえに、それらは、
出力レジスタ904及び/又はイネーブル・レジスタ9
12を選択しかつ書込むためか、または入力局所及び遠
隔レジスタ906及び907を選択しかつ読取るために
少なくともアドレス/データ・バス74(図44にバス
74’として示す)の一部にわたる必要なデータ/アド
レス情報を伝達することによってプロセッサ装置20に
よって書込まれうる。MUX914は、SV論理回路素
子900aに対するバス回線902aの選択的使用をC
PU12Aの各インターフェイス装置24に供給すべく
か、または一対のCPUs12をロック−ステップ、デ
ュプレックス動作に至らせるために用いれる(以下に説
明する)再統一処理の間中に遭遇したならばBUS E
RROR信号を伝達するために動作する。出力イネーブ
ル・レジスタは、3状態ドライバをイネーブルする(ま
たはディスエーブルする)ビットで書込まれ、それがS
V出力レジスタ904の内容でバス回線902aを駆動
する。
【0201】上述したように、SV論理回路素子900
は、デュプレックス・モードで動作しているときにCP
Us12A,12Bに、非対象変数のビット毎の交換を
実施される。CPUs12A,12Bがデュプレックス
・モードであるときには、それらは、両方とも、もし同
じ瞬間でなければ、実質的に同じ仮想瞬時(virtual mom
ent in time)に同一命令ストリームの同じ命令を実行し
ていることを思い出す。それらの間の非対象変数の交換
は、次の通りである。両方のCPUsは、命令ストリー
ムに応じて、かつ本質的に同時に、各CPUの両方のイ
ンターフェイス装置24の論理回路素子900のイネー
ブル・レジスタ912を書込む。各CPUの二つの論理
回路素子900の一つは、関連ドライバ916をイネー
ブルする状態で書込まれる;他は、高いインピーダンス
状態にドライバの出力を置く状態で書込まれる。それ
は、関連ドライバ916をイネーブルすべく書込まれる
両方のCPUs12A,12Bのインターフェイス装置
24aの論理回路素子900と関連した出力イネーブル
・レジスタ912であるということを想定する。それゆ
えに、各CPUのインターフェイス装置24aの出力レ
ジスタ904は、バス回線902に伝達される;即ち、
インターフェイス24a(CPU12A)の論理回路素
子900aに関連した出力レジスタ904は、バス回線
902aに伝達され、CPU12Bのインターフェイス
装置24aの論理回路素子900bに関連した出力レジ
スタは、バス回線902bに伝達される。CPUs12
は、両方とも、それらの対応出力レジスタ904に非対
象変数のビットを書込み、それぞれの関連遠隔入力レジ
スタ907の最大クロック・スキューを許容した後、読
取りが後に続く。出力レジスタ904は、各CPUによ
って再び書込まれ、遠隔入力レジスタ907を読取るこ
とが再び後に続く。この処理は、変数全体が各CPU1
2の出力レジスタ904から他の遠隔入力レジスタに伝
達されるまで、一度に1ビット、反復される。CPU1
2Bの両方のインターフェイス装置24は、非対象情報
のビットを受信することに注目する。
【0202】ソフト−ヴォート機構の使用の一例は、通
し番号(serial numbers)の交換である。構成レジスタ7
4の一つは、互いにデュプレックスされうる二つのCP
Usのそれぞれを識別し、かつ互いにそれらを区別すべ
く始動(スタート・アップ)でセットされる1ビット・
レジスタ(図示省略)である。それゆえに、一つのCP
Uの1ビット・レジスタは、他のCPUのものから異な
る状態にセットされる。これは、そのCPUに割り当て
られた通し番号で装填される他の構成レジスタで、スタ
ート・アップの間中も、続けられうる。通し番号に対し
て構成レジスタのどれが装填されたかは、1ビット識別
レジスタの状態による。それゆえに、二つのCPUs
は、それを一つのCPUにおいてそれ自身の通し番号を
有する“R1”(図示省略)と呼ぶその一つのレジスタ
を除き、それぞれそれらの通し番号を含んでいる二つの
同一レジスタを有し、他のCPUは、構成レジスタ“R
2”(図示省略)にそれ自身の通し番号を有する。これ
らの値あデュプレックスされたCPUsによってメモリ
に書込まれることができる前に、R1,R2構成レジス
タは、ソフト−ヴォート機構を用いて、“調和”されな
ければならない。SV論理回路素子900は、説明され
る再統一処理の間に発生しうるバス誤りを伝達するため
にも用いられる。再統一が実行されるときには、REI
NT信号がアサートされる。図44に示すように、RE
INTは、MUX914の制御(C)入力に印加され
る。それゆえに、REINTがアサートされるときに
は、BUS ERROR信号がMUX914によって選
択されかつバス回線902aに伝達される。
【0203】同期:個別に動作している(シンプレック
ス・モード)か、またはペアになりかつ同期ロック−ス
テップ(デュプレックス・モード)で動作しているサブ
−プロセッサ・システム10A,10Bの適切な動作
(図1及び図4)は、CPUs12A,12Bとルータ
14A,14B の間で伝達されるデータが適切に受信さ
れ、かつ(CPUs12A,12Bの;図9)クロック
同期FIFOs102及び(ルータ14A,14Bの;
図29)クロック同期FIFOs519がデータまたは
指令として誤って解釈されないとういことの確保が必要
である。種々のクロック同期FIFOs(CPUs12
の)102及び(ルータ14の)518のプッシュ及び
プル・ポインタは、少なくとも近周波数動作に対して初
期化されることが必要である。一般に、これは、パワー
が最初に印加され、プッシュ及びプル・ポインタ・カウ
ンタをある規準距離離してセットし、ある既知の状態に
関連FIFOキューをプリセットするときに、パワー・
オン信号(図示省略)によって通常のファッションで行
われる。これがなされて、全てのクロック同期FIFO
sが近周波数動作に対して初期化される。それゆえに、
システム10が最初にオンラインにされた(パワー・ア
ップされた)ときに、CPUs12A,12Bとルータ
14A,14Bとの間の通信リンクの動作は、近周波数
モードである。
【0204】しかしながら、CPUs12A,12Bが
デュプレックス・モード動作にスイッチされるときに、
更なるものが要求される。まず、各TNetリンク上の
CPUs12A,12Bとルータ14A,14Bとの間
にデータを送付するために用いられるクロッキングは、
周波数封じ込み動作にスイッチされなければならない。
次に、デュプレックス・モード動作のロック−ステップ
動作を適切に実施するために、クロック同期FIFOs
は、別の経路に見出されない一つの経路における遅延を
収容するためにそれからそれらがデータを受信する特定
ソースで動作すべく同期されなければならない。例え
ば、デュプレックス・モード動作は、ペアになったCP
Us12が同じ仮想時間に同一命令ストリームの各命令
を実行することを必要とするということを思い出す。
(“仮想”時間とは、ペアになったCPUs12による
同一命令の実際の実時間実行が、少しの量だけ異なって
も、外側世界によって見られるときにそれらのアクショ
ンは、まったく同じであるということを意味する。)ル
ータ14A及び14Bからの入力データは、ロック−ス
テップ動作のコンテキストにおいて、ほとんど同時に二
つのCPUsによって受信されなければならない。ルー
タ14A,14Bの一つまたは別のものからCPUs1
2A,12Bへの通信経路における遅延は、考慮されな
ければならない。それは、メッセージ・パケット記号を
受信し、通信経路において課せられうる遅延に対して調
整し、デュプレックス・モード動作に必要なロック−ス
テップ同期を維持すべく同期マナーで二つのCPUsに
記号を与えるべく動作するペアになったCPUs12の
クロック同期FIFOs102である。
【0205】同様なファッションで、CPUs12の一
つからルータ14A,14Bによって受信された各記号
は、(以下に、更に説明する)CPUsの可能な発散を
検査するために他からのものと比較されなければならな
い。それは、二つのCPUs12から受信した記号がク
ロック同期FIFOsから同時に検索されるように通信
経路における遅延を収容すべく調整するCPUs12か
らメッセージ・パケットを受信するルータ14A,14
Bのクロック同期FIFOs518の機能である。CP
Us及びルータのクロック同期FIFOsがどのように
リセットされ、初期化され、かつ同期されるかを説明す
るまえに、同期ロック−ステップ・デュプレックス・モ
ード動作を維持するためのそれらの動作の理解は、有用
であると信ずる。それゆえに、図35をちょっと参照す
ると、例えば、ルータ14Aからデータを受信するCP
Us12A,12Bのクロック同期FIFOs102が
示されている。図35は、次いで、ルータ14Aからの
データ/指令記号及びクロックを二つのデュプレックス
されたCPUs12A,12Bにそれぞれ結合する、1
0ビット・バス32x 及び32y に接続されたルータ1
4Aのポート出力5044 及び5045 を示す。メッセ
ージ・パケットがCPU12を識別している単一宛先ア
ドレスを有しうるけれども、パケットは、記号毎に、ル
ータ14Aによって複製され、かつ両方のCPUs12
A及び12Bの実質的に同時に送信されるということを
思い出す。
【0206】二つのCPUs12A,12Bは、ルータ
14AからCPUsの一つ(例えば、CPU12B)に
よって受信された記号が、他のCPU(CPU12A)
による(ルータによって複製されたような)同一記号の
それらの受信に関して未知(しかし最大)量の遅延を経
験するように配置されるであろう。この遅延は、ルータ
14AからCPU12Bへ、記号及び付随送信機クロッ
クT_Clkを伝達するバス32y の640で表され
る。デュプレックス動作の間中に同一記号ストリームを
受信するためのクロック同期FIFOs102x ,10
y の動作を考える。以下の、表6は、その動作を示
す。簡単のために、表6は、遅延640が送信クロック
(T_Clk)の二期間以上でないということを想定す
る。しかしながら、遅延640がT_Clkの二クロッ
ク時間以上であるならば、キュー126の深さは、プッ
シュ及びプル・ポインタ・カウンタ128及び130の
内容の間で増加した距離を供給すべくそれゆえに増加さ
れなければならない。例えば、遅延640が記号のCP
U12Bでの到着が、CPU12Aでの同じ記号の到着
よりも3T_Clk期間だけ大きいようであるならば、
プッシュ及びプル・ポインタ・カウンタ間の距離は、少
なくとも4であるべきである。それゆえに、そのような
場合における、キュー126の深さは、6記号位置、ま
たはそれ以上である。
【0207】
【表6】 表 6 ─────────────────────────────────── 項 目 RST clk clk clk clk clk clk clk 1 2 3 4 5 6 7 CPU 12A 値 プッシュポインタ 0 1 2 3 0 1 2 3 プルポインタ 2 3 0 1 2 3 0 1 バイト 0 IDLE A A A A E E E バイト 1 IDLE IDLE B B B B F F バイト 2 IDLE IDLE IDLE C C C C G バイト 3 IDLE IDLE IDLE IDLE D D D D アウト reg IDLE IDLE IDLE A B C D E CPU 12B 値 プッシュポインタ 0 0 1 2 3 0 1 2 プルポインタ 2 3 0 1 2 3 0 1 バイト 0 IDLE IDLE A A A A E E バイト 1 IDLE IDLE IDLE B B B B F バイト 2 IDLE IDLE IDLE IDLE C C C C バイト 3 IDLE IDLE IDLE IDLE IDLE D D D アウト reg IDLE IDLE IDLE A B C D E
【0208】表6の上半分の行は、CPU12A(イン
ターフェイス装置24a)に対するプッシュ及びプル・
ポインタ・カウンタ128,130によって保持される
値、キュー126の4つの記憶位置(バイト
0,...,バイト3)の各々の内容、初期リセット
(RST)期間及び送信機クロック、T_Clkの後続
クロック・サイクルに対する出力レジスタ132の内容
を示す。表6の下半分の行は、複製された記号ストリー
ムの各記号に対するCPU12Bインターフェイス装置
24aのFIFO102y に対して同じものを示す。遅
延640が2T_Clk期間以上でないと想定して、
(カウンタ128,130で維持される)プッシュ及び
プル・ポインタは、二位置(two locations) 離れたキュ
ー126の位置を指し示す。プッシュ・ポインタ・カウ
ンタ128は、それぞれ受信した記号が記憶されるキュ
ー126の次の位置を指し示し、かつプル・ポインタ・
カウンタ130は、それぞれ記号がキューからプルされ
る位置を指し示す。表6、図35を参照して、“IDL
E”記号のストリームをそれが先に送っているプロトコ
ルに付いている、ルータ14Aは、記号Aで始まる、記
号ストリーム(メッセージ・パケット)を送り始める、
ということをここで想定する。表6が示すように、記号
Aは、遅延640によりCPU12Aでのその到着より
も一サイクル後でCPU12Bに到着する。しかし、C
PU12Bに対するプッシュ・ポインタ・カウンタ12
8の内容がCPU12Aのものに従い、それもまた一サ
イクル遅延する、ということに注目する。それゆえに、
CPU12Aでのその到着よりも一サイクル後で記号A
がCPU12Bに到着しても、両方は、キュー126の
“バイト0”位置に記憶される。これは、(1)FIF
Os102が(以下に説明する処理を)同期で動作すべ
く同期され、かつ(2)プッシュ・ポインタ・カウンタ
128が記号のソース、即ち、ルータ14AからのT_
Clkによって生成されたクロック信号によってクロッ
クされ、そのクロック信号が記号によって経験されたも
のと同じ遅延640に出会うからである。他方、プル・
ポインタ・カウンタ130は、それらがCPUs12の
パケット受信機94によって生成された局所受信機クロ
ック(Rcv Clk)によってクロックされるので、
互いに常にマッチする。更に、これらの局所受信機クロ
ックは、動作のデュプレックス・モードであるときに周
波数及び位相封じ込みされる;それらは、いかなる遅延
も経験しない。
【0209】遅延640を見る別の方法は、ルータ14
AとCPU12Bの間の通信経路(バス32y )におけ
るパイプラインの一部としてそれを考えることである。
遅延640は、最大遅延が記号にその記号がキューから
プルされる少なくとも1クロック・サイクル前に記憶キ
ュー126をエンター(入力)させる限り、あらゆる値
のものでありうる。CPU12Aに伝達された記号は、
実質的に、その複製がCPU12Bのキュー126から
プルされると同時にキュー126からプルされる前に1
エキストラ・サイクル待つ。それは、ルータ14Aによ
って送信された記号ストリームの各記号が同時にCPU
s12A,12Bのクロック同期FIFOs102から
プルされ、デュプレックス・モードで動作しているとき
に受信したデータの要求された同期を維持するというこ
の方法においてである。実質的に、CS FIFOs1
02のキュー126の深さは、ルータ14AからCPU
s12A,12Bへの二つの経路に同じ遅延を与えるべ
く調整する。表6を参照して説明された動作を達成する
ために、図45に示されたリセット及び同期処理が用い
られる。処理は、デュプレックス・モード動作に対して
CPUs12A,12Bのクロック同期FIFOs10
2を初期化するだけでなく、デュプレックス動作に対し
てルータ14A,14Bの各々のCPUポートのクロッ
ク同期FIFOs518(図27)を調整すべく動作も
する。リセット及び同期処理は、SYNC CLK信号
970(図46)によって表された、時期を始動し、C
PUs12A及び12B並びにルータ14A,14B の対
応クロック同期FIFOsをリセットしかつ初期化すべ
くSYNC指令記号を用いる。(SYNC CLK信号
は、システム10の素子、特にルータ14A,14B及
びCPUs12A,12Bへの分配(分布)のためにク
ロック発生器654(図36)によって生起される。そ
れは、クロック同期FIFOsにより記号を受信すべく
用いられる、T_Clkよりも低い周波数のものであ
る。例えば、T_Clkがおおよそ50Mhzであると
ころでは、SYNC CLK信号は、おおよそ3.12
5MHzである。) ここで図45を参照すると、リセット及び初期化処理
は、それらが同じクロック信号から導出されるようにC
PUs12A,12B及びルータ14A,14Bによっ
て用いられたクロック信号を送信(T_Clk)及び装
置の局所クロック(Local Clk)クロック信号
としてスイッチすることによってステップ950で開始
する。T_Clk及びLocal Clk信号は、実質
的に同じ周波数であるが、種々のクロック信号を伝達す
ることにおいて固有な遅延により同相である必要はな
い。更に、CPUs12A,12Bにおける構成レジス
タ(インターフェイス装置24の構成レジスタ74)及
びルータ14A,14Bにおける(ルータ14A,14
Bの制御論理回路装置509に含まれた)構成レジスタ
は、FreqLock状態にセットされる。
【0210】以下の説明は、ステップ952を含み、か
つインターフェイス装置24(図9)、ルータ14A
(図27)、図45及び図46を参照する。周波数封じ
込み動作におけるクロックで、CPU12Aは、SLE
EP指令記号を送り始めることをそれに指令すべくオフ
・ラインCPU12Bにメッセージ・パケットを送る。
次に、また、CPU12Aは、ルータ14AにSLEE
P指令記号を送り始め、さもなければ送られうるREA
DY指令記号を置換し、自己アドレス指定されたメッセ
ージ・パケットが続く。SLEEP指令記号が受信され
かつルータ14Aによって認識されたときに受信されか
つ再送信される処理のメッセージ・パケットは、終了さ
せられる。しかしながら、更なるメッセージ・パケット
は、一つを除いて、近づけられない(離される(held of
f)):CPU12Aからの自己アドレス指定されたメッ
セージ・パケット。それらのメッセージ・パケットは、
受信され、かつ(宛先アドレス毎に)CPU12Aへル
ータ14Aによって戻される。SLEEP指令記号は、
同期処理に対してルータ14Aを“静止(quiece)”すべ
く動作する。CPU12Aによって送られた自己アドレ
ス指定されたメッセージ・パケットは、CPU12Aに
よって受け戻されたときに、SLEEP指令記号の後に
送られた自己アドレス指定されたメッセージ・パケット
がルータ14Aによって最後に処理されなければならな
いので、ルータ14Aが静止状態であることをCPUに
知らせる。
【0211】ステップ954では、CPU12Aは、S
LEEP指令記号を送ることの始動に続いてそれが送っ
た自己アドレス指定されたメッセージ・パケットをそれ
が受け戻したかどうかを調べる。それがそのメッセージ
・パケットの戻りを見て、かつそれによりルータ14A
が更なるメッセージ・パケットを一時的に処理しないこ
とを確信したときに、CPU12Aは、SYNC指令記
号をルータ14Aに送るべくステップ956をエンター
(入力)する。そのSYNC指令記号がルータによって
受信され、かつ指令復号論理回路544(図29)のよ
うなもによって認識されたときに、制御論理回路509
は、知らされる。制御論理回路509は、CPUs12
A,12BにエコーバックされるSYNC指令記号を生
成すべく(ステップ958)、ポート出力5044 ,5
045 の指令記号発生器632(図34)に信号を送る
ために、SYNC CLK970の次の立上りエッジ
(時間t1 − 図46)を待つ。次に、ステップ960
(及びSYNC CLK970の時間t2 )で、ルータ
の制御論理回路509は、CPUs12A,12Bから
直接的に記号に受信するルータの入力論理回路50
4 ,5055 に含まれる二つのクロック同期FIFO
s518に印加されるRESET信号972をアサート
する。RESETは、アサートされる間、パワー・オン
・リセット処理に関連して上述したように、互いに離れ
た所定数(この例では、2)離れた位置を記憶キュー5
18の位置で指し示すべく既知の状態にセットされたプ
ッシュ及びプル・ポインタ・カウンタ530,532
(図29)で一時的非動作リセット状態に二つのクロッ
ク同期FIFOs518を保持する。
【0212】同様に、SYNC記号は、ルータ14A,
14BによりCPUs12にエコーバックされる。CP
Us12受信SYNC記号のそれぞれがパケット受信機
96の記憶及び処理装置(図9及び図10)によって検
出されると、RESET信号を各CPU12のパケット
受信機96(実際には、記憶及び処理素子110;図1
0)によりアサートさせる。RESET信号は、CPU
s12のクロック同期FIFOs102(図10)に印
加される。このCPU RESET信号は、リセット状
態に両方のCPUs12のCPUクロック同期FIFO
s102を同様に保持し、それらの記憶キュー126
(図11)、及びプッシュ及びプル・カウンタ128,
130を既知の状態に置く。ステップ962では、SY
NC CLK970信号の時間t3 で、CPUs12
A,12Bとルータ14A,14Bとの間の記号送信を
伴う送信機クロック信号(T_Clk)は、一時的に停
止される。ステップ963(時間t4 )で、CPUs1
2及びルータ14A,14Bは、RESET信号をディ
アサートし、かつCPUs12A,12B及びルータ1
4A,14Bのクロック同期FIFOsは、それらのリ
セット状態から解放される。ステップ964(t5
で、ルータ14A及びCPU12は、T_Clkへの送
信を再開しかつリンク上の最大予想遅延(maximum expec
ted delay)に対する調整を許容するショート構成可能遅
延(short configurable delay)を始める。遅延の終り
で、ルータ14A及びCPUs12は、それらの対応ク
ロック同期FIFOsからデータをプルすることを再開
しかつ通常の動作を再開する。ルータ14Aのクロック
同期FIFOsは、(IDLE記号にRESETによっ
て予めセットされた)キューから記号をプルすることを
開始し、かつT_Clkは、キューに記号をプッシュす
ることを開始する。T_ClkでCPU12Aから受信
した最初の記号は、例えば、付随T_Clk信号でキュ
ー位置0(またはプッシュ・ポインタ・カウンタがリセ
ットされた値により指し示された他の位置)においてク
ロック同期FIFOにプッシュされるということに注目
する。同様に、CPU12Bからの最初の記号は、FI
FOキューの位置にそしてまた位置0(またはRESE
Tによりプッシュ・ポインタ・カウンタがセットされた
他の位置)において配置される。ルータ14Aのクロッ
ク同期FIFOsは、ルータ14A及びCPUs12
A,12Bの間で、他のものに関して、一つの通信経路
に存在しうるいかなる遅延640を収容すべくここで同
期される。
【0213】同様に、同じ仮想時間において、両方のC
PUs12A,12Bのクロック同期FIFOs102
の動作は、再開され、それらをルータ14Aに同期す
る。また、CPUs12A,12Bは、READY記号
のためにSLEEP指令記号を送ることを中止して、適
当なときに、メッセージ・パケット送信を再開する。そ
れは、ルータ14Aに対する同期処理を終了する。しか
しながら、処理は、ルータ14Bに対しても実行されな
ければならない。それゆえに、CPU12Aは、ステッ
プ952に戻りかつ今回はルータ14Aの代わりにルー
タ14Bでステップ952−966を再び実行し、その
後全てのCPUs12A,12B及びルータ14A,1
4Bは、周波数封じ込みモードで動作すべく初期化され
る。デュプレックス・モード動作に対して残っているも
のは、二つのCPUs12A,12Bを同じ動作状態に
置き、かつ本質的に同じ瞬間にそれらに同じ命令を実行
する。再統一と呼ばれる、二つのCPUsを同じ動作状
態に置くことは、以下に説明する。しかしながら、ま
ず、CPUs12A,12Bがデュプレックス・モード
で動作していると想定して、デュプレックス動作からC
PUsの発散を結果として生ずる、可能な誤りを検出し
かつ処理するために用いる方法及び装置を説明する。
【0214】発散検出及び処理:デュプレックス・モー
ド動作は、CPUレベルでフェイル機能的フォルトトレ
ラントを実施する。一対のデュプレックスされたCPU
s(例えば、システム10のCPUs12A,12B
− 図1)の各々は、他の実質的に同一複製(コピー)
であり、状態及びメモリ内容を含み、かつ両方ともに、
実質的に同時に、同一命令ストリームの同一命令を実行
し、論理的、フォルトトレラントCPUを形成する。C
PUs12A,12Bの一つまたは他のものの故障(fai
lure) は、そのフォルト(故障)が検出されかつ適切に
処理される限り − システム10の動作を停止、また
はスローダウンすらしない。故障しているCPUの検出
は、デュプレックス・モード動作の明らかな結果(帰
結)を用いる:両方のCPUs12A,12BのI/O
出力は、適切なデュプレックス・モードに対して記号毎
に同一である。それゆえに、適切な継続デュプレックス
動作を確信するためになされることが必要な全てのこと
は、デュプレックスされたCPUsのI/O出力を記号
毎に比較することである。故障しているCPUは、他の
動作の状態から発散し、結果的にその発散は、CPUs
のI/O出力にそれ自身を明らかにする。
【0215】図47は、ルータ14A,14Bで発散を
最初に検出するために用いる手順を示し(ステップ10
00,1002)、次いで、できるだけ早く故障してい
るCPUを終了すべく優雅なマナーでその発散を処理
し、かつシステム10の残りに不良データを伝播するこ
とからそれを排除する。それゆえに、図47のステップ
1000は、一つの論理CPUとしてロック−ステップ
同期で動作するCPUs12A,12B(図1)のデュ
プレックスされたペアを有する。周期的に、CPUs1
2Aは、サブ−プロセッサ・システム10A,10Bの
一つまたは他の周辺装置向けメッセージ・パケットを介
してI/Oデータを送信する。出力メッセージ・パケッ
トの宛先により、ステップ1002は、ルータ14Aま
たは14Bの一つがそのI/Oデータを受信しているの
を見て、それが受信されたならばCPU12Aからのメ
ッセージ・パケットの各記号をCPU12Bからのもの
と比較する。比較は、通常設計の比較回路(図示省略)
によりCPUs12A,12BからI/Oを受信すべく
接続されたポート入力5024 及び5025 の入力論理
回路505の出力で行われる。受信した記号が同じであ
るならば、手順は、ステップ1000及び1002に残
る − 適切な動作を示す。
【0216】比較ステップ1002が異なる記号を検出
したならば、ルータ14の比較回路(図示省略)は、ル
ータ制御論理回路509にERROR信号を発行し、発
散を検出しているルータ14が両方のCPUs12A,
12BにDVRG指令記号を送信するステップ1004
に処理を移動させる。好ましくは、ルータは、発散を知
らせることとどのCPUが継続するものであるかを知ら
せることとの間の時間を最小にすべくDVRG記号を送
る前にできるだけ長く待つ。脇道にちょっとそれて、発
散を検出するこの技術によって達成される求められた多
数の対照的ゴールを説明することは、この地点で利点的
でありうる:まず、ルータ14Aまたは14Bは、シス
テムの残りへの誤りの伝播を防ぐために速やかな措置を
とることが必要である。それゆえに、発散が検出された
にもかかわらず、ルータは、メッセージ・パケットの終
了記号を除いて、その指定された経路にメッセージ・パ
ケットを継続するかまたは送る:状態記号、“このパケ
ットは、不良”(TPB)または“このパケットは、良
好”(TPG)状態記号。この記号なしで、ダウンスト
リーム(下流)宛先は、受信したメッセージ・パケット
を用いない。
【0217】第2に、できるだけ少ないメッセージ・パ
ケットが分断されなければならない。以下に更に説明す
るように、CPUs12A,12Bの一つは、“気に入
った”または主CPUと指定され、かつCPUsがデュ
プレックス・モードで動作しているときに、ルータの気
に入ったCPUからのメッセージ・トラフィックだけが
送信される。分断は、もしあれば、どのCPUがフォル
トでありうるかの、決定を行うことができるまで、発散
を検出するにもかかわらず、ルータにメッセージ・パケ
ットを送信することを終了させることによって最小にさ
れる。気に入ったCPUでないならば、メッセージ・パ
ケットは、終了記号の送信によって解放される − こ
の場合TPG記号。第3に、発散を検出しているルータ
は、どの誤りが発散を生成するためにトランスパイアさ
れた(transpired)かを正確に決定することが必要であ
る。それは、これに簡単なリンク誤り、リンク−レベル
“キープアライブ”記号の損失、及びCRC誤りを探さ
せる。CPUs12は、それらが、発生すべきリンク−
レベル・キープアライブ・タイム・アウトに対してDV
RG記号を受信した後に十分な時間を許容する。(簡単
なリンク誤りも検出することなく)発散を検出している
ルータは、DVRG記号で発散を知らせる前にメッセー
ジ・パケットの終りを待つことによって受信したメッセ
ージ・パケットのCRCを検査する時間をそれ自身が買
う。
【0218】最後に、かつ第4に、システム10は、T
Netトランザクション・タイムアウトまたは支持不可
能I/O遅延をもたらすことを回避するためにショート
・バウンディド(short bounded) 時期に発散処理を終了
しなければならない。このゴールは、CPUからのメッ
セージ・パケットの結論を待つことがかなりの量の時間
を費やすように、(終了状態記号の送信を見合わせるこ
とにより)メッセージ・パケットの解放の保持とある程
度矛盾する。しかしながら、そのような遅延は、メッセ
ージ・パケットを送信するためのCPUに対する最悪ケ
ース時間(worstcase time) が保証されるならば、TN
etタイムアウトをもたらすことができない。CPUs
12は、DVRG記号の受信により、それぞれが、その
内でCPUs12がそれらのいずれが故障したかを決定
することを試み、かつ動作を終了し、かつそれらのどれ
が継続すべきかを決定することを試みる所定時期を制定
するために用いられるタイマーをスタートする(ステッ
プ1006)。更に、両方のCPUs12A,12B
は、両方のルータ14A,14BにDVRG指令記号を
エコーバックする。このエコーバックされたDVRG記
号を受信する、ルータ14A,14Bが発散を検出しな
いか、またはDVRG記号を予め見ていないならば、そ
れは、DVRG記号をCPUsにもエコーバックする。
この方法でDVRG指令記号をエコーバックすること
は、CPUs12及びルータ14A,14Bが全てDV
RG記号を見ておりかつ可能な発散に気付いていること
を確実にする。
【0219】一度、発散が検出され、CPUs(または
ルータ)の一つの故障が示されることが全ての考慮した
もの(CPUs12A,12B及びルータ14A,14
B)に対して明瞭であるならば、その故障のあらゆる結
果が、不良データの形で、システム10の残りに伝播さ
れないということを確実にするために配慮が払われなけ
ればならない。同時に、システム10は、フォルトのト
レラントでありかつ走行し続けなければならない。それ
ゆえに、(CPUsからの)出力パケット送信は、ルー
タが発散を検出と同時にCPUsからくるメッセージ・
パケットが良好か不良かを決定することができるまで、
少なくとも部分的に、続けなければならない。更に、発
散をもたらした(divergence-causing)CPUは、決定さ
れ、かつ透過的に(即ち、外部干渉なしに)システムか
ら除去されなければならない。この後者のタスクは、C
PUs12の責任であり、一度発散及びあらゆる誤りが
CPUs12に知らされたならば、それらは、それらの
どれが動作を続け、どれが更なる動作を終了しかつそれ
によってシステム10からそれ自身を効果的に除去する
かそれら自身の間で決定しなければならない。
【0220】それゆえに、発散ルーチンのステップ10
06は、CPUs12A,12Bの各々にそれらに供給
された種々の誤り表示を解析させる;この誤り解析は、
以下に更に説明する。しかしながら、ちょっとの間、不
良データの伝播を制限すべく発散を検出したルータ14
の機能は、説明を必要とする。DVRG記号がルータ1
4から発行されたか、または受信された後、CPUsか
ら受信しかつ発散が検出されたか、またはDVRG記号
が受信されたときに送られる処理で受信した全ての更な
るメッセージ・パケットは、パケットを終了する状態記
号を除き、ルータを通過される;即ち、TPG(このパ
ケットは、良好)またはTPB(このパケットは、不
良)状態インジケータ記号。デュプレックス動作の間
中、上記で簡単に説明したように、ルータ14A,14
Bの各々は、制御論理回路509(図27)に含まれる
構成レジスタ(図示省略)にセットされたビット位置の
側に“気に入った”CPUを有すべく構成される。デュ
プレックス動作では、ルータは、の気に入ったCPUか
ら受信したメッセージ・パケットを再送信する;他のま
たは“気に入らない”CPUからのメッセージ・パケッ
トは、発散検出に対してだけ用いられる。ルータは、T
PG/TPB状態インジケータ記号を後ろに追加するこ
とによりパケットを“解放する”前に(ステップ101
4)、それらのどれが動作を継続するか、どのルータ1
4A,14Bが知らされるか(ステップ1012)とい
うCPUsによってなされた決定を待たなけらばならな
い。ルータが気に入ったCPU12が継続すべく決定さ
れたものであることを知らされたときに、ルータは、T
PG状態インジケータ記号を追加しかつ送ることによっ
てメッセージ・パケットを解放する。逆に、ルータが別
を、即ち、それが継続する気に入ったCPUでないこと
を、知らされたならば、メッセージ・パケットは、TP
B記号を追加することによって廃棄される。
【0221】損失するデータの量を制限するために(上
記第2のゴール)、二つのルータは、ことなる好み(fav
orities)で構成される(例えば、ルータ14Aの好みが
CPU12Aであり、ルータ14Bの好みがCPU12
Bである)。続けて、一度、検出された発散がCPUs
12A,12B及びルータ14A,14Bにブロードキ
ャスト(放送)されたならば(ステップ1004)、C
PUs12A,12Bの各々は、発散のフォルトがどこ
にあるかをそれぞれ個別に決定しようとしてステップ1
006で状況(状態)を評価し始める。一度、CPUs
12A,12Bのどれが故障したかが決定されたならば
(ステップ1008)、そのCPUは、それ自身の動作
を終了し(ステップ1012)、シンプレックス・モー
ドにもかかわらず、動作を継続すべく他のものを残す。
CPUs12A,12Bがそれらのどれがフォルトであ
りうるかを検出されたかまたは報告された誤りから決定
することができない場合には、それらは、各CPUのイ
ンターフェイス装置24の構成レジスタ74(図9)の
一つに含まれる“タイ・ブレーカー”ビットに頼る(ス
テップ1010)。ステップ1006にちょっと戻る
と、CPUs12A,12Bの故障しているものがどれ
であるかの決定は、CPUs12A,12Bとルータ1
4A,14Bをリンクしている通信経路上にどの誤りが
検出されたかに主に基づく。ルータ14A,14Bが発
散に気付いた後、それらの各々は、上述したように、通
常の動作を継続する:発散を示している記号差が検出さ
れたか、またはその後受信されたときにCPUs12
A,12Bからルータ14A,14Bによって受信した
単一メッセージ・パケットは、終結状態インジケータ記
号を除きルータを通過される。両方のルータ14A,1
4Bは、例えば、検出されたCRC誤り、指令記号誤
り、またはリンク誤りの他の型のような、可能リンク・
プロトコル誤り及び/又は違反に対して特定のルータ1
4をCPUs12に相互接続している通信経路(TNe
tリンクL)を監視し続ける。そのような誤り/違反が
リンクL(例えば、リンクLx − 図1)上で検出さ
れたならば、検出ルータ14A,14Bは、This
Link Bad(このリンクは不良)(TLB)記号
をそのリンク(Lx)上のCPUに送り戻す。同時に、
検出ルータは、Other Link Bad(他のリ
ンクは不良)(OLB)記号を(他のリンク、Ly上
の)他のCPU12にも送り戻す。それにより、両方の
CPUs12は、ルータ14A,14Bの一つへの通信
経路(リンク接続Lx)、またはそのリンクに関連した
何かが故障でありかつ信頼できないという事実を気付か
される。それは、どのCPUが動作を終了すべきかを決
定することを試みるために、ステップ1006で、CP
Usが用いる情報であり、シンプレックス・モードにも
かかわらず、他のCPUを機能し続けさせる。CPUs
は、この誤り情報を累積し、以下の表7に示したものに
類似する表を生起する。
【0222】
【表7】 表 7 局所ルータ 遠隔ルータ 局所CPUのアクション (1) 誤りなし 誤りなし 主に継続;代替は終了 (2) 誤りなし TLB又は誤り 終了 (3) 誤りなし OLB 継続;他のCPUは終了 (4) TLB又は誤り あらゆる状態 終了 (5) OLB あらゆる状態 継続;他のCPUは終了
【0223】表7は、CPUによって検出されうるかま
たはそれに報告されうるし、かつそれによりCPUが発
散を知らされたにもかかわらず何をするかを決定しうる
5つの可能条件を示す。表7に用いたように、“局所”
は、CPUとして同じサブ−プロセッサ・システム10
A,10Bに含まれたルータ14A,14Bを称するこ
とを意味する。例えば、図1を参照すると、ルータ14
Aは、CPU12Aに対して“局所”であるが、CPU
12Bに対して“遠隔”である。表7に用いたように、
“Primary(主)”は、上記したタイブレーカー
・ビットを称する:各CPUのインターフェイス装置2
4(図9)の構成レジスタ74の一つに含まれるビッ
ト。第1の状態にセットされたときに、その特定CPU
12は、それにより、主(1次:primary)とし
て識別され、逆に他のCPU12は、それが“代替”で
あることを示すべく反対の状態にセットされたその同じ
構成ビットを有さなければならない。これらのビット
は、CPUsの別のものがその決定をすることができな
いときに継続すべくCPUsの一つを選択するために発
散処理の間中に用いられる。局所ルータが誤りなしを報
告する全ての場合に、CPUsは、決定を行うことを遅
延することに注目する。これは、他のCPUが誤りを検
出しかつ自己検査しえたし、かつ局所ルータがキープア
ライブ記号の損失を実質的に検出し、かつOLB記号に
より局所CPUに誤りを報告するという可能性を許容す
る。
【0224】“Any Status(あらゆる状
態)”は、それをちょうどを称する:遠隔ルータからの
報告のいかんを問わず(誤りの表示、または誤りの無表
示)、局所CPUは、見出し“Action of L
ocal CPU(局所CPUのアクション”の下に示
されたアクションを行う。“Action of Lo
cal CPU”は、CPUs12A,12Bの特定の
ものによって取られたアクションを表わし、表の行の一
つに示されたようにその特定CPUによって見られた条
件を与える。例えば、行4にセットされた条件がCPU
12A(ルータ14Aが誤りを報告したか、またはCP
U12Aが誤りを検出した)によって見られたならば、
CPU12Aは、それがデュプレックスされたペアの他
のもの、CPU12B、に動作を継続させるために、動
作を終了すべきという決定を行う。逆に、行4の条件
は、他のCPU12Bは、OLB記号をその“遠隔”ル
ータから受信することを示し、ルータ14AとCPU1
2Aとの間の通信経路が疑わられるという事実を知らせ
ている。CPU12Bの視点から、これは、行3または
5によって表された条件でなければならない。ルータ1
4A,14Bの一つだけ(この場合には、ルータ14
A)が誤りを検出したならば、行3表示がCPU12B
に与えられる。両方のルータ14A,14Bが誤りを検
出した場合には、それぞれは、TLBをCPU12Aに
かつOLBをCPU12Bに知らせる。CPU12B
は、ルータ14BからOLBを見て、これを行5条件に
マッチし、IOY記号をルータ14Bに発行して、継続
する。
【0225】表7の行4及び5は、ある問題を許容しう
ることに注目する。例えば、ルータ14AがTLBをC
PU12Aに知らせかつルータ14BがTLBをCPU
12Bに知らせたならば、両方のCPUは、それら自身
を殺す(凍結する)。しかしながら、両方の局所ルータ
が誤りを生起することが起こりえない場合のような、変
わった想定ではない、ほとんどの場合一つのフォルトだ
けが所与の時間に発生すると想定したならば、表7の条
件は、受容可能である。さもなければ、ルータ14とC
PU12との間の二つ以上のリンク上の多重誤りが発生
するならば、システムは、生き残る必要がない。同様
に、両方のルータがOLBsをそれらの局所CPUsに
知らせたならば、両方のCPUsは、取って代わること
を試みるであろう。これは、クロック故障を表わす傾向
がある。クロック回路は、そのような誤りを検出しかつ
故障しているCPUを凍結すべきである。従って、表7
は、CPUs12及びルータ14A,14Bが検出でき
る誤り表示を表わす。一般に、CPU12がその局所ル
ータから誤り表示を受信したならば、それは、ペアの他
のものを継続させるために動作を終了する。主/代替指
定に頼ることは、いずれのCPUも、(DVRG指令記
号の受信により始動された)各CPUのタイマーの期間
満了においていかなる種類(行1、表7)の誤り表示を
受信しないときにだけ生じる。この場合には、各CPU
の主構成ビットに頼ることによりタイ(tie) がブレーク
される。主として識別されたものは、継続しかつ他のも
のが終了されたと想定する;それ自身の構成ビットによ
り代替と識別されたCPUは、その動作を終了する。
【0226】それゆえに、CPUs12は、どれが継続
し、かつどれが継続しないかの決定を行い(ステップ1
008)、次いで、ステップ1006,1010の一つ
においてなされた決定により一つのCPUが終了するス
テップ1012に続く。終了するCPU12は、自己検
査及び凍結を誘導することによってそのようにする。継
続しているCPUは、ルータが継続シテイルCPUだけ
を頼り、他のCPUからの全ての送信を無視すべきであ
るということをそれらに報告すべくIOY記号(I O
wn You)をルータ14A,14Bに送る。それに
応じて、制御及び状態装置509(図27)内の状態マ
シン(図示省略)は、上述した“気に入った”ビットを
変える。2〜3の例は、発散の概念を理解することを容
易にする。図1を再び参照して、CPUs12A,12
Bがデュプレックス動作モードで動作し、CPU12A
が全ての後続I/O動作がCPU12Bのものとは異な
るようにフォルトを被ることを想定する。従って、次の
I/O送信で、ルータ14A,14Bの一つ(データが
指向されるもの;または故障がCPU12Bのものとは
異なる宛先にI/Oを指向しているCPU12Aを有す
るならば両方)は、発散を検出する。しかしながら、そ
れらは、上述したように、パケット全体が現在のメッセ
ージ・パケットCRC検査が通るかどうかを決定すべく
受信されるまで、または簡単な誤りに出会うまで、待
ち、その時に各ルータが両方のリンクL上のDVRG記
号を送信する。両方のルータはプロトコル誤りを見る
(理解する)と想定する。検出されたプロトコル誤り
は、両方のCPUs12にDVRG記号を送っているル
ータ14A,14Bをすぐに結果として生じ、誤りが検
出されたことによりリンクL上にThis Link
Bad(TLB)記号を送り戻す、即ち、リンクLx,
Lyは、ルータ14A,14Bを、それぞれ、CPU1
2Aに接続している。それらがTLB記号を送ると同時
に、両方のルータ14A,14Bは、Other Li
nk Bad(OLB)記号をCPU12Bに送る。C
PU12Aは、DVRG記号の受信により、その記号を
ルータ14A,14Bにエコーバックし、その内部発散
処理タイマーをスタートし、継続すべきか終了すべきか
の決定を始める。その局所ルータ14AからTLBを受
信して、CPU12Aは、それがCPU12Bの継続を
許容するために終了しなければならないということをす
ぐに決定する(行4、表7)。
【0227】更に、このシナリオにおいて、CPU12
Bは、両方のルータ14A,14BからOLB記号を受
信しかつそれが継続すべきCPUであることを報告する
それらから決定する。従って、IOY記号を両方のルー
タ14A,14Bに発行する。それに応じて、ルータ1
4A,14Bは、CPU12Bによるパケット送信だけ
が実行され、かつCPU12Aからの送信が無視される
ようにそれら自身を構成する。また、発散検出は、故障
しているルータを検出しうる。例えば、ルータ14A
は、それに発散作用を実行させるような方法で故障し、
二つのCPUs12A,12Bを発散されると想定す
る。良好なルータ、ルータ14Bは、この発散を検出
し、かつCPUsのそれぞれにDVRG記号でそれを知
らせる。各CPUは、両方のルータ14A,14BにD
VRG記号をエコーバックする。特定のルータ14Aの
故障により、それは、DVRG記号をCPUsにエコー
バックしうるしまたはしえない。CPU12Aは、それ
がそれを故障したルータ14Aに接続しているその局所
リンクに誤りを有することを見出し、それゆえにそれ
は、それが自己検査しかつ終了しなければならないこと
を決定する。逆に、ルータ14Bは、この終了を検出
し、かつTLB記号をCPU12Aに、かつOLB記号
をCPU12Bに戻す。次いで、CPU12Bは、両方
のルータにIOY指令記号を発行する。
【0228】上述したのは、ルータ14A,14Bの一
つまたは他のものまたは両方が発散を検出し、CPUs
にDVRG記号を発行するが、CPUs12A,12B
またはルータ14A,14Bのどちらも誤りを検出しな
いような“クリーン”発散であった。従って、“主”C
PUは、初期化の間中に構成レジスタに予めセットされ
たように、それが継続しかつ両方のルータ14A,14
BにIOY記号を発行しなければならないことを決定す
る。同時に、“代替”CPU12Bは、自己検査し、か
つ終了する。上述したものに加えて、発散をもたらすこ
とができる誤りまたはフォルトの型は、以下のものを含
む: − 訂正不可能なメモリ誤り、誤りの可能な伝播を排除
するためにCPUに動作をすぐに凍結させる。CPU
は、ルータ14A,14Bに対して死んだように見え、
それらにTLB記号を機能CPUへ、かつOLBを他の
(稼動している)CPUへ送らせる。稼動しているCP
Uは、それが継続することを決定し、かつIOY記号を
両方のルータ14A,14Bへ送る。 − 報告された誤りなしでCPUs12を発散させるソ
フトウェア欠陥。これは、(プロセッサ20上で走って
いる)ソフトウェアが、状態を変更すべく既知の発散デ
ータを用いるときにのみ発生することができる。例え
ば、各CPU12が異なる通し番号を有するものと想定
する(例えば、アドレス空間の読取り専用またはプログ
ラマブル読取り専用領域に保持される)。CPU12A
の通し番号は、CPU12Bのものとは異なる。プロセ
ッサが、(例えば、通し番号がある値の後にくるならば
ブランチングにより)実行される命令のシーケンス(順
番)を変えるために、またはプロセッサ・レジスタに含
まれる値を変更するために通し番号を用いるならば、C
PUs12の完全な“状態”は、異なる。そのような場
合には、“非対称変数”機構(例えば、ソフト・ヴォー
ト機構)が用いられる。これは、それらが、同一の決定
を行いかつ同一のデータに基づき同一の動作を実行する
ことができるように、二つのCPUs12に情報を交換
させる。この例では、CPUsは、両方がコピーを有す
るようにそれらの通し番号の値を交換する。次いで、C
PU12Aの通し番号がある値の後にきたならば、それ
らは、コード(符号)を実行し、このシーケンスを実行
する、等。主CPUの所定の構成、及び最終選択は、単
に一つのCPUに、及びそれによりシステム10に、ソ
フトウェア介入なしで、処理を継続させる。
【0229】− CPU12のインターフェイス装置2
4の出力における誤りは、誤りが発散として発生するリ
ンクLにより、ルータ14A,14Bによって検出さ
れ、かつTLB/OLB状態は、CPUsに戻され、D
VRG記号が後に続く。CRC誤り、及び指令記号汚染
は、同様に検出及び処理される。 − CPU12に接続するルータ14A,14Bの出力
上の誤りは、影響を及ぼされたCPUのインターフェイ
ス装置24によって検出される。CPUは、故障してい
るルータ14にTLB記号を送り、図45及び図46の
発散処理ルーチンを起動すべくそのルータによる発散と
して検出される。誤りを検出しているCPUは、終了
し、かつ継続しているCPUは、両方のルータにIOY
記号を送る。発散は、システム10(図1)に、デュプ
レックス・モード動作で動作しているときに、可能な故
障を検出させ、かつ外部介入なしで、かつシステム・ユ
ーザに透過的に、ユーザ・オペレーションを停止させる
ことなくシステムへの誤りの伝播を未然に防ぐかまたは
制限すべくシステムから故障している装置(CPUs1
2Aまたは12B、またはルータ14A,14B)を除
去させる。故障したのがCPU12であったならば、C
PUは、回線からはずされ、かつ検査済みの、機能する
CPUで置き換えることができる。デュプレックス動作
において、その代替装置(replacement) をオン・ライン
に戻すことが次のセクションの主題である:再統一。
【0230】再統一: − 概要 このセクションは、“再統一(reintegration) ”を通し
て二つのCPUs12をロック−ステップ、デュプレッ
クス・モード動作に至らせるために用いる手順を説明す
る。説明は、図1に示された処理システム10の部分を
形成しているCPUs12A,12B、ルータ14A,
14B、及び保守プロセッサ18A,18Bを参照す
る。更に、説明は、それらが機能する方法であるので、
単一装置としてプロセッサ20a,20b、インターフ
ェイス装置24a,24b、及びCPUs12A,12
Bのメモリ・コントローラ26a,26b(図4)を参
照する。再統一は、最初にオンラインにもってこられた
か、またはある時間シンプレックス・モードで動作した
後、またはシステム10の先のデュプレックス・モード
動作が発散を結果として生じ、かつ故障している素子
(例えば、CPUsの一つ)が除去されかつ置換された
後に、デュプレックス・モード動作に二つのCPUsを
置くために用いられる。
【0231】再統一は、まだ動作している(即ち、オン
・ライン状態の)CPUs12の一つで始めなければな
らず、外部介入なしで、再統一がバックグラウンドで実
行され、従ってユーザに対して実質的に透過であるの
で、かなり確実にユーザ・アプリケーションを実行す
る。他のCPU12は、それがユーザ・コードを走らせ
ないという意味で、オフ・ライン状態である;それは、
それにその初期化及び再統一に要求される最低限のタス
クを実行させるべく十分なコードを走らせる。この初期
化は、それらが、事実上同時に同一命令ストリームの同
じ命令を実行することができるようにデュプレックス・
モード動作に対して事実上同じ状態に一対のCPUs1
2を配置することを含み、結果として同じアクションを
とる。また、再統一は、発散検出を実施することがで
き、かつCPUs12向けのメッセージ・トラフィック
が事実上同時にペアになったCPUsの両方に送付され
るように、ルータ14A,14Bがデュプレックス・モ
ード動作に対して構成されることを結果として生ずる。
図48〜図51のフロー図によってある程度より詳細に
概説された、一つのオン・ラインCPUのシンプレック
ス・モード動作から二つのCPUsのデュプレックス・
モード動作に変更するための処理における主要ステップ
は、一般に次の通りである: 1.遅延した(“シャドウ”)周波数封じ込み、デュプ
レックス・モード動作に、二つのCPUs(一つがオン
・ライン、他のものがオフ・ライン)及びそれらの接続
ルータをセットアップしかつ同期し、別個の(distinct)
命令ストリームを実行する; 2.オン・ラインCPUのメモリをオフ・ラインにコピ
ーし、実行されておらず、かつオフ・ラインCPUに、
コピーされることが必要でありうる、オン・ラインCP
Uのメモリにおける変化を監視するトラッキング処理を
維持する; 3.同じ命令ストリームからの遅延した(スレーブ)デ
ュプレックス・モードを走らせるべくCPUsをセット
アップしかつ同期する(ロック−ステップ動作); 4.オン・ラインCPUからオフ・ラインCPUに全て
の残っているメモリ位置をコピーする(このステップ
は、全てのメモリが読取られるまでオフ・ライン・メモ
リの各位置を読取り、かつオフ・ラインCPUのそれら
と異なると疑われるそれらのメモリ位置だけをコピーす
る);そして 5.二つのCPUsの完全ロック−ステップ、デュプレ
ックス動作を起動する。
【0232】− セットアップ ここで図48を参照すると、再統一手順が入力される前
に、CPUs12A,12B及びそれらの最初の回線ル
ータ(即ち、CPUsに直接接続するもの)14A,1
4Bがセットアップされなければならない。これは、M
P18Aの使用を含む。ステップ1050では、MP1
8Aは、CPUs12A及び12Bのインターフェイス
装置24における制御レジスタ74の所定のレジスタ
(図示省略)を、両方のCPUsが周波数封じ込みモー
ドであるが、一つ(オフ・ラインCPU)は、遅延した
または“シャドウ”ファッションで動作し、他のものに
遅れて多数(例えば、8)のクロック・サイクルを動作
するような(ソフトウェア動作の後)次の状態に書込
む。CPUs及びルータのこの動作のモードは、以後
“シャドウ・モード(shadow mode) ”と呼ばれる。ルー
タの構成レジスタ(図示省略)も、ステップ1052で
MP18Aによって同様にセットされる。更に、構成レ
ジスタは、“気に入った”としてルータ14A,14B
へオフ・ラインCPU12Aを識別するためにMP18
Aによって書込まれる。これは、ルータ14A,14B
に、シャドウ・モードにおけるときに送信に対してCP
U12Aだけを頼らせて、オフ・ライン12Bから出う
る全ての送信を無視する。
【0233】次に、上述したのと同じようなファッショ
ンでCPUs12A,12Bのクロック同期FIFOs
とルータ14A,14Bを同期するシーケンスが入力さ
れ(ステップ1060−1070)、次いでそれらをシ
ャドウ・モード動作に移動する。シャドウ・モード動作
は、オフ・ラインCPU12Bに送られた送信が記号毎
にオン・ラインCPU12Aに送られたものに多数(例
えば、8)のT_Clkクロック遅れるということを除
き、二つのCPUs12A,12Bが真性デュプレック
ス・モード動作で機能しているときと同じようなファッ
ションで、ルータ14A,14Bから同じメッセージ・
パケット及び他のTNet記号を受信する ようなもの
である。即ち、ルータ14A,14Bの一つから送信さ
れる記号は、その同じ記号がオフ・ラインCPU12B
によって受信される8T_Clkクロック前にオン・ラ
インCPU12Aによって受信される。ステップ106
0及び1062は、クロック同期FIFOsを同期する
ために図45、46の説明に関連して上述したのと同じ
ステップを基本的に実行する。オフ・ラインCPU12
Aは、SYNC CLK信号で、CPUs及びルータを
同期すべく動作する、SLEEP記号、自己アドレス指
定されたメッセージ・パケット、及びSYNC記号のシ
ーケンスを送る。一度そのように同期されると、オフ・
ラインCPU12Aは、次に、ステップ1066で、ス
テップ1052でMP18Aによってセットされた次の
状態にルータをまず移動すべく動作する、Soft R
eset(SRST)指令記号を送る。ルータ14A,
14Bは、いま、オン・ラインCPU12Aへ送られた
全てのトラフィックが複製されかつオフ・ラインCPU
12Bへも送られるが、オン・ラインCPU12Aへ送
られたものに8クロック遅れるように送られるような、
遅延したデュプレックス・モードである。更に、ルータ
14A,14Bは、メッセージ・パケットを受信するの
にオン・ラインCPU12Aだけを頼るべくセットさ
れ、かつオフ・ラインCPU12Bからのあらゆる送信
を廃棄する。
【0234】SRST記号は、CPUs12A,12B
にエコーバックされる(オフ・ラインCPU12Bへの
SRST記号が8クロック遅れで)。CPUs12A,
12Bによる受信により、CPUsは、MP18Aによ
ってセットされた次の状態動作モードへ移動される:シ
ャドウ・モード。手順は、いま、メモリがオン・ライン
CPU12Aからオフ・ラインCPU12Bにコピーさ
れている間に行われるメモリ及び状態(例えば、レジス
タ、キャッシュ、等)の監視をセットアップすべくステ
ップ1080(図49)へ移動する。オン・ラインCP
Uの状態をオフ・ラインCPUにコピーするステップ
は、オン・ラインCPUの全ての進行中の動作を停止
し、全ての構成レジスタ及び制御レジスタ(例えば、イ
ンターフェイス装置24の構成レジスタ74)、キャッ
シュ等をオン・ラインCPUのメモリ28に書込み、メ
モリ28の全内容をオフ・ラインCPUにコピーし、か
つそれらを一緒に持ち出すリセット・ルーチンに両方の
CPUsを移動する(vectoring) ことによって単に達成
されうる。しかしながら、大きなシステムに対して、こ
れは、達成するために数十秒またはそれ以上を費やしう
るし、再統一のためにシステム10をオフ・ラインする
のに受容できない時間の量である。この理由により、再
統一処理は、オフ・ラインCPUに状態をコピーする動
作のほとんどがバックグラウンドで行われる間にオフ・
ラインCPUにユーザ・アプリケーション・コードを実
行することを継続させる方法で実行される。
【0235】しかしながら、オン・ラインCPUがユー
ザ・アプリケーション・コードを実行し続けるので、ど
ちらかと言えば、オフ・ラインCPUへの状態のコピー
の間に、オン・ラインCPUのメモリ28のセクション
は、コピーされた後で変更され、それゆえにコピー・メ
モリの最初のパスの結果で、オン・ラインCPUメモリ
は、オフ・ラインCPUのそれに一致しない。これに対
する理由は、オン・ラインCPUのプロセッサ20によ
る通常の処理は、それがオフ・ラインCPUにコピーさ
れた後でメモリ内容を変更することができることであ
る。(オン・ラインCPU12Aのメモリ28へのI/
O書込みは、それらがオフ・ラインCPU12Bに対し
てもなされるのでCPUs12A,12Bのメモリの内
容を一致させないようにすべくコピー手順に影響を及ぼ
さない。)再統一の間にこの問題を処理するために二つ
の機構が用いられる: まず、再統一処理の間中にメモ
リ位置がオン・ラインCPU12Aに書込まれたとき、
それは、“汚れた(dirty) ”とマークされる;第2に、
オフ・ラインCPUへのメモリの全てのコピーは、コピ
ーが確認される前に書込まれる(理解されるように、コ
ピーされたメモリ位置を上書きする)ことからオン・ラ
イン・メモリのデータを保護すべくコピーされるメモリ
位置を監視する“アトミック・ライト(AtomicWrite) ”
機構によって実行される。両方の機構は、再統一手順の
間だけ用いられ、かつ両方の理解は、メモリ・プリ−コ
ピー及びオン・ラインCPUからオフ・ラインCPUへ
の状態の後続コピーの適切な理解を容易にする。
【0236】− メモリ・マーキング メモリを“汚れた”とマークすることは、特にこの目的
のためにECC検査ビットの一つの使用を含む。64ビ
ット・データ語は、単一ビット誤り訂正、各記憶された
語に対する二重ビット誤り検出を供給すべくECCコー
ドの8ビットで記憶されるということが思い出される。
ECCの8ビットの一つの使用は、1ビット訂正能力
(機能)に影響を与えない。しかしながら、それは、2
ビット誤りを検出するための能力(機能)を制限しう
る。しかし、メモリ複写処理が比較的短い期間の間だけ
続くので、このリスクは、受容可能であると信じられ
る。再統一の間中に、オン・ラインCPU12Aによる
メモリ位置への各書込み動作は、その同じメモリ位置の
後の(later) 読取り動作に位置を汚れたとマークするよ
うに解釈される所定のECCシンドロームを導き出させ
るべくECC検査コードの1ビットを反転する。(例外
がある:オフ・ライン・メモリも同じI/Oデータで書
き込まれるので、第1は、入力I/Oの書込みである。
第2は、アトミック・ライト(AtomicWrite) 機構に関連
した書込み動作(“書込み条件付き(Write Conditiona
l) ”動作(operation) である。)この方法で、オフ・
ラインCPU12Bのメモリ28によって見られえない
オン・ラインCPU12Aのメモリ28の内容における
変化は、マークされ、かつそれらの位置をオフ・ライン
CPU12Bのメモリ28に続いてコピーすることによ
って“クリーン(clean) ”にされる。
【0237】ECCのどのビットがマーキングに用いら
れるかは、どのビットが用いられても一致して(矛盾し
ないで)もちいられるならば、事実まったくそんなに関
係ない。
【0238】− アトミック・ライト機構 オフ・ラインCPUへのオン・ラインCPU12Aの状
態のコピーは、ルータ14A,14Bの一つを介してT
Net構造を用いているメッセージ・パケット送信の使
用を含む。しかしながら、オン・ラインCPU12Aの
メモリ28へのI/O書込みがオフ・ラインCPU12
Bのメモリへもなされるようにルータ14A,14Bが
デュプレックス・モード動作にセットされるので、オン
・ライン状態を含んでいるメッセージ・パケットの転送
は、両方のCPUs12A,12Bへ同様に転送される
が、良好な使用にする:オン・ラインCPU12Aによ
る状態包含メッセージ・パケットの受信は、ルータ14
(14Aまたは14Bのどちらか用いられたもの)によ
るその誤りなし(error-free)受信及び再送信を確認す
る。また、それは、メモリ位置をクリーンにマークする
AtomicWrite (アトミック・ライト)の書込み動作であ
る。それゆえに、コピーされたメモリ位置は、それらが
含むデータが、それらをオフ・ラインCPUへ転送し、
かつそれが来たメモリへ書込まれる(戻される)メッセ
ージ・パケットに戻し受信されるまでクリーンとマーク
されない。この方法で、位置は、オフ・ラインCPUの
メモリへ成功裏にコピーされるという確認が行われる。
【0239】しかしながら、オフ・ラインCPU12B
へのコピーのためのオン・ラインCPU12Aのメモリ
位置の読取りと、オン・ライン・メモリへコピーされた
データの後続の書戻しとの間で、CPU12Aのメモリ
位置への別の書込み動作が行われると想定する(入力I
/O書込み、またはプロセッサ書込み動作のいずれ
か)。(オフ・ラインCPUへコピーされた)戻りデー
タは、それが最初にきた位置へ書込まれ、位置が含んで
いる新しい値がなんであろうと上書きし、位置を良好と
マークし、かつオン・ラインCPU12Aの進行中の動
作に必要でありうるデータを破壊する。この問題を未然
に防ぐために、AtomicWrite 機構がファッションされ
た。AtomicWrite 機構は、オフ・ラインCPU12Bへ
コピーされる処理においてメモリ位置を監視するために
オン・ラインCPUのメモリ・コントローラ26(図
4)を用いる。メモリ・コントローラは、オフ・ライン
CPU12Bへコピーするために読取られたが、それら
をクリーンとマークすべく戻りデータでまだ書込まれて
いない、それらのメモリ位置のアドレスを、それらのレ
ジスタにおいて、追跡すべく再統一の間に動作される一
組のレジスタ及び制御状態マシンを用いる。コピーされ
たデータのCPUへの戻りの前にリスト上の位置への
(戻されたもの以外の)データの介入書込みが存在する
と、リストは、それによってマークされる。コピーされ
たデータがオン・ラインCPUへ戻されるときには、そ
れがメモリに書込まれる前にリストは、検査される。位
置が合間(インターリム)に書込まれたとマークされた
ならば、戻りデータは、廃棄され、かつメモリ位置が汚
れたとマークされたまま残される。他方、オフ・ライン
CPU12Bへのコピーのために読取られているのでメ
モリ位置が書込まれていないならば、戻りコピー済みデ
ータは、位置へ書戻されかつそれらの位置がクリーンと
マークされる。
【0240】本質的に、AtomicWrite 機構は、二つの動
作を用いる:“ReadLinked(読取りリンクされた)”メ
モリ動作及び“WriteConditional(書込み条件付き)”
動作。ReadLinkedメモリ動作は、オフ・ラインCPU1
2Bへコピーされるべきメモリ28におけるオン・ライ
ンCPU12Aの位置を読取り、MC26によって保守
されるリンク表におけるその動作のアドレスを保管し、
かつそれがオフ・ライン(並びにオン・ライン)CPU
へメッセージ・パケットとしてアセンブリされかつ送ら
れるBTE88のキューにコピーされるべきデータを導
入すべく機能する。ReadLinked動作のアドレスを保管す
ることは、データをメモリ位置へ戻しかつリンク表のエ
ントリをクリアする、将来のWriteConditional動作にそ
れを“links (リンクする)”。一般に、動作は、通常
のブロック読取りであり、多数のメモリ位置からデータ
のブロックを生成する。リンク表に書込まれるアドレス
は、メモリ位置のブロックのヘッドまたはエンドにおけ
るメモリ位置のものである。コピーされたメモリ位置の
ブロックから読取られたデータを含んでいるメッセージ
・パケットがオン・ラインCPU12Aによって戻し受
信されたときに、それは、WriteConditional動作でメモ
リ28へ書込まれる。しかしながら、データが書戻され
る前に、MC26は、リンク表を検査する。ブロック内
のメモリ位置が別の動作によって書込まれたならば(例
えば、プロセッサ20による書込み、I/O書込み、
等)、その以前の書込み動作は、リンク表における位置
にフラグを立てる(並びに書込まれたメモリ位置を汚れ
たとマークする)。MC26は、フラグに気付き、かつ
それを書込むことなくWriteConditionalデータを廃棄
し、汚れたとマークされたメモリ位置をそのまま残し、
それらがまだオフ・ラインCPU12Bへコピーされな
ければならないことを示す。
【0241】再統一処理、及びここで図49に戻ると、
メモリ追跡(AtomicWrite 機構及びメモリ位置をマーク
すべくECCを用いて)は、ステップ1080及び10
82でイネーブルされる。これは、再統一(REIN
T)信号をアサートさせるために再統一レジスタ(図示
省略:インターフェイス装置24の構成レジスタ74の
一つ − 図9)を書込むことを必要とする。REIN
T信号は、WriteConditionals 以外の全ての書込み動
作、及び全てのI/O書込み動作、に対してECC論理
回路85によって生成されたECCの8ビットの一つを
反転するために各メモリ・インターフェイス70(図1
5)のECC論理回路85に結合され、それゆえに、連
続的に読取るときに、この反転されたビットを有するデ
ータは、汚れたとマークされているメモリ位置を識別す
るシンドロームを生成する。そのようにイネーブルされ
たメモリ追跡で、再統一手順は、オン・ライン・メモリ
の内容が、下から上へ(または、もし所望ならば上から
下へ)、最初のパスでオフ・ラインCPU12Bのメモ
リへコピーされる(ステップ1084)ような、“プリ
−コピー(pre-copy)”シーケンス(ステップ1084−
1088)へ移る。入力I/O及びAtomicWrite 機構以
外の書込み動作によって後で書込まれたメモリ位置は、
書込まれた位置を汚れたとマークするためにECCビッ
トを用いる。また、ReadLinked動作によってコピーされ
た後だが、後続のWriteConditional動作の前の、位置へ
のメモリ書込みも、マークされる。
【0242】メモリ28の全内容が一度走らされかつオ
フ・ライン・メモリへコピーされた後、シーケンスは、
オフ・ライン・メモリのそれに、即ち、ステップ108
4の結果で汚れたとマークされたままのメモリ位置に一
致しないかもしれないオン・ライン・メモリ位置の増分
コピーをここで実行すべくステップ1086及び108
8へ移る。増分コピーは、オン・ライン・メモリ全体を
通る多数のパスを含み、合成シンドロームを検査するた
めに各位置を読取る:位置がそれにより汚れたかまたは
クリーンかマークされる。汚れたとマークされたなら
ば、位置は、オフ・ラインCPUへコピーされ、かつク
リーンとマークされる。位置がクリーンとマークされた
ならば、そのまま残される。増分コピー動作全体を通し
て、オン・ライン・プロセッサの通常アクションは、あ
るメモリ位置を汚れたとマークする。増分コピーの多数
のパスは、汚れたメモリ位置がコピーされクリーンにさ
れる割合い(速度)がメモリが汚される割合い(速度)
と実質的に等しい点に達するまでステップ2052で終
了されることが必要である。これを行うために、カウン
タは、ReadLinked、WriteConditional、故障したReadLi
nked、及び故障したWriteConditional動作に対するMC
26に含まれる。メモリを通る各パスの終りでの成功し
たWriteConditional動作の数を注目することにより、プ
ロセッサ20は、先のパスと比較した所与のパスの影響
を決定することができる。利点が降下したときに、プロ
セッサ20は、プリコピー動作を諦める。この地点で再
統一処理は、二つのCPUs12A,12Bをロック−
ステップ動作に置くために準備する。
【0243】それゆえに、再統一手順は、ステップ11
00でオン・ラインCPU12Aがフォアグラウンド処
理、即ち、ユーザ・アプリケーションの実行を瞬間的に
停止する、図50に示されたステップのシーケンスに移
る。次いで、オン・ライン・プロセッサ20の残りの状
態(例えば、構成レジスタ、キャッシュ、等)及びその
キャッシュは、読取られかつメモリ28のバッファ(メ
モリ位置のシリーズ)に書込まれる(ステップ110
2)。次いで、その状態は、両方のCPUs12A,1
2Bのプロセッサ装置20をリセット命令に指向する
“リセット・ベクトル”と共に、オフ・ラインCPU1
2Bにコピーされる。次に、ステップ1106は、SL
EEP記号によってルータ14A,14Bを静止し、ル
ータのFIFOsがクリアであり、プロセッサ・インタ
ーフェイス24のFIFOsがクリアであることを確実
にすべく自己アドレス指定されたメッセージ・パケット
がそれに続き、そして更なる入力I/Oメッセージ・パ
ケットが今後来ない。ステップ1108では、オン・ラ
インCPU12Aは、SRST記号を両方のCPUs1
2A,12Bへエコーバックするルータ14A,14B
にSRST指令記号を送信する。エコーバックしている
ルータは、上述したスレーブ・デュプレックス・モード
でまだ動作しているので、オフ・ラインCPU12Bに
エコーバックされたSRSTは、オン・ラインCPU1
2Aへエコーバックされたその後まだ8クロックであ
る。エコーバックされたSRST記号は、各CPUのプ
ロセッサ装置20を、リセット・ベクトルを含むメモリ
28の位置へジャンプさせかつ プロセッサ装置2
0、キャッシュ22、レジスタ、等へ両方のCPUs1
2A,12Bの記憶された状態を復元するサブルーチン
を起動させるべく、受信されかつ両方のCPUs12
A,12Bにより作用される。次に、CPUs12A,
12Bは、同じ命令ストリームを実行し始める。
【0244】それゆえに、ステップ1112で、CPU
s12A,12Bは、まだシャドウ・モード動作であ
る、即ち、両方は、同じ命令ストリームを実行している
が、CPU12Bは、8クロック・サイクルCPU12
Aに遅れてそのように行っており、ルータ14は、CP
U12Bからの送信を無視すべくまだ構成される。CP
U12Aは、ユーザ・アプリケーションの実行を再開す
べくオン・ライン状態へ戻る。再統一手順は、図51に
示したような、“怠惰な再統一(lazy reintegration)”
と呼ばれる、再統一の最終ステージにいまここで入る。
汚れた位置をマークするためのECCビットのイネーブ
リングは、プロセッサが同じメモリに対して同じ事を行
っているので、いまここでディスエーブルされなければ
ならない。再統一手順のこのステップの間中、オン・ラ
インCPU12Aが、命令を実行しているときに(オフ
・ラインCPU12Bも実行している − 8クロック
の遅延にもかかわらず)メモリを読取っているときに汚
れたとマークされたメモリ28の位置に出会うときに
は、それは、“バス誤り(bus error) ”を起動する(ス
テップ1120)。このバス誤りの表示は、同じ命令に
対してオフ・ラインCPU12Bにバス誤りを強要すべ
く“ソフト−フラグ(soft-flag) ”論理回路素子900
(図44)の選択論理回路920を用いて、CPU12
Bへ送信される(ステップ1122)。図44をちょっ
と参照すると、REINTが、MUX914を介して、
バス誤りがCPU12Aによって出会ったことをCPU
12Bに知らせるためにCPU12BへのBUS ER
ROR信号を選択することをアサートしているというこ
とが理解できる。
【0245】その間に、CPU12Aのバス誤りは、
(1)誤りの原因及び(2)もし可能ならば誤りの処理
方法を決定すべくプロセッサ装置20を誤り−処理ルー
チンに強要させる。この場合、誤りが、汚れたとマーク
されたメモリ位置を読取る試みによりもたらされたとい
うことが決定される。従って、プロセッサ装置20は、
CPU12Bへメモリ位置の内容をコピーすべくAtomic
Write 機構を(BTE88を介して−−図9)起動す
る。次に、CPU12Aは、バス誤りをもたらした命令
を再実行し、かつ進む。CPU12Aに8クロック・ス
テップ遅れて動作しているCPU12Bも、CPU12
Aにバス誤りをもたらしった同じ命令の実行に先駆け
て、バス902を介してCPU12Aからのその誤りの
伝達によって強要されたバス誤りを有する。しかしなが
ら、CPU12Bがその命令を実行するときまでには、
バス誤りの表示は、CPU12Bへ伝達されかつ8クロ
ック後にCPU12Bの同じ命令と相関される。この相
関関係は、オン・ラインCPU12Aからオフ・ライン
CPU12Bへバス誤り信号をパスすることにおける遅
延を、CPUsへのルータ送信によって導入された8ク
ロック遅延(即ち、シャドウ・モードの8クロック遅
延)とマッチングすることによって達成される。しかし
ながら、CPU12Bは、CPU12Aが起動した同じ
バス誤り処理ルーチンを通って行くことを強要される。
ロック−ステップ同期動作に留まるために、オフ・ライ
ンCPU12Bは、バス誤りルーチン及び“汚れた”メ
モリ位置からルータへデータを送信することを含んでい
る、オン・ラインCPU12Aとまったく同じ動作のシ
ーケンスを実行する。ルータは、CPU12Bの送信を
無視するが、CPU12Bは同じ動作を行うためにCP
U12Aによって費やされたのと同じ時間の量を費やさ
なければならないということに留意する。
【0246】その間に、オン・ラインCPU12Aは、
CPU12Aのメモリ全体を通る一つの最後のパスを行
うためにある時間を割り当てて、ユーザのアプリケーシ
ョン・プログラマの実行を続けている間に、まだ汚れた
とマークされているそれらのメモリ位置にわたってコピ
ーする。この再統一の最後のステージの間中、メモリ全
体は、全てのメモリ位置を検査すべく読取られる。検査
されかつ汚れたとマークされるべきであることが見出さ
れた全ての位置は、オフ・ラインCPU、CPU12B
へコピーされる。最後に、CPUs12A,12Bの状
態は、二つのCPUsが真性の、遅延されない、ロック
−ステップ動作に置かれることができるように一致す
る。それゆえに、一度、本当に、全てのメモリが検査さ
れ、かつ必要ならば、コピーされるということがステッ
プ1124で決定されたならば、ステップ1128で
は、MP18は、制御論理回路509に含まれた構成レ
ジスタへ書込むことによってデュプレックスの次のモー
ド状態にルータ14Aをセットする。次に、CPU12
Aは、以前のようにSLEEP、自己アドレス指定され
たメッセージ・パケット・シーケンスを発行する。CP
U12Aがルータが静止状態であるということを確実に
したときに、CPU12Aは、SRST記号を両方のル
ータ14A,14Bへ送る(同時に)。ルータ14A,
14Bによるその記号の受信は、それがSRST記号を
二つのCPUs12A,12Bへエコーバックしたとき
に、それらが両方とも同時にエコーバックされようにそ
れらをデュプレックス・モードに移動する。SRST記
号がCPUs12A,12Bによっていま受信されると
きに、それらは、CPUsの両方のプロセッサ装置20
を、同じ仮想時間で同じ状態を有する同じ位置からスタ
ートすべくリセットさせる。CPUs12A,12B
は、いまロック−ステップ動作である。
【0247】追加機能低減コスト・デュプレックス・システム 図1〜図3をちょっとの間考慮すると、指摘されたよう
に、CPUs12A,12Bは、別々に、またはデュプ
レックスされたペアのいずれでも用いうる。前者の場合
には、各個別に動作するCPUの設計に用いた冗長は、
フェイル−ファースト・アーキテクチャを供給する。C
PUsは、フォルトトレランスに対してソフトウェア・
アプローチを実施すべく一つのCPUが“主(1次)”
CPUに、他のCPUが“2次”CPUに指定されるよ
うに(デュプレックスされるのではなく)ペアにされう
る。それゆえに、2次CPUは、主CPU上で走ってい
るユーザ・アプリケーションを利用可能であり、かつ主
CPUは、例えば、データ・ベースまたは更新時におけ
るその地点までの主CPUの処理の表示である監査ファ
イルを周期的に更新する。主CPUが故障したならば、
2次CPUがバックアッパ・アプリケーションを起動し
かつデータ・ベースまたは監査ファイルが最後に更新さ
れた時点から故障したCPUに取って代わる。これが、
ソフトウェア・フォルトトレランス・アプローチであ
る。
【0248】ソフトウェア・フォルトトレランス・アプ
ローチは、オペレーティング・システムによって一般に
実施される。頑強でなく、従って、この能力(容量)を
有していないようなそれらのオペレーティング・システ
ムに対しては、上述したデュプレックスされた動作のモ
ード(図1〜図3を参照)が与えられ、二つのCPUs
12を用いて同じ命令ストリームの同じ命令を実行すべ
く動作する。図52に示したのは、低減コスト・デュプ
レックスされたCPUsのペアであり、その一つが他の
冗長を有していない。しかしながら、図1〜図3を参照
すると、CPU12Aは、両方がデュプレックスされか
つロック−ステップ・モードで動作しているときに −
CPU12Aの個々のプロセッサ装置20a,20b
がCPUに対してフェイル−ファースト、フォルトトレ
ランスを供給するのと同じ方法で、CPU12Bに対す
る誤り検査冗長で動作することができるということに注
目する。それゆえに、図52に示したように、デュプレ
ックスされた動作に対して、低減コスト・システムが適
用可能である。図52に示したように、処理システム1
0’は、上述したように構成されたCPU12Aとルー
タ14A,14Bを含む。ここでCPU12B’として
示された、CPU12AがペアになるCPUは、しかし
ながら、単一マイクロプロセッサ・ベースCPUシステ
ムとして構成される。また、ルータ14A,14BとC
PUsとの間の接続は、同じである。
【0249】それゆえに、CPU12B’は、単一プロ
セッサ装置20’及び、キャッシュ22’、インターフ
ェイス装置(IU)24’、メモリ・コントローラ2
6’、及びメモリ28’を含んでいる、関連支持コンポ
ーネントだけを備えている。それゆえに、CPU12A
は、キャッシュ・プロセッサ装置、インターフェイス装
置、及びメモリ制御冗長を伴って、図4に示した方法で
構成されると同時に、それらのおおよそ半分がCPU1
2B’を実施するために必要である。動作において、C
PUs12A,12B’は、デュプレックス・モードで
動作され、それぞれが、同一の命令ストリームの、同じ
命令を実質的に同時に実行する。CPU12Aは、プロ
セッサ装置20及びCPUを構成する他の素子の複製を
通してフェイル−ファースト動作を供給すべく設計され
る。更に、発散に対してルータ14A,14Bによって
なされたデュプレックス動作及び検査を通して、CPU
12Aは、また、そのコンパニオンCPU、CPU12
B’に対するチェック・アップを供給する。ペアによっ
て形成された論理CPUは、発散がルータ14A,14
Bの一つによって検出されかつ発散の検出が故障してい
るCPUを停止すべく上述したように作用されるされる
ならば、残りのCPUsがアプリケーションを続行する
ことができるようなフェイル機能動作を供給する。
【0250】残りのCPUが12Aであるならば、CP
U12Aを構成する複製されたコンポーネントによる少
量のデータ・インテグリティがまだ存在する。生き残っ
ているCPUがCPU12B’であるならば、通常のフ
ァッションで実施された誤り検査(即ち、種々のインタ
ーフェイスでのパリティ検査)を除き、データ・インテ
グリティが欠けているということが認識される。図52
は、二つのCPUs12A,12B’から出力されたデ
ータの比較を実行すべく一対のルータ14A,14Bが
含まれて、処理システム10’が示されている。しかし
ながら、発散検査だけが実行されるべきであるならば一
つのルータ14だけが(例えば、ルータ14A)用いら
れるのが必要である。事実、CPUs12A,12B’
から出力されたデータを受信すべく接続された二つの入
力が、出力されたデータのある程度非同期な受取りを受
信すべく上述したようなクロック同期FIFOsを有
し、同期ファッションでFIFOsから出力したその受
信したデータをプリングする、ということを定めて、ル
ータの使用は、発散に対して必要な検査を実行すべく簡
単なコンパレータ回路以外の何者でもないもので置き換
えられるということは、当業者には明らかである。
【0251】− スタンバイ・スペアリング(Stanby Sp
aring) 図1〜図3をちょっと参照すると、これらの図に示され
た処理システムのアーキテクチャの重要な特徴は、各C
PU12がそれに利用可能な全てのI/OPaket
Interface(パケット・インターフェイス)1
6のサービス、及びシステムにおける他のCPU12の
援助(支援)なしで、装着されたI/O装置を有するこ
とである。多くの従来の並列処理システムは、特定のプ
ロセッサまたはCPUの援助によってのみI/O装置へ
のアクセスまたはそのサービスを供給する。そのような
場合、I/O装置のサービスに対して責任があるプロセ
ッサが故障したならば、I/O装置は、システムの残り
に対して利用不可能になる。他の従来のシステムは、プ
ロセッサの一つが故障したならば、対応I/Oへのアク
セスが残りのI/Oを通してまだ利用可能であるように
プロセッサのペアを通してI/Oへのアクセスを供給す
る。もちろん、両方が故障したならば、再度I/Oは、
失われる。また、並列またはマルチ処理システムの他の
プロセッサを供給するためにプロセッサの資源を必要と
することは、システムに性能インパクトを課す。
【0252】全ての周辺装置へのアクセスをマルチ処理
システムの全てのCPUに許容する能力(機能)は、こ
こでなされたように、上記した米国特許第 4,228,496号
公報に教示された“主/バックアップ”処理を拡張すべ
く動作する。そこでは、多重CPUシステムは、バック
アップ処理が別のCPUsのバックグラウンドに存在す
ると同時に、一つのCPU上で走らせうる主処理を有し
うる。周期的に、主処理は、処理の動作に関するデータ
がバックアップ処理にアクセス可能な位置に記憶される
ような“チェックポインティング(check-pointing)”動
作を実行する。主処理を走らせているCPUが故障した
ならば、その故障は、バックアップが存在するものを含
んでいる、残りのCPUsによって検出される。CPU
故障のその検出は、バックアップ処理を起動させ、かつ
チェックポイント・データをアクセスするために、バッ
クアップに最後のチェックポイント動作の地点から前の
(former)主処理の動作を再開させる。バックアップ処理
は、いま主処理になり、残っているCPUsのプールか
ら、新しい主処理のバックアップ処理を有すべく一つが
選ばれる。従って、システムは、最初の故障(即ち、故
障したCPU)が修復される前でさえも別の故障を許容
できるような状態に素早く復元される。
【0253】それゆえに、処理システム10の種々の素
子を相互接続する方法及び装置は、全てのCPUに、そ
のシステムの全てのI/O素子、並びにシステムの全て
のCPUへのアクセスを供給するということが理解でき
る。各CPUは、別のプロセッサのサービスを用いる必
要なしにあらゆるI/Oをアクセスできる。それによ
り、システム性能は、I/Oをアクセスすることに含ま
れる特定のプロセッサを必要とするシステムに比べて向
上されかつ改良される。更に、CPU12が故障し、ま
たはラインから取り除かれても、そのアクションは、他
のCPUのシステムのI/Oへのアクセスになんの影響
を及ぼさない。
【0254】− トランザクション・シーケンス・プロ
トコル及びバリア・トランザクション:上述したよう
に、パケットのヘッダ・フィールドは、4ビット・トラ
ンザクション・シーケンス番号(Transaction Sequence
Number) (TSN)フィールドを含む; 図5(a)及
び図5(b)を参照。CPUs12AまたはあるI/O
装置のような、二つ以上の顕著な(outstanding) 要求を
管理するように構成された処理システム10の素子(図
1〜図3)は、TSNフィールドにおいて各顕著な要求
に対して固有のシーケンス番号を供給する。宛先素子が
特定の要求に対する応答パケットを生成するときに、応
答パケットのTSNフィールドは、応答を促した要求パ
ケットにおけるのと同じTSN値を含む。次に、応答を
受信するシステム素子は、どの要求に応答が対応するか
を決定すべく応答におけるTSNにマッチすることがで
きる。TSNは、応答がもはや存在しない要求に答える
かどうかをシステム素子に決定させる。例えば、ここで
のように、あるシステムは、要求に対する応答に所定の
期間内に受信されることを要求する。予期したようには
応答が受信されなかったならば、要求を起動したシステ
ム素子は、第2の(再度の)要求を単に発行する。早め
の要求に対する応答がその後に受信されたならば、シス
テム素子は、応答が答える要求(早めの、無効の、要
求、または遅く有効な要求)をTSNから決定すること
ができる。前者ならば、応答は、廃棄される。
【0255】TSNsは、通称“陳腐なパケット (stal
e packet) ”問題を処理することも支援する。誤りが発
生するときに、通過中のメッセージ・パケットは、ネッ
トワークのどこかで動かなくなりうる。これら陳腐なパ
ケットを除去する方法が存在しないならば、それらは、
後で現れることができかつシステムが最初の問題から回
復した後に動作をもしかすると破壊する。受信した応答
メッセージ・パケットのTSNは、受信機に、応答によ
って運ばれたTSNを応答を促したメッセージ・パケッ
トのTSNと比較することによって応答が現行であるか
否かを決定させる。小さなTSNを用いることは、現在
顕著である要求にマッチしうるTSNを伴って陳腐な(s
tale) 応答が後で現れるという可能性を生ずる。しか
し、大きなTSNフィールドは、伝達されたメッセージ
・パケットのそれぞれがより大きいこと、またはそれに
よってデータ・フィールドが低減されることのいずれか
を要求する傾向がある。本発明は、“バリア・トランザ
クション(Barrier Transaction) ”と呼ばれる機構を通
してこの問題を解決する。TSNsは、用いられるべく
継続するが、Barrier Transaction 機構は、TSNの必
要なサイズを ほんの4ビットのフィールドまで低減す
る。
【0256】簡単に言うと、Barrier Transaction は、
送信ノードと受信ノードとの間の通信経路のインテグリ
ティを検査するために用いられる。それがI/Oインタ
ーフェイス16によって発行されうるけれども、Barrie
r Transaction は、CPUによって主に起動される。そ
れは、I/O装置17またはCPU12向けの先に発行
されたメッセージ・パケットに対する予期した応答が所
定の割当て期間内に受信されないときに主に用いられ
る。CPU12は、通常のヘッダ、アドレス、データ、
及びCRCフィールドを含んでいる、HADCパケット
(図5(a))の形のBarrier Transaction メッセージ
・パケットを生成しかつ送ることによって経路を検査で
きる。Barrier Transaction メッセージ・パケットによ
って運ばれたデータは、トランザクションを独自に識別
し、かつそのデータのコピーは、CPUによる後の比較
のためにCPUによって保管される。Barrier Transact
ion メッセージ・パケットを受信しているシステム素子
(例えば、それが別のCPUでもありうるが、I/Oイ
ンターフェイス16の一つ)は、Barrier Transaction
応答を生成しかつ送ることを要求される。しかしなが
ら、そのようにする前に、Barrier Transaction 応答
は、それがBarrier Transaction に応答できる前にBarr
ier Transaction メッセージ・パケットの受信に先駆け
て受信した(要求を発行したシステム素子からの)全て
の要求を終了または廃棄することを要求される。Barrie
r Transaction 応答は、Barrier Transaction 要求で運
ばれた同じデータを含んでいる、HDC形(図6)のも
のである。Barrier Transaction 応答がトランザクショ
ンを起動したCPUによって受信されたときに、応答に
おけるデータは、応答が対応するBarrier Transaction
(多数の顕著なBarrier Transaction が存在しうる)を
特に決定すべく、(CPUによって早めに保管された)
早めに送られたBarrier Transaction メッセージ・パケ
ットに存在したデータと比較される。
【0257】システム素子と他のシステム素子(例え
ば、CPU12AとI/O17n ;図1〜図3)の間に
ただ一つの有効経路が存在するので、かつメッセージ・
パケットがその宛先へ向かう途中で他のメッセージ・パ
ケットを渡すことができないので、メッセージ・パケッ
ト受信のシーケンスは、それらが送られたようなシーケ
ンスにマッチする。それゆえに、Barrier Transaction
は、Barrier Transaction を発行しているシステム素子
とBarrier Transaction を受信しかつそれに応答してい
るシステム素子との間の経路をクリアすべく動作する。
Barrier Transaction 応答の受信は、全ての要求はBarr
ier Transaction が答えられる前に送るか、またはやっ
て来ないかのいずれかであることをBarrier Transactio
n を発行したシステム素子に知らせる。それゆえに、無
回答要求が再発行され、応答が最終的に受信されたなら
ばそれは、再発行された要求の結果であり、早めの(及
び先に無回答であった)要求に対する遅延応答でないと
いうことを知る。Barrier Transaction 機構は、ほんの
2〜3のTSN番号の使用を許すということが理解でき
る。(ここでは、ある程度大きなフィールドを必要とし
うる従来のシステムに対して、ほんの4ビットのTSN
フィールドが用いられる。) バリア・トランザクションの動作は、カスケード・ルー
タ14A及び14X、を含むX経路によりI/Oパケッ
ト・インターフェイス16Aに結合されたCPU12A
と、TNetリンクL(即ち、リンクLx 、L(1)、
及びL)を示す図53に示されている。上述したよう
に、各ルータは、エラスティックFIFOs506を含
むポート入力502を有する。この説明に対して、エラ
スティックFIFOだけが必要であり、従って示されて
いる。
【0258】ルータ14A及び14Xとリンク・セクシ
ョンL(1)’との間のリンクL(1)のアウトバウン
ド・セクションは、図53において破線で示したよう
に、使用不可能になると想定する。これは、多数の理由
で発生しうる:故障しているコネクタ、ずれたケーブ
ル、等。ルータ14Aからルータ14Xへのアウトバウ
ンド・メッセージ・トラフィックは、中断する(やめ
る)。I/Oパケット・インターフェイス16Aに向か
う途中であるが、故障しているリンク・セクションL
(1)’のまだ上流であるCPU12Aによって起動さ
れたメッセージ・パケット・トランザクションは、応答
されず、従って、通信経路における故障を示すことが時
間切れになる。割込みが内部的に生成され、かつプロセ
ッサ20(20a,20b − 図4)は、バリア要求
(BR)ルーチンの実行を起動する。そのバリア要求ル
ーチン(BR)は、応答の欠如に対して時間切れになる
各発行されたトランザクション(メッセージ・パケッ
ト)に対する各AVTエントリ(図18)の許可フィー
ルド(図19)におけるPEXビットをクリアすること
によって経路をまずディスエーブルする。これは、顕著
なトランザクションによって促された応答メッセージ・
パケットが後で現れたならば、それは、AVTエントリ
がその応答に対してアクセスされかつ検査されたときに
阻止されることを確実にする;即ち、リンクにおける故
障の理由で失速されたのでなく、それらが最終的に宛先
に到達する前に一時的に無くなる、メッセージ・パケッ
ト。
【0259】ある後の時間に、リンクL(1)は、修正
され、かつルータ14AのエラスティックFIFOs5
06’における1152で示されたような、いまでは陳
腐な(stale) メッセージ・パケットを解放する。リンク
L(1)の再制定は、CPU12Aが それからI/O
パケット・インターフェイス16AへのX経路がいま動
作に戻るという可能性をいま認識しているようにMP1
8によってCPU12Aに知らされる。しかしながら、
CPUは、(I/Oパケット・インターフェイス16A
に対応している適切なAVTエントリにおけるPEXビ
ットをリセットすることによって)その経路をまだイネ
ーブルできない。理由は、I/Oパケット・インターフ
ェイス16Aに、全く異なるメッセージ・パケットとし
てそれを誤解させて、それによって応答させるべくその
最初の宛先(I/Oパケット・インターフェイス)へフ
ローすべく継続している、エラスティックFIFOs5
06’において1152で示されたような、陳腐なトラ
ンザクション・メッセージ・パケットの可能性である。
この問題を防ぐために、かつCPU12AによってX経
路が通常のトラフィックに再び用いられる前に、CPU
12Aで実行しているBRサブルーチンは、“Barrier
Request (バリア要求)”メッセージ・パケットをI/
Oパケット・インターフェイス装16Aに送ることによ
ってBarrier Transaction を起動すべくBTE論理回路
88(図9及び図23も参照)を用いる。Barrier Requ
est メッセージ・パケットは、メッセージ・パケットの
ヘッダ(図5(a)及び図5(b)参照)に含まれるソ
ース・フィールドのサブフィールドによってそのように
識別される。上記したように、Barrier Request メッセ
ージ・パケットのデータ・フィールドは、その特定のト
ランザクションに対して固有なデータ値を含む。
【0260】Barrier Request メッセージ・パケット
(即ち、1150)が、I/Oパケット・インターフェ
イス16AのXインターフェイス装置16aによって受
信されたときに、それは、そのデータ・セクションが受
信したBarrier Request メッセージ・パケット1150
に含まれた同じ同一で、固有なデータ値を含む、応答メ
ッセージ・パケットをフォーミュレートする。次に、I
/Oパケット・インターフェイス装置16Aは、ルータ
14X,14Aを介して、CPU12Aに応答を戻し送
信する。バリア要求メッセージ・パケットへの応答がC
PU12Aによって受信されるときに、それは、AVT
論理回路90’を通して処理される(図9及び図16も
参照)。バリア応答は、他の型のトランザクション以外
のバリア応答を終了させるべくエントリの対応許可フィ
ールドにセットされた“B”フィールドを有するAVT
エントリを用いる。(Barrier Transaction が送られた
ときに、AVTエントリは、応答を確認するのに用いる
ためにCPUによって生成された。)上述したように、
各バリア・トランザクションは、それに応じて送信者に
戻されるデータ値を含む。この固有な値は、CPU(即
ち、BRルーチン)に、送られたデータ値を応答で受信
したものと比較させて、応答が異なるバリア・トランザ
クションの一部でなかったことを確実にする。一度、バ
リア応答がそれをCPU12Aに戻させると、陳腐なパ
ケットがこの経路に沿ってFIFOバッファに残るとい
う可能性がもはや存在しない。また、CPU12Aは、
先にディスエーブルされた経路が通常のトラフィックに
対して再びいま用いることができるということを制定し
た。従って、CPU12Aは、その経路を用いる全ての
AVTエントリにおけるPEX許可フィールドをセット
することによって経路を再イネーブルする。
【0261】本発明の全て及び完全な開示がなされた
が、種々の代替及び変更が特許請求の範囲の真の範疇か
ら逸脱することなく本発明の種々の態様に対してなされ
うるということが当業者に明らかになるであろう。例え
ば、ある一定の誤りを検出できる8ビット/9ビット・
コードの形の指令/データ記号の送信において発生しう
る誤りの検出を供給するためのスキームが開示された。
概念は、9ビット/10ビット・コード、または、多重
バイト・ワイドのような他の同様なコードへ更に導くこ
とができるということが当業者に明らかであるべきであ
る。更に、ルータ14は、あらゆる数のポートを有すべ
く構成されうる;指令/データ・パケット・フォーマッ
トは、(ヘッダ、及び他のフィードにより多くのまたは
さらに少ないビットを有して)異なりうる;ルーティン
グ・トポロジーは、ルータ14を用いて、リング、木、
ハイパーキューブ、等として形成することができる。
【図面の簡単な説明】
【図1】本発明の教示に従って構成された処理システム
を示す図である。
【図2】図1の処理システムのクラスタまたは配置構成
を採り入れている図1の処理システムの代替構成の一つ
を示す図である。
【図3】図1の処理システムのクラスタまたは配置構成
を採り入れている図1の処理システムの代替構成の別の
一つを示す図である。
【図4】図1〜図3の各サブ−プロセッサ・システムの
一部を形成する中央処理装置(CPU)を示す略ブロッ
ク図である。
【図5】図5は(a)〜(d)からなり、図4に示すエ
リア・ネットワークI/Oシステムを介して入力/出力
データのような情報を運ぶために用いられる種々のメッ
セージ・パケットの構成を示す図である。
【図6】図4に示すエリア・ネットワークI/Oシステ
ムを介して入力/出力データのような情報を運ぶために
用いられる種々のメッセージ・パケットの一構成を示す
図である。
【図7】図4に示すエリア・ネットワークI/Oシステ
ムを介して入力/出力データのような情報を運ぶために
用いられる種々のメッセージ・パケットの他の一構成を
示す図である。
【図8】図4に示すエリア・ネットワークI/Oシステ
ムを介して入力/出力データのような情報を運ぶために
用いられる種々のメッセージ・パケットの別の一構成を
示す図である。
【図9】プロセッサ及びメモリをI/Oエリア・ネット
ワーク・システムとインターフェイスするための図4の
CPUsの一部を形成するインターフェイス装置を示す
図である。
【図10】図9のインターフェイス装置のパケット受信
機の部分を示している、ブロック図である。
【図11】図10に示すパケット受信機のパケット受信
機セクションに用いられるクロック同期FIFO(CS
FIFO)を示す図である。
【図12】図11に示すクロック同期FIFO構造の構
成のブロック図である。
【図13】CPUの二つのインターフェイス装置からの
誤り検査外向き送信に対するクロス接続を示す図であ
る。
【図14】エンコードされた(8Bから9B)データ/
指令記号を示す図である。
【図15】データがデータ誤り検査のためにメモリコン
トローラに転送される誤りのクロスチェックのために図
9のインターフェイス装置によって用いられる方法及び
構造を示す図である。
【図16】処理システムの他の(CPUの外部の)コン
ポーネントに図4のCPUのメモリへの読取り及び/又
は書込みアクセスをスクリーンしかつ付与するために用
いられるアクセス妥当性検査及び変換(AVT)表の実
施を表わすブロック図である。
【図17】AVT表エントリをアクセスするために用い
られるアドレスの形成を示すブロック図である。
【図18】通常及び割込み要求に対するAVT表エント
リを示す図である。
【図19】通常及び割込み要求に対するAVT表エント
リを示す別の図である。
【図20】通常及び割込み要求に対するAVT表エント
リを示す別の図である。
【図21】メモリのキューに対する及び図4のCPUの
プロセッサ装置に対する割込み要求をポスティングする
論理回路を示す図である。
【図22】キュー・エントリに対するメモリ・アドレス
を形成するために用いられる処理を示す図である。
【図23】プロセッサ装置によって図4のCPUのメモ
リに形成され、かつ図1〜図3に示すエリアI/Oネッ
トワークを介して送られるべきデータを含んでいる、デ
ータ出力構成を示し、かつ図11、12のパケット送信
機セクションを通るエリアI/Oネットワークへの送信
に対するデータ出力構成をアクセスすべく動作する図9
のインターフェイス装置のブロック転送エンジン(BT
E)装置も示すブロック図である。
【図24】8チェック・ビットと共に連続偶数アドレス
で二つの同時にアクセスされた32ビット・ワードを含
んでいる、データの72ビットをメモリからアクセスす
るために図4のCPUのメモリとそのインターフェイス
装置との間で一対のメモリ・コントローラによって一部
分形成される72ビットのデータ・パスの構造を示す図
である。
【図25】オンライン・アクセス・ポート(OLAP)
を通るそれへの順次アクセスを示している、図4に示す
二つのメモリ・コントローラの一つの略ブロック図であ
る。
【図26】図4の一対のメモリ・コントローラの状態マ
シン及び誤り検査のために一つを他のもに対して検査す
るために用いる技術を簡略形で示す図である。
【図27】図1〜図3に示す処理システムのエリア入力
/出力ネットワークに用いるルータ装置を示す略ブロッ
ク図である。
【図28】図27に示すルータ装置の二つのポート入力
の比較を示す図である。
【図29】図27に示すルータ装置の6つの入力ポート
の一つの構造を示すブロック図である。
【図30】図27のルータ装置の入力ポートで受信する
指令/データ記号の妥当性を検査するために用いる同期
論理回路のブロック図である。
【図31】図29に示す入力ポートのターゲット・ポー
ト選択論理回路を示すブロック図である。
【図32】図31のターゲット・ポート選択論理回路に
よって行われるルーティング決定を示している決定チャ
ートである。
【図33】図31のターゲット・ポート選択論理回路の
一部を形成するアルゴリズム・ルーティング論理回路の
ブロック図である。
【図34】図27に示すルータ装置の6つの出力ポート
の一つを示すブロック図である。
【図35】図11の一対のFIFOsを用いて(各CP
Uに対して一つ)、処理システムがロック−ステップ
(デュプレックス)モードで動作しているときに同期し
たファッションで図4のデュプレックス・ペアCPUs
に同じ情報を送信するために用いられる方法を示す図で
ある。
【図36】そのサブ処理システムの種々の素子を動作す
るために用いられる複数のクロック信号を開発するため
の図1〜図3のサブ処理システムのそれぞれのクロック
生成システムを示している略ブロック図である。
【図37】互いに一対のサブ処理システムの種々のクロ
ック信号を同期するために対になったサブ処理システム
のクロック生成システムを相互接続するために用いられ
るトポロジーを示す図である。
【図38】FIFOのキューに記号を押し付けかつそれ
らを引き離すために用いられる二つのクロックがかなり
異なるときの情況において図13または図29及び図3
0のクロック同期FIFOを制御するために用いられる
FIFO一定速度クロック制御論理回路を示す図であ
る。
【図39】FIFOのキューに記号を押し付けかつそれ
らを引き離すために用いられる二つのクロックがかなり
異なるときの情況において図13または図29及び図3
0のクロック同期FIFOを制御するために用いられる
FIFO一定速度クロック制御論理回路を示す別の図で
ある。
【図40】図38及び図39の一定速度制御論理回路の
動作を示すタイミング図である。
【図41】素子を構成するために図1の(または図2ま
たは図3に示す)システムの種々の素子に対する保守プ
ロセッサ(MP)へのアクセスを供給するために用いら
れるオンライン・アクセス・ポート(OLAP)の構造
を示す図である。
【図42】キャッシュ・ブロック境界を示している、シ
ステム・メモリの部分を示す図である。
【図43】デュプレックス・モードで動作する対になっ
たサブ処理システムのCPUs間の非同期可変を処理す
るために用いられるソフト・フラグ論理回路を示す図で
ある。
【図44】デュプレックス・モードで動作する対になっ
たサブ処理システムのCPUs間の非同期可変を処理す
るために用いられるソフト・フラグ論理回路を示す他の
図である。
【図45】互いに情報を受け取る図1の処理システムの
CPUs及びルータのクロック同期FIFOsをリセッ
トしかつ同期するために用いられるフロー図である。
【図46】互いに情報を受け取る図1の処理システムの
CPUs及びルータのクロック同期FIFOsをリセッ
トしかつ同期するために用いられるSYNC CLKの
部分を示す図である。
【図47】デュプレックス・モードで動作している二つ
のCPUs間の相違(ダイバージェンス)を検出しかつ
処理するために用いられる手順を概略的に示している、
フロー図である。
【図48】他のCPUsが処理システムの動作を計れる
程度に停止することなく図1に示す処理システムのCP
Usの一つをロック−ステップ、デュプレックス・モー
ド動作にするために用いられる手順を一般に示す図であ
る。
【図49】他のCPUsが処理システムの動作を計れる
程度に停止することなく図1に示す処理システムのCP
Usの一つをロック−ステップ、デュプレックス・モー
ド動作にするために用いられる手順を一般に示す他の図
である。
【図50】他のCPUsが処理システムの動作を計れる
程度に停止することなく図1に示す処理システムのCP
Usの一つをロック−ステップ、デュプレックス・モー
ド動作にするために用いられる手順を一般に示す他の図
である。
【図51】他のCPUsが処理システムの動作を計れる
程度に停止することなく図1に示す処理システムのCP
Usの一つをロック−ステップ、デュプレックス・モー
ド動作にするために用いられる手順を一般に示す他の図
である。
【図52】本発明の教示を組み込んでいる低減コスト・
アーキテクチャを示す図である。
【図53】図1(または図2、図3)のCPUと入力/
出力装置との間の通信経路を検査しかつ検証するバリア
・トランザクションの動作を示す図である。
【符号の説明】
10 データ処理システム 10A,10B サブ−プロセッサ・システム 12A,12B 中央処理装置(CPU) 14,14A,14B ルータ 16A,16B,16X,16Y I/Oパケット・イ
ンターフェイス 171 〜17n I/O装置 18A,18B 保守プロセッサ(MP)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディヴィッド ジェイ ガーシア アメリカ合衆国 カリフォルニア州 95030 ロス ガトス ハッチンソン ロ ード 24100 (72)発明者 ウィリアム パターソン バントン アメリカ合衆国 テキサス州 78660 プ フルガーヴィル グリーンウェイ ドライ ヴ 415 (72)発明者 ウィリアム エフ ブルッカート アメリカ合衆国 テキサス州 78728 オ ースチン クイート ポンド コート 15212 (72)発明者 ダニエル エル ファウラー アメリカ合衆国 テキサス州 78628 ジ ョージタウン ノーウッド ドライヴ 303 (72)発明者 カーティス ウィーラード ジョーンズ ジュニア アメリカ合衆国 テキサス州 78759 オ ースチン ブラッフリッジ ドライヴ 4111 (72)発明者 ディヴィッド ポール ソーニア アメリカ合衆国 テキサス州 78750 オ ースチン イメージ コーヴ 7804 (72)発明者 ウィリアム ジョエル ワトソン アメリカ合衆国 テキサス州 78756 オ ースチン ウルリク アベニュー 1501 (72)発明者 フランク エイ ウィリアムス アメリカ合衆国 テキサス州 78750 オ ースチン ビッグ キャット コーブ 6310

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 命令及びデータを記憶するメモリと、 命令ストリームの各命令を実行しかつ実質的に同じ瞬間
    に前記メモリに第1及び第2の部分を含んでいる同一の
    Nビット・データ語を周期的に書込むすべく互いにロッ
    ク−ステップ同期で動作する一対のプロセッサと、 前記第2のインターフェイス素子からの前記Nビット・
    データの第2の部分と一緒に前記第1のインターフェイ
    ス装置によって前記一対のプロセッサからの前記Nビッ
    ト・データ語の前記第1の部分が前記メモリに書込まれ
    るように前記一対のプロセッサの対応するものから前記
    メモリへ前記Nビット・データ語を通信する第1及び第
    2のインターフェイス素子とを備えて、 前記第1のインターフェイス装置は、誤比較されかつ検
    出された誤り信号をアサートすべく前記第2のインター
    フェイス装置からの前記Nビット・データ語の前記第2
    の部分を受信しかつそれを前記一対のプロセッサの対応
    するものから受信した前記Nビット・データ語の前記第
    2の部分と比較する手段を含み、 前記第2のインターフェイス装置は、誤比較されかつ検
    出された誤り信号をアサートすべく前記第1のインター
    フェイス装置からの前記Nビット・データ語の前記第1
    の部分を受信しかつそれを前記一対のプロセッサの対応
    するものから受信した前記Nビット・データ語の前記第
    1の部分と比較する手段を含むことを特徴とする中央処
    理装置。
JP14527896A 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム Expired - Fee Related JP3800564B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US99294492A 1992-12-17 1992-12-17
US08/473,541 US5751955A (en) 1992-12-17 1995-06-07 Method of synchronizing a pair of central processor units for duplex, lock-step operation by copying data into a corresponding locations of another memory
US08/484,281 US5838894A (en) 1992-12-17 1995-06-07 Logical, fail-functional, dual central processor units formed from three processor units
US08/485,053 US5790776A (en) 1992-12-17 1995-06-07 Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US08/482,628 US5574849A (en) 1992-12-17 1995-06-07 Synchronized data transmission between elements of a processing system
US08/485,062 US6496940B1 (en) 1992-12-17 1995-06-07 Multiple processor system with standby sparing
US08/485,055 US6233702B1 (en) 1992-12-17 1995-06-07 Self-checked, lock step processor pairs
US08/474,770 US5675579A (en) 1992-12-17 1995-06-07 Method for verifying responses to messages using a barrier message
US08/474,772 US5914953A (en) 1992-12-17 1995-06-07 Network message routing using routing table information and supplemental enable information for deadlock prevention
US08/485055 1995-06-07
US08/483,748 US5689689A (en) 1992-12-17 1995-06-07 Clock circuits for synchronized processor systems having clock generator circuit with a voltage control oscillator producing a clock signal synchronous with a master clock signal

Publications (2)

Publication Number Publication Date
JPH09128356A true JPH09128356A (ja) 1997-05-16
JP3800564B2 JP3800564B2 (ja) 2006-07-26

Family

ID=38982880

Family Applications (9)

Application Number Title Priority Date Filing Date
JP8145550A Pending JPH09128349A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145249A Pending JPH09128348A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145250A Pending JPH09146905A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145269A Pending JPH1091587A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP14527896A Expired - Fee Related JP3800564B2 (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8146056A Pending JPH09128353A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145251A Pending JPH09128355A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145230A Pending JPH09134332A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8146055A Pending JPH09134337A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム

Family Applications Before (4)

Application Number Title Priority Date Filing Date
JP8145550A Pending JPH09128349A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145249A Pending JPH09128348A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145250A Pending JPH09146905A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145269A Pending JPH1091587A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム

Family Applications After (4)

Application Number Title Priority Date Filing Date
JP8146056A Pending JPH09128353A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145251A Pending JPH09128355A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8145230A Pending JPH09134332A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JP8146055A Pending JPH09134337A (ja) 1992-12-17 1996-06-07 フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム

Country Status (5)

Country Link
US (9) US5574849A (ja)
EP (9) EP0747803B1 (ja)
JP (9) JPH09128349A (ja)
CA (9) CA2178407A1 (ja)
DE (7) DE69629766T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100414531C (zh) * 2005-04-22 2008-08-27 四川长虹电器股份有限公司 双处理器通信的方法

Families Citing this family (554)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819110A (en) * 1995-06-05 1998-10-06 Ricoh Company, Ltd. System for determining whether connection or connectionless modes of communication should be used to transmit information between devices in accordance with priorities of events
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5867501A (en) * 1992-12-17 1999-02-02 Tandem Computers Incorporated Encoding for communicating data and commands
GB2293468B (en) * 1994-09-21 1999-09-29 Sony Uk Ltd Data processing systems
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6831702B1 (en) * 1995-03-24 2004-12-14 Sony Corporation Method of and apparatus for identifying a signal transmitting source
GB2301686A (en) * 1995-06-03 1996-12-11 Ibm Transaction synchronisation procedure in a routing node
FR2737030B1 (fr) * 1995-07-21 1997-08-14 Bull Sa Procede de transfert de messages dans un systeme informatique multinodal
US5805920A (en) * 1995-11-13 1998-09-08 Tandem Computers Incorporated Direct bulk data transfers
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
JP2730534B2 (ja) * 1995-12-18 1998-03-25 日本電気株式会社 データ通信網端末のデータバックアップ方法とその装置
US6886167B1 (en) * 1995-12-27 2005-04-26 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
DE69703236T2 (de) * 1996-04-23 2001-03-01 Allied Signal Inc Integriertes gefahrenvermeidungssystem
US6026426A (en) * 1996-04-30 2000-02-15 International Business Machines Corporation Application programming interface unifying multiple mechanisms
US6141769A (en) 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6243667B1 (en) * 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US5862316A (en) * 1996-07-01 1999-01-19 Sun Microsystems, Inc. Multiprocessing system having coherency-related error logging capabilities
US6173327B1 (en) 1996-07-11 2001-01-09 Jeroen De Borst Object-oriented method and apparatus for information delivery
US5860072A (en) * 1996-07-11 1999-01-12 Tandem Computers Incorporated Method and apparatus for transporting interface definition language-defined data structures between heterogeneous systems
US6263485B1 (en) 1996-07-11 2001-07-17 Andrew Schofield Method and apparatus for describing an interface definition language-defined interface, operation, and data type
FR2751444B1 (fr) * 1996-07-18 1998-09-11 France Telecom Procede et dispositif de controle de la synchronisation temporelle entre une unite de traitement, par exemple un microprocesseur, et des moyens exterieurs
US6067610A (en) * 1996-07-29 2000-05-23 Motorola, Inc. Method and data processor for synchronizing multiple masters using multi-bit synchronization indicators
US5859973A (en) * 1996-08-21 1999-01-12 International Business Machines Corporation Methods, system and computer program products for delayed message generation and encoding in an intermittently connected data communication system
US6173349B1 (en) * 1996-10-18 2001-01-09 Samsung Electronics Co., Ltd. Shared bus system with transaction and destination ID
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US5915088A (en) * 1996-12-05 1999-06-22 Tandem Computers Incorporated Interprocessor messaging system
US5909682A (en) * 1996-12-30 1999-06-01 Mci Worldcom, Inc. Real-time device data management for managing access to data in a telecommunication system
JP3537281B2 (ja) * 1997-01-17 2004-06-14 株式会社日立製作所 共有ディスク型多重系システム
US5991824A (en) * 1997-02-06 1999-11-23 Silicon Graphics, Inc. Method and system for simultaneous high bandwidth input output
JP4038700B2 (ja) * 1997-02-17 2008-01-30 ソニー株式会社 電子機器制御装置および方法、並びに、情報処理システムおよび方法
JPH10240557A (ja) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp 待機冗長化システム
JPH10254843A (ja) * 1997-03-06 1998-09-25 Hitachi Ltd クロスバスイッチ、該クロスバスイッチを備えた並列計算機及びブロードキャスト通信方法
JP3390824B2 (ja) * 1997-03-19 2003-03-31 株式会社日立製作所 多重化制御装置及びその障害回復方法
US6012150A (en) * 1997-03-27 2000-01-04 International Business Machines Corporation Apparatus for synchronizing operator initiated commands with a failover process in a distributed processing system
US6212175B1 (en) * 1997-04-22 2001-04-03 Telxon Corporation Method to sustain TCP connection
US6212183B1 (en) 1997-08-22 2001-04-03 Cisco Technology, Inc. Multiple parallel packet routing lookup
US6512766B2 (en) 1997-08-22 2003-01-28 Cisco Systems, Inc. Enhanced internet packet routing lookup
US5991893A (en) * 1997-08-29 1999-11-23 Hewlett-Packard Company Virtually reliable shared memory
US6058491A (en) * 1997-09-15 2000-05-02 International Business Machines Corporation Method and system for fault-handling to improve reliability of a data-processing system
US5974574A (en) * 1997-09-30 1999-10-26 Tandem Computers Incorporated Method of comparing replicated databases using checksum information
US6092213A (en) * 1997-09-30 2000-07-18 Tandem Computers Incorporated Fault tolerant method of maintaining and distributing configuration information in a distributed processing system
US6055660A (en) * 1997-10-02 2000-04-25 International Business Machines Corporation Method for identifying SMP bus transfer errors
ATE215244T1 (de) 1997-11-14 2002-04-15 Marathon Techn Corp Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen
US6085303A (en) * 1997-11-17 2000-07-04 Cray Research, Inc. Seralized race-free virtual barrier network
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6252612B1 (en) * 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6111877A (en) 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US5978852A (en) * 1998-01-06 1999-11-02 3Com Corporation LAN switch interface for providing arbitration between different simultaneous memory access requests
US6493343B1 (en) 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US6545981B1 (en) * 1998-01-07 2003-04-08 Compaq Computer Corporation System and method for implementing error detection and recovery in a system area network
US6163834A (en) * 1998-01-07 2000-12-19 Tandem Computers Incorporated Two level address translation and memory registration system and method
US6061753A (en) * 1998-01-27 2000-05-09 Emc Corporation Apparatus and method of accessing target devices across a bus utilizing initiator identifiers
US7047300B1 (en) * 1998-02-10 2006-05-16 Sprint Communications Company L.P. Survivable and scalable data system and method for computer networks
US6418514B1 (en) * 1998-02-17 2002-07-09 Internationl Business Machines Corporation Removal of posted operations from cache operations queue
JP3211878B2 (ja) * 1998-03-06 2001-09-25 日本電気株式会社 通信処理制御手段及びそれを備えた情報処理装置
JP3687373B2 (ja) * 1998-12-04 2005-08-24 株式会社日立製作所 高信頼分散システム
US6314106B1 (en) * 1998-04-20 2001-11-06 Alcatel Internetworking, Inc. Receive processing for dedicated bandwidth data communication switch backplane
US7012896B1 (en) 1998-04-20 2006-03-14 Alcatel Dedicated bandwidth data communication switch backplane
JP3720981B2 (ja) * 1998-06-15 2005-11-30 日本電気株式会社 マルチプロセッサシステム
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
US6587961B1 (en) 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
US6138198A (en) 1998-06-15 2000-10-24 Sun Microsystems, Inc. Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data write accesses
US6173351B1 (en) 1998-06-15 2001-01-09 Sun Microsystems, Inc. Multi-processor system bridge
US6026444A (en) * 1998-06-24 2000-02-15 Siemens Pyramid Information Systems, Inc. TORUS routing element error handling and self-clearing with link lockup prevention
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6735773B1 (en) 1998-06-27 2004-05-11 Intel Corporation Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs
US6728249B2 (en) 1998-06-27 2004-04-27 Intel Corporation System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
US6603768B1 (en) 1998-06-27 2003-08-05 Intel Corporation Multi-protocol conversion assistance method and system for a network accelerator
US6657959B1 (en) 1998-06-27 2003-12-02 Intel Corporation Systems and methods for implementing ABR with guaranteed MCR
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6370121B1 (en) 1998-06-29 2002-04-09 Cisco Technology, Inc. Method and system for shortcut trunking of LAN bridges
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
US6119215A (en) 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
US7165152B2 (en) * 1998-06-30 2007-01-16 Emc Corporation Method and apparatus for managing access to storage devices in a storage system with access control
US6327668B1 (en) * 1998-06-30 2001-12-04 Sun Microsystems, Inc. Determinism in a multiprocessor computer system and monitor and processor therefor
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
US6279058B1 (en) * 1998-07-02 2001-08-21 Advanced Micro Devices, Inc. Master isochronous clock structure having a clock controller coupling to a CPU and two data buses
US6202164B1 (en) 1998-07-02 2001-03-13 Advanced Micro Devices, Inc. Data rate synchronization by frame rate adjustment
US6374282B1 (en) 1998-08-28 2002-04-16 Compaq Computer Corporation Method and apparatus for tracking multi-threaded system area network (SAN) traffic
EP0982890A1 (de) * 1998-08-28 2000-03-01 Siemens Aktiengesellschaft Telekommunikationssystem sowie Verfahren zum Erzeugen eines Haupttaktes in demselben
US6141324A (en) * 1998-09-01 2000-10-31 Utah State University System and method for low latency communication
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US7054969B1 (en) * 1998-09-18 2006-05-30 Clearspeed Technology Plc Apparatus for use in a computer system
US8010627B1 (en) 1998-09-25 2011-08-30 Sprint Communications Company L.P. Virtual content publishing system
US6411991B1 (en) 1998-09-25 2002-06-25 Sprint Communications Company L.P. Geographic data replication system and method for a network
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6728839B1 (en) 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6311289B1 (en) 1998-11-03 2001-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Explicit state copy in a fault tolerant system using a remote write operation
US6272563B1 (en) 1998-11-03 2001-08-07 Intel Corporation Method and apparatus for communicating routing and attribute information for a transaction between hubs in a computer system
US6360333B1 (en) * 1998-11-19 2002-03-19 Compaq Computer Corporation Method and apparatus for determining a processor failure in a multiprocessor computer
US6286048B1 (en) * 1998-12-04 2001-09-04 Cisco Technology, Inc. System and method for discovering relative states of processors
US6460146B1 (en) 1998-12-04 2002-10-01 Cisco Technology, Inc. System and method for establishing processor redundancy
US6249756B1 (en) * 1998-12-07 2001-06-19 Compaq Computer Corp. Hybrid flow control
US6898189B1 (en) * 2000-08-23 2005-05-24 Cisco Technology, Inc. Restartable spanning tree for high availability network systems
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6385747B1 (en) 1998-12-14 2002-05-07 Cisco Technology, Inc. Testing of replicated components of electronic device
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6748442B1 (en) * 1998-12-21 2004-06-08 Advanced Micro Devices, Inc. Method and apparatus for using a control signal on a packet based communication link
US7206877B1 (en) 1998-12-22 2007-04-17 Honeywell International Inc. Fault tolerant data communication network
US6950428B1 (en) 1998-12-30 2005-09-27 Hewlett-Packard Development Company, L.P. System and method for configuring adaptive sets of links between routers in a system area network (SAN)
US6253299B1 (en) 1999-01-04 2001-06-26 International Business Machines Corporation Virtual cache registers with selectable width for accommodating different precision data formats
US6546464B2 (en) * 1999-01-08 2003-04-08 Nortel Networks Limited Method and apparatus for increasing data rates in a data network while maintaining system coherency
JP3581589B2 (ja) * 1999-01-11 2004-10-27 株式会社日立製作所 通信ネットワークシステムおよび通信ネットワークシステムにおけるサービス管理方法
US6853623B2 (en) 1999-03-05 2005-02-08 Cisco Technology, Inc. Remote monitoring of switch network
US6367027B1 (en) * 1999-03-22 2002-04-02 Infineon Technologies Ag Skew pointer generation
GB2348580B (en) * 1999-03-30 2001-03-14 3Com Corp System and method for congestion control in packet-based communication networks
US6336172B1 (en) * 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in a data storage library system
US6336173B1 (en) * 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in data storage libraries
US6505254B1 (en) * 1999-04-19 2003-01-07 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
CA2374285A1 (en) * 1999-05-20 2000-11-30 Lancer Partnership, Ltd. A beverage dispenser including an improved electronic control system
US6343330B1 (en) * 1999-05-25 2002-01-29 Cisco Technology, Inc. Arrangement for preventing looping of explorer frames in a transparent bridging domain having multiple entry points
US6473829B1 (en) * 1999-05-28 2002-10-29 International Business Machines Corporation Data storage device providing communication between processing units
US6557044B1 (en) 1999-06-01 2003-04-29 Nortel Networks Limited Method and apparatus for exchange of routing database information
US6631421B1 (en) 1999-06-02 2003-10-07 Sun Microsystems, Inc. Recursive partitioning of networks
US6584073B1 (en) 1999-06-02 2003-06-24 Sun Microsystems, Inc. Network topologies
US6791939B1 (en) 1999-06-02 2004-09-14 Sun Microsystems, Inc. Dynamic generation of deadlock-free routings
US6567856B1 (en) * 1999-06-02 2003-05-20 Sun Microsystems, Inc. Deadlock-free routing
US6603742B1 (en) 1999-06-02 2003-08-05 Sun Microsystems, Inc. Network reconfiguration
US6584432B1 (en) * 1999-06-07 2003-06-24 Agilent Technologies, Inc. Remote diagnosis of data processing units
US6421723B1 (en) * 1999-06-11 2002-07-16 Dell Products L.P. Method and system for establishing a storage area network configuration
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US6249849B1 (en) * 1999-06-16 2001-06-19 International Business Machines Corporation “Fail-Safe” updating of redundant data in multiple data storage libraries
US6330560B1 (en) * 1999-09-10 2001-12-11 International Business Machines Corporation Multiple manager to multiple server IP locking mechanism in a directory-enabled network
US6751698B1 (en) 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6363464B1 (en) * 1999-10-08 2002-03-26 Lucent Technologies Inc. Redundant processor controlled system
US6870814B1 (en) * 1999-10-12 2005-03-22 Hewlett-Packard Development Company, L.P. Link extenders with error propagation and reporting
US6918044B1 (en) * 1999-10-15 2005-07-12 Cisco Technology, Inc. Password protection for high reliability computer systems
US6536000B1 (en) 1999-10-15 2003-03-18 Sun Microsystems, Inc. Communication error reporting mechanism in a multiprocessing computer system
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6651184B1 (en) * 1999-11-03 2003-11-18 Hewlett-Packard Development Company, L.P. Isochronous transfer mode on a universal serial bus with error correction algorithms
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6278742B1 (en) * 1999-11-19 2001-08-21 Siemens Information And Communication Mobile Llc. Method and system for power-conserving interference avoidance in communication between a mobile unit and a base unit in a wireless telecommunication system
US6453390B1 (en) * 1999-12-10 2002-09-17 International Business Machines Corporation Processor cycle time independent pipeline cache and method for pipelining data from a cache
US6754764B1 (en) * 1999-12-21 2004-06-22 Intel Corporation Method and apparatus for maintaining order in a pipelined process and its application
FR2803057B1 (fr) * 1999-12-22 2002-11-29 Centre Nat Etd Spatiales Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
US6581164B1 (en) * 2000-01-03 2003-06-17 Conexant Systems, Inc. System for adjusting clock frequency based upon amount of unread data stored in sequential memory when reading a new line of data within a field of data
US6600959B1 (en) 2000-02-04 2003-07-29 International Business Machines Corporation Method and apparatus for implementing microprocessor control logic using dynamic programmable logic arrays
US6772270B1 (en) * 2000-02-10 2004-08-03 Vicom Systems, Inc. Multi-port fibre channel controller
US6877044B2 (en) 2000-02-10 2005-04-05 Vicom Systems, Inc. Distributed storage management platform architecture
US6807620B1 (en) 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US6256253B1 (en) * 2000-02-18 2001-07-03 Infineon Technologies North America Corp. Memory device with support for unaligned access
US6738826B1 (en) 2000-02-24 2004-05-18 Cisco Technology, Inc. Router software upgrade employing redundant processors
US6725391B2 (en) * 2000-03-02 2004-04-20 Texas Instruments Incorporated Clock modes for a debug port with on the fly clock switching
US6473467B1 (en) * 2000-03-22 2002-10-29 Qualcomm Incorporated Method and apparatus for measuring reporting channel state information in a high efficiency, high performance communications system
US6892237B1 (en) * 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
AU2007237267B2 (en) * 2000-03-30 2009-11-19 Qualcomm Incorporated Method and apparatus for measuring and reporting channel state information in a high efficiency, high performance communications system
US6820213B1 (en) * 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6735715B1 (en) 2000-04-13 2004-05-11 Stratus Technologies Bermuda Ltd. System and method for operating a SCSI bus with redundant SCSI adaptors
US6691257B1 (en) 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US6633996B1 (en) 2000-04-13 2003-10-14 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus architecture
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6647516B1 (en) * 2000-04-19 2003-11-11 Hewlett-Packard Development Company, L.P. Fault tolerant data storage systems and methods of operating a fault tolerant data storage system
WO2001086445A1 (en) * 2000-05-11 2001-11-15 Patmos International Corporation Connectionist topology computer/server
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6950963B1 (en) * 2000-05-30 2005-09-27 Agere Systems Inc. Control method and apparatus for testing of multiple processor integrated circuits and other digital systems
US6823356B1 (en) * 2000-05-31 2004-11-23 International Business Machines Corporation Method, system and program products for serializing replicated transactions of a distributed computing environment
US20020103942A1 (en) * 2000-06-02 2002-08-01 Guillaume Comeau Wireless java device
EP1162540A1 (de) * 2000-06-07 2001-12-12 Siemens Schweiz AG Vorrichtung und Verfahren zur Synchronisation eines Systems von gekoppelten Datenverarbeitungsanlagen
JP3749224B2 (ja) * 2000-06-12 2006-02-22 イーエムシー コーポレイション マルチパス・マルチホップ・リモートデータ機能
US7263476B1 (en) * 2000-06-12 2007-08-28 Quad Research High speed information processing and mass storage system and method, particularly for information and application servers
US6697367B1 (en) 2000-06-12 2004-02-24 Emc Corporation Multihop system calls
US6725388B1 (en) * 2000-06-13 2004-04-20 Intel Corporation Method and system for performing link synchronization between two clock domains by inserting command signals into a data stream transmitted between the two clock domains
US7908520B2 (en) * 2000-06-23 2011-03-15 A. Avizienis And Associates, Inc. Self-testing and -repairing fault-tolerance infrastructure for computer systems
US6956858B2 (en) * 2000-06-30 2005-10-18 Mayan Networks Corporation Network routing table and packet routing method
US6820171B1 (en) 2000-06-30 2004-11-16 Lsi Logic Corporation Methods and structures for an extensible RAID storage architecture
WO2002006918A2 (en) * 2000-07-14 2002-01-24 Telcordia Technologies, Inc. A method, system, and product for preventing data loss and forwarding loops when conducting a scheduled change to the topology of a link-state routing protocol network
DE10039001A1 (de) * 2000-08-10 2002-02-21 Philips Corp Intellectual Pty Anordnung zum Testen eines integrierten Schaltkreises
US6748039B1 (en) 2000-08-11 2004-06-08 Advanced Micro Devices, Inc. System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
US20020049859A1 (en) * 2000-08-25 2002-04-25 William Bruckert Clustered computer system and a method of forming and controlling the clustered computer system
US6977908B2 (en) * 2000-08-25 2005-12-20 Hewlett-Packard Development Company, L.P. Method and apparatus for discovering computer systems in a distributed multi-system cluster
US6662319B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
US6765922B1 (en) * 2000-09-08 2004-07-20 Hewlett-Packard Development Company, L.P. Speculative transmit for system area network latency reduction
US8972590B2 (en) 2000-09-14 2015-03-03 Kirsten Aldrich Highly accurate security and filtering software
US7587499B1 (en) * 2000-09-14 2009-09-08 Joshua Haghpassand Web-based security and filtering system with proxy chaining
US6760777B1 (en) * 2000-09-15 2004-07-06 Pluris, Inc. Method and apparatus for distributing and providing fault tolerance to path-vector routing protocols within a multi-processor router
US6813721B1 (en) 2000-09-20 2004-11-02 Stratus Computer Systems, S.A.R.L. Methods and apparatus for generating high-frequency clocks deterministically from a low-frequency system reference clock
US6728909B1 (en) 2000-09-26 2004-04-27 Hewlett-Packard Development Company, L.P. Data communication with speculative reception of data in a data processing system
US6738344B1 (en) 2000-09-27 2004-05-18 Hewlett-Packard Development Company, L.P. Link extenders with link alive propagation
US6604177B1 (en) * 2000-09-29 2003-08-05 Hewlett-Packard Development Company, L.P. Communication of dissimilar data between lock-stepped processors
US6854072B1 (en) * 2000-10-17 2005-02-08 Continuous Computing Corporation High availability file server for providing transparent access to all data before and after component failover
US20020107943A1 (en) * 2000-11-10 2002-08-08 Heath Chester A. Reset control in modular network computers
US7340558B2 (en) * 2000-11-22 2008-03-04 Silicon Image, Inc. Multisection memory bank system
GB2369693B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Protection for memory modification tracking
GB2369691B (en) 2000-11-29 2003-06-04 Sun Microsystems Inc Control logic for memory modification tracking
GB2369694B (en) 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
GB2369690B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Enhanced protection for memory modification tracking
GB2369692B (en) 2000-11-29 2002-10-16 Sun Microsystems Inc Processor state reintegration
US7054949B2 (en) * 2001-01-19 2006-05-30 World Streaming Network, Inc. System and method for streaming media
FR2820521B1 (fr) * 2001-02-02 2003-04-25 St Microelectronics Sa Procede et dispositif de generation d'une variable de synchronisation, circuit integre et lecteur de disque numerique correspondants
US6968510B2 (en) * 2001-02-05 2005-11-22 Alpine Electronics, Inc. Function executing apparatus and menu item displaying method therefor
US6766479B2 (en) 2001-02-28 2004-07-20 Stratus Technologies Bermuda, Ltd. Apparatus and methods for identifying bus protocol violations
US7219083B2 (en) * 2001-02-28 2007-05-15 Ncr Corporation Currency system
US6578122B2 (en) * 2001-03-01 2003-06-10 International Business Machines Corporation Using an access key to protect and point to regions in windows for infiniband
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6601148B2 (en) * 2001-03-01 2003-07-29 International Business Machines Corporation Infiniband memory windows management directly in hardware
US6615221B2 (en) * 2001-03-09 2003-09-02 Hewlett-Packard Development Company, Lp. Scalable transport layer protocol for multiprocessor interconnection networks that tolerates interconnection component failure
US20040133745A1 (en) * 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7206309B2 (en) 2001-03-27 2007-04-17 Nortel Networks Limited High availability packet forward apparatus and method
US7065672B2 (en) * 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US20020156888A1 (en) * 2001-04-23 2002-10-24 Lee Man-Ho L. Method and apparatus for detecting and reporting configuration errors in a multi-component switching fabric
US6959337B2 (en) * 2001-04-23 2005-10-25 Hewlett-Packard Development Company, L.P. Networked system for assuring synchronous access to critical facilities
US20020159456A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for multicasting in a routing device
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
DE10122693B4 (de) 2001-05-10 2004-05-06 Siemens Ag Verfahren zum Betreiben einer redundanten Prozessoreinheit für ein hochverfügbares Rechensystem
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US6757753B1 (en) 2001-06-06 2004-06-29 Lsi Logic Corporation Uniform routing of storage access requests through redundant array controllers
US6633972B2 (en) * 2001-06-07 2003-10-14 Intel Corporation Method and apparatus for utilizing static queues in processor staging
US6985975B1 (en) * 2001-06-29 2006-01-10 Sanera Systems, Inc. Packet lockstep system and method
US6630872B1 (en) 2001-07-20 2003-10-07 Cmc Electronics, Inc. Digital indirectly compensated crystal oscillator
US7418536B2 (en) * 2001-07-30 2008-08-26 Cisco Technology, Inc. Processor having systolic array pipeline for processing data packets
US7382787B1 (en) 2001-07-30 2008-06-03 Cisco Technology, Inc. Packet routing and switching device
US6950394B1 (en) * 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US7099935B2 (en) * 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6944787B2 (en) * 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US6910158B2 (en) * 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US6954817B2 (en) * 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
AUPR893201A0 (en) * 2001-11-16 2001-12-13 Telstra New Wave Pty Ltd Active networks
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
GB2382960B (en) * 2001-12-05 2005-03-16 Ipwireless Inc Method and arrangement for data processing in a communication system
US7447146B2 (en) * 2001-12-19 2008-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for supporting multiple independent failure domains
US7181510B2 (en) * 2002-01-04 2007-02-20 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a secure embedded I/O processor for a remote server management controller
US6687791B2 (en) 2002-01-07 2004-02-03 Sun Microsystems, Inc. Shared cache for data integrity operations
US6931576B2 (en) * 2002-01-07 2005-08-16 Sun Microsystems, Inc. Data integrity device providing heightened error protection in a data processing system
US20030140025A1 (en) * 2002-01-24 2003-07-24 Daum Steven B. Enhanced air travel security method and apparatus
US7290277B1 (en) * 2002-01-24 2007-10-30 Avago Technologies General Ip Pte Ltd Control of authentication data residing in a network device
US7113938B2 (en) 2002-02-14 2006-09-26 Gravic, Inc. Method of increasing system availability by splitting a system
US20030172106A1 (en) * 2002-02-14 2003-09-11 Iti, Inc. Method of increasing system availability by assigning process pairs to processor pairs
JP3665030B2 (ja) * 2002-02-19 2005-06-29 Necマイクロシステム株式会社 バス制御方法及び情報処理装置
US6832270B2 (en) * 2002-03-08 2004-12-14 Hewlett-Packard Development Company, L.P. Virtualization of computer system interconnects
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
US7240239B2 (en) * 2002-03-20 2007-07-03 National Institute Of Advanced Industrial Science And Technology Input and output control means for computer system storage and a software execution method using same
JP2003288279A (ja) 2002-03-28 2003-10-10 Hitachi Ltd 記憶装置間の障害検出方法、及びこれに用いられる記憶装置
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7487508B2 (en) * 2002-05-16 2009-02-03 Hewlett-Packard Development Company, L.P. System and method for reconstructing client web page accesses from captured network packets
TWI295885B (en) * 2002-06-03 2008-04-11 Action Star Entpr Co Ltd Ubs sharer for use with an usb device
US6799717B2 (en) 2002-06-10 2004-10-05 Hewlett-Packard Development Company, L.P. Document auto-routing using a digital transmitter cover sheet
US7710991B1 (en) 2002-06-20 2010-05-04 Cisco Technology, Inc. Scalable packet routing and switching device and method
US7450438B1 (en) * 2002-06-20 2008-11-11 Cisco Technology, Inc. Crossbar apparatus for a forwarding table memory in a router
US7525904B1 (en) 2002-06-20 2009-04-28 Cisco Technology, Inc. Redundant packet routing and switching device and method
US7167479B2 (en) * 2002-06-21 2007-01-23 Thomson Licensing Multi-chassis broadcast router having a common clock
US7092990B2 (en) * 2002-06-26 2006-08-15 International Business Machines Corporation Handling node address failure in a distributed nodal system of processors
US7471643B2 (en) * 2002-07-01 2008-12-30 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
JP4421812B2 (ja) * 2002-07-08 2010-02-24 日本電気株式会社 診断機能を有するコンピュータシステム
JP3774826B2 (ja) * 2002-07-11 2006-05-17 日本電気株式会社 情報処理装置
EP1408417A1 (en) * 2002-08-01 2004-04-14 Fujitsu Siemens Computers, LLC Efficient messaging in a parallel processing system
US20040034820A1 (en) * 2002-08-15 2004-02-19 Soltis, Donald C. Apparatus and method for pseudorandom rare event injection to improve verification quality
US7266607B2 (en) * 2002-08-27 2007-09-04 International Business Machines Corporation Quasi-high availability hosted applications
EP1394559A1 (de) * 2002-08-27 2004-03-03 Siemens Aktiengesellschaft Verfahren und Anordnung zur Erkennung und Behebung von Leitungsdefekten
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7437605B2 (en) * 2002-09-10 2008-10-14 Union Switch & Signal, Inc. Hot standby method and apparatus
EP1398700A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten
AU2002952023A0 (en) * 2002-10-14 2002-10-31 Curtin University Of Technology Implementation of constraints to ensure deadlock avoidance in networks
US7280620B2 (en) * 2002-10-18 2007-10-09 Canon Kabushiki Kaisha Electronic device including image forming apparatus
US7266786B2 (en) 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7286468B2 (en) * 2002-11-12 2007-10-23 Cisco Technology, Inc. Routing system and method for synchronizing a routing system with peers after failover
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7131028B2 (en) * 2002-12-11 2006-10-31 Sun Microsystems, Inc. System and method for interconnecting nodes of a redundant computer system
US7536476B1 (en) 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
US8281084B2 (en) * 2003-01-13 2012-10-02 Emlilex Design & Manufacturing Corp. Method and interface for access to memory within a first electronic device by a second electronic device
US9369498B2 (en) * 2003-01-30 2016-06-14 Nokia Technologies Oy Message-based conveyance of load control information
KR100741213B1 (ko) * 2003-02-20 2007-07-19 자링크 세미컨덕터, 인크 패킷망에서의 클록 도메인의 정렬 방법 및 장치
US7127564B2 (en) * 2003-02-28 2006-10-24 Standard Microsystems Corporation Double buffered flash programming
US7324458B2 (en) * 2003-03-21 2008-01-29 Intel Corporation Physical layer loopback
US8291176B2 (en) * 2003-03-27 2012-10-16 Hewlett-Packard Development Company, L.P. Protection domain groups to isolate access to memory windows
US7103744B2 (en) * 2003-03-27 2006-09-05 Hewlett-Packard Development Company, L.P. Binding a memory window to a queue pair
US7554993B2 (en) * 2003-03-27 2009-06-30 Hewlett-Packard Development Company, L.P. Method and apparatus for performing connection management with multiple stacks
US7502826B2 (en) * 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
US20040193833A1 (en) * 2003-03-27 2004-09-30 Kathryn Hampton Physical mode addressing
US7089378B2 (en) 2003-03-27 2006-08-08 Hewlett-Packard Development Company, L.P. Shared receive queues
US8023520B2 (en) * 2003-03-27 2011-09-20 Hewlett-Packard Development Company, L.P. Signaling packet
US20040193832A1 (en) * 2003-03-27 2004-09-30 Garcia David J. Physical mode windows
US7565504B2 (en) 2003-03-27 2009-07-21 Hewlett-Packard Development Company, L.P. Memory window access mechanism
US6928027B2 (en) * 2003-04-11 2005-08-09 Qualcomm Inc Virtual dual-port synchronous RAM architecture
US7646705B2 (en) * 2003-04-11 2010-01-12 International Business Machines Corporation Minimizing data loss chances during controller switching
JP4385834B2 (ja) * 2003-04-15 2009-12-16 パナソニック株式会社 ルーティング制御方法およびルータ装置
US20040230673A1 (en) * 2003-04-17 2004-11-18 International Business Machines Corporation Virtual counter device tolerant to hardware counter resets
JP4492035B2 (ja) * 2003-04-21 2010-06-30 日本電気株式会社 データ処理装置
JP4300462B2 (ja) * 2003-04-23 2009-07-22 富士フイルム株式会社 情報記録再生方法及び装置
US6996785B1 (en) 2003-04-25 2006-02-07 Universal Network Machines, Inc . On-chip packet-based interconnections using repeaters/routers
US7080288B2 (en) * 2003-04-28 2006-07-18 International Business Machines Corporation Method and apparatus for interface failure survivability using error correction
EP1629614A1 (en) * 2003-05-20 2006-03-01 Philips Intellectual Property & Standards GmbH Time-triggered communication system and method for the synchronization of a dual-channel network
US7484096B1 (en) * 2003-05-28 2009-01-27 Microsoft Corporation Data validation using signatures and sampling
US7457791B1 (en) 2003-05-30 2008-11-25 Microsoft Corporation Using invariants to validate applications states
JP4473609B2 (ja) * 2003-06-10 2010-06-02 株式会社デンソー 電子システム
US7206963B2 (en) * 2003-06-12 2007-04-17 Sun Microsystems, Inc. System and method for providing switch redundancy between two server systems
EP1496435A1 (en) * 2003-07-11 2005-01-12 Yogitech Spa Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor
US7152186B2 (en) * 2003-08-04 2006-12-19 Arm Limited Cross-triggering of processing devices
US7617376B2 (en) 2003-08-14 2009-11-10 Hewlett-Packard Development Company, L.P. Method and apparatus for accessing a memory
US7757232B2 (en) * 2003-08-14 2010-07-13 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing work request lists
US7530108B1 (en) 2003-09-15 2009-05-05 The Directv Group, Inc. Multiprocessor conditional access module and method for using the same
US7287184B2 (en) * 2003-09-16 2007-10-23 Rockwell Automation Technologies, Inc. High speed synchronization in dual-processor safety controller
US8959171B2 (en) 2003-09-18 2015-02-17 Hewlett-Packard Development Company, L.P. Method and apparatus for acknowledging a request for data transfer
US7404190B2 (en) * 2003-09-18 2008-07-22 Hewlett-Packard Development Company, L.P. Method and apparatus for providing notification via multiple completion queue handlers
US7761921B2 (en) * 2003-10-31 2010-07-20 Caterpillar Inc Method and system of enabling a software option on a remote machine
US7840949B2 (en) * 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
US7225356B2 (en) * 2003-11-06 2007-05-29 Siemens Medical Solutions Health Services Corporation System for managing operational failure occurrences in processing devices
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
US7353433B2 (en) * 2003-12-08 2008-04-01 Intel Corporation Poisoned error signaling for proactive OS recovery
US20050125458A1 (en) * 2003-12-09 2005-06-09 Sutherland James E. Chronological data record access
US8150996B2 (en) * 2003-12-16 2012-04-03 Hewlett-Packard Development Company, L.P. Method and apparatus for handling flow control for a data transfer
US7197658B2 (en) * 2003-12-31 2007-03-27 Intel Corporation Synchronizing samples of a multimedia stream with a system clock
US7356618B2 (en) * 2003-12-31 2008-04-08 Intel Corporation Method and system for synchronizing platform clocks in a distributed wireless platform
US7266713B2 (en) * 2004-01-09 2007-09-04 Intel Corporation Apparatus and method for adaptation of time synchronization of a plurality of multimedia streams
US7200626B1 (en) 2004-01-22 2007-04-03 Unisys Corporation System and method for verification of a quiesced database copy
KR20050079563A (ko) * 2004-02-06 2005-08-10 삼성전자주식회사 응답 지연 시간을 단축시킨 버스 시스템
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7426656B2 (en) * 2004-03-30 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system executing user programs on non-deterministic processors
US8799706B2 (en) * 2004-03-30 2014-08-05 Hewlett-Packard Development Company, L.P. Method and system of exchanging information between processors
US20060020852A1 (en) * 2004-03-30 2006-01-26 Bernick David L Method and system of servicing asynchronous interrupts in multiple processors executing a user program
JP4789425B2 (ja) * 2004-03-31 2011-10-12 富士通株式会社 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム
US7889733B2 (en) * 2004-04-28 2011-02-15 Cisco Technology, Inc. Intelligent adjunct network device
SE528607C2 (sv) * 2004-04-30 2006-12-27 Kvaser Consultant Ab System och anordning för att tidsmässigt relatera händelser i ett fordon
US7472306B2 (en) * 2004-05-18 2008-12-30 Intel Corporation Processor timing apparatus, systems, and methods
US7730456B2 (en) * 2004-05-19 2010-06-01 Sony Computer Entertainment Inc. Methods and apparatus for handling processing errors in a multi-processing system
US7272745B2 (en) * 2004-06-30 2007-09-18 Intel Corporation Data protection system
US7308605B2 (en) * 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
US20060020594A1 (en) * 2004-07-21 2006-01-26 Microsoft Corporation Hierarchical drift detection of data sets
DE102004036261A1 (de) * 2004-07-26 2006-03-23 Siemens Ag Verfahren und Anordnung zum Synchronisieren des Speicherinhalts zwischen zwei redundanten Einrichtungen im laufenden Betrieb
JP4313266B2 (ja) * 2004-07-29 2009-08-12 株式会社エヌ・ティ・ティ・ドコモ サーバ装置、その制御方法およびコネクション確立方法
DE102004038590A1 (de) * 2004-08-06 2006-03-16 Robert Bosch Gmbh Verfahren zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Zweirechnersystems sowie entsprechende Verzögerungseinheit
US7681104B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for erasure coding data across a plurality of data stores in a network
US7681105B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
GB2417865A (en) * 2004-09-03 2006-03-08 Marconi Comm Ltd Monitoring and modifying communications between end nodes at an intermediate node
US7272813B2 (en) * 2004-09-15 2007-09-18 Omnivision Technologies, Inc. Transparent re-mapping of parallel computational units
US7398528B2 (en) * 2004-11-13 2008-07-08 Motorola, Inc. Method and system for efficient multiprocessor processing in a mobile wireless communication device
JP4411602B2 (ja) * 2004-12-16 2010-02-10 日本電気株式会社 フォールトトレラント・コンピュータシステム
JP2006172142A (ja) * 2004-12-16 2006-06-29 Matsushita Electric Ind Co Ltd マルチプロセッサシステム
US7447796B2 (en) * 2004-12-17 2008-11-04 International Business Machines Corporation System, method and program product to route message packets
JP4161276B2 (ja) * 2004-12-17 2008-10-08 日本電気株式会社 フォルトトレラントコンピュータ装置およびその同期化方法
JP4289293B2 (ja) * 2004-12-20 2009-07-01 日本電気株式会社 起動制御方法、二重化プラットフォームシステム及び情報処理装置
JP2006178618A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ及びデータ送信制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4168403B2 (ja) * 2004-12-21 2008-10-22 日本電気株式会社 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
JP2006178550A (ja) * 2004-12-21 2006-07-06 Nec Corp 二重化同期システム、及び二重化同期システムの動作方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
US7889712B2 (en) 2004-12-23 2011-02-15 Cisco Technology, Inc. Methods and apparatus for providing loop free routing tables
US20060168414A1 (en) * 2005-01-25 2006-07-27 Micron Technology, Inc. Memory block locking apparatus and methods
US7328331B2 (en) * 2005-01-25 2008-02-05 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by copying memory stores
US7467327B2 (en) 2005-01-25 2008-12-16 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
US8495411B2 (en) * 2005-02-07 2013-07-23 International Business Machines Corporation All row, planar fault detection system
US7451342B2 (en) * 2005-02-07 2008-11-11 International Business Machines Corporation Bisectional fault detection system
US7437595B2 (en) * 2005-02-07 2008-10-14 International Business Machines Corporation Row fault detection system
US7826379B2 (en) * 2005-02-07 2010-11-02 International Business Machines Corporation All-to-all sequenced fault detection system
US7529963B2 (en) * 2005-02-07 2009-05-05 International Business Machines Corporation Cell boundary fault detection system
US7506197B2 (en) * 2005-02-07 2009-03-17 International Business Machines Corporation Multi-directional fault detection system
US7254691B1 (en) * 2005-03-04 2007-08-07 Xilinx, Inc. Queuing and aligning data
US20060222125A1 (en) * 2005-03-31 2006-10-05 Edwards John W Jr Systems and methods for maintaining synchronicity during signal transmission
JP2006285631A (ja) * 2005-03-31 2006-10-19 Yokogawa Electric Corp 二重化システム
US20060222126A1 (en) * 2005-03-31 2006-10-05 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining synchronicity during signal transmission
US7933966B2 (en) * 2005-04-26 2011-04-26 Hewlett-Packard Development Company, L.P. Method and system of copying a memory area between processor elements for lock-step execution
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
US7426614B2 (en) * 2005-04-28 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system of executing duplicate copies of a program in lock step
US8103861B2 (en) * 2005-04-28 2012-01-24 Hewlett-Packard Development Company, L.P. Method and system for presenting an interrupt request to processors executing in lock step
US7730350B2 (en) * 2005-04-28 2010-06-01 Hewlett-Packard Development Company, L.P. Method and system of determining the execution point of programs executed in lock step
US7549082B2 (en) * 2005-04-28 2009-06-16 Hewlett-Packard Development Company, L.P. Method and system of bringing processors to the same computational point
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US20070011513A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Selective activation of error mitigation based on bit level error count
JP4831599B2 (ja) 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
JP4287411B2 (ja) * 2005-07-01 2009-07-01 株式会社東芝 仮想メモリシステムおよび仮想記憶方法
US7447941B2 (en) * 2005-07-19 2008-11-04 Hewlett-Packard Development Company, L.P. Error recovery systems and methods for execution data paths
US8559443B2 (en) 2005-07-22 2013-10-15 Marvell International Ltd. Efficient message switching in a switching apparatus
US20070038834A1 (en) * 2005-07-25 2007-02-15 Rolf Fritz Method and System for Managing the Sending of Data Packets Over a Data Path
US7778250B2 (en) * 2005-08-11 2010-08-17 Ericsson Ab Method and apparatus for securing a layer II bridging switch/switch for subscriber aggregation
US20070038849A1 (en) * 2005-08-11 2007-02-15 Rajiv Madampath Computing system and method
US7669073B2 (en) 2005-08-19 2010-02-23 Stratus Technologies Bermuda Ltd. Systems and methods for split mode operation of fault-tolerant computer systems
US20070124554A1 (en) * 2005-10-28 2007-05-31 Honeywell International Inc. Global memory for a rapidio network
CN1992583A (zh) * 2005-12-29 2007-07-04 朗迅科技公司 用于使用二进制奇偶校验来重建丢失分组的方法
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8131871B2 (en) * 2006-01-12 2012-03-06 Cisco Technology, Inc. Method and system for the automatic reroute of data over a local area network
DE102006002824B4 (de) 2006-01-19 2008-10-09 Phoenix Contact Gmbh & Co. Kg Verfahren und Vorrichtung zur Umwandlung mehrkanalig vorliegender Nachrichten in eine einkanalige sichere Nachricht
US7549078B2 (en) * 2006-01-31 2009-06-16 Alcatel Lucent Redundancy in routing devices
US7324913B2 (en) * 2006-02-01 2008-01-29 International Business Machines Corporation Methods and apparatus for testing a link between chips
WO2007096987A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited エラー制御装置
US7496785B2 (en) * 2006-03-21 2009-02-24 International Business Machines Corporation Enclosure-based raid parity assist
US7594034B2 (en) * 2006-03-27 2009-09-22 Cisco Technology, Inc. Managing foreign-owned fields in versioned messages
US20070233961A1 (en) * 2006-03-31 2007-10-04 Banning John P Multi-portioned instruction memory
US20070248111A1 (en) * 2006-04-24 2007-10-25 Shaw Mark E System and method for clearing information in a stalled output queue of a crossbar
JP2007293701A (ja) * 2006-04-26 2007-11-08 Canon Inc 動的再構成可能デバイスの制御装置及び方法
US20080010417A1 (en) * 2006-04-28 2008-01-10 Zeffer Hakan E Read/Write Permission Bit Support for Efficient Hardware to Software Handover
US7533237B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip memory allocation for a unified shader
US7533236B1 (en) 2006-05-11 2009-05-12 Nvidia Corporation Off-chip out of order memory allocation for a unified shader
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
GB0610474D0 (en) * 2006-05-26 2006-07-05 Ibm Storage area network controller
WO2008002653A2 (en) * 2006-06-28 2008-01-03 University Of Utah Research Foundation System and method for precise absolute time event generation and capture
US7747896B1 (en) * 2006-06-30 2010-06-29 Guillermo Rozas Dual ported replicated data cache
US20080005357A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Synchronizing dataflow computations, particularly in multi-processor setting
US7984301B2 (en) 2006-08-17 2011-07-19 Inside Contactless S.A. Bi-processor architecture for secure systems
US7840732B2 (en) * 2006-09-25 2010-11-23 Honeywell International Inc. Stacked card address assignment
US7698540B2 (en) * 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
JP2008123357A (ja) * 2006-11-14 2008-05-29 Honda Motor Co Ltd 並列計算機システム、並列計算方法および並列計算機用プログラム
JP5076454B2 (ja) * 2006-11-15 2012-11-21 富士通セミコンダクター株式会社 シリアルデータ受信回路、シリアルデータ受信装置、およびシリアルデータ受信方法
US20080163224A1 (en) * 2006-12-29 2008-07-03 Frank Joachim H Modeling interrupts in a business process
US20080170469A1 (en) * 2007-01-16 2008-07-17 Aram Systems, Ltd. Stabilizing remote clocks in a network
US20080182021A1 (en) * 2007-01-31 2008-07-31 Simka Harsono S Continuous ultra-thin copper film formed using a low thermal budget
US7814301B2 (en) * 2007-04-11 2010-10-12 Hewlett-Packard Development Company, L.P. Clock architecture for multi-processor systems
US7711078B2 (en) 2007-06-01 2010-05-04 Smsc Holdings Sarl Frequency synchronization
US8966000B2 (en) * 2007-06-22 2015-02-24 Microsoft Corporation Aggregation and re-ordering of input/output requests for better performance in remote file systems
US8359646B2 (en) * 2007-07-12 2013-01-22 International Business Machines Corporation Ensuring security of connection between thin client and client blade
US20090046577A1 (en) * 2007-08-14 2009-02-19 Motorola, Inc. Resuming an interrupted flow of data packets
US8468287B2 (en) * 2007-08-22 2013-06-18 Nec Corporation Information processor and information processing method
US7453910B1 (en) 2007-12-18 2008-11-18 International Business Machines Corporation Synchronization of independent clocks
US8650440B2 (en) * 2008-01-16 2014-02-11 Freescale Semiconductor, Inc. Processor based system having ECC based check and access validation information means
US20090186344A1 (en) * 2008-01-23 2009-07-23 Caliper Life Sciences, Inc. Devices and methods for detecting and quantitating nucleic acids using size separation of amplicons
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
US9229887B2 (en) * 2008-02-19 2016-01-05 Micron Technology, Inc. Memory device with network on chip methods, apparatus, and systems
US9608884B2 (en) * 2008-04-14 2017-03-28 Hewlett Packard Enterprise Development Lp System and method for remote management of a computer
US8213706B2 (en) * 2008-04-22 2012-07-03 Honeywell International Inc. Method and system for real-time visual odometry
US7978721B2 (en) 2008-07-02 2011-07-12 Micron Technology Inc. Multi-serial interface stacked-die memory architecture
US9732178B1 (en) 2008-07-24 2017-08-15 Bridgestone Corporation Block copolymers including high vinyl segments
US8086913B2 (en) * 2008-09-11 2011-12-27 Micron Technology, Inc. Methods, apparatus, and systems to repair memory
US20100077472A1 (en) * 2008-09-23 2010-03-25 Atmel Corporation Secure Communication Interface for Secure Multi-Processor System
JP5380978B2 (ja) * 2008-09-26 2014-01-08 富士通株式会社 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム
JP5204603B2 (ja) * 2008-09-29 2013-06-05 株式会社日立製作所 4重化コンピュータシステムおよび2重化リングネットワーク
JP5507830B2 (ja) * 2008-11-04 2014-05-28 ルネサスエレクトロニクス株式会社 マイクロコントローラ及び自動車制御装置
US8001432B2 (en) * 2008-11-20 2011-08-16 Lsi Corporation Uninitialized memory detection using error correction codes and built-in self test
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
US8205111B2 (en) * 2009-01-02 2012-06-19 Intel Corporation Communicating via an in-die interconnect
EP2209070B1 (en) * 2009-01-16 2014-01-08 Alcatel Lucent Telecommunication network server
US8122159B2 (en) 2009-01-16 2012-02-21 Allegro Microsystems, Inc. Determining addresses of electrical components arranged in a daisy chain
US20100229029A1 (en) * 2009-03-06 2010-09-09 Frazier Ii Robert Claude Independent and dynamic checkpointing system and method
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8156371B2 (en) * 2009-06-16 2012-04-10 Honeywell International Inc. Clock and reset synchronization of high-integrity lockstep self-checking pairs
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
KR101283844B1 (ko) * 2009-06-19 2013-07-08 후지쯔 가부시끼가이샤 데이터 전송 방법, 코드 변환 회로 및 장치
US8306042B1 (en) * 2009-06-19 2012-11-06 Google Inc. Class-based deterministic packet routing
US8461782B2 (en) * 2009-08-27 2013-06-11 Allegro Microsystems, Llc Linear or rotational motor driver identification
US8473818B2 (en) * 2009-10-12 2013-06-25 Empire Technology Development Llc Reliable communications in on-chip networks
GB2474446A (en) * 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
JP5990466B2 (ja) 2010-01-21 2016-09-14 スビラル・インコーポレーテッド ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置
CN102822807B (zh) * 2010-03-23 2015-09-02 大陆-特韦斯贸易合伙股份公司及两合公司 控制计算机系统及其控制方法和使用
US9123552B2 (en) 2010-03-30 2015-09-01 Micron Technology, Inc. Apparatuses enabling concurrent communication between an interface die and a plurality of dice stacks, interleaved conductive paths in stacked devices, and methods for forming and operating the same
US8058916B2 (en) 2010-04-15 2011-11-15 Xilinx, Inc. Lockstep synchronization and maintenance
WO2011132223A1 (en) * 2010-04-21 2011-10-27 Hitachi,Ltd. Storage system and ownership control method for storage system
JP5433498B2 (ja) * 2010-05-27 2014-03-05 株式会社東芝 暗号処理装置
US8542578B1 (en) 2010-08-04 2013-09-24 Cisco Technology, Inc. System and method for providing a link-state path to a node in a network environment
US8395416B2 (en) 2010-09-21 2013-03-12 Intel Corporation Incorporating an independent logic block in a system-on-a-chip
US8443230B1 (en) * 2010-12-15 2013-05-14 Xilinx, Inc. Methods and systems with transaction-level lockstep
US8930752B2 (en) 2011-02-15 2015-01-06 International Business Machines Corporation Scheduler for multiprocessor system switch with selective pairing
US8671311B2 (en) 2011-02-15 2014-03-11 International Business Machines Corporation Multiprocessor switch with selective pairing
US8635492B2 (en) * 2011-02-15 2014-01-21 International Business Machines Corporation State recovery and lockstep execution restart in a system with multiprocessor pairing
US8549389B2 (en) 2011-05-24 2013-10-01 Honeywell International Inc. Systems and methods for 1553 bus operation self checking
EP2533154B1 (en) 2011-06-09 2015-08-12 Westinghouse Electric Company LLC Failure detection and mitigation in logic circuits
CN103703427B (zh) * 2011-07-20 2016-05-11 飞思卡尔半导体公司 同步第一处理单元和第二处理单元的处理装置和方法
DE102011082969B4 (de) * 2011-09-19 2015-04-30 Siemens Aktiengesellschaft Verfahren zum Betreiben eines Kommunikationsnetzwerkes und Netzwerkanordnung
US8819484B2 (en) 2011-10-07 2014-08-26 International Business Machines Corporation Dynamically reconfiguring a primary processor identity within a multi-processor socket server
US9391638B1 (en) * 2011-11-10 2016-07-12 Marvell Israel (M.I.S.L) Ltd. Error indications in error correction code (ECC) protected memory systems
US9686131B2 (en) * 2011-12-14 2017-06-20 Moxa Inc. System, gateway, and method for automatic setting configuration by learning commands
US8856590B2 (en) * 2012-01-07 2014-10-07 Compunetix, Inc. Reliable compute engine, method and apparatus
US8908675B2 (en) 2012-01-13 2014-12-09 Honeywell International Inc. Virtual pairing for consistent data broadcast
US9075623B2 (en) * 2012-01-18 2015-07-07 International Business Machines Corporation External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit
US8949983B2 (en) 2012-02-21 2015-02-03 Honeywell International Inc. System and method for integrity reconstitution
US8954794B2 (en) * 2012-06-05 2015-02-10 Infineon Technologies Ag Method and system for detection of latent faults in microcontrollers
US8819531B2 (en) * 2012-07-25 2014-08-26 Lsi Corporation Systems and methods for information divergence based data processing
US9304954B2 (en) * 2012-10-24 2016-04-05 Texas Instruments Incorporated Multi processor bridge with mixed Endian mode support
US9274971B2 (en) 2012-11-27 2016-03-01 International Business Machines Corporation Low latency data exchange
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
TWI485558B (zh) 2013-03-29 2015-05-21 Ind Tech Res Inst 容錯系統以及容錯運算方法
US9329926B1 (en) * 2013-09-13 2016-05-03 Microsemi Storage Solutions (U.S.), Inc. Overlapping data integrity for semiconductor devices
US9547333B2 (en) * 2013-10-10 2017-01-17 General Electric Company System and method for synchronizing networked components
US9491099B2 (en) * 2013-12-27 2016-11-08 Cavium, Inc. Look-aside processor unit with internal and external access for multicore processors
CN103731130B (zh) * 2013-12-27 2017-01-04 华为技术有限公司 通用的容错纠错电路及其应用的译码器和三模冗余电路
US9787495B2 (en) 2014-02-18 2017-10-10 Allegro Microsystems, Llc Signaling between master and slave components using a shared communication node of the master component
US9172565B2 (en) 2014-02-18 2015-10-27 Allegro Microsystems, Llc Signaling between master and slave components using a shared communication node of the master component
US9367375B2 (en) * 2014-04-14 2016-06-14 Artesyn Embedded Computing, Inc. Direct connect algorithm
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
DE102014218823A1 (de) * 2014-09-18 2016-03-24 Siemens Aktiengesellschaft Netzknoten, Steuermodul für eine Komponente und Ethernet Ring
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
CN104699550B (zh) * 2014-12-05 2017-09-12 中国航空工业集团公司第六三一研究所 一种基于lockstep架构的错误恢复方法
KR101764680B1 (ko) * 2014-12-29 2017-08-03 주식회사 효성 이중화 제어 시스템
KR101658828B1 (ko) * 2015-03-23 2016-09-22 한국전자통신연구원 씨피유 코어의 기능복구를 위한 장치 및 방법
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
US9712396B2 (en) * 2015-04-28 2017-07-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Topology configuration of processing elements array by using packets
US10042794B2 (en) * 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US20170070397A1 (en) * 2015-09-09 2017-03-09 Ca, Inc. Proactive infrastructure fault, root cause, and impact management
US20170168541A1 (en) 2015-12-15 2017-06-15 Intel Corporation Processor core energy management
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10558580B2 (en) 2016-02-29 2020-02-11 Apple Inc. Methods and apparatus for loading firmware on demand
US10191859B2 (en) 2016-03-31 2019-01-29 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
WO2017166269A1 (en) * 2016-04-01 2017-10-05 Intel Corporation System and method to accelerate reduce operations in graphics processor
US20170354396A1 (en) * 2016-06-09 2017-12-14 General Electric Company Wireless ultrasound probe adapter
WO2018048723A1 (en) * 2016-09-09 2018-03-15 The Charles Stark Draper Laboratory, Inc. Methods and systems for achieving trusted fault tolerance of a system of untrusted subsystems
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10382380B1 (en) * 2016-11-17 2019-08-13 Amazon Technologies, Inc. Workload management service for first-in first-out queues for network-accessible queuing and messaging services
US10375038B2 (en) 2016-11-30 2019-08-06 International Business Machines Corporation Symmetric multiprocessing management
US10331532B2 (en) 2017-01-19 2019-06-25 Qualcomm Incorporated Periodic non-intrusive diagnosis of lockstep systems
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10908995B2 (en) 2017-09-29 2021-02-02 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system
CN109802900B (zh) * 2017-11-16 2021-11-19 中兴通讯股份有限公司 报文缓存、读取方法、装置及计算机可读存储介质
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US20210141697A1 (en) * 2018-03-06 2021-05-13 DinoplusAI Holdings Limited Mission-Critical AI Processor with Multi-Layer Fault Tolerance Support
US10747708B2 (en) 2018-03-08 2020-08-18 Allegro Microsystems, Llc Communication system between electronic devices
CN111819547A (zh) 2018-03-26 2020-10-23 拉姆伯斯公司 命令/地址通道错误检测
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US10817361B2 (en) * 2018-05-07 2020-10-27 Hewlett Packard Enterprise Development Lp Controlling error propagation due to fault in computing node of a distributed computing system
US11381514B2 (en) 2018-05-07 2022-07-05 Apple Inc. Methods and apparatus for early delivery of data link layer packets
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US11509531B2 (en) * 2018-10-30 2022-11-22 Red Hat, Inc. Configuration sharing and validation for nodes in a grid network
US10951544B2 (en) * 2019-01-30 2021-03-16 The Boeing Company Apparatus and method of crosschecking data copies using one or more voter elements
US10873429B1 (en) * 2019-03-28 2020-12-22 Rockwell Collins, Inc. Data frame error recovery for multi-node systems
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11665658B1 (en) 2021-04-16 2023-05-30 Rockwell Collins, Inc. System and method for application of doppler corrections for time synchronized transmitter and receiver
US11726162B2 (en) 2021-04-16 2023-08-15 Rockwell Collins, Inc. System and method for neighbor direction and relative velocity determination via doppler nulling techniques
US11737121B2 (en) 2021-08-20 2023-08-22 Rockwell Collins, Inc. System and method to compile and distribute spatial awareness information for network
US20230239105A1 (en) * 2020-06-08 2023-07-27 Nokia Technologies Oy Applying uplink channel information to determine data processing model deployed for downlink use
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11360918B1 (en) * 2020-12-21 2022-06-14 Otis Elevator Company Real-time processing system synchronization in a control system
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
EP4095704B1 (en) * 2021-05-26 2023-08-23 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method
KR102308990B1 (ko) * 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665173A (en) 1968-09-03 1972-05-23 Ibm Triple modular redundancy/sparing
US3864670A (en) * 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
DE2202231A1 (de) 1972-01-18 1973-07-26 Siemens Ag Verarbeitungssystem mit verdreifachten systemeinheiten
FR2182259A5 (ja) 1972-04-24 1973-12-07 Cii
US3883798A (en) 1972-05-04 1975-05-13 Hoffmann La Roche Free flow resonant cavity measuring apparatus
US3814921A (en) * 1972-11-15 1974-06-04 Honeywell Inf Systems Apparatus and method for a memory partial-write of error correcting encoded data
IT1014277B (it) 1974-06-03 1977-04-20 Cselt Centro Studi Lab Telecom Sistema di controllo di elaboratori di processo operanti in parallelo
IT1036311B (it) * 1975-06-17 1979-10-30 Cselt Centro Studi Lab Telecom Sistema duplicato per la supervi sione e il controllo di impianti di telecomunicazione duplicati
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
GB2019622B (en) 1978-04-14 1982-04-07 Lucas Industries Ltd Digital computing apparatus
US4200226A (en) 1978-07-12 1980-04-29 Euteco S.P.A. Parallel multiprocessing system for an industrial plant
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
JPS55106976A (en) 1979-02-02 1980-08-16 Hitachi Ltd Controller for elevator
FR2450008A1 (fr) * 1979-02-21 1980-09-19 Portejoie Jean Francois Circuit de synchronisation de signaux numeriques plesiochrones par justification
US4428044A (en) 1979-09-20 1984-01-24 Bell Telephone Laboratories, Incorporated Peripheral unit controller
US4371754A (en) 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
ZA821999B (en) * 1981-03-31 1983-05-25 British Telecomm Computor or processor control systems
US4453215A (en) 1981-10-01 1984-06-05 Stratus Computer, Inc. Central processing apparatus for fault-tolerant computing
US4521871A (en) * 1982-04-12 1985-06-04 Allen-Bradley Company Programmable controller with back-up capability
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
JPS59121697A (ja) * 1982-12-27 1984-07-13 Toshiba Corp シフトレジスタ
JPS59142799A (ja) * 1983-02-04 1984-08-16 Hitachi Ltd バツクアツプ用蓄電装置付二重化記憶装置
US4541094A (en) 1983-03-21 1985-09-10 Sequoia Systems, Inc. Self-checking computer circuitry
US5212773A (en) * 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US4912698A (en) * 1983-09-26 1990-03-27 Siemens Aktiengesellschaft Multi-processor central control unit of a telephone exchange system and its operation
US4589066A (en) * 1984-05-31 1986-05-13 General Electric Company Fault tolerant, frame synchronization for multiple processor systems
US4823256A (en) 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
CA1220830A (en) * 1984-12-28 1987-04-21 David S. Drynan Transmitting sequence numbers of information in a packet data transmission system
US4612636A (en) * 1984-12-31 1986-09-16 Northern Telecom Limited Multiple channel depacketizer
AU568977B2 (en) * 1985-05-10 1988-01-14 Tandem Computers Inc. Dual processor error detection system
US4757442A (en) * 1985-06-17 1988-07-12 Nec Corporation Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor
US4740962A (en) * 1985-12-23 1988-04-26 Motorola, Inc. Synchronizer for time division multiplexed data
US4703421A (en) * 1986-01-03 1987-10-27 Gte Communication Systems Corporation Ready line synchronization circuit for use in a duplicated computer system
US4750175A (en) * 1986-08-29 1988-06-07 Pactel Communications Companies Network diagnostic apparatus and method
US4847837A (en) * 1986-11-07 1989-07-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Local area network with fault-checking, priorities and redundant backup
DE3638947C2 (de) * 1986-11-14 1995-08-31 Bosch Gmbh Robert Verfahren zur Synchronisation von Rechnern eines Mehrrechnersystems und Mehrrechnersystem
US5165023A (en) 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
WO1988007314A1 (en) * 1987-03-19 1988-09-22 Siemens Aktiengesellschaft Process for operating a multiprocessor central control unit of a relay system
US5117420A (en) * 1987-04-27 1992-05-26 Thinking Machines Corporation Method and apparatus for routing message packets
US5359727A (en) * 1987-04-27 1994-10-25 Hitachi, Ltd. Clock generator using PLL and information processing system using the clock generator
US5133064A (en) * 1987-04-27 1992-07-21 Hitachi, Ltd. Data processing system generating clock signal from an input clock, phase locked to the input clock and used for clocking logic devices
WO1988008576A2 (en) * 1987-05-01 1988-11-03 Digital Equipment Corporation Apparatus and method for servicing interrupts utilizing a pended bus
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
EP0306244B1 (en) * 1987-09-04 1995-06-21 Digital Equipment Corporation Fault tolerant computer system with fault isolation
EP0306211A3 (en) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
US4916704A (en) 1987-09-04 1990-04-10 Digital Equipment Corporation Interface of non-fault tolerant components to fault tolerant system
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
US5089954A (en) * 1988-08-08 1992-02-18 Bell Communications Research, Inc. Method for handling conversational transactions in a distributed processing environment
US4918695A (en) * 1988-08-30 1990-04-17 Unisys Corporation Failure detection for partial write operations for memories
JPH0797328B2 (ja) * 1988-10-25 1995-10-18 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン フオールト・トレラント同期システム
KR900008516A (ko) * 1988-11-01 1990-06-04 미다 가쓰시게 버퍼 기억장치
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US4965793A (en) * 1989-02-03 1990-10-23 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multi-processor
US5020023A (en) * 1989-02-23 1991-05-28 International Business Machines Corporation Automatic vernier synchronization of skewed data streams
GB2229896B (en) * 1989-02-24 1993-06-30 Rosemount Inc Technique for acknowledging packets
US5088091A (en) * 1989-06-22 1992-02-11 Digital Equipment Corporation High-speed mesh connected local area network
US5179558A (en) * 1989-06-22 1993-01-12 Digital Equipment Corporation Routing apparatus and method for high-speed mesh connected local area network
US5068851A (en) * 1989-08-01 1991-11-26 Digital Equipment Corporation Apparatus and method for documenting faults in computing modules
US5251227A (en) * 1989-08-01 1993-10-05 Digital Equipment Corporation Targeted resets in a data processor including a trace memory to store transactions
ATE144058T1 (de) * 1989-08-01 1996-10-15 Digital Equipment Corp Massenspeicherübertragung während der neusynchronisierung
US5008805A (en) * 1989-08-03 1991-04-16 International Business Machines Corporation Real time, fail safe process control system and method
US5088021A (en) * 1989-09-07 1992-02-11 Honeywell, Inc. Apparatus and method for guaranteed data store in redundant controllers of a process control system
US5091847A (en) 1989-10-03 1992-02-25 Grumman Aerospace Corporation Fault tolerant interface station
US5355090A (en) * 1989-10-06 1994-10-11 Rockwell International Corporation Phase corrector for redundant clock systems and method
US5003558A (en) * 1989-10-30 1991-03-26 International Business Machines Corporation Data synchronizing buffers for data processing channels
JPH03164837A (ja) * 1989-11-22 1991-07-16 Hitachi Ltd 通信制御処理装置の切替方法
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5327553A (en) * 1989-12-22 1994-07-05 Tandem Computers Incorporated Fault-tolerant computer system with /CONFIG filesystem
CA2032067A1 (en) * 1989-12-22 1991-06-23 Douglas E. Jewett Fault-tolerant computer system with online reintegration and shutdown/restart
US5218676A (en) 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
ATE127598T1 (de) * 1990-06-01 1995-09-15 Bell Telephone Mfg Verfahren zum modifizieren eines fehlertoleranten datenverarbeitungssystems.
US5293626A (en) * 1990-06-08 1994-03-08 Cray Research, Inc. Clock distribution apparatus and processes particularly useful in multiprocessor systems
EP0810806A3 (en) * 1990-07-26 2001-04-11 Nec Corporation Method of transmitting a plurality of asynchronous cells
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5202822A (en) * 1990-09-26 1993-04-13 Honeywell Inc. Universal scheme of input/output redundancy in a process control system
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
JPH04271454A (ja) * 1991-02-27 1992-09-28 Toshiba Corp 疎結合計算機システム
CA2068048A1 (en) * 1991-05-06 1992-11-07 Douglas D. Cheung Fault tolerant processing section with dynamically reconfigurable voting
US5271023A (en) * 1991-06-03 1993-12-14 Motorola, Inc. Uninterruptable fault tolerant data processor
JPH06508008A (ja) * 1991-06-12 1994-09-08 ヒューレット・パッカード・カンパニー パケットベースネットワークをテストするための方法および装置
US5381542A (en) * 1991-07-29 1995-01-10 Unisys Corporation System for switching between a plurality of clock sources upon detection of phase alignment thereof and disabling all other clock sources
US5278969A (en) * 1991-08-02 1994-01-11 At&T Bell Laboratories Queue-length monitoring arrangement for detecting consistency between duplicate memories
US5327426A (en) * 1991-09-27 1994-07-05 Echelon Corporation Method and apparatus for preventing unnecessary retransmission of messages in a networked messaging system
US5313475A (en) * 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5294258A (en) * 1992-04-08 1994-03-15 Nordson Corporation Apparatus for producing an integral adhesive matrix
US5371764A (en) * 1992-06-26 1994-12-06 International Business Machines Corporation Method and apparatus for providing an uninterrupted clock signal in a data processing system
US5369651A (en) * 1992-06-30 1994-11-29 Intel Corporation Multiplexed byte enable bus for partial word writes to ECC protected memory
US5398331A (en) * 1992-07-08 1995-03-14 International Business Machines Corporation Shared storage controller for dual copy shared data
US5291482A (en) * 1992-07-24 1994-03-01 At&T Bell Laboratories High bandwidth packet switch
US5434997A (en) * 1992-10-02 1995-07-18 Compaq Computer Corp. Method and apparatus for testing and debugging a tightly coupled mirrored processing system
US5347227A (en) * 1992-12-10 1994-09-13 At&T Bell Laboratories Clock phase adjustment between duplicated clock circuits
US5408649A (en) * 1993-04-30 1995-04-18 Quotron Systems, Inc. Distributed data access system including a plurality of database access processors with one-for-N redundancy
US5435000A (en) * 1993-05-19 1995-07-18 Bull Hn Information Systems Inc. Central processing unit using dual basic processing units and combined result bus
US5440724A (en) * 1993-06-17 1995-08-08 Bull Hn Information Systems Inc. Central processing unit using dual basic processing units and combined result bus and incorporating means for obtaining access to internal BPU test signals
JPH075949A (ja) * 1993-06-18 1995-01-10 Nec Corp 2重化クロック切替えの方法と装置
US5371417A (en) * 1993-07-02 1994-12-06 Tandem Computers Incorporated Multiple frequency output clock generator system
US5379278A (en) * 1993-07-16 1995-01-03 Honeywell Inc. Method of automatic communications recovery
ATE180902T1 (de) * 1993-07-28 1999-06-15 Siemens Ag Aufdatverfahren
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
EP0974912B1 (en) * 1993-12-01 2008-11-05 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5422837A (en) * 1993-12-14 1995-06-06 Bull Hn Information Systems Inc. Apparatus for detecting differences between double precision results produced by dual processing units operating in parallel
US5473599A (en) * 1994-04-22 1995-12-05 Cisco Systems, Incorporated Standby router protocol
US5621885A (en) * 1995-06-07 1997-04-15 Tandem Computers, Incorporated System and method for providing a fault tolerant computer program runtime support environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100414531C (zh) * 2005-04-22 2008-08-27 四川长虹电器股份有限公司 双处理器通信的方法

Also Published As

Publication number Publication date
DE69635570T2 (de) 2006-08-24
EP0752656B1 (en) 2003-09-03
DE69627749D1 (de) 2003-06-05
US5838894A (en) 1998-11-17
DE69627750D1 (de) 2003-06-05
EP0757318A2 (en) 1997-02-05
EP0752656A3 (en) 1999-08-11
EP0752656A2 (en) 1997-01-08
EP0757318B1 (en) 2007-11-14
DE69629766T2 (de) 2004-07-15
JPH09128355A (ja) 1997-05-16
DE69635570D1 (de) 2006-01-19
EP0747833B1 (en) 2003-02-19
DE69626583T2 (de) 2004-02-19
EP0757315A3 (en) 1999-08-11
US5675579A (en) 1997-10-07
CA2178454A1 (en) 1996-12-08
CA2178391A1 (en) 1996-12-08
JPH09128349A (ja) 1997-05-16
CA2178406A1 (en) 1996-12-08
US5751955A (en) 1998-05-12
JPH09128348A (ja) 1997-05-16
US5790776A (en) 1998-08-04
CA2178393A1 (en) 1996-12-08
JP3800564B2 (ja) 2006-07-26
EP0747821B1 (en) 2003-05-02
EP0749069B1 (en) 2003-04-09
EP0747833A3 (en) 1998-12-16
US5689689A (en) 1997-11-18
JPH09146905A (ja) 1997-06-06
EP0748079A2 (en) 1996-12-11
EP0747833A2 (en) 1996-12-11
CA2178409A1 (en) 1996-12-08
EP0747821A2 (en) 1996-12-11
EP0749069A2 (en) 1996-12-18
EP0757315A2 (en) 1997-02-05
DE69626239T2 (de) 2004-01-08
DE69626239D1 (de) 2003-03-27
CA2178407A1 (en) 1996-12-08
EP0747803A3 (en) 1999-08-25
DE69626583D1 (de) 2003-04-17
EP0747821A3 (en) 1999-08-11
DE69629766D1 (de) 2003-10-09
JPH09134337A (ja) 1997-05-20
EP0747803B1 (en) 2005-12-14
JPH09134332A (ja) 1997-05-20
EP0747803A2 (en) 1996-12-11
US5574849A (en) 1996-11-12
JPH1091587A (ja) 1998-04-10
US5914953A (en) 1999-06-22
DE69627749T2 (de) 2004-03-11
DE69627240T2 (de) 2004-01-08
CA2178394A1 (en) 1996-12-08
EP0757318A3 (en) 2001-05-09
DE69627240D1 (de) 2003-05-15
DE69627750T2 (de) 2004-03-25
EP0747820B1 (en) 2003-05-02
US6496940B1 (en) 2002-12-17
EP0749069A3 (en) 1999-08-18
EP0757315B1 (en) 2003-03-12
CA2178405A1 (en) 1996-12-08
JPH09128353A (ja) 1997-05-16
US6233702B1 (en) 2001-05-15
CA2178439A1 (en) 1996-12-08
EP0747820A3 (en) 1999-08-18
EP0747820A2 (en) 1996-12-11
EP0748079A3 (en) 1999-07-07

Similar Documents

Publication Publication Date Title
JP3800564B2 (ja) フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
US6157967A (en) Method of data communication flow control in a data processing system using busy/ready commands
US5751932A (en) Fail-fast, fail-functional, fault-tolerant multiprocessor system
US5867501A (en) Encoding for communicating data and commands
US5675807A (en) Interrupt message delivery identified by storage location of received interrupt data
US6151689A (en) Detecting and isolating errors occurring in data communication in a multiple processor system
US5964835A (en) Storage access validation to data messages using partial storage address data indexed entries containing permissible address range validation for message source
JP3871732B2 (ja) フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JPH09128347A (ja) フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JPH09244960A (ja) フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JPH09244906A (ja) フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JPH09134333A (ja) フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050420

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050920

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051101

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060421

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090512

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100512

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110512

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees