(57)【要約】【課題】  メモリシステム及びその他のタイプのメモリを包含するシステムにおいてワイドデータワードに関するエラー訂正及び検知を実施する技術を提供する。【解決手段】  パリティ発生回路が複数個のビット発生回路を包含している。各ビット発生回路は夫々のデータビット及び夫々のハードラッチ信号を受取り、且つハードラッチ信号がインアクティブである場合に対応するデータビットのパリティを表わすパリティ信号を発生すべく動作する。各ビット発生回路は、ハードラッチ信号がアクティブである場合にパリティ信号を設定値へ駆動する。出力回路がパリティ信号を受取るためにビット発生回路へ結合されており且つビット発生回路からのパリティ信号に応答して出力パリティ信号を発生すべく動作する。【選択図】      図４
2005182989.tif 000002
【特許請求の範囲】
【請求項１】
パリティ発生回路において、
各ビット発生回路が夫々のデータビットを受取るべく適合されており且つ夫々のハードラッチ信号を受取るべく適合されており且つ各ビット発生回路は前記ハードラッチ信号がインアクティブである場合に対応するデータビットのパリティを表わすパリティ信号を発生すべく動作可能であり且つ各ビット発生回路は前記ハードラッチ信号がアクティブである場合に前記パリティ信号を設定値へ駆動する複数個のビット発生回路、
前記パリティ信号を受取るために前記ビット発生回路へ結合されており且つ前記ビット発生回路からのパリティ信号に応答して出力パリティ信号を発生すべく動作可能な出力回路、
を有しているパリティ発生回路。
【請求項２】
請求項１において、ビット比較回路の各々が印加されたビットに関しＸＯＲ演算を実施して前記ハードラッチ信号がインアクティブである場合に前記パリティ信号を発生するパリティ発生回路。
【請求項３】
請求項１において、前記出力回路がカスケード態様で結合されている複数個のＸＯＲ回路を有しており、前記ＸＯＲ回路の最後のものが前記出力パリティ信号を展開するパリティ発生回路。
【請求項４】
請求項１において、前記ハードラッチ信号が選択的に活性化及び非活性化されて前記ビット比較回路へ印加される全てのデータビットのサブセットのパリティを表わす出力パリティ信号を発生するパリティ発生回路。
【請求項５】
請求項１において、各ビット比較回路が４個のデータビットを受取るべく適合されているパリティ発生回路。
【請求項６】
請求項１において、各ビット比較回路が、
第一ノードと第二ノードとの間に結合されており、各スイッチが夫々のデータビット信号を受取るべく適合されている制御入力を具備している第一グループのＮ個の制御可能なスイッチ、
前記第一ノードと第三ノードとの間に結合されている第二グループのＮ個の制御可能なスイッチであって、該グループ内の第一スイッチが夫々の相補的データビット信号を受取るべく適合されている制御入力を具備しており且つ残りのスイッチが夫々のデータビット信号を受取るべく適合されている制御入力を具備している第二グループのＮ個の制御可能なスイッチ、
基準電圧供給源と前記第一ノードとの間に結合されており且つ計算信号を受取るべく適合されている制御入力を具備している制御可能なスイッチ、
供給電圧供給源と前記第二及び第三ノードとの間に結合されており且つ前記計算信号を受取るべく適合されている制御入力を具備しているプルアップ回路、
前記第二及び第三ノードへ結合されており且つハードラッチ信号を受取るべく適合されている出力回路であって、前記ハードラッチ信号がインアクティブである場合に前記ノード上の信号に応答して前記パリティ信号を展開すべく動作可能であり且つ前記ハードラッチ信号がアクティブである場合には前記ノード上の信号とは独立的に前記パリティ信号を設定レベルへ駆動すべく動作可能な出力回路、
を有しているパリティ発生回路。
【請求項７】
請求項６において、前記出力回路が、
前記第二ノードへ結合している第一入力と、前記ハードラッチ信号を受取るべく適合されている第二入力と、真パリティ信号が展開される出力とを具備しているＮＯＲゲート、
前記ハードラッチ信号を受取るべく適合されている入力を具備すると共に出力を具備しているインバータ、
前記第三ノードへ結合している第一入力と前記インバータの出力へ結合している第二入力とを具備しており、且つ相補的パリティ信号が展開される出力を具備しているＮＡＮＤゲート、
を有しているパリティ発生回路。
【請求項８】
メモリにおいて、
行及び列の形態に配列されている複数個のメモリセルを包含しているメモリアレイ、
各第一レベルパリティ発生回路が前記行からデータビットを受取るために前記メモリアレイ内のメモリセルからなる行の１つのグループへ結合されており且つ夫々のハードラッチ信号を受取るべく適合されており、各第一レベルパリティ発生回路は対応するハードラッチ信号がインアクティブである場合に対応するグループの行からのデータビットに応答して対応する第一レベルパリティ信号を展開すべく動作可能であり、その場合に第一レベルパリティ信号が前記データビットのパリティを表わし、且つ各第一レベルパリティ発生回路は対応するハードラッチ信号がアクティブである場合に対応するデータビットとは独立的に対応する第一レベルパリティ信号を設定値へ駆動すべく動作可能である複数個の第一レベルパリティ発生回路、
前記第一レベルパリティ信号を受取るために前記第一レベルパリティ発生回路へ結合されており、前記第一レベルパリティ信号に応答して出力パリティ信号を展開すべく動作可能な第二レベルパリティ発生回路、
前記第一レベルパリティ発生回路へ結合されており且つ前記メモリアレイ内のメモリセルの欠陥性及びインアクティブな行の関数として前記ハードラッチ信号のうちの選択したものを活性化させるべく動作可能な冗長論理回路、
を有しているメモリ。
【請求項９】
請求項８において、前記メモリアレイが、行及び列の形態に配列されている複数個のＤＲＡＭメモリセルを包含するＤＲＡＭアレイを有しているメモリ。
【請求項１０】
請求項８において、前記第二レベルパリティ発生回路は、全ての前記第一レベルパリティ発生回路からの前記第一レベルパリティ信号に応答して前記出力パリティ信号を発生すべく動作可能であるメモリ。
【請求項１１】
請求項８において、更に、前記メモリアレイ内の全てのメモリセルをテストし且つこれらのテストの結果を表わす冗長性論理へテスト信号を供給するテスト回路を有しており、前記冗長性論理は、更に、これらのテスト信号に応答して欠陥性の行を置換させるために前記アレイ内のメモリセルの冗長行をマップすべく動作可能であり、且つ前記冗長性論理は少なくとも１つの欠陥性の行及び／又はインアクティブなグループの行を包含する行のグループに対応するハードラッチ信号の選択したものを活性化させるメモリ。
【請求項１２】
請求項８において、前記第二レベルパリティ発生回路が、カスケード型の態様で結合されている複数個のＸＯＲ回路を有しており、前記ＸＯＲ回路のうちで最後のものが前記出力パリティ信号を展開するメモリ。
【請求項１３】
請求項８において、前記第一レベルパリティ発生回路の各々が印加されたビットに関してＸＯＲ演算を実施して、対応するハードラッチ信号がインアクティブである場合に対応する第一レベルパリティ信号を発生するメモリ。
【請求項１４】
請求項８において、前記冗長性論理が前記ハードラッチ信号を選択的に活性化及び非活性化させて前記第一レベルパリティ発生回路へ印加される全てのデータビットからなるサブセットのパリティを表わす出力パリティ信号を発生するメモリ。
【請求項１５】
請求項８において、各第一レベルパリティ発生回路が前記メモリアレイ内の４個の行からデータビットを受取るメモリ。
【請求項１６】
請求項８において、各第一レベルパリティ発生回路が、
第一ノードと第二ノードとの間に結合されており、各スイッチが夫々のデータビット信号を受取るべく適合されている制御入力を具備している第一グループのＮ個の制御可能なスイッチ、
前記第一ノードと第三ノードとの間に結合されている第二グループのＮ個の制御可能なスイッチであって、該グループ内の第一スイッチが夫々の相補的データビット信号を受取るべく適合されている制御入力を具備しており且つ残りのスイッチが夫々のデータビット信号を受取るべく適合されている制御入力を具備している第二グループのＮ個の制御可能なスイッチ、
基準電圧供給源と前記第一ノードとの間に結合されており且つ計算信号を受取るべく適合されている制御入力を具備している制御可能なスイッチ、
供給電圧供給源と前記第二及び第三ノードとの間に結合されており且つ前記計算信号を受取るべく適合されている制御入力を具備しているプルアップ回路、
前記第二及び第三ノードへ結合されており且つハードラッチ信号を受取るべく適合されている出力回路であって、該出力回路は前記ハードラッチ信号がインアクティブである場合に前記ノード上の信号に応答して前記パリティ信号を展開させるべく動作可能であり且つ前記ハードラッチ信号がアクティブである場合には前記ノード上の信号とは独立的に前記パリティ信号を設定レベルへ駆動すべく動作可能である出力回路、
を有しているメモリ。
【請求項１７】
請求項１６において、前記出力回路が、
前記第二ノードへ結合している第一入力と前記ハードラッチ信号を受取るべく適合されている第二入力と、真パリティ信号を展開する出力とを具備しているＮＯＲゲート、
前記ハードラッチ信号を受取るべく適合されている入力を具備しており且つ出力を具備しているインバータ、
前記第三ノードへ結合している第一入力と前記インバータの出力へ結合している第二入力とを具備しており且つ相補的パリティ信号が展開される出力を具備しているＮＡＮＤゲート、
を有しているメモリ。
【請求項１８】
メモリを包含する電子システムにおいて、前記メモリが、
行及び列に配列した複数個のメモリセルを包含するメモリアレイ、
各第一レベルパリティ発生回路が前記行からのデータビットを受取るために前記メモリアレイ内のメモリセルからなる行の１つのグループへ結合されており且つ夫々のハードラッチ信号を受取るべく適合されており、各第一レベルパリティ発生回路は対応するハードラッチ信号がインアクティブである場合に対応するグループの行からのデータビットに応答して対応する第一レベルパリティ信号を展開すべく動作可能であり、その場合に第一レベルパリティ信号は前記データビットのパリティを表わし、且つ各第一レベルパリティ発生回路は対応するハードラッチ信号がアクティブである場合に対応するデータビットとは独立的に対応する第一レベルパリティ信号を設定値へ駆動すべく動作可能である複数個の第一レベルパリティ発生回路、
前記第一レベルパリティ信号を受取るために前記第一レベルパリティ発生回路へ結合されており、前記第一レベルパリティ信号に応答して出力パリティ信号を展開すべく動作可能な第二レベルパリティ発生回路、
前記第一レベルパリティ発生回路へ結合されており且つ前記メモリアレイ内のメモリセルからなる欠陥性及びインアクティブな行の関数として前記ハードラッチ信号のうちの選択したものを活性化させるべく動作可能な冗長性論理回路、
を有している電子システム。
【請求項１９】
請求項１８において、前記電子システムがコンピュータシステムを包含している電子システム。
【請求項２０】
請求項１８において、前記メモリがＤＲＡＭを有している電子システム。
【請求項２１】
メモリセルアレイからデータワードに対するパリティビットを発生する方法において、前記アレイは行及び列に配列されている複数個のメモリセルを包含しており、本方法が、
前記アレイ内のメモリセルからなる１つの行からデータビットを検知し、
各パリティビットがデータビットの夫々のグループのパリティを表わす複数個のパリティビットを前記検知したデータビットから発生し、
前記パリティビットのうちで選択したものをマスクし、
マスクされていないパリティビットを結合して全体的なパリティビットを発生する、
ことを包含している方法。
【請求項２２】
請求項２１において、前記パリティビットのうちの選択したものをマスクする場合に、
前記アレイ内のメモリセルをテストしてメモリセルからなる欠陥性の行を検知し、
欠陥性の行を包含するデータビットのグループから発生されるパリティビットを選択した値へ設定し、
前記アレイのインアクティブなグループの行から発生されるパリティビットを選択した値へ設定する、
ことを包含している方法。
【請求項２３】
請求項２１において、前記設定する動作が、対応するパリティビットを二進０へ設定することを包含している方法。
【請求項２４】
請求項２１において、前記検知したデータビットから複数個のパリティビットを発生する場合に、検知したデータビットの各グループに関してＸＯＲ演算を実施して対応するパリティビットを発生することを包含している方法。
【請求項２５】
請求項２１において、更に、前記パリティビットの選択したものを結合して前記検知したデータビットにより形成されるデータワードに対し全体的なパリティビットを発生することを包含している方法。
【発明の詳細な説明】
【技術分野】
【０００１】
エラー検知及び訂正コードは、格納され且つ通信されたデータにおけるエラーを検知し且つ訂正するために広く多様なデジタル電子システムにおいて使用されているコードである。このようなコードを使用して、１個又は幾つかの誤っているビットの値を、格納又は送信の後に、１つ又は複数の正しい値へ復元することが可能である。
【背景技術】
【０００２】
図１はデータを格納するためのメモリ８を包含する典型的なメモリシステム１０のブロック図であり、尚データという用語は、プログラム命令及びこのような命令により発生されるか又はそれと関連しているデータを包含する任意のタイプの格納されている情報を包含するものである。メモリシステム１０がデータワード２を格納する場合に、そのデータワードは、最初に、メモリ８内に書込まれる前にエラー訂正コード（ＥＣＣ）論理４へ提供される。ＥＣＣ論理４は、データワード２を使用してエラーチェック及び訂正ビットを発生し、且つこれらの付加的なエラービットは、次いで、データワード２と共にメモリ８内に格納される。以下の説明において、エラー検知及び訂正ビットは、チェックビットとして呼称される場合があり、且つチェックビットと結合したオリジナルのデータワード２は全体としてコードワードと呼称する場合がある。データワード２及びチェックビットは冗長性論理６によりプログラムされてメモリ８内の特定の位置内に格納され、該論理はデータをメモリ内の冗長格納位置へリダイレクトさせ、それにより以下に更に詳細に説明するように、欠陥性の格納位置を置換させる。このように、冗長性論理６は、データが最初に指向されていた欠陥性の格納位置を、当業者により理解されるように、冗長格納位置で置換させる。データが、その後、メモリ８から読取られる場合に、そのデータは、再度、ＥＣＣ論理４へ供給されて読取られたデータがメモリ内に最初に格納されていたデータワード２と同一であることを確保する。
【０００３】
メモリ８は、メモリ速度（データを格納するか又はデータへアクセスするのにかかる時間）を過剰に犠牲にすることなしに使用可能なビットの数（格納容量）最大とすべく設計される。従って、個々のビットを格納するメモリセルは、例えばメモリセル当たりのトランジスタの数を減少させることにより且つトランジスタをより小型なものとすることにより多様な異なる技術を介して出来るだけ密接させて詰め込んだ状態とさせる。典型的に、メモリセルが小さければ小さいほど適切に検知せねばならない電圧及び電流が小さいためにセルへアクセスするために一層長くかかる。従って、メモリ８の速度を増加させるためにより多くの且つより大きなトランジスタを使用することには、同時にメモリの格納容量を減少するのでトレードオフが存在している。その結果、メモリシステム１０は、典型的に、比較的遅いが高い容量のメモリセルである例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）セルと容量は低いがより高速のメモリセルである例えばスタチックランダムアクセスメモリ（ＳＲＡＭ）セルの組合わせを包含している。
【０００４】
メモリセル（不図示）からなるアレイはメモリセルからなる複数個の行及び列を包含しており、アドレスは該アレイ内の各メモリセルと関連している。例えばＤＲＡＭセルから形成されるもののような高容量アレイにおいては、アドレスは、列アドレスと行アドレスに分割される。行アドレスは、典型的に、最初に送られ、且つ行アドレスに応答して、該アレイ内のメモリセルからなる全行内に格納されているデータが検知され且つメモリ８内の回路内に格納される。列アドレスは、行アドレスの後にメモリ８へ供給され、且つアドレスされた行内のメモリセルのうちの選択されたものが列アドレスに応答して選択される。データがメモリセルからなる同一のアドレスされた行内の一連の連続する列アドレスからフェッチされる場合には、メモリセルからなるこれらの連続する行内に格納されているデータは、そのアドレスされた行のデータを以前に検知し且つ格納した回路からアクセスすることが可能である。
【０００５】
メモリ８は、典型的に、予備の即ち冗長なビットと共に製造され、且つ欠陥性のメモリセルを冗長メモリセルで置換するために冗長性論理６がプログラムされる。冗長性論理６は、典型的に、メモリ８の初期的なテスト期間中にプログラムされる。図２を参照すると、図１のメモリ８は複数のメモリセル（不図示）からなる複数の行及び列からなるメモリアレイ１２を包含している。アレイ１２内の欠陥性メモリセルの冗長セルでの置換に対する主要なアプローチは、レーザにより飛ばされるヒューズ、電気的ヒューズ、又は一度のみプログラム可能なＭＯＳＦＥＴを使用する。レーザヒューズに基づく修復は未だに一般的なアプローチであるが、このタイプの修復はテストコストを実質的に増加させる。何故ならば、テスト、レーザ修復、再テストの３つのステップからなるテストプロセスが必要とされるからである。電気的ヒューズに基づく修復は、メモリ８がテスタに結合されている間にテストを行い、電気的に修復し、且つ再テストを行うテスタを使用して単一プロセスとして実施することが可能である。
【０００６】
欠陥性メモリセルに対して冗長メモリセルを置換させる修復プロセスは、典型的に、メモリセルからなる欠陥性の列１４を非活性化させるために必要な適切なレーザプログラム可能なヒューズ、電気的にプログラム可能なヒューズ、又は一度のみプログラム可能なＭＯＳＦＥＴを識別し、欠陥性の１個又は複数個のセルを包含する欠陥性の列又は複数の列からなるグループを非活性化させ、複数のメモリセルからなる冗長列１６又は複数の冗長列からなるグループを活性化させ、且つ欠陥性の列１４に対応するアレイアドレスを冗長列１６のアドレスに割当てるべく冗長性論理６をコンフィギャ即ち形態特定させることからなる。欠陥性の列１４がディスエーブル即ち動作不能とされ且つ冗長性論理６がプログラムされた後に、欠陥性の列１４がアドレスされると、その代わりに冗長列１６がアクセスされ、冗長列１６内のメモリセルからデータを読取り且つそれへデータを書込むことを可能とする。このように、その後の読取り又は書込み動作が欠陥性の列１４をアドレスするたびに、冗長列１８がその欠陥性の列の代わりにアクセスされる。欠陥性メモリセルを冗長セルで置換させるための冗長性プログラミングのための回路、動作及びプロセスは当業者によってよく理解されており、従ってその詳細な説明は割愛する。
【０００７】
最近のコンピュータシステムは、典型的に、プログラミング命令及び関連するデータを格納するために数百メガバイト（ＭＢ）のメモリを包含している。コンピュータシステム内にそのように大きなメモリが包含されているので、欠陥性メモリセルの蓋然性は増加している。例えば、１２８ＭＢのＤＲＡＭは現在のパソコンシステム内に包含されている典型的な量である。メモリの各バイトは、典型的に、８ビットを包含しており、従って、８個の個別的なメモリセル内に格納される。従って、所望の１２８ＭＢのデータを格納するために１×１０9個を超えるＤＲＡＭメモリセルが必要とされる。更に、これらのＤＲＡＭメモリセルは、典型的に、毎秒当たり数億回アクセスされる。このような大量のメモリセルが与えられ且つセルが高い頻度でアクセスされるので、メモリセルからデータが読取られるか又はそれへデータが書込まれる場合にエラーが発生する確率はかなり高い。
【０００８】
前述したように、ＥＣＣ論理４は、格納されているデータワード２に対してエラービットを付加し、そのエラービットは、メモリ８内に格納されているデータにおけるエラーを検知し且つある場合には訂正することを可能とする冗長な情報である。再度図１を参照すると、ＥＣＣ論理４はメモリ８へアクセスするアプリケーションプログラム（不図示）により使用されるデータワード２に関してエラー訂正操作を実施する。一般的に、図３を参照すると、ＥＣＣ論理４の典型的な実施例が、エラーが検知され且つ訂正される従来の態様を説明するためにより詳細に示されている。図１におけるデータワード２に対応するデータ入力信号ＤＩはワードＭビット長であり該ワードに対して付加的なＫ個のビットが付加されており、それはデータビットエラーを検知し且つ訂正するために使用される。エンコード関数７２がオリジナルのＭ個のビットに基づいて付加的なＫ個のビットを発生するか又は適切に設定するために使用されるアルゴリズムを適用する。エンコード関数７２によりデータワードＤＩのエンコーディングの後に、Ｍ及びＫ個のビットにより形成されるコードワードがメモリ８内に格納される。何らかのその後の時間において、該コードワード即ちＭ及びＫ個のビットが、例えばアプリケーションプログラムにより、メモリ８から読取られ、且つ読取られたＭ個のビットが訂正器ユニット７８内のバッファ８０へ提供され、且つ、エンコード関数７４へ提供され、それはエンコード関数７２と同一であり且つ読取ったＭ個のビットのビット値に基づいてＫ個のビットを発生する。比較ユニット７６がエンコード関数７４により発生されたＫ個のビットをメモリ８から読取られたＫ個のビットと比較する。これら２組のＫ個のビットが同一の値を有している場合には、比較ユニット７６は訂正器ユニット７８へ信号を送って、バッファ８０からのＭ個のビットを変更することなしにデータ出力信号ＤＯとして供給させる。然しながら、比較ユニット７６が、これら２組のＫ個のビットが異なる値を有する旨の信号を訂正器ユニット７８へ送る場合には、該訂正器ユニットは訂正アルゴリズムに基づいてバッファ８０内のＭ個のビットを訂正し、その後に、バッファ８０からの訂正したＭ個のビットをデータ出力信号ＤＯとして供給する。比較ユニット７６は、又、この場合には、エラー信号ＥＳを発生し、それはメモリシステム１０（図１）におけるその他の回路（不図示）により使用される。
【０００９】
ＥＣＣ論理４は、格納されているコードワードにおいて検知されたエラーを訂正するために、多様な異なるエラー検知及び訂正アルゴリズムを実行することが可能である。１つの一般的なアルゴリズムは、ハミングコードとして知られるコードを使用するアルゴリズムであり、それは多くの異なるタイプのデジタルシステムにおいて使用されるエラー検知及び訂正コードである。ハミングコードの一例及びＥＣＣ論理４によるこのコードの適用例についてより詳細に説明する。図１を参照すると、典型的なデータワード２は８乃至６４ビット幅であり且つＥＣＣ論理４は、典型的に、データワードに対してシングルエラー訂正ダブルエラー検知（ＳＥＣＤＥＤ）アルゴリズムを適用し、このアルゴリズムはハミングコードを介して実施される。ハミングコードは全体としてハミングコードを構成するコードワードの複数のセットの間のハミング距離として知られるものを有しており、尚コードワードはそのアルゴリズムにより発生されたエラーチェックビットと結合されたデータ値である。例えば、図３において、各コードワードは、１つのコードワードとしてメモリ８内に格納されているＭ個のデータビットとＫ個のエラーチェックビットとに対応している。コードワード間のハミング距離は、それらのコードワードが異なるビット数であり且つ、当業者により理解されるように、コードワードにおいて検知し且つ訂正することが可能な誤りビットの数を決定する。例えば、ハミングコードが２個のコードワード、即ち０００１及び１０００から構成されているものとする。これらのコードワードは２つのビットにおいて異なっており、従って、ハミング距離は２である。ハミング距離が２の場合に、１つのコードワードにおける単一のビットエラーを検知することが可能である。これら２つのコードワード０００１，１０００のうちの何れかにおいて単一のビットが変化すると、その結果得られるコードワードはこれら２つのワードのうちの何れかと異なる。このことは、単一ビットエラーを検知することを可能とする。何故ならば、これら２つのコードワードのうちの１つにおける単一ビットの変化は、オリジナルの２つのコードワードのうちの１つではないコードを発生するからである。然しながら、これらのコードワードのうちの何れかにおいて２つのビットが変化した場合には、これらのエラーは検知されない場合がある。何故ならば、右側の２つのビットが状態を変化させる場合には、一方のコードが他方のコードとなるからである。例えば、コードワード０００１において、最初のビットと最後のビットとが論理状態を変化させると、即ち最も右側の１ビットが０となり且つ最も左側のビットが１となると、コードワード０００１は１０００となり、それは他のコードワードと同じである。従って、距離が２であるハミングコードを使用して全ての場合において２つの誤りビットを検知することは不可能である。
【００１０】
１組のコードワードにより形成されるコードに対するハミングコードが少なくとも３である場合には、コードワードの何れにおける単一ビットエラーを訂正することが可能である。このようなハミングコードの場合には、単一ビットエラーは単に有効なコードワードから１ビット離れているに過ぎず、且つ１つおきのコードワードは誤りのあるコードワードから２ビット離れているので、そのエラーを訂正し単に１ビット離れている唯一の有効なコードワードに戻ってくる。勿論、コードワードにおいて複数のビットが状態を変化する場合には、このプロセスは誤って単一ビットを変化させて最も近い有効なコードワードを発生させる場合があり、それは、たとえこのコードワードがオリジナルのコードワードでない場合でもそうである。従って、単一ビットエラーを訂正することが可能であるに過ぎない。然しながら、距離が３であるハミングコードの場合には、このようなエラーを訂正することは不可能であるとしても２個のビットが状態を変化させたことを検知することが可能である。距離３を有するこの種類のハミングコードはシングルエラーコレクションダブルエラーディテクション（ＳＥＣＤＥＤ）コードと呼ばれる。
【００１１】
ＳＥＣＤＥＤコードの一例として、図３における信号ＤＩにおけるデータが４個のデータビット＝［１０１１］から構成されているものと仮定し、従ってＭは４に等しい。この例は位置２0＝１＝Ｐ１、２1＝２＝Ｐ２、２2＝４＝Ｐ４において３個のエラーチェック即ちパリティビットを必要とする。Ｍ個のデータビットは位置３，５，６，７内に配置され且つこのＳＥＣＤＥＤコードのコードワードにおいてＤ３，Ｄ５，Ｄ６，Ｄ７と命名され、従って各コードワードは［Ｐ１Ｐ２Ｄ３Ｐ４Ｄ５Ｄ６Ｄ７］の形態を有している。パリティビットＰ１，Ｐ２，Ｐ４の各々は、パリティビットを計算するために使用されるＭ個のデータビットの各サブセットが偶数又は奇数パリティを有することを確保することにより各コードワードが最も近い有効なコードワードから少なくとも３の距離を有する（即ち、少なくとも３個のビットが異なっている）ことを確保するために１又は０へ設定される。奇数パリティは、Ｍ個のデータビットからなるサブセット及び夫々のパリティビットＰにおいて奇数個の１が存在することを意味しており、且つ偶数パリティは、偶数個の１が存在していることを意味している。この例においては奇数パリティを仮定する。
【００１２】
データビットＤが１０１１に等しい例において、データビットＤ３，Ｄ５，Ｄ６，Ｄ７をコードワード内に挿入すると［Ｐ１Ｐ２１Ｐ４０１１］を発生する。パリティビットの計算はＰ１＝（Ｄ３，Ｄ５，Ｄ７）＝（１０１）の如くである。これらの３個のビットにおけるパリティは偶数である。何故ならば、２個の「１」が存在しているからであり、従ってパリティビットＰ１は、（Ｐ１Ｄ３Ｄ５Ｄ７）に亘るパリティを偶数とするためには、０に設定することが必要である。従って、Ｐ１＝０である。従って、そのコードは［０Ｐ２１Ｐ４０１１］となる。次のパリティビットＰ２はデータビットＰ２＝（Ｄ３，Ｄ６，Ｄ７）＝（１１１）から決定され、且つこれらのビットにおけるパリティは現在のところ奇数であるので、パリティビットＰ２は「１」に設定されねばならず、従って（Ｐ２Ｄ３Ｄ６Ｄ７）に亘るパリティは偶数である。従って、そのコードワードは［０１１Ｐ４０１１］となる。最後に、パリティビットＰ４＝（Ｄ５Ｄ６Ｄ７）＝（０１１）であり、従って該パリティビットは、ビット（Ｐ４Ｄ５Ｄ６Ｄ７）に亘る偶数パリティを与えるためには、０に設定することが必要である。従って、Ｐ４＝０であり、パリティビットが適切に与えられた最終的なコードワードは［０１１００１１］である。パリティビットＰ１，Ｐ２，Ｐ４を発生させるためにＥＣＣ論理４において多様な異なるタイプの回路を使用することが可能であり、例えば、当業者により理解されるようにカスケード型ＸＯＲゲートを使用することが可能である。コードワード［０１１００１１］は、図１及び３におけるメモリ８内に実際に格納されるワードであり、且つ該メモリからその後検索され且つ図３のエンコード関数７４、比較ユニット７６、訂正器ユニット７８により処理されるコードワードである。図３において、Ｋ個のエラーチェックビットはパリティビットＰ１，Ｐ２，Ｐ４に対応している。
【００１３】
メモリ８からのコードワードを検索した場合に、そのコードワードが［０１１０００１］の値を有しているものと仮定する。即ち、位置Ｄ６におけるビットがエラーである。この場合には、エンコード関数７４及び比較ユニット７６が検索したコードワードからチェックワード（Ｃ４Ｃ２Ｃ１）を発生し、その場合に該チェックワード内のビットは、パリティチェックが対応するパリティビットに対してパリティエラーを表わす場合には、１へ設定される。本例においては、パリティビットＰ１＝０であり且つ検索したビットのチェック（Ｄ３Ｄ５Ｄ７）=（１０１）は偶数パリティを有しており、従ってビットＰ１は検索したパリティと一致しており、従ってＣ１＝０である。ビットＣ２及びＣ４の値を決定するために同様のプロセスが使用される。この例においては、これらの値はＰ２＝１であり且つ検索したデータビットのパリティチェック（Ｄ３Ｄ６Ｄ７）＝（１０１）は偶数パリティを有している。従って、ビットＰ２は、格納されているデータビット（Ｄ３Ｄ６Ｄ７）が奇数パリティを有していることを表わしており、そのことは真ではなく、従ってエラーが検知されており且つビットＣ２は１へ設定される。検索されたコードワードにおけるビットに関するパリティチェックはパリティビットＰ２と不一致であるので、ビットＣ２は１へ設定されて検知されたエラーを表わす。コードワード内のどのビットが正確にエラーであるかはこれから決定すべきことである。
【００１４】
最後に、ビットＰ４＝０及び検索したビットのパリティチェック（Ｄ５Ｄ６Ｄ７）＝（００１）は奇数パリティを有しており、ビットＰ４が１と等しいものであるべきことを表わす。然しながら、ビットＰ４＝０であり、従って再度エラーが検知されており、且つチェックビットＣ４は１へ設定されて値が不一致であることを表わす。従って、チェックワード［Ｃ４Ｃ２Ｃ１］は［１１０］の値を有しており、そのチェックワードは十進数６に対するビットパターンを表わすものであるから、位置Ｄ６においてエラーが検知されている。その結果、ビットＤ６は反転され且つこの場合には０から１へ変化される。このタイプのコードの場合のキーは、チェックビットの二進値が、当業者により理解されるように、コードワードにおける誤っているビットを表わす。次いで、訂正器ユニット７８が訂正したコードワードからパリティビットＰ１，Ｐ２，Ｐ４を除去し且つメモリ内に格納されているオリジナルのコードワードのオリジナルのデータワード部分である１０１１の値を有するビットＤ３，Ｄ５，Ｄ６，Ｄ７がバッファ８０から出力される。以下の説明において、パリティビットＰ１，Ｐ２，Ｐ４を発生するプロセスは、データワードのエンコーディングと呼ぶ場合があり、且つチェックビットＣを発生し且つ誤りビットを検知し且つ訂正するプロセスはデータワードのデコーディングと呼ぶ場合がある。
【００１５】
次に図２及び３を参照すると、ＥＣＣ論理４は、典型的に、特定のアプリケーションにより使用されるビット数即ち幅を有するコードワードを処理し、それは、典型的に、与えられた行のメモリセル（不図示）がアクセスされる場合に図２のメモリアレイ１２から読取られるデータビットの数よりも著しく小さい。比較的短いコードワードに関してハミングコードを使用することの問題は、メモリアレイ１２の全体的な格納容量のより大きな百分率が各コードワードに対して発生されるパリティビットを格納するために必要とされることである。例えば、８ビットデータワード（Ｍ＝８）はＳＥＣＤＥＤコードを実現するために５個のパリティビットを必要とし、従って各１３ビットコードワードは５個のパリティビットを包含しており、メモリアレイ１２の格納容量の約３８％（５／１３×１００％）が、該コードを実現するために必要とされるパリティビットを格納するためにだけ必要とされ、従ってそれはデータビットを格納するために使用されるものでない場合がある。対照的に、２５６ビットデータワード（Ｍ＝２５６）はＳＥＣＤＥＤコードを実現するために１０個のパリティビットを必要とするに過ぎず、そのことは、該コードを実現するために必要とされるパリティビットを格納するためにメモリアレイ１２の容量の約４％（１０／２５６×１００％）が使用されるに過ぎないことを意味する。
【００１６】
パリティビットを格納するために必要とされるメモリアレイ１２の全体的な格納容量の百分率は、各コードワードにおけるデータビットの数が増加するに従い減少するので、ＥＣＣ論理４が大きな数のデータビットを有するデータワードに関して動作することが望ましく、このような大きな数のデータビットを有するデータワードは以後「ワイド（ｗｉｄｅ）」データワードと呼称する。ＥＣＣ論理４がワイドデータワードを処理する場合には、該論理をメモリシステム１０内へ「より深くに」埋込むことが可能であり、尚、より深いという用語は図２のメモリ１２により近いことを意味する。与えられたメモリアレイ１２において、最もワイドなデータワードは、当業者により理解されるように、アレイの１つの全体的な行における全てのビットを包含するデータワードに対応する。ＥＣＣ論理４がアレイ１２からのワイドデータワード、例えば該アレイにおける複数のメモリセルからなる１つの行全体に対応するワードを処理することの問題は、ＥＣＣ論理は活性化された行からの全てのデータを処理せねばならず、そのことは複数のメモリセルからなる有効な列からのデータ、欠陥性の列からのデータ、及び冗長な列からのデータを包含する場合がある。アレイ１２内のメモリセルのどの行が欠陥性であり且つどの冗長列がこれらの欠陥性の列を置換させるためにマップされるかをテストの前に知る方法はない。従って、従来のＥＣＣ論理４は、アレイ１２からの有効なデータのみを処理するための回路を包含せねばならず、そのことはＥＣＣ論理４を実現するために必要とされる回路を複雑化し且つこのような従来の論理がワイドデータワードについて効率的に動作を行うことを阻止する。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
メモリシステム及びメモリを包含するその他のタイプのシステムにおいてワイドデータワードに関してエラー訂正及び検知を行うことの必要性が存在している。
【課題を解決するための手段】
【００１８】
本発明の１つの側面によれば、パリティ発生回路が複数個のビット発生回路を包含している。各ビット発生回路は夫々のデータビット及び夫々のハードラッチ信号を受取り、且つ動作して、該ハードラッチ信号がインアクティブ（ｉｎａｃｔｉｖｅ）即ち非活性である場合に対応するデータビットのパリティを表わすパリティ信号を発生する。各ビット発生回路は、該ハードラッチ信号がアクティブ（ａｃｔｉｖｅ）即ち活性である場合に、該パリティ信号を設定値へ駆動する。出力回路が該ビット発生回路へ結合されており、該パリティ信号を受取り且つ該ビット発生回路からのパリティ信号に応答して出力パリティ信号を発生すべく動作する。
【発明を実施するための最良の形態】
【００１９】
図４はメモリ２８内に格納されているワイドデータワード２２をエンコードし且つデコードするための冗長性論理２４と結合して動作するエラー訂正コード（ＥＣＣ）論理２６を包含するメモリシステム２０の機能的概略図である。動作において、冗長性論理２４は、メモリ２８内の欠陥性のメモリセル（不図示）を冗長メモリセルで置換させるべくプログラムされており、且つその後に、該冗長性論理は、ＥＣＣ論理２６へ信号を供給し、それは、以下に更に詳細に説明するように、該メモリ内に格納されているワイドデータワードをデコードする場合には、ＥＣＣ論理をして該メモリ内の欠陥性メモリセルからのデータを無視させる。ＥＣＣ論理２６はメモリ２８に対して物理的により近くに形成されており、そのことは、ＥＣＣ論理がワイドデータワード２２に関して動作することを可能とし且つそれによりパリティビットを格納するために必要とされるメモリの容量の百分率を減少させる。例えば、メモリシステム２０の場合に、多くのアプリケーションプログラムにより普通に使用され且つ多くのメモリシステムにより供給される３２ビットデータワードは、メモリ２８内に格納する前に、連結又は多重化させて単一の２５６ビットデータワードを形成することが可能である。このことはデータワードに関してのエラーチェック及び訂正を実施するために必要とされるパリティビットの数を著しく減少させる。８個の３２ビットワードは、ＳＥＣＤＥＤコードを実行してＥＣＣ論理２４で従来の態様で格納される場合には、データワード当たり７個のチェックビットを必要とし、即ちメモリ２８の格納容量の約１８％（７／３９×１００％）を必要とする。然しながら、単一の２５６ビットワイドデータワードは、１０個のチェックビットを必要とするに過ぎず、従って該メモリの格納容量の約４％（１０／２６６×１００％）を必要とするに過ぎない。
【００２０】
以下の説明において、本発明の充分な理解を与えるために本発明の本明細書に説明する実施例に関連してある詳細について記載する。然しながら、当業者は、本発明をこれらの特定の詳細なしに実施することが可能であることを理解する。更に、当業者が理解するように、以下に説明する例示的実施例は、本発明の範囲を制限するものではなく、且つ本明細書に開示する実施例の種々の修正例、均等物及び結合及びこれらの実施例のコンポーネントは本発明の範囲内のものである。夫々の本明細書で記載する実施例の何れかのコンポーネントの全てより少ない数を包含する実施例も以下において明示的に記載するものでない場合であっても、本発明の範囲内のものである場合がある。最後に、よく知られたコンポーネント及び／又はプロセスの動作は本発明を不必要にぼかすことを回避するために以下において示したり説明したりすることはしていない。
【００２１】
図５は本発明の一実施例に基づいて図４のＥＣＣ論理２６内に包含されるデコーディング回路５０の機能図である。デコーディング回路５０は、ｎ個の行及びｍ個の列に配列した複数個のメモリセル（不図示）を包含するメモリアレイ５２の列に結合されている。アレイ５２の各行は多数の冗長メモリセルを包含しており、それらはＲ１−Ｒ４として示した複数のメモリセルからなる４個の冗長列を形成している。アレイ５２は、Ｒ１−Ｒ４のみが示されているに過ぎないが、通常、冗長メモリセルからなる付加的な列を包含している。デコーディング回路５０は複数個のビット比較回路５４を包含しており、各ビット比較回路は、アレイ５２内の関連する列へ結合している入力を具備しており且つ冗長論理２４から複数個のハードラッチ信号ＨＬのうちの１つを受取るべく適合されているディスエーブル入力を具備している。一実施例においては、ビット比較回路の各々は、以下に更に詳細に説明するように、排他的ＯＲ（ＸＯＲ）ゲートにより形成される。
【００２２】
動作において、与えられたビット比較回路５４へ印加されるハードラッチ信号ＨＬがインアクティブ即ち不活性である場合には、該回路は対応する列からのビットを比較し且つ比較したビットのパリティを表わす出力信号Ｆを展開させる。例えば、図５の実施例において、１つの欠陥性列を置換する場合には、連続する列が４つのグループへグループ化される。このことは、例えば、アレイ５２内の列３が欠陥性である場合には、列１−４がディスエーブルされ且つ列Ｒ１−Ｒ４と置換されることを意味する。このことは、列１，２，４がこの例においては欠陥性ではない場合であっても成立する。従って、デコーディング回路５０において、第一ビット比較回路５４はアレイ５２の列１−４上のビットのパリティを表わす信号Ｆ１を発生し、第二ビット比較回路は列５−８上のビットのパリティを表わす信号Ｆ２を発生し、以下最終的ビット比較回路まで同様であり、最終的ビット比較回路は、冗長列Ｒ１−Ｒ４上のビットのパリティを表わす信号ＦＲを発生する。信号Ｆ１−ＦＲは、以下に更に詳細に説明するように、メモリ２８から読取られるワイドデータワード２２と関連するパリティビットを発生する場合に使用される。与えられたビット比較回路５４へ印加されたハードラッチ信号ＨＬがアクティブ即ち活性である場合には、該回路は対応する列からのビットの値とは独立的に出力信号Ｆを論理０へ駆動する。
【００２３】
動作において、アレイ５２内のメモリセルはテストされ且つ欠陥性セルを包含する列が識別される。次いで、冗長性論理２４が少なくとも１個の欠陥性の列を包含する４個の列からなる１つのグループを置換させるためにメモリセルからなる４個の冗長列Ｒをマップする。例えば、列３が欠陥性である場合には、論理２４は列１−４を置換させるために列Ｒ１−Ｒ４をマップすることが可能であり、そのことは、あるアプリケーションプログラムが列１−４のうちの何れかに対応するメモリアドレスへデータを格納するか又はそれからデータを検索しようと試みる場合には、データは冗長列Ｒ１−Ｒ４内のメモリセルへ書込まれるか又はそれから読取られることを意味する。冗長性論理２４は、又、適宜のビット比較回路５４をイネーブル又はディスエーブルさせるために適宜のＨＬ信号を活性化及び不活性化させる。前の例において、論理２４は列１−４へ結合されている最初のビット比較回路５４へ印加されるＨＬ１信号を活性化させ且つその他の全てのＨＬ信号を不活性化させる。
【００２４】
デコーディング回路５０は、アレイ内の欠陥性セルとは独立的に、アレイを包含するメモリ２８の製造期間中にメモリアレイ５２の全ての列へ結合している。このことは、回路５０がアレイ５２内の与えられた行内のメモリセルから全てのビットを受取ることを可能とし、そのことは、全体として、非常に広いデータワードに対応している。更に、回路５０の動作は、該回路を比較的単純な回路から形成することを可能とし、それにより、該回路により占有される空間を減少させる。又、アレイ５２のテストの前に、アクティブ、欠陥性、インアクティブであるアレイの列を決定することが必要であり、ビット比較回路５４をアクティブな列へ接続するためにヒューズ回路を供給することは必要ではない。更に、デコーディング回路５０の場合、冗長性論理２４からのハードラッチ信号ＨＬに起因してインアクティブ又は欠陥性の列によりデータ出力によって問題が提示されることはない。例えば欠陥性の列から提示される場合のあるこのような予測不可能な値は、回路５０により発生される出力信号Ｆに影響を与えることはない。何故ならば、ＨＬ信号は、基本的に、アレイ５２内のこのような欠陥性又はインアクティブな列からのデータを「マスク」し、それにより該データが信号Ｆの値に影響を与えることを防止するからである。冗長性論理２４は、パワーアップ時にアレイ５２内の動的修復動作テストメモリセルに応答してメモリシステム２０のパワーアップ時にＨＬ信号を介してデコーディング回路５０を動的に再プログラムすることが可能であり、欠陥性の列を置換させるために冗長列をマップし、次いで適宜のＨＬ信号を活性化及び不活性化させる。これはメモリシステム２０用の内蔵自己テストであり、それは冗長性及び欠陥性のセルに応答してアレイ５２をコンフィギャ即ち形態特定するためにレーザ又は電気的なヒューズを使用する従来のメモリシステムの場合には不可能である。
【００２５】
図６は本発明の一実施例に基づく図５のビット比較回路５４のうちの１つを例示した概略図である。ビット比較回路５４は図示した如くに結合された複数個のＮＭＯＳトランジスタ６２−９０及びＰＭＯＳトランジスタ９２−９８により形成されている。より詳細には、ＮＭＯＳトランジスタ６２−７６及び８０−９０はメモリアレイ５２（図５）の対応する列から夫々の真入力信号ＤＴ又は相補的入力信号ＤＣを受取る。図５には示していないが、アレイ５２内の各列は、当業者により理解されるように、例えばアレイがＤＲＡＭメモリセルからなるアレイである場合には、真及び相補的デジット線を包含している。各列に対して、真デジット線上の信号は第一論理状態を有しているビットを表わし且つ相補的デジット線上の信号は相補的な論理状態を有しているビットを表わす。図６の例においては、回路５４はアレイ５２の列１−４から、夫々、ビットＤＴ＜０＞，ＤＣ＜０＞−ＤＴ＜３＞，ＤＣ＜３＞を受取る。冗長性論理２４（図４）により発生される計算信号ＣＡＬＣが制御トランジスタ７８，９２，９４へ印加される。
【００２６】
回路トランジスタ６２−９４はＤＴ及びＤＣビットに応答して一体的に動作して出力回路１００の２個の入力ノードＩＮ１及びＩＮ２上に信号を展開する。ノードＩＮ１，ＩＮ２上の信号は、ビットＤＴ，ＤＣのパリティを表わし且つこれらのノード上の信号に応答して、該出力回路は該ビットのパリティを表わす相補的なパリティ信号Ｆ，Ｆ*を発生する。より詳細には、出力回路１００はＮＯＲゲート１０２を包含しており、その第一入力はノードＩＮ１へ結合しており且つその第二入力は対応するＨＬ信号を受取る。ＨＬ信号がインアクティブである場合には、ＮＯＲゲート１０２はイネーブルされ且つＤＴ及びＤＣビットのパリティを表わすＩＮ１ノード上の信号に応答してＦ信号を展開する。
【００２７】
出力回路１００は、更に、ＮＡＮＤゲート１０４を包含しており、その第一入力はノードＩＮ２へ結合しており且つその第一入力はインバータ１０６を介して印加される対応するＨＬ信号を受取る。ＨＬ信号がインアクティブである場合には、ＮＡＮＤゲート１０４がイネーブルされ、且つＤＴ及びＤＣビットのパリティを表わすＩＮ２ノード上の信号に応答してＦ*信号を展開する。ＨＬ信号がアクティブである場合には、ＮＯＲゲート１０２はディスエーブルされ且つＦ信号を低へ駆動し且つＮＡＮＤゲートがディスエーブルされ且つＦ*信号を高へ駆動する。ＨＬ信号がインアクティブ低である場合には、信号Ｆが低へ移行すると、トランジスタ９６がターンオンし且つノードＩＮ１上の信号を高へ駆動しその際にＦ信号を低へラッチする。同様に、ＨＬがインアクティブ低である場合には、信号Ｆ*が低へ移行すると、トランジスタ９８がターンオンし且つノードＩＮ２上の信号を高へ駆動しそれにより信号Ｆ*信号を低にラッチする。ＣＡＬＣはアクティブ高であり回路５４の通常動作期間中にトランジスタ７８をターンオンさせる。対照的に、回路５４がインアクティブであると、ＣＡＬＣ信号はインアクティブ低であり、トランジスタ９２，９４をターンオンし、それにより、ノードＩＮ１及びＩＮ２の両方を高へ駆動する。Ｆ及びＦ*の状態はこの状態においてＨＬ信号の状態に依存する。
【００２８】
動作において、ＣＡＬＣ信号は、初期的に、インアクティブ低へ移行しＰＭＯＳトランジスタ９２，９４を介してノードＩＮ１及びＩＮ２を高へプリチャージする。その後に、ＣＡＬＣ信号はアクティブ高へ移行し、トランジスタ９２，９４をターンオフし且つトランジスタ７８をターンオンさせる。ＣＡＬＣ信号がアクティブ高であり且つＨＬ信号がインアクティブ低であると、印加したＤＴ，ＤＣビットのパリティが偶数である場合にはビット比較回路５４は信号Ｆ及びＦ*を夫々高及び低へ駆動し、且つ印加したＤＴ，ＤＣビットのパリティが奇数である場合には、信号Ｆ及びＦ*を夫々低及び高へ駆動する。例えば、回路５４への入力ビットＤＴ＜０＞−ＤＴ＜３＞が０１０１であり、尚ＤＴ＜０＞=０及びＤＴ＜３＞＝１であると仮定する。この例においては、ＤＴビットのパリティは偶数である。何故ならば、ビットＤＴ＜１＞及びＤＴ＜３＞が二進１だからである。ＤＴビット及びＤＣビットに応答して（この例においては、ＤＣ＜０＞−ＤＣ＜３＞は１０１０である）、ノードＩＮ１はトランジスタ６８，８６，７２，７０，７８を介して低へ駆動される。高へプレチャージされたノードＩＮ２は、印加されたＤＴ及びＤＣビットに応答して高に止まる。従って、ノードＩＮ１は低であり且つノードＩＮ２は高である。この点において、ＮＯＲゲート１０２はノードＩＮ１上の低信号及び低ＨＬ信号を受取り、且つこれら２つの低信号に応答してＦ信号を高へ駆動する。ＮＡＮＤゲート１０４はノードＩＮ２上の高信号及び低ＨＬ信号に応答して展開されたインバータ１０６の高出力を受取り、従って、これら２つの高入力信号に応答してＦ*信号を低へ駆動する。トランジスタ９８は低Ｆ*信号に応答してターンオンしてノードＩＮ２を高へラッチし、従ってこのノードからチャージがリークすることに関する懸念は存在せず且つＦ*の値が誤った値へ変化することの懸念も存在しない。この説明及び図６から、当業者は、奇数パリティを有するＤＴビットに対して及びＤＴビットの種々の値に対しての回路５４の動作を理解し、従って、説明の便宜上、該回路の更なる詳細な説明は割愛する。
【００２９】
注意すべきことであるが、ＨＬ信号がアクティブ高である場合には、回路５４がディスエーブルされ且つＤＴ及びＤＣビットの値とは独立的に、Ｆ及びＦ*信号を夫々低及び高へ駆動する。このように、冗長性論理２４は、ＨＬ信号を使用して回路５４をしてアレイ５２の欠陥性又はインアクティブな列の値をマスクさせ、従ってこれらのビットは回路５４を包含するデコーディング回路により発生されるパリティビットに影響を与えることはない。回路５４の動作を要約すると、該回路は印加されたＤＴビットに関してＸＯＲ演算を実施し且つＨＬ信号がインアクティブ低である場合にこれらのビットのパリティを表わす信号Ｆを発生し、信号Ｆは印加したＤＴビットの偶数パリティに対しては高であり且つ奇数パリティに対しては低である。対照的に、信号ＨＬがアクティブ高である場合には、回路５４は信号Ｆ及びＦ*を夫々低及び高へ駆動する。当業者は、この機能性を実現するために種々のその他の回路を形成することが可能である。
【００３０】
図７は本発明の一実施例に基づく図４のＥＣＣ論理２６内に包含されており且つ図６のビット比較回路５４を包含するパリティ発生回路７０の機能的ブロック図である。ビット比較回路５４は対応する列からビットを受取るために前述した如くアレイ５２（不図示）へ結合されており、且つ各ビット比較回路は、又、冗長性論理２４から夫々のＨＬ信号を受取る。ビット比較回路５４は前述した如くに動作して信号Ｆを発生し、それは図示した如くＸＯＲゲート７２へ印加される。ＸＯＲゲート７２は、ＸＯＲゲート７４及び７６及び図示していない付加的なＸＯＲゲートと共にツリー構造に結合されており、アレイ５２から読取られたワイドデータワードのビットに関し所要のＸＯＲ演算を実施し、それにより、所要のパリティビットＰを展開する。全てのアクティブな列からのビットＤＴ，ＤＣがビット比較回路５４及びＸＯＲゲート７２−７６を介して加算されると、パリティビットＰはアレイ５２内に格納されている全体的なワイドデータワードのパリティを表わす。一実施例においては、ビット比較回路５４の後に該ＸＯＲゲートが相互接続されてビットＤＴ，ＤＣの選択したものを加算して所望のパリティビットＰを発生する。パリティ発生回路７０の別の実施例においては、冗長性論理２４がＨＬ信号の選択したものを活性化させてビット比較回路５４及びＸＯＲゲート７２−７６をしてメモリアレイ５２における列の任意のサブセットに対するパリティビットＰを発生させる。ＨＬ信号がアクティブ高である全ての列は、この実施例においては、パリティビットＰの計算から除外される。
【００３１】
デコーディング回路５０及びパリティ発生回路７０の上に説明した実施例を使用してワイドデータワード２２をエンコード及びデコードするために実現することが可能なハミング行列の一実施例は米国特許出願、発明者Ｗｏｒｌｅｙ、発明の名称「エラー訂正回路用Ｈ行列（Ｈ−ＭＡＴＲＩＸ  ＦＯＲ  ＥＲＲＯＲ  ＣＯＲＲＥＣＴＩＮＧ  ＣＩＲＣＵＩＴＲＹ）」、本願と同時に２００３年１２月１８日に出願、に記載されており、尚その特許出願を引用により本明細書に取込む。
【００３２】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【００３３】
【図１】従来のデータＩ／Ｏ操作におけるＥＣＣ及び冗長性論理に対する処理順を示したブロック図。
【図２】欠陥ビットを有する列を冗長列が置換する従来の態様を示した図１のメモリアレイの概略図。
【図３】エラーが訂正される従来の態様を示した図１のエラー訂正コード論理を示した概略図。
【図４】本発明の一実施例に基づいてワイドワードデータＩ／Ｏ操作における冗長性及びＥＣＣ論理に対する処理順を示したメモリのブロック図。
【図５】本発明の一実施例に基づいて図４のＥＣＣ論理内に包含されるデコーディング回路を示した機能図。
【図６】本発明の一実施例に基づいて図５のビット比較回路の１つを例示した概略図。
【図７】本発明の一実施例に基づいて図４のＥＣＣ論理内に包含されており且つ図６のビット比較回路を包含しているパリティ発生回路を示した機能的ブロック図。
【符号の説明】
【００３４】
２０：メモリシステム
２２：ワイドデータワード
２４：冗長性論理
２６：エラー訂正コード（ＥＣＣ）論理
２８：メモリ
５０：デコーディング回路
５２：メモリアレイ
５４：ビット比較回路
【図１】
2005182989.tif 000003
【図２】
2005182989.tif 000004
【図３】
2005182989.tif 000005
【図４】
2005182989.tif 000006
【図５】
2005182989.tif 000007
【図６】
2005182989.tif 000008
【図７】
2005182989.tif 000009