JPH0713789A - フォールトトレラントコンピュータにおけるメモリ管理システム - Google Patents
フォールトトレラントコンピュータにおけるメモリ管理システムInfo
- Publication number
- JPH0713789A JPH0713789A JP6054483A JP5448394A JPH0713789A JP H0713789 A JPH0713789 A JP H0713789A JP 6054483 A JP6054483 A JP 6054483A JP 5448394 A JP5448394 A JP 5448394A JP H0713789 A JPH0713789 A JP H0713789A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cpu
- cpus
- bus
- interrupt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 479
- 238000000034 method Methods 0.000 claims description 48
- 230000001360 synchronised effect Effects 0.000 claims description 33
- 239000000872 buffer Substances 0.000 description 51
- 238000012546 transfer Methods 0.000 description 37
- 240000007320 Pinus strobus Species 0.000 description 24
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 18
- 239000013256 coordination polymer Substances 0.000 description 17
- 238000009826 distribution Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 15
- 230000009471 action Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000014616 translation Effects 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 230000006833 reintegration Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000218691 Cupressaceae Species 0.000 description 1
- 241000289690 Xenarthra Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000015607 signal release Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1691—Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
- G06F11/185—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality and the voting is itself performed redundantly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2017—Error 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 memory access, memory control or I/O control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/181—Eliminating the failing redundant component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 フォールトトレラントタイプのコンピュータ
システムを提供するにあたって、各CPUの状態を他の
CPUによってチェックできるようにする。 【構成】 フォールトトレラントタイプのコンピュータ
システムが、同一の命令ストリームを実行する複数のC
PUと、全てのCPUによってアクセスされるメモリ空
間を有する共通メモリとを備えている。共通メモリ内に
は、各CPU毎の状態情報を格納するためのプライベー
トメモリ空間(155a,155b,155c)が夫々
設けられている。個々のプライベートメモリ空間は、そ
れに対応する1個のCPUによってのみ書き込み可能で
あるが、読み出しは全てのCPUによって可能である。
これによって各々のCPUによって他のCPUと自己の
状態が同じであるかどうかを即座にかつ簡便に評価する
ことができる。
システムを提供するにあたって、各CPUの状態を他の
CPUによってチェックできるようにする。 【構成】 フォールトトレラントタイプのコンピュータ
システムが、同一の命令ストリームを実行する複数のC
PUと、全てのCPUによってアクセスされるメモリ空
間を有する共通メモリとを備えている。共通メモリ内に
は、各CPU毎の状態情報を格納するためのプライベー
トメモリ空間(155a,155b,155c)が夫々
設けられている。個々のプライベートメモリ空間は、そ
れに対応する1個のCPUによってのみ書き込み可能で
あるが、読み出しは全てのCPUによって可能である。
これによって各々のCPUによって他のCPUと自己の
状態が同じであるかどうかを即座にかつ簡便に評価する
ことができる。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
に関し、より詳しくは、多重CPUを有するフォールト
トレラント(fault tolerant)コンピュータにおいて用い
られるメモリ管理システムに関する。
に関し、より詳しくは、多重CPUを有するフォールト
トレラント(fault tolerant)コンピュータにおいて用い
られるメモリ管理システムに関する。
【0002】
【従来の技術】高信頼性のデジタル処理は、冗長性を用
いた様々なコンピュータアーキテクチャにおいて達成さ
れる。例えば、TMR(3重・モジュラ・冗長性)シス
テムは、同じ、命令のストリーム(流れ)を実行する3
個のCPUを、機能を重複する3個の分離した主メモリ
ユニットと分離した入出力(以下、I/Oと略称する)
装置とともに使用できる。そのため、もし各タイプの要
素の中の1つが誤りを犯しても、システムは動作し続け
る。別のフォールトトレラントタイプのシステムが、カ
ッツマン氏等に対して発行され、タンデム・コンピュー
ターズ・インコーポレイテッドに対して譲渡された「多
重プロセッサシステム」と題する米国特許第4,22
8,496号に示されている。
いた様々なコンピュータアーキテクチャにおいて達成さ
れる。例えば、TMR(3重・モジュラ・冗長性)シス
テムは、同じ、命令のストリーム(流れ)を実行する3
個のCPUを、機能を重複する3個の分離した主メモリ
ユニットと分離した入出力(以下、I/Oと略称する)
装置とともに使用できる。そのため、もし各タイプの要
素の中の1つが誤りを犯しても、システムは動作し続け
る。別のフォールトトレラントタイプのシステムが、カ
ッツマン氏等に対して発行され、タンデム・コンピュー
ターズ・インコーポレイテッドに対して譲渡された「多
重プロセッサシステム」と題する米国特許第4,22
8,496号に示されている。
【0003】様々な方法が、冗長性システムにおいて装
置を同期させるために使用されて来た。例えば、「多重
プロセッサを同期させるための方法と装置」と題するア
ール・ダブリュウ・ホーストにより1987年11月9
日に出願され、同様にタンデム・コンピューターズ・イ
ンコーポレイテッドに譲渡された米国特許出願第11
8,503号において、「緩い」(“loose”)同期法
が開示されているが、これは、「フォールトトレラント
計算のための中央処理装置」と題されストラス・コンピ
ュータ・インコーポレイテッドに譲渡された米国特許第
4,453,215号において示されているような単独
のクロックを用いたロック・ステップ同期を使用した他
のシステムと対照的である。
置を同期させるために使用されて来た。例えば、「多重
プロセッサを同期させるための方法と装置」と題するア
ール・ダブリュウ・ホーストにより1987年11月9
日に出願され、同様にタンデム・コンピューターズ・イ
ンコーポレイテッドに譲渡された米国特許出願第11
8,503号において、「緩い」(“loose”)同期法
が開示されているが、これは、「フォールトトレラント
計算のための中央処理装置」と題されストラス・コンピ
ュータ・インコーポレイテッドに譲渡された米国特許第
4,453,215号において示されているような単独
のクロックを用いたロック・ステップ同期を使用した他
のシステムと対照的である。
【0004】「同期ボーティング(synchronization vot
ing)」と呼ばれる技法がデビス(Davies)及びウエイカ
リ(Wakerly)著「冗長性システムにおける同期とマッ
チング」(IEEEトランザクションズ・オン・コンピ
ュータ:IEEE Transactions on computer),19
78年6月号531−539ページ)に開示されてい
る。冗長性のフォールトトレラントシステムにおける割
り込み同期の方法が、ヨンディ(Yondea)ほか著「緩く
同期したTMRシステムのための割り込み取り扱いの実
行」(フォールトトレラント計算についての第15回年
次シンポジウムのプロシーディング(1985年6月)
246−251ページ)に開示されている。「フォール
トトレラントリアルタイムクロック」と題する米国特許
第4,644,698号は、TMRコンピュータシステ
ムにおける使用のための3重モジュラ冗長性クロック構
成を開示している。「多重に冗長なコンピュータのフレ
ーム同期」と題する米国特許第4,733,353号
は、同期フレームを実行することにより周期的に同期さ
れる別々のクロックで動作するCPUを用いる同期法を
開示している。
ing)」と呼ばれる技法がデビス(Davies)及びウエイカ
リ(Wakerly)著「冗長性システムにおける同期とマッ
チング」(IEEEトランザクションズ・オン・コンピ
ュータ:IEEE Transactions on computer),19
78年6月号531−539ページ)に開示されてい
る。冗長性のフォールトトレラントシステムにおける割
り込み同期の方法が、ヨンディ(Yondea)ほか著「緩く
同期したTMRシステムのための割り込み取り扱いの実
行」(フォールトトレラント計算についての第15回年
次シンポジウムのプロシーディング(1985年6月)
246−251ページ)に開示されている。「フォール
トトレラントリアルタイムクロック」と題する米国特許
第4,644,698号は、TMRコンピュータシステ
ムにおける使用のための3重モジュラ冗長性クロック構
成を開示している。「多重に冗長なコンピュータのフレ
ーム同期」と題する米国特許第4,733,353号
は、同期フレームを実行することにより周期的に同期さ
れる別々のクロックで動作するCPUを用いる同期法を
開示している。
【0005】
【発明が解決しようとする課題】25MHzで動作する
インテル80386やモートローラ68030のような
高性能マイクロプロセッサ装置が、高速クロックと大き
な能力を備えて使用できるようになった。また、メモ
リ、ディスクドライブなどのコンピュータシステムの他
の要素もこれに対応してより安価にかつより大きな能力
を備えるようになった。このため、高信頼性のプロッセ
サが同じ傾向に追随することが要求されている。さら
に、コンピュータ産業におけるいくつかのオペレーティ
ングシステムでの標準化は、アプリケーションソフトウ
エアの利用性を大きく拡大した。そのため、同様な要求
が高信頼性システムの分野でもなされ、すなわち、標準
的オペレーティングシステムを利用できる必要がある。
インテル80386やモートローラ68030のような
高性能マイクロプロセッサ装置が、高速クロックと大き
な能力を備えて使用できるようになった。また、メモ
リ、ディスクドライブなどのコンピュータシステムの他
の要素もこれに対応してより安価にかつより大きな能力
を備えるようになった。このため、高信頼性のプロッセ
サが同じ傾向に追随することが要求されている。さら
に、コンピュータ産業におけるいくつかのオペレーティ
ングシステムでの標準化は、アプリケーションソフトウ
エアの利用性を大きく拡大した。そのため、同様な要求
が高信頼性システムの分野でもなされ、すなわち、標準
的オペレーティングシステムを利用できる必要がある。
【0006】そこで、この発明の主な目的は、特にフォ
ールトトレラントタイプの改良された高信頼性コンピュ
ータシステムを提供することであり、そのようなフォー
ルトトレラントタイプのコンピュータシステムにおい
て、各CPUの状態を他のCPUによってチェックでき
るようにすることである。この発明の他の目的は、改良
された冗長性でフォールトトレラントタイプのコンピュ
ータシステムであって、高性能と低コストが両立するも
のを提供することである。特に、改良されたシステム
が、高度に冗長なシステムにおいて通常生じる実行負荷
を避けることが好ましい。この発明の別の目的は、この
発明の別の目的は、速度とソフトウエアの両立性ととも
に信頼性について測定される場合に、性能が改良されて
いる一方、コストも他のより低いコンピュータシステム
と同じくらいである高信頼性コンピュータシステムを提
供することである。この発明のさらに他の目的は、デマ
ンドページングを用いた仮想メモリ管理を使用し、保護
された(上位からの監視、すなわち「核(カーネル:kern
el)」)モードを備えたオペレーティングシステムを実
行できる高信頼性コンピュータシステムを提供すること
である。とくに、オペレーティングシステムは、多重プ
ロセスの実行が、すべて高レベルの性能で可能でなけれ
ばならない。この発明のさらに別の目的は、故障システ
ム部品を検出できオフラインでそれらを交換でき、シス
テムをダウンさせることなく補修されたシステム部品を
再統合できる高信頼性冗長性コンピュータシステムを提
供することである。
ールトトレラントタイプの改良された高信頼性コンピュ
ータシステムを提供することであり、そのようなフォー
ルトトレラントタイプのコンピュータシステムにおい
て、各CPUの状態を他のCPUによってチェックでき
るようにすることである。この発明の他の目的は、改良
された冗長性でフォールトトレラントタイプのコンピュ
ータシステムであって、高性能と低コストが両立するも
のを提供することである。特に、改良されたシステム
が、高度に冗長なシステムにおいて通常生じる実行負荷
を避けることが好ましい。この発明の別の目的は、この
発明の別の目的は、速度とソフトウエアの両立性ととも
に信頼性について測定される場合に、性能が改良されて
いる一方、コストも他のより低いコンピュータシステム
と同じくらいである高信頼性コンピュータシステムを提
供することである。この発明のさらに他の目的は、デマ
ンドページングを用いた仮想メモリ管理を使用し、保護
された(上位からの監視、すなわち「核(カーネル:kern
el)」)モードを備えたオペレーティングシステムを実
行できる高信頼性コンピュータシステムを提供すること
である。とくに、オペレーティングシステムは、多重プ
ロセスの実行が、すべて高レベルの性能で可能でなけれ
ばならない。この発明のさらに別の目的は、故障システ
ム部品を検出できオフラインでそれらを交換でき、シス
テムをダウンさせることなく補修されたシステム部品を
再統合できる高信頼性冗長性コンピュータシステムを提
供することである。
【0007】
【課題を解決するための手段】この発明に係るコンピュ
ータシステムは、同一の命令ストリームを実行する複数
のCPUと、全ての前記CPUによってアクセスされる
メモリ空間を有する共通メモリと、前記各CPUのため
の状態情報を夫々格納するために前記共通メモリ内に設
けられており、夫々に対応する1個のCPUによっての
み書き込み可能なプライベートメモリ空間とを備え、全
てのCPUのための前記プライベートメモリ空間におけ
る前記状態情報が全てのCPUによって読み出し可能で
あり、これによって前記各CPUによって前記状態情報
が同じであるかどうかを評価することを特徴とするもの
である。
ータシステムは、同一の命令ストリームを実行する複数
のCPUと、全ての前記CPUによってアクセスされる
メモリ空間を有する共通メモリと、前記各CPUのため
の状態情報を夫々格納するために前記共通メモリ内に設
けられており、夫々に対応する1個のCPUによっての
み書き込み可能なプライベートメモリ空間とを備え、全
てのCPUのための前記プライベートメモリ空間におけ
る前記状態情報が全てのCPUによって読み出し可能で
あり、これによって前記各CPUによって前記状態情報
が同じであるかどうかを評価することを特徴とするもの
である。
【0008】別の観点によれば、この発明に係るコンピ
ュータシステムは、多重CPUを有するコンピュータシ
ステムであって、すべての前記多重CPUによってアク
セスされるメモリ空間を有する共有メモリを備え、前記
多重CPUの各1つが、状態情報を格納するために前記
共有メモリにおいて独立したプライベートライトメモリ
空間を有し、前記各プライベートライトメモリ空間は前
記多重CPUの1つによってのみ書き込み可能であり、
前記多重CPUの各1つのための前記プライベートライ
トメモリ空間は、すべての前記多重CPUによって読み
出し可能であることを特徴とするものである。
ュータシステムは、多重CPUを有するコンピュータシ
ステムであって、すべての前記多重CPUによってアク
セスされるメモリ空間を有する共有メモリを備え、前記
多重CPUの各1つが、状態情報を格納するために前記
共有メモリにおいて独立したプライベートライトメモリ
空間を有し、前記各プライベートライトメモリ空間は前
記多重CPUの1つによってのみ書き込み可能であり、
前記多重CPUの各1つのための前記プライベートライ
トメモリ空間は、すべての前記多重CPUによって読み
出し可能であることを特徴とするものである。
【0009】更に別の観点によれば、この発明に係るコ
ンピュータシステムを動作させるための方法は、多重プ
ロセッサを有するコンピュータシステムを動作させるた
めの方法であって、すべての前記多重プロセッサによっ
てアクセスされるメモリ空間を有する共有メモリに前記
各多重プロセッサによってデータを格納するステップ
と、1個の多重プロセッサによってのみ書き込み可能で
ある各多重プロセッサのためのプライベートメモリ空間
に前記多重プロセッサの各1つによって情報を格納する
ステップとを備えたことを特徴とするものである。
ンピュータシステムを動作させるための方法は、多重プ
ロセッサを有するコンピュータシステムを動作させるた
めの方法であって、すべての前記多重プロセッサによっ
てアクセスされるメモリ空間を有する共有メモリに前記
各多重プロセッサによってデータを格納するステップ
と、1個の多重プロセッサによってのみ書き込み可能で
ある各多重プロセッサのためのプライベートメモリ空間
に前記多重プロセッサの各1つによって情報を格納する
ステップとを備えたことを特徴とするものである。
【0010】
【作用】本発明に係るフォールトトレラントタイプのコ
ンピュータシステムは、同一の命令ストリームを実行す
る複数のCPUと、全てのCPUによってアクセスされ
るメモリ空間を有する共通メモリ(又は共有メモリ)と
を備えている。共通メモリ内には、各CPU毎の状態情
報を格納するためのプライベートメモリ空間(又はプラ
イベートライトメモリ空間)が夫々設けられている。個
々のプライベートメモリ空間は、それに対応する1個の
CPUによってのみ書き込み可能であるが、読み出しは
全てのCPUによって可能である。これによって各々の
CPUによって、他のCPUと自己の状態が同じである
かどうかを即座にかつ簡便に評価することができる。
ンピュータシステムは、同一の命令ストリームを実行す
る複数のCPUと、全てのCPUによってアクセスされ
るメモリ空間を有する共通メモリ(又は共有メモリ)と
を備えている。共通メモリ内には、各CPU毎の状態情
報を格納するためのプライベートメモリ空間(又はプラ
イベートライトメモリ空間)が夫々設けられている。個
々のプライベートメモリ空間は、それに対応する1個の
CPUによってのみ書き込み可能であるが、読み出しは
全てのCPUによって可能である。これによって各々の
CPUによって、他のCPUと自己の状態が同じである
かどうかを即座にかつ簡便に評価することができる。
【0011】この発明の一実施例によれば、コンピュー
タシステムは、典型的には同じストリームを実行する3
個の同一のCPU(中央処理装置)を使用し、同じデー
タの複数を格納する2個の同一の自己診断メモリモジュ
ールを備える。したがって、古典的TMRシステムにお
けるような3個のCPUと3個のメモリよりはむしろ、
3個のCPUと2個のメモリの構成が使用される。3個
のCPUによるメモリ参照は、2個のメモリの各の3個
の別のポートに接続された3個のバスにより行われる。
フォールトトレラント動作の実行負荷を全CPU自身に
課することを避けるため、また、フォールトトレラント
クロック動作の費用、複雑さ及びタイミングの問題を課
することを避けるため3個のCPUはそれぞれ、それ自
身のために独立したクロックを別々に備えるが、メモリ
参照のようなイベント(event:事象)を検出すること
により、すべてのCPUが、同時に機能を実行するまで
他のCPUより進んでいる任意のCPUをストール(st
all:停止)することにより、緩く同期されている。割
り込みもまた、全CPUに同期され、全CPUが命令ス
トリームの同じ点で割り込みを実行することを保証す
る。別々のCPU−メモリ・バスを介しての3個の非同
期のメモリ参照は、メモリ要求のときに各メモリモジュ
ールの3個の別々のポートでボートされるが、リードデ
ータは、全CPUに戻されたときにボートされない。
タシステムは、典型的には同じストリームを実行する3
個の同一のCPU(中央処理装置)を使用し、同じデー
タの複数を格納する2個の同一の自己診断メモリモジュ
ールを備える。したがって、古典的TMRシステムにお
けるような3個のCPUと3個のメモリよりはむしろ、
3個のCPUと2個のメモリの構成が使用される。3個
のCPUによるメモリ参照は、2個のメモリの各の3個
の別のポートに接続された3個のバスにより行われる。
フォールトトレラント動作の実行負荷を全CPU自身に
課することを避けるため、また、フォールトトレラント
クロック動作の費用、複雑さ及びタイミングの問題を課
することを避けるため3個のCPUはそれぞれ、それ自
身のために独立したクロックを別々に備えるが、メモリ
参照のようなイベント(event:事象)を検出すること
により、すべてのCPUが、同時に機能を実行するまで
他のCPUより進んでいる任意のCPUをストール(st
all:停止)することにより、緩く同期されている。割
り込みもまた、全CPUに同期され、全CPUが命令ス
トリームの同じ点で割り込みを実行することを保証す
る。別々のCPU−メモリ・バスを介しての3個の非同
期のメモリ参照は、メモリ要求のときに各メモリモジュ
ールの3個の別々のポートでボートされるが、リードデ
ータは、全CPUに戻されたときにボートされない。
【0012】2個のメモリは、共に、全CPUまたは全
I/O(すなわち入力/出力)バスから受け取ったすべ
てのライト要求を実行するので、両メモリは、最新に保
たれる。しかし、ただ1個のメモリモジュールは、リー
ド要求に対応して全CPUまたはI/Oバスに戻る。リ
ードデータを作る1個のメモリモジュールが「プライマ
リ」(「主」)と呼ばれ、他方はバックアップである。
従って、入ってくるデータは、ただ1つのソースからで
あり、ボートされない。2個のメモリモジュールへのメ
モリ要求は、ボート続行中は実行されるが、従って、リ
ードデータは、最後のCPUが要求を行った後で少し遅
れて全CPUに対し利用できる。これらのメモリモジュ
ールのために使用されるDRAMが単にリード動作を行
いリフレッシュするためにライトサイクルの大部分を使
用するので、ライトサイクルでさえも実質的に重複し得
る。そこで、ライトサイクルの最後の部分のためにスト
ローブされないならば、リード動作は非破壊的でない。
従って、ライトサイクルは、最初のCPUが要求をする
と直ちに開始されるが、最後の要求が受信され、良好で
あるとボートされるまで完了しない。ボートされないリ
ードデータの戻りと重なったアクセスの特徴は、高性能
のフォールトトレラント動作を、最小の複雑さと費用で
可能にする。
I/O(すなわち入力/出力)バスから受け取ったすべ
てのライト要求を実行するので、両メモリは、最新に保
たれる。しかし、ただ1個のメモリモジュールは、リー
ド要求に対応して全CPUまたはI/Oバスに戻る。リ
ードデータを作る1個のメモリモジュールが「プライマ
リ」(「主」)と呼ばれ、他方はバックアップである。
従って、入ってくるデータは、ただ1つのソースからで
あり、ボートされない。2個のメモリモジュールへのメ
モリ要求は、ボート続行中は実行されるが、従って、リ
ードデータは、最後のCPUが要求を行った後で少し遅
れて全CPUに対し利用できる。これらのメモリモジュ
ールのために使用されるDRAMが単にリード動作を行
いリフレッシュするためにライトサイクルの大部分を使
用するので、ライトサイクルでさえも実質的に重複し得
る。そこで、ライトサイクルの最後の部分のためにスト
ローブされないならば、リード動作は非破壊的でない。
従って、ライトサイクルは、最初のCPUが要求をする
と直ちに開始されるが、最後の要求が受信され、良好で
あるとボートされるまで完了しない。ボートされないリ
ードデータの戻りと重なったアクセスの特徴は、高性能
のフォールトトレラント動作を、最小の複雑さと費用で
可能にする。
【0013】I/O機能は、2つの同一のI/Oバス
(各バスはただ1個のメモリモジュールと別々に接続さ
れる)を用いて実行される。多数のI/Oプロセッサが
2つのI/Oバスに接続され、I/O装置は、複数の対
のI/Oプロセッサに接続されるが、ただ1個のI/O
プロセッサによってアクセスされる。1個のメモリモジ
ュールがプライマリとして表されるので、個のモジュー
ルのためのただ1個のI/Oバスが、全I/Oプロセッ
サを制御する。そして、メモリモジュールとI/Oとの
間のトラックフィックは、ボート(vote)されない。全
CPUは全I/Oプロセッサをメモリモジュールを介し
てアクセスできる。(ここで、各アクセスは、まさにメ
モリアクセスがボートされるようにボートされる。)し
かし、全I/Oプロセッサは、全メモリモジュールをア
クセスできるだけであり、全CPUをアクセスできな
い。全I/Oプロセッサは、全CPUに割り込みを送る
ことができるだけであり、この割り込みは、全CPUに
示される前にメモリモジュール内に集められる。こうし
て、I/O装置アクセスのための同期オーバヘッドは、
全CPUにとって重荷にならず、フォールトトレラント
性がそなえられる。もし1個のI/Oプロセッサが誤っ
たならば、その対の他方のI/Oプロセッサが、オペレ
ーティングシステムにより維持されるI/Oページテー
ブル内のI/O装置に対して用いられるアドレスを単に
変えるだけで、このI/OプロセッサのためのI/O装
置の制御を代わって行うことができる。このように、I
/O装置のフォールトトレラント性と再統合は、システ
ムシャットダウンなしに、そしてさらに、これらのI/
Oバスにおけるボーティングに伴うハードウエア費用と
実行ペナルティなしに可能である。
(各バスはただ1個のメモリモジュールと別々に接続さ
れる)を用いて実行される。多数のI/Oプロセッサが
2つのI/Oバスに接続され、I/O装置は、複数の対
のI/Oプロセッサに接続されるが、ただ1個のI/O
プロセッサによってアクセスされる。1個のメモリモジ
ュールがプライマリとして表されるので、個のモジュー
ルのためのただ1個のI/Oバスが、全I/Oプロセッ
サを制御する。そして、メモリモジュールとI/Oとの
間のトラックフィックは、ボート(vote)されない。全
CPUは全I/Oプロセッサをメモリモジュールを介し
てアクセスできる。(ここで、各アクセスは、まさにメ
モリアクセスがボートされるようにボートされる。)し
かし、全I/Oプロセッサは、全メモリモジュールをア
クセスできるだけであり、全CPUをアクセスできな
い。全I/Oプロセッサは、全CPUに割り込みを送る
ことができるだけであり、この割り込みは、全CPUに
示される前にメモリモジュール内に集められる。こうし
て、I/O装置アクセスのための同期オーバヘッドは、
全CPUにとって重荷にならず、フォールトトレラント
性がそなえられる。もし1個のI/Oプロセッサが誤っ
たならば、その対の他方のI/Oプロセッサが、オペレ
ーティングシステムにより維持されるI/Oページテー
ブル内のI/O装置に対して用いられるアドレスを単に
変えるだけで、このI/OプロセッサのためのI/O装
置の制御を代わって行うことができる。このように、I
/O装置のフォールトトレラント性と再統合は、システ
ムシャットダウンなしに、そしてさらに、これらのI/
Oバスにおけるボーティングに伴うハードウエア費用と
実行ペナルティなしに可能である。
【0014】説明された実施例において使用されるメモ
リシステムは、複数のレベルで階層的である。各CPU
は、それ自身のキャッシュ(cache)を備え、本質的に
CPUのクロック速度で動作する。そこで、各CPU
は、他のCPUによりアクセスできないローカルメモリ
を備え、仮想メモリ管理は、オペレーティングシステム
の核と現在のタスクのページを全3個のCPUのための
ローカルメモリの中にあることを許可し、課されたボー
ティングまたは同期のようなフォールトトレラント性の
オーバヘッドなしに高速でアクセス可能にする。次に、
グローバルメモリとして呼ばれるメモリモジュールレベ
ルがあり、ここで、ボーティングと同期化が行われ、ア
クセスタイムの負荷が導入される。しかし、グローバル
メモリの速度は、ディスクアクセスよりもずっと速い。
従って、このレベルは、デマンドページングの第1レベ
ルのためにディスクを使用するためよりはむしろ、最速
のエリアに最も使用されるデータを保つためのローカル
メモリとの、ページのスワッピングのために使用され
る。
リシステムは、複数のレベルで階層的である。各CPU
は、それ自身のキャッシュ(cache)を備え、本質的に
CPUのクロック速度で動作する。そこで、各CPU
は、他のCPUによりアクセスできないローカルメモリ
を備え、仮想メモリ管理は、オペレーティングシステム
の核と現在のタスクのページを全3個のCPUのための
ローカルメモリの中にあることを許可し、課されたボー
ティングまたは同期のようなフォールトトレラント性の
オーバヘッドなしに高速でアクセス可能にする。次に、
グローバルメモリとして呼ばれるメモリモジュールレベ
ルがあり、ここで、ボーティングと同期化が行われ、ア
クセスタイムの負荷が導入される。しかし、グローバル
メモリの速度は、ディスクアクセスよりもずっと速い。
従って、このレベルは、デマンドページングの第1レベ
ルのためにディスクを使用するためよりはむしろ、最速
のエリアに最も使用されるデータを保つためのローカル
メモリとの、ページのスワッピングのために使用され
る。
【0015】この発明の開示された実施例の1つの特徴
は、システムをシャットダウンすることなしにCPUモ
ジュールやメモリモジュールのような故障部品を交換す
る能力である。こうして、このシステムは、部品が故障
し、取り換えねばならない場合でさえも、連続的な使用
ができる。さらに、高レベルのフォールトトレラント性
がより少ない部品で達成できる。例えば、フォールトト
レラントなクロック動作が必要でなく、3個でなく2個
のメモリモジュールだけが必要であり、ボーディング回
路が最小にできる。このことは、故障する部品が少な
く、信頼性が増大したことを意味する。すなわち、部品
がより少ないので、故障がより少なく、故障があると
き、システムをランさせたまま、その部品が分離され、
システムシャットダウンなしに取り換えできる。
は、システムをシャットダウンすることなしにCPUモ
ジュールやメモリモジュールのような故障部品を交換す
る能力である。こうして、このシステムは、部品が故障
し、取り換えねばならない場合でさえも、連続的な使用
ができる。さらに、高レベルのフォールトトレラント性
がより少ない部品で達成できる。例えば、フォールトト
レラントなクロック動作が必要でなく、3個でなく2個
のメモリモジュールだけが必要であり、ボーディング回
路が最小にできる。このことは、故障する部品が少な
く、信頼性が増大したことを意味する。すなわち、部品
がより少ないので、故障がより少なく、故障があると
き、システムをランさせたまま、その部品が分離され、
システムシャットダウンなしに取り換えできる。
【0016】このシステムのCPU(中央処理装置)
は、好ましくは、UNIX(登録商標)のようなオペレ
ーティングシステムが使用可能な市販の高性能マイクロ
プロセッサチップを使用する。システムをフォールトト
レラントにする部分は、オペレーティングシステムに対
して透明であるか、又はオペレーティングシステムに対
して容易に適合できる。従って、高性能なフォールトト
レラントシステムは、一時的に広く使用されるマルチタ
スクのオペレーティングシステムとアプリケーションソ
フトウエアとの同等性を可能にして提供される。
は、好ましくは、UNIX(登録商標)のようなオペレ
ーティングシステムが使用可能な市販の高性能マイクロ
プロセッサチップを使用する。システムをフォールトト
レラントにする部分は、オペレーティングシステムに対
して透明であるか、又はオペレーティングシステムに対
して容易に適合できる。従って、高性能なフォールトト
レラントシステムは、一時的に広く使用されるマルチタ
スクのオペレーティングシステムとアプリケーションソ
フトウエアとの同等性を可能にして提供される。
【0017】メモリモジュールは本質的には2重化さ
れ、又は互いに同一のデータを格納するが、データがす
べてのCPUによって読み出し可能であるような方法
で、各CPUによって別々にデータを格納することを可
能にするための必要性がいくつかの状態においてまだ存
在する。もちろん、例示の実施例のCPUは(メモリモ
ジュール内ではなくCPUモジュールにおいて)ローカ
ルメモリを有するが、このローカルメモリを他のCPU
によってアクセスすることはできない。そこで、本発明
で提案するように、プライベートメモリ若しくはプライ
ベートライトメモリの領域を共通メモリ若しくは共有メ
モリの領域内に含み、各CPUによって独特の状態情報
をそれぞれに書き込むことができ、それから、他のCP
Uによってこれを読み出し、例えば比較動作等ボーティ
ングを行うことができるようにすることは、極めて有利
であり、有用な効果をもたらすものである。
れ、又は互いに同一のデータを格納するが、データがす
べてのCPUによって読み出し可能であるような方法
で、各CPUによって別々にデータを格納することを可
能にするための必要性がいくつかの状態においてまだ存
在する。もちろん、例示の実施例のCPUは(メモリモ
ジュール内ではなくCPUモジュールにおいて)ローカ
ルメモリを有するが、このローカルメモリを他のCPU
によってアクセスすることはできない。そこで、本発明
で提案するように、プライベートメモリ若しくはプライ
ベートライトメモリの領域を共通メモリ若しくは共有メ
モリの領域内に含み、各CPUによって独特の状態情報
をそれぞれに書き込むことができ、それから、他のCP
Uによってこれを読み出し、例えば比較動作等ボーティ
ングを行うことができるようにすることは、極めて有利
であり、有用な効果をもたらすものである。
【0018】一実施態様において、このプライベートメ
モリへの書き込みは、複数のCPUの命令ストリームが
まだ同一であり、かつ用いられるアドレスが同一である
ようなやり方でアクセスされ、その結果、同一のコード
ストリームの完全な状態が維持される。プライベートメ
モリへの書き込み動作がメモリモジュールによって検出
されるとき、このデータは異なるかもしれないので、デ
ータのボーティング(voting:投票)は一時中止される
が、アドレスとコマンドは依然としてボート(vote:投
票)される。プライベート書き込みのために用いられる
領域を、命令ストリームの制御のもとで、変化し又は除
去してもよい。従って、独特のデータを比較するための
能力は、同期化をバイパスせずかつ機構をボート(vot
e)することなしに、かつ多重CPUによって実行され
るコードの同一の特質を乱すことなしに、柔軟性のある
方法で提供される。
モリへの書き込みは、複数のCPUの命令ストリームが
まだ同一であり、かつ用いられるアドレスが同一である
ようなやり方でアクセスされ、その結果、同一のコード
ストリームの完全な状態が維持される。プライベートメ
モリへの書き込み動作がメモリモジュールによって検出
されるとき、このデータは異なるかもしれないので、デ
ータのボーティング(voting:投票)は一時中止される
が、アドレスとコマンドは依然としてボート(vote:投
票)される。プライベート書き込みのために用いられる
領域を、命令ストリームの制御のもとで、変化し又は除
去してもよい。従って、独特のデータを比較するための
能力は、同期化をバイパスせずかつ機構をボート(vot
e)することなしに、かつ多重CPUによって実行され
るコードの同一の特質を乱すことなしに、柔軟性のある
方法で提供される。
【0019】
【実施例】以下、添付の図面を参照して本発明の実施例
を説明する。図1を参照すると、本発明の特徴を用いた
コンピュータシステムは、一実施例において、論理プロ
セッサとして動作する3個の同一のプロセッサ11、1
2及び13(以下、それぞれCPU−A,CPU−B及
びCPU−Cという。)を備え、これら3個は、典型的
には同じ命令ストリームを実行する。3個のプロセッサ
が同じ命令ストリ−ムを実行しない唯一の時間は、シス
テム起動自己テスト、診断などの動作である。3個のプ
ロセッサは、2個のメモリモジュール14と15(メモ
リ#1、メモリ#2と呼ばれる)と接続され、各メモリ
は、同じアドレス空間に同一のデータを格納する。好ま
しい実施例においては、各プロセッサ11、12及び1
3はそれぞれに固有のローカルメモリ16を含み、各ロ
ーカルメモリ16は該メモリを含むプロセッサによって
のみアクセス可能である。
を説明する。図1を参照すると、本発明の特徴を用いた
コンピュータシステムは、一実施例において、論理プロ
セッサとして動作する3個の同一のプロセッサ11、1
2及び13(以下、それぞれCPU−A,CPU−B及
びCPU−Cという。)を備え、これら3個は、典型的
には同じ命令ストリームを実行する。3個のプロセッサ
が同じ命令ストリ−ムを実行しない唯一の時間は、シス
テム起動自己テスト、診断などの動作である。3個のプ
ロセッサは、2個のメモリモジュール14と15(メモ
リ#1、メモリ#2と呼ばれる)と接続され、各メモリ
は、同じアドレス空間に同一のデータを格納する。好ま
しい実施例においては、各プロセッサ11、12及び1
3はそれぞれに固有のローカルメモリ16を含み、各ロ
ーカルメモリ16は該メモリを含むプロセッサによって
のみアクセス可能である。
【0020】各プロセッサ11、12及び13は、各メ
モリモジュール14と15と同様に、それ自身の固有の
別々のクロック発振器17を備える。この実施例におい
て、全プロセッサは、「ロックステップ」でランされ
ず、その代わり、上述の米国出願第118,503号で
明らかにされたような方法により、すなわち、これらの
CPUを同期化させる外部メモリ参照のようなイベント
を使用して、緩く同期される。外部の割り込みは、各プ
ロセッサから他の2個のプロセッサへ割り込み要求とス
テイタスを結合するための1組のバスを使用する技法に
よって、3個のCPUの間で同期化される。各プロセッ
サCPU−A、CPU−B及びCPU−Cは、それ自身
と他の2個との3個の割り込み要求に対して応答的であ
り、命令ストリームの同じ点においてこれらのCPUに
割り込み要求を示す。メモリモジュール14と15は、
メモリ参照をボートし、全3個のCPUが同じ要求(故
障に対する準備とともに)を行ったときにのみ、メモリ
参照が進むことを許可する。このように、これらのプロ
セッサは、外部のイベント(メモリ参照)の時に同期化
され、その結果、プロセッサは、典型的には、同じ命令
ストリームを、同じシーケンスで、ただし必ずしも同期
イベントの間の時間における平行した時間サイクルの間
ではないが、実行する。さらに、外部の割り込みは、同
期化されて、各CPUの命令ストリームにおける同一の
点で実行される。
モリモジュール14と15と同様に、それ自身の固有の
別々のクロック発振器17を備える。この実施例におい
て、全プロセッサは、「ロックステップ」でランされ
ず、その代わり、上述の米国出願第118,503号で
明らかにされたような方法により、すなわち、これらの
CPUを同期化させる外部メモリ参照のようなイベント
を使用して、緩く同期される。外部の割り込みは、各プ
ロセッサから他の2個のプロセッサへ割り込み要求とス
テイタスを結合するための1組のバスを使用する技法に
よって、3個のCPUの間で同期化される。各プロセッ
サCPU−A、CPU−B及びCPU−Cは、それ自身
と他の2個との3個の割り込み要求に対して応答的であ
り、命令ストリームの同じ点においてこれらのCPUに
割り込み要求を示す。メモリモジュール14と15は、
メモリ参照をボートし、全3個のCPUが同じ要求(故
障に対する準備とともに)を行ったときにのみ、メモリ
参照が進むことを許可する。このように、これらのプロ
セッサは、外部のイベント(メモリ参照)の時に同期化
され、その結果、プロセッサは、典型的には、同じ命令
ストリームを、同じシーケンスで、ただし必ずしも同期
イベントの間の時間における平行した時間サイクルの間
ではないが、実行する。さらに、外部の割り込みは、同
期化されて、各CPUの命令ストリームにおける同一の
点で実行される。
【0021】CPU−Aプロセッサ11は、バス21を
介して、メモリ#1モジュール14とメモリ#2モジュ
ール15に接続される。同様に、CPU−Bプロセッサ
12は、バス22を介して、メモリ#1モジュール14
とメモリ#2モジュール15に接続される。そして、C
PU−Cプロセッサ13は、バス23を介して、メモリ
モジュール14、15に接続される。これらのバス2
1、22、23は、32ビット多重アドレス/データバ
ス、コマンドバス、及びアドレスとデータのストローブ
のための制御ラインを含む。これらのCPUは、これら
のバス21、22及び23の制御を備え、そのため、ア
ービトレーション(arbitration)またはバス要求やバ
ス使用承認(bus grant)はない。
介して、メモリ#1モジュール14とメモリ#2モジュ
ール15に接続される。同様に、CPU−Bプロセッサ
12は、バス22を介して、メモリ#1モジュール14
とメモリ#2モジュール15に接続される。そして、C
PU−Cプロセッサ13は、バス23を介して、メモリ
モジュール14、15に接続される。これらのバス2
1、22、23は、32ビット多重アドレス/データバ
ス、コマンドバス、及びアドレスとデータのストローブ
のための制御ラインを含む。これらのCPUは、これら
のバス21、22及び23の制御を備え、そのため、ア
ービトレーション(arbitration)またはバス要求やバ
ス使用承認(bus grant)はない。
【0022】各メモリモジュール14と15は、それぞ
れの入出力バス24又は25に別々に接続され、各バス
は、2個(またはそれ以上)の入出力プロセッサに接続
される。このシステムは、個々のシステム構成のために
必要なI/O装置を収容するために必要な多数のI/O
プロセッサを備えることができる。各入出力プロセッサ
26、27は、バス28に接続される。バス28は、V
MEバス(登録商標)のような標準の構成であってもよ
い。そして、各バス28は、標準のI/Oコントローラ
30とのインターフェースのための1個以上のバスイン
ターフェースモジュール(BIM)29に接続されてい
る。各バスインターフェースモジュール29は、2個の
バス28に接続され、従って、1個のI/Oプロセッサ
26または27の故障、または1個のバスチャンネル2
8の故障は、許容される。
れの入出力バス24又は25に別々に接続され、各バス
は、2個(またはそれ以上)の入出力プロセッサに接続
される。このシステムは、個々のシステム構成のために
必要なI/O装置を収容するために必要な多数のI/O
プロセッサを備えることができる。各入出力プロセッサ
26、27は、バス28に接続される。バス28は、V
MEバス(登録商標)のような標準の構成であってもよ
い。そして、各バス28は、標準のI/Oコントローラ
30とのインターフェースのための1個以上のバスイン
ターフェースモジュール(BIM)29に接続されてい
る。各バスインターフェースモジュール29は、2個の
バス28に接続され、従って、1個のI/Oプロセッサ
26または27の故障、または1個のバスチャンネル2
8の故障は、許容される。
【0023】I/Oプロセッサ26と27を、CPU1
1、12及び13によってメモリモジュール14と15
を通してアドレス指定することができ、I/Oプロセッ
サ26、27はメモリモジュールを介して全CPUに割
り込み信号を出力することができる。ディスクドライ
ブ、CRTスクリーンとキーボードを備えたターミナ
ル、及びネットワークアダプタは、I/Oコントローラ
30により作動される典型的な周辺装置である。I/O
コントローラ30は、データブロックのような転送のた
めにメモリモジュール14と15に対しDMAタイプの
参照をすることができる。各I/Oプロセッサ26、2
7などは、バス要求、バス使用承認等のために各メモリ
モジュールに直接に接続された個々のラインを備える。
これらの点から点への接続ラインは、「ラジアル」と呼
ばれ、ラジアルライン31のグループに含まれる。
1、12及び13によってメモリモジュール14と15
を通してアドレス指定することができ、I/Oプロセッ
サ26、27はメモリモジュールを介して全CPUに割
り込み信号を出力することができる。ディスクドライ
ブ、CRTスクリーンとキーボードを備えたターミナ
ル、及びネットワークアダプタは、I/Oコントローラ
30により作動される典型的な周辺装置である。I/O
コントローラ30は、データブロックのような転送のた
めにメモリモジュール14と15に対しDMAタイプの
参照をすることができる。各I/Oプロセッサ26、2
7などは、バス要求、バス使用承認等のために各メモリ
モジュールに直接に接続された個々のラインを備える。
これらの点から点への接続ラインは、「ラジアル」と呼
ばれ、ラジアルライン31のグループに含まれる。
【0024】システムステイタスバス32は、各素子の
ステイタス情報を与える目的のために、上記各CPU1
1、12、13、各メモリモジュール14、15、各I
/Oプロセッサ26、27に、個々に接続される。この
ステイタスバスは、システムに現在存在し、適当に動作
しているCPU、メモリモジュール及びI/Oプロセッ
サについての情報を提供する。
ステイタス情報を与える目的のために、上記各CPU1
1、12、13、各メモリモジュール14、15、各I
/Oプロセッサ26、27に、個々に接続される。この
ステイタスバスは、システムに現在存在し、適当に動作
しているCPU、メモリモジュール及びI/Oプロセッ
サについての情報を提供する。
【0025】3個のCPUと2個のメモリモジュールを
接続する肯定応答/ステイタスバス33は、メモリ要求
が全CPUによって行われたときにモジュール14、1
5が全CPUに肯定応答信号を送信する個々のラインを
含む。同時に、ステイタスフィールドが、コマンドのス
テイタスとコマンドが正しく実行されたか否かとについ
て報告するために送信される。メモリモジュールは、グ
ローバルメモリから読み出されたデータまたは書き込ま
れたデータのパリティを検査するだけでなく、メモリモ
ジュールを介してI/Oバス24と25へまたはバス2
4、25からのデータのパリティを検査し、またコマン
ドの正当性を検査する。これらの検査がCPU11、1
2及び13に報告されるのは、バス33のステイタスラ
インを介してであり、もし誤りが発生すると、故障ルー
チンを、故障部品を分離するためにエンターすることが
できる。
接続する肯定応答/ステイタスバス33は、メモリ要求
が全CPUによって行われたときにモジュール14、1
5が全CPUに肯定応答信号を送信する個々のラインを
含む。同時に、ステイタスフィールドが、コマンドのス
テイタスとコマンドが正しく実行されたか否かとについ
て報告するために送信される。メモリモジュールは、グ
ローバルメモリから読み出されたデータまたは書き込ま
れたデータのパリティを検査するだけでなく、メモリモ
ジュールを介してI/Oバス24と25へまたはバス2
4、25からのデータのパリティを検査し、またコマン
ドの正当性を検査する。これらの検査がCPU11、1
2及び13に報告されるのは、バス33のステイタスラ
インを介してであり、もし誤りが発生すると、故障ルー
チンを、故障部品を分離するためにエンターすることが
できる。
【0026】2個のメモリモジュール14と15がグロ
ーバルメモリに同じデータを格納し、すべてのメモリ参
照を2重に行うように動作しているが、任意の与えられ
た時間では、1個のメモリモジュールがプライマリと指
定され、他方は、バックアップと指定される。メモリラ
イト動作は、両メモリモジュールにより実行されるの
で、両方とも使用可能状態(current)であり、またメモ
リリード動作も両方により実行される。しかし、プライ
マリのメモリモジュールのみが、バス21、22及び2
3に実際にリードデータをロードし、そして、プライマ
リのメモリモジュールのみがマルチマスタバス24と2
5のためのアービトレーションを制御する。プライマリ
のメモリモジュールとバックアップのメモリモジュール
に同じ動作の実行を続けるために、バス34がプライマ
リからバックアップへ制御情報を伝送する。どちらかの
メモリモジュールが、ブートアップにおいてプライマリ
の役割を取り、この役割は、ソフトウエアの制御の下に
動作の間に交換できる。当該役割は、選択されたエラー
条件が全CPUまたはシステムの他のエラー応答性部分
によって検出されるときに、交換できる。
ーバルメモリに同じデータを格納し、すべてのメモリ参
照を2重に行うように動作しているが、任意の与えられ
た時間では、1個のメモリモジュールがプライマリと指
定され、他方は、バックアップと指定される。メモリラ
イト動作は、両メモリモジュールにより実行されるの
で、両方とも使用可能状態(current)であり、またメモ
リリード動作も両方により実行される。しかし、プライ
マリのメモリモジュールのみが、バス21、22及び2
3に実際にリードデータをロードし、そして、プライマ
リのメモリモジュールのみがマルチマスタバス24と2
5のためのアービトレーションを制御する。プライマリ
のメモリモジュールとバックアップのメモリモジュール
に同じ動作の実行を続けるために、バス34がプライマ
リからバックアップへ制御情報を伝送する。どちらかの
メモリモジュールが、ブートアップにおいてプライマリ
の役割を取り、この役割は、ソフトウエアの制御の下に
動作の間に交換できる。当該役割は、選択されたエラー
条件が全CPUまたはシステムの他のエラー応答性部分
によって検出されるときに、交換できる。
【0027】全CPUにおいて発生されたある割り込み
は、また、メモリモジュール14と15によってボート
される。全CPUがそのような割り込み状態となったと
き(及びストールされないとき)、全CPUは割り込み
バス35の個々のラインによって全メモリモジュールに
割り込み要求を出力する。そこで、3個のCPUからの
3個の割り込み要求をボートすることができる。すべて
の割り込みがボートされたとき、メモリモジュールは、
それぞれバス35を介して3個のCPUにボートされた
割り込み要求信号を送信する。この割り込みのボーティ
ングは、また、全CPUの動作についての検査のために
機能する。3個のCPUは、CPU間バス18を介して
このボートされた割り込みをCPU割り込み信号に同期
し、命令ストリームの共通の点で全プロセッサに割り込
みを示す。この割り込み同期は、どのCPUもストール
せずに達成される。
は、また、メモリモジュール14と15によってボート
される。全CPUがそのような割り込み状態となったと
き(及びストールされないとき)、全CPUは割り込み
バス35の個々のラインによって全メモリモジュールに
割り込み要求を出力する。そこで、3個のCPUからの
3個の割り込み要求をボートすることができる。すべて
の割り込みがボートされたとき、メモリモジュールは、
それぞれバス35を介して3個のCPUにボートされた
割り込み要求信号を送信する。この割り込みのボーティ
ングは、また、全CPUの動作についての検査のために
機能する。3個のCPUは、CPU間バス18を介して
このボートされた割り込みをCPU割り込み信号に同期
し、命令ストリームの共通の点で全プロセッサに割り込
みを示す。この割り込み同期は、どのCPUもストール
せずに達成される。
【0028】〈CPUモジュール〉図2を参照して、1
個のプロセッサ11、12又は13がさらに詳細に示さ
れる。全3個のCPUモジュールは、好ましい実施例で
は、同じ構成であり、従って、CPU−Aのみがここで
説明される。価格を競争力のある範囲内に保つために、
そして、既に発展されているソフトウエアとオペレーテ
ィングシステムへのアクセスをただちに提供するため
に、好ましくは、市販のマイクロプロセッサチップが使
用され、多数のデバイスの中の任意の1個が選択でき
る。RISC(縮小命令セット)アーキテクチャは、後
述する緩い同期を実行することにおいて利点がある。し
かし、モトローラ68030デバイスやインテル803
86デバイス(20MHzと25MHzで使用できる)
などのより通常的なCISC(複雑な命令セット)マイ
クロプロセッサが使用できる。
個のプロセッサ11、12又は13がさらに詳細に示さ
れる。全3個のCPUモジュールは、好ましい実施例で
は、同じ構成であり、従って、CPU−Aのみがここで
説明される。価格を競争力のある範囲内に保つために、
そして、既に発展されているソフトウエアとオペレーテ
ィングシステムへのアクセスをただちに提供するため
に、好ましくは、市販のマイクロプロセッサチップが使
用され、多数のデバイスの中の任意の1個が選択でき
る。RISC(縮小命令セット)アーキテクチャは、後
述する緩い同期を実行することにおいて利点がある。し
かし、モトローラ68030デバイスやインテル803
86デバイス(20MHzと25MHzで使用できる)
などのより通常的なCISC(複雑な命令セット)マイ
クロプロセッサが使用できる。
【0029】高速32ビットRISCマイクロプロセッ
サデバイスは、3個の基本的なタイプで複数の製造者か
ら入手できる。すなわち、モトローラは、部品番号88
000としてデバイスを製造し、MIPSコンピュータ
・システムズ・インコーポレイテッドなどは、MIPS
タイプと呼ばれるチップセットを製造し、サン・マイク
ロシステムズは、いわゆるSPARC(登録商標)タイ
プ(スケール可能なプロセッサアーキテクチャ)を発表
している。カリフォルニア州サンホセのサイプレス・セ
ミコンダクタは、例えば、部品番号CY7C601と呼
ばれるマイクロプロセッサ(SPARC標準をサポート
し、33MHzのクロックを用い、20MIPSの(1
秒当たり100万命令)を与える)を製造し、富士通
は、同様にSPARC標準をサポートするCMOSRI
SCマイクロプロセッサ(部品番号S−25)を製造し
ている。
サデバイスは、3個の基本的なタイプで複数の製造者か
ら入手できる。すなわち、モトローラは、部品番号88
000としてデバイスを製造し、MIPSコンピュータ
・システムズ・インコーポレイテッドなどは、MIPS
タイプと呼ばれるチップセットを製造し、サン・マイク
ロシステムズは、いわゆるSPARC(登録商標)タイ
プ(スケール可能なプロセッサアーキテクチャ)を発表
している。カリフォルニア州サンホセのサイプレス・セ
ミコンダクタは、例えば、部品番号CY7C601と呼
ばれるマイクロプロセッサ(SPARC標準をサポート
し、33MHzのクロックを用い、20MIPSの(1
秒当たり100万命令)を与える)を製造し、富士通
は、同様にSPARC標準をサポートするCMOSRI
SCマイクロプロセッサ(部品番号S−25)を製造し
ている。
【0030】図示された実施例におけるCPUボードす
なわちモジュールは、一例として使用され、マイクロプ
ロセッサ40を用いる。このチップ40は、この場合M
IPSコンピュータ・システムズ・インコーポレイテッ
ドにより設計されたR2000デバイスであり、また、
インテグレイテッド・デバイス・テクノロジー・インコ
ーポレイテッドによって製造される。このR2000デ
バイスは、RISCアーキテクチャを用いた32ビット
プロセッサであり、例えば、16.67MHzのクロッ
クで12MIPSの高性能を示す。25MHzのクロッ
クで20MIPSを示すR3000のようなこのデバイ
スのより高速のバージョンを代わりに用いても良い。
なわちモジュールは、一例として使用され、マイクロプ
ロセッサ40を用いる。このチップ40は、この場合M
IPSコンピュータ・システムズ・インコーポレイテッ
ドにより設計されたR2000デバイスであり、また、
インテグレイテッド・デバイス・テクノロジー・インコ
ーポレイテッドによって製造される。このR2000デ
バイスは、RISCアーキテクチャを用いた32ビット
プロセッサであり、例えば、16.67MHzのクロッ
クで12MIPSの高性能を示す。25MHzのクロッ
クで20MIPSを示すR3000のようなこのデバイ
スのより高速のバージョンを代わりに用いても良い。
【0031】プロセッサ40はまた、論理アドレスから
物理アドレスへの翻訳をキャシュするためのトランスレ
ーションルックアサイドバッファを含むメモリ管理のた
めに使用されるコプロセッサを備える。プロセッサ40
は、データバス、アドレスバス、および制御バスを備え
たローカルバスに接続される。別々の命令とデータのキ
ャシュメモリ44と45が、このローカルバスに接続さ
れる。これらのキャシュは、それぞれ64Kバイトサイ
ズであり、プロセッサ40の1つのクロックサイクル内
でアクセスされる。もし追加の性能がこれらのタイプの
計算のために必要ならば、数値計算用すなわち浮動小数
点コプロセッサ46が、このローカルバスに接続され
る。この数値計算用プロセッサデバイスも、MIPSコ
ンピュータ・システムズ・インコーポレイテッドから部
品番号R2010として市販されている。ローカルバス
41、42、43は、ライトバッファ50とリードバッ
ファ51を介して内部バス構造に接続される。このライ
トバッファは、入手可能なデバイス(部品番号R202
0)であり、ライト動作のためにライトバッファ50に
データとアドレスを格納した後に、ライトが実行されて
いる間にストールサイクルを実行しなければならないこ
とよりはむしろ、プロセッサ40にラン(Run)サイ
クルを実行し続けさせるように機能する。
物理アドレスへの翻訳をキャシュするためのトランスレ
ーションルックアサイドバッファを含むメモリ管理のた
めに使用されるコプロセッサを備える。プロセッサ40
は、データバス、アドレスバス、および制御バスを備え
たローカルバスに接続される。別々の命令とデータのキ
ャシュメモリ44と45が、このローカルバスに接続さ
れる。これらのキャシュは、それぞれ64Kバイトサイ
ズであり、プロセッサ40の1つのクロックサイクル内
でアクセスされる。もし追加の性能がこれらのタイプの
計算のために必要ならば、数値計算用すなわち浮動小数
点コプロセッサ46が、このローカルバスに接続され
る。この数値計算用プロセッサデバイスも、MIPSコ
ンピュータ・システムズ・インコーポレイテッドから部
品番号R2010として市販されている。ローカルバス
41、42、43は、ライトバッファ50とリードバッ
ファ51を介して内部バス構造に接続される。このライ
トバッファは、入手可能なデバイス(部品番号R202
0)であり、ライト動作のためにライトバッファ50に
データとアドレスを格納した後に、ライトが実行されて
いる間にストールサイクルを実行しなければならないこ
とよりはむしろ、プロセッサ40にラン(Run)サイ
クルを実行し続けさせるように機能する。
【0032】ライトバッファ50を通るパスに加え、プ
ロセッサ40がライトバッファ50をバイパスしてライ
ト動作を実行することを可能にするためのパスが設けら
れる。このパスは、ソフトウエアの選択の下で、プロセ
ッサに同期のライト動作を行うことを可能にする。もし
ライトバッファバイパス52がイネーブルされ(ライト
バッファ50がイネーブルされず)、プロセッサがライ
ト動作を実行するならば、プロセッサは、ライト動作が
完了するまでストール(一時停止)する。対照的に、ラ
イトバッファがディスエーブルの状態でライト動作が実
行されるとき、データがライトバッファ50に書き込ま
れるので(ライトバッファが満杯でないならば)、プロ
セッサはストールしない。もしプロセッサ40がライト
動作を実行するときにライトバッファがイネーブルされ
るならば、ライトバッファ50は、バス43からの制御
と同様に、バス41からの出力データとバス42からの
アドレスを捕捉する。ライトバッファ50は、主メモリ
へのデータの通過を待機する間に最大4個のそのような
データ−アドレスセットを保持できる。
ロセッサ40がライトバッファ50をバイパスしてライ
ト動作を実行することを可能にするためのパスが設けら
れる。このパスは、ソフトウエアの選択の下で、プロセ
ッサに同期のライト動作を行うことを可能にする。もし
ライトバッファバイパス52がイネーブルされ(ライト
バッファ50がイネーブルされず)、プロセッサがライ
ト動作を実行するならば、プロセッサは、ライト動作が
完了するまでストール(一時停止)する。対照的に、ラ
イトバッファがディスエーブルの状態でライト動作が実
行されるとき、データがライトバッファ50に書き込ま
れるので(ライトバッファが満杯でないならば)、プロ
セッサはストールしない。もしプロセッサ40がライト
動作を実行するときにライトバッファがイネーブルされ
るならば、ライトバッファ50は、バス43からの制御
と同様に、バス41からの出力データとバス42からの
アドレスを捕捉する。ライトバッファ50は、主メモリ
へのデータの通過を待機する間に最大4個のそのような
データ−アドレスセットを保持できる。
【0033】ライトバッファはプロセッサチップ40の
クロック17と同期して動作し、このため、プロセッサ
からバッファへの転送は同期状態でかつプロセッサのマ
シンサイクル速度で行われる。ライトバッファ50は、
もし満杯であってデータを収容できないならば、プロセ
ッサに信号を送信する。プロセッサ40によるリード動
作は、フォーディープ・ライトバッファ50に含まれる
アドレスに対して検査され、そこで、もしメモリ16す
なわちグローバルメモリに書き込まれるためにライトバ
ッファで待機しているデータに対してリード動作が試み
られるならば、リード動作は、ライト動作が完了するま
でストールされる。
クロック17と同期して動作し、このため、プロセッサ
からバッファへの転送は同期状態でかつプロセッサのマ
シンサイクル速度で行われる。ライトバッファ50は、
もし満杯であってデータを収容できないならば、プロセ
ッサに信号を送信する。プロセッサ40によるリード動
作は、フォーディープ・ライトバッファ50に含まれる
アドレスに対して検査され、そこで、もしメモリ16す
なわちグローバルメモリに書き込まれるためにライトバ
ッファで待機しているデータに対してリード動作が試み
られるならば、リード動作は、ライト動作が完了するま
でストールされる。
【0034】ライトバッファ50とリードバッファ51
は、データバス53、アドレスバス54および制御バス
55を備えた内部バス構造に接続される。ローカルメモ
リ16は、この内部バスによってアクセスされ、この内
部バスに接続されたバスインターフェース56は、シス
テムバス21(または他のCPUのためのバス22また
は23)をアクセスするために使用される。この内部バ
スの別々のデータバス53とアドレスバス54(ローカ
ルバスのバス41と42から得られる)は、システムバ
ス21内の多重化アドレス/データバス57に変換さ
れ、コマンドラインと制御ラインは、対応して、この外
部バス内のコマンドライン58と制御ライン59に変換
される。
は、データバス53、アドレスバス54および制御バス
55を備えた内部バス構造に接続される。ローカルメモ
リ16は、この内部バスによってアクセスされ、この内
部バスに接続されたバスインターフェース56は、シス
テムバス21(または他のCPUのためのバス22また
は23)をアクセスするために使用される。この内部バ
スの別々のデータバス53とアドレスバス54(ローカ
ルバスのバス41と42から得られる)は、システムバ
ス21内の多重化アドレス/データバス57に変換さ
れ、コマンドラインと制御ラインは、対応して、この外
部バス内のコマンドライン58と制御ライン59に変換
される。
【0035】バスインターフェースユニット56は、ま
た、メモリモジュール14と15から肯定応答/ステイ
タスライン33を受信する。これらのライン33におい
て、別々のステイタスライン33−1または33−2
は、モジュール14及び15のそれぞれから接続され、
その結果、両メモリモジュールからの応答を、後述する
ように、複数のCPUとグローバルメモリの間の転送
(リードまたはライト)の発生の場合に評価できる。
た、メモリモジュール14と15から肯定応答/ステイ
タスライン33を受信する。これらのライン33におい
て、別々のステイタスライン33−1または33−2
は、モジュール14及び15のそれぞれから接続され、
その結果、両メモリモジュールからの応答を、後述する
ように、複数のCPUとグローバルメモリの間の転送
(リードまたはライト)の発生の場合に評価できる。
【0036】一実施例においては、ローカルメモリ16
は、約8MバイトのRAMからなり、プロセッサ40の
約3個または4個のマシンサイクル内でアクセスでき、
このアクセスは、このCPUのクロック17と同期して
いる。これに反し、モジュール14と15へのメモリア
クセスタイムは、ローカルメモリへのそれに比べて非常
に長く、メモリモジュール14、15へのこのアクセス
は、非同期であり、すべてのCPUが要求とボーティン
グとを行うことを待機することにより課される同期のオ
ーバーヘッドをこうむる。比較のため、I/Oプロセッ
サ26、27、及び29を介しての典型的な市販のディ
スクメモリへのアクセスは、ミリ秒で測定され、すなわ
ち、モジュール14と15へのアクセスよりもかなり遅
い。こうして、CPUチップ40によるメモリアクセス
の階層構造がある。最高は、命令キャシュ44とデータ
キャシュ45であり、64Kバイトのキャシュサイズと
適当なフィルアルゴリズム(fill algorithm)を使用し
たときに多分95%のヒット率を示す。最高の次は、ロ
ーカルメモリ16であり、再び一時的仮想メモリ管理ア
ルゴリズムを使用することにより、ローカルメモリのサ
イズが約8Mバイトである場合に、キャシュミスが発生
し、ローカルメモリにおけるヒットが見いだされ、おそ
らく95%のヒット率が、メモリ参照に対して得られ
る。プロセッサチップの観点からの正味の結果は、メモ
リ参照(I/O参照でなく)のおそらく99%以上が同
期し、同じマシンサイクルまたは3個または4個のマシ
ンサイクル内に起こることである。
は、約8MバイトのRAMからなり、プロセッサ40の
約3個または4個のマシンサイクル内でアクセスでき、
このアクセスは、このCPUのクロック17と同期して
いる。これに反し、モジュール14と15へのメモリア
クセスタイムは、ローカルメモリへのそれに比べて非常
に長く、メモリモジュール14、15へのこのアクセス
は、非同期であり、すべてのCPUが要求とボーティン
グとを行うことを待機することにより課される同期のオ
ーバーヘッドをこうむる。比較のため、I/Oプロセッ
サ26、27、及び29を介しての典型的な市販のディ
スクメモリへのアクセスは、ミリ秒で測定され、すなわ
ち、モジュール14と15へのアクセスよりもかなり遅
い。こうして、CPUチップ40によるメモリアクセス
の階層構造がある。最高は、命令キャシュ44とデータ
キャシュ45であり、64Kバイトのキャシュサイズと
適当なフィルアルゴリズム(fill algorithm)を使用し
たときに多分95%のヒット率を示す。最高の次は、ロ
ーカルメモリ16であり、再び一時的仮想メモリ管理ア
ルゴリズムを使用することにより、ローカルメモリのサ
イズが約8Mバイトである場合に、キャシュミスが発生
し、ローカルメモリにおけるヒットが見いだされ、おそ
らく95%のヒット率が、メモリ参照に対して得られ
る。プロセッサチップの観点からの正味の結果は、メモ
リ参照(I/O参照でなく)のおそらく99%以上が同
期し、同じマシンサイクルまたは3個または4個のマシ
ンサイクル内に起こることである。
【0037】ローカルメモリ16は、メモリコントロー
ラ60によって内部バスからアクセスされる。このメモ
リコントローラ60は、アドレスバス54からのアドレ
スと制御バス55からのアドレスストローブを受信し、
例えば、もしローカルメモリ16が通常のように多重ア
ドレス指定でDRAMを使用するならば、別々の行と列
のアドレスと、RASとCASの制御を発生する。デー
タは、データバス53を介してローカルメモリに書き込
まれ、読み出される。さらに、オペレーティングシステ
ムによって使用可能なので、NVRAMや高速PROM
のような不揮発性メモリ62と同様に、数個のローカル
レジスタ61が内部バスによってアクセスされる。メモ
リのこの部分のいくつかが電源投入のためにのみ使用さ
れ、いくつかがオペレーティングシステムによって使用
され、キャシュ44内でほとんど連続的であり、他は、
メモリマップのキャシュでない部分内に有り得る。
ラ60によって内部バスからアクセスされる。このメモ
リコントローラ60は、アドレスバス54からのアドレ
スと制御バス55からのアドレスストローブを受信し、
例えば、もしローカルメモリ16が通常のように多重ア
ドレス指定でDRAMを使用するならば、別々の行と列
のアドレスと、RASとCASの制御を発生する。デー
タは、データバス53を介してローカルメモリに書き込
まれ、読み出される。さらに、オペレーティングシステ
ムによって使用可能なので、NVRAMや高速PROM
のような不揮発性メモリ62と同様に、数個のローカル
レジスタ61が内部バスによってアクセスされる。メモ
リのこの部分のいくつかが電源投入のためにのみ使用さ
れ、いくつかがオペレーティングシステムによって使用
され、キャシュ44内でほとんど連続的であり、他は、
メモリマップのキャシュでない部分内に有り得る。
【0038】外部割り込みは、図2のCPUモジュール
の割り込み回路65から制御バス43または55でピン
の中の1本によってプロセッサ40に印加される。この
タイプの割り込みは、回路65でボートされるので、割
り込みがプロセッサ40によって実行される前に、全3
個のCPUが割り込みを示されるか否かが決定される。
この目的のために、回路65は、他の2個のCPU12
と13から割り込み未決定(pending)入力を受信し、
この他の2個のCPUにライン67を介して割り込み未
決定信号を送信する。これらのラインは、3個のCPU
11、12及び13をともに接続するバス18の一部で
ある。また、他のタイプの割り込み例えばCPUにより
発生された割り込みをボートするために、回路65は、
このCPUから両メモリモジュール14、15へバス3
5のライン68により割り込み要求信号を送信すること
ができ、そして、ライン69と70を介してメモリモジ
ュールから別々のボートされた割り込み信号を受信す
る。両メモリモジュールは、行われるべき外部割り込み
を与える。1個のI/Oチャンネル28でのキーボード
またはディスクドライブのような外部ソースにて発生さ
れた割り込みは、例えば、各CPU11、12又は13
が、後述されるように、命令ストリーム内の同じ点にあ
るまで、回路65からチップ40の割り込みピンに印加
されない。
の割り込み回路65から制御バス43または55でピン
の中の1本によってプロセッサ40に印加される。この
タイプの割り込みは、回路65でボートされるので、割
り込みがプロセッサ40によって実行される前に、全3
個のCPUが割り込みを示されるか否かが決定される。
この目的のために、回路65は、他の2個のCPU12
と13から割り込み未決定(pending)入力を受信し、
この他の2個のCPUにライン67を介して割り込み未
決定信号を送信する。これらのラインは、3個のCPU
11、12及び13をともに接続するバス18の一部で
ある。また、他のタイプの割り込み例えばCPUにより
発生された割り込みをボートするために、回路65は、
このCPUから両メモリモジュール14、15へバス3
5のライン68により割り込み要求信号を送信すること
ができ、そして、ライン69と70を介してメモリモジ
ュールから別々のボートされた割り込み信号を受信す
る。両メモリモジュールは、行われるべき外部割り込み
を与える。1個のI/Oチャンネル28でのキーボード
またはディスクドライブのような外部ソースにて発生さ
れた割り込みは、例えば、各CPU11、12又は13
が、後述されるように、命令ストリーム内の同じ点にあ
るまで、回路65からチップ40の割り込みピンに印加
されない。
【0039】プロセッサ40は別々のクロック発生器1
7によってクロックが供給されるので、周期的にプロセ
ッサ40を同期状態に戻すためのいくつかのメカニズム
が必要である。クロック発生器17が名目上同じ周波数
でありこれらのデバイスの許容誤差が約25ppm(pa
rts per million)であったとしても、これらのプロセ
ッサは、周期的に同期に戻されないならば、位相が多く
のサイクルでずれてしまう可能性がある。もちろん、外
部割り込みが発生する毎に、全CPUは、(割り込み同
期メカニズムによって)その命令ストリームの同じ点で
割り込まれるという意味で、同期化される。しかし、こ
れは、サイクル計数値を同期化させることを援助しな
い。メモリモジュール14と15内のメモリ参照をボー
トするメカニズムは、後述されるように全CPUをリア
ルタイムで同期状態にする。しかし、ある条件は、長い
周期においてメモリ参照が起こらないという結果を生
じ、そこで、別のメカニズムが、プロセッサ40を同期
に戻すためのストールサイクルを導入するために使用さ
れる。
7によってクロックが供給されるので、周期的にプロセ
ッサ40を同期状態に戻すためのいくつかのメカニズム
が必要である。クロック発生器17が名目上同じ周波数
でありこれらのデバイスの許容誤差が約25ppm(pa
rts per million)であったとしても、これらのプロセ
ッサは、周期的に同期に戻されないならば、位相が多く
のサイクルでずれてしまう可能性がある。もちろん、外
部割り込みが発生する毎に、全CPUは、(割り込み同
期メカニズムによって)その命令ストリームの同じ点で
割り込まれるという意味で、同期化される。しかし、こ
れは、サイクル計数値を同期化させることを援助しな
い。メモリモジュール14と15内のメモリ参照をボー
トするメカニズムは、後述されるように全CPUをリア
ルタイムで同期状態にする。しかし、ある条件は、長い
周期においてメモリ参照が起こらないという結果を生
じ、そこで、別のメカニズムが、プロセッサ40を同期
に戻すためのストールサイクルを導入するために使用さ
れる。
【0040】サイクルカウンタ71は、ランサイクル
(ストールサイクルでなく)であるマシンサイクルを計
数するために、クロック17とプロセッサ40の制御ピ
ンに制御バス43を介して接続される。このカウンタ7
1は、全CPUの間の最大の許容可能なドリフトが発生
する周期(結晶発振子の特定の許容誤差を考慮して)を
表すように選択された最大計数値を有するカウントレジ
スタを含む。このカウントレジスタがオーバーフローす
ると、より遅いプロセッサが追い付くまで、より速いプ
ロセッサをストールする動作が開始される。このカウン
タ71は、メモリモジュール14と15へのメモリ参照
によって同期がなされるときはいつでもリセットされ
る。また、リフレッシュカウンタ72は、後述されるよ
うに、ローカルメモリ16でリフレッシュサイクルを実
行するために使用される。さらに、カウンタ73は、カ
ウンタ71のように、ランサイクルであってストールサ
イクルでないマシンサイクルを計数する。しかし、この
カウンタ73は、メモリ参照によってリセットされな
い。カウンタ73は、以下に説明されるように、割り込
み同期のために使用され、この目的のために、割り込み
同期回路65に出力信号CC−4とCC−8を発生す
る。
(ストールサイクルでなく)であるマシンサイクルを計
数するために、クロック17とプロセッサ40の制御ピ
ンに制御バス43を介して接続される。このカウンタ7
1は、全CPUの間の最大の許容可能なドリフトが発生
する周期(結晶発振子の特定の許容誤差を考慮して)を
表すように選択された最大計数値を有するカウントレジ
スタを含む。このカウントレジスタがオーバーフローす
ると、より遅いプロセッサが追い付くまで、より速いプ
ロセッサをストールする動作が開始される。このカウン
タ71は、メモリモジュール14と15へのメモリ参照
によって同期がなされるときはいつでもリセットされ
る。また、リフレッシュカウンタ72は、後述されるよ
うに、ローカルメモリ16でリフレッシュサイクルを実
行するために使用される。さらに、カウンタ73は、カ
ウンタ71のように、ランサイクルであってストールサ
イクルでないマシンサイクルを計数する。しかし、この
カウンタ73は、メモリ参照によってリセットされな
い。カウンタ73は、以下に説明されるように、割り込
み同期のために使用され、この目的のために、割り込み
同期回路65に出力信号CC−4とCC−8を発生す
る。
【0041】プロセッサ40は、RISC命令セットを
備え、このセットは、メモリからメモリへの命令をサポ
ートしないが、その代わり、メモリからレジスタへの命
令またはレジスタからメモリへの命令(たとえばロード
またはストア)をサポートする。ローカルメモリにしば
しば使用されるデータや現在実行中のコードを保持する
ことは重要である。従って、ブロック転送動作は、バス
インターフェース56に結合されたDMAステートマシ
ン74によりなされる。プロセッサ40は、コマンドと
して機能させるためにDMA回路74のレジスタに1ワ
ードを書き込み、この回路74のレジスタにブロックの
スタートアドレスと長さを書き込む。一実施例では、D
MA回路がブロック転送を引き継ぎ実行する間に、マイ
クロプロセッサはストールをして、バス53−55及び
21によって必要なアドレス、コマンド及びストローブ
を発生する。このブロック転送を開始するためにプロセ
ッサ40によって実行されるコマンドは、DMA回路7
4のレジスタからのリードであってもよい。UNIXオ
ペレーティングシステムにおけるメモリ管理はデマンド
ページングを当てにしているので、これらのブロッ転送
は、最もしばしばグローバルメモリとローカルメモリと
I/Oトラフィックの間に動かされるページである。1
ページは4Kバイトである。もちろん、バス21、22
及び23は、CPUとグローバルメモリの間の1ワード
のリード転送とライト転送をサポートする。参照される
ブロック転送は、ローカルメモリとグローバルのメモリ
の間でのみ可能である。
備え、このセットは、メモリからメモリへの命令をサポ
ートしないが、その代わり、メモリからレジスタへの命
令またはレジスタからメモリへの命令(たとえばロード
またはストア)をサポートする。ローカルメモリにしば
しば使用されるデータや現在実行中のコードを保持する
ことは重要である。従って、ブロック転送動作は、バス
インターフェース56に結合されたDMAステートマシ
ン74によりなされる。プロセッサ40は、コマンドと
して機能させるためにDMA回路74のレジスタに1ワ
ードを書き込み、この回路74のレジスタにブロックの
スタートアドレスと長さを書き込む。一実施例では、D
MA回路がブロック転送を引き継ぎ実行する間に、マイ
クロプロセッサはストールをして、バス53−55及び
21によって必要なアドレス、コマンド及びストローブ
を発生する。このブロック転送を開始するためにプロセ
ッサ40によって実行されるコマンドは、DMA回路7
4のレジスタからのリードであってもよい。UNIXオ
ペレーティングシステムにおけるメモリ管理はデマンド
ページングを当てにしているので、これらのブロッ転送
は、最もしばしばグローバルメモリとローカルメモリと
I/Oトラフィックの間に動かされるページである。1
ページは4Kバイトである。もちろん、バス21、22
及び23は、CPUとグローバルメモリの間の1ワード
のリード転送とライト転送をサポートする。参照される
ブロック転送は、ローカルメモリとグローバルのメモリ
の間でのみ可能である。
【0042】〈プロセッサ〉図3を参照して、実施例の
R2000タイプまたはR3000タイプのプロセッサ
40がさらに詳細に示される。このデバイスは、32個
の32ビットの一般目的のレジスタ76、32ビットの
ALU77、0ビットから64ビットへのシフタ78、
および32×32の多重/分割回路79を備える32ビ
ットのメインCPU75を備える。このCPUは、ま
た、プロセッサバス構造81に接続され、このプロセッ
サバス構造81は、ローカルデータバス41に接続さ
れ、データバス41を介してフェッチされる命令を実行
するための関連する制御ロジックを備えた命令デコーダ
82に接続される。32ビットのローカルアドレスバス
42は、オンチップメモリ管理プロセッサ内のトランス
レーションルックアサイドバッファ(TLB)83を含
む仮想メモリ管理装置によって駆動される。
R2000タイプまたはR3000タイプのプロセッサ
40がさらに詳細に示される。このデバイスは、32個
の32ビットの一般目的のレジスタ76、32ビットの
ALU77、0ビットから64ビットへのシフタ78、
および32×32の多重/分割回路79を備える32ビ
ットのメインCPU75を備える。このCPUは、ま
た、プロセッサバス構造81に接続され、このプロセッ
サバス構造81は、ローカルデータバス41に接続さ
れ、データバス41を介してフェッチされる命令を実行
するための関連する制御ロジックを備えた命令デコーダ
82に接続される。32ビットのローカルアドレスバス
42は、オンチップメモリ管理プロセッサ内のトランス
レーションルックアサイドバッファ(TLB)83を含
む仮想メモリ管理装置によって駆動される。
【0043】TLB83は、仮想アドレスバス84を介
してマイクロプロセッサブロック75から受け取られた
仮想アドレスと比較されるべき64個のエントリを備え
る。バス42の下位の16ビットの部分85は、この仮
想アドレスバス84の下位部分によって駆動され、上位
部分は、もし仮想アドレスが物理的アドレスとして使用
されるならば、バス84からであり、あるいは、もし仮
想アドレス指定が使用され、ヒットが起こるならば、出
力86を介してのTLB83からのタグエントリであ
る。ローカルバスの制御ライン43は、パイプライン及
びバス制御回路87に接続され、内部バス構造81と制
御ロジック82から駆動される。
してマイクロプロセッサブロック75から受け取られた
仮想アドレスと比較されるべき64個のエントリを備え
る。バス42の下位の16ビットの部分85は、この仮
想アドレスバス84の下位部分によって駆動され、上位
部分は、もし仮想アドレスが物理的アドレスとして使用
されるならば、バス84からであり、あるいは、もし仮
想アドレス指定が使用され、ヒットが起こるならば、出
力86を介してのTLB83からのタグエントリであ
る。ローカルバスの制御ライン43は、パイプライン及
びバス制御回路87に接続され、内部バス構造81と制
御ロジック82から駆動される。
【0044】プロセッサ40のマイクロプロセッサブロ
ック75は、RISCタイプであり、多くの命令が1マ
シンサイクルで実行され、命令セットは、ALU動作に
伴うメモリ参照を含む複雑な命令を含むよりはむしろ、
レジスタからレジスタへの命令やロード/ストア命令を
使用する。複雑なアドレス指定スキーム(例えば、レジ
スタA1とレジスタA2の内容の和であるアドレスのオ
ペランドを、レジスタBの内容によりアドレスされる主
メモリの位置に見いだされるアドレスのオペランドに加
え、レジスタCに見いだされるアドレスの位置に主メモ
リにその和の結果をストアせよ。)は、命令セットの一
部として含まれない。その代わり、この動作は、次の多
数の単純なレジスタからレジスタへの命令やロード/ス
トア命令にてなされる。すなわち、レジスタA2をレジ
スタA1に加算せよ、レジスタB内のアドレスのメモリ
位置からレジスタB1をロードせよ、レジスタA1とレ
ジスタB1を加算せよ、レジスタCによりアドレスされ
たメモリ位置にレジスタB1をストアせよ。
ック75は、RISCタイプであり、多くの命令が1マ
シンサイクルで実行され、命令セットは、ALU動作に
伴うメモリ参照を含む複雑な命令を含むよりはむしろ、
レジスタからレジスタへの命令やロード/ストア命令を
使用する。複雑なアドレス指定スキーム(例えば、レジ
スタA1とレジスタA2の内容の和であるアドレスのオ
ペランドを、レジスタBの内容によりアドレスされる主
メモリの位置に見いだされるアドレスのオペランドに加
え、レジスタCに見いだされるアドレスの位置に主メモ
リにその和の結果をストアせよ。)は、命令セットの一
部として含まれない。その代わり、この動作は、次の多
数の単純なレジスタからレジスタへの命令やロード/ス
トア命令にてなされる。すなわち、レジスタA2をレジ
スタA1に加算せよ、レジスタB内のアドレスのメモリ
位置からレジスタB1をロードせよ、レジスタA1とレ
ジスタB1を加算せよ、レジスタCによりアドレスされ
たメモリ位置にレジスタB1をストアせよ。
【0045】コンパイラ技法は、32個のレジスタ76
の使用を最大にするために使用され、すなわち、大部分
の動作が既にレジスタセットにあるオペランドを見いだ
すことを保証する。ロード命令は、実際に、1マシンサ
イクルより長くかかる。このため1命令の潜在(latenc
y)が導入される。ロード命令によってフェッチされる
データは、第2サイクルまで使用されず、もし可能なら
ば、その間に入るサイクルが、ある他の命令のために使
用される。
の使用を最大にするために使用され、すなわち、大部分
の動作が既にレジスタセットにあるオペランドを見いだ
すことを保証する。ロード命令は、実際に、1マシンサ
イクルより長くかかる。このため1命令の潜在(latenc
y)が導入される。ロード命令によってフェッチされる
データは、第2サイクルまで使用されず、もし可能なら
ば、その間に入るサイクルが、ある他の命令のために使
用される。
【0046】メインCPU75は、マシンサイクル当た
りの命令実行を平均化する目的を容易にするために高度
にパイプライン化されている。図4を参照して、1つの
命令が5マシンサイクルを含む周期にわたって実行され
る。ここで、1マシンサイクルは、16.67MHzの
クロック17に対して1クロック周期すなわち60ns
ecである。この5サイクルすなわちパイプステージ
は、1F(1キャシュ44からの命令フェッチ)、RD
(レジスタセット76からのリードオペランド)、AL
U(ALU77での要求される命令を実行)、MEM
(もし要求されたならDキャシュ45をアクセスせ
よ)、及びWB(ALUの結果をレジスタファイル76
に書け)として呼ばれる。図5からわかるように、これ
らの5個のパイプステージは、重なっているので、与え
られたマシンサイクル、例えばサイクル5において、命
令1#5は、その第1パイブステージすなわち1Fパイ
プステージにあり、命令1#1は、その最後のステージ
すなわちWBステージにあり、その他の命令は、その間
に入るパイブステージにある。
りの命令実行を平均化する目的を容易にするために高度
にパイプライン化されている。図4を参照して、1つの
命令が5マシンサイクルを含む周期にわたって実行され
る。ここで、1マシンサイクルは、16.67MHzの
クロック17に対して1クロック周期すなわち60ns
ecである。この5サイクルすなわちパイプステージ
は、1F(1キャシュ44からの命令フェッチ)、RD
(レジスタセット76からのリードオペランド)、AL
U(ALU77での要求される命令を実行)、MEM
(もし要求されたならDキャシュ45をアクセスせ
よ)、及びWB(ALUの結果をレジスタファイル76
に書け)として呼ばれる。図5からわかるように、これ
らの5個のパイプステージは、重なっているので、与え
られたマシンサイクル、例えばサイクル5において、命
令1#5は、その第1パイブステージすなわち1Fパイ
プステージにあり、命令1#1は、その最後のステージ
すなわちWBステージにあり、その他の命令は、その間
に入るパイブステージにある。
【0047】〈メモリモジュール〉図6を参照して、1
個のメモリモジュール14または15が詳細に示され
る。両メモリモジュールは、好ましい実施例において、
同じ構成であるので、メモリ#1モジュールのみが示さ
れる。メモリモジュールは、それぞれ、CPU11、1
2、13から来る3個のバス21、22、23に接続さ
れる3個の入力/出力ポート91、92、93を含む。
これらのポートへの入力は、レジスタ94、95、96
にラッチされ、各ラッチは、データ、アドレス、コマン
ド、及びライト動作のためのストローブ、または、アド
レス、コマンド、及びリード動作のためのストローブを
ストアするための別々のセクションを備える。これらの
3個のレジスタの内容は、全3個のレジスタのみがすべ
てのセクションに接続される入力を備えたボート回路1
00によってボートされる。もし全3個のCPU11、
12、13が同じメモリ要求(同じアドレス、同じコマ
ンド)を行うならば(全CPUは典型的には同じ命令ス
トリームを実行するのでそのような場合がありうる)、
メモリ要求は完了することを許容される。しかし、第1
メモリ要求が、3個のラッチ94、95、96のいずれ
かにラッチされると直ちにメモリアクセスを開始するた
めに通過される。この目的のために、アクセス、データ
及びコマンドは、データバス101、アドレスバス10
2およびコマンドバス103を含む内部バスに印加され
る。この内部バスから、メモリ要求は、アドレスに依存
して、そしてシステム構成に依存して様々なリソースア
クセスする。
個のメモリモジュール14または15が詳細に示され
る。両メモリモジュールは、好ましい実施例において、
同じ構成であるので、メモリ#1モジュールのみが示さ
れる。メモリモジュールは、それぞれ、CPU11、1
2、13から来る3個のバス21、22、23に接続さ
れる3個の入力/出力ポート91、92、93を含む。
これらのポートへの入力は、レジスタ94、95、96
にラッチされ、各ラッチは、データ、アドレス、コマン
ド、及びライト動作のためのストローブ、または、アド
レス、コマンド、及びリード動作のためのストローブを
ストアするための別々のセクションを備える。これらの
3個のレジスタの内容は、全3個のレジスタのみがすべ
てのセクションに接続される入力を備えたボート回路1
00によってボートされる。もし全3個のCPU11、
12、13が同じメモリ要求(同じアドレス、同じコマ
ンド)を行うならば(全CPUは典型的には同じ命令ス
トリームを実行するのでそのような場合がありうる)、
メモリ要求は完了することを許容される。しかし、第1
メモリ要求が、3個のラッチ94、95、96のいずれ
かにラッチされると直ちにメモリアクセスを開始するた
めに通過される。この目的のために、アクセス、データ
及びコマンドは、データバス101、アドレスバス10
2およびコマンドバス103を含む内部バスに印加され
る。この内部バスから、メモリ要求は、アドレスに依存
して、そしてシステム構成に依存して様々なリソースア
クセスする。
【0048】一実施例において、大きなDRAM104
が、メモリコントローラ105を用いて、内部バスによ
ってアクセスされる。このメモリコントローラ105
は、アクセスバス102からアドレスと制御バス103
からメモリ要求とストローブとを受信し、データ入力と
データ出力がデータバス101に出力されるようにDR
AMのための多重の行と列のアドレスを発生する。この
DRAM104はまた、グローバルメモリと呼ばれ、一
実施例においては多分32Mバイトのサイズである。さ
らに、内部バス101−103は、制御・ステイタスレ
ジスタ106、多数の不揮発性RAM107及びライト
プロテクト108をアクセスできる。CPUによるメモ
リ参照は、また、メモリモジュール14または15内の
メモリをバイパスでき、内部バス101−103に接続
される入力を備えたバスインターフェースによってI/
Oバス24、25にアクセスできる。もしメモリモジュ
ールがプライマリメモリモジュールであるならば、各メ
モリモジュール内のバスアービトレータ110は、バス
インターフェース109を制御する。もしメモリモジュ
ールがバックアップモジュールであるならば、バス34
はバスインターフェース109を制御する。
が、メモリコントローラ105を用いて、内部バスによ
ってアクセスされる。このメモリコントローラ105
は、アクセスバス102からアドレスと制御バス103
からメモリ要求とストローブとを受信し、データ入力と
データ出力がデータバス101に出力されるようにDR
AMのための多重の行と列のアドレスを発生する。この
DRAM104はまた、グローバルメモリと呼ばれ、一
実施例においては多分32Mバイトのサイズである。さ
らに、内部バス101−103は、制御・ステイタスレ
ジスタ106、多数の不揮発性RAM107及びライト
プロテクト108をアクセスできる。CPUによるメモ
リ参照は、また、メモリモジュール14または15内の
メモリをバイパスでき、内部バス101−103に接続
される入力を備えたバスインターフェースによってI/
Oバス24、25にアクセスできる。もしメモリモジュ
ールがプライマリメモリモジュールであるならば、各メ
モリモジュール内のバスアービトレータ110は、バス
インターフェース109を制御する。もしメモリモジュ
ールがバックアップモジュールであるならば、バス34
はバスインターフェース109を制御する。
【0049】DRAM104へのメモリアクセスは、第
1の要求が1個のラッチ94、95、又は96にラッチ
されると直ちに開始されるが、故障に備えて、多数の要
求が同じであることをボート回路100が決定されなけ
れば、完了を許容されない。3個の要求の中の第1の要
求の到達は、DRAM104へのアクセスを開始させ
る。リードに対して、DRAM104がアドレス指定さ
れ、センスアンプがストローブされ、データ出力がDR
AM入力で生じる。そして、もし第3の要求が受信され
た後でボートが良いならば、要求されたデータはCPU
に直ちに転送するために用意される。このように、ボー
ティングの動作はDRAMアクセス動作と重なる。
1の要求が1個のラッチ94、95、又は96にラッチ
されると直ちに開始されるが、故障に備えて、多数の要
求が同じであることをボート回路100が決定されなけ
れば、完了を許容されない。3個の要求の中の第1の要
求の到達は、DRAM104へのアクセスを開始させ
る。リードに対して、DRAM104がアドレス指定さ
れ、センスアンプがストローブされ、データ出力がDR
AM入力で生じる。そして、もし第3の要求が受信され
た後でボートが良いならば、要求されたデータはCPU
に直ちに転送するために用意される。このように、ボー
ティングの動作はDRAMアクセス動作と重なる。
【0050】図7を参照すると、バス21、2、23
は、図示されたフォーマットにてメモリモジュール1
4、15のポート91、92、93にメモリ要求を与え
る。これらのバスの各々は、32本の双方向多重アドレ
ス/データライン、13本の1方向コマンドライン及び
2本のストローブからなる。コマンドラインは、リー
ド、ライト、ブロック転送、単独転送、I/Oリードま
たはI/Oライトなどのバスアクティビティのタイプを
特定するフィールドを含む。また、1フィールドは、4
バイトに対するバイトイネーブルとして機能する。上記
のストローブは、AS(アドレスストローブ)とDS
(データストローブ)である。CPU11、12、13
は、それぞれ、自分自身のバス21、22又は23を制
御する。この実施例において、これらは、マルチマスタ
バスではなく、争いすなわちアービトレーションはな
い。ライトに対して、CPUはアドレスストローブAS
(アクティブでローレベル)で1サイクル内でバスにア
ドレスとコマンドを送り、続くサイクル(おそらく次の
サイクル、しかし必ずしもそうでなくてもよい)でデー
タストローブと同時にバスのアドレス/データラインに
データを送信する。各CPUからのアドレスストローブ
ASは、ストローブが現れたとき、ポート91、92又
は93にアドレスとコマンドを生じさせて、レジスタ9
4、95、96のアドレス・コマンドセクションにラッ
チさせ、次に、データストローブDSがデータをラッチ
させる。
は、図示されたフォーマットにてメモリモジュール1
4、15のポート91、92、93にメモリ要求を与え
る。これらのバスの各々は、32本の双方向多重アドレ
ス/データライン、13本の1方向コマンドライン及び
2本のストローブからなる。コマンドラインは、リー
ド、ライト、ブロック転送、単独転送、I/Oリードま
たはI/Oライトなどのバスアクティビティのタイプを
特定するフィールドを含む。また、1フィールドは、4
バイトに対するバイトイネーブルとして機能する。上記
のストローブは、AS(アドレスストローブ)とDS
(データストローブ)である。CPU11、12、13
は、それぞれ、自分自身のバス21、22又は23を制
御する。この実施例において、これらは、マルチマスタ
バスではなく、争いすなわちアービトレーションはな
い。ライトに対して、CPUはアドレスストローブAS
(アクティブでローレベル)で1サイクル内でバスにア
ドレスとコマンドを送り、続くサイクル(おそらく次の
サイクル、しかし必ずしもそうでなくてもよい)でデー
タストローブと同時にバスのアドレス/データラインに
データを送信する。各CPUからのアドレスストローブ
ASは、ストローブが現れたとき、ポート91、92又
は93にアドレスとコマンドを生じさせて、レジスタ9
4、95、96のアドレス・コマンドセクションにラッ
チさせ、次に、データストローブDSがデータをラッチ
させる。
【0051】バス21、22、23の多数(この実施例
では3の中の2)が同じメモリ要求をラッチ94、9
5、96に送信するとき、ボート回路100は、バス1
03に最後のコマンドを通過させ、メモリアクセスが実
行される。もしコマンドがライトならば、ライドが実行
されると直ちに、肯定応答ACK信号がライン112
(特にメモリ#1のライン112−1とメモリ#2のラ
イン112−2)によって各CPUに送り返され、同時
にステイタスビットが、図7の時間T3に各CPUに肯
定応答/ステイタスバス33(特にメモリ#1のライン
33−1とメモリ#2のライン33−2)を介して送信
される。最後のストローブDS(もしリードならばA
S)とT3でのACKの間の遅延T4は、メモリ要求の
ときにCPUが何サイクル同期位置からずれているかに
依存して、また、ボーティング回路における遅延とCP
Uクロック17に比べてメモリモジュール14又は15
の内部の独立なクロック17の位相に依存して、変わり
得る。もしCPUにより出力されるメモリ要求がリード
であると、次に、ライン112−1と112−2のAC
K信号とライン33−1と33−2のステイタスビット
が、時間T3の間に、データがアドレス/データバスに
出されるのと同時に送信される。これは、CPUにスト
ールをリリースし、こうして同一の命令に対してCPU
チップ40を同期させる。すなわち、最速のCPUは、
より遅いCPUが追い付くのを待っているので、より多
くのストールサイクル(stall cycle)を実行し、こうし
て、クロック17がたぶん位相がずれているが、全3個
が同時にリリースされる。全3個のCPUがストールか
ら出て来たとき、これらのCPUによって最初に実行さ
れる命令は同じである。
では3の中の2)が同じメモリ要求をラッチ94、9
5、96に送信するとき、ボート回路100は、バス1
03に最後のコマンドを通過させ、メモリアクセスが実
行される。もしコマンドがライトならば、ライドが実行
されると直ちに、肯定応答ACK信号がライン112
(特にメモリ#1のライン112−1とメモリ#2のラ
イン112−2)によって各CPUに送り返され、同時
にステイタスビットが、図7の時間T3に各CPUに肯
定応答/ステイタスバス33(特にメモリ#1のライン
33−1とメモリ#2のライン33−2)を介して送信
される。最後のストローブDS(もしリードならばA
S)とT3でのACKの間の遅延T4は、メモリ要求の
ときにCPUが何サイクル同期位置からずれているかに
依存して、また、ボーティング回路における遅延とCP
Uクロック17に比べてメモリモジュール14又は15
の内部の独立なクロック17の位相に依存して、変わり
得る。もしCPUにより出力されるメモリ要求がリード
であると、次に、ライン112−1と112−2のAC
K信号とライン33−1と33−2のステイタスビット
が、時間T3の間に、データがアドレス/データバスに
出されるのと同時に送信される。これは、CPUにスト
ールをリリースし、こうして同一の命令に対してCPU
チップ40を同期させる。すなわち、最速のCPUは、
より遅いCPUが追い付くのを待っているので、より多
くのストールサイクル(stall cycle)を実行し、こうし
て、クロック17がたぶん位相がずれているが、全3個
が同時にリリースされる。全3個のCPUがストールか
ら出て来たとき、これらのCPUによって最初に実行さ
れる命令は同じである。
【0052】メモリモージュル14又は15からCPU
11、12、13に送信されるすべてのデータは、その
データがDRAM104から又はメモリ位置106−1
08からのリードデータであるか、バス24、25から
のI/Oデータであるかに拘わらず、レジスタ114を
通過する。このレジスタ114は、内部データバス10
1からロードされ、このレジスタからの出力は、時間T
3にポート91、92、93でバス21、22、23の
ためのアドレス/データラインに印加される。パリティ
は、データがこのレジスタにロードされたきに検査され
る。DRAM104に書き込まれたすべてのデータと、
I/Oバスのすべてのデータは、それに関連したパリテ
ィビットを持つ。しかし、パリティビットは、バス2
1、22、23でCPUモジュールに転送されない。リ
ードレジスタ114で検出されたパリティエラーは、ス
テイタスバス33−1、33−2を介してCPUによっ
て報告される。プライマリとして指定されたメモリモジ
ュール14又は15のみが、そのレジスタ114内のデ
ータをバス21、22、23に出力する。バックアップ
又はセカンダリとして指定されたメモリモジュールは、
レジスタ114をロードする点まで連続して行われるリ
ード動作とパリティチェックを完了し、バックアップ3
3−1と33−2にステイタスを報告する。しかし、デ
ータは、バス21、22、3に出力されない。
11、12、13に送信されるすべてのデータは、その
データがDRAM104から又はメモリ位置106−1
08からのリードデータであるか、バス24、25から
のI/Oデータであるかに拘わらず、レジスタ114を
通過する。このレジスタ114は、内部データバス10
1からロードされ、このレジスタからの出力は、時間T
3にポート91、92、93でバス21、22、23の
ためのアドレス/データラインに印加される。パリティ
は、データがこのレジスタにロードされたきに検査され
る。DRAM104に書き込まれたすべてのデータと、
I/Oバスのすべてのデータは、それに関連したパリテ
ィビットを持つ。しかし、パリティビットは、バス2
1、22、23でCPUモジュールに転送されない。リ
ードレジスタ114で検出されたパリティエラーは、ス
テイタスバス33−1、33−2を介してCPUによっ
て報告される。プライマリとして指定されたメモリモジ
ュール14又は15のみが、そのレジスタ114内のデ
ータをバス21、22、23に出力する。バックアップ
又はセカンダリとして指定されたメモリモジュールは、
レジスタ114をロードする点まで連続して行われるリ
ード動作とパリティチェックを完了し、バックアップ3
3−1と33−2にステイタスを報告する。しかし、デ
ータは、バス21、22、3に出力されない。
【0053】各メモリモジュール14又は15内のコン
トローラ117は、このモジュールのためのクロック発
振器17によりステートマシーンとして動作し、バス1
03とバス21−23から様々なコマンドラインからの
データ(例えばレジスタとバスをロードするための制御
ビットの発生、外部制御信号の発生など)を受信する。
現在プライマリとして指定されているモジュール14又
は15内のこのコントローラ117は、共通のバス10
1−103へのアクセスのためにI/O側(インターフ
ェース)とCPU側(ポート91−93)の間でアービ
トレータ110を介してアービトレートする。プライマ
リメモリモジュール14又は15のコントローラ117
によるこの決定は、ライン34によって他のメモリモジ
ュールのコントローラ117に伝送されて、他のメモリ
モジュールに同じアクセスを実行させる。
トローラ117は、このモジュールのためのクロック発
振器17によりステートマシーンとして動作し、バス1
03とバス21−23から様々なコマンドラインからの
データ(例えばレジスタとバスをロードするための制御
ビットの発生、外部制御信号の発生など)を受信する。
現在プライマリとして指定されているモジュール14又
は15内のこのコントローラ117は、共通のバス10
1−103へのアクセスのためにI/O側(インターフ
ェース)とCPU側(ポート91−93)の間でアービ
トレータ110を介してアービトレートする。プライマ
リメモリモジュール14又は15のコントローラ117
によるこの決定は、ライン34によって他のメモリモジ
ュールのコントローラ117に伝送されて、他のメモリ
モジュールに同じアクセスを実行させる。
【0054】各メモリモジュール内のコントローラ11
7はまたこのモジュールのためのクロック発振器17か
らパルスを受信するリフレッシュカウンタ118に基づ
いて、DRAM104にリフレッシュサイクルを導入す
る。DRAMは8ミリ秒毎に512リフレッシュサイク
ルを受信しなければならず、従って平均して約15ミリ
秒毎にリフレッシュサイクルが導入される。こうして、
カウンタ118は、15ミリ秒毎にコントローラ117
にオーバーフロー信号を発生する。そして、もしアイド
ル条件(CPUアクセスまたはI/Oアクセスが実行さ
れない)が存在するならば、リフレッシュサイクルがバ
ス103に出力されたコマンドによって実施される。も
し動作が進行中ならば、現在の動作が完了したときに、
リフレッシュが実行される。メモリのページングに使用
されるブロック転送のような長い動作のために、数個の
リフレッシュサイクルがバックアップでき、転送が完了
した後でバーストモードで実行される。この目的のため
に、最後のリフレッシュサイクルがカウンタ118に関
連したレジスタに格納されるので、カウンタ118のオ
ーバーフローの数が用いられる。
7はまたこのモジュールのためのクロック発振器17か
らパルスを受信するリフレッシュカウンタ118に基づ
いて、DRAM104にリフレッシュサイクルを導入す
る。DRAMは8ミリ秒毎に512リフレッシュサイク
ルを受信しなければならず、従って平均して約15ミリ
秒毎にリフレッシュサイクルが導入される。こうして、
カウンタ118は、15ミリ秒毎にコントローラ117
にオーバーフロー信号を発生する。そして、もしアイド
ル条件(CPUアクセスまたはI/Oアクセスが実行さ
れない)が存在するならば、リフレッシュサイクルがバ
ス103に出力されたコマンドによって実施される。も
し動作が進行中ならば、現在の動作が完了したときに、
リフレッシュが実行される。メモリのページングに使用
されるブロック転送のような長い動作のために、数個の
リフレッシュサイクルがバックアップでき、転送が完了
した後でバーストモードで実行される。この目的のため
に、最後のリフレッシュサイクルがカウンタ118に関
連したレジスタに格納されるので、カウンタ118のオ
ーバーフローの数が用いられる。
【0055】CPUによって発生された割り込み要求
は、割り込みバス35のライン68によって個々に各C
PU11、12、13から受信される。これらの割り込
み要求は、各メモリモジュール14、15に送信され
る。バス35のこれらの要求ライン68は、割り込みボ
ート回路119に接続されて、この回路119はこれら
の要求を比較し、バス35の出力ライン69にボートさ
れた割り込み信号を出力する。CPUはそれぞれ、バス
35を介して2本のライン(各モジュール14、15か
ら1本)にボートされた割り込み信号を受信する。各メ
モリモジュール14、15からのボートされた割り込み
信号に対して論理和の演算が行われ、その演算結果が割
り込み同期回路65に出力される。ソフトウエアの制御
の下に、CPUはどのCPUが割り込みをするかを決定
する。I/Oプロセッサ又はI/Oコントローラで発生
される外部割り込みはまた、バス35のライン69、7
0を介してメモリモジュール14、15を介してCPU
に信号として送信される。同様に、CPUはただプライ
マリモジュール14又は15からの割り込みに応答す
る。
は、割り込みバス35のライン68によって個々に各C
PU11、12、13から受信される。これらの割り込
み要求は、各メモリモジュール14、15に送信され
る。バス35のこれらの要求ライン68は、割り込みボ
ート回路119に接続されて、この回路119はこれら
の要求を比較し、バス35の出力ライン69にボートさ
れた割り込み信号を出力する。CPUはそれぞれ、バス
35を介して2本のライン(各モジュール14、15か
ら1本)にボートされた割り込み信号を受信する。各メ
モリモジュール14、15からのボートされた割り込み
信号に対して論理和の演算が行われ、その演算結果が割
り込み同期回路65に出力される。ソフトウエアの制御
の下に、CPUはどのCPUが割り込みをするかを決定
する。I/Oプロセッサ又はI/Oコントローラで発生
される外部割り込みはまた、バス35のライン69、7
0を介してメモリモジュール14、15を介してCPU
に信号として送信される。同様に、CPUはただプライ
マリモジュール14又は15からの割り込みに応答す
る。
【0056】〈I/Oプロセッサ〉図8において、1個
のI/Oプロセッサ26又は27が詳細に示される。I
/Oプロセッサは2個の同じポート(I/Oバス24へ
の1個のポート121とI/Oバス25への他のポート
122)を備える。各I/Oバス24、25は、32ビ
ット双方向多重アドレス/データバス123(32ビッ
トの外に4ビットのパリティを含む)、リード、ライ
ト、ブロックリード、ブロックライトなどの実行される
動作のタイプを定義する双方向コマンドバス124、内
部からI/Oプロセッサへの又はバス28のどのロケー
ションにアドレス指定するかを示すアドレスライン、バ
イトマスク、及び最後に、アドレスストローブ、データ
ストローブ、アドレス肯定応答及びデータ肯定応答を含
む制御ラインから構成される。バス31のラジアルライ
ンは、各I/Oプロセッサから各メモリモジュールへの
個々のラインを含む。すなわち、I/Oプロセッサから
メモリモジュールへのバス要求、メモリモジュールから
I/Oプロセッサへのバスグラント、I/Oプロセッサ
からメモリモジュールへの割り込み要求ライン、及びメ
モリモジュールからI/Oプロセッサへのリセットライ
ンである。どのメモリモジュールがプライマリであるか
を示すラインは、システムステイタスバス32を介して
各I/Oプロセッサに接続される。図8のI/Oプロセ
ッサのコントローラすなわちステートマシーン126
は、コマンドライン、制御ライン、ステイタスライン、
ラジアルラインからのデータ、内部データ、及びバス2
8からのコマンドラインからのデータを受信し、さら
に、バス24、25の内容を受信し情報をバスに伝送す
るために保持するラッチ127、128の動作を含むI
/Oプロセッサの内部動作を定義する。
のI/Oプロセッサ26又は27が詳細に示される。I
/Oプロセッサは2個の同じポート(I/Oバス24へ
の1個のポート121とI/Oバス25への他のポート
122)を備える。各I/Oバス24、25は、32ビ
ット双方向多重アドレス/データバス123(32ビッ
トの外に4ビットのパリティを含む)、リード、ライ
ト、ブロックリード、ブロックライトなどの実行される
動作のタイプを定義する双方向コマンドバス124、内
部からI/Oプロセッサへの又はバス28のどのロケー
ションにアドレス指定するかを示すアドレスライン、バ
イトマスク、及び最後に、アドレスストローブ、データ
ストローブ、アドレス肯定応答及びデータ肯定応答を含
む制御ラインから構成される。バス31のラジアルライ
ンは、各I/Oプロセッサから各メモリモジュールへの
個々のラインを含む。すなわち、I/Oプロセッサから
メモリモジュールへのバス要求、メモリモジュールから
I/Oプロセッサへのバスグラント、I/Oプロセッサ
からメモリモジュールへの割り込み要求ライン、及びメ
モリモジュールからI/Oプロセッサへのリセットライ
ンである。どのメモリモジュールがプライマリであるか
を示すラインは、システムステイタスバス32を介して
各I/Oプロセッサに接続される。図8のI/Oプロセ
ッサのコントローラすなわちステートマシーン126
は、コマンドライン、制御ライン、ステイタスライン、
ラジアルラインからのデータ、内部データ、及びバス2
8からのコマンドラインからのデータを受信し、さら
に、バス24、25の内容を受信し情報をバスに伝送す
るために保持するラッチ127、128の動作を含むI
/Oプロセッサの内部動作を定義する。
【0057】メモリモジュールからI/Oプロセッサへ
のバス4、25での転送は、別々に肯定応答されたアド
レスとデータを用いて図9に示されるプロトコルを使用
する。プライマリと指定されたメモリモジュール内のア
ービトレータ回路110は、I/Oバス24、25の所
有権(ownership)のためのアービトレーションを行
う。CPUからI/Oへの転送が必要なとき、CPU要
求がメモリモジュールのアービトレーション論理回路1
10に出力される。アービトレーション論理回路110
がこの要求を承認したとき、メモリモジュールは、アド
レスとコマンドを(両バス24、25の)バス123、
124に、アドレスストローブが(2つのバス24と2
5の)図9の時間T1に主張されたときと同時に、バス
125に印加する。コントローラ126がアドレスをラ
ッチ127又は128にラッチさせたとき、アドレス肯
定応答がバス125に主張され、次に、メモリモジュー
ルは時間T2にデータを(両バス24、25を介して)
バス123に出力し、ライン125にデータストローブ
を出力する。時間T2の後で、コントローラは、2個の
ラッチ127、128にデータをラッチさせ、データ肯
定応答信号がライン125に出力され、そうして、デー
タ肯定応答の受信の際に、両メモリモジュールは、アド
レスストローブ信号の主張をやめることによりバス2
4、25をリリースする。
のバス4、25での転送は、別々に肯定応答されたアド
レスとデータを用いて図9に示されるプロトコルを使用
する。プライマリと指定されたメモリモジュール内のア
ービトレータ回路110は、I/Oバス24、25の所
有権(ownership)のためのアービトレーションを行
う。CPUからI/Oへの転送が必要なとき、CPU要
求がメモリモジュールのアービトレーション論理回路1
10に出力される。アービトレーション論理回路110
がこの要求を承認したとき、メモリモジュールは、アド
レスとコマンドを(両バス24、25の)バス123、
124に、アドレスストローブが(2つのバス24と2
5の)図9の時間T1に主張されたときと同時に、バス
125に印加する。コントローラ126がアドレスをラ
ッチ127又は128にラッチさせたとき、アドレス肯
定応答がバス125に主張され、次に、メモリモジュー
ルは時間T2にデータを(両バス24、25を介して)
バス123に出力し、ライン125にデータストローブ
を出力する。時間T2の後で、コントローラは、2個の
ラッチ127、128にデータをラッチさせ、データ肯
定応答信号がライン125に出力され、そうして、デー
タ肯定応答の受信の際に、両メモリモジュールは、アド
レスストローブ信号の主張をやめることによりバス2
4、25をリリースする。
【0058】I/Oプロセッサからメモリモジュールへ
の転送において、I/OプロセッサがI/Oバスを使う
必要があるとき、I/Oプロセッサは両バス24、25
に、ラジアルバス31にラインによってバス要求を主張
し、次に、プライマリメモリモジュール14又は15に
アービトレータ回路110からバス使用承認信号を待
つ。バス使用承認ラインもラジアルラインの1本であ
る。バス使用承認が主張されたとき、コントローラ12
6は、前の転送が完了されたことを(誤って)意味す
る、バス125上でアドレスストローブとアドレス肯定
応答信号の主張が解除されるまで待機する。そのとき、
コントローラ126は、ラッチ127、128からライ
ン123へアドレスを出力させ、コマンドをライン12
4に出力させ、アドレスストローブを両バス24、25
のバス125に出力させる。アドレス肯定応答が両バス
24、25から受信されたとき、データがアドレス/デ
ータバスにデータストローブとともに出力され、転送
は、メモリモジュールからI/Oプロセッサへのデータ
肯定応答信号で完了される。
の転送において、I/OプロセッサがI/Oバスを使う
必要があるとき、I/Oプロセッサは両バス24、25
に、ラジアルバス31にラインによってバス要求を主張
し、次に、プライマリメモリモジュール14又は15に
アービトレータ回路110からバス使用承認信号を待
つ。バス使用承認ラインもラジアルラインの1本であ
る。バス使用承認が主張されたとき、コントローラ12
6は、前の転送が完了されたことを(誤って)意味す
る、バス125上でアドレスストローブとアドレス肯定
応答信号の主張が解除されるまで待機する。そのとき、
コントローラ126は、ラッチ127、128からライ
ン123へアドレスを出力させ、コマンドをライン12
4に出力させ、アドレスストローブを両バス24、25
のバス125に出力させる。アドレス肯定応答が両バス
24、25から受信されたとき、データがアドレス/デ
ータバスにデータストローブとともに出力され、転送
は、メモリモジュールからI/Oプロセッサへのデータ
肯定応答信号で完了される。
【0059】ラッチ127と128は、アドレスバス1
29a,データバス129b,及び制御バス129cを
含む内部バス129に接続される。内部バス129は、
バス32によって供給されるステイタスを保持するなど
のために、コントローラステートマシーン126によっ
て実行されるコマンドをセットアップするために用いら
れる内部ステイタス・制御レジスタ130をアドレス指
定することができる。これらのレジスタ130は、CP
Uのアドレス空間においてCPUからリードまたはライ
トのためにアドレス指定可能である。バスインターフェ
ース131は、コントローラ131の制御の下に、VM
Eバス28と通信する。バス28は、アドレスバス28
a,データバス28b,制御バス28c及びラジアル2
8dを備え、これらの全ラインは、バスインターフェー
スモジュール29を介してI/Oコントローラ30に接
続される。バスインターフェースモジュール29は、一
方又は他方の又は両方のI/Oプロセッサからの、1セ
ットだけのバスライン28をコントローラ30に駆動さ
せるためのマルチプレクサ132を備える。コントロー
ラ30の内部で、コマンド、制御、ステイタス、データ
のレジスタ133があり、(このタイプの周辺コントロ
ーラにおいて標準的プラクティスとして)CPU11、
12、13から開始するべきリードとライトのためにア
ドレス指定可能であり、I/O装置における動作を制御
する。VMEバス28上での各I/Oコントローラ30
は、BIM29のマルチプレクサ132を介して両I/
Oプロセッサ26、27との接続機能を備え、いずれか
1個によって制御されるが、CPUによって実行される
プログラムによって一方または他方に限られる。特定の
アドレス(又1組のアドレス)は、各コントローラ30
を示す制御・データ転送レジスタ133のために確定さ
れ、これらのアドレスは、オペレーティングシステムに
よりI/Oページテーブル(通常は、ローカルメモリの
核データ区分)に維持される。これらのアドレスは、両
方ではなく、どちらかのI/Oプロセッサ#1または#
2を介してのみアドレス指定が可能であるように、各コ
ントローラ30を関連づける。すなわち、I/Oプロセ
ッサ27と比較すると、ある異なったアドレスは、I/
Oプロセッサ26を介して特定のレジスタ133に到達
させるために使用される。バスインターフェース131
(及びコントローラ126)は、マルチプレクサ132
を切り換えて一方または他方からバス28上のデータを
受信する。これは、CPUからI/Oプロセッサのレジ
スタ130へのライトによってなされる。こうして、デ
バイスドライバがこのコントローラ30をアクセスする
ためにコールされたとき、オペレーティングシステムは
ページテーブルにおけるこのアドレスをそのために使用
する。
29a,データバス129b,及び制御バス129cを
含む内部バス129に接続される。内部バス129は、
バス32によって供給されるステイタスを保持するなど
のために、コントローラステートマシーン126によっ
て実行されるコマンドをセットアップするために用いら
れる内部ステイタス・制御レジスタ130をアドレス指
定することができる。これらのレジスタ130は、CP
Uのアドレス空間においてCPUからリードまたはライ
トのためにアドレス指定可能である。バスインターフェ
ース131は、コントローラ131の制御の下に、VM
Eバス28と通信する。バス28は、アドレスバス28
a,データバス28b,制御バス28c及びラジアル2
8dを備え、これらの全ラインは、バスインターフェー
スモジュール29を介してI/Oコントローラ30に接
続される。バスインターフェースモジュール29は、一
方又は他方の又は両方のI/Oプロセッサからの、1セ
ットだけのバスライン28をコントローラ30に駆動さ
せるためのマルチプレクサ132を備える。コントロー
ラ30の内部で、コマンド、制御、ステイタス、データ
のレジスタ133があり、(このタイプの周辺コントロ
ーラにおいて標準的プラクティスとして)CPU11、
12、13から開始するべきリードとライトのためにア
ドレス指定可能であり、I/O装置における動作を制御
する。VMEバス28上での各I/Oコントローラ30
は、BIM29のマルチプレクサ132を介して両I/
Oプロセッサ26、27との接続機能を備え、いずれか
1個によって制御されるが、CPUによって実行される
プログラムによって一方または他方に限られる。特定の
アドレス(又1組のアドレス)は、各コントローラ30
を示す制御・データ転送レジスタ133のために確定さ
れ、これらのアドレスは、オペレーティングシステムに
よりI/Oページテーブル(通常は、ローカルメモリの
核データ区分)に維持される。これらのアドレスは、両
方ではなく、どちらかのI/Oプロセッサ#1または#
2を介してのみアドレス指定が可能であるように、各コ
ントローラ30を関連づける。すなわち、I/Oプロセ
ッサ27と比較すると、ある異なったアドレスは、I/
Oプロセッサ26を介して特定のレジスタ133に到達
させるために使用される。バスインターフェース131
(及びコントローラ126)は、マルチプレクサ132
を切り換えて一方または他方からバス28上のデータを
受信する。これは、CPUからI/Oプロセッサのレジ
スタ130へのライトによってなされる。こうして、デ
バイスドライバがこのコントローラ30をアクセスする
ためにコールされたとき、オペレーティングシステムは
ページテーブルにおけるこのアドレスをそのために使用
する。
【0060】プロセッサ40は、ライトバッファ50を
介してよりもむしろ、バイパスバッファパス52を用い
てこれらのコントローラの制御・データ転送レジスタ1
33へのI/Oライトによってコントローラ30をアク
セスする。従って、これらは、これは、回路100によ
ってボートされ、メモリモジュールを通してバス24又
は25へ、従って選択されたバス28への同期化された
ライト動作である。プロセッサ40は、このライト動作
が完了するまでストールする。図8のI/Oプロセッサ
ボードは、ある誤り(例えば不適当なコマンド、VME
バス28で応答が受信しないまま期限がすぎたこと、実
行されたときのパリティチェック)を検出するように形
成され、1個の誤りが検出されると、I/Oプロセッサ
は、バストラフィックへの応答を止め、すなわち、図9
に関連して上述されたアドレス肯定応答とデータ肯定応
答を送信することを中止する。これは、バスインターフ
ェース56によってバスフォールトとし検出され、後述
されるように割り込みを生じ、可能ならば自己訂正作用
がなされる。
介してよりもむしろ、バイパスバッファパス52を用い
てこれらのコントローラの制御・データ転送レジスタ1
33へのI/Oライトによってコントローラ30をアク
セスする。従って、これらは、これは、回路100によ
ってボートされ、メモリモジュールを通してバス24又
は25へ、従って選択されたバス28への同期化された
ライト動作である。プロセッサ40は、このライト動作
が完了するまでストールする。図8のI/Oプロセッサ
ボードは、ある誤り(例えば不適当なコマンド、VME
バス28で応答が受信しないまま期限がすぎたこと、実
行されたときのパリティチェック)を検出するように形
成され、1個の誤りが検出されると、I/Oプロセッサ
は、バストラフィックへの応答を止め、すなわち、図9
に関連して上述されたアドレス肯定応答とデータ肯定応
答を送信することを中止する。これは、バスインターフ
ェース56によってバスフォールトとし検出され、後述
されるように割り込みを生じ、可能ならば自己訂正作用
がなされる。
【0061】〈エラーリカバリ〉上記バス21、22、
23を介しての転送のためのメモリモジュール14と1
5による応答を評価するために、CPU11、12、1
3によって用いられるシーケンスは、次に説明される。
このシーケンスは、バスインターフェースユニット56
におけるステートマシンによって定義されかつCPUに
よって実行されるコードにおいて定義される。
23を介しての転送のためのメモリモジュール14と1
5による応答を評価するために、CPU11、12、1
3によって用いられるシーケンスは、次に説明される。
このシーケンスは、バスインターフェースユニット56
におけるステートマシンによって定義されかつCPUに
よって実行されるコードにおいて定義される。
【0062】第1の場合、リード転送において、データ
の誤りがプライマリのメモリからのライン33にステイ
タスビットに示されないと仮定する。ここで、メモリ参
照によって始められるストールは、各マイクロプロセッ
サ40で命令実行を続けることを可能にするために、制
御バス55と43を介してレディ信号を主張することに
より終了する。しかし、肯定応答がライン112におい
て他の(プライマリでない)メモリモジュールから受信
されるまで(または時間切れになるまで)、開始されな
い。もしいずれかのステイタスフィールド(ライン33
−1または33−2)においてエラーが検出されたな
ら、又はもしプライマリでないメモリが時間切れになっ
たならば、割り込みはポスト(post)される。
の誤りがプライマリのメモリからのライン33にステイ
タスビットに示されないと仮定する。ここで、メモリ参
照によって始められるストールは、各マイクロプロセッ
サ40で命令実行を続けることを可能にするために、制
御バス55と43を介してレディ信号を主張することに
より終了する。しかし、肯定応答がライン112におい
て他の(プライマリでない)メモリモジュールから受信
されるまで(または時間切れになるまで)、開始されな
い。もしいずれかのステイタスフィールド(ライン33
−1または33−2)においてエラーが検出されたな
ら、又はもしプライマリでないメモリが時間切れになっ
たならば、割り込みはポスト(post)される。
【0063】第2の場合、リード転送において、データ
エラーがプライマリメモリからステイタスライン33に
指示されたこと、あるいは、プライマリメモリから応答
が受信されなかったことが仮定される。CPUは、他方
のメモリから肯定応答を待ち、もし他のメモリからのス
テイタスビットにデータエラーが見いだされないなら
ば、バスインターフェース56の回路が所有権(プライ
マリのメモリステイタス)の変化を起こさせ、従って、
データが新しいプライマリから正しくリードされたか否
かを確認するために、リトライが設定される。もし良好
なステイタスが新しいプライマリから受信されたなら、
次にストールが前のように終了して、割り込みはシステ
ムを更新するために(1個のメモリを悪いと気付き、異
なったメモリをプライマリとし)ポストされる。しかし
ながら、もしデータエラー又は時間切れが新しいプライ
マリからリードをするという試みから生じたなら、次に
割り込みが制御バス55と43を介してプロセッサ40
に主張される。
エラーがプライマリメモリからステイタスライン33に
指示されたこと、あるいは、プライマリメモリから応答
が受信されなかったことが仮定される。CPUは、他方
のメモリから肯定応答を待ち、もし他のメモリからのス
テイタスビットにデータエラーが見いだされないなら
ば、バスインターフェース56の回路が所有権(プライ
マリのメモリステイタス)の変化を起こさせ、従って、
データが新しいプライマリから正しくリードされたか否
かを確認するために、リトライが設定される。もし良好
なステイタスが新しいプライマリから受信されたなら、
次にストールが前のように終了して、割り込みはシステ
ムを更新するために(1個のメモリを悪いと気付き、異
なったメモリをプライマリとし)ポストされる。しかし
ながら、もしデータエラー又は時間切れが新しいプライ
マリからリードをするという試みから生じたなら、次に
割り込みが制御バス55と43を介してプロセッサ40
に主張される。
【0064】ライトバッファ50がバイパスされたライ
ト転送において、第1の場合では、どちらのメモリから
もステイタスビットにエラーが示されない。ストールは
終了され命令の続行が許可される。再び、もしエラーが
どちらかのステイタスフィールドに検出されたならば割
り込みがポストされる。
ト転送において、第1の場合では、どちらのメモリから
もステイタスビットにエラーが示されない。ストールは
終了され命令の続行が許可される。再び、もしエラーが
どちらかのステイタスフィールドに検出されたならば割
り込みがポストされる。
【0065】ライトバッファ50がバイパスされたライ
ン転送において、第2の場合では、データエラーがプラ
イマリメモリからステイタスに指示されるか、または、
応答が、プライマリメモリから受け取られない。各CP
Uのインターフェースコントローラは、他のメモリモジ
ュールからの肯定応答を待つ。そして、もしデータエラ
ーが他のメモリからのステイタスに見いだされないなら
ば、所有権の変化が強制され、割り込みがポストされ
る。しかし、もしデータエラー又は時間切れが他方の
(新しいプライマリの)メモリモジュールのために起こ
るならば、次に割り込みがプロセッサ40に対して主張
される。
ン転送において、第2の場合では、データエラーがプラ
イマリメモリからステイタスに指示されるか、または、
応答が、プライマリメモリから受け取られない。各CP
Uのインターフェースコントローラは、他のメモリモジ
ュールからの肯定応答を待つ。そして、もしデータエラ
ーが他のメモリからのステイタスに見いだされないなら
ば、所有権の変化が強制され、割り込みがポストされ
る。しかし、もしデータエラー又は時間切れが他方の
(新しいプライマリの)メモリモジュールのために起こ
るならば、次に割り込みがプロセッサ40に対して主張
される。
【0066】ライトバッファ50がイネーブルされたラ
イト転送において、CPUチップはライト動作によって
ストールされず、第1の場合は、どちらのメモリモジュ
ールからもステイタスにエラーが指示されない。転送は
終えられて、他のバス転送が開始される。
イト転送において、CPUチップはライト動作によって
ストールされず、第1の場合は、どちらのメモリモジュ
ールからもステイタスにエラーが指示されない。転送は
終えられて、他のバス転送が開始される。
【0067】ライトバッファ50をイネーブルとしたラ
イト転送において、第2の場合、データエラーは主メモ
リからのステイタスに示されるか、又は、応答が主メモ
リから受信されない。メカニズムは、他のメモリからの
肯定応答を待つ。そして、もし他のメモリからのステイ
タスにデータエラーが見い出されないならば、次に所有
権の変化が強行され、割り込みはポストされる。しか
し、もしデータエラー又は時間切れが他のメモリにおい
て生じるならば、次に割り込みがポストされる。
イト転送において、第2の場合、データエラーは主メモ
リからのステイタスに示されるか、又は、応答が主メモ
リから受信されない。メカニズムは、他のメモリからの
肯定応答を待つ。そして、もし他のメモリからのステイ
タスにデータエラーが見い出されないならば、次に所有
権の変化が強行され、割り込みはポストされる。しか
し、もしデータエラー又は時間切れが他のメモリにおい
て生じるならば、次に割り込みがポストされる。
【0068】メモリモジュール14又は15は、いま説
明したメカニズムによって一旦決定されると、フォール
ト条件がオペレータに対し信号として示されるが、シス
テムは動作を続けることができる。オペレータは、おそ
らく故障のモジュールを含むメモリボードを交換するこ
とを希望するだろう。これは、システムが起動され動作
している間に行うことができる。次に、システムは、停
止せずに新しいメモリボードを再統合できる。このメカ
ニズムは、ソフトのエラーによってライトを実行できな
いがテストで良好なとされ物理的に交換する必要がない
メモリモジュールを再生するためにも役立つ。タスク
は、データが他方のメモリモジュールと同じである状態
にそのメモリモジュールを戻すことである。この再生モ
ードは、2ステップのプロセスである。まず、メモリが
イニシャライズされておらず、パリティエラーを含むか
も知れないことを仮定する。そこで良好なパリティの良
好なデータが、すべてのロケーションに書き込まなけれ
ばならない。これは、この点ですべてゼロである。しか
し、すべてのライト動作が2個のメモリで実行されるの
で、この第1ステップが達成される方法は、良好なメモ
リモジュールのロケーションをリードし、次にこのデー
タを両メモリモジュール14と15の同じロケーション
にライトすることである。これは、通常の動作が進行中
に、実行中のタスクに挿入されて行われる。I/Oバス
24又は25から生じるライトは、第1ステップでのこ
の再生ルーチンにおいて無視される。
明したメカニズムによって一旦決定されると、フォール
ト条件がオペレータに対し信号として示されるが、シス
テムは動作を続けることができる。オペレータは、おそ
らく故障のモジュールを含むメモリボードを交換するこ
とを希望するだろう。これは、システムが起動され動作
している間に行うことができる。次に、システムは、停
止せずに新しいメモリボードを再統合できる。このメカ
ニズムは、ソフトのエラーによってライトを実行できな
いがテストで良好なとされ物理的に交換する必要がない
メモリモジュールを再生するためにも役立つ。タスク
は、データが他方のメモリモジュールと同じである状態
にそのメモリモジュールを戻すことである。この再生モ
ードは、2ステップのプロセスである。まず、メモリが
イニシャライズされておらず、パリティエラーを含むか
も知れないことを仮定する。そこで良好なパリティの良
好なデータが、すべてのロケーションに書き込まなけれ
ばならない。これは、この点ですべてゼロである。しか
し、すべてのライト動作が2個のメモリで実行されるの
で、この第1ステップが達成される方法は、良好なメモ
リモジュールのロケーションをリードし、次にこのデー
タを両メモリモジュール14と15の同じロケーション
にライトすることである。これは、通常の動作が進行中
に、実行中のタスクに挿入されて行われる。I/Oバス
24又は25から生じるライトは、第1ステップでのこ
の再生ルーチンにおいて無視される。
【0069】こうしてすべてのロケーションにライトさ
れた後は、次のステップは、I/Oアクセスもまたライ
トされることを除いて第1ステップと同じである。すな
わち、I/Oバス24又は25からのI/Oライトは、
実行するタスクにおいて通常のトラフィックにおいて発
生するときに、良好なメモリのすべてのロケーションを
リードしこの同じデータを両メモリモジュールの同じロ
ケーションにライトすることを挿入して実行される。こ
の第2ステップでモジュールがゼロから最大アドレスま
でアドレス指定されたときに、両メモリは同一になる。
この第2の再生ステップの間に、CPUとI/Oプロセ
ッサの両方が、エラーなしに全ての動作を行うようにメ
モリモジュールが再生されることを期待する。I/Oプ
ロセッサ26、27は、データリード転送の間に再生さ
れるメモリモジュールによって示されるデータを使用し
ない。再生プロセスが完了した後で、再生されたメモリ
は、(必要ならば)プライマリと指定できる。
れた後は、次のステップは、I/Oアクセスもまたライ
トされることを除いて第1ステップと同じである。すな
わち、I/Oバス24又は25からのI/Oライトは、
実行するタスクにおいて通常のトラフィックにおいて発
生するときに、良好なメモリのすべてのロケーションを
リードしこの同じデータを両メモリモジュールの同じロ
ケーションにライトすることを挿入して実行される。こ
の第2ステップでモジュールがゼロから最大アドレスま
でアドレス指定されたときに、両メモリは同一になる。
この第2の再生ステップの間に、CPUとI/Oプロセ
ッサの両方が、エラーなしに全ての動作を行うようにメ
モリモジュールが再生されることを期待する。I/Oプ
ロセッサ26、27は、データリード転送の間に再生さ
れるメモリモジュールによって示されるデータを使用し
ない。再生プロセスが完了した後で、再生されたメモリ
は、(必要ならば)プライマリと指定できる。
【0070】同様な再プロセスがCPUモジュールに対
しても備えられる。1個のCPUが(メモリボート回路
100による場合等のように)故障と検出されるとき、
他の2個のCPUは動作を続けるが、悪いCPUボード
は、システムを停止せずに交換できる。新しいCPUボ
ードがオンボードROM63から起動自己テストルーチ
ンを実行するとき、他のCPUにこのことを示す信号を
出力して、再生ルーチンが実行される。まず、2個の良
好なCPUがその状態をグローバルメモリにコピーし、
次に全3個のCPUが「ソフトリセット」を実行する。
ここで、CPUはROM内のイニシャライズルーチンか
ら実行をリセットし開始する。そうして、全CPUは、
命令ストリームの正確に同じ点に来て、同期化され、次
に、保存されていた状態が全3個のCPUにコピーして
戻され、前に実行されていたタスクが続行される。
しても備えられる。1個のCPUが(メモリボート回路
100による場合等のように)故障と検出されるとき、
他の2個のCPUは動作を続けるが、悪いCPUボード
は、システムを停止せずに交換できる。新しいCPUボ
ードがオンボードROM63から起動自己テストルーチ
ンを実行するとき、他のCPUにこのことを示す信号を
出力して、再生ルーチンが実行される。まず、2個の良
好なCPUがその状態をグローバルメモリにコピーし、
次に全3個のCPUが「ソフトリセット」を実行する。
ここで、CPUはROM内のイニシャライズルーチンか
ら実行をリセットし開始する。そうして、全CPUは、
命令ストリームの正確に同じ点に来て、同期化され、次
に、保存されていた状態が全3個のCPUにコピーして
戻され、前に実行されていたタスクが続行される。
【0071】上述したように、各メモリモジュール内の
ボート回路100は、全3個のCPUが同一のメモリ参
照をしているか否かを決定する。もしそうならば、メモ
リ動作は、完了まで進むことを許可される。もしそうで
なければ、CPU故障モードに入る。ボート回路100
によって検出されるように、異なったメモリ参照を送信
するCPUは、バス33−1及び/又は33−2で戻さ
れるステイタスで固定される。割り込みはポストされ、
ソフトウエアは引き続いて故障CPUをオフラインとす
る。このオフラインステイタスは、ステイタスバス32
に反映される。故障が検出されているメモリ参照は、3
つから2つを選択するボートに基づき完了することを許
可される。つぎに、悪いCPUボードが交換されるま
で、ボート回路100は、メモリ参照の進行を許可する
前に、2個の良好なCPUからの2個の同一のメモリ要
求を必要とする。システムは、通常は、1個の(2個で
なく)CPUオフラインで動作を続けるように構成され
ている。しかし、1個の良好なCPUだけで動作するこ
とが希望されるならば、別の方法が利用できる。CPU
は、もし異なったデータがメモリ要求で検出されるなら
ばボート回路100によって、又は時間切れによって、
故障とボートされる。もし2個のCPUが同一のメモリ
要求を送信するが、第3のCPUがあらかじめ選択され
た時間切れ期間にどんな信号も送信しないならば、CP
Uは故障と仮定され、前のようにオフラインとされる。
ボート回路100は、全3個のCPUが同一のメモリ参
照をしているか否かを決定する。もしそうならば、メモ
リ動作は、完了まで進むことを許可される。もしそうで
なければ、CPU故障モードに入る。ボート回路100
によって検出されるように、異なったメモリ参照を送信
するCPUは、バス33−1及び/又は33−2で戻さ
れるステイタスで固定される。割り込みはポストされ、
ソフトウエアは引き続いて故障CPUをオフラインとす
る。このオフラインステイタスは、ステイタスバス32
に反映される。故障が検出されているメモリ参照は、3
つから2つを選択するボートに基づき完了することを許
可される。つぎに、悪いCPUボードが交換されるま
で、ボート回路100は、メモリ参照の進行を許可する
前に、2個の良好なCPUからの2個の同一のメモリ要
求を必要とする。システムは、通常は、1個の(2個で
なく)CPUオフラインで動作を続けるように構成され
ている。しかし、1個の良好なCPUだけで動作するこ
とが希望されるならば、別の方法が利用できる。CPU
は、もし異なったデータがメモリ要求で検出されるなら
ばボート回路100によって、又は時間切れによって、
故障とボートされる。もし2個のCPUが同一のメモリ
要求を送信するが、第3のCPUがあらかじめ選択され
た時間切れ期間にどんな信号も送信しないならば、CP
Uは故障と仮定され、前のようにオフラインとされる。
【0072】システムのI/O装置は故障の場合にソフ
トウエア再統合のためのメカニズムを備える。すなわ
ち、CPUとメモリモジュールコアは、いま説明したよ
うに、故障に対して保護されたハードウエアである。し
かし、システムのI/O部分は故障に対して保護された
ソフトウエアである。1個のI/Oプロセッサ26また
は27が誤ると、上述したようにソフトウエアによって
I/Oプロセッサに限定されたコントローラ30は、ソ
フトウエアによって他方のI/Oプロセッサへスイッチ
される。オペレーティングシステムは、同じコントロー
ラに対する新しいアドレスを用いてI/Oページテーブ
ルのアドレスを書き直し、その後は、コントローラは他
方のI/Oコントローラ26又は27に限定される。エ
ラーすなわち故障は、バスインターフェース56でバス
サイクルを終えるバスエラーによって検出でき、例外の
原因を決定する例外処理ルーチンを通して核内に急送さ
れる例外を発生し、次に、I/Oテーブルのアドレスを
書き換えることにより)全コントローラ30を、誤った
I/Oプロセッサ26又は27から他方へ動かす。
トウエア再統合のためのメカニズムを備える。すなわ
ち、CPUとメモリモジュールコアは、いま説明したよ
うに、故障に対して保護されたハードウエアである。し
かし、システムのI/O部分は故障に対して保護された
ソフトウエアである。1個のI/Oプロセッサ26また
は27が誤ると、上述したようにソフトウエアによって
I/Oプロセッサに限定されたコントローラ30は、ソ
フトウエアによって他方のI/Oプロセッサへスイッチ
される。オペレーティングシステムは、同じコントロー
ラに対する新しいアドレスを用いてI/Oページテーブ
ルのアドレスを書き直し、その後は、コントローラは他
方のI/Oコントローラ26又は27に限定される。エ
ラーすなわち故障は、バスインターフェース56でバス
サイクルを終えるバスエラーによって検出でき、例外の
原因を決定する例外処理ルーチンを通して核内に急送さ
れる例外を発生し、次に、I/Oテーブルのアドレスを
書き換えることにより)全コントローラ30を、誤った
I/Oプロセッサ26又は27から他方へ動かす。
【0073】バスインターフェース56はいま説明した
ようにバスエラーを検出すると、故障は、再統合スキー
ムが使用される前に分離されねばならない。1個のI/
Oプロセッサ26または27へ、あるいは1個のバス2
8の1個のI/Oコントローラ30へ(すなわち1個の
I/O素子における1個の制御レジスタ又はステイタス
レジスタ、又はデータレジスタへ)のいずれかにCPU
がライト動作を行うとき、これは、メモリモジュールに
おけるバイパス動作であり、両メモリモジュールは動作
を実行して、2個のI/Oバス24と25にそれを通過
させる。2個のI/Oプロセッサ26と27は、ともに
バス24と25をモニタし、パリティをチェックし、コ
ントローラ126を介して適正なシンタックスでコマン
ドをチェックする。例えば、もしCPUがI/Oプロセ
ッサ26または27内のレジスタにライトを実行するな
らば、もしどちらかのメモリモジュールが正当なアドレ
ス、正当なコマンド及び正当なデータを示すならば(パ
リティエラーがないことと適正なプロトコルによって証
明されるように)、アドレス指定されたI/Oプロセッ
サは、アドレス指定されたロケーションにデータをライ
トし、ライト動作が成功して完了したという肯定応答指
示でメモリモジュールに応答する。両メモリモジュール
14と15は、I/Oプロセッサ26又は27からの応
答(図9のアドレスとデータの肯定応答信号)をモニタ
していて、両メモリモジュールは、ライン33−1と3
3−2の動作ステイタスでCPUに応答する。(もしこ
れがリードであるならば、プライマリのメモリモジュー
ルのみがデータを戻すが、しかし両方がステイタスを戻
す。)CPUは、両方がライトを正しく実行したか、1
個だけであったか、無しであったかを決定できる。もし
1個だけが良好なステイタスを戻し、それがプライマリ
ならば、所有権を変える必要は無い。しかしもしバック
アップが良好に戻され、プライマリが悪く戻されるなら
ば、所有権の変更が強行され、正しく実行したものをプ
ライマリにする。どちらの場合も、割り込みが故障を報
告するために入れられる。この点で、CPUは、悪いの
がメモリモジュールであるか、メモリモジュールの下流
側の何かであるかを知らない。それで、同様なライトが
I/Oプロセッサに対して試みられる。しかし、これが
成功するならば、メモリモジュールが悪いことを必ずし
も証明する必要が無い。なぜなら、初めにアドレス指定
されたI/Oプロセッサが例えばバス24または25の
ラインに接続され、パリティエラーを起こしたからであ
る。それで、システムは、選択的に、I/Oプロセッサ
のシャットオフと操作のリトライ香[ルバス43の誤っ
たミス信号(例えばセットされないタグバリッドビット
(Tag Valid bit)を単に発生することによって行うこ
とができ、こうしてキャシュミス例外ルーチンをエンタ
ーさせ、その結果生じたメモリ参照は、任意のメモリ参
照が行われるように同期を確立させる。カウンタ71の
オーバーフローに対して同期させる他の方法は、プロセ
ッサ40にストールをさせることである。これは図2の
論理回路71aを介してコントロールバス43にCPビ
ジー(コプロセッサビジー)信号を発生するオーバーフ
ロー信号OVFLを用いて行うことができる。このCP
ビジー信号はCPビジーが主張されなくなるまで、常に
プロセッサ40にストールをエンターすることになる。
全3個のプロセッサは、同じコードを実行していてその
カウンタ71に同じサイクルを計数するので、このスト
ールをエンターする。しかし、CPUがストールをエン
ターする実際の時間は変化する。論理回路71aは、入
力R#を介して他の2個のプロセッサのバス43からラ
ン#を受信し、そうして全3個がストールしたときに、
CPビジー信号がリリースされ、プロセッサは、再び同
期してストールから出る。
ようにバスエラーを検出すると、故障は、再統合スキー
ムが使用される前に分離されねばならない。1個のI/
Oプロセッサ26または27へ、あるいは1個のバス2
8の1個のI/Oコントローラ30へ(すなわち1個の
I/O素子における1個の制御レジスタ又はステイタス
レジスタ、又はデータレジスタへ)のいずれかにCPU
がライト動作を行うとき、これは、メモリモジュールに
おけるバイパス動作であり、両メモリモジュールは動作
を実行して、2個のI/Oバス24と25にそれを通過
させる。2個のI/Oプロセッサ26と27は、ともに
バス24と25をモニタし、パリティをチェックし、コ
ントローラ126を介して適正なシンタックスでコマン
ドをチェックする。例えば、もしCPUがI/Oプロセ
ッサ26または27内のレジスタにライトを実行するな
らば、もしどちらかのメモリモジュールが正当なアドレ
ス、正当なコマンド及び正当なデータを示すならば(パ
リティエラーがないことと適正なプロトコルによって証
明されるように)、アドレス指定されたI/Oプロセッ
サは、アドレス指定されたロケーションにデータをライ
トし、ライト動作が成功して完了したという肯定応答指
示でメモリモジュールに応答する。両メモリモジュール
14と15は、I/Oプロセッサ26又は27からの応
答(図9のアドレスとデータの肯定応答信号)をモニタ
していて、両メモリモジュールは、ライン33−1と3
3−2の動作ステイタスでCPUに応答する。(もしこ
れがリードであるならば、プライマリのメモリモジュー
ルのみがデータを戻すが、しかし両方がステイタスを戻
す。)CPUは、両方がライトを正しく実行したか、1
個だけであったか、無しであったかを決定できる。もし
1個だけが良好なステイタスを戻し、それがプライマリ
ならば、所有権を変える必要は無い。しかしもしバック
アップが良好に戻され、プライマリが悪く戻されるなら
ば、所有権の変更が強行され、正しく実行したものをプ
ライマリにする。どちらの場合も、割り込みが故障を報
告するために入れられる。この点で、CPUは、悪いの
がメモリモジュールであるか、メモリモジュールの下流
側の何かであるかを知らない。それで、同様なライトが
I/Oプロセッサに対して試みられる。しかし、これが
成功するならば、メモリモジュールが悪いことを必ずし
も証明する必要が無い。なぜなら、初めにアドレス指定
されたI/Oプロセッサが例えばバス24または25の
ラインに接続され、パリティエラーを起こしたからであ
る。それで、システムは、選択的に、I/Oプロセッサ
のシャットオフと操作のリトライ香[ルバス43の誤っ
たミス信号(例えばセットされないタグバリッドビット
(Tag Valid bit)を単に発生することによって行うこ
とができ、こうしてキャシュミス例外ルーチンをエンタ
ーさせ、その結果生じたメモリ参照は、任意のメモリ参
照が行われるように同期を確立させる。カウンタ71の
オーバーフローに対して同期させる他の方法は、プロセ
ッサ40にストールをさせることである。これは図2の
論理回路71aを介してコントロールバス43にCPビ
ジー(コプロセッサビジー)信号を発生するオーバーフ
ロー信号OVFLを用いて行うことができる。このCP
ビジー信号はCPビジーが主張されなくなるまで、常に
プロセッサ40にストールをエンターすることになる。
全3個のプロセッサは、同じコードを実行していてその
カウンタ71に同じサイクルを計数するので、このスト
ールをエンターする。しかし、CPUがストールをエン
ターする実際の時間は変化する。論理回路71aは、入
力R#を介して他の2個のプロセッサのバス43からラ
ン#を受信し、そうして全3個がストールしたときに、
CPビジー信号がリリースされ、プロセッサは、再び同
期してストールから出る。
【0074】こうして、2つの同期技法が説明された。
第2の技法では、同期はメモリモジュールの回路100
におけるメモリ参照から生じ、第2の技法では、いま説
明したように、カウンタ71のオーバーフローによって
生じる。さらに、以下に説明されるように、割り込みが
同期化される。しかし、注意するべき重要なことは、プ
ロセッサ40は、基本的にはそれ自身のクロックで自由
にランしていて、同期イベントが発生する場合を除い
て、実質的に相互に結合されていない。マイクロプロセ
ッサが図4と図5に示されたように使用される事実は、
単独のクロックを用いてのロックステップ同期をより困
難にしていて、性能を低下させている。また、ライトバ
ッファ50の使用は、プロセッサを結合しないように役
立ち、ましてプロセッサの密接な結合に有効ではないで
あろう。同様に、命令キャシュとデータキャシュ及びT
LB83を用いた仮想メモリ管理からなる高性能は、密
接な結合が使用されたならばさらに困難になり、性能は
悪影響を受けるだろう。
第2の技法では、同期はメモリモジュールの回路100
におけるメモリ参照から生じ、第2の技法では、いま説
明したように、カウンタ71のオーバーフローによって
生じる。さらに、以下に説明されるように、割り込みが
同期化される。しかし、注意するべき重要なことは、プ
ロセッサ40は、基本的にはそれ自身のクロックで自由
にランしていて、同期イベントが発生する場合を除い
て、実質的に相互に結合されていない。マイクロプロセ
ッサが図4と図5に示されたように使用される事実は、
単独のクロックを用いてのロックステップ同期をより困
難にしていて、性能を低下させている。また、ライトバ
ッファ50の使用は、プロセッサを結合しないように役
立ち、ましてプロセッサの密接な結合に有効ではないで
あろう。同様に、命令キャシュとデータキャシュ及びT
LB83を用いた仮想メモリ管理からなる高性能は、密
接な結合が使用されたならばさらに困難になり、性能は
悪影響を受けるだろう。
【0075】割り込み同期技法は、リアルタイムといわ
ゆる「仮想タイム」を区別しなければならない。リアル
タイムは、外部の実際の時間、壁の時計の時間であり、
秒単位で測定され、又は便宜上例えば60nsecの分
類であるマシンサイクルで測定される。もちろん、クロ
ック発生器17はそれぞれリアルタイムでクロックパル
スを発生する。仮想タイムは、各プロセッサチップ40
の内部サイクル計数タイムであり、各のサイクルカウン
タ71と73で測定される。すなわち、プロセッサチッ
プによって実行される命令の命令数であり、ある任意の
開始点からの命令において測定される。
ゆる「仮想タイム」を区別しなければならない。リアル
タイムは、外部の実際の時間、壁の時計の時間であり、
秒単位で測定され、又は便宜上例えば60nsecの分
類であるマシンサイクルで測定される。もちろん、クロ
ック発生器17はそれぞれリアルタイムでクロックパル
スを発生する。仮想タイムは、各プロセッサチップ40
の内部サイクル計数タイムであり、各のサイクルカウン
タ71と73で測定される。すなわち、プロセッサチッ
プによって実行される命令の命令数であり、ある任意の
開始点からの命令において測定される。
【0076】図10を参照して、リアルタイム(t0か
らt12として示される)と仮想タイム(命令数(カウン
トレジスタ73のモジューロ16計数)I0からI15と
して示される)との間の関係が図示される。図10
(a)の各行は、1個のCPU−A,−B又は−Cのサ
イクル計数であり、各列は、リアルタイムでの「点」で
ある。CPUに対するクロックは、位相がずれ易い。そ
こで、実際の時間の相関は、図10(b)に示されるよ
うなものであり、ここで、命令数(列)は完全には並ん
でおらず、すなわち、サイクル計数は、並べられたリア
ルタイムマシンサイクルの境界で変化しない。しかし、
図10の図示は、説明の目的には十分である。図10に
おいて、リアルタイムt3でCPU−Aは第3の命令に
あり、CPU−Bは計数9にあり9番目の命令を実行し
ていて、CPU−Cは4番目の命令にある。リアルタイ
ムも仮想タイムも進むことが可能なだけであることに注
意する。
らt12として示される)と仮想タイム(命令数(カウン
トレジスタ73のモジューロ16計数)I0からI15と
して示される)との間の関係が図示される。図10
(a)の各行は、1個のCPU−A,−B又は−Cのサ
イクル計数であり、各列は、リアルタイムでの「点」で
ある。CPUに対するクロックは、位相がずれ易い。そ
こで、実際の時間の相関は、図10(b)に示されるよ
うなものであり、ここで、命令数(列)は完全には並ん
でおらず、すなわち、サイクル計数は、並べられたリア
ルタイムマシンサイクルの境界で変化しない。しかし、
図10の図示は、説明の目的には十分である。図10に
おいて、リアルタイムt3でCPU−Aは第3の命令に
あり、CPU−Bは計数9にあり9番目の命令を実行し
ていて、CPU−Cは4番目の命令にある。リアルタイ
ムも仮想タイムも進むことが可能なだけであることに注
意する。
【0077】CPUのプロセッサチップ40は、リソー
スが利用出来ないある条件の下でストールする。例え
ば、ロードまたは命令フェッチの間のDキャシュ45ま
たはIキャシュ44のミス、ライトバッファ50がスト
ア動作の間に一杯であるという信号、コプロセッサ46
がビジーである(コプロセッサがデータ依存性又は制限
された処理リソースにより取り扱えない命令を受信し
た)というコントロールバス43を介しての「CPビジ
ー」信号、またはマルチプライア/デバイダ79がビジ
ーである(内部のマルチプライア/デバイダ回路が、プ
ロセッサが結果レジスタをアクセスしようとしたときに
動作を完了していなかった)ことである。もちろん、キ
ャシュ44と45は、プロセッサ40による介在なしに
状態を変化しない「バッシブリソース」である。しか
し、残りのものは、プロセッサがなんら作用しなくても
状態を変化出来るアクティブリソースである。例えば、
ライトバッファ50は、(プロセッサが他のストア動作
を行なわない限り)プロセッサによる作用なしにフルか
らエンプティに変化する。そこでストールに、パッシブ
リソースのストールとアクティブリソースのストールの
2つのタイプがある。アクティブリソースのストール
は、インターロックストールと呼ばれる。
スが利用出来ないある条件の下でストールする。例え
ば、ロードまたは命令フェッチの間のDキャシュ45ま
たはIキャシュ44のミス、ライトバッファ50がスト
ア動作の間に一杯であるという信号、コプロセッサ46
がビジーである(コプロセッサがデータ依存性又は制限
された処理リソースにより取り扱えない命令を受信し
た)というコントロールバス43を介しての「CPビジ
ー」信号、またはマルチプライア/デバイダ79がビジ
ーである(内部のマルチプライア/デバイダ回路が、プ
ロセッサが結果レジスタをアクセスしようとしたときに
動作を完了していなかった)ことである。もちろん、キ
ャシュ44と45は、プロセッサ40による介在なしに
状態を変化しない「バッシブリソース」である。しか
し、残りのものは、プロセッサがなんら作用しなくても
状態を変化出来るアクティブリソースである。例えば、
ライトバッファ50は、(プロセッサが他のストア動作
を行なわない限り)プロセッサによる作用なしにフルか
らエンプティに変化する。そこでストールに、パッシブ
リソースのストールとアクティブリソースのストールの
2つのタイプがある。アクティブリソースのストール
は、インターロックストールと呼ばれる。
【0078】CPU−A,−B,−Cで実行されるコー
ドストリームが同一であるので、3個のCPUのキャシ
ュ44と45のようなパッシブリソースの状態は、仮想
タイムの総ての点で必然的に同じである。もしストール
がパッシブリソース(例えばデータキャシュ45)での
衝突の結果であれば、全3個のプロセッサはストールを
行い、ただ1つの変数は、ストールの長さである。図1
1を参照して、キャシュミスが14で発生し、このミス
の結果のグローバルメモリ14又は15へのアクセスが
8クロック(実際には8クロック以上であってもよい)
の時間がかかったと仮定する。この場合、CPU−C
は、t1でグローバルメモリ14又は15へのアクセス
を開始し、グローバルメモリのコントローラ117は、
第1のプロセッサCPU−Cがメモリアクセスの開始を
信号するときにメモリアクセスを開始する。コントロー
ラ117は、CPU−BとCPU−Cがそれぞれメモリ
アクセスに必要な8クロックより少なくストールするけ
れども、アクセス8クロック遅れてt8で完了する。そ
の結果、全CPUは、リアルタイムでも仮想タイムでも
同期される。この例は、また、DRAM104へのアク
セスの重複と回路100でのボーティングとの利点を示
す。
ドストリームが同一であるので、3個のCPUのキャシ
ュ44と45のようなパッシブリソースの状態は、仮想
タイムの総ての点で必然的に同じである。もしストール
がパッシブリソース(例えばデータキャシュ45)での
衝突の結果であれば、全3個のプロセッサはストールを
行い、ただ1つの変数は、ストールの長さである。図1
1を参照して、キャシュミスが14で発生し、このミス
の結果のグローバルメモリ14又は15へのアクセスが
8クロック(実際には8クロック以上であってもよい)
の時間がかかったと仮定する。この場合、CPU−C
は、t1でグローバルメモリ14又は15へのアクセス
を開始し、グローバルメモリのコントローラ117は、
第1のプロセッサCPU−Cがメモリアクセスの開始を
信号するときにメモリアクセスを開始する。コントロー
ラ117は、CPU−BとCPU−Cがそれぞれメモリ
アクセスに必要な8クロックより少なくストールするけ
れども、アクセス8クロック遅れてt8で完了する。そ
の結果、全CPUは、リアルタイムでも仮想タイムでも
同期される。この例は、また、DRAM104へのアク
セスの重複と回路100でのボーティングとの利点を示
す。
【0079】インターロックストールは、パッシブリソ
ースストールから異なった状況を示す。1個のCPU
は、他のCPUが全くストールをしないときにインター
ロックストールをすることが出来る。図12を参照し
て、ライトバッファ50によって起こされるインターロ
ックストールが図示される。CPU−AとCPU−Bの
サイクル計数が示され、CPU−AとCPU−Bのライ
トバッファ50からのフル(full)フラグAwbとBwb
が、サイクル計数の下に示される(ハイレベルすなわち
論理1はフルを意味し、ローレベルすなわち論理0はエ
ンプティを意味する)。CPUはストア動作が実行され
る毎に、フルフラグの状態をチェックする。もしフルフ
ラグがセットされるならば、CPUは、フルフラグがク
リアされストア動作を完了するまでストールする。ライ
トバッファ50は、もしストア動作がバッファを満たす
ならば、フルフラグをセットし、ストア動作がバッファ
から1ワードを流出して次のCPUストア動作のための
位置をフリーにするときはいつでもフルフラグをクリア
する。時間t0で、CPU−Bは、3クロックCPU−
Aの先にあり、ライトバッファは共にフルである。ライ
トバッファがグローバルメモリにライト動作を行ってい
ると仮定すると、このライトがt5の間に完了すると
き、ライトバッファフルフラグはクリアされる。このク
リアは、リアルタイムでt6に同期して起こるが(図1
1に図示される理由により)、仮想タイムでは同期して
いない。いま、サイクル計数I6での命令は、ストア動
作であると仮定すると、CPU−Aは、ライトバッファ
フルフラグがクリアされた後でt6でこのストアを実行
するが、しかし、CPU−Bはt3でこのストア命令を
実行し、そうして、ライトバッファフルフラグがなおセ
ットされていることを見いだして3クロックの間ストー
ルをしなければならない。こうして、CPU−Bはスト
ールをするが、CPU−Aはストールをしない。
ースストールから異なった状況を示す。1個のCPU
は、他のCPUが全くストールをしないときにインター
ロックストールをすることが出来る。図12を参照し
て、ライトバッファ50によって起こされるインターロ
ックストールが図示される。CPU−AとCPU−Bの
サイクル計数が示され、CPU−AとCPU−Bのライ
トバッファ50からのフル(full)フラグAwbとBwb
が、サイクル計数の下に示される(ハイレベルすなわち
論理1はフルを意味し、ローレベルすなわち論理0はエ
ンプティを意味する)。CPUはストア動作が実行され
る毎に、フルフラグの状態をチェックする。もしフルフ
ラグがセットされるならば、CPUは、フルフラグがク
リアされストア動作を完了するまでストールする。ライ
トバッファ50は、もしストア動作がバッファを満たす
ならば、フルフラグをセットし、ストア動作がバッファ
から1ワードを流出して次のCPUストア動作のための
位置をフリーにするときはいつでもフルフラグをクリア
する。時間t0で、CPU−Bは、3クロックCPU−
Aの先にあり、ライトバッファは共にフルである。ライ
トバッファがグローバルメモリにライト動作を行ってい
ると仮定すると、このライトがt5の間に完了すると
き、ライトバッファフルフラグはクリアされる。このク
リアは、リアルタイムでt6に同期して起こるが(図1
1に図示される理由により)、仮想タイムでは同期して
いない。いま、サイクル計数I6での命令は、ストア動
作であると仮定すると、CPU−Aは、ライトバッファ
フルフラグがクリアされた後でt6でこのストアを実行
するが、しかし、CPU−Bはt3でこのストア命令を
実行し、そうして、ライトバッファフルフラグがなおセ
ットされていることを見いだして3クロックの間ストー
ルをしなければならない。こうして、CPU−Bはスト
ールをするが、CPU−Aはストールをしない。
【0080】1個のCPUはストールをするかも知れず
他のCPUはストールをしないかも知れないという性質
は、サイクルカウンタ71の解釈に制限を課する。図1
2において、割り込みがサイクル計数I7で(CPU−
BがI6命令からストールをしている間に)複数のCP
Uに示されたと仮定する。サイクル計数I7に対するラ
ンサイクルは、t7で両CPUに対して起こる。もしサ
イクルカウンタだけがCPUに割り込みを示すなら、C
PU−Aはサイクル計数I7で割り込みを見るが、CP
U−Bはサイクル計数I6から生じるストールサイクル
の間に割り込みを見る。そうして、割り込みを示すこの
方法が、この2個のCPUに異なった命令での例外、も
し全CPUがストールされるか又はストールされていな
い場合には起こらないような条件が採用される。
他のCPUはストールをしないかも知れないという性質
は、サイクルカウンタ71の解釈に制限を課する。図1
2において、割り込みがサイクル計数I7で(CPU−
BがI6命令からストールをしている間に)複数のCP
Uに示されたと仮定する。サイクル計数I7に対するラ
ンサイクルは、t7で両CPUに対して起こる。もしサ
イクルカウンタだけがCPUに割り込みを示すなら、C
PU−Aはサイクル計数I7で割り込みを見るが、CP
U−Bはサイクル計数I6から生じるストールサイクル
の間に割り込みを見る。そうして、割り込みを示すこの
方法が、この2個のCPUに異なった命令での例外、も
し全CPUがストールされるか又はストールされていな
い場合には起こらないような条件が採用される。
【0081】サイクルカウンタの解釈についての別の制
限は、サイクル計数の検出と作用の実行との間に遅れが
あってはならないことである。再び図12を参照して、
割り込みがサイクル計数I6でCPUに示されるが、実
行の制限のために余分のクロックの遅れがサイクル計数
I6の検出とCPUへの割り込みの提示の間に介在する
と仮定する。その結果は、CPU−Aが、この割り込み
をサイクル計数I7で確認するが、CPU−Bは、サイ
クル計数I6からのストールの間に割り込みを確認し
て、2個のCPUに異なった命令で例外を採らせる。再
び、リアルタイムで命令パイプラインの状態をモニタす
ることの重要性が図示される。
限は、サイクル計数の検出と作用の実行との間に遅れが
あってはならないことである。再び図12を参照して、
割り込みがサイクル計数I6でCPUに示されるが、実
行の制限のために余分のクロックの遅れがサイクル計数
I6の検出とCPUへの割り込みの提示の間に介在する
と仮定する。その結果は、CPU−Aが、この割り込み
をサイクル計数I7で確認するが、CPU−Bは、サイ
クル計数I6からのストールの間に割り込みを確認し
て、2個のCPUに異なった命令で例外を採らせる。再
び、リアルタイムで命令パイプラインの状態をモニタす
ることの重要性が図示される。
【0082】〈割り込み同期〉図1から図3までの3個
のCPUは、単独の論理プロセッサとして機能すること
が要求され、従って、3個のCPUのプログラミングモ
デルが単独の論理プログラミングのプログラミングモデ
ルであることを保証するためにその内部状態に関してあ
る制限を実行することを要求する。誤りモードや診断モ
−ドを除いて、上記3個のCPUの命令ストリームは同
一であることが要求される。もし同一でなかったら、図
6のボーティング回路100でのグローバルメモリアク
セスのボーティングが困難になるだろう。すなわち、ボ
ートするものは、1個のCPUが故障しているのが、異
なったシーケンスの命令を実行しているのか分からな
い。同期スキームは、もし任意のCPUのコードストリ
ームが、その他のCPUのコードストリームから分岐す
るならば故障が起こったと仮定するように設計される。
割り込み同期は、単独のCPUイメージを維持する1つ
のメカニズムを提供する。
のCPUは、単独の論理プロセッサとして機能すること
が要求され、従って、3個のCPUのプログラミングモ
デルが単独の論理プログラミングのプログラミングモデ
ルであることを保証するためにその内部状態に関してあ
る制限を実行することを要求する。誤りモードや診断モ
−ドを除いて、上記3個のCPUの命令ストリームは同
一であることが要求される。もし同一でなかったら、図
6のボーティング回路100でのグローバルメモリアク
セスのボーティングが困難になるだろう。すなわち、ボ
ートするものは、1個のCPUが故障しているのが、異
なったシーケンスの命令を実行しているのか分からな
い。同期スキームは、もし任意のCPUのコードストリ
ームが、その他のCPUのコードストリームから分岐す
るならば故障が起こったと仮定するように設計される。
割り込み同期は、単独のCPUイメージを維持する1つ
のメカニズムを提供する。
【0083】すべての割り込みは、仮想タイムに同期し
て起こることが要求され、3個のプロセッサCPU−
A,CPU−BとCPU−Cの命令ストリームが割り込
みの結果として分岐しないこと保証する(分岐する命令
ストリームには他の原因もある。例えば、1個のプロセ
ッサが他のプロセッサによってリードされたデータと異
なったデータをリードすること)。仮想タイムに対して
非同期に起こる割り込みがコードストリームを分岐させ
るシナリオは、いくつかある。例えば、プロセスAが完
了する前にコンテクストスイッチをオンにさせるがプロ
セスAが他のCPUで完了した後でコンテクストスイッ
チをオンにさせる割り込みは、その後のある点で、1個
のCPUがプロセスAの実行を続けるが他方のCPUは
プロセスAが既に完了しているためプロセスAを実行出
来ないという状況をもたらす。もしこの場合に割り込み
が仮想タイムに非同期に起こるならば、例外プログラム
カウンタが異なるという事実が問題を起こすであろう。
例外プログラムカウンタの値をグローバルメモリに書き
込む行為は、ボーター3が3個のCPUから異なったデ
ータを検出し、ボートフォールトを生じるという結果に
なるだろう。
て起こることが要求され、3個のプロセッサCPU−
A,CPU−BとCPU−Cの命令ストリームが割り込
みの結果として分岐しないこと保証する(分岐する命令
ストリームには他の原因もある。例えば、1個のプロセ
ッサが他のプロセッサによってリードされたデータと異
なったデータをリードすること)。仮想タイムに対して
非同期に起こる割り込みがコードストリームを分岐させ
るシナリオは、いくつかある。例えば、プロセスAが完
了する前にコンテクストスイッチをオンにさせるがプロ
セスAが他のCPUで完了した後でコンテクストスイッ
チをオンにさせる割り込みは、その後のある点で、1個
のCPUがプロセスAの実行を続けるが他方のCPUは
プロセスAが既に完了しているためプロセスAを実行出
来ないという状況をもたらす。もしこの場合に割り込み
が仮想タイムに非同期に起こるならば、例外プログラム
カウンタが異なるという事実が問題を起こすであろう。
例外プログラムカウンタの値をグローバルメモリに書き
込む行為は、ボーター3が3個のCPUから異なったデ
ータを検出し、ボートフォールトを生じるという結果に
なるだろう。
【0084】CPUにおけるあるタイプの例外は、本来
仮想タイムに同期している。1つの例は、ブレークポイ
ント命令の実行によって生じるブレークポイント例外で
ある。全CPUの命令ストリームが同一なので、ブレー
クポイント例外は3個のCPUにおける仮想タイムにて
同じ点で生じる。同様に、全てのそのような内部例外
は、本来仮想タイムに同期して生じる。例えば、TLB
例外は本来同期する内部例外である。TLB例外は仮想
ページ数がTLB83のどのエントリにも適合しないた
めに生じる。アドレスを解釈するということが(ブレー
クポイント例外におけるように正確に)単に命令ストリ
ームの機能なので、解釈は、本来仮想タイムに同期す
る。TLB例外が仮想タイムに同期することを確実にす
るために、TLB83の状態は全3個のCPU11、1
2、13において同一でなければならず、これは、TL
B83がソフトウエアだけによって変更できるので、保
証される。再び、全CPUが同じ命令ストリームを実行
するので、TLB83の状態は常に仮想タイムに同期し
て変化される。そうして、一般的経験則として、もし行
動がソフトウエアにより実行されるなら、その行動は仮
想タイムに同期している。もし行動がサイクルカウンタ
を用いないハードウエアにより実行されるなら、その行
動は一般にリアルタイムに同期である。
仮想タイムに同期している。1つの例は、ブレークポイ
ント命令の実行によって生じるブレークポイント例外で
ある。全CPUの命令ストリームが同一なので、ブレー
クポイント例外は3個のCPUにおける仮想タイムにて
同じ点で生じる。同様に、全てのそのような内部例外
は、本来仮想タイムに同期して生じる。例えば、TLB
例外は本来同期する内部例外である。TLB例外は仮想
ページ数がTLB83のどのエントリにも適合しないた
めに生じる。アドレスを解釈するということが(ブレー
クポイント例外におけるように正確に)単に命令ストリ
ームの機能なので、解釈は、本来仮想タイムに同期す
る。TLB例外が仮想タイムに同期することを確実にす
るために、TLB83の状態は全3個のCPU11、1
2、13において同一でなければならず、これは、TL
B83がソフトウエアだけによって変更できるので、保
証される。再び、全CPUが同じ命令ストリームを実行
するので、TLB83の状態は常に仮想タイムに同期し
て変化される。そうして、一般的経験則として、もし行
動がソフトウエアにより実行されるなら、その行動は仮
想タイムに同期している。もし行動がサイクルカウンタ
を用いないハードウエアにより実行されるなら、その行
動は一般にリアルタイムに同期である。
【0085】外部の例外は、本来仮想タイムに同期して
いない。I/O装置26、27又は28は、3個のCP
U11、12、及び13の仮想タイムについて情報を有
しない。従って、I/O装置によって発生される全ての
割り込みは、以下に説明するように、CPUに示される
前に仮想タイムに同期されなければならない。浮動点例
外は、浮動点プロセッサ46がCPU内でマイクロプロ
セッサ40に堅く結合されるので、I/O装置割り込み
と異なっている。
いない。I/O装置26、27又は28は、3個のCP
U11、12、及び13の仮想タイムについて情報を有
しない。従って、I/O装置によって発生される全ての
割り込みは、以下に説明するように、CPUに示される
前に仮想タイムに同期されなければならない。浮動点例
外は、浮動点プロセッサ46がCPU内でマイクロプロ
セッサ40に堅く結合されるので、I/O装置割り込み
と異なっている。
【0086】外部装置は、3個のCPUを1つの論理的
プロセッサとして見て、CPU間の同期や同期の欠乏に
ついての情報を有しない。従って、外部割り込みは、各
CPUの個々の命令ストリーム(仮想タイム)と同期で
ある割り込みを生成することが出来ない。どのような種
類の同期も無ければ、もしある外部装置がリアルタイム
t1の時間に割り込みを駆動し、その割り込みがその時
間に全CPUに直接示されるならば、3個のCPUは、
異なった命令で例外トラップをとり、3個のCPUのア
クセプトされない状態が生じる。これは、リアルタイム
に同期であるが仮想タイムに同期しないイベント(割り
込みの主張)の例である。
プロセッサとして見て、CPU間の同期や同期の欠乏に
ついての情報を有しない。従って、外部割り込みは、各
CPUの個々の命令ストリーム(仮想タイム)と同期で
ある割り込みを生成することが出来ない。どのような種
類の同期も無ければ、もしある外部装置がリアルタイム
t1の時間に割り込みを駆動し、その割り込みがその時
間に全CPUに直接示されるならば、3個のCPUは、
異なった命令で例外トラップをとり、3個のCPUのア
クセプトされない状態が生じる。これは、リアルタイム
に同期であるが仮想タイムに同期しないイベント(割り
込みの主張)の例である。
【0087】複数の割り込みは、図1から図3までのシ
ステムにおいて、割り込みについて分散されたボートを
実行し、決定されたサイクル計数でプロセッサに割り込
みを示すことにより、仮想タイムに同期する。図13
は、図2の割り込み同期論理回路65のより詳細なブロ
ック図を示す。各CPUは、モジュール14又は15か
ら生じるライン69又は70からの外部割り込みを捕捉
する分配器135を含む。この捕捉はあらかじめ決定さ
れたサイクル計数で、例えばカウンタ71から入力ライ
ンCC−4で信号が出力される計数−4で起こる。捕捉
された割り込みは、CPU間バス18を介して他の2個
のCPUへ分配される。これらの分配された割り込み
は、未決定割り込みと呼ばれる。各CPU11、12、
13から1個の3個の未決定割り込みがある。ボータ回
路136は、未決定割り込みを捕捉出力、全CPUが外
部割り込み要求を受信したかを確認するボートを行な
う。(サイクルカウンタ71で検出される)あらかじめ
決定されたサイクル計数で、この例では入力ラインCC
−8により受け取られたサイクル8で、割り込みボータ
136は、ライン137とバス55と43を介して各マ
イクロプロセッサ40の割り込みピンに割り込みを示
す。割り込みを示すために用いられるサイクル計数があ
らかじめ決定されているので、全マイクロプロセッサ4
0は、同じサイクル計数で割り込みを受け取り、こうし
て、割り込みが仮想タイムに同期されている。
ステムにおいて、割り込みについて分散されたボートを
実行し、決定されたサイクル計数でプロセッサに割り込
みを示すことにより、仮想タイムに同期する。図13
は、図2の割り込み同期論理回路65のより詳細なブロ
ック図を示す。各CPUは、モジュール14又は15か
ら生じるライン69又は70からの外部割り込みを捕捉
する分配器135を含む。この捕捉はあらかじめ決定さ
れたサイクル計数で、例えばカウンタ71から入力ライ
ンCC−4で信号が出力される計数−4で起こる。捕捉
された割り込みは、CPU間バス18を介して他の2個
のCPUへ分配される。これらの分配された割り込み
は、未決定割り込みと呼ばれる。各CPU11、12、
13から1個の3個の未決定割り込みがある。ボータ回
路136は、未決定割り込みを捕捉出力、全CPUが外
部割り込み要求を受信したかを確認するボートを行な
う。(サイクルカウンタ71で検出される)あらかじめ
決定されたサイクル計数で、この例では入力ラインCC
−8により受け取られたサイクル8で、割り込みボータ
136は、ライン137とバス55と43を介して各マ
イクロプロセッサ40の割り込みピンに割り込みを示
す。割り込みを示すために用いられるサイクル計数があ
らかじめ決定されているので、全マイクロプロセッサ4
0は、同じサイクル計数で割り込みを受け取り、こうし
て、割り込みが仮想タイムに同期されている。
【0088】図14は、仮想タイムに対して割り込みを
同期するためのイベントのシーケンスを示す。CPU
A,CPU−B及びCPU−Cと示された行は、リアル
タイムでの1点での各CPUのカウンタ71におけるサ
イクル計数を示す。IRQ_A_PENDING,IR
Q_B_PENDING及びIRQ_B_PENDIN
Gと示された行は、ボータ136の入力へCPU間バス
18を介して結合される割り込みの状態を示す(1は、
未決定ビットがセットされていることを意味する)。I
RQ_A,IRQ_B,及びIRQ_Cと示された行
は、マイクロプロセッサ40の割り込み入力ピンの状態
(ライン137の信号)を示し、ここで1は割り込みが
入力ピンに存在することを意味する。図14で、外部の
割り込み(EX_IRQ)は、t0でライン69に主張
される。もし割り込み分配器135が割り込みを捕捉
し、CPU間バス18にサイクル計数4で分配するなら
ば、IRQ_C_PENDINGは時間t1で1にな
り、IRQ_B_PENDINGは時間t2で1にな
り、IRQ_A_PENDINGは時間t4で1にな
る。もし割り込みボータ136がサイクル計数8で割り
込み未決定ビットをボートするならば、IRQ_Cは時
間t5で1になり、IRQ_Bは時間t6で1になり、I
RQ_Cは時間t8で1になる。その結果、割り込み
は、リアルタイムでは異なった点であるが仮想タイムで
は同一の点(すなわちサイクル計数8)でCPUに示さ
れる。
同期するためのイベントのシーケンスを示す。CPU
A,CPU−B及びCPU−Cと示された行は、リアル
タイムでの1点での各CPUのカウンタ71におけるサ
イクル計数を示す。IRQ_A_PENDING,IR
Q_B_PENDING及びIRQ_B_PENDIN
Gと示された行は、ボータ136の入力へCPU間バス
18を介して結合される割り込みの状態を示す(1は、
未決定ビットがセットされていることを意味する)。I
RQ_A,IRQ_B,及びIRQ_Cと示された行
は、マイクロプロセッサ40の割り込み入力ピンの状態
(ライン137の信号)を示し、ここで1は割り込みが
入力ピンに存在することを意味する。図14で、外部の
割り込み(EX_IRQ)は、t0でライン69に主張
される。もし割り込み分配器135が割り込みを捕捉
し、CPU間バス18にサイクル計数4で分配するなら
ば、IRQ_C_PENDINGは時間t1で1にな
り、IRQ_B_PENDINGは時間t2で1にな
り、IRQ_A_PENDINGは時間t4で1にな
る。もし割り込みボータ136がサイクル計数8で割り
込み未決定ビットをボートするならば、IRQ_Cは時
間t5で1になり、IRQ_Bは時間t6で1になり、I
RQ_Cは時間t8で1になる。その結果、割り込み
は、リアルタイムでは異なった点であるが仮想タイムで
は同一の点(すなわちサイクル計数8)でCPUに示さ
れる。
【0089】図15に、図14に示されたアルゴリズム
を必要とするシナリオを変更して示す。ここではサイク
ルカウンタ71がモジューロ8カウンタにより表される
ことに注意する。外部割り込み(EX_IRQ)は時間
t3で主張される。割り込み分配器135はこの割り込
みを捕捉し、サイクル計数4でCPU間バス18に割り
込みを分配する。CPU−BとCPU−Cが時間t3の
前にサイクル計数を実行しているので、その割り込み分
配器は外部割り込みを捕捉することができない。しか
し、CPU−Aは時間t3の前にサイクル計数を実行す
る。その結果、CPU−Aは時間t4で外部割り込みを
捕捉して分配する。しかし、もし割り込みボータ136
がサイクル計数7で割り込み未決定ビットを捕捉してボ
ートするならば、CPU−Aの割り込みボータ136
は、他の2個の割り込み未決定ビットがセットされてい
ないとき、時間t7でIRQ_A_PEND信号を捕捉
する。CPU−Aの割り込みボータ136は全てのCP
Uが外部割り込みを分配していないことを認識し、捕捉
された割り込み未決定ビットを保持レジスタ138に出
力されて格納される。CPU−BとCPU−Cの割り込
みボータ136は単独の割り込み未決定ビットをそれぞ
れ時間t5とt4に捕捉する。CPU−Aの割り込みボー
タのように、これらのボータは、全ての割り込み未決定
ビットがセットされていないことを認識し、こうして、
セットされた単独の割り込み未決定ビットが保持レジス
タ138に出力されて格納される。各CPUのサイクル
カウンタ71は、サイクル計数7に達するとき、ロール
オーバーし、サイクル計数0で計数を開始する。外部割
り込みはまだ主張されているので、CPU−BとCPU
−Cの割り込み分配器135は、それぞれ時間t10とt9
で外部割り込みを捕捉する。これらの時間は、サイクル
計数が4に等しくなったときに対応する。時間t12で、
CPU−Cの割り込みボータは、CPU間バス18に割
り込み未決定ビットを捕捉する。ボータ136は、全C
外部割り込みを捕捉して分配することを決定し、プロセ
ッサチップ40に割り込みを示す。時間t13と時間t15
に、CPU−BとCPU−Aの割り込みボータ136
は、割り込み未決定ビットを捕捉し、割り込みをプロセ
ッサチップ40に示す。その結果、全プロセッサチップ
が同じ命令で外部割り込み要求を受信したことになり、
保持レジスタに保存されていた情報は必要でなくなる。
を必要とするシナリオを変更して示す。ここではサイク
ルカウンタ71がモジューロ8カウンタにより表される
ことに注意する。外部割り込み(EX_IRQ)は時間
t3で主張される。割り込み分配器135はこの割り込
みを捕捉し、サイクル計数4でCPU間バス18に割り
込みを分配する。CPU−BとCPU−Cが時間t3の
前にサイクル計数を実行しているので、その割り込み分
配器は外部割り込みを捕捉することができない。しか
し、CPU−Aは時間t3の前にサイクル計数を実行す
る。その結果、CPU−Aは時間t4で外部割り込みを
捕捉して分配する。しかし、もし割り込みボータ136
がサイクル計数7で割り込み未決定ビットを捕捉してボ
ートするならば、CPU−Aの割り込みボータ136
は、他の2個の割り込み未決定ビットがセットされてい
ないとき、時間t7でIRQ_A_PEND信号を捕捉
する。CPU−Aの割り込みボータ136は全てのCP
Uが外部割り込みを分配していないことを認識し、捕捉
された割り込み未決定ビットを保持レジスタ138に出
力されて格納される。CPU−BとCPU−Cの割り込
みボータ136は単独の割り込み未決定ビットをそれぞ
れ時間t5とt4に捕捉する。CPU−Aの割り込みボー
タのように、これらのボータは、全ての割り込み未決定
ビットがセットされていないことを認識し、こうして、
セットされた単独の割り込み未決定ビットが保持レジス
タ138に出力されて格納される。各CPUのサイクル
カウンタ71は、サイクル計数7に達するとき、ロール
オーバーし、サイクル計数0で計数を開始する。外部割
り込みはまだ主張されているので、CPU−BとCPU
−Cの割り込み分配器135は、それぞれ時間t10とt9
で外部割り込みを捕捉する。これらの時間は、サイクル
計数が4に等しくなったときに対応する。時間t12で、
CPU−Cの割り込みボータは、CPU間バス18に割
り込み未決定ビットを捕捉する。ボータ136は、全C
外部割り込みを捕捉して分配することを決定し、プロセ
ッサチップ40に割り込みを示す。時間t13と時間t15
に、CPU−BとCPU−Aの割り込みボータ136
は、割り込み未決定ビットを捕捉し、割り込みをプロセ
ッサチップ40に示す。その結果、全プロセッサチップ
が同じ命令で外部割り込み要求を受信したことになり、
保持レジスタに保存されていた情報は必要でなくなる。
【0090】〈保持レジスタ〉図15において関して上
述に示された割り込みシナリオにおいて、ボータ136
は、若干のステート割り込み情報を保存するために保持
レジスタ138を使用する。特に、保存されたステート
は、全CPUでなくいくつかのCPUが外部割り込みを
捕捉し分配したことであった。もしシステムが(図15
の状況のように)どんな故障もしない場合は、前の例に
示したように、外部割り込みが保持レジスタの使用なし
に仮想タイムに同期出来るので、このステート情報は必
要でない。アルゴルズムは、割り込みボータ136が割
り込み未決定ビットをあらかじめ決定されたサイクル計
数で捕えボートすることである。全ての割り込み未決定
ビットが主張されるとき、割り込みは、そのあらかじめ
決定されたサイクル計数でプロセッサチップに示され
る。図15の例において、割り込みはサイクル計数7で
ボートされた。
述に示された割り込みシナリオにおいて、ボータ136
は、若干のステート割り込み情報を保存するために保持
レジスタ138を使用する。特に、保存されたステート
は、全CPUでなくいくつかのCPUが外部割り込みを
捕捉し分配したことであった。もしシステムが(図15
の状況のように)どんな故障もしない場合は、前の例に
示したように、外部割り込みが保持レジスタの使用なし
に仮想タイムに同期出来るので、このステート情報は必
要でない。アルゴルズムは、割り込みボータ136が割
り込み未決定ビットをあらかじめ決定されたサイクル計
数で捕えボートすることである。全ての割り込み未決定
ビットが主張されるとき、割り込みは、そのあらかじめ
決定されたサイクル計数でプロセッサチップに示され
る。図15の例において、割り込みはサイクル計数7で
ボートされた。
【0091】図15を参照して、もしCPU−Cが誤り
をし、誤りモードが割り込み分配器135が正しく機能
しないようなものであれば、このとき、もしプロセッサ
チップ40に割り込みを示す前に全割り込み未決定ビッ
トがセットされるまで割り込みボータ136が待つなら
ば、その結果、割り込みは示されるようになることは無
い。こうして、ただ1個のCPUのただ1個の誤りが全
CPUについての全体の割り込みのチェーンを機能出来
ないようにする。
をし、誤りモードが割り込み分配器135が正しく機能
しないようなものであれば、このとき、もしプロセッサ
チップ40に割り込みを示す前に全割り込み未決定ビッ
トがセットされるまで割り込みボータ136が待つなら
ば、その結果、割り込みは示されるようになることは無
い。こうして、ただ1個のCPUのただ1個の誤りが全
CPUについての全体の割り込みのチェーンを機能出来
ないようにする。
【0092】保持レジスタ138は、最後の割り込みボ
ートサイクルが全部ではないがスケール区なくとも1個
の割り込み未決定ビットを捕捉したことをボータ136
が知るメカニズムを提供する。割り込みボートサイクル
は、割り込みボータが割り込み未決定ビットを捕捉しボ
ートするサイクル計数で起こる。数個の割り込み未決定
ビットがセットされる結果となる2つだけのシナリオが
ある。1つは、図15に関連して示された示されたシナ
リオであって、ここでは、外部割り込みは、あるCPU
の割り込み分配サイクルの前であるがその他のCPUの
割り込み分配サイクルの後に主張される。第2のシナリ
アでは、少なくとも1個のCPUが、割り込み分配をデ
ィスエーブルにするような誤りをする。もし数個の割り
込み未決定ビットだけが割り込みボートサイクルでセッ
トされる理由が第1のシナリオであるならば、割り込み
ボータは、全割り込み未決定ビットが次の割り込みボー
トサイクルでセットされることが保証される。従って、
もし保持レジスタがセットされていて全部でない割り込
み未決定ビットがセットされていることを割り込みボー
タが発見するならば、エラーが1個以上のCPUに存在
するはずである。これは、各CPUの保持レジスタ13
8が割り込みサービス時にクリアされることを仮定す
る。そのため、保持レジスタの状況は割り込み未決定ビ
ットについての新鮮でない状態を表さない。エラーの場
合、割り込みボータ136は、プロセッサチップ40に
割り込みを示すことができ、同時に、エラーが割り込み
同期論理回路によって検出されたことを示す。
ートサイクルが全部ではないがスケール区なくとも1個
の割り込み未決定ビットを捕捉したことをボータ136
が知るメカニズムを提供する。割り込みボートサイクル
は、割り込みボータが割り込み未決定ビットを捕捉しボ
ートするサイクル計数で起こる。数個の割り込み未決定
ビットがセットされる結果となる2つだけのシナリオが
ある。1つは、図15に関連して示された示されたシナ
リオであって、ここでは、外部割り込みは、あるCPU
の割り込み分配サイクルの前であるがその他のCPUの
割り込み分配サイクルの後に主張される。第2のシナリ
アでは、少なくとも1個のCPUが、割り込み分配をデ
ィスエーブルにするような誤りをする。もし数個の割り
込み未決定ビットだけが割り込みボートサイクルでセッ
トされる理由が第1のシナリオであるならば、割り込み
ボータは、全割り込み未決定ビットが次の割り込みボー
トサイクルでセットされることが保証される。従って、
もし保持レジスタがセットされていて全部でない割り込
み未決定ビットがセットされていることを割り込みボー
タが発見するならば、エラーが1個以上のCPUに存在
するはずである。これは、各CPUの保持レジスタ13
8が割り込みサービス時にクリアされることを仮定す
る。そのため、保持レジスタの状況は割り込み未決定ビ
ットについての新鮮でない状態を表さない。エラーの場
合、割り込みボータ136は、プロセッサチップ40に
割り込みを示すことができ、同時に、エラーが割り込み
同期論理回路によって検出されたことを示す。
【0093】割り込みボータ136は、実際にはどんな
ボーティングもせず、その代わり割り込み未決定ビット
と保持レジスタ137の状態を検査して、プロセッサチ
ップ40に割り込みを示すか否かと割り込み論理回路に
エラーを示すか否かを決定するだけである。
ボーティングもせず、その代わり割り込み未決定ビット
と保持レジスタ137の状態を検査して、プロセッサチ
ップ40に割り込みを示すか否かと割り込み論理回路に
エラーを示すか否かを決定するだけである。
【0094】〈モジューロサイクルカウンタ〉図15の
割り込み同期の例は、割り込みカウンタをモジューロN
カウンタ(例えばモジューロ8カウンタ)として表し
た。モジューロNサイクルカウンタの使用は、割り込み
ボートサイクルの概念を可能にすることにより、割り込
みボーティングアルゴリズムの説明を簡単にした。モジ
ューロNサイクルカウンタを使用すると、割り込みボー
トサイクルは、0とN−1(Nはサイクルカウンタのモ
ジューロである)の間にある単独のサイクル計数として
説明できる。サイクルカウンタのどんな数も割り込みボ
ートサイクルのために選択でき、サイクル計数は、Nサ
イクル計数毎に起こることが保証される。モジューロ8
カウンタに対して15図に示されるように、割り込みボ
ートサイクルは8計数ごとに起こる。割り込みボートサ
イクルは、モジューロNサイクルカウンタの周期的性質
を説明するためにだけここで用いられる。モジューロN
サイクルカウンタの特定のサイクル計数にキーとなるど
のイベントもNサイクル計数ごとに起こることが保証さ
れる。明らかに、不定数(すなわち非反復性カウンタ7
1)は使用できない。
割り込み同期の例は、割り込みカウンタをモジューロN
カウンタ(例えばモジューロ8カウンタ)として表し
た。モジューロNサイクルカウンタの使用は、割り込み
ボートサイクルの概念を可能にすることにより、割り込
みボーティングアルゴリズムの説明を簡単にした。モジ
ューロNサイクルカウンタを使用すると、割り込みボー
トサイクルは、0とN−1(Nはサイクルカウンタのモ
ジューロである)の間にある単独のサイクル計数として
説明できる。サイクルカウンタのどんな数も割り込みボ
ートサイクルのために選択でき、サイクル計数は、Nサ
イクル計数毎に起こることが保証される。モジューロ8
カウンタに対して15図に示されるように、割り込みボ
ートサイクルは8計数ごとに起こる。割り込みボートサ
イクルは、モジューロNサイクルカウンタの周期的性質
を説明するためにだけここで用いられる。モジューロN
サイクルカウンタの特定のサイクル計数にキーとなるど
のイベントもNサイクル計数ごとに起こることが保証さ
れる。明らかに、不定数(すなわち非反復性カウンタ7
1)は使用できない。
【0095】Nの値は、システムに正の効果を持つシス
テムパラメータを最大にし、システムに負の効果を持つ
システムパラメータを最小にするように選択される。ま
ず、いくつかのパラメータが示される。CvとCdは、そ
れぞれ、割り込みボートサイクルと割り込み分配サイク
ルである(図13の回路では、これらはそれぞれCC−
8とCC−4である)。CC−8とCC−4の値は、0
とN−1(Nはサイクルカウンタのモジューロである)
の間の範囲にあらねばならない。Dmaxは、同期論理回
路によって許容され得る3個のプロセッサCPU−A,
CPU−B及びCPU−Cの間のサイクル計数ドリフト
の最大量である。このプロセッサドリフトは、リアルタ
イムの1点で各CPUからサイクルカウンタ71のスナ
ップショットをとることにより決定される。ドリフト
は、最も遅いCPUのサイクル計数を最速のCPUのサ
イクル計数から差し引くこと(モジューロN減算として
なされる)により計算される。Dmaxの値は、NとCvと
Cdの関数として表される。
テムパラメータを最大にし、システムに負の効果を持つ
システムパラメータを最小にするように選択される。ま
ず、いくつかのパラメータが示される。CvとCdは、そ
れぞれ、割り込みボートサイクルと割り込み分配サイク
ルである(図13の回路では、これらはそれぞれCC−
8とCC−4である)。CC−8とCC−4の値は、0
とN−1(Nはサイクルカウンタのモジューロである)
の間の範囲にあらねばならない。Dmaxは、同期論理回
路によって許容され得る3個のプロセッサCPU−A,
CPU−B及びCPU−Cの間のサイクル計数ドリフト
の最大量である。このプロセッサドリフトは、リアルタ
イムの1点で各CPUからサイクルカウンタ71のスナ
ップショットをとることにより決定される。ドリフト
は、最も遅いCPUのサイクル計数を最速のCPUのサ
イクル計数から差し引くこと(モジューロN減算として
なされる)により計算される。Dmaxの値は、NとCvと
Cdの関数として表される。
【0096】まず、Dmaxは、差Cv−Cdの関数として
表される。ここに、差演算はモジューロN減算として実
行される。これは、Dmaxを最大にするCvとCdの値を
選択することを可能にする。図16のシナリオを参照
し、Cv=8とCd=9を仮定する。図16から、プロセ
ッサドリフトはDmax=4であると計算出来る。ライン
69の外部割り込みは、時間t4で主張される。この場
合、CPU−Bは、時間t5で割り込みを捕捉し分配す
る。このシナリオは、前に示された割り込み同期アルゴ
リズムとつじつまが合わない。なぜなら、CPU−Aが
割り込み分配サイクルを行った前にCPU−Bがその割
り込みボートサイクルを実行するからである。このシナ
リオの欠陥は、CvとCdの差よりも更に離れてドリフト
することである。
表される。ここに、差演算はモジューロN減算として実
行される。これは、Dmaxを最大にするCvとCdの値を
選択することを可能にする。図16のシナリオを参照
し、Cv=8とCd=9を仮定する。図16から、プロセ
ッサドリフトはDmax=4であると計算出来る。ライン
69の外部割り込みは、時間t4で主張される。この場
合、CPU−Bは、時間t5で割り込みを捕捉し分配す
る。このシナリオは、前に示された割り込み同期アルゴ
リズムとつじつまが合わない。なぜなら、CPU−Aが
割り込み分配サイクルを行った前にCPU−Bがその割
り込みボートサイクルを実行するからである。このシナ
リオの欠陥は、CvとCdの差よりも更に離れてドリフト
することである。
【0097】この関係は、形式的に次のように書くこと
ができる。 方程式(1) Cv−Cd < Dmax−e ここに、eは、CPU間バス18に伝達される割り込み
未決定ビットのために必要な時間である。前の例では、
eは0と仮定されていた。壁時計の時間がクロックサイ
クル(ランサイクル)のインクリメントで量子化されて
いるので、eも量子化出来る。こうして、次の式が得ら
れる。 方程式(2) Cv−Cd < Dmax−1 ここに、Dmaxは、サイクル計数の整数値として表され
る。
ができる。 方程式(1) Cv−Cd < Dmax−e ここに、eは、CPU間バス18に伝達される割り込み
未決定ビットのために必要な時間である。前の例では、
eは0と仮定されていた。壁時計の時間がクロックサイ
クル(ランサイクル)のインクリメントで量子化されて
いるので、eも量子化出来る。こうして、次の式が得ら
れる。 方程式(2) Cv−Cd < Dmax−1 ここに、Dmaxは、サイクル計数の整数値として表され
る。
【0098】次に、最大のドリフトがNの関数として表
すことができる。図17は、N=4でプロセッサドリフ
トD=3の場合のシナリオを示す。Cd=0と仮定す
る。各プロセッサのサイクル計数0における減算は、命
令サイクル計数の商の部分(Q)を表す。サイクル計数
がいまモジューロNにて示されるので、サイクルカウン
タの値は、I/N(Iは、時間t0以来実行された命令数
である)の剰余である。命令サイクル計数のQは、I/
Nの整数部分である。もし外部割り込みが時間t3に主張
されるならば、CPU−Aは、時間t4に割り込みを捕え
分配し、CPU−Bは、時間t5に割り込み分配サイクル
を実行する。CPU−Aに対する割り込み分配サイクル
がQ=1でありCPU−Bに対する割り込み分配サイク
ルがQ=2であるので、これは問題を示す。同期論理回
路は、問題が無いかのように続行し、こうして等しいサ
イクル計数でプロセッサに割り込みを示す。しかし、各
プロセッサのQは異なっているので、割り込みは異なっ
た命令で複数のプロセッサに示される。
すことができる。図17は、N=4でプロセッサドリフ
トD=3の場合のシナリオを示す。Cd=0と仮定す
る。各プロセッサのサイクル計数0における減算は、命
令サイクル計数の商の部分(Q)を表す。サイクル計数
がいまモジューロNにて示されるので、サイクルカウン
タの値は、I/N(Iは、時間t0以来実行された命令数
である)の剰余である。命令サイクル計数のQは、I/
Nの整数部分である。もし外部割り込みが時間t3に主張
されるならば、CPU−Aは、時間t4に割り込みを捕え
分配し、CPU−Bは、時間t5に割り込み分配サイクル
を実行する。CPU−Aに対する割り込み分配サイクル
がQ=1でありCPU−Bに対する割り込み分配サイク
ルがQ=2であるので、これは問題を示す。同期論理回
路は、問題が無いかのように続行し、こうして等しいサ
イクル計数でプロセッサに割り込みを示す。しかし、各
プロセッサのQは異なっているので、割り込みは異なっ
た命令で複数のプロセッサに示される。
【0099】従って、Nの関数としてのDmaxの関係は
次式で表される。 方程式(3) N/2 > Dmax ここに、Nは偶数であり、Dmaxはサイクル計数の整数
として表せる。ここで、方程式(2)と(3)は共に標
本化理論におけるナイキストの定理に等価であることを
示すことができる。方程式(2)と(3)とを統合する
ことによって次式を得る。 方程式(4) Cv−Cd < N/2−1 ここに、Nの与えられた値に対してCvとCdの最適の値
が選択できる。
次式で表される。 方程式(3) N/2 > Dmax ここに、Nは偶数であり、Dmaxはサイクル計数の整数
として表せる。ここで、方程式(2)と(3)は共に標
本化理論におけるナイキストの定理に等価であることを
示すことができる。方程式(2)と(3)とを統合する
ことによって次式を得る。 方程式(4) Cv−Cd < N/2−1 ここに、Nの与えられた値に対してCvとCdの最適の値
が選択できる。
【0100】上述の全方程式は、Nが出来るだけ大きく
あるべきであることを示唆する。Nを小さくさせようと
する唯一の因子は、割り込みの潜在である。割り込みの
潜在は、ライン69での外部割り込みの主張とライン1
37でのマイクロプロセッサチップへの割り込みの提示
との間の時間間隔である。どのプロセッサが割り込みの
潜在を決定するために使用されるべきかは明快な選択で
ない。3個のマイクロプロセッサは、クロック源におけ
る決勝発振子におけるわずかな違いや他の因子のために
異なった速度で動作する。最も高速のプロセッサと、最
も遅いプロセッサと、その他のプロセッサがある。シス
テムの性能は最も遅いプロセッサの性能によって最終的
に決定されるので、最も遅いプロセッサに関して割り込
みの潜在を定義することは合理的である。
あるべきであることを示唆する。Nを小さくさせようと
する唯一の因子は、割り込みの潜在である。割り込みの
潜在は、ライン69での外部割り込みの主張とライン1
37でのマイクロプロセッサチップへの割り込みの提示
との間の時間間隔である。どのプロセッサが割り込みの
潜在を決定するために使用されるべきかは明快な選択で
ない。3個のマイクロプロセッサは、クロック源におけ
る決勝発振子におけるわずかな違いや他の因子のために
異なった速度で動作する。最も高速のプロセッサと、最
も遅いプロセッサと、その他のプロセッサがある。シス
テムの性能は最も遅いプロセッサの性能によって最終的
に決定されるので、最も遅いプロセッサに関して割り込
みの潜在を定義することは合理的である。
【0101】最大の割り込みの潜在は、 方程式(5) Lmax = 2N−1 であり、ここに、Lmaxは、サイクル計数で表された最
大の割り込みの潜在である。最大の割り込みの潜在は、
最速のプロセッサの割り込み分配サイクルCdの後であ
るが最も遅いプロセッサの割り込み分配サイクルCdの
前に外部割り込みが主張されたときに、最大の割り込み
の潜在が起こる。平均の割り込みの潜在の計算は、最速
のプロセッサの割り込み分配サイクルの後でかつ最も遅
いプロセッサの割り込み分配サイクルの前に外部割り込
みが起こる確率に依存するので、さらに複雑である。こ
の確率は、多数の外部因子によって順番に決定されるプ
ロセッサ間のドリフトに依存する。
大の割り込みの潜在である。最大の割り込みの潜在は、
最速のプロセッサの割り込み分配サイクルCdの後であ
るが最も遅いプロセッサの割り込み分配サイクルCdの
前に外部割り込みが主張されたときに、最大の割り込み
の潜在が起こる。平均の割り込みの潜在の計算は、最速
のプロセッサの割り込み分配サイクルの後でかつ最も遅
いプロセッサの割り込み分配サイクルの前に外部割り込
みが起こる確率に依存するので、さらに複雑である。こ
の確率は、多数の外部因子によって順番に決定されるプ
ロセッサ間のドリフトに依存する。
【0102】もしこれらの確率が0であるならば、平均
の潜在は次の式で表される。 方程式(6) Lave = N/2−(Cv−Cd) これらの関係式を用いて、N,Cv、及びCdの値が、D
maxと割り込みの潜在とに対するシステムの要請を使用
して決定される。例えば、N=128、(Cv−Cd)=
10,Lave=74又は約4.4マイクロ秒(ストール
サイクルなしで)を選択する。4ビット(4つの2進ス
テージ)71aが割り込み同期カウンタとして使用さ
れ、分配出力とボート出力が説明したようにCC−4と
CC−8にある好ましい実施例を用いて、N=16,C
v=8,Cd=4であることが分かり、そうして、Lave
=16/2+(8−4)=12サイクルすなわち0.7
ミリ秒である。
の潜在は次の式で表される。 方程式(6) Lave = N/2−(Cv−Cd) これらの関係式を用いて、N,Cv、及びCdの値が、D
maxと割り込みの潜在とに対するシステムの要請を使用
して決定される。例えば、N=128、(Cv−Cd)=
10,Lave=74又は約4.4マイクロ秒(ストール
サイクルなしで)を選択する。4ビット(4つの2進ス
テージ)71aが割り込み同期カウンタとして使用さ
れ、分配出力とボート出力が説明したようにCC−4と
CC−8にある好ましい実施例を用いて、N=16,C
v=8,Cd=4であることが分かり、そうして、Lave
=16/2+(8−4)=12サイクルすなわち0.7
ミリ秒である。
【0103】〈ローカルメモリのためのリフレッシュ制
御〉リフレッシュカウンタ72は、カウンタ71と71
aがまさに計数するのと同様に、(マシンサイクルでな
く)非ストールサイクルを計数する。目的は、リアルタ
イムよりはむしろ仮想タイムで測定して、同じサイクル
計数で各CPUにリフレッシュサイクルを導入すること
である。好ましくは、各CPUは、命令ストリームにお
いて他のCPUと同じ点でリフレッシュサイクルを課す
る。ローカルメモリ16のDRAMは、グローバルなメ
モリについて上述したように8msec毎に512サイ
クルの周期でリフレッシュされねばならない。こうし
て、カウンタ72は、512の1行をアドレスして、1
5msec毎に1回DRAM16にリフレッシュコマン
ドを出力しなければならない。もしメモリ動作がリフレ
ッシュの間に要求されたならば、リフレシュが終了する
までビジー応答が生じる。しかし、各CPUにそれ自身
のローカルメモリのリフレッシュをリアルタイムで他の
CPUに独立に処理させることは、CPUを同期から外
れさせ、従って、余分な制御が必要になる。
御〉リフレッシュカウンタ72は、カウンタ71と71
aがまさに計数するのと同様に、(マシンサイクルでな
く)非ストールサイクルを計数する。目的は、リアルタ
イムよりはむしろ仮想タイムで測定して、同じサイクル
計数で各CPUにリフレッシュサイクルを導入すること
である。好ましくは、各CPUは、命令ストリームにお
いて他のCPUと同じ点でリフレッシュサイクルを課す
る。ローカルメモリ16のDRAMは、グローバルなメ
モリについて上述したように8msec毎に512サイ
クルの周期でリフレッシュされねばならない。こうし
て、カウンタ72は、512の1行をアドレスして、1
5msec毎に1回DRAM16にリフレッシュコマン
ドを出力しなければならない。もしメモリ動作がリフレ
ッシュの間に要求されたならば、リフレシュが終了する
までビジー応答が生じる。しかし、各CPUにそれ自身
のローカルメモリのリフレッシュをリアルタイムで他の
CPUに独立に処理させることは、CPUを同期から外
れさせ、従って、余分な制御が必要になる。
【0104】例えば、もし丁度除算命令が始まるように
リフレッシュモードがエンターされるならば、タイミン
グは、1個のCPUより2クロックだけ長くかかるよう
なタイミングになる。又は、もし割り込み可能でないシ
ーケンスがより高速なCPUによりエンターされ他のC
PUがこのルーチンにエンターする前にリフレッシュに
入るならば、CPUは、相互に離れていく。しかし、こ
れらの問題のいくつかを避けるためのサイクルカウンタ
71を(リアルタイムの代わりに)使用することは、ス
トールサイクルが計数されないことを意味する。そし
て、もしループに入って多くのストールを生じさせるな
らば(7対1のストール・ラン比を生じさせることが可
能ならば)、周期が15msecの数値から著しく減少
されないならば、リフレッシュの仕様に合わず、性能を
劣化させる。この理由のために、図2に示されるよう
に、ストールサイクルは第2カウンタ72でも計数さ
れ、このカウンタがリフレッシュカウンタ72で計数さ
れるのと同じ数に達する毎に、追加のリフレッシュサイ
クルが導入される。例えば、リフレッシュカウンタ72
は、カウンタ71と歩調を合わせて、28すなわち25
6ランサイクルを計数し、オーバーフローのときにリフ
レッシュ信号が制御バス43を介して出力される。一
方、カウンタ72aは、(ラン#信号とクロック17に
応答して)28ストールサイクルを計数し、オーバーフ
ローする毎に第2カウンタ72aがインクリメントされ
る(かうんた72bは単に8ビットカウンタ72aのた
めのビット9から11であってもよい)。そうして、リ
フレッシュモードが最後にエンターされ、CPUはカウ
ンタレジスタ72bの数によって示される多数の追加の
リフレシュを行う。こうして、もし長期間のストールイ
ンテンシブな実行が起こるならば、リフレッシュの平均
数は、15マイクロ秒ごとに1つの範囲ないにあり、も
し7×256までのストールサイクルが介在されるなら
ば、最後にリフレッシュモードに行くときにリフレッシ
ュされた行の数が名目上のリフレッシュ速度まで追い付
くので、リフレッシュサイクルを任意に短くすることに
より性能の劣化はない。
リフレッシュモードがエンターされるならば、タイミン
グは、1個のCPUより2クロックだけ長くかかるよう
なタイミングになる。又は、もし割り込み可能でないシ
ーケンスがより高速なCPUによりエンターされ他のC
PUがこのルーチンにエンターする前にリフレッシュに
入るならば、CPUは、相互に離れていく。しかし、こ
れらの問題のいくつかを避けるためのサイクルカウンタ
71を(リアルタイムの代わりに)使用することは、ス
トールサイクルが計数されないことを意味する。そし
て、もしループに入って多くのストールを生じさせるな
らば(7対1のストール・ラン比を生じさせることが可
能ならば)、周期が15msecの数値から著しく減少
されないならば、リフレッシュの仕様に合わず、性能を
劣化させる。この理由のために、図2に示されるよう
に、ストールサイクルは第2カウンタ72でも計数さ
れ、このカウンタがリフレッシュカウンタ72で計数さ
れるのと同じ数に達する毎に、追加のリフレッシュサイ
クルが導入される。例えば、リフレッシュカウンタ72
は、カウンタ71と歩調を合わせて、28すなわち25
6ランサイクルを計数し、オーバーフローのときにリフ
レッシュ信号が制御バス43を介して出力される。一
方、カウンタ72aは、(ラン#信号とクロック17に
応答して)28ストールサイクルを計数し、オーバーフ
ローする毎に第2カウンタ72aがインクリメントされ
る(かうんた72bは単に8ビットカウンタ72aのた
めのビット9から11であってもよい)。そうして、リ
フレッシュモードが最後にエンターされ、CPUはカウ
ンタレジスタ72bの数によって示される多数の追加の
リフレシュを行う。こうして、もし長期間のストールイ
ンテンシブな実行が起こるならば、リフレッシュの平均
数は、15マイクロ秒ごとに1つの範囲ないにあり、も
し7×256までのストールサイクルが介在されるなら
ば、最後にリフレッシュモードに行くときにリフレッシ
ュされた行の数が名目上のリフレッシュ速度まで追い付
くので、リフレッシュサイクルを任意に短くすることに
より性能の劣化はない。
【0105】〈メモリ管理〉図1から図3までのCPU
11、12、及び13は、図18に図示されるように組
織されたメモリ空間を備える。ローカルメモリ16が8
Mバイトであり、グローバルメモリ14又は15が32
Mバイトである例を用いて、ローカルメモリ16が、キ
ャシュすなわち別のメモリ空間であるよりはむしろ、C
PUメモリアクセス空間の同じ連続的な0から40Mバ
イトまでのマップの一部である。0から8Mバイトまで
の部分を(3個のCPUモジュールで)3重化し、8か
ら40Mバイト部分を2重化しているが、論理的には単
に1つの0から40Mバイトまでの物理アドレス空間が
あるだけである。バス54で8Mバイトを越えたアドレ
スは、バスインターフェース56にメモリモジュール1
4と15に要求させるが、しかし、8Mバイト以下のア
ドレスは、CPUモジュールそれ自身内でローカルメモ
リ16にアクセスする。
11、12、及び13は、図18に図示されるように組
織されたメモリ空間を備える。ローカルメモリ16が8
Mバイトであり、グローバルメモリ14又は15が32
Mバイトである例を用いて、ローカルメモリ16が、キ
ャシュすなわち別のメモリ空間であるよりはむしろ、C
PUメモリアクセス空間の同じ連続的な0から40Mバ
イトまでのマップの一部である。0から8Mバイトまで
の部分を(3個のCPUモジュールで)3重化し、8か
ら40Mバイト部分を2重化しているが、論理的には単
に1つの0から40Mバイトまでの物理アドレス空間が
あるだけである。バス54で8Mバイトを越えたアドレ
スは、バスインターフェース56にメモリモジュール1
4と15に要求させるが、しかし、8Mバイト以下のア
ドレスは、CPUモジュールそれ自身内でローカルメモ
リ16にアクセスする。
【0106】性能は、ローカルメモリ16で実行される
アプリケーションによって使用されるメモリをより多く
配置することにより改善される。そして、もしメモリチ
ップが高密度でより低コストでより高速で利用できるな
らば、追加のローカルメモリが、追加のグローバルメモ
リと同様に付加される。例えば、ローカルメモリが32
Mバイトであって、グローバルメモリが128Mバイト
であってもよい。一方、非常に低コストのシステムが必
要ならば、性能は主要な決定的なファクタではなく、シ
ステムは、ローカルメモリなしに動作でき、そのような
構成では性能の不利益が高いけれども、すべてのメイン
メモリはグローバルメモリエリア(メモリモジュール1
4と15)である。
アプリケーションによって使用されるメモリをより多く
配置することにより改善される。そして、もしメモリチ
ップが高密度でより低コストでより高速で利用できるな
らば、追加のローカルメモリが、追加のグローバルメモ
リと同様に付加される。例えば、ローカルメモリが32
Mバイトであって、グローバルメモリが128Mバイト
であってもよい。一方、非常に低コストのシステムが必
要ならば、性能は主要な決定的なファクタではなく、シ
ステムは、ローカルメモリなしに動作でき、そのような
構成では性能の不利益が高いけれども、すべてのメイン
メモリはグローバルメモリエリア(メモリモジュール1
4と15)である。
【0107】図18のマップのローカルメモリ部分14
1の内容は、3個のCPU11、12及び13における
内容と同一である。同様に、2個のメモリモジュール1
4と15は、どの与えられた瞬間でもその空間142内
の同じデータを全く同様に含む。ローカルメモリ部分1
41内にはUNIXオペレーティングシステムのための
核143(コード)が格納され、このエリアは、各CP
Uのローカルメモリ16の固定された部分内に物理的に
マッピングされる。同様に、核データは、各ローカルメ
モリ16の固定されたエリア141に割り当てられる。
ブートアップの時を除いて、これらのブロックは、グロ
ーバルメモリまたはディスクへ、又はグローバルメモリ
又はディスクから交換されない。ローカルメモリの他の
部分145は、ユーザプログラム(及びデータ)のペー
ジのために使用され、これらのページは、オペレーティ
ングシステムの制御の下にグローバルメモリ14と15
のエリア146に交換される。
1の内容は、3個のCPU11、12及び13における
内容と同一である。同様に、2個のメモリモジュール1
4と15は、どの与えられた瞬間でもその空間142内
の同じデータを全く同様に含む。ローカルメモリ部分1
41内にはUNIXオペレーティングシステムのための
核143(コード)が格納され、このエリアは、各CP
Uのローカルメモリ16の固定された部分内に物理的に
マッピングされる。同様に、核データは、各ローカルメ
モリ16の固定されたエリア141に割り当てられる。
ブートアップの時を除いて、これらのブロックは、グロ
ーバルメモリまたはディスクへ、又はグローバルメモリ
又はディスクから交換されない。ローカルメモリの他の
部分145は、ユーザプログラム(及びデータ)のペー
ジのために使用され、これらのページは、オペレーティ
ングシステムの制御の下にグローバルメモリ14と15
のエリア146に交換される。
【0108】グローバルメモリエリア142は、エリア
146におけるユーザーページのためのステージングエ
リア(staging area)として、またエリア147におけ
るディスクバッファとして使用される。もし全CPUが
1ブロックのデータのライトを行うコード又はローカル
メモリ16からディスク148へのコードを実行するな
らば、ディスクバッファエリア147にコピーをするた
めの時間はI/Oプロセッサ26と27に直接にそして
I/Oコントローラ30を介してディスク148にコピ
ーをする時間に比べて無視できるので、シーケンスは、
その代わりディスクバッファエリア147にライトを行
うことである。次に、全CPUが他のコードの実行を進
める間に、このディスクにライトをする動作が行われ
て、全CPUに対してトランスペアレントに、そのブロ
ックをエリア147からディスク148へ移動する。同
様な方法で、グローバルメモリエリア146は、ディス
ク以外のI/Oアクセス(例えばビデオ)の同様な処理
のために、I/Oステージングエリア149を含んでマ
ッピングされる。
146におけるユーザーページのためのステージングエ
リア(staging area)として、またエリア147におけ
るディスクバッファとして使用される。もし全CPUが
1ブロックのデータのライトを行うコード又はローカル
メモリ16からディスク148へのコードを実行するな
らば、ディスクバッファエリア147にコピーをするた
めの時間はI/Oプロセッサ26と27に直接にそして
I/Oコントローラ30を介してディスク148にコピ
ーをする時間に比べて無視できるので、シーケンスは、
その代わりディスクバッファエリア147にライトを行
うことである。次に、全CPUが他のコードの実行を進
める間に、このディスクにライトをする動作が行われ
て、全CPUに対してトランスペアレントに、そのブロ
ックをエリア147からディスク148へ移動する。同
様な方法で、グローバルメモリエリア146は、ディス
ク以外のI/Oアクセス(例えばビデオ)の同様な処理
のために、I/Oステージングエリア149を含んでマ
ッピングされる。
【0109】図18の物理的メモリマップは、各CPU
内のプロセッサ40の仮想メモリ管理システムと関連す
る。図19は、実施例において使用されたR2000プ
ロセッサチップの仮想アドレスマップを図示する。しか
しながら、ページングと保護メカニズムを備えた仮想メ
カニズム管理を支持する他のプロセッサチップが対応す
る特徴を備えるであろうことが理解される。
内のプロセッサ40の仮想メモリ管理システムと関連す
る。図19は、実施例において使用されたR2000プ
ロセッサチップの仮想アドレスマップを図示する。しか
しながら、ページングと保護メカニズムを備えた仮想メ
カニズム管理を支持する他のプロセッサチップが対応す
る特徴を備えるであろうことが理解される。
【0110】図19において、2つの別々の2Gバイト
の管理アドレス空間150と151が図示される。プロ
セッサ40は、2つのモード、ユーザーモードと核モー
ド、の1つで動作する。当該プロセッサはただ、ユーザ
ーモードにおいてエリア150をアクセスでき、もしく
は核モードにおいて両エリア150と151をアクセス
することができる。核モードは、多くの計算機に備えら
れている監視モードと同類である。プロセッサ40は、
例外が検出されてモードに強いるまでは、通常はユーザ
ーモードで動作するように構成され、ここで、例外から
のリストア(RFE)命令が実行されるまで核モードに
とどまる。メモリアドレスが翻訳されすなわちマッピン
グされる方法は、マイクロプロセッサのオペレーティン
グモードに依存し、これはステイタスレジスタの1ビッ
トによって定義される。ユーザーモードにあるときに、
2Gバイトの″kuseg″として参照される単独の一
様な仮想アドレス空間150を利用できる。各仮想アド
レスはまた、最大64個のユーザープロセスのための一
義的仮想アドレスを形成するために、6ビットのプロセ
スアイデンティファイア(PID)フィールドを用いて
拡張される。ユーザーモードにおけるこのセグメント1
50までのすべての参照は、TLB83を介してマッピ
ングされ、キャシュ144と145の使用は、TLBエ
ントリにおける各ページエントリのためのビットセッテ
ィングによって決定される。すなわち、あるページは、
キャシュ可能で有り得るし、あるページはプログラマに
よって特定されるのでキャシュ可能でない。
の管理アドレス空間150と151が図示される。プロ
セッサ40は、2つのモード、ユーザーモードと核モー
ド、の1つで動作する。当該プロセッサはただ、ユーザ
ーモードにおいてエリア150をアクセスでき、もしく
は核モードにおいて両エリア150と151をアクセス
することができる。核モードは、多くの計算機に備えら
れている監視モードと同類である。プロセッサ40は、
例外が検出されてモードに強いるまでは、通常はユーザ
ーモードで動作するように構成され、ここで、例外から
のリストア(RFE)命令が実行されるまで核モードに
とどまる。メモリアドレスが翻訳されすなわちマッピン
グされる方法は、マイクロプロセッサのオペレーティン
グモードに依存し、これはステイタスレジスタの1ビッ
トによって定義される。ユーザーモードにあるときに、
2Gバイトの″kuseg″として参照される単独の一
様な仮想アドレス空間150を利用できる。各仮想アド
レスはまた、最大64個のユーザープロセスのための一
義的仮想アドレスを形成するために、6ビットのプロセ
スアイデンティファイア(PID)フィールドを用いて
拡張される。ユーザーモードにおけるこのセグメント1
50までのすべての参照は、TLB83を介してマッピ
ングされ、キャシュ144と145の使用は、TLBエ
ントリにおける各ページエントリのためのビットセッテ
ィングによって決定される。すなわち、あるページは、
キャシュ可能で有り得るし、あるページはプログラマに
よって特定されるのでキャシュ可能でない。
【0111】核モードにあるとき、仮想メモリ空間は、
図19の両エリア150と151を含む。この空間は、
4つの別々のセグメントkusegエリア150、ks
eg0エリア152、kseg1エリア153及びks
eg2エリア154を有する。核モードのためのkus
egエリア150のセグメントは、ユーザーモードの
“kuseg”エリアに対応して2Gバイトのサイズを
有する。従って、核モードにおいて、プロセッサはまさ
にユーザーモードの参照におけるようにこのセグメント
に対して参照を行って、ユーザーデータへの核アクセス
を能率化する。kusegエリア150は、ユーザーコ
ードとユーザーデータを保持するために使用される。し
かし、オペレーティングシステムは、しばしばこの同じ
コード又はデータを参照することを必要とする。上記k
seg0エリア152は、物理的アドレス空間の初めの
512Mバイトに直接にマッピングされる512Mバイ
トの核物理的アドレス空間であり、キャシュされるが、
TLB83を使用しない。このセグメントは、核実行可
能コードとある核データのために使用され、ローカルメ
モリ16内に図18のエリア143によって表される。
上記kseg1エリア153は、kseg0エリアと同
様に、物理的アドレス空間の初めの512Mバイトに直
接にマッピングされ、キャシュされず、TLBエントリ
を用いない。kseg1エリアは、キャシュされないこ
とだけがkseg0エリアと異なる。kseg1エリア
は、I/Oレジスタ、ROMコード及びディスクバッフ
ァのためのオペレーティングシステムによって使用さ
れ、図18の物理的マップのエリア147と149に対
応する。kseg2エリア154は、1Gバイトの空間
であり、kusegエリアのように、キャシュを用い又
は用いずに、任意の物理的アドレスに仮想アドレスをマ
ッピングするためのTLB83エントリを使用する。こ
のkseg2エリアは、ユーザーモードにおいてアクセ
スできず、核モードにおいてのみアクセスできるという
ことだけが、kusegエリア150と異なる。オペレ
ーティングシステムは、ユーザーページテーブル(メモ
リマップ)のためと動的に割り当てられるデータエリア
のために、コンテキストスイッチに再びマッピングしな
ければならないスタックとパープロセスデータ(per-pr
ocess data)のためにkseg2エリアを使用する。k
seg2エリアは、全てか無かのアプローチを必要とす
るよりはむしろ、パーページベーシス(per page basi
s)への選択的キャシングとマッピングを可能にする。
図19の両エリア150と151を含む。この空間は、
4つの別々のセグメントkusegエリア150、ks
eg0エリア152、kseg1エリア153及びks
eg2エリア154を有する。核モードのためのkus
egエリア150のセグメントは、ユーザーモードの
“kuseg”エリアに対応して2Gバイトのサイズを
有する。従って、核モードにおいて、プロセッサはまさ
にユーザーモードの参照におけるようにこのセグメント
に対して参照を行って、ユーザーデータへの核アクセス
を能率化する。kusegエリア150は、ユーザーコ
ードとユーザーデータを保持するために使用される。し
かし、オペレーティングシステムは、しばしばこの同じ
コード又はデータを参照することを必要とする。上記k
seg0エリア152は、物理的アドレス空間の初めの
512Mバイトに直接にマッピングされる512Mバイ
トの核物理的アドレス空間であり、キャシュされるが、
TLB83を使用しない。このセグメントは、核実行可
能コードとある核データのために使用され、ローカルメ
モリ16内に図18のエリア143によって表される。
上記kseg1エリア153は、kseg0エリアと同
様に、物理的アドレス空間の初めの512Mバイトに直
接にマッピングされ、キャシュされず、TLBエントリ
を用いない。kseg1エリアは、キャシュされないこ
とだけがkseg0エリアと異なる。kseg1エリア
は、I/Oレジスタ、ROMコード及びディスクバッフ
ァのためのオペレーティングシステムによって使用さ
れ、図18の物理的マップのエリア147と149に対
応する。kseg2エリア154は、1Gバイトの空間
であり、kusegエリアのように、キャシュを用い又
は用いずに、任意の物理的アドレスに仮想アドレスをマ
ッピングするためのTLB83エントリを使用する。こ
のkseg2エリアは、ユーザーモードにおいてアクセ
スできず、核モードにおいてのみアクセスできるという
ことだけが、kusegエリア150と異なる。オペレ
ーティングシステムは、ユーザーページテーブル(メモ
リマップ)のためと動的に割り当てられるデータエリア
のために、コンテキストスイッチに再びマッピングしな
ければならないスタックとパープロセスデータ(per-pr
ocess data)のためにkseg2エリアを使用する。k
seg2エリアは、全てか無かのアプローチを必要とす
るよりはむしろ、パーページベーシス(per page basi
s)への選択的キャシングとマッピングを可能にする。
【0112】マイクロプロセッサチップのレジスタ76
又はPC80とバス84での出力に発生される32ビッ
トの仮想アドレスは、図20に示される。ここで分かる
ように、ビット0−11は、図3のバス42でのアドレ
スの下位12ビットとして無条件に使用されるオフセッ
トであり、ビット12−31は、ビット29−31がk
usegエリア、kseg0エリア、kseg1エリア
及びkseg2エリアの間で選択する仮想ページ数(V
PN)である。現在実行中のプロセスのためのプロセス
アイデンティファイア(PID)は、TLBによっても
アクセス可能なレジスタ内に格納される。64ビットの
TLBエントリは、同様に図20に表され、ここで分か
るように、仮想アドレスからの29ビットVPNは、6
4ビットエントリのビット44−63に位置される20
ビットVPNフィールドと比較され、一方、同時に、P
IDはビット38−43と比較される。もし対の一方が
64の64ビットTLBエントリのいずれかに見いださ
れるならば、対となったエントリのビット12−31で
のページフレーム数PFNは、(他の基準が適合するこ
とを仮定して)図3のバス82と42を介した出力とし
て使用される。TLBエントリにおける他の1ビットの
値は、N,D,V及びGを含む。ここで、Nはキャッシ
ュできない指標であり、もしセットされれば、ページは
キャッシュできず、プロセッサは、キャッシュ44又は
45をまずアクセスする代わりにローカルメモリ又はグ
ローバルメモリをアクセスする。Dは、ライトプロテク
トビットであり、もしセットされれば、ロケーションが
「よごれ」ていて、従って、ライト可能であるが、もし
0ならば、ライト動作はトラップを起こすことを意味
し、単に正当なビットを再セットするだけでTLBエン
トリをクリアできることを意味する。このVビットは、
このシステムのページのスワッピング配置において、ペ
ージがレーカルメモリにあるかグローバルメモリにある
かを示すために使用される。Gビットは、正当なTLB
翻訳のためのPIDマッチの要請を無視するグローバル
アクセスを許可するためにある。
又はPC80とバス84での出力に発生される32ビッ
トの仮想アドレスは、図20に示される。ここで分かる
ように、ビット0−11は、図3のバス42でのアドレ
スの下位12ビットとして無条件に使用されるオフセッ
トであり、ビット12−31は、ビット29−31がk
usegエリア、kseg0エリア、kseg1エリア
及びkseg2エリアの間で選択する仮想ページ数(V
PN)である。現在実行中のプロセスのためのプロセス
アイデンティファイア(PID)は、TLBによっても
アクセス可能なレジスタ内に格納される。64ビットの
TLBエントリは、同様に図20に表され、ここで分か
るように、仮想アドレスからの29ビットVPNは、6
4ビットエントリのビット44−63に位置される20
ビットVPNフィールドと比較され、一方、同時に、P
IDはビット38−43と比較される。もし対の一方が
64の64ビットTLBエントリのいずれかに見いださ
れるならば、対となったエントリのビット12−31で
のページフレーム数PFNは、(他の基準が適合するこ
とを仮定して)図3のバス82と42を介した出力とし
て使用される。TLBエントリにおける他の1ビットの
値は、N,D,V及びGを含む。ここで、Nはキャッシ
ュできない指標であり、もしセットされれば、ページは
キャッシュできず、プロセッサは、キャッシュ44又は
45をまずアクセスする代わりにローカルメモリ又はグ
ローバルメモリをアクセスする。Dは、ライトプロテク
トビットであり、もしセットされれば、ロケーションが
「よごれ」ていて、従って、ライト可能であるが、もし
0ならば、ライト動作はトラップを起こすことを意味
し、単に正当なビットを再セットするだけでTLBエン
トリをクリアできることを意味する。このVビットは、
このシステムのページのスワッピング配置において、ペ
ージがレーカルメモリにあるかグローバルメモリにある
かを示すために使用される。Gビットは、正当なTLB
翻訳のためのPIDマッチの要請を無視するグローバル
アクセスを許可するためにある。
【0113】装置コントローラ30は、ローカルメモリ
に対してDMAを直接に行うことができない。従って、
グローバルメモリは、DMAタイプのブロック転送(典
型的にはディスク148などから)のためのステージン
グエリアとして使用される。CPUは、コントローラ
(すなわちプログラムされたI/Oによって動作を開始
しまた制御するために、コントローラ30において直接
に動作を実行することができる。しかしながら、コント
ローラ30は、グローバルメモリに対するDMAを除い
て、DMAを行うことができない。コントローラ30
は、VME(バス28)マスタになることができ、I/
Oプロセッサ26又は27を介してメモリモジュール1
4と15内のグローバルメモリに直接にリード動作とラ
イト動作を行う。
に対してDMAを直接に行うことができない。従って、
グローバルメモリは、DMAタイプのブロック転送(典
型的にはディスク148などから)のためのステージン
グエリアとして使用される。CPUは、コントローラ
(すなわちプログラムされたI/Oによって動作を開始
しまた制御するために、コントローラ30において直接
に動作を実行することができる。しかしながら、コント
ローラ30は、グローバルメモリに対するDMAを除い
て、DMAを行うことができない。コントローラ30
は、VME(バス28)マスタになることができ、I/
Oプロセッサ26又は27を介してメモリモジュール1
4と15内のグローバルメモリに直接にリード動作とラ
イト動作を行う。
【0114】グローバルメモリとローカルメモリ(及び
ディスク)との間のページのスワッピングは、ページフ
ォールトとエージングプロセスとの一方によって開始さ
れる。プロセスが実行中でありグローバルメモリ又はデ
ィスクにあるページから実行すること又はそのページか
らアクセスをすることを試みるときに、ページフォール
トが生じる。すなわち。TLB83は、ミスを示し、ト
ラップが生じるであろう。従って、核のローレベルトラ
ップコードがページのロケーションを示し、ページのス
ワッピングを開始するためのルーチンがエンターされ
る。もし必要とされるページがグローバルメモリ内にあ
るならば、一連のコマンドがDMAコントローラに送ら
れて、最も少なく最近使用されたページをローカルメモ
リからグローバルメモリに書き込み、その必要とされた
ページをグローバルメモリからローカルメモリに読み出
す。
ディスク)との間のページのスワッピングは、ページフ
ォールトとエージングプロセスとの一方によって開始さ
れる。プロセスが実行中でありグローバルメモリ又はデ
ィスクにあるページから実行すること又はそのページか
らアクセスをすることを試みるときに、ページフォール
トが生じる。すなわち。TLB83は、ミスを示し、ト
ラップが生じるであろう。従って、核のローレベルトラ
ップコードがページのロケーションを示し、ページのス
ワッピングを開始するためのルーチンがエンターされ
る。もし必要とされるページがグローバルメモリ内にあ
るならば、一連のコマンドがDMAコントローラに送ら
れて、最も少なく最近使用されたページをローカルメモ
リからグローバルメモリに書き込み、その必要とされた
ページをグローバルメモリからローカルメモリに読み出
す。
【0115】もしそのぺージがディスクにあるならば、
コマンドとアドレス(セクタ)が、ディスクに行ってそ
のページを得るためにCPUからコントローラ30に書
き込まれる。そして、メモリ参照をするプロセスが一時
停止される。ディスクコントローラがデータを見付けそ
れを送信する用意ができたとき、メモリモジュールによ
って(CPUに到達せずに)使用される割り込み信号が
出力されて、グローバルメモリにそのページを書き込む
ためにグローバルメモリへのDMAをディスクコントロ
ーラが始めることを許可する。終了したときは、CPU
は割り込みされて、DMAコントローラの制御の下にブ
ロック転送を開始して、最も少なく使用されたページを
ローカルメモリからグローバルメモリへスワッピング
し、必要なページをローカルメモリへ読み込む。次に、
元のプロセスが再び実行(ラン)可能にされ、その状態
は元に戻され、元のメモリ参照が再び生じ、ローカルメ
モリ内にその必要なページを見付ける。
コマンドとアドレス(セクタ)が、ディスクに行ってそ
のページを得るためにCPUからコントローラ30に書
き込まれる。そして、メモリ参照をするプロセスが一時
停止される。ディスクコントローラがデータを見付けそ
れを送信する用意ができたとき、メモリモジュールによ
って(CPUに到達せずに)使用される割り込み信号が
出力されて、グローバルメモリにそのページを書き込む
ためにグローバルメモリへのDMAをディスクコントロ
ーラが始めることを許可する。終了したときは、CPU
は割り込みされて、DMAコントローラの制御の下にブ
ロック転送を開始して、最も少なく使用されたページを
ローカルメモリからグローバルメモリへスワッピング
し、必要なページをローカルメモリへ読み込む。次に、
元のプロセスが再び実行(ラン)可能にされ、その状態
は元に戻され、元のメモリ参照が再び生じ、ローカルメ
モリ内にその必要なページを見付ける。
【0116】ページのスワッピングを開始するもう1つ
のメカニズムは、エージングルーチンであり、これによ
り、オペレーティングシステムは、各ページが最近使用
されたか否かについて又グローバルメモリへの押し出し
を被っていないページについてマークしながら周期的に
ローカルメモリ内のページを通過していく。タスクスイ
ッチはそれ自身ページのスワッピングを開始しないが、
その代わり、新しいページがページフォールトをつくり
始めたとき、ページは必要なだけスワッピングされ、ス
ワッピングのための候補は、最近は使用されていないも
のである。
のメカニズムは、エージングルーチンであり、これによ
り、オペレーティングシステムは、各ページが最近使用
されたか否かについて又グローバルメモリへの押し出し
を被っていないページについてマークしながら周期的に
ローカルメモリ内のページを通過していく。タスクスイ
ッチはそれ自身ページのスワッピングを開始しないが、
その代わり、新しいページがページフォールトをつくり
始めたとき、ページは必要なだけスワッピングされ、ス
ワッピングのための候補は、最近は使用されていないも
のである。
【0117】もしメモリ参照がなされTLBミスが示さ
れるが、しかしTLBミス例外から生じるページテーブ
ルルックアップがそのページがローカルメモリ内にある
ことを示すならば、このページがローカルメモリ内にあ
ることを示すためにTLBエントリがなされる。すなわ
ち、プロセスは、TLBミスが起こったときに例外をと
り、(核データ区分内の)ページテーブルに行き、テー
ブルエントリを見付け、TLBに対して書き込み、次に
進むことが許される。しかし、もしメモリ参照がTLB
ミスを示し、ページテーブが、対応する物理アドレスが
(8Mバイトの物理アドレスを越えて)グローバルメモ
リ内にあることを示すならば、TLBエントリがこのペ
ージのために実行され、そして、プロセスが再び続くと
き、プロセスは、前と同様にTLB内にページエントリ
を見いだす。さらに1つの例外は、正当なビットが0で
あって、そのページが論理的にローカルメモリ内にない
ことを示すために採られる。そして、このときは、例外
は、グローバルメモリからローカルメモリにページをス
ワッピングするルーチンをロードし、そして実行が進む
ことができる。第3の状況では、もしページが、メモリ
参照のためのアドレスがローカルメモリやグローバルメ
モリ内に無くディスクにあることを示すならば、システ
ムは、上に示されたように動作し、すなわち、プロセス
はランキュー(run queue)を去り、スリープキュ(sle
ep queue)に入り、ディスク要求がなされ、ディスクが
そのページをグローバルメモリに転送しコマンド完了割
り込み信号を出力したとき、ページがグローバルメモリ
からローカルメモリへスワッピングされ、TLBは更新
され、次にプロセスは再び実行できる。
れるが、しかしTLBミス例外から生じるページテーブ
ルルックアップがそのページがローカルメモリ内にある
ことを示すならば、このページがローカルメモリ内にあ
ることを示すためにTLBエントリがなされる。すなわ
ち、プロセスは、TLBミスが起こったときに例外をと
り、(核データ区分内の)ページテーブルに行き、テー
ブルエントリを見付け、TLBに対して書き込み、次に
進むことが許される。しかし、もしメモリ参照がTLB
ミスを示し、ページテーブが、対応する物理アドレスが
(8Mバイトの物理アドレスを越えて)グローバルメモ
リ内にあることを示すならば、TLBエントリがこのペ
ージのために実行され、そして、プロセスが再び続くと
き、プロセスは、前と同様にTLB内にページエントリ
を見いだす。さらに1つの例外は、正当なビットが0で
あって、そのページが論理的にローカルメモリ内にない
ことを示すために採られる。そして、このときは、例外
は、グローバルメモリからローカルメモリにページをス
ワッピングするルーチンをロードし、そして実行が進む
ことができる。第3の状況では、もしページが、メモリ
参照のためのアドレスがローカルメモリやグローバルメ
モリ内に無くディスクにあることを示すならば、システ
ムは、上に示されたように動作し、すなわち、プロセス
はランキュー(run queue)を去り、スリープキュ(sle
ep queue)に入り、ディスク要求がなされ、ディスクが
そのページをグローバルメモリに転送しコマンド完了割
り込み信号を出力したとき、ページがグローバルメモリ
からローカルメモリへスワッピングされ、TLBは更新
され、次にプロセスは再び実行できる。
【0118】〈プライベートメモリ〉メモリモジュール
14と15は同じ位置に同じデータを格納でき、全3個
のCPU11、12及び13はこれらのメモリモジュー
ルに対して等しいアクセスを行うが、各メモリモジュー
ルにはプライベートメモリとしてソフトウェア制御のも
とで割り当てられた小さなエリアがある。例えば、図2
1に図示されるように、メモリモジュール位置のマップ
のエリア155は、プライベートメモリエリアとして呼
ばれ、全CPUが「プライベートメモリライト」コマン
ドをバス59に出力したときにのみライト可能である。
実施例では、プライベートメモリエリア155は、各C
PUモジュールのバスインターフェース56のレジスタ
156に含まれるアドレスで出発する4Kのページであ
る。この出発アドレスは、CPUによってこのレジスタ
156に書き込むことによってソフトウエア制御のもと
で変更できる。
14と15は同じ位置に同じデータを格納でき、全3個
のCPU11、12及び13はこれらのメモリモジュー
ルに対して等しいアクセスを行うが、各メモリモジュー
ルにはプライベートメモリとしてソフトウェア制御のも
とで割り当てられた小さなエリアがある。例えば、図2
1に図示されるように、メモリモジュール位置のマップ
のエリア155は、プライベートメモリエリアとして呼
ばれ、全CPUが「プライベートメモリライト」コマン
ドをバス59に出力したときにのみライト可能である。
実施例では、プライベートメモリエリア155は、各C
PUモジュールのバスインターフェース56のレジスタ
156に含まれるアドレスで出発する4Kのページであ
る。この出発アドレスは、CPUによってこのレジスタ
156に書き込むことによってソフトウエア制御のもと
で変更できる。
【0119】プライベートメモリエリア155は、さら
に3個のCPUの間で分割される。CPU−Aだけがエ
リア155aに書き込むことができ、CPU−Bだけが
155bに書き込むことができ、CPU−Cだけがエリ
ア155cに書き込むことができる。バス57の1つの
コマンド信号は、動作がプライベートライトであること
をメモリモジュール14と15に知らせるために、バス
インターフェース56によってセットされる。そして、
これは、ストア命令からプロセッサ40によって発生さ
れたアドレスに対応してセットされる。アドレスのビッ
ト(およびライトコマンド)は、(バスアドレスをレジ
スタ156の内容に比較する)バスインターフェース内
のデコーダ157によって検出され、バス57に対する
「プライベートメモリライト」コマンドを発生するため
に使用される。メモリモジュールでは、ライトコマンド
がレジスタ94、95及び96で検出され、アドレスと
コマンドが全てボート回路100によって良好(すなわ
ち一致している)とボートされたとき、制御回路100
は、ただ1個のCPUからのデータをバス101へと通
すことを許可し、これは、全CPUからのアドレスの2
ビットによって決定される。このプライベートライトの
間に、全3個のCPUは、バス57に同じアドレスを示
すが、バス58に異なったデータを示す(この異なった
データは、例えばCPUへのステートキューである)。
に3個のCPUの間で分割される。CPU−Aだけがエ
リア155aに書き込むことができ、CPU−Bだけが
155bに書き込むことができ、CPU−Cだけがエリ
ア155cに書き込むことができる。バス57の1つの
コマンド信号は、動作がプライベートライトであること
をメモリモジュール14と15に知らせるために、バス
インターフェース56によってセットされる。そして、
これは、ストア命令からプロセッサ40によって発生さ
れたアドレスに対応してセットされる。アドレスのビッ
ト(およびライトコマンド)は、(バスアドレスをレジ
スタ156の内容に比較する)バスインターフェース内
のデコーダ157によって検出され、バス57に対する
「プライベートメモリライト」コマンドを発生するため
に使用される。メモリモジュールでは、ライトコマンド
がレジスタ94、95及び96で検出され、アドレスと
コマンドが全てボート回路100によって良好(すなわ
ち一致している)とボートされたとき、制御回路100
は、ただ1個のCPUからのデータをバス101へと通
すことを許可し、これは、全CPUからのアドレスの2
ビットによって決定される。このプライベートライトの
間に、全3個のCPUは、バス57に同じアドレスを示
すが、バス58に異なったデータを示す(この異なった
データは、例えばCPUへのステートキューである)。
【0120】メモリモジュールは、アドレスとコマンド
をボートし、アドレスバスに見られたアドレスフィール
ドの部分によって基づいてただ1個のCPUからデータ
を選択する。CPUがデータをボートすることを可能に
するため、全3個のCPUは、両メモリモジュール14
と15内へ、CPUに一義的なステート情報の3個のプ
ライベートライト動作(バス21、22、23に3個の
ライト動作がある)を行う。各ライト動作の間に、各C
PUは、一義的データを送信するが、ただ1個だけが各
時間にアクセプトされる。それで、全3個のCPUによ
って実行されるソフトウエアシーケンスは、(1)ロケ
ーション155aにストア、(2)ロケーション155
bにストア、(3)ロケーション155cにストアであ
る。しかしながら、ただ1個のCPUからのデータが実
際には各時間に書き込まれ、そのデータはボートされな
い。なぜならば、異なっており又は異なる可能性があ
り、そしてボートされるならばフォールトを示す可能性
があるからである。次に、全CPUは、全3個のロケー
ション155a,155b,155cを読んで、ソフト
ウエアによりこのデータを比較することによってデータ
ボートすることができる。このタイプの動作は、例えば
診断に又は原因レジスタ(cause register)データをボ
ートするための割り込みにおいて使用される。
をボートし、アドレスバスに見られたアドレスフィール
ドの部分によって基づいてただ1個のCPUからデータ
を選択する。CPUがデータをボートすることを可能に
するため、全3個のCPUは、両メモリモジュール14
と15内へ、CPUに一義的なステート情報の3個のプ
ライベートライト動作(バス21、22、23に3個の
ライト動作がある)を行う。各ライト動作の間に、各C
PUは、一義的データを送信するが、ただ1個だけが各
時間にアクセプトされる。それで、全3個のCPUによ
って実行されるソフトウエアシーケンスは、(1)ロケ
ーション155aにストア、(2)ロケーション155
bにストア、(3)ロケーション155cにストアであ
る。しかしながら、ただ1個のCPUからのデータが実
際には各時間に書き込まれ、そのデータはボートされな
い。なぜならば、異なっており又は異なる可能性があ
り、そしてボートされるならばフォールトを示す可能性
があるからである。次に、全CPUは、全3個のロケー
ション155a,155b,155cを読んで、ソフト
ウエアによりこのデータを比較することによってデータ
ボートすることができる。このタイプの動作は、例えば
診断に又は原因レジスタ(cause register)データをボ
ートするための割り込みにおいて使用される。
【0121】プライベートライトのメカニズムは、フォ
ールト検出と回復において使用される。例えば、もし全
CPUがメモリリード要求をするときにバスエラー(メ
モリモジュール14又は15がバッドステイタス(bad s
tatus)をライン33−1または33−2に戻すような
とき)を検出するような場合である。この点で、CPU
は、他のCPUがメモリモジュールから同じステイタス
を受け取っているか否かを知らない。CPUが故障で有
り得るし、そのステイタス検出回路が故障で有り得る
し、あるいは、示されたように、メモリが故障で有り得
る。それで、故障を分離するために、上述のバスフォー
ルトルーチンがエンターされたときに、全3個のCPU
は、前のリードの試みでメモリモジュールからまさに受
信したステイタス情報のプライベートライト動作を行
う。次に、全3個のCPUは、他のCPUが書き込んだ
ものを読み出し、自分自身のメモリステイタス情報と比
較する。もしそれらが一致するならば、メモリモジュー
ルは、オフラインでボートされる。もし一致せず、1個
のCPUがメモリモジュールに対して悪いステイタスを
示し他のCPUが良好なステイタスを示すならば、CP
Uはオフラインでボートされる。
ールト検出と回復において使用される。例えば、もし全
CPUがメモリリード要求をするときにバスエラー(メ
モリモジュール14又は15がバッドステイタス(bad s
tatus)をライン33−1または33−2に戻すような
とき)を検出するような場合である。この点で、CPU
は、他のCPUがメモリモジュールから同じステイタス
を受け取っているか否かを知らない。CPUが故障で有
り得るし、そのステイタス検出回路が故障で有り得る
し、あるいは、示されたように、メモリが故障で有り得
る。それで、故障を分離するために、上述のバスフォー
ルトルーチンがエンターされたときに、全3個のCPU
は、前のリードの試みでメモリモジュールからまさに受
信したステイタス情報のプライベートライト動作を行
う。次に、全3個のCPUは、他のCPUが書き込んだ
ものを読み出し、自分自身のメモリステイタス情報と比
較する。もしそれらが一致するならば、メモリモジュー
ルは、オフラインでボートされる。もし一致せず、1個
のCPUがメモリモジュールに対して悪いステイタスを
示し他のCPUが良好なステイタスを示すならば、CP
Uはオフラインでボートされる。
【0122】〈フォールトトレラント電源〉図22を参
照して、好ましい実施例のシステムは、上述のCPUモ
ジュール、メモリモジュール、I/Oプロセッサモジュ
ール、I/Oコントローラ、及びディスクモジュールの
オンラインでの交換と同様に、故障した電源モジュール
をオンラインで交換できるフォールトトレラントな電源
を使用できる。図22の回路で、交流電力ライン160
は、電力分配ユニット161に直接に接続され、このユ
ニット161は、電力ラインのろ波器、過渡電流の抑圧
器、及び短絡に対して保護するためのサーキットブレー
カを提供する。交流電力ラインの故障に対して保護する
ために、冗長性のバッテリパック162と163が、順
序正しいシステクシャットダウンを完了しうるような4
−1/2分の全システム電力を与える。2個のバッテリ
パックの1個の162又は163だけが、システムを安
全にシャットダウンするために動作するのに必要であ
る。
照して、好ましい実施例のシステムは、上述のCPUモ
ジュール、メモリモジュール、I/Oプロセッサモジュ
ール、I/Oコントローラ、及びディスクモジュールの
オンラインでの交換と同様に、故障した電源モジュール
をオンラインで交換できるフォールトトレラントな電源
を使用できる。図22の回路で、交流電力ライン160
は、電力分配ユニット161に直接に接続され、このユ
ニット161は、電力ラインのろ波器、過渡電流の抑圧
器、及び短絡に対して保護するためのサーキットブレー
カを提供する。交流電力ラインの故障に対して保護する
ために、冗長性のバッテリパック162と163が、順
序正しいシステクシャットダウンを完了しうるような4
−1/2分の全システム電力を与える。2個のバッテリ
パックの1個の162又は163だけが、システムを安
全にシャットダウンするために動作するのに必要であ
る。
【0123】電力サブシステムは、2つの同一の交流か
ら直流へのバルク電源164と165を備え、これらの
電源は、高電力ファクタを備え、1対の36ボルト直流
分配バス166と167にエネルギーを供給する。この
システムは、動作中である1個のバルク電源164又は
165を用いて、動作し続けることが可能である。
ら直流へのバルク電源164と165を備え、これらの
電源は、高電力ファクタを備え、1対の36ボルト直流
分配バス166と167にエネルギーを供給する。この
システムは、動作中である1個のバルク電源164又は
165を用いて、動作し続けることが可能である。
【0124】4つの別々の電力分配バスがこれらのバス
164と167に含まれる。バルク電源164は、電力
バス166−1と167−1を駆動し、バルク電源16
5は、電力バス166−2と167−2を駆動する。バ
ッテリパック163は、バス166−3、167−3を
駆動し、バス166−1と167−2から再チャージさ
れる。3個のCPU11、12、13は、これらの4個
の分配バスの異なった組み合わせから駆動される。
164と167に含まれる。バルク電源164は、電力
バス166−1と167−1を駆動し、バルク電源16
5は、電力バス166−2と167−2を駆動する。バ
ッテリパック163は、バス166−3、167−3を
駆動し、バス166−1と167−2から再チャージさ
れる。3個のCPU11、12、13は、これらの4個
の分配バスの異なった組み合わせから駆動される。
【0125】これらの36Vバス166と167に結合
された多数のDC−DCコンバータ168が、CPUモ
ジュール11、12及び13、メモリモジュール26と
27、及びI/Oコントローラ30を個々に電力を供給
するために使用される。バルク電源16と165は、ま
た、3個のシステムファン169と、バッテリパック1
62と163のためのバッテリチャージァに電力を供給
する。各システム部品に対するこれらの別々のDC−D
Cコンバータを備えることにより、1個のコンバータの
故障はシステムシャットダウンを生じず、その代わり、
システムは、上述した故障回復モードの1つで動作を続
け、故障した電源部品をシステム動作中に交換できる。
された多数のDC−DCコンバータ168が、CPUモ
ジュール11、12及び13、メモリモジュール26と
27、及びI/Oコントローラ30を個々に電力を供給
するために使用される。バルク電源16と165は、ま
た、3個のシステムファン169と、バッテリパック1
62と163のためのバッテリチャージァに電力を供給
する。各システム部品に対するこれらの別々のDC−D
Cコンバータを備えることにより、1個のコンバータの
故障はシステムシャットダウンを生じず、その代わり、
システムは、上述した故障回復モードの1つで動作を続
け、故障した電源部品をシステム動作中に交換できる。
【0126】この電源システムを、スタンドバイとオフ
の機能を備えた手動スイッチか、もしくは保守・診断電
源の故障の場合に電源オン状態を自動的にオフ状態とす
る保守・診断プエセッサ170からのソウトウエア制御
のもとでいずれかで、シャットダウンできる。
の機能を備えた手動スイッチか、もしくは保守・診断電
源の故障の場合に電源オン状態を自動的にオフ状態とす
る保守・診断プエセッサ170からのソウトウエア制御
のもとでいずれかで、シャットダウンできる。
【0127】本発明は、特別な実施例を参照して説明さ
れたが、この説明は、制限的な意味でなされたのではな
い。開示された実施例の様々な変形が、本発明の他の実
施例と同様に、この説明を参照して当業者に明らかであ
る。従って、添付した特許請求の範囲は、本発明の範囲
内で実施例の任意のそのような変更を含む。
れたが、この説明は、制限的な意味でなされたのではな
い。開示された実施例の様々な変形が、本発明の他の実
施例と同様に、この説明を参照して当業者に明らかであ
る。従って、添付した特許請求の範囲は、本発明の範囲
内で実施例の任意のそのような変更を含む。
【0128】
【発明の効果】以上の通り、本発明によれば、個々のC
PU毎のプライベートメモリ若しくはプライベートライ
トメモリの領域が共通メモリ若しくは共有メモリの領域
内に含まれており、個々のCPUによって独特の状態情
報をそれぞれに書き込むことができる一方で、他のCP
Uによってこれを読み出し、必要な利用を行なうことが
できるようになっているので、共通メモリにおける各C
PU毎のプライベートメモリ領域の状態情報の他のCP
Uによる参照によって、各CPU毎に他のCPUと自己
との状態のチェックを簡便に行なうことができるという
優れた効果を奏する。例えばフォールト検出と回復のた
めに有効に利用する等によって、柔軟性の高いフォール
トトレラントタイプの改良された高信頼性コンピュータ
システムを提供することができる。
PU毎のプライベートメモリ若しくはプライベートライ
トメモリの領域が共通メモリ若しくは共有メモリの領域
内に含まれており、個々のCPUによって独特の状態情
報をそれぞれに書き込むことができる一方で、他のCP
Uによってこれを読み出し、必要な利用を行なうことが
できるようになっているので、共通メモリにおける各C
PU毎のプライベートメモリ領域の状態情報の他のCP
Uによる参照によって、各CPU毎に他のCPUと自己
との状態のチェックを簡便に行なうことができるという
優れた効果を奏する。例えばフォールト検出と回復のた
めに有効に利用する等によって、柔軟性の高いフォール
トトレラントタイプの改良された高信頼性コンピュータ
システムを提供することができる。
【図1】本発明の一実施例によるコンピュータシステム
の電気回路のブロック図。
の電気回路のブロック図。
【図2】図1のCPUの電気回路のブロック図。
【図3】図2のCPUに使用されるマイクロプロセッサ
チップのブロック図。
チップのブロック図。
【図4】図2と図3のCPUにおいて生じるイベントを
時間の関数として示すタイミング図。
時間の関数として示すタイミング図。
【図5】図2と図3のCPUにおいて生じるイベントを
時間の関数として示す別のタイミング図。
時間の関数として示す別のタイミング図。
【図6】図1のコンピュータシステムにおける1個のメ
モリモジュールの電気回路のブロック図。
モリモジュールの電気回路のブロック図。
【図7】図1のシステムにおけるメモリバスに対してC
PUに生じるイベントを示すタイミング図。
PUに生じるイベントを示すタイミング図。
【図8】図1のコンピュータシステムでの1個のI/O
プロセッサの電気回路のブロック図。
プロセッサの電気回路のブロック図。
【図9】図1のシステムでのメモリモジュールとI/O
プロセッサの間の転送プロトコルのためのイベントを示
すタイミング図。
プロセッサの間の転送プロトコルのためのイベントを示
すタイミング図。
【図10】図1から図3までのCPUにおける命令の実
行のためのイベントを示すタイミング図。
行のためのイベントを示すタイミング図。
【図11】図1から図3までのCPUにおける命令の実
行のためのイベントを示す図10と同様な別のタイミン
グ図。
行のためのイベントを示す図10と同様な別のタイミン
グ図。
【図12】図1から図3までのCPUにおける命令の実
行のためのイベントを示す図10と同様は別のタイミン
グ図。
行のためのイベントを示す図10と同様は別のタイミン
グ図。
【図13】図2のCPUにおいて用いられる割り込み同
期回路の電気回路のブロック図。
期回路の電気回路のブロック図。
【図14】図1から図3までのCPUでの命令の実行の
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
【図15】図1から図3までのCPUでの命令の実行の
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
【図16】図1から図3までのCPUでの命令の実行の
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
【図17】図1から図3までのCPUでの命令の実行の
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
ためのイベントを示す図10また図11と同様な別のタ
イミング図。
【図18】図1、図2、図3及び図6のシステムにおい
て使用されるメモリの物理メモリマップ図。
て使用されるメモリの物理メモリマップ図。
【図19】図1、図2、図3及び図6のシステムにおい
て使用されるメモリの仮想メモリマップ図。
て使用されるメモリの仮想メモリマップ図。
【図20】図2または図3によるCPUにおけるマイク
ロプロセッサチップにおける仮想アドレスとTLBエン
トリのフォーマットの図。
ロプロセッサチップにおける仮想アドレスとTLBエン
トリのフォーマットの図。
【図21】図1、図2、図3及び図6のシステムにおい
て使用されるグローバルメモリモジュールのメモリマッ
プにおける各CPUに対応するプライベートメモリ空間
の配置の説明図。
て使用されるグローバルメモリモジュールのメモリマッ
プにおける各CPUに対応するプライベートメモリ空間
の配置の説明図。
【図22】本発明の一実施例によるシステムで使用され
るフォールトトレラント電源の回路図。
るフォールトトレラント電源の回路図。
11,12,13 プロセッサ(CPU) 14,15 メモリモジュール 16 ローカルメモリ 17 クロック発振器 21,22,23 バス 24,25 入出力バス 26,27 入出力プロセッサ 28 バス 29 バスインターフェースモジュール 30 I/Oコントローラ 31 ラジアルライン 32 システムステータスバス 33 肯定応答/ステータスバス 40 マイクロプロセッサチップ 42,42,43 ローカルバス 44,45 キャッシュメモリ 46 浮動小数点コプロセッサ 50 ライトバッファ 51 リードバッファ 52 ライトバッファバイパス 53 データバス 54 アドレスバス 55 制御バス 56 バスインターフェース 57 多重アドレス/データバス 58 コマンドライン 60 メモリコントローラ 61 ローカルレジスタ 62 不揮発性メモリ 65 割り込み回路 71 サイクルカウンタ 72 リフレッシュカウンタ 73 カウンタ 74 DMA回路 76 レジスタ 77 ALU 78 シフタ 81 プロセッサバス構造 82 命令デコーダ 83 トランスレーションルックアサイドバッファ(T
LB) 84 仮想アドレスバス 87 パイプライン及びバス制御回路 91,92,93 入力/出力ポート 94,95,96 レジスタ 100 ボート回路 101 データバス 102 アドレスバス 103 コマンドバス 104 DRAM 105 メモリコントローラ 106 制御・ステータスレジスタ 107 不揮発性RAM 108 ライトプロテクト 109 バスインターフェース 110 アービトレータ回路 114 リードレジスタ 117 コントローラ 118 リフレッシュカウンタ 119 割り込みボート回路 121,122 ポート 123 双方向多重アドレス/データバス 124 双方向コマンドバス 126 ステートマシン 127,128 ラッチ 130 内部ステータス・制御レジスタ 131 バスインターフェース 132 マルチプレクサ 133 制御・データ転送レジスタ 135 割り込み分配器 136 割り込みボータ 138 保持レジスタ 141 ローカルメモリエリア 142 グローバルメモリエリア 143 核エリア 144 核データエリア 145 ユーザプログラムページエリア 146 ユーザページエリア 147 ディスクバッファエリア 149 I/Oステージングエリア 155a,155b,155c グローバルメモリ内に
設けられた各CPU毎のプライベートメモリ空間
LB) 84 仮想アドレスバス 87 パイプライン及びバス制御回路 91,92,93 入力/出力ポート 94,95,96 レジスタ 100 ボート回路 101 データバス 102 アドレスバス 103 コマンドバス 104 DRAM 105 メモリコントローラ 106 制御・ステータスレジスタ 107 不揮発性RAM 108 ライトプロテクト 109 バスインターフェース 110 アービトレータ回路 114 リードレジスタ 117 コントローラ 118 リフレッシュカウンタ 119 割り込みボート回路 121,122 ポート 123 双方向多重アドレス/データバス 124 双方向コマンドバス 126 ステートマシン 127,128 ラッチ 130 内部ステータス・制御レジスタ 131 バスインターフェース 132 マルチプレクサ 133 制御・データ転送レジスタ 135 割り込み分配器 136 割り込みボータ 138 保持レジスタ 141 ローカルメモリエリア 142 グローバルメモリエリア 143 核エリア 144 核データエリア 145 ユーザプログラムページエリア 146 ユーザページエリア 147 ディスクバッファエリア 149 I/Oステージングエリア 155a,155b,155c グローバルメモリ内に
設けられた各CPU毎のプライベートメモリ空間
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャールズ・イー・ピート・ジュニア アメリカ合衆国 78753 テキサス、オー スチン、オークブルック・ドライブ 11920番 (72)発明者 ダグラス・イー・ジュウエット アメリカ合衆国 78727 テキサス、オー スチン、ウィクリフ・レイン 12401番 (72)発明者 ケニス・シー・ディベッカー アメリカ合衆国 78717 テキサス、オー スチン、モノナ・コウブ 15702番 (72)発明者 ニキール・エー・メータ アメリカ合衆国 78758 テキサス、オー スチン、プライリエ・ヘン・コウブ 1715 番 (72)発明者 ジョン・デイビッド・アリソン アメリカ合衆国 78703 テキサス、オー スチン、ウィンザー・ロード 1406番、 202号 (72)発明者 ロバート・ダブリュー・ホースト アメリカ合衆国 61821 イリノイ、シャ ンペイン、ローブソン・パーク・ドライブ 2804番
Claims (17)
- 【請求項1】同一の命令ストリームを実行する複数のC
PUと、 全ての前記CPUによってアクセスされるメモリ空間を
有する共通メモリと、 前記各CPUのための状態情報を夫々格納するために前
記共通メモリ内に設けられており、夫々に対応する1個
のCPUによってのみ書き込み可能なプライベートメモ
リ空間とを備え、 全てのCPUのための前記プライベートメモリ空間にお
ける前記状態情報が全てのCPUによって読み出し可能
であり、これによって前記各CPUによって前記状態情
報が同じであるかどうかを評価することを特徴とするコ
ンピュータシステム。 - 【請求項2】複数の前記プライベートメモリ空間が存在
し、前記プライベートメモリ空間の1つは前記複数のC
PUの各1つのために用いられることを特徴とする請求
項1に記載のシステム。 - 【請求項3】前記複数のCPUによる前記共通メモリへ
のメモリアクセスは、実行される前に、前記共通メモリ
によってボートされることを特徴とする請求項1に記載
のシステム。 - 【請求項4】前記複数のCPUによる前記プライベート
メモリへのメモリアクセスは、データではなくアドレス
を比較してボートされることを特徴とする請求項3に記
載のシステム。 - 【請求項5】前記各CPUのための前記プライベートメ
モリは、前記複数のCPUによって実行される命令と関
連する同一の論理アドレスを有するが、前記共通メモリ
に対してアドレス指定する前に前記各プライベートメモ
リのための唯一のアドレスに翻訳されることを特徴とす
る請求項1に記載のシステム。 - 【請求項6】多重CPUを有するコンピュータシステム
であって、 すべての前記多重CPUによってアクセスされるメモリ
空間を有する共有メモリを備え、 前記多重CPUの各1つが、状態情報を格納するために
前記共有メモリにおいて独立したプライベートライトメ
モリ空間を有し、前記各プライベートライトメモリ空間
は前記多重CPUの1つによってのみ書き込み可能であ
り、 前記多重CPUの各1つのための前記プライベートライ
トメモリ空間は、すべての前記多重CPUによって読み
出し可能であることを特徴とするコンピュータシステ
ム。 - 【請求項7】前記多重CPUは同一の命令ストリームを
実行するものである請求項6に記載のシステム。 - 【請求項8】前記共有メモリは、前記多重CPUによっ
て前記共有メモリに対して行われるメモリ要求をボート
することを特徴とする請求項7に記載のシステム。 - 【請求項9】前記共有メモリは、データではなくアドレ
スを比較することによって、前記プライベートメモリラ
イト空間に対してなされるライト要求をボートすること
を特徴とする請求項6に記載のシステム。 - 【請求項10】多重プロセッサを有するコンピュータシ
ステムを動作させるための方法であって、 すべての前記多重プロセッサによってアクセスされるメ
モリ空間を有する共有メモリに前記各多重プロセッサに
よってデータを格納するステップと、 1個の多重プロセッサによってのみ書き込み可能である
各多重プロセッサのためのプライベートメモリ空間に前
記多重プロセッサの各1つによって情報を格納するステ
ップとを備えたことを特徴とする方法。 - 【請求項11】前記多重プロセッサの各々において同一
の命令ストリームを実行するステップを含む請求項10
に記載の方法。 - 【請求項12】前記データを格納するステップは、前記
多重プロセッサによってなされる前記共有メモリへのメ
モリ要求をボートすることを含む請求項10に記載の方
法。 - 【請求項13】プライベートメモリ空間に情報を格納す
るステップは、前記多重プロセッサの各々によって全て
の前記プライベートメモリ空間に対する書き込み要求を
行うことを含んでおり、ただし前記各プライベートメモ
リ空間に関連する各書き込み要求に対して1個のプロセ
ッサのみについての書き込み要求を実行することを特徴
とする請求項10に記載の方法。 - 【請求項14】前記多重プロセッサの各1つによって前
記プライベートメモリ空間からの前記情報の同一性の評
価を行うステップを含むことを特徴とする請求項10に
記載の方法。 - 【請求項15】前記多重プロセッサの各々によってすべ
ての前記多重プロセッサのための前記プライベートメモ
リ空間における前記情報を読み出すステップを含むこと
を特徴とする請求項10に記載の方法。 - 【請求項16】前記多重プロセッサの各1つにおいて同
一の命令ストリームを実行するステップを含み、前記デ
ータを格納するステップは、前記多重プロセッサによっ
て行われる前記共有メモリへのメモリ要求をボートする
ことを含むことを特徴とする請求項15に記載の方法。 - 【請求項17】前記多重プロセッサは、メモリ要求をボ
ートする場合に、緩く同期化されることを特徴とする請
求項16に記載の方法。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28246988A | 1988-12-09 | 1988-12-09 | |
US28262988A | 1988-12-09 | 1988-12-09 | |
US28254088A | 1988-12-09 | 1988-12-09 | |
US282,540 | 1988-12-09 | ||
US282,469 | 1988-12-09 | ||
US28357488A | 1988-12-13 | 1988-12-13 | |
US283,573 | 1988-12-13 | ||
US07/283,573 US4965717A (en) | 1988-12-09 | 1988-12-13 | Multiple processor system having shared memory with private-write capability |
EP90105103A EP0447578A1 (en) | 1988-12-09 | 1990-03-19 | Memory management in high-performance fault-tolerant computer system |
EP90105102A EP0447577A1 (en) | 1988-12-09 | 1990-03-19 | High-performance computer system with fault-tolerant capability |
AU52027/90A AU628497B2 (en) | 1988-12-09 | 1990-03-20 | Memory management in high-performance fault-tolerant computer systems |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1322462A Division JPH02202637A (ja) | 1988-12-09 | 1989-12-11 | フォールトトレラントコンピュータにおけるメモリ管理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0713789A true JPH0713789A (ja) | 1995-01-17 |
Family
ID=41040648
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1322462A Pending JPH02202637A (ja) | 1988-12-09 | 1989-12-11 | フォールトトレラントコンピュータにおけるメモリ管理システム |
JP1322461A Expired - Fee Related JPH079625B2 (ja) | 1988-12-09 | 1989-12-11 | フォールトトレラントな能力を備えたコンピュータ |
JP6054483A Pending JPH0713789A (ja) | 1988-12-09 | 1994-02-28 | フォールトトレラントコンピュータにおけるメモリ管理システム |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1322462A Pending JPH02202637A (ja) | 1988-12-09 | 1989-12-11 | フォールトトレラントコンピュータにおけるメモリ管理システム |
JP1322461A Expired - Fee Related JPH079625B2 (ja) | 1988-12-09 | 1989-12-11 | フォールトトレラントな能力を備えたコンピュータ |
Country Status (7)
Country | Link |
---|---|
US (7) | US4965717A (ja) |
EP (5) | EP0681239A3 (ja) |
JP (3) | JPH02202637A (ja) |
AT (1) | ATE158879T1 (ja) |
AU (1) | AU628497B2 (ja) |
CA (2) | CA2003342A1 (ja) |
DE (1) | DE68928360T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107411B2 (en) | 2003-12-16 | 2006-09-12 | International Business Machines Corporation | Apparatus method and system for fault tolerant virtual memory management |
KR20150106144A (ko) * | 2014-03-11 | 2015-09-21 | 삼성전자주식회사 | 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템 |
JP2016532970A (ja) * | 2013-08-31 | 2016-10-20 | 華為技術有限公司Huawei Technologies Co.,Ltd. | サーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバ |
Families Citing this family (429)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU616213B2 (en) | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
CA2003338A1 (en) * | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
JPH02103656A (ja) * | 1988-10-12 | 1990-04-16 | Fujitsu Ltd | 主記憶参照の遂次化制御方式 |
US4965717A (en) | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
AU625293B2 (en) * | 1988-12-09 | 1992-07-09 | Tandem Computers Incorporated | Synchronization of fault-tolerant computer system having multiple processors |
US5148533A (en) * | 1989-01-05 | 1992-09-15 | Bull Hn Information Systems Inc. | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units |
EP0378415A3 (en) * | 1989-01-13 | 1991-09-25 | International Business Machines Corporation | Multiple instruction dispatch mechanism |
US5276828A (en) * | 1989-03-01 | 1994-01-04 | Digital Equipment Corporation | Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions |
IT1228728B (it) * | 1989-03-15 | 1991-07-03 | Bull Hn Information Syst | Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi. |
NL8901825A (nl) * | 1989-07-14 | 1991-02-01 | Philips Nv | Pijplijnsysteem met multi-resolutie dataverwerking op echte-tijd-basis. |
US5307468A (en) * | 1989-08-23 | 1994-04-26 | Digital Equipment Corporation | Data processing system and method for controlling the latter as well as a CPU board |
JPH0666056B2 (ja) * | 1989-10-12 | 1994-08-24 | 甲府日本電気株式会社 | 情報処理システム |
US5551050A (en) * | 1989-12-20 | 1996-08-27 | Texas Instruments Incorporated | System and method using synchronized processors to perform real time internal monitoring of a data processing device |
US5295258A (en) | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5317752A (en) * | 1989-12-22 | 1994-05-31 | Tandem Computers Incorporated | Fault-tolerant computer system with auto-restart after power-fall |
US5327553A (en) * | 1989-12-22 | 1994-07-05 | Tandem Computers Incorporated | Fault-tolerant computer system with /CONFIG filesystem |
WO1991010195A1 (en) * | 1990-01-05 | 1991-07-11 | Sun Microsystems, Inc. | High speed active bus |
US5263163A (en) * | 1990-01-19 | 1993-11-16 | Codex Corporation | Arbitration among multiple users of a shared resource |
JPH0748190B2 (ja) * | 1990-01-22 | 1995-05-24 | 株式会社東芝 | キャッシュメモリ内蔵マイクロプロセッサ |
EP0440456B1 (en) * | 1990-01-31 | 1997-01-08 | Hewlett-Packard Company | Microprocessor burst mode with external system memory |
US5680574A (en) * | 1990-02-26 | 1997-10-21 | Hitachi, Ltd. | Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units |
US6728832B2 (en) * | 1990-02-26 | 2004-04-27 | Hitachi, Ltd. | Distribution of I/O requests across multiple disk units |
JPH03254497A (ja) * | 1990-03-05 | 1991-11-13 | Mitsubishi Electric Corp | マイクロコンピュータ |
US5247648A (en) * | 1990-04-12 | 1993-09-21 | Sun Microsystems, Inc. | Maintaining data coherency between a central cache, an I/O cache and a memory |
US5289588A (en) * | 1990-04-24 | 1994-02-22 | Advanced Micro Devices, Inc. | Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system |
DE69124285T2 (de) * | 1990-05-18 | 1997-08-14 | Fujitsu Ltd | Datenverarbeitungssystem mit einem Eingangs-/Ausgangswegetrennmechanismus und Verfahren zur Steuerung des Datenverarbeitungssystems |
US5276896A (en) * | 1990-06-11 | 1994-01-04 | Unisys Corporation | Apparatus for implementing data communications between terminal devices and user programs |
US5488709A (en) * | 1990-06-27 | 1996-01-30 | Mos Electronics, Corp. | Cache including decoupling register circuits |
US5732241A (en) * | 1990-06-27 | 1998-03-24 | Mos Electronics, Corp. | Random access cache memory controller and system |
EP0471462B1 (en) * | 1990-08-06 | 1998-04-15 | NCR International, Inc. | Computer memory operating method and system |
WO1992003785A1 (de) * | 1990-08-14 | 1992-03-05 | Siemens Aktiengesellschaft | Einrichtung zur funktionsüberwachung externer synchronisations-baugruppen in einem mehrrechnersystem |
GB9019023D0 (en) * | 1990-08-31 | 1990-10-17 | Ncr Co | Work station having multiplexing and burst mode capabilities |
GB9018993D0 (en) * | 1990-08-31 | 1990-10-17 | Ncr Co | Work station interfacing means having burst mode capability |
ATE130112T1 (de) * | 1990-09-03 | 1995-11-15 | Ibm | Rechner mit erweitertem virtuellem speicher. |
US6108755A (en) * | 1990-09-18 | 2000-08-22 | Fujitsu Limited | Asynchronous access system to a shared storage |
CA2059143C (en) | 1991-01-25 | 2000-05-16 | Takeshi Miyao | Processing unit for a computer and a computer system incorporating such a processing unit |
US6247144B1 (en) * | 1991-01-31 | 2001-06-12 | Compaq Computer Corporation | Method and apparatus for comparing real time operation of object code compatible processors |
US5465339A (en) * | 1991-02-27 | 1995-11-07 | Vlsi Technology, Inc. | Decoupled refresh on local and system busses in a PC/at or similar microprocessor environment |
US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5339404A (en) * | 1991-05-28 | 1994-08-16 | International Business Machines Corporation | Asynchronous TMR processing system |
US5233615A (en) * | 1991-06-06 | 1993-08-03 | Honeywell Inc. | Interrupt driven, separately clocked, fault tolerant processor synchronization |
US5319760A (en) * | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5280608A (en) * | 1991-06-28 | 1994-01-18 | Digital Equipment Corporation | Programmable stall cycles |
JPH056344A (ja) * | 1991-06-28 | 1993-01-14 | Fujitsu Ltd | プログラム走行情報採取処理方式 |
JP3679813B2 (ja) * | 1991-07-22 | 2005-08-03 | 株式会社日立製作所 | 並列計算機 |
US5421002A (en) * | 1991-08-09 | 1995-05-30 | Westinghouse Electric Corporation | Method for switching between redundant buses in a distributed processing system |
US5386540A (en) * | 1991-09-18 | 1995-01-31 | Ncr Corporation | Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes |
JP2520544B2 (ja) * | 1991-09-26 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置 |
WO1993009494A1 (en) * | 1991-10-28 | 1993-05-13 | Digital Equipment Corporation | Fault-tolerant computer processing using a shadow virtual processor |
EP0543032A1 (en) * | 1991-11-16 | 1993-05-26 | International Business Machines Corporation | Expanded memory addressing scheme |
US5379417A (en) * | 1991-11-25 | 1995-01-03 | Tandem Computers Incorporated | System and method for ensuring write data integrity in a redundant array data storage system |
US5313628A (en) * | 1991-12-30 | 1994-05-17 | International Business Machines Corporation | Component replacement control for fault-tolerant data processing system |
EP0550358A3 (en) * | 1991-12-30 | 1994-11-02 | Eastman Kodak Co | Fault tolerant multiprocessor cluster |
JP2500038B2 (ja) * | 1992-03-04 | 1996-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム |
WO1993018461A1 (en) * | 1992-03-09 | 1993-09-16 | Auspex Systems, Inc. | High-performance non-volatile ram protected write cache accelerator system |
US5632037A (en) * | 1992-03-27 | 1997-05-20 | Cyrix Corporation | Microprocessor having power management circuitry with coprocessor support |
US5428769A (en) * | 1992-03-31 | 1995-06-27 | The Dow Chemical Company | Process control interface system having triply redundant remote field units |
AU4279793A (en) * | 1992-04-07 | 1993-11-08 | Video Technology Computers, Ltd. | Self-controlled write back cache memory apparatus |
JP2534430B2 (ja) * | 1992-04-15 | 1996-09-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法 |
DE4219005A1 (de) * | 1992-06-10 | 1993-12-16 | Siemens Ag | Rechnersystem |
AU4400893A (en) * | 1992-06-12 | 1994-01-04 | Dow Chemical Company, The | Stealth interface for process control computers |
US5583757A (en) * | 1992-08-04 | 1996-12-10 | The Dow Chemical Company | Method of input signal resolution for actively redundant process control computers |
US5537655A (en) * | 1992-09-28 | 1996-07-16 | The Boeing Company | Synchronized fault tolerant reset |
US5379415A (en) * | 1992-09-29 | 1995-01-03 | Zitel Corporation | Fault tolerant memory system |
US6951019B1 (en) * | 1992-09-30 | 2005-09-27 | Apple Computer, Inc. | Execution control for processor tasks |
JPH06214969A (ja) * | 1992-09-30 | 1994-08-05 | Internatl Business Mach Corp <Ibm> | 情報通信方法および装置 |
US5434997A (en) * | 1992-10-02 | 1995-07-18 | Compaq Computer Corp. | Method and apparatus for testing and debugging a tightly coupled mirrored processing system |
US6237108B1 (en) * | 1992-10-09 | 2001-05-22 | Fujitsu Limited | Multiprocessor system having redundant shared memory configuration |
US5781715A (en) * | 1992-10-13 | 1998-07-14 | International Business Machines Corporation | Fault-tolerant bridge/router with a distributed switch-over mechanism |
US5448716A (en) * | 1992-10-30 | 1995-09-05 | International Business Machines Corporation | Apparatus and method for booting a multiple processor system having a global/local memory architecture |
DE69325769T2 (de) * | 1992-11-04 | 2000-03-23 | Digital Equipment Corp., Maynard | Erkennung von Befehlssynchronisationsfehlern |
US5327548A (en) * | 1992-11-09 | 1994-07-05 | International Business Machines Corporation | Apparatus and method for steering spare bit in a multiple processor system having a global/local memory architecture |
EP0600623B1 (en) * | 1992-12-03 | 1998-01-21 | Advanced Micro Devices, Inc. | Servo loop control |
US6157967A (en) * | 1992-12-17 | 2000-12-05 | Tandem Computer Incorporated | Method of data communication flow control in a data processing system using busy/ready commands |
US5751932A (en) * | 1992-12-17 | 1998-05-12 | Tandem Computers Incorporated | Fail-fast, fail-functional, fault-tolerant multiprocessor system |
US5838894A (en) * | 1992-12-17 | 1998-11-17 | Tandem Computers Incorporated | Logical, fail-functional, dual central processor units formed from three processor units |
JP2826028B2 (ja) * | 1993-01-28 | 1998-11-18 | 富士通株式会社 | 分散メモリ型プロセッサシステム |
US5845329A (en) * | 1993-01-29 | 1998-12-01 | Sanyo Electric Co., Ltd. | Parallel computer |
US5473770A (en) * | 1993-03-02 | 1995-12-05 | Tandem Computers Incorporated | Fault-tolerant computer system with hidden local memory refresh |
JPH0773059A (ja) * | 1993-03-02 | 1995-03-17 | Tandem Comput Inc | フォールトトレラント型コンピュータシステム |
DE59302826D1 (de) * | 1993-03-16 | 1996-07-11 | Siemens Ag | Synchronisationsverfahren für Automatisierungssysteme |
JP2819982B2 (ja) * | 1993-03-18 | 1998-11-05 | 株式会社日立製作所 | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム |
JP2784440B2 (ja) * | 1993-04-14 | 1998-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ・ページの転送制御方法 |
US5479599A (en) * | 1993-04-26 | 1995-12-26 | International Business Machines Corporation | Computer console with group ICON control |
US5381541A (en) * | 1993-05-26 | 1995-01-10 | International Business Machines Corp. | Computer system having planar board with single interrupt controller and processor card with plural processors and interrupt director |
JP3004861U (ja) * | 1993-06-04 | 1994-11-29 | ディジタル イクイプメント コーポレイション | 密接に結合された二重のコントローラモジュールを用いた欠陥許容式の記憶装置用制御システム |
US5435001A (en) * | 1993-07-06 | 1995-07-18 | Tandem Computers Incorporated | Method of state determination in lock-stepped processors |
US5909541A (en) * | 1993-07-14 | 1999-06-01 | Honeywell Inc. | Error detection and correction for data stored across multiple byte-wide memory devices |
JPH0793274A (ja) * | 1993-07-27 | 1995-04-07 | Fujitsu Ltd | データ転送方式及びデータ転送装置 |
US5572620A (en) * | 1993-07-29 | 1996-11-05 | Honeywell Inc. | Fault-tolerant voter system for output data from a plurality of non-synchronized redundant processors |
US5530907A (en) * | 1993-08-23 | 1996-06-25 | Tcsi Corporation | Modular networked image processing system and method therefor |
US5548711A (en) * | 1993-08-26 | 1996-08-20 | Emc Corporation | Method and apparatus for fault tolerant fast writes through buffer dumping |
JPH07129456A (ja) * | 1993-10-28 | 1995-05-19 | Toshiba Corp | コンピュータシステム |
US5604863A (en) * | 1993-11-01 | 1997-02-18 | International Business Machines Corporation | Method for coordinating executing programs in a data processing system |
US5504859A (en) * | 1993-11-09 | 1996-04-02 | International Business Machines Corporation | Data processor with enhanced error recovery |
CA2177850A1 (en) * | 1993-12-01 | 1995-06-08 | Thomas Dale Bissett | Fault resilient/fault tolerant computing |
US6161162A (en) * | 1993-12-08 | 2000-12-12 | Nec Corporation | Multiprocessor system for enabling shared access to a memory |
US5537538A (en) * | 1993-12-15 | 1996-07-16 | Silicon Graphics, Inc. | Debug mode for a superscalar RISC processor |
JPH07175698A (ja) * | 1993-12-17 | 1995-07-14 | Fujitsu Ltd | ファイルシステム |
US5535405A (en) * | 1993-12-23 | 1996-07-09 | Unisys Corporation | Microsequencer bus controller system |
US5606685A (en) * | 1993-12-29 | 1997-02-25 | Unisys Corporation | Computer workstation having demand-paged virtual memory and enhanced prefaulting |
JPH07219913A (ja) * | 1994-01-28 | 1995-08-18 | Fujitsu Ltd | マルチプロセッサシステムの制御方法及び装置 |
TW357295B (en) * | 1994-02-08 | 1999-05-01 | United Microelectronics Corp | Microprocessor's data writing, reading operations |
US5452441A (en) * | 1994-03-30 | 1995-09-19 | At&T Corp. | System and method for on-line state restoration of one or more processors in an N module redundant voting processor system |
JP2679674B2 (ja) * | 1994-05-02 | 1997-11-19 | 日本電気株式会社 | 半導体製造ライン制御装置 |
JPH07334416A (ja) * | 1994-06-06 | 1995-12-22 | Internatl Business Mach Corp <Ibm> | コンピュータ・システムにおけるページ・モード・メモリの初期設定の方法および手段 |
US5566297A (en) * | 1994-06-16 | 1996-10-15 | International Business Machines Corporation | Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments |
US5636359A (en) * | 1994-06-20 | 1997-06-03 | International Business Machines Corporation | Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme |
EP0702306A1 (en) * | 1994-09-19 | 1996-03-20 | International Business Machines Corporation | System and method for interfacing risc busses to peripheral circuits using another template of busses in a data communication adapter |
US5530946A (en) * | 1994-10-28 | 1996-06-25 | Dell Usa, L.P. | Processor failure detection and recovery circuit in a dual processor computer system and method of operation thereof |
US5557783A (en) * | 1994-11-04 | 1996-09-17 | Canon Information Systems, Inc. | Arbitration device for arbitrating access requests from first and second processors having different first and second clocks |
US5630045A (en) * | 1994-12-06 | 1997-05-13 | International Business Machines Corporation | Device and method for fault tolerant dual fetch and store |
US5778443A (en) * | 1994-12-14 | 1998-07-07 | International Business Machines Corp. | Method and apparatus for conserving power and system resources in a computer system employing a virtual memory |
US5586253A (en) * | 1994-12-15 | 1996-12-17 | Stratus Computer | Method and apparatus for validating I/O addresses in a fault-tolerant computer system |
DE69528886T2 (de) * | 1994-12-19 | 2003-09-11 | Koninklijke Philips Electronics N.V., Eindhoven | Veränderliche datenprozessorzuweisung und gemeinsame speicherbenutzung |
US5555372A (en) * | 1994-12-21 | 1996-09-10 | Stratus Computer, Inc. | Fault-tolerant computer system employing an improved error-broadcast mechanism |
FR2730074B1 (fr) * | 1995-01-27 | 1997-04-04 | Sextant Avionique | Architecture de calculateur tolerante aux fautes |
US5692153A (en) * | 1995-03-16 | 1997-11-25 | International Business Machines Corporation | Method and system for verifying execution order within a multiprocessor data processing system |
US5864654A (en) * | 1995-03-31 | 1999-01-26 | Nec Electronics, Inc. | Systems and methods for fault tolerant information processing |
US5727167A (en) * | 1995-04-14 | 1998-03-10 | International Business Machines Corporation | Thresholding support in performance monitoring |
JP3329986B2 (ja) * | 1995-04-28 | 2002-09-30 | 富士通株式会社 | マルチプロセッサシステム |
JP3132744B2 (ja) * | 1995-05-24 | 2001-02-05 | 株式会社日立製作所 | 二重化cpu保守交換時の動作一致検証方式 |
US5632013A (en) * | 1995-06-07 | 1997-05-20 | International Business Machines Corporation | Memory and system for recovery/restoration of data using a memory controller |
JP3502216B2 (ja) * | 1995-07-13 | 2004-03-02 | 富士通株式会社 | 情報処理装置 |
JP3595033B2 (ja) * | 1995-07-18 | 2004-12-02 | 株式会社日立製作所 | 高信頼化コンピュータシステム |
DE19529434B4 (de) * | 1995-08-10 | 2009-09-17 | Continental Teves Ag & Co. Ohg | Microprozessorsystem für sicherheitskritische Regelungen |
JP3526492B2 (ja) * | 1995-09-19 | 2004-05-17 | 富士通株式会社 | 並列処理システム |
US5666483A (en) * | 1995-09-22 | 1997-09-09 | Honeywell Inc. | Redundant processing system architecture |
US5673384A (en) * | 1995-10-06 | 1997-09-30 | Hewlett-Packard Company | Dual disk lock arbitration between equal sized partition of a cluster |
US5790775A (en) * | 1995-10-23 | 1998-08-04 | Digital Equipment Corporation | Host transparent storage controller failover/failback of SCSI targets and associated units |
US5708771A (en) * | 1995-11-21 | 1998-01-13 | Emc Corporation | Fault tolerant controller system and method |
US5732209A (en) * | 1995-11-29 | 1998-03-24 | Exponential Technology, Inc. | Self-testing multi-processor die with internal compare points |
US5802265A (en) * | 1995-12-01 | 1998-09-01 | Stratus Computer, Inc. | Transparent fault tolerant computer system |
US5805789A (en) * | 1995-12-14 | 1998-09-08 | International Business Machines Corporation | Programmable computer system element with built-in self test method and apparatus for repair during power-on |
US5812822A (en) * | 1995-12-19 | 1998-09-22 | Selway; David W. | Apparatus for coordinating clock oscillators in a fully redundant computer system |
US5941994A (en) * | 1995-12-22 | 1999-08-24 | Lsi Logic Corporation | Technique for sharing hot spare drives among multiple subsystems |
US5742823A (en) * | 1996-01-17 | 1998-04-21 | Nathen P. Edwards | Total object processing system and method with assembly line features and certification of results |
US5761518A (en) * | 1996-02-29 | 1998-06-02 | The Foxboro Company | System for replacing control processor by operating processor in partially disabled mode for tracking control outputs and in write enabled mode for transferring control loops |
JPH09251443A (ja) * | 1996-03-18 | 1997-09-22 | Hitachi Ltd | 情報処理システムのプロセッサ障害回復処理方法 |
US5784625A (en) * | 1996-03-19 | 1998-07-21 | Vlsi Technology, Inc. | Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin |
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
EP0895602B1 (en) * | 1996-04-23 | 2000-10-04 | AlliedSignal Inc. | Integrated hazard avoidance system |
TW320701B (ja) * | 1996-05-16 | 1997-11-21 | Resilience Corp | |
US6141769A (en) | 1996-05-16 | 2000-10-31 | Resilience Corporation | Triple modular redundant computer system and associated method |
US5809546A (en) * | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US5787309A (en) * | 1996-05-23 | 1998-07-28 | International Business Machines Corporation | Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits |
US5724551A (en) * | 1996-05-23 | 1998-03-03 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers |
US5802397A (en) * | 1996-05-23 | 1998-09-01 | International Business Machines Corporation | System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity |
US5900019A (en) * | 1996-05-23 | 1999-05-04 | International Business Machines Corporation | Apparatus for protecting memory storage blocks from I/O accesses |
KR100195065B1 (ko) * | 1996-06-20 | 1999-06-15 | 유기범 | 데이타 통신망 정합장치 |
US5953742A (en) * | 1996-07-01 | 1999-09-14 | Sun Microsystems, Inc. | Memory management in fault tolerant computer systems utilizing a first and second recording mechanism and a reintegration mechanism |
US5784386A (en) * | 1996-07-03 | 1998-07-21 | General Signal Corporation | Fault tolerant synchronous clock distribution |
EP0825506B1 (en) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
US5790397A (en) | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US6000040A (en) * | 1996-10-29 | 1999-12-07 | Compaq Computer Corporation | Method and apparatus for diagnosing fault states in a computer system |
DE69718129T2 (de) * | 1996-10-29 | 2003-10-23 | Hitachi, Ltd. | Redundantes Datenverarbeitungssystem |
US5784394A (en) * | 1996-11-15 | 1998-07-21 | International Business Machines Corporation | Method and system for implementing parity error recovery schemes in a data processing system |
US6167486A (en) * | 1996-11-18 | 2000-12-26 | Nec Electronics, Inc. | Parallel access virtual channel memory system with cacheable channels |
US5887160A (en) * | 1996-12-10 | 1999-03-23 | Fujitsu Limited | Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction pipeline processor |
US6161202A (en) * | 1997-02-18 | 2000-12-12 | Ee-Signals Gmbh & Co. Kg | Method for the monitoring of integrated circuits |
US5805606A (en) * | 1997-03-13 | 1998-09-08 | International Business Machines Corporation | Cache module fault isolation techniques |
US6151684A (en) * | 1997-03-28 | 2000-11-21 | Tandem Computers Incorporated | High availability access to input/output devices in a distributed system |
US6502208B1 (en) | 1997-03-31 | 2002-12-31 | International Business Machines Corporation | Method and system for check stop error handling |
US5951686A (en) * | 1997-03-31 | 1999-09-14 | International Business Machines Corporation | Method and system for reboot recovery |
US6065139A (en) * | 1997-03-31 | 2000-05-16 | International Business Machines Corporation | Method and system for surveillance of computer system operations |
US6557121B1 (en) | 1997-03-31 | 2003-04-29 | International Business Machines Corporation | Method and system for fault isolation for PCI bus errors |
US6119246A (en) * | 1997-03-31 | 2000-09-12 | International Business Machines Corporation | Error collection coordination for software-readable and non-software readable fault isolation registers in a computer system |
KR19980081499A (ko) * | 1997-04-17 | 1998-11-25 | 모리시다요이치 | 메모리 내장 데이터 처리장치 및 처리시스템 |
US5933857A (en) * | 1997-04-25 | 1999-08-03 | Hewlett-Packard Co. | Accessing multiple independent microkernels existing in a globally shared memory system |
US5923830A (en) * | 1997-05-07 | 1999-07-13 | General Dynamics Information Systems, Inc. | Non-interrupting power control for fault tolerant computer systems |
US5896523A (en) * | 1997-06-04 | 1999-04-20 | Marathon Technologies Corporation | Loosely-coupled, synchronized execution |
US5991893A (en) * | 1997-08-29 | 1999-11-23 | Hewlett-Packard Company | Virtually reliable shared memory |
US6148387A (en) * | 1997-10-09 | 2000-11-14 | Phoenix Technologies, Ltd. | System and method for securely utilizing basic input and output system (BIOS) services |
US6633916B2 (en) | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
US6542926B2 (en) | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
US6332180B1 (en) | 1998-06-10 | 2001-12-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for communication in a multi-processor computer system |
US6647508B2 (en) | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
US6199179B1 (en) * | 1998-06-10 | 2001-03-06 | Compaq Computer Corporation | Method and apparatus for failure recovery in a multi-processor computer system |
US6381682B2 (en) | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
US6260068B1 (en) | 1998-06-10 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for migrating resources in a multi-processor computer system |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6252583B1 (en) * | 1997-11-14 | 2001-06-26 | Immersion Corporation | Memory and force output management for a force feedback system |
JP2001523855A (ja) | 1997-11-14 | 2001-11-27 | マラソン テクノロジーズ コーポレイション | 故障回復/耐故障計算機 |
US6332178B1 (en) | 1997-11-26 | 2001-12-18 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system transactions |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
US6175814B1 (en) | 1997-11-26 | 2001-01-16 | Compaq Computer Corporation | Apparatus for determining the instantaneous average number of instructions processed |
US6374367B1 (en) | 1997-11-26 | 2002-04-16 | Compaq Computer Corporation | Apparatus and method for monitoring a computer system to guide optimization |
US6237059B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system interactions among contexts in a computer system |
US6549930B1 (en) | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6442585B1 (en) | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6237073B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information |
US6195748B1 (en) | 1997-11-26 | 2001-02-27 | Compaq Computer Corporation | Apparatus for sampling instruction execution information in a processor pipeline |
FR2771526B1 (fr) | 1997-11-27 | 2004-07-23 | Bull Sa | Architecture pour la gestion de donnees vitales dans une machine multi-modulaire et procede pour la mise en oeuvre d'une telle architecture |
US6185646B1 (en) * | 1997-12-03 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for transferring data on a synchronous multi-drop |
US6098158A (en) * | 1997-12-18 | 2000-08-01 | International Business Machines Corporation | Software-enabled fast boot |
US6397281B1 (en) * | 1997-12-23 | 2002-05-28 | Emc Corporation | Bus arbitration system |
US6502149B2 (en) * | 1997-12-23 | 2002-12-31 | Emc Corporation | Plural bus data storage system |
EP0926600B1 (en) * | 1997-12-24 | 2003-06-11 | Texas Instruments Inc. | Computer system with processor and memory hierarchy and its operating method |
JPH11203157A (ja) * | 1998-01-13 | 1999-07-30 | Fujitsu Ltd | 冗長装置 |
US6249878B1 (en) * | 1998-03-31 | 2001-06-19 | Emc Corporation | Data storage system |
DE19815263C2 (de) * | 1998-04-04 | 2002-03-28 | Astrium Gmbh | Vorrichtung zur fehlertoleranten Ausführung von Programmen |
US6058490A (en) * | 1998-04-21 | 2000-05-02 | Lucent Technologies, Inc. | Method and apparatus for providing scaleable levels of application availability |
US6216051B1 (en) | 1998-05-04 | 2001-04-10 | Nec Electronics, Inc. | Manufacturing backup system |
US6691183B1 (en) | 1998-05-20 | 2004-02-10 | Invensys Systems, Inc. | Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation |
US6173351B1 (en) * | 1998-06-15 | 2001-01-09 | Sun Microsystems, Inc. | Multi-processor system bridge |
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 |
US6473840B2 (en) * | 1998-06-19 | 2002-10-29 | International Business Machines Corporation | Data processing system having a network and method for managing memory by storing discardable pages in a local paging device |
US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
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 |
US6836838B1 (en) | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
US6513108B1 (en) | 1998-06-29 | 2003-01-28 | Cisco Technology, Inc. | Programmable processing engine for efficiently processing transient data |
US6119215A (en) * | 1998-06-29 | 2000-09-12 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
US6247143B1 (en) * | 1998-06-30 | 2001-06-12 | Sun Microsystems, Inc. | I/O handling for a multiprocessor computer system |
JP2000067009A (ja) | 1998-08-20 | 2000-03-03 | Hitachi Ltd | 主記憶共有型マルチプロセッサ |
JP2002523854A (ja) * | 1998-08-21 | 2002-07-30 | クリーダンス システムズ コーポレイション | 集積回路のビルトイン自己試験方法及びその装置 |
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 |
US6233690B1 (en) * | 1998-09-17 | 2001-05-15 | Intel Corporation | Mechanism for saving power on long latency stalls |
SE515461C2 (sv) * | 1998-10-05 | 2001-08-06 | Ericsson Telefon Ab L M | Metod och arrangemang för minneshantering |
US6230190B1 (en) * | 1998-10-09 | 2001-05-08 | Openwave Systems Inc. | Shared-everything file storage for clustered system |
US6397345B1 (en) * | 1998-10-09 | 2002-05-28 | Openwave Systems Inc. | Fault tolerant bus for clustered system |
US6412079B1 (en) * | 1998-10-09 | 2002-06-25 | Openwave Systems Inc. | Server pool for clustered system |
US6728839B1 (en) | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
US6763370B1 (en) * | 1998-11-16 | 2004-07-13 | Softricity, Inc. | Method and apparatus for content protection in a secure content delivery system |
US6374402B1 (en) | 1998-11-16 | 2002-04-16 | Into Networks, Inc. | Method and apparatus for installation abstraction in a secure content delivery system |
US7017188B1 (en) * | 1998-11-16 | 2006-03-21 | Softricity, Inc. | Method and apparatus for secure content delivery over broadband access networks |
US6385747B1 (en) | 1998-12-14 | 2002-05-07 | Cisco Technology, Inc. | Testing of replicated components of electronic device |
US6173386B1 (en) | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
US7206877B1 (en) | 1998-12-22 | 2007-04-17 | Honeywell International Inc. | Fault tolerant data communication network |
JP3809930B2 (ja) * | 1998-12-25 | 2006-08-16 | 株式会社日立製作所 | 情報処理装置 |
US6564311B2 (en) * | 1999-01-19 | 2003-05-13 | Matsushita Electric Industrial Co., Ltd. | Apparatus for translation between virtual and physical addresses using a virtual page number, a physical page number, a process identifier and a global bit |
US6526370B1 (en) * | 1999-02-04 | 2003-02-25 | Advanced Micro Devices, Inc. | Mechanism for accumulating data to determine average values of performance parameters |
US7730169B1 (en) | 1999-04-12 | 2010-06-01 | Softricity, Inc. | Business method and system for serving third party software applications |
US7370071B2 (en) | 2000-03-17 | 2008-05-06 | Microsoft Corporation | Method for serving third party software applications from servers to client computers |
US8099758B2 (en) | 1999-05-12 | 2012-01-17 | Microsoft Corporation | Policy based composite file system and method |
WO2000070531A2 (en) | 1999-05-17 | 2000-11-23 | The Foxboro Company | Methods and apparatus for control configuration |
US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US7096465B1 (en) | 1999-05-17 | 2006-08-22 | Invensys Systems, Inc. | Process control configuration system with parameterized objects |
US7272815B1 (en) | 1999-05-17 | 2007-09-18 | Invensys Systems, Inc. | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
US7043728B1 (en) | 1999-06-08 | 2006-05-09 | Invensys Systems, Inc. | Methods and apparatus for fault-detecting and fault-tolerant process control |
US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
US6510352B1 (en) | 1999-07-29 | 2003-01-21 | The Foxboro Company | Methods and apparatus for object-based process control |
US7953931B2 (en) * | 1999-08-04 | 2011-05-31 | Super Talent Electronics, Inc. | High endurance non-volatile memory devices |
US6438710B1 (en) * | 1999-08-31 | 2002-08-20 | Rockwell Electronic Commerce Corp. | Circuit and method for improving memory integrity in a microprocessor based application |
US6499113B1 (en) * | 1999-08-31 | 2002-12-24 | Sun Microsystems, Inc. | Method and apparatus for extracting first failure and attendant operating information from computer system devices |
WO2001016760A1 (en) * | 1999-08-31 | 2001-03-08 | Times N Systems, Inc. | Switchable shared-memory cluster |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6681341B1 (en) | 1999-11-03 | 2004-01-20 | Cisco Technology, Inc. | Processor isolation method for integrated multi-processor systems |
US6708254B2 (en) | 1999-11-10 | 2004-03-16 | Nec Electronics America, Inc. | Parallel access virtual channel memory system |
US6473660B1 (en) | 1999-12-03 | 2002-10-29 | The Foxboro Company | Process control system and method with automatic fault avoidance |
US7555683B2 (en) * | 1999-12-23 | 2009-06-30 | Landesk Software, Inc. | Inventory determination for facilitating commercial transactions during diagnostic tests |
US8019943B2 (en) * | 2000-01-06 | 2011-09-13 | Super Talent Electronics, Inc. | High endurance non-volatile memory devices |
US6574753B1 (en) * | 2000-01-10 | 2003-06-03 | Emc Corporation | Peer link fault isolation |
US6779128B1 (en) | 2000-02-18 | 2004-08-17 | Invensys Systems, Inc. | Fault-tolerant data transfer |
US6892237B1 (en) | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
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 |
US6901481B2 (en) | 2000-04-14 | 2005-05-31 | Stratus Technologies Bermuda Ltd. | Method and apparatus for storing transactional information in persistent memory |
US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
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 |
US6708331B1 (en) * | 2000-05-03 | 2004-03-16 | Leon Schwartz | Method for automatic parallelization of software |
US6675315B1 (en) * | 2000-05-05 | 2004-01-06 | Oracle International Corp. | Diagnosing crashes in distributed computing systems |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
AU2001290509A1 (en) * | 2000-06-07 | 2001-12-17 | Clifford A. Megerle | System and method to detect the presence of a target organism within an air sample using flow cytometry |
US6609216B1 (en) | 2000-06-16 | 2003-08-19 | International Business Machines Corporation | Method for measuring performance of code sequences in a production system |
US6804703B1 (en) * | 2000-06-22 | 2004-10-12 | International Business Machines Corporation | System and method for establishing persistent reserves to nonvolatile storage in a clustered computer environment |
US6438647B1 (en) | 2000-06-23 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for providing battery-backed immediate write back cache for an array of disk drives in a computer system |
EP1213650A3 (en) * | 2000-08-21 | 2006-08-30 | Texas Instruments France | Priority arbitration based on current task and MMU |
EP1215577B1 (en) * | 2000-08-21 | 2012-02-22 | Texas Instruments Incorporated | Fault management and recovery based on task-ID |
EP1182569B8 (en) * | 2000-08-21 | 2011-07-06 | Texas Instruments Incorporated | TLB lock and unlock operation |
US6647470B1 (en) * | 2000-08-21 | 2003-11-11 | Micron Technology, Inc. | Memory device having posted write per command |
US6732289B1 (en) * | 2000-08-31 | 2004-05-04 | Sun Microsystems, Inc. | Fault tolerant data storage system |
GB2370380B (en) | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
US6948010B2 (en) * | 2000-12-20 | 2005-09-20 | Stratus Technologies Bermuda Ltd. | Method and apparatus for efficiently moving portions of a memory block |
US6990657B2 (en) * | 2001-01-24 | 2006-01-24 | Texas Instruments Incorporated | Shared software breakpoints in a shared memory system |
US6886171B2 (en) * | 2001-02-20 | 2005-04-26 | Stratus Technologies Bermuda Ltd. | Caching for I/O virtual address translation and validation using device drivers |
JP3628265B2 (ja) * | 2001-02-21 | 2005-03-09 | 株式会社半導体理工学研究センター | マルチプロセッサシステム装置 |
US6829693B2 (en) | 2001-02-28 | 2004-12-07 | International Business Machines Corporation | Auxiliary storage slot scavenger |
US7017073B2 (en) * | 2001-02-28 | 2006-03-21 | International Business Machines Corporation | Method and apparatus for fault-tolerance via dual thread crosschecking |
US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US6874102B2 (en) * | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
EP1239369A1 (de) * | 2001-03-07 | 2002-09-11 | Siemens Aktiengesellschaft | Fehlertolerante Rechneranordnung und Verfahren zum Betrieb einer derartigen Anordnung |
US6754788B2 (en) * | 2001-03-15 | 2004-06-22 | International Business Machines Corporation | Apparatus, method and computer program product for privatizing operating system data |
US6751718B1 (en) * | 2001-03-26 | 2004-06-15 | Networks Associates Technology, Inc. | Method, system and computer program product for using an instantaneous memory deficit metric to detect and reduce excess paging operations in a computer system |
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 |
US6971043B2 (en) * | 2001-04-11 | 2005-11-29 | Stratus Technologies Bermuda Ltd | Apparatus and method for accessing a mass storage device in a fault-tolerant server |
US6862693B2 (en) * | 2001-04-13 | 2005-03-01 | Sun Microsystems, Inc. | Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step |
US6996750B2 (en) | 2001-05-31 | 2006-02-07 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for computer bus error termination |
US6799186B2 (en) * | 2001-10-11 | 2004-09-28 | International Business Machines Corporation | SLA monitor calendar buffering |
US7120901B2 (en) * | 2001-10-26 | 2006-10-10 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
US7039774B1 (en) * | 2002-02-05 | 2006-05-02 | Juniper Networks, Inc. | Memory allocation using a memory address pool |
US6832270B2 (en) * | 2002-03-08 | 2004-12-14 | Hewlett-Packard Development Company, L.P. | Virtualization of computer system interconnects |
US20030217054A1 (en) * | 2002-04-15 | 2003-11-20 | Bachman George E. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution |
KR100450320B1 (ko) * | 2002-05-10 | 2004-10-01 | 한국전자통신연구원 | 디지털 티브이용 영상변환과 오류자동보정 장치 및 방법 |
JP3606281B2 (ja) * | 2002-06-07 | 2005-01-05 | オムロン株式会社 | プログラマブルコントローラ及びcpuユニット並びに特殊機能モジュール及び二重化処理方法 |
US7155721B2 (en) | 2002-06-28 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for communicating information between lock stepped processors |
US7136798B2 (en) * | 2002-07-19 | 2006-11-14 | International Business Machines Corporation | Method and apparatus to manage multi-computer demand |
US20040044508A1 (en) * | 2002-08-29 | 2004-03-04 | Hoffman Robert R. | Method for generating commands for testing hardware device models |
DE10251912A1 (de) * | 2002-11-07 | 2004-05-19 | Siemens Ag | Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems |
GB2396446B (en) * | 2002-12-20 | 2005-11-16 | Picochip Designs Ltd | Array synchronization |
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 |
US7149923B1 (en) * | 2003-01-17 | 2006-12-12 | Unisys Corporation | Software control using the controller as a component to achieve resiliency in a computer system utilizing separate servers for redundancy |
US7779285B2 (en) * | 2003-02-18 | 2010-08-17 | Oracle America, Inc. | Memory system including independent isolated power for each memory module |
US7467326B2 (en) * | 2003-02-28 | 2008-12-16 | Maxwell Technologies, Inc. | Self-correcting computer |
JP2004302713A (ja) * | 2003-03-31 | 2004-10-28 | Hitachi Ltd | 記憶システム及びその制御方法 |
DE10328059A1 (de) * | 2003-06-23 | 2005-01-13 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung eines verteilten Systems |
US20050039074A1 (en) * | 2003-07-09 | 2005-02-17 | Tremblay Glenn A. | Fault resilient/fault tolerant computing |
US7779212B2 (en) * | 2003-10-17 | 2010-08-17 | Micron Technology, Inc. | Method and apparatus for sending data from multiple sources over a communications bus |
US7472320B2 (en) | 2004-02-24 | 2008-12-30 | International Business Machines Corporation | Autonomous self-monitoring and corrective operation of an integrated circuit |
US7321985B2 (en) * | 2004-02-26 | 2008-01-22 | International Business Machines Corporation | Method for achieving higher availability of computer PCI adapters |
US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
US20050193378A1 (en) * | 2004-03-01 | 2005-09-01 | Breault Richard E. | System and method for building an executable program with a low probability of failure on demand |
JP2005267111A (ja) * | 2004-03-17 | 2005-09-29 | Hitachi Ltd | 記憶制御システム及び記憶制御システムの制御方法 |
US7426656B2 (en) * | 2004-03-30 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Method and system executing user programs on non-deterministic processors |
JP4056488B2 (ja) * | 2004-03-30 | 2008-03-05 | エルピーダメモリ株式会社 | 半導体装置の試験方法及び製造方法 |
US8799706B2 (en) * | 2004-03-30 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Method and system of exchanging information between processors |
US20050240806A1 (en) * | 2004-03-30 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Diagnostic memory dump method in a redundant processor |
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 |
JP2005293427A (ja) * | 2004-04-02 | 2005-10-20 | Matsushita Electric Ind Co Ltd | データ転送処理装置及びデータ転送処理方法 |
US7237144B2 (en) * | 2004-04-06 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Off-chip lockstep checking |
US7296181B2 (en) * | 2004-04-06 | 2007-11-13 | Hewlett-Packard Development Company, L.P. | Lockstep error signaling |
US7290169B2 (en) * | 2004-04-06 | 2007-10-30 | Hewlett-Packard Development Company, L.P. | Core-level processor lockstepping |
GB0411054D0 (en) * | 2004-05-18 | 2004-06-23 | Ricardo Uk Ltd | Fault tolerant data processing |
US7392426B2 (en) * | 2004-06-15 | 2008-06-24 | Honeywell International Inc. | Redundant processing architecture for single fault tolerance |
US7590822B1 (en) | 2004-08-06 | 2009-09-15 | Xilinx, Inc. | Tracking an instruction through a processor pipeline |
US7346759B1 (en) | 2004-08-06 | 2008-03-18 | Xilinx, Inc. | Decoder interface |
US7243212B1 (en) * | 2004-08-06 | 2007-07-10 | Xilinx, Inc. | Processor-controller interface for non-lock step operation |
US7590823B1 (en) | 2004-08-06 | 2009-09-15 | Xilinx, Inc. | Method and system for handling an instruction not supported in a coprocessor formed using configurable logic |
US7546441B1 (en) | 2004-08-06 | 2009-06-09 | Xilinx, Inc. | Coprocessor interface controller |
US7404105B2 (en) | 2004-08-16 | 2008-07-22 | International Business Machines Corporation | High availability multi-processor system |
TW200609721A (en) * | 2004-09-03 | 2006-03-16 | Inventec Corp | Redundancy control system and method thereof |
US20060080514A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Managing shared memory |
JP4182948B2 (ja) * | 2004-12-21 | 2008-11-19 | 日本電気株式会社 | フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法 |
US7778812B2 (en) * | 2005-01-07 | 2010-08-17 | Micron Technology, Inc. | Selecting data to verify in hardware device model simulation test generation |
US7418541B2 (en) * | 2005-02-10 | 2008-08-26 | International Business Machines Corporation | Method for indirect access to a support interface for memory-mapped resources to reduce system connectivity from out-of-band support processor |
US7467204B2 (en) * | 2005-02-10 | 2008-12-16 | International Business Machines Corporation | Method for providing low-level hardware access to in-band and out-of-band firmware |
EP1715589A1 (en) * | 2005-03-02 | 2006-10-25 | STMicroelectronics N.V. | LDPC decoder in particular for DVB-S2 LDCP code decoding |
US20060222125A1 (en) * | 2005-03-31 | 2006-10-05 | Edwards John W Jr | Systems and methods for maintaining synchronicity during signal transmission |
US20060222126A1 (en) * | 2005-03-31 | 2006-10-05 | Stratus Technologies Bermuda Ltd. | Systems and methods for maintaining synchronicity during signal transmission |
US20060236168A1 (en) * | 2005-04-01 | 2006-10-19 | Honeywell International Inc. | System and method for dynamically optimizing performance and reliability of redundant processing systems |
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 |
US7549029B2 (en) * | 2005-05-06 | 2009-06-16 | International Business Machines Corporation | Methods for creating hierarchical copies |
DE102005038567A1 (de) | 2005-08-12 | 2007-02-15 | Micronas Gmbh | Multi-Prozessor-Architektur und Verfahren zum Steuern von Speicherzugriff bei einer Multi-Prozess-Architektur |
US8074059B2 (en) * | 2005-09-02 | 2011-12-06 | Binl ATE, LLC | System and method for performing deterministic processing |
US7519754B2 (en) * | 2005-12-28 | 2009-04-14 | Silicon Storage Technology, Inc. | Hard disk drive cache memory and playback device |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
JP4816911B2 (ja) * | 2006-02-07 | 2011-11-16 | 日本電気株式会社 | メモリの同期化方法及びリフレッシュ制御回路 |
WO2007123753A2 (en) | 2006-03-30 | 2007-11-01 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
FR2901379B1 (fr) * | 2006-05-19 | 2008-06-27 | Airbus France Sas | Procede et dispositif de consolidation par synchronisation logicielle dans les calculateurs des commandes de vol |
US8074109B1 (en) * | 2006-11-14 | 2011-12-06 | Unisys Corporation | Third-party voting to select a master processor within a multi-processor computer |
US8006029B2 (en) * | 2006-11-30 | 2011-08-23 | Intel Corporation | DDR flash implementation with direct register access to legacy flash functions |
US20080189495A1 (en) * | 2007-02-02 | 2008-08-07 | Mcbrearty Gerald Francis | Method for reestablishing hotness of pages |
EP2372554B1 (en) * | 2007-03-29 | 2013-03-20 | Fujitsu Limited | Information processing device and error processing method |
US7472038B2 (en) * | 2007-04-16 | 2008-12-30 | International Business Machines Corporation | Method of predicting microprocessor lifetime reliability using architecture-level structure-aware techniques |
US7743285B1 (en) * | 2007-04-17 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Chip multiprocessor with configurable fault isolation |
US8375188B1 (en) * | 2007-08-08 | 2013-02-12 | Symantec Corporation | Techniques for epoch pipelining |
US20090049323A1 (en) * | 2007-08-14 | 2009-02-19 | Imark Robert R | Synchronization of processors in a multiprocessor system |
JP2009087028A (ja) * | 2007-09-28 | 2009-04-23 | Toshiba Corp | メモリシステム及びメモリの読出し方法並びにプログラム |
JP5148236B2 (ja) | 2007-10-01 | 2013-02-20 | ルネサスエレクトロニクス株式会社 | 半導体集積回路及び半導体集積回路の制御方法 |
GB2454865B (en) * | 2007-11-05 | 2012-06-13 | Picochip Designs Ltd | Power control |
US20090133022A1 (en) * | 2007-11-15 | 2009-05-21 | Karim Faraydon O | Multiprocessing apparatus, system and method |
US7809980B2 (en) * | 2007-12-06 | 2010-10-05 | Jehoda Refaeli | Error detector in a cache memory using configurable way redundancy |
FR2925191B1 (fr) * | 2007-12-14 | 2010-03-05 | Thales Sa | Architecture de traitement numerique a haute integrite a multiples ressources supervisees |
US8243614B2 (en) * | 2008-03-07 | 2012-08-14 | Honeywell International Inc. | Hardware efficient monitoring of input/output signals |
US7996714B2 (en) * | 2008-04-14 | 2011-08-09 | Charles Stark Draper Laboratory, Inc. | Systems and methods for redundancy management in fault tolerant computing |
US8621154B1 (en) | 2008-04-18 | 2013-12-31 | Netapp, Inc. | Flow based reply cache |
US8161236B1 (en) | 2008-04-23 | 2012-04-17 | Netapp, Inc. | Persistent reply cache integrated with file system |
US8386664B2 (en) * | 2008-05-22 | 2013-02-26 | International Business Machines Corporation | Reducing runtime coherency checking with global data flow analysis |
US8281295B2 (en) * | 2008-05-23 | 2012-10-02 | International Business Machines Corporation | Computer analysis and runtime coherency checking |
CN104407518B (zh) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
US8285670B2 (en) * | 2008-07-22 | 2012-10-09 | International Business Machines Corporation | Dynamically maintaining coherency within live ranges of direct buffers |
WO2010016169A1 (ja) * | 2008-08-07 | 2010-02-11 | 日本電気株式会社 | マルチプロセッサシステム及びその制御方法 |
TW201015321A (en) * | 2008-09-25 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system and data trnsfer method |
US8762621B2 (en) | 2008-10-28 | 2014-06-24 | Micron Technology, Inc. | Logical unit operation |
JP5439808B2 (ja) * | 2008-12-25 | 2014-03-12 | 富士通セミコンダクター株式会社 | 複数バスを有するシステムlsi |
GB2466661B (en) * | 2009-01-05 | 2014-11-26 | Intel Corp | Rake receiver |
DE102009007215A1 (de) * | 2009-02-03 | 2010-08-05 | Siemens Aktiengesellschaft | Automatisierungssystem mit einem programmierbaren Matrixmodul |
JP2010198131A (ja) * | 2009-02-23 | 2010-09-09 | Renesas Electronics Corp | プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法 |
US8171227B1 (en) | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
GB2470037B (en) | 2009-05-07 | 2013-07-10 | Picochip Designs Ltd | Methods and devices for reducing interference in an uplink |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | Picochip Designs Ltd | A method and device in a communication network |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
US8966195B2 (en) * | 2009-06-26 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Direct memory access and super page swapping optimizations for a memory blade |
JP5676950B2 (ja) * | 2009-08-20 | 2015-02-25 | キヤノン株式会社 | 画像形成装置 |
GB2474071B (en) | 2009-10-05 | 2013-08-07 | Picochip Designs Ltd | Femtocell base station |
US8473818B2 (en) * | 2009-10-12 | 2013-06-25 | Empire Technology Development Llc | Reliable communications in on-chip networks |
DE102009050161A1 (de) * | 2009-10-21 | 2011-04-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Testen eines Systems mit zumindest einer Mehrzahl von parallel ausführbaren Softwareeinheiten |
US8516356B2 (en) | 2010-07-20 | 2013-08-20 | Infineon Technologies Ag | Real-time error detection by inverse processing |
GB2482869B (en) | 2010-08-16 | 2013-11-06 | Picochip Designs Ltd | Femtocell access control |
GB2484927A (en) * | 2010-10-26 | 2012-05-02 | Advanced Risc Mach Ltd | Provision of access control data within a data processing system |
US8443230B1 (en) * | 2010-12-15 | 2013-05-14 | Xilinx, Inc. | Methods and systems with transaction-level lockstep |
CN102621938A (zh) * | 2011-01-28 | 2012-08-01 | 上海新华控制技术(集团)有限公司 | 过程控制中的三重冗余控制系统及其方法 |
US8972696B2 (en) | 2011-03-07 | 2015-03-03 | Microsoft Technology Licensing, Llc | Pagefile reservations |
GB2489716B (en) | 2011-04-05 | 2015-06-24 | Intel Corp | Multimode base system |
GB2489919B (en) | 2011-04-05 | 2018-02-14 | Intel Corp | Filter |
GB2491098B (en) | 2011-05-16 | 2015-05-20 | Intel Corp | Accessing a base station |
JP5699057B2 (ja) * | 2011-08-24 | 2015-04-08 | 株式会社日立製作所 | プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス |
US8924780B2 (en) * | 2011-11-10 | 2014-12-30 | Ge Aviation Systems Llc | Method of providing high integrity processing |
US8832411B2 (en) | 2011-12-14 | 2014-09-09 | Microsoft Corporation | Working set swapping using a sequentially ordered swap file |
KR101947726B1 (ko) * | 2012-03-08 | 2019-02-13 | 삼성전자주식회사 | 영상 처리 장치 및 이의 영상 처리 방법 |
JP5850774B2 (ja) * | 2012-03-22 | 2016-02-03 | ルネサスエレクトロニクス株式会社 | 半導体集積回路装置及びそれを用いたシステム |
US9378098B2 (en) | 2012-06-06 | 2016-06-28 | Qualcomm Incorporated | Methods and systems for redundant data storage in a register |
JP6111605B2 (ja) * | 2012-11-08 | 2017-04-12 | 日本電気株式会社 | コンピュータシステム、コンピュータシステムの診断方法及び診断プログラム |
US9569223B2 (en) * | 2013-02-13 | 2017-02-14 | Red Hat Israel, Ltd. | Mixed shared/non-shared memory transport for virtual machines |
US10102148B2 (en) | 2013-06-13 | 2018-10-16 | Microsoft Technology Licensing, Llc | Page-based compressed storage management |
US9684625B2 (en) | 2014-03-21 | 2017-06-20 | Microsoft Technology Licensing, Llc | Asynchronously prefetching sharable memory pages |
JP6341795B2 (ja) * | 2014-08-05 | 2018-06-13 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ及びマイクロコンピュータシステム |
US9632924B2 (en) | 2015-03-02 | 2017-04-25 | Microsoft Technology Licensing, Llc | Using memory compression to reduce memory commit charge |
US10037270B2 (en) | 2015-04-14 | 2018-07-31 | Microsoft Technology Licensing, Llc | Reducing memory commit charge when compressing memory |
WO2016187232A1 (en) | 2015-05-21 | 2016-11-24 | Goldman, Sachs & Co. | General-purpose parallel computing architecture |
US11449452B2 (en) | 2015-05-21 | 2022-09-20 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
JP2017146897A (ja) * | 2016-02-19 | 2017-08-24 | 株式会社デンソー | マイクロコントローラ及び電子制御装置 |
US9595312B1 (en) | 2016-03-31 | 2017-03-14 | Altera Corporation | Adaptive refresh scheduling for memory |
CN110720095A (zh) * | 2017-04-06 | 2020-01-21 | 高盛有限责任公司 | 通用并行计算架构 |
US10802932B2 (en) | 2017-12-04 | 2020-10-13 | Nxp Usa, Inc. | Data processing system having lockstep operation |
CN108804109B (zh) * | 2018-06-07 | 2021-11-05 | 北京四方继保自动化股份有限公司 | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 |
US11099748B1 (en) * | 2018-08-08 | 2021-08-24 | United States Of America As Represented By The Administrator Of Nasa | Fault tolerant memory card |
US10824573B1 (en) | 2019-04-19 | 2020-11-03 | Micron Technology, Inc. | Refresh and access modes for memory |
US11609845B2 (en) * | 2019-05-28 | 2023-03-21 | Oracle International Corporation | Configurable memory device connected to a microprocessor |
US12105589B2 (en) * | 2022-02-23 | 2024-10-01 | Micron Technology, Inc. | Parity-based error management for a processing system |
CN114610472B (zh) * | 2022-05-09 | 2022-12-02 | 上海登临科技有限公司 | 异构计算中多进程管理方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5024046A (ja) * | 1973-07-04 | 1975-03-14 | ||
JPS5139503A (ja) * | 1974-09-20 | 1976-04-02 | Creusot Loire | |
JPS573148A (en) * | 1980-06-06 | 1982-01-08 | Hitachi Ltd | Diagnostic system for other system |
JPS63165950A (ja) * | 1986-12-27 | 1988-07-09 | Pfu Ltd | 共通メモリ方式 |
Family Cites Families (131)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1587572A (ja) * | 1968-10-25 | 1970-03-20 | ||
GB1253309A (en) * | 1969-11-21 | 1971-11-10 | Marconi Co Ltd | Improvements in or relating to data processing arrangements |
GB1308497A (en) * | 1970-09-25 | 1973-02-21 | Marconi Co Ltd | Data processing arrangements |
US3864670A (en) * | 1970-09-30 | 1975-02-04 | Yokogawa Electric Works Ltd | Dual computer system with signal exchange system |
SE347826B (ja) * | 1970-11-20 | 1972-08-14 | Ericsson Telefon Ab L M | |
US3810119A (en) * | 1971-05-04 | 1974-05-07 | Us Navy | Processor synchronization scheme |
BE790654A (fr) * | 1971-10-28 | 1973-04-27 | Siemens Ag | Systeme de traitement avec des unites de systeme |
US3760365A (en) * | 1971-12-30 | 1973-09-18 | Ibm | Multiprocessing computing system with task assignment at the instruction level |
DE2202231A1 (de) * | 1972-01-18 | 1973-07-26 | Siemens Ag | Verarbeitungssystem mit verdreifachten systemeinheiten |
US3783250A (en) * | 1972-02-25 | 1974-01-01 | Nasa | Adaptive voting computer system |
US3828321A (en) * | 1973-03-15 | 1974-08-06 | Gte Automatic Electric Lab Inc | System for reconfiguring central processor and instruction storage combinations |
CH556576A (de) * | 1973-03-28 | 1974-11-29 | Hasler Ag | Einrichtung zur synchronisierung dreier rechner. |
US4099241A (en) * | 1973-10-30 | 1978-07-04 | Telefonaktiebolaget L M Ericsson | Apparatus for facilitating a cooperation between an executive computer and a reserve computer |
FR2253432A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2253423A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
IT1014277B (it) * | 1974-06-03 | 1977-04-20 | Cselt Centro Studi Lab Telecom | Sistema di controllo di elaboratori di processo operanti in parallelo |
US4015246A (en) * | 1975-04-14 | 1977-03-29 | The Charles Stark Draper Laboratory, Inc. | Synchronous fault tolerant multi-processor system |
US4015243A (en) * | 1975-06-02 | 1977-03-29 | Kurpanek Horst G | Multi-processing computer system |
US4034347A (en) * | 1975-08-08 | 1977-07-05 | Bell Telephone Laboratories, Incorporated | Method and apparatus for controlling a multiprocessor system |
JPS5260540A (en) * | 1975-11-14 | 1977-05-19 | Hitachi Ltd | Synchronization control of double-type system |
US4224664A (en) * | 1976-05-07 | 1980-09-23 | Honeywell Information Systems Inc. | Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system |
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4456952A (en) * | 1977-03-17 | 1984-06-26 | Honeywell Information Systems Inc. | Data processing system having redundant control processors for fault detection |
JPS53116040A (en) * | 1977-03-18 | 1978-10-11 | Nec Corp | System controller |
US4358823A (en) * | 1977-03-25 | 1982-11-09 | Trw, Inc. | Double redundant processor |
US4101960A (en) * | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4187538A (en) * | 1977-06-13 | 1980-02-05 | Honeywell Inc. | Read request selection system for redundant storage |
GB1545169A (en) * | 1977-09-22 | 1979-05-02 | Burroughs Corp | Data processor system including data-save controller for protection against loss of volatile memory information during power failure |
IT1111606B (it) * | 1978-03-03 | 1986-01-13 | Cselt Centro Studi Lab Telecom | Sistema elaborativo modulare multiconfigurabile integrato con un sistema di preelaborazione |
US4270168A (en) * | 1978-08-31 | 1981-05-26 | United Technologies Corporation | Selective disablement in fail-operational, fail-safe multi-computer control system |
US4234920A (en) * | 1978-11-24 | 1980-11-18 | Engineered Systems, Inc. | Power failure detection and restart system |
US4257097A (en) * | 1978-12-11 | 1981-03-17 | Bell Telephone Laboratories, Incorporated | Multiprocessor system with demand assignable program paging stores |
US4253144A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4449183A (en) * | 1979-07-09 | 1984-05-15 | Digital Equipment Corporation | Arbitration scheme for a multiported shared functional device for use in multiprocessing systems |
US4428044A (en) * | 1979-09-20 | 1984-01-24 | Bell Telephone Laboratories, Incorporated | Peripheral unit controller |
US4315310A (en) * | 1979-09-28 | 1982-02-09 | Intel Corporation | Input/output data processing system |
DE2939487A1 (de) * | 1979-09-28 | 1981-04-16 | Siemens AG, 1000 Berlin und 8000 München | Rechnerarchitektur auf der basis einer multi-mikrocomputerstruktur als fehlertolerantes system |
NL7909178A (nl) * | 1979-12-20 | 1981-07-16 | Philips Nv | Rekenmachine met verspreide redundantie welke is verdeeld over verschillende isolatiegebieden voor fouten. |
FR2474201B1 (fr) * | 1980-01-22 | 1986-05-16 | Bull Sa | Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache |
US4342083A (en) * | 1980-02-05 | 1982-07-27 | The Bendix Corporation | Communication system for a multiple-computer system |
JPS56119596A (en) * | 1980-02-26 | 1981-09-19 | Nec Corp | Control signal generator |
US4351023A (en) * | 1980-04-11 | 1982-09-21 | The Foxboro Company | Process control system with improved system security features |
US4493019A (en) * | 1980-05-06 | 1985-01-08 | Burroughs Corporation | Pipelined microprogrammed digital data processor employing microinstruction tasking |
US4412281A (en) * | 1980-07-11 | 1983-10-25 | Raytheon Company | Distributed signal processing system |
US4369510A (en) * | 1980-07-25 | 1983-01-18 | Honeywell Information Systems Inc. | Soft error rewrite control system |
US4392196A (en) * | 1980-08-11 | 1983-07-05 | Harris Corporation | Multi-processor time alignment control system |
US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
US4375683A (en) * | 1980-11-12 | 1983-03-01 | August Systems | Fault tolerant computational system and voter circuit |
US4414624A (en) * | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
US4371754A (en) * | 1980-11-19 | 1983-02-01 | Rockwell International Corporation | Automatic fault recovery system for a multiple processor telecommunications switching control |
JPH0614328B2 (ja) * | 1980-11-21 | 1994-02-23 | 沖電気工業株式会社 | 共通メモリアクセス方式 |
US4430707A (en) * | 1981-03-05 | 1984-02-07 | Burroughs Corporation | Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks |
US4455605A (en) * | 1981-07-23 | 1984-06-19 | International Business Machines Corporation | Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices |
US4556952A (en) * | 1981-08-12 | 1985-12-03 | International Business Machines Corporation | Refresh circuit for dynamic memory of a data processor employing a direct memory access controller |
US4438494A (en) * | 1981-08-25 | 1984-03-20 | Intel Corporation | Apparatus of fault-handling in a multiprocessing system |
US4597084A (en) * | 1981-10-01 | 1986-06-24 | Stratus Computer, Inc. | Computer memory apparatus |
US4920540A (en) * | 1987-02-25 | 1990-04-24 | Stratus Computer, Inc. | Fault-tolerant digital timing apparatus and method |
US4453215A (en) * | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
IN160140B (ja) * | 1981-10-10 | 1987-06-27 | Westinghouse Brake & Signal | |
DE3208573C2 (de) * | 1982-03-10 | 1985-06-27 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | 2 aus 3-Auswahleinrichtung für ein 3-Rechnersystem |
US4497059A (en) * | 1982-04-28 | 1985-01-29 | The Charles Stark Draper Laboratory, Inc. | Multi-channel redundant processing systems |
DE3216238C1 (de) * | 1982-04-30 | 1983-11-03 | Siemens AG, 1000 Berlin und 8000 München | Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers |
JPS5914062A (ja) * | 1982-07-15 | 1984-01-24 | Hitachi Ltd | 二重化共有メモリ制御方法 |
DE3235762A1 (de) * | 1982-09-28 | 1984-03-29 | Fried. Krupp Gmbh, 4300 Essen | Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen |
NL8203921A (nl) * | 1982-10-11 | 1984-05-01 | Philips Nv | Multipel redundant kloksysteem, bevattende een aantal onderling synchroniserende klokken, en klokschakeling voor gebruik in zo een kloksysteem. |
US4667287A (en) * | 1982-10-28 | 1987-05-19 | Tandem Computers Incorporated | Multiprocessor multisystem communications network |
US4473452A (en) * | 1982-11-18 | 1984-09-25 | The Trustees Of Columbia University In The City Of New York | Electrophoresis using alternating transverse electric fields |
US4590554A (en) * | 1982-11-23 | 1986-05-20 | Parallel Computers Systems, Inc. | Backup fault tolerant computer system |
US4648035A (en) * | 1982-12-06 | 1987-03-03 | Digital Equipment Corporation | Address conversion unit for multiprocessor system |
US4541094A (en) * | 1983-03-21 | 1985-09-10 | Sequoia Systems, Inc. | Self-checking computer circuitry |
US4591977A (en) * | 1983-03-23 | 1986-05-27 | The United States Of America As Represented By The Secretary Of The Air Force | Plurality of processors where access to the common memory requires only a single clock interval |
US4644498A (en) * | 1983-04-04 | 1987-02-17 | General Electric Company | Fault-tolerant real time clock |
US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
US4577272A (en) * | 1983-06-27 | 1986-03-18 | E-Systems, Inc. | Fault tolerant and load sharing processing system |
US4646231A (en) * | 1983-07-21 | 1987-02-24 | Burroughs Corporation | Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor |
JPS6054052A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 処理継続方式 |
US4912698A (en) * | 1983-09-26 | 1990-03-27 | Siemens Aktiengesellschaft | Multi-processor central control unit of a telephone exchange system and its operation |
DE3334796A1 (de) * | 1983-09-26 | 1984-11-08 | Siemens AG, 1000 Berlin und 8000 München | Verfahren zum betrieb eines multiprozessor-steuerrechners, insbesondere fuer die zentralsteuereinheit eines fernsprech-vermittlungssystems |
US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
US4631701A (en) * | 1983-10-31 | 1986-12-23 | Ncr Corporation | Dynamic random access memory refresh control system |
US4607365A (en) * | 1983-11-14 | 1986-08-19 | Tandem Computers Incorporated | Fault-tolerant communications controller system |
US4783733A (en) * | 1983-11-14 | 1988-11-08 | Tandem Computers Incorporated | Fault tolerant communications controller system |
US4570261A (en) * | 1983-12-09 | 1986-02-11 | Motorola, Inc. | Distributed fault isolation and recovery system and method |
WO1985002698A1 (en) * | 1983-12-12 | 1985-06-20 | Parallel Computers, Inc. | Computer processor controller |
US4608688A (en) * | 1983-12-27 | 1986-08-26 | At&T Bell Laboratories | Processing system tolerant of loss of access to secondary storage |
US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US4625296A (en) * | 1984-01-17 | 1986-11-25 | The Perkin-Elmer Corporation | Memory refresh circuit with varying system transparency |
DE3509900A1 (de) * | 1984-03-19 | 1985-10-17 | Konishiroku Photo Industry Co., Ltd., Tokio/Tokyo | Verfahren und vorrichtung zum erzeugen eines farbbilds |
US4638427A (en) * | 1984-04-16 | 1987-01-20 | International Business Machines Corporation | Performance evaluation for an asymmetric multiprocessor system |
US4633394A (en) * | 1984-04-24 | 1986-12-30 | International Business Machines Corp. | Distributed arbitration for multiple processors |
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 |
US4959774A (en) * | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
JPS6184740A (ja) * | 1984-10-03 | 1986-04-30 | Hitachi Ltd | 汎用オブジエクトコ−ド生成方式 |
US4827401A (en) * | 1984-10-24 | 1989-05-02 | International Business Machines Corporation | Method and apparatus for synchronizing clocks prior to the execution of a flush operation |
AU568977B2 (en) * | 1985-05-10 | 1988-01-14 | Tandem Computers Inc. | Dual processor error detection system |
JPS61265660A (ja) * | 1985-05-20 | 1986-11-25 | Toshiba Corp | マルチプロセツサシステムにおける実行モ−ド切替え制御方式 |
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 |
US4751639A (en) * | 1985-06-24 | 1988-06-14 | Ncr Corporation | Virtual command rollback in a fault tolerant data processing system |
US4683570A (en) * | 1985-09-03 | 1987-07-28 | General Electric Company | Self-checking digital fault detector for modular redundant real time clock |
US4845419A (en) * | 1985-11-12 | 1989-07-04 | Norand Corporation | Automatic control means providing a low-power responsive signal, particularly for initiating data preservation operation |
JPS62135940A (ja) * | 1985-12-09 | 1987-06-18 | Nec Corp | スト−ル検出方式 |
US4733353A (en) | 1985-12-13 | 1988-03-22 | General Electric Company | Frame synchronization of multiply redundant computers |
JPH0778750B2 (ja) * | 1985-12-24 | 1995-08-23 | 日本電気株式会社 | 高信頼性コンピュータ方式 |
US4703452A (en) * | 1986-01-03 | 1987-10-27 | Gte Communication Systems Corporation | Interrupt synchronizing circuit |
US4773038A (en) * | 1986-02-24 | 1988-09-20 | Thinking Machines Corporation | Method of simulating additional processors in a SIMD parallel processor array |
US4799140A (en) * | 1986-03-06 | 1989-01-17 | Orbital Sciences Corporation Ii | Majority vote sequencer |
US4757505A (en) * | 1986-04-30 | 1988-07-12 | Elgar Electronics Corp. | Computer power system |
US4868832A (en) * | 1986-04-30 | 1989-09-19 | Marrington S Paul | Computer power system |
US4763333A (en) * | 1986-08-08 | 1988-08-09 | Universal Vectors Corporation | Work-saving system for preventing loss in a computer due to power interruption |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
IT1213344B (it) * | 1986-09-17 | 1989-12-20 | Honoywell Information Systems | Architettura di calcolatore a tolleranza di guasto. |
US4774709A (en) * | 1986-10-02 | 1988-09-27 | United Technologies Corporation | Symmetrization for redundant channels |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
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 |
US4831520A (en) * | 1987-02-24 | 1989-05-16 | Digital Equipment Corporation | Bus interface circuit for digital data processor |
US4967353A (en) | 1987-02-25 | 1990-10-30 | International Business Machines Corporation | System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated |
US4816989A (en) * | 1987-04-15 | 1989-03-28 | Allied-Signal Inc. | Synchronizer for a fault tolerant multiple node processing system |
CH675781A5 (ja) | 1987-04-16 | 1990-10-31 | Bbc Brown Boveri & Cie | |
US4800462A (en) * | 1987-04-17 | 1989-01-24 | Tandem Computers Incorporated | Electrical keying for replaceable modules |
US4868826A (en) * | 1987-08-31 | 1989-09-19 | Triplex | Fault-tolerant output circuits |
US4868818A (en) * | 1987-10-29 | 1989-09-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Fault tolerant hypercube computer system architecture |
AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
US4879716A (en) * | 1987-12-23 | 1989-11-07 | Bull Hn Information Systems Inc. | Resilient data communications system |
US4907232A (en) * | 1988-04-28 | 1990-03-06 | The Charles Stark Draper Laboratory, Inc. | Fault-tolerant parallel processing system |
US4937741A (en) * | 1988-04-28 | 1990-06-26 | The Charles Stark Draper Laboratory, Inc. | Synchronization of fault-tolerant parallel processing systems |
US4873685A (en) * | 1988-05-04 | 1989-10-10 | Rockwell International Corporation | Self-checking voting logic for fault tolerant computing applications |
US4965717A (en) | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5018148A (en) | 1989-03-01 | 1991-05-21 | Ncr Corporation | Method and apparatus for power failure protection |
US5020059A (en) | 1989-03-31 | 1991-05-28 | At&T Bell Laboratories | Reconfigurable signal processor |
-
1988
- 1988-12-13 US US07/283,573 patent/US4965717A/en not_active Expired - Lifetime
-
1989
- 1989-11-20 CA CA002003342A patent/CA2003342A1/en not_active Abandoned
- 1989-11-20 CA CA002003337A patent/CA2003337A1/en not_active Abandoned
- 1989-12-08 EP EP95111006A patent/EP0681239A3/en not_active Withdrawn
- 1989-12-08 AT AT89122708T patent/ATE158879T1/de active
- 1989-12-08 EP EP19890122707 patent/EP0372578A3/en not_active Withdrawn
- 1989-12-08 DE DE68928360T patent/DE68928360T2/de not_active Expired - Fee Related
- 1989-12-08 EP EP89122708A patent/EP0372579B1/en not_active Expired - Lifetime
- 1989-12-11 JP JP1322462A patent/JPH02202637A/ja active Pending
- 1989-12-11 JP JP1322461A patent/JPH079625B2/ja not_active Expired - Fee Related
-
1990
- 1990-03-19 EP EP90105103A patent/EP0447578A1/en not_active Withdrawn
- 1990-03-19 EP EP90105102A patent/EP0447577A1/en not_active Withdrawn
- 1990-03-20 AU AU52027/90A patent/AU628497B2/en not_active Expired - Fee Related
- 1990-12-17 US US07/629,698 patent/US5146589A/en not_active Expired - Lifetime
-
1991
- 1991-03-05 US US07/664,495 patent/US5276823A/en not_active Expired - Lifetime
- 1991-03-06 US US07/666,495 patent/US5193175A/en not_active Expired - Lifetime
-
1992
- 1992-11-24 US US07/982,074 patent/US5388242A/en not_active Expired - Lifetime
-
1994
- 1994-02-28 JP JP6054483A patent/JPH0713789A/ja active Pending
-
1995
- 1995-01-31 US US08/381,467 patent/US5588111A/en not_active Expired - Lifetime
-
1997
- 1997-03-10 US US08/815,997 patent/US5758113A/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5024046A (ja) * | 1973-07-04 | 1975-03-14 | ||
JPS5139503A (ja) * | 1974-09-20 | 1976-04-02 | Creusot Loire | |
JPS573148A (en) * | 1980-06-06 | 1982-01-08 | Hitachi Ltd | Diagnostic system for other system |
JPS63165950A (ja) * | 1986-12-27 | 1988-07-09 | Pfu Ltd | 共通メモリ方式 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107411B2 (en) | 2003-12-16 | 2006-09-12 | International Business Machines Corporation | Apparatus method and system for fault tolerant virtual memory management |
JP2016532970A (ja) * | 2013-08-31 | 2016-10-20 | 華為技術有限公司Huawei Technologies Co.,Ltd. | サーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバ |
US9785375B2 (en) | 2013-08-31 | 2017-10-10 | Huawei Technologies Co., Ltd. | Migrating data between memory units in server |
KR20150106144A (ko) * | 2014-03-11 | 2015-09-21 | 삼성전자주식회사 | 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
EP0372578A2 (en) | 1990-06-13 |
US4965717A (en) | 1990-10-23 |
US5588111A (en) | 1996-12-24 |
US5193175A (en) | 1993-03-09 |
EP0681239A2 (en) | 1995-11-08 |
US4965717B1 (ja) | 1993-05-25 |
US5146589A (en) | 1992-09-08 |
AU628497B2 (en) | 1992-09-17 |
EP0681239A3 (en) | 1996-01-24 |
US5276823A (en) | 1994-01-04 |
DE68928360D1 (de) | 1997-11-06 |
ATE158879T1 (de) | 1997-10-15 |
JPH079625B2 (ja) | 1995-02-01 |
EP0372578A3 (en) | 1992-01-15 |
JPH02202636A (ja) | 1990-08-10 |
EP0447578A1 (en) | 1991-09-25 |
EP0372579A2 (en) | 1990-06-13 |
EP0372579A3 (en) | 1991-07-24 |
EP0372579B1 (en) | 1997-10-01 |
DE68928360T2 (de) | 1998-05-07 |
EP0447577A1 (en) | 1991-09-25 |
AU5202790A (en) | 1991-09-26 |
US5388242A (en) | 1995-02-07 |
CA2003337A1 (en) | 1990-06-09 |
CA2003342A1 (en) | 1990-06-09 |
JPH02202637A (ja) | 1990-08-10 |
US5758113A (en) | 1998-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0713789A (ja) | フォールトトレラントコンピュータにおけるメモリ管理システム | |
US5890003A (en) | Interrupts between asynchronously operating CPUs in fault tolerant computer system | |
US5317726A (en) | Multiple-processor computer system with asynchronous execution of identical code streams | |
US5384906A (en) | Method and apparatus for synchronizing a plurality of processors | |
US5327553A (en) | Fault-tolerant computer system with /CONFIG filesystem | |
US5317752A (en) | Fault-tolerant computer system with auto-restart after power-fall | |
US6073251A (en) | Fault-tolerant computer system with online recovery and reintegration of redundant components | |
EP0433979A2 (en) | Fault-tolerant computer system with/config filesystem | |
US5845060A (en) | High-performance fault tolerant computer system with clock length synchronization of loosely coupled processors | |
US20050240806A1 (en) | Diagnostic memory dump method in a redundant processor | |
EP0683456B1 (en) | Fault-tolerant computer system with online reintegration and shutdown/restart | |
US5473770A (en) | Fault-tolerant computer system with hidden local memory refresh | |
Tamir et al. | The UCLA mirror processor: A building block for self-checking self-repairing computing nodes | |
KR19990057809A (ko) | 오류 방지 시스템 | |
CN112506701B (zh) | 一种基于三模lockstep的多处理器芯片错误恢复方法 | |
Tamir | Self-checking self-repairing computer nodes using the Mirror Processor | |
JPS62143149A (ja) | 計算機システムのメモリ管理ユニット | |
Lai | Computer Science Department Technical Report University of California |