(57)【要約】【課題】半導体記憶装置に対する書き込み／読み出しに影響を与えることなく、読み出し時にエラー訂正されたデータを、メモリ本体に再書き込みする。【解決手段】実施形態に係る半導体記憶装置１は、エラー訂正部９、第１の記憶部１０、第２の記憶部１１、制御部１３を含む。エラー訂正部９は、メモリ本体８から読み出されたデータに対するエラー訂正を行う。第１の記憶部１０は、エラー訂正部９によって訂正されたデータを記憶する。第２の記憶部は、エラー訂正部９によって訂正されたデータに対応するアドレスを記憶する。制御部１３は、メモリ本体８に対する読み出し／書き込みが実行されていないタイミングにおいて、第１の記憶部１０に記憶されているデータと第２の記憶部１１に記憶されているアドレスに基づいて、メモリ本体８に対して再書き込みを行う。【選択図】      図１
2012198954.tif 000002
【特許請求の範囲】
【請求項１】
メモリ本体から読み出されたデータに対するエラー訂正を行うエラー訂正部と、
前記エラー訂正部によって訂正されたデータを記憶する第１の記憶部と、
前記エラー訂正部によって訂正されたデータに対応するアドレスを記憶する第２の記憶部と、
前記メモリ本体に対する読み出し／書き込みが実行されていないタイミングにおいて、前記第１の記憶部に記憶されているデータと前記第２の記憶部に記憶されているアドレスに基づいて、前記メモリ本体に対して再書き込みを行う制御部と
を具備する半導体記憶装置。
【請求項２】
読み出し対象アドレスと、前記第２の記憶部に記憶されているアドレスとを比較し、一致するか否か判断するアドレス比較部と、
前記アドレス比較部によって一致すると判断された場合に、前記読み出し対象アドレスに対応する読み出し対象データとして、前記第１の記憶部に記憶されている前記訂正されたデータを選択し、前記アドレス比較部によって一致しないと判断された場合に、前記読み出し対象データとして、前記メモリ本体から読み出されたデータを選択する選択部と
をさらに具備する請求項１記載の半導体記憶装置。
【請求項３】
前記制御部は、前記メモリ本体に対する読み出し／書き込みが実行されていない期間が閾値を超えた場合に、前記再書き込みを行うことを特徴とする請求項１又は請求項２記載の半導体記憶装置。
【請求項４】
前記エラー訂正部によってエラー訂正が行われ、当該エラー訂正に対する前記メモリ本体に対する再書き込みが実行されていないことを示すエラーフラグを記憶する第３の記憶部をさらに具備し、
前記制御部は、前記第３の記憶部に前記エラーフラグが記憶されている場合に、前記再書き込みを行う
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の半導体記憶装置。
【請求項５】
前記第１の記憶部の記憶内容を電源遮断前に記憶する第１の不揮発性記憶部と、
前記第２の記憶部の記憶内容を前記電源遮断前に記憶する第２の不揮発性記憶部と
をさらに具備し、
前記第１の記憶部は、電源再投入後に前記第１の不揮発性記憶部の記憶内容を記憶し、
前記第２の記憶部は、前記電源再投入後に前記第２の不揮発性記憶部の記憶内容を記憶する
ことを特徴とする請求項１乃至請求項４のいずれか１項に記載の半導体記憶装置。
【請求項６】
メモリ本体から読み出されたデータに対するエラー訂正を行うエラー訂正部と、
前記エラー訂正部によって訂正されたデータのエラー位置を記憶するエラー位置記憶部と、
前記メモリ本体に対する読み出し／書き込みが実行されていないタイミングにおいて、前記エラー位置記憶部に記憶されている前記エラー位置に基づいて、前記メモリ本体に対して再書き込みを行う制御部と
を具備する半導体記憶装置。
【請求項７】
メモリ本体から読み出されたデータに対するエラー訂正を行うことと、
訂正されたデータを第１の記憶部に記憶し、前記訂正されたデータに対応するアドレスを第２の記憶部に記憶することと、
前記メモリ本体に対する読み出し／書き込みが実行されていないタイミングにおいて、前記第１の記憶部に記憶されているデータと前記第２の記憶部に記憶されているアドレスに基づいて、前記メモリ本体に対して再書き込みを行うことと
を具備する半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、読み出されたデータのエラー訂正を行う半導体記憶装置およびその制御方法に関する。
【背景技術】
【０００２】
半導体記憶装置では、稀に、セルの反転不良などのエラーが発生する。エラーが発生している場合、半導体記憶装置は、メモリマット（メモリアレイ）から読み出されたデータのエラーを訂正し、訂正されたデータをメモリマットに再度書き込む動作を実行する。
【０００３】
データの読み出し時間が長くなってもよい場合には、この再書き込みにより、データの読み出し／書き込みに遅れが発生してもよい。しかしながら、次々にデータの読み出し／書き込みを行う必要がありスループットが重要な場合において、上記の再書き込みが実行されると、この再書き込み中に、メモリコントローラ又はプロセッサ（例えば、Central processing Unit）が待ち状態となり、データの読み出し／書き込みが遅延する場合がある。例えば、リアルタイムアプリケーションにおいては、この待ち状態の発生によってリアルタイム性を確保することが困難になる場合がある。
【０００４】
半導体記憶装置が読み出されたデータに対するエラー訂正機能を備えている場合、上記の再書き込みをしなければ、訂正不可能なほどにエラービットが増加する場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１７６２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施形態は、読み出されたデータにエラーが発生している場合、エラー訂正されたデータの再書き込みによって他の動作が遅延しない半導体記憶装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態によれば、半導体記憶装置は、エラー訂正部、第１の記憶部、第２の記憶部、制御部を含む。エラー訂正部は、メモリ本体から読み出されたデータに対するエラー訂正を行う。第１の記憶部は、エラー訂正部によって訂正されたデータを記憶する。第２の記憶部は、エラー訂正部によって訂正されたデータに対応するアドレスを記憶する。制御部は、メモリ本体に対する読み出し／書き込みが実行されていないタイミングにおいて、第１の記憶部に記憶されているデータと第２の記憶部に記憶されているアドレスに基づいて、メモリ本体に対して再書き込みを行う。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る半導体記憶装置の構成の一例を示すブロック図。
【図２】第１の実施形態に係る半導体記憶装置のエラー訂正部、再書き込みデータ記憶部、再書き込みアドレス記憶部、フラグ記憶部の動作の一例を示すフローチャート。
【図３】第１の実施形態に係る再書き込み制御部による再書き込み動作の一例を示すフローチャート。
【図４】第２の実施形態に係る半導体記憶装置の構成の一例を示すブロック図。
【図５】第２の実施形態に係るアドレス比較部及び選択部の動作の一例を示すフローチャート。
【図６】第３の実施形態に係る半導体記憶装置の構成の一例を示すブロック図。
【図７】第３の実施形態に係る半導体記憶装置の読み出し時における不揮発性記憶部の動作の一例を示すフローチャート。
【図８】第３の実施形態に係る半導体記憶装置の電源投入時における不揮発性記憶部の動作の一例を示すフローチャート。
【図９】第４の実施形態に係る半導体記憶装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略または実質的に同一の機能および構成要素については、同一符号を付し、必要に応じて説明を行う。
【００１０】
（第１の実施形態）
本実施形態においては、読み出し時にエラー訂正されたデータの再書き込みが、例えば書き込み及び読み出しなどの他の動作に影響しないタイミングで実行される半導体記憶装置について説明する。
【００１１】
図１は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
【００１２】
半導体記憶装置１は、例えばＣＰＵ（Central Processing Unit）、メモリコントローラ、ＳｏＣ（System-on-a-chip）などの外部装置２から書き込み対象データと、この書き込み対象データの書き込み先を示す書き込みアドレスとを受け取る。
【００１３】
さらに、半導体記憶装置１は、読み出し対象データに対する読み出しアドレスを受け取り、この読み出しアドレスの示す位置に記憶されている読み出し対象データを外部装置２に返す。
【００１４】
半導体記憶装置１は、アドレスインタフェース３、データインタフェース４、アドレスバッファ５、ページバッファ６、ＥＣＣ（Error Correcting Code）付加部７、例えばメモリセルアレイなどのようなメモリマット８、エラー訂正部（ＥＣＣ：Error checking and Correcting）９、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２、再書き込み制御部１３、制御部（デコーダ）１４を具備する。
【００１５】
半導体記憶装置１は、メモリマット８から読み出されたデータにエラーが発生している場合に、エラー訂正を実行する。半導体記憶装置１は、エラー訂正されたデータを外部装置２に返す。加えて、半導体記憶装置１は、エラー訂正されたデータとそのアドレスを記憶しておく。そして、半導体記憶装置１は、他の動作（例えば書き込み及び読み出しを含みリアルタイム性が求められる動作）に影響を与えないタイミングにおいて、エラー訂正されたデータとそのアドレスとに基づいて、メモリマット８に対する再書き込みを実行する。
【００１６】
半導体記憶装置１の各構成要素について説明する。
【００１７】
アドレスインタフェース３は、外部装置２に接続されており、アドレス線のインタフェースである。アドレスインタフェース３は、例えば、外部装置２から半導体記憶装置１に対する各種のコマンド（書き込みコマンド、読み出しコマンドを含む）を受け取り、コマンドを制御部１４に送る。
【００１８】
アドレスインタフェース３は、書き込み時に、外部装置２から書き込みアドレスを受け取り、書き込みアドレスをアドレスバッファ５に記憶する。また、アドレスインタフェース３は、読み出し時に、外部装置２から読み出しアドレスを受け取り、読み出しアドレスをアドレスバッファ５に記憶する。
【００１９】
データインタフェース４は、外部装置２に接続されており、例えば１６ｂｉｔから６４ｂｉｔ程度の幅でデータの入出力を行う。データインタフェース４は、書き込み時に、外部装置２から受け取った書き込み対象データを、ページバッファ６に記憶する。また、データインタフェース４は、読み出し時に、アドレスバッファ５に記憶されている読み出しアドレスに対応しページバッファ６に記憶されている読み出し対象データ、を外部装置２に送る。
【００２０】
アドレスバッファ５は、メモリマット８に対して一度に読み出しまたは書き込みを行うデーサイズに相当するアドレスを溜める記憶バッファである。
【００２１】
ページバッファ６は、例えば、１０２４ｂｉｔ、２０４８ｂｉｔなどにように、メモリマット８に対して一度に読み出しまたは書き込みを行うサイズになるまで、データを溜める記憶バッファである。
【００２２】
ＥＣＣ付加部７は、書き込み時において、ページバッファ６の書き込み対象データに対して、エラー訂正のためのパリティを付加する。
【００２３】
メモリマット８は、メモリ本体である。メモリマット８としては、例えば、ＭＲＡＭ（Magnetoresistive Random access memory：磁気抵抗メモリ）、ＰＲＡＭ（Phase change Random access memory：相変化メモリ）、ＲｅＲＡＭ（Resistive Random access memory：抵抗変化型メモリ）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリなど半導体記憶部を用いることができる。
【００２４】
書き込み時において、ＥＣＣ付加部７によってパリティが付加された書き込み対象データは、アドレスバッファ５の書き込みアドレスに対応するメモリマット８の位置に、書き込まれる。
【００２５】
読み出し時においては、アドレスバッファ５の読み出しアドレスに対応する位置のデータがメモリマット８から読み出される。
【００２６】
エラー訂正部９は、メモリマット８から読み出されたデータからエラーが検出されない場合に、正常な読み出されたデータをページバッファ１２に記憶する。
【００２７】
エラー訂正部９は、読み出されたデータからエラーが検出された場合に、エラー検出通知を再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２に送る。
【００２８】
さらに、エラー訂正部９は、読み出されたデータからエラーが検出された場合に、このエラーを訂正する。エラー訂正部９は、エラー訂正されたデータを、ページバッファ６に記憶し、さらに再書き込みデータ記憶部１０に送る。
【００２９】
再書き込みデータ記憶部１０は、エラー訂正部９からエラー検出通知を受けた場合に、エラー訂正部９から受けたエラー訂正されたデータを記憶する。本実施形態において、再書き込みデータ記憶部１０に記憶された訂正されたデータ（以下、「再書き込みデータ」という）は、再書き込み制御部１３による再書き込みの後、消去されるとしてもよい。
【００３０】
再書き込みアドレス記憶部１１は、エラー訂正部９からエラー検出通知を受けた場合に、アドレスバッファ５からエラー訂正されたデータに対応する読み出しアドレスを受け、このエラー訂正されたデータに対応する読み出しアドレスを記憶する。本実施形態において、再書き込みアドレス記憶部１１に記憶されたアドレス（以下、「再書き込みアドレス」という）は、再書き込み制御部１３による再書き込みの後、消去されるとしてもよい。
【００３１】
フラグ記憶部１２は、エラー訂正部９からエラー検出通知を受けた場合に、エラー検出を示すエラーフラグ（再書き込みフラグ）を記憶する。フラグ記憶部１２は、例えば、エラーが検出された場合に「１」（エラーフラグ）、エラーが発生していない場合に「０」を記憶する。本実施形態において、フラグ記憶部１１２に記憶されたエラーフラグは、再書き込み制御部１３による再書き込みの後、消去される。このため、フラグ記憶部１２にエラーフラグが記憶されていることは、読み出し時にエラー訂正されたデータに対して再書き込みが未実行であることを示す。
【００３２】
制御部１４は、外部装置２からアドレスインタフェース３経由で受けたコマンドに基づいて、半導体記憶装置１に備えられている各種の構成要素に対する制御を行う。
【００３３】
再書き込み制御部１３は、読み出し時にエラー訂正されたデータについてメモリマット８に再書き込みを行う場合の、信号経路及び再書き込みタイミングの制御を行う。
【００３４】
例えば、再書き込み制御部１３は、半導体記憶装置１からの連続する読み出し／書き込みなどの他の動作に影響を与えないタイミングにおいて、フラグ記憶部１２にエラーフラグが記憶されているか否か判断する。
【００３５】
そして、再書き込み制御部１３は、エラーフラグが記憶されていると判断された場合に、再書き込みデータ記憶部１０の再書き込みデータを、再書き込みアドレス記憶部１１の再書き込みアドレスに対応するメモリマット８の位置に書き込む再書き込みを実行する。
【００３６】
再書き込みの実行後、再書き込み制御部１３は、フラグ記憶部１２のエラーフラグを消去する。なお、再書き込み制御部１３は、再書き込みの実行後、再書き込みデータ及び再書き込みアドレスを消去してもよい。
【００３７】
本実施形態において、再書き込み制御部１３は、メモリマップ８に対して再書き込みされたデータを読み出し、再書き込みの前と後とでデータを比較し、再書き込みが正当に行われたか否か判断してもよい。例えば、再書き込みが正当に行われていない場合、再書き込み制御部１３は、再び再書き込みを実行してもよい。
【００３８】
以下に、再書き込みの実行タイミングについて説明する。
【００３９】
例えば、再書き込み制御部１３による再書き込みは、メモリマット８に対する読み出しおよび書き込みのいずれも実行されていない期間に行われる。再書き込みのタイミングは、任意に設定可能である。再書き込みは、例えば、制御部１４と再書き込み制御部１３とのうちの少なくとも一方によって自発的（自律的）に行われるとしてもよく、設定時間ごとに外部装置２からの命令にしたがって実行されるとしてもよい。
【００４０】
例えば、再書き込み制御部１３は、読み出しおよび書き込みのどちらも行われていない期間におけるクロック数をカウントし、カウント値が予め設定されている閾値より大きくなると、再書き込みを実行する。
【００４１】
また、例えば、再書き込み制御部１３は、タイマーにより読み出しおよび書き込みのどちらも行われていない時間を測定し、測定された時間が閾値より大きくなると、再書き込みを実行する。
【００４２】
再書き込みに用いられる閾値は、例えば、読み出しおよび書き込みのない経過時間と、読み出しおよび書き込みの発生する確率との実測値に基づいて、読み出しおよび書き込みの発生する確率が低くなる経過時間に基づいて求められる。
【００４３】
例えば、外部装置２は、再書き込み制御部１３と同様に、再書き込みが実行されるタイミングを検出し、再書き込み制御部１３で再書き込みが行われる場合に、再書き込みに必要と推測される所定の期間、半導体記憶装置１に対する書き込みおよび読み出しを禁止する。これにより、半導体記憶装置１における再書き込みと、外部装置２からの書き込み及び読み出しとが衝突することを防止することができる。
【００４４】
例えば、再書き込み制御部１３は、半導体記憶装置１に対するアイドルコマンド又はスタンバイコマンドが制御部１４によって受け付けられた場合に、再書き込みを実行するとしてもよい。
【００４５】
例えば、再書き込み制御部１３は、半導体記憶装置１の電源遮断時に、再書き込み動作を実行するとしてもよい。
【００４６】
なお、本実施形態においては、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２として、例えば、レジスタを用いるとしてもよく、ＤＲＡＭ（Dynamic Random Access Memory）、スタックメモリなどの他の記憶装置を用いるとしてもよい。
【００４７】
本実施形態において、再書き込みデータ記憶部１０及び再書き込みアドレス記憶部１１は、一組の再書き込みデータ及び再書き込みアドレスを記憶するとしてもよく、複数の組の再書き込みデータ及び再書き込みアドレスを記憶するとしてもよい。複数の組の再書き込みデータ及び再書き込みアドレスが再書き込みデータ記憶部１０及び再書き込みアドレス記憶部１１に記憶される場合には、再書き込みデータと再書き込みアドレスとが互いに関連付けられているとする。例えば、読み出し時にエラー訂正されたデータとそのアドレスは、それぞれ再書き込みデータ記憶部１０及び再書き込みアドレス記憶部１１に追記される。これにより、再書き込みデータ記憶部１０と再書き込みアドレス記憶部１１とにおける記憶順序に基づいて、互いに関連する再書き込みデータ及び再書き込みアドレスとが認識可能である。なお、例えば、再書き込みデータ記憶部１０と再書き込みアドレス記憶部１１とを単一の記憶部とし、この単一の記憶部における同一のエントリに、読み出し時にエラー訂正されたデータとそのアドレスとを記憶するとしてもよい。
【００４８】
本実施形態においては、再書き込み制御部１３と制御部１４とを別構成としているが、再書き込み制御部１３と制御部１４とは一体構成としてもよく、さらに分割した構成としてもよい。
【００４９】
本実施形態においては、フラグ記憶部１２を削除してもよい。この場合、例えば、再書き込み制御部１３は、再書き込みの終了後、再書き込みデータ記憶部１０のデータと再書き込みアドレス記憶部１１のアドレスとのうちの少なくとも一方を消去する。再書き込み制御部１３は、再書き込みデータ記憶部１０に再書き込みデータが記憶されていることと、再書き込みアドレス記憶部１１に再書き込みアドレスが記憶されていることとのうちの少なくとも一方をチェックすることで、再書き込みを行うか否か判断するとしてもよい。
【００５０】
図２は、本実施形態に係る半導体記憶装置１のエラー訂正部９、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２の動作の一例を示すフローチャートである。
【００５１】
ステップＳ１において、エラー訂正部９は、メモリマット８から読み出されたデータを受ける。
【００５２】
ステップＳ２において、エラー訂正部９は、読み出されたデータに対するエラー検出を行う。
【００５３】
読み出されたデータからエラーが検出されなかった場合には、処理はステップＳ５に移る。
【００５４】
読み出されたデータにエラーが検出された場合、ステップＳ３において、エラー訂正部９は、読み出されたデータのエラーを訂正するとともに、エラー検出通知を、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２に送る。
【００５５】
ステップＳ４において、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２は、それぞれ、エラー訂正されたデータ、エラー訂正されたデータに対応するアドレス、エラーフラグを記憶する。
【００５６】
ステップＳ５において、エラー訂正部９は、エラーの検出されなかった読み出しデータ又はエラー訂正されたデータを、ページバッファ６に記憶する。
【００５７】
図３は、本実施形態に係る再書き込み制御部１３による再書き込み動作の一例を示すフローチャートである。
【００５８】
ステップＴ１において、再書き込み制御部１３は、再書き込みに対する制御を実行するか否か判断する。再書き込みに対する制御を終了する場合には、処理は終了される。
【００５９】
再書き込みに対する制御を実行する場合には、ステップＴ２において、再書き込み制御部１３は、再書き込みの実行タイミングか否か判断する。再書き込みの実行タイミングでなければ処理はステップＴ１に戻る。
【００６０】
再書き込みの実行タイミングの場合、ステップＴ３において、再書き込み制御部１３は、エラーフラグがフラグ記憶部１２に記憶されているか否か判断する。エラーフラグが記憶されていない場合、処理はステップＴ１に戻る。
【００６１】
エラーフラグが記憶されている場合、ステップＴ４において、再書き込み制御部１３は、再書き込みデータ記憶部１０の再書き込みデータを、再書き込みアドレス記憶部１１の再書き込みアドレスの示すメモリマップ８の位置に、再書き込みを行う。
【００６２】
ステップＴ５において、再書き込み制御部１３は、再書き込みデータ記憶部１０に記憶されている再書き込みデータとメモリマップ８に再書き込みされその後読み出されたデータとを比較し、再書き込み後に読み出されたデータが正当か否か判断する。
【００６３】
再書き込み後に読み出されたデータが正当でない場合には、処理はステップＴ４に戻る。
【００６４】
再書き込み後に読み出されたデータが正当な場合、ステップＴ６において、再書き込み制御部１３は、フラグ記憶部１２に記憶されているエラーフラグを消去し、処理はステップＴ１に戻る。
【００６５】
以上説明した本実施形態においては、読み出されたデータにおける訂正可能なエラーが訂正され、エラー訂正されたデータとそのアドレスが一時記憶され、半導体記憶装置１の他の動作に影響することなく、エラー訂正されたデータの再書き込みを実行することができる。
【００６６】
本実施形態においては、半導体記憶装置１に対して高速動作が求められる場合において、読み出しエラー又はリテンションエラーに対して再書き込みを行うことができる。
【００６７】
半導体記憶装置１に対して、書き込み／読み出しが連続に行われている場合であっても、半導体記憶装置１における動作の切れ目は存在する。本実施形態においては、半導体記憶装置１で動作が一定時間行われない場合に、半導体記憶装置１側で自発的に、又は、外部装置２からの再書き込みコマンドに応じて、再書き込みが実行される。
【００６８】
なお、本実施形態においては、例えば、設定された時間、半導体記憶装置１に対するアクセスが発生しなかった場合、再書き込みに必要な時間が経過するまでは、半導体記憶装置１に対するアクセスが禁止され、再書き込みが実行されるとしてもよい。これにより、半導体記憶装置１に対する外部装置２からのアクセスと、再書き込みとが衝突することを防止することができる。なお、この設定された時間は、使用されるアプリケーションのメモリアクセス頻度などに基づいて決定されるとしてもよい。
【００６９】
本実施形態において、再書き込みアドレス記憶部１１に記憶される再書き込みアドレスによってエラービットが特定可能な場合には、再書き込みデータ記憶部１０は、省略することができる。
【００７０】
（第２の実施形態）
本実施形態においては、上記第１の実施形態の変形例であり、読み出し対象アドレスと、再書き込みアドレス記憶部１１の再書き込みアドレスとが同じ場合に、再書き込みデータ記憶部１０の再書き込みデータを読み出し対象データとして返す半導体記憶装置について説明する。
【００７１】
図４は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
【００７２】
半導体記憶装置１５は、上記第１の実施形態に係る半導体記憶装置１の構成要素に加えて、アドレス比較部１６と選択部１７とを具備する。
【００７３】
再書き込みデータ記憶部１０は、読み出し時にエラー訂正されたデータを記憶する。再書き込みアドレス記憶部１１は、読み出し時にエラーが検出されたアドレスを記憶する。フラグ記憶部１２は、エラー訂正され再書き込みデータ記憶部１０に記憶された再書き込みデータについて、再書き込みが行われていないことを示すエラーフラグを記憶する。
【００７４】
アドレス比較部１６は、読み出し時であり、フラグ記憶部１２にエラーフラグが記憶されている場合に、アドレスバッファ５に記憶されている読み出し対象アドレスと、再書き込みアドレス記憶部１１の再書き込みアドレスとを比較する。そして、アドレス比較部１６は、比較結果が一致を示す場合、再書き込みデータ記憶部１０の再書き込みデータを選択する旨の選択命令を、選択部１７に送る。他方、アドレス比較部１６は、比較結果が不一致を示す場合、メモリマット８から読み出されたデータを選択する旨の選択命令を、選択部１７に送る。
【００７５】
選択部１７は、読み出し時に、アドレス比較部１６から選択命令を受ける。選択命令が再書き込みデータの選択を示す場合、読み出し対象アドレスに対応する読み出し対象データとして、再書き込みデータ記憶部１０の再書き込みデータを選択し、エラー訂正部９に送る。他方、選択命令がメモリマット８から読み出されたデータの選択を示す場合、読み出し対象アドレスに対応する読み出し対象データとして、メモリマット８から読み出されたデータを選択し、エラー訂正部９に送る。
【００７６】
エラー訂正部９は、メモリマット８から読み出されたデータを選択部１７から受けた場合、このメモリマット８から読み出されたデータに対して、上記第１の実施形態で説明したエラー検出及び訂正を行う。
【００７７】
なお、エラー訂正部９は、再書き込みデータ記憶部１０から読み出された再書き込みデータを選択部１７から受けた場合、この再書き込みデータをそのままページバッファ６に記憶してもよく、再書き込みデータに対して上記第１の実施形態で説明したエラー検出及び訂正を行うとしてもよい。
【００７８】
図５は、本実施形態に係るアドレス比較部１６及び選択部１７の動作の一例を示すフローチャートである。
【００７９】
ステップＵ１において、アドレス比較部１６は、エラーフラグがフラグ記憶部１２に記憶されているか否か判断する。
【００８０】
エラーフラグがフラグ記憶部１２に記憶されていない場合には、読み出しエラーが発生していないか、又は再書き込みによって訂正済みであるため、処理はステップＵ４に移動する。
【００８１】
エラーフラグがフラグ記憶部１２に記憶されている場合には、いずれかのアドレスについてエラーが発生しているため、アドレス比較部１６は、ステップＵ２において、アドレスバッファ５に記憶されている読み出し対象アドレスと、再書き込みアドレス記憶部１１に記憶されている再書き込みアドレスとが一致するか否か判断する。
【００８２】
アドレスが不一致の場合、処理はステップＵ４に移動する。
【００８３】
アドレスが一致する場合、ステップＵ３において、選択部１７は、メモリマット８からデータを読み出すのではなく、再書き込みデータ記憶部１０に記憶されている再書き込みデータを読み出し、エラー訂正部９に送る。再書き込みデータは、再書き込みデータ記憶部１０に記憶される時点でエラー訂正済みであるため、そのまま使用可能である。これに対して、先の読み出し時にエラーの検出されたデータをメモリマット８から再度読み出すと、エラービットが増加している場合があり、エラー訂正ができない場合がある。このため、選択部１７は、アドレスが一致する場合、メモリマット８から読み出されたデータを訂正することよりも、再書き込みデータ記憶部１０の再書き込みデータを使用することを優先する。その後、処理はステップＵ８に移動する。なお、処理はステップＵ５に移動し、この再書き込みデータに対してエラー訂正部９によってエラーの検出及び訂正を行うとしてもよい。
【００８４】
ステップＵ４において、選択部１７は、アドレスバッファ５に記憶されている読み出し対象アドレスに基づいて、メモリマット８からデータを読み出す。
【００８５】
ステップＵ５において、選択部１７は、メモリマット８から読み出されたデータのエラー検出を行う。
【００８６】
読み出されたデータからエラーが検出されなかった場合には、動作はステップＵ８に移る。
【００８７】
読み出されたデータにエラーが検出された場合、ステップＵ６において、エラー訂正部９は、読み出されたデータのエラーを訂正するとともに、エラー検出通知を、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２に送る。
【００８８】
ステップＵ７において、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２は、それぞれ、エラー訂正されたデータ、当該エラー訂正されたデータに対応するアドレス、エラーフラグを記憶する。
【００８９】
ステップＵ８において、エラー訂正部９は、再書き込みデータ記憶部１０からの再書き込みデータ、メモリマット８から読み出されエラー訂正部９によってエラーの検出されなかったデータ、又は、メモリマット８から読み出されエラー訂正部９によってエラー訂正されたデータを、ページバッファ６に記憶する。
【００９０】
なお、この図５においては、ステップＵ１，Ｕ２の後にステップＵ４を実行しているが、ステップＵ１，Ｕ２の前にステップＵ４を実行するとしてもよい。
【００９１】
以上説明した本実施形態においては、アドレスバッファ５の読み出し対象アドレスと、再書き込みアドレス記憶部１１の再書き込みアドレスとが比較され、一致した場合に、再書き込みデータ記憶部１０の再書き込みデータが読み出し対象データとして送出される。本実施形態においては、エラーが検出された場合に、メモリマット８から読み出されたデータが訂正して使用されるのではなく、再書き込みデータ記憶部１０に記憶されている訂正されたデータが優先して使用される。これにより、メモリマット８に記憶されているデータのエラービットが増加し、訂正できなくなり、誤ったデータが読み出されることを防止することができる。
【００９２】
（第３の実施形態）
本実施形態は、上記第１及び第２の実施形態の変形例である。本実施形態においては、上記第１の実施形態の変形例を代表して説明するが、上記第２の実施形態の変形例も同様である。
【００９３】
本実施形態においては、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２に記憶されている再書き込みデータ、再書き込みアドレス、エラーフラグを、不揮発性記憶装置に記憶し、再書き込み前での電源遮断を許容する半導体記憶装置について説明する。
【００９４】
図６は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
【００９５】
半導体記憶装置１８は、上記の第１の実施形態の半導体記憶装置１の構成要素に加えて、不揮発性記憶部１９〜２１を具備する。
【００９６】
不揮発性記憶部１９〜２１は、それぞれ、例えば半導体記憶装置１の電源遮断前に、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２の記憶内容を記憶する。
【００９７】
再書き込みが実行されることなく半導体記憶装置１８の電源が遮断され、その後電源が再投入されると、不揮発性記憶部１９〜２１の記憶内容は、それぞれ、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２にコピーされ、半導体記憶装置１８は復帰する。そして、半導体記憶装置１８の再書き込み制御部１３は、電源投入後、フラグ記憶部１２にエラーフラグが記憶されている場合に、再書き込みのための制御を実行する。
【００９８】
再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２の記憶内容を、不揮発性記憶部１９〜２１に記憶する動作、および不揮発性記憶部１９〜２１の記憶内容を、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２に記憶する動作は、再書き込み制御部１３と制御部１４とのうちの少なくとも一方によって行われるとしてもよい。
【００９９】
図７は、本実施形態に係る半導体記憶装置１８の読み出し時における不揮発性記憶部１９〜２１の動作の一例を示すフローチャートである。
【０１００】
ステップＳ１〜Ｓ５は、上記の図２で説明されている。メモリマット８から読み出されたデータに対してエラーが検出された場合、エラー訂正されたデータが出力されるとともに、再書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２にそれぞれエラー訂正されたデータ、アドレス、エラーフラグが記憶される。その後、ステップＶにおいて、書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２の内容が専用の不揮発性記憶部１９〜２１に記憶される。
【０１０１】
図８は、本実施形態に係る半導体記憶装置１５の電源投入時における不揮発性記憶部１９〜２１の動作の一例を示すフローチャートである。
【０１０２】
ステップＷ１において、半導体記憶装置１５は、エラーフラグ用の不揮発性記憶部２１にエラーフラグが記憶されているか否か判断する。
【０１０３】
エラーフラグが記憶されていない場合、不揮発性記憶部１９〜２１に対する電源投入時の動作は終了する。
【０１０４】
エラーフラグが記憶されている場合、ステップＷ２において、書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２は、それぞれ不揮発性記憶部１９〜２１の記憶内容を記憶する。
【０１０５】
なお、不揮発性記憶部１９〜２１から書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２にデータがコピーされた後、不揮発性記憶部１９〜２１の記憶内容は消去されてもよい。
【０１０６】
この図８の動作の後、上記図３で説明した動作が実行される。
【０１０７】
以上説明した本実施形態においては、再書き込みが実行されていない状態で半導体記憶装置１８の電源が遮断され、その後電源が再投入された場合に、半導体記憶装置１８を電源遮断前の状態に復元することができる。
【０１０８】
さらに、本実施形態においては、半導体記憶装置１８を電源遮断前の状態に復元後、再書き込みを実行することができる。
【０１０９】
なお、本実施形態においては、不揮発性記憶部１９〜２１を備えることなく、書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２自体が不揮発性の記憶装置であるとしてもよい。
【０１１０】
本実施形態においては、書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２に対して、それぞれ専用の不揮発性記憶部１９〜２１を備えている。しかしながら、書き込みデータ記憶部１０、再書き込みアドレス記憶部１１、フラグ記憶部１２は自由に組み合わせてもよく、また不揮発性記憶部１９〜２１についても自由に組み合わせてもよい。
【０１１１】
（第４の実施形態）
本実施形態は、上記第１から第３の実施形態までの変形例である。以下において、第１の実施形態の変形例について説明するが、第２及び第３の実施形態の変形例についても同様である。
【０１１２】
本実施の形態においては、読み出し時においてエラー訂正されたデータに代えてエラーの検出されたビットの位置を管理する半導体記憶装置について説明する。
【０１１３】
図９は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
【０１１４】
本実施形態に係る半導体記憶装置２２は、上記第１の実施形態に係る半導体記憶装置１のエラー訂正部９、再書き込みデータ記憶部１０、再書き込み制御部１３に代えて、エラー訂正部２３、エラー位置記憶部２４、再書き込み制御部２５を備える。また、半導体記憶装置２２では、上記第１の実施形態に係る半導体記憶装置１５の再書き込みアドレス記憶部１１が省略されている。
【０１１５】
エラー訂正部２３は、読み出し時に、メモリマット８から読み出されたデータに対するエラーの検出と訂正とを行う。エラー訂正部２３は、エラーの検出されていないデータ又はエラー訂正されたデータを、ページバッファ６に記憶する。
【０１１６】
エラー訂正部２３は、エラーが検出された場合には、エラーフラグをフラグ記憶部１２に記憶する。さらに、エラー訂正部２３は、エラーが検出された場合には、このエラーの発生しているメモリマット８のビット位置（例えば、アドレスとそのアドレス内でのエラービットの位置）をエラー位置記憶部２４に記憶する。
【０１１７】
再書き込み制御部２５は、半導体記憶装置１の動作に影響しない実行タイミングで、フラグ記憶部１２にエラーフラグが記憶されているか否か判断する。
【０１１８】
そして、再書き込み制御部２５は、エラーフラグが記憶されている場合、エラー位置記憶部２４に記憶されているビット位置に対応するメモリマット８のデータを反転することにより、訂正されたデータの再書き込みを行う。
【０１１９】
その後、再書き込み制御部２５は、フラグ記憶部１２のエラーフラグを消去する。なお、再書き込み制御部２５は、再書き込みの実行後、エラー位置記憶部２４の記憶内容を消去してもよい。
【０１２０】
本実施形態においては、エラー訂正されたデータに代えて、エラー位置が記憶される。この場合、読み出し時においてエラーが検出された場合に必要とされる記憶容量を削減することができる。また、本実施形態においては、回路構成を簡略化できる。
【０１２１】
本実施形態においては、エラービット位置と、エラーの検出されたデータに対応するアドレスとを関連付けて、エラー位置記憶部２４に記憶するとしてもよい。これにより、上記の第２の実施形態と同様に、アドレス比較部１６を用いることができる。
【０１２２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２３】
１、１５，１８，２２…半導体記憶装置、２…外部装置、３…アドレスインタフェース、４…データインタフェース、５…アドレスバッファ、６…ページバッファ、７…ＥＣＣ付加部、８…メモリマット、９，２３…エラー訂正部、１０…再書き込みデータ記憶部、１１…再書き込みアドレス記憶部、１２…フラグ記憶部、１３，２５…再書き込み制御部、１４…制御部、１６…アドレス比較部、１７…選択部、１９〜２１…不揮発性記憶部、２４…エラー位置記憶部。
【図１】
2012198954.tif 000003
【図２】
2012198954.tif 000004
【図３】
2012198954.tif 000005
【図４】
2012198954.tif 000006
【図５】
2012198954.tif 000007
【図６】
2012198954.tif 000008
【図７】
2012198954.tif 000009
【図８】
2012198954.tif 000010
【図９】
2012198954.tif 000011