JP2008097132A - Memory controller, nonvolatile storage device, and nonvolatile storage system - Google Patents
Memory controller, nonvolatile storage device, and nonvolatile storage system Download PDFInfo
- Publication number
- JP2008097132A JP2008097132A JP2006275448A JP2006275448A JP2008097132A JP 2008097132 A JP2008097132 A JP 2008097132A JP 2006275448 A JP2006275448 A JP 2006275448A JP 2006275448 A JP2006275448 A JP 2006275448A JP 2008097132 A JP2008097132 A JP 2008097132A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- physical
- rewrites
- physical block
- 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)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
Description
本発明は、不揮発性メモリを備えた半導体メモリカード等の不揮発性記憶装置、不揮発性メモリを制御するメモリコントローラ、及び不揮発性記憶装置にアクセス装置を構成要件として加えた不揮発性記憶システムに関する。 The present invention relates to a nonvolatile memory device such as a semiconductor memory card provided with a nonvolatile memory, a memory controller that controls the nonvolatile memory, and a nonvolatile memory system in which an access device is added as a configuration requirement to the nonvolatile memory device.
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して非常に高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。この半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパソコン(パーソナルコンピュータ)本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものである。またポータブルオーディオにおいては、半導体メモリカードに対応したものだけでなく、ポータブルオーディオ本体内にフラッシュメモリを実装したものもある。また、近年では前述したような民生用途だけでなく、例えば放送局向けのプロ用動画記録機器にも半導体メモリカードが使用されている。 The demand for nonvolatile memory devices including a rewritable nonvolatile memory is increasing, especially for semiconductor memory cards. Although semiconductor memory cards are very expensive compared to optical disks and tape media, they are portable devices such as digital still cameras and mobile phones due to their small size, light weight, earthquake resistance, and ease of handling. As a recording medium, the demand is growing. This semiconductor memory card includes a flash memory as a nonvolatile main memory, and has a memory controller for controlling the flash memory. The memory controller performs read / write control on the flash memory in response to a read / write instruction from an access device such as a digital still camera or a personal computer (personal computer) main body. Some portable audio devices are not only compatible with semiconductor memory cards, but also have a flash memory mounted in the portable audio body. In recent years, semiconductor memory cards are used not only for consumer use as described above, but also for professional video recording equipment for broadcasting stations, for example.
半導体メモリカードやポータブルオーディオなどの製品に内蔵されたフラッシュメモリは、記憶単位であるメモリセルアレイへの書き込みや消去に比較的長い時間を必要とするため、複数のメモリセルを一括して消去したり書き込んだりできる構造となっている。具体的には、複数の物理ブロック(消去単位)から構成され、各物理ブロックは複数のページ(書き込み単位)を含み、消去は物理ブロック単位で、書き込みはページ単位で行われる。 Flash memory built into products such as semiconductor memory cards and portable audio devices requires a relatively long time to write to and erase from the memory cell array, which is a storage unit. It has a structure that can be written. Specifically, it is composed of a plurality of physical blocks (erase units), each physical block includes a plurality of pages (write units), erase is performed in units of physical blocks, and writing is performed in units of pages.
近年フラッシュメモリは、大容量化と低コスト化への要望に対応して、多値NANDフラッシュメモリのように1つのメモリセルに2ビット又はそれ以上の情報が記憶できる品種が主流となってきている。このような多値NANDフラッシュメモリは、メモリセルの信頼性確保が難しいため、書き替え保証回数が低い。従来の2値NANDフラッシュメモリあっては、書き替え保証回数が例えば10万回であったのに対して、多値NANDフラッシュメモリにあっては、書き替え保証回数が例えば1万回と約10分の1まで低下している。更に、1万回の書き替え回数を保証できるフラッシュメモリを製造すること自体も難しくなっている。 In recent years, in response to the demand for larger capacity and lower cost, flash memories that can store 2 bits or more of information in one memory cell, such as multi-level NAND flash memory, have become mainstream. Yes. Such a multi-level NAND flash memory has a low guaranteed number of rewrites because it is difficult to ensure the reliability of the memory cells. In the conventional binary NAND flash memory, the guaranteed number of rewrites is, for example, 100,000, whereas in the multi-level NAND flash memory, the guaranteed number of rewrites is, for example, 10,000, approximately 10 times. It has dropped to 1 / min. In addition, it is difficult to manufacture a flash memory that can guarantee 10,000 times of rewriting.
フラッシュメモリの書き替え保証回数は、半導体メモリカードの寿命、及びポータブルオーディオなどの機器自体の寿命に直結している。従来、この寿命をできるだけのばすために、特定の物理ブロックに書き換えが集中しないウェアレベリングといったアドレス管理方法が適用されている。例えば、特許文献1によれば、ある論理アドレスのデータ書き換えにおいては、未使用ブロックに対して新たにデータを書き込み、書き換え前の旧データが記憶されていた物理ブロックを未使用ブロックとすることによって、ある論理アドレスに対応するデータが特定の物理ブロックに固定的にアロケートされない工夫がなされている。
The guaranteed number of rewrites of the flash memory is directly related to the lifetime of the semiconductor memory card and the lifetime of the device itself such as portable audio. Conventionally, in order to extend this lifetime as much as possible, an address management method such as wear leveling in which rewriting is not concentrated on a specific physical block has been applied. For example, according to
しかしながら、特許文献1においては、未使用ブロックの残数が少なくなってくると、ある特定の論理アドレスばかりを書き換えた場合、未使用ブロックと該論理アドレスに対応するデータがアロケートされた物理ブロック間でデータの移動が頻繁に繰り返されることとなる。すなわち特定の物理ブロックの書き換えが急激に増加することになる。
However, in
この問題に対応するために、例えば特許文献2では各物理ブロックの書き換え回数を保持しておき、書き換え回数に基づいてデータをスワップさせるようにしている。ここで、スワップ処理とは、2つの物理ブロック(物理ブロックA,B)がいずれも有効データを記憶している場合、物理ブロックA,Bに夫々記憶されていたデータA,Bを読み出し、物理ブロックA,Bを消去した後にデータAを物理ブロックBに、データBを物理ブロックAに書き込み直す処理のことを言う。
しかしながら、スワップ処理によって下記(1),(2)のような新たな問題が生じる。
(1)スワップ処理自体により書き換え回数が増加するため、半導体メモリカード等の寿命が短くなる。
(2)スワップ処理に時間を要するため、通常動作時すなわちアクセス装置からのデータの読み書きを行う動作モードにおける処理速度が遅くなる。
However, new problems such as the following (1) and (2) occur due to the swap processing.
(1) Since the number of rewrites is increased by the swap process itself, the life of the semiconductor memory card or the like is shortened.
(2) Since time is required for the swap processing, the processing speed in the normal operation, that is, the operation mode for reading and writing data from the access device is slow.
そこで、本発明は上記問題点に鑑み、従来よりも長寿命かつ処理速度の速い不揮発性記憶装置、メモリコントローラ、及び不揮発性記憶システムを提供することを目的とする。 In view of the above problems, an object of the present invention is to provide a non-volatile storage device, a memory controller, and a non-volatile storage system that have a longer lifetime and a higher processing speed than conventional ones.
この課題を解決するために、本発明のメモリコントローラは、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラであって、前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、前記不揮発性メモリの未使用ブロック数を検出する未使用ブロック検出部と、前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された2つの物理ブロック間でデータを入れ換えるデータ移動処理部と、を有するものである。 In order to solve this problem, a memory controller of the present invention is a memory controller that is connected to a nonvolatile memory and reads and writes data according to a logical address designated from the outside, and the logical address is stored in the nonvolatile memory. An address management unit that converts a physical address that is a storage location of data or the like in the memory, an unused block detection unit that detects the number of unused blocks in the nonvolatile memory, and a rewrite of each physical block that constitutes the nonvolatile memory When the unused block detected by the unused capacity detection unit in the initialization process at the time of power-on is less than or equal to a predetermined threshold value, it is selected based on the number of rewrites. A data movement processing unit for exchanging data between two physical blocks. A.
この課題を解決するために、本発明の不揮発性記憶装置は、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置であって、不揮発性メモリと、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラと、を有し、前記メモリコントローラは、前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、前記不揮発性メモリの未使用ブロックの容量を検出する未使用ブロック検出部と、前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された2つの物理ブロック間でデータを入れ換えるデータ移動処理部と、を有するものである。 In order to solve this problem, the nonvolatile memory device of the present invention is a nonvolatile memory device that reads and writes data according to a logical address designated from the outside, and is connected to the nonvolatile memory and the nonvolatile memory. A memory controller that reads and writes data according to a logical address designated from the outside, and the memory controller converts the logical address into a physical address that is a storage location of data in the nonvolatile memory. An address management unit that detects the capacity of an unused block in the nonvolatile memory, a rewrite count counter that counts the number of rewrites of each physical block that constitutes the nonvolatile memory, Unused blocks detected by the unused capacity detector in the initialization process Those having a data movement processing unit interchanging data between two physical blocks based on said number of times of rewriting is selected if it becomes less because determined threshold.
この課題を解決するために、本発明の不揮発性記憶システムは、アクセス装置と、前記アクセス装置から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置とを有する不揮発性記憶システムであって、前記不揮発性記憶装置は、不揮発性メモリと、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラとを有し、前記メモリコントローラは、前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、前記不揮発性メモリの未使用ブロック数を検出する未使用ブロック検出部と、前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された2つの物理ブロック間でデータを入れ換えるデータ移動処理部と、を有するものである。 In order to solve this problem, a nonvolatile storage system according to the present invention is a nonvolatile storage system having an access device and a nonvolatile storage device that reads and writes data according to a logical address specified by the access device. The nonvolatile storage device includes a nonvolatile memory, and a memory controller connected to the nonvolatile memory and reading and writing data according to a logical address designated from the outside. An address management unit that converts a logical address into a physical address that is a storage location of data or the like in the nonvolatile memory, an unused block detection unit that detects the number of unused blocks in the nonvolatile memory, and the nonvolatile memory A rewrite count counter for counting the number of rewrites of each physical block to be performed, Data is exchanged between two physical blocks selected based on the number of rewrites when an unused block detected by the unused capacity detection unit is equal to or lower than a predetermined threshold in the initialization process at the time of starting the source. And a data movement processing unit.
ここで前記データ移動処理部は、前記書き換え回数が最多の物理ブロックと前記書き換え回数が最少の物理ブロックとの間でデータ移動処理を実行するようにしてもよい。 Here, the data movement processing unit may execute data movement processing between the physical block having the largest number of rewrites and the physical block having the smallest number of rewrites.
ここで前記データ移動処理部は、前記物理ブロックに書き換え回数の平均値と、平均値より大きいランダムに選択した物理ブロックと、平均値より小さい任意に選択した物理ブロックとの間でデータ移動処理を実行するようにしてもよい。 Here, the data movement processing unit performs data movement processing between an average value of the number of rewrites to the physical block, a randomly selected physical block larger than the average value, and an arbitrarily selected physical block smaller than the average value. You may make it perform.
本発明によれば、アドレス管理部の論物変換処理によってウェアレベリングを実施し、さらに未使用ブロック検出部が検出した未使用容量が予め定められた閾値以下になった場合にデータ移動部が書き換え回数に基づいて特定した2つの物理ブロック間でデータ移動処理を実行するようにしたので、未使用ブロックが少なくなった時にある特定の論理アドレスばかりを書き換えた場合において生じてしまう特定物理ブロックへの書き換え集中を回避することができる。 According to the present invention, wear leveling is performed by the logical / physical conversion process of the address management unit, and the data moving unit is rewritten when the unused capacity detected by the unused block detection unit falls below a predetermined threshold value. Since data movement processing is executed between two physical blocks specified based on the number of times, when a specific logical address is rewritten when there are fewer unused blocks, Concentration of rewriting can be avoided.
さらなる効果として、データ移動処理部が電源立ち上げ時の初期化処理においてデータ移動処理を実行するようにしたので、通常動作時すなわちアクセス装置からのデータの読み書きを行う動作モードにおける処理速度の低下を回避することが可能となる。 As a further effect, since the data movement processing unit executes the data movement process in the initialization process when the power is turned on, the processing speed is lowered in the normal operation, that is, in the operation mode in which data is read / written from the access device. It can be avoided.
(実施の形態)
図1は、本発明の実施の形態に於ける不揮発性記憶システムを示したブロック図である。図1において、不揮発性記憶システムは、アクセス装置150と不揮発性記憶装置120とから構成され、不揮発性記憶装置120は、メモリコントローラ100と不揮発性メモリ110を含む。メモリコントローラ100はホストインターフェース101、バッファ102、読み書き制御部103、CPU部104、アドレス管理部105、未使用ブロック検出部106、書き換え回数計数部107、データ移動処理部108を含む。
(Embodiment)
FIG. 1 is a block diagram showing a non-volatile storage system in an embodiment of the present invention. In FIG. 1, the nonvolatile storage system includes an
不揮発性メモリ110はフラッシュメモリであり、ユーザ領域として例えば1Gバイトの容量を有する。不揮発性メモリ110は消去単位を物理ブロックとすると、図2に示すようにPB0〜PB4095までの複数の物理ブロックから成り立っている。ここでハッチングを施したブロックはデータを保持している物理ブロックとする。図3は、1つの物理ブロックの構成を示す説明図である。1つの物理ブロックは、そのデータの記録のサイズを256kバイトとし、ページ番号PN0〜PN127までの128ページから成る。また各ページは書き込み単位であって、2kバイトのデータ領域と、64バイトの管理領域とからなる。データ領域は4分割され、0〜3のセクタ番号が付されている。ここでページ番号PN0の管理領域には、ファイルの管理情報、即ちブロックステータス、論理ブロック番号、書き換え回数等が保持されている。
The
ホストインターフェース101は外部バスを介してアクセス装置150に接続されており、アクセス装置150からデータの書き込みや読み出しに係るコマンド、論理アドレスおよびデータを受信したり、データの読み出しにおいてはデータをアクセス装置150に送信するブロックである。
The
読み書き制御部103は、メモリバスを介して不揮発性メモリ110に接続され、アドレス管理部105の指示により、バッファ102に一時記憶されたデータを不揮発性メモリ110に書き込んだり、不揮発性メモリ110に記憶されたデータをバッファ102に読み出すものである。また、データ移動処理部108の指示により、不揮発性メモリ110内の2つの物理ブロック間でデータの移動を行うものである。CPU部104は、メモリコントローラ100の全体を制御するものである。
The read /
アドレス管理105は、アクセス装置150から受信した論理アドレスに基づいて不揮発性メモリ110の物理アドレスを生成するものであり、後述する物理領域管理テーブル105aと論物変換テーブル105bを含む。図4A,図4Bは、物理領域管理テーブル105aを示すメモリマップであり、物理ブロック番号PB0〜PB4095についてブロックステータスが保持されている。ここで値0は使用ブロック、値1は未消去の未使用ブロック、値2は不良ブロック、値3は消去済みの未使用ブロックを示す。尚本実施の形態では値2、即ち不良ブロックとなる場合はないものとする。図5A,図5Bは、アドレス管理部105に含まれる論理物理変換テーブル105bを示すメモリマップである。この変換テーブルは論理ブロック番号LBNに対応する物理ブロック番号PBNを示している。図6は、論理アドレスLAと物理アドレスPAとの対応関係を示す説明図である。
The
未使用ブロック検出部106は、データの書き込み処理を実施する都度、物理領域管理テーブル105aを参照して未使用ブロック数を検出するものである。
The unused
書き換え回数計数部107は、データの書き込み処理を実施する都度、物理ブロック毎の書き換え回数を計数し、書き換え回数テーブル107aに該書き換え回数を保持するものである。図7は、書き換え回数テーブル107aの一例を示すメモリマップである。この書き換え回数テーブル107aは物理ブロックPBN毎にその書き換え回数を保持している。このテーブルでは例えば物理ブロック番号PBN0が書き換え回数333回で最大、PB2が99回で最小となっている。
The rewrite
データ移動処理部108は、未使用ブロック検出部106が検出した未使用ブロック数をあらかじめ内部のROMに記憶している閾値(例えば5)と比較し、データ移動処理を行うか否かを判断する。実行する場合は書き換え回数テーブル107aに基づきデータ移動処理対象となる2つの物理ブロックを選択し、読み書き制御部103を介してデータ移動処理を行うものである。ここで、データ移動処理とは、2つの物理ブロック(物理ブロックA,B)がいずれも有効データを記憶しているブロックである場合、物理ブロックA,Bに記憶されていたデータ(データA,B)を読み出し、物理ブロックA,Bを消去した後にデータAを物理ブロックBに、データBを物理ブロックAに書き込み直す処理のことを言う。またもし、一方の物理ブロック(例えば物理ブロックB)に有効なデータが記憶されていなかった場合、すなわち物理ブロックBが未使用ブロックの場合は、単に物理ブロックAに記憶されていたデータ(データA)を読み出し、物理ブロックBを消去した後にデータAを物理ブロックBに書き込む処理をいう。
The data
アクセス装置150は、不揮発性記憶装置120へのデータの書き込みおよび読み出しを行う装置である。
The
以上のように構成された、本発明の不揮発性記憶システムについて、電源立ち上げ時の初期化処理、通常動作時のデータ書き込み処理に分けてフローチャートを用いて説明する。図8は、メモリコントローラ100の処理を示すフローチャートである。
The nonvolatile memory system of the present invention configured as described above will be described with reference to flowcharts divided into initialization processing at power-on and data writing processing at normal operation. FIG. 8 is a flowchart showing processing of the
[電源立ち上げ時の初期化処理]
アクセス装置150の電源の立ち上げにより、外部バスを通じて不揮発性記憶装置120の電源が立ち上がり、不揮発性記憶装置120は初期化処理に移行する。
[Initialization at power-on]
When the
初期化処理において、CPU部104はバッファ102のクリア処理等の基本初期化処理を実行し(S100)、その後、各物理ブロックの先頭ページの管理領域を調べ物理領域管理テーブル105aと論物変換テーブル105bを作成する(S101)。具体的には、CPU部104は読み書き制御部102を介して不揮発性メモリ110内の全物理ブロックの先頭ページの管理領域に記憶されたブロックステータスを読み出し、アドレス管理部105内のRAM上に物理領域管理テーブル105aを作成する。それに併せて、不揮発性メモリ110内の全物理ブロックの先頭ページの管理領域に記憶された論理ブロック番号LBNを読み出し、アドレス管理部105内のRAM上に論理物理変換テーブル105bを作成する。以降、データの読み出しや書き込みにおいては、物理領域管理テーブル105aと論理物理変換テーブル105bを用いて物理アドレスの決定を行う。
In the initialization processing, the
さらに、CPU部104は読み書き制御部102を介して不揮発性メモリ110内の全物理ブロックの先頭ページの管理領域に記憶された書き換え回数を読み出し、書き換え回数計数部107内のRAMに書き換え回数テーブル107aを作成する(S102)。CPU部104は未使用ブロック検出部106やデータ移動処理部108に制御を渡す。未使用ブロック検出部106は物理領域管理テーブル105aからブロックステータスが値1又は3の物理ブロック、即ち未使用ブロックのブロック数をカウントする(S103)。そしてS104において未使用ブロック数が5以下かどうかを判定する。ここで未使用ブロック数が5を超えている場合には、後述するデータ移動処理を行うことなく、制御をCPU104に戻す。CPU部104はアクセス装置150からホストインターフェース101を介した読み書き指示の転送がなされるまでウェイト状態となる(S105)。なお、初期化処理SIにはS100〜S104の処理に加えて、後述するS110〜S112のデータ移動処理が含まれる。
Further, the
[通常動作時のデータ書き込み処理]
さてウエイト状態で読み書き指示があった場合はデータの書き込み又はデータの読み出し処理を実行し(S106)、終了すると再びS105に戻る。S105,S106は通常動作時の処理SNであり、そのうち通常動作時のデータ書き込み処理について、図9のフローチャートを用いて詳細に説明する。なおデータ読み出し処理については、本発明とは関係がないので簡単のため省略する。
[Data write processing during normal operation]
If there is a read / write instruction in the wait state, data writing or data reading processing is executed (S106), and upon completion, the process returns to S105 again. S105 and S106 are processes SN during normal operation, and data write processing during normal operation will be described in detail with reference to the flowchart of FIG. Note that the data reading process is not related to the present invention and is omitted for simplicity.
不揮発性記憶装置120はアクセス装置150からのデータ書き込み指示に伴いデータと論理アドレスを受信する。アクセス装置150は論理アドレスとして値0を指定すると、論理ブロック番号LBNは値0となる。また256kバイト分のデータを連続的に転送する。このとき書き込み先である物理ブロック番号PBNをアドレス管理部105が決定し、読み書き制御部103に物理ブロック番号PBNを渡す。そしてバッファ102を介して読み書き制御部103は不揮発性メモリ110にそのデータを書き込む。
The
書き込み先の物理ブロック番号PBNの選択に際し、まずアドレス管理部105が物理領域管理テーブルの先頭(PB0)から昇順にブロックステータスが値1もしくは値3である物理ブロックを検索し、1つの未使用の物理ブロックPBN、例えばここではPB0を取得する(S200)。取得したPBNはアドレス管理部105が一時保持しておき、次の書き込みにおいては保持したPBNを起点として昇順に検索を行い、PB4095に達すると再びPB0の位置に戻る。このように巡回的に物理領域管理テーブルの未使用ブロックを検索することにより、特許文献1と同等のウェアレベリングを実現できる。
When selecting the physical block number PBN of the write destination, the
次に、アドレス管理部105が読み書き制御部103に書き込みの対象とする物理ブロック、ここではPB0を消去し、そのブロックへの書き込みを指示する(S201)。さらにアドレス管理部105は書き換え回数計数部107にPB0を指定する(S202)。こうすれば、書き換え回数計数部107は書き換え回数テーブル107aのPB0の書き換え回数をインクリメントし(S203)、インクリメント後の書き換え回数値を読み書き制御部103に転送する(S204)。
Next, the
次に、アドレス管理部105が物理領域管理テーブル105aと論物変換テーブル105bを更新する(S205)。具体的には、図5Aに示すように、論物変換テーブルのLBN=0に対応する位置に記憶された物理ブロック番号PB1に、論理ブロック番号LBN=0に対応するデータが記憶されていたことを確認する。その後、図5Bに示すように、論物変換テーブル105bのLBN=0に対応する位置に記憶された物理ブロック番号を、値1から値0に更新する。こうして論理ブロックLBN0に対応するデータがPB0に記憶されたものとして管理し直す。次に、図4Aに示すように物理領域管理テーブル105aのPB0,PB1に夫々記憶されたブロックステータスの値1,0を、図4Bに示すように夫々値0,1に更新する。こうしてPB0のブロックステータスを未使用ブロックから使用ブロックに変更すると共に、PB1のブロックステータスを使用ブロックから未使用ブロックに変更する。
Next, the
次に、読み書き制御部103が書き込み対象の物理ブロックPB0を消去した後、バッファ102から転送されたデータをPB0のデータ領域にページ番号0から昇順に書き込む。同時に物理ブロックPB0の管理領域に論理ブロック番号LBNと、物理領域管理テーブル上で更新されたPB0のブロックステータス、及び書き換え回数の値を書き込む(S206)。以上のステップにより不揮発性メモリ110へのデータの書き込みが終了し、不揮発性メモリ110内の各物理ブロックは図2に示すような使用状態になったとする。すなわちPB1、PB15、PB18、PB4094、PB4095の5つの物理ブロックが未使用ブロックであり、その他の物理ブロックは全て使用ブロックであるとする。
Next, after the read /
ここで、図2のように未使用ブロックが少なくなった状態で、特定の論理アドレスばかりが書き換えられたことを考える。例えばファイルアロケーションテーブル(以下、FATという)を用いたFATファイルシステムに基づく不揮発性記憶システムにおいては、FATが論理ブロック番号LB0の領域にアロケートされており、FATはデータの書き込みに伴い頻繁に書き換えられる。 Here, it is considered that only a specific logical address is rewritten in a state where unused blocks are reduced as shown in FIG. For example, in a nonvolatile storage system based on a FAT file system using a file allocation table (hereinafter referred to as FAT), the FAT is allocated to the area of the logical block number LB0, and the FAT is frequently rewritten as data is written. .
従って、図2のような状態でFATが頻繁に書き換えられた場合、論理ブロック番号LBN=0に対応する物理ブロックと数少ない未使用ブロック間のみで代替処理が頻繁に行われることとなり、これらの物理ブロックが他の物理ブロックよりも書き換え回数が多くなってしまう。書き換え回数の増加速度は未使用ブロック数が少なければ少ないほど速くなる。このような状況に対応するため、本実施の形態では電源立上げ時の初期化処理において、未使用ブロック数が少なくなってきた段階で、書き換え回数の多い物理ブロックと書き換え回数の少ない物理ブロック間でデータの移動を行う。例えばFATがアロケートされる論理ブロック番号LBN=0を書き込む物理ブロックを書き換え回数の少ない物理ブロックに移動させる。その結果、特定の物理ブロックの書き換え回数のみが増加してくることを回避することができる。 Therefore, when the FAT is frequently rewritten in the state as shown in FIG. 2, substitution processing is frequently performed only between the physical block corresponding to the logical block number LBN = 0 and a few unused blocks. A block is rewritten more times than other physical blocks. The increase speed of the number of rewrites becomes faster as the number of unused blocks is smaller. In order to cope with this situation, in this embodiment, in the initialization process at power-on, when the number of unused blocks has decreased, between a physical block with a large number of rewrites and a physical block with a small number of rewrites To move the data. For example, the physical block in which the logical block number LBN = 0 to which the FAT is allocated is moved to a physical block with a small number of rewrites. As a result, it is possible to avoid an increase in the number of rewrites of a specific physical block.
以降に、初期化処理の中で実行されるデータ移動処理について説明する。前述したステップS104において、未使用ブロック数がデータ移動処理部108内のROMに予め設定された閾値(本実施の形態では値5)以下になった場合に、データ移動処理を実行する。
Hereinafter, a data movement process executed in the initialization process will be described. In step S104 described above, when the number of unused blocks is equal to or less than a threshold value (
データ移動処理において、まずデータ移動処理部108が書き換え回数テーブル107aに基づき、書き換え回数が最多の物理ブロックPBmax(例えばPB0)と書き換え回数が最少の物理ブロックPBmin(例えばPB2)を特定する(S110)。次に、データ移動処理部108が読み書き制御部103を介してPBmaxとPBmin間のデータの移動を実行する(S111)。例えば物理ブロックPB0とPB2に記憶されていたデータ(それぞれデータ0、データ1とする)を読み出してバッファ102に一旦保持し、PB0とPB2を消去した後にデータ0をPB2に、データ2をPB0に書き込み直す。データ移動処理部108がデータ移動の対象となった物理ブロックをアドレス管理部105と書き換え回数計数部107に通知する。アドレス管理部105は論物変換テーブル105bを更新し書き込み処理を終わる(S112)。具体的には、PB0に記憶されたデータの論理ブロック番号LBNが値0、PB2に記憶されたデータの論理ブロック番号LBNが値100であるとすると、論物変換テーブル105bにおいてLBN=0の位置に値0(PB0に対応する値)を、LBN=100の位置に値2(PB2に対応する値)を書き込む。又書き換え回数計数部107はデータ移動の対象となった2つの物理ブロックの書き換え回数を夫々インクリメントする。
In the data movement process, first, the data
以上のように、書き換え回数計数部107が各物理ブロックの書き換え回数を管理することにより、初期化時に書き換え回数が最多あるいは最少となる物理ブロックがどの物理ブロックであるかを判別し、データ移動処理部108が未使用容量検出部の検出した未使用ブロック数が少なくなった場合(閾値以下になった場合)に最多書き換え回数ブロックと最少書き換え回数ブロック間でデータの移動を行う。これにより、例えばFATのような書き換え頻度の高いデータを特定の物理ブロックばかりにアロケートさせないようにできるので、結果として不揮発性記憶装置120の長寿命化を図ることができる。
As described above, the rewrite
また初期化時にデータ移動処理を実行するようにしたので、通常動作時すなわちアクセス装置からのデータの読み書きを行う動作モードにおける処理速度の低下を回避することが可能となる。 Further, since the data movement process is executed at the time of initialization, it is possible to avoid a decrease in processing speed during the normal operation, that is, in an operation mode in which data is read / written from the access device.
尚、データ移動対象の物理ブロックとして、書き換え回数が最多である物理ブロックPBmaxと書き換え回数が最少である物理ブロックPBminとしたが、書き換え回数計数部107が書き換え回数テーブル107aに基づき、全物理ブロックに対する書き換え回数の平均値を算出し、該平均値より大きい書き換え回数の物理ブロックからランダムに選択した物理ブロックと、該平均値より小さい書き換え回数の物理ブロックからランダムに選択した物理ブロックとをデータ移動対象の物理ブロックとしても構わない。
Although the physical block PBmax having the largest number of rewrites and the physical block PBmin having the smallest number of rewrites are used as the physical blocks subject to data movement, the rewrite
又、データ移動は1組の物理ブロックに限らず、複数組の物理ブロックについてデータ移動処理を実行してもよい。更に書き換え回数順の上位数%と下位数%の等しい数の物理ブロック間でデータ移動を実行するようにしてもよい。 The data movement is not limited to one set of physical blocks, and data movement processing may be executed for a plurality of sets of physical blocks. Furthermore, data movement may be executed between physical blocks having the same number of upper order% and lower order% in the order of the number of rewrites.
本発明にかかる不揮発性記憶システムは、長寿命かつ書き込み速度を両立する方法を提案したものであり、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話において有益である。 The non-volatile storage system according to the present invention proposes a method for achieving both a long life and a writing speed, and a still image recording / reproducing apparatus, a moving image recording / reproducing apparatus using a non-volatile storage device such as a semiconductor memory card, or the like. Useful in mobile phones.
100 メモリコントローラ
101 ホストインターフェース
102 バッファ
103 読み書き制御部
104 CPU部
105 アドレス管理部
105a 物理領域管理テーブル
105b 論物変換テーブル
106 未使用ブロック検出部
107 書き換え回数計数部
107a 書き換え回数テーブル
108 データ移動処理部
110 不揮発性メモリ
DESCRIPTION OF
Claims (9)
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、
前記不揮発性メモリの未使用ブロック数を検出する未使用ブロック検出部と、
前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、
電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された2つの物理ブロック間でデータを入れ換えるデータ移動処理部と、を有するメモリコントローラ。 A memory controller that is connected to a non-volatile memory and reads and writes data according to a logical address designated from the outside,
An address management unit that converts the logical address into a physical address that is a storage position of data or the like in the nonvolatile memory;
An unused block detector for detecting the number of unused blocks in the nonvolatile memory;
A rewrite count counter for counting the number of rewrites of each physical block constituting the nonvolatile memory;
Data is exchanged between two physical blocks selected based on the number of rewrites when an unused block detected by the unused capacity detection unit is equal to or lower than a predetermined threshold in initialization processing at power-on. And a data movement processing unit.
不揮発性メモリと、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラと、を有し、
前記メモリコントローラは、
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、
前記不揮発性メモリの未使用ブロックの容量を検出する未使用ブロック検出部と、
前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、
電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された2つの物理ブロック間でデータを入れ換えるデータ移動処理部と、を有する不揮発性記憶装置。 A nonvolatile storage device that reads and writes data according to a logical address designated from the outside,
A non-volatile memory, and a memory controller connected to the non-volatile memory and reading and writing data according to a logical address designated from the outside,
The memory controller is
An address management unit that converts the logical address into a physical address that is a storage position of data or the like in the nonvolatile memory;
An unused block detection unit for detecting a capacity of an unused block of the nonvolatile memory;
A rewrite count counter for counting the number of rewrites of each physical block constituting the nonvolatile memory;
Data is exchanged between two physical blocks selected based on the number of rewrites when an unused block detected by the unused capacity detection unit is equal to or lower than a predetermined threshold in initialization processing at power-on. And a data movement processing unit.
前記不揮発性記憶装置は、
不揮発性メモリと、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラとを有し、
前記メモリコントローラは、
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、
前記不揮発性メモリの未使用ブロック数を検出する未使用ブロック検出部と、
前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、
電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された2つの物理ブロック間でデータを入れ換えるデータ移動処理部と、を有する不揮発性記憶システム。 A nonvolatile storage system having an access device and a nonvolatile storage device that reads and writes data according to a logical address designated by the access device,
The nonvolatile memory device is
A non-volatile memory and a memory controller connected to the non-volatile memory and reading and writing data according to a logical address designated from the outside;
The memory controller is
An address management unit that converts the logical address into a physical address that is a storage position of data or the like in the nonvolatile memory;
An unused block detector for detecting the number of unused blocks in the nonvolatile memory;
A rewrite count counter for counting the number of rewrites of each physical block constituting the nonvolatile memory;
Data is exchanged between two physical blocks selected based on the number of rewrites when an unused block detected by the unused capacity detection unit is equal to or lower than a predetermined threshold in initialization processing at power-on. And a data movement processing unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006275448A JP2008097132A (en) | 2006-10-06 | 2006-10-06 | Memory controller, nonvolatile storage device, and nonvolatile storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006275448A JP2008097132A (en) | 2006-10-06 | 2006-10-06 | Memory controller, nonvolatile storage device, and nonvolatile storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008097132A true JP2008097132A (en) | 2008-04-24 |
Family
ID=39379946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006275448A Pending JP2008097132A (en) | 2006-10-06 | 2006-10-06 | Memory controller, nonvolatile storage device, and nonvolatile storage system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008097132A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008171246A (en) * | 2007-01-12 | 2008-07-24 | Nec Infrontia Corp | Flash memory drive device, its control method, and its program |
JP2010027026A (en) * | 2008-07-18 | 2010-02-04 | A-Data Technology Co Ltd | Memory storage device and control method thereof |
JP2016115105A (en) * | 2014-12-15 | 2016-06-23 | コニカミノルタ株式会社 | Nonvolatile memory controller, and method and program for controlling nonvolatile memory |
US9513824B2 (en) | 2012-09-05 | 2016-12-06 | Fujitsu Limited | Control method, control device, and recording medium |
JP2019164508A (en) * | 2018-03-19 | 2019-09-26 | 株式会社東芝 | Management device, information processing device, and memory control method |
-
2006
- 2006-10-06 JP JP2006275448A patent/JP2008097132A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008171246A (en) * | 2007-01-12 | 2008-07-24 | Nec Infrontia Corp | Flash memory drive device, its control method, and its program |
JP4572205B2 (en) * | 2007-01-12 | 2010-11-04 | Necインフロンティア株式会社 | Flash memory drive device, control method thereof, and program thereof |
JP2010027026A (en) * | 2008-07-18 | 2010-02-04 | A-Data Technology Co Ltd | Memory storage device and control method thereof |
US9513824B2 (en) | 2012-09-05 | 2016-12-06 | Fujitsu Limited | Control method, control device, and recording medium |
JP2016115105A (en) * | 2014-12-15 | 2016-06-23 | コニカミノルタ株式会社 | Nonvolatile memory controller, and method and program for controlling nonvolatile memory |
US9898211B2 (en) | 2014-12-15 | 2018-02-20 | Konica Minolta, Inc. | Nonvolatile memory control device, nonvolatile memory control method and computer readable storage medium |
JP2019164508A (en) * | 2018-03-19 | 2019-09-26 | 株式会社東芝 | Management device, information processing device, and memory control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296455B2 (en) | Memory system and control method of nonvolatile memory | |
US8103820B2 (en) | Wear leveling method and controller using the same | |
US8108589B2 (en) | Wear leveling method and controller using the same | |
KR101454817B1 (en) | Semiconductor memory devices and wear leveling methods thereof | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
JP4844639B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP5612514B2 (en) | Nonvolatile memory controller and nonvolatile storage device | |
US20100017557A1 (en) | Memory controller, nonvolatile memory device,access device, and nonvolatile memory system | |
US7649794B2 (en) | Wear leveling method and controller using the same | |
JP5480913B2 (en) | Storage device and memory controller | |
JP5368993B2 (en) | Memory controller, nonvolatile memory module, and nonvolatile memory system | |
JPWO2007000862A1 (en) | MEMORY CONTROLLER, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY SYSTEM, AND DATA WRITE METHOD | |
CN111400201B (en) | Data sorting method of flash memory, storage device and control circuit unit | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
JP4666081B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP5180957B2 (en) | Memory controller, semiconductor recording device, and rewrite count notification method | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
JP2008097132A (en) | Memory controller, nonvolatile storage device, and nonvolatile storage system | |
CN106775479B (en) | Memory management method, memory storage device and memory control circuit unit | |
US10871914B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
JP2008305061A (en) | Memory controller, nonvolatile storage device, and nonvolatile storage system | |
JP5494086B2 (en) | Nonvolatile storage device and nonvolatile memory controller | |
US20050278480A1 (en) | Method of writing data into flash memory | |
JP4558054B2 (en) | Memory system | |
JP4434171B2 (en) | Memory controller and flash memory system |