WO2004006102A1 - Flash memory management program, flash memory management method, and flash memory management apparatus - Google Patents

Flash memory management program, flash memory management method, and flash memory management apparatus Download PDF

Info

Publication number
WO2004006102A1
WO2004006102A1 PCT/JP2002/006675 JP0206675W WO2004006102A1 WO 2004006102 A1 WO2004006102 A1 WO 2004006102A1 JP 0206675 W JP0206675 W JP 0206675W WO 2004006102 A1 WO2004006102 A1 WO 2004006102A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
flash memory
physical block
data
empty
Prior art date
Application number
PCT/JP2002/006675
Other languages
French (fr)
Japanese (ja)
Inventor
Hiroshi Kosaki
Yuuji Nakayama
Honhong Cho
Original Assignee
Fujitsu Limited
Fujitsu Peripherals Limited
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 Fujitsu Limited, Fujitsu Peripherals Limited filed Critical Fujitsu Limited
Priority to PCT/JP2002/006675 priority Critical patent/WO2004006102A1/en
Publication of WO2004006102A1 publication Critical patent/WO2004006102A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A flash memory management program writes and reads data to/from a flash memory in response to a request from a data management program managing data stored in the flash memory. The program executes a process for managing an erase count of a physical block which is a flash memory erase unit and data updating attribute as block management information and a process for acquiring an empty physical block for storing data according to the physical block erase count and the data updating attribute managed as the block management information.

Description

明 細 書 フラッシュメモリ管理プログラム、 フラッシュメモリ管理方法およびフラッシュ メモリ管理装置  Description Flash memory management program, flash memory management method, and flash memory management device
技術分野 Technical field
この発明は、 フラッシュメモリに記憶したデータを管理するデータ管理プログ ラムからの要求に応答してフラッシュメモリへのデニタの書き込みおよび読み出 しをおこなうフラッシュメモリ管理プログラム、 フラッシュメモリ管理方法およ ぴフラッシュメモリ管理装置に関し、 特に、 更新されないデータがフラッシュメ モリの消去回数の少ない物理ブロックを占有し続けることに起因する物理ブロッ クの消去回数の不均等を防止するとともに、 物理プロック間で不要なデータ交換 の発生を防ぎ、 もってフラッシュメモリの寿命を延ばすことができるフラッシュ メモリ管理プログラム、 フラッシュメモリ管理方法およびフラッシュメモリ管理 装置に関するものである。  The present invention relates to a flash memory management program, a flash memory management method, and a flash memory management method for writing and reading denita to and from a flash memory in response to a request from a data management program for managing data stored in the flash memory. Regarding memory management devices, in particular, prevent unequal numbers of erasures of physical blocks due to data that is not updated continuing to occupy physical blocks with fewer erasures of flash memory, and unnecessary data exchange between physical blocks. The present invention relates to a flash memory management program, a flash memory management method, and a flash memory management device that can prevent the occurrence of flash memory and extend the life of the flash memory.
背景技術 Background art
近年、 '携帯電話などの情報機器にフラッシュメモリを用いたフアイルシステム が利用されている。 このフラッシュメモリでは、 データを書き換える場合に、 一 且データを物理ブロック単位で消去する必要があり、 また消去回数に制限がある ため、 特定の物理ブロックの消去回数が多くならないように消去回数を均等ィ匕す る従来技術が知られている。  In recent years, file systems using flash memory have been used for information devices such as mobile phones. In this flash memory, when rewriting data, it is necessary to erase the data in physical block units, and the number of erases is limited. Therefore, the number of erases is equalized so that the number of erases of a specific physical block does not increase. 2. Description of the Related Art There are known conventional techniques.
たとえば、 特開平 6— 1 2 4 5 9 6号公報ゃ特開平 1 0— 3 1 6 1 1号公報に は、 各物理ブロックの消去回数を記憶しておき、 消去回数の少ない空きの物理ブ ロック (以下 「空きブロック」 と言う) 力 ら使用していくことによって消去回数 の均等化をはかる技術が開示されている。  For example, in Japanese Patent Application Laid-Open No. Hei 6-124649 / Japanese Patent Application Laid-open No. Hei 10-316161, the number of erasures of each physical block is stored, and an empty physical block having a small number of erasures is stored. There is disclosed a technology for equalizing the number of erasures by using locks (hereinafter referred to as “empty blocks”).
し力 しながら、 単に消去回数の少ない空きプロックから使用することとすると 、 更新されないデータがある物理ブロックに書き込まれた場合には、 その物理ブ 口ックの消去回数が他の物理ブロックの消去回数よりも少なくても、 該物理プロ ックが更新されず、 消去回数の均等化が図れないという問題がある。 例えば、 更 新されなレ、データがフラッシュメモリの半分を占めている場合には、 残りの半分 で消去を繰り返すために寿命が半分になってしまう。 However, if you decide to simply use a free block with a small number of erases, However, if data that is not updated is written to a physical block, the physical block is not updated and erased even if the number of times of erasure of that physical block is less than the number of times of erasure of other physical blocks. There is a problem that the number of times cannot be equalized. For example, if the data that occupies half of the flash memory is not updated, the life is halved because the other half is repeatedly erased.
力かる問題を解消するために、 特開平 6— 2 2 2 9 8 6号公報には、 ある物理 ブロックの消去回数が所定値以上である場合、 あるいは、 この物理ブロックの消 去回数と消去回数が最も少ない物理プロックの消去回数との差が所定値以上であ る場合に、 この物理プロックのデータと消去回数が最も少ない物理ブロックのデ ータを交換することによって消去回数の均等化をはかる技術が開示されている。 ' しかしながら、 この従来技術を用いて消去回数の多い物理プロックのデータと 消去回数の少ない物理ブロックのデータを単に交換すると、 更新されないデータ であるにも係らず、 消去回数の多い物理プロックから消去回数の少ない物理プロ ックに移動されてしまうという効率上の問題が生ずる。 すなわち、 更新されない データはそのまま消去回数が多い物理プロックを使用すべきであるにもかかわら ず、 消去回数の少なレ、物理ブロックに移動されてしまい、 不要なデータの交換が 発生して効率を下げるとともに、 フラッシュメモリの寿命が短くなつてしまう。 従って、 この発明は、 更新されないデータがフラッシュメモリの消去回数の少 ない物理ブロックを占有し続けることに起因する物理ブロックの消去回数の不均 等化を防止するとともに、 物理ブロック間で不要なデータ交換の発生を防ぎ、 も つてフラッシュメモリの寿命を延ばすことができるフラッシュメモリ管理プログ ラム、 フラッシュメモリ管理方法およびフラッシュメモリ管理装置を提供するこ とを目的とする。  Japanese Patent Laid-Open Publication No. Hei 6-222 986 proposes to solve the problem when the number of erasures of a certain physical block is equal to or greater than a predetermined value, or the number of erasures and the number of erasures of this physical block. When the difference between the number of erasures of the physical block with the least number of erasures is equal to or greater than a predetermined value, the number of erasures is equalized by exchanging the data of this physical block with the data of the physical block with the least number of erasures. The technology is disclosed. '' However, if the data of a physical block with a large number of erasures and the data of a physical block with a small number of erasures are simply exchanged using this conventional technology, the number of erasures from the physical block with a large number of There is an efficiency problem that the physical block is moved to a physical block with less data. In other words, even though data that is not updated should be used as it is, a physical block with a large number of erasures should be used, but it is moved to a physical block with a small number of erasures, causing unnecessary data exchange and reducing efficiency At the same time, the life of the flash memory is shortened. Therefore, the present invention prevents unequal number of erasures of a physical block due to data that is not updated continuing to occupy a physical block with a small number of erasures of the flash memory, and prevents unnecessary data between physical blocks. An object of the present invention is to provide a flash memory management program, a flash memory management method, and a flash memory management device that can prevent the occurrence of replacement and extend the life of the flash memory.
発明の開示 . DISCLOSURE OF THE INVENTION.
上述した問題を解決し、 目的を達成するため、 本発明は、 フラッシュメモリに 記憶したデータを管理するデータ管理プロダラムからの要求に応答して前記フラ ッシュメモリへのデータの書き込みおよぴ読み出しをおこなうフラッシュメモリ 管理プログラムであって、 前記フラッシュメモリの消去単位である物理ブロック の消去回数おょぴデータの更新属性をプロック管理情報として管理する管理手順 と、 前記管理手順によりプロック管理情報として管理される物理プロックの消去 回数おょぴデータの更新属性に基づいてデータを格納する空きの物理ブロックを 取得する格納プロック取得手順と、 を実行することを特徴とする。 In order to solve the above-mentioned problems and achieve the object, the present invention provides a flash memory in response to a request from a data management program for managing data stored in a flash memory. A flash memory management program for writing and reading data to and from a flash memory, comprising: a management procedure for managing, as block management information, the number of times of erasure of a physical block, which is an erasing unit of the flash memory, and update attributes of data. And a storage block acquisition procedure for acquiring a free physical block for storing data based on the number of erasures of the physical block managed as the block management information by the management procedure and an update attribute of the data. And
また、 本発明は、 フラッシュメモリに記憶したデータを管理するデータ管理プ ログラムからの要求に応答して前記フラッシュメモリへのデータの書き込みおよ び読み出しをおこなうフラッシュメモリ管理方法であって、 前記フラッシュメモ リの消去単位である物理プロックの消去回数およびデータの更新属性をブロック 管理情報として管理する管理工程と、 前記管理工程によりプロック管理情報とし て管理される物理プロックの消去回数およびデータの更新属性に基づいてデータ を格納する空きの物理プロックを取得する格納プロック取得工程と、 を含んだこ とを特 ί敫とする。  The present invention also relates to a flash memory management method for writing and reading data to and from the flash memory in response to a request from a data management program for managing data stored in the flash memory. A management step of managing the number of erasures of a physical block, which is a unit of memory erasure, and an update attribute of data, as block management information; and the number of erasures of a physical block, which is managed as block management information by the management step, and an attribute of data update. And a storage block acquisition step of acquiring an empty physical block for storing data based on the storage block.
また、 本発明は、 フラッシュメモリに記憶したデータを管理するデータ管理プ ログラムからの要求に応答して前記フラッシュメモリへのデータの書き込みおよ ぴ読み出しをおこなうフラッシュメモリ管理装置であって、 前記フラッシュメモ リの消去単位である物理プロックの消去回数およびデータの更新属性をブロック 管理情報として管理する管理手段と、 前記管理手段によりプロック管理情報とし て管理される物理プロックの消去回数およびデータの更新属性に基づいてデータ を格納する空きの物理プロックを取得する格納プロック取得手段と、 を備えたこ とを特 ί敷とする。  Further, the present invention is a flash memory management device that writes and reads data to and from the flash memory in response to a request from a data management program that manages data stored in the flash memory, Management means for managing, as block management information, the number of erasures of physical blocks, which are units of memory erasure, and data update attributes; and the number of erasures of physical blocks and data update attributes managed as block management information by the management means. And a storage block acquisition means for acquiring an empty physical block for storing data based on the data.
かかる発明によれば、 フラッシュメモリの消去単位である物理プロックの消去 回数およびデータの更新属性をプロック管理情報として管理し、 プロック管理情 報として管理される物理プロックの消去回数およびデータの更新属性に基づいて データを格納する空きの物理ブロックを取得することとしたので、 フラッシュメ モリの物理ブロックの消去回数の均等化をはかり、 もってフラッシュメモリの寿 命を延ばすことができる。 図面の簡単な説明 According to this invention, the number of erasures of the physical block, which is the unit of erasure of the flash memory, and the update attribute of the data are managed as block management information, and the number of erasures of the physical block and the update attribute of the data, which are managed as the block management information, Based on this, a free physical block for storing data is acquired, so the number of erasures of the physical block in the flash memory is equalized, and the life of the flash memory is thereby reduced. You can extend your life. BRIEF DESCRIPTION OF THE FIGURES
第 1図は、 この発明の実施の形態に係るフラッシュメモリファイルの更新処理 を説明するための説明図であり、 第 2図は、 この発明の実施の形態に係るフラッ シュメモリ管理装置の構成を示す機能ブロック図であり、 第 3図は、 第 2図に示 したファイル管理情報およぴブロック管理情報の一例を示す図であり、 第 4図は 、 第 2図に示したファイル更新ルーチンの処理手順を示すフ口一チヤ一トであり 、 第 5図は、 作成するファイルの更新属性が 「更新不可」 である場合の新規ファ ィル作成ルーチンの処理手順を示すフローチャートであり、 第 6図は、 作成する フアイルの更新属性が 「更新可能」 である場合の新規ファィル作成ルーチンの処 理手順を示すフローチャートであり、 第 7図は、 第 2図に示したブロックデータ 移動ルーチンの処理手順を示すフローチャートであり、 第 8図は、 第 2図に示し たブロック再割り当てルーチンの処理手順を示すフローチヤ一トである。  FIG. 1 is an explanatory diagram for explaining a flash memory file update process according to an embodiment of the present invention, and FIG. 2 shows a configuration of a flash memory management device according to an embodiment of the present invention. FIG. 3 is a functional block diagram. FIG. 3 is a diagram showing an example of the file management information and block management information shown in FIG. 2. FIG. 4 is a diagram showing the processing of the file update routine shown in FIG. FIG. 5 is a flowchart showing the procedure of a new file creation routine when the update attribute of a file to be created is “updatable”, and FIG. FIG. 7 is a flowchart showing a processing procedure of a new file creation routine when the update attribute of a file to be created is “updatable”. FIG. 7 is a block data movement routine shown in FIG. FIG. 8 is a flowchart showing a processing procedure of a block reallocation routine shown in FIG. 2.
発明を実施するための最良の形態 BEST MODE FOR CARRYING OUT THE INVENTION
以下、 添付図面を参照して、 この発明に係るフラッシュメモリ管理プログラム Hereinafter, a flash memory management program according to the present invention will be described with reference to the accompanying drawings.
、 フラッシュメモリ管理方法およびフラッシュメモリ管理装置の好適な実施の形 態を詳細に説明する。 なお、 本実施の形態では、 本発明をフラッシュメモリファ ィルに適用した場合を中心に説明する。 Preferred embodiments of the flash memory management method and the flash memory management device will be described in detail. In the present embodiment, a description will be given mainly of a case where the present invention is applied to a flash memory file.
まず、 この発明の実施の形態に係るフラッシュメモリファイルの更新処理.につ いて説明する。 第 1図は、 この発明の実施の形態に係るフラッシュメモリファイ ルの更新処理を説明するための説明図である。 同図 (a ) は、 フラッシュメモリ フアイルを更新する場合のフラッシュメモリの物理プロックの更新例を示してい る。 ここで、 物理ブロックは、 フラッシュメモリのデータの消去単位であり、 そ の大きさは、 例えば、 1 6 K Bである。 また、 この例では、 データ 1〜データ 4 が物理ブロック 1に格納されている。 同図 (b ) は、 フラッシュメモリファイルの更新前後でのブロック管理情報 ( 物理ブロックなどを管理する情報) の一例を示している。 この例では、 フラッシ ュメモリファイルの更新前の段階で、 物理ブロック 1には、 更新属性が 「更新可 能」 となるデータが格納されており、 その消去回数は 2 0 0である。 First, a flash memory file update process according to the embodiment of the present invention will be described. FIG. 1 is an explanatory diagram for explaining a flash memory file update process according to an embodiment of the present invention. FIG. 2A shows an example of updating the physical block of the flash memory when updating the flash memory file. Here, the physical block is a unit of erasing data in the flash memory, and its size is, for example, 16 KB. In this example, data 1 to data 4 are stored in physical block 1. FIG. 2B shows an example of block management information (information for managing physical blocks and the like) before and after updating the flash memory file. In this example, at the stage before the update of the flash memory file, the physical block 1 stores data whose update attribute is “updatable”, and its erase count is 200.
ここで、 この更新属性とは、 物理ブロックにデータが格納されているファイル が更新可能である力否かを表わす情報であり、 ファイルが更新可能であれば更新 属性は 「更新可能」 となり、 ファイルが更新可能でなければ更新属性は 「更新不 可」 となる。 同様に、 物理ブロック 4には、 更新属性が 「更新不可」 のデータが 格納されており、 その消去回数は 5 0 0である。 また、 他の物理ブロックである 物理ブロック 2、 物理プロック 3およぴ物理ブロック 5は未使用であり、 消去回 数がそれぞれ 3 0 0、 1 0 0、 4 0 0である。  Here, the update attribute is information indicating whether or not a file whose data is stored in the physical block is updatable. If the file is updatable, the update attribute becomes “updatable”. If is not updatable, the update attribute is “updatable”. Similarly, the physical block 4 stores data whose update attribute is “updatable”, and its erase count is 500. The other physical blocks, physical block 2, physical block 3, and physical block 5, are unused, and the erase counts are 300, 100, and 400, respectively.
そ.して、 同図 ( a ) に示す物理プロック 1に格納されたデータ 3の更新が発生 すると、 直接フラッシュメモリ内のデータを更新することはできないので、 まず 、 物理ブロック 1のデータを全て R AM領域にある作業バッファに読み込む。 そ して、 作業バッファ上でデータ 3をデータ 3 ' に変更し、 その後、 別の空きブロ ックに書き込む。  Then, when the update of the data 3 stored in the physical block 1 shown in FIG. 7A occurs, the data in the flash memory cannot be updated directly. Read into work buffer in RAM area. Then, change data 3 to data 3 'in the work buffer, and then write to another free block.
この時、 どの空きブロックを使用するかは、 同図 (b ) に示した各物理ブロッ クの消去回数と書き込むデータの更新属性によって決定する。 すなわち、 更新属 性が 「更新可能」 であるデータを書き込む場合には、 消去回数が最も少ない空き ブロックを選択し、 更新属性が 「更新不可」 であるデータを書き込む場合には、 消去回数が最も多い空きブロックを選択する。  At this time, which empty block is used is determined by the number of erasures of each physical block and the update attribute of the data to be written as shown in FIG. In other words, when writing data whose update attribute is “updatable”, select an empty block with the least number of erasures, and when writing data whose update attribute is “updatable”, write the least erasable number. Select a free block that has more.
この例では、 ファイルの更新であることから、 書き込むデータの更新属性は 「 更新可能」 であり、 したがって、 物理ブロック 2、 物理ブロック 3、 物理ブロッ ク 5の 3つの空きブロックの中から消去回数が最も少ない物理プロック 3を選択 して作業バッファのデータを書き込む。 もし、 新たに更新不可であるファイルを 作成してデータを書き込む場合には、 消去回数が最も多い物理プロック 5を選択 することとなる。 また、 物理ブロック 3の更新属性を 「更新可能」 とする。 最後に、 物理ブロック 1は、 全てのデータが消去されて空きプロックとなり、 消去回数が 1増加し、 2 0 0から 2 0 1に変更される。 そして、 ブロック管理情 報は同図 (b ) に示すように更新される。 In this example, since the file is updated, the update attribute of the data to be written is “updatable”. Therefore, the number of erasures from the three free blocks of physical block 2, physical block 3, and physical block 5 is reduced. Select the least physical block 3 and write the data in the work buffer. If a new non-updatable file is created and data is written, the physical block 5 with the largest number of erasures will be selected. In addition, the update attribute of the physical block 3 is set to “updatable”. Finally, physical block 1 has all data erased and becomes an empty block, the number of erases increases by 1, and it changes from 200 to 201. Then, the block management information is updated as shown in FIG.
このように、 本実施の形態では、 空きブロックにデータを書き込む場合に、 書 き込むデータが更新可能であれば、 その物理ブロックが将来書き換えられる可能 性が高いので消去回数の少ない空きプロックを選択し、 書き込むデータが更新不 可であれば、 その物理プロックは将来も書き換えられないので消去回数の多い空 きブロックを選択することとしたので、 フラッシュメモリの物理ブロックの消去 回数の均等化をはかり、 もってフラッシュメモリの寿命を延ばすことができる。 次に、 この発明の実施の形態であるフラッシュメモリ管理装置の構成について 説明する。 第 2図は、 この発明の実施の形態であるフラッシ メモリ管理装置の 構成を示す機能ブロック図である。 同図に示すように、 このフラッシュメモリ管 理装置は、 マイクロプロセッサ 1 0 0と、 プログラムメモリ 2 0 0と、 データ領 域 3 0 0と、 フラッシュメモリ 4 0 0とを有する。  Thus, in the present embodiment, when writing data to an empty block, if the data to be written is updatable, the physical block is likely to be rewritten in the future, so an empty block with a small number of erases is selected. If the data to be written cannot be updated, the physical block will not be rewritten in the future, so an empty block with a large number of erasures is selected.Therefore, the number of erasures of the physical blocks in the flash memory is equalized. Therefore, the life of the flash memory can be extended. Next, a configuration of a flash memory management device according to an embodiment of the present invention will be described. FIG. 2 is a functional block diagram showing a configuration of a flash memory management device according to an embodiment of the present invention. As shown in the figure, the flash memory management device has a microprocessor 100, a program memory 200, a data area 300, and a flash memory 400.
マイクロプロセッサ 1 0 0は、 このフラッシュメモリ管理装置全体を制御する 処理部である。 具体的には、 プログラムメモリ 2 0 0に格納されたプログラムを 実行することによって、 フラッシュメモリ 4 0 0の管理をおこなう。  The microprocessor 100 is a processing unit that controls the entire flash memory management device. More specifically, the flash memory 400 is managed by executing a program stored in the program memory 200.
プログラムメモリ 2 0 0は、 プログラムを記憶する R OMまたは R AMであり 、 このプログラムメモリ 2 0 0が R AMである場合には、 このフラッシュメモリ 管理装置の起動時にフラッシュメモリ 4 0 0などからプログラムをこのプロダラ ムメモリ 2 0 0にロードして実行する。  The program memory 200 is a ROM or a RAM for storing a program. If the program memory 200 is a RAM, the program is read from the flash memory 400 when the flash memory management device is started. Is loaded into the program memory 200 and executed.
データ領域 3 0 0は、 プログラムを実行する場合に、 フラッシュメモリ 4 0 0 の管理情報を管理情報保存領域 4 1 0から読み出して記憶する RAMであり、 プ ログラムの演算結果を記憶する領域、 作業バッファなどとしても使用される。 ま た、 フラッシュメモリ 4 0 0は、 フアイルデータなどを格納する記憶部であり、 管理情報を保存する管理情報保存領域 4 1 0を有する。  The data area 300 is a RAM for reading and storing the management information of the flash memory 400 from the management information storage area 410 when executing a program, and is an area for storing the operation results of the program. Also used as a buffer. The flash memory 400 is a storage unit for storing file data and the like, and has a management information storage area 410 for storing management information.
次に、 プログラムメモリ 2 0 0が有するプログラムについて説明する。 このプ ログラムメモリ 2 0 0は、 ユーザプログラム 2 1 0と、 ファイル管理プログラム 2 2 0と、 フラッシュメモリ ドライバ 2 3 0とを有する。 Next, a program included in the program memory 200 will be described. This The program memory 200 has a user program 210, a file management program 220, and a flash memory driver 230.
ユーザプログラム 2 1 0は、 ファイル管理プログラム 2 2 0を介してフラッシ ュメモリ 4 0 0を利用する任意のアプリケーションプログラムである。 フアイノレ 管理プログラム 2 2 0は、 フラッシュメモリ 4 0 0に格納されるファイルを管理 するプログラムである。 このファイル管理プログラム 2 2 0は、 オペレーティン グシステム (O S ) の一部の機能として提供される場合もある。 フラッシュメモ リ ドライバ 2 3 0は、 ファイル管理プログラム 2 2 0からの要求に基づいてフラ ッシュメモリ 4 0 0へのデータの書き込みおよび読み出しをおこなうプログラム である。 .  The user program 210 is any application program that uses the flash memory 400 via the file management program 220. The file management program 222 is a program for managing files stored in the flash memory 400. The file management program 220 may be provided as a part of the operating system (OS). The flash memory driver 230 is a program that writes and reads data to and from the flash memory 400 based on a request from the file management program 220. .
次に、 データ領域 3 0 0が記憶する情報について詳細に説明する。 このデータ 領域 3 0 0は、 ファイル管理情報 3 1 0と、 プロック管理情報 3 2 0とを記憶す る。 フアイノレ管理情報 3 1 0は、 ファイルに関する情報であり、 ブロック管理情 報 3 2 0は、 物理プロックなどに関する情報である。  Next, information stored in the data area 300 will be described in detail. This data area 300 stores file management information 310 and block management information 320. The file management information 310 is information about a file, and the block management information 320 is information about a physical block and the like.
図 3は、 第 2図に示したフアイル管理情報 3 1 0およぴブロック管理情報 3 2 0の一例を示す図である。 同図に示すように、 このファイル管理情報 3 1 0は、 ファイルの名前を示すファイル名、 ファイルのフラッシュメモリ 4 0 0での格納 開始位置を示す開始アドレス、 ファイルの大きさを示すサイズ、 ファイルの更新 可否を示す更新属性をファイルごとに管理した情報である。  FIG. 3 is a diagram showing an example of the file management information 310 and the block management information 320 shown in FIG. As shown in the figure, the file management information 310 includes a file name indicating a file name, a start address indicating a storage start position of the file in the flash memory 400, a size indicating a file size, and a file. This is information in which an update attribute indicating whether or not the file can be updated is managed for each file.
たとえば、 フアイノレ名が a. txtのファイルは、 フラッシュメモリ 4 0 0での格 納開始位置が 0x2000であり、 大きさが 0x100であり、 更新可否が 「更新不可」 であることを示し、 フアイノレ名が b. txtのファイルは、 フラッシュメモリ 4 0 0 での格納開始位置が OxaOOOであり、 大きさが 0x100であり、 更新可否が 「更新 可能」 であることを示している。 ここで、 Oxは 1 6進数を示す。 また、 開始ァ ドレスは論理ァドレスであり、 フラッシュメモリ 4 0 0の物理ァドレスと分離す ることによって、 データを格納する物理ブロックが変更されても、 その変更の影 響を受けることなくファイルの格納開始位置を管理することができる。 プロック管理情報 3 2 0は、 論理ァドレス管理情報 3 2 1と物理プロック管理 情報 3 2 2を管理した情報である。 論理ァドレス管理情報 3 2 1は、 論理ァドレ スで定義されるフラッシュメモリ 4 0 0の論理空間を一定の大きさの論理ブロッ クに分割し、 論理ブロックの先頭論理ァドレスを示す開始論理ァドレス、 論理ブ ロックの大きさを示すサイズ、 論理ブロックに対応する物理ブロックの番号を示 す物理プロック番号、 論理プロックにデータが格納されるファイルの更新可否を 示す更新属性を各論理ブロックごとに管理した情報である。 なお、 この更新属性 は、 対応する物理ブロックの更新属性となる。 すなわち、 この更新属性が 「更新 可能」 であれば、 対応する物理ブロックは更新可能な物理ブロック (以下 「更新 可能ブロック」 と言う) となり、 この更新属性が 「更新不可」 であれば、 対応す る物理ブロックは更新不可の物理ブロック (以下 「更新不可ブロック」 と言う) となる。 . For example, a file with the file name a.txt indicates that the storage start position in the flash memory 400 is 0x2000, the size is 0x100, and whether or not the file can be updated is "not updatable". However, the b. Txt file indicates that the storage start position in the flash memory 400 is OxaOOO, the size is 0x100, and the update availability is “updatable”. Here, Ox indicates a hexadecimal number. The start address is a logical address. By separating the start address from the physical address of the flash memory 400, even if the physical block that stores data is changed, the file can be stored without being affected by the change. Start position can be managed. The block management information 320 is information managing the logical address management information 321 and the physical block management information 322. The logical address management information 3 211 divides the logical space of the flash memory 400 defined by the logical address into logical blocks of a certain size, and starts logical address and logical address indicating the first logical address of the logical block. Information that manages, for each logical block, the size that indicates the size of the block, the physical block number that indicates the number of the physical block corresponding to the logical block, and the update attribute that indicates whether the file that stores data in the logical block can be updated. It is. This update attribute is the update attribute of the corresponding physical block. In other words, if this update attribute is “updatable”, the corresponding physical block is an updatable physical block (hereinafter referred to as “updatable block”). If this update attribute is “updatable”, the corresponding physical block is These physical blocks are non-updatable physical blocks (hereinafter referred to as “non-updatable blocks”). .
たとえば、 開始論理ァドレスが 0x0000の論理ブロックは、 その大きさが 0x4000であり、 そのデータを実際に格納する物理ブロックの番号は 1 2であり 、 この物理ブロック 1 2は更新不可ブロックとなることを示し、 開始論理ァドレ スが 0x4000の論理ブロックは、 その大きさが 0x4000であり、 空き状態であるこ とを示している。 また、 開始論理アドレスが 0x8000の論理ブロックは、 その大 きさが.0x4000であり、 そのデータを実際に格納する物理プロックの番号は 1 4 であり、 この物理ブロック 1 4は更新可能ブロックとなることを示し、 開始論理 ァドレスが OxcOOOの論理ブロックは、 その大きさが 0x4000であり、 空き状態で あることを示している。  For example, a logical block whose starting logical address is 0x0000 has a size of 0x4000, the number of a physical block that actually stores the data is 12 and this physical block 12 is a non-updatable block. The logical block whose start logical address is 0x4000 has a size of 0x4000, indicating that the logical block is empty. Also, the logical block whose starting logical address is 0x8000 has a size of .0x4000, and the physical block number that actually stores the data is 14, and this physical block 14 is an updatable block The logical block whose start logical address is OxcOOO has a size of 0x4000, indicating that the logical block is empty.
物理プロック管理情報 3 2 2は、 物理プロックの番号を示す番号、 物理プロッ クへのデータの書き込み状況を示す使用状況、 物理プロックのこれまでの消去回 数を示す消去回数を物理ブロックごとに管理した情報である。 たとえば、 物理ブ ロック 1 1、 物理ブロック 1 3、 物理ブロック 1 5は、 空き状態であり、 これま での消去回数はそれぞれ 1 0 0、 5 0 0、 2 0 0であることを示している。 また 、 物理ブロック 1 2、 物理ブロック 1 4は、 データが書き込み済みであり、 これ までの消去回数はそれぞ;^ 4 0 0、 3 0 0であることを示している。 Physical block management information 3 2 2 manages, for each physical block, the number indicating the physical block number, the usage status indicating the status of writing data to the physical block, and the erase count indicating the number of physical block erases so far. Information. For example, Physical Block 11, Physical Block 13 and Physical Block 15 are empty, indicating that the erase counts so far are 100, 500, and 200, respectively. . Also, physical blocks 12 and 14 have already been written with data. The number of erasures up to is respectively;
フアイル管理情報 3 1 0およぴブロック管理情報 3 2 0は、 フラッシュメモリ 4 0 0の管理情報保存領域 4 1 0中に保存されており、 フラッシュメモリ 4 0 0 を使用する場合に、 データ領域 3 0 0に読み込まれる。 そして、 フラッシュメモ リ 4 0 0の更新にともなって、 その内容が変更され、 フラッシュメモリ 4 0 0の 使用終了時に、 変更結果が管理情報保存領域 4 1 0に保存される。  The file management information 310 and the block management information 320 are stored in the management information storage area 410 of the flash memory 400, and the data area is used when the flash memory 400 is used. Read into 300. When the flash memory 400 is updated, its contents are changed, and when the use of the flash memory 400 is finished, the change result is stored in the management information storage area 410.
次に、 第 2図に示した、 フラッシュメモリドライバ 2 3 0について詳細に説明 する。 このフラッシュメモリ ドライバ 2 3 0は、 フ Tィル更新ルーチン 2 3 1と 、 新規ファイル作成ルーチン 2 3 2と、 プロックデータ移動ルーチン 2 3 3と、 ブロック再割り当てルーチン 2 3 4とを有する。  Next, the flash memory driver 230 shown in FIG. 2 will be described in detail. The flash memory driver 230 has a file update routine 231, a new file creation routine 232, a block data movement routine 233, and a block reallocation routine 2324.
ファイル更 ffルーチン 2 3 1は、 ファイル管理プログラム 2 2 0からの要求に 基づいてファィルデータを更新するプログラムである。 このフアイル更新/レーチ ン 2 3 1は、 更新するデータを格納する物理ブロックからデータをデータ領域 3 0 0に読み込み、 このデータを更新して新たな物理ブロックに書き込む。 この時 、 書き込むデータは更新可能であるため、 空きブロック取得処理では、 消去回数 が最も少ない空きブロックを取得する。  The file update ff routine 231 is a program for updating file data based on a request from the file management program 220. The file update / latin 23 reads data from the physical block storing the data to be updated into the data area 300, updates this data, and writes it to a new physical block. At this time, since the data to be written can be updated, the empty block acquisition processing acquires the empty block with the least number of erases.
新規ファィル作成ルーチン 2 3 2は、 フアイル管理プログラム 2 2 0からの要 求に基づいて物理プロックに新たなデータを書き込むプログラムである。 この新 規ファイル作成ルーチン 2 3 2は、 空きブロック取得処理において、 作成するフ アイルの属^に基づいて空きブロックを選択する。  The new file creation routine 232 is a program for writing new data to a physical block based on a request from the file management program 220. The new file creation routine 2 32 selects an empty block based on the attribute of the file to be created in the empty block acquisition process.
すなわち、 ファイルの更新属性が 「更新不可」 であれば、 消去回数が最も多い 空きブロックを取得し、 ファイルの更新属性が 「更新可能」 であれば、 消去回数 が最も少ない空きブロックを取得する。 このように、 作成するファイルの更新属 性に基づいて空きブロックを選択することによって、 物理プロックの消去回数の 均等化をはかり、 フラッシュメモリ 4 0 0の寿命を延ばすことができる。  That is, if the update attribute of the file is “updatable”, an empty block with the largest number of erasures is acquired, and if the update attribute of the file is “updatable”, an empty block with the smallest number of erasures is acquired. In this way, by selecting an empty block based on the update attribute of a file to be created, the number of erasures of a physical block can be equalized, and the life of the flash memory 400 can be extended.
ブロックデータ移動ルーチン 2 3 3は、 空きブロックが発生した時点で処理を 開始するプログラムである。 このブロックデータ移動ルーチン 2 3 3は、 空きブ 口ックの中で消去回数の最も少ない空きブロックの消去回数が所定値を超えてい る力、 あるいは、 空きブロックの中で消去回数の最も多い空きブロックの消去回 数が所定値を超えているかを調べ、 所定値を超えている場合には、 さらに、 更新 不可プロック中で、 その更新不可プロックの消去回数がある空きプロックの消去 回数より少ない更新不可ブロックがあれば、 その更新不可ブロックのデータを消 去回数が多い空きプロックへ移動する。 The block data movement routine 2 33 is a program that starts processing when an empty block occurs. This block data movement routine 2 3 3 Whether the number of erasures of the empty block with the smallest number of erasures exceeds the specified value or whether the number of erasures of the empty block with the largest number of erasures among the vacant blocks exceeds the specified value If the value exceeds the predetermined value, and if there is a non-updatable block in the non-updatable block and the number of erasures of the non-updatable block is less than the number of erasures of a free block, the data of the non-updatable block Is moved to an empty block where the number of deletions is large.
このように、 空きブロックの中で、 消去回数の最も少ない空きブロックの消去 回数が所定値を超えているか、 あるいは、 空きプロ ·ックの中で消去回数の最も多 い空きブロックの消去回数が所定値を超えている場合には、 さらに、 更新不可ブ ロック中で、 その更新不可ブロックの消去回数がある空きブロックの消去回数よ り少ない更新不可ブロックがあれば、 その更新不可プロックのデータを消去回数 が多い空きブロックへ移動することによって、 更新されないデータがフラッシュ メモリ 4 0 0の消去回数の少ない物理ブロックを占有し続けることを防ぎ、 物理 プロックの消去回数の均等化をはかり、 もってフラッシュメモリ 4 0 0の寿命を 延ばすことができる。  In this way, the number of erasures of the empty block with the smallest number of erasures among the empty blocks exceeds a predetermined value, or the number of erasures of the empty block with the largest number of erasures among the empty blocks is If the value exceeds the predetermined value, if there is a non-updatable block in the non-updatable block and the number of erasures of the non-updatable block is smaller than the number of erasures of an empty block, the data of the non-updatable block is deleted. By moving to an empty block with a large number of erasures, data that is not updated is prevented from occupying a physical block with a small number of erasures in the flash memory 400, and the number of erasures of the physical block is equalized. The life of 400 can be extended.
また、 更新不可ブロックは、 消去回数が多い場合でも、 そのデータが他の物理 ブロックへ移動されることがないので、 不要なデータの交換に起因する効率低下 を防ぐとともに、 フラッシュメモリ 4 0 0の寿命を延ばすことができる。  In addition, even if the number of times of erasure is large, the non-updatable block does not move its data to another physical block, so that the efficiency is not reduced due to unnecessary data exchange and the flash memory 400 Life can be extended.
ブロック再割り当てルーチン 2 3 4は、 ユーザの要求に基づいて、 物理ブロッ クのデータの再割り当てをおこなうプログラムである。 具体的には、 物理ブロッ クの消去回数の多いブロックから順番に更新不可プロック、 更新可能プロック、 空きブロックとして整理する。  The block reallocation routine 234 is a program that reallocates physical block data based on a user request. Specifically, the physical blocks are sorted as non-updatable blocks, updatable blocks, and empty blocks in order from the block with the largest number of erases.
このように、 ユーザの要求に基づいて物理ブロックのデータの再割り当てをお こなうことによって、 消去回数の均等化をはかり、 フラッシュメモリ 4 0 0の寿 命を延ばすことができる。  In this way, by reallocating the data of the physical block based on the user's request, the number of erasures can be equalized and the life of the flash memory 400 can be extended.
次に、 第 2図に示したファイル更新ルーチン 2 3 1の処理について説明する。 第 4図は、 第 2図に示したファイル更新ルーチン 2 3 1の処理手順を示すフロー チャートである。 同図に示すように、 このファイル更新ルーチン 2 3 1は、 更新 するファイルの論理ァドレスと論理ァドレス管理情報 3 2 1力 ら、 更新するファ ィルのデータを格納した物理ブロック番号を取得し (ステップ S 4 0 1 ) 、 その 物理プロック番号のデータをデータ領域 3 0 0に読み込む (ステップ S 4 0 2 ) 0 Next, the processing of the file update routine 2 31 shown in FIG. 2 will be described. FIG. 4 is a flowchart showing the processing procedure of the file update routine 231, shown in FIG. It is a chart. As shown in the figure, the file update routine 2 31 obtains the physical block number storing the data of the file to be updated from the logical address of the file to be updated and the logical address management information 3 21. In step S 4 0 1), the data of the physical block number is read into the data area 3 0 0 (step S 4 0 2) 0
そして、 更新するファイルの論理アドレスと論理アドレス管理情報 3 2 1から 、 対応する物理ブロック内のデータのアドレスを計算し、 このアドレスに基づい てデータ領域 3 0 0に読み込まれた物理ブロックのデータを変更する (ステップ S 4 0 3 ) 。 ここで、 ファイルの更新属¾^が 「更新可能」 であることから、 空き ブロックの中から消去回数が最も少ない空きブロックを取得し (ステップ S 4 0 4 ) 、 更新したデータをその空きブロックに書き込む (ステップ S 4 0 5 ) 。 そして、 論理ァドレス管理情報, 3 2 1のファイル論理ァドレスに対する物理ブ 口ック番号を更新し、 更新前のデータが格納されていた物理プロックを消去して 空きブロックとする (ステップ S 4 0 7 ) 。  Then, from the logical address of the file to be updated and the logical address management information 321, the address of the data in the corresponding physical block is calculated, and the data of the physical block read into the data area 300 is calculated based on this address. Change (step S403). Here, since the update attribute of the file is “updatable”, an empty block having the least number of erasures is obtained from the empty blocks (step S404), and the updated data is stored in the empty block. Write (step S405). Then, the logical block management information, the physical block number for the file logical address of 321, is updated, and the physical block storing the data before the update is erased to be a free block (step S407). ).
次に、 作成するファイルの更新属性が 「更新不可」 である場合の新規ファイル 作成ルーチン 2 3 2の処理について説明する。 第 5図は、 作成するファイルの更 新属性が 「更新不可」 である場合の新規ファイル作成ノレ一チン 2 3 2の処理手順 を示すフローチヤ一トである。  Next, the processing of the new file creation routine 232 when the update attribute of the file to be created is “updatable” will be described. FIG. 5 is a flowchart showing the processing procedure of the new file creation routine 232 when the update attribute of the file to be created is “updatable”.
同図に示すように、 この新規ファイル作成ルーチン 2 3 2は、 更新不可のファ ィルを作成する場合に、 既存の更新不可ブロック中に、 作成するファイルを書き 込める大きさの空き領域を持つ更新不可ブロックがあるかを判定する (ステップ S 5 0 1 ) 。 もし、 ファイルを書き込める大きさの空き領域を持つ更新不可プロ ックがある場合には、 その更新不可ブロックの空き領域のアドレスから、 論理ァ ドレス管理情報 3 2 1を用いてデータを書き込む論理ァドレスを計算し (ステツ プ S 5 0 3 ) 、 ステップ S 5 0 6へ進む。 一方、 ファイルを書き込める大きさの 空き領域を持つ更新不可ブロックがない場合には、 ファイルの更新属性が 「更新 不可」 であることから、 消去回数の最も多い空きブロックを取得し (ステップ S 5 0 2 ) 、 ファイル管理情報 3 1 0とブロック管理情報 3 2 0から空いている論 理ブロックを取得し (ステップ S 5 0 4 ) 、 取得した論理ブロックの物理ブロッ ク番号を取得した空きブロックの番号とし、 更新属性を 「更新不可」 とする (ス テツプ S 5 0 5 ) 。 As shown in the figure, this new file creation routine 2 32 has a free area large enough to write the file to be created in the existing non-updatable block when creating a non-updatable file. It is determined whether there is a block that cannot be updated (step S501). If there is a non-updatable block having a free area large enough to write a file, the logical address to which data is written using the logical address management information 3 21 from the address of the free area of the non-updatable block Is calculated (step S503), and the flow advances to step S506. On the other hand, if there is no non-updatable block having a free area large enough to write the file, the update attribute of the file is “updatable”, and the empty block with the largest number of erasures is obtained (step S). 5 0 2), an empty logical block is obtained from the file management information 3 10 and the block management information 3 2 0 (step S 5 0 4), and an empty block from which the physical block number of the obtained logical block is obtained. And the update attribute is set to “updating impossible” (Step S505).
そして、 ファイル管理情報 3 1 0に新たにファイル名、 開始アドレス、 サイズ 、 更新属性を追加し (ステップ S 5 0 6 ) 、 取得した論理アドレスに対応する物 理ブロックのアドレスにデータを書き込む (ステップ S 5 0 7 )。  Then, a new file name, start address, size, and update attribute are added to the file management information 310 (step S506), and data is written to the physical block address corresponding to the acquired logical address (step S506). S507).
次に、 作成するファイルの更新属性が 「更新可能」 である場合の新規ファイル 作成ノレ一チン 2 3 2の処理について説明する。 第 6図は、 作成するファイルの更 新属性が 「更新可能」 である場合の新規ファイル作成ルーチン 2 3 2の処理手順 を示すフローチヤ一トである。  Next, the processing of the new file creation routine 232 when the update attribute of the file to be created is “updatable” will be described. FIG. 6 is a flowchart showing the processing procedure of the new file creation routine 232 when the update attribute of the file to be created is “updatable”.
同図に示すように、 この新規ファイル作成ルーチン 2 3 2は、 更新可能なファ ィルを作成する場合には、 既存の更新可能ブロック中に、 作成するファイルを書 き込める大きさの空き領域を持つ更新可能プロックがあるかを判定する (ステツ プ S 6 0 1 ) 。 もし、 ファイルを書き込める大きさの空き領域を持つ更新可能ブ ロックがある場合には、 その更新可能ブロックの空き領域のアドレスから、 論理 ァドレス管理情報 3 2 1を用いてデータを書き込む論理ァドレスを計算し (ステ ップ S 6 0 3 ) 、 ステップ S 6 0 6へ進む。 一方、 ファイルを書き込める大きさ の空き領域を持つ更新可能ブロックがない場合には、 ファイルの更新属性が 「更 新可能 J であることから、 消去回数の最も少ない空きブロックを取得し (ステツ プ S 6 0 2 ) 、 ファイル管理情報 3 1 0とブロック管理情報 3 2 0から空いてい る論理ブロックを取得し (ステップ S 6 0 4 ) 、 取得した論理ブロックの物理ブ ロック番号を取得した空きブロックの番号とし、 更新属性を 「更新不可」 とする (ステップ S 6 0 5 ) 。  As shown in the figure, when creating a file that can be updated, the routine for creating a new file 2 32 has a free area large enough to write the file to be created in an existing updatable block. It is determined whether or not there is an updatable block (step S601). If there is an updatable block having a free area large enough to write the file, the logical address to which data is written is calculated from the address of the free area of the updatable block using the logical address management information 3 2 1. Then (step S603), the process proceeds to step S606. On the other hand, if there is no updatable block having a free area large enough to write the file, the update attribute of the file is “updatable J”, and the free block with the least number of erasures is acquired (step S 6 0 2), obtains a free logical block from the file management information 3 10 and the block management information 3 2 0 (step S 6 04), and obtains the physical block number of the obtained logical block. The number is set as an update attribute, and the update attribute is set to “updatable” (step S605).
そして、 'フアイル管理情報 3 1 0に新たにファイル名、 開始ァドレス、 サイズ 、 更新属性を追加し (ステップ S 6 0 6 ) 、 取得した論理アドレスに対応する物 理ブロックのアドレスにデータを書き込む (ステップ S 6 0 7 )。 次に、 第 2図に示したブロックデータ移動ルーチン 2 3 3の処理について説明 する。 第 7図は、 第 2図に示したプロックデータ移動ルーチン 2 3 3の処理手順 を示すフローチヤ一トである。 Then, a new file name, start address, size, and update attribute are added to the file management information 310 (step S606), and the data is written to the physical block address corresponding to the acquired logical address ( Step S607). Next, the processing of the block data movement routine 233 shown in FIG. 2 will be described. FIG. 7 is a flowchart showing a processing procedure of the block data movement routine 233 shown in FIG.
同図に示すように、 このブロックデータ移動ルーチン 2 3 3は、 空きブロック の中で消去回数の最も少ない空きプロックの消去回数が所定値を超えているか、 あるいは、 空きブロックの中で消去回数の最も多い空きブロックの消去回数が所 定値を超えているかを判定し (ステップ S 7 0 1 ) 、 所定 を超えていない場合 には、 何もしないで処理を終了する。  As shown in the figure, the block data movement routine 233 determines whether the number of erasures of the empty block having the smallest number of erasures among the empty blocks exceeds a predetermined value, or the number of erasures within the empty block. It is determined whether the number of erasures of the most vacant block exceeds a predetermined value (step S701), and if it does not exceed the predetermined value, the process is terminated without doing anything.
—方、 所定値を超えている場合には、 さらに、 更新不可ブロック中で、 その更 新不可ブロックの消去回数がある空きブロックの消去回数より少なレ、更新不可ブ ロックがあるかを判定し、 更新不可ブロックがなければ、 何もしないで処理を終 了する。 もし、 更新不可ブロックがあれば、 その更新不可ブロックのデータを消 去回数が多い空きブロックへ移動し (ステップ S 7 0 3 ) 、 その物理ブロックを 消去して空きブロックとする (ステップ S 7 0 4 ) 。  On the other hand, if the value exceeds the predetermined value, it is further determined whether there is a non-updatable block in the non-updatable block, the number of erasures of the non-updatable block being less than the number of erasures of an empty block. If there is no non-updatable block, the process ends without doing anything. If there is a non-updatable block, the data of the non-updatable block is moved to an empty block having a large number of deletions (step S703), and the physical block is erased to become an empty block (step S700). Four ) .
次に、 第 2図に示したブロック再割り当てルーチン 2 3 4の処理について説明 する。 第 8図は、 第 2図に示したブロック再割り当てルーチン 2 3 4の処理手)噴 を示すフローチャートである。 同図に示すように、 このブロック再割り当てルー チン 2 3 4は、 更新不可ブロックを 1つ選択し (ステップ S 8 0 1 ) 、 その消去 回数と、 空きブロックおよび更新可能ブロックの中での消去回数の最多値を比較 する (ステップ S 8 0 2 ) 。  Next, the processing of the block reallocation routine 234 shown in FIG. 2 will be described. FIG. 8 is a flowchart showing the processing of the block reallocation routine 234 shown in FIG. As shown in the figure, the block re-allocation routine 234 selects one non-updatable block (step S801), and determines the number of erasures and the number of erasures in the empty block and the updatable block. The most frequent value is compared (step S802).
もし、 この更新不可ブロックの消去回数が少なレ、場合には、 この更新不可ブ口 ックと、 空きプロックおよび更新可能ブロックの中で消去回数が最多である物理 ブロックのデータを交換する (ステップ S 8 0 3) 。 逆に、 この更新不可ブロッ クの消去回数が、 空きブロックおよぴ更新可能ブロックの消去回数の最多値以上 である場合には、 この更新不可ブロックについては何もしないで次のステップに 進む。  If the number of erasures of the non-updatable block is small, the data of the non-updatable block and the physical block with the largest number of erasures among the empty blocks and the updatable blocks are exchanged (step S803). Conversely, if the number of erasures of the non-updatable block is equal to or more than the maximum value of the number of erasures of the empty block and the updatable block, the process proceeds to the next step without doing anything about the non-updatable block.
そして、 全ての更新不可ブロックについて調査したかを判定し (ステップ S 8 0 4 ) 、 調査していない更新不可ブロックがある場合には、 次の更新不可ブロッ クについて上述の処理を繰り返す。 一方、 全ての更新不可ブロックについて調查 した場合には、 次のステップ、 すなわち、 更新可能ブロックの処理に移る。 Then, it is determined whether all non-updatable blocks have been investigated (step S 8 0 4) If there is a non-updatable block that has not been checked, the above processing is repeated for the next non-updatable block. On the other hand, when all the non-updatable blocks have been prepared, the process proceeds to the next step, that is, the processing of the updatable blocks.
次のステップでは、 更新可能ブロック 1つ選択し (ステップ S 8 0 5 ) 、 この 更新可能プロックの消去回数と空きプロックの消去回数の中での最多値を比較す る (S 8 0 6 ) 。 もし、 この更新可能ブロックの消去回数が少ない場合には、 こ. の更新可能ブロックと、 空きブロックで消去回数が最多である物理ブロックのデ ータを交換する (ステップ S 8 0 7 ) 。 逆に、 この更新可能ブロックの消去回数 1S 空きブロックの消去回数の最多値以上である場合には、 この更新可能プロッ クについては何もしないで次のステップに進む。  In the next step, one updatable block is selected (step S805), and the number of erasures of the updatable block is compared with the maximum value of the number of erasures of the empty block (S806). If the number of erasures of the updatable block is small, the data of the updatable block and the data of the physical block having the largest number of erasures in the empty block are exchanged (step S807). Conversely, if the number of erasures of this updatable block is equal to or greater than the maximum value of the number of erasures of the free block, the process proceeds to the next step without doing anything with this updatable block.
そして、 全ての更新可能ブロックについて調査したかを判定し (ステップ S 8 0 8 ) 、 調査していない更新可能ブロックがある場合には、 次の更新可能ブロッ クについて上述の処理を繰り返す。 一方、 全ての更新可能ブロックについて調查 した場合には、 消去回数の多いブロックから順番に更新不可ブロック、 更新可能 ブロック、 空きブロックが並んだ状態となり、 物理ブロックの再割り当てが完了 する。  Then, it is determined whether or not all updatable blocks have been examined (step S808). If there is an updatable block that has not been examined, the above processing is repeated for the next updatable block. On the other hand, when all the updatable blocks have been adjusted, non-updatable blocks, updatable blocks, and empty blocks are arranged in order from the block with the largest number of erases, and the reallocation of the physical blocks is completed.
このように、 ユーザの要求に基づいて物理ブロックのデータの再割り当てをお こなうことによって、 消去回数の均等化をはかり、 フラッシュメモリ 4 0 0の寿 命を延ばすことができる。  In this way, by reallocating the data of the physical block based on the user's request, the number of erasures can be equalized and the life of the flash memory 400 can be extended.
本実施の形態では、 空きブロックにデータを書き込む場合に、 書き込むデータ が更新可能であれば、 その物理プロックが将来書き換えられる可能性が高いので 消去回数の少ない空きプロックを選択し、 書き込むデータが更新不可であれば、 その物理ブロックは将来も書き換えられないので消去回数の多い空きブロックを 選択することとしたので、 フラッシュメモリ 4 0 0の物理ブロックの消去回数の 均等化をはかり、 もってフラッシュメモリ 4 0 0の寿命を延ばすことができる。 また、 空きブロックの中で、 消去回数の最も少ない空きブロックの消去回数が 所定値を超えているか、 あるいは、 空きブロックの中で消去回数の最も多い空き プロックの消去回数が所定値を超えている場合に、 消去回数が少ない更新不可ブ ロックのデータを消去回数が多レ、空きブロックに移動することによって、 更新さ れなレ、データがフラッシュメモリ 4 0 0の消去回数の少なレ、物理ブロックを占有 し続けることを防ぎ、 物理ブロックの消去回数の均等化をはかり、 もってフラッ シュメモリ 4 0 0の寿命を延ばすことができる。 In this embodiment, when writing data to an empty block, if the data to be written can be updated, the physical block is likely to be rewritten in the future, so an empty block with a small number of erases is selected, and the data to be written is updated. If it is not possible, the physical block will not be rewritten in the future, so an empty block with a large number of erases is selected.Therefore, the number of erases of the physical block in the flash memory 400 is equalized, and the flash memory 4 The life of 00 can be extended. Also, the number of erasures of an empty block with the least number of erasures among the empty blocks exceeds a predetermined value, or an empty block with the largest number of erasures among the empty blocks If the number of block erasures exceeds a predetermined value, the data in the non-updatable block with a small number of erasures is moved to a vacant block with a large number of erasures. It is possible to prevent the physical block from being continuously occupied by the small number of erases of 00, and to equalize the number of erases of the physical block, thereby extending the life of the flash memory 400.
また、 更新不可ブロックは、 消去回数が多い場合でも、 そのデータが他の物理 プロックへ移動されることがないので、 不要なデータの交換に起因する効率低下 を防ぐとともに、 フラッシュメモリ 4 0 0の寿命を延ばすことができる。  In addition, even if the number of erasures is large, the non-updatable block does not transfer the data to another physical block, so that the efficiency is not reduced due to the exchange of unnecessary data and the flash memory 400 Life can be extended.
また、 ユーザの要求に基づいて物理ブロックのデータの再割り当てをおこなう ことによって、 消去回数の均等化をはかり、 フラッシュメモリ 4 0 0の寿命を延 ばすことができる。  In addition, by reallocating the data of the physical block based on the user's request, the number of erasures can be equalized, and the life of the flash memory 400 can be extended.
以上説明したように、 本発明によれば、 フラッシュメモリの消去単位である物 理ブロックの消去回数およびデータの更新属性をブロック管理情報として管理し 、 プロック管理情報として管理される物理プロックの消去回数およびデータの更 新属' I生に基づいてデータを格納する空きブロックを取得することとしたので、 フ ラッシュメモリの物理プロックの消去回数の均等化をはかり、 もってフラッシュ メモリの寿命を延ばすことができるという効果を奏する。 産業上の利用可能性  As described above, according to the present invention, the number of erasures of a physical block, which is an erasing unit of a flash memory, and the update attribute of data are managed as block management information, and the number of erasures of a physical block managed as block management information is managed. In addition, since a free block for storing data is acquired based on the data update genus, the number of erasures of the physical block in the flash memory can be equalized, thereby extending the life of the flash memory. It has the effect of being able to do it. Industrial applicability
以上のように、 本発明に係るフラッシュメモリ管理プログラム、 フラッシュメ モリ管理方法およびフラッシュメモリ管理装置は、 更新不可属性のデータを多く 取り扱うフラッシュメモリファイルに適している。  As described above, the flash memory management program, the flash memory management method, and the flash memory management device according to the present invention are suitable for flash memory files that handle a large amount of data that cannot be updated.

Claims

請 求 の 範 囲 The scope of the claims
1 . フラッシュメモリに記憶したデータを管理するデータ管理プログラムから の要求に応答して前記フラッシュメモリへのデータの書き込みおよび読み出しを おこなうフラッシュメモリ管理プログラムであって、 1. A flash memory management program that writes and reads data to and from the flash memory in response to a request from a data management program that manages data stored in the flash memory,
前記フラッシュメモリの消去単位である物理ブロックの消去回数およびデータ の更新属性をブロック管理情報として管理する管理手順と、  A management procedure for managing, as block management information, the number of erasures of a physical block, which is an erasing unit of the flash memory, and an update attribute of data;
前記管理手順によりプロック管理情報として管理される物理プロックの消去回 数おょぴデータの更新属性に基づいてデータを格納する空きの物理ブロックを取 得する格納ブ口ック取得手順と、  A storage block acquisition procedure for acquiring a free physical block for storing data based on the number of times of erasure of a physical block managed as block management information by the management procedure, based on an update attribute of data;
を実行することを特徴とするフラッシュメモリ管理プログラム。  A flash memory management program, characterized by executing:
2 . 空きの物理プロックの消去回数を監視する空きプロック消去回数監視手順 と、 前記空きプロック消去回数監視手順の監視結果に基づいてデータの更新属性 が更新不可の物理プロックの消去回数と空きの物理プロックの消去回数を比較す る消去回数比較手順と、 前記消去回数比較手順の比較結果に基づ!/ヽて前記データ の更新属性が更新不可の物理プロックに格納されたデータを消去回数が多い空き の物理ブロックへ移動する更新不可データ移動手順と、 をさらに実行することを 特徴とする請求の範囲第 1項に記載のフラッシュメモリ管理プログラム。 2. An empty block erase count monitoring procedure for monitoring the number of empty physical block erases, and a physical block erase count and an empty physical block whose data update attribute cannot be updated based on the monitoring result of the empty block erase count monitoring procedure. Based on the comparison result of the erase count comparison procedure for comparing the block erase count, and the erase count comparison procedure! Moving the data stored in the physical block whose update attribute is not updatable to a free physical block having a large number of erasures. The flash memory management program according to item 1.
3 . 前記空きブロック消去回数監視手順は、 消去回数が最も少ない空きの物理 ブロックの消去回数が所定値を超えているかを監視することを特徴とする請求の 範囲第 2項に記載のフラッシュメモリ管理: 3. The flash memory management according to claim 2, wherein the monitoring step of the number of times of erasing the empty block monitors whether the number of erasures of a free physical block having the least number of erasures exceeds a predetermined value. :
4. 前記空きブロック消去回数監視手順は、 消去回数が最も多い空きの物理ブ ロックの消去回数が所定値を超えているかを監視することを特徴とする請求の範 囲第 2項に記載のフラッシュメモリ管理プログラム。 4. The flash according to claim 2, wherein the step of monitoring the number of erasures of the empty block monitors whether the number of erasures of an empty physical block having the largest number of erasures exceeds a predetermined value. Memory management program.
5 . 前記格納ブロック取得手順は、 データの更新属性が更新不可である場合に は消去回数の多い空きの物理プロックを取得し、 データの更新属性が更新可能で ある場合には記消去回数の少ない空きの物理プロックを取得することを特徴とす る請求の範囲第 1項〜請求の範囲第 4項に記載のフラッシュメモリ管理プロダラ ム。 5. The storage block acquisition procedure acquires a free physical block with a large number of erasures when the data update attribute is not updatable, and a small number of erasures when the data update attribute is updatable. 5. The flash memory management program according to claim 1, wherein a free physical block is acquired.
6 . ユーザの要求に基づいてデータを格納した物理ブロックの再割り当てをお こなうブロック再割り当て手順をさらに含むことを特徴とする請求の範囲第 5項 に記載のフラッシュメモリ管理プログラム。 6. The flash memory management program according to claim 5, further comprising a block reallocation procedure for reallocation of a physical block storing data based on a user's request.
7 . 前記ブロック再割り当て手 は、 消去回数の多レ、物理ブロックから)慎番に データの更新属性が更新不可の物理ブロック、 データの更新属性が更新可能な物 理ブロック、 空きの物理ブロックとして、 物理ブロックの再割り当ておこなうこ とを特徴とする請求の範囲第 6項に記載のフラッシュメモリ管理プログラム。 7. The block re-allocation method is as follows: the physical block whose data update attribute cannot be updated, the physical block whose data update attribute can be updated, and the empty physical block. 7. The flash memory management program according to claim 6, wherein reallocation of a physical block is performed.
8 . フラッシュメモリに記憶したデータを管理するデータ管理プログラムから の要求に応答して前記フラッシュメモリへのデータの書き込みおよび読み出しを おこなうフラッシュメモリ管理方法であって、 8. A flash memory management method for writing and reading data to and from the flash memory in response to a request from a data management program for managing data stored in the flash memory,
前記フラッシュメモリの消去単位である物理ブロックの消去回数およびデータ の更新属性をプロック管理情報として管理する管理工程と、  A management step of managing, as block management information, the number of erasures of a physical block as an erasing unit of the flash memory and an update attribute of data,
前記管理工程によりプロック管理情報として管理される物理プロックの消去回 数おょぴデータの更新属性に基づいてデータを格納する空きの物理プロックを取 得する格納ブロック取得工程と、  A storage block acquisition step of acquiring an empty physical block for storing data based on the update count of the physical block managed as the block management information by the management step,
を含んだことを特敫とするフラッシュメモリ管理方法。  A flash memory management method characterized by including:
9 . 空きの物理プロックの消去回数を監視する空きプロック消去回数監視工程 と、 前記空きプロック消去回数監視工程の監視結果に基づいてデータの更新属性 が更新不可の物理ブロックの消去回数と空きの物理ブロックの消去回数を比較す る消去回数比較工程と、 前記消去回数比較工程の比較結果に基づレヽて前記データ の更新属性が更新不可の物理ブロツクに格納されたデータを消去回数が多い空き の物理プロックへ移動する更新不可データ移動工程と、 をさらに含んだことを特 徴とする請求の範囲第 8項に記載のフラッシュメモリ管理方法。 9. Empty block erase count monitoring step to monitor the erase count of empty physical blocks An erase count comparing step of comparing the erase count of a physical block whose data update attribute cannot be updated with the erase count of an empty physical block based on the monitoring result of the empty block erase count monitoring step; A non-updatable data transfer step of moving data stored in a physical block whose update attribute of the data is not updatable to a free physical block having a large number of erasures based on a comparison result of the steps. The flash memory management method according to claim 8, wherein the flash memory management method is characterized in that:
1 0 . 前記空きプロック消去回数監視工程は、 消去回数が最も少ない空きの物 理ブロックの消去回数が所定値を超えているかを監視することを特徴とする請求 の範囲第 9項に記寧のフラッシュメモリ管理方法。 10. The empty block erase count monitoring step monitors whether the erase count of an empty physical block having the least erase count is greater than a predetermined value. Flash memory management method.
1 1 . 前記空きブロック消去回数監視工程は、 消去回数が最も多い空きの物理 ブロックの消去回数が所定値を超えているかを監視することを特徴とする請求の 範囲第 9項に記載のフラッシュメモリ管理方法。 11. The flash memory according to claim 9, wherein said free block erase count monitoring step monitors whether the erase count of a free physical block having the largest erase count exceeds a predetermined value. Management method.
1 2 . 前記格納ブロック取得工程は、 データの更新属性が更新不可である場合 には消去回数の多い空きの物理プロックを取得し、 データの更新属性が更新可能 である場合には記消去回数の少ない空きの物理ブロックを取得することを特徴と する請求の範囲第 8項〜請求の範囲第 1 1項に記載のフラッシュメモリ管理方法 1 2. In the storage block acquisition step, when the data update attribute is not updatable, an empty physical block with a large number of erases is acquired, and when the data update attribute is updatable, the storage block The flash memory management method according to claim 8, wherein a small free physical block is acquired.
1 3 . ユーザの要求に基づいてデータを格納した物理ブロックの再割り当てを おこなうブロック再割り当て工程をさらに含んだことを特徴とする請求の範囲第 1 2項に記載のフラッシュメモリ管理方法。 13. The flash memory management method according to claim 12, further comprising a block reassignment step of reassigning a physical block storing data based on a user's request.
1 4. 前記ブロック再割り当て工程は、 消去回数の多レ、物理ブロックから順番 に格納されるデータの更新属性が更新不可の物理ブロック、 データの更新属性が 更新可能な物理ブロック、 空きの物理ブロックとして、 物理ブロックの再割り当 ておこなうことを特徴とする請求の範囲第 1 3項に記載のフラッシュメモリ管理 方法。 1 4. In the block reassignment step, the number of times of erasure is large, the physical block whose data stored sequentially from the physical block cannot be updated, and the data 14. The flash memory management method according to claim 13, wherein a physical block is reallocated as an updatable physical block or a free physical block.
1 5 . フラッシュメモリに記憶したデータを管理するデータ管理プログラムか らの要求に応答して前記フラッシュメモリへのデータの書き込みおよぴ読み出し をおこなうフラッシュメモリ管理装置であって、 15. A flash memory management device that writes and reads data to and from the flash memory in response to a request from a data management program that manages data stored in the flash memory,
前記フラッシュメモリの消去単位である物理プロックの消去回数およびデータ の更新属性をプロック管理情報として管理する管理手段と、  Management means for managing, as block management information, the number of erasures of a physical block and the update attribute of data, which are units of erasure of the flash memory,
前記管理手段によりプロック管理情報として管理される物理プロックの消去回 数およびデータの更新属性に基づレヽてデ一タを格納する空きの物理ブロックを取 得する格納ブロック取得手段と、  Storage block acquisition means for acquiring an empty physical block for storing data based on the number of times of erasure of a physical block managed by the management means as block management information and an update attribute of data;
を備えたことを特徴とするフラッシュメモリ管理装置。  A flash memory management device comprising:
1 6 . 空きの物理プロックの消去回数を監視する空きプロック消去回数監視手 段と、 前記空きプロック消去回数監視手段の監視結果に基づいてデータの更新属 性が更新不可の物理プロックの消去回数と空きの物理プロックの消去回数を比較 する消去回数比較手段と、 前記消去回数比較手段の比較結果に基づいて前記デー タの更新属性が更新不可の物理プロックに格納されたデータを消去回数が多い空 きの物理ブロックへ移動する更新不可データ移動手段と、 をさらに備えたことを 特徴とする請求の範豳第 1 5項に記載のフラッシュメモリ管理装置。 1 6. An empty block erase count monitoring means for monitoring the erase count of an empty physical block, and a physical block erase count for which the data update attribute is not updatable based on the monitoring result of the empty block erase count monitoring means. Means for comparing the number of erasures of an empty physical block; and a method for erasing data stored in a physical block in which the update attribute of the data cannot be updated based on the comparison result of the erasure number comparing means. 16. The flash memory management device according to claim 15, further comprising: a non-updatable data moving unit that moves to a physical block when the data is transferred.
1 7 . 前記空きブロック消去回数監視手段は、 消去回数が最も少ない空きの物 理プロックの消去回数が所定値を超えているかを監視することを特徴とする請求 の範囲第 1 6項に記載のフラッシュメモリ管理装置。 17. The empty block erase count monitoring means monitors whether the erase count of an empty physical block having the smallest erase count exceeds a predetermined value. Flash memory management device.
1 8 . 前記空きブロック消去回数監視手段は、 消去回数が最も多レ、空きの物理 ブロックの消去回数が所定値を超えているかを監視することを特徴とする請求の 範囲第 1 6項に記載のフラッシュメモリ管理装置。 1 8. The empty block erase count monitoring means determines that the erase count is the highest 17. The flash memory management device according to claim 16, wherein it is monitored whether the number of block erasures exceeds a predetermined value.
1 9 . 前記格納ブロック取得手段は、 データの更新属性が更新不可である場合 には消去回数の多い空きの物理プロックを取得し、 データの更新属性が更新可能 である場合には記消去回数の少ない空きの物理プロックを取得することを特徴と する請求の範囲第 1 5項〜請求の範囲第 1 8項に記載のフラッシュメモリ管理装 The storage block obtaining means obtains a free physical block having a large number of erasures when the data update attribute is not updatable, and obtains the erase block count when the data update attribute is updatable. The flash memory management device according to claim 15, wherein a physical block having a small amount of free space is acquired.
2 0 . ユーザの要求に基づいてデータを格納した物理ブロックの再割り当てを おこなうブロック再割り当て手段をさらに備えたことを特徴とする請求の範囲第 1 9項に記載のフラッシュメモリ管理装置。 20. The flash memory management device according to claim 19, further comprising a block reallocation unit that reallocates a physical block storing data based on a user's request.
2 1 . 前記プロック再割り当て手段は、 消去回数の多い物理プロックから順番 に格納されるデータの更新属性が更新不可の物理ブロック、 データの更新属性が 更新可能な物理ブロック、 空きの物理ブロックとして、 物理ブロックの再割り当 ておこなうことを特徴とする請求の範囲第 2 0項に記載のフラッシュメモリ管理 21. The block re-assignment means includes a physical block whose data update attribute is not updateable, a physical block whose data update attribute can be updated, and a free physical block, which are stored in order from the physical block with the largest number of erases. 20. The flash memory management according to claim 20, wherein reallocation of physical blocks is performed.
PCT/JP2002/006675 2002-07-02 2002-07-02 Flash memory management program, flash memory management method, and flash memory management apparatus WO2004006102A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/006675 WO2004006102A1 (en) 2002-07-02 2002-07-02 Flash memory management program, flash memory management method, and flash memory management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/006675 WO2004006102A1 (en) 2002-07-02 2002-07-02 Flash memory management program, flash memory management method, and flash memory management apparatus

Publications (1)

Publication Number Publication Date
WO2004006102A1 true WO2004006102A1 (en) 2004-01-15

Family

ID=30022606

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/006675 WO2004006102A1 (en) 2002-07-02 2002-07-02 Flash memory management program, flash memory management method, and flash memory management apparatus

Country Status (1)

Country Link
WO (1) WO2004006102A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150257A (en) * 2013-02-28 2013-06-12 天脉聚源(北京)传媒科技有限公司 Memory management method and memory management device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274219A (en) * 1992-03-27 1993-10-22 Alps Electric Co Ltd Storage device
JPH0816482A (en) * 1994-06-29 1996-01-19 Hitachi Ltd Storage device using flash memory, and its storage control method
JP2000112818A (en) * 1999-09-03 2000-04-21 Matsushita Graphic Communication Systems Inc Device and method for controlling flash memory
JP2002032256A (en) * 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd Terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274219A (en) * 1992-03-27 1993-10-22 Alps Electric Co Ltd Storage device
JPH0816482A (en) * 1994-06-29 1996-01-19 Hitachi Ltd Storage device using flash memory, and its storage control method
JP2000112818A (en) * 1999-09-03 2000-04-21 Matsushita Graphic Communication Systems Inc Device and method for controlling flash memory
JP2002032256A (en) * 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd Terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150257A (en) * 2013-02-28 2013-06-12 天脉聚源(北京)传媒科技有限公司 Memory management method and memory management device

Similar Documents

Publication Publication Date Title
CN101154190B (en) Mapping information managing apparatus and method
JP4452261B2 (en) Storage system logical volume management method, logical volume management program, and storage system
JP4356686B2 (en) Memory device and memory control method
KR100823171B1 (en) Computer system having a partitioned flash translation layer and flash translation layer partition method thereof
KR101038167B1 (en) Information processing device including memory management device managing access from processor to memory and memory management method
US8738851B2 (en) Device and memory system for swappable memory
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
KR100849221B1 (en) Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory
EP1729218A1 (en) Nonvolatile storage system
JP4987997B2 (en) Memory system
JP2005242897A (en) Flash disk drive
JP2008508596A (en) System, method, computer readable medium, and apparatus for memory management using NVRAM
US20140181378A1 (en) Control device, control method, and program
JP2013222435A (en) Semiconductor storage device and method of controlling the same
JP2008009527A (en) Memory system
JPWO2005008499A1 (en) Data area management method in information recording medium, and information processing apparatus using data area management method
JP2009205689A (en) Flash disk device
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
JP4829202B2 (en) Storage device and memory control method
JP5057887B2 (en) Data update device, data update method, and data update program
JP2010237907A (en) Storage device and recording method
JP2005115561A (en) Flash rom controller
JP4311312B2 (en) Time series data management method and program
JP2009259145A (en) Memory controller, flash memory system provided with memory controller, and method for controlling flash memory
WO2004006102A1 (en) Flash memory management program, flash memory management method, and flash memory management apparatus

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP