JP2000112830A - メモリシステム、コンピュ―タシステムおよびデ―タ・ブロック中のビットエラ―を訂正する方法 - Google Patents

メモリシステム、コンピュ―タシステムおよびデ―タ・ブロック中のビットエラ―を訂正する方法

Info

Publication number
JP2000112830A
JP2000112830A JP11270284A JP27028499A JP2000112830A JP 2000112830 A JP2000112830 A JP 2000112830A JP 11270284 A JP11270284 A JP 11270284A JP 27028499 A JP27028499 A JP 27028499A JP 2000112830 A JP2000112830 A JP 2000112830A
Authority
JP
Japan
Prior art keywords
sub
block
bit
bits
composite
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
JP11270284A
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 JP2000112830A publication Critical patent/JP2000112830A/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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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

Landscapes

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

Abstract

(57)【要約】 【課題】 複数のサブブロックを含んでいるデータ・ブ
ロック内のエラーを訂正するために必要なチェックビッ
トの数を少なくすること。 【解決手段】 データ・ブロックは複数のサブブロック
を含んでいる。各サブブロックは、サブブロック内のビ
ットエラーの存在を検出するために使用されるサブブロ
ック・チェックビットを含んでいる。複合サブブロック
が生成されるが、これは各サブブロックのビットの列方
向の排他的論理和である。複合サブブロックは格納され
ず、計算専用に使用される。複数の複合チェックビット
は、複合サブブロック内のビットエラーのビット位置を
検出するために使用される。データ・ブロック内にビッ
トエラーが発生した場合、サブブロック・チェックビッ
トを使用してエラーの発生したサブブロックが検出され
る。複合チェックビットは、複合サブブロックのどのビ
ット位置にエラーがあるかを決定するために使用され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、エラー訂正に関
し、より詳細にはコンピュータ・メモリ・システム中の
ビットエラーを訂正するエラーコードに関する。
【0002】
【従来の技術】電子システム中では一般に、伝送エラー
や記憶エラーなどのデータのエラーを検出および/また
は訂正するためにエラーコードが使用されている。たと
えば、エラーコードは、電話回線、無線送信機、または
コンパクト・ディスク・レーザを介して伝送されたデー
タ内のエラーを検出し訂正するために使用される。エラ
ーコードの別の一般的な用途は、コンピュータ・システ
ムのメモリ中に格納されたデータ内のエラーを検出し訂
正することである。たとえば、1つまたは複数のメモリ
・デバイスにデータを格納する前にエラー訂正ビットま
たはチェックビットがデータに対して生成される。デー
タがメモリ・デバイスから読み出されるとき、チェック
ビットを使用して、データ内のエラーを検出または訂正
することができる。エラーは、コンピュータ・システム
内の欠陥コンポーネントまたはノイズによって持ち込ま
れることがある。欠陥コンポーネントには、欠陥メモリ
・デバイスや、またはコンピュータ・システム内のデバ
イス間のデータ経路の故障、例えば故障したピンなどが
考えられる。
【0003】ハミング符合は一般に使用されるエラーコ
ードの1つである。ハミング符合内のチェックビットは
データ・ビットの一部分に対するパリティ・ビットであ
る。各チェックビットはデータ・ビットの一意のサブセ
ットに対するパリティを与える。エラーが発生した場
合、すなわち1つまたは複数のビットが状態を変更した
場合、1つまたは複数のシンドローム・ビットがアサー
トされることになる(エラーは符号によってカバーされ
るエラーのクラス内に入ると仮定する)。一般に、シン
ドローム・ビットは、チェックビットを再生成し、再生
成されたチェックビットを元のチェックビットと比較す
ることによって生成される。再生成されたチェックビッ
トが元のチェックビットと異なる場合には、エラーが発
生しており、1つまたは複数のシンドローム・ビットが
アサートされることになる。どのシンドローム・ビット
がアサートされるかということも、状態を変更したデー
タ・ビットを決定しするために使用でき、エラーの訂正
が可能になる。たとえば、1つのデータ・ビットが状態
を変更した場合、このデータ・ビットは1つまたは複数
のチェックビットを変更することになる。各データ・ビ
ットはチェックビットの一意のグループに寄与するの
で、変更されたチェックビットは状態を変更したデータ
・ビットを識別することができる。エラーは、エラーと
識別されたビットを反転させることによって訂正され
る。
【0004】ハミング符合の一般的な用途の1つは、デ
ータ・グループ内の単一ビットエラーを訂正することで
ある。一般に、kをチェックビット数、nをデータ・ビ
ット数とチェックビット数の和として、2k-1 がnに等
しいかまたはそれよりも大きくなるように、チェックビ
ットの数は十分に大きくなければならない。したがっ
て、64ビット・データ・ブロックに対して単一エラー
訂正ハミング符合を形成するためには7つのチェックビ
ットが必要である。単一エラー訂正ハミング符合は単一
エラーを検出し訂正することができる。符号のエラー検
出能力は追加のチェックビットを加えることによって高
められる。追加のチェックビットを使用することによ
り、ハミング符合は二重ビットエラーを検出し、単一ビ
ットエラーを訂正することができるようになる。ハミン
グ符合のデータ検出能力を高めるためにビットを追加す
ることは拡張ハミング符合と呼ばれる。
【0005】ハミング符合など単一エラー訂正符号で
は、複数のビットのエラーにより1つまたは複数のシン
ドロームが非ゼロになることがある。ただし、複数のビ
ットエラーは、誤って異なるビット位置で単一ビットエ
ラーとみなされることがある。たとえば、6つのチェッ
クビットを持つ単一エラー訂正ハミング符合では、1つ
のビットのエラーにより2つのチェックビットが状態を
変更することがある。別のビットエラーにより他の2つ
のチェックビットが状態を変更することがある。したが
って、これら2つのエラーが発生した場合、4つのチェ
ックビットが状態を変更することになる。残念ながら、
さらに別のビット位置の1ビットのエラーによりこれら
同じ4つのチェックビットが状態を変更することがあ
る。エラー訂正手順は、4つのチェックビットすべてに
影響を及ぼすビットが状態を変更したと仮定して、その
データ・ビットを反転させる。このチェックビットの変
化が実際に2つのビットエラーによって生じたのであれ
ば、エラー訂正手順は非エラービットを反転させる。し
たがって、エラー訂正手順はより多くのエラーを生じさ
せ、誤ってデータにエラーがないことを示すことがあ
る。
【0006】この問題は拡張パリティ・ビットを追加す
ることによって解決される。データがメモリから読み取
られるとき、チェックビットおよび拡張パリティ・ビッ
トが再生成され、元のチェックビットおよび元の拡張パ
リティ・ビットと比較される。再生成されたチェックビ
ットが元のチェックビットと異なる場合には、拡張パリ
ティ・ビットを使用して、発生したビットエラーが1つ
であるか2つであるかを決定することができる。1つの
エラーが発生した場合には、再生成された拡張パリティ
・ビットは元の拡張パリティ・ビットと異なる。2つの
エラーが発生した場合には、再生成された拡張パリティ
・ビットは元の拡張パリティ・ビットと同じになる。1
つまたは複数のチェックビットが状態を変更し、再生成
された拡張パリティ・ビットが異なる場合には、単一ビ
ットエラーが発生しており、訂正される。あるいは、1
つまたは複数のチェックビットが状態を変更し、拡張パ
リティ・ビットが同じ場合には、2つのビットエラーが
検出され、訂正は行われない。後者の場合、訂正不能エ
ラーがコンピュータ・システム内のメモリ・コントロー
ラまたは他のコンポーネントに報告される。論理グルー
プ中の3つ以上のビットエラーは、エラー訂正符号によ
って対処されるエラーのクラスに入らないことに留意さ
れたい。したがって、3つ以上のエラーは検出されない
か、またはエラー訂正符号がエラーを単一ビットエラー
と解釈し、エラーでないデータ・ビットを反転させるこ
とがある。
【0007】パリティ検査はエラー検出のために一般に
使用される技法である。パリティ・ビットまたはチェッ
クビットはデータ・ビットのグループに加えられる。チ
ェックビットは、データ・ビット・グループ内のアサー
トされるデータ・ビットの数に応じてアサートされるこ
とがある。偶数パリティが使用される場合には、パリテ
ィ・ビットは、データ・ビットとチェックビットとを含
んでいるアサートされるビットの合計数を偶数に等しく
する。奇数パリティが使用される場合には、パリティ・
ビットは、データ・ビットとチェックビットとを含んで
いるアサートされるビットの合計数を奇数にする。パリ
ティ検査は、奇数個のエラーを検出する場合に有効であ
る。ただし、偶数個のエラーが発生した場合には、パリ
ティ検査はエラーを検出しない。
【0008】エラーコードの一般的な用途の1つは、コ
ンピュータ・メモリ・システムのキャッシュ中に格納さ
れたデータのビットエラーを検出し訂正することであ
る。一般に、キャッシュは、プロセッサと比較的遅いメ
モリ・デバイスとの間のバッファである。キャッシュは
一般に、メイン・メモリよりも小形で高速であり、プロ
セッサが最後にアクセスしたデータを格納する。コンピ
ュータ・プログラムの反復性のために、プロセッサは、
メモリ中の他の情報よりも最後にアクセスされた情報に
アクセスする可能性が高い。したがって、最後に使用さ
れたデータをより高速のキャッシュ中に格納することに
より、データの平均アクセス時間を短縮することができ
る。データのアクセス時間を短縮すると、プロセッサが
メモリからのデータを待っている時間が短縮され、した
がってプロセッサの全体的な速度が高くなる。
【0009】次に図1を参照すると、キャッシュを実装
するコンピュータ・システムの一部分が示されている。
コンピュータ・システム100は、プロセッサ102、
キャッシュ104、メモリ・コントローラ106、およ
びシステム・メモリ108を含んでいる。コンピュータ
・システム100の他の部分は簡単のために省略されて
いる。プロセッサ102はキャッシュ104に接続され
ている。キャッシュ104はメモリ・コントローラ10
6に接続されており、メモリ・コントローラ106はシ
ステム・メモリ108に接続されている。図1のコンピ
ュータ・システムは例示のためのものにすぎないことに
留意されたい。プロセッサ、キャッシュおよびシステム
・メモリの他の構成が考えられる。
【0010】プロセッサ102は、プロセッサ・バス1
10上でメモリ読取り要求を開始することによってシス
テム・メモリ108にデータを要求する。キャッシュ1
04は、メモリ読取り要求を受け取り、要求されたデー
タがキャッシュ中に格納されているかどうかを決定す
る。要求されたデータがキャッシュ中に格納されている
場合、キャッシュ104はデータをプロセッサ102に
供給する。あるいは、要求されたデータがキャッシュ中
に格納されていない場合、キャッシュ104はデータを
読み取るようメモリ・コントローラ106に対してメモ
リ読取り要求を開始する。1つの例では、メモリ・コン
トローラ106はシステム・メモリ108のデータにア
クセスし、データをキャッシュ104中に格納し、キャ
ッシュ104はデータをプロセッサ102に供給する。
あるいは、メモリ・コントローラ106からのデータ
は、キャッシュ104へのデータの格納と並行してプロ
セッサ102に搬送される。プロセッサ102がキャッ
シュ104中に格納されたデータに書込みを行う場合、
コヒーレンシを維持するためのいくつかの技法が実施さ
れる。たとえば、データがキャッシュ104およびメモ
リ108の両方に書き込まれることもあり、データがキ
ャッシュ104中で無効にされ、メモリ108中のみに
書き込まれることもある。コンピュータ・システム10
0の上記の操作は、例示のためのものにすぎず、特許請
求の範囲を限定するものではない。
【0011】
【発明が解決しようとする課題】コンピュータ・システ
ムの共通の設計目標はエラーの検出と訂正に使用される
チェックビットの数を少なくすることである。チェック
ビットは、システムが処理するデータ量を増加させ、そ
のためメモリコンポーネント、データ・パス、その他の
回路の数が増加する。さらに、ビット数が増加するとエ
ラー発生の確率が高くなる。チェックビットはエラーを
検出可能かつ/または訂正可能にするが、システム内の
データ・ビット数が増加するとエラーの発生する確率が
高くなる。少なくとも以上の理由で、所与のレベルのエ
ラー検出および/または訂正に対してチェックビットの
数を少なくすることが望ましい。
【0012】
【課題を解決するための手段】本発明は、複数のサブブ
ロックを含んでいるデータ・ブロック内のエラーを訂正
するために必要なチェックビットの数を少なくするもの
である。各サブブロックは、サブブロック内のビットエ
ラーの存在を検出するために使用されるサブブロック・
チェックビットを含んでいる。複合サブブロックが生成
されるが、これは各サブブロックのビットの列方向の排
他的論理和である。言い換えれば、複合サブブロックの
第1のビットはサブブロックの第1の列位置にあるすべ
てのビットの排他的論理和である。複合サブブロックの
第2のビットは、サブブロックの第2の列位置にあるす
べてのビットの排他的論理和である。以下同様である。
1つの実施態様では、複合サブブロックは格納されず
に、計算専用に使用される。複合サブブロック内のエラ
ーのビット位置を検出するために、複数の複合チェック
ビットが生成される。データ・ブロック内にビットエラ
ーが発生した場合、サブブロック・チェックビットはエ
ラーの発生したサブブロックを検出するために使用され
る。複合チェックビットは、複合サブブロックのどのビ
ット位置にエラーがあるかを決定するために使用され
る。複合サブブロックのエラービット位置もまた、サブ
ブロック・チェックビットによって識別されたサブブロ
ック内のエラービットのビット位置を識別する。したが
って、サブブロックおよびサブブロック内のビット位置
は、サブブロック・チェックビットと複合チェックビッ
トを使用して検出することができる。
【0013】広く言えば、本発明は、データ・ブロック
内のビットエラーを訂正する方法であって、データ・ブ
ロックをそれぞれ複数のビット位置を含んでいる複数の
サブブロックに分割するステップと、第1のサブブロッ
ク内のエラーを検出するように構成された第1のサブブ
ロック・チェックビットを第1のサブブロックに対して
生成するステップと、各ビットが複数のサブブロック内
のビット位置に対応する複合サブブロックを生成するス
テップと、複合サブブロック内のビットエラーを検出し
て位置を突き止めるように構成された複合チェックビッ
トを複合サブブロックに対して生成するステップと、第
1のサブブロック・チェックビットを使用して第1のサ
ブブロック内のエラービットを検出し、複合チェックビ
ットを使用してエラービットのビット位置を決定するス
テップと、エラービットを反転させるステップとを含ん
でいる方法である。
【0014】本発明はさらに、データ・ブロック内のビ
ットエラーを訂正するコンピュータ・メモリを提供す
る。コンピュータ・メモリは1つまたは複数の記憶デバ
イス、および1つまたは複数の記憶デバイスに接続され
たエラー訂正回路を含んでいる。1つまたは複数の記憶
デバイスは複数のデータ・ブロックのサブブロックを格
納するように構成される。サブブロックの各々は複数の
ビット位置を含んでいる。エラー訂正回路は、データ・
ブロックを受け取り、サブブロックの各々に対してサブ
ブロック・チェックビットを生成し、複合サブブロック
を生成し、複合サブブロック内のエラービットのビット
位置を検出するために複合チェックビットを生成するよ
うに構成されている。サブブロック・チェックビットお
よび複合チェックビットは1つまたは複数の記憶デバイ
ス中に格納される。エラービットを持つデータ・ブロッ
クが1つまたは複数の記憶デバイスから読み取られたと
き、エラー訂正回路はサブブロック・チェックビットを
使用して、エラービットを含んでいるサブブロックを決
定し、複合チェックビットを使用して、エラービットを
含んでいるサブブロック内のエラービットのビット位置
を決定する。
【0015】本発明はさらに、データ・ブロック内のビ
ットエラーを訂正するキャッシュを提供する。キャッシ
ュは1つまたは複数の記憶デバイス、および1つまたは
複数の記憶デバイスに結合されたエラー訂正回路を含ん
でいる。1つまたは複数の記憶デバイスは、データ・ブ
ロックの複数のサブブロックを格納するように構成され
ている。サブブロックの各々は複数のビット位置を含ん
でいる。エラー訂正回路は、データ・ブロックを受け取
り、サブブロックの各々に対してサブブロック・チェッ
クビットを生成し、複合サブブロックを生成し、複合サ
ブブロック内のエラービットのビット位置を検出するた
めに複合チェックビットを生成するように構成されてい
る。サブブロック・チェックビットおよび複合チェック
ビットは1つまたは複数の記憶デバイス中に格納され
る。エラービットを持つデータ・ブロックが1つまたは
複数の記憶デバイスから読み取られたとき、エラー訂正
回路はサブブロック・チェックビットを使用して、エラ
ービットを含んでいるサブブロックを決定し、複合チェ
ックビットを使用してエラービットを含んでいるサブブ
ロック内のエラービットのビット位置を決定する。
【0016】
【発明の実施の形態】本発明の他の目的および利点は添
付の図面を参照しながら以下の詳細な説明を読めば明ら
かになろう。
【0017】本発明は、各種の変更および代替形態が可
能であるが、その特定の実施形態を例として図面に示
し、本明細書で詳細に説明する。ただし、その図面およ
び詳細な説明は本発明を開示した特定の形態に限定する
ものではなく、本発明は、首記の請求の範囲に定義され
ている本発明の精神および範囲内に入るすべての変更形
態、同等形態、および代替形態を包含するものであるこ
とを理解されたい。
【0018】図2に、本発明の1つの実施形態によるキ
ャッシュ104のブロック図が示されている。例示の実
施形態では、キャッシュ104は、記憶ユニット(記憶
デバイス)202、エラー訂正ユニット206、キャッ
シュ・コントローラ208を含んでいる。キャッシュ2
02の他の部分は簡単のために省略されている。記憶ユ
ニット202は複数のエントリ204A〜204Xを含
んでいる。参照番号と後続の英文字で示されるコンポー
ネントは、集合的に参照番号によってのみ呼ばれること
がある。たとえば、キャッシュ・エントリ204A〜2
04Xはキャッシュ・エントリ204と呼ばれることが
ある。一般に、キャッシュ・コントローラ208は、プ
ロセッサ102からメモリ・アクセス要求を受け取り、
要求されたデータが記憶ユニット202にあるかどうか
を決定するように構成されている。メモリ・アクセスが
読取り要求であり、要求されたデータが記憶ユニット2
02中に格納されている場合、キャッシュ・コントロー
ラ208は要求されたデータを出力するよう記憶ユニッ
ト202に制御信号を送る。要求されたデータはエラー
訂正ユニット206に供給され、エラー訂正ユニット2
06はデータ内の1つまたは複数のビットエラーを検出
し訂正する。あるいは、要求されたデータが記憶ユニッ
ト202にない場合、キャッシュ・コントローラ208
は、データの要求をメモリ・コントローラ106に送る
ように構成されている。データが受け取られたとき、デ
ータはエラー訂正ユニット206に供給される。エラー
訂正ユニット206はデータとともに記憶ユニット20
2中に格納される複数のチェックビットを生成する。す
べてのエントリが現在占有されている場合、キャッシュ
・コントローラ208は従来のいくつかのアルゴリズム
のうちの1つを使用して、新しいデータが上書きするエ
ントリを決定する。たとえば、キャッシュ・コントロー
ラ208は、記憶ユニット202の最近最も使用されて
いないエントリを上書きすることがある。
【0019】メモリ・アクセスが書込み要求であり、要
求されたデータが記憶ユニット202中に格納されてい
る場合にキャッシュ104とメモリ108とのコヒーレ
ンシを維持するための従来のいくつかの技法を実装する
ことができる。たとえば、データがキャッシュ104と
メモリ108の両方に書き込まれることもあり、データ
がキャッシュ104中で無効にされ、メモリ108中の
みに書き込まれることもある。
【0020】キャッシュ104は、直接マップされるか
または連想型に設定されることに留意されたい。1つの
特定の実施形態では、記憶ユニット202は64バイト
のキャッシュ・ラインを格納する。各キャッシュ・ライ
ンはそれぞれ32バイトの2つのエントリを含んでい
る。1つの特定の実施形態では、データは32バイトの
エントリの読取りまたは書込み、もしくは1バイトの書
込みによってアクセスされる。1つの実施形態では、各
エントリは32バイトのデータ(すなわち256ビット
のデータ)および41のチェックビットを含んでいる。
したがって、各エントリは297のビットを含んでい
る。
【0021】次に図3Aを参照すると、本発明の1つの
実施形態によるキャッシュ・エントリの構成が示されて
いる。例示の実施形態では、キャッシュ・エントリ20
4Aは32のサブブロック(S[0:31])および1
つのチェックビット・ブロック(CB)を含んでいる。
各サブブロックは、複数のデータ・ビットと、サブブロ
ック内のエラーを検出するために使用される1つまたは
複数のチェックビットとを格納する。チェックビット・
ブロックは、エントリ204A内のビットエラーの検出
と訂正に使用される複数のチェックビットを含んでい
る。
【0022】次に図3Bを参照すると、本発明の1つの
実施形態によるキャッシュ・エントリのサブブロックの
構成が示されている。例示の実施形態では、サブブロッ
ク(S[x])は8ビットのデータ(D[x][0:
7])と1つのサブブロック・チェックビット(C
[x])を含んでいる。1つの特定の実施形態では、サ
ブブロックのチェックビットは8つのデータ・ビットの
パリティ・ビットである。サブブロック・チェックビッ
トは、データ・ビット内のビットエラーを検出するため
に使用される。上記のように、サブブロック・チェック
ビットは、エントリ204Aにデータを格納する前にエ
ラー訂正ユニット206によって生成される。
【0023】次に図3Cを参照すると、キャッシュ・エ
ントリのチェックビット・ブロックの構成が示されてい
る。例示の実施形態では、チェックビット・ブロックは
9つのエントリ・チェックビットを含んでいる。(CB
[0:8])。1つの特定の実施形態では、9つのエン
トリ・チェックビットは、エントリ内の256のデータ
・ビットと32のチェックビットに対して単一エラー訂
正ハミング符合となる。したがって、サブブロック・チ
ェックビットがデータ・ブロック内にエラーを検出した
場合、エントリ・チェックビットはエラービットを突き
止めて訂正するために使用される。
【0024】1つの実施形態では、単一バイトが読み取
られるとき、読み取られたサブブロックに対応するサブ
ブロック・チェックビットは、サブブロックがビットエ
ラーを含んでいるかどうかを決定するために検査され
る。ビットエラーが検出されない場合、サブブロックの
データが使用される。あるいは、ビットエラーが検出さ
れた場合、エントリ内の各サブブロックからのデータは
読み取られ、かつサブブロック・チェックビットは他の
ビットエラーを検出するために使用される。複数のビッ
トエラーが検出された場合には、訂正不能エラーが報告
される。ビットエラーが1つだけ検出された場合には、
エントリ・チェックビットが再計算され、エラービット
のビット位置を決定するために、格納されているエント
リ・チェックビットと比較される。
【0025】エントリが読み取られたとき、エントリの
バイトのサブブロック・チェックビットが検査される。
ビットエラーが検出されない場合には、データは訂正さ
れずに使用される。複数のビットエラーが検出された場
合には、訂正不能エラーが報告される。1つのビットエ
ラーが検出された場合には、ビットエラーを訂正するた
めにエントリ・チェックビットが使用される。上記のよ
うに、データの正確さを検証するためにエントリ・チェ
ックビットを使用することなく、エラーのないデータが
キャッシュから読み取られる。ただし、エラービットが
検出された場合には、エントリ・チェックビットはエラ
ービットを訂正するために使用される。
【0026】1バイトの書込み操作中に、エントリのす
べてのサブブロックが読み込まれ、チェックビットが検
査される。エラーが検出されない場合には、データは適
切なサブブロックに書き込まれ、新しいエントリ・チェ
ックビットが生成され格納される。あるいは、単一サブ
ブロック・チェックビットが不正である場合、エントリ
・チェックビットは再生成され、格納されているエント
リ・チェックビットと比較され、エラービットが訂正さ
れる。次いで新しいデータが適切なサブブロック内に格
納され、新しいエントリ・チェックビットが生成され格
納される。32バイトの書込み中、サブブロックおよび
エントリ・チェックビットが生成され、データとチェッ
クビットが格納される。
【0027】次に図4を参照すると、単一ビットエラー
を訂正するためのエラー訂正符号を含んでいるデータ・
ブロックの編成が示されている。例示の実施形態では、
エントリ204Aのデータ・ビットおよびチェックビッ
トが示されている。上記のように、エントリ204Aは
32のサブブロック(S[0:31])を含んでいる。
各サブブロックは8つのデータ・ビット(D[x]
[0:7])および1つのサブブロック・チェックビッ
ト(C[x])を含んでいる。1つの実施形態でのサブ
ブロックのチェックビットはサブブロック内の8つのデ
ータ・ビットのパリティ・ビットである。エントリ20
4Aはさらにチェックビット・ブロック(CB)を含ん
でいる。チェックビット・ブロックは、エントリ204
Aのデータ・ビット内のビットエラーを検出し訂正する
ために使用される複数のエントリ・チェックビットを含
んでいる。1つの実施形態では、チェックビット・ブロ
ックは、エントリ204Aの256のデータ・ビットお
よび32のチェックビットを扱う9つのビット・ハミン
グ符合を格納する。
【0028】次に図5を参照すると、本発明の1つの実
施形態による単一ビットエラーを訂正するエラー訂正符
号を含んでいるデータ・ブロックの改善された編成が示
されている。例示の実施形態では、キャッシュ・エント
リ204Aは、それぞれ8つのデータ・ビットおよび1
つのチェックビットの32のサブブロック(S[0:3
1])を含んでいる。図4のチェックビット・ブロック
は複合チェックビット・ブロック(CCB)と置き換え
られている。複合チェックビット・ブロック(CCB)
は4つの複合チェックビットを含んでいる。一般に、複
合チェックビットは、複合サブブロック内のエラーを見
つけるためのエラーコードである。複合サブブロックは
サブブロックの列方向の排他的論理和である。言い換え
れば、複合サブブロックの第1のビット(CS[0])
は、各サブブロックの第1のビット(D[x][0])
の排他的論理和である。複合サブブロックの第2のビッ
ト(CS[1])は各サブブロックの第2のビット(D
[x][1])の排他的論理和である。以下同様。した
がって、例示の実施形態では、複合サブブロックは9ビ
ットを含んでいる。複合サブブロックの1つのビット
は、サブブロック内の各データ・ビット位置に対応し、
1ビットは、サブブロック内のチェックビット位置に対
応する。
【0029】ビットにエラーが発生した場合、エラービ
ットのビット位置に対応する複合サブブロック内のビッ
トは状態を変更する。複合サブブロック内で状態を変更
するビットを見つけることによって、サブブロック内の
エラービットのビット位置を見つけることができる。し
たがって、サブブロック・チェックビットは、エラーデ
ータ・ビットを含んでいるサブブロックを見つけるため
に使用され、複合チェックビットは、そのサブブロック
内のエラービットのビット位置を見つけるために使用さ
れる。
【0030】1つの実施形態では、複合チェックビット
は複合サブブロックの9ビットに対する単一エラー訂正
ハミング符合である。上記のように、ビットエラーを見
つけるために必要なチェックビットの数を少なくするこ
とができる。例示の実施形態では、図4の9つのエント
リ・チェックビットは4つの複合チェックビットに置き
換えられている。複合サブブロックはキャッシュ中に格
納されないことに留意されたい。複合サブブロックは、
キャッシュ・エントリ中に格納される複合チェックビッ
トを計算する際の中間ステップとして使用される。
【0031】上記のように、1つの実施形態では、デー
タは32バイトのブロックで読み取られる。したがっ
て、データがキャッシュ202から読み取られるとき、
256データ・ビットおよび36チェックビットを含ん
でいるエントリがエラー検出回路206に供給される。
エラー訂正ユニット206は、各サブブロックに関連付
けられたサブブロック・チェックビットを使用して、そ
のサブブロック内でビットエラーが発生しているかどう
かを決定する。読取りサブブロック内でエラーが検出さ
れない場合には、データは訂正されずに出力される。サ
ブブロックの1つにエラーが含まれている場合には、複
合サブブロックが再生成され、複合チェックビットが再
生成され、再生成された複合チェックビットが格納され
ている複合チェックビットと比較され、複合サブブロッ
ク内のエラーのビット位置を突き止める。複合サブブロ
ック内のエラーのビット位置は、エラービットを含んで
いるサブブロック内のエラービットのビット位置に対応
する。あるいは、2つ以上のサブブロックでエラーが検
出された場合、訂正不能エラーが発生している。訂正不
能エラーは、システムに報告されるか、またはエントリ
が再度読み取られる。
【0032】1バイトの書込み操作が行われる場合、エ
ントリのすべての格納されているサブブロックはエラー
訂正ユニット206に供給される。エラー訂正ユニット
206は、サブブロック・チェックビットを使用して、
エントリ内のビットエラーを検出する。訂正可能エラー
が検出されると、複合チェックビットを使用して訂正さ
れる。修復不能エラーが検出されない場合には、バイト
および関連するサブブロック・チェックビットはエント
リに書き込まれ、新しい複合チェックビットが生成され
る。エントリ内のビットエラーを検出し訂正するため
に、格納されているバイトおよびチェックビットは、新
しいバイトおよびチェックビットを格納する前に、読み
取る必要があることに留意されたい。
【0033】以下の表1は、複合チェックビット(CC
B[0:3])の各ビットに寄与する複合サブブロック
(CS[0:7]とCS[P])のビットを示してい
る。各行は4つの複合チェックビットの1つを表してい
る。各列は複合サブブロックの1ビットを表している。
複合チェックビットに寄与する複合サブブロックの各ビ
ットは対応する欄に1を持っている。たとえば、複合チ
ェックビット3(CCB[3])はCS[4:7]およ
びCS[P]のパリティ・ビットである。これは、ビッ
ト位置4〜7のビットおよびすべてのサブブロックのチ
ェックビットの排他的論理和をとったものと等しくなる
ことに留意されたい。
【0034】
【表1】
【0035】1つの実施形態では、複合チェックビット
を使用してエラービットのビット位置が検出される場
合、シンドローム・ビット(S[3:0])が生成され
る。以下の表2は、どのビットが各シンドローム・ビッ
トに寄与するかを示している。たとえば、S[3]は、
複合サブブロック・ビットCS[4:7]およびCS
[P]とCCB[3]の論理和である。エラーのビット
位置は、表2を検索してS[3:0]と一致する列を探
すことによって突き止められる。エラービットが寄与す
るシンドローム・ビットは、シンドローム・ビットと一
致する。シンドローム・ビットが表2の列と一致しない
場合には、複数のビットエラーが発生している。
【0036】
【表2】
【0037】次に図6を参照すると、本発明の1つの実
施形態によるサブブロック・チェックビットによりデー
タ・ブロック内の単一ビットエラーを訂正する方法が示
されている。ステップ602で、データ・ブロックを複
数のサブブロックに分割する。各サブブロックは複数の
ビット位置を含んでいる。ステップ604で、各サブブ
ロックに対するサブブロック・チェックビットを生成す
る。サブブロック・チェックビットは、サブブロック内
のエラーを検出するために使用される。1つの実施形態
では、サブブロック・チェックビットは、サブブロック
内のデータ・ビットに対するパリティ・ビットである。
ステップ606で、複合サブブロックを生成する。複合
サブブロックは、サブブロックの列方向の排他的論理和
である。複合サブブロックは計算専用であり、データ・
ブロックとともに格納されないことに留意されたい。
【0038】ステップ608で、複合サブブロックに対
して複合チェックビットを生成する。複合チェックビッ
トは複合サブブロックに対するエラーコードである。複
合チェックビットは、複合サブブロック内のエラーのビ
ット位置を検出し、突き止めるために使用される。1つ
の実施形態では、複合チェックビットは複合サブブロッ
クに対する単一エラー訂正ハミング符合である。ステッ
プ610で、サブブロック・チェックビットを使用し
て、サブブロック内のビットエラーを検出する。ステッ
プ612で、複合チェックビットを使用して、複合サブ
ブロック内のエラーのビット位置を検出する。複合サブ
ブロック内のエラーのビット位置は、エラービットを含
んでいるサブブロック内のエラーのビット位置を示す。
ステップ614で、サブブロック・チェックビットおよ
び複合チェックビットによって識別されたビットを反転
させることによってエラービットを訂正する。
【0039】次に図7を参照すると、サブブロック・パ
リティ・ビットにより単一ビットエラーを訂正するため
のキャッシュおよびシステム・メモリを備えたコンピュ
ータ・システムのブロック図が示されている。コンピュ
ータ・システム700は、キャッシュ725、システム
・メモリ720、バス730、および周辺装置770お
よび775を含んでいる。コンピュータ・システム70
0は例示のためのものにすぎず、他の多くの構成が考え
られることに留意されたい。システム・メモリ720お
よびキャッシュ725はともに、記憶ユニット702、
コントローラ708、および本発明によるエラー訂正ユ
ニット706をそれぞれ含んでいる。キャッシュ・ユニ
ット725はプロセッサ710に含まれていることにも
留意されたい。さらに、キャッシュまたはシステム・メ
モリは本発明によるエラー検出ユニット706を含んで
いる。図示されているバス730は、簡単のためにシス
テム・バスであるが、コンピュータ・システム700は
他のバスを含んでいることがある。プロセッサ710中
で実行される命令は、バス730を介して、プロセッサ
710、キャッシュ725、システム・メモリ720、
周辺装置770および775の間のデータ移動を制御す
る。さらに、データ移動はまた、プロセッサ710とキ
ャッシュ725の間、およびキャッシュ725とシステ
ム・メモリ720の間で直接行われる。キャッシュ・コ
ヒーレンシを含んでいる他のアルゴリズムが考えられ
る。バス、プロセッサ、キャッシュ、メモリ、および周
辺装置の数はシステム700内で異なることに留意され
たい。エラー検出ユニット706はまた、キャッシュ7
25および/またはシステム・メモリ720内、または
プロセッサ710、バス730中などこれらの要素の外
部、周辺装置内、あるいはシステムのそのような要素の
組合せに含まれる。
【0040】以上、本発明について特定の実施形態に関
して説明したが、実施形態は例示的なものであり、本発
明の範囲がそれに限定されないことを理解されたい。説
明した実施形態のいかなる変形、変更、追加および改善
も可能である。これらの変形、変更、追加および改善は
首記の請求の範囲に詳記されている本発明の範囲内に入
る。
【図面の簡単な説明】
【図1】プロセッサ、キャッシュ、およびシステム・メ
モリを示すブロック図である。
【図2】キャッシュを示すブロック図である。
【図3】本発明の1つの実施形態によるキャッシュ・エ
ントリの構成を示す図(A)、本発明の1つの実施形態
によるキャッシュ・エントリのサブブロックの構成を示
す図(B)、キャッシュ中に格納されたデータ・ブロッ
クに関連付けられたチェックビット・ブロックの構成を
示す図(C)である。
【図4】単一ビットエラーを訂正するためのエラー訂正
符号を含んでいるデータ・ブロックの編成を示す図であ
る。
【図5】本発明の1つの実施形態による単一ビットエラ
ーを訂正するためのエラー訂正符号を含んでいるデータ
・ブロックの改善された編成を示す図である。
【図6】サブブロック・パリティ・ビットを持つキャッ
シュ内の単一ビットエラーを訂正する方法を示す流れ図
である。
【図7】本発明の1つの実施形態によるキャッシュおよ
びシステム・メモリを備えたコンピュータ・システムを
示すブロック図である。
【符号の説明】
700 コンピュータ・システム 702 記憶ユニット 706 エラー訂正ユニット 710 プロセッサ 720 システム・メモリ 725 キャッシュ 770、775 周辺装置
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ロバート・サイファ アメリカ合衆国・95030・カリフォルニア 州・ロス ガトス・マッソル アヴェニ ュ・347・アパートメント 702

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータ・ビットと複数のチェック
    ・ビットとを含んでいるデータ・ブロック中のビットエ
    ラーを訂正するメモリ・システムであって、 各サブブロックが複数のビット位置を含んでおり、かつ
    各サブブロックが前記データ・ブロックの前記複数のビ
    ットの一部分を含んでいる、前記データ・ブロックの複
    数のサブブロックを記憶するように構成された1つまた
    は複数の記憶デバイスと、 前記1つまたは複数の記憶デバイスに結合され、前記デ
    ータ・ブロックの前記複数のビットを受け取って、前記
    サブブロックの各々の中に記憶された前記複数のビット
    の一部分ごとにサブブロック・チェックビットを生成
    し、複合サブブロックを生成し、前記複合サブブロック
    内のエラービットのビット位置を検出するための複合チ
    ェック・ビットを生成するように構成されたエラー訂正
    回路とを含んでおり、 サブブロック・チェックビットおよび前記複合チェック
    ・ビットが前記メモリ・システムの前記1つまたは複数
    の記憶デバイス中に記憶され、 前記1つまたは複数の記憶デバイスからエラービットを
    有するデータ・ブロックが読み取られたときに、前記エ
    ラー訂正回路が前記サブブロック・チェックビットを使
    用して、前記エラービットを含んでいるサブブロックを
    決定し、前記複合チェック・ビットを使用して、前記エ
    ラービットを含んでいる前記サブブロック内の前記エラ
    ービットのビット位置を決定するメモリ・システム。
  2. 【請求項2】 前記サブブロック・チェックビットが前
    記複数のサブブロック内の前記データ・ブロックの前記
    複数のビットの一部分用のパリティ・ビットである請求
    項1に記載のメモリ・システム。
  3. 【請求項3】 前記複合サブブロックの前記複合チェッ
    ク・ビットの各ビットが前記複数のサブブロックの対応
    するサブブロック内のビットの列方向の排他的論理和で
    ある請求項2に記載のメモリ・システム。
  4. 【請求項4】 前記複合サブブロックの各ビット位置が
    前記複数のサブブロックの前記ビット位置のうちの1つ
    に対応する請求項2に記載のメモリ・システム。
  5. 【請求項5】 前記複合チェック・ビットが前記複合サ
    ブブロックに対して単一のエラー訂正ハミング符号であ
    る請求項3に記載のメモリ・システム。
  6. 【請求項6】 複数のデータ・ビットと複数のチェック
    ・ビットとを含んでいるデータ・ブロック中に記憶され
    たデータ・ブロック中のビットエラーを訂正するキャッ
    シュであって、 各サブブロックが複数のビット位置を含んでおり、かつ
    各サブブロックが前記データ・ブロックの前記複数のビ
    ットの一部分を含んでいる前記データ・ブロックの複数
    のサブブロックを記憶するように構成された記憶デバイ
    スと、 前記記憶デバイスに結合され、前記データ・ブロックの
    前記複数のビットを受け取って、前記サブブロック中に
    記憶された前記複数のビットの一部分ごとにサブブロッ
    ク・チェックビットを生成し、複合サブブロックを生成
    し、前記複合サブブロック内のエラービットのビット位
    置を検出するために使用される複合チェック・ビットを
    生成するように構成されたエラー訂正回路とを含んでお
    り、 サブブロック・チェックビットおよび前記複合チェック
    ・ビットがメモリ・システムの前記記憶デバイス中に記
    憶され、 前記記憶デバイスからエラービットを有するデータ・ブ
    ロックが読み取られたときに、前記エラー訂正回路が前
    記サブブロック・チェックビットを使用して、前記エラ
    ービットを含んでいるサブブロックを決定し、前記複合
    チェック・ビットを使用して、前記エラービットを含ん
    でいる前記サブブロック内の前記エラービットのビット
    位置を決定するキャッシュ。
  7. 【請求項7】 前記サブブロック・チェックビットが前
    記複数のサブブロック内の前記データ・ブロックの前記
    複数のビットの一部分用のパリティ・ビットである請求
    項6に記載のキャッシュ。
  8. 【請求項8】 前記複合サブブロックの前記複合チェッ
    ク・ビットの各ビットが前記複数のサブブロックの対応
    するサブブロック内のビットの列方向の排他的論理和で
    ある請求項7に記載のキャッシュ。
  9. 【請求項9】 前記複合サブブロックの各ビット位置が
    前記複数のサブブロックの前記ビット位置のうちの1つ
    に対応する請求項7に記載のキャッシュ。
  10. 【請求項10】 前記複合チェック・ビットが前記複合
    サブブロックに対して単一のエラー訂正ハミング符号を
    実施する請求項8に記載のキャッシュ。
  11. 【請求項11】 プロセッサと、 バスと、 前記プロセッサおよび前記バスに結合されたメモリとを
    含んでいるコンピュータ・システムであって、前記メモ
    リが、 複数のデータ・ビットと複数のチェック・ビットとを含
    んでいるデータ・ブロックであって、複数のサブブロッ
    ク中に記憶され、各サブブロックが複数のビット位置を
    含んでおり、かつ各サブブロックが前記データ・ブロッ
    クの前記複数のビットの一部分を含んでいるデータ・ブ
    ロックを記憶するように構成された1つまたは複数の記
    憶デバイスと、 前記1つまたは複数の記憶デバイスに結合され、前記デ
    ータ・ブロックの前記複数のビットを受け取って、前記
    サブブロックの各々の中に記憶された前記複数のビット
    の一部分ごとにサブブロック・チェックビットを生成
    し、複合サブブロックを生成し、前記複合サブブロック
    内のエラービットのビット位置を検出するために使用さ
    れる複合チェック・ビットを生成するように構成された
    エラー訂正回路とを含んでおり、 サブブロック・チェックビットおよび前記複合チェック
    ・ビットが前記メモリ・システムの前記1つまたは複数
    の記憶デバイス中に記憶され、 前記1つまたは複数の記憶デバイスからエラービットを
    有するデータ・ブロックが読み取られたときに、前記エ
    ラー訂正回路が前記サブブロック・チェックビットを使
    用して、前記エラービットを含んでいるサブブロックを
    決定し、前記複合チェック・ビットを使用して、前記エ
    ラービットを含んでいる前記サブブロック内の前記エラ
    ービットのビット位置を決定するコンピュータ・システ
    ム。
  12. 【請求項12】 前記サブブロック・チェックビットが
    前記複数のサブブロック内の前記データ・ブロックの前
    記複数のビットの一部分用のパリティ・ビットである請
    求項11に記載のコンピュータ・システム。
  13. 【請求項13】 前記複合サブブロックの前記複合チェ
    ック・ビットの各ビットが前記複数のサブブロックの対
    応するサブブロック内のビットの列方向の排他的論理和
    である請求項12に記載のコンピュータ・システム。
  14. 【請求項14】 前記複合サブブロックの各ビット位置
    が前記複数のサブブロックの前記ビット位置のうちの1
    つに対応する請求項13に記載のコンピュータ・システ
    ム。
  15. 【請求項15】 前記複合チェック・ビットが前記複合
    サブブロックに対して単一のエラー訂正ハミング符号を
    実施する請求項14に記載のコンピュータ・システム。
  16. 【請求項16】 複数のデータ・ビットと複数のチェッ
    ク・ビットとを含んでいる複数のビットを含んでいるデ
    ータ・ブロック中のビットエラーを訂正する方法であっ
    て、 前記データ・ブロックを複数のサブブロックに分割する
    ステップであって、各サブブロックが複数のビット位置
    を含んでいるステップと、 前記データ・ブロックの第1の複数のビットに対して第
    1のサブブロック・チェックビットを生成するステップ
    であって、前記第1の複数のビットが第1のサブブロッ
    クに割り当てられ、前記第1のサブブロック・チェック
    ビットが前記第1のサブブロック内の前記第1の複数の
    ビット内のエラーを検出するために使用されるステップ
    と、 複合サブブロックを生成するステップであって、前記複
    合サブブロックが複数の複合チェック・ビットを含んで
    おり、前記複合サブブロック内の各ビットが前記複数の
    サブブロック中のビット位置に対応するステップと、 前記複合サブブロック用の前記複合チェック・ビットを
    生成するステップであって、前記複合チェック・ビット
    が前記複合サブブロック中のビットエラーを検出し位置
    指定するために使用されるステップと、 前記第1のサブブロック・チェックビットを使用して前
    記第1のサブブロック中のエラービットを検出し、前記
    複合チェック・ビットを使用して前記エラービットのビ
    ット位置を決定するステップと、 前記エラービットを反転させるステップとを含んでいる
    方法。
  17. 【請求項17】 前記第1のサブブロック・チェックビ
    ットが前記第1のサブブロック内のビットのパリティ・
    ビットである請求項16に記載の方法。
  18. 【請求項18】 前記複合サブブロックの前記複合チェ
    ック・ビットの各ビットが前記複数のサブブロックの対
    応するサブブロック内のビットの列方向の排他的論理和
    である請求項17に記載の方法。
  19. 【請求項19】 前記複合サブブロックの各ビット位置
    が前記サブブロックの前記ビット位置のうちの1つに対
    応する請求項18に記載の方法。
  20. 【請求項20】 前記複合チェック・ビットが前記複合
    サブブロックに対して単一のエラー訂正ハミング符号を
    実施する請求項18に記載の方法。
  21. 【請求項21】 前記サブブロックの各サブブロック内
    の前記データ・ブロックから分割された複数のビットに
    対してサブブロック・チェックビットが生成される請求
    項20に記載の方法。
  22. 【請求項22】 前記サブブロック・チェックビットお
    よび前記複合チェック・ビットが前記データ・ブロック
    の前記複数のビットとともに記憶デバイス中に記憶され
    る請求項21に記載の方法。
  23. 【請求項23】 前記データ・ブロックの前記複数のビ
    ットが前記記憶デバイスから読み取られたときに前記サ
    ブブロック・チェックビットが再生される請求項22に
    記載の方法。
  24. 【請求項24】 再生された前記サブブロック・チェッ
    クビットと前記データ・ブロックの前記複数のビットと
    ともに記憶された前記サブブロック・チェックビットと
    を比較することによってエラービットを含んでいるサブ
    ブロックが検出される請求項23に記載の方法。
  25. 【請求項25】 前記データ・ブロックの前記複数のビ
    ットが前記記憶デバイスから読み取られたときに前記複
    合サブブロック用のシンドローム・ビットが生成され、
    前記シンドローム・ビットが前記エラービットのビット
    位置を識別する請求項24に記載の方法。
  26. 【請求項26】 複数のデータ・ビットと複数のチェッ
    ク・ビットとを含んでいる複数のビットを含んでいるデ
    ータ・ブロック中のビットエラーを訂正する装置であっ
    て、 前記データ・ブロックを複数のサブブロックに分割する
    手段であって、各サブブロックが複数のビット位置を含
    んでいる手段と、 前記データ・ブロックの第1の複数のビットに対して第
    1のサブブロック・チェックビットを生成する手段であ
    って、前記第1の複数のビットが第1のサブブロックに
    割り当てられ、前記第1のサブブロック・チェックビッ
    トが前記第1のサブブロック内の前記第1の複数のビッ
    ト内のエラーを検出するために使用される手段と、 複合サブブロックを生成する手段であって、前記複合サ
    ブブロックが複数の複合チェック・ビットを含んでお
    り、前記複合サブブロック内の各ビットが前記複数のサ
    ブブロック中のビット位置に対応する手段と、 前記複合サブブロック用の前記複合チェック・ビットを
    生成する手段であって、前記複合チェック・ビットが前
    記複合サブブロック中のビットエラーを検出し位置指定
    するために使用される手段と、 前記第1のサブブロック・チェックビットを使用して前
    記第1のサブブロック中のエラービットを検出し、前記
    複合チェック・ビットを使用して前記エラービットのビ
    ット位置を決定する手段と、 前記エラービットを反転させる手段とを含んでいる装
    置。
  27. 【請求項27】 前記第1のサブブロック・チェックビ
    ットが前記第1のサブブロック内のビットのパリティ・
    ビットである請求項26に記載の装置。
  28. 【請求項28】 前記複合サブブロックの前記複合チェ
    ック・ビットの各ビットが前記複数のサブブロックの対
    応するサブブロック内のビットの列方向の排他的論理和
    である請求項27に記載の装置。
  29. 【請求項29】 前記複合サブブロックの各ビット位置
    が前記サブブロックの前記ビット位置のうちの1つに対
    応する請求項28に記載の装置。
  30. 【請求項30】 前記複合チェック・ビットが前記複合
    サブブロックに対して単一のエラー訂正ハミング符号を
    実施する請求項28に記載の装置。
  31. 【請求項31】 前記サブブロックの各サブブロック内
    の前記データ・ブロックから分割された複数のビットに
    対してサブブロック・チェックビットが生成される請求
    項30に記載の装置。
  32. 【請求項32】 前記サブブロック・チェックビットお
    よび前記複合チェック・ビットが前記データ・ブロック
    の前記複数のビットとともに記憶デバイス中に記憶され
    る請求項31に記載の装置。
  33. 【請求項33】 前記データ・ブロックの前記複数のビ
    ットが前記記憶デバイスから読み取られたときに前記サ
    ブブロック・チェックビットが再生される請求項32に
    記載の装置。
  34. 【請求項34】 再生された前記サブブロック・チェッ
    クビットと前記データ・ブロックの前記複数のビットと
    ともに記憶された前記サブブロック・チェックビットと
    を比較することによってエラービットを含んでいるサブ
    ブロックが検出される請求項33に記載の装置。
  35. 【請求項35】 前記データ・ブロックの前記複数のビ
    ットが前記記憶デバイスから読み取られたときに前記複
    合サブブロック用のシンドローム・ビットが生成され、
    前記シンドローム・ビットが前記エラービットのビット
    位置を識別する請求項34に記載の装置。
JP11270284A 1998-09-24 1999-09-24 メモリシステム、コンピュ―タシステムおよびデ―タ・ブロック中のビットエラ―を訂正する方法 Pending JP2000112830A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/160,214 1998-09-24
US09/160,214 US6304992B1 (en) 1998-09-24 1998-09-24 Technique for correcting single-bit errors in caches with sub-block parity bits

Publications (1)

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

Family

ID=22575982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11270284A Pending JP2000112830A (ja) 1998-09-24 1999-09-24 メモリシステム、コンピュ―タシステムおよびデ―タ・ブロック中のビットエラ―を訂正する方法

Country Status (4)

Country Link
US (2) US6304992B1 (ja)
EP (1) EP0989492B1 (ja)
JP (1) JP2000112830A (ja)
DE (1) DE69910320T2 (ja)

Families Citing this family (42)

* 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
US6408417B1 (en) * 1999-08-17 2002-06-18 Sun Microsystems, Inc. Method and apparatus for correcting soft errors in digital data
US6543029B1 (en) * 1999-09-29 2003-04-01 Emc Corporation Error corrector
US6493843B1 (en) * 1999-10-28 2002-12-10 Hewlett-Packard Company Chipkill for a low end server or workstation
JP4712214B2 (ja) * 2001-04-09 2011-06-29 富士通セミコンダクター株式会社 半導体メモリの動作制御方法および半導体メモリ
US6859904B2 (en) * 2001-05-11 2005-02-22 Sun Microsystems, Inc. Apparatus and method to facilitate self-correcting memory
US6760814B2 (en) 2001-12-17 2004-07-06 Lsi Logic Corporation Methods and apparatus for loading CRC values into a CRC cache in a storage controller
US6772289B1 (en) * 2001-12-17 2004-08-03 Lsi Logic Corporation Methods and apparatus for managing cached CRC values in a storage controller
US6901551B1 (en) 2001-12-17 2005-05-31 Lsi Logic Corporation Method and apparatus for protection of data utilizing CRC
US7065697B2 (en) * 2003-07-29 2006-06-20 Hewlett-Packard Development Company, L.P. Systems and methods of partitioning data to facilitate error correction
US7051265B2 (en) * 2003-07-29 2006-05-23 Hewlett-Packard Development Company, L.P. Systems and methods of routing data to facilitate error correction
US7073024B1 (en) * 2003-09-30 2006-07-04 Emc Corporation Data protection method wherein data protection code is stored together with parity
US7472330B2 (en) * 2003-11-26 2008-12-30 Samsung Electronics Co., Ltd. Magnetic memory which compares compressed fault maps
US7116600B2 (en) * 2004-02-19 2006-10-03 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data
US7353437B2 (en) * 2004-10-29 2008-04-01 Micron Technology, Inc. System and method for testing a memory for a memory failure exhibited by a failing memory
US7587658B1 (en) 2005-01-03 2009-09-08 Sun Microsystems, Inc. ECC encoding for uncorrectable errors
US7577890B2 (en) 2005-01-21 2009-08-18 Hewlett-Packard Development Company, L.P. Systems and methods for mitigating latency associated with error detection and correction
US7350131B2 (en) * 2005-01-22 2008-03-25 Cisco Technology, Inc. Error protecting groups of data words
US7478307B1 (en) 2005-05-19 2009-01-13 Sun Microsystems, Inc. Method for improving un-correctable errors in a computer system
US7653862B2 (en) 2005-06-15 2010-01-26 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US7523342B1 (en) 2005-10-28 2009-04-21 Sun Microsystems, Inc. Data and control integrity for transactions in a computer system
US8074153B2 (en) * 2005-12-12 2011-12-06 Mediatek Inc. Error correction devices and correction methods
US7802169B2 (en) * 2005-12-12 2010-09-21 Mediatek Inc. Error correction devices and correction methods
DE102006005836B4 (de) * 2006-02-08 2009-01-02 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Erzeugen von zur Fehlererkennung bei einer digitalen Schaltung auswertbaren Kontrollbits und Anordnung zum Überwachen einer digitalen Schaltung
US7478203B2 (en) * 2006-03-08 2009-01-13 Sun Microsystems, Inc. Technique for eliminating dead stores in a processor
JP4648255B2 (ja) * 2006-06-26 2011-03-09 アラクサラネットワークス株式会社 情報処理装置および情報処理方法
US7890836B2 (en) * 2006-12-14 2011-02-15 Intel Corporation Method and apparatus of cache assisted error detection and correction in memory
US8078942B2 (en) * 2007-09-04 2011-12-13 Oracle America, Inc. Register error correction of speculative data in an out-of-order processor
JP4978576B2 (ja) * 2008-07-03 2012-07-18 株式会社Jvcケンウッド 符号化方法および符号化装置ならびに復号方法および復号装置
US8307258B2 (en) * 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8640005B2 (en) * 2010-05-21 2014-01-28 Intel Corporation Method and apparatus for using cache memory in a system that supports a low power state
US8392807B2 (en) 2010-07-23 2013-03-05 Sandisk Technologies Inc. System and method of distributive ECC processing
US8418026B2 (en) * 2010-10-27 2013-04-09 Sandisk Technologies Inc. Hybrid error correction coding to address uncorrectable errors
KR101751506B1 (ko) 2011-03-28 2017-06-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법
US8578241B2 (en) 2011-10-10 2013-11-05 Lsi Corporation Systems and methods for parity sharing data processing
US8862960B2 (en) 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US9054840B2 (en) 2011-12-15 2015-06-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Error detection and correction of a data transmission
US9600359B2 (en) 2012-05-31 2017-03-21 Hewlett Packard Enterprise Development Lp Local error detection and global error correction
US9604765B2 (en) 2013-03-14 2017-03-28 Ahhmigo, Llc Locking cap device and methods
JP2014211800A (ja) * 2013-04-19 2014-11-13 株式会社東芝 データ記憶装置、ストレージコントローラおよびデータ記憶制御方法
KR102296738B1 (ko) * 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법
CN108170556A (zh) * 2018-01-18 2018-06-15 江苏华存电子科技有限公司 纠错码生成与校验矩阵的保护方法及矩阵存储/产生装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE30187E (en) 1972-11-15 1980-01-08 International Business Machines Corporation Plural channel error correcting apparatus and methods
US4211997A (en) * 1978-11-03 1980-07-08 Ampex Corporation Method and apparatus employing an improved format for recording and reproducing digital audio
US4334309A (en) 1980-06-30 1982-06-08 International Business Machines Corporation Error correcting code system
US4358848A (en) 1980-11-14 1982-11-09 International Business Machines Corporation Dual function ECC system with block check byte
JPS57136833A (en) * 1981-02-17 1982-08-24 Sony Corp Time-division multiplex data transmitting method
GB2095440B (en) * 1981-03-23 1985-10-09 Sony Corp Digital television signal processing
ATE128585T1 (de) * 1983-12-20 1995-10-15 Sony Corp Verfahren und vorrichtung zur dekodierung eines fehlerkorrigierenden kodes.
US4617664A (en) * 1984-06-29 1986-10-14 International Business Machines Corporation Error correction for multiple bit output chips
US4675863A (en) * 1985-03-20 1987-06-23 International Mobile Machines Corp. Subscriber RF telephone system for providing multiple speech and/or data signals simultaneously over either a single or a plurality of RF channels
CA1264091A (en) * 1986-01-10 1989-12-27 Yoichiro Sako Generator for error correcting code and decoder for the code
US4845664A (en) 1986-09-15 1989-07-04 International Business Machines Corp. On-chip bit reordering structure
IT1202527B (it) 1987-02-12 1989-02-09 Honeywell Inf Systems Sistema di memoria e relativo apparato di rivelazione-correzione di errore
JPH0821238B2 (ja) 1987-11-12 1996-03-04 三菱電機株式会社 半導体記憶装置
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
US5144304A (en) * 1989-07-17 1992-09-01 Digital Equipment Corporation Data and forward error control coding techniques for digital signals
US5251219A (en) * 1990-09-10 1993-10-05 Advanced Micro Devices, Inc. Error detection and correction circuit
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
US5245428A (en) * 1991-05-10 1993-09-14 U.S. Philips Corporation Television system for transmitting picture signals in a digital format
US5369650A (en) * 1991-11-22 1994-11-29 Honeywell, Inc. Error detection and correction apparatus in a BY-4 RAM Device
US5537426A (en) 1992-05-29 1996-07-16 Goldstar Co., Ltd. Operation apparatus for deriving erasure position Γ(x) and Forney syndrome T(x) polynomials of a Galois field employing a single multiplier
US5444490A (en) * 1992-07-07 1995-08-22 U.S. Philips Corporation Television system for transmitting pictures in a digital form
KR0168896B1 (ko) * 1993-09-20 1999-02-01 세키자와 다다시 패리티에 의해 에러를 수정할 수 있는 반도체 메모리장치
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 情報記録媒体及び情報記録再生方法
US5841795A (en) * 1996-02-12 1998-11-24 Compaq Computer Corporation Error correction codes
US5922080A (en) * 1996-05-29 1999-07-13 Compaq Computer Corporation, Inc. Method and apparatus for performing error detection and correction with memory devices
US5784391A (en) 1996-10-08 1998-07-21 International Business Machines Corporation Distributed memory system with ECC and method of operation
US5978953A (en) * 1996-12-19 1999-11-02 Compaq Computer Corporation error detection and correction
US6035432A (en) * 1997-07-31 2000-03-07 Micron Electronics, Inc. System for remapping defective memory bit sets
US6141789A (en) 1998-09-24 2000-10-31 Sun Microsystems, Inc. Technique for detecting memory part failures and single, double, and triple bit errors
US6304992B1 (en) * 1998-09-24 2001-10-16 Sun Microsystems, Inc. Technique for correcting single-bit errors in caches with sub-block parity bits
US6301680B1 (en) 1998-09-24 2001-10-09 Sun Microsystems, Inc. Technique for correcting single-bit errors and detecting paired double-bit errors
US6233716B1 (en) 1998-09-24 2001-05-15 Sun Microsystems, Inc. Technique for partitioning data to correct memory part failures
US6282686B1 (en) 1998-09-24 2001-08-28 Sun Microsystems, Inc. Technique for sharing parity over multiple single-error correcting code words

Also Published As

Publication number Publication date
EP0989492A3 (en) 2000-10-11
EP0989492B1 (en) 2003-08-13
EP0989492A2 (en) 2000-03-29
US6584595B2 (en) 2003-06-24
US20020038442A1 (en) 2002-03-28
US6304992B1 (en) 2001-10-16
DE69910320T2 (de) 2004-06-17
DE69910320D1 (de) 2003-09-18

Similar Documents

Publication Publication Date Title
EP0989492B1 (en) Technique for correcting single-bit errors in caches with sub-block parity bits
US7376877B2 (en) Combined tag and data ECC for enhanced soft error recovery from cache tag errors
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
EP0989491B1 (en) Technique for partioning data to correct memory part failures
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6691205B2 (en) Method for using RAM buffers with simultaneous accesses in flash based storage systems
EP0535086B1 (en) Multiple error correction in a computer memory
US4780809A (en) Apparatus for storing data with deferred uncorrectable error reporting
US6480975B1 (en) ECC mechanism for set associative cache array
US4651321A (en) Apparatus for reducing storage necessary for error correction and detection in data processing machines
US20070268905A1 (en) Non-volatile memory error correction system and method
US7587658B1 (en) ECC encoding for uncorrectable errors
JPH0337218B2 (ja)
JP2000134111A (ja) 単一ビットのエラ―を訂正し、対になった二重ビットのエラ―を検出する装置と方法
JP2004514184A (ja) デジタル・データにおけるソフト・エラーを訂正するための方法および装置
JP3922844B2 (ja) キャッシュtag制御方法及びこの制御方法を用いた情報処理装置
JP2002525747A (ja) メモリ部品の故障およびシングル、ダブル、トリプル・ビット・エラーを検出するための方法
JPH09146836A (ja) キャッシュ索引の障害訂正装置
US6901551B1 (en) Method and apparatus for protection of data utilizing CRC
JPH0594377A (ja) パリテイ検出回路
US5838892A (en) Method and apparatus for calculating an error detecting code block in a disk drive controller
US6505318B1 (en) Method and apparatus for partial error detection and correction of digital data
US6567952B1 (en) Method and apparatus for set associative cache tag error detection