(57)【要約】【課題】データの消去動作中に電源供給が遮断された場合でも、メモリブロックのデータの消去が正常に行われたか否かの判定を正しく行うことができる半導体記憶装置を提供する。【解決手段】メモリブロックと異なる消去単位であり、記憶されたデータを消去するメモリブロックのアドレス値を表すアドレス情報と、該メモリブロックの消去動作の状態を表すフラグ情報とを関連付けて記憶する情報格納手段と、メモリブロックに対して消去動作を行う前に、消去動作を行うメモリブロックのアドレス値をアドレス情報に設定するとともに、該アドレス値に関連付けられたフラグ情報に第１の値を設定し、メモリブロックに対する消去動作が完了した後に、該メモリブロックのアドレス値に関連付けられたフラグ情報に第１の値と異なる第２の値を設定する設定手段と、フラグ情報に基づいて、メモリブロックの消去動作が正常に完了したか否かを判定する判定手段と、を備える。【選択図】図１
2011129192.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルの領域で構成され、データを記憶するメモリブロックのそれぞれに、前記メモリブロックの消去回数を含む管理情報を格納し、前記管理情報を制御することによって、前記メモリブロックの消去回数を均等化するウェアレベリング処理を行うウェアレベリング手段と前記メモリブロックとを同一チップ内に備えた半導体記憶装置において、
複数のメモリセルの領域で構成され、前記メモリブロックと異なる消去単位であり、記憶されたデータを消去する前記メモリブロックのアドレス値を表すアドレス情報と、該メモリブロックの消去動作の状態を表すフラグ情報とを関連付けて記憶する情報格納手段と、
前記メモリブロックに対して消去動作を行う前に、消去動作を行う前記メモリブロックのアドレス値を前記アドレス情報に設定するとともに、該アドレス値に関連付けられた前記フラグ情報に第１の値を設定し、前記メモリブロックに対する消去動作が完了した後に、該メモリブロックのアドレス値に関連付けられた前記フラグ情報に前記第１の値と異なる第２の値を設定する設定手段と、
前記フラグ情報に基づいて、前記メモリブロックの消去動作が正常に完了したか否かを判定する判定手段と、
を備えることを特徴とする半導体記憶装置。
【請求項２】
前記設定手段は、
前記情報格納手段に対する書き込み動作のみによって、消去動作を行う前記メモリブロックの前記アドレス情報を設定し、前記メモリブロックの消去動作に応じた前記フラグ情報を設定する、
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記判定手段は、
前記メモリブロックに対して消去動作を行う前に、前記フラグ情報に基づいて、前回までの前記メモリブロックの消去動作が正常に完了したか否かを判定する、
ことを特徴とする請求項１または請求項２に記載の半導体記憶装置。
【請求項４】
前記判定手段は、
該半導体記憶装置に電源が投入された後に、前記フラグ情報に基づいて、前回、該半導体記憶装置に電源が供給されていたときの前記メモリブロックの消去動作が正常に完了したか否かを判定する、
ことを特徴とする請求項１から請求項３のいずれか１の項に記載の半導体記憶装置。
【請求項５】
前記情報格納手段に設定する前記フラグ情報は２ビットの情報であり、
前記メモリブロックに対して消去動作を行う前に、予め定められた一方のビットに、予め定められた値を書き込み、前記メモリブロックに対する消去動作が完了した後に、予め定められた他方のビットに、予め定められた値を書き込むことによって、前記メモリブロックが消去動作中であるか否かを表す、
ことを特徴とする請求項２から請求項４のいずれか１の項に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの消去、書き込みを行う不揮発性の半導体記憶装置に関する。
【背景技術】
【０００２】
従来、電気的なバックアップが不要な不揮発性の半導体記憶装置として、フラッシュメモリが知られている。このフラッシュメモリのデータの消去は、予め定められた数のメモリセルで構成された消去ブロックの単位で行われる。フラッシュメモリのデータを書き換える際には、まず、データの書き換えを行う消去ブロックのデータを消去する。その後、新たなデータを書き込むという手順で行われる。
【０００３】
また、フラッシュメモリ内の各メモリセルは、データの書き込みと消去の繰り返しに伴って、記憶されているデータを保持する能力が少しずつ劣化していく特性を有する。このため、メモリセルの消去回数の上限が規定されており、この消去回数が上限を超えてしまったメモリセルは、データの書き込みや消去が正常に行われる保証が失われてしまう。例えば、同じ消去ブロックに対してデータの書き換え、すなわち、データの消去と書き込みとの動作が繰り返された場合、この書き換えによって消去ブロック内のメモリセルの消去が繰り返されることとなる。このメモリセルの消去回数が上限を超えると、その他の消去ブロックやメモリセルの消去回数が少ない場合でも、フラッシュメモリ自体の保証が失われてしまうということになる。
【０００４】
そこで、このような問題を解決するため、フラッシュメモリ内のメモリセルの消去回数を消去ブロックの単位で均等化するウェアレベリングという技術がある。このウェアレベリングでは、フラッシュメモリ内の消去ブロック毎に消去回数をカウントし、データの書き込み・消去を行う際に、消去回数が少ない消去ブロックにデータの書き込み・消去が行われるように、消去ブロックのアドレスが置換される。例えば、指定した特定のアドレスの消去ブロックに対してデータの書き換え処理を繰り返す場合、フラッシュメモリ内で実際にデータの書き込みが行われる消去ブロックは、指定された特定のアドレスとは異なるアドレスの消去ブロックとなる。そして、実際にデータの書き込みが行われたアドレスの消去ブロックが、あたかも当初指定された特定のアドレスの消去ブロックであるかのように動作するために、消去ブロックのアドレスの置換が行われる。このようにして、フラッシュメモリ内の各消去ブロックの消去回数をなるべく均等に分散することによって、フラッシュメモリで正常に行われる消去の回数が、特定の消去ブロックの消去回数によって制約されてしまうことが回避され、メモリセルが保証している消去回数よりも多くなる。
【０００５】
また、フラッシュメモリ内の消去ブロックのデータの書き換え処理の際には、上述のように、まず、消去ブロックに記憶しているデータの消去が行われ、その後、消去した消去ブロックに対してデータの書き込みが行われる。従って、消去ブロックに対するデータの書き換え処理には、ある程度の時間（例えば、数十ｍｓ）を必要とする。この書き換え処理の動作中、特に消去ブロックを消去しているときにフラッシュメモリへの電源供給が遮断された場合には、フラッシュメモリに記憶しているデータが不正なデータとなってしまうことが考えられる。このような問題を解決するため、特許文献１に示すような技術が考案されている。
【０００６】
図５は、特許文献１で開示された従来の半導体記憶装置の概略構成を示したブロック図である。図５に示すように、半導体記憶装置は、フラッシュメモリ１００とプロセッサ２００を備えている。また、フラッシュメモリ１００は、複数のメモリブロック１１０から構成され、各メモリブロック１１０は、それぞれ、データ書き込みエリア１１１と管理ステータス書き込みエリア１１２とに区別されている。データ書き込みエリア１１１は、フラッシュメモリ１００に格納するデータを記憶する。管理ステータス書き込みエリア１１２は、アドレスの置換情報、メモリブロック１１０の消去回数、メモリブロック１１０の動作状態（ステータス）などの管理情報を表すデータを記憶する。そして、プロセッサ２００が、各メモリブロック１１０内の管理ステータス書き込みエリア１１２に記憶されているアドレスの置換情報とメモリブロック１１０の消去回数とに基づいてウェアレベリングを行っている。また、特許文献１では、プロセッサ２００が、各メモリブロック１１０内の管理ステータス書き込みエリア１１２に記憶されているメモリブロック１１０の消去回数を確認し、この消去回数が不正な値であったときには、メモリブロック１１０の消去が正常に行われなかったと判定して、管理ステータス書き込みエリア１１２に記憶しているメモリブロック１１０の消去回数を回復する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−３１２８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１で開示された従来の半導体記憶装置では、管理ステータス書き込みエリア１１２に記憶している管理情報の書き換え処理も、データの書き換え処理と同様に行われる。これは、管理情報を表すデータの書き換え処理の動作中にフラッシュメモリへの電源供給が遮断された場合には、管理ステータス書き込みエリア１１２に記憶している、管理情報を表すデータが不正なデータとなってしまう可能性があることを示している。従って、特許文献１の半導体記憶装置のように、各メモリブロック１１０内の管理ステータス書き込みエリア１１２に記憶されているメモリブロック１１０の消去回数に基づいて、メモリブロック１１０の消去が正常に行われたか否かを判定している場合、書き換え処理の動作中における電源供給の遮断によって、メモリブロック１１０の消去回数の情報自体が不正となり、メモリブロック１１０の消去が正常に行われたか否かの判定を正しく行うことができないという問題がある。
【０００９】
特に、フラッシュメモリ１００とプロセッサ２００とで実現する機能を同じ半導体記憶装置内に備えたオンチップの構成によってウェアレベリングを行う場合には、半導体記憶装置に供給されている電源の遮断を検出することが困難であるため、メモリブロック１１０の消去が正常に行われたか否かを、自メモリブロック１１０内に記憶された情報から正確に判定することができない。
【００１０】
本発明は、上記の課題認識に基づいてなされたものであり、オンチップでウェアレベリングを行う機能を備えた半導体記憶装置において、データの消去動作中に電源供給が遮断された場合でも、メモリブロックのデータの消去が正常に行われたか否かの判定を正しく行うことができる半導体記憶装置を提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明の半導体記憶装置は、複数のメモリセルの領域で構成され、データを記憶するメモリブロックのそれぞれに、前記メモリブロックの消去回数を含む管理情報を格納し、前記管理情報を制御することによって、前記メモリブロックの消去回数を均等化するウェアレベリング処理を行うウェアレベリング手段と前記メモリブロックとを同一チップ内に備えた半導体記憶装置において、複数のメモリセルの領域で構成され、前記メモリブロックと異なる消去単位であり、記憶されたデータを消去する前記メモリブロックのアドレス値を表すアドレス情報と、該メモリブロックの消去動作の状態を表すフラグ情報とを関連付けて記憶する情報格納手段と、前記メモリブロックに対して消去動作を行う前に、消去動作を行う前記メモリブロックのアドレス値を前記アドレス情報に設定するとともに、該アドレス値に関連付けられた前記フラグ情報に第１の値を設定し、前記メモリブロックに対する消去動作が完了した後に、該メモリブロックのアドレス値に関連付けられた前記フラグ情報に前記第１の値と異なる第２の値を設定する設定手段と、前記フラグ情報に基づいて、前記メモリブロックの消去動作が正常に完了したか否かを判定する判定手段と、を備えることを特徴とする。
【００１２】
本発明の半導体記憶装置では、メモリブロックに対して消去動作を行う前に、フラグ情報に第１の値が設定され、メモリブロックに対する消去動作が完了した後に、フラグ情報に第２の値が設定される。メモリブロックのデータの消去動作中に電源供給が遮断された場合、消去動作が行われたメモリブロックに対応するフラグ情報には、第２の値ではなく第１の値が設定されているため、フラグ情報に基づいて、メモリブロックの消去動作が正常に完了したか否かを判定することができる。
【発明の効果】
【００１３】
本発明によれば、オンチップでウェアレベリングを行う機能を備えた半導体記憶装置において、データの消去動作中に電源供給が遮断された場合でも、メモリブロックのデータの消去が正常に行われたか否かの判定を正しく行うことができるという効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態による半導体記憶装置の概略構成を示したブロック図である。
【図２】本実施形態の半導体記憶装置における消去フラグ格納ブロックのデータ格納形式の一例を示した図である。
【図３】本実施形態の半導体記憶装置におけるデータ消去の処理手順を示したフローチャートである。
【図４】本実施形態の半導体記憶装置のデータ消去の処理における消去フラグ格納ブロックのデータ遷移の一例を示した図である。
【図５】従来の半導体記憶装置の概略構成を示したブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態による半導体記憶装置の概略構成を示したブロック図である。図１において、半導体記憶装置１は、複数の消去ブロック１０と、消去フラグ格納ブロック２０と、消去フラグ判定回路３０と、書き込み・消去制御回路４０と、書き込み・消去用電圧生成回路５０とから構成される。
【００１６】
消去ブロック１０は、それぞれ、予め定められた数の複数のメモリセルで構成されたメモリブロックである。また、消去ブロック１０は、それぞれ、データ格納領域１１と、管理領域１２とに区別されている。データ格納領域１１は、半導体記憶装置１の利用者などによって半導体記憶装置１に格納されるデータを記憶する。管理領域１２は、半導体記憶装置１内のメモリセルの消去回数を消去ブロック１０の単位で均等化するウェアレベリング制御を行うために必要なアドレスの置換情報や、消去ブロック１０の消去回数など、消去ブロック１０の管理情報を表すデータを記憶する。なお、半導体記憶装置１においては、利用者からの指示に応じたデータの消去は、この消去ブロック１０の単位で行われる。すなわち、消去ブロック１０内のデータ格納領域１１および管理領域１２のデータは、同時に消去される。
【００１７】
消去フラグ格納ブロック２０は、消去ブロック１０の消去動作の情報を格納するメモリブロックである。消去フラグ格納ブロック２０には、消去ブロック１０の消去動作の状態を表すフラグと、消去動作を行っている消去ブロック１０のアドレスとが格納される。なお、消去フラグ格納ブロック２０で行われるデータの消去の単位は、消去ブロック１０で行われるデータの消去の単位とは異なり、消去フラグ格納ブロック２０のみでデータの消去が行われる。また、消去フラグ格納ブロック２０で行われるデータの書き込みは、ビット毎に行われる。
【００１８】
ここで、消去フラグ格納ブロック２０のデータ格納形式について説明する。図２は、本実施形態の半導体記憶装置１における消去フラグ格納ブロック２０のデータ格納形式の一例を示した図である。図２に示すように、消去フラグ格納ブロック２０は、半導体記憶装置１内の消去ブロック１０の消去動作の情報を格納する複数の消去動作データ領域２１を備えている。消去動作データ領域２１の状態としては、図２に示すように、使用済みの状態と、消去動作中の状態と、未使用の状態とが存在する。そして、半導体記憶装置１の利用者によって消去ブロック１０のデータの消去が指示されると、指定された消去ブロック１０のデータが、未使用の状態の消去動作データ領域２１に順次格納される。
【００１９】
各消去動作データ領域２１には、消去ブロック１０のアドレス（以下、「消去ブロックアドレス」という）と、消去ブロック１０の消去動作の状態を示すフラグ（以下、「消去フラグ」という）とが格納されている。
【００２０】
消去ブロックアドレスは、半導体記憶装置１内の全ての消去ブロック１０のアドレスを表現することができるビット数が予め割り当てられている。消去ブロックアドレスの値は、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０のアドレスの値を表す。消去ブロックアドレスの値は、消去動作データ領域２１に消去ブロック１０のアドレス値が格納されていない、すなわち、消去動作データ領域２１が未使用（空き領域またはデータが消去されている）の状態である場合は“１１１１１１１”であり、消去動作データ領域２１が消去動作中または使用済みの状態である場合は、特定の消去ブロック１０のアドレス値である。
【００２１】
また、消去フラグは、消去ブロック１０が消去動作中であるか否かを表す２ビットが予め割り当てられている。消去フラグの値は、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０の消去動作の状態を表す。消去フラグの値は、消去動作データ領域２１に消去フラグが格納されていない、すなわち、消去動作データ領域２１が未使用（空き領域またはデータが消去されている）の状態である場合は“１１”となっている。また、消去フラグの値は、消去動作データ領域２１が消去動作中または使用済みの状態であり、消去ブロック１０が消去動作中である場合は“０１”、消去ブロック１０のデータの消去が完了した場合は“００”である。
【００２２】
すなわち、消去フラグ格納ブロック２０内の消去動作データ領域２１において、消去フラグの値が“００”となっている消去動作データ領域２１の消去ブロックアドレスの値が、消去動作が正常に行われた消去ブロック１０を表す。また、この消去動作データ領域２１は、使用済みの状態の消去動作データ領域２１でもある。
【００２３】
また、例えば、消去ブロック１０の消去動作中に、半導体記憶装置１の電源供給が遮断された場合には、消去フラグの値が“０１”の状態のままとなる。そして、消去フラグの値が“０１”である消去動作データ領域２１の消去ブロックアドレスの値が、消去動作中に電源供給が遮断された消去ブロック１０を表す。
【００２４】
なお、消去フラグの値は、未使用の状態から消去動作中の状態へ、そして使用済み（消去完了）の状態への遷移に応じて、“１１”→“０１”→“００”となるが、消去動作データ領域２１に対しては、データの書き込みのみで消去ブロック１０の消去動作の状態を表すことができる。具体的には、消去フラグの値を未使用の状態から消去動作中の状態に変更する場合には、消去フラグの一方のビット（本実施形態においては、上位側の１ビット）に“０”のデータを書き込む。また、消去フラグの値を消去動作中の状態から使用済み（消去完了）の状態に変更する場合には、消去フラグの他方のビット（本実施形態においては、下位側の１ビット）に“０”のデータを書き込む。このようにすることによって、消去フラグのいずれかのビットに“０”のデータを書き込むのみで消去ブロック１０の消去動作の状態を表すことができる。
【００２５】
なお、上述のように、消去動作データ領域２１は、空き領域の状態またはデータが消去されている状態である場合は、消去ブロックアドレスおよび消去フラグの値が“１”である。従って、消去動作データ領域２１にデータの書き込みを行う場合、消去ブロックアドレスおよび消去フラグの値を“０”とするビットのみに“０”のデータを書き込むことによって、消去動作データ領域２１にデータを書き込みことができる。なお、消去ブロックアドレスに関しては、消去ブロックアドレスの値を“１”とするビットに“１”のデータを書き込むこともできる。この場合、書き込まれた“１”のデータは、空き領域の状態またはデータが消去されている状態と、何も変わらない。
【００２６】
消去フラグ判定回路３０は、消去フラグ格納ブロック２０内の各消去動作データ領域２１に格納された消去フラグの値に基づいて、消去動作中である消去ブロック１０があるか否かを判定する。そして、消去動作中である消去ブロック１０がある場合には、消去フラグ格納ブロック２０に格納された消去ブロックアドレスの値を、消去動作中である消去ブロック１０の判定結果として、書き込み・消去制御回路４０に出力する。
【００２７】
また、消去フラグ判定回路３０は、消去フラグ格納ブロック２０内の消去動作データ領域２１の使用状態、具体的には、消去フラグ格納ブロック２０の空き領域の状態を監視し、監視した消去フラグ格納ブロック２０の空き領域の情報を書き込み・消去制御回路４０に出力する。例えば、消去フラグ格納ブロック２０内の全ての消去動作データ領域２１が使用済みの状態である場合には、そのことを表す情報を書き込み・消去制御回路４０に出力する。
【００２８】
書き込み・消去制御回路４０は、半導体記憶装置１の利用者によるデータの消去や書き込みの指示に応じて、消去ブロック１０のデータの消去や書き込みの動作制御を行う。また、このとき、書き込み・消去制御回路４０は、半導体記憶装置１内のメモリセルの消去回数を消去ブロック１０の単位で均等化するためのウェアレベリング制御も行う。また、書き込み・消去制御回路４０は、消去ブロック１０に格納しているデータの消去動作を行う際に、消去ブロック１０の消去動作に応じて、消去フラグ格納ブロック２０内の未使用の状態の消去動作データ領域２１に消去ブロックアドレスを登録するための動作制御や、アドレス登録済みの消去動作データ領域２１の消去フラグの値を更新するための動作制御を行う。
【００２９】
また、書き込み・消去制御回路４０は、消去フラグ判定回路３０から入力された判定結果に応じて、消去動作中の消去ブロック１０を回復させるための動作制御を行う。この消去ブロック１０の回復は、例えば、消去動作中である消去ブロック１０の管理領域１２に格納された消去ブロック１０の消去回数を、別途記憶している半導体記憶装置１内の消去ブロック１０の消去回数の現状での最大値とするなどの制御によって行われる。なお、回復制御を行った後には、消去フラグ格納ブロック２０に格納された消去フラグの値を更新する（“００”とする）ための動作制御も行う。
【００３０】
また、書き込み・消去制御回路４０は、消去フラグ格納ブロック２０内の消去動作データ領域２１が全て使用済みであることを表す情報が消去フラグ判定回路３０から入力された場合、消去フラグ格納ブロック２０のデータを消去するための動作制御を行う。
【００３１】
そして、書き込み・消去制御回路４０は、これらの動作制御に応じた指示情報を書き込み・消去用電圧生成回路５０に出力する。
【００３２】
書き込み・消去用電圧生成回路５０は、書き込み・消去制御回路４０から入力された指示情報に応じて、消去ブロック１０内のデータ格納領域１１および管理領域１２のメモリセル、または消去フラグ格納ブロック２０の該当する消去動作データ領域２１のメモリセルへのデータの書き込みやメモリセルに記憶しているデータの消去を行うための電圧を発生し、実際に消去ブロック１０のメモリセルまたは消去フラグ格納ブロック２０のメモリセルへのデータの書き込みまたはデータの消去を行う。
【００３３】
次に、本実施形態の半導体記憶装置におけるデータ消去の処理手順について説明する。図３は、本実施形態の半導体記憶装置１におけるデータ消去の処理手順を示したフローチャートである。なお、本実施形態の半導体記憶装置１における消去ブロック１０内のデータ格納領域１１に対するデータの書き込み動作は、従来の半導体記憶装置と同様であるため、説明を省略する。
【００３４】
半導体記憶装置１の利用者によって消去ブロック１０のデータ消去、すなわち、消去ブロック１０内のデータ格納領域１１のデータの消去が指示されると、まず、ステップＳ１００において、消去フラグ判定回路３０は、消去フラグ格納ブロック２０内の各消去動作データ領域２１に記憶された消去フラグを読み出す。そして、ステップＳ２００において、消去フラグ判定回路３０は、読み出した消去フラグの値に基づいて、消去動作中である消去ブロック１０があるか否かを確認する。これは、半導体記憶装置１の前回までの処理において、例えば、消去ブロック１０の消去動作中に、半導体記憶装置１の電源供給が遮断され、管理領域１２に格納された管理情報が不正な値になっている消去ブロック１０があるか否か、すなわち、消去動作中の状態（“０１”）のままとなっている消去ブロック１０があるか否かを確認するために行われる。消去動作中である消去ブロック１０がない、すなわち、消去フラグの値が“０１”である消去動作データ領域２１がない場合、消去フラグ判定回路３０は、全ての消去ブロック１０の消去動作が正常に完了していると判定し、ステップＳ３００に進む。また、消去動作中である消去ブロック１０がある、すなわち、消去フラグの値が“０１”である消去動作データ領域２１がある場合、消去フラグ判定回路３０は、消去動作中である消去ブロック１０の管理領域１２に格納された管理情報が不正な値になっていると判定し、消去動作中の状態を表している消去動作データ領域２１に格納されている消去ブロックアドレスの値を書き込み・消去制御回路４０に出力して、ステップＳ２１０に進む。
【００３５】
ステップＳ２００において、消去動作中である消去ブロック１０がある場合、ステップＳ２１０において、書き込み・消去制御回路４０は、入力された消去ブロックアドレスの消去ブロック１０を回復させるための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、指示された消去ブロック１０内のデータ格納領域１１および管理領域１２のメモリセルのデータの消去および管理領域１２のメモリセルへのデータの書き込みを行う。これにより、消去動作中の消去ブロック１０のデータ格納領域１１のデータが正常に消去され、管理領域１２が正常な状態に回復される。
【００３６】
続いて、ステップＳ２２０において、書き込み・消去制御回路４０は、回復処理が完了した消去ブロック１０の消去ブロックアドレスを格納した消去動作データ領域２１の消去フラグの値を更新するための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、指示された消去動作データ領域２１の消去フラグの値を更新する。本実施形態においては、消去フラグの下位側の１ビットに“０”のデータを書き込むことにより、消去動作中を表していた消去動作データ領域２１の消去フラグが消去完了（使用済み）の状態（“００”）に更新される。そして、ステップＳ２００に戻る。
【００３７】
また、ステップＳ２００において、消去動作中である消去ブロック１０がない場合、ステップＳ３００において、書き込み・消去制御回路４０は、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０の消去ブロックアドレスを、消去動作データ領域２１に登録し、この登録した消去動作データ領域２１の消去フラグを消去動作中の状態にするための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、指示された消去動作データ領域２１への消去ブロックアドレスの登録や、消去フラグの値の更新を行う。これにより、消去フラグ格納ブロック２０内に、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０の消去動作の情報を格納する消去動作データ領域２１が作成される。そして、本実施形態においては、作成された消去動作データ領域２１の消去フラグの上位側の１ビットに“０”のデータを書き込むことにより、消去動作データ領域２１の消去フラグが、消去動作中の状態（“０１”）となる。
【００３８】
続いて、ステップＳ４００において、書き込み・消去制御回路４０は、データを消去した消去ブロック１０の管理領域１２に記憶された管理情報を読み出す。そして、ステップＳ５００において、書き込み・消去制御回路４０は、読み出した管理情報に基づいて、ウェアレベリング制御に伴うアドレスの置換が必要であるか否かを判定する。ステップＳ５００におけるアドレスの置換が必要であるか否かの判定は、例えば、今回の消去動作に伴って、データを消去した消去ブロック１０の消去回数を更新（読み出した消去回数の値に１を加算）したときに、更新した消去回数が、別途記憶している半導体記憶装置１内の消去ブロック１０の消去回数の前回までの最大値を越えるか否を判定することによって行われる。そして、更新した消去回数が前回までの最大値を越えない場合は、アドレスの置換が必要でないと判定し、更新した消去回数が前回までの最大値を越える場合は、アドレスの置換が必要であると判定する。
【００３９】
ステップＳ５００において、アドレスの置換が必要である場合は、ステップＳ６１０に進んで、ウェアレベリング制御において置換する消去ブロック１０のアドレスの置換情報（例えば、論理ブロックアドレス）を生成し、ステップＳ６００に進む。また、ステップＳ５００において、アドレスの置換が必要でない場合は、現在の消去ブロック１０のアドレスの情報を、アドレスの置換情報（例えば、論理ブロックアドレス）として、ステップＳ６００に進む。なお、ステップＳ５００において、アドレスの置換が必要であるか否かの判定にかかわらず、データを消去した消去ブロック１０の消去回数は、今回の消去動作に伴って更新（消去回数の値に１を加算）される。
【００４０】
続いて、ステップＳ６００において、書き込み・消去制御回路４０は、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０のデータを消去するための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、指示された消去ブロック１０の消去動作を行う。これにより、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０内のデータ格納領域１１に記憶されたデータが消去される。また、同時に、消去ブロック１０内の管理領域１２のデータも消去される。
【００４１】
続いて、ステップＳ７００において、書き込み・消去制御回路４０は、データを消去した消去ブロック１０の管理領域１２に、消去回数の更新データ（例えば、消去回数に１を加算した値）、アドレスの置換情報（例えば、論理ブロックアドレス）など、新たな管理情報の書き込みを行うための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、指示された消去ブロック１０内の管理領域１２に新たな管理情報の書き込み動作を行う。これにより、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０内の管理領域１２のデータが更新される。
【００４２】
続いて、ステップＳ８００において、書き込み・消去制御回路４０は、データの消去が完了した消去ブロック１０の消去ブロックアドレスを格納した消去動作データ領域２１の消去フラグの値を更新するための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、指示された消去動作データ領域２１の消去フラグの値を更新する。本実施形態においては、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０の消去動作の情報を格納している消去動作データ領域２１の消去フラグの下位側の１ビットに“０”のデータを書き込むことにより、消去動作データ領域２１の消去フラグが、消去完了（使用済み）の状態（“００”）に更新される。
【００４３】
続いて、ステップＳ９００において、書き込み・消去制御回路４０は、消去フラグ判定回路３０から消去フラグ格納ブロック２０の空き領域の情報を取得する。そして、ステップＳ１０００において、書き込み・消去制御回路４０は、取得した消去フラグ格納ブロック２０の空き領域の情報に基づいて、消去フラグ格納ブロック２０に空き領域、すなわち、未使用の消去動作データ領域２１があるか否かを確認する。これは、半導体記憶装置１の次の処理において、消去動作データ領域２１を作成するための領域を確保するために行われる。消去フラグ格納ブロック２０に空き領域がない場合、書き込み・消去制御回路４０は、消去フラグ格納ブロック２０のデータの消去が必要であると判断し、ステップＳ１０１０に進む。また、消去フラグ格納ブロック２０に空き領域がある場合、書き込み・消去制御回路４０は、消去フラグ格納ブロック２０のデータの消去が不要であると判断し、処理を完了する。
【００４４】
ステップＳ１０００において、消去フラグ格納ブロック２０に空き領域がない場合、ステップＳ１０１０において、書き込み・消去制御回路４０は、消去フラグ格納ブロック２０のデータの消去を行うための指示情報を書き込み・消去用電圧生成回路５０に出力する。そして、書き込み・消去用電圧生成回路５０は、入力された指示情報に応じて、消去フラグ格納ブロック２０のデータの消去動作を行い、処理を完了する。これにより、消去フラグ格納ブロック２０内の全ての消去動作データ領域２１のデータが消去され、消去ブロックアドレスが“１１１１１１１”となり、消去フラグが“１１”となる。
【００４５】
ここで、本実施形態の半導体記憶装置において消去フラグ格納ブロック２０に格納されるデータの遷移について説明する。図４は、本実施形態の半導体記憶装置１のデータ消去の処理における消去フラグ格納ブロック２０のデータ遷移の一例を示した図である。
【００４６】
まず、図４（ａ）は、半導体記憶装置１における前回までの処理が正常に完了した状態の消去フラグ格納ブロック２０を示している。半導体記憶装置１の利用者によって消去ブロック１０のデータの消去が指示されると、まず、図４（ｂ）に示すように、空き領域である消去動作データ領域２１ａに、データの消去が指示された消去ブロック１０の消去ブロックアドレス（図４（ｂ）では、“０００１１００”）が書き込まれるとともに、消去フラグの上位側の１ビットに“０”のデータが書き込まれる（図３のステップＳ３００参照）。これにより、消去動作データ領域２１ａに格納されたアドレスの消去ブロック１０が消去動作中の状態（消去フラグ＝“０１”）となる。
【００４７】
続いて、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０のデータの消去が完了した後、図４（ｃ）に示すように、データの消去が指示された消去ブロック１０の消去ブロックアドレスを格納している消去動作データ領域２１ａの消去フラグの下位側の１ビットに“０”のデータが書き込まれる（図３のステップＳ８００参照）。これにより、消去動作データ領域２１ａに格納されたアドレスの消去ブロック１０の消去動作が消去完了（使用済み）の状態（消去フラグ＝“００”）となる。このように、データの消去が指示された消去ブロック１０の状態に応じて、消去フラグの値が更新される。
【００４８】
以降、半導体記憶装置１の利用者によって消去ブロック１０のデータの消去が指示される毎に、図４（ｄ）から図４（ｆ）に示すように、前回と異なる未使用の状態の消去動作データ領域２１ｂに対して、データの消去が指示された消去ブロック１０の消去ブロックアドレス（図４（ｅ）では、“００１００１１”）が書き込まれるとともに、消去フラグの２ビットのいずれかに“０”のデータが書き込まれることにより、データの消去が指示された消去ブロック１０の状態（消去フラグ＝“０１”→“００”）に応じて消去フラグの値が更新されながら、消去ブロック１０のデータの消去動作が行われる。
【００４９】
上記に述べたとおり、本発明を実施するための形態によれば、半導体記憶装置１の利用者によってデータの消去が指示された消去ブロック１０の状態を示す消去フラグを、消去ブロック１０内の管理領域１２と異なる領域の消去フラグ格納ブロック２０内に格納する。従って、消去ブロック１０のデータの消去動作中に電源供給が遮断された場合でも、消去フラグ格納ブロック２０内の消去フラグのデータが不正な値となることがない。これにより、半導体記憶装置１に再度、電源供給がされた際に、消去フラグの値を確認することによって、電源供給が遮断される前の処理において、消去ブロック１０のデータの消去が正常に行われたか否かの判定を正しく行うことができる。このことから、消去ブロック１０の消去回数などを表す管理情報の回復処理を行うか否かを、正確に判定することができる。
【００５０】
また、消去フラグ格納ブロック２０内に空き領域がある限り、書き込み動作のみで消去動作データ領域２１の消去フラグを更新することができるため、消去フラグ格納ブロック２０自体の消去回数が増大してしまうということがない。なお、消去フラグ格納ブロック２０の領域は、消去フラグ格納ブロック２０自体の消去回数と消去ブロック１０の消去回数とを考慮し、消去ブロック１０の最大の消去回数を判定できる領域とすることが望ましい。
【００５１】
例えば、半導体記憶装置１内に備えた全ての消去ブロック１０の数と同じ数の消去動作データ領域２１を準備しておくことにより、全ての消去ブロック１０の消去回数が最大の消去回数となったときでも、消去フラグ格納ブロック２０自体の消去回数が最大の消去回数となることがなく、消去ブロック１０のデータの消去が正常に行われたか否かの判定を正しく行うことができる。
【００５２】
以下、図３に示した半導体記憶装置１のデータ消去の処理手順を参考にして、この理由を説明する。例えば、半導体記憶装置１内に最大の消去回数が１０回である消去ブロック１０を５つ備え、消去フラグ格納ブロック２０の領域を５つ用意した場合を考える。なお、消去フラグ格納ブロック２０の最大の消去回数も１０回である。この場合、消去フラグ格納ブロック２０において、５つの消去ブロック１０のいずれか１つのデータの消去が指示される毎に、ステップＳ３００において空き領域である消去動作データ領域２１に消去ブロックアドレスと消去フラグが書き込まれ、消去フラグ格納ブロック２０の１つの領域が使用される。従って、消去フラグ格納ブロック２０の５つの領域が使用され、ステップＳ１０００において消去フラグ格納ブロック２０のデータの消去が必要であると判断されるのは、半導体記憶装置１内の消去ブロック１０のデータが５回消去された後となる。例えば、半導体記憶装置１では、ウェアレベリング制御を行っているため、５つの消去ブロック１０がそれぞれ１回消去された後となる。このことから、半導体記憶装置１内の消去ブロック１０のデータの消去を繰り返した場合、ステップＳ１０００において消去フラグ格納ブロック２０のデータの消去が必要であると判断され、消去フラグ格納ブロック２０のデータが消去されるタイミングは、消去ブロック１０のデータが５回，１０回，１５回，２０回・・・消去された後のタイミングである。このように、消去ブロック１０のデータの消去が５回行われる毎に、消去フラグ格納ブロック２０のデータが１回消去される。従って、消去フラグ格納ブロック２０の消去回数が最大の消去回数の１０回となるタイミングは、消去ブロック１０のデータが５０回消去された後のタイミングとなる。この消去ブロック１０のデータを５０回消去するということは、半導体記憶装置１内の全ての消去ブロック１０の消去回数が、すでに最大の消去回数の１０回となっており、データの消去を行うことができない状態であることを表している。このように、消去フラグ格納ブロック２０の領域として、半導体記憶装置１内に備えた全ての消去ブロック１０の数と同じ数の領域を準備しておくことにより、消去フラグ格納ブロック２０の消去回数が最大の消去回数となる前に、全ての消去ブロック１０の消去回数が最大の消去回数となる。すなわち、全ての消去ブロック１０の消去回数が最大の消去回数となる前に、消去フラグ格納ブロック２０の消去回数が最大の消去回数となることはなく、消去ブロック１０のデータの消去が正常に行われたか否かの判定を正しく行うことができる。
【００５３】
なお、図３に示した本実施形態の半導体記憶装置１におけるデータ消去の処理手順では、半導体記憶装置１の利用者によって消去ブロック１０のデータ消去が指示されたときに、消去動作中である消去ブロック１０があるか否かを確認する場合の例（図３のステップＳ１００およびステップＳ２００参照）を示したが、半導体記憶装置１に電源が供給されたときに、消去動作中である消去ブロック１０があるか否かを確認することもできる。この場合、図３におけるステップＳ１００〜ステップＳ２００の消去動作中である消去ブロック１０があるか否かの確認、およびステップＳ２１０〜ステップＳ２２０の消去ブロック１０の回復制御を、半導体記憶装置１に電源が供給されたときに実行し、半導体記憶装置１の利用者によって消去ブロック１０のデータの消去が指示されたときには、図３におけるステップＳ３００以降を繰り返すようにすればよい。
【００５４】
また、図３に示した本実施形態の半導体記憶装置１におけるデータ消去の処理手順では、半導体記憶装置１の利用者によって指示された消去ブロック１０のデータの消去が完了した後に、消去フラグ格納ブロック２０の空き領域を確認する場合の例（図３のステップＳ９００〜ステップＳ１０１０参照）を示したが、半導体記憶装置１の利用者によって消去ブロック１０のデータの消去が指示されたときに、消去フラグ格納ブロック２０の空き領域を確認することもできる。この場合、図３におけるステップＳ３００の消去ブロック１０の消去ブロックアドレスの登録と消去フラグの更新の前に、図３に示したステップＳ９００〜ステップＳ１０１０と同様の消去フラグ格納ブロック２０の空き領域の確認と、消去フラグ格納ブロック２０の消去動作とを実行するようにすればよい。
【００５５】
また、半導体記憶装置１のメモリブロックの構成は、本発明を実施するための形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、データ格納領域１１と管理領域１２とを備えた消去ブロックの単位でデータの書き込みおよび消去が行われる構成の半導体記憶装置であれば、本発明を適用することができる。
【００５６】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【００５７】
１・・・半導体記憶装置
１０・・・消去ブロック（メモリブロック）
１１・・・データ格納領域
１２・・・管理領域
２０・・・消去フラグ格納ブロック（情報格納手段）
２１・・・消去動作データ領域
３０・・・消去フラグ判定回路（判定手段）
４０・・・書き込み・消去制御回路（設定手段）
５０・・・書き込み・消去用電圧生成回路（設定手段）
【図１】
2011129192.tif 000003
【図２】
2011129192.tif 000004
【図３】
2011129192.tif 000005
【図４】
2011129192.tif 000006
【図５】
2011129192.tif 000007