JPH07168765A - メモリ装置 - Google Patents

メモリ装置

Info

Publication number
JPH07168765A
JPH07168765A JP6254108A JP25410894A JPH07168765A JP H07168765 A JPH07168765 A JP H07168765A JP 6254108 A JP6254108 A JP 6254108A JP 25410894 A JP25410894 A JP 25410894A JP H07168765 A JPH07168765 A JP H07168765A
Authority
JP
Japan
Prior art keywords
memory
failure mode
fault
crash
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6254108A
Other languages
English (en)
Inventor
Yehuda Afek
アフェク イェヒュダ
Michael J Merritt
ジョン メリット マイケル
Gadi Taubenfeld
トーベンフィールド ガディ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Telephone and Telegraph Co Inc, AT&T Corp filed Critical American Telephone and Telegraph Co Inc
Publication of JPH07168765A publication Critical patent/JPH07168765A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories

Landscapes

  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 良性障害モードを有するようなメモリ、およ
び、縮退するフォルトトレラントなメモリを構成するよ
うなメモリを提供すること。 【構成】 複数のプロセスに対し、第1メモリ動作を同
時に実行するメモリ装置において、第2メモリ動作を実
行する障害可能性のあるメモリ手段315と、この第1
メモリ動作を実行するのに必要な第2メモリ動作を特定
することにより、プロセスにより特定された第1メモリ
動作に応答するために、プロセスに同時にアクセスする
メモリインタフェース手段311と、を有し、前記メモ
リインタフェース手段は、前記メモリ手段内の障害を検
知し、障害が検知されたときに、同時に実行されている
第1メモリ動作の内の第1特定値と、障害検知に続いて
実行される第1メモリ動作内の第2特定値を返すことに
より、それに応答する手段313を有し、前記第1特定
値は、メモリ動作の終了のみを指示し、前記第2特定値
は、メモリ装置がクラッシュしたことを指示することを
特徴とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
用のメモリに関し、特に、メモリに同時にアクセスする
プロセスの間で共有するメモリに関する。
【0002】
【従来技術の説明】コンピュータシステムによって実行
されるシステムは、様々なシステム機能を形成する複数
のプロセッサが、メモリを共有するようなシステムとし
て設計される。このような共有メモリシステムにおいて
は、メモリは、複数のプロセスにより、同時にアクセス
されることがあり、そしてそのプロセスは、共有メモリ
内の値を設定したり、読みだしたりすることにより、互
いに連絡し合う。
【0003】現在のコンピュータにより実現されるシス
テムの最終目標は、フォルトトレランス(fault tolera
nce)、すなわち、そのシステムの要素の一部に障害が
発生した場合にも、その機能の実行を継続し得るような
システムを形成することである。このフォルトトレラン
スの重要なものとしては、良性の障害モード(benignfa
ilure mode)である。すなわち、システムの要素が障害
にあうときに、この障害は、そのシステムの残りの部分
で、それに容易に対処できるようなものである。プロセ
ッサに対するこの良性障害モードの一例は、停止障害モ
ード(stop failure mode)である。すなわち、プロセ
ッサが故障すると、障害状態で動作を継続するのではな
く、単純に停止することである。
【0004】共有メモリシステムにおいては、この共有
メモリ自体がフォルトトレランスでなければならない。
そして、さらに望ましいことは、共有メモリが良性障害
モードを有することである。最近の研究によれば、障害
にあう要素の数が、あるしきい値を超えない限り、潜在
的な障害要素からフォルトトレラントな共有メモリを形
成することは可能である。これに関しては、“Proceedi
ngs of the 11th ACMSymposium on principles of Dist
ributed Computing”(1992年8月)の“Computing
with faulty shared memory”Yehuda Afek、David gre
nnberg、Michael Merritt、Gadi Taubenfeldらの共著を
参照のこと。
【0005】この共有メモリの良性障害には、2つのタ
イプがあることがわかった。その1つはクラッシュ障害
モード(crash mode)で、他の一つはオミッション障害
モード(omission mode)である。これに関しては、“3
3rd Annual Symposium on the Foundations of Compute
r Science”(1992年10月IEEE Computer Society
Press社刊)の“Fault-tolerant wait-free shared ob
jects”P. Jayanti、T. Chandra、S. Touegらの共著を
参照のこと。このクラッシュ障害モードは、プロセスの
ストップ障害モードに類似する。すなわち、メモリの障
害は、メモリを共有中の実行されるべきプロセスにあら
われ、瞬時のものである。障害動作を継続するプロセス
により実行されるメモリ動作は、正確に機能し、障害後
に実行されるメモリ動作は、そのメモリ動作が実行され
なかったことを表す特別な値に戻る。クラッシュ障害モ
ードのこの特別な値は、本明細書中では*の記号で表す
ものとする。次に、オミッション障害モードにおいて
は、障害中、あるいは、障害後のプロセスにより、共有
メモリ上で行われるメモリ操作は、正確には動作せず、
その代わり、そのメモリ動作が実行されたか、あるい
は、実行されないかを表すような特別値に戻る。このオ
ミッション障害モードにおける特別値は、本明細書中で
は?の記号で表す。このオミッション障害モードの困難
な点は、一旦障害が発生すると、プロセスはメモリ動作
が行われたか否かを確実に知ることができないことであ
る。このオミッション障害モードは、クラッシュ障害モ
ードよりも良性ではない。
【0006】前掲の文献で解決できないような問題は、
非常に良性の障害モードを有する要素から、グレースフ
ル・デグラデーティングな(gracefully degrading;以
下「縮退する」と訳す)。この縮退するフォルトトレラ
ントのメモリは、その障害モードは、その要素の障害モ
ードと、少なくとも同程度に良性なものである。前掲の
Jayantiらの論文によれば、クラッシュ障害モードを有
するような要素から縮退するフォルトトレラントなメモ
リを構成することは不可能であるが、オミッション障害
モードを有するような要素から縮退するフォルトトレラ
ントなメモリを構成することは可能である。
【0007】
【発明が解決しようとする課題】従って、本発明の目的
は、オミッション障害モードよりも、より良性の障害モ
ードを有するようなメモリを提供すること、および、縮
退するフォルトトレラントなメモリを構成するようなメ
モリを提供することである。
【0008】
【課題を解決するための手段】本発明の共有メモリは、
新たな障害モードを有する。この新たな障害モードと
は、オミッション障害モードよりも、より良性で縮退す
るフォルトトレラントなメモリを構成することができ
る。新たな障害モードの最も良性なものは、オミッショ
ン−クラッシュ障害モードである。このオミッション−
クラッシュ障害モードは、クラッシュ障害モードに似て
おり、瞬時で、かつ完全な障害を想定するが、プロセス
により実行されるメモリ動作は、瞬時のものではない、
ということを考慮にいれたものである。このオミッショ
ン−クラッシュ障害モードを有するメモリにおいては、
このメモリは、障害前に動作を開始し、障害後に終了す
るような動作においては、?に戻り、障害後に開始する
ような全ての動作に対しては*に戻る。フォルトトレラ
ントなメモリは、オミッション−クラッシュ障害モード
を有する要素によって構成され、それゆえに、縮退する
ものである。
【0009】それほど良性ではない新規の障害モード
は、イベンチュアル−クラッシュ障害モード(eventual
-crash mode)である。このイベンチュアル−クラッシ
ュ障害モードは、メモリの動作は瞬時ではなく、かつ、
この障害は、しばしば瞬時ではない、ということを考慮
にいれたものである。このイベンチュアル−クラッシュ
障害モードを有するメモリは、障害が終了する前は、い
つでも?に戻る。しかし、一旦?に戻ると、その後続時
の全ての動作において、*に戻ることが補償される。フ
ォルトトレラントなメモリは、イベンチュアル−クラッ
シュ障害モードを有する要素でもって構成され、これら
の要素は、イベンチュアル−クラッシュ障害モード、あ
るいは、オミッション−クラッシュ障害モードの何れか
を有し、それゆえに、縮退するものである。
【0010】
【実施例】図1、図2について、まず、新規な良性障害
モードについて説明し、その後、この新規な良性障害モ
ードを有するメモリを、いかに構成するかについて説明
し、最後に、この新たな良性障害モードを有するメモリ
が、良性障害モードを有する要素から、いかに構成され
るかについて説明する。
【0011】良性障害モード:図1と図2 この第1の良性障害モードは、オミッション−クラッシ
ュ障害モードである。このモードにおいては、メモリの
障害の前に、完了したメモリ動作が確実に実行され、障
害の前に開始し、その後終了したメモリ動作は、確実に
実行される。すなわち、?に戻り、そして、障害の後開
始した動作において、常に*に戻る。
【0012】図1は、オミッション−クラッシュ障害モ
ード101のダイアグラムである。3つのプロセス10
3の、P1 103(1)、P2 103(2)、P3
103(3)、が、オミッション−クラッシュ障害モ
ードを有する共有メモリ上で同時に動作を実行する。P
1は、Op1、Op2、Op3を実行し、P2は、Op
4を実行し、P3は、Op5、Op6、Op7を実行す
る。これらの動作が実行されているときに、障害115
が点線で示した時点で発生したとする。
【0013】図1は、この動作に対し発生したものを表
している。Op1とOp5は、障害115の前で終了
し、通常動作105に戻る。Op2、Op4、Op6
は、障害の前に開始し、障害の後に終了する。これら
は、通常動作105、あるいは、オミッション動作10
9で?109に戻る。Op2、Op6は、オミッション
動作107で、一方、Op4は、通常動作105であ
る。Op3とOp7は、障害115の後に開始し、それ
らは両方ともクラッシュ動作111で*113に戻る。
【0014】第2の良性障害モードは、イベンチュアル
−クラッシュ障害モードである。このモードにおいて
は、どのような動作も?に戻ることができる。ただし、
動作が一旦?に戻ると、そこにクラッシュがあり、この
クラッシュの後開始した全ての動作は*に戻らなければ
ならない。図2は、イベンチュアル−クラッシュ障害モ
ード201のダイアグラムである。ここに3つのプロセ
スPがあり、これらはイベンチュアル−クラッシュ障害
モードのメモリ上でメモリ動作を実行する。点線が、障
害203が終了した時点を表す。全ての動作は、障害2
03の終了の前に開始する。その内のあるものは通常動
作105で、他のものはオミッション動作109で?に
戻る。障害203が終了した時点の後に開始する全ての
動作は、クラッシュ動作111で*113に戻る。
【0015】このイベンチュアル−クラッシュ障害モー
ドの重要な特徴は、オミッション−クラッシュ障害モー
ドをシュミレートするのに使うことができる点である。
このメモリが、ベキ等操作(idempotent operation)を
行うとき、このプロセスは、それが受け取る第1のオミ
ッション復帰に対し、障害が終了し、このプロセスがク
ラッシュ復帰を受け取るまで、ベキ等操作の実行を継続
することにより反応する。
【0016】良性障害モードを有するメモリの実現:図
3と図4 メモリを実現するのに用いられる実際の素子は、良性の
障害モードを有してはいない。図3は、良性の障害モー
ドを有さないメモリ素子が、良性の障害モードを有する
良性メモリにいかに作りかえられるかを示す。図3のシ
ステム301において、複数のプロセスP303が、良
性メモリ309に動作を同時に実行する。プロセスP3
03がそのような動作を実行していると、このプロセス
は、良性メモリ309に動作を要求するリクエスト30
5を送る。その後、プロセス303は、良性メモリ30
9からのレスポンス307を待つ。例えば、動作がメモ
リの読み出し動作の時には、このリクエストは、データ
のアドレスを特定し、レスポンスはそのデータを送り返
す。前述したように、この良性障害の一部は、常に良性
メモリ309からのレスポンスがあることを補償してい
【0017】良性メモリ309は、常に、2つの要素を
有する。その1つはメモリインタフェース311で、プ
ロセッサにより提供され、他の1つは障害の可能性のあ
るメモリ315で、そこにデータがストアされる。メモ
リインタフェース311は、リクエスト305に対し、
障害の可能性のあるメモリ315にリクエストを満足す
るのに必要な動作を実行させ、その動作の結果を送り返
すことにより応答する。さらに、障害の可能性のあるメ
モリ315は、その名前に示すように故障することがあ
る。良性メモリ309が良性の障害モードを有するよう
にさせるのはメモリインタフェース311である。メモ
リインタフェース311内の障害検出器313が、障害
の可能性のあるメモリ315の動作の中の障害を検出
し、その障害が発生したときにメモリインタフェース3
11に対し良性障害モードにより必要とされるような動
作を行わせる。
【0018】障害の可能性のあるメモリ315はどのよ
うなタイプの記憶装置からも構成することができる。メ
モリインタフェース311と障害の可能性のあるメモリ
315との間の正確なインタフェースは、記憶装置の特
性に依存する。図3において、障害の可能性のあるメモ
リインタフェース(PFMI)316は、以下の信号を
搬送する。 ・PADDR317は、メモリインタフェース311か
ら障害の可能性のあるメモリ315に物理的アドレスを
搬送する。 ・DATA319は、障害の可能性のあるメモリ315
とメモリインタフェース311との間でデータを搬送す
る。 ・COM321は、メモリインタフェース311から障
害の可能性のあるメモリ315にメモリコマンドを搬送
する。 ・DV323は、DATA319が、障害の可能性のあ
るメモリ315から有効データの読み出しを搬送してい
ることを表す。 ・ACK325は、障害の可能性のあるメモリ315が
データを受信し、データをDATA319に格納したこ
とを表す。
【0019】障害の可能性のあるメモリ315は、良性
ではないので、COM321に応答しないこともある。
例えば、コマンドが書き込みコマンドの場合には、受領
信号325をメモリインタフェース311には送らな
い。同様に、読み出しコマンドの場合には、メモリイン
タフェース311は、データ有効信号323を受信しな
い。メモリインタフェース311の観点からは、障害の
可能性のあるメモリ315はタイムアウトする。しか
し、良性メモリ309は、レスポンス307を各リクエ
スト305に常に出さないので、良性メモリ309はタ
イムアウトすることはない。メモリインタフェース31
1内の障害検出器313は、このタイムアウトを検知
し、このタイムアウトを検知したときに、障害検出器3
13は、良性メモリ309の良性障害モードに必要とさ
れるような応答をしなければならない。この実施例の場
合、良性メモリ309がオミッション−クラッシュ障害
モードを有する場合には、そのモードにより必要とされ
るレスポンスを提供し、良性メモリ309がイベンチュ
アル−クラッシュ障害モードの場合には、良性メモリ3
09は、そのモードにより必要とされるレスポンスを提
供しなければならない。
【0020】障害モードにより必要とされるレスポンス
を提供するメモリインタフェース311の一部の実施例
が、図4に示されている。メモリインタフェース311
の一部、動作待ち行列エンティティ401は、動作待ち
行列403と障害検出器313とを有する。動作待ち行
列403は、プロセス303により行われるリクエスト
305に対するエントリ413を有する。エントリ41
3は、リクエスト305がメモリインタフェース311
で受信され、メモリインタフェース311がそのリクエ
ストに対するレスポンスをプロセス303に送り返すま
で動作待ち行列403内に待機する。各エントリ413
は、少なくとも以下の情報を有する。 ・PID415、リクエストを形成するプロセス303
に対する識別子。 ・REQ417、プロセス303からのリクエスト。 ・RESP419、プロセス303がメモリ動作を完了
したときに、メモリインタフェース311がプロセス3
03に提供するレスポンス。 ・スタートタイム(ST)421、メモリインタフェー
ス311がメモリリクエストにより要求される障害の可
能性のあるメモリ315に対する動作の実行を開始する
時間。
【0021】動作待ち行列403は、さらに、次の3つ
の部分待ち行列に分割される。すなわち、入力待ち行列
406と実行待ち行列408と出力待ち行列410であ
る。エントリ413は、エントリ413内に記録された
メモリリクエストが、良性メモリ309で受信され、メ
モリインタフェース311が障害の可能性のあるメモリ
315に対する要求を満足するのに必要な動作の実行を
開始するまで、入力待ち行列406内に存在する。その
ときに、エントリ413は、実行待ち行列408の一部
となり、エントリ413は、メモリインタフェース31
1が障害の可能性のあるメモリ315に対する動作の要
求を受信するまでそこに存在する。その後、エントリ4
13が出力待ち行列410の一部となると、そこでエン
トリ413はメモリインタフェース311がリクエスト
の結果をレスポンス307内のプロセスに戻すまでそこ
に存在する。405は、入力待ち行列406の末尾を識
別し、ポインタ407は、入力待ち行列406の先頭と
実行待ち行列408の末尾とを識別する。ポインタ40
9は、実行待ち行列408のヘッドと出力待ち行列41
0の末尾とを識別し、ポインタ411は、出力待ち行列
410のヘッドを識別する。
【0022】障害検出器313は、3つの主要素を有
し、その一つはクロック431で、クロック値を単調に
増加させ、第2の要素はタイムアウト検出器(TOD)
429で、タイムアウトを検知し、第3の要素は障害フ
ラッグ435で、障害が発生したか否かを示すものであ
る。矢印423、425、427、433に示すよう
に、タイムアウト検出器(TOD)429はクロック4
32の出力に応答し、タイムアウト検出器(TOD)4
29はSTフィールド421をセットし、読み出し、応
答フィールド(RESP)419をセットし、障害フラ
ッグ435をセットする。
【0023】動作待ち行列エンティティ401の動作を
次に述べる。メモリインタフェース311が障害の可能
性のあるメモリ315に対するコマンドによりリクエス
トの実行を開始すると、メモリインタフェース311は
ポインタ407をセットし、入力待ち行列406のヘッ
ド時にそのアイテムを指摘し、そして、入力待ち行列4
06は、実行待ち行列408の末尾アイテムとなる。そ
の時点において、タイムアウト検出器(TOD)429
は、クロック431により提供される現在値からSTフ
ィールド421をセットする。メモリインタフェース3
11が障害の可能性のあるメモリ315からデータバリ
ッド信号323、あるいは、受領通知信号325を受信
すると、メモリインタフェース311は、ポインタ40
9をセットし、その結果、実行待ち行列408のヘッド
にあったエントリ413は出力待ち行列410の末尾に
ある。
【0024】上述したように、動作が進むと、タイムア
ウト検出器(TOD)429は、周期的に実行待ち行列
408のヘッドにあるエントリ413内のSTフィール
ド421の値と、クロック431の現在値とを比較す
る。その差がしきい値よりも大きい場合には、障害の可
能性のあるメモリ315はタイムアウトする。タイムア
ウト検出器(TOD)429は障害フラッグ435をセ
ットし、?の応答を表すために、実行待ち行列408内
のエントリ413内の応答フィールド(RESP)41
9をセットし、*応答を表すために、入力待ち行列40
6内のエントリ413の応答フィールド(RESP)4
19をセットすることにより、これに応答する。メモリ
インタフェース311は、障害フラッグ435に対し、
部分待ち行列に関わらず、動作待ち行列403を空にし
て、*の応答を表す新たなリクエスト305に対し、エ
ントリ413内の応答フィールド(RESP)419を
すぐにセットすることにより、障害フラッグ435に応
答する。
【0025】タイムアウトが発生した時点において、既
に処理されたメモリ要求は、全て出力待ち行列410内
に存在し、タイムアウトが発生したときに障害の可能性
のあるメモリ315により現在処理されている全てのメ
モリ要求は、実行待ち行列408内に存在し、まだ処理
が開始していない全てのメモリ要求は、入力待ち行列4
06内に存在するので、操作の上記のモードは、タイム
アウトを検知する前に処理された全ての要求は、正しい
応答を受信し、タイムアウトが発生したときに処理中の
メモリ要求は、レスポンス307のように?の応答を受
信し、まだ開始していない障害の可能性のあるメモリ3
15により処理される全てのメモリ要求は、*の応答を
受信する。かくして、良性メモリ309は、オミッショ
ン−クラッシュ障害モードを実現する。
【0026】イベンチュアル−クラッシュ障害モードの
実現は、さらに簡単である。そのようなイベンチュアル
−クラッシュ障害モードの装置内のタイムアウト検出器
(TOD)429は、障害フラッグ435をセットす
る。メモリインタフェース311は、ポインタ411が
ポインタ407に等しくなるまで動作待ち行列403を
空にすることによりフラッグに応答し、待ち行列をその
時点まで空にしながらメモリインタフェース311は、
各エントリ内の応答フィールド(RESP)419を?
の応答にセットする。その後、メモリインタフェース3
11は、動作待ち行列403を空にする動作を継続し、
各エントリ内の応答フィールド(RESP)419を*
の応答にセットする。かくして、クラッシュ中のどのよ
うな動作も?の応答を受信し、そのクラッシュの後の全
ての動作は、イベンチュアル−クラッシュ障害モードに
必要な*の応答を受信する。
【0027】良性の障害モード要素からフォルトトレラ
ントなメモリの構成:図5〜図7 従来技術で説明したように、フォルトトレラントでない
要素から、フォルトトレラントなメモリを形成すること
は可能である。オミッション−クラッシュ障害モード、
あるいは、イベンチュアル−クラッシュ障害モードを有
するようなフォルトトレラントでない要素から、フォル
トトレラントなメモリを形成することは、このような要
素から形成されたフォルトトレラントなメモリは、縮退
するので好ましい。以下にフォルトトレラントなメモリ
の例を説明する。
【0028】フォルトトレラントなセーフレジスタ:図
5 図5は、フォルトトレラントな読み出し/書き込みセー
フレジスタ504を表す。この読み出し/書き込みセー
フレジスタ504は、以下の特性を有する。 ・書き込み動作とオーバラップしない読み出し動作は、
書き込まれた最後の値をレジスタに戻す。 ・書き込み動作とオーバーラップする読み出し動作は、
任意の値を返す。 メモリ504は、さらに、fのフォルトトレラントであ
る。すなわち、その要素メモリのうちf個を超える(f
+1個以上の)メモリが故障するまで機能する。
【0029】メモリ504は、書き込みプロセス503
と読み出しプロセス501を用いて、互いに通信する。
書き込みプロセス503は、セーフレジスタに書き込
み、読み出しプロセス501は、書き込みプロセス50
3が書き込んだものを読み出す。メモリ504は、メモ
リインタフェース505と2f+1個のオミッション−
クラッシュ障害モードのフォルトトレラントでないセー
フレジスタ511を有する。メモリインタフェース50
5は、読み出し動作コード507を有し、この読み出し
動作コード507は、読み出しプロセス501からの読
み出し動作と書き込み動作コード509に応答する。そ
して、この書き込み動作コード509は、書き込みプロ
セス503からの書き込み動作に応答する。
【0030】書き込み動作コード509は、書き込みプ
ロセス503から受け取った値を2f+1個のフォルト
トレラントでないセーフレジスタ511に書き込むこと
により、書き込み動作に応答する。f個を超えるレジス
タがクラッシュ値*をメモリインタフェース505に返
すと、書き込み動作コード509は、*応答を書き込み
プロセス503に返す。f+1個より少ないレジスタが
継続を返すと、書き込み動作コード509は、?応答を
書き込みプロセス503に返し、それ以外の場合には、
書き込み動作が継続していることを表す値を返す。
【0031】読み出し動作コード507は、フォルトト
レラントでないセーフレジスタ511の全ての要素を読
み込むことによって、読み込み動作に応答する。このセ
ーフレジスタのf+1個が同一の値を有している場合に
は、読み出し動作コード507は、その値を読み出しプ
ロセス501に返す。このf+1個のレジスタが*の応
答を返すと、読み出し動作コード507は、*の応答を
読み出しプロセス501に返す。f個以下のレジスタが
*または?の応答以外の値を返す場合には、読み出し動
作コード507は?の応答を返す。前記したように、セ
ーフレジスタ504は、f個のフォルトトレラントとな
る。さらに、セーフレジスタ504は、セーフレジスタ
の成分と同様に、オミッション−クラッシュ障害モード
を有する。そして、セーフレジスタ504は、したがっ
て、縮退する。セーフレジスタ504は、オミッション
−クラッシュ障害モード、あるいは、イベンチュアル−
クラッシュ障害モードを有するセーフレジスタ511か
ら構成することもできるが、オミッション障害モードを
有するセーフレジスタ511からは構成することができ
ない。
【0032】フォルトトレラントコンセンサス:図6 図6は、fのフォルトトレラントの縮退するコンセンサ
スオブジェクト605を示し、このコンセンサスオブジ
ェクト605は、クラッシュ−オミッション障害モード
を有する2f+1個のフォルトトレラントでないコンセ
ンサスオブジェクト611から構成される。コンセンサ
スオブジェクトとは、以下の特性を有するメモリであ
る。 ・プロセスは、コンセンサスオブジェクトに対し2つの
操作のみを実行する。すなわち、プロポーズ0とプロポ
ーズ1である。 ・その動作は、次のようである。コンセンサスオブジェ
クトは、そのオブジェクトに実行された第1のプロポー
ズを実行したプロセスに戻し、この同一の値を、さら
に、そのオブジェクトに対し実行されたプロポーズ動作
に戻す。
【0033】かくして、図6において、3個のプロセス
603の何れか一つは、このプロポーズ動作を実行す
る。このプロポーズ動作を実行する1つが、そうする第
1のものである場合には、コンセンサスオブジェクト6
05はこのプロポーズされた値を第1のプロセス603
に戻し、その後、その値をこのプロポーズ動作を実行し
ている全てのプロセス603に戻し続ける。前と同様
に、メモリインタフェース607は、2f+1個のフォ
ルトトレラントでないコンセンサスオブジェクト611
を単一のフォルトトレラントのコンセンサスオブジェク
ト605にかえる。メモリインタフェース607内のコ
ンセンサスオブジェクト605は、メモリインタフェー
ス607が各プロセスのプロポーズ動作を個別に処理す
ることのみを示す。ボックス609内には、各プロセス
に対するローカルクラッシュフラッグ608が存在す
る。このローカルクラッシュフラッグ608が、コンセ
ンサスオブジェクト605内のオミッション−クラッシ
ュ障害モードを実行する。
【0034】前と同様に、フォルトトレラントでないコ
ンセンサスオブジェクト611は、オミッション−クラ
ッシュ障害モードを有し、したがって、各フォルトトレ
ラントでないコンセンサスオブジェクト611は、その
値を第1のプロポーズ動作によりセットされたものに返
す。すなわち、?応答のオミッションリターン、あるい
は、*応答のクラッシュリターンである。コンセンサス
オブジェクト605は、?応答あるいは*応答の何れか
の値をプロポーズ動作に応答してプロセス603に返
す。この実施例においては、これらの値は、次のように
戻される。
【0035】第1のプロポーズ動作においては、f+1
個以上のフォルトトレラントでないコンセンサスオブジ
ェクト611が、この値を返すと、メモリインタフェー
ス607は、その値を第1プロポーズ動作を実行するプ
ロセス603に返す。f+1個以上のコンセンサスオブ
ジェクト709が?応答あるいは*応答を返すと、メモ
リインタフェース607は、?応答をプロセスに返し、
全てのローカルクラッシュフラッグ608をセットす
る。
【0036】後続のプロポーズ動作において、メモリイ
ンタフェース607は、まず、その動作を実行するプロ
セスに対しローカルクラッシュフラッグ608を検査す
る。このローカルクラッシュフラッグ608がセットさ
れていると、メモリインタフェース607は、*応答を
単に返す。ローカルクラッシュフラッグ608がセット
されていない場合には、その動作は、第1のプロポーズ
動作でセットされた値を返す。再び、f+1個のフォル
トトレラントでないコンセンサスオブジェクト611が
この値を返すと、メモリインタフェース607は、その
値をプロセス603に返す。f+1個以上のフォルトト
レラントでないコンセンサスオブジェクト611が?あ
るいは*の応答を返すと、メモリインタフェース607
は?の応答をそのプロセスに返し、全てのプロセスに対
しローカルクラッシュフラッグ608をセットする。か
くして、コンセンサスオブジェクト605は、fのフォ
ルトトレラントでオミッション−クラッシュ障害モード
を有する。そして、オミッション−クラッシュ障害モー
ドを有するオブジェクトが設定されているので、このコ
ンセンサスオブジェクト605は縮退する。
【0037】他のタイプのオブジェクトを形成するため
に、コンセンサスオブジェクトとセーフレジスタを用い
る:図7 オミッション−クラッシュ障害モード、あるいは、イベ
ンチュアル−クラッシュ障害モードを有するコンセンサ
スオブジェクト、および、セーフレジスタを用いて、オ
ミッション−クラッシュ障害モードを有する他のタイプ
のオブジェクトを構成し、そして、その結果、フォルト
トレラントで縮退する他のタイプのオブジェクトを構成
する。図7は、フォルトトレラントでないコンセンサス
オブジェクトと、オミッション−クラッシュ障害モード
のセーフレジスタから構成されるタイプnのオブジェク
ト703を示す。このオブジェクト703自身は、フォ
ルトトレラントではないが、この非フォルトトレラント
のコンセンサスオブジェクトと、セーフレジスタとを、
そのフォルトトレラントの対応物で置換することによ
り、フォルトトレラントにすることができる。
【0038】オブジェクト703は、3個のプロセス7
01で動作する。メモリインタフェース705は、プロ
セス701からのオブジェクト703への動作を要求す
るリクエストに応答して、その動作の結果をプロセス7
01に返す。前と同様に、コンセンサスオブジェクト7
09は、インタフェース707がオブジェクト703に
メモリインタフェース705へのそれ自身のインタフェ
ースを提供することを示す。さらに、オブジェクト70
3は、オブジェクト703のタイプ用、および、プロセ
ス701に関連するローカルクラッシュフラッグ708
用に特定された機能を実行するのに必要なコンセンサス
オブジェクト709とセーフレジスタ713とを有す
る。このローカルクラッシュフラッグ708は、メモリ
インタフェース705のオミッション−クラッシュ障害
モードを実現する。
【0039】次に動作について説明する。動作の開始時
に、全てのローカルクラッシュフラッグ708は、Fに
初期化される。このプロセス701はその後、オブジェ
クト703に対する動作の実行を開始し、そのインタフ
ェース707は、コンセンサスオブジェクト709への
動作に切り替わる。インタフェース707が、プロセス
701(i)用のオブジェクト703に対する動作を実
行する前に、インタフェース707は、そのプロセスの
ローカルクラッシュフラッグ708(i)を検査する。
このローカルクラッシュフラッグ708がTにセットさ
れていると、インタフェース707は、*の応答をプロ
セス701(i)に返す。ローカルクラッシュフラッグ
708(i)がセットされていないときには、インタフ
ェース707は、コンセンサスオブジェクト709とセ
ーフレジスタ713への動作を実行する。コンセンサス
オブジェクト709、あるいは、セーフレジスタ713
の何れもが、?あるいは*の応答を返さないときには、
インタフェース707は、?の応答をプロセス701
(i)に返し、そして、全てのローカルクラッシュフラ
ッグ708をセットする。コンセンサスオブジェクト7
09、あるいは、セーフレジスタ713の何れもが?あ
るいは*の応答を返さないときには、インタフェース7
07は、コンセンサスオブジェクト709とセーフレジ
スタ713により提供される値を、プロセス701
(i)に返す。かくして、オブジェクト703は、オミ
ッション−クラッシュ障害モードを有し、オブジェクト
703のフォルトトレラントが形成されると、そのオブ
ジェクトは、縮退する。
【0040】
【発明の効果】以上説明したように、本発明のメモリ
は、新たな良性障害モード、すなわち、オミッション−
クラッシュ障害モード、および、イベンチュアル−クラ
ッシュ障害モードを有することがわかる。さらに、この
ようなメモリを用いて、縮退するフォルトトレラントな
メモリを形成する方法が開示された。上記の説明におい
ては、タイムアウト以外の障害について記載したが、他
の場合についても当てはまる。
【図面の簡単な説明】
【図1】オミッション−クラッシュ障害モードを表す
図。
【図2】イベンチュアル−クラッシュ障害モードを表す
図。
【図3】良性の障害モードを有するメモリが、良性の障
害モードを有さないメモリからいかに構成されるかを表
す図。
【図4】オミッション−クラッシュ障害モードを有する
メモリを実現させる図。
【図5】オミッション−クラッシュ障害モードを有する
セーフレジスタから、フォルトトレラントなセーフレジ
スタを実現するのを表す図。
【図6】オミッション−クラッシュ障害モードを有する
コンセンサスオブジェクトから、フォルトトレラントな
共有コンセンサスオブジェクトを実現するのを表す図。
【図7】オミッション−クラッシュ障害モードを有する
メモリの組立図を表す図。
【符号の説明】
101 オミッション−クラッシュ障害モード 103 プロセス 105 通常動作 107、109 オミッション動作 111 クラッシュ動作 115 障害 201 イベンチュアル−クラッシュ障害モード 203 障害 301 システム 303 プロセス 305 リクエスト 307 レスポンス 309 良性メモリ 311 メモリインタフェース 313 障害検出器 315 障害の可能性のあるメモリ 316 障害の可能性のあるメモリインタフェース 401 動作待ち行列エンティティ 403 動作待ち行列 406 入力待ち行列 407 ポインタ 408 実行待ち行列 409、411 ポインタ 410 出力待ち行列 413 エントリ 419 応答フィールド(RESP) 421 STフィールド 429 タイムアウト検出器(TOD) 431、432 クロック 435 障害フラッグ 501 読み出しプロセス 503 書き込みプロセス 504 メモリ 505 メモリインタフェース 507 読み出し動作コード 509 書き込み動作コード 511 セーフレジスタ 601 非フォルトトレラント 603 プロセス 605 コンセンサスオブジェクト 607 メモリインタフェース 608 ローカルクラッシュフラッグ 609 ボックス 611 フォルトトレラントでないコンセンサスオブジ
ェクト 701 プロセス 703 オブジェクト 705 メモリインタフェース 707 インタフェース 708 ローカルクラッシュフラッグ 709 コンセンサスオブジェクト 713 セーフレジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル ジョン メリット アメリカ合衆国、07922 ニュー ジャー ジー、バークレー ハイツ、マックメイン アベニュー 294 (72)発明者 ガディ トーベンフィールド アメリカ合衆国、07974 ニュー ジャー ジー、マーレー ヒル、サウスゲート ロ ード 10

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセスに対し、第1のメモリ動
    作を同時に実行するメモリ装置において、 第2のメモリ動作を実行する障害の可能性のあるメモリ
    手段(315)と、 この特定された第1のメモリ動作を実行するのに必要な
    第2のメモリ動作を特定することにより、プロセスによ
    り特定された第1のメモリ動作に応答するために、プロ
    セスに同時にアクセスするメモリインタフェース手段
    (311)と、を有し、前記メモリインタフェース手段
    は、 前記メモリ手段内の障害を検知し、障害が検知されたと
    きに、同時に実行されている第1メモリ動作の内の第1
    の特定値と、障害検知に続いて実行される第1のメモリ
    動作内の第2の特定値を返すことにより、それに応答す
    る手段(313)を有し、 前記第1の特定値は、メモリ動作の終了のみを指示し、 前記第2の特定値は、メモリ装置がクラッシュしたこと
    を指示することを特徴とするメモリ装置。
  2. 【請求項2】 障害の可能性のあるメモリ手段を有する
    複数のプロセスに対し、同時にメモリ動作を実行するメ
    モリ装置において、 前記メモリ手段内の障害を検知し、それに対し、障害の
    検知の前に開始したメモリ動作内で障害が差し迫ったも
    のであることを表す第1の特定値を返し、および、障害
    の検知の後に開始したメモリ動作内でメモリ装置がクラ
    ッシュしたことを表す第2の特定値を返すことにより、
    それに応答する手段を有することを特徴とするメモリ装
    置。
  3. 【請求項3】 前記障害を検知する手段は、障害が検知
    されたときに、まだ終了していないメモリ動作内に第1
    の特別値を返すことを特徴とする請求項2の装置。
JP6254108A 1993-09-23 1994-09-26 メモリ装置 Pending JPH07168765A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US125970 1993-09-23
US08/125,970 US5430868A (en) 1993-09-23 1993-09-23 Shared memory with benign failure modes

Publications (1)

Publication Number Publication Date
JPH07168765A true JPH07168765A (ja) 1995-07-04

Family

ID=22422324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6254108A Pending JPH07168765A (ja) 1993-09-23 1994-09-26 メモリ装置

Country Status (4)

Country Link
US (1) US5430868A (ja)
EP (1) EP0645707A3 (ja)
JP (1) JPH07168765A (ja)
CA (1) CA2128595C (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0457308B1 (en) * 1990-05-18 1997-01-22 Fujitsu Limited Data processing system having an input/output path disconnecting mechanism and method for controlling the data processing system
US5278847A (en) * 1990-12-28 1994-01-11 General Electric Company Fault-tolerant memory system with graceful degradation
EP0550358A3 (en) * 1991-12-30 1994-11-02 Eastman Kodak Co Fault tolerant multiprocessor cluster

Also Published As

Publication number Publication date
EP0645707A3 (en) 1997-07-02
CA2128595C (en) 1998-08-04
CA2128595A1 (en) 1995-03-24
US5430868A (en) 1995-07-04
EP0645707A2 (en) 1995-03-29

Similar Documents

Publication Publication Date Title
JP3447404B2 (ja) マルチプロセッサシステム
US6523140B1 (en) Computer system error recovery and fault isolation
US6594787B1 (en) Input/output device managed timer process
US5438675A (en) Initialization system for input/output processing units
JPS6286449A (ja) データ処理装置におけるページフォールト実行再開方法
JPH087697B2 (ja) 制御情報のインテグリティを維持するための装置及び方法
US5307482A (en) Computer, non-maskable interrupt trace routine override
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
JPH02196355A (ja) 記憶処理システム
JPH07168765A (ja) メモリ装置
JP2580558B2 (ja) インタフェース装置
JPH0670775B2 (ja) エラ−検出・訂正システム
JP3344432B2 (ja) 情報処理装置
JP2626545B2 (ja) 耐故障コンピュータシステム
JP3110124B2 (ja) マルチコンピュータシステムにおける障害検出方式
JP2702972B2 (ja) メモリ初期設定方式
JP2527964B2 (ja) 予備系プログラム初期起動制御方式
JP2000155738A (ja) データ処理装置
JP2735246B2 (ja) テストアンドセット方式
JPH0476138B2 (ja)
JPH07219796A (ja) 情報処理装置
JPS6130296B2 (ja)
JPS6130297B2 (ja)
JP3340284B2 (ja) 冗長システム
JP3012402B2 (ja) 情報処理システム