JPH1031628A - コンピュータ・メモリ用の誤り検出および訂正回路 - Google Patents
コンピュータ・メモリ用の誤り検出および訂正回路Info
- Publication number
- JPH1031628A JPH1031628A JP9062184A JP6218497A JPH1031628A JP H1031628 A JPH1031628 A JP H1031628A JP 9062184 A JP9062184 A JP 9062184A JP 6218497 A JP6218497 A JP 6218497A JP H1031628 A JPH1031628 A JP H1031628A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- vectors
- data
- matrix
- parity
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
(57)【要約】
【課題】 S8ED(単一8ビット誤り検出)システ
ム、特にS8EDシステムを実施するのに必要な回路の
点で特に有効でありかつ比較的低コストのS8EDシス
テムを提供する。 【解決手段】 サブジェクト・データの誤りを検出する
のに使用されるサブジェクト・データとパリティ・デー
タとの関係が、新規の検査行列によって定義される。新
規の検査行列は、それぞれ8個のベクトルを含む多数の
成分行列を含む。
ム、特にS8EDシステムを実施するのに必要な回路の
点で特に有効でありかつ比較的低コストのS8EDシス
テムを提供する。 【解決手段】 サブジェクト・データの誤りを検出する
のに使用されるサブジェクト・データとパリティ・デー
タとの関係が、新規の検査行列によって定義される。新
規の検査行列は、それぞれ8個のベクトルを含む多数の
成分行列を含む。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータ・メ
モリ・システムに関し、特に、コンピュータ・メモリか
ら検索されたデータの誤りを検出し、訂正するのに使用
される誤り検出および訂正回路に関する。
モリ・システムに関し、特に、コンピュータ・メモリか
ら検索されたデータの誤りを検出し、訂正するのに使用
される誤り検出および訂正回路に関する。
【0002】
【従来の技術】コンピュータ・メモリから検索されたデ
ータの誤り検出および訂正は、現在入手できる多数のコ
ンピュータ・メモリ・システム内で使用されている。例
えば、単一ビット誤り訂正(「SEC」)および二重ビ
ット誤り検出(「DED」)が周知であり、広く一般に
使用されており、W.W.Peterson and
E.J.Weldon,Jr.,Error−Corr
ecting Codes(MIT Press 19
72)に記載されている。初期のコンピュータ・メモリ
システムでは幅がそれぞれ単一ビットである外部データ
・パスを有するメモリ・デバイスを使用していたので、
SECシステムおよびDEDシステムで十分であると一
般に考えられていた。メモリ・デバイスの外部データ・
パス幅は、メモリ・デバイス内に記憶されるかまたはメ
モリ・デバイスから検索され、かつメモリ・デバイスの
単一のアドレスに対応するビットの数に関連する。幅1
ビットよりも広いデータ・パス、例えば8ビット・デー
タ・パスは、それぞれデータ・パスの単一ビットを表す
別個のメモリ・デバイスを並列に使用することによって
達成されていた。したがって、メモリ・システム内に組
織設計欠陥が無い場合、2個のメモリ・デバイスがまっ
たく同じメモリ・セル位置において故障する可能性は非
常に低いので、データのバイトの多数のビットが誤る可
能性はかなり低い。
ータの誤り検出および訂正は、現在入手できる多数のコ
ンピュータ・メモリ・システム内で使用されている。例
えば、単一ビット誤り訂正(「SEC」)および二重ビ
ット誤り検出(「DED」)が周知であり、広く一般に
使用されており、W.W.Peterson and
E.J.Weldon,Jr.,Error−Corr
ecting Codes(MIT Press 19
72)に記載されている。初期のコンピュータ・メモリ
システムでは幅がそれぞれ単一ビットである外部データ
・パスを有するメモリ・デバイスを使用していたので、
SECシステムおよびDEDシステムで十分であると一
般に考えられていた。メモリ・デバイスの外部データ・
パス幅は、メモリ・デバイス内に記憶されるかまたはメ
モリ・デバイスから検索され、かつメモリ・デバイスの
単一のアドレスに対応するビットの数に関連する。幅1
ビットよりも広いデータ・パス、例えば8ビット・デー
タ・パスは、それぞれデータ・パスの単一ビットを表す
別個のメモリ・デバイスを並列に使用することによって
達成されていた。したがって、メモリ・システム内に組
織設計欠陥が無い場合、2個のメモリ・デバイスがまっ
たく同じメモリ・セル位置において故障する可能性は非
常に低いので、データのバイトの多数のビットが誤る可
能性はかなり低い。
【0003】
【発明が解決しようとする課題】現在入手できるコンピ
ュータ・メモリ・システムは、より幅の広いデータ・パ
ス、例えば幅4ビットまたは8ビットのデータ・パスを
有するメモリ・デバイスを使用する。したがって、その
ようなコンピュータ・メモリ・システム内で使用される
単一のメモリ・デバイスの欠陥は、それぞれ4ビットま
たは8ビットのデータ・パス幅を有するメモリ・デバイ
スを使用するコンピュータ・メモリ・システムから検索
されたデータのニブル中またはバイト中に多数の誤りビ
ットをもたらす。
ュータ・メモリ・システムは、より幅の広いデータ・パ
ス、例えば幅4ビットまたは8ビットのデータ・パスを
有するメモリ・デバイスを使用する。したがって、その
ようなコンピュータ・メモリ・システム内で使用される
単一のメモリ・デバイスの欠陥は、それぞれ4ビットま
たは8ビットのデータ・パス幅を有するメモリ・デバイ
スを使用するコンピュータ・メモリ・システムから検索
されたデータのニブル中またはバイト中に多数の誤りビ
ットをもたらす。
【0004】SECシステムおよびDEDシステムはま
だ使用されているが、そのようなシステムは一般に、特
定のニブルまたはバイト中の多数の誤りビットがSEC
システムおよびDEDシステムによって誤りビットを有
していないと認められるので不十分であると認められて
いる。以下で簡単な例について考える。ニブルは、ニブ
ルおよびパリティ・ビットが奇数の重みを有するよう
に、すなわちその値が1である奇数個のビットを有する
ようにセットされたパリティ・ビットと関連している。
これは一般に、奇数パリティと呼ばれる。ニブルが2個
の誤りビットを含んでいる場合、パリティ・ビットを含
むニブルの重みは奇数のままであり、誤りは検出されな
い。
だ使用されているが、そのようなシステムは一般に、特
定のニブルまたはバイト中の多数の誤りビットがSEC
システムおよびDEDシステムによって誤りビットを有
していないと認められるので不十分であると認められて
いる。以下で簡単な例について考える。ニブルは、ニブ
ルおよびパリティ・ビットが奇数の重みを有するよう
に、すなわちその値が1である奇数個のビットを有する
ようにセットされたパリティ・ビットと関連している。
これは一般に、奇数パリティと呼ばれる。ニブルが2個
の誤りビットを含んでいる場合、パリティ・ビットを含
むニブルの重みは奇数のままであり、誤りは検出されな
い。
【0005】データのニブル中の単一4ビット誤りを検
出するシステムは、一般にS4EDシステムと呼ばれ、
周知であり、4ビット幅の外部データ・パス幅を有する
メモリ・デバイスを使用するコンピュータ・メモリ・シ
ステム内でデータのニブル中の単一ビット誤り、二重ビ
ット誤り、三重ビット誤りおよび四重ビット誤りを検出
するのに使用される。例えば、そのような1つのS4E
Dシステムが、Shigeo Kaneda,”A C
lass of Odd−Weight−Column
SEC−DED−SbED Codes for M
emory System Application
s”,IEEE Transactions on C
omputers Vol.C−33,No.8(Au
gust1984)に記載されている。しかしながら、
S4EDシステムでは、その外部データ・パスが8ビッ
ト幅であるメモリ・デバイスから検索されたデータの異
なるニブル中に多数の誤りビットを与える誤りが検出さ
れないことがある。例えば、その外部データ・パスが8
ビット幅であるメモリ・デバイスは、2個の隣接するデ
ータのニブル中に誤りビットを含む前に記憶されたデー
タを再呼出しすることができ、そのような誤りは、単一
のS4EDシステムによって検出されないことがある。
2つのS4EDシステムは、隣接するニブルの誤りビッ
トを含む誤りを検出、すなわち上述の誤りのタイプを検
出するために結合することができる。しかしながら、そ
のような誤りを検出するために2つのS4EDシステム
を結合し、適合させると、その適合させたS4EDシス
テムを実施するメモリ・システムにかなりの複雑さおよ
び対応するコストが加わる。
出するシステムは、一般にS4EDシステムと呼ばれ、
周知であり、4ビット幅の外部データ・パス幅を有する
メモリ・デバイスを使用するコンピュータ・メモリ・シ
ステム内でデータのニブル中の単一ビット誤り、二重ビ
ット誤り、三重ビット誤りおよび四重ビット誤りを検出
するのに使用される。例えば、そのような1つのS4E
Dシステムが、Shigeo Kaneda,”A C
lass of Odd−Weight−Column
SEC−DED−SbED Codes for M
emory System Application
s”,IEEE Transactions on C
omputers Vol.C−33,No.8(Au
gust1984)に記載されている。しかしながら、
S4EDシステムでは、その外部データ・パスが8ビッ
ト幅であるメモリ・デバイスから検索されたデータの異
なるニブル中に多数の誤りビットを与える誤りが検出さ
れないことがある。例えば、その外部データ・パスが8
ビット幅であるメモリ・デバイスは、2個の隣接するデ
ータのニブル中に誤りビットを含む前に記憶されたデー
タを再呼出しすることができ、そのような誤りは、単一
のS4EDシステムによって検出されないことがある。
2つのS4EDシステムは、隣接するニブルの誤りビッ
トを含む誤りを検出、すなわち上述の誤りのタイプを検
出するために結合することができる。しかしながら、そ
のような誤りを検出するために2つのS4EDシステム
を結合し、適合させると、その適合させたS4EDシス
テムを実施するメモリ・システムにかなりの複雑さおよ
び対応するコストが加わる。
【0006】したがって未解決の要件として残っている
のは、S8ED(単一8ビット誤り検出)システム、特
にS8EDシステムを実施するのに必要な回路の点で特
に有効でありかつ比較的低コストのS8EDシステムで
ある。
のは、S8ED(単一8ビット誤り検出)システム、特
にS8EDシステムを実施するのに必要な回路の点で特
に有効でありかつ比較的低コストのS8EDシステムで
ある。
【0007】
【課題を解決するための手段】本発明によれば、S8E
Dシステムは、メモリ・システム内に記憶されたデータ
およびメモリ・システムから検索されたデータ、すなわ
ち「サブジェクト・データ」の1つまたは複数のバイト
中の1つのバイト中に8個以下のビットを含む単一誤り
を検出するようにメモリ・システム内で実施される。サ
ブジェクト・データの誤りを検出するのに使用されるサ
ブジェクト・データとパリティ・データとの関係は、新
規の検査行列によって定義される。サブジェクト・デー
タから検索され、サブジェクト・データがメモリ・シス
テム内に記憶されたときにメモリ・システム内に記憶さ
れる初期パリティ・データは、、次いでパリティ・デー
タを検査するために検索され、比較され、次いでサブジ
ェクト・データがメモリ・システムから検索された後で
サブジェクト・データから導出される。
Dシステムは、メモリ・システム内に記憶されたデータ
およびメモリ・システムから検索されたデータ、すなわ
ち「サブジェクト・データ」の1つまたは複数のバイト
中の1つのバイト中に8個以下のビットを含む単一誤り
を検出するようにメモリ・システム内で実施される。サ
ブジェクト・データの誤りを検出するのに使用されるサ
ブジェクト・データとパリティ・データとの関係は、新
規の検査行列によって定義される。サブジェクト・デー
タから検索され、サブジェクト・データがメモリ・シス
テム内に記憶されたときにメモリ・システム内に記憶さ
れる初期パリティ・データは、、次いでパリティ・デー
タを検査するために検索され、比較され、次いでサブジ
ェクト・データがメモリ・システムから検索された後で
サブジェクト・データから導出される。
【0008】検査行列は、サブジェクト・データのビッ
トの数とパリティ・データのビットの数との和に等しい
多数のベクトルを含む。初期パリティ・データと検査パ
リティ・データとの比較が検査データを生成する。検査
データの各ビットは、ベクトルの各ビットに対応し、ベ
クトルの各ビットによって表される。所定のベクトル、
例えばその論理値が0である要素(element)の
みを有するベクトルが検査データを正確に表している場
合、サブジェクト・データは誤りを含まない。検査行列
の各ベクトルは、検査行列のベクトル間で一意であり、
サブジェクト・データのバイト中かまたは初期パリティ
・データ中の単の一誤りビットから得られた検査データ
を正確に表す。したがって、単一ビットを含む誤りが容
易に検出され、訂正される。サブジェクト・データのバ
イト中に2個以上のビットを含む誤りは、所定のベクト
ルでもなく、検査行列のどのベクトルにも等しくないベ
クトルによって表される検査データをもたらす。したが
って、サブジェクト・データのバイト中に8個以下のビ
ットを含むどんな誤りも検出される。
トの数とパリティ・データのビットの数との和に等しい
多数のベクトルを含む。初期パリティ・データと検査パ
リティ・データとの比較が検査データを生成する。検査
データの各ビットは、ベクトルの各ビットに対応し、ベ
クトルの各ビットによって表される。所定のベクトル、
例えばその論理値が0である要素(element)の
みを有するベクトルが検査データを正確に表している場
合、サブジェクト・データは誤りを含まない。検査行列
の各ベクトルは、検査行列のベクトル間で一意であり、
サブジェクト・データのバイト中かまたは初期パリティ
・データ中の単の一誤りビットから得られた検査データ
を正確に表す。したがって、単一ビットを含む誤りが容
易に検出され、訂正される。サブジェクト・データのバ
イト中に2個以上のビットを含む誤りは、所定のベクト
ルでもなく、検査行列のどのベクトルにも等しくないベ
クトルによって表される検査データをもたらす。したが
って、サブジェクト・データのバイト中に8個以下のビ
ットを含むどんな誤りも検出される。
【0009】新規の検査行列は、それぞれ1つまたは複
数のベクトルを含む多数の成分(constituen
t)行列を含む。成分行列の各ベクトルは、(i)サブ
ジェクト・データの誤りを検出するのに使用されるパリ
ティ・ビットの数に等しい多数の要素を有し、(ii)ビ
ルディング・ブロック・ベクトルと、2個のベース生成
ベクトルのうちの一方のベース生成ベクトルの1つまた
は複数のインスタンスと、さらに2個のベース生成ベク
トルのうちの他方のベース生成ベクトルの1つまたは複
数のインスタンスとの連鎖であり、(iii)同じ成分行列
の他のすべてのベクトルと異なる。
数のベクトルを含む多数の成分(constituen
t)行列を含む。成分行列の各ベクトルは、(i)サブ
ジェクト・データの誤りを検出するのに使用されるパリ
ティ・ビットの数に等しい多数の要素を有し、(ii)ビ
ルディング・ブロック・ベクトルと、2個のベース生成
ベクトルのうちの一方のベース生成ベクトルの1つまた
は複数のインスタンスと、さらに2個のベース生成ベク
トルのうちの他方のベース生成ベクトルの1つまたは複
数のインスタンスとの連鎖であり、(iii)同じ成分行列
の他のすべてのベクトルと異なる。
【0010】特定の成分行列のビルディング・ブロック
・ベクトルは、シグネチャ・ベクトルおよび成分行列に
対応する2個のベース生成ベクトルから導出される。例
えば、あるビルディング・ブロック・ベクトルは、シグ
ネチャ・ベクトルと2個のベース生成ベクトルとのモジ
ュロ2の加法である。
・ベクトルは、シグネチャ・ベクトルおよび成分行列に
対応する2個のベース生成ベクトルから導出される。例
えば、あるビルディング・ブロック・ベクトルは、シグ
ネチャ・ベクトルと2個のベース生成ベクトルとのモジ
ュロ2の加法である。
【0011】シグネチャ・ベクトルは、検査行列のすべ
ての成分行列に対して固有の値を有するベクトルであ
る。例えば、あるシグネチャ・ベクトルのすべての要素
は論理値1を有する。シグネチャ・ベクトルの要素の数
は、サブジェクト・データ誤りを検出するのに使用され
るパリティ・ビットの数の4分の1である。
ての成分行列に対して固有の値を有するベクトルであ
る。例えば、あるシグネチャ・ベクトルのすべての要素
は論理値1を有する。シグネチャ・ベクトルの要素の数
は、サブジェクト・データ誤りを検出するのに使用され
るパリティ・ビットの数の4分の1である。
【0012】ベース生成ベクトルは、シグネチャ・ベク
トルと同じ数の要素を有するベクトルであり、シグネチ
ャ・ベクトルが奇数の重みを有する場合は偶数の重みを
有し、シグネチャ・ベクトルが偶数の重みを有する場合
は奇数の重みを有する。各ベース生成ベクトルは、単一
の検査行列を構成するのに使用される他のすべてのベー
ス生成ベクトルと異なる。ベース生成ベクトルの各一意
の対は、上述のそれぞれの成分行列を構成するのに使用
される。
トルと同じ数の要素を有するベクトルであり、シグネチ
ャ・ベクトルが奇数の重みを有する場合は偶数の重みを
有し、シグネチャ・ベクトルが偶数の重みを有する場合
は奇数の重みを有する。各ベース生成ベクトルは、単一
の検査行列を構成するのに使用される他のすべてのベー
ス生成ベクトルと異なる。ベース生成ベクトルの各一意
の対は、上述のそれぞれの成分行列を構成するのに使用
される。
【0013】検査行列は、サブジェクト・データの各バ
イトに対応する成分行列のそれぞれの一意の1つ、およ
びサブジェクト・データの誤りを検出するのに使用され
るパリティ・データのビットの数に等しい数の行および
列を有する単位行列を含む。検査行列の各ベクトルは、
サブジェクト・データかまたは初期パリティ・データの
単一誤りビットからもたらされる検査データを表し、し
たがってサブジェクト・データとパリティ・データとの
関係を定義する。これらの関係は、サブジェクト・デー
タからパリティ・データを導びいてサブジェクト・デー
タおよび初期パリティ・データの誤りを検出する誤り訂
正符号生成器内で実施される。
イトに対応する成分行列のそれぞれの一意の1つ、およ
びサブジェクト・データの誤りを検出するのに使用され
るパリティ・データのビットの数に等しい数の行および
列を有する単位行列を含む。検査行列の各ベクトルは、
サブジェクト・データかまたは初期パリティ・データの
単一誤りビットからもたらされる検査データを表し、し
たがってサブジェクト・データとパリティ・データとの
関係を定義する。これらの関係は、サブジェクト・デー
タからパリティ・データを導びいてサブジェクト・デー
タおよび初期パリティ・データの誤りを検出する誤り訂
正符号生成器内で実施される。
【0014】サブジェクト・データをメモリ・システム
内に記憶する前に、誤り訂正符号生成器は、サブジェク
ト・データから初期パリティ・データを導出し、サブジ
ェクト・データと関連する初期パリティ・データを記憶
する。次いでサブジェクト・データがメモリ・システム
から導出されると、第2の誤り訂正符号生成器は、検索
されたサブジェクト・データから検査パリティ・データ
を導出し、検査パリティ・データを初期パリティ・デー
タと比較して、検査データを生成する。検査データが所
定のベクトルによって正確に表されている場合、サブジ
ェクト・データおよび初期パリティ・データは誤りを含
まない。検査データが検査行列のベクトルのいずれか1
つによって正確に表されている場合、サブジェクト・デ
ータかまたは初期パリティ・データの単一ビットを含む
訂正可能な誤りが検出される。誤りビットは、検査デー
タを正確に表すベクトルの検査行列内の特定の位置によ
って識別される。検査データが所定のベクトルかまたは
検査行列のベクトルのいずれかによって正確に表されて
いない場合、サブジェクト・データまたは/および初期
パリティ・データのバイトの2個以上のビットを含む誤
りが検出される。
内に記憶する前に、誤り訂正符号生成器は、サブジェク
ト・データから初期パリティ・データを導出し、サブジ
ェクト・データと関連する初期パリティ・データを記憶
する。次いでサブジェクト・データがメモリ・システム
から導出されると、第2の誤り訂正符号生成器は、検索
されたサブジェクト・データから検査パリティ・データ
を導出し、検査パリティ・データを初期パリティ・デー
タと比較して、検査データを生成する。検査データが所
定のベクトルによって正確に表されている場合、サブジ
ェクト・データおよび初期パリティ・データは誤りを含
まない。検査データが検査行列のベクトルのいずれか1
つによって正確に表されている場合、サブジェクト・デ
ータかまたは初期パリティ・データの単一ビットを含む
訂正可能な誤りが検出される。誤りビットは、検査デー
タを正確に表すベクトルの検査行列内の特定の位置によ
って識別される。検査データが所定のベクトルかまたは
検査行列のベクトルのいずれかによって正確に表されて
いない場合、サブジェクト・データまたは/および初期
パリティ・データのバイトの2個以上のビットを含む誤
りが検出される。
【0015】したがって、サブジェクト・データまたは
初期パリティ・データのバイトの1つまたは複数のビッ
トを含む誤りは、本発明に従って構成されたS8EDシ
ステムによって検出される。S8EDシステムは、上述
の検査行列が特に低い重みを有するので、実質上最小の
回路を用いて実施できる。したがって、本発明に従って
構成されたS8EDシステムは、コストを大幅に削減し
て実施できる。
初期パリティ・データのバイトの1つまたは複数のビッ
トを含む誤りは、本発明に従って構成されたS8EDシ
ステムによって検出される。S8EDシステムは、上述
の検査行列が特に低い重みを有するので、実質上最小の
回路を用いて実施できる。したがって、本発明に従って
構成されたS8EDシステムは、コストを大幅に削減し
て実施できる。
【0016】
【発明の実施の形態】本発明によれば、S8EDシステ
ムは、メモリ・システム100(図1)内に記憶された
データ、およびメモリ・システム100から検索された
データのバイト中の1つまたは複数のビットを含む単一
誤りを検出するためにメモリ・システム100内で実施
される。データは、誤り訂正符号(ECC)生成器10
4に結合されたデータ入力線102を介してメモリ・シ
ステム100内に記憶される。一実施形態では、データ
入力線102の数、したがってメモリ・システム100
のデータ・パス幅は128である。ECC生成器104
は、本明細書では「サブジェクト・データ」とも呼ぶデ
ータ入力線102を介して受け取ったデータから初期パ
リティ・データを導出する。初期パリティ・データの導
出は、サブジェクト・データのバイト中の1つまたは複
数のビットを含む単一誤りを後で検出できるようにする
ものであり、以下で詳細に説明する。データの誤りと
は、メモリ・システム100内の特定のアドレスにおい
て記憶されたデータと、後でその特定のアドレスにおい
てメモリ・システム100から検索されたデータとの間
の差のことを指す。
ムは、メモリ・システム100(図1)内に記憶された
データ、およびメモリ・システム100から検索された
データのバイト中の1つまたは複数のビットを含む単一
誤りを検出するためにメモリ・システム100内で実施
される。データは、誤り訂正符号(ECC)生成器10
4に結合されたデータ入力線102を介してメモリ・シ
ステム100内に記憶される。一実施形態では、データ
入力線102の数、したがってメモリ・システム100
のデータ・パス幅は128である。ECC生成器104
は、本明細書では「サブジェクト・データ」とも呼ぶデ
ータ入力線102を介して受け取ったデータから初期パ
リティ・データを導出する。初期パリティ・データの導
出は、サブジェクト・データのバイト中の1つまたは複
数のビットを含む単一誤りを後で検出できるようにする
ものであり、以下で詳細に説明する。データの誤りと
は、メモリ・システム100内の特定のアドレスにおい
て記憶されたデータと、後でその特定のアドレスにおい
てメモリ・システム100から検索されたデータとの間
の差のことを指す。
【0017】ECC生成器104は、どちらもECC生
成器104とメモリ・ストレージ110との間に接続さ
れたバス106および108を介して、それぞれサブジ
ェクト・データおよび初期パリティ・データをメモリ・
ストレージ110に供給する。メモリ・ストレージ11
0は、アドレス線130を介して受け取ったアドレス・
データによって指定される特定のアドレスにおいてサブ
ジェクト・データおよび初期パリティ・データを記憶す
る。例えば、メモリ・ストレージ110は、外部データ
・パスが8ビット幅であるメモリ・デバイス(図示せ
ず)を含み、サブジェクト・データが128個のデータ
のビットを含み、パリティ・ビットが16個のデータの
ビットを含む場合、16個のメモリ・デバイスが、サブ
ジェクト・データを各メモリ・デバイス内の特定のアド
レスにおいて記憶し、2個のメモリ・デバイスが、各メ
モリ・デバイス内の特定のアドレスにおいて初期パリテ
ィ・データを記憶する。各アドレスごとにサブジェクト
・データの128個のビットおよび初期パリティ・デー
タの16個のビットを記憶でき、そのセルが8個のデー
タのビットをそれぞれ記憶する18個のメモリ・デバイ
スを含むメモリ回路の構造は、一般的であり、周知であ
り、本明細書では詳細に説明しない。
成器104とメモリ・ストレージ110との間に接続さ
れたバス106および108を介して、それぞれサブジ
ェクト・データおよび初期パリティ・データをメモリ・
ストレージ110に供給する。メモリ・ストレージ11
0は、アドレス線130を介して受け取ったアドレス・
データによって指定される特定のアドレスにおいてサブ
ジェクト・データおよび初期パリティ・データを記憶す
る。例えば、メモリ・ストレージ110は、外部データ
・パスが8ビット幅であるメモリ・デバイス(図示せ
ず)を含み、サブジェクト・データが128個のデータ
のビットを含み、パリティ・ビットが16個のデータの
ビットを含む場合、16個のメモリ・デバイスが、サブ
ジェクト・データを各メモリ・デバイス内の特定のアド
レスにおいて記憶し、2個のメモリ・デバイスが、各メ
モリ・デバイス内の特定のアドレスにおいて初期パリテ
ィ・データを記憶する。各アドレスごとにサブジェクト
・データの128個のビットおよび初期パリティ・デー
タの16個のビットを記憶でき、そのセルが8個のデー
タのビットをそれぞれ記憶する18個のメモリ・デバイ
スを含むメモリ回路の構造は、一般的であり、周知であ
り、本明細書では詳細に説明しない。
【0018】次いで、サブジェクト・データおよびパリ
ティ・データは、アドレス線130を介して受け取った
アドレス・データによって特定のアドレスを指定するこ
とによって、メモリ・ストレージ110から検索され
る。サブジェクト・データは、メモリ・ストレージ11
0から検索され、バス112を介して別の誤り訂正符号
(ECC)生成器116に送られ、初期パリティ・デー
タは、メモリ・ストレージ110から検索され、バス1
14を介して誤り訂正検出回路118に送られる。一実
施形態では、ECC生成器116は、ECC生成器10
4と同じであり、ECC生成器116が次いで誤り訂正
検出回路118に接続されたバス122上でアサートす
る検査パリティ・データをもたらす。この実施形態で
は、ECC生成器116はECC生成器104と同じで
あるので、サブジェクト・データおよび検索された初期
パリティ・データが誤りを含まない場合、検査パリティ
・データはメモリ・ストレージ110から検索された初
期パリティ・データと同じになる。
ティ・データは、アドレス線130を介して受け取った
アドレス・データによって特定のアドレスを指定するこ
とによって、メモリ・ストレージ110から検索され
る。サブジェクト・データは、メモリ・ストレージ11
0から検索され、バス112を介して別の誤り訂正符号
(ECC)生成器116に送られ、初期パリティ・デー
タは、メモリ・ストレージ110から検索され、バス1
14を介して誤り訂正検出回路118に送られる。一実
施形態では、ECC生成器116は、ECC生成器10
4と同じであり、ECC生成器116が次いで誤り訂正
検出回路118に接続されたバス122上でアサートす
る検査パリティ・データをもたらす。この実施形態で
は、ECC生成器116はECC生成器104と同じで
あるので、サブジェクト・データおよび検索された初期
パリティ・データが誤りを含まない場合、検査パリティ
・データはメモリ・ストレージ110から検索された初
期パリティ・データと同じになる。
【0019】したがって、誤り訂正検出回路118(図
2)は、検査パリティ・データを検索された初期パリテ
ィ・データと比較するコンパレータ202を含む。コン
パレータ202は、ECC生成器116内に含まれ、中
間ステップとしての検査パリティ・データの生成は不要
であることが理解できる。しかしながら、コンパレータ
202は、説明のために、メモリ・システム100の別
個の構成要素として示されている。一実施形態では、コ
ンパレータ202は、検索された初期パリティ・データ
および検査パリティ・データの対応するビットに対して
論理排他的OR(XOR)演算を実施した結果である検
査データをもたらす。したがって、その論理値が0であ
るデータのビットのみを含む検査データは、検索された
サブジェクト・データ中に誤りが見つからないことを示
し、したがってサブジェクト・データはバス120から
誤り訂正検出回路118を介してデータ出力線124へ
送られる(図1および図2)。
2)は、検査パリティ・データを検索された初期パリテ
ィ・データと比較するコンパレータ202を含む。コン
パレータ202は、ECC生成器116内に含まれ、中
間ステップとしての検査パリティ・データの生成は不要
であることが理解できる。しかしながら、コンパレータ
202は、説明のために、メモリ・システム100の別
個の構成要素として示されている。一実施形態では、コ
ンパレータ202は、検索された初期パリティ・データ
および検査パリティ・データの対応するビットに対して
論理排他的OR(XOR)演算を実施した結果である検
査データをもたらす。したがって、その論理値が0であ
るデータのビットのみを含む検査データは、検索された
サブジェクト・データ中に誤りが見つからないことを示
し、したがってサブジェクト・データはバス120から
誤り訂正検出回路118を介してデータ出力線124へ
送られる(図1および図2)。
【0020】検査データは、検査データのいずれかのビ
ットが論理値1を有する場合は、第1の論理値、例えば
論理1を有し、検査データのすべてのビットが論理値0
を有する場合は、第2の論理値、例えば論理0を有する
誤り信号を、コンパレータ202からバス206を介し
て誤り状態線126上にもたらすORゲート204へ送
られる。バス206はまた、(i)バス206を介して
検索された検査データに従って、誤りが訂正可能である
かどうか、すなわちサブジェクト・データまたは検索さ
れた初期パリティ・データの単一ビットのみが誤ってい
るかどうかを判定し、(ii)誤りが訂正可能な場合、デ
ータ出力線124上でデータをアサートする前にバス1
20を介して受け取ったデータの誤りを訂正する誤り訂
正論理208に接続される。さらに、誤り訂正論理20
8は、誤りが訂正されている場合は第1の論理値、例え
ば論理1を有し、誤りが訂正されていない場合は第2の
論理値、例えば論理0を有する誤り訂正された信号を誤
り訂正状態線128上に生成する。
ットが論理値1を有する場合は、第1の論理値、例えば
論理1を有し、検査データのすべてのビットが論理値0
を有する場合は、第2の論理値、例えば論理0を有する
誤り信号を、コンパレータ202からバス206を介し
て誤り状態線126上にもたらすORゲート204へ送
られる。バス206はまた、(i)バス206を介して
検索された検査データに従って、誤りが訂正可能である
かどうか、すなわちサブジェクト・データまたは検索さ
れた初期パリティ・データの単一ビットのみが誤ってい
るかどうかを判定し、(ii)誤りが訂正可能な場合、デ
ータ出力線124上でデータをアサートする前にバス1
20を介して受け取ったデータの誤りを訂正する誤り訂
正論理208に接続される。さらに、誤り訂正論理20
8は、誤りが訂正されている場合は第1の論理値、例え
ば論理1を有し、誤りが訂正されていない場合は第2の
論理値、例えば論理0を有する誤り訂正された信号を誤
り訂正状態線128上に生成する。
【0021】したがって、メモリ・ストレージ110内
のサブジェクト・データの誤りまたは検索された初期パ
リティ・データの誤りは、データ入力線102を介して
受け取られたサブジェクト・データからECC生成器1
04によって生成された初期パリティ・データを比較す
ることによって検出され、次いでメモリ・ストレージ1
10から検索されたサブジェクト・データからECC生
成器116によって生成されたパリティ・データを検査
するためにメモリ・ストレージ110内に記憶される。
初期パリティ・データが検査パリティ・データに等しい
場合、サブジェクト・データおよび初期パリティ・デー
タは誤りを含まない。反対に、初期パリティ・データが
検査パリティ・データに等しくない場合、誤りが検出さ
れ、それを示す誤り信号が誤り訂正状態線126上に生
成される。さらに、検出された誤りが誤り訂正論理20
8(図2)によって訂正可能であると判定された場合、
誤りは訂正され、それを示す誤り訂正された信号が誤り
訂正状態線128上に生成される。
のサブジェクト・データの誤りまたは検索された初期パ
リティ・データの誤りは、データ入力線102を介して
受け取られたサブジェクト・データからECC生成器1
04によって生成された初期パリティ・データを比較す
ることによって検出され、次いでメモリ・ストレージ1
10から検索されたサブジェクト・データからECC生
成器116によって生成されたパリティ・データを検査
するためにメモリ・ストレージ110内に記憶される。
初期パリティ・データが検査パリティ・データに等しい
場合、サブジェクト・データおよび初期パリティ・デー
タは誤りを含まない。反対に、初期パリティ・データが
検査パリティ・データに等しくない場合、誤りが検出さ
れ、それを示す誤り信号が誤り訂正状態線126上に生
成される。さらに、検出された誤りが誤り訂正論理20
8(図2)によって訂正可能であると判定された場合、
誤りは訂正され、それを示す誤り訂正された信号が誤り
訂正状態線128上に生成される。
【0022】ECC生成器によるパリティ・データの導
出 上記に簡単に述べたように、それぞれECC生成器10
4およびECC生成器116によって初期パリティ・デ
ータおよび検査パリティ・データを明確に導出すること
により、サブジェクト・データのバイト中の1つまたは
複数のビットを含む単一誤りを検出することができる。
サブジェクト・データからのパリティ・ビットの導出の
中心は、本明細書では行列Hと呼ぶ検査行列である。行
列Hは、ビットの行列であり、初期パリティ・データ中
のビットの数に等しいの数の行を有し、かつ初期パリテ
ィ・データ中のビットの数とサブジェクト・データ中の
ビットの数との和に等しい数の列を有する。
出 上記に簡単に述べたように、それぞれECC生成器10
4およびECC生成器116によって初期パリティ・デ
ータおよび検査パリティ・データを明確に導出すること
により、サブジェクト・データのバイト中の1つまたは
複数のビットを含む単一誤りを検出することができる。
サブジェクト・データからのパリティ・ビットの導出の
中心は、本明細書では行列Hと呼ぶ検査行列である。行
列Hは、ビットの行列であり、初期パリティ・データ中
のビットの数に等しいの数の行を有し、かつ初期パリテ
ィ・データ中のビットの数とサブジェクト・データ中の
ビットの数との和に等しい数の列を有する。
【0023】以下でより完全に説明するように、行列H
の各列ベクトルは、サブジェクト・データならびに初期
パリティ・データを含む複合データ中の特定のビットに
対応する。複合データ中の単一ビットを含む誤りは、誤
りビットに対応する行列Hの列ベクトルによって正確に
表される検査データをバス206上にもたらす(図
2)。列ベクトルが検査データ中のビットの数に等しい
数の要素を有し、かつ列のベクトルの各要素が検査デー
タのビットのそれぞれのビットの論理値を正確に表す場
合、列ベクトルはバス206上の検査データを正確に表
す。複合データの多数のビットの誤りは、それぞれの誤
りビットに対応する行列Hの列ベクトルのモジュロ2の
加法によって正確に表される検査データをバス206上
にもたらす。
の各列ベクトルは、サブジェクト・データならびに初期
パリティ・データを含む複合データ中の特定のビットに
対応する。複合データ中の単一ビットを含む誤りは、誤
りビットに対応する行列Hの列ベクトルによって正確に
表される検査データをバス206上にもたらす(図
2)。列ベクトルが検査データ中のビットの数に等しい
数の要素を有し、かつ列のベクトルの各要素が検査デー
タのビットのそれぞれのビットの論理値を正確に表す場
合、列ベクトルはバス206上の検査データを正確に表
す。複合データの多数のビットの誤りは、それぞれの誤
りビットに対応する行列Hの列ベクトルのモジュロ2の
加法によって正確に表される検査データをバス206上
にもたらす。
【0024】行列Hは、以下でより完全に説明する8個
の列ベクトルを有する成分行列から構成され、以下の特
性を有する。 (a)行列Hの各列ベクトルは、奇数の重みであり、行
列Hの列ベクトル間で一意である。さらに、行列Hの各
個々の列ベクトルは、以下で説明する行列Hの成分行列
の任意の2個、3個、4個、5個、6個、7個および8
個の列ベクトルのどのモジュロ2の加法とも異なる。し
たがって、行列Hの列ベクトルによって正確に表される
検査データは、複合データの唯一の誤りビットが、列ベ
クトルの行列H内の位置に対応する複合データ内の位置
にあるビットであることを示す。したがって、複合デー
タの単一ビット誤りが容易に検出され、訂正される。 (b)行列Hの成分行列の任意の2個の列ベクトルのモ
ジュロ2の加法は、偶数の重みの0でない列ベクトルで
ある。したがって、複合データのバイト中の2個のビッ
トを含む誤りは、論理値1を有する偶数の0でない数の
ビットを有する検査データをバス206上にもたらす。
したがって、複合データの2個のビットを含む誤りによ
って生成された検査データは、偶数の重みを有する0で
ない列ベクトルによって表される。したがって、単一ビ
ットを含む誤りは奇数の重みの列ベクトルによって表さ
れる検査データをもたらすので、2個のビットを含む誤
りと、単一ビットを含む訂正可能な誤りとを区別するこ
とができる。 (c)行列Hの成分行列の任意の3個の列ベクトルのモ
ジュロ2の加法は、(i)行列Hを導出するのに使用さ
れ、以下で詳細に説明する0でないベクトルであるシグ
ニチャ・ベクトルを含むか、または(ii)行列Hのどの
個々の列ベクトルとも異なる列ベクトルである。したが
って、複合データのバイト中の3個のビットを含む誤り
は、シグネチャ・ベクトルを含むか、または行列Hのど
の個々の列ベクトルとも異なる列ベクトルによって表さ
れる検査データをバス206上に生成する。 (d)行列Hの成分行列の任意の4個の列ベクトルのモ
ジュロ2の加法は、偶数の重みの0でない列ベクトルで
ある。したがって、複合データのバイト中の4個のビッ
トを含む誤りは、論理値1を有する偶数の0でない数の
ビットを有する検査データをバス206上にもたらす。
したがって、複合データの4個のビットを含む誤りによ
ってもたらされた検査データは、偶数の重みを有する0
でない列ベクトルによって表される。したがって、単一
ビットを含む誤りは奇数の重みの列ベクトルによって表
される検査データをもたらすので、4個のビットを含む
誤りと、単一ビットを含む訂正可能な誤りとを区別する
ことができる。 (e)行列Hの成分行列の任意の5個の列ベクトルのモ
ジュロ2の加法は、行列Hのどの個々の列ベクトルとも
異なる0でない列ベクトルである。したがって、複合デ
ータのバイト中の5個のビットを含む誤りは、行列Hの
どの個々の列ベクトルとも異なる列ベクトルによって表
される検査データをバス206上にもたらす。したがっ
て、5個のビットを含む誤りと、単一ビットを含む訂正
可能な誤りとを区別することができる。 (f)行列Hの成分行列の任意の6個の列ベクトルのモ
ジュロ2の加法は、偶数の重みの0でない列ベクトルで
ある。したがって、複合データのバイト中の6個のビッ
トを含む誤りは、論理値1を有する偶数の0でない数の
ビットを有する検査データをバス206上にもたらす。
したがって、複合データの6個のビットを含む誤りによ
ってもたらされた検査データは、偶数の重みを有する0
でない列ベクトルによって表される。したがって、単一
ビットを含む誤りは奇数の重みの列ベクトルを表す検査
データをもたらすので、6個のビットを含む誤りと、単
一ビットを含む訂正可能な誤りとを区別することができ
る。 (g)行列Hの成分行列の任意の7個の列ベクトルのモ
ジュロ2の加法は、シグネチャ・ベクトルを含む列ベク
トルである。したがって、複合データのバイト中の7個
のビットを含む誤りは、シグネチャ・ベクトルを含む列
ベクトルを表す検査データをバス206上にもたらす。
したがって、シグネチャ・ベクトルを含む行列Hの列ベ
クトルはないので、7個のビットを含む誤りと、単一ビ
ットを含む訂正可能な誤りとを区別することができる。 (h)行列Hの成分行列の8個の列ベクトル全てのモジ
ュロ2の加法は、以下で詳細に説明する0でない固有パ
ターンを有する列ベクトルである。したがって、サブジ
ェクト・データのバイト中の8個のビットすべてを含む
誤りは、固有パターンを有する列ベクトルによって表さ
れる検査データをバス206上にもたらす。固有パター
ンは、行列Hのどの個々の列ベクトルとも異なるので、
8個のビットを含む誤りと、単一ビットを含む訂正可能
な誤りとを区別することができる。 (i)論理値1を有する行列Hのビットの数は、実質上
最小となり、そのような行列Hのビットは行列H中に実
質上均一に分配される。したがって、ECC生成器10
4および116(図1)および誤り訂正論理ブロック2
08を実施するのに必要な論理は比較的最小かつ最適で
ある。
の列ベクトルを有する成分行列から構成され、以下の特
性を有する。 (a)行列Hの各列ベクトルは、奇数の重みであり、行
列Hの列ベクトル間で一意である。さらに、行列Hの各
個々の列ベクトルは、以下で説明する行列Hの成分行列
の任意の2個、3個、4個、5個、6個、7個および8
個の列ベクトルのどのモジュロ2の加法とも異なる。し
たがって、行列Hの列ベクトルによって正確に表される
検査データは、複合データの唯一の誤りビットが、列ベ
クトルの行列H内の位置に対応する複合データ内の位置
にあるビットであることを示す。したがって、複合デー
タの単一ビット誤りが容易に検出され、訂正される。 (b)行列Hの成分行列の任意の2個の列ベクトルのモ
ジュロ2の加法は、偶数の重みの0でない列ベクトルで
ある。したがって、複合データのバイト中の2個のビッ
トを含む誤りは、論理値1を有する偶数の0でない数の
ビットを有する検査データをバス206上にもたらす。
したがって、複合データの2個のビットを含む誤りによ
って生成された検査データは、偶数の重みを有する0で
ない列ベクトルによって表される。したがって、単一ビ
ットを含む誤りは奇数の重みの列ベクトルによって表さ
れる検査データをもたらすので、2個のビットを含む誤
りと、単一ビットを含む訂正可能な誤りとを区別するこ
とができる。 (c)行列Hの成分行列の任意の3個の列ベクトルのモ
ジュロ2の加法は、(i)行列Hを導出するのに使用さ
れ、以下で詳細に説明する0でないベクトルであるシグ
ニチャ・ベクトルを含むか、または(ii)行列Hのどの
個々の列ベクトルとも異なる列ベクトルである。したが
って、複合データのバイト中の3個のビットを含む誤り
は、シグネチャ・ベクトルを含むか、または行列Hのど
の個々の列ベクトルとも異なる列ベクトルによって表さ
れる検査データをバス206上に生成する。 (d)行列Hの成分行列の任意の4個の列ベクトルのモ
ジュロ2の加法は、偶数の重みの0でない列ベクトルで
ある。したがって、複合データのバイト中の4個のビッ
トを含む誤りは、論理値1を有する偶数の0でない数の
ビットを有する検査データをバス206上にもたらす。
したがって、複合データの4個のビットを含む誤りによ
ってもたらされた検査データは、偶数の重みを有する0
でない列ベクトルによって表される。したがって、単一
ビットを含む誤りは奇数の重みの列ベクトルによって表
される検査データをもたらすので、4個のビットを含む
誤りと、単一ビットを含む訂正可能な誤りとを区別する
ことができる。 (e)行列Hの成分行列の任意の5個の列ベクトルのモ
ジュロ2の加法は、行列Hのどの個々の列ベクトルとも
異なる0でない列ベクトルである。したがって、複合デ
ータのバイト中の5個のビットを含む誤りは、行列Hの
どの個々の列ベクトルとも異なる列ベクトルによって表
される検査データをバス206上にもたらす。したがっ
て、5個のビットを含む誤りと、単一ビットを含む訂正
可能な誤りとを区別することができる。 (f)行列Hの成分行列の任意の6個の列ベクトルのモ
ジュロ2の加法は、偶数の重みの0でない列ベクトルで
ある。したがって、複合データのバイト中の6個のビッ
トを含む誤りは、論理値1を有する偶数の0でない数の
ビットを有する検査データをバス206上にもたらす。
したがって、複合データの6個のビットを含む誤りによ
ってもたらされた検査データは、偶数の重みを有する0
でない列ベクトルによって表される。したがって、単一
ビットを含む誤りは奇数の重みの列ベクトルを表す検査
データをもたらすので、6個のビットを含む誤りと、単
一ビットを含む訂正可能な誤りとを区別することができ
る。 (g)行列Hの成分行列の任意の7個の列ベクトルのモ
ジュロ2の加法は、シグネチャ・ベクトルを含む列ベク
トルである。したがって、複合データのバイト中の7個
のビットを含む誤りは、シグネチャ・ベクトルを含む列
ベクトルを表す検査データをバス206上にもたらす。
したがって、シグネチャ・ベクトルを含む行列Hの列ベ
クトルはないので、7個のビットを含む誤りと、単一ビ
ットを含む訂正可能な誤りとを区別することができる。 (h)行列Hの成分行列の8個の列ベクトル全てのモジ
ュロ2の加法は、以下で詳細に説明する0でない固有パ
ターンを有する列ベクトルである。したがって、サブジ
ェクト・データのバイト中の8個のビットすべてを含む
誤りは、固有パターンを有する列ベクトルによって表さ
れる検査データをバス206上にもたらす。固有パター
ンは、行列Hのどの個々の列ベクトルとも異なるので、
8個のビットを含む誤りと、単一ビットを含む訂正可能
な誤りとを区別することができる。 (i)論理値1を有する行列Hのビットの数は、実質上
最小となり、そのような行列Hのビットは行列H中に実
質上均一に分配される。したがって、ECC生成器10
4および116(図1)および誤り訂正論理ブロック2
08を実施するのに必要な論理は比較的最小かつ最適で
ある。
【0025】上述のように、行列Hはn個の行およびm
個の列を有する。ただし、nは初期パリティ・データの
ビットの長さであり、mは複合データのビットの長さで
ある。行列Hは、複合データを表し、かつ複合列ベクト
ルとも呼ばれる行列Hと列ベクトルとのブール行列乗算
から、バス206上に与えられる検査データを表し、か
つ検査列ベクトルとも呼ばれる列ベクトルが得られるよ
うに定義される。誤りが存在しない場合、バス206上
の検査データは0であるので、検査列ベクトル、したが
って行列Hと複合列ベクトルとのブール行列乗算によっ
て定義されるn個のブール式を0にセットすると、サブ
ジェクト・データと初期パリティ・データおよび検査パ
リティ・データとの論理関係が定義される。サブジェク
ト・データと初期パリティ・データおよび検査パリティ
・データとの論理関係は、ECC生成器104および1
16の構造および論理演算を定義する。サブジェクト・
データと初期パリティ・データとの関係は、サブジェク
ト・データと検査パリティ・データとの関係に等しいこ
とに留意されたい。
個の列を有する。ただし、nは初期パリティ・データの
ビットの長さであり、mは複合データのビットの長さで
ある。行列Hは、複合データを表し、かつ複合列ベクト
ルとも呼ばれる行列Hと列ベクトルとのブール行列乗算
から、バス206上に与えられる検査データを表し、か
つ検査列ベクトルとも呼ばれる列ベクトルが得られるよ
うに定義される。誤りが存在しない場合、バス206上
の検査データは0であるので、検査列ベクトル、したが
って行列Hと複合列ベクトルとのブール行列乗算によっ
て定義されるn個のブール式を0にセットすると、サブ
ジェクト・データと初期パリティ・データおよび検査パ
リティ・データとの論理関係が定義される。サブジェク
ト・データと初期パリティ・データおよび検査パリティ
・データとの論理関係は、ECC生成器104および1
16の構造および論理演算を定義する。サブジェクト・
データと初期パリティ・データとの関係は、サブジェク
ト・データと検査パリティ・データとの関係に等しいこ
とに留意されたい。
【0026】以下は、行列Hによるサブジェクト・デー
タとパリティ・データとの関係の定義を示す例である。
図3Aに、以下でより完全に説明する方法で導出される
行列H3の例示的な例を示す。図3Aにおいて、mすな
わち複合データの長さは32であり、nすなわちパリテ
ィ・データの長さは16である。したがって、複合デー
タはサブジェクト・データおよび関連する初期パリティ
・データのみを含むので、サブジェクト・データの長さ
は16ビットである。図3Bに、検査列ベクトルC3が
行列H3と複合列ベクトルD3とのブール行列乗算の結
果であることを示す。検査列ベクトルC3は、単一の列
およびn個の行を有し、要素としてビットc1、c2、c
3、c4、c5、c6、c7およびc8を有する。複合列ベク
トルD3は、単一の列およびm個の行を有し、要素とし
てサブジェクト・データを表すビットd1、d2、d3、
d4、d5、d6、d7およびd8、および初期パリティ・
データを表すビットp1、p2、p3、p4、p5、p6、p
7およびp8を有する。
タとパリティ・データとの関係の定義を示す例である。
図3Aに、以下でより完全に説明する方法で導出される
行列H3の例示的な例を示す。図3Aにおいて、mすな
わち複合データの長さは32であり、nすなわちパリテ
ィ・データの長さは16である。したがって、複合デー
タはサブジェクト・データおよび関連する初期パリティ
・データのみを含むので、サブジェクト・データの長さ
は16ビットである。図3Bに、検査列ベクトルC3が
行列H3と複合列ベクトルD3とのブール行列乗算の結
果であることを示す。検査列ベクトルC3は、単一の列
およびn個の行を有し、要素としてビットc1、c2、c
3、c4、c5、c6、c7およびc8を有する。複合列ベク
トルD3は、単一の列およびm個の行を有し、要素とし
てサブジェクト・データを表すビットd1、d2、d3、
d4、d5、d6、d7およびd8、および初期パリティ・
データを表すビットp1、p2、p3、p4、p5、p6、p
7およびp8を有する。
【0027】図3Cに、図3Bに示されるブール行列乗
算から得られるn個の式310を示す。ビットc1、
c2、c3、c4、c5、c6、c7およびc8を0にセット
すると、式320(図3D)が得られる。例えば、パリ
ティ・ビットp1 は、その入力線にデータ・ビット
d3、d4およびd6が適用される論理排他的ORゲート
によってもたらされた出力信号である。さらに、パリテ
ィ・ビットp3 は、その入力線にデータ・ビットd3、
d5およびd8が適用される論理排他的ORゲートによっ
てもたらされた出力信号である。上述のように、ECC
生成器104および116(図1)は等しく、式320
(図3D)を使用してサブジェクト・データからパリテ
ィ・データを導出する。さらに、ECC生成器116
(図1)は、式310(図3C)を使用して、中間ステ
ップとしてサブジェクト・データから検査パリティ・デ
ータを導出することなく直接検査データを生成する。行
列H3の重みが比較的小さいので、ECC生成器104
および116(図1)の論理は実質上最小であり、また
重みが行列H3(図3A)中に比較的均一に分配される
ので、パリティ・ビットp1、p2、p3、p4、p5、
p6、p7またはp8のいずれも、実質上他のパリティ・
ビットを生成するのに必要なよりも多くの論理をECC
生成器104および116内に生成する必要がない。
算から得られるn個の式310を示す。ビットc1、
c2、c3、c4、c5、c6、c7およびc8を0にセット
すると、式320(図3D)が得られる。例えば、パリ
ティ・ビットp1 は、その入力線にデータ・ビット
d3、d4およびd6が適用される論理排他的ORゲート
によってもたらされた出力信号である。さらに、パリテ
ィ・ビットp3 は、その入力線にデータ・ビットd3、
d5およびd8が適用される論理排他的ORゲートによっ
てもたらされた出力信号である。上述のように、ECC
生成器104および116(図1)は等しく、式320
(図3D)を使用してサブジェクト・データからパリテ
ィ・データを導出する。さらに、ECC生成器116
(図1)は、式310(図3C)を使用して、中間ステ
ップとしてサブジェクト・データから検査パリティ・デ
ータを導出することなく直接検査データを生成する。行
列H3の重みが比較的小さいので、ECC生成器104
および116(図1)の論理は実質上最小であり、また
重みが行列H3(図3A)中に比較的均一に分配される
ので、パリティ・ビットp1、p2、p3、p4、p5、
p6、p7またはp8のいずれも、実質上他のパリティ・
ビットを生成するのに必要なよりも多くの論理をECC
生成器104および116内に生成する必要がない。
【0028】行列Hの構成 ECC生成器104および116によるサブジェクト・
データからの初期パリティ・データおよび検査パリティ
・データの導出を定義する行列Hの上述の特性により、
上述のようにサブジェクト・データのバイト中の1つま
たは複数のビットを含む誤りを検出することができる。
すぐ下で説明する行列Hの構成は、行列Hが上述の特性
を有することを保証する。論理流れ図400(図4)
は、行列Hの構成およびそこからのECC生成器104
および116の構成を示す。論理流れ図400に従う処
理はステップ402から始まる。
データからの初期パリティ・データおよび検査パリティ
・データの導出を定義する行列Hの上述の特性により、
上述のようにサブジェクト・データのバイト中の1つま
たは複数のビットを含む誤りを検出することができる。
すぐ下で説明する行列Hの構成は、行列Hが上述の特性
を有することを保証する。論理流れ図400(図4)
は、行列Hの構成およびそこからのECC生成器104
および116の構成を示す。論理流れ図400に従う処
理はステップ402から始まる。
【0029】ステップ402において、行列Hの寸法を
決定する。上述のように、行列Hはn個の行およびm個
の列を有する。ただし、nは初期パリティ・データのビ
ットの数であり、mは複合データのビットの長さ、すな
わち結合したサブジェクト・データと初期パリティ・デ
ータのビットの数である。パリティ・データのn個のビ
ットを使用する本発明に従って誤りについて検査できる
サブジェクト・データのビットの最大数は、次式(1)
によって与えられる。
決定する。上述のように、行列Hはn個の行およびm個
の列を有する。ただし、nは初期パリティ・データのビ
ットの数であり、mは複合データのビットの長さ、すな
わち結合したサブジェクト・データと初期パリティ・デ
ータのビットの数である。パリティ・データのn個のビ
ットを使用する本発明に従って誤りについて検査できる
サブジェクト・データのビットの最大数は、次式(1)
によって与えられる。
【数1】 論理流れ図400(図4)に従う処理では、n、すなわ
ちパリティ・データのビットの数は4の整数倍であると
仮定する。説明のために、サブジェクト・データは長さ
128ビットであり、本発明に従ってサブジェクト・デ
ータの誤りを検査するためにパリティ・データの16個
のビットが必要であると仮定する。式(1)を使用する
と、パリティ・データの16個のビットはサブジェクト
・データの最大228個のビットを検査でき、パリティ
・データの12個のビットはサブジェクト・データの最
大48個のビットを検査できる。サブジェクト・データ
は長さ128ビットであり、パリティ・データは長さ1
6ビットであるので、行列Hは16個の行、および14
4個すなわち128個+16個の列を有する。
ちパリティ・データのビットの数は4の整数倍であると
仮定する。説明のために、サブジェクト・データは長さ
128ビットであり、本発明に従ってサブジェクト・デ
ータの誤りを検査するためにパリティ・データの16個
のビットが必要であると仮定する。式(1)を使用する
と、パリティ・データの16個のビットはサブジェクト
・データの最大228個のビットを検査でき、パリティ
・データの12個のビットはサブジェクト・データの最
大48個のビットを検査できる。サブジェクト・データ
は長さ128ビットであり、パリティ・データは長さ1
6ビットであるので、行列Hは16個の行、および14
4個すなわち128個+16個の列を有する。
【0030】処理は、ステップ402(図4)からステ
ップ404へ移り、そこでシグネチャ・ベクトルを構成
する。シグネチャ・ベクトルは、(i)行列Hを構成す
るため、および(ii)行列Hの特性(c)および
(g)に従ってバイトの3個または7個のビット含む誤
りを検出するために使用される。シグネチャ・ベクトル
は、長さn/4ビットであり、行列Hを構成するどのベ
ース生成ベクトルとも、どのビルディング・ブロック・
ベクトルとも異なる。ベース生成ベクトルおよびビルデ
ィング・ブロック・ベクトルについて以下に詳細に説明
する。一実施形態では、シグネチャ・ベクトルは、その
論理値がすべて1であるビットのn/4個の行を有する
列ベクトルである。この例示的な例では、nは16であ
り、したがってシグネチャ・ベクトルは、すべて論理値
1を有する4個のビットの列ベクトルである。その要素
がすべて論理値1を有するシグネチャ・ベクトルは、重
みが特に小さくかつその重みが特に均一に分配される行
列Hを生成することが分かっている。シグネチャ・ベク
トルの重みは、シグネチャ・ベクトルのビットの数、し
たがってその論理値が1であるビットの数が奇数の場
合、奇数になる。反対に、シグネチャ・ベクトルの重み
は、シグネチャ・ベクトルのビットの数、したがってそ
の論理値が1であるビットの数が偶数の場合、偶数にな
る。
ップ404へ移り、そこでシグネチャ・ベクトルを構成
する。シグネチャ・ベクトルは、(i)行列Hを構成す
るため、および(ii)行列Hの特性(c)および
(g)に従ってバイトの3個または7個のビット含む誤
りを検出するために使用される。シグネチャ・ベクトル
は、長さn/4ビットであり、行列Hを構成するどのベ
ース生成ベクトルとも、どのビルディング・ブロック・
ベクトルとも異なる。ベース生成ベクトルおよびビルデ
ィング・ブロック・ベクトルについて以下に詳細に説明
する。一実施形態では、シグネチャ・ベクトルは、その
論理値がすべて1であるビットのn/4個の行を有する
列ベクトルである。この例示的な例では、nは16であ
り、したがってシグネチャ・ベクトルは、すべて論理値
1を有する4個のビットの列ベクトルである。その要素
がすべて論理値1を有するシグネチャ・ベクトルは、重
みが特に小さくかつその重みが特に均一に分配される行
列Hを生成することが分かっている。シグネチャ・ベク
トルの重みは、シグネチャ・ベクトルのビットの数、し
たがってその論理値が1であるビットの数が奇数の場
合、奇数になる。反対に、シグネチャ・ベクトルの重み
は、シグネチャ・ベクトルのビットの数、したがってそ
の論理値が1であるビットの数が偶数の場合、偶数にな
る。
【0031】処理は、ステップ404からステップ40
6へ移り、そこで多数のベース生成ベクトルを構成す
る。具体的には、ベース生成ベクトルの数qは、次式
(2)によって与えられる。
6へ移り、そこで多数のベース生成ベクトルを構成す
る。具体的には、ベース生成ベクトルの数qは、次式
(2)によって与えられる。
【数2】
【0032】各ベース生成ベクトルは、寸法がシグネチ
ャ・ベクトルに等しい、すなわち1個の列およびn/4
個の行を有する。この例示的な例では、各ベース生成ベ
クトルは、1個の列1、および16個÷4個=4個であ
るので4個の行を有する。構成されたベース生成ベクト
ルは、互いに異なっており、各ベース生成ベクトルは、
シグネチャ・ベクトルが奇数の重みを有する場合は偶数
の重みを有し、シグネチャ・ベクトルが偶数の重みを有
する場合は奇数の重みを有する。この例示的な例では、
シグネチャ・ベクトルは、偶数の重みを有する。したが
って、各ベース生成ベクトルは奇数の重みを有し、構成
されたベース生成ベクトル間で一意である。図5に、ス
テップ404において構成されかつbg(j)によって
示されたベース生成ベクトルの例示的な例を示す。図5
において、jは、0とq−1(両端の整数を含む)の間
の整数である。
ャ・ベクトルに等しい、すなわち1個の列およびn/4
個の行を有する。この例示的な例では、各ベース生成ベ
クトルは、1個の列1、および16個÷4個=4個であ
るので4個の行を有する。構成されたベース生成ベクト
ルは、互いに異なっており、各ベース生成ベクトルは、
シグネチャ・ベクトルが奇数の重みを有する場合は偶数
の重みを有し、シグネチャ・ベクトルが偶数の重みを有
する場合は奇数の重みを有する。この例示的な例では、
シグネチャ・ベクトルは、偶数の重みを有する。したが
って、各ベース生成ベクトルは奇数の重みを有し、構成
されたベース生成ベクトル間で一意である。図5に、ス
テップ404において構成されかつbg(j)によって
示されたベース生成ベクトルの例示的な例を示す。図5
において、jは、0とq−1(両端の整数を含む)の間
の整数である。
【0033】処理は、ステップ406からステップ40
8へ移り、そこで多数の成分行列を構成する。以下でよ
り完全に説明するように、成分行列のいくつかを結合し
て行列Hを形成する。ステップ408を、処理がステッ
プ602から始まる論理流れ408としてより完全に示
す(図6)。ステップ602において、多数のビルディ
ング・ブロック・ベクトルを構成する。各ビルディング
・ブロック・ベクトルは、上述のシグネチャ・ベクトル
と同じ寸法を有し、次式(3)に従って構成される。
8へ移り、そこで多数の成分行列を構成する。以下でよ
り完全に説明するように、成分行列のいくつかを結合し
て行列Hを形成する。ステップ408を、処理がステッ
プ602から始まる論理流れ408としてより完全に示
す(図6)。ステップ602において、多数のビルディ
ング・ブロック・ベクトルを構成する。各ビルディング
・ブロック・ベクトルは、上述のシグネチャ・ベクトル
と同じ寸法を有し、次式(3)に従って構成される。
【数3】 式(3)において、(i)bbjkは、ベース生成ベク
トルbg(j)およびbg(k)に対応するビルディン
グ・ブロック・ベクトルであり、(ii)jおよびkは、
0とq−1(両端の整数を含む)の間の整数であり、互
いに等しくなく、(iii)bsは、上述のシグネチャ・ベ
クトルであり、(iv)プラス符号(「+」)はモジュ
ロ2加算演算を表す。モジュロ2加算演算は機能的に排
他的OR演算と同じである。ビルディング・ブロック・
ベクトルは、式(3)中のjとkの各可能な組合せごと
に構成される。図7に、図5の例示的な例についてステ
ップ602に従って構成されたビルディング・ブロック
・ベクトルを示す。
トルbg(j)およびbg(k)に対応するビルディン
グ・ブロック・ベクトルであり、(ii)jおよびkは、
0とq−1(両端の整数を含む)の間の整数であり、互
いに等しくなく、(iii)bsは、上述のシグネチャ・ベ
クトルであり、(iv)プラス符号(「+」)はモジュ
ロ2加算演算を表す。モジュロ2加算演算は機能的に排
他的OR演算と同じである。ビルディング・ブロック・
ベクトルは、式(3)中のjとkの各可能な組合せごと
に構成される。図7に、図5の例示的な例についてステ
ップ602に従って構成されたビルディング・ブロック
・ベクトルを示す。
【0034】処理は、ステップ602(図6)からステ
ップ604へ移り、そこでステップ602において構成
されたビルディング・ブロック・ベクトルbbjkごと
に成分行列h(j、k)を構成する。各成分行列h
(j、k)は、次式(4)に従って構成される。
ップ604へ移り、そこでステップ602において構成
されたビルディング・ブロック・ベクトルbbjkごと
に成分行列h(j、k)を構成する。各成分行列h
(j、k)は、次式(4)に従って構成される。
【数4】 上述のように、ビルディング・ブロック・ベクトルbb
jkおよびベース生成ベクトルbg(j)およびbg
(k)はすべて、1個の列およびn/4個の行を有する
列ベクトルである。したがって、各成分行列h(j、
k)は、8個のビットの列およびn個のビットの行を有
する。この例示的な例では、nは16であり、したがっ
てn/4は4である。したがって、各成分行列h(j、
k)は、8個のビットの列および16個のビットの行を
有する。
jkおよびベース生成ベクトルbg(j)およびbg
(k)はすべて、1個の列およびn/4個の行を有する
列ベクトルである。したがって、各成分行列h(j、
k)は、8個のビットの列およびn個のビットの行を有
する。この例示的な例では、nは16であり、したがっ
てn/4は4である。したがって、各成分行列h(j、
k)は、8個のビットの列および16個のビットの行を
有する。
【0035】上述のように、ステップ406(図4)に
おいて生成されたすべてのベース生成ベクトルは互いに
異なる。したがって、bg(j)はbg(k)と異な
る。さらに、ビルディング・ブロック・ベクトルbbj
kは、シグネチャ・ベクトルが奇数の重みを有し、かつ
ベース生成ベクトルが偶数の重みを有する場合は、奇数
の重みを有し、シグネチャ・ベクトルが偶数の重みを有
し、かつベース生成ベクトルが奇数の重みを有する場合
は、偶数の重みを有するので、bbjkは、bg(j)
およびbg(k)と異なる。したがって、成分行列h
(j、k)の列は互いに異なる。さらに、各ベース生成
ベクトルはステップ406(図4)において構成された
他のすべてのベース生成ベクトルと異なり、またビルデ
ィング・ブロック・ベクトルbbjkはステップ602
(図6)において構成された他のすべてのビルディング
・ブロック・ベクトルと異なるので、成分行列h(j、
k)の各列は、ステップ604において構成された他の
すべての成分行列のどの列とも異なる。さらに、ステッ
プ604において構成された他のすべての成分行列は、
行列Hの上述の特性を有する。
おいて生成されたすべてのベース生成ベクトルは互いに
異なる。したがって、bg(j)はbg(k)と異な
る。さらに、ビルディング・ブロック・ベクトルbbj
kは、シグネチャ・ベクトルが奇数の重みを有し、かつ
ベース生成ベクトルが偶数の重みを有する場合は、奇数
の重みを有し、シグネチャ・ベクトルが偶数の重みを有
し、かつベース生成ベクトルが奇数の重みを有する場合
は、偶数の重みを有するので、bbjkは、bg(j)
およびbg(k)と異なる。したがって、成分行列h
(j、k)の列は互いに異なる。さらに、各ベース生成
ベクトルはステップ406(図4)において構成された
他のすべてのベース生成ベクトルと異なり、またビルデ
ィング・ブロック・ベクトルbbjkはステップ602
(図6)において構成された他のすべてのビルディング
・ブロック・ベクトルと異なるので、成分行列h(j、
k)の各列は、ステップ604において構成された他の
すべての成分行列のどの列とも異なる。さらに、ステッ
プ604において構成された他のすべての成分行列は、
行列Hの上述の特性を有する。
【0036】上述のように、行列Hの成分行列の8個の
列ベクトルすべてのモジュロ2の加法は、固有パターン
を有する列ベクトルである。成分行列h(j、k)の8
個の列ベクトルすべてのモジュロ2の加法は、次式
(5)によって与えられる。式(5)において、プラス
符号(「+」)はモジュロ2加算を示す。
列ベクトルすべてのモジュロ2の加法は、固有パターン
を有する列ベクトルである。成分行列h(j、k)の8
個の列ベクトルすべてのモジュロ2の加法は、次式
(5)によって与えられる。式(5)において、プラス
符号(「+」)はモジュロ2加算を示す。
【数5】
【0037】成分行列h(j、k)の列は、成分行列h
(j、k)内の列の特定の順序に関わらず、これらの特
性を有することが理解できる。したがって、式(4)中
に示される列は、以下に説明するように成分行列h
(j、k)から構成された行列Hの有効性に影響を及ぼ
すことなく記録できる。さらに、成分行列h(j、k)
の列が上述の特性を有するならば、成分行列h(j、
k)の7個以下の列ベクトルを使用して、同数のビット
を有するデータ・セグメント中の1つまたは複数の誤り
ビットを検出することができる。例えば、成分行列h
(j、k)の任意の4個の列ベクトルを使用して、デー
タのニブル中の1つまたは複数の誤りビットを検出し、
それによりS4EDシステムを実施することができる。
(j、k)内の列の特定の順序に関わらず、これらの特
性を有することが理解できる。したがって、式(4)中
に示される列は、以下に説明するように成分行列h
(j、k)から構成された行列Hの有効性に影響を及ぼ
すことなく記録できる。さらに、成分行列h(j、k)
の列が上述の特性を有するならば、成分行列h(j、
k)の7個以下の列ベクトルを使用して、同数のビット
を有するデータ・セグメント中の1つまたは複数の誤り
ビットを検出することができる。例えば、成分行列h
(j、k)の任意の4個の列ベクトルを使用して、デー
タのニブル中の1つまたは複数の誤りビットを検出し、
それによりS4EDシステムを実施することができる。
【0038】ステップ604の後、論理流れ図408に
従う処理、したがってステップ408(図4)は終了す
る。ステップ408から、処理はステップ410へ移
り、そこでステップ408において構成された成分行列
から行列Hを構成する。行列Hは、次式(6)に示され
るように成分行列h(j、k)および寸法nの単位行列
から構成される。
従う処理、したがってステップ408(図4)は終了す
る。ステップ408から、処理はステップ410へ移
り、そこでステップ408において構成された成分行列
から行列Hを構成する。行列Hは、次式(6)に示され
るように成分行列h(j、k)および寸法nの単位行列
から構成される。
【数6】 式(6)において、(i)Iは、n個のビットの列およ
びm個のビットの行を有する単位行列であり、(ii)j
1、j2、j3、k1、k2、k3は、0とq−1(両
端の整数を含む)の間の整数であり、(iii)j1、j
2、およびj3は、それぞれk1、k2、およびk3に
等しくなく、(j1、k1)、(j2、k2)、および
(j3、k3)の各組合せは、行列H中のそのような他
のすべての組合せと異なる。
びm個のビットの行を有する単位行列であり、(ii)j
1、j2、j3、k1、k2、k3は、0とq−1(両
端の整数を含む)の間の整数であり、(iii)j1、j
2、およびj3は、それぞれk1、k2、およびk3に
等しくなく、(j1、k1)、(j2、k2)、および
(j3、k3)の各組合せは、行列H中のそのような他
のすべての組合せと異なる。
【0039】ステップ410を、処理がステップ802
から始まる論理流れ図410としてより詳細に示す(図
8)。ステップ802において、行列H中に含まれる成
分行列h(j、k)の数を決定する。サブジェクト・デ
ータ中の各ビットは、行列Hの成分行列の列ベクトルに
対応する。一実施形態では、各成分行列h(j、k)は
8個の列ベクトルを有するので、行列H中に含まれるそ
のような成分行列の数は、サブジェクト・データのビッ
トの数を8で割ったものに等しい。上述の例示的な例で
は、サブジェクト・データのビットの数は128であ
る。したがって、16個の一意の成分行列h(j、k)
が行列H中に含まれる。
から始まる論理流れ図410としてより詳細に示す(図
8)。ステップ802において、行列H中に含まれる成
分行列h(j、k)の数を決定する。サブジェクト・デ
ータ中の各ビットは、行列Hの成分行列の列ベクトルに
対応する。一実施形態では、各成分行列h(j、k)は
8個の列ベクトルを有するので、行列H中に含まれるそ
のような成分行列の数は、サブジェクト・データのビッ
トの数を8で割ったものに等しい。上述の例示的な例で
は、サブジェクト・データのビットの数は128であ
る。したがって、16個の一意の成分行列h(j、k)
が行列H中に含まれる。
【0040】処理は、ステップ802からステップ80
4へ移り、そこで各成分行列h(j、k)の重みを決定
し、成分行列h(j、k)を重みの昇順で分類する。こ
の例示的な例では、16個の成分行列h(j、k)はス
テップ802において決定された行列H中に含まれるの
で、最小の重みを有する16個の成分行列h(j、k)
を選択する。図3A〜図3Dに対応する上記説明に示さ
れるように、行列H中の重みが小さくなると、ECC生
成器104および116(図1)の対応する回路の複雑
さが低減する。したがって、行列Hは、重みを比較的小
さくして構成することが好ましい。しかしながら、おそ
らくECC生成器104および116(図1)内の追加
の回路のコストが増大するとしても、行列Hは、ステッ
プ804(図8)を実施することなく上述の特性を有す
ることが理解できる。
4へ移り、そこで各成分行列h(j、k)の重みを決定
し、成分行列h(j、k)を重みの昇順で分類する。こ
の例示的な例では、16個の成分行列h(j、k)はス
テップ802において決定された行列H中に含まれるの
で、最小の重みを有する16個の成分行列h(j、k)
を選択する。図3A〜図3Dに対応する上記説明に示さ
れるように、行列H中の重みが小さくなると、ECC生
成器104および116(図1)の対応する回路の複雑
さが低減する。したがって、行列Hは、重みを比較的小
さくして構成することが好ましい。しかしながら、おそ
らくECC生成器104および116(図1)内の追加
の回路のコストが増大するとしても、行列Hは、ステッ
プ804(図8)を実施することなく上述の特性を有す
ることが理解できる。
【0041】処理は、ステップ804(図8)からステ
ップ806へ移り、そこでステップ804において選択
した成分行列h(j、k)、あるいは任意の16個の成
分行列h(j、k)を、式(6)に従うn個の行および
n個の列を有する単位行列Iと結合させて行列Hを形成
する。ステップ806から、論理流れ図410に従う処
理、したがってステップ410(図4)は終了する。処
理は、ステップ410からステップ412へ移る。
ップ806へ移り、そこでステップ804において選択
した成分行列h(j、k)、あるいは任意の16個の成
分行列h(j、k)を、式(6)に従うn個の行および
n個の列を有する単位行列Iと結合させて行列Hを形成
する。ステップ806から、論理流れ図410に従う処
理、したがってステップ410(図4)は終了する。処
理は、ステップ410からステップ412へ移る。
【0042】図3A〜図3Dと関連して上述したよう
に、行列Hは、サブジェクト・データとパリティ・デー
タとの関係を定義する。ステップ412において、行列
Hによって定義されるサブジェクト・データとパリティ
・データとの関係は、上述の方法、例えば図3A〜図3
Dと関連して上述した方法で、パリティ・データが行列
Hに従うサブジェクト・データから導出されるように、
ECC生成器104(図1)および116内で実施され
る。
に、行列Hは、サブジェクト・データとパリティ・デー
タとの関係を定義する。ステップ412において、行列
Hによって定義されるサブジェクト・データとパリティ
・データとの関係は、上述の方法、例えば図3A〜図3
Dと関連して上述した方法で、パリティ・データが行列
Hに従うサブジェクト・データから導出されるように、
ECC生成器104(図1)および116内で実施され
る。
【0043】単一ビット誤り訂正 上述のように、誤り訂正論理208(図2)は、単一ビ
ットのみを含む複合データの誤りを検出し、訂正する。
行列Hの各列ベクトルは、複合列ベクトル、例えば複合
列ベクトルD3(図3B)内の誤りビットに応答してバ
ス206(図2)上にもたらされる検査データに等し
い。バス206(図2)上の検査データによって表され
る列ベクトルの行列H、例えば行列H3内の位置は、誤
りビットの複合列ベクトル、例えば複合列ベクトルD3
(図3B)内の位置に対応する。例えば、複合列ベクト
ルD3のデータ・ビットd3 が誤っていると仮定する。
式310(図3C)から、バス206(図2)上の検査
データのビットc1、c3およびc8はそれぞれ論理値1
を有し、検査ビットc2、c4、c5、c6 およびc7 は
それぞれ論理値0を有する。これらの値は、行列H3
(図3B)の第3の列ベクトルによって表され、したが
って複合列ベクトルD3中の第3のビットが誤っている
ことを示す。これは、複合列ベクトルD3中の第3のビ
ットが、誤っているビットであるデータ・ビットd3 で
あるので適切である。
ットのみを含む複合データの誤りを検出し、訂正する。
行列Hの各列ベクトルは、複合列ベクトル、例えば複合
列ベクトルD3(図3B)内の誤りビットに応答してバ
ス206(図2)上にもたらされる検査データに等し
い。バス206(図2)上の検査データによって表され
る列ベクトルの行列H、例えば行列H3内の位置は、誤
りビットの複合列ベクトル、例えば複合列ベクトルD3
(図3B)内の位置に対応する。例えば、複合列ベクト
ルD3のデータ・ビットd3 が誤っていると仮定する。
式310(図3C)から、バス206(図2)上の検査
データのビットc1、c3およびc8はそれぞれ論理値1
を有し、検査ビットc2、c4、c5、c6 およびc7 は
それぞれ論理値0を有する。これらの値は、行列H3
(図3B)の第3の列ベクトルによって表され、したが
って複合列ベクトルD3中の第3のビットが誤っている
ことを示す。これは、複合列ベクトルD3中の第3のビ
ットが、誤っているビットであるデータ・ビットd3 で
あるので適切である。
【0044】誤り訂正論理208(図2)は、本明細書
では検査列ベクトルとも呼ぶバス206上にもたらされ
る検査データを正確に表す列ベクトルを、行列H、例え
ば行列H3(図3B)の各個々の列と比較する。検査列
ベクトルが行列Hの個々の列ベクトルに等しい場合、訂
正可能な誤りが検出される。訂正可能な誤りは、個々の
列ベクトルの行列H内の位置に対応する複合データ内の
位置において複合データの単一誤りビットのみを含む。
さらに、誤り訂正論理208(図2)は、訂正可能な誤
りが検出された場合、誤りビットの論理否定によって複
合データの誤りビットを訂正する。そのような訂正の
後、サブジェクト・データは、誤り訂正論理208によ
ってデータ出力線124上にアサートされる。誤り訂正
論理208はまた、訂正可能な誤りが検出され、誤り訂
正論理208によって訂正された場合は第1の論理値、
例えば論理1を有し、訂正可能な誤りが誤り訂正論理2
08によって検出されない場合は第2の論理値、例えば
論理0を有する誤り訂正された信号を誤り訂正状態線1
28上にもたらす。
では検査列ベクトルとも呼ぶバス206上にもたらされ
る検査データを正確に表す列ベクトルを、行列H、例え
ば行列H3(図3B)の各個々の列と比較する。検査列
ベクトルが行列Hの個々の列ベクトルに等しい場合、訂
正可能な誤りが検出される。訂正可能な誤りは、個々の
列ベクトルの行列H内の位置に対応する複合データ内の
位置において複合データの単一誤りビットのみを含む。
さらに、誤り訂正論理208(図2)は、訂正可能な誤
りが検出された場合、誤りビットの論理否定によって複
合データの誤りビットを訂正する。そのような訂正の
後、サブジェクト・データは、誤り訂正論理208によ
ってデータ出力線124上にアサートされる。誤り訂正
論理208はまた、訂正可能な誤りが検出され、誤り訂
正論理208によって訂正された場合は第1の論理値、
例えば論理1を有し、訂正可能な誤りが誤り訂正論理2
08によって検出されない場合は第2の論理値、例えば
論理0を有する誤り訂正された信号を誤り訂正状態線1
28上にもたらす。
【0045】誤りが複合データの2個以上のビットを含
む場合、バス206上にもたらされた検査データは、複
合列ベクトル、例えば複合列ベクトルD3(図3B)内
の誤りビットに位置が対応する行列Hの列ベクトルのモ
ジュロ2の加法によって正確に表される。例えば、それ
ぞれ複合列ベクトルD3内の位置2、3、および5のと
ころにあるデータ・ビットd2、d3、およびd5 が誤っ
ている場合、バス206(図2)上にもたらされた検査
データは、この例では行列H3(図3B)の第2の列ベ
クトル、第3の列ベクトル、および第5の列ベクトルの
モジュロ2の加法によって正確に表される。行列Hの特
性として上述したように、行列Hの任意の2個、3個、
4個、5個、6個、7個または8個の列ベクトルのモジ
ュロ2の加法は、0でなく、行列Hのどの個々の列ベク
トルとも異なる。したがって、検査データが0でないの
で、誤りが検出され、検査データが行列Hの列ベクトル
によって表されないので、その誤りと訂正可能な誤りと
を区別することができる。
む場合、バス206上にもたらされた検査データは、複
合列ベクトル、例えば複合列ベクトルD3(図3B)内
の誤りビットに位置が対応する行列Hの列ベクトルのモ
ジュロ2の加法によって正確に表される。例えば、それ
ぞれ複合列ベクトルD3内の位置2、3、および5のと
ころにあるデータ・ビットd2、d3、およびd5 が誤っ
ている場合、バス206(図2)上にもたらされた検査
データは、この例では行列H3(図3B)の第2の列ベ
クトル、第3の列ベクトル、および第5の列ベクトルの
モジュロ2の加法によって正確に表される。行列Hの特
性として上述したように、行列Hの任意の2個、3個、
4個、5個、6個、7個または8個の列ベクトルのモジ
ュロ2の加法は、0でなく、行列Hのどの個々の列ベク
トルとも異なる。したがって、検査データが0でないの
で、誤りが検出され、検査データが行列Hの列ベクトル
によって表されないので、その誤りと訂正可能な誤りと
を区別することができる。
【0046】コンピュータ・システム内でのメモリ・シ
ステム100の使用 メモリ・システム100は、コンピュータ・システム9
00(図9)内で確実なメモリ・アクセスを提供するた
めにコンピュータ・システム900内で使用される。現
在使用されているたいていのコンピュータ・システム
は、図9に示される一般的なアーキテクチャのものであ
る。コンピュータ・システム900は、バス904を介
してメモリ・システム100に結合されたプロセッサ9
02を含む。プロセッサ902は、コンピュータ命令を
バス904を介してメモリ・システム100からフェッ
チし、フェッチされたコンピュータ命令を実行する。プ
ロセッサ902はまた、メモリ・システム100および
これもバス904に結合された大容量メモリ910から
データを読み取ったり、データを書き込んだりする。例
えば、プロセッサ902はSPARCプロセッサなどで
あり、コンピュータ・システム900はSPARCst
ationワークステーション・コンピュータ・システ
ムなどである。SPARCプロセッサもSPARCst
ationワークステーション・コンピュータ・システ
ムもカリフォルニア州マウンテンビューのSun Mi
crosystems社が市販している。Sun、Su
n Microsystems、およびSun Log
oは、米国およびその他の国におけるSun Micr
osystems社の商標または登録商標である。すべ
てのSPARC商標は、許可を受けて使用されており、
米国およびその他の国におけるSPARC Inter
national社の商標である。SPARC商標を担
持する製品は、Sun Microsystems社に
よって開発されたアーキテクチャに基づく。
ステム100の使用 メモリ・システム100は、コンピュータ・システム9
00(図9)内で確実なメモリ・アクセスを提供するた
めにコンピュータ・システム900内で使用される。現
在使用されているたいていのコンピュータ・システム
は、図9に示される一般的なアーキテクチャのものであ
る。コンピュータ・システム900は、バス904を介
してメモリ・システム100に結合されたプロセッサ9
02を含む。プロセッサ902は、コンピュータ命令を
バス904を介してメモリ・システム100からフェッ
チし、フェッチされたコンピュータ命令を実行する。プ
ロセッサ902はまた、メモリ・システム100および
これもバス904に結合された大容量メモリ910から
データを読み取ったり、データを書き込んだりする。例
えば、プロセッサ902はSPARCプロセッサなどで
あり、コンピュータ・システム900はSPARCst
ationワークステーション・コンピュータ・システ
ムなどである。SPARCプロセッサもSPARCst
ationワークステーション・コンピュータ・システ
ムもカリフォルニア州マウンテンビューのSun Mi
crosystems社が市販している。Sun、Su
n Microsystems、およびSun Log
oは、米国およびその他の国におけるSun Micr
osystems社の商標または登録商標である。すべ
てのSPARC商標は、許可を受けて使用されており、
米国およびその他の国におけるSPARC Inter
national社の商標である。SPARC商標を担
持する製品は、Sun Microsystems社に
よって開発されたアーキテクチャに基づく。
【0047】コンピュータ・システム900はまた、キ
ーボードおよびマウス、トラック・ボール、ライトペ
ン、デジタル化タブレットおよび/またはタッチ検知パ
ッドなど電子ポインティング・デバイスなどを無制限に
含むことができる1つまたは複数のユーザ入力装置90
6を含む。ユーザは、ユーザ入力装置906を操作し
て、ユーザ生成コマンド信号を生成し、バス904を介
してプロセッサ902へ送信する。プロセッサ902
は、それに応答して、メモリ・システム100からフェ
ッチされたコンピュータ命令に従って適切な処置をと
る。メモリ・システム100からフェッチされたコンピ
ュータ命令に応答して、また場合によってはユーザ入力
装置906から受信したユーザ生成コマンド信号に応答
して、プロセッサ902は、ユーザに表示するために1
つまたは複数の出力装置908にデータを送り、信号を
制御する。出力装置908は、プリンタおよび陰極線管
(CRT)、発光ダイオード(LED)ディスプレイお
よび液晶ディスプレイ(LCD)などコンピュータ表示
装置などを無制限に含むことができる。
ーボードおよびマウス、トラック・ボール、ライトペ
ン、デジタル化タブレットおよび/またはタッチ検知パ
ッドなど電子ポインティング・デバイスなどを無制限に
含むことができる1つまたは複数のユーザ入力装置90
6を含む。ユーザは、ユーザ入力装置906を操作し
て、ユーザ生成コマンド信号を生成し、バス904を介
してプロセッサ902へ送信する。プロセッサ902
は、それに応答して、メモリ・システム100からフェ
ッチされたコンピュータ命令に従って適切な処置をと
る。メモリ・システム100からフェッチされたコンピ
ュータ命令に応答して、また場合によってはユーザ入力
装置906から受信したユーザ生成コマンド信号に応答
して、プロセッサ902は、ユーザに表示するために1
つまたは複数の出力装置908にデータを送り、信号を
制御する。出力装置908は、プリンタおよび陰極線管
(CRT)、発光ダイオード(LED)ディスプレイお
よび液晶ディスプレイ(LCD)などコンピュータ表示
装置などを無制限に含むことができる。
【0048】プロセッサ902がデータ、すなわちサブ
ジェクト・データをメモリ・システム100に書き込む
場合、上記でより完全に説明したように、初期パリティ
・データが生成され、メモリ・システム100内に記憶
される。プロセッサ902は、メモリ・システム100
内の特定のアドレスを指定するアドレス・データをバス
904を介してアドレス線130上にアサートすること
によってメモリ・システム100内のサブジェクト・デ
ータを書き込むべき特定の位置を指定する。生成され、
メモリ・システム100内に記憶された初期パリティ・
データは、サブジェクト・データが記憶される同じアド
レスと関連する。その場合、プロセッサ902は、次い
で読取り動作中に同じアドレス・データをバス904を
介してアドレス線130上にアサートすることによって
サブジェクト・データを検索する。サブジェクト・デー
タ中または初期パリティ・データの誤りは、上記でより
完全に説明した方法で、単一ビットのみが誤っている場
合、検出され、訂正される。プロセッサ902は、メモ
リ・システム100によってバス904に結合された誤
り状態線126上にもたらされた誤り信号をバス904
を介して受け取ることによって、サブジェクト・データ
または初期パリティ・データの誤りが検出されたと判断
する。同様に、プロセッサ902は、メモリ・システム
100によってこれもバス904に結合された誤り訂正
状態線128上にもたらされた誤り訂正された信号をバ
ス904を介して受け取ることによって、サブジェクト
・データまたはパリティ・データの誤りが訂正されたと
判断する。
ジェクト・データをメモリ・システム100に書き込む
場合、上記でより完全に説明したように、初期パリティ
・データが生成され、メモリ・システム100内に記憶
される。プロセッサ902は、メモリ・システム100
内の特定のアドレスを指定するアドレス・データをバス
904を介してアドレス線130上にアサートすること
によってメモリ・システム100内のサブジェクト・デ
ータを書き込むべき特定の位置を指定する。生成され、
メモリ・システム100内に記憶された初期パリティ・
データは、サブジェクト・データが記憶される同じアド
レスと関連する。その場合、プロセッサ902は、次い
で読取り動作中に同じアドレス・データをバス904を
介してアドレス線130上にアサートすることによって
サブジェクト・データを検索する。サブジェクト・デー
タ中または初期パリティ・データの誤りは、上記でより
完全に説明した方法で、単一ビットのみが誤っている場
合、検出され、訂正される。プロセッサ902は、メモ
リ・システム100によってバス904に結合された誤
り状態線126上にもたらされた誤り信号をバス904
を介して受け取ることによって、サブジェクト・データ
または初期パリティ・データの誤りが検出されたと判断
する。同様に、プロセッサ902は、メモリ・システム
100によってこれもバス904に結合された誤り訂正
状態線128上にもたらされた誤り訂正された信号をバ
ス904を介して受け取ることによって、サブジェクト
・データまたはパリティ・データの誤りが訂正されたと
判断する。
【0049】プロセッサ902は、メモリ・システム1
00から検索されたサブジェクト・データの誤りが検出
された場合、適切な処置をとることができる。例えば、
メモリ・システム100から検索されたサブジェクト・
データ中に訂正された誤りが検出された場合、プロセッ
サ902は、出力装置908を介して、メモリ・エラー
が検出され、訂正されたという警告メッセージをユーザ
に表示させることができる。メモリ・エラーが検出され
たので、プロセッサ902による処理は正常に継続でき
る。メモリ・システム100から検索されたサブジェク
ト・データ中に訂正されていない誤りが検出された場
合、プロセッサ902は、出力装置908を介して、エ
ラー・メッセージをユーザに表示させ、処理を打ち切る
ことができる。メモリ・システム100から検索された
サブジェクト・データ中の検出された誤りに応答して、
プロセッサ902が他の多数の処置をとることができる
ことが理解できる。
00から検索されたサブジェクト・データの誤りが検出
された場合、適切な処置をとることができる。例えば、
メモリ・システム100から検索されたサブジェクト・
データ中に訂正された誤りが検出された場合、プロセッ
サ902は、出力装置908を介して、メモリ・エラー
が検出され、訂正されたという警告メッセージをユーザ
に表示させることができる。メモリ・エラーが検出され
たので、プロセッサ902による処理は正常に継続でき
る。メモリ・システム100から検索されたサブジェク
ト・データ中に訂正されていない誤りが検出された場
合、プロセッサ902は、出力装置908を介して、エ
ラー・メッセージをユーザに表示させ、処理を打ち切る
ことができる。メモリ・システム100から検索された
サブジェクト・データ中の検出された誤りに応答して、
プロセッサ902が他の多数の処置をとることができる
ことが理解できる。
【0050】一実施形態では、上述のECC生成器10
4および116(図1)の設計、すなわちそれに従って
ECC生成器104および116(図1)を設計する式
310(図3C)および式320(図3D)の導出は、
適切にプログラムされたコンピュータによって実施され
る。さらに、ECC生成器104および116は、本発
明の一実施形態におけるコンピュータ内で実行するソフ
トウェアにおいて実現される。
4および116(図1)の設計、すなわちそれに従って
ECC生成器104および116(図1)を設計する式
310(図3C)および式320(図3D)の導出は、
適切にプログラムされたコンピュータによって実施され
る。さらに、ECC生成器104および116は、本発
明の一実施形態におけるコンピュータ内で実行するソフ
トウェアにおいて実現される。
【0051】上記説明は、例示的なものにすぎず、限定
的なものではない。本発明は、以下の請求の範囲によっ
てのみ限定される。
的なものではない。本発明は、以下の請求の範囲によっ
てのみ限定される。
【図1】 本発明による誤り検出を実施するメモリ・シ
ステムのブロック図である。
ステムのブロック図である。
【図2】 図1のメモリ・システムの誤り訂正回路のブ
ロック図である。
ロック図である。
【図3】 本発明による検査行列を示す図(A)、Aの
検査行列によって定義されるサブジェクト・データとパ
リティ・データとの関係を示す図(B)、Bに示された
関係によって定義されるブール論理式を示す図(C)、
Cの式から導出され、サブジェクト・データからパリテ
ィ・データを生成するのに使用されるブール論理式を示
す図(D)である。
検査行列によって定義されるサブジェクト・データとパ
リティ・データとの関係を示す図(B)、Bに示された
関係によって定義されるブール論理式を示す図(C)、
Cの式から導出され、サブジェクト・データからパリテ
ィ・データを生成するのに使用されるブール論理式を示
す図(D)である。
【図4】 本発明による誤り訂正符号生成器の構成を示
す、論理流れ図である。
す、論理流れ図である。
【図5】 本発明に従って構成された検査行列の例示的
な例に対応するベース生成ベクトルを示す図である。
な例に対応するベース生成ベクトルを示す図である。
【図6】 本発明による一対のベース生成ベクトルから
の成分行列の構成を示す論理流れ図である。
の成分行列の構成を示す論理流れ図である。
【図7】 本発明に従って構成された検査行列の例示的
な例に対応するビルディング・ブロック・ベクトルを示
す図である。
な例に対応するビルディング・ブロック・ベクトルを示
す図である。
【図8】 本発明による成分行列からの検査行列の構成
を示す論理流れ図である。
を示す論理流れ図である。
【図9】 本発明による図1のメモリ・システムを含む
コンピュータ・システムのブロック図である。
コンピュータ・システムのブロック図である。
104 ECC生成器 116 ECC生成器 118 誤り訂正検出回路 202 コンパレータ 208 誤り訂正論理 100 メモリ・デバイス 910 大容量メモリ 902 プロセッサ
Claims (7)
- 【請求項1】 (A)シグネチャ・ベクトルを構成する
ステップと、 (B)それぞれが、シグネチャ・ベクトルが偶数の重み
を有する場合は奇数の重みを有し、シグネチャ・ベクト
ルが奇数の重みを有する場合は偶数の重みを有する2個
以上の互いに異なるベース生成ベクトルを構成するステ
ップと、 (C)2個以上のベース生成ベクトルのうちの2個のベ
ース生成ベクトルの1つまたは複数の組合せ対して、 (i)シグネチャ・ベクトルおよび2個のベース生成ベ
クトルからビルディング・ブロック・ベクトルを構成す
るステップと、 (ii)それぞれ(1)ビルディング・ブロック・ベクト
ルの1つまたは複数のインスタンスと、2個のベース生
成ベクトルのうちの少なくとも1個のベース生成ベクト
ルの1つまたは複数のインスタンスとの連鎖を含み、か
つ(2)成分行列の1つまたは複数のベクトルの他のす
べてのベクトルと異なる1つまたは複数のベクトルを含
む成分行列を構成するステップと、 (D)1つまたは複数の成分行列を単位行列と結合して
検査行列を形成するステップと、 (E)検査行列と、サブジェクト・データ・ビットおよ
び関連するパリティ・ビットを含む複合ベクトルとの行
列積である検査行列に固定の値を割り当てて、メモリ内
に記憶されたサブジェクト・データの様々な状態と、各
状態に対応しかつメモリ内に記憶された有効なパリティ
・データとの関係を定義するステップとを含み、シグネ
チャ・ベクトルが各ビルディング・ブロック・ベクトル
に関して一意でありかつ各ベース生成ベクトルに関して
一意であることを特徴とするメモリ内で誤り訂正符号生
成回路を構成する方法。 - 【請求項2】 ステップ(E)において定義された関係
に従ってサブジェクト・データからパリティ・データを
生成する回路を構成するステップをさらに含むことを特
徴とする請求項1に記載の方法。 - 【請求項3】 (A)シグネチャ・ベクトルを構成する
ステップと、 (B)それぞれが、シグネチャ・ベクトルが偶数の重み
を有する場合は奇数の重みを有し、シグネチャ・ベクト
ルが奇数の重みを有する場合は偶数の重みを有する2個
以上の互いに異なるベース生成ベクトルを構成するステ
ップと、 (C)2個以上のベース生成ベクトルのうちの2個のベ
ース生成ベクトルの1つまたは複数の組合せに対して、 (i)シグネチャ・ベクトルおよび2個のベース生成ベ
クトルからビルディング・ブロック・ベクトルを構成す
るステップと、 (ii)それぞれ(1)ビルディング・ブロック・ベクト
ルの1つまたは複数のインスタンスと、2個のベース生
成ベクトルのうちの少なくとも1個のベース生成ベクト
ルの1つまたは複数のインスタンスとの連鎖を含み、か
つ(2)成分行列の1つまたは複数のベクトルの他のす
べてのベクトルと異なる1つまたは複数のベクトルを含
む成分行列を構成するステップと、 (D)1つまたは複数の成分行列を単位行列と結合して
検査行列を形成するステップと、 (E)検査行列と、サブジェクト・データ・ビットおよ
び関連するパリティ・ビットを含む複合ベクトルとの行
列積である検査行列に固定の値を割り当てて、メモリ内
に記憶されたサブジェクト・データの様々な状態と、各
状態に対応しかつメモリ内に記憶された有効なパリティ
・データとの関係を定義するステップとを実施すること
によって定義されるサブジェクト・データとパリティ・
データとの論理関係に従って、サブジェクト・データか
らパリティ・データのnビットを生成するステップとを
含み、シグネチャ・ベクトルが各ビルディング・ブロッ
ク・ベクトルに関して一意でありかつ各ベース生成ベク
トルに関して一意であることを特徴とするコンピュータ
のメモリ内に記憶されたサブジェクト・データの誤りを
検出する方法。 - 【請求項4】 (A)シグネチャ・ベクトルを構成する
ステップと、 (B)それぞれが、シグネチャ・ベクトルが偶数の重み
を有する場合は奇数の重みを有し、シグネチャ・ベクト
ルが奇数の重みを有する場合は偶数の重みを有する2個
以上の互いに異なるベース生成ベクトルを構成するステ
ップと、 (C)2個以上のベース生成ベクトルのうちの2個のベ
ース生成ベクトルの1つまたは複数の組合せに対して、 (i)シグネチャ・ベクトルおよび2個のベース生成ベ
クトルからビルディング・ブロック・ベクトルを構成す
るステップと、 (ii)それぞれ(1)ビルディング・ブロック・ベクト
ルの1つまたは複数のインスタンスと、2個のベース生
成ベクトルのうちの少なくとも1個のベース生成ベクト
ルの1つまたは複数のインスタンスとの連鎖を含み、か
つ(2)成分行列の1つまたは複数のベクトルの他のす
べてのベクトルと異なる1つまたは複数のベクトルを含
む成分行列を構成するステップと、 (D)1つまたは複数の成分行列を単位行列と結合して
検査行列を形成するステップと、 (E)検査行列と、サブジェクト・データ・ビットおよ
び関連するパリティ・ビットを含む複合ベクトルとの行
列積である検査行列に固定の値を割り当てて、メモリ内
に記憶されたサブジェクト・データの様々な状態と、各
状態に対応しかつメモリ内に記憶された有効なパリティ
・データとの関係を定義するステップと、 (F)ステップ(E)において定義された関係に従って
サブジェクト・データからパリティ・データを生成する
回路を構成するステップとを実施することによって得ら
れる誤り検出回路を含み、シグネチャ・ベクトルが各ビ
ルディング・ブロック・ベクトルに関して一意でありか
つ各ベース生成ベクトルに関して一意であることを特徴
とするメモリ・システム。 - 【請求項5】 (A)シグネチャ・ベクトルを構成する
ステップと、 (B)それぞれが、シグネチャ・ベクトルが偶数の重み
を有する場合は奇数の重みを有し、シグネチャ・ベクト
ルが奇数の重みを有する場合は偶数の重みを有する2個
以上の互いに異なるベース生成ベクトルを構成するステ
ップと、 (C)2個以上のベース生成ベクトルのうちの2個のベ
ース生成ベクトルの1つまたは複数の組合せに対して、 (i)シグネチャ・ベクトルおよび2個のベース生成ベ
クトルからビルディング・ブロック・ベクトルを構成す
るステップと、 (ii)それぞれ(1)ビルディング・ブロック・ベクト
ルの1つまたは複数のインスタンスと、2個のベース生
成ベクトルのうちの少なくとも1個のベース生成ベクト
ルの1つまたは複数のインスタンスとの連鎖を含み、か
つ(2)成分行列の1つまたは複数のベクトルの他のす
べてのベクトルと異なる1つまたは複数のベクトルを含
む成分行列を構成するステップと、 (D)1つまたは複数の成分行列を単位行列と結合して
検査行列を形成するステップと、 (E)検査行列と、サブジェクト・データ・ビットおよ
び関連するパリティ・ビットを含む複合ベクトルとの行
列積である検査行列に固定の値を割り当てて、メモリ内
に記憶されたサブジェクト・データの様々な状態と、各
状態に対応しかつメモリ内に記憶された有効なパリティ
・データとの関係を定義するステップとを実施すること
によって定義されるサブジェクト・データとパリティ・
データとの論理関係に従って、コンピュータのメモリ内
に記憶されたサブジェクト・データからパリティ・デー
タのnビットを生成し、シグネチャ・ベクトルが各ビル
ディング・ブロック・ベクトルに関して一意でありかつ
各ベース生成ベクトルに関して一意であることを特徴と
するメモリ誤り検出回路。 - 【請求項6】 プロセッサと、プロセッサに動作可能に
結合され、かつプロセッサによって実施された書込み動
作に応答してサブジェクト・データを記憶し、かつプロ
セッサによって実施された読取り動作に応答してサブジ
ェクト・データを検索し、かつ (A)シグネチャ・ベクトルを構成するステップと、 (B)それぞれが、シグネチャ・ベクトルが偶数の重み
を有する場合は奇数の重みを有し、シグネチャ・ベクト
ルが奇数の重みを有する場合は偶数の重みを有する2個
以上の互いに異なるベース生成ベクトルを構成するステ
ップと、 (C)2個以上のベース生成ベクトルのうちの2個のベ
ース生成ベクトルの1つまたは複数の組合せに対して、 (i)シグネチャ・ベクトルおよび2個のベース生成ベ
クトルからビルディング・ブロック・ベクトルを構成す
るステップと、 (ii)それぞれ(1)ビルディング・ブロック・ベクト
ルの1つまたは複数のインスタンスと、2個のベース生
成ベクトルのうちの少なくとも1個のベース生成ベクト
ルの1つまたは複数のインスタンスとの連鎖を含み、か
つ(2)成分行列の1つまたは複数のベクトルの他のす
べてのベクトルと異なる1つまたは複数のベクトルを含
む成分行列を構成するステップと、 (D)1つまたは複数の成分行列を単位行列と結合して
検査行列を形成するステップと、 (E)検査行列と、サブジェクト・データ・ビットおよ
び関連するパリティ・ビットを含む複合ベクトルとの行
列積である検査行列に固定の値を割り当てて、メモリ内
に記憶されたサブジェクト・データの様々な状態と、各
状態に対応しかつメモリ内に記憶された有効なパリティ
・データとの関係を定義するステップと、 (F)ステップ(E)において定義された関係に従って
サブジェクト・データからパリティ・データを生成する
回路を構成するステップとを実施することによって得ら
れる、サブジェクト・データからパリティ・データを導
出する誤り検出回路を含むメモリ・システムとを含むコ
ンピュータ・システムにおいて、シグネチャ・ベクトル
が各ビルディング・ブロック・ベクトルに関して一意で
ありかつ各ベース生成ベクトルに関して一意であるコン
ピュータ・システム。 - 【請求項7】 プロセッサと、プロセッサに動作可能に
結合され、かつプロセッサによって実施された書込み動
作に応答してサブジェクト・データを記憶し、かつプロ
セッサによって実施された読取り動作に応答してサブジ
ェクト・データを検索し、かつ (A)シグネチャ・ベクトルを構成するステップと、 (B)それぞれが、シグネチャ・ベクトルが偶数の重み
を有する場合は奇数の重みを有し、シグネチャ・ベクト
ルが奇数の重みを有する場合は偶数の重みを有する2個
以上の互いに異なるベース生成ベクトルを構成するステ
ップと、 (C)2個以上のベース生成ベクトルのうちの2個のベ
ース生成ベクトルの1つまたは複数の組合せに対して、 (i)シグネチャ・ベクトルおよび2個のベース生成ベ
クトルからビルディング・ブロック・ベクトルを構成す
るステップと、 (ii)それぞれ(1)ビルディング・ブロック・ベクト
ルの1つまたは複数のインスタンスと、2個のベース生
成ベクトルのうちの少なくとも1個のベース生成ベクト
ルの1つまたは複数のインスタンスとの連鎖を含み、か
つ(2)成分行列の1つまたは複数のベクトルの他のす
べてのベクトルと異なる1つまたは複数のベクトルを含
む成分行列を構成するステップと、 (D)1つまたは複数の成分行列を単位行列と結合して
検査行列を形成するステップと、 (E)検査行列と、サブジェクト・データ・ビットおよ
び関連するパリティ・ビットを含む複合ベクトルとの行
列積である検査行列に固定の値を割り当てて、メモリ内
に記憶されたサブジェクト・データの様々な状態と、各
状態に対応しかつメモリ内に記憶された有効なパリティ
・データとの関係を定義するステップとを実施すること
によって定義されるサブジェクト・データとパリティ・
データとの論理関係に従って、サブジェクト・データか
らパリティ・データのnビットを生成する誤り検出回路
を含むメモリ・システムとを含み、シグネチャ・ベクト
ルが各ビルディング・ブロック・ベクトルに関して一意
でありかつ各ベース生成ベクトルに関して一意であるコ
ンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60853096A | 1996-02-28 | 1996-02-28 | |
US08/608530 | 1996-02-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1031628A true JPH1031628A (ja) | 1998-02-03 |
Family
ID=24436916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9062184A Pending JPH1031628A (ja) | 1996-02-28 | 1997-02-28 | コンピュータ・メモリ用の誤り検出および訂正回路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5781568A (ja) |
EP (1) | EP0793174B1 (ja) |
JP (1) | JPH1031628A (ja) |
SG (1) | SG76501A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822600A (en) * | 1996-07-19 | 1998-10-13 | Compaq Computer Corporation | Dynamic hibernation time in a computer system |
US6751769B2 (en) | 2000-06-06 | 2004-06-15 | International Business Machines Corporation | (146,130) error correction code utilizing address information |
EP2273801B1 (en) * | 2000-11-14 | 2018-02-28 | GN Hearing A/S | A hearing aid with error protected data storage |
US6785837B1 (en) | 2000-11-20 | 2004-08-31 | International Business Machines Corporation | Fault tolerant memory system utilizing memory arrays with hard error detection |
US7634709B2 (en) * | 2001-10-05 | 2009-12-15 | Unisys Corporation | Familial correction with non-familial double bit error detection |
US20030174841A1 (en) * | 2002-03-15 | 2003-09-18 | Novell Inc. | Methods, systems, and data structures for secure data content presentation |
US6920604B2 (en) * | 2002-04-08 | 2005-07-19 | Galazar Networks, Inc. | Systems and methods for high speed serial encoding and decoding for data and control interfaces |
WO2006062959A2 (en) * | 2004-12-08 | 2006-06-15 | Smiths Aerospace, Inc. | System and method for enhanced error detection in memory peripherals |
US7506226B2 (en) * | 2006-05-23 | 2009-03-17 | Micron Technology, Inc. | System and method for more efficiently using error correction codes to facilitate memory device testing |
US7721178B2 (en) * | 2006-06-01 | 2010-05-18 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code |
US20070283207A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus timing improvements |
US20070283208A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features |
US20070283223A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with all checkbits transferred last |
EP2062364A2 (en) * | 2006-08-11 | 2009-05-27 | Aclara Power-Line Systems Inc. | Method of correcting message errors using cyclic redundancy checks |
WO2009102304A1 (en) * | 2008-02-14 | 2009-08-20 | Hewlett-Packard Development Company, L.P. | Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string |
US20110161108A1 (en) * | 2009-12-30 | 2011-06-30 | Mckesson Automation Inc. | Systems and methods for detecting diversion in drug dispensing |
US8560927B1 (en) * | 2010-08-26 | 2013-10-15 | Altera Corporation | Memory error detection circuitry |
US9203437B2 (en) | 2012-12-19 | 2015-12-01 | Infineon Technologies Ag | Circuitry and method for correcting 3-bit errors containing adjacent 2-bit error |
US9658920B1 (en) | 2013-06-21 | 2017-05-23 | Altera Corporation | Method for reconfiguring an erroneous memory frame in an integrated circuit |
US10949298B2 (en) * | 2018-09-21 | 2021-03-16 | Taiwan Semiconductor Manufacturing Company, Limited | System and method of reducing logic for multi-bit error correcting codes |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3697949A (en) * | 1970-12-31 | 1972-10-10 | Ibm | Error correction system for use with a rotational single-error correction, double-error detection hamming code |
US4077028A (en) * | 1976-06-14 | 1978-02-28 | Ncr Corporation | Error checking and correcting device |
US4464753A (en) * | 1981-12-30 | 1984-08-07 | International Business Machines Corporation | Two bit symbol SEC/DED code |
JPS61139846A (ja) * | 1984-12-12 | 1986-06-27 | Hitachi Ltd | 誤り訂正・検出方式 |
US4713816A (en) * | 1986-02-25 | 1987-12-15 | U.S. Philips Corporation | Three module memory system constructed with symbol-wide memory chips and having an error protection feature, each symbol consisting of 2I+1 bits |
JPH0760394B2 (ja) * | 1986-12-18 | 1995-06-28 | 株式会社日立製作所 | 誤り訂正・検出方式 |
EP0300139B1 (en) * | 1987-07-20 | 1993-07-07 | International Business Machines Corporation | Error correcting code for b-bit-per-chip memory with reduced redundancy |
EP0386506A3 (en) * | 1989-03-06 | 1991-09-25 | International Business Machines Corporation | Low cost symbol error correction coding and decoding |
USH1176H (en) * | 1989-08-30 | 1993-04-06 | Cray Research, Inc. | Bit dispersement method for enhanced SEC-DED error detection and correction in multi-bit memory devices |
JPH04290144A (ja) * | 1991-03-19 | 1992-10-14 | Hitachi Ltd | メモリ拡張方式 |
JPH05158722A (ja) * | 1991-12-10 | 1993-06-25 | Hitachi Ltd | 誤り検出・訂正方式 |
EP0600137A1 (en) * | 1992-11-30 | 1994-06-08 | International Business Machines Corporation | Method and apparatus for correcting errors in a memory |
US5550849A (en) * | 1993-05-20 | 1996-08-27 | Ceram Incorporated | Method and apparatus for detecting single or multiple bit errors instorage devices |
EP0629051B1 (en) * | 1993-06-10 | 1998-04-01 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Digital information error correcting apparatus for correcting single errors(sec),detecting double errors(ded)and single byte multiple errors(sbd),and the correction of an odd number of single byte errors(odd sbc). |
-
1997
- 1997-02-18 SG SG1997000413A patent/SG76501A1/en unknown
- 1997-02-26 EP EP97301282A patent/EP0793174B1/en not_active Expired - Lifetime
- 1997-02-28 JP JP9062184A patent/JPH1031628A/ja active Pending
- 1997-08-15 US US08/921,766 patent/US5781568A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
SG76501A1 (en) | 2000-11-21 |
EP0793174A2 (en) | 1997-09-03 |
US5781568A (en) | 1998-07-14 |
EP0793174B1 (en) | 2003-05-07 |
EP0793174A3 (en) | 1998-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1031628A (ja) | コンピュータ・メモリ用の誤り検出および訂正回路 | |
US8112678B1 (en) | Error correction for programmable logic integrated circuits | |
US8145961B2 (en) | Fast ECC memory testing by software including ECC check byte | |
US9252814B2 (en) | Combined group ECC protection and subgroup parity protection | |
US7797609B2 (en) | Apparatus and method for merging data blocks with error correction code protection | |
US4958350A (en) | Error detecting/correction code and apparatus | |
EP0265639A2 (en) | ECC circuit failure verifier | |
JPS6115238A (ja) | エラ−訂正方法 | |
JPS6250943A (ja) | 記憶装置 | |
US5331645A (en) | Expandable digital error detection and correction device | |
EP0600137A1 (en) | Method and apparatus for correcting errors in a memory | |
JPS60142430A (ja) | 誤り訂正・検出装置 | |
JPS62117200A (ja) | 自己テスト機能付き半導体メモリおよび自己テスト方法 | |
JPH06236326A (ja) | ランダムアクセスメモリにデータを記憶するために非原子レベルパリティ保護を実行する方法および装置 | |
US4761783A (en) | Apparatus and method for reporting occurrences of errors in signals stored in a data processor | |
US3218612A (en) | Data transfer system | |
US11069421B1 (en) | Circuitry for checking operation of error correction code (ECC) circuitry | |
US20230315565A1 (en) | Parity protected memory blocks merged with error correction code (ecc) protected blocks in a codeword for increased memory utilization | |
JP3170145B2 (ja) | メモリ制御システム | |
JPH03147041A (ja) | エラー訂正システム | |
JPS61277230A (ja) | 誤り検出訂正符号発生方式 | |
EP0152974B1 (en) | Arrangement for checking the parity bit-containing bit groups | |
JPH1165944A (ja) | データ誤り検出装置 | |
JPH06230990A (ja) | 符号誤りの識別、補正方法及び装置 | |
Juvilna et al. | A Bloom Filter Based Data Management With Error Detection And Correction |