(57)【特許請求の範囲】
【請求項１】
複数のクラスタから構成される実データ領域と、対応するクラスタの使用状況を示す複数のエントリからなる管理用テーブルと、を備えた記録メディアにデータを書き込むために、当該記録メディアにアクセスするデータアクセス方法であって、
前記記録メディアへのデータ書き込みに先立って、前記管理用テーブルを前記記録メディアへの１回のアクセスで読み出せるデータサイズ以下のサイズのブロックに分割するとともに、前記ブロックに存在する前記実データ領域の未使用クラスタの数に依存することなく、前記各ブロックごとに、未使用クラスタに対応するエントリである未使用エントリの有無のみを１バイト以下で表現した検索用テーブルをメインメモリ上に作成し、
前記記録メディアへデータを書き込む際に、前記検索用テーブルを参照して未使用エントリが存在するブロック位置を特定し、その後、前記特定されたブロックをメインメモリ上に読み出し、当該読み出されたデータに基づいて未使用クラスタの位置を特定し、前記特定された未使用クラスタに書き込み対象のデータを書き込む、
ことを特徴とするデータアクセス方法。
【請求項２】
請求項１に記載のデータアクセス方法であって、
前記検索用テーブルは、各ブロックにおける未使用エントリの有無を１ビットで表現していることを特徴とするデータアクセス方法。
【請求項３】
複数のクラスタから構成される実データ領域と、対応するクラスタの使用状況を示す複数のエントリからなる管理用テーブルと、を備えた記録メディアにデータを書き込むために、当該記録メディアにアクセスするデータアクセス装置であって、
制御部と、
前記制御部が直接アクセス可能なメインメモリと、
前記制御部により駆動制御されるとともに、前記記録メディアにアクセス可能なメディアコントローラと、
を備え、
前記制御部は、
前記記録メディアへのデータ書き込みに先立って、前記管理用テーブルを前記記録メディアへの１回のアクセスで読み出せるデータサイズ以下のサイズのブロックに分割するとともに、前記ブロックに存在する前記実データ領域の未使用クラスタの数に依存することなく、前記各ブロックごとに、未使用クラスタに対応するエントリである未使用エントリの有無のみを１バイト以下で表現した検索用テーブルをメインメモリ上に作成し、
前記記録メディアへデータを書き込む際に、前記検索用テーブルを参照して未使用エントリが存在するブロック位置を特定した後、前記メディアコントローラを駆動して前記特定されたブロックのデータをメインメモリ上に読み出し、当該読み出されたデータに基づいて未使用クラスタの位置を特定し、前記メディアコントローラを駆動して前記特定された未使用クラスタに書き込み対象のデータを書き込む、
ことを特徴とするデータアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
現在、市場に流通している多くの電子機器、例えば、デジタルオーディオ装置やデジタルカメラ、パーソナルコンピュータなどには、データを記録保持するための記録メディアが搭載されている。かかる記録メディアに記録されるデータは、通常、予め規定されたファイルシステム、例えば、ＦＡＴファイルシステムなどに従って管理される。こうしたファイルシステムにおいて、記録メディアは、通常、実データが記録される実データ領域と、データ管理用のデータが記録される管理領域と、に大別される。そして、管理領域には、実データ領域の使用状況を示すテーブル、例えば、Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ（ＦＡＴ）などが設けられる。記録メディアに新たなデータを書き込む場合、電子機器に搭載されたデータアクセス部は、このＦＡＴなどを参照して、データの書き込みが可能な領域、いわゆる、未使用領域の位置を特定する。
【０００２】
【特許文献１】特開平８−２２１３１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、近年、記録メディアの大容量化に伴い、未使用領域の位置特定に要する時間が増加し、ひいては、データ書き込み処理の時間が増加するという問題が生じている。かかるデータ書き込み処理時間の増加は、リアルタイムでのデータ書き込みが必要なシステムでは、大きな問題となる。
【０００４】
そこで、未使用領域の位置を迅速に特定するために、実データ領域の使用状況を示すビットマップを作成し、利用することが一部において提案されている（例えば特許文献１など）。より具体的には、実データ領域を複数のブロックに分割し、各ブロックの使用・未使用をビット値で表現したマップを作成し、当該ビットマップをメインメモリで保持しておき、必要に応じて、当該ビットマップを参照することが提案されている。メインメモリは、記録メディアに比して高速でアクセス可能である。したがって、メインメモリにビットマップを保持する当該方法によれば、迅速に未使用領域の位置を特定することができる。
【０００５】
しかしながら、メインメモリは、高速アクセスが可能である一方で、その容量は、記録メディアに比して、非常に小さい。かかる小容量のメインメモリにビットマップを保持すると、各種プロセスを実行するためのメモリ空間を十分に確保することができず、システムの処理に悪影響を与える場合がある。特に、携帯型電子機器、例えば、ポータブルオーディオ装置などでは、メインメモリの容量は比較的小さいことが多いため、この問題が顕著に現れる。
【０００６】
そこで、本発明では、システムの処理に影響を与えることなく、高速にデータ書き込みが可能なデータアクセス方法およびデータアクセス装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のデータアクセス方法は、複数のクラスタから構成される実データ領域と、対応するクラスタの使用状況を示す複数のエントリからなる管理用テーブルと、を備えた記録メディアにデータを書き込むために、当該記録メディアにアクセスするデータアクセス方法であって、前記記録メディアへのデータ書き込みに先立って、前記管理用テーブルを前記記録メディアへの１回のアクセスで読み出せるデータサイズ以下のサイズのブロックに分割するとともに、前記ブロックに存在する前記実データ領域の未使用クラスタの数に依存することなく、前記各ブロックごとに、未使用クラスタに対応するエントリである未使用エントリの有無のみを１バイト以下で表現した検索用テーブルをメインメモリ上に作成し、前記記録メディアへデータを書き込む際に、前記検索用テーブルを参照して未使用エントリが存在するブロック位置を特定し、その後、前記特定されたブロックをメインメモリ上に読み出し、当該読み出されたデータに基づいて未使用クラスタの位置を特定し、前記特定された未使用クラスタに書き込み対象のデータを書き込む、ことを特徴とする。
【０００８】
好適な態様において、前記検索用テーブルは、各ブロックにおける未使用エントリの有無を１ビットで表現することが望ましい。
【０００９】
他の本発明であるデータアクセス装置は、複数のクラスタから構成される実データ領域と、対応するクラスタの使用状況を示す複数のエントリからなる管理用テーブルと、を備えた記録メディアにデータを書き込むために、当該記録メディアにアクセスするデータアクセス装置であって、制御部と、前記制御部が直接アクセス可能なメインメモリと、前記制御部により駆動制御されるとともに、前記記録メディアにアクセス可能なメディアコントローラと、を備え、前記制御部は、前記記録メディアへのデータ書き込みに先立って、前記管理用テーブルを前記記録メディアへの１回のアクセスで読み出せるデータサイズ以下のサイズのブロックに分割するとともに、前記ブロックに存在する前記実データ領域の未使用クラスタの数に依存することなく、前記各ブロックごとに、未使用クラスタに対応するエントリである未使用エントリの有無のみを１バイト以下で表現した検索用テーブルをメインメモリ上に作成し、前記記録メディアへデータを書き込む際に、前記検索用テーブルを参照して未使用エントリが存在するブロック位置を特定した後、前記メディアコントローラを駆動して前記特定されたブロックのデータをメインメモリ上に読み出し、当該読み出されたデータに基づいて未使用クラスタの位置を特定し、前記メディアコントローラを駆動して前記特定された未使用クラスタに書き込み対象のデータを書き込む、ことを特徴とする。
【発明の効果】
【００１０】
本発明では、ブロック単位で未使用エントリの有無を示す検索用テーブル、換言すれば、データ量が大幅に低減されたテーブルを用いて、未使用クラスタの位置を特定している。これにより、未使用クラスタの位置特定に要するメモリサイズを大幅に低減できる。そして、その結果、システムの処理に影響を与えることなく、高速にデータ書き込みが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明の実施形態である携帯型デジタルオーディオ装置１０（以下「オーディオ装置」と略す）の概略構成を示すブロック図である。このオーディオ装置１０は、音声データの記録・再生を行う電子機器で、ＣＰＵなどから構成される制御部１２を備えている。この制御部１２は、バス２６を介して、ＲＯＭ２８およびＲＡＭ３０で構成される主記憶部１４、記録メディア３４を駆動するメディアコントローラ３２、音声信号に公知の信号処理を施す信号処理部１８、ユーザからの指示を受け付けるユーザインターフェース部（Ｕ／Ｉ部）２４、スピーカなどから構成される出力部２２、マイクなどから構成される入力部２０などに接続されている。また、メディアコントローラ３２には、音声データをはじめとする各種ユーザデータを記録・保持する記録メディア３４が接続されており、このメディアコントローラ３２と記録メディア３４は、各種データを永続的に記録保持する補助記憶部１６を構成する。さらに、このオーディオ装置１０を構成する各部のうち、制御部１２、主記憶部１４、メディアコントローラ３２は、データを読み書きするために記録メディア３４にアクセスするデータアクセス部３６として機能する。
【００１２】
記録メディア３４に記録されている音声データを再生する場合、制御部１２などで構成されるデータアクセス部３６は、記録メディア３４にアクセスして当該音声データを読み出す。信号処理部１８は、この読み出された音声データに対して、公知の信号処理、例えば、信号形式の変換処理や、音声のキー（音程）変更処理、テンポ変更処理、ダイナミクス変更処理などを施して、再生信号を生成する。生成された再生信号は、出力部２２を介して外部に出力される。
【００１３】
また、入力部２０を介して入力された音声信号（入力信号）を録音する場合、信号処理部１８は、当該入力信号に公知の信号処理、例えば、信号形式の変換処理や、ノイズ除去処理、再生信号との合成処理などを施して、録音信号を生成する。そして、この生成された録音信号を、データアクセス部３６が記録メディア３４に順次書き込んでいくことで音声の録音が実現されるようになっている。
【００１４】
ここで、音声を録音する場合、当然ながら、データアクセス部３６には、書き込むべきデータ（録音信号）が、継続して供給されることになる。このように、データが継続して供給される場面では、データ書き込み処理が迅速に行われることが要求される。これは、データ供給速度に比して、データ書き込みの処理速度が、過度に遅い場合、バッファ（メモリ）の溢れが生じてしまい、適切な録音処理が行えないためである。特に、大容量のバッファ確保が困難な携帯型電子機器では、データ書き込みの処理速度の向上が強く望まれている。本実施形態では、この問題を解決するために、データアクセス部３６の構成、特に、その制御内容を特殊なものとしている。以下、これについて詳説する。
【００１５】
本実施形態では、既述したとおり、制御部１２、主記憶部１４、および、メディアコントローラ３２が、データの書き込みのために記録メディア３４へアクセスするデータアクセス部３６を構成する。このうち、制御部１２は、ＣＰＵからなるもので、ＲＯＭ２８に格納されたプログラムに従って各種処理を実行する。なお、制御部１２が実行する処理のうち、データ書き込み処理に関連する処理としては、検索用テーブルの作成処理や、当該検索用テーブルを利用した記録メディア３４上での未使用領域（未使用クラスタ）の位置特定処理などが挙げられるが、これらについては、後に詳説する。
【００１６】
主記憶部１４は、制御部１２が直接アクセス可能な記憶部で、読み込み専用のＲＯＭ２８と、読み書きが可能なＲＡＭ３０と、で構成される。ＲＯＭ２８には、既述したとおり、このオーディオ装置１０を駆動制御するためのプログラムが格納されている。ＲＡＭ３０は、例えば、ＤＲＡＭ、ＳＤＲＡＭなどにより構成されるもので、制御部１２が各種処理を実行する際に使用するメインメモリである。このＲＡＭ３０は、記録メディア３４に比して、高速でのアクセスが可能である一方で、その容量が小さい。したがって、このＲＡＭ３０には、制御部１２による処理実行に必要なデータのみが一時的に記憶されるようになっている。なお、後に詳説する検索用テーブルは、このＲＡＭ３０内に記憶保持される。メディアコントローラ３２は、記録メディア３４を駆動制御するもので、制御部１２からの指示に応じて、記録メディアにアクセスする。別の見方をすれば、制御部１２は、記録メディア３４に直接アクセスすることはなく、メディアコントローラを介してのみ記録メディア３４にアクセスすることができる。
【００１７】
記録メディア３４は、音声データなどのユーザデータを記録保持するもので、例えば、フラッシュメモリなどの半導体メモリや、ハードディスクなどが該当する。この記録メディア３４において、データは、ＦＡＴファイルシステムに従って管理されている。このＦＡＴファイルシステムによるデータ構成について、図２、図３を用いて簡単に説明する。
【００１８】
ＦＡＴファイルシステムは、周知のとおり、Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅと呼ばれるテーブルを利用して、データをファイル単位で管理するシステムである。ここで、通常、Ｆｉｌｅ  Ａｌｏｃａｔｉｏｎ  Ｔａｂｌｅは、「ＦＡＴ」と略されるが、ファイルシステムの名称としての「ＦＡＴ」との区別を明確にするため、本明細書では、Ｆｉｌｅ  Ａｌｏｃａｔｉｏｎ  Ｔａｂｌｅを「ｆａｔ」と小文字で表記する。
【００１９】
ＦＡＴファイルシステムにおいて、記録メディア３４は、図２に図示するように、実データ（ユーザデータ）が記録される実データ領域４２と、当該実データ領域４２を管理するためのｆａｔなどのデータが記録される管理領域４０と、に大別される。
【００２０】
実データ領域４２は、クラスタと呼ばれる固定長サイズのブロックに分割され、管理される。なお、クラスタは、所定個数のセクタを纏めたものである。また、セクタは、メディアコントローラがアクセスする際の最小単位で、半導体メモリの場合、通常、１セクタは、５１２バイトである。したがって、クラスタがｍ個のセクタから構成される場合、１クラスタのサイズは、ｍ×５１２バイトとなる。
【００２１】
ファイルは、そのデータサイズに応じて、１以上のクラスタで構成される。なお、一つのファイルを構成するクラスタは、必ずしも連続しているわけではなく、不連続な場合もある。例えば、図２に図示するように、一つのファイルＣを構成するクラスタＣ５，Ｃ６，Ｃ８，Ｃ９が不連続となる場合もある。
【００２２】
管理領域４０は、この実データ領域４２を管理するためのデータ、具体的には、ディレクトリテーブル４４（図３（ａ）参照）や、ｆａｔ４６（図３（ｂ）参照）などが記憶されている。ディレクトリテーブル４４は、各ファイルの先頭クラスタの番号や属性などが記録されたテーブルである。
【００２３】
ｆａｔ４６は、実データ領域４２における各ファイルの記録位置を示すテーブルであり、対応するクラスタの使用状況を示す複数のエントリからなる管理用テーブルとして機能する。具体的には、ｆａｔ４６は、各クラスタごとに設けられたエントリと呼ばれる構成要素で構成されており、各エントリには、対応するクラスタのデータの続きが記録されているクラスタ番号が記録されている。例えば、図２の図示例であれば、０番クラスタＣ０のデータ（ファイルＡ）の続きは、１番クラスタＣ１に記録されている。したがって、０番クラスタＣ０に対応する０番エントリＥ０には、クラスタ番号「１」が記録される。同様に、１番クラスタＣ１のデータの続きは、２番クラスタＣ２に記録されているため、１番クラスタＣ１に対応する１番エントリＥ１にはクラスタ番号「２」が記録される。２番クラスタＣ２は、ファイルＡの末尾に該当しており、当該２番クラスタＣ２のデータの続きは存在しない。この場合、２番クラスタＣ２に対応する２番エントリＥ２には、ファイルの終端を意味する「Ｅｏｆ（Ｅｎｄ  ｏｆ  Ｆｉｌｅ）」が記録される。また、対応するクラスタにデータが記録されていない場合、換言すれば、対応するクラスタが未使用クラスタである場合、エントリにはＮｕｌｌが記録される。例えば、図２の図示例であれば、３番クラスタＣ３は、データが記録されていない未使用クラスタである。したがって、この３番クラスタＣ３に対応する３番エントリＥ３には、「Ｎｕｌｌ」が記録される。
【００２４】
なお、このｆａｔ４６のエントリは、クラスタの個数分だけ用意される。また、各エントリのデータサイズは、ＦＡＴ１６の場合は１６ビット（２バイト）であり、ＦＡＴ３２の場合は３２ビット（４バイト）である。したがって、ｆａｔ４６全体のデータサイズは、全クラスタ数×２バイト（または４バイト）となる。
【００２５】
この記録メディア３４にユーザデータを書き込む場合の流れは次の通りである。制御部１２は、まず、当該記録メディア３４における未使用クラスタの位置を特定する。そして、未使用クラスタの位置が特定できれば、メディアコントローラ３２を駆動して、ＲＡＭに一時記憶していたユーザデータを当該未使用クラスタに書き込む。
【００２６】
ここで、従来、未使用クラスタの位置は、ｆａｔ４６を検索することで特定していた。ただし、制御部１２は、記録メディア３４に直接アクセスすることはできない。そのため、制御部１２が、ｆａｔ４６を検索する場合には、当該ｆａｔ４６を記録メディア３４からＲＡＭ３０上に読み出す必要がある。しかし、近年、記録メディア３４の大容量化（クラスタ数の増加）に伴い、ｆａｔ４６のデータサイズも大きくなっており、当該ｆａｔ４６の読み出し、ひいては、未使用クラスタの位置特定に要する時間が過度に長くなる、という問題が生じていた。
【００２７】
そこで、一部においては、各クラスタの使用・未使用の状態を表すビットマップを作成し、当該ビットマップを利用することで、未使用クラスタの位置特定処理の高速化を図ることが提案されている。すなわち、電子機器の起動時などのタイミングにおいて、ｆａｔ４６に基づいて、各クラスタの使用・未使用の状態をビット値で表したマップ（ビットマップ）を作成し、これをＲＡＭ３０上に保持しておく。そして、未使用クラスタの位置特定が必要な場合には、ＲＡＭ３０で保持されているビットマップを検索し、未使用クラスタの位置を特定する。かかる方法によれば、書込処理のたびにｆａｔ４６を読み出す必要がないため、比較的、短時間で未使用クラスタの位置を特定できるという利点がある。しかしながら、このビットマップを利用する方法では、当該ビットマップの記録保持のために、かなりの容量のメモリを消費することになり、場合によっては、他のプロセス実行に悪影響を与える、という問題がある。すなわち、ビットマップは、各クラスタごとに１ビット利用しているため、全体としてのデータサイズは、１ビット×全クラスタ数となる。数十Ｇ〜数百Ｇバイトという大容量の記録メディアも流通している現状では、かかるビットマップのサイズは、十分に小さいとは言いがたい。そして、当該ビットマップを保持するために、大量のメモリを消費すると、他のプロセスの実行のために必要なメモリ空間を確保することができず、結果として、他のプロセスの実行に悪影響を与えることになる。この問題は、大容量のＲＡＭの搭載が困難な、携帯型電子機器の場合、特に大きな問題となる。
【００２８】
そこで、本実施形態では、未使用クラスタの位置特定処理に要する時間を低減しつつ、当該処理に要するメモリサイズを大幅に低減するために、ビットマップに代えて、図４に例示するような検索用テーブル５０を作成している。
【００２９】
この検索用テーブル５０は、未使用クラスタの位置特定に利用されるテーブルで、従前のビットマップと同様に、オーディオ装置１０の起動時や再生・録音が行われていない待機時など、制御部１２が実行すべきプロセスが比較的少ないタイミングに作成され、ＲＡＭ３０上で保持されるテーブルである。
【００３０】
この検索用テーブル５０は、ｆａｔ４６を複数の所定サイズのブロックに分割した際に、各ブロック内に、未使用クラスタに対応するエントリ（以下「未使用エントリ」）が有るか否かを示すテーブルである。なお、各ブロックのデータサイズは、１回のアクセスで読み出せるデータサイズ以下である。
【００３１】
具体的に、ＦＡＴ１６システムを採用した半導体メモリを例に挙げて説明する。ＦＡＴ１６システムの場合、１エントリのデータサイズは、１６ビット＝２バイトである。一方、半導体メモリでは、１回のアクセスで読み出せるデータサイズ（セクタ）は、通常、５１２バイトである。したがって、ｆａｔ４６を、セクタ単位で複数のブロックに分割した場合、一つのブロック内には、５１２／２＝２５６個のエントリが含まれることになる（図４参照）。
【００３２】
検索用テーブル５０では、この１ブロックに含まれる２５６個のエントリの中に、未使用エントリが含まれているか否かを、ビット値で表現する。すなわち、１ブロックの中に、未使用エントリが存在する場合はビット値を「１」とし、未使用エントリが存在しない場合にはビット値「０」としている。
【００３３】
例えば、図４の図示例のように、０番目セクタＢ０には未使用エントリが存在していない場合、この０番目セクタＢ０に対応する検索用テーブル５０のビット値Ｃ０は「０」となる。また、１番目ブロックＢ１には未使用エントリが存在しているため、この１番目ブロックＢ１に対応する検索用テーブルのビット値Ｃ１は「１」とする。同様に、２番目以降のブロックについても未使用エントリの有無に基づいて、ビット値を設定していく。このようにして得られる検索用テーブル５０は、未使用クラスタの位置を概略的に示すテーブルとなる。また、別の見方をすれば、この検索用テーブル５０は、未使用エントリが存在するブロック位置を示すテーブルであるといえる。すなわち、図示された検索用テーブル５０を参照すれば、１番目および３番目のブロックＢ１，Ｂ３に、未使用エントリが存在することが分かる。
【００３４】
本実施形態では、この検索用テーブル５０を事前に作成し、ＲＡＭ３０上で保持しておく。そして、未使用クラスタの位置を特定する際には、当該ＲＡＭ３０上で保持されている検索用テーブル５０を参照し、未使用エントリのｆａｔ４６での位置（何番目のブロックか）を特定する。この未使用エントリのｆａｔ４６上での位置特定は、既に、ＲＡＭ３０上に保持されている検索用テーブル５０に基づいて行われるため、非常に短時間で実行することが出来る。
【００３５】
ここで、検索用テーブル５０をＲＡＭ３０上で保持した場合、当然、当該検索用テーブルのデータサイズ分だけメモリの使用が制限されることになる。しかし、本実施形態の検索用テーブル５０は、ｆａｔ４６や、従前のビットマップに比して、そのデータサイズは、非常に小さい。そのため、常時、ＲＡＭ３０上で保持していたとしても、他のプロセス実行に影響を与えることは殆どない。すなわち、ｆａｔ４６全体のデータサイズは、（１６ビット×全クラスタ数）である。また、従来、一部において使用されていたビットマップのデータサイズは（１ビット×全クラスタ数）である。一方、本実施形態の検索用テーブル５０は、２５６エントリごとに１ビット使用している。そして、ｆａｔ４６を構成するエントリの個数は、全クラスタ数と等しいため、検索用テーブル５０全体のデータサイズは、（１ビット×全クラスタ数／２５６）となる。つまり、検索用テーブルのデータサイズは、ｆａｔ４６のデータサイズの１／（２５６＊１６）になっている。また、従前のビットマップと比べても、検索用テーブル５０は、１／２５６のデータサイズになっている。つまり、本実施形態の検索用テーブル５０は、ｆａｔ４６や従前のビットマップに比して、そのデータサイズが大幅に低減されており、ＲＡＭ３０上で保持するために必要なメモリサイズが大幅に低減されている。その結果、当該検索用テーブル５０を、常時、ＲＡＭ３０上で保持していたとしても、他のプロセス実行に影響を与えることは殆どない。
【００３６】
未使用エントリのｆａｔ４６上での位置が特定できれば、制御部１２は、メディアコントローラ３２を駆動して、当該特定されたブロックのデータをＲＡＭ３０上に読み出す。ブロックデータが、ＲＡＭ３０上に読み出されれば、制御部１２は、当該ブロックデータに基づいて、未使用クラスタの位置を特定する。ここで、既述したように、１ブロックは、１回のアクセスで読み出せるデータサイズ（セクタ）以下である。したがって、未使用エントリの存在するブロックのデータは、必ず、１回のアクセスで読み出すことが出来る。換言すれば、本実施形態によれば、記録メディアに１回だけアクセスすれば、未使用クラスタの位置を特定することができる。その結果、ｆａｔ４６を先頭から順にＲＡＭ３０上に読み出していた従来の特定方法に比べて、非常に短時間で未使用クラスタの位置を特定することが出来る。未使用クラスタの位置を特定できれば、適宜、必要なユーザデータを、当該未使用クラスタに書き込んでいく。
【００３７】
以上の説明から明らかなとおり、本実施形態によれば、データ書込に際して、大容量のｆａｔ４６を先頭から順に読み出す必要がなく、未使用クラスタの位置特定に要する時間を大幅に短縮できる。また、本実施形態の検索用テーブル５０のデータサイズは、ｆａｔ４６や従前のビットマップに比して大幅に低減されている。そのため、検索用テーブル５０を保持するために必要なメモリサイズを大幅に低減することができる。その結果、大容量のＲＡＭ３０を用意する必要はなく、オーディオ装置全体のサイズ増加や価格増加を防止できる。
【００３８】
なお、本実施形態では、１ブロック（２５６エントリ）の状態を１ビットで表現した検索用テーブル５０を利用しているが、１ブロックの状態を１バイトで表現した検索用テーブルを用いてもよい。１ブロックの状態を１バイトで表現することにより、ビット操作が不要となり、当該検索用テーブルを参照するためのプログラムを簡潔なものとできる。なお、１ブロックごとに１バイトを割り当てた場合、当然ながら、検索用テーブルのデータサイズは約８倍に増加することになる。しかし、その場合であっても、当該検索用テーブルは、従前のビットマップの１／３２のデータサイズであり、十分に小さい。つまり、１ブロックの状態を１バイトで表現した検索用テーブルを用いた場合でも、未使用クラスタの位置特定に要するメモリサイズを大幅に低減でき、さらに、位置特定のための動作プログラムを簡素化できる。
【００３９】
また、本明細書では、オーディオ装置１０を例に挙げて説明しているが、本実施形態のデータアクセス部３６の構成は、迅速なデータ書込処理が要求される電子機器、例えば、デジタルカメラやＰＤＡ、パーソナルコンピュータなどにも適用できる。また、本実施形態では、データ管理システムの一例としてＦＡＴファイルシステムを挙げている。しかし、実データ領域が複数のクラスタに分割されるとともに、当該記録メディア内に、各クラスタの使用状況を示すテーブルが存在するのであれば、他のデータ管理システムに適用してもよい。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態であるオーディオ装置の概略構成を示すブロック図である。
【図２】記録メディアでのデータ構成を示すイメージ図である。
【図３】管理領域で保持されているディレクトリテーブルおよびｆａｔのイメージ図である。
【図４】検索用テーブルのイメージ図である。
【符号の説明】
【００４１】
１０  オーディオ装置、１２  制御部、１４  主記憶部、１６  補助記憶部、１８  信号処理部、２０  入力部、２２  出力部、２６  バス、２８  ＲＯＭ、３０  ＲＡＭ、３２  メディアコントローラ、３４  記録メディア、３６  データアクセス部、４０  管理領域、４２  実データ領域、４４  ディレクトリテーブル、４６  ｆａｔ、５０  検索用テーブル。
【図１】
0005515218.tif 000002
【図２】
0005515218.tif 000003
【図３】
0005515218.tif 000004
【図４】
0005515218.tif 000005