(57)【要約】【課題】  複数のファイルの同時間帯での読み書き等を、短いシーク時間または小さいシーク量で実現することができる記録再生装置及び記録再生方法を提供すること。【解決手段】  本発明では、ＦＩＦＯ４０と、このＦＩＦＯ４０に蓄積されるデータ量を制御するバッファコントローラ４５とが備えられている。バッファコントローラ４５が、当該データ量を制御しつつ、先に書き込まれているファイルのデータが書き込まれるブロックが属するエリアに合わせて、後に書き込まれるファイルデータを書き込んでいくようにする。これにより、あるファイルが書き込まれている途中であっても、シーク時間及びシーク量を少なくしながら別のファイルを書き込むことができる。【選択図】  図１８
2005322283.tif 000002
【特許請求の範囲】
【請求項１】
通し番号が割り当てられたセクタの単位で記録領域が分割され、かつ、１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして前記記録領域が分割された記録媒体と、
前記エリアごとの未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを対応付け、対応付けられた情報を第１の情報として管理する手段と、
ファイルのファイル名と、当該ファイルが前記記録媒体に記録されたときの該ファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号とを対応付け、対応付けられた情報を第２の情報として管理する手段と、
前記未使用ブロック数に基づき、前記記録媒体の最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出し、検出した未使用ブロックの先頭のセクタの番号の情報に基づき、前記ファイルのデータを、前記検出した１以上のエリア内の先頭の未使用ブロックに所定の数のブロック分ずつ書き込む手段と、
前記記録媒体から読み出そうとするファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号を前記第２の情報より取得し、取得した情報に基づき当該記録媒体から該当するファイルデータを読み出す手段と、
前記書き込み手段により書き込もうとする複数のファイルのデータ、前記読み出し手段により読み出そうとする複数のファイルのデータ、または、前記読み出し及び書き込み手段により読み書きしようとする複数のファイルのデータを一時的にそれぞれ蓄積可能であり、当該ファイルごとに設けられた複数のバッファと、
前記各ファイルデータの少なくとも一部を同じ時間帯にそれぞれ書き込み、読み出し、または、書き込み及び読み出しの両方を実行できるように、前記第１及び第２の情報に基づき前記各バッファに蓄積されるデータ量を制御する手段と
を具備することを特徴とする記録再生装置。
【請求項２】
請求項１に記載の記録再生装置であって、
前記制御手段は、前記書き込み手段により、前記各バッファから順次出力される前記各ファイルデータのそれぞれ順次書き込まれるエリアが同じエリアとなるように、前記各バッファに蓄積されるデータ量を制御する手段を有することを特徴とする記録再生装置。
【請求項３】
請求項１に記載の記録再生装置であって、
前記制御手段は、前記書き込み手段により、同一のエリアに２以上の未使用ブロックが検出されなかった場合、前記各バッファから順次出力される前記各ファイルデータのそれぞれ順次書き込まれるエリア同士が最も近いエリアとなるように、前記各バッファに蓄積されるデータ量を制御する手段を有することを特徴とする記録再生装置。
【請求項４】
請求項１に記載の記録再生装置であって、
前記バッファは、前記各ファイルのうち第１及び第２のファイルデータをそれぞれ蓄積可能な第１及び第２のバッファで構成され、
前記制御手段は、
前記書き込み手段により前記第１のファイルデータが書き込まれるときに前記第１のバッファに蓄積される前記第１のファイルデータをゼロに制御する手段と、
前記第１のファイルデータが書き込まれている途中に、前記第１及び第２の情報に基づき、前記書き込まれている第１のファイルデータのブロックが属するエリアと、前記書き込み手段により書き込もうとする前記第２のファイルデータの書き込み開始ブロックが属するエリアとが一致するか否かを判断する手段と、
前記判断手段により一致すると判断されるまでの間前記第２のファイルデータを前記第２のバッファに所定のブロック数分蓄積させた後、該第２のファイルデータを前記記録媒体に書き込むために該第２のバッファから順次出力させる手段とを有し、
前記書き込み手段は、前記第２のバッファから順次出力される前記第２のファイルデータを順次書き込むエリアが、前記第１のファイルデータを順次書き込むエリアと同じエリアになるように該第２のファイルデータを書き込んでいく手段を有することを特徴とする記録再生装置。
【請求項５】
請求項１に記載の記録再生装置であって、
前記バッファは、前記各ファイルのうち第１及び第２のファイルデータをそれぞれ蓄積可能な第１及び第２のバッファで構成され、
前記制御手段は、
前記読み出し手段により前記第１のファイルデータが読み出されている途中に、前記第１及び第２の情報に基づき、前記読み出されている前記第１のファイルデータのブロックが属するエリアと、前記読み出し手段により読み出そうとする前記第２のファイルデータの読み出し開始ブロックが属するエリアとが一致するか否かを判断する手段と、
前記判断手段により一致すると判断されるまでの間前記読み出されている第１のファイルデータを前記第１のバッファに所定のブロック数分蓄積させた後、前記第１のファイルを再生するために前記第１のファイルデータを該第１のバッファから順次出力させる手段とを有し、
前記読み出し手段は、前記第２のファイルデータを順次読み出すエリアが、前記第１のファイルデータを順次読み出すエリアと同じエリアになるように該第２のファイルデータを読み出していく手段を有することを特徴とする記録再生装置。
【請求項６】
請求項１に記載の記録再生装置であって、
前記バッファは、前記各ファイルのうち第１及び第２のファイルデータをそれぞれ蓄積可能な第１及び第２のバッファで構成され、
前記制御手段は、
前記読み出し手段により前記第１のファイルデータが読み出されるときに前記第１のバッファに蓄積される前記第１のファイルデータをゼロに制御する手段と、
前記第１のファイルデータが読み出されている途中に、前記第１及び第２の情報に基づき、前記読み出されている第１のファイルデータのブロックが属するエリアと、前記書き込み手段により書き込もうとする前記第２のファイルデータの書き込み開始ブロックが属するエリアとが一致するか否かを判断する手段と、
前記判断手段により一致すると判断されるまでの間前記第２のファイルデータを前記第２のバッファに所定のブロック数分蓄積させた後、該第２のファイルデータを前記記録媒体に書き込むために該第２のバッファから順次出力させる手段とを有し、
前記書き込み手段は、前記第２のバッファから順次出力される前記第２のファイルデータを順次書き込むエリアが、前記第１のファイルデータを順次書き込むエリアと同じエリアになるように該第２のファイルデータを書き込んでいく手段を有することを特徴とする記録再生装置。
【請求項７】
通し番号が割り当てられたセクタの単位で記録領域が分割され、かつ、１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして前記記録領域が分割された記録媒体上の、前記エリアごとの未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを対応付けるステップと、
ファイルのファイル名と、当該ファイルが前記記録媒体に記録されたときの該ファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号とを対応付けるステップと、
前記未使用ブロック数に基づき、前記記録媒体の最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出するステップと、
検出した未使用ブロックの先頭のセクタの番号の情報に基づき、前記ファイルのデータを、前記検出した１以上のエリア内の先頭の未使用ブロックに所定の数のブロック分ずつ書き込むステップと、
前記記録媒体から読み出そうとするファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号を前記第２の情報より取得するステップと、
前記取得した情報に基づき当該記録媒体から該当するファイルデータを読み出すステップと、
前記書き込もうとする複数のファイルのデータ、前記読み出そうとする複数のファイルのデータ、または、読み書きしようとする複数のファイルのデータを当該ファイルごとに設けられた複数のバッファに一時的にそれぞれ蓄積するステップと、
前記各ファイルデータの少なくとも一部を同じ時間帯にそれぞれ書き込み、読み出し、または、書き込み及び読み出しの両方を実行できるように、前記第１及び第２の情報に基づき前記各バッファに蓄積されるデータ量を制御するステップと
を具備することを特徴とする記録再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスク等の記録媒体にデータを記録再生する記録再生装置及び記録再生方法に関する。
【背景技術】
【０００２】
ハードディスクドライブ等のディスク装置をＰＣ（Personal Computer）等の記憶装置として使用する場合、ディスク記録面のサーボエリアを除いた部分にデータの記録が行われる。このときデータはセクタと呼ばれる５１２バイトの単位で扱われる。各セクタにはトラックの移動方向に沿って昇順かつディスクの外周から内周に向かって昇順にＬＢＡ（Logical Block Address）なる通し番号が付けられ、このＬＢＡでリード／ライト時のセクタの指定が行われる。
【０００３】
一方、ディスク上のファイルを管理する仕組みとしてＦＡＴファイルシステムがある。このＦＡＴファイルシステムは、ディスク上のファイルをディレクトリエントリとＦＡＴ(File Allocation Table)を用いて管理する仕組みである。ディレクトリエントリには、ファイル毎に、そのファイル名とファイルデータの先頭が記録されているクラスタの番号（開始クラスタ番号）が記録されている。ＦＡＴには、クラスタがどのような順番で繋がって一つのファイルを構成しているかといった情報がテーブル形式で記録されている。なお、クラスタとは、その容量がセクタの容量の２のべき乗倍となるように連続するセクタをまとめた単位である。
【０００４】
ファイルを読み出す場合は、ディレクトリエントリから該当するファイル名を検索し、このファイル名に対応して記録されている開始クラスタ番号を読み出す。この開始クラスタ番号が指しているクラスタからデータを読み出した後、ＦＡＴから当該開始クラスタ番号のクラスタの次のクラスタを確認し、そのクラスタからデータを読み出す。以降同様にＦＡＴを参照しながらディスクからデータを読み出す。
【０００５】
ここで物理的に連続するセクタにファイルデータを記録することができれば、ヘッドの移動（シーク）は最小で済み、ファイル操作に要する時間も最小で済むことになる。しかし、ディスク装置をＰＣに用いた場合、ファイルの記録と削除が頻繁に行われることから、空き領域が次第に離散化し、結果的にディスク内での一つのファイルデータの配置が不連続となる現象（フラグメンテーション）が進む。このフラグメンテーションの度合が高くなるとファイルアクセス時のシーク回数が増え、それだけアクセス時間が長くなってしまう。さらに、シーク動作はヘッドのメカニカルな移動を伴うことから、シーク回数の増加は消費電力の増大、動作音の頻発（騒音の発生）、機械的消耗等を招く。
【０００６】
一方、従来から、例えば動画ストリームデータを記録媒体に記録しながら当該動画ストリームを再生する、いわゆる「追っかけ再生」を可能にする技術がある。この技術において、例えば「追っかけ再生」の途中にポーズ（休止）コマンドがあった場合でも、さらにデータの記録を続け、ポーズの解除があれば追っかけ再生していた動画ストリームの続きを出力するという技術がある（例えば、特許文献１参照。）。この特許文献１の方法では、ポーズ途中で記録媒体上のセグメントに動画ストリームデータ（プログラム）の記録を続ける。具体的には、セグメント１、セグメント３、セグメント５、・・・というように１つおきに奇数番号のセグメントに順次記録していく。ポーズの終了後は、再生を開始すべきストリームデータが記録されているセグメントの隣のセグメントから１つおきに偶数番号のセグメントに記録していく。  
【特許文献１】特表２００３−５１３４０３号公報（段落[００２３]等、図３〜図１１３）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ハードディスクドライブ等のディスク装置では、ファイルの記録と消去が繰り返されるうちにファイルデータのフラグメンテーションが進む。フラグメンテーションが進むと、ファイルデータのアクセスにおいてシークが多発し、ファイルアクセス時間が増大するという問題が発生していた。また、シークの多発による消費電力の増大や、シーク動作音による騒音、さらには機械的消耗等といった問題も招いていた。また、ハードディスク上に記録した動画ストリームを追っかけ再生する場合にも、シークが頻繁に起こるものと考えられる。
【０００８】
以上のような事情に鑑み、本発明の目的は、ファイルの読み書き、消去等のファイル操作時に変位の大きいシークの発生を抑止し、ディスク全域にわたって速度変動の少ないデータ転送を実現することができる記録再生装置及び記録再生方法を提供することにある。
【０００９】
本発明の別の目的は、複数のファイルの同時間帯での読み書き等を、短いシーク時間または小さいシーク量で実現することができる記録再生装置及び記録再生方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係る記録再生装置は、通し番号が割り当てられたセクタの単位で記録領域が分割され、かつ、１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして前記記録領域が分割された記録媒体と、前記エリアごとの未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを対応付け、対応付けられた情報を第１の情報として管理する手段と、ファイルのファイル名と、当該ファイルが前記記録媒体に記録されたときの該ファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号とを対応付け、対応付けられた情報を第２の情報として管理する手段と、前記未使用ブロック数に基づき、前記記録媒体の最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出し、検出した未使用ブロックの先頭のセクタの番号の情報に基づき、前記ファイルのデータを、前記検出した１以上のエリア内の先頭の未使用ブロックに所定の数のブロック分ずつ書き込む手段と、前記記録媒体から読み出そうとするファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号を前記第２の情報より取得し、取得した情報に基づき当該記録媒体から該当するファイルデータを読み出す手段と、前記書き込み手段により書き込もうとする複数のファイルのデータ、前記読み出し手段により読み出そうとする複数のファイルのデータ、または、前記読み出し及び書き込み手段により読み書きしようとする複数のファイルのデータを一時的にそれぞれ蓄積可能であり、当該ファイルごとに設けられた複数のバッファと、前記各ファイルデータの少なくとも一部を同じ時間帯にそれぞれ書き込み、読み出し、または、書き込み及び読み出しの両方を実行できるように、前記第１及び第２の情報に基づき前記各バッファに蓄積されるデータ量を制御する手段とを具備する。
【００１１】
本発明では、ファイルデータは、ディスクの記録領域を均等に分割する、１以上の連続する各エリアに所定の数のブロック分ずつ書き込まれて行くので、一つのファイルデータのアクセス時に変位の大きいシークが発生することを抑止でき、ディスク全域にわたって速度変動の少ないデータ転送が実現される。また、２以上のファイルの同時間帯での読み書き等を、短いシーク時間または小さいシーク量で実現することができる。その結果、消費電力、騒音及び機械的な消耗を抑制することができる。
【００１２】
ここで、書き込み手段における「所定の数のブロック」とは、１以上のブロックある。この場合において、２以上のブロックであれば、それらのブロックは記録媒体上で連続するブロックであってもよいし、連続していなくてもよい。以下、同様である。
【００１３】
本発明の一の形態によれば、前記制御手段は、前記書き込み手段により、前記各バッファから順次出力される前記各ファイルデータのそれぞれ順次書き込まれるエリアが同じエリアとなるように、前記各バッファに蓄積されるデータ量を制御する手段を有する。これにより、ファイルの書き込み時において、大きなシークの発生を抑制することができる。例えば、書き込もうとしている各ファイルの書き込みの開始ブロック（またはエリア）が設定されていない場合、つまりどのブロック（またはエリア）から書き込まれてもよい場合に本発明は有効である。また、本発明を実現するためには、例えば各バッファに蓄積されるデータ量をファイルごとに等しく、あるいは各バッファにデータが蓄積されないように制御すればよい。
【００１４】
例えば本発明のように各ファイルデータが書き込まれた記録媒体から当該各ファイルデータを読み出すときも、読み出し手段は、同一のエリア内で書き込まれた各ファイルデータをエリアごとに読み出していけばよい。これにより、読み出し時の大きなシークの発生を抑制することができる。
【００１５】
本発明の一の形態によれば、前記制御手段は、前記書き込み手段により、同一のエリアに２以上の未使用ブロックが検出されなかった場合、前記各バッファから順次出力される前記各ファイルデータのそれぞれ順次書き込まれるエリア同士が最も近くなるように、前記各バッファに蓄積されるデータ量を制御する手段を有する。これにより、同一のエリアに２以上の未使用ブロックが検出されなかった場合であっても、極力シーク時間及びシーク量を少なくすることができる。ここで「エリア同士が最も近い」とは、例えば隣のエリア同士のことである。
【００１６】
本発明の一の形態によれば、前記バッファは、前記各ファイルのうち第１及び第２のファイルデータをそれぞれ蓄積可能な第１及び第２のバッファで構成され、前記制御手段は、前記書き込み手段により前記第１のファイルデータが書き込まれるときに前記第１のバッファに蓄積される前記第１のファイルデータをゼロに制御する手段と、前記第１のファイルデータが書き込まれている途中に、前記第１及び第２の情報に基づき、前記書き込まれている第１のファイルデータのブロックが属するエリアと、前記書き込み手段により書き込もうとする前記第２のファイルデータの書き込み開始ブロックが属するエリアとが一致するか否かを判断する手段と、前記判断手段により一致すると判断されるまでの間前記第２のファイルデータを前記第２のバッファに所定のブロック数分蓄積させた後、該第２のファイルデータを前記記録媒体に書き込むために該第２のバッファから順次出力させる手段とを有し、前記書き込み手段は、前記第２のバッファから順次出力される前記第２のファイルデータを順次書き込むエリアが、前記第１のファイルデータを順次書き込むエリアと同じエリアになるように該第２のファイルデータを書き込んでいく手段を有する。これにより、第１のファイルデータが書き込まれている途中であっても、シーク時間及びシーク量を少なくしながら第２のファイルデータを書き込むことができる。「第１のバッファに蓄積される第１のファイルデータをゼロに制御する」とは、第１のバッファを介さないという意味である。以下、同様である。
【００１７】
本発明の一の形態によれば、前記バッファは、前記各ファイルのうち第１及び第２のファイルデータをそれぞれ蓄積可能な第１及び第２のバッファで構成され、前記制御手段は、前記読み出し手段により前記第１のファイルデータが読み出されている途中に、前記第１及び第２の情報に基づき、前記読み出されている前記第１のファイルデータのブロックが属するエリアと、前記読み出し手段により読み出そうとする前記第２のファイルデータの読み出し開始ブロックが属するエリアとが一致するか否かを判断する手段と、前記判断手段により一致すると判断されるまでの間前記読み出されている第１のファイルデータを前記第１のバッファに所定のブロック数分蓄積させた後、前記第１のファイルを再生するために前記第１のファイルデータを該第１のバッファから順次出力させる手段とを有し、前記読み出し手段は、前記第２のファイルデータを順次読み出すエリアが、前記第１のファイルデータを順次読み出すエリアと同じエリアになるように該第２のファイルデータを読み出していく手段を有する。これにより、第１のファイルデータの先頭ブロックに当たるデータが第１のバッファから出力されるタイミングと、第２のファイルデータの先頭ブロックに当たるデータが第２のバッファから出力されるタイミングとを同じにすることができる。
【００１８】
あるいは、第１のファイルデータと第２のファイルデータとが記録媒体にばらばらに書き込まれている場合は、制御手段は以下のように制御することができる。つまり、制御手段は、読み出し手段により前記第１のファイルデータが読み出されている途中に、第１及び第２の情報に基づき、読み出されている第１のファイルデータのブロックが属するエリアと、読み出し手段により読み出そうとする第２のファイルデータの読み出し開始ブロックが属するエリアとが一致したときに、そのエリアの第２のファイルデータを読み出して第２のバッファに蓄積する。この動作を当該一致したエリアごとに繰り返していく。そして、制御手段は、第２のバッファに所定量のデータが蓄積されたら順次第２のファイルデータを第２のバッファから出力していけばよい。
【００１９】
本発明の一の形態によれば、前記バッファは、前記各ファイルのうち第１及び第２のファイルデータをそれぞれ蓄積可能な第１及び第２のバッファで構成され、前記制御手段は、前記読み出し手段により前記第１のファイルデータが読み出されるときに前記第１のバッファに蓄積される前記第１のファイルデータをゼロに制御する手段と、前記第１のファイルデータが読み出されている途中に、前記第１及び第２の情報に基づき、前記読み出されている第１のファイルデータのブロックが属するエリアと、前記書き込み手段により書き込もうとする前記第２のファイルデータの書き込み開始ブロックが属するエリアとが一致するか否かを判断する手段と、前記判断手段により一致すると判断されるまでの間前記第２のファイルデータを前記第２のバッファに所定のブロック数分蓄積させた後、該第２のファイルデータを前記記録媒体に書き込むために該第２のバッファから順次出力させる手段とを有し、前記書き込み手段は、前記第２のバッファから順次出力される前記第２のファイルデータを順次書き込むエリアが、前記第１のファイルデータを順次書き込むエリアと同じエリアになるように該第２のファイルデータを書き込んでいく手段を有する。これにより、第１のファイルデータが読み出されている途中であっても、シーク時間及びシーク量を少なくしながら第２のファイルデータを書き込むことができる。
【００２０】
本発明に係る記録再生方法は、通し番号が割り当てられたセクタの単位で記録領域が分割され、かつ、１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして前記記録領域が分割された記録媒体上の、前記エリアごとの未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを対応付けるステップと、ファイルのファイル名と、当該ファイルが前記記録媒体に記録されたときの該ファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号とを対応付けるステップと、前記未使用ブロック数に基づき、前記記録媒体の最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出するステップと、検出した未使用ブロックの先頭のセクタの番号の情報に基づき、前記ファイルのデータを、前記検出した１以上のエリア内の先頭の未使用ブロックに所定の数のブロック分ずつ書き込むステップと、前記記録媒体から読み出そうとするファイルの記録領域を構成する全てのブロックに属する先頭のセクタの番号を前記第２の情報より取得するステップと、前記取得した情報に基づき当該記録媒体から該当するファイルデータを読み出すステップと、前記書き込もうとする複数のファイルのデータ、前記読み出そうとする複数のファイルのデータ、または、読み書きしようとする複数のファイルのデータを当該ファイルごとに設けられた複数のバッファに一時的にそれぞれ蓄積するステップと、前記各ファイルデータの少なくとも一部を同じ時間帯にそれぞれ書き込み、読み出し、または、書き込み及び読み出しの両方を実行できるように、前記第１及び第２の情報に基づき前記各バッファに蓄積されるデータ量を制御するステップとを具備する。
【発明の効果】
【００２１】
以上のように、本発明によれば、ファイルの読み書き、消去等のファイル操作時に変位の大きいシークの発生を抑止し、ディスク全域にわたって速度変動の少ないデータ転送を実現することができる。また、複数のファイルの同時間帯での読み書き等を、短いシーク時間または小さいシーク量で実現することができる。
【００２２】
結果として、従来装置と比較して本発明による記録再生装置は、より多くのファイルの同時間帯での読み書きを可能とする。
【００２３】
さらに、上記の短いシーク時間または小さいシーク量の実現により、ヘッドのメカニカルな移動を減少させる事から、消費電力の減少、動作音の抑制（騒音の減少）、機械的磨耗の減少（ディスク装置の長寿命化）等の効果が得られる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態を図面に基づき説明する。
【００２５】
図１に、本発明の一実施の形態に係る記録再生装置に搭載されたディスクの記録領域の論理的な分割構造を示す。
【００２６】
同図において、全記録領域１は、ディスクにおいてユーザデータを記録することの可能な全体領域である。一般的なハードディスクドライブの場合、全記録領域１は、符号２に示す５１２バイト長のセクタと呼ばれる単位で分割されており、これらのセクタ２はＬＢＡ（Logical Block Address)と呼ばれる通し番号によって管理されている。図１において、ＬＢＡ 0はディスク最外周の先頭のセクタ、ＬＢＡ L-1はディスク最内周の最後のセクタである。
【００２７】
ユーザデータが記録される全記録領域１において、Ｎ個の連続するセクタのまとまりをここではブロック（Ｂｌｏｃｋ）３と呼ぶ。Ｎの値は１以上の予め定められた定数である。Ｎの値は記録されるユーザデータのサイズを考慮して決めることができる。動画や音声のような比較的大容量のデータが記録される製品に利用される場合にはＮの値を大き目にとればよい。なお、図１の例ではＮの値は３としている。
【００２８】
図２に示すように、このブロック３はさらに連続するＰ個単位にまとめられてグループ化されている。このグループをエリア（Ａｒｅａ）４と呼ぶことにする。Ｐの値は２以上の予め定められた定数である。なお、図２の例ではＰの値は３である。
【００２９】
各エリア４に対してそれぞれ、未使用ブロック管理テーブル５が用意されている。未使用のブロックとはデータが未記録のブロックである。この未使用ブロック管理テーブル５は、全記録領域１において特定のブロックにまとめてあるいは複数のブロックに分割して記録されている。図３にこの未使用ブロック管理テーブル５の構成を示す。この未使用ブロック管理テーブル５はエリア４内の未使用ブロック３の先頭ＬＢＡ（未使用のブロックに属する先頭のセクタのＬＢＡ）を管理する未使用ブロックリスト６と、自エリア４内の未使用ブロックの数を管理するカウンタ７とを有する。
【００３０】
ファイルはファイル管理テーブルによって管理される。図４にこのファイル管理テーブル８の構成を示す。このファイル管理テーブル８は、未使用ブロック管理テーブル５と同様、全記録領域１において特定のブロックにまとめてあるいは複数のブロックに分割して記録されている。ファイル管理テーブル８はファイル名９とそのファイルを構成する全てのブロック３の先頭ＬＢＡの番号１０とで構成される。
【００３１】
次に、以上のように全記録領域１がブロック３及びエリア４の単位で分割されたディスクに対してファイル操作等の各種操作を行う手順を説明する。
【００３２】
図５及び図６に未使用ブロック管理テーブル５の変更の例を、図７にファイル管理テーブル８の変更の例を示す。
【００３３】
まず、初期化の手順を説明する。図８にこの初期化手順の流れを示す。
【００３４】
各エリアの未使用ブロック管理テーブル５を作成する。このとき全てのエリアの未使用ブロック管理テーブル５の未使用ブロックリスト６に、当該エリアに属する全ブロックの先頭ＬＢＡを格納し（図５の１）、未使用ブロック数を管理するカウンタ７にその全ブロック数の値をセットする。このようにして作成したエリア毎の未使用ブロック管理テーブル５をディスク上の特定のブロックに書き込む（ステップ８０１）。続いて、空のファイル管理テーブル８を作成し、ディスク上の特定のブロックに書き込む（ステップ８０２）。
【００３５】
次に、ファイル書き込み手順を説明する。図９にファイル書き込み手順の流れを示す。
【００３６】
まず、ファイル管理テーブル８に今回書き込もうとしているファイル名９を書き込む（ステップ９０１）。ディスクの最外周より昇順もしくは最内周より降順に、未使用ブロック管理テーブル５のカウンタ７の値を調べて未使用ブロックをもつエリアを検出する（ステップ９０２）。最初に検出したエリアの未使用ブロック管理テーブル５の未使用ブロックリスト６から先頭の未使用ブロックの先頭ＬＢＡを読み出す（ステップ９０３）。そして１ブロック分のファイルデータをステップ９０３で読み出した先頭ＬＢＡに基づいて上記未使用ブロックに書き込む（ステップ９０４）。
【００３７】
ファイルデータを書き込んだエリアの未使用ブロックリスト６から、ステップ９０４で書き込みに使用したブロックの先頭ＬＢＡを削除する。また、同エリアのカウンタ７の値をデクリメントする（ステップ９０５）。続いて、ファイル管理テーブル８にステップ９０５で未使用ブロックリスト６から削除した先頭ＬＢＡをファイル名と対応付けて記入する（ステップ９０６）。
【００３８】
続きのファイルデータが残っているならば（ステップ９０７のＮＯ）ステップ９０２に戻って次のエリアを検出し、ステップ９０３からステップ９０６までの処理を同様に実行する。書き込むファイルデータが終了したなら（ステップ９０７のＹＥＳ）ファイル書き込み手順を終了する。
【００３９】
なお、エリアをディスク最外周より昇順に検出する場合で、もし検出エリアがディスク最内周のエリアであるＭＡＸエリアに達したなら、続いてディスク最内周から降順にエリアの検出を行う。また、エリアをディスク最内周より降順に検出する場合で、もし検出エリアがディスク最外周のエリアであるＭＩＮエリアに達したなら、続いてディスク最外周から昇順にエリアの検出を行う。
【００４０】
図２に示す最初のファイルＡの書き込みを完了した時点の未使用ブロックリスト６の内容を図５の２に、ファイル管理テーブル８の内容を図７の２に示す。この後、続いて図２に示すファイルＢ、ファイルＣ、ファイルＤを追記した後の未使用ブロックリスト６の内容の変化を図５の３、４、５に、ファイル管理テーブル８の内容の変化を図７の３、４、５にそれぞれ示す。
【００４１】
次に、ファイルの読み出し手順を説明する。図１０にファイルの読み出し手順の流れを示す。
【００４２】
まず、ファイル管理テーブル８から、今回読み出そうとしているファイル名を検索する（ステップ１００１）。検索したファイル名に対応してファイル管理テーブル８に登録されている最初のブロックの先頭ＬＢＡを読み出す（ステップ１００２）。読み出した先頭ＬＢＡに基づいてディスクから１ブロック分のファイルデータを読み出す（ステップ１００３）。ファイル管理テーブル８に次のブロックの先頭ＬＢＡがあれば（ステップ１００４のＹＥＳ）、ステップ１００２に戻り、次の１ブロック分のデータを読み出し、ファイル管理テーブル８に次のブロックの先頭ＬＢＡが無ければ（ステップ１００４のＮＯ）、ファイルの読み出し手順を終了する。
【００４３】
次に、ファイルの消去方法を説明する。図１１にファイル消去手順の流れを示す。
【００４４】
まず、ファイル管理テーブル８から今回消去しようとしているファイル名を検索する（ステップ１１０１）。検索したファイル名に対応してファイル管理テーブル８に登録されている全てのブロックの先頭ＬＢＡを読み出し（ステップ１１０２）、これらの先頭ＬＢＡに基づいてディスクから該当する各ブロックのファイルデータを消去する（ステップ１１０３）。
【００４５】
この後、ファイル管理テーブル８から、消去したファイルに対応する全てのブロックの先頭ＬＢＡ番号を消去する（ステップ１１０４）。ここで、ディスク上のデータの消去(ステップ１１０３)は省略することもできる。ステップ１１０４を行うことで該当ブロックは書き込み可能となり、ステップ１１０３を行わなくても次に該当ブロックを使用する時に上書きされ、前のデータは自動的に消去される。続いて、ファイル管理テーブル８から消去した先頭ＬＢＡを、ファイルデータの消去が行われたブロックを含む各エリアそれぞれの未使用ブロック管理テーブル５の未使用ブロックリスト６に追記するとともに、当該未使用ブロック管理テーブル５内のカウンタ７の値を追記したブロック数だけアップする（ステップ１１０５）。
【００４６】
その後、未使用ブロックリスト６をエリアごとにソートする（ステップ１１０６）。但し、ステップ１１０５において、初めから昇順或いは降順に並ぶように未使用ブロックリスト６にブロックの先頭ＬＢＡが追記される場合は、このソートを省略してもよい。
【００４７】
図２に示すファイルＡ、Ｃ、Ｄが順に消去される場合の未使用ブロックリスト６の内容の変化を図６の６、７、８に示し、ファイル管理テーブル８の内容の変化を図７の６、７、８に示す。
【００４８】
図１２に、以上のファイル操作が実行されるディスク装置１００と、ＰＣ等のホスト装置２００の電気的な構成を示す。
【００４９】
ディスク装置１００において、プリアンプ１１は回転するディスク１２から磁気ヘッド１３によって読み出された信号を増幅するリードアンプと、ディスク１２に書き込むデータをライト電流に変換するライトアンプとを有する。リード／ライト信号処理回路１４はディスク１２への書き込むデータの符号化処理及びディスク１２からの読み出しデータの復号化処理等の各種信号処理を行う回路である。ハードディスクコントローラ（ＨＤＣ）１５はホスト装置２００との間でのデータ転送を処理するコントローラである。データバッファ１６は、ディスク１２に対するデータの読み書きの速度とホスト装置２００との間でのデータ転送速度との差を吸収するために転送データを一時的に保持するメモリである。システムコントローラ１７はディスク装置１００全体の動作を制御する。システムコントローラ１７はボイスコイルモータ（ＶＣＭ）１９を駆動するＶＣＭ駆動回路２０にシークやヘッドの位置決めのための制御量を出力したり、スピンドルモータ（ＳＰＭ）２１を駆動するＳＰＭ駆動回路２２に制御信号を供給してディスク１２を所定の回転数で駆動するように制御する。
【００５０】
ホスト装置２００は、ディスク装置１００に対してデータの読み書き、消去のためのコマンドを送って、ディスク装置１００にディスク１２に対するファイル操作を実行させる。コマンドには操作対象のセクタのＬＢＡが含まれている。
【００５１】
ホスト装置２００は、具体的には、ＣＰＵ（Central Processing Unit）３１、システムＲＡＭ（Random Access Memory）３２、システムバス３３、ディスク装置１００とのインタフェース３４を有している。ＣＰＵ３１は、システムＲＡＭ３２に記憶されている、ファイル操作プログラム１８に基づいて上記の初期化手順、書き込み手順、読み出し手順及び消去手順等のファイル操作をディスク装置１００を通して実行する。
【００５２】
また、システムＲＡＭ３２にはテーブル保存部２３が確保され、ここに未使用ブロック管理テーブル５及びファイル管理テーブル８の内容が保存される。ＣＰＵ３１がファイル操作プログラム１８に基づいてファイル操作を行う際には、上記テーブル保存部２３に確保されている未使用ブロック管理テーブル５及びファイル管理テーブル８を参照することによって高速に処理が行われる。
【００５３】
以上説明したディスク装置によれば、ファイルデータが、ディスク全記録領域１を均等に分割する、１以上の連続する各エリアに１ブロック分ずつ書き込まれるので、一つのファイルデータのアクセス時に変位の大きいシークが発生する事態を抑止でき、速度的に安定したデータ転送が実現される。また、シーク回数の低減により、省電力、シーク動作音による騒音低減、ディスク装置１００そのものの長寿命化といった効果が得られる。
【００５４】
図１２に示したホスト装置２００と、ディスク装置１００とが一体化された機器であっても本発明を当該機器に適用可能である。この場合、当該機器は、例えば放送される動画ストリームを記録再生可能なハードディスクレコーダである。
【００５５】
ところで、ディスク装置１００ではディスク１２に対するデータの読み書きの速度がディスク１２の外周側と内周側とで線速度の差の分だけ異なる。そこで、図１２に示したように、ホスト装置２００に上記ディスク内外周での読み書きの速度の差を吸収可能なサイズのリードライト用のバッファ２４を設けることによって、見かけ上の読み書きの速度をより一定にすることが可能になる。
【００５６】
また、ホスト装置２００では、ファイルの書き込み、読み出し、消去等のファイル操作命令が発生する以前に、ディスク１２に記録されている未使用ブロック管理テーブル５及びファイル管理テーブル８の内容がシステムＲＡＭ３２に読み出され、実際にファイル操作命令が発生した場合にはシステムＲＡＭ３２から未使用ブロック管理テーブル５及びファイル管理テーブル８の内容を参照してファイル操作のための手順が実行される。そしてファイル操作の完了に対応してシステムＲＡＭ３２内の未使用ブロック管理テーブル５及びファイル管理テーブル８の内容が更新され、その更新内容がディスク１２に書き戻される。これによってディスク１２に記録されている未使用ブロック管理テーブル５及びファイル管理テーブル８をファイル操作の都度読み出す場合に比べ、高速にファイル操作命令を実行することができる。
【００５７】
次に、ファイルアクセス速度を重視した第２のファイル書き込み手順について説明する。この第２のファイル書き込み手順は、シーク発生を抑制して読み書き速度変動を抑制できる前述のファイル書き込み手順との間で切り替えて実行させることができる。
【００５８】
以下に、このファイルアクセス速度を重視した第２のファイル書き込み手順を説明する。図１３にこの第２のファイル書き込み手順の流れを示す。
【００５９】
まず、ファイル管理テーブル８に今回書き込もうとしているファイル名９を書き込む（ステップ１３０１）。ディスクの最外周より昇順もしくは最内周より降順に、未使用ブロック管理テーブル５のカウンタ７の値を調べて未使用ブロックをもつエリアを検出する（ステップ１３０２）。最初に検出したエリアの未使用ブロック管理テーブル５の未使用ブロックリスト６から先頭の未使用ブロックの先頭ＬＢＡを読み出す（ステップ１３０３）。そして１ブロック分のファイルデータをステップ１３０３で読み出した先頭ＬＢＡに基づいて上記未使用ブロックに書き込む（ステップ１３０４）。
【００６０】
ファイルデータを書き込んだエリアの未使用ブロックリスト６から、ステップ１３０４で書き込みに使用したブロックの先頭ＬＢＡを削除する。また、同エリアのカウンタ７の値をデクリメントする（ステップ１３０５）。続いて、ファイル管理テーブル８にステップ１３０５で未使用ブロックリスト６から削除した先頭ＬＢＡをファイル名と対応付けて記入する（ステップ１３０６）。
【００６１】
続きのファイルデータが残っているならば（ステップ１３０７のＮＯ）、同じエリアに次の未使用ブロックが有るかどうかを調べ（ステップ１３０８）、次の未使用ブロックが有れば、ステップ１３０３に戻り、同じエリアに次の未使用ブロックに次の１ブロック分のファイルデータを書き込む。同じエリアに次の未使用ブロックが無ければステップ１３０２に戻って、未使用ブロックをもつ次のエリアの検出を行い、ステップ１３０３からステップ１３０６までの処理を同様に実行する。書き込むファイルデータが終了したなら（ステップ１３０７のＹＥＳ）、第２のファイル書き込み手順を終了する。
【００６２】
このようにして第２のファイル書き込み手順によれば、一つのファイルデータが一つのエリアあるいは連続する複数のエリアに集中して配置される。したがって、高速なファイルアクセスが可能になる。
【００６３】
次に、ファイル書き込み時に、未使用ブロックを含むエリアをディスク１２の外周側から昇順に検出するか、内周側から降順に検出するかをライト用のデータバッファ１６のバッファリング量に基づいて最適に切り替える制御手順を説明する。図１４に、この制御手順の流れを示す。
【００６４】
ディスク１２の外周側は内周側よりも読み書き速度が高いので、バッファリング量がある値以上に大きい場合には（ステップ１４０１のＹＥＳ）、ディスク外周側より未使用ブロックを含むエリアの検出を行い（ステップ１４０２）、バッファリング量がある値未満の場合にはディスク内周側より未使用ブロックを含むエリアの検出を行う（ステップ１４０３）。これによりバッファオーバフローによりホスト装置がデータ転送を待たされる確率を低減することができ、書き込み速度を向上させることができる。
【００６５】
さらに、制御プログラム１８は、未使用ブロックリスト６の断片の度合いを測定して、断片の度合いが閾値に達したときに自動的にソーティングを行う手順を含むものであってよい。
【００６６】
図１５は、以上説明した第１の書き込み手順（図９参照）または第２の書き込み手順（図１３参照）により書き込まれたときに、２つのファイルＸ及びファイルＹを順に読み出すときの動作を示すグラフである。このグラフの横軸は時間経過を表し、縦軸はディスク１２上のエリア番号（０，１，２，３，４，５，Ａ−１）を表している。この例では、例えば、Ｔ＝０のスタート時間から、時間の経過と共にＴは１，２，３，４とインクリメントしていく。Ｔの単位は特に限定されないが例えば「分」でよい。グラフ上、太くて短い一定長の水平の線は、ブロックの読み出しの動作を示しており、細くて長さの一定しない傾きのある線は、シーク動作を示している。グラフの始めは、エリア０から始まるファイルＸの読み出しを示している。次に、エリア１へのシークがある。次は、エリア１のブロックデータの読み出し後、エリア２へのシークがある。ファイルＸのブロックデータが全て読み出されるまでこの操作が繰り返される。
【００６７】
ファイルＸの読み出しが終了すると、ファイルＹの読み出しに移行する。この例では、ファイルＹの読み出しの開始ブロックは例えばエリア５に属する。この場合、まずファイルＸが終了したエリア１から、ファイルＹの開始ブロックの存在するエリア５に向かって、大きなシーク３５が入る。その後、ブロックデータの読み出しと、次のエリアへのシークの組み合わせが連続して、ファイルＹが読み出される事になる。
【００６８】
図１６は、図１５に示すように書き込まれたファイルＸ及びＹを同時に読み出すときの動作を示すグラフである。ここでいう「同時」とは、ファイルＸ及びＹのそれぞれの少なくとも一部のデータが同じ時間帯あるいはタイムシェアリング的に読み出されることである。そして例えばファイルＸ及びＹが読み出されて再生されるときに、ユーザ側からはあたかも同時にファイルＸ及びＹが再生されるような状態をいう。以下、同時書き込み、同時読み書きについても同様である。
【００６９】
図１６に示すように、ファイルＸ及びＹを同時に読み出す場合、ファイルＸの開始ブロック（ファイルＸを構成する最初のデータのブロック）をエリア０から読み出し、ファイルＹの開始ブロック（ファイルＹを構成する最初のデータのブロック）のあるエリア５にシークする。エリア５でファイルＹの当該開始ブロックを読み出した後、ファイルＸの次のブロックがあるエリア１へシークする。エリア１でファイルＸの次ブロックを読み出し、ファイルＹの次ブロックがあるエリアにシークする。これらの動作を繰り返す。
【００７０】
ファイルＸとファイルＹのブロックが存在するエリアに依存するが、この例では、より大きなシークが発生し、シークに長い時間が取られていることがわかる。また、時間０から時間Ｔまでの間に、ブロックの数では１６ブロックしか読めていない。これに対し、図１５に示す例では、読み込みブロック数は２６となり、同一時間内でのブロック読み出し数に大きな違いが現れる。なお、シークの線の傾き、つまり、磁気ヘッド１３（図１２参照）が記録媒体上を移動する速度は図１５及び図１６でほぼ同じとした。
【００７１】
このようにファイルＸ及びＹを同時読み出しする場合に大きなシークが発生することを抑制するために、本実施の形態に係るシステムについて説明する。
【００７２】
図１７は、かかるシステムを実現するためのディスク記録再生装置の構成を示すブロック図である。図１７において、図１２に示す要素と同一の機能を有する要素については同一の符号を付し、その説明を省略する。
【００７３】
本実施の形態に係る記録再生装置５０には、ＦＩＦＯ（First In First Out）４０と、このＦＩＦＯ４０に蓄積されるデータ量を制御するバッファコントローラ４５とが備えられている。図１８に示すように、システムコントローラ１７は、同時間帯に読み書き等される例えば３つのファイルＸ、Ｙ、Ｚに応じて、ＦＩＦＯ４０にＦＩＦＯ Ｘ、ＦＩＦＯ Ｙ、ＦＩＦＯ Ｚのデータの格納領域を設定する。このＦＩＦＯ４０の機能を図１２に示したリードライトバッファ２４内に持つようにすることも可能である。
【００７４】
次に、記録再生装置５０によりファイルＸ及びＹを同時に書き込む場合の動作について説明する。図１９は、その動作を示すフローチャートである。図２０は、その動作時における、時間経過と読み出しエリアを示すグラフである。
【００７５】
最初に例えばシステムコントローラ１７がファイルＸの書き込みコマンドを発行すると（または、図１２に示すようなホスト装置２００から書き込みコマンドを受信すると（以下同様）、）ファイルＸのデータをディスク１２に書き込んでいく（ステップ１９０１）。この場合、図２０に示すように、例えば図９に示した第１のファイル書き込み手順または図１３に示す第２のファイル書き込み手順に従って、ファイルＸの書き込み開始ブロック（Ｘ−１）をエリア０に書き込み、順次エリア１ごとに所定のブロックに順次書き込んでいく。また、このときバッファコントローラ４５の制御の下、ＦＩＦＯ ＸにはファイルＸのデータを蓄積せずに書き込んでいく。この動作は、システムコントローラ１７がファイルＹの書き込みコマンドを発行するまで続けられる。
【００７６】
システムコントローラ１７がファイルＹの書き込みコマンドを発行すると（ステップ１９０２のＹＥＳ）、バッファコントローラ４５はファイルＹのデータをＦＩＦＯ Ｙに蓄積するように制御する（ステップ１９０３）。この場合も、上記第１または第２のファイル書き込み手順に従ってファイルを書き込むようにＦＩＦＯ Ｙに蓄積されていく。バッファコントローラ４５は、ファイルＸのデータの現在書き込まれているブロック（Ｘ−５）が属するエリアと、これから書き込もうとするファイルＹのデータの書き込み開始ブロック（Ｙ−１）が属するエリアとが一致するまで、ファイルＹのデータを順次ＦＩＦＯ Ｙに蓄積する（ステップ１９０４のＮＯ）。当該エリアが一致すると（ステップ１９０４のＹＥＳ）、バッファコントローラ４５は、ＦＩＦＯ Ｙからこれまで蓄積されたファイルＹのデータを順次出力し、これにより、図２０に示すようにエリア５からファイルＹが書き込まれていく（ステップ１９０５）。この場合、システムコントローラ１７は、ＦＩＦＯ Ｙから順次出力されるファイルＹのデータを書き込むエリアが、ファイルＸのデータを順次書き込むエリアと同じエリアとなるようにファイルＹを書き込んでいく。
【００７７】
図２１は、３つのファイルＸ、Ｙ及びＺを同時に書き込むときの時間経過と読み出しエリアを示すグラフである。このように３つの場合も、上述した２つのファイルを書き込む手順と同様である。具体的には、バッファコントローラ４５は、ファイルＹのデータの現在書き込まれているブロック（Ｙ−６）が属するエリアと、これから書き込もうとするファイルＺのデータの書き込み開始ブロック（Ｚ−１）が属するエリアとが一致するまで、ファイルＺのデータを順次ＦＩＦＯ Ｚに蓄積する。そして、当該エリアが一致すると、バッファコントローラ４５は、ＦＩＦＯ Ｚからこれまで蓄積されたファイルＺのデータを順次出力し、図２１に示すようにエリア２からファイルＺのデータが書き込まれていく。
【００７８】
つまり、本実施の形態では、先に書き込まれているファイルのデータが書き込まれるブロックが属するエリアに合わせて、後に書き込まれるファイルデータを書き込んでいくようにしている。このような動作により、あるファイルが書き込まれている途中であっても、シーク時間及びシーク量を少なくしながら別のファイルを書き込むことができる。
【００７９】
次に、図２０に示したように記録されたファイルＸ及びＹを同時に読み出すときの動作について説明する。図２２は、その動作を示すフローチャートである。
【００８０】
最初に例えばシステムコントローラ１７がファイルＸの読み出しコマンドを発行すると（または、ホスト装置１００から当該読み出しコマンドを受信すると（以下同様））、ファイルＸのデータはディスク１２に書き込まれたデータをブロックごとに、さらにはエリアごとに読み出していく（ステップ２２０１）。バッファコントローラ４５は、読み出されたファイルＸのデータをＦＩＦＯ Ｘに順次蓄積するように制御する（ステップ２２０２）。
【００８１】
システムコントローラ１７がファイルＹの読み出しコマンドを発行する（ステップ２２０３のＹＥＳ）。そうすると、バッファコントローラ４５は、現在順次読み出されているファイルＸのデータのブロックが属するエリアが、ファイルＹの読み出し開始ブロックが属するエリアと一致するまで、ファイルＸのデータのＦＩＦＯ Ｘへの蓄積を続ける（ステップ２２０４）。当該エリアが一致すると（ステップ２２０４のＹＥＳ）、バッファコントローラ４５は、これまで蓄積してきたファイルＸのデータを順次出力するとともに、システムコントローラ１７は、ファイルＹのデータを読み出すエリアが、ファイルＸのデータを順次読み出すエリアと同じエリアとなるように、しかもＦＩＦＯ ＹにはファイルＹのデータを蓄積しないでファイルＹを順次読み出していく（ステップ２２０５）。
【００８２】
つまり、本実施の形態によれば、先に読み出したファイルＸのデータをＦＩＦＯ Ｘに蓄積しておき、エリアが一致したところで、両ファイルＸ及びＹをほぼ同時に出力するようにしている。すなわち、ファイルＸのデータの先頭ブロックに当たるデータがＦＩＦＯ Ｘから出力されるタイミングと、ファイルＹのデータの先頭ブロックに当たるデータがＦＩＦＯ Ｙから出力されるタイミングとを同じにすることができる。具体的には、ファイルＸ及びＹが例えば動画ストリームのファイルの場合であって、例えば２人のユーザがそれぞれ個別のディスプレイでそれぞれファイルＸとファイルＹとを視聴する場合に、各ディスプレイで動画ストリームが開始されるタイミングをほぼ同時にすることができる。
【００８３】
図１６に示した例では、時間０からＴまでの間に、ブロックの数１６個分しかデータを読めていない。しかし、本実施の形態によれば、図２０に示したように記録されたデータを読み出す場合、同じ時間内で３３ブロック分のデータが読み出され、同一時間内でのブロック読み出し数が大きく改善されていることがわかる。
【００８４】
記録再生装置５０が図２２に示すように動作する場合、ステップ２２０１でファイルＸの読み出しコマンドが発行されてから、上記エリアが一致するタイミングまで、ファイルＸが例えばディスプレイ等に出力されるまで待たなければならない。しかし、例えばディスクの製造時において、ブロックごとの記録できるデータ量を適宜調整すれば、そのような待ち時間も少なくすることができる。あるいはユーザのカスタマイズ等によりブロックごとの記録できる当該データ量を可変としてもよい。
【００８５】
以上のように２つのファイルＸ及びＹを読み出す場合、記録再生装置５０は図２３に示すような動作で読み出してもよい。最初に、例えばシステムコントローラ１７がファイルＸの読み出しコマンドを発行すると、ファイルＸのデータはディスク１２に書き込まれたデータをブロックごとに、さらにはエリアごとに読み出していく（ステップ２３０１）。この場合、図１０に示したファイル読み出し手順に従って、エリアごとにファイルＸを読み出していく。このとき、バッファコントローラ４５の制御の下、ＦＩＦＯ ＸにはファイルＸのデータを蓄積せずに読み出していく。システムコントローラ１７は、ファイルＹの読み出しコマンドを発行すると（ステップ２３０２のＹＥＳ）、ファイルＹのデータを順次読み出すエリアが、ファイルＸのデータを順次読み出すエリアと同じエリアになるようにファイルＹのデータを順次読み出していく（ステップ２３０３）。このとき、バッファコントローラ４５はＦＩＦＯ ＹにファイルＹのデータを蓄積しない。
【００８６】
記録再生装置５０が図２３に示すように動作する場合、ステップ２３０２でファイルＹの読み出しコマンドが発行されてから、上記エリアが一致するタイミングまで、ファイルＹが例えばディスプレイ等により出力されるまで待たねばならない。しかし、ディスクの製造時において、ブロックごとの記録できるデータ量を適宜調整すれば、そのような待ち時間も少なくすることができる。あるいはユーザのカスタマイズ等によりブロックごとの記録できる当該データ量を可変としてもよい。
【００８７】
次に、ファイルＸのデータが読み出されている途中でファイルＹを書き込む場合について説明する。この場合も、上述した同時書き込み、同時読み込みと同様な動作を行えばよい。具体的には、バッファコントローラ４５は、最初のファイルＸのデータが読み出されるときにはＦＩＦＯ Ｘに蓄積しない。そしてバッファコントローラ４５は、読み出されているファイルＸのデータのブロックが属するエリアと、書き込もうとするファイルＹのデータの書き込み開始ブロックが属するエリアとが一致するまで、ファイルＹのデータをＦＩＦＯ Ｙに蓄積させる。当該エリアが一致すると、ファイルＹのデータをＦＩＦＯ Ｙから出力させる。そしてシステムコントローラ１７は、ＦＩＦＯ Ｙから順次出力されるファイルＹのデータを順次書き込むエリアが、ファイルＸのデータを順次書き込むエリアと同じエリアになるようにファイルＹのデータを書き込んでいく。これにより、ファイルＸのデータが読み出されている途中であっても、シーク時間及びシーク量を少なくしながらファイルＹのデータを書き込むことができる。
【００８８】
本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。
【００８９】
図２０に示した実施の形態では、ファイルＸの書き込み途中でファイルＹを書き込む例を示した。しかし、ファイルＸとファイルＹとをほぼ同時に書き込み始める場合、あるいはファイルＸとファイルＹとをほぼ同時に読み出し始める場合にも本発明は適用可能である。
【００９０】
図１７以降の図を用いて説明した各実施の形態では、同一のエリアに２以上の未使用ブロックが存在することを前提とした。しかし、２以上の未使用ブロックが検出されなかった場合、各ＦＩＦＯから順次出力される各ファイルデータのそれぞれ順次書き込まれるエリア同士が最も近くなるように、各ＦＩＦＯに蓄積されるデータ量を制御すればよい。これにより、同一のエリアに２以上の未使用ブロックが検出されなかった場合であっても、極力シーク時間及びシーク量を少なくすることができる。この手法は、ディスク１２の全ての記録領域（全てのエリア）において２以上の未使用ブロックが検出されなかった場合に適用可能である。
【００９１】
また、全てのエリアでなくとも例えば数個のエリア内に着目し、それら数個のエリア内おいて、同一のエリアに２以上の未使用ブロックが存在しなかった場合にも、当該数個のエリア内で上記手法を適用可能である。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態に係るディスク装置のディスク記録領域の論理的な分割構造を示す図である。
【図２】図１に示す記録領域の論理的な分割構造とファイルデータとの関係を示す図である。
【図３】未使用ブロック管理テーブルの構成を示す図である。
【図４】ファイル管理テーブルの構成を示す図である。
【図５】未使用ブロック管理テーブルの変更の例を示す図である。
【図６】図５に続く未使用ブロック管理テーブルの変更の例を示す図である。
【図７】ファイル管理テーブルの変更の例を示す図である。
【図８】ファイル操作のための初期化手順の流れを示すフローチャートである。
【図９】ファイル書き込み手順の流れを示すフローチャートである。
【図１０】ファイルの読み出し手順の流れを示すフローチャートである。
【図１１】ファイル消去手順の流れを示すフローチャートである。
【図１２】本発明の一実施形態であるディスク装置とホスト装置の電気的な構成を示すブロック図である。
【図１３】第２のファイル書き込み手順の流れを示すフローチャートである。
【図１４】バッファリング量に基づくエリア検出のための制御手順を示すフローチャートである。
【図１５】ファイルの書き込み手順により書き込まれたときに、２つのファイルＸ及びＹを順に読み出すときの時間経過と読み出しエリアを示すグラフである。
【図１６】書き込まれた２つのファイルを同時に読み出すときの時間経過と読み出しエリアを示すグラフである。
【図１７】２つのファイルを同時読み出しする場合に大きなシークが発生することを抑制することが可能なディスク記録再生装置の構成を示すブロック図である。
【図１８】同時間帯に読み書き等されるファイルに応じて、複数のＦＩＦＯが設定される状態を示すブロック図である。
【図１９】２つのファイルを同時に書き込む場合の動作をフローチャートである。
【図２０】図１９に示す動作時における、時間経過と読み出しエリアを示すグラフである。
【図２１】３つのファイルを同時に書き込むときの時間経過と読み出しエリアを示すグラフである。
【図２２】図２０に示したように記録された２つのファイルを同時に読み出すときの動作を示すフローチャートである。
【図２３】２つのファイルを同時に読み出すときの他の動作を示すフローチャートである。
【符号の説明】
【００９３】
１      全記録領域
２      セクタ
３      ブロック
４      エリア
５      使用ブロック管理テーブル
６      未使用ブロックリスト
７      カウンタ
８      ファイル管理テーブル
１２      ディスク
１８      ファイル操作プログラム
２３      テーブル保存部
２４      リードライト用のバッファ
３１      ＣＰＵ
３２      システムＲＡＭ
４０      ＦＩＦＯ
４５      バッファコントローラ
５０      …記録再生装置
１００      ディスク装置
２００      ホスト装置
【図１】
2005322283.tif 000003
【図２】
2005322283.tif 000004
【図３】
2005322283.tif 000005
【図４】
2005322283.tif 000006
【図５】
2005322283.tif 000007
【図６】
2005322283.tif 000008
【図７】
2005322283.tif 000009
【図８】
2005322283.tif 000010
【図９】
2005322283.tif 000011
【図１０】
2005322283.tif 000012
【図１１】
2005322283.tif 000013
【図１２】
2005322283.tif 000014
【図１３】
2005322283.tif 000015
【図１４】
2005322283.tif 000016
【図１５】
2005322283.tif 000017
【図１６】
2005322283.tif 000018
【図１７】
2005322283.tif 000019
【図１８】
2005322283.tif 000020
【図１９】
2005322283.tif 000021
【図２０】
2005322283.tif 000022
【図２１】
2005322283.tif 000023
【図２２】
2005322283.tif 000024
【図２３】
2005322283.tif 000025