JP3503448B2 - フラッシュ型メモリ及びその管理装置 - Google Patents

フラッシュ型メモリ及びその管理装置

Info

Publication number
JP3503448B2
JP3503448B2 JP31761297A JP31761297A JP3503448B2 JP 3503448 B2 JP3503448 B2 JP 3503448B2 JP 31761297 A JP31761297 A JP 31761297A JP 31761297 A JP31761297 A JP 31761297A JP 3503448 B2 JP3503448 B2 JP 3503448B2
Authority
JP
Japan
Prior art keywords
block
area
data
execution program
blocks
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.)
Expired - Fee Related
Application number
JP31761297A
Other languages
English (en)
Other versions
JPH11143764A (ja
Inventor
和也 田中
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/ja
Publication of JPH11143764A publication Critical patent/JPH11143764A/ja
Application granted granted Critical
Publication of JP3503448B2 publication Critical patent/JP3503448B2/ja
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)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、フラッシュ型メ
モリ及びその管理装置にかかり、更に具体的には、フラ
ッシュ型メモリの効率的な管理手法の改良に関するもの
である。
【0002】
【背景技術】一般にフラッシュタイプのフロ−ティング
ゲ−トトランジスタを含む電気的に消去可能なプログラ
マブル読出専用メモリ(EEPROM)は、現在市場で
容易に入手できる。これらのいわゆるフラッシュメモリ
は、機能・性能面でEPROMメモリと類似した不揮発
メモリであり、メモリ内に分割されているブロックを消
去する回路内プログラマブル動作を可能にするという機
能を更に有する。フラッシュメモリでは、以前に書き込
まれたメモリの領域を前もって消去することで、その書
き換えが行われる。
【0003】典型的なコンピュ−タシステムでは、オペ
レ−ティングシステム(以下、単に「OS」という)の
プログラムがそのシステムのデ−タ記憶装置のデ−タ管
理を担う。OSプログラムとの互換性を達成するために
必要かつ十分であるデ−タ記憶装置のアトリビュ−ト
(属性)は、デ−タ記憶装置のいかなる位置からもデ−
タを読み出すことができ、これにデ−タを書き込むこと
ができることである。しかし、フラッシュメモリの場
合、デ−タが既に書き込まれている領域には、その領域
のデ−タを消去しなければデ−タを書き込むことはでき
ない。このため、フラッシュメモリは、典型的な既存の
OSプログラムとは互換性がない。
【0004】このような点に着目し、既存のOSプログ
ラムによってフラッシュメモリを管理することを可能に
するソフトウエアが先行技術において提案されている。
この先行技術のプログラムでは、フラッシュメモリを
「書込み1回読出し複数回」の装置として動作させる
か、「書込み複数回読出し複数回」の装置として動作さ
せている。前者は、以前に書き込まれているメモリ場所
を再利用することはできない装置であり、補助記憶装置
や拡張記憶装置として使用できる。後者は、以前に書き
込まれているメモリ領域を再利用可能とし、その領域中
にはフラッシュメモリの書換回数を少なくするような制
御を持つ補助記憶装置(半導体ファイル記憶装置)があ
る。
【0005】
【発明が解決しようとする課題】しかしながら、以上の
ような背景技術には、次のような不都合がある。 (1)上述のような先行技術に見られる装置によれば、フ
ラッシュメモリを使用した拡張記憶装置上では書換回数
を少なくなるような制御構造を持たずに実行プログラム
を動作させている。つまり、フラッシュメモリに対して
新たにデ−タの書換えを行うときは、全ブロックを一括
して消去し、その後、デ−タを記憶させる必要がある。
また、マルチタスク,マルチスレッド,マルチプロセス
に代表される並列実行プログラムやデ−タの共有あるい
は占有という管理を行う場合において、一般のMMU
(メモリ管理ユニット)を駆使してフラッシュメモリを
ブロック(ペ−ジ)毎に管理する方式では、書換回数の
管理と書換回数の低減を図ることは困難である。
【0006】(2)フラッシュメモリを使用した拡張記憶
装置上でプログラムの実行を可能とする装置にはないも
のの、フラッシュメモリの書換回数を少なくするような
制御構造を持つ装置として補助記憶装置(半導体ファイ
ル記憶装置)がある。補助記憶装置において書換回数を
少なくするためにその情報(書換回数テ−ブル)を異な
るメモリ上に記憶する方式である。しかし、実行プログ
ラムを主記憶装置にロ−ドすることなく、フラッシュメ
モリ上で動作させるプログラムにおいて、単純に同一フ
ラッシュメモリ上に記憶する方式では、ブロック間にま
たがるデ−タを無駄なく完全に連続的な配置を可能にす
ることは困難である。
【0007】この発明は、以上の点に着目したもので、
その目的は、フラッシュメモリを使用した拡張記憶装置
上でフラッシュメモリの書換回数を少なくするような制
御構造を持つ場合に、主記憶装置に実行プログラムをロ
−ドすることなく拡張記憶装置上でプログラムの実行を
可能とすることである。他の目的は、同一のフラッシュ
メモリを使用し、補助記憶装置として書換回数を少なく
する制御構造を持ちながら、マルチプロセッシング,マ
ルチスレッド,マルチタスクといった高度なプログラム
の実行環境においても、メモリ管理装置によって、安全
に実行プログラムのモジュ−ルやデ−タファイルの管理
の実現を可能とすることである。更に他の目的は、同一
フラッシュメモリ上で、拡張記憶装置および補助記憶装
置の混在を可能とするファイル管理技術を提供すること
である。
【0008】
【課題を解決するための手段】本発明のフラッシュ型メ
モリは、ブロック単位で記憶内容を消去できるフラッシ
ュ型メモリ第1,第2,第3のブロックを含んでお
り、第1のブロックは、そのブロックの管理情報を記憶
するヘッダ領域と、ブロック単位に分割されたデータフ
ァイルを格納する記憶領域とを備えており、第3のブロ
ックは、実行プログラムファイルが格納されたブロック
の管理情報を記憶するヘッダ領域と、ブロックごとに分
割された実行プログラムファイルを格納する記憶領域を
備えており、第2のブロックは、第3のブロックに隣接
し、実行プログラムファイルが、第3のブロックの実行
プログラムファイルを格納する記憶領域の容量を越えた
場合、第3のブロックに実行プログラムファイルが分割
され格納された続きのデータを格納する記憶領域を備え
ていることを特徴とする。
【0009】
【0010】本発明のフラッシュ型メモリの管理装置
は、隣接する複数の前記第2及び第3のブロックに対し
て実行プログラムファイル割り当てるとともに、それ
ら実行プログラムファイルが割り当てられたブロックの
管理情報を前記第3のブロックに格納する手段を備えた
ことを特徴とする。
【0011】
【0012】
【0013】
【0014】この発明の前記及び他の目的,特徴,利点
は、以下の詳細な説明及び添付図面から明瞭になろう。
【0015】
【発明の実施の形態】以下、本発明の実施の形態につい
て詳細に説明する。本形態は、例えば図1に示すよう
に、プロセッサ10,フラッシュメモリ12およびその
制御装置14を含む拡張もしくは補助の記憶装置,RA
M(主記憶装置)16を含むコンピュ−タシステムに適
用される。このようなシステムで、同一フラッシュメモ
リを使用して、実行プログラムモジュ−ルとデ−タファ
イルのデ−タを共存させるとともに、デ−タの書換回数
をできる限り低減するデ−タの格納方法と管理・制御の
ための装置を得ようとするものである。
【0016】まず、実行プログラム領域とデ−タ領域を
管理するため、フラッシュメモリ12の管理単位をその
最小イレ−ス(消去)単位である1ブロックとする。そ
して、この最小単位であるブロック内に、実行プログラ
ム領域とデ−タ領域の混在を認めないこととする。各ブ
ロックには、実行プログラム領域もしくはデ−タ領域
と、そのブロックを管理する情報を持つヘッダ領域とが
存在する。
【0017】ここで、デ−タ領域に割り当てようとする
ブロックには、そのブロックのヘッダ領域内にデ−タの
属性を持つことを宣言する。同様に、実行プログラム領
域に割り当てようとするブロックには、そのブロックの
ヘッダ領域内に実行プログラムの属性を持つことを宣言
する。ただし、この実行プログラム領域については、1
つのブロックに1つのヘッダ領域が必ずしも必要という
ことではない。すなわち、連鎖する複数ブロックを連続
的に実行プログラム領域として確保したい場合は、確保
ブロック数をヘッダ領域内で宣言する。これによって、
宣言した連鎖する複数ブロックは、ヘッダ情報を持たな
くてもよい。つまり、実行プログラムのメモリ配置とし
て、1つのヘッダ領域により複数の連続するブロックに
実行プログラム領域を確保する。一方、デ−タ領域は1
つのブロック内にヘッダ領域と混在することになる。こ
のデ−タ領域内には、該当するブロックに関する情報を
付加する。
【0018】図2には、本形態におけるソフトウエアの
基本構造の一例が示されている。同図のように、OS2
0やアプリケ−ションソフト22とのソケットインタ−
フェ−スとして、いわゆるドライバ層24に相当する部
分にフラッシュ管理マネ−ジャ26を設ける。このフラ
ッシュ管理マネ−ジャ26は、本形態のシステム用ドラ
イバと考えることができる。このフラッシュ管理マネ−
ジャ26によって、ブロック情報の管理やデ−タのリ−
ド/ライトの制御が行なわれる。
【0019】例えば、図3[A]に示すように、ブロッ
ク消去がiバイト単位で可能で、かつブロック数がn+
1(16進数)個あるフラッシュメモリが1つあるとす
る。これら各ブロックを、物理ブロックと呼ぶことにす
る。そして、各物理ブロックに、アドレスの低い方から
高い方へ順に物理ブロックナンバを「0」から「n」ま
で割り振る。図示の例では、図の上方がアドレスが低
く、物理ブロック0,物理ブロック1,物理ブロック
2,……,物理ブロックnとなっている。
【0020】ここで、それぞれの物理ブロックを管理し
ている情報のヘッダ領域としてjバイト分を確保したと
すると、各物理ブロックに割り当てられる実行プログラ
ム領域あるいはデ−タファイル領域のサイズは、i−j
バイトとなる。そして、同一ブロックの記憶領域には、
実行プログラム領域とデ−タファイル領域の混在は認め
ないことにする。この様子を示すと、図3[B]のよう
になる。例えば、最上位の物理ブロック0には、jバイ
トのヘッダ領域30Aと、i−jバイトの記憶領域30
Bが存在する。次の物理ブロック1には、jバイトのヘ
ッダ領域31Aと、i−jバイトの記憶領域31Bが存
在する。以下の物理ブロックについても同様である。
【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が存在し、これらによってブロック毎に管
理される。
【0022】次に、図4[B]の例は、物理ブロック0
をデ−タファイル領域として割り当て、物理ブロック1
〜Aを実行プログラム領域として割り当て、それ以後は
デ−タファイル領域として割り当てた例である。図4
[C]の例は、物理ブロック0〜n−9をデ−タファイ
ル領域に、物理ブロックn−8〜n−3を実行プログラ
ム領域に、それ以後をデ−タファイル領域にそれぞれ割
り当てた例である。このように、連続して確保された実
行プログラム領域は一つのヘッダ領域によって管理され
る。そして、物理ブロック数の制限や固定したアドレス
配置にすることはない。しかし、デ−タファイル領域
は、連続して確保されたとしても、各ブロック毎に管理
される。
【0023】図5に示す例では、実行プログラム領域が
分割して配置されている。まず、図5[A]の例では、
物理ブロック0〜7に実行プログラム領域(1)が割り当
てられており、物理ブロック8にはデ−タファイル領域
が割り当てられている。そして、物理ブロック9〜F−
1に実行プログラム(2)が割り当てられており、物理ブ
ロックF以後はデ−タファイル領域用に確保されてい
る。この例でも、連続する実行プログラム領域は、一つ
のヘッダ領域で管理されている。
【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)が指定されている例を示してい
る。しかし、本形態では、実行プログラム領域を更に複
数の領域で配置することが可能である。
【0025】次に、物理ブロックのヘッダ領域について
説明する。物理ブロックヘッダには、実行プログラム領
域用とデ−タファイル領域用とがある。この2種類の領
域を判断するために、ヘッダは共通部分の構造を持つこ
とが望ましい。そこで、物理ブロックヘッダの共通する
部分の構造を、例えば次のように割り当てる。
【0026】(1)状態(有効/無効/遷移中/初期化完
了)を示すフラグ (2)実行プログラム領域/デ−タファイル領域を示すマ
−カ−フラグ (3)連続予約ブロックの領域数 (4)ブロックの消去回数 (5)ブロックの消去した順番を示す番号(イレ−スシ−
ケンスナンバ) (6)ブロックを初期化した時刻 (7)ブロック領域名
【0027】これらのうち、まず(1)のフラグについて
説明する。フラッシュ管理マネ−ジャ26(図2参照)
は、各物理ブロックヘッダの内容を読み、フラッシュメ
モリがどのように管理されているかを把握する。フラッ
シュメモリのメモリセル内のビットデ−タは、論理値の
「1」→「0」への変化の処理時間は比較的短いが、
「0」→「1」への変化は、一度ブロックイレ−ス又は
イレ−スをしなければならず、長時間を要する。つま
り、1ビットのデ−タの書換えを行なうために、そのブ
ロック内のデ−タを一時待避させるとともに、ブロック
イレ−ス後に書き戻す必要があり、処理時間としては大
きい。
【0028】そこで、実際には、状態を示すフラグを利
用して物理ブロックの状態を管理することになる。すな
わち、上述した書換えに伴うオ−バ−ヘッドを軽減すた
め、物理ブロックヘッダ内にその物理ブロックが有効な
状態か,それとも無効な状態か,初期化が完了した状態
か,有効な状態から無効な状態への遷移状態か,といっ
た状態をそれぞれの物理ブロック毎に認識し、デ−タの
書込み,デ−タの無効化,物理ブロックのイレ−ス,物
理ブロックの初期化などの操作を行なう。
【0029】次に、(2)のマ−カ−フラグは、該当する
物理ブロックがデ−タファイル領域に割り当てられた
か、それとも、実行プログラム領域に割り当てられたか
を示すフラグである。これによって、実行プログラム領
域に指定されたとき、(3)の連続予約ブロック数に実行
プログラムとして後に続くブロックの数を指定する。し
かし、デ−タファイル領域に指定されているときは、連
続予約ブロック数を0とする。
【0030】次に、(4)のブロックの消去回数には、各
ブロックを消去(ブロックイレ−ス)した回数を記録す
る。ブロックイレ−スするときは、記録されている以前
の消去回数を一時的に保持し、ブロックイレ−ス終了
後、一時的に保持している以前の消去回数に1インクリ
メントしてデ−タを格納する。
【0031】次に、(5)のブロックの消去した順番を示
す番号は、同じときにどの順番に物理ブロックのイレ−
スを行なったかを判別するためのものである。ある物理
ブロックをブロックイレ−スし、その後、他の物理ブロ
ックのブロック消去回数が同じものがあれば、その消去
回数のブロックのイレ−スシ−ケンスナンバ−に1イン
クリメントしたものを該当ブロックヘッダのイレ−スシ
−ケンスナンバ−に格納する。すなわち、消去回数が同
じものが複数ブロック存在するとき、それらの中の最大
のイレ−スシ−ケンスナンバの値に1インクリメントし
て該当ブロックヘッダ内のイレ−スシ−ケンスナンバに
格納する。
【0032】次に、(6)のブロックを初期化した時刻に
は、該当する物理ブロックをブロックイレ−スしたとき
の時刻を記入する。なお、リアルタイムクロックを持た
ないシステムの場合は不要である。
【0033】次に、(7)のブロック領域名は、実行プロ
グラムやデ−タファイルの中でそのブロックに割り当て
た固有の名称である。
【0034】新たにブロックの割り当てを行なう際、全
体のブロックが効率よく、つまり特定のブロックに偏ら
ず、消去回数がすべてのブロックで均一化されるように
管理するために、上述した管理情報が利用される。ま
ず、フラッシュ管理マネ−ジャ26は、新たに物理ブロ
ックを割り当てるとき、消去回数の少ないものに対して
優先的に割り当てを行なう。もし、消去回数が同じブロ
ックがあるとき、その中でイレ−スシ−ケンスナンバの
もっとも若い番号のものを割り当てる。最も若いイレ−
スシ−ケンスナンバのブロックは、消去した時刻が最も
古いものである。また、リアルタイムクロックを持つシ
ステムでは、イレ−スシ−ケンスナンバの代わりにその
クロックを使用する。すなわち、消去回数が同じブロッ
クがあるとき、その中の物理ブロック内のもっとも古い
時刻を持つブロックを割り当てる。このように、イレ−
スシ−ケンスナンバあるいはリアルタイムクロックのう
ちのいずれか一方をもてば、少しでも効率よくブロック
の割り当てを均一化することができる。
【0035】実行プログラムの配置は、物理ブロックヘ
ッダの後からその領域内において、実行プログラムデ−
タをROMの場合と同じように配置することによって行
なう。これは、OS20に依存する部分が大きいため、
従来の方法によって対応することになる。
【0036】一方、デ−タファイルの配置は、フラッシ
ュ管理マネ−ジャ26によって行われる。図6[A]に
示すように、デ−タファイルは、物理ブロックヘッダ4
0Aの領域を除く記憶領域40Bに格納されることにな
る。デ−タの格納構造として、デ−タファイル内の論理
的なデ−タレコ−ドをブロッキングし、図6[B]に示
すように、デ−タレコ−ドヘッダ42A,デ−タレコ−
ドフッダ42Cを付随させた形でデ−タレコ−ド42B
のパケット42を構成する。ブロッキングの方法として
は、固定長レコ−ド,可変長レコ−ド,スパンドレコ−
ドがあり、本形態ではいずれの手法であってもよい。こ
のブロッキングは、OS20やアプリケ−ションソフト
22に依存することが多いため、システム上、フラッシ
ュ管理マネ−ジャ26がブロッキングの方法を決定して
制御する。
【0037】また、デ−タレコ−ドヘッダ42A,フッ
ダ42Cには、線形リスト構造を持たせるようにする。
デ−タレコ−ドの方法によっては、ブロック領域名の最
適な利用方法が異なる。システム設計する際、ブロック
領域名として、パ−ティション名,デ−タファイル名,
ディレクトリ名などのように、最適なものを割り当てる
ようにする。最適なブロック領域名は、デ−タレコ−ド
の方法に依存することが多い。
【0038】デ−タファイルの論理的なデ−タレコ−ド
42Bは、上述したようにデ−タレコ−ドパケット42
として、割り当てられた物理ブロックのデ−タファイル
領域40Bに格納される。図6[B]にはその様子が示
されており、デ−タレコ−ドパケット(1)〜(n)が、i−
jバイトのデ−タファイル領域40B中に格納される。
フラッシュ管理マネ−ジャ26は、デ−タレコ−ドパケ
ット42の管理と物理ブロック40Bによる管理という
2重の管理を行なう。
【0039】次に、物理ブロックの初期化の手順につい
て説明する。フラッシュ管理マネ−ジャ26は、フラッ
シュメモリが初期化されていなければ、まず最初に各物
理ブロックを初期化する。初期化する場合は、一度すべ
てのブロックをイレ−スし、各物理ブロックのブロック
ヘッダに初期化完了フラグ,消去回数(1回),イレ−
スシ−ケンスナンバあるいは、初期化時刻などの情報を
格納する。次に、通常は、実行プログラムやデ−タファ
イルを格納するため、各物理ブロックの領域を宣言(確
保)する。つまり、実行プログラム領域やデ−タファイ
ル領域を示すマ−カ−フラグ,連続予約ブロックの領域
数の情報を格納する。このときに、ブロックの領域名を
割り当るようにしてもよい。また、後でブロックの領域
名を割り当てるのであれば、フラッシュ管理マネ−ジャ
26がその対応を行なう。
【0040】次に、デ−タファイルを格納するときの手
順を説明する。物理ブロックヘッダの有効フラグをON
にし、その後ブロッキングされたデ−タレコ−ドをデ−
タ領域内に順次格納して行く。デ−タレコ−ドはデータ
領域に追記していくことになるが、デ−タレコ−ドを書
き換えたい場合は、フラッシュメモリの特徴からその部
分を書き換えることはオ−バ−ヘッドが大きい。
【0041】そこで、旧論理デ−タレコ−ドから新論理
デ−タレコ−ドへのデ−タ格納は、旧デ−タレコ−ドを
無効とし、新たにデ−タレコ−ドを追記していく方法で
行う。無効となったデ−タレコ−ドは、デ−タレコ−ド
ヘッダ内に無効フラグを持たせることによって、フラッ
シュ管理マネ−ジャ26が無効と判断できる。物理ブロ
ックのデ−タ領域内のデ−タレコ−ドパケットのすべて
が無効となった場合は、その物理ブロックヘッダ内の無
効フラグをONすることによって、フラッシュ管理マネ
−ジャ26はこの物理ブロックをブロックイレ−スする
ことができる。ブロックイレ−スが完了すると、前述の
ブロックヘッダの初期化を行なう。
【0042】次に、実行プログラムを格納するときの手
順を説明する。最初に実行プログラム領域として複数ブ
ロックを確保するときは、まず、物理ブロックヘッダ内
の有効フラグ,実行プログラム領域を示すマ−カ−フラ
グ,予約領域ブロック数の各情報を格納する。これによ
り、実行プログラム領域内に実行プログラムをROM化
したデ−タを格納する。
【0043】以上をシステムとして運用し、その途中結
果として、デ−タファイル領域の書換回数と実行プログ
ラム領域の書換回数と比較する。そして、大幅な回数の
開きがあれば、現在配置されている領域を変更し、デフ
ラグメンテ−ションを行なうことが望ましい。フラッシ
ュ管理マネ−ジャ26は、それぞれの領域を管理してい
るためデフラグメンテ−ション操作における動的配置に
対応でき、システムとして矛盾を起こす心配もない。こ
れらを行なうことで効率的な領域配置を実現できる。ま
た、結果として運用時間を延ばし、フラッシュメモリの
書換寿命(回数ではなく時間)を延ばすこともできる。
なお、フラッシュメモリによっては、ライト(書込)操
作中に他のオペレ−ションができないチップが存在す
る。このようなときは、タスク,スレッドのようなプロ
グラミング技法により、排他制御を行なうようにする。
【0044】図7には、フラッシュメモリに対する物理
ブロックヘッダの格納例が示されている。図7[A]の
例は、64Kバイトを消去ブロック単位とするフラッシ
ュメモリで、ブロック数がn+1個あるシステムであ
る。各物理ブロックの先頭には、図7[B]に示すよう
に、各物理ブロックの管理情報であるヘッダ領域とし
て、256バイトが割り当てられている。上述したよう
に、デ−タファイルの場合には、該当する物理ブロック
内に必ず物理ブロックヘッダを付随させる。しかし、実
行プログラムファイルの場合はその限りではない。以
下、本形態の実施例について説明する。
【0045】(1)実施例1 この実施例1は、ブロックシ−ケンスナンバを用いる例
である。本例のファイル管理装置では、図8[A]に示
すように、ブロック消去が64Kバイト単位で可能な2
M×8ビットのフラッシュメモリが使用される。図8
[A]に示すように、各ブロックに「0」から「1F」
と順に番号を付ける。このようなフラッシュメモリに対
して、図5[A]のように実行プログラム領域を連続領
域として確保したとすると、図8に[B]に示すように
なる。当然、実行プログラム領域(1)に領域指定されて
いる物理ブロック1〜7には物理ブロックヘッダはな
い。同様に、実行プログラム(2)に領域指定されている
物理ブロック10〜Eには、物理ブロックヘッダはな
い。
【0046】そこで、本実施例では、図9に示すよう
に、1バイト目から18バイト目までを共通のデ−タ構
造をもつことにする。これにより、この共通部分をフラ
ッシュ管理マネ−ジャ26によってスキャンすれば、全
体の構造を把握することができる。そして、次の19バ
イト目から実行プログラム領域あるいはデ−タファイル
領域に割り当てられた内容を追記していけばよい。
【0047】共通部分の内容を順に説明すると、まず1
バイト目には、図10[A]に示すように、有効/遷移
中/無効,初期化完了状態,予約のフラグがある。これ
らのうち、有効/遷移中/無効のフラグは、このブロッ
ク領域が有効状態か,それとも有効から無効になる遷移
中(過渡期)の状態か,完全に無効になった状態かを示
す。初期化完了状態のフラグは、ブロックのイレ−ス後
にブロックヘッダの初期化(フォ−マット)が完了した
ことを指し示す。予約のフラグは、システムを拡張する
ときに使用するための予備フラグである。実際のビット
の割付例を示すと、表1[A]のようになる。
【0048】
【表1】
【0049】次に、図10[B]を参照してブロックイ
レースの手順を説明する。フラッシュ管理マネ−ジャ2
6の判定により、ブロックイレ−ス命令が出されたとき
(図10[B]の50)、次の状態として旧ブロックヘ
ッダの消去回数などを一時保存し(52)、このブロッ
クのブロックイレ−スを行なう(54)。ブロックイレ
−スを行なった直後、イレースされたブロックの記憶エ
リアのデ−タ値は、すべてFFhとなっている(5
6)。この後すぐに、フラッシュ管理マネ−ジャ26が
初期化(フォ−マット)操作(58)によって、ビット
4が0となり、この記憶エリアのデ−タ値はFFhから
EFhに遷移する(60)。
【0050】更にその後、このブロックのヘッダに、イ
レ−ス前に一時保存しておいた消去回数に+1した値を
書き込み、物理ブロックの初期化を行なう。そして、新
たにこのブロックへの使用要求によってフラッシュ管理
マネ−ジャ26が割り当てを行ったとすると(62)、
ビット7に0を書き込み、このエリアのデ−タの値はE
Fhから6Fhに遷移する(64)。更に、フラッシュ
管理マネ−ジャ26がこのブロックの無効要求を認めれ
ば(66)、ビット6に0を書き込み、このエリアのデ
−タの値は6Fhから2Fhに遷移する(68)。
【0051】デフラグメンテ−ションを行なう際、フラ
ッシュ管理マネ−ジャ26の機能により、物理ブロック
にはコピ−元,コピ−先,ム−ブなどのような遷移中の
状態が存在する。デ−タファイル領域としての物理ブロ
ック内の有効な状態から遷移中の状態にするには(7
0)、ビット5を0にし、このエリアのデ−タの値は6
Fhから4Fhに遷移させればよい(72)。この遷移
中の状態を存在させることは、遷移に要する時間が少な
くないことの他に、電池の消耗による動作の不安定や、
カ−ド型フラッシュメモリが外されたときなどにおける
安全性を高めるためである。つまり、本発明では、この
遷移段階の状態を管理し、故障・事故などによるデ−タ
の消失を最小限に抑え、復旧させるように構成されてい
る。
【0052】次に、図9に示す共通部分の2バイト目に
ついて説明する。この2バイト目には、図9に示すよう
に、プログラム/データ,連続予約ブロック領域数のフ
ラグがあり、図10[C],表1[C]に示すようにな
っている。これらのうち、プログラム/データのマーカ
ーフラグは、実行プログラム,デ−タファイルのいずれ
がそのブロックに割り当てられたかを決定するフラグで
ある。このマ−カ−フラグが0のとき、実行プログラム
領域にこのブロックが指定されたことになる。
【0053】連続予約ブロック領域数のフラグは、実行
プログラム領域に指定した残りのブロック数が16進数
で表記されている。しかし、このマ−カ−フラグが1
で、この物理ブロックはデ−タファイル領域として割り
当てているとき、連続予約ブロック数には000000
0bを書く。
【0054】次に、図9の3〜5バイト目は、表1
[D]に示すように、そのブロックの消去回数を16進
で表記している。3バイト目がその回数の下位の桁、4
バイト目がその回数の中位の桁、5バイト目にはその回
数の上位の桁として、それぞれデ−タを格納する。従っ
て、FFFFFFh回がブロック連続の最大数値とな
る。なお、この最大値のとき、更なるインクリメントは
行われない。
【0055】次に、図9の6バイト目であるが、これ
は、各物理ブロックの消去回数が同じときに、フラッシ
ュ管理マネ−ジャ26が最適な物理ブロックの割り当て
を行なうために用意されたもので、上述したイレースシ
ーケンスナンバである。このイレ−スシ−ケンスナンバ
は、物理ブロックの消去回数が他の物理ブロックと同じ
ときに、どの順番で物理ブロックの初期化がなされたか
を記録するものである。イレ−スシ−ケンスナンバ−の
割付の流れとして、まず該当する物理ブロックの消去回
数と他のブロックで消去回数で同一のものがなければ、
該当する物理ブロックのイレ−スシ−ケンシナンバは0
x00となる。
【0056】もし、他のブロックで消去回数が同じもの
があるときは、その中で最も大きいイレ−スシ−ケンス
ナンバを検出し、該当ブロックのイレ−スシ−ケンスナ
ンバには先ほど検出したイレ−スシ−ケンスナンバの値
に1インクリメントした値を記録する。このようなアル
ゴリズムによって、イレースシ−ケンスナンバの割付を
行なう。イレースシーケンスナンバは、フラッシュ管理
マネ−ジャ26が物理ブロックの割り当てを行なうとき
の判断材料となる。
【0057】次に、図9の7バイト目から18バイト目
までは、該当するブロックの領域名を記録する。実行プ
ログラムファイルの場合、パ−ティション名やディレク
トリ名などに利用すると、システム運用が容易になる。
また、デ−タファイルの場合は、デ−タレコード方式に
よって最適となるようなブロック領域名の扱いが考えら
れる。例えば、デ−タレコ−ドの方法が固定長,可変長
レコ−ド,スパンドレコ−ドのようなファイルを二重管
理する場合には、パ−ティション名,ディレクトリ名な
どが適している。しかし、固定長や可変長レコ−ドでフ
ァイルを一元管理する場合には、デ−タファイル名とし
て扱うほうが望ましい。本実施例では、ブロック領域名
は8.3形式で、MS−DOSのような表現方法を利用
する。
【0058】以上のような構造の物理ブロックヘッダを
用いてフラッシュファイル管理システムを実現する。フ
ラッシュ管理マネ−ジャ26は、OS20やアプリケ−
ションソフト22などの要求により、実行プログラムや
デ−タファイルなどの読み出し,書き込みを制御する。
まず、書き込みに際しては、フラッシュメモリの特徴と
して書き込み遅延の影響がある。このため、オ−バヘッ
ドを少なくして効率よく書き込みを行なうためには、他
のデ−タファイル領域に新たに追記していく方式をとる
ことになる。この方式を実行するためには、書換前の旧
デ−タと書換後の新デ−タが論理的には変更されている
が、物理的には旧デ−タが無効となり、新デ−タが追記
されることになる。
【0059】つまり、物理的には旧デ−タと新デ−タは
共存するものの、旧デ−タに無効フラグを記すことによ
って論理的に削除することになる。このような動作をフ
ラッシュファイルシステムが繰り返すと、論理的な無効
デ−タが数多く存在することになる。場合によっては、
新規のデ−タファイル領域がなくなる危険性すらある。
このことを避けるために、フラッシュ管理マネ−ジャ2
6は、デ−タの無効化を定期的に検知し、デフラグメン
テ−ションの操作を行なって効率よくデ−タファイル領
域を確保する。
【0060】デ−タファイル領域としての物理ブロック
の割り当ては、フラッシュ管理マネ−ジャ26が行な
う。このとき、OS20やアプリケ−ションンソフト2
2の要求によってデ−タファイル領域を与えることにな
るが、本実施例のアルゴリズムでは、優先的に消去回数
が少ない物理ブロックに割り当てられる。また、デフラ
グメンテ−ション操作を行なうときなどは、消去回数が
少ないブロックについて優先的にデ−タレコ−ドパケッ
トの無効化を行ない、その物理ブロックのデ−タファイ
ル領域内をすべて無効化することによって、ブロックの
使用回数の均一化が図られる。そしてそれらの中で少し
でも物理ブロックの使用回数を効率的に均一化するた
め、イレ−スシ−ケンスナンバの若いものを優先させ
て、割り当てる物理ブロックやブロックイレ−スの管理
が行われる。
【0061】フラッシュファイルシステムを運用してい
くと、結果として実行プログラム領域とデ−タファイル
領域の消去回数が大きく違ってくるようになる。そし
て、ある程度消去回数に開きが生じると、フラッシュ管
理マネ−ジャ26は、実行プログラム領域で使用してい
る物理ブロックとデ−タファイル領域で使用している物
理ブロックとを入れ替え、これによってフラッシュファ
イルシステムの運用寿命の延命化が図られる。
【0062】読み出しの場合は、フラッシュ管理マネ−
ジャ26がフラッシュメモリの読み出しを行なうことを
要求し、許可確認後、ブロッキングされたデ−タレコ−
ドパケットを論理的なデ−タレコ−ドとして扱うことに
よって可能となる。また、書き込みの場合、フラッシュ
管理マネ−ジャ26にフラッシュメモリへの書き込みを
行なうことを要求し、許可確認後、論理的なデ−タレコ
−ドをブロッキングし、デ−タレコ−ドパケット化して
指定エリアに格納する。デ−タの書換えは、物理的にデ
−タレコ−ドパケットを無効化し、新たに追記すること
によって実現する。ただし、物理的にメモリエリアは縮
小する。これらのデ−タのブロッキング方法は、上述し
た通りであり、背景技術により実現されている。
【0063】物理ブロックのデ−タファイル領域内です
べてのデータが無効化された場合、その物理ブロックヘ
ッダの無効フラグをONとすることによって、その物理
ブロック全体が無効化されたことになる。そして、フラ
ッシュ管理マネ−ジャ26はこのことを検知し、そのブ
ロックをイレ−スして初期化操作を始める。また、デフ
ラグメンテ−ション操作により、コピ−元のデ−タファ
イルの属する物理ブロックヘッダの遷移中フラグをON
にする。そして、必要なデ−タが全部コピ−されたな
ら、その物理ブロックヘッダの無効フラグをONにし、
前述のブロックイレ−ス・初期化操作を行なう。遷移中
フラグのONから無効フラグのONまでの間に何らかの
原因による異常な状態があり、システムが再起動したと
きなどには、これらの状態フラグを監視し、解析するこ
とによって、どの状態から停止あるいは異常となったか
を検出することができる。そして、システムを修復・復
旧させるための貴重な情報源となる。
【0064】フラッシュ管理マネ−ジャ26は、それぞ
れの物理ブロックの状態を監視,管理していくことにな
る。OS20やアプリケ−ションソフト22の要求に応
じて該当する物理ブロックを割り当て、有効→(遷移
中)→無効→初期化の状態の監視,管理を実行する。そ
して、フラッシュファイルシステムを運用していくと、
各物理ブロックの状態の変化として、初期化→有効,有
効→無効,有効→遷移中,移中→無効,無効→初期化,
初期化→無効などが挙げられる。
【0065】[初期化→有効]は、物理ブロックが初期
化状態から、その物理ブロックがデ−タファイル領域等
として割り当てられたとき、有効フラグONによって有
効状態となる。
【0066】[有効→無効]は、デ−タファイルとして
その物理ブロックが有効でデ−タファイル領域内に少な
くとも一つは論理的に有効なデ−タがある状態から、デ
−タファイル領域内がすべて論理的に無効なデ−タとな
り、フラッシュ管理マネ−ジャ26が、その後この物理
ブロックの無効フラグをONとし、物理ブロックの無効
化を行なう。
【0067】[有効→遷移中]は、少なくとも一つは存
在する論理的に有効なデ−タレコ−ドパケットを、異な
る物理ブロックのデ−タファイル領域にコピ−すると
き、コピ−元となる物理ブロックに対して遷移中フラグ
をONにする。この状態のとき、デ−タレコ−ドパケッ
トがコピ−されていることになる。
【0068】[遷移中→無効]は、前述の遷移中の状態
が終了し、物理ブロックが無効となったことを示す。つ
まり、デ−タレコ−ドパケットのコピ−が完了し、フラ
ッシュ管理マネ−ジャ26が無効フラグをONにする。
【0069】[無効→初期化]は、物理ブロックが無効
な状態からその物理ブロックをブロックイレ−スし、物
理ブロックヘッダを初期化が完了したとき、フラッシュ
管理マネ−ジャ26が初期化フラグをONにする。この
とき、物理ブロックヘッダの初期化が完了し、デ−タフ
ァイル領域として使用可能な状態となる。
【0070】[初期化→無効]は、物理ブロックが初期
化された状態から、その物理ブロックが無効になった状
態を示す。これは、状態として存在する可能性はある
が、システムとしては多用すべきではない。
【0071】フラッシュ管理マネ−ジャ26は、各物理
ブロックの状態を管理・監視し、何らかの原因による異
常状態からの脱却後、有効/無効/遷移中/初期化フラ
グを、異常状態以前のデ−タの復元や復旧をするための
情報源とする。つまり、これらの変化状態を考慮するこ
とで、システムの停止や異常が生じたシステムの修復や
デ−タレコ−ドパケットの復元を行なうとき、どの状態
から異常になったかを検出することができる。
【0072】(2)実施例2 この実施例2は、実施例1のイレースシ−ケンスナンバ
の代わりに初期化した時刻を記録する方法である。すな
わち、図11にブロックヘッダの構成を示すように、1
9バイト目から21バイト目までに初期化が行われた年
/月/日/時/分/秒を記録する。実施例1のイレ−ス
シ−ケンスナンバは、同一消去回数のときの初期化され
た順番を指していたが、実施例2では、ブロックの使用
回数の均一化を図るアルゴリズムにおいて、すべての物
理ブロックの使用回数を少しでも効率的に向上させるた
めに、消去回数が同じときは最も古い時刻のものを優先
させることによって、割り当てる物理ブロックやブロッ
クイレ−スの管理が行なわれる。
【0073】(3)実施例3 この実施例3は、実施例1と実施例2を組み合わせ、イ
レースシ−ケンスナンバと初期化時刻の双方を記録する
方法である。図12に示すように、6バイト目にイレー
スシーケンスナンバを記録し、19バイト目から21バ
イト目までに初期化の年/月/日/時/分/秒を記録す
る。実施例1,実施例2とほとんど同じであるが、ブロ
ックの使用回数の均一化を図るアルゴリズムにおいて、
すべての物理ブロックの使用回数を少しでも効率的に向
上させるために、消去回数が同じときはイレ−スシ−ケ
ンスナンバの若いものから優先させるようにする。ま
た、最も古い初期化時刻の物理ブロックが存在するとき
は、消去回数を他と見比べて効率がよいと判断できると
き、その物理ブロックを優先的に割り当てるアルゴリズ
ムによって、割り当てる物理ブロックやブロックイレ−
スの管理が行なわれる。
【0074】この発明には数多くの実施形態があり、以
上の開示に基づいて多様に改変することが可能である。
例えば、次のようなものも含まれる。 (1)前記形態はフラッシュメモリに本発明を適用したも
のであるが、他の類似するメモリがフラッシュメモリと
同じ書込み,読出し機能を備えており、かつ、書込前ブ
ロック消去特性を有するメモリであれば、同様に適用可
能である。 (2)フラッシュメモリのイレース単位である物理ブロッ
クは、バイト単位やワード単位の他、どのようなデータ
単位であっても、同様に適用可能である。
【0075】
【発明の効果】以上説明したように本発明によれば、次
のような効果がある。 (1)フラッショ型メモリを使用した拡張記憶装置上で、
フラッシュ型メモリの書換回数を少なくするような制御
構造を持ち、かつ、主記憶装置に実行プログラムをロ−
ドすることなく、フラッシュ型メモリ上でプログラムの
実行が可能となる。また、書換回数を少なくする制御構
造をもつ補助記憶装置としても、無駄の少ないデ−タ構
造で記憶を行うことが可能となる。
【0076】(2)各ブロックの書換回数等の情報テ−ブ
ルのためのエリアをブロック内に設けることとしたの
で、別にメモリを設ける必要がなく、コストの削減が可
能となる。特に、拡張記憶装置と補助記憶装置を1つの
フラッシュ型メモリ上で混在させることができ、システ
ムとして省スペ−ス,コスト削減を図ることができる。
【0077】(3)物理ブロックの有効/遷移中/無効/
初期化という状態フラグをもつこととしたので、コンピ
ュータシステムの異常による停止からの復旧やデ−タの
復元に有効である。
【図面の簡単な説明】
【図1】この発明の一形態を利用したシステムの基本構
成を示す図である。
【図2】一形態におけるソフトウエア構造を示す図であ
る。
【図3】一形態におけるフラッシュメモリ内での物理ブ
ロックの割付を行なったメモリマップを示す図である。
【図4】1つの実行プログラム領域と複数のデ−タファ
イル領域を物理ブロックに割り当てた例を示す図であ
る。
【図5】複数の実行プログラム領域と複数のデ−タファ
イル領域を物理ブロックに割り当てた例を示す図であ
る。
【図6】デ−タファイル領域のデ−タレコ−ドパケット
の例と格納方法の例を示す図である。
【図7】ブロックイレ−スが64Kバイト単位のフラッ
シュメモリを物理ブロック単位に分割して256バイト
のブロックヘッダを確保した例を示す図である。
【図8】実施例1で使用しているフラッシュメモリを実
行プログラム領域とデ−タファイル領域に分割したメモ
リマップの例を示す図である。
【図9】実施例1で使用している物理ブロックヘッダの
メモリマップの例を示す図である。
【図10】実施例1における物理ブロックヘッダの一部
とシ−ケンスを表す図である。
【図11】実施例2で使用している物理ブロックヘッダ
のメモリマップの例を示す図である。
【図12】実施例2で使用している物理ブロックヘッダ
のメモリマップの例を示す図である。
【符号の説明】
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…データレコードフッダ
フロントページの続き (56)参考文献 特開 平8−272654(JP,A) 特開 平6−322795(JP,A) 特開 平6−250798(JP,A) 特開 平7−200418(JP,A) 特開 平8−172373(JP,A) 特開 平7−160597(JP,A) 特開 平9−297713(JP,A) 特開 平6−175917(JP,A) 特開 平11−96779(JP,A) 特開 昭59−58699(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 - 3/08 G06F 12/00 - 12/06 G06F 12/16 G11C 16/02

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 ブロック単位で記憶内容を消去できるフ
    ラッシュ型メモリが第1,第2,第3のブロックを含ん
    でおり、 第1のブロックは、そのブロックの管理情報を記憶する
    ヘッダ領域と、ブロック単位に分割されたデータファイ
    ルを格納する記憶領域とを備えており、 第3のブロックは、実行プログラムファイルが格納され
    たブロックの管理情報を記憶するヘッダ領域と、ブロッ
    クごとに分割された実行プログラムファイルを格納する
    記憶領域を備えており、 第2のブロックは、第3のブロックに隣接し、実行プロ
    グラムファイルが、第3のブロックの実行プログラムフ
    ァイルを格納する記憶領域の容量を越えた場合、第3の
    ブロックに実行プログラムファイルが分割され格納され
    た続きのデータを格納する記憶領域を備えていることを
    特徴とするフラッシュ型メモリ。
  2. 【請求項2】 隣接する複数の前記第2及び第3のブロ
    ックに対して実行プログラムファイルを割り当てるとと
    もに、それら実行プログラムファイルが割り当てられた
    ブロックの管理情報を前記第3のブロックに格納する手
    段を備えたことを特徴とする請求項1記載のフラッシュ
    型メモリの管理装置。
JP31761297A 1997-11-04 1997-11-04 フラッシュ型メモリ及びその管理装置 Expired - Fee Related JP3503448B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31761297A JP3503448B2 (ja) 1997-11-04 1997-11-04 フラッシュ型メモリ及びその管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31761297A JP3503448B2 (ja) 1997-11-04 1997-11-04 フラッシュ型メモリ及びその管理装置

Publications (2)

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

Family

ID=18090140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31761297A Expired - Fee Related JP3503448B2 (ja) 1997-11-04 1997-11-04 フラッシュ型メモリ及びその管理装置

Country Status (1)

Country Link
JP (1) JP3503448B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US9298472B2 (en) 2004-01-27 2016-03-29 Nec Corporation High-speed restart method, information processing device, and program
JP2008123473A (ja) 2006-10-20 2008-05-29 Toshiba Corp 記憶装置及びその制御方法
JP5341584B2 (ja) 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
JP5581256B2 (ja) 2011-03-28 2014-08-27 株式会社東芝 メモリシステム、コントローラ、およびメモリシステムの制御方法
JP6219560B2 (ja) * 2012-09-21 2017-10-25 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
KR102050732B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
JP6371090B2 (ja) * 2014-03-26 2018-08-08 トッパン・フォームズ株式会社 文書ファイル管理システム及び文書ファイル管理方法

Also Published As

Publication number Publication date
JPH11143764A (ja) 1999-05-28

Similar Documents

Publication Publication Date Title
KR100849221B1 (ko) 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
US7610434B2 (en) File recording apparatus
USRE46404E1 (en) Flash memory management method
US5682497A (en) Managing file structures for a flash memory file system in a computer
US6571326B2 (en) Space allocation for data in a nonvolatile memory
US5860082A (en) Method and apparatus for allocating storage in a flash memory
US5809558A (en) Method and data storage system for storing data in blocks without file reallocation before erasure
US7340581B2 (en) Method of writing data to non-volatile memory
EP0544252A2 (en) Data management system for programming-limited type semiconductor memory and IC memory card having the data management system
JP3503448B2 (ja) フラッシュ型メモリ及びその管理装置
JP2002163139A (ja) データ管理装置およびそれを用いたデータ管理方法
JP3555456B2 (ja) フラッシュ型メモリの管理装置
JP2614357B2 (ja) 一括消去型e▲上2▼promの予備書込み方法
JP2001101071A (ja) フラッシュ型メモリを用いたデータ記憶装置及びフラッシュ型メモリのデータ管理方法
JPH11272537A (ja) フラッシュ型メモリ及びその管理装置
JPH1196779A (ja) フラッシュ型メモリ,その管理方法,記憶装置,コンピュータシステム
JPH0764831A (ja) データ記憶装置
JPH05258585A (ja) ファイル装置
JP2009271848A (ja) ファイルシステム及びデータ管理方法
JP2009211152A (ja) 情報処理装置、メモリシステムおよびその制御方法
EP3948550A1 (en) An apparatus, method and computer program for managing memory page updates within non-volatile memory
JP2009199211A (ja) メモリ制御方法及び装置、コンピュータプログラム
JP2000057049A (ja) フラッシュメモリ・ファイルシステム
JP2010026794A (ja) メモリ制御装置及び方法、コンピュータプログラム

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