JP2000112833A - 複数の単一エラ―訂正コ―ド・ワ―ドにわたってパリティを共用するための技法 - Google Patents

複数の単一エラ―訂正コ―ド・ワ―ドにわたってパリティを共用するための技法

Info

Publication number
JP2000112833A
JP2000112833A JP11270292A JP27029299A JP2000112833A JP 2000112833 A JP2000112833 A JP 2000112833A JP 11270292 A JP11270292 A JP 11270292A JP 27029299 A JP27029299 A JP 27029299A JP 2000112833 A JP2000112833 A JP 2000112833A
Authority
JP
Japan
Prior art keywords
error
bits
data
bit
data block
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
JP11270292A
Other languages
English (en)
Inventor
Robert Cypher
ロバート・サイファ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000112833A publication Critical patent/JP2000112833A/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/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

Abstract

(57)【要約】 【課題】 複数の単一エラー訂正コード・ワードにわた
ってパリティを共用するための技法を提供する。 【解決手段】 1つのコンポーネントに対応する1ビッ
トが1つの論理グループに割り当てられるように、1つ
のデータ・ブロックの全ビットが複数の論理グループに
割り当てられる。この割当ては、コンポーネント障害に
よって1つの論理グループにせいぜい1ビットのエラー
しか持ち込まれないことを保証するものである。各論理
グループは、単一エラー訂正コードを使用してビットエ
ラーを検出し訂正する。複数の論理グループを含むデー
タ・ブロックに1つのパリティ・ビットが付加される。
このパリティ・ビットは、検出されたエラーが単一ビッ
トエラーであるか複数ビットエラーであるかを判定する
ために、単一エラー訂正コードとともに使用することが
できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、エラー検出とエラ
ー訂正に関し、より詳細には、コンピュータ・メモリ・
システム内のビットエラーを検出して訂正するエラーコ
ードに関する。
【0002】
【従来の技術】コンピュータ・システムでは、伝送エラ
ーまたは記憶エラーなどのデータのエラーを検出および
/または訂正するためにエラーコードが一般的に使用さ
れている。たとえば、エラーコードは、電話回線、無線
送信機、またはコンパクト・ディスク・レーザにより伝
送されたエラーを検出し訂正するために使用することが
できる。エラーコードのもう1つの一般的な使い方は、
コンピュータ・システムのメモリへ記憶され、それから
読み取られるデータ内のエラーを検出し、訂正すること
である。たとえば、1つまたは複数のメモリ・デバイス
にデータを記憶する前に、データに関してエラー訂正ビ
ットまたはチェックビットを生成することができる。メ
モリ・デバイスからそのデータが読み取られると、チェ
ックビットを使用して、そのデータ内のエラーを検出ま
たは訂正することができる。エラーは、コンピュータ・
システム内の故障コンポーネントまたはノイズによって
持ち込まれる可能性がある。故障コンポーネントとして
は、故障したメモリ・デバイスや、コンピュータ・シス
テム内のデバイスの間のデータ経路の故障、例えば故障
したピンなどが考えられる。
【0003】一般的に使用されるエラーコードの1つは
ハミング符号である。ハミング符号内のチェックビット
は、データ・ビットの一部分に関するパリティ・ビット
である。各チェックビットは、データ・ビットの固有の
サブセットに関するパリティを提供するものである。エ
ラーが発生した場合、すなわち、1つまたは複数のビッ
トの状態が変化した場合、1つまたは複数のシンドロー
ム・ビットがアサートされる(そのエラーがそのコード
によってカバーされるエラーのクラス内のものであると
想定する)。概して、シンドローム・ビットは、チェッ
クビットを再生成し、再生成されたチェックビットと元
のチェックビットとを比較することによって生成され
る。再生成されたチェックビットが元のチェックビット
とは異なる場合、すでにエラーが発生しており、1つま
たは複数のシンドローム・ビットがアサートされる。ど
のシンドローム・ビットがアサートされるかは、どのデ
ータ・ビットの状態が変化するかを決定するために使用
し、エラーの訂正が可能となる。たとえば、1つのデー
タ・ビットの状態が変化した場合、このデータ・ビット
は1つまたは複数のチェックビットを変更することにな
る。各データ・ビットは複数のチェックビットからなる
固有のグループに貢献するので、変更されたチェックビ
ットによって、状態が変化したデータ・ビットが識別さ
れる。誤っていると識別されたビットを反転することに
より、そのエラーを訂正することができる。
【0004】ハミング符号の一般的な使い方の1つは、
1つのデータ・グループ内の単一ビットエラーを訂正す
ることである。概して、チェックビットの数は、2k-1
がn以上になるように十分大きいものでなければならな
い。kはチェックビットの数であり、nはデータ・ビッ
トの数にチェックビットの数を加えたものである。した
がって、64ビット用の単一エラー訂正ハミング符号を
実現するには、7つのチェックビットが必要である。単
一エラー訂正ハミング符号は単一エラーを検出し訂正す
ることができる。このコードのエラー検出能力は、追加
のチェックビットを追加することによって増すことがで
きる。追加のチェックビットを使用すると、このハミン
グ符号は二重ビットエラーを検出し、単一ビットエラー
を訂正することができる。ハミング符号のデータ検出能
力を増すために1ビットを追加することは、拡張ハミン
グ符号と呼ばれる。拡張ハミング符号については以下に
詳述する。
【0005】コンポーネントの障害は、コンピュータ・
メモリ・システム内で発生する問題の1つである。コン
ポーネント障害は、エラーコードによって訂正不能な複
数のエラーを持ち込む可能性がある。たとえば、1つの
データ・ブロックの8ビットが同じメモリ・デバイスに
記憶される場合、そのメモリ・デバイスの障害によって
そのデータ・ブロックに8つのビットエラーが持ち込ま
れる可能性がある。したがって、エラー訂正コードがそ
のエラーを検出または訂正できないほど十分な数のエラ
ーが1つのコンポーネント障害によって持ち込まれる可
能性がある。同様に、ピン障害など、メモリ・コンポー
ネントとエラー訂正回路との間のデータ経路障害によっ
て、エラー訂正コードが使用されるデータ・ブロック内
に複数のエラーが持ち込まれる可能性がある。
【0006】
【発明が解決しようとする課題】コンポーネントエラー
が1つのデータ・グループ内に複数のエラーを持ち込む
のを防止するための潜在的な解決法の1つは、そのグル
ープ内の1ビット分のデータだけがいずれかのコンポー
ネントの影響を受けるようにデータを記憶することであ
る。たとえば、64個のデータ・ビットと7つのチェッ
クビットとを備えた1つのデータ・グループ内の各デー
タ・ビットは、別々のメモリ・デバイスに記憶すること
ができる。この実施の形態では、71個のメモリ・チッ
プが必要になる。各メモリ・デバイスは71ビット・デ
ータ・グループのうちの1ビットを記憶することになる
だろう。残念ながら、データ・ビットとチェックビット
の数に基づいて1つのデータ・グループにビットを割り
振っても、システム内のチェックビットの使い方を最適
化することはできない。
【0007】コンピュータ・システムの一般的な設計目
標は、エラーを検出し、訂正するために使用するチェッ
クビットの数を低減することである。チェックビットは
システムが処理するデータの量を増加し、それにより、
メモリ・コンポーネント、データ追跡、その他の回路の
数が増加する。さらに、ビット数の増加により、エラー
の確率が増大する。チェックビットはエラーを検出可能
および/または訂正可能なものにする可能性があるが、
システム内のデータ・ビットの数の増加によって、エラ
ーが発生する確率が増大する。少なくともこのような理
由により、所与のレベルのエラー検出および/または訂
正の場合にチェックビットの数を減らすことが望まし
い。さらに、最小数の追加ビットによって単一エラー訂
正コードのエラー訂正能力を増すことが望ましい。
【0008】
【課題を解決するための手段】上記で概説した問題は、
主に、本発明により複数の単一エラー訂正コード・ワー
ドにわたってパリティを共用するための技法によって解
決される。いずれかのコンポーネント・グループからの
多くても1ビットだけが1つの論理グループに割り当て
られるように、1つのデータ・ブロックの全ビットが複
数の論理グループに割り当てられる。この割当ては、コ
ンポーネント障害によって1つの論理グループに多くて
も1ビットのエラーしか持ち込まれないことを保証する
ものである。
【0009】各論理グループは、単一エラー訂正コード
を使用してビットエラーを検出し訂正する。複数の論理
グループを含むデータ・ブロックに1つのパリティ・ビ
ットが付加される。このパリティ・ビットは、検出され
たエラーが単一ビットエラーであるかまたは複数ビット
エラーであるかを判定するために、単一エラー訂正コー
ドとともに使用することができる。検出されたエラーが
単一ビットエラーである場合、エラー訂正コードを使用
してエラーを訂正することができる。検出されたエラー
が複数ビットのエラーである場合、訂正不能なエラーを
報告することができる。データ・ブロックあたり1つの
パリティ・ビットを使用することにより、エラー検出コ
ードのエラー検出能力を拡張するために必要なビットの
数を低減することができる。
【0010】広く言えば本発明は、単一エラー訂正コー
ドのエラー訂正能力を増すための方法を提供するもので
あり、1つのデータ・ブロックに関するグローバル・チ
ェックビットを生成するステップを有する。その際、そ
のデータ・ブロックは複数のデータ・グループを含み、
各データ・グループが単一エラー訂正コードを使用す
る。その単一エラー訂正コードを使用して各データ・グ
ループ内の1つまたは複数のビットエラーを検出する。
また、本発明は、パリティ・ビットを使用して、そのエ
ラー訂正コードを使用して検出された1つまたは複数の
ビットエラーが単一ビットエラーであるかどうかを判定
し、その1つまたは複数のエラーが単一ビットエラーで
ある場合に1つまたは複数のビットエラーを訂正する。
【0011】本発明は、複数のコンポーネントを含むコ
ンピュータ・システムのデータ・ブロック内のエラーを
検出するための方法をさらに提供するものであり、1つ
のコンポーネントからの多くても1ビットだけが1つの
論理グループに割り当てられるようにデータ・ブロック
の全ビットを複数の論理グループに割り当てる。次に、
単一エラー訂正コードを使用して各データ・グループに
関するチェックビットを生成し、そのデータ・ブロック
に関するグローバル・チェックビットを生成する。さら
に、その単一エラー訂正コードを使用して各論理グルー
プ内の1つまたは複数のビットエラーを検出し、そのグ
ローバル・チェックビットを使用して、そのエラー訂正
コードを使用して検出された1つまたは複数のビットエ
ラーが単一ビットエラーであるかどうかを判定する。最
後に、そのエラーが単一ビットエラーである場合にその
ビットエラーを訂正するステップとを含む。
【0012】本発明は、データ・ブロックを記憶するよ
うに構成された複数のメモリ・デバイスと、その複数の
メモリ・デバイスに結合されたエラー検出回路とを含む
メモリ・システムをさらに提供するものである。そのデ
ータ・ブロックの各ビットは複数のメモリ・デバイスの
うちの1つに割り当てられる。そのデータ・ブロックの
全ビットは複数の論理グループのうちの1つに割り振ら
れ、1つの論理グループは1つのメモリ・デバイスに割
り当てられた多くても1ビットだけを含む。メモリ・デ
バイスにデータ・ブロックを記憶する前に、エラー検出
回路は、そのデータ・ブロックに関する1つのグローバ
ル・チェックビットと、各データ・グループに関する複
数のチェックビットとを生成するように構成される。メ
モリ・デバイスからデータ・ブロックを読み取った後、
エラー検出回路は、その単一エラー訂正コードを使用し
て各データ・グループ内の1つまたは複数のビットエラ
ーを検出し、そのグローバル・チェックビットを使用し
て、そのエラー訂正コードを使用して検出されたビット
エラーが単一ビットエラーであるかどうかを判定し、そ
のエラーが単一ビットエラーである場合にそのビットエ
ラーを訂正するように構成される。
【0013】本発明は、プロセッサと、データを移動す
るためのバスと、データ・ブロックを記憶するように複
数のメモリ・デバイスが構成されたメモリと、その複数
のメモリ・デバイスに結合されたエラー検出回路とを含
むシステムをさらに提供するものである。そのデータ・
ブロックの各ビットは複数のメモリ・デバイスのうちの
1つに割り当てられる。そのデータ・ブロックの全ビッ
トは複数の論理グループのうちの多くても1つに割り振
られ、1つの論理グループは1つのメモリ・デバイスに
割り当てられた多くても1ビットだけを含む。メモリ・
デバイスにデータ・ブロックを記憶する前に、エラー検
出回路は、そのデータ・ブロックに関する1つのグロー
バル・チェックビットと、各データ・グループに関する
複数のチェックビットとを生成するように構成される。
メモリ・デバイスからデータ・ブロックを読み取った
後、エラー検出回路は、その単一エラー訂正コードを使
用して各データ・グループ内の1つまたは複数のビット
エラーを検出し、そのグローバル・チェックビットを使
用して、そのエラー訂正コードを使用して検出されたビ
ットエラーが単一ビットエラーであるかどうかを判定
し、そのエラーが単一ビットエラーである場合にそのビ
ットエラーを訂正するように構成される。
【0014】
【発明の実施の形態】本発明の他の目的および利点は、
以下の詳細な説明を読み、添付図面を参照すると明らか
になるだろう。
【0015】本発明は様々な変更および代替形式が可能
であるが、その特定の実施の形態を添付図面に例として
示し、以下に詳述する。しかし、添付図面およびその詳
細説明は開示された特定の形式に本発明を限定するもの
ではなく、その意図は、請求の範囲によって定義された
本発明の精神および範囲に該当するすべての変更態様、
均等物、および代替態様を含むことであることを理解さ
れたい。
【0016】次に図1に移行すると、1つのデータ・ブ
ロックのビットを複数の論理グループへ割振る形態が示
されている。図示の実施の形態では、メモリ・システム
はメモリ・デバイス102A〜102Mを含む。メモリ
・デバイスの数は、任意の数を表すことができる変数で
あることに留意されたい。特定の参照番号とその後に続
く英字によって本明細書に示す要素は、参照番号のみに
よってまとめて示すことができるものである。たとえ
ば、メモリ・デバイス102A〜102Mは、メモリ・
デバイス102としてまとめて示すことができる。各メ
モリ・デバイスは1つのデータ・ブロックの複数のビッ
トを記憶する。たとえば、メモリ・デバイス102Aは
ビットA0〜AXを記憶し、デバイス102Bはデータ
・ビットB0〜BXを記憶し、以下同様である。1つの
データ・ブロックのビットはデータ・ビットまたはチェ
ックビットであることに留意されたい。特定のメモリ・
デバイスに記憶されたビットは、そのデバイスに「対応
する」ものといわれる。同様に、特定のピンに転送され
るビットはそのピンに「対応する」。概して、1つのビ
ットはコンピュータ・システム内の1つまたは複数のコ
ンポーネントに対応することができる。概して、コンポ
ーネントとは、コンピュータ・システムのデバイスおよ
びその他の部分である。たとえば、コンポーネントとし
ては、メモリ・デバイス、ピン、データ経路、接続部な
どが考えられる。
【0017】メモリ・システム内のビットは複数の論理
グループに割り振られる。各論理グループはデータ・ビ
ットとチェックビットを記憶する。チェックビットの数
は、1つの論理グループ内のデータ・ビットの数と、所
望のレベルのエラー訂正および/または訂正能力によっ
て決まる。チェックビットは、メモリ・デバイス102
にデータを記憶する前に生成される。データがメモリ・
デバイス102から読み取られた後、チェックビットを
使用して、いずれかのデータ・ビットの状態が変化した
かどうかを判定する。データ・ビットの状態変化の検出
はエラー検出という。何らかのコードによって、エラー
を検出するだけでなく、どのデータ・ビットが誤ってい
るかを識別する能力が与えられる。誤っているデータ・
ビットが識別された場合、そのエラーは、誤っているデ
ータ・ビットを反転することによって訂正することがで
きる。一般に使用するコードは、単一エラー訂正(SE
C)ハミング符号である。このコードにより、1つの論
理グループ内のいかなるビットエラーでも検出し、訂正
することができる。単一エラー訂正ハミング符号を実現
する実施の形態では、複数ビットのエラーが未検出の状
態になる可能性がある。したがって、グループあたりの
ビットエラーの数を制限することが望ましい。
【0018】1つのコンポーネント障害が1つの論理グ
ループに複数ビットのエラーをもたらすことを防止する
ため、1つのコンポーネントに対応する1ビットだけが
1つの論理グループに割り振られるように全ビットが複
数の論理グループに割り振られる。たとえば、メモリ・
デバイス102Aに記憶された1ビットだけが1つの論
理グループに割り振られ、特定のピン上で転送される1
ビットだけが同じ論理グループに割り振られる。
【0019】図示の実施の形態では、論理グループ0は
データ・ビットA0、B0、C0、D0、・・・M0を
含む。換言すれば、各メモリ・デバイス102の第1の
データ・ビットは論理グループ0に割り振られる。同様
に、各メモリ・デバイス102の第2のデータ・ビット
は論理グループ1に割り振られ、以下同様である。この
ようにして、メモリ・デバイス障害によって、各論理グ
ループに多くても1つのエラーがもたらされるだけであ
る。たとえば、メモリ・デバイス102Aの各データ・
ビットが誤っている場合、各論理グループ内の第1のデ
ータ・ビットが誤っている。システム内に他のエラーが
一切存在しないと想定すると、チェックビットを使用し
て、各論理グループ内のビット障害を検出および/また
は訂正することができる。図示の実施の形態では、論理
グループあたりのビットの数は、メモリ・デバイスの数
によって示される。さらに、メモリ・デバイスの数は、
データ・ビットとチェックビットの数によって示され、
論理グループの数は、1つのメモリ・デバイスによって
記憶される1つのデータ・ブロックのビットの数によっ
て示される。たとえば、1つの論理グループに64個の
データ・ビットが含まれる場合、単一エラー訂正能力に
は7つのチェックビットが必要である。したがって、メ
モリ・システムは71個のメモリ・デバイスを実装し、
各論理グループは71個のビットを含む。一実施の形態
では、1つのデータ・ブロックは、それぞれが64個の
データ・ビットと7つのチェックビットからなる8つの
論理グループに割り振られる512個のデータ・ビット
を含む。論理グループあたり7つのチェックビットの場
合、この構成は合計56個のチェックビットを必要とす
る。
【0020】次に図2に移行すると、本発明の一実施の
形態による複数の論理グループへのビットの最適化割振
りが示されている。簡略化のため、図1に示すものと同
一または実質的に同様のコンポーネントには同じ参照番
号がつけられている。図示の実施の形態では、1つのデ
ータ・ブロックの全ビットが複数のメモリ・デバイス1
02A〜102Mに記憶される。また、これらのビット
は、1つのコンポーネントに対応する1ビットが任意の
1つの論理グループに割り当てられるように、論理グル
ープにも割り当てられる。前述のように、1つのコンポ
ーネントからの各論理グループ内のビットの数を制限す
ることにより、単一エラー訂正コードを使用して、故障
コンポーネントによって引き起こされたエラーを訂正す
ることができる。
【0021】図示の実施の形態では、論理グループあた
りのビットの数および論理グループの数はメモリ・デバ
イスの数およびサイズによって指示されない。対照的
に、論理グループあたりのビットの数は、チェックビッ
トの数を低減するように選択される。特定の一実施の形
態では、論理グループあたりのビットの数は、データ・
ビットに応じてチェックビットの数を最適化するように
選択される。図示の実施の形態では、論理グループの数
は、論理グループあたりのデータ・ビットの数を低減す
るように増加されている。また、図示の実施の形態で
は、論理グループの数はX+1からX+2に増加されて
いる。ただし、この構成は例証のみを目的としている。
チェックビットの数を低減する他の構成が企図されるこ
とに留意されたい。図示の実施の形態では、論理グルー
プ0はメモリ・デバイス102B〜102Mからのビッ
トを含む。論理グループ1はメモリ・デバイス102
A、102C〜102Mからのビットを含む。論理グル
ープ2はメモリ・デバイス102A、102B、102
D〜102Mからのビットを含む。論理グループXは論
理デバイス102A〜102Kおよび102Mからのビ
ットを含む。論理グループX+1は論理デバイス102
A〜102Lからのビットを含む。
【0022】論理グループあたりのビットの数は、チェ
ックビットに応じてデータ・ビットの数を最適化するよ
うに低減されている。512ビットのデータ・ブロック
が論理グループに割り当てられると想定する。これらの
ビットは、8つの論理グループがそれぞれ57個のデー
タ・ビットを有し、9番目の論理グループが56個のデ
ータ・ビットを有するように割り振ることができる。単
一エラー訂正ハミング符号は、57個またはそれ以下の
データ・ビットについて6つのチェックビットを必要と
する。したがって、そのデータ・ブロックには、合計5
4個のチェックビット(それぞれ6つのチェックビット
からなる9つのグループ)が必要である。対照的に、図
1のビット割振りの場合、56個のチェックビット(そ
れぞれ7つのチェックビットからなる8つのグループ)
が必要である。したがって、図2に示す最適化区分によ
り、チェックビットの数が2だけ低減される。この場合
も、上記の例は例証のみを目的とすることに留意された
い。チェックビットの数を低減するようにコンポーネン
トのデータ・ビットが割り振られる他の実施の形態も企
図されている。
【0023】次に図3に移行すると、本発明の一実施の
形態によりコンポーネント障害を訂正するためにデータ
・ビットを複数の論理グループに区分するための方法の
流れ図が示されている。ステップ302では、各論理グ
ループが1つのコンポーネントに対応する1ビットを含
むように、1つのデータ・ブロックの複数のデータ・ビ
ットおよびチェックビットが論理グループに割り当てら
れる。このようにして、コンポーネント障害は多くても
1ビットのエラーを論理グループに持ち込むだけとな
る。1つの論理グループに割り当てられるデータ・ビッ
トの数は、チェックビットに応じてデータ・ビットの数
を最大化するように選択される。ステップ304では、
各論理グループについてエラー訂正が実行される。ステ
ップ304については、図4を参照して以下に詳述す
る。
【0024】次に図4に移行すると、本発明の一実施の
形態により1つのグループのデータ・ビットについてエ
ラー訂正を実行するための方法の流れ図が示されてい
る。ステップ402では、1つの論理グループについて
1つまたは複数のチェックビットが生成される。一般的
に、論理グループとは、エラー検出またはエラー訂正す
べきデータ・ビットと、そのデータ・ビット用のチェッ
クビットとの集合である。ステップ404では、1つの
論理グループのチェックビットとデータ・ビットがメモ
リ・デバイスに記憶される。ステップ406では、デー
タ・ビットとチェックビットが記憶デバイスから読み取
られる。ステップ408では、チェックビットによりデ
ータ・ビットの正確さが検証される。一実施の形態で
は、データ・ビットの正確さの検証は、チェックビット
の再生成を含む。再生成されたチェックビットの状態が
記憶されたチェックビットと同じである場合、そのコー
ドがカバーするエラーのクラス内のエラーは一切発生し
ていない。換言すれば、エラーコードが各論理グループ
内の2つのエラーを検出する能力を有する場合、再生成
されたチェックビットが記憶されたチェックビットと同
じであれば、エラーが一切発生していないかまたは3つ
以上のエラーが発生している。特定の一実施の形態で
は、エラーコードはハミング符号である。この実施の形
態では、データ・ビットの正確さの検証は、各チェック
ビットごとにシンドローム・ビットを生成することを含
む。一般的に、シンドローム・ビットとは、チェックビ
ットを生成するために使用するデータ・ビットと、その
チェックビット自体からなるパリティである。偶数パリ
ティを使用する一実施の形態では、対応するシンドロー
ム・ビットがアサートされていない場合、チェックビッ
トの状態は変化していない。特定の一実施の形態では、
1つまたは複数のシンドローム・ビットがアサートされ
た場合、アサートされたシンドローム・ビットを使用し
て、どのデータ・ビットが誤っているかを検出すること
ができる。誤っているデータ・ビットは反転によって訂
正することができる。
【0025】次に図5に移行すると、本発明の一実施の
形態により単一エラー訂正能力と二重エラー検出能力と
による複数の論理グループへの1つのデータ・ブロック
のビットの割振りを示す図が示されている。図示の実施
の形態では、各論理グループに追加のチェックビットが
追加されている。この追加のチェックビットは、論理グ
ループ内の二重ビットエラーを検出するために単一エラ
ー訂正コードの能力を拡張するものである。この追加の
チェックビットを記憶するために追加のメモリ・デバイ
ス502が追加されている。
【0026】通常、ハミング符号などの単一エラー訂正
コードでは、複数ビットエラーによって1つまたは複数
のシンドロームが非ゼロになる場合がある。しかし、複
数ビットエラーは、異なるビット位置に単一ビットエラ
ーとして間違って現れる場合もある。たとえば、6つの
チェックビットを備えた単一エラー訂正ハミング符号で
は、1ビットのエラーによって2つのチェックビットの
状態が変化する場合がある。また、もう1ビットのエラ
ーによって他の2つのチェックビットの状態が変化する
場合がある。したがって、このような2つのエラーが1
つの論理グループ内で発生する場合、4つのチェックビ
ットの状態が変化することになる。不幸なことに、さら
に他のビット位置の1ビットエラーによって、上記と同
じ4つのチェックビットの状態が変化する場合がある。
このエラー訂正手順では、状態が変化した4つのチェッ
クビットのすべてに影響するビットを想定し、そのデー
タ・ビットを反転することができる。チェックビットの
変化が実際に2つのビットエラーによって引き起こされ
た場合、このエラー訂正手順では誤っていないビットを
反転してしまう。したがって、このエラー訂正手順はさ
らにエラーを発生し、そのデータにはエラーがないと間
違って示す可能性がある。
【0027】拡張パリティ・ビットの追加によってこの
問題が解決される。データがメモリから読み取られる
と、チェックビットおよび拡張パリティ・ビットが再生
成され、元のチェックビットおよび拡張パリティ・ビッ
トと比較される。再生成されたチェックビットが元のチ
ェックビットとは異なる場合、拡張パリティ・ビットを
使用して、1つまたは2つのビットエラーが発生したか
どうかを判定することができる。1つのエラーが発生し
た場合、再生成された拡張パリティ・ビットは元の拡張
パリティ・ビットとは異なることになる。2つのエラー
が発生した場合、再生成された拡張パリティ・ビットは
元の拡張パリティ・ビットと同じになる。1つまたは複
数のチェックビットの状態が変化し、再生成された拡張
パリティ・ビットが異なる場合、単一ビットエラーが発
生しており、それが訂正される。あるいは、1つまたは
複数のチェックビットの状態が変化し、拡張パリティ・
ビットが同じである場合、2つのビットエラーが検出さ
れ、いかなる訂正も実行されない。後者の場合、コンピ
ュータ・システム内のメモリ制御装置または他のコンポ
ーネントに対し、訂正不能なエラーが報告される場合が
ある。ただし、1つの論理グループ内の3つ以上のビッ
トエラーはこのエラー訂正コードによって対処されるエ
ラーのクラス内のものではないことに留意されたい。し
たがって、3つまたはそれ以上のエラーが未検出の状態
になるか、またはこのエラー訂正コードがそのエラーを
単一ビットエラーとして解釈し、誤っていなかったデー
タ・ビットを反転する可能性がある。
【0028】次に図6に移行すると、本発明の一実施の
形態により単一エラー訂正コードのエラー検出能力を拡
張するための改良された方法が示されている。図示の実
施の形態では、各論理グループの拡張パリティ・ビット
が1つのグローバル・パリティ・ビットまたはグローバ
ル・チェックビットによって置き換えられ、それによ
り、X−1個のビットが除去される(この場合、Xは論
理グループの数である)。グローバル・パリティ・ビッ
トは、特別な記憶場所またはメモリ・デバイス102A
などのメモリ・デバイスの1つに記憶することができ
る。通常、これらのグループは、そのグループの単一エ
ラー訂正コードのエラー検出能力を拡張するためにパリ
ティ・ビットを共用する。図示の実施の形態では、グロ
ーバル・チェックビットは偶数パリティ・ビットであ
り、論理グループ0〜論理グループXをカバーする。メ
モリ・デバイスにデータを記憶する前に、各論理グルー
プごとにチェックビットが生成され、そのチェックビッ
トを含むすべての論理グループについてグローバル・パ
リティ・ビットが生成される。グローバル・パリティ・
ビットの生成については、図10を参照して以下に詳述
する。ただし、循環条件に対処しなければならないこと
に留意されたい。すなわち、グローバル・パリティ・ビ
ットを含む論理グループ内のチェックビットはグローバ
ル・パリティ・ビットの状態によって決まる。同様に、
グローバル・パリティ・ビットはチェックビットの状態
によって決まる。
【0029】メモリ・デバイスからデータ・ビットおよ
びチェックビットを読み取ると、各論理グループごとの
シンドロームが生成され、グローバル・シンドローム・
ビット(Q)が生成される。一実施の形態では、1つの
シンドロームは複数のシンドローム・ビットを含む。非
ゼロのシンドローム(すなわち、1つまたは複数のシン
ドローム・ビットがアサートされる)はビットエラーを
意味する。ゼロのシンドローム(すなわち、すべてのシ
ンドローム・ビットがアサートされていない)はビット
エラーなしを意味する。Qが偶数(すなわち、論理0)
である場合、偶数のエラーが発生している。ただし、ゼ
ロのエラーは偶数のエラーであることに留意されたい。
さらに、2つまたはそれ以下の任意のビットおよび単一
メモリ・デバイス障害エラーはこのコードがカバーする
エラーのクラスであることに留意されたい。したがっ
て、すべてが同じメモリ・デバイスのものではない3つ
またはそれ以上のビットからなるエラーについては以下
の説明で検討しない。Qが偶数であり、すべてのシンド
ロームがゼロである場合、エラーは一切発生しておら
ず、データは訂正なしで受け入れられる。Qが偶数であ
り、偶数のシンドロームが非ゼロである場合、偶数のエ
ラーが別々の論理グループで発生している。したがっ
て、どの論理グループにも複数ビットのエラーが発生し
ていない。非ゼロのシンドロームはそれぞれの論理グル
ープ内で単一エラー訂正を実行するために使用され、訂
正されたデータがコンピュータ・システムに与えられ
る。Qが偶数であり、奇数のシンドロームが非ゼロであ
る場合、1つの論理グループ内で複数ビットのエラーが
発生しており、訂正不能なエラーが報告される。
【0030】Qが奇数である場合、データ・ブロック内
で奇数のエラーが発生している。Qが奇数であり、偶数
のシンドロームが非ゼロである場合、1つの論理グルー
プ内で複数ビットのエラーが発生しており、訂正不能な
エラーが報告される。Qが奇数であり、1つのシンドロ
ームが非ゼロである場合、1ビットのエラーが発生して
いる。このシンドロームはそれに対応する論理グループ
についてエラー訂正を実行するために使用され、訂正さ
れたデータがシステムに提供される。Qが奇数であり、
奇数のシンドロームが非ゼロである場合、奇数の単一ビ
ットエラーが別々の論理グループで発生している。した
がって、どの論理グループにも複数ビットのエラーが発
生していない。非ゼロのシンドロームは対応する論理グ
ループによって単一エラー訂正を実行するために使用さ
れる。一般的には、1つの論理グループ内の単一ビット
エラーは検出し訂正することができる。上記のように、
1つのデータ・ブロックに単一ビットを追加することに
より、そのデータ・ブロック内の2つのビットエラーを
検出するように単一エラー訂正コードのエラー検出能力
を増すことができる。
【0031】次に図7に移行すると、本発明の一実施の
形態による複数の論理グループへのデータ・ビットの最
適化区分と、エラー訂正コードのエラー検出能力の改良
された拡張が示されている。図示の実施の形態では、図
2に示すメモリ・システムのエラー訂正コードのエラー
検出能力が、同様にして図6を参照して前述したものに
適用されている。データ・ビットおよびチェックビット
は、チェックビットに応じてデータ・ビットの数を最適
化するように論理グループに割り振られる。さらに、各
論理グループのエラー検出コードのエラー検出能力は、
データ・ブロック全体について1つのグローバル・パリ
ティ・ビットを追加することによって拡張される。
【0032】図2を参照して前述したように、512個
のデータ・ビットからなるデータ・ブロックに必要なチ
ェックビットの数は、論理グループにビットを最適に割
り振ることにより、2ビットだけ低減することができ
る。このデータ・ブロックに必要なチェックビットの数
は56から54に低減することができる。さらに、エラ
ー検出能力を拡張するために必要なチェックビットの数
は、図6を参照して前述した技法により、8ビット(8
つの論理グループのそれぞれに1ビットずつ)から1ビ
ットに低減することができる。したがって、図示の実施
の形態は、典型的な実施態様よりチェックビットが9つ
少なく、512個のデータ・ビットからなるデータ・ブ
ロックについて単一エラー訂正および二重エラー検出を
行うことができる。
【0033】次に図8に移行すると、本発明の一実施の
形態により単一エラー訂正コードのエラー検出能力を増
すための方法の流れ図が示されている。ステップ802
では、1つのデータ・ブロックについて1つのグローバ
ル・パリティ・ビットが生成される。このデータ・ブロ
ックは複数の論理データ・グループを含む。各論理グル
ープには単一エラー訂正コードが適用される。グローバ
ル・パリティ・ビットは、各論理グループのデータ・ビ
ットおよびチェックビットを含むデータ・ブロック全体
のパリティである。ステップ804では、各論理グルー
プの単一エラー訂正コードを使用して、その論理グルー
プ内の1つまたは複数のビットエラーが検出される。ス
テップ806では、パリティ・ビットを使用して1つま
たは複数のビットエラーが検出されるかどうかが判定さ
れる。ビットエラーを含む論理グループの数とグローバ
ル・パリティ・ビットによって検出されたビットエラー
の数に基づいて、1つの論理グループ内で複数ビットエ
ラーが発生しているかどうかを判定することができる。
ステップ808では、各論理グループ内で単一ビットエ
ラーだけが検出された場合、エラーが検出された論理グ
ループに関するエラー訂正コードを使用して、ビットエ
ラーを訂正する。あるいは、1つの論理グループ内で複
数ビットエラーが検出された場合、訂正不能なエラーが
システムに報告される。
【0034】次に図9に移行すると、本発明の一実施の
形態により論理グループにビットを割り振り、その論理
グループのエラー検出能力を増すための最適化方法を示
す流れ図が示されている。ステップ902では、1つの
コンポーネントに対応して多くても1ビットが任意の論
理グループに割り当てられるように、全ビットが論理グ
ループに割り当てられる。一実施の形態では、1つの論
理グループ内のビットの数は、チェックビットに応じて
データ・ビットの数を最適化するように選択される。ス
テップ904では、単一エラー訂正コードを使用して、
各論理グループごとにチェックビットが生成される。ス
テップ906では、そのデータ・ブロックについてグロ
ーバル・パリティ・ビットが生成される。ステップ90
8では、論理グループの単一エラー訂正コードを使用し
て、各論理グループ内の1つまたは複数のビットエラー
が検出される。ステップ910では、パリティ・ビット
を使用して、各論理グループ内で検出されたエラーが1
つの論理グループ内の複数ビットのエラーを表すかどう
かを判定する。ステップ912では、1つの論理グルー
プ内の単一ビットエラーだけが検出された場合、単一エ
ラー訂正コードを使用してビットエラーを訂正し、訂正
されたデータがシステムに提供される。あるいは、1つ
の論理グループ内の複数ビットエラーが検出された場
合、訂正不能なエラー信号がシステムに提供される可能
性がある。
【0035】次に図10に移行すると、本発明の一実施
の形態により論理グループへのデータ・ビットの最適化
区分を取り入れ、強化したエラー検出能力を使用するコ
ンピュータ・メモリ・システムの特定の実施の形態が示
されている。メモリ・システム1000は4つのデータ
・チャネル1002A〜1002Dを含む。各データ・
チャネルは複数のメモリ・デバイスを含む。たとえば、
データ・チャネル0はメモリ・デバイス1004A〜1
004Pを含む。データは18本のピンで各チャネルか
ら出力される。たとえば、データ・チャネル1002A
はピンP0〜P17にデータを出力する。データは、5
76ビットのブロック単位でメモリ・デバイスから出力
される。したがって、各データ・チャネルは144ビッ
トを出力する。1つのデータ・チャネルの各メモリ・デ
バイスは、読取り動作あたり9ビットのデータを出力す
る。そのデータは、交換網を介して18本のピンに経路
指定される。たとえば、データ・チャネル1002A内
では、16個のデバイスの出力が交換網1006Aを介
して18本の出力ピン(P0〜P17)に結合される。
576ビットは、1サイクルあたり72ビットの8つの
サイクルで出力される。以下に詳述するように、576
ビットは517ビットのデータと59個のチェックビッ
トとを含む。517ビットのデータは、512ビットの
実データと5ビットのメタデータにさらに分解すること
ができる。
【0036】データ・チャネル1002A〜1002D
の出力はエラー訂正回路1008に結合される。エラー
訂正回路1008は、すべての1ビットのエラーを訂正
し、すべての2ビットのエラーを検出するエラー訂正コ
ードを生成して検証するように構成されている。このエ
ラー訂正コードは、さらにメモリ・デバイス障害につい
ても訂正する。
【0037】単一コンポーネント障害によって1つの論
理グループ内に複数のビットエラーが発生するのを防止
するため、1つのコンポーネントに対応して多くても1
ビットが1つの論理グループに割り当てられるように、
全ビットが論理グループに割り振られる。たとえば、1
つのビットが1つの論理グループに割り当てられると、
同じメモリ・デバイスに記憶された他のビットはいずれ
もそのグループに割り振られず、同じピン上で転送され
る他のデータ・ビットはいずれもその論理グループに割
り当てられない。このようにして、メモリ・デバイス障
害またはピン障害などのコンポーネント障害によって、
多くても1ビットのエラーが論理グループに持ち込まれ
るにすぎなくなる。
【0038】各論理グループに割り当てられるビットの
数は、チェックビットに応じてデータ・ビットの数を最
適化するように選択することができる。図示の実施の形
態では、データ・ビットが10個の論理グループ(G
[0]〜G[9])に割り当てられる。論理グループG
[0]〜G[8]には、それぞれ63ビットが割り当て
られる。この63ビットは、57個のデータ・ビットと
6つのチェックビットとを含む。この割振りは、単一エ
ラー訂正ハミング符号の場合のチェックビットへのデー
タ・ビットの最適割振りである。換言すれば、57個の
データ・ビットは、6つのチェックビットによって検査
可能なデータ・ビットの最大数である。64ビットを備
えた論理グループでは、単一エラー訂正能力のために7
つのチェックビットを必要とするだろう。前述のよう
に、チェックビットに応じてデータ・ビットの数を最適
化することにより、チェックビットの数を低減すること
ができる。論理グループが同じ数のビットを含むように
するために必要な要件はまったくない。図示の実施の形
態では、論理グループG[9]は9ビットを含む。この
9ビットは、4つのデータ・ビットと、4つのチェック
ビットと、1つのグローバル・パリティ(GP)ビット
とを含む。
【0039】以下の表1は、考えられる論理グループへ
のビット割当ての1つを示している。表内の各項目はx
−y−zの形になっており、xはデータ・チャネル番号
(0・・・3)であり、yはそのチャネルのチップ番号
(0・・・15)であり、zはそのチャネルのピン番号
(0・・・17)である。各列は1つの論理グループに
割り当てられるビットを表している。たとえば、第1の
列は論理グループ0(G[0])に割り当てられるビッ
トを示し、第2の列は論理グループ1(G[1])に割
り当てられるビットを示し、以下同様である。各行は1
つのビットが割り当てられるビット位置を示している。
たとえば、論理グループ0のビット3(G[0]
[3])は、チャネル0のデバイス3に記憶され、チャ
ネル0のピン3で転送される。同様に、論理グループ7
のビット34(G[7][34])は、データ・チャネ
ル2のメモリ・デバイス3に記憶され、データ・チャネ
ル2のピン1で転送される。表1から明らかなように、
1つのメモリ・デバイスに記憶された複数のビットが1
つの論理グループに割り当てられず、1つのピンで転送
される1ビット以外はいずれも1つの論理グループに割
り当てられない。ただし、1つのメモリ・デバイスから
の1ビット以外はいずれも特定のピンで転送されないこ
とに留意されたい。
【0040】
【表1】
【表2】
【0041】以下の表2は、どのビットが各チェックビ
ットに対応し、どのビットが論理グループG[0]〜G
[8]内のグローバル・パリティ・ビットに貢献するか
を識別するものである。これらの各論理グループのチェ
ックビットは同じように計算される。換言すれば、最初
の9つの論理グループのそれぞれにおけるそれぞれのチ
ェックビットに対し、同じビットが貢献する。前述のよ
うに、最初の9つの論理グループのそれぞれは6つのチ
ェックビット(C[i][0]〜C[i][5])を含
む。各列の見出しは論理グループ(G[i])内の1ビ
ットを識別するものである。ビット位置の下には、その
位置を占めるビットの名前が示されている。たとえば、
ビット位置0(G[i][0])はC[i][0]によ
って占められている。同様に、ビット位置4(G[i]
[4])はD[i][1]によって占められている。各
行はチェックビットに貢献するビットを識別するもので
ある。たとえば、チェックビットC[i][5]に貢献
する各ビットは、第1の行内のそのビット位置に対応す
るビット位置に「1」が入っている。特に、C[i]
[5]はG[i][32:62]のパリティ(または、
同様に、D[i][26:56]のパリティ)である。
より具体的な例では、C[3][5]はG[3][3
2:62]のパリティである。どのビットが各チェック
ビットに貢献するかという選択は、ハミング符号の従来
の応用例である。
【0042】
【表3】
【0043】表2の最後の行は、論理グループG[0]
〜G[8]からのどのビットがグローバル・パリティ・
ビットに貢献するかを識別するものである。ただし、グ
ローバル・パリティ・ビットは論理的にはそのデータ・
ブロック内の全ビットのパリティであることに留意され
たい。しかし、グローバル・パリティ・ビットを生成す
るために必要な回路は、各チェックビットをそれがカバ
ーするデータ・ビットで論理的に置き換え、偶数回パリ
ティ・ビットに貢献するビットを除去することによって
低減することができる。1つのビットが奇数のチェック
ビットに影響する場合、そのビットは偶数回パリティ・
ビットに貢献するので、そのデータ・ビットの状態を変
更してもグローバル・パリティ・ビットをもたらさな
い。たとえば、D[i][3]はチェックビットC
[i][0:2]に影響する。したがって、D[i]
[3]の状態が変化した場合、それと3つのチェックビ
ットの状態が変化することになる。状態の変化はグロー
バル・パリティ内の偶数のビットに影響し、それはその
ビットの状態を変更してもグローバル・パリティ・ビッ
トをもたらさないことを意味する。
【0044】表3は、論理グループG[9]内のどのビ
ットがその論理グループのチェックビットに貢献するか
を識別するものである。表3の最後の行は、論理グルー
プG[9]のどのビットがグローバル・パリティ・ビッ
トに貢献するかを識別するものである。上記のように、
グローバル・パリティ・ビットは論理的にはそのデータ
・ブロック内のすべてのデータ・ビットからなる。しか
し、偶数回パリティ・ビットに貢献するビットを除去す
ることによって、回路を縮小させることができる。
【0045】
【表4】
【0046】ただし、グローバル・パリティ・ビットを
計算する際に循環性が存在する可能性があることに留意
されたい。すなわち、グローバル・パリティ・ビットが
チェックビットを与え、次にそのチェックビットがグロ
ーバル・パリティ・ビットに貢献する。この循環性は、
グローバル・パリティ・ビットを偶数のチェックビット
に貢献させることによって除去することができる。チェ
ックビットは、想定したグローバル・パリティ・ビット
に基づいて生成される。次にグローバル・パリティ・ビ
ットは、このチェックビットに基づいて生成される。グ
ローバル・パリティ・ビットによって与えられたチェッ
クビットは、グローバル・パリティ・ビットに基づいて
再生成される。グローバル・パリティ・ビットは偶数の
チェックビットを与えるので、チェックビットが再生成
されたときにグローバル・パリティ・ビットに対するチ
ェックビットの貢献は変更されない。また、表2および
表3に示す簡略化によって循環性が除去される。この簡
略化では、いずれのチェックビットもグローバル・パリ
ティ・ビットに貢献しない。
【0047】一般的には、エラー訂正回路1008は5
17個のデータ・ビットを受け取る。エラー訂正回路1
008は、上記の表2および表3によりグローバル・パ
リティ・ビットを含む59個のチェックビットを生成す
る。エラー訂正回路1008は517個のデータ・ビッ
トと59個のチェックビットをデータ・チャネル100
2に提供する。このデータ・ビットとチェックビット
は、読取り要求を受け取るまで記憶される。読取り要求
を受け取ると、データはデータ・チャネル1002から
読み取られ、データ・ビットとチェックビットはエラー
訂正回路1008に提供される。エラー訂正回路100
8は、チェックビットに基づいてデータの正確さを検証
する。図示の実施の形態では、単一エラーまたはコンポ
ーネント障害が検出された場合、エラーが訂正され、5
17個のデータ・ビットがシステムに提供される。ある
いは、訂正不能な複数エラーが検出された場合、エラー
訂正回路1008は訂正不能なエラー信号をシステムに
出力する。システムは、訂正不能なエラー信号をユーザ
に出力するか、またはメモリからデータを再び読み取ろ
うと試みることができる。
【0048】以下の表4および表5は、各論理グループ
ごとにどのビットがシンドローム・ビットに貢献するか
を示している。通常、シンドローム・ビットは、チェッ
クビットに貢献するビットとチェックビット自体とのパ
リティである。たとえば、シンドローム・ビットS
[i][5]はD[i][26:56]とC[i]
[5]とのパリティである。表4は、論理グループG
[0]〜G[8]に関するシンドローム・ビットに貢献
するビットを示している。表5は、論理グループG
[9]のシンドローム・ビットに貢献するビットを示し
ている。このシンドロームに加え、エラー訂正回路10
08が受け取った576個のすべてのビットのパリティ
を生成することにより、Qが計算される。
【0049】
【表5】
【0050】
【表6】
【0051】一般的に、1つの論理グループ内でエラー
が一切検出されない場合、各論理グループ内のシンドロ
ーム・ビットはいずれもアサートされない。1つのエラ
ーが発生した場合、そのデータ・ビットが貢献している
シンドローム・ビットがアサートされる。たとえば、D
[i][3]の状態が変化した場合、シンドロームS
[i][2:0]がアサートされる。したがって、1つ
の論理グループのシンドローム・ビットを使用して、ど
のデータ・ビットが誤っているかを検出することができ
る。シンドロームS[i][5:0]が「00011
1」であると想定する。1つのデータ・ビットが貢献す
るシンドロームのセットは固有のものなので、1つのエ
ラーだけが発生した場合、このシンドロームは、データ
・ビットD[i][3]が誤っていることを示す。しか
し、1つの論理グループ内で2つのエラーが発生した場
合、このシンドロームは誤っているビットを不正確に示
す可能性がある。たとえば、C[i][0]とD[i]
[2]の状態が変化した場合、同じシンドローム(「0
00111」)が得られるだろう。図6および図7を参
照して前述したように、シンドロームとともにグローバ
ル・パリティ・ビットを使用して、二重ビットエラーを
検出することができる。
【0052】次に図11に移行すると、複数の単一エラ
ー訂正コード・ワードにわたってパリティを共用するこ
とを使用するシステム1100が示されている。システ
ム1100は、データを記憶するためのメモリと、その
上でデータを移動するバスと、データの移動を制御する
ためのプロセッサまたは制御装置とを使用可能なコンピ
ュータ・システム、産業システム、その他のシステムに
することができる。簡略化のため、システム1100
は、プロセッサ1110と、キャッシュ1120と、メ
モリ1130と、バス1140と、複数の周辺装置11
50〜1152とを含む。ただし、コンピュータ・シス
テム1100は一例としてのみ示し、他の多くの構成が
企図されることに留意されたい。図示の通りならびに簡
略化のため、メモリ1130およびキャッシュ1120
には、システム1100に記憶されたデータに関する単
一エラー訂正および二重エラー検出を容易にするために
メモリ・システム1000が含まれている。ただし、キ
ャッシュ1120はプロセッサ1110内に含めること
ができることにも留意されたい。システム1100に含
めることができる配置および追加のコンポーネントにつ
いては、他にも多くの構成が可能である。たとえば、バ
ス1140は、簡略化のため、システム・バスとして示
されているが、コンピュータ・システム1100は他の
バスを含むことができる。さらに、メモリ・システム1
000の様々な実施の形態は、システム1100内に含
めることができる任意のコンポーネント、たとえば、デ
ータの移動または記憶が必要なキャッシュまたはバス内
で適応させることができる。
【0053】特定の実施の形態に関連して本発明を説明
してきたが、この実施の形態は例証であり、本発明の範
囲はこのように限定されないことを理解されたい。前述
の実施の形態に対するどのような変形、変更、追加、改
良も可能である。このような変形、変更、追加、改良
は、請求の範囲で詳述した本発明の範囲内に該当するも
のである。
【図面の簡単な説明】
【図1】複数の論理グループへの1つのデータ・ブロッ
クのビットの割振りを示す図である。
【図2】本発明の一実施の形態による複数の論理グルー
プへの1つのデータ・ブロックのビットの最適化割振り
を示す図である。
【図3】本発明の一実施の形態によりコンポーネント障
害を訂正するためにデータ・ビットを区分するための方
法の流れ図である。
【図4】本発明の一実施の形態により論理グループにつ
いてエラー検出を実行するための方法の流れ図である。
【図5】本発明の一実施の形態により拡張ハミング符号
を実現する複数の論理グループへの1つのデータ・ブロ
ックのビットの割振りを示す図である。
【図6】本発明の一実施の形態によりパリティ・ビット
を共用する複数の論理グループへの1つのデータ・ブロ
ックのビットの割振りを示す図である。
【図7】本発明の一実施の形態によりパリティ・ビット
を共用する複数の論理グループへの1つのデータ・ブロ
ックのビットの最適化割振りを示す図である。
【図8】本発明の一実施の形態によりエラー訂正コード
のエラー検出能力を拡張するための方法の流れ図であ
る。
【図9】本発明の一実施の形態によりエラー訂正コード
のエラー検出能力が増した複数の論理グループにデータ
・ビットを区分するための方法の流れ図である。
【図10】本発明の1つの特定の実施態様により1つの
データ・ブロックのビットを複数の論理グループに割り
振るコンピュータ・メモリ・システムのブロック図であ
る。
【図11】本発明の一実施の形態により1つのデータ・
ブロックのビットを複数の論理グループに割り振るコン
ピュータ・システムのブロック図である。
【符号の説明】
1000 エラー訂正ユニット 1100 システム 1110 プロセッサ 1120 キャッシュ 1130 メモリ 1140 バス 1150 周辺装置 1152 周辺装置
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ロバート・サイファ アメリカ合衆国・95030・カリフォルニア 州・ロス ガトス・マッソル アヴェニ ュ・347・アパートメント 702

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 データ・ブロックを記憶するように構成
    された複数のメモリ・デバイスであって、前記データ・
    ブロックが複数のデータ・ビットと複数のチェックビッ
    トとを含み、前記データ・ブロックの各ビットが前記複
    数のメモリ・デバイスのうちの1つに割り当てられ、前
    記データ・ブロックの前記ビットが複数の論理グループ
    に割り振られ、前記複数の論理グループのそれぞれは、
    前記メモリ・デバイスのうちの1つに割り当てられてい
    る多くても1ビットだけを含む複数のメモリ・デバイス
    と、 前記複数のメモリ・デバイスに結合されたエラー検出回
    路であって、前記エラー検出回路は、前記複数のメモリ
    ・デバイスに前記データ・ブロックを記憶する前に、前
    記データ・ブロックに関する1つのグローバル・チェッ
    クビットと、前記複数の論理グループに関する複数のチ
    ェックビットとを生成するように構成され、前記複数の
    チェックビットの1つが前記複数の論理グループのそれ
    ぞれについて生成され、前記複数のメモリ・デバイスか
    ら前記データ・ブロックを読み取った後、前記エラー検
    出回路が、単一エラー訂正コードを使用して前記複数の
    論理グループのそれぞれの論理グループ内の1つまたは
    複数のビットエラーを検出し、前記グローバル・チェッ
    クビットを使用して、前記エラー訂正コードを使用して
    検出された前記1つまたは複数のビットエラーが単一ビ
    ットエラーであるかどうかを判定し、前記ビットエラー
    が単一ビットエラーである場合に前記ビットエラーを訂
    正するように構成されるエラー検出回路とを含むメモリ
    ・システム。
  2. 【請求項2】 前記複数の論理グループの数が前記複数
    のメモリ・デバイスの数を超える請求項1に記載のメモ
    リ・システム。
  3. 【請求項3】 前記グローバル・チェックビットが前記
    データ・ブロック内の偶数のエラーを示し、前記エラー
    訂正コードが前記複数の論理グループ内のエラーを一切
    検出しない場合に、前記データ・ブロックが訂正なしで
    使用される請求項1に記載のメモリ・システム。
  4. 【請求項4】 前記グローバル・チェックビットが前記
    データ・ブロック内の偶数のエラーを検出し、前記エラ
    ー訂正コードが前記複数の論理グループのうち1つまた
    は複数のエラーを含む奇数の論理グループを示す場合、
    あるいは前記グローバル・チェックビットが前記データ
    ・ブロック内の奇数のエラーを示し、前記エラー訂正コ
    ードが前記複数の論理グループのうち1つまたは複数の
    エラーを含む偶数の論理グループを示す場合に、訂正不
    能なエラーが報告されるかまたは前記データ・ブロック
    のうちの少なくとも第1の複数のビットに関する再操作
    がアサートされる請求項1に記載のメモリ・システム。
  5. 【請求項5】 前記グローバル・チェックビットが前記
    データ・ブロック内の偶数のエラーを示し、前記エラー
    訂正コードが前記複数の論理グループのうち1つまたは
    複数のエラーを含む偶数の論理グループを示す場合、あ
    るいは前記グローバル・チェックビットが前記データ・
    ブロック内の奇数のエラーを示し、前記エラー訂正コー
    ドが前記複数の論理グループのうち1つまたは複数のエ
    ラーを含む奇数の論理グループを示す場合に、1つまた
    は複数のエラーを含む前記複数の論理グループ内のエラ
    ーを訂正するために前記エラー訂正コードが使用される
    請求項1に記載のメモリ・システム。
  6. 【請求項6】 プロセッサと、 バスと、 前記プロセッサおよび前記バスに結合されたメモリであ
    って、複数のメモリ・デバイスがデータ・ブロックを記
    憶するように構成され、そのデータ・ブロックは複数の
    データ・ビットと複数のチェックビットとを含み、前記
    データ・ブロックの各ビットが前記複数のメモリ・デバ
    イスのうちの1つに割り当てられ、前記データ・ブロッ
    クの前記ビットが複数の論理グループに割り振られ、そ
    の複数の論理グループのそれぞれが前記メモリ・デバイ
    スのうちの1つに割り当てられた多くても1ビットだけ
    を含むメモリと、 前記複数のメモリ・デバイスに結合されたエラー検出回
    路であって、前記エラー検出回路が、前記複数のメモリ
    ・デバイスに前記データ・ブロックを記憶する前に、前
    記データ・ブロックに関する1つのグローバル・チェッ
    クビットと前記複数の論理グループに関する複数のチェ
    ックビットとを生成するように構成され、前記複数のチ
    ェックビットの1つが前記複数の論理グループのそれぞ
    れについて生成され、前記複数のメモリ・デバイスから
    前記データ・ブロックを読み取った後、前記エラー検出
    回路が、単一エラー訂正コードを使用して前記複数の論
    理グループのそれぞれの論理グループ内の1つまたは複
    数のビットエラーを検出し、前記グローバル・チェック
    ビットを使用して、前記エラー訂正コードを使用して検
    出された前記1つまたは複数のビットエラーが単一ビッ
    トエラーであるかどうかを判定し、前記ビットエラーが
    単一ビットエラーである場合に前記ビットエラーを訂正
    するように構成されるエラー検出回路とを含むシステ
    ム。
  7. 【請求項7】 前記複数の論理グループの数が前記複数
    のメモリ・デバイスの数を超える請求項6に記載のシス
    テム。
  8. 【請求項8】 前記グローバル・チェックビットが前記
    データ・ブロック内の偶数のエラーを示し、前記エラー
    訂正コードが前記複数の論理グループ内のエラーを一切
    示さない場合に、前記データ・ブロックが訂正なしで使
    用される請求項6に記載のシステム。
  9. 【請求項9】 前記グローバル・チェックビットが前記
    データ・ブロック内の偶数のエラーを示し、前記エラー
    訂正コードが前記複数の論理グループのうち1つまたは
    複数のエラーを含む奇数の論理グループを示す場合、あ
    るいは前記グローバル・チェックビットが前記データ・
    ブロック内の奇数のエラーを示し、前記エラー訂正コー
    ドが前記複数の論理グループのうち1つまたは複数のエ
    ラーを含む偶数の論理グループを示す場合に、訂正不能
    なエラーが報告されるかまたは前記データ・ブロックの
    うちの少なくとも第1の複数のビットに関する再操作が
    アサートされる請求項6に記載のシステム。
  10. 【請求項10】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記エラ
    ー訂正コードが前記複数の論理グループのうち1つまた
    は複数のエラーを含む偶数の論理グループを示す場合、
    あるいは前記グローバル・チェックビットが前記データ
    ・ブロック内の奇数のエラーを示し、前記エラー訂正コ
    ードが前記複数の論理グループのうち1つまたは複数の
    エラーを含む奇数の論理グループを示す場合に、1つま
    たは複数のエラーを含む前記複数の論理グループ内のエ
    ラーを訂正するために前記エラー訂正コードが使用され
    る、請求項6に記載のシステム。
  11. 【請求項11】 単一エラー訂正コードのエラー訂正能
    力を増す方法であって、 1つのデータ・ブロックに関するグローバル・チェック
    ビットを生成するステップであって、前記データ・ブロ
    ックが複数のビットを含み、前記複数のビットが複数の
    データ・ビットと複数のチェックビットとを含み、前記
    データ・ブロックが複数のデータ・グループに分割さ
    れ、前記データ・グループのうちの各データ・グループ
    が前記データ・ブロックの前記複数のビットより少数の
    ビットを含み、前記データ・グループのうちの各データ
    ・グループが前記単一エラー訂正コードを使用するステ
    ップと、 前記単一エラー訂正コードを使用して前記データ・グル
    ープのうちの各データ・グループ内の1つまたは複数の
    ビットエラーを検出するステップと、 前記エラー訂正コードを使用して前記データ・グループ
    のうちの複数のデータ・グループ内で検出された前記1
    つまたは複数のビットエラーが単一ビットエラーである
    かどうかを前記グローバル・チェックビットを使用して
    判定するステップと、 前記1つまたは複数のエラーが単一ビットエラーである
    場合に前記データ・グループ内の前記1つまたは複数の
    ビットエラーを訂正するステップとを含む方法。
  12. 【請求項12】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記デー
    タ・グループのうちの各グループ内で前記単一ビットエ
    ラーが一切検出されない場合に、前記データ・ブロック
    が訂正なしで使用される請求項11に記載の方法。
  13. 【請求項13】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記エラ
    ー訂正コードが前記データ・グループのうちエラーを含
    む奇数のデータ・グループを示す場合に、訂正不能なエ
    ラーが報告されるかまたは前記データ・ブロックに関す
    る再操作がアサートされる請求項12に記載の方法。
  14. 【請求項14】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記エラ
    ー訂正コードが前記データ・グループのうちエラーを含
    む偶数のデータ・グループを示す場合に、前記エラーを
    含む前記データ・グループ内の前記エラーを訂正するた
    めに前記エラー訂正コードが使用される請求項13に記
    載の方法。
  15. 【請求項15】 前記グローバル・チェックビットが前
    記データ・ブロック内の奇数のエラーを示し、前記エラ
    ー訂正コードが前記データ・グループのうちエラーを含
    む偶数のデータ・グループを示す場合に、訂正不能なエ
    ラーが報告されるかまたは前記データ・ブロックに関す
    る再操作がアサートされる請求項14に記載の方法。
  16. 【請求項16】 前記グローバル・チェックビットが前
    記データ・ブロック内の奇数のエラーを示し、前記エラ
    ー訂正コードが前記データ・グループのうちエラーを含
    む奇数のデータ・グループを示す場合に、前記エラーを
    含む前記データ・グループ内の前記エラーを訂正するた
    めに前記エラー訂正コードが使用される請求項15に記
    載の方法。
  17. 【請求項17】 前記エラー訂正コードのそれぞれがハ
    ミング符号であり、前記グローバル・チェックビットが
    パリティ・ビットである請求項16に記載の方法。
  18. 【請求項18】 複数のコンポーネントを含むコンピュ
    ータ・システムのデータ・ブロック内のエラーを検出す
    る方法であって、前記データ・ブロックが複数のビット
    を含み、前記複数のビットが複数のデータ・ビットと複
    数のチェックビットとを含み、前記複数のビットが前記
    複数のコンポーネントに割り当てられ、 前記データ・ブロックの前記複数のビットを複数の論理
    グループに割り当てるステップであって、前記複数の論
    理グループのそれぞれが前記データ・ブロックのビット
    の数より少数のビットを含み、前記複数のコンポーネン
    トのうちの1つに割り当てられた多くても1ビットだけ
    が前記複数の論理グループのうちの1つに割り当てられ
    るように前記複数のビットの前記割当てが行われるステ
    ップと、チェックビットの1つが前記複数の論理グルー
    プのそれぞれについて生成されるように前記複数の論理
    グループ内のビットに関するチェックビットを生成する
    ステップと、 前記データ・ブロックに関するグローバル・チェックビ
    ットを生成するステップと、 単一エラー訂正コードを使用して前記複数の論理グルー
    プのそれぞれの論理グループ内の1つまたは複数のビッ
    トエラーを検出するステップと、 前記グローバル・チェックビットを使用して、前記エラ
    ー訂正コードを使用して前記複数の論理グループ内で検
    出された前記1つまたは複数のビットエラーが単一ビッ
    トエラーであるかどうかを判定するステップと、 前記ビットエラーが単一ビットエラーである場合に前記
    ビットエラーを訂正するステップとを含む方法。
  19. 【請求項19】 前記複数の論理グループの数が前記複
    数のコンポーネントの数を超える請求項18に記載の方
    法。
  20. 【請求項20】 前記複数のコンポーネントがメモリ・
    デバイスである請求項19に記載の方法。
  21. 【請求項21】 前記メモリ・デバイスのうちの1つに
    記憶された多くても1ビットだけが前記複数の論理グル
    ープのうちの1つに割り当てられ、前記メモリ・デバイ
    スのうちの任意のデバイスの障害によって前記複数の論
    理グループのうちの任意のグループで多くても1ビット
    のエラーが発生する可能性がある請求項20に記載の方
    法。
  22. 【請求項22】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記エラ
    ー訂正コードが前記複数の論理グループのうちの各グル
    ープ内のエラーを一切示さない場合に、前記データ・ブ
    ロックが訂正なしで使用される請求項21に記載の方
    法。
  23. 【請求項23】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記エラ
    ー訂正コードが前記複数の論理グループのうち1つまた
    は複数のエラーを含む奇数の論理グループを示す場合
    に、訂正不能なエラーが報告されるかまたは前記データ
    ・ブロックのうちの少なくとも第1の複数のビットに関
    する再操作がアサートされる請求項22に記載の方法。
  24. 【請求項24】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記エラ
    ー訂正コードが前記複数の論理グループのうち1つまた
    は複数のエラーを含む偶数の論理グループを示す場合
    に、1つまたは複数のエラーを含む前記複数の論理グル
    ープ内のエラーを訂正するために前記エラー訂正コード
    が使用される請求項23に記載の方法。
  25. 【請求項25】 前記グローバル・チェックビットが前
    記データ・ブロック内の奇数のエラーを示し、前記エラ
    ー訂正コードが前記複数の論理グループのうち1つまた
    は複数のエラーを含む偶数の論理グループを示す場合
    に、訂正不能なエラーが報告されるかまたは前記データ
    ・ブロックのうちの少なくとも第1の複数のビットに関
    する再操作がアサートされる、請求項24に記載の方
    法。
  26. 【請求項26】 前記グローバル・チェックビットが前
    記データ・ブロック内の奇数のエラーを示し、前記エラ
    ー訂正コードが前記複数の論理グループのうち1つまた
    は複数のエラーを含む奇数の論理グループを示す場合
    に、1つまたは複数のエラーを含む前記複数の論理グル
    ープ内のエラーを訂正するために前記エラー訂正コード
    が使用される、請求項25に記載の方法。
  27. 【請求項27】 単一エラー訂正コードのエラー訂正能
    力を増す装置であって、 1つのデータ・ブロックに関するグローバル・チェック
    ビットを生成する手段であって、前記データ・ブロック
    が複数のビットを含み、ぞの複数のビットが複数のデー
    タ・ビットと複数のチェックビットとを含み、前記デー
    タ・ブロックが複数のデータ・グループに分割され、前
    記データ・グループのうちの各データ・グループが前記
    データ・ブロックの前記複数のビットより少数のビット
    を含み、前記データ・グループのうちの各データ・グル
    ープが前記単一エラー訂正コードを使用する手段と、 前記単一エラー訂正コードを使用して前記データ・グル
    ープのうちの各データ・グループ内の1つまたは複数の
    ビットエラーを検出する手段と、 前記グローバル・チェックビットを使用して、前記エラ
    ー訂正コードを使用して前記データ・グループのうちの
    複数のデータ・グループ内で検出された前記1つまたは
    複数のビットエラーが単一ビットエラーであるかどうか
    を判定する手段と、 前記1つまたは複数のエラーが単一ビットエラーである
    場合に前記データ・グループ内の前記1つまたは複数の
    ビットエラーを訂正する手段とを含む装置。
  28. 【請求項28】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記デー
    タ・グループのうちの各グループ内で前記単一ビットエ
    ラーが一切示されない場合に、前記データ・ブロックが
    訂正なしで使用される請求項27に記載の装置。
  29. 【請求項29】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記デー
    タ・グループの前記エラー訂正コードが前記データ・グ
    ループのうちエラーを含む奇数のデータ・グループを示
    す場合、あるいは前記グローバル・チェックビットが前
    記データ・ブロック内の奇数のエラーを示し、前記デー
    タ・グループの前記エラー訂正コードが前記データ・グ
    ループのうちエラーを含む偶数のデータ・グループを示
    す場合に、訂正不能なエラーが報告されるかまたは前記
    データ・ブロックに関する再操作がアサートされる請求
    項28に記載の装置。
  30. 【請求項30】 前記グローバル・チェックビットが前
    記データ・ブロック内の偶数のエラーを示し、前記デー
    タ・グループの前記エラー訂正コードが前記データ・グ
    ループのうちエラーを含む偶数のデータ・グループを示
    す場合、あるいは前記グローバル・チェックビットが前
    記データ・ブロック内の奇数のエラーを示し、前記デー
    タ・グループの前記エラー訂正コードが前記データ・グ
    ループのうちエラーを含む奇数のデータ・グループを示
    す場合に、前記エラーを含む前記データ・グループ内の
    前記エラーを訂正するために前記エラー訂正コードが使
    用される請求項29に記載の装置。
JP11270292A 1998-09-24 1999-09-24 複数の単一エラ―訂正コ―ド・ワ―ドにわたってパリティを共用するための技法 Pending JP2000112833A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/160771 1998-09-24
US09/160,771 US6282686B1 (en) 1998-09-24 1998-09-24 Technique for sharing parity over multiple single-error correcting code words

Publications (1)

Publication Number Publication Date
JP2000112833A true JP2000112833A (ja) 2000-04-21

Family

ID=22578371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11270292A Pending JP2000112833A (ja) 1998-09-24 1999-09-24 複数の単一エラ―訂正コ―ド・ワ―ドにわたってパリティを共用するための技法

Country Status (3)

Country Link
US (1) US6282686B1 (ja)
EP (1) EP0989493A3 (ja)
JP (1) JP2000112833A (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304992B1 (en) 1998-09-24 2001-10-16 Sun Microsystems, Inc. Technique for correcting single-bit errors in caches with sub-block parity bits
US6233716B1 (en) * 1998-09-24 2001-05-15 Sun Microsystems, Inc. Technique for partitioning data to correct memory part failures
US7062592B2 (en) * 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system
US7246303B2 (en) * 2002-03-25 2007-07-17 Intel Corporation Error detection and recovery of data in striped channels
US6973613B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6996766B2 (en) * 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US7080168B2 (en) * 2003-07-18 2006-07-18 Intel Corporation Maintaining aggregate data counts for flow controllable queues
US20050013251A1 (en) * 2003-07-18 2005-01-20 Hsuan-Wen Wang Flow control hub having scoreboard memory
US7324537B2 (en) * 2003-07-18 2008-01-29 Intel Corporation Switching device with asymmetric port speeds
US7530008B2 (en) 2003-08-08 2009-05-05 Sun Microsystems, Inc. Scalable-chip-correct ECC scheme
US7188296B1 (en) 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
US7324541B2 (en) * 2003-12-22 2008-01-29 Intel Corporation Switching device utilizing internal priority assignments
US7570654B2 (en) * 2003-12-22 2009-08-04 Intel Corporation Switching device utilizing requests indicating cumulative amount of data
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US7171591B2 (en) * 2003-12-23 2007-01-30 International Business Machines Corporation Method and apparatus for encoding special uncorrectable errors in an error correction code
US7116600B2 (en) * 2004-02-19 2006-10-03 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data
US20050207436A1 (en) * 2004-03-18 2005-09-22 Anujan Varma Switching device based on aggregation of packets
JP4799027B2 (ja) 2005-03-31 2011-10-19 富士通株式会社 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法
US20080159145A1 (en) * 2006-12-29 2008-07-03 Raman Muthukrishnan Weighted bandwidth switching device
JP5523120B2 (ja) * 2010-01-14 2014-06-18 三菱電機株式会社 誤り訂正符号化方法、誤り訂正復号方法、誤り訂正符号化装置、および、誤り訂正復号装置
US8775904B2 (en) 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
US8782485B2 (en) 2012-01-19 2014-07-15 International Business Machines Corporation Hierarchical channel marking in a memory system
US8843806B2 (en) 2012-01-19 2014-09-23 International Business Machines Corporation Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems
US20130191685A1 (en) * 2012-01-19 2013-07-25 International Business Machines Corporation Per-rank channel marking in a memory system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4358848A (en) * 1980-11-14 1982-11-09 International Business Machines Corporation Dual function ECC system with block check byte
US4845664A (en) * 1986-09-15 1989-07-04 International Business Machines Corp. On-chip bit reordering structure
US4995041A (en) 1989-02-03 1991-02-19 Digital Equipment Corporation Write back buffer with error correcting capabilities
US5099484A (en) * 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US5291498A (en) * 1991-01-29 1994-03-01 Convex Computer Corporation Error detecting method and apparatus for computer memory having multi-bit output memory circuits
US5642366A (en) * 1994-07-05 1997-06-24 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
JPH08249826A (ja) * 1995-03-10 1996-09-27 Nippon Conlux Co Ltd 情報記録媒体及び情報記録再生方法

Also Published As

Publication number Publication date
EP0989493A2 (en) 2000-03-29
US6282686B1 (en) 2001-08-28
EP0989493A3 (en) 2005-06-29

Similar Documents

Publication Publication Date Title
EP0989491B1 (en) Technique for partioning data to correct memory part failures
JP2000112833A (ja) 複数の単一エラ―訂正コ―ド・ワ―ドにわたってパリティを共用するための技法
EP1204921B1 (en) System and method for detecting double-bit errors and for correcting errors due to component failures
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US6473880B1 (en) System and method for protecting data and correcting bit errors due to component failures
EP0989681B1 (en) Technique for correcting single-bit errors and detecting paired double-bit errors
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6018817A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
US7496826B2 (en) Method, system, and apparatus for adjacent-symbol error correction and detection code
US6751769B2 (en) (146,130) error correction code utilizing address information
US20040003336A1 (en) Error detection/correction code which detects and corrects memory module/transmitter circuit failure
US6442726B1 (en) Error recognition in a storage system
JPH06324951A (ja) 誤り検査/訂正機能を有するコンピュータ・システム
US5666371A (en) Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
US6393597B1 (en) Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures
EP1116114B1 (en) Technique for detecting memory part failures and single, double, and triple bit errors
US7080305B2 (en) System and method for correcting data errors
US5761221A (en) Memory implemented error detection and correction code using memory modules
JP2732862B2 (ja) データ伝送試験装置
JPH10312340A (ja) 半導体記憶装置におけるエラー検出,訂正方式
JP2006323434A (ja) データ処理装置及びそのメモリ訂正方法
JP2000517080A (ja) 記憶装置
JPS6024493B2 (ja) メモリ制御方式