説明

情報処理装置、情報処理装置の制御方法、および、プログラム

【課題】経年変化に起因して生じず誤りの誤り訂正を行う。
【解決手段】本発明の情報処理装置は、データを格納する複数のブロックからなり、前記複数のブロックの各々に対するデータの再書込みが可能な記憶部と、前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理部と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを格納する情報処理装置、情報処理装置の制御方法、および、プログラムに関する。
【背景技術】
【0002】
携帯電話、スマートフォンなどの情報処理装置は、一般に、プログラムを実行するCPU(Central Processing Unit)と、CPUが実行するプログラムなどのデータ(以下、プログラムデータと称する)を格納するメモリと、を有する。
【0003】
近年、上述したメモリがRAM(Random Access Memory)およびNANDフラッシュメモリで構成される情報処理装置が主流となりつつある。このような情報処理装置においては、CPUは、RAMおよびNANDフラッシュメモリと接続され、NANDフラッシュメモリに格納されているプログラムデータを読み出し、読み出したプログラムデータをRAMに転送してプログラムを実行する。
【0004】
一般に、NANDフラッシュメモリは、メモリセルの構造上、プログラムデータの読み出しを繰り返し行うと誤りが発生することがある。このプログラムデータの読み出しを繰り返し行うことにより誤りが発生する現象は、リードディスターブ現象と呼ばれる。プログラムデータに誤りがあると、CPUがプログラムを正しく実行できなくなることがある。
【0005】
そこで、一般に、NANDフラッシュメモリにおいては、プログラムデータとそのプログラムデータの誤り訂正を行うためのECC(Error Check and Correction)データとが対応つけて格納される。
【0006】
図9は、NANDフラッシュメモリの一般的なデータ構成を示す図である。
【0007】
図9に示すように、NANDフラッシュメモリは、プログラムデータを格納する領域Pとそのプログラムデータの誤り訂正を行うためのECCデータを格納する領域Eとからなるページをm個まとめたブロックを複数有する。このようなデータ構成とすることで、数ビットの誤りであれば、プログラムデータと同じページに格納されているECCデータを用いて誤り訂正を行うことができる。NANDフラッシュメモリにおいては、データの書込みはページ単位で行われ、格納されているデータの消去はブロック単位で行われる。なお、ECCデータを用いて誤り訂正を行うことができるビット数には上限がある。
【0008】
特許文献1(特開2008−198310号公報)には、プログラムを実行するためにプログラムデータを読み出すとともに、そのプログラムデータの誤り検出を行い、誤りがあると誤り訂正を行った誤り訂正後のプログラムデータの、そのプログラムデータが格納されているブロックに対する再書込みを行う情報処理装置が開示されている。なお、再書込みとは、ブロックに格納されているプログラムデータを一時的に別の未使用ブロックに退避し、そのブロックに格納されているデータの消去後に元のプログラムデータ(誤り訂正後のデータ)をそのブロックに書き込むことである。この情報処理装置によれば、上述したリードディスターブ現象に起因するプログラムデータの誤りの誤り訂正を行い、誤りの無いリフレッシュされたプログラムデータをブロックに格納することができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−198310号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
NANDフラッシュメモリにおいては、上述したリードディスターブ現象に起因する誤りのほかに、経年変化に起因する誤りも生じる。特許文献1に開示の情報処理装置においては、プログラムデータの読み出しを契機として誤り訂正が行われる。そのため、頻繁に読み出しが行われるプログラムデータについては、頻繁に誤り訂正も行われるのに対し、頻繁に読み出しが行われないプログラムデータについては、誤り訂正も長期間にわたって行われないことがある。長期間にわたって誤り訂正が行われないと、経年変化に起因して生じる誤りが蓄積し、ECCデータを用いて誤り訂正を行うことができるビット数の上限を超えてしまい、誤り訂正を行うことができなくなるおそれがある。
【0011】
本発明の目的は、経年変化に起因して生じる誤りの誤り訂正を行うことができる情報処理装置、情報処理装置の制御方法、および、プログラムを提供することになる。
【課題を解決するための手段】
【0012】
上記目的を達成するために本発明の情報処理装置は、
データを格納する複数のブロックからなり、前記複数のブロックの各々に対するデータの再書込みが可能な記憶部と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理部と、を有する。
【0013】
上記目的を達成するために本発明の情報処理装置の制御方法は、
情報処理装置の制御方法であって、
複数のブロックの各々にデータを格納し、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う。
【0014】
上記目的を達成するために本発明のプログラムは、
情報処理装置に、
複数のブロックの各々にデータを格納する処理と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理と、を実行させる。
【発明の効果】
【0015】
本発明によれば、経年変化に起因して生じる誤りの誤り訂正を行うことができる。
【図面の簡単な説明】
【0016】
【図1】本発明の第1の実施形態の情報処理装置の構成を示すブロック図である。
【図2】図1に示す制御部の構成を示すブロック図である。
【図3】図2に示す制御部のチェックサム計算時の動作を示すフローチャートである。
【図4】図2に示すNANDフラッシュメモリが格納する管理テーブルの構成の一例を示す図である。
【図5】図2に示すNANDフラッシュメモリが格納する管理テーブルの状態の一例を示す図である。
【図6】図2に示す制御部の再書込み時の動作を示すフローチャートである。
【図7】図2に示すNANDフラッシュメモリが格納する管理テーブルの状態の他の一例を示す図である。
【図8】本発明の第2の実施形態の情報処理装置の構成を示すブロック図である。
【図9】NANDフラッシュメモリのデータ構成を示す図である。
【発明を実施するための形態】
【0017】
以下に、本発明を実施するための形態について図面を参照して説明する。
【0018】
(第1の実施形態)
図1は、本発明の第1の実施形態の情報処理装置100の構成を示すブロック図である。なお、図1においては、情報処理装置100が携帯電話である場合を例として説明するが、本発明はこれに限られるものではなく、情報処理装置100としては、スマートフォン、PDA(Personal Digital Assistants)、ポータブル音楽プレーヤー、電子手帳、パーソナルコンピュータ、トランシーバ、携帯型ゲーム機など種々のものがある。
【0019】
図1に示す情報処理装置100は、アンテナ101と、送受信部102と、スピーカ103と、マイク104と、表示部105と、操作部106と、制御部107と、電源部108と、を有する。
【0020】
送受信部102は、制御部107の制御に従い、アンテナ101を介して電波を送受信する。
【0021】
スピーカ103は、制御部107の制御に従い、音を出力する。
【0022】
マイク104は、制御部107の制御に従い、周辺の音を集音し、音データを制御部107に出力する。
【0023】
表示部105は、制御部107の制御に従い、種々の映像を表示する。
【0024】
操作部106は、ユーザーの操作入力に応じた信号を制御部107に出力する。なお、操作部106の具体例としては、タッチパネルなどがある。
【0025】
制御部107は、操作部106から出力される信号に応じて種々のプログラムを実行し、送受信部102、スピーカ103、マイク104、表示部105などを制御する。
【0026】
電源部108は、上述した各部に電力を供給する。
【0027】
次に、制御部107の内部構成について説明する。
【0028】
図2は、制御部107の構成を示すブロック図である。
【0029】
図2に示す制御部107は、NANDフラッシュメモリ201と、CPU202と、RAM203と、を有する。CPU202は、処理部の一例である。
【0030】
NANDフラッシュメモリ201は、図9に示すように、プログラムデータを格納する領域Pとそのプログラムデータの誤り訂正を行うためのECCデータを格納するための領域Eとからなるページをm個まとめたブロックを複数有する。なお、ECCデータは、プログラムデータの書き込み時に計算され、そのプログラムデータと同じページの領域Eに書き込まれる。一般に、1つのページの容量は、領域Pおよび領域Eを合わせて2112バイトである。ECCデータを用いて誤り訂正を行う方式には、一例として、プログラムデータ512バイトに対して16ビットのECCデータを付加して1ビットの誤り訂正を行う方式や、4ビットの誤り訂正を行う方式などがある。また、プログラムデータの書込みはページ単位で行われ、格納されているプログラムデータの消去はブロック単位で行われ、各ブロックに対してはプログラムデータの再書込みが可能である。
【0031】
また、NANDフラッシュメモリ201は、複数のブロックの各々について、そのブロックのブロック番号とそのブロックに格納されているプログラムデータの誤りビット数とを対応つけた管理テーブルを格納する。
【0032】
CPU202は、NANDフラッシュメモリ201に格納されているプログラムデータを読み出し、RAM203に転送してプログラムを実行する。
【0033】
また、CPU202は、定期的に、NANDフラッシュメモリ201を構成する複数のブロックの各々について、そのブロックに含まれるページ毎に、そのページに格納されているプログラムデータのチェックサムを計算して誤り検出を行い、誤りを検出すると、そのプログラムデータと同じページに格納されているECCデータを用いて誤り訂正を行い、誤り訂正後のデータの再書込みを行う。
【0034】
RAM203は、CPUP202から転送されたプログラムデータを一時的に格納する。
【0035】
次に、本実施形態の制御部107の動作について説明する。
【0036】
図3は、制御部107のチェックサムの計算時の動作を示すフローチャートである。
【0037】
なお、以下では、ECCデータを用いたプログラムデータの誤り訂正能力は4ビットであるとする。
【0038】
CPU202は、定期的に、NANDフラッシュメモリ201を構成する複数のブロックの各々について、そのブロックに含まれるページ毎に、そのページに格納されているプログラムデータのチェックサムを計算し(ステップS101)、計算結果に応じて、そのプログラムデータの誤りビット数を検出し、検出した誤りビット数をRAM203に一時的に格納させる。
【0039】
全てのブロックについて、各ブロックに含まれる全てのページに格納されているプログラムデータの誤りビット数の検出が終了すると、CPU202は、各ブロックにおけるプログラムデータの誤りビット数の合計を、そのブロックのブロック番号に対応させて管理テーブルに格納する(ステップS102)。
【0040】
図4は、管理テーブル401の構成の一例を示す図である。
【0041】
図4に示すように、NANDフラッシュメモリ201は、各ブロックのブロック番号と、そのブロックに格納されているプログラムデータの誤りビット数とを対応させた管理テーブル401を格納する。
【0042】
なお、上述したように、CPU202は、定期的に、各ブロックに格納されているプログラムデータのチェックサムの計算を行い、誤りビット数の検出を行う。管理テーブル401においては、直近の誤りビット数の検出の結果(最新)に加えて、過去4回分の誤りビット数の検出の結果(+1〜+4)が格納される。
【0043】
図4においては、例えば、ブロック番号M=0のブロックは、最新の(最後のチェックサムの計算を行った際の)誤りビット数が0であり、また、1回前から4回前のチャックサムの計算を行った際の誤りビット数も0であることを示す。また、例えば、ブロック番号M=100のブロックは、最新の(最後のチェックサムの計算を行った際の)誤りビット数が3であり、また、1回前から4回前のチェックサムの計算を行った際の誤りビット数が2であることを示す。
【0044】
再び、図3を参照すると、CPU202は、ブロック番号M=0とし(ステップS103)、図4に示す管理テーブル401において、ブロック番号Mに対応して格納されている誤りビット数が5回連続して4ビット以上であるか否かを判定する(ステップS104)。なお、上記の判定基準は一例であり、例えば、最新の誤りビット数が4ビット以上であるか否かなどを判定基準としてもよい。また、本実施形態においては、誤りビット数が5回連続して4ビット以上であるか否かを判定基準としているため、管理テーブルにおいては過去4回分の誤りビット数を格納することとしているが、判定基準に応じて管理テーブルが何回分の誤りビット数を格納するか変えてもよい。
【0045】
ブロック番号Mに対応して格納されている誤りビット数が5回連続して4ビット以上である場合には(ステップS104:Yes)、CPU202は、ブロック番号Mをグループ1に設定する(ステップS105)。
【0046】
ブロック番号Mに対応して格納されている誤りビット数が5回連続して4ビット以上でない場合には(ステップS104:No)、CPU202は、ブロック番号Mに対応して格納されている最新の誤りビット数が3ビット以上であるか否かを判定する(ステップS106)。
【0047】
ブロック番号Mに対応して格納されている最新の誤りビット数が3ビット以上である場合には(ステップS106:Yes)、CPU202は、ブロック番号Mをグループ2に設定する(ステップS107)。
【0048】
ブロック番号Mに対応して格納されている最新の誤りビット数が3ビット以上でない場合には(ステップS106:No)、CPU202は、ブロック番号Mに対応して格納されている最新の誤りビット数が2ビット以上であるか否かを判定する(ステップS108)。
【0049】
ブロック番号Mに対応して格納されている最新の誤りビット数が2ビット以上である場合には(ステップS108:Yes)、CPU202は、ブロック番号Mをグループ3に設定する(ステップS109)。
【0050】
ブロック番号Mに対応して格納されている最新の誤りビット数が2ビット以上でない場合には(ステップS108:No)、CPU202は、ブロック番号Mに対応して格納されている最新の誤りビット数が1ビット以上であるか否かを判定する(ステップS110)。
【0051】
ブロック番号Mに対応して格納されている最新の誤りビット数が1ビット以上である場合には(ステップS110:Yes)、CPU202は、ブロックMをグループ4に設定する(ステップS111)。
【0052】
ブロック番号Mに対応して格納されている最新の誤りビット数が1ビット以上でない場合には(ステップS110:No)、CPU202は、ブロック番号Mのグループ分けを行わず、グループ番号M=M+1とし(ステップS112)、グループ番号Mが最終のブロック番号よりも大きいか否かを判定する(ステップS113)。
【0053】
グループ番号Mが最終のブロック番号よりも大きくない場合には(ステップS113:No)、CPU202は、ステップS104の処理に戻る。
【0054】
グループ番号Mが最終のブロック番号よりも大きい場合には(ステップS113:Yes)、CPU202は、ブロック毎に設定したグループを各ブロックに対応させて管理テーブル401に格納する。
【0055】
なお、上述したように、本実施形態においては、ECCデータを用いたプログラムデータの誤り訂正能力は4ビットであるとする。したがって、プログラムデータの誤りビット数が5ビット以上になると誤り訂正を行うことができなくなるおそれがある。そこで、CPU202は、各ブロックの誤りビット数を常に監視しており、誤りビット数が5回連続して4ビット以上であるブロックを検出した時点で、図3に示す各ブロックのグループ分けを行う。
【0056】
図5は、グループ分け後の管理テーブル401の状態を示す図である。
【0057】
図5に示すように、NANDフラッシュメモリ201は、各ブロックのブロック番号と、そのブロック番号に対して設定したグループを示す情報とを対応させて格納する。ここで、例えば、ブロック1およびブロック3は、最新のビット誤り数が1であるので、図3に示すフローに従い、グループ4に分類される。また、ブロック100は、最新のビット誤り数が2であるので、図3に示すフローに従い、グループ3に分類される。また、ブロック101は、誤りビット数が5回連続して4ビット以上であるので、図3に示すフローに従い、グループ1に分類される。また、ブロック102は、最新のビット誤り数が2であるので、図3に示すフローに従い、グループ3に分類される。また、ブロック0およびブロック2は、最新の誤りビット数が0であるので、いずれのグループにも分類されない。
【0058】
図6は、制御部107の再書込み時の動作を示すフローチャートである。
【0059】
図3に示すステップS114の処理の終了後、CPU202は、管理テーブル401に格納されている、ブロック番号とそのブロック番号に対して設定されたグループを示す情報とを読み出す(ステップS201)。
【0060】
次に、CPU202は、設定されたグループを示す情報に応じてブロック番号を並べなおす(ステップS202)。その結果、CPU202は、例えば、グループ1=ブロック番号101、グループ2=ブロック番号100、グループ3=ブロック番号102、グループ4=ブロック番号1、ブロック番号3というように、グループ毎に、そのグループに属するブロック番号を管理する。
【0061】
次に、CPU202は、グループ1にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS203)。ここで、上述したように、グループ1に属するブロックにおいては、4ビットのビット誤りが検出されているため、さらに誤りが発生すると、ECCデータを用いた誤り訂正能力を超え、誤り訂正ができなくなる。そこで、グループ1にブロック番号が属するブロックから優先的に再書込みを行うことで、ECCデータを用いた誤り訂正能力を超え、誤り訂正ができなくなるおそれを低減することができる。
【0062】
1つのブロックに対する再書込みが終了すると、CPU202は、グループ1にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS204)。
【0063】
グループ1にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS204:No)、ステップS203の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
【0064】
グループ1にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS204:Yes)、CPU202は、グループ1に属する全てのブロック番号に対応して格納されているブロック情報をクリアする(ステップS205)。なお、ブロック番号に対応して格納されているブロック情報をクリアするとは、そのブロック番号に対応して格納されている最新の誤りビット数を0にすることを示す。再書込みが終了したブロックのブロック番号に対応するブロック情報をクリアすることで、例えば、後述する再書込みの中断後に、再書込みを再開する場合に、管理テーブル401を参照し、再書込みを行っていないブロックを特定することができる。
【0065】
次に、CPU202は、再書込みの中断の要求があり、再書込みを中断する必要があるか否かを判定する(ステップS206)。なお、再書込みの中断の要求としては、例えば、操作部106を介して、優先順位の高い所定のプログラムの実行の要求などがある。
【0066】
再書込みを中断する必要がある場合には(ステップS206:Yes)、CPU202は、処理を終了する。
【0067】
再書込みを中断する必要がない場合には(ステップS206:No)、CPU202は、グループ2にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS207)。ここで、上述したように、グループ2にブロック番号が属するブロックは、グループ3およびグループ4にブロック番号が属するブロックよりも誤りビット数が多いため、グループ3およびグループ4にブロック番号が属するブロックよりも優先的に再書込みを行う必要がある。
【0068】
1つのブロックに対する再書込みが終了すると、CPU202は、グループ2にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS208)。
【0069】
グループ2にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS208:No)、ステップS207の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
【0070】
グループ2にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS208:Yes)、CPU202は、グループ2に属する全てのブロック番号に対応して格納されているブロック情報をクリアする(ステップS209)。
【0071】
次に、CPU202は、再書込みを中断する必要があるか否かを判定する(ステップS210)。
【0072】
再書込みを中断する必要がある場合には(ステップS210:Yes)、CPU202は、処理を終了する。
【0073】
再書込みを中断する必要がない場合には(ステップS210:No)、CPU202は、グループ3にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS211)。ここで、上述したように、グループ3にブロック番号が属するブロックは、グループ4にグループ番号が属するブロックよりも誤りビット数が多いため、グループ4にブロック番号が属するブロックよりも優先的に再書込みを行う必要がある。
【0074】
1つのブロックに対する再書込みが終了すると、CPU202は、グループ3にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS212)。
【0075】
グループ3にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS212:No)、ステップS211の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
【0076】
グループ3にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS212:Yes)、CPU202は、グループ3に属する全てのブロック番号に対応して格納されているブロック情報をクリアする(ステップS213)。
【0077】
次に、CPU202は、再書込みを中断する必要があるか否かを判定する(ステップS214)。
【0078】
再書込みを中断する必要がある場合には(ステップS214:Yes)、CPU202は、処理を終了する。
【0079】
再書込みを中断する必要がない場合には(ステップS214:No)、CPU202は、グループ4にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS215)。ここで、上述したように、グループ4にブロック番号が属するブロックは、グループ1からグループ3にブロック番号が属するブロックよりも誤りビット数が少なく、再書込みを行う必要性は低いため、グループ1からグループ4にブロック番号が属するブロックの中で最後に再書込みが行われる。
【0080】
1つのブロックに対する再書込みが終了すると、CPU202は、グループ4にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS216)。
【0081】
グループ4にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS216:No)、ステップS215の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
【0082】
グループ4にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS216:Yes)、CPU202は、グループ4に属する全てのブロック番号に対応して格納されているブロック情報をクリアして(ステップS217)、処理を終了する。
【0083】
図7は、グループ4に属するブロック番号が属する全てのブロックに対する再書込みが終了した後に、チェックサムの計算が行われた際の管理テーブル401の状態を示す図である。
【0084】
図7に示すように、誤りが検出されたブロックに対する再書込みが行われることで、各ブロックに格納されているプログラムデータに誤りが検出されなくなる。
【0085】
このように本実施形態の情報処理装置100によれば、NANDフラッシュメモリ201を構成する複数のブロックの各々について、ブロックに格納されているプログラムデータの誤り検出を定期的に行い、誤りを検出すると誤り訂正を行い、誤り訂正後のプログラムデータをそのブロックに対して再書込みする。
【0086】
NANDフラッシュメモリ201を構成する複数のブロックの各々について、定期的に格納されているデータの誤り検出および誤り訂正を行うため、経年変化に起因して生じる誤りも検出し、訂正することができる。
【0087】
また、本実施形態の情報処理装置100によれば、複数のブロックの各々について誤りビット数を検出し、検出した誤りビット数が多いブロックから順に再書込みを行うため、再書込みを中断しても、ECCデータを用いて誤りを訂正することができるビット数を超えて、プログラムデータに誤りが生じてしまう可能性を低減することができる。
【0088】
(第2の実施形態)
図8は、本発明の第2の実施形態の情報処理装置800の構成を示すブロック図である。なお、本発明は、情報処理装置に格納されているデータの誤り訂正を如何に適切に行うかに関するものであるため、本発明に直接関係しない構成については記載を省略する。
【0089】
図8に示す情報処理装置800は、記憶部801と、処理部802と、を有する。
【0090】
記憶部801は、データを格納するとともに、データの再書込みが可能なメモリである。なお、記憶部801の具体例としては、NANDフラッシュメモリがある。また、記憶部801は、図9に示すNANDフラッシュメモリの一般的なデータ構成と同様に、データを格納する所定の容量の複数のブロックからなる。
【0091】
処理部802は、記憶部801を構成する複数のブロックの各々について、そのブロックに格納されているデータの誤り検出を定期的に行い、検出した誤りの誤り訂正を行い、誤り訂正後のデータのそのブロックに対する再書込みを行う。
【0092】
このように本実施形態によれば、情報処理装置800は、記憶部801を構成する複数のブロックの各々について、ブロックに格納されているデータの誤り検出を定期的に行い、検出した誤りの誤り訂正を行い、誤り訂正後のデータのそのブロックに対する再書込みを行う。
【0093】
複数のブロックの各々について、定期的に格納されているデータの誤り検出を行うため、経年変化に起因する誤りについても、その誤りを検出し、訂正することができる。
【0094】
なお、本発明の情報処理装置において行われる方法は、コンピュータに実行させるためのプログラムに適用してもよい。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。
【符号の説明】
【0095】
100,800 情報処理装置
101 アンテナ
102 送受信部
103 スピーカ
104 マイク
105 表示部
106 操作部
107 制御部
108 電源部
201 NANDフラッシュメモリ
202 CPU
203 RAM
401 管理テーブル
801 記憶部
802 処理部

【特許請求の範囲】
【請求項1】
データを格納する複数のブロックからなり、前記複数のブロックの各々に対するデータの再書込みが可能な記憶部と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理部と、を有することを特徴とする情報処理装置。
【請求項2】
請求項1記載の情報処理装置において、
前記処理部は、前記複数のブロックの各々について、該ブロックに格納されているデータの誤り数を定期的に検出し、該検出した誤り数が多いブロックから順に再書込みを行うことを特徴とする情報処理装置。
【請求項3】
請求項2記載の情報処理装置において、
前記処理部は、前記検出した誤り数に応じて前記複数のブロックをグループ分けし、前記検出した誤り数が多いブロックが属するグループから順に、該グループに属するブロックに対する再書込みを行うことを特徴とする情報処理装置。
【請求項4】
請求項3記載の情報処理装置において、
前記ブロックに対する再書込みを行っている場合に再書込みの中断の要求が入力されると、前記ブロックが属するグループに属する全てのブロックに対する再書込みを行った後に、処理を中断することを特徴とする情報処理装置。
【請求項5】
情報処理装置の制御方法であって、
複数のブロックの各々にデータを格納し、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行うことを特徴とする情報処理装置の制御方法。
【請求項6】
請求項5記載の情報処理装置の制御方法において、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り数を定期的に検出し、該検出した誤り数が多いブロックから順に再書込みを行うことを特徴とする情報処理装置の制御方法。
【請求項7】
請求項6記載の情報処理装置の制御方法において、
前記検出した誤り数に応じて前記複数のブロックをグループ分けし、前記検出した誤り数が多いブロックが属するグループから順に、該グループに属するブロックに対する再書込みを行うことを特徴とする情報処理装置の制御方法。
【請求項8】
請求項7記載の情報処理装置の制御方法において、
前記ブロックに対する再書込みを行っている場合に再書込みの中断の要求が入力されると、前記ブロックが属するグループに属する全てのブロックに対する再書込みを行った後に、処理を中断することを特徴とする情報処理装置の制御方法。
【請求項9】
情報処理装置に、
複数のブロックの各々にデータを格納する処理と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理と、を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−243141(P2012−243141A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−113719(P2011−113719)
【出願日】平成23年5月20日(2011.5.20)
【出願人】(310006855)NECカシオモバイルコミュニケーションズ株式会社 (1,081)
【Fターム(参考)】