JPH04338849A - 記憶エラー訂正方法及び過剰エラー状態を報告する方法 - Google Patents

記憶エラー訂正方法及び過剰エラー状態を報告する方法

Info

Publication number
JPH04338849A
JPH04338849A JP4049858A JP4985892A JPH04338849A JP H04338849 A JPH04338849 A JP H04338849A JP 4049858 A JP4049858 A JP 4049858A JP 4985892 A JP4985892 A JP 4985892A JP H04338849 A JPH04338849 A JP H04338849A
Authority
JP
Japan
Prior art keywords
error
data
error correction
ecc
errors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP4049858A
Other languages
English (en)
Other versions
JPH081616B2 (ja
Inventor
Thomas M Brey
トーマス・マチュー・ブレイ
Matthew A Krygowski
マチュー・アンソニー・クリゴウスキ
Bruce L Mcgilvray
ブルース・ロイド・マクギルブレイ
Trinh H Nguyen
トリン・フイ・グェン
William W Shen
ウィリアム・ウー・シェン
Arthur J Sutton
アーサー・ジェームズ・サットン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04338849A publication Critical patent/JPH04338849A/ja
Publication of JPH081616B2 publication Critical patent/JPH081616B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、過剰エラー訂正、その
制御、及び効率的なその管理に関するものである。過剰
エラー(excessive  error)とは、コ
ンピュータシステム内のランダムアクセスメモリのよう
なメモリに記憶してあるデータ単位に備えられているE
CC(エラー訂正コード)では、訂正することのできな
いようなエラービットのことである。 【0002】 【従来の技術】コンプリメント/リコンプリメント(c
omplement/recomplement)型、
すなわちC/Rエラー訂正方法(以下、C/R方法と称
する)は、エム.シー.カーター(M.C.Carte
r)に付与され、本出願人に譲渡された、米国特許第3
949208号、「エンコードされたメモリワードにお
けるエラーを検出し、訂正するための装置」に開示され
ている。C/R方法は、コンピュータシステムのメモリ
に記憶されているデータ単位に対するハミング型ECC
(エラー訂正コード)方法のエラー訂正能力を高めるた
めに用いられているものである。また、C/R方法は、
データ単位内の1つ以上のハードエラーを訂正し、EC
C方法にそのデータ単位内の全てのソフトエラーの訂正
を任せるようにするために、用いるものである。 【0003】ハードエラーとは、断線等、回路内の永久
的障害によって起こるエラーであり、メモリ内のあるビ
ット位置を永久的に、ある状態、1か0の状態に、固定
する原因となるものである。ソフトエラーとは、通常回
路の0または1の状態を変えるアルファ粒子によって、
起こるもので、次回にその回路に他のデータを記憶する
時には、ソフトエラー状態は存在しない。このように、
ハードエラーはハードウエア内に永久に残るのに対し、
ソフトエラーは、1回のデータ単位の記録時のみに存在
する。上述のC/R方法は、ハードエラーの永久的に固
定された状態のみを訂正するものである。C/R方法は
、半導体ダイナミックランダムアクセスメモリ(DRA
M)の半導体チップを用いて構成したコンピュータ記憶
装置で、用いることができる。 【0004】C/R方法は、データ単位内のECCが過
剰エラーを発見した後にのみ、起動される。そして読み
取りを行い、データ単位内の読み取った各ビットの補数
を取る(反転する)。次に、反転したデータ単位をメモ
リ内の同じビット位置に再び記憶する。元のビット位置
に記憶する時、ハードエラーが起きた場所のエラーデー
タのみが、それらの以前の固定された状態に戻ることに
なる。全ての非エラービットとソフトエラーによるエラ
ービットとは、状態が固定されているため反転しないハ
ードエラーによる固定ビットに関して反転されることに
なる。記憶した反転データ単位の2度目の取りだしを行
ない、読み取ったビットを再び反転して、全ハードエラ
ーを訂正する。次にECCを用いて、ECC方法の最大
能力まで、全てのソフトエラーを訂正する。この2回目
の反転の後、及びC/Rプロセスの終了時に、データ単
位を、元のエラー状態で、メモリ内の元の位置に再び記
憶する。 【0005】ECC(エラー訂正コード)方法は、大型
コンピュータシステムのDRAM、即ち、主記憶装置(
MS)及び拡張記憶装置(ES)に共通に用いられてい
る。最も共通に用いられているECCは、SEC/DE
D(1エラー訂正/2エラー検出)のためのもので、こ
れは、データ単位(DU)を記憶あるいは転送する時に
、全てのDU内の2ビットエラーを検出できるが訂正で
きないものである。このようなSEC/DED型のEC
Cを用いている時に第2のビットエラー(過剰エラー)
を検出したとすると、この第2のエラービットをECC
を用いて訂正することはできない。しかしながら、第2
のエラービット(SEC/DEDを用いているシステム
における過剰エラー)を、データ送信用のC/R方法に
よって、しばしば訂正できることがあり、この場合、C
/R方法は、いかなる数のハードエラーでも訂正するこ
とができるが、DU毎に1つのソフトエラーしか訂正す
ることができない。したがって、C/R方法とECC方
法との組み合せによって、ECCのエラー検出能力まで
、送信中におけるデータ内のハード及びソフトエラーの
全数を訂正することができるようになる。 【0006】C/R方法がデータ単位内のソフトエラー
を訂正するのを妨げるのは、ソフトエラーの過渡的特性
である。また、ソフトエラーを訂正するのは、ECCで
ある。したがって、C/RとECC(SEC/DED)
とを組み合わせた方法は、1データ単位の送信中におい
て1つのソフトエラーの訂正に限られ、2つのソフトエ
ラー(S−Sケース)の発生は訂正不可能である。また
、C/RとECC方法の双方とも、データ単位の送信中
にのみ、記憶されたエラーを訂正することに限られてい
る。メモリ内のデータ単位に存在するハードまたはソフ
トエラーは、そこから送信が行われるメモリに残ってし
まう。C/R方法は、ハードエラーを記憶されているメ
モリデータ単位を読み出し、補数を取ったもの(反転し
たもの)のみを、訂正できるものである。 【0007】C/Rプロセスが首尾よく完了した後でも
、記憶されたデータ単位は同じエラービットと共に、メ
モリ内に残っている。しかし、ソフトエラーの数がEC
Cの能力を越えていなければ、要求元は、訂正後のデー
タ単位を受け取る。C/R方法は、ソフトエラービット
がなければ、完全なエラー訂正を提供するものである。 そして、C/R方法が全てのハードエラーを訂正した後
にECCがソフトエラービットを訂正することができれ
ば、C/R方法は完全なエラー訂正が可能である。 しかし、ソフトエラーの数がECCの能力を越える場合
、エラー訂正をすることはできない。例えば、ECCの
最大能力がデータ単位当り1エラービットの訂正である
場合、あるデータ単位内の2つのソフトエラー(S−S
エラーケース)は、C/R方法では訂正不可能である。 【0008】また、C/R方法は、2回余分にデータを
取りだし2回余分にメモリに記憶する必要があるので、
ECC方法のみを採用した場合よりかなり処理に時間が
かかるものである。したがって、過剰エラーを検出しな
ければ、C/R方法を呼び出さないようにしている。例
えば、SEC/DED型ECCを用いている時は、デー
タ単位当り2つのエラービットのみを検出することがで
きる。1つのエラーのみ検出したのなら(過剰エラーが
存在しないので)、C/R方法を起動しなくても、EC
C方法で訂正することができる。C/R方法はデータ単
位内のいかなる数の永久的(ハード)エラーでも訂正す
ることができるが、ECCエラー検出を用いてC/R方
法の起動を制御するため、ECCの最大エラー検出能力
によってC/R方法の能力は限定されてしまう。SEC
/DED(1エラー訂正/2エラー検出)型ECCをメ
モリに記憶しておき、1データ単位内の2つのエラーを
訂正するようにしたコンピュータシステムでは、C/R
方法によるエラー訂正技法を効果的に用いている。EC
C方法単独では、1データ単位内の1エラーを訂正する
最大能力を有している。データ単位が1つのハードエラ
ーと1つのソフトエラーとを持っている場合(以後H−
Sケースと呼ぶ)、C/R方法による処理でハードエラ
ービットを訂正した後、ECC方法による訂正を単一の
ソフトエラービットに適用する。 【0009】現在用いられている大型コンピュータシス
テムで、最良の保守を望むものは、全ての過剰エラーの
発生を訂正したか否かの記録を記憶している。これは、
要求元に対しては、C/R方法を用いて過剰エラーを訂
正しする。そうしなければ中断しなくてはならないタス
クの実行を継続することができても、各過剰エラーはメ
モリ内では訂正されていないからである。このため、C
/R方法による過剰エラー訂正は、システムの通常のエ
ラー訂正能力以外のものと考えられている。C/R方法
で訂正されたデータ単位は、もしその中に別のソフトエ
ラーが生じると、システムをクラッシュさせることがあ
る。 【0010】別の関連技術が、1980年ボセン及びサ
イオ(Bossen  and  Hsaio)によっ
て、IBMリサーチジャーナル(1980年5月)の第
390頁、「メモリソフトエラーに対するシステム解決
法」という題の論文に発表されている。厳重なエラー報
告及び記述(accounting)を、従来の大型コ
ンピュータシステムにおいて密接に調和したシステム保
守を保証するために用いている。これらは過剰エラーを
システム内のシステムサービスプロセッサ(SP)に報
告し、システム内で発生した全ての重大なエラー状態の
記録を保管して、例えば、保守を行うためにCPUオフ
ラインにいつ切り変えるかを決定する。 【0011】従来は、C/R方法を呼び出すようにでき
るまでに、要求元のプロセッサとメモリ動作の両方を中
断しなくてはならなかった。エラー検出の発生に応答し
てC/R方法が呼び出されると、プロセッサクロックと
メモリアクセスを、プロセッサが回復するまで、停止す
ることになり、更に、中断信号をSPに送ることになる
。次にSPは現行のプログラムを中断し、停止したプロ
セッサに対して回復作業を行っている。これは通常、プ
ロセッサのクロックが止まった時に実行を停止した命令
を再び試行させることである。回復作業が完了した後、
通常動作のために、SPはプロセッサを再起動し、メモ
リはアクセスを再開する。プロセッサは、次に、過剰エ
ラーを有するデータ単位のために、C/R方法を呼び出
す再読み取り要求を発生する。C/R方法の処理の後に
過剰エラーが存在したら、再びプロセッサの停止が起こ
り、上述の動作が行われている。次にプロセッサを再起
動した時に、プロセッサがタスクに損害を与えた命令を
記録している。 【0012】このC/R方法の従来の処理では、C/R
方法を呼び出せるようになるまでに、要求元へのクロッ
ク停止割り込み、メモリアクセスの停止、更にSPの介
在を必要とするため、C/R方法の前処理に非常に時間
がかかり、C/R方法の各動作の各動作に対して、通常
のCPUであればマイクロ秒台の速度であるのに対して
、ミリ秒台の速度であり、システム効率を低下させてい
る。マシンチェックによる割り込みが原因となって、C
PUのキャッシュ内の全てのデータが失われ、更にCP
UのTLB(変換ルックアサイドバッファ)内の全ての
変換が失われ、これに、キャッシュ内で失われた全てを
データを再び読み取り、TLB内で失われた全てのアド
レスを再変換する必要性に起因するCPU処理能力の低
下が加わり、システムの処理能力は、更に激しく劣化す
る。データが訂正されないと、マシンチェック割り込み
によってプログラムタスクはアベンド(異常終了)され
てしまう。 【0013】要求元への送信中、C/R方法は集合内の
ハードエラーを訂正することができ、ECC方法はソフ
トエラーを訂正することができるが、C/R方法による
エラー訂正は、メモり自体のハードエラーもソフトエラ
ーもなんら訂正しないものである。しかしながら、訂正
したDU+ECC照合をその元の位置に記憶することに
よって、ECC方法で訂正したソフトエラーをMS内で
訂正することができ、これは時として「データをスクラ
ッブ(scrub)」すると呼んでいるものである。 【0014】 【発明が解決しようとする課題】本発明は、C/R方法
をより信頼性高くかつ効果的に利用し、従来のC/R方
法の使用法と比較して、システム動作の中断を少なくし
ようとするものである。本発明は、メモリが大量の過剰
エラー状態を有する時、C/R方法の呼び出し及び訂正
処理の際にプロセッサの割り込みをさせないようにする
ことによって、システムの処理能力を大幅に改善するも
のである。更に、本発明は、C/R方法の処理を再試行
する能力を簡便化すると共に、過剰エラーの訂正を監視
及び報告することによって、C/R方法を改善し、シス
テム割り込みの必要性を減少させるようにしたものであ
る。本発明は、過剰エラーが1つのメモリ単位内で多数
回発生しても、メモリページフレーム(または、その他
のいずれかのメモリ報告単位)当り1回の過剰エラー通
信に、通信量を減少させることができる。本発明による
監視は、C/R方法のエラー訂正におけるオペレーティ
ングシステムソフトウエアとシステムサービスプロセッ
サとの双方の係わりを著しく減少させる。 【0015】本発明の目的は、要求プロセッサ及びメモ
リ制御器によってC/R方法のプロセスを動的に行い、
サービスプロセッサによる介在を減少、または除去する
ようにした手段を提供することである。本発明の別の目
的は、要求プロセッサによるデータ処理の中断を発生さ
せずに、データ単位をC/R方法で訂正できるようにす
ることである。本発明の更なる目的は、C/R方法を実
施するハードウエアをいくつかの障害には耐えられるよ
うにし、そうしなければ訂正できないようなエラーを、
その方法によって訂正させることができるようにするこ
とである。 【0016】 【課題を解決するための手段】本発明は、C/R方法に
再試行性を設けることによって、この価値を大幅に高め
たものである。C/Rプロセスの実行中どこで障害が生
じようと、本発明は、C/R方法の開始前に存在してい
た元の誤ったDU+ECCの値を、元の位置に記憶する
ことを要求し、C/R方法を再試行できるようにしてい
る。故障がない復元は、C/R方法を用いる場合に信頼
性を得るには重要なことである。 【0017】本発明は、ECC方法が過剰エラーを検出
した時(例えば、C/R方法をSEC/DED型ECC
と共に用いている時に2つのエラービットが1つのデー
タ単位内で発見されたような時)、自動的にC/R方法
を呼び出す。次に、本発明は、ECCエラー検出をC/
R方法と組み合わせて用い、H−H、H−S及びS−S
ケースのような、異なる2つのエラーの組み合わせのケ
ースを検出する。H−Hケースの検出は、2つのハード
エラーがメモリ内のデータ単位に存在することを明らか
にすると共に、メモリの故障状態も表す。H−Sケース
の検出は、メモリ内のデータ単位に1つのハードエラー
が存在することを明らかにすると共に、この場合もメモ
リの故障状態を表す。S−Sケースの検出は、メモリ内
のデータ単位に2つのソフトエラーが存在することを明
らかにし、メモリの故障状態は表さないが、メモリに記
憶されているデータ単位の訂正不可能なエラー状態を表
すことになる。 【0018】本発明は、SEC/DED型の代りに、2
エラー訂正/3エラー検出(DEC/TED)、あるい
は3エラー訂正/4エラー検出(TEC/QED)型等
の他の型のECCと共に、C/R方法を用いることがで
きる。SEC/DEDを別の既知のECCの形式のいず
れかと置き換えることによって、それに対応して、デー
タ単位内の訂正可能なソフトエラーの数が増加する。例
えば、SEC/DED型ECCをDEC/TED型のE
CCと置き換えれば、データ単位当り2つまでのソフト
エラーを訂正することができるようになり、H−H−H
、H−H−S、H−S−S、及びS−S−Sケースを扱
うことができることになる。また、SEC/DED型E
CCをTEC/QED型ECCと置き換えることによっ
て、3つまでのソフトエラーを訂正することができ、H
−H−H−H、H−H−H−S、H−H−S−S、H−
S−S−S、及びS−S−S−Sケースを扱うことがで
きるようになり、更に高い等級のECCタイプと置き換
えれば、訂正できるようになるソフトエラーの数も増加
する。本発明では、データ単位内のエラーの位置は重要
なことではない。 【0019】本発明は、特定のエラーケースの発生を自
動的に知らせ、それを後に保守用に用いることができる
ようにシステムが記録できるようにすることによって、
システム内にレコードを保管できるようにし、これによ
って、異なるタイプの訂正作用を、上述のような異なる
検出可能な場合に用いることができるようにするもので
ある。本発明は、システムのエラー報告によって過度な
ハードエラーとソフトエラーとを検出できるようにする
ことによって、システムを停止するような緊急保守状況
を防止することができる。報告過程を設けたことにより
、非緊急保守が後に検出したエラーの原因となるような
条件を扱えるようにすることができる。本発明は、C/
R方法とECC方法とを組み合わせて用いるようにし、
冗長状態制御レジスタを備え、それらに対して比較及び
パリティチェックを用いることによって、システムの故
障に対する耐性を向上させるものである。 【0020】本発明による報告通知(report  
signalling)の一例では、CPUがシステム
の主記憶装置(MS)内の4KBのページフレーム全て
の主メモリにメモリマップを保持している。このメモリ
マップは論理トラックレコード(LTR)と呼ばれてい
るものである。要求元プロセッサは、過剰エラーのタイ
プを各アドレスされたメモリユニットに前もって報告し
てないなら、それぞれのアドレスされたメモリユニット
(4KBページフレーム)に対して、H−H、H−S、
及びS−Sの過剰エラーの場合を、LTRに報告し、こ
れによって、システムの処理を遅れさせシステムの効率
を低下させる、報告のためのプロセッサ割り込みの数を
大幅に減少させることができる。 【0021】LTRをシステムサービスプロセッサ(S
P)にも報告し、SPが物理トラックレコード(PTR
)と呼ばれるそれ自体のページフレームマップを永続的
ディスクファイル内に保持できるようにする。LTRが
揮発性CPUメモリのリセットによって失われた後も、
PRTを保持している。CPUの次回の再初期化の時、
SPはPTRを用いて、CPUのソフトウエアに対して
メモリ内のLTRを再構築するので、CPUは、エラー
状態として既に報告してある不良ページに対するエラー
割り込みを報告することによって、LTRの再構築に時
間を浪費しなくても済む。PTRはエラー状態量のスレ
ショルドを有しており、これを越えるとシステムの適切
な部分を囲い込み(fenced  off)、保守の
ために停止することができる。 【0022】 【実施例】図1は、リクエスタ、すなわち要求元によっ
て主記憶装置(MS)11から要求された、エラーデー
タを訂正するためのC/R方法の新規な制御をすること
ができるハードウエアを示している。この場合、要求元
とは、CPU(中央処理ユニット)、1つ以上のI/O
デバイスを制御するI/Oプロセッサ、またはサービス
プロセッサ(SP)等とすることができる。各データ要
求は、コンピュータシステム内のメモリからなるMS 
 DRAMアレイ内の1つのデータラインをアクセスす
るために、アドレスをMSに送出する。好適実施例では
コンピュータシステム内の主記憶装置(MS)を用いて
いるが、本発明はどのようなメモリにも適用することが
できる。各要求は、MS内の要求したデータラインのM
Sアドレス、要求元の識別子(RID)を含み、これら
をメモリ制御器に供給する。 【0023】MS11内の各データラインは、1つ以上
のデータ単位(DU)を含んでおり、各データ単位は、
データビットの集合体である。これらのデータビットに
対してエラー訂正コード(ECC)を発生し、DU+E
CC集合体という表記で示されるビット集合体全体を与
えることになる。1つの集合体におけるECCビットは
、DUビットの間に混合しており、ECCビットは、そ
の読み取り及び送信中に、その集合体に対して1エラー
訂正/2エラー検出(SEC/DED)を実行可能とす
る。 【0024】好適実施例では、各データラインは、16
個のDU+ECC集合体から成り立っている。好適実施
例では、1つのDU+ECC集合体内のビットを、並列
にメモリバスに読み出し、送信するようにしているが、
これらを現在アクセス中のデータライン用のバスに直列
に送信するようにしてもよい。また、好適実施例は、各
DUが64データビットの二重ワード(double 
 word)であり、SEC/DEDを行う8個のEC
Cビットを有しているものとしている。したがって、6
4+8=72ビットを並列にバス上を転送することにな
る。直列バスを用いる場合は、各DU+ECC集合体を
並列ビット形状に組み立ててメモリに送り、またメモリ
から読み出した並列ビット形状を直列ビット形状にする
ことになる。 【0025】オリジナル読み取り要求(図8)図1のハ
ードウエアにおいて、要求されたデータライン内の16
個のDU+ECC集合体の各々を、MS11から反転器
12を介してECC論理/S,P発生器13(以下、回
路13と称する)に転送する。オリジナル読み取りの間
、各集合体は、その真の状態(非反転)で、反転器を通
過して回路13に至る。回路13は各DU+ECC集合
体のエラーをチェックし、ECC論理がそれにエラーが
ないことを発見したか否かを、その要求元に返送する。 DU+ECC集合体が1つのエラービットのみを有する
のなら、要求元に送る前に、そのエラーを訂正する。要
求元には、データと共に状態情報も送るようにして、要
求元にその集合体にエラーがないか、あるいは特定のエ
ラー状態であるかを、知らせる。要求元がエラーのない
データを受け取ったのなら(ECCによって訂正された
ものか非訂正のもの)、C/R機能を省略する(その要
求に対しては行われない)。特定の状態信号が、いかな
る検出したエラー状態でも、送出したDU+ECC集合
体に対して識別して、要求元に知らせるので、要求元は
、エラーを含むDU+ECC集合体にC/R方法を実行
するように要求するか否かを含む要求をすべきことを決
定することができる。 【0026】図8のフロー図は、データライン要求に対
するオリジナル読み取り処理のステップを示しており、
ステップ1は現在の要求を表している。ステップ2は、
読み取り要求がメモリ制御器から優先権を得る時を表し
ており、ここには、図4のメモリ要求レジスタ71に要
求を入力することも包含されている。該レジスタ71か
らMS内の各DU+ECC集合体に対してアドレスを発
生するようにしている。ステップ3は、図6及び7のレ
ジスタ73及び74に入力する状態情報の発生である。 レジスタ73及び74はMS11に対するメモリ制御器
内に設けられている。 【0027】図6のレジスタ73は、要求元に送る状態
情報を表し、回路13によって次のようなフィールドが
設定されている。要求を行ったプロセッサの要求元識別
子(RID)、読み取った72ビットのDU+ECC集
合体、次にあげる1ビット指示部フィールドエラー無し
、1ビット訂正済みエラー、過剰エラー、特殊UE(未
訂正エラー)指示 特殊UEは、あるメモリ位置に記憶されるユニーク文字
であり、それによりそのメモリ位置がエラーによる回復
不可能な不良データを有することを表すものである。 【0028】図7のレジスタ74は、サービスプロセッ
サ(SP)に送る状態情報を表している。レジスタ74
が集合体に対するECCシンドロームビットを設定する
フィールドも有していることを除いて、レジスタ74に
も回路13によってレジスタ73に入力したのと同一情
報を、セットするようにしている。SPに対するシンド
ロームビットを備えることによって、SPは、必要であ
ればECC処理を確認するために、シンドロームビット
及び他の状態情報を使用するオプションを有することに
なる。オリジナル読み取りでは、レジスタ73及び74
内のフィールドH−H、H−S及びS−Sは、状態レジ
スタには発生されていない(リセット状態ではオフにな
っている)。図8のステップ4では、レジスタ73内の
状態情報を、RIDフィールドに示されている要求元に
通信する。これは図4のレジスタ71内に現在表してい
る読み取り要求である。 【0029】再読み取り要求(図9) 要求元は、CPU、I/Oプロセッサ、またはSPであ
る。各要求元は、状態情報を受け取り、受信した状態情
報を送出するためのハードウエアであり、状態レジスタ
の情報に過剰エラーが報告された場合、C/R方法を用
いて記憶要求を継続するために更に動作が必要であるか
を決めるハードウエアを有している。好適実施例では、
要求元が状態レジスタにおいて過剰エラーの指示を受け
ると、要求元は自動的にMSに再読み取り要求を行い、
これがC/R方法を呼び出す要求になり、当該DU+E
CC集合体内の過度エラーの訂正を試みることになる。 【0030】図7の状態レジスタ74は、その内容を、
IBM3090システムのプロセッサ制御要素(PCE
)内に存在するもののようなSPに送信させている。 要求を扱うハードウエア内に回復可能な故障が生じた場
合のような、MSエラー状態に対する要求の時、SPは
システムのためにエラー回復処理を制御する。例えば、
DU+ECC集合体を扱っている時にエラー状態が生じ
たなら、SPは、エラー集合体を含む位置に特殊なUE
文字を書き込ませ、不良データが用いられるのを防止す
る。要求元(最初の読み取り要求に対する状態レジスタ
情報を受け取る)が、エラーのないフィールドを受信中
であることを発見したら、返答せずに受信した集合体を
用いる。しかし、過剰エラー指示を受け取ったなら、再
読み取り要求(再実行要求と呼ばれることもある)を、
要求元のハードウエアマイクロコードによって、MS制
御器に返答として与える。再読み取り要求は、エラーの
あるDU(レジスタ71によって現在アドレス指定され
ている)を訂正する試みの中で、C/R方法を実行する
ハードウエア(C/Rハードウエア)を起動する。 【0031】C/R方法を呼び出す再読み取り要求を発
生するプロセスにおいて、MS11の通常処理または要
求元のプロセッサには割り込みは生じない。要求元プロ
セッサに割り込みを生じさせずにC/R過程を首尾よく
用いることによって、本発明は従来技術に比べて重要な
新規性を備えることができる。従来は、過剰エラー状態
(SEC/DED  ECCでは2ビットエラー)を感
知する際、要求元プロセッサに常に割り込みが起こり、
その間にSPを呼び出してC/R方法の実行を起動し制
御するようにしていた。そのような従来のプロセスでは
、本発明のプロセスと比較して、大量の処理時間が失わ
れていたことになる。 【0032】次の表は、図4に示すC/Rシーケンサの
4つの状態と、C/Rプロセスの完了前にC/Rハード
ウエア内で故障が発生した場合に、エラーのあるDU+
ECC集合体をMS内のその元の状態に復元するために
必要な復元作用を含む、それらシーケンサの結果のいく
つかを表したものである。                          
       表                          
                         
    再試行のための              
        状態終了時の      状態終了時
の    DU+ECCの             
       データバッファ    MS内の   
     復元(元の状態          状態中
    内のDU+ECC  DU+ECC    の
DU+ECC  状  態    の動作    の形
状            の形状         
 を確保する)    最初の    MSから   
   真                真    
          無し読み取り  データバ           ッファ            
                         
                 最初の    デ
ータバ      真               
 反転        データバッファ記憶     
 ッファ                     
                 から主記憶装置 
         からMS            
                         
 (比較せず)  2回目の  MSから      
真                反転      
  状態バッファエラ読読み取り  反転器、    
                         
       ーが回復可能なら          
データバッファ                  
            この2回目の読み取    
                         
                         
りを再び行ない、                 
                         
            それから2回目の     
                         
                         
 記憶を行なう    2回目の  データ     
     真                  真
        2回目の記憶を記憶      バッ
ファ                       
               再び行なう     
     からMS                
                         
            【0033】このように、C/R方法の最初の読み取り
状態は、メモリ制御器によって操作される際、読み取り
要求に応答して与えられ、C/R要求を要求元から図5
のシーケンサ72に供給する。通常、C/R方法の4つ
の状態は連続して起こり、C/R方法が用いているハー
ドウエアが正しく処理している限り、2番目の記憶状態
で完了する。 【0034】C/R方法のいずれかの状態で誤動作信号
(シーケンサ72の出力状態信号によって指示される)
が発生すると、この誤動作信号はC/Rプロセスのそれ
以上のステップを抑制し、復元処理を呼び出し、処理中
のDU+ECC集合体をMS内のその元の状態に確実に
復元させる。これは、C/Rプロセスの最初の記憶及び
2番目の読み取り状態の終了時には、補数(反転)の形
で元のMSの元の位置に記憶するようにしているからで
ある。特定のデータ復元作用は、中断が起こった時にC
/Rプロセスのどのステップが存在していたかに依存す
る。そして、エラーのあるDU+ECC集合体を復元し
たことにより、C/Rプロセスの再試行が可能となり、
再び潜在的訂正状態にすることができる。復元しなけれ
ば、C/R方法の再試行を行なってエラーのあるDU+
ECC集合体を訂正することはできず、C/R方法の訂
正能力の信頼性を損なうことになる。 【0035】図9及び10は、好適実施例で用いている
C/R方法の詳細なフロー図を示し、前出の表のC/R
方法のステップを、より詳細なサブステップで表したも
のである。図9のステップ10は、レジスタ71にアク
セスするためにMS制御器が選択した再読み取り要求を
表しており、ここで複数の要求に優先順位を与え、アド
レスレジスタ71内の現在のMS要求になるまで、それ
らはパイプライン状に遅延される。したがって、MSの
動作に対して行なわれる従来の優先順位選択により、読
み取りまたは再読み取り要求を発行した時間とMS11
がそれを実行する時間との間に、多くのマシンサイクル
が介在する。即ち、MS11に対するその他の読み取り
要求及び記憶要求を、この介在期間中に実施することが
できる。メモリ制御器内では、再読み取り要求は常に読
み取り要求より高い優先順位が得られるようになってい
る。 【0036】図9のステップ10は、「要求元からのC
/R要求」を図5のC/Rシーケンサ72に入力するこ
とを活性化するために、レジスタ71に入力する再読み
取り要求を、その最初の読み取り出力状態に設定するこ
とを表している。図9のステップ11は、MSから各D
U+ECC集合体を読み取ることを、表している。ステ
ップ12は、回路13によって、状態ビットS、及びパ
リティビットPを各DU+ECC集合体に発生すること
を表している。ビットSは、現在のDU+ECC集合体
に対しての受信状態レジスタ情報の中の「過剰エラービ
ット」フィールドのコピーとして、発生されるものであ
る。状態ビットは、過剰エラーの指示がない時はゼロ状
態を指示するが、一旦過剰エラーが指示されると、1の
状態を有する。そして、回路13は、各状態ビットに対
してパリティビットPを発生する。パリティビットは、
偶数、奇数パリティのいずれで発生してもよい。好適実
施例では奇数パリティを用いている。したがって、本実
施例では、状態ビットが1の時、パリティビットは0と
なり、状態ビットが0の時パリティビットは1となる。 【0037】ステップ14では、各DU+ECC集合体
に対して発生された状態ビットS及びそのパリティビッ
トPを、2つの別個の状態バッファ(状態バッファ1と
状態バッファ2)内にインポインタでアドレス指定され
たエントリのフィールドS及びPにコピーする。バッフ
ァ1及び2内の対応するエントリは、同一の状態ビット
及びパリティビット状態を受け取る。データバッファ2
1及び状態バッファ1及び2に対するインポインタは全
て、それらの各バッファ内の対応するエントリをアドレ
ス指定し、最初の読み取り処理の間にインポインタを同
時に増分するようにする。 【0038】C/R方法を呼び出すのは、データバッフ
ァに読み込み中の現在のMSデータライン内の16個の
DU+ECC集合体の少なくとも1つのDU+ECC集
合体に対して、状態ビットが1状態に設定された時(過
剰エラーを示すため)だけである。一般的に、データバ
ッファ内の殆どのDU+ECC集合体は、誤ったもので
はなく、それらの各状態ビットSは0に設定されており
、データバッファに記憶されている対応するDU+EC
C集合体にはエラーがないことを示している。DU+E
CC集合体の状態ビットSの値が1の場合は、図1のハ
ードウエアにおいて、その集合体のビットに対する両方
の反転を制御する。したがって、ビットSに対する0値
(エラーのないことを指示する)は、それが図1のハー
ドウエア中を移動する際、その集合体の反転(補数を取
る)は全く行なわれない。ステップ26を参照されたい
。 【0039】ステップ15は、データバッファ21内の
インポインタの位置で各DU+ECC集合体を記憶する
ことを、表している。ステップ16では、図4のメモリ
アドレスレジスタ71によって現在アドレス指定されて
いるデータラインに対して、16個全てのDU+ECC
集合体をデータバッファに書き込むまで、インポインタ
を増分し、次の集合体をMSからデータバッファ21内
の次のエントリに読み込む。ステップ18では、C/R
処理ハードウエアにおいてなんらかのエラーが発見され
たかを試験する。もしエラーが発見されたなら、C/R
処理を禁止し、MS内のDU+ECC集合体を、禁止さ
れたC/R処理の開始以前に存在していた元の状態に復
元する。ステップ18で動作的エラーが発見されなけれ
ば、C/R処理はステップ19を続行し、C/Rシーケ
ンサを増分してその最初の記憶出力状態とする。 【0040】図1に示すように、アウトポインタ3、2
及び1(23、29、26)を、データバッファ21と
2つの状態バッファ2及び1(27、24)とに備え、
出力すべき対応するエントリの選択を制御するようにし
ている。最初の記憶状態の間、これらのアウトポインタ
をステップ25で同時に増分し、全てが同じアドレスを
有し、それらの各スタック内の対応するエントリを指す
ようにする。ステップ21、22及び23は、これらの
ポインタ及びそれらのアクセスしたエントリの内容につ
いてチェック動作を行ない、発生したいかなるハードウ
エアエラーも検出する。 【0041】初期状態では、インポインタ及びアウトポ
インタは、現在のデータラインのデータバッファ(及び
その各状態バッファエントリ)内の最初のDU+ECC
集合体をアドレス指定する。複数のDU+ECC集合体
をデータバッファ内の複数のエントリに記憶する(状態
バッファ1及び2内の対応するエントリにそれらの対応
する状態及びパリティビットを記憶すると共に)と直ち
に、インポインタはアウトポインタより先に増分し、イ
ンポインタの値が出力ポインタの値より進んでいる限り
、アウトポインタがアドレス指定したエントリをそれぞ
れのバッファから出力することができる。 【0042】アウトポインタがアドレス指定したDU+
ECC集合体を、アウトポインタデータスタックエント
リから、図1の反転器32に出力する。状態バッファ1
または2のいずれかからのSビットの対応する出力値(
これらは誤りがない限り同一である)を用いて、アウト
ポインタの制御の下で出力されたDU+ECC集合体に
対して、図1の全ての反転動作を制御する。現在行なわ
れているC/R処理の持続期間の間、出力されたビット
Sの値を状態バッファ制御器/パリティチェック回路4
3に登録する。登録した状態ビットSが1値を有するな
らば、反転器32及び反転器12への線44上の反転制
御信号(第1記憶及び第2読み取りにてDU+ECCビ
ットを反転させる)を活性化する。現在出力中のDU+
ECC集合体に対してビットSが0であれば、DU+E
CC集合体に対して反転は行なわない。 【0043】ステップ26は、対応する状態ビットSに
1状態が存在する場合、反転器32内のアウトポインタ
が現在指定の集合体の反転(補数を取る)を行なわせる
。次に、ステップ27はECC論理回路33を不能化し
、DU+ECC集合体をECC論理回路33を通過させ
、その集合体を読み取ったのと同じMSの位置に記憶す
る。対応する状態ビットSが0であれば、反転器32は
DU+ECC集合体を反転しない。ECC論理回路33
は、最初の記憶動作の間は集合体には動作しない。アウ
トポインタを増分することによって、全てのDU+EC
C集合体をMSのデータラインに記憶する動作を制御す
る。ここで、過剰エラーを有する集合体(S=1)のみ
が、C/R方法の最初の記憶ステップの完了時に、反転
された形でMSに記憶されていることになる。 【0044】ステップ28では、最初の記憶動作で、C
/R処理のハードウエアになんら故障を生じることなく
、記憶が行なわれたかを、チェックする。故障が検出さ
れたなら、ステップ29に進み、上述の表に示したよう
に、C/R方法の最初の記憶状態の間の故障に対して要
求される復元を行なう。最初の記憶が首尾よく完了した
ことがわかった場合、ステップ31を実行し、C/Rシ
ーケンサ71をその2回目の読み取り状態に増分し、補
数の形状になっている1つ以上のDU+ECC集合体を
有し、MS内に現在記憶されているデータラインの2回
目の読み取りを開始する。 【0045】C/Rプロセスの2回目の読み取り(図1
0) 2回目の読み取りでは、インポインタ3は、最初の読み
取り動作と同じように動作し、レジスタ71によってア
ドレス指定されているデータライン内の各DU+ECC
集合体をアクセスする。この2回目の読み取りではイン
ポインタ1及び2は用いない。したがって、ステップ5
1は、レジスタ71によってアドレス指定されている現
在のデータライン内の各DU+ECCをアクセスする。 ステップ54、55及び56は、C/Rハードウエアの
チェック動作を行なうが、これについては後述する。 【0046】2回目の読み取りにおいて、アウトポイン
タ1及び2は、最初の読み取りとは異なった動作を行な
い、代りに、MSからデータバッファ21のインポイン
タ3の指定位置に読み出された、現在のDU+ECC集
合体に対応するSビットを有する複数の状態バッファエ
ントリをアドレス指定する。2回目の読み取りでは、ア
ウトポインタ1及び2は、インポインタ3と共に歩進す
るが、回路13内に対応するバッファ動作による遅れが
ある時は、インポインタ3の増分は、1または2サイク
ル遅れて起こることになる。 【0047】アウトポインタ3は、一方、2回目の読み
取り動作によって早く得られた、データバッファ内のD
U+ECC集合体に対して、2回目の記憶動作を制御す
るので、2回目の記憶動作は、2回目の読み取り動作と
重複することができる。アウトポインタ1及び2は、各
集合体が反転器12を通過して図10のステップ57を
実行する間、状態バッファ1及び2をアドレス指定して
、MSから読み出した各DU+ECC集合体に対する、
ビットSをアクセスし、反転器12の動作を制御する。 アウトポインタ1及び2は、初期状態では読み出すべき
最初のDU+ECC集合体をアドレス指定するように設
定され、こうして、反転器12の必要な反転状態を制御
する。アウトポインタ1および2を、次に読み出すべき
DU+ECC集合体等のために増分する。 【0048】状態バッファ内のアクセスされた各ビット
S(最初の読み取りの間に発生された)を、2回目の読
み取りの間変化させずに再び用い、各エラーのあるDU
+ECC集合体の2回目の反転を制御し、2回目の読み
取り動作の間に集合体内の全てのハードエラーを訂正す
るようにする。したがって、各状態バッファ内の状態ビ
ットSの順序は、最初の記憶動作によってMS内に記憶
されたデータラインから読み出されたそれぞれのDU+
ECC集合体の順序である。 【0049】図10のステップ58では、各々次のDU
+ECC集合体をMSから読み取る直前に、アウトポイ
ンタ1及び2を増分するので、対応する状態ビットSは
、MSから読み取られた集合体に対する反転器12の動
作を制御するのに効果的である。図10において、ステ
ップ58からステップ61への経路、及びステップ58
からステップ71の経路は、同時に実行される。前者の
経路では、C/R方法における2回目の反転で全ての存
在するハードエラーを訂正した後に、現在のDU+EC
C集合体内に残存しているエラー状態を、SEC/DE
D型の回路13が検出する。ステップ61では、現在の
集合体に対して次の事柄を判別する。 1)ECCがエラーを訂正しなかったので、H−H状態
であるか。 2)ECCがエラーを1個訂正したので、H−S状態で
あるか。 3)ECCが存在するエラー状態を訂正できなかったの
で、S−S訂正不可能な状態であるか。 【0050】ステップ63は、レジスタ73及び74内
の対応する1ビットフィールドをセットする。これは、
図11のシステムエラー報告処理で用いるのに必要なこ
とである。次に、ステップ68では、状態レジスタの内
容を要求元とSPとに送る。これには、16個全てのデ
ータ単位を要求元に送ることを含んでいる。上述の並列
経路(後者の経路)は、ステップ58に続いてステップ
71を実行し、現在のDU+ECC集合体を、データバ
ッファの現在のインポインタ3の指定位置に記録する。 次にポインタ3をステップ72で増分する。 【0051】次のステップ73では、C/Rハードウエ
ア処理内に、ステップ61でDU+ECC集合体内で検
出したエラー状態とは異なるタイプのエラー状態を生じ
ることなく、2回目の読み取りが完了したかを試験する
。C/R処理エラーが起こったなら、ステップ88に進
み、MS内の現在のDU+ECC集合体を、2回目の読
み取りの終了時の状態に復元する。C/R処理エラーが
起こっていなかったのなら、ステップ74でC/Rシー
ケンサ72を増分し、その最後の状態、即ち2回目の記
憶を示すようにする。 【0052】C/Rプロセスの2回目の記憶(図10)
エラーのある集合体(複数のこともある)を2重反転し
、エラーのないDU+ECC集合体には全く反転を施さ
なかったので、各集合体は、その真の状態でデータバッ
ファに書き込まれたことになる。ステップ81では、デ
ータバッファ内のアウトポインタ3の指定位置から、各
集合体を全く反転させないで、MSに書き込む。 【0053】アウトポインタ3(アウトポインタ1及び
2とは異なる)は、C/R方法の最初の記憶に対して行
なったように動作する。即ち、アウトポインタ3は、ま
ずデータバッファ内の最初のエントリをリセットし、各
DU+ECC集合体をエントリから出力した後にアウト
ポインタ3を増分する。しかしながら、2回目の記憶動
作では状態ビットSを用いないので、1回目の記憶動作
中のように、ビットSをデータバッファエントリと整合
する必要は全くない。したがって、他のポインタはアウ
トポインタ3と同期して動作することはない。ステップ
82では、各集合体を出力した後にアウトポインタ3を
増分する。 【0054】したがって、2回目の記憶動作では、全デ
ータラインが、その真の元の状態でデータバッファに存
在し、2回目の記憶動作が完了した後、スクラッビング
(scrubbing)によって訂正可能な単一ソフト
エラーのみを有する集合体を除いて、データライン内の
全ての集合体は、MS内にその真の元の状態で残留する
ことになる。よって、2以上のソフトエラーが1つの集
合体に存在した時は、MS内の集合体は全てのハードエ
ラー及び全てのソフトエラーを未だ有していることにな
る。したがって、C/R処理用ハードウエア内にエラー
が起こらなかったなら、C/Rエラー訂正プロセスは完
了したことになる。 【0055】ハードウエアのエラー検出C/Rハードウ
エアの故障耐性における高い信頼性を達成するために、
新規な手段を設けて、C/Rハードウエアの動作中の故
障を検出する。アルファ粒子は、いかなるバッファエン
トリのいかなるビット、及びいかなるポインタレジスタ
内におけるソフトエラーの原因ともなり得るものである
。また、これらビット位置にハードエラーが起こる可能
性もある。本実施例では、C/R方法の故障耐性を高め
るための動作中に、多くのエラーチェックを行なうよう
にしている。 【0056】各状態バッファ及びデータバッファは、書
き込み及び読みだしの間にそれぞれ用いるインポインタ
及びアウトポインタを有している。全てのインポインタ
が一斉に歩進しなくてはならない時(最初の読み取りの
間)があると共に、全てのアウトポインタが一斉に歩進
しなくてはならない時(最初の記憶の間)もある。他の
時には、状態バッファの2つのインポインタのみが一斉
に歩進しなくてはならず(2回目の読み取り中で、デー
タバッファのアウトポインタを使用していない時)、ま
た状態バッファの2つのアウトポインタが一斉に歩進し
なくてはならない。これらのポインタの1つが歩調を乱
した時、DU+ECC集合体を最初に記憶されていた状
態に回復しようという試みを行なうと共に、C/R動作
の再試行も行なう。 【0057】インポインタ1及び2の値は常に同一であ
ると想定されており、これを比較器41でチェックする
。同様に、アウトポインタ1及び2の値も同一であると
想定されており、これを比較器42でチェックする。 比較器41または42がポインタの値が等しくないこと
を発見したなら、エラーを検出したことになり、その比
較器は要求元プロセッサ及びSPに割り込み信号を出力
する。また、現在処理中のエラーのあるDU+ECC集
合体を上述の表に示したように復元するので、その集合
体に対してC/R方法を再び試行することができる。 【0058】最初の読み取りにおいて、インポインタの
歩調が乱れた場合、主記憶装置内のデータには損傷がな
い。したがって、これは単に最初の読み取りの要求元に
割り込み信号を送って、C/R方法をその開始から再試
行することを要求する程度のことである。最初の記憶に
おいて、アウトポインタの歩調が乱れた場合、割り込み
信号を発生して、その最初の記憶を取り消し、データを
主記憶装置に保存するようにする。次に、C/R方法全
体を再試行する。 【0059】2回目のデータ読み取りにおいて、2つの
状態バッファのアウトポインタの歩調が乱れた場合、そ
の2回目のデータ読み取りを中止させるために、割り込
み信号を発生する。状態バッファとMSの読み取りは、
非破壊的読み取りなので、MS及び状態バッファの内容
は不変である。したがって、2回目の読み取りの再試行
または2回目の記憶のC/Rシーケンスによって回復が
可能となる。これらの歩調の乱れによる割り込みが、与
えられた時間間隔内で頻繁に発生する場合、C/R方法
に関係するハードウエアが信頼性のないものと考えられ
、したがって直ちに交換しなくてはならない。 【0060】状態バッファ24及び27へのそれらのイ
ンポインタ及びそれらのアウトポインタによる各アクセ
スにおいて、アクセスされた状態ビットs及びパリティ
ビットPは同一であると仮定しており、これらについて
も回路43内の比較器にて同一であるかを比較する。比
較されたS、P値が異なるのなら、エラーであることを
指示し、割り込み信号を要求元プロセッサ及びSPに送
る。また、回路43は、いかなるパリティエラー状態を
も検出するために、各アクセスした状態バッファエント
リのビットS及びPの内容のパリティチェックを行なう
。状態バッファエントリの1つでパリティチェックの結
果が不良である場合、別の対応する状態バッファエント
リ内の状態ビットsを、もしそのパリティが正しければ
、既に説明した反転制御のために用いるようにする。 【0061】この状態バッファの冗長性によって、アク
セスした一方の状態バッファのエントリにパリティエラ
ーがあり、他方の状態バッファのアクセスしたエントリ
が正常なパリティを有するような場合、C/R動作を続
けることができる。しかしながら、両方の状態バッファ
のアクセスしたエントリにパリティーエラーを発見した
時は、できるだけ早くC/R動作を中止し、救援のため
に割り込みをSPに送らなければならない。この割り込
みが最初の記憶の間に発生したなら、直ちに記憶動作を
中止し、MS内に元のデータを保存するようにする。こ
の時点において、状態バッファ及びデータバッファの内
容は、C/R動作全体を再実行することによって、再び
ロードすることができる。この割り込みが2回目の読み
取り中に発生したなら、パリティエラーのために状態ビ
ットはMS内のDU+ECC集合体が補数を取ったもの
なのか否かを指示することができないので、C/R動作
は回復不可能な故障を被ることになる。このような場合
、C/R動作に関係したMS内のアドレスに特殊なUE
記号を記憶して、不良で回復不可能なデータブロックで
あることを指示する。 【0062】状態ビットを記憶する前に、各状態バッフ
ァは状態ビットが良好なパリティを有するかをチェック
する。不良パリティを有する状態ビットは、デフォルト
値「0」及びそのパリティ「1」と共に状態バッファに
書き込むようにする。この動作は、状態バッファの全て
のエントリが最初の読み取りの終了時において正しいパ
リティを有することを確かめるために、行なわれるもの
である。デフォルトの状態ビットsは、いかなる反転も
起こさせず、C/R方法がその集合体に動作するのを防
止する。 【0063】最初の読み取りを更に詳しく述べると、ア
ウトポインタ1、2及び3を比較して、これらのアウト
ポインタが常に一斉に歩進することを確かめる。これら
アウトポインタ間に不一致があると、エラー信号を発生
して動作の不良を教えるようになっている。しかしなが
ら、2回目の読み取りでは、2つの状態バッファのアウ
トポインタ1及び2はアウトポンンタ3と一致して歩進
しないので、これら2つのみを比較するようにする。こ
れは、図9のステップ21、22及び23と、図10の
ステップ54、55及び56とで行なわれる。C/R方
法が完了すると、その結果は、訂正済データまたは未訂
正データ(2つのソフトエラーや、特殊なUEの検出の
ようなもの)として、要求元に送られる。 【0064】過剰エラーの減少の報告(図11)図11
の報告プロセスは、過剰エラーをオペレーティングシス
テムソフトウエア(OS)に報告する量及び頻度を大幅
に減少し、更に1メモリ単位、例えば4KBのページ内
の既に報告済のハードウエアエラーに対する全ての割り
込みを、除去するものである。図11の報告プロセスは
、要求されたデータラインに過剰エラーが存在すること
を示す状態情報(図6に示す)を要求元が受け取った時
、呼び出されるようにしている。本実施例はLTR(論
理トラックレコード)と呼ばれる新規な表を設け、マイ
クロコードにのみアクセス可能な記憶領域に該表を配置
している。LTRは、各々がMSの各データ単位(例え
ば4KBページ)に割り当てられた、1組の報告ビット
を含んでいる。要求元プロセッサのマイクロコードによ
りLTRをアクセスして、C/R方法における第2の書
き込み後に状態情報によって提供された過剰エラー状態
(現在検出済)に対して、報告が必要か否かの決定がな
される。 【0065】図11は3つの異なる監視プロセスを表し
ており、これらの選択は、どのタイプの過剰エラーが報
告されているかに依存する。そのタイプとは、S−S、
H−H、H−S、及び特殊UEのいずれかの場合であり
、C/R方法によるハード及びソフトエラーの検出の異
なる場合を表している。H−H及びH−Sの場合は、各
々、アドレス指定されたページが不良のMSハードウエ
アに記憶されていることを指示している。この時LTR
内の1つのビットは、今検出された過剰エラーを有する
データラインのページアドレスを用いて、アクセスされ
る。アクセスされたLTRビットがオンにセットされて
いたなら、肯定(yes)経路91を取り、そのページ
に対して過剰エラーは既に報告済みであること、及びO
Sとの通信は今検出された過剰エラーには必要ないこと
を指示するので、プロセッサの割り込みは発生しない。 しかし、このページに対してエラーが報告されなかった
なら、否定(no)経路が取られてLRTビットをセッ
トし、マシンチェック割り込みコード(MCIC)のビ
ット17をセットするMC割り込みを発生して、そのペ
ージの最初の過剰ハードエラーをOSに伝える。 【0066】S−Sの場合は、アドレス指定したページ
内の不良ハードウエアを指示するものではないが、その
中にソフトエラーを検出したことを指示する。ソフトエ
ラーは不良データ(正常なハードウエア内のこともある
)を示すものである。過剰ソフトエラーは発生する毎に
報告しなくてはならず、これは、MCICのビット16
をセットしビット32をリセットするマシンチェック割
り込みを発生して、ソフトエラーをOSに伝えさせるこ
とによって行われる。LTRビットがS−S経路にてオ
ンにセットされ、その後に同じページにハードエラーが
検出されて、そのためエントリを図11のH−Hまたは
H−S経路に導くことになった場合、そのページのLT
Rビットはオンにセットされているので、経路91が取
られ、C/R処理に起因する要求元プロセッサへの割り
込みを、全て回避するようにする。 【0067】このように、図11の経路91上を取った
時、C/R方法のジュウライレイノ動作で生じた2つの
クロック停止割り込み(プロセッサ及びメモりへの)を
なくすることができる。最初の割り込みはC/R方法の
呼び出し時に起きたもので、2つめの割り込みは、検出
された過剰エラーのタイプを決定する時に起きたもので
ある。本発明は前者タイプの割り込みを除去し、後者の
タイプの割り込みを大幅に減少するためのものである。 前述の特殊UE(訂正付加エラー記号)は、不良データ
がその位置に入力されたことを表し、その場所には特殊
なUEデータパターンとして記憶されていた。この特殊
UEは(呼び出し時に)、MCIC内のビット16及び
32をセットするマシンチェック割り込みを発生し、こ
の特殊UEをOSに伝える。 【0068】好適実施例では、主記憶装置に関して開示
したが、本発明は、拡張記憶装置またはキー記憶装置の
ような他の記憶装置で用いることができると共に、ベク
トルプロセッサのような他の要求元によっても用いるこ
とができるものであることは、明らかであろう。以上本
発明の好適実施例を例示し説明したが、本発明はここに
開示した構成に限定されるものではなく、種種の変更が
可能であることは明らかであろう。
【図面の簡単な説明】
【図1】C/R方法の故障耐性を改善するための、好適
実施例装置を示すブロック図である。
【図2】データバッファの構造を、そのインポインタと
アウトポインタと共に示す説明図である。
【図3】3つのバッファをそれらのインポインタまたは
アウトポインタの対応する位置でアクセスした時の、そ
れぞれの内容を示す説明図である。
【図4】コンプリメント/リコンプリメント(C/R)
エラー訂正処理を要求するCPU、I/O及び他の要求
元からの要求を受け取るために用いるメモリ要求レジス
タの内容を表す説明図である。
【図5】図1に示した装置において用いられるC/R方
法ののステップを制御するために用いられるC/Rシー
ケンサを表す説明図である。
【図6】現在取り込み中の要求の状態をオペレーティン
グシステムソフトウエアに指示するために用いられる、
MS制御器内の状態要求レジスタの内容を示す説明図で
ある。
【図7】現在取り込み中の要求の状態をシステムサービ
スプロセッサ(SP)に指示するために用いられる、M
S制御器内の状態要求レジスタの内容を示す説明図であ
る。
【図8】取り込みエラー検出プロセスを示すフロー図で
ある。
【図9】MS制御器によって要求元に送られた2ビット
エラー状態信号に応答して、その要求元からの再読み取
り要求によって呼び出されたC/Rプロセスの前半部を
示すフロー図である。
【図10】図9の前半部のフロー図に続く、後半部のフ
ロー図である。
【図11】上記C/R過程からサービスプロセッサに通
知するプロセス、及びC/R方法によって発生した種々
の信号のシステムの用法を示したフロー図である。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】  記憶エラーを訂正するエラー訂正方法
    において、プロセッサにより、データ処理システム内の
    メモリからデータを読み取る要求を行ない、そのデータ
    に応答してメモリ制御器によって、エラー訂正コード(
    ECC)ビットによって検出されたデータ内の過剰エラ
    ーを指示するステップ、及びメモリ制御器から過剰エラ
    ーの指示を受信したことに応答して、プロセッサによっ
    てデータの再読み取りの要求を行ない、エラーを含むデ
    ータに対する再読み取り要求に応答して、データの第1
    の読み取り、第1の記憶、第2の読み取り及び第2の記
    憶を用いて、コンプリメント/リコンプリメント(C/
    R)エラー訂正方法を起動、実行するステップからなり
    、C/Rエラー訂正方法は、C/Rエラー訂正方法にお
    ける第1の読み取り及び第2の読み取りによって得られ
    たデータ及びECCをバッファ記憶するステップ、過剰
    エラーの訂正を実行する際、データの少なくともエラー
    を含む部分に対して二重反転を行なうステップ、C/R
    エラー訂正方法における第2の読み取りによって得られ
    たデータを要求元プロセッサに送るステップ、及び、デ
    ータ及びECCがエラーを含んでいないか、1つまたは
    複数の訂正済みのハードエラー、ソフトエラー又はその
    両エラー、1つまたは複数の訂正済みの過剰ハードエラ
    ー又はソフトエラー、もしくは1つまたは複数の訂正不
    可エラーを含んでいるかを指示するステップを含んでい
    ることを特徴とするエラー訂正方法。
  2. 【請求項2】  請求項1記載の記憶エラー訂正方法に
    おいて、該方法は更に、1つ以上のプロセッサから記憶
    制御器への読み取り及び再読み取り要求をパイプライン
    化して、読み取り要求のメモリアクセス及びメモリ内の
    異なるデータに対するC/Rエラー訂正方法の動作に対
    するアクセスに、優先順位を付けるステップを含むこと
    を特徴とする記憶エラー訂正方法。
  3. 【請求項3】  請求項1記載の記憶エラー訂正方法に
    おいて、バッファ記憶するステップは、データバッファ
    と、少なくとも1つの状態バッファとを提供し、前記デ
    ータバッファ内のエントリがそれぞれ、要求元プロセッ
    サによってメモリにアドレス指定されているデータライ
    ンの複数のデータ単位を受け取り、状態バッファの対応
    するエントリが、データバッファの対応するエントリ内
    のデータ単位にて、過剰エラーを検出したか否かを示す
    状態指示を受け取るようにしたことを特徴とする方法。
  4. 【請求項4】  請求項1記載の記憶エラー訂正方法に
    おいて、C/Rエラー訂正方法は、ハードウエアの障害
    の場合にC/Rエラー訂正方法の再試行を可能にするた
    めの、組み込まれた回復能力を有しており、記憶エラー
    訂正方法はさらに、C/Rエラー訂正方法を行なうハー
    ドウエア内の障害を検出する障害検出ステップ、C/R
    エラー訂正方法によってエラーのあるデータ単位とその
    関連するECCビットを反転し、C/Rエラー訂正方法
    の部分を指示する指示ステップと、指示ステップにより
    、エラーを含むデータ単位及び関連するECCビットが
    反転されていることを発見したならば、障害検出ステッ
    プに応答して、エラーを含むデータ単位及び関連するE
    CCビットを再反転してそれらの元の位置に記憶し、C
    /Rエラー訂正方法の再試行を可能とすることによって
    、データ単位及びECCの回復を可能とするステップを
    含むことを特徴とする方法。
  5. 【請求項5】  データ処理システムにおいて、記憶装
    置内のページフレームを表す複数のエントリを有するメ
    モリマップに、過剰エラー状態を報告する方法であって
    、メモリマップのエントリが、各ページフレームに対し
    て、検出された過剰エラー状態を報告するように構成さ
    れた方法において、あるプロセッサが要求したデータ単
    位を、記憶制御器によって記憶装置から読みだし、更に
    データ単位内のエラーを、該データ単位に付加されてい
    る、各データ単位に所定の最大ECCエラー訂正能力を
    与えるECCビットによって決定される最大訂正可能エ
    ラー数まで、検出及び訂正するステップ、ECCのエラ
    ー訂正能力を越えた多数のエラーを含んでいる過剰エラ
    ーの検出時に、記憶制御器内のコンプリメント/リコン
    プリメント(C/R)エラー訂正動作を呼び出すステッ
    プ、/Rエラー訂正を実行するために、データ単位を再
    び読み出して、データ単位のいかなるハードエラーも訂
    正すると共に、ECCビットを用いてデータ単位のいか
    なるソフトエラーも訂正するステップと、(d)要求元
    プロセッサによって、メモリマップのアクセスを行ない
    、該マップ内において現在アクセス中のページフレーム
    に対するエントリを検出し、更に、エントリ内の、過剰
    エラー状態が既に前記現在のページフレームに対して報
    告されたことを示す報告フィールドを感知するステップ
    、及び報告フィールドが、いかなる過剰エラー状態も以
    前に報告されなかったことを示した場合、要求元プロセ
    ッサの動作を中断して制御プログラムと通信し、アクセ
    スしたエントリが過剰エラー状態が既にページフレーム
    に対して報告されたことを示す場合、エントリを過剰エ
    ラー報告済み状態に設定し、しかも要求元プロセッサに
    よる動作を中断しないようにするステップからなること
    を特徴とする方法。
JP4049858A 1991-04-17 1992-03-06 記憶エラー訂正方法及び過剰エラー状態を報告する方法 Expired - Lifetime JPH081616B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/686,721 US5274646A (en) 1991-04-17 1991-04-17 Excessive error correction control
US686721 1991-04-17

Publications (2)

Publication Number Publication Date
JPH04338849A true JPH04338849A (ja) 1992-11-26
JPH081616B2 JPH081616B2 (ja) 1996-01-10

Family

ID=24757461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4049858A Expired - Lifetime JPH081616B2 (ja) 1991-04-17 1992-03-06 記憶エラー訂正方法及び過剰エラー状態を報告する方法

Country Status (2)

Country Link
US (1) US5274646A (ja)
JP (1) JPH081616B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228046A (en) * 1989-03-10 1993-07-13 International Business Machines Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature
US5479640A (en) * 1990-08-31 1995-12-26 International Business Machines Corporation Memory access system including a memory controller with memory redrive circuitry
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5490149A (en) * 1993-12-28 1996-02-06 International Business Machines Corporation Tactical read error recovery strategy based on dynamic feedback
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5771247A (en) * 1994-10-03 1998-06-23 International Business Machines Corporation Low latency error reporting for high performance bus
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US6279128B1 (en) * 1994-12-29 2001-08-21 International Business Machines Corporation Autonomous system for recognition of patterns formed by stored data during computer memory scrubbing
US5511164A (en) 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
JP2731745B2 (ja) * 1995-03-23 1998-03-25 甲府日本電気株式会社 データ障害処理装置
US5881072A (en) * 1996-06-28 1999-03-09 International Business Machines Corporation Method of detecting error correction devices on plug-compatible memory modules
DE69827949T2 (de) * 1997-07-28 2005-10-27 Intergraph Hardware Technologies Co., Las Vegas Gerät und verfahren um speicherfehler zu erkennen und zu berichten
US5987628A (en) * 1997-11-26 1999-11-16 Intel Corporation Method and apparatus for automatically correcting errors detected in a memory subsystem
US6345366B1 (en) * 1998-09-24 2002-02-05 International Business Machines Corporation Method and device for error recovery
AT406652B (de) * 1998-10-27 2000-07-25 Vidra Christian Verfahren und vorrichtung zum herstellen eines rohrförmigen holzkörpers
US7002905B1 (en) * 1999-01-25 2006-02-21 Cisco Technology, Inc. Method and apparatus for performing the rebooting of a network node with minimal loss of network traffic
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
JP3833016B2 (ja) * 1999-08-27 2006-10-11 富士通株式会社 記憶装置のサーボリカバリー方法及び記憶装置
US6654909B1 (en) * 2000-06-30 2003-11-25 Intel Corporation Apparatus and method for protecting critical resources against soft errors in high performance microprocessors
DE10135285B4 (de) * 2001-07-19 2005-08-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben eines eine Speichereinrichtung enthaltenden Systems
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
JP3722057B2 (ja) * 2001-11-30 2005-11-30 ソニー株式会社 データ記録再生装置及びデータ記録再生方法、並びにデジタルカメラ
DE10252230A1 (de) * 2002-11-11 2004-05-27 Robert Bosch Gmbh Verfahren zur Übertragung von Daten
US7069494B2 (en) * 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
TWI309776B (en) * 2003-10-24 2009-05-11 Hon Hai Prec Ind Co Ltd Secure storage system and method for solid memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7392456B2 (en) * 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7395187B2 (en) 2006-02-06 2008-07-01 International Business Machines Corporation System and method for recording behavior history for abnormality detection
US7904789B1 (en) * 2006-03-31 2011-03-08 Guillermo Rozas Techniques for detecting and correcting errors in a memory device
FR2917863A1 (fr) * 2007-06-20 2008-12-26 St Microelectronics Crolles 2 Bus avec circuit de correction d'erreur
US8127185B2 (en) * 2009-01-23 2012-02-28 Micron Technology, Inc. Memory devices and methods for managing error regions
US9275757B2 (en) 2013-02-01 2016-03-01 Scaleo Chip Apparatus and method for non-intrusive random memory failure emulation within an integrated circuit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132500A (ja) * 1983-01-19 1984-07-30 Nec Corp 2ビツト誤り訂正方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5381036A (en) * 1976-12-27 1978-07-18 Hitachi Ltd Error correction-detection system
US4458349A (en) * 1982-06-16 1984-07-03 International Business Machines Corporation Method for storing data words in fault tolerant memory to recover uncorrectable errors
US4604751A (en) * 1984-06-29 1986-08-05 International Business Machines Corporation Error logging memory system for avoiding miscorrection of triple errors
US4661955A (en) * 1985-01-18 1987-04-28 Ibm Corporation Extended error correction for package error correction codes
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US4964129A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. Memory controller with error logging
US5058115A (en) * 1989-03-10 1991-10-15 International Business Machines Corp. Fault tolerant computer memory systems and components employing dual level error correction and detection with lock-up feature

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132500A (ja) * 1983-01-19 1984-07-30 Nec Corp 2ビツト誤り訂正方式

Also Published As

Publication number Publication date
JPH081616B2 (ja) 1996-01-10
US5274646A (en) 1993-12-28

Similar Documents

Publication Publication Date Title
JPH04338849A (ja) 記憶エラー訂正方法及び過剰エラー状態を報告する方法
US5267242A (en) Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
EP0032957B1 (en) Information processing system for error processing, and error processing method
JPH0652506B2 (ja) チエツクポイント再試行機構
US6823476B2 (en) Mechanism to improve fault isolation and diagnosis in computers
JPS6053339B2 (ja) 論理装置のエラ−回復方式
US6950978B2 (en) Method and apparatus for parity error recovery
US4942575A (en) Error connection device for parity protected memory systems
US7139942B2 (en) Method and apparatus for memory redundancy and recovery from uncorrectable errors
JP3748117B2 (ja) 鏡像化メモリ用エラー検出システム
JP3068009B2 (ja) 冗長化メモリのエラー訂正機構
JP3180737B2 (ja) システムの冗長化方法
US20050138487A1 (en) Poisoned error signaling for proactive OS recovery
EP0113982B1 (en) A data processing system
JP2665113B2 (ja) 計算機システムと主メモリ制御装置
JP3450132B2 (ja) キャッシュ制御回路
JP2776815B2 (ja) 多重プロセッサシステムの障害回復方法
JPH07219796A (ja) 情報処理装置
JPH0365743A (ja) 主記憶装置の故障発見方法
JPH04365145A (ja) メモリ障害処理方法
JPH02204839A (ja) 情報処理装置
JPH03265950A (ja) 制御記憶1ビットエラー処理方式
JPS6156537B2 (ja)
JPH0135369B2 (ja)
JPS60110047A (ja) エラ−訂正方式