Nothing Special   »   [go: up one dir, main page]

JP2008097132A - Memory controller, nonvolatile storage device, and nonvolatile storage system - Google Patents

Memory controller, nonvolatile storage device, and nonvolatile storage system Download PDF

Info

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
Application number
JP2006275448A
Other languages
Japanese (ja)
Inventor
Masahiro Nakanishi
雅浩 中西
Juichi Shiyouraiden
重一 小来田
Toshiyuki Honda
利行 本多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006275448A priority Critical patent/JP2008097132A/en
Publication of JP2008097132A publication Critical patent/JP2008097132A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a nonvolatile storage device and a nonvolatile storage system whose life is longer and whose processing speed is faster than a conventional manner. <P>SOLUTION: A rewrite frequency counting part 107 manages the rewrite frequency of each physical block. The physical block whose rewrite frequency is the highest or shortest is discriminated. When the number of unused blocks detected by an unused block detection part 106 reaches a threshold value or less in initialization processing, a data movement processing part 108 moves data between the highest rewrite frequency block and the shortest rewrite frequency block. Thus, it is possible to prevent the data whose rewrite frequency is high from being allocated only to the specific physical block. Therefore, it is possible to lengthen the life of a nonvolatile storage device 120 as a result. <P>COPYRIGHT: (C)2008,JPO&INPIT

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 Patent Document 1, in data rewriting of a certain logical address, new data is written to an unused block, and a physical block in which old data before rewriting is stored is used as an unused block. There is a contrivance that data corresponding to a certain logical address is not fixedly allocated to a specific physical block.

しかしながら、特許文献1においては、未使用ブロックの残数が少なくなってくると、ある特定の論理アドレスばかりを書き換えた場合、未使用ブロックと該論理アドレスに対応するデータがアロケートされた物理ブロック間でデータの移動が頻繁に繰り返されることとなる。すなわち特定の物理ブロックの書き換えが急激に増加することになる。   However, in Patent Document 1, when the number of remaining unused blocks decreases, when only a specific logical address is rewritten, the unused block and the physical block to which data corresponding to the logical address is allocated are allocated. Thus, data movement is frequently repeated. That is, rewriting of a specific physical block increases rapidly.

この問題に対応するために、例えば特許文献2では各物理ブロックの書き換え回数を保持しておき、書き換え回数に基づいてデータをスワップさせるようにしている。ここで、スワップ処理とは、2つの物理ブロック(物理ブロックA,B)がいずれも有効データを記憶している場合、物理ブロックA,Bに夫々記憶されていたデータA,Bを読み出し、物理ブロックA,Bを消去した後にデータAを物理ブロックBに、データBを物理ブロックAに書き込み直す処理のことを言う。
特開2003−263894号公報 特開平5−282880号公報
In order to deal with this problem, for example, in Patent Document 2, the number of rewrites of each physical block is held, and data is swapped based on the number of rewrites. Here, in the swap process, when both of the two physical blocks (physical blocks A and B) store valid data, the data A and B stored in the physical blocks A and B are read, and the physical processing is performed. This is a process of rewriting data A to physical block B and data B to physical block A after erasing blocks A and B.
JP 2003-263894 A Japanese Patent Laid-Open No. 5-282880

しかしながら、スワップ処理によって下記(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 access device 150 and a nonvolatile storage device 120, and the nonvolatile storage device 120 includes a memory controller 100 and a nonvolatile memory 110. The memory controller 100 includes a host interface 101, a buffer 102, a read / write control unit 103, a CPU unit 104, an address management unit 105, an unused block detection unit 106, a rewrite count counting unit 107, and a data movement processing unit 108.

不揮発性メモリ110はフラッシュメモリであり、ユーザ領域として例えば1Gバイトの容量を有する。不揮発性メモリ110は消去単位を物理ブロックとすると、図2に示すようにPB0〜PB4095までの複数の物理ブロックから成り立っている。ここでハッチングを施したブロックはデータを保持している物理ブロックとする。図3は、1つの物理ブロックの構成を示す説明図である。1つの物理ブロックは、そのデータの記録のサイズを256kバイトとし、ページ番号PN0〜PN127までの128ページから成る。また各ページは書き込み単位であって、2kバイトのデータ領域と、64バイトの管理領域とからなる。データ領域は4分割され、0〜3のセクタ番号が付されている。ここでページ番号PN0の管理領域には、ファイルの管理情報、即ちブロックステータス、論理ブロック番号、書き換え回数等が保持されている。   The nonvolatile memory 110 is a flash memory, and has a capacity of, for example, 1 GB as a user area. When the erasure unit is a physical block, the nonvolatile memory 110 is composed of a plurality of physical blocks PB0 to PB4095 as shown in FIG. Here, the hatched block is a physical block holding data. FIG. 3 is an explanatory diagram showing the configuration of one physical block. One physical block has a data recording size of 256 kbytes and is composed of 128 pages with page numbers PN0 to PN127. Each page is a unit of writing and comprises a 2 kbyte data area and a 64 byte management area. The data area is divided into four and is assigned sector numbers 0-3. Here, the management area of the page number PN0 holds file management information, that is, block status, logical block number, number of rewrites, and the like.

ホストインターフェース101は外部バスを介してアクセス装置150に接続されており、アクセス装置150からデータの書き込みや読み出しに係るコマンド、論理アドレスおよびデータを受信したり、データの読み出しにおいてはデータをアクセス装置150に送信するブロックである。   The host interface 101 is connected to the access device 150 via an external bus. The host interface 101 receives commands, logical addresses, and data related to data writing and reading from the access device 150, and receives data from the access device 150 in data reading. Is the block to send to.

読み書き制御部103は、メモリバスを介して不揮発性メモリ110に接続され、アドレス管理部105の指示により、バッファ102に一時記憶されたデータを不揮発性メモリ110に書き込んだり、不揮発性メモリ110に記憶されたデータをバッファ102に読み出すものである。また、データ移動処理部108の指示により、不揮発性メモリ110内の2つの物理ブロック間でデータの移動を行うものである。CPU部104は、メモリコントローラ100の全体を制御するものである。   The read / write control unit 103 is connected to the non-volatile memory 110 via a memory bus, and writes data temporarily stored in the buffer 102 to the non-volatile memory 110 or stores it in the non-volatile memory 110 according to an instruction from the address management unit 105. The read data is read out to the buffer 102. Further, data is moved between two physical blocks in the nonvolatile memory 110 according to an instruction from the data movement processing unit 108. The CPU unit 104 controls the entire memory controller 100.

アドレス管理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 address management 105 generates a physical address of the nonvolatile memory 110 based on the logical address received from the access device 150, and includes a physical area management table 105a and a logical-physical conversion table 105b described later. 4A and 4B are memory maps showing the physical area management table 105a, and block statuses are held for the physical block numbers PB0 to PB4095. Here, the value 0 indicates a used block, the value 1 indicates an unerased unused block, the value 2 indicates a defective block, and the value 3 indicates an erased unused block. In this embodiment, it is assumed that the value is 2, that is, there is no case of a bad block. 5A and 5B are memory maps showing the logical-physical conversion table 105b included in the address management unit 105. FIG. This conversion table shows the physical block number PBN corresponding to the logical block number LBN. FIG. 6 is an explanatory diagram showing the correspondence between the logical address LA and the physical address PA.

未使用ブロック検出部106は、データの書き込み処理を実施する都度、物理領域管理テーブル105aを参照して未使用ブロック数を検出するものである。   The unused block detection unit 106 detects the number of unused blocks by referring to the physical area management table 105a every time data write processing is performed.

書き換え回数計数部107は、データの書き込み処理を実施する都度、物理ブロック毎の書き換え回数を計数し、書き換え回数テーブル107aに該書き換え回数を保持するものである。図7は、書き換え回数テーブル107aの一例を示すメモリマップである。この書き換え回数テーブル107aは物理ブロックPBN毎にその書き換え回数を保持している。このテーブルでは例えば物理ブロック番号PBN0が書き換え回数333回で最大、PB2が99回で最小となっている。   The rewrite count counting unit 107 counts the number of rewrites for each physical block every time data writing processing is performed, and holds the number of rewrites in the rewrite number table 107a. FIG. 7 is a memory map showing an example of the rewrite count table 107a. This rewrite count table 107a holds the rewrite count for each physical block PBN. In this table, for example, the physical block number PBN0 is the maximum when the number of rewrites is 333 times, and the PB2 is the minimum when it is 99 times.

データ移動処理部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 movement processing unit 108 compares the number of unused blocks detected by the unused block detection unit 106 with a threshold value (for example, 5) stored in advance in the internal ROM, and determines whether or not to perform data movement processing. . In the case of execution, two physical blocks to be subjected to data movement processing are selected based on the rewrite count table 107 a and data movement processing is performed via the read / write control unit 103. Here, the data movement processing means that when two physical blocks (physical blocks A and B) are blocks storing valid data, the data (data A and B) stored in the physical blocks A and B are stored. B) refers to a process of rewriting data A to physical block B and data B to physical block A after erasing physical blocks A and B. If valid data is not stored in one physical block (for example, physical block B), that is, if the physical block B is an unused block, the data stored in the physical block A (data A) ) And erasing the physical block B, and then writing the data A into the physical block B.

アクセス装置150は、不揮発性記憶装置120へのデータの書き込みおよび読み出しを行う装置である。   The access device 150 is a device that writes data to and reads data from the nonvolatile storage device 120.

以上のように構成された、本発明の不揮発性記憶システムについて、電源立ち上げ時の初期化処理、通常動作時のデータ書き込み処理に分けてフローチャートを用いて説明する。図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 memory controller 100.

[電源立ち上げ時の初期化処理]
アクセス装置150の電源の立ち上げにより、外部バスを通じて不揮発性記憶装置120の電源が立ち上がり、不揮発性記憶装置120は初期化処理に移行する。
[Initialization at power-on]
When the access device 150 is turned on, the nonvolatile storage device 120 is turned on via the external bus, and the nonvolatile storage device 120 shifts to an initialization process.

初期化処理において、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 unit 104 executes basic initialization processing such as clearing processing of the buffer 102 (S100), and then checks the management area of the first page of each physical block, and the physical area management table 105a and the logical-physical conversion table. 105b is created (S101). Specifically, the CPU unit 104 reads the block status stored in the management area of the first page of all physical blocks in the non-volatile memory 110 via the read / write control unit 102 and physically stores it on the RAM in the address management unit 105. The area management table 105a is created. At the same time, the logical block number LBN stored in the management area of the first page of all physical blocks in the nonvolatile memory 110 is read, and the logical / physical conversion table 105 b is created on the RAM in the address management unit 105. Thereafter, in reading and writing data, the physical address is determined using the physical area management table 105a and the logical-physical conversion table 105b.

さらに、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 CPU unit 104 reads out the number of rewrites stored in the management area of the first page of all physical blocks in the non-volatile memory 110 via the read / write control unit 102, and rewrites the number of rewrites table 107a in the RAM in the rewrite number counting unit 107. Is created (S102). The CPU unit 104 passes control to the unused block detection unit 106 and the data movement processing unit 108. The unused block detection unit 106 counts the number of physical blocks whose block status is 1 or 3 from the physical area management table 105a, that is, the number of unused blocks (S103). In S104, it is determined whether the number of unused blocks is 5 or less. If the number of unused blocks exceeds 5, the control is returned to the CPU 104 without performing a data movement process described later. The CPU unit 104 is in a wait state until a read / write instruction is transferred from the access device 150 via the host interface 101 (S105). The initialization process SI includes a data movement process of S110 to S112 described later in addition to the processes of S100 to S104.

[通常動作時のデータ書き込み処理]
さてウエイト状態で読み書き指示があった場合はデータの書き込み又はデータの読み出し処理を実行し(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 nonvolatile storage device 120 receives data and a logical address in response to a data write instruction from the access device 150. When the access device 150 designates the value 0 as the logical address, the logical block number LBN becomes the value 0. In addition, data for 256 kbytes is continuously transferred. At this time, the address management unit 105 determines the physical block number PBN that is the write destination, and passes the physical block number PBN to the read / write control unit 103. Then, the read / write control unit 103 writes the data to the nonvolatile memory 110 via the buffer 102.

書き込み先の物理ブロック番号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 address management unit 105 first searches for a physical block having a block status value 1 or value 3 in ascending order from the top (PB0) of the physical area management table, and one unused block. A physical block PBN, for example, PB0 is acquired here (S200). The acquired PBN is temporarily held by the address management unit 105, and in the next writing, a search is performed in ascending order using the held PBN as a starting point. When the PBN 4095 is reached, the position returns to the PB0 position again. Thus, by searching for unused blocks in the physical area management table cyclically, wear leveling equivalent to that of Patent Document 1 can be realized.

次に、アドレス管理部105が読み書き制御部103に書き込みの対象とする物理ブロック、ここではPB0を消去し、そのブロックへの書き込みを指示する(S201)。さらにアドレス管理部105は書き換え回数計数部107にPB0を指定する(S202)。こうすれば、書き換え回数計数部107は書き換え回数テーブル107aのPB0の書き換え回数をインクリメントし(S203)、インクリメント後の書き換え回数値を読み書き制御部103に転送する(S204)。   Next, the address management unit 105 erases the physical block to be written, here PB0, to the read / write control unit 103 and instructs writing to the block (S201). Further, the address management unit 105 designates PB0 to the rewrite count counter 107 (S202). Then, the rewrite count counter 107 increments the rewrite count of PB0 in the rewrite count table 107a (S203), and transfers the incremented rewrite count value to the read / write controller 103 (S204).

次に、アドレス管理部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 address management unit 105 updates the physical area management table 105a and the logical / physical conversion table 105b (S205). Specifically, as shown in FIG. 5A, data corresponding to the logical block number LBN = 0 was stored in the physical block number PB1 stored at the position corresponding to LBN = 0 in the logical-physical conversion table. Confirm. Thereafter, as shown in FIG. 5B, the physical block number stored at the position corresponding to LBN = 0 in the logical-physical conversion table 105b is updated from the value 1 to the value 0. In this way, management is performed again assuming that data corresponding to the logical block LBN0 is stored in PB0. Next, the block status values 1 and 0 stored in PB0 and PB1 of the physical area management table 105a as shown in FIG. 4A are updated to values 0 and 1 respectively as shown in FIG. 4B. In this way, the block status of PB0 is changed from the unused block to the used block, and the block status of PB1 is changed from the used block to the unused block.

次に、読み書き制御部103が書き込み対象の物理ブロックPB0を消去した後、バッファ102から転送されたデータをPB0のデータ領域にページ番号0から昇順に書き込む。同時に物理ブロックPB0の管理領域に論理ブロック番号LBNと、物理領域管理テーブル上で更新されたPB0のブロックステータス、及び書き換え回数の値を書き込む(S206)。以上のステップにより不揮発性メモリ110へのデータの書き込みが終了し、不揮発性メモリ110内の各物理ブロックは図2に示すような使用状態になったとする。すなわちPB1、PB15、PB18、PB4094、PB4095の5つの物理ブロックが未使用ブロックであり、その他の物理ブロックは全て使用ブロックであるとする。   Next, after the read / write control unit 103 erases the physical block PB0 to be written, the data transferred from the buffer 102 is written into the data area of PB0 in ascending order from page number 0. At the same time, the logical block number LBN, the block status of PB0 updated on the physical area management table, and the value of the number of rewrites are written into the management area of the physical block PB0 (S206). It is assumed that the writing of data to the nonvolatile memory 110 is completed through the above steps, and each physical block in the nonvolatile memory 110 is in a use state as shown in FIG. That is, it is assumed that five physical blocks PB1, PB15, PB18, PB4094, and PB4095 are unused blocks, and the other physical blocks are all used blocks.

ここで、図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 (value 5 in the present embodiment) preset in the ROM in the data movement processing unit 108, data movement processing is executed.

データ移動処理において、まずデータ移動処理部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 movement processing unit 108 specifies the physical block PBmax (for example, PB0) having the largest number of rewrites and the physical block PBmin (for example, PB2) having the smallest number of rewrites based on the rewrite number table 107a (S110). . Next, the data movement processing unit 108 performs data movement between PBmax and PBmin via the read / write control unit 103 (S111). For example, the data stored in the physical blocks PB0 and PB2 (respectively data 0 and data 1) are read and held in the buffer 102. After erasing PB0 and PB2, data 0 is changed to PB2 and data 2 is changed to PB0. Rewrite. The data movement processing unit 108 notifies the address management unit 105 and the rewrite count counting unit 107 of the physical block that is the target of data movement. The address management unit 105 updates the logical-physical conversion table 105b and finishes the writing process (S112). Specifically, assuming that the logical block number LBN of the data stored in PB0 is 0 and the logical block number LBN of the data stored in PB2 is 100, the position of LBN = 0 in the logical-physical conversion table 105b. A value 0 (a value corresponding to PB0) is written in the field, and a value 2 (a value corresponding to PB2) is written at the position of LBN = 100. The rewrite count counter 107 increments the number of rewrites of the two physical blocks that are the targets of data movement.

以上のように、書き換え回数計数部107が各物理ブロックの書き換え回数を管理することにより、初期化時に書き換え回数が最多あるいは最少となる物理ブロックがどの物理ブロックであるかを判別し、データ移動処理部108が未使用容量検出部の検出した未使用ブロック数が少なくなった場合(閾値以下になった場合)に最多書き換え回数ブロックと最少書き換え回数ブロック間でデータの移動を行う。これにより、例えばFATのような書き換え頻度の高いデータを特定の物理ブロックばかりにアロケートさせないようにできるので、結果として不揮発性記憶装置120の長寿命化を図ることができる。   As described above, the rewrite count counting unit 107 manages the number of rewrites of each physical block, thereby determining which physical block is the physical block having the largest or smallest number of rewrites at the time of initialization, and performs data movement processing. When the number of unused blocks detected by the unused capacity detection unit decreases (when the value becomes equal to or less than the threshold value), the unit 108 moves data between the most frequently rewritten block and the least rewritten block. As a result, for example, data with high rewrite frequency such as FAT can be prevented from being allocated only to a specific physical block. As a result, the lifetime of the nonvolatile memory device 120 can be extended.

また初期化時にデータ移動処理を実行するようにしたので、通常動作時すなわちアクセス装置からのデータの読み書きを行う動作モードにおける処理速度の低下を回避することが可能となる。   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 number counting unit 107 performs the processing for all physical blocks based on the rewrite number table 107a. The average value of the number of rewrites is calculated, and the physical block randomly selected from the physical blocks having the number of rewrites larger than the average value and the physical block randomly selected from the physical blocks having the number of rewrites smaller than the average value are data movement targets It may be a physical block.

又、データ移動は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.

本発明の実施の形態に於ける不揮発性記憶システムを示すブロック図The block diagram which shows the non-volatile memory system in the form of execution of this invention 物理ブロックの構成を示す説明図Explanatory drawing showing the configuration of the physical block 不揮発性メモリ110内の物理ブロックの使用状態を示す説明図Explanatory drawing which shows the use state of the physical block in the non-volatile memory 110 アドレス管理部105に含まれる物理領域管理テーブルを示すメモリマップMemory map showing physical area management table included in address management unit 105 アドレス管理部105に含まれる物理領域管理テーブルを示すメモリマップMemory map showing physical area management table included in address management unit 105 アドレス管理部105に含まれる論理物理変換テーブルを示すメモリマップMemory map showing logical physical conversion table included in address management unit 105 アドレス管理部105に含まれる論理物理変換テーブルを示すメモリマップMemory map showing logical physical conversion table included in address management unit 105 論理アドレスと物理アドレスの対応関係を示す説明図Explanatory diagram showing the correspondence between logical addresses and physical addresses 書き換え回数計数部107に含まれる書き換え回数テーブルを示すメモリマップA memory map showing a rewrite count table included in the rewrite count counting section 107 メモリコントローラ100の処理を示すフローチャートA flowchart showing processing of the memory controller 100 通常動作時の書き込み処理を示すフローチャートFlow chart showing write processing during normal operation

符号の説明Explanation of symbols

100 メモリコントローラ
101 ホストインターフェース
102 バッファ
103 読み書き制御部
104 CPU部
105 アドレス管理部
105a 物理領域管理テーブル
105b 論物変換テーブル
106 未使用ブロック検出部
107 書き換え回数計数部
107a 書き換え回数テーブル
108 データ移動処理部
110 不揮発性メモリ
DESCRIPTION OF SYMBOLS 100 Memory controller 101 Host interface 102 Buffer 103 Reading / writing control part 104 CPU part 105 Address management part 105a Physical area management table 105b Logical-physical conversion table 106 Unused block detection part 107 Rewrite number count part 107a Rewrite number table 108 Data movement process part 110 Non-volatile memory

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.
前記データ移動処理部は、前記書き換え回数が最多の物理ブロックと前記書き換え回数が最少の物理ブロックとの間でデータ移動処理を実行する請求項1記載のメモリコントローラ。   The memory controller according to claim 1, wherein the data movement processing unit executes a data movement process between the physical block having the largest number of rewrites and the physical block having the smallest number of rewrites. 前記データ移動処理部は、前記物理ブロックに書き換え回数の平均値と、平均値より大きいランダムに選択した物理ブロックと、平均値より小さい任意に選択した物理ブロックとの間でデータ移動処理を実行する請求項1記載のメモリコントローラ。   The data movement processing unit executes 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. The memory controller according to claim 1. 外部から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置であって、
不揮発性メモリと、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラと、を有し、
前記メモリコントローラは、
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、
前記不揮発性メモリの未使用ブロックの容量を検出する未使用ブロック検出部と、
前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、
電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された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.
前記データ移動処理部は、前記書き換え回数が最多の物理ブロックと前記書き換え回数が最少の物理ブロックとの間でデータ移動処理を実行する請求項4記載の不揮発性記憶装置。   The non-volatile storage device according to claim 4, wherein the data movement processing unit performs a data movement process between the physical block having the largest number of rewrites and the physical block having the smallest number of rewrites. 前記データ移動処理部は、前記物理ブロックに書き換え回数の平均値と、平均値より大きいランダムに選択した物理ブロックと、平均値より小さい任意に選択した物理ブロックとの間でデータ移動処理を実行する請求項4記載の不揮発性記憶装置。   The data movement processing unit executes 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. The nonvolatile memory device according to claim 4. アクセス装置と、前記アクセス装置から指定された論理アドレスに従いデータの読み出し、書き込みを行う不揮発性記憶装置とを有する不揮発性記憶システムであって、
前記不揮発性記憶装置は、
不揮発性メモリと、不揮発性メモリに接続され、外部から指定された論理アドレスに従いデータの読み出し、書き込みを行うメモリコントローラとを有し、
前記メモリコントローラは、
前記論理アドレスを前記不揮発性メモリにおけるデータ等の記憶位置である物理アドレスに変換するアドレス管理部と、
前記不揮発性メモリの未使用ブロック数を検出する未使用ブロック検出部と、
前記不揮発性メモリを構成する各物理ブロックの書き換え回数を計数する書き換え回数計数部と、
電源立ち上げ時の初期化処理において前記未使用容量検出部が検出した未使用ブロックが予め定められた閾値以下になった場合に前記書き換え回数に基づき選択された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.
前記データ移動処理部は、前記書き換え回数が最多の物理ブロックと前記書き換え回数が最少の物理ブロックとの間でデータ移動処理を実行する請求項7記載の不揮発性記憶システム。   The non-volatile storage system according to claim 7, wherein the data movement processing unit executes a data movement process between the physical block having the largest number of rewrites and the physical block having the smallest number of rewrites. 前記データ移動処理部は、前記物理ブロックに書き換え回数の平均値と、平均値より大きいランダムに選択した物理ブロックと、平均値より小さい任意に選択した物理ブロックとの間でデータ移動処理を実行する請求項7記載の不揮発性記憶システム。   The data movement processing unit executes 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. The non-volatile storage system according to claim 7.
JP2006275448A 2006-10-06 2006-10-06 Memory controller, nonvolatile storage device, and nonvolatile storage system Pending JP2008097132A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (7)

* Cited by examiner, † Cited by third party
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