(57)【要約】【課題】不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能な半導体記憶装置を得る。【解決手段】管理情報は、第１ブロック群Ｒ１内に格納される第１管理情報と、第２ブロック群Ｒ２内に格納される第２管理情報とを含み、第２管理情報には、第１ブロック群Ｒ１内において妥当な第１管理情報を特定できない場合に、当該妥当な第１管理情報を第１ブロック群Ｒ１内に復元するための復元情報が含まれる。【選択図】図７
2014035747.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがデータの消去単位である複数のブロックを有する記憶部と、
前記記憶部を制御する制御部と、
を備え、
前記記憶部が有する全ブロックには、
前記制御部が前記記憶部を管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第１所定数個のブロックから成る第１ブロック群と、
第１ブロック群以外の第２ブロック群と、
が含まれ、
管理情報は、
第１ブロック群内に格納される第１管理情報と、
第２ブロック群内に格納される第２管理情報と、
を含み、
第２管理情報には、第１ブロック群内において妥当な第１管理情報を特定できない場合に、当該妥当な第１管理情報を第１ブロック群内に復元するための復元情報が含まれる、半導体記憶装置。
【請求項２】
第２管理情報は、第１管理情報よりも書き換え頻度の高い情報である、請求項１に記載の半導体記憶装置。
【請求項３】
第１管理情報には、第２管理情報を格納しているブロックを示す位置情報が含まれ、
第２管理情報には、不良ブロックを示す位置情報が含まれる、請求項１又は２に記載の半導体記憶装置。
【請求項４】
第１管理情報には、第１ブロック群内の不良ブロックを示す位置情報が含まれ、
第２管理情報には、第２ブロック群内の不良ブロックを示す位置情報が含まれる、請求項３に記載の半導体記憶装置。
【請求項５】
第２ブロック群内には、複数の第２所定数個のブロックの各々に、同一内容の第２管理情報が格納されている、請求項１〜４のいずれか一つに記載の半導体記憶装置。
【請求項６】
前記制御部は、
正常な第２管理情報が格納されている、複数の第３所定数個の正常ブロックを、第２ブロック群の中から特定し、
第３所定数個の正常ブロックに格納されている第３所定数個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定し、
当該妥当な第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を復元する、請求項５に記載の半導体記憶装置。
【請求項７】
前記制御部は、第２管理情報を格納している全てのブロックの中から、格納している第２管理情報にデータの誤りが生じている異常ブロックを除外することにより、正常ブロックを特定する、請求項６に記載の半導体記憶装置。
【請求項８】
前記制御部は、
第３所定数個の正常ブロックの中から３個の正常ブロックを特定し、
当該３個の正常ブロックに格納されている３個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定する、請求項６又は７に記載の半導体記憶装置。
【請求項９】
前記制御部は、
ある１個の正常ブロックに格納されている第２管理情報と、
当該第２管理情報に位置情報が記述されている特定の２個のブロックに格納されている２個の第２管理情報と、
を用いて、多数決を行う、請求項８に記載の半導体記憶装置。
【請求項１０】
前記制御部は、特定した３個の正常ブロックを対象とする多数決によっては妥当な第２管理情報を特定できない場合には、
第３所定数個の正常ブロックの中から他の３個の正常ブロックを特定し、
当該他の３個の正常ブロックに格納されている３個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定する、請求項８又は９に記載の半導体記憶装置。
【請求項１１】
前記制御部は、第２管理情報を更新する必要が生じた場合には、更新前の第２管理情報が格納されている第２所定数個のブロックの各々に、更新後の第２管理情報をそれぞれ書き込む、請求項５〜１０のいずれか一つに記載の半導体記憶装置。
【請求項１２】
前記制御部は、第２管理情報の更新毎に値が異なるバージョン情報を、第２管理情報に含めて書き込む、請求項１１に記載の半導体記憶装置。
【請求項１３】
前記制御部は、あるブロックに第２管理情報を書き込む際に当該ブロックが後天性不良ブロックとなった場合には、当該第２管理情報に含めたバージョン情報の値を、以降の更新時には使用しない、請求項１２に記載の半導体記憶装置。
【請求項１４】
前記制御部は、第２管理情報の更新時刻に関する時間情報を、第２管理情報に含めて書き込む、請求項１１に記載の半導体記憶装置。
【請求項１５】
前記制御部は、第２管理情報の誤り検出符号を、第２管理情報に含めて書き込む、請求項１１〜１４のいずれか一つに記載の半導体記憶装置。
【請求項１６】
前記制御部は、第２所定数個のブロックの中の一のブロックに書き込む第２管理情報に、第２所定数個のブロックの中の他のブロックを示す位置情報を含めて書き込む、請求項１１〜１５のいずれか一つに記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリコントローラと、フラッシュメモリ等のメモリセルアレイとを備えたメモリシステムが実用化されている。ＮＡＮＤ型のフラッシュメモリ等においては、製造時に発生する先天性不良ブロックや、出荷後の通常使用によって発生する後天性不良ブロックが、ランダムに存在する。これらの不良ブロックを避けて使用する必要があるため、所定の管理情報によって不良ブロックの位置が管理される。
【０００３】
制御対象メモリであるメモリセルアレイ内に管理情報を格納しようとすると、格納先のブロックが先天性不良ブロックであった場合や、格納時には先天性不良ブロックではなかったがその後に後天性不良ブロックとなった場合に、管理情報の一部又は全部のデータが破壊又は喪失されてしまう可能性がある。また、管理情報を更新するために新たな管理情報を書き込んでいる最中に、ユーザの誤操作等によって強制的に電源が遮断されてしまうと、管理情報の一部又は全部のデータが破壊又は喪失されてしまう可能性がある。管理情報が破壊又は喪失されると、その後はメモリシステムの正常動作が阻害される。
【０００４】
そこで、背景技術に係るメモリシステムでは、制御対象メモリとは別の専用の不揮発性メモリを用意し、当該不揮発性メモリ内に管理情報を格納することによって、管理情報の破壊等が防止されている。他の方法として、メモリコントローラ内の不揮発のメモリ領域に管理情報を格納し、あるいはＤＩＰスイッチの設定によって管理情報をメモリコントローラに与えることで、管理情報の破壊等が防止されている。
【０００５】
なお、下記特許文献１には、コントローラとフラッシュメモリとを備えたメモリシステムが開示されている。不良ブロックのリスト等を含む管理情報は、複数の分割片に分割されて、各分割片がフラッシュメモリ内に個別に保存されている。また、コントローラ内には、ＤＲＡＭ等の揮発性メモリを用いた管理メモリが実装されている。複数の分割片がフラッシュメモリから管理メモリに読み出されることにより、管理メモリ内に管理情報が保存される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−５９８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように背景技術に係るメモリシステムでは、制御対象メモリとは別の専用の不揮発性メモリ内に管理情報が格納される。従って、制御対象メモリとは別に専用の不揮発性メモリを追加する必要があるため、製造コストが増大するとともに制御が複雑化する。
【０００８】
本発明はかかる問題を解決するために成されたものであり、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能な半導体記憶装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係る半導体記憶装置は、それぞれがデータの消去単位である複数のブロックを有する記憶部と、前記記憶部を制御する制御部と、を備え、前記記憶部が有する全ブロックには、前記制御部が前記記憶部を管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第１所定数個のブロックから成る第１ブロック群と、第１ブロック群以外の第２ブロック群と、が含まれ、管理情報は、第１ブロック群内に格納される第１管理情報と、第２ブロック群内に格納される第２管理情報と、を含み、第２管理情報には、第１ブロック群内において妥当な第１管理情報を特定できない場合に、当該妥当な第１管理情報を第１ブロック群内に復元するための復元情報が含まれることを特徴とするものである。
【００１０】
第１の態様に係る半導体記憶装置によれば、管理情報は、第１ブロック群内に格納される第１管理情報と、第２ブロック群内に格納される第２管理情報とを含む。そして、第２管理情報には、第１ブロック群内において妥当な第１管理情報を特定できない場合に、当該妥当な第１管理情報を第１ブロック群内に復元するための復元情報が含まれる。従って、第１ブロック群内において妥当な第１管理情報を特定できない場合であっても、制御部は、第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を第１ブロック群内に復元することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能となる。
【００１１】
本発明の第２の態様に係る半導体記憶装置は、第１の態様に係る半導体記憶装置において特に、第２管理情報は、第１管理情報よりも書き換え頻度の高い情報であることを特徴とするものである。
【００１２】
第２の態様に係る半導体記憶装置によれば、第２管理情報は、第１管理情報よりも書き換え頻度の高い情報である。書き換え頻度に応じて管理情報を第１管理情報と第２管理情報とに分割し、限定的に割り当てられた第１ブロック群内には、書き換え頻度の低い第１管理情報を格納することにより、第１ブロック群内ではデータの書き換えが頻繁には発生しない。その結果、第１ブロック群内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
【００１３】
本発明の第３の態様に係る半導体記憶装置は、第１又は第２の態様に係る半導体記憶装置において特に、第１管理情報には、第２管理情報を格納しているブロックを示す位置情報が含まれ、第２管理情報には、不良ブロックを示す位置情報が含まれることを特徴とするものである。
【００１４】
第３の態様に係る半導体記憶装置によれば、第１管理情報には、第２管理情報を格納しているブロックを示す位置情報が含まれ、第２管理情報には、不良ブロックを示す位置情報が含まれる。従って、制御部は、第１管理情報を記憶部から読み出すことによって、第２管理情報を格納しているブロックを示す位置情報を取得でき、また、当該位置情報に基づいて第２管理情報を記憶部から読み出すことによって、不良ブロックを示す位置情報を取得することが可能となる。
【００１５】
本発明の第４の態様に係る半導体記憶装置は、第３の態様に係る半導体記憶装置において特に、第１管理情報には、第１ブロック群内の不良ブロックを示す位置情報が含まれ、第２管理情報には、第２ブロック群内の不良ブロックを示す位置情報が含まれることを特徴とするものである。
【００１６】
第４の態様に係る半導体記憶装置によれば、第１管理情報には、第１ブロック群内の不良ブロックを示す位置情報が含まれ、第２管理情報には、第２ブロック群内の不良ブロックを示す位置情報が含まれる。従って、第２ブロック群内で後天性不良ブロックが発生した場合には、第２管理情報のみを更新すればよく、第１管理情報の更新を省略することができる。
【００１７】
本発明の第５の態様に係る半導体記憶装置は、第１〜第４のいずれか一つの態様に係る半導体記憶装置において特に、第２ブロック群内には、複数の第２所定数個のブロックの各々に、同一内容の第２管理情報が格納されていることを特徴とするものである。
【００１８】
第５の態様に係る半導体記憶装置によれば、第２ブロック群内には、複数の第２所定数個のブロックの各々に、同一内容の第２管理情報が格納されている。従って、第２所定数個のブロックに格納されている第２所定数個の第２管理情報のうちの一つが破壊又は喪失された場合であっても、制御部は、破壊又は喪失されていない残りの第２管理情報を、記憶部から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能となる。
【００１９】
本発明の第６の態様に係る半導体記憶装置は、第５の態様に係る半導体記憶装置において特に、前記制御部は、正常な第２管理情報が格納されている、複数の第３所定数個の正常ブロックを、第２ブロック群の中から特定し、第３所定数個の正常ブロックに格納されている第３所定数個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定し、当該妥当な第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を復元することを特徴とするものである。
【００２０】
第６の態様に係る半導体記憶装置によれば、制御部は、第３所定数個の正常ブロックを、第２ブロック群の中から特定する。そして、特定した第３所定数個の正常ブロックに格納されている第３所定数個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定する。従って、更新が繰り返されることで第２ブロック群内に複数バージョンの第２管理情報が格納されている場合であっても、妥当な第２管理情報を適切に特定することが可能となる。
【００２１】
本発明の第７の態様に係る半導体記憶装置は、第６の態様に係る半導体記憶装置において特に、前記制御部は、第２管理情報を格納している全てのブロックの中から、格納している第２管理情報にデータの誤りが生じている異常ブロックを除外することにより、正常ブロックを特定することを特徴とするものである。
【００２２】
第７の態様に係る半導体記憶装置によれば、制御部は、第２管理情報を格納している全てのブロックの中から異常ブロックを除外することにより、正常ブロックを特定する。従って、異常ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第２管理情報を適切に特定することが可能となる。
【００２３】
本発明の第８の態様に係る半導体記憶装置は、第６又は第７の態様に係る半導体記憶装置において特に、前記制御部は、第３所定数個の正常ブロックの中から３個の正常ブロックを特定し、当該３個の正常ブロックに格納されている３個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定することを特徴とするものである。
【００２４】
第８の態様に係る半導体記憶装置によれば、制御部は、第３所定数個の正常ブロックの中から３個の正常ブロックを特定し、当該３個の正常ブロックに格納されている３個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定する。このように、多数決を行う対象を３個の第２管理情報に限定することによって、簡易に多数決を行うことができるため、処理の所要時間を短縮することが可能となる。
【００２５】
本発明の第９の態様に係る半導体記憶装置は、第８の態様に係る半導体記憶装置において特に、前記制御部は、ある１個の正常ブロックに格納されている第２管理情報と、当該第２管理情報に位置情報が記述されている特定の２個のブロックに格納されている２個の第２管理情報と、を用いて、多数決を行うことを特徴とするものである。
【００２６】
第９の態様に係る半導体記憶装置によれば、制御部は、ある１個の正常ブロックに格納されている第２管理情報と、当該第２管理情報に位置情報が記述されている特定の２個のブロックに格納されている２個の第２管理情報とを用いて、多数決を行う。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第２管理情報に限定できるため、多数決によって妥当な第２管理情報を特定できる可能性を高めることが可能となる。
【００２７】
本発明の第１０の態様に係る半導体記憶装置は、第８又は第９の態様に係る半導体記憶装置において特に、前記制御部は、特定した３個の正常ブロックを対象とする多数決によっては妥当な第２管理情報を特定できない場合には、第３所定数個の正常ブロックの中から他の３個の正常ブロックを特定し、当該他の３個の正常ブロックに格納されている３個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定することを特徴とするものである。
【００２８】
第１０の態様に係る半導体記憶装置によれば、制御部は、特定した３個の正常ブロックを対象とする多数決によっては妥当な第２管理情報を特定できない場合には、他の３個の正常ブロックを特定し直して多数決を行う。これにより、妥当な第２管理情報を特定できる可能性を高めることが可能となる。
【００２９】
本発明の第１１の態様に係る半導体記憶装置は、第５〜第１０のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第２管理情報を更新する必要が生じた場合には、更新前の第２管理情報が格納されている第２所定数個のブロックの各々に、更新後の第２管理情報をそれぞれ書き込むことを特徴とするものである。
【００３０】
第１１の態様に係る半導体記憶装置によれば、制御部は、第２管理情報を更新する必要が生じた場合には、更新前の第２管理情報が格納されている第２所定数個のブロックの各々に、更新後の第２管理情報をそれぞれ書き込む。これにより、更新後においても、同一内容の第２所定個数の第２管理情報を、第２ブロック群に格納することが可能となる。
【００３１】
本発明の第１２の態様に係る半導体記憶装置は、第１１の態様に係る半導体記憶装置において特に、前記制御部は、第２管理情報の更新毎に値が異なるバージョン情報を、第２管理情報に含めて書き込むことを特徴とするものである。
【００３２】
第１２の態様に係る半導体記憶装置によれば、制御部は、更新毎に値が異なるバージョン情報を、第２管理情報に含めて書き込む。従って、バージョン情報を用いて多数決を行うことができ、その結果、妥当な第２管理情報を適切に特定する精度を向上することが可能となる。
【００３３】
本発明の第１３の態様に係る半導体記憶装置は、第１２の態様に係る半導体記憶装置において特に、前記制御部は、あるブロックに第２管理情報を書き込む際に当該ブロックが後天性不良ブロックとなった場合には、当該第２管理情報に含めたバージョン情報の値を、以降の更新時には使用しないことを特徴とするものである。
【００３４】
第１３の態様に係る半導体記憶装置によれば、制御部は、あるブロックに第２管理情報を書き込む際に当該ブロックが後天性不良ブロックとなった場合には、当該第２管理情報に含めたバージョン情報の値を、以降の更新時には使用しない。従って、バージョン情報の値を生成するためのカウンタ値が一周した場合であっても、後天性不良ブロックに格納されている第２管理情報が、多数決によって妥当な第２管理情報として誤って特定されるという事態を回避することが可能となる。
【００３５】
本発明の第１４の態様に係る半導体記憶装置は、第１１の態様に係る半導体記憶装置において特に、前記制御部は、第２管理情報の更新時刻に関する時間情報を、第２管理情報に含めて書き込むことを特徴とするものである。
【００３６】
第１４の態様に係る半導体記憶装置によれば、制御部は、第２管理情報の更新時刻に関する時間情報を、第２管理情報に含めて書き込む。従って、時間情報に基づいて最新の第２管理情報を特定でき、その結果、妥当な第２管理情報を適切に特定する精度を向上することが可能となる。
【００３７】
本発明の第１５の態様に係る半導体記憶装置は、第１１〜第１４のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第２管理情報の誤り検出符号を、第２管理情報に含めて書き込むことを特徴とするものである。
【００３８】
第１５の態様に係る半導体記憶装置によれば、制御部は、第２管理情報の誤り検出符号を、第２管理情報に含めて書き込む。従って、誤り検出符号を用いて多数決を行うことができ、その結果、妥当な第２管理情報を適切に特定する精度を向上することが可能となる。また、誤り検出符号を用いてデータの誤りが生じているか否かを判定することができ、その結果、第２ブロック群の中から正常ブロックを特定する際に、データの誤りが生じている異常ブロックを除外することが可能となる。
【００３９】
本発明の第１６の態様に係る半導体記憶装置は、第１１〜第１５のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第２所定数個のブロックの中の一のブロックに書き込む第２管理情報に、第２所定数個のブロックの中の他のブロックを示す位置情報を含めて書き込むことを特徴とするものである。
【００４０】
第１６の態様に係る半導体記憶装置によれば、制御部は、第２所定数個のブロックの中の一のブロックに書き込む第２管理情報に、第２所定数個のブロックの中の他のブロックを示す位置情報を含めて書き込む。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第２管理情報に限定できるため、多数決によって妥当な第２管理情報を特定できる可能性を高めることが可能となる。
【発明の効果】
【００４１】
本発明によれば、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能な半導体記憶装置を得ることができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態１に係る半導体記憶装置の構成を簡略化して示す図である。
【図２】制御対象メモリのメモリ空間の一部を抜き出して示す図である。
【図３】使用が想定されている制御対象メモリの種類を示す図である。
【図４】第１ブロック群を示す図である。
【図５】第２ブロック群を示す図である。
【図６】ブロック内のページの割り当てを示す図である。
【図７】ブロック内のページの割り当てを示す図である。
【図８】管理情報の取得処理を順に示す図である。
【図９】管理情報の取得処理を順に示す図である。
【図１０】管理情報の取得処理を順に示す図である。
【図１１】管理情報の取得処理を順に示す図である。
【図１２】管理情報の取得処理を順に示す図である。
【図１３】管理情報の取得処理を順に示す図である。
【図１４】第１管理情報の更新処理を順に示す図である。
【図１５】第１管理情報の更新処理を順に示す図である。
【図１６】第１管理情報の更新処理を順に示す図である。
【図１７】第１管理情報の更新処理を順に示す図である。
【図１８】第１管理情報の更新処理を順に示す図である。
【図１９】第１ブロック群の他の例を示す図である。
【図２０】第１ブロック群の他の例を示す図である。
【図２１】第１管理情報の復元処理を示す図である。
【図２２】第２管理情報の更新例を示す図である。
【図２３】第２管理情報の更新例を示す図である。
【図２４】第１ブロック群を示す図である。
【図２５】管理情報の取得処理を順に示す図である。
【図２６】管理情報の取得処理を順に示す図である。
【図２７】管理情報の取得処理を順に示す図である。
【図２８】管理情報の取得処理を順に示す図である。
【図２９】管理情報の取得処理を順に示す図である。
【図３０】管理情報の取得処理を順に示す図である。
【図３１】第１管理情報の更新処理を順に示す図である。
【図３２】第１管理情報の更新処理を順に示す図である。
【図３３】第１管理情報の更新処理を順に示す図である。
【図３４】第１管理情報の更新処理を順に示す図である。
【図３５】第１管理情報の更新処理を順に示す図である。
【図３６】第１ブロック群の他の例を示す図である。
【図３７】第１ブロック群の他の例を示す図である。
【図３８】変形例１に係る半導体記憶装置の構成を簡略化して示す図である。
【図３９】制御対象メモリに格納されている第２管理情報片の第１の例を示す図である。
【図４０】制御対象メモリに格納されている第２管理情報片の第２の例を示す図である。
【発明を実施するための形態】
【００４３】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００４４】
＜実施の形態１＞
図１は、本発明の実施の形態１に係る半導体記憶装置１の構成を簡略化して示す図である。半導体記憶装置１は、メモリコントローラ２（制御部）と、メモリコントローラ２によって制御される制御対象メモリ３（記憶部）とを備えている。制御対象メモリ３は、不揮発性のメモリであり、例えばＮＡＮＤ型フラッシュメモリによって構成されている。
【００４５】
図２は、制御対象メモリ３のメモリ空間の一部を抜き出して示す図である。メモリ空間は、複数のブロックＢ１〜ＢＮに分割されている。ブロックは、データの消去の単位である。制御対象メモリ３が有する全ブロックＢ１〜ＢＮは、第１ブロック群Ｒ１と第２ブロック群Ｒ２とに分類されている。
【００４６】
第１ブロック群Ｒ１は、後述する第１管理情報を格納するためのブロックの集合であり、全ブロックＢ１〜ＢＮの中から限定された特定の複数個のブロックが、第１ブロック群Ｒ１として割り当てられている。本実施の形態の例では、ブロックＢ１〜Ｂ１０の合計１０個のブロックが、第１ブロック群Ｒ１として割り当てられている。
【００４７】
第２ブロック群Ｒ２は、第１ブロック群Ｒ１以外のブロックの集合である。第２ブロック群Ｒ２には、ユーザが使用する任意のデータが格納される。また、第２ブロック群Ｒ２には、後述する第２管理情報が格納される。
【００４８】
本実施の形態に係る半導体記憶装置１では、第１ブロック群Ｒ１に属する１０個のブロックＢ１〜Ｂ１０の中から選択された３個のブロックに、同一内容の第１管理情報が格納される。但し、「１０個」及び「３個」の値は一例であり、この値には限定されない。また、第２ブロック群Ｒ２に属する全てのブロックの中から任意に選択された３個のブロックに、同一内容の第２管理情報が格納される。但し、「３個」の値は一例であり、この値には限定されない。
【００４９】
管理情報は、メモリコントローラ２が制御対象メモリ３を管理するために必要な情報であり、本実施の形態の例において、管理情報は第１管理情報と第２管理情報とに分割されている。
【００５０】
第１管理情報には、第２管理情報を格納している３個のブロックの所在を示す位置情報が含まれる。位置情報としては、例えばブロックアドレスが用いられる。
【００５１】
また、第１管理情報には、誤り検出符号が含まれる。誤り検出符号は、その第１管理情報にデータの誤りが生じているか否かの判定に使用される。また、誤り検出符号は、妥当な第１管理情報を特定するための多数決（詳細は後述する）に使用される。誤り検出符号としては、チェックサム、ＣＲＣ（Cyclic Redundancy Check）、又はメッセージダイジェスト等を使用することができる。本実施の形態の例では、誤り検出符号としてＣＲＣが使用される。
【００５２】
また、第１管理情報には、固有のＩＤ情報（本明細書において「第１管理情報ＩＤ」と称す）が含まれる。第１管理情報ＩＤは、第１管理情報のバージョンを示すものであり、第１管理情報が更新される度に第１管理情報ＩＤの値も更新される。本実施の形態の例では、第１管理情報が更新される度に「１」ずつインクリメントされる整数値が、第１管理情報ＩＤとして使用される。第１管理情報ＩＤは、妥当な第１管理情報を特定するための多数決（詳細は後述する）に使用される。
【００５３】
また、第１管理情報には、第１ブロック群Ｒ１の中に不良ブロックが存在している場合に、その不良ブロックの所在を示す位置情報が含まれる。不良ブロックには、制御対象メモリ３の製造時に発生する先天性不良ブロックと、出荷後の通常使用によって発生する後天性不良ブロックとが含まれる。
【００５４】
第１管理情報を更新する場合には、第１ブロック群Ｒ１のうち、更新前の第１管理情報を格納しているブロックとは異なるブロックに、更新後の第１管理情報が書き込まれる。書き込み中に該当ブロックが後天性不良ブロックとなった場合には、第１ブロック群Ｒ１内の別のブロックに、更新後の第１管理情報が書き込まれる。
【００５５】
第２管理情報には、第２ブロック群Ｒ２の中に不良ブロックが存在している場合に、その不良ブロックの所在を示す位置情報が含まれる。また、第２管理情報には、汎用領域の場所や制御対象メモリ３へのアクセス速度等の、メモリコントローラ２が制御対象メモリ３を管理するために必要な様々な情報が含まれる。
【００５６】
また、第２管理情報には、固有のＩＤ情報（本明細書において「第２管理情報ＩＤ」と称す）が含まれる。第２管理情報ＩＤは、第２管理情報のバージョンを示すものであり、第２管理情報が更新される度に第２管理情報ＩＤの値も更新される。本実施の形態の例では、第２管理情報が更新される度に「１」ずつインクリメントされる整数値が、第２管理情報ＩＤとして使用される。第２管理情報ＩＤは、妥当な第２管理情報を特定するための多数決（詳細は後述する）に使用される。
【００５７】
第２管理情報ＩＤ値のビット数は、実用上オーバーフローしないように十分に大きなサイズが確保されており、これにより、第２管理情報ＩＤ値が最も大きな第２管理情報を最新の第２管理情報と判定することができる。また、第２管理情報を更新する際に、その更新時刻を表す絶対時間そのもの、若しくは絶対時間から算出した値を、第２管理情報ＩＤ値として用いることにより、複数の第２管理情報の中から最新の第２管理情報を容易に特定することができる。
【００５８】
また、第２管理情報には、自身と同一内容の第２管理情報が格納された他の２個のブロックを示す位置情報（本明細書において「グループアドレス」と称す）が含まれる。
【００５９】
また、第２管理情報には、誤り検出符号が含まれる。本実施の形態の例では、グループアドレスを含めた全域のＣＲＣ値と、グループアドレスを除いた部分のＣＲＣ値とが、第２管理情報内に含められる。グループアドレスを含めた全域のＣＲＣ値は、その第２管理情報にデータの誤りが生じているか否かの判定に使用される。また、グループアドレスを除いた部分のＣＲＣ値は、妥当な第２管理情報を特定するための多数決に使用される。
【００６０】
また、第２管理情報には、第１ブロック群Ｒ１内において妥当な第１管理情報を特定できない場合に、当該妥当な第１管理情報を第１ブロック群Ｒ１内に復元するための復元情報が含まれる。対応する第１管理情報に含まれている様々な情報のうち、第１管理情報ＩＤと、第１ブロック群Ｒ１内における不良ブロックの位置情報とが、復元情報内に含まれる。これらの情報は、平文をコピーして復元情報内に含めても良いし、圧縮したものを復元情報内に含めても良い。
【００６１】
第２管理情報を更新する場合には、第２ブロック群Ｒ２のうち、更新前の第２管理情報を格納しているブロックと同一のブロックに、更新後の第２管理情報が上書きされる。書き込み中に該当ブロックが後天性不良ブロックとなった場合には、第２ブロック群Ｒ２内の別の任意のブロック（但し不良ブロックは除く）に、更新後の第２管理情報が書き込まれる。第１管理情報には第２管理情報を格納しているブロックの位置情報が含まれているため、第２管理情報を格納するブロックが変更された場合には、第１管理情報を更新する必要がある。
【００６２】
各管理情報内に含めている情報の性質上、第２管理情報は第１管理情報よりも更新頻度（書き換え頻度）が高いといえる。例えば、第２ブロック群Ｒ２の中のユーザデータ領域内で後天性不良ブロックが発生した場合には、第２管理情報は更新する必要があるが、第１管理情報の更新は不要である。第２ブロック群Ｒ２のブロック数は第１ブロック群Ｒ１のブロック数よりもはるかに大きいため、第２ブロック群Ｒ２内で後天性不良ブロックが発生する確率は、第１ブロック群Ｒ１内で後天性不良ブロックが発生する確率よりも十分に高い。従って、第１管理情報は更新せずに第２管理情報を更新するという状況は、逆の状況よりも多く発生する。
【００６３】
図３は、使用が想定されている制御対象メモリ３の種類を示す図である。本実施の形態では、ページサイズ、ブロックサイズ、総ブロック数、読み出しサイクル、及び先天性不良フラグの位置が異なる、複数種類（この例では４種類）のメモリの使用が想定されている。なお、各メモリには、メモリの種類を識別するための固有のＩＤ情報（本明細書において「メモリＩＤ」と称す）が付与されている。メモリＩＤには、ページサイズ及びブロックサイズの情報が含まれている。
【００６４】
以下、本実施の形態に係る半導体記憶装置１に関して、（１）管理情報の格納例、（２）管理情報の取得処理、（３）管理情報の更新処理を、順に説明する。
【００６５】
（１）管理情報の格納例
図４は、第１ブロック群Ｒ１を示す図である。この例において、ブロックＢ１，Ｂ５は先天性不良ブロックであり、ブロックＢ２，Ｂ４は無効ブロック（詳細は後述する）である。
【００６６】
ブロックＢ３，Ｂ６〜Ｂ９には第１管理情報が格納されている。第１管理情報に付した丸括弧内の数字は、第１管理情報ＩＤ値（左側）及びＣＲＣ値（右側）を示している。説明の便宜上、第１管理情報を書き込む際のＣＲＣ値は、第１管理情報ＩＤ値と同一の値をとるものとする。データの誤りが生じていない正常ブロックに関しては、ＣＲＣ値と第１管理情報ＩＤ値とは一致し、一方、後天性不良ブロックになったこと等に起因してデータの誤りが生じている異常ブロックに関しては、ＣＲＣ値と第１管理情報ＩＤ値とは一致しない。この例において、ブロックＢ６に格納されている第１管理情報（２，１）に関しては、ＣＲＣ値と第１管理情報ＩＤ値とが一致していない。従って、ブロックＢ６は後天性不良ブロックである。
【００６７】
また、図４に示した例では、最新の第１管理情報は第１管理情報（４，４）である。ここで、第１管理情報（４，４）はブロックＢ８，Ｂ９の２個のブロックにしか格納されていないが、その理由は、ブロックＢ１０のデータを消去した後、第１管理情報（４，４）を書き込む前に、ユーザによって電源が強制的に遮断された状況を想定しているためである。従って、ブロックＢ１０は消去済みブロックとなっている。
【００６８】
また、ブロックＢ３内に表記している「ＢＡＤ」は、第１管理情報をブロックＢ３に書き込む際に、ブロックＢ３が後天性不良ブロックとなったことを表している。但し、ブロックＢ３に格納されている第１管理情報（１，１）に関しては、第１管理情報ＩＤ値とＣＲＣ値とが一致している。そのため、第１管理情報ＩＤ値とＣＲＣ値との比較によっては、ブロックＢ３が後天性不良ブロックであるとは判定できない。
【００６９】
なお、第１管理情報をブロックに書き込む際にそのブロックが後天性不良ブロックとなった場合には、その第１管理情報に付した第１管理情報ＩＤ値をメモリコントローラ２が保持しておき、それ以降に第１管理情報を更新する際には、その第１管理情報ＩＤ値を使用しないようにしても良い。これにより、サイクリックカウンタを用いて第１管理情報ＩＤ値を生成する場合に、後天性不良ブロックに格納されている古い第１管理情報と、それ以降に更新された新たな第１管理情報とで、第１管理情報ＩＤ値が偶然に一致するという事態が回避される。
【００７０】
図５は、第２ブロック群Ｒ２を示す図である。この例では、第２管理情報はブロックＢ１００，Ｂ１５０，Ｂ２００，Ｂ２５０，Ｂ３００，Ｂ３５０に格納されている。ブロックＢ１００，Ｂ２００，Ｂ３００から成る第１ブロックセットに同一内容の第２管理情報が格納され、ブロックＢ１５０，Ｂ２５０，Ｂ３５０から成る第２ブロックセットに他の同一内容の第２管理情報が格納される使用態様を想定している。第２管理情報に付した丸括弧内の数字は、第２管理情報ＩＤ値（左側）及び全域のＣＲＣ値（右側）を示している。第２管理情報に付した山括弧内の数字は、グループアドレスを示している。例えば、ブロックＢ１５０に第２管理情報（３，３）を書き込む際に、ブロックＢ２５０，Ｂ３５０にも同一内容の第２管理情報（３，３）が書き込まれたことを意味している。上記と同様に、第２管理情報を書き込む際の全域のＣＲＣ値は、第２管理情報ＩＤ値と同一の値をとるものとする。
【００７１】
また、図５に示した例では、最新の第２管理情報は第２管理情報（４，４）であり、二番目に新しい第２管理情報は第２管理情報（３，３）である。第２管理情報（３，３）は、３個のブロックＢ１５０，Ｂ２５０，Ｂ３５０に格納されている。なお、最新の第２管理情報（４，４）はブロックＢ１００の１個のブロックにしか格納されていないが、その理由は、ブロックＢ１００に第２管理情報（４，４）を書き込んだ後、ブロックＢ２００，３００に第２管理情報（４，４）を書き込むべくブロックＢ２００，３００のデータを消去する前に、ユーザによって電源が強制的に遮断された状況を想定しているためである。
【００７２】
なお、上記と同様に、第２管理情報をブロックに書き込む際にそのブロックが後天性不良ブロックとなった場合には、その第２管理情報に付した第２管理情報ＩＤ値をメモリコントローラ２が保持しておき、それ以降に第２管理情報を更新する際には、その第２管理情報ＩＤ値を使用しないようにしても良い。これにより、サイクリックカウンタを用いて第２管理情報ＩＤ値を生成する場合に、後天性不良ブロックに格納されている古い第２管理情報と、それ以降に更新された新たな第２管理情報とで、第２管理情報ＩＤ値が偶然に一致するという事態が回避される。
【００７３】
図６は、ブロックＢ１〜Ｂ１０の各ブロックに関して、ブロック内のページの割り当てを示す図である。１ブロックは複数のページに分割されている。ページは、データの書き込み及び読み出しの単位である。この例では、ページＰ０は先天性不良フラグが付加されるページであり、ページＰＮは無効フラグが付加されるページであり、ページＰＭは第１管理情報が書き込まれるページである。なお、第１管理情報はブロック内の複数のページに格納されていても良い。
【００７４】
あるブロックが先天性不良ブロックである場合には、そのブロックのページＰ０に先天性不良フラグが付加される。先天性不良フラグが付加されるページは、図３に示したように制御対象メモリ３の種類によって異なる。
【００７５】
あるブロックのデータが無効である場合には、そのブロックのページＰＮに無効フラグが付加される。無効フラグが付加されるページは、制御対象メモリ３の種類によらず共通である。
【００７６】
図７は、第２管理情報が格納されているブロックに関して、ブロック内のページの割り当てを示す図である。本実施の形態の例では、ブロックの先頭３ページ（ページＰ０〜Ｐ２）に、第２管理情報が格納される。
【００７７】
各ページＰ０〜Ｐ２の先頭には、同一内容の第２管理情報ＩＤがそれぞれ格納されている。これにより、メモリコントローラ２は、第２ブロック群Ｒ２に属する全てのブロックの中から、第２管理情報が格納されているブロックを探索することができる。
【００７８】
ページＰ０には、第２管理情報に含まれる様々な情報のうち、復元情報が格納されている。
【００７９】
ページＰ２には、第２管理情報に含まれる様々な情報のうち、グループアドレスを除いた部分のＣＲＣ値と、２個のグループアドレスと、グループアドレスを含めた全域のＣＲＣ値とが格納されている。
【００８０】
ページＰ１には、第２管理情報に含まれる様々な情報のうち、ページＰ０，Ｐ２には格納されていないその他の管理情報が格納されている。
【００８１】
（２）管理情報の取得処理
図８〜１３は、半導体記憶装置１の起動時にメモリコントローラ２が実行する管理情報の取得処理を順に示す図である。第１ブロック群Ｒ１は、図４に示した状態になっているものとする。
【００８２】
まず、メモリコントローラ２は、メモリＩＤを要求するリードコマンドを制御対象メモリ３に発行することにより、制御対象メモリ３からメモリＩＤを取得する。メモリＩＤにはページサイズ及びブロックサイズの情報が含まれているため、メモリＩＤを取得することにより、制御対象メモリ３内の任意のページへのアクセスが可能となる。
【００８３】
＜先天性不良ブロックの探索ステップ＞
次に図８を参照して、メモリコントローラ２は、第１ブロック群Ｒ１に属する全てのブロックＢ１〜Ｂ１０を対象として、先天性不良ブロックを探索する。具体的には、ブロックＢ１〜Ｂ１０の各ブロックに関して、先天性不良フラグの格納ページ（図６に示したページＰ０）にアクセスすることにより、各ブロックが先天性不良ブロックであるか否かを判定する。
【００８４】
この時点では制御対象メモリ３の種類が判明していないため、先天性不良フラグの格納ページを一意には特定できない。従って、メモリコントローラ２は、使用が想定されている全種類のメモリに関する先天性不良フラグの格納ページに順にアクセスする。図３に示した例では、メモリコントローラ２は、第０ページの第０バイト、第０ページの第２０４８バイト、第１２８ページの第０バイト、及び第２５６ページの第８１９２バイトに順にアクセスすることにより、いずれかの格納ページに先天性不良フラグが付加されているか否かを判定する。また、その際の制御対象メモリ３へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。図３に示した例では、４種類のメモリのうち最も遅い５０ｎｓの読み出しサイクルでアクセスを行う。
【００８５】
なお、メモリＩＤとメモリ種類とを関連付けるテーブル情報を予め作成してメモリコントローラ２内に保持しておき、メモリコントローラ２が制御対象メモリ３からメモリＩＤを取得した後に当該テーブル情報を参照することにより、メモリ種類を特定するように構成してもよい。この場合には、特定したメモリ種類に対応したアクセス速度で、特定したメモリ種類に対応した格納ページにアクセスすることにより、先天性不良フラグが付加されているか否かを判定することができる。
【００８６】
探索の結果、ブロックＢ１〜Ｂ１０内に先天性不良ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図８に示した例では、先天性不良ブロックであるブロックＢ１，Ｂ５が候補から除外される。このステップで除外されずに残ったブロックＢ２〜Ｂ４，Ｂ６〜Ｂ１０を、本明細書において「良ブロック」と称す。
【００８７】
＜無効ブロックの探索ステップ＞
次に図９を参照して、メモリコントローラ２は、良ブロックＢ２〜Ｂ４，Ｂ６〜Ｂ１０を対象として、無効ブロックを探索する。具体的には、各良ブロックに関して、無効フラグの格納ページ（図６に示したページＰＮ）にアクセスすることにより、各良ブロックが無効ブロックであるか否かを判定する。
【００８８】
上記と同様に、制御対象メモリ３へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。但し、メモリＩＤに基づいてメモリ種類を特定できる場合には、特定したメモリ種類に対応した適切なアクセス速度でアクセスすればよい。
【００８９】
探索の結果、良ブロック内に無効ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図９に示した例では、無効ブロックであるブロックＢ２，Ｂ４が候補から除外される。このステップで除外されずに残ったブロックＢ３，Ｂ６〜Ｂ１０を、本明細書において「有効ブロック」と称す。
【００９０】
＜異常ブロックの探索ステップ＞
次に図１０を参照して、メモリコントローラ２は、有効ブロックＢ３，Ｂ６〜Ｂ１０を対象として、データの誤りが生じているブロックを探索する。具体的には、各有効ブロックに関して、第１管理情報の格納ページ（図６に示したページＰＭ）にアクセスして第１管理情報を読み出し、読み出した第１管理情報に対してＣＲＣ演算を行う。そして、演算により求めたＣＲＣ値と、読み出した第１管理情報内に含まれているＣＲＣ値とを比較する。メモリコントローラ２は、両ＣＲＣ値が一致する場合には、そのブロックはデータの誤りが生じていないブロック（本明細書において「正常ブロック」と称す）であると判定し、一方、両ＣＲＣ値が一致しない場合には、そのブロックはデータの誤りが生じているブロック（本明細書において「異常ブロック」と称す）であると判定する。
・書き込み又は消去時に後天性不良ブロックとなった
・書き込み又は消去時に電源が強制遮断されたことにより正常に終了されなかった
・消去状態でデータが何も書き込まれていない
等の理由で両ＣＲＣ値が一致しない場合には、そのブロックは異常ブロックと判定されることとなる。
【００９１】
上記と同様に、制御対象メモリ３へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。但し、メモリＩＤに基づいてメモリ種類を特定できる場合には、特定したメモリ種類に対応した適切なアクセス速度でアクセスすればよい。
【００９２】
探索の結果、有効ブロック内に異常ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図１０に示した例では、異常ブロックであるブロックＢ６，Ｂ１０が候補から除外される。
【００９３】
＜妥当な第１管理情報の特定ステップ＞
次に、メモリコントローラ２は、残った正常ブロックの中から４個の正常ブロックを任意に選択する。例えば、ブロックアドレスの小さい順に４個の正常ブロックを選択する。この例では残った正常ブロックがブロックＢ３，Ｂ７〜Ｂ９の４個であるため、全ての正常ブロックが選択される。なお、この時点で残った正常ブロックが２個以下である場合は、後述する多数決を行えないため、その制御対象メモリ３は故障であると判定する。また、この時点で残った正常ブロックが３個である場合は、後述する多数決を１回だけ行う。
【００９４】
次に図１１を参照して、メモリコントローラ２は、選択した４個の正常ブロックＢ３，Ｂ７〜Ｂ９の中から、３個の正常ブロックを任意に選択する。この例では、ブロックアドレスの小さい順に３個の正常ブロックＢ３，Ｂ７，Ｂ８を選択する。そして、各正常ブロックＢ３，Ｂ７，Ｂ８に格納されている第１管理情報に含まれている第１管理情報ＩＤ値及びＣＲＣ値を相互に比較することにより、１回目の多数決を行う。メモリコントローラ２は、３個の第１管理情報のうちの２個以上で第１管理情報ＩＤ値及びＣＲＣ値が一致した場合には、その第１管理情報は妥当であると判定する。この例では、３個の第１管理情報の第１管理情報ＩＤ値及びＣＲＣ値はそれぞれ（１，１）（３，３）（４，４）であり、相互に一致しないため、妥当な第１管理情報はないと判定される。
【００９５】
次に図１２を参照して、メモリコントローラ２は、選択した４個の正常ブロックＢ３，Ｂ７〜Ｂ９の中から、他の３個の正常ブロックを任意に選択する。この例では、ブロックアドレスの大きい順に３個の正常ブロックＢ７〜Ｂ９を選択する。そして、各正常ブロックＢ７〜Ｂ９に格納されている第１管理情報に含まれている第１管理情報ＩＤ値及びＣＲＣ値を相互に比較することにより、２回目の多数決を行う。この例では、３個の第１管理情報の第１管理情報ＩＤ値及びＣＲＣ値はそれぞれ（３，３）（４，４）（４，４）であり、（４，４）が２個以上で一致する。従って、ブロックＢ８，Ｂ９に格納されている第１管理情報が、妥当な第１管理情報であると判定される。
【００９６】
なお、１回目の多数決によって妥当な第１管理情報を特定できた場合には、２回目の多数決は省略される。また、２回目の多数決によっても妥当な第１管理情報を特定できない場合には、メモリコントローラ２は、その制御対象メモリ３を暫定的に故障であると判定する。暫定的に故障と判定された制御対象メモリ３に関しては、妥当な第１管理情報の復元処理（詳細は後述する）が実行される。復元処理を実行しても妥当な第１管理情報を復元できない場合には、その制御対象メモリ３は確定的に故障と判定される。また、正常ブロックが５個以上残っている場合には、４個の正常ブロックの選択をやり直して、再び多数決を行っても良い。
【００９７】
＜第２管理情報の取得ステップ＞
次に図１３を参照して、メモリコントローラ２は、特定した２個以上の妥当な第１管理情報の中から、任意の１個の第１管理情報を確定する。例えば、ブロックＢ８，Ｂ９の中でブロックアドレスの最も小さいブロックＢ８を選択し、ブロックＢ８に格納されている第１管理情報（４，４）を、妥当な第１管理情報として確定する。
【００９８】
次に、メモリコントローラ２は、確定した妥当な第１管理情報に含まれている位置情報（第２管理情報を格納しているブロックの所在を示す位置情報）に基づいて、第２ブロック群Ｒ２の中から第２管理情報を読み出すことにより、第２管理情報を取得する。
【００９９】
（３）管理情報の更新処理
第２管理情報の格納ブロックが後天性不良ブロックとなった場合等には、第２管理情報の格納ブロックを、第２ブロック群Ｒ２内の他のブロックに変更する必要がある。ここで、第１管理情報には第２管理情報の格納ブロックの位置情報が含まれているため、第２管理情報の格納ブロックを変更する場合には、第１管理情報の内容も更新する必要がある。また、第１管理情報には第１ブロック群Ｒ１の不良ブロックの位置情報が含まれているため、第１ブロック群Ｒ１内で後天性不良ブロックが発生した場合等には、第１管理情報の内容を更新する必要がある。以下、第１管理情報を更新する手順について説明する。
【０１００】
図１４〜１８は、メモリコントローラ２が実行する第１管理情報の更新処理を順に示す図である。
【０１０１】
図１４を参照して、現在有効な第１管理情報（つまり更新前の第１管理情報）は、ブロックＢ８，Ｂ９に格納されている第１管理情報（４，４）である。また、起動時に妥当な第１管理情報を特定するための多数決の候補となった第１管理情報は、ブロックＢ７〜Ｂ９に格納されている第１管理情報である。以下、ブロックＢ７〜Ｂ９を「多数決対象ブロック」と称す。
【０１０２】
次に図１５を参照して、メモリコントローラ２は、第１ブロック群Ｒ１の中から、更新後の第１管理情報を格納すべき空きブロックを確保する。具体的には、ブロックＢ１〜Ｂ１０の中から、先天性不良ブロック、後天性不良ブロック、及び多数決対象ブロックを除外して、３個の空きブロックを確保する。第１管理情報には第１ブロック群Ｒ１内の不良ブロックの位置情報が含まれているため、現在有効な第１管理情報（４，４）を参照することにより、第１ブロック群Ｒ１内の先天性不良ブロック及び後天性不良ブロックを特定することができる。この例では、無効ブロックであるブロックＢ２，Ｂ４と、消去済みブロックであるブロックＢ１０とが、空きブロックとして確保される。なお、確保できる空きブロックが２個以下である場合は、その制御対象メモリ３は故障であると判定される。
【０１０３】
次に図１６を参照して、メモリコントローラ２は、３個の空きブロックの中の任意の１個の空きブロックのデータを消去した後、更新後の第１管理情報（５，５）をそのブロックに書き込む。この例では、ブロックＢ１０のデータが消去された後に、第１管理情報（５，５）がブロックＢ１０に書き込まれる。なお、空きブロックのデータを消去する際、又は第１管理情報（５，５）を書き込む際に、該当ブロックが後天性不良ブロックとなった場合には、メモリコントローラ２は、第１管理情報及び第２管理情報に含まれている不良ブロックの位置情報を更新するとともに、空きブロックの確保処理からやり直す。
【０１０４】
次に図１７を参照して、メモリコントローラ２は、３個の多数決対象ブロックの中の任意の１個のブロックに対して、無効フラグを付加する。この例では、ブロックＢ７に無効フラグが付加される。なお、無効フラグを付加する際に該当ブロックが後天性不良ブロックとなった場合には、メモリコントローラ２は、第１管理情報及び第２管理情報に含まれている不良ブロックの位置情報を更新するとともに、空きブロックの確保処理からやり直す。
【０１０５】
次に図１８を参照して、メモリコントローラ２は、３個の空きブロックの中の次の空きブロックＢ２のデータを消去した後、第１管理情報（５，５）をそのブロックＢ２に書き込む。その後、３個の多数決対象ブロックの中の次のブロックＢ８に対して、無効フラグを付加する。次に、メモリコントローラ２は、３個の空きブロックの中の最後の空きブロックＢ４のデータを消去した後、第１管理情報（５，５）をそのブロックＢ４に書き込む。その後、３個の多数決対象ブロックの中の最後のブロックＢ９に対して、無効フラグを付加する。これにより、３個の空きブロックＢ２，Ｂ４，Ｂ１０に同一内容の第１管理情報（５，５）が格納される。
【０１０６】
なお、多数決対象ブロックＢ７〜Ｂ９に無効フラグを付加する代わりに、データの消去を行っても良い。この場合、１個の空きブロックへの第１管理情報の書き込みと、１個の多数決対象ブロックに対するデータの消去とが、交互に３回繰り返されることとなる。
【０１０７】
＜実施の形態１の具体例１＞
図１９は、第１ブロック群Ｒ１の他の例を示す図である。この例において、ブロックＢ５，Ｂ９は先天性不良ブロックであり、ブロックＢ１，Ｂ２，Ｂ１０は無効ブロックである。また、ブロックＢ４，Ｂ８は後天性不良ブロックである。但し、ブロックＢ４，Ｂ８に関しては管理情報ＩＤ値とＣＲＣ値とが一致している。また、ブロックＢ３，Ｂ６，Ｂ７には、第１管理情報（６，６）が格納されている。
【０１０８】
図１９に示した第１ブロック群Ｒ１を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックＢ５，Ｂ９が除外される。次に、無効ブロックであるブロックＢ１，Ｂ２，Ｂ１０が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。次に、４個の正常ブロックとしてブロックＢ３，Ｂ４，Ｂ６，Ｂ７が選択される。
【０１０９】
次に、先頭３個の正常ブロックＢ３，Ｂ４，Ｂ６を対象とする１回目の多数決が行われ、その結果、ブロックＢ３，Ｂ６に格納されている第１管理情報（６，６）が妥当な第１管理情報として特定される。
【０１１０】
次に、ブロックＢ３，Ｂ６のいずれかに格納されている第１管理情報（６，６）に基づいて、第２ブロック群Ｒ２の中から第２管理情報が読み出される。
【０１１１】
＜実施の形態１の具体例２＞
図２０は、第１ブロック群Ｒ１の他の例を示す図である。この例において、ブロックＢ５，Ｂ９は先天性不良ブロックであり、ブロックＢ１，Ｂ２，Ｂ１０は無効ブロックである。また、ブロックＢ４，Ｂ６は後天性不良ブロックである。但し、ブロックＢ４，Ｂ６に関しては管理情報ＩＤ値とＣＲＣ値とが一致している。また、ブロックＢ３，Ｂ７，Ｂ８には、第１管理情報（７，７）が格納されている。
【０１１２】
図２０に示した第１ブロック群Ｒ１を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックＢ５，Ｂ９が除外される。次に、無効ブロックであるブロックＢ１，Ｂ２，Ｂ１０が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。次に、４個の正常ブロックとしてブロックＢ３，Ｂ４，Ｂ６，Ｂ７が選択される。
【０１１３】
次に、先頭３個の正常ブロックＢ３，Ｂ４，Ｂ６を対象とする１回目の多数決が行われるが、多数決が成立しないため、妥当な第１管理情報はないと判定される。
【０１１４】
次に、末尾３個の正常ブロックＢ４，Ｂ６，Ｂ７を対象とする２回目の多数決が行われるが、多数決が成立しないため、妥当な第１管理情報はないと判定される。その結果、その制御対象メモリ３は暫定的に故障であると判定される。
【０１１５】
＜妥当な第１管理情報の復元処理＞
以下、暫定的に故障と判定された制御対象メモリ３に関して実行される、妥当な第１管理情報の復元処理について説明する。
【０１１６】
図５を参照して、メモリコントローラ２は、ページＰ０〜Ｐ２に関して第２管理情報ＩＤを用いた探索を行うことにより、第２ブロック群Ｒ２の中から、第２管理情報を格納している全てのブロックを特定する。この例では、ブロックＢ１００，Ｂ１５０，Ｂ２００，Ｂ２５０，Ｂ３００，Ｂ３５０が特定される。
【０１１７】
上記と同様に、制御対象メモリ３へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。但し、メモリＩＤに基づいてメモリ種類を特定できる場合には、特定したメモリ種類に対応した適切なアクセス速度でアクセスすればよい。また、復元処理をメモリコントローラ２ではなく外部のホストコンピュータ等を用いて行う場合には、メモリの種類が明らかであるため、そのメモリ種類に対応した適切なアクセス速度でアクセスすればよい。
【０１１８】
次に、メモリコントローラ２は、特定したブロックＢ１００，Ｂ１５０，Ｂ２００，Ｂ２５０，Ｂ３００，Ｂ３５０を対象として、データの誤りが生じているブロックを探索する。具体的には、各ブロックに関して、第２管理情報の全域を読み出し、読み出した第２管理情報の全域に対してＣＲＣ演算を行う。そして、演算により求めたＣＲＣ値と、読み出した第２管理情報内に含まれている全域のＣＲＣ値とを比較する。メモリコントローラ２は、両ＣＲＣ値が一致する場合には、そのブロックは正常ブロックであると判定し、一方、両ＣＲＣ値が一致しない場合には、そのブロックは異常ブロックであると判定する。
【０１１９】
上記と同様に、制御対象メモリ３へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。但し、メモリＩＤに基づいてメモリ種類を特定できる場合や、ホストコンピュータ等を用いて復元処理を行う場合には、メモリ種類に対応した適切なアクセス速度でアクセスすればよい。
【０１２０】
探索の結果、異常ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図５に示した例では、異常ブロックであるブロックＢ２００が候補から除外される。
【０１２１】
次に、メモリコントローラ２は、残った正常ブロックＢ１００，Ｂ１５０，Ｂ２５０，Ｂ３００，Ｂ３５０の中から、最新の第２管理情報が格納されている１個の正常ブロックを選択する。具体的には、各正常ブロックＢ１００，Ｂ１５０，Ｂ２５０，Ｂ３００，Ｂ３５０に格納されている第２管理情報に含まれている第２管理情報ＩＤ値を比較することにより、第２管理情報ＩＤ値が最も大きな第２管理情報を、最新の第２管理情報として特定する。図５に示した例では、第２管理情報（４，４）が最新の第２管理情報であるため、第２管理情報（４，４）を格納しているブロックＢ１００が選択されることとなる。なお、最新の第２管理情報が格納されている正常ブロックが複数存在する場合には、その中の任意の正常ブロック（例えばブロックアドレスが最も小さい正常ブロック）が選択される。また、第２管理情報の更新時刻等を第２管理情報ＩＤ値として用いている場合には、更新時刻等が最も新しい第２管理情報（つまり第２管理情報ＩＤ値が最も大きい第２管理情報）を、最新の第２管理情報として特定することができる。
【０１２２】
次に、メモリコントローラ２は、正常ブロックＢ１００に格納されている第２管理情報に含まれているグループアドレス＜２００，３００＞を参照することにより、ブロックＢ１００，Ｂ２００，Ｂ３００を対象とする多数決を行う。具体的には、各ブロックＢ１００，Ｂ２００，Ｂ３００に格納されている第２管理情報に含まれている第２管理情報ＩＤ値及びＣＲＣ値（グループアドレスを除いた部分のＣＲＣ値）を相互に比較することにより、１回目の多数決を行う。この例では、ブロックＢ２００は正常ブロックではないために多数決の候補から除外され、また、ブロックＢ１００，Ｂ３００に格納されている２個の第２管理情報の第２管理情報ＩＤ値及びＣＲＣ値はそれぞれ（４，４）（１，１）で一致しないため、１回目の多数決は成立しない。
【０１２３】
次に、メモリコントローラ２は、正常ブロックＢ１００を除く正常ブロックＢ１５０，Ｂ２５０，Ｂ３００，Ｂ３５０の中から、二番目に新しい第２管理情報が格納されている１個の正常ブロックを選択する。具体的には、各正常ブロックＢ１５０，Ｂ２５０，Ｂ３００，Ｂ３５０に格納されている第２管理情報に含まれている第２管理情報ＩＤ値を比較することにより、第２管理情報ＩＤ値が最も大きな第２管理情報を、二番目に新しい第２管理情報として特定する。図５に示した例では、第２管理情報（３，３）が二番目に新しい第２管理情報であるため、ブロックＢ１５０，Ｂ２５０，Ｂ３５０の中の任意の１個の正常ブロック（この例ではブロックアドレスが最も小さい正常ブロックＢ１５０）が選択される。
【０１２４】
次にメモリコントローラ２は、正常ブロックＢ１５０に格納されている第２管理情報に含まれているグループアドレス＜２５０，３５０＞を参照することにより、ブロックＢ１５０，Ｂ２５０，Ｂ３５０を対象とする多数決を行う。具体的には、各ブロックＢ１５０，Ｂ２５０，Ｂ３５０に格納されている第２管理情報に含まれている第２管理情報ＩＤ値及びＣＲＣ値（グループアドレスを除いた部分のＣＲＣ値）を相互に比較することにより、２回目の多数決を行う。この例では、ブロックＢ１５０，Ｂ２５０，Ｂ３５０に格納されている３個の第２管理情報の第２管理情報ＩＤ値及びＣＲＣ値はいずれも（３，３）であり、２個以上で一致する。従って、ブロックＢ１５０，Ｂ２５０，Ｂ３５０に格納されている第２管理情報が、妥当な第２管理情報であると判定される。
【０１２５】
なお、全ての正常ブロックＢ１００，Ｂ１５０，Ｂ２５０，Ｂ３００，Ｂ３５０を選択しても妥当な第２管理情報を特定できない場合には、その制御対象メモリ３は故障と判定される。
【０１２６】
次に、メモリコントローラ２は、特定した２個以上の妥当な第２管理情報の中から、任意の１個の第２管理情報を確定する。例えば、ブロックＢ１５０，Ｂ２５０，Ｂ３５０の中でブロックアドレスの最も小さいブロックＢ１５０を選択し、ブロックＢ１５０に格納されている第２管理情報（３，３）を、妥当な第２管理情報として確定する。
【０１２７】
次に、メモリコントローラ２は、確定した妥当な第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を第１ブロック群Ｒ１内に復元する。
【０１２８】
図２１は、図２０に示した例を前提として、第１管理情報の復元処理を示す図である。この例では、妥当な第１管理情報として、最新の第１管理情報（７，７）が復元される。具体的に、メモリコントローラ２は、第１ブロック群Ｒ１のうち先頭から３個の正常ブロック又は無効ブロック（この例ではブロックＢ１〜Ｂ３）のデータを消去し、その後、これらのブロックＢ１〜Ｂ３に第１管理情報（７，７）を書き込む。
【０１２９】
なお、この例ではブロックＢ３には既に第１管理情報（７，７）が格納されているため、ブロックＢ３に対する処理は省略しても良い。また、先頭から３個の正常ブロックに限らず、全ての正常ブロックに対して第１管理情報（７，７）を書き込んでも良い。あるいは、先頭から３個の正常ブロックに対しては第１管理情報（７，７）を書き込み、残りの正常ブロックに対してはデータの消去のみを行っても良い。
【０１３０】
図２１に示した第１ブロック群Ｒ１を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックＢ５，Ｂ９が除外される。次に、無効ブロックであるブロックＢ１０が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。次に、４個の正常ブロックとしてブロックＢ１〜Ｂ４が選択される。
【０１３１】
次に、先頭３個の正常ブロックＢ１〜Ｂ３を対象とする多数決が行われ、その結果、ブロックＢ１〜Ｂ３に格納されている第１管理情報（７，７）が妥当な第１管理情報として特定される。
【０１３２】
次に、ブロックＢ１〜Ｂ３のいずれかに格納されている第１管理情報（７，７）に基づいて、第２ブロック群Ｒ２の中から第２管理情報が読み出される。
【０１３３】
なお、以上の説明では、第２管理情報にグループアドレスを含めることにより、多数決を行う３個の第２管理情報をグループアドレスに基づいて特定した。この例に限らず、ブロックアドレスの小さい順、大きい順、又はランダムに３個の正常ブロックを選択することによって、多数決を行う３個の第２管理情報を特定しても良い。
【０１３４】
＜第２管理情報の更新例＞
図２２，２３は、第２管理情報の更新例を示す図である。更新前の第２ブロック群Ｒ２の構成は、図５に示した状態であったものとする。図５に示した例では、最新の第２管理情報は、ブロックＢ１００に格納されている第２管理情報（４，４）である。
【０１３５】
第２ブロック群Ｒ２内で新たな後天性不良ブロックが発生した等の理由により、第２管理情報を更新する必要が生じた場合には、メモリコントローラ２は、ブロックＢ１００，Ｂ２００，Ｂ３００から成る第１ブロックセット、又は、ブロックＢ１５０，Ｂ２５０，Ｂ３５０から成る第２ブロックセットに、更新後の第２管理情報（５，５）を上書きする。図２２に示した例では、第１ブロックセットに更新後の第２管理情報（５，５）が上書きされている。但し、ブロックＢ２００が後天性不良ブロックであることが判明しているため、ブロックＢ２００に代えて、第２ブロック群Ｒ２内の別の任意のブロック（この例ではブロックＢ２１０）に、第２管理情報（５，５）が書き込まれている。
【０１３６】
また、例えばブロックＢ３００へ第２管理情報（５，５）を書き込んでいる最中にブロックＢ３００が後天性不良ブロックとなった場合には、メモリコントローラ２は、図２３に示すように、第２ブロック群Ｒ２内の別の任意のブロック（この例ではブロックＢ３１０）を選択し、ブロックＢ１００，Ｂ２１０，Ｂ３１０に、更新後の第２管理情報（６，６）を書き込む。この更新には、グループアドレス及び不良ブロックアドレスの更新が含まれる。また、この場合には第２管理情報の格納ブロックが変更されるため、第１管理情報の更新も必要となる。
【０１３７】
＜実施の形態２＞
以下、本発明の実施の形態２に係る半導体記憶装置１について、上記実施の形態１との相違点を中心に説明する。
【０１３８】
上記実施の形態１と同様に、第１管理情報には、第２管理情報の格納ブロックを示す位置情報が含まれる。また、第１管理情報には、第１管理情報ＩＤが含まれる。また、第１管理情報には、第１ブロック群Ｒ１内の不良ブロックを示す位置情報が含まれる。
【０１３９】
また、本実施の形態では、上記に加えて、第１管理情報には、自身と同一内容の第１管理情報が格納された他の２個のブロックを示す位置情報（グループアドレス）が含まれる。
【０１４０】
さらに、第１管理情報には、誤り検出符号が含まれる。本実施の形態の例では、グループアドレスを含めた全域のＣＲＣ値と、グループアドレスを除いた部分のＣＲＣ値とが、第１管理情報内に含められる。グループアドレスを含めた全域のＣＲＣ値は、その第１管理情報にデータの誤りが生じているか否かの判定に使用される。また、グループアドレスを除いた部分のＣＲＣ値は、妥当な第１管理情報を特定するための多数決に使用される。
【０１４１】
以下、本実施の形態に係る半導体記憶装置１に関して、（１）管理情報の格納例、（２）管理情報の取得処理、（３）管理情報の更新処理を、順に説明する。
【０１４２】
（１）管理情報の格納例
図２４は、第１ブロック群Ｒ１を示す図である。この例において、ブロックＢ１，Ｂ５は先天性不良ブロックであり、ブロックＢ２，Ｂ４は無効ブロックであり、ブロックＢ１０は消去済みブロックである。
【０１４３】
ブロックＢ３，Ｂ６〜Ｂ９には第１管理情報が格納されている。第１管理情報に付した丸括弧内の数字は、第１管理情報ＩＤ値及び全域のＣＲＣ値を示している。第１管理情報に付した山括弧内の数字は、グループアドレスを示している。例えば、ブロックＢ７に第１管理情報（３，３）を書き込む際に、ブロックＢ２，Ｂ４にも同一内容の第１管理情報（３，３）が書き込まれたことを意味している。
【０１４４】
（２）管理情報の取得処理
図２５〜３０は、半導体記憶装置１の起動時にメモリコントローラ２が実行する管理情報の取得処理を順に示す図である。第１ブロック群Ｒ１は、図２４に示した状態になっているものとする。
【０１４５】
まず、メモリコントローラ２は、メモリＩＤを要求するリードコマンドを制御対象メモリ３に発行することにより、制御対象メモリ３からメモリＩＤを取得する。
【０１４６】
＜先天性不良ブロックの探索ステップ＞
次に図２５を参照して、メモリコントローラ２は、第１ブロック群Ｒ１に属する全てのブロックＢ１〜Ｂ１０を対象として、先天性不良ブロックを探索する。
【０１４７】
探索の結果、ブロックＢ１〜Ｂ１０内に先天性不良ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図２５に示した例では、先天性不良ブロックであるブロックＢ１，Ｂ５が候補から除外される。
【０１４８】
＜無効ブロックの探索ステップ＞
次に図２６を参照して、メモリコントローラ２は、良ブロックＢ２〜Ｂ４，Ｂ６〜Ｂ１０を対象として、無効ブロックを探索する。
【０１４９】
探索の結果、良ブロック内に無効ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図２６に示した例では、無効ブロックであるブロックＢ２，Ｂ４が候補から除外される。
【０１５０】
＜異常ブロックの探索ステップ＞
次に図２７を参照して、メモリコントローラ２は、有効ブロックＢ３，Ｂ６〜Ｂ１０を対象として、データの誤りが生じているブロックを探索する。具体的には、各有効ブロックに関して、第１管理情報の格納ページにアクセスして第１管理情報を読み出し、グループアドレスを含めた第１管理情報の全域に対してＣＲＣ演算を行う。そして、演算により求めた全域のＣＲＣ値と、読み出した第１管理情報内に含まれている全域のＣＲＣ値とを比較する。メモリコントローラ２は、両ＣＲＣ値が一致する場合には、そのブロックは正常ブロックであると判定し、一方、両ＣＲＣ値が一致しない場合には、そのブロックは異常ブロックであると判定する。
【０１５１】
探索の結果、有効ブロック内に異常ブロックが存在している場合には、メモリコントローラ２は、そのブロックを取得対象ブロックの候補から除外する。図２７に示した例では、異常ブロックであるブロックＢ６，Ｂ１０が候補から除外される。
【０１５２】
＜妥当な第１管理情報の特定ステップ＞
次に図２８を参照して、メモリコントローラ２は、残った正常ブロックＢ３，Ｂ７〜Ｂ９の中から１個の正常ブロックを任意に選択する。例えば、ブロックアドレスが最も小さい正常ブロックＢ３を選択する。そして、正常ブロックＢ３に格納されている第１管理情報に含まれているグループアドレス＜４，６＞を参照することにより、ブロックＢ３，Ｂ４，Ｂ６を対象とする多数決を行う。具体的には、各ブロックＢ３，Ｂ４，Ｂ６に格納されている第１管理情報に含まれている第１管理情報ＩＤ値及びＣＲＣ値（グループアドレスを除いた部分のＣＲＣ値）を相互に比較することにより、１回目の多数決を行う。この例では、ブロックＢ４，Ｂ６は正常ブロックではなく、多数決の候補から除外されるため、１回目の多数決は成立しない。
【０１５３】
次に図２９を参照して、メモリコントローラ２は、正常ブロックＢ３，Ｂ７〜Ｂ９の中から次の正常ブロックを任意に選択する。例えば、ブロックアドレスが次に小さい正常ブロックＢ７を選択する。そして、正常ブロックＢ７に格納されている第１管理情報に含まれているグループアドレス＜２，４＞を参照することにより、ブロックＢ２，Ｂ４，Ｂ７を対象とする多数決を行う。具体的には、各ブロックＢ２，Ｂ４，Ｂ７に格納されている第１管理情報に含まれている第１管理情報ＩＤ値及びＣＲＣ値（グループアドレスを除いた部分のＣＲＣ値）を相互に比較することにより、２回目の多数決を行う。この例では、ブロックＢ２，Ｂ４は正常ブロックではなく、多数決の候補から除外されるため、２回目の多数決は成立しない。
【０１５４】
次に図３０を参照して、メモリコントローラ２は、正常ブロックＢ３，Ｂ７〜Ｂ９の中から次の正常ブロックを任意に選択する。例えば、ブロックアドレスが次に小さい正常ブロックＢ８を選択する。そして、正常ブロックＢ８に格納されている第１管理情報に含まれているグループアドレス＜９，１０＞を参照することにより、ブロックＢ８〜Ｂ１０を対象とする多数決を行う。具体的には、各ブロックＢ８〜Ｂ１０に格納されている第１管理情報に含まれている第１管理情報ＩＤ値及びＣＲＣ値（グループアドレスを除いた部分のＣＲＣ値）を相互に比較することにより、３回目の多数決を行う。この例では、ブロックＢ１０は正常ブロックではないため多数決の候補から除外されるが、ブロックＢ８，Ｂ９に格納されている２個の第１管理情報の第１管理情報ＩＤ値及びＣＲＣ値はいずれも（４，４）であり、２個以上で一致する。従って、ブロックＢ８，Ｂ９に格納されている第１管理情報が、妥当な第１管理情報であると判定される。
【０１５５】
なお、全ての正常ブロックＢ３，Ｂ７〜Ｂ９を選択しても妥当な第１管理情報を特定できない場合には、メモリコントローラ２は、上記実施の形態１と同様に、その制御対象メモリ３を暫定的に故障であると判定する。暫定的に故障と判定された制御対象メモリ３に関しては、妥当な第１管理情報の復元処理が実行される。復元処理は、外部のホストコンピュータ等を用いて実行しても良い。復元処理を実行しても妥当な第１管理情報を復元できない場合には、その制御対象メモリ３は確定的に故障と判定される。
【０１５６】
＜第２管理情報の取得ステップ＞
次に、メモリコントローラ２は、特定した２個以上の妥当な第１管理情報の中から、任意の１個の第１管理情報を確定する。例えば、ブロックＢ８，Ｂ９の中でブロックアドレスの最も小さいブロックＢ８を選択し、ブロックＢ８に格納されている第１管理情報（４，４）を、妥当な第１管理情報として確定する。
【０１５７】
次に、メモリコントローラ２は、確定した妥当な第１管理情報に含まれている位置情報に基づいて、第２ブロック群Ｒ２の中から第２管理情報を読み出すことにより、第２管理情報を取得する。
【０１５８】
（３）管理情報の更新処理
図３１〜３５は、メモリコントローラ２が実行する第１管理情報の更新処理を順に示す図である。
【０１５９】
図３１を参照して、現在有効な第１管理情報は、ブロックＢ８，Ｂ９に格納されている第１管理情報（４，４）である。また、起動時に妥当な第１管理情報を特定するための多数決の候補となった第１管理情報は、多数決対象ブロックＢ８〜Ｂ１０に格納されている第１管理情報である。
【０１６０】
次に図３２を参照して、メモリコントローラ２は、第１ブロック群Ｒ１の中から空きブロックを確保する。具体的には、ブロックＢ１〜Ｂ１０の中から、先天性不良ブロック、後天性不良ブロック、及び多数決対象ブロックを除外して、３個の空きブロックを確保する。この例では、ブロックＢ２，Ｂ４，Ｂ７が、空きブロックとして確保される。
【０１６１】
次に図３３を参照して、メモリコントローラ２は、３個の空きブロックの中の任意の１個の空きブロックのデータを消去した後、グループアドレスを含む更新後の第１管理情報をそのブロックに書き込む。この例では、ブロックＢ２のデータが消去された後に、ブロックＢ４，Ｂ７を示すグループアドレス＜４，７＞を含む第１管理情報（５，５）＜４，７＞が、ブロックＢ２に書き込まれる。
【０１６２】
次に図３４を参照して、メモリコントローラ２は、３個の多数決対象ブロックの中の任意の１個のブロックに対して、無効フラグを付加する。この例では、ブロックＢ８に無効フラグが付加される。
【０１６３】
次に図３５を参照して、メモリコントローラ２は、３個の空きブロックの中の次の空きブロックＢ４のデータを消去した後、グループアドレス＜２，７＞を含む第１管理情報（５，５）＜２，７＞を、そのブロックＢ４に書き込む。その後、３個の多数決対象ブロックの中の次のブロックＢ９に対して、無効フラグを付加する。次に、メモリコントローラ２は、３個の空きブロックの中の最後の空きブロックＢ７のデータを消去した後、グループアドレス＜２，４＞を含む第１管理情報（５，５）＜２，４＞を、そのブロックＢ７に書き込む。その後、３個の多数決対象ブロックの中の最後のブロックＢ１０に対して、無効フラグを付加する。これにより、３個の空きブロックＢ２，Ｂ４，Ｂ７に同一内容の第１管理情報（５，５）が格納される。
【０１６４】
＜実施の形態２の具体例１＞
図３６は、第１ブロック群Ｒ１の他の例を示す図である。この例において、ブロックＢ５，Ｂ９は先天性不良ブロックであり、ブロックＢ１，Ｂ２，Ｂ１０は無効ブロックである。また、ブロックＢ４，Ｂ８は後天性不良ブロックである。但し、ブロックＢ４，Ｂ８に関しては第１管理情報ＩＤ値とＣＲＣ値とが一致している。また、ブロックＢ３には第１管理情報（６，６）＜６，７＞が格納されており、ブロックＢ６には第１管理情報（６，６）＜３，７＞が格納されており、ブロックＢ７には第１管理情報（６，６）＜３，６＞が格納されている。
【０１６５】
図３６に示した第１ブロック群Ｒ１を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックＢ５，Ｂ９が除外される。次に、無効ブロックであるブロックＢ１，Ｂ２，Ｂ１０が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。
【０１６６】
次に、先頭の正常ブロックＢ３が選択され、その正常ブロックＢ３と、グループアドレス＜６，７＞で示された正常ブロックＢ６，Ｂ７とを対象とする多数決が行われる。その結果、ブロックＢ３，Ｂ６，Ｂ７に格納されている第１管理情報（６，６）が妥当な第１管理情報として特定される。
【０１６７】
次に、ブロックＢ３，Ｂ６，Ｂ７のいずれかに格納されている第１管理情報（６，６）に基づいて、第２ブロック群Ｒ２の中から第２管理情報が読み出される。
【０１６８】
＜実施の形態２の具体例２＞
図３７は、第１ブロック群Ｒ１の他の例を示す図である。この例において、ブロックＢ５，Ｂ９は先天性不良ブロックであり、ブロックＢ１，Ｂ２，Ｂ１０は無効ブロックである。また、ブロックＢ４，Ｂ６は後天性不良ブロックである。但し、ブロックＢ４，Ｂ６に関しては第１管理情報ＩＤ値とＣＲＣ値とが一致している。また、ブロックＢ３には第１管理情報（７，７）＜７，８＞が格納されており、ブロックＢ７には第１管理情報（７，７）＜３，８＞が格納されており、ブロックＢ８には第１管理情報（７，７）＜３，７＞が格納されている。
【０１６９】
図３７に示した第１ブロック群Ｒ１を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックＢ５，Ｂ９が除外される。次に、無効ブロックであるブロックＢ１，Ｂ２，Ｂ１０が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。
【０１７０】
次に、先頭の正常ブロックＢ３が選択され、その正常ブロックＢ３と、グループアドレス＜７，８＞で示された正常ブロックＢ７，Ｂ８とを対象とする多数決が行われる。その結果、ブロックＢ３，Ｂ７，Ｂ８に格納されている第１管理情報（７，７）が妥当な第１管理情報として特定される。
【０１７１】
次に、ブロックＢ３，Ｂ７，Ｂ８のいずれかに格納されている第１管理情報（７，７）に基づいて、第２ブロック群Ｒ２の中から第２管理情報が読み出される。
【０１７２】
同様のケースである上記実施の形態１の具体例２（図２０）では、妥当な第１管理情報を特定できなかった。これに対して図３７の例では、グループアドレスに基づく多数決を行うことによって、妥当な第１管理情報の特定に成功している。
【０１７３】
＜変形例１＞
図３８は、変形例１に係る半導体記憶装置１の構成を簡略化して示す図である。半導体記憶装置１は、メモリコントローラ２と、メモリコントローラ２によって制御される複数個の制御対象メモリ（図３８の例では４個の制御対象メモリ３Ａ〜３Ｄ）とを備えている。
【０１７４】
このようなシステム構成においては、データサイズが大きい第２管理情報を複数に分割し、各分割片を複数の制御対象メモリに分散して格納しても良い。図３８に示した例では、各第２管理情報は、３個の第２管理情報片１２１〜１２３に分割されている。第１管理情報１１は制御対象メモリ３Ａに格納され、第２管理情報片１２１は制御対象メモリ３Ｂに格納され、第２管理情報片１２２は制御対象メモリ３Ｃに格納され、第２管理情報片１２３は制御対象メモリ３Ｄに格納される。第１管理情報１１には、個々の第２管理情報毎に、各第２管理情報片１２１〜１２３の所在を示す位置情報が含まれている。また、第１管理情報１１には、第２管理情報の分割数（つまり１個の第２管理情報に対応する第２管理情報片の個数）に関する情報が含まれている。第２管理情報を読み出す場合には、第２管理情報片１２１〜１２３が制御対象メモリ３Ｂ〜３Ｄから並列に読み出される。なお、第１管理情報１１が格納されている制御対象メモリ３Ａには、第１管理情報１１に加えて第２管理情報片が格納されても良い。また、第１管理情報１１は、制御対象メモリ３Ａに限らず、他の制御対象メモリ３Ｂ〜３Ｄに格納されても良い。
【０１７５】
図３９は、制御対象メモリ３Ｂ〜３Ｄに格納されている第２管理情報片の第１の例を示す図である。第２管理情報Ｘ１を構成する３個の第２管理情報片Ｘ１１，Ｘ１２，Ｘ１３が、制御対象メモリ３Ｂ，３Ｃ，３Ｄのブロックｂ，ｈ，ｋ（ブロックアドレスｂ，ｈ，ｋ）にそれぞれ格納されている。また、第２管理情報Ｘ２を構成する３個の第２管理情報片Ｘ２１，Ｘ２２，Ｘ２３が、制御対象メモリ３Ｂ，３Ｃ，３Ｄのブロックｄ，ｇ，ｏ（ブロックアドレスｄ，ｇ，ｏ）にそれぞれ格納されている。また、第２管理情報Ｘ３を構成する３個の第２管理情報片Ｘ３１，Ｘ３２，Ｘ３３が、制御対象メモリ３Ｂ，３Ｃ，３Ｄのブロックｅ，ｉ，ｍ（ブロックアドレスｅ，ｉ，ｍ）にそれぞれ格納されている。また、第２管理情報Ｙ１を構成する３個の第２管理情報片Ｙ１１，Ｙ１２，Ｙ１３が、制御対象メモリ３Ｂ，３Ｃ，３Ｄのブロックａ，ｆ，ｎ（ブロックアドレスａ，ｆ，ｎ）にそれぞれ格納されている。また、第２管理情報Ｚ１を構成する３個の第２管理情報片Ｚ１１，Ｚ１２，Ｚ１３が、制御対象メモリ３Ｂ，３Ｃ，３Ｄのブロックｃ，ｊ，ｌ（ブロックアドレスｃ，ｊ，ｌ）にそれぞれ格納されている。
【０１７６】
第２管理情報Ｘ１，Ｘ２，Ｘ３は、互いに対応する同一内容の第２管理情報である。また、図中の鉤括弧内のアルファベットは、分割された他の２個の第２管理情報片が格納されているブロックアドレス（以下「メモリ間グループアドレス」と称す）を示している。例えば、第２管理情報Ｘ１は３個の第２管理情報片Ｘ１１，Ｘ１２，Ｘ１３に分割され、第２管理情報片Ｘ１１，Ｘ１２，Ｘ１３はブロックｂ，ｈ，ｋにそれぞれ格納されているため、第２管理情報片Ｘ１１は「ｈ，ｋ」なるメモリ間グループアドレスを含み、第２管理情報片Ｘ１２は「ｂ，ｋ」なるメモリ間グループアドレスを含み、第２管理情報片Ｘ１３は「ｂ，ｈ」なるメモリ間グループアドレスを含んでいる。
【０１７７】
以下、妥当な第１管理情報の復元処理について説明する。以下の例では、復元処理をメモリコントローラ２によって行う場合について説明するが、上記と同様に、外部のホストコンピュータ等を用いて復元処理を行うこともできる。
【０１７８】
まず、メモリコントローラ２は、制御対象メモリ３Ｂの中から、第２管理情報片を格納しているブロックａ，ｂ，ｃ，ｄ，ｅを特定する。
【０１７９】
次に、メモリコントローラ２は、ブロックａ，ｂ，ｃ，ｄ，ｅの中から異常ブロックを除外する処理を行う。但しこの例では、ブロックａ，ｂ，ｃ，ｄ，ｅの中に異常ブロックは存在しないものとする。
【０１８０】
次に、メモリコントローラ２は、ブロックａ，ｂ，ｃ，ｄ，ｅの中から１個のブロックを任意に選択する。例えば、ブロックアドレスが最も小さいブロックａを選択する。次に、ブロックａから第２管理情報片Ｙ１１を読み出した後、第２管理情報片Ｙ１１に含まれているメモリ間グループアドレス「ｆ，ｎ」を参照することにより、ブロックｆ，ｎから第２管理情報片Ｙ１２，Ｙ１３をそれぞれ読み出す。次に、第２管理情報Ｙ１１，Ｙ１２，Ｙ１３を結合することによって第２管理情報Ｙ１を復元する。なお、メモリコントローラ２は、ブロックｆ，ｎについても異常ブロックか否かの判定を行い、ブロックｆ，ｎの少なくとも一方が異常ブロックである場合には、第２管理情報Ｙ１の復元を行わない。但しこの例では、ブロックｆ，ｎは異常ブロックではないものとする。他のブロックｇ〜ｍ，ｏについても同様である。
【０１８１】
次に、メモリコントローラ２は、第２管理情報Ｙ１に含まれているグループアドレス＜ｂ，ｃ＞を参照することにより、ブロックｂ，ｃから第２管理情報片Ｘ１１，Ｚ１１をそれぞれ読み出す。次に、第２管理情報片Ｘ１１に含まれているメモリ間グループアドレス「ｈ，ｋ」を参照することにより、ブロックｈ，ｋから第２管理情報片Ｘ１２，Ｘ１３をそれぞれ読み出す。次に、第２管理情報片Ｘ１１，Ｘ１２，Ｘ１３を結合することによって第２管理情報Ｘ１を復元する。また、第２管理情報片Ｚ１１に含まれているメモリ間グループアドレス「ｊ，ｌ」を参照することにより、ブロックｊ，ｌから第２管理情報片Ｚ１２，Ｚ１３をそれぞれ読み出す。次に、第２管理情報片Ｚ１１，Ｚ１２，Ｚ１３を結合することによって第２管理情報Ｚ１を復元する。
【０１８２】
次に、メモリコントローラ２は、復元した第２管理情報Ｙ１，Ｘ１，Ｚ１を対象とする多数決を行うが、図３９の例ではこの多数決は成立しない。
【０１８３】
次に、メモリコントローラ２は、ブロックａ，ｂ，ｃ，ｄ，ｅの中から次のブロックを任意に選択する。例えば、ブロックアドレスが次に小さいブロックｂを選択する。次に、ブロックｂから第２管理情報片Ｘ１１を読み出した後、第２管理情報片Ｘ１１に含まれているメモリ間グループアドレス「ｈ，ｋ」を参照することにより、ブロックｈ，ｋから第２管理情報片Ｘ１２，Ｘ１３をそれぞれ読み出す。次に、第２管理情報Ｘ１１，Ｘ１２，Ｘ１３を結合することによって第２管理情報Ｘ１を復元する。なお、上述のステップで第２管理情報Ｘ１はすでに復元されているので、このステップでの第２管理情報Ｘ１の復元処理は省略しても良い。
【０１８４】
次に、メモリコントローラ２は、第２管理情報Ｘ１に含まれているグループアドレス＜ｄ，ｅ＞を参照することにより、ブロックｄ，ｅから第２管理情報片Ｘ２１，Ｘ３１をそれぞれ読み出す。次に、第２管理情報片Ｘ２１に含まれているメモリ間グループアドレス「ｇ，ｏ」を参照することにより、ブロックｇ，ｏから第２管理情報片Ｘ２２，Ｘ２３をそれぞれ読み出す。次に、第２管理情報片Ｘ２１，Ｘ２２，Ｘ２３を結合することによって第２管理情報Ｘ２を復元する。また、第２管理情報片Ｘ３１に含まれているメモリ間グループアドレス「ｉ，ｍ」を参照することにより、ブロックｉ，ｍから第２管理情報片Ｘ３２，Ｘ３３をそれぞれ読み出す。次に、第２管理情報片Ｘ３１，Ｘ３２，Ｘ３３を結合することによって第２管理情報Ｘ３を復元する。
【０１８５】
次に、メモリコントローラ２は、復元した第２管理情報Ｘ１，Ｘ２，Ｘ３を対象とする多数決を行う。図３９の例ではこの多数決は成立するため、メモリコントローラ２は、第２管理情報Ｘ１，Ｘ２，Ｘ３を妥当な第２管理情報と判定する。
【０１８６】
次に、メモリコントローラ２は、妥当な第２管理情報Ｘ１，Ｘ２，Ｘ３の中から任意の１個の第２管理情報を確定し、確定した妥当な第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を制御対象メモリ３Ａ内に復元する。
【０１８７】
なお、図３９には、制御対象メモリ３Ｂに格納されている第２管理情報片にグループアドレスが含まれている例を示したが、この例に限らず、グループアドレスは、制御対象メモリ３Ｂ〜３Ｄの少なくとも一つに格納されている第２管理情報片に含まれていればよい。例えば、グループアドレス＜ｂ，ｃ＞は、第２管理情報片Ｙ１１ではなく第２管理情報片Ｙ１２又は第２管理情報片Ｙ１３に含まれていても良い。
【０１８８】
図４０は、制御対象メモリ３Ｂ〜３Ｄに格納されている第２管理情報片の第２の例を示す図である。図４０の例では、第２管理情報片にはメモリ間グループアドレスが含まれておらず、その代わりに、各々の第２管理情報片にグループアドレスが含まれている。例えば、第２管理情報片Ｘ１１，Ｘ２１，Ｘ３１には＜ｄ，ｅ＞＜ｂ，ｅ＞＜ｂ，ｄ＞なるグループアドレスが含まれており、これにより、同一内容の第２管理情報片が格納された制御対象メモリ３Ｂ内のブロックを特定可能である。また、各第２管理情報片には、分割前の第２管理情報を特定可能なＩＤ値が含まれている。例えば、第２管理情報片Ｘ１１，Ｘ１２，Ｘ１３には「Ｘ１１」「Ｘ１２」「Ｘ１３」なるＩＤ値がそれぞれ含まれており、これにより、分割前の第２管理情報が第２管理情報Ｘ１であることを特定可能である。
【０１８９】
以下、妥当な第１管理情報の復元処理について説明する。以下の例では、復元処理をメモリコントローラ２によって行う場合について説明するが、上記と同様に、外部のホストコンピュータ等を用いて復元処理を行うこともできる。
【０１９０】
まず、メモリコントローラ２は、制御対象メモリ３Ｂの中から、第２管理情報片を格納しているブロックａ，ｂ，ｃ，ｄ，ｅを特定する。
【０１９１】
次に、メモリコントローラ２は、ブロックａ，ｂ，ｃ，ｄ，ｅの中から異常ブロックを除外する処理を行う。但しこの例では、ブロックａ，ｂ，ｃ，ｄ，ｅの中に異常ブロックは存在しないものとする。
【０１９２】
次に、メモリコントローラ２は、ブロックａ，ｂ，ｃ，ｄ，ｅの中から１個のブロックを任意に選択する。例えば、ブロックアドレスが最も小さいブロックａを選択する。次に、ブロックａから第２管理情報片Ｙ１１を読み出した後、第２管理情報片Ｙ１１に含まれているグループアドレス＜ｂ，ｃ＞を参照することにより、ブロックｂ，ｃから第２管理情報片Ｘ１１，Ｚ１１をそれぞれ読み出す。
【０１９３】
次に、メモリコントローラ２は、第２管理情報片Ｙ１１，Ｘ１１，Ｚ１１を対象とする多数決を行うが、図４０の例ではこの多数決は成立しない。
【０１９４】
次に、メモリコントローラ２は、ブロックａ，ｂ，ｃ，ｄ，ｅの中から次のブロックを任意に選択する。例えば、ブロックアドレスが次に小さいブロックｂを選択する。次に、ブロックｂから第２管理情報片Ｘ１１を読み出した後、第２管理情報片Ｘ１１に含まれているグループアドレス＜ｄ，ｅ＞を参照することにより、ブロックｄ，ｅから第２管理情報片Ｘ２１，Ｘ３１をそれぞれ読み出す。
【０１９５】
次に、メモリコントローラ２は、第２管理情報片Ｘ１１，Ｘ２１，Ｘ３１を対象とする多数決を行う。図４０の例ではこの多数決は成立するため、メモリコントローラ２は、第２管理情報片Ｘ１１，Ｘ２１，Ｘ３１を妥当な第２管理情報片と判定する。
【０１９６】
メモリコントローラ２は、制御対象メモリ３Ｃ，３Ｄについても、制御対象メモリ３Ｂと同様の処理を行う。その結果、制御対象メモリ３Ｃに関しては、第２管理情報片Ｘ１２，Ｘ２２，Ｘ３２が妥当な第２管理情報片と判定され、制御対象メモリ３Ｄに関しては、第２管理情報片Ｘ１３，Ｘ２３，Ｘ３３が妥当な第２管理情報片と判定される。
【０１９７】
次に、メモリコントローラ２は、各第２管理情報片Ｘ１１〜Ｘ１３，Ｘ２１〜Ｘ２３，Ｘ３１〜Ｘ３３に含まれているＩＤ値に基づいて、対応する第２管理情報片同士を結合することにより、妥当な第２管理情報Ｘ１，Ｘ２，Ｘ３を復元する。
【０１９８】
次に、メモリコントローラ２は、妥当な第２管理情報Ｘ１，Ｘ２，Ｘ３の中から任意の１個の第２管理情報を確定し、確定した妥当な第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を制御対象メモリ３Ａ内に復元する。
【０１９９】
＜変形例２＞
上記実施の形態１，２では、管理情報を第１管理情報と第２管理情報との２つに分割する例について述べたが、３つ以上に分割しても良い。例えば３つに分割する場合には、書き換え頻度が低い情報を第１管理情報内に含め、書き換え頻度が中程度の情報を第２管理情報内に含め、書き換え頻度が高い情報を第３管理情報内に含める。第１管理情報は、割り当てられるブロック数が少ない第１ブロック群内に格納し、第２管理情報は、割り当てられるブロック数が多い第２ブロック群内に格納し、第３管理情報は、全ブロックのうち第１ブロック群及び第２ブロック群以外の第３ブロック群内（ブロック数は最も多い）に格納する。
【０２００】
＜変形例３＞
上記実施の形態１，２では、第１ブロック群Ｒ１として割り当てられるブロックは、ブロックＢ１〜Ｂ１０に限定されている。従って、ブロックＢ１〜Ｂ１０内に先天性不良ブロックが存在している場合には、第１ブロック群Ｒ１内で実際に使用できるブロック数は、先天性不良ブロックの数に応じて減少する。そこで、第１ブロック群を割り当てる際に先天性不良ブロックを除外してもよい。例えばブロックＢ５，Ｂ９が先天性不良ブロックである場合には、ブロックＢ１〜Ｂ４，Ｂ６〜Ｂ８，Ｂ１０〜Ｂ１２を第１ブロック群として割り当てる。
【０２０１】
＜まとめ＞
上記実施の形態１，２に係る半導体記憶装置１によれば、管理情報は、第１ブロック群Ｒ１内に格納される第１管理情報と、第２ブロック群Ｒ２内に格納される第２管理情報とを含む。そして、第２管理情報には、第１ブロック群Ｒ１内において妥当な第１管理情報を特定できない場合に、当該妥当な第１管理情報を第１ブロック群Ｒ１内に復元するための復元情報が含まれる。従って、第１ブロック群Ｒ１内において妥当な第１管理情報を特定できない場合であっても、メモリコントローラ２は、第２管理情報に含まれている復元情報に基づいて、妥当な第１管理情報を第１ブロック群Ｒ１内に復元することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリ３に格納することが可能となる。
【０２０２】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、第２管理情報は、第１管理情報よりも書き換え頻度の高い情報である。書き換え頻度に応じて管理情報を第１管理情報と第２管理情報とに分割し、限定的に割り当てられた第１ブロック群Ｒ１内には、書き換え頻度の低い第１管理情報を格納することにより、第１ブロック群Ｒ１内ではデータの書き換えが頻繁には発生しない。その結果、第１ブロック群Ｒ１内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
【０２０３】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、第１管理情報には、第２管理情報を格納しているブロックを示す位置情報が含まれ、第２管理情報には、不良ブロックを示す位置情報が含まれる。従って、メモリコントローラ２は、第１管理情報を制御対象メモリ３から読み出すことによって、第２管理情報を格納しているブロックを示す位置情報を取得でき、また、当該位置情報に基づいて第２管理情報を制御対象メモリ３から読み出すことによって、不良ブロックを示す位置情報を取得することが可能となる。
【０２０４】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、第１管理情報には、第１ブロック群Ｒ１内の不良ブロックを示す位置情報が含まれ、第２管理情報には、第２ブロック群Ｒ２内の不良ブロックを示す位置情報が含まれる。従って、第２ブロック群Ｒ２内で後天性不良ブロックが発生した場合には、第２管理情報のみを更新すればよく、第１管理情報の更新を省略することができる。
【０２０５】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、第２ブロック群Ｒ２内には、複数の第２所定数個のブロックの各々に、同一内容の第２管理情報が格納されている。従って、第２所定数個のブロックに格納されている第２所定数個の第２管理情報のうちの一つが破壊又は喪失された場合であっても、メモリコントローラ２は、破壊又は喪失されていない残りの第２管理情報を、制御対象メモリ３から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリ３に格納することが可能となる。
【０２０６】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第３所定数個の正常ブロックを、第２ブロック群Ｒ２の中から特定する。そして、特定した第３所定数個の正常ブロックに格納されている第３所定数個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定する。従って、更新が繰り返されることで第２ブロック群Ｒ２内に複数バージョンの第２管理情報が格納されている場合であっても、妥当な第２管理情報を適切に特定することが可能となる。
【０２０７】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第２管理情報を格納している全てのブロックの中から異常ブロックを除外することにより、正常ブロックを特定する。従って、異常ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第２管理情報を適切に特定することが可能となる。
【０２０８】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第３所定数個の正常ブロックの中から３個の正常ブロックを特定し、当該３個の正常ブロックに格納されている３個の第２管理情報の中から、多数決によって１個の妥当な第２管理情報を特定する。このように、多数決を行う対象を３個の第２管理情報に限定することによって、簡易に多数決を行うことができるため、処理の所要時間を短縮することが可能となる。
【０２０９】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、ある１個の正常ブロックに格納されている第２管理情報と、当該第２管理情報に位置情報が記述されている特定の２個のブロックに格納されている２個の第２管理情報とを用いて、多数決を行う。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第２管理情報に限定できるため、多数決によって妥当な第２管理情報を特定できる可能性を高めることが可能となる。
【０２１０】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、特定した３個の正常ブロックを対象とする多数決によっては妥当な第２管理情報を特定できない場合には、他の３個の正常ブロックを特定し直して多数決を行う。これにより、妥当な第２管理情報を特定できる可能性を高めることが可能となる。
【０２１１】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第２管理情報を更新する必要が生じた場合には、更新前の第２管理情報が格納されている第２所定数個のブロックの各々に、更新後の第２管理情報をそれぞれ書き込む。これにより、更新後においても、同一内容の第２所定個数の第２管理情報を、第２ブロック群Ｒ２に格納することが可能となる。
【０２１２】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、更新毎に値が異なるバージョン情報を、第２管理情報に含めて書き込む。従って、バージョン情報を用いて多数決を行うことができ、その結果、妥当な第２管理情報を適切に特定する精度を向上することが可能となる。
【０２１３】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、あるブロックに第２管理情報を書き込む際に当該ブロックが後天性不良ブロックとなった場合には、当該第２管理情報に含めたバージョン情報の値を、以降の更新時には使用しない。従って、バージョン情報の値を生成するためのカウンタ値が一周した場合であっても、後天性不良ブロックに格納されている第２管理情報が、多数決によって妥当な第２管理情報として誤って特定されるという事態を回避することが可能となる。
【０２１４】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第２管理情報の更新時刻に関する時間情報を、第２管理情報に含めて書き込む。従って、時間情報に基づいて最新の第２管理情報を特定でき、その結果、妥当な第２管理情報を適切に特定する精度を向上することが可能となる。
【０２１５】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第２管理情報の誤り検出符号を、第２管理情報に含めて書き込む。従って、誤り検出符号を用いて多数決を行うことができ、その結果、妥当な第２管理情報を適切に特定する精度を向上することが可能となる。また、誤り検出符号を用いてデータの誤りが生じているか否かを判定することができ、その結果、第２ブロック群の中から正常ブロックを特定する際に、データの誤りが生じている異常ブロックを除外することが可能となる。
【０２１６】
また、上記実施の形態１，２に係る半導体記憶装置１によれば、メモリコントローラ２は、第２所定数個のブロックの中の一のブロックに書き込む第２管理情報に、第２所定数個のブロックの中の他のブロックを示す位置情報を含めて書き込む。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第２管理情報に限定できるため、多数決によって妥当な第２管理情報を特定できる可能性を高めることが可能となる。
【符号の説明】
【０２１７】
１  半導体記憶装置
２  メモリコントローラ
３  制御対象メモリ
【図１】
2014035747.tif 000003
【図２】
2014035747.tif 000004
【図３】
2014035747.tif 000005
【図４】
2014035747.tif 000006
【図５】
2014035747.tif 000007
【図６】
2014035747.tif 000008
【図７】
2014035747.tif 000009
【図８】
2014035747.tif 000010
【図９】
2014035747.tif 000011
【図１０】
2014035747.tif 000012
【図１１】
2014035747.tif 000013
【図１２】
2014035747.tif 000014
【図１３】
2014035747.tif 000015
【図１４】
2014035747.tif 000016
【図１５】
2014035747.tif 000017
【図１６】
2014035747.tif 000018
【図１７】
2014035747.tif 000019
【図１８】
2014035747.tif 000020
【図１９】
2014035747.tif 000021
【図２０】
2014035747.tif 000022
【図２１】
2014035747.tif 000023
【図２２】
2014035747.tif 000024
【図２３】
2014035747.tif 000025
【図２４】
2014035747.tif 000026
【図２５】
2014035747.tif 000027
【図２６】
2014035747.tif 000028
【図２７】
2014035747.tif 000029
【図２８】
2014035747.tif 000030
【図２９】
2014035747.tif 000031
【図３０】
2014035747.tif 000032
【図３１】
2014035747.tif 000033
【図３２】
2014035747.tif 000034
【図３３】
2014035747.tif 000035
【図３４】
2014035747.tif 000036
【図３５】
2014035747.tif 000037
【図３６】
2014035747.tif 000038
【図３７】
2014035747.tif 000039
【図３８】
2014035747.tif 000040
【図３９】
2014035747.tif 000041
【図４０】
2014035747.tif 000042