JP3717922B2 - ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体 - Google Patents

ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体 Download PDF

Info

Publication number
JP3717922B2
JP3717922B2 JP2004322082A JP2004322082A JP3717922B2 JP 3717922 B2 JP3717922 B2 JP 3717922B2 JP 2004322082 A JP2004322082 A JP 2004322082A JP 2004322082 A JP2004322082 A JP 2004322082A JP 3717922 B2 JP3717922 B2 JP 3717922B2
Authority
JP
Japan
Prior art keywords
unit
file data
data
stored
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004322082A
Other languages
English (en)
Other versions
JP2005050383A (ja
Inventor
雄一 金井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2004322082A priority Critical patent/JP3717922B2/ja
Publication of JP2005050383A publication Critical patent/JP2005050383A/ja
Application granted granted Critical
Publication of JP3717922B2 publication Critical patent/JP3717922B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

本発明は、ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体に関し、特に、リアルタイムファイルデータと非リアルタイムファイルデータを効率的に記憶し得るものである。
一つのファイルを構成するデータ(以下、ファイルデータという)を記憶媒体に記憶する場合、記憶媒体の記憶領域を所定の同一容量に分割したブロックに対してファイルデータを割り当てる方法がとられる。このファイル記憶方法では、ブロック管理テーブルによって、各ブロックの使用/未使用が管理されている。
ファイルデータの記憶は、このブロック管理テーブルを参照して未使用ブロックを検索し、ファイルデータの容量に従って複数の未使用ブロックをデータ記憶用として割り当てることにより行われる。この際、どのブロックを用いてファイル情報を記憶したかを示すファイル構成テーブルが作成される。このファイル構成テーブルとしては、例えば、FAT(File Allocation Table)などが用いられる。FATはファイルを構成するブロックの物理的な繋がりを規定するものである。具体的には、ブロックに付されたユニークなブロック番号を用いて、記憶領域の全てのブロックに対し、そのブロック番号とそのブロックと論理的に続くブロックの番号とを対応づけるテーブルが作成される。
特開2001−265628号公報 特開平8−101783号公報
ブロック長以上の容量を持つファイルデータ、例えば映像やオーディオなどの記憶容量の大きいデータを記憶する場合には、複数のブロックに跨ってファイルデータが格納されることとなる。ここで、記憶媒体上の物理的に非連続な領域に飛び飛びにデータが記憶されると、これらのデータをリアルタイム処理して読出す場合に、ドライブヘッドの移動時間によって、アクセスをスムーズに行なうことができず、連続的なデータ処理が困難になってしまう可能性がある。したがって、このようなリアルタイム処理される大容量データの記憶を考慮すると、一つのブロックの容量を大きく設定し、物理的に連続した領域を少しでも大きく確保
するようにするのが望ましい。
一方、ファイルのデータ容量は、ファイルの種類によってさまざまであり、ごく小さな文書ファイル等のように、非常にデータ容量の小さいファイルも存在する。
しかしながら、現状のファイル記憶方法においては、ファイルデータの記憶はブロック単位で実行されるため、1つのブロックに2つ以上のファイルデータを記憶することはできない。したがって、ブロックの容量を大きく取りすぎると、各ブロック内に、実際のデータは記憶されていないが他のファイルのデータを記憶することが不可能な空き領域が増加してしまい、その結果、記憶領域の使用効率が著しく低下してしまうという問題が生じる。
反対に、ブロックの容量を小さくしすぎると、大容量のファイルデータを記録する場合に、リンクされるブロックの数が非常に大きくなり、これらのデータを読出す際のアクセス性能の低下が懸念される。
また、データを頻繁に入出力することによって、データの記憶・消去が繰り返されると、物理的に連続した空き領域を確保することが困難となり、いわゆるフラグメンテーション(断片化)が生じるという問題点も起こり得る。
図14に、記憶媒体に対するファイルデータの割り当ての一例と、その際のブロック管理テーブルおよび各ブロックの使用状態を示す。同図のブロック管理テーブル中、1はそのブロックが使用されている状態、0はそのブロックが未使用の状態を示す。また、図中のハッチ部30xが使用ブロック、無地部30yが未使用の空きブロックである。図14では、空ブロックが点在しており、フラグメンテーションが発生している。
これに対し、例えば図15に示すように、4つのブロックを一つのブロックとみなすように管理テーブルを構成することもできる。このようにブロック管理テーブルで扱うデータ容量を大きくすることで、前述のフラグメンテーションの問題をある程度解決することができる。しかしこのようにすると、前述したように、記憶領域の使用効率が著しく低下することとなる。
そこで、本発明は、かかる問題を解消し、リアルタイムファイルの記憶再生に適したファイルデータの割り当てを行いながら、同時に、フラグメンテーションの発生を抑制することにより、容量の小さいファイルデータをも効率的に記憶再生し得るデータ記憶方法を提供することを目的としている。
本発明は、連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットを構成し、このユニットの属性をユニット属性テーブルによって管理するものである。このユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含んでいる。
記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能な未使用のユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータが記憶される。また、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータ記憶される。
このように、記憶されるファイルデータがリアルタイムデータであるか非リアルタイムデータによって、記録処理を変更することにより、未使用のユニット数を増加させることができ、よって、効率的にリアルタイムデータの記憶を行うことができるようになる。
本発明の一つの局面は、たとえば、ブロックにデータが記憶されているか否かを管理するブロック管理テーブルと、連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットの属性を管理するユニット属性テーブルと、前記ユニット属性テーブルに基づいてファイルデータを記憶する処理と、前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成する処理と、前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新する処理とを含むファイルデータ記憶方法として把握することができる。
また、ファイルデータを記憶する処理は、記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能な未使用のユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶し、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶する処理を含む。
本発明の他の局面は、たとえば、ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するための手段と、連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットの属性を管理するユニット属性テーブルを生成するための手段と、前記ユニット属性テーブルに基づいてファイルデータを記憶するための手段と、前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成するための手段と、前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新するための手段とを含むファイルデータ記憶装置として把握することができる。
本発明のさらに他の局面は、たとえば、ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するステップと、連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットを構成し、各ユニットの属性を管理するユニット属性テーブルを生成するステップと、
前記ユニット属性テーブルに基づいてファイルデータを記憶するファイルデータ記憶ステップと、
前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成するステップと、
前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新するステップとをコンピュータに実行させることを特徴とするプログラムとして把握することもできる。
本発明の前記ならびにその他の目的と新規な特徴は、以下に示す実施の形態の説明を添付図面と照らし合わせて読むと、より完全に明らかとなるであろう。
本発明の請求項における「ブロック」は、実施形態においては、「ブロック」に相当する。また、本発明の請求項における「ユニット」は、実施形態においては、「ユニット」に相当する。 また、本発明の請求項における「ブロック管理テーブル」は、実施形態においては、「ブロック管理テーブル210」に相当する。また、本発明の請求項における「ユニット属性テーブル」は、実施形態においては、「ユニット管理テーブル211」に相当する。また、本発明の請求項における「リンク情報」は、実施形態においては、「リンク情報」に相当する。
ただし、以下の実施の形態は、あくまでも、本発明の一つの実施形態であって、本発明ないし各構成要件の用語の意義は、以下の実施の形態に記載されたものに制限されるものではない。
本発明のファイル記録管理方法によれば、リアルタイムファイルの再生に適したファイルアロケーションを行い、かつ、サイズの小さいデータによる記憶領域のフラグメンテーションの発生を抑制することができ、記憶領域の使用効率を向上させることができる。
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本発明の一実施形態におけるデジタル記録再生装置の全体構成を示すブロック図である。なお、図1において、太線で示した信号線は、映像および/または音声データの流れを表わす信号線であり、細線で示した信号線は、制御信号の流れを表わす信号線である。
デジタル記録再生装置は、アンテナ100、外部入力端子101、チューナ102および103、セレクタ104、A/Dコンバータ105および106、MPEG2ビデオエンコーダ107および108、オーディオエンコーダ109および110、マルチプレクサ/デマルチプレクサ111、MPEG2ビデオデコーダ112、オーディオデコーダ113、D/Aコンバータ114、バッファメモリ115および116、ハードディスクドライブコントローラモジュール117、ハードディスクドライブ118、システムコントローラ119、メモリ120、ユーザインタフェース121、グラフィックコントローラ122、テレビジ
ョンモニタ123、リアルタイムクロックモジュール124、デジタルインプット125、デジタルアウトプット126、LED127から構成されている。
図1を参照して、アンテナ100で受信した、例えばテレビジョン放送の信号電波は、チューナ102および103に同時に与えられる。
チューナ102は、アンテナ100で受信した信号電波から、ユーザによって指定された1つのチャネルの信号電波を選択し、映像信号と音声信号とからなるアナログのテレビジョン信号に復調してセレクタ104の一方入力に与える。セレクタ104の他方入力には、ビデオテープレコーダ(VTR)、カムコーダ等の各種の外部テレビジョン信号源が接続可能な外部入力端子101が接続される。
セレクタ104は、チューナ102からの出力または外部入力端子101からの入力のいずれかを選択してA/Dコンバータ105に与えるとともに、グラフィックコントローラ122の1つの入力に与える。一般に、セレクタ104は、外部入力端子101に何らかの外部信号源が接続されている場合には、外部入力端子101からの入力を選択し、接続されていない場合にはチューナ102の出力を選択する。
A/Dコンバータ105は、セレクタ104から出力されるアナログのテレビジョン信号の映像信号および音声信号をそれぞれデジタル信号に変換し、デジタル映像信号をMPEG2ビデオエンコーダ107に与えるとともに、デジタル音声信号をオーディオエンコーダ109に与える。
MPEG2ビデオエンコーダ107は、与えられたデジタル映像信号を圧縮してマルチプレクサ/デマルチプレクサ111に与え、オーディオエンコーダ109は、与えられたデジタル音声信号を圧縮してマルチプレクサ/デマルチプレクサ111に与える。マルチプレクサ/デマルチプレクサ111は、与えられた映像信号のストリームと音声信号のストリームとをマルチプレクスし、MPEG2のシステムストリームに変換する。
一方、チューナ103は、アンテナ100で受信した信号電波から、ユーザによって指定された1つのチャネルの信号電波を選択し、映像信号と音声信号とからなるアナログのテレビジョン信号に復調してA/Dコンバータ106に与えるとともに、グラフィックコントローラ122のもう1つの入力に与える。
A/Dコンバータ106は、チューナ103から出力されるアナログのテレビジョン信号の映像信号および音声信号をそれぞれデジタル信号に変換し、デジタル映像信号をMPEG2ビデオエンコーダ108に与えるとともに、デジタル音声信号をオーディオエンコーダ110に与える。
MPEG2ビデオエンコーダ108は、与えられたデジタル映像信号を圧縮してマルチプレクサ/デマルチプレクサ111に与え、オーディオエンコーダ110は、与えられたデジタル音声信号を圧縮してマルチプレクサ/デマルチプレクサ111に与える。マルチプレクサ/デマルチプレクサ111は、与えられた映像信号のストリームと音声信号のストリームとをマルチプレクスし、MPEG2のシステムストリームに変換する。
このデジタル記録再生装置には、ランダムアクセス可能な記憶媒体の一例としてのハードディスクを内蔵するハードディスクドライブ(以下、HDD)118が、取外し可能に装着される。以下の説明においては、便宜上この単体のHDD118そのものを書き込み読み出し可能な記憶媒体と見なすことにする。このHDD118へのデータの書込、およびHDD118からのデータの読出は、後述するようにHDDコントローラモジュール117によって実行される。
上述のマルチプレクサ/デマルチプレクサ111と、このHDDコントローラモジュール117との間には、バッファメモリ115を途中に含む第1のデータバスと、バッファメモリ116を途中に含む第2のデータバスとからなる2系統のデータチャネルが設けられている。
さらに、デジタルインプット125を介して外部接続された他の装置からのデジタルデータがバッファメモリ115に入力可能であり、一方バッファメモリ116のデジタルデータは、デジタルアウトプット126を介して外部接続された他の装置へ出力可能である。
したがって、後述するように、バッファメモリ115および116を介して、マルチプレクサ/デマルチプレクサ111と、HDDコントローラモジュール117と、デジタルインプット125およびデジタルアウトプット126との間で、MPEG2のシステムストリームデータのやり取りが行なわれることになる。
マルチプレクサ/デマルチプレクサ111は、バッファメモリ115および116から受取ったMPEG2のシステムストリームを、映像信号のストリームと音声信号のストリームとにデマルチプレクスし、前者をMPEG2ビデオデコーダ112に、後者をオーディオデコーダ113に与える。
MPEG2ビデオデコーダ112は、与えられた映像信号のストリームをデコードしてD/Aコンバータ114に与え、オーディオデコーダ113は、与えられた音声信号のストリームをデコードしてD/Aコンバータ114に与える。D/Aコンバータ114は、与えられた信号をそれぞれアナログ信号に変換し、映像信号と音声信号とからなるアナログのテレビジョン信号をグラフィックコントローラ122のさらにもう1つの入力に与える。
グラフィックコントローラ122は、セレクタ104と、チューナ103と、D/Aコンバータ114とからそれぞれ与えられたアナログのテレビジョン信号のいずれかを選択して、デジタル記録再生装置の外部に接続されたテレビジョンモニタ123に与える。
マルチプレクサ/デマルチプレクサ111およびグラフィックコントローラ122の動作は、システムコントローラ120から与えられる制御信号によって制御される。
また、このデジタル記録再生装置がデジタルインプット125およびデジタルアウトプット126を介して外部の他の装置と接続されたときに、システムコントローラ119からの制御信号はデジタルインプット125を介して(細線)他の装置のシステムコントローラ(図示せず)に与えられ、そのシステムコントローラからの制御信号は、デジタルアウトプット126を介して(細線)、このデジタル記録再生装置のシステムコントローラ119に与えられる。
システムコントローラ119には、ユーザインタフェース121と、メモリ120と、リアルタイムクロックモジュール124とが接続される。
図1に示したこの発明に係る上記デジタル記録再生装置の記憶、再生、消去等の基本動作原理については、ハードディスクドライブ118に対するファイル記憶方法との関係において後で詳細に説明する。
次に、本実施の形態における記憶媒体であるハードディスクに記憶される情報について説明する。
図2に示すように、記憶媒体であるハードディスクにデータをファイルとして記憶する場合、映像や音声などの記憶されるべきデータ自体(以下主データ20という)と、主データ20がファイルとして構成されるために必要な管理情報(以下メタデータ21という)がハードディスクに記憶される。
メタデータ21は、ブロック管理テーブル210、ユニット管理テーブル211、ファイル管理情報212の3つの情報からなり、本デジタル記録再生装置において、記憶媒体の初期設定時に生成され、データが記録あるいは消去されるごとに更新される。
以下に、図3を用いて、上記各管理情報について説明する。
図3は、ユニット管理テーブルを用いた記録方法を模式的に説明する図である。
<ブロック管理テーブル>
ブロック管理テーブル210は各ブロックの使用状況を管理するものである。当該ブロック管理テーブル210を構成するエントリ210a、210b、210c、210d、…は記憶領域30a、30b、30c、30d、…のブロックに対応しており、ブロックの使用状況に応じ、使用中のブロックの場合は“1”、未使用のブロックの場合は“0”を示す。
<ユニット管理テーブル>
ユニット管理テーブル211は、HDD118の記憶領域をユニット単位のアドレス空間とみなしてユニット番号を順に付けたときに、それぞれのユニットの使用状態を管理する。
ユニットは、エントリ211a、211b、…から構成され、例えば、エントリ211aは、ブロック管理テーブル210上のエントリ210a、210b、210c、210dに対応したユニットのエントリである。ユニット管理テーブル211は、そのユニットについて、リアルタイムファイルを記憶できるか否かを示すユニット状態情報と、ユニットの使用状況を示すユニット使用状況情報を示す。
ここで、ユニットにリアルタイムファイルを記憶できるか否かは、例えば、後述の実施例2の形態における判別と同様、リード/ライトを実行するための特殊コマンドによる記憶・再生動作をモニタし、リアルタイムにて記憶・再生が保証されるかを判別することによってなされる。
各ユニットのユニット状態情報とユニット使用状況情報は、図2に示す如く区分されている。ユニット使用状況情報において、“未使用”とは、ユニットを構成しているブロック全てが記憶可能である状態をいう。また、“RT全使用”とは、ユニットを構成しているブロック全てを連続してリアルタイムファイルの記憶に使用している状態をいう。また、“NRT一部使用”とは、ユニットを構成しているブロックの一部を非リアルタイムファイルの記憶に使用している状態をいう。また、“NRT全使用”とは、ユニットを構成しているブロック全てを非リアルタイムファイルの記憶に使用している状態をいう。
ユニットは、リアルタイム処理をするために必要なサイズであるため、リアルタイムファイルにより一部使用されている状態は存在しない。また、ユニット内にリアルタイムファイルとノンリアルタイムファイルの両方が存在することはない。したがって、ユニットが“NRT一部使用”の場合、残りのブロックには非リアルタイムファイルのみ記憶可能である。
<ファイル管理情報>
図2に戻り、ファイル管理情報212は、主データ20がファイルとして認識されるための管理情報である。
主データ20に対応したファイルのファイル管理情報212には、主データ20を構成するブロックのリンク情報が記録されている。具体的には、主データ20に関する属性情報(図中非表示)と、ブロックの開始アドレス情報が参照順に記憶されている。
上記属性情報は、主データ20が、リアルタイムに処理されるデータか否かを示す情報を含む。
リアルタイムファイル201(図3参照)には、上記マルチプレクサ/デマルチプレクサ111によって作成されたMPEG2のシステムストリームなど、リアルタイムに処理される主データ20が、上述のユニット単位のデータとして格納される。
したがって、リアルタイムファイル201の全体の容量は、必ずユニット単位容量の整数倍である。また、ブロック単位で記録を行なっているHDD118においても、リアルタイムファイル201の開始アドレスは、ユニットの境界にあたるアドレスでなくてはならない。これは、ユニット管理テーブル211において、記憶空間をユニット単位のアドレス空間とみなすためである。
このリアルタイムファイル201のファイル構成を示すファイル管理情報212には、このリアルタイムファイル201が割り当てられているユニットに対応したブロックのリンク情報が記憶される。
非リアルタイムファイル202の場合、リアルタイムに処理される必要がない主データ20が、ブロック単位のデータとして格納されるため、この非リアルタイムファイル201の全体の容量は、ブロック単位容量の整数倍となる。
また、非リアルタイムファイル202のファイル構成を示すファイル管理情報212には、リアルタイムファイルと同様に、この非リアルタイムファイル202が割り当てられているブロックのリンク情報が記憶される。
<ユニットの容量>
次に、本デジタル記録再生装置において、複数のストリームデータをリアルタイムで同時に扱うために必要なユニットの容量について説明する。
まず、バッファメモリ115、116の容量Cと、書き込み/読み出しの単位ブロック長Lと、HDDコントローラモジュール117とHDD118との間のワーストケースのデータ転送レートBhddと、MPEG2システムストリームのレートBsysと、HDD118のシーク時間のワースト値Twとの関係について説明する。
ただし、シーク時間のワースト値Twは、単なるヘッドのシークのみに要する時間ではなく、シークを開始してから実際にデータの書き込み/読み出しが始まるまでにかかる、シーク時間、回転待ち時間、ヘッド切換時間、ECC/EDC等の誤り訂正に要する時間、等の群遅延のワースト値をすべて考慮した時間である。
同時に処理するストリーム数をNとした場合、すべてのストリームのリアルタイム性を保持するためには、以下の式を満たす必要がある。
Bhdd×Ts>N×(Tw+Ts)×Bsys …(1)
ただし、Tsは、HDD118に対して、書き込み/読み出しの単位ブロック長Lを書き込み/読み出しするのに要する時間であり、Ts=L/Bhddで表わされる。
上記の式(1)は、データの読み出しの場合は、あるストリームにおいて単位ブロックで読み出しを行なったデータ量が、N本のストリームを処理するのにかかるN回のシーク時間とN回のデータ書き込み/読み出し時間との和の時間内で消費し尽くさないように設計する必要があることを意味している。
さらに、データの書き込みの場合は、N本のストリームを処理するのにかかる時間中に、バッファメモリ115、116に蓄積されるデータ量は最悪のケースで、N×(Tw+Ts)×Bsysであることを意味している。
したがって、バッファメモリ115、116の容量Cは、以下の式を満たす必要がある。
C>N×(Tw+Ts)×Bsys …(2)
上記の式(1)および(2)を満たすような設計を行なうことにより、N本のストリームを同時にリアルタイムで処理することが可能となる。ただし、Bhdd>N×Bsysを満たす範囲内でNを設定しなければならない。
なお、HDD118からリアルタイムファイルのデータをバッファメモリ115、116に転送する場合、ユニット単位で読み出すと最も効率良く処理することができる。このとき、ユニット容量Usizeは次式で表わすことができる。
Usize = L …(3)
ここで、上記の通り、Ts=L/Bhddだから、この関係式と(3)式とを上記(1)式に代入することにより、Usize容量の条件式として、下式を得ることができる。
Usize>N×(Tw+(Usize/Bhdd))×Bsys …(4)
この容量のユニットに、一定時間の映像データと音声データとを格納する。なおこの実施形態の装置においては、MPEG2でエンコードされた映像データ(Group of Pictures:以下、GOP)とそれに対応する音声データとをマルチプレクサ/デマルチプレクサ111によってマルチプレクスしてシステムストリームとしている。
また、1GOPのピクチャ数を15とすると、1ユニットの再生時間は次のようになる。
5*(15/30)=2.5秒
ここで、これらのパラメータについて、ユニット単位での再生が保証されているかどうかの検証を行なう。
前述の定義より、書き込み/読み出しの単位ユニット長をL=2752512バイトとすると、MPEG2のシステムストリームのレートBsysは、
Bsys=L/2.5=1101004バイト/秒
となる。
本デジタル記録再生装置において、ストリームの本数をN=2とし、シーク時間のワースト値をTw=50ms、HDDコントローラモジュール118とHDD119との間のワーストケースのデータ転送レートをBhdd=5MB/秒とすると、
Ts=L/Bhdd=550ms
が成り立つ。したがって、式(1)の左辺Bhdd*Tsは、
Bhdd*Ts=5×106*550×10-3=2.7×106
式(1)の右辺N*(Tw+Ts)*Bsysは、
N*(Tw+Ts)*Bsys=2*(50+550)×10-3*1101004=1.32×106
となり、上述の式(1)を満たすことになる。したがって、定義されたこれらのパラメータにおいてユニット単位でのデータの再生が保証される。
次に、フローチャートを用いて、ファイルのリード(読み出し)およびライト(書き込み)動作を説明する。
図4は、ファイルデータのリード動作を説明するフローチャートである。
まず、ファイルがアプリケーションによってオープンされると(ステップS1)、当該ファイルのファイル管理情報が読み出され、このファイル管理情報中のリンク情報が参照される。上記の如く、リンク情報は、当該ファイル情報を記憶する各ブロックの開始アドレスを参照順に規定するものである。ファイル情報の読み出しは、このリンク情報を先頭から順番に参照して各ブロックの開始アドレスを取得し、取得した開始アドレスが示す記憶領域上のブロックからデータを順番に読み出すことによって行われる。ここで、リンク情報の参照位置は、ポインタによって管理される。
まず、このリンク情報の先頭にポインタがセットされ(ステップS2)、ファイル情報を記憶する最初ブロックの開始アドレスが取得される。そして、この開始アドレスが示す記憶領域上のブロックからデータが読み出される(ステップS3)。
次に、このブロックがファイルを構成する論理的なブロックの最後か否かが判断され(ステップS4)、最後である場合は、ファイルをクローズして(ステップS5)、リード動作が終了される。他方、ブロックがファイルを構成する論理的なブロックの最後でなく続くブロックが存在する場合は、リンク情報の参照位置を示すポインタが1つ進められ(ステップS2)、ファイル情報を記憶する次のブロックの開始アドレスが取得される。そして、このブロック開始アドレスが示す記憶領域上のブロックからデータが読み出される(ステップS3)。
以上のデータ読み出しは、ステップS4にて、ポインタが示すブロックが最後のブロックであると判断されるまで繰り返される。これにより、当該ファイル情報が全て記憶媒体から読み出される。
図5は、リアルタイムファイルのライト動作を説明するフローチャートである。
アプリケーションがリアルタイムファイルをオープンすると(ステップS11)、まず、ユニット管理テーブル211を参照して、未使用ユニットが検索される(ステップS12)。
検索の結果得られた未使用ユニットは新たにファイルを記憶するためのユニットに割り当てられ、記憶すべき主データ20がそのユニットに対応する一連のブロックに順次記憶される。この際、記憶に使用したユニットに対応するユニット管理テーブル211のユニット使用状況情報が“未使用”から“RT全使用”に変更される。また、記憶に使用されたブロックのフラグを“1”に変更するよう、ブロック管理テーブル211が更新される。さらに、ファイル管理情報212に、記録に使用された各ブロックのリンク情報が追加される(ステップS13)。
次に、記憶すべきデータが残っているか否かが判断され(ステップS14)、記憶すべきデータが残っていない場合は、ファイルをクローズし(ステップS15)、処理を終了する。他方、記憶すべきデータが残っている場合は、さらに、未使用ユニットが検索され(ステップS12)。そして、検索により得られたユニットにデータが記憶される(ステップS13)。以上のデータ記憶の処理は、ステップS14にて、記憶すべきデータが残っていないと判断されるまで繰り返される。
図6は、非リアルタイムファイルのライト動作を説明するフローチャートである。
アプリケーションが非リアルタイムファイルをオープンすると(ステップS21)、まず、ユニット管理テーブル211を参照して、NRT一部使用ユニットが存在するか否かが検索される(ステップS22)。検索の結果、NRT一部使用ユニットが存在しない場合、再びユニット管理テーブル211を参照して、未使用ユニットが検索される(ステップS24)。そして、得られた未使用ユニットに対応するブロックが、主データ20を記憶するためのブロックとして割り当てられる。
また、記憶のために使用されたユニットに対応するユニット管理テーブル211のユニット使用状況情報が“未使用”から“NRT一部使用”に変更される(ステップS25)。
一方、ステップS22における検索の結果、NRT一部使用ユニットが存在する場合、得られたNRT一部使用ユニット中の未使用ブロックが、主データ20を記憶するためのブロックとして割り当てられる(ステップS23)。ここで、NRT一部使用ユニット中の未使用ブロックが記憶により全て使用される場合、このユニットのユニット使用状況情報が“NRT一部使用”から“NRT全使用”に変更される。
そして、ステップS23またはS24にて割り当てられた未使用ブロックに主データ20が記憶されると共に、記憶に使用されたブロックのフラグを“1”に変更するよう、ブロック管理テーブル210が更新される。また、ファイル管理情報212に記憶に使用されたブロックのリンク情報が追加される(ステップS26)。
次に、記憶すべきデータが残っているか否かが判断され(ステップS27)、記憶すべきデータが残っていない場合は、ファイルをクローズし(ステップS28)、処理が終了される。他方、記憶すべきデータが残っている場合は、さらに、未使用ユニットおよび未使用ブロックが検索され、検索により得られたブロックにデータを記憶する処理(ステップS22〜S26)が繰り返される。
図7は、リアルタイムファイルの削除動作を説明するフローチャートである。
アプリケーションが削除するリアルタイムファイルを選択すると(ステップS31)、選択したリアルタイムファイルを記憶するブロックのうち先頭のブロックが、ファイル管理情報212のリンク情報を参照して獲得される。さらに、ユニット管理テーブル211中のユニットサイズ情報から当該ブロックに対応するユニットが算出される(ステップS32)。そして、このブロックに記憶されたデータが順次消去される。
このようにしてブロックに記憶されたデータが消去されると、このブロックの使用状況を示すブロック管理テーブル210が、使用中であることを示す“1”から未使用であることを示す“0”に変更される。さらに、一ユニット中の全てのブロックについてデータ消去がなされると、このユニットの使用状況を示すユニット管理テーブル211のユニット使用状況情報が“RT全使用”から“未使用”に変更される(ステップS33)。
そして、削除すべきデータが残っているか否かが判断され(ステップS34)、削除すべきデータが残っていない場合は、ファイル管理情報212からこのファイルの管理情報が削除され(ステップS35)、処理が終了される。
他方、削除すべきデータが残っている場合は、ファイル管理情報212のリンク情報を指すポインタが1つ進められ、次のブロックが獲得され、ユニット管理テーブル211中のユニットサイズ情報からブロックに対応したユニットが算出される(ステップS32)。そして、上記と同様にして、ブロック管理テーブル210およびユニット管理テーブル211が更新される(ステップS33)。この更新処理(ステップS32、S33)は、ステップS34にて、削除すべきデータが残っていないと判断されるまで繰り返される。
図8は、非リアルタイムファイルの削除動作を説明するフローチャートである。
アプリケーションが削除する非リアルタイムファイルを選択すると(ステップS41)、選択した非リアルタイムファイルを記憶するブロックのうち先頭のブロックが、ファイル管理情報212のリンク情報を参照して獲得される。
次に、このブロックの使用状況を示すブロック管理テーブル210が、使用中であることを示す“1”から未使用であることを示す“0”に変更される(ステップS43)。さらに、このブロックに対応するユニットが含む他のブロックの使用状況が調べられ(ステップS44)、ユニットを構成する全てのブロックが未使用となった場合には、このユニットの使用状況を示すユニット管理テーブル211のユニット使用状況情報が“未使用”に変更される(ステップS46)。
また、ユニットを構成するブロックの一部が使用されている状態となった場合には、このユニットの使用状況を示すユニット管理テーブル211のユニット使用状況情報が“NRT一部使用”に変更される(ステップS45)。
次に、削除すべきデータが残っているか否かが判断され(ステップS47)、判断の結果、削除すべきデータが残っていない場合は、ファイル管理情報212からこのファイルの管理情報が削除され(ステップS48)、処理が終了される。他方、削除すべきデータが残っている場合は、ファイル管理情報212のリンク情報を指すポインタが1つ進められ、次のブロックが獲得される(ステップS42)。そして、上記と同様にして、ブロック管理テーブル210およびユニット管理テーブル211が更新される(ステップS43〜S46)。この更新処理(ステップS42〜S46)は、ステップS47にて、削除すべきデータが残っていないと判断されるまで繰り返される。
図9は、記憶媒体の初期化動作を説明するフローチャートである。
本装置で記憶媒体を初めて使用する時、その記憶媒体が本装置で使用できるように、記憶領域の管理に使用される管理データ、具体的には、メタデータ21中のブロック管理テーブル210、ユニット管理テーブル211が生成され、初期設定がなされる。
ユニットの容量およびユニット数については、アプリケーションが規定し、これに従いユニット管理テーブル211が初期設定される(ステップS51)。
ブロック管理テーブル210には、全ブロックについて、その使用状況が未使用である“0”が設定される(ステップS52)。
ユニット管理テーブル211には、全ユニットについて、その状態情報として、リアルタイムファイルが記憶可能であることを示す”RT使用可能ユニット”が設定され、また、ユニットの使用状況として、ユニットを構成するブロック全てが記憶可能であることを示す“未使用”が設定される(ステップS52)。
以上のように、本実施の形態では、主データの記憶媒体における記憶場所を管理する時、従来のファイル記憶方法で用いてきた物理的な記憶単位に依存したブロックの他に、リアルタイムに処理されるデータを記憶するのに適した記録単位であるユニットが用いられる。
このユニットは、リアルタイム処理が保証された容量に設定され、連続した複数のブロックで構成され、ユニットとブロックは、ユニット管理テーブルのユニットサイズ情報を用いた演算により一意に対応付けられるため、ユニット単位で記憶した映像データなどのリアルタイムファイルをユニット単位で記憶した場合でも、ユニット管理テーブル211を必須とせず、ブロック管理テーブル210のみを用いて、ブロック単位でファイルデータを読み出すことが可能となる。
また、非リアルタイムに処理されるデータに対しては、従来と同様に、ブロック単位でデータが記憶されるが、このときのブロックの使用状況に対応して、ユニット管理テーブルも更新される。
このように、データの属性によって、記憶単位を換えることにより、記憶媒体を効率よく使用することが可能となり、ひいては、記憶領域のフラグメンテーションの発生を抑制することもできる。
ところで、上記実施の形態においては、ユニット管理テーブル211のユニット状態情報は、ユニットの使用・未使用に応じて、「RT使用可能ユニット」と「RT使用不可能ユニット」の2種類のユニットのみ規定するものであった。しかしながら、データの記録・消去を繰り返すうちに、エラー訂正では補償し得ない欠陥領域が発生する。これにより、ユニットが未使用であっても、そのユニットをリアルタイムファイルの記憶・再生用に使用できない場合が生じ得る。
すなわち、ハードディスク等の記憶媒体には、欠陥領域の発生に対応するために、通常代替領域が準備されている。欠陥領域が生じた場合には、代替領域に対してデータの割り当てが行われる。
しかし、代替領域は通常、一連の記憶領域とは物理的に離間して配されている。したがって、代替領域にデータを記憶する場合には、記憶、再生時に、シークや回転まち等の余分な時間が掛かってしまう。よって、ユニットが未使用状況となっていても、そのユニットに欠陥領域が存在する場合には、リアルタイムファイルの記憶・再生に必要な書き込み/読み出しレートを保証できない場合が起こり得る。かかる理由により、ユニットが未使用であっても、欠陥領域が発生すると、そのユニットを、RT使用可能ユニットとしてそのまま使用することはできない場合が起こり得る。
他方、たとえばデジタル放送においては、HD(High Definition)放送の場合のビットレートは約24Mbpsで、SD(Standard Definition)放送の場合のビットレートは約8Mbpsである。したがって、所定のユニットに欠陥領域が発生した場合、そのユニットをHD放送用に使用できなくても、よりレートの低いSD放送用として使用可能な場合もあり得る。かかる理由から、欠陥領域の発生によってユニットの書き込み/読み出しレートが低下したとしても、一律にそのユニットを「RT使用不可能」とするのは適当でない。
そこで、本実施の形態においては、書き込み/読み出しレートのランク区分をユニット毎に付し、このランク区分を上記ユニット管理テーブルに含めておく。そして、リアルタイムファイルの書き込み時には、かかるランク区分を参照して、そのファイルの転送レートを保証し得るユニットを対象ユニットとして選択するようにする。
各ユニットは、初期状態においては、最上位のレートのランク区分とされている。そして、その後の書き込み/読み出し時に、リアルタイムファイルの転送レートを保証し得たかが判別され、ここで保証し得なかった場合には、そのファイルの転送レートよりも低いランク区分に変更される。
リアルタイムファイルの転送レートを保証し得たか否かは、たとえば、HDD(ハードディスクドライブ)をAVデータ記憶用途に使用する場合に用いられる特殊コマンドを使用して判別される。このコマンドは、リアルタイム性重視のコマンドで、時間制限付きリードおよびライトを実行するコマンドである。
<時間制限付リード・ライトコマンド>
ここでの時間の定義は、指定した時間内にHDDがホスト側に必ず応答を返すことである。これらのコマンドを使用した場合、HDD側の処理の優先度は、以下の通りである。
1.指定時間内に正常にデータの入出力を終えホストに通知する。
2.途中にエラーが発生して、リトライや代替処理が必要な場合;
指定時間内に処理可能な場合は、それを実行する。指定時間を超える場合は、エラーを無視し、指定時間内に指定セクタ数の入出力処理を終了させて、ホストに通知する。この場合、ホストに対し、「エラーが発生したが入出力完了」という形で通知し、エラー情報はログに残しておく。
3.発生したエラーを無視しても入出力処理が終了しない場合;
指定時間以内に処理を中断し、「タイムアウトエラー」という形でホストに通知する。本来、指定時間内に応答を返すことが前提であるが、例外として、少なくとも1度はリード・ライトを行ない、この時点で既に指定時間をオーバーしている時のみ、指定時間内に応答しなくてよいものとする。但し、「指定時間オーバー」であることをホストに知らせる必要がある。
以上の通り、記憶媒体であるHDDのメディア上の前記ユニットに欠陥があった場合、その部分のデータアクセスにおけるリアルタイム性は低下する。そこで、ユニット毎の前記ユニット状態情報として、ユニットが保証できるビットレートのランク区分を備えておけば、これを参照して、さまざまなビットレートのデータをそれぞれ適したユニットに配することにより、リアルタイム性を保証し、かつ、記憶媒体を有効に利用した記憶が実現できる。
以下、かかる実施の形態のより具体的な構成および制御について説明する。
<メディアの代替>
記憶媒体であるHDDのメディア上に欠陥があった場合、通常代替ブロックが割り当てられる。
光ディスクなどの場合は、代替ブロックの位置、数等が規格として決められているがHDDの場合には、コマンドインタフェースのみが規定されており、内部構造は、ドライブベンダー毎に相違する。従って、代替処理シーケンス、代替ブロック位置、代替ブロックをリード及びライトする場合のオーバーヘッド時間等は規定されていない。これはリアルタイム処理する場合に問題となり、以下に説明する。
<物理アドレス、論理アドレスの関係とフラグメンテーション>
図13に、メディア上の物理アドレス、論理アドレス、欠陥ブロック管理リストの関係を示す。以下、欠陥ブロックの処理手順とそれに伴うフラグメンテーションに関して説明する。
ハードディスクを例に取った場合、通常、使用開始時においては、ホストからアクセスされる論理アドレスの連続性は、メディア上の物理アドレスの連続性を持っていると考えて良い。本来、製品出荷時にすでにある欠陥セクタは出荷時に代替処理されるが、ここでは簡略化のため省略する。
ディスク上には、後発的な欠陥ブロックのための代替ブロックが準備されている。ハードディスクの場合、その数や物理的位置に関しては、規定されておらず、例えば、ディスクの最内周にまとめて代替ブロック領域が配置される。この領域に対しては、当然論理アドレスへのマッピングはない。
図13に示すように、例えば、論理ブロックAが欠陥ブロックと判断された場合、ドライブは、その論理ブロックAに対応する物理ブロックAを代替ブロックB+1にマッピングしなおす。その情報は、欠陥リストに登録される。
このように、欠陥ブロックの代替処理が行われると、その代替処理が行われたブロックに対応するユニットでは、論理的アドレスは連続していても、実は論理ブロックAで物理的には非連続な状態となり、そのブロックの前後でシークが発生する。これがリアルタイム処理にとって致命的になる原因である。
<AVストリームの実時間保証と代替処理との相関関係>
以下に、AVストリームの実時間処理例を示す。
ワーストケースの転送レートa(MB/s)、ワーストケースの(シーク時間+回転待ち時間)b(sec)、ユニットサイズc(MB)、AVストリームのビットレートd(MB/s)とすると、
ワーストケースのユニットへのアクセス(読み出し/書き込み)時間は、
y=c/a(sec)、
ユニット単位のAVストリームの再生時間は、
z=c/d(sec)
となる。
1つのAVストリームのリアルタイム処理における関係は、次式となる。
y+b<z すなわち、y<z−b
2つのAVストリームのリアルタイム処理における関係は、次式となる。
2*(y+b)<z すなわち、y<z/2−b
1つのAVストリームでユニットのn個所が代替ブロックに配置されている場合のリアルタイム処理における関係は、次式となる。
y+(n+1)b<z すなわち、y<z−(n+1)b
2つのAVストリームで交互にアクセスされるユニットにおいて、連続してアクセスされる任意の2つのユニットに、合計n個所が代替ブロックに配置されている場合のリアルタイム処理における関係は、次式となる。
2y+(n+2)b<z すなわち、y<z/2−(n+2)b/2
このように、代替処理が多ければ多いほど、ユニットのアクセス時間が長くなる。そして、ある閾値を超えるとリアルタイム性が破綻する。
したがって、代替ブロックが増えたある地点でユニットを使用不可にすることが必要となる。
<ユニット管理テーブル>
ユニット管理テーブル211は、HDD118の記憶領域をユニット単位のアドレス空間とみなしてユニット番号を順に付けたときに、それぞれのユニットの使用状態を管理する。
ユニットは、図3に示す如く、エントリ211a、211b、…から構成され、例えば、エントリ211aは、ブロック管理テーブル210上のエントリ210a、210b、210c、210dに対応したユニットのエントリである。ユニット管理テーブル211は、そのユニットについて、リアルタイムファイルを記憶できるか否かを示すユニット状態情報と、ユニットの使用状況を示すユニット使用状況情報を規定する。
各ユニットのユニット状態情報とユニット使用状況情報は、図10に示す如く
区分されている。
ユニット使用状況情報は、実施例1の形態と同様、“RT全使用”、“未使用”、“NRT一部使用”、“NRT全使用”の4つの状況を示す。
ユニット状態情報には、“RT使用可能ユニット”もしくは“RT使用不可能ユニット”のどちらかが示される。ここで、“RT使用可能ユニット”とは、リアルタイム情報が記録可能である状態をいう。また、“RT使用不可能ユニット”とは、リアルタイム情報が記録不可能である状態をいう。
上記“RT使用可能ユニット”は、さらにリアルタイムストリームのビットレートによって、例えば、“30MbpsまでのRTストリームで使用可能ユニット”、“15MbpsまでのRTストリームで使用可能ユニット”、“5MbpsまでのRTストリームで使用可能ユニット”の3段階に区分けされる。
上記の通り、例えば、デジタル放送において、HD放送の場合のビットレートは、約24Mbpsで、SD放送のビットレートは約8Mbpsである。この場合、HD放送番組の記憶に使用できなくなったユニットでも、SD放送番組の記憶に使用可能となる場合がある。また、アナログ放送を記録する場合、例えば、10Mbpsの高画質録画モード、6Mbpsの標準録画モード、3Mbpsの長時間録画モードの異なる3つのビットレートが想定される。この場合も、高画質録画モードで使用できなくなったユニットが標準録画モードもしくは、長時間録画モードで使用可能となる場合もある。
ユニットは、物理メディアに連続して記録できる領域であるが、欠陥ブロックが発見された場合には、代替領域にそのブロックが再割当てされる。この場合、論理的には、連続であっても物理的には、そこに境界が発生しシーク、回転待ち時間がかかる。これは、場合によってはリアルタイム処理に致命的となる。
したがって、初期状態においては、ユニットはリアルタイム処理として、最も高いビットレートランクで使用可能であるが、使用を続けていくにつれて、ユニットが対応可能なビットレートは変化するため、システム側が使用可能か否かをチェックし、使用不可能と判断した場合は、リアルタイム情報記録不可能とすることが必要となる。
このシステム側のチェックは、例えば、ユニット単位のリードあるいはライトを前述の時間制限をつけた時間制限付きコマンドを用いて行うことにより実行することができる。この時間制限のパラメータは、ビットレートに応じてリアルタイム処理が破綻しない限界の時間である。
このコマンドを使用して、時間制限オーバーしたユニットは、そのビットレートでは使用不可能ということで、ビットレートのランクをコマンドのビットレートより低いランクとする。
ここで、コマンドのビットレートとは、コマンドがリードおよびライト動作の対象とするデータサイズを、制限時間で割ったものである。最低のビットレートでも使用不可能になったユニットは、リアルタイム情報記録不可能ユニットとされる。
図11は、実施例2の形態におけるファイルのリード動作を説明するフローチャートである。
まず、ファイルがアプリケーションによってオープンされると(ステップS61)、ファイルのファイル管理情報212に記憶されたリンク情報が参照される。このとき、ポインタを用いてリンク情報の参照位置が管理される。このポインタが指す位置のリンク情報からブロック開始アドレスが得られ、このブロック開始アドレスが示す記憶領域上のブロックからデータが時間制限つきAVコマンドで読み出される(ステップS62)。
次に、上記時間制限付リードコマンドにより、「指定時間オーバー」が発生したか否かが判断される(ステップS63)。その結果、「指定時間オーバー」エラーが発生した場合は、使用したユニットに対応するユニット管理テーブル211のユニット状態情報における対応可能なビットレートランクが、このコマンドのビットレートよりも低いランクに変更される(ステップS64)。
そして、読み出し中のブロックがファイルを構成する論理的なブロックの最後か否かが判断され(ステップS65)、最後である場合は、ファイルがクローズされ(ステップS66)、リード動作が終了される。
読み出し中のブロックがファイルを構成する論理的なブロックの最後でなく続くブロックが存在する場合は、リンク情報の参照位置を示すポインタを1進め、次のリンク情報からブロック開始アドレスが得られ、このブロック開始アドレスが示す記憶領域上のブロックからデータが読み出される(ステップS62)。この読み出し処理(ステップS62〜S64)は、ステップS65にて、読み出し中のブロックが最後であると判別されるまで繰り返される。
図12は、実施例2の形態におけるリアルタイムファイルのライト動作を説明するフローチャートである。
アプリケーションがリアルタイムファイルをオープンすると(ステップS71)、まず、ユニット管理テーブル211を参照して、未使用であり、かつ、書き込みビットレートで使用可能なユニットが検索される。(ステップS72)。
検索の結果得られたユニットが新たにファイルを記憶するためのユニットに割り当てられ、記憶すべき主データ20がそのユニットに対応する一連のブロックに、時間制限付ライトコマンドで記憶される。この際、記憶に使用されたユニットに対応するユニット管理テーブル211のユニット使用状況情報が“未使用”から“RT全使用”に変更される。また、記憶に使用されたブロックのフラグを“1”に変更するよう、ブロック管理テーブル211が更新される。さらに、ファイル管理情報212に、記録に使用された各ブロックのリンク情報が追加される(ステップS73)。
次に、ステップS73での時間制限付ライトコマンドにより、「指定時間オーバー」が発生したか否かが判断される(ステップS74)。その結果、「指定時間オーバー」エラーが発生した場合は、使用したユニットに対応するユニット管理テーブル211のユニット状態情報における対応可能なビットレートランクが、コマンドのビットレートよりも低いランクに変更される(ステップS75)。
次に、記憶すべきデータが残っているか否かが判断され(ステップS76)、記憶すべきデータが残っていない場合は、ファイルをクローズし(ステップS77)、処理が終了される。他方、記憶すべきデータが残っている場合は、さらに、ステップS72からの処理が繰り返される。
リード動作およびライト動作において、各々読みこみエラーおよび書きこみエラーがないと想定すると、時間制限つきコマンドで「指定時間オーバー」エラーが発生する場合は、ブロックが既にフラグメント状態にあると判断することができる。したがって、この場合には、ユニットの状態情報における対応可能なビットレートランクをコマンドのビットレートより低いランクとする。
尚、実施例2の形態による記憶媒体の初期化動作は、実施例1の形態における記憶媒体の初期化動作(図9)と同様になされる。ここで、ステップS52においては、その状態情報として、ビットレートが最も高いリアルタイムファイルを記憶できることを示す“RT使用可能ユニット(ビットレートaMbpsまで)”がさらに設定される。
以上、本実施の形態によれば、上記第1の実施の形態と同様、リアルタイムファイルと非リアルタイムファイルのライト処理を、円滑且つ効率的に行うことができるとのメリットに加え、さらに要求されるビットレートが相違する種々のリアルタイムファイルデータを、同一のHDD上に効率的に振り分けて記録することができ、よって、HDDの使用効率をより向上させることができるとのメリットを奏することができる。
なお、本発明は上記実施の形態に限定されるものではないことは言うまでもない。上記実施の形態では、MPEGデータを記録再生するデジタル記録再生装置を例に挙げて説明したが、その他、オーディオデータのみを記録再生するデジタル記録再生装置や、インターネット経由で入手したデータを記録再生する記録再生装置にも広く利用できる。
また、図2、図10に示す各種管理テーブルの生成処理や、図4から図9、図11、図12に示す処理を実行するためのプログラムは、HDDコントロールモジュール117にプリインストールする形態の他、CD−ROM等の記憶媒体からのダウンロード、あるいはインターネットを経由したアプリケーションサーバからのダウンロードによっても実現できる。
その他、メタデータの更新タイミングや、メタデータファイルの構成タイミング等についても適宜変更可能である。
実施例1の形態に係る記録再生装置の全体構成図 実施例1の形態に係る記録情報の構造を示す図 実施例1の形態に係る記録方法を模式的に示す図 実施例1の形態に係るリード動作のフローチャート 実施例1の形態に係るライト動作のフローチャート 実施例1の形態に係るライト動作のフローチャート 実施例1の形態に係る削除動作のフローチャート 実施例1の形態に係る削除動作のフローチャート 実施例1の形態に係る記憶媒体の初期化動作のフローチャート 実施例2の形態に係る記録情報の構造を示す図 実施例2の形態に係るリード動作のフローチャート 実施例2の形態に係るライト動作のフローチャート メディア上の物理アドレスと論理アドレスと欠陥セクタリストの関係を示す図 従来のファイル記録方法におけるファイルの構成を示す図 従来のファイル記録方法におけるファイルの構成を示す図
符号の説明
30、30a〜30d ブロック
201 リアルタイムファイル1
202 非リアルタイムファイル2
210 ブロック管理テーブル
210a〜210d ブロック管理テーブルのエントリ
211 ユニット管理テーブル
211a、211b ユニット管理テーブルのエントリ

Claims (12)

  1. 複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶管理方法であって、
    前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成する処理と、
    連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットの属性を管理するユニット属性テーブルを生成する処理と、
    前記ユニット属性テーブルに基づいてファイルデータを記憶する処理と、
    前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成する処理と、
    前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、
    前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新する処理とを備え、
    前記ファイルデータを記憶する処理は、
    記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能な未使用のユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶する処理を含む、
    ことを特徴とするファイルデータ記憶管理方法。
  2. 複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶管理方法であって、
    前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成する処理と、
    連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットの属性を管理するユニット属性テーブルを生成する処理と、
    前記ユニット属性テーブルに基づいてファイルデータを記憶する処理と、
    前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成する処理と、
    前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、
    前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新する処理とを備え、
    前記ファイルデータを記憶する処理は、
    記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶する処理を含む、
    ことを特徴とするファイルデータ記憶管理方法。
  3. 請求項2において、
    前記ファイルデータを記憶する処理は、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを獲得できないとき、前記ユニット属性テーブルを参照して、未使用のユニットを検索し、この検索により獲得されたユニットに含まれる前記ブロックにこのファイルデータを記憶する処理を含むことを特徴とするファイルデータ記憶管理方法。
  4. 請求項1から3の何れかにおいて、
    前記ユニットの容量Usizeは、
    Usize>N×(Tw+(Usize/Bhdd))×Bsys、
    (但し、記憶装置手段との間のデータ転送最低レートBhdd、データストリームのビットレートBsys、前記記憶手段におけるシーク時間のワースト値Tw、同時に処理するストリーム数をNとする)を満たすことを特徴とするファイルデータ記憶管理方法。
  5. 複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶装置であって、
    前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するための手段と、
    連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットの属性を管理するユニット属性テーブルを生成するための手段と、
    前記ユニット属性テーブルに基づいてファイルデータを記憶するための手段と、
    前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成するための手段と、
    前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、
    前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新するための手段とを備え、
    前記ファイルデータを記憶するための手段は、
    記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能な未使用のユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶することを特徴とするファイルデータ記憶装置。
  6. 複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶装置であって、
    前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するための手段と、
    連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットの属性を管理するユニット属性テーブルを生成するための手段と、
    前記ユニット属性テーブルに基づいてファイルデータを記憶するための手段と、
    前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成するための手段と、
    前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、
    前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新するための手段とを備え、
    前記ファイルデータを記憶するための手段は、
    記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックにこのファイルデータを記憶することを特徴とするファイルデータ記憶装置。
  7. 請求項6において、
    前記ファイルデータを記憶するための手段は、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを獲得できないとき、前記ユニット属性テーブルを参照して、未使用のユニットを検索し、この検索により獲得されたユニットに含まれる前記ブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶することを特徴とするファイルデータ記憶装置。
  8. 請求項5から7の何れかにおいて、
    前記ユニットの容量Usizeは、
    Usize>N×(Tw+(Usize/Bhdd))×Bsys、
    (但し、記憶装置手段との間のデータ転送最低レートBhdd、データストリームのビットレートBsys、前記記憶手段におけるシーク時間のワースト値Tw、同時に処理するストリーム数をNとする)を満たすことを特徴とするファイルデータ記憶装置。
  9. 複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶装置に適用されるプログラムであって、
    前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するステップと、
    連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットを構成し、各ユニットの属性を管理するユニット属性テーブルを生成するステップと、
    前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成するステップと、
    前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、
    前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新するステップと、
    前記ユニット属性テーブルに基づいて、記憶されるファイルデータがリアルタイムデータである場合、前記ユニット属性テーブルを参照して、リアルタイムデータが記憶可能な未使用のユニットを検索し、検索されたユニットに含まれる前記ブロックにこのファイルデータを記憶するステップとをコンピュータに実行させることを特徴とするプログラム。
  10. 複数のブロックに分割された記憶領域にファイルデータを記憶するファイルデータ記憶装置に適用されるプログラムであって、
    前記ブロックにデータが記憶されているか否かを管理するブロック管理テーブルを生成するステップと、
    連続した複数の前記ブロックから構成され、前記ファイルデータに要求される読み出しレートを保証する容量のユニットを構成し、各ユニットの属性を管理するユニット属性テーブルを生成するステップと、
    前記ファイルデータの記憶に使用されたブロックのリンクを前記ファイルデータ毎に規定するリンク情報を生成するステップと、
    前記ユニット属性テーブルは、各ユニットの使用状況を規定する情報と、リアルタイムデータを記憶可能か否かを規定する情報を含み、
    前記ファイルデータの書き込みおよび/または読み出しが要求されるレートで行えないとき、前記ファイルデータの記憶に使用されたユニットに対して、リアルタイムデータが記憶不可と規定する情報を前記ユニット属性テーブルに更新するステップと、
    前記ユニット属性テーブルに基づいて、記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを検索し、この検索により獲得されたユニットに含まれる未使用のブロックにこのファイルデータを記憶するステップとをコンピュータに実行させることを特徴とするプログラム。
  11. 請求項10において、
    前記ファイルデータを記憶するステップは、
    記憶されるファイルデータが非リアルタイムデータである場合、前記ユニット属性テーブルを参照して、そのユニット中の一部のブロックに既に非リアルタイムデータが記憶されているユニットを獲得できないとき、前記ユニット属性テーブルを参照して、未使用のユニットを検索し、この検索により獲得されたユニットに含まれる前記ブロックを前記ブロック管理テーブルを参照して検索し、この検索により獲得されたブロックにこのファイルデータを記憶するステップを含むことを特徴とするプログラム。
  12. 請求項9から11の何れかにおいて、
    前記ユニットの容量Usizeは、
    Usize>N×(Tw+(Usize/Bhdd))×Bsys、
    (但し、記憶装置手段との間のデータ転送最低レートBhdd、データストリームのビットレートBsys、前記記憶手段におけるシーク時間のワースト値Tw、同時に処理するストリーム数をNとする)を満たすことを特徴とするプログラム。
JP2004322082A 2002-02-08 2004-11-05 ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体 Expired - Fee Related JP3717922B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004322082A JP3717922B2 (ja) 2002-02-08 2004-11-05 ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002031793 2002-02-08
JP2002088273 2002-03-27
JP2004322082A JP3717922B2 (ja) 2002-02-08 2004-11-05 ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003030411A Division JP3631234B2 (ja) 2002-02-08 2003-02-07 ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Publications (2)

Publication Number Publication Date
JP2005050383A JP2005050383A (ja) 2005-02-24
JP3717922B2 true JP3717922B2 (ja) 2005-11-16

Family

ID=34279437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004322082A Expired - Fee Related JP3717922B2 (ja) 2002-02-08 2004-11-05 ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Country Status (1)

Country Link
JP (1) JP3717922B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4766954B2 (ja) * 2005-08-22 2011-09-07 株式会社日立製作所 ストレージ装置、データ復旧方法及びデータアクセス方法
US7984231B2 (en) 2005-09-22 2011-07-19 Panasonic Corporation Information recording medium access device, and data recording method
JP2009110287A (ja) * 2007-10-30 2009-05-21 Fujitsu Ltd アクセス制御装置およびアクセス制御方法

Also Published As

Publication number Publication date
JP2005050383A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
JP4242966B2 (ja) リアルタイム記録/再生情報を貯蔵する記録媒体
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
US7058770B2 (en) Method and apparatus for controlling the recording of digital information, by using unit management table
US20050031319A1 (en) Data recording apparatus and system having sustained high transfer rates
US7197238B2 (en) File system, storage area managing method, and storage medium thereof
US7509342B2 (en) File data storage management method, file data storage device, program executing processing for storing file data, and storage medium
JP4241839B2 (ja) データ及びファイルシステム情報の記録装置及び記録方法
JP4059619B2 (ja) 時間遅延視聴のためのビデオストリーム処理方法
JP4251219B2 (ja) 編集装置及び編集方法
JPWO2007072843A1 (ja) 複数の記録媒体にコンテンツを記録する記録装置およびその制御方法
JP3631234B2 (ja) ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体
JP3717922B2 (ja) ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体
JP2005216119A (ja) 記録媒体
JP5555489B2 (ja) フォーマット装置、フォーマット方法およびプログラム
US20050259542A1 (en) Reproduction device and method, recording medium, and program
US7603520B2 (en) Record apparatus, record method, and program for writing data to optical disc in a second unit larger than a first unit
US8565584B2 (en) Editing apparatus and editing method
KR19990087011A (ko) 실시간 기록/재생 정보를 저장하는 기록 매체,실시간 기록재생방법과 장치 및 이 정보를 이용한파일 조작 방법
JP2011034510A (ja) メモリ割り当て装置およびメモリ割り当て方法
EP2256648A1 (en) Method for storing data files, method for reading data content, and data store
JP2000149427A (ja) 記録装置および方法、再生装置および方法、記録再生装置および方法、並びに提供媒体
KR100467615B1 (ko) 실시간 기록/재생 정보를 저장하는 기록 매체, 실시간기록재생방법과 장치 및 이 정보를 이용한 파일 조작 방법
JP2001043622A (ja) 情報処理装置
JP4244493B2 (ja) 記録再生装置
JP2002290892A (ja) デジタル記録再生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041116

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20041124

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20041208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050728

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050831

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130909

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees