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