JP5335215B2 - データ記憶装置、データ記憶方法及びプログラム - Google Patents

データ記憶装置、データ記憶方法及びプログラム Download PDF

Info

Publication number
JP5335215B2
JP5335215B2 JP2007259071A JP2007259071A JP5335215B2 JP 5335215 B2 JP5335215 B2 JP 5335215B2 JP 2007259071 A JP2007259071 A JP 2007259071A JP 2007259071 A JP2007259071 A JP 2007259071A JP 5335215 B2 JP5335215 B2 JP 5335215B2
Authority
JP
Japan
Prior art keywords
data
fat
area
sub
cluster
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
JP2007259071A
Other languages
English (en)
Other versions
JP2009087255A5 (ja
JP2009087255A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007259071A priority Critical patent/JP5335215B2/ja
Publication of JP2009087255A publication Critical patent/JP2009087255A/ja
Publication of JP2009087255A5 publication Critical patent/JP2009087255A5/ja
Application granted granted Critical
Publication of JP5335215B2 publication Critical patent/JP5335215B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、記憶媒体のデータ記憶領域にデータを記憶するデータ記憶装置及びデータ記憶方法、並びに、当該データ記憶方法をコンピュータに実行させるためのプログラムに関するものである。
近年、動画映像データや音声データなどを従来のテープメディアに代えて、ハードディスクドライブに記憶するデータ記憶装置が広く普及しつつある。このハードディスクドライブは、ランダムアクセス性に優れているため、所望のコンテンツを瞬時に再生したり、記録のための空き領域を速やかに探し出したりすることができるなど、従来のテープメディアにはない使い勝手の良さを有している。
また、パーソナルコンピュータ等の情報処理装置においても、チューナーやコーデック(CODEC)LSIを搭載して、動画映像データ等を内蔵/外付けのハードディスクドライブに記憶する機能を備えた機種が多数市販されている。
ところで、動画映像データ等は連続的なデータであり、単にデータが誤りなく記憶媒体上に記憶されるだけでは十分でなく、時間軸上の記録・再生速度、即ちデータの転送速度が所定値以上に維持される必要がある。
ここで、ハードディスクドライブは、記憶媒体上の物理的に連続した記憶領域に対するアクセスでは、高速のデータ転送を実現できる。その一方で、ハードディスクドライブは、分散された記憶領域に対するアクセスでは、ヘッドシーク時間や回転待ち時間といった実質的にはデータ転送に寄与しない動作期間が増大することから、低速のデータ転送しか得られないという特性を有している。
また、例えば、ハードディスクドライブに記憶したデータは、ファイルシステムによりファイル単位でのアクセスが可能となる。しかしながら、どのようなファイルシステムを採用しても記憶データの削除・更新を繰り返せば、記憶領域の断片化(フラグメンテーション)が引き起こされ、1つのファイルを連続した記憶領域に記憶することができなくなる。このことは結果として、ハードディスクドライブに対するデータ転送速度を低下させることとなり、動画映像データ等の記録・再生にとっては極めて都合が悪い。
高速なデータ転送を実現するための1つの方法としては、例えば、下記の特許文献1に記載されているように、アクセスの単位であるブロック(クラスタ)のサイズを大きくすることが考えられる。この場合、ブロックのサイズを大きくしても記憶領域の断片化が完全に無くなるわけではないが、記憶領域の断片化はブロック単位でしか起こらないことから記憶領域の断片化の度合が相対的に小さく(少なく)なり、結果としてデータ転送速度の低下は低減される。
しかしながら、ファイルシステムでは、上述したブロックサイズ単位でデータを取り扱う。このため、ブロックサイズ未満のデータを記憶した場合、ブロック内に未使用領域(クラスタギャップ)が発生する。そして、この際、上述したブロックサイズを大きくすると、今度は、記憶媒体の使用効率が低下するという別の問題が発生する。この問題は、データサイズの大きい動画映像データファイルや音声データファイル(以下、動画映像データ等ファイル)と、データサイズの小さい文字データファイルや管理データファイル(以下、文字データ等ファイル)を混在して取り扱う場合に特に顕著となる。特に、文字データ等ファイルの数が増加すればするほど、記憶媒体の使用効率が大きく低下してしまう。
動画映像データ等ファイルと文字データ等ファイルを混在して取り扱う場合における記憶媒体容量の使用効率の低下に対処する最も簡単な方法の1つは、例えば、下記の特許文献1にも記載されている。具体的に、記憶媒体を2つの領域(例えばパーティション)に分け、それぞれの領域でのアクセスブロックサイズ(クラスタサイズ)を違えるようにしている。即ち、動画映像データ等ファイルの記録と文字データ等ファイルの記録とで、それぞれアクセスブロックサイズの異なる専用の領域を設定するようにしている。さらに、領域を分けるのではなく同一の領域を使用しつつも、動画映像データ等ファイルと文字データ等ファイルとで、アクセスブロックサイズを違える方法も提案されている。
具体例を挙げると、小さいファイルについては所定のブロックを単位とし、大きいファイルについては連続した複数個のブロック(大ブロック)を単位として記録するものがある。また、データの属性(リアルタイムデータ/非リアルタイムデータ)によって記憶単位(ユニットとブロック)を切り換えることや、非リアルタイムデータの記憶について既に一部のブロックが使用されているユニット内の残余のブロックに優先して行うものがある。また、記録するデータの性質に応じて、基本ブロックと基本ブロックが分割されたサブブロックとを記憶単位として選択して使用するもの等がそれぞれ提案されている(例えば、特許文献1、特許文献2、特許文献3参照)。
特開2000−339868号公報 特開2004−5423号公報 特開2004−13276号公報
しかしながら、上述した記憶媒体を2つの領域(パーティション)に分ける方法では、それぞれの記憶領域の大きさをディスク初期化時に固定的に設定する必要があり、運用後にそれぞれの大きさを動的に変更することが容易にできない。したがって、データ記憶装置を使用していく過程で、一方の記憶領域にはまだ十分な空き領域が存在するのに、他方の記憶領域には空き領域が存在しない状態が起こりうる。つまり、この場合、記憶媒体容量の使用効率の低下に対処するために記憶領域を分けたにもかかわらず、結局は使用できない記憶領域を残したまま新たなデータを記録できないという事態に陥ってしまう可能性がある。
また、上述した各特許文献に開示されている技術は、例えば、大アクセスブロックでのアクセスを基本としながら、データの属性・性質等に応じて、当該大アクセスブロックを複数に分割した小アクセスブロックでアクセスするようにしたものである。これらの方法であれば、動画映像データ等ファイルと文字データ等ファイル、それぞれの合計の容量には事前の制限はなく、記憶媒体の記憶容量全体を使い切るまでどちらのファイルも自由に記憶させることが可能となる。
ところがこのようなデータの記憶方法では、動画映像データ等ファイルで使用される部分と文字データ等ファイルで使用される部分は、完全に混じり合った状態となる。この場合、記憶媒体上のある部分が動画映像データ等ファイルで使用されるか、文字データ等ファイルで使用されるかは全くの偶然であり、あるアクセスブロックに対する次のチェーンブロックは必ずしも近傍に配置されるとは限らない。特に、文字データ等ファイルは、通常、巨大なサイズを有する動画映像データ等ファイルの合間の部分に、大きく離散して配置されることが予想される。
動画映像データ等ファイルは、大アクセスブロックを使用しているため、1つのファイルを構成するブロック間がどのように離散してもデータ転送速度の低下を所定の範囲内に納めることが可能である。
しかしながら、文字データ等ファイルは、小アクセスブロックを使用しているため、1つのファイルを構成するブロック間が大きく離散していると、データ転送速度は著しく低下する。そして、文字データ等ファイルは、データ転送速度が遅くなったとしても、データ記憶装置全体の動作そのものを不能とするわけではない。但し、データ転送速度が遅くなればデータ記憶装置全体のレスポンスが低下することになり、ユーザに不用意な待ち時間を与えるなどの可能性があるため、なるべく高速にアクセスできるに越したことはない。
さらに、空き領域を検索する場合にも問題がある。
アクセスブロックの大きさに関らず、そのブロックが使用されているか否かを管理するためには、何らかの管理テーブルが用いられる。通常、空き領域は、この管理テーブルをサーチすることで行われるのであるが、この管理テーブルは、アクセスブロックをアドレス順に並べたサマリーである。したがって、次の空いているチェーンブロックを検索する場合には、そのブロックが近傍に存在している方がより高速に検索することが可能となる。つまり、上述したように、小アクセスブロックを大きく離散した状態でしか配置できないのであれば、データ転送速度が低下するだけでなく、空き領域の検索にもより時間を費やしてしまうことになる。
本発明は上述した問題点に鑑みてなされたものであり、動画映像データ等の大容量データを高速に記憶すると共に、文字データ等の小容量データを使用効率よく記憶することを実現できるようにすることを目的とする。
上述した課題を解決するために本発明は、 第1ブロック単位で記憶領域を管理する第1FATおよび前記第1ブロック単位より大きいサイズの第2ブロック単位で記憶領域を管理する第2FATに対応づけられているデータ領域と、
前記データ領域を複数のサブ領域に分割し、各サブ領域を前記第1FATまたは前記第2FATのどちらで使用しているかを示す管理情報と、前記第1FATおよび前記第2FATと、を備えるシステム領域と、
を記憶する記憶手段と、
前記データ領域にファイルを書き込む際に、前記管理情報に基づいて前記第1FATまたは前記第2FATの一方をサーチすることによって空き領域を探索し、サーチしたFATのブロック単位で前記ファイルのデータを記憶する制御手段と
を有し、
前記制御手段は、前記第1ブロック単位または前記第2ブロック単位で使用するサブ領域の記憶容量が不足すると、未使用のサブ領域の少なくとも一部を、前記第1FATまたは前記第2FATに割り当てて使用することを特徴とする。
本発明によれば、動画映像データ等の大容量データを高速に記憶すると共に、文字データ等の小容量データを使用効率よく記憶することが可能となる。
以下、添付図面を参照しながら本発明を実施するための最良の形態について説明する。
(第1の実施形態)
図1は、本発明の実施形態に係るデータ記憶装置を含むデータ記憶システムの概略構成の一例を示すブロック図である。
図1に示すデータ記憶システムは、データ記憶装置100と、映像機器200と、モニタ装置300を有して構成されている。
データ記憶装置100は、CPU101と、ROM102と、RAM103と、ネットワークコントローラ(NIC)104と、外部機器接続インターフェース105を有して構成されている。さらに、データ記憶装置100は、デコーダ106と、ディスクコントローラ107と、ハードディスクドライブ(HDD)108と、グラフィック・サウンドコントローラ109と、バス110を有して構成されている。
CPU101は、バス110に接続される各構成部(デバイスやコントローラ)を制御して、データ記憶装置100全体を統括的に制御するものである。ROM102には、CPU101の動作プログラムや各種テーブルデータ等が格納されている。RAM103は、CPU101の動作メモリとして使用されるほか、バス110に接続される各構成部の間で行われるデータ転送のバッファメモリとしても使用される。
ネットワークコントローラ(NIC)104は、データ記憶装置100をローカル・エリア・ネットワーク(LAN)に接続するための制御を行うものである。外部機器接続インターフェース105は、当該データ記憶装置100を映像機器200に対して、例えばUSBやIEEE1394等により接続するための制御を行うものである。ここで、映像機器200としては、例えば、デジタルビデオカメラやデジタルスチルカメラ等が挙げられる。
デコーダ106は、圧縮された映像データや音声データを伸長するためのものである。ディスクコントローラ107は、ハードディスクドライブ(HDD)108の動作を制御するものである。ハードディスクドライブ(HDD)108は、各種の情報や各種のデータを記憶する記憶媒体である。グラフィック・サウンドコントローラ109は、デコーダ106で伸長された映像データや音声データを外部に接続されたモニタ装置300に出力する制御を行うものである。
データ記憶装置100では、例えば、LAN経由で転送されたデータ、或いは外部機器接続インターフェース105を介して接続された映像機器200から出力された映像データや音声データを、HDD108に記憶(即ち録画・録音)する。この際、HDD108に記憶される映像データや音声データは、通常、MPEG、JPEG等の周知のフォーマットで圧縮されている。デコーダ106は、例えば、HDD108に圧縮されて記憶されている映像データや音声データを伸長する処理を行う。そして、デコーダ106で伸長された映像データや音声データは、グラフィック・サウンドコントローラ109を介してモニタ装置300に出力される。
以上の構成によりデータ記憶装置100は、HDD108に記憶した映像データや音声データをモニタ装置300に出力する録画・再生装置として機能する。また、データ記憶装置100は、ネットワークストレージサーバとしての機能も有しており、LAN上に接続されたパーソナルコンピュータ(PC)等の情報処理装置に対するネットワークストレージとしても機能する。したがって、HDD108に記憶されるデータには、映像データや音声データだけでなく、一般のPC文書等(文字データや各種のPCアプリケーションで作成した文書データなど)も含まれる。
次に、図2〜図5を用いて、HDD108の論理的な構成(FAT、クラスタ、領域の区分等)について説明する。
図2は、図1に示すHDD108のフォーマット状態の一例を示す模式図である。
HDD108のデータ記憶領域は、図2に示すように、大きく2つに区分されており、HDD108上の外周側にシステム領域、内周側にデータ領域が割り当てられている。
データ記憶領域は、所定のクラスタ単位でデータのアクセスが行われる。この際、本実施形態においては、大きさの異なる2つのクラスタサイズ(サブ領域)を用いる。例えば、本実施形態における第1のブロック単位は32Kバイトで構成され、第2のブロック単位は4Mバイトで構成されている。即ち、映像データや音声データ等のリアルタイム性を要求されるデータは4Mバイトのクラスタを使用して記憶され、それ以外のリアルタイム性を要求されないデータは32Kバイトのクラスタを使用して記憶される。つまり、本実施形態では、記憶データの種別ないしは容量に応じて、第1ブロック単位または第2ブロック単位でデータを記憶する。
図2において、システム領域内の第1FAT201及び第1ディレクトリエントリ202は、第1のクラスタサイズ(第1のブロック単位:32Kバイト)でのアクセスで使用されるエントリである。第1FAT201には、第1のクラスタサイズ(第1のブロック単位:32Kバイト)でのアロケーションテーブルが記憶される。
また、第2FAT203及び第2ディレクトリエントリ204は、第2のクラスタサイズ(第2のブロック単位:4Mバイト)でのアクセスで使用されるエントリである。第2FAT203には、第2のクラスタサイズ(第2のブロック単位:4Mバイト)でのアロケーションテーブルが記憶される。
第1FAT201及び第2FAT203は、ファイルを構成するクラスタのアロケーションテーブルであり、1つのファイルが構成される複数のクラスタのチェーン情報(次のクラスタ番号)が記憶される。
図3は、図2に示す第1FAT201及び第2FAT203におけるFAT値の具体例を示す模式図である。具体的に、図3(a)に第1FAT201におけるFAT値の具体例を示し、図3(b)に第2FAT203におけるFAT値の具体例を示す。
図3(a)及び図3(b)に示すように、第1FAT201及び第2FAT203には、チェーン情報以外に、未使用クラスタ、使用不可クラスタ、MAXアドレス(最外周のLBA)を越えて位置するクラスタ、欠陥クラスタ、ファイルの終端が定義されている。
図2に示す第1ディレクトリエントリ202及び第2ディレクトリエントリ204には、ファイルのファイル名(パス情報を含む)と、当該ファイルの最初のクラスタ番号が記憶される。
上述したFATとディレクトリエントリにより、記憶データは、「ファイル」という単位で取り扱うことが可能となる。
図2に示すデータ領域は、最外周から最内周に向かって順に、0〜nのデータサブエリア206(0)〜206(n)に分割されていて、それぞれのデータサブエリア(データサブ領域)ごとに、第1FAT201、第2FAT203のいずれかで使用される。この際、あるデータサブエリアをどちらのFATで使用するかは、システム領域内のサブエリア管理テーブル205によって管理する。即ち、このサブエリア管理テーブル205では、データ領域の一部のデータサブエリアまたは全部のデータサブエリアを、第1ブロック単位もしくは第2ブロック単位で使用するように管理する。
図4は、図2に示すサブエリア管理テーブル205の構造の一例を示す模式図である。
図4に示すように、サブエリア管理テーブル205には、1つのデータサブエリアにつき10バイトが割り当てられている。このうち、先頭の2バイトがデータサブエリアのサブエリア番号とその使用区分であり、次の4バイトが当該データサブエリアの開始LBA(論理セクタアドレス)、最後の4バイトが当該データサブエリアの終了LBAである。
ある番号のクラスタがどのデータサブエリアに属するかは、データ領域の開始LBA、データサブエリアの開始及び終了LBA、第1及び第2のクラスタサイズ、個々のデータサブエリアの大きさから容易に計算することができる。もちろん、始めからLBAに代えてクラスタ番号を記憶しておく形態でもよい。但し、本実施形態においては、第1FAT201及び第2FAT203の2つのFATを使用する。
よって、本実施形態では、同一の記憶領域に対してクラスタ番号は、第1FAT201と第2FAT203とでそれぞれ1つずつ開始クラスタ番号及び終了クラスタ番号を記憶しておく必要がある。
また、図4に示すように、先頭の2バイトは、その内部が14ビット及び2ビットに分かれており、このうち、最初の14ビットがデータサブエリアのサブエリア番号であり、次の2ビットがその使用区分である。また、使用区分は、「01b」が第1FAT201で使用されていることを示し、「10b」が第2FAT203で使用されていることを示し、「00b」(または「11b」)がどちらのFATにも使用されていないことを示している。
即ち、サブエリア管理テーブル205は、個々のデータサブエリア(サブ領域)における使用区分を、第1FAT201で使用するサブ領域と、第2FAT203で使用するサブ領域と、どちらにも未使用のサブ領域とに区分して管理するものである。このサブエリア管理テーブル205は、CPU101によって管理され、サブエリア管理テーブル205の管理を行うCPU101は、サブ領域管理手段を構成する。
また、CPU101は、第1FAT201で使用するサブ領域または第2FAT203で使用するサブ領域が不足したときに、未使用のサブ領域の一部または全部を、第1FAT201または第2FAT203で使用するサブ領域に変更する管理を行う。
さらに、CPU101は、サブエリア管理テーブル205による管理に基づいて、個々のデータサブエリア(サブ領域)ごとに、第1FAT201または第2FAT203のいずれか一方のFATでのみ記憶データを記憶する制御を行う。この制御を行うCPU101は、記憶制御手段を構成する。
図5は、図2に示す個々のデータサブエリアの大きさを128Mバイトとした場合のデータ領域全体の様子を示す模式図である。
図5に示すように、HDD108のデータ領域は、
クラスタサイズが32Kバイトの{4096×(n+1)}個のクラスタと、
クラスタサイズが4Mバイトの{32×(n+1)}個のクラスタ
に分割される。ここで、nは、HDD108の総容量に依存し、例えば、40GバイトのHDD108の場合は、n=約300となる。
つまり、1つのデータサブエリアには、
クラスタサイズが32Kバイトの4096個のクラスタと、
クラスタサイズが4Mバイトの32個のクラスタ
が存在する。
なお、上述した第1及び第2のクラスタサイズ、データサブエリアの具体的な大きさ(バイト数)は一例であり、適宜変更可能であることは言うまでもない。
はじめにHDD108を初期化する時に、本実施形態では、CPU101は、データサブエリア0(206(0))が第2FAT203で使用され、データサブエリアn(206(n))が第1FAT201で使用されるように割り当てを行う。即ち、CPU101は、記憶媒体であるHDD108の内周側に位置するサブ領域(データサブエリア)を第1FAT201で使用するサブ領域とし、HDD108の外周側に位置するサブ領域を第2FAT203で使用するサブ領域とするようにしている。また、その他のデータサブエリア1(206(1))〜データサブエリアn−1(206(n−1))は、どちらのFATでも使用されていない状態である。
この際、第1FAT201で使用されるデータサブエリアn(206(n))に属するクラスタにだけ、FAT値として図3(a)に示す「FFF8h(未使用クラスタ)」が記録される。また、それ以外のデータサブエリア0(206(0))〜データサブエリアn−1(206(n−1))に属するクラスタには、FAT値として図3(a)に示す「FFFCh(使用不可クラスタ)」が記録される。
同様に、第2FAT203で使用されるデータサブエリア0に属するクラスタにだけ、FAT値として図3(b)に示す「FF8h(未使用クラスタ)」が記録される。また、それ以外のデータサブエリア1(206(1))〜データサブエリアn(206(n))に属するクラスタには、FAT値として図3(b)に示す「FFCh(使用不可クラスタ)」が記録される。
そして、データを記憶していって割り当てられたデータサブエリアを消費すると、次順のデータサブエリアが割り当てられる。具体的に、第2FAT203で使用するデータサブエリアとしては、データサブエリア1、2、3、…の順でデータサブエリア割り当てが行われる。また、第1FAT201で使用するデータサブエリアとしては、データサブエリアn−1、n−2、n−3、…の順で割り当てが行われる。但し、次順のデータサブエリアが他方のFATで既に使用されている場合には、当該データサブエリアに未使用クラスタが存在するか否かに関らず割り当ては行われない。
次に、図6〜図8のフローチャートを用いて、第1の実施形態に係るデータ記憶装置100の処理手順について説明する。
図6は、本発明の第1の実施形態に係るデータ記憶装置のHDD108における初期化時の処理手順の一例を示すフローチャートである。
物理フォーマットが終了した後、まず、ステップS101において、CPU101は、図2に示すHDD108のシステム領域とデータ領域の大きさを計算する。このステップS101では、具体的に、CPU101は、HDD108の総容量、第1のクラスタサイズ、第2のクラスタサイズ及びデータサブエリアの大きさから、それぞれ、システム領域とデータ領域の大きさを計算する。
続いて、ステップS102において、CPU101は、システム領域内にサブエリア管理テーブル205を作成する。この際、図4で説明した使用区分については、データサブエリア0を「10b(第2FATで使用)」、データサブエリア1〜n−1を「00b或いは11b(未使用エリア)」、データサブエリアnを「01b(第1FATで使用)」として設定する。
続いて、ステップS103において、CPU101は、システム領域内に第1FAT201を作成する。この際、個々のクラスタに対するFAT値については、データサブエリアnに属する部分を「FFF8h(未使用クラスタ)」、それ以外のデータサブエリアに属する部分を「888Ch(使用不可クラスタ)」として設定する。
続いて、ステップS104において、CPU101は、第1ディレクトリエントリ202にルートディレクトリを作成する。
続いて、ステップS105において、CPU101は、システム領域内に第2FAT203を作成する。この際、個々のクラスタに対するFAT値については、データサブエリア0に属する部分を「FF8h(未使用クラスタ)」、それ以外のデータサブエリアに属する部分を「FFCh(使用不可クラスタ)」として設定する。
続いて、ステップS106において、CPU101は、第2ディレクトリエントリ204にルートディレクトリを作成する。その後、当該フローチャートにおける処理を終了する。
図7−1及び図7−2は、本発明の第1の実施形態に係るデータ記憶装置のデータ書き込み処理の処理手順の一例を示すフローチャートである。
まず、図7−1のステップS201において、CPU101は、書き込むべきデータの種別がどのようなものであるかについて判断する。本実施形態においては、ステップS201では、書き込むべきデータが、リアルタイム性を要求するストリームデータであるか、或いは、リアルタイム性を要求しない非ストリームデータであるかを判断する。具体的に、CPU101は、書き込むべきデータにおけるファイル名の拡張子を参照することにより、ストリームデータであるか非ストリームデータであるかを判断する。
CPU101は、ファイル名の拡張子が例えば「mpg」、「mpv」、「mov」、「mv」、「qtl」、「qt」、「avi」、「asf」、「asx」、「vfm」、「wmv」等の動画ファイルを示すものである場合には、ストリームデータと判断する。そして、CPU101は、ファイル名の拡張子が上述した以外の拡張子の場合には、非ストリームデータと判断する。なお、その他、ファイル名の拡張子とファイルサイズを組み合わせて判断するようにしてもよい。
この場合、例えば、事前にファイルサイズが判明していて、そのファイルサイズが32Kバイト未満である場合には、ストリームデータであっても非ストリームデータとして取り扱うようにしてもよい。また、事前にファイルサイズが判明していて、そのファイルサイズが32Kバイトを大きく越える場合には、非ストリームデータであってもストリームデータとして取り扱うようにしてもよい。
ステップS201の判断の結果、書き込むべきデータが非ストリームデータである場合には、ステップS202に進む。ステップS202に進むと、CPU101は、第1FAT201をサーチ(検索処理)する。この際、サーチを行う範囲は、第1FAT201が現在使用しているデータサブエリアに属するクラスタだけとする。
続いて、ステップS203において、CPU101は、ステップS202で第1FAT201をサーチした結果、未使用クラスタがあるか否かを判断する。
ステップS203の判断の結果、未使用クラスタが存在する場合には、ステップS204に進む。ステップS204に進むと、CPU101は、当該未使用クラスタに対して、32Kバイト分のデータの書き込みを行う。
続いて、ステップS205において、CPU101は、ステップS204で書き込みを行ったクラスタと、当該クラスタのFAT値にチェーン情報を記録して、第1FAT201を更新する。この際、書き込みを行ったクラスタのFAT値は、とりあえず、図3(a)に示す「FFFFh(ファイルの終端(EOF))」として設定しておく。
続いて、ステップS206において、CPU101は、書き込むべきファイルの全てのデータについてファイル書き込み処理を終了したか否かを判断する。この判断の結果、書き込むべきファイルの全てのデータについては、未だ書き込み処理が終了していない場合には、ステップS202に戻り、未だ書き込み処理が終了していないデータの処理が行われる。
一方、ステップS206の判断の結果、書き込むべきファイルの全てのデータについてファイル書き込み処理を終了した場合には、ステップS207に進む。ステップS207に進むと、CPU101は、書き込みを行ったファイル(データ)の情報を第1ディレクトリエントリ202に追記(または変更)して、第1ディレクトリエントリ202を更新する。その後、当該フローチャートにおける処理を終了する。
一方、ステップS203の判断の結果、未使用クラスタが存在しない場合には、ステップS208に進む。ステップS208に進むと、CPU101は、現在、第1FAT201で使用している最小番号のデータサブエリアにおける次順のデータサブエリアの使用が可能か否かを判断する。即ち、ステップS208では、当該次順のデータサブエリアが第2FAT203で使用されてないか否かに応じて、当該次順のデータサブエリアの使用が可能か否かを判断することになる。
ステップS208の判断の結果、現在、第1FAT201で使用している最小番号のデータサブエリアにおける次順のデータサブエリアの使用が可能である場合には、ステップS209に進む。ステップS209に進むと、CPU101は、図4に示すサブエリア管理テーブル205の使用区分を更新する。具体的に、CPU101は、当該次順のデータサブエリアの使用区分を「01b(第1FATで使用)」と設定する。
続いて、ステップS210において、CPU101は、第1FAT201の当該次順のデータサブエリアに属するクラスタのFAT値を、「FFFCh(使用不可クラスタ)」から「FFF8h(未使用クラスタ)」に変更して、第1FAT201を更新する。その後、ステップS202に戻って、ステップS202以降の処理を行う。
一方、ステップS208の判断の結果、現在、第1FAT201で使用している最小番号のデータサブエリアにおける次順のデータサブエリアの使用が不可能である場合には、ステップS211に進む。ステップS211に進むと、CPU101は、書き込むべきデータの書き込みを行えなかった場合のエラー処理を実行する。その後、当該フローチャートにおける処理を終了する。
一方、ステップS201の判断の結果、書き込むべきデータがストリームデータである場合には、図7−2のステップS212に進む。ステップS212に進むと、CPU101は、第2FAT203をサーチ(検索処理)する。この際、サーチを行う範囲は、第2FAT203が現在使用しているデータサブエリアに属するクラスタだけとする。
続いて、ステップS213において、CPU101は、ステップS212で第2FAT203をサーチした結果、未使用クラスタがあるか否かを判断する。
ステップS213の判断の結果、未使用クラスタが存在する場合には、ステップS214に進む。ステップS214に進むと、CPU101は、当該未使用クラスタに対して、4Mバイト分のデータの書き込みを行う。
続いて、ステップS215において、CPU101は、ステップS214で書き込みを行ったクラスタと、それに連結するクラスタのFAT値にチェーン情報を記録して、第2FAT203を更新する。この際、書き込みを行ったクラスタのFAT値は、とりあえず、図3(b)に示す「FFFh(ファイルの終端(EOF))」として設定しておく。
続いて、ステップS216において、CPU101は、書き込むべきファイルの全てのデータについてファイル書き込み処理を終了したか否かを判断する。この判断の結果、書き込むべきファイルの全てのデータについては、未だ書き込み処理が終了していない場合には、ステップS212に戻り、未だ書き込み処理が終了していないデータの処理が行われる。
一方、ステップS216の判断の結果、書き込むべきファイルの全てのデータについてファイル書き込み処理を終了した場合には、ステップS217に進む。ステップS217に進むと、CPU101は、書き込みを行ったファイル(データ)の情報を第2ディレクトリエントリ204に追記(または変更)して、第2ディレクトリエントリ204を更新する。その後、当該フローチャートにおける処理を終了する。
一方、ステップS213の判断の結果、未使用クラスタが存在しない場合には、ステップS218に進む。ステップS218に進むと、CPU101は、現在、第2FAT203で使用している最大番号のデータサブエリアにおける次順のデータサブエリアの使用が可能か否かを判断する。即ち、ステップS218では、当該次順のデータサブエリアが第1FAT201で使用されてないか否かに応じて、当該次順のデータサブエリアの使用が可能か否かを判断することになる。
ステップS218の判断の結果、現在、第2FAT203で使用している最大番号のデータサブエリアにおける次順のデータサブエリアの使用が可能である場合には、ステップS219に進む。ステップS219に進むと、CPU101は、図4に示すサブエリア管理テーブル205の使用区分を更新する。具体的に、CPU101は、当該次順のデータサブエリアの使用区分を「10b(第2FATで使用)」と設定する。
続いて、ステップS220において、CPU101は、第2FAT203の当該次順のデータサブエリアに属するクラスタのFAT値を、「FFCh(使用不可クラスタ)」から「FF8h(未使用クラスタ)」に変更して、第2FAT203を更新する。その後、ステップS212に戻って、ステップS212以降の処理を行う。
一方、ステップS218の判断の結果、現在、第2FAT203で使用している最大番号のデータサブエリアにおける次順のデータサブエリアの使用が不可能である場合には、ステップS221に進む。ステップS221に進むと、CPU101は、書き込むべきデータの書き込みを行えなかった場合のエラー処理を実行する。その後、当該フローチャートにおける処理を終了する。
なお、ファイルを読み込む場合及びファイルを削除する場合の処理手順については、特に図示しないが、周知のとおり、ファイルの読み込みについては、FATを参照してチェーンクラスタを順次読み込めばよい。また、ファイルの削除については、当該ファイルのデータを記憶しているクラスタのFAT値を「未使用クラスタ」に更新するだけでよい。即ち、この場合、個々のクラスタ自身の記憶データを書き換えるのではなく、第1FAT201または第2FAT203の更新だけを行えば事足りる。
ところで、図7−1及び図7−2に示す例では、「未使用クラスタ」が不足するたびに、次順のデータサブエリアの使用区分をその都度、更新する方法を採っている。しかしながら、この場合、事前に書き込むべきファイルの大きさが1つのデータサブエリアより大きいと判明している場合は、隣接する複数のデータサブエリアの使用区分を一括して更新するようにしてもよい。
図8は、本発明の第1の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の一例を示すフローチャートである。
図8に示すフローチャートは、ファイルを削除したり、ファイルを書き換え更新したりした際に開始される。或いは、バックグラウンドにおいて、所定のインターバル(所定のタイミング)で常時動作させておいてもよいし、HDD108へ所定期間アクセスがなかった場合に開始するようにしてもよい。
まず、ステップS301において、CPU101は、第1FAT201で使用しているエリア番号が最小番号のデータサブエリア(但し、データサブエリアnは除く)に属するクラスタをサーチ(検索処理)する。
続いて、ステップS302において、CPU101は、ステップS301で第1FAT201をサーチした結果、当該最小番号のデータサブエリアに使用クラスタが存在するか否かを判断する。
ステップS302の判断の結果、当該最小番号のデータサブエリアに使用クラスタが存在しない場合には、ステップS303に進む。ステップS303に進むと、CPU101は、当該最小番号のデータサブエリアに属するクラスタのFAT値を「FFF8h(未使用クラスタ)」から「FFFCh(使用不可クラスタ)」に変更して、第1FAT201を更新する。
続いて、ステップS304において、CPU101は、当該最小番号(エリア番号)のデータサブエリアの使用区分を「00b或いは11b(未使用エリア)」にして、サブエリア管理テーブル205を更新する。
ステップS304の処理が終了した場合、或いは、ステップS302で当該最小番号のデータサブエリアに使用クラスタが存在すると判断された場合には、ステップS305に進む。
ステップS305に進むと、CPU101は、第2FAT203で使用しているエリア番号が最大番号のデータサブエリアに属するクラスタをサーチ(検索処理)する。
続いて、ステップS306において、CPU101は、ステップS305で第2FAT203をサーチした結果、当該最大番号のデータサブエリアに使用クラスタが存在するか否かを判断する。
ステップS306の判断の結果、当該最大番号のデータサブエリアに使用クラスタが存在しない場合には、ステップS307に進む。ステップS307に進むと、CPU101は、当該最大番号のデータサブエリアに属するクラスタのFAT値を「FF8h(未使用クラスタ)」から「FFCh(使用不可クラスタ)」に変更して、第2FAT203を更新する。
続いて、ステップS308において、CPU101は、当該最大番号(エリア番号)のデータサブエリアの使用区分を「00b或いは11b(未使用エリア)」にして、サブエリア管理テーブル205を更新する。
図8に示す処理により、一旦データサブエリアの割り当てが行われても、ファイルの削除や更新などで使用クラスタが存在しなくなった場合には、再び、第1FAT201及び第2FAT203のいずれでも用いられていない未使用のデータサブエリアに復帰する。
以上説明してきたように、本実施形態では、図2に示すように、記憶媒体であるHDD108のデータ領域を複数のデータサブエリア1〜nに区分するようにしている。そして、小サイズのクラスタを使用する第1FAT201での記憶は内周側から、また、大サイズのクラスタを使用する第2FAT203での記憶は外周側から、データサブエリアを管理単位として順次記憶していくようにしている。この際、個々のデータサブエリア1〜nについて、第1FAT201、第2FAT203のどちらで使用するのかをサブエリア管理テーブル205で管理するようにしている。そして、個々のデータサブエリア1〜nについて、必要に応じて、順次、第1FAT201、第2FAT203のどちらかに排他的に割り当てる構成としている。このため、本実施形態では、両者の記憶領域を事前に固定的に定めておく必要が全くない。
また、記憶されるファイルは、第1FAT201と第2FAT203とで領域的に入り交じることがなく、また、それぞれが連続したアドレス(LBA)のまとまった領域内に記憶されることになる。このため、例え、フラグメンテーションが発生したとしても、チェーンされるクラスタは比較的近傍に配置されることになり、結果としてヘッドシーク時間を比較的短くすることが可能となる。さらに、空き領域を検索する場合も、割り当てが行われているデータサブエリアはアドレスが連続した領域であるので、非常に高速に検索を行うことが可能である。
(第2の実施形態)
上述した第1の実施形態では、第1FAT201で使用しているエリア番号が最小番号のデータサブエリアに使用クラスタが全く存在しなくなったときに、当該最小番号のデータサブエリアを「未使用エリア」としてリリースするようにしている。同様に、第2FAT203で使用しているエリア番号が最大番号のデータサブエリアに使用クラスタが全く存在しなくなったときに、当該最大番号のデータサブエリアを「未使用エリア」としてリリースするようにしている。
しかしながら、ファイルを削除した場合などには、中間のエリア番号のデータサブエリアだけに使用クラスタが存在しなくなる場合も考えられる。この場合、当該データサブエリアを単純に「未使用エリア」としてリリースしてもよいが、以下の不都合も考えられる。即ち、本実施形態では、記憶されるファイルが第1FAT201と第2FAT203とで領域的に入り交じることなく、それぞれが連続したアドレスのまとまった領域内に記憶されるようにすることを考えるとこれでは都合が悪い。
そこで、第2の実施形態では、中間のエリア番号のデータサブエリアだけに使用クラスタが存在しなくなるといったことが起きないように、次順のデータサブエリア内に記憶してあるデータを、適宜、先順のエリア番号のデータサブエリア内に移動するようにする。
以下、図9−1〜図10のフローチャートを用いて、第2の実施形態に係るデータ記憶装置100の処理手順について説明する。なお、第2の実施形態に係るデータ記憶装置100を含むデータ記憶システムの概略構成については、第1の実施形態と同様に、図1に示すものとなる。
図9−1及び図9−2は、本発明の第2の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の一例を示すフローチャートである。
この図9−1及び図9−2に示すフローチャートは、第1の実施形態における図8に示すフローチャートを置き換えるものである。したがって、図9−1及び図9−2に示すフローチャートも、ファイルを削除したり、ファイルを書き換え更新したりした際に開始される。或いは、バックグラウンドにおいて、所定のインターバル(所定のタイミング)で常時動作させておいてもよいし、HDD108へ所定期間アクセスがなかった場合に開始するようにしてもよい。
まず、図9−1のステップS401において、CPU101は、第1FAT201をサーチ(検索処理)する。
続いて、ステップS402において、CPU101は、ステップS401で第1FAT201をサーチした結果、エリア番号が最小番号のデータサブエリアより大きいエリア番号のデータサブエリアに未使用クラスタが存在するか否かを判断する。
ステップS402の判断の結果、エリア番号が最小番号のデータサブエリアより大きいエリア番号のデータサブエリアに未使用クラスタが存在する場合には、ステップS403に進む。ステップS403に進むと、CPU101は、ステップS401で第1FAT201をサーチした結果、エリア番号が最小番号のデータサブエリアに使用クラスタが存在するか否かを判断する。
ステップS403の判断の結果、エリア番号が最小番号のデータサブエリアに使用クラスタが存在する場合には、ステップS404に進む。ステップS404に進むと、CPU101は、エリア番号が最小番号のデータサブエリア内の使用クラスタに記憶してあるデータを、ステップS402で判断した未使用クラスタに移動する。このステップS404の移動処理を行うCPU101は、第1のデータ移動手段を構成する。
続いて、ステップS405において、CPU101は、第1FAT201を更新する。具体的に、CPU101は、移動元のクラスタのFAT値を「FFF8h(未使用クラスタ)」とし、移動先のクラスタおよび移動するクラスタに連結するクラスタのFAT値に新たな「チェーン情報」を記憶して、第1FAT201を更新する。この際、CPU101は、第1ディレクトリエントリ202も更新する必要があれば併せて実行する。
その後、ステップS402に戻り、ステップS402において未使用クラスタが存在しなくなるまで、或いは、ステップS403で使用クラスタが存在しなくなるまで、ステップS404及びS405を繰り返し実行する。
一方、ステップS402の判断の結果、エリア番号が最小番号のデータサブエリアより大きいエリア番号のデータサブエリアに未使用クラスタが存在しない場合には、ステップS406に進む。ステップS406に進むと、CPU101は、ステップS401で第1FAT201をサーチした結果、エリア番号が最小番号のデータサブエリアより大きいエリア番号のデータサブエリアに使用クラスタが存在するか否かを判断する。
ステップS406で最小番号より大きいエリア番号のデータサブエリアに使用クラスタが存在しないと判断された場合、或いは、ステップS403で最小番号のデータサブエリアに使用クラスタが存在しないと判断された場合には、ステップS407に進む。
ステップS407に進むと、CPU101は、第1FAT201のエリア番号が最小番号のデータサブエリアに属するクラスタのFAT値を、「FFF8h(未使用クラスタ)」から「FFFCh(使用不可クラスタ)」に変更して、第1FAT201を更新する。
続いて、ステップS408において、CPU101は、当該最小番号(エリア番号)のデータサブエリアの使用区分を「00b或いは11b(未使用エリア)」にして、サブエリア管理テーブル205を更新する。
ステップS408の処理が終了した場合、或いは、ステップS406で最小番号より大きいエリア番号のデータサブエリアに使用クラスタが存在すると判断された場合には、図9−2のステップS409に進む。なお、ステップS406でエリア番号の最小番号がnの場合は使用クラスタの有無に関りなく、ステップS408に進むことになる。
続いて、ステップS409において、CPU101は、第2FAT203をサーチ(検索処理)する。
続いて、ステップS410において、CPU101は、ステップS409で第2FAT203をサーチした結果、エリア番号が最大番号のデータサブエリアより小さいエリア番号のデータサブエリアに未使用クラスタが存在するか否かを判断する。
ステップS410の判断の結果、エリア番号が最大番号のデータサブエリアより小さいエリア番号のデータサブエリアに未使用クラスタが存在する場合には、ステップS411に進む。ステップS411に進むと、CPU101は、ステップS409で第2FAT203をサーチした結果、エリア番号が最大番号のデータサブエリアに使用クラスタが存在するか否かを判断する。
ステップS411の判断の結果、エリア番号が最大番号のデータサブエリアに使用クラスタが存在する場合には、ステップS412に進む。ステップS412に進むと、CPU101は、エリア番号が最大番号のデータサブエリア内の使用クラスタに記憶してあるデータを、ステップS410で判断した未使用クラスタに移動する。このステップS412の移動処理を行うCPU101は、第2のデータ移動手段を構成する。
続いて、ステップS413において、CPU101は、第2FAT203を更新する。具体的に、CPU101は、移動元のクラスタのFAT値を「FF8h(未使用クラスタ)」とし、移動先のクラスタおよび移動するクラスタに連結するクラスタのFAT値に新たな「チェーン情報」を記憶して、第2FAT203を更新する。この際、CPU101は、第2ディレクトリエントリ204も更新する必要があれば併せて実行する。
その後、ステップS410に戻り、ステップS410において未使用クラスタが存在しなくなるまで、或いは、ステップS411で使用クラスタが存在しなくなるまで、ステップS412及びS413を繰り返し実行する。
一方、ステップS410の判断の結果、エリア番号が最大番号のデータサブエリアより小さいエリア番号のデータサブエリアに未使用クラスタが存在しない場合には、ステップS414に進む。ステップS414に進むと、CPU101は、ステップS409で第2FAT203をサーチした結果、エリア番号が最大番号のデータサブエリアより小さいエリア番号のデータサブエリアに使用クラスタが存在するか否かを判断する。
ステップS414で最大番号より小さいエリア番号のデータサブエリアに使用クラスタが存在しないと判断された場合、或いは、ステップS411で最大番号のデータサブエリアに使用クラスタが存在しないと判断された場合には、ステップS415に進む。
ステップS415に進むと、CPU101は、第2FAT203のエリア番号が最大番号のデータサブエリアに属するクラスタのFAT値を、「FF8h(未使用クラスタ)」から「FFCh(使用不可クラスタ)」に変更して、第2FAT203を更新する。
続いて、ステップS416において、CPU101は、当該最大番号(エリア番号)のデータサブエリアの使用区分を「00b或いは11b(未使用エリア)」にして、サブエリア管理テーブル205を更新する。
ステップS416の処理が終了した場合、或いは、ステップS414で最大番号より小さいエリア番号のデータサブエリアに使用クラスタが存在すると判断された場合には、当該フローチャートにおける処理を終了する。なお、ステップS414でエリア番号の最大番号が0の場合は使用クラスタの有無に関りなく、当該フローチャートにおける処理を終了することになる。
以上説明してきたように、本実施形態では、次順のデータサブエリア内に記憶してあるデータを、より先順のエリア番号のデータサブエリア内にある未使用クラスタに移動してから、データサブエリアのリリース処理を実施するようにしている。したがって、本実施形態では、中間のエリア番号のデータサブエリアだけに使用クラスタが存在しなくなるといったことが全く起きない。よって、本実施形態では、記憶されるファイルは、常に第1FAT201と第2FAT203とで領域的に入り交じることなく、それぞれが連続したアドレスのまとまった領域内に記憶されることになる。
なお、以上の説明では、第2FAT203は、大きいクラスタサイズ(4Mバイト)でデータを記憶するので、データの移動にも処理時間のかかることが予想される。そこで、図10に示すように、第1FAT201で使用するデータサブエリアについてだけデータの移動を行うようにしてもよい。
図10は、本発明の第2の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の他の一例を示すフローチャートである。
具体的に、図10に示す処理では、まず、図9−1に示すステップS401〜ステップS408の処理を行う。その後、図8に示すステップS305に進み、ステップS305〜ステップS308の処理を行う。
図10に示す処理のように、第1FAT201で使用するデータサブエリアについてだけデータの移動を行う場合であっても、文字データ等ファイルをなるべくまとまった範囲に配置しておくという、本発明の目的は十分に達成することができる。
上述した各実施形態のデータ記憶装置100によれば、動画映像データ等の大容量データを高速に記憶すると共に、文字データ等の小容量データを使用効率よく記憶することが可能となる。また、各実施形態のデータ記憶装置100では、第1FAT201及び第2FAT203の各ブロックサイズで使用するデータサブエリアをなるべくまとまった範囲に配置することで、ファイルのデータ転送速度や空き領域検索速度の改善を図ることができる。また、各実施形態のデータ記憶装置100では、特に、小容量の文字データ等ファイルの速度改善に優れた効果を発揮する。
前述した本実施形態に係るデータ記憶装置100を構成する図1の各構成部、並びに、当該データ記憶装置100によるデータ記憶方法を示す図6〜図10の各ステップは、CPU101がROM102に記憶されたプログラムを実行することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
具体的に、前記プログラムは、例えばCD−ROMのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、CD−ROM以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク(LAN、インターネットの等のWAN、無線通信ネットワーク等)システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
また、本発明は、コンピュータが供給されたプログラムを実行することにより本実施形態に係るデータ記憶装置100の機能が実現される態様に限られない。そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)或いは他のアプリケーションソフト等と共同して本実施形態に係るデータ記憶装置100の機能が実現される場合も、かかるプログラムは本発明に含まれる。また、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて本実施形態に係るデータ記憶装置100の機能が実現される場合も、かかるプログラムは本発明に含まれる。
また、前述した本実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態に係るデータ記憶装置を含むデータ記憶システムの概略構成の一例を示すブロック図である。 図1に示すHDDのフォーマット状態の一例を示す模式図である。 図2に示す第1FAT及び第2FATにおけるFAT値の具体例を示す模式図である。 図2に示すサブエリア管理テーブルの構造の一例を示す模式図である。 図2に示す個々のデータサブエリアの大きさを128Mバイトとした場合のデータ領域全体の様子を示す模式図である。 本発明の第1の実施形態に係るデータ記憶装置のHDD108における初期化時の処理手順の一例を示すフローチャートである。 本発明の第1の実施形態に係るデータ記憶装置のデータ書き込み処理の処理手順の一例を示すフローチャートである。 図7−1に引き続き、本発明の第1の実施形態に係るデータ記憶装置のデータ書き込み処理の処理手順の一例を示すフローチャートである。 本発明の第1の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の一例を示すフローチャートである。 本発明の第2の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の一例を示すフローチャートである。 図9−1に引き続き、本発明の第2の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の一例を示すフローチャートである。 本発明の第2の実施形態に係るデータ記憶装置において、一旦割り当てられたデータサブエリアをリリースする際の処理手順の他の一例を示すフローチャートである。
符号の説明
100 データ記憶装置
101 CPU
102 ROM
103 RAM
104 ネットワークコントローラ(NIC)
105 外部機器接続インターフェース
106 デコーダ
107 ディスクコントローラ
108 ハードディスクドライブ(HDD)
109 グラフィック・サウンドコントローラ
110 バス
200 映像機器
300 モニタ装置

Claims (9)

  1. 第1ブロック単位で記憶領域を管理する第1FATおよび前記第1ブロック単位より大きいサイズの第2ブロック単位で記憶領域を管理する第2FATに対応づけられているデータ領域と、
    前記データ領域を複数のサブ領域に分割し、各サブ領域を前記第1FATまたは前記第2FATのどちらで使用しているかを示す管理情報と、前記第1FATおよび前記第2FATと、を備えるシステム領域と、
    を記憶する記憶手段と、
    前記データ領域にファイルを書き込む際に、前記管理情報に基づいて前記第1FATまたは前記第2FATの一方をサーチすることによって空き領域を探索し、サーチしたFATのブロック単位で前記ファイルのデータを記憶する制御手段と
    を有し、
    前記制御手段は、前記第1ブロック単位または前記第2ブロック単位で使用するサブ領域の記憶容量が不足すると、未使用のサブ領域の少なくとも一部を、前記第1FATまたは前記第2FATに割り当てて使用することを特徴とするデータ記憶装置。
  2. 前記制御手段は、前記記憶手段の備えるディスクの内周側に位置するサブ領域を前記第1FATに割り当て、前記記憶手段の備えるディスクの外周側に位置するサブ領域を前記第2FATに割り当てることを特徴とする請求項1に記載のデータ記憶装置。
  3. 前記制御手段は、前記第1FATで使用するサブ領域のなかで前記記憶手段の備えるディスクの最外周に位置するサブ領域、または、前記第2FATで使用するサブ領域のなかで前記記憶手段の備えるディスクの最内周に位置するサブ領域から、データが削除された場合に、当該データが削除されたサブ領域の管理情報を、未使用を示す内容に変更することを特徴とする請求項に記載のデータ記憶装置。
  4. 前記第1FATで使用するサブ領域のうち、前記記憶手段の備えるディスクのなかで、より内周側にデータを記憶していないサブ領域が存在する場合に、前記第1FATで使用しているサブ領域のうちの前記記憶手段の備えるディスクの最外周に位置するサブ領域に記憶してあるデータを当該内周側に位置するサブ領域に移動させる第1のデータ移動手段を更に有することを特徴とする請求項1乃至のいずれか1項に記載のデータ記憶装置。
  5. 前記第2FATで使用するサブ領域のうち、前記記憶手段の備えるディスクのなかで、より外周側にデータを記憶していないサブ領域が存在する場合に、前記第2FATで使用しているサブ領域のうちの前記記憶手段の備えるディスクの最内周に位置するサブ領域に記憶してあるデータを当該外周側に位置するサブ領域に移動させる第2のデータ移動手段を更に有することを特徴とする請求項1乃至のいずれか1項に記載のデータ記憶装置。
  6. 前記記憶手段はハードディスクドライブであることを特徴とする請求項1乃至のいずれか1項に記載のデータ記憶装置。
  7. 前記記憶手段は、前記第1FATと対応する第1ディレクトリエントリと、前記第2FATと対応する第2ディレクトリエントリと、を前記システム領域にさらに保持していることを特徴とする請求項1乃至のいずれか1項に記載のデータ記憶装置。
  8. 第1ブロック単位で記憶領域を管理する第1FATおよび前記第1ブロック単位より大きいサイズの第2ブロック単位で記憶領域を管理する第2FATに対応づけられているデータ領域と、
    前記データ領域を複数のサブ領域に分割し、各サブ領域を前記第1FATまたは前記第2FATのどちらで使用しているかを示す管理情報と、前記第1FATおよび前記第2FATと、を備えるシステム領域と、
    を記憶する記憶工程と、
    前記データ領域にファイルを書き込む際に、前記管理情報に基づいて前記第1FATまたは前記第2FATの一方をサーチすることによって空き領域を探索し、サーチしたFATのブロック単位で前記ファイルのデータを記憶する制御ステップと
    を有し、
    前記制御ステップにおいて、前記第1ブロック単位または前記第2ブロック単位で使用するサブ領域の記憶容量が不足すると、未使用のサブ領域の少なくとも一部を、前記第1FATまたは前記第2FATに割り当てて使用することを特徴とするデータ記憶方法。
  9. 記憶装置を備えるコンピュータを、
    第1ブロック単位で記憶領域を管理する第1FATおよび前記第1ブロック単位より大きいサイズの第2ブロック単位で記憶領域を管理する第2FATに対応づけられているデータ領域と、
    前記データ領域を複数のサブ領域に分割し、各サブ領域を前記第1FATまたは前記第2FATのどちらで使用しているかを示す管理情報と、前記第1FATおよび前記第2FATと、を備えるシステム領域と、
    を記憶する記憶手段と、
    前記データ領域にファイルを書き込む際に、前記管理情報に基づいて前記第1FATまたは前記第2FATの一方をサーチすることによって空き領域を探索し、サーチしたFATのブロック単位で前記ファイルのデータを記憶し、前記第1ブロック単位または前記第2ブロック単位で使用するサブ領域の記憶容量が不足すると、未使用のサブ領域の少なくとも一部を、前記第1FATまたは前記第2FATに割り当てて使用する制御手段として機能させるためのコンピュータ読み取り可能なプログラム。
JP2007259071A 2007-10-02 2007-10-02 データ記憶装置、データ記憶方法及びプログラム Expired - Fee Related JP5335215B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007259071A JP5335215B2 (ja) 2007-10-02 2007-10-02 データ記憶装置、データ記憶方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007259071A JP5335215B2 (ja) 2007-10-02 2007-10-02 データ記憶装置、データ記憶方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2009087255A JP2009087255A (ja) 2009-04-23
JP2009087255A5 JP2009087255A5 (ja) 2010-10-21
JP5335215B2 true JP5335215B2 (ja) 2013-11-06

Family

ID=40660564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007259071A Expired - Fee Related JP5335215B2 (ja) 2007-10-02 2007-10-02 データ記憶装置、データ記憶方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5335215B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061549A (ko) * 2017-11-28 2019-06-05 지인정보기술 주식회사 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710173B (zh) * 2017-10-26 2021-12-03 旺宏电子股份有限公司 存储器装置及应用于其上的数据管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163290A (ja) * 1998-11-30 2000-06-16 Nec Home Electronics Ltd データ記憶方法
JP2003217237A (ja) * 2002-01-21 2003-07-31 Toshiba Corp 磁気ディスク装置
JP3631234B2 (ja) * 2002-02-08 2005-03-23 三洋電機株式会社 ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体
JP2004013276A (ja) * 2002-06-04 2004-01-15 Victor Co Of Japan Ltd ファイルシステム及び記録媒体
JP4221959B2 (ja) * 2002-06-26 2009-02-12 日本ビクター株式会社 ブリッジファイルシステム、コンピュータシステム、ブリッジファイルシステムを用いたデータ管理方法及び記録媒体
JP4543641B2 (ja) * 2003-09-11 2010-09-15 ソニー株式会社 記録装置、記録方法、撮像装置および撮像方法
JP2005196882A (ja) * 2004-01-07 2005-07-21 Sony Corp ディスク状記録媒体、データ記録装置及びデータ記録方法、並びにデータ再生装置及びデータ再生方法
JP4455177B2 (ja) * 2004-06-11 2010-04-21 キヤノン株式会社 情報記録装置及びその制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061549A (ko) * 2017-11-28 2019-06-05 지인정보기술 주식회사 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법
KR102094786B1 (ko) * 2017-11-28 2020-03-31 지인정보기술 주식회사 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법

Also Published As

Publication number Publication date
JP2009087255A (ja) 2009-04-23

Similar Documents

Publication Publication Date Title
JP5000316B2 (ja) オブジェクト・ベースのデータ記憶装置
US8621174B2 (en) Relocating data within a file system
US6901497B2 (en) Partition creating method and deleting method
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
JP4992835B2 (ja) ディスク記憶装置およびプログラム
US20120117328A1 (en) Managing a Storage Cache Utilizing Externally Assigned Cache Priority Tags
JP4067293B2 (ja) キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ
WO2006030966A2 (en) File storage device, host apparatus, method of formatting nonvolatile semiconductor memory, and method of writing data in nonvolatile semiconductor memory
JP4256075B2 (ja) ファイルシステム及び記憶領域の管理方法
JP2005302233A (ja) 情報記憶装置、情報格納方法及び情報記憶処理プログラム
JP4502375B2 (ja) ファイルシステムおよびその制御方法
CN113407111B (zh) 闪存控制器、闪存控制器的方法及记忆装置
JP5335215B2 (ja) データ記憶装置、データ記憶方法及びプログラム
US11875051B2 (en) Contiguous data storage using group identifiers
JP4470471B2 (ja) 記録再生装置及び方法、並びに記録再生システム
KR101072730B1 (ko) 기록 재생 장치 및 기록 방법
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
US20060020751A1 (en) Medium storage device, cache segment switching method for medium storage device, and medium storage system
JP4301026B2 (ja) データ記録装置及びデータ記録方法、並びに記録再生システム
KR102167167B1 (ko) Ssd 장치를 관리하는 방법 및 그 ssd 장치
JP4664869B2 (ja) データ記録システム
JP4059469B2 (ja) データ管理制御装置、同制御方法及び、同制御処理を実行するためのプログラムを記録した記録媒体
JP2007058671A (ja) 情報処理装置および方法、プログラム、並びに記録媒体
JP4717317B2 (ja) ファイル管理装置、記録再生装置、記録媒体、記録再生方法およびプログラム
JP2000339202A (ja) ディスク制御装置およびその制御方法ならびにディスク記憶媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100907

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130326

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130731

R151 Written notification of patent or utility model registration

Ref document number: 5335215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees