(57)【要約】【課題】誤り訂正の単位ビット数よりも少ないビット数のデータ書き込みを可能にする。【解決手段】誤り訂正符号化回路１、および誤り訂正復号化回路２は、３２ビット（誤り訂正の単位ビット数）単位のデータに対して、誤り訂正符号の生成、および誤り訂正を行う。データ選択制御回路３、およびセレクター回路４は、上記誤り訂正の単位ビット数より小さい単位のデータ書き込みを可能にするために用いられる。データＩ／Ｏ制御回路１１０から入力される書き込みデータのうち書き込もうとするビット数のデータと、誤り訂正復号化回路２から入力される残りのビット数のデータとを選択して出力する。【選択図】図１
2007328894.tif 000002
【特許請求の範囲】
【請求項１】
記憶データと誤り訂正符号とを対応させて記憶する半導体記憶装置であって、
記憶データと誤り訂正符号とを記憶する記憶部と、
記憶データの誤り訂正符号を生成する誤り訂正符号化部と、
を備え、
上記誤り訂正符号化部は、入力データの一部のビットと、記憶部から読み出されて誤り訂正された読み出しデータの一部のビットとに応じた新たな誤り訂正符号を生成し、
上記記憶部は、上記入力データの一部のビットと、上記新たな誤り訂正符号とを記憶することを特徴とする半導体記憶装置。
【請求項２】
請求項１の半導体記憶装置であって、
さらに、記憶部から読み出された読み出しデータの誤り訂正を行う誤り訂正復号化部を備え、
上記誤り訂正符号化部は、入力データの一部のビットと、上記誤り訂正復号化部によって誤り訂正された読み出しデータの一部のビットとに基づいて、新たな誤り訂正符号を生成することを特徴とする半導体記憶装置。
【請求項３】
請求項１の半導体記憶装置であって、
上記誤り訂正符号化部は、入力データの一部のビットおよび記憶部から読み出された読み出しデータに基づいて、入力データの一部のビットおよび記憶部から読み出されて誤り訂正された読み出しデータの一部のビットに応じた新たな誤り訂正符号を生成することを特徴とする半導体記憶装置。
【請求項４】
請求項１の半導体記憶装置であって、
上記記憶部は、１回の書き込み動作でデータおよび誤り訂正符号が書き込まれる各ビットの領域は、それぞれ互いに隣接しない領域に配置されていることを特徴とする半導体記憶装置。
【請求項５】
請求項１の半導体記憶装置であって、
上記入力データの一部のビットと、上記新たな誤り訂正符号との書き込みサイクルは、入力データの全ビットが書き込まれる場合と同じサイクルで行われる一方、新たな誤り訂正符号を生成するための記憶部からの読み出しは、上記書き込みサイクルとは異なるサイクルで行われることを特徴とする半導体記憶装置。
【請求項６】
請求項１の半導体記憶装置であって、
上記入力データの一部のビットと、上記新たな誤り訂正符号との書き込み、および新たな誤り訂正符号を生成するための記憶部からの読み出しは、入力データの全ビットが書き込まれる場合と同じサイクルで行われることを特徴とする半導体記憶装置。
【請求項７】
請求項１の半導体記憶装置であって、
上記入力データの一部のビットと、上記新たな誤り訂正符号とは、異なるタイミングで記憶部に書き込まれることを特徴とする半導体記憶装置。
【請求項８】
請求項７の半導体記憶装置であって、
上記新たな誤り訂正符号は、上記入力データの一部のビットの次の書き込みサイクル以降に記憶部に書き込まれることを特徴とする半導体記憶装置。
【請求項９】
請求項７の半導体記憶装置であって、
上記新たな誤り訂正符号は、上記入力データの一部のビットの書き込みタイミングよりも、書き込みサイクルの整数倍遅れたタイミングで記憶部に書き込まれることを特徴とする半導体記憶装置。
【請求項１０】
請求項１の半導体記憶装置であって、
さらに、記憶部から読み出された読み出しデータのシンドローム演算を行うシンドローム演算回路と、読み出しデータの誤りがあるビットを判定する誤り判定回路と、上記誤りがあるビットを訂正する誤り訂正回路とを有して記憶データの誤り訂正を行う誤り訂正復号化部を備えるとともに、
上記誤り訂正符号化部は、上記シンドローム演算回路と兼用されるように構成されていることを特徴とする半導体記憶装置。
【請求項１１】
請求項１０の半導体記憶装置であって、
上記兼用される誤り訂正符号化部と上記シンドローム演算回路とは、排他的論理和回路が兼用されるように構成されていることを特徴とする半導体記憶装置。
【請求項１２】
請求項１の半導体記憶装置であって、
上記誤り訂正符号化部を介することなく、記憶部から読み出された記憶データを半導体記憶装置の外部に出力するパス、誤り訂正符号を半導体記憶装置の外部に出力するパス、および半導体記憶装置の外部から入力された誤り訂正符号を記憶部に書き込むパスのうちの少なくとも１つを有することを特徴とする半導体記憶装置。
【請求項１３】
請求項１２の半導体記憶装置の検査方法であって、
上記パスを介して記憶データまたは誤り訂正符号の書き込みまたは読み出しを行って、記憶状態を検査することを特徴とする半導体記憶装置の検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特に、誤り訂正機能を有するＤＲＡＭ（ダイナミックランダムアクセスメモリ）等に関するものである。
【背景技術】
【０００２】
従来より、誤り訂正機能を有するＤＲＡＭ等が用いられ、読み書きされるデータに対して、誤り訂正（ＥＣＣ）を行うことにより、信頼性の向上と高速化が図られている（例えば、特許文献１、２参照。）。
【０００３】
また、特に例えばＤＲＡＭのようにアクセススピードも要求される半導体記憶装置で誤り訂正を実現する場合には、ハミング符号による誤り訂正が有用である。そして、このハミング符号による符号化では、符号化する単位ビット数が少ない程、必要な冗長ビット（訂正符号ビット）の割合が大きく、効率が悪くなる。すなわち、メモリセルアレイ領域内の冗長ビットの割合が大きくなり現実的ではなくなってしまう。具体的には、例えば８ビット単位のデータの誤り訂正には、４ビットの冗長ビットが必要となり、必要なメモリ容量が誤り訂正のために１．５倍必要となってしまう。また、誤り訂正に必要な回路も相対的に大きくなり、現実的ではなくなってしまう。
【０００４】
そこで、誤り訂正機能を持たせる場合は、メモリにおけるデータＩ／Ｏのビット数に応じた３２ビット単位や、６４ビット単位での誤り訂正が主流となっている。
【特許文献１】特開２００２−３２２７０
【特許文献２】特開２００２−５６６７１
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年、用途の多様化などに応じて、データＩ／Ｏのビット数に限らず、それよりも少ない一部のビットのデータを書き換え得るメモリが求められることもある。しかしながら、従来のメモリは、上記のように誤り訂正機能を持たせる場合、誤り訂正の単位ビット数よりも少ないビット数のデータ書き込みをすることができないという問題点を有していた。
【０００６】
具体的には、例えばデータＩ／Ｏのビット数が３２ビットや６４ビットの場合にバイト単位での書き込みをすることなどができない。なお、誤り訂正の単位ビット数をバイト単位以下にすれば、バイト単位でデータを書き込めるようになるが、前記のように、符号格納用のメモリセルや誤り訂正回路の回路規模が大幅に増大することになる。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明の半導体記憶装置の例は、
記憶データと誤り訂正符号とを対応させて記憶する半導体記憶装置であって、
記憶データと誤り訂正符号とを記憶する記憶部と、
記憶データの誤り訂正符号を生成する誤り訂正符号化部と、
を備え、
上記誤り訂正符号化部は、入力データの一部のビットと、記憶部から読み出されて誤り訂正された読み出しデータの一部のビットとに応じた新たな誤り訂正符号を生成し、
上記記憶部は、上記入力データの一部のビットと、上記新たな誤り訂正符号とを記憶することを特徴とする。
【０００８】
上記新たな誤り訂正符号は、入力データの一部のビットと、記憶部から読み出されて一旦誤り訂正された読み出しデータの一部のビットとに基づいて生成されてもよいし、入力データの一部のビットおよび記憶部から読み出された読み出しデータに直接基づいて生成されてもよい。
【０００９】
また、新たな誤り訂正符号を生成するための記憶部からの読み出しは、入力データの全ビットが書き込まれる場合の書き込みサイクルとは異なるサイクルで行われるようにしてもよいし、同じサイクルで行われるようにしてもよい。
【００１０】
さらに、入力データの一部のビットと、新たな誤り訂正符号とは、異なるタイミングで記憶部に書き込まれるようにしてもよい。より具体的には、入力データの一部のビット等の次の書き込みサイクル以降に書き込まれるようにしたり、書き込みサイクルの整数倍遅れたタイミングで書き込まれるようにしたりしてもよい。
【００１１】
これらにより、
入力データの一部のビットと、記憶部から読み出されて誤り訂正された読み出しデータの一部のビットとに応じた新たな誤り訂正符号を生成するので、所定の誤り訂正の単位ビット数の誤り訂正符号化部を設けるだけで、書き込むデータが上記単位ビット数よりも少ない場合でも適切に誤り訂正符号が生成される。したがって、誤り訂正の単位ビット数よりも少ないビット数のデータを容易に書き込むことができる。
【発明の効果】
【００１２】
上記のように、本発明によれば、誤り訂正符号化部による誤り訂正の単位ビット数よりも少ない一部のビットのビット数のデータ書き込みをすることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面に基づいて詳細に説明する。なお、以下の各実施形態において、他の実施形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００１４】
《発明の実施形態１》
図１は、本発明の実施の形態１の半導体記憶装置（例えば３２ビットのＤＲＡＭ）の構成を示すブロック図である。
【００１５】
同図に示すように、半導体記憶装置には、メモリセルアレイ部１２５、ローアドレスバッファ１０５、ローデコーダ１０６、ワードドライバー１０７、ライト／リードアンプ１０８、カラムデコーダ１０９、データＩ／Ｏ制御回路１１０、誤り訂正符号化回路１、誤り訂正復号化回路２、データ選択制御回路３、およびセレクター回路４が設けられている。
【００１６】
メモリセルアレイ部１２５は、詳しくは、例えば図２に示すように、キャパシター１１４を有するメモリセル１０１がアレイ状に配置されたメモリセルアレイ１００と、ワード線１０２と、ビット線１０３と、反転ビット線１０４と、プリチャージ回路１１３と、センスアンプ１２３とが設けられて構成されている。
【００１７】
誤り訂正符号化回路１、および誤り訂正復号化回路２は、３２ビット（誤り訂正の単位ビット数）単位のデータに対して、誤り訂正符号の生成、および誤り訂正を行うようになっている。より具体的には、例えばハミング符号が用いられ、誤り訂正符号化回路１は、図３、図４に示すように、それぞれＸＯＲ回路（排他的論理和回路）により構成される６つのパリティ生成回路１ａ〜１ｆを備え、セレクター回路４から入力される３２ビットデータのうち、６種類の１５ビットの組み合わせについての誤り訂正符号を生成するようになっている。また、誤り訂正復号化回路２は、図５、図６に示すように、それぞれＸＯＲ回路により構成されるシンドローム演算回路２ａ〜２ｆと、誤り判定回路２ｇと、誤り訂正回路２ｈとを有し、メモリセルアレイ部１２５から読み出される３８ビットのデータうち、６種類の１６ビットの組み合わせについてのシンドローム演算を行い、その結果に応じて書き込みデータの何れのビットに誤りがあるかを検出し、誤りのあるビットの値を反転させて訂正されたデータを出力するようになっている。
【００１８】
データ選択制御回路３、およびセレクター回路４は、上記誤り訂正の単位ビット数より小さい単位のデータ書き込みを可能にするために用いられる。データＩ／Ｏ制御回路１１０から入力される書き込みデータのうち書き込もうとするビット数のデータと、誤り訂正復号化回路２から入力される残りのビット数のデータとを選択して出力するようになっている。
【００１９】
上記のように構成された半導体記憶装置では、例えば、あるアドレスの領域に既に書き込まれている３２ビットのデータのうち、２４ビットはそのままにして８ビットだけを書き換える場合、次のような動作が行われる。
【００２０】
まず、メモリセルアレイ部１２５から、既に書き込まれているデータが予め読み出され、誤り訂正復号化回路２によって誤り訂正される。
【００２１】
データ選択制御回路３は、３２ビットのデータ中の書き換えをする８ビットの位置を示すバイトアドレスをデコードして、所定の選択信号を出力する。
【００２２】
セレクター回路４は、上記選択信号に応じて、上記予め読み出されて誤り訂正されたデータのうちの２４ビットと、データＩ／Ｏ制御回路１１０から入力される書き込みデータのうちの８ビットとの合計３２ビットのデータを選択して出力する。
【００２３】
誤り訂正符号化回路１は、上記３２ビットのデータ（符号化対象の全てのデータ）に対して、新たな６ビットの誤り訂正符号を生成する。生成された誤り訂正符号は、元のセレクター回路４から出力された３２ビットのデータと伴にメモリセルアレイ部１２５に書き込まれる。
【００２４】
上記のように、半導体記憶装置に入力されるデータと既に書き込まれているデータとに基づいて符号化が行われることで、誤り訂正符号化回路１や誤り訂正復号化回路２による誤り訂正の符号化、復号化のビット数よりも少ないビット数のデータを書き込むことができる。また、符号化のビット数を書き込むデータのビット数より少なく設定する場合のように符号ビットのビット数を増大させる必要もない。
【００２５】
なお、上記の例ではバイト単位の書き込みの例を示したが、これに限らず、ビット単位の書き込みなどでも基本的な動作は同様である。すなわち、上記のようにバイト単位の書き込みの場合には、例えば、ＤＲＡＭの通常のバス幅３２ビットの場合その３２ビットを８ビット（１バイト）単位に区切ってそのうちの何れかを指定るためのアドレス（バイトアドレス）を別途設け、そのバイトアドレスを指定することで３２ビット中の特定８ビットを選択することでアクセスできる。そこで、ビット単位などのアクセスについては、上記バイトアドレスに相当するアドレスを増やして、ビット単位で指定できるようにするとともに、セレクター回路４がその指定に応じたビットを選択するようにすれば、容易に可能である。
【００２６】
また、書き込みに要する時間やサイクル数は、特に限定されず、要求仕様等によって許容される範囲で、通常の書き込みよりも多くのサイクルや時間、例えば通常の書き込みサイクルの２倍のサイクルを使用するようにしたり、バイト書き込み時のみ１サイクルの時間を長くするようにしたりしてもよい。すなわち、上記のように、バイト単位などの書き込みをするためには既に書き込まれているデータを読み出す動作が必要とされるが、そのような動作を書き込みとは別のサイクルで行わせるようにしたりするのであれば、特にタイミングの厳しい制約を受けたりすることなく構成することが容易にできる。（高速化する種々の手法の例については発明の実施形態３以降で説明する。）
ここで、誤り訂正符号化の号式は特に限られないが、上記のように３２ビットハミング符号が用いられる場合の誤り訂正符号化回路１および誤り訂正復号化回路２について簡単に説明する。
【００２７】
誤り訂正符号化回路１のパリティ生成回路１ａ〜１ｆ（図４））には、それぞれ、３２ビットのデータ（d0〜d31）のうち以下の各ビットのデータが入力されてＸＯＲ演算が行われ、各１ビット、合計で６ビットの誤り訂正符号（冗長ビット）が生成される。
１ａ：d31,d30,d28,d25,d21,d13,d10,d9,d8,d6,d5,d3,d2,d1,d0
１ｂ：d31,d29,d27,d24,d20,d14,d11,d10,d9,d7,d6,d4,d3,d2,d0
１ｃ：d30,d29,d26,d23,d19,d15,d12,d10,d8,d7,d5,d4,d3,d1,d0
１ｄ：d28,d27,d26,d22,d18,d16,d12,d11,d9,d8,d7,d4,d2,d1,d0
１ｅ：d25,d24,d23,d22,d17,d16,d15,d14,d13,d6,d5,d3,d2,d1,d0
１ｆ：d21,d20,d19,d18,d17,d16,d15,d14,d13,d12,d11,d4,d3,d2,d0
また、誤り訂正復号化回路２のシンドローム演算回路２ａ〜２ｆには、それぞれ、３８ビットのデータ（データ本体d0〜d31および誤り訂正符号d32〜d37）のうち以下の各ビットのデータが入力されてＸＯＲ演算が行われ、誤りのあるビット位置に応じた信号が出力される。
２ａ：d32,d31,d30,d28,d25,d21,d13,d10,d9,d8,d6,d5,d3,d2,d1,d0
２ｂ：d33,d31,d29,d27,d24,d20,d14,d11,d10,d9,d7,d6,d4,d3,d2,d0
２ｃ：d34,d30,d29,d26,d23,d19,d15,d12,d10,d8,d7,d5,d4,d3,d1,d0
２ｄ：d35,d28,d27,d26,d22,d18,d16,d12,d11,d9,d8,d7,d4,d2,d1,d0
２ｅ：d36,d25,d24,d23,d22,d17,d16,d15,d14,d13,d6,d5,d3,d2,d1,d0
２ｆ：d37,d21,d20,d19,d18,d17,d16,d15,d14,d13,d12,d11,d4,d3,d2,d0
誤り判定回路７は、シンドローム演算回路２ａ〜２ｆで得られた結果から、どのビットに誤りがあるかを演算するための回路で、いわゆる誤り訂正の生成演算子に相当するデコードで判定できる。また誤り訂正回路８は誤り判定回路７より求まった誤りフラグ（誤りの有ったビットに“１”が立つ）によってデータを反転させて誤りを訂正する。
【００２８】
《発明の実施形態２》
製造工程において配線のショートが生じる場合、隣接する２ビット以上の領域が何れも不良となることが多い。そこで、３２ビットのデータ＋６ビット符号ビットの３８ビットを記憶するメモリセルを隣接しないように配置すれば、２ビット以上の誤りが生じる可能性を低く抑えることができる。具体的には、例えば図７に示すように、誤り訂正符号化回路１や誤り訂正復号化回路２の後にカラム選択部５０を設け、カラムアドレスより生成されるＹゲート信号（ＡＹ０、ＡＹ１、ＡＹ２）によって選択されるビット線ペア５１ａ…５１ｈの相対的な順序を同図に示すように配置することによって、０〜３１ビット目のデータおよび０〜５ビット目の誤り訂正符号における各ビットが書き込まれる位置を１５ビット線分ずつ離すことができる。このような配置は、ハミング符号のように誤り訂正可能なビット数が１ビットである場合に特に有効である。
【００２９】
《発明の実施形態３》
既に書き込まれているデータの読み出しを書き込みサイクル内で行わせることにより、高速化を図ることができる。すなわち、実施形態３の半導体記憶装置は、例えば図８に示すように、メモリセルアレイ１００から読み出されたデータを保持するラッチ回路９が、タイミング生成回路１０によって制御されるようになっている。タイミング生成回路１０は、例えば図９に示すように構成され、ＮＲＡＳ信号とＮＷＥ信号（ローアドレス選択信号とライトイネーブル信号）とに基づいて、図１０に示すようなタイミングで各信号を出力するようになっている。詳しくは、ライトサイクルの最初に書き込みデータが読み出され、ＲＣＫ信号によってラッチ回路９に保持された後、同じライトサイクル内でＷＥＮ信号が立ち上がることによって、実施形態１で説明したのと同じように誤り訂正符号化されたデータがメモリセルアレイ１００に書き込まれる。
【００３０】
《発明の実施形態４》
書き込みデータおよび誤り訂正符号が、実施形態１のように誤り訂正復号化回路２により誤り訂正されたデータに基づいて生成されるのではなく、メモリセルアレイ１００から読み出された３８ビットのデータおよび誤り訂正符号に基づいて直接生成されるようにして、より高速化を図ることができる。
【００３１】
実施形態４の半導体記憶装置は、図１１に示すように、実施形態１の誤り訂正符号化回路１、データ選択制御回路３、およびセレクター回路４に代えて、バイト書込み用誤り訂正符号化回路１２が設けられている。バイト書込み用誤り訂正符号化回路１２は、既存読み出しデータ（３２ビットのデータ本体と６ビットの誤り訂正符号とで３８ビット）と３２ビットの外部入力データと、バイト書き込み位置を示すバイトアドレスとに基づいて、新たな誤り訂正符号を生成するようになっている。より詳しくは、例えば図１２、図１３に示すようなデコード回路１３を備えて構成されている。
【００３２】
図１２に示すように読み出しの３２ビットのデータ本体（ＲＤＡＴ）からパリティを生成し、読み出されたパリティとのＸＯＲをとることでパリティの誤り分を算出する（回路ブロック１２Ａ）。
【００３３】
また、回路ブロック１２Ｂ部分は、書き換えしない２４ビット以外の書き換え部分のビットを“０”にした３２ビットのデータからパリティを生成する。回路ブロック１２Ｃ部分は、書き換えする入力データ８ビット以外のビットを“０”にした３２ビット（バイトアドレスで選択）からパリティを生成する。この回路ブロック１２Ｂと回路ブロック１２Ｃで生成されるそれぞれのパリティビットとのＸＯＲを取ることで新規のパリティが生成できる。
【００３４】
ただし、書き換えしない２４ビットに誤りが無い場合である。そこで、誤りがある場合を考慮して、回路ブロック１２Ａにより別途求めたパリティの誤り分よりどのビットに誤りがあるか判定し、書き換えしない２４ビットに誤りがあれば、パリティの誤り分をさらにＸＯＲを取ることで最終的な新規のパリティが生成できる。
【００３５】
書き換えしない２４ビットに誤りがあるか無いかはデコード回路１３で判定し、回路ブロック１２Ａにより別途求めたパリティにＡＮＤゲートかけることで書き換えしない２４ビットに誤りがあれば、回路ブロック１２Ａで生成したパリティビットと回路ブロック１２Ｂと回路ブロック１２Ｃから生成されたパリティビットとのＸＯＲを取ることで書き換えしない２４ビットに誤りがあった場合の正しいパリティビットを生成することができる。すなわち書き換えしない２４ビットに誤りが無い場合は図１２の最終段のＸＯＲの回路ブロック１２Ａからの入力が“ゼロ”となり、論理的に書き換えしない２４ビットに誤りが無い場合も実現できるように構成される。
【００３６】
上記のように、読み出しデータの誤り訂正をすることなく、書き込み用誤り訂正符号を直接生成することにより、誤り訂正に要する時間を回避して高速化を図ることができる。これは、メモリの特性上誤りが発生し易いビットは決まっているため、バイト書き込みする度に読み出した全ビットの誤り訂正をする構成とする場合でも、読出し時に１度だけする構成としてもエラーレート的に差が出にくいことを利用するものである。すなわち、バイト書き込みする度に読み出した全ビットの誤り訂正行う場合に訂正されるビットは、メモリセルに蓄えられる段階でデータが反転していることを意味し、メモリセルが壊れていたり、リフレッシュ時間が規格を満足できない等固有メモリセルの問題の可能性が大きいと考えられる。そのような場合には、再度訂正して再書込みをしても、またメモリセルに蓄えられる段階でデータが反転する可能性が高い。一方、データの読み出し時（実際に使われるデータが読出される時）には、必ず訂正が必要なので（行われるので）、あえてバイト書き込みする度に誤り訂正するメリットはあまり大きくは無いと考えられる。唯一ソフトエラーでのデータ反転があれば例えば実施形態１の例のようにバイト書き込みする度に誤り訂正した方が有利になる。
【００３７】
《発明の実施形態５》
書き込みデータ本体と、誤り訂正符号との書き込みタイミングをずらすことによって、実効的書き込み速度の高速化を図るようにしてもよい。
【００３８】
実施形態５の半導体記憶装置は、図１４に示すように、実施形態１と比べて、メモリセルアレイ部１２５における３２ビットのデータ本体用メモリセルアレイ部１２５ａのためのワードドライバー１０７と、６ビットの誤り訂正符号用メモリセルアレイ部１２５ｂのためのワードドライバー３０７とが設けられている点が異なる。上記ワードドライバー１０７は、通常の書き込みと同じタイミングでワード線１０２を活性化してデータ本体の書き込みを行う一方、ワードドライバー３０７は、それよりもずれたタイミングで、ワード線１０２を活性化して誤り訂正符号を書き込むようになっている。なお、図１４においては上記タイミングに関して簡潔に示すためにバイト書き込みのための構成を省略しているが、この点に関しては、前記実施形態１等と同様である。
【００３９】
具体的には、図１５に示すようなタイミングで書き込みが行われる。同図は書き込み動作時のビット線と反転ビット線の動作波形の概略を示しており、点線はワード線の波形を示している。また、図１５中のＶＢＰはビット線プリチャージ電位、ＶＩＮＴはワード線昇圧電位、ＶＤＤ・ＶＳＳはセンスアンプの電源・グランド電位を示している。
【００４０】
すなわち、バイトアクセスをする場合は、データ本体の書き込みに必要な時間は誤り訂正機能のないＤＲＡＭと遜色ないが、パリティビット生成は既に書き込まれたデータを読み出して誤り訂正処理をするため、パリティビットの生成にかかる時間だけ、トータルのアクセス時間が多く必要となる。ここで、メモリセルへの書き込みだけは通常の書き込みと全く同じ回路系を通るため、同じ構成のＤＲＡＭであればどのようなアクセス方法をとっても同じアクセス時間でデータを書き込むことができる。それゆえ、パリティビットの書き込み可能となる開始タイミングは、本体データの書き込みが可能となる書き込み開始タイミングに比べて相対的に誤り訂正の符号化処理分遅くなるので、本体データとパリティビットの書き込み領域を分け、別タイミング制御する構成とすることで、パリティビットの書き込み開始タイミングを本体データの書き込み開始タイミングと比べて誤り訂正の符号化処理分遅くすることが可能となり、見かけ上アクセス時間を増やすことなく動作させることが可能となる。これにより従来の誤り訂正有りのＤＲＡＭの構成に比べて高速化ができることになる。
【００４１】
言い換えれば、時間がかかるのは誤り訂正符号の書き込みなので、通常の書き込みサイクル内ではデータ本体を書き込み、次のサイクルに誤り訂正符号の書き込みをする仕様とすることで、誤り訂正符号の書き込みに時間がかかる分を吸収することができ、見かけ上の１サイクルの時間を短縮することが可能となる。
【００４２】
上記のようなタイミングの制御は、前記実施形態３の図９に示したような本体データ書き込み用のタイミング生成回路１０とは別に、誤り訂正符号書き込み用に、図１６に示すようなＮＲＡＳ、ＮＷＥの入力部にバッファ等の遅延回路を挿入したタイミング生成回路１０を設け、それぞれのタイミングを独立に制御できるようにすればよい。
【００４３】
《発明の実施形態６》
誤り訂正符号の書き込みが次のサイクルのライトタイミングで行われるようにしてもよい。
【００４４】
具体的には、図１７に示すように、実施形態４（図１２）に比べて、ラッチ回路２０が設けられている。また、誤り訂正符号化回路１２に代えて、タイミング・モード制御回路２１により制御される誤り訂正符号化回路２３を有する誤り訂正処理回路２２が設けられている。タイミング・モード制御回路２１は、外部から入力されるライトイネーブル信号を所定の遅延量だけ遅延させてラッチ用のライトイネーブルクロック信号（ＷＣＬＫ）を生成する。また、外部より入力されるバイトアクセスモードの信号を受けて、データセレクト用のバイトアクセスモード選択信号（ＢＭＯＤＥ）を生成する。
【００４５】
上記誤り訂正符号化回路２３は、図１８に示すように、誤り訂正符号化回路１２の構成に加えて、さらに、ライトイネーブルクロック信号（ＷＣＬＫ）とバイトアクセスモード選択信号（ＢＭＯＤＥ）を受けパリティの書き込みタイミングを次のライト動作時にずらすラッチとセレクタとが設けられている。
【００４６】
上記所定の遅延量は、ライトイネーブル信号を図１７のラッチ回路の入力データが確定するまでの期間（図１２の回路ブロック１２Ａ、１２Ｃの処理にかかる時間と同様の時間）遅らせるだけの遅延量である。これにより、バイト書き込み時のパリティをちょうど次のバイト書き込み時に本体データとほぼタイミングを合わせて書き込むことが可能となり、リード・ライトを繰り返すランダムアクセス時も含めて高速化が可能となる。
【００４７】
すなわち、パリティビットの書き込みをちょうど１サイクルずらすことを目的とした構成でかつ実施形態４のような高速化の誤り訂正処理を使用することと、実施形態５の本体データとパリティビットの書き込みタイミング別制御による２つの高速化を合わせた構成で更なる高速化を実現することができる。ここで、内部構成や処理的にはパリティビットの書き込みをちょうど１サイクルずらしてるが、外部インターフェイス的には、内部でデータをラッチさせて合わせ込んでいるので、アクセス時間的に高速となる。つまり、実施形態４の構成より図１２または図１７の前段の誤り訂正符号化回路処理分の高速化が可能となる。このように、１サイクルパリティビットの書き込みを遅らせることで、最終書き込み用のパリティビットの生成演算時間が見かけ上短縮され、よりより高速化が実現できる。なお、本実施形態６では、１サイクル分の構成としているが、複数サイクル遅らせる場合も同様に図１６、図１７のラッチを増やすことで可能となる。本説明で１サイクル後というのは、書き込みの１サイクル後ということで次の書き込みサイクルを意味している。
【００４８】
基本的には書き込みサイクル単位遅らせることになる。しかしながら実施形態５で示したように、書き込みサイクル単位遅延＋αというようにサイクル単位より少ない時間加算したタイミングでも問題はない。書き込みサイクル分遅延する意味は、図１２または図１７の前段の誤り訂正符号化回路処理分の時間を稼ぐための処理であり、それ以上は、本回路を適用するメモリ（ＤＲＡＭ）の仕様に合わせて適切に遅延時間を付加させるなどしてもよい。
【００４９】
なお、実施形態５以降で示しているデータ本体とパリティビットの書き込むメモリセルエリアを分ける構成の場合は、それぞれのメモリセルへの書き込み・読出しタイミングは独立制御される必要があり、独立制御を可能にするためにメモリセルエリアを分ける構成を提案している。メモリセルへの書き込み・読出しタイミングを示した図１０内のそれぞれのタイミング関係はデータ本体用のメモリセルとパリティビット用メモリセルとも相対的に同じでも多少のアレンジをしても構わないが、絶対時間的には違ったタイミングで制御される必要がある。その理由はパリティビットのデータが確定するのに誤り訂正復号化処理の時間が余分に必要なためである。
【００５０】
次に、上記バイトアクセスモード選択信号（ＢＭＯＤＥ）の生成について説明する。メモリ（ＤＲＡＭ）の仕様でバイトアクセスと通常アクセスの仕様があり、その仕様に基づいた信号入力でメモリ（ＤＲＡＭ）側で制御される。制御回路は図１７のタイミング・モード制御回路２１で実現される。具体的なメモリ（ＤＲＡＭ）の仕様はメモリ（ＤＲＡＭ）によって違うが、通常、アドレス入力とコントロール信号（ＮＲＡＳ等の信号）を入れるタイミングで認識することが多い。その仕様に基づいた信号デコードでバイトアクセスモード選択信号（ＢＭＯＤＥ）を生成することになる。
【００５１】
ここで、上記のようなバイトアクセスモード選択信号（ＢＭＯＤＥ）は、実施形態１のバイトアドレスとは異なるものである。メモリ（ＤＲＡＭ）の仕様でアドレスや外部制御信号（ＲＡＳやＣＡＳ等）の入れ方でバイトアクセスさせるかどうかが決まっており、その仕様に基づいた入力信号を内部処理（信号デコード処理等）することでバイトアクセスモードが認識される。その認識信号がバイトアクセスモード選択信号（ＢＭＯＤＥ）として使用される。バイトアクセスの場合、外部データバスの全部（８ビットの場合のみ）または一部しか使用しないので、特に一部の使用の場合、誤り訂正機能のないメモリ（ＤＲＡＭ）でもデータセレクトするためにそのセレクト信号を有効にするか無効にするかの選択のためにバイトアクセスモード選択信号（ＢＭＯＤＥ）が使われる。そして、その時のデータのセレクト信号がバイトアドレスということになる。
【００５２】
《発明の実施形態７》
誤り訂正符号化回路１のパリティ生成回路１ａ〜１ｆと、誤り訂正復号化回路のシンドローム演算回路２ａ〜２ｆとは、類似した構成を有している。そこで、図１９に示すように、タイミング・モード制御回路３１および誤り訂正符号復号演算回路３０を設けて、これらが共用されるようにし、回路規模を低減するようにしてもよい。
【００５３】
具体的には、図２０に示すように、タイミング・モード制御回路３１から出力される、ライトサイクルとリードサイクルの切り換え信号であるＲＥ信号に応じて、セレクタにより、ライト用データまたはリード用データの何れがシンドローム演算回３０ａ〜３０ｆに入力されるかが制御される。
【００５４】
より詳しくは、図２０では、３８ビットのＲＤＡＴのうち３２ビットが読み出した本体データ２０２で残り６ビットが読み出したパリティビット２０１である。書き込み時は３２ビットの書き込み本体データＷＤＡＴを使用する必要があるため、３２ビットの読出し本体データとライトサイクルとリードサイクルの切り換え信号であるＲＥ信号で切り換えて使用する。シンドローム演算回路２０３は、本来誤り訂正復号化用の回路でパリティビットの入力が必要である（図６参照）。パリティビットのデータ全てが“０”であれば、図５に示したパリティ生成回路と同等となるので、ＲＥ信号でグランドデータと読み出したパリティビット２０１とを切り換えることで書き込み用のパリティ２０４が生成できる。
【００５５】
また、読出し時はＲＥ信号でパリティビットを含め全ての読出しデータをシンドローム演算回路２０３に入力することで誤り訂正された読出しデータが誤り訂正回路より出力される。
【００５６】
なお、図２１に示すように、誤り訂正符号の演算を後ろに行う構成としてもよい。このような構成は、実施形態５（図１４、図１５）のように誤り訂正符号用メモリセルの制御信号を遅らせて全体的に高速化を図る場合に有用である。すなわち、パリティビットのみ遅らせる場合、図２０の構成だとパリティビットが遅く出力されるため全体的に遅くなってしまうのに対し、このような構成で高速化を図った場合の回路共用化の実施例が図２１で、この構成であれば、パリティ生成回路分の高速化が可能となり、高速化と回路規模の最適化を両立させることが容易になる。
【００５７】
《発明の実施形態８》
誤り訂正機能を有するＤＲＡＭのメモリセル自体が適切に動作しているかどうかは、誤り訂正回路を通して行うと評価が困難となる。そこで、誤り訂正回路をパスする回路を設けることでダイレクトにメモリセルの動作（特性）を観測できるように構成してもよい。
【００５８】
例えば、図２２に示すように、誤り訂正復号化回路２によって誤り訂正されたデータと訂正されないデータとをデータ選択制御回路４１の制御によって選択するセレクタ回路４０が設けられている。これにより、外部からの制御信号によって、誤り訂正復号化回路２をバイパスして読み出しデータをダイレクトに出力させることができる。
【００５９】
また、図２３に示すように、データ選択制御回路４４によって制御されて、データ本体または誤り訂正符号を選択するセレクタ回路４２・４３を設け、誤り訂正符号もメモリセルに対してダイレクト読み出しや書き込みできるようにしてもよい。
【００６０】
なお、上記各実施形態ではＤＲＡＭを例に挙げたが、誤り訂正の単位ビット数より小さい単位のデータ書き込みを可能にするための構成自体は、ＤＲＡＭに限らず適用することができる。
【００６１】
また、上記の例では書き換えるビットと新たな誤り訂正符号だけを書き込む例を示したが、書き換えないビットも併せて再度書き込むようにしてもよい。
【産業上の利用可能性】
【００６２】
本発明にかかる半導体記憶装置は、誤り訂正符号化部による誤り訂正の単位ビット数よりも少ない一部のビットのビット数のデータ書き込みをすることができるという効果を有し、誤り訂正機能を有するＤＲＡＭ（ダイナミックランダムアクセスメモリ）等の半導体記憶装置等として有用である。
【図面の簡単な説明】
【００６３】
【図１】実施の形態１の半導体記憶装置の構成を示すブロック図である。
【図２】同、メモリセルアレイ部１２５の構成を示す回路図である。
【図３】同、誤り訂正符号化回路１の構成を示すブロック図。
【図４】同、パリティ生成回路１ａ〜１ｆ構成を示す回路図である。
【図５】同、誤り訂正復号化回路２の構成を示すブロック図。
【図６】同、シンドローム演算回２ａ〜２ｆの構成を示すブロック図。
【図７】実施形態２の各ビットのメモリセルの配置例を示すブロック図である。
【図８】実施形態３の半導体記憶装置の構成を示す回路図である。
【図９】同、タイミング生成回路１０の構成を示す回路図である。
【図１０】同、各部の動作を示すタイミングチャートである。
【図１１】実施形態４の半導体記憶装置の構成を示すブロック図である。
【図１２】同、誤り訂正符号化回路１２の構成を示すブロック図である。
【図１３】同、デコード回路１３の構成を示す回路図である。
【図１４】実施形態５の半導体記憶装置の構成を示すブロック図である。
【図１５】同、各部の動作を示すタイミングチャートである。
【図１６】同、タイミング生成回路１０の構成を示す回路図である。
【図１７】実施形態６の半導体記憶装置の構成を示すブロック図である。
【図１８】同、誤り訂正符号化回路２３の構成を示すブロック図である。
【図１９】実施形態７の半導体記憶装置の構成を示すブロック図である。
【図２０】同、誤り訂正符号復号演算回路３０の構成を示すブロック図である。
【図２１】同、誤り訂正符号復号演算回路３０の変形例を示すブロック図である。
【図２２】実施形態８の半導体記憶装置の構成を示すブロック図である。
【図２３】同、変形例を示すブロック図である。
【符号の説明】
【００６４】
１      誤り訂正符号化回路
１ａ〜１ｆ    パリティ生成回路
２      誤り訂正復号化回路
２ａ〜２ｆ    シンドローム演算回路
２ｇ    誤り判定回路
２ｈ    誤り訂正回路
３      データ選択制御回路
４      セレクター回路
７      誤り判定回路
８      誤り訂正回路
８      入力データ
９      ラッチ回路
１０      タイミング生成回路
１２      誤り訂正符号化回路
１３      デコード回路
２０      ラッチ回路
２１      タイミング・モード制御回路
２２      誤り訂正処理回路
２３      誤り訂正符号化回路
３０      誤り訂正符号復号演算回路
３０ａ〜３０ｆ  シンドローム演算回
３１      タイミング・モード制御回路
４０      セレクタ回路
４１      データ選択制御回路
４２・４３      セレクタ回路
４４      データ選択制御回路
１００      メモリセルアレイ
１０１      メモリセル
１０２      ワード線
１０３      ビット線
１０４      反転ビット線
１０５      ローアドレスバッファ
１０６      ローデコーダ
１０７      ワードドライバー
１０８      ライト／リードアンプ
１０９      カラムデコーダ
１１０      データＩ／Ｏ制御回路
１１３      プリチャージ回路
１１４      キャパシター
１２３      センスアンプ
１２５      メモリセルアレイ部
１２５ａ    データ本体用メモリセルアレイ部
１２５ｂ    訂正符号用メモリセルアレイ部
３０７      ワードドライバー
【図１】
2007328894.tif 000003
【図２】
2007328894.tif 000004
【図３】
2007328894.tif 000005
【図４】
2007328894.tif 000006
【図５】
2007328894.tif 000007
【図６】
2007328894.tif 000008
【図７】
2007328894.tif 000009
【図８】
2007328894.tif 000010
【図９】
2007328894.tif 000011
【図１０】
2007328894.tif 000012
【図１１】
2007328894.tif 000013
【図１２】
2007328894.tif 000014
【図１３】
2007328894.tif 000015
【図１４】
2007328894.tif 000016
【図１５】
2007328894.tif 000017
【図１６】
2007328894.tif 000018
【図１７】
2007328894.tif 000019
【図１８】
2007328894.tif 000020
【図１９】
2007328894.tif 000021
【図２０】
2007328894.tif 000022
【図２１】
2007328894.tif 000023
【図２２】
2007328894.tif 000024
【図２３】
2007328894.tif 000025