JPH0713786A - エラー訂正方法及びエラー訂正装置 - Google Patents

エラー訂正方法及びエラー訂正装置

Info

Publication number
JPH0713786A
JPH0713786A JP5273381A JP27338193A JPH0713786A JP H0713786 A JPH0713786 A JP H0713786A JP 5273381 A JP5273381 A JP 5273381A JP 27338193 A JP27338193 A JP 27338193A JP H0713786 A JPH0713786 A JP H0713786A
Authority
JP
Japan
Prior art keywords
memory
bit
error correction
error
word
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
JP5273381A
Other languages
English (en)
Inventor
Gerard Barucchi
ジェラルド・バルッチ
Philippe Cuny
フィリップ・クニイ
Philippe Klein
フィリップ・クライン
Olivier Maurel
オリバー・モーレル
Jean-Luc Peter
ジェーン−ルック・ペーター
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 JPH0713786A publication Critical patent/JPH0713786A/ja
Pending 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/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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【目的】 制限された数のエラー訂正ビットを使用して
メモリのBビット・ブロック中のエラーを訂正するこ
と。 【構成】 各メモリ・ワードをN個のBビット・ブロッ
クから編成するようにしたメモリにおいて、簡約化され
たパリテイ検査行列から制限された数のエラー訂正ビッ
トを計算して求め、これを各メモリ・ワードのデータ・
ビットへ付加しておく。各メモリ・ワードを定期的に読
み取り、エラー状態にあると判別されたBビット・ブロ
ック中のエラーを訂正し、訂正済みのデータ・ビットを
対応するエラー訂正ビットとともにメモリへ再書き込み
する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、制限された数のエラー
訂正コード(ECC)ビットを使用することによって、
メモリ中のパケット・エラーの訂正を最適化するように
した効率的なエラー訂正方法及びエラー訂正装置に係
る。
【0002】
【従来の技術】エラーを検出し且つ訂正することは、半
導体メモリを実現する際に解決すべき重要な問題の一つ
である。
【0003】この問題を広範に検討した論文に、C.L.Ch
en et al,"Error Correcting Codefor Semi-conductor
Memory Applications: A State of the Art", IBM Jour
nalof Research and Development, Vol.28, No.2, Marc
h 1984 がある。この論文で検討されているのは、広範
に現用されている1ビット・エラー訂正/2ビット・エ
ラー検出コードや、ワード編成型メモリが複数のBビッ
ト・ブロックから構成されている場合に使用可能なブロ
ック式エラー訂正コードである。
【0004】各ブロックが4ビットから成る場合(B=
4)、同一ブロック中の1乃至4個のエラー・ビットを
訂正し且つ2ブロックがエラー状態にあることを検出可
能とするためには、8個の4ビット・ブロックを構成す
るように配置された32ビットのデータ・ワードに対
し、12ビットのエラー訂正コード(ECC)を付加し
なければならない。
【0005】メモリの信頼性を向上させるというECC
の主たる目標に対し、2種類のエラーが悪影響を与え
る。第1のものは永久ハード・エラーと呼ばれ、生起頻
度は低いが一度に複数ビットに悪影響を与えるという点
で、メモリの信頼性を相当低下させる。第2のものは一
時的ソフト・エラーと呼ばれ、生起頻度は比較的に高い
が、一度に1ビットにしか悪影響を与えないことが多
い。メモリの信頼性を低下させる主要な原因は、第1に
ハード・エラーであり、第2にハード・エラーと整列し
たソフト・エラーであり、第3にソフト・エラーであ
る。公知の殆ど全てのECCは、最初の2つのエラー原
因からメモリを保護することができる。このことは、こ
れらのECCが同一モジュール中の全てのエラーを訂正
し且つ異なる2モジュール中の複数エラーを検出可能で
あることを意味する。
【0006】1ビット・ブロックからそれぞれ編成され
ているメモリの環境において、前記論文中の単一ビット
・エラー訂正/2ビット・エラー訂正(SEC/DE
D)コードを適用する場合、32ビットのメモリ・ワー
ドについて7又は8ビットのECCを使用すると、高度
の信頼性を得ることができる。
【0007】
【発明が解決しようとする課題】32ビットのメモリ・
ワードが8個の4ビット・ブロックから編成されている
環境において、単一ブロック訂正/2ブロック・エラー
検出(SBC/DBD)コードを適用する場合、同程度
の信頼性を得ようとすれば、12ビットのエラー訂正コ
ード(ECC)が必要となる。一般に、メモリは複数の
モジュールから構成され、異なるワード・ブロックはそ
れぞれ異なるモジュールに置かれる。例えば、低廉なメ
モリの中には10個のモジュールから構成されるものが
あるが、信頼性がキーとなるような環境ではかかるメモ
リを使用することはできない。
【0008】本発明の目的は、ブロック編成型メモリ中
で制限された数のECCビットを使用することによっ
て、メモリの信頼性を向上させるようにしたエラー訂正
方法及びエラー訂正装置を提供することにある。
【0009】
【課題を解決するための手段】本発明に従った方法は、
ワード編成型メモリ中のエラーを訂正するために使用さ
れる。このため、各ワードをそれぞれ構成するN個のB
ビット・ブロックは、データ・ビットを記憶するN1個
のBビット・ブロックと、エラー訂正コード(ECC)
ビットを記憶するN2個のBビット・ブロックとを含
む。これらのECCビットを生成するには、以下の形式
のパリテイ検査行列を使用する。
【0010】
【数8】
【0011】但し、TはBxBのコンパニオン行列であ
り、IはBxBの単位行列であり、OはBxBの零行列
であり、前記のパリテイ検査行列は1ブロック・エラー
を訂正し且つ2ブロック・エラーを検出可能なECCビ
ットを生成することができる。本発明の方法は、以下の
ステップから成ることを特徴とする。
【0012】最初に、メモリのアドレスされた位置へ記
憶すべき各メモリ・ワードごとに、データ・ビットへ付
加すべきECCビットを以下の構成を有する簡約化され
た(depopulated)パリテイ検査行列から計
算する。
【0013】
【数9】
【0014】これはエラー状態にある1ブロックのみを
訂正する能力を与える。この場合、制限された数のEC
Cビットだけが必要となるにすぎない。
【0015】次に、記憶された各メモリ・ワードを順次
に読み取り、エラー状態にあると判別されたデータビッ
ト・ブロック中のエラー・ビットを訂正し、訂正済みの
データ・ビットへ付加すべきエラー訂正ビットを計算
し、訂正済みのデータ・ビット及び計算済みのエラー訂
正ビットを先に読み取られたメモリ・ワードに代えてメ
モリへ再書き込みする、という操作を行うのである。
【0016】本発明は、前記方法を実現するためのエラ
ー訂正装置にも関係する。
【0017】
【実施例】以下の説明の便宜上、本発明が実現されるメ
モリは複数の40ビット・メモリワードから編成され且
つ各メモリ・ワードは互いに異なるメモリ・モジュール
上の10個の4ビット・ブロックにそれぞれ記憶される
ものとする。
【0018】本発明に従った方法は、8個の4ビット・
モジュールから編成された32データ・ビットに対し、
通常のSBC/DBDコードが必要としていた12個の
エラー訂正コード(ECC)ビットではなく、僅かに8
個のECCビットを付加するだけで、1ブロック中の全
てのエラー・ビットを訂正することができる。このEC
Cは2個のモジュールの全てのエラー状態を検出するこ
とができるわけではないが、このようなエラー状態の略
半分を検出することができる。
【0019】このECCのみを使用したときに遭遇する
であろう高い障害率を補償するために、本発明の方法は
クリーニング・ステップを含み、そのステップ中に効率
的なスクラビング(scrubbing)ルーチンを循
環的に実行してソフト・エラーの累積を防止するように
している。このスクラビング・ルーチンは、複数のワー
ドを定期的に読み取り、或るモジュール中にエラーが存
在することを判別すれば、エラー状態にあるビットを訂
正する、というものである。この場合、メモリ・リフレ
ッシュ・サイクル時の行選択を有効に利用すると、実際
のメモリ・アクセスに関するオーバヘッドを最小とする
ことができる。
【0020】前述の制限されたエラー訂正コード(EC
C)は、SBC/DBDコードのパリテイ検査行列を、
後述するように簡約化することによって決定することが
できる。
【0021】Hを、32データ・ビットのメモリ・ワー
ドに対するSBC/DBDコードのパリテイ検査行列と
する:
【0022】
【数10】
【0023】Dを、32ビットのデータ・ワードとす
る:
【0024】
【数11】
【0025】CBを、このコードに関連する計算済みの
12検査ビットとする:
【0026】
【数12】
【0027】このSBC/DBDコードの特性(コード
の線形性)は、次式のように記述することができる:
【0028】
【数13】
【0029】読み取りワードは、そのデータ・ビット又
は検査ビットがメモリ障害によって損傷を受けるため
に、修正されることがある。Eを、40ビットのエラー
・ワードとする:
【0030】
【数14】
【0031】この場合、読み取りワードを、次のように
して書き込みワードから得ることができる:
【0032】
【数15】
【0033】前式において、”+”は排他ORを表す。
また、メモリ中でエラーが生じなければ、E=0であ
り、読み取りワードは書き込みワードと等しくなる:エ
ラー・シンドロームSを、次のように定義する:
【0034】
【数16】
【0035】式16から、シンドロームは12ビット幅
であり、これを以下のように定義する: 式16を展開すると、その結果は次式の通りである:
【0036】
【数17】
【0037】本発明の目的は、互いに異なる2ブロック
中のエラー検出について如何なる条件をも課すことな
く、1ブロック中の全てのエラーを訂正することにあ
る。従って、(1)エラー状態にあるブロックの特定、
及び(2)このブロック中のエラー分散、という2種類
の情報だけが必要である。
【0038】この意味する処は、本発明の課題を解決す
るには2個の式だけが必要であるにすぎない、というこ
とである。次の章における証明と適合させるために、S
0=s1であり、S1=s0であることに注意するのが
望ましい: s0=E0+T.E1+T2.E2+・・・+E8 s1=E0+ E1 +E2 +・・・+E7 かくて、簡約化された新しいパリテイ検査行列Hは、次
式のようになる:
【0039】
【数18】
【0040】もし、パリテイ検査行列が簡約化されるの
であれば、検査ビットのワード・サイズも、次のように
縮小することができる:
【0041】
【数19】
【0042】ここで、特定の行列Tがどのように選ばれ
るかを説明する。本発明の実施例では、図1を参照して
後述するように、各メモリ・ワードは複数の4ビット・
ブロックから編成されている。
【0043】体GF(24)における単一エラーの訂正
は、2元の体GF(2)における4ビット・ブロックの訂
正と等価であるから、特定の行列Tは体GF(24)の全
てのメンバ、すなわち
【0044】
【数20】
【0045】ここで、GF(2)における位数4の原始多
項式として、例えば次のものを選ぶものとする: ・ g(x)=x4+x+1 GF(24)のメンバは、g(x)を法として簡約化された
GF(2)からの係数を持つ、x(GF(2)〔x〕)におけ
る多項式の剰余類である。
【0046】GF(24)の複数の元は、次のように記述
することができる: ・ 2元の4タプル ・ 2元の4x4行列
【0047】
【数21】
【0048】4タプルを持つ表現は、次の通りである:
【0049】
【数22】
【0050】
【数23】
【0051】GF(16)上では、24−1=15種類の
4タプルがある。
【0052】4x4行列を持つGF(16)の表現 4x4行列を持つ GF(24)の全てのメンバを計算する
と、
【0053】
【数24】
【0054】但し、 ・ Tは、g(T)=0(deg(g(x))=4) となるよ
うに4x4の行列によって 表されたGF(24)の原
始元であり、 ・ m=32/4=8≦ 24−1=15 である。
【0055】ここで、GF(2)における位数4の次の原
始多項式を選ぶものとする: ・ g(x)=x4+x+1 GF(24) のメンバは、g(x)を法として簡約化された
GF(2)からの係数を持つ、x(GF(2)〔x〕)におけ
る多項式の剰余類である。GF(24)の複数の元は、2
元の4x4行列として記述することができる。ここで、
Tが、GF(24),g(T)=0という構造からの、xそ
れ自体の剰余類を表すものとする。そうすると、GF
(24) は、GF(2) からの係数を持つ、次数≦3のT
における全ての多項式から成る。GF(24)の各元は、
【0056】
【数25】
【0057】GF(16)上には、24−1=15種類の
4タプルが存在する。
【0058】行列Tの決定 行列Tは、次の特性を有する: 1. Tは、4x4の行列であり、 2. Tは、GF(24)の4タプルから成り、 3. g(T)=0である。
【0059】
【数26】
【0060】このケースはあり得ない。なぜなら、T=
I (単位行列)であり、しかも式g(T)=0は真ではな
いからである。
【0061】
【数27】
【0062】この場合、式 g(T)=0は真である。こ
れは、以下の行列Tを与える:
【0063】
【数28】
【0064】
【数29】
【0065】
【数30】
【0066】パリテイ検査行列Hを決定するには、
(I,T,T2,T3,T4,T5,・・・,T14)に属す
る、8行列のサブセットを選ぶことが必要である。
【0067】復号を簡単にするために、最小数の1を有
する行列を選ぶ。このようにすると、ECC復号回路中
の排他ORゲートの数が最小になるからである。最適の
選択は、(I,T,T2,T3,T5,T6,T13,T14
である。
【0068】従って、式20の当初のパリテイ検査行列
から、最終的なパリテイ検査行列Hを次式のように得る
ことができる。
【0069】
【数31】
【0070】かくて、本発明によれば、データ・ビット
に付加すべきECCビットは、この簡約化されたパリテ
イ検査行列を使用して生成する。スクラビング・ルーチ
ンを実現するには、メモリから各ワードを定期的に読み
取り、エラー状態にある1ブロックを含む各ワードを訂
正するとともに、訂正済みの各ワードを再書き込みすれ
ばよい。
【0071】このスクラビング・ルーチンは、ECCの
能力に従って、メモリ・ブロック中に生起しうるソフト
・エラーをクリーンににするためのものである。このス
クラビング・ルーチンは、読み取りー修正ー書き込みと
いうメモリ動作を通して行われる。ダイナミック式メモ
リでは不可欠のリフレッシュ要求の後は、スクラビング
要求が常にメモリ制御装置へ送られる。
【0072】図1は、本発明に従ったメモリ編成を示
す。メモリ・アクセスを制御するためのメモリ制御装置
10は、メモリ・ユーザからメモリ・アクセス制御信号
を受け取るとともに、メモリへ書き込むべきデータ・ビ
ットを受け取るか又はメモリから読み取られたデータ・
ビットを与える。制御信号には、線12上のR/W(読
み取り/書き込み制御)信号及びアドレス・バス14上
のアドレス信号が含まれる。データ・ビットは、データ
・バス16を介して授受される。
【0073】メモリ制御装置10は制御バス23を介し
てメモリ20へアクセス制御信号を供給するとともに、
アドレス・バス24を介して選択論理回路28へメモリ
・アドレスを供給する。選択論理回路28は、これに応
じて、アドレス済みのワードを読み取るか又は書き込む
ための選択信号を生成する。
【0074】メモリ20は、10個のメモリ・モジュー
ルM0乃至M9から成る。本発明の実施例では、各メモ
リ・モジュールは4ビット・ブロックの1024行及び
1024列を含んでいる。1個の40ビット・ワードを
選択してその読み取り又は書き込みを行うには、各メモ
リ・モジュールM0乃至M9毎に、1本の列線(COL
i)及び1本の行線(ROW j)を活動化すればよ
い。各メモリ・モジュールの選択済みブロックから読み
取られた4ビットがマルチプレクス回路30を通してデ
ータ・バス26へ供給されるのに対し、書き込むべきビ
ットはデータ・バス26からマルチプレクス回路30を
通して選択済みのブロックへ供給される。
【0075】図2は、メモリ制御装置10の一層詳細な
構成を示す。その構成要素であるスクラビング及びメモ
リ・アクセス制御回路40は、メモリ・ユーザからR/
W線12、アドレス・バス14及びデータ・バス16を
通してメモリ要求を受け取るとともに、スクラビング要
求を生成する。このスクラビング要求は、メモリ20か
ら選択されたワードを読み取り、必要であればこれを訂
正した後にメモリ20への再書き込みを行わしめる、と
いうものである。
【0076】メモリ・ユーザからの要求又はスクラビン
グ要求に応答して、アドレス・バス44上のワード・ア
ドレス及び線22上のR/W信号が、有限状態機械42
へ供給される。
【0077】メモリ20へ書き込むべき32データ・ビ
ットは、スクラビング及びメモリ・アクセス制御回路4
0からバス45を通してECCビット・エンコーダ46
へ供給される。ECCビット・エンコーダ46は32デ
ータ・ビットへ付加すべき8個のECCビットを計算
し、かくてメモリ20へ書き込むべき40ビット・ワー
ドがバス47を通して有限状態機械42へ供給されるこ
とになる。
【0078】ECCビット・エンコーダ46は、簡約化
されたパリテイ検査行列Hを使用して、データ・ビット
d0乃至d31へ付加すべき8個のECCビットを生成
する。ECCビットco乃至c7の各々は、簡約化され
たパリテイ検査行列Hの各行にある1によって定義され
た8ビット・フィールドのパリテイ・ビットである。例
えば、c0は、第1行の1によって定義されたdo、d
5、d10、d12、d15、d17、d18、d2
0、d22、d23、d26、d27、d31から成る
フィールドのパリテイ・ビットである。
【0079】メモリ20からの読み取りワードは、有限
状態機械42から40ビットのバス51を介して供給さ
れる。そのうちの32データ・ビットを受け取るECC
ビット・エンコーダ50は、これらのデータ・ビットに
応じてECC’ビットc’0乃至c’7を計算する。こ
のECCビット・エンコーダ50は、ECCビット・エ
ンコーダ46と同様の構成を有する。エラー・シンドロ
ーム生成回路52は、バス54を通してECC’ビット
c’0乃至c’7を受け取るとともに、メモリ20から
読み取られたECCビットc0乃至c7をも受け取り、
これに応じてバス56上にエラー・シンドロームを生成
する。エラー訂正回路58は、このエラー・シンドロー
ムを受け取り、読み取りデータ中のエラー・ビットを訂
正するとともに、訂正済みのデータ・ビットをバス60
を介してスクラビング及びメモリ・アクセス制御回路4
0へ供給する。
【0080】エラー・シンドロームは、ECCビット及
びECC’ビットを排他ORすることによって得られ
る。エラー状態にある各メモリ・ブロック及び当該ブロ
ック中のエラー・ビットの各々毎に、特有のエラー・シ
ンドロームが存在する。例えば、メモリ・モジュールM
0中にある特定ブロックのビット0及び2がエラー状態
にあれば、エラー・シンドロームは「1100110
0」となる。
【0081】このエラー・シンドローム及びバス51上
の読み取りデータ・ビットは、データ訂正回路58へ供
給される。この回路は、シンドロームとメモリ・モジュ
ールM0乃至M9の4ビット・ブロック中にあるエラー
・ビットとの間の対応関係を指示するテーブルから構成
されている。計算済みのエラー・シンドロームをこのテ
ーブル中の可能なエラー・シンドロームと比較すると、
或るメモリ・モジュール中でエラー状態にあるビットの
位置を特定することができる。従って、かかるエラー状
態にあるビットを反転することにより、バス60に訂正
済みのワードを供給することが可能となる。
【0082】図3のECCビット・エンコーダ46を参
照するに、メモリ20へ書き込むべきワードの32デー
タ・ビット(do乃至d31)は、バス45から32ビ
ットのレジスタ70へ供給される。検査ビットco乃至
c7は、パリテイ検査行列Hが決定する選択済みのビッ
トを入力として受け取る、8個のパリテイ生成器72−
0乃至72−7によって生成される。パリテイ生成器7
2−0乃至72−3は13個の入力を有し、パリテイ検
査行列Hの行0乃至3にある「1」によって決定される
データ・ビットを受け取る。これに対し、パリテイ生成
器72−4乃至72−7は8個の入力を有し、パリテイ
検査行列Hの行4乃至7にある「1」によって決定され
るデータ・ビットを受け取る。
【0083】読み取りパスにあるECCビット・エンコ
ーダ50を実現するためにも、これと同様の回路を使用
することができる。
【0084】前述のように、制限された数のECCビッ
トを使用すると、1ブロック中のエラー・ビットだけを
訂正することができるにすぎない。2ブロック中のエラ
ー・ビットは、これを検出することができない。
【0085】図4のスクラビング及びメモリ・アクセス
制御回路40は、メモリ20中のエラーをクリーンにす
るためのスクラビング・ルーチンを実現したものであ
る。この制御回路40に含まれるスクラビング要求制御
装置80は、線82を介してメモリ・アクセス・アービ
タ84へスクラビング要求信号を供給し、線86にR/
W信号を、そしてバス88にメモリ・ワード・アドレス
を供給する。本発明の実施例では、スクラビング要求信
号は、線106上のリフレッシュ・クロック信号の制御
下で活動化される。かくて、スクラビング・ルーチンを
実現した制御回路40は、メモリ20の性能を低下させ
るものではない。後述するように、ダイナミック型のメ
モリでは不可欠のリフレッシュ動作の制御下で、スクラ
ビング・ルーチンが実行されるからである。
【0086】メモリ要求バッファ40は、メモリ・ユー
ザからこの制御回路40へ供給される線12上のR/W
信号及びバス14上のメモリ・ワード・アドレスを受け
取り、これに応じて線92を介してアービタ84へユー
ザ要求を供給する。
【0087】このアービタ84は、線92上のユーザ要
求と線82上のスクラビング要求とを受け取る。もし、
どのスクラビング要求も活動的でなければ、アービタ8
4は、線94を介してゲート論理回路96及び98へゲ
ーテイング信号を供給して、線12上のR/W信号及び
バス14上のメモリ・ワード・アドレスを、R/W線2
2及びアドレス・バス44へそれぞれゲートさせる。線
94上のゲーテイング信号はゲート論理回路100及び
104にも供給され、かくてメモリ20へ書き込むべき
ワードをバス45へゲートさせるか、又はメモリ20か
ら読み取られた訂正済みのワードをバス16へゲートさ
せる。このように、スクラビング要求が活動的でない場
合には、ユーザ要求が実行されることになる。
【0088】一方、スクラビング要求が活動的となる場
合は、現在のユーザ要求は処理されるが、次のユーザ要
求は凍結されてしまう。すなわち、次のユーザ要求は、
アービタ84によって選択されずに、ユーザ要求バッフ
ァ90でスタックされるのである。この場合、アービタ
84は線94を介してゲート論理回路96、98、10
0及び104へゲーテイング信号を供給して、バス88
上のアドレス及びスクラビング要求制御装置80が生成
した線86上のR/W信号を、アドレス・バス44及び
線22へそれぞれゲートさせる。次いで、ECC読み取
りパスを通して読み取り動作が行われて、バス60から
の読み取りデータ(訂正可能なエラーが見い出された場
合、この読み取りデータは訂正済みである)は、ゲート
論理回路104によって他のゲート論理回路100の入
力側にあるバス108にゲートされる。次いで、この訂
正済みのワードをメモリ20へ再書き込みするために、
バス108上の読み取りワードはゲート論理回路100
によってバス45に供給され、これと同時に線22に書
き込み制御信号が供給される。
【0089】図5は、スクラビング・ルーチンによって
実現される読み取り−修正−書き込み動作のタイミング
を示す。
【0090】このスクラビング機械に含まれるアドレス
・カウンタは、全てのメモリ・ワードを順次にアドレス
することができるように、各スクラビング要求毎に増分
される。
【0091】図2の有限状態機械42は、図5に示す内
部クロック信号の制御下でメモリ・アクセスを行うため
に、5個の基本状態を使用する。これらの状態は、次の
通りである。
【0092】S1: アドレス有効; S2: データD0の読み取り; S3: データD0を最終的に訂正してこれをD1とす
るために使用される修正サイクル; S4: データD1の書き込み(最終的にECCによっ
て訂正される); S5: 他のアクセス前のプリチャージ。
【0093】図5中の略語の意味は、次の通りである: RAS: 行アドレス・ストローブ(制御バス23中の
1本の線); CAS: 列アドレス・ストローブ(制御バス23中の
1本の線); R/W: 書き込み(ロー)/読み取り(ハイ)制御信
号(制御バス23中の1本の線); OE: データ出力使用可能(アクテイブ・ロー)
(制御バス23中の1本の線); MUX ADD: アドレス・バス24上の行/列ア
ドレス; D.IN/OUT: 双方向性の内部データ入力/デー
タ出力用のメモリ・バス26; ////: Don’t care。
【0094】この新しいコードは、当初のSEC/DE
Dコードと同じ拡張の可能性を有する。すなわち、この
コードは、最大60ビットのワード幅まで有効に使用す
ることができる。また、一層多くのエラー訂正ビットを
使用し、それに応じたパリテイ検査行列を選択すれば、
これを更に拡張することができる。
【0095】
【発明の効果】以上説明したように、本発明によれば、
8個の4ビット・モジュールから編成された32データ
・ビットに対し、通常のSBC/SBDコードが必要と
していた12個のECCビットではなく、僅かに8個の
ECCビットを付加するだけで、1ブロック中の全ての
エラー・ビットを訂正することができる。
【図面の簡単な説明】
【図1】本発明を実現したメモリ編成及びメモリ制御装
置を示す図である。
【図2】図1のメモリ制御装置10の構成を示す図であ
る。
【図3】図2のECCビット・エンコーダ46の構成を
示す図である。
【図4】図2のスクラビング及びメモリ・アクセス制御
回路40の構成を示す図である。
【図5】スクラビング要求に応答して行われるメモリの
読み取り−修正−書き込み動作のタイミングを示す図で
ある。
【符号の説明】
10・・・・・・メモリ制御装置 20・・・・・・メモリ 28・・・・・・選択論理 30・・・・・・マルチプレクス回路 40・・・・・・スクラビング及びメモリ・アクセス制
御回路 42・・・・・・有限状態機械 46、50・・・ECCビット・エンコーダ 52・・・・・・シンドローム 58・・・・・・データ訂正回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィリップ・クニイ フランス国、06610 ラ・ゴード、シュ ミ・ド・カンス 319番地 (72)発明者 フィリップ・クライン フランス国、06800 カンス−シュル−メ ル、ルート・ド・フランス 51番地 (72)発明者 オリバー・モーレル フランス国、06110 ル・カンヌ、リュ・ フォービル 15番地 (72)発明者 ジェーン−ルック・ペーター フランス国、06140 バンス、シュミ・ド ゥ・ピュウラー 1890番地

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】メモリ中の各メモリ・ワードがN個のBビ
    ット・ブロックから編成され、前記N個のBビット・ブ
    ロックが、データ・ビットを記憶するためのN1個のB
    ビット・ブロックと、次式に示す形式のパリテイ検査行
    列を使用して生成されるエラー訂正ビットを記憶するた
    めのN2個のBビット・ブロックとを含み(但し、N、
    N1、N2及びBはいずれも正の整数であり、N=N1
    +N2である)、 【数1】 (式中、TはBxBのコンパニオン行列、IはBxBの
    単位行列、OはBxBの零行列である) 前記パリテイ検査行列が、エラー状態にある1ブロック
    を訂正し且つエラー状態にある2ブロックを検出する能
    力を持つエラー訂正ビットを生成するようにしたメモリ
    ・システムにおいて、 前記メモリのアドレスされた位置へ記憶すべき各メモリ
    ・ワードごとに、データ・ビットへ付加すべきエラー訂
    正ビットを次式の構成を有する簡約化されたパリテイ検
    査行列から計算し、 【数2】 記憶された各メモリ・ワードを順次に読み取り、エラー
    状態にあると判別されたデータビット・ブロック中のエ
    ラー・ビットを訂正し、訂正済みのデータ・ビットへ付
    加すべきエラー訂正ビットを計算し、訂正済みのデータ
    ・ビット及び計算済みのエラー訂正ビットを先に読み取
    られたメモリ・ワードに代えて前記メモリへ再書き込み
    することを特徴とする、エラー訂正方法。
  2. 【請求項2】Bが4に等しく、Nが16より小さい正の
    整数である、請求項1に記載のエラー訂正方法。
  3. 【請求項3】Nが10に等しく、パリテイ検査行列が次
    式の構成を有する、請求項2に記載のエラー訂正方法。 【数3】
  4. 【請求項4】コンパニオン行列Tが次式の構成を有す
    る、請求項3に記載のエラー訂正方法。 【数4】
  5. 【請求項5】メモリ中の各メモリ・ワードがN個のBビ
    ット・ブロックから編成され、前記N個のBビット・ブ
    ロックが、データ・ビットを記憶するためのN1個のB
    ビット・ブロックと、次式の構成を有する簡約化された
    パリテイ検査行列を使用して生成されるエラー訂正ビッ
    トを記憶するためのN2個のBビット・ブロックとを含
    むメモリ・システムにおいて(但し、N、N1、N2及
    びBはいずれも正の整数であり、N=N1+N2であ
    る)、 【数5】 (式中、TはBxBのコンパニオン行列、IはBxBの
    単位行列、OはBxBの零行列である) 前記メモリの選択されたワード位置をアドレスするため
    のメモリ・アドレス手段であって、複数のメモリ・アク
    セス要求を定期的に発生するための手段を含むものと、 選択されたワード位置へ書き込むべきデータ・ビットを
    受け取り、前記パリテイ検査行列を使用して当該データ
    ・ビットへ付加すべきエラー訂正ビットを計算するとと
    もに、当該データ・ビット及び計算済みのエラー訂正ビ
    ットを当該選択されたワード位置へ書き込むための書き
    込み手段と、 選択されたワード位置から読み取られたメモリ・ワード
    を読み取り、前記パリテイ検査行列を使用して当該メモ
    リ・ワードからエラー・シンドロームを生成するための
    読み取り手段と、 前記エラー・シンドロームに応答して、前記読み取られ
    たメモリ・ワード中のデータ・ビットを訂正するための
    訂正手段とを備え、 前記メモリ・メモリ・アクセス要求に応答して前記メモ
    リの各ワード位置を順次にアドレスし、アドレスされた
    当該各ワードを前記読み取り手段を通して読み取り、訂
    正された当該各ワードを前記書き込み手段を通して前記
    メモリへ再書き込みするようにしたことを特徴とする、
    エラー訂正装置。
  6. 【請求項6】Bが4に等しく、Nが10に等しく、N2
    が2に等しく、パリテイ検査行列が次式の構成を有す
    る、請求項5に記載のエラー訂正装置。 【数6】
  7. 【請求項7】コンパニオン行列Tが次式の構成を有す
    る、請求項6に記載のエラー訂正装置。 【数7】
JP5273381A 1992-11-30 1993-11-01 エラー訂正方法及びエラー訂正装置 Pending JPH0713786A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP92480187.1 1992-11-30
EP92480187A EP0600137A1 (en) 1992-11-30 1992-11-30 Method and apparatus for correcting errors in a memory

Publications (1)

Publication Number Publication Date
JPH0713786A true JPH0713786A (ja) 1995-01-17

Family

ID=8211808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5273381A Pending JPH0713786A (ja) 1992-11-30 1993-11-01 エラー訂正方法及びエラー訂正装置

Country Status (3)

Country Link
US (1) US5511078A (ja)
EP (1) EP0600137A1 (ja)
JP (1) JPH0713786A (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863905A (ja) * 1994-08-18 1996-03-08 Hitachi Ltd 記録再生装置、ディジタル信号処理装置およびエラー訂正方法
SG76501A1 (en) * 1996-02-28 2000-11-21 Sun Microsystems Inc Error detection and correction method and apparatus for computer memory
US5859858A (en) * 1996-10-25 1999-01-12 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using error locating codes
US6076182A (en) * 1996-12-16 2000-06-13 Micron Electronics, Inc. Memory fault correction system and method
US6219817B1 (en) * 1998-04-20 2001-04-17 Intel Corporation Error correction and detection for faults on time multiplexed data lines
US6560725B1 (en) * 1999-06-18 2003-05-06 Madrone Solutions, Inc. Method for apparatus for tracking errors in a memory system
US6845472B2 (en) * 2000-01-25 2005-01-18 Hewlett-Packard Development Company, L.P. Memory sub-system error cleansing
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
FR2808903A1 (fr) * 2000-05-12 2001-11-16 Ibm Systeme d'acces memoire
FR2808904A1 (fr) * 2000-05-12 2001-11-16 Ibm Systeme d'acces a des memoires redondantes
US20020199153A1 (en) * 2001-06-22 2002-12-26 Fall Thomas G. Sampling method for use with bursty communication channels
WO2006039556A2 (en) * 2004-10-02 2006-04-13 Wms Gaming Inc. Gaming device with error correcting memory
US7913147B2 (en) * 2006-05-08 2011-03-22 Intel Corporation Method and apparatus for scrubbing memory
US7975205B2 (en) * 2007-01-26 2011-07-05 Hewlett-Packard Development Company, L.P. Error correction algorithm selection based upon memory organization
US8161366B2 (en) * 2007-12-03 2012-04-17 International Business Machines Corporation Finite state machine error recovery
JP2013041634A (ja) * 2011-08-11 2013-02-28 Fujitsu Ltd 不揮発性半導体記憶装置
JP6213345B2 (ja) * 2014-03-31 2017-10-18 富士通株式会社 転送装置、決定方法、及びデータ処理装置
JP2023069039A (ja) * 2021-11-04 2023-05-18 富士通株式会社 メモリアクセスコントローラ及びメモリアクセスコントロール方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52142453A (en) * 1976-05-21 1977-11-28 Fujitsu Ltd Block error correction processing system
JPS5324741A (en) * 1976-08-20 1978-03-07 Toshiba Corp Memory controller
JPS5369562A (en) * 1976-12-03 1978-06-21 Fujitsu Ltd System for error correction and processing
JPS5677985A (en) * 1979-11-26 1981-06-26 Toshiba Corp Semiconductor memory device
JPS5698781A (en) * 1979-12-29 1981-08-08 Nec Corp Semiconductor memory device
JPS56137583A (en) * 1980-03-26 1981-10-27 Fujitsu Ltd Storage device
JPS56169300A (en) * 1980-04-25 1981-12-25 Data General Corp Data processor system with refresh and error detecting and correcting device
JPS5841497A (ja) * 1981-09-02 1983-03-10 Toshiba Corp メモリ制御方式
JPS61117641A (ja) * 1984-11-12 1986-06-05 Nec Corp 記憶装置
JPH0317761A (ja) * 1989-06-15 1991-01-25 Nec Corp 主記憶装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3766521A (en) * 1972-04-24 1973-10-16 Ibm Multiple b-adjacent group error correction and detection codes and self-checking translators therefor
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
EP0300139B1 (en) * 1987-07-20 1993-07-07 International Business Machines Corporation Error correcting code for b-bit-per-chip memory with reduced redundancy
US4964129A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. Memory controller with error logging
EP0424301A3 (en) * 1989-10-18 1992-09-16 International Business Machines Corporation Overlapped data scrubbing with data refreshing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52142453A (en) * 1976-05-21 1977-11-28 Fujitsu Ltd Block error correction processing system
JPS5324741A (en) * 1976-08-20 1978-03-07 Toshiba Corp Memory controller
JPS5369562A (en) * 1976-12-03 1978-06-21 Fujitsu Ltd System for error correction and processing
JPS5677985A (en) * 1979-11-26 1981-06-26 Toshiba Corp Semiconductor memory device
JPS5698781A (en) * 1979-12-29 1981-08-08 Nec Corp Semiconductor memory device
JPS56137583A (en) * 1980-03-26 1981-10-27 Fujitsu Ltd Storage device
JPS56169300A (en) * 1980-04-25 1981-12-25 Data General Corp Data processor system with refresh and error detecting and correcting device
JPS5841497A (ja) * 1981-09-02 1983-03-10 Toshiba Corp メモリ制御方式
JPS61117641A (ja) * 1984-11-12 1986-06-05 Nec Corp 記憶装置
JPH0317761A (ja) * 1989-06-15 1991-01-25 Nec Corp 主記憶装置

Also Published As

Publication number Publication date
US5511078A (en) 1996-04-23
EP0600137A1 (en) 1994-06-08

Similar Documents

Publication Publication Date Title
JPH0713786A (ja) エラー訂正方法及びエラー訂正装置
US6065146A (en) Error correcting memory
EP0138964B1 (en) Apparatus for controlling access to a memory
US6009548A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
EP0535086B1 (en) Multiple error correction in a computer memory
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6879504B1 (en) Content addressable memory (CAM) devices having error detection and correction control circuits therein and methods of operating same
US5701313A (en) Method and apparatus for removing soft errors from a memory
US20040088636A1 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US4651321A (en) Apparatus for reducing storage necessary for error correction and detection in data processing machines
JPH11102326A (ja) 記憶装置
US6279135B1 (en) On-the-fly row-syndrome generation for DVD controller ECC
JPH0260013B2 (ja)
JPH0782446B2 (ja) 多重エラー訂正方法
US5379304A (en) Method and structure for providing error correction code and parity for each byte on SIMM's
US5666371A (en) Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
JPS6237423B2 (ja)
US4251863A (en) Apparatus for correction of memory errors
US7065697B2 (en) Systems and methods of partitioning data to facilitate error correction
US20070050663A1 (en) Error correction apparatus for performing consecutive reading of multiple code words
US6802040B1 (en) Error correction device
JPH0594377A (ja) パリテイ検出回路
US6631489B2 (en) Cache memory and system with partial error detection and correction of MESI protocol
KR20040074906A (ko) 버스트 동작에 의해 데이터 및 패리티 데이터를입출력하는 반도체 기억 장치
EP0424301A2 (en) Overlapped data scrubbing with data refreshing