(57)【特許請求の範囲】
【請求項１】
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリにおける予め定められたメモリ領域毎に計数し、当該誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする更生部を有し、
前記更生部は、前記誤りビット数が前記閾値よりも大である更生限界ビット数よりも大きい前記メモリ領域においては、そのメモリ領域の情報に代えて、当該メモリ領域に対応する前記バックアップ情報を、指定されている提供先に送信する情報更生装置。
【請求項２】
前記更生部は、前記メモリが搭載されている装置が予め定められた稼働状態である場合に、前記バックアップ情報の上書きを行う請求項１記載の情報更生装置。
【請求項３】
前記更生部がバックアップ情報の上書きを行っている期間中に電源が遮断されることを阻止する電源断防止部がさらに設けられている請求項１又は請求項２記載の情報更生装置。
【請求項４】
前記メモリはフラッシュメモリであり、
前記更生部は、前記メモリの前記メモリ領域であるブロック毎に、前記ブロックを複数に区分した区分領域であるページのそれぞれに前記ビット誤りが有るか否かを監視し、前記ビット誤りの有るページの数が予め定められた第１設定値以上である前記ブロックに対しては、当該ブロックに対応する前記バックアップ情報を上書きする請求項１乃至請求項３の何れか一つに記載の情報更生装置。
【請求項５】
前記更生部は、前記メモリにおける前記ビット誤りの有るページの数が予め定められた第２設定値以上である場合には、前記メモリに格納されている前記情報全体を前記バックアップ情報に書き換える請求項４記載の情報更生装置。
【請求項６】
情報と、当該情報に対応するバックアップ情報とを格納するメモリと、
当該メモリから読み出した情報にビット誤りがあった場合に当該ビット誤りを訂正する誤り訂正部と、
請求項１乃至請求項５の何れか一つに記載の情報更生装置と
を備えるメモリ制御システム。
【請求項７】
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数し、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きし、
また、前記誤りビット数が前記閾値よりも大である更生限界ビット数よりも大きい前記メモリ領域においては、そのメモリ領域の情報に代えて、当該メモリ領域に対応する前記バックアップ情報を、指定されている提供先に送信する情報更生方法。
【請求項８】
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数する処理と、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする処理と、
前記誤りビット数が前記閾値よりも大である更生限界ビット数よりも大きい前記メモリ領域においては、そのメモリ領域の情報に代えて、当該メモリ領域に対応する前記バックアップ情報を、指定されている提供先に送信する処理と
をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置等のメモリに関わる情報更生装置、メモリ制御システム、情報更生方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
半導体記憶装置の一つとして、ＮＡＮＤ（Not AND（否定論理積））型フラッシュメモリ（以下、ＮＡＮＤメモリと略して記す）がある。このＮＡＮＤメモリには、データやプログラム等の格納情報の内容が変わってしまうビット化けという現象が発生する。このため、ＮＡＮＤメモリを利用する場合には、そのビット化けに対処する必要がある。例えば、その対処手法の一つとして、ビット化けした情報を、ＥＣＣ（Error Correction Code（誤り訂正符号））を利用して訂正しながらＮＡＮＤメモリを使用するという対処手法がある。
【０００３】
また、特許文献１には、次のような対処手法が示されている。特許文献１に示されている制御部は、ＮＡＮＤメモリから読み出したデータ（情報）に誤りがあった場合には、その誤りを訂正すると共に、訂正した誤り数をＮＡＮＤメモリのブロック毎に計数する。そして、その制御部は、ＮＡＮＤメモリにおいて、誤り数が予め定められた閾値以上になったブロックのリフレッシュ処理を行う。リフレッシュ処理では、制御部は、リフレッシュ処理対象のブロックのデータをＮＡＮＤメモリから読み出し、当該データをＲＡＭ（Random Access Memory）に書き込む。その後に、制御部は、そのリフレッシュ処理対象のブロックのデータ消去を行う。然る後に、制御部は、ＲＡＭから上記ブロックのデータを読み出して、ＮＡＮＤメモリにおける上記データ消去済みのブロックに再び格納する。これにより、リフレッシュ処理が終了する。このようなリフレッシュ処理により、ＮＡＮＤメモリにおけるビット化け等に起因して情報を正確に保持できる期間が短くなるという問題を抑制できる。
【０００４】
さらに、引用文献２には、ブートプログラムが格納されているフラッシュメモリの制御に関する次のような構成が示されている。この引用文献２の構成では、フラッシュメモリコントローラは、フラッシュメモリから読み出したブートプログラムに基づいて、当該ブートプログラムが格納されているフラッシュメモリのブロックが不良であるか否かを判断する。そして、フラッシュメモリコントローラは、ブロックが不良であると判断した場合には、フラッシュメモリの別のブロックに格納されている同じブートプログラムを、前記不良ブロックに格納されていたブートプログラムに代えて、ＣＰＵ（Central Processing Unit）に供給する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６０８１６
【特許文献２】特開２００５−２１５８２４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
引用文献１に示されている手法では、ＮＡＮＤメモリにおいて、リフレッシュ処理対象のブロックから読み出したデータを、リフレッシュ処理後のブロックに格納し直している。つまり、リフレッシュ処理後にブロックに書き込まれるデータは、ビット化け等に因る誤りが訂正されたデータである。このため、当該データに対する信頼性は、誤り訂正が行われたことの無いデータに比べれば、やや低いものである。換言すれば、引用文献１の手法では、情報を正確に保持し続けるといった情報保持性能に関するＮＡＮＤメモリの信頼性が低くなる虞がある。
【０００７】
ところで、ＮＡＮＤメモリにおけるビット化け等の不具合に対する対処手法として、次のような手法がある。例えば、ＮＡＮＤメモリから読み出されたデータの誤り数が予め定められた閾値以上になった場合には、直ちに、そのデータに対応するブロックの使用が中止され、そのブロックに代わって、別のブロックが代替ブロックとして使用されるようになる。
【０００８】
この手法では、ＮＡＮＤメモリから読み出されたデータに上記のような不具合が発生する度に、その不具合発生のブロックの使用が中止され、かつ、代替ブロックが設定される。このため、ＮＡＮＤメモリの使用容量の増加が早く、ＮＡＮＤメモリの記憶容量が不足する事態が発生し易いという問題がある。
【０００９】
本発明は上記課題を解決するために成されたものである。すなわち、本発明の主な目的は、記憶容量が不足する事態を抑制しながら、メモリにおける情報保持性能の信頼性を高めることができる情報更生装置、メモリ制御システム、情報更生方法およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の情報更生装置は、
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリにおける予め定められたメモリ領域毎に計数し、当該誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする更生部を有する。
【００１１】
本発明のメモリ制御システムは、
情報と、当該情報に対応するバックアップ情報とを格納するメモリと、
当該メモリから読み出した情報にビット誤りがあった場合に当該ビット誤りを訂正する誤り訂正部と、
本発明の情報更生装置と
を備える。
【００１２】
本発明の情報更生方法は、
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数し、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする。
【００１３】
本発明のコンピュータプログラムは、
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数する処理と、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする処理と
をコンピュータに実行させる。
【００１４】
なお、本発明の前述した主な目的は、本発明の情報更生装置に対応するメモリ制御システムおよび情報更生方法によっても達成される。また、本発明の主な目的は、本発明の情報更生装置、メモリ制御システムおよび情報更生方法をコンピュータによって実現するコンピュータプログラムによっても達成される。
【発明の効果】
【００１５】
本発明によれば、記憶容量が不足する事態を抑制しながら、メモリにおける情報保持性能の信頼性を高めることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る第１実施形態を説明する図である。
【図２】本発明に係る第２〜第４の実施形態を説明するブロック図である。
【図３】本発明に係る第２実施形態を構成する更生部の動作例を示すフローチャートである。
【図４】更生処理における動作例を示すフローチャートである。
【図５】本発明に係る第３実施形態を構成する更生部の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下に、本発明に係る実施形態を図面を参照して説明する。
【００１８】
（第１実施形態）
以下に、本発明に係る第１実施形態を説明する。図１（ａ）は、本発明に係る第１実施形態の情報更生装置の構成を簡略的に示すブロック図である。第１実施形態の情報更生装置１は、更生部２を有している。
【００１９】
更生部２は、メモリから読み出された情報に含まれるビット誤りの数を、前記メモリにおける予め定められたメモリ領域毎に、誤りビット数として計数する機能を有する。さらに、更生部２は、その誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする機能を有する。
【００２０】
この情報更生装置１は、上記のように、誤りビット数が前記閾値以上であるメモリ領域には、事前に書き込まれていたバックアップ情報を上書きする機能を有する。このため、次のような効果を得ることができる。すなわち、情報更生装置１は、誤りビット数が前記閾値以上になった情報を、バックアップ情報、つまり、ビット誤りが発生する前（事前）の情報に書き換える。換言すれば、情報更生装置１は、誤りビット数が前記閾値以上になった情報を、元の正常な状態に戻す（更生する）ことができる。これにより、情報更生装置１は、メモリの情報保持性能に対する信頼性を高めることができる。
【００２１】
また、情報更生装置１は、誤りビット数が前記閾値以上になったメモリ領域に関し、当該メモリ領域に代えて別のメモリ領域を直ちに代替メモリ領域として使用するのではなく、そのメモリ領域を再利用している。これにより、情報更生装置１は、代替メモリ領域を利用する場合に発生する問題（つまり、記憶容量が不足する事態が懸念されるという問題）を抑制できる。
【００２２】
情報更生装置１は、例えば、コンピュータが、記憶媒体に格納されたコンピュータプログラム（ソフトウェアプログラム）を実行することにより、実現される。
【００２３】
この第１実施形態の情報更生装置１は、図１（ｂ）に示すようなメモリ制御システムを構築できる。すなわち、このメモリ制御システム４は、情報更生装置１に加えて、メモリ５と、誤り訂正部６とを有している。メモリ５には、情報７が格納されると共に、当該情報７に対応するバックアップ情報８が事前に書き込まれている。誤り訂正部６は、メモリ５から読み出された情報７にビット誤りがあった場合にそのビット誤りを訂正する機能を有している。
【００２４】
このメモリ制御システム４においては、メモリ５から読み出された情報７のビット誤りは誤り訂正部６によって訂正（修復）できる。その上、情報更生装置１によって、前記の如く、誤りビット数が前記閾値以上になったメモリ領域の情報７は元の状態に更生される。これにより、このメモリ制御システム４は、記憶容量が不足する事態を抑制しながら、メモリ５の情報保持性能に対する信頼性を高めることができる。
【００２５】
（第２実施形態）
以下に、本発明に係る第２実施形態を説明する。
【００２６】
図２は、第２実施形態におけるメモリ制御システムの構成を簡略的に示すブロック図である。この第２実施形態におけるメモリ制御システム１０は、実線に示すように、制御装置１１と、メモリコントローラ１２と、一時記憶部１３と、メモリ１４とを有している。当該メモリ制御システム１０は、例えば、携帯電話機や、メモリカード装置や、携帯情報端末（ＰＤＡ（Personal Digital Assistant））などの様々な装置に組み込み可能である。
【００２７】
メモリ１４は、この第２実施形態では、フラッシュメモリの一つであるＮＡＮＤ（Not AND（否定論理積））メモリである。このＮＡＮＤメモリの記憶領域は、構造的あるいは論理的に複数のメモリ領域（以下、ブロックとも記す）に分けられる。各ブロック（メモリ領域）はさらに構造的あるいは論理的に複数の区分領域（以下、ページとも記す）に区分けされる。
【００２８】
メモリ１４は、複数のブロックによる通常使用領域１５と、複数のブロックによるバックアップ領域１６とを有している。この第２実施形態では、通常使用領域１５には、情報の一つであるファームウェア（例えばＯＳ（Operating System））が少なくとも格納されている。バックアップ領域１６にはバックアップ情報が格納されている。そのバックアップ情報とは、通常使用領域１５に情報が新規に書き込まれる際に、バックアップ領域１６にも同様に書き込まれた前記新規の情報（バックアップ用の情報）である。
【００２９】
メモリ１４には、通常使用領域１５に格納されている情報と、当該情報に対応するバックアップ情報との対応関係を示す情報が格納されている。
【００３０】
メモリコントローラ１２は、誤り訂正部１７と、読み書き部１８とを有している。読み書き部１８は、制御装置１１からの指示に応じて、メモリ１４から情報を読み出す機能と、メモリ１４に情報を書き込む機能とを有する。誤り訂正部１７は、メモリ１４から読み出された情報にビット誤り（例えばビット化け）があるか否かを判断する機能を備えている。さらに、誤り訂正部１７は、上記読み出された情報のビット誤りを訂正する機能を有している。この誤り訂正部１７によるビット誤り有無判断およびビット誤り訂正は、例えば、前記情報に付与されるＥＣＣ（Error Correction Code（誤り訂正符号））を利用して行われる。なお、誤り訂正部１７が検知したり、訂正する情報のビット誤りを、以下、ＥＣＣエラーとも記す。
【００３１】
一時記憶部１３は、制御装置１１が利用する情報を格納する記憶部であり、例えば、ＲＡＭ（Random Access Memory）により構成される。
【００３２】
制御装置１１は、例えば、ＣＰＵ（Central Processing Unit）により構成される。この制御装置１１は、メモリ制御システム１０の動作を制御する機能を備える。さらに、当該制御装置１１は、そればかりでなく、メモリ制御システム１０が組み込まれる装置（例えば、前述した携帯電話機や携帯情報端末などの装置（以下、システム搭載装置とも記す））の動作をも制御する機能を備える。すなわち、この第２実施形態では、制御装置１１は、装置制御部２０と、内蔵メモリ２１と、更生部２２とを有している。
【００３３】
装置制御部２０は、システム搭載装置の全体的な主な動作を制御する機能を備えている。この第２実施形態では、例えば、メモリ１４からメモリコントローラ１２によって読み出されて一時記憶部１３に格納されたファームウェア等のコンピュータプログラムに基づいて制御装置１１が動作することによって、装置制御部２０が実現される。
【００３４】
内蔵メモリ２１は、制御装置１１に内蔵されている不揮発性の記憶装置である。この内蔵メモリ２１には、コンピュータプログラム（以下、略してプログラムとも記す）２４であるＢＩＯＳ（Basic Input/Output System）が格納されている。この第２実施形態では、内蔵メモリ２１に格納されるＢＩＯＳの一つとして、メモリ制御ＢＩＯＳがある。このメモリ制御ＢＩＯＳは、次に述べる更生部２２が実行する制御手順を示すプログラムであり、当該プログラムに従って制御装置（ＣＰＵ）が動作することにより、更生部２２が実現される。なお、内蔵メモリ２１に格納されているプログラム（ＢＩＯＳ）は装置制御部２０にも参照される。
【００３５】
更生部２２は、誤り訂正部１７から取得した情報に基づき、メモリ１４から読み出された情報におけるビット誤り（ＥＣＣエラー）の数（誤りビット数）Ｅbをブロック単位で計数する機能を備えている。
【００３６】
更生部２２は、さらに、ブロック毎の誤りビット数Ｅbが予め定められた閾値Ｓp以上であるか否かを判断する機能を備えている。その閾値Ｓpは、メモリ１４に対して後述する更生処理（代替処理）を行うか否かを判断する数値である。例えば、各ブロックにおいて、４ビット（Bit）まではＥＣＣエラーを訂正できる場合に、その訂正可能な限界値よりも小さい適宜な値（例えば３ビット）が閾値Ｓpとして設定される。
【００３７】
さらに、更生部２２は、ブロック毎の誤りビット数Ｅbが予め定まる更生限界ビット数Ｕpよりも大きいか否かを判断する機能を備えている。その更生限界ビット数Ｕpは、各ブロックにおいてＥＣＣエラーを訂正できる限界値であり、メモリ１４の構造等により予め定まる。当該更生限界ビット数Ｕpは、閾値Ｓpよりも大きい値であり、例えば４ビットである。なお、誤りビット数Ｅbが更生限界ビット数Ｕpよりも大きいエラーは、UNCORRECTABLエラーと呼ばれる場合がある。また、誤りビット数Ｅbが更生限界ビット数Ｕp以下のエラーは、CORRECTABLエラーと呼ばれる場合がある。
【００３８】
さらに、更生部２２は、誤りビット数Ｅbが閾値Ｓp以上かつ更生限界ビット数Ｕp以下（Ｕp≧Ｅb≧Ｓp）であるブロック（以下、更生対象ブロックとも記す）があった場合に、その更生対象ブロックに、次のような処理を行う機能を備えている。つまり、更生部２２は、更生対象ブロックに、更生処理が必要であることを示すフラグ（以下、更生対象フラグと記す）をメモリコントローラ１２の読み書き部１８を利用して設定する（付与する）。
【００３９】
さらに、更生部２２は、メモリコントローラ１２に指示し当該メモリコントローラ１２によって、更生対象ブロックに対して更生処理を行う機能を備えている。その更生処理（代替処理）では、まず、メモリコントローラ１２の読み書き部１８によって更生対象ブロックが初期化される（データ消去される）。また、読み書き部１８によって、その更生処理対象ブロックに格納されている情報に対応するバックアップ情報がメモリ１４のバックアップ領域１６から読み出される。そして、当該バックアップ情報が、読み書き部１８によって、前記初期化済みのブロックに書き込まれる（上書きされる）。更生処理は、更生部２２からの指示に応じたメモリコントローラ１２の上記のような動作によって成される。この第２実施形態では、更生処理が実行されるタイミングは、システム搭載装置に電源が投入されてから立ち上がるまでの起動処理期間中である。
【００４０】
さらに、メモリコントローラ１２によって通常使用領域から読み出された情報に基づいて誤りビット数Ｅbが更生限界ビット数Ｕpよりも大きい（Ｅb＞Ｕp）と判断した場合には、更生部２２は、情報の代替を行う機能を備えている。つまり、更生部２２は、通常使用領域から読み出した情報に代えて、当該情報に対応するバックアップ情報を読み出して制御装置１１に送信するように、メモリコントローラ１２に指示する。また、更生部２２は、誤りビット数Ｅbが更生限界ビット数Ｕpよりも大きいブロック（以下、更生不可ブロックとも記す）を使用不可ブロック（バッドブロック）とし、当該ブロックに代わる代替ブロックを設定する。さらに、更生部２２は、使用不可ブロックに格納されていた情報に対応するバックアップ情報をその代替ブロックに書き込む。
【００４１】
上記のような更生部２２が情報更生装置を構成する。
【００４２】
以下に、更生部２２の動作の一例を図３および図４のフローチャートを参照しながら説明する。なお、図３および図４に示すフローチャートは、制御装置（ＣＰＵ）１１が実行するコンピュータプログラムの処理手順を表す。
【００４３】
システム搭載装置に電源電力が投入されて制御装置１１への電力供給が開始されると、更生部２２は、内蔵メモリ２１からメモリ制御ＢＩＯＳをロードする（図３のステップＳ１０１）。そして、更生部２２は、そのメモリ制御ＢＩＯＳに基づいて以下のような動作を行う。つまり、更生部２２は、メモリ１４の通常使用領域１５に含まれる各ブロックに更生対象フラグが設定されているか否かをチェックする（ステップＳ１０２）。そして、更生部２２は、更生対象フラグが有る（ＹＥＳ）と判断した場合には、次のように更生処理を実行する（ステップＳ１０３）。
【００４４】
図４は、更生処理の動作例を示すフローチャートである。つまり、更生部２２は、更生対象フラグが付与されているブロック（更生対象ブロック）のアドレスを取得する（ステップＳ２０１）。そして、更生部２２は、そのアドレスに対応する更生対象ブロックを初期化（データ消去）することをメモリコントローラ１２に指示する（ステップＳ２０２）。その後、更生部２２は、処理対象ブロックに対応するバックアップ情報をメモリ１４のバックアップ領域１６から読み出すことをメモリコントローラ１２に指示し、メモリコントローラ１２を介してバックアップ情報を取得する（ステップＳ２０３）。然る後に、更生部２２は、その取得したバックアップ情報を初期化済みの更生対象ブロックに書き込むことをメモリコントローラ１２に指示する（ステップＳ２０４）。これにより、メモリコントローラ１２によって、更生対象ブロックにはバックアップ情報が上書きされ、当該更生対象ブロックは更生される。そして、更生部２２は、更生処理が終了したブロックの更生対象フラグをクリアする。
【００４５】
更生部２２は、上記のような更生処理が終了した後、あるいは、図３に示すステップＳ１０２においてメモリ１４に更生対象フラグが無い（ＮＯ）と判断した場合には、メモリコントローラ１２に情報を読み出すことを指令する（ステップＳ１０４）。
【００４６】
その指令を受けて、メモリコントローラ１２の読み書き部１８は、通常使用領域から所定の情報（例えばＯＳ等のファームウェア（プログラム））を読み出す。そして、誤り訂正部１７は、その読み出した情報にビット誤り（ＥＣＣエラー）があるか否かを判断し、ビット誤りがあると判断した場合には、そのビット誤りを訂正する。然る後に、その情報（プログラム）は、制御装置１１に送信され、当該制御装置１１によって、一時記憶部１３に書き込まれる（展開される）。
【００４７】
一方、更生部２２は、誤り訂正部１７の動作情報に基づいて、メモリ１４から読み出された情報にビット誤り（ＥＣＣエラー）が有るか否かを判断する（ステップＳ１０５）。そして、更生部２２は、メモリ１４から読み出した全ての情報にビット誤りが無い（ＮＯ）と判断した場合には、動作を終了する。そして、制御装置１１は、一時記憶部１３に上記のように書き込まれたプログラム（ＯＳ）によって、通常の起動処理（ＯＳ起動処理）を実行する。
【００４８】
これに対し、更生部２２は、ステップＳ１０５において、読み出した情報にビット誤り（ＥＣＣエラー）が有る（ＹＥＳ）と判断した場合には、次に、ブロック毎の誤りビット数Ｅbが更生限界ビット数Ｕｐよりも大きい（Ｅb＞Ｕp）か否かを判断する（ステップＳ１０６）。そして、更生部２２は、誤りビット数Ｅbが更生限界ビット数Ｕｐよりも大きいブロック（更生不可ブロック）がある場合には、メモリ１４からバックアップ情報を読み出すようにメモリコントローラ１２に指示する（ステップＳ１０９）。これにより、更生部２２は動作を終了する。また、メモリ１４の通常使用領域１５から読み出された情報に代えて、バックアップ領域１６のバックアップ情報が制御装置１１に送信されて一時記憶部１３に展開される。そして、制御装置１１は、その一時記憶部１３に展開されたバックアップ情報に基づいて起動処理を実行する。
【００４９】
前記ステップＳ１０６において誤りビット数Ｅbが更生限界ビット数Ｕｐ以下であると判断した場合には、更生部２２は、次に、誤りビット数Ｅbが閾値Ｓp以上であるか否かを判断する（ステップＳ１０７）。これにより、誤りビット数Ｅbが閾値Ｓp以上であるブロック（更生対象ブロック）が無い（ＮＯ）と判断した場合には、更生部２２は、動作を終了する。これにより、前述したように、制御装置１１は、通常の起動処理を実行する。
【００５０】
更生部２２は、更生対象ブロックが有る（ＹＥＳ）と判断した場合には、メモリコントローラ１２によって、その更生対象ブロックに更生対象フラグを設定する（ステップＳ１０８）。また、更生部２２は、その更生対象ブロックのアドレス情報を含む更生処理用情報（ファイル）を作成あるいは更新し、当該情報（ファイル）をメモリ１４あるいは別の不揮発性記憶部（図示せず）に格納する。その後、更生部２２は、動作を終了する。これにより、前述したように、制御装置１１は、メモリ１４に展開された情報（プログラム）に基づいて起動処理を実行する。
【００５１】
この第２実施形態のメモリ制御システム１０は次のような効果を得ることができる。すなわち、メモリ制御システム１０（更生部２２）は、メモリ１４に更生不可ブロック（UNCORRECTABLEエラー）が発生する前に、誤りビット数Ｅbが、更生限界ビット数Ｕpよりも小さい閾値Ｓp以上になった段階のブロックに更生処理を行う。この更生処理は、更生対象ブロックを再利用する処理であるから、メモリ１４の容量不足問題を抑制することができる。つまり、更生対象ブロックが生じた場合に、当該ブロックに代わる代替ブロックを設定する処理を行うとすると、メモリ１４の空き容量の減少傾向が早まって容量不足が問題になる。これに対して、この第２実施形態では、更生対象ブロックを再利用するから、容量不足問題を抑制できる。
【００５２】
また、この第２実施形態のメモリ制御システム１０は、更生対象ブロックに格納されている情報ではなく、バックアップ領域に格納しておいたバックアップ情報、つまり、誤り訂正の無い情報を更生対象ブロックに格納する。このため、その更生対象ブロックに格納されている情報を元の正常な状態に戻すことができる。これにより、メモリ１４の情報保持性能に対する信頼性を高めることができる。さらに、更生対象ブロックにバックアップ情報をシーケンシャルに書き込むことによって、情報の格納位置（アドレス）が変更にならないため、その後の情報読み出しの際に不具合が発生することを防止できる。
【００５３】
さらに、この第２実施形態では、メモリ１４の更生処理は、システム搭載装置が起動処理を行う前（立ち上がり前）に行う。このため、ユーザによるシステム搭載装置操作に対する応答（レスポンス）が制御装置１１（更生部２２）の更生処理のために遅くなるという問題を回避できる。さらに、起動処理前にシステム搭載装置の電源が遮断される事態は発生し難いことから、更生処理途中に電源が遮断されることに因るデータ破損問題をも回避できる。
【００５４】
さらに、この第２実施形態では、メモリ１４から読み出した情報にUNCORRECTABLEエラーが発生した場合には、その情報に代えてバックアップ情報が制御装置１１に送信される。このため、メモリ１４からの情報読み出し不具合に起因してシステム搭載装置に起動不良が発生する事態を抑制できる。
【００５５】
（第３実施形態）
以下に、本発明に係る第３実施形態を説明する。なお、この第３実施形態の説明において、第２実施形態における構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【００５６】
この第３実施形態では、更生部２２は、第２実施形態に示す機能に加えて、次のような機能を備えている。すなわち、メモリ１４は、前述したように、ＮＡＮＤメモリであり、当該メモリ１４における複数のブロックは、それぞれ、複数のページを有している。この第３実施形態では、更生部２２は、ＥＣＣエラーの発生したページの数（以下、エラー発生ページ数とも記す）を計数する機能を備えている。さらに、更生部２２は、エラー発生ページ数Ｋpが予め定められた第１設定値Ｐ１以上（Ｋp≧Ｐ１）であるか否かを判断する機能を備えている。さらに、更生部２２は、エラー発生ページ数Ｋpが第１設定値Ｐ１以上である場合には、通常使用領域１５を全面的に書き換える必要があることを示す全面処理フラグをメモリコントローラ１２を利用してメモリ１４に設定する機能を備えている。
【００５７】
さらに、更生部２２は、ブロック毎のエラー発生ページ数（以下、ブロック内エラーページ数とも記す）Ｇpが予め定められた第２設定値Ｐ２以上（Ｇp≧Ｐ２）であるか否かを判断する機能を備えている。さらに、更生部２２は、ブロック内エラーページ数Ｇpが第２設定値Ｐ２以上である場合には、誤りビット数Ｅpが閾値Ｓp未満であるブロックであっても当該ブロックに更生対象フラグを設定する（付加する）機能を備えている。
【００５８】
さらに、更生部２２は、メモリ１４に全面処理フラグが設定されている場合には、メモリ１４の通常使用領域１５の全領域（全面）に前記同様の更生処理（全面更生処理）を行う機能を備えている。つまり、全面更生処理では、更生部２２の指示に基づいたメモリコントローラ１２の動作によって、通常使用領域１５の全領域が初期化され、当該初期化済みの通常使用領域１５に、バックアップ領域１６のバックアップ情報が書き込まれる。
【００５９】
以下に、この第３実施形態における更生部２２の動作例を図５のフローチャートを参照して説明する。なお、図５のフローチャートは、制御装置（ＣＰＵ）１１が実行するコンピュータプログラムの処理手順を表す。
【００６０】
この第３実施形態では、システム搭載装置に電源電力が投入されて制御装置１１への電力供給が開始されると、図３のステップＳ１０１と同様に、更生部２２は、内蔵メモリ２１からメモリ制御ＢＩＯＳをロードする。そして、更生部２２は、そのメモリ制御ＢＩＯＳに基づいて以下のような動作を行う。つまり、更生部２２は、メモリ１４に全面処理フラグが設定されているか否かをチェックする（ステップＳ３０２）。そして、更生部２２は、全面処理フラグが有る（ＹＥＳ）と判断した場合には、前記した全面更生処理を実行する（ステップＳ３０３）。
【００６１】
一方、ステップＳ３０２において、更生部２２は、メモリ１４に全面処理フラグが無い（ＮＯ）と判断した場合には、次に、図３のステップＳ１０２と同様に、メモリ１４の通常使用領域１５に含まれる各ブロックに更生対象フラグが設定されているか否かをチェックする（ステップＳ３０４）。図５に示すステップＳ３０４〜ステップＳ３０９の更生部２２の動作は、図３に示すステップＳ１０２〜ステップＳ１０６，Ｓ１０９の動作と同様である。これにより、ステップＳ３０４〜ステップＳ３０９の更生部２２の動作の説明は省略する。
【００６２】
ステップＳ３１０において、更生部２２は、図３のステップ１０７と同様に、誤りビット数Ｅbが閾値Ｓp以上であるか否かを判断する。これにより、誤りビット数Ｅbが閾値Ｓp以上であるブロック（更生対象ブロック）がある（ＹＥＳ）と判断した場合には、更生部２２は、図３のステップＳ１０８と同様に、その更生対象ブロックに更生対象フラグを設定する。また、更生部２２は、更生処理用情報（ファイル）を作成あるいは更新し、当該情報（ファイル）をメモリ１４あるいは別の不揮発性記憶部（図示せず）に格納する（ステップＳ３１４）。その後、更生部２２は、動作を終了する。これにより、前記同様に、制御装置１１は、メモリ１４に展開された情報（プログラム）に基づいて起動処理を実行する。
【００６３】
一方、ステップＳ３１０において更生対象ブロックが無い（ＮＯ）と判断した場合には、更生部２２は、次に、エラー発生ページ数Ｋpが第１設定値Ｐ１以上（Ｋp≧Ｐ１）であるか否かを判断する（ステップＳ３１１）。そして、更生部２２は、エラー発生ページ数Ｋpが第１設定値Ｐ１以上（Ｋp≧Ｐ１）である（ＹＥＳ）と判断した場合には、メモリ１４に全面処理フラグを設定する（ステップＳ３１２）。然る後に、更生部２２は動作を終了する。これにより、前記同様に、制御装置１１は、メモリ１４に展開された情報（プログラム）に基づいて起動処理を実行する。
【００６４】
また、更生部２２は、ステップＳ３１１においてエラー発生ページ数Ｋpが第１設定値Ｐ１以上（Ｋp≧Ｐ１）でない（ＮＯ）と判断した場合には、次に、ブロック内エラーページ数Ｇpが第２設定値Ｐ２以上（Ｇp≧Ｐ２）であるか否かを判断する（ステップＳ３１３）。そして、更生部２２は、ブロック内エラーページ数Ｇpが第２設定値Ｐ２以上（Ｇp≧Ｐ２）でない（ＮＯ）と判断した場合には、動作を終了する。そして、前記同様に、制御装置１１は、メモリ１４に展開された情報（プログラム）に基づいて起動処理を実行する。
【００６５】
さらにまた、更生部２２は、ブロック内エラーページ数Ｇpが第２設定値Ｐ２以上（Ｇp≧Ｐ２）であるブロックがある（ＹＥＳ）と判断した場合には、前記ステップＳ３１４の動作を行う。つまり、更生部２２は、そのブロックに更生対象フラグを設定する。また、更生部２２は、更生処理用情報を作成する。そして、然る後に、更生部２２は動作を終了し、これにより、制御装置１１は起動処理を実行する。
【００６６】
この第３実施形態におけるメモリ制御システム１０（情報更生装置（更生部２２））は、第２実施形態よりも、より細かくメモリ１４の情報保持状態を監視する構成を備えている。これにより、第２実施形態における効果を得ることができる上に、メモリ１４の情報保持性能に対する信頼性をより一層高めることができる。
【００６７】
（第４実施形態）
以下に、本発明に係る第４実施形態を説明する。なお、この第４実施形態の説明において、第２や第３の実施形態における構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【００６８】
この第４実施形態のメモリ制御システム１０においては、図２の点線に示されるように、制御装置１１は、第２や第３の実施形態に示す構成に加えて、電源断防止部２６を有している。
【００６９】
この電源断防止部２６は、更生部２２によって更生処理（メモリ１４の通常使用領域１５にバックアップ情報を上書きする処理）が実行されている期間中に、システム搭載装置の電源が遮断されてしまうことを阻止する機能を備えている。つまり、システム搭載装置は、図２に示されるように、電源制御部２７を有している。この電源制御部２７は、電源投入や電源遮断等の電源に関する制御を行う機能を備えている。電源断防止部２６は、更生部２２の動作情報に基づいて、更生部２２（メモリコントローラ１２）が更生処理の実行中であることを検知すると、電源を遮断しないように電源制御部２７に指示する。
【００７０】
電源制御部２７は、その指示を受けると、更生処理の実行中にユーザによって電源を遮断する操作が行われても電源が遮断されないように電源遮断処理自体を停止したり、機械的に（ハードウェアでもって）電源遮断を阻止する。
【００７１】
なお、制御装置１１と電源制御部２７との接続は、例えば、制御装置１１の汎用入出力（ＧＰＩＯ（General Purpose Input/Output））を利用する。
【００７２】
この第４実施形態のメモリ制御システム１０は、電源断防止部２６を有している。このため、第４実施形態のメモリ制御システム１０は、第２や第３の実施形態の効果に加えて、前述したような更生処理中における電源遮断に起因したデータ破損をより防止できるという効果を得ることができる。
【００７３】
（その他の実施形態）
なお、本発明は第１〜第４の実施形態に限定されずに様々な実施の形態を採り得る。例えば、第２〜第４の実施形態では、更生部２２は、更生対象ブロックに、更生処理が必要であることを示すフラグを設定（付与）している。これに対し、更生部２２は、メモリ１４の構成によっては、更生対象ブロックに更生対象フラグを設定しなくてもよい。この場合には、更生部２２は、例えば、前述した更生処理用情報に含まれているアドレス情報に基づいて更生対象ブロックを検索する。
【００７４】
また、第２〜第４の実施形態では、メモリコントローラ１２は、制御装置（ＣＰＵ）１１とは別個であったが、例えば、制御装置１１として、メモリコントローラ１２の機能を内蔵したＣＰＵを利用してもよい。
【００７５】
さらに、前記各実施形態の構成に加えて、メモリ１４の状況を報知する構成を備えてもよい。例えば、制御装置１１には、その汎用入出力（ＧＰＩＯ）を利用して、図２の点線に示す報知部２８が接続される。この報知部２８は、例えば、発光ダイオード（ＬＥＤ（Light Emitting Diode））により構成される。更生部２２は、更生不可ブロック（UNCORRECTABLEエラー）が発生した場合に、その旨を報知するように報知部２８に指示する。これにより、例えば、報知部２８の発光ダイオードが発光する。
【００７６】
さらに、第２〜第４の実施形態では、更生部２２が更生処理を行うタイミングは、システム搭載装置が起動処理を行う前（立ち上がり前）である。これに代えて、更生処理を行うタイミングは、例えば、システム搭載装置が低負荷の稼働状態（例えばスリープ状態）である場合としてもよい。このように、更生処理を行うタイミングは、前述したシステム搭載装置のレスポンス劣化問題や電源断によるデータ破損問題等を考慮して適宜に設定してよい。
【００７７】
さらに、上記各実施形態で説明した情報更生装置、メモリ制御システムは、それを実現するコンピュータプログラム（プログラム）を記憶媒体に格納しておき、当該プログラムを読み出して制御装置（ＣＰＵ）が実行することにより、実現される。つまり、各実施形態の情報更生装置、メモリ制御システムは、プログラムあるいは当該プログラムを格納している記憶媒体によって、構成されると言い換えることができる。これに対し、情報更生装置、メモリ制御システムの一部あるいは全部は、プログラムに代えて、ハードウェアによって構成されてもよい。
【符号の説明】
【００７８】
１  情報更生装置
２，２２  更生部
４，１０  メモリ制御システム
５，１４  メモリ
６，１７  誤り訂正部
１１  制御装置
２６  電源断防止部
【図１】
0005770557.tif 000002
【図２】
0005770557.tif 000003
【図３】
0005770557.tif 000004
【図４】
0005770557.tif 000005
【図５】
0005770557.tif 000006