説明

情報更生装置、メモリ制御システム、情報更生方法およびコンピュータプログラム

【課題】 記憶容量が不足する事態を抑制しながら、メモリにおける情報保持性能の信頼性を高める。
【解決手段】 更生部2を備える。当該更生部2は、メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリにおける予め定められたメモリ領域毎に計数する機能を備えている。また、更生部2は、その誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする機能を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置等のメモリに関わる情報更生装置、メモリ制御システム、情報更生方法およびコンピュータプログラムに関する。
【背景技術】
【0002】
半導体記憶装置の一つとして、NAND(Not AND(否定論理積))型フラッシュメモリ(以下、NANDメモリと略して記す)がある。このNANDメモリには、データやプログラム等の格納情報の内容が変わってしまうビット化けという現象が発生する。このため、NANDメモリを利用する場合には、そのビット化けに対処する必要がある。例えば、その対処手法の一つとして、ビット化けした情報を、ECC(Error Correction Code(誤り訂正符号))を利用して訂正しながらNANDメモリを使用するという対処手法がある。
【0003】
また、特許文献1には、次のような対処手法が示されている。特許文献1に示されている制御部は、NANDメモリから読み出したデータ(情報)に誤りがあった場合には、その誤りを訂正すると共に、訂正した誤り数をNANDメモリのブロック毎に計数する。そして、その制御部は、NANDメモリにおいて、誤り数が予め定められた閾値以上になったブロックのリフレッシュ処理を行う。リフレッシュ処理では、制御部は、リフレッシュ処理対象のブロックのデータをNANDメモリから読み出し、当該データをRAM(Random Access Memory)に書き込む。その後に、制御部は、そのリフレッシュ処理対象のブロックのデータ消去を行う。然る後に、制御部は、RAMから上記ブロックのデータを読み出して、NANDメモリにおける上記データ消去済みのブロックに再び格納する。これにより、リフレッシュ処理が終了する。このようなリフレッシュ処理により、NANDメモリにおけるビット化け等に起因して情報を正確に保持できる期間が短くなるという問題を抑制できる。
【0004】
さらに、引用文献2には、ブートプログラムが格納されているフラッシュメモリの制御に関する次のような構成が示されている。この引用文献2の構成では、フラッシュメモリコントローラは、フラッシュメモリから読み出したブートプログラムに基づいて、当該ブートプログラムが格納されているフラッシュメモリのブロックが不良であるか否かを判断する。そして、フラッシュメモリコントローラは、ブロックが不良であると判断した場合には、フラッシュメモリの別のブロックに格納されている同じブートプログラムを、前記不良ブロックに格納されていたブートプログラムに代えて、CPU(Central Processing Unit)に供給する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−160816
【特許文献2】特開2005−215824
【発明の概要】
【発明が解決しようとする課題】
【0006】
引用文献1に示されている手法では、NANDメモリにおいて、リフレッシュ処理対象のブロックから読み出したデータを、リフレッシュ処理後のブロックに格納し直している。つまり、リフレッシュ処理後にブロックに書き込まれるデータは、ビット化け等に因る誤りが訂正されたデータである。このため、当該データに対する信頼性は、誤り訂正が行われたことの無いデータに比べれば、やや低いものである。換言すれば、引用文献1の手法では、情報を正確に保持し続けるといった情報保持性能に関するNANDメモリの信頼性が低くなる虞がある。
【0007】
ところで、NANDメモリにおけるビット化け等の不具合に対する対処手法として、次のような手法がある。例えば、NANDメモリから読み出されたデータの誤り数が予め定められた閾値以上になった場合には、直ちに、そのデータに対応するブロックの使用が中止され、そのブロックに代わって、別のブロックが代替ブロックとして使用されるようになる。
【0008】
この手法では、NANDメモリから読み出されたデータに上記のような不具合が発生する度に、その不具合発生のブロックの使用が中止され、かつ、代替ブロックが設定される。このため、NANDメモリの使用容量の増加が早く、NANDメモリの記憶容量が不足する事態が発生し易いという問題がある。
【0009】
本発明は上記課題を解決するために成されたものである。すなわち、本発明の主な目的は、記憶容量が不足する事態を抑制しながら、メモリにおける情報保持性能の信頼性を高めることができる情報更生装置、メモリ制御システム、情報更生方法およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明の情報更生装置は、
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリにおける予め定められたメモリ領域毎に計数し、当該誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする更生部を有する。
【0011】
本発明のメモリ制御システムは、
情報と、当該情報に対応するバックアップ情報とを格納するメモリと、
当該メモリから読み出した情報にビット誤りがあった場合に当該ビット誤りを訂正する誤り訂正部と、
本発明の情報更生装置と
を備える。
【0012】
本発明の情報更生方法は、
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数し、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする。
【0013】
本発明のコンピュータプログラムは、
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数する処理と、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする処理と
をコンピュータに実行させる。
【0014】
なお、本発明の前述した主な目的は、本発明の情報更生装置に対応するメモリ制御システムおよび情報更生方法によっても達成される。また、本発明の主な目的は、本発明の情報更生装置、メモリ制御システムおよび情報更生方法をコンピュータによって実現するコンピュータプログラムによっても達成される。
【発明の効果】
【0015】
本発明によれば、記憶容量が不足する事態を抑制しながら、メモリにおける情報保持性能の信頼性を高めることができる。
【図面の簡単な説明】
【0016】
【図1】本発明に係る第1実施形態を説明する図である。
【図2】本発明に係る第2〜第4の実施形態を説明するブロック図である。
【図3】本発明に係る第2実施形態を構成する更生部の動作例を示すフローチャートである。
【図4】更生処理における動作例を示すフローチャートである。
【図5】本発明に係る第3実施形態を構成する更生部の動作例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下に、本発明に係る実施形態を図面を参照して説明する。
【0018】
(第1実施形態)
以下に、本発明に係る第1実施形態を説明する。図1(a)は、本発明に係る第1実施形態の情報更生装置の構成を簡略的に示すブロック図である。第1実施形態の情報更生装置1は、更生部2を有している。
【0019】
更生部2は、メモリから読み出された情報に含まれるビット誤りの数を、前記メモリにおける予め定められたメモリ領域毎に、誤りビット数として計数する機能を有する。さらに、更生部2は、その誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする機能を有する。
【0020】
この情報更生装置1は、上記のように、誤りビット数が前記閾値以上であるメモリ領域には、事前に書き込まれていたバックアップ情報を上書きする機能を有する。このため、次のような効果を得ることができる。すなわち、情報更生装置1は、誤りビット数が前記閾値以上になった情報を、バックアップ情報、つまり、ビット誤りが発生する前(事前)の情報に書き換える。換言すれば、情報更生装置1は、誤りビット数が前記閾値以上になった情報を、元の正常な状態に戻す(更生する)ことができる。これにより、情報更生装置1は、メモリの情報保持性能に対する信頼性を高めることができる。
【0021】
また、情報更生装置1は、誤りビット数が前記閾値以上になったメモリ領域に関し、当該メモリ領域に代えて別のメモリ領域を直ちに代替メモリ領域として使用するのではなく、そのメモリ領域を再利用している。これにより、情報更生装置1は、代替メモリ領域を利用する場合に発生する問題(つまり、記憶容量が不足する事態が懸念されるという問題)を抑制できる。
【0022】
情報更生装置1は、例えば、コンピュータが、記憶媒体に格納されたコンピュータプログラム(ソフトウェアプログラム)を実行することにより、実現される。
【0023】
この第1実施形態の情報更生装置1は、図1(b)に示すようなメモリ制御システムを構築できる。すなわち、このメモリ制御システム4は、情報更生装置1に加えて、メモリ5と、誤り訂正部6とを有している。メモリ5には、情報7が格納されると共に、当該情報7に対応するバックアップ情報8が事前に書き込まれている。誤り訂正部6は、メモリ5から読み出された情報7にビット誤りがあった場合にそのビット誤りを訂正する機能を有している。
【0024】
このメモリ制御システム4においては、メモリ5から読み出された情報7のビット誤りは誤り訂正部6によって訂正(修復)できる。その上、情報更生装置1によって、前記の如く、誤りビット数が前記閾値以上になったメモリ領域の情報7は元の状態に更生される。これにより、このメモリ制御システム4は、記憶容量が不足する事態を抑制しながら、メモリ5の情報保持性能に対する信頼性を高めることができる。
【0025】
(第2実施形態)
以下に、本発明に係る第2実施形態を説明する。
【0026】
図2は、第2実施形態におけるメモリ制御システムの構成を簡略的に示すブロック図である。この第2実施形態におけるメモリ制御システム10は、実線に示すように、制御装置11と、メモリコントローラ12と、一時記憶部13と、メモリ14とを有している。当該メモリ制御システム10は、例えば、携帯電話機や、メモリカード装置や、携帯情報端末(PDA(Personal Digital Assistant))などの様々な装置に組み込み可能である。
【0027】
メモリ14は、この第2実施形態では、フラッシュメモリの一つであるNAND(Not AND(否定論理積))メモリである。このNANDメモリの記憶領域は、構造的あるいは論理的に複数のメモリ領域(以下、ブロックとも記す)に分けられる。各ブロック(メモリ領域)はさらに構造的あるいは論理的に複数の区分領域(以下、ページとも記す)に区分けされる。
【0028】
メモリ14は、複数のブロックによる通常使用領域15と、複数のブロックによるバックアップ領域16とを有している。この第2実施形態では、通常使用領域15には、情報の一つであるファームウェア(例えばOS(Operating System))が少なくとも格納されている。バックアップ領域16にはバックアップ情報が格納されている。そのバックアップ情報とは、通常使用領域15に情報が新規に書き込まれる際に、バックアップ領域16にも同様に書き込まれた前記新規の情報(バックアップ用の情報)である。
【0029】
メモリ14には、通常使用領域15に格納されている情報と、当該情報に対応するバックアップ情報との対応関係を示す情報が格納されている。
【0030】
メモリコントローラ12は、誤り訂正部17と、読み書き部18とを有している。読み書き部18は、制御装置11からの指示に応じて、メモリ14から情報を読み出す機能と、メモリ14に情報を書き込む機能とを有する。誤り訂正部17は、メモリ14から読み出された情報にビット誤り(例えばビット化け)があるか否かを判断する機能を備えている。さらに、誤り訂正部17は、上記読み出された情報のビット誤りを訂正する機能を有している。この誤り訂正部17によるビット誤り有無判断およびビット誤り訂正は、例えば、前記情報に付与されるECC(Error Correction Code(誤り訂正符号))を利用して行われる。なお、誤り訂正部17が検知したり、訂正する情報のビット誤りを、以下、ECCエラーとも記す。
【0031】
一時記憶部13は、制御装置11が利用する情報を格納する記憶部であり、例えば、RAM(Random Access Memory)により構成される。
【0032】
制御装置11は、例えば、CPU(Central Processing Unit)により構成される。この制御装置11は、メモリ制御システム10の動作を制御する機能を備える。さらに、当該制御装置11は、そればかりでなく、メモリ制御システム10が組み込まれる装置(例えば、前述した携帯電話機や携帯情報端末などの装置(以下、システム搭載装置とも記す))の動作をも制御する機能を備える。すなわち、この第2実施形態では、制御装置11は、装置制御部20と、内蔵メモリ21と、更生部22とを有している。
【0033】
装置制御部20は、システム搭載装置の全体的な主な動作を制御する機能を備えている。この第2実施形態では、例えば、メモリ14からメモリコントローラ12によって読み出されて一時記憶部13に格納されたファームウェア等のコンピュータプログラムに基づいて制御装置11が動作することによって、装置制御部20が実現される。
【0034】
内蔵メモリ21は、制御装置11に内蔵されている不揮発性の記憶装置である。この内蔵メモリ21には、コンピュータプログラム(以下、略してプログラムとも記す)24であるBIOS(Basic Input/Output System)が格納されている。この第2実施形態では、内蔵メモリ21に格納されるBIOSの一つとして、メモリ制御BIOSがある。このメモリ制御BIOSは、次に述べる更生部22が実行する制御手順を示すプログラムであり、当該プログラムに従って制御装置(CPU)が動作することにより、更生部22が実現される。なお、内蔵メモリ21に格納されているプログラム(BIOS)は装置制御部20にも参照される。
【0035】
更生部22は、誤り訂正部17から取得した情報に基づき、メモリ14から読み出された情報におけるビット誤り(ECCエラー)の数(誤りビット数)Ebをブロック単位で計数する機能を備えている。
【0036】
更生部22は、さらに、ブロック毎の誤りビット数Ebが予め定められた閾値Sp以上であるか否かを判断する機能を備えている。その閾値Spは、メモリ14に対して後述する更生処理(代替処理)を行うか否かを判断する数値である。例えば、各ブロックにおいて、4ビット(Bit)まではECCエラーを訂正できる場合に、その訂正可能な限界値よりも小さい適宜な値(例えば3ビット)が閾値Spとして設定される。
【0037】
さらに、更生部22は、ブロック毎の誤りビット数Ebが予め定まる更生限界ビット数Upよりも大きいか否かを判断する機能を備えている。その更生限界ビット数Upは、各ブロックにおいてECCエラーを訂正できる限界値であり、メモリ14の構造等により予め定まる。当該更生限界ビット数Upは、閾値Spよりも大きい値であり、例えば4ビットである。なお、誤りビット数Ebが更生限界ビット数Upよりも大きいエラーは、UNCORRECTABLエラーと呼ばれる場合がある。また、誤りビット数Ebが更生限界ビット数Up以下のエラーは、CORRECTABLエラーと呼ばれる場合がある。
【0038】
さらに、更生部22は、誤りビット数Ebが閾値Sp以上かつ更生限界ビット数Up以下(Up≧Eb≧Sp)であるブロック(以下、更生対象ブロックとも記す)があった場合に、その更生対象ブロックに、次のような処理を行う機能を備えている。つまり、更生部22は、更生対象ブロックに、更生処理が必要であることを示すフラグ(以下、更生対象フラグと記す)をメモリコントローラ12の読み書き部18を利用して設定する(付与する)。
【0039】
さらに、更生部22は、メモリコントローラ12に指示し当該メモリコントローラ12によって、更生対象ブロックに対して更生処理を行う機能を備えている。その更生処理(代替処理)では、まず、メモリコントローラ12の読み書き部18によって更生対象ブロックが初期化される(データ消去される)。また、読み書き部18によって、その更生処理対象ブロックに格納されている情報に対応するバックアップ情報がメモリ14のバックアップ領域16から読み出される。そして、当該バックアップ情報が、読み書き部18によって、前記初期化済みのブロックに書き込まれる(上書きされる)。更生処理は、更生部22からの指示に応じたメモリコントローラ12の上記のような動作によって成される。この第2実施形態では、更生処理が実行されるタイミングは、システム搭載装置に電源が投入されてから立ち上がるまでの起動処理期間中である。
【0040】
さらに、メモリコントローラ12によって通常使用領域から読み出された情報に基づいて誤りビット数Ebが更生限界ビット数Upよりも大きい(Eb>Up)と判断した場合には、更生部22は、情報の代替を行う機能を備えている。つまり、更生部22は、通常使用領域から読み出した情報に代えて、当該情報に対応するバックアップ情報を読み出して制御装置11に送信するように、メモリコントローラ12に指示する。また、更生部22は、誤りビット数Ebが更生限界ビット数Upよりも大きいブロック(以下、更生不可ブロックとも記す)を使用不可ブロック(バッドブロック)とし、当該ブロックに代わる代替ブロックを設定する。さらに、更生部22は、使用不可ブロックに格納されていた情報に対応するバックアップ情報をその代替ブロックに書き込む。
【0041】
上記のような更生部22が情報更生装置を構成する。
【0042】
以下に、更生部22の動作の一例を図3および図4のフローチャートを参照しながら説明する。なお、図3および図4に示すフローチャートは、制御装置(CPU)11が実行するコンピュータプログラムの処理手順を表す。
【0043】
システム搭載装置に電源電力が投入されて制御装置11への電力供給が開始されると、更生部22は、内蔵メモリ21からメモリ制御BIOSをロードする(図3のステップS101)。そして、更生部22は、そのメモリ制御BIOSに基づいて以下のような動作を行う。つまり、更生部22は、メモリ14の通常使用領域15に含まれる各ブロックに更生対象フラグが設定されているか否かをチェックする(ステップS102)。そして、更生部22は、更生対象フラグが有る(YES)と判断した場合には、次のように更生処理を実行する(ステップS103)。
【0044】
図4は、更生処理の動作例を示すフローチャートである。つまり、更生部22は、更生対象フラグが付与されているブロック(更生対象ブロック)のアドレスを取得する(ステップS201)。そして、更生部22は、そのアドレスに対応する更生対象ブロックを初期化(データ消去)することをメモリコントローラ12に指示する(ステップS202)。その後、更生部22は、処理対象ブロックに対応するバックアップ情報をメモリ14のバックアップ領域16から読み出すことをメモリコントローラ12に指示し、メモリコントローラ12を介してバックアップ情報を取得する(ステップS203)。然る後に、更生部22は、その取得したバックアップ情報を初期化済みの更生対象ブロックに書き込むことをメモリコントローラ12に指示する(ステップS204)。これにより、メモリコントローラ12によって、更生対象ブロックにはバックアップ情報が上書きされ、当該更生対象ブロックは更生される。そして、更生部22は、更生処理が終了したブロックの更生対象フラグをクリアする。
【0045】
更生部22は、上記のような更生処理が終了した後、あるいは、図3に示すステップS102においてメモリ14に更生対象フラグが無い(NO)と判断した場合には、メモリコントローラ12に情報を読み出すことを指令する(ステップS104)。
【0046】
その指令を受けて、メモリコントローラ12の読み書き部18は、通常使用領域から所定の情報(例えばOS等のファームウェア(プログラム))を読み出す。そして、誤り訂正部17は、その読み出した情報にビット誤り(ECCエラー)があるか否かを判断し、ビット誤りがあると判断した場合には、そのビット誤りを訂正する。然る後に、その情報(プログラム)は、制御装置11に送信され、当該制御装置11によって、一時記憶部13に書き込まれる(展開される)。
【0047】
一方、更生部22は、誤り訂正部17の動作情報に基づいて、メモリ14から読み出された情報にビット誤り(ECCエラー)が有るか否かを判断する(ステップS105)。そして、更生部22は、メモリ14から読み出した全ての情報にビット誤りが無い(NO)と判断した場合には、動作を終了する。そして、制御装置11は、一時記憶部13に上記のように書き込まれたプログラム(OS)によって、通常の起動処理(OS起動処理)を実行する。
【0048】
これに対し、更生部22は、ステップS105において、読み出した情報にビット誤り(ECCエラー)が有る(YES)と判断した場合には、次に、ブロック毎の誤りビット数Ebが更生限界ビット数Upよりも大きい(Eb>Up)か否かを判断する(ステップS106)。そして、更生部22は、誤りビット数Ebが更生限界ビット数Upよりも大きいブロック(更生不可ブロック)がある場合には、メモリ14からバックアップ情報を読み出すようにメモリコントローラ12に指示する(ステップS109)。これにより、更生部22は動作を終了する。また、メモリ14の通常使用領域15から読み出された情報に代えて、バックアップ領域16のバックアップ情報が制御装置11に送信されて一時記憶部13に展開される。そして、制御装置11は、その一時記憶部13に展開されたバックアップ情報に基づいて起動処理を実行する。
【0049】
前記ステップS106において誤りビット数Ebが更生限界ビット数Up以下であると判断した場合には、更生部22は、次に、誤りビット数Ebが閾値Sp以上であるか否かを判断する(ステップS107)。これにより、誤りビット数Ebが閾値Sp以上であるブロック(更生対象ブロック)が無い(NO)と判断した場合には、更生部22は、動作を終了する。これにより、前述したように、制御装置11は、通常の起動処理を実行する。
【0050】
更生部22は、更生対象ブロックが有る(YES)と判断した場合には、メモリコントローラ12によって、その更生対象ブロックに更生対象フラグを設定する(ステップS108)。また、更生部22は、その更生対象ブロックのアドレス情報を含む更生処理用情報(ファイル)を作成あるいは更新し、当該情報(ファイル)をメモリ14あるいは別の不揮発性記憶部(図示せず)に格納する。その後、更生部22は、動作を終了する。これにより、前述したように、制御装置11は、メモリ14に展開された情報(プログラム)に基づいて起動処理を実行する。
【0051】
この第2実施形態のメモリ制御システム10は次のような効果を得ることができる。すなわち、メモリ制御システム10(更生部22)は、メモリ14に更生不可ブロック(UNCORRECTABLEエラー)が発生する前に、誤りビット数Ebが、更生限界ビット数Upよりも小さい閾値Sp以上になった段階のブロックに更生処理を行う。この更生処理は、更生対象ブロックを再利用する処理であるから、メモリ14の容量不足問題を抑制することができる。つまり、更生対象ブロックが生じた場合に、当該ブロックに代わる代替ブロックを設定する処理を行うとすると、メモリ14の空き容量の減少傾向が早まって容量不足が問題になる。これに対して、この第2実施形態では、更生対象ブロックを再利用するから、容量不足問題を抑制できる。
【0052】
また、この第2実施形態のメモリ制御システム10は、更生対象ブロックに格納されている情報ではなく、バックアップ領域に格納しておいたバックアップ情報、つまり、誤り訂正の無い情報を更生対象ブロックに格納する。このため、その更生対象ブロックに格納されている情報を元の正常な状態に戻すことができる。これにより、メモリ14の情報保持性能に対する信頼性を高めることができる。さらに、更生対象ブロックにバックアップ情報をシーケンシャルに書き込むことによって、情報の格納位置(アドレス)が変更にならないため、その後の情報読み出しの際に不具合が発生することを防止できる。
【0053】
さらに、この第2実施形態では、メモリ14の更生処理は、システム搭載装置が起動処理を行う前(立ち上がり前)に行う。このため、ユーザによるシステム搭載装置操作に対する応答(レスポンス)が制御装置11(更生部22)の更生処理のために遅くなるという問題を回避できる。さらに、起動処理前にシステム搭載装置の電源が遮断される事態は発生し難いことから、更生処理途中に電源が遮断されることに因るデータ破損問題をも回避できる。
【0054】
さらに、この第2実施形態では、メモリ14から読み出した情報にUNCORRECTABLEエラーが発生した場合には、その情報に代えてバックアップ情報が制御装置11に送信される。このため、メモリ14からの情報読み出し不具合に起因してシステム搭載装置に起動不良が発生する事態を抑制できる。
【0055】
(第3実施形態)
以下に、本発明に係る第3実施形態を説明する。なお、この第3実施形態の説明において、第2実施形態における構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【0056】
この第3実施形態では、更生部22は、第2実施形態に示す機能に加えて、次のような機能を備えている。すなわち、メモリ14は、前述したように、NANDメモリであり、当該メモリ14における複数のブロックは、それぞれ、複数のページを有している。この第3実施形態では、更生部22は、ECCエラーの発生したページの数(以下、エラー発生ページ数とも記す)を計数する機能を備えている。さらに、更生部22は、エラー発生ページ数Kpが予め定められた第1設定値P1以上(Kp≧P1)であるか否かを判断する機能を備えている。さらに、更生部22は、エラー発生ページ数Kpが第1設定値P1以上である場合には、通常使用領域15を全面的に書き換える必要があることを示す全面処理フラグをメモリコントローラ12を利用してメモリ14に設定する機能を備えている。
【0057】
さらに、更生部22は、ブロック毎のエラー発生ページ数(以下、ブロック内エラーページ数とも記す)Gpが予め定められた第2設定値P2以上(Gp≧P2)であるか否かを判断する機能を備えている。さらに、更生部22は、ブロック内エラーページ数Gpが第2設定値P2以上である場合には、誤りビット数Epが閾値Sp未満であるブロックであっても当該ブロックに更生対象フラグを設定する(付加する)機能を備えている。
【0058】
さらに、更生部22は、メモリ14に全面処理フラグが設定されている場合には、メモリ14の通常使用領域15の全領域(全面)に前記同様の更生処理(全面更生処理)を行う機能を備えている。つまり、全面更生処理では、更生部22の指示に基づいたメモリコントローラ12の動作によって、通常使用領域15の全領域が初期化され、当該初期化済みの通常使用領域15に、バックアップ領域16のバックアップ情報が書き込まれる。
【0059】
以下に、この第3実施形態における更生部22の動作例を図5のフローチャートを参照して説明する。なお、図5のフローチャートは、制御装置(CPU)11が実行するコンピュータプログラムの処理手順を表す。
【0060】
この第3実施形態では、システム搭載装置に電源電力が投入されて制御装置11への電力供給が開始されると、図3のステップS101と同様に、更生部22は、内蔵メモリ21からメモリ制御BIOSをロードする。そして、更生部22は、そのメモリ制御BIOSに基づいて以下のような動作を行う。つまり、更生部22は、メモリ14に全面処理フラグが設定されているか否かをチェックする(ステップS302)。そして、更生部22は、全面処理フラグが有る(YES)と判断した場合には、前記した全面更生処理を実行する(ステップS303)。
【0061】
一方、ステップS302において、更生部22は、メモリ14に全面処理フラグが無い(NO)と判断した場合には、次に、図3のステップS102と同様に、メモリ14の通常使用領域15に含まれる各ブロックに更生対象フラグが設定されているか否かをチェックする(ステップS304)。図5に示すステップS304〜ステップS309の更生部22の動作は、図3に示すステップS102〜ステップS106,S109の動作と同様である。これにより、ステップS304〜ステップS309の更生部22の動作の説明は省略する。
【0062】
ステップS310において、更生部22は、図3のステップ107と同様に、誤りビット数Ebが閾値Sp以上であるか否かを判断する。これにより、誤りビット数Ebが閾値Sp以上であるブロック(更生対象ブロック)がある(YES)と判断した場合には、更生部22は、図3のステップS108と同様に、その更生対象ブロックに更生対象フラグを設定する。また、更生部22は、更生処理用情報(ファイル)を作成あるいは更新し、当該情報(ファイル)をメモリ14あるいは別の不揮発性記憶部(図示せず)に格納する(ステップS314)。その後、更生部22は、動作を終了する。これにより、前記同様に、制御装置11は、メモリ14に展開された情報(プログラム)に基づいて起動処理を実行する。
【0063】
一方、ステップS310において更生対象ブロックが無い(NO)と判断した場合には、更生部22は、次に、エラー発生ページ数Kpが第1設定値P1以上(Kp≧P1)であるか否かを判断する(ステップS311)。そして、更生部22は、エラー発生ページ数Kpが第1設定値P1以上(Kp≧P1)である(YES)と判断した場合には、メモリ14に全面処理フラグを設定する(ステップS312)。然る後に、更生部22は動作を終了する。これにより、前記同様に、制御装置11は、メモリ14に展開された情報(プログラム)に基づいて起動処理を実行する。
【0064】
また、更生部22は、ステップS311においてエラー発生ページ数Kpが第1設定値P1以上(Kp≧P1)でない(NO)と判断した場合には、次に、ブロック内エラーページ数Gpが第2設定値P2以上(Gp≧P2)であるか否かを判断する(ステップS313)。そして、更生部22は、ブロック内エラーページ数Gpが第2設定値P2以上(Gp≧P2)でない(NO)と判断した場合には、動作を終了する。そして、前記同様に、制御装置11は、メモリ14に展開された情報(プログラム)に基づいて起動処理を実行する。
【0065】
さらにまた、更生部22は、ブロック内エラーページ数Gpが第2設定値P2以上(Gp≧P2)であるブロックがある(YES)と判断した場合には、前記ステップS314の動作を行う。つまり、更生部22は、そのブロックに更生対象フラグを設定する。また、更生部22は、更生処理用情報を作成する。そして、然る後に、更生部22は動作を終了し、これにより、制御装置11は起動処理を実行する。
【0066】
この第3実施形態におけるメモリ制御システム10(情報更生装置(更生部22))は、第2実施形態よりも、より細かくメモリ14の情報保持状態を監視する構成を備えている。これにより、第2実施形態における効果を得ることができる上に、メモリ14の情報保持性能に対する信頼性をより一層高めることができる。
【0067】
(第4実施形態)
以下に、本発明に係る第4実施形態を説明する。なお、この第4実施形態の説明において、第2や第3の実施形態における構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【0068】
この第4実施形態のメモリ制御システム10においては、図2の点線に示されるように、制御装置11は、第2や第3の実施形態に示す構成に加えて、電源断防止部26を有している。
【0069】
この電源断防止部26は、更生部22によって更生処理(メモリ14の通常使用領域15にバックアップ情報を上書きする処理)が実行されている期間中に、システム搭載装置の電源が遮断されてしまうことを阻止する機能を備えている。つまり、システム搭載装置は、図2に示されるように、電源制御部27を有している。この電源制御部27は、電源投入や電源遮断等の電源に関する制御を行う機能を備えている。電源断防止部26は、更生部22の動作情報に基づいて、更生部22(メモリコントローラ12)が更生処理の実行中であることを検知すると、電源を遮断しないように電源制御部27に指示する。
【0070】
電源制御部27は、その指示を受けると、更生処理の実行中にユーザによって電源を遮断する操作が行われても電源が遮断されないように電源遮断処理自体を停止したり、機械的に(ハードウェアでもって)電源遮断を阻止する。
【0071】
なお、制御装置11と電源制御部27との接続は、例えば、制御装置11の汎用入出力(GPIO(General Purpose Input/Output))を利用する。
【0072】
この第4実施形態のメモリ制御システム10は、電源断防止部26を有している。このため、第4実施形態のメモリ制御システム10は、第2や第3の実施形態の効果に加えて、前述したような更生処理中における電源遮断に起因したデータ破損をより防止できるという効果を得ることができる。
【0073】
(その他の実施形態)
なお、本発明は第1〜第4の実施形態に限定されずに様々な実施の形態を採り得る。例えば、第2〜第4の実施形態では、更生部22は、更生対象ブロックに、更生処理が必要であることを示すフラグを設定(付与)している。これに対し、更生部22は、メモリ14の構成によっては、更生対象ブロックに更生対象フラグを設定しなくてもよい。この場合には、更生部22は、例えば、前述した更生処理用情報に含まれているアドレス情報に基づいて更生対象ブロックを検索する。
【0074】
また、第2〜第4の実施形態では、メモリコントローラ12は、制御装置(CPU)11とは別個であったが、例えば、制御装置11として、メモリコントローラ12の機能を内蔵したCPUを利用してもよい。
【0075】
さらに、前記各実施形態の構成に加えて、メモリ14の状況を報知する構成を備えてもよい。例えば、制御装置11には、その汎用入出力(GPIO)を利用して、図2の点線に示す報知部28が接続される。この報知部28は、例えば、発光ダイオード(LED(Light Emitting Diode))により構成される。更生部22は、更生不可ブロック(UNCORRECTABLEエラー)が発生した場合に、その旨を報知するように報知部28に指示する。これにより、例えば、報知部28の発光ダイオードが発光する。
【0076】
さらに、第2〜第4の実施形態では、更生部22が更生処理を行うタイミングは、システム搭載装置が起動処理を行う前(立ち上がり前)である。これに代えて、更生処理を行うタイミングは、例えば、システム搭載装置が低負荷の稼働状態(例えばスリープ状態)である場合としてもよい。このように、更生処理を行うタイミングは、前述したシステム搭載装置のレスポンス劣化問題や電源断によるデータ破損問題等を考慮して適宜に設定してよい。
【0077】
さらに、上記各実施形態で説明した情報更生装置、メモリ制御システムは、それを実現するコンピュータプログラム(プログラム)を記憶媒体に格納しておき、当該プログラムを読み出して制御装置(CPU)が実行することにより、実現される。つまり、各実施形態の情報更生装置、メモリ制御システムは、プログラムあるいは当該プログラムを格納している記憶媒体によって、構成されると言い換えることができる。これに対し、情報更生装置、メモリ制御システムの一部あるいは全部は、プログラムに代えて、ハードウェアによって構成されてもよい。
【符号の説明】
【0078】
1 情報更生装置
2,22 更生部
4,10 メモリ制御システム
5,14 メモリ
6,17 誤り訂正部
11 制御装置
26 電源断防止部

【特許請求の範囲】
【請求項1】
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリにおける予め定められたメモリ領域毎に計数し、当該誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする更生部を有する情報更生装置。
【請求項2】
前記更生部は、前記メモリが搭載されている装置が予め定められた稼働状態である場合に、前記バックアップ情報の上書きを行う請求項1記載の情報更生装置。
【請求項3】
前記更生部がバックアップ情報の上書きを行っている期間中に電源が遮断されることを阻止する電源断防止部がさらに設けられている請求項1又は請求項2記載の情報更生装置。
【請求項4】
前記更生部は、前記誤りビット数が前記閾値よりも大である更生限界ビット数よりも大きい前記メモリ領域においては、そのメモリ領域の情報に代えて、当該メモリ領域に対応する前記バックアップ情報を、指定されている提供先に送信する請求項1又は請求項2又は請求項3記載の情報更生装置。
【請求項5】
前記メモリはフラッシュメモリであり、
前記更生部は、前記メモリの前記メモリ領域であるブロック毎に、前記ブロックを複数に区分した区分領域であるページのそれぞれに前記ビット誤りが有るか否かを監視し、前記ビット誤りの有るページの数が予め定められた第1設定値以上である前記ブロックに対しては、当該ブロックに対応する前記バックアップ情報を上書きする請求項1乃至請求項4の何れか一つに記載の情報更生装置。
【請求項6】
前記更生部は、前記メモリにおける前記ビット誤りの有るページの数が予め定められた第2設定値以上である場合には、前記メモリに格納されている前記情報全体を前記バックアップ情報に書き換える請求項5記載の情報更生装置。
【請求項7】
情報と、当該情報に対応するバックアップ情報とを格納するメモリと、
当該メモリから読み出した情報にビット誤りがあった場合に当該ビット誤りを訂正する誤り訂正部と、
請求項1乃至請求項6の何れか一つに記載の情報更生装置と
を備えるメモリ制御システム。
【請求項8】
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数し、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする情報更生方法。
【請求項9】
メモリから読み出された情報に含まれるビット誤りの数を誤りビット数として前記メモリに予め定められたメモリ領域毎に計数する処理と、
前記誤りビット数が予め定められた閾値以上である前記メモリ領域には、当該メモリ領域とは別のメモリ領域に事前に書き込まれていたバックアップ情報を上書きする処理と
をコンピュータに実行させるコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate