JP5991239B2 - Nonvolatile semiconductor memory write control method and microcomputer - Google Patents
Nonvolatile semiconductor memory write control method and microcomputer Download PDFInfo
- Publication number
- JP5991239B2 JP5991239B2 JP2013051709A JP2013051709A JP5991239B2 JP 5991239 B2 JP5991239 B2 JP 5991239B2 JP 2013051709 A JP2013051709 A JP 2013051709A JP 2013051709 A JP2013051709 A JP 2013051709A JP 5991239 B2 JP5991239 B2 JP 5991239B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- update frequency
- types
- block
- frequency group
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
本発明は、不揮発性半導体メモリの書き込み制御方法及び不揮発性半導体メモリを備えるマイクロコンピュータに関する。 The present invention relates to a write control method for a nonvolatile semiconductor memory and a microcomputer including the nonvolatile semiconductor memory.
近年、不揮発性半導体メモリの一種であるフラッシュメモリを内蔵したマイクロコンピュータが使用されており、このフラッシュメモリは、例えば、マイクロコンピュータのCPU(Central Processing Unit)が使用するユーザプログラムを格納する用途や、種々のデータを書き込んで格納しておく用途に用いられる。ここで、フラッシュメモリは、1ワード毎の書き込みが可能であるが、消去は複数ワードからなるブロックを単位として一括で消去することが必要となる。 In recent years, a microcomputer incorporating a flash memory which is a kind of nonvolatile semiconductor memory has been used. For example, the flash memory can be used for storing a user program used by a CPU (Central Processing Unit) of the microcomputer, Used for writing and storing various data. Here, the flash memory can be written for each word, but the erasure needs to be erased collectively in units of a block composed of a plurality of words.
ブロック消去回数が増えるとフラッシュメモリの寿命を縮めることになるため、フラッシュメモリに記憶されているデータが更新される場合に、極力消去を行わないようにする技術が提案されている。例えば、特許文献1には、データをID単位で管理し、更新されたデータのみを追記することで消去回数を低減する技術が開示されている。その他、更新される可能性があるデータと更新されないデータとをブロックを分けて管理することで、ブロック中の領域を効率的に使用し、消去回数を低減させる方法がある。
When the number of block erase increases, the life of the flash memory is shortened. Therefore, a technique has been proposed in which erasure is not performed as much as possible when data stored in the flash memory is updated. For example,
しかしながら、更新される可能性がある複数種類のデータについても、それらの間で更新頻度に差があることも想定される。例えば1つのブロック中に更新頻度が低いデータが含まれていると、その分だけ更新頻度が高いデータを書き込める領域が減少するため、ブロック消去回数が増加するおそれがある。
本発明は上記事情に鑑みてなされたものであり、その目的は、各データの更新頻度に応じて効率的に書き換えを行うことができる不揮発性半導体メモリの書き込み制御方法およびマイクロコンピュータを提供することにある。
However, it is also assumed that there is a difference in the update frequency between multiple types of data that may be updated. For example, if data with a low update frequency is included in one block, the area in which data with a high update frequency can be written is reduced by that amount, which may increase the number of block erases.
The present invention has been made in view of the above circumstances, and an object thereof is to provide a nonvolatile semiconductor memory write control method and a microcomputer that can be efficiently rewritten according to the update frequency of each data. It is in.
請求項1又は2記載の不揮発性半導体メモリのデータ書き込み制御方法によれば、複数種類のデータのそれぞれについて、所定期間に亘る更新頻度を計測すると(第1ステップ)、その計測の結果に基づいて、複数種類のデータを低更新頻度群と高更新頻度群とに二分する(第2ステップ)。すると以降は、低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとを分けて、更新されたデータを書き込む(第3ステップ)。
According to the data write control method of the nonvolatile semiconductor memory according to
これにより、高頻度用ブロックについては、当該ブロックの全ての領域に対して更新されたデータを書き込むことができ、消去される回数が少なくなる。また、低頻度用ブロックについては、更新頻度の高いデータによって使用可能な領域が埋め尽くされることないので消去される回数が少なくなる。したがって、更新頻度の異なるデータが1つのブロックに混在することでブロックの消去回数が増加することを回避し、総じてブロックの消去回数を低減することにより、不揮発性半導体メモリの寿命を長期化させることができる。
そして、請求項1記載の発明によれば、データが書き込み可能なブロックが2ブロック以下になると、前記第1〜第3ステップを実行せず、前記複数種類のデータがそれぞれ更新されると、共通のブロックに書き込みを行う。
また、請求項2記載の発明によれば、前記第2ステップにおいて、前記低更新頻度群と前記高更新頻度群との何れか一方に属するデータの種類数が予め定めた閾値を超えると、前記第3ステップを実行せず、前記複数種類のデータがそれぞれ更新されると、低更新頻度群に属するデータの種類数の一部と、高更新頻度群に属するデータの種類数の一部とを共通のブロックに書き込む第4ステップを実行する。
As a result, for the high-frequency block, updated data can be written in all areas of the block, and the number of times of erasure is reduced. Also, the low frequency block is erased less frequently because the usable area is not filled with data with high update frequency. Therefore, it is possible to extend the life of the nonvolatile semiconductor memory by avoiding an increase in the number of block erasures by mixing data with different update frequencies in one block and reducing the number of block erasures as a whole. Can do.
According to the first aspect of the present invention, when the number of blocks into which data can be written becomes 2 blocks or less, the first to third steps are not executed and the plurality of types of data are updated respectively. Write to the block.
According to the invention of
(第1実施形態)
図6(a)に示すように、マイクロコンピュータ1は、CPU2,プログラム記憶用のフラッシュメモリ(FLASH)3,データ記憶用のフラッシュメモリ4(不揮発性半導体メモリ),RAM(Random Access Memory)5,周辺回路6を備えている。CPU2は、フラッシュメモリ3からプログラムデータを読み出して実行することで、フラッシュメモリ4のデータ書き込み及び書き換え(更新)、ブロックの消去及び書き込み対象ブロックの切替えなどを制御するメモリコントローラの機能を有している。
RAM5はCPU2のメインメモリであり、データの書き込みや書き換えなどの際に、データやCPU2の演算結果などを一時的に保持する作業領域として用いられる。フラッシュメモリ4は、内部に記憶部として、複数のブロックに分けられているメモリセルを有している。
(First embodiment)
As shown in FIG. 6A, the
The
次に、本実施形態の作用について、図1から図5を参照して説明する。CPU2は、例えばアプリケーションの制御条件等に応じて更新される複数種類のデータに。それぞれIDを付して管理している。そして、何れかのデータが更新されると、更新されたデータをフラッシュメモリ4の空き領域に順次書き込んで行く。1つのブロックの全てにデータを書き込んだ時点で、他に空き領域が無ければ、書き込み済みのブロックを消去して当該ブロックに書き込みを行う。1ブロックの容量は、例えば2kバイト程度である。
Next, the operation of the present embodiment will be described with reference to FIGS. The
図1に示すように、先ずCPU2は「初期管理」として、フラッシュメモリ4の1つのブロックに、データの種類は無関係に更新されたものから順次書き込みを行う(S1)。その時点で、フラッシュメモリ4の書き込み可能なブロックの数が「3」以上であれば(S2;YES)、各データについて更新頻度を測定する(S3)。そして、規定時間T1(所定時間)が経過するまでは(S4;NO)ステップS1に戻り、上記の処理を繰り返し実行する。
As shown in FIG. 1, first, the
ステップS2において書き込み可能なブロックの数が「3」未満であれば(NO)、ステップS1に戻り初期管理を継続する。一般に、フラッシュメモリについては、使用中においてもデータの書き込みが正常に行えるかどうかチェックするメモリテストが行われる。メモリテストは、例えば書き込んだデータ値をそのまま読み出すことができるか否か(ベリファイ)で行われ、書き込みが正常にできないと判定されたブロックについては、以降の使用(書き込み)が禁止されるので、書き込み可能なブロックの数は変動することがある。尚、ステップS3及びS4は、第1ステップ及び更新頻度計測手段に相当する。 If the number of writable blocks in step S2 is less than “3” (NO), the process returns to step S1 to continue the initial management. In general, a flash memory is subjected to a memory test for checking whether data can be normally written even during use. The memory test is performed by, for example, whether or not the written data value can be read as it is (verify), and subsequent use (write) is prohibited for the block that is determined not to be normally written. The number of writable blocks may vary. Steps S3 and S4 correspond to the first step and update frequency measuring means.
すなわち、図3に示すData1,Data2,…は、データのID(種類)を示している。同じ数字のデータは同じ種類(ここでは6種類)であり、後に書き込まれたものが更新されたデータである。図3(1)→(2)(図3中は丸数字)に示すように、最初にブロック1に更新されたデータを書き込み、ブロック1の全ての領域にデータを書き込むと、次は異なるブロックに更新されたデータを書き込む。ブロック2及び3が既に使用済みであれば、ブロック2を消去してから書き込みを行う。ブロック2の全ての領域にデータを書き込むと、次はブロック3を消去して書き込みを行う。このような処理を順次繰り返す(図3(3)→(4))。
That is, Data1, Data2,... Shown in FIG. 3 indicate data IDs (types). Data of the same number is of the same type (here, 6 types), and data written later is updated data. As shown in FIG. 3 (1) → (2) (circled numbers in FIG. 3), when updated data is first written in
図2に示すように、測定対象とするデータの種類をポインタNで決定すると(S11,図3の例では、N=0〜5)、データ(N)が更新されているか否かを判断する(S12)。更新されていれば(YES)、対応する更新頻度カウンタをインクリメントする(S13)。そして、全てのデータの測定が完了するまで(S14;NO)ポインタNをインクリメントして(S15)ステップS12に戻り、測定を継続する。 As shown in FIG. 2, when the type of data to be measured is determined by the pointer N (S11, N = 0 to 5 in the example of FIG. 3), it is determined whether or not the data (N) is updated. (S12). If it has been updated (YES), the corresponding update frequency counter is incremented (S13). Then, the pointer N is incremented until the measurement of all data is completed (S14; NO) (S15), and the process returns to step S12 to continue the measurement.
また、図6(b)は、例えばフラッシュメモリ4を使用して更新頻度を測定する場合の管理テーブルの一例であり、各データのIDと、データ本体と、データ値のチェックサムと、更新回数カウンタとからなる。尚、この管理テーブルはRAM5に配置しても良い(その場合、データ本体を記憶させる必要はない)。
FIG. 6B is an example of a management table when the update frequency is measured using, for example, the
再び、図1を参照する。初期管理を行っている間に規定時間が経過すると(S4;YES)、その時点での各データの更新頻度を参照し、例えば予め定められている閾値に対する高低に応じてデータを2群に分類する。例えば更新頻度が閾値未満であるものを低更新頻度群とし、更新頻度が閾値を超えているものを高更新頻度群とする(S5,第2ステップ,更新頻度判定手段)。そして、次の書き込み対象となる(書き込み済みの)ブロックを消去すると(S6)、低更新頻度群,高更新頻度群の何れか一方が以降に更新された場合の書き込み先を、消去したブロックに設定する(S7,第3ステップ,ブロック管理手段)。 Reference is again made to FIG. If the specified time elapses during the initial management (S4; YES), the update frequency of each data at that time is referred to, for example, the data is classified into two groups according to the level with respect to a predetermined threshold To do. For example, those with an update frequency less than the threshold are set as a low update frequency group, and those with an update frequency exceeding the threshold are set as a high update frequency group (S5, second step, update frequency determination means). Then, when the next write target (written) block is erased (S6), the write destination when any one of the low update frequency group and the high update frequency group is subsequently updated is set to the erased block. Set (S7, third step, block management means).
この時点で、フラッシュメモリ4に使用可能なブロックが「3」以上あれば(S8;YES)、以降は「通常管理」として2ブロックで管理を行う(S9,第3ステップ,ブロック管理手段)。「2ブロックで管理」とは、低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとの2つに分けて管理することである。 At this time, if there are “3” or more usable blocks in the flash memory 4 (S8; YES), management is performed in two blocks as “normal management” thereafter (S9, third step, block management means). “Management by two blocks” means that management is divided into two parts, a low frequency block for writing data belonging to the low update frequency group and a high frequency block for writing data belonging to the high update frequency group.
図3(5)→(6)はステップS6,S7の処理イメージであり、例えばData1〜3の更新頻度が高く(高更新頻度群)Data4〜6の更新頻度が低い(低更新頻度群)とすると、ブロック2を消去して、以降にData1〜3の何れかが更新されれば、更新されたデータをブロック2(高頻度用ブロック)に書き込むようにする。そして、ブロック1(低頻度用ブロック)の残りの領域には、以降に更新されたData4〜6を書き込む。
FIGS. 3 (5) → (6) are processing images of steps S6 and S7. For example, the update frequency of Data1 to 3 is high (high update frequency group) and the update frequency of Data4 to 6 is low (low update frequency group). Then, the
また図4は、「通常管理」(S9)の処理イメージであり、図3(6)の状態からData1〜3の更新が繰り返されることでブロック2の全ての領域を使用すると、次はブロック3(高頻度用ブロック)を消去して、以降に更新されたData1〜3を書き込む(図4上段(7))。その後、同様にブロック3の全ての領域を使用すると、次はブロック2を消去して、以降に更新されたData1〜3を書き込む(図4上段(8))。
FIG. 4 is a processing image of “normal management” (S9). When all the areas of
また、図3(6)の状態からData4〜6の更新が繰り返されることで先にブロック1の全ての領域を使用すると、次はブロック3(低頻度用ブロック)を消去して、以降に更新されたData4〜6を書き込む(図4下段(7))。その後、同様にブロック3の全ての領域を使用すると、次はブロック1を消去して、以降に更新されたData1〜3を書き込む(図4下段(8))。
In addition, if
そして、図1に示すように、ステップS9の通常管理に移行してから規定時間T2(所定時間)が経過するまでは(S10;NO)ステップS8に戻り通常管理を継続するが、規定時間T2が経過すると(YES)、ステップS1に戻り初期管理から再実行する。規定時間T2は、ステップS4における規定時間T1よりも長い時間(例えば、T1の数十倍など)に設定される。すなわち、各データの更新頻度は、アプリケーションの制御条件等に応じて変化することも考えられるので、通常管理をある程度継続した時点で再度更新頻度を計測して、低更新頻度群,高更新頻度群にそれぞれ属するデータを再度分別する。 Then, as shown in FIG. 1, until the prescribed time T2 (predetermined time) elapses after the transition to the normal management in step S9 (S10; NO), the routine returns to step S8 and the normal management is continued, but the prescribed time T2 (YES), the process returns to step S1 and re-executes from the initial management. The specified time T2 is set to a time longer than the specified time T1 in step S4 (for example, several tens of times T1). That is, the update frequency of each data may change depending on the control conditions of the application, etc. Therefore, when the normal management is continued to some extent, the update frequency is measured again, and the low update frequency group and the high update frequency group The data belonging to each is sorted again.
ここで、図5に示すように、1ブロックに格納できる最大データ数をMとし、使用するデータの数(ID数)をUとすると、従来技術のように更新されたデータを1つのブロックに区別なく書き込むと、全てのデータが更新されるまでのブロック消去回数E1は、
E1=U/(M−U) …(1)
となる(但し、M>Uを条件とする)。すなわち、ブロックを1回消去するまでに、U種類のデータを何回更新できるかは(M−U)/Uで表されるから、(1)式はその逆数となっている。
Here, as shown in FIG. 5, when the maximum number of data that can be stored in one block is M and the number of data to be used (number of IDs) is U, the updated data as in the prior art is put into one block. If written without distinction, the number of block erase times E1 until all data is updated is
E1 = U / (MU) (1)
(Provided that M> U is a condition). That is, how many times the U-type data can be updated before erasing the block once is represented by (MU) / U, and therefore, the expression (1) is the reciprocal thereof.
一方、本実施形態のように、データを高更新頻度群と低更新頻度群とに分けて、2つのブロックを使用中として管理すると、全てのデータが更新されるまでのブロック消去回数E2は、
E2=2×U/(2M−U) …(2)
となる。したがって、ブロックの消去回数を削減した数Edは、
Ed=E1−E2=U/(M−U)−2×U/(2M−U)
=U2/{(M−U)(2M−U)}≧0 …(3)
となるから、確実に消去回数が削減される。
ここで、具体数値例として、M=100,U=30として計算すると、
E1=30/(100−30)≒0.43
E2=2×30/(2×100−30)≒0.35
であるから、E1>E2となっている。
On the other hand, if the data is divided into a high update frequency group and a low update frequency group and managed as two blocks in use as in this embodiment, the number of block erase times E2 until all data is updated is
E2 = 2 × U / (2M−U) (2)
It becomes. Therefore, the number Ed obtained by reducing the number of block erases is:
Ed = E1-E2 = U / (MU) -2 * U / (2MU)
= U 2 / {(M- U) (2M-U)} ≧ 0 ... (3)
Therefore, the number of erasures is surely reduced.
Here, as a specific numerical example, when calculating with M = 100 and U = 30,
E1 = 30 / (100-30) ≈0.43
E2 = 2 × 30 / (2 × 100−30) ≈0.35
Therefore, E1> E2.
また図5には、M=100とした場合の従来の消去回数と、本実施形態の消去回数とをグラフ化して示している。従来の場合、ブロック容量に対する使用データ量の比率が60%から100%に近付くにつれて消去回数が急上昇している。一方、本実施形態の場合は、上記比率が大きくなっても消去回数はあまり上昇せず、両者の差が大きく開いて行くことが分かる。 FIG. 5 is a graph showing the number of conventional erasures when M = 100 and the number of erasures according to this embodiment. In the conventional case, the number of erasures rapidly increases as the ratio of the used data amount to the block capacity approaches 60% to 100%. On the other hand, in the case of the present embodiment, it can be seen that the number of erasures does not increase so much even when the ratio increases, and the difference between the two increases greatly.
以上のように本実施形態によれば、CPU2は、フラッシュメモリ4に書き込まれる複数種類のデータのそれぞれについて、規定時間T1に亘る更新頻度を計測すると、その計測の結果に基づいて、複数種類のデータを低更新頻度群と高更新頻度群とに二分する。すると以降は、低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとを分けて、更新されたデータを書き込むようにした。
As described above, according to the present embodiment, when the
これにより、高頻度用ブロックについては、当該ブロックの全ての領域に対して更新されたデータを書き込むことができ、消去される回数が少なくなる。また、低頻度用ブロックについては、更新頻度の高いデータによって使用可能な領域が埋め尽くされることないので消去される回数が少なくなる。したがって、更新頻度の異なるデータが1つのブロックに混在することでブロックの消去回数が増加することを回避し、総じてブロックの消去回数を低減することで、フラッシュメモリ4の寿命を長期化させることができる。
As a result, for the high-frequency block, updated data can be written in all areas of the block, and the number of times of erasure is reduced. Also, the low frequency block is erased less frequently because the usable area is not filled with data with high update frequency. Therefore, it is possible to avoid an increase in the number of block erasures due to a mixture of data having different update frequencies in one block, and to extend the life of the
また、CPU2は、ステップS9における通常管理を開始してから規定時間T2が経過すると、ステップS1からの処理を再実行するので、その後の状況に応じて各データの更新頻度が変化した場合でも低更新頻度群と高更新頻度群とを適切に判別できる。更に、CPU2は、フラッシュメモリ4のデータが書き込み可能なブロックが2ブロック以下になると通常管理は行わず、複数種類のデータがそれぞれ更新されると共通のブロックに書き込みを行うので、低頻度用ブロックと高頻度用ブロックとを分けて書き込みデータを管理できない場合には、従来通りに書き込みを行うことができる。
In addition, since the
(第2実施形態)
図7及び図8は第2実施形態であり、第1実施形態と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第2実施形態では、ステップS5において各データを低更新頻度群と高更新頻度群とに分別した結果、図7(b)に示すように一方のデータ群のサイズが極めて大きく、1ブロックの容量の大半を占めていたとする。
(Second Embodiment)
7 and 8 show the second embodiment. The same parts as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted. Hereinafter, different parts will be described. In the second embodiment, as a result of separating each data into a low update frequency group and a high update frequency group in step S5, the size of one data group is extremely large as shown in FIG. Occupy the majority.
この場合、ステップS6を実行すると、続くステップS16において、予め定められた上限(閾値,例えば1ブロックの容量の90%)を超えることで「YES」と判断する。そして、各データ群を、それぞれのデータ群サイズの1/2(一部)ずつに分けると、低更新頻度群の1/2と高更新頻度群の1/2との新たな書き込み先を、ステップS6で消去したブロックに設定する(S17,第4ステップ,ブロック管理手段)。それから、ステップS8に移行する。 In this case, when step S6 is executed, “YES” is determined in the subsequent step S16 by exceeding a predetermined upper limit (threshold, for example, 90% of the capacity of one block). Then, when each data group is divided into ½ (part) of each data group size, new write destinations of ½ of the low update frequency group and ½ of the high update frequency group are The block erased in step S6 is set (S17, fourth step, block management means). Then, the process proceeds to step S8.
図7(b)(5)→(6)に示すケースでは、高更新頻度群に属するものがData1〜6であり、低更新頻度群に属するものがData7,8である。Data1〜6がブロック容量の大半を占めているとすれば、以降に更新されたData1〜3とData7とを消去したブロック2に書き込む。残りのData4〜6,Data8が更新されると、ブロック1に空き領域があればそのままブロック1に書き込む。尚、データ数が奇数の場合は(1/2±1)で調整する。
In the case shown in FIGS. 7B, 5, and 6,
そして、ブロック2に先んじてブロック1の全領域に書き込みを行うと、ブロック3を消去して更新されたData4〜6,Data8を書き込む(図示せず)。したがって、ステップS17を経た際にステップS9で実行される「通常管理」は、上述した図7(b)(6)の様な管理形態となる。
Then, when writing is performed in the entire area of the
以上のように第2実施形態によれば、CPU2は、低更新頻度群と高更新頻度群との何れか一方に属するデータの種類数が予め定めた閾値を超えるとステップS7を実行せず、各データがそれぞれ更新されると、低更新頻度群に属するデータID数の1/2と、高更新頻度群に属するデータID数の1/2とを共通のブロックに書き込むようにした。したがって、各群に属するデータ数に偏りがある場合でも、ブロックの消去回数が増加することを抑制できる。
As described above, according to the second embodiment, the
(第3実施形態)
第3実施形態では、低更新頻度群と高更新頻度群とを分別するための閾値を、CPU2が更新頻度の計測結果に基づいて決定する。図9は、ステップS5内で実行されるが、CPU2は、図6(b)に示したような管理テーブルに記憶されている各データの更新頻度を参照し(S21)、それらの最小値及び最大値を判定する(S22)。そして、最小値と最大値との間に閾値を設定する(S23)。ここで閾値を設定する方式としては、例えば最小値と最大値との中間値に設定したり、全ての更新頻度数の重み付き平均をとる、といったものが考えられる。
(Third embodiment)
In the third embodiment, the
以上のように第3実施形態によれば、CPU2は、ステップS5で複数種類のデータを、低更新頻度群と高更新頻度群とに二分するための閾値を、ステップS3における更新頻度の計測結果に基づき決定するので、実際の各データの更新頻度に応じて閾値を適切に決定できる。
As described above, according to the third embodiment, the
(第4実施形態)
第4実施形態では、図10に示すように、フラッシュメモリ4に書き込み可能なブロック数が4以上ある場合は、それらの内1つ(例えばブロック4)を、更新される可能性が無い固定データの記憶領域として使用する。そして、ブロック1〜3を用いて、第1〜第3実施形態と同様のブロック管理を行うようにする。
このように、CPU2が固定データも取り扱う場合は、固定データを記憶させるブロックと、更新されるデータが記憶されるブロックとを分けて管理することで、ブロックの消去回数が増加することを抑制できる。
(Fourth embodiment)
In the fourth embodiment, as shown in FIG. 10, when there are four or more blocks that can be written to the
As described above, when the
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
フラッシュメモリのブロック数は、「5」以上でも良い。
規定時間T2が経過するとステップS1からの処理を再実行するのは、必要に応じて行えば良い。
第2実施形態において、一方のデータ群のサイズが1ブロックの容量の大半を占めている場合に、次のブロックを書き込み先とするデータ種類数は、低更新頻度群,高更新頻度群に属するデータの1/2ずつに限らず、各データ群のそれぞれ一部であれば良い。
The present invention is not limited to the embodiments described above or shown in the drawings, and the following modifications or expansions are possible.
The number of blocks of the flash memory may be “5” or more.
When the specified time T2 has elapsed, the process from step S1 may be re-executed as necessary.
In the second embodiment, when the size of one data group occupies most of the capacity of one block, the number of data types for writing the next block belongs to the low update frequency group and the high update frequency group. It is not limited to ½ of the data, but may be a part of each data group.
図面中、1はマイクロコンピュータ(更新頻度計測手段,更新頻度判定手段,ブロック管理手段)、2はCPU、4はフラッシュメモリ(不揮発性半導体メモリ)を示す。 In the drawings, 1 is a microcomputer (update frequency measuring means, update frequency determining means, block management means), 2 is a CPU, and 4 is a flash memory (nonvolatile semiconductor memory).
Claims (12)
前記複数種類のデータのそれぞれについて、所定期間に亘る更新頻度を計測する第1ステップと、
前記計測の結果に基づき、前記複数種類のデータを、低更新頻度群と高更新頻度群とに二分する第2ステップと、
低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとを分けて、更新されたデータを書き込む第3ステップとからなり、
データが書き込み可能なブロックが2ブロック以下になると、前記第1〜第3ステップを実行せず、
前記複数種類のデータがそれぞれ更新されると、共通のブロックに書き込みを行うことを特徴とする不揮発性半導体メモリのデータ書き込み制御方法。 In a method of writing a plurality of types of updated data in a vacant area with respect to a nonvolatile memory (4) having a plurality of blocks of a predetermined size, which is a unit capable of erasing data collectively,
A first step of measuring the update frequency over a predetermined period for each of the plurality of types of data;
A second step of dividing the plurality of types of data into a low update frequency group and a high update frequency group based on a result of the measurement;
A low frequency block to write data belonging to a low update frequency groups, separately and frequently block to write data belonging to a high update frequency group, Ri Do and a third step of writing the updated data,
When the number of blocks into which data can be written is 2 blocks or less, the first to third steps are not executed,
A data writing control method for a nonvolatile semiconductor memory, wherein writing to a common block is performed when each of the plurality of types of data is updated .
前記複数種類のデータのそれぞれについて、所定期間に亘る更新頻度を計測する第1ステップと、
前記計測の結果に基づき、前記複数種類のデータを、低更新頻度群と高更新頻度群とに二分する第2ステップと、
低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとを分けて、更新されたデータを書き込む第3ステップとからなり、
前記第2ステップにおいて、前記低更新頻度群と前記高更新頻度群との何れか一方に属するデータの種類数が予め定めた閾値を超えると、前記第3ステップを実行せず、
前記複数種類のデータがそれぞれ更新されると、
低更新頻度群に属するデータの種類数の一部と、高更新頻度群に属するデータの種類数の一部とを共通のブロックに書き込む第4ステップを実行することを特徴とする不揮発性半導体メモリのデータ書き込み制御方法。 In a method of writing a plurality of types of updated data in a vacant area with respect to a nonvolatile memory (4) having a plurality of blocks of a predetermined size, which is a unit capable of erasing data collectively,
A first step of measuring the update frequency over a predetermined period for each of the plurality of types of data;
A second step of dividing the plurality of types of data into a low update frequency group and a high update frequency group based on a result of the measurement;
The third step of writing the updated data by dividing the low frequency block for writing data belonging to the low update frequency group and the high frequency block for writing data belonging to the high update frequency group,
In the second step, when the number of types of data belonging to one of the low update frequency group and the high update frequency group exceeds a predetermined threshold, the third step is not executed,
When each of the plurality of types of data is updated,
A nonvolatile semiconductor memory characterized by executing a fourth step of writing a part of the number of types of data belonging to the low update frequency group and a part of the number of types of data belonging to the high update frequency group to a common block Data write control method.
前記複数種類のデータがそれぞれ更新されると、
低更新頻度群に属するデータの種類数の一部と、高更新頻度群に属するデータの種類数の一部とを共通のブロックに書き込む第4ステップを実行することを特徴とする請求項1又は3記載の不揮発性半導体メモリのデータ書き込み制御方法。 In the second step, when the number of types of data belonging to one of the low update frequency group and the high update frequency group exceeds a predetermined threshold, the third step is not executed,
When each of the plurality of types of data is updated,
Low update frequency part of the number types of data belonging to the group and the high update frequency data belonging to group a part of the number of kinds and executes a fourth step of writing to a common block claim 1 or 4. A data write control method for a nonvolatile semiconductor memory according to 3 .
残りの3つのブロックを用いて前記第1〜第3ステップを実行することを特徴とする請求項1から5の何れか一項に記載の不揮発性半導体メモリのデータ書き込み制御方法。 If there are 4 or more blocks in which data can be written, use one of them as a storage area for fixed data that is not updated,
6. The data write control method for a nonvolatile semiconductor memory according to claim 1, wherein the first to third steps are executed using the remaining three blocks.
前記複数種類のデータのそれぞれについて、一定期間に亘る更新頻度を計測する更新頻度計測手段と、
前記計測の結果に基づき、前記複数種類のデータを、低更新頻度群と高更新頻度群とに二分する更新頻度判定手段と、
以降は、低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとを分けて、更新されたデータを書き込む書き込みブロック管理手段とを備え、
データが書き込み可能なブロックが2ブロック以下になると、前記更新頻度計測手段,更新頻度判定手段及び前記ブロック管理手段を機能させず、
前記複数種類のデータがそれぞれ更新されると、共通のブロックに書き込みを行うことを特徴とするマイクロコンピュータ。 A microcomputer (1) having a plurality of blocks of a predetermined size, which is a unit capable of erasing data collectively, and having a nonvolatile memory (4) in which a plurality of types of updated data are written and stored in an empty area ) And
For each of the plurality of types of data, update frequency measuring means for measuring the update frequency over a certain period,
Based on the measurement result, the plurality of types of data is divided into a low update frequency group and a high update frequency group, an update frequency determination means,
Thereafter, a low frequency block for writing data belonging to the low update frequency group and a high frequency block for writing data belonging to the high update frequency group, and a writing block management means for writing updated data are provided ,
When the number of blocks in which data can be written is 2 blocks or less, the update frequency measurement means, the update frequency determination means, and the block management means are not functioned,
A microcomputer that writes to a common block when each of the plurality of types of data is updated .
前記複数種類のデータのそれぞれについて、一定期間に亘る更新頻度を計測する更新頻度計測手段と、
前記計測の結果に基づき、前記複数種類のデータを、低更新頻度群と高更新頻度群とに二分する更新頻度判定手段と、
以降は、低更新頻度群に属するデータを書き込む低頻度用ブロックと、高更新頻度群に属するデータを書き込む高頻度用ブロックとを分けて、更新されたデータを書き込む書き込みブロック管理手段とを備え、
前記ブロック管理手段は、前記更新頻度判定手段の判定結果により、前記低更新頻度群と前記高更新頻度群との何れか一方に属するデータの種類数が予め定めた閾値を超えた状態において、前記複数種類のデータがそれぞれ更新されると、低更新頻度群に属するデータの種類数の一部と、高更新頻度群に属するデータの種類数の一部とを共通のブロックに書き込むことを特徴とするマイクロコンピュータ。 A microcomputer (1) having a plurality of blocks of a predetermined size, which is a unit capable of erasing data collectively, and having a nonvolatile memory (4) in which a plurality of types of updated data are written and stored in an empty area ) And
For each of the plurality of types of data, update frequency measuring means for measuring the update frequency over a certain period,
Based on the measurement result, the plurality of types of data is divided into a low update frequency group and a high update frequency group, an update frequency determination means,
Thereafter, a low frequency block for writing data belonging to the low update frequency group and a high frequency block for writing data belonging to the high update frequency group, and a writing block management means for writing updated data are provided,
In the state where the number of types of data belonging to any one of the low update frequency group and the high update frequency group exceeds a predetermined threshold according to the determination result of the update frequency determination unit, the block management unit When a plurality of types of data are updated, a part of the number of types of data belonging to the low update frequency group and a part of the number of types of data belonging to the high update frequency group are written in a common block. A microcomputer.
残りの3つのブロックを用いて、前記更新頻度計測手段,更新頻度判定手段及び前記ブロック管理手段を機能させることを特徴とする請求項7から11の何れか一項に記載のマイクロコンピュータ。 If there are 4 or more blocks in which data can be written, use one of them as a storage area for fixed data that is not updated,
The microcomputer according to any one of claims 7 to 11, wherein the remaining three blocks are used to cause the update frequency measuring means, the update frequency determining means, and the block management means to function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013051709A JP5991239B2 (en) | 2013-03-14 | 2013-03-14 | Nonvolatile semiconductor memory write control method and microcomputer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013051709A JP5991239B2 (en) | 2013-03-14 | 2013-03-14 | Nonvolatile semiconductor memory write control method and microcomputer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014178825A JP2014178825A (en) | 2014-09-25 |
JP5991239B2 true JP5991239B2 (en) | 2016-09-14 |
Family
ID=51698727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013051709A Expired - Fee Related JP5991239B2 (en) | 2013-03-14 | 2013-03-14 | Nonvolatile semiconductor memory write control method and microcomputer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5991239B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7279534B2 (en) | 2019-06-18 | 2023-05-23 | 株式会社デンソー | Data storage controller and data storage control system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4686358B2 (en) * | 2005-12-26 | 2011-05-25 | ジヤトコ株式会社 | Control device with flash memory |
EP2411914A1 (en) * | 2009-03-24 | 2012-02-01 | Hitachi, Ltd. | Storage apparatus and its data control method |
JP5569469B2 (en) * | 2011-05-25 | 2014-08-13 | 株式会社デンソー | Electronics |
-
2013
- 2013-03-14 JP JP2013051709A patent/JP5991239B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014178825A (en) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
TWI569273B (en) | Method for read disturbance management in non-volatile memory devices | |
JP5629391B2 (en) | Semiconductor memory device and method for controlling semiconductor memory device | |
US20100125696A1 (en) | Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor | |
US20180101302A1 (en) | Data Storage Device and Data Writing Method Thereof | |
US10599345B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US9330787B2 (en) | Memory system and memory controller | |
TWI436369B (en) | Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage system using the same | |
EP3262508B1 (en) | Patrol scrub periods based on power status | |
US10108471B2 (en) | System and method for utilizing history information in a memory device | |
JP2011070346A (en) | Memory system | |
JP2011203916A (en) | Memory controller and semiconductor storage device | |
US10241678B2 (en) | Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted | |
KR20200037882A (en) | Memory device with dynamic cache management | |
JP6102515B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
US10586601B2 (en) | Semiconductor memory device and read control method thereof | |
US9361201B2 (en) | Memory system and memory controller | |
JP2015001909A (en) | Information processor, control circuit, control program, and control method | |
US11733909B2 (en) | Secure-erase prediction for data storage devices | |
JP5991239B2 (en) | Nonvolatile semiconductor memory write control method and microcomputer | |
JP2015191294A (en) | Memory controller, memory system, and memory control method | |
JP2016151922A (en) | Memory control device and memory control method | |
TWI453747B (en) | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
JP2014026511A (en) | Write control method of nonvolatile semiconductor memory device and microcomputer | |
JP6486647B2 (en) | Error correction device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160526 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160801 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5991239 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |