JP2004318870A - Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法 - Google Patents

Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法 Download PDF

Info

Publication number
JP2004318870A
JP2004318870A JP2004103887A JP2004103887A JP2004318870A JP 2004318870 A JP2004318870 A JP 2004318870A JP 2004103887 A JP2004103887 A JP 2004103887A JP 2004103887 A JP2004103887 A JP 2004103887A JP 2004318870 A JP2004318870 A JP 2004318870A
Authority
JP
Japan
Prior art keywords
data
bit
ecc
bits
matrix
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.)
Granted
Application number
JP2004103887A
Other languages
English (en)
Other versions
JP4019061B2 (ja
Inventor
Robert Alan Cargnoni
ロバート・アラン・カーグノニ
Lynn Guthrie Guy
ガイ・リン・ガスリー
Kirk Samuel Livingston
カーク・サミュエル・リビングストン
William John Starke
ウィリアム・ジョン・スターク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004318870A publication Critical patent/JP2004318870A/ja
Application granted granted Critical
Publication of JP4019061B2 publication Critical patent/JP4019061B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16FSPRINGS; SHOCK-ABSORBERS; MEANS FOR DAMPING VIBRATION
    • F16F9/00Springs, vibration-dampers, shock-absorbers, or similarly-constructed movement-dampers using a fluid or the equivalent as damping medium
    • F16F9/32Details
    • F16F9/34Special valve constructions; Shape or construction of throttling passages
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16FSPRINGS; SHOCK-ABSORBERS; MEANS FOR DAMPING VIBRATION
    • F16F9/00Springs, vibration-dampers, shock-absorbers, or similarly-constructed movement-dampers using a fluid or the equivalent as damping medium
    • F16F9/32Details
    • F16F9/3207Constructional features
    • F16F9/3235Constructional features of cylinders
    • F16F9/3242Constructional features of cylinders of cylinder ends, e.g. caps
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes

Landscapes

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

Abstract

【課題】複数のビットNを有するデータをエラー訂正コード(ECC)マトリクスに適用してECC保護された機構におけるエラーを訂正する方法を提供する。
【解決手段】ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿ってECCマトリクスにセットされる。ECCマトリクスは、各行において奇数ビットのセットを有する。エラーが検出されたとき及びそれが訂正されたときデータは反転され、キャッシュ・アレーに再書き込みされる。現在ストアされているデータが反転されていることを表すために、このエントリの対応する反転ビットがセットされる。その後、データがアレーから再読み取りされ、そしてハード障害(固定ビット)によるエラーがあった場合、反転が障害ビットの値を固定値に変更しているので、それは正しく見える。
【選択図】図5

Description

本発明は、概して云えば、データ処理システムに関し、詳しく云えば、キャッシュ・メモリ、バス又は通信リンク、チップ・インターフェース、或いは、エラー訂正コード(ECC)を使用し得る、他のロケーションのような、コンピュータ・システムのECC保護された機構における誤ったデータ・ビットを訂正するための方法及びシステムに関するものである。
図1には、一般的なコンピュータ・システム10の基本的な構造が示される。コンピュータ・システム10は、1つ又はそれ以上の処理ユニットを有する。そのうちの2つ、即ち、処理ユニット12a及び12bが示され、それらは、入出力(I/O)装置14(例えば、ディスプレイ・モニタ、キーボード、及び永続記憶装置)、プログラム命令を実行するために処理ユニットによって使用されるメモリ装置16(例えば、ランダム・アクセス・メモリ、即ち、RAM)、及びコンピュータが最初にオンにされる時にいつも周辺装置の1つ(通常は、永続記憶装置)を見つけ出し且つそこからオペレーティング・システムをロードすることを目的とするファームウェア(ROS)18を含む。処理ユニット12a及び12bは、汎用の相互接続線又はバス20を含む種々の手段によって周辺装置とコミュニケーションを行う。コンピュータ・システム10は、例えば、モデム又はプリンタに接続するためのシリアル・バス・ポート、パラレル・バス・ポート、又は汎用バス・ポートのような図示されてない更なる多くのコンポーネントを持ち得る。図1のブロック図に示されたコンポーネントと関連して使用可能な他のコンポーネントが存在すること、例えば、ディスプレイ・アダプタがビデオ・ディスプレイ・モニタを制御するために使用可能であり、メモリ・コントローラがメモリ16をアクセスするために使用可能であること等は、当業者には明らかであろう。更に、I/O装置14をバス20に直接接続する代わりに、バス20に対するI/Oブリッジに更に接続される二次(I/O)バスにそれらを接続することも可能である。コンピュータは、2つよりも多くの処理ユニットを持つことも可能である。
対称マルチプロセッサ(SMP)コンピュータでは、すべての処理ユニットが総体的には同じである。即ち、それらはすべて共通の命令セット又はサブセット及び操作するためのプロトコルを使用し、一般には、同じアーキテクチャを有する。代表的なアーキテクチャが図1に示される。処理ユニットは、コンピュータを操作するためにプログラム命令を実行する複数のレジスタ及び実行ユニットを有するプロセッサ・コア22を含む。例示の処理ユニットは、インターナショナル・ビジネス・マシーンズ・コーポレーションによって販売されているPowerPC(商標)プロセッサを含む。更に、その処理ユニットは、高速メモリ装置を使用して実装される命令キャッシュ24及びデータ・キャッシュ26のような1つ又は複数のキャッシュを持ち得る。キャッシュは、一般に、プロセッサによって繰り返しアクセスされる値を一時的にストアするために使用され、それによって、メモリ16からそれらの値をロードする長いステップを回避することにより処理の速度を上げる。これらのキャッシュは、それらが単一の集積チップ28上にプロセッサ・コアと統合的にパッケージされるとき、「オンボード」と呼ばれる。各キャッシュは、プロセッサ・コアとキャッシュ・メモリとの間のデータ転送を管理するキャッシュ・コントローラ(図示されてない)と関連付けられる。
処理ユニット12は、キャッシュ30のような更なるキャッシュを含み得る。キャッシュ30は、オンボード(レベル1)キャッシュ24をサポートするのでレベル2(L2)キャッシュと呼ばれる。換言すれば、キャッシュ30は、メモリ16とそれらのオンボード・キャッシュとの間の中間体として作用し、オンボード・キャッシュよりも遥かに大量の情報(命令及びデータ)を、しかし、より長いアクセス・ペナルティでストアする。例えば、キャッシュ30は、256又は512キロバイトの記憶容量を有するチップであってもよく、一方、プロセッサは、64キロバイトの総記憶容量を持つオンボード・キャッシュを有するIBM PowerPC604シリーズ・プロセッサであってもよい。キャッシュ30はバス20に接続され、通常、メモリ16からプロセッサ・コア22への情報のローディングはすべてキャッシュ30を通過する。図1は2レベルのキャッシュ階層だけを示しているが、多くレベルの相互接続されたキャッシュが存在するマルチレベル・キャッシュ階層を設けることも可能である。
キャッシュは、種々の命令及びデータ値を個々にストアする多くの「ブロック」を有する。いずれのキャッシュにおけるブロックも、「セット」又は「合同クラス(congruence class)」と呼ばれるブロックのグループに分割される。セットは、所与のメモリ・ブロックが常駐し得るキャッシュ・ブロックの集合体である。いずれの所与のメモリ・ブロックに対しても、プリセット・マッピング機能に従って、そのブロックがマップされ得る一意的なセットがキャッシュに存在する。1つのセットにおけるブロックの数は、キャッシュの関連性(associativity)と呼ばれる。例えば、2ウェイ・セット・アソシエイティブ(2-wayset associative)は、いずれの所与のメモリ・ブロックに対しても、そのメモリ・ブロックがマップされ得る2つのブロックがキャッシュに存在するが、メイン・メモリにおける幾つかの異なるブロックが任意の所与のセットにマップされ得るということを意味する。1ウェイ・セット・アソシエイティブはダイレクト・マップされる。即ち、特定のメモリ・ブロックを含み得る唯一のキャッシュ・ブロックが存在する。メモリ・ブロックが任意のキャッシュ・ブロックを占有し得る場合、即ち、1つの合同クラスが存在する場合、キャッシュは十分に関連している(associative)と言われ、アドレス・タグはメモリ・ブロックのフル・アドレスである。
典型的なキャッシュ・ライン(ブロック)は、アドレス・タグ・フィールド、状態ビット・フィールド、包含性(inclusivity)ビット・フィールド、及び実際の命令又はデータをストアするための値フィールドを含む。状態ビット・フィールド及び包含性ビット・フィールドは、マルチプロセッサ・コンピュータ・システムにおいてキャッシュ・コヒーレンシを維持するために(キャッシュにストアされた値の妥当性を表すために)使用される。アドレス・タグは、対応するメモリ・ブロックのフル・アドレスのサブセットである。着信アドレスとアドレス・タグ・フィールド内のタグの1つとの比較一致は、キャッシュ「ヒット」を表す。キャッシュにおけるすべてのアドレス・タグ(及び、時には、状態ビット・フィールド及び包含性ビット・フィールド)の集合体はディレクトリと呼ばれ、すべての値フィールドの集合体はキャッシュ・エントリ・アレーである。
所与のキャッシュに対する合同クラスにおけるすべてのブロックがフルであり、そのキャッシュが、完全な合同クラスにマップするメモリ・ロケーションに対するリクエストを、それが「読み取り」であろうと「書き込み」であろうと、受けるとき、キャッシュは、現時点でそのクラスにあるブロックの1つを排出(evict)しなければならない。キャッシュは、排出されるべきブロックを、当業者に知られた多くの手段の1つ(最低使用頻度(LRU)、無作為、擬似LRU等)によって選定する。選定されたブロックにおけるデータが修正される場合、そのデータは、メモリ階層における最低レベルの次のレベルに書き込まれる。そのレベルは、他のキャッシュ(L1又はオンボード・キャッシュの場合)又はメイン・メモリ(図1の2レベル・アーキテクチャで示されたようなL2キャッシュの場合)であってもよい。包含(inclusion)の原理によって、低いレベルの階層のものは、書き込まれた修正済みデータを保持するために使用可能なブロックを既に持っているであろう。しかし、選定されたブロックにおけるデータが修正されない場合、そのブロックは単に放棄されるだけであり、階層における最低レベルの次のレベルに書き込まれない。階層の1つのレベルからブロックを除去するこのプロセスは、「排出(eviction)」として知られている。このプロセスの終了時に、キャッシュは、最早、その排出されたブロックのコピーを保持しない。
図2は、前述のキャッシュの構造及び排出プロセスを示す。キャッシュ40(L1又は更に低いレベル)は、キャッシュ・ディレクトリ42、キャッシュ・エントリ・アレー44、LRUアレー46、及び特定の合同クラスから排出するためのブロックを選択する制御ロジック48を含む。図示のキャッシュ40は8ウェイ・セット・アソシエイティブであり、従って、ディレクトリ42、キャッシュ・エントリ・アレー44、及びLRUアレー46の各々は、参照番号50で表された特定の合同クラスに対する8ブロックの特定セットを有する。換言すれば、キャッシュ・ディレクトリ42における合同クラスの特定のメンバが、合同クラス50に示された「X」によって表されるように、キャッシュ・エントリ・アレー44における合同クラスの特定のメンバ及びLRUアレー46における合同クラスの特定のメンバと関連付けられる。
ディレクトリ42におけるブロックの各々がエラー訂正コード(ECC)回路52を介して制御ロジックに接続される。所与のキャッシュ・ブロックにおけるビットは、ソフト・エラー(漂遊放射線(stray radiation)又は静電的放電のような)又はハード・エラー(欠陥セル)による間違った値を含み得る。ECCは、適正なデータ・ストリームを再構成するためにも使用可能である。或るECCは、単一ビット・エラーを検出及び訂正するためにのみ使用可能である。即ち、特定のブロックにおける2つ又はそれ以上のビットが無効である場合、ECCは、適切なデータ・ストリームが実際にはどのようなものでなければならないかを決定することができないかもしれないが、少なくとも障害を検出することが可能である。他のECCは更に複雑であり、二重ビット・エラーの検出又は訂正を可能にする。これらの後者のエラーは訂正するには高価であるが、設計のトレードオフは、二重ビット・エラーが生じたときにマシンを停止させることである。ECC回路と共に唯一のディレクトリ42が示されているけれども、これらの回路は、キャッシュ・エントリ・アレー44のような他のアレーと共に同様に使用可能である。
(訂正された)メモリ・ブロック・アドレスに対応する値を有するECC回路52の出力は、各々がリクエストされたメモリ・ブロックのアドレスを受けるそれぞれのコンパレータ54に接続される。リクエストされたメモリ・ブロックの有効なコピーが合同クラス50にある場合、コンパレータ54の1つ及び1つだけがアクティブな信号を出力するであろう。コンパレータ54の出力は、マルチプレクサ56に及びORゲート58にも接続される。ORゲート58の出力はマルチプレクサ56を制御する。キャッシュ・ヒットが生じる(リクエストされたアドレスがキャッシュ・ディレクトリ42におけるアドレスと一致する)場合、ORゲート58は、合同クラスのどのメンバがアドレスに一致するかを表す信号を通過させるようにマルチプレクサ56を作動する。この信号は、キャッシュ・エントリ・アレー44における各エントリから入力を受ける別のマルチプレクサ60を制御する。このように、そのディレクトリにおけるキャッシュ・ヒットが生じるとき、対応する値がマルチプレクサ60を通してバス62に送られる。
キャッシュ・ミスが生じる場合、及び特定の合同クラス50におけるすべてのブロックが既にメモリ・ブロックの有効コピーを有する場合、合同クラス50におけるキャッシュ・ブロックの1つが犠牲のために選択されなければならない。この選択は、LRUアレー46における合同クラスに対してLRUビットを使用して遂行される。そのクラスにおける各キャッシュ・ブロックに対して複数のLRUビットが存在する。例えば、8ウェイ・セット・アソシエイティブ・キャッシュに対して、ブロック当たり3つのLRUビットが存在する。そのクラスにおける各ブロックからのLRUビットが、それらブロックのうちのどれが犠牲にされるべきかを表すための8ビット出力を有するデコーダ64に入力として供給される。この出力はマルチプレクサ56に結合される。このように、ORゲート58がアクティブでない場合、マルチプレクサ56は、デコーダ64の出力に基づいて使用されるべきキャッシュ・ブロックの表示を伝える。
上述のECC回路は、メモリ・セルにおいて生じるソフト・エラーを扱う1つの方法である。ハード・エラーを扱うために使用されるもう1つの方法は、それらアレー(ディレクトリ、LRU、キャッシュ)内に冗長性を設けることである。キャッシュ・チップが製造されるとき、それは、アレーの各々において何らかの障害のある行又は列のラインが存在するかどうかを決定するためにテストされ得る(キャッシュ、ディレクトリ、及びLRU全体に対する行及び列のラインがテストされる)。アレーが障害を持つ場合、それの障害の性質を表すために、ヒューズが恒久的に飛ばされる。各アクセスされたアドレスに対して、それが障害のあるアドレスと一致するかどうかを知るために、アレー内で比較が行われる。それらが一致する場合、適切なロジックが、チップ上に形成された多くのエクストラ行及び列の1つに、即ち、冗長ビット・ライン(列)及びワード・ライン(行)からアドレスを再経路指定する。そのエクストラ・ビット・ライン及びワード・ラインの数は、障害率及び所望のチップ歩留まりに従って変わり得る。低い欠陥(大きな物理的サイズ)のキャッシュに対して、、256個のすべての正規ライン毎に2つのエクストラ・ラインが設けられ、一方、高い欠陥(小さい物理的サイズ)のキャッシュでは、8個の正規ライン毎に2つのエクストラ・ラインが設けられる。
チップの製造及びコンピュータ構成における進歩と共に、L2及びL3キャッシュがサイズを増大させており、より大きなオンチップ・ディレクトリ及びオンチップ(又は、オフチップ)データ・キャッシュ・エントリ・アレーを必要としている。これらの大型の高密度アレーは、製造時に或いはその分野で生じる障害の可能性が増大するために、チップ/システム全体の信頼性を低下させている。これらの大型のディレクトリ/データ・キャッシュの信頼性を高めるために、伝統的に、インライン・パリティ又はECC検出/訂正のような多くの種々な手段がこれらの問題を処理するために使用されてきたが、上記の方法に伴う幾つかの欠点及び制限が存在する。ソフト・エラー(即ち、断続的に生じる障害)は、ディレクトリにおけるデータを修復し、書き換えるECC回路を使用して訂正し得るものであるけれども、この技法は、キャッシュ・ディレクトリ・ビットが高レベル又は低レベルに固定されるハード障害を解決するものではない。インラインECC訂正は、固定障害を訂正するために使用可能であるが、この方法は、訂正が各アクセスと共に必要とされるので、アレーに対するアクセス・タイムに不利に作用し、エラー訂正機能の部分を反復的に消耗させる。冗長なキャッシュ・ラインの使用はハード障害を部分的に克服し得るが、これらの冗長な構造は、それらがチップ又はシステム・ボード上の貴重なスペースを占めることになるので、不経済である。冗長性は、数多くの障害を訂正する能力においても制限される。更に、テストの後に生じるハード・エラーは、冗長ラインを使用して訂正し得るものではない。これらのタイプのハード障害が生じるとき、データを修復及び書き換えようとする一般的なECC回路は、システムが成功することのないエラー訂正を反復的に試みるという状況に通じるであろう。この状況では、マシンは回復し得ず、十分なエラー訂正及び検出リソースが維持されるべき場合、ダウンさせられそして顧客の時間及び金銭を費やして修復されなければならない。
上記に鑑み、キャッシュのようなメモリ・デバイスにおけるハード・エラーを検出/訂正するための改良された方法を創出することが望ましい。その方法が、ディレクトリ・アクセス・タイムに対して不利に働き、従ってシステム・パフォーマンスを低下させる不経済な冗長的回路又はインライン訂正を必要とすることなく実装され得るならば、それは更に有利なことであろう。
従って、本発明の目的は、コンピュータ・システム、特に、キャッシュ・メモリのための改良されたメモリ構造を提供することにある。
本発明のもう1つの目的は、エラー訂正コード(ECC)を利用する改良されたキャッシュ・メモリを提供することにある。
本発明の更にもう1つの目的は、コンピュータ・システムにおけるエラーを、それがキャッシュ・メモリにおけるものであろうと或いはシステム・バス上のものであろうと、検出及び訂正し、しかも、インライン訂正を遅滞させることに頼らずに、ハード・エラー(固定ビット)状態を解決することだできる改良された方法及びシステムを提供することにある。
上記の目的は、多数のビットNを有するデータをエラー訂正コード(ECC)マトリクスに適用してエラー訂正シンドロームを生じさせることによって、コンピュータ・システムのデータ・ビットおけるエラーを訂正する方法において達成される。この場合、ECCマトリクスは、所与の列がデータ・ビットのそれぞれ1つに対応した複数の行及び列を有し、ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿ってECCマトリクスにセットされる。その結果生じたエラー訂正シンドロームが、データ処理システムのロケーションから読み出されたデータにおけるエラーを検出するために解かれる。本発明の図示の実施例では、ECCマトリクスがそれの各行において奇数のビットをセットされる。これらの性質は、ストアされたデータにおけるハード障害を訂正するために反転ビットを使用することを容易にする。エラーが検出され、それが訂正された後、その訂正されたデータが反転され、しかる後、ストレージ又は伝送媒体に再書き込みされる。従って、現在ストアされているデータが反転されていることを表すように、このエントリに対する対応反転ビットがセットされる。しかる後、その媒体からデータが再読み取りされ、エラーがハード障害(固定ビット)によるものであった場合、反転が障害ビットの値を固定値に変えていたので、それは(反転ビットによって表された極性を適用した後)正しく現れるであろう。反転ビットはデータ自体の一部でもあり得る。この場合、ECCマトリクスにおける列の1つが反転ビットに対応し、マトリクスのその列における各ビットがセットされる。このマトリクスは、バス又は通信リンクを含むECCを使用したコンピュータ・システムのいずれのロケーションにも適用可能であり、キャッシュ・メモリのようなメモリ・デバイスにとって特に有用である。システム・バス上にデータと一緒に反転ビットを含むことによって、システム・バスは、そのバス上の既知の固定ビットを補償するようにデータの極性を反転することができる。このECCマトリクスの特定の構成は、たとえ反転ビットにおいてエラー(本発明を使わなければ検出し得ないエラーとなる)が生じても、検出及び訂正を可能にする。反転ビットにおいてエラーが生じた場合、データにおけるすべてのビットが、誤った反転ビットの効果のために誤ったものになる。本発明において定義されたECCマトリクスは、データ及びECCビットのいずれが反転ビット自体におけるエラーを含む場合でも、訂正/検出を可能にするであろう。この技法は、システム・バスが、固定ビットの存在時でも完全なECC保護を維持することを可能にする。
本発明に関する上記及び更なる目的、特徴、及び利点が、以下の詳細に記述された説明によって明らかになるであろう。
「背景技術」の項において説明したように、メモリ・アレー(例えば、キャッシュ)又は通信リンク(例えば、システム・バス)のようなコンピュータ装置におけるハード・エラー(固定ビット)を処理するには、通常のエラー訂正コード(ECC)回路は不十分である。本発明は、固定障害ディレクトリ・アレー状態から回復するために特別のECCマトリクスを使用する新しいハードウェア機構を通して固定ビットの問題を解決する。ECCマトリクスは、キャッシュ・ディレクトリ・アドレス/タグ又はシステム・バス伝送の場合に含まれる新しいビット、即ち、ストアされた情報の相対的極性を表す追加の「反転」ビットに適用するようになっている。以下の説明は、第3レベル(L3)キャッシュ・ディレクトリ・アレーに本発明を実装しているが、値(プログラム命令又はオペランド・データ)を記憶する他のメモリ・デバイスにとってもそれが同様に有用であることは当業者には明らかであろう。
図3は、41個のデータ・ビット及び7個のECCビットを含む48ビット値に対する、従来技術に従って設計されたECCマトリクス70を示す。このマトリクスは、如何なるエラーに対してもアドレス・タグをチェックするための一般的な方法で使用可能である。48個のストアされたビットすべてが正しい場合、訂正がまったく必要ないことを表すために、図3のECCマトリクスを適用すると、その結果として、すべてゼロというシンドロームが生じるであろう。その48ビット値がマトリクスにおける7つの行の各々にXOR態様で個別に適用され、それぞれ、7ビットのシンドロームを生じる。1ビットしか誤りがない場合、その結果生じたシンドロームは、どのビットが誤りであるかを検出するために使用可能である。このオリジナルECCマトリクス70、及び単一ビット訂正/二重ビット検出(SBC/DBC)エラーをカバーするすべての伝統的なECCマトリクスでは、訂正可能なビットに対するシグネチャ(signature)を定義する奇数ビットのセットが各列において存在する。それらの行の或るものが奇数ビットのセットを有するけれども、他の行は、各々が20ビットのセットを有するマトリクス70における行1及び7のような偶数ビットのセットを有する。
図4は、本発明に従って修正された48ビット値に対する電子的ECCマトリクス72の代表例を示す。この特定の方法では、修正は2つの要素から成る。第1に、マトリクス72の1つの列は、ストアされたデータの相対的極性(アクティブ・ロー(active-low)又はアクティブ・ハイ(active-high))を表す反転ビットに対応し、この列は、従来技術のマトリクス70に比べて異なるビットのセットを有する。この例に関しては、反転ビット(IB)は(データ・ビット0:40のうちの)ビット番号30であり、マトリクス72の対応する列におけるすべてのビットがセットされていることが図4においてわかる。第2に、マトリクス72の他の列にビットが加えられており、その結果、そのマトリクスにおける各水平行は奇数ビットのセットを有する。従来技術のマトリクス70に比べると、この特性を生じさせるためにマトリクス72に対して行われた特定の変更は、(IB列30に対するすべてのビットの設定に加えて)データ・ビット1:2に対応する列に対する追加的な設定である。詳しく云えば、2つの追加ビットがデータ・ビット1に対応した列に設定されており、2つの追加ビットがデータ・ビット2に対応した列に設定されている。(従来のマトリクス70に関して)修正された列が図4ではアスタリスクでもってマークされている。すべての列が奇数ビットのセットを持つという同じ結果を得るために、同様の48,41マトリクスにおいて別の設定が使用可能であるということは当業者には明らかであろう。反転ビットをECCマトリクスと関連して説明する必要はない。
この新規なマトリクス構造及び関連のシンドローム・エンコーディングによって、ECCマトリクス72は、次のようなECCによりカバーされた「N」ビット・データ・フィールドに対する特性を得る:
− 単一ビット・エラーの検出;
− マルチビット・エラーの訂正;
− Nビット・エラーの訂正;
− (N−1)ビット・エラーの検出。
最後の2つの特性は、データの極性を表す反転ビットがストアされ、ECCエンコーディングによってカバーされるので、有用である。極性ビットにおける単一ビット・エラーが存在する場合、ECCチェック・ロジックに与えられるデータは「N」ビットすべてを正しくない状態にするであろうが、そのマトリクスはこのケースでは検出及び訂正するために形成される。二重ビットのエラーが生じ、エラーのビットの1つが極性ビットである場合、マトリクスはこの極性を検出し、これが訂正し得ない二重ビット・エラーであることを表す。
図示の実施例では、マトリクスが、41データ・ビットdat(0:40) 及び7ECCビット ecc(0:6) を含む48ビットに適用される。41データ・ビットは、dat(0:29) に対応する30のビットL3アドレス・タグaddr_tag(14:43)、dat(30) に対応する反転ビット、及び dat(31:40) に対応するキャッシュ状態情報(コヒーレンシ及び包含ビット)dir_state(0:9)に対する10ビットを含む。従って、キャッシュ・ディレクトリにおける各エントリに対して1つの極性ビットが設けられる。この特定の例に対して、「ブロック・コード」タイプのECCエンコーディングが使用される。
アドレス・タグ及び状態情報と共にL3ディレクトリにストアされた(及びECCビットによってカバーされた)極性ビットは、その情報がアクティブ・ハイ又はアクティブ・ローの極性と共にL3ディレクトリにストアされたかどうかを表す。ECCエラーが検出されたとき、そのストアされた情報は反対(逆の)極性と共にL3ディレクトリに書き戻し可能である。このように、固定ビット障害は、その後、逆極性のデータに一致するであろうし、その後の読み取り時にエラーを生じさせないであろう。従って、反転ビットの使用は、冗長なストレージ・セル又はインラインECC検出/訂正を必要とすることなく、ハード障害によって引き起こされた如何なる単一ビット・エラーも容易に克服し、更に、必要なときだけオン・ザ・フライで反転訂正手順を実行する。
ディレクトリ読み取りが(マシン・ディスパッチ時に)行われるとき、生の/チェックされてないL3ディレクトリ・データが「タグ比較」パイプラインを通してECCチェック・パイプラインに並列的に送られる。エラーが発見された場合、ECCエラーのためにディレクトリ・マシン・ディスパッチ・シーケンスが打ち切られ、極性エラー訂正(PEC)シーケンスがその訂正されたデータでもってディレクトリを修復し/書き換え得るように、ディレクトリの制御を得る。一方、PECシーケンスが単一ビット「ソフト」訂正可能エラー(CE)を修復してしまうと、前に打ち切られたディスパッチは、それが再試行されたとき、最終的に成功するであろう。
(アレー・セルが0又は1に固定される場合)、L3ディレクトリにおける単一の固定ビット障害をマスクするために、PECシーケンスは、今や、ディレクト・アレーに書き込まれたデータの極性を制御するための追加された機能を有する。PECシーケンスは、固定ビットをマスクする(固定値をそのビットに書き込む)ために、PECシーケンス中、 dw_invert_bit を表明(assert)することによりアレーに書き込まれたデータを反転することができる。データがディレクトリにおいて反転され、従って、読み取られたときに反転されるべきかどうかをログするために、dw_invert_bitがディレクトリにストアされる。反転ビットがディレクトリにストアされるので、マトリクスは、二重ビット・エラーを検出するように及び上述したように反転ビットを含むすべてのビットにおいて単一ビット・エラーの訂正を行うように機能強化される。上述した修正によって、ECCマトリクスは、dw_invert_bit(ソフト・エラー或いは固定ビットによる)を含むエントリにおける単一ビットの障害を訂正するであろうし、dw_invert_bitに関連した二重ビットエラーを含むエントリにおける任意の2ビットに関連した二重ビット・エラーの検出を行うであろう。
図5及び図6(図5の下辺と図6の上辺が連続する)は、8ウェイ・セット・アソシエイティブL3キャッシュに対するディレクトリに適用された図4のECCを使用するデータフローを示す。キャッシュ・ディレクトリの書き込み回路80において、先ず、マシンからの反転ビット dw_invert_bit がマルチプレクサ82によってデータと結合される。その結合されたデータは、ECCビットを生じるようにECCジェネレータ84によって使用される。ECCビットの生成は、ECCマトリクス72が基づく同じシンドローム・エンコーディングを使用する。データは、反転ビット、今や、dat(30)によって制御されるインバータ86を通過する。マシンによる(即ち、低レベル・キャッシュ又はメイン・メモリからの)正規の直接書き込みが dw_invert_bitto 0 を書き込む。次に、反転ビット及びECCビットを含むすべてのデータが、別のマルチプレクサ88と結合され、L3ディレクトリ・アレー92に最終的に書き込むためにラッチ90に送られる。
反転ビットは、dat(0:29) 及び dat(31:40) がインバータ86によって書き込まれる極性を制御するけれども、dat(30)及び ecc(0:6) の極性はインバータによって影響されない。Ecc(0:6) の極性は、反転ビットに対応する列(列30)におけるすべてのビットをセットすることによってECCマトリクス72を通して効果的に反転される。dw_invert_bitがゼロに等しいとき、dat(0:29) 及び dat(31:40) はアクティブ・ハイとしてL3ディレクトリに書き込まれるであろう。dw_invert_bitが1に等しいとき、dat(0:29) 及び dat(31:40) はアクティブ・ローとしてL3ディレクトリに書き込まれるであろう。
データがL3ディレクトリ・アレー92から読み取られるとき、先ず、それが他のラッチ94に書き込まれ、しかる後、dat(30) によって制御される他のインバータ96を通過する。ANDゲート98を使用して dat(30) と結合されるモード・ビットをセットすることによって反転をディセーブルすることが可能である。今や適切にセットされた極性を有するデータが、シンドロームsynd(0:6) を生じさせるECCチェッカ100に送られる。ECCチェッカ100は、XOR回路として配線し得るECCマトリクス72を使用する。データ及びシンドロームがラッチ102及びマルチプレクサ104に書き込まれる。シンドロームはデコーダ106によって分析される。「0000000」のシンドロームは、データが正しい(又は、少なくともエラーが検出されなかった)ことを意味する。「1111111」のシンドロームは、データが反転ビット上にCEを有することを意味する。デコーダ106は、シンドロームが特定のデータ・ビットn(dat(0:29,31:40)) に対する単一ビットのエラーを表すとき、個々にアクティブである一連の出力 fix_dat(n) を有する。シンドロームが「1111111」であるとき、もう1つの出力fix_invert はアクティブである。fix_dat(n) ビットが先ずORゲート108において fix_invert ビットと結合され、しかる後、XORゲート110を使用してデータ・ビットに作用する。fix_invertビットは、XORゲート112において反転ビット dat(30) にも適用される。しかる後、すべてのデータ・ビット dat(0:40) が出力ラッチ114に送られる。
すべての二重ビット・エラーの結果、正当なCEシンドロームに一致しない synd(0:6) が生じるであろう。CEの場合に関する synd(0:6) 値のシグネチャが奇数ビットのセット(7ビットのセットすべてを有するdw_invert_bit におけるCEを含む)を有するので、二重ビット・エラーの結果、synd(0:6) は偶数ビットのセット(dw_invert_bit 自体が関係する場合を含む)を有するであろう。ECCマトリクス72は、2つのCEシンドロームが結合されるとき、その結果生じるシンドロームは、二重ビット・エラーを表す偶数のsynd(0:6) ビットを有するという特性を有する。
特定の実施例に関連して本発明を説明したけれども、この説明は限定的な趣旨で解釈されることを意味するものではない。本発明に関する説明を参照すれば、本発明の開示された実施例及び別の実施例に係る種々の修正が当業者には明らかになるであろう。例えば、上記の説明は、ECCマトリクス及び反転ビットをキャッシュ・エントリに対するアドレス・タグに(即ち、キャッシュ・ディレクトリに)適用しているが、アドレス・タグが指示する値(プログラム命令又はオペランド・データ)を保持するキャッシュ・エントリ・アレーにも適用可能である。上記のマトリクスは、ECC保護を有するシステム内の任意の素子(システム・バスを含む)にも適用可能である。反転ビットをシステム・バスに加えること及び上記の反転技法を使用することによって、システム・バスは、固定ビットが存在する場合でも、その固定ビットの論理レベルにいつも一致するようにデータを反転することにより完全なECC保護を維持することができる。従って、それは、「特許請求の範囲」において定義された本発明の精神又は範囲を逸脱することなく、そのような修正を行い得ることを意図している。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)データ処理システムのECC保護された機構におけるエラーをチェックする方法であって、
複数のビットNを有するデータをエラー訂正コード(ECC)マトリクスに適用してエラー検出シンドロームを生じさせるステップと、
前記データ処理システムのロケーションから読み取られたデータにおける少なくとも1つのエラーを検出するために前記エラー検出シンドロームを解くステップと、
を含み、
前記エラー訂正マトリクスが複数の行及び列を有し、
所与の列が前記データ・ビットのそれぞれ1つに対応し、前記ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿って前記ECCマトリクスにセットされる、方法。
(2)奇数のビットが各行にセットされるようにECCマトリクスにおけるビットを選択的にセットするステップを更に含む、上記(1)に記載の方法。
(3)前記ECCマトリクスに対するエンコーディングが、更に、単一ビット・エラーの検出を可能にし、前記解くステップが前記データにおける1つの、しかも、1つだけのエラーを検出する、上記(1)に記載の方法。
(4)前記解くステップが複数の訂正し得ないエラーを検出する、上記(1)に記載の方法。
(5)訂正されたデータを生じさせる前記エラー検出シンドロームを使用してエラー検出シンドロームを生じさせるステップと、
前記訂正されたデータが前記データ処理システムのロケーションに書き戻されるとき、前記訂正されたデータを反転するステップと、
現時点でストアされているデータが反転されていることを表すように反転ビットをセットするステップと、
を更に含む、上記(1)に記載の方法。
(6)前記反転ビットが前記データの一部であり、前記ECCマトリクスにおける列の1つが前記反転ビットに対応し、
前記反転ビットに対応する前記ECCマトリクスの列における各ビットをセットするステップを更に含む、上記(5)に記載の方法。
(7)前記解くステップが前記反転ビットにおける訂正可能なエラーを検出する、上記(6)に記載の方法。
(8)複数のビットNを有するデータをチェックするように及び前記データに対するエラー検出シンドロームを生じるように適応した電子エラー訂正コード(ECC)マトリクスを含み、
前記ECCマトリクスが複数の行及び列を有し、
所与の列が前記データ・ビットのそれぞれ1つに対応し、前記ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿って前記ECCマトリクスにセットされる、エラー訂正コード・チェッカ。
(9)更に、前記データが何らかのエラーを含むかどうかを決定するために前記エラー検出シンドロームを解くシンドローム・デコーダを含む、上記(8)に記載のエラー訂正コード・チェッカ。
(10)前記シンドローム・デコーダが、更に、前記データにおいて見つかった如何なる単一ビット・エラーも訂正する、上記(9)に記載のエラー訂正コード・チェッカ。
(11)奇数のビットが各行においてセットされるように前記ECCマトリクスにおけるビットがセットされる、上記(8)に記載のエラー訂正コード・チェッカ。
(12)前記ECCマトリクスに対するエンコーディングが、更に、単一ビット・エラーの検出を可能にする、上記(8)に記載のエラー訂正コード・チェッカ。
(13)前記ECCマトリクスの前記列の1つが、前記データの極性を表す反転ビットに対応する、上記(8)に記載のエラー訂正コード・チェッカ。
(14)前記反転ビットに対応する前記列における各ビットがセットされる、上記(13)に記載のエラー訂正コード・チェッカ。
(15)プログラム命令を処理するための手段と、
前記処理するための手段に接続されたメモリ装置と、
を含み、
前記メモリ装置が、複数のビットNを有するデータをチェックして前記データに対するエラー検出シンドロームを生じるようにエラー訂正コード(ECC)マトリクスを適応させるエラー訂正コード・チェッカを含み、
前記ECCマトリクスが複数の行及び列を有し、所与の列が前記データ・ビットのそれぞれ1つに対応し、前記ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿って前記ECCマトリクスにセットされる、
コンピュータ・システム。
(16)前記メモリ装置が、更に、前記データが何らかのエラーを含むかどうかを決定するために前記エラー検出シンドロームを解くシンドローム・デコーダを含む、上記(15)に記載のコンピュータ・システム。
(17)前記シンドローム・デコーダが、更に、前記データにおいて見つかった如何なる単一ビット・エラーも訂正する、上記(16)に記載のコンピュータ・システム。
(18)奇数のビットが各行においてセットされるように前記ECCマトリクスにおけるビットがセットされる、上記(15)に記載のコンピュータ・システム。
(19)前記ECCマトリクスに対するエンコーディングが、更に、単一ビット・エラーの検出を可能にする、上記(15)に記載のコンピュータ・システム。
(20)前記ECCマトリクスの前記列の1つが、前記データの極性を表す反転ビットに対応する、上記(15)に記載のコンピュータ・システム。
(21)前記反転ビットに対応する前記列における各ビットがセットされる、上記(20)に記載のコンピュータ・システム。
メイン・メモリ装置及び複数のメモリ・キャッシュを含むメモリ階層を示す一般的なコンピュータ・システムのブロック図である。 インライン・エラー訂正コード(ECC)回路を有するセット・アソシエイティブ・キャッシュ・メモリの高レベルの概略図である。 48ビット値をチェックするための従来技術に従って設計されたECCマトリクスの概略図である。 反転ビットを含む48ビット値に適用される、本発明に従って構成された新規なECCマトリクスの概略図である。 キャッシュ・アドレス・ディレクトリにおけるハード・エラーを解決するために反転ビットを利用するように適応したレベル3(L3)キャッシュのECC回路に関する一実施例の高レベル概略図である。 図5の下辺に連結される一実施例の高レベル概略図である。

Claims (21)

  1. データ処理システムのエラー訂正コード(ECC)保護された機構におけるエラーをチェックする方法であって、
    複数のビットNを有するデータをECCマトリクスに適用してエラー検出シンドロームを生じさせるステップと、
    前記データ処理システムのロケーションから読み取られたデータにおける少なくとも1つのエラーを検出するために前記エラー検出シンドロームを解くステップと、
    を含み、
    前記エラー訂正マトリクスが複数の行及び列を有し、
    所与の列が前記データ・ビットのそれぞれ1つに対応し、前記ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿って前記ECCマトリクスにセットされる、方法。
  2. 奇数のビットが各行にセットされるようにECCマトリクスにおけるビットを選択的にセットするステップを更に含む、請求項1に記載の方法。
  3. 前記ECCマトリクスに対するエンコーディングが、更に、単一ビット・エラーの検出を可能にし、前記解くステップが前記データにおける1つの、しかも、1つだけのエラーを検出する、請求項1に記載の方法。
  4. 前記解くステップが複数の訂正し得ないエラーを検出する、請求項1に記載の方法。
  5. 訂正されたデータを生じさせる前記エラー検出シンドロームを使用してエラー検出シンドロームを生じさせるステップと、
    前記訂正されたデータが前記データ処理システムのロケーションに書き戻されるとき、前記訂正されたデータを反転するステップと、
    現時点でストアされているデータが反転されていることを表すように反転ビットをセットするステップと、
    を更に含む、請求項1に記載の方法。
  6. 前記反転ビットが前記データの一部であり、前記ECCマトリクスにおける列の1つが前記反転ビットに対応し、
    前記反転ビットに対応する前記ECCマトリクスの列における各ビットをセットするステップを更に含む、請求項5に記載の方法。
  7. 前記解くステップが前記反転ビットにおける訂正可能なエラーを検出する、請求項6に記載の方法。
  8. 複数のビットNを有するデータをチェックするように及び前記データに対するエラー検出シンドロームを生じるように適応した電子エラー訂正コード(ECC)マトリクスを含み、
    前記ECCマトリクスが複数の行及び列を有し、
    所与の列が前記データ・ビットのそれぞれ1つに対応し、前記ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿って前記ECCマトリクスにセットされる、エラー訂正コード・チェッカ。
  9. 更に、前記データが何らかのエラーを含むかどうかを決定するために前記エラー検出シンドロームを解くシンドローム・デコーダを含む、請求項8に記載のエラー訂正コード・チェッカ。
  10. 前記シンドローム・デコーダが、更に、前記データにおいて見つかった如何なる単一ビット・エラーも訂正する、請求項9に記載のエラー訂正コード・チェッカ。
  11. 奇数のビットが各行においてセットされるように前記ECCマトリクスにおけるビットがセットされる、請求項8に記載のエラー訂正コード・チェッカ。
  12. 前記ECCマトリクスに対するエンコーディングが、更に、単一ビット・エラーの検出を可能にする、請求項8に記載のエラー訂正コード・チェッカ。
  13. 前記ECCマトリクスの前記列の1つが、前記データの極性を表す反転ビットに対応する、請求項8に記載のエラー訂正コード・チェッカ。
  14. 前記反転ビットに対応する前記列における各ビットがセットされる、請求項13に記載のエラー訂正コード・チェッカ。
  15. プログラム命令を処理するための手段と、
    前記処理するための手段に接続されたメモリ装置と、
    を含み、
    前記メモリ装置が、複数のビットNを有するデータをチェックして前記データに対するエラー検出シンドロームを生じるようにエラー訂正コード(ECC)マトリクスを適応させるエラー訂正コード・チェッカを含み、
    前記ECCマトリクスが複数の行及び列を有し、所与の列が前記データ・ビットのそれぞれ1つに対応し、前記ECCマトリクスに対するエンコーディングがNビット・エラーの訂正及び(N−1)ビット・エラーの検出を可能にするように、選択されたビットが各列及び各行に沿って前記ECCマトリクスにセットされる、
    コンピュータ・システム。
  16. 前記メモリ装置が、更に、前記データが何らかのエラーを含むかどうかを決定するために前記エラー検出シンドロームを解くシンドローム・デコーダを含む、請求項15に記載のコンピュータ・システム。
  17. 前記シンドローム・デコーダが、更に、前記データにおいて見つかった如何なる単一ビット・エラーも訂正する、請求項16に記載のコンピュータ・システム。
  18. 奇数のビットが各行においてセットされるように前記ECCマトリクスにおけるビットがセットされる、請求項15に記載のコンピュータ・システム。
  19. 前記ECCマトリクスに対するエンコーディングが、更に、単一ビット・エラーの検出を可能にする、請求項15に記載のコンピュータ・システム。
  20. 前記ECCマトリクスの前記列の1つが、前記データの極性を表す反転ビットに対応する、請求項15に記載のコンピュータ・システム。
  21. 前記反転ビットに対応する前記列における各ビットがセットされる、請求項20に記載のコンピュータ・システム。
JP2004103887A 2003-04-17 2004-03-31 Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法 Expired - Fee Related JP4019061B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/418,549 US7069494B2 (en) 2003-04-17 2003-04-17 Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism

Publications (2)

Publication Number Publication Date
JP2004318870A true JP2004318870A (ja) 2004-11-11
JP4019061B2 JP4019061B2 (ja) 2007-12-05

Family

ID=33159133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004103887A Expired - Fee Related JP4019061B2 (ja) 2003-04-17 2004-03-31 Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法

Country Status (5)

Country Link
US (1) US7069494B2 (ja)
JP (1) JP4019061B2 (ja)
KR (1) KR100572800B1 (ja)
CN (1) CN1290012C (ja)
TW (1) TWI269155B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012029137A1 (ja) * 2010-08-31 2012-03-08 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650624B2 (en) * 2002-10-01 2010-01-19 Koplar Interactive Systems International, L.L.C. Method and apparatus for modulating a video signal with data
US7793020B1 (en) 2002-11-27 2010-09-07 International Business Machines Corporation Apparatus and method to read information from an information storage medium
US7149947B1 (en) * 2003-09-04 2006-12-12 Emc Corporation Method of and system for validating an error correction code and parity information associated with a data word
US7191379B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7075583B2 (en) * 2003-10-20 2006-07-11 Koplar Interactive Systems International, L.L.C. Methods for improved modulation of video signals
US7305638B1 (en) * 2004-06-04 2007-12-04 Pdf Solutions, Inc. Method and system for ROM coding to improve yield
US7471569B2 (en) * 2005-06-15 2008-12-30 Infineon Technologies Ag Memory having parity error correction
US7689891B2 (en) * 2005-09-13 2010-03-30 International Business Machines Corporation Method and system for handling stuck bits in cache directories
US7533321B2 (en) * 2005-09-13 2009-05-12 International Business Machines Corporation Fault tolerant encoding of directory states for stuck bits
CN1779833B (zh) * 2005-09-27 2011-05-18 威盛电子股份有限公司 计算错误检测码的方法
US7954034B1 (en) * 2005-09-30 2011-05-31 Emc Corporation Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme
JP2008217857A (ja) * 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
CN101183565B (zh) * 2007-12-12 2011-02-16 深圳市硅格半导体有限公司 存储介质中数据校验方法
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US8234540B2 (en) 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US8082474B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
KR20100098969A (ko) * 2009-03-02 2010-09-10 삼성전자주식회사 에러 정정 코드들의 신뢰성을 향상시킬 수 반도체 장치, 이를 포함하는 반도체 시스템, 및 에러 정정 코드 처리 방법
US8230495B2 (en) * 2009-03-27 2012-07-24 International Business Machines Corporation Method for security in electronically fused encryption keys
US8661315B2 (en) * 2009-10-07 2014-02-25 Mediatek Inc. Efuse devices, correction methods thereof, and methods for operating efuse devices
JP5600963B2 (ja) * 2010-02-22 2014-10-08 富士通株式会社 不揮発性記憶装置、及びデータ初期化方法
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
US8352839B2 (en) 2010-06-11 2013-01-08 International Business Machines Corporation Encoding data into constrained memory
US8990660B2 (en) 2010-09-13 2015-03-24 Freescale Semiconductor, Inc. Data processing system having end-to-end error correction and method therefor
US9112536B2 (en) 2011-01-31 2015-08-18 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
US8566672B2 (en) 2011-03-22 2013-10-22 Freescale Semiconductor, Inc. Selective checkbit modification for error correction
US8607121B2 (en) 2011-04-29 2013-12-10 Freescale Semiconductor, Inc. Selective error detection and error correction for a memory interface
US8990657B2 (en) 2011-06-14 2015-03-24 Freescale Semiconductor, Inc. Selective masking for error correction
US8839025B2 (en) * 2011-09-30 2014-09-16 Oracle International Corporation Systems and methods for retiring and unretiring cache lines
US8972649B2 (en) * 2012-10-05 2015-03-03 Microsoft Technology Licensing, Llc Writing memory blocks using codewords
US9070483B2 (en) * 2012-10-10 2015-06-30 HGST Netherlands B.V. Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults
US9274884B2 (en) * 2012-10-10 2016-03-01 HGST Netherlands B.V. Encoding and decoding data to accommodate memory cells having stuck-at faults
US8812934B2 (en) * 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults
DE102013211077B4 (de) * 2013-06-13 2015-09-24 Infineon Technologies Ag Verfahren zum Testen eines Speichers und Speichersystem
KR102098247B1 (ko) 2013-11-25 2020-04-08 삼성전자 주식회사 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
US9230655B2 (en) 2013-12-20 2016-01-05 Apple Inc. Data storage management in analog memory cells using a non-integer number of bits per cell
US9582354B2 (en) * 2014-01-28 2017-02-28 Infineon Technologies Ag Apparatus and method for improving data storage by data inversion
CN105097039B (zh) * 2014-04-30 2019-07-30 中芯国际集成电路制造(上海)有限公司 存储阵列的操作方法和存储器
US9772899B2 (en) * 2015-05-04 2017-09-26 Texas Instruments Incorporated Error correction code management of write-once memory codes
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
US10120749B2 (en) * 2016-09-30 2018-11-06 Intel Corporation Extended application of error checking and correction code in memory
KR102457144B1 (ko) * 2017-04-18 2022-10-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10606689B2 (en) * 2017-04-18 2020-03-31 SK Hynix Inc. Memory system and operating method thereof
TWI631570B (zh) * 2017-09-04 2018-08-01 威盛電子股份有限公司 錯誤檢查糾正解碼方法與裝置
DE102018122826A1 (de) 2017-09-21 2019-03-21 Samsung Electronics Co., Ltd. Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
JP2019109806A (ja) * 2017-12-20 2019-07-04 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理方法
TWI698881B (zh) * 2018-07-13 2020-07-11 華邦電子股份有限公司 編碼方法及使用所述編碼方法的記憶體儲存裝置
US11016843B2 (en) * 2018-12-06 2021-05-25 Micron Technology, Inc. Direct-input redundancy scheme with adaptive syndrome decoder
CN111008175A (zh) * 2019-09-19 2020-04-14 江西精骏电控技术有限公司 一种excel转dbc文件的生成方法及装置
US10998081B1 (en) * 2020-02-14 2021-05-04 Winbond Electronics Corp. Memory storage device having automatic error repair mechanism and method thereof
US11057060B1 (en) * 2020-03-23 2021-07-06 Sage Microelectronics Corporation Method and apparatus for matrix flipping error correction
US11509333B2 (en) * 2020-09-25 2022-11-22 Advanced Micro Devices, Inc. Masked fault detection for reliable low voltage cache operation
KR20230030795A (ko) 2021-08-26 2023-03-07 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 장치

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576982A (en) * 1968-12-16 1971-05-04 Ibm Error tolerant read-only storage system
US3582878A (en) * 1969-01-08 1971-06-01 Ibm Multiple random error correcting system
US3768071A (en) * 1972-01-24 1973-10-23 Ibm Compensation for defective storage positions
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US4045779A (en) * 1976-03-15 1977-08-30 Xerox Corporation Self-correcting memory circuit
JPS5381036A (en) * 1976-12-27 1978-07-18 Hitachi Ltd Error correction-detection system
JPS592057B2 (ja) * 1979-02-07 1984-01-17 株式会社日立製作所 エラ−訂正・検出方式
JPS6051749B2 (ja) * 1979-08-31 1985-11-15 富士通株式会社 エラ−訂正方式
US4479214A (en) * 1982-06-16 1984-10-23 International Business Machines Corporation System for updating error map of fault tolerant memory
US4458349A (en) * 1982-06-16 1984-07-03 International Business Machines Corporation Method for storing data words in fault tolerant memory to recover uncorrectable errors
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
JPS59185098A (ja) * 1983-04-04 1984-10-20 Oki Electric Ind Co Ltd 自己診断回路内蔵型半導体メモリ装置
US4608687A (en) * 1983-09-13 1986-08-26 International Business Machines Corporation Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition
US4604751A (en) * 1984-06-29 1986-08-05 International Business Machines Corporation Error logging memory system for avoiding miscorrection of triple errors
US4661955A (en) * 1985-01-18 1987-04-28 Ibm Corporation Extended error correction for package error correction codes
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US5228046A (en) * 1989-03-10 1993-07-13 International Business Machines Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
JP3070025B2 (ja) * 1992-02-04 2000-07-24 富士通株式会社 半導体記憶装置
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US5535226A (en) * 1994-05-31 1996-07-09 International Business Machines Corporation On-chip ECC status
US5632013A (en) * 1995-06-07 1997-05-20 International Business Machines Corporation Memory and system for recovery/restoration of data using a memory controller
US5857069A (en) * 1996-12-30 1999-01-05 Lucent Technologies Inc. Technique for recovering defective memory
US6675341B1 (en) * 1999-11-17 2004-01-06 International Business Machines Corporation Extended error correction for SEC-DED codes with package error detection ability

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012029137A1 (ja) * 2010-08-31 2012-03-08 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Also Published As

Publication number Publication date
TW200508850A (en) 2005-03-01
CN1290012C (zh) 2006-12-13
US20040210814A1 (en) 2004-10-21
CN1538298A (zh) 2004-10-20
TWI269155B (en) 2006-12-21
KR20040090410A (ko) 2004-10-22
US7069494B2 (en) 2006-06-27
JP4019061B2 (ja) 2007-12-05
KR100572800B1 (ko) 2006-04-19

Similar Documents

Publication Publication Date Title
JP4019061B2 (ja) Ecc保護機構における固定ビット障害を解決するための特殊eccマトリクスの適用方法
US7272773B2 (en) Cache directory array recovery mechanism to support special ECC stuck bit matrix
US8205136B2 (en) Fault tolerant encoding of directory states for stuck bits
US8276039B2 (en) Error detection device and methods thereof
US6480975B1 (en) ECC mechanism for set associative cache array
KR101319670B1 (ko) 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법
US7437597B1 (en) Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US9252814B2 (en) Combined group ECC protection and subgroup parity protection
US6006311A (en) Dynamic updating of repair mask used for cache defect avoidance
US8977820B2 (en) Handling of hard errors in a cache of a data processing apparatus
US6023746A (en) Dual associative-cache directories allowing simultaneous read operation using two buses with multiplexors, address tags, memory block control signals, single clock cycle operation and error correction
US7290185B2 (en) Methods and apparatus for reducing memory errors
US5958068A (en) Cache array defect functional bypassing using repair mask
JP2004514184A (ja) デジタル・データにおけるソフト・エラーを訂正するための方法および装置
US5883904A (en) Method for recoverability via redundant cache arrays
US20070044003A1 (en) Method and apparatus of detecting and correcting soft error
JPH10320280A (ja) キャッシュに値を格納する方法及びコンピュータ・システム
KR100297914B1 (ko) 스누핑장치를위한다중캐쉬디렉토리
US5867511A (en) Method for high-speed recoverable directory access
US7689891B2 (en) Method and system for handling stuck bits in cache directories
Manoochehri et al. Extremely low cost error protection with correctable parity protected cache
JPH0594377A (ja) パリテイ検出回路
JP2006286135A (ja) 半導体記憶装置及びその読み書き制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060822

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070918

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070921

R150 Certificate of patent or registration of utility model

Ref document number: 4019061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130928

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees