JP2012243141A - Information processing device, control method of information processing device, and program - Google Patents
Information processing device, control method of information processing device, and program Download PDFInfo
- Publication number
- JP2012243141A JP2012243141A JP2011113719A JP2011113719A JP2012243141A JP 2012243141 A JP2012243141 A JP 2012243141A JP 2011113719 A JP2011113719 A JP 2011113719A JP 2011113719 A JP2011113719 A JP 2011113719A JP 2012243141 A JP2012243141 A JP 2012243141A
- Authority
- JP
- Japan
- Prior art keywords
- block
- error
- information processing
- blocks
- detected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
Description
本発明は、データを格納する情報処理装置、情報処理装置の制御方法、および、プログラムに関する。 The present invention relates to an information processing apparatus that stores data, a control method for the information processing apparatus, and a program.
携帯電話、スマートフォンなどの情報処理装置は、一般に、プログラムを実行するCPU(Central Processing Unit)と、CPUが実行するプログラムなどのデータ(以下、プログラムデータと称する)を格納するメモリと、を有する。 Information processing apparatuses such as mobile phones and smartphones generally include a CPU (Central Processing Unit) that executes a program and a memory that stores data such as a program executed by the CPU (hereinafter referred to as program data).
近年、上述したメモリがRAM(Random Access Memory)およびNANDフラッシュメモリで構成される情報処理装置が主流となりつつある。このような情報処理装置においては、CPUは、RAMおよびNANDフラッシュメモリと接続され、NANDフラッシュメモリに格納されているプログラムデータを読み出し、読み出したプログラムデータをRAMに転送してプログラムを実行する。 In recent years, information processing apparatuses in which the above-described memory is composed of a RAM (Random Access Memory) and a NAND flash memory are becoming mainstream. In such an information processing apparatus, the CPU is connected to the RAM and the NAND flash memory, reads the program data stored in the NAND flash memory, transfers the read program data to the RAM, and executes the program.
一般に、NANDフラッシュメモリは、メモリセルの構造上、プログラムデータの読み出しを繰り返し行うと誤りが発生することがある。このプログラムデータの読み出しを繰り返し行うことにより誤りが発生する現象は、リードディスターブ現象と呼ばれる。プログラムデータに誤りがあると、CPUがプログラムを正しく実行できなくなることがある。 In general, in NAND flash memory, an error may occur when program data is repeatedly read due to the structure of a memory cell. A phenomenon in which an error occurs due to repeated reading of program data is called a read disturb phenomenon. If there is an error in the program data, the CPU may not be able to execute the program correctly.
そこで、一般に、NANDフラッシュメモリにおいては、プログラムデータとそのプログラムデータの誤り訂正を行うためのECC(Error Check and Correction)データとが対応つけて格納される。 Therefore, generally, in a NAND flash memory, program data and ECC (Error Check and Correction) data for performing error correction of the program data are stored in association with each other.
図9は、NANDフラッシュメモリの一般的なデータ構成を示す図である。 FIG. 9 is a diagram showing a general data configuration of the NAND flash memory.
図9に示すように、NANDフラッシュメモリは、プログラムデータを格納する領域Pとそのプログラムデータの誤り訂正を行うためのECCデータを格納する領域Eとからなるページをm個まとめたブロックを複数有する。このようなデータ構成とすることで、数ビットの誤りであれば、プログラムデータと同じページに格納されているECCデータを用いて誤り訂正を行うことができる。NANDフラッシュメモリにおいては、データの書込みはページ単位で行われ、格納されているデータの消去はブロック単位で行われる。なお、ECCデータを用いて誤り訂正を行うことができるビット数には上限がある。 As shown in FIG. 9, the NAND flash memory has a plurality of blocks in which m pages each composed of an area P for storing program data and an area E for storing ECC data for performing error correction of the program data are collected. . With such a data structure, if there is an error of several bits, error correction can be performed using ECC data stored on the same page as the program data. In the NAND flash memory, data is written in units of pages and stored data is erased in units of blocks. Note that there is an upper limit on the number of bits that can be corrected using ECC data.
特許文献1(特開2008−198310号公報)には、プログラムを実行するためにプログラムデータを読み出すとともに、そのプログラムデータの誤り検出を行い、誤りがあると誤り訂正を行った誤り訂正後のプログラムデータの、そのプログラムデータが格納されているブロックに対する再書込みを行う情報処理装置が開示されている。なお、再書込みとは、ブロックに格納されているプログラムデータを一時的に別の未使用ブロックに退避し、そのブロックに格納されているデータの消去後に元のプログラムデータ(誤り訂正後のデータ)をそのブロックに書き込むことである。この情報処理装置によれば、上述したリードディスターブ現象に起因するプログラムデータの誤りの誤り訂正を行い、誤りの無いリフレッシュされたプログラムデータをブロックに格納することができる。 Japanese Patent Laid-Open No. 2008-198310 discloses a program after error correction in which program data is read to execute a program, error of the program data is detected, and error correction is performed when there is an error. An information processing apparatus that rewrites data to a block in which program data is stored is disclosed. Note that rewriting means that program data stored in a block is temporarily saved in another unused block, and the original program data (data after error correction) is deleted after the data stored in the block is erased. Is written to the block. According to this information processing apparatus, it is possible to perform error correction of an error in program data caused by the above-described read disturb phenomenon, and to store refreshed program data having no error in a block.
NANDフラッシュメモリにおいては、上述したリードディスターブ現象に起因する誤りのほかに、経年変化に起因する誤りも生じる。特許文献1に開示の情報処理装置においては、プログラムデータの読み出しを契機として誤り訂正が行われる。そのため、頻繁に読み出しが行われるプログラムデータについては、頻繁に誤り訂正も行われるのに対し、頻繁に読み出しが行われないプログラムデータについては、誤り訂正も長期間にわたって行われないことがある。長期間にわたって誤り訂正が行われないと、経年変化に起因して生じる誤りが蓄積し、ECCデータを用いて誤り訂正を行うことができるビット数の上限を超えてしまい、誤り訂正を行うことができなくなるおそれがある。
In the NAND flash memory, in addition to the error due to the read disturb phenomenon described above, an error due to secular change also occurs. In the information processing apparatus disclosed in
本発明の目的は、経年変化に起因して生じる誤りの誤り訂正を行うことができる情報処理装置、情報処理装置の制御方法、および、プログラムを提供することになる。 An object of the present invention is to provide an information processing apparatus, an information processing apparatus control method, and a program capable of correcting an error caused by aging.
上記目的を達成するために本発明の情報処理装置は、
データを格納する複数のブロックからなり、前記複数のブロックの各々に対するデータの再書込みが可能な記憶部と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理部と、を有する。
In order to achieve the above object, the information processing apparatus of the present invention provides:
A plurality of blocks for storing data, and a storage unit capable of rewriting data for each of the plurality of blocks;
For each of the plurality of blocks, error detection of the data stored in the block is periodically performed. When an error is detected, error detection of the detected error is performed, and the error-corrected data is re-executed with respect to the block. And a processing unit that performs writing.
上記目的を達成するために本発明の情報処理装置の制御方法は、
情報処理装置の制御方法であって、
複数のブロックの各々にデータを格納し、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う。
In order to achieve the above object, a method for controlling an information processing apparatus of the present invention includes:
A method for controlling an information processing apparatus,
Store data in each of multiple blocks,
For each of the plurality of blocks, error detection of the data stored in the block is periodically performed. When an error is detected, error detection of the detected error is performed, and the error-corrected data is re-executed with respect to the block. Write.
上記目的を達成するために本発明のプログラムは、
情報処理装置に、
複数のブロックの各々にデータを格納する処理と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理と、を実行させる。
In order to achieve the above object, the program of the present invention
In the information processing device,
A process of storing data in each of a plurality of blocks;
For each of the plurality of blocks, error detection of the data stored in the block is periodically performed. When an error is detected, error detection of the detected error is performed, and the error-corrected data is re-executed with respect to the block. And a process for performing writing.
本発明によれば、経年変化に起因して生じる誤りの誤り訂正を行うことができる。 According to the present invention, it is possible to perform error correction of errors caused by aging.
以下に、本発明を実施するための形態について図面を参照して説明する。 EMBODIMENT OF THE INVENTION Below, the form for implementing this invention is demonstrated with reference to drawings.
(第1の実施形態)
図1は、本発明の第1の実施形態の情報処理装置100の構成を示すブロック図である。なお、図1においては、情報処理装置100が携帯電話である場合を例として説明するが、本発明はこれに限られるものではなく、情報処理装置100としては、スマートフォン、PDA(Personal Digital Assistants)、ポータブル音楽プレーヤー、電子手帳、パーソナルコンピュータ、トランシーバ、携帯型ゲーム機など種々のものがある。
(First embodiment)
FIG. 1 is a block diagram showing the configuration of the
図1に示す情報処理装置100は、アンテナ101と、送受信部102と、スピーカ103と、マイク104と、表示部105と、操作部106と、制御部107と、電源部108と、を有する。
An
送受信部102は、制御部107の制御に従い、アンテナ101を介して電波を送受信する。
The transmission /
スピーカ103は、制御部107の制御に従い、音を出力する。
The
マイク104は、制御部107の制御に従い、周辺の音を集音し、音データを制御部107に出力する。
The
表示部105は、制御部107の制御に従い、種々の映像を表示する。
The
操作部106は、ユーザーの操作入力に応じた信号を制御部107に出力する。なお、操作部106の具体例としては、タッチパネルなどがある。
The
制御部107は、操作部106から出力される信号に応じて種々のプログラムを実行し、送受信部102、スピーカ103、マイク104、表示部105などを制御する。
The
電源部108は、上述した各部に電力を供給する。
The
次に、制御部107の内部構成について説明する。
Next, the internal configuration of the
図2は、制御部107の構成を示すブロック図である。
FIG. 2 is a block diagram illustrating a configuration of the
図2に示す制御部107は、NANDフラッシュメモリ201と、CPU202と、RAM203と、を有する。CPU202は、処理部の一例である。
The
NANDフラッシュメモリ201は、図9に示すように、プログラムデータを格納する領域Pとそのプログラムデータの誤り訂正を行うためのECCデータを格納するための領域Eとからなるページをm個まとめたブロックを複数有する。なお、ECCデータは、プログラムデータの書き込み時に計算され、そのプログラムデータと同じページの領域Eに書き込まれる。一般に、1つのページの容量は、領域Pおよび領域Eを合わせて2112バイトである。ECCデータを用いて誤り訂正を行う方式には、一例として、プログラムデータ512バイトに対して16ビットのECCデータを付加して1ビットの誤り訂正を行う方式や、4ビットの誤り訂正を行う方式などがある。また、プログラムデータの書込みはページ単位で行われ、格納されているプログラムデータの消去はブロック単位で行われ、各ブロックに対してはプログラムデータの再書込みが可能である。
As shown in FIG. 9, the
また、NANDフラッシュメモリ201は、複数のブロックの各々について、そのブロックのブロック番号とそのブロックに格納されているプログラムデータの誤りビット数とを対応つけた管理テーブルを格納する。
Further, the
CPU202は、NANDフラッシュメモリ201に格納されているプログラムデータを読み出し、RAM203に転送してプログラムを実行する。
The
また、CPU202は、定期的に、NANDフラッシュメモリ201を構成する複数のブロックの各々について、そのブロックに含まれるページ毎に、そのページに格納されているプログラムデータのチェックサムを計算して誤り検出を行い、誤りを検出すると、そのプログラムデータと同じページに格納されているECCデータを用いて誤り訂正を行い、誤り訂正後のデータの再書込みを行う。
Further, the
RAM203は、CPUP202から転送されたプログラムデータを一時的に格納する。
The
次に、本実施形態の制御部107の動作について説明する。
Next, the operation of the
図3は、制御部107のチェックサムの計算時の動作を示すフローチャートである。
FIG. 3 is a flowchart showing the operation of the
なお、以下では、ECCデータを用いたプログラムデータの誤り訂正能力は4ビットであるとする。 In the following, it is assumed that the error correction capability of program data using ECC data is 4 bits.
CPU202は、定期的に、NANDフラッシュメモリ201を構成する複数のブロックの各々について、そのブロックに含まれるページ毎に、そのページに格納されているプログラムデータのチェックサムを計算し(ステップS101)、計算結果に応じて、そのプログラムデータの誤りビット数を検出し、検出した誤りビット数をRAM203に一時的に格納させる。
The
全てのブロックについて、各ブロックに含まれる全てのページに格納されているプログラムデータの誤りビット数の検出が終了すると、CPU202は、各ブロックにおけるプログラムデータの誤りビット数の合計を、そのブロックのブロック番号に対応させて管理テーブルに格納する(ステップS102)。
When the detection of the number of error bits of the program data stored in all pages included in each block is completed for all the blocks, the
図4は、管理テーブル401の構成の一例を示す図である。 FIG. 4 is a diagram illustrating an example of the configuration of the management table 401.
図4に示すように、NANDフラッシュメモリ201は、各ブロックのブロック番号と、そのブロックに格納されているプログラムデータの誤りビット数とを対応させた管理テーブル401を格納する。
As shown in FIG. 4, the
なお、上述したように、CPU202は、定期的に、各ブロックに格納されているプログラムデータのチェックサムの計算を行い、誤りビット数の検出を行う。管理テーブル401においては、直近の誤りビット数の検出の結果(最新)に加えて、過去4回分の誤りビット数の検出の結果(+1〜+4)が格納される。
As described above, the
図4においては、例えば、ブロック番号M=0のブロックは、最新の(最後のチェックサムの計算を行った際の)誤りビット数が0であり、また、1回前から4回前のチャックサムの計算を行った際の誤りビット数も0であることを示す。また、例えば、ブロック番号M=100のブロックは、最新の(最後のチェックサムの計算を行った際の)誤りビット数が3であり、また、1回前から4回前のチェックサムの計算を行った際の誤りビット数が2であることを示す。 In FIG. 4, for example, the latest error bit number (when the last checksum is calculated) is 0 for the block with block number M = 0, and the chuck is 1 to 4 times before. It indicates that the number of error bits when the sum is calculated is also zero. Also, for example, the block with the block number M = 100 has the latest number of error bits (when the last checksum is calculated) of 3, and the calculation of the checksum four times before one time. Indicates that the number of error bits is 2.
再び、図3を参照すると、CPU202は、ブロック番号M=0とし(ステップS103)、図4に示す管理テーブル401において、ブロック番号Mに対応して格納されている誤りビット数が5回連続して4ビット以上であるか否かを判定する(ステップS104)。なお、上記の判定基準は一例であり、例えば、最新の誤りビット数が4ビット以上であるか否かなどを判定基準としてもよい。また、本実施形態においては、誤りビット数が5回連続して4ビット以上であるか否かを判定基準としているため、管理テーブルにおいては過去4回分の誤りビット数を格納することとしているが、判定基準に応じて管理テーブルが何回分の誤りビット数を格納するか変えてもよい。
Referring to FIG. 3 again, the
ブロック番号Mに対応して格納されている誤りビット数が5回連続して4ビット以上である場合には(ステップS104:Yes)、CPU202は、ブロック番号Mをグループ1に設定する(ステップS105)。
When the number of error bits stored corresponding to the block number M is 4 bits or more for 5 consecutive times (step S104: Yes), the
ブロック番号Mに対応して格納されている誤りビット数が5回連続して4ビット以上でない場合には(ステップS104:No)、CPU202は、ブロック番号Mに対応して格納されている最新の誤りビット数が3ビット以上であるか否かを判定する(ステップS106)。
When the number of error bits stored corresponding to the block number M is not 4 bits or more in succession 5 times (step S104: No), the
ブロック番号Mに対応して格納されている最新の誤りビット数が3ビット以上である場合には(ステップS106:Yes)、CPU202は、ブロック番号Mをグループ2に設定する(ステップS107)。
When the latest number of error bits stored corresponding to the block number M is 3 bits or more (step S106: Yes), the
ブロック番号Mに対応して格納されている最新の誤りビット数が3ビット以上でない場合には(ステップS106:No)、CPU202は、ブロック番号Mに対応して格納されている最新の誤りビット数が2ビット以上であるか否かを判定する(ステップS108)。
When the latest error bit number stored corresponding to the block number M is not 3 bits or more (step S106: No), the
ブロック番号Mに対応して格納されている最新の誤りビット数が2ビット以上である場合には(ステップS108:Yes)、CPU202は、ブロック番号Mをグループ3に設定する(ステップS109)。
When the latest number of error bits stored corresponding to the block number M is 2 bits or more (step S108: Yes), the
ブロック番号Mに対応して格納されている最新の誤りビット数が2ビット以上でない場合には(ステップS108:No)、CPU202は、ブロック番号Mに対応して格納されている最新の誤りビット数が1ビット以上であるか否かを判定する(ステップS110)。
When the latest error bit number stored corresponding to the block number M is not 2 bits or more (step S108: No), the
ブロック番号Mに対応して格納されている最新の誤りビット数が1ビット以上である場合には(ステップS110:Yes)、CPU202は、ブロックMをグループ4に設定する(ステップS111)。
When the latest number of error bits stored corresponding to the block number M is 1 bit or more (step S110: Yes), the
ブロック番号Mに対応して格納されている最新の誤りビット数が1ビット以上でない場合には(ステップS110:No)、CPU202は、ブロック番号Mのグループ分けを行わず、グループ番号M=M+1とし(ステップS112)、グループ番号Mが最終のブロック番号よりも大きいか否かを判定する(ステップS113)。
When the latest number of error bits stored corresponding to the block number M is not 1 bit or more (step S110: No), the
グループ番号Mが最終のブロック番号よりも大きくない場合には(ステップS113:No)、CPU202は、ステップS104の処理に戻る。
If the group number M is not greater than the final block number (step S113: No), the
グループ番号Mが最終のブロック番号よりも大きい場合には(ステップS113:Yes)、CPU202は、ブロック毎に設定したグループを各ブロックに対応させて管理テーブル401に格納する。
When the group number M is larger than the final block number (step S113: Yes), the
なお、上述したように、本実施形態においては、ECCデータを用いたプログラムデータの誤り訂正能力は4ビットであるとする。したがって、プログラムデータの誤りビット数が5ビット以上になると誤り訂正を行うことができなくなるおそれがある。そこで、CPU202は、各ブロックの誤りビット数を常に監視しており、誤りビット数が5回連続して4ビット以上であるブロックを検出した時点で、図3に示す各ブロックのグループ分けを行う。
As described above, in this embodiment, it is assumed that the error correction capability of program data using ECC data is 4 bits. Therefore, if the number of error bits in the program data is 5 bits or more, there is a possibility that error correction cannot be performed. Therefore, the
図5は、グループ分け後の管理テーブル401の状態を示す図である。 FIG. 5 is a diagram showing the state of the management table 401 after grouping.
図5に示すように、NANDフラッシュメモリ201は、各ブロックのブロック番号と、そのブロック番号に対して設定したグループを示す情報とを対応させて格納する。ここで、例えば、ブロック1およびブロック3は、最新のビット誤り数が1であるので、図3に示すフローに従い、グループ4に分類される。また、ブロック100は、最新のビット誤り数が2であるので、図3に示すフローに従い、グループ3に分類される。また、ブロック101は、誤りビット数が5回連続して4ビット以上であるので、図3に示すフローに従い、グループ1に分類される。また、ブロック102は、最新のビット誤り数が2であるので、図3に示すフローに従い、グループ3に分類される。また、ブロック0およびブロック2は、最新の誤りビット数が0であるので、いずれのグループにも分類されない。
As shown in FIG. 5, the
図6は、制御部107の再書込み時の動作を示すフローチャートである。
FIG. 6 is a flowchart showing the operation of the
図3に示すステップS114の処理の終了後、CPU202は、管理テーブル401に格納されている、ブロック番号とそのブロック番号に対して設定されたグループを示す情報とを読み出す(ステップS201)。
After the process of step S114 shown in FIG. 3 is completed, the
次に、CPU202は、設定されたグループを示す情報に応じてブロック番号を並べなおす(ステップS202)。その結果、CPU202は、例えば、グループ1=ブロック番号101、グループ2=ブロック番号100、グループ3=ブロック番号102、グループ4=ブロック番号1、ブロック番号3というように、グループ毎に、そのグループに属するブロック番号を管理する。
Next, the
次に、CPU202は、グループ1にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS203)。ここで、上述したように、グループ1に属するブロックにおいては、4ビットのビット誤りが検出されているため、さらに誤りが発生すると、ECCデータを用いた誤り訂正能力を超え、誤り訂正ができなくなる。そこで、グループ1にブロック番号が属するブロックから優先的に再書込みを行うことで、ECCデータを用いた誤り訂正能力を超え、誤り訂正ができなくなるおそれを低減することができる。
Next, the
1つのブロックに対する再書込みが終了すると、CPU202は、グループ1にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS204)。
When the rewriting for one block is completed, the
グループ1にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS204:No)、ステップS203の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
If rewriting to all blocks to which the block number belongs to
グループ1にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS204:Yes)、CPU202は、グループ1に属する全てのブロック番号に対応して格納されているブロック情報をクリアする(ステップS205)。なお、ブロック番号に対応して格納されているブロック情報をクリアするとは、そのブロック番号に対応して格納されている最新の誤りビット数を0にすることを示す。再書込みが終了したブロックのブロック番号に対応するブロック情報をクリアすることで、例えば、後述する再書込みの中断後に、再書込みを再開する場合に、管理テーブル401を参照し、再書込みを行っていないブロックを特定することができる。
When rewriting to all blocks to which block numbers belong to
次に、CPU202は、再書込みの中断の要求があり、再書込みを中断する必要があるか否かを判定する(ステップS206)。なお、再書込みの中断の要求としては、例えば、操作部106を介して、優先順位の高い所定のプログラムの実行の要求などがある。
Next, the
再書込みを中断する必要がある場合には(ステップS206:Yes)、CPU202は、処理を終了する。
When it is necessary to interrupt rewriting (step S206: Yes), the
再書込みを中断する必要がない場合には(ステップS206:No)、CPU202は、グループ2にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS207)。ここで、上述したように、グループ2にブロック番号が属するブロックは、グループ3およびグループ4にブロック番号が属するブロックよりも誤りビット数が多いため、グループ3およびグループ4にブロック番号が属するブロックよりも優先的に再書込みを行う必要がある。
When it is not necessary to interrupt the rewrite (step S206: No), the
1つのブロックに対する再書込みが終了すると、CPU202は、グループ2にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS208)。
When the rewriting for one block is completed, the
グループ2にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS208:No)、ステップS207の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
If rewriting for all blocks to which the block number belongs to
グループ2にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS208:Yes)、CPU202は、グループ2に属する全てのブロック番号に対応して格納されているブロック情報をクリアする(ステップS209)。
When rewriting to all blocks to which the block number belongs to
次に、CPU202は、再書込みを中断する必要があるか否かを判定する(ステップS210)。
Next, the
再書込みを中断する必要がある場合には(ステップS210:Yes)、CPU202は、処理を終了する。
When it is necessary to interrupt rewriting (step S210: Yes), the
再書込みを中断する必要がない場合には(ステップS210:No)、CPU202は、グループ3にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS211)。ここで、上述したように、グループ3にブロック番号が属するブロックは、グループ4にグループ番号が属するブロックよりも誤りビット数が多いため、グループ4にブロック番号が属するブロックよりも優先的に再書込みを行う必要がある。
When it is not necessary to interrupt the rewrite (step S210: No), the
1つのブロックに対する再書込みが終了すると、CPU202は、グループ3にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS212)。
When the rewriting for one block is completed, the
グループ3にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS212:No)、ステップS211の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
If rewriting for all blocks to which the block number belongs to
グループ3にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS212:Yes)、CPU202は、グループ3に属する全てのブロック番号に対応して格納されているブロック情報をクリアする(ステップS213)。
When rewriting to all blocks to which the block number belongs to
次に、CPU202は、再書込みを中断する必要があるか否かを判定する(ステップS214)。
Next, the
再書込みを中断する必要がある場合には(ステップS214:Yes)、CPU202は、処理を終了する。
When the rewriting needs to be interrupted (step S214: Yes), the
再書込みを中断する必要がない場合には(ステップS214:No)、CPU202は、グループ4にブロック番号が属するブロックについて、誤りが検出されたプログラムデータの誤り訂正を行い、そのブロックに対する再書込みを行う(ステップS215)。ここで、上述したように、グループ4にブロック番号が属するブロックは、グループ1からグループ3にブロック番号が属するブロックよりも誤りビット数が少なく、再書込みを行う必要性は低いため、グループ1からグループ4にブロック番号が属するブロックの中で最後に再書込みが行われる。
When it is not necessary to interrupt the rewrite (step S214: No), the
1つのブロックに対する再書込みが終了すると、CPU202は、グループ4にブロック番号が属する全てのブロックに対する再書込みが終了したか否かを判定する(ステップS216)。
When the rewriting for one block is completed, the
グループ4にブロック番号が属する全てのブロックに対する再書込みが終了していない場合には(ステップS216:No)、ステップS215の処理に戻り、再書込みが終了していないブロックに対する再書込みを行う。
When rewriting to all blocks to which the block number belongs to
グループ4にブロック番号が属する全てのブロックに対する再書込みが終了した場合には(ステップS216:Yes)、CPU202は、グループ4に属する全てのブロック番号に対応して格納されているブロック情報をクリアして(ステップS217)、処理を終了する。
When rewriting to all the blocks to which the block number belongs to
図7は、グループ4に属するブロック番号が属する全てのブロックに対する再書込みが終了した後に、チェックサムの計算が行われた際の管理テーブル401の状態を示す図である。
FIG. 7 is a diagram showing the state of the management table 401 when the checksum is calculated after rewriting to all the blocks to which the block numbers belonging to the
図7に示すように、誤りが検出されたブロックに対する再書込みが行われることで、各ブロックに格納されているプログラムデータに誤りが検出されなくなる。 As shown in FIG. 7, the error is not detected in the program data stored in each block by rewriting the block in which the error is detected.
このように本実施形態の情報処理装置100によれば、NANDフラッシュメモリ201を構成する複数のブロックの各々について、ブロックに格納されているプログラムデータの誤り検出を定期的に行い、誤りを検出すると誤り訂正を行い、誤り訂正後のプログラムデータをそのブロックに対して再書込みする。
As described above, according to the
NANDフラッシュメモリ201を構成する複数のブロックの各々について、定期的に格納されているデータの誤り検出および誤り訂正を行うため、経年変化に起因して生じる誤りも検出し、訂正することができる。
Since each of a plurality of blocks constituting the
また、本実施形態の情報処理装置100によれば、複数のブロックの各々について誤りビット数を検出し、検出した誤りビット数が多いブロックから順に再書込みを行うため、再書込みを中断しても、ECCデータを用いて誤りを訂正することができるビット数を超えて、プログラムデータに誤りが生じてしまう可能性を低減することができる。
Further, according to the
(第2の実施形態)
図8は、本発明の第2の実施形態の情報処理装置800の構成を示すブロック図である。なお、本発明は、情報処理装置に格納されているデータの誤り訂正を如何に適切に行うかに関するものであるため、本発明に直接関係しない構成については記載を省略する。
(Second Embodiment)
FIG. 8 is a block diagram showing the configuration of the information processing apparatus 800 according to the second embodiment of this invention. Note that the present invention relates to how to properly perform error correction of data stored in the information processing apparatus, and therefore, description of configurations not directly related to the present invention is omitted.
図8に示す情報処理装置800は、記憶部801と、処理部802と、を有する。
An information processing apparatus 800 illustrated in FIG. 8 includes a
記憶部801は、データを格納するとともに、データの再書込みが可能なメモリである。なお、記憶部801の具体例としては、NANDフラッシュメモリがある。また、記憶部801は、図9に示すNANDフラッシュメモリの一般的なデータ構成と同様に、データを格納する所定の容量の複数のブロックからなる。
The
処理部802は、記憶部801を構成する複数のブロックの各々について、そのブロックに格納されているデータの誤り検出を定期的に行い、検出した誤りの誤り訂正を行い、誤り訂正後のデータのそのブロックに対する再書込みを行う。
The
このように本実施形態によれば、情報処理装置800は、記憶部801を構成する複数のブロックの各々について、ブロックに格納されているデータの誤り検出を定期的に行い、検出した誤りの誤り訂正を行い、誤り訂正後のデータのそのブロックに対する再書込みを行う。
As described above, according to the present embodiment, the information processing apparatus 800 periodically performs error detection on the data stored in the block for each of the plurality of blocks constituting the
複数のブロックの各々について、定期的に格納されているデータの誤り検出を行うため、経年変化に起因する誤りについても、その誤りを検出し、訂正することができる。 For each of the plurality of blocks, the error of the data stored periodically is detected, so that the error caused by the secular change can be detected and corrected.
なお、本発明の情報処理装置において行われる方法は、コンピュータに実行させるためのプログラムに適用してもよい。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。 In addition, you may apply the method performed in the information processing apparatus of this invention to the program for making a computer perform. In addition, the program can be stored in a storage medium and can be provided to the outside via a network.
100,800 情報処理装置
101 アンテナ
102 送受信部
103 スピーカ
104 マイク
105 表示部
106 操作部
107 制御部
108 電源部
201 NANDフラッシュメモリ
202 CPU
203 RAM
401 管理テーブル
801 記憶部
802 処理部
DESCRIPTION OF SYMBOLS 100,800
203 RAM
401 management table 801
Claims (9)
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理部と、を有することを特徴とする情報処理装置。 A plurality of blocks for storing data, and a storage unit capable of rewriting data for each of the plurality of blocks;
For each of the plurality of blocks, error detection of the data stored in the block is periodically performed. When an error is detected, error detection of the detected error is performed, and the error-corrected data is re-executed with respect to the block. An information processing apparatus comprising: a processing unit that performs writing.
前記処理部は、前記複数のブロックの各々について、該ブロックに格納されているデータの誤り数を定期的に検出し、該検出した誤り数が多いブロックから順に再書込みを行うことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The processing unit periodically detects the number of errors in data stored in each of the plurality of blocks, and rewrites the blocks in descending order of the detected number of errors. Information processing device.
前記処理部は、前記検出した誤り数に応じて前記複数のブロックをグループ分けし、前記検出した誤り数が多いブロックが属するグループから順に、該グループに属するブロックに対する再書込みを行うことを特徴とする情報処理装置。 The information processing apparatus according to claim 2,
The processing unit divides the plurality of blocks according to the detected number of errors, and rewrites the blocks belonging to the group in order from the group to which the detected block having the highest number of errors belongs. Information processing apparatus.
前記ブロックに対する再書込みを行っている場合に再書込みの中断の要求が入力されると、前記ブロックが属するグループに属する全てのブロックに対する再書込みを行った後に、処理を中断することを特徴とする情報処理装置。 The information processing apparatus according to claim 3,
When a rewrite interruption request is input when rewriting to the block is performed, the process is interrupted after rewriting is performed on all blocks belonging to the group to which the block belongs. Information processing device.
複数のブロックの各々にデータを格納し、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行うことを特徴とする情報処理装置の制御方法。 A method for controlling an information processing apparatus,
Store data in each of multiple blocks,
For each of the plurality of blocks, error detection of the data stored in the block is periodically performed. When an error is detected, error detection of the detected error is performed, and the error-corrected data is re-executed with respect to the block. A method for controlling an information processing apparatus, wherein writing is performed.
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り数を定期的に検出し、該検出した誤り数が多いブロックから順に再書込みを行うことを特徴とする情報処理装置の制御方法。 The control method of the information processing apparatus according to claim 5,
Control of the information processing apparatus, wherein for each of the plurality of blocks, the number of errors in data stored in the block is periodically detected, and rewriting is performed in order from the block with the largest number of detected errors Method.
前記検出した誤り数に応じて前記複数のブロックをグループ分けし、前記検出した誤り数が多いブロックが属するグループから順に、該グループに属するブロックに対する再書込みを行うことを特徴とする情報処理装置の制御方法。 The control method of the information processing apparatus according to claim 6,
An information processing apparatus comprising: grouping the plurality of blocks according to the detected number of errors; and rewriting the blocks belonging to the group in order from the group to which the block with the large number of detected errors belongs. Control method.
前記ブロックに対する再書込みを行っている場合に再書込みの中断の要求が入力されると、前記ブロックが属するグループに属する全てのブロックに対する再書込みを行った後に、処理を中断することを特徴とする情報処理装置の制御方法。 In the control method of the information processing apparatus according to claim 7,
When a rewrite interruption request is input when rewriting to the block is performed, the process is interrupted after rewriting is performed on all blocks belonging to the group to which the block belongs. A method for controlling an information processing apparatus.
複数のブロックの各々にデータを格納する処理と、
前記複数のブロックの各々について、該ブロックに格納されているデータの誤り検出を定期的に行い、誤りを検出すると、該検出した誤りの誤り訂正を行い、誤り訂正後のデータの前記ブロックに対する再書込みを行う処理と、を実行させるプログラム。 In the information processing device,
A process of storing data in each of a plurality of blocks;
For each of the plurality of blocks, error detection of the data stored in the block is periodically performed. When an error is detected, error detection of the detected error is performed, and the error-corrected data is re-executed with respect to the block. A program that executes a process of performing writing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011113719A JP2012243141A (en) | 2011-05-20 | 2011-05-20 | Information processing device, control method of information processing device, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011113719A JP2012243141A (en) | 2011-05-20 | 2011-05-20 | Information processing device, control method of information processing device, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012243141A true JP2012243141A (en) | 2012-12-10 |
Family
ID=47464773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011113719A Withdrawn JP2012243141A (en) | 2011-05-20 | 2011-05-20 | Information processing device, control method of information processing device, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012243141A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014186266A (en) * | 2013-03-25 | 2014-10-02 | Goo Chemical Co Ltd | Resin composition for solder resist and printed wiring board |
CN109992443A (en) * | 2019-03-06 | 2019-07-09 | 珠海妙存科技有限公司 | A kind of nand flash memory data checking |
-
2011
- 2011-05-20 JP JP2011113719A patent/JP2012243141A/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014186266A (en) * | 2013-03-25 | 2014-10-02 | Goo Chemical Co Ltd | Resin composition for solder resist and printed wiring board |
CN109992443A (en) * | 2019-03-06 | 2019-07-09 | 珠海妙存科技有限公司 | A kind of nand flash memory data checking |
CN109992443B (en) * | 2019-03-06 | 2023-03-10 | 珠海妙存科技有限公司 | NAND flash memory data checking method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572489B (en) | Wear leveling method and device | |
KR101543245B1 (en) | Error correcting device memory device and data processing system including the same | |
TWI479495B (en) | Reading method, memory controller, and memory storage device | |
JP5764392B2 (en) | Memory controller | |
US8671330B2 (en) | Storage device, electronic device, and data error correction method | |
US9110786B2 (en) | Read operation prior to retrieval of scatter gather list | |
US9513992B2 (en) | Method and apparatus to perform concurrent read and write memory operations | |
US9933975B1 (en) | Data transmission method, memory storage device and memory control circuit unit | |
WO2021232699A1 (en) | Data reading method, apparatus and device, and readable storage medium | |
JP6102515B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
CN107203436B (en) | Method and device for data verification of Nand Flash | |
US9594629B2 (en) | Data error correction from cached error correction information | |
US9652394B2 (en) | System and method for managing a cache pool | |
CN102419734A (en) | Method and device for storing data | |
TW202305598A (en) | Method for managing memory buffer, memory control circuit unit and memory storage apparatus | |
JP2012243141A (en) | Information processing device, control method of information processing device, and program | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
KR20170132483A (en) | Method of operating memory device | |
CN113504880B (en) | Memory buffer management method, memory control circuit unit and memory device | |
US10956261B2 (en) | Volatile memory device and operating method thereof | |
US8429338B2 (en) | Method and apparatus for emulating byte wise programmable functionality into sector wise erasable memory | |
CN113625935A (en) | Method, device, equipment and storage medium for reducing read interference influence | |
CN114879916B (en) | Method and device for managing storage unit | |
JP4696500B2 (en) | Memory management method and apparatus | |
CN103455427A (en) | Write operation method and device of Nand-flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140805 |