(57)【特許請求の範囲】
【請求項１】
複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶管理方法であって、
前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを含むとともに、該ブロック管理テーブルと、連続した複数の前記ブロックから構成したユニットの属性を管理するユニット属性テーブルとに基づいてファイルデータを記憶する処理を含み、
前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報と、各ユニットに対する書き込みおよび／または読み出しレートのランクを規定する情報を含み、
前記データ記憶処理は、
記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能で且つこのファイルデータに要求される書き込みおよび／または読み出しレートを満たす未使用の前記ユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶し、
記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶する処理を含む、
ことを特徴とするファイルデータ記憶管理方法。
【請求項２】
請求項１において、
前記データ記憶処理は、
記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを獲得できないとき、前記ユニット属性テーブルを参照して、未使用のユニットを検索し、この検索により獲得されたユニットに含まれる前記ブロックにこのファイルデータを記憶する処理を含む、
ことを特徴とするファイルデータ記憶管理方法。
【請求項３】
請求項１または２において、
ファイルデータの書き込みまたは読み出し時に、前記ユニットに対する書き込みまたは読み出しをこのファイルデータに要求される書き込みおよび／または読み出しレートにてなし得なかった場合、このユニットの書き込み／読み出しレートのランクを、このファイルデータに要求された書き込み／読み出しレートのランクよりも低いランクに変更するレートランク変更処理を、更に含むことを特徴とするファイルデータ記憶管理方法。
【請求項４】
複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶装置であって、
前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するための手段と、
連続した複数の前記ブロックから構成したユニットの属性を管理するユニット属性テーブルを生成するための手段と、
前記ブロック管理テーブルと前記ユニット属性テーブルに基づいてファイルデータを記憶するための手段とを備え、
前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報と、各ユニットに対する書き込みおよび／または読み出しレートのランクを規定する情報を含み、
前記データを記憶するための手段は、
記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能で且つこのファイルデータに要求される書き込みおよび／または読み出しレートを満たす未使用の前記ユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶し、
記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶する、
ことを特徴とするファイルデータ記憶装置。
【請求項５】
請求項４において、
前記データを記憶するための手段は、
記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを獲得できないとき、前記ユニット属性テーブルを参照して、未使用のユニットを検索し、この検索により獲得されたユニットに含まれる前記ブロックにこのファイルデータを記憶する、
ことを特徴とするファイルデータ記憶装置。
【請求項６】
請求項４または５において、
ファイルデータの書き込みまたは読み出し時に、前記ユニットに対する書き込みまたは読み出しをこのファイルデータに要求される書き込みおよび／または読み出しレートにてなし得なかった場合、このユニットの書き込み／読み出しレートのランクを、このファイルデータに要求された書き込み／読み出しレートのランクよりも低いランクに変更する処理を実行するための手段を、更に含むことを特徴とするファイルデータ記憶装置。
【請求項７】
複数のブロックに分割された記憶領域にファイルデータを記憶するための処理を実行するプログラムであって、
前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するステップと、
連続した複数の前記ブロックからユニットを構成し、各ユニットの属性を管理するユニット属性テーブルを生成するステップと、
前記ブロック管理テーブルと前記ユニット属性テーブルに基づいてファイルデータを記憶するデータ記憶ステップとを含み、
前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報と、各ユニットに対する書き込みおよび／または読み出しレートのランクを規定する情報を含み、
前記データ記憶ステップは、
記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能で且つこのファイルデータに要求される書き込みおよび／または読み出しレートを満たす未使用の前記ユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶し、
記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶するステップを含む、
ことを特徴とするプログラム。
【請求項８】
請求項７において、
前記データ記憶ステップは、
記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを獲得できないとき、前記ユニット属性テーブルを参照して、未使用のユニットを検索し、この検索により獲得されたユニットに含まれる前記ブロックにこのファイルデータを記憶するステップを含む、
ことを特徴とするプログラム。
【請求項９】
請求項７または８において、
ファイルデータの書き込みまたは読み出し時に、前記ユニットに対する書き込みまたは読み出しをこのファイルデータに要求される書き込みおよび／または読み出しレートにてなし得なかった場合、このユニットの書き込み／読み出しレートのランクを、このファイルデータに要求された書き込み／読み出しレートのランクよりも低いランクに変更するレートランク変更ステップを、更に含む、
ことを特徴とするプログラム。
【請求項１０】
複数のブロックに分割された記憶領域にファイルデータが記憶される記憶媒体であって、
前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルと、
連続した複数の前記ブロックから構成したユニットの属性を管理するユニット属性テーブルとが記憶され、
前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報と、各ユニットに対する書き込みおよび／または読み出しレートのランクを規定する情報を含む、
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体に関し、特に、リアルタイムファイルデータと非リアルタイムファイルデータを効率的に記憶し得るものである。
【０００２】
【従来の技術】
一つのファイルを構成するデータ（以下、ファイルデータという）を記憶媒体に記憶する場合、記憶媒体の記憶領域を所定の同一容量に分割したブロックに対してファイルデータを割り当てる方法がとられる。このファイル記憶方法では、ブロック管理テーブルによって、各ブロックの使用／未使用が管理されている。
【０００３】
ファイルデータの記憶は、このブロック管理テーブルを参照して未使用ブロックを検索し、ファイルデータの容量に従って複数の未使用ブロックをデータ記憶用として割り当てることにより行われる。この際、どのブロックを用いてファイル情報を記憶したかを示すファイル構成テーブルが作成される。このファイル構成テーブルとしては、例えば、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）などが用いられる。ＦＡＴはファイルを構成するブロックの物理的な繋がりを規定するものである。具体的には、ブロックに付されたユニークなブロック番号を用いて、記憶領域の全てのブロックに対し、そのブロック番号とそのブロックと論理的に続くブロックの番号とを対応づけるテーブルが作成される。
【０００４】
【発明が解決しようとする課題】
ブロック長以上の容量を持つファイルデータ、例えば映像やオーディオなどの記憶容量の大きいデータを記憶する場合には、複数のブロックに跨ってファイルデータが格納されることとなる。ここで、記憶媒体上の物理的に非連続な領域に飛び飛びにデータが記憶されると、これらのデータをリアルタイム処理して読出す場合に、ドライブヘッドの移動時間によって、アクセスをスムーズに行なうことができず、連続的なデータ処理が困難になってしまう可能性がある。したがって、このようなリアルタイム処理される大容量データの記憶を考慮すると、一つのブロックの容量を大きく設定し、物理的に連続した領域を少しでも大きく確保するようにするのが望ましい。
【０００５】
一方、ファイルのデータ容量は、ファイルの種類によってさまざまであり、ごく小さな文書ファイル等のように、非常にデータ容量の小さいファイルも存在する。
【０００６】
しかしながら、現状のファイル記憶方法においては、ファイルデータの記憶はブロック単位で実行されるため、１つのブロックに２つ以上のファイルデータを記憶することはできない。したがって、ブロックの容量を大きく取りすぎると、各ブロック内に、実際のデータは記憶されていないが他のファイルのデータを記憶することが不可能な空き領域が増加してしまい、その結果、記憶領域の使用効率が著しく低下してしまうという問題が生じる。
【０００７】
反対に、ブロックの容量を小さくしすぎると、大容量のファイルデータを記録する場合に、リンクされるブロックの数が非常に大きくなり、これらのデータを読出す際のアクセス性能の低下が懸念される。
【０００８】
また、データを頻繁に入出力することによって、データの記憶・消去が繰り返されると、物理的に連続した空き領域を確保することが困難となり、いわゆるフラグメンテーション（断片化）が生じるという問題点も起こり得る。
【０００９】
図１４に、記憶媒体に対するファイルデータの割り当ての一例と、その際のブロック管理テーブルおよび各ブロックの使用状態を示す。同図のブロック管理テーブル中、１はそのブロックが使用されている状態、０はそのブロックが未使用の状態を示す。また、図中のハッチ部３０ｘが使用ブロック、無地部３０ｙが未使用の空きブロックである。図１４では、空ブロックが点在しており、フラグメンテーションが発生している。
【００１０】
これに対し、例えば図１５に示すように、４つのブロックを一つのブロックとみなすように管理テーブルを構成することもできる。このようにブロック管理テーブルで扱うデータ容量を大きくすることで、前述のフラグメンテーションの問題をある程度解決することができる。しかしこのようにすると、前述したように、記憶領域の使用効率が著しく低下することとなる。
【００１１】
そこで、本発明は、かかる問題を解消し、リアルタイムファイルの記憶再生に適したファイルデータの割り当てを行いながら、同時に、フラグメンテーションの発生を抑制することにより、容量の小さいファイルデータをも効率的に記憶再生し得るデータ記憶方法を提供することを目的としている。
【００１２】
【課題を解決するための手段】
本発明は、連続した複数のブロックからユニットを構成し、このユニットの属性をユニット属性テーブルによって管理するものである。
このユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報と、各ユニットに対する書き込みおよび／または読み出しレートのランクを規定する情報を含んでいる。
【００１３】
記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能で且つこのファイルデータに要求される書き込みおよび／または読み出しレートを満たす未使用の前記ユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶する。また、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックにすでにリアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックにこのファイルデータを記憶する。
【００１４】
このように、記憶されるファイルデータがリアルタイムデータであるか非リアルタイムデータによって、記録処理を変更することにより、未使用のユニット数を増加させることができ、よって、効率的にリアルタイムデータの記憶を行うことができるようになる。
また、要求されるビットレートが相違する種々のリアルタイムファイルデータを、記録領域上に効率的に振り分けて記録することができ、よって、記録領域の使用効率をより向上させることができる。
【００１５】
本発明の一つの局面は、たとえば、ブロックにデータが記憶されているか否かを管理するブロック管理テーブルと、連続した複数の前記ブロックから構成したユニットの属性を管理するユニット属性テーブルと、前記ブロック管理テーブルと前記ユニット属性テーブルに基づいてファイルデータを記憶するデータ記憶処理とを含むファイルデータ記憶方法として把握することができる。
【００１６】
ここで、ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報と、各ユニットに対する書き込みおよび／または読み出しレートのランクを規定する情報を含むものである。また、データ記憶処理は、記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能で且つこのファイルデータに要求される書き込みおよび／または読み出しレートを満たす未使用のユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶し、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶する処理を含む。
【００１７】
本発明の他の局面は、たとえば、ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するための手段と、連続した複数の前記ブロックから構成したユニットの属性を管理するユニット属性テーブルを生成するための手段と、前記ブロック管理テーブルと前記ユニット属性テーブルに基づいてファイルデータを記憶する処理を実行するための手段とを含むファイルデータ記憶装置として把握することができる。
【００１８】
本発明のさらに他の局面は、たとえば、ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成する処理と、連続した複数の前記ブロックからユニットを構成し、且つ、各ユニットの属性を管理するユニット属性テーブルを生成する処理と、前記ブロック管理テーブルと前記ユニット属性テーブルに基づいてファイルデータを記憶するデータ記憶処理を含む処理を実行するためのプログラムとして把握することもできる。
【００１９】
本発明のさらに他の局面は、たとえば、主データの他に、少なくとも、前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルと、連続した複数の前記ブロックから構成したユニットの属性を管理するユニット属性テーブルが記憶された記憶媒体として把握することもできる。
【００２２】
本発明の前記ならびにその他の目的と新規な特徴は、以下に示す実施の形態の説明を添付図面と照らし合わせて読むと、より完全に明らかとなるであろう。
【００２３】
本発明の請求項における「ブロック」は、実施形態においては、「ブロック」に相当する。また、本発明の請求項における「ユニット」は、実施形態においては、「ユニット」に相当する。  また、本発明の請求項における「ブロック管理テーブル」は、実施形態においては、「ブロック管理テーブル２１０」に相当する。また、本発明の請求項における「ユニット属性テーブル」は、実施形態においては、「ユニット管理テーブル２１１」に相当する。また、本発明の請求項における「記憶媒体」は、実施形態においては、「ハードディスクドライブ１１８（これに内蔵されたハードディスク）」に相当する。
【００２４】
ただし、以下の実施の形態は、あくまでも、本発明の一つの実施形態であって、本発明ないし各構成要件の用語の意義は、以下の実施の形態に記載されたものに制限されるものではない。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
【００２６】
Ａ．第１の実施形態
図１は、本発明の一実施形態におけるデジタル記録再生装置の全体構成を示すブロック図である。なお、図１において、太線で示した信号線は、映像および／または音声データの流れを表わす信号線であり、細線で示した信号線は、制御信号の流れを表わす信号線である。
【００２７】
デジタル記録再生装置は、アンテナ１００、外部入力端子１０１、チューナ１０２および１０３、セレクタ１０４、Ａ／Ｄコンバータ１０５および１０６、ＭＰＥＧ２ビデオエンコーダ１０７および１０８、オーディオエンコーダ１０９および１１０、マルチプレクサ／デマルチプレクサ１１１、ＭＰＥＧ２ビデオデコーダ１１２、オーディオデコーダ１１３、Ｄ／Ａコンバータ１１４、バッファメモリ１１５および１１６、ハードディスクドライブコントローラモジュール１１７、ハードディスクドライブ１１８、システムコントローラ１１９、メモリ１２０、ユーザインタフェース１２１、グラフィックコントローラ１２２、テレビジョンモニタ１２３、リアルタイムクロックモジュール１２４、デジタルインプット１２５、デジタルアウトプット１２６、ＬＥＤ１２７から構成されている。
【００２８】
図１を参照して、アンテナ１００で受信した、例えばテレビジョン放送の信号電波は、チューナ１０２および１０３に同時に与えられる。
【００２９】
チューナ１０２は、アンテナ１００で受信した信号電波から、ユーザによって指定された１つのチャネルの信号電波を選択し、映像信号と音声信号とからなるアナログのテレビジョン信号に復調してセレクタ１０４の一方入力に与える。セレクタ１０４の他方入力には、ビデオテープレコーダ（ＶＴＲ）、カムコーダ等の各種の外部テレビジョン信号源が接続可能な外部入力端子１０１が接続される。
【００３０】
セレクタ１０４は、チューナ１０２からの出力または外部入力端子１０１からの入力のいずれかを選択してＡ／Ｄコンバータ１０５に与えるとともに、グラフィックコントローラ１２２の１つの入力に与える。一般に、セレクタ１０４は、外部入力端子１０１に何らかの外部信号源が接続されている場合には、外部入力端子１０１からの入力を選択し、接続されていない場合にはチューナ１０２の出力を選択する。
【００３１】
Ａ／Ｄコンバータ１０５は、セレクタ１０４から出力されるアナログのテレビジョン信号の映像信号および音声信号をそれぞれデジタル信号に変換し、デジタル映像信号をＭＰＥＧ２ビデオエンコーダ１０７に与えるとともに、デジタル音声信号をオーディオエンコーダ１０９に与える。
【００３２】
ＭＰＥＧ２ビデオエンコーダ１０７は、与えられたデジタル映像信号を圧縮してマルチプレクサ／デマルチプレクサ１１１に与え、オーディオエンコーダ１０９は、与えられたデジタル音声信号を圧縮してマルチプレクサ／デマルチプレクサ１１１に与える。マルチプレクサ／デマルチプレクサ１１１は、与えられた映像信号のストリームと音声信号のストリームとをマルチプレクスし、ＭＰＥＧ２のシステムストリームに変換する。
【００３３】
一方、チューナ１０３は、アンテナ１００で受信した信号電波から、ユーザによって指定された１つのチャネルの信号電波を選択し、映像信号と音声信号とからなるアナログのテレビジョン信号に復調してＡ／Ｄコンバータ１０６に与えるとともに、グラフィックコントローラ１２２のもう１つの入力に与える。
【００３４】
Ａ／Ｄコンバータ１０６は、チューナ１０３から出力されるアナログのテレビジョン信号の映像信号および音声信号をそれぞれデジタル信号に変換し、デジタル映像信号をＭＰＥＧ２ビデオエンコーダ１０８に与えるとともに、デジタル音声信号をオーディオエンコーダ１１０に与える。
【００３５】
ＭＰＥＧ２ビデオエンコーダ１０８は、与えられたデジタル映像信号を圧縮してマルチプレクサ／デマルチプレクサ１１１に与え、オーディオエンコーダ１１０は、与えられたデジタル音声信号を圧縮してマルチプレクサ／デマルチプレクサ１１１に与える。マルチプレクサ／デマルチプレクサ１１１は、与えられた映像信号のストリームと音声信号のストリームとをマルチプレクスし、ＭＰＥＧ２のシステムストリームに変換する。
【００３６】
このデジタル記録再生装置には、ランダムアクセス可能な記憶媒体の一例としてのハードディスクを内蔵するハードディスクドライブ（以下、ＨＤＤ）１１８が、取外し可能に装着される。以下の説明においては、便宜上この単体のＨＤＤ１１８そのものを書き込み読み出し可能な記憶媒体と見なすことにする。このＨＤＤ１１８へのデータの書込、およびＨＤＤ１１８からのデータの読出は、後述するようにＨＤＤコントローラモジュール１１７によって実行される。
【００３７】
上述のマルチプレクサ／デマルチプレクサ１１１と、このＨＤＤコントローラモジュール１１７との間には、バッファメモリ１１５を途中に含む第１のデータバスと、バッファメモリ１１６を途中に含む第２のデータバスとからなる２系統のデータチャネルが設けられている。
【００３８】
さらに、デジタルインプット１２５を介して外部接続された他の装置からのデジタルデータがバッファメモリ１１５に入力可能であり、一方バッファメモリ１１６のデジタルデータは、デジタルアウトプット１２６を介して外部接続された他の装置へ出力可能である。
【００３９】
したがって、後述するように、バッファメモリ１１５および１１６を介して、マルチプレクサ／デマルチプレクサ１１１と、ＨＤＤコントローラモジュール１１７と、デジタルインプット１２５およびデジタルアウトプット１２６との間で、ＭＰＥＧ２のシステムストリームデータのやり取りが行なわれることになる。
【００４０】
マルチプレクサ／デマルチプレクサ１１１は、バッファメモリ１１５および１１６から受取ったＭＰＥＧ２のシステムストリームを、映像信号のストリームと音声信号のストリームとにデマルチプレクスし、前者をＭＰＥＧ２ビデオデコーダ１１２に、後者をオーディオデコーダ１１３に与える。
【００４１】
ＭＰＥＧ２ビデオデコーダ１１２は、与えられた映像信号のストリームをデコードしてＤ／Ａコンバータ１１４に与え、オーディオデコーダ１１３は、与えられた音声信号のストリームをデコードしてＤ／Ａコンバータ１１４に与える。Ｄ／Ａコンバータ１１４は、与えられた信号をそれぞれアナログ信号に変換し、映像信号と音声信号とからなるアナログのテレビジョン信号をグラフィックコントローラ１２２のさらにもう１つの入力に与える。
【００４２】
グラフィックコントローラ１２２は、セレクタ１０４と、チューナ１０３と、Ｄ／Ａコンバータ１１４とからそれぞれ与えられたアナログのテレビジョン信号のいずれかを選択して、デジタル記録再生装置の外部に接続されたテレビジョンモニタ１２３に与える。
【００４３】
マルチプレクサ／デマルチプレクサ１１１およびグラフィックコントローラ１２２の動作は、システムコントローラ１２０から与えられる制御信号によって制御される。
【００４４】
また、このデジタル記録再生装置がデジタルインプット１２５およびデジタルアウトプット１２６を介して外部の他の装置と接続されたときに、システムコントローラ１１９からの制御信号はデジタルインプット１２５を介して（細線）他の装置のシステムコントローラ（図示せず）に与えられ、そのシステムコントローラからの制御信号は、デジタルアウトプット１２６を介して（細線）、このデジタル記録再生装置のシステムコントローラ１１９に与えられる。
【００４５】
システムコントローラ１１９には、ユーザインタフェース１２１と、メモリ１２０と、リアルタイムクロックモジュール１２４とが接続される。
【００４６】
図１に示したこの発明に係る上記デジタル記録再生装置の記憶、再生、消去等の基本動作原理については、ハードディスクドライブ１１８に対するファイル記憶方法との関係において後で詳細に説明する。
【００４７】
次に、本実施の形態における記憶媒体であるハードディスクに記憶される情報について説明する。
【００４８】
図２に示すように、記憶媒体であるハードディスクにデータをファイルとして記憶する場合、映像や音声などの記憶されるべきデータ自体（以下主データ２０という）と、主データ２０がファイルとして構成されるために必要な管理情報（以下メタデータ２１という）がハードディスクに記憶される。
【００４９】
メタデータ２１は、ブロック管理テーブル２１０、ユニット管理テーブル２１１、ファイル管理情報２１２の３つの情報からなり、本デジタル記録再生装置において、記憶媒体の初期設定時に生成され、データが記録あるいは消去されるごとに更新される。
【００５０】
以下に、図３を用いて、上記各管理情報について説明する。
【００５１】
図３は、ユニット管理テーブルを用いた記録方法を模式的に説明する図である。
【００５２】
＜ブロック管理テーブル＞
ブロック管理テーブル２１０は各ブロックの使用状況を管理するものである。当該ブロック管理テーブル２１０を構成するエントリ２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ、…は記憶領域３０ａ、３０ｂ、３０ｃ、３０ｄ、…のブロックに対応しており、ブロックの使用状況に応じ、使用中のブロックの場合は“１”、未使用のブロックの場合は“０”を示す。
【００５３】
＜ユニット管理テーブル＞
ユニット管理テーブル２１１は、ＨＤＤ１１８の記憶領域をユニット単位のアドレス空間とみなしてユニット番号を順に付けたときに、それぞれのユニットの使用状態を管理する。
【００５４】
ユニットは、エントリ２１１ａ、２１１ｂ、…から構成され、例えば、エントリ２１１ａは、ブロック管理テーブル２１０上のエントリ２１０ａ、２１０ｂ、２１０ｃ、２１０ｄに対応したユニットのエントリである。ユニット管理テーブル２１１は、そのユニットについて、リアルタイムファイルを記憶できるか否かを示すユニット状態情報と、ユニットの使用状況を示すユニット使用状況情報を示す。
【００５５】
ここで、ユニットにリアルタイムファイルを記憶できるか否かは、例えば、後述の第２の実施形態における判別と同様、リード／ライトを実行するための特殊コマンドによる記憶・再生動作をモニタし、リアルタイムにて記憶・再生が保証されるかを判別することによってなされる。
【００５６】
各ユニットのユニット状態情報とユニット使用状況情報は、図２に示す如く区分されている。ユニット使用状況情報において、“未使用”とは、ユニットを構成しているブロック全てが記憶可能である状態をいう。また、“ＲＴ全使用”とは、ユニットを構成しているブロック全てを連続してリアルタイムファイルの記憶に使用している状態をいう。また、“ＮＲＴ一部使用”とは、ユニットを構成しているブロックの一部を非リアルタイムファイルの記憶に使用している状態をいう。また、“ＮＲＴ全使用”とは、ユニットを構成しているブロック全てを非リアルタイムファイルの記憶に使用している状態をいう。
【００５７】
ユニットは、リアルタイム処理をするために必要なサイズであるため、リアルタイムファイルにより一部使用されている状態は存在しない。また、ユニット内にリアルタイムファイルとノンリアルタイムファイルの両方が存在することはない。したがって、ユニットが“ＮＲＴ一部使用”の場合、残りのブロックには非リアルタイムファイルのみ記憶可能である。
【００５８】
＜ファイル管理情報＞
図２に戻り、ファイル管理情報２１２は、主データ２０がファイルとして認識されるための管理情報である。
【００５９】
主データ２０に対応したファイルのファイル管理情報２１２には、主データ２０を構成するブロックのリンク情報が記録されている。具体的には、主データ２０に関する属性情報（図中非表示）と、ブロックの開始アドレス情報が参照順に記憶されている。
【００６０】
上記属性情報は、主データ２０が、リアルタイムに処理されるデータか否かを示す情報を含む。
【００６１】
リアルタイムファイル２０１（図３参照）には、上記マルチプレクサ／デマルチプレクサ１１１によって作成されたＭＰＥＧ２のシステムストリームなど、リアルタイムに処理される主データ２０が、上述のユニット単位のデータとして格納される。
【００６２】
したがって、リアルタイムファイル２０１の全体の容量は、必ずユニット単位容量の整数倍である。また、ブロック単位で記録を行なっているＨＤＤ１１８においても、リアルタイムファイル２０１の開始アドレスは、ユニットの境界にあたるアドレスでなくてはならない。これは、ユニット管理テーブル２１１において、記憶空間をユニット単位のアドレス空間とみなすためである。
【００６３】
このリアルタイムファイル２０１のファイル構成を示すファイル管理情報２１２には、このリアルタイムファイル２０１が割り当てられているユニットに対応したブロックのリンク情報が記憶される。
【００６４】
非リアルタイムファイル２０２の場合、リアルタイムに処理される必要がない主データ２０が、ブロック単位のデータとして格納されるため、この非リアルタイムファイル２０１の全体の容量は、ブロック単位容量の整数倍となる。
【００６５】
また、非リアルタイムファイル２０２のファイル構成を示すファイル管理情報２１２には、リアルタイムファイルと同様に、この非リアルタイムファイル２０２が割り当てられているブロックのリンク情報が記憶される。
【００６６】
＜ユニットの容量＞
次に、本デジタル記録再生装置において、複数のストリームデータをリアルタイムで同時に扱うために必要なユニットの容量について説明する。
【００６７】
まず、バッファメモリ１１５、１１６の容量Ｃと、書き込み／読み出しの単位ブロック長Ｌと、ＨＤＤコントローラモジュール１１７とＨＤＤ１１８との間のワーストケースのデータ転送レートＢｈｄｄと、ＭＰＥＧ２システムストリームのレートＢｓｙｓと、ＨＤＤ１１８のシーク時間のワースト値Ｔｗとの関係について説明する。
【００６８】
ただし、シーク時間のワースト値Ｔｗは、単なるヘッドのシークのみに要する時間ではなく、シークを開始してから実際にデータの書き込み／読み出しが始まるまでにかかる、シーク時間、回転待ち時間、ヘッド切換時間、ＥＣＣ／ＥＤＣ等の誤り訂正に要する時間、等の群遅延のワースト値をすべて考慮した時間である。
【００６９】
同時に処理するストリーム数をＮとした場合、すべてのストリームのリアルタイム性を保持するためには、以下の式を満たす必要がある。
Ｂｈｄｄ×Ｔｓ＞Ｎ×（Ｔｗ＋Ｔｓ）×Ｂｓｙｓ    …（１）
【００７０】
ただし、Ｔｓは、ＨＤＤ１１８に対して、書き込み／読み出しの単位ブロック長Ｌを書き込み／読み出しするのに要する時間であり、Ｔｓ＝Ｌ／Ｂｈｄｄで表わされる。
【００７１】
上記の式（１）は、データの読み出しの場合は、あるストリームにおいて単位ブロックで読み出しを行なったデータ量が、Ｎ本のストリームを処理するのにかかるＮ回のシーク時間とＮ回のデータ書き込み／読み出し時間との和の時間内で消費し尽くさないように設計する必要があることを意味している。
【００７２】
さらに、データの書き込みの場合は、Ｎ本のストリームを処理するのにかかる時間中に、バッファメモリ１１５、１１６に蓄積されるデータ量は最悪のケースで、Ｎ×（Ｔｗ＋Ｔｓ）×Ｂｓｙｓであることを意味している。
【００７３】
したがって、バッファメモリ１１５、１１６の容量Ｃは、以下の式を満たす必要がある。
Ｃ＞Ｎ×（Ｔｗ＋Ｔｓ）×Ｂｓｙｓ    …（２）
【００７４】
上記の式（１）および（２）を満たすような設計を行なうことにより、Ｎ本のストリームを同時にリアルタイムで処理することが可能となる。ただし、Ｂｈｄｄ＞Ｎ×Ｂｓｙｓを満たす範囲内でＮを設定しなければならない。
【００７５】
なお、ＨＤＤ１１８からリアルタイムファイルのデータをバッファメモリ１１５、１１６に転送する場合、ユニット単位で読み出すと最も効率良く処理することができる。このとき、ユニット容量Ｕｓｉｚｅは次式で表わすことができる。
Ｕｓｉｚｅ  ＝  Ｌ  …（３）
【００７６】
ここで、上記の通り、Ｔｓ＝Ｌ／Ｂｈｄｄだから、この関係式と（３）式とを上記（１）式に代入することにより、Ｕｓｉｚｅ容量の条件式として、下式を得ることができる。
Ｕｓｉｚｅ＞Ｎ×（Ｔｗ＋（Ｕｓｉｚｅ／Ｂｈｄｄ））×Ｂｓｙｓ  …（４）
【００７７】
この容量のユニットに、一定時間の映像データと音声データとを格納する。なおこの実施形態の装置においては、ＭＰＥＧ２でエンコードされた映像データ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅｓ：以下、ＧＯＰ）とそれに対応する音声データとをマルチプレクサ／デマルチプレクサ１１１によってマルチプレクスしてシステムストリームとしている。
【００７８】
また、１ＧＯＰのピクチャ数を１５とすると、１ユニットの再生時間は次のようになる。
５＊（１５／３０）＝２．５秒
【００７９】
ここで、これらのパラメータについて、ユニット単位での再生が保証されているかどうかの検証を行なう。
【００８０】
前述の定義より、書き込み／読み出しの単位ユニット長をＬ＝２７５２５１２バイトとすると、ＭＰＥＧ２のシステムストリームのレートＢｓｙｓは、
Ｂｓｙｓ＝Ｌ／２．５＝１１０１００４バイト／秒
となる。
【００８１】
本デジタル記録再生装置において、ストリームの本数をＮ＝２とし、シーク時間のワースト値をＴｗ＝５０ｍｓ、ＨＤＤコントローラモジュール１１８とＨＤＤ１１９との間のワーストケースのデータ転送レートをＢｈｄｄ＝５ＭＢ／秒とすると、
Ｔｓ＝Ｌ／Ｂｈｄｄ＝５５０ｍｓ
が成り立つ。したがって、式（１）の左辺Ｂｈｄｄ＊Ｔｓは、
Ｂｈｄｄ＊Ｔｓ＝５×１０６＊５５０×１０−３＝２．７×１０６
式（１）の右辺Ｎ＊（Ｔｗ＋Ｔｓ）＊Ｂｓｙｓは、
Ｎ＊（Ｔｗ＋Ｔｓ）＊Ｂｓｙｓ＝２＊（５０＋５５０）×１０−３＊１１０１００４＝１．３２×１０―６
となり、上述の式（１）を満たすことになる。したがって、定義されたこれらのパラメータにおいてユニット単位でのデータの再生が保証される。
【００８２】
次に、フローチャートを用いて、ファイルのリード（読み出し）およびライト（書き込み）動作を説明する。
【００８３】
図４は、ファイルデータのリード動作を説明するフローチャートである。
【００８４】
まず、ファイルがアプリケーションによってオープンされると（ステップＳ１）、当該ファイルのファイル管理情報が読み出され、このファイル管理情報中のリンク情報が参照される。上記の如く、リンク情報は、当該ファイル情報を記憶する各ブロックの開始アドレスを参照順に規定するものである。ファイル情報の読み出しは、このリンク情報を先頭から順番に参照して各ブロックの開始アドレスを取得し、取得した開始アドレスが示す記憶領域上のブロックからデータを順番に読み出すことによって行われる。ここで、リンク情報の参照位置は、ポインタによって管理される。
【００８５】
まず、このリンク情報の先頭にポインタがセットされ（ステップＳ２）、ファイル情報を記憶する最初ブロックの開始アドレスが取得される。そして、この開始アドレスが示す記憶領域上のブロックからデータが読み出される（ステップＳ３）。
【００８６】
次に、このブロックがファイルを構成する論理的なブロックの最後か否かが判断され（ステップＳ４）、最後である場合は、ファイルをクローズして（ステップＳ５）、リード動作が終了される。他方、ブロックがファイルを構成する論理的なブロックの最後でなく続くブロックが存在する場合は、リンク情報の参照位置を示すポインタが１つ進められ（ステップＳ２）、ファイル情報を記憶する次のブロックの開始アドレスが取得される。そして、このブロック開始アドレスが示す記憶領域上のブロックからデータが読み出される（ステップＳ３）。
【００８７】
以上のデータ読み出しは、ステップＳ４にて、ポインタが示すブロックが最後のブロックであると判断されるまで繰り返される。これにより、当該ファイル情報が全て記憶媒体から読み出される。
【００８８】
図５は、リアルタイムファイルのライト動作を説明するフローチャートである。
【００８９】
アプリケーションがリアルタイムファイルをオープンすると（ステップＳ１１）、まず、ユニット管理テーブル２１１を参照して、未使用ユニットが検索される（ステップＳ１２）。
【００９０】
検索の結果得られた未使用ユニットは新たにファイルを記憶するためのユニットに割り当てられ、記憶すべき主データ２０がそのユニットに対応する一連のブロックに順次記憶される。この際、記憶に使用したユニットに対応するユニット管理テーブル２１１のユニット使用状況情報が“未使用”から“ＲＴ全使用”に変更される。また、記憶に使用されたブロックのフラグを“１”に変更するよう、ブロック管理テーブル２１１が更新される。さらに、ファイル管理情報２１２に、記録に使用された各ブロックのリンク情報が追加される（ステップＳ１３）。
【００９１】
次に、記憶すべきデータが残っているか否かが判断され（ステップＳ１４）、記憶すべきデータが残っていない場合は、ファイルをクローズし（ステップＳ１５）、処理を終了する。他方、記憶すべきデータが残っている場合は、さらに、未使用ユニットが検索され（ステップＳ１２）。そして、検索により得られたユニットにデータが記憶される（ステップＳ１３）。以上のデータ記憶の処理は、ステップＳ１４にて、記憶すべきデータが残っていないと判断されるまで繰り返される。
【００９２】
図６は、非リアルタイムファイルのライト動作を説明するフローチャートである。
【００９３】
アプリケーションが非リアルタイムファイルをオープンすると（ステップＳ２１）、まず、ユニット管理テーブル２１１を参照して、ＮＲＴ一部使用ユニットが存在するか否かが検索される（ステップＳ２２）。検索の結果、ＮＲＴ一部使用ユニットが存在しない場合、再びユニット管理テーブル２１１を参照して、未使用ユニットが検索される（ステップＳ２４）。そして、得られた未使用ユニットに対応するブロックが、主データ２０を記憶するためのブロックとして割り当てられる。
【００９４】
また、記憶のために使用されたユニットに対応するユニット管理テーブル２１１のユニット使用状況情報が“未使用”から“ＮＲＴ一部使用”に変更される（ステップＳ２５）。
【００９５】
一方、ステップＳ２２における検索の結果、ＮＲＴ一部使用ユニットが存在する場合、得られたＮＲＴ一部使用ユニット中の未使用ブロックが、主データ２０を記憶するためのブロックとして割り当てられる（ステップＳ２３）。ここで、ＮＲＴ一部使用ユニット中の未使用ブロックが記憶により全て使用される場合、このユニットのユニット使用状況情報が“ＮＲＴ一部使用”から“ＮＲＴ全使用”に変更される。
【００９６】
そして、ステップＳ２３またはＳ２４にて割り当てられた未使用ブロックに主データ２０が記憶されると共に、記憶に使用されたブロックのフラグを“１”に変更するよう、ブロック管理テーブル２１０が更新される。また、ファイル管理情報２１２に記憶に使用されたブロックのリンク情報が追加される（ステップＳ２６）。
【００９７】
次に、記憶すべきデータが残っているか否かが判断され（ステップＳ２７）、記憶すべきデータが残っていない場合は、ファイルをクローズし（ステップＳ２８）、処理が終了される。他方、記憶すべきデータが残っている場合は、さらに、未使用ユニットおよび未使用ブロックが検索され、検索により得られたブロックにデータを記憶する処理（ステップＳ２２〜Ｓ２６）が繰り返される。
【００９８】
図７は、リアルタイムファイルの削除動作を説明するフローチャートである。
【００９９】
アプリケーションが削除するリアルタイムファイルを選択すると（ステップＳ３１）、選択したリアルタイムファイルを記憶するブロックのうち先頭のブロックが、ファイル管理情報２１２のリンク情報を参照して獲得される。さらに、ユニット管理テーブル２１１中のユニットサイズ情報から当該ブロックに対応するユニットが算出される（ステップＳ３２）。そして、このブロックに記憶されたデータが順次消去される。
【０１００】
このようにしてブロックに記憶されたデータが消去されると、このブロックの使用状況を示すブロック管理テーブル２１０が、使用中であることを示す“１”から未使用であることを示す“０”に変更される。さらに、一ユニット中の全てのブロックについてデータ消去がなされると、このユニットの使用状況を示すユニット管理テーブル２１１のユニット使用状況情報が“ＲＴ全使用”から“未使用”に変更される（ステップＳ３３）。
【０１０１】
そして、削除すべきデータが残っているか否かが判断され（ステップＳ３４）、削除すべきデータが残っていない場合は、ファイル管理情報２１２からこのファイルの管理情報が削除され（ステップＳ３５）、処理が終了される。
【０１０２】
他方、削除すべきデータが残っている場合は、ファイル管理情報２１２のリンク情報を指すポインタが１つ進められ、次のブロックが獲得され、ユニット管理テーブル２１１中のユニットサイズ情報からブロックに対応したユニットが算出される（ステップＳ３２）。そして、上記と同様にして、ブロック管理テーブル２１０およびユニット管理テーブル２１１が更新される（ステップＳ３３）。この更新処理（ステップＳ３２、Ｓ３３）は、ステップＳ３４にて、削除すべきデータが残っていないと判断されるまで繰り返される。
【０１０３】
図８は、非リアルタイムファイルの削除動作を説明するフローチャートである。
【０１０４】
アプリケーションが削除する非リアルタイムファイルを選択すると（ステップＳ４１）、選択した非リアルタイムファイルを記憶するブロックのうち先頭のブロックが、ファイル管理情報２１２のリンク情報を参照して獲得される。
【０１０５】
次に、このブロックの使用状況を示すブロック管理テーブル２１０が、使用中であることを示す“１”から未使用であることを示す“０”に変更される（ステップＳ４３）。さらに、このブロックに対応するユニットが含む他のブロックの使用状況が調べられ（ステップＳ４４）、ユニットを構成する全てのブロックが未使用となった場合には、このユニットの使用状況を示すユニット管理テーブル２１１のユニット使用状況情報が“未使用”に変更される（ステップＳ４６）。
【０１０６】
また、ユニットを構成するブロックの一部が使用されている状態となった場合には、このユニットの使用状況を示すユニット管理テーブル２１１のユニット使用状況情報が“ＮＲＴ一部使用”に変更される（ステップＳ４５）。
【０１０７】
次に、削除すべきデータが残っているか否かが判断され（ステップＳ４７）、判断の結果、削除すべきデータが残っていない場合は、ファイル管理情報２１２からこのファイルの管理情報が削除され（ステップＳ４８）、処理が終了される。他方、削除すべきデータが残っている場合は、ファイル管理情報２１２のリンク情報を指すポインタが１つ進められ、次のブロックが獲得される（ステップＳ４２）。そして、上記と同様にして、ブロック管理テーブル２１０およびユニット管理テーブル２１１が更新される（ステップＳ４３〜Ｓ４６）。この更新処理（ステップＳ４２〜Ｓ４６）は、ステップＳ４７にて、削除すべきデータが残っていないと判断されるまで繰り返される。
【０１０８】
図９は、記憶媒体の初期化動作を説明するフローチャートである。
【０１０９】
本装置で記憶媒体を初めて使用する時、その記憶媒体が本装置で使用できるように、記憶領域の管理に使用される管理データ、具体的には、メタデータ２１中のブロック管理テーブル２１０、ユニット管理テーブル２１１が生成され、初期設定がなされる。
【０１１０】
ユニットの容量およびユニット数については、アプリケーションが規定し、これに従いユニット管理テーブル２１１が初期設定される（ステップＳ５１）。
【０１１１】
ブロック管理テーブル２１０には、全ブロックについて、その使用状況が未使用である“０”が設定される（ステップＳ５２）。
【０１１２】
ユニット管理テーブル２１１には、全ユニットについて、その状態情報として、リアルタイムファイルが記憶可能であることを示す”ＲＴ使用可能ユニット”が設定され、また、ユニットの使用状況として、ユニットを構成するブロック全てが記憶可能であることを示す“未使用”が設定される（ステップＳ５２）。
【０１１３】
以上のように、本実施の形態では、主データの記憶媒体における記憶場所を管理する時、従来のファイル記憶方法で用いてきた物理的な記憶単位に依存したブロックの他に、リアルタイムに処理されるデータを記憶するのに適した記録単位であるユニットが用いられる。
【０１１４】
このユニットは、リアルタイム処理が保証された容量に設定され、連続した複数のブロックで構成され、ユニットとブロックは、ユニット管理テーブルのユニットサイズ情報を用いた演算により一意に対応付けられるため、ユニット単位で記憶した映像データなどのリアルタイムファイルをユニット単位で記憶した場合でも、ユニット管理テーブル２１１を必須とせず、ブロック管理テーブル２１０のみを用いて、ブロック単位でファイルデータを読み出すことが可能となる。
【０１１５】
また、非リアルタイムに処理されるデータに対しては、従来と同様に、ブロック単位でデータが記憶されるが、このときのブロックの使用状況に対応して、ユニット管理テーブルも更新される。
【０１１６】
このように、データの属性によって、記憶単位を換えることにより、記憶媒体を効率よく使用することが可能となり、ひいては、記憶領域のフラグメンテーションの発生を抑制することもできる。
【０１１７】
Ｂ．第２の実施形態
ところで、上記実施の形態においては、ユニット管理テーブルは、ユニットの使用・未使用に応じて、「ＲＴ使用可能ユニット」と「ＲＴ使用不可能ユニット」の２種類のユニットのみ規定するものであった。しかしながら、データの記録・消去を繰り返すうちに、エラー訂正では補償し得ない欠陥領域が発生する。これにより、ユニットが未使用であっても、そのユニットをリアルタイムファイルの記憶・再生用に使用できない場合が生じ得る。
【０１１８】
すなわち、ハードディスク等の記憶媒体には、欠陥領域の発生に対応するために、通常代替領域が準備されている。欠陥領域が生じた場合には、代替領域に対してデータの割り当てが行われる。
【０１１９】
しかし、代替領域は通常、一連の記憶領域とは物理的に離間して配されている。したがって、代替領域にデータを記憶する場合には、記憶、再生時に、シークや回転まち等の余分な時間が掛かってしまう。よって、ユニットが未使用状況となっていても、そのユニットに欠陥領域が存在する場合には、リアルタイムファイルの記憶・再生に必要な書き込み／読み出しレートを保証できない場合が起こり得る。かかる理由により、ユニットが未使用であっても、欠陥領域が発生すると、そのユニットを、ＲＴ使用可能ユニットとしてそのまま使用することはできない場合が起こり得る。
【０１２０】
他方、たとえばデジタル放送においては、ＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）放送の場合のビットレートは約２４Ｍｂｐｓで、ＳＤ（ＳｔａｎｄａｒｄＤｅｆｉｎｉｔｉｏｎ）放送の場合のビットレートは約８Ｍｂｐｓである。したがって、所定のユニットに欠陥領域が発生した場合、そのユニットをＨＤ放送用に使用できなくても、よりレートの低いＳＤ放送用として使用可能な場合もあり得る。かかる理由から、欠陥領域の発生によってユニットの書き込み／読み出しレートが低下したとしても、一律にそのユニットを「ＲＴ使用不可能」とするのは適当でない。
【０１２１】
そこで、本実施の形態においては、書き込み／読み出しレートのランク区分をユニット毎に付し、このランク区分を上記ユニット管理テーブルに含めておく。そして、リアルタイムファイルの書き込み時には、かかるランク区分を参照して、そのファイルの転送レートを保証し得るユニットを対象ユニットとして選択するようにする。
【０１２２】
各ユニットは、初期状態においては、最上位のレートのランク区分とされている。そして、その後の書き込み／読み出し時に、リアルタイムファイルの転送レートを保証し得たかが判別され、ここで保証し得なかった場合には、そのファイルの転送レートよりも低いランク区分に変更される。
【０１２３】
リアルタイムファイルの転送レートを保証し得たか否かは、たとえば、ＨＤＤ（ハードディスクドライブ）をＡＶデータ記憶用途に使用する場合に用いられる特殊コマンドを使用して判別される。このコマンドは、リアルタイム性重視のコマンドで、時間制限付きリードおよびライトを実行するコマンドである。
【０１２４】
＜時間制限付リード・ライトコマンド＞
ここでの時間の定義は、指定した時間内にＨＤＤがホスト側に必ず応答を返すことである。これらのコマンドを使用した場合、ＨＤＤ側の処理の優先度は、以下の通りである。
【０１２５】
１．指定時間内に正常にデータの入出力を終えホストに通知する。
２．途中にエラーが発生して、リトライや代替処理が必要な場合；
指定時間内に処理可能な場合は、それを実行する。指定時間を超える場合は、エラーを無視し、指定時間内に指定セクタ数の入出力処理を終了させて、ホストに通知する。この場合、ホストに対し、「エラーが発生したが入出力完了」という形で通知し、エラー情報はログに残しておく。
３．発生したエラーを無視しても入出力処理が終了しない場合；
指定時間以内に処理を中断し、「タイムアウトエラー」という形でホストに通知する。本来、指定時間内に応答を返すことが前提であるが、例外として、少なくとも１度はリード・ライトを行ない、この時点で既に指定時間をオーバーしている時のみ、指定時間内に応答しなくてよいものとする。但し、「指定時間オーバー」であることをホストに知らせる必要がある。
【０１２６】
以上の通り、記憶媒体であるＨＤＤのメディア上の前記ユニットに欠陥があった場合、その部分のデータアクセスにおけるリアルタイム性は低下する。そこで、ユニット毎の前記ユニット状態情報として、ユニットが保証できるビットレートのランク区分を備えておけば、これを参照して、さまざまなビットレートのデータをそれぞれ適したユニットに配することにより、リアルタイム性を保証し、かつ、記憶媒体を有効に利用した記憶が実現できる。
【０１２７】
以下、かかる実施の形態のより具体的な構成および制御について説明する。
【０１２８】
＜メディアの代替＞
記憶媒体であるＨＤＤのメディア上に欠陥があった場合、通常代替ブロックが割り当てられる。
【０１２９】
光ディスクなどの場合は、代替ブロックの位置、数等が規格として決められているがＨＤＤの場合には、コマンドインタフェースのみが規定されており、内部構造は、ドライブベンダー毎に相違する。従って、代替処理シーケンス、代替ブロック位置、代替ブロックをリード及びライトする場合のオーバーヘッド時間等は規定されていない。これはリアルタイム処理する場合に問題となり、以下に説明する。
【０１３０】
＜物理アドレス、論理アドレスの関係とフラグメンテーション＞
図１３に、メディア上の物理アドレス、論理アドレス、欠陥ブロック管理リストの関係を示す。以下、欠陥ブロックの処理手順とそれに伴うフラグメンテーションに関して説明する。
【０１３１】
ハードディスクを例に取った場合、通常、使用開始時においては、ホストからアクセスされる論理アドレスの連続性は、メディア上の物理アドレスの連続性を持っていると考えて良い。本来、製品出荷時にすでにある欠陥セクタは出荷時に代替処理されるが、ここでは簡略化のため省略する。
【０１３２】
ディスク上には、後発的な欠陥ブロックのための代替ブロックが準備されている。ハードディスクの場合、その数や物理的位置に関しては、規定されておらず、例えば、ディスクの最内周にまとめて代替ブロック領域が配置される。この領域に対しては、当然論理アドレスへのマッピングはない。
【０１３３】
図１３に示すように、例えば、論理ブロックＡが欠陥ブロックと判断された場合、ドライブは、その論理ブロックＡに対応する物理ブロックＡを代替ブロックＢ＋１にマッピングしなおす。その情報は、欠陥リストに登録される。
【０１３４】
このように、欠陥ブロックの代替処理が行われると、その代替処理が行われたブロックに対応するユニットでは、論理的アドレスは連続していても、実は論理ブロックＡで物理的には非連続な状態となり、そのブロックの前後でシークが発生する。これがリアルタイム処理にとって致命的になる原因である。
【０１３５】
＜ＡＶストリームの実時間保証と代替処理との相関関係＞
以下に、ＡＶストリームの実時間処理例を示す。
【０１３６】
ワーストケースの転送レートａ（ＭＢ／ｓ）、ワーストケースの（シーク時間＋回転待ち時間）ｂ（ｓｅｃ）、ユニットサイズｃ（ＭＢ）、ＡＶストリームのビットレートｄ（ＭＢ／ｓ）とすると、
ワーストケースのユニットへのアクセス（読み出し／書き込み）時間は、
ｙ＝ｃ／ａ（ｓｅｃ）、
ユニット単位のＡＶストリームの再生時間は、
ｚ＝ｃ／ｄ（ｓｅｃ）
となる。
【０１３７】
１つのＡＶストリームのリアルタイム処理における関係は、次式となる。
ｙ＋ｂ＜ｚ  すなわち、ｙ＜ｚ−ｂ
【０１３８】
２つのＡＶストリームのリアルタイム処理における関係は、次式となる。
２＊（ｙ＋ｂ）＜ｚ  すなわち、ｙ＜ｚ／２−ｂ
【０１３９】
１つのＡＶストリームでユニットのｎ個所が代替ブロックに配置されている場合のリアルタイム処理における関係は、次式となる。
ｙ＋（ｎ＋１）ｂ＜ｚ  すなわち、ｙ＜ｚ−（ｎ＋１）ｂ
【０１４０】
２つのＡＶストリームで交互にアクセスされるユニットにおいて、連続してアクセスされる任意の２つのユニットに、合計ｎ個所が代替ブロックに配置されている場合のリアルタイム処理における関係は、次式となる。
２ｙ＋（ｎ＋２）ｂ＜ｚ  すなわち、ｙ＜ｚ／２−（ｎ＋２）ｂ／２
【０１４１】
このように、代替処理が多ければ多いほど、ユニットのアクセス時間が長くなる。そして、ある閾値を超えるとリアルタイム性が破綻する。
【０１４２】
したがって、代替ブロックが増えたある地点でユニットを使用不可にすることが必要となる。
【０１４３】
＜ユニット管理テーブル＞
ユニット管理テーブル２１１は、ＨＤＤ１１８の記憶領域をユニット単位のアドレス空間とみなしてユニット番号を順に付けたときに、それぞれのユニットの使用状態を管理する。
【０１４４】
ユニットは、図３に示す如く、エントリ２１１ａ、２１１ｂ、…から構成され、例えば、エントリ２１１ａは、ブロック管理テーブル２１０上のエントリ２１０ａ、２１０ｂ、２１０ｃ、２１０ｄに対応したユニットのエントリである。ユニット管理テーブル２１１は、そのユニットについて、リアルタイムファイルを記憶できるか否かを示すユニット状態情報と、ユニットの使用状況を示すユニット使用状況情報を規定する。
【０１４５】
各ユニットのユニット状態情報とユニット使用状況情報は、図１０に示す如く区分されている。
【０１４６】
ユニット使用状況情報は、第１の実施形態と同様、“ＲＴ全使用”、“未使用”、“ＮＲＴ一部使用”、“ＮＲＴ全使用”の４つの状況を示す。
【０１４７】
ユニット状態情報には、“ＲＴ使用可能ユニット”もしくは“ＲＴ使用不可能ユニット”のどちらかが示される。ここで、“ＲＴ使用可能ユニット”とは、リアルタイム情報が記録可能である状態をいう。また、“ＲＴ使用不可能ユニット”とは、リアルタイム情報が記録不可能である状態をいう。
【０１４８】
上記“ＲＴ使用可能ユニット”は、さらにリアルタイムストリームのビットレートによって、例えば、“３０ＭｂｐｓまでのＲＴストリームで使用可能ユニット”、“１５ＭｂｐｓまでのＲＴストリームで使用可能ユニット”、“５ＭｂｐｓまでのＲＴストリームで使用可能ユニット”の３段階に区分けされる。
【０１４９】
上記の通り、例えば、デジタル放送において、ＨＤ放送の場合のビットレートは、約２４Ｍｂｐｓで、ＳＤ放送のビットレートは約８Ｍｂｐｓである。この場合、ＨＤ放送番組の記憶に使用できなくなったユニットでも、ＳＤ放送番組の記憶に使用可能となる場合がある。また、アナログ放送を記録する場合、例えば、１０Ｍｂｐｓの高画質録画モード、６Ｍｂｐｓの標準録画モード、３Ｍｂｐｓの長時間録画モードの異なる３つのビットレートが想定される。この場合も、高画質録画モードで使用できなくなったユニットが標準録画モードもしくは、長時間録画モードで使用可能となる場合もある。
【０１５０】
ユニットは、物理メディアに連続して記録できる領域であるが、欠陥ブロックが発見された場合には、代替領域にそのブロックが再割当てされる。この場合、論理的には、連続であっても物理的には、そこに境界が発生しシーク、回転待ち時間がかかる。これは、場合によってはリアルタイム処理に致命的となる。
【０１５１】
したがって、初期状態においては、ユニットはリアルタイム処理として、最も高いビットレートランクで使用可能であるが、使用を続けていくにつれて、ユニットが対応可能なビットレートは変化するため、システム側が使用可能か否かをチェックし、使用不可能と判断した場合は、リアルタイム情報記録不可能とすることが必要となる。
【０１５２】
このシステム側のチェックは、例えば、ユニット単位のリードあるいはライトを前述の時間制限をつけた時間制限付きコマンドを用いて行うことにより実行することができる。この時間制限のパラメータは、ビットレートに応じてリアルタイム処理が破綻しない限界の時間である。
【０１５３】
このコマンドを使用して、時間制限オーバーしたユニットは、そのビットレートでは使用不可能ということで、ビットレートのランクをコマンドのビットレートより低いランクとする。
【０１５４】
ここで、コマンドのビットレートとは、コマンドがリードおよびライト動作の対象とするデータサイズを、制限時間で割ったものである。最低のビットレートでも使用不可能になったユニットは、リアルタイム情報記録不可能ユニットとされる。
【０１５５】
図１１は、第２の実施形態におけるファイルのリード動作を説明するフローチャートである。
【０１５６】
まず、ファイルがアプリケーションによってオープンされると（ステップＳ６１）、ファイルのファイル管理情報２１２に記憶されたリンク情報が参照される。このとき、ポインタを用いてリンク情報の参照位置が管理される。このポインタが指す位置のリンク情報からブロック開始アドレスが得られ、このブロック開始アドレスが示す記憶領域上のブロックからデータが時間制限つきＡＶコマンドで読み出される（ステップＳ６２）。
【０１５７】
次に、上記時間制限付リードコマンドにより、「指定時間オーバー」が発生したか否かが判断される（ステップＳ６３）。その結果、「指定時間オーバー」エラーが発生した場合は、使用したユニットに対応するユニット管理テーブル２１１のユニット状態情報における対応可能なビットレートランクが、このコマンドのビットレートよりも低いランクに変更される（ステップＳ６４）。
【０１５８】
そして、読み出し中のブロックがファイルを構成する論理的なブロックの最後か否かが判断され（ステップＳ６５）、最後である場合は、ファイルがクローズされ（ステップＳ６６）、リード動作が終了される。
【０１５９】
読み出し中のブロックがファイルを構成する論理的なブロックの最後でなく続くブロックが存在する場合は、リンク情報の参照位置を示すポインタを１進め、次のリンク情報からブロック開始アドレスが得られ、このブロック開始アドレスが示す記憶領域上のブロックからデータが読み出される（ステップＳ６２）。この読み出し処理（ステップＳ６２〜Ｓ６４）は、ステップＳ６５にて、読み出し中のブロックが最後であると判別されるまで繰り返される。
【０１６０】
図１２は、第２の実施形態におけるリアルタイムファイルのライト動作を説明するフローチャートである。
【０１６１】
アプリケーションがリアルタイムファイルをオープンすると（ステップＳ７１）、まず、ユニット管理テーブル２１１を参照して、未使用であり、かつ、書き込みビットレートで使用可能なユニットが検索される。（ステップＳ７２）。
【０１６２】
検索の結果得られたユニットが新たにファイルを記憶するためのユニットに割り当てられ、記憶すべき主データ２０がそのユニットに対応する一連のブロックに、時間制限付ライトコマンドで記憶される。この際、記憶に使用されたユニットに対応するユニット管理テーブル２１１のユニット使用状況情報が“未使用”から“ＲＴ全使用”に変更される。また、記憶に使用されたブロックのフラグを“１”に変更するよう、ブロック管理テーブル２１１が更新される。さらに、ファイル管理情報２１２に、記録に使用された各ブロックのリンク情報が追加される（ステップＳ７３）。
【０１６３】
次に、ステップＳ７３での時間制限付ライトコマンドにより、「指定時間オーバー」が発生したか否かが判断される（ステップＳ７４）。その結果、「指定時間オーバー」エラーが発生した場合は、使用したユニットに対応するユニット管理テーブル２１１のユニット状態情報における対応可能なビットレートランクが、コマンドのビットレートよりも低いランクに変更される（ステップＳ７５）。
【０１６４】
次に、記憶すべきデータが残っているか否かが判断され（ステップＳ７６）、記憶すべきデータが残っていない場合は、ファイルをクローズし（ステップＳ７７）、処理が終了される。他方、記憶すべきデータが残っている場合は、さらに、ステップＳ７２からの処理が繰り返される。
【０１６５】
リード動作およびライト動作において、各々読みこみエラーおよび書きこみエラーがないと想定すると、時間制限つきコマンドで「指定時間オーバー」エラーが発生する場合は、ブロックが既にフラグメント状態にあると判断することができる。したがって、この場合には、ユニットの状態情報における対応可能なビットレートランクをコマンドのビットレートより低いランクとする。
【０１６６】
尚、第２の実施形態による記憶媒体の初期化動作は、第１の実施形態における記憶媒体の初期化動作（図９）と同様になされる。ここで、ステップＳ５２においては、その状態情報として、ビットレートが最も高いリアルタイムファイルを記憶できることを示す“ＲＴ使用可能ユニット（ビットレートａＭｂｐｓまで）”がさらに設定される。
【０１６７】
以上、本実施の形態によれば、上記第１の実施の形態と同様、リアルタイムファイルと非リアルタイムファイルのライト処理を、円滑且つ効率的に行うことができるとのメリットに加え、さらに要求されるビットレートが相違する種々のリアルタイムファイルデータを、同一のＨＤＤ上に効率的に振り分けて記録することができ、よって、ＨＤＤの使用効率をより向上させることができるとのメリットを奏することができる。
【０１６８】
なお、本発明は上記実施の形態に限定されるものではないことは言うまでもない。上記実施の形態では、ＭＰＥＧデータを記録再生するデジタル記録再生装置を例に挙げて説明したが、その他、オーディオデータのみを記録再生するデジタル記録再生装置や、インターネット経由で入手したデータを記録再生する記録再生装置にも広く利用できる。
【０１６９】
また、図２、図１０に示す各種管理テーブルの生成処理や、図４から図９、図１１、図１２に示す処理を実行するためのプログラムは、ＨＤＤコントロールモジュール１１７にプリインストールする形態の他、ＣＤ−ＲＯＭ等の記憶媒体からのダウンロード、あるいはインターネットを経由したアプリケーションサーバからのダウンロードによっても実現できる。
【０１７０】
その他、メタデータの更新タイミングや、メタデータファイルの構成タイミング等についても適宜変更可能である。
【０１７１】
【発明の効果】
本発明のファイル記録管理方法によれば、リアルタイムファイルの再生に適したファイルアロケーションを行い、かつ、サイズの小さいデータによる記憶領域のフラグメンテーションの発生を抑制することができ、記憶領域の使用効率を向上させることができる。
【図面の簡単な説明】
【図１】第１の実施形態に係る記録再生装置の全体構成図
【図２】第１の実施形態に係る記録情報の構造を示す図
【図３】第１の実施形態に係る記録方法を模式的に示す図
【図４】第１の実施形態に係るリード動作のフローチャート
【図５】第１の実施形態に係るライト動作のフローチャート
【図６】第１の実施形態に係るライト動作のフローチャート
【図７】第１の実施形態に係る削除動作のフローチャート
【図８】第１の実施形態に係る削除動作のフローチャート
【図９】第１の実施形態に係る記憶媒体の初期化動作のフローチャート
【図１０】第２の実施形態に係る記録情報の構造を示す図
【図１１】第２の実施形態に係るリード動作のフローチャート
【図１２】第２の実施形態に係るライト動作のフローチャート
【図１３】メディア上の物理アドレスと論理アドレスと欠陥セクタリストの関係を示す図
【図１４】従来のファイル記録方法におけるファイルの構成を示す図
【図１５】従来のファイル記録方法におけるファイルの構成を示す図
【符号の説明】
３０、３０ａ〜３０ｄ    ブロック
２０１    リアルタイムファイル１
２０２    非リアルタイムファイル２
２１０    ブロック管理テーブル
２１０ａ〜２１０ｄ    ブロック管理テーブルのエントリ
２１１    ユニット管理テーブル
２１１ａ、２１１ｂ    ユニット管理テーブルのエントリ
【図１】
0003631234.tif 000002
【図２】
0003631234.tif 000003
【図３】
0003631234.tif 000004
【図４】
0003631234.tif 000005
【図５】
0003631234.tif 000006
【図６】
0003631234.tif 000007
【図７】
0003631234.tif 000008
【図８】
0003631234.tif 000009
【図９】
0003631234.tif 000010
【図１０】
0003631234.tif 000011
【図１１】
0003631234.tif 000012
【図１２】
0003631234.tif 000013
【図１３】
0003631234.tif 000014
【図１４】
0003631234.tif 000015
【図１５】
0003631234.tif 000016