JPH11143764A - Flash type memory, its management device, storage device and computer system - Google Patents

Flash type memory, its management device, storage device and computer system

Info

Publication number
JPH11143764A
JPH11143764A JP9317612A JP31761297A JPH11143764A JP H11143764 A JPH11143764 A JP H11143764A JP 9317612 A JP9317612 A JP 9317612A JP 31761297 A JP31761297 A JP 31761297A JP H11143764 A JPH11143764 A JP H11143764A
Authority
JP
Japan
Prior art keywords
block
flash memory
area
data
execution program
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.)
Granted
Application number
JP9317612A
Other languages
Japanese (ja)
Other versions
JP3503448B2 (en
Inventor
Kazuya Tanaka
和也 田中
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan 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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP31761297A priority Critical patent/JP3503448B2/en
Publication of JPH11143764A publication Critical patent/JPH11143764A/en
Application granted granted Critical
Publication of JP3503448B2 publication Critical patent/JP3503448B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To execute program on an extension storage device without loading an execution program to a main storage device by providing a block of a flash type memory with a header area which stores management information of the block and a storage area which stores a data file that is divided into a block unit. SOLUTION: This flash type memory is applied to a computer system which includes a processor 10, an extension or auxiliary storage device which includes flash memory 12 and its controller 14 and a RAM (main storage device) 16. A management unit of the memory 12 is one block that is a minimum erase (erasure) unit in order to manage an execution program area and a data area. The storage area of each block stores the execution program area or the data area, a header area which has information that manages the block and a data file which is divided into a block unit.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、フラッシュ型メ
モリ,その管理装置,記憶装置,コンピュータシステム
にかかり、更に具体的には、フラッシュ型メモリの効率
的な管理手法の改良に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a flash memory, a management device thereof, a storage device, and a computer system. More specifically, the present invention relates to an improvement in an efficient flash memory management method.

【0002】[0002]

【背景技術】一般にフラッシュタイプのフロ−ティング
ゲ−トトランジスタを含む電気的に消去可能なプログラ
マブル読出専用メモリ(EEPROM)は、現在市場で
容易に入手できる。これらのいわゆるフラッシュメモリ
は、機能・性能面でEPROMメモリと類似した不揮発
メモリであり、メモリ内に分割されているブロックを消
去する回路内プログラマブル動作を可能にするという機
能を更に有する。フラッシュメモリでは、以前に書き込
まれたメモリの領域を前もって消去することで、その書
き換えが行われる。
2. Description of the Related Art Generally, electrically erasable programmable read only memories (EEPROMs) including flash type floating gate transistors are readily available on the market today. These so-called flash memories are non-volatile memories similar in function and performance to EPROM memories, and further have a function of enabling in-circuit programmable operation for erasing blocks divided in the memory. In a flash memory, rewriting is performed by previously erasing a previously written area of the memory.

【0003】典型的なコンピュ−タシステムでは、オペ
レ−ティングシステム(以下、単に「OS」という)の
プログラムがそのシステムのデ−タ記憶装置のデ−タ管
理を担う。OSプログラムとの互換性を達成するために
必要かつ十分であるデ−タ記憶装置のアトリビュ−ト
(属性)は、デ−タ記憶装置のいかなる位置からもデ−
タを読み出すことができ、これにデ−タを書き込むこと
ができることである。しかし、フラッシュメモリの場
合、デ−タが既に書き込まれている領域には、その領域
のデ−タを消去しなければデ−タを書き込むことはでき
ない。このため、フラッシュメモリは、典型的な既存の
OSプログラムとは互換性がない。
In a typical computer system, a program of an operating system (hereinafter simply referred to as "OS") manages data of a data storage device of the system. The attributes of the data storage device that are necessary and sufficient to achieve compatibility with the OS program are available from any location on the data storage device.
Data can be read and data can be written to it. However, in the case of a flash memory, data cannot be written to an area to which data has already been written unless data in that area is erased. For this reason, flash memory is not compatible with typical existing OS programs.

【0004】このような点に着目し、既存のOSプログ
ラムによってフラッシュメモリを管理することを可能に
するソフトウエアが先行技術において提案されている。
この先行技術のプログラムでは、フラッシュメモリを
「書込み1回読出し複数回」の装置として動作させる
か、「書込み複数回読出し複数回」の装置として動作さ
せている。前者は、以前に書き込まれているメモリ場所
を再利用することはできない装置であり、補助記憶装置
や拡張記憶装置として使用できる。後者は、以前に書き
込まれているメモリ領域を再利用可能とし、その領域中
にはフラッシュメモリの書換回数を少なくするような制
御を持つ補助記憶装置(半導体ファイル記憶装置)があ
る。
[0004] Focusing on such a point, software that enables a flash memory to be managed by an existing OS program has been proposed in the prior art.
In this prior art program, the flash memory is operated as a "write once read multiple times" device, or is operated as a "write multiple times read multiple times" device. The former are devices that cannot reuse previously written memory locations and can be used as auxiliary storage or extended storage. In the latter, an auxiliary storage device (semiconductor file storage device) having a control for making a previously written memory area reusable and reducing the number of times of rewriting of the flash memory is included in the area.

【0005】[0005]

【発明が解決しようとする課題】しかしながら、以上の
ような背景技術には、次のような不都合がある。 (1)上述のような先行技術に見られる装置によれば、フ
ラッシュメモリを使用した拡張記憶装置上では書換回数
を少なくなるような制御構造を持たずに実行プログラム
を動作させている。つまり、フラッシュメモリに対して
新たにデ−タの書換えを行うときは、全ブロックを一括
して消去し、その後、デ−タを記憶させる必要がある。
また、マルチタスク,マルチスレッド,マルチプロセス
に代表される並列実行プログラムやデ−タの共有あるい
は占有という管理を行う場合において、一般のMMU
(メモリ管理ユニット)を駆使してフラッシュメモリを
ブロック(ペ−ジ)毎に管理する方式では、書換回数の
管理と書換回数の低減を図ることは困難である。
However, the above background art has the following disadvantages. (1) According to the apparatus described in the prior art described above, an execution program is operated on an extended storage device using a flash memory without having a control structure for reducing the number of rewrites. That is, when newly rewriting data in the flash memory, it is necessary to erase all blocks at once and then store the data.
In the case where management is performed such as sharing or occupation of parallel execution programs and data typified by multitask, multithread, and multiprocess, a general MMU is used.
In a system in which a flash memory is managed for each block (page) by making full use of a (memory management unit), it is difficult to manage the number of rewrites and reduce the number of rewrites.

【0006】(2)フラッシュメモリを使用した拡張記憶
装置上でプログラムの実行を可能とする装置にはないも
のの、フラッシュメモリの書換回数を少なくするような
制御構造を持つ装置として補助記憶装置(半導体ファイ
ル記憶装置)がある。補助記憶装置において書換回数を
少なくするためにその情報(書換回数テ−ブル)を異な
るメモリ上に記憶する方式である。しかし、実行プログ
ラムを主記憶装置にロ−ドすることなく、フラッシュメ
モリ上で動作させるプログラムにおいて、単純に同一フ
ラッシュメモリ上に記憶する方式では、ブロック間にま
たがるデ−タを無駄なく完全に連続的な配置を可能にす
ることは困難である。
(2) An auxiliary storage device (semiconductor device) is a device having a control structure for reducing the number of times of rewriting of the flash memory, although there is no device capable of executing a program on an extended storage device using a flash memory. File storage device). In this method, information (rewrite number table) is stored in a different memory in order to reduce the number of rewrites in the auxiliary storage device. However, in a program that operates on a flash memory without loading an execution program into a main storage device, the method of simply storing the same program on the same flash memory completely and continuously stores data across blocks. It is difficult to achieve a realistic arrangement.

【0007】この発明は、以上の点に着目したもので、
その目的は、フラッシュメモリを使用した拡張記憶装置
上でフラッシュメモリの書換回数を少なくするような制
御構造を持つ場合に、主記憶装置に実行プログラムをロ
−ドすることなく拡張記憶装置上でプログラムの実行を
可能とすることである。他の目的は、同一のフラッシュ
メモリを使用し、補助記憶装置として書換回数を少なく
する制御構造を持ちながら、マルチプロセッシング,マ
ルチスレッド,マルチタスクといった高度なプログラム
の実行環境においても、メモリ管理装置によって、安全
に実行プログラムのモジュ−ルやデ−タファイルの管理
の実現を可能とすることである。更に他の目的は、同一
フラッシュメモリ上で、拡張記憶装置および補助記憶装
置の混在を可能とするファイル管理技術を提供すること
である。
The present invention focuses on the above points,
An object of the present invention is to control a program on an extended storage device without loading an execution program in a main storage device when a control structure for reducing the number of times of rewriting of the flash memory on the extended storage device using the flash memory is provided. Is to be executed. Another object is to use the same flash memory and have a control structure to reduce the number of rewrites as an auxiliary storage device, and also to use the memory management device in an advanced program execution environment such as multi-processing, multi-thread, and multi-task. Another object of the present invention is to make it possible to safely manage the modules and data files of an execution program. Still another object is to provide a file management technique that enables an extended storage device and an auxiliary storage device to coexist on the same flash memory.

【0008】[0008]

【課題を解決するための手段】本発明のフラッシュ型メ
モリは、ブロック単位で記憶内容を消去できるフラッシ
ュ型メモリのブロックに、そのブロックの管理情報を記
憶するヘッダ領域と、ブロック単位に分割されたデータ
ファイルを格納する記憶領域とを備えたことを特徴とす
る。あるいは、ブロック単位で記憶内容を消去できるフ
ラッシュ型メモリが第1,第2,及び第3のブロックを
含んでおり、第1のブロックは、そのブロックの管理情
報を記憶するヘッダ領域と、ブロック単位に分割された
デ−タファイルを格納する記憶領域とを備えており、第
2のブロックは、ブロック単位に分割された実行プログ
ラムファイルを格納する記憶領域を備えており、第3の
ブロックは、実行プログラムファイルが格納されたブロ
ックの管理情報を記憶するヘッダ領域と、ブロック単位
に分割された実行プログラムファイルを格納する記憶領
域とを備えていることを特徴とする。
A flash memory according to the present invention is divided into a block of a flash memory in which storage contents can be erased in block units, a header area for storing management information of the block, and a block unit. And a storage area for storing a data file. Alternatively, a flash memory capable of erasing stored contents in block units includes first, second, and third blocks, and a first block includes a header area for storing management information of the block, and a block unit. The second block has a storage area for storing an execution program file divided in block units, and the third block has an execution area for storing an execution program file divided in block units. It is characterized by comprising a header area for storing management information of a block in which a program file is stored, and a storage area for storing an execution program file divided in block units.

【0009】主要な形態の一つによれば、前記ブロック
の管理情報として、(1)データファイル又は実行プログ
ラムファイルのいずれがそのブロックに格納されている
かを示す情報,(2)そのブロックに対する消去回数,(3)
ブロックを消去した順番を示すイレースシーケンスナン
バ,(4)ブロックを消去した時刻情報,(5)そのブロック
が有効/遷移中/無効/初期化のいずれの状態にあるか
を示す情報,の少なくとも一つが含まれる。
According to one of the main modes, the management information of the block includes (1) information indicating whether a data file or an execution program file is stored in the block, and (2) erasure for the block. Count, (3)
At least one of an erase sequence number indicating the order in which blocks were erased, (4) time information of block erasure, and (5) information indicating whether the block is in a valid / transition / invalid / initialization state. One is included.

【0010】本発明のメモリ管理装置は、ブロック単位
に分割されたデ−タファイルを各ブロックに割り当てる
とともに、各ブロックの管理情報を該当するブロックに
それぞれ格納する手段を備えたことを特徴とする。ある
いは、隣接する複数の前記第2及び第3のブロックに対
して実行プログラムファイルの割り当てるとともに、そ
れら実行プログラムファイルが割り当てられたブロック
の管理情報を前記第3のブロックに格納する手段を備え
たことを特徴とする。
The memory management apparatus according to the present invention is characterized in that a data file divided in block units is assigned to each block, and means for storing management information of each block in the corresponding block is provided. Alternatively, there is provided means for allocating an execution program file to a plurality of adjacent second and third blocks and storing management information of a block to which the execution program file is allocated in the third block. It is characterized by.

【0011】主要な形態の一つによれば、ブロックをイ
レ−スするための候補ブロックを選択する際に、(1)消
去回数が同じであれば、前記イレースシーケンスナンバ
に基づいて消去した順番に優先的にブロックを選択する
手段,(2)消去回数が同じであれば、前記時刻情報に基
づいて消去したブロックの時刻が古いブロックを優先的
に選択する手段,の少なくとも一つを備えたことを特徴
とする。
According to one of the main modes, when selecting a candidate block for erasing a block, (1) if the number of erasures is the same, the order of erasure based on the erase sequence number Means for preferentially selecting a block, and (2) means for preferentially selecting a block having an earlier erased block based on the time information if the number of erases is the same. It is characterized by the following.

【0012】他の形態によれば、(1)各ブロックに格納
されているデータの書換回数を低減する手段,(2)シス
テムの復旧やデ−タの復元を行なう手段,の少なくとも
一つを備えたことを特徴とする。
According to another aspect, at least one of (1) means for reducing the number of rewrites of data stored in each block, and (2) means for restoring the system and restoring data is provided. It is characterized by having.

【0013】本発明の記憶装置は、前記いずれかのフラ
ッシュ型メモリと、前記いずれかの管理装置とを備えた
ことを特徴とする。本発明のコンピュータシステムは、
前記記憶装置を備えており、前記実行プログラムファイ
ルをフラッシュメモリ上で動作させることを特徴とす
る。
[0013] A storage device according to the present invention includes any one of the flash memories and any one of the management devices. The computer system of the present invention
The storage device is provided, and the execution program file is operated on a flash memory.

【0014】この発明の前記及び他の目的,特徴,利点
は、以下の詳細な説明及び添付図面から明瞭になろう。
The above and other objects, features, and advantages of the present invention will be apparent from the following detailed description and the accompanying drawings.

【0015】[0015]

【発明の実施の形態】以下、本発明の実施の形態につい
て詳細に説明する。本形態は、例えば図1に示すよう
に、プロセッサ10,フラッシュメモリ12およびその
制御装置14を含む拡張もしくは補助の記憶装置,RA
M(主記憶装置)16を含むコンピュ−タシステムに適
用される。このようなシステムで、同一フラッシュメモ
リを使用して、実行プログラムモジュ−ルとデ−タファ
イルのデ−タを共存させるとともに、デ−タの書換回数
をできる限り低減するデ−タの格納方法と管理・制御の
ための装置を得ようとするものである。
Embodiments of the present invention will be described below in detail. In this embodiment, as shown in FIG. 1, for example, an extended or auxiliary storage device including a processor 10, a flash memory 12, and a control device 14,
The present invention is applied to a computer system including an M (main storage) 16. In such a system, using the same flash memory, the data of the execution program module and the data of the data file coexist, and a data storage method for reducing the number of times of rewriting data as much as possible. It is intended to obtain a device for management and control.

【0016】まず、実行プログラム領域とデ−タ領域を
管理するため、フラッシュメモリ12の管理単位をその
最小イレ−ス(消去)単位である1ブロックとする。そ
して、この最小単位であるブロック内に、実行プログラ
ム領域とデ−タ領域の混在を認めないこととする。各ブ
ロックには、実行プログラム領域もしくはデ−タ領域
と、そのブロックを管理する情報を持つヘッダ領域とが
存在する。
First, in order to manage the execution program area and the data area, the management unit of the flash memory 12 is one block which is the minimum erase (erase) unit. In this block, which is the minimum unit, no mixture of the execution program area and the data area is allowed. Each block has an execution program area or data area and a header area having information for managing the block.

【0017】ここで、デ−タ領域に割り当てようとする
ブロックには、そのブロックのヘッダ領域内にデ−タの
属性を持つことを宣言する。同様に、実行プログラム領
域に割り当てようとするブロックには、そのブロックの
ヘッダ領域内に実行プログラムの属性を持つことを宣言
する。ただし、この実行プログラム領域については、1
つのブロックに1つのヘッダ領域が必ずしも必要という
ことではない。すなわち、連鎖する複数ブロックを連続
的に実行プログラム領域として確保したい場合は、確保
ブロック数をヘッダ領域内で宣言する。これによって、
宣言した連鎖する複数ブロックは、ヘッダ情報を持たな
くてもよい。つまり、実行プログラムのメモリ配置とし
て、1つのヘッダ領域により複数の連続するブロックに
実行プログラム領域を確保する。一方、デ−タ領域は1
つのブロック内にヘッダ領域と混在することになる。こ
のデ−タ領域内には、該当するブロックに関する情報を
付加する。
Here, the block to be allocated to the data area is declared to have the data attribute in the header area of the block. Similarly, a block to be allocated to the execution program area is declared to have the attribute of the execution program in the header area of the block. However, regarding this execution program area, 1
One header area is not necessarily required for one block. That is, when it is desired to continuously secure a plurality of linked blocks as an execution program area, the number of blocks to be allocated is declared in the header area. by this,
Declared chained blocks need not have header information. That is, as the memory arrangement of the execution program, the execution program area is secured in a plurality of continuous blocks by one header area. On the other hand, the data area is 1
One block is mixed with the header area. In the data area, information on the corresponding block is added.

【0018】図2には、本形態におけるソフトウエアの
基本構造の一例が示されている。同図のように、OS2
0やアプリケ−ションソフト22とのソケットインタ−
フェ−スとして、いわゆるドライバ層24に相当する部
分にフラッシュ管理マネ−ジャ26を設ける。このフラ
ッシュ管理マネ−ジャ26は、本形態のシステム用ドラ
イバと考えることができる。このフラッシュ管理マネ−
ジャ26によって、ブロック情報の管理やデ−タのリ−
ド/ライトの制御が行なわれる。
FIG. 2 shows an example of the basic structure of software in this embodiment. As shown in FIG.
0 and socket interface with application software 22
As a face, a flash management manager 26 is provided in a portion corresponding to the so-called driver layer 24. The flash management manager 26 can be considered as a system driver of the present embodiment. This flash management manager
The management of block information and the reading of data
De / write control is performed.

【0019】例えば、図3[A]に示すように、ブロッ
ク消去がiバイト単位で可能で、かつブロック数がn+
1(16進数)個あるフラッシュメモリが1つあるとす
る。これら各ブロックを、物理ブロックと呼ぶことにす
る。そして、各物理ブロックに、アドレスの低い方から
高い方へ順に物理ブロックナンバを「0」から「n」ま
で割り振る。図示の例では、図の上方がアドレスが低
く、物理ブロック0,物理ブロック1,物理ブロック
2,……,物理ブロックnとなっている。
For example, as shown in FIG. 3A, block erasing is possible in units of i bytes and the number of blocks is n +
It is assumed that there is one (hexadecimal) number of flash memories. Each of these blocks will be referred to as a physical block. Then, a physical block number is assigned to each physical block from "0" to "n" in ascending order of address. In the illustrated example, the upper part of the figure has a lower address, and is a physical block 0, a physical block 1, a physical block 2, ..., a physical block n.

【0020】ここで、それぞれの物理ブロックを管理し
ている情報のヘッダ領域としてjバイト分を確保したと
すると、各物理ブロックに割り当てられる実行プログラ
ム領域あるいはデ−タファイル領域のサイズは、i−j
バイトとなる。そして、同一ブロックの記憶領域には、
実行プログラム領域とデ−タファイル領域の混在は認め
ないことにする。この様子を示すと、図3[B]のよう
になる。例えば、最上位の物理ブロック0には、jバイ
トのヘッダ領域30Aと、i−jバイトの記憶領域30
Bが存在する。次の物理ブロック1には、jバイトのヘ
ッダ領域31Aと、i−jバイトの記憶領域31Bが存
在する。以下の物理ブロックについても同様である。
Here, if it is assumed that j bytes are secured as a header area of information for managing each physical block, the size of the execution program area or data file area allocated to each physical block is ij
It becomes bytes. And, in the storage area of the same block,
It is not allowed to mix execution program areas and data file areas. FIG. 3B shows this state. For example, the top physical block 0 has a header area 30A of j bytes and a storage area 30 of ij bytes.
B exists. In the next physical block 1, a j-byte header area 31A and an ij-byte storage area 31B exist. The same applies to the following physical blocks.

【0021】次に、実行プログラム領域の確保例につい
て、図4を参照しながら説明する。図4[A]には、連
続する8個の物理ブロック0〜7を実行プログラム領域
として割り当て、それ以外の物理ブロック8〜nをデ−
タファイル領域として割り当てた例である。上述したよ
うに、複数の連続する物理ブロックに確保された実行プ
ログラム領域は、1つのヘッダ領域によって管理され
る。一方、デ−タファイル領域は、例え複数の連続する
物理ブロックに確保されたとしても、各ブロック毎にヘ
ッダ領域によって管理される。従って、図4[A]の例
では、実行プログラム領域32の物理ブロックヘッダ3
2Aは物理ブロック0にのみ存在し、物理ブロック1〜
7には存在しない。そして、後述するように、物理ブロ
ック1〜7の管理情報等は、物理ブロック0のヘッダ領
域32Aにまとめられることになる。一方、物理ブロッ
ク8〜nにはデ−タファイル領域38B〜3nBがそれ
ぞれ確保されるが、各ブロックにそれぞれヘッダ領域3
8A〜3nAが存在し、これらによってブロック毎に管
理される。
Next, an example of securing an execution program area will be described with reference to FIG. In FIG. 4A, eight consecutive physical blocks 0 to 7 are allocated as an execution program area, and the other physical blocks 8 to n are data.
This is an example of allocation as a data file area. As described above, the execution program area secured in a plurality of continuous physical blocks is managed by one header area. On the other hand, the data file area is managed by the header area for each block even if it is secured in a plurality of continuous physical blocks. Therefore, in the example of FIG. 4A, the physical block header 3
2A exists only in physical block 0, and physical blocks 1 to
7 does not exist. Then, as described later, the management information and the like of the physical blocks 1 to 7 are collected in the header area 32A of the physical block 0. On the other hand, the data file areas 38B to 3nB are secured in the physical blocks 8 to n, respectively.
8A to 3nA, which are managed for each block.

【0022】次に、図4[B]の例は、物理ブロック0
をデ−タファイル領域として割り当て、物理ブロック1
〜Aを実行プログラム領域として割り当て、それ以後は
デ−タファイル領域として割り当てた例である。図4
[C]の例は、物理ブロック0〜n−9をデ−タファイ
ル領域に、物理ブロックn−8〜n−3を実行プログラ
ム領域に、それ以後をデ−タファイル領域にそれぞれ割
り当てた例である。このように、連続して確保された実
行プログラム領域は一つのヘッダ領域によって管理され
る。そして、物理ブロック数の制限や固定したアドレス
配置にすることはない。しかし、デ−タファイル領域
は、連続して確保されたとしても、各ブロック毎に管理
される。
Next, the example of FIG.
Is assigned as a data file area, and physical block 1
.. A are assigned as execution program areas, and thereafter are assigned as data file areas. FIG.
In the example of [C], physical blocks 0 to n-9 are allocated to a data file area, physical blocks n-8 to n-3 are allocated to an execution program area, and the subsequent blocks are allocated to a data file area. . In this manner, the continuously secured execution program area is managed by one header area. There is no restriction on the number of physical blocks or fixed address arrangement. However, even if the data file area is continuously secured, it is managed for each block.

【0023】図5に示す例では、実行プログラム領域が
分割して配置されている。まず、図5[A]の例では、
物理ブロック0〜7に実行プログラム領域(1)が割り当
てられており、物理ブロック8にはデ−タファイル領域
が割り当てられている。そして、物理ブロック9〜F−
1に実行プログラム(2)が割り当てられており、物理ブ
ロックF以後はデ−タファイル領域用に確保されてい
る。この例でも、連続する実行プログラム領域は、一つ
のヘッダ領域で管理されている。
In the example shown in FIG. 5, the execution program area is divided and arranged. First, in the example of FIG.
The execution program area (1) is allocated to the physical blocks 0 to 7, and the data file area is allocated to the physical block 8. Then, physical blocks 9 to F-
The execution program (2) is allocated to the data block 1, and the data after the physical block F are reserved for the data file area. Also in this example, a continuous execution program area is managed by one header area.

【0024】図5[B]では、物理ブロック0がデ−タ
ファイル領域用に割り当てられており、物理ブロック1
〜8が実行プログラム領域(1)に割り当てられている。
そして、物理ブロック9〜n−9までがデ−タファイル
領域用に割り当てられており、それ以後最後までが実行
プログラム領域(2)として割り当てられている。図5
[C]では、物理ブロック0,1がデ−タファイル領域
として割り当てられており、物理ブロック2〜4が実行
プログラム領域(1)に割り当てられている。そして、そ
の後の物理ブロック5〜n−9がデ−タファイル領域と
して割り当てられており、物理ブロックn−8〜n−1
が実行プログラム領域(2)として割り当てられており、
最後の物理ブロックnがデ−タファイル領域に割り当て
られている。これら図5では、実行プログラム領域とし
て2つの領域(1),(2)が指定されている例を示してい
る。しかし、本形態では、実行プログラム領域を更に複
数の領域で配置することが可能である。
In FIG. 5B, physical block 0 is allocated for the data file area, and physical block 1 is allocated.
8 are assigned to the execution program area (1).
The physical blocks 9 to n-9 are allocated for the data file area, and the remaining blocks are allocated as the execution program area (2). FIG.
In [C], physical blocks 0 and 1 are allocated as data file areas, and physical blocks 2 to 4 are allocated to an execution program area (1). The subsequent physical blocks 5 to n-9 are allocated as data file areas, and the physical blocks n-8 to n-1 are allocated.
Is allocated as the execution program area (2),
The last physical block n is allocated to the data file area. FIG. 5 shows an example in which two areas (1) and (2) are designated as execution program areas. However, in the present embodiment, the execution program area can be further arranged in a plurality of areas.

【0025】次に、物理ブロックのヘッダ領域について
説明する。物理ブロックヘッダには、実行プログラム領
域用とデ−タファイル領域用とがある。この2種類の領
域を判断するために、ヘッダは共通部分の構造を持つこ
とが望ましい。そこで、物理ブロックヘッダの共通する
部分の構造を、例えば次のように割り当てる。
Next, the header area of the physical block will be described. The physical block header has an execution program area and a data file area. In order to determine these two types of areas, it is desirable that the header has a common part structure. Therefore, the structure of the common part of the physical block header is assigned, for example, as follows.

【0026】(1)状態(有効/無効/遷移中/初期化完
了)を示すフラグ (2)実行プログラム領域/デ−タファイル領域を示すマ
−カ−フラグ (3)連続予約ブロックの領域数 (4)ブロックの消去回数 (5)ブロックの消去した順番を示す番号(イレ−スシ−
ケンスナンバ) (6)ブロックを初期化した時刻 (7)ブロック領域名
(1) Flag indicating status (valid / invalid / transitioning / initialization completed) (2) Marker flag indicating execution program area / data file area (3) Number of consecutive reserved block areas ( 4) Number of block erases (5) Number indicating the order of block erase (erase
(6) Block initialization time (7) Block area name

【0027】これらのうち、まず(1)のフラグについて
説明する。フラッシュ管理マネ−ジャ26(図2参照)
は、各物理ブロックヘッダの内容を読み、フラッシュメ
モリがどのように管理されているかを把握する。フラッ
シュメモリのメモリセル内のビットデ−タは、論理値の
「1」→「0」への変化の処理時間は比較的短いが、
「0」→「1」への変化は、一度ブロックイレ−ス又は
イレ−スをしなければならず、長時間を要する。つま
り、1ビットのデ−タの書換えを行なうために、そのブ
ロック内のデ−タを一時待避させるとともに、ブロック
イレ−ス後に書き戻す必要があり、処理時間としては大
きい。
First, the flag (1) will be described. Flash management manager 26 (see FIG. 2)
Reads the contents of each physical block header and grasps how the flash memory is managed. Bit data in a memory cell of a flash memory has a relatively short processing time for changing a logical value from "1" to "0".
The change from "0" to "1" requires a block erase or erase once, which takes a long time. That is, in order to rewrite 1-bit data, it is necessary to temporarily save the data in the block and write it back after the block erase, which is a long processing time.

【0028】そこで、実際には、状態を示すフラグを利
用して物理ブロックの状態を管理することになる。すな
わち、上述した書換えに伴うオ−バ−ヘッドを軽減すた
め、物理ブロックヘッダ内にその物理ブロックが有効な
状態か,それとも無効な状態か,初期化が完了した状態
か,有効な状態から無効な状態への遷移状態か,といっ
た状態をそれぞれの物理ブロック毎に認識し、デ−タの
書込み,デ−タの無効化,物理ブロックのイレ−ス,物
理ブロックの初期化などの操作を行なう。
Therefore, in practice, the state of the physical block is managed using the flag indicating the state. That is, in order to reduce the overhead associated with the above-described rewriting, the physical block header contains a valid state, an invalid state, an initialized state, or a valid state in the physical block header. State is recognized for each physical block, and operations such as writing data, invalidating data, erasing a physical block, and initializing a physical block are performed. .

【0029】次に、(2)のマ−カ−フラグは、該当する
物理ブロックがデ−タファイル領域に割り当てられた
か、それとも、実行プログラム領域に割り当てられたか
を示すフラグである。これによって、実行プログラム領
域に指定されたとき、(3)の連続予約ブロック数に実行
プログラムとして後に続くブロックの数を指定する。し
かし、デ−タファイル領域に指定されているときは、連
続予約ブロック数を0とする。
Next, the marker flag (2) is a flag indicating whether the corresponding physical block has been allocated to the data file area or the execution program area. Thus, when the execution program area is designated, the number of blocks following the execution program is designated to the number of consecutive reserved blocks in (3). However, when it is designated in the data file area, the number of consecutive reserved blocks is set to zero.

【0030】次に、(4)のブロックの消去回数には、各
ブロックを消去(ブロックイレ−ス)した回数を記録す
る。ブロックイレ−スするときは、記録されている以前
の消去回数を一時的に保持し、ブロックイレ−ス終了
後、一時的に保持している以前の消去回数に1インクリ
メントしてデ−タを格納する。
Next, the number of erasures (block erase) of each block is recorded as the number of block erasures in (4). When performing a block erase, the previously recorded erase count is temporarily held, and after the block erase is completed, the temporarily erased count is incremented by 1 and data is written. Store.

【0031】次に、(5)のブロックの消去した順番を示
す番号は、同じときにどの順番に物理ブロックのイレ−
スを行なったかを判別するためのものである。ある物理
ブロックをブロックイレ−スし、その後、他の物理ブロ
ックのブロック消去回数が同じものがあれば、その消去
回数のブロックのイレ−スシ−ケンスナンバ−に1イン
クリメントしたものを該当ブロックヘッダのイレ−スシ
−ケンスナンバ−に格納する。すなわち、消去回数が同
じものが複数ブロック存在するとき、それらの中の最大
のイレ−スシ−ケンスナンバの値に1インクリメントし
て該当ブロックヘッダ内のイレ−スシ−ケンスナンバに
格納する。
Next, in (5), the numbers indicating the order of erasure of the blocks are given in any order at the same time.
This is for determining whether or not the operation has been performed. A block erase is performed on a certain physical block, and if another physical block has the same block erase count, the erase sequence number of the block with the erase count is incremented by one to erase the corresponding block header. -Store it in the sequence number. That is, when there are a plurality of blocks having the same number of erasures, the value of the largest erase sequence number among them is incremented by 1 and stored in the erase sequence number in the corresponding block header.

【0032】次に、(6)のブロックを初期化した時刻に
は、該当する物理ブロックをブロックイレ−スしたとき
の時刻を記入する。なお、リアルタイムクロックを持た
ないシステムの場合は不要である。
Next, as the time at which the block is initialized in (6), the time at which the corresponding physical block was erased is entered. This is not necessary for a system without a real-time clock.

【0033】次に、(7)のブロック領域名は、実行プロ
グラムやデ−タファイルの中でそのブロックに割り当て
た固有の名称である。
Next, the block area name (7) is a unique name assigned to the block in the execution program or data file.

【0034】新たにブロックの割り当てを行なう際、全
体のブロックが効率よく、つまり特定のブロックに偏ら
ず、消去回数がすべてのブロックで均一化されるように
管理するために、上述した管理情報が利用される。ま
ず、フラッシュ管理マネ−ジャ26は、新たに物理ブロ
ックを割り当てるとき、消去回数の少ないものに対して
優先的に割り当てを行なう。もし、消去回数が同じブロ
ックがあるとき、その中でイレ−スシ−ケンスナンバの
もっとも若い番号のものを割り当てる。最も若いイレ−
スシ−ケンスナンバのブロックは、消去した時刻が最も
古いものである。また、リアルタイムクロックを持つシ
ステムでは、イレ−スシ−ケンスナンバの代わりにその
クロックを使用する。すなわち、消去回数が同じブロッ
クがあるとき、その中の物理ブロック内のもっとも古い
時刻を持つブロックを割り当てる。このように、イレ−
スシ−ケンスナンバあるいはリアルタイムクロックのう
ちのいずれか一方をもてば、少しでも効率よくブロック
の割り当てを均一化することができる。
When allocating a new block, the above-mentioned management information is used to manage the entire block efficiently, that is, so as not to be biased to a specific block and to make the number of erasures uniform for all blocks. Used. First, when allocating a new physical block, the flash management manager 26 preferentially allocates a physical block with a smaller number of erases. If there is a block having the same number of erasures, the block with the smallest erase sequence number is assigned. The youngest elephant
The block with the sequence number has the oldest erased time. In a system having a real-time clock, the clock is used instead of the erase sequence number. That is, when there is a block having the same number of erasures, the block having the oldest time in the physical block among the blocks is allocated. In this way,
If one of the sequence number and the real-time clock is used, the block allocation can be evenly and efficiently equalized.

【0035】実行プログラムの配置は、物理ブロックヘ
ッダの後からその領域内において、実行プログラムデ−
タをROMの場合と同じように配置することによって行
なう。これは、OS20に依存する部分が大きいため、
従来の方法によって対応することになる。
The execution program is located in the area after the physical block header and in the area.
By arranging the data in the same manner as in the case of the ROM. This is because the part that depends on the OS 20 is large.
This will be addressed by conventional methods.

【0036】一方、デ−タファイルの配置は、フラッシ
ュ管理マネ−ジャ26によって行われる。図6[A]に
示すように、デ−タファイルは、物理ブロックヘッダ4
0Aの領域を除く記憶領域40Bに格納されることにな
る。デ−タの格納構造として、デ−タファイル内の論理
的なデ−タレコ−ドをブロッキングし、図6[B]に示
すように、デ−タレコ−ドヘッダ42A,デ−タレコ−
ドフッダ42Cを付随させた形でデ−タレコ−ド42B
のパケット42を構成する。ブロッキングの方法として
は、固定長レコ−ド,可変長レコ−ド,スパンドレコ−
ドがあり、本形態ではいずれの手法であってもよい。こ
のブロッキングは、OS20やアプリケ−ションソフト
22に依存することが多いため、システム上、フラッシ
ュ管理マネ−ジャ26がブロッキングの方法を決定して
制御する。
On the other hand, the data file is allocated by the flash management manager 26. As shown in FIG. 6A, the data file has a physical block header 4
The data is stored in the storage area 40B excluding the area of 0A. As a data storage structure, a logical data record in a data file is blocked, and as shown in FIG. 6B, a data record header 42A, a data record
The data record 42B is attached in the form of attaching the data footer 42C.
Of the packet 42. Blocking methods include fixed-length records, variable-length records, and spanned records.
In this embodiment, any method may be used. Since this blocking often depends on the OS 20 and the application software 22, the flash management manager 26 determines and controls the blocking method in the system.

【0037】また、デ−タレコ−ドヘッダ42A,フッ
ダ42Cには、線形リスト構造を持たせるようにする。
デ−タレコ−ドの方法によっては、ブロック領域名の最
適な利用方法が異なる。システム設計する際、ブロック
領域名として、パ−ティション名,デ−タファイル名,
ディレクトリ名などのように、最適なものを割り当てる
ようにする。最適なブロック領域名は、デ−タレコ−ド
の方法に依存することが多い。
The data record header 42A and the footer 42C have a linear list structure.
The optimum use of the block area name differs depending on the data recording method. When designing the system, partition names, data file names,
Assign the best one, such as a directory name. The optimum block area name often depends on the data recording method.

【0038】デ−タファイルの論理的なデ−タレコ−ド
42Bは、上述したようにデ−タレコ−ドパケット42
として、割り当てられた物理ブロックのデ−タファイル
領域40Bに格納される。図6[B]にはその様子が示
されており、デ−タレコ−ドパケット(1)〜(n)が、i−
jバイトのデ−タファイル領域40B中に格納される。
フラッシュ管理マネ−ジャ26は、デ−タレコ−ドパケ
ット42の管理と物理ブロック40Bによる管理という
2重の管理を行なう。
The logical record 42B of the data file is composed of the data record packet 42 as described above.
Is stored in the data file area 40B of the allocated physical block. FIG. 6B shows this state. The data record packets (1) to (n) are i-
It is stored in the j-byte data file area 40B.
The flash management manager 26 performs dual management of management of the data record packet 42 and management by the physical block 40B.

【0039】次に、物理ブロックの初期化の手順につい
て説明する。フラッシュ管理マネ−ジャ26は、フラッ
シュメモリが初期化されていなければ、まず最初に各物
理ブロックを初期化する。初期化する場合は、一度すべ
てのブロックをイレ−スし、各物理ブロックのブロック
ヘッダに初期化完了フラグ,消去回数(1回),イレ−
スシ−ケンスナンバあるいは、初期化時刻などの情報を
格納する。次に、通常は、実行プログラムやデ−タファ
イルを格納するため、各物理ブロックの領域を宣言(確
保)する。つまり、実行プログラム領域やデ−タファイ
ル領域を示すマ−カ−フラグ,連続予約ブロックの領域
数の情報を格納する。このときに、ブロックの領域名を
割り当るようにしてもよい。また、後でブロックの領域
名を割り当てるのであれば、フラッシュ管理マネ−ジャ
26がその対応を行なう。
Next, the procedure for initializing a physical block will be described. If the flash memory has not been initialized, the flash management manager 26 first initializes each physical block. In the case of initialization, all blocks are erased once, and the initialization completion flag, the number of erasures (once), and the erase are added to the block header of each physical block.
Information such as a sequence number or an initialization time is stored. Next, usually, an area of each physical block is declared (secured) in order to store an execution program and a data file. That is, it stores a marker flag indicating the execution program area and the data file area, and information on the number of areas of the continuous reserved block. At this time, a block area name may be assigned. If the area name of the block is to be assigned later, the flash management manager 26 takes care of the assignment.

【0040】次に、デ−タファイルを格納するときの手
順を説明する。物理ブロックヘッダの有効フラグをON
にし、その後ブロッキングされたデ−タレコ−ドをデ−
タ領域内に順次格納して行く。デ−タレコ−ドはデータ
領域に追記していくことになるが、デ−タレコ−ドを書
き換えたい場合は、フラッシュメモリの特徴からその部
分を書き換えることはオ−バ−ヘッドが大きい。
Next, the procedure for storing a data file will be described. Turn on the valid flag of the physical block header
And then record the blocked data record.
Are sequentially stored in the data area. The data record is added to the data area, but when it is desired to rewrite the data record, rewriting that portion is a large overhead due to the characteristics of the flash memory.

【0041】そこで、旧論理デ−タレコ−ドから新論理
デ−タレコ−ドへのデ−タ格納は、旧デ−タレコ−ドを
無効とし、新たにデ−タレコ−ドを追記していく方法で
行う。無効となったデ−タレコ−ドは、デ−タレコ−ド
ヘッダ内に無効フラグを持たせることによって、フラッ
シュ管理マネ−ジャ26が無効と判断できる。物理ブロ
ックのデ−タ領域内のデ−タレコ−ドパケットのすべて
が無効となった場合は、その物理ブロックヘッダ内の無
効フラグをONすることによって、フラッシュ管理マネ
−ジャ26はこの物理ブロックをブロックイレ−スする
ことができる。ブロックイレ−スが完了すると、前述の
ブロックヘッダの初期化を行なう。
In order to store data from the old logical data record to the new logical data record, the old data record is invalidated and a new data record is added. Do it by the way. The flash management manager 26 can determine that an invalid data record is invalid by providing an invalid flag in the data record header. When all of the data record packets in the data area of the physical block are invalidated, the flash management manager 26 turns on the invalid flag in the physical block header to turn this physical block on. Block erase can be performed. When the block erase is completed, the above-mentioned block header is initialized.

【0042】次に、実行プログラムを格納するときの手
順を説明する。最初に実行プログラム領域として複数ブ
ロックを確保するときは、まず、物理ブロックヘッダ内
の有効フラグ,実行プログラム領域を示すマ−カ−フラ
グ,予約領域ブロック数の各情報を格納する。これによ
り、実行プログラム領域内に実行プログラムをROM化
したデ−タを格納する。
Next, a procedure for storing an execution program will be described. When a plurality of blocks are initially reserved as the execution program area, first, each information such as a valid flag in the physical block header, a marker flag indicating the execution program area, and the number of reserved area blocks is stored. As a result, the ROMized data of the execution program is stored in the execution program area.

【0043】以上をシステムとして運用し、その途中結
果として、デ−タファイル領域の書換回数と実行プログ
ラム領域の書換回数と比較する。そして、大幅な回数の
開きがあれば、現在配置されている領域を変更し、デフ
ラグメンテ−ションを行なうことが望ましい。フラッシ
ュ管理マネ−ジャ26は、それぞれの領域を管理してい
るためデフラグメンテ−ション操作における動的配置に
対応でき、システムとして矛盾を起こす心配もない。こ
れらを行なうことで効率的な領域配置を実現できる。ま
た、結果として運用時間を延ばし、フラッシュメモリの
書換寿命(回数ではなく時間)を延ばすこともできる。
なお、フラッシュメモリによっては、ライト(書込)操
作中に他のオペレ−ションができないチップが存在す
る。このようなときは、タスク,スレッドのようなプロ
グラミング技法により、排他制御を行なうようにする。
The above is operated as a system, and as a result of the operation, the number of rewrites of the data file area is compared with the number of rewrites of the execution program area. If there is a large number of gaps, it is desirable to change the currently arranged area and perform defragmentation. Since the flash management manager 26 manages the respective areas, the flash management manager 26 can cope with the dynamic arrangement in the defragmentation operation, and there is no fear of causing a contradiction as a system. By performing these operations, an efficient area arrangement can be realized. Further, as a result, the operation time can be extended, and the rewrite life (time, not the number of times) of the flash memory can be extended.
It should be noted that some flash memories do not allow other operations during a write operation. In such a case, exclusive control is performed by a programming technique such as a task or a thread.

【0044】図7には、フラッシュメモリに対する物理
ブロックヘッダの格納例が示されている。図7[A]の
例は、64Kバイトを消去ブロック単位とするフラッシ
ュメモリで、ブロック数がn+1個あるシステムであ
る。各物理ブロックの先頭には、図7[B]に示すよう
に、各物理ブロックの管理情報であるヘッダ領域とし
て、256バイトが割り当てられている。上述したよう
に、デ−タファイルの場合には、該当する物理ブロック
内に必ず物理ブロックヘッダを付随させる。しかし、実
行プログラムファイルの場合はその限りではない。以
下、本形態の実施例について説明する。
FIG. 7 shows an example of storing a physical block header in a flash memory. The example in FIG. 7A is a flash memory in which 64 Kbytes are used as an erase block unit, and the system has n + 1 blocks. At the head of each physical block, as shown in FIG. 7B, 256 bytes are allocated as a header area which is management information of each physical block. As described above, in the case of a data file, a physical block header is always attached to a corresponding physical block. However, this is not the case for executable program files. Hereinafter, examples of the present embodiment will be described.

【0045】(1)実施例1 この実施例1は、ブロックシ−ケンスナンバを用いる例
である。本例のファイル管理装置では、図8[A]に示
すように、ブロック消去が64Kバイト単位で可能な2
M×8ビットのフラッシュメモリが使用される。図8
[A]に示すように、各ブロックに「0」から「1F」
と順に番号を付ける。このようなフラッシュメモリに対
して、図5[A]のように実行プログラム領域を連続領
域として確保したとすると、図8に[B]に示すように
なる。当然、実行プログラム領域(1)に領域指定されて
いる物理ブロック1〜7には物理ブロックヘッダはな
い。同様に、実行プログラム(2)に領域指定されている
物理ブロック10〜Eには、物理ブロックヘッダはな
い。
(1) Embodiment 1 Embodiment 1 is an example in which a block sequence number is used. In the file management device of this example, as shown in FIG. 8A, block erasing is possible in units of 64 Kbytes.
An M × 8 bit flash memory is used. FIG.
As shown in [A], “0” to “1F” are assigned to each block.
And number them in that order. If the execution program area is secured as a continuous area as shown in FIG. 5A for such a flash memory, the result is as shown in FIG. 8B. Naturally, there is no physical block header in the physical blocks 1 to 7 designated as the area in the execution program area (1). Similarly, the physical blocks 10 to E designated as areas in the execution program (2) have no physical block header.

【0046】そこで、本実施例では、図9に示すよう
に、1バイト目から18バイト目までを共通のデ−タ構
造をもつことにする。これにより、この共通部分をフラ
ッシュ管理マネ−ジャ26によってスキャンすれば、全
体の構造を把握することができる。そして、次の19バ
イト目から実行プログラム領域あるいはデ−タファイル
領域に割り当てられた内容を追記していけばよい。
Therefore, in this embodiment, as shown in FIG. 9, the first to eighteenth bytes have a common data structure. Thus, if this common part is scanned by the flash management manager 26, the entire structure can be grasped. Then, the contents assigned to the execution program area or the data file area may be added from the next 19th byte.

【0047】共通部分の内容を順に説明すると、まず1
バイト目には、図10[A]に示すように、有効/遷移
中/無効,初期化完了状態,予約のフラグがある。これ
らのうち、有効/遷移中/無効のフラグは、このブロッ
ク領域が有効状態か,それとも有効から無効になる遷移
中(過渡期)の状態か,完全に無効になった状態かを示
す。初期化完了状態のフラグは、ブロックのイレ−ス後
にブロックヘッダの初期化(フォ−マット)が完了した
ことを指し示す。予約のフラグは、システムを拡張する
ときに使用するための予備フラグである。実際のビット
の割付例を示すと、表1[A]のようになる。
The contents of the common part will be described in order.
In the byte, as shown in FIG. 10A, there are flags of valid / in transition / invalid, initialization completed state, and reservation. Among these, the flag of valid / in transition / invalid indicates whether the block area is in a valid state, in a transition (transition period) from valid to invalid, or in a completely invalid state. The flag indicating that the initialization has been completed indicates that the initialization (format) of the block header is completed after the block is erased. The reservation flag is a spare flag to be used when expanding the system. An example of actual bit allocation is shown in Table 1 [A].

【0048】[0048]

【表1】 [Table 1]

【0049】次に、図10[B]を参照してブロックイ
レースの手順を説明する。フラッシュ管理マネ−ジャ2
6の判定により、ブロックイレ−ス命令が出されたとき
(図10[B]の50)、次の状態として旧ブロックヘ
ッダの消去回数などを一時保存し(52)、このブロッ
クのブロックイレ−スを行なう(54)。ブロックイレ
−スを行なった直後、イレースされたブロックの記憶エ
リアのデ−タ値は、すべてFFhとなっている(5
6)。この後すぐに、フラッシュ管理マネ−ジャ26が
初期化(フォ−マット)操作(58)によって、ビット
4が0となり、この記憶エリアのデ−タ値はFFhから
EFhに遷移する(60)。
Next, the procedure of block erase will be described with reference to FIG. Flash Management Manager 2
When the block erase instruction is issued (50 in FIG. 10B) as a result of the determination in step 6, the number of erasures of the old block header and the like are temporarily stored as the next state (52), and the block erase of this block is performed. (54). Immediately after performing the block erase, the data values in the storage area of the erased block are all FFh (5).
6). Immediately after this, bit 4 is set to 0 by the initialization (format) operation (58) of the flash management manager 26, and the data value of this storage area transits from FFh to EFh (60).

【0050】更にその後、このブロックのヘッダに、イ
レ−ス前に一時保存しておいた消去回数に+1した値を
書き込み、物理ブロックの初期化を行なう。そして、新
たにこのブロックへの使用要求によってフラッシュ管理
マネ−ジャ26が割り当てを行ったとすると(62)、
ビット7に0を書き込み、このエリアのデ−タの値はE
Fhから6Fhに遷移する(64)。更に、フラッシュ
管理マネ−ジャ26がこのブロックの無効要求を認めれ
ば(66)、ビット6に0を書き込み、このエリアのデ
−タの値は6Fhから2Fhに遷移する(68)。
Thereafter, a value obtained by adding +1 to the number of erasures temporarily stored before erasing is written in the header of this block, and the physical block is initialized. If it is assumed that the flash management manager 26 has newly allocated the block in response to a use request for this block (62),
Write 0 to bit 7 and the value of the data in this area is E
A transition is made from Fh to 6Fh (64). Further, when the flash management manager 26 recognizes the invalidation request of this block (66), 0 is written to the bit 6, and the data value of this area transits from 6Fh to 2Fh (68).

【0051】デフラグメンテ−ションを行なう際、フラ
ッシュ管理マネ−ジャ26の機能により、物理ブロック
にはコピ−元,コピ−先,ム−ブなどのような遷移中の
状態が存在する。デ−タファイル領域としての物理ブロ
ック内の有効な状態から遷移中の状態にするには(7
0)、ビット5を0にし、このエリアのデ−タの値は6
Fhから4Fhに遷移させればよい(72)。この遷移
中の状態を存在させることは、遷移に要する時間が少な
くないことの他に、電池の消耗による動作の不安定や、
カ−ド型フラッシュメモリが外されたときなどにおける
安全性を高めるためである。つまり、本発明では、この
遷移段階の状態を管理し、故障・事故などによるデ−タ
の消失を最小限に抑え、復旧させるように構成されてい
る。
When performing the defragmentation, the function of the flash management manager 26 causes the physical block to have a transition state such as a copy source, a copy destination, and a move. To change from a valid state in a physical block as a data file area to a transitioning state (7
0), bit 5 is set to 0, and the data value of this area is 6
The transition may be made from Fh to 4Fh (72). Existence of this transitioning state means that the time required for the transition is not short, and that the operation becomes unstable due to battery exhaustion,
This is to enhance the security when the card type flash memory is removed. That is, in the present invention, the state of this transition stage is managed, and the loss of data due to a failure or accident is minimized and restored.

【0052】次に、図9に示す共通部分の2バイト目に
ついて説明する。この2バイト目には、図9に示すよう
に、プログラム/データ,連続予約ブロック領域数のフ
ラグがあり、図10[C],表1[C]に示すようにな
っている。これらのうち、プログラム/データのマーカ
ーフラグは、実行プログラム,デ−タファイルのいずれ
がそのブロックに割り当てられたかを決定するフラグで
ある。このマ−カ−フラグが0のとき、実行プログラム
領域にこのブロックが指定されたことになる。
Next, the second byte of the common part shown in FIG. 9 will be described. In the second byte, as shown in FIG. 9, there are flags for the program / data and the number of continuous reserved block areas, as shown in FIG. 10 [C] and Table 1 [C]. Among them, the program / data marker flag is a flag for determining which of the execution program and the data file is assigned to the block. When the marker flag is 0, this block has been designated in the execution program area.

【0053】連続予約ブロック領域数のフラグは、実行
プログラム領域に指定した残りのブロック数が16進数
で表記されている。しかし、このマ−カ−フラグが1
で、この物理ブロックはデ−タファイル領域として割り
当てているとき、連続予約ブロック数には000000
0bを書く。
The flag of the number of continuous reserved block areas indicates the number of remaining blocks designated in the execution program area in hexadecimal. However, if the marker flag is 1
When this physical block is allocated as a data file area, the number of consecutive reserved blocks is 000000.
Write 0b.

【0054】次に、図9の3〜5バイト目は、表1
[D]に示すように、そのブロックの消去回数を16進
で表記している。3バイト目がその回数の下位の桁、4
バイト目がその回数の中位の桁、5バイト目にはその回
数の上位の桁として、それぞれデ−タを格納する。従っ
て、FFFFFFh回がブロック連続の最大数値とな
る。なお、この最大値のとき、更なるインクリメントは
行われない。
Next, the third to fifth bytes in FIG.
As shown in [D], the number of erasures of the block is expressed in hexadecimal. The third byte is the lower digit of the number, 4
In the byte, the data is stored as the middle digit of the number, and in the fifth byte, the data is stored as the upper digit of the number. Therefore, FFFFFFh times is the maximum value of the block continuation. At this maximum value, no further increment is performed.

【0055】次に、図9の6バイト目であるが、これ
は、各物理ブロックの消去回数が同じときに、フラッシ
ュ管理マネ−ジャ26が最適な物理ブロックの割り当て
を行なうために用意されたもので、上述したイレースシ
ーケンスナンバである。このイレ−スシ−ケンスナンバ
は、物理ブロックの消去回数が他の物理ブロックと同じ
ときに、どの順番で物理ブロックの初期化がなされたか
を記録するものである。イレ−スシ−ケンスナンバ−の
割付の流れとして、まず該当する物理ブロックの消去回
数と他のブロックで消去回数で同一のものがなければ、
該当する物理ブロックのイレ−スシ−ケンシナンバは0
x00となる。
Next, the sixth byte in FIG. 9 is prepared for the flash management manager 26 to allocate an optimum physical block when the number of erasures of each physical block is the same. This is the erase sequence number described above. The erase sequence number records the order in which the physical blocks were initialized when the number of erasures of the physical block is the same as that of the other physical blocks. As a flow of the allocation of the erase sequence number, first, if there is no identical number of erasures in the corresponding physical block and other blocks,
The erase sequence number of the corresponding physical block is 0
x00.

【0056】もし、他のブロックで消去回数が同じもの
があるときは、その中で最も大きいイレ−スシ−ケンス
ナンバを検出し、該当ブロックのイレ−スシ−ケンスナ
ンバには先ほど検出したイレ−スシ−ケンスナンバの値
に1インクリメントした値を記録する。このようなアル
ゴリズムによって、イレースシ−ケンスナンバの割付を
行なう。イレースシーケンスナンバは、フラッシュ管理
マネ−ジャ26が物理ブロックの割り当てを行なうとき
の判断材料となる。
If there is another block having the same number of erasures, the largest erase sequence number is detected, and the erase sequence number of the corresponding block is detected as the erase sequence number previously detected. The value obtained by incrementing the value of the kens number by 1 is recorded. The erase sequence number is assigned by such an algorithm. The erase sequence number is used as a criterion when the flash management manager 26 allocates a physical block.

【0057】次に、図9の7バイト目から18バイト目
までは、該当するブロックの領域名を記録する。実行プ
ログラムファイルの場合、パ−ティション名やディレク
トリ名などに利用すると、システム運用が容易になる。
また、デ−タファイルの場合は、デ−タレコード方式に
よって最適となるようなブロック領域名の扱いが考えら
れる。例えば、デ−タレコ−ドの方法が固定長,可変長
レコ−ド,スパンドレコ−ドのようなファイルを二重管
理する場合には、パ−ティション名,ディレクトリ名な
どが適している。しかし、固定長や可変長レコ−ドでフ
ァイルを一元管理する場合には、デ−タファイル名とし
て扱うほうが望ましい。本実施例では、ブロック領域名
は8.3形式で、MS−DOSのような表現方法を利用
する。
Next, from the seventh byte to the eighteenth byte in FIG. 9, the area name of the corresponding block is recorded. When an executable program file is used for a partition name, a directory name, or the like, system operation is facilitated.
Further, in the case of a data file, it is conceivable to treat the block area name optimally according to the data record method. For example, when the data record method double-manages files such as fixed length, variable length record, and spanned record, a partition name, a directory name and the like are suitable. However, in the case where the files are centrally managed with fixed-length or variable-length records, it is desirable to treat them as data file names. In this embodiment, the block area name is in the 8.3 format, and uses an expression method such as MS-DOS.

【0058】以上のような構造の物理ブロックヘッダを
用いてフラッシュファイル管理システムを実現する。フ
ラッシュ管理マネ−ジャ26は、OS20やアプリケ−
ションソフト22などの要求により、実行プログラムや
デ−タファイルなどの読み出し,書き込みを制御する。
まず、書き込みに際しては、フラッシュメモリの特徴と
して書き込み遅延の影響がある。このため、オ−バヘッ
ドを少なくして効率よく書き込みを行なうためには、他
のデ−タファイル領域に新たに追記していく方式をとる
ことになる。この方式を実行するためには、書換前の旧
デ−タと書換後の新デ−タが論理的には変更されている
が、物理的には旧デ−タが無効となり、新デ−タが追記
されることになる。
The flash file management system is realized by using the physical block header having the above structure. The flash management manager 26 includes the OS 20 and the application software.
In response to a request from the application software 22 or the like, reading and writing of an execution program and data files are controlled.
First, at the time of writing, a characteristic of the flash memory is the influence of a write delay. For this reason, in order to perform writing efficiently with a reduced overhead, a method of additionally writing data in another data file area is adopted. To execute this method, the old data before rewriting and the new data after rewriting are logically changed, but the old data becomes physically invalid and the new data is changed. Data will be added.

【0059】つまり、物理的には旧デ−タと新デ−タは
共存するものの、旧デ−タに無効フラグを記すことによ
って論理的に削除することになる。このような動作をフ
ラッシュファイルシステムが繰り返すと、論理的な無効
デ−タが数多く存在することになる。場合によっては、
新規のデ−タファイル領域がなくなる危険性すらある。
このことを避けるために、フラッシュ管理マネ−ジャ2
6は、デ−タの無効化を定期的に検知し、デフラグメン
テ−ションの操作を行なって効率よくデ−タファイル領
域を確保する。
That is, although the old data and the new data coexist physically, the old data is logically deleted by writing an invalid flag in the old data. If the flash file system repeats such an operation, there will be many logical invalid data. In some cases,
There is even the danger that the new data file area will be lost.
To avoid this, flash management manager 2
6 periodically detects invalidation of data and performs a defragmentation operation to efficiently secure a data file area.

【0060】デ−タファイル領域としての物理ブロック
の割り当ては、フラッシュ管理マネ−ジャ26が行な
う。このとき、OS20やアプリケ−ションンソフト2
2の要求によってデ−タファイル領域を与えることにな
るが、本実施例のアルゴリズムでは、優先的に消去回数
が少ない物理ブロックに割り当てられる。また、デフラ
グメンテ−ション操作を行なうときなどは、消去回数が
少ないブロックについて優先的にデ−タレコ−ドパケッ
トの無効化を行ない、その物理ブロックのデ−タファイ
ル領域内をすべて無効化することによって、ブロックの
使用回数の均一化が図られる。そしてそれらの中で少し
でも物理ブロックの使用回数を効率的に均一化するた
め、イレ−スシ−ケンスナンバの若いものを優先させ
て、割り当てる物理ブロックやブロックイレ−スの管理
が行われる。
The allocation of a physical block as a data file area is performed by the flash management manager 26. At this time, the OS 20 and the application software 2
Although the data file area is given by the request of No. 2, in the algorithm of this embodiment, it is preferentially assigned to a physical block with a small number of erasures. Also, when performing a defragmentation operation, for example, the data record packet is invalidated preferentially for a block having a small number of erasures, and the entire data file area of the physical block is invalidated. In addition, the number of times the blocks are used can be made uniform. In order to efficiently equalize the number of use of the physical block even in a small number of them, the physical block and the block erase to be allocated are managed by giving priority to the one having a smaller erase sequence number.

【0061】フラッシュファイルシステムを運用してい
くと、結果として実行プログラム領域とデ−タファイル
領域の消去回数が大きく違ってくるようになる。そし
て、ある程度消去回数に開きが生じると、フラッシュ管
理マネ−ジャ26は、実行プログラム領域で使用してい
る物理ブロックとデ−タファイル領域で使用している物
理ブロックとを入れ替え、これによってフラッシュファ
イルシステムの運用寿命の延命化が図られる。
As the flash file system operates, as a result, the number of erasures of the execution program area and the data file area greatly differs. Then, when the number of times of erasure is increased to some extent, the flash management manager 26 replaces the physical block used in the execution program area with the physical block used in the data file area. The service life of the device is extended.

【0062】読み出しの場合は、フラッシュ管理マネ−
ジャ26がフラッシュメモリの読み出しを行なうことを
要求し、許可確認後、ブロッキングされたデ−タレコ−
ドパケットを論理的なデ−タレコ−ドとして扱うことに
よって可能となる。また、書き込みの場合、フラッシュ
管理マネ−ジャ26にフラッシュメモリへの書き込みを
行なうことを要求し、許可確認後、論理的なデ−タレコ
−ドをブロッキングし、デ−タレコ−ドパケット化して
指定エリアに格納する。デ−タの書換えは、物理的にデ
−タレコ−ドパケットを無効化し、新たに追記すること
によって実現する。ただし、物理的にメモリエリアは縮
小する。これらのデ−タのブロッキング方法は、上述し
た通りであり、背景技術により実現されている。
In the case of reading, the flash management manager
The controller 26 requests that the flash memory be read. After confirming permission, the blocked data record is read.
This is made possible by treating a data packet as a logical data record. In the case of writing, a request is made to the flash management manager 26 to perform writing to the flash memory, and after confirming permission, the logical data record is blocked, and the data record is packetized and designated. Store in area. Rewriting of data is realized by physically invalidating a data record packet and newly adding data. However, the memory area is physically reduced. The method of blocking these data is as described above, and is realized by the background art.

【0063】物理ブロックのデ−タファイル領域内です
べてのデータが無効化された場合、その物理ブロックヘ
ッダの無効フラグをONとすることによって、その物理
ブロック全体が無効化されたことになる。そして、フラ
ッシュ管理マネ−ジャ26はこのことを検知し、そのブ
ロックをイレ−スして初期化操作を始める。また、デフ
ラグメンテ−ション操作により、コピ−元のデ−タファ
イルの属する物理ブロックヘッダの遷移中フラグをON
にする。そして、必要なデ−タが全部コピ−されたな
ら、その物理ブロックヘッダの無効フラグをONにし、
前述のブロックイレ−ス・初期化操作を行なう。遷移中
フラグのONから無効フラグのONまでの間に何らかの
原因による異常な状態があり、システムが再起動したと
きなどには、これらの状態フラグを監視し、解析するこ
とによって、どの状態から停止あるいは異常となったか
を検出することができる。そして、システムを修復・復
旧させるための貴重な情報源となる。
When all data is invalidated in the data file area of the physical block, the entire physical block is invalidated by setting the invalid flag of the physical block header to ON. Then, the flash management manager 26 detects this, erases the block, and starts the initialization operation. In addition, by the defragmentation operation, the transition flag of the physical block header to which the copy source data file belongs is turned ON.
To When all necessary data has been copied, the invalid flag of the physical block header is turned ON, and
The above-described block erase / initialization operation is performed. There is an abnormal state for some reason between the transition flag ON and the invalid flag ON. When the system is restarted, monitor and analyze these state flags to stop from any state. Alternatively, it can be detected whether an abnormality has occurred. And it is a valuable source of information for repairing and restoring the system.

【0064】フラッシュ管理マネ−ジャ26は、それぞ
れの物理ブロックの状態を監視,管理していくことにな
る。OS20やアプリケ−ションソフト22の要求に応
じて該当する物理ブロックを割り当て、有効→(遷移
中)→無効→初期化の状態の監視,管理を実行する。そ
して、フラッシュファイルシステムを運用していくと、
各物理ブロックの状態の変化として、初期化→有効,有
効→無効,有効→遷移中,移中→無効,無効→初期化,
初期化→無効などが挙げられる。
The flash management manager 26 monitors and manages the state of each physical block. A corresponding physical block is allocated in response to a request from the OS 20 or the application software 22, and valid → (in transition) → invalid → monitoring and management of the state of initialization are executed. And when you operate the flash file system,
Changes in the state of each physical block include: initialization → valid, valid → invalid, valid → transit, migrating → invalid, invalid → initialize,
Initialization → invalid.

【0065】[初期化→有効]は、物理ブロックが初期
化状態から、その物理ブロックがデ−タファイル領域等
として割り当てられたとき、有効フラグONによって有
効状態となる。
[Initialization → valid] means that when a physical block is allocated from a initialized state to a data file area or the like, the valid state is turned on by a valid flag ON.

【0066】[有効→無効]は、デ−タファイルとして
その物理ブロックが有効でデ−タファイル領域内に少な
くとも一つは論理的に有効なデ−タがある状態から、デ
−タファイル領域内がすべて論理的に無効なデ−タとな
り、フラッシュ管理マネ−ジャ26が、その後この物理
ブロックの無効フラグをONとし、物理ブロックの無効
化を行なう。
[Valid → Invalid] means that the physical block is valid as a data file and at least one logically valid data exists in the data file area. The data becomes logically invalid, and the flash management manager 26 then turns on the invalid flag of this physical block to invalidate the physical block.

【0067】[有効→遷移中]は、少なくとも一つは存
在する論理的に有効なデ−タレコ−ドパケットを、異な
る物理ブロックのデ−タファイル領域にコピ−すると
き、コピ−元となる物理ブロックに対して遷移中フラグ
をONにする。この状態のとき、デ−タレコ−ドパケッ
トがコピ−されていることになる。
[Valid → Transitioning] means that when at least one logically valid data record packet is copied to the data file area of a different physical block, the physical The transition flag is turned on for the block. In this state, the data record packet has been copied.

【0068】[遷移中→無効]は、前述の遷移中の状態
が終了し、物理ブロックが無効となったことを示す。つ
まり、デ−タレコ−ドパケットのコピ−が完了し、フラ
ッシュ管理マネ−ジャ26が無効フラグをONにする。
[Transitioning → Invalid] indicates that the above-mentioned transitional state has ended and the physical block has been invalidated. That is, the copying of the data record packet is completed, and the flash management manager 26 turns on the invalid flag.

【0069】[無効→初期化]は、物理ブロックが無効
な状態からその物理ブロックをブロックイレ−スし、物
理ブロックヘッダを初期化が完了したとき、フラッシュ
管理マネ−ジャ26が初期化フラグをONにする。この
とき、物理ブロックヘッダの初期化が完了し、デ−タフ
ァイル領域として使用可能な状態となる。
[Invalid → Initialize] means that the physical block is erased from the invalid state, and when the physical block header is initialized, the flash management manager 26 sets the initialization flag. Turn ON. At this time, the initialization of the physical block header is completed, and the physical block header can be used as a data file area.

【0070】[初期化→無効]は、物理ブロックが初期
化された状態から、その物理ブロックが無効になった状
態を示す。これは、状態として存在する可能性はある
が、システムとしては多用すべきではない。
[Initialization → Invalid] indicates a state in which the physical block has been invalidated from the state in which the physical block has been initialized. This may exist as a state, but should not be overused by the system.

【0071】フラッシュ管理マネ−ジャ26は、各物理
ブロックの状態を管理・監視し、何らかの原因による異
常状態からの脱却後、有効/無効/遷移中/初期化フラ
グを、異常状態以前のデ−タの復元や復旧をするための
情報源とする。つまり、これらの変化状態を考慮するこ
とで、システムの停止や異常が生じたシステムの修復や
デ−タレコ−ドパケットの復元を行なうとき、どの状態
から異常になったかを検出することができる。
The flash management manager 26 manages and monitors the state of each physical block, and after escaping from an abnormal state due to any cause, sets the valid / invalid / transitioning / initialization flag to the data before the abnormal state. Data source for restoring and restoring data. That is, by considering these change states, it is possible to detect from which state the state becomes abnormal when the system is stopped or the system in which the abnormality has occurred is restored or the data record packet is restored.

【0072】(2)実施例2 この実施例2は、実施例1のイレースシ−ケンスナンバ
の代わりに初期化した時刻を記録する方法である。すな
わち、図11にブロックヘッダの構成を示すように、1
9バイト目から21バイト目までに初期化が行われた年
/月/日/時/分/秒を記録する。実施例1のイレ−ス
シ−ケンスナンバは、同一消去回数のときの初期化され
た順番を指していたが、実施例2では、ブロックの使用
回数の均一化を図るアルゴリズムにおいて、すべての物
理ブロックの使用回数を少しでも効率的に向上させるた
めに、消去回数が同じときは最も古い時刻のものを優先
させることによって、割り当てる物理ブロックやブロッ
クイレ−スの管理が行なわれる。
(2) Embodiment 2 This embodiment 2 is a method of recording an initialization time in place of the erase sequence number of the embodiment 1. That is, as shown in FIG.
The year / month / day / hour / minute / second that was initialized from the 9th byte to the 21st byte is recorded. The erase sequence number in the first embodiment indicates the order of initialization when the number of erasures is the same. However, in the second embodiment, in the algorithm for equalizing the number of use of blocks, In order to improve the number of times of use even slightly, if the number of times of erasure is the same, the oldest time is prioritized to manage the physical blocks and block erase to be allocated.

【0073】(3)実施例3 この実施例3は、実施例1と実施例2を組み合わせ、イ
レースシ−ケンスナンバと初期化時刻の双方を記録する
方法である。図12に示すように、6バイト目にイレー
スシーケンスナンバを記録し、19バイト目から21バ
イト目までに初期化の年/月/日/時/分/秒を記録す
る。実施例1,実施例2とほとんど同じであるが、ブロ
ックの使用回数の均一化を図るアルゴリズムにおいて、
すべての物理ブロックの使用回数を少しでも効率的に向
上させるために、消去回数が同じときはイレ−スシ−ケ
ンスナンバの若いものから優先させるようにする。ま
た、最も古い初期化時刻の物理ブロックが存在するとき
は、消去回数を他と見比べて効率がよいと判断できると
き、その物理ブロックを優先的に割り当てるアルゴリズ
ムによって、割り当てる物理ブロックやブロックイレ−
スの管理が行なわれる。
(3) Embodiment 3 Embodiment 3 is a method of combining Embodiment 1 and Embodiment 2 and recording both the erase sequence number and the initialization time. As shown in FIG. 12, the erase sequence number is recorded in the sixth byte, and the year / month / day / hour / minute / second of initialization is recorded in the 19th to 21st bytes. Almost the same as the first and second embodiments, but in the algorithm for equalizing the number of use of the block,
In order to improve the number of times of use of all the physical blocks as efficiently as possible, when the number of times of erasure is the same, priority is given to the erase sequence number having a smaller number. Also, when there is a physical block with the oldest initialization time, if it can be determined that the number of erasures is more efficient than others, the physical block or block erase to be allocated is performed by an algorithm that preferentially allocates the physical block.
Is managed.

【0074】この発明には数多くの実施形態があり、以
上の開示に基づいて多様に改変することが可能である。
例えば、次のようなものも含まれる。 (1)前記形態はフラッシュメモリに本発明を適用したも
のであるが、他の類似するメモリがフラッシュメモリと
同じ書込み,読出し機能を備えており、かつ、書込前ブ
ロック消去特性を有するメモリであれば、同様に適用可
能である。 (2)フラッシュメモリのイレース単位である物理ブロッ
クは、バイト単位やワード単位の他、どのようなデータ
単位であっても、同様に適用可能である。
There are many embodiments of the present invention, and various modifications can be made based on the above disclosure.
For example, the following is also included. (1) In the above embodiment, the present invention is applied to a flash memory. However, another similar memory has the same write / read function as the flash memory, and has a block erase characteristic before writing. If so, it is equally applicable. (2) The physical block which is the erase unit of the flash memory can be similarly applied to any data unit other than the byte unit and the word unit.

【0075】[0075]

【発明の効果】以上説明したように本発明によれば、次
のような効果がある。 (1)フラッショ型メモリを使用した拡張記憶装置上で、
フラッシュ型メモリの書換回数を少なくするような制御
構造を持ち、かつ、主記憶装置に実行プログラムをロ−
ドすることなく、フラッシュ型メモリ上でプログラムの
実行が可能となる。また、書換回数を少なくする制御構
造をもつ補助記憶装置としても、無駄の少ないデ−タ構
造で記憶を行うことが可能となる。
As described above, according to the present invention, the following effects can be obtained. (1) On an extended storage device using flash memory,
It has a control structure to reduce the number of rewrites of the flash memory, and loads the execution program into the main memory.
The program can be executed on the flash memory without loading. Further, even with an auxiliary storage device having a control structure for reducing the number of rewrites, storage can be performed with a data structure with little waste.

【0076】(2)各ブロックの書換回数等の情報テ−ブ
ルのためのエリアをブロック内に設けることとしたの
で、別にメモリを設ける必要がなく、コストの削減が可
能となる。特に、拡張記憶装置と補助記憶装置を1つの
フラッシュ型メモリ上で混在させることができ、システ
ムとして省スペ−ス,コスト削減を図ることができる。
(2) Since an area for an information table such as the number of times of rewriting of each block is provided in the block, there is no need to provide a separate memory, and the cost can be reduced. In particular, the extended storage device and the auxiliary storage device can be mixed on one flash memory, and the space and cost of the system can be reduced.

【0077】(3)物理ブロックの有効/遷移中/無効/
初期化という状態フラグをもつこととしたので、コンピ
ュータシステムの異常による停止からの復旧やデ−タの
復元に有効である。
(3) Valid / in transition / invalid /
Having a status flag of "initialization" is effective for restoring from a stop due to an abnormality in the computer system and restoring data.

【図面の簡単な説明】[Brief description of the drawings]

【図1】この発明の一形態を利用したシステムの基本構
成を示す図である。
FIG. 1 is a diagram showing a basic configuration of a system using one embodiment of the present invention.

【図2】一形態におけるソフトウエア構造を示す図であ
る。
FIG. 2 is a diagram illustrating a software structure according to one embodiment.

【図3】一形態におけるフラッシュメモリ内での物理ブ
ロックの割付を行なったメモリマップを示す図である。
FIG. 3 is a diagram showing a memory map in which physical blocks are allocated in a flash memory according to one embodiment.

【図4】1つの実行プログラム領域と複数のデ−タファ
イル領域を物理ブロックに割り当てた例を示す図であ
る。
FIG. 4 is a diagram showing an example in which one execution program area and a plurality of data file areas are allocated to physical blocks.

【図5】複数の実行プログラム領域と複数のデ−タファ
イル領域を物理ブロックに割り当てた例を示す図であ
る。
FIG. 5 is a diagram showing an example in which a plurality of execution program areas and a plurality of data file areas are allocated to physical blocks.

【図6】デ−タファイル領域のデ−タレコ−ドパケット
の例と格納方法の例を示す図である。
FIG. 6 is a diagram showing an example of a data record packet in a data file area and an example of a storage method.

【図7】ブロックイレ−スが64Kバイト単位のフラッ
シュメモリを物理ブロック単位に分割して256バイト
のブロックヘッダを確保した例を示す図である。
FIG. 7 is a diagram showing an example in which a flash memory having a block erase of 64 Kbytes is divided into physical blocks to secure a block header of 256 bytes.

【図8】実施例1で使用しているフラッシュメモリを実
行プログラム領域とデ−タファイル領域に分割したメモ
リマップの例を示す図である。
FIG. 8 is a diagram showing an example of a memory map obtained by dividing a flash memory used in the first embodiment into an execution program area and a data file area.

【図9】実施例1で使用している物理ブロックヘッダの
メモリマップの例を示す図である。
FIG. 9 is a diagram illustrating an example of a memory map of a physical block header used in the first embodiment.

【図10】実施例1における物理ブロックヘッダの一部
とシ−ケンスを表す図である。
FIG. 10 is a diagram illustrating a part of a physical block header and a sequence according to the first embodiment.

【図11】実施例2で使用している物理ブロックヘッダ
のメモリマップの例を示す図である。
FIG. 11 is a diagram illustrating an example of a memory map of a physical block header used in the second embodiment.

【図12】実施例2で使用している物理ブロックヘッダ
のメモリマップの例を示す図である。
FIG. 12 is a diagram illustrating an example of a memory map of a physical block header used in the second embodiment.

【符号の説明】[Explanation of symbols]

10…プロセッサ 12…フラッシュメモリ 14…フラッシュメモリ制御装置 16…RAM 20…オペレーティングシステム 22…アプリケーションソフト 24…ドライバ層 26…フラッシュ管理マネージャ 30A,31A,38A,39A,3(n−1)A,3
nA,40A…ヘッダ領域 30B,31B,38B,39B,3(n−1)B,3
nB,40B…記憶領域 32…実行プログラム領域 42…データレコードパケット 42A…データレコードヘッダ 42B…データレコード 42C…データレコードフッダ
DESCRIPTION OF SYMBOLS 10 ... Processor 12 ... Flash memory 14 ... Flash memory control device 16 ... RAM 20 ... Operating system 22 ... Application software 24 ... Driver layer 26 ... Flash management manager 30A, 31A, 38A, 39A, 3 (n-1) A, 3
nA, 40A header area 30B, 31B, 38B, 39B, 3 (n-1) B, 3
nB, 40B storage area 32 execution program area 42 data record packet 42A data record header 42B data record 42C data record footer

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】 ブロック単位で記憶内容を消去できるフ
ラッシュ型メモリのブロックに、そのブロックの管理情
報を記憶するヘッダ領域と、ブロック単位に分割された
データファイルを格納する記憶領域とを備えたことを特
徴とするフラッシュ型メモリ。
1. A block of a flash memory capable of erasing storage contents in units of blocks, comprising a header area for storing management information of the blocks and a storage area for storing data files divided in units of blocks. Flash type memory characterized by the above-mentioned.
【請求項2】 ブロック単位で記憶内容を消去できるフ
ラッシュ型メモリが第1,第2,及び第3のブロックを
含んでおり、 第1のブロックは、そのブロックの管理情報を記憶する
ヘッダ領域と、ブロック単位に分割されたデ−タファイ
ルを格納する記憶領域とを備えており、 第2のブロックは、ブロック単位に分割された実行プロ
グラムファイルを格納する記憶領域を備えており、 第3のブロックは、実行プログラムファイルが格納され
たブロックの管理情報を記憶するヘッダ領域と、ブロッ
ク単位に分割された実行プログラムファイルを格納する
記憶領域とを備えていることを特徴とするフラッシュ型
メモリ。
2. A flash memory capable of erasing storage contents in block units includes first, second, and third blocks, and a first block includes a header area for storing management information of the block. , A storage area for storing a data file divided in units of blocks, a second block having a storage area for storing an execution program file divided in units of blocks, and a third block. A flash memory comprising: a header area for storing management information of a block in which an execution program file is stored; and a storage area for storing an execution program file divided in block units.
【請求項3】 前記ブロックの管理情報として、データ
ファイル又は実行プログラムファイルのいずれがそのブ
ロックに格納されているかを示す情報が含まれることを
特徴とする請求項1又は2記載のフラッシュ型メモリ。
3. The flash memory according to claim 1, wherein the block management information includes information indicating which of a data file and an execution program file is stored in the block.
【請求項4】 前記ブロックの管理情報として、そのブ
ロックに対する消去回数が含まれることを特徴とする請
求項1,2,又は3のいずれかに記載のフラッシュ型メ
モリ。
4. The flash memory according to claim 1, wherein the management information of the block includes an erase count for the block.
【請求項5】 前記ブロックの管理情報として、ブロッ
クを消去した順番を示すイレースシーケンスナンバが含
まれることを特徴とする請求項4記載のフラッシュ型メ
モリ。
5. The flash memory according to claim 4, wherein the block management information includes an erase sequence number indicating an order of erasing the blocks.
【請求項6】 前記ブロックの管理情報として、ブロッ
クを消去した時刻情報が含まれることを特徴とする請求
項4又は5記載のフラッシュ型メモリ。
6. The flash memory according to claim 4, wherein the management information of the block includes time information at which the block was erased.
【請求項7】 前記ブロックの管理情報として、そのブ
ロックが有効/遷移中/無効/初期化のいずれの状態に
あるかを示す情報が含まれることを特徴とする請求項
1,2,3,4,5,又は6のいずれかに記載のフラッ
シュ型メモリ。
7. The management information of the block includes information indicating whether the block is in a valid / transition / invalid / initialized state. 7. The flash memory according to any one of 4, 5, and 6.
【請求項8】 ブロック単位に分割されたデ−タファイ
ルを各ブロックに割り当てるとともに、各ブロックの管
理情報を該当するブロックにそれぞれ格納する手段を備
えたことを特徴とする請求項1記載のフラッシュ型メモ
リの管理装置。
8. The flash-type flash memory according to claim 1, further comprising means for allocating a data file divided in block units to each block and storing management information of each block in the corresponding block. Memory management device.
【請求項9】 隣接する複数の前記第2及び第3のブロ
ックに対して実行プログラムファイルの割り当てるとと
もに、それら実行プログラムファイルが割り当てられた
ブロックの管理情報を前記第3のブロックに格納する手
段を備えたことを特徴とする請求項2記載のフラッシュ
型メモリの管理装置。
9. A means for allocating an execution program file to a plurality of adjacent second and third blocks and storing management information of a block to which the execution program file is allocated in the third block. The flash memory management device according to claim 2, further comprising:
【請求項10】 ブロックをイレ−スするための候補ブ
ロックを選択する際に、消去回数が同じであれば、前記
イレースシーケンスナンバに基づいて消去した順番に優
先的にブロックを選択する手段を備えたことを特徴とす
る請求項5記載のフラッシュ型メモリ管理装置。
10. A means for preferentially selecting blocks in the order of erasure based on the erase sequence number if the number of erasures is the same when selecting a candidate block for erasing the block. 6. The flash memory management device according to claim 5, wherein:
【請求項11】 ブロックをイレ−スするための候補ブ
ロックを選択する際に、消去回数が同じであれば、前記
時刻情報に基づいて消去したブロックの時刻が古いブロ
ックを優先的に選択する手段を備えたことを特徴とする
請求項6記載のフラッシュ型メモリ管理装置。
11. A means for preferentially selecting a block having an earlier erased block time based on said time information if the number of erases is the same when selecting a candidate block for erasing the block. 7. The flash memory management device according to claim 6, further comprising:
【請求項12】 各ブロックに格納されているデータの
書換回数を低減する手段を備えたことを特徴とする請求
項8,9,10,又は11のいずれかに記載のフラッシ
ュ型メモリ管理装置。
12. The flash memory management device according to claim 8, further comprising means for reducing the number of times data stored in each block is rewritten.
【請求項13】 システムの復旧やデ−タの復元を行な
う手段を備えたことを特徴とする請求項8,9,10,
11,又は12のいずれかに記載のフラッシュ型メモリ
管理装置。
13. The system according to claim 8, further comprising means for restoring the system or restoring data.
13. The flash memory management device according to any one of 11 and 12.
【請求項14】 請求項1,2,3,4,5,6,又は
7のいずれかに記載のフラッシュ型メモリと、請求項
8,9,10,11,12,又は13のいずれかに記載
の管理装置とを備えたことを特徴とする記憶装置。
14. The flash memory according to claim 1, 2, 3, 4, 5, 6, or 7, and the flash memory according to claim 8, 9, 10, 11, 12, or 13. A storage device, comprising: the management device according to any one of the preceding claims.
【請求項15】 請求項14記載の記憶装置を備えてお
り、前記実行プログラムファイルをフラッシュメモリ上
で動作させることを特徴とするコンピュータシステム。
15. A computer system comprising the storage device according to claim 14, wherein the execution program file is operated on a flash memory.
JP31761297A 1997-11-04 1997-11-04 Flash type memory and its management device Expired - Fee Related JP3503448B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31761297A JP3503448B2 (en) 1997-11-04 1997-11-04 Flash type memory and its management device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31761297A JP3503448B2 (en) 1997-11-04 1997-11-04 Flash type memory and its management device

Publications (2)

Publication Number Publication Date
JPH11143764A true JPH11143764A (en) 1999-05-28
JP3503448B2 JP3503448B2 (en) 2004-03-08

Family

ID=18090140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31761297A Expired - Fee Related JP3503448B2 (en) 1997-11-04 1997-11-04 Flash type memory and its management device

Country Status (1)

Country Link
JP (1) JP3503448B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271444A (en) * 2002-02-27 2003-09-26 Microsoft Corp Flash driver of open architecture
WO2005071522A1 (en) * 2004-01-27 2005-08-04 Nec Corporation High-speed restart method, information processing device, and program
JP2010218290A (en) * 2009-03-17 2010-09-30 Toshiba Corp Controller, and memory system
US8001315B2 (en) 2006-10-20 2011-08-16 Kabushiki Kaisha Toshiba Memory device and control method thereof
JP2012203864A (en) * 2011-03-28 2012-10-22 Toshiba Corp Memory system, controller and memory system control method
JP2014063358A (en) * 2012-09-21 2014-04-10 Fixstars Corp Information processor, information processing method, and program
JP2015185118A (en) * 2014-03-26 2015-10-22 トッパン・フォームズ株式会社 document file management system and document file management method
US9201787B2 (en) 2012-09-28 2015-12-01 Samsung Electronics Co., Ltd. Storage device file system and block allocation

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271444A (en) * 2002-02-27 2003-09-26 Microsoft Corp Flash driver of open architecture
JP4658455B2 (en) * 2002-02-27 2011-03-23 マイクロソフト コーポレーション Open architecture flash driver
US9298472B2 (en) 2004-01-27 2016-03-29 Nec Corporation High-speed restart method, information processing device, and program
WO2005071522A1 (en) * 2004-01-27 2005-08-04 Nec Corporation High-speed restart method, information processing device, and program
JPWO2005071522A1 (en) * 2004-01-27 2007-09-13 日本電気株式会社 Fast restart method, information processing apparatus, and program
US8001315B2 (en) 2006-10-20 2011-08-16 Kabushiki Kaisha Toshiba Memory device and control method thereof
US8041887B2 (en) 2006-10-20 2011-10-18 Kabushiki Kaisha Toshiba Memory device and control method thereof
JP2010218290A (en) * 2009-03-17 2010-09-30 Toshiba Corp Controller, and memory system
US8516182B2 (en) 2009-03-17 2013-08-20 Kabushiki Kaisha Toshiba Controller and memory system for managing data
US9053007B2 (en) 2011-03-28 2015-06-09 Kabushiki Kaisha Toshiba Memory system, controller, and method for controlling memory system
JP2012203864A (en) * 2011-03-28 2012-10-22 Toshiba Corp Memory system, controller and memory system control method
JP2014063358A (en) * 2012-09-21 2014-04-10 Fixstars Corp Information processor, information processing method, and program
US9201787B2 (en) 2012-09-28 2015-12-01 Samsung Electronics Co., Ltd. Storage device file system and block allocation
JP2015185118A (en) * 2014-03-26 2015-10-22 トッパン・フォームズ株式会社 document file management system and document file management method

Also Published As

Publication number Publication date
JP3503448B2 (en) 2004-03-08

Similar Documents

Publication Publication Date Title
KR100849221B1 (en) Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory
US7610434B2 (en) File recording apparatus
US5860082A (en) Method and apparatus for allocating storage in a flash memory
KR100453053B1 (en) Flash memory file system
USRE46404E1 (en) Flash memory management method
US5682497A (en) Managing file structures for a flash memory file system in a computer
US7340581B2 (en) Method of writing data to non-volatile memory
JP3544610B2 (en) Memory device
US7840617B2 (en) Host device and memory system
JP3503448B2 (en) Flash type memory and its management device
US6499094B1 (en) Management of memory heap space for data files accessible to programs operating in different addressing modes
JP3555456B2 (en) Flash memory management device
JPH10289158A (en) Task management device
JP2614357B2 (en) Bulk erase type E (2) PROM pre-programming method
JP2001101071A (en) Data storage device using flash type memory and data managing method for the same memory
US9170929B2 (en) Memory controller
JP3552490B2 (en) Storage device with flash memory, flash memory management method
JPH11272537A (en) Flash type memory and management device for the same
TWI544335B (en) Data storage device and flash memory control method
JPH0764831A (en) Data storage device
JP2009271848A (en) File system and data management method
JP2009211152A (en) Information processing apparatus, memory system, and control method therefor
KR100892608B1 (en) Error block management method for flash memory
JP2021140464A (en) Storage device, storage system and method
EP3948550A1 (en) An apparatus, method and computer program for managing memory page updates within non-volatile memory

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees