JPH06208477A - オンライン再組込及び遮断/再始動を備えた故障許容コンピュータ - Google Patents
オンライン再組込及び遮断/再始動を備えた故障許容コンピュータInfo
- Publication number
- JPH06208477A JPH06208477A JP2405899A JP40589990A JPH06208477A JP H06208477 A JPH06208477 A JP H06208477A JP 2405899 A JP2405899 A JP 2405899A JP 40589990 A JP40589990 A JP 40589990A JP H06208477 A JPH06208477 A JP H06208477A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- memory
- global memory
- bus
- cpus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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
- G06F11/1441—Resetting or repowering
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Power Sources (AREA)
- Retry When Errors Occur (AREA)
Abstract
Uと、同じデータを二重に格納するCPUのアドレス空
間内の複数の同一メモリとを備えた故障許容型コンピュ
ータシステムを提供する。 【構成】システムは、CPU及びメモリモジュール内の
故障を検出して、良好な装置を用いて動作を継続しなが
ら、故障装置をオフラインにおく。故障装置はシステム
を遮断せずにシステム内に置き換え再組込みが可能であ
る。システムは、AC電源の故障時にシステムが順序よ
く遮断し、状態をディスクにセーブできるように、バッ
テリーバックアップを備えている。AC電源が遮断が完
了する時間までに回復した場合には、再始動手順により
電源故障時の状態が回復される。システムは、さらにハ
ードウェア要素を動的に管理するための疑似ファイルシ
ステムを備えている。
Description
に関し、特に、故障コンポーネントを検出及び再組込み
に関し、さらに、全ての故障許容多重プロセッサシステ
ム内の機能を構成するために用いれるファイルシステム
及び電源故障の事象における遮断及び再始動に関する。
冗長性を備えた各種コンピュータアーキテクチャにおい
て達成される。例えば、TMR(3重モジュラー冗長
性)システムでは、3つの別の主メモリ装置及び機能を
二重化する別のI/O装置を備えた、同じ命令ストリー
ムを実行する同じ3つのCPUを用いており、装置の内
のどれかが故障した場合であっても、システムは動作し
続ける。別の故障許容型システムが、タンデム・コンピ
ュータ・インコーポレイテッドに譲渡されたカッツマン
(Katzman)らにより出願された米国特許出願第4,1
18,496号の「多重プロセッサシステム(Multipro
cessor System)に開示されている。冗長システムにお
ける装置を同期させるためには色々な方法がある。例え
ば、「疎(loose)」同調の方法が開示されているが、
他方においては、ステータス・コンピュータ・インコー
ポレイテッドに譲渡された米国特許第4,453,21
5号の「故障許容計算用中央処理装置(Central Proces
sing Apparatus for Fault-Tolerant Computing)」に
開示されているような、単一クロックを用いたロック段
同調を採用した方法がある。「同調ボーティング(sync
hronization voting)」と呼ばれている技法が、デービ
ス及びウェイカリー(Davies & Wakerly)による「冗長
システムにおける同調及び整合(Synchronization and
Matching in Redundant Systems)」(IEEEコンピ
ュータトランザクション、1978年6月号、531頁
乃至539頁)に開示されている。冗長故障許容システ
ム内の割り込み同期の方法については、ヨンデア(Yond
ea)その他による1985年6月のフォルトトレラント
・コンピューティング(Fault-Tolerant Computing)に
おける第15回年次シンポジウムの議事録の246頁乃
至251頁における「疎同期化されたTMRシステムに
関する割り込みハンドラの実施(Implementation ofInt
errupt Handler for Loosely Synchronized TMR System
s)」に開示されている。「故障許容型実時間クロック
(Fault-Tolerant Real Time Clock)」に関する米国特
許第4,644,498号にはTMRコンピュータシス
テム内で用いる3重モジュラー冗長クロック構成が開示
されている。「多重冗長コンピュータのフレーム同調
(Frame Synchronization of Multiply Redundant Comp
uters)」に関する米国特許第4,733,353号
は、同期フレームを実行することにより周期的に同期化
される個別にクロックされる複数のCPUを用いた同期
化方法が開示されている。
システムの重要な特徴は、データの損失又は破壊無しに
電源を復活するためのシステム上で稼働するプロセスに
関する能力である。電源故障に起因する損失を防止する
ための一つの方法は、もちろん、電源故障自体を防止す
ることである。この目的のために、冗長AC電源供給及
び電源バックアップ装置を用いることが可能である。し
かし、電源バックアップ装置から供給可能な電力供給時
間には制限があるし、また格納電源装置の費用、寸法及
び重量に関する制限も存在するため、AC電源故障が生
じた場合にシステムを順序よく遮断することが好まし
い。
速のクロック速度で用いること及びより大きな容量を備
えることが可能となっており、さらにメモリ、ディスク
ドライブなどのコンピュータの他の要素も対応して廉価
となり、より大きな容量を備えることが可能となってく
るにつれて、高い信頼性を有するプロセッサの動作性能
及び費用も同じ潮流に乗ることが要求されてきている。
さらに、一般的に、コンピュータ産業におけるいくつか
のオペレーティングシステム上の標準化がアプリケーシ
ョンソフトウェアの有効性を飛躍的に増加させており、
同様の要求が高信頼性システムの分野でも要求されてき
ている。すなわち標準オペレーティングシステムが有効
でなければならない。
ような故障許容型コンピュータシステムでは、特注のオ
ペレーティングシステム及び各システム用に特別に書か
れたアプリケーションソフトウェアが、より広範に用い
られているアプリケーションソフトウェアのような一般
化されたオペレーティングシステムを用いる代わりに、
用いられてきている。従って、アプリケーションソフト
ウェアの種類は限定されており、しかもその使用には高
い費用がかかる。このために、説明してきたようなシス
テムでは、UNIXTMのような標準的オペレーティング
システムを使用することを企図している。
容型コンピュータシステムにおいては、システムは多く
の種類の構成で動作し続けることが可能である。CPU
モジュール、メモリモジュール又はI/Oモジュール
を、各コンポーネント部分が動作している間に、システ
ムから取り外し可能である。しかしながら、オペレーテ
ィングシステムは、ある時間における、システム構成が
何であるか、すなわちどのモジュールが存在しており、
全負荷で動作しているかに関する正確な記録を有してい
なければならない。しかしながら、UNIXTMシステム
の構成を調べることは困難である。このためには通常は
「/dev entry」が用いられるがこの「/deventry」入力
は、何がインストールされているかを示すのではなく
て、何がインストール可能であるかを示すものである。
UNIXシステムは、通常は、一連の特殊ファイル(/d
ev entry)を介してハードウェアコンポーネント及びソ
フトウェアモジュールにアクセスする。これらのファイ
ルはシステム管理者により作られて、システム構成が変
更されたときには常に正確に変更される必要がある。
的な目的は、特に故障許容型の改良型高信頼性コンピュ
ータシステムを提供することにある。さらに、本発明目
的は、高性能でありかつ低コストであり、特に通常は高
い冗長システムに伴うものである動作性能に対する負荷
を回避可能な、改良型冗長性故障許容型計算システムを
提供することにある。さらに、本発明の別な目的は、信
頼性、速度及びソフトウェア互換性の観点から測定され
た動作性能が、他のより低い動作性能を有するシステム
に比較してコスト面で改良されているような、高性能コ
ンピュータシステムを提供することにある。さらに、本
発明の目的は、要求時ページングを備えた仮想メモリ管
理を用いたオペレーティングシステムを実行可能であ
り、プロテクト(監視又は「カーネル(核)」)モード
を備え、特に多重プロセスを実行可能であり、しかもこ
れらが全て高水準の動作性能を有しているような、高信
頼性コンピュータシステムを提供することにある。さら
に、本発明の別目的は、故障したシステムのコンポーネ
ントを検出してそれらをオフラインに置き、システムを
遮断せずに、修復されたシステムコンポーネントを再組
込み可能な高信頼性冗長コンピュータシステムを提供す
ることにある。本発明のさらに別の目的は、特に故障許
容型の高信頼性コンピュータシステムにおける、改良さ
れた電源故障手続を提供することにある。さらに、本発
明の別の目的は、信頼性及び高い動作性能を有し低コス
トで、電源故障時の、冗長性、故障許容型計算システム
の改良された動作を提供することにある。さらに本発明
の別の目的は、特に故障許容型の高信頼性コンピュータ
システムの動作の改良された方法を提供することにあ
る。さらに別の目的は、信頼性及び高い動作性能を有し
低コストで、システムを動作し続けながら、故障したハ
ードウェアコンポーネントをシステムから外し置き換え
ることが可能な状況における冗長性故障許容型計算シス
テムの改良された動作を提供することにある。
ュータシステムは、通常は同じ指令ストリームを実行す
る3つの別個のCPUを採用し、さらに同じデータの複
製を格納する2つの別個の自己診断メモリモジュールを
備えている。3つのCPUによるメモリ参照は、2つの
メモリモジュールの各々3つの別個のポートに接続され
た3つの別個のバッファにより行われる。CPU上での
故障許容動作の動作性能負担の強要及び故障許容クロッ
クの高価かつ複雑なタイミング問題の強要を回避するた
めに、3つのCPUの各々はそれぞれ別個独立のクロッ
クを備えているが、メモリ参照のような事象を検出し、
全てが同時に機能を実行するまで他のCPUの前方にあ
るCPUの機能を停止することにより、緩やかに同期化
され;CPUが指令ストリームの同じ地点で割り込みを
実行することを保証するように、割り込みもCPUに対
して同期化されている。別個のCPU対メモリバッファ
を介する非同期式メモリ参照は、メモリ要求時に各メモ
リモジュールの3つの別のポートで採決(vote)される
が、CPUに戻るときには採決されることはない。
スから受け取った全ての書き込み要求を実行し、最新の
状態を保持するが、一方のメモリモジュールだけが読み
出し要求に応答してCPUに対して戻される読み出しデ
ータを提示する。読み出しデータを発生する一方のメモ
リモジュールは「第1」メモリとして想定され、他方の
メモリモジュールはバックアップ用として想定されてい
る。2つのメモリは共にI/O要求に応答してI/Oプ
ロセッサ(IOP)に読み出しデータを提示する。2つ
のメモリモジュールに対するメモリ要求は、採決が行わ
れている間に実行され、読み出しデータは、CPUの最
後の一つが要求を行った後の短い遅れでCPUに対して
有効となる。書き込み周期でさえも本質的にオーバーラ
ップ可能である。というのも、これらのメモリモジュー
ル用のDRAMが単に読み出し及び再生に対して書き込
みアクセスの大部分を使用しており、書き込み周期の最
後の部分に関するストーブが存在しない場合には、読み
出しは非破壊的であり、従って、第1のCPUが要求を
行うと同時に書き込み周期が開始されるが、最後の要求
が受信され、良好であると採決されるまでは、完了する
ことはないからである。非採決読み出しデータ戻り及び
オーバーラップアクセスのこれらの特徴により、複雑さ
及びコストを最少に抑えつつ、高い動作性能で故障許容
を動作させることが可能になる。
とにより実行可能であり、バスの各々は一方のメモリモ
ジュールのみに別個に接続されている。多くのI/Oプ
ロセッサが2つのI/Oバスに接続され、I/O装置は
一対のI/Oプロセッサに連結されるが、一度にはI/
Oプロセッサの内の一方のみによりアクセスされる。C
PUはメモリモジュールを介してI/Oプロセッサにア
クセス可能である(各アクセスはメモリアクセスが採決
されるように採決される。)が、I/OプロセッサはC
PUではなく、メモリモジュールにアクセス可能なのみ
である。I/OプロセッサはCPUに対して割り込みを
送ることのみが可能であり、これらの割り込みはCPU
に提示される前にメモリモジュールに集められる。I/
Oプロセッサが故障した場合には、対の内の他方が、C
PU、メモリモジュール及び残りのI/Oプロセッサを
備えたある制御レジスタを操作し、オペレーティングシ
ステムのデータ構成を変更することにより、システムの
ソフトウェアを介してこのI/Oシステム用のI/O装
置の制御を引き継ぐことが可能である。これにより、I
/O装置の故障許容及び再組込みを、システムを遮断さ
せずに行うことが可能である。
はいくつかのレベルに階層化されている。各CPUは、
ほぼCPUのクロック速度で動作する自身のキャッシュ
を備えている。さらに、各CPUは、他のCPUにより
アクセス可能な局所メモリを備えており、仮想メモリ管
理は、オペレーティングシステムのカーネル及び現タス
クに関するページを要求することはないが、それらが強
制された採決(ボーティング)のオーバーヘッド無しに
高速でアクセス可能な全ての3つのCPUに関する局所
メモリ内に存在することを許容する。次は、大域メモリ
として言及されるメモリモジュールレベルである。そこ
ではボーティング及び同期化が行われて、いくつかのア
クセス時間負担が導入される。けれども、大域メモリの
速度はディスクアクセスよりもかなり高速なので、この
レベルは、要求時ページングの第1レベルに関するディ
スクを用いずに、最高速領域内の最頻データを保持する
局所メモリでページスワッピングを行うために用いられ
る。
長性装置又はFRU(CPU、メモリモジュール、IO
P、電源モジュール、I/O制御器など)を、システム
を遮断せずに交換する能力である。従って、システム
は、コンポーネントが故障して交換が必要となっても、
連続的に使用するために有効である。さらに、より少な
いシステムコンポーネントで、すなわち、故障許容句ロ
ッキングを必要とせずに、3つの代わりにわずか2つの
メモリを用いて、ボーティング回路を最少にした高水準
故障許容を獲得する能力は、故障するコンポーネントを
減少させることを意味し、信頼性を強化する。すなわ
ち、コンポーネントが少ないので故障も少なく、故障が
あった場合でも、、コンポーネントをシステムを遮断さ
せずに置き換える間、システムを稼働させるべくコンポ
ーネントを分離可能である。
許容性及び非常に高いシステム有効性に不可避なアプリ
ケーションに関するデータ保全性を提供する。故障許容
性は、冗長プロセッサ及び、二重I/Oを備えたメモリ
及び大容量格納システム(例えば、鏡面ディスクを含
む)、冗長バッテリーバックアップを備えた冗長割り込
み不能電源供給を介して達成される。故障検出及びモジ
ュール不能化及び再組込みに関する方法により、ハード
ウェア故障が存在しても、データの保全性と妥協せずに
動作を継続することが可能になる。
ュール上の電源オン自己診断を実行し、次の各行程を含
む、モジュール依存同期化アクティビティを実行するこ
とにより検査可能である。すなわち、(1) CPUに関
し、2つの良好CPUモジュールの現状態がセーブさ
れ、全ての3つのモジュールが同期化されて、大域メモ
リからの同じ指令ストリームの実行が開始され、この指
令ストリームは大域メモリに対する2つの良好なCPU
の局所メモリの内容を読み出し、全ての3つのCPUに
局所メモリのデータを書き戻す複写ルーチンであり;
(2) メモリモジュールに関し、交換モジュールが良好な
メモリの内容をCPU上の局所メモリに複写し、それら
の内容を2つのメモリモジュールに再複写し、この機能
は通常のシステム処理でブロック転送及び時分割により
実行され、その間にCPU又はI/Oプロセッサが再組
込みが2つのメモリモジュールで実行されている間に生
じたことを書き込み;(3) I/Oプロセッサが新しいI
/Oプロセッサ上のインタフェース及びI/Oプロセッ
サレジスタを起動させ、I/O制御器を交換I/Oプロ
セッサに再割り当てすることにより再組込みされ;(4)
交換I/O制御器の再組込みには、電源アップ、I/O
プロセッサに対する割当て、ホスト及び制御器データ構
造の再起動が含まれ;(5) I/O装置の再組込みには、
装置が接続される(ユーザレベルのソフトウェアが可能
になる)I/O制御器に割当てられるオペレーティング
システムの装置ドライバにより実行される装置特殊アク
ティビティが含まれる。
いる限り、複数のハードウェア故障が存在しても機能し
続ける。すなわち、最少構成は、(1) 3つの内の2つの
CPU;(2) 2つの内の1つのメモリモジュール;(3)
I/Oプロセッサの1つ;(4) ディスクサブシステムの
1つ;及び(5) 上述の構成を支援するための適当な電源
サブシステムモジュールである。
タを検出して、壊れたデータの永久保存を自動的に禁止
するために用いることも可能である。各種の故障検出機
構がシステムにおいて用いられる。該故障検出機構は、
(1) (CPU及びメモリ領域内の)反復動作が採決され
て高いデータ保全性を確保するために必要な回路を検査
する回数を減少させ;(2) エラー検出コードがデータ格
納及び転送(パリティ、データのブロック上の検査合計
を含む)に関して用いられ;(3) (サービスに関する要
求が監視され、刻時され、状態報告され)ハードウェア
モジュールの間の通信のタイミングが検査され;(4) 自
己診断回路が用いられ;(5) ソフトエラーが監視され報
告される、各ステップが含まれる。
ータシステムは、AC電源故障時に、システムが順序通
りの遮断を実行して、状態をディスクにセーブするため
の電源バックアップを含む電源供給システムを用いてい
る。再始動手順は、遮断が生じる時までにAC電源が回
復した場合には、電源故障の時に存在した状態を回復す
る。
ピュータシステムは、動的にハードウェアコンポーネン
トを管理するための疑似ファイルシステムを用いてい
る。ファイルシステム内の標準的な階層ディレクトリと
して表れるディレクトリには、各コンポーネントに関す
るファイルが含まれる。各ファイルはハードウェアコン
ポーネント又はソフトウェアモジュールをマップする。
疑似ファイルシステムの階層は、システム機能中に決定
され、ソフトウェア又はハードウェア構成が変更する度
に自動的に更新される。ここに提示する階層的方法は、
コンポーネントの間の関係を説明するための自然な方法
を提供する。システムの現状態の正確なマップはファイ
ルをリスティングするための標準的なツールを用いて見
ることが可能である。ここでは「/config」フィルシス
テムと呼ばれる疑似ファイルシステムは、UNIXのフ
ァイルシステムスイッチ内でUNIX流ファイルシステ
ムとして実行される。内部的には「/conifg」ファイル
は一組のサブシステム内にグループ化される(すなわ
ち、ソフトウェア、CPU、メモリ装置、I/Oプロセ
ッサなどに関するサブディレクトリ)ないにグループ化
される。各ファイルは、それが表すサブシステム及びコ
ンポーネントに関する情報を核のする情報ノード(inod
e)により表される。ファイルシステムが読み出し、書
き込み又は修正を要求する場合には、「inode」が対応
するサブシステムに対してパスされる要求を受け取る。
サブシステムからの戻り状態はファイルシステム要求か
らの状態として戻される。オペレーティングシステムが
システム構成の変更(すなわち、コンポーネントの故
障)を検出すると「/config」ファイルシステム内の対
応する「inode」が変更される。
許請求の範囲に記載されている。しかしながら、他の特
徴及び利点と同時に、本発明自体については、添付図面
との関連において、以下の実施例に関する詳細な説明に
おいて言及される。
コンピュータシステムが、CPU−A、CPU−B、C
PU−Cとして示された3つの同一プロセッサ11,1
2,13を備えた実施例として示されている。各CPU
は論理プロセッサとして動作する。3つのCPUは典型
的には全て同じ指令ストリームを実行しない唯一の時間
は、電源アップの自己試験、診断などの動作時である。
3つのプロセッサは、メモリ−#1及びメモリ−#2と
して示された2つのメモリモジュール14,15に接続
されている。各メモリは、同じ論理アドレス空間内に同
じデータを格納している。好適な実施例においては、プ
ロセッサ11,12及び13のそれぞれは、このメモリ
を含むプロセッサのみがアクセス可能な自身の局所メモ
リ16を含んでいる。図1は、本発明に基づく再組込
み、電源故障及び再始動のような特徴を備えた種類のコ
ンピュータシステムを示している。もちろん、これらの
特徴は、冗長性を有さないより一般的な型のシステムで
用いることも可能であるが、故障許容許容ステムにおい
てより好適な用途を見いだすであろう。
各プロセッサ11,12及び13は自身の個別クロック
発信器17を備えている。この実施例では、プロセッサ
は「ロックステップ」で稼働せず、代わりに緩やかに同
期化される。すなわち、外部メモリ参照などの事象を用
いてCPUを同期化させる。外部割り込みは、各プロセ
ッサから他の2つに対する割り込み要求及び状態を結合
するための一組のバス18を用いる技法により3つのC
PU内で同期化される。プロセッサCPU−A、CPU
−B及びCPU−Cのそれぞれは3つの割り込み要求、
すなわち自身のものと他のCPUから受け取った2つの
ものとに応答して、実行ストリームの同じ地点でCPU
に割り込みを提示する。メモリモジュール14,15は
メモリ参照を採決し、メモリ参照は全てのCPUが同じ
要求を成した場合にのみ(故障だとして)許可される。
このようにして、プロセッサは外部事象(メモリ参照)
時に同期化されて、結果的にプロセッサは典型的には同
じ指令ストリームを同じシーケンスで実行するが、同期
化事象の間の時間の整合されたクロック周期の間に行う
必要はなくなる。さらに、外部割り込みは同期化され
て、各CPUの指令ストリームの同じ地点で実行され
る。
よりメモリ−#1モジュール14及びメモリ−#2モジ
ュール15に接続される。同様にして、CPU−Bはバ
ス22によりモジュール14及び15に接続され、CP
U−Cはバス23によりメモリモジュールに接続され
る。これらのバス21,22,23は、それぞれ、32
ビット多重化アドレス/データバス、指令バス及びアド
レス及びデータストローブに関する制御ラインを含んで
いる。CPUはバス21,22,23の制御を有してお
り、調停(arbitration)、又はバス要求及びバス許諾
(bus-grat)は存在しない。
は、個別に別の入力/出力バス24又は25に接続さ
れ、これらのバスのそれぞれは、2つ(又はそれ以上)
の入力/出力プロセッサ26及び27に接続される。シ
ステムは、特別のシステム構成に必要なI/O装置を受
け入れるために必要な多重I/Oプロセッサを備えるこ
とも可能である。入力/出力プロセッサ26及び27の
それぞれは、バス28に接続され、各バス28は、「V
MEbusTM」のような標準I/O制御器30とのインタ
フェースを行うための1又はそれ以上のバスインタフェ
ースモジュール29に接続される。各バスインタフェー
スモジュール29はバス28の内の2つに接続されて、
I/Oプロセッサ26又は27の内の一方の故障、又は
バスチャネル28の内の1つの故障が許容される。I/
Oプロセッサ26,27は、メモリモジュール14及び
15を介してCPU11,12,13によりアドレス可
能であり、メモリモジュールを介してCPUに割り込み
信号を送ることが可能である。ディスクドライブ、CR
Tスクリーン及びキーボードを備えた端末、及びネット
ワークアダプタは、典型的には制御器30により動作さ
れる周辺機器である。制御器30はメモリモジュール1
4及び15に対するDMA型参照を成すことが可能であ
り、データブロックを転送する。I/Oプロセッサ2
6,27などの各々は、バス要求、バス許諾などための
メモリモジュールの1つに直接接続された別個のライン
を備えており、これらのポイント対ポイント接続は「ラ
ジアル(radial)」と称されており、ラジアルライン3
1のグループ内に含まれる。
12,13の内の1つ、各メモリモジュール14,15
及び各I/Oプロセッサ26,27に接続されて、各素
子の状態に関する情報を提供する。この状態バスは、C
PU、メモリモジュール及びI/Oプロセッサが現在シ
ステム内にあるかについての情報を提供しており、この
情報は、本発明の1つの特徴に基づいて「/config」フ
ァイルシステム内に保持される。
に接続する応答/状態バス33は別個のラインを含んで
おり、このラインにより、モジュール14及び15は、
メモリ要求がCPUにより作られて、同時に状態フィー
ルドが送られて指令の状態及び正確に実行されているか
どうかについて報告を行う場合に、CPUに対して応答
信号を送る。メモリモジュールは大域メモリから読み出
された又は大域メモリに書き込まれたデータに関するパ
リティをチェックするだけでなく、I/Oバス24及び
25に対する又はI/Oバス24及び25からのメモリ
モジュールを介して送られるデータに関するパリティも
チェックし、さらに命令の有効性についてもチェックを
行う。これらのチェックがCPU11,12,13に対
して報告されるのはバス33内の状態ラインを介してで
あり、エラーが生じた場合には、故障ルーチンに入って
故障したコンポーネントを切り離す。
大域メモリに同じデータを格納し、二重に各メモリ参照
を行うように動作するにもかかわらず、これらのメモリ
モジュールの一方は、任意の時点において、第1メモリ
として想定され、他方のものはバックアップとして想定
されている。メモリ書き込み動作は、2つのメモリが共
にカレントにあるように2つのメモリモジュールにより
実行され、メモリ読み出し動作は2つのメモリモジュー
ルにより実行されるが、第1モジュールのみが正確にバ
ス21,22,23に戻される読み出しデータをロード
し、第1メモリモジュールのみが多重主バス24及び2
5に関する調停を制御する。同じ動作を行う第1及びバ
ックアップモジュールを保持するために、バス34第1
モジュールからバックアップモジュールへと制御情報を
伝達する。いずれかのモジュールがブートアップ時に第
1モジュールとしての役割を果たすものと仮定すれば、
この役割は、ソフトウェアの制御により動作の間切換可
能である。この役割はさらに、選択されたエラー条件が
CPUその他のシステムのエラー応答部品により検出さ
れた場合に、切換可能である。
モリモジュール14及び15により採決される。CPU
が割り込み状態(但し、機能停止はしない)となる場合
には、それらは、割り込みバス35内の個々のラインに
よってメモリモジュールに対して割り込み要求信号を送
り、CPUからの3つの割り込み要求が採決される。全
ての割り込みが採決されると、メモリモジュールのそれ
ぞれが、バスを介して3つのCPUに対して採決された
割り込み信号を送る。この割り込みの採決はCPUの動
作をチェックするように機能する。3つのCPUは内部
CPUバス18を介して採決された割り込みCPU割り
込み信号を同期する。この割り込み同期はどのCPUを
も停止させることなく行われる。
プロセッサ11,12,13の内の1つがさらに詳細に
示されている。好適な実施例においては、3つの全ての
CPUモジュールが同じ構造であり、ここではCPU−
Aのみが示されている。コストを適当な範囲に保ち、既
に展開されているソフトウェア及びオペレーティングシ
ステムにアクセス可能にするために、商業的に流通して
いるマイクロプロセッサを用いることが好ましく、多く
の装置から選択可能である。RISC(少ない命令セッ
ト)アーキテクチャは上述の緩い同期を実行することに
関していくつかのメリットを有している。しかし、モト
ローラ社の68030デバイスや、インテル社の803
86デバイス(20MHz及び25MHzで稼働する)
のようなより一般的なCICS(複雑な命令セット)マ
イクロプロセッサを用いることも可能である。高速32
ビットRISCマイクロプロセッサ送致は、3つのタイ
プを基本にいくつかのメーカーから販売されている。モ
トローラ社は部品番号88000のような送致を製造し
ており、MIPSコンピュータ・システムズ社などはM
IPSタイプと呼ばれているチップを製造しており、サ
ン・マイクロシステムズ社はSPARCTM(スケール可
能プロセッサアーキテクチャ)タイプの装置を製造して
いる。例えば、カリフォルニア州、サン・ノゼのサイプ
レス・セミコンダクタ社は、SPARC標準をサポート
し、33MHzのクロックを有し、20MIPS(10
0万回の指令/毎秒)で動作する部品番号CY7C60
1を製造しており、さらに富士通社は、同様にSPAR
C標準をサポートする、部品番号S−25である、CM
OS−RISCを製造している。
CPUボード又はモジュールは、この場合には、MIP
Sコンピュータ・システムズ社により設計され、インテ
グレーテッド・デバイス・テクノロジー・インコーポレ
イテッド社により製造されたR2000のようなマイク
ロプロセッサチップ40を採用している。R2000装
置は、16.67MHzのクロック割合で12MIPS
の高性能を発揮するRISCアーキテクチャを用いた3
2ビットプロセッサである。代わりに、この装置の高速
バージョンである、25MHzクロック割合で20MI
PSを発揮するR3000を用いることも可能である。
プロセッサ40は、物理的アドレスに対する論理の変換
をキャッシュするための変換ルックアサイドバッファを
含む、メモリ管理用に用いられるコプロセッサである。
プロセッサ40は、データバス41、アドレスバス42
及び制御バス43を備えた局所バスに接続されている。
個々の命令及びデータキャッシュメモリ44及び45箱
の局所バスに接続されている。これらのキャッシュは、
それぞれ、例えば64Kバイトの寸法を有しており、プ
ロセッサ40の単一のクロック周期内でアクセスされ
る。数値又は浮動小数点コプロセッサ46が、このタイ
プの計算にさらに付加性能が必要な場合には、局所バス
に接続される。この数値プロセッサ装置は、商業的に
は、部品番号R2010としてMIPSコンピュータ・
システムズ社より販売されている。局所バス41,4
2,43は、書き込みバッファ50及び読出しバッファ
51を介して内部バス構造に接続されている。この書き
込みバッファは、商業的には部品番号R2020として
販売されており、このバッファは、書き込み動作に関す
る書き込みバッファ50内のデータ及びアドレスを格納
した後にも、書き込みが完了するまで機能停止周期を実
行することなく、ラン周期を実行し続ける。
えて、書き込みバッファ50をバイパスする書き込み動
作をプロセッサ40に実行させるための経路が設けられ
る。この経路は、ソフトウェア選択の下で、プロセッサ
に同期的書き込みを行わせるための書き込みバッファバ
イパス52である。書き込みバッファバイパス52が使
用許可され(書き込みバッファ50は使用許可されな
い)、プロセッサが書き込みを実行すると、プロセッサ
は書き込みが完了するまで機能を停止する。これとは逆
に、書き込みが、書き込みバッファバイパス52がしよ
う不許可状態で実行された場合には、データは(書き込
みバッファが一杯にならない限り)書き込みバッファ5
0内に書き込まれるので、プロセッサは機能を停止しな
い。プロセッサ40が書き込み動作を実行する時に書き
込みバッファ50が使用許可されると、書き込みバッフ
ァ50はバス41からの出力データ及びバス42からの
アドレスをバス43からの制御と共に捕捉する。書き込
みバッファ50は、4つのデータアドレスセットを持続
することが可能である。書き込みバッファはプロセッサ
チップ40のクロック17と同期して駆動する。プロセ
ッサ対バッファ転送は同期的でありプロセッサの機械周
期割合で行われる。書き込みバッファ50は、それが一
杯でデータにアクセスできない場合に、プロセッサに信
号を送る。プロセッサ40による読み出し動作は、4つ
のディープ書き込みバッファ50に含まれるアドレスに
対してチェックされ、読み出しがメモリ16又は大域メ
モリに対して書き込まれる書き込みバッファ内で待機す
るデータワードの1つに対して試みられる。
が、データバス53、アドレスバス54及び制御バス5
5を備えた内部バス構造に接続される。局所メモリ16
が、この内部バスによってアクセスされ、内部バスに接
続されたバスインタフェース56がシステムバス21
(又は他のCPUのバス22又は23)にアクセスする
ために用いられる。(局所バスのバス41及び42から
引き出された)内部バスの別個のデータ及びアドレスバ
ス53及び54が、システムバス21内の多重アドレス
/データバス57に変換されて、指令及び制御ライン
が、対応して、この外部バス内の指令ライン58及び制
御ラインに変換される。
に、メモリモジュール14及び15から確認/状態ライ
ン33を受け取る。このライン33においては、別個の
状態ライン33−1又は33−2が、モジュール14及
び15のそれぞれから接続されて、2つのメモリモジュ
ールからの応答が、CPU及び大域メモリの間で、転送
(読み出し又は書き込み)の事象について評価される。
ッサ40の3又は4の機械周期内でアクセス可能なRA
Mの8メガバイトから成る。このアクセスはこのCPU
のクロック17と同期して、他方、モジュール14及び
15にタするメモリアクセス時間は局所メモリよりも大
きく、メモリモジュール14及び15に対するアクセス
は非同期的であり、全てのCPUを待機することにより
強制される同期オーバーヘッドに従って、要求、さらに
採決を形成する。比較のため、I/Oプロセッサ26,
27,29を介する典型的な市販のディスクメモリに対
するアクセスは、ミリ秒で測定されるが、モジュール1
4及び15に対するアクセスよりも相当に遅い。このよ
うに、CPUチップ40によりメモリアクセスの階層が
形成され、最も高次のものは命令及びデータキャッシュ
44及び45であり、64Kバイトのキャッシュサイズ
及び好適なフィルアルゴリズムを用いた場合に、約95
%のヒット率を示す。2番面に高次なものは、局所メモ
リ16であり、再び、現在の仮想メモリ管理アルゴリズ
ムを用いることにより、約95%のヒット率が各メモリ
参照に関して獲得され、それに対してキャッシュのミス
が生じるが、局所メモリ16内のヒットも、例えば、局
所メモリサイズが8メガバイトの場合に発見される。結
果的に、プロセッサチップ40の観点からは、99%以
上のメモリ参照(I/O参照ではない)が同期的であ
り、それは、3又は4の機械周期において、または同じ
機械周期において生じるのである。局所メモリ16は、
アドレスバス54からのアドレス及び、制御バス55か
らのアドレスストローブを受け取り、別個の行及び列の
アドレス、RAS及びCAS制御を、例えば、局所メモ
リ16が、通常用いられる多重アドレッシングを備えた
DRAMを用いている場合に、発生する。データは、デ
ータバス53を介して局所メモリから書き込まれ、又は
読出される。さらに、いくつかのレジスタ61、さらに
NVRAMのような不揮発性メモリ62、及びオペレー
ティングシステムで用いられるような高速PROM63
などが、内部バスによりアクセスされる。メモリのこの
部分の中には、パワーオン時にのみ用いられるものがあ
り、さらに、オペレーティングシステムによって用いら
れるものもあり、キャッシュ44内でほとんど連続的に
用いることが可能なものもある。また、メモリマップの
非キャッシュ部分内で用いることが可能なものもある。
ル内の割り込み回路65から制御バス43又は55のピ
ンの1つによりプロセッサ40に与えられる。この種の
割り込みは、回路65内で採決されて、割り込みがプロ
セッサ40により実行される前に、3つの全てのCPU
が割り込みを提示されるかどうかが判断される。このた
めに、回路65は、他の2つのCPU12及び13から
割り込み中入力66を受け取り、他の2つのCPUにラ
イン67を介して割り込み中信号を送る。これらのライ
ンはCPU11,12,13を接続するバス18の一部
である。また、他の種類の割り込み、特にCPUにより
発生された割り込みを採決するために、回路65は、こ
のCPUからの割り込み要求をバス35内のライン68
により2つのメモリモジュール14及び15に送ること
ができ、次いで、ライン69及び70を介してメモリモ
ジュールからの個別採決された割り込み信号を受け取
る。2つのメモリモジュールは、活動される外部割り込
みを提示する。キーボードやI/Oチャネル28上の1
つに乗っているディスクドライブのような外部ソース内
で発生された割り込みは、例えば、CPU11,12,
13の内の1つが、池に説明するように、命令ストリー
ム内の同じポイントにくるまで、回路65からチップ4
0の割り込みピンに提示されることはない。
によりクロックされるので、プロセッサ40を同期に周
期的に引き戻すためのいくつかの機構を設ける必要があ
る。クロック発信機は、同じ周波数、例えば16.67
MHzであるにもかかわらず、これらの装置の許容度は
約25ppm(parts per million)であり、プロセッサ
は、潜在的に、周期的に同期に戻されない限り、位相を
外れて多くの周期をもつことになる。もちろん、外部割
り込みがCPUに生じる毎に、(割り込み同期機構によ
り)それらの命令ストリームの同じポイントで割り込ま
れるという意味で同期される。しかしこれは周期カウン
トを同期させることはない。メモリモジュール14及び
15内の採決メモリ参照の機構は、後で説明するよう
に、CPUを(実時間で)同期させる。しかしながら、
メモリ参照が生じないようないくつかの条件下では長い
周期がかかり、別の機構を用いて機能停止周期を導入し
て、プロセッサ40を同期に引き戻す。周期カウンタ7
1がクロック17及び制御バス43を介してプロセッサ
40の制御ピンに接続されて、実行周期(機能停止周期
ではない)にある機械周期をカウントする。このカウン
タ71は、(水晶発信機の特殊許容差を考慮にいれて)
CPUの間で最大許容ドリフトが生じる間の周期を提示
するために選択される最大カウント値を備えたカウント
レジスタを含んでいる。このカウントレジスタのオーバ
ーフロー運動が起動されて、より遅い1又は2以上のプ
ロセッサが捕捉されるまで、より速いプロセッサの機能
を停止する。このカウンタ71は、同期がメモリ参照に
より同期される時には常にメモリモジュール14及び1
5に対してリセットされる。また、再生カウンタ72が
採用されて、後述するように、局所メモリ16上で再生
周期を実行する。さらに、カウンタ73は、カウンタ7
1のように、機能停止周期ではなく実行周期にある機械
周期をカウントする。しかし、このカウンタ73は、メ
モリ参照によってリセットされない。カウンタ73は、
後述するように、割り込み同期に対して用いられ、この
目的のために、割り込み同期回路65に対して出力信号
CC−4及びCC−8を送るように用いられる。
備えており、これはメモリ対メモリ指令をサポートはし
ておらず、メモリ対レジスタ又はレジスタ対メモリ指令
(すなわち、ロード又は格納)のみをサポートする。頻
繁に用いられるデータ及び現在実行されているコードを
局所メモリ内に保持することが重要である。従って、ブ
ロック転送動作が、バスインタフェース56に接続され
たDMA状態マシン74により提供される。プロセッサ
40がワードをDMA回路74内のレジスタに書き込
み、命令として機能し、この回路74内のレジスタに開
始アドレス及びブロック長さを書き込む。ある実施例で
は、マイクロプロセッサは、DMA回路が優勢になって
ブロック転送を実行して、必要なアドレス、命令及びス
トローブをバス53−55及び21上に送り出すまで、
機能停止する。プロセッサ40によりこのブロック転送
を起動するために実行される命令は、DMA回路74内
のレジスタから読み出し可能である。UNIXオペレー
ティングシステム内のメモリ管理は要求ページングに依
存しているので、これらのブロック転送は、大部分、大
域及び局所メモリ及びI/Oトラフィックの間を動かさ
れるページである。ページは4Kバイトである。もちろ
ん、バス21,22,23は、CPU及び大域メモリの
間の単一ワードの読み出し及び書き込みをサポートして
いる。言及しているブロック転送は局所及び大域メモリ
の間で可能であるのみである。
のマイクロプロセッサ40のR2000又はR3000
タイプが示されている。この装置は、32の32ビット
汎用レジスタ76、32ビットALU77、ゼロ−64
ビットシフタ78及び32×32積算/除算回路79を
含む主32ビットCPU75が示されている。このCP
Uは、関連する増分器及び加算器を備えたプログラムカ
ウンタ80も備えている。これらのコンポーネントは、
プロセッサバス構造81に接続され、プロセッサバス構
造81は、局所バス41及び、データバス41を介して
取り込まれる命令を実行する制御論理を備えた命令デコ
ーダ82に接続されている。32ビット局所アドレスバ
ス42は、オンチップメモリ管理コプロセッサ内の変換
ルックアサイドバッファ(TLB)83を含む仮想メモ
リ管理配列により駆動される。TLB83は、仮想アド
レスバス84を介してマイクロプロセッサブロック75
から受け取る仮想アドレスと比較される64のエントリ
を含んでいる。バス42の低位の16ビット部分85
は、この仮想アドレスバス84の低位の部分により駆動
され、高位の部分は、仮想アドレスが物理的アドレスと
して用いられる場合にはバス84からのものであり、仮
想アドレッシングが用いられてヒットが生じた場合に
は、出力86を介したTLB83からのタグエントリで
ある。局所バスの制御ライン43は、内部バス構造81
及び制御論理82から駆動される、パイプライン及びバ
ス制御回路87に接続される。
ロック75はRISCタイプのものであり、その中で
は、大部分の命令が1つの機械周期内で実行され、命令
セットは、ALU動作を伴うメモリ参照を含む複雑な命
令を備えるのではなく、レジスタ対レジスタ及びロード
/格納命令を用いる。主CPU75は、高度にパイプラ
イン処理され、機械周期当たりの1つの命令実行の平均
化を促進している。1つの命令は、5回の機械周期を含
む周期にわたって実行され、ここで、機械周期は1のク
ロック周期又は、16.67MHzクロック17に関す
る60ナノ秒である。R2000プロセッサの構造及び
動作は、ケイン(Kane)の「MIPS R2000 R
ISCアーキテクチャ(プレンティス・ホール(Prenti
ce Hall),1987)」において開示されている。
ジュール14又は15の内の一方が詳細に示されてい
る。好適な実施例においては、2つのメモリモジュール
は同じ構造なので、メモリ#1モジュールのみが示され
ている。メモリモジュールは、それぞれ、CPU11,
12,13から引き出される3つのバス21,22,2
3に接続された3つの入力/出力ポート91,92,9
3を含んでいる。これらの3つのレジスタの内容は、3
つの全てのレジスタの全ての部分に接続された入力を備
えた採決回路100により採決される。3つのCPU1
1,12,13の全てが、CPUが典型的に同じ命令ス
トリームを実行するこの場合のように、同じメモリ要求
(同じアドレス、同じ命令)を作成する場合には、メモ
リ要求が完了される。しかし、第1のメモリ要求が3つ
のラッチ94,95,96のいずれかにラッチされると
すぐに、それはメモリアクセスを開始するべく送られ
る。このために、アドレス、データ及び命令が、データ
バス101、アドレスバス102及び制御バス103を
含む内部バスに送られる。この内部バスからメモリ要求
は、アドレスに応じて、さらにシステム構成に応じて各
種の資源にアクセスする。
が、アドレスバス102及びメモリ要求からのアドレス
及び制御バス103からのストローブを受け入れるメモ
リ制御器105を用いて、DRAMの多重化行及び列を
発生し、データ入力/出力がデータバス101上に送ら
れる。このDRAM104は大域メモリとして参照さ
れ、ある実施例では32メガバイトの寸法である。さら
に、内部バス101−103は、制御及び状態レジスタ
106、いくつかの不揮発性RAM107及び書き込み
禁止RAM108にアクセス可能である。CPUによる
メモリ参照は、メモリモジュール14又は15内のメモ
リをバイパス可能であり、内部バス101−103に接
続されているバスインタフェース109によりI/Oバ
ス21及び25にアクセス可能である。メモリモジュー
ルが一次メモリモジュールである場合には、各メモリモ
ジュール内のバスアービトレータ110はバスインタフ
ェース109を制御する。
は、第1の要求がラッチ94,95,96の1つにラッ
チされるとすぐに、起動されるが、採決回路100が、
複数の要求が失敗無しに、同じであると判定しない限
り、完了することはない。3つの要求の内の第1のもの
の到着により、DRAM104に対するアクセスが開始
される。読み出しに関して、DRAM104はアドレス
され、感知増幅器がストローブされ、さらにデータ出力
がDRAM出力で発生されて、第3の要求が受け取られ
たの地に、採決が良好である場合には、要求されたデー
タが、CPUに対する即時転送に関して準備される。こ
のようにして、採決はDRAMアクセスとオーバーラッ
プされる。
は、メモリ要求を、前述の通り5のポート91,92,
93に対して送る。これらのバスのそれぞれは、32の
双方向多重アドレス/データライン、13の単方向命令
ライン及び2つのストローブから構成される。命令ライ
ンは、読み出し、書き込み、ブロック転送、単一転送I
/O読み出し又は書き込みなどのバス活動の種類を特定
するフィールドを含んでいる。また、バイトのようなフ
ィールド機能は、4つのバイトを可能化する。ストロー
ブはAS(アドレスストローブ)及びDS(データスト
ローブ)である。CPU11,12,13は、それぞ
れ、自身のバス21,22,23を制御する。この実施
例では、多重主バスは存在しないし、競合やアービトレ
ーションは存在しない。書き込みでは、CPUは、アド
レスストローブASを伴う1周期内でバス上のアドレス
及び命令を駆動し(低位活動)、後続の周期(次の周期
であることが好ましいが、それに限定されない)は、デ
ータストローブDSとして同時にバスのアドレス/デー
タライン上のデータを駆動する。各CPUからのアドレ
スストローブASにより、ポート91,92.,93に
表れるアドレス及び命令が、レジスタ94,95,96
のアドレス及び命令部分内にラッチされ、これらのスト
ローブが表れると、データストローブDSによりデータ
がラッチされる。複数の(この実施例では3つの内の2
つ)バス21,22,23がラッチ94,95,96内
の同じメモリ要求を駆動し、採決回路100がバス10
3に最終命令を送り、さらにメモリアクセスが実行され
る場合には、命令が書き込みであるとすると、応答AC
K信号が、書き込みが実行されるとすぐに、ライン11
2(特にメモリ#1に関するライン112−1及びメモ
リ#2に関するライン112−2)により各CPUに戻
される。同時に、状態ビットが、図5の時間T3で各C
PUに対して応答/状態バス33(特に、メモリ#1の
ライン33−1及びメモリ#2のライン33−2)を介
して駆動される。最後のストローブDS(読み出しの場
合にはAS)とT3のACKの間の遅れT4は可変であ
り、その長さは、CPUの同期から外れた周期がメモリ
要求の時間にいくつあるかに依存しており、さらに、採
決回路内の遅れ及びCPUクロック17に比較されたメ
モリモジュール14又は15の内部独立クロック17の
位相に依存している。CPUにより提示されたメモリ要
求が読み出しである場合には、ライン112−1及び1
12−2上にあるACK信号及びライン33−1及び3
3−2上にある状態ビットは、データが、時間T3の間
に、アドレス/データバスに対して駆動されると同時に
送られる。これは、CPUの機能停止を解放し、同じ命
令上にあるCPUチップ40を同期化する。すなわち、
最も速いCPUは、より多くの機能停止周期で実行さ
れ、より遅いCPUを捕捉するまで待機し、それにより
3つの全てが、同時に解放されが、クロック17は位相
から外れていることが有り得る。3つの全てのCPU
が、機能停止から開場された場合に実行される最初の命
令は同じ命令である。
11又は12に送られる全てのデータは、そのデータが
DRAM104又はメモリ位置106−108からの読
み出しデータであるか、あるいはバス24及び25から
のI/Oデータであるかにかかわらず、レジスタ114
を通過する。このレジスタは内部データバス101から
ロードされ、このレジスタからの出力は、時間T3でポ
ート91,92,93でバス21,22,23に関する
アドレス/データラインに供給される。データがこのレ
ジスタ114にロードされるときにパリティチェックが
行われる。DRAM104に書き込まれる全てのデータ
及びI/Oバス上の全てのデータは、それに関連するパ
リティビットを備えているが、パリティビットはバス2
1,22,23上でCPUモジュールに転送されること
はない。読み出しレジスタ114で検出されたパリティ
エラーは、状態バス33−1及び33−2を介してCP
Uに報告される。一次のものとして指定された唯一のメ
モリモジュール14又は15は、バス21,22,23
上のレジスタ114内でデータを駆動する。バックアッ
プ用又は第2のものとして指定されたメモリモジュール
は、レジスタ114をロードしパリティをチェックする
時点までに読出し動作を完了し、バス33−1及び33
−2上の状態を報告するが、バス21,22,23に対
して駆動されるデータは存在しない。
器117は、このモジュールに関するクロック発信器1
7によりクロックされ、バス103及びバス21−23
からの各種命令ラインを受け取る状態マシンとして動作
して、制御ビットを制御し、レジスタ及びバスをロード
し、外部制御信号などを発生する。この制御器は、2つ
のメモリモジュール14及び15の間の状態を転送し情
報を制御する2つのメモリモジュールの間のバス34に
接続される。一次のものと指定されたモジュール14又
は15内の制御器117は、命令バス101−103に
アクセスするためにI/O側(インタフェース109)
及びCPU側(ポート91−93)の間のアービトレー
タ110を調停する。一次メモリモジュール14又は1
5内の制御器117により行われる決定は、ライン34
により他方のメモリモジュールの制御器117に送ら
れ、他のメモリモジュールも同じアクセスを実行するよ
うに強制する。各メモリモジュール内の制御器117
は、このモジュール用のクロック発信器17からのパル
スを受信する再生カウンタ118に基づいて、DRAM
104に関する再生周期を導入する。DRAMは、8ミ
リ秒ごとに512の再生周期を受け取り、平均で、約1
5マイクロ秒毎に再生周期が導入される必要がある。こ
のように、カウンタ118は15マイクロ秒毎に制御器
117に対してオーバーフロー信号を送り、活動停止条
件が存在する場合には(CPUアクセス又はI/Oアク
セスの実行がない)、再生周期がバス103に送られる
命令により実行される。動作が進行している場合には、
現在の動作が終了した場合に、再生が実行される。メモ
リページング内で用いられるようなブロック転送のよう
な長い動作に関しては、いくつかの再生周期がバックア
ップされて、転送が完了した後のバーストモードで実行
される。このために、最後の再生周期からのカウンタ1
18のオーバーフローの数がカウンタ118に接続され
たレジスタ内に蓄積される。
み要求は、割り込みバス35内のライン68により、個
々にCPU11,12,13から受け取られる。これら
の割り込み要求は各メモリモジュール14及び15に送
られる。バス35内の割り込み要求は、3つの要求を比
較する割り込み採決回路119に送られて、バス35の
出力サイン69に採決された割り込み信号を送る。CP
Uは、それぞれ、バス35を介して2つのライン69及
び70(それぞれモジュール14及び15からのもの)
上で採決された割り込み信号を受け取る。各メモリモジ
ュール14及び15からの採決された割り込みは、論理
和されて、割り込み同期か回路65に示される。CPU
は、ソフトウェアの制御により、サービスに対する割り
込みを決定する。I/Oプロセッサ又はI/O制御器に
より発生された外部割り込みは、バス35内のライン6
9及び70を介してメモリモジュール14及び15を通
過してCPUに対して信号を送る。同様にして、CPU
は一次モジュール14又は15からの割り込みに対して
応答するだけである。
ロセッサ26又は27の内の一方が詳細に示されてい
る。I/Oプロセッサは2つの同じポートを有してお
り、一方のポート121はI/Oバス24に対するもの
であり、他方のポートはI/Oバス25に対するもので
ある。I/Oバス24及び25のそれぞれは、36ビッ
トの双方向多重アドレス/データバス123(32ビッ
トプラス4ビットパリティ)、読み出し、書き込み、ブ
ロック読み出し、ブロック書き込みなどの、実行される
動作の種類を決定する双方向命令バス124、どの位置
がアドレスされているかを指定するアドレスライン及び
バイトマスク、さらにアドレスストローブ、データスト
ローブ、アドレス応答及びデータ応答を含む制御ライン
から構成される。バス31のラジアルラインは、各メモ
リモジュールへの各I/Oプロセッサからの個々のライ
ン、I/Oプロセッサからメモリモジュールへのバス要
求、メモリモジュールからI/Oプロセッサへのバス許
諾、I/Oプロセッサからメモリモジュールへの割り込
み要求ライン、さらにメモリからI/Oプロセッサへの
リセットラインを含んでいる。どのメモリが一次のもの
であるかを示すラインが、システム状態バス32を介し
て、各I/Oプロセッサに接続される。図6のI/Oプ
ロセッサ内の制御器又は状態機械126が、バス28か
ら命令、制御、状態及びラジアルライン及び内部データ
及び命令ラインを受け取り、バス24及び25の内容を
受け取り、バス上で転送するべく情報を保持するラッチ
127及び128の動作を含む、I/Oプロセッサの内
部動作を規定する。
のバス24及び25上の転送は、個別に応答されるアド
レス及びデータを備えた、図7に示すプロトコルを用い
る。一次のものと指定されたメモリモジュール内の仲裁
回路110は、I/Oバス24及び25の所有に関する
仲裁を実行する。CPUからI/Oへの転送が必要な場
合には、CPU要求がメモリモジュール内の仲裁論理1
10に示される。仲裁器110がこの要求を許諾した場
合に、メモリモジュールがアドレス及び命令を、アドレ
スストローブが図7の時間T1で(2つのバス24及び
25)のバス125上で宣言されると同時に、バス12
3及び124(2つのバス24及び25)に対し提供す
る。制御器126により、アドレスがラッチ127又は
128にラッチされる場合に、アドレス応答がバス12
5上で宣言されて、メモリモジュールはバス123上の
データを(2つのバス24及び25を介して)、さらに
タイムT2ではライン125上のデータストローブを配
置し、次いで制御器により、データが2つのラッチ12
7及び128ないにラッチされて、データ応答信号がラ
イン125上に置かれ、データ応答の受信時に、2つの
メモリモジュールが、アドレスストローブ信号の宣言撤
回によりバス24、25を解放する。I/Oプロセッサ
は、次いでアドレス応答信号の宣言撤回を行う。
の転送に関しては、I/OプロセッサHI/Oバスを使
用する事を必要とする場合に、それは、ラジアルバス3
1により、2つのバス24及び25に対してバス要求を
宣言し、それから、一次メモリモジュール14又は15
ないの仲裁回路110からのバス仲裁信号を待機する。
バス許諾ラインはラジアルの内の1つである。バス許諾
が宣言されると、制御器126は、前の転送が完了した
ことを意味するバス125上のアドレスストローブ及び
アドレス応答信号の宣言撤回(すなわち、偽り(fals
e))が行われるまで待機する。この時、制御器126
により、アドレスが、ラッチ127及び128から2つ
のバス24及び25のライン123に送られ、命令がラ
イン124に送られ、アドレスストローブが2つのバス
24及び25のバス125に送られる。アドレス応答
が、2つのバス24及び25から受け取られると、デー
タが、データストローブと共に、アドレス/データバス
に送られ、メモリモジュールからI/Oプロセッサにデ
ータ応答信号が送られて、転送が完了する。
129a及びデータバス129b及び制御バス129c
を含む内部バス129に接続される。これらのバスは、
制御器状態機械126により実行される命令をセットア
ップして、バス32などにより送られる状態を保持する
ために用いられる内部状態及び制御レジスタ130にア
ドレス可能である。これらのレジスタは、CPUのアド
レス空間内でCPUからの読み出し又は書き込みに関し
て、アドレス可能である。アドレスインタフェース13
1は、制御器126の制御に基づいて、バス28と通信
を行う。バス28は、アドレスバス28a、データバス
28b、制御バス28c及びラジアル28dを含んでお
り、これらのラインの全ては、バスインタフェースモジ
ュール29を介してI/O制御器30と会話を行う。バ
スインタフェース29、制御器30を駆動する(1つの
I/Oプロセッサ又は他方のプロセッサ、しかし両方で
はない)一組のバスライン28のみを許容する。制御器
30内部には、命令、制御、状態及びデータレジスタ1
33があり、これは(この種の周辺制御器に関して通常
行われているように)I/O装置内の動作を起動し制御
するための読み出し及び書き込みに関して、CPU1
1,12,13からアドレス可能である。
は、BIM29ないのマルチプレクサ132を介して2
つのI/Oプロセッサ26及び27に接続されており、
その何れか一方により制御可能であるが、CPU内で実
行されるプログラムにより一方が拘束される。I/Oプ
ロセッサの一方が故障した場合には、I/O制御器がB
IM29上の第2のポートを介してのこりのI/Oプロ
セッサに対して再割当て可能である。特別のアドレス
(又はアドレス組)が、各制御器30を表す制御及びデ
ータ転送レジスタ133に関して確立されて、これらの
アドレスは、オペレーティングシステムによりI/Oペ
ージテーブル(通常は局所メモリのカーネルデータ部
分)に保持される。これらのアドレスは、I/Oプロセ
ッサ#1又は#2のいずれかによってのみアクセス可能
なものとして、各制御器30に関連している。すなわ
ち、異なるアドレスが用いられて、I/Oプロセッサに
比較されるI/Oプロセッサ26を介して固有レジスタ
133に到着する。バスインタフェース131(及び制
御器126)はマルチプレクサ132をスイッチして、
一方又は他方からバス28を受け入れる。これは、CP
UからI/Oプロセッサのレジスタ130に対する書き
込みより完了する。こうして、デバイスドライバが呼び
出されて、この制御器30にアクセスをし、オペレーテ
ィングシステムは、このページテーブル内のアドレスを
用いてこれを実行する。プロセッサ40は、書き込みバ
ッファ50ではなく、書き込みバッファバイパス経路5
2を用いてこれらの制御器内の制御及びデータ転送レジ
スタ133に対してI/O書き込みを行うことにより、
制御器30にアクセスし、これらは同期的書き込みであ
り、回路100により採決され、メモリモジュールを通
してバス24又は25、さらに選択されたバスに送られ
るものである。プロセッサ40は書き込みが完了するま
で、機能を停止する。図6のI/Oプロセッサボード
は、不適当な命令や、バス28で応答が得られない場合
のタイムアウト、パリティチェックされたデータなどの
故障を検出するように構成されて、これらの内のいずれ
かの故障が検出された場合には、I/Oプロセッサは、
バス24及び25を介して2つのメモリモジュール14
及び15を介してCPUに対してエラーを報告する。C
PUは機能停止を中止して、処理を継続する。これは、
バス故障としてバスインタフェース56に検出され、後
述のように割り込みが生じ、可能であれば自己矯正動作
が行われる。
40は、既に述べたように、オーバーラップ指令実行が
可能なパイプラインアーキテクチャである。本実施例で
用いられる技法は周期カウント、すなわち、命令が実行
される毎に、図2のカウンタ71及びカウンタ73を増
分することに基づいている。パイプラインが進む毎に、
命令が実行される。制御バス43ないの制御ラインの1
つは、信号RUN#出あり、これはパイプラインが機能
停止であることを示す。RUN#が高位にある場合に
は、パイプラインは機能停止状態であり、RUN#が低
位(論理ゼロ)にある場合には、パイプラインは各機械
周期を進める。このRUN#信号が数値プロセッサ46
内で用いられて、プロセッサ40のパイプラインを監視
して、このコプロセッサ46が関連するプロセッサ40
とともにロックステップで実行可能になる。クロック1
7を伴う制御バス内のこのRUN#信号は、カウンタ7
1及び73により用いられて、RUN周期をカウントす
る。
タ71の寸法は4096、すなわち、212のものとして
選択される。この数値が選択される理由は、クロック1
7内で用いられる水晶発信器の許容差が、平均して約4
KのRUN周期内のドリフトが割り込み同期の好適な動
作を合理的に許容可能な殆ど全てのプロセッサチップ4
0によって実行される周期の数のスキュー又は公差を結
果的に生じさせるためである。1つの同期機構は、カウ
ンタ71がオーバーフローした場合にCPUを同期させ
るべく運動を強制する。かかる運動の1つにより、カウ
ンタ71からのオーバーフロー信号OVFLに応答して
キャッシュミスが強制される。これは、次のIキャッシ
ュ参照に関して制御バス43上にエラーMiss信号
(すなわち、TagValidビットが設定されない)
を単に発生させることにより完了し、次に、キャッシュ
ミス除外ルーチンに入り、結果として生じるメモリ参照
が、メモリ参照が行われたように、同期を発生する。カ
ウンタ71のオーバーフローに同期を行わせる別の方法
は、プロセッサ40を機能停止することである。これ
は、オーバーフロー信号OVFLを用いて、図2の論理
回路71aを介して制御バス43上にCP−Busy
(コプロセッサ使用中)信号を発生することにより行う
ことが可能である。このCP−Busy信号は、常に、
CP−Busy信号の宣言が撤回されるまで、プロセッ
サ40を機能停止させる。3つの全てのプロセッサは、
これらが同じコードを実行し、カウンタ71で同じ周期
を実行するので、機能停止に入るが、それらが機能停止
となる実際の時間は可変である。論理回路71aはRU
N#信号を入力R#を介して2つの別の2つのプロセッ
サのバス43から受け取る。3つの全てが機能停止して
から、CP−Busy信号が解放されて、プロセッサが
機能停止から外れて、再び同期する。
が、一次のものは、メモリモジュール内の回路100内
のメモリ参照を採決することにより得られる同期であ
り、第2のものは、直前に述べたようにカウンタ71の
オーバーフローにより得られる同期である。さらに、後
述するように、割り込みが同期される。しかしながら、
プロセッサ40が、基本的には、自分のクロック速度で
自由に稼働し、同期事象が生じる以外は、他のものとは
基本的に切り離されていることに留意することが重要で
ある。パイプラインされたマイクロプロセッサが用いら
れる事実により、信号クロックとのロックステップ同期
をより困難にし、動作性能の質を下げる。さらに、書き
込みバッファ50を用いることによりプロセッサを切り
離し、プロセッサの密接な接続の効果を下げる。同様
に、命令及びデータキャッシュ、TLB83を備えた仮
想メモリ管理から帰結する高い動作性能が、密接な接続
が用いられた場合の実行をより困難にし、動作性能に影
響を与える。
時間と、いわゆる「仮想時間」とを識別する必要があ
る。実時間は外部の実際の時間、すなわち、掛け時計の
時間であり、秒で測定され、便宜に応じて、例えば60
ナノ秒に分割される機械周期で測定される。もちろん、
クロック発生器17は、それぞれ、実時間内でクロック
パルスを発生する。仮想時間は、それぞれ、周期カウン
タ71及び73で測定されるプロセッサチップ40のそ
れぞれの内部周期カウント時間であり、任意の時点から
開始される命令から測定される、プロセッサチップによ
り実行される命令の命令数である。図1乃至図3のシス
テムの3つのCPUは、単一の論理プロセッサであるよ
うに機能することが必要であり、従って、3つのCPU
のプログラミングモデルが単一の論理プロセッサである
ことを保証するように、それらの内部状態を仮定するあ
る制限がCPUに付随する。故障モデル及び診断機能を
除いて、3つのCPUの命令ストリームは同一であるこ
とが必要である。同一でない場合には、採決大域メモリ
が図4の採決回路100でアクセスする。採決は、ある
CPUが故障しているか、又はそれが異なる命令シーケ
ンスを実行しているかを知ることはない。同期のスキー
ムは、あるCPUのコードストリームが、他方のCPU
のコードストリームから離れていった場合には、故障が
生じたものと仮定するように、設計されている。割り込
み同期が、単一のCPUイメージを維持する機構の1つ
を提供する。
を生じさせるために必要とされ、これにより、3つのプ
ロセッサ、CPU−A,CPU−B及びCPU−Cの命
令ストリームが、割り込みの結果(あるプロセッサが他
のプロセッサにより読出されるデータ床となるデータを
読出すような、命令ストリームの分岐の他の原因がない
ものとする)としての分岐を生じさせないことが保証さ
せる。いくつかのシナリオが存在し、それによれば、仮
想時間に対する非同期を生じさせる割り込みは、コード
ストリームの分岐を引き起こす。例えば、プロセスAが
完了する前にあるCPU上でコンテキストのスイッチを
引き起こすが、他のCPU上ではプロセスAが完了した
後にコンテキストのスイッチを引き起こす割り込みは、
結果的に、後の時点で、あるCPUがプロセスAの実行
を継続するが、プロセスが既に完了しているので、別の
CPUがプロセスAを実行不能であるような状況を生み
出す。このような場合に、割り込みにより仮想時間に対
する非同期が生じたものとすれば、例外プログラムカウ
ンタが困難であるという時事が問題を引き起こす。例外
プログラムカウンタが大域メモリに書き込みを行う動作
により、3つのCPUから異なるデータを検出する採決
器が採決エラーを生じる。
時間に同期的である。ある事例は、中断天命令の異常に
より引き起こされる中断点異常である。CPUの命令ス
トリームは同一なので、中断点異常も、3つのCPU上
の仮想時間の同じ時点で生じる。同様に、かかる、内部
異常も、本質的に、仮想時間に対して同期的である。例
えば、TLB異常は、本質的に同期的な、内部異常であ
る。TLB異常は、仮想ページ数がTLB83内のいず
れのエントリにも整合しないために生じる。変換アドレ
スの運動が、唯一、命令ストリームの機能であるために
(正確には、中断点異常の場合)、変換は本質的に仮想
時間と同期的である。TLB異常が仮想時間に対して同
期的であることを保証するために、TLB83の状態
は、3つの全てのCPU11,12,13と同一である
必要があり、これは、TLB83がソフトウェアによっ
てのみ修正可能であることにより、保証される。再び、
全てのCPUが同じ命令ストリームを実行するので、T
LB83の状態は、常に、仮想時間に対して同期的であ
るように変更される。概括的に言って、ソフトウェアに
よりある運動が実行された場合には、その運動は仮想時
間に対して同期的である。運動が、周期カウンタ71を
用いないハードウェアにより実行される場合には、運動
は一般的に実時間に対して同期的である。
ない。I/O装置26,27,28は3つのCPU1
1,12,13の仮想時間に関する情報を持っていな
い。従って、I/O装置により発生される全ての割り込
みは、後述するように、CPUにより提示される前に仮
想時間に対して同期的である必要がある。浮動小数点コ
プロセッサ46はCPU内のマイクロプロセッサ40に
件密に接続されているので、浮動小数点異常はI/O装
置割り込みとは異なる。
ロセッサとみなし、同期に関する情報を有しておらず、
CPUの間の同期性も欠落しているので、外部装置は、
各CPUの個々の命令ストリーム(仮想時間)と同期す
る割り込みを発生することはできない。同期の検索無し
に、いくつかの外部装置が実時間のある瞬間に割り込み
を駆動し、割り込みがこの時間にCPUに対して直接提
示される場合には、3つのCPUは異なる命令で異常と
ラップを生じ、結果的に3つのCPUは許容不能状態に
なる。これは、実時間に対して同期され、仮想時間に対
して同期されない事象(割り込みの宣言)の事例であ
る。
し、所定の周期カウントでプロセッサに対して割り込み
を提示することにより、図1乃至図3のシステムにおい
て、仮想時間に対して同期される。図8は、図2の割り
込み同期論理65のより詳細なブロック図である。各C
PUは、ディストリビュータ135を含んでおり、ディ
ストリビュータ135は、モジュール14又は15から
伸びるライン69又は70からの外部割り込みを捕捉す
る。この捕捉は所定の周期カウント、すなわち、カウン
タ71からの割り込みラインCC−4上に信号として送
られた、カウント4で生じする。捕捉割り込みは、内部
CPUバス18を介して他の2つのCPUに分散され
る。これらの分散された割り込みは、未決割り込みと称
される。各CPU11,12,13からの3つの未決割
り込みが存在する。採決回路136は、未決割り込みを
捕捉し、全てのCPUが外部割り込み要求を受けないこ
とを確認するための採決を実行する。所定の周期カウン
ト(周期カウンタ71により検出される)で、この事例
では、入力ラインCC−8により受信される周期8で、
割り込み採決器136が割り込みを、ライン137及び
制御バス55及び43を介して個々のマイクロプロセッ
サ40上の割り込みピンに提示する。割り込みを提示す
るために用いられる周期カウンタが決定されるので、全
てのマイクロプロセッサ40は同じ周期カウント上で割
り込みを受け取り、このようにして、割り込みが仮想時
間に対して同期化される。
1,12,13は図9に示すような構成を有するメモリ
空間を備えている。局所メモリ16は8Mバイトであ
り、大域メモリ14又は15は32Mバイトであるもの
を例として用いるとする。局所メモリ16は、CPUの
メモリアクセス空間の同じ連続ゼロ−40Mマップであ
り、キャッシュ又は別のメモリ空間ではないことに留意
する。0−8M区域が(3つのCPUモジュールで)3
重にされ、8−40M区域が2重にされるが、論理的に
は単一の0−40Mの物理アドレス空間が存在するのみ
である。バス54上の8Mバイトにわたるアドレスによ
り、バスインタフェース56がメモリモジュール14及
び15に対する要求を形成するが、8Mバイト下のアド
レスは、CPUモジュール自体煮の内部で局所メモリ1
6にアクセスする。動作性能は、局所メモリ16内で実
行されるアプリケーションにより用いられるより多くの
メモリを配置することにより改良され、メモリチップが
高密度低コスト高速となれば、さらに別の局所メモリ及
びたい域メモリが付加される。例えば、局所メモリは3
2Mバイトであり大域メモリは128Mバイトである。
他方、コストを最少に抑え、動作性能が重要な要因でな
いシステムが必要な場合には、システムは局所メモリ無
しで動作可能であり、全ての主メモリを(メモリモジュ
ール14及び15内の)大域メモリ内におくことも可能
であるが、かかる構成では動作性能の低下は大きいもの
となる。
容は、3つのCPU11,12,13において同一であ
る。同様に、2つのメモリモジュール14及び15は、
いかなる時点でもそれらの空間142内に同じデータを
共通に含んでいる。局所メモリ部分141はUNIXの
オペレーティングシステムに関するカーネル143(コ
ード)を格納し、この部分は、物理的にかくCPUの局
所メモリ16の固定部分内にマップされる。同様に、カ
ーネルデータは、かく局所メモリ16内の固定部分14
4に割当てられて、ブートアップ時を除き、これらのブ
ロックは大域メモリ又はディスクに対して/から交換さ
れることはない。局所メモリ16の他の部分145は、
ユーザのプログラム(及びデータ)ページ用に用いられ
て、オペレーティングシステムの制御により、大域メモ
リ14及び15の区域146に交換される。大域メモリ
区域142は、区域146内のユーザページ用のステー
ジング区域として、さらに区域147内のディスクバッ
ファとして用いられる。CPUが、局所メモリ16から
ディスク148に対して、データ又はコードのブロック
の書き込みを実行するコードを実行している場合には、
シーケンスは代わりに、常にディスクバッファ区域14
7に対する書き込みを行う。というのも、区域147に
対する複写の時間は、I/Oプロセッサ26及び27に
対して、さらにI/O制御器30を介してディスク14
8に対して直接複写を行う時間と比較して、無視できる
程度である。従って、CPUが他のコードの実行を進め
ている間、CPUを通過して、ディスクへの書き込み動
作が終了し、区域147からディスク148に対してブ
ロックを移動する。同様に、大域メモリ区域147が、
ディスク(例えばビデオ)ではなくI/Oの同様の処理
に関して、I/Oステージング149区域を含むよう
に、マップされる。
プロセッサ40の仮想メモリ管理システムと相互関係さ
れる。図10は、実施例で用いられるR2000プロセ
ッサの仮想アドレスマップを示しているが、ページング
及び保護機構を備えた花王メモリ管理をサポートする他
のマイクロプロセッサチップにより対応する特徴を提供
することも可能であると理解されたい。
の仮想アドレス空間150及び151が説明されてい
る。プロセッサ40は、2つのモード、すなわちユーザ
モード及びカーネルモードの一方で動作する。プロセッ
サは、ユーザモードで区域150にアクセス可能なのみ
であり、カーネルモードでは区域150及び151の双
方にアクセス可能である。カーネルモードは、多くの機
械により提供される監視モードに類似するものである。
プロセッサ40は、異常が検出されてカーネルモードに
移行して、異常からの回復(RFE)命令が実行される
までは、通常はユーザモードで動作する。メモリアドレ
スが変換又はマップされる方法は、状態レジスタ内のビ
ットにより定義されるマイクロプロセッサの動作モード
に依存している。ユーザモードでは、2Gバイト寸法の
「kuseg」と称される単一かつ均一の仮想アドレス空間
150が有効である。各仮想アドレスは、また、6ビッ
トプロセス識別子(PID)で拡張されて、64のユー
ザプロセスまでの特殊仮想アドレスを形成する。ユーザ
ーモードでのこの区画150に対する全ての参照は、T
LB83を介してマップされて、キャッシュ144及び
145の使用は、TLBエントリ内の各ページエントリ
に関するビット設定により決定される。すなわち、いく
つかのページがキャッシュ可能になり、いくつかのペー
ジがプログラマにより特定不能になる。
は、図10の2つの区域150及び151を含む。これ
らの空間は4つの別の区域「kuseg」150、「k
seg0」152、「kseg1」153及び「kse
g2」154を備えている。カーネルモード用の「ku
seg」150区域は、2Gバイトの寸法であり、ユー
ザモードの「kuseg」に一致し、ユーザデータに対
するカーネルアクセスを合理化する。「kuseg」1
50はユーザコード及びデータを保持するために用いら
れるが、オペレーティングシステムは、しばしば、この
同じコード又はデータを参照することを必要とする。
「kseg0」区域152は、物理アドレス空間の第1
の512Mバイト上に直接マップされる512Mバイト
のカーネル物理アドレス空間であり、キャッシュされる
が、TLB83を使用しない。この区域は、カーネル実
行可能コード及びいくつかのカーネルデータ用に用いら
れ、局所メモリ16内の図9の区域143により示され
ている。「kseg1」区域153は、また、物理アド
レス空間の第1の512Mバイト内に、「kseg0」
と同様に直接マップされて、キャッシュはされず、TL
Bエントリを用いることもない。「kseg1」は、キ
ャッシュされない点に追い風のみ、「kseg0」と相
違する。「kseg1」はI/Oレジスタ、ROMコー
ド及びディスクバッファに関するオペレーティングシス
テムにより用いられ、図9の物理マップの区域147及
び149に対応する。「kseg2」区域154は、1
Gバイト空間であり、「kuseg」と同様に、TLB
83エントリを用いて、キャッシュあり又は無しで、任
意の物理アドレスに対して仮想アドレスをマップする。
この「kseg2」区域は、ユーザモードではなく「カ
ーネルモード」でのみアクセス可能である点においての
み、「kuseg」区域150と異なっている。オペレ
ーティングシステムは、コンテキスト交換時に再マップ
が必要なスタック及びパープロセス(per-process)用
に、さらにユーザページテーブル(メモリマップ)用
に、及びいくつかの動的に割当てられるデータ区域用に
「kseg2」を使用する。「kseg2」は、オール
・オア・ナッシング型のアプローチではなく、選択的な
キャッシング及びページ毎のマッピングを許容する。
又はPC80内で発生された32ビット仮想アドレス及
びバス84上の出力が図11に示されている。そこで
は、ビット0−11が、図3のバス42上のアドレスの
低位12ビットとして無条件的に用いられるオフセット
であり、他方、ビット12−31が「kuseg」、
「kseg0」、「kseg1」及び「kseg2」の
間で選択されるようなVPN又は仮想ページ数であるこ
とが示されている。現在実行中のプロセスに関するプロ
セス識別子(PID)は、TLBによりアクセス可能な
レジスタ内に格納される。64ビットのTLBエントリ
が図11に示されており、そこでは、仮想アドレスから
の20ビットのVPNが64ビットエントリのビット4
4−63内に位置する20ビットのVPNフィールドと
比較され、同時にPIDがビット38−43に比較され
ることが示されている。適合が、いずれかの64の64
ビットTLBエントリに見いだされると、適合エントリ
のビット12−31におけるページフレーム数PFN
が、図3のバス82及び42(他の基準は充足している
と仮定する)を介して出力として用いられる。TLBエ
ントリ内の他の1ビット値には、N、D、V及びGが含
まれる。Nは、キャッシュ不能インディケータであり、
これが設定された場合には、ページはキャッシュ不能で
あり、プロセスは、まずキャッシュ44又は45にアク
セスすることなく、直接局所メモリ又は大域メモリにア
クセスする。Dは、書き込み保護ビットであり、これが
設定された場合には、ロケーションは「dirty」で
あり書き込み可能を意味するが、ゼロの場合に、書き込
み動作を行えばトラップが生じる。Vビットは有効を示
し、これが設定された場合には、TLBエントリが単に
有効ビットをリセットするだけでクリアされるようにな
る。このVビットはこのシステムのページ交換構成で用
いられて、ページが局所メモリにあるか大域メモリにあ
るかを示す。Gビットは、大域アクセスを許可し、これ
は、有効なTLB変換に関するPID整合要求を無視す
る。「kseg2」においては、これにより、カーネル
が、PIDを参照せずに全てのマップデータを参照可能
になる。
接DMAを行うことはできないので、大域メモリが、典
型的にはディスク148などからのDMAタイプのブロ
ック転送に関するステージング領域として用いられる。
CPUは直接、制御器30で動作可能であり、制御器
(すなわち、プログラムされたI/O)による動作を起
動又は実際に制御するが、制御器30は、大域メモリを
除き、DMAを実行できない。制御器30は、バス(バ
ス28)マスタと成ることが可能なので、I/Oプロセ
ッサ26又は27を介して、メモリモジュール14及び
15内の大域メモリに対する読み出し又は書き込みを直
接行う。
のページ交換は、ページ故障又はエージングプロセスの
いずれかにより起動される。ページ故障は、プロセスが
実行中であり、大域メモリ内又はディスク上のページに
アクセス又はページからの実行を試みる場合に生じる。
TBL83はミスを示し、トラップが生じる。カーネル
内の低位のトラップコードは、ページのロケーションを
示し、ルーチンはページ交換の起動に入る。必要なペー
ジが大域メモリである場合には、一連の指令がDMA制
御器74に送られて、局所メモリから大域メモリに最新
に用いられたページを書き込み、大域メモリから局所メ
モリに必要なページを読出す。ページがディスク上にあ
る場合には、指令及びアドレス(セクタ)がCPUから
制御器30に書き込まれてディスクに送られ、ページを
獲得し、それからメモリ参照を行うプロセスが停止され
る。ディスク制御器がデータを発見し、それを送る準備
を完了した場合に、割り込み信号が発生されて、メモリ
モジュール(CPUには到着しない)により用いられ
て、ディスク制御器が大域メモリに対するDMAを開始
させ、大域メモリ内のページを書き込み、それが終了す
ると、CPUが割り込まれて、DMA制御器74の制御
の下にブロック転送が開始され、局所メモリから大域メ
モリに最も不要なページが交換されて、必要とされるペ
ージが局所メモリに読み出される。それから、下のプロ
セスが再び実行可能とされて、状態が回復され、下のメ
モリ参照が再び生じて、局所メモリ内の必要ページを発
見する。ページ交換を起動する他の機構は、エージング
ルーチンであり、それによれば、オペレーティングシス
テムは周期的に、局所メモリ内のページを介して、最近
使用されたページにマーキングされ、使用されないペー
ジが大域メモリから外に追い出される。タスク交換自体
はページ交換を起動しないが、その代わりに新しいタス
クがエラーを生じ始めると、ページが必要に応じて交換
される。交換の候補は最近用いられたものではない。
いだされたが、TLBエラー異常から生じたページテー
ブルルックアップが、ページが局所メモリ内にあること
を示すものである場合には、TLBエントリはこのペー
ジが局所メモリ内にあることを示すために行われる。す
なわち、プロセスは、TLBミスが生じた場合に、異常
を生じ、(カーネルデータ区域内の)ページテーブルに
進み、テーブルエントリを発見して、TLBに書き込
み、それからさらにプロセスを進めることが可能にな
る。しかし、メモリ参照がTLBエラーを見いだすと、
ページテーブルが、対応する物理アドレスが大域メモリ
(8M物理アドレスにわたって)内に存在することを見
いだし、TLBエントリがこのページに対して行われ、
プロセスが再始動されると、それが前の通りTLB内の
ページエントリを発見する。有効ビットがゼロなので、
さらに別の異常が生じ、ページが局所メモリ内に物理的
に存在しないことが示されて、今度は異常がルーチンに
入って大域メモリから局所メモリへとページを交換し、
さらにTLBエントリを許可し、これで実行がさらに進
むことが可能になる。第3の状態では、ページテーブル
がメモリ参照に関するアドレスをディスク上にあって、
局所又は大域メモリ内に存在しないことを示すと、シス
テムは上述のように動作し、プロセスは実行キューを外
して、スリープキューに入り、ディスク要求が形成さ
れ、さらにディスクがページを大域メモリに転送して、
命令完了割り込み信号が送られると、ページが大域から
局所へと交換されて、TLBが更新され、プロセスが再
び実行可能になる。
15は、同じ位置に同じデータを格納しているが、CP
U11,12,13はこれらのメモリに等しくアクセス
し、メモリモジュールのそれぞれの私用メモリとしてソ
フトウェア制御により割当てられた小さなメモリ領域が
存在する。例えば、図12に示すように、メモリモジュ
ール位置のマップの領域155は、私用メモリ領域とし
て指定され、CPUがバス59に「私用メモリ書き込
み」を提示する場合にのみ書き込み可能になる。実施例
においては、私用メモリ領域155は、4Kのページで
あり、各CPUモジュールのバスインタフェース56内
のレジスタ156内に含まれるアドレスで開始する。こ
の開始アドレスは、CPUによるこのレジスタ156に
対する書き込みによりソフトウェア制御に基づき変更が
可能である。この私用メモリ領域155は、さらに3つ
のCPUの間で分割される。CPU−Aだけが155a
に書き込み可能であり、CPU−Bは155bに、CP
U−Cは155cにそれぞれ書き込み可能である。バス
57内の命令信号の1つは、バスインタフェース56に
より設定されて、メモリモジュール14及び15に対し
て、動作が私用書き込みであるという情報を示す。これ
は、STORE命令からのプロセッサ40により発生さ
れるアドレスに応答して設定される。アドレス(及びW
RITE命令)のビットはバスインタフェース内のデコ
ーダ157により検出され(これはバスアドレスをレジ
スタ156のカウンタと比較する)、バス57に対する
「私用メモリ書き込み」命令を発生するために用いられ
る。メモリモジュール内では、書き込み命令がレジスタ
94,95,96内で検出されてアドレス及び命令が全
て採決回路100により良好(同意)と決定されると、
制御回路100は、CPUの1つからのデータをバス1
01に送り、この内の一つがCPUからのアドレスの2
つのビットにより決定される。この私用書き込みの間、
CPUはそれらのバス57上に同じアドレスであるが、
それらのバス58上では異なるデータを提示する(異な
るデータは、例えばCPUに固有のいくつかの状態であ
る)。メモリモジュールはアドレス及び命令を採決し、
アドレスバス上にみられるアドレスフィールドの部分に
基づいて1つのCPUからのみのデータを選択する。C
PUにいくつかのデータを採決させるために、3つの全
てのCPUが、2つのメモリモジュール14及び15内
に、CPUに固有ないくつかの状態情報の(バス21,
22,23上の3つの書き込みである)3つの私用書き
込みを実行する。これで、3つの全てのCPUにより実
行されるソフトウェアシーケンスは、(1) (位置155
aに対する)格納、(2) (位置155bに対する)格
納、(3) (位置155cに対する)格納である。しか
し、1つのCPUからのデータは、実際には、逐次書き
込まれ、データ採決されない(それは異なる、又は異な
り得るものであり、採決された場合には故障として提示
されてしまうからである。)。従って、CPUは、3つ
の全てのCPUに、3つの全ての位置、155a,15
5b,155cに対して読み出しさせることにより、さ
らにソフトウェアにこのデータを比較させることによ
り、データを採決可能である。この種の動作は、診断、
例えば、割り込みにおいて用いられて、原因レジスタデ
ータを採決する。
に用いられる。例えば、CPUが、メモリ読み出し要求
を行う場合のバスエラーを検出すると、メモリモジュー
ル14又は15は、ライン33−1及び33−2に悪い
状態を戻す。この時点で、CPUは他のCPUが、メモ
リモジュールから同じ状態を受け取ったか知らない。C
PUが故障であるか、又はその状態検出回路が故障であ
るか、あるいは、上述のように、メモリが故障であるか
である。それから、故障が隔離されて、前述のバス故障
ルーチンに入ると、3つの全てのCPUは、先行する読
み出し試行においてメモリモジュールからちょうど受け
取った状態情報の私用書き込みを実行する。それから、
3つの全てのCPUは、他のものが書き込んだものを読
み出し、それと自身のメモリ状態情報とを比較する。全
てが同意すれば、メモリモジュールがオフラインに採決
される。そうでない場合には、CPUはメモリモジュー
ルに関しては悪い状態だが、他のものは良好な状態であ
ることを示し、CPUはオフラインに採決される。
好適な実施例のシステムは、上述の通り、CPUモジュ
ール、メモリモジュール、I/Oプロセッサモジュー
ル、I/O制御器及びディスクモジュールなどのオンラ
イン置き換えと同時に、故障電源モジュールのオンライ
ン置き換え能力を有する故障許容型電源サブシステムを
用いている。図13の回路では、A/C電源ライン16
0が、ラインフィルタリング、一時サププレッサ及び短
絡回路を防止するための回路ブレーカに電源を供給する
電源分布装置161に直接接続されている。A/C電源
ライン故障を防止するために、冗長性バッテリーパック
162及び163が十分なシステム電源を供給し、順序
だった遮断が完了するようにされる。例えば、数分(例
えば4分半)のバッテリー電源で上述の実施例において
は十分である。2つのバッテリーパックの内の一方だけ
が、システムを安全に遮断動作するために必要である。
DC大容量電源164及び165を備えており、これら
は高圧ファクタを示し、一対の36ボルトDC分布バス
166及び167を励起する。システムは、大容量電源
164又は165の内の一方で動作し続けることが可能
である。
ス166及び167に含まれる。大容量電源164が電
源バス166−1及び167−1を駆動し、大容量電源
165が電源バス166−2及び167−2を駆動す
る。バッテリーパック162はバス166−3及び16
7−3を駆動し、それ自体は、166−1及び166−
2から再充電される。バッテリーパック163はバス1
66−3及び167−3を駆動し、バス166−1及び
167−2から再充電される。3つのCPU11,1
2,13はこれらの4つの配線配布バスの異なる組合わ
せで駆動される。
続された多くのDC/AC変換器168が用いられて、
個別に、CPUモジュール11,12,13、メモリモ
ジュール14及び15、I/Oプロセッサ26及び2
7、さらにI/O制御器30に電源が供給される。大容
量電源164及び165もまたこれらのシステムファン
169及びバッテリーパック162及び163用のバッ
テリーチャージャに電力を供給する。これらの別個の各
システムのコンポーネント用のDC/DC変換器を備え
ることにより、1つの変換器の故障によってもシステム
が遮断することはなくなり、システムは、上述のよう
に、故障回復モードの1つにより動作し続け、故障の電
源要素をシステム可動中に置き換えることが可能であ
る。
イ及びオフ機能を備えている)により、又は自動的に保
守診断の電源故障の事象で電源オン状態に自動的にデフ
ォルト可能な保守診断プロセッサからのソフトウェアの
制御により遮断させることが可能である。
2,23(システムバス)を介して転送するべく、メモ
リモジュール14及び15による応答を評価するために
CPU11,12,13により用いられるシーケンスを
これから説明する。このシーケンスは、バスインタフェ
ースユニット56において及びCPUにより実行される
コードにおいて状態マシンにより定義される。
リからライン33上に状態ビット内にデータエラーが示
されないと仮定される。メモリ参照により開始される機
能停止は、他の(二次)メモリモジュールが終了状態で
応答するか、二次メモリがタイムアウトになるまで、終
了しない。この機能停止は、制御バス55及び43を介
してREADY信号を宣言することにより終了する。二
次メモリが、タイムアウトが終了する前に、ライン11
2上で応答を宣言すると、終了状態が状態機械によって
評価される。データエラーが状態フィールド(ライン3
3−1又は33−2)により示されると、メモリ参照
は、別の行動を起こすことなく、終了する。
3−1で一次メモリからデータエラーが示されず、二次
メモリが応答して、ライン33−2で受け取られる状態
でデータエラーが示されるものと仮定する。この場合に
は、メモリ参照が、ある場合には終了され、さらに終了
状態条件がレジスタ内でラッチされて、割り込みが転記
される。一次メモリ及び/又は二次メモリが、ライン3
3でデータエラー以外のエラーを示すと、参照が終了し
て、状態が転記された割り込みでラッチされる。第2の
場合の変形例は、二次メモリが故障して、タイムアウト
が終了する前に応答を宣言する。この場合には、割り込
みが指示と共にソフトウェアに送られて、二次メモリ上
の読み出し転送の間にタイムアウトが生じる。
リから状態ライン33にデータエラーが示されず、一次
メモリから応答も受け取られないものと仮定する。CP
Uは他のメモリからの応答を待機して、データエラーが
他のメモリからの状態ビット内に発見されない場合に
は、バスインタフェース56の回路を所有状態に(一次
メモリ所有状態)に変更して、データが正確に新しい一
次メモリから読み出されているかを示すために再試行が
行われる。良好な状態が新しい第1メモリから受け取ら
れた場合(データエラーが示されない)には、機能停止
が前のように終了されて、割り込みが所有変更指示と共
に送られて、システムが更新される(1つのメモリが不
良の場合には、他方のメモリが第1となる)。しかし、
新しい一次メモリからの読み出しに対するこの試行の結
果データエラー又はタイムアウトが生じた場合には、バ
スエラーが制御バス55及び43を介してプロセッサ4
0に示される。
リ及び二次メモリの双方が、状態ライン33−1及び3
3−2でデータエラーを示し、ライン33内の状態エラ
ーに応答した一次メモリ及び他方メモリから応答が受け
取られない場合には、機能停止が終了して、バスエラー
が制御バス55及び43を介してプロセッサ40に示さ
れる。
き込み転送に関しては、第1の場合では、いずれのメモ
リモジュールからの状態ライン33−1及び33−2に
データエラーが示されない。機能停止が終了して、全て
の実行が続けられる。
き込み転送に関しては、第2の場合には、ライン33−
1上の一次メモリからデータエラーが示されず、二次メ
モリが応答して、ライン33−2上で受け取られた状態
のデータエラーが指示される。この状態では、メモリ参
照が第1の場合と同様に終了し、さらに終了状態条件が
レジスタ内にラッチされて、割り込みが終了する。一次
メモリ及び/又は二次メモリがデータエラーではないエ
ラーをライン33上に示した場合には、参照が終了され
て、状態が転記された割り込みでラッチされる。第2の
場合の別の変形例では、二次メモリが故障して、タイム
アウトの前に応答を宣言する。この場合には、割り込み
が指示と共にソフトウェアに対して通知され、二次メモ
リ上での書き込み転送の間にタイムアウトが生じる。
き込み転送に関しては、第3の場合には、一次メモリか
らの状態内にデータエラーが示されず、一次メモリから
応答が受け取られない。各CPUのインタフェース制御
器は、他方のメモリモジュールからの応答を待機して、
データエラーが他方のメモリからの状態内に発見された
場合には、所有変更が強制されて、割り込みが通知され
る。しかし、データエラー又はタイムアウトが他方の
(新しいだい1のもの)メモリモジュールに生じた場合
には、バスエラーがプロセッサ40に宣言される。
き込み転送に関しては、第4の場合には、一次メモリ及
び二次メモリが状態ライン33−1及び33−2にデー
タエラーを示し、ライン33上の状態エラーに応答し
て、一次メモリ及び他方のメモリから応答が受信されな
い場合には、機能停止を終了して、バスエラーが制御バ
ス55及び43を介してプロセッサ40に示される。
書き込み動作により機能停止しないように可能化される
書き込み転送に関しては、第1の場合には、いずれのメ
モリモジュールからの状態においてもエラーが示されな
い。転送が終了すると、他方のバス転送が開始可能にな
る。
込み転送に関しては、第2の場合には、オンライン33
−1上の一次メモリからはデータエラーが示されず、二
次エラーが応答して、ライン33ー2上で受信される状
態のデータエラーを示す。この場合には、第1の場合の
ように、メモリ参照が終了し、さらに終了した状態条件
がレジスタ内にラッチされて、割り込みが通知される。
一次メモリ及び/又は二次メモリがデータエラーではな
いエラーをライン33で示すと、参照が終了されて、状
態が通知された割り込みと共にラッチされる。第2の場
合の別の変形例においては、二次メモリが故障してタイ
ムアウトがくる前に、応答を宣言する。この場合には、
割り込み他ソフトウェアに対して指示と共に通知され
て、タイムアウトが二次メモリ上の書き込み転送の間に
生じる。
込み転送に関しては、第3の場合には、データエラーが
一次メモリから状態に示されて、一次メモリからは応答
が受け取られない。各CPUのインタフェース制御器
は、他のメモリモジュールからの応答を待機する。デー
タエラーが他方のメモリからの状態に発見されない場合
には、所有変更が行われて、割り込みが通知される。し
かし、他方の(新しい一次)メモリに関してデータエラ
ー又はタイムアウトをが生じた場合には、割り込みがプ
ロセッサ40に宣言されて、転送が終了される。
込み転送に関しては、第4の場合には、ライン33−1
及び33−2内の状態のデータエラーを一次メモリ及び
二次メモリが示し、ライン33内の状態エラーに応答し
て、一次メモリ及び他方のメモリから応答が受け取られ
ない場合には、転送が終了し、割り込みが制御バス55
及び43を介してプロセッサ40に示される。
又は15が故障したことが機構により一旦決定される
と、故障状態の信号がオペレータに送られるが、システ
ムは動作し続ける。オペレータは、おそらく、故障モジ
ュールを含むメモリボードを交換しようと望むが、これ
はシステムの電源を入れたまま稼働させて行うことが可
能である。このシステムは、遮断無しに新しいメモリボ
ードを再装着することが可能である。この機構は、ソフ
トエラーのために書き込みの実行に失敗したメモリモジ
ュールを回復するように動作するが、良好と試験された
場合には、物理的交換は不要である。タスクはメモリモ
ジュールを、そのデータが他方のメモリモジュールと同
一となるように、戻すように行われる。この回復モード
は2つのステッププロセスである。まず、メモリは起動
されずにパリティエラーが含まれるものと仮定すると、
良好なパリティを備えた良好なデータが、全てのロケー
ションに書き込まれる。これは、この時点では全てゼロ
であるが、全ての書き込みが両方メモリで実行されるの
で、この第1のステップが完了される方法は、良好なメ
モリ内のロケーションを読み出すことであり、それから
このデータが両方のメモリモジュール14及び15内の
同じロケーションに書き込まれる。これが完了すると、
通常の動作が行われて、完了されたタスクと重ねられ
る。CPUは回復状態にあるメモリを、それがオンライ
ン状態にある化のように扱うが、I/Oバス24又は2
5から発生する書き込みは、この第1段の回復ルーチン
では無視される。全てのロケーションが書き込まれた後
の、次の段階は、I/Oアクセスが書き込まれることを
除き第1のものと同様である。すなわち、I/Oバス2
4又は25からのI/O書き込みは、それらが実行タス
ク内の通常のトラフィックで生じたように実行され、良
好なメモリ内の各ロケーションの読み出しと両方のメモ
リモジュール内の同じロケーションに対するこの同じデ
ータの書き込みと重ねられる。モジュールがゼロから最
大アドレスに対して、この第2のステップでアドレスさ
れた場合には、メモリは同一である。この第2の回復段
階の間、CPU及びI/Oプロセッサは、エラー無しに
全ての動作を実行するべく回復されたメモリモジュール
を期待する。I/Oプロセッサ26,27は、データ読
み出し転送の間に回復されたメモリモジュールにより提
示されたデータを用いることはない。回復プロセスを完
了した後に、回復されたメモリは(必要な場合には)指
定された一次メモリとなることが可能である。
関しても行われる。1つのCPUが故障として検出され
た場合には(メモリ採決器100などによって)、他の
2つのCPUが動作を継続し、不良なCPUボードをシ
ステムを遮断せずに交換可能である。新しいCPUボー
ドがオンボードROM63からのパワーオン自己試験ル
ーチンを実行した場合には、それはこれを他のCPUに
信号を送り、回復ルーチンが実行される。第1に、2つ
の良好なCPUはそれらの状態を大域メモリに複写し
て、それから3つの全てのCPUが「ソフトリセット」
を実行し、それによってCPUのリセット及び開始が、
ROM内の起動ルーチンから実行され、それら全てがそ
れらの命令ストリーム内の正確に同じ地点に来ると、そ
れらは同期化されて、セーブされた状態が3つの全ての
CPUに複写されて戻されて、前に実行されたタスクが
継続される。
回路100は、3つの全てのCPUが同じメモリ参照を
行うかどうかを決定する。そうであれば、メモリ動作が
完了に向けて進められる。そうでない場合には、CPU
故障モードに入る。採決回路100で検出されたよう
に、異なるメモリ参照を転送するCPUは、バス33−
1及び/又は33−2上のバス上で戻される状態と同一
である。割り込みが通知されて、ソフトウェアが続いて
故障のCPUをオフラインにする。このオフライン状態
は状態バス32上で反射される。故障が検出された場合
のメモリ参照が3つの内の2の採決に基づいて行われ
て、不良CPUのボードが交換されるまで、採決回路1
00が、メモリ参照が進められる前に、2つの良好なC
PUからの2つの同一のメモリ要求を要求する。システ
ムは、1つの(2つではない)CPUオフラインで動作
を継続するように、通常は構成されている。しかし、1
つの良好なCPUで動作することを望む場合には、それ
も可能である。あるCPUは、異なるデータがそのメモ
リ要求内で検出された場合には採決回路100によっ
て、及びタイムアウトによって故障であると採決され
る。すなわち、2つのCPUが同一のメモリ要求を送る
が、第3のCPUは所定の時間周期の間に信号を送らな
い場合には、CPUは故障であると仮定され、前述の通
りオフラインに置かれる。
けるソフトウェア再組込み用の機構を備えている。すな
わち、CPU及びメモリモジュールコアは、前述のよう
にハードウェア故障から保護されているが、システムの
I/O部分は、ソフトウェア故障から保護されている。
I/Oプロセッサ26又は27の内の1つが故障した場
合には、上述のように、そのI/Oプロセッサに結びつ
いた制御器30は、ソフトウェアによって他のI/Oプ
ロセッサにスイッチされる。すなわち、オペレーティン
グシステムは、I/Oページ内のアドレスを再書き込み
して、同じ制御器に対して他らしいアドレスを用いて、
それから、これらの制御器が一対のI/Oプロセッサ2
6又は27の内の他方に接続される。エラー又は故障は
バスエラーにより検出可能であり、それは、バスインタ
フェース56でバス周期を終了し、異常の原因を決定す
る異常ハンドラルーチンを介してカーネル内にタスク指
令をする異常を発生し、それから(I/Oテーブル内の
アドレスを再書き込みすることにより)、故障したI/
Oプロセッサ26,27から故障していないI/Oプロ
セッサに全ての制御器30を移動する。
バスエラーを検出すると、エラーは再組込みスキームが
用いられる前に切り離される。CPUが、I/Oプロセ
ッサ26又は27の内の一方、又はバス28の内の1つ
のI/O制御器30の内の一方に対して(すなわち、I
/O素子の内の1つにおいて、制御又は状態レジスタ、
又はデータレジスタの内の1つに対して)書き込みを行
う場合には、これは、メモリモジュール内のバイパス動
作であり、両方のメモリモジュールは、2つのI/Oバ
ス24及び25に対してそれを送るような動作を実行す
る。すなわち、2つのI/Oプロセッサ26及び27は
両方ともバス24及び25を監視して、パリティをチェ
ックし、制御器126を介して好適な構文であるか命令
をチェックする。例えば、CPUがI/Oプロセッサ2
6又は27内のレジスタに対して書き込みを実行する場
合、メモリモジュールの内の一方が有効なアドレス、有
効な命令及び有効なデータ(パリティエラーがなく適当
なプロトコルを持っていることで判明する)を提示する
場合には、アドレスされたI/Oプロセッサはデータを
アドレスされた位置に書き込み、書き込みが成功して完
了したことを示す「Acknowledge」指示でメ
モリモジュールに応答する。両方のメモリモジュール1
4及び15がI/Oプロセッサ26又は27からの応答
を監視し(すなわち、図7のアドレス及びデータ応答信
号及び関連する状態)、両方のメモリモジュールがライ
ン33−1及び33−2上での動作状態でCPUに応答
する。(これが読み出しである場合には、一次メモリモ
ジュールのみがデータを戻すが、状態は両方のモジュー
ルが戻す。)こうして、CPUは、両方のモジュールが
書き込みを正確に行っているか、又は一方のみか、ある
いは両方とも行っていないかを判定可能である。一方の
みが良好な状態を戻し、それが一次メモリである場合に
は、所有を変更する必要がない。しかし、バックアップ
が良好であると戻し、一次メモリが不良である場合に
は、所有変更を行い、正確な実行を行うものが一次メモ
リとされる。いずれの場合にも、割り込みに入り、故障
が報告される。この時点で、CPUはどのメモリモジュ
ールが不良か、あるいはメモリモジュールのダウンスト
リームが不良かを知らない。そこで、同じ書き込みが他
のI/Oプロセッサに対して試みられるが、これが成功
した場合には、メモリモジュールが不要であることを証
明する必要はない。すなわち、最初にアドレスされたI
/Oプロセッサが、例えば、バス24又は25上のライ
ンをハングアップした可能性があり、それによりパリテ
ィエラーが生じたかも知れないからである。そこで、プ
ロセスはI/Oプロセッサを選択的に遮断し、動作の再
試行を行い、両方のモジュールが正確にI/Oプロセッ
サに書き込みを実行したかを見る。そうであれば、シス
テムは、不良のI/Oプロセッサが置き換えられ再組込
みされるまでそれをオフラインにおいたまま動作を継続
することが可能である。しかし、再試行により一方のメ
モリから不良状態が生じた場合には、メモリをオフライ
ンにおくことが可能であり、あるいは、故障切り離しス
テップを実行して故障がメモリにあるのか、そのほかの
素子にあるのかを確認する。これは、全ての制御器30
を1つのI/Oプロセッサ26又は27にスイッチし、
それからオフのI/Oプロセッサにリセット命令を送
り、両方のメモリモジュールを生かしたまま、オンライ
ンのI/Oプロセッサとの通信を再試行する。リセット
されたI/Oプロセッサがバス24又は25をダメにし
た場合には、そのバスドライバがリセットにより切られ
る。オンラインのI/Oプロセッサに(両方のバス24
及び25を介して)通信を再試行して、良好な状態が戻
されれば、リセットされたI/Oプロセッサが故障であ
ることが分かる。両方のメモリモジュールがデータエラ
ー以外の種類のエラーで応答してきた場合には、I/O
転送が終了され、バスエラーがプロセッサに示される。
タイムアウトも同様に処理される。一次メモリがデータ
エラーで応答し、バックアップがデータエラーを有しな
い場合には、所有変更が試みられる。いかなる場合で
も、各バスエラーに関して、ある種の故障切り離しシー
ケンスが実行されて、オフラインにおくことが必要なシ
ステムのコンポーネントが決定される。
図13のCPU及びメモリサブシステムにおけるハード
ウェア故障の処理は重要な特徴である。サブシステム
は、CPU11,12,13及びメモリボード14及び
15、さらにシステムバス、すなわちバス21,22,
23を備えている。ハードウェアが、メモリのパリティ
エラーのような小さな欠陥であろうと、大きなサブシス
テムの故障(例えば、電源故障)であろうと、いくつか
の異常事象を検出した場合には、対象が故障した構成素
子として識別されて、それはシステムから除去されて、
通常の動作が迅速に再始動される。この時点では、故障
したコンポーネントを診断したり再組込みしたりする試
みは行われない、まず、システムの「コア」に関するエ
ラー回復構成について説明し、次いでI/Oバス及びI
/O制御器のエラー回復について説明する。
エラー異常は高順位割り込み又はバスエラーにより指示
される。一般的に、高順位割り込みは、非同期的に処理
可能な、すなわち現在の命令が実行された後のある時に
処理可能なエラーに関して発生される。事例としては、
(1) 前の一次メモリボード14又は15上のハードウェ
ア検出されたエラーにより強制される「所有獲得」操
作;(2) システムバス読み出し上のデータ無しエラー;
(3) 一次メモリ14又は15上でデータエラーを被る
が、バックアップメモリ14又は15によりまだ実行可
能なシステムバス読み出しがある。これら3つの例で
は、カーネルが、ハードウェアが既に回復したエラーを
知らされる。しかし、いくつかの場合では、プロセッサ
が機能停止して、次のような完了不能の動作の終了を待
機する。(1) 所有獲得動作の失敗;(2) 何れのメモリモ
ジュールでも行うことのできないシステムバス読み出し
及び書き込み;(3) 書き込みバッファ52が私用可能で
ある場合のシステムバス書き込み上でのデータエラーの
場合である。割り込みはマスク可能なので、これらは機
能停止を破ることをあてにできず、バスエラーがこの機
能を果たす。
識別されるが、これら2つの異常は、どの種類が生じた
かに留意しない1つの例外ハンドラ内に送ることが可能
である。バスエラーハンドラを通過させる間に、バスエ
ラーが、「エラー無し(nofault)」又はサブスクリプ
ション(subscription)サービスアクセスにより引き起
こされたものとして、又は、ユーザスタック成長(user
stack growth)に起因するものと認識されない場合に
は、それはハードウェア故障コードにそらされる(それ
は高順位割り込みに関するハンドラであり得る)。図1
乃至図8のシステムにより保存されるエラー状態は、い
ずれの異常の種類に関しても等しい。
は、それらがプロセッサ同期の故障を報告するので、潜
在的に非同期的なものの1つである。
るように、ある種のエラーを示すために割当てられた特
定ビットの数を含んでいる: 〔CPU_ERR〕:割り込み同期エラー CPU_ERR_ISビットにより指示される。これは、
CPUの割り込み同期論理内の信号のエラー又はCPU
の逸脱(divergence)を示す。ソフト同期試験が逸脱を
示さなかった場合には、同期ハードウェアの故障を追跡
する。応答は: CPUがCPU_ERR_ISの状態に同意しない場合に
は、異常CPUをオフラインにする。 そうでない場合には、CPU_SERRをソフト採決
し、以下に示すように設定されたビット上で活動する。
CPUbHIGH,CPU_SERR_CPUcHIGH,
CPU_SERR_CPUaLOW,CPU_SERR_C
PUbLOW,CPU_SERR_CPUcLOW,CPU
_SERR_CPUaTIM0,CPU_SERR_CPUb
TIM0,CPU_SERR_CPUcTIM0,CPU_S
ERR_CPUaTIM1,CPU_SERR_CPUbTI
M1,CPU_SERR_CPUcTIM1。 これらのビットは、エラーがフラグされた瞬間に、各C
PU上で割り込み同期回路65に対して入力のスナップ
ショットを示す。応答は:これら4つの入力の内の1つ
のCPUのバージョンが特殊である場合には、その同期
ハードウェアは壊れており、オフラインにおかれる。 〔CPU_ERR〕:プロセッサ同期エラー CPU_ERR_PSビットにより指示される。これは、
CPUプロセッサ同期論理の信号の故障又はCPUの逸
脱を指示する。ソフト同期動作は、逸脱を示さず、同期
ハードウェアの故障を追跡する。応答は: CPUがCPU_ERR_PSの状態に同意しない場合に
は、異常CPUをオフラインにする。 そうでない場合には、CPU_SERRをソフト採決
し、以下に示すように設定されたビット上で活動する。
PU空間の破壊(violation) CPU_SERR_USVで指示される。CPU空間内の
実行されないアドレスが書き込まれる。これは、故障し
たカーネルソフトウェア、又はCPUのハードウェアの
アドレス復号論理内の故障から生じる可能性がある。こ
れは、異常がバスエラーであるか高順位割り込みである
かを問題にする希な事例であることに留意すべきであ
る。USVに関して、書き込みバッファが使用可能であ
れば、高順位割り込みが発生されて、そうでない場合に
は、バスエラーとなる。誤った書き込みが書き込みバッ
ファに行われた場合には、USVが同期的に生じ、異常
フレーム内のPCは有罪の命令を正確に指摘することは
ない。従って、異常の種類は、異常PCが信頼できるか
否かを示すにとまる。応答は: CPUが割り当てられない空間エラーを示す場合には、
カーネルが壊れている。;CPU_ERRADDRから
の不良アドレスを読み出し;エラーを消去するためにC
PU_MASK_CUSVを書き込み;要求される行動を
諮問する。
エラーを示すとすると、それをオフラインにおく。
込み破壊(violation) CPU_ERR_WRVビットにより指示される。書き込
み保護アドレスに対する書き込みが試みられる。これ
は、故障したカーネルソフトウェア、又はCPUから生
じる可能性があり、メモリモジュールは保護RAMに書
き込む。上述の割り当てられない空間破壊(USV)と
同様に、異常の種類は、異常スタックフレーム内のPC
が信頼できるかどうかを示すにとまる。応答は: 全てのCPUが書き込み保護破壊を示す場合には、カー
ネルが壊れている;CPU_ERRADDRから不良ア
ドレスを読み出し;エラーを消去するためにCPU_M
ASK_CWPVを書き込み;要求される行動を諮問す
る。 そうでない場合には、1つのCPUのみがエラーを示す
とすると、それをオフラインにおく。
il)故障 次のビットにより指示される。 CPU_ERR_CPUaDRF,CPU_ERR_CPUb
DRF,CPU_ERR_CPUcDRF,CPU_ERR
_IOP0DRF,CPU_ERR_IOP1DRF,CP
U_ERR_MPDRF エラーは、信号ソース、バックプレーン(backplan
e)、又は個々のCPUに存在する可能性がある。CP
U_ERRは、メモリモジュール14及び15ではな
く、全てのソースから二重レース故障を記述する。CP
U_ERRに適合するべく、メモリモジュールから送ら
れる二重レール信号は非常に異なっているので、これら
の故障はシステムバス状態レジスタ、CPU_RSB及
びCPU_RSBに位置している。応答は: 3つの全てのCPUが特殊なDRFが存在することに同
意すると、不良信号のソースが不能化される。 そうでない場合には、異常CPUを不能化する(信号は
故障の検出により不活性に駆動され、それは信号ソース
が将来にわたって不能であるのと同様であるが、被告は
不良CPUである。) 〔CPU_ERR〕:電源システム状態変更割り込み CPU_ERR_POWERビットにより指示される。応
答は:CPU_POWERを読み出し、下に示すように
設定されたビット上で活動する。
ータ及びバッテリー状態 以下のビットで示される。 CPU_POWER_BATTaSTS1,CPU_POW
ER_BATTaSTS2,CPU_POWER_BATTc
STS1,CPU_POWER_BATTcSTS2,CP
U_POWER_BULKaSTS1,CPU_POWER_
BULKaSTS2,CPU_POWER_BULKcST
S1,CPU_POWER_BULKaSTS2,CPU_P
OWER_BATTaMON1,CPU_POWER_BA
TTaMON2,CPU_POWER_BATTcMON1,
CPU_POWER_BATTcMON2,CPU_POW
ER_BULKaMON1,CPU_POWER_BULKa
MON2,CPU_POWER_BULKcMON1,CP
U_POWER_BULKcMON2, このレジスタでは、STSビットが、物理的に存在する
1つの指示構成素子にセットされ;MONビットは、対
応するSTSビットと同じ状態に最初にセットされる書
き込み可能マスクである。高順位割り込みは、MONラ
インがそのSTSラインに適合しない場合に発生され
る。これらの二重ライン信号は、二重レール信号ではな
いことに注意のこと。STSライン1及び2は常に適合
すべきである。応答は:現在のMONビットをセーブ
し;現在のSTSビットを読み出し、それらをMONビ
ットに書き込み(この電源状態変更割り込みをマスキン
グし);セーブされたMONビットを現在のSTSビッ
トを比較し;バッテリー又は大容量レギュレータ用のS
TSラインが変更されると、電源故障割り込みハンドラ
を呼び出す。
状態変更割り込み 少なくとも、CPU、メモリモジュール、又はI/Oプ
ロセッサの内の1つが、取り外し又は交換されたことを
示す。CPU_CFG内のカレントのモジュール現在ビ
ットを、(カーネルによりセーブされた)前の状態と比
較することにより、失われた/加えられた構成素子を識
別可能である。応答は: メモリモジュール又はI/Oプロセッサボードが取り外
されると、リセットに保持し;それを欠落としてマーク
し;「/config」から除去する。 CPUボードが取り外されると、それを欠落としてマー
クし;「/config」から除去する。 カーネルは、ハードウェア異常から戻ると、CPU_C
FGの状態をセーブする。参照として、構成変更(ボー
ド故障、引き出し、再挿入、バッテリー再生など)は、
次のハードウェア異常が取り出された場合に、現在のも
のとセーブされたCPU_CFGのバージョンを比較す
ることにより通知可能である。
ールの一次子エラー 2つのメモリモジュールが一次子であることを請求す
る。これは、故障した所有獲得動作の結論である。2つ
のメモリモジュールの一次子の検出時、CPUは、ある
べきシステムバス所有ビットを補足し、前に獲得した所
有動作一次にスイッチして戻る。応答は:バックアップ
をソフトリセットし、それをオフラインにおく。 〔CPU_ERR〕:メモリモジュール一次子及び回復
エラー メモリモジュール14又は15は、両方一次であること
及び、場合によっては指示されたメモリモジュールの制
御レジスタ内で拾われたビットのために、回復モードで
あることを請求する。また、メモリモジュール一次子上
の二重レール故障である場合もある。応答は:所有獲得
を行い、バックアップをソフトリセットし、それをオフ
ラインにおく。
トビット 次のビットにより指示される。 CPU_ERR_TMRCaTMOR,CPU_ERR_T
MRCcTMOR,CPU_ERR_TMRCaTMOTO
S,CPU_ERR_TMRCcTMOTOS,CPU_ER
R_TMRCaTMOW,CPU_ERR_TMRCcTM
OW。
に、1又は2以上のCPUがタイムアウトであることを
指示し、これらのビットは、システムバスがメモリモジ
ュール14又は15の内の1つをタイムアウトにした理
由を記述する。これは、メモリモジュール上の自己チェ
ック論理の結果であり、割り込みエラーが検出されたた
めに、ボードを停止する。他には、メモリモジュールの
内部エラーのインジケータは存在しない。応答は:メモ
リモジュールをソフトリセットし、それをオフラインに
おく。
により指示される。応答は:CPU_ERR_RSBxビ
ットの両方又は一方がセットされると、対応するCPU
_RSBxレジスタを読み出し、下に示すように設定され
たビット上で活動する。
トにより指示される。1つのCPUのデータが他のもの
とエラー比較される。データは、所有獲得、モジュール
現在DRF、システムバスパリティ信号であり得る。応
答は:CPUxをオフラインにおく。
U_RSB/CPUxビットで指示される。指示されたC
PUは、システムバス要求又は所有獲得を逃す(又は起
動する)唯一のものである。応答は:CPUxをオフラ
インにおく。
トにより指示される。これはいくつかの故障で有り得
る。(1) 有効であるが欠落した(割り当てられない)大
域メモリへのアクセス;(2) 存在しない大域メモリへの
アクセス;(3) 大域メモリへの書き込み保護破壊;(4)
データやエラー(メモリからのデータ内のパリティエラ
ー)。応答は:TMRC_ERRを読み出し;TMRC_
ERR_ABSENTRAM,TMERC_ERR_NE
XIS_TRAM又はTMRC_ERR_WPVが何れも
がセットされていない場合にはデータエラーと仮定さ
れ、必要な場合には、所有獲得を実行し、故障メモリモ
ジュールをバックアップを作成し;バックアップをソフ
トリセットし;バックアップをオフラインにおく。
い大域RAMへのアクセス TMRC_ERR_NEXISTRAMビットにより指示
される。応答は:局所RAM書き込み保護破壊に類似す
る活動を実行する。
AMへのアクセス TMRC_ERR_ABSENTRAMビットにより指示
される。応答は:局所RAM書き込み保護破壊に対する
ものと類似の活動を実行する。
き込み保護破壊 TMRC_ERR_WPV又はTMRC_ERR_CPUビ
ットにより指示される。このエラーは、CPUアクセス
により、又は大域RAM内のVME主書き込みにより引
き起こされる可能性がある。TMRC_ERR_CPUは
どれが被告であるかを知らせる。試みられた書き込みの
アドレスは、TMRC_ERR_ADDR内でラッチされ
る。応答は: CPUが書き込みを起動すると、局所RAM書込み保護
破壊に対するものと類似の活動を実行する。 そうでない場合には、主アクセス故障として処理する。
PU_RSB_DATAビットにより指示される。I/O
プロセッサが不良状態を戻すか、メモリモジュールがI
/Oプロセッサからのデータ読み出し上にパリティエラ
ーを検出した。問題は、メモリモジュールから、又はI
/Oプロセッサ上のI/Oバスインタフェース論理から
くい止めることが可能である。他の可能性としては、I
/Oバスを共有する別I/Oプロセッサが、I/O動作
の故障を引き起こすように故障した場合である。応答
は: システムバスがRIOB/IOPビットをセットする
と、I/Oプロセッサを外す。 そうでない場合には、メモリモジュールがこれらのシス
テムバス状態ビットが一次的なものではないことを示す
と、所有を獲得し;他のI/Oプロセッサを選択し;バ
イパス動作が成功すると、I/Oプロセッサを不能化
し;そうでない場合には、メモリモジュールをソフトリ
セットし、それをオフラインにおく。
ト CPU_RSB_ANY,CPU_RSB_RIOB,CP
U_RSB_DATA又はCPU_RSB_TMOビットに
より指示される。I/Oプロセッサ26又は27がバイ
パス動作に応答しなかった。上述のように、問題は、メ
モリモジュール又はI/Oプロセッサ上のI/Oバスイ
ンタフェース論理により引き起こされる可能性がある。
応答は: 両方のシステムバスがTIMEOUTビットセットを示
すと、I/Oプロセッサが外され、 そうでない場合には、メモリモジュールがこれらのシス
テムバス状態ビットが一次的なものではないと示すと、
所有獲得をじっこうし;他のI/Oプロセッサを選択
し;バイパス動作が成功すると;I/Oプロセッサを不
能化し、そうでない場合には、メモリモジュールをソフ
トリセットし、それをオフラインにおく。
CPU上のタイムアウト CPU_RSB_ANY,CPU_RSB_RIOB,CP
U_RSB_DATA,CPU_RSB_TMO又はCPU
_RSB_CPUxビットにより指示される。いくつかの
可能性がある。(1) CPUタイムアウトに伴うバイパス
エラー(上述);(2) 採決エラーでのバイパスタイムア
ウト(上述);(4) 個別にタイムアウトになったI/O
プロセッサ及びCPU。応答は:CPUxをオフライン
におき、動作を再試行し、単純な事例の内の1つが生じ
ることを期待する。
(dual rail faults) 以下のビットにより指示される。 CPU_RSB_PRIDRF,CPU_RSB_HIGH
DRF,CPU_RSB_LOWDRF,CPU_RSB_
TIM1DRF,CPU_RSB_TIM0DRF,CPU
_RSB_CPUaONLDRF,CPU_RSB_CPUb
ONLDRF,CPU_RSB_CPUcONLDRF,
CPU_RSB_TMRCaONLDRF,CPU_RSB_
TMRCcONLDRF,CPU_RSB_REVDRF,
CPU_RSB_PRESDRFビットCPU_RSB_P
RESDRF(モジュール現在二重レール故障)が故障
した場合には、それが残りの全てを分類するので、メモ
リモジュールからの二重レール故障が宣言されることは
ない。応答: 他のシステムバスがここで二重レール故障を見つけたこ
とに同意すると、信号のソースを不能化し; そうでない場合には、メモリモジュールをソフトリセッ
トし、それをオフラインにおく。
更 CPU_ERR_TOSビットにより指示される。所有獲
得動作は、システムバスエラーに応答してハードウェア
によって強制される。CPU_ERR_RSBa又はCP
U_ERR_RSBcセットもまた見るべきである。応答
は:指示されたシステムバスに関してCPU_RSB状
態ビットで動作する。
通信エラー 割り当てられたビットで指示する。エラーは、一次及び
バックアップTMRCの間の通信で検出される。応答
は:バックアップTMRCをソフトセットし、それをオ
フラインにおく。
バーフロー再生 割り当てられたビットで指示する。大域RAMは、再生
カウンタにより実行されるタイムアウト周期内では再生
されなかった。
ール現在二重レール故障 割り当てられたビット(1ビット/CPU)により指示
される。1つのCPUからのモジュール現在信号内のエ
ラーである。応答は:指示されたCPUをオフラインに
する。
ムアウト 割り当てられたビットにより指示される。I/Oバスア
ービター(arbiter)がバスを許諾の確認が決して取れ
ないI/Oプロセッサに対して許諾した場合。応答
は、:指示されたI/Oプロセッサを不能化する。前述
の副次的段落で示されたいくつかのビットは、次の意味
で用いられている。 CPU_RSB_ANY:他の7つのエラービットの内の
1以上がセットされた; aka "bit <6>" CPU_RSB_DATA:無効なデータが読み出された
か、データが正しく書き込まれない; aka "bit <6>" CPU_RSB_RIOB:IOP上のエラーか、RIO
Bインタフェース論理内のエラー; aka "bit <4>" CPU_RSB_TMO:RSB動作中に1以上のCPU
がタイムアウトになったか、バイパス動作上にRIOB
エラーがあった; aka "bit <3>" CPU_RSB_CPUa:CPUaがRSBエラー内で疑
われた; aka "bit <2>" CPU_RSB_CPUb:CPUbがRSBエラー内で疑
われた; aka "bit <1>" CPU_RSB_CPUc:CPUcがRSBエラー内で疑
われた; aka "bit <0>" 〔I/Oサブシステム故障検出、エラー回復及び再組込
み〕各I/Oプロセッサ26,27は自己チェック型故
障ファスト(fail-fast)制御器であり、ハードウェア
故障中のシステムのコアに対するリスクを最小限に抑え
る。BIM29と組み合わされて、各I/Oプロセッサ
26,27は、エラーのあるVME制御器30からCP
U及びメモリサブシステムを保護する。CPU/メモリ
サブシステム故障とは異なり、ソフトウェアは単独でI
/Oプロセッサ26,27から回復し、かかる故障から
回復するために必要な冗長性を提供する能力を有する。
各種公知のI/Oプロセッサ26,27及び制御器30
の故障に関する回復手順を以下に説明する。
ブシステム内の故障の取り扱いを説明することである。
I/Oサブシステム内に故障が生じた場合に、一次的目
標は、故障の構成素子、すなわちI/Oプロセッサ2
6,27、又はI/O制御器30、又はI/O装置14
8を識別し、通常の動作が回復するように、それらをシ
ステム構成から除去することである。
から構成されている。すなわち、レジスタ名とレジスタ
により記述可能なエラー条件である。レジスタ及びそれ
らのビットに関する名前は、CPU及びI/Oプロセッ
サ26,27ボード用のカーネルのC言語ヘッダファイ
ルから来ている。レジスタ内の適当なビットが「によっ
て指示される。」という語によってリストアップされ
る。すなわち副次的見出しである。ビットのリストには
通常はエラーの短い説明が付されている。さらに、すぐ
に行動が取られるにしろ、さらに情報が獲得されるにし
ろ、適当な応答又は手順の説明が続けられる。
セッサ26,27が故障した場合に、カーネルはI/O
制御器30を、故障したIOP制御器26又は27をリ
セットする前に、他方の制御器26又は27用の他方の
バス28にI/O制御器30をスイッチする。制御器の
スイッチのプロセスを次ぎに示す: a) 良好なI/Oプロセッサ26又は27のバス28を
獲得する。 b) 故障したI/Oプロセッサに接続された各装置の識
別ルーチンを呼び出す。識別ルーチンは、最低限、制御
器30を調べ、それが応答したかどうかを見る。 c) 識別ルーチンが故障であれば、制御器30をオフラ
インにおく。それはスイッチ不能である。 d) 全ての制御器30をスイッチした後、バス28を解
放する。 e) 不良I/Oプロセッサのレジスタを良好なプロセッ
サのレジスタでマージする。全てのI/Oプロセッサレ
ジスタは、I/Oプロセッサが故障した場合に古い値が
有効になるように、局所メモリ内に複写される。 f) 不良I/Oプロセッサをリセットする。 g) 異常の種類がバスエラーであり、高順位割り込みで
ない場合には、バスエラーとされた割り込みはI/Oプ
ロセッサレジスタに対する書き込みである。ソースレジ
スタの内容を目標I/Oプロセッサレジスタ内の可能な
新しい値を反映するように変更し、最後の命令を再始動
する。 〔I/O制御器回復戦略〕:図1のシステムのアーキテ
クチャは、複製されたI/O制御器30を提供しない。
ディスク鏡映のようなオペレーティングシステムにより
与えられる特徴によれば、I/O制御器30が故障した
場合でも、システムの動作を継続させることが可能であ
る。カーネルは、また、ハードウェア故障(例えば、バ
スエラー、パリティエラー、アクセスエラー)を検出し
処理する装置ドライバとしても機能する。さらに、装置
ドライバは、I/O制御器30に関連するソフトウェア
又はファームウェアを検出する能力を有する。幾つかの
機能を下に示す。 1.iobuscopyin 及び iobuscopyout は、バスエラー、
パリティエラー、及びタイムアウトから装置ドライバを
保護する(そうでなければ、装置ドライバがこれらの事
象を検出する必要がある。それらは、また、I/Oプロ
セッサのハードウェアに対するドライバのインタフェー
スを単純化する。 2.subsciption はCPUに非同期なエラーに対して、
及び、iobuscopyin 及び iobuscopyout 機能のバイパス
を装置ドライバが選択した場合に、バスエラー、パリテ
ィエラー、及びタイムアウトに対して機能する。 3.recovery は制御器30が故障した場合に命令スト
リームを戻す技法である。 I/O制御器30が故障した場合には、オペレーティン
グシステムは制御器が提供する資源を失う。これらの資
源を用いるシステムの呼び出しは、資源がソフトウェア
に複製されていない限り、失敗する。ある実施例では、
ディスクドライバ148が、唯一のシステム内の複写さ
れた周辺装置である。他の実施例では、単一の故障I/
O制御器30がネットワーク上のシステムの有効性に衝
撃を与えないように、イーサネット(ethernet)などの
通信装置を複写する。
常〕I/Oプロセッサ高順位割り込み、又はCPUバス
エラーにより指示される。一般的には、高順位割り込み
は、I/Oプロセッサが、エラーが現在のCPUに対し
て非同期に作用した判断したときに常に発生される。こ
の種のいくつかのエラーを下に示す。(1) 制御器30か
らのメモリボード14又は15への無効なアクセス;
(2) バス28上の無効なパリティ;(3) 制御器30から
の無効な要求。これらの事例では、最低限の回復が、I
/Oプロセッサハードウェアにより実行される。故障か
らの回復や故障した構成素子の指摘するための機能を開
始するのはカーネルの責任である。
アクセスしたり、I/O制御器30にアクセスしている
場合には、I/Oプロセッサ又は制御器の故障は、CP
Uボードに戻された不良状態のためである可能性があ
る。CPU11,12,13が不要状態を受け取った場
合には、バスエラートラップがプロセスにより発生され
る。この種のエラーのいくつかを挙げる。(1) バス28
上の無効パリティ;(2)存在しない又は故障した制御器
30;(3) 存在しない又は故障したI/Oプロセッサ2
6又は27。
0の故障を検出する方法が、回復アルゴリズムを決定す
る。高順位割り込みが捕捉されると、カーネルは故障の
種類(I/Oプロセッサか制御器か)を決定し、故障し
た構成素子をオフラインにおく必要がある。この活動を
越えた回復は特殊な故障である。バスエラーが生じた場
合には、カーネルは、I/Oプロセッサレジスタに対す
る格納命令用の目標アドレスを調査しなければならな
い。目標アドレスは、バスエラー異常が生じた場合のバ
ス上のアドレスである。これは、バスエラーが生じた場
合に実行される命令を逆アセンブリすることにより獲得
される。I/Oプロセッサレジスタは、回復プロセスに
より修正可能であり、変更無しに書き込みが完了した場
合には、それは不正確にいくつかの重要ビットを破壊す
る可能性がある。
IOP0HIGH,TMRC_CAUSE_IOP1HIG
Hビットにより指示される。高順位割り込みは、I/O
プロセッサが、自身お論理内にエラーを、又は制御器3
0から/への経路内にエラーを検出した場合に、発生さ
れる。応答は:メモリモジュール上の割り込みI/Oプ
ロセッサを選択し、I/Oプロセッサのハンドラを呼び
出す。I/Oプロセッサの割り込み誘引レジスタを読み
出す。メモリモジュールが読み出しをタイムアウトした
場合には、I/Oプロセッサ上の全ての制御器を他に移
動し、I/Oプロセッサを機能させる。I/Oプロセッ
サをリセットする。割り込みハンドラから出る。割り込
み誘引レジスタ内の各ビットをチェックし、それが活動
であれば、適当な故障ハンドラを呼び出す。割り込みハ
ンドラから出る。 〔IOP_IICAUSE〕:制御バスホグタイムアウ
ト IOP_IICAUSE_BUSHOGビットにより指示
される。制御器30が長時間バス28を保持し、I/O
プロセッサ26又は27により維持されたタイマが終了
される。応答は:識別されたスロットのバスホグエラー
のサブスクライバ(subscriber)を通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、割り込みを消去する。
障、サポートされていない要求 IOP_IICAUSE_LEVER2ビットにより指示
される。制御器30が、サポートされていない要求を備
えたI/Oプロセッサを提示する。それは無効なドレス
変更子、A16主アクセス、又はサポートされていない
A32アドレスである可能性がある。応答は:識別され
たスロットの水準2のサブスクライバ(subscriber)を
通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、割り込みを消去する。
当性検査故障 IOP_IICAUSE_AVビットにより指示される。
制御器30が、CPUにより準備されていない物理アド
レスにアクセスを試みた場合。(制御器は、適当な読み
出し/書き込み許可を有していない、又はI/Oプロセ
ッサ上のアクセス妥当性検査RAM内にセットアップさ
れたスロット数を有していない。)応答は:アクセス妥
当性検査故障のサブスクライバを通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、割り込みを消去する。
破壊 IOP_IICAUSE_PROTOビットにより指示さ
れる。制御器30が、バス信号の無効セットをI/Oプ
ロセッサに提示した場合。制御器30が故障している可
能性もある。応答は:識別されたスロットに関するプロ
トコル故障のサブスクライバを通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、割り込みを消去する。
ラー IOP_IICAUSE_VME_S_PARビットにより
識別される。I/Oプロセッサが制御器30からの不良
パリティを検出した場合。この場合には、制御器は動作
を実行し続けるが、データ、アドレス又は制御パリティ
が正確でない。応答は:識別されたスロットに関するパ
リティエラーのサブスクライバを通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、割り込みを消去する。
上の不良パリティ IOP_IICAUSE_RIOB0PAR又はIOP_I
ICAUSE_RIOB1PARで指示される。パリティ
エラーは、大域メモリ14又は15にアクセスした場合
に、I/Oプロセッサ26又は27により検出される。
両方のI/Oバス24及び25がエラーを提示した場合
には、I/Oプロセッサが故障である。一方のI/Oプ
ロセッサがエラーを提示した場合には、メモリモジュー
ル14又は15、I/Oバス、又はI/Oプロセッサが
故障している可能性がある。メモリモジュールは、それ
がデータを古くした場合に、オフラインにおかれる。さ
らにこの故障を切り離す時間は、後でスケジュールされ
る。応答は: 両方のI/Oバスがパリティエラーを提示した場合に
は、全ての制御器は他方のI/Oプロセッサにスイッチ
する。指示されたI/Oプロセッサをオフラインにお
く。 一方のI/Oバスのみがパリティエラーを提示した場合
には、指示されたメモリモジュールをオフラインにお
く。 I/Oバスパリティエラーのサブスクライバに通知す
る。
がI/Oプロセッサ要求をタイムアウト IOP_IICAUSE_RIOB0TIME又はIOP_
IICAUSE_RIOB1TIMEビットにより指示さ
れる。メモリモジュールはI/Oプロセッサ要求に応答
しなかった。両方のI/Oバスがタイムアウトの場合に
は、I/Oプロセッサが故障している可能性がある。一
方のI/Oバスのみがタイムアウトの場合には、メモリ
モジュール、I/Oバス又はI/Oプロセッサが故障し
ている可能性がある。メモリモジュールは、それがデー
タを古くした場合に、オフラインにおかれる。さらにこ
の故障を切り離すための時間が、後でスケジュールされ
る。応答は: 両方のI/Oバスがパリティエラーを提示した場合に
は、全ての制御器は他方のI/Oプロセッサにスイッチ
する。指示されたI/Oプロセッサをオフラインにお
く。 一方のI/Oバスのみがパリティエラーを提示した場合
には、指示されたメモリモジュールをオフラインにお
く。 I/Oバスパリティエラーのサブスクライバに通知す
る。
セッサから戻されたメモリモジュールからの不良状態 IOP_IICAUSE_MEM0又はIOP_IICAU
SE_MEM1ビットにより指示される。存在しない大域
メモリへのアクセス、保護された大域メモリに対する書
き込み、又は大域メモリに対する動作上の不良パリティ
などにより、メモリモジュールはI/Oプロセッサに対
して不良状態を発生する。両方のメモリモジュールが不
良状態を戻すと、要求のソース、すなわち制御器30が
故障している可能性がある。一方のメモリモジュールが
不良状態を戻すと、メモリモジュール、I/Oバス、又
はI/Oプロセッサが故障している可能性がある。メモ
リモジュールは、それがデータを古くすると、オフライ
ンにおかれる。この故障を切り離す時間は、後にスケジ
ュールされる。応答は: 両方のメモリモジュールが不良状態を戻すと、I/Oプ
ロセッサのエラーレジスタ及びアクセス妥当性検査から
故障制御器30のアクセスを決定する。不良状態のサブ
スクライバに通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、割り込みを消去する。 一方のメモリモジュールが不良状態を戻すと、指示され
たメモリモジュールをオフラインにおく。不良状態のサ
ブスクライバに通知する。
諾タイムアウト IOP_IICAUSE_RIOBGTIMEビットによ
り指示される。I/Oバス許諾が、タイムアウト間隔の
前に受け取られなかった場合。I/OプロセッサがI/
Oバスを要求した時に、一次メモリモジュールが許諾信
号に応答しなかった場合。一メモリモジュール又はI/
Oバスが故障している可能性がある。応答は:タイムア
ウトのI/Oバスのサブスクライバに通知する。バック
アップメモリモジュールを一次する。
セッサ26,27上のレジスタ、又はバス28上の制御
器30にアクセスした場合に、カーネルはバスエラーを
受ける準備をしなければならない。I/Oプロセッサ
が、制御器30に対するアクセスをタイムアウトして、
いくつかの種類のエラーを検出すると、それは、メモリ
モジュール14又は15に戻される不良状態を発生す
る。I/Oプロセッサ誘引レジスタ内のビットは、エラ
ーを切り離すために用いることが可能である。メモリモ
ジュールはまたI/Oプロセッサをタイムアウトするこ
とが可能であり、その結果不良状態がCPUに戻され
る。バスエラーから回復するために、カーネルは、構成
の変更後、最後の命令を再実行するか、前に実行された
命令ストリームのいくつかの公知の地点に戻って実行を
行う必要がある。「公知の地点」は、スタック及びユー
ザのページが、再始動時に適当にマップされるように、
エラー条件として同じ脈絡の中に存在する必要がある。
ティエラー CPU_RSBx_ANY,CPU_RSB_RIOB又は
CPU_RSB_DATAビットにより指示される。メモ
リモジュールはI/Oプロセッサからのデータ読み出し
上のパリティエラーを検出する。エラーが両方のI/O
バスインタフェース上で生じた場合には、I/Oプロセ
ッサが故障している。パリティエラーが一方のI/Oバ
スインタフェース上のみで報告された場合には、メモリ
モジュール、I/Oバス又はI/Oプロセッサの1つが
故障している。少なくとも、1つのメモリモジュールが
良好な状態を獲得できれば、バスエラーは発生されな
い。その代わりに、このエラーは割り込みを介して報告
される。応答は: パリティエラーが、両方のI/Oバスインタフェースに
より報告されると、故障IOPのサブスクライバに通知
される。指示されたIOPがオフラインにおかれる。 パリティエラーが、I/Oバスインタフェース上で報告
されると、他方のI/Oプロセッサを調べる。 調査が失敗すると、指示されたメモリモジュールをオフ
ラインにおく。 調査が成功すると、故障したIOPのサブスクライバに
通知する。指示されたI/Oプロセッサをオフラインに
おく。
E,IOP_STS〕:パリティエラーが検出されたB
IM CPU_RSBx_ANY,CPU_RSB_RIOB,C
PU_RSB_DATA,IOP_IICAUSE_XFE
R及びIOS_STS_SYSFAILビットで指示され
る。BIM29は、I/Oプロセッサ26又は27から
不良パリティを検出し、制御器30をバス28から切り
離す。活動エラーは、別のエラー指示がBIMにより宣
言されることを除いて、バスタイムアウトと同一であ
る。制御器は、他方のI/Oプロセッサにスイッチされ
て、制御器を回復する。応答は:指示されたスロットに
関するパリティエラーのサブスクライバに通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、バスエラー異常を出る。
E〕:バスパリティエラー、マスタ状態マシン CPU_RSBx_ANY,CPU_RSB_RIOB,C
PU_RSB_DATA及びIOP_IICAUSE_M_
PARビットにより指示される。I/Oプロセッサは制
御器30から不良バスパリティを検出した。この場合に
は、CPUは、パリティエラーが制御器30からデータ
ライン上で検出された場合に、「読み出し」を実行す
る。応答は:指示されたスロットに関するパリティエラ
ーのサブスクライバに通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、バスエラー異常を出る。
〔CPU_RSBx,IOP_IICAUSE〕:VME
バスタイムアウト、制御器アクセスタイムアウト CPU_RSBx_ANY,CPU_RSB_RIOB,C
PU_RSB_DATA及びIOP_IICAUSE_XF
ERビットにより指示される。I/Oプロセッサが制御
器30に対する要求をタイムアウトするか、制御器がバ
スエラーで応答した場合。応答は:指示されたスロット
に関するパリティエラーのサブスクライバに通知する。 サブスクライバが存在しないか、サブスクライバが0を
戻すと、制御器30をオフラインにおく。 サブスクライバが1を戻すと、バスエラー異常を出る。 〔CPU_RSBx,IOP_IICAUSE〕:I/O
バスI/Oプロセッサ選択パリティエラー CPU_RSBx_ANY,CPU_RSB_RIOB,C
PU_RSB_DATA,CPU_RSB_TMO及びIO
P_IICAUSE_RIOBIOSELビットにより指
示される。I/Oプロセッサは、CPUがVME制御器
30に対して通過バイパス動作を試みている場合に、メ
モリモジュールからI/Oプロセッサ選択ビット上の不
良パリティを検出した。応答は:他方のI/Oプロセッ
サ上のI/Oプロセッサ誘引レジスタを読み出す。 他方のI/Oプロセッサが選択ビット上でパリティエラ
ーを見つけると、一次メモリモジュールをバックアップ
にスイッチする。バスエラー異常を出て、最後の命令を
再試行する。 他方のI/Oプロセッサが選択ビット上にパリティエラ
ーを見つけないと、他方のI/Oプロセッサに制御器を
スイッチする。I/Oプロセッサをオフラインにおく。 〔メモリ及びCPUの再組込み〕図1乃至図13の故障
許容型コンピュータシステムは、システムのサービスを
全体的に損失させずに、コンポーネントの故障を検出
し、切り離すことが可能である。再組込みは、システム
を実行させながら、新しい又は故障したコンポーネント
(ボード)をシステムに付加するプロセスであり、故障
許容型システムとしての基本的な動作である。CPUボ
ード11,12,13及びメモリボード14及び15の
システムへの再組込みが以下に論じられる。再組込み
は、故障が切り離された直後に開始され、コンポーネン
トがオンラインに戻されるまで行われる。
ンポーネントがリセットされ、オフラインにおかれる。
コンポーネントをオンラインに戻すために、そのコンポ
ーネントの再組込みが必要とされる。再組込みは自動的
に行うことも可能であり、その場合には、オペレーティ
ングシステムは、ユーザによる仲介無しに故障したコン
ポーネントを再組込みすることを試みる。ユーザレベル
のプログラムの要求で、再組込みすることも可能であ
る。
ーネントの決定が行われた後に、行われる一連のステッ
プである。再組込みをプロセスを実行するためのコード
は、次の内の1つが診断されたの地に、システム状態を
回復する役割を負っている。(1) 不良CPU11,1
2,13、(2) 不良メモリボード14,15、(3) 不良
メモリページ。診断は、上述のような、個々のコンポー
ネントにより報告された状態情報に基づいて、エラー割
り込みサブシステムにより実行される。エラー割り込み
サブシステムは、活動がシステムを安全状態におくこと
が必要な場合に行われ、これは、通常は故障したコンポ
ーネントをオフラインにおき、リセットして、電源を落
とすことを意味する。
ーネントが故障した場合に生じる一連の事象であり、次
のような行程を取る。 コンポーネントの故障を指示して割り込みが生じる: 不良CPU11,12又は13 不要メモリ14又は15(又は不良メモリページ) 不良CPUボード11,12又は13である場合: 不良CPUをオフラインにおき、リセットする 通常の動作は継続する オフラインCPUが電源オン自己試験を成功したことを示すと: LMR(局所メモリ再組込み)ルーチン及び有効ページビット マップに関する大域メモリ内のページを割り当てる LMR複写手続に関する大域メモリ内のページを割り当てる 有効ページのビットマップを構築する 状態をセーブする PROMと共有されるデータ構造を構築する 全てのCPU11,12及び13をリセットする (ここでPROMコードをリセット後に制御器に戻す) 状態を回復する LMR: 局所メモリ16内のかくページに関し 有効ビットが有効ページビットマップ内に設定さ れていると、 DMAページを大域メモリ内に確保された ページに複写する 予期される採決エラーを検索する DMAは局所メモリにページを複写し戻す エラー無しを検索する クリアする(LMRルーチン及びその大域ページから自由にな るように) 完了し、通常の動作を継続する 不良メモリである場合: 1つの不良ページであれば、それを再マップする そうでなければ、メモリをオフラインにおき、状態を回復する 全てのメモリページをそれらに複写する エラーがなければ、オンラインに戻る 図14は、故障について全てのモジュールを監視し、故
障モジュールをオフラインにおくプロセスを示してい
る。図15は、再組込みプロセスを示している。図14
では、ブロック171で示されている割り込みハンドラ
ルーチンが、ハードウェアの故障により生じたかどうか
割り込みを評価し;そうでない場合には、通常の割り込
み処理シーケンスに、ブロック172により示されるよ
うに、入り、そうである場合には、故障切り離しコード
に、ブロック173に示されるように、入る。故障切り
離しコードには、バスエラーが検出された場合にも、入
ることが可能である。この故障切り離しコードは、どの
コンポーネントがダウンしたかを、ブロック174に示
すように、決定する。図15に示すように、新しいコン
ポーネント(例えば、メモリモジュール14又は15の
ような)が挿入されると、ブロック175に示すよう
に、コンポーネントはそれに電源オン自己試験手続を行
う。故障であれば、コンポーネントのダウン状態が、再
びブロック176に示されるように入るが、それをパス
した場合には、再組込み状態に、ブロック177に示さ
れるように入る。再組込みが失敗すると、コンポーネン
トダウン状態に入り、成功すると、コンポーネントオン
ライン状態178に入る。
その場合には、CPUはオンライン上にあって、他のC
PUと同じ命令ストリームを処理する。CPUボード故
障状態のメッセージが届くと、カーネルは故障CPUを
リセットして、それをCPUデッド状態にする。CPU
がCPUデッド状態内でリセットから出る。リセットは
2つの残りのCPUにより採決されたソフトリセットの
結果であるか、又はボードがちょうど挿入された場合の
ハードリセットである。メモリボード14又は15上の
採決器100はオンライン上にないCPU11,12又
は13を無視する。残りのCPUは、デッドCPUが電
源オン自己試験の実行を試みている間に、通常の動作を
継続する。示された他の状態は、CPU−Reinta
ble状態であり、これは、予めリセットされたCPU
が、電源オン自己試験を通過したときに、自動的に入る
ものである。このCPUは、ユーザ要求が再組込みとさ
れるまで、この状態を保持する。
がある。最初の段階は、オフラインのCPUが、3つ全
てが同じコードを実行する状態でオンラインに戻るよう
に、全てのCPU11,12及び13を再同期するもの
である。第2の段階は、局所メモリ16を回復、すなわ
ち、オフラインのCPU上の局所メモリ16の内容が、
他のCPU上の局所メモリ16の内容と同一であること
を保証するものである。
次の通りである。 1.カーネルが割り込み優先順位を提起する。 2.カーネルがリセット準備のために完全なプロセッサ
状態をセーブする。 3.カーネルが、所望の戻りPC値をPROMに伝える
ためのデータ構造を構築する。 4.カーネルが全てのCPUをリセットする。 5.PROMがCPU及びコプロセッサレジスタを公知
の状態にする。 6.PROMが戻りPC値を検索しそれをジャンプす
る。 7.カーネルが完全なCPUボード状態を回復する。 CPUが故障の場合には、それは割り込みサブシステム
によりリセットされる。故障したCPUが電源オン自己
試験をパスすると、それは残りのCPUにより再組込み
する適格を有する。故障したCPUがオンラインに戻さ
れる前に、それは、正確に他のCPUと同期され、正確
に同じCPU周期を実行する必要がある。これを実行す
る技法は、全てのCPUをソフトリセットすることであ
る。これにより全てのCPUは、リセットベクトルに戻
され、PROM63内のコードがCPUと再同期され、
同様に電源オンリセットがされる。
で、これは非常に繊細である。この目的のためにPRO
M63から実行されるコードは、電源オンリセットと再
同期とを識別する。電源オンリセットは全ての周辺機器
をリセットし、カーネルの現在の状態を破壊するメモリ
試験を実行するからである。
ドはカーネル内の全てのオペレーティングシステムの従
属を保持する。PROMとの通信は、デー場ブロックを
介して行われ、固定物理メモリアドレスは: struct kernel_restart { ulong kr_magic; /*magic number */ ulong kr_pc; /*program counter to restart*/ ulong kr_pc; /*stack ponter */ ulong kr_checksum; /*checksum of above */ }; マジックナンバーとチェックサムは、戻りPCが有効で
あるかを検査するためにPROMコードによって用いら
れる。マジックナンバーは、再組込みし恋うの間でセッ
トされるだけである。戻りPCにジャンプする前に、P
ROM63から実行されるコードが全てのCPUを、全
てのCPU及びコプロセッサ46をゼロにすることを含
め、同一状態にする(さもなければ、ランダム値により
全てのCPUが採決時に承認されない)。
用いることにより回復され、局所メモリ16の各部ロッ
クを大域メモリ14、15から複写して、再び戻す。こ
の複写戻しは、良好なメモリを不良なメモリに複写する
効果を有する。この技法は、システム構成の2つの特徴
に基づいている。第1に、局所メモリ16の内容は、C
PUのソフトリセットを越えて保存される。第2に、デ
ータのコンセンサスが用いられて、転送状態の終わり
に、どのCPUが採決を失敗したかを示す。
DMAページ複写操作を実行するルーチン自体が大域メ
モリに複写されて、CPU11,12,13が再同期ス
テップから戻ると、それらは大域メモリ14、15内で
この複写ルーチンを実行する。2つの良好なCPUが未
だに完全なカーネル及びデータ構造143,44を備え
ている。不良なCPUはその局所メモリ16内にランダ
ムな不良データ(いくつかの試験パターン)を備えてい
る。大域メモリへのDMAページ複写の後に、採決失敗
を示す採決器100内のエラーが、状態ライン33上で
期待さるが、これは、再同期されたCPUが再びオフラ
インにおかれることを意味しない。しかし、大域メモリ
から局所メモリ16への複写戻しの時に、エラーが問題
を指示する。
いては、かくページを複写するために必要な時間は許容
しがたいほど長くなるおそれがある。複写時間を減少さ
せるために、有効ページの数が、プロセスをスワッピン
グにより減ずることが可能である(ディスクであろうと
大域メモリであろうと)。これにより、再組込みの前後
でのシステムの応答時間に関して、複写されるべきペー
ジ数が減少される。
と、全ての割り込みが、カーネルへの戻り実行の前にP
ROMコードによりマスクされる。一旦、完全なカーネ
ル状態が回復されると、割り込みの優先順位が下げられ
て、未決のエラー割り込みが通常の方法でサービスされ
る。局所メモリ16の回復の間、局所メモリがCPUの
多数上で完全なので、マスク不能割り込みへのフィール
ドが可能になる。これは、再組込みの中断及び不良CP
Uをオフラインに戻すことを含む。
の内容での差異が、大域メモリ14、15の間に採決エ
ラーとして採決器100で検出される。書き込みバッフ
ァ52が可能化の間に、採決故障が生じると、故障アド
レスを決定するための信頼すべき方法は存在せず、エラ
ーは致命的であると考えられ、CPUボードはリセット
される。故障アドレスが知られると、そのセルのみを回
復するための試みが行われる。回復が成功すると、ボー
ドはリセットされない。
タスクが用いられて、採決故障を強制する。パリティス
クラバーは、非常に低い優先順位で実行し、局所メモリ
16から全てのページを大域メモリ14、15内のダミ
ーページに書き込む。3つの局所メモリ16の1つが逸
脱データを含む場合には、採決故障が検出される。パリ
ティスクラバーは、3つの全てのCPUがそれぞれ異な
るデータを含む能力を、ゼロに向かって駆動するに十分
な周波数で実行される。同じパリティスクラバータスク
が、大域メモリ内の逸脱データを検出するために、低い
順位で背景において実行される。
オフラインにおくプロセスが図15に示されている。2
種類のメモリボード故障が示されている。メモリ内のあ
るページのみを指示するページ固有エラー(例えばパリ
ティ)は、メモリ内のあるページのみが故障しているこ
とを示し、一般的故障は、前部のボードが故障している
ことを示す。一般的な故障はメモリボードをリセット
し、ボードがオンラインに戻される前に、全ての斉藤行
を必要とする。ページ固有エラーは、ボードをオフライ
ンにおかずに処理可能である。
ァスト(fail fast)」させたい場合がある。これは、
エラーが大域メモリ内に格納されたデータ内に存在する
場合に、それが短時間に検出され、データが長い間アク
セスされることはない。すなわち、潜在的な故障が強調
的に探索される。2つのカーネルレベルのタスクが用い
られて、メモリをフェール・ファストさせる。一次/バ
ックアップスワップタスクは一次及びバックアップメモ
リ14及び15の役割を交換して、これらのモードの1
つを特定するエラーが検出されることを保証する。パリ
ティスクラバータスクは、前述のように、大域メモリ内
の全てのページがCPUにより読み出され、潜在的なパ
リティエラーを強制することを保証する。
15がオンラインにあり、市島他派バックアップとして
機能可能であることを意味する。RAM104の内容は
他のメモリボードの内容と同一である。一次/バックア
ップ及びパリティ/スクラバータスクが(低順位で)活
動する。メモリオフライン状態は、メモリボードがリセ
ットから戻った状態である。このリセットはボードが動
作している場合にはソフトリセットであり、ボードがち
ょうど挿入された場合にはハードリセットである。一次
/バックアップ及びパリティ/スクラバータスクがター
ンオフされる。それらが1つのメモリをクラッシュする
ことに成功し、他方をクラッシュから防止することが必
要だからである。メモリボードが、ユーザの要求により
回復状態に入り、再組込みを開始する。この回復状態
は、書き込みのみリムボー(limbo)状態であり、そこ
ではメモリが再組込みの準備をする。回復状態のメモリ
ボードは、全ての書き込み動作を期待しており、それが
オンラインにあっても書き込みエラーチェックを行う
が、読み出しの間にエラーチェックをすることは期待さ
れず、また実行しない。
かれていない時点で、そのRAM104は完全に起動さ
れてはいない。それがオンラインに戻される前に、回復
メモリには良好なメモリボードと同じデータが正確に含
まれている必要がある。再組込み手続には2つのパスが
必要である。これらのパスのそれぞれは、メモリの各ペ
ージをそれ自体に複写することを含み、それは良好なメ
モリから読み出し、両方に書き戻し、従って良好なボー
ド14又は15から回復ボードへとメモリの全てが複写
される効果を有する。第1のパスの固有な目的は、第2
のパスが信頼を持って手続をすることができるように、
メモリ内の各位置に有効なパリティを付与することであ
る。メモリボードは、このステップの間、I/Oバス2
4及び25には見えない。再組込みされるメモリボード
14又は15は、常に良好な状態を、この第1のステッ
プの間ライン33を介してCPUに戻す。第2のパスは
再組込みステップであり、その間に、CPU及びI/O
バス24及び25が両方のメモリボード14及び15を
書き込む。いかなるパリティエラーも真のエラーを指示
する。
つの再組込みパスを実行するために必要な総時間は相当
なものになる。ユーザは、全てのCPU資源の内のどれ
だけが、所定の時間周期にわたって再組込みパスに捧げ
られているかを特定できる。実際のページ複写は、高い
順位にセットされた優先順位及びI/Oバス24及び2
5の排他的所有を備えているカーネルにより行われる。
優先順位は、データが書き戻される前に、割り込みルー
チンがデータを変更しないように提起される。I/Oバ
ス24及び25からのアクセスは、データが書き戻され
る前に、I/Oプロセッサ26、27がデータを変更し
ないようにロックされる。所与のページに関する書き込
み保護ビットは、ページが複写されている間、不能化さ
れている必要がある。ページ複写は、システムが使用さ
れていない時、及びメモリ再組込み政策の選択時にユー
ザにより特定される間隔の間は常に実行される。ブロッ
ク寸法は選択可能であり、例えば、CPUが他のタスク
のために放棄される前に転送される128,1024又
は4096バイトとすることができる。さらにブロック
間の間隔が選択されて、他のタスクに対する再組込みタ
スクの割合が定義される。
セットの試行が、他のメモリからページを再書き込みす
ることによりページを回復するためになされる。ソフト
エラーに関してはこれが問題を訂正する。試行が成功と
看做される前に、メモリが一次にされて、ページが試験
される。再試行がメモリを失敗した場合には、メモリボ
ードがリセットされ、再組込みされる必要がある。
徴によれば、上記に説明したシステムには、電源異常に
際してシステムを規則正しい仕方で遮断し、電源が回復
した場合にシステムを自動的に再始動させるための、電
源異常及び自動再始動手順が備わっている。この電源異
常/自動再始動手順は、交流電力の喪失に関して、図1
のシステムにあるレベルの透過性を与える。この透過性
は、ファイルシステム、アプリケーションプロセス、及
びハードウェア装置に対して与えられる。その意図する
ところは、システムが電源異常の後に、あたかも電源異
常が生じなかったかのようにして動作を再開するという
ことである。電源異常/自動再始動手順は、システムが
穏やかに静止しまた再始動する機構を提供する。
リケーションについて、状態を保管し、電力が回復した
場合に復元することを可能ならしめる。前述したよう
に、この手順はバッテリバックアップ162,163を
必要とし、それによって状態を保管しながら規則正しく
遮断することを実行するのに要する時間の間、システム
に電力を供給する。省略時解釈により、アプリケーショ
ンはシステムに対する電力の喪失を認識しない。基本状
態を保管し、後に電力回復に際して復元することができ
るように、アプリケーションは、電源異常/自動再始動
手順から通知を受け取るように構成されねばならない。
このように構成されたアプリケーションは、電力喪失に
対する透過性レベルを増大し、既に説明した待ち時間不
透過性から回復し得る。
の時系列が図示されている。CPU11,12及び13
は時間171の間、正常の動作で命令ストリームを実行
しており、交流電源異常は時間172で生ずる。この電
源異常は割り込みの形で保守プロセッサ170からCP
U11,12及び13へと合図されるが、遮断は直ちに
は開始されない。代わりに、過渡現象を除外するために
インターバル173にわたって時間遅れが導入され、そ
の後時間174においてこれらのCPUにより、電源異
常信号が発生される。遮断プロセスは期間175にわた
って継続し、時間176で完了する。この期間の間に交
流電力が回復したならば、再始動手順が時間176にお
いて直ちに開始される。後述するように、再始動手順は
期間177にわたって継続し、時間178で完了する。
正常の動作が時間179で継続し、遮断前の時間171
の間でのようにして命令ストリームを実行する。
が電源異常を感知すると、CPU11,12及び13
は、オペレーティングシステムによって処理される割り
込みを受け取る。これは「電源異常表示」の時間172
に起こるが、遮断手順は「電源異常確認」時間174ま
で開始されない。過渡的な電源異常を除外するために、
CPUは遮断へと進む前に特定のインターバル173だ
け待つ。この待ち時間即ちインターバル173の間に、
システムは正常に機能し、命令ストリームを時間171
におけるようにして実行する。電源異常が続くようであ
れば、オペレーティングシステムは電源異常を確認し、
遮断手順へと進む。
ら、バッテリー162及び163の動作がもはや当てに
できなくなる時間までの間の期間により規定されるが、
これは上述した例では4−1/2分である。即ち遮断時
間は4−1/2分より長くてはならず、またずっと短く
あるべきである。その長さは、不揮発性メモリへと複写
すべき揮発性メモリの量と、その時点で状態を保管せね
ばならない実行中のプロセスの数とに依存している。こ
の遮断期間175の間、起動されているプロセス及びデ
バイスドライバには、遮断が差し迫っているという警告
が与えられ、それらが必要な何らかの準備を行うことが
できるようにされる。その場合、プロセスの実行は中断
され、デバイスコントローラの状態は保管される。シス
テムの状態の保管に関与しないデバイス(例えばディス
プレイなど)は、時間174の後にできるだけ早く電力
を落とされ、バッテリー電源162及び163の電力消
費が最小限とされる。カーネル、プロセス及びデバイス
ドライバの揮発性の状態は、不揮発性記憶装置、例えば
ディスク148に保管される。最後に、バッテリー電源
162及び163にはターンオフメッセージが送られ
る。
と、システムは正規のものとは異なるブートシーケンス
を開始する。正規のブート手順が自動的に開始され、少
し後の段階でブートローダが不揮発性記憶装置の電源異
常情報をチェックしてそれが正規のブートか電源異常再
始動かを判断するまで継続される。電源異常再始動の場
合には、オペレーティングシステムの新たなコピーを再
ロードするのではなしに、基本システム状態が不揮発性
記憶装置から復元される。プロセス及びデバイスドライ
バには、それらの特定のアプリケーションや動作を再始
動するために必要な何らかの手順を実行する機会が与え
られる。
イメージ」(これらの用語は互換的に用いられる)は、
カーネル、ユーザプロセス、及びハードウェア装置の揮
発性の状態からなる。この基本システム状態は、電源異
常遮断の間にディスク148へと書き込まれる。より正
確には、基本システム状態の一部がディスクへと書き込
まれる。基本システム状態の残りは既にディスク上にあ
り、それゆえに書く必要はない。例えばスワップファイ
ルは、ページアウトされたプロセスの実行可能なイメー
ジの部分を含んでいる。また開かれたファイル用の幾つ
かのファイルバッファは、既にディスクへとフラッシュ
されている。
プリケーションに対しては透過性であるが、他のものに
ついてはそうではない。例えばデータ通信セッションが
遮断の時点で設定されていた場合、このセッションが遮
断/再始動サイクルを乗り切るということは非常に考え
にくい。セッションはおそらく時間切れとなり、再設定
することが必要となる。通信コントローラは、通信セッ
ションを再設定するためには、何らかの高次層のソフト
ウェアに頼る必要がある。電源異常/自動再始動手順
は、この高次層のソフトウェアがこのレベルの回復を行
う機会を与える。ルータ、パケットその他の喪失を取り
扱う通信プロトコルには、ある程度の頑強さが元来備わ
っている。遮断/再始動サイクルが顧客に透過性のもの
でなければならない場合には、アプリケーションはこの
頑強さを増強する必要がある。何らかの仕方で多重プロ
セッサにまたがって分散されるどのようなアプリケーシ
ョンも、ユーザに対してかかる透過性をもたらすために
は、電源異常/自動再始動手順を利用せねばならない。
置に直接に装着されたデバイスについてさえ透過性では
ない。例えば巻き戻しをしているテープユニットは、動
作が打ち切られるであろう。この動作をリクエストした
プロセスは、そのとき動作故障エラーを受け取る。一般
に遮断/再始動サイクルは、遮断手順の時間的インター
バル175の間にわたって付勢され利用可能なものでな
いどのようなデバイス(又はそのデバイスを使用してい
るプロセス)についても透過性でない。
ックファイルシステムは通例、電源異常その他によるシ
ステム遮断の存在下では、データの完全性の欠如を示す
ことが予想される。電源異常/自動再始動手順の特徴
は、メモリ内データ(局所メモリ16及び大域メモリ1
4,15内)をディスク148上の対応するイメージと
同期させることによって、この特徴的な弱点を最小限に
するものである。
2つの方法で達成する。時間174において電源異常が
確認されると、電源異常遮断手順の時間175の間には
さらなる遅延書き込みは許されないが、勿論その時点で
係属している正規の動作期間171からの遅延書き込み
は実行される。「遅延」書き込みは、不定の期間の間だ
けメモリに保持されているアプリケーションにより発生
されるディスク書き込みオペレーションであり、実際に
存在するよりも高性能なファイルシステムとしての外観
をもたらすものである。全てのアプリケーション書き込
みはディスクへと強制されるため、ファイルシステムは
同期状態に保たれる。
た、全ての係属中の遅延書き込みオペレーションを直ち
に発生することによって、ファイルシステムはディスク
に同期される。かくして、システムが穏やかに静止する
に際してファイルシステムは同期状態に保たれ、デバイ
ス及びプロセスに対しては期間175の間に通知がなさ
れる。
手順の間の相互作用には、汚れたファイルシステムバッ
ファが関与する。電源異常/自動再始動手順は、システ
ム管理者によって選択されたカーネルパラメータの設定
とは無関係に、ファイルシステムの完全性を確保する。
バッファはファイルシステムに保管される。実際上、電
源異常確認の時点174において、ルーチンに対して呼
び出しが行われ、ファイルシステムの同期が開始され
る。この呼び出しの後、全ての遅延書き込みは強制的に
非同期書き込みとされる。後に、遮断手順は遅延して、
全ての汚れたブロックが基本システムイメージの書き込
みに先立って確実にフラッシュされるようにする。「遅
延書き込み」とは、ファイルシステムが何らかの空のブ
ロックを必要とするまでディスクにはブロックが書き込
まれず、この汚れたブロックが選択される書き込みのこ
とである。また、全ての汚れたブロックをフラッシュす
るために、定期的なファイルシステムの「同期」がオペ
レーティングシステムによって行われる。「非同期書き
込み」とは、ディスクドライバへと書き込みが直ちに発
生されるものである。「非同期」という用語である理由
は、オペレーティングシステムがリクエストを出すが、
その完了を待たないということにある。
はバッテリー162又は163がサポートする期間より
も長くなり得るが、それは回避されるべき状況である。
そのために、ディスク装置のドライバは、所定のディス
ク上でのバッファ間のシーク時間がそのディスクについ
ての平均シーク時間に近づかないことを確実にするため
のヘッドスケジューリングアルゴリズムを用いる。これ
は、ディスク上の位置によってバッファ書き込みを順番
に順序付けることによって達成され得る。
順は、UNIX信号を介して電源遮断の存在及び進行に
関してプロセスに通知する。この目的のためには、特に
SIGPWR信号が利用される。電源異常/自動再始動
手順はこの信号の概念を、プロセスへと伝達される「コ
ード」を含むように拡張している。Unixプロセスは
通常、特別な信号が伝達されたことを示す信号の番号の
みを受け取る。
行しているUnixプロセスは、2つの方法のうち1つ
で構成され得る。即ち「電源異常時キル」か若しくはそ
うでないかである。各々のプロセスは「電源異常時キ
ル」属性を有し、これは設定されると、電源異常遮断処
理期間175の間に送られた信号を変更する。「電源異
常時キル」とマークされたプロセスは、遮断に役立つこ
とを意図するものではないが、かかるプロセスはそのキ
ル前にクリーンアップオペレーションを行い得る。
GPWR信号を無視するように構成されている。このよ
うなプロセスは、「電源異常時キル」属性が設定されな
ければ、電源異常が生じたことを知ることはない。
後、全てのプロセスには時間181において信号が送ら
れる。「電源異常時キル」とマークされたプロセスは、
SIGTERM信号をPFQUIESCEコードと共に
受け取る。他のプロセスにはSIGPWR信号が、PF
QUIESCEコードと共に送られる。いくつかのプロ
セスはこれらの信号を無視することができる。これらの
信号を無視しないプロセスは、手持ちの特定のアプリケ
ーションにとって必要とされる何らかのクリーンアップ
動作を行うことができることに注意すべきである。
「電源異常時キル」用にマークされたプロセスには、時
間182においてSIGKILL信号が送られるが、こ
れは無視することができない。他の全てのプロセスは、
実行が停止される。
モリイメージが非揮発性記憶装置に保管される。電源異
常/自動再始動の特定の実施形態においては、この非揮
発性記憶装置はディスク148である。従って、局所メ
モリ又は大域メモリ内のメモリイメージは、ディスク1
48に書き込まれる。他の実施形態においては、メモリ
ボード14及び15、又は図示しない補助メモリボード
にバッテリーが後置されていて、かくして非揮発性記憶
装置を構成する。
した際、プロセスのメモリイメージは期間177の間に
復元される。プロセスはSIGPWR信号を、電源異常
の回復が完了したことを示すPFRESTARTコード
と共に受け取る。プロセスが遮断中に保管された情報を
再始動又は復元することが必要な場合には、プロセスは
これをそのときに行い得る。
動手順と選択的に相互作用することができる。省略時解
釈によって、プロセスは遮断/再始動サイクルが生じた
ことを知らない。しかしながら、プロセスは遮断及び/
又は再始動の何れかが生じたことをそれ自体で知るよう
にできる。ここで参照しているプロセスとは一般にユー
ザプロセスであり、システムプロセスではない。システ
ムプロセスはInitを除き、何等特別の電源異常/自
動再始動ハンドリングを受け取らない。Initは、S
IGPWR信号を受け取ると、/etc/pfshut
downまたは/etc/pfrestartシェルス
クリプト或いは再始動のそれぞれを実行する。他のシス
テムプロセスは信号を受け取らない。
「再始動時再ブート」の何れが選択されるかとは無関係
に、遮断の間にキルすべき特定のプロセスを選択してよ
い。「再始動時再ブート」が選択された場合には、全て
のプロセスには省略時解釈により、「電源異常時キル」
とマークされる。「電源異常時キル」特性のディスポジ
ションに基づき、プロセスは2つの論理パスの1つを通
る。電源異常が確認された後、「電源異常時キル」とマ
ークされたプロセスは、SIGTERM信号を受け取
る。そのようにマークされていないプロセスは、SIG
PWR信号を受け取る。信号ハンドラは、信号の数、コ
ード、及びsigcontext構造へのポインタとい
う、3つのパラメータを受け入れる。
ロセスについて先ず最初に考える。これらのプロセスは
SIGPWR信号を受け取り、「電源異常時キル」とマ
ークされていない。SIGPWR信号のハンドラは、こ
の時点でプロセスに特有な何らかの手順を実行する。コ
ードはPFQUIESCEに設定され、このSIGPW
R信号の伝達を、再始動手順の間に行われるそれとは区
別する。プロセスがそのプロセス特有の手順を完了した
ならば、休止ユーティリティを呼び出すことによって、
プロセスはさらなる実行を中断する。このプロセスは次
いで、再始動手順の間にPFRESTARTコードと共
にSIGPWR信号が伝達された場合に、休止から復帰
して実行を再開する。
後、実行可能な全てのプロセスは、それらを実行待ち行
列から外すことによって中断される(実際上は、プロセ
スは実行待ち行列に残されてもよいが、スケジューラは
どのプロセスもそれ以上実行するようにスケジュールし
ない)。何らかの事象待ちを中断したプロセスは既に実
行可能な状態を離れているから、これも勿論実行に関し
て考慮されはしない。強制的に中断されたプロセスは、
プロセスがそれらの実行中に生ずるクロック割り込みを
知らないのと同じように、それらの実行を中断し又は再
開するためにカーネルによって用いられたメカニズムを
知ることはない。
ロセスについて考える。即ちSIGTERM信号をPF
QUIESCEコードと共に受け取り、「電源異常時キ
ル」とマークされているものである。PFQUIESC
Eコードは、その信号の伝達が電源異常に関連してお
り、他の何らかのソースに関するものでないことをプロ
セスに知らせる。そのようなプロセスが直接的に行うこ
とは、クリーンアップしてキルすることである。SIG
TERMハンドラが実行を許された後、SIGKILL
信号が全てのそのようなプロセスへと送られる。
考えると、「再始動時再開」タイプのもののみが適用可
能である。「再始動時再ブート」が選択された場合には
勿論、遮断の間に存在していたプロセスは存在しない。
なぜならシステムには、オペレーティングシステムの新
たなコピーが再ブートされるからである。
た、SIGPWR信号を受け取る。全てのユーザプロセ
スへとSIGPWR信号が伝達される前に、管理者が構
成可能な期間にわたって、/etc/pfrestar
tスクリプトが実行される。/etc/pfresta
rtスクリプトの実行メカニズムは、SIGPWR信号
をPFRESTARTコードと共に伝達することであ
る。SIGPWRハンドラはPFRESTARTコード
を受け取るが、これは遮断に際して伝達されたSIGP
WR信号を再始動時に伝達されるそれと区別するために
用いられる。再始動に際して、ハンドラは手持ちのアプ
リケーションに適切とされる動作を開始することができ
る。これには、端末スクリーンをリフレッシュさせるこ
とや、進行中であった何らかのデータベーストランザク
ションを巻き戻すことなどが含まれる。
xの「init」プロセスは、電源異常及び遮断手順の
間に特別なハンドリングを受ける。Initは、「/e
tc/inittab」ファイルを走査し、SIGPW
R信号をPFQUIESCEコード及びPFRESTA
RTコードのそれぞれと共に受け取ると(時間181の
直前に)、POWERFAIL又はPOWERWAIT
動作を実行するように構成されている。管理者はこの手
法で、手持ちの特定のアプリケーションについて遮断又
は再始動を調整するのに役立つシェルスクリプトを構成
することができる。
手順の間の何れでも、すべての他のプロセスに先立ち、
管理者が構成可能なインターバルにおいて、SIGPW
R信号を受け取る。このことはシェルスクリプトが、他
のプロセスが信号を受け取るにつれて生ずる付加的なク
リーンアップ動作によって悪影響を受けるであろう機能
を行うことを可能なものとする。
Oプロセッサ26及び27のようなデバイスにも、状態
を保管し復元する機会が与えられる。デバイスの状態
は、プロセスの状態と同じように、電源異常再始動の間
に復元するように非揮発性記憶装置148に保管され
る。しかしながらデバイスは、遮断又は再始動の進行の
通知について、より高度な細分性を受ける。各々のデバ
イスは、「電源異常ルーチン」を備えて構成されてい
る。このルーチンは、行うべき作動を知らせる各種のコ
ードで呼び出される。
イスの電源異常ルーチンは、図16のPFCONFIR
Mコードで呼び出される。そのデバイスは、適切な何ら
かの動作を行うものである。
常時キル」プロセスがキルされた後、デバイスは時間1
84において、PFHALTコードで呼び出される。こ
のコードは、プロセスの実行が停止されたことを示す。
特にディスクドライバは、それ以上の読み出しを処理す
る必要がないことを知る。進行中の全ての読み出しは、
再始動手順の間に再開するため、待ち行列とされ得る。
間185においてPFQUIESCEコードで呼び出さ
れる。デバイスはこのルーチン呼び出しから、保管され
るべき状態の大きさをバイト単位で返却する。電源異常
/自動再始動手順は次に、その特定のデバイスについて
のこの大きさに等しいスペースが非揮発性記憶装置に確
実に予約されているようにする。
節で述べたようにして予約された保管領域のアドレスで
ある引き数とにより行われる。このデバイスは、その状
態情報を保管領域へと再複写する責任を持つ。次いで電
源異常/自動再始動手順が、このデータの安全を保証す
る。
は、通常のブートシーケンスの間に受け取った標準のデ
バイス識別呼び出しを受け取る。電源異常/自動再始動
手順は、このルーチンから受け取った情報を用いて、電
力停止中にハードウェア装置の構成に変更がないことを
確認する。
ITコードで呼び出される。この呼び出しはディスクド
ライバに対して、そのディスク上に保管されている基本
システム状態の一部を復元するために、それが何らかの
必須の初期設定を行わねばならないことを通知すること
を意図するものである。
発的に保管されたデバイスの状態がメモリバッファへと
導入され、そしてデバイスの電源異常ルーチンはPFR
ESTOREコードとメモリバッファのアドレスの引き
数で呼び出される。
バイスが正規の動作を開始してもよいことを示すPFR
ESTARTの引き数で呼び出される。
同様に、遮断/再始動サイクル期間にわたって保管され
る必要のある状態を有し得る。これはインテリジェント
コントローラについて、より該当しそうなことである。
プロセスと同様に、電源異常/自動再始動手順は各々の
コントローラが、遮断/再始動に選択的に反応すること
を可能ならしめる。
イバは、電源異常ルーチンを持たねばならない。遮断/
再始動に関するカーネルとデバイスドライバの間の通信
は、このルーチンを呼び出すことによって行われる。非
揮発性記憶装置に対する書き込みの最適なスケジューリ
ングをもたらすために、ファイルシステムバッファプー
ルのフラッシング、カーネルメモリの保管、及びデバイ
スの状態の保管のためにデバイスドライバをステージす
る努力が払われる。
のデバイスのドライバの電源異常ルーチンは、PFCO
NFIRMというコマンドパラメータで呼び出される。
これはドライバに対し、遮断に備えねばならないという
知らせを与えるものである。例えばインテリジェントネ
ットワークコントローラ(セッション層のコードを含
む)はこの知らせを用いて、新たな接続を拒絶しなが
ら、係属中の接続を打ち切り、又はやや穏やかに閉じ
る。
各デバイスのドライバの電源異常ルーチンには、時間1
84においてPFHALTのコマンドパラメータでもっ
て、別の呼び出しが行われる。この呼び出しの目的は、
それ以上の読み出しが行われないことをディスクドライ
バに知らせることである。全ての係属中の読み出しは、
再始動手順まで中断される。PFHALTはディスクド
ライバについてだけ意味があり、全ての他のドライバも
これを受け取るが、何も動作を行う必要はない。
SCEパラメータを用いて、デバイスの電源異常ルーチ
ンへと第3の呼び出しが行われる。この呼び出しの目的
は、そのデバイスによって実行された全てのクリーンア
ップ動作が完了しており、そのような動作をそれ以上試
みないよう指示することにある。実際上、デバイスは次
節に記載するダンプ動作を行う場合を除き、カーネル/
ユーザメモリを変更すべきではない。例えばPFQUI
ESCEの後は、kern malloc又はkern
freeに対する呼び出しは行うべきでない。これ
は、基本システムイメージがPFDEVに、つまり基本
システム用の非揮発性記憶領域に書き込まれているから
である。この呼び出しからの返却値は、PFDEV内へ
と保管された基本システム状態にあるこのデバイスのた
めに割り当てられるべき保管領域の大きさの指示であ
る。返却値がゼロであれば、それは保管領域が必要ない
ことを示す。
され、アクセス妥当性検査ラム(AVRAM)において
表される如きデバイスの状態が適切に捕捉できる。この
AVRAMの状態は、基本システム状態の一部として、
PFDEVに書き込まれる。最後に、そのデバイスのド
ライバから領域保管がリクエストされた場合、第4の呼
び出しが電源異常へと、PFDUMPパラメータと、デ
バイスの状態をダンプすべき保管領域のアドレスの引き
数パラメータでもって行われる(PFQUIESCE呼
び出しによってリクエストされた如く)。この場合にそ
のデバイスドライバは、この呼び出しから復帰する前に
その状態情報を保管領域へと複写する責任がある。保管
領域にある情報の書式は、この領域を識別するためにカ
ーネルによって保持されているオーバヘッド情報の他
は、デバイスに特有のものであってカーネルによって規
定されたものではない。PFDEVによってエイリアス
された電源異常区画を含まないデバイス用のドライバ
は、PFDUMP呼び出しの完了に続いてそのデバイス
の電力を落とすべきである。
スダンプを書き込むよう用いられる。従って、ディスク
ドライバはそれ自身の状態をダンプすることはできな
い。なぜならこの状態は、ディスクが最初に読み出され
得るように、ディスクから読み出され回復される必要が
あるからである。ディスクドライバは、その重大な役割
の故に、遮断の間に特別に処理されねばならず、また再
始動されねばならない。ある種のデバイスドライバは、
「再始動時再開」又は「再始動時再ブート」という2つ
のタイプの遮断手順が生じ得る特別な場合を作ることを
要するであろう。再始動のタイプが「再始動時再ブー
ト」である場合には、デバイスダンプが実際にディスク
に書き込まれることはない。なぜならこの状態情報は、
再ブートには不要だからである。しかしながら、デバイ
スドライバはこの事実を知らない。つまり、再始動手順
とデバイスドライバの間の相互作用は、「再始動時再ブ
ート」と「再始動時再開」の両方について同一のもので
ある。デバイスドライバは、そのデバイスドライバのア
ドレススペースにおいてアクセス可能なデータ構造を調
べることにより、進行中の遮断のタイプを判定できる。
カーネルの電源異常/自動再始動手順スイッチの現在の
設定、並びに数値パラメータを示すフラグの値は、「sy
s/rolex/pwrfail.h」というファイルに含まれている。
ついて考える。デバイスの状態は、「再始動時再開」と
指定されたデバイスについてだけ復元される。「再始動
時再ブート」が選択された場合には、システムにはオペ
レーティングシステムの新しいコピーが再ブートされる
から、遮断の間に存在していたデバイスの状態は勿論復
元されない。
れる。この状態には、デバイスの状態の一部を表すアク
セス妥当性検査RAM情報が含まれる。次いで各々のデ
バイスについて、デバイス識別ルーチンが呼び出され
る。そして、PFINITコマンドにより、各々のデバ
イスについてのドライバの電源異常ルーチンが呼び出さ
れる。この呼び出しは、ディスク148のディスクドラ
イバのみを意図している。他の全てのドライバは、これ
を無視できる。この時点においてディスクドライバはそ
れ自身を初期化し、他のデバイスドライバについてのデ
バイスの状態が、電源異常ダンプデバイス、PFDEV
とは離れて読み込まれるようにする。次に、各々のデバ
イスについてのドライバの電源異常ルーチンが、PFR
ESTOREコマンド及び遮断の間にデバイスによって
リクエストされた保管領域のアドレスの引き数でもって
呼び出される。ドライバによってそのデバイスについて
の保管領域がリクエストされなかった場合には、引き数
はNULLである。電源異常ルーチンに対するこの呼び
出しは、何らかの状態情報を再ロードすることである。
場合には、デバイスドライバは単に、遮断の間に保管さ
れた状態を再度捕捉するだけであるということが重要で
ある。PFRESTARTコマンドが発生されるまで
は、デバイスドライバは保管された状態を越える何等の
状態変化も行ってはならない。連続的な再始動/遮断/
再始動サイクルは、PFRESTOREコマンドが多数
回発生されることを必要とするが、この動作は従ってi
dempotentでなければならない。全てのデバイ
スが復元されたならば、PFRESTARTの引き数で
もって、電源異常ルーチンが再び呼び出される。再始動
手順の間には、デバイスドライバのinitルーチンを
呼び出す代わりに、PFRESTARTコマンドで電源
異常ルーチンが呼び出されることに注意すべきである。
この時点においてデバイスは正規の動作を回復し、遮断
手順において保管された状態を越えて状態変化を行い得
る。遮断の間に状態を保管する必要のないデバイスにつ
いては、電源異常ルーチンに対するPFRESTORE
呼び出しは無視できる。次いで電源異常ルーチンに対す
るPFRESTART呼び出しが用いられて、デバイス
が動作を再開するように再度初期化される。どのような
場合でも、非idempotent的な仕方で状態変化
を生じ得るデバイスの動作がPFRESTARTの後に
行われ、その時点より前に行われないということが重要
である。
を読み込むためにディスクドライバが用いられることか
ら、ディスクドライバはそれ自身の状態を保管し又は復
元してはならない。PFRESTORE呼び出しが行わ
れる場合、PFDEVが読み出され書き込まれるよう
に、ディスクドライバは必要とされる何らかの初期化動
作を行わねばならない。ディスクドライバにとっては、
PFRESTART呼び出しは単に、PFHALTにお
いて中断された読み出しを今や継続し得るということを
知らせるに過ぎない。
再始動手順の再始動を経験し得ることに注目することが
重要である。最初のタイプは、システムがいつ実際に電
力を喪失するかである。全てのコントローラ及びデバイ
スは、自動再始動手順までにはリセットされている。2
つめのタイプは、強制された遮断、または遮断手順の間
に交流電力が復帰する過渡的な電源異常の場合に生ず
る。この2つめのタイプは、「フォールスルー(fal
l through)」再始動と呼ばれる。この場合、
PFDEVによってエイリアスされた電源異常区画を含
むディスク装置は、リセットされていない。その場合、
PFINITの引き数によりデバイスの電源異常ルーチ
ンへと行われる呼び出しが用いられて、電源異常再始動
の準備においてデバイスを適切にリセットする。
最中における電力の復元、又は再始動手順の間における
引き続いての電源異常の存在下に取られる動作に関連し
ている。
の期間175及び177)にわたっており、一方が他方
にオーバーラップするよう試みることが可能である。例
えば、電源における短期間の過渡現象を排除するために
遅延173が導入されるとしても、電力は遮断手順の完
了前に回復されうる。期間175の遮断手順がシステム
に電力が復元される前に完了しない場合でも、遮断手順
はとにかく完了まで実行される。次いで時間176にお
いて、どのようなオペレータとの相互作用とも無関係
に、再始動手順が直ちに開始される。この手順を用いて
いるシステムの応答については、ユーザはより長い遅延
を認めるであろうが、174における電源異常確認から
176における完了までの複雑な手順は最小単位の事象
であり、一旦開始されれば完了まで実行される。
が行われている期間175の間に交流電力がシステムに
復元された場合であっても完了まで実行されるという意
味において、「最小単位の」ものである。しかしなが
ら、遮断手順の終わりの時間176において、もしも交
流電力が復帰したならば、再始動手順が直ちに開始され
る。そうでなければ、電源異常/自動再始動手順はバッ
テリーをターンオフし、ブートROMを介して再始動す
るために、システムはパワーアップリセットを必要とす
る。
間に、再始動手順の最中に電源異常が生ずることであ
る。遮断手順とは異なるが、再始動手順もまた完全に最
小単位のものである。再始動手順は「巻き戻し」され
て、再始動されたシステムの状態が非揮発性記憶媒体に
保管されている基本システムイメージから逸脱した後の
いかなる時点においても再開することができる。基本シ
ステムイメージは、メモリへと数回にわたって、損傷を
生ずることなしに再ロードすることができる。しかしな
がら、プロセスの実行が可能にされデバイスの動作が開
始されたならばすぐに、システムの状態は保管された基
本システムイメージを越えて変化する。
れる。何らかのプロセスの実行、または何れかのデバイ
スコントローラにおける状態変化に先立つ、最小単位で
ないidempotent部分187と、プロセスの実
行とデバイスの動作が再始動された場合の最小単位部分
188とである。プロセスの実行とデバイスの動作を再
開するという付託が行われていない場合には、電源異常
の指示の存在は、遮断フェーズ175ではなく、単に安
定した交流電力の回復に対するウェイトを要求するだけ
である。電源異常確認174ではなく電源異常の指示1
72であるというのが、ここでの重要なポイントであ
る。なぜなら、再始動手順の最小単位でない部分187
の間における電源異常の指示は、安定な交流電力の確定
に対する別のウェイトを生ずるからである。プロセスの
実行とデバイスの動作を再開するという付託が行われた
ならば、電源異常確認174の存在下においてでも、全
てのデバイスが再始動されねばならず、次いで全てのプ
ロセスの実行が再開されねばならない。再始動がプロセ
スの実行及びデバイスの動作の再開という最小単位の動
作を完了した場合に、電源異常確認が発生したならば、
完全な遮断サイクルが生ずる。
のプロセスの実行とデバイスの動作の再開の期間での電
源異常確認174の発生、及びこれに続いての遮断手順
の開始(期間175が再開される)は、遮断手順の間に
バッテリー電源162が電力を供給する全体的な期間を
短くする。すぐに繰り返される遮断手順に対するこの制
限の影響を回避するためには、プロセス/デバイスドラ
イバの再始動インターバルができる限り短いことが重要
である。
87の間、電源異常は直ちにシステムが電力を喪失する
ようにし、前述したようにパワーアップリセットを必要
とする。従って、交流電力が安定でなければ、再始動手
順のidempotent部分187は、システムが実
際に再始動される前に数回実行される。電源異常の後で
はあるが、遮断手順が完了する時間までに交流電力が回
復したならば、そのときに直ちに開始される再始動手順
は、idempotent部分の間に第2の電源異常が
生じた場合に短縮される。
動手順の最小単位部分が、「付託」時点186において
入力される。付託時点に到達した場合、電源異常が存在
していたとしても、再始動手順は完了まで実行される。
再始動手順の終了時に電源異常が残存していたならば、
遮断手順が入力される。
つの半体に分割し、その最初のものはidemoten
t部分187であり、2番目のものは最小単位部分18
8である。付託時点186は、各々のデバイスがPFR
ESTOREコードで呼び出しを受けた後に生ずる。そ
のとき電源異常/自動再始動手順は、管理者が構成可能
なインターバルだけ待って交流電力が安定であることを
確認し、再始動を完了するために「付託」を行う。交流
電力確認インターバルは論理的には再始動手順のide
mpotent部分にあり、従ってこの期間の間の電源
異常は前述したように、再びパワーアップリセットを待
つことになることに注目すべきである。 〔システム管理者〕電源異常/自動再始動手順に対する
システム管理者のアクセスには、カーネルのパラメータ
の設定、要求時にシステム遮断を強制すること、遮断及
び再始動時におけるシェルスクリプトの実行、プロセス
ごとに「電源異常時キル」特性を選択的に設定するこ
と、エイリアスされた電源異常ダンプデバイス(PFD
EV)及びこれに関連した電源異常区画を生成するこ
と、及び電源異常の期間にわたってハードウェア再構成
を行うことが含まれる。
がアクセス可能なある種のカーネルパラメータを有す
る。例えば管理者は、「再始動時再現」オプションを選
択することができ、その場合にはシステムのオペレーシ
ョンは基本的に、それが遮断前に中止したところから再
現される。或はまた管理者は、「再始動時再ブート」を
選択でき、それによってオペレーティングシステムは再
現されるのではなく再ブートされる。
ネルパラメータには、次のものがある。(1)電源異常
時から電源異常確認までの時間的インターバル173
(failtime)。(2)電源異常指示/確認のイ
ンターバル173において受け入れ可能な電源異常割り
込みの数の最高限度(intcnt)。(3)一杯に充
電されている場合にバッテリー電源が信頼性をもって機
能し得る時間の長さ(upstime)。(4)「/e
tc/pfshutdown」シェルスクリプトが実行
される場合の電源異常確認174から、全てのユーザプ
ロセスに対してSIGPWR(「電源異常時キル」特性
を有していないプロセス)またはSIGTERM(「電
源異常時キル」特性を有しているプロセス)を送る時間
181までの時間的インターバル。再始動に際しては、
「/etc/pfrestart」シェルスクリプトの
実行から、全てのユーザプロセスへとSIGPWRを送
るまでの間の時間的インターバル190(pwrtim
e)。(5)181において全てのユーザプロセスに対
してSIGPWR(「電源異常時キル」特性を有してい
ないプロセス)またはSIGTERM(「電源異常時キ
ル」特性を有しているプロセス)を送ってから、プロセ
スの実行の中断(「電源異常時キル」特性を有していな
い全てのプロセス)または全てのユーザプロセスへと1
82においてSIGKILLを送る(「電源異常時キ
ル」特性を有している全てのプロセス)迄の間の時間的
インターバル(termtime)。(6)遮断手順全
体の期間をバッテリー電源162,163が信頼性をも
ってサポートできない場合に行うべき動作(shuta
ct)。(7)再始動手順を開始する前に、交流電源が
復元され安定とならねばならない時間の長さ(acti
me)。及び(8)バッテリーが使われていて再充電が
必要なため、バッテリー電源が遮断手順全体をサポート
できないことが明らかな場合に、ブート手順の間に行う
べき動作(resact)。
それらが作動可能であることを確実なものとするため
に、電源異常の発生なしに遮断プロセスを強制できる。
強制遮断は、標準的なインターバルに際して事務ルーチ
ンの一部として行うことができ、それによってバッテリ
ー電源の信頼性を確実にする。電源異常時に生ずるのと
同様の方法で遮断を強制するために、システム呼び出し
が提供される。強制遮断手順と実際の電源異常確認によ
って開始された遮断との違いには、大電力電源の遮断
と、再始動手順の開始とが含まれる。強制遮断は大電力
電源を遮断し、バッテリーが電力を供給する能力を試
す。遮断が強制されたものである場合には、再始動手順
のタイプは常に「再始動時再開」である。再始動手順は
パワーアップの指示によってはトリガされないから、強
制遮断手順のソフトウェアが再始動手順を開始しなけれ
ばならない。
が、/etc/pfshutdown 及び /etc/pfrestart という2つ
のシェルスクリプトの1つに含まれうる。遮断手順は、
/etc/pfshutdown スクリプトを実行する。再始動手順
は、/etc/pfrestart スクリプトを実行する。これらの
スクリプトにおいては、管理者はデータベースマネージ
メントシステムと関連している全てのプロセスを遮断手
順の間にキルし、再始動手順の間にdbmsを再始動す
るといった保守雑用を行うことができる。これらのシェ
ルスクリプトは、電源異常/自動再始動手順の機能性を
管理者が調整するための主要なメカニズムである。
ムの考察〕ディスクシステム148は、全体として基本
システムイメージのための非揮発性保管領域を形成する
電源異常区画を含んでいる。
切に機能することを可能にするために保管されなければ
ならない、全てのプロセス及びカーネルの状態からなっ
ている。プロセスの状態には、Unix領域、データ及
びスタックのページ、そして恐らくは他の情報を含んで
いる。プロセスに関連しているプロセステーブルスロッ
ト及びその他のシステムデータ構造情報は、カーネルの
状態の一部である。「再始動時再ブート」オプションが
選択された場合には、基本システム状態は保管されない
ことに注意すべきである。
している間にI/Oエラーが生じた場合には、「再始動
時再開」をリクエストしているカーネルのパラメータの
値とは無関係に、システムは「再始動時再ブート」に設
定される。遮断手順は中断され、デバイス及びプロセス
の状態は失われる。
オプションが選択されている場合には、ディスクからオ
ペレーティングシステムの新たなコピーを持ち出すにつ
いて、ディスクシステム148が関与する。交流電力が
復元された場合に通常のブートを遂行するのではなし
に、PFDEVに含まれている基本システムイメージ
が、メモリ14,15又は16へとロードされる。この
基本システムイメージには、前述したようにして所定の
デバイスへと通され次いで放棄される、デバイスの状態
情報が含まれる。基本システム状態の他の部分は、恐ら
くは非連続的な部分における、実際のコアのイメージか
らなる。基本システム状態を復元している間にI/Oエ
ラーが生じた場合には、制御は初期のブートシーケンス
へと戻され、「再始動時再開」をリクエストしているカ
ーネルのパラメータの値とは無関係に、オペレーティン
グシステムの新しいコピーがロードされる。
62及び163を形成している各々のバッテリーは、プ
ロセッサ170を介して「バッテリーOK」信号を表
す。これはポーリングによって、又はこの信号の変化に
よって発生される割り込みを介してCPUからモニター
される。電源異常/自動再始動手順はバッテリーOK信
号の存在を、遮断の全体をサポートし得ることを意味す
るものとして解釈する。遮断の「全体」の期間は、シス
テム管理者によって規定される。バッテリーOK信号の
不存在は、バッテリーによって給電されている機器に対
して電力を喪失せずに、又は強烈な放電によってバッテ
リーを損傷することなしに、バッテリーが遮断全体をサ
ポートすることはできないことを意味するものとして解
釈される。いかなる所与のモジュールについても、1つ
のバッテリーがバッテリーOK信号を表しているなら
ば、そのモジュールは遮断の全体をサポートすることが
できる。バッテリー162と163の両方が「バッテリ
ーOK」を表すことは不要である。
OK信号を幾つかの個所で使用する。通常のブート又は
電源異常/自動再始動の間に行われるバッテリー再充電
の遅延は、各々のモジュールにおいて少なくとも1つの
バッテリーによってバッテリーOK信号が表されるまで
待つ。電源異常遮断手順の間、少なくとも1つのバッテ
リーによってバッテリーOK信号が表されなければ、遮
断は中断される。
ブート」又は「再始動時再開」のいずれのオプションが
選択されたかとは無関係に、ブート/再開を開始する前
に遅延が生じさせられる。この遅延は、別の電源異常を
サポートできるように、バッテリー162,163が十
分に充電されうるようにする。即ち、バッテリーが足り
ないためにシステムが別の規則的な遮断を実行すること
ができない場合には、システムをオンラインに戻すこと
は望ましくないのである。ブート手順は、遮断手順がバ
ッテリーを放電させた時間の長さ、及びカーネルのパラ
メータの設定に基づく時間的インターバルにわたって遅
延する。遮断手順はバッテリーの放電時間を最後の再充
電時から蓄積し、この値を非揮発性記憶装置に保管す
る。バッテリーの完全な充電についての遅延時間は、例
えば放電時間の60倍である。
のコアイメージ部分がPFDEVに書き込まれた場合に
重要なことは、各々の書き込みができる限り大きいとい
うことである。これは一つの大きな書き込みで行うこと
が好ましいが、システムのアーキテクチャはこの可能性
を許容しない。従って、大域メモリ14,15が、ユー
ザデータ145のみを含みシステムデータ構造144を
含まない大きな「ウィンドウ」を含むことが必須であ
る。もちろん、大域メモリ14,15におけるこの「ウ
ィンドウ」の大きさが大きくなれば、コアイメージの保
管もそれだけ速くなる。その場合電源異常/自動再始動
手順は、大域メモリからのこの「ウィンドウ」にあるデ
ータを最初にディスク148に書き込むことができる。
次いでシステムメモリ(局所及び大域)の残りは大域メ
モリの「ウィンドウ」に複写されることができ、そして
そこからディスク148に書き込まれる。特に全ての割
り当てルーチンが、電源異常/自動再始動手順が大域メ
モリにおいて使用するこの「ウィンドウ」のどこにも、
システムによって使用されるメモリの部分を割り当てる
ことのないようにしなければならない。データ構造を大
域メモリに割り当てるコードの大部分は、DMA転送そ
の他を達成するために、I/Oサブシステムに関連され
る。
疑似コードのリストは、表Bに記載の時系列及び図16
の関連するタイムチャートと共に、上記に説明した本発
明の1つの実施例の特徴を例示するものである。例示し
た表Bの「時系列」は、1回の遮断/再始動サイクルを
含む、典型的な遮断及び再始動である。これはもちろ
ん、再始動の試みが中止されるか又は多数回行われる場
合に展開される筋書きはバイパスする。この時系列及び
図16に示されている動作シーケンスは重要である。例
えばプロセスの実行は、汚れたファイルシステムバッフ
ァをフラッシュする前に中断されねばならず、またこの
フラッシングはデバイスの状態を静止させダンピングす
る前に行わねばならない。分及び秒単位で表された時系
列中の時間は、例示を行うという目的のみを有するもの
である。
グラムが上記したシステムの現在の構成にアクセスする
ことを可能にするために、/config ファイルシステムと
称する疑似ファイルシステムが加えられている。/confi
g には、各々のソフトウェアサブシステム及びそのシス
テムの各々のハードウェア構成部材のためのファイルが
存在している。図17を参照すると、この /config フ
ァイルシステムのためのツリー構造が例示されている。
/config のためのディレクトリのリストは、常にシステ
ムの真の構造を示しているが、これはシステムが動作し
ている間に構造が変化しうるという、上に示したような
システムにとっては非常に重要である。
は、図1から図12のシステムの現在の物理的なハード
ウェア構造を示している。システムにおいて実際に存在
しているハードウェアのみが、/config ファイルシステ
ムのエントリとして存在している。例えば、スロットC
にメモリボードC(図1のメモリモジュール15)が存
在していない場合には、これに対応するノードtmrc
Cはtmrcディレクトリには現れない。システムに構
成部材が付加されたり、又は除去されたりした場合に
は、ハードウェアサブツリー180は更新される。ハー
ドウェアサブツリー180の中にはCPU用のサブツリ
ー181があり、このサブツリーの下にはCPU11,
12及び13を表している3つの可能なファイル18
2,183及び184があるが、これらは /config/hw/
cpu/cpuA、/config/hw/cpu/cpuB その他のファイルとし
て現れる。同様にメモリモジュール14及び15のため
のサブツリー185があり、その場合両方のメモリモジ
ュール14及び15が存在しているのであれば、/confi
g/hw/tmrc/tmrcA 及び /config/hw/tmrc/tmrcC という
ファイルが現れる。I/Oプロセッサ26及び27用の
サブツリー186は、プロセッサ26及び27のための
サブツリーである /config/hw/iop/iop0 及び /config/
hw/iop/iop1 を有しており、その場合にこれらの各々は
VMEコントローラ30を有し、このコントローラはそ
れぞれがコントローラが占めているVMEスロットに対
応するスロットファイル187に連係されたファイルに
よって表される。SCSIタイプのコントローラについ
ては、iopディレクトリ及びmscディレクトリの両
方においてリンクとして現れる1つのコントローラがあ
る。ls()で見た場合、コントローラの間のリンクは
ハードなファイルシステムリンクとして現れる。
の現在のソフトウェア構成を表すが、ソフトウェアシス
テムの構成部材は、ハードウェアサブツリー180にお
けるこれに類似のハードウェア構成部材よりもずっと漠
然としたものである。システム内の全てのルーチンが特
定のソフトウェア構成部材により識別される訳ではない
が、ソフトウェアサブシステムとして取り扱われ且つ関
連する開始及び停止ルーチンを有する幾らかの構成部材
がある。全部ではないが幾つかのものはまた、サブシス
テム再初期化及び再統合ルーチンをも有している。ハー
ドウェアサブツリーとの主要な区別は、ソフトウェアサ
ブツリーが模写された構成部材を持たないということで
ある。
ンタフェース〕/config ファイルシステムは、各種カー
ネルモジュールに対するフロントエンドであり、/confi
g は、名前により特定のカーネルモジュールのコンポー
ネントを識別し、システムにそのカーネルモジュールを
呼び出させるための機構を提供する。/config は自動的
にブートプロセスの間に取り込まれ、/etc/rc スタート
アッププログラムによる試験に用いられることが保証さ
れる。
のファイルと同様に処理可能である。全てのファイル動
作を試みることが可能であるが、サポートされていない
ものもあり、その場合には、エラーが戻される。/conif
g に対するユーザインタフェースは、標準UNIXシス
テム呼び出しを介してである。システム呼び出しサポー
トの要約を表Cに示した。そこでは、左の列が標準UN
IX呼び出しを列挙する。システム呼び出しは、通常の
プログラム内で又は、これらのシステム呼び出し(例え
ば、ls(1))を形成する指令から作ることが可能であ
る。これらの動作の大部分は、所望のエンティティを開
けて、ioctl(2) システム呼び出しを提示する横により
行われる。例えば、呼び出しを再組込みサブシステムに
提示して、cpuB(CPU12)をダウンさせるために
は、次のコードが実行される。 fd = open("/config/hardware/cpu/cpuB",O_rdwr); ioctl(fd,CCF_DOWN,O); /config ファイルシステム内のノードは、通常の指令、
特に次に示す、/config ファイルシステムのヘッダ cf
s.h 内で規定される ioctl 呼び出しのいくつかのサブ
セットをサポートする。 CF_GETSTATE 状態コードを獲得する
(統合) CF_PGETT パラメータブロックを獲
得する CF_PSET パラメータブロックをセ
ットする CF_INIT 起動する CF_DIAG 診断を実行する CF_DOWN 装置をダウンさせる CF_REINT 再組込みする CF_OFFLINE オフラインにおく CF_RESET リセットする CF_MOVE 移動する(IOP) CF_FAILED 故障としてマークする CF_CTRLINFO pdev/ldev info を獲得す
る CF_CONFIG config_file アレイを獲
得する 全てのノードはCF_GETSTATEをサポートして
いる。int state; ioctl(fd,CF_GETSTATE,&state); 戻りコード、状態の意味はコンポーネントによって異な
るが、ゼロ値は通常の動作状態を指示し、ゼロ以外の値
はそれ以外の動作を指示する。状態の他の値は特定コン
ポーネント用に定義可能である。
g ファイルシステムは、ファイルのイルージョン(ill
usion)を提供するために必要な全てのファイル動作を実
行するシェルを単純かすることを意図しているが、それ
が表示するエンティティの直接の知識は備えていない。
read( )、write( )、ioctl( )のような def procs key
システム呼び出しを用いて、他のカーネルモジュールに
パスされる。他のカーネルモジュールは、/config inod
e(情報ノード)テーブルを介して /config と結ばれ
る。
な、cf_t 型のデータ構造のリンクされたリストであ
る。 typedef struct cf_inode { char *cf_name /* アスキー名 */ ushort cf_untinum; /* >=0 && <100であれば、cf_nameに付加*/ ushort cf_mode; /* chmod(1) に関するモード*/ int cf_size; /* サイズ */ cf_id_t cf_id; /* 特殊ID、proc 用の第1 arg */ cfproc t cf procs; /* defprocs のリスト */ time_t cf_ctime; /* stat.h 内と同様 */ time_t cf_mtime; /* stat.h 内と同様 */ /* ... */ struct cf_inode *cf_next; /* 同じ階層の次のエントリ */ struct cf_inode *cf_sub; /* 副階層の第1エントリ */ struct cf_inode *cf_pard; /* 親ディレクトリ */ struct cf_inode *cf_link; /* リンクのリスト */ }cf_t; 各 cf_t は特定ファイル又はディレクトリ(S_IFD
IRが if_mode 内にセットされた場合にはディレクト
リ)を定義する。一緒に、それらは、図17に示すよう
な、ユーザが見るディレクトリのツリー構造を作成す
る。
と、/config は関連するカーネルモジュール上の要求を
要求又はパスすることで満足する。各ノードは、open,c
lose,reade,write,attr 及び ioctl のようなサポート
された動作に対応する手続(cf_procs)のリストを備え
ている。手続を通過する第1のアーギュメントは、cf_i
fフィールド内に格納された値である。このフィールド
はいかなる値をも含み得るが、典型的には、システム呼
び出しの目標を識別するためのアドレス又は装置番号を
格納する。この値は固有でなければならない。
ルは、図17の /config ツリーに対する全ての、add,r
emove 及び update 動作を実行する必要がある。ハード
ウェアのサブツリーに関しては、一連の使用が容易なイ
ンタフェースルーチンが、表Dに示されるように用いら
れる。これらのルーチンは、適法可能なハードウェア区
画に従ってグループ化される。ソフトウェアのサブツリ
ーに関するインタフェースルーチンは本発明の範囲を越
える。
の表は ls( ) 指令からの選択された出力を示してい
る。
nfig ファイルシステムに関する包含ファイルのプログ
ラムリストが表Fに示される。
て、説明してきたが、この説明は限定的な意味で行われ
たと解してはならない。本発明の他の実施例と共に、開
示された実施例の様々な変更例が考えられることは、当
業者には明白である。従って、本発明に基づく特許請求
の範囲が、本発明に含まれる範囲内で、かかる全ての変
更例又は実施例をカバーしているものと考えられる。
障許容型の改良型高信頼性コンピュータシステムが提供
される。さらに、本発明によれば、高性能でありかつ低
コストであり、特に通常は高い冗長システムに伴うもの
である動作性能に対する負荷を回避可能な、改良型冗長
性故障許容型計算システムが提供される。さらに、本発
明によれば、信頼性、速度及びソフトウェア互換性の観
点から測定された動作性能が、他のより低い動作性能を
有するシステムに比較してコスト面で改良されているよ
うな、高性能コンピュータシステムが提供される。さら
に、本発明によれば、要求時ページングを備えた仮想メ
モリ管理を用いたオペレーティングシステムを実行可能
であり、プロテクト(監視又は「カーネル(核)」)モ
ードを備え、特に多重プロセスを実行可能であり、しか
もこれらが全て高水準の動作性能を有しているような、
高信頼性コンピュータシステムが提供される。さらに、
本発明によれば、故障したシステムのコンポーネントを
検出してそれらをオフラインに置き、システムを遮断せ
ずに、修復されたシステムコンポーネントを再組込み可
能な高信頼性冗長コンピュータシステムが提供される。
本発明によれば、さらに、特に故障許容型の高信頼性コ
ンピュータシステムにおける、改良された電源故障手順
が提供される。さらに、本発明によれば、信頼性及び高
い動作性能を有し低コストで、電源故障時の、冗長性、
故障許容型計算システムの改良された動作が提供され
る。さらに本発明によれば、特に故障許容型の高信頼性
コンピュータシステムの動作の改良された方法が提供さ
れる。さらに、本発明によれば、信頼性及び高い動作性
能を有し低コストで、システムを動作し続けながら、故
障したハードウェアコンポーネントをシステムから外し
置き換えることが可能な状況における冗長性故障許容型
計算システムの改良された動作が提供される。
みをスクリーニングする時間間隔173開始。 0:05 174で電源確認。電源異常条件が継続。同
地はPFCONFIRMメッセージを送る。/etc/pfshu
tdown スクリプトを実行。汚れたファイルシステムのバ
ッファのフラッシングを開始。全ての遅れ書き込みを同
期書き込みに強制。 0:25 電源異常時キルのマークがされなかったプロ
セスが、182でPFQUIESCEメッセージを備え
たSIGPWR信号を送る。 0:55 電源異常時キルのマークがされたプロセス
が、SIGKILL信号を送る。 0:57 プロセス実行の一次停止。装置がPFHAL
Tメッセージを送る。ファイルシステムのフラッシュ完
了の間遅れ。 1:00 装置がPFQUISCE/PFDUMPメッ
セージを送る。I/Oプロセッサ26及び27の状態セ
ーブされる。主な装置状態がPFDEV上に移動され
る。 1:05 PFDEVによりもたらされた電源異常部分
を含まない装置がパワーダウンされる。主なシステム状
態をPFDEV上へのセーブを開始する。 3:30 主なシステム状態がPFDEV上にセーブさ
れる。有効なヘッダをPFDEVに書き込む。システム
遮断が完了。装置をパワーダウンのままにする。電源1
62,163がメッセージを送り、バッテリーを切る。 4:30 バッテリーが切られていない場合には、電源
が信頼できる動作を停止する。 サンプル再始動時間線: 0:00 AC電源が回復される。AC電源を安定にす
る時間が開始する。 1:00 AC電源が安定する。UPSが少なくとも最
低限充電されたバッテリーを指示する。システムがブー
トし、主なシステムイメージのロードが開始される。 1:30 IOP状態が回復される。装置が「id」さ
れ、装置の確認を検証する。装置ドライバは、PFIN
ITメッセージを受け取る。装置ドライバは、PFRE
STOREメッセージを受け取る。主な装置状態が格納
される。 1:35 回復を開始。PFDEVヘッダを無効にす
る。装置ドライバは、PRESTARTメッセージを受
け取る。プロセス実行が除去される。/etc/pfrestart
スクリプトが実行される。 1:55 プロセスがPFRESTARTアーギュメン
トを備えたSIGPWR信号を受け取る。
8つの.slot エントリに加える。 unit の状態を変更する。状態は故障時に(0)であり、通
常時に(1)である。
ト番号)により指摘された構造から取られる。 制御器ノード、二次装置、msc リンクを除去する。 制御器及び局所装置を iop^1 に移動する。制御器
のid フィールド及びldevs は新しい iop 番号を反映す
るように更新される。 制御器の状態をセットする。状態は、故障時に(0)であ
り、通常時に(1)である。
ドを、作成又は更新する: /config/hw/iop/iopn/controller アーギュメント pd は、iop/iopn 及び制御器を決定す
る。Subunit は作成されるサブユニットを指示する整数
インデックスである。name、/config 内に表示されるべ
きアスキー名である。名前に対するポインタのみがセー
ブされ、スペースが装置ドライバにより割当てられる必
要がある。appendunit がゼロでない場合には、サブユ
ニット番号がアスキー名に付加される(port0,port1,po
rt2,…のように名前には手ごろである。ノードが常に存
在すれば、アスキー名のみが変更される。 /config から局所装置を除去する。 局所装置の状態をセット。状態は故障時に(0)であり通
常時に(1)である。
る。 msc unit 及び全ての sub-nodes を除去する。 pd により特定される制御器を msc unit にリンクす
る。 環境コンポーネントを msc unit に加える。component
は、fans,batteries,bulks を指示する cfs.h からのコ
ードである。 環境コンポーネントを msc unit 装置から除去する。 環境コンポーネントの状態を変更する。状態は、故障時
に(0)であり、通常時に(1)である。
t は、fans,batteries,bulks を指示する cfs.h からの
コードである。 主キャビネット環境コンポーネントを除去する。 主キャビネット環境コンポーネントを変更する。状態
は、故障時に(0)であり、通常時に(1)である。
フェースルーチンは3つの低レベルルーチンを用いて構
築される。 parid により指示されるディレクトリの下に新しいノー
ドを作成する。戻された構造内の全てのフィールドは手
動で満たされる必要がある。 parid により指示されるディレクトリの下にノード src
node に対するハードリンクを形成する。戻り構造内の
全てのフィールドが手動でみたされる必要がある。 id により指示されたノードをツリーから除去する。全
ての子及び全てのリンクもまた除去される。
のブロック図である。
ック図である。
サチップの概略的なブロック図である。
ールの1つの概略的なブロック図である。
上で生じる事象を示すタイミング図である。
ッサの1つの概略的なブロック図である。
Oプロセッサの間の転送プロトコルに関する事象対時間
のタイミング図である。
略的なブロック図である。
の物理的メモリマップである。
の仮想メモリマップである。
ロセッサチップ内の仮想アドレス及びTLBエントリの
形式を示している。
ュールのメモリマップ内の私用メモリロケーションを示
している。
ステムのブロック図である。
エラーを切り離し、モジュールをオフラインにおくプロ
セスを示すフローチャートである。
ム回復プロセスのフローチャートである。
間のタイミング図である。
ステムの構造を示している。
Claims (48)
- 【請求項1】同じ命令ストリームを実行する複数のCP
Uを備え、各CPUはそれぞれ局所メモリを備え、同じ
データを格納する複数の大域メモリにアクセスするよう
な、コンピュータシステムを操作する方法であって: (a) 前記CPUの内の1つのCPUのエラーを検出し; (b) 前記1つのCPUをシステムから絶縁し、前記命令
ストリームの実行を継続し、前記CPUの内の別のCP
Uにより前記大域メモリにアクセスし; (c) 前記別のCPUと前記1つのCPUをまず同期させ
ることにより前記1つのCPUを動作可能にし、それか
ら、前記1つのCPUの状態及び局所メモリが前記別の
CPUの状態及び局所メモリと同一となるように回復す
る;ことから成ることを特徴とする方法。 - 【請求項2】前記CPUが3つであり、前記大域メモリ
装置が2つであり、大域メモリ装置の一方が前記複数の
CPUに読み出しデータを送るための一次のものとして
指定され、前記大域メモリ装置の他方がバックアップと
して指定されることを特徴とする、請求項1に記載の方
法。 - 【請求項3】前記状態及び局所メモリを格納するステッ
プが、 (a) 他方のCPUの各状態変数を大域メモリに複写し、
状態変数を大域メモリから前記複数のCPUの全ての好
適な状態レジスタに複写することと; (b) 他方のCPUの局所メモリの部分を複写し、大域メ
モリから前記部分を前記複数のCPUの全てにある局所
メモリに複写することと; (c) 他方のCPUの局所メモリに格納された全ての変数
が大域メモリに複写されて、さらに、大域メモリから前
記複数のCPUの全てに複写が行われるまで、他方のC
PUの局所メモリの異なる部分に関して、プロセス(b)
を反復すること;から成ることを特徴とする、請求項1
に記載の方法。 - 【請求項4】(a) 前記1つのCPUを前記コンピュータ
システムから前記システムを遮断せずに、かつ他のCP
Uで前記命令ストリームの実行を継続しながら、除去
し; (b) 前記コンピュータシステム内の前記1つのCPU
を、前記システムを遮断せずに、かつ他のCPUで前記
命令ストリームの実行を継続しながら、交換すること:
から成ることを特徴とする、請求項1に記載の方法。 - 【請求項5】(a) 前記大域メモリ装置の1つのエラーを
検出し; (b) 前記大域メモリ装置の1つを切り離し、前記命令ス
トリームを実行し続け、さらに、前記大域メモリ装置の
残りの大域メモリ装置にアクセスし; (c) 前記大域メモリ装置の前記他方の状態及びメモリ内
容と同一になるように、前記大域メモリ装置の状態及び
メモリ内容を回復することにより、前記大意メモリ装置
の1つを再組込みし; (d) その後、前記大域メモリの1つを含む前記複数の大
域メモリ装置にアクセスする前記命令ストリームを実行
し続けいること;から成ることを特徴とする、請求項1
に記載の方法。 - 【請求項6】(a) I/Oプロセッサからの全てのアクセ
ス要求を無視するように前記1つの大域メモリを構成
し; (b) 一次大域メモリ装置から前記複数のCPUに対し
て、各大域メモリ装置の状態変数を読み出し、前記状態
変数を複数のCPUから前記大域メモリを含む全ての大
域メモリ装置に格納し; (c) 一次大域メモリ装置内に格納された各データ語を前
記複数のCPUに対して読み出し、前記データ語を、複
数のCPUから前記大域メモリ装置を含む全ての大域メ
モリ装置に格納し; (d) 前記1つの大域メモリ装置、I/Oプロセッサから
の全てのアクセス要求を実行するように構成し; (e) ステップ(c)を反復すること;から成ることを特徴
とする、請求項5に記載の方法。 - 【請求項7】2つの前記大域メモリ装置を含み、一方が
一次メモリとして、他方がバックアップメモリとして指
定され、さらに、一次メモリとして指定された大域メモ
リ装置内にエラーが検出されると、大域メモリ装置の指
定が変更されるステップをさらに含むことを特徴とす
る、請求項5に記載の方法。 - 【請求項8】各大域メモリ装置の状態変数を読み出し、
さらに、大域メモリ内に格納された各データ語を読み出
す前記ステップが、前記複数の大域メモリ装置の各々の
データの有効性をチェックすることを含むことを特徴と
する、請求項5に記載の方法。 - 【請求項9】(a) それぞれ局所メモリを備え、概ね同じ
命令ストリームを実行する、概ね同一の構成の第1、第
2、及び第3のCPUと; (b) 概ね同じデータを格納する、概ね同一の構成の第1
及び第2の大域メモリモジュールと; (c) 前記第1、第2、及び第3のCPUのそれぞれを、
前記第1及び第2の大域メモリモジュールのそれぞれに
接続することにより、前記第1、第2、及び第3のCP
Uが前記第1及び第2の大域メモリモジュールに個別に
かつ重複してアクセス可能にするためのバスと; (d) 前記第1、第2、及び第3のCPUの内の1つが動
作不能になった場合であっても、前記CPUが前記命令
ストリームを実行し続け、前記第1及び第2の大域メモ
リモジュールの一方が動作不能になった場合であって
も、前記大域メモリモジュールの一方にアクセスを継続
することと; (e) 動作不能になった前記第1、第2、及び第3のCP
Uの内の1つは、システムを遮断せずに、前記CPUの
内の他方が前記命令ストリームの実行を継続しながら、
システム内で交換可能であることと; (f) 動作不能になった前記第1、第2、及び第3のCP
Uの内の1つが、システムを遮断せずに、前記CPUの
内の他方が前記命令ストリームの実行を継続しながら、
動作可能にされ、通常の機能を実行するように回復され
ることと; (g) 動作不能になった前記大域メモリモジュールの内の
一方が、システムを遮断せずに、前記第1、第2及び第
3のCPUが動作している大域メモリモジュールにアク
セスしながら、交換可能であることと; (h) 動作不能になった前記大域メモリモジュールの内の
一方が、システムを遮断せずに、前記第1、第2及び第
3のCPUが動作している大域メモリモジュールにアク
セスしながら、動作可能にされ、通常の機能を実行する
ように回復されることと;から成ることを特徴とする、
故障許容型コンピュータシステム。 - 【請求項10】(i) 前記第1の大域メモリモジュールに
接続された第1の入力/出力バスと、前記第2の大域メ
モリモジュールに接続された第2の入力/出力バスと; (j) 前記第1及び第2の入力/出力バスの双方に接続さ
れた第1の入力/出力プロセッサと、前記第1及び第2
の入力/出力バスの双方に接続された第2の入力/出力
プロセッサと;から成ることを特徴とする、請求項9に
記載のシステム。 - 【請求項11】(k) 前記第1の入力/出力プロセッサに
接続された第1のI/Oバスと、前記第2の入力/出力
プロセッサに接続された第2のI/Oバスと; (l) 前記第1及び第2のI/Oバスに接続された1又は
2以上のバスインタフェースモジュールと; (m) 各バスインタフェースモジュールに接続された第1
のI/O制御器と; (n) 各I/O制御器接続された1又は2以上のI/O装
置と;から成ることを特徴とする、請求項10に記載の
システム。 - 【請求項12】前記第1、第2及び第3のCPUが、前
記実行が非同期的であるように独立したクロック上で動
作し;前記第1、第2及び第3のCPUは、前記第1及
び第2の大域メモリモジュールへのアクセスを検出し、
アクセスの速いCPUをアクセスの一番遅いCPUが前
記アクセスを実行するまで一次停止し、それからアクセ
スを行うことにより、大域メモリモジュールに対する参
照の事象時に緩やかに同期されること;から成ることを
特徴とする、請求項10に記載のシステム。 - 【請求項13】前記大域メモリモジュールの一方が一次
メモリとして、他方がバックアップメモリとして指定さ
れ、CPUによる書き込み動作が、前記大域メモリモジ
ュールの両方で実行されるが、読み出し動作時、前記C
PUは一次大域メモリモジュールからのみデータを受け
取ることと;いつでも、バックアップ大域メモリモジュ
ールを一次メモリとして指定可能であり、一次大域メモ
リモジュールをバックアップ大域メモリモジュールとし
て指定可能であることと;から成ることを特徴とする、
請求項9に記載のシステム。 - 【請求項14】前記大域メモリモジュールが、前記大域
メモリモジュールに対する前記参照を採決するための手
段を含み、データは、前記大域メモリモジュールに対す
る前記参照を採決するために前記手段に書き込み場合に
のみ採決され、アドレス及び命令は、前記大域メモリモ
ジュールに対する読み出し及び書き込みの両方の参照に
関し採決されることを特徴とする、請求項12に記載の
システム。 - 【請求項15】(a) 前記各I/O制御器が、前記I/O
バス及び前記バスインタフェースモジュールを介して接
続された2つの前記入力/出力プロセッサの内の1つに
割当てられることと; (b) 割当てられたI/O制御器に関して、各入力/出力
プロセッサが、大域メモリアクセスを調整することと; (c) 各入力/出力プロセッサが、不正確な行動について
前記割当てられたI/O制御器を監視し、割り込みを介
してCPUに対するハード及びソフトエラーを報告する
ことと;から成ることを特徴とする、請求項11に記載
のシステム。 - 【請求項16】故障入力/出力プロセッサが切り離され
て、リセット状態に保持され、その割当てられたI/O
制御器が、前記I/O制御器接続された他方の入力/出
力プロセッサに再割り当てされることを特徴とする、請
求項15に記載のシステム。 - 【請求項17】故障したI/O制御器が切り離されて、
リセット状態に保持され、前記I/O制御器が除去され
て交換されるまでパワーダウンされることと;I/O制
御器に取り付けられた故障したディスクドライブモジュ
ールが、切り離されて、前記ディスクドライブが除去さ
れて交換されるまでパワーダウンされることと;から成
ることを特徴とする、請求項11に記載のシステム。 - 【請求項18】前記入力/出力プロセッサの内の1つに
あるエラーを検出するための手段と;前記入力/出力プ
ロセッサに割当てられた全てのI/O制御器が、前記I
/Oプロセッサに接続された他方の入力/出力プロセッ
サに対して、エラーの検出時に再割り当てされること
と;故障した入力/出力プロセスが、システムを遮断さ
せずに、前記他方の入力/出力プロセッサを用いて通常
のシステム動作を続けながら、切り離されて、前記故障
した入力/出力プロセッサがシステム内で交換されて、
その状態を回復することにより動作可能にされること
と;I/Oプロセッサ制御器が前記入力/出力プロセッ
サに再割り当てされることと;から成ることを特徴とす
る、請求項11に記載のシステム。 - 【請求項19】前記ディスクドライブモジュールを切り
離し、パワーダウンするべく、ディスクドライブモジュ
ール上のエラーを検出するための手段と;前記ディスク
ドライブモジュールの鏡映又は等価物を用いて通常の動
作を続けながら、前記ディスクドライブモジュールを、
システムを遮断させずに、システム内で交換させること
と;交換されたディスクドライブが、その鏡映又は等価
物と概ね同一である状態を回復させることにより動作可
能にされることと;から成ることを特徴とする、請求項
17に記載のシステム。 - 【請求項20】エラーのあるI/O制御器から電力を除
去することにより、システムを遮断せずに、システムか
ら前記I/O制御器を切り離すべく、前記I/O制御器
の1つにあるエラーを検出するための手段と;電力を回
復し、その状態を回復し、前記I/O制御器に取り付け
られた全てのI/O装置の動作状態を再確立して、前記
I/O制御器を動作可能にすることにより、前記I/O
制御器をシステムを遮断させずに回復可能であること
と;から成ることを特徴とする、請求項17に記載のシ
ステム。 - 【請求項21】(o) 通常のシステム動作が電源サブシス
テムコンポーネントの1つが故障した場合であっても継
続するように、システム内の冗長性モジュール用の通常
動作電源を供給する二重電源サブシステムと; (p) 二重バッテリーバックアップ電源サブシステムであ
って、主電源が失われ、さらにバッテリーバックアップ
電源の一方が動作不能であっても、システムの遮断を緩
やかに行わせるに十分な電力を供給可能な、前記二重バ
ッテリーバックアップ電源サブシステムと; (q) 全ての残りのクーリングモジュールが故障クーリン
グモジュールを補償するために増加可能なように、各ク
ーリングモジュール上で効果的にセンサをクーリングす
る冗長性クーリングシステムと;から成ることを特徴と
する、請求項11に記載のシステム。 - 【請求項22】前記クーリングモジュール内の1つのエ
ラーを検出するための手段と;前記クーリングモジュー
ル内の1つがシステムを遮断せずに通常のシステム動作
を継続しながら除去可能であり、さらに、システムを遮
断せずに通常のシステム動作を継続しながら前記クーリ
ングシステムを交換可能であることと;から成ることを
特徴とする、請求項21に記載のシステム。 - 【請求項23】(a) 第1、第2及び第3のCPU内でお
暗示命令ストリームを実行し; (b) それぞれ別の第1、第2及び第3の大域メモリアク
セスバスで、前記第1、第2及び第3のCPUのそれぞ
れにおいて大域メモリアクセスを発生し; (c) 前記CPUのアドレス範囲内でほぼ同一のアドレス
空間を備えた第1及び第2の大域メモリモジュール内で
二重にデータを格納し、前記第1、第2及び第3の大域
メモリアクセスバスを介して前記第1及び第2の大意域
メモリモジュールのそれぞれに対してアクセスを実行す
ることと; (d) 前記第1、第2及び第3の大域メモリアクセスバス
から受け取られた場合に、前記第1及び第2の大域メモ
リモジュール内で前記アクセスの何れか一方を採決し、
前記採決が前記アドレスを表す情報を比較することを含
むことと; (e) 前記アクセスが少なくとも2つの前記大域メモリア
クセスバスが同じ情報を表すことによってのみ完了され
ることと; (f) 前記第1、第2及び第3のCPUの内の1つからの
大域メモリアクセスが、前記採決時に他の2つからのも
のと異なる場合に、前記1つのCPUをオフラインにお
き、前記1つのCPUが動作可能にされた後に、システ
ムを遮断させずに、前記1つのCPUをオンラインにお
くこと;から成ることを特徴とする、コンピュータシス
テムを動作する方法。 - 【請求項24】大域メモリアクセス内にエラーが検出さ
れた場合に、前記第1及び第2の大域メモリモジュール
の1つをオフラインにおき、前記1つの大域メモリモジ
ュールが動作可能にされた後に、システムを遮断させず
に、前記1つの大域メモリモジュールをシステム内に戻
すこと;をさらに含むことを特徴とする、請求項23に
記載の方法。 - 【請求項25】前記CPUが同じ命令ストリームをほぼ
同時に実行し、前記第1、第2及び第3のCPUの全て
が同時に同じ大域メモリアクセスを実行するまで大域メ
モリアクセスの実行を一次停止し、第1、第2及び第3
のCPUの全てが割り込みが存在する時間に同じ命令を
実行するように、CPUの外部割り込みの実行のタイミ
ングをとるような、前記だ1、第2及び第3のCPUの
同期化を行うこと;をさらに含むことを特徴とする、請
求項23に記載の方法。 - 【請求項26】(a) 通常の動作時に、メモリからCPU
によりコードを実行し、前記メモリからのページスワッ
ピングと不揮発性格納手段に対するファイルアクセスを
含むことと; (b) コンピュータシステムに対する電源供給の故障を検
出し、それに応答して遮断プロセスを起動し、前記遮断
プロセスがバックアップ電源へのスイッチングを含むこ
とと; (c) 前記遮断手順が、前記不揮発性格納手段内に、実行
されるプロセスの状態を含む前記コンピュータシステム
の状態を格納することを含むことと; (d) 前記遮断手順が完了した後に、前記電源供給が回復
されると、再始動手順が開始されることと; (e) 前記債始動手順が、前記不揮発性格納手段から前記
格納された手段を読み出し、前記手順を再始動し、再ブ
ートせずに実行を継続することを含むことと; (f) 前記電源供給が回復されない場合には、前記バック
アップ電源を遮断して、前記CPUによる実行を停止す
ること;から成ることを特徴とする、コンピュータシス
テムを動作する方法。 - 【請求項27】前記遮断手順が完了される前に前記遮断
手段が前記電源供給を介して完了されることと;前記電
源供給の故障を検出する前記ステップが、前記故障の指
示を受け取った後に、前記遮断手順を起動する前に、前
記故障が単に過渡的なものであるかどうかを決定するた
めに、ある時間周期の間待機することを含むことと;か
ら成ることを特徴とする、請求項26に記載の方法。 - 【請求項28】前記CPUによるコードの実行ステップ
が前記不揮発性格納手段に対する遅らされた書き込みを
含み、前記遮断手順が全ての未決の遅らされた書き込み
を実行し新しい遅らされた書き込みを起動しないことを
含むこと;から成ることを特徴とする、請求項26に記
載の方法。 - 【請求項29】前記電源供給の別の故障を検出ステップ
を含み、前記再始動手順が前記別の故障が選択された時
間遅れの前に生じた場合には終了することと、前記債始
動手順が前記選択された時間遅れの後に別の故障が生じ
た場合には継続されること;から成ることを特徴とす
る、請求項26に記載の方法。 - 【請求項30】前記電源供給がAC回線電源であり、前
記バックアップ電源供給がバッテリーであることと;前
記不揮発性メモリがディスクメモリであること;から成
ることを特徴とする、請求項26に記載の方法。 - 【請求項31】(a) コンピュータシステム用の電源供給
の故障を検出し、それに応答して遮断手順を起動し、前
記遮断手段がバックアップ電源へのスイッチングを含む
ことと; (b) 前記遮断手順が完了する前に前記電源供給が回復さ
れた場合であっても、前記バックアップ電源を用いて完
了させるべく前記遮断手順を継続することと; (c) 前記遮断手順が完了した後に、前記電源供給が回復
された場合に前記コンピュータシステム用の再始動手順
を開始すると同時に、前記電源供給の別の故障がもし生
じた場合にそれを検出し、選択された時間遅れの前に前
記別の故障が生じた場合には前記再始動手順を終了し、
選択された時間遅れの後に前記別の故障が生じた場合に
は前記債始動手順を継続して完了することと; (d) 前記遮断手順が完了した後に、前記電源供給がまだ
回復されていない場合に、前記バックアップ電源を落と
すこと;から成ることを特徴とする、コンピュータシス
テムを動作する方法。 - 【請求項32】前記電源供給がAC回線電源であり、前
記バックアップ電源供給がバッテリーであることと;前
記遮断プロセスが、前記コンピュータシステム上で実行
するプロセスの状態を不揮発性メモリに書き込むことを
含むことと;前記不揮発性メモリがディスクメモリであ
ることと;から成ることを特徴とする、請求項31に記
載の方法。 - 【請求項33】前記再始動プロセスが前記コンピュータ
システムを再ブートせずに、その代わりに、前記遮断手
順の前に存在する状態を回復することを特徴とする、請
求項31に記載の方法。 - 【請求項34】前記電源供給の故障を検出するステップ
が、前記電源の指示を受け取った後に、前記遮断手順を
起動する前に、前記故障が単に過渡的なものであるかを
決定するために所定の時間周期待機することを含み;前
記遮断プロセスが、前記システムのCPU、プロセス及
び装置の状態情報を揮発性メモリ内の選択されたロケー
ションに書き込み、それから不揮発性メモリに前記選択
されたロケーションを書き込むことを含むこと;から成
ることを特徴とする請求項31に記載の方法。 - 【請求項35】(a) 通常ディスク上に格納されているフ
ァイルを遅らせて格納するためにメモリを用いてプロセ
スを実行し; (b) コンピュータシステム用の電源供給の故障を検出
し; (c) 全ての未決の遅らされた書き込みをディスクに対し
行い、さらに別の遅らされた書き込みを提示しないこと
を含む、バックアップ電源を用いた遮断手順に入り、前
記遮断手順は、前記プロセスの状態をディスクに格納す
ることを含み; (d) 前記電源供給が、前記遮断手順の実行の間に回復し
た場合であっても、前記遮断手段を完了すること;から
成ることを特徴とする、コンピュータプロセスを動作す
る方法。 - 【請求項36】前記遮断手順が、前記システムのCP
U、プロセス及び装置の状態情報を揮発性メモリ内の選
択されたロケーションに書き込み、それから不揮発性メ
モリに前記選択されたロケーションを書き込むことを含
むことから成ることを特徴とする請求項35に記載の方
法。 - 【請求項37】(a) 通常の動作時に、メモリからCPU
によるコードを実行し、前記実行が装置に対する呼び出
しを含み; (b) 前記システム用の電源供給の故障の発生を検出し、
バックアップ電源を用いて前記CPUによるコードの実
行を継続し; (c) 前記CPUによる遮断手順の実行を起動し、前記遮
断手順が、前記装置に対する一連の装置呼び出しを提示
すると同時に、実行されるプロセスの状態をセーブする
べくCPUによる前記遮断手順の実行を継続し、 前記装置呼び出しが: (i) 電源故障を指示する第1の装置呼び出しと; (ii) 別の装置の動作の半分を指示する第2の装置呼び
出しと; (iii) 状態をセーブするために装置に必要なメモリ用を
指示する第3の装置呼び出しと; (iv) 前記装置の状態をセーブす為の前記メモリ内のア
ドレスを指示する第4の装置呼び出しと;を含み; (d) メモリ内の前記アドレスに前記装置により書き込ま
れたデータをディスク上に格納し; (e) 前記バックアップ電源を遮断して、CPUによるコ
ードの実行を停止すること;から成ることを特徴とす
る、コンピュータシステムを動作する方法。 - 【請求項38】(a) 前記電源故障の回復を検出し; (b) 前記CPUによる開始手順の実行を起動し、前記開
始手順が前記装置に対する別の一連の装置呼び出しを含
み、 前記装置呼び出しが、 (i) 装置を起動して装置構成を戻すための第5の装置
呼び出しと; (ii) 前記メモリからの前記装置に関する状態のロード
を起動するための第6の装置呼び出しと、前記状態がデ
ィスクからメモリに対して呼び出されたものであるこ
と; (iii) 前記装置の通常の動作を起動するための第7の装
置呼び出しと;を含むこと;を特徴とする、請求項37
に記載の方法。 - 【請求項39】(a) 通常の動作時に、メモリからCPU
によるコードを実行し、前記実行はプロセスに対する信
号を含み; (b) 前記システム用の電源故障の故障の発生を検出し、
バックアップ電源を用いて前記CPUによりコードの実
行を継続し; (c) 前記CPUによる遮断手順の実行を起動し、前記遮
断手順がプロセスに対する一連の信号の発生を含み、同
時に実行されるプロセスの状態をセーブするためにCP
Uによる前記遮断手順の事項を継続し、 前記プロセスに対する信号が、 (i) コードPFRESTARTを備えたSIGPWR
に続く、遮断の間のコードPFQUIESCEを備えた
SIGPWR、又は (ii) SIGKILLに続く、コードPFQUIESC
Eを備えたSIGTERM とを含むことと; (d) 前記状態をディスク上に格納し、 (e) 前記バックアップ電源を遮断して、前記CPUによ
るコードの実行を停止し; (f) 電源故障時のキルに関するプロセスをマーキングす
るステップをさらに含むことと;から成ることを特徴と
する、コンピュータシステムを動作する方法。 - 【請求項40】少なくとも1つのCPU装置と、少なく
とも1つのメモリ装置と、さらに少なくとも1つのI/
O装置とを備えた多重装置を含むコンピュータシステム
を動作する方法であって:前記多重装置のそれぞれのエ
ントリを備えたディレクトリツリーを備えたファイルシ
ステムを作成し;前記システムから前記多重装置の少な
くとも1つを除去し、対応して、前記ファイルシステム
からその装置に関する前記エントリを除去し;前記シス
テムの動を継続しながら、前記システム内の除去された
装置を交換し、交換された装置に関して前記ファイルシ
ステム内の前記エントリを交換すること;から成ること
を特徴とする、方法。 - 【請求項41】前記少なくとも1つのCPUによる命令
ストリームを実行するステップを含み、前記ステップ
が、UNIXオペレーティングシステムを実行すること
と;前記ファイルシステムが、CPU装置用のサブディ
レクトリと、前記少なくとも1つのCPU装置の各々に
関する別個のファイルとを含み、さらに、メモリ装置に
関するサブディレクトリと、前記少なくとも1つのメモ
リ装置の小野のに関する個々のファイルとを含むことを
特徴とする、請求項40に記載の方法。 - 【請求項42】複数のCPUにより同じ命令ストリーム
を実行し;前記CPU装置により、同じデータを格納す
る複数のメモリ装置及び複数の冗長性I/O装置にアク
セスし;前記各CPU装置、前記各メモリ装置及び前記
各I/O装置に関するエントリを備えたディレクトリを
備えたファイルシステムを作成し;前記システムから、
前記CPU装置の内の少なくとも1つ、前記メモリ装置
内の少なくとも1つ又は前記I/O装置内の少なくとも
1つを除去し、対応して、前記ファイルシステムからそ
れに関する前記エントリを除去し;前記CPUに同じ命
令ストリームを実行させながら、前記システム内の前記
除去されたCPU装置、メモリ装置又はI/O装置を置
き換え、置き換えられた装置に関して前記ファイルシス
テム内の前記エントリを置き換えること;から成ること
を特徴とする、コンピュータシステムを動作する方法。 - 【請求項43】前記CPU装置が3台であることと;前
記メモリ装置が2台であることと;少なくとも2台の前
記I/O装置を用いることと;命令ストリームを実行す
る前記ステップが、UNIXオペレーティングシステム
を実行することを含むことを特徴とする、請求項42に
記載の方法。 - 【請求項44】(a) 同じ命令ストリームを実行する第
1、第2及び第3のCPU装置であって、前記各CPU
装置が別のメモリアクセスポートを備え、前記第1、第
2お呼びだ3のCPU装置の内の1つが故障した場合
に、前記1つがオフラインにおかれ、残りの2つが前記
命令ストリームを実行し続け; (b) 第1及び第2のメモリ装置が、二重にデータを格納
するべく、前記CPU装置のアドレス範囲内に同一のア
ドレス空間を備え、前記第1及び第2のメモリ装置の各
々が、それぞれ、前記第1、第2お呼びだ3のCPU装
置の前記メモリアクセスポートに接続された第1、第2
及び第3の入力/出力ポートを備え、前記第1及び第2
のメモリ装置の内の1つが故障した場合に、前記1つが
オフラインにおかれ、残りのメモリ装置が前記CPU装
置によりアクセスされ続け; (c) ファイルシステムが、前記CPU装置又はメモリ装
置の内の1つがオフラインにおかれない限り、前記CP
U装置及びメモリ装置の内それぞれに関するエントリを
備えたディレクトリを格納すること;から成ることを特
徴とする、コンピュータシステム。 - 【請求項45】前記各メモリ装置が、前記CPU装置に
対する第1、第2及び第3のポートを備え、前記ポート
が、アクセスに関してポート間の情報を比較し、少なく
とも2つのポートが各メモリ装置に関する同じ情報を備
えた場合にのみ、アクセスが完了するようにする、採決
手段を備えることと;第1及び第2の入力/出力バスを
含み、前記第1及び第2のメモリ手段のそれぞれが、別
の周辺I/Oポートを備え、前記第1及び第2の入力/
出力バスが、前記第1及び第2のメモリ手段の前記I/
Oポートに個別に接続されていることと;前記第1、第
2及び第3の3つ全てのCPU装置が同じメモリ参照を
実行するまで、メモリ参照の実行を停止することによ
り、前記CPU装置内の命令ストリームの実行を同期化
させるための手段を含むこと;から成ることを特徴とす
る、請求項44に記載のシステム。 - 【請求項46】前記CPU装置の1つが別のクロックを
備え、それによりCPU装置が非同期的に動作し;前記
第1及び第2のメモリ装置の内の1つが別のクロックを
備え、それにより前記CPU装置及びメモリ装置の全て
が非同期的に動作し;前記CPU装置が、最も遅いCP
U装置が、メモリ参照の事象時に、追いつくまで、先頭
のCPUを一次停止することにより相互に緩やかに同期
されることを特徴とする、請求項44に記載のシステ
ム。 - 【請求項47】(a) 第1、第2及び第3のCPU装置が
概ね同一の構成を有し、前記第1、第2及び第3のCP
Uがほぼ同じ命令ストリームを実行し、前記第1、第2
及び第3のCPUの内の1つが故障した場合に、前記1
つのCPUがオフラインにおかれ、残りの2つが前記命
令ストリームを実行し続けることと; (b) 第1及び第2のメモリ装置が概ね同一の構成を有
し、前記第1及び第2のメモリ装置が概ね同一のデータ
を格納し、前記メモリ装置の内の1つが故障した場合
に、前記1つのメモリ装置がオフラインにおかれ; (c) バスが、前記第1、第2及び第3のCPU装置の各
々を前記第1及び第2のメモリ装置の各々に接続し、そ
れにより、第1、第2及び第3のCPU装置が前記第1
及び第2のメモリ装置にそれぞれ別個にかつ二重にアク
セスすることと; (d) 第1の入力/出力バスが前記第1のメモリ装置に接
続され、台の入力/出力ガス場前記第2のメモリ装置に
接続され; (e) 第1の入力/出力プロセッサが前記第1及び第2の
入力/出力バスの双方に接続され、第2の入力/出力プ
ロセッサが前記第1及び第2の入力/出力バスの双方に
接続され; (f) ファイルシステムが、前記各CPU装置、前記各メ
モリ装置及び前記入力/出力プロセッサ用のエントリを
備えたディレクトリを備え;前記各エントリが、対応す
るCPU装置、メモリ装置又はプロセッサがオフライン
におかれると、前記ディレクトリから削除されること;
から成ることを特徴とする、故障許容型コンピュータシ
ステム。 - 【請求項48】前記CPU装置が、前記命令ストリーム
を実行する場合に、UNIXオペレーティングシステム
を実行することを特徴とする、請求項47に記載のシス
テム。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US45506589A | 1989-12-22 | 1989-12-22 | |
US455065 | 1989-12-22 | ||
US461250 | 1989-12-22 | ||
US461402 | 1989-12-22 | ||
US46140290A | 1990-01-05 | 1990-01-05 | |
US07/461,250 US5295258A (en) | 1989-12-22 | 1990-01-05 | Fault-tolerant computer system with online recovery and reintegration of redundant components |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19816699A Division JP3301992B2 (ja) | 1989-12-22 | 1999-07-12 | 電源故障対策を備えたコンピュータシステム及びその動作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06208477A true JPH06208477A (ja) | 1994-07-26 |
JP3030658B2 JP3030658B2 (ja) | 2000-04-10 |
Family
ID=27412627
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2405899A Expired - Lifetime JP3030658B2 (ja) | 1989-12-22 | 1990-12-25 | 電源故障対策を備えたコンピュータシステム及びその動作方法 |
JP19816699A Expired - Fee Related JP3301992B2 (ja) | 1989-12-22 | 1999-07-12 | 電源故障対策を備えたコンピュータシステム及びその動作方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19816699A Expired - Fee Related JP3301992B2 (ja) | 1989-12-22 | 1999-07-12 | 電源故障対策を備えたコンピュータシステム及びその動作方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0683456B1 (ja) |
JP (2) | JP3030658B2 (ja) |
AT (1) | ATE168796T1 (ja) |
DE (1) | DE69032508T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004326787A (ja) * | 2003-04-28 | 2004-11-18 | Xerox Corp | 故障復旧システムおよび方法のためのプラニングおよびスケジューリング |
JP2008507767A (ja) * | 2004-07-20 | 2008-03-13 | ソフトリシティ インコーポレイテッド | コンピュータアプリケーションにおけるデータ損失を最小限にする方法およびシステム |
CN111240896A (zh) * | 2020-01-06 | 2020-06-05 | 深圳市随手科技有限公司 | 一种终端数据同步方法、装置、服务器及存储介质 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60201077T2 (de) * | 2002-06-13 | 2005-09-15 | Fujitsu Siemens Computers, LLC, Milpitas | Verfahren um einen Computer aus einem Cluster zu entfernen |
JP2004164072A (ja) * | 2002-11-11 | 2004-06-10 | Hitachi Ltd | ディスク制御装置およびディスク制御装置の制御方法 |
JP2004220216A (ja) | 2003-01-14 | 2004-08-05 | Hitachi Ltd | San/nas統合型ストレージ装置 |
US7489923B2 (en) | 2005-08-05 | 2009-02-10 | Research In Motion Limited | Methods and systems for handling software operations associated with startup and shutdown of handheld devices |
KR101321433B1 (ko) | 2006-09-19 | 2013-10-25 | 삼성전자주식회사 | 컴퓨터 시스템 및 그 전원제어방법 |
CN101576860B (zh) * | 2009-06-11 | 2011-06-08 | 成都市华为赛门铁克科技有限公司 | linux或windows操作***的测试方法及*** |
GB2503439A (en) * | 2012-06-26 | 2014-01-01 | Ibm | Method of restarting a software system that has unintentional shutdown. |
US10372361B2 (en) | 2014-02-27 | 2019-08-06 | Mitsubishi Electric Corporation | Data storage device including multiple memory modules and circuitry to manage communication among the multiple memory modules |
US9389665B1 (en) * | 2015-06-19 | 2016-07-12 | Rockwell Collins, Inc. | Power warning monitor system and method |
CN110908725B (zh) * | 2018-08-27 | 2024-04-05 | 京东科技控股股份有限公司 | 应用程序启动方法、装置、电子设备及可读介质 |
CN109815071A (zh) * | 2019-01-04 | 2019-05-28 | 珠海妙存科技有限公司 | 一种基于Linux***的存储介质掉电测试方法 |
CN110490737B (zh) * | 2019-07-29 | 2024-03-19 | 创新先进技术有限公司 | 交易渠道控制方法、装置和电子设备 |
CN117290171B (zh) * | 2023-11-27 | 2024-03-22 | 深圳市赛弥康电子科技有限公司 | 一种内存芯片测试设备及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
CH656237A5 (de) * | 1980-03-21 | 1986-06-13 | Philips Nv | Verfahren und anordnung zur steuerung einer einen prozessor aufweisenden anlage bei einer speisestromunterbrechung. |
US4453215A (en) | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
US4644498A (en) | 1983-04-04 | 1987-02-17 | General Electric Company | Fault-tolerant real time clock |
US4733353A (en) | 1985-12-13 | 1988-03-22 | General Electric Company | Frame synchronization of multiply redundant computers |
US4763333A (en) * | 1986-08-08 | 1988-08-09 | Universal Vectors Corporation | Work-saving system for preventing loss in a computer due to power interruption |
JPS6426252A (en) * | 1987-07-22 | 1989-01-27 | Fanuc Ltd | Data keeping/restoring method |
-
1990
- 1990-12-18 DE DE69032508T patent/DE69032508T2/de not_active Expired - Fee Related
- 1990-12-18 AT AT95111528T patent/ATE168796T1/de not_active IP Right Cessation
- 1990-12-18 EP EP95111528A patent/EP0683456B1/en not_active Expired - Lifetime
- 1990-12-25 JP JP2405899A patent/JP3030658B2/ja not_active Expired - Lifetime
-
1999
- 1999-07-12 JP JP19816699A patent/JP3301992B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004326787A (ja) * | 2003-04-28 | 2004-11-18 | Xerox Corp | 故障復旧システムおよび方法のためのプラニングおよびスケジューリング |
JP2008507767A (ja) * | 2004-07-20 | 2008-03-13 | ソフトリシティ インコーポレイテッド | コンピュータアプリケーションにおけるデータ損失を最小限にする方法およびシステム |
CN111240896A (zh) * | 2020-01-06 | 2020-06-05 | 深圳市随手科技有限公司 | 一种终端数据同步方法、装置、服务器及存储介质 |
CN111240896B (zh) * | 2020-01-06 | 2024-04-02 | 深圳市卡数科技有限公司 | 一种终端数据同步方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP0683456A1 (en) | 1995-11-22 |
JP2000112584A (ja) | 2000-04-21 |
DE69032508T2 (de) | 1999-03-25 |
DE69032508D1 (de) | 1998-08-27 |
JP3030658B2 (ja) | 2000-04-10 |
ATE168796T1 (de) | 1998-08-15 |
EP0683456B1 (en) | 1998-07-22 |
JP3301992B2 (ja) | 2002-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0433979A2 (en) | Fault-tolerant computer system with/config filesystem | |
US5317752A (en) | Fault-tolerant computer system with auto-restart after power-fall | |
US5295258A (en) | Fault-tolerant computer system with online recovery and reintegration of redundant components | |
US5327553A (en) | Fault-tolerant computer system with /CONFIG filesystem | |
US4965717A (en) | Multiple processor system having shared memory with private-write capability | |
US7496786B2 (en) | Systems and methods for maintaining lock step operation | |
Bernstein | Sequoia: A fault-tolerant tightly coupled multiprocessor for transaction processing | |
Ornstein et al. | Pluribus: a reliable multiprocessor | |
TWI236620B (en) | On-die mechanism for high-reliability processor | |
US6122756A (en) | High availability computer system and methods related thereto | |
US6571324B1 (en) | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system | |
US5384906A (en) | Method and apparatus for synchronizing a plurality of processors | |
JPH079626B2 (ja) | 多重プロセッサを備えたフォールトトレラントなコンピュータシステム | |
JP3301992B2 (ja) | 電源故障対策を備えたコンピュータシステム及びその動作方法 | |
Siewiorek | Fault tolerance in commercial computers | |
EP0415545A2 (en) | Method of handling errors in software | |
EP0414379A2 (en) | Method of handling errors in software | |
JPH04213736A (ja) | フォールト・トレラント・システムのためのチェックポイント機構 | |
JP3481737B2 (ja) | ダンプ採取装置およびダンプ採取方法 | |
US7502958B2 (en) | System and method for providing firmware recoverable lockstep protection | |
US7624302B2 (en) | System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 11 |