JP2006018893A - Semiconductor storage device and data movement method thereof - Google Patents
Semiconductor storage device and data movement method thereof Download PDFInfo
- Publication number
- JP2006018893A JP2006018893A JP2004193887A JP2004193887A JP2006018893A JP 2006018893 A JP2006018893 A JP 2006018893A JP 2004193887 A JP2004193887 A JP 2004193887A JP 2004193887 A JP2004193887 A JP 2004193887A JP 2006018893 A JP2006018893 A JP 2006018893A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- erasure
- executed
- status information
- 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
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
本発明は半導体記憶装置及びそのデータ移動方法に関し、特に不揮発性メモリ(フラッシュメモリ)の各ブロックに対する負荷を均一化する場合に適用して好適なものである。 The present invention relates to a semiconductor memory device and a data movement method thereof, and is particularly suitable for application to equalize the load on each block of a nonvolatile memory (flash memory).
近年の半導体記憶装置においては、その内部に不揮発性メモリを有しているものがある。この種の不揮発性メモリは、データ記憶領域が複数のブロックに分割されており、ブロックごとにデータの書き込みや消去が行われる。 Some recent semiconductor memory devices have a nonvolatile memory therein. In this type of nonvolatile memory, a data storage area is divided into a plurality of blocks, and data is written and erased for each block.
ところで一般的に不揮発性メモリにおいては、各ブロックに対するデータの消去回数に上限が設けられており、この上限を超えたブロックはデータを記憶し得ない不良ブロックとして扱われる。そしてこのような不揮発性メモリは、不良ブロックの数が所定数以上になってしまうと、製品上の仕様により寿命が尽きたものとされ、使用不可能になってしまう。 In general, in a nonvolatile memory, an upper limit is set for the number of times data is erased for each block, and a block exceeding this upper limit is treated as a defective block that cannot store data. Such a non-volatile memory becomes unusable when the number of defective blocks exceeds a predetermined number, because the product specifications have expired.
従って不揮発性メモリにおいては、ある特定ブロックばかりにデータの書き込みや消去が行われ、これにより当該特定ブロックの消去回数のみが増加するようになると、この特定ブロックが他のブロックよりも早く不良ブロックになってしまう。そしてこのようにして生じる不良ブロックの数が所定数以上になってしまうと、消去回数が少なく未だデータを記憶することができるブロックを数多く残しているのにも関わらず、不揮発性メモリが使用不可能になってしまう場合があった。 Therefore, in the nonvolatile memory, when data is written or erased only to a specific block, and only the number of times of erasure of the specific block increases, this specific block becomes a defective block earlier than other blocks. turn into. If the number of defective blocks generated in this way exceeds a predetermined number, the nonvolatile memory cannot be used even though there are still many blocks where the number of erases is small and data can still be stored. In some cases, it became possible.
この問題を解決するために、例えば次のような手法(以下、これを第1の手法と呼ぶ)が提案されている。すなわち第1の手法が適用された半導体記憶装置においては、ブロックごとにデータの消去回数をカウントし、この結果を消去管理テーブルに記して管理する。そしてこの半導体記憶装置は、消去管理テーブルを適宜参照することにより所定の規定回数に達したブロックを発見すると、当該消去管理テーブルに記された全ブロックの消去回数を参照することにより、消去回数が最も少ないブロックを特定する。次いでこの半導体記憶装置は、規定回数に達したブロックに記憶されているデータを、当該特定した消去回数が最も少ないブロックへ移動させる。このようにしてこの第1の手法では、不揮発性メモリの各ブロックに対する負荷を均一化(いわゆるウェアレベルリング(Wear Leveling))することにより、不揮発性メモリの使用可能期間を向上させることができる(特許文献1参照)。
ところで第1の手法が適用された半導体記憶装置は、消去管理テーブルに対しブロックごとの消去回数(例えば1000回等)を記すので、当該消去管理テーブルのデータ量が大きくなってしまう上、上述したようにウェアレベルリングする際、消去管理テーブルに記された全ブロックの消去回数を参照するような処理を実行しなければならず、従ってその構成が簡易であるとは言い難かった。 By the way, the semiconductor memory device to which the first method is applied records the number of times of erasing for each block (for example, 1000 times) in the erasure management table. Thus, when performing wear leveling, it is necessary to execute a process for referring to the number of times of erasure of all the blocks described in the erasure management table, and therefore, it is difficult to say that the configuration is simple.
一方、従来の半導体記憶装置においては、第1の手法と異なる次のような手法(以下、これを第2の手法と呼ぶ)も採用されている。以下に説明するこの第2の手法は、消去管理テーブル等を必要とせず、かくして半導体記憶装置の構成を簡易化し得るものである。 On the other hand, in the conventional semiconductor memory device, the following method (hereinafter referred to as the second method) different from the first method is also employed. This second method described below does not require an erasure management table or the like, and thus can simplify the configuration of the semiconductor memory device.
ここでは図4及び図5を用いて、この第2の手法を説明する。図4(A)〜(E)においては、不揮発性メモリ中の1つのセグメントSGXを簡略化して示している。実際上この1セグメントSGXは、例えば512個のブロックBK(BK0、BK1、……)を有し、各ブロックBKには、例えば64ページ分のデータが記憶され得るようになされている(例えば1ページが2[Kbyte]に相当)。 Here, the second method will be described with reference to FIGS. 4 and 5. 4A to 4E, one segment SGX in the nonvolatile memory is shown in a simplified manner. In practice, this one segment SGX has, for example, 512 blocks BK (BK0, BK1,...), And each block BK can store, for example, 64 pages of data (for example, 1 The page is equivalent to 2 [Kbyte]).
因みにこの図4及び図5においては、データを記憶しているブロックBKに斜線を施すと共に、データ消去処理が実行されたブロックBKに網掛けを施しており、またデータ消去処理の回数が多いブロックBKほど施す網掛けを密にした。 4 and 5, the block BK storing data is shaded, and the block BK subjected to the data erasing process is shaded, and the block having a large number of data erasing processes. The shading applied to BK was made dense.
第2の手法が適用された半導体記憶装置は、図4(A)に示すように、外部から供給されるデータを、データが書き込まれていない空ブロックBK0、BK1、……に順次書き込んでいく。 As shown in FIG. 4A, the semiconductor memory device to which the second technique is applied sequentially writes data supplied from the outside into empty blocks BK0, BK1,... Where no data is written. .
やがて外部から、例えばブロックBK6に記憶されている64ページ分のデータのうちの一部のデータを更新する更新データが、この半導体記憶装置に対して供給されたとする(図4(B))。 Eventually, for example, update data for updating a part of the data of 64 pages stored in the block BK6 is supplied to the semiconductor memory device (FIG. 4B).
このときこの半導体記憶装置は、ブロックBK6に記憶されているデータのうち当該更新データの更新対象でないデータ(以下、これを「更新対象外データ」と呼ぶ)を読み出し、当該読み出した更新対象外データとかかる更新データとを、このセグメントSGX中の所定部分に確保されている空ブロックBK21に対して書き込む(図4(C)中の(a))。そしてこの半導体記憶装置は、ブロックBK6に記憶されている古いデータを全て消去する(図4(C)中の(b))。この後外部から、例えばブロックBK3に記憶されているデータのうちの一部を更新する更新データが半導体記憶装置に対して供給されたときも、この半導体記憶装置は同様の処理(図4(D)中の(c)及び(d))を実行する。 At this time, the semiconductor memory device reads out data stored in the block BK6 that is not the update target of the update data (hereinafter referred to as “non-update target data”), and the read non-update target data. Then, the update data is written to the empty block BK21 secured in a predetermined part in the segment SGX ((a) in FIG. 4C). This semiconductor memory device erases all the old data stored in the block BK6 ((b) in FIG. 4C). Thereafter, when update data for updating a part of the data stored in the block BK3 is supplied to the semiconductor memory device from the outside, the semiconductor memory device performs the same processing (FIG. 4D ) (C) and (d)) are executed.
このように第2の手法が適用された半導体記憶装置は、例えばブロックBK6に記憶されているデータの一部を更新する際、このブロックBK6に一緒に記憶されていたデータを全て他のブロックBK21へ移動するようにしたことにより、ブロックBK6ばかりにデータの書込み処理や消去が行われてしまうことをある程度回避することができる。 As described above, when the semiconductor memory device to which the second method is applied updates, for example, part of the data stored in the block BK6, all the data stored together in the block BK6 is transferred to another block BK21. Thus, it is possible to avoid to some extent that data write processing and erasure are performed only on the block BK6.
次に図5を用いて、この第2の手法におけるデータの書き込み処理の様子を詳細に説明する。実際上このような半導体記憶装置は、論理アドレスと各ブロックBKに割り当てられた物理アドレスとを対応付けてなるテーブル(以下、これを論物変換テーブル)を有しており、これによりこれまで書き込んだ各データの記憶位置を管理している。 Next, the state of the data writing process in the second method will be described in detail with reference to FIG. In practice, such a semiconductor memory device has a table (hereinafter referred to as a logical-physical conversion table) in which a logical address and a physical address assigned to each block BK are associated with each other. It manages the storage location of each data.
ここで図5(A)に示すような状態において、外部から、例えば論理アドレス#0に対応するブロックBK0に記憶されているデータの一部を更新するための更新データが供給されると、このとき半導体記憶装置は、論物変換テーブルを参照することにより論理アドレス#0に対応する物理アドレス#0を認識する。そしてこの半導体記憶装置は、当該認識した物理アドレス#0に基づいてブロックBK0にアクセスし、当該アクセスしたブロックBK0に記憶されているデータのうち当該更新データの更新対象でない更新対象外データを読み出し、当該読み出した更新対象外データとかかる更新データとを、このセグメントSGX中の空ブロックBK3に対して書き込む(図5(B))。続いて半導体記憶装置は、ブロックBK0に記憶されている古いデータを全て消去すると共に、論理アドレス#0とブロックBK3の物理アドレス#3とを対応付けるようにして論物変換テーブルを更新する。
Here, in the state shown in FIG. 5A, when update data for updating a part of the data stored in the block BK0 corresponding to the
この後さらに外部から、論理アドレス#0に対応するブロックBK3に記憶されているデータの一部を更新するための更新データが供給されると、このとき半導体記憶装置は、論物変換テーブルを参照することにより論理アドレス#0に対応する物理アドレス#3を認識する。そしてこの半導体記憶装置は、当該認識した物理アドレス#3に基づいてブロックBK3にアクセスし、当該アクセスしたブロックBK3に記憶されているデータのうち当該更新データの更新対象でない更新対象外データを読み出し、当該読み出した更新対象外データとかかる更新データとを、このセグメントSGX中の空ブロックBK6に対して書き込む(図5(C))。続いて半導体記憶装置は、ブロックBK3に記憶されている古いデータを全て消去すると共に、論理アドレス#0とブロックBK6の物理アドレス#6とを対応付けるようにして論物変換テーブルを更新する。
Thereafter, when update data for updating a part of the data stored in the block BK3 corresponding to the
かくしてこの第2の手法が適用された半導体記憶装置では、例えば論理アドレス#0に対応するデータばかりが頻繁に更新される場合であって、この他の論理アドレスに対応するデータがほとんど更新されない場合、図5(D)に示すように、データ消去処理の実行されるブロックBKがある程度固定されてしまう(この場合、ブロックBK0、BK3、BK6、BK10、BK13、BK19)。
Thus, in the semiconductor memory device to which the second method is applied, for example, only data corresponding to the
この結果不揮発性メモリにおいては、データ消去処理されないために同じデータが記憶されたままになってしまうブロックBK(いわゆる不動ブロック)が数多く発生してしまうことになる。 As a result, in the nonvolatile memory, many blocks BK (so-called non-moving blocks) are generated in which the same data remains stored because the data erasure process is not performed.
そしてこのように不動ブロックが数多く発生してしまった場合、不揮発性メモリの各ブロックBKに対する負荷が偏ってしまっている状態になっているので、不揮発性メモリの使用可能期間を向上させることが難しくなってしまう。 When a large number of immovable blocks are generated in this way, the load on each block BK of the nonvolatile memory is biased, so it is difficult to improve the usable period of the nonvolatile memory. turn into.
このように第2の手法を適用した半導体記憶装置は、消去管理テーブル等を保持する必要が無いので、第1の手法を適用した場合と比べてその構成を簡易化し得るものの、不揮発性メモリの各ブロックBKに対する負荷を十分に均一化することができないという問題があった。 Since the semiconductor memory device to which the second method is applied as described above does not need to hold the erasure management table or the like, its configuration can be simplified as compared with the case where the first method is applied. There was a problem that the load on each block BK could not be equalized sufficiently.
本発明は以上の点を考慮してなされたもので、格段と簡易な構成で不揮発性メモリの各ブロックに対する負荷をより均一化し得る半導体記憶装置及びそのデータ移動方法を提案しようとするものである。 The present invention has been made in consideration of the above points, and an object of the present invention is to propose a semiconductor memory device and a data movement method thereof that can make the load on each block of the nonvolatile memory more uniform with a remarkably simple configuration. .
かかる課題を解決するため本発明においては、半導体記憶装置において、データを記憶するためのブロックを複数有し、各上記ブロックに対しデータ消去処理が実行されたか否かを示す消去処理状況情報が対応付けられる不揮発性メモリと、データ消去処理が実行されていない旨の上記消去処理状況情報が対応付けられた上記ブロックに記憶されているデータを他の上記ブロックに移動させるデータ移動処理を実行するデータ移動手段とを設けるようにした。 In order to solve such a problem, in the present invention, in the semiconductor memory device, there are a plurality of blocks for storing data, and the erasure processing status information indicating whether or not the data erasure processing has been executed for each of the blocks corresponds. Data for executing data movement processing for moving data stored in the block associated with the non-volatile memory to be attached and the erasing processing status information indicating that data erasing processing has not been executed to another block And moving means.
また本発明においては、半導体記憶装置のデータ移動方法において、データを記憶するためのブロックを複数有し各上記ブロックに対しデータ消去処理が実行されたか否かを示す消去処理状況情報が対応付けられる不揮発性メモリの上記ブロックの中から、データ消去処理が実行されていない旨の上記消去処理状況情報が対応付けられた上記ブロックを認識する第1のステップと、上記認識したブロックに記憶されているデータを他の上記ブロックに移動させるデータ移動処理を実行する第2のステップとを設けるようにした。 Further, in the present invention, in the data movement method of the semiconductor memory device, there are a plurality of blocks for storing data, and erase process status information indicating whether or not the data erase process has been executed is associated with each of the blocks. A first step of recognizing the block associated with the erasure process status information indicating that the data erasure process has not been executed is stored in the recognized block from the block of the nonvolatile memory. And a second step of executing a data movement process for moving data to the other block.
このようにして、データ消去処理されていないブロックに記憶されているデータを、他のブロックへ移動させるようにしたことにより、データ消去処理されないために同じデータが記憶されたままになっているブロックを減らすことができる。 In this way, data stored in a block that has not been subjected to data erasure processing is moved to another block, so that the same data remains stored because data erasure processing is not performed. Can be reduced.
本発明によれば、データ消去処理されていないブロックに記憶されているデータを、他のブロックへ移動させるようにしたことにより、データ消去処理されないために同じデータが記憶されたままになっているブロックを減らすことができる。この結果、消去管理テーブル等を保持する必要なく格段と簡易な構成で、不揮発性メモリの各ブロックに対する負荷をより均一化することができる。 According to the present invention, since data stored in a block that has not been subjected to data erasure processing is moved to another block, the same data remains stored because data erasure processing is not performed. Blocks can be reduced. As a result, the load on each block of the nonvolatile memory can be made more uniform with a remarkably simple configuration without the need to hold an erase management table or the like.
以下図面について、本発明の一実施の形態を詳述する。 Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
(1)半導体記憶装置の構成
図1において、1は全体としてカード型の半導体記憶装置を示し、複数の不揮発性メモリ2A、……からなるメモリ部2と、当該メモリ部2を制御するコントローラ部3とを有している。なお以下では説明の便宜上、複数の不揮発性メモリ2A、……のうちの不揮発性メモリ2Aを中心に説明する。
(1) Configuration of Semiconductor Memory Device In FIG. 1,
因みに本実施の形態の場合、このカード型の半導体記憶装置1はメモリスティック(登録商標)に相当し、例えばパーソナルコンピュータ等の外部機器から供給されるデータが書き込まれる。
Incidentally, in the case of the present embodiment, the card type
コントローラ部3において、制御を司るMPU(Micro Processing Unit)4に対しては、命令レジスタ等からなるレジスタ部5と、誤り訂正処理等を実行するECC(Error Correcting Circuit)部6と、不揮発性メモリ2Aに対して読み書きされるデータが一時蓄積されるデータバッファ部7とが接続される。またこのコントローラ部3は、MS内部クロック(メモリスティック内部クロック)を生成するためのクロック生成部8を有している。
In the controller unit 3, an MPU (Micro Processing Unit) 4 that performs control includes a
データバッファ部7は、所定のバス9を介して、シリアルインターフェース部10及びパラレルインターフェース部11と接続される。外部機器からのデータは、所定ライン(DATA0〜DATA3)及びパラレルインターフェース部11、(DATA0)及びシリアルインターフェース部10を順次介してデータバッファ部7へ入力され、MPU4は、このデータバッファ部7に入力されたデータを、不揮発性メモリ2Aに対して書き込むようになされている。
The data buffer unit 7 is connected to the
またこの半導体記憶装置1に対しては、所定ライン(VSS,VCC)を介して電源が供給される。またこの半導体記憶装置1は、外部機器からのデータを取り込むために必要となるクロックが入力されるライン(SCLK)や、外部機器に対してこの半導体記憶装置1が正常に装着されているか否かを判断するための信号が入力されるライン(INS)や、外部機器から供給されるデータの向きを判断するための信号が入力されるライン(BS)等も設けられている。
The
次に図2において、不揮発性メモリ2A中の1つのセグメントSGを簡略化して示す。実際上このセグメントSGは、例えば512個のブロックBK(BK0、BK1、……)を有し、各ブロックBKには、例えば64ページ分のデータが記憶されるようになされている(例えば1ページが2[Kbyte]に相当)。 Next, in FIG. 2, one segment SG in the nonvolatile memory 2A is shown in a simplified manner. In practice, this segment SG has, for example, 512 blocks BK (BK0, BK1,...), And each block BK stores, for example, 64 pages of data (for example, one page). Is equivalent to 2 [Kbyte]).
因みに図2においては、データを記憶しているブロックBKに斜線を施すと共に、データ消去処理が実行されたブロックBKに網掛けを施しており、またデータ消去処理の回数が多いブロックBKほど施す網掛けを密にした。 In FIG. 2, the block BK storing data is shaded, and the block BK on which the data erasing process has been performed is shaded. Close the hanger.
本実施の形態の場合、各ブロックBKに対しては、データが記憶されているか否かを示す記憶状況情報(erase status)が対応付けて記憶されている。MPU4は、データが記憶されているブロックBKについては、そのブロックBKに対応する記憶状況情報を「0」に設定し、データが記憶されていないブロックBKについては、そのブロックBKに対応する記憶状況情報を「1」に設定する。
In the present embodiment, storage status information (erase status) indicating whether or not data is stored is stored in association with each block BK. The
また本実施の形態の場合、各ブロックBKに対しては、データ消去処理が実行されたか否かを示す消去処理状況情報(wear status)が対応付けて記憶されている。本実施の形態の場合このMPU4は、消去処理状況情報を全て「1」にリセットするリセット時に、各ブロックBKに対応付けられている全ての消去処理状況情報を「1」に設定し、この後データ消去処理が実行されたブロックBKが現れる度に、そのブロックBKに対応する消去処理状況情報を「0」に設定するようになされている。
In this embodiment, each block BK is stored with erasure process status information (wear status) indicating whether or not the data erasure process has been executed. In the case of this embodiment, the
図2(A)に示す状態において、半導体記憶装置1のMPU4は、例えば外部機器から、論理アドレス#0に対応するブロックBK10に記憶されているデータの一部を更新するための更新データが供給されると、MPU4内部のRAM(図示せず)に記憶されている論物変換テーブルを参照することにより、論理アドレス#0に対応する物理アドレス#10を認識し、当該認識した物理アドレス#10に対応するブロックBK10にアクセスする。因みにこのブロックBK10に対しては、消去処理状況情報のリセット後既にデータ消去処理が実行されているので、対応する消去処理状況情報が「0」に設定されている。
In the state shown in FIG. 2A, the
そしてMPU4は、当該アクセスしたブロックBK10に記憶されているデータのうち当該更新データの更新対象でない更新対象外データを読み出し、当該読み出した更新対象外データとかかる更新データとを、同セグメントSG中の空ブロックBK13(物理アドレス#13)に対して書き込む。
Then, the
続いてMPU4は、論理アドレス#0とブロックBK13の物理アドレス#13とを対応付けるようにして論物変換テーブルを更新すると共に、ブロックBK10に対してデータ消去処理を実行する。
Subsequently, the
このようにして、消去処理状況情報が「0」に設定されているブロックBK10(つまり、リセット後既にデータ消去処理が実行されたブロックBK10)に対してデータ消去処理を再度実行したとき、この半導体記憶装置1のMPU4は、このままでは特定のブロックBK0、BK3、BK6、BK10、BK13、BK19ばかりにデータ消去処理を実行してしまう可能性が高いと判断し、これを契機として、ウェアレベリング処理を実行するためのウェアレベリング実行モードへ移行する。
In this way, when the data erasure process is performed again on the block BK10 whose erasure process status information is set to “0” (that is, the block BK10 in which the data erasure process has already been executed after the reset), this semiconductor The
ウェアレベリング実行モードに移行したMPU4は、このセグメントSG中の各ブロックBKに対応付けられている記憶状況情報及び消去処理状況情報を参照することにより、リセット以後未だデータ消去処理が実行されておらず且つ現在データを記憶している例えばブロックBK1(以下適宜、これを未消去処理ブロックと呼ぶ)と、リセット以後既にデータ消去処理が実行されており且つ現在データを記憶していない例えばブロックBK0(以下適宜、これを消去処理済ブロックと呼ぶ)とを認識する。
The
次いでMPU4は、認識した未消去処理ブロックBK1に記憶されているデータのうちの1ページ分のデータを、認識した消去処理済ブロックBK0へコピーする。さらにこの後MPU4は、このセグメントSG中の何れかのブロックBKに対して、外部機器からのデータを書き込む処理が実行される度に、未消去処理ブロックBK1に記憶されている残りのデータを1ページ分ずつ、消去処理済ブロックBK0へコピーする。そしてMPU4は、図2(B)に示すように、未消去処理ブロックBK1に記憶されているデータの全てを消去処理済ブロックBK0へコピーし終えると、この未消去処理ブロックBK1に対してデータ消去処理を実行する。
Next, the
このようにしてこの半導体記憶装置1においては、リセット以後未だデータ消去処理されていないブロックBK1に記憶されているデータを、現在データを記憶保持していない消去処理済ブロックBK0へ移動するようにした。これにより、データ消去処理されないために同じデータが記憶されたままになっている不動ブロック(この場合ブロックBK1等)を減らすことができる。
In this way, in this
この後MPU4は、例えば図2(B)に示すような状態になっているとき、外部機器から、論理アドレス#0に対応するブロックBK19に記憶中のデータを一部更新するための更新データが供給されると、当該ブロックBK19に記憶されているデータのうち当該更新データの更新対象でない更新対象外データを読み出し、当該読み出した更新対象外データとかかる更新データとを、例えばウェアレベリング処理によりデータが移動されたブロックBK1へ書き込むことができる(図2(C))。かくしてこの半導体記憶装置1は、論理アドレス#0に対応するデータを、特定のブロックBK0、BK3、BK6、BK10、BK13、BK19ばかりに書き込み続けてしまうことを回避することができる。
Thereafter, when the
またこの後もMPU4は、このセグメントSG中の各ブロックBKに対応付けられた全ての消去処理状況情報が「0」になるまで、上述のウェアレベリング処理を実行し続け、当該全ての消去処理状況情報が「0」になったとき、当該全ての消去処理状況情報を「1」にリセットし、ウェアレベリング処理を実行しないウェアレベリング非実行モードへ戻るようになされている。
Thereafter, the
次に図3に示すフローチャートを用いて、この半導体記憶装置1により実行されるデータ書き込み処理手順RT1を説明する。
Next, a data write processing procedure RT1 executed by the
すなわち半導体記憶装置1のMPU4は、例えば外部機器から、ブロックBK10(図2(A))に記憶されている64ページ分のデータのうちの一部のデータを更新する更新データが供給されると、データ書き込み処理手順RT1をステップSP1から開始する。
That is, when the
ステップSP1においてMPU4は、ブロックBK10に記憶されているデータのうち当該更新データの更新対象でない更新対象外データを読み出し、当該読み出した更新対象外データとかかる更新データとを、同セグメントSG中の空ブロックBK13に対して書き込む。
In step SP1, the
次いでMPU4はステップSP2において、ブロックBK10に対してデータ消去処理を実行する。
Next, the
続いてMPU4はステップSP3へ移り、現在、ウェアレベリング実行モードになっているか否かを判定する。この場合このMPU4は、ウェアレベリング実行モードに未だ遷移していないので、このステップSP3で否定結果を得て、次のステップSP4へ移る。これに対しこのMPU4は、例えばウェアレベリング実行モードに遷移している場合、このステップSP3で肯定結果を得て、後述のステップSP5へ移りウェアレベリング処理を実行するようになされている。
Subsequently, the
ステップSP4においてMPU4は、ステップSP2でデータ消去処理したブロックBK10の消去処理状況情報が、そのデータ消去処理をする前に「0」に設定されていたか否かを判定する。この場合ここで肯定結果が得られるので、MPU4はウェアレベリング実行モードに遷移し、続くステップSP5へ移ってウェアレベリング処理を開始する。
In step SP4, the
因みに、ステップSP2でデータ消去処理したブロックBK10の消去処理状況情報が、そのデータ消去処理をする前「1」に設定されていた場合、MPU4はこのステップSP4で否定結果を得て、後述のステップSP9へ移るようになされている。
Incidentally, when the erasure processing status information of the block BK10 subjected to the data erasure processing in step SP2 is set to “1” before the data erasure processing, the
ステップSP5においてMPU4は、例えば図2(A)に示すセグメントSG中の各ブロックBKに対応付けられた消去処理状況情報を参照し、これにより消去処理状況情報「1」が対応付けられているブロックBKを認識できたか否かを判定する。この場合MPU4は、消去処理状況情報「1」が対応付けられているブロック(上述の未消去処理ブロック)BK1を認識し、この結果ステップSP5において肯定結果を得て、続くステップSP6へ移る。
In step SP5, the
これに対しMPU4は、例えば消去処理状況情報「1」が対応付けられているブロックBKを1つも認識し得なかった場合、ステップSP5で否定結果を得てステップSP11へ移り、セグメントSG中の各ブロックBKに対応付けられた全ての消去処理状況情報を「0」から「1」へリセットすると共に、ウェアレベリング非実行モードに遷移するようになされている。
On the other hand, if the
ステップSP6においてMPU4は、ステップSP5で認識したブロックBK1に記憶されているデータの1ページ分を、例えば現在データが記憶されていない他のブロック(上述の消去処理済ブロック)BK0へコピーする。
In step SP6, the
続いてMPU4はステップSP7へ移り、ブロックBK1に記憶されている全てのデータをブロックBK0へコピーし終えたか否かを判定する。ここで例えば肯定結果が得られると、このことは、図2(B)に示すように、ブロックBK1に記憶されているデータの全てをブロックBK0へコピーし終えたことを意味しているので、このときMPU4は続くステップSP8へ移り、ブロックBK1に記憶されている古いデータを消去するデータ消去処理を実行すると共に、当該ブロックBK1の消去処理状況情報を「0」に変更し、続くステップSP9へ移る。
Subsequently, the
これに対しこのステップSP7において例えば否定結果が得られると、このことは、ブロックBK1に記憶されているデータの全てを他のブロックBK0へコピーし終えていないことを意味しているので、このときMPU4はステップSP8をスキップし、ステップSP9以降の処理を順次実行するようになされている。
On the other hand, if a negative result is obtained in step SP7, for example, this means that all of the data stored in the block BK1 has not been copied to the other block BK0. The
ステップSP9においてMPU4は、論物変換テーブルの更新処理(BMAP更新処理)を実行し、次のステップSP10へ移る。この論物変換テーブルの更新処理では、例えば、ステップSP1及びSP2の処理によりブロックBK10のデータがブロックBK13に移動したことに伴う、論理アドレス及び物理アドレスの対応付けの更新を行う。
In step SP9, the
ところで本実施の形態の場合、この半導体記憶装置1は、同じ論物変換テーブルを2つ保持している。すなわち、1つ目の論物変換テーブルはステップSP9で更新されるものであり、当該1つ目の論物変換テーブルのダミーとして設けられている2つ目の論物変換テーブルは、当該1つ目の論物変換テーブルに対する更新が正常に行われたか否かを確認する際に用いられるものである。またこの半導体記憶装置1は、不揮発性メモリ2A中のシステムエリアを管理するための管理情報が書き込まれた管理用テーブルも保持している。この管理用テーブルには、論物変換テーブルの記憶場所を示すアドレス等も書き込まれる。
By the way, in the case of the present embodiment, this
ステップSP10においてMPU4は、2つ目の論物変換テーブルを更新する更新処理(DUMMY更新処理)を実行すると共に、必要に応じて管理用テーブルを更新する更新処理(SMAP更新処理)を実行し、終了ステップSP12へ移ってデータ書き込み処理手順RT1を終了する。この後さらに外部機器から、例えばこのセグメントSG中の何れかのブロックBKに記憶されているデータを更新するための更新データが供給されると、半導体記憶装置1は、このデータ書き込み処理手順RT1をステップSP1から再度開始するようになされている。
In step SP10, the
(2)動作及び効果
以上の構成においてこの半導体記憶装置1は、消去処理状況情報のリセット後既にデータ消去処理が実行されたブロックBK10(図2(A))に対して、データ消去処理が再度実行されたとき、ウェアレベリング処理を開始する。
(2) Operation and Effect In the above configuration, the
このウェアレベリング処理では、このセグメントSG中の各ブロックBKに対応付けられて記憶されている消去処理状況情報に基づいて、リセット以後未だデータ消去処理されていない例えばブロックBK1を認識し、当該認識したブロックBK1に記憶されているデータを、現在データが記憶されていない他のブロックBK0へ移動させるようにした。 In this wear leveling process, for example, the block BK1 that has not been subjected to the data erasure process after the reset is recognized based on the erasure process status information stored in association with each block BK in the segment SG, and the recognition is performed. The data stored in the block BK1 is moved to another block BK0 in which no current data is stored.
これにより、データ消去処理されないために同じデータが記憶されたままになっているブロックBK(不動ブロック)を確実に減らすことができる。 Thereby, the blocks BK (non-moving blocks) in which the same data remains stored because the data erasure process is not performed can be surely reduced.
またこの半導体記憶装置1においては、各ブロックBKに対しそれぞれ消去処理状況情報が記憶させているが、この消去処理状況情報は、データ消去処理が実行されたか否かのみを示すだけなので1ブロックBKごとに1ビット(「0」及び「1」のみ)の情報量で済み、この結果、消去管理テーブル等を保持しなければならない従来構成と比べて構成を格段と簡易化することができる。
In this
以上の構成によれば、不揮発性メモリ2Aの各ブロックBKに対応付けられた、データ消去処理が実行されたか否かを「0」及び「1」により示す消去処理状況情報に基づいて、未だデータ消去処理されていないブロックBK1を認識し、当該認識したブロックBK1に記憶されているデータを、他のブロックBK0へ移動させるようにしたことにより、データ消去処理されないために同じデータが記憶されたままになっているブロックBK(不動ブロック)を減らすことができ、かくして格段と簡易な構成で不揮発性メモリ2Aの各ブロックBKに対する負荷をより均一化することができる半導体記憶装置1を実現することができる。
According to the above configuration, the data is not yet stored on the basis of the erasure process status information indicated by “0” and “1” indicating whether or not the data erasure process is executed, which is associated with each block BK of the nonvolatile memory 2A. By recognizing the block BK1 that has not been erased and moving the data stored in the recognized block BK1 to another block BK0, the same data remains stored because the data is not erased. It is possible to reduce the number of blocks BK (non-moving blocks), and thus to realize the
また本実施の形態の場合、図2(A)に示すように、リセット以後未だデータ消去処理されていないブロック(未消去処理ブロック)BK1に記憶されている、更新される可能性の低いデータを、リセット以後既にデータ消去処理されたことのあるブロック(消去処理済ブロック)BK0へ移動するようにした。このようにして、既にデータ消去処理が何回も行われた可能性のある消去処理済ブロックBK0に、更新される可能性の低いデータを記憶保持させれば、これ以降この消去処理済ブロックBK0にデータ消去処理が集中してしまうことを回避することができ、かくして各ブロックBKに対する負荷を格段と確実に均一化することができる。 In the case of the present embodiment, as shown in FIG. 2 (A), data stored in a block (unerased processing block) BK1 that has not yet been subjected to data erasing processing after reset is not likely to be updated. Then, after the reset, the block is moved to a block (erase-processed block) BK0 that has already been subjected to data erase processing. In this way, if data that is unlikely to be updated is stored and held in the erased block BK0 that may have been subjected to data erasure processing many times, the erased block BK0 is thereafter stored. Therefore, it is possible to avoid the concentration of the data erasing process, and thus the load on each block BK can be remarkably equalized.
さらに本実施の形態の場合のウェアレベリング処理では、不揮発性メモリ2Aの何れかのブロックBKに対してデータを書き込む処理が実行される度に、未消去処理ブロックBK1に記憶されているデータを少しずつ(1ページ分ずつ)、消去処理済ブロックBK0に移動させるようにした。これにより、未消去処理ブロックBK1に記憶されているデータを消去処理済ブロックBK0に移動させる処理に起因して、不揮発性メモリ2Aに対するデータの書き込み処理が遅くなってしまうことを回避することができる。 Further, in the wear leveling process in the present embodiment, every time a process of writing data to any block BK of the nonvolatile memory 2A is executed, a little data is stored in the unerased process block BK1. Each (one page) is moved to the erased block BK0. As a result, it is possible to prevent the data writing process to the nonvolatile memory 2A from being delayed due to the process of moving the data stored in the unerased processing block BK1 to the erased block BK0. .
ところで、本実施の形態の半導体記憶装置1に対し次のような試験を行ってその効果を確認した。すなわちこの試験では、不揮発性メモリ2Aの全容量をデータで満たした後このデータを全て一旦消去し、次いでこの不揮発性メモリ2Aの半分の容量をデータで再度満たした後これを消去する、という処理を繰り返し行った。この結果、従来の第2の手法を適用した半導体記憶装置では、不揮発性メモリ2Aの全ブロックBKのうち約40%が不動ブロックBKになってしまうところ、本実施の形態の半導体記憶装置1では、不動ブロックBKの数を約3%まで抑制することができた。また本実施の形態の半導体記憶装置1では、第2の手法を適用した場合と比べて、その寿命を約25%向上させることができた。さらに本実施の形態の半導体記憶装置1では、上述したように、未消去処理ブロックBK1に記憶されている全てのデータを1度に他のブロックBK0へ移動させるのではなく、当該データを少しずつ他のブロックBK0へ移動させるようにしたことにより、メディアとしてのパフォーマンス(更新データの書き込み処理速度等)への影響を、約1%未満に抑制することができた。
By the way, the following test was performed on the
なお上述の実施の形態においては、データ消去処理が実行されていない旨の消去処理状況情報が対応付けられたブロックに記憶されているデータを他のブロックに移動させるデータ移動処理(ウェアレベリング処理)を実行するデータ移動手段として、MPU4を適用する場合について述べたが、本発明はこれに限らず、この他種々の構成を適用することができる。
In the above-described embodiment, data movement processing (wear leveling processing) for moving data stored in a block associated with erasure processing status information indicating that data erasure processing has not been executed to another block. Although the case where the
本発明は、不揮発性メモリを有する半導体記憶装置等に利用することができる。 The present invention can be used for a semiconductor memory device having a nonvolatile memory.
1……半導体記憶装置、2……メモリ部、2A……不揮発性メモリ、4……MPU、BK……ブロック、SG……セグメント。
DESCRIPTION OF
Claims (12)
データ消去処理が実行されていない旨の上記消去処理状況情報が対応付けられた上記ブロックに記憶されているデータを他の上記ブロックに移動させるデータ移動処理を実行するデータ移動手段と
を具えることを特徴とする半導体記憶装置。 A non-volatile memory having a plurality of blocks for storing data and associated with erasure processing status information indicating whether or not the data erasure processing has been executed for each of the blocks;
Data movement means for executing data movement processing for moving data stored in the block associated with the erasure processing status information indicating that data erasure processing is not executed to another block. A semiconductor memory device.
ことを特徴とする請求項1に記載の半導体記憶装置。 The semiconductor memory device according to claim 1, wherein the other block is associated with the erasure process status information indicating that the data erasure process has been executed.
ことを特徴とする請求項1に記載の半導体記憶装置。 In the data movement process, each time a process of writing data to any of the blocks of the nonvolatile memory is executed, the erasure process status information indicating that the data erasure process is not executed is associated. The semiconductor memory device according to claim 1, wherein data stored in the block is moved to the other block by a predetermined amount.
ことを特徴とする請求項1に記載の半導体記憶装置。 The data moving means starts the data moving process when the data erasing process is executed again for the block associated with the erasing process status information indicating that the data erasing process has been executed. The semiconductor memory device according to claim 1.
ことを特徴とする請求項1に記載の半導体記憶装置。 The data movement means executes the data movement processing until it is indicated that the data erasure processing is executed in all the erasure processing status information associated with each block. 2. The semiconductor memory device according to 1.
を具えることを特徴とする請求項5に記載の半導体記憶装置。 And updating means for updating all the erasure processing status information so as to indicate that the data erasure processing has not been executed when all the erasure processing status information indicates that the data erasure processing has been executed. The semiconductor memory device according to claim 5.
上記認識したブロックに記憶されているデータを他の上記ブロックに移動させるデータ移動処理を実行する第2のステップと
を具えることを特徴とする半導体記憶装置のデータ移動方法。 Data erasure processing is executed from among the blocks of the non-volatile memory having a plurality of blocks for storing data and associated with erasure processing status information indicating whether or not data erasure processing has been executed for each of the blocks. A first step of recognizing the block associated with the erasure processing status information indicating that it has not been performed;
A data movement method for a semiconductor memory device, comprising: a second step of executing a data movement process for moving data stored in the recognized block to another block.
ことを特徴とする請求項7に記載の半導体記憶装置のデータ移動方法。 8. The data movement method for a semiconductor memory device according to claim 7, wherein the other block is associated with the erasure process status information indicating that the data erasure process has been executed.
ことを特徴とする請求項7に記載の半導体記憶装置のデータ移動方法。 In the data movement process, each time a process of writing data to any of the blocks of the nonvolatile memory is executed, the erasure process status information indicating that the data erasure process is not executed is associated. 8. The data movement method for a semiconductor memory device according to claim 7, wherein the data stored in the block is moved to the other block by a predetermined amount.
ことを特徴とする請求項7に記載の半導体記憶装置のデータ移動方法。 In the second step, the data movement process is started when the data erasure process is executed again for the block associated with the erasure process status information indicating that the data erasure process has been executed. 8. The method for moving data in a semiconductor memory device according to claim 7, wherein:
ことを特徴とする請求項7に記載の半導体記憶装置のデータ移動方法。 In the second step, the data movement process is executed until it is indicated that the data erasure process has been executed in all the erasure process status information associated with each block. Item 8. A data movement method for a semiconductor memory device according to Item 7.
ことを特徴とする請求項11に記載の半導体記憶装置のデータ移動方法。
When all the erasure processing status information indicates that the data erasure processing has been executed, all the erasure processing status information is updated to indicate that the data erasure processing has not been executed. The data movement method of the semiconductor memory device according to claim 11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004193887A JP2006018893A (en) | 2004-06-30 | 2004-06-30 | Semiconductor storage device and data movement method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004193887A JP2006018893A (en) | 2004-06-30 | 2004-06-30 | Semiconductor storage device and data movement method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018893A true JP2006018893A (en) | 2006-01-19 |
Family
ID=35793028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004193887A Pending JP2006018893A (en) | 2004-06-30 | 2004-06-30 | Semiconductor storage device and data movement method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006018893A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117489B2 (en) | 2008-06-06 | 2012-02-14 | Hitachi Global Storage Technologies, Netherlands B.V. | Disk drive and method for controlling the disk drive |
-
2004
- 2004-06-30 JP JP2004193887A patent/JP2006018893A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117489B2 (en) | 2008-06-06 | 2012-02-14 | Hitachi Global Storage Technologies, Netherlands B.V. | Disk drive and method for controlling the disk drive |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9400744B2 (en) | Magnetic random access memory journal for multi-level cell flash memory | |
JP5002201B2 (en) | Memory system | |
US20070214309A1 (en) | Nonvolatile storage device and data writing method thereof | |
CN109062827B (en) | Flash memory control device, flash memory control system, and flash memory control method | |
US10168913B2 (en) | Data storage device and data maintenance method thereof | |
JP5612514B2 (en) | Nonvolatile memory controller and nonvolatile storage device | |
US7773420B2 (en) | Memory card system including NAND flash memory and SRAM/NOR flash memory, and data storage method thereof | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20190095100A1 (en) | Block Clearing Method | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN103425589A (en) | Control apparatus, storage device, and storage control method | |
US20170162267A1 (en) | Data Storage Device and Data Maintenance Method | |
JP2006243780A (en) | Memory controller, flash memory system and control method of flash memory | |
US8819332B2 (en) | Nonvolatile storage device performing periodic error correction during successive page copy operations | |
US20170285953A1 (en) | Data Storage Device and Data Maintenance Method thereof | |
JP4177360B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JPWO2007105688A1 (en) | MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, AND NONVOLATILE STORAGE SYSTEM | |
US8046529B2 (en) | Updating control information in non-volatile memory to control selection of content | |
JP2006195736A (en) | Semiconductor storage device and control method for same | |
CN103389943A (en) | Control device, storage device, and storage control method | |
JP2006018893A (en) | Semiconductor storage device and data movement method thereof | |
JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD | |
CN114089908A (en) | Nonvolatile memory and operating method thereof | |
JP4177301B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4888333B2 (en) | Flash disk device |