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

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

Info

Publication number
JPH081616B2
JPH081616B2 JP4049858A JP4985892A JPH081616B2 JP H081616 B2 JPH081616 B2 JP H081616B2 JP 4049858 A JP4049858 A JP 4049858A JP 4985892 A JP4985892 A JP 4985892A JP H081616 B2 JPH081616 B2 JP H081616B2
Authority
JP
Japan
Prior art keywords
error
data
ecc
memory
read
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.)
Expired - Lifetime
Application number
JP4049858A
Other languages
English (en)
Other versions
JPH04338849A (ja
Inventor
トーマス・マチュー・ブレイ
マチュー・アンソニー・クリゴウスキ
ブルース・ロイド・マクギルブレイ
トリン・フイ・グェン
ウィリアム・ウー・シェン
アーサー・ジェームズ・サットン
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

Description

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

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 記憶エラー訂正方法において、 プロセッサにより、データ処理システム内のメモリから
    データを読み取る要求を行ない、該データに応答してメ
    モリ制御器により、エラー訂正コード(ECC)ビット
    によって検出されたデータ内の過剰エラーを指示するス
    テップと、 前記メモリ制御器からの過剰エラーの指示の受信に応答
    して、前記プロセッサによりデータの再読み取りの要求
    を行ない、エラーを含むデータに対する前記再読み取り
    要求に応答して、データの第1の読み取り、第1の記
    憶、第2の読み取り及び第2の記憶を用いてコンプリメ
    ント/リコンプリメント(C/R)エラー訂正法を開始
    するステップと、 1つ以上のプロセッサから前記メモリ制御器への前記読
    み取り及び再読み取り要求をパイプラインにして読み取
    り要求に対するメモリアクセス及びメモリ内の異なるデ
    ータに対するC/Rエラー訂正法の動作に対するメモリ
    アクセスに優先順位を付けるステップと、 を含み、 前記C/Rエラー訂正法は、前記第1の読み取り及び前
    記第2の読み取りによって前記C/Rエラー訂正法で得
    られたデータ及びECCをバッファに記憶するステップ
    と、過剰エラーの訂正を試みるべくデータの少なくとも
    エラーを含む部分に対してダブル反転を行なうステップ
    と、前記C/Rエラー訂正法で前記第2の読み取りによ
    って得られたデータを要求元プロセッサに送るステップ
    と、データ及びECCがエラーを全く含んでいないか、
    1つもしくは複数の訂正済みのハードエラー、ソフトエ
    ラーもしくはその両者、1つもしくは複数の訂正済みの
    過剰ハードエラーもしくはソフトエラー、または1つも
    しくは複数の訂正不可エラーを含んでいるかを指示する
    ステップとを含み、 前記バッファはデータバッファ及び状態バッファを含
    み、 前記データバッファのエントリは要求元プロセッサによ
    り前記メモリ内の1データラインのアドレスの複数のデ
    ータ単位を受取り、前記状態バッファ内の対応するエン
    トリは前記データバッファ内の対応するエントリ内のデ
    ータ単位内に過剰エラーが検出されたか否かを示す状態
    ビットを受取る、 ことを特徴とする記憶エラー訂正方法。
  2. 【請求項2】 複数のデータ単位及び関連するECCよ
    りなりその1つまたは複数のデータ単位及び関連するE
    CCの組が前記C/R法の前記第1の読み取り及び第2
    の読み取りにおいて1つまたは複数のエラービットを有
    するごときデータラインを前記バッファに記憶しするス
    テップと、 過剰エラーを有さないデータ単位及びECCの組は前記
    C/R法のいずれの段階においても反転せず、過剰エラ
    ーを有するデータ単位及びECCの組を前記C/R法の
    前記第1の記憶及び前記第2の読み出しで反転するステ
    ップと、 を更に含む請求項1記載の記憶エラー訂正方法。
  3. 【請求項3】 データ単位及び関連するECCのいずれ
    かまたは両者に過剰エラーが存在することを前記状態ビ
    ットが示す場合、前記データ単位及びECCの全ビット
    を前記C/R法の前記第1の記憶の間に及び前記第2の
    読み取りの後に反転するステップと、 前記C/R法の第2の読み取りの後に、ダブル反転され
    たデータ単位及びECCを、データ単位及びECC内の
    過剰エラーに対して訂正がなされたか否かを示す状態情
    報と共に要求元プロセッサに送るステップと、 を更に含む請求項1記載の記憶エラー訂正方法。
  4. 【請求項4】 データ処理装置の記憶装置内にページフ
    レームを表すエントリを有するメモリマップに過剰エラ
    ー状態を報告する方法であって、前記メモリマップのエ
    ントリがそれぞれのページフレームに対して検出された
    過剰エラー状態を報告するように構成された方法におい
    て、 プロセッサにより要求されたデータ単位を記憶制御器に
    よって記憶装置から読み取り、該データ単位内のエラー
    を、該データ単位に付加されているECCビットによっ
    て決まる最大訂正可能エラー数まで検出及び訂正して各
    データ単位に所定の最大ECCエラー訂正能力を与える
    ステップと、 ECCのエラー訂正能力を越える数のエラーを含んでい
    る過剰エラーの検出時に、前記記憶制御器内にコンプリ
    メント/リコンプリメント(C/R)エラー訂正動作を
    呼び出すステップと、 データ単位のハードエラーを訂正するためにC/Rエラ
    ー訂正を試みるべくデータ単位を再読み取りし、ECC
    ビットを用いてデータ単位のソフトエラーを訂正するス
    テップと、 要求元プロセッサによって前記メモリマップにアクセス
    し、前記メモリマップ内により現在アクセス中のページ
    フレームに対するエントリを検出し、該エントリ内の報
    告フィールドが、過剰エラー状態が前記現在のページフ
    レームに対して以前に報告されたことを示しているか否
    かを検出するステップと、 過剰エラー状態が以前に報告されなかったことを前記報
    告フィールドが示す場合、制御プログラムとの通信のた
    めに要求元プロセッサの動作を中断し、その後前記エン
    トリを過剰エラー状態報告済状態にセットし、一方、過
    剰エラー状態が既にページフレームに対して以前に報告
    されたことをアクセスしたエントリが示す場合、要求元
    プロセッサによる動作を中断しないステップと、 を含む過剰エラー状態を報告する方法。
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 JPH04338849A (ja) 1992-11-26
JPH081616B2 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT406652B (de) * 1998-10-27 2000-07-25 Vidra Christian Verfahren und vorrichtung zum herstellen eines rohrförmigen holzkörpers

Families Citing this family (39)

* 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
WO2000017875A1 (fr) * 1998-09-24 2000-03-30 International Business Machines Corporation Reprise d'erreurs et dispositif a cet effet
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
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
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ビツト誤り訂正方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT406652B (de) * 1998-10-27 2000-07-25 Vidra Christian Verfahren und vorrichtung zum herstellen eines rohrförmigen holzkörpers

Also Published As

Publication number Publication date
US5274646A (en) 1993-12-28
JPH04338849A (ja) 1992-11-26

Similar Documents

Publication Publication Date Title
JPH081616B2 (ja) 記憶エラー訂正方法及び過剰エラー状態を報告する方法
EP0032957B1 (en) Information processing system for error processing, and error processing method
JP4294626B2 (ja) マージバッファのシステムキルエラーのプロセスキルエラーへの変換技術
JPH0652506B2 (ja) チエツクポイント再試行機構
JPS6053339B2 (ja) 論理装置のエラ−回復方式
US6950978B2 (en) Method and apparatus for parity error recovery
US4942575A (en) Error connection device for parity protected memory systems
JP3068009B2 (ja) 冗長化メモリのエラー訂正機構
US7353433B2 (en) Poisoned error signaling for proactive OS recovery
RU2327236C2 (ru) Оперативное запоминающее устройство с высокой степенью отказоустойчивости
JP2513615B2 (ja) Ecc回路付記憶装置
JP2665113B2 (ja) 計算機システムと主メモリ制御装置
JP3450132B2 (ja) キャッシュ制御回路
JPH05225077A (ja) Eccを保持したメモリ制御回路のハードエラー検出方式
JP2010061258A (ja) デュプレックスプロセッサシステム及びプロセッサ二重化方法
CN117931493A (zh) 一种硬件错误的处理方法及计算设备
JPH07219796A (ja) 情報処理装置
JPH05134938A (ja) メモリ制御装置
JPH05265876A (ja) エラー報告処理方式
JPH02204839A (ja) 情報処理装置
JPH1021149A (ja) メモリ装置
JPH01133147A (ja) データ処理装置
JPS6156537B2 (ja)
JPS63282872A (ja) デ−タ処理装置
JPH04184550A (ja) 情報処理装置