JP2011138364A - Memory system - Google Patents
Memory system Download PDFInfo
- Publication number
- JP2011138364A JP2011138364A JP2009298512A JP2009298512A JP2011138364A JP 2011138364 A JP2011138364 A JP 2011138364A JP 2009298512 A JP2009298512 A JP 2009298512A JP 2009298512 A JP2009298512 A JP 2009298512A JP 2011138364 A JP2011138364 A JP 2011138364A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- block
- data
- unit
- memory system
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】
本発明は、簡便な方法で、消去回数の記憶容量を低減可能なメモリシステムを提供する。
【解決手段】
データの消去の単位であるブロックにデータを記憶可能な記憶部と、前記記憶部に記憶されるデータが消去されるたびに保存される消去演算回数を記憶するカウンタ記憶部33と、前記記憶部に記憶される前記データが消去されるとき、乱数を取得する乱数取得部30と、前記乱数が、所定の条件を満たすか否かを判定する条件判定部31と、前記条件判定部31により前記乱数が所定の条件を満たすと判定されたとき、前記消去演算回数を歩進させる消去回数歩進部32と、前記記憶部に記憶された消去演算回数が所定の回数を超えたときに、前記所定の条件を変更する変更部34とを備えたことを特徴とするメモリシステム。
【選択図】図5【Task】
The present invention provides a memory system capable of reducing the storage capacity of the number of erasures by a simple method.
[Solution]
A storage unit capable of storing data in a block which is a unit of erasing data; a counter storage unit 33 for storing the number of times of erasure calculation stored each time the data stored in the storage unit is erased; and the storage unit When the data stored in is erased, the random number acquisition unit 30 that acquires a random number, the condition determination unit 31 that determines whether the random number satisfies a predetermined condition, and the condition determination unit 31 When it is determined that the random number satisfies a predetermined condition, the erasure count step 32 for incrementing the erasure calculation count, and when the erasure calculation count stored in the storage section exceeds a predetermined count, A memory system comprising: a changing unit 34 for changing a predetermined condition.
[Selection] Figure 5
Description
本発明は、読み出し回数に制限を有するフラッシュメモリを用いたメモリシステムに関する。 The present invention relates to a memory system using a flash memory having a limit on the number of times of reading.
不揮発性半導体メモリ、例えば、フラッシュメモリは、様々な電子機器に搭載されてい
る。不揮発性半導体メモリには、例えばNAND型フラッシュメモリのように、データを
消去する場合にはブロック単位で行い、データの書き込み/読み出しの場合には、ページ単位で行うように、消去/書き込み/読み出しにおける管理単位が異なるものがある。
Nonvolatile semiconductor memories, such as flash memories, are mounted on various electronic devices. In a nonvolatile semiconductor memory, for example, as in a NAND flash memory, erasing / writing / reading is performed in units of blocks when erasing data, and in units of pages when writing / reading data. Some management units are different.
パーソナルコンピュータなどのホスト機器を用いて、不揮発性半導体メモリにデータの書き込みをするとき、不揮発性半導体メモリのアドレス領域を指定し書き込みを行う。 When data is written into the nonvolatile semiconductor memory using a host device such as a personal computer, the address area of the nonvolatile semiconductor memory is designated and written.
このような不揮発性半導体メモリはデータの上書きができないため、不揮発性半導体メモリのデータの書き換えをする際において、書き換え前のデータが保存された元ブロック内でホスト機器から書き換え要求がないデータを、書き換え後のデータの書き込み先である新ブロックに移し、この新ブロックにホスト機器から書き換え要求されたデータを書き込んだ後に、元ブロックに保存されたデータを消去する必要がある。つまり、外部から指定されたアドレスにデータの書き換えをしていくと、特定の領域に短時間に書き換え、すなわち消去の処理が集中し、特定の領域における消去回数の偏りが大きくなる。 Since such a nonvolatile semiconductor memory cannot overwrite data, when rewriting the data of the nonvolatile semiconductor memory, the data without a rewrite request from the host device in the original block in which the data before rewriting is saved, It is necessary to move to a new block where the data after rewriting is written, write the data requested to be rewritten from the host device to the new block, and then erase the data stored in the original block. In other words, when data is rewritten to an address designated from the outside, rewriting, that is, erasing processing concentrates in a specific area in a short time, and the bias of erasure frequency in the specific area increases.
そのため、不揮発性半導体メモリでは、データの書き換え箇所を均等に分散させるウェアレベリングと呼ばれる処理が行われる。このウェアレベリングの処理を行うために、不揮発性半導体メモリのブロックの消去回数をメモリ内に保存する必要がある。 Therefore, in the nonvolatile semiconductor memory, a process called wear leveling is performed in which data rewrite locations are evenly distributed. In order to perform the wear leveling process, it is necessary to store the number of erases of the block of the nonvolatile semiconductor memory in the memory.
近年の不揮発性半導体メモリの大容量化に伴い、不揮発性半導体メモリのブロック数が増大し、消去回数を保存する記憶容量も増大するという問題が生じる。 With the recent increase in capacity of nonvolatile semiconductor memories, there is a problem that the number of blocks of the nonvolatile semiconductor memory increases and the storage capacity for storing the number of erasures also increases.
本発明は、簡便な方法で、消去回数の記憶容量を低減可能なメモリシステムを提供する。 The present invention provides a memory system capable of reducing the storage capacity of the number of erasures by a simple method.
本発明の一態様に係るメモリシステムは、データの消去の単位であるブロックにデータを記憶可能な記憶部と、前記記憶部に記憶されるデータが消去されるたびに保存される消去演算回数を記憶するカウンタ記憶部と、前記記憶部に記憶される前記データが消去されるとき、乱数を取得する乱数取得部と、前記乱数が、所定の条件を満たすか否かを判定する条件判定部と、前記条件判定部により前記乱数が所定の条件を満たすと判定されたとき、前記消去演算回数を歩進させる消去回数歩進部と、前記記憶部に記憶された消去演算回数が所定の回数を超えたときに、前記所定の条件を変更する変更部とを備えたことを特徴とする。 A memory system according to one embodiment of the present invention includes a storage unit that can store data in a block that is a unit of data erasing, and an erase operation count that is saved each time the data stored in the storage unit is erased. A counter storage unit that stores data, a random number acquisition unit that acquires a random number when the data stored in the storage unit is erased, and a condition determination unit that determines whether or not the random number satisfies a predetermined condition , When the condition determining unit determines that the random number satisfies a predetermined condition, the erasure count step for incrementing the erasure calculation count, and the erasure calculation count stored in the storage unit are set to a predetermined count. And a changing unit that changes the predetermined condition when exceeding the predetermined condition.
本発明によれば、簡便な方法で、消去回数の記憶容量を低減可能なメモリシステムを提供できる。 According to the present invention, it is possible to provide a memory system capable of reducing the storage capacity of the number of erasures by a simple method.
(第1の実施形態)
まず、本発明の第1の実施形態にかかるメモリシステムの構成について、図1及び図2を参照して説明する。図1は、本発明の第1の実施形態におけるメモリシステムの一態様であるNAND型フラッシュメモリを備えたメモリシステムの構成を示すブロック図である。また、図2は、本発明の第1の実施形態におけるメモリシステムの一態様であるNAND型フラッシュメモリセルアレイの構成を示す回路図である。
(First embodiment)
First, the configuration of the memory system according to the first embodiment of the present invention will be described with reference to FIG. 1 and FIG. FIG. 1 is a block diagram showing a configuration of a memory system including a NAND flash memory which is an aspect of the memory system according to the first embodiment of the present invention. FIG. 2 is a circuit diagram showing a configuration of a NAND flash memory cell array which is an aspect of the memory system according to the first embodiment of the present invention.
[メモリシステムの構成]
図1に示すように、メモリシステムは、NAND型フラッシュメモリ10とNANDコントローラ11で構成される。
[Memory system configuration]
As shown in FIG. 1, the memory system includes a
<NAND型フラッシュメモリ>
NAND型フラッシュメモリ10は、複数のメモリセルが直列に接続され、その両端に選択ゲートトランジスタが接続されたNANDストリングが複数メモリセルアレイ内に形成され、データの消去の単位であるブロックを複数有する。
<NAND flash memory>
The
より具体的には、図2に示すように、メモリセルアレイ内に形成された複数のNANDストリング20は、直列に接続された電気的書き換え可能な複数個の不揮発性メモリセルM1乃至Mnとその両端部にビット線BLに接続するための第1の選択ゲートトランジスタT1及びソース線に接続するための第2の選択ゲートトランジスタT2を有する。このNANDストリング20内における各不揮発性メモリセルの制御ゲートは、それぞれ異なるワード線に接続される。
More specifically, as shown in FIG. 2, the plurality of
1つのワード線は、複数のNANDストリング20内のそれぞれ対応する不揮発性メモリセルで共有されている。第1及び第2の選択ゲートトランジスタT1,T2の制御ゲートはそれぞれ、ワード線と平行な第1及び第2の選択ゲート線SGD,SGSに接続される。1つのワード線を共有する不揮発性メモリセルMの集合は、データの読み出し又は書き込みの単位となるページを構成する。複数のページの集合は、データ消去の単位となるブロックを構成する。なお、理解を容易にするため、複数のブロックを説明する場合において、各ブロックには順序付けがなされているものとする。
One word line is shared by the corresponding nonvolatile memory cells in the plurality of
<NANDコントローラ>
次に、NANDコントローラ11について図1を用いて、説明する。NANDコントローラ11は、ホストインターフェース回路(図1ではホストI/F)12、演算処理装置(以下、MPUという:Micro processing unit)13、ROM(Read-only memory)14、RAM(Random access memory)15、及びNANDインターフェース回路(図1ではNANDI/F)16を備えている。
<NAND controller>
Next, the
ホストインターフェース回路12は、NANDコントローラ11とホスト装置との間における情報(コマンドCMD、アドレスADD、データDAT)の入出力の制御を行うためのものである。
The
MPU13は、NANDコントローラ11全体の動作を制御するためのものである。MPU13は、例えば、メモリシステムが電源供給を受けて、ROM14に格納されているファームウェア(制御プログラム)をRAM15上に読み出して所定の処理を実行することにより、各種のテーブルをRAM15上に作成する。
The MPU 13 is for controlling the entire operation of the
ROM14は、MPU13により制御される制御プログラム等を格納する。
The
RAM15は、MPU13の作業エリアとして使用され、ROM14から読み出された制御プログラムや各種のテーブルを記憶する。このRAM15には、ブロックカウンタテーブル17a、ページカウンタテーブル17bが設けられている。このブロックカウンタテーブル17aにはメモリセルアレイ内の各ブロックにおけるデータの消去演算回数が保存されており、ページカウンタテーブル17bには各ページにおけるデータの読出演算回数が保存されている。
The
NANDインターフェース回路16は、NANDコントローラ11とNAND型フラッシュメモリ10との間における情報の入出力の制御を行う。
The
次に、上記第1の実施形態におけるNANDコントローラ11の機能うちカウンタ機能の概略について図3のブロック図を用いて、説明する。
Next, an outline of the counter function among the functions of the
図3に示すように、NANDコントローラ11のうちカウンタ機能を司る部分は、乱数取得部30と、条件判定部31と、消去回数歩進部32と、カウンタ記憶部33とを有する。乱数取得部30は、ホスト機器の要求によりあるブロックにおけるデータが消去されると、又はホスト機器の要求によりあるページにおけるデータが読み出されると、MPU13を用いて、ROM14上に格納されている乱数発生プログラムを読み出し、この乱数発生プログラムによって発生された乱数をRAM15上に保存する。
As shown in FIG. 3, the part that controls the counter function of the
条件判定部31は、上記の乱数発生プログラムにより発生する乱数が、所定の条件を満たすか否かを判定するためのものである。具体的には、ROM14上に格納されている条件判定プログラムを用いて、RAM15上に保存された乱数が後述する所定の条件を満たすか判断し、後述する消去回数歩進部32に歩進させるか否かの判断データを転送する。
The
ここで、条件判定部31により、乱数が所定の条件を満たすか判断し判断データを消去回数歩進部32に転送するとは、例えば乱数発生プログラムによって発生する乱数が0又は1の場合において、乱数が1のときのみ消去回数歩進部32に歩進させる判断データを転送することを意味する。
Here, the
なお、所定の条件は、例えば(1)一定範囲内(例えば、0から255までの整数の範囲内)で乱数発生プログラムによって発生した乱数が予めRAM15に記憶されている閾値(例えば、127)よりも大きいか又は小さいか、(2)一定範囲内(例えば、0から255までの整数の範囲内)で乱数発生プログラムによって発生した乱数がある特定の値(例えば、127)に該当するか、あるいは(3)上記の一定範囲内のある特定の範囲(例えば、127から255)に発生した乱数が属するかなどの設定とすることができる。
The predetermined condition is, for example, (1) based on a threshold (for example, 127) in which random numbers generated by the random number generation program within a certain range (for example, within an integer range of 0 to 255) are stored in the
消去回数歩進部32は、条件判定部31から転送された判断データに基づいて、消去演算回数又は読出演算回数を歩進するためのものである。
The
ある特定のブロックに保存されているデータが消去され、判断データを消去回数歩進部32が受信したとき、消去回数歩進部32は、RAM15内に設けられたブロックカウンタテーブル17aのうちある特定のブロックにおけるデータの消去演算回数をRAM15上に読み出す。発生された乱数が前述した所定の条件を満たす判断データを受信した場合には、消去回数歩進部32は、上記のブロックカウンタテーブル17a内のある特定のブロックにおけるデータの消去演算回数を歩進させ、再度ブロックカウンタテーブル17aに保存する。
When data stored in a specific block is erased and the determination data is received by the erasure
なお、ある特定のページに保存されているデータが読み出された場合には、消去回数歩進部32は、ページカウンタテーブル17b内のある特定のページにおけるデータの読出演算回数を読み出し、読出演算回数を歩進させる場合には、ページカウンタテーブル17bに再度保存する。
When data stored in a specific page is read out, the erasure
カウンタ記憶部33は、NANDフラッシュメモリ10内の各ブロックの消去演算回数が保存されているブロックカウンタテーブル17aと、各ページの読出演算回数が保存されているページカウンタテーブル17bで構成される。
The counter storage unit 33 includes a block counter table 17a in which the number of erase operations for each block in the
[消去の回数又は読み出し回数のカウント動作]
次に、本実施形態におけるNANDコントローラ11による消去回数又は読み出し回数のカウント動作について図1及び図4を用いて説明する。図4は、本発明の第1の実施形態におけるNANDコントローラ11によるカウント動作を示すフローチャート図である。
[Counting the number of times of erasing or reading]
Next, the counting operation of the number of times of erasing or the number of times of reading by the
なお、説明を簡単にするため、メモリセルアレイに形成されたブロックが2つ(第1ブロック、第2ブロックとする)の場合を考える。 In order to simplify the description, consider a case where there are two blocks (first block and second block) formed in the memory cell array.
まず、ステップS1で、ホスト機器により、例えば第1ブロックのデータの消去要求がなされ、MPU13により第1ブロックにおけるデータが消去される。
First, in step S1, for example, the host device issues a request to erase data in the first block, and the
次に、ステップS2で、第1ブロックのデータが消去されると、ROM14に格納されている乱数発生プログラムをMPU13によりRAM15上に読み出し、乱数を発生させる。この発生させる乱数は、一定範囲(例えば、0から63まで)内の乱数とする。この乱数をRAM15上に一時保存する。
Next, in step S2, when the data of the first block is erased, the random number generation program stored in the
そして、ステップS3で、MPU13を用いて、RAM15上に条件判定プログラムを読み出し、乱数が所定の条件を満たすか否かを判定する。ここでは、例えば所定の条件を乱数が「0」か否かという条件とする。ステップS2で発生される乱数が「0」の場合(ステップS3でYesの場合)には、MPU13を用いて、RAM15上に記憶されているブロックカウンタテーブル17aのうち第1ブロックの消去演算回数をRAM15に読み出して、一時保存する。その後、MPU13を用いて、消去回数歩進プログラムにより第1ブロックの消去演算回数を歩進する(ステップS4)。この歩進された消去演算回数を第1ブロックの消去演算回数としてブロックカウンタテーブル17aに再度保存する(ステップS5)。
In step S3, the
一方で、ステップS2で発生される乱数が「0」以外の場合(ステップS3でNoの場合)には、MPU13を用いて、RAM15上に記憶されているブロックカウンタテーブル17aのうち第1ブロックの消去演算回数をそのまま保存する(ステップS5)。
On the other hand, when the random number generated in step S2 is other than “0” (in the case of No in step S3), the
そして、ステップS5で消去演算回数を保存後に、終了する(ステップS6)。 Then, after storing the number of erasure operations in step S5, the process ends (step S6).
上記のステップS1からS5を第1ブロックにおけるデータの消去時だけでなく、第2ブロックにおけるデータの消去時も同様に行う。 The above steps S1 to S5 are performed not only when erasing data in the first block but also when erasing data in the second block.
以上より、簡便な方法で、消去回数の記憶容量を低減可能なメモリシステムを提供できる。 As described above, it is possible to provide a memory system capable of reducing the storage capacity of the number of erasures by a simple method.
本実施形態におけるメモリシステムでは、ブロックのデータが消去されるごとにブロックカウンタテーブル17a内の消去演算回数を歩進させるわけではなく、ブロックのデータが消去されても、ブロックカウンタテーブル17a内の消去演算回数を歩進させない場合もある。 In the memory system according to the present embodiment, the number of erase operations in the block counter table 17a is not incremented every time the block data is erased. Even if the block data is erased, the erase in the block counter table 17a is not performed. There are cases where the number of computations is not incremented.
このため、消去回数よりも歩進される消去演算回数の方が少なくなる。その結果、ブロックカウンタテーブル17a内の消去演算回数を、実際の消去回数よりも小さくすることができ、ブロックカウンタテーブル17aに保存される記憶容量を低減することができる。 For this reason, the number of erase operations to be incremented is smaller than the number of erase operations. As a result, the number of erase operations in the block counter table 17a can be made smaller than the actual number of erase operations, and the storage capacity stored in the block counter table 17a can be reduced.
なお、本実施形態では、所定の条件を乱数が「0」か否かとする例を示したが、所定の条件としては、消去の回数又は読み出しの回数を確率的に歩進させる構成であればよく、上記条件に制約される必要はない。例えば、所定の条件を発生された乱数が一定の範囲内に属しているか否かという条件でもよく、所定の条件を発生された乱数がメモリシステムに予め保存されたある閾値よりも大きいか小さいかを判断する条件としてもよい。 In the present embodiment, an example in which the predetermined condition is whether the random number is “0” or not is shown. However, as the predetermined condition, the number of erasures or the number of readings may be increased stochastically. Well, there is no need to be constrained by the above conditions. For example, it may be a condition that whether or not a random number generated under a predetermined condition belongs within a certain range, and whether the random number generated under a predetermined condition is larger or smaller than a certain threshold stored in advance in the memory system It is good also as conditions for judging.
また、読み出し回数のカウント動作については、ステップS3まで同様の動作を行い、発生された乱数が所定の条件を満たす場合には、ページカウンタテーブル17b内の読み出しカウンタを歩進させる。一方で、発生された乱数が所定の条件を満たさない場合には、ページカウンタテーブル17b内の読み出しカウンタを歩進せず、そのまま保存する。 As for the count operation of the number of readings, the same operation is performed up to step S3, and when the generated random number satisfies a predetermined condition, the reading counter in the page counter table 17b is incremented. On the other hand, when the generated random number does not satisfy the predetermined condition, the read counter in the page counter table 17b is not incremented and stored as it is.
[第1の実施形態の変形例1]
本発明の第1の実施形態では、例えば第1ブロックにおけるデータを消去するときに、乱数発生プログラムを読み出し、1つの乱数を発生させているが、第1の実施形態の変形例として、乱数発生プログラムを読み出し発生させる乱数を複数としてもよい。
[
In the first embodiment of the present invention, for example, when erasing data in the first block, the random number generation program is read and one random number is generated. However, as a modification of the first embodiment, random number generation is performed. A plurality of random numbers for reading and generating a program may be used.
具体的には、一定の範囲内にある乱数を複数個(例えば2個とし、ここでは、以下第1の乱数、第2の乱数という)発生させる。そして、この複数個の乱数に順序をつけてテーブルとしてRAM15に一時保存する(例えば、第1の乱数が1番目で第2の乱数が2番目とする)。始めに、第1ブロックにおけるデータを消去したときに1番目の乱数(第1の乱数)を用いて上記のステップS1からステップS4を行い、次の第2ブロックにおけるデータを消去したときに2番目の乱数(第2の乱数)を用いて上記ステップS1からステップS4を行う。
Specifically, a plurality of random numbers (for example, two, for example, hereinafter referred to as a first random number and a second random number) are generated within a certain range. Then, the plurality of random numbers are ordered and temporarily stored in the
これにより、MPU13によりデータが消去されるごとに乱数発生プログラムを読み出す必要がない。このため、乱数発生にかかる時間を短くすることができる。
This eliminates the need to read the random number generation program every time data is erased by the
[第1の実施形態の変形例2]
本発明の第1の実施形態におけるメモリシステムは、ホスト機器に接続する記憶装置を対象としているが、本発明の第1の実施形態の変形例として、メモリシステムが記憶装置をホスト機器に接続したシステム全体を含めてもよい。このとき、本実施形態における乱数発生プログラム、条件判定プログラム、及び消去回数歩進プログラムはホスト機器に記憶されており、ホスト機器の中央演算処理装置を用いて、上記の消去演算回数又は読出演算回数の歩進を行い、RAM15上のブロックカウンタテーブル17a又はページカウンタテーブル17bに保存してもよい。
[
The memory system according to the first embodiment of the present invention is intended for a storage device connected to a host device, but as a modification of the first embodiment of the present invention, the memory system connects the storage device to the host device. The entire system may be included. At this time, the random number generation program, the condition determination program, and the erase count step program according to the present embodiment are stored in the host device, and the above-mentioned erase count or read count is calculated using the central processing unit of the host device. May be stored in the block counter table 17a or the page counter table 17b on the
[第1の実施形態の変形例3]
本発明の第1の実施形態におけるメモリシステム内の乱数発生プログラムと条件判定プログラムの変形例について説明する。説明を簡単にするため、条件判定プログラムの所定の条件を、発生された乱数が「0」か否かという条件とする。
[
A modification of the random number generation program and the condition determination program in the memory system according to the first embodiment of the present invention will be described. In order to simplify the description, a predetermined condition of the condition determination program is set as a condition whether or not the generated random number is “0”.
本発明の第1の実施形態で発生する乱数は、一定範囲(例えば、「0から63まで」)における乱数である。第1の実施形態の変形例3では、この乱数の一定範囲を広く設定する。例えば、「0から255まで」の一定範囲内における乱数を発生させるように設定する。これにより、発生した乱数が「0」となる確率が第1の実施形態の場合に比べて、低くなる。 The random number generated in the first embodiment of the present invention is a random number within a certain range (for example, “0 to 63”). In the third modification of the first embodiment, a certain range of this random number is set wide. For example, it is set to generate a random number within a certain range of “0 to 255”. As a result, the probability that the generated random number is “0” is lower than in the first embodiment.
従って、あるブロックのデータが消去されて又はあるページからデータが読み出され、消去回数歩進部23によりブロックカウンタテーブル17a内にあるブロックの消去演算回数又はページカウンタテーブル17b内にあるページの読出演算回数が歩進される確率も低くなる。その結果、ブロックカウンタテーブル17aに保存される消去演算回数、読出演算回数の記憶容量を低減することができる。 Accordingly, data in a certain block is erased or data is read out from a certain page, and the number of erase operations of the block in the block counter table 17a or the reading of the page in the page counter table 17b is performed by the erasure count stepping unit 23. The probability that the number of operations is incremented is also reduced. As a result, the storage capacity for the number of erase operations and the number of read operations stored in the block counter table 17a can be reduced.
一方で、第1の実施形態の変形例3における乱数の一定範囲を第1の実施形態に対して狭く設定してもよい。例えば、「0から16まで」の一定範囲内における乱数を発生させるように設定する。これにより、発生した乱数が「0」となる確率が第1の実施形態の場合に比べて、高くなる。
On the other hand, you may set the fixed range of the random number in the
その結果、あるブロックのデータが消去される回数又はあるページのデータが読み出される回数を、ブロックカウンタテーブル17a又はページカウンタテーブル17bが第1の実施形態に比べて、正確に示すことができる。 As a result, the block counter table 17a or the page counter table 17b can accurately indicate the number of times the data of a certain block is erased or the number of times the data of a certain page is read compared to the first embodiment.
なお、図5に示すように、各ブロックにおける消去演算回数が、所定の回数を超えたときに、上記の一定範囲を変更する変更部34を、さらに、メモリシステム内に設けてもよい。図5は、本発明の第1の実施形態の変形例3におけるNANDコントローラの機能の概略を示すブロック図である。
As shown in FIG. 5, a
メモリセルにはデータの消去回数の上限が決まっている。データの消去回数がこの上限に近い数を超えたときに、発生する乱数の一定範囲を狭めるように、上記の所定の回数が設定された変更部34を用いて変更してもよい。例えば、所定の回数をメモリセルの消去回数の上限に近い数に消去演算回数が歩進される確率をかけた数とし、あるブロックの消去演算回数がこの所定の回数を超えたときに、変更部34を用いて変更する。
A memory cell has an upper limit on the number of times data can be erased. When the number of data erasures exceeds a number close to this upper limit, the change may be made by using the changing
これによって、この一定範囲が狭まるように変更されるとデータの消去回数又はデータの読み出し回数を正確に示すことができる。 Thus, when the certain range is changed to be narrowed, the number of data erasures or the number of data readings can be accurately indicated.
つまり、ブロックカウンタテーブル17a又はページカウンタテーブル17bに保存される消去演算回数又は読出演算回数の記憶容量を低減することができるとともに、データの消去回数又はデータの読み出し回数をより正確に示すこともできる。その結果、各メモリセルに対してデータの消去回数又はデータの読み出し回数の平準化を行うことができる。メモリセルの寿命を長くすることができる。 That is, it is possible to reduce the storage capacity of the number of erase operations or the number of read operations stored in the block counter table 17a or the page counter table 17b, and more accurately indicate the number of data erase times or the number of data read times. . As a result, the data erase count or the data read count can be leveled for each memory cell. The lifetime of the memory cell can be extended.
(第2の実施形態)
次に、本発明の第2の実施形態にかかるメモリシステムの構成については、図1及び図6を参照して説明する。図6は本発明の第2の実施形態におけるメモリシステムの乱数テーブル表を示す概念図である。
(Second Embodiment)
Next, the configuration of the memory system according to the second embodiment of the present invention will be described with reference to FIGS. FIG. 6 is a conceptual diagram showing a random number table of the memory system in the second embodiment of the present invention.
なお、第2の実施形態におけるメモリシステムは、第1の実施形態のメモリシステムに対して、メモリシステムに予め順序付けされた乱数が保存されている乱数テーブル(乱数記憶部)が格納されており、データの消去をするごとに順序に沿って乱数が読み出され、例えばブロックカウンタテーブル17aの消去演算回数を歩進させるか否かを判断する点が異なり、その他の構成部分については、同一構成を有している。従って、以下の説明において、第1の実施形態と同様の構成部分については、詳細説明を省略し、異なる構成部分について説明する。 Note that the memory system in the second embodiment stores a random number table (random number storage unit) in which random numbers previously stored in the memory system are stored in the memory system of the first embodiment. Random numbers are read in order each time data is erased. For example, it is determined whether or not to increment the number of erasure operations in the block counter table 17a, and the other components have the same configuration. Have. Therefore, in the following description, detailed description of the same components as those in the first embodiment will be omitted, and different components will be described.
[メモリシステムの構成]
本発明の第2の実施形態におけるメモリシステムでは、第1の実施形態のメモリシステムと異なり、乱数発生プログラムが設けられていない。本実施形態のメモリシステムには、順序付けされた乱数が保存されている乱数テーブルが例えばRAM15に保存されている。
[Memory system configuration]
Unlike the memory system according to the first embodiment, the memory system according to the second embodiment of the present invention does not include a random number generation program. In the memory system of this embodiment, a random number table in which ordered random numbers are stored is stored in, for example, the
例えば、図6に示すように、0又は1の乱数が複数保存されており、それぞれの乱数はポインタの番号により順序付けされている。ポインタの番号に沿って、保存されている乱数が読み出される。この保存されている乱数の個数は素数個(図6では、67個)、ポインタの番号も同数の素数個(図6では、67個)あり、乱数テーブルを構成している。 For example, as shown in FIG. 6, a plurality of random numbers of 0 or 1 are stored, and each random number is ordered by a pointer number. The stored random number is read out along the pointer number. The number of stored random numbers is a prime number (67 in FIG. 6), and the number of pointers is the same number of prime numbers (67 in FIG. 6), forming a random number table.
[消去の回数又は読み出し回数のカウント動作]
次に、上記の乱数テーブルを用いて、メモリシステムのデータの消去回数又はデータの読み出し回数のカウント動作について図7を用いて、説明する。図7は、本発明の第2の実施形態におけるメモリシステムのデータの消去回数又は読み出し回数のカウント動作を示すフローチャート図である。
[Counting the number of times of erasing or reading]
Next, the operation of counting the number of times data is erased or the number of times data is read from the memory system will be described with reference to FIG. FIG. 7 is a flowchart showing the counting operation of the number of times of erasing or reading of data in the memory system according to the second embodiment of the present invention.
なお、消去演算回数又は読出演算回数を歩進させるかを同時に判断するブロックの範囲(以下、歩進判断範囲という)をn個(nは自然数)のブロックとする。歩進判断範囲内のブロックの個数は、ホスト機器からの消去要求に応じて変化する。 Note that a block range (hereinafter referred to as a step determination range) for simultaneously determining whether to increment the number of erase operations or the number of read operations is n (n is a natural number) blocks. The number of blocks within the step determination range changes in response to an erase request from the host device.
まず、ステップS1で、MPU13を用いて、初期状態における乱数テーブル内に設定されているポインタiを読み出す。ステップS2で、ホスト機器により、例えば歩進判断領域内のn個のブロックの消去要求がなされ、MPU13により歩進判断領域内のn個のブロックにおけるデータが消去される。このとき、MPU13により歩進判断領域内のn個のブロックに対応するポインタが、ポインタiを始点として歩進判断領域内のブロックの個数と同数設定される(ブロックの昇降順に対応するn個のポインタをポインタi乃至ポインタi+n−1として設定される)。
First, in step S1, the
なお、以下の説明を簡単にするために、メモリセルアレイに形成されるブロックを2個(第1ブロック、第2ブロックとする)とし、上記の乱数テーブル内に保存されている乱数の個数より小さな数である2個のブロックが常に歩進判断領域である場合を仮定する。 To simplify the following description, the number of blocks formed in the memory cell array is two (first block and second block), which is smaller than the number of random numbers stored in the random number table. Assume that two blocks that are numbers are always step determination areas.
この場合、ステップS2では、例えばホスト機器の要求により第1ブロック及び第2ブロックのデータが消去されると、第1ブロックにはポインタ1、第2ブロックにはポインタ2が設定される。
In this case, in step S2, for example, when the data of the first block and the second block are erased by a request from the host device, the
次に、ステップS2後に、MPU13によりRAM15に保存されている乱数テーブルが読み込まれ、この乱数テーブルのうち、ステップS2でMPU13により設定されたそれぞれのポインタに対応する乱数がRAM15上に読み出される。上記の例の場合には、第1ブロックに設定されたポインタ1に対応する「0」が、第2ブロックに設定されたポインタ2に対応する「0」が読み出される(ステップS3)。
Next, after step S2, the random number table stored in the
そして、ステップS4で、MPU13を用いて、RAM15上に条件判定プログラムを読み出し、読み出されたそれぞれの乱数が所定の条件を満たすか否かを判定する。例えば、所定の条件を乱数が「0」か否かという条件とする。ステップS3で発生される乱数が「0」の場合(ステップS4でYesの場合)には、MPU13を用いて、RAM15上に記憶されているブロックカウンタテーブル17aのうち各ブロックの消去演算回数をRAM15に読み出し、一時保存する。その後、MPU13により消去回数歩進プログラムを用いて、各ブロックの消去演算回数を歩進する(ステップS5)。上記の例では、第1ブロックに対応する乱数が「0」であるため、第1ブロックの消去演算回数に1を加えた回数を第1ブロックの消去演算回数として歩進される(ステップS5)。同様に、第2ブロックに対応する乱数も「0」であるため、第2ブロックの消去演算回数も1加算される(ステップS5)。
In step S4, the
この第1ブロックの歩進された消去演算回数、第2ブロックの歩進された消去演算回数をブロックカウンタテーブル17aに再度保存する(ステップS6)。 The number of erase operations advanced in the first block and the number of erase operations advanced in the second block are stored again in the block counter table 17a (step S6).
一方で、ステップS2で発生される乱数が「0」以外の場合(ステップS4でNoの場合)には、MPU13を用いて、RAM15上に記憶されているブロックカウンタテーブル17aのうち各ブロックの消去演算回数をそのまま保存する(ステップS6)。
On the other hand, if the random number generated in step S2 is other than “0” (No in step S4), the
ブロックカウンタテーブル17a内のブロックの消去演算回数を保存した後に、上記ステップS1〜S6内で使用したポインタのうち、ポインタの番号が最大なポインタに1加算して、乱数テーブル内に設定することで終了する(ステップS7)。上記の例の場合には、ポインタの番号が最大なポインタはポインタ2であるため、ポインタ3に歩進させて、乱数テーブル内に設定することで終了する。
After storing the number of block erase operations in the block counter table 17a, the pointer used in steps S1 to S6 is incremented by 1 and set in the random number table. The process ends (step S7). In the case of the above example, since the pointer with the largest pointer number is the
ステップS7後に、例えば再度第1ブロック及び第2ブロックにおけるデータの消去要求がホスト機器によりなされると、MPU13を用いて、乱数テーブル内に設定されているポインタ3を読み出す。上記のステップS2同様に、MPU13により第1ブロック及び第2ブロックのデータが消去されると、MPU13を用いてRAM15に保存されている乱数テーブルを読み出し、乱数テーブルのうちMPU13により設定されたポインタ3,4に対応する乱数をRAM15上に読み出す。
After step S7, for example, when the host device makes a data erasure request again in the first block and the second block, the
このように、例えばホスト機器により歩進判断領域内の2個のブロックにおけるデータの消去要求がなされる度に、2個のポインタそれぞれを順序に沿って2個ずらし、ずらした後のポインタそれぞれに対応する乱数を取得する。それぞれの乱数を用いて、条件判定プログラムを適用する。ただし、ポインタ65とポインタ66に対応する乱数を用いて条件判定プログラムを適用した後に、第1ブロック及び第2ブロックのデータが再度消去された場合には、ポインタ67に設定されている。ポインタ67の次のポインタについては、乱数テーブル内のポインタ1に戻して、条件判定プログラムを適用する。つまり、乱数テーブル内のポインタをひととおり使用した後には、ポインタをポインタ1にずらし、条件判定プログラムを適用する。
In this way, for example, every time the host device makes a data erasure request in two blocks in the progress determination area, the two pointers are shifted by two according to the order, and the pointers after the shift are respectively changed. Get the corresponding random number. A condition determination program is applied using each random number. However, the
以上より、取得した乱数に対して、条件判定プログラムを適用することで、簡便な方法で、消去回数の記憶容量を低減可能なメモリシステムを提供できる。 As described above, by applying the condition determination program to the acquired random number, it is possible to provide a memory system that can reduce the storage capacity of the number of erasures by a simple method.
本実施形態では、メモリシステムに予め順序付けされた乱数が保存されている乱数テーブルを保存されている。このため、あるブロックにおけるデータの消去されるたびに乱数を発生させる必要がない。そのため、第1の実施形態に比べて、消去回数又は読み出し回数のカウント動作の処理を迅速にすることができる。 In the present embodiment, a random number table that stores pre-ordered random numbers is stored in the memory system. For this reason, it is not necessary to generate a random number every time data in a certain block is erased. Therefore, compared with the first embodiment, it is possible to speed up the processing of counting the number of times of erasure or the number of times of reading.
また、本実施形態では、乱数テーブル内に保存されている乱数を素数個にしている。また、ブロックのデータを消去する際に、乱数テーブル内のポインタをひととおり使用した後には再度ポインタがポインタ1に戻るため、ポインタが複数回使用される場合がある。このため、あるポインタを1回目に使用するブロックと、あるポインタを複数回目(例えば2回目)に使用するブロックとは異なる場合がある。上記の例であれば、ポインタ1を1回目に使用するのは第1ブロックであり、2回目に使用するのは第2ブロックとなる。
In the present embodiment, the random numbers stored in the random number table are prime numbers. Further, when erasing block data, the pointer returns to the
その結果、ブロックカウンタテーブル17aの各ブロックに対する消去演算回数の歩進に偏りが生じにくくなる。その結果、メモリセルの消去回数の平準化を行うことができ、メモリセルの寿命を長くすることができる。 As a result, it is difficult to cause a bias in the number of erase operations for each block in the block counter table 17a. As a result, the number of erases of the memory cell can be leveled, and the life of the memory cell can be extended.
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。 Note that the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention in the implementation stage. Furthermore, the above embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, the problem described in the column of the problem to be solved by the invention can be solved, and the effect described in the column of the effect of the invention Can be extracted as an invention.
10…NAND型フラッシュメモリ
11…NANDコントローラ
12…ホストインターフェース回路
13…MPU
14…ROM
15…RAM
16…NANDインターフェース回路
17a…ブロックカウンタテーブル
17b…ページカウンタテーブル
30…乱数取得部
31…条件判定部
32…消去回数歩進部
33…カウンタ記憶部
34…変更部
DESCRIPTION OF
14 ... ROM
15 ... RAM
16 ...
Claims (6)
前記記憶部に記憶されるデータが消去されるたびに保存される消去演算回数を記憶するカウンタ記憶部と、
前記記憶部に記憶される前記データが消去されるとき、乱数を取得する乱数取得部と、
前記乱数が、所定の条件を満たすか否かを判定する条件判定部と、
前記条件判定部により前記乱数が所定の条件を満たすと判定されたとき、前記消去演算回数を歩進させる消去回数歩進部と、
前記記憶部に記憶された消去演算回数が所定の回数を超えたときに、前記所定の条件を変更する変更部と
を備えたことを特徴とするメモリシステム。 A storage unit capable of storing data in a block which is a unit of data erasure;
A counter storage unit for storing the number of erasure operations stored each time the data stored in the storage unit is erased;
A random number acquisition unit for acquiring a random number when the data stored in the storage unit is erased;
A condition determination unit for determining whether or not the random number satisfies a predetermined condition;
When the condition determination unit determines that the random number satisfies a predetermined condition, an erasure count stepping unit that increments the erasure calculation count;
A memory system comprising: a changing unit that changes the predetermined condition when the number of erasure operations stored in the storage unit exceeds a predetermined number.
前記記憶部に記憶される消去演算回数が所定の回数を超えたときに、前記所定の条件を
前記乱数が前記所定の条件よりも満たす確率が高い条件に変更する
ことを特徴とする請求項1記載のメモリシステム。 The changing unit is
2. The predetermined condition is changed to a condition that has a higher probability that the random number satisfies the predetermined condition when the number of erasure operations stored in the storage unit exceeds a predetermined number. The described memory system.
順序付けされた前記乱数が保存されている乱数記憶部と、
前記記憶部に記憶される前記データが消去されるとき、前記消去回数に対応する順番の前記乱数を取得することを特徴とする請求項1又は請求項2記載のメモリシステム。 The random number acquisition unit
A random number storage unit in which the ordered random numbers are stored;
3. The memory system according to claim 1, wherein when the data stored in the storage unit is erased, the random numbers in an order corresponding to the number of times of erasure are acquired.
前記乱数記憶部内の順序付けされた前記乱数が、素数個設けられており、
前記消去演算回数を歩進させるかを同時に判断する歩進判断範囲を前記素数よりも小さな個数の前記ブロックごとにすることを特徴とする請求項3記載のメモリシステム。 A plurality of the blocks in the storage unit are provided,
The ordered random numbers in the random number storage unit are provided as prime numbers,
4. The memory system according to claim 3, wherein a step determination range for simultaneously determining whether to increment the number of erasure operations is set for each block smaller than the prime number.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009298512A JP2011138364A (en) | 2009-12-28 | 2009-12-28 | Memory system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009298512A JP2011138364A (en) | 2009-12-28 | 2009-12-28 | Memory system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2011138364A true JP2011138364A (en) | 2011-07-14 |
Family
ID=44349724
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009298512A Pending JP2011138364A (en) | 2009-12-28 | 2009-12-28 | Memory system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2011138364A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014132346A1 (en) * | 2013-02-27 | 2014-09-04 | 株式会社日立製作所 | Semiconductor storage |
| CN115437580A (en) * | 2022-11-08 | 2022-12-06 | 合肥康芯威存储技术有限公司 | Data storage device management method and system and data storage device |
-
2009
- 2009-12-28 JP JP2009298512A patent/JP2011138364A/en active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014132346A1 (en) * | 2013-02-27 | 2014-09-04 | 株式会社日立製作所 | Semiconductor storage |
| JP6018696B2 (en) * | 2013-02-27 | 2016-11-02 | 株式会社日立製作所 | Semiconductor storage |
| CN115437580A (en) * | 2022-11-08 | 2022-12-06 | 合肥康芯威存储技术有限公司 | Data storage device management method and system and data storage device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12443371B2 (en) | Data writing method and storage device | |
| KR102254392B1 (en) | Operating method of memory controller and nonvolatile memory system including nonvolatile memory device and memory controller | |
| KR102179270B1 (en) | Nonvolatile memory device and operating method thereof | |
| KR102437591B1 (en) | Operation method of nonvolatile memory system and method operation of memory controller | |
| TWI774830B (en) | Memory system and operating method thereof | |
| US10168913B2 (en) | Data storage device and data maintenance method thereof | |
| CN111475425B (en) | Method for managing flash memory module and related flash memory controller and electronic device | |
| JP2014022031A (en) | Nonvolatile memory device, memory system including the same, memory block managing, deleting, and programming method for them | |
| US8751735B2 (en) | Protection against data corruption for multi-level memory cell (MLC) flash memory | |
| JP2008165960A (en) | Method for erasing data of nand flash memory device | |
| US10970230B2 (en) | Memory system and operating method thereof | |
| JP2015187864A (en) | Method of operating memory system including nonvolatile memory and memory controller | |
| TWI791981B (en) | Data writing method memory control circuit unit and memory storage apparatus | |
| EP3985516B1 (en) | Memory device, storage device including the same and method of operating the storage device | |
| KR20130123516A (en) | Semiconductor memory device, memory system including the same and operating method thereof | |
| KR20200137244A (en) | Memory system and operating method thereof | |
| JP2020013626A (en) | Memory system | |
| JP2011138364A (en) | Memory system | |
| US12242746B2 (en) | Storage device and method for storing meta data in a distributed manner | |
| JP4818453B1 (en) | Electronic device and data reading method | |
| JP4235646B2 (en) | Memory controller and flash memory system | |
| JP2009217630A (en) | Memory system | |
| JP2023039459A (en) | Memory system and method | |
| JP2006048746A (en) | Memory card | |
| JP4170261B2 (en) | Nonvolatile semiconductor memory device and data writing or erasing method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111125 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111205 |