JP3702147B2 - ファイル管理装置および方法 - Google Patents
ファイル管理装置および方法 Download PDFInfo
- Publication number
- JP3702147B2 JP3702147B2 JP2000154756A JP2000154756A JP3702147B2 JP 3702147 B2 JP3702147 B2 JP 3702147B2 JP 2000154756 A JP2000154756 A JP 2000154756A JP 2000154756 A JP2000154756 A JP 2000154756A JP 3702147 B2 JP3702147 B2 JP 3702147B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- unused
- file management
- area
- data
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
【発明の属する技術分野】
本発明は、ファイル管理装置および方法に関し、特に、MPEG(Moving Picture Experts Group)2トランスポートストリームのように、デジタル映像データやデジタル音声データといった、大容量で読出および書込にリアルタイム性が要求されるようなデータを入出力可能なファイル管理装置および方法に関する。
【0002】
【従来の技術】
近年、MPEG1、MPEG2等のデジタル圧縮技術の標準化が進み、また、高性能なCPU(Central Processing Unit)、メモリおよびデータ蓄積媒体などが低価格で入手できるようになってきている。よって、映像データや音声データをデジタル化して蓄積し、大容量のデジタルデータを処理するマルチメディア機器が数多く商品化されてきている。
【0003】
このようなデジタル化された映像データや音声データを記録媒体に書込んだり、記録媒体から読出したりする際には、コンピュータでデータを読み書きするのと同様に、ファイルシステムと呼ばれるファイル管理装置がブロックのアロケート、未使用ブロックの管理およびデータの一覧情報の管理等を行なっている。
【0004】
ファイルシステムでは、記録媒体のデータ領域をある定められたサイズのブロックに分割し、各ブロックが使用状況を管理するためのブロック管理テーブルを持つ。ブロックの大きさは、一般的なコンピュータの場合、512バイトや2Kバイトに設定されている。
【0005】
これらのブロックを単位に、記録媒体に対して記録再生を行なう際、記録媒体上のセクタと称する単位を元に記録再生が行なわれる。セクタは、記録媒体毎に定められた固定長の記録再生の単位であり、ハードディスクの場合は、512バイトであることが多い。このセクタへのアクセスは、物理的なセクタに対応する番号に基づき行なわれる。ハードディスクでは、データの記録再生を行なう開始位置となるセクタの番号とセクタ数とを指定することによって、記録媒体上でデータが連続している限り、連続的にデータの転送を行なうことができる。
【0006】
ただし、ファイルシステムでは、ブロック単位で領域の確保を行なうため、ファイルの作成、削除を繰り返すうちに、その領域が断片化される。このため、記録媒体上で連続した領域を確保できず、その結果、連続的にデータを転送できなくなってしまう。
【0007】
ハードディスクなどの円盤状の記録媒体では、連続的にデータの転送が行なわれない場合には、ディスクのヘッドを目的のセクタが含まれるシリンダ位置へ移動させるためのシーク時間と、目的のセクタがヘッド位置まで回転してくるまでの回転待ち時間とがオーバーヘッドとなり、そのパフォーマンスが低下する。たとえば、回転速度が11.1msec、シーク時間が17.8msec、1回転当たりのセクタ数が400セクタのハードディスクを想定する。また、1セクタ当りのデータ量を512[Byte]とする。実際には、トラックが変化するときのヘッドスイッチのための処理時間や、隣のシリンダに移るためのシリンダ間シーク時間等が関係するが、ここではそれらの時間を0と仮定する。
【0008】
たとえば、連続的に400セクタ毎にディスクアクセスする場合は、17.8[msec]+11.1[msec]+11.1[msec]=40.0[msec]の間に、400×512[Byte]=200KByteのデータを処理することになる。このため、4.88[MByte/sec]の処理能力となる。これに対し、連続的に2000セクタ毎にディスクアクセスする場合は、17.8[msec]+11.1[msec]+11.1[msec]×2000/400=84.4[msec]の間に、2000×512=0.976MByteのデータを処理することになる。このため、11.5[MByte/sec]の処理能力になる。
【0009】
このため、ファイルシステムではディスクのパフォーマンスが低下しないように、いくつかのセクタを連続的にアクセスするようにデータを配置することが必要となる。このためには、ディスクへのアクセスの単位となる論理ブロックと呼ばれる大きさを取り決め、データの連続性を保証したディスクの空き領域の管理が必要となる。この論理ブロックの取扱いと空き領域の管理手法として、いくつかの従来技術が提案されている。
【0010】
特開平11−96052号公報では、記録領域を複数に分割し、分割後の記録領域毎に空き領域を管理するファイル管理装置が提案されている。この装置では、データを記録領域に記録している最中に空き領域がなくなった場合には、隣接する空き領域を用いてデータの記録を続行する。図25を参照して、この装置では、記録領域をディスク円盤の同心円と同心円に直交する直線とで分割することで、領域が不連続となる箇所で発生するシークを隣の記憶領域内に抑えることができる。このため、ヘッドのシーク時間を抑えることができる。
【0011】
特開平11−250585号公報では、記録媒体上の領域を複数に分割可能な領域とし、各分割領域に対して、記録開始セクタから順次データを記憶し、再び記録開始セクタからオーバライトして記録するいわゆるリングストレージ構造として記録再生を行なうことにより、セクタの連続性を確保している。このため、各分割エリア内では、記録されたデータの連続性が保証される。
【0012】
【発明が解決しようとする課題】
しかし、特開平11−250585号公報では、録画して保存しておきたい番組が複数存在するような場合には、あらかじめ記録領域を分割しておくか、1つの記録領域に追加記録する必要がある。あらかじめ領域を分割する場合は、1領域あたりの最大録画時間に上限を設けることになる。これでは、録画したいデータが領域の最大録画時間を超えた場合に録画できない。また、1つの領域に追加記録する場合においては、1つの領域内に記憶された複数の番組のうち、特定の番組のみを削除することができない。
【0013】
また、上述した従来のファイルシステムでは、同時に複数のファイルを扱うことが考慮されていない。これは、ある番組を記録しながら既に記録した別の記録データを再生したり、番組を記録しながら再生するいわゆる追っかけ再生や、複数の番組データを同時に記録するといった場合などであり、複数のファイルを扱う場合においては、1つのファイルを連続的に配置したとしても、別のデータのアクセスにスイッチするために、データアクセスの連続性は失われる。
【0014】
ただし、一方で、1つのファイルの連続性を確保した場合は、ファイル作成、削除等の処理負荷が軽減されたり、ファイルを管理するための容量が少なくてすむというメリットや、1つのファイルを扱う場合は記録媒体のパフォーマンスが高いというメリットもある。
【0015】
従って、一つのファイルの連続性をある程度確保しながら、複数のファイルを同時にアクセスしても記録媒体のパフォーマンスを保証することができる、ファイル管理方法が重要となる。
【0016】
また、ハードディスクではデータを記録再生する際に、欠陥セクタを検出した場合には、別の領域に用意されたセクタと交換する処理を行なう。これは交替処理と呼ばれる。この交替処理は内部的に処理されるため、ファイルシステムなど記録媒体の外部からは、そのセクタが交替されたものかどうかを意識する必要がない。
【0017】
ただし、この交替処理は、2つの点で問題がある。1つは、交替処理にかかる時間であり、もう一つは、交代処理の結果、記録媒体のパフォーマンスが低下するということである。交替処理にかかる時間は、数百ミリ〜1秒であり、その間、外部からディスクへのアクセスはできなくなる。ファイルシステム内、またはファイルシステムを操作するプログラム上にバッファを設けることにより、交替処理の負荷を吸収することはできるが、デジタル放送のように高いビットレートで、データがリアルタイム伝送される場合においては、その容量は大きいものとなる。24Mbpsのように高ビットレートのデータを1つ扱うのであれば、交替処理が発生したときのために、3MByteのバッファを追加する必要がある。追っかけ再生のように、同時に記録再生を行なう場合は、6MByteのバッファを追加しなければならない。
【0018】
また、この交替処理の結果、セクタの配置が不連続になってしまい、次回、交替処理を含む領域のデータの記録再生を行なう場合、ヘッドを交替領域に動かすシーク時間と、シーク後の回転待ち時間、さらに後続するセクタを記録再生するための元の領域に戻るためのシーク時間と回転待ち時間とが発生する。このため、連続的に配置されたセクタをアクセスする場合と比べて、そのパフォーマンスが低下し、ストリームデータをリアルタイムで処理することができなくなる。また、この交替処理は、確率的に発生するため、連続的に記録しなければならない最小単位内で、複数の欠陥セクタが発生した場合は、交替処理回数に比例してシーク時間と回転待ち時間が増大するために、パフォーマンスは更に低下することになる。
【0019】
これに対して特開平11−250592号公報では、交替処理を記録媒体の内部処理として行なうのではなく、ファイルシステム上で欠陥を有するセクタの管理を行ない、欠陥を有するセクタが存在する場合は、時間的に連続した次のセクタに記録を行なう方法が提案されている。この方法では、セクタが不連続となっても、ヘッドを交替領域に動かすシーク時間が必要ないために、パフォーマンスがそれほど低下しないというメリットがある。
【0020】
ただし、次のセクタが必ずしも空き領域となっているとは限らず、複数のデータを記録しておきたい場合には、この方法は役に立たない。
【0021】
本発明は上述の課題を解決するためになされたもので、その目的は、デジタル映像音声データのように大容量のデータの読出および書込をリアルタイムで実行可能なファイル記録装置および方法を提供することである。
【0022】
本発明の他の目的は、記録媒体のパフォーマンスを低下させることなく交替処理を実行可能なファイル管理装置および方法を提供することである。
【0023】
本発明のさらに他の目的は、領域の断片化を低減することができるファイル管理装置および方法を提供することである。
【0024】
【課題を解決するための手段】
本発明のある局面に従うファイル管理装置は、各々、連続配置が保証され、かつ要求されるアクセス速度を上回ることが保証されている複数の論理ブロックに区切られた記録媒体と、記録媒体に記録されたファイルを管理するファイル管理情報を管理するファイル管理部と、ファイル管理部および記録媒体に接続され、ファイル管理情報に基づいて、記録媒体に対するデータの書込および読出を行なう記録媒体制御部と、ファイル管理部に接続され、記録媒体中の未使用の論理ブロックを記録媒体上で連続している領域毎に管理する未使用領域管理部と、ファイル管理部および未使用領域管理部に接続され、新たに未使用領域が発生した際に、新たな未使用領域を他の未使用領域に接合する未使用領域接合部とを含む。
【0025】
未使用領域は、未使用領域接合部で接合され、未使用領域管理部により管理される。このため、1つのファイルの記録媒体上での連続性をなるべく保つことができ、記録媒体のパフォーマンスを保証することができる。特に、デジタル映像音声データのように大容量で、かつ読出および書込時にリアルタイム性が要求される場合でも、記録媒体のパフォーマンスを保証することができる。
【0026】
好ましくは、ファイル管理装置は、さらに、ファイル管理部および記録媒体制御部に接続され、記録媒体への書込エラーを検出した際に、エラーが発生した箇所に記録されるべきデータをメモリに保存し、メモリへの保存に遅延させて、メモリ上のデータと、書込エラーが発生した論理ブロックに含まれるエラーの発生した箇所以外のデータとを他の論理ブロックへ書込み、論理ブロックを代替する遅延交替処理部を含む。
【0027】
データの書込に余裕がある場合に遅延処理を実行させることができる。このため、リアルタイム性が要求されるファイルの読出または書込途中であっても、読出または書込の邪魔をすることなく遅延処理を実行させることができる。
【0028】
さらに好ましくは、論理ブロックは、所定個数のサブブロックを含み、記録媒体制御部は、記録媒体に対するデータの書込および読出が所定量以下の場合には、サブブロック単位でデータの書込および読出を行なう。
【0029】
小サイズのデータについては、サブブロック単位でのアクセスを行なうことにより、アクセス効率を向上させることができる。
【0030】
さらに好ましくは、未使用領域管理部は、未使用の論理ブロックを所定数の連続領域ごとに管理する。
【0031】
未使用の論理ブロックを固定長で管理することにより、管理がしやすくなる。さらに好ましくは、記録媒体は、所定数の同心円により区切られた複数のゾーンを含み、未使用領域管理部は、所定の同心円よりも外側のゾーンに属する論理ブロックのみを未使用領域として登録する。
【0032】
記録媒体の内周側に位置するゾーンに属する論理ブロックは、未使用領域として登録されない。よって、論理ブロックの長さが増大することを防止できる。
【0033】
さらに好ましくは、ファイル管理部は、ファイルサイズが予め定められているファイルの作成時に、ファイルサイズに到達するまで、連続する未使用領域をサイズの大きいものから順にファイルに割当てるための手段と、ファイルに割当てられていない未使用領域のうち、最後にファイルに割当てられた未使用領域と、当該未使用領域と交換可能な未使用領域とを交換するための交換手段とを含む。
【0034】
2つのフリーブロック群を交換することによって、連続長が長いフリーブロックの断片化をさらに抑えることができる。
【0035】
さらに好ましくは、ファイル管理部は、さらに、ファイルサイズが予め定められているファイルに、未使用領域をさらに追加する際には、最大の未使用領域をファイルに割当てるための追加割当手段を含む。
【0036】
記録すべき番組が延長されるような場合においても、未使用領域の断片化を低減することができる。
【0037】
さらに好ましくは、ファイル管理部は、ファイルをクローズする際に、ファイルに割当てられた領域のうち、未使用の論理ブロックを、未使用領域管理部に登録する。
【0038】
記録時間が短いような場合に、記録媒体の記憶容量に対して記憶されるデータ量が極端に小さくなることを抑えることができる。
【0039】
さらに好ましくは、ファイル管理部は、未使用の論理ブロック数が予め定められた個数以上の場合にのみ、未使用の論理ブロックを未使用領域管理部に登録する。
【0040】
ファイルに割当てたにもかかわらず、記録されずに残った論理ブロックがあらかじめ定められた個数未満の場合には、未使用領域への登録を行なわない。このため、断片化を防止することができる。
【0041】
さらに好ましくは、未使用領域接合部は、ファイル管理部により登録された未使用の論理ブロックに隣接する領域が未使用領域であれば、未使用の論理ブロックと、隣接する領域とを接合する。
【0042】
隣接する未使用領域同士を接合することにより、未使用領域の断片化を防止することができる。
【0043】
さらに好ましくは、遅延交替処理部は、他の論理ブロックを未使用領域管理部で管理されている未使用の論理ブロックより獲得する。
【0044】
特別に交替用の領域を設ける必要がなく、かつ、交替先の領域でも論理ブロック単位でのアクセスを行なうことが可能となる。
【0045】
さらに好ましくは、遅延交替処理部は、記録媒体への書込エラーを検出した際に、エラーが発生した箇所に記録されるべきデータをメモリに保存するとともに、不揮発性の記録媒体にも保存する。
【0046】
エラーの発生した箇所に記録されるべきデータをメモリ上に保存するとともに、別の不揮発性の記憶媒体上にも保存することによって、停電等が起こった場合であっても、遅延交替処理を実行することができる。
【0047】
さらに好ましくは、記録媒体制御部は、書込エラーが発生した箇所に記録されるべきデータが他の論理ブロックに書込まれていない際に、書込エラーが発生した論理ブロックに対する読出要求があった場合には、メモリ上のデータと、書込エラーが発生した論理ブロックに含まれるエラーの発生した箇所以外のデータとを読出す。
【0048】
交替処理が完了していない場合であっても、正確なデータを読出すことができる。
【0049】
さらに好ましくは、未使用領域管理部は、記録媒体上で連続した未使用の論理ブロックを1つのフリーブロック群として管理する。
【0050】
未使用領域のうち、記録媒体上で連続した論理ブロックをフリーブロック群として、まとめて管理することにより、ファイルへの領域割当や、不要になった領域の接合処理などを効率良く行なうことができる。
【0051】
さらに好ましくは、未使用領域接合部は、複数のフリーブロック群が記録媒体上で連続している場合は、複数のフリーブロック群を接合し、新たなフリーブロック群とする。
【0052】
複数のフリーブロック群を接合することによって、未使用領域が断片化することを抑えることができる。
【0053】
さらに好ましくは、未使用領域接合部は、2つのフリーブロック群の記録媒体上での距離が一定値以内であれば、2つのフリーブロック群を接合し、新たなフリーブロック群とする。
【0054】
比較的近い距離の領域をまとめて管理することが可能となる。
さらに好ましくは、未使用領域接合部は、予め定められた長さを超えない範囲で、2つのフリーブロック群を接合する。
【0055】
接合後のフリーブロック群の大きさが大きくなりすぎるのを抑制することができる。
【0056】
さらに好ましくは、記録媒体には、予め複数の境界が設定されており、未使用領域接合部は、2つのフリーブロック群が境界をまたがない場合にのみ、2つのフリーブロック群を接合する。
【0057】
接合後のフリーブロック群の大きさを境界間の大きさで規定できるため、接合後のフリーブロック群の大きさが大きくなりすぎるのを抑制することができる。
【0058】
本発明の他の局面に従うファイル管理方法は、各々、連続配置が保証され、かつ要求されるアクセス速度を上回ることが保証されている複数の論理ブロックに区切られた記録媒体を管理するファイル管理装置で用いられる。ファイル管理方法は、記録媒体に記録されたファイルを管理するファイル管理情報を管理するステップと、ファイル管理情報に基づいて、記録媒体に対するデータの書込および読出を行なうステップと、記録媒体中の未使用の論理ブロックを記録媒体上で連続している領域ごとに管理するステップと、新たに未使用領域が発生した際に、新たな未使用領域を他の未使用領域に接合するステップとを含む。
【0059】
未使用領域は、他の未使用領域と接合され、管理される。このため、1つのファイルの記録媒体上での連続性をなるべく保つことができ、記録媒体のパフォーマンスを保証することができる。特に、デジタル映像音声データのように大容量で、かつ読出および書込時にリアルタイム性が要求される場合でも、記録媒体のパフォーマンスを保証することができる。
【0060】
【発明の実施の形態】
図1を参照して、本発明の実施の形態に係るファイル管理装置10は、ハードディスク6に記録されたファイルを管理するファイル管理部1と、ファイル管理部1の指示に従い、ハードディスクへのデータの書込および読出の制御を行なう記録媒体制御部2と、ハードディスク6中の未使用領域を管理する未使用領域管理部3と、ハードディスク6中の未使用領域を接合する未使用領域接合部4と、交替処理を遅延させながら実行する遅延交替処理部5とを含む。
【0061】
このファイル管理装置10は、論理ブロックと呼ばれる単位でハードディスク6にアクセスを行ない、データの読出および書込を実行する。論理ブロックとは、論理ブロックに含まれるセクタのハードディスク6上での連続配置が保証され、かつその論理ブロックのセクタへのアクセスの前に、シークと回転待ちが発生したとしてもハードディスク6に要求されるパフォーマンスが発揮できる単位である。
【0062】
ディスクアクセスの速度は、(アクセスデータ量[Byte]/総アクセス時間[sec])で表わされ、これがハードディスク6のアクセス速度を上回っている必要がある。このため、パフォーマンスを発揮するには、次式(1)を満たす必要がある。
【0063】
ここで、nセクタずつアクセスするものとするとし、1セクタ当りのバイト数が512[Byte]とすると、アクセスデータ量は(512[Byte/セクタ]×n[セクタ])で表わすことができる。
【0064】
また、総アクセス時間は、回転待ち時間とシーク時間とアクセス時間との和として求めることができる。回転待ち時間とは、ディスクが回転して、ディスクヘッドの位置に最初のセクタが位置するまでにかかる最大時間のことであり、すなわち、ディスクが1回転する時間のことである。シーク時間とは、ディスクのヘッドが目的のセクタの位置へ移動するのにかかる最大の時間のことである。アクセス時間とは、ディスクが1回転する時間に回転数をかけたものである。ここで、回転数は、同時にアクセスするセクタ数nを1回転当りのセクタ数で除した数である。
【0065】
たとえば、ディスクの回転速度が11.1msec、シーク時間が17.8msec、1回転当たりのセクタ数が400セクタであるハードディスク6を考える。この時、ファイル管理装置10が、24Mbps(bits per second)のデータを同時に3つ扱う場合を考える。論理ブロックに含まれるセクタ数をnとし、1セクタのサイズを512byteとすると、ハードディスク6のパフォーマンスを発揮するには、次式(2)を満たす必要がある。
【0066】
すなわち、1つの論理ブロックに含まれるセクタを1091セクタ以上とすれば、目的のパフォーマンスが得られることがわかる。セクタ数を1091以上とし、ファイル管理装置10が管理しやすい単位をハードディスク6にアクセスする際の最小単位とすればよい。
【0067】
この論理ブロック内では、必ず、ハードディスク6上でのデータの連続性が保証される。1セクタ当りのデータサイズを512バイトとすると、論理ブロックのサイズは、1091×512=545.5[KByte]となる。この値を満たす2のべき乗は1024[KByte]、すなわち1[Mbyte]となる。このため、論理ブロックのサイズは1MByteとなる。論理ブロックのサイズは、ディスクの回転速度や1回転当たりのセクタ数によって変化する。このため、場合によっては、論理ブロックのサイズが512KByteや256KByteなどになる場合もある。
【0068】
トラックが変化するときのヘッドスイッチの為の処理時間または隣のシリンダに移るためのシリンダ間シーク時間を加味して、論理ブロックのサイズを算出してもよい。
【0069】
[ファイル管理部1について]
ファイル管理部1は、ハードディスク6中の記憶領域を複数の論理ブロックに分割し、各論理ブロックの使用・未使用状況や、該当論理ブロックの交替処理の有無を表す領域管理テーブルを記憶している。
【0070】
図2を参照して、領域管理テーブルについて説明する。使用フラグは論理ブロックへのデータの格納の有無を示している。使用フラグの値が1の論理ブロックにはデータが格納されており、使用フラグの値が0の論理ブロックにはデータが格納されていない。ここでは、論理ブロック番号0、1および3の論理ブロックにデータが格納されている。なお、以下の説明では、論理ブロック番号nの論理ブロックを論理ブロックnと表現することにする。
【0071】
論理ブロックの相対的な並びは、前ブロック相対アドレスおよび次ブロック相対アドレスで表わされる。たとえば、論理ブロック0は、前ブロック相対アドレス値が0であるため、この論理ブロックが開始位置であることを示す。論理ブロック1は、前ブロック相対アドレス値が−1であるため、この論理ブロックの前には、論理ブロック0が存在することを示している。また、論理ブロック1の次ブロック相対アドレス値が2であることから、この論理ブロックの後ろには、論理ブロック3が存在する事がわかる。論理ブロック3の次ブロック相対アドレス値は0であることから、このブロックが終了位置であることがわかる。
【0072】
論理ブロック2、4、5、6および10の使用フラグの値は0である。このため、これらの論理ブロックは、ファイルのデータが記録されていない未使用領域である事がわかる。
【0073】
交替フラグは、論理ブロックに欠陥セクタが含まれており、交替処理されたか否かを示している。交替フラグの値が1の論理ブロックは他の論理ブロックと交替されていることを示し、交替フラグの値が0の論理ブロックは交替処理されていないことを示している。ここでは、論理ブロック5が論理ブロック10と交替されていることを示している。
【0074】
未使用領域として、論理ブロック2から構成されるものと、論理ブロック4、5、6および10から構成されるもの2つがある事が分かる。
【0075】
ファイル管理部1は、領域管理テーブルの他に、ファイル管理装置10で作成されたファイルで使用される論理ブロックの並びを管理するファイル管理テーブルを記憶している。ファイル管理テーブルは、ファイルごとに存在する。
【0076】
図3を参照して、ファイル管理テーブルは、1つのファイル中でどのように論理ブロックが構成されているかを、一連の論理ブロックの列を単位として表す。累積論理ブロック数は、それまでに出現した論理ブロック数であり、開始論理ブロックおよび終了論理ブロックで、一連の論理ブロックの列の開始および終了位置が示される。ブロック数は、一連の論理ブロックの列に含まれる論理ブロック数を表す。このファイルは、3つの未使用領域により構成されており、1つ目の未使用領域は、論理ブロック0〜2の3つの論理ブロックにより構成されている。2つ目の未使用領域は、論理ブロック6〜10の5つの論理ブロックにより構成されている。3つ目の未使用領域は、論理ブロック13〜15の3つの論理ブロックにより構成されている。ここではファイルに含まれる論理ブロックの構成のみを示したが、ファイル管理テーブルには、ファイル管理装置10が現在どこまで記録したかまたは読出したかを表すポインタなどのファイルシステムで使用される項目も含まれる。
【0077】
[記録媒体制御部2について]
記録媒体制御部2は、ファイル管理部1を通じてアプリケーションプログラムから指示される書込要求または読出要求に従い、データの書込または読出を論理ブロック単位または論理ブロックよりも小さい単位であるサブブロック単位で行なう。
【0078】
上述のように、論理ブロックを単位にしてハードディスク6にアクセスをすることにより、複数のファイルをアクセスする場合であっても、ハードディスク6のパフォーマンスは保証される。
【0079】
図4を参照して、論理ブロックを単位として、1つのファイルまたは複数のファイルをアクセスする例について説明する。図4(c)を参照して、ハードディスク6上には、ファイルAおよびファイルBが論理ブロックを単位として、不連続に配置されているものとする。この内、ファイルAのみを上書きして記録する場合においては、図4(a)のように、論理ブロック間が不連続であったとしても、その間に発生するシークと回転待ちとのオーバーヘッドが加味されて論理ブロックのサイズが決定されている。このため、データの書込を遅延させることなく行なうことができる。図4(b)のように、ファイルAを記録しながら再生するといった追っかけ再生を行なうと同時に、ファイルBに記録を行なうような場合においても、その間に発生するシークと回転待ちとのオーバーヘッドが加味されて論理ブロックのサイズが決定されている。このため、ディスクアクセスに遅延が生じることはない。
【0080】
しかし、必ずしも論理ブロックを単位にアクセスされるとは限らない。たとえば、ハードディスク6上のファイルに記録されている映像データからMPEG方式により符号化されたIフレームのみを抽出して早送り再生をしたい場合等である。たとえば、論理ブロックのサイズが1MByte、映像データが24Mbpsで、0.5秒毎に大きさが400KByteのIフレームが存在する場合を考える。図5(a)を参照して、このIフレームのデータが論理ブロックの境界をまたいで2つの論理ブロックに記録されている場合には、2MByteのデータを読出す必要がある。このため、1秒間当り、最悪4MByteのデータをハードディスク6から読出さなければならず、要求されるデータ量に比べ、読出すデータ量が大きくなる。
【0081】
従って、図5(b)を参照して、本実施の形態では、論理ブロックをいくつかのサブブロックに分割し、ハードディスク6に対して要求されるデータ量が所定量以下の場合においては、サブブロック単位でアクセスを行なう。サブブロック単位でデータを読出すことによって、余分な読出量が低減される。論理ブロックを1MByte、サブブロックを256Kとした場合には、2枚のIフレームを読出すには、最悪1.5MByteのデータを読出すだけで良い。サブブロックを128Kとした場合は、1秒間に4枚のIフレームデータを読出したとしても、最悪2MByteのデータを読出すだけでよい。
【0082】
図6を参照して、ファイル管理部1および記録媒体制御部2の実行する処理について説明する。
【0083】
ファイル管理部1は、アプリケーションプログラムからデータの書込または読出の要求を受信した場合、ハードディスク6へのアクセス単位が論理ブロック単位であるかサブブロック単位であるかを判定する(S201)。論理ブロック単位である場合には(S201でfalse)、ファイル管理部1は、記録媒体制御部2に対して、論理ブロック単位で、ハードディスク6へアクセスするように要求する(S202)。サブブロック単位である場合には(S201でtrue)、ファイル管理部1は、記録媒体制御部2に対して、サブブロックを単位で、ハードディスク6へアクセスするように要求する(S203)。
【0084】
記録媒体制御部2は、ファイル管理部1からの要求に従い、論理ブロック単位またはサブブロック単位でハードディスク6へアクセスする。
【0085】
S201の判定処理について、具体例を示し説明する。ここでは、ハードディスク6の容量を15Gbyteとし、論理ブロック長を1MByte、サブブロック長を128KByteとする。
【0086】
また、ハードディスク6に対して、常に論理ブロック長以下のサイズのデータの書込要求または読出要求が行なわれるものとする。
【0087】
ファイルの先頭から3MByteの位置から1MByteのデータの書込要求があったとする。ファイルは、1MByteの論理ブロック単位に区切られている。このため、データの書込位置とデータのサイズとの下位17ビットが0か否かをチェックすることによって、そのデータ転送が論理ブロック単位のものか否かをチェックすることができる。この例では、双方とも、下位17ビットが0であるので、論理ブロック単位のアクセスである。このため、論理ブロック単位でハードディスク6へのアクセスが行なわれる。
【0088】
ファイルの先頭から2.5MByteの位置から200KByteのデータの書込要求があったとする。書込位置2.5MByteの下位17ビットは0であるが、データサイズ200KByteの下位17ビットは0x12000である。従って、この場合には、サブブロック単位で記録媒体にアクセスすることになる。
【0089】
上述の例では、アプリケーションプログラムから書込要求または読出要求されるデータ長を論理ブロック長以下としたが、論理ブロック長以上のアクセス要求があった場合は、そのアクセス要求を1MByte単位のアクセス要求に分割すればよい。たとえば、先頭から2.5MByteの位置から1.7MByteのデータのアクセス要求があった場合には、ファイル管理部1は前処理として、2.5MByteの位置から0.5MByteのアクセス要求、3.0MByteの位置から1MByteのアクセス要求、および4MByteの位置から0.2MByteのアクセス要求の3つのアクセス要求を作成し、各々のアクセス要求について、図6に示した処理を行なう。
【0090】
[未使用領域管理部3について]
ファイル管理装置10では、論理ブロックを単位としてファイル管理や空き領域管理を行なった場合には、管理テーブルのサイズは大きくなってしまう。また、ファイル管理装置10では、常に複数のファイルを扱うわけではない。このため、各々のファイルのデータをできる限り不連続が生じないように格納するのがよい。
【0091】
そこで、未使用領域管理部3は、未使用の論理ブロックのハードディスク6上での連続領域を管理する。
【0092】
図7を参照して、未使用領域管理部3の管理形態の概略を説明する。ハードディスク6内の論理ブロックとして、論理ブロック0〜11が存在し、論理ブロック0、1、2、5、6、7、8、10および11はどのファイルにも属さない未割当の状態であるとする。未使用領域管理部3は、この未割当の論理ブロックのうちハードディスク6上で連続するものを一括して管理する。論理ブロック0〜2、5〜8および10〜11はそれぞれ連続し、未使用領域管理部3は、連続する論理ブロックを、先頭の論理ブロックの番号と連続するブロック数とで管理する。その他、未使用領域管理部3は、連続する論理ブロックを先頭および最後の論理ブロックの番号で管理したり、先頭および最後の論理ブロックの番号と連続ブロック数とで管理するようにしてもよい。
【0093】
本明細書中では、未割当の論理ブロックを「未使用領域」とよび、ハードディスク6上で連続する一連の未使用の論理ブロックを「フリーブロック群」と呼ぶ。また、未使用領域を管理するテーブルを「未使用領域管理テーブル」という。
【0094】
なお、ハードディスク6は3つのゾーンに区切られ、各ゾーンごとに未使用領域が管理される。ゾーンとは、ハードディスク6上で同心円により区切られた領域をいう。
【0095】
ハードディスク6には、1回転当たりのセクタ数が場所によって異なるものがある。このような場合では、ハードディスク6の内周側では、セクタ数が少なく、外周側ではセクタ数が多くなる。なお、セクタ数は、各ゾーンにより異なる。ハードディスク6によっては、内側のゾーンを使用すると、1回転当たりのセクタ数が少なくなる。このため、要求されるパフォーマンスを達成するためには、論理ブロック当りの記憶可能なデータサイズを大きくする必要がある。または、要求されるパフォーマンスが達成できない場合もある。内側のゾーンの1回転当たりのセクタ数が200セクタ、ディスクの回転速度が11.1msec、シーク時間が17.8msec、論理ブロックに含まれるセクタ数をnとし、1セクタのサイズを512byteとすると、次式(3)が成り立つ。
【0096】
式(3)より、n≦−23185となり、要求されるパフォーマンスが出ないことがわかる。また、内側のゾーンの1回転当たりのセクタ数が240セクタであった場合は、n≧3611となり、論理ブロックのサイズが2MByte必要となる。
【0097】
従って、内周のゾーンを使用することによって、論理ブロックのサイズが大きくなってしまう場合、または、要求されるパフォーマンスに達しない場合は、そのゾーンに該当する論理ブロックをデータの記録または再生に用いないようにすることが必要である。
【0098】
図8を参照して、未使用領域管理部3は、ハードディスク6の外周側に位置するゾーンに属する未使用領域を管理する外周未使用領域管理テーブル(図8(A))と、ハードディスク6の内周側に位置するゾーンに属する未使用領域を管理する内周未使用領域管理テーブル(図8(C))と、それ以外のゾーンに属する未使用領域を管理する内部未使用領域管理テーブル(図8(B))とを記憶している。
【0099】
未使用領域は、3つの未使用領域管理テーブルと、上述の領域管理テーブル(図8(D)とで管理される。
【0100】
ここでは、ハードディスク6の容量が15Gbyteであり、そのゾーンが1Gbyte毎に区切られているものとし、最内周に位置するゾーンは、論理ブロックアドレスとして0x3800〜0x3BFFが付された、容量1Gbyteの領域であり、最外周に位置するゾーンは、論理ブロックアドレスとして0x0000〜0x03FFが付された、容量1Gbyteの領域であるものとする。
【0101】
図8(A)および図8(C)の外周未使用領域管理テーブルおよび内周未使用領域管理テーブルは、ともに1Gbyteの領域を2つに分割した512MByte単位の2つのフリーブロック群を管理している。
【0102】
図8の例は、15Gbyteのハードディスクを、先頭から0x200個のブロック毎に、1つの連続したフリーブロック群として管理している例である。たとえば、外周未使用領域管理テーブル(図8(A))には、先頭の論理ブロックのアドレスが0x0000の、ブロック数が0x200のフリーブロック群が登録されている。このフリーブロック群に含まれる論理ブロックの構成は、図8(D)の領域管理テーブルに示される。このフリーブロック群の先頭(論理ブロックアドレス0x0000)の論理ブロックの前ブロック相対アドレスには「0」が登録され、そのブロックよりも前のブロックが存在しない事を示している。その論理ブロックの次ブロック相対アドレスには「1」が登録され、論理ブロックアドレス0x0001の論理ブロックが次に並んだ論理ブロックである事を示す。
【0103】
同様に、論理ブロック番号アドレスが0x0001の論理ブロックの前ブロック相対アドレスには「−1」が登録され、アドレス0x0000の論理ブロックがアドレス0x0001の論理ブロックの1つ前に位置する事を示している。また、アドレス0x0001の論理ブロックの次ブロック相対アドレスには「1」が登録され、アドレス0x0002の論理ブロックがアドレス0x0001の論理ブロックの次に位置する事を示している。
【0104】
このように、ディスクを分けて管理することにより、映像や音声が含まれるデータのように、内周のゾーンを使用すると目的のパフォーマンスが得られないものであっても、通常の未使用管理領域内に記憶する事により、目的のパフォーマンスを得ることができる。
【0105】
一方、ファイル管理装置10として、ハードディスク6のパフォーマンスを保証したとしても、ファイル管理装置10を使用するアプリケーションプログラムが記録再生要求を適時に行なわなければ、記録すべきデータがアプリケーションプログラム上のバッファにたまってしまう。この要因として、たとえば、アプリケーションプログラムの処理負荷が一時的に高くなる場合等が考えられる。このような場合は、バッファに溜まったデータをできる限り速くハードディスク6に記憶することが必要である。このようなときには、外周のゾーンにデータを記憶するのが有効である。
【0106】
なぜならば、外周ゾーンにおいては、セクタ数が多いため、ハードディスク6のパフォーマンスは高い。従って、ファイル管理装置10を使用しているアプリケーションプログラムの処理負荷が一時的に高くなり、バッファにデータが溜まってしまった場合などにおいて有効である。
【0107】
図8では、複数のゾーンのうち、最外周のゾーンのみおよび最内周のゾーンのみをそれぞれ外周未使用領域管理テーブルおよび内周未使用領域管理テーブルに登録するようにしたが、複数の外周ゾーンや複数の内周ゾーンを外周未使用領域管理テーブルまたは内周未使用領域管理テーブルで管理するようにしてもよい。
【0108】
図9を参照して、アプリケーションプログラムからファイルの書込要求を受けた際に、ファイル管理部1が外部からの指示に従って、フリーブロック群を割当てる処理について説明する。
【0109】
ファイル管理部1は、アプリケーションプログラムからのファイルへの書込要求に対して、ファイルを書込むための領域を追加する必要があるか否かを判定する(S501)。
【0110】
ファイル領域を追加する必要があると判定された場合には(S501でtrue)、外周ゾーンへの書込が要求されているか否かを判定する(S502)。外周ゾーンへの書込が要求された場合には(S502でtrue)、外周未使用領域管理テーブルの中から論理ブロックがファイルへ割当てられる(S503)。
【0111】
それ以外の場合には(S502でfalse)、内周未使用領域管理テーブルの中から論理ブロックがファイルへ割当てられる(S504)。
【0112】
ファイル領域を追加する必要がない場合には(S501でfalse)、処理を終了する。
【0113】
次に、領域割当処理(S503およびS504)について説明する。
本実施の形態では、ファイル作成時に、ファイルサイズが指定されたかどうか、また、該当ファイルへの領域の割当が初回かどうかによって、割当てる領域を変化させる。
【0114】
ファイルシステムでは、未使用領域をファイルに割当てる処理と、ファイルの記録領域として割当てられたにもかかわらず、結果として記録されなかった領域や、ファイル削除された領域を未使用領域として回収する処理とが必要である。
【0115】
この回収作業により、未使用領域の断片化が発生する。図10を参照して、未使用領域が断片化する例について説明する。
【0116】
図10(a)のようにファイルAに4つの論理ブロックが割当てられている場合に、ファイルAの4番目の論理ブロックが不要であるとして未使用領域となった場合には、図10(b)に示すように、本来連続しているべき6番目の論理ブロックと7番目の論理ブックとが断片化している。
【0117】
図10(c)を参照して、さらに、ファイルAを構成するすべての論理ブロックを削除した場合には、0〜4番目までの論理ブロックは1つの未使用領域となるべきであるのに、0〜2番目の論理ブロックと、3〜4番目の論理ブロックとに断片化されている。
【0118】
これを回避するために、断片化を低減するような領域割当方法と、断片化された領域を接合する領域回収方法とが必要となる。
【0119】
領域の割当方法では、ファイルに対してどのような領域割当が発生するかを考慮する必要がある。
【0120】
デジタル放送データや、アナログ放送をエンコードしてデジタルデータを記録再生する装置においては、あらかじめサイズが固定されているファイルと、あらかじめサイズが指定されているが、記録領域が不足した場合には領域を追加するファイルと、サイズが指定されないファイルとが存在する。
【0121】
第1のファイルは、タイムシフト視聴をする際のように、ファイルをリングバッファのように用いて記録再生を行なう場合に用いられる。第2のファイルは、録画予約のように、あらかじめ録画開始時刻および録画終了時刻が設定されるような場合であって、かつ録画時間を延長したいような場合に用いられる。第3のファイルは、記録開始時刻および録画終了時刻が定まっていないような場合に用いられる。これらのファイルに対し、未使用領域を割当てたり、不要となった領域を回収する場合において、領域をなるべく断片化しないことが必要である。
【0122】
第3のファイルについては、必要となる領域がどのくらいあるかを判定することは難しく、始めに多くの領域を割当てたにもかかわらず、すぐに記録が終了するような場合には、記録されない領域が多く残ってしまう。また、小さな領域を割当てると、記録時間が長い場合において、未使用領域をファイルに割当てる処理のオーバーヘッドが大きくなってしまう。
【0123】
このために、本発明では、大きさの指定されていないファイルについては、始めは、あらかじめ設定された値の領域を割当て、さらに、記録している間に再び領域を必要とする場合は、残りのフリーブロック群のうち最大長のフリーブロック群を割当てるといった二段階の領域割当処理を行なう。
【0124】
第1および第2のファイルについては、あらかじめ指定された大きさの未使用領域を確保すれば良いが、指定サイズを満たすフリーブロック群が存在するとは限らない。いくつかのフリーブロック群を組み合わせたとしても、その合計サイズが指定サイズと合致することは希である。従って、フリーブロック群の大きさが指定サイズを超えた場合には、フリーブロック群を分割して割当てることになり、領域の断片化が発生する。このとき、サイズの大きいフリーブロック群の断片化はできる限り避けたい。
【0125】
そのため、本発明では、あらかじめ大きさが指定されたファイルについては、連続領域の長いフリーブロック群が優先的に割当てられる。これにより、連続領域の長いフリーブロック群ほど、ファイルの末尾から遠ざかる形で割当てられる。よって、領域の断片化を避けることができる。図11がこのような割当処理を行なった際のフリーブロック群の並び方を示している。ここでは、未使用領域の合計サイズが、指定サイズを超えているため、割当てられる領域の中で最小であるフリーブロック群3が断片化される。
【0126】
また、断片化されるフリーブロック群の大きさをさらに抑えることもできる。図12を参照して、未割当のフリーブロック群のうちで、最後に割当てられたフリーブロック群と交換しても、合計のサイズが指定されたサイズを満たしている場合、その領域を交換することによって、断片化されるフリーブロックの大きさを低減することができる。図12では、未使用領域1〜6のうち、未使用領域1〜3を割当てた場合と、未使用領域1,2、5を割当てた場合とを示している。どちらの場合でも領域は断片化されてしまうが、より小さい未使用領域5が断片化されることで、より大きな未使用領域3の断片化を防ぐことができる。
【0127】
断片化されるフリーブロック群の大きさを抑える方法としては、未割当のフリーブロック群のうちで、割当可能なフリーブロック群を検索し、条件を満たすフリーブロック群のうち最小長のフリーブロック群を割当てる方法と、最大長のフリーブロック群とを割当てる方法がある。
【0128】
前者の方法では、連続領域の短いフリーブロック群ほど断片化されやすく、連続領域が長いフリーブロック群ほど、断片化を避けることが可能である。後者の方法では、条件を満たすフリーブロック群を検索する作業を低減しながらも、連続領域が長いフリーブロック群の断片化を低減することができる。
【0129】
第2のファイルについては、あらかじめ指定された領域を確保したにもかかわらず、たとえば、記録したい番組が時間延長された等の理由により、さらに領域を追加したい場合が生ずる。
【0130】
そのため、本発明では、第2のファイルについては、あらかじめ指定された値の領域を割当て、領域を追加する際には、残りのフリーブロック群のうち最大長のフリーブロック群を割当てるといった二段階の領域割当処理を行なうことによって対応する。
【0131】
作成時に、ファイルサイズが指定されているファイルについては、指定されたファイルサイズに達するまで、最大長のフリーブロック群を順次確保する。この時、最後に割当てられたフリーブロック群と、割当てられていない残りのフリーブロック群とを交換しても指定されたファイルサイズが確保できる場合には、2つのフリーブロック群を交換する。予めファイルサイズが指定されているファイルであっても、後に追加で領域を確保する必要がある場合がある。そのような場合には、予め指定されたファイルサイズを確保しておき、さらに領域の確保の必要が生じた場合には、最大長のフリーブロック群を割当てるようにする。
【0132】
図13を参照して、ファイル管理部1は以下のように領域割当を行なう。ファイルへの領域割当要求をアプリケーションプログラムより受信した場合、ファイル管理部1は、その要求が、サイズ指定されたファイルに対する最初の割当要求かどうかを調べる(S1201)。サイズ指定されたファイルに対する最初の割当要求であった場合には、ファイル管理部1は、指定サイズが、最大長のフリーブロック群のサイズよりも大きいかどうかを判定する(S1202)。指定サイズの方が小さい場合は(S1202でfalse)、ファイル管理部1は、最大長のフリーブロック群を指定されたファイルを割当てる領域として確保する(S1207)。
【0133】
指定サイズの方が大きい場合は(S1202でtrue)、指定サイズの領域が確保されるまで、最大長のフリーブロック群を順次ファイルに割当てる(S1203、S1204)。指定サイズの領域が確保された場合には(S1204でfalse)、最後に割当てた領域と未使用領域として残っている最大のフリーブロック群とを交換しても指定サイズを満たすか否かを判定する(S1205)。2つのフリーブロック群を交換可能な場合には(S1205でtrue)、それらの交換を行なう(S1206)。
【0134】
サイズ指定されていないファイルまたは、サイズ指定されたファイルに対する2回目以降の割当要求をアプリケーションプログラムより受信した場合(S1201でfalse)、ファイル管理部1は、サイズ指定されていない最初の割当要求か否かを調べる(S1208)。サイズ指定されていない最初の割当要求の場合には(S1208でtrue)、ファイル管理部1は、所定の個数(N個)以内の論理ブロックを含む連続領域を未使用領域の中から割当てる。それ以外の場合には(S1208でfalse)、ファイル管理部1は、未使用領域として最大長のフリーブロック群を割当てる(S1210)。
【0135】
S1205およびS1206では、最後に割当てたフリーブロック群が、最大長のフリーブロック群と交換することができれば交換している。しかし、最大長のフリーブロック群には限られず、それ以外のフリーブロック群であっても交換する事ができる場合には、交換するようにしてもよい。
【0136】
また、S1207では、同様に、最大長のフリーブロック群でなくとも、指定サイズよりも大きなフリーブロック群の中で最小のものを割当てるようにしてもよい。
【0137】
[未使用領域接合部4について]
未使用領域接合部4は、上述した未使用領域を回収し、断片化が起こらないように領域を接合する処理を行なう。
【0138】
未使用領域接合部4は、ファイルの記録領域として割当てられたにもかかわらず、結果として記録されなかった領域を回収する際に、その前後に、フリーブロック群として管理されている領域が存在する可能性がある。このフリーブロック群と回収される領域とを接合して、新たなフリーブロック群とする。
【0139】
また、未使用領域接合部4は、ファイル削除などの理由により不要になった領域の各々についても、その前後に位置するフリーブロック群と接合して、新たなフリーブロック群を作成する。
【0140】
また、2つの断片化されたフリーブロック群のハードディスク6上での距離が非常に近い場合には、それらのフリーブロック群を接合して、新たなフリーブロック群として管理することにより、フリーブロック群の間で発生するシーク時間を抑える事ができる。
【0141】
フリーブロック群間の距離としては、2つのフリーブロック群間の論理ブロック数やシリンダ数を用いることが考えられる。論理ブロック数で距離を表す場合には、2つのフリーブロック群のハードディスク6上でのおおよそのシリンダ数を判定し、フリーブロック群の間で発生するシーク時間を概算することができる。また、論理ブロックは、ファイル管理装置10で用いられる単位であるために、ファイル管理装置10が管理しやすいというメリットがある。シリンダ数で距離を表した場合には、フリーブロック群の間で発生するシーク時間を算出する事ができる。
【0142】
上述のように、距離の近いフリーブロック群同士を接合することは有効な手法であるが、接合の抑制を行なわなければ、ハードディスク6上のすべての領域が未使用領域となった場合には、1つの大きなフリーブロック群として構成されてしまい問題である。
【0143】
そのために、未使用領域接合部4は、フリーブロック群の接合を抑制することによって、この問題を解決する。フリーブロック群の接合を抑制する方法としては、最大長を設定する方法と、境界を設定する方法が考えられる。
【0144】
最大長による方法では、2つのフリーブロック群を接合した場合に、あらかじめ設定された最大長よりも長くなるか判定し、長い場合は接合を行なわないようにする。
【0145】
境界を設定する方法では、2つのフリーブロック群が、ハードディスク6上で境界をまたいで位置するかを判定し、境界をまたいで位置する場合には接合を行なわないようにする。
【0146】
図14を参照して、未使用領域の接合処理について説明する。
未使用領域接合部4は、これから未使用領域として登録する領域に対して、ハードディスク6上で記録位置が前に位置するフリーブロック群を獲得する(S601)。未使用領域接合部4は、登録対象領域と獲得したフリーブロック群との距離が一定値以内かどうかを判定する(S602)。距離の判定方法については後述する。
【0147】
登録対象領域とフリーブロック群との距離が一定値以内の場合には(S602でtrue)、2つの領域を実際に接合するか否かを調べる(S603)。S603の処理については後述する。
【0148】
接合処理を行なうと判断された場合には(S603でtrue)、2つの領域の接合処理を行なう(S604)。
【0149】
未使用領域接合部4は、接合された領域に対して、ハードディスク6上で記録位置が後に位置するフリーブロック群を獲得し(S605)、同様に2つの領域の距離判定処理(S606)と、接合判定処理(S607)とを行ない、接合をする必要があると判断された場合には(S606でtrue、S607でtrue)、2つの領域の接合処理を行なう(S608)。
【0150】
図15を参照して、図14のS602およびS606の距離判定処理について説明する。
【0151】
ここでは、これから未使用領域となる領域と、その前に位置するものとして獲得されたフリーブロック群を領域A、Bとして説明する。
【0152】
未使用領域接合部4は、領域Aの開始論理ブロック番号(As)および終了論理ブロック番号(Ae)、ならびに領域Bの論理ブロック番号(Bs)および終了論理ブロック番号(Be)を獲得する(S701)。未使用領域接合部4は、一方の領域が、他方の領域に包含されるか否かを判定する(S702)。
【0153】
たとえば、図16(a)を参照して、未使用領域となるべき領域が論理ブロック3および4からなり、未使用領域となるべき領域の記録位置が前方に位置するフリーブロック群が論理ブロック0〜2、記録位置が後方に位置するフリーブロック群が論理ブロック5〜6より構成されているものとする。このような場合には、未使用領域となるべき領域がフリーブロック群に包含されている。
【0154】
また、図16(b)を参照して、未使用領域となるべき領域が論理ブロック0〜2および5〜6より構成され、未使用領域となるべき領域の記録位置が前方に位置するフリーブロック群が論理ブロック3および4より構成されているものとする。このような場合には、フリーブロック群が未使用領域となるべき領域に包含されている。
【0155】
一方の領域が他方の領域に包含されている場合には(S702でtrue)、2つの領域を1つのフリーブロック群として管理するため、trueを返す(S704)。
【0156】
それ以外の場合には(S702でfalse)、2つの領域間の距離があらかじめ設定された値以下であるかを判定する(S703)。2つの領域間の距離が設定値以下の場合は(S703でtrue)、trueを返す(S704)。2つの領域間の距離が設定値より大きい場合には(S703でfalse)、falseを返す(S705)。
【0157】
図17を参照して、図14のS602およびS606の距離判定処理においては以下に示すように、2つの領域の属するシリンダが近い場合に接合するようにしてもよい。
【0158】
未使用領域接合部4は、領域Aの開始論理ブロック番号(As)および終了論理ブロック番号(Ae)、ならびに領域Bの開始論理ブロック番号(Bs)および終了論理ブロック番号(Be)を獲得する(S801)。
【0159】
未使用領域接合部4は、一方の領域が、他方の領域に包含されるか否かを判定する(S802)。一方の領域が他方の領域に包含される場合には(S802でtrue)、trueを返す(S806)。
【0160】
それ以外の場合には(S802でfalse)、未使用領域接合部4は、領域Aの開始論理ブロックが含まれるシリンダ番号Assおよび終了論理ブロックが含まれるシリンダ番号Ase、ならびに領域Bの開始論理ブロックが含まれるシリンダ番号Bssおよび終了論理ブロックが含まれるシリンダ番号Bseを獲得する(S803)。未使用領域接合部4は、2つの領域間の距離があらかじめ設定されたシリンダ数以下か否かを判定し(S804)、設定値以下の場合にはtrue(S806)を、設定値より大きい場合にはfalse(S805)を返す。
【0161】
図18を参照して、図14のS604およびS607の接合判定処理について説明する。ここでは、複数のフリーブロック群を接合する際に、あらかじめ設定された値を越えないように接合を行なう。接合した際のフリーブロック群の長さは、各々のフリーブロック群に含まれる論理ブロック数を合計する事により求められる。
【0162】
未使用領域接合部4は、2つの領域の論理ブロック数を合計し(S901)、合計値があらかじめ設定された値以下であるかを判定する(S902)。未使用領域接合部4は、設定値以下の場合は(S902でtrue)、trueを(S903)、設定値よりも大きい場合は(S902でfalse)、falseを返す(S904)。
【0163】
図19を参照して、図14のS604およびS607の接合判定処理では以下に示すように、ハードディスク6中で予め設定された境界を横切らない場合にのみ、接合を行なうように判定を行なってもよい。
【0164】
たとえば、ハードディスク6中で境界を512MByte毎に設けた場合は、2つの領域の開始論理ブロックアドレスの10ビット目以上が一致すれば、2つの領域は同一の境界に存在すると判定できる。
【0165】
従って、未使用領域接合部4は、入力された2つの領域の開始ブロックの上位nビットを比較し(S1001)、一致するか否かを判定する(S1002)。上位nビットが一致した場合は(S1002でtrue)、trueを(S1003)、一致しない場合は(S1002でfalse)、falseを返す(S1004)。
【0166】
ファイルをクローズする際に、記録されずに残った論理ブロックは未使用領域として返却する必要がある。この時、フリーブロック群の断片化を避けるために、返却される領域の大きさが一定値以内の場合には返却を行なわないようにする必要がある。
【0167】
図20を参照して、ファイル管理部1は、ファイルをクローズする際に、最後にデータの書込を行なった論理ブロック番号(Wp)を獲得する(S1101)。ファイル管理部1は、論理ブロックWpが、ファイルに最後に割当てられた領域内に存在するかを判定する(S1102)。論理ブロックWpが最後に割当てられた領域内に存在する場合(S11102でtrue)、ファイル管理部1は、最後に割当てた領域のブロック数lcと、最後に書込を行なった論理ブロックの該当領域先頭からのブロック数Wpcとを獲得する(S1103)。たとえば、最後に割当てられた領域が論理ブロック番号8〜14の論理ブロックからなり、最後に書込を行なった論理ブロックの番号が12である場合は、ブロック数lcは7であり、論理ブロック先頭からのブロック数Wpcは5である。
【0168】
ファイル管理部1は、ブロック数lcとWpcとの差が予め定められた値以下であるか否かを判断する(S1104)。両者の差が設定値よりも大きい場合には(S1104でfalse)、未使用領域接合部4により最後に割当てた論理ブロック以降のブロックがフリーブロック群として登録される(S1105)。S1105の処理は、図14に示した未使用領域の接合処理と同様である。このため、その詳細な説明はここでは繰返さない。
【0169】
[遅延交替処理部5について]
遅延交替処理部5は、ハードディスク6の論理ブロックへのデータ書込時にエラーが発生した場合には、エラー発生箇所に書込まれるべきデータをメモリに一時的に記憶し、その論理ブロックが交替中であることを示すフラグを設定する。また、遅延交替処理部5は、ハードディスク6へのアクセスに時間的余裕がある場合に、エラー発生箇所の含まれる論理ブロックを交替先の論理ブロックに書込むとともに、エラー発生箇所のデータをメモリから読出し、交替先の論理ブロックに書込む処理を行なう。本明細書中では、このような処理を、遅延交替処理と呼ぶ。
【0170】
交替処理では、ハードディスク6のパフォーマンスを低下させないように、データアクセスを行なう必要がある。このため、論理ブロック単位でデータアクセスを行ない、交替処理を行なう必要がある。論理ブロックごとデータを交替したとしても、論理ブロック間のシーク時間と回転待ち時間とは加味されて論理ブロックのサイズは決められている。このため、ハードディスク6のパフォーマンスは保証される。
【0171】
ただし、交替処理では、エラーの発生した論理ブロックおよび交替先となる論理ブロックの両者に対して書込を行なわなければならない。このため、エラーの発生直後に交替処理を行なうと一時的にハードディスク6に入出力できるデータ量が低下する。従って、ハードディスク6のパフォーマンスに余裕がない場合は、交替処理を行なうことはできない。
【0172】
本実施の形態の遅延交替処理では、エラーの直後に交替処理を行なうのではなく、ハードディスク6のパフォーマンスに余裕がある時に、実際の交替処理を行なう。パフォーマンスに余裕があるか否かの判断は、取扱うデータの個数により計測される。たとえば、3つのデータを同時に入出力可能なハードディスク6の場合には、取扱うデータが2つであれば、ディスクのパフォーマンスに余裕がある事が分かる。また、ファイル管理装置10用の時計を有し、単位時間あたりに取扱ったデータ量を計測し、ハードディスク6のパフォーマンスに余裕があるときに交替処理を行なうようにしてもよい。
【0173】
遅延交替処理では、交替先の論理ブロックに再記録されるべきデータを保存するメモリが必要となる点である。再記録されるべきデータをすべてメモリ上に保存すると、その容量は大きくなってしまう。このため、図21(a)を参照して、本実施の形態では、エラーの発生した箇所のみをメモリに保存して、その他の部分のデータは、エラーの発生した論理ブロックに記憶するようにする。メモリに保存する単位としては、エラーの発生したセクタや、サブブロックなどが考えられる。これにより、交替処理を遅延させた結果、再記録されるべきデータを保存するメモリ量を抑えることができる。
【0174】
図21(b)を参照して、エラーの発生した箇所が論理ブロックの末端近くである場合には、エラーの発生した箇所以降のデータをメモリに保存して、エラー発生箇所よりも前に位置する部分のデータは、その論理ブロックのデータを利用するようにしてもよい。
【0175】
また、遅延交替処理では、交替すべき論理ブロックのデータを読出す必要がある場合に、正しいデータのすべてがハードディスク6上に存在しない場合がある。これは、追っかけ再生のように、記録しているデータを記録しながら読出すような場合に発生する。このような場合には、エラーの発生した箇所のデータはメモリから読出し、その他の正しく記録されている部分のデータは、エラーの発生した論理ブロックから読出す。よって、ハードディスク6にデータが存在しない場合の追っかけ再生であっても、データが乱れて再生されるようなことはない。
【0176】
さらに、遅延交替処理では、実際の交替処理を行なう前に、停電等が起こった場合には、メモリに保存したデータを紛失する可能性がある。このため、メモリだけでなく、他の不揮発性の記録媒体にエラーの発生した箇所のデータを保存するようにする。このようにすれば、メモリに保存したデータを紛失した場合であっても、データの回復が可能である。なお、不揮発性の記録媒体としては、フラッシュメモリ等が挙げられる。
【0177】
図22を参照して、遅延交替処理について説明する。ここでは、エラー発生箇所をメモリに保存する際に、サブブロック単位で保存する。
【0178】
遅延交替処理部5は、ハードディスク6へのデータの書込時にエラーが発生しているか否かを調べる(S1301)。書込エラーが発生した場合には(S1301でtrue)、遅延交替処理部5は、エラーの発生したセクタの属する論理ブロックおよびサブブロックを求める(S1302)。論理ブロックのサイズが1MByteの場合には、セクタの番号を20ビットシフトすることにより論理ブロックの番号を求めることができる。また、サブブロックのサイズが128Kバイトの場合には、セクタの番号を17ビットシフトし、下位3ビットを抽出することにより、サブブロックの番号を求めることができる。
【0179】
遅延交替処理部5は、図2に示した領域管理テーブルの該当する論理ブロックの交替フラグに交替処理が遅延していることを示すデータを設定する(S1303)。遅延交替処理部5は、書込エラーの発生したサブブロックのデータをメモリに保存するとともに(S1304)、同じデータを不揮発性の記録媒体に保存する(S1305)。
【0180】
この時、メモリや不揮発性の記録媒体には、書込エラーの発生したサブブロックのデータ以外に、そのデータが属する論理ブロックおよびサブブロックの番号なども保存される。
【0181】
データの書込エラーが発生していない場合には(S1301でfalse)、交替処理が遅延されている論理ブロックが存在するか否かを調べる(S1306)。交替処理が遅延されている論理ブロックが存在する場合には(S1306でtrue)、遅延交替処理部5は、交替処理を行なう余裕があるか否かを判定する(S1307)。
【0182】
交替処理を行なう余裕がある場合には(S1307でtrue)、遅延交替処理部5は、未使用領域の中から交替先となる論理ブロックを獲得する(S1308)。遅延交替処理部5は、交替元となる論理ブロックから、書込が成功した領域を読出し、エラーの発生したサブブロックのデータは、保存したメモリ上から読出し、交替先に記録すべきデータを作成する(S1309)。遅延交替処理部5は、作成したデータを交替先の論理ブロックに記録する(S1310)。その後、遅延交替処理部5は、領域管理テーブル上の交替元となる論理ブロックの交替フラグを交替済みであることを示す値に変更し、交替先論理ブロックと交替元論理ブロックとを置き換える(S1311)。
【0183】
S1311の処理としては、交替元論理ブロックの前後に位置する論理ブロックのポインタが交替先論理ブロックを指すように変更したり、交替元論理ブロックのポインタ領域を交替先の論理ブロックを指すように変更し、交替先の論理ブロックのポインタを交替元の前後に位置する論理ブロックを指すように変更することが考えられる。
【0184】
図23を参照して、この処理について説明する。図23(a)は、エラーが検知される前の領域管理テーブルの状態を示している。論理ブロック番号が0から511までの領域の使用フラグは1であり、それらの論理ブロックがファイルで使用されていることを表す。また、交替フラグの値はすべて0であるため、交替処理は行なわれていないことを示している。
【0185】
この時、論理ブロック番号1の書込時にエラーが発生したものとする。図23(b)を参照して、1番の論理ブロックの交替フラグの値が2に設定され、その論理ブロックが交替中であることが示される。
【0186】
図23(c)を参照して、このブロックの交替先の論理ブロックとして、4095番の論理ブロックが選択された場合には、4095番の論理ブロックの前ブロック相対アドレスおよび次ブロック相対アドレスの値がそれぞれ0番および2番の論理ブロックを指し示すように書換えられる。また、交替元の1番の論理ブロックには、交替先の論理ブロックの番号4096が代入される。さらに、1番の論理ブロックの交替フラグには、交替処理が終了したことを示す値1が設定される。
【0187】
または、図23(d)を参照して、交替先の論理ブロックの前ブロック相対アドレスおよび次ブロック相対アドレスの値が、それぞれ0番および2番の論理ブロックを指し示すように書換えられる。また、0番の論理ブロックの次ブロック相対アドレスおよび2番の論理ブロックの前ブロック相対アドレスが4095番のブロックを指し示すように変更される。また、1番の論理ブロックの交替フラグには、交替処理が終了したことを示す値1が設定される。
【0188】
図24を参照して、記録媒体制御部2は、読出対象の論理ブロックが交替されていない状態である場合には、エラーが発生した箇所のデータについては、メモリに記憶された正常なデータを読出し、それ以外の部分については、ハードディスク6から読出す処理を行なう。
【0189】
記録媒体制御部2は、読出対象の論理ブロックが交替中であり、交替処理が終了していないか否かを調べる(S1401)。交替処理が終了していなければ(S1401でtrue)、エラーの発生した箇所以外のデータを読出対象の論理ブロックから読出し(S1402)、メモリからエラーの発生した箇所の正常なデータ読出す(S1403)。
【0190】
交替処理が終了していれば(S1401でfalse)、通常の読出処理を行なう(S1404)。
【0191】
ハードディスク6では、1つのコマンドで転送可能なセクタ数は、256個までである。このため、1MByteの論理ブロックを転送するためには、1MByteのデータを8等分し、それぞれのデータを分割転送する必要がある。しかし、ハードディスク内部では、キャッシュメモリを使用している。このため、複数のデータに分割して転送したとしても、転送データのハードディスク6上でのセクタが連続している限りは、転送コマンド間でのシーク時間および回転待ち時間は発生しない。
【0192】
従って、書込エラーが生じた場合には、256セクタ単位でデータをメモリに保存するようにすれば、エラーが発生した箇所を読出すためのコマンドをハードディスク6に転送する必要がなくなる。また、メモリへ保存するデータサイズの大きさと、上述したサブブロックの大きさとを等しくすれば、ファイル管理装置10におけるデータの管理がしやすくなる。
【0193】
なお、ハードディスク6以外にも、MO(Magneto-Optical)、DVD−RAM(Digital Video Disk-Random Access Memory)などの円盤状の記録媒体を用いてもよい。
【0194】
以上説明したように本発明の実施の形態に係るファイル管理装置によると、未使用領域は、未使用領域接合部4で接合され、未使用領域管理部3により管理される。このため、1つのファイルの記録媒体上での連続性をなるべく保つことができ、記録媒体のパフォーマンスを保証することができる。特に、デジタル映像音声データのように大容量で、かつ読出および書込時にリアルタイム性が要求される場合でも、記録媒体のパフォーマンスを保証することができる。
【0195】
また、データの書込に余裕がある場合に遅延処理を実行させることができる。このため、リアルタイム性が要求されるファイルの読出または書込途中であっても、読出または書込の邪魔をすることなく遅延処理を実行させることができる。
【0196】
さらに、小サイズのデータについては、サブブロック単位でのアクセスを行なうことにより、アクセス効率を向上させることができる。
【0197】
さらにまた、未使用領域のうち、記録媒体上で連続した論理ブロックをフリーブロック群として、まとめて管理することにより、ファイルへの領域割当や、不要になった領域の接合処理などを効率良く行なうことができる。
【0198】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0199】
【発明の効果】
本発明によるとデジタル映像音声データのように大容量で、かつ読出および書込時にリアルタイム性が要求されるデータを取扱う場合でも、記録媒体のパフォーマンスを保証することができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態に係るファイル管理装置のハードウェア構成を示すブロック図である。
【図2】 領域管理テーブルの一例を示す図である。
【図3】 ファイル管理テーブルの一例を示す図である。
【図4】 論理ブロックを単位として、1つのファイルまたは複数のファイルをアクセスする処理を説明するための図である。
【図5】 サブブロック単位でデータをアクセスする処理を説明するための図である。
【図6】 ファイル管理部および記録媒体制御部の実行する処理のフローチャートである。
【図7】 未使用領域管理部の管理形態の概略を説明するための図である。
【図8】 未使用領域を管理するための未使用領域管理テーブルおよび領域管理テーブルの一例を示す図である。
【図9】 外部からの指示に従って、フリーブロックを割当てる処理のフローチャートである。
【図10】 未使用領域の断片化の一例を説明するための図である。
【図11】 フリーブロック群の割当方を説明するための図である。
【図12】 フリーブロック群の割当方を説明するための図である。
【図13】 ファイル管理方法によるファイル領域割当処理のフローチャートである。
【図14】 フリーブロック群の接合処理のフローチャートである。
【図15】 フリーブロック群の距離を判定する処理のフローチャートである。
【図16】 領域の包含関係を説明するための図である。
【図17】 フリーブロック群の距離を判定する処理のフローチャートである。
【図18】 接合判定処理のフローチャートである。
【図19】 接合判定処理のフローチャートである。
【図20】 未使用領域返却処理のフローチャートである。
【図21】 遅延交替処理を説明するための図である。
【図22】 遅延交替処理のフローチャートである。
【図23】 交替先論理ブロックと交替元論理ブロックとを交換する処理を説明するための図である。
【図24】 記録媒体制御部2の行なう処理のフローチャートである。
【図25】 特開平11−96052号公報のファイル管理装置による記録領域の分割方法を説明するための図である。
【符号の説明】
1 ファイル管理部、2 記録媒体制御部、3 未使用領域管理部、4 未使用領域接合部、5 遅延交替処理部、6 ハードディスク、10 ファイル管理装置。
Claims (25)
- デジタル映像データ、デジタル音声データその他の大容量で読出および書込にリアルタイム性が要求されるようなデータを入出力可能なファイル管理装置であって、
各々、その中に含まれるセクタの連続配置を保証し、かつ要求されるアクセス速度を上回ることを保証するために、1つの論理ブロックに含まれるセクタ数が決定されている複数の論理ブロックに区切られた記録媒体と、
前記記録媒体に記録されたファイルを管理するファイル管理情報を管理するファイル管理部と、
前記ファイル管理部および前記記録媒体に接続され、前記ファイル管理情報に基づいて、前記記録媒体に対するデータの書込および読出を行なう記録媒体制御部と、
前記ファイル管理部に接続され、前記記録媒体中の未使用の論理ブロックを前記記録媒体上で連続している領域毎に管理する未使用領域管理部と、
前記ファイル管理部および前記未使用領域管理部に接続され、新たに未使用領域が発生した際に、未使用領域管理テーブルを用いることで、前記新たな未使用領域を他の未使用領域に接合し、新たな領域とする未使用領域接合部と、
前記ファイル管理部および前記記録媒体制御部に接続され、前記記録媒体への書込エラーを検出した際に、エラーが発生した箇所に記録されるべきデータをメモリに保存し、前記メモリへの保存に遅延させて、交替処理を行なう余裕があるときに、前記メモリ上のデータと、書込エラーが発生した論理ブロックに含まれるエラーの発生した箇所以外のデータとを他の論理ブロックへ書込み、論理ブロックを代替する遅延交替処理部とを含む、ファイル管理装置。 - 前記論理ブロックは、所定個数のサブブロックを含み、
前記記録媒体制御部は、前記記録媒体に対するデータの書込および読出が所定量以下の場合には、サブブロック単位でデータの書込および読出を行なう、請求項1に記載のファイル管理装置。 - 前記未使用領域管理部は、未使用領域管理テーブルを用いることで、未使用の論理ブロックを所定数の連続領域ごとに管理する、請求項1に記載のファイル管理装置。
- 前記記録媒体は、所定数の同心円により区切られた複数のゾーンを含み、
前記未使用領域管理部は、所定の同心円よりも外側のゾーンに属する論理ブロックのみを未使用領域として登録する、請求項1に記載のファイル管理装置。 - 前記記録媒体は、所定数の同心円により区切られた複数のゾーンを含み、
前記未使用領域管理部は、所定の同心円よりも内側のゾーンに属する未使用の論理ブロックと、それ以外のゾーンに属する未使用の論理ブロックとを区別して管理する、請求項1に記載のファイル管理装置。 - ファイル管理部は、ファイル作成時に、作成されるファイルのサイズが不定の場合には、前記ファイルにあらかじめ定められた大きさの連続領域を割当てる、請求項1に記載のファイル管理装置。
- ファイル管理部は、サイズが不定のファイルに対して、さらに領域を割当てる際には、未使用領域の内で最大長の連続領域を割当てる、請求項6に記載のファイル管理装置。
- ファイル管理部は、
ファイルサイズが予め定められているファイルの作成時に、前記ファイルサイズに到達するまで、連続する未使用領域をサイズの大きいものから順に前記ファイルに割当てるための手段と、
前記ファイルに割当てられていない未使用領域のうち、最後に前記ファイルに割当てられた未使用領域と、当該未使用領域と交換可能な未使用領域とを交換するための交換手段とを含む、請求項1に記載のファイル管理装置。 - 前記交換手段は、前記ファイルに割当てられていない最大の未使用領域と、最後に前記ファイルに割当てられた未使用領域とを交換しても、前記ファイルサイズを満たす場合に、2つの未使用領域を交換するための手段を含む、請求項8に記載のファイル管理装置。
- 前記ファイル管理部は、さらに、ファイルサイズが予め定められているファイルに、未使用領域をさらに追加する際には、最大の未使用領域を前記ファイルに割当てるための追加割当手段を含む、請求項8または9に記載のファイル管理装置。
- 前記記録媒体は、所定数の同心円により区切られた複数のゾーンを含み、
前記未使用領域管理部は、所定の同心円よりも外側のゾーンに属する未使用の論理ブロックと、それ以外のゾーンに属する未使用の論理ブロックとを区別して管理し、
前記追加割当手段は、外部からに指示に従い、ファイルに未使用領域を追加する際には、前記所定の同心円よりも外側のゾーンに属する最大の未使用領域を前記ファイルに割当てるための手段を含む、請求項10に記載のファイル管理装置。 - 前記ファイル管理部は、ファイルをクローズする際に、前記ファイルに割当てられた領域のうち、未使用の論理ブロックを、前記未使用領域管理部に登録する、請求項1に記載のファイル管理装置。
- 前記ファイル管理部は、未使用の論理ブロック数が予め定められた個数以上の場合にのみ、前記未使用の論理ブロックを前記未使用領域管理部に登録する、請求項12に記載のファイル管理装置。
- 前記未使用領域接合部は、前記ファイル管理部により登録された未使用の論理ブロックに隣接する領域が未使用領域であれば、前記未使用の論理ブロックと、前記隣接する領域とを接合する、請求項13に記載のファイル管理装置。
- 前記遅延交替処理部は、前記他の論理ブロックを前記未使用領域管理部で管理されている未使用の論理ブロックより獲得する、請求項1に記載のファイル管理装置。
- 前記遅延交替処理部は、前記記録媒体への書込エラーを検出した際に、エラーが発生した箇所に記録されるべきデータをメモリに保存するとともに、不揮発性の記録媒体にも保存する、請求項1に記載のファイル管理装置。
- 前記記録媒体制御部は、書込エラーが発生した箇所に記録されるべきデータが前記他の論理ブロックに書込まれていない際に、前記書込エラーが発生した論理ブロックに対する読出要求があった場合には、前記メモリ上のデータと、前記書込エラーが発生した論理ブロックに含まれるエラーの発生した箇所以外のデータとを読出す、請求項1に記載のファイル管理装置。
- 前記未使用領域管理部は、未使用領域管理テーブルを用いることで、記録媒体上で連続した未使用の論理ブロックを1つのフリーブロック群として管理する、請求項1に記載のファイル管理装置。
- 前記未使用領域接合部は、複数のフリーブロック群が記録媒体上で連続している場合は、未使用領域管理テーブルを用いることで、複数のフリーブロック群を接合し、新たなフリーブロック群とする、請求項18に記載のファイル管理装置。
- 前記未使用領域接合部は、2つのフリーブロック群の前記記録媒体上での距離が一定値以内であれば、未使用領域管理テーブルを用いることで、2つのフリーブロック群を接合し、新たなフリーブロック群とする、請求項18に記載のファイル管理装置。
- 前記距離は、2つのフリーブロック間の論理ブロック数により定められる、請求項20に記載のファイル管理装置。
- 前記距離は、2つのフリーブロック間のシリンダ数により定められる、請求項20に記載のファイル管理装置。
- 前記未使用領域接合部は、予め定められた長さを超えない範囲で、2つのフリーブロック群を接合する、請求項20に記載のファイル管理装置。
- 前記記録媒体には、予め複数の境界が設定されており、
前記未使用領域接合部は、2つのフリーブロック群が前記境界をまたがない場合にのみ、前記2つのフリーブロック群を接合する、請求項20に記載のファイル管理装置。 - デジタル映像データ、デジタル音声データその他の大容量で読出および書込にリアルタイム性が要求されるようなデータを入出力可能なファイル管理方法であって、
各々、その中に含まれるセクタの連続配置を保証し、かつ要求されるアクセス速度を上回ることを保証するために、1つの論理ブロックに含まれるセクタ数が決定されている複数の論理ブロックに区切られた記録媒体を管理するファイル管理装置で用いられ、
前記記録媒体に記録されたファイルを管理するファイル管理情報を管理するステップと、
前記ファイル管理情報に基づいて、前記記録媒体に対するデータの書込および読出を行なうステップと、
前記記録媒体中の未使用の論理ブロックを前記記録媒体上で連続している領域ごとに管理するステップと、
新たに未使用領域が発生した際に、未使用領域管理テーブルを用いることで、前記新たな未使用領域を他の未使用領域に接合し、新たな領域とするステップと、
前記記録媒体への書込エラーを検出した際に、エラーが発生した箇所に記録されるべきデータをメモリに保存し、前記メモリへの保存に遅延させて、交替処理を行なう余裕があるときに、前記メモリ上のデータと、書込エラーが発生した論理ブロックに含まれるエラーの発生した箇所以外のデータとを他の論理ブロックへ書込み、論理ブロックを代替するステップとを含む、ファイル管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000154756A JP3702147B2 (ja) | 2000-05-25 | 2000-05-25 | ファイル管理装置および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000154756A JP3702147B2 (ja) | 2000-05-25 | 2000-05-25 | ファイル管理装置および方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005136209A Division JP4134095B2 (ja) | 2005-05-09 | 2005-05-09 | ファイル管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001337851A JP2001337851A (ja) | 2001-12-07 |
JP3702147B2 true JP3702147B2 (ja) | 2005-10-05 |
Family
ID=18659803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000154756A Expired - Fee Related JP3702147B2 (ja) | 2000-05-25 | 2000-05-25 | ファイル管理装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3702147B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509342B2 (en) | 2002-02-08 | 2009-03-24 | Sanyo Electric Co., Ltd. | File data storage management method, file data storage device, program executing processing for storing file data, and storage medium |
JP4528714B2 (ja) | 2005-11-18 | 2010-08-18 | 株式会社東芝 | 情報記録再生方法及び記録再生装置 |
JP4714291B2 (ja) | 2009-09-30 | 2011-06-29 | 株式会社東芝 | 情報記録装置、情報記録方法及び情報記録用プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2872276B2 (ja) * | 1989-06-30 | 1999-03-17 | 株式会社日立製作所 | データ記録装置 |
JP3057498B2 (ja) * | 1989-08-02 | 2000-06-26 | 富士通株式会社 | アレイディスク装置およびそのデータ読み出し方法 |
JPH07134670A (ja) * | 1993-11-09 | 1995-05-23 | Toshiba Corp | 領域割付方法 |
JPH07325669A (ja) * | 1994-05-31 | 1995-12-12 | Mitsubishi Electric Corp | ディスク管理方法 |
JPH0935417A (ja) * | 1995-07-12 | 1997-02-07 | Nippon Telegr & Teleph Corp <Ntt> | 情報記憶装置の一時記憶情報バックアップ装置及びその方法 |
JPH1196052A (ja) * | 1997-09-17 | 1999-04-09 | Matsushita Electric Ind Co Ltd | ファイル管理装置 |
-
2000
- 2000-05-25 JP JP2000154756A patent/JP3702147B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001337851A (ja) | 2001-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5265113B2 (ja) | データ処理装置 | |
JP4242966B2 (ja) | リアルタイム記録/再生情報を貯蔵する記録媒体 | |
US7068918B1 (en) | Recording medium for storing real time recording/reproduction information, method and apparatus for recording and reproducing in real time, and file operating method using the same | |
JP2004520672A (ja) | シーケンシャルな媒体にファイルを記録する方法及び装置、シーケンシャルな媒体からファイルを読み込む方法及び装置、並びにシーケンシャルな媒体 | |
JP4604806B2 (ja) | 記録装置 | |
JP4256075B2 (ja) | ファイルシステム及び記憶領域の管理方法 | |
JP3170499B1 (ja) | 情報記録媒体及びその記録方法と再生方法及びそのシステム制御部とその情報記録装置と情報再生装置 | |
JP4221959B2 (ja) | ブリッジファイルシステム、コンピュータシステム、ブリッジファイルシステムを用いたデータ管理方法及び記録媒体 | |
JP4180100B2 (ja) | ファイル管理装置 | |
JP3702147B2 (ja) | ファイル管理装置および方法 | |
JP5394394B2 (ja) | ファイルシステムにおけるファイル管理・編集方法及び装置 | |
JP4134095B2 (ja) | ファイル管理装置 | |
WO2001008013A1 (fr) | Procede de gestion de support sur disque | |
JP4269870B2 (ja) | 記録再生装置及び記録方法 | |
EP0927934A1 (en) | File managing device, file managing method, and recording medium stored with file managing program | |
JP4272195B2 (ja) | 情報記録媒体、情報記録方法、情報記録装置、情報再生方法および情報再生装置 | |
JP3698630B2 (ja) | 情報記録媒体及びその記録方法と再生方法及びそのシステム制御部とその情報記録装置と情報再生装置 | |
JP7262977B2 (ja) | 記録装置及びその制御方法、並びにプログラム | |
JP4480592B2 (ja) | ファイルシステム | |
JP3171585B1 (ja) | 情報記録媒体及びその記録方法と再生方法及びそのシステム制御部とその情報記録装置と情報再生装置 | |
JP3171584B1 (ja) | 情報記録媒体及びその記録方法と再生方法及びそのシステム制御部とその情報記録装置と情報再生装置 | |
JP2007265010A (ja) | ファイル再生装置およびファイル再生方法ならびにプログラム | |
JP4160334B2 (ja) | 情報記録媒体、情報記録方法、情報記録装置、情報再生方法および情報再生装置 | |
JP2001043662A (ja) | ディスク媒体管理方法 | |
JP3171586B1 (ja) | 情報記録媒体及びその記録方法と再生方法及びそのシステム制御部とその情報記録装置と情報再生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050509 |
|
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: 20050628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050715 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3702147 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080722 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090722 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100722 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110722 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110722 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120722 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120722 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130722 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |