(57)【要約】【課題】ＥＣＣビットのビット数を低減することができる半導体記憶装置を提供すること。半導体記憶装置の動作速度を向上させることができる技術を提供すること。【解決手段】本発明に係る半導体記憶装置１は、メモリセルアレイ１０と、ＥＣＣビットを格納するＥＣＣセル２０と、ＥＣＣビットを算出するＥＣＣ演算回路７０とを備える。ＥＣＣ演算回路７０は、少なくとも１つの書き込みデータＤＷａとメモリセルアレイ１０から読み出される読み出しデータＤＤＲの一部からなる第１データＤＥＣＣ１に対して、第１ＥＣＣビットＤＥ１を算出する。【選択図】      図１２
2006190425.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイと、
ＥＣＣビットを格納するＥＣＣセルと、
前記ＥＣＣビットを算出するＥＣＣ演算回路とを具備し、
前記ＥＣＣ演算回路は、少なくとも１つの書き込みデータと前記メモリセルアレイから読み出される読み出しデータの一部からなる第１データに対して、前記ＥＣＣビットである第１ＥＣＣビットを算出する
半導体記憶装置。
【請求項２】
請求項１に記載の半導体記憶装置であって、
エラー検知訂正回路を更に具備し、
前記読み出しデータは、前記エラー検知訂正回路及び前記ＥＣＣ演算回路に入力され、
前記エラー検知訂正回路は、前記ＥＣＣセルから読み出される前記ＥＣＣビットに基づいて、前記入力された読み出しデータのエラーを検出する
半導体記憶装置。
【請求項３】
メモリセルアレイと、
ＥＣＣビットを格納するＥＣＣセルと、
前記ＥＣＣビットを算出するＥＣＣ演算回路と、
前記メモリセルアレイのエラーを検出して訂正するエラー検知訂正回路とを備え、
前記ＥＣＣ演算回路は、前記メモリセルアレイへの書き込みデータと、前記エラー検知訂正回路に入力される前記メモリセルアレイからの読み出しデータとを用いて第１ＥＣＣビットを生成し、
前記ＥＣＣ演算回路は、前記エラー検知訂正回路の出力する前記読み出しデータを訂正したデータとを用いて第２ＥＣＣビットを生成し、
前記ＥＣＣ演算回路は、前記エラー検知訂正回路の検出する前記メモリセルアレイの不良検出結果に応じて、前記第１、第２ＥＣＣビットの何れか一方を前記ＥＣＣセルに格納することを特徴とする
半導体記憶装置。
【請求項４】
請求項２又は３に記載の半導体記憶装置であって、
前記エラー検知訂正回路が前記エラーを検出しない場合、
前記ＥＣＣ演算回路は、前記第１ＥＣＣビットを前記ＥＣＣセルに格納する
半導体記憶装置。
【請求項５】
請求項４に記載の半導体記憶装置であって、
前記ＥＣＣ演算回路は、前記エラー検知訂正回路による前記エラーの検出処理と同時に、前記第１ＥＣＣビットの算出処理を行う
半導体記憶装置。
【請求項６】
請求項２又は３に記載の半導体記憶装置であって、
前記エラー検知訂正回路が前記エラーを検出し、且つ、前記検出されたエラーが前記書き込みデータが書き込まれる領域に対応するエラーである場合、
前記ＥＣＣ演算回路は、前記第１ＥＣＣビットを前記ＥＣＣセルに出力する
半導体記憶装置。
【請求項７】
請求項２に記載の半導体記憶装置であって、
前記エラー検知訂正回路が前記エラーを検出した場合、
前記エラー検知訂正回路は、前記ＥＣＣビットを用いて前記読み出しデータを訂正することによって訂正データを生成し、
前記ＥＣＣ演算回路は、前記書き込みデータと前記訂正データの一部からなる第２データに対して、前記ＥＣＣビットである第２ＥＣＣビットを算出し、前記第２ＥＣＣビットを前記ＥＣＣセルに出力する
半導体記憶装置。
【請求項８】
請求項７に記載の半導体記憶装置であって、
前記メモリセルアレイは、リフレッシュ動作が必要なメモリセルを有し、
第１サイクルにおいて、前記エラー検知訂正回路が前記エラーを検出した場合、
前記第１サイクルの次の第２サイクルにおいて、前記リフレッシュ動作は実行されない
半導体記憶装置。
【請求項９】
請求項８に記載の半導体記憶装置であって、
前記第２サイクルの次の第３サイクルにおいて、前記リフレッシュ動作が実行される
半導体記憶装置。
【請求項１０】
請求項７に記載の半導体記憶装置であって、
前記メモリセルアレイは、リフレッシュ動作が必要なメモリセルを有し、前記リフレッシュ動作は、ＣＰＵに対してウェイトコマンドが発行されることによって実行され、
第１サイクルにおいて、前記エラー検知訂正回路が前記エラーを検出した場合、
前記第１サイクルの直後に、前記ウェイトコマンドが発行される
半導体記憶装置。
【請求項１１】
請求項１０に記載の半導体記憶装置であって、
前記第１サイクルの次の第２サイクルの直後に、前記ウェイトコマンドが再度発行される
半導体記憶装置。
【請求項１２】
請求項１乃至１１のいずれかに記載の半導体記憶装置であって、
前記少なくとも１つの書き込みデータは、バーストモードにおいて、前記メモリセルアレイ中のあるアクセスアドレスに書き込まれるデータであり、
前記読み出しデータは、前記あるアクセスアドレスに関連したアドレスに格納されているデータである
半導体記憶装置。
【請求項１３】
請求項１乃至１２のいずれかに記載の半導体記憶装置を含む
擬似ＳＲＡＭ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特にＥＣＣ（Error Correcting Code）機能を搭載した半導体記憶装置に関する。
【背景技術】
【０００２】
ＥＣＣ（Error Correcting Code）機能をサポートするＥＣＣメモリが知られている。このＥＣＣメモリは、単なるメモリエラーの検出だけでなく、エラーが発生した箇所（ビット）を特定し、それを正しい値に訂正することができる。そのＥＣＣによるチェックに用いられる情報は、以下「ＥＣＣビット」と参照される。
【０００３】
このＥＣＣビットのビット数は、ハミングコードにより決定される。データバス幅がＮビットの場合、そのビット数は、Ｎに対し２を底とする対数をとり、これに２を加えることによって求められる。例えば、データバス幅が６４ビットの場合、８ビットのＥＣＣビットが必要である。よって、データバス幅が６４ビットの場合、２５６ビットのデータに対しては、合計３２（＝８×４）ビットのＥＣＣビットが必要である。
【０００４】
このようなＥＣＣビットの増大を抑制するための技術が、特許文献１に開示されている。この特許文献１に開示された半導体記憶装置によれば、バースト転送されるデータの全てを用いることによってＥＣＣビットが算出される。例えば、データバス幅が６４ビットでありバースト長が４である場合、２５６ビットのデータに対して１つのＥＣＣビットが算出される。この場合、必要となるＥＣＣビットのビット数は、９ビットである。つまり、ＥＣＣビットの削減が可能となる。
【０００５】
【特許文献１】特開平１１−１０２３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の従来技術には次のような問題点がある。すなわち、ＥＣＣビットの算出に必要なデータビット数が例えば２５６ビットであるのに対し、２５６ビット未満（例えば１バイト）のデータしか書き込まれない場合、ＥＣＣビットを算出することができない。バーストライトは実行されるがバースト転送データがマスクされる場合も、同様の問題が発生する。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明に係る半導体記憶装置（１）は、メモリセルアレイ（１０）と、ＥＣＣビットを格納するＥＣＣセル（２０）と、ＥＣＣビットを算出するＥＣＣ演算回路（７０）と、エラー検知訂正回路（６０）を備える。書き込みデータ（ＤＷａ）のビット数がＥＣＣビットの算出に必要なデータビット数より少ない場合、次のような動作（一部バーストライト動作）が実行される。
【０００９】
つまり、メモリセルアレイ（１０）から所定ビットのデータ（ＤＤＲ）が読み出される（ダミーリード動作）。その読み出しデータ（ＤＤＲ）は、エラー検知訂正回路（６０）及びＥＣＣ演算回路（７０）に入力される。エラー検知訂正回路（６０）は、ＥＣＣセル（２０）から読み出されるＥＣＣビットに基づいて、入力された読み出しデータ（ＤＤＲ）のエラーを検出する。このエラー検出処理と同時に、ＥＣＣ演算回路（７０）は、少なくとも１つの書き込みデータ（ＤＷａ）と読み出しデータ（ＤＤＲａ〜ＤＤＲｄ）の一部からなる第１データ（ＤＥＣＣ１）に対して、第１ＥＣＣビット（ＤＥ１）を算出する。
【００１０】
エラー検知訂正回路（６０）がエラーを検出しない場合、ＥＣＣ演算回路（７０）は、第１ＥＣＣビット（ＤＥ１）をＥＣＣセル（２０）に出力する。エラー検知訂正回路（７０）がエラーを検出した場合、エラー検知訂正回路（７０）は、読み出されたＥＣＣビットを用いて読み出しデータ（ＤＤＲａ〜ＤＤＲｄ）を訂正することによって訂正データ（ＤＣａ〜ＤＣｄ）を生成する。そして、ＥＣＣ演算回路（７０）は、書き込みデータ（ＤＷａ）と訂正データ（ＤＣａ〜ＤＣｄ）の一部からなる第２データ（ＤＥＣＣ２）に対して、第２ＥＣＣビット（ＤＥ２）を算出し、その第２ＥＣＣビット（ＤＥ２）をＥＣＣセル（２０）に出力する。
【００１１】
このように、ダミーリード動作によって、一部バーストライト動作が実現される。また、時間のかかる「エラー検出処理」と「ＥＣＣ演算処理」がパラレルに実行されるので、ＥＣＣビットを決定するのに要する時間が削減される。よって、全体として処理速度・動作速度が向上する。
【発明の効果】
【００１２】
本発明に係る半導体記憶装置によれば、ＥＣＣビットのビット数が全体として低減される。特に、書き込みデータのビット数が、ＥＣＣビットの算出に必要なデータビット数に満たない場合においても、全体としてビット数が低減されたＥＣＣビットを算出することが可能である。
【００１３】
更に、本発明に係る半導体記憶装置によれば、ＥＣＣビットを決定するのに要する時間が全体として削減される。従って、動作速度が向上する。
【発明を実施するための最良の形態】
【００１４】
添付図面を参照して、本発明による半導体記憶装置を説明する。
【００１５】
図１は、本発明に係る半導体記憶装置の構成及び動作を示すブロック図である。半導体記憶装置１は、メモリセルアレイ１０と、メモリセルアレイ１０に対するデータの書き込み／読み出しを行うＲ／Ｗアンプ３０を備えている。メモリセルアレイ１０は、アレイ状に配置された複数のメモリセルを有しており、各メモリセルは、例えば、データに対応する電荷を蓄えるキャパシタとトランジスタから構成されている。つまり、半導体記憶装置１としては、ＤＲＡＭや擬似ＳＲＡＭといったリフレッシュ動作が必要とされるメモリが例示される。また、この半導体記憶装置１は、「バースト機能」をサポートしている。
【００１６】
このような半導体記憶装置１において、キャパシタが電荷を保持する時間はホールド時間と呼ばれる。あるメモリセルにおけるホールド時間が劣化により短くなると、そのメモリセルに記憶されたデータがリフレッシュ動作までに消失してしまう可能性がある。このようなエラーに対応するために、本発明に係る半導体記憶装置１は、ＥＣＣ機能を有している。具体的には、図１に示されるように、半導体記憶装置１は、ＥＣＣビットを格納するためのＥＣＣセル（ＥＣＣセルアレイ）２０と、ＥＣＣ回路５０を備えている。ＥＣＣ回路５０は、ＥＣＣビットを算出したり、メモリエラーを検知・訂正したりする機能を有している。ＥＣＣ回路５０は、Ｒ／Ｗアンプ３０を介してメモリセルアレイ１０に接続されている。また、ＥＣＣ回路５０は、Ｒ／Ｗアンプ４０を介してＥＣＣセル２０に接続されている。
【００１７】
ＥＣＣ回路５０は、エラー検知訂正回路６０とＥＣＣ演算回路７０を有している。エラー検知訂正回路６０は、メモリセルアレイ１０から読み出される読み出しデータと、その読み出しデータに対応付けられてＥＣＣセル２０に格納されたＥＣＣビットを受け取る。そして、エラー検知訂正回路６０は、そのＥＣＣビットを用いることによって、読み出しデータのエラーを検出する。エラーが検出された場合、エラー検知訂正回路６０は、読み出しデータの訂正を行う。ＥＣＣ演算回路７０は、所定ビットの書き込みデータに対するＥＣＣビットを算出する。算出されたＥＣＣビットは、その書き込みデータに対応付けられて、ＥＣＣセル２０に格納される。
【００１８】
本発明において、ＥＣＣ回路５０は、複数個のデータを単位として扱う。すなわち、ＥＣＣ演算回路７０は、複数個のデータを単位としてＥＣＣビットを算出し、エラー検知訂正回路６０は、複数個のデータを単位としてエラーのチェックを実行する。例えば、データバス幅が６４ビットの場合、ＥＣＣ演算回路７０は、２５６ビットのデータからＥＣＣビットを算出する。このＥＣＣビットの算出に必要なデータのビット数は、以下「必要ビット数」と参照される。バースト転送が行われる場合、この必要ビット数は、例えば「データバス幅×バースト長」で与えられる。
【００１９】
以下、本発明に係る半導体記憶装置１の動作が更に詳しく説明される。以下に示される例において、データバス幅は６４ビットであり、バースト長は４であるとする。また、必要ビット数は２５６ビットであるとする。
【００２０】
バーストライト動作：
図１に示されるように、各々が６４ビットである４つの書き込みデータＤＷａ〜ＤＷｄが、Ｒ／Ｗアンプ３０に供給される。つまり、連続する第１〜第４の書き込みデータＤＷａ〜ＤＷｄが、データバス（図示されない）を介してＲ／Ｗアンプ３０にシリアルに導入される。書き込みデータＤＷａ〜ＤＷｄの各々は、１つのアクセスアドレスに対応する。第１の書き込みデータＤＷａに対応する第１のアクセスアドレスは、外部から導入される外部アドレスである。一方、第２〜第４の書き込みデータＤＷｂ〜ＤＷｄに対応するアドレスは、その外部アドレスに応じて内部で生成される内部アドレスである。第１〜第４の書き込みデータＤＷａ〜ＤＷｄは、メモリセルアレイ１０中のブロック（メモリセル群）１０ａ〜１０ｄにそれぞれ書き込まれるとする。
【００２１】
図２は、バーストライト動作時のＥＣＣ回路５０の処理を説明するための図である。第１〜第４の書き込みデータＤＷａ〜ＤＷｄは、ＥＣＣ演算回路７０にも導入される。ＥＣＣ演算回路７０は、これら第１〜第４の書き込みデータＤＷａ〜ＤＷｄをまとめて、「ＥＣＣ計算データＤＥＣＣ」とする。このＥＣＣ計算データＤＥＣＣのビット数は、必要ビット数であり、２５６ビットである。ＥＣＣ演算回路７０は、このＥＣＣ計算データＤＥＣＣを用いて、９ビットのＥＣＣビットを算出することができる。このように、ＥＣＣビットが１つの書き込みデータ毎に算出される場合に比べて、全体としてのＥＣＣビット数を削減することが可能である。ＥＣＣ演算回路７０は、算出されたＥＣＣビットを示すＥＣＣデータＤＥを出力する。
【００２２】
２５６ビットの書き込みデータＤＷａ〜ＤＷｄは、ブロック１０ａ〜１０ｄのそれぞれに書き込まれ、同時に、９ビットのＥＣＣデータＤＥは、ＥＣＣセル２０に書き込まれる。ここで、書き込みデータＤＷａ〜ＤＷｄと、ＥＣＣデータＤＥは、互いに対応付けられて格納される。
【００２３】
バーストリード動作：
図１に示されるように、メモリセルアレイ中のブロック１０ａ〜１０ｄのそれぞれから、第１〜第４の読み出しデータＤＲａ〜ＤＲｄが読み出され、Ｒ／Ｗアンプ３０に転送される。第１の読み出しデータＤＲａに対応する第１のアドレスは、外部から導入される外部アドレスである。一方、第２〜第４の読み出しデータＤＲｂ〜ＤＲｄに対応するアドレスは、その外部アドレスに応じて内部で生成される内部アドレスである。また、その外部アドレスに対応するＥＣＣセル２０内の所定のセルから、読み出しデータＤＲａ〜ＤＲｄに対応したＥＣＣデータＤＥが読み出され、Ｒ／Ｗアンプ４０に転送される。読み出しデータＤＲａ〜ＤＲｄとＥＣＣデータＤＥは、エラー検知訂正回路６０に転送される。
【００２４】
エラー検知訂正回路６０は、９ビットのＥＣＣビットに基づいて、２５６ビットの読み出しデータＤＲａ〜ＤＲｄのエラーを検出する。エラーが検出された場合、エラー検知訂正回路６０は、そのＥＣＣビットに基づいて、エラーの訂正を行う。訂正された読み出しデータＤＲａ〜ＤＲｄは、１つずつシリアルにデータバスに導出される。
【００２５】
一部バーストライト動作：
本発明に係る半導体記憶装置１は、上記動作だけではなく、必要ビット数に満たないデータの書き込み動作をもサポートしている。このような状況は、例えば、２５６ビットのバーストデータのうち１９２ビットのデータがマスクされた場合に発生する。以下、このような一部バーストライト動作が詳しく説明される。以下の例においては、１つ（６４ビット）の書き込みデータである、第１の書き込みデータＤＷａだけがブロック１０ａに書き込まれる場合が示される。
【００２６】
（第１の実施の形態）
一部バーストライト動作において、書き込みアドレスが確定すると、まず「ダミーリード動作」が実行される。図３は、第１の実施の形態に係るダミーリード動作を示す図である。本例においては、書き込みアドレスは、第１の書き込みデータＤＷａが書き込まれる第１アドレスである。第１アドレスが指定されると、まず、その第１アドレスに関連するブロック１０ａ〜１０ｄのそれぞれに格納されたデータが読み出され、Ｒ／Ｗアンプ３０に転送される。ブロック１０ａ〜１０ｄから読み出されるデータは、それぞれダミーリードデータＤＤＲａ〜ＤＤＲｄと参照される。また、その第１アドレスに対応するＥＣＣセル２０内の所定のセルから、ダミーリードデータＤＤＲａ〜ＤＤＲｄに対応したＥＣＣデータＤＥが読み出され、Ｒ／Ｗアンプ４０に転送される。ダミーリードデータＤＤＲａ〜ＤＤＲｄとＥＣＣデータＤＥは、エラー検知訂正回路６０に転送される。
【００２７】
図４は、本実施の形態に係る一部バーストライト動作の次のステップを説明するための図である。エラー検知訂正回路６０は、９ビットのＥＣＣビットに基づいて、２５６ビットのダミーリードデータＤＤＲａ〜ＤＤＲｄのエラーを検出する。エラーが検出された場合、エラー検知訂正回路６０は、そのＥＣＣビットに基づいてエラーの訂正を行う。これにより、ダミーリードデータＤＤＲａ〜ＤＤＲｄから、訂正データ（確実データ）ＤＣａ〜ＤＣｄが生成される。エラーが検出されない場合、ダミーリードデータＤＤＲａ〜ＤＤＲｄが、そのまま訂正データ（確実データ）ＤＣａ〜ＤＣｄとなる。これら訂正データＤＣａ〜ＤＣｄは、Ｒ／Ｗアンプ３０及びＥＣＣ演算回路７０に出力される。また、第１の書き込みデータＤＷａが、データバスを介して、Ｒ／Ｗアンプ３０とＥＣＣ演算回路７０に導入される。第２〜第４の書き込みデータＤＷｂ〜ＤＷｄは、導入されない。
【００２８】
図５は、本実施の形態に係るＥＣＣ回路５０の処理を説明するための図である。ＥＣＣ演算回路７０は、エラー検知訂正回路６０から訂正データＤＣａ〜ＤＣｄを受け取り、また、メモリ外部から第１の書き込みデータＤＷａを受け取る。訂正データＤＣａは、第１の書き込みデータＤＷａで置き換えられる。図５に示されるように、本実施の形態によれば、第１の書き込みデータＤＷａと第２〜第４の訂正データＤＣｂ〜ＤＣｄによって、ＥＣＣ計算データＤＥＣＣが作成される。このＥＣＣ計算データＤＥＣＣのビット数は、必要ビット数であり、２５６ビットである。ＥＣＣ演算回路７０は、このＥＣＣ計算データＤＥＣＣを用いて、９ビットのＥＣＣビットを算出することができる。ＥＣＣ演算回路７０は、算出されたＥＣＣビットを示すＥＣＣデータＤＥを出力する。
【００２９】
図６は、本実施の形態に係る一部バーストライト動作の次のステップを説明するための図である。Ｒ／Ｗアンプ３０は、第１書き込みデータＤＷａをブロック１０ａに書き込む。また、ダミーリードデータＤＤＲａ〜ＤＤＲｄのいずれかにエラーが検出された場合、Ｒ／Ｗアンプ３０は、訂正データＤＣｂ〜ＤＣｄをブロック１０ｂ〜１０ｄに書き込む。エラーが検出されるされないに関わらず、Ｒ／Ｗアンプ３０は、第１書き込みデータＤＷａ、訂正データＤＣｂ〜ＤＣｄのそれぞれを、ブロック１０ａ〜１０ｄに書き込んでもよい。同時に、Ｒ／Ｗアンプ４０は、９ビットのＥＣＣデータＤＥを、ＥＣＣセル２０に書き込む。ここで、メモリセルアレイ１０に書き込まれるデータと、ＥＣＣセル２０に書き込まれるＥＣＣデータＤＥは、互いに対応付けられて格納される。
【００３０】
このように、第１の実施の形態によれば、ダミーリード動作によって、一部バーストライト動作が実現される。つまり、メモリセルアレイ１０に書き込まれるデータが、必要ビット数に満たない場合においても、全体としてビット数が低減されたＥＣＣビットを算出することが可能である。
【００３１】
（第２の実施の形態）
本実施の形態においても、書き込みアドレスが確定すると、まず「ダミーリード動作」が実行される。図７は、第２の実施の形態に係るダミーリード動作を示す図である。本例においては、書き込みアドレスは、第１の書き込みデータＤＷａが書き込まれる第１アドレスである。第１アドレスが指定されると、その第１アドレスに関連するブロック１０ａ〜１０ｄのそれぞれから、ダミーリードデータＤＤＲａ〜ＤＤＲｄが読み出され、Ｒ／Ｗアンプ３０に転送される。また、その第１アドレスに対応するＥＣＣセル２０内の所定のセルから、ダミーリードデータＤＤＲａ〜ＤＤＲｄに対応したＥＣＣデータＤＥが読み出される。そのＥＣＣデータＤＥは、Ｒ／Ｗアンプ４０を介してエラー検知訂正回路６０に転送される。図７に示されるように、本実施の形態によれば、ダミーリード動作の段階で、ダミーリードデータＤＤＲａ〜ＤＤＲｄは、エラー検知訂正回路６０だけでなくＥＣＣ演算回路７０にも同時に転送される。
【００３２】
また、第１の書き込みデータＤＷａが、データバスを介して、Ｒ／Ｗアンプ３０とＥＣＣ演算回路７０に導入される。第２〜第４の書き込みデータＤＷｂ〜ＤＷｄは、導入されない。
【００３３】
図８は、本実施の形態に係るＥＣＣ回路５０の処理を説明するための図である。エラー検知訂正回路６０は、ＥＣＣビットを用い、ダミーリードデータＤＤＲａ〜ＤＤＲｄのエラー検出処理を開始する。このエラー検出処理と同時に、ＥＣＣ演算回路７０は、ＥＣＣビットの算出処理を開始する。具体的には、ＥＣＣ演算回路７０は、メモリ外部から第１の書き込みデータＤＷａを受け取り、また、メモリセルアレイ１０からダミーリードデータＤＤＲａ〜ＤＤＲｄを受け取る。ダミーリードデータＤＤＲａは、第１の書き込みデータＤＷａで置き換えられる。図８に示されるように、本実施の形態によれば、第１の書き込みデータＤＷａと第２〜第４のダミーリードデータＤＤＲｂ〜ＤＤＲｄによって、第１ＥＣＣ計算データＤＥＣＣ１が作成される。この第１ＥＣＣ計算データＤＥＣＣ１のビット数は、必要ビット数であり、２５６ビットである。ＥＣＣ演算回路７０は、この第１ＥＣＣ計算データＤＥＣＣを用いて、９ビットの第１ＥＣＣビット（第１ＥＣＣコード）を算出することができる。
【００３４】
このように、本実施の形態によれば、エラー検出処理とＥＣＣ演算処理（１回目のＥＣＣ演算処理）がパラレルに実行される。その後の動作は、エラー検知訂正回路６０によってエラーが検出されるかどうかによって異なる。
【００３５】
図９は、エラーが検出されなかった場合の次のステップを説明するための図である。エラーが検出されなかった場合、エラー検知訂正回路６０は、パス信号８０を単にＥＣＣ演算回路７０に出力する。このパス信号は、エラーが検出されなかったことを示す制御信号である。このパス信号８０に応答して、ＥＣＣ演算回路７０は、先程算出された第１ＥＣＣビットを示す第１ＥＣＣデータＤＥ１を、Ｒ／Ｗアンプ４０に出力する。そして、Ｒ／Ｗアンプ３０は、第１書き込みデータＤＷａをブロック１０ａに書き込み、同時に、Ｒ／Ｗアンプ４０は、９ビットの第１ＥＣＣデータＤＥ１を、ＥＣＣセル２０に書き込む。ここで、メモリセルアレイ１０に書き込まれるデータと、ＥＣＣセル２０に書き込まれる第１ＥＣＣデータＤＥ１は、互いに対応付けられて格納される。
【００３６】
一方、図１０は、エラーが検出された場合の次のステップを説明するための図である。エラーが検出された場合、エラー検知訂正回路６０は、ＥＣＣビットに基づいてエラーの訂正を行う。これにより、ダミーリードデータＤＤＲａ〜ＤＤＲｄから、訂正データ（確実データ）ＤＣａ〜ＤＣｄが生成される。エラー検知訂正回路６０は、これら訂正データＤＣａ〜ＤＣｄをＲ／Ｗアンプ３０に出力する。また、エラー検知訂正回路６０は、フェイル信号９０と共に訂正データＤＣａ〜ＤＣｄを、ＥＣＣ演算回路７０に出力する。このフェイル信号９０は、エラーが検出されたことを示す制御信号である。
【００３７】
フェイル信号９０を受け取った場合、ＥＣＣ演算回路７０は、２回目のＥＣＣ演算処理を行う。この２回目のＥＣＣ演算処理は、図５に示された処理と同様である。すなわち、第１の書き込みデータＤＷａと第２〜第４の訂正データＤＣｂ〜ＤＣｄによって、第２ＥＣＣ計算データＤＥＣＣ２が作成される。この第２ＥＣＣ計算データＤＥＣＣ２のビット数は、必要ビット数であり、２５６ビットである。ＥＣＣ演算回路７０は、この第２ＥＣＣ計算データＤＥＣＣ２を用いて、９ビットの第２ＥＣＣビット（第２ＥＣＣコード）を算出することができる。ＥＣＣ演算回路７０は、算出された第２ＥＣＣビットを示す第２ＥＣＣデータＤＥ２を出力する。そして、図６に示された処理と同様に、書き込みデータ（ＤＷａ、ＤＣｂ〜ＤＣｄ）がメモリセルアレイ１０に書き込まれ、第２ＥＣＣデータＤＥ２がＥＣＣセル２０に書き込まれる。メモリセルアレイ１０に書き込まれるデータと、ＥＣＣセル２０に書き込まれる第２ＥＣＣデータＤＥ２は、互いに対応付けられて格納される。
【００３８】
本実施の形態における動作を俯瞰すれば、次のようになる。図１１及び図１２は、本実施の形態に係る動作を要約的に示すフローチャート及びブロック図である。図１１のフローチャートと図１２の全体図面とを用いて、本実施の形態を時系列的に説明する。
【００３９】
ステップＳ１：
まず、データバスＤＢのうち一部から、第１のアドレスに相当するセルに書き込まれる外部データＤＷａが、ライトアンプ３０−２及びＥＣＣ演算回路７０に入力される。すると、リードアンプ３０−１は、メモリセルアレイ１０からその第１のアドレスに対応するセルデータをダミーリードし、読み出されたダミーリードデータＤＤＲａ〜ＤＤＲｄをエラー検知訂正回路６０及びＥＣＣ演算回路７０に出力する。同様に、第１のアドレスに対応するＥＣＣセル２０のデータも、ＥＣＣセル用のリードアンプ４０−１によって、ＥＣＣデータＤＥとして読み出され、エラー検知訂正回路６０に出力される。この時点でダミーリードデータＤＤＲａ〜ＤＤＲｄが正しいという保証はない。しかし、ＥＣＣ演算回路７０の第１ＥＣＣ発生回路７１は、訂正されていないセルデータ（ＤＤＲａ〜ＤＤＲｄ）と外部入力データＤＷａとによって、「第１ＥＣＣコード（第１ＥＣＣビット）」を準備する。
【００４０】
ステップＳ２：
エラー検知訂正回路６０においては、ダミーリードデータＤＤＲａ〜ＤＤＲｄのエラー検知が行われる。つまり、入力されたデータＤＤＲａ〜ＤＤＲｄ及びＤＥに基づいて、ダミーリードデータＤＤＲａ〜ＤＤＲｄが正しいか否かの判定が行われる。その判定結果を表す判定信号ＰＦ（パス信号８０、フェイル信号９０）は、ＥＣＣ演算回路７０のスイッチ回路７３に出力される。
【００４１】
判定信号ＰＦがダミーリードデータは正しかったことを示す場合、スイッチ回路７３によって前述の「第１ＥＣＣコード」は有効となる。その後、ステップＳ４が実行される。
【００４２】
ステップＳ３：
他方、判定信号ＰＦがダミーリードデータは誤っていたことを示す場合、スイッチ回路７３によって前述の第１ＥＣＣコードは無効化される（ステップＳ３−１）。エラー検知訂正回路６０は、ダミーリードデータＤＤＲａ〜ＤＤＲｄのエラーを訂正し、訂正データＤＣａ〜ＤＣｄをＥＣＣ演算回路７０に出力する（ステップＳ３−２）。ＥＣＣ演算回路７０の第２ＥＣＣ発生回路７２は、訂正データＤＣａ〜ＤＣｄと外部入力データＤＷａとによって、「第２ＥＣＣコード（第２ＥＣＣビット）」を生成する。その後、ステップＳ４が実行される。
【００４３】
生成された第１ＥＣＣコードあるいは第２ＥＣＣコードは、ＥＣＣ用のライトアンプ４０−２を通してＥＣＣセル２０に書き込まれる（ステップＳ４）。その後、ライトアンプ３０−２によって、外部データＤＷａがメモリセルアレイ１０に書き込まれる（ステップＳ５）。
【００４４】
このように、図１２における処理を、図１１のフローチャートで表すと明らかなように、ダミーリードデータにエラーが検出された場合、エラーが検出されなかった場合に比べて、ステップＳ３−１〜Ｓ３−３が追加的に必要となり、その分処理時間が必要となる。逆に言えば、エラーが検出されない場合は追加フローが必要ではなく、処理時間が短縮される。
【００４５】
尚、図１２において、第１ＥＣＣコードを生成する回路７１と第２ＥＣＣコードを生成する回路７２が個別であるように記載されているが、第１ＥＣＣコードと第２ＥＣＣコードとは、単一の回路で時分割的に生成されてもよい。
【００４６】
本実施の形態に係る半導体記憶装置１による効果は以下の通りである。すなわち、第１の実施の形態と同様に、ダミーリード動作によって、一部バーストライト動作が実現される。つまり、メモリセルアレイ１０に書き込まれるデータが、必要ビット数に満たない場合においても、全体としてビット数が低減されたＥＣＣビットを算出することが可能である。
【００４７】
更に、本実施の形態によれば、追加的な効果として、処理速度が速くなるという効果が得られる。その理由は、次の通りである。エラー検知訂正回路６０やＥＣＣ演算回路７０は、多段の論理回路から構成されており、「エラー検出処理」や「ＥＣＣ演算処理」には多くの時間が必要とされる。ここで、第１の実施の形態によれば、エラー検出処理によって確実データＤＣが生成された後、その確実データＤＣに基づいてＥＣＣ演算処理が行われていた。しかしながら、実際の動作において、エラーが発生する確率は極めて低く、必ずしも確実データＤＣが用いられなくてもよい。そのため、本実施の形態によれば、ダミーリードデータＤＤＲが、エラー検知訂正回路６０を通さずに、直接ＥＣＣ演算回路７０に入力される。そして、そのダミーリードデータＤＤＲに基づいた１回目のＥＣＣ演算処理が、エラー検出処理とパラレルで行われる。エラーが検出されない場合、つまり、ほとんどの場合においては、その１回目のＥＣＣ演算処理で得られた第１ＥＣＣデータＤＥ１を採用することが可能である。エラーが検出された場合のみ、２回目のＥＣＣ演算処理が実行される。このように、本実施の形態によれば、最終的なＥＣＣビットを決定するのに要する時間が削減される（図１１参照）。第１の実施の形態に比べて、全体として処理速度・動作速度が向上するという効果が得られる。
【００４８】
なお、エラーが検出され、且つ、そのエラーが第１の書き込みデータＤＷａが書き込まれるブロックに対応するエラーである場合、エラー検知訂正回路６０は、フェイル信号９０の代わりに、パス信号８０を出力してもよい。この場合、図１０に示された処理の代わりに、図９に示された処理が実行され、第１ＥＣＣデータＤＥ１がＥＣＣセル２０に書き込まれる。エラーが検出された領域（ブロック１０ａ）には、新たなデータＤＷａが書き込まれるので、エラーは消失する。この場合も、処理速度・動作速度が向上するという効果が得られる。
【００４９】
図１３は、本発明の第２の実施の形態に係る半導体記憶装置１の動作の一例を示すタイミングチャートである。図１３においては、クロック信号ＣＬＫ、制御信号/ＡＤＶ（Address Data Valid）、チップセレクト信号/ＣＥ、ライトイネーブル信号/ＷＥ、及びワード線信号（ＣＡＳＥ−Ａ、ＣＡＳＥ−Ｂ）が示されている。ＣＡＳＥ−Ａは、エラー検知訂正回路６０によってエラーが検出されない場合に対応し、ＣＡＳＥ−Ｂは、エラー検知訂正回路６０によってエラーが検出される場合に対応する。
【００５０】
この例において、メモリセルアレイ１０に対するリード・ライト動作は、サイクル単位で実行される。図１３に示されるように、第１サイクルは、時刻ｔ１０〜ｔ２０の期間に対応し、第２サイクルは、時刻ｔ２０〜ｔ３０の期間に対応し、第３サイクルは時刻ｔ３０〜の期間に対応する。また、各々のサイクルにおいて、リフレッシュ動作期間とリード・ライト動作期間が分けられて定義されている。例えば、第１サイクルにおいては、時刻ｔ１０〜ｔ１１の期間がリフレッシュ動作期間であり、リフレッシュ動作が許される期間である。また、時刻ｔ１１〜ｔ２０の期間がリード・ライト動作期間である。
【００５１】
エラーが検出されない場合（ＣＡＳＥ−Ａ）の動作は次の通りである。時刻ｔ１１にライトネーブル信号/ＷＥがＬｏｗになり、書き込みデータが供給される。その後、上記の一部バーストライト動作が実行される。ＣＡＳＥ−Ａの場合、一部バーストライト動作（ダミーリード処理、１回目のＥＣＣ演算処理、書き込み処理）は、時刻ｔ１２から時刻ｔ２０まで行われるとする。この書き込み期間Ｔ１は、時刻ｔ１２から次サイクル（第２サイクル）におけるリフレッシュ動作が開始するまでの期間ｔｗｒｐより、小さくなるように設定される。これにより、エラーが検出されない場合の一部バーストライト動作とリフレッシュ動作が被ることが防止される。
【００５２】
第２サイクルの時刻ｔ２０〜ｔ２１の期間において、制御信号/ＡＤＶがＬｏｗになる。この期間において、内部リフレッシュタイマからの指示に応じて、リフレッシュ動作が実行されるとする。その後、時刻ｔ２１〜ｔ３０の間において、次の書き込み動作が実行される。
【００５３】
エラーが検出される場合（ＣＡＳＥ−Ｂ）の動作は次の通りである。時刻ｔ１１にライトネーブル信号/ＷＥがＬｏｗになり、書き込みデータが供給される。その後、上記の一部バーストライト動作が実行される。ＣＡＳＥ−Ｂの場合、バーストライト動作（ダミーリード処理、１回目のＥＣＣ演算処理、２回目のＥＣＣ演算処理、書き込み処理）は、時刻ｔ１２から書き込み期間Ｔ２にわたって実行されるとする。この場合、１回目のＥＣＣ演算処理だけでなく２回目のＥＣＣ演算処理も実行されるので、書き込み期間Ｔ２は、書き込み期間Ｔ１や期間ｔｗｒｐより長くなる。つまり、第１サイクルでの書き込み動作が、第２サイクルまでずれこんでしまう。よって、第２サイクルにおいてはリフレッシュ動作が“行われないように”制御が行われる。その代わり、リフレッシュ動作は、第２サイクルに続く第３サイクル（時刻ｔ３０〜時刻ｔ３１）において行われる。
【００５４】
このように、本実施の形態によれば、あるサイクルにおいてエラーが検出された場合、次のサイクルにおいてリフレッシュ動作は実行されない。その代わり、次の次のサイクルにおいてリフレッシュ動作が実行される。
【００５５】
尚、第１サイクルにおいて、あるアクセスアドレスに対してフェイルが検出された場合、第２サイクルにおいて、同じアクセスアドレスに対して連続してフェイルが検出されることはない。その理由は次の通りである。あるメモリセルが劣化したことにより、そのメモリセルのホールド時間が低下したとする。この場合、そのメモリセルに対するアクセス時にフェイルが検出される可能性が高い。しかしながら、そのメモリセルは、劣化したといえども、ホールド時間としては例えば１００ｍｓ程度を有している。一方、１サイクルの期間は、例えば３０〜１００ｎｓ程度である。つまり、オーダーが違う。第１サイクルにおいて、そのメモリセルのフェイルが検出された場合、ＥＣＣ機能によって読み出しデータは訂正され、訂正データが新たに書き込まれる。この訂正データは、少なくとも１００ｍｓ程度はそのメモリセルに保持される。従って、第２サイクルにおいて、同じメモリセルがアクセスされたとしても、フェイルが検出されることはない。第２サイクルでは絶対にフェイルが検出されないので、第３サイクルではリフレッシュ動作を実行することができる。よって、永久にリフレッシュ動作が実行されないという事態は発生しない。
【００５６】
サイクルの長さは、書き込み期間に基づいて設定される。書き込み期間が短いほど、サイクルを短く設定することが可能となる。図１３に示された例において、書き込み期間Ｔ２は、第１の実施の形態における動作に対応する。つまり、第１の実施の形態では、書き込み期間Ｔ２に基づいてサイクルを設定する必要がある。一方、本実施の形態では、サイクルは、書き込み期間Ｔ１に基づいて設定することが可能である。フェイルが検出された場合であっても、上述の理由により問題は発生しない。このように、本実施の形態によれば、第１の実施の形態と比較して、サイクルをより短く設定することが可能となる。従って、メモリの高速化が可能となる。
【００５７】
図１３に示されたような方式とは別に、「ウェイトコマンドＷＡＩＴ」を用いることによってリフレッシュ動作が実行される方式（Ready/Busy方式）が知られている。具体的には、リフレッシュ動作が必要になると、メモリは、ＣＰＵに対してウェイトコマンドＷＡＩＴを発行する。ウェイトコマンドＷＡＩＴが発行されると、ＣＰＵは、データの入出力処理を、数クロックの間停止する。メモリは、その間にリフレッシュ動作を行う。このような方式を、本実施の形態に係る半導体記憶装置１に適用することも可能である。
【００５８】
図１４Ａ及び図１４Ｂは、本発明の第２の実施の形態に係る半導体記憶装置１の動作の他の例を示すタイミングチャートである。図１４Ａ及び図１４Ｂにおいては、クロック信号ＣＬＫ、ワード線信号（ＣＡＳＥ−Ａ，ＣＡＳＥ−Ｂ）、ウェイトコマンドＷＡＩＴ（ＷＡＩＴ−Ａ，ＷＡＩＴ−Ｂ）が示されている。図１４Ａは、エラー検知訂正回路６０によってエラーが検出されない場合に対応し、図１４Ｂは、エラー検知訂正回路６０によってエラーが検出される場合に対応する。また、１つのサイクルにおいては、リード・ライト動作期間のみが設定されており、リフレッシュ動作期間は特に割り当てられていない。
【００５９】
図１４Ａに示されるように、エラーが検出されない場合は、通常動作が繰り返される。つまり、第１サイクル（時刻ｔ１〜ｔ２）において、ある一部バーストライト動作が実行される。図１３で示された場合と同様に、この時の書き込み期間はＴ１である。第２サイクル（時刻ｔ２〜ｔ３）においても、他のライト動作が実行される。第２サイクルの後、内部リフレッシュタイマからの要求に応じて、ウェイトコマンドＷＡＩＴが発行されるとする。これにより、リフレッシュ動作が実行される。リフレッシュ動作の後、第３サイクル（時刻ｔ４〜ｔ５）において、また他のライト動作が実行される。
【００６０】
一方、エラーが検出される場合には、図１４Ｂに示される動作が実行される。例えば、第１サイクル（時刻ｔ１〜ｔ２）において、ある一部バーストライト動作が実行され、フェイルが検出されたとする。この時の書き込み期間はＴ２である。１つのサイクルは書き込み期間Ｔ１に基づいて設定されているので、この一部バーストライト動作が終了するのは、時刻ｔ２よりも後である。そのため、フェイルが検出された場合には、第１サイクルの後にウェイトコマンドＷＡＩＴを発行するようにメモリに指示が出される。これにより、第２サイクルは、第１サイクルの終了時刻ｔ２から所定の期間後に開始するようになる。ＣＰＵにとっては、メモリはリフレッシュ動作を実行しているように見える。しかしながら、実際には、延長された一部バーストライト動作が実行されている。
【００６１】
第２サイクル（時刻ｔ３〜ｔ４）においては、通常のライト動作が実行される。そして、第２サイクルの後に、もう一度ウェイトコマンドＷＡＩＴが発行される。これにより、リフレッシュ動作が実行される。リフレッシュ動作の後、第３サイクル（時刻ｔ５〜ｔ６）において、また他のライト動作が実行される。
【００６２】
このように、本実施の形態によれば、第１サイクルにおいてフェイルが検出された場合、その第１サイクルの後に、１回目のウェイトコマンドＷＡＩＴが発行される。また、その第１サイクルの次の第２サイクルの後に、２回目のウェイトコマンドＷＡＩＴが発行される。１回目のウェイトコマンドＷＡＩＴに応じて、書き込み期間の延長が行われ、２回目のウェイトコマンドＷＡＩＴに応じて、リフレッシュ動作が行われる。但し、ＣＰＵからは、どちらの場合にもメモリがリフレッシュ動作を実行しているように見える。このように、周知のウェイトコマンドを利用することによって、本発明に係るＥＣＣ機能を外部から見えないように半導体記憶装置に実装することが可能となる。
【００６３】
以上に説明されたように、本発明に係る半導体記憶装置１によれば、書き込みデータのビット数が必要ビット数に満たない場合においても、全体としてビット数が低減されたＥＣＣビットを算出することが可能である。更に、本発明に係る半導体記憶装置によれば、ＥＣＣビットを決定するのに要する時間が全体として削減される。従って、動作速度が向上する。
【図面の簡単な説明】
【００６４】
【図１】図１は、本発明に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図２】図２は、バーストライト動作時のＥＣＣ回路の処理を説明するための図である。
【図３】図３は、第１の実施の形態に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図４】図４は、第１の実施の形態に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図５】図５は、第１の実施の形態に係るＥＣＣ回路の処理を説明するための図である。
【図６】図６は、第１の実施の形態に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図７】図７は、第２の実施の形態に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図８】図８は、第２の実施の形態に係るＥＣＣ回路の処理を説明するための図である。
【図９】図９は、第２の実施の形態に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図１０】図１０は、第２の実施の形態に係る半導体記憶装置の構成及び動作を示すブロック図である。
【図１１】図１１は、第２の実施の形態に係る半導体記憶装置の動作を要約的に示すフローチャートである。
【図１２】図１２は、第２の実施の形態に係る半導体記憶装置の動作を要約的に示すブロック図である。
【図１３】図１３は、本発明の第２の実施の形態に係る半導体記憶装置の動作の一例を示すタイミングチャートである。
【図１４Ａ】図１４Ａは、本発明の第２の実施の形態に係る半導体記憶装置の動作の他の例を示すタイミングチャートである。
【図１４Ｂ】図１４Ｂは、本発明の第２の実施の形態に係る半導体記憶装置の動作の更に他の例を示すタイミングチャートである。
【符号の説明】
【００６５】
１    半導体記憶装置
１０    メモリセルアレイ
２０    ＥＣＣセル
３０    Ｒ／Ｗアンプ
４０    Ｒ／Ｗアンプ
５０    ＥＣＣ回路
６０    エラー検知訂正回路
７０    ＥＣＣ演算回路
７１    第１ＥＣＣ発生回路
７２    第２ＥＣＣ発生回路
８０    パス信号
９０    フェイル信号
【図１】
2006190425.tif 000003
【図２】
2006190425.tif 000004
【図３】
2006190425.tif 000005
【図４】
2006190425.tif 000006
【図５】
2006190425.tif 000007
【図６】
2006190425.tif 000008
【図７】
2006190425.tif 000009
【図８】
2006190425.tif 000010
【図９】
2006190425.tif 000011
【図１０】
2006190425.tif 000012
【図１１】
2006190425.tif 000013
【図１２】
2006190425.tif 000014
【図１３】
2006190425.tif 000015
【図１４Ａ】
2006190425.tif 000016
【図１４Ｂ】
2006190425.tif 000017