JP3904182B2 - データ管理システムおよびそれを用いたデータ管理方法 - Google Patents

データ管理システムおよびそれを用いたデータ管理方法 Download PDF

Info

Publication number
JP3904182B2
JP3904182B2 JP2000355074A JP2000355074A JP3904182B2 JP 3904182 B2 JP3904182 B2 JP 3904182B2 JP 2000355074 A JP2000355074 A JP 2000355074A JP 2000355074 A JP2000355074 A JP 2000355074A JP 3904182 B2 JP3904182 B2 JP 3904182B2
Authority
JP
Japan
Prior art keywords
data
information
management system
block
data management
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
JP2000355074A
Other languages
English (en)
Other versions
JP2002157149A (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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2000355074A priority Critical patent/JP3904182B2/ja
Publication of JP2002157149A publication Critical patent/JP2002157149A/ja
Application granted granted Critical
Publication of JP3904182B2 publication Critical patent/JP3904182B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、不揮発性半導体メモリを記憶媒体として使用する情報処理装置およびその拡張記憶装置、より具体的にはハンドヘルドコンピュータ、電子手帳や携帯電話、メモリーカードリーダー等に使用されるデータ管理システムおよびそれを用いたデータ管理方法に関する。
【0002】
【従来の技術】
従来から、パーソナルコンピュータにおけるデータ記憶装置としては、ハード磁気ディスクドライブが多く用いられている。このハード磁気ディスクドライブの特徴および利点としては、データが不揮発性記憶されること、およびデータの読み出しと書き換えをセクタ単位(例えば512バイト単位)で行い、データの上書きが可能であることが挙げられる。一方、このハード磁気ディスクドライブの欠点としては、物理的なサイズが大きいこと、相対的に消費電力が大きいこと、および振動や衝撃に弱いことが挙げられる。
【0003】
上記ハード磁気ディスクドライブに対して、フラッシュメモリからなる半導体メモリの利点としては、小型で振動や衝撃に強いこと、および相対的に消費電力が著しく小さいことが挙げられる。一方、フラッシュメモリからなる半導体メモリの欠点としては、データの読み出しと書き込みが1バイト単位(ワード)単位であること、データの書き換えには一旦データ消去動作(通常64kバイトのブロック単位での消去)が必要で、データの上書きが不可能であること、およびブロック消去回数が有限(通常10万回まで)が挙げられる。
【0004】
フラッシュメモリは、電気的にデータの書き込みと消去が可能であり、書き込まれたデータは消去(通常64kバイト単位)されるまでの間は不揮発性データとして保持される。この消去動作は、ブロック単位(通常64kバイト単位)で行われ、上記ハード磁気ディスクドライブにおけるデータ書き換え単位(例えば512バイト)と比較した場合、フラッシュメモリでは著しく大きなデータ書き換え単位となっている。なお、フラッシュメモリの消去動作とは、ソース、ドレイン、コントロールゲートおよび電子の蓄積手段となるフローティングゲートからなるフラッシュメモリにおいて、通常、フローティングゲートから電子を引き抜き、その結果、メモリセルの閾値が低く(約3V以下)なることを言う。また、フラッシュメモリの書き込み動作とは、通常、フローティングゲートに電子を注入し、その結果、メモリセルの閾値が高く(約5.5V以上)なることを言う。
【0005】
フラッシュメモリは、1バイト(ワード)の書き込み時間が約20マイクロ秒であるのに対して、消去時間(通常64kバイト単位の場合)が約1秒程度と著しく遅く、消去の保証回数が有限(通常10万回まで)であるという欠点がある。このため、1セクタ(例えば512バイト)のデータ書き換え毎に消去動作(通常64kバイト)が行われる場合、データ書き換え時間(消去時間と書き込み時間の和)として1秒以上が必要となり、ハード磁気ディスクドライブのディスク書き換え時間と比較して、著しく遅いものとなる。フラッシュメモリを上記ハード磁気ディスクドライブの代替として用いるためには、上記フラッシュメモリの欠点を踏まえ、かつ、データの取り扱い単位を上記ハード磁気ディスクドライブ程度(数百バイト)に小さくする必要がある。
【0006】
そこで、動作時間の長いデータ消去をなるべく行わず、効率良くデータを管理するための仕組み、すなわち、フラッシュメモリに対応したファイルシステムに関する技術として、例えば特開平6−202821号や特開平9−97139号に提案されているようなものがある。
【0007】
特開平6−202821号では、複数のフラッシュメモリを用いて固体メモリディスクを実現するために、各フラッシュメモリの消去ブロックに、データが格納されているセクタを記憶するデータスペース、およびブロックセクタ変換テーブルを含む。このブロックセクタ変換テーブルは、ブロックのデータスペースに記憶されている各データのセクタをセクタ番号によって識別する方法を採っている。
【0008】
特開平9−97139号では、フラッシュメモリを用いてファイルシステムを実現するために、データ領域およびデータ領域に対応する管理領域で構成される複数の記憶ブロックをフラッシュメモリに形成している。また、各記憶ブロックにおいて、データ領域の記憶状態を示す状態情報を管理領域に格納し、その状態情報に基づいてデータ領域へのアクセスを管理する手段と、指定された記憶ブロックに対して、その管理領域に格納されている状態情報をデータ領域が無効である情報に更新することによりそのデータ領域を廃棄する手段とを備えている。
【0009】
以下に、図23〜図35を用いて、データの登録および検索に関する従来のデータ管理方法について、詳細に説明する。ここでは、個々のデータはデータID番号によって一意に識別されるものとする。また、各データはセクタサイズを上限とする固定長とし、1セクタ内に収まるものとする。
【0010】
図23は本願出願人が以前に出願した特願平11−254973号に開示されている、従来のフラッシュメモリを用いたファイルシステムの構成を示す図である。図23において、11はファイルシステム、12はファイルシステム11の処理を制御するファイルシステム制御部、3はフラッシュメモリ部4へのデータ処理を制御するフラッシュメモリ制御部、4はフラッシュメモリ部、5はフラッシュメモリ部4の内部に存在する消去ブロック、6はファイルシステム11へデータの処理を依頼するアプリケーションプログラムまたはオペレーションシステム(OS)等のソフトウェアである。
【0011】
図24は、図23のフラッシュメモリ部4に格納されているデータの構成を示す図である。データ管理システムとして確保された(L+1)個の消去ブロック5に対して、ここでは便宜上、#0〜#Lのブロック番号を与える。そのうち、任意の1個の消去ブロックは、後述するファイルシステム11の再構築用に用いられる予備消去ブロック51として確保され、データ格納用の消去ブロックとは区別される。よって、実際にデータを格納できる消去ブロック数はL個となる。
【0012】
フラッシュメモリ部4の各消去ブロック5は、ファイルシステム制御部12上ではデータの取扱い単位である(M+1)個の物理セクタ5aに仮想的に分離される。ここでは便宜上、各々の物理セクタに対して、各消去ブロック5内で一意の物理セクタ番号#0〜#Mを与える。例えば、各消去ブロック5のサイズが64kバイトで、各物理セクタ5aのサイズが512バイトである場合、各消去ブロック5には128個の物理セクタ5a #0〜#127が存在することになる。
【0013】
ここで、各消去ブロック5の物理セクタ5a #0〜#mは、各々の消去ブロック5の制御情報を格納するブロックコントロールエリア5bとして確保され、データ格納用の物理セクタとは区別される。このブロックコントロールエリア5bには、消去ブロック5の使用状況が格納される。また、データ格納用の物理セクタ5aは論理セクタ5cと称し、新たに論理セクタ番号#0〜#Nを割り当てる。論理セクタの個数(max.N+1)は、物理セクタ数からブロックコントロールエリアを差し引いた(M−m)で示される。この論理セクタ番号は各消去ブロック内で一意であり、各々が対応する論理セクタ5cおよび後述するセクタ状態情報5eの位置を表す。
【0014】
消去ブロックのブロック状態情報5dは、5種類のブロック状態のいずれかを表すデータからなる。5種類のブロック状態とは、
Figure 0003904182
である。この消去ブロック5のブロック状態情報5dは、ブロックコントロールエリア5bの先頭に配置される。通常、L個の消去ブロックには「データ有り」が、予備消去ブロック51には「予備消去ブロック」が書き込まれている。
【0015】
この消去ブロック5のブロック状態情報5dに続いて、ブロックコントロールエリア5bには、論理セクタ5cのセクタ状態情報5eが順次配列される。論理セクタ状態情報5eの位置は論理セクタ番号に対応している。すなわち、先頭からn番目のセクタ状態情報が表しているのは論理セクタ番号n番のセクタ状態であり、物理セクタ番号(m+n)番のセクタ状態である。
【0016】
物理セクタ5aに配置されたセクタ状態情報5eは、ファイルシステム制御部12が割り当てを行うシステム内で一意のデータID番号5f、および5種類のデータ状態5gのいずれかを表す値からなる。5種類のデータ状態とは、
(1)「セクタ未使用」を表す1111b
(2)「データ書き込み中」を表す1110b
(3)「データ書き込み完了」を表す1100b
(4)「データ有効」を表す1000b
(5)「データ無効」を表す0000b
である。
【0017】
消去ブロック5のブロック状態情報5d、およびデータ状態5gを表すために上述したような値を割り当てる理由は、フラッシュメモリの書き換えが1→0のみの不可逆書き込みであることによる。消去動作を行うことなく複数の状態を表現するため、1ビットずつ書き換えていく手法を採っている。
【0018】
ブロックコントロールエリア5bのサイズ、論理セクタ番号数および消去ブロック当たりの記憶容量は、フラッシュメモリ部4のバイトアクセスやワードアクセスのようなアクセスモード、データID番号の上限値、物理セクタ5aのサイズ、および消去ブロック5のサイズによって変化する。これは、各情報量に応じたビット数が必要になることに加え、フラッシュメモリではビット毎にオーバーライトに対する注意が必要になるため、書き換えの単位がアクセスモードの整数倍である方がデータ更新に都合が良いことに起因する。なお、以下の例では、データの区切りを示すデータセパレートのスペースや無効なデータ領域に与えるダミーデータであるパディングは入らないものとする。
【0019】
・例1:ワードモード、ID上限値65535、セクタサイズ512バイト、消去ブロックサイズ64kBの場合
図25に例を示す。消去ブロックサイズとセクタサイズより、物理セクタ数は65536/512=128個となる。各消去ブロック5のブロック状態情報5dは4ビットで表現可能であるが、書き換えの単位がワードサイズ(16ビット)であるために2バイト必要となる。次に、セクタ状態情報5eはデータID番号5fとデータ状態5gの2項目からなるが、0〜65535の番号を表すためには16ビット必要であり、データID番号5fのみで2バイト必要である。さらに、データ状態5gは4ビットで表現可能であるが、書き換えの単位がワードサイズであるために2バイト必要となり、計4バイトが論理セクタ5cの1つにつき必要となる。よって、この場合には、ブロックコントロールエリア5bには1セクタ必要で2+4×(128−1)=510バイトの情報を有し、実際にデータを格納する物理セクタは#1〜#127、論理セクタ番号は#0〜#126が割り当てられ、消去ブロック当たりの記憶容量は512×127=64024バイトとなる。なお、この図25および以下の図において、斜線部はその時点で使用されていない部分を示す。
【0020】
・例2:バイトモード、ID上限値4095、セクタサイズ128バイト、消去ブロックサイズ64kBの場合
図26に例を示す。消去ブロックサイズとセクタサイズより、物理セクタ数は65536/128=512個となる。各消去ブロック5のブロック状態情報5dは4ビットで表現可能であるが、書き換えの単位がバイトサイズであるために1バイト必要となる。次に、セクタ状態情報5eはデータID番号5fとデータ状態5gの2項目からなるが、0〜4095の番号を表すためには12ビット必要であり、データ状態5gを表すための4ビットと合わせて、計2バイトが論理セクタ5cの1つにつき必要となる。よって、この場合には、ブロックコントロールエリア5bには8セクタ必要で1+2×(512−8)=1009バイトの情報を有し、実際にデータを格納する物理セクタは#8〜#511、論理セクタ番号は#0〜#503が割り当てられ、消去ブロック当たりの記憶容量は128×504=64512バイトとなる。
【0021】
フラッシュメモリ部4のアクセスモード、データID番号の上限値、物理セクタ5aのサイズ、消去ブロック5のサイズおよび使用する消去ブロック5については、ファイルシステムの構築時にその物理アドレス範囲(先頭オフセットと最終オフセットまたはデータエリア全体のサイズ)を定義する。これによって、ブロックコントロールエリア5b上でのセクタ状態情報5eの配置が一意に決まるので、その位置から容易に論理セクタ番号を取得することができる。この論理セクタ番号を元にして、ファイルシステム制御部12は消去ブロック5の論理セクタ5cに対してアクセスすることができる。このように制御情報をフラッシュメモリ部4に格納することのメリットは、その不揮発性にある。これにより、電源断等によりシステムが停止しても、常に管理情報を保持することができ、容易にファイルシステムを再開することが可能である。
【0022】
(データの読み出し処理)
図27は、従来技術におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。なお、以降のフローチャートにおいて、図28のような記述はステップAからステップB間のステップCを、セクタ状態情報の値をパラメータとして、その値を#0から#Nにかけて1回の実行毎にインクリメントしながらループ実行処理を行うことを示すものとする。このことは、ループが入れ子になっている場合でも同様である。また、以降のフローチャートにおいて、同じ処理を行う部分については同じステップ番号を付けている。なお、フローチャートの空白部は、繰り返し処理の終端を示し、条件判定は前の段に記載されているので、ここには何も記載していない。
【0023】
アプリケーションプログラムまたはオペレーティングシステム6において、フラッシュメモリ部4からのデータの読み出し要求が発生した場合、この読み出し要求と共にデータID番号がアプリケーションプログラムまたはオペレーティングシステム6からファイルシステム制御部12に与えられる。
【0024】
ファイルシステム制御部12はフラッシュメモリ制御部3を介して各消去ブロック5のブロックコントロールエリア5bを検索し、データID番号5fの照会(ステップ100)、およびデータ状態5gの照会(ステップ101)を行う。与えられたID番号と一致し、かつ、データ状態が「データ有効」であるようなセクタ状態情報5eを検出すると、そのセクタ状態情報5eが示す論理セクタ番号を取得する(ステップ102)。そして、ブロック番号と論理セクタ番号から、フラッシュメモリ部4の物理アドレスを演算により取得する(ステップ103)。この物理アドレスは、
「当該ブロックの先頭アドレス」+(「ブロックコントロールエリアのサイズ」 +「論理セクタ番号」)×「セクタサイズ」 ・・・(式1)
但し、「ブロックの先頭アドレス」=「システム構築時に定義したシステム管理エリアの先頭オフセット」
+「ブロック番号」×「ブロックサイズ」
から求められる。
【0025】
フラッシュメモリ制御部3は、この物理アドレスに基づいてフラッシュメモリ部4をアクセスし、該当する論理セクタ5cの読み出しを行い、読み出したデータをファイルシステム制御部12に与える(ステップ104)。
【0026】
これらの操作をブロックコントロールエリア5b内の全てのセクタ状態情報5e #0〜#Nについて、さらに全ての消去ブロック5 #0〜#Lについて順次繰り返す。但し、ブロック状態情報5dが「予備消去ブロック」である予備消去ブロック51については、検索の対象外とする(ステップ105、ステップ106)。
【0027】
ファイルシステム11に割り当てられた全ての消去ブロック5について検索が終了しても、与えられたID番号が検出できない場合には、該当データ無しと判断して処理を終了する。なお、各フローチャートにおいて、空白部分は繰り返し処理の終端を示しており、条件判定は前段に記述されている。
【0028】
(データの書き込み処理)
図29〜図31は、従来技術におけるフラッシュメモリ部4へのデータの書き込み処理に関するフローチャートである。
【0029】
第1に、書き込み先ブロックの選択を行う。アプリケーションプログラムまたはオペレーティングシステム6において、フラッシュメモリ部4へのデータの書き込み要求が発生した場合、この書き込み要求と共にデータID番号、および書き込まれるデータがアプリケーションプログラムまたはオペレーティングシステム6からファイルシステム制御部12に与えられる。ファイルシステム制御部12は、各消去ブロック5のブロックコントロールエリア5bを全て検索し、セクタ状態情報5eのデータ状態5gが「未使用」となっているものをカウントする(図29のステップ200)。この動作をブロック番号#0〜#Lで表される消去ブロック5について順次繰り返す。但し、ブロック状態情報5dが「予備消去ブロック」である予備消去ブロック51については、処理を行わない(図29のステップ105、ステップ106)。そして、未使用セクタのカウント数が最も多い消去ブロック5のブロック番号を検出し、これを書き込み先消去ブロックとする(図30のステップ201)。この操作により、特定の消去ブロック5へ書き込みが偏ることを防ぎ、フラッシュメモリ部4の摩耗度を消去ブロック5間で均一化する効果が得られる。全ての消去ブロック5において未使用セクタを検出できなかった場合には、後述するファイルシステムの再構築を行う。
【0030】
第2に、書き込み先セクタの選択を行う。上記書き込み先消去ブロックを取得後、ファイルシステム制御部12は、その書き込み先消去ブロックの消去ブロックコントロールエリア5bにアクセスし、データ状態が「未使用」となっているセクタ状態情報5eを検出して、その論理セクタ番号を取得する(図30のステップ202)。
【0031】
第3に、データ実体の書き込みを行う。データの書き込み開始前に、ファイルシステム制御部12は、データID番号、および「データ書き込み中」のデータ状態を、上記書き込み先セクタに対応するセクタ状態情報5eのデータID番号5fおよびデータ状態5gに書き込む(図30のステップ203)。次に、上記論理セクタ番号で示される論理セクタ5cへデータの書き込みを実行する(図30のステップ204)。データの書き込み終了後、「データ書き込み完了」のデータ状態を、上記書き込み先セクタに対応するセクタ状態情報5eのデータ状態5gに書き込む(図30のステップ205)。このようにセクタ状態情報5eを操作の都度更新する理由は、突然のシステム中断に備えるためであり、これについては後述のデータ復元で説明する。
【0032】
第4に、旧データの無効化を行う。ファイルシステム制御部12は、消去ブロック5のブロックコントロールエリア5bから、セクタ状態情報5eのデータID番号5fを照会し(図31のステップ206)、与えられたID番号と一致するものを探す。この操作をセクタ状態情報5e #0〜#Nについて、さらに消去ブロック5 #0〜#Lについて、検出できるまで順次繰り返す。検出すれば、そのデータ状態5gを「データ無効」に書き換える(図31のステップ207)。但し、ブロック状態情報5dが「予備消去ブロック」である予備消去ブロック51については、この処理を行わない(図31のステップ105、ステップ106)。
【0033】
ファイルシステム11に割り当てられた全ての消去ブロック5について検索が終了しても、与えられたID番号が検出できない場合には、既存データ無しと判断して無効化処理を終了する。
【0034】
最後に、上記書き込み先セクタに対応するセクタ状態情報5eのデータ状態5gを「データ書き込み完了」から「データ有効」に書き換え、書き込み処理を終了する(図31のステップ208)。
【0035】
(データの削除処理)
図32は、従来技術におけるフラッシュメモリ部4からのデータの削除処理に関するフローチャートである。ここで、データの削除処理とは、そのデータの存在するセクタを表すセクタ状態情報5eに対して、そのデータ状態を「データ無効」に書き換える操作を指す。
【0036】
アプリケーションプログラムまたはオペレーティングシステム6において、フラッシュメモリ部4からのデータの削除要求が発生した場合、この削除要求と共にデータID番号がアプリケーションプログラムまたはオペレーティングシステム6からファイルシステム制御部12に与えられる。
【0037】
書き込み時の旧データ無効化と同様に、ファイルシステム制御部12は、消去ブロック5のブロックコントロールエリア5bから、セクタ状態情報5eのデータID番号5fを照会し(ステップ206)、与えられたID番号と一致するものを探す。この操作をセクタ状態情報5e #0〜#Nについて、さらに消去ブロック5 #0〜#Lについて、検出できるまで順次繰り返す。検出すれば、そのデータ状態5gを「データ無効」に書き換える(ステップ207)。但し、ブロック状態情報5dが「予備消去ブロック」である予備消去ブロック51については、この処理を行わない(ステップ105、ステップ106)。
【0038】
ファイルシステム11に割り当てられた全ての消去ブロック5について検索が終了しても、与えられたID番号が検出できない場合には、既存データ無しと判断して無効化処理を終了する。
【0039】
ここで注意しなければならないのは、データの削除を行ってもそのセクタが廃棄されるのみで、データを格納可能な記憶容量は回復されないことである。記憶容量の回復には、次のような再構築処理が必要となる。
【0040】
(再構築処理)
図33は、従来技術におけるファイルシステム11の再構築処理に関するフローチャートである。ここで、再構築処理とは、消去ブロック5の論理セクタ5cが無効データに占有され、利用できるセクタが無いかまたは少ない場合に、有効データのみを予備消去ブロック51に退避させ、その消去ブロックを消去することにより、有効セクタの再生を図るものである。
【0041】
第1に、再構築対象ブロックの選択を行う。ファイルシステム制御部12は、各消去ブロック5のブロックコントロールエリア5bを全て検索し、セクタ状態情報5eのデータ状態5gが「データ無効」となっているものをカウントし、カウント数が最も多い消去ブロック5のブロック番号を検出する(ステップ300)。検出した消去ブロックをコピー元消去ブロックとし、ブロック状態情報5dを「コピー元ブロック」に書き換える(ステップ301)。
【0042】
第2に、予備消去ブロック51のブロック状態を更新する。ファイルシステム制御部12は、フラッシュメモリ部4をアクセスし、ファイルシステム11の再構築処理用に予め未使用状態で確保しておいた予備消去ブロック51のブロックコントロールエリア5bにアクセスして、この予備消去ブロック51のブロック状態情報5dを「未使用」から「データ転送中」に書き換える(ステップ302)。
【0043】
第3に、有効データのコピーを行う。ファイルシステム制御部12は、コピー元消去ブロックのブロックコントロールエリア5bにアクセスし、データ状態5gが「データ有効」となっているセクタ状態情報5eのみを取得し、コピー元消去ブロックのブロックコントロールエリア5bから予備消去ブロック51のブロックコントロールエリア5bへ、論理セクタ番号が一致するようにコピーする(ステップ303)。同様に、「データ有効」で示される論理セクタ5cのデータのみを、コピー元消去ブロックの論理セクタ5cから、予備消去ブロック51の論理セクタ番号が等しい論理セクタ5cへコピーする(ステップ304)。コピー元消去ブロックの「データ有効」である全ての論理セクタ5cが予備消去ブロック51にコピーされるまで、処理を繰り返す。
【0044】
第4に、ブロックの消去を行う。ファイルシステム制御部12は、フラッシュメモリ制御部3を通じてフラッシュメモリ部4をアクセスし、予備消去ブロック51のブロックコントロールエリア5bのブロック状態情報5dを「データ転送中」から「元ブロック消去中」に書き換え(ステップ305)、コピー元消去ブロックの消去を実行する(ステップ306)。
【0045】
最後に、予備消去ブロックの変更を行う。コピー元消去ブロックの消去が完了すれば、予備消去ブロック51のブロックコントロールセクタ5bのブロック状態5dを「元ブロック消去中」から「データ有り」に書き換える(ステップ307)。消去されたコピー元ブロックは、消去動作によりそのブロック状態情報5dが「予備消去ブロック」となり、次回再構築時の予備消去ブロック51となる。
【0046】
(データ復元)
図34および図35は、従来技術におけるファイルシステム11のデータ復元処理に関するフローチャートである。ここで、データ復元処理とは、異常終了により中断した処理を継続する操作を指す。
【0047】
ファイルシステム11では、フラッシュメモリ部4の不揮発性を利用して、処理中にシステムが異常終了した場合でも、データを保護する機能を有する。ファイルシステム制御部12は、システム起動時にフラッシュメモリ制御部3を介して消去ブロック5のブロックコントロールエリア5bを参照し、前回動作中に異常終了が無かったか否かの確認を行う。ブロック状態情報5dが「データ転送中」、「元ブロック消去中」または「コピー元ブロック」である場合、ブロック状態が異常であると定義する。または、セクタ状態情報5eが「データ書き込み中」または「データ書き込み完了」である場合、セクタ状態が異常であると定義する。ファイルシステム制御部12は、これらの状態を検出すると、ファイルシステム11の動作が何らかのアクシデントによって異常終了していると判断し、中断した正規の作業を継続する。
【0048】
・ブロック状態が異常であった場合
ブロック状態に異常が検出されたとき(図34のステップ400)は、再構築処理の途中で動作が中断したと考えられる。
【0049】
1.「データ転送中」が検出されたとき
ブロック状態情報が「データ転送中」である消去ブロックに対して消去動作を実行する(図34のステップ401)。その後、図33のステップ303から処理を再開する(図34のステップ402)。
【0050】
2.「元ブロック消去中」が検出されたとき
ブロック状態情報が「データ有り」以外の消去ブロックを検出し、その消去ブロックに対して消去動作を実行する(図34のステップ403)。その後、図33のステップ307から処理を再開する(図34のステップ404)。
【0051】
3.「コピー元ブロック」が検出されたとき
他に「データ転送中」または「元ブロック消去中」のブロック状態情報を有する消去ブロックが無いか検索する。検出された場合には上記1の処理または上記2の処理を行う。検出されなかった場合には、図33のステップ302から処理を再開する(図34のステップ405)。
【0052】
・セクタ状態が異常であった場合
セクタ状態に異常が検出されたとき(図35のステップ406)は、書き込み処理の途中で動作が中断したと考えられる。
【0053】
1.「データ書き込み中」が検出されたとき
セクタ状態情報が「データ書き込み中」であったデータは完全にフラッシュメモリ部4に書かれていないと判断して、そのセクタのデータを無効にするため、セクタ状態情報5dのデータ状態を「データ無効」にする(図35のステップ407)。この場合、書き込み中であったデータは破棄され、同じID番号で以前のデータが存在すれば、そのデータが有効になる。
【0054】
2.「データ書き込み完了」が検出されたとき
セクタ状態情報が「データ書き込み完了」であったデータは完全にフラッシュメモリ部4に書かれていると判断して、図30のステップ205から処理を再開する(図35のステップ408)。
【0055】
【発明が解決しようとする課題】
従来のデータ管理装置(データ管理システムと、アプリケーションプログラムやオペレーティングシステムを含む)に用いられるデータ管理システムにおいては、以下のような問題がある。
【0056】
まず、フラッシュメモリのどこにデータが書き込まれているかによって、読み出し時間が大きく異なる点が挙げられる。ID番号とデータ格納位置には因果関係が無いため、該当するID番号が見つかるまで、全消去ブロックのブロックコントロールエリアを順に検索することになる。例えば、検索順序がアドレス下位からシリアルに行われる場合を考えると、対象となるデータの情報を納めたセクタ状態情報がブロックコントロールエリアのアドレス上位側に位置する場合、アドレス下位に位置する場合に比べて、読み出すまでの時間が長くなる。この傾向は、データ数の増加や更新頻度の増加に伴ってより顕著になり、システムのパフォーマンスを低下させる要因となり得る。よって、データの検索範囲を絞り込む工夫が必要である。
【0057】
次に、制御情報がフラッシュメモリ上に構築されている点が挙げられる。これは、システム異常終了時からの復旧が容易であるという利点を有する反面、システムパラメータ保持の仕方に制限があり、システムに効率の悪い動作を強いている。例えば、書き込み先消去ブロックを選択する場合を考えると、この操作では各消去ブロックの有効セクタ数を求めるが、有効セクタの数および無効セクタ数の値をカウンタとして保持していれば、その値を参照するのみで良い。しかしながら、フラッシュメモリは同じ場所へのオーバーライト(上書き)ができず、また、書き込みや消去に多大な時間を費やすため、カウンタのような値をフラッシュメモリの領域に保持することは困難である。このため、その都度ブロックコントロールエリアの全てを検索するという非常に効率の悪い方法を採っている。同様に、フラッシュメモリでは、例えばセクタ状態情報を並べ替える等、システムの動作変更等に対して柔軟な対応を行うのが困難である。
【0058】
本発明は、このような従来技術の課題を解決するためになされたものであり、データアクセスまでの時間短縮を図ることができるデータ管理システムおよびそれを用いたデータ管理方法を提供することを目的とする。
【0059】
【課題を解決するための手段】
本発明のデータ管理システムは、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するためのデータ管理システムであって、該データ処理要求に応じた処理を制御するデータ管理システム制御部と、該データ管理システム制御部から参照され、該ファイルを構築するための制御情報を格納するデータ管理システムメモリ部と、該ファイルを構成するデータを格納する複数の消去ブロックから構成される不揮発性半導体記憶部と、該データ管理システム制御部からの制御に従って該不揮発性半導体記憶部へのデータ処理を制御する記憶制御部とからなるデータ管理システムにおいて、前記消去ブロックは、複数の論理的なデータ管理単位である論理セクタから構成され、該データ管理システムメモリ部は、揮発性または不揮発性の同一アドレスに対して書き換え可能なメモリ素子からなり、該消去ブロックを構成する論理セクタの管理情報を格納する領域である制御情報テーブルと、該データ処理要求の対象となるデータを識別する識別情報、該データの格納場所情報および該格納場所に格納されたデータの状態情報を格納する領域であるデータタグテーブルとを有し、そのことにより上記目的が達成される。
【0060】
前記制御情報テーブルは、前記消去ブロックを構成する論理セクタの管理情報として、少なくとも、使用されていない論理セクタの数、格納されているデータが有効である論理セクタの数、および格納されているデータが無効である論理セクタの数の情報を含むブロック制御情報が、予め一意に割り振られるブロック番号の順に配列されてなっていてもよい。
【0061】
前記データタグテーブルは、少なくとも、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示すブロック番号と論理セクタ番号、および該論理セクタに格納されたデータの状態情報を含むデータタグの情報の配列からなっていてもよい。
【0062】
前記データタグテーブルは、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示すブロック番号、および該ブロック上の論理セクタに格納されたデータの状態情報を含むデータタグの情報の配列からなっていてもよい。
【0063】
前記データタグテーブルは、少なくとも、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示す前記不揮発性半導体記憶部の物理アドレス、および該物理アドレスに格納されたデータの状態情報を含むデータタグの情報の配列からなっていてもよい。
【0064】
前記データタグテーブルは、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示す前記不揮発性半導体記憶部の物理アドレス、および該物理アドレスに格納されたデータの状態情報を含む第1のデータタグの情報の配列と、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示すブロック番号、および該ブロック上の論理セクタに格納されたデータの状態情報を含む第2のデータタグの情報の配列とからなっていてもよい。
【0065】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、該データ管理システムの起動時に、前記データ管理システム制御部が、前記消去ブロックに含まれる各論理セクタの状態を格納する領域を順次読み出し、該論理セクタの状態情報から、使用されていない論理セクタ、格納されているデータが有効である論理セクタ、および格納されているデータが無効である論理セクタの各々を検出する毎にその数をカウントアップすることによって前記制御情報テーブルを生成しており、そのことにより上記目的が達成される。
【0066】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、該データ管理システムの起動時に、前記データ管理システム制御部が、前記消去ブロックに含まれる各論理セクタの状態を格納する領域を順次読み出し、格納されているデータが有効である論理セクタのデータ識別情報として、ブロック番号と論理セクタ番号、およびデータの状態情報を抽出し、それらを配列することによって前記データタグテーブルを生成しており、そのことにより上記目的が達成される。
【0067】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、該データ管理システムの起動時に、前記データ管理システム制御部が、前記消去ブロックに含まれる各論理セクタの状態を格納する領域を順次読み出し、格納されているデータが有効である論理セクタのブロック番号と論理セクタ番号を抽出して、該ブロック番号と該論理セクタ番号を基に前記不揮発性半導体記憶部の物理アドレスを演算し、該物理アドレスを配列に加えることによって前記データタグテーブルを生成しており、そのことにより上記目的が達成される。
【0068】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、ソフトウェアから処理対象となるデータの識別情報と共にデータ読み出し処理要求が発生した場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照して、与えられた識別情報と一致するデータタグ情報から前記不揮発性半導体記憶部の物理アドレスを求める処理を少なくとも含んでおり、そのことにより上記目的が達成される。
【0069】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、ソフトウェアから処理対象となるデータの識別情報およびデータと共にデータ書き込み処理要求が発生した場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記制御情報テーブルを参照して、使用されていない論理セクタの数が最も多いブロックを検索して書き込み対象ブロックとして選択する処理と、与えられた識別情報での書き込み処理に対応する新たなデータタグ情報を生成して前記データタグテーブルに追加する処理と、書き込み処理に伴う有効および無効な論理セクタの数の増減に従って該制御情報テーブルを更新する処理とを少なくとも含み、与えられた識別情報と同一の識別情報が該データタグテーブルに存在する場合には、さらに、既存の識別情報を有するデータタグ情報内のデータの状態情報を無効にする処理と、該データを無効にする処理に伴う有効および無効な論理セクタの数の増減に従って該制御情報テーブルを更新する処理とを含んでおり、そのことにより上記目的が達成される。
【0070】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、ソフトウェアから処理対象となるデータの識別情報と共にデータ削除処理要求が発生した場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照して、与えられた識別情報と一致するデータタグ情報内のデータの状態情報を無効にする処理と、該データを無効にする処理に伴う有効および無効な論理セクタの数の増減に従って前記制御情報テーブルを更新する処理とを少なくとも含んでおり、そのことにより上記目的が達成される。
【0071】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、ソフトウェアから要求されたデータ処理中に、前記消去ブロック内において格納されているデータが無効である論理セクタを解放する再構築処理が必要となった場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記制御情報テーブルを参照して、格納されているデータが無効である論理セクタの数が最も多いブロックを検索して再構築対象ブロックとして選択する処理と、該データの状態情報が無効であるデータタグ情報を削除するために、前記データタグテーブルを再度生成する処理とを少なくとも含んでおり、そのことにより上記目的が達成される。
【0072】
本発明のデータ管理方法は、本発明のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、ソフトウェアから処理対象となるデータの識別情報と共にデータ読み出し処理要求が発生した場合に、前記データ管理システム制御部が、予め定められた境界値を基準として、与えられた識別情報の値に従って前記第1のデータタグ情報の配列と前記第2のデータタグ情報の配列のいずれかを選択する処理を含んでおり、そのことにより上記目的が達成される。
【0073】
高速読み出しを必要とするデータと高速読み出しを必要としないデータを分類し、ある値を基準としてそのいずれに分類されるかを判別可能なように各々のデータに識別情報の値を予め割り振り、前記データ管理システム制御部は、該識別情報の値から高速読み出しを必要とするデータと判別される場合には前記第1のデータタグ情報の配列を選択し、高速読み出しを必要としないデータと判別される場合には前記第2のデータタグ情報の配列を選択してもよい。
【0074】
ソフトウェアから処理対象となるデータの識別情報と共にデータ読み出し処理要求が発生した場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照する際に、直近に生成されたデータタグ情報から古い時点で生成されたデータタグ情報の方向へ検索し、与えられた識別情報と一致するデータタグ情報から前記不揮発性半導体記憶部の物理アドレスを求める処理と、読み出し処理毎に与えられたデータ識別情報に対応するデータタグ情報を生成し、前記データタグテーブルの配列に追加する処理とを含んでいてもよい。
【0075】
ソフトウェアから処理対象となるデータの識別情報に加えて、読み飛ばしオフセットと読み込みサイズと共にデータ読み出し処理要求が発生した場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照して、与えられた識別情報と一致するデータタグ情報から前記不揮発性半導体記憶部の物理アドレスを求める処理と、該物理アドレスに該読み飛ばしオフセットを加算して新たな読み出し対象物理アドレスとする処理と、該新たな読み出し対象物理アドレスから該読み込みサイズ分だけデータを読み出す処理とを少なくとも含んでいてもよい。
【0076】
以下、本発明の作用について説明する。
【0077】
本発明にあっては、RAMに代表される揮発性または不揮発性の同一アドレスに対して書き換え可能なメモリ素子を用いて、外部メモリ空間(データ管理システムメモリ部)にファイル管理の速度向上を目的とした情報テーブルを作成する。
【0078】
アクセステーブルを作成して読み込み速度を改善しようとする技術は、特開平3−225412号等に見られる。この特開平3−225412号の技術は、複数の記憶装置で構成されるファイルシステムのファイル読み込み方式において、ファイル検索を装置毎の記憶ボリュームではなく、新たに作成したファイル管理のための情報テーブルを参照することにより、動作速度の遅い装置へのアクセス回数を減らし、速度改善を図るものである。
【0079】
本発明における情報テーブルの作成は、フラッシュメモリの特性(上書きが許されない)上、フラッシュメモリ上の固定領域には配置するのが困難な、高頻度に更新されるデータを、上書き可能なメモリ素子上に実現することに意義がある。この情報テーブルは、フラッシュメモリに代表される不揮発性半導体記憶部のブロックコントロールエリアを補完するものであり、両者は平行して存在するため、不揮発性半導体記憶部の不揮発性によるシステム復旧のメリットは損なわれない。すなわち、消去ブロックを構成する論理セクタの管理情報はフラッシュメモリ上に格納されている、そのうち、データ有効セクタ数、データ無効セクタ数、未使用セクタ数のカウンタ等、フラッシュメモリ上に配置するのが困難な高頻度更新情報(制御情報テーブル)は同一アドレスに対して書き換え可能(高速アクセス可能)なメモリ素子上に、また、データタグテーブルも高速アクセス可能なメモリ素子上に配置する。
【0080】
上記情報テーブルとしては、データの識別情報(データID番号)、データの格納場所情報やデータの状態情報等のデータタグ情報を格納したデータタグテーブルを作成する。また、各消去ブロック毎に使用可能なセクタ数をカウントして、制御情報テーブルを作成する。これらの情報テーブルにより、ブロックコントロールエリアの検索処理に割いていた時間を軽減し、より高速なデータアクセスを可能とする。
【0081】
さらにデータアクセス速度を向上させるためには、データタグ情報の保持方法を工夫する。例えば、上書き可能なメモリ素子上にID番号と対応するデータの格納先の物理アドレスを格納しておく。各ID番号に対応したアドレスは、上記メモリ素子上のデータタグ情報を検索するだけで即座に判定することができるので、不揮発性半導体記憶部上のブロックコントロールエリア内を検索する時間が不要となり、さらなる高速データ読み出しが可能となる。但し、この場合にはタグサイズが大きくなるため、パフォーマンスとシステムリソースとのトレードオフとなる。
【0082】
読み出し速度については、上書き可能なメモリ素子上に格納しているデータタグ情報を、読み出し頻度に応じて並べ替えることにより、さらに向上させることができる。例えば、読み出しを行ったデータID番号をアドレス下位側に配置することにより、メモリ素子上の最下位側からID番号を検索すれば、必要な読み出しデータが見つかるまでの時間を短縮して、読み出し速度のさらなる高速化を図ることが可能となる。
【0083】
さらに、ID番号により一意に識別されるあるデータにおいて、その一部のみにアクセスしたい場合、不要な部分のデータを読み飛ばして、目的とするデータ位置へ直接アクセスを行うことにより、さらに高速なデータアクセスを行うことが可能である。
【0084】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【0085】
(実施形態1)
本実施形態では、データアクセスの高速化を目的として、同一アドレスに対して書き換え可能なメモリとしてRAM(揮発性でも不揮発性でもよい)に情報テーブルを格納する。
【0086】
図1は、本発明の一実施形態であるデータ管理システムの構成を示す図である。図1において、1はデータ管理システム、2はデータ管理システム1の処理を制御するデータ管理システム制御部、3はフラッシュメモリ部4へのデータ処理を制御するフラッシュメモリ制御部、4は複数の消去ブロックから構成されるフラッシュメモリ部、6はファイルシステム1へデータの処理を依頼するアプリケーションプログラムまたはオペレーションシステム(OS)等のソフトウェアであり、7はデータ管理システム1が制御情報を格納するために使用するデータ管理システムメモリ部である。なお、データ管理システム1は、ソフトウェア6からのデータ処理要求に応じてデータをファイルとして管理するファイルシステムであり、図23に示した従来のファイルシステム11に相当する。データ管理システムメモリ部7はRAMからなるものとする。さらに、データ管理システム制御部2は図23に示した従来のファイルシステム制御部12に相当し、フラッシュメモリ制御部3、フラッシュメモリ部4、アプリケーションプログラムまたはオペレーティングシステム6は図23に示した従来技術と同様である。
【0087】
図2は、図1のデータ管理システムメモリ部7に格納されている、フラッシュメモリ部4内の各消去ブロックに関する制御情報テーブル31の構成を示す図である。各ブロック番号に対応したエントリーは、未使用セクタ数31a/データ有効セクタ数31b/データ無効セクタ数31cを1つの情報単位としている。制御情報テーブルには、このエントリーがブロック番号の順序で格納される。この制御情報テーブルの各値は、後述する制御情報の初期化処理によって、データ管理システムの起動時に構築される。なお、これらの高頻度更新情報(制御情報テーブル)は、常に同じ場所に配置され、書き込み処理や削除処理、ブロックの再高秩処理の際に常に更新される。
【0088】
図3は、図1におけるデータ管理システムメモリ部7に格納されている、各データID番号と対応する格納場所とその格納場所のデータの状態情報を保持したデータタグテーブル32の構成を示す図である。ここでは便宜上、先頭から順にタグ#0〜#Pとする。データタグ33は、データID番号33a/ブロック番号33b/論理セクタ番号33c/データ状態33dを1つの情報単位としている。すなわち、データタグ33はデータID番号33aで識別されるデータが格納される場所(ブロック番号33bおよび論理セクタ番号33c)と、そこに格納されているデータの状態(データ状態33d)の情報からなる。データタグ33のデータ状態33dは、図24に示したセクタ状態情報5eのデータ状態5gと同等である。初期化処理直後のデータタグテーブル32では、エントリー数#Pはデータ管理システム1における有効な登録データを示す。
【0089】
データタグテーブル32には、データの書き込み処理によってデータの登録が行われる度にデータタグ33 #P+1が随時追加される。既に登録済みのデータID番号で新たにデータの書き込みがあった場合には、図24に示したセクタ状態情報5eの場合と同様に、データ状態33dを「データ無効」に設定することにより、そのデータタグ33を検索対象から除外する。本実施形態では、データタグテーブル32の最大値(maxP+1)として、(データタグ33のサイズ×全ての論理セクタ5cの数)をデータ管理システム1の構築時より確保する。データタグテーブル32は、データ管理システム1の起動時、およびデータ管理システム1の最構築処理時に初期化される。
【0090】
(データ管理システムメモリ部内の制御情報の初期化)
図4は、本実施形態における制御情報テーブル31およびデータタグテーブル32の初期化処理に関するフローチャートである。
【0091】
データ管理システム1の起動時に、データ管理システムメモリ部7上に格納する制御情報を構築するために、データ管理システム制御部2は、まず、ブロック番号#0で表される消去ブロック5のブロックコントロールエリア5bにアクセスする。セクタ状態情報5e #0〜#Nを順次読み出し、データ状態5gが「データ有効」であるものを検出すると、そこから抽出したデータID番号、ブロック番号と論理セクタ番号、およびデータ状態から対応するデータタグ33を作成し、データタグテーブル32に並べていく(ステップ500)。
【0092】
また、このとき、検出したデータ状態5gに応じて、ブロック番号#0を示す制御情報テーブル31の未使用セクタ数31a、データ有効セクタ数31bおよびデータ無効セクタ数31cを各々カウントアップしていく(ステップ501)。
【0093】
この操作をブロック番号#0〜#Lで表される各消去ブロック5に対して順次繰り返す。但し、ブロック状態情報5dが「予備消去ブロック」である予備消去ブロック51については、処理の対象外とする。また、ブロック状態情報5dが「データ転送中」または「元ブロック消去中」であるときや、データ状態5gが「データ書き込み中」または「データ書き込み完了」であるときには、システムが異常終了したと見なし、データの復元処理を行う。このデータ復元処理については、図34および図35に示した従来技術と同等であるので説明を省略する。データ管理システム1に割り当てられた全ての消去ブロック5に対して、この操作を繰り返す。
【0094】
さらに、無効となったデータタグ33が占める領域を解放するため、データタグテーブル32についてはデータ管理システム1の最構築時にも初期化を行う。
【0095】
(データの読み出し処理)
図5は、本実施形態におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。
【0096】
アプリケーションプログラムまたはオペレーティングシステム6において、フラッシュメモリ部4からのデータの読み出し要求が発生した場合、この読み出し要求と共にデータID番号がアプリケーションプログラムまたはオペレーティングシステム6からデータ管理システム制御部2に与えられる。
【0097】
データ管理システム制御部2は、データ管理システムメモリ部7内のデータタグテーブル32を検索して、データID番号33aの照会(ステップ600)、およびデータ状態33dの照会(ステップ601)を行い、データID番号33aが与えられたID番号と一致し、かつ、データ状態33dが「データ有効」であるようなデータタグ33を検出する。この操作をブロックコントロールエリア5b内の全てのセクタ状態情報5e #0〜#Pについて、該当するデータタグ33が見つかるまで順次実行する。
【0098】
検出されたデータタグ33から取得したブロック番号33bおよび論理セクタ番号33cより、フラッシュメモリ部4の物理アドレスを上記(式1)のように演算して取得し(ステップ602)、フラッシュメモリ制御部3に与える。
【0099】
フラッシュメモリ制御部3は、この物理アドレスに基づいてフラッシュメモリ部4をアクセスし、該当する論理セクタ5cからデータの読み出しを行い(ステップ603)、読み出したデータをデータ管理システム制御部2に与える。データタグテーブル32を全て検索しても、与えられたID番号が検出できない場合には、該当データ無しと判断して処理を終了する。
【0100】
(データの書き込み処理)
図6および図7は、本実施形態におけるフラッシュメモリ部4へのデータの書き込み処理に関するフローチャートである。
【0101】
第1に、書き込み先ブロックの選択を行う。アプリケーションプログラムまたはオペレーティングシステム6において、フラッシュメモリ部4へのデータの書き込み要求が発生した場合、この書き込み要求と共にデータID番号、および書き込まれるデータがアプリケーションプログラムまたはオペレーティングシステム6からデータ管理システム制御部2に与えられる。データ管理システム制御部2は、データ管理システムメモリ部7内の制御情報テーブル31をアクセスして未使用セクタ数31aが最も多い消去ブロック5のブロック番号を取得し(図6のステップ700)、これを書き込み先消去ブロックとする。書き込み先消去ブロックが取得できなかった場合には、後述するデータ管理システム1の再構築を行う。
【0102】
第2に、書き込み先セクタの選択を行う。上記書き込み先消去ブロックを取得後、データ管理システム制御部2は、その書き込み先消去ブロックの消去ブロックコントロールエリア5bにアクセスして、データ状態が「未使用」となっているセクタ状態情報5eを検索し、該当する論理セクタ5cの論理セクタ番号を取得する(図6のステップ701)。
【0103】
第3に、データ実体の書き込みを行う。データの書き込み開始前に、データ管理システム制御部2は、上記書き込み先セクタに対応するセクタ状態情報5eのデータ状態5gを、「未使用」から「データ書き込み中」に書き換える(図6のステップ702)。次に、取得した論理セクタ番号により、フラッシュメモリ制御部3を通じてフラッシュメモリ部4をアクセスし、その論理セクタ5cに対してデータの書き込みを実行する(図6のステップ703)。データの書き込み終了後、データ管理システム制御部2は、上記書き込み先セクタに対応するセクタ状態情報5eのデータ状態5gを、「データ書き込み中」から「データ書き込み完了」に書き換える(図6のステップ704)。
【0104】
第4に、旧データの無効化を行う。データ管理システム制御部2は、データ管理システムメモリ部7内のデータタグテーブル32を検索して、データID番号33aとデータ状態33dとを照会し、データID番号33aが与えられたデータID番号と一致し、かつ、データ状態33dが「データ有効」であるようなデータタグ33を検出する(図7のステップ705)。検出すれば、そのデータタグ33のデータ状態33dを「データ無効」に書き換える(図7のステップ706)。そして、検出したデータタグ33のブロック番号33bおよび論理セクタ番号33cに基づいて、その消去ブロック5のブロックコントロールエリア5bにアクセスし、その論理セクタ番号に該当するセクタ状態情報5eを検出して、そのデータ状態5gを「データ有効」から「データ無効」に書き換える(図7のステップ707)。このように旧データの無効化を行った場合には、データの無効化を行ったブロック番号のエントリーに対応するデータ有効セクタ数31bを−1、データ無効セクタ数31cを+1と更新する(図7のステップ711)。
【0105】
第5に、データ管理システム制御部2は、データ書き込みを行った論理セクタ5cを示すセクタ状態情報5eにアクセスし、データ状態5gを「データ書き込み完了」から「データ有効」に書き換える(図7のステップ708)。
【0106】
最後に、データ管理システムメモリ部7の更新を行う。データ管理システム制御部2は、データ書き込みを行った論理セクタに対応する新しいデータタグ33を生成して、データタグテーブル32に登録する(ステップ709)。次に、制御情報テーブル31をアクセスして、データの書き込みを行ったブロック番号のエントリーに対応する未使用セクタ数31aを−1、データ有効セクタ数31bを+1と更新する(図7のステップ710)。
【0107】
(データの削除処理)
図8は、本実施形態におけるフラッシュメモリ部4からのデータの削除処理に関するフローチャートである。このデータ削除処理は、データ書き込み時における旧データの無効化処理に準じて行われる。
【0108】
アプリケーションプログラムまたはオペレーティングシステム6において、フラッシュメモリ部4からのデータの削除要求が発生した場合、この削除要求と共にデータID番号がアプリケーションプログラムまたはオペレーティングシステム6からデータ管理システム制御部2に与えられる。
【0109】
データ管理システム制御部2は、データ管理システムメモリ部7内のデータタグテーブル32を検索して、データID番号33aとデータ状態33dとを照会し、データID番号33aが与えられたID番号と一致し、かつ、データ状態33dが「データ有効」であるようなデータタグ33を検出する(ステップ705)。検出すれば、そのデータタグ33のデータ状態33dを「データ無効」に書き換える(ステップ706)。そして、検出したデータタグ33のブロック番号33bおよび論理セクタ番号33cに基づいて、その消去ブロック5のブロックコントロールエリア5bにアクセスし、その論理セクタ番号に該当するセクタ状態情報5eを検出して、そのデータ状態5gを「データ有効」から「データ無効」に書き換える(ステップ707)。そして、データの無効化を行ったブロック番号のエントリーに対応するデータ有効セクタ数31bを−1、データ無効セクタ数31cを+1と更新する(ステップ711)。
【0110】
(再構築処理)
図9および図10は、本実施形態におけるデータ管理システム1の再構築処理に関するフローチャートである。この再構築処理は、基本的に図33に示した従来技術と同等である。但し、再構築の対象となる消去ブロック5の選択には、制御情報テーブル31の無効セクタ数を検索し、コピーの対象となる「データ有効」である論理セクタ5cの検索にはデータタグテーブル32を参照する。また、既に無効となっているデータタグ33が占めているデータタグテーブル32の領域を解放するために、従来の再構築処理を実行した後、新たにデータタグテーブル32の初期化を実行する必要がある。
【0111】
第1に、再構築対象ブロックの選択を行う。データ管理システム制御部2は、データ管理システムメモリ部7内の制御情報テーブル31をアクセスしてデータ無効セクタ数31cが最も多い消去ブロック5のブロック番号を取得する(図9のステップ800)。これをコピー元消去ブロックとして、ブロック状態情報5dを「コピー元ブロック」に書き換える(図9のステップ801)。
【0112】
第2に、予備消去ブロック51のブロック状態を更新する。データ管理システム制御部2は、フラッシュメモリ部4をアクセスし、データ管理システム1の再構築処理用に予め未使用状態で確保しておいた予備消去ブロック51のブロックコントロールエリア5bにアクセスして、この予備消去ブロック51のブロック状態情報5dを「未使用」から「データ転送中」に書き換える(図9のステップ802)。
【0113】
第3に、有効データのコピーを行う。データ管理システム制御部2は、データ管理システムメモリ部7内のデータタグテーブル32をアクセスして、ブロック番号がコピー元消去ブロックのブロック番号であり、かつ、データ状態33dが「データ有効」となっているデータタグ33を取得し、そのデータタグのデータ状態33dを「データ無効」とする(図9のステップ803)。そして、取得した論理セクタ番号33cに該当するセクタ状態情報5eを、予備消去ブロック51のブロックコントロールエリア5bへ、論理セクタ番号が一致するようにコピーする(図9のステップ804)。また、取得した論理セクタ番号33cに該当するコピー元消去ブロックの論理セクタ5cから、予備消去ブロック51の論理セクタ番号が等しい論理セクタ5cへコピーする(図9のステップ805)。そして、データ管理システムは、コピー後のデータに対応するデータタグを生成して、データタグテーブル32に登録する(図9のステップ806)。
【0114】
第4に、ブロックの消去を行う。データ管理システム制御部2は、フラッシュメモリ制御部3を通じてフラッシュメモリ部4をアクセスし、予備消去ブロック51のブロックコントロールエリア5bのブロック状態情報5dを「データ転送中」から「元ブロック消去中」に書き換え(図10のステップ807)、コピー元消去ブロックの消去を実行する(図10のステップ808)。
【0115】
第5に、予備消去ブロックの変更を行う。コピー元消去ブロックの消去が完了すれば、予備消去ブロック51のブロックコントロールセクタ5bのブロック状態5dを「元ブロック消去中」から「データ有り」に書き換える(図10のステップ809)。消去されたコピー元ブロックは、消去動作によりそのブロック状態情報5dが「予備消去ブロック」となり、次回再構築時の予備消去ブロック51となる。
【0116】
最後に、図4と同様にして、新たにデータタグテーブル32の初期化を行う。
【0117】
(実施形態2)
図11は、本実施形態におけるデータ管理システムメモリ部7内のデータタグテーブル32の構成を示す図である。実施形態1と異なるのは、ブロック番号33bおよび論理セクタ番号33cの代わりに、データが格納されるセクタの先頭物理アドレス33eを用いる点である。データタグ33は、データID番号33a/データの格納アドレス(物理アドレス)33e/データ状態33dからなる。
【0118】
(データ管理システムメモリ部内の制御情報の初期化)
本実施形態におけるデータ管理システムメモリ部7(制御情報テーブル31およびデータタグテーブル32)の初期化処理に関するフローチャートは、図4と同等である。
【0119】
本実施形態では、ステップ500においてデータタグ33を生成する際に、ブロック番号および論理セクタ番号から上記(式1)のように演算して物理アドレスを取得し、データタグに登録する処理が加わる。
【0120】
(データの読み出し処理)
図12は、本実施形態におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。
【0121】
本実施形態では、実施形態1(図5)に比べて、読み出し対象となる物理アドレスがデータタグテーブル32の物理アドレス33eから直接得られるので、フラッシュメモリ部4のアドレスを求める演算(ステップ602)が不要となり、読み出し処理の高速化を図ることができる。
【0122】
(データの書き込み処理)
図13および図14は、本実施形態におけるフラッシュメモリ部4へのデータの書き込み処理に関するフローチャートである。
【0123】
本実施形態では、実施形態1(図6、図7)に比べて、図14のステップ709においてデータの書き込みに伴うデータタグを登録する際に、ブロック番号および論理セクタ番号から上記(式1)のように演算して物理アドレスを取得し、データタグに登録する処理が加わる。
【0124】
さらに、旧データを無効化する操作において、旧データのセクタ状態情報5eの位置を知るため、物理アドレスからブロック番号および論理セクタ番号を求める操作(図14のステップ712)が必要となる。ブロック番号および論理番号は、物理アドレスから、
Figure 0003904182
で求められる。
【0125】
(データの削除処理)
図15は、本実施形態におけるフラッシュメモリ部4からのデータの削除処理に関するフローチャートである。
【0126】
本実施形態では、実施形態1(図8)に比べて、旧データを無効化する操作において、旧データのセクタ状態情報5eの位置を知るため、物理アドレスからブロック番号および論理セクタ番号を求める操作(ステップ712)が必要となる。ブロック番号および論理番号は、上記(式2)および上記(式3)のようで求められる。
【0127】
(実施形態3)
図16は、本実施形態におけるデータ管理システムメモリ部7内のデータタグテーブル32の構成を示す図である。実施形態1と異なるのは、セクタの位置情報がブロック番号33bのみからなる点である。データタグ33は、データID番号33a/ブロック番号33b/データ状態33dからなる。本実施形態では、情報量の軽減により、データタグ33およびデータタグテーブル32の容量を削減することができる。
【0128】
(データの読み出し処理)
図17は、本実施形態におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。
【0129】
本実施形態でも、データの存在する消去ブロックの絞り込みおよび該当データの有無の判断をデータタグ33を利用して行い、読み出し対象データの消去ブロックが決まると従来技術(図27)と同様に論理セクタ状態情報5eのデータID番号5fから、与えられたデータID番号と一致するセクタを検索し、データの読み出しを行う。
【0130】
(実施形態4)
図18は、本実施形態におけるデータ管理システムメモリ部7内のデータタグテーブルの構成を示す図である。本実施形態では、タイプの異なるデータタグの存在を両立させるために、データタグの種類毎にデータタグテーブルを作成する。
【0131】
読み出し時に高速応答が求められるデータに対応して、図18(a)のような高速データタグテーブル34を作成する。高速データタグテーブル34に格納される高速データタグ35 #0〜#Pは、データID番号35a/物理アドレス35e/データ状態35dからなる。
【0132】
一方、読み出し時に高速応答が求められないデータに対応して、図18(b)のような低速データタグテーブル36を作成する。低速データタグテーブル36に格納される低速データタグ37 #0〜#Pは、データID番号37a/ブロック番号37b/データ状態37dからなる。
【0133】
(データの読み出し処理)
図19および図20は、本実施形態におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。
【0134】
本実施形態では、データタグタイプを分けるためにデータID番号を利用する。高速読み出しを必要とするデータが1000件存在する場合、0〜999で示されるデータID番号を有するデータについては、データタグ作成時、およびデータ読み出し時において自動的に高速データタグテーブル34を選択するように定める。1000以上のデータID番号を有するデータについては、データタグ作成時、およびデータ読み出し時において自動的に低速データタグテーブル36を選択する(図19のステップ604)。境界となるID番号については、データ管理システム1の構築時に予め決定しておく。それ以降は、各データタグテーブルに応じて、上記実施形態と同様にして読み出し処理を行うことができる。
【0135】
(実施形態5)
図21は、本実施形態におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。本実施形態では、実施形態1〜実施形態4において、セクタサイズで一まとめにされたデータから、一部のみを読み込みたいという要求がある場合について考える。この場合には、アプリケーションプログラムまたはオペレーティングシステム6からデータ管理システム1に与えられるパラメータに、「読み飛ばしオフセット」と「読み込みサイズ」を加える。読み飛ばしオフセットには、データ先頭から読み込みをスキップしたいサイズを、読み込みサイズには任意のデータ長を各々与える。但し、「セクタサイズ」>「読み飛ばしオフセット」+「読み込みサイズ」とする。
【0136】
各実施形態に沿ってデータ本体の格納位置アドレスを取得した後、データ本体の読み出しの際に、読み飛ばしオフセットで指示されたサイズ分、データの読み込み開始位置を後方へ変更する(ステップ607)。そして、フラッシュメモリ制御部3は、変更された読み込み開始位置から、読み込みサイズ分だけデータの読み込みを行う(ステップ608)。
【0137】
(実施形態6)
図22は、本実施形態におけるフラッシュメモリ部4に格納されたデータの読み出し処理に関するフローチャートである。上記各実施形態と異なるのは、データタグの検索方向に関してのみである。
【0138】
本実施形態では、ステップ600においてデータタグテーブルにアクセスする際に、新しいデータタグから古いデータタグに向かって(#P→#0)検索を行うようにする。さらに、データID番号に該当するデータタグが検出されたときに、そのデータID番号により新たにデータタグを作成し直し、以前のデータタグは無効とする(ステップ605)。
【0139】
これにより、アクセスがあったデータのデータタグは常に検索順序の早い方に配置されるため、読み出し頻度が高いデータほど、速くアクセスできることになる。但し、読み出し処理が行われる度にデータタグテーブルの領域を消費するため、データタグテーブルの初期化を頻繁に行わなければ、データタグテーブルのオーバーフローを招き易くなる。
【0140】
【発明の効果】
以上詳述したように、本発明によれば、データタグを参照するだけでデータの格納位置を知ることができ、検索対象をデータタグテーブルとすることにより検索回数を減らすことができる。よって、従来技術のように各消去ブロックのブロックコントロールエリアを順次アクセスする方式に比べて検索時のオーバーヘッドを軽減することができる。また、セクタ状態のカウンタ(制御情報テーブル)を有することにより、書き込み先消去ブロックを選択する際に、その都度、消去ブロックのブロックコントロールエリアを全て検索する必要がなくなる。また、以前のデータを検出する場合(同じID番号で既に書き込まれているデータが無いか否かを検出する場合)でも、データタグテーブルをアクセスするのみで検索することができるため、オーバーヘッドを軽減することができる。
【0141】
データタグにデータ格納場所の情報としてブロック番号と論理セクタ番号を保持した場合には、データタグ1つ当たりのサイズが増加する。これを防ぐため、データの存在するブロック番号のみとすれば、データタグの情報を減らすことができる。この場合にも、既存データを検索するときにはデータタグテーブルを検索するだけで良いため、従来技術のように各消去ブロックのブロックコントロールエリアを全て検索する必要がなくなる。また、読み出し速度についても、検索対象が1ブロックにまで絞り込まれるため、ある程度の速度向上を見込むことができる。
【0142】
データタグにデータ格納場所の情報として物理アドレスを保持した場合には、さらに速度向上を図ることができる。しかし、アドレス情報(物理アドレス)は、概して論理情報(ブロック番号や論理セクタ番号)を保持するよりも大きく(例えば32ビットシステムであれば4バイト)、データタグ1つ当たりのサイズが増加する。データタグの保持データがブロック番号のみの場合には1バイトで済むことを考えると、物理アドレスの場合にはデータ管理システムメモリ部(RAM)の使用量が4倍に増加し、データ数が非常に多くなってメモリ空間を圧迫してしまう。
【0143】
このため、高速読み出しが必要なデータに割り振られるデータID番号(ファイル名)と、読み出しが遅くても良いデータに割り振られるデータID番号を、例えばデータID番号の大きさで分けることができる。そして、高速読み出しを行うデータが格納されている論理セクタ番号だけをデータ管理システムメモリ部上に格納し、読み出し速度が速くなくても良いデータについてはブロック番号だけをデータ管理システムメモリ部上に格納する。これにより、読み出すデータに応じてデータタグの構成を併用して、高速読み出しを実現しながら、データ管理システムメモリのメモリ空間を効率的に使用することができ、パフォーマンスとメモリ資源とのバランスを取ることができる。
【0144】
本発明のデータ管理システムによれば、データID番号で識別されるデータの一群から任意のデータにいち早くアクセスすることが可能である。ここで、あるデータのうち、その任意の一部分のみに対してアクセスを行いたい場合に、データの先頭から全て読み込むことは無駄であり、読み込みバッファ領域への転送時間およびバッファ領域をロスすることになる。これを防ぐため、指定したデータ数だけスキップして読み出しを行うことにより、必要なデータをさらに高速に読み出すことができる。
【0145】
本発明のデータ管理システムでは、データ管理システムメモリ部(RAM)上に格納されたデータタグを作成順にシリアルに配置してもよいが、高頻度に使用されるデータタグがテーブル後方に存在するときには、毎回不要な検索時間を重ねることになる。これを防ぐため、アクセスがあったデータのデータタグを常に検索順序の早い方に配置することにより、読み出し頻度が高いデータほど、速くアクセスすることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態であるデータ管理システムの構成を示す図である。
【図2】図1のデータ管理システムにおけるデータ管理システムメモリ部内の制御情報テーブルの構成例を示す図である。
【図3】実施形態1のデータ管理システムにおけるデータ管理システムメモリ部内のデータタグテーブルの構成例を示す図である。
【図4】実施形態1におけるデータ管理システムメモリ部の初期化処理の例を説明するためのフローチャートである。
【図5】実施形態1におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図6】実施形態1におけるデータ書き込み処理の例を説明するためのフローチャートである。
【図7】実施形態1におけるデータ書き込み処理の例を説明するためのフローチャートである。
【図8】実施形態1におけるデータ削除処理の例を説明するためのフローチャートである。
【図9】実施形態1における再構築処理の例を説明するためのフローチャートである。
【図10】実施形態1における再構築処理の例を説明するためのフローチャートである。
【図11】実施形態2のデータ管理システムにおけるデータ管理システムメモリ部内のデータタグテーブルの構成例を示す図である。
【図12】実施形態2におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図13】実施形態2におけるデータ書き込み処理の例を説明するためのフローチャートである。
【図14】実施形態2におけるデータ書き込み処理の例を説明するためのフローチャートである。
【図15】実施形態2におけるデータ削除処理の例を説明するためのフローチャートである。
【図16】実施形態3のデータ管理システムにおけるデータ管理システムメモリ部内のデータタグテーブルの構成例を示す図である。
【図17】実施形態3におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図18】(a)および(b)は、実施形態4のデータ管理システムにおけるデータ管理システムメモリ部内のデータタグテーブルの構成例を示す図である。
【図19】実施形態4におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図20】実施形態4におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図21】実施形態5におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図22】実施形態6におけるデータ読み出し処理の例を説明するためのフローチャートである。
【図23】従来のファイルシステムの構成を示す図である。
【図24】図23のファイルシステムにおけるフラッシュメモリ部に格納されているデータの構成を示す図である。
【図25】図23のファイルシステムにおけるフラッシュメモリ部に格納されているデータの構成例1を示す図である。
【図26】図23のファイルシステムにおけるフラッシュメモリ部に格納されているデータの構成例2を示す図である。
【図27】従来技術におけるデータ読み出し処理を説明するためのフローチャートである。
【図28】各フローチャートのループ処理を説明するための図である。
【図29】従来技術におけるデータ書き込み処理を説明するためのフローチャートである。
【図30】従来技術におけるデータ書き込み処理を説明するためのフローチャートである。
【図31】従来技術におけるデータ書き込み処理を説明するためのフローチャートである。
【図32】従来技術におけるデータ削除処理を説明するためのフローチャートである。
【図33】従来技術における再構築処理を説明するためのフローチャートである。
【図34】従来技術におけるデータ復元処理を説明するためのフローチャートである。
【図35】従来技術におけるデータ復元処理を説明するためのフローチャートである。
【符号の説明】
1 データ管理システム
2 データ管理システム制御部
3 フラッシュメモリ制御部
4 フラッシュメモリ部
5 消去ブロック
5a 物理セクタ
5b ブロックコントロールエリア
5c 論理セクタ
5d ブロック状態情報
5e 論理セクタ状態情報
5f データID番号
5g データ状態
6 アプリケーションプログラムまたはオペレーティングシステム等のソフトウェア
7 データ管理システムメモリ部
11 ファイルシステム
12 ファイルシステム制御部
31 制御情報
31a 未使用セクタ数
31b データ有効セクタ数
31c データ無効セクタ数
32 データタグテーブル
33 データタグ
33a データID番号
33b ブロック番号
33c 論理セクタ番号
33d データ状態
33e 物理アドレス
34 高速データタグテーブル
35 高速データタグ
35a データID番号
35e 物理アドレス
35d データ状態
36 低速データタグテーブル
37 低速データタグ
37a データID番号
37c ブロック番号
37d データ状態
51 予備消去ブロック

Claims (12)

  1. ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するためのデータ管理システムであって、
    該データ処理要求に応じた処理を制御するデータ管理システム制御部と、
    該データ管理システム制御部によって制御され、前記ファイルを構築するための制御情報を格納するデータ管理システムメモリ部と、
    前記ファイルを構成するデータを格納する複数の消去ブロックから構成される不揮発性半導体記憶部と、
    前記データ管理システム制御部からの制御に従って該不揮発性半導体記憶部へのデータ処理を制御する記憶制御部とを備え
    前記消去ブロックは、複数の論理的なデータ管理単位である論理セクタから構成され、
    前記データ管理システムメモリ部は、同一アドレスに対して書き換え可能な揮発性または不揮発性のメモリ素子からなり、前記消去ブロックを構成する論理セクタの管理情報を格納する領域である制御情報テーブルと、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示す前記不揮発性半導体記憶部の物理アドレス、および該物理アドレスに格納されたデータの状態情報を含む第1のデータタグの情報の配列と、格納されるデータを一意に識別する識別情報、該識別情報で識別されるデータの格納場所を示すブロック番号、および該ブロック上の論理セクタに格納されたデータの状態情報を含む第2のデータタグの情報の配列とからなるデータタグテーブルとを有することを特徴とするデータ管理システム。
  2. 前記制御情報テーブルは、前記消去ブロックを構成する論理セクタの管理情報として、少なくとも、使用されていない論理セクタの数、格納されているデータが有効である論理セクタの数、および格納されているデータが無効である論理セクタの数の情報を含むブロック制御情報が、予め一意に割り振られるブロック番号の順に配列されてなる請求項1に記載のデータ管理システム。
  3. 請求項2に記載のデータ管理システムを用いて、ソフトウェアからのデータ処理要求に応じてデータをファイルとして管理するデータ管理方法であって、
    ソフトウェアから処理対象となるデータの識別情報と共にデータ読み出し処理要求が発生した場合に前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照して、与えられた識別情報と一致するデータタグ情報から前記不揮発性半導体記憶部の物理アドレスを求め、予め定められた境界値を基準として、求められた物理アドレスの値に従って前記第1のデータタグ情報の配列と前記第2のデータタグ情報の配列のいずれかを選択し、選択されたデータタグ情報の配列に基づいて前記不揮発性半導体記憶部からデータの読み出し処理を行うことを特徴とするデータ管理方法。
  4. データ管理システムの起動時に、前記データ管理システム制御部が、前記消去ブロックに含まれる各論理セクタの状態を格納する領域を順次読み出し、該論理セクタの状態情報から、使用されていない論理セクタ、格納されているデータが有効である論理セクタ、および格納されているデータが無効である論理セクタの各々を検出する毎にその数をカウントアップすることによって前記制御情報テーブルを生成する、請求項3に記載のデータ管理方法。
  5. データ管理システムの起動時に、前記データ管理システム制御部が、前記消去ブロックに含まれる各論理セクタの状態を格納する領域を順次読み出し、格納されているデータが有効である論理セクタのデータ識別情報として、ブロック番号と論理セクタ番号、およびデータの状態情報を抽出し、それらを配列することによって前記データタグテーブルの前記第2のデータタグの情報の配列を生成する、請求項3に記載のデータ管理方法。
  6. データ管理システムの起動時に、前記データ管理システム制御部が、前記消去ブロックに含まれる各論理セクタの状態を格納する領域を順次読み出し、格納されているデータが有効である論理セクタのブロック番号と論理セクタ番号、およびデータ の状態情報を抽出して、該ブロック番号と該論理セクタ番号を基に前記不揮発性半導体記憶部の物理アドレスを演算し、該物理アドレスと、前記抽出された論理セクタ番号およびデータの状態情報とを配列することによって、前記データタグテーブルの前記第1のデータタグの情報の配列を生成する、請求項3に記載のデータ管理方法。
  7. 前記データ管理システム制御部、前記データ管理システムメモリ部に格納された前記制御情報テーブルを参照する際に、使用されていない論理セクタの数が最も多いブロックを検索して書き込み対象ブロックとして選択する処理と、与えられた識別情報での書き込み処理に対応する新たなデータタグ情報を生成して前記データタグテーブルに追加する処理と、書き込み処理に伴う有効および無効な論理セクタの数の増減に従って該制御情報テーブルを更新する処理とを少なくとも含み、
    与えられた識別情報と同一の識別情報が該データタグテーブルに存在する場合には、さらに、既存の識別情報を有するデータタグ情報内のデータの状態情報を無効にする処理と、該データを無効にする処理に伴う有効および無効な論理セクタの数の増減に従って該制御情報テーブルを更新する処理とを含む、請求項3に記載のデータ管理方法。
  8. 前記データ管理システム制御部、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照する際に、与えられた識別情報と一致するデータタグ情報内のデータの状態情報を無効にする処理と、該データを無効にする処理に伴う有効および無効な論理セクタの数の増減に従って前記制御情報テーブルを更新する処理とを少なくとも含む、請求項3に記載のデータ管理方法。
  9. 前記ソフトウェアから要求されたデータ処理中に、前記消去ブロック内において格納されているデータが無効である論理セクタを解放する再構築処理が必要となった場合に、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記制御情報テーブルを参照して、格納されているデータが無効である論理セクタの数が最も多いブロックを検索して再構築対象ブロックとして選択する処理と、該データの状態情報が無効であるデータタグ情報を削除するために、前記データタグテーブルを再度生成する処理とを少なくとも含む、請求項3に記載のデータ管理方法。
  10. 前記データ管理システム制御部は、高速読み出しを必要とするデータと高速読み出しを必要としないデータを分類し、ある値を基準としてそのいずれに分類されるかを判別可能なように各々のデータに識別情報の値を予め割り振り、データ読み出し処理要求が発生すると、該識別情報の値から高速読み出しを必要とするデータと判別される場合には前記第1のデータタグ情報の配列を選択し、高速読み出しを必要としないデータと判別される場合には前記第2のデータタグ情報の配列を選択する、請求項3に記載のデータ管理方法。
  11. 前記データ管理システム制御部、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照する際に、直近に生成されたデータタグ情報から古い時点で生成されたデータタグ情報の方向へ検索し、与えられた識別情報と一致するデータタグ情報から前記不揮発性半導体記憶部の物理アドレスを求める処理と、読み出し処理毎に与えられたデータ識別情報に対応するデータタグ情報を生成し、前記データタグテーブルの配列に追加する処理とを含む、請求項3に記載のデータ管理方法。
  12. 前記データ読み出し処理要求が発生した場合に、ソフトウェアから処理対象となるデータの識別情報とともに、読み飛ばしオフセットと読み込みサイズが与えられると、前記データ管理システム制御部が、前記データ管理システムメモリ部に格納された前記データタグテーブルを参照して、与えられた識別情報と一致するデータタグ情報から前記不揮発性半導体記憶部の物理アドレスを求める処理と、該物理アドレスに該読み飛ばしオフセットを加算して新たな読み出し対象物理アドレスとする処理と、該新たな読み出し対象物理アドレスから該読み込みサイズ分だけデータを読み出す処理とを少なくとも含む、請求項3に記載のデータ管理方法。
JP2000355074A 2000-11-21 2000-11-21 データ管理システムおよびそれを用いたデータ管理方法 Expired - Fee Related JP3904182B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000355074A JP3904182B2 (ja) 2000-11-21 2000-11-21 データ管理システムおよびそれを用いたデータ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000355074A JP3904182B2 (ja) 2000-11-21 2000-11-21 データ管理システムおよびそれを用いたデータ管理方法

Publications (2)

Publication Number Publication Date
JP2002157149A JP2002157149A (ja) 2002-05-31
JP3904182B2 true JP3904182B2 (ja) 2007-04-11

Family

ID=18827556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000355074A Expired - Fee Related JP3904182B2 (ja) 2000-11-21 2000-11-21 データ管理システムおよびそれを用いたデータ管理方法

Country Status (1)

Country Link
JP (1) JP3904182B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520750B (zh) * 2009-04-02 2015-04-01 北京中星微电子有限公司 在sdram存储若干数据的方法
WO2011068109A1 (ja) 2009-12-03 2011-06-09 株式会社日立製作所 記憶装置、およびメモリコントローラ

Also Published As

Publication number Publication date
JP2002157149A (ja) 2002-05-31

Similar Documents

Publication Publication Date Title
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
CN110058796B (zh) 数据储存装置
US7831783B2 (en) Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems
US9134918B2 (en) Physical compression of data with flat or systematic pattern
US9940040B2 (en) Systems, solid-state mass storage devices, and methods for host-assisted garbage collection
KR100389241B1 (ko) 비휘발성 메모리에서의 가변 크기 데이터의 효율적인관리를 위한 동적 할당
US20070043900A1 (en) Flash memory management method and flash memory system
JP2008508596A (ja) Nvramを使用するメモリ管理のためのシステム、方法、コンピュータ可読媒体、および装置
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
JP2005242897A (ja) フラッシュディスク装置
US20150052292A1 (en) Method for erasing data entity in memory module
KR100703680B1 (ko) 플래시 파일 시스템
JP2002163139A (ja) データ管理装置およびそれを用いたデータ管理方法
Ross Modeling the performance of algorithms on flash memory devices
JP3904182B2 (ja) データ管理システムおよびそれを用いたデータ管理方法
JP3555456B2 (ja) フラッシュ型メモリの管理装置
JP2001101071A (ja) フラッシュ型メモリを用いたデータ記憶装置及びフラッシュ型メモリのデータ管理方法
KR20100099888A (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
JP4888333B2 (ja) フラッシュディスク装置
JPH0764831A (ja) データ記憶装置
JPH11272537A (ja) フラッシュ型メモリ及びその管理装置
JP2006127377A (ja) Fatファイルシステム
JPH10289144A (ja) メモリの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061211

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070105

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees