JP2005235007A - データ記憶装置及び方法 - Google Patents
データ記憶装置及び方法 Download PDFInfo
- Publication number
- JP2005235007A JP2005235007A JP2004045241A JP2004045241A JP2005235007A JP 2005235007 A JP2005235007 A JP 2005235007A JP 2004045241 A JP2004045241 A JP 2004045241A JP 2004045241 A JP2004045241 A JP 2004045241A JP 2005235007 A JP2005235007 A JP 2005235007A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data storage
- writing
- area
- file
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 フラッシュメモリ等のデータ記録媒体へ高速にデータを記憶させる。
【解決手段】 記憶すべきデータからなる各ファイルが階層的なFATシステム30を介して管理されるデータ領域33に、複数のクラスタにより構成される書き込みブロック単位でデータを書き込む際に、外部から供給されたデータをRAM14に連続的に配置し、RAM14に配置したデータを書き込みブロック単位でデータ領域33へ書き込む際にその書き込み状況をFATシステム30上の管理テーブル31,32に反映させ、またデータ記憶領域へ書き込んだデータを当該管理テーブル31,32を用いて複数のファイルに分割する。RAM14にデータを配置する際には、先頭アドレス位置からクラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、各ファイルを構成するデータを配置するとともに、各ファイル間の空き領域が上記クラスタサイズ未満となるようにこれを制御する。
【選択図】図3
【解決手段】 記憶すべきデータからなる各ファイルが階層的なFATシステム30を介して管理されるデータ領域33に、複数のクラスタにより構成される書き込みブロック単位でデータを書き込む際に、外部から供給されたデータをRAM14に連続的に配置し、RAM14に配置したデータを書き込みブロック単位でデータ領域33へ書き込む際にその書き込み状況をFATシステム30上の管理テーブル31,32に反映させ、またデータ記憶領域へ書き込んだデータを当該管理テーブル31,32を用いて複数のファイルに分割する。RAM14にデータを配置する際には、先頭アドレス位置からクラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、各ファイルを構成するデータを配置するとともに、各ファイル間の空き領域が上記クラスタサイズ未満となるようにこれを制御する。
【選択図】図3
Description
本発明は、記憶すべきデータからなる各ファイルが階層的なファイルシステムを介して管理されるデータ記憶領域に、複数の固定長クラスタにより構成されるブロック単位でデータを書き込むデータ記憶装置及び方法に関する。
パーソナルコンピュータやPDA(Personal Digital Assistants)等の情報処理装置では、ノンリニアアクセス可能なハードディスクを始めとして、光ディスク、光磁気ディスク、メモリカード等の各種データ記録媒体が装着され、これにデータが記録される。
このデータ記録媒体に記録されるデータを管理するためのファイルシステムが構築されるところ、その代表的なものとして例えば図8に示すようなFAT(File Allocation Table)システムが提案されている。
このFATシステム80では、クラスタの使用状況を管理するためのFAT領域81と、記録すべきデータの各種属性情報を記録するためのディレクトリ領域82と、実データを記録するためのデータ領域83とを有する。
FAT領域81は、データ領域83を構成する複数のクラスタに対応した数のFATエントリからなり、主としてデータ領域83に記録されているデータからなる各ファイルのクラスタを検索するために使用される。
ディレクトリ領域82は、データ領域83に記録すべきデータのファイル名やファイルサイズ、書き込み日時、生成日時等に加え、更に記録開始クラスタ等を管理するための領域である。例えばデータ領域83において、ファイル名“ABC.TXT”のデータが、クラスタC1〜クラスタC3におけるデータを連結させたものとして構成され、またファイル名“DEF.TXT”のデータが、クラスタC4〜クラスタC5におけるデータを連結させたものとして構成されている場合には、図8に示すように、ディレクトリ領域82においてその記録開始クラスタがファイル毎に管理される。
また、このディレクトリ領域82を介して“ABC.TXT”の記録開始クラスタがクラスタC1であるものと判別することができることから、FAT領域81のエントリ番号1を参照し、そこに格納されている数字を識別する。ここで、エントリ番号1において“2”が格納されていた場合には、エントリ番号2に格納されている数字を識別する。この図8においては、このエントリ番号2においてさらに“3”が格納されているため、エントリ番号3を識別する。エントリ番号3には、Endの意味を示す文字“E”が格納されているため、ファイル“ABC.TXT”は、クラスタC1〜クラスタC3で構成されていることを、このFAT領域81のエントリ番号に格納されている数字に基づき容易に判別することができる。ちなみに、ファイル“DEF.TXT”が如何なるクラスタで構成されているかについても、このFAT領域81を介して容易に識別することができる。
データ領域83は、FATシステム80における管理単位であるクラスタ毎にデータを記録するための領域である。クラスタのサイズは固定長であり、標準で4Kバイトとされるが、512バイト〜32Kバイトの間で2のべき乗の大きさをとることができる。ちなみに、1クラスタはnセクタで表される。
このようなFATシステム80によりクラスタの使用状況を読み出すことにより、データ記録媒体へデータを記録する際に空クラスタの検索及び論理アドレスの算出をクラスタ毎に行う必要性をなくすことで、短時間に多量のデータを記録することができるファイル管理プログラムが提案されている(例えば、特許文献1参照。)。
ところで、図9(a)に示すようなクラスタC1〜クラスタC6で構成される空のデータ領域83に、太枠で示される2クラスタ分を書き込みブロック単位として、3クラスタ分のデータ量を持つ“ABC.TXT”のデータを書き込む場合には、先ずクラスタC1,C2を含む最初の書き込みブロックにおいて、当該データの書き込みのみを実行する(図9(b))。次のクラスタC3,C4を含む2番目の書き込みブロックでは、“ABC.TXT”のデータの書き込みは最初のクラスタC3で終了してしまう。このため、当該書き込みブロックによる書き込み時において、後述するread-modify-write処理を行う。
同様に2クラスタ分のデータ量を持つ“DEF.TXT”のデータを続けて書き込む場合には、図9(c)に示すように、クラスタC3,C4を含む2番目の書き込みブロックにおいて、クラスタC4に対する書き込みを実行するとともに、クラスタC5,C6を含む3番目の書き込みブロックにおいて、クラスタC5に対する書き込みを実行する。即ち、2クラスタ分のデータ量を持つ“DEF.TXT”では、互いに異なる書き込みブロックの一部を構成するクラスタC4,C5に対して書き込みを実行するため、ともにread-modify-write処理を行うことになる。
このread-modify-write処理により、2クラスタで構成される書き込みブロックに対し、1クラスタ分のデータを書き込む場合には、先ず図10のステップS11に示すように、1ブロック中に記録されているデータの全てをバッファ85へ読み出す。ちなみに、このバッファ85は、1書き込みブロックに相当する2クラスタ分のデータを一時的に格納できる構成とされている。
次にステップS12へ移行し、新たに書き込むべき1クラスタ分のデータ(以下、新規データという。)をこのバッファ85上において上書きする。即ち、このステップS12終了時においてバッファ85には、1クラスタ分の新規データが新たに書き込まれた状態となっている。次にステップS13へ移行し、データ領域83に記録されているデータを消去する。このステップS13終了時においてこのデータ領域83は空となっている。次にステップS14へ移行し、1クラスタ分の新規データを含む2クラスタのデータをバッファ85からデータ領域83へそのまま書き込む。即ち、このデータ領域83は、ステップS13において空の状態となっているため、バッファ85からそのままデータを書き込んでも何ら支障は生じないこととなる。
図11は、read-modify-write処理を行うことによりFATシステムを構築する手順を示している。
先ず、ステップS21において、FAT領域81とディレクトリ領域82において記憶されている情報を読み出す。次にステップS22に移行し、FAT領域81から読み出したFATエントリを介してデータ領域83中の空きクラスタを識別する。次にステップS23へ移行し、ステップS22において識別した空きクラスタを含む書き込みブロックからデータを読み出し、これをバッファ85へ一時記憶させる。このステップS23の動作は、上述のステップS11に相当する。
次にステップS24へ移行し、バッファ85に新規データを書き込む。このステップS24における動作は、上述のステップS12に相当する。次にステップS25へ移行し、データ領域83に記憶されているデータを消去し、これを空の状態とする。このステップS25における動作は、空きクラスタを含む書き込みブロック単位で実行し、上述のステップS13に相当する。
次にステップS26へ移行し、ステップS25において空の状態とした書き込みブロックに、新規データを含む2クラスタのデータを書き込む。このステップS26の動作は、上述のステップS14に相当する。次にステップS27へ移行し、FAT領域81の各FATエントリに、ステップS26においてデータが書き込まれたクラスタの番号を書き込む。ステップS26において複数のクラスタに跨ってデータを書き込んだ場合には、当該複数クラスタにおけるデータを連結させた、いわゆるクラスタチェーンをこのFAT領域81に作成することになる。
次にステップS28へ移行し、新規データに応じたファイルを最終クラスタまで書き終えたか否か確認する。このステップS28において、未だ最終クラスタまでの書き込みを終了していないものと判別された場合にはステップS22へ戻り、上述した書き込み動作を繰り返す。また、このステップS28において最終クラスタまでの書き込みを終了しているものと判別された場合には、ステップS29へ移行する。
ステップS29では、データ領域83に記録されたデータのファイル名やファイルサイズ、クラスタ番号等の各種情報をディレクトリ領域82へ書き込む。次にステップS30へ移行し、全てのファイルの書き込みを終了したか否か判別する。データ領域83に書き込むべきファイルが複数ある場合であって、全てのファイルの書き込みが終了していない場合には、ステップS22へ戻り、上述した書き込み動作を繰り返す。また、このステップS30において、全てのファイルの書き込みが終了しているものと判別された場合には、ステップS31へ移行する。
ステップS31では、上述の如く生成したFAT領域81並びにディレクトリ領域82をフラッシュメモリ等のメディアに書き込む。
ところで、上述したread-modify-write処理は、バッファへのデータの書き込み、データ領域におけるデータ消去、バッファからデータ領域へのデータ書き込みの3ステップが必要となり、データの書き込みを全て終了させるまで長時間を要してしまう。特にクラスタのサイズに対する、データの書き込みサイズ又は消去サイズが異なる場合には、多くの箇所においてread-modify-write処理を実行しなければならず、また書き込むべきファイル数が増加するにつれて、read-modify-write処理の回数は増加することから、データの書き込みに要する時間は著しく増加することになる。
また図12は、ディレクトリ領域82における3クラスタ分のデータをデータ記録媒体へ記録した上で、さらに2クラスタからなるファイル“ABC.TXT”をそこに記録する場合につき説明するための図である。先ず図12(a)に示すように、ディレクトリ領域82におけるデータをクラスタC1〜クラスタC3から順に書き込んでゆく結果、クラスタC3,C4からなる書き込みブロックにおいては、上述したread-modify-write処理を実行しなければならない。またファイル“ABC.TXT”のデータをクラスタC4,C5に格納する場合にはおいても、図12(b)に示すように書き込みブロック毎にread-modify-write処理を実行しなければならない。
即ち、ディレクトリ領域82とデータ領域83の境界位置が上述した書き込みブロック中にくる場合においてもread-modify-write処理を実行しなければならず、これもデータの書き込み全体に要する時間の増加につながることになる。
そこで、本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、read-modify-write処理を省略しつつ、フラッシュメモリ等のデータ記録媒体へ高速にデータを記憶させることができるデータ記憶装置及び方法を提供することにある。
本発明を適用したデータ記憶装置は、記憶すべきデータからなる各ファイルが階層的なファイルシステムを介して管理されるデータ記憶領域に複数の固定長クラスタにより構成されるブロック単位でデータを書き込むデータ記憶装置において、外部から供給されたデータを連続的に配置するためのメモリと、メモリに配置されたデータをブロック単位でデータ記憶領域へ書き込む際にその書き込み状況をファイルシステム上の管理テーブルに反映させ、またデータ記憶領域へ書き込んだデータを当該管理テーブルを用いて複数のファイルに分割する制御手段とを備え、制御手段は、先頭アドレス位置から固定長クラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、各ファイルを構成するデータを上記メモリにブロック単位で連続的に配置するとともに、各ファイル間の空き領域が固定長クラスタサイズ未満となるようにこれを制御する。
本発明を適用したデータ記憶方法では、記憶すべきデータからなる各ファイルが階層的なファイルシステムを介して管理されるデータ記憶領域に複数の固定長クラスタにより構成されるブロック単位でデータを書き込むデータ記憶方法において、外部から供給されたデータをメモリに連続的に配置する配置ステップと、メモリに配置したデータをブロック単位でデータ記憶領域へ書き込む際にその書き込み状況を上記ファイルシステム上の管理テーブルに反映させ、またデータ記憶領域へ書き込んだデータを当該管理テーブルを用いて複数のファイルに分割する書込ステップとを有し、配置ステップでは、先頭アドレス位置から上記固定長クラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、各ファイルを構成するデータをメモリに連続的にブロック単位で配置するとともに、各ファイル間の空き領域が固定長クラスタサイズ未満となるようにこれを制御する。
本発明では、データ領域へ書き込むべきデータを書き込みブロック単位でメモリ上に一時的に記憶し、このメモリにて一時的に記憶したデータを書き込みブロック単位で書き込む。即ち、2クラスタで構成される書き込みブロックに対し、2クラスタ未満のデータを書き込む場合においても、これを予めメモリへ配置しておき、書き込みブロック単位でデータ領域に記憶させることができる。このため、従来におけるバッファへの読み出し動作や、バッファ上の上書き動作を省略することができ、データ領域へ全てデータを記憶させるまでの時間を大幅に短縮させることができる。
以下、本発明を実施するための最良の形態として、複数のファイル内の各データを階層的なファイルシステムを介してブロック単位でデータ記録媒体へ記憶させるデータ記憶装置1につき図面を参照しながら詳細に説明する。
データ記憶装置1は、ノンリニアアクセス可能なハードディスクを始めとして、光ディスク、光磁気ディスク、メモリカード等の各種データ記録媒体等が装着されるパーソナルコンピュータやPDA(Personal Digital Assistants)等に適用され、例えば図1に示すように、バスインターフェース(バスI/F)12を介してバス25に接続されたCPU(Central Processing Unit)11と、バス25にそれぞれ接続されてなるDMAC(Direct Memory Access Controller)13,RAM(Random Access Memory)14,フラッシュメモリ15と、ビデオインターフェース(ビデオI/F)16を介してバス25に接続され、ユーザに開示する情報を表示するためのモニタ17と、キーボードインターフェース(キーボードI/F)18を介してバス25に接続されるキーボード19と、メディアインターフェース(メディアI/F)20を介してバス25に接続されるフラッシュメモリカード21とを備えている。
CPU11は、バスI/F12を介してバス25に対して制御信号を送信することにより、データ記憶装置1全体を制御する中央演算ユニットであり、バス25を介して実行すべき制御プログラムを格納するフラッシュメモリ15、及びデータの蓄積や展開等に使用する作業領域としての図示しないRAM14にアクセス可能となる。このCPU11は、キーボード19を介した操作に基づき、各種制御用の指令をバス25を介して伝達し、或いは所定の文字情報をモニタ17へ表示させる。
DMAC13は、周辺機器とフラッシュメモリカード21との間におけるデータ転送を仲介する専用のブロックである。このDMAC13は、バス25を介してRAM14並びにフラッシュメモリ15へのアクセスが可能となる。DMAC13は、CPU11を介さずに上記データ転送を仲介するようにしてもよい。
フラッシュメモリ15は、不揮発性半導体メモリの一種で、メモリセル(記憶単位)は、スタックゲート型MOSトランジスタで構成される。このフラッシュメモリ15は、CPU11やDMAC13によりプログラム情報が書き込まれ、或いは読み出されることになる。
モニタ17は、例えば図示しない液晶表示素子やバックライト等から構成され、ユーザが撮像された画像を視認するためのインターフェースである。液晶表示素子の背面からは上述したバックライトにより照明光が照射され、モニタ17全体の視認性を向上させることができる。
フラッシュメモリカード21は、メディアI/F20に対して着脱可能な半導体メモリであり、接続されたバス25を介してデータを受け取り、これを指定されたアドレスへ記録する。また、このフラッシュメモリカード21は、CPU11による制御の下、記録すべきデータを管理するためのファイルシステムが構築される。ちなみにこのフラッシュメモリカード21は、データを記録することができるハードディスクや、着脱自在なディスク状記録媒体に代替してもよい。
なお、このフラッシュメモリカード21に構築されるファイルシステムとして、本発明では、FAT(File Allocation Table)システムを構築する場合を例にとり説明をする。このFATシステムでは、例えば図2に示すように、クラスタの使用状況を管理するためのFAT領域31と、記録すべきデータの各種属性情報を記録するためのディレクトリ領域32と、実データを記録するためのデータ領域33とを有する。このFAT領域31とディレクトリ領域32は、このデータ領域33に記憶されるデータを管理するためのいわゆる管理テーブルとして機能する。
FAT領域31は、データ領域33を構成する複数のクラスタに対応した数のFATエントリからなり、主としてデータ領域33に記録されているデータからなる各ファイルのクラスタを検索するために使用される。
ディレクトリ領域32は、データ領域83に記録すべきデータのファイル名やファイルサイズ、書き込み日時、生成日時等に加え、更に記録開始クラスタ等を管理するための領域である。例えばデータ領域33において、ファイル名“ABC.TXT”のデータが、クラスタC1〜クラスタC3におけるデータを連結させたものとして構成され、またファイル名“DEF.TXT”のデータが、クラスタC4〜クラスタC5におけるデータを連結させたものとして構成されている場合には、図2に示すように、ディレクトリ領域32においてその記録開始クラスタがファイル毎に管理される。
また、このディレクトリ領域32を介して“ABC.TXT”の記録開始クラスタがクラスタC1であるものと判別することができることから、FAT領域31のエントリ番号1を参照し、そこに格納されている数字を識別する。ここで、エントリ番号1において“2”が格納されていた場合には、エントリ番号2に格納されている数字を識別する。この図2においては、このエントリ番号2においてさらに“3”が格納されているため、エントリ番号3を識別する。エントリ番号3には、終了の意味を示す文字“E”が格納されているため、ファイル“ABC.TXT”は、クラスタC1〜クラスタC3で構成されていることを、このFAT領域31のエントリ番号に格納されている数字に基づき容易に判別することができる。
ちなみに、ファイル“DEF.TXT”が如何なるクラスタで構成されているかについても、このFAT領域31を介して容易に識別することができる。
データ領域33は、FATシステム30における管理単位であるクラスタ毎にデータを記録するための領域である。クラスタのサイズは、固定長で構成され、標準で4Kバイトとされるが、512バイト〜32Kバイトの間で2のべき乗の大きさをとることができる。ちなみに、1クラスタは複数セクタで表される。
次に、このようなFATシステム30を構築するデータ記憶装置1において、複数ファイルで構成されるデータを記憶する方法につき、図3を用いて説明をする。
先ず図3(a)に示すようなクラスタC1〜クラスタC6で構成される空のデータ領域33に対し、太枠で示される2クラスタ分を書き込みブロック単位として、図3(b)に示すように、クラスタC1,C2を含む最初の書き込みブロック、クラスタC3,C4を含む2番目の書き込みブロック、クラスタC5,C6を含む3番目の書き込みブロック毎にデータを書き込んでゆく。
全てのファイルにつき、上述した書き込みブロック単位でデータをデータ領域33に書き込むことにより、上述したFAT領域31、ディレクトリ領域32に、各クラスタに応じた情報が書き込まれることになる。ちなみに、このFAT領域31やディレクトリ領域32に書き込まれた情報が変更されると、データ領域33の記録状況にこれが反映されることになる。
仮に、ファイル名“ABC.TXT”のデータが、クラスタC1〜クラスタC3におけるデータを連結させたものとして構成され、またファイル名“DEF.TXT”のデータがクラスタC4〜クラスタC5におけるデータを連結させたものとして構成されている場合には、図3(c)に示すように、このFAT領域31、ディレクトリ領域32に書き込まれた内容を変更することにより、これを2つのファイルに分割する。
図4は、データ領域33に対して、書き込みブロック単位でデータを書き込む例を示している。この図4に示すステップS41において1書き込みブロックに相当する2クラスタ分のデータを、データ領域33から消去する。このステップS41終了時においてこのデータ領域33は空となっている。また、ステップS41において、書き込むべきデータは、書き込みブロック単位でRAM14に格納されている。
次にステップS42へ移行し、1書き込みブロックに相当する2クラスタ分のデータをRAM14からデータ領域33へそのまま書き込む。即ち、このデータ領域33は、ステップS41において空の状態となっているため、RAM14からそのままデータを書き込んでも何ら支障は生じないこととなる。
即ち、本発明を適用したデータ記憶装置1では、データ領域33へ書き込むべきデータを書き込みブロック単位でRAM14へ一時的に記憶する。そしてデータ領域33が空になった段階で、このRAM14にて一時的に記憶したデータを書き込みブロック単位で書き込むことができる。即ち、2クラスタで構成される書き込みブロックに対し、2クラスタ未満のデータを書き込む場合においても、これを予めRAM14へ配置しておくことで、上述したread-modify-write処理を行うことなく、これをデータ領域33へ記憶させることができる。このため、上記従来のステップS11におけるバッファへの読み出し動作や、上記従来のS12におけるバッファ上の上書き動作を省略することができる。その結果、データ領域33へ全てデータを記憶させるまでの時間を大幅に短縮させることができる。
図5は、ステップS41においてデータをRAM14へ配置させる例を示している。
例えば、データ領域33に、ファイル名“ABC.TXT”のデータが、クラスタC1からクラスタC3の途中に至るまで書き込み、またファイル名“DEF.TXT”のデータが、クラスタC4からクラスタC5の途中に至るまで書き込む場合には、この図5に示すようにRAM14上にこの2つのファイルを配置する。ちなみに、これら2のファイルのデータは、互いにクラスタ境界から書き込まれるようにRAM14上に配置されることになる。その結果、ファイル名“ABC.TXT”のデータがクラスタC3の途中まで入っているため、ファイル名“DEF.TXT”のデータは、クラスタC4の先頭位置から書き込まれるように、このRAM14上で展開させる。
即ち、本発明では、外部から供給すべきデータを、先頭アドレス位置からクラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、RAM14上において連続的に配置する。また、各ファイル間の空き領域が上記クラスタサイズ未満となるようにこれを制御する。
ちなみに、このファイル名“ABC.TXT”のデータが途中まで展開されたクラスタC3の空き領域については、ダミーデータで埋める。即ち、このダミーデータで埋められる領域は、クラスタサイズ未満となる。同様にファイル名“DEF.TXT”のデータが途中まで展開されたクラスタC5の残りの領域についても同様にダミーデータで埋める。クラスタC5とともに書き込みブロックを形成しているクラスタC6についても同様にダミーデータで埋める。
このように各ファイルのデータをクラスタの境界が起点となるように配置し、残りの領域をダミーデータで埋めることにより、全ての書き込みブロックにつきデータが配置された状態をRAM14上で作り出すことが可能となる。また書き込むべきデータが複数のファイルで構成されている場合であっても、このRAM14上で作り出されたデータの配置をそのままデータ領域33上に書き込むことにより、上記read-modify-write処理を省略することができる。またRAM14上に配置されたデータをそのままデータ領域33上に書き込む際に、データ領域31への書き込み単位又は消去単位の整数倍を上記書き込みブロック単位としてもよい。データ領域31への書き込み単位又は消去単位に応じた量とすることで、書き込み速度の高速化が図れることになる。
また、このような配置のデータがデータ領域33に書き込まれることにより、FAT領域31とディレクトリ領域32に書き込まれた情報を操作するのみで、ファイル名“ABC.TXT”、ファイル名“DEF.TXT”からなる2つのファイルに分割することも可能となる。なお、上記複数のファイルを分割する際に、ファイルシステム30を構成する階層ディレクトリにおける書き込み単位の整数倍のサイズを一度に処理することで、処理速度を向上させることができる。
このファイルの具体的な分割方法は、例えば特開平11−120043号公報に記載されている方法に基づいてもよい。
なお、上述したダミーデータとして、フラッシュメモリカード21への書き込み時間が最も短いデータを配置するようにしてもよい。これにより、データの書き込み時間を短縮化させることができ、記憶領域33への書き込み動作をより高速化させることができる。
また、本発明では、この書き込み時間が最も短いデータとして、“FF”を用いるようにしてもよい。フラッシュメモリカード21において、ビット0の書き込みは、ビット1の書き込みよりも時間がかかる。このため、ダミーデータとしてビット1のデータのみで構成される“FF”データを用いることにより、処理動作を更に高速化させることも可能となる。
図6は、本発明を適用したデータ記憶装置1により、FATシステムを構築する手順を示している。
先ず、ステップS51において、FAT領域31とディレクトリ領域32において書き込まれている情報を読み出す。次にステップS52に移行し、FAT領域31から読み出したFATエントリを介してデータ領域33中の空きクラスタを識別する。なおデータ領域33への書き込みは、前述の如く複数クラスタから構成される書き込みブロック単位で実行するため、このステップS52において識別すべき空きクラスタは、書き込みブロックを構成するクラスタが全て空きとなっているものに限定する。
次にステップS53へ移行し、データ領域33に記憶されているデータを消去し、これを空の状態とする。ちなみに、ステップS52において全て空きクラスタのみで構成されている書き込みブロックが精度よく識別されている場合には、このステップS53を省略するようにしてもよい。
次にステップS54へ移行し、ステップS53において空の状態とした書き込みブロックにデータを書き込む。このステップS54の動作は、上述のステップS42に相当する。次にステップS55へ移行し、FAT領域31の各FATエントリに、ステップS54においてデータが書き込まれたクラスタの番号を書き込む。ステップS54において複数のクラスタに跨ってデータを書き込んだ場合には、当該複数クラスタにおけるデータを連結させた、いわゆるクラスタチェーンをこのFAT領域31上に作成することになる。
次にステップS56へ移行し、最終クラスタまでデータを書き終えたか否か確認する。このステップS56において、未だ最終クラスタまでの書き込みを終了していないものと判別された場合にはステップS52へ戻り、上述した書き込み動作を繰り返す。また、このステップS56において最終クラスタまでの書き込みを終了しているものと判別された場合には、ステップS57へ移行する。
ステップS57では、作成したクラスタチェーンを分割し、さらにデータ領域33に記録されたデータのファイル名やファイルサイズ、クラスタ番号等の各種情報をディレクトリ領域32へ書き込む。
次にステップS58へ移行し、全てのファイルの書き込みを終了したか否か判別する。データ領域33に書き込むべきファイルが複数ある場合であって、全てのファイルの書き込みが終了していない場合には、ステップS52へ戻り、上述した書き込み動作を繰り返す。また、このステップS58において、全てのファイルの書き込みが終了しているものと判別された場合には、ステップS59へ移行する。
ステップS59では、上述の如く生成したFAT領域31並びにディレクトリ領域32をフラッシュメモリカード21に書き込む。
即ち、この図6に示すFATシステムの構築手順では、従来存在していた書き込みブロックからデータを読み出すステップと、読み出したデータに新規データを上書きするステップを省略することができ、より迅速な書き込み動作を実行することができる。
また図7は、ディレクトリ領域32におけるデータをフラッシュメモリカード21へ記録した上で、さらに2クラスタからなるファイル“ABC.TXT”をそこに記録する場合につき説明するための図である。本発明を適用したデータ記憶装置1では、2クラスタ単位でデータを書き込むため、ディレクトリ領域32に記録すべきデータが仮に3クラスタ分に相当する場合であっても、図7(a)に示すように、あえてクラスタC1〜クラスタC4の4クラスタ分をこれに割り当てる。
即ち、ファイルシステムを構成する階層ディレクトリを新たに作成し或いは拡張する場合に、上記データ領域33への書き込み単位又は消去単位の整数倍の記憶領域をこれに割り当てる。これにより、ディレクトリの1書き込みブロック単位中に入るディレクトリエントリの最大数の整数倍の数を一度に処理することができるため、ディレクトリの書き込みの高速化を図ることができる。また、データ領域33と同様、read-modify-write処理を省略することができるため、より迅速な書き込み動作を実行することができる。なお、続くファイル“ABC.TXT”のデータに関しては、クラスタC5の先頭から書き込まれることになる(図7(b))。
なお、上述した実施の形態では、FATシステムを例に挙げて説明をしたが、かかる場合に限定されるものではなく、他のいかなるファイルシステムを構成する場合においても同様の効果を得ることができる。
上述した実施の形態では、あくまでフラッシュメモリカード21にデータを記憶させる場合を例に挙げて説明をしたが、かかる場合に限定されるものではなく、他のいかなる記録媒体(ハードディスク、光ディスク、磁気ディスク等)を対象としたものであっても、同様の効果を得ることができる。
1 データ記憶装置、11 CPU 12 バスI/F 13 DMAC、14 RAM、15 フラッシュメモリ、16 ビデオI/F、17 モニタ、18 キーボードI/F、19 キーボード、20 メディアI/F、21 フラッシュメモリカード、25 バス
Claims (14)
- 記憶すべきデータからなる各ファイルが階層的なファイルシステムを介して管理されるデータ記憶領域に、複数の固定長クラスタにより構成されるブロック単位でデータを書き込むデータ記憶装置において、
外部から供給されたデータを連続的に配置するためのメモリと、
上記メモリに配置されたデータを上記ブロック単位で上記データ記憶領域へ書き込む際にその書き込み状況を上記ファイルシステム上の管理テーブルに反映させ、また上記データ記憶領域へ書き込んだデータを当該管理テーブルを用いて複数のファイルに分割する制御手段とを備え、
上記制御手段は、先頭アドレス位置から上記固定長クラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、各ファイルを構成するデータを上記メモリに上記ブロック単位で連続的に配置するとともに、各ファイル間の空き領域が上記固定長クラスタサイズ未満となるようにこれを制御すること
を特徴とするデータ記憶装置。 - 上記制御手段は、上記複数のファイルを分割する際に、上記ファイルシステムを構成する階層ディレクトリにおける書き込み単位の整数倍のサイズを一度に処理すること
を特徴とする請求項1記載のデータ記憶装置。 - 上記制御手段は、上記データ記憶領域への書き込み単位又は消去単位の整数倍を上記ブロック単位として上記メモリに配置されたデータを書き込むこと
を特徴とする請求項1記載のデータ記憶装置。 - 上記制御手段は、上記ファイルシステムを構成する階層ディレクトリを新たに作成し或いは拡張する場合には、上記データ記憶領域への書き込み単位又は消去単位の整数倍の記憶領域をこれに割り当てること
を特徴とする請求項1記載のデータ記憶装置。 - 上記制御手段は、上記データ記憶領域への書き込み時間の最も短いデータを上記空き領域に割り当てること
を特徴とする請求項1記載のデータ記憶装置。 - 上記ファイルシステムは、FATシステムであり、また上記管理デーブルは、上記FATテーブルであること
を特徴とする請求項1記載のデータ記憶装置。 - 上記データ記憶領域は、フラッシュメモリであること
を特徴とする請求項1記載のデータ記憶装置。 - 記憶すべきデータからなる各ファイルが階層的なファイルシステムを介して管理されるデータ記憶領域に、複数の固定長クラスタにより構成されるブロック単位でデータを書き込むデータ記憶方法において、
外部から供給されたデータをメモリに連続的に配置する配置ステップと、
上記メモリに配置したデータを上記ブロック単位で上記データ記憶領域へ書き込む際にその書き込み状況を上記ファイルシステム上の管理テーブルに反映させ、また上記データ記憶領域へ書き込んだデータを当該管理テーブルを用いて複数のファイルに分割する書込ステップとを有し、
上記配置ステップでは、先頭アドレス位置から上記固定長クラスタサイズのn倍(nは1を除く整数)に応じたアドレス位置に至るまで、各ファイルを構成するデータを上記メモリに上記ブロック単位で連続的に配置するとともに、各ファイル間の空き領域が上記固定長クラスタサイズ未満となるようにこれを制御すること
を特徴とするデータ記憶方法。 - 上記書込ステップでは、上記複数のファイルを分割する際に、上記ファイルシステムを構成する階層ディレクトリにおける書き込み単位の整数倍のサイズを一度に処理すること
を特徴とする請求項8記載のデータ記憶方法。 - 上記書込ステップでは、上記データ記憶領域への書き込み単位又は消去単位の整数倍を上記ブロック単位として上記メモリに配置されたデータを書き込むこと
を特徴とする請求項8記載のデータ記憶方法。 - 上記書込ステップでは、上記ファイルシステムを構成する階層ディレクトリを新たに作成し或いは拡張する場合には、上記データ記憶領域への書き込み単位又は消去単位の整数倍の記憶領域をこれに割り当てること
を特徴とする請求項8記載のデータ記憶方法。 - 上記配置ステップでは、上記データ記憶領域への書き込み時間の最も短いデータを上記空き領域に割り当てること
を特徴とする請求項8記載のデータ記憶方法。 - 上記ファイルシステムは、FATシステムであり、また上記管理デーブルは、上記FATテーブルであること
を特徴とする請求項8記載のデータ記憶方法。 - 上記書込ステップでは、フラッシュメモリとしてのデータ記憶領域にデータを書き込むこと
を特徴とする請求項8記載のデータ記憶方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004045241A JP2005235007A (ja) | 2004-02-20 | 2004-02-20 | データ記憶装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004045241A JP2005235007A (ja) | 2004-02-20 | 2004-02-20 | データ記憶装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005235007A true JP2005235007A (ja) | 2005-09-02 |
Family
ID=35017891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004045241A Withdrawn JP2005235007A (ja) | 2004-02-20 | 2004-02-20 | データ記憶装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005235007A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010193275A (ja) * | 2009-02-19 | 2010-09-02 | Nikon Corp | カメラ |
WO2011105023A1 (ja) * | 2010-02-26 | 2011-09-01 | Jvc・ケンウッド・ホールディングス株式会社 | 処理装置および書込方法 |
CN112394998A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
-
2004
- 2004-02-20 JP JP2004045241A patent/JP2005235007A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010193275A (ja) * | 2009-02-19 | 2010-09-02 | Nikon Corp | カメラ |
WO2011105023A1 (ja) * | 2010-02-26 | 2011-09-01 | Jvc・ケンウッド・ホールディングス株式会社 | 処理装置および書込方法 |
JP2011198357A (ja) * | 2010-02-26 | 2011-10-06 | Jvc Kenwood Corp | 処理装置および書込方法 |
CN102792283A (zh) * | 2010-02-26 | 2012-11-21 | Jvc建伍株式会社 | 处理装置和写入方法 |
CN112394998A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4356686B2 (ja) | メモリ装置及びメモリ制御方法 | |
JP4122972B2 (ja) | データ記録装置及びフラッシュメモリに対するデータ書き込み方法 | |
JP4948793B2 (ja) | バッドブロック管理部を含むフラッシュメモリシステム | |
US8595409B2 (en) | Apparatus and method for reorganization of mapping information in flash memory | |
JP3825465B2 (ja) | メモリカード及びメモリカードシステム | |
JP4740216B2 (ja) | 不揮発性メモリ管理方法及び装置 | |
JP4356782B2 (ja) | メモリ装置、メモリ制御方法、およびプログラム | |
JP5813589B2 (ja) | メモリシステムおよびその制御方法 | |
KR960015528A (ko) | 메모리 카드와 그 기록, 재생 및 소거방법 | |
US20190303299A1 (en) | Control unit for data storage system and method for updating logical-to-physical mapping table | |
US10635346B2 (en) | Self-trimming of data stored in non-volatile memory using data storage controller | |
JP2007193865A (ja) | 情報記録装置及びその制御方法 | |
JP2010237907A (ja) | ストレージ装置および記録方法 | |
JP2003058417A (ja) | 記憶装置 | |
JP3702515B2 (ja) | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット | |
JP2005235007A (ja) | データ記憶装置及び方法 | |
JP5178355B2 (ja) | 記録装置 | |
JP2008181381A (ja) | 半導体メモリカード、半導体メモリカードのデータ管理方法、データベースエンジン、及び半導体メモリシステム | |
JP2008097526A (ja) | データ管理方法 | |
US20070150528A1 (en) | Memory device and information processing apparatus | |
KR20100062842A (ko) | 공간 데이터의 페이지 매핑 방법 | |
JP2009282836A (ja) | メモリカード及びメモリカードドライブ | |
US7996598B2 (en) | Memory management module | |
JP2668938B2 (ja) | 追記型光ディスクのデータバックアップ装置 | |
JP2005222531A (ja) | データ記録装置及びデータ記録方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070501 |