(57)【要約】【課題】  本発明は、記憶媒体のデータ再配置処理を行う場合に、リアルタイムデータに対しては、リアルタイム性を保持するよう再配置を行い、さらに、ユーザの記憶媒体の利用を最優先に考え、一旦処理を中断させた後にも継続して処理を再開することができるレコーダを提供することを目的とする。【解決手段】  ４つのブロックから構成されるユニットブロック毎に再配置の必要性を判定する。ユニットブロックｍにリアルタイムデータのみが記憶され、且つ、このユニットブロックの先頭にリアルタイムデータが記憶されていないとき、このユニットブロックは、再配置が必要と判定される。このとき、再配置は、ユニットブロックを構成するブロック数毎に、すなわち、４ブロック毎に行う。したがって、図３の場合は、ユニットブロックｍのB11〜B13と、ユニットブロックｍ＋１の先頭ブロックB14が再配置される。ここで、再配置先は、未使用のユニットブロックとされる。【選択図】    図３
2005108345.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位でデータが管理されている既記憶データを再配置する再配置処理手段を備えるレコーダにおいて、
前記再配置処理手段は、ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定し、
ここで、ユニットブロックにリアルタイムデータを記憶したブロックのみが記憶され、且つ、このユニットブロックの先頭ブロックにリアルタイムデータが記憶されていないとき、当該ユニットブロックを、再配置が必要と判定し、
これにより再配置が必要と判定したときは、当該ユニットブロックのリアルタイムデータと、このリアルタイムデータと共に一単位として扱われる次のユニットブロックのリアルタイムデータを、空きのユニットブロックに再配置する、
ことを特徴とするレコーダ。
【請求項２】
ブロック単位でデータが管理されている既記憶データを再配置する再配置処理手段を備えるレコーダにおいて、
前記再配置処理手段は、ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定し、
ここで、ユニットブロックにノンリアルタイムデータを記憶したブロックと、未使用ブロックおよび／もしくはリアルタイムデータを記憶したブロックが混在しているとき、当該ユニットブロックを、再配置が必要と判定し、
これにより、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックに再配置する、
ことを特徴とするレコーダ。
【請求項３】
請求項２において、
前記再配置処理手段は、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックの他、空きのユニットブロックに再配置する、
ことを特徴とするレコーダ。
【請求項４】
請求項２あるいは３において、
前記再配置処理手段は、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックを、先頭乃至（ｍ−１）番目のユニットブロックのうち、最も先頭に近いユニットブロックに再配置する、
ことを特徴とするレコーダ。
【請求項５】
請求項４において、
前記再配置処理手段は、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックのノンリアルタイムデータを、先頭乃至（ｍ−１）番目のユニットブロックの未記憶ブロックを使い尽くすまで再配置する、
ことを特徴とするレコーダ。
【請求項６】
請求項１乃至５の何れかにおいて、
前記再配置処理手段は、再配置処理が中断されたとき、再配置処理の進行状況を示す情報を記憶しておき、再配置処理の再開時には、この情報を参照して、先の再配置処理にて再配置処理を行った最終のユニットブロックに続く次のユニットブロックから順次、再配置処理を実行する、
ことを特徴とするレコーダ。
【請求項７】
ブロック単位でデータが管理されている既記憶データを再配置する機能をコンピュータに付与するプログラムにおいて、
ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定するステップと、この判定ステップによって再配置が必要と判定されたときに再配置処理を実行するステップとを含み、
前記判定ステップは、ユニットブロックにリアルタイムデータを記憶したブロックのみが記憶され、且つ、このユニットブロックの先頭ブロックにリアルタイムデータが記憶されていないとき、当該ユニットブロックを、再配置が必要と判定し、
前記再配置ステップは、前記判定ステップにより再配置が必要と判定したときは、当該ユニットブロックのリアルタイムデータと、このリアルタイムデータと共に一単位として扱われる次のユニットブロックのリアルタイムデータを、空きのユニットブロックに再配置する、
ことを特徴とするプログラム。
【請求項８】
ブロック単位でデータが管理されている既記憶データを再配置する機能をコンピュータに付与するプログラムにおいて、
ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定するステップと、この判定ステップによって再配置が必要と判定されたときに再配置処理を実行するステップとを含み、
前記判定ステップは、ユニットブロックにノンリアルタイムデータを記憶したブロックと、未使用ブロックおよび／もしくはリアルタイムデータを記憶したブロックが混在しているとき、当該ユニットブロックを、再配置が必要と判定し、
前記再配置ステップは、前記判定ステップにより、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックに再配置する、
ことを特徴とするプログラム。
【請求項９】
請求項８において、
前記再配置ステップは、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックの他、空きのユニットブロックに再配置する、
ことを特徴とするプログラム。
【請求項１０】
請求項８あるいは９において、
前記再配置ステップは、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックを、先頭乃至（ｍ−１）番目のユニットブロックのうち、最も先頭に近く、且つ、該当するユニットブロックに再配置する、
ことを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記再配置ステップは、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックのノンリアルタイムデータを、先頭乃至（ｍ−１）番目のユニットブロックの未記憶ブロックを使い尽くすまで再配置する、
ことを特徴とするプログラム。
【請求項１２】
請求項７乃至１１の何れかにおいて、
前記再配置ステップは、再配置処理が中断されたとき、再配置処理の進行状況を示す情報を記憶しておき、再配置処理の再開時には、この情報を参照して、先の再配置処理にて再配置処理を行った最終のユニットブロックに続く次のユニットブロックから順次、再配置処理を実行する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶媒体に記憶し、再生するレコーダに関するものであり、特に、既記録データの再配置を行う際に用いて好適なものである。
【背景技術】
【０００２】
IT(Information Technology)の発達に伴い、音楽や映像などのコンテンツをデジタルデータ（以下、コンテンツデータと称す）としてデジタル記憶メディアに記憶し、これを再生して楽しむことが可能となってきた。
【０００３】
CD(Compact Disc),DVD(Digital Versatile Disc)などの再生専用デジタル記憶メディアに、コンテンツ提供者側で記憶されたコンテンツデータを再生することから始まり、近年ではDVD-RAM(DVD-Random Access Memory)やHDD(Hard Disk Drive)といったランダムアクセス可能な書き換え型記憶メディアを利用して、利用者側でコンテンツデータを録画することができるようになった。
【０００４】
HDDを記憶メディアとして用いたものとして、HDDを内蔵したビデオレコーダの商品化が始まっている。
【０００５】
このようなビデオレコーダに内蔵されたHDDには、２種類のデータが記憶されることになる。リアルタイムデータとノンリアルタイムデータである。リアルタイムデータは、ビデオデータそのものであり、ノンリアルタムデータは、記憶したビデオデータを管理する管理データや、EPG(Electric Program Guide)などの番組データ、予約録画の予約データなどである。
【０００６】
リアルタイムデータは、リアルタイムで記憶または再生するために所定のビットレートにて連続して記憶または再生を行う必要がある。実際には、HDDに対する書き込み・読み出し時の応答時間に制限を加えると共に、バッファメモリからのデータ読み出し速度を調整することより、ビットレートを補償している。これに対して、ノンリアルタイムデータはリアルタイム性を重視する必要がないデータである。
【０００７】
HDDにおけるアクセス（書き込み／読み出し）単位は５１２バイトのセクタであり、各セクタには、論理アドレスが付与されている。論理ドレスを指定することによって記憶媒体上の位置が指定される。
【０００８】
リアルタイムデータを、HDD内の連続する論理アドレスによって指定される一連のセクタに記憶する場合、シークによるアクセス待ち時間が短くなるため、データへのアクセス時間も短くなり、書き込みまたは読み出しが余裕を持って処理される。
【０００９】
しかしながら、ビデオデータに代表されるリアルタイムデータのデータ量は膨大であり、この膨大なデータを常に論理アドレスが連続するセクタに配するようにセクタをHDDに確保することは、実現性に乏しい。
【００１０】
これに対して、HDDに内に点在するようにセクタを配した場合、データの書き込みまたは読み出し時に、頻繁にシーク（磁気ヘッドの移動）が発生する。このため、データの書き込みに要するアクセス時間は、シーク毎に費やされるシーク時間および回転待ち時間分遅くなり、アクセスが間に合わなく恐れがある。
【００１１】
そこで、リアルタイムデータに対しては、ある程度のデータを連続してアクセスできるように、予め定めた一定数の連続セクタを１つの記憶単位、すなわち、“ユニット”としてアクセスを行う。
【００１２】
これに対し、ノンリアルタイムデータは時間的制限がないため、アクセス単位を規定する必要はなく、バッファメモリを介す必要もない。また、このノンリアルタイムデータは、リアルタイムデータに比してデータ量が少ない。したがって、記憶単位については、ビデオレコーダにおいて管理可能な最小の単位で扱かった方が効率がよい。
【００１３】
この最小の単位を“ブロック”と称する。ブロックは、このビデオレコーダにおいて採用されたファイルシステムによって決定されるユニットより小さな単位であり、連続する論理アドレスにて指定されるセクタで構成される。
【００１４】
尚、ブロックは、FAT（File Allocation Table）ファイルシステムでは、“クラスタ”と称され、UDF(Universal Disk Format)（例えば、非特許文献１参照）では、論理ブロックと称される。
【００１５】
また、ユニットも、ファイルシステムによって管理される必要があるため、ユニットは連続したブロックによって構成されることが最適である。
【００１６】
このような２種類のデータを混在したデータの管理は、リアルタイムデータを記憶する領域と、ノンリアルタイムデータを記憶する領域を、予め分割して管理するビデオレコーダ独自のファイルシステムを用いることで実現することができる。
【００１７】
他方、ITの発達は、これまで独立して扱われてきたAV機器とPC（personal computer）との境界を取り除いてしまった。このためデジタル記憶メディアを、ビデオレコーダから挿脱可能な可搬型デジタル記憶メディアとした場合には、その可搬型デジタル記憶メディアは、PCにおいても利用可能なデジタル記憶メディアとして扱われることができる。
【００１８】
したがって、HDDを内蔵型から可搬型へと進化させたビデオレコーダにおいては、ビデオレコーダ独自のファイルシステムを用いると、PCにおいてデータ記憶できないばかりか、ビデオデータが記憶されていることすら解釈できず、記憶されているビデオデータが削除されてしまうといった危険性があり、独自のファイルシステムの採用は好ましくない。
【００１９】
これに対して、可搬型デジタル記憶メディアであるDVD-RAMを用いたビデオレコーダの商品化も行われている。たとえば、DVD-RAMを用いたビデオレコーダにおいては、UDFファイルシステムファイルシステムを用いてデータ管理がなされている。
【００２０】
しかしながら、ユニットは、UDFファイルシステムの管理単位である論理ブロックとは一致しない。そこで、ファイルシステムの管理のもとで、連続したブロックによって構成されるリアルタイムデータを記憶するための専用ファイルを予め確保し、専用ファイル内にユニットの配置を行うよう管理することで、混在した２種類のデータの管理を実現している。
【００２１】
なお、専用ファイルは、予め連続したブロックを割り当てた大容量の専用ファイルであって、記憶されているリアルタイムデータのデータ量に依存しないリアルタイムデータ専用の領域となる。リアルタイムデータを削除しても、決してブロック（セクタ）を開放することはない。この方法は、内蔵型、可搬型を問わずHDDを用いたレコーダにおいても採用することができる。
【００２２】
このように、事前にユニットを配置する領域を事前に確保する方式、すなわち、リアルタイムデータを記憶する領域とノンリアルタイムデータを記憶する領域を予め分けておくことによって、混在した２種類のデータの管理を実現するユニット配置方式を、静的ユニット配置方式と呼ぶ。
【００２３】
ビデオレコーダやPCにおいて、可搬型HDDを横断的に利用できることは、ユーザにとってメリットが大きい。この場合、記憶されるデータの管理には、汎用のファイルシステムを用い、いずれの装置においてもデータ記憶状態が確認できること、また、データの記憶されていない空き領域が効率的に利用できること、が望まれる。
【００２４】
このことからすれば、ビデオデータの記憶の有無に関係なくユニットの配置領域を事前に確保する静的ユニット配置方式よりも、必要に応じてユニットを動的に配置する動的ユニット配置方式が好ましい。
【非特許文献１】オスタ(OSTA: Optical Storage Technology Association)、”ユニバーサルディスクフォーマット規格第２．０１版(Universal Disk Format Specification Revision 2.01)”
【発明の開示】
【発明が解決しようとする課題】
【００２５】
リアルタイムデータとノンリアルタイムデータが混在する形式で記憶されるHDDに対して、動的ユニット配置方式を採用した場合、記憶または削除を行うたびに、データを記憶したブロック（セクタ）の離散化が進み、空きブロック（セクタ）が次第に点在するようになる。
【００２６】
さらに、可搬型のHDDを用いた場合には、ノンリアルタイムデータの記憶や消去を繰り返すと、空きブロック（セクタ）の点在はさらに顕著に現れてくる。この結果、HDDには十分な空きセクタがあるにもかかわらず、連続したセクタを確保できないために、リアルタイム性を保証したユニットを設けることができなくなり、空きセクタ数から算出される残記憶容量と、確保可能なユニットから算出される残記憶容量との間に著しく差が生じる。このような不都合を解消するために、HDD等では、既記録データの再配置して連続ブロック（セクタ）を確保するための再配置処理が行われる。
【００２７】
ところが、PCにおける再配置処理は、全記憶領域についてブロック（セクタ）の使用状況を把握し、データの置き換えを実行するものであることから、再配置処理に時間を要し、また再配置処理時の負荷も大きくなってしまう。また、再配置実行中に、リアルタイムデータの記録あるいは再生を行うと、処理が間に合わないといったようなことが起きる。さらに、再配置処理を一旦中断させ、その後、処理を再開した場合には、再配置処理が始めから行われるため、ユーザの利便性を損ねる。さらに、リアルタイム性を考慮しないファイルシステムでは、リアルタイム性を考慮して記憶されたデータに対して、リアルタイム性を損なうような再配置を行う可能性がある。
【００２８】
そこで、本発明は、記憶媒体のデータ再配置処理を行う場合に、リアルタイムデータに対しては、リアルタイム性を保持するよう再配置を行い、さらに、ユーザの記憶媒体の利用を最優先に考え、一旦処理を中断させた後にも継続して処理を再開することができるレコーダを提供することを目的とする。
【課題を解決するための手段】
【００２９】
このような問題を解決するために、本発明は、記憶媒体に記憶されているデータの再配置において、使用ブロックが点在するユニットに対し、その使用ブロックを、他の使用ブロックが点在するユニットに優先的に移動させることによって、連続した空きセクタを構成する。特に、リアルタイムデータについては、ユニットを構成するブロックが、ユニット内に連続して配置されるように再配置を行う。
【００３０】
各請求項に係る発明の特徴は以下の通りである。
【００３１】
請求項１の発明は、ブロック単位でデータが管理されている既記憶データを再配置する再配置処理手段を備えるレコーダにおいて、前記再配置処理手段は、ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定し、ここで、ユニットブロックにリアルタイムデータを記憶したブロックのみが記憶され、且つ、このユニットブロックの先頭ブロックにリアルタイムデータが記憶されていないとき、当該ユニットブロックを、再配置が必要と判定し、これにより再配置が必要と判定したときは、当該ユニットブロックのリアルタイムデータと、このリアルタイムデータと共に一単位として扱われる次のユニットブロックのリアルタイムデータを、空きのユニットブロックに再配置することを特徴とする。
【００３２】
請求項２の発明は、ブロック単位でデータが管理されている既記憶データを再配置する再配置処理手段を備えるレコーダにおいて、前記再配置処理手段は、ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定し、ここで、ユニットブロックにノンリアルタイムデータを記憶したブロックと、未使用ブロックおよび／もしくはリアルタイムデータを記憶したブロックが混在しているとき、当該ユニットブロックを、再配置が必要と判定し、これにより、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックに再配置することを特徴とする。
【００３３】
請求項３の発明は、請求項２に記載のレコーダにおいて、前記再配置処理手段は、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックの他、空きのユニットブロックに再配置することを特徴とする。
【００３４】
請求項４の発明は、請求項２あるいは３に記載のレコーダにおいて、前記再配置処理手段は、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックを、先頭乃至（ｍ−１）番目のユニットブロックのうち、最も先頭に近いユニットブロックに再配置することを特徴とする。
【００３５】
請求項５の発明は、請求項４に記載のレコーダにおいて、前記再配置処理手段は、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックのノンリアルタイムデータを、先頭乃至（ｍ−１）番目のユニットブロックの未記憶ブロックを使い尽くすまで再配置することを特徴とする。
【００３６】
請求項６の発明は、請求項１乃至５の何れかに記載のレコーダにおいて、前記再配置処理手段は、再配置処理が中断されたとき、再配置処理の進行状況を示す情報を記憶しておき、再配置処理の再開時には、この情報を参照して、先の再配置処理にて再配置処理を行った最終のユニットブロックに続く次のユニットブロックから順次、再配置処理を実行することを特徴とする。
【００３７】
請求項７の発明は、ブロック単位でデータが管理されている既記憶データを再配置する機能をコンピュータに付与するプログラムにおいて、ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定するステップと、この判定ステップによって再配置が必要と判定されたときに再配置処理を実行するステップとを含み、前記判定ステップは、ユニットブロックにリアルタイムデータを記憶したブロックのみが記憶され、且つ、このユニットブロックの先頭ブロックにリアルタイムデータが記憶されていないとき、当該ユニットブロックを、再配置が必要と判定し、前記再配置ステップは、前記判定ステップにより再配置が必要と判定したときは、当該ユニットブロックのリアルタイムデータと、このリアルタイムデータと共に一単位として扱われる次のユニットブロックのリアルタイムデータを、空きのユニットブロックに再配置することを特徴とする。
【００３８】
請求項８の発明は、ブロック単位でデータが管理されている既記憶データを再配置する機能をコンピュータに付与するプログラムにおいて、ブロックの整数倍から構成されるユニットブロック単位での再配置処理の必要性を順次判定するステップと、この判定ステップによって再配置が必要と判定されたときに再配置処理を実行するステップとを含み、前記判定ステップは、ユニットブロックにノンリアルタイムデータを記憶したブロックと、未使用ブロックおよび／もしくはリアルタイムデータを記憶したブロックが混在しているとき、当該ユニットブロックを、再配置が必要と判定し、前記再配置ステップは、前記判定ステップにより、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックに再配置することを特徴とする。
【００３９】
請求項９の発明は、請求項８に記載のプログラムにおいて、前記再配置ステップは、再配置が必要と判定したときは、当該ユニットブロックのノンリアルタイムデータを、ノンリアルタイムデータを記憶したブロックと未使用ブロックが混在した他のユニットブロックの他、空きのユニットブロックに再配置することを特徴とする。
【００４０】
請求項１０の発明は、請求項８あるいは９に記載のプログラムにおいて、前記再配置ステップは、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックを、先頭乃至（ｍ−１）番目のユニットブロックのうち、最も先頭に近く、且つ、該当するユニットブロックに再配置することを特徴とする。
【００４１】
請求項１１の発明は、請求項１０に記載のプログラムにおいて、前記再配置ステップは、再配置が必要と判定されたｍ（１以上の自然数）番目のユニットブロックのノンリアルタイムデータを、先頭乃至（ｍ−１）番目のユニットブロックの未記憶ブロックを使い尽くすまで再配置することを特徴とする。
【００４２】
請求項１２の発明は、請求項７乃至１１の何れかに記載のプログラムにおいて、前記再配置ステップは、再配置処理が中断されたとき、再配置処理の進行状況を示す情報を記憶しておき、再配置処理の再開時には、この情報を参照して、先の再配置処理にて再配置処理を行った最終のユニットブロックに続く次のユニットブロックから順次、再配置処理を実行することを特徴とする。
【発明の効果】
【００４３】
本発明によれば、レコーダは、ユニットブロック単位で再配置処理を行うため、データのリアルタイム性を損なうことなく再配置を行うことができる。また、中断した再配置処理を任意のタイミングで、継続して再開することができるため、ユーザの利便性を高めることができる。
【発明を実施するための最良の形態】
【００４４】
本発明の実施の形態について、図を参照しながら以下に説明する。
【実施例１】
【００４５】
図１は、実施の形態に係るビデオレコーダ１００の全体構成を示す図である。
【００４６】
ビデオレコーダ１００には、ランダムアクセス可能な記憶媒体の一例として、HDD１１５を内蔵する可搬型の記憶メディアであるHDDユニット１２３が装着されている。また、アナログTV波とアナログ外部入力を入力としている。
【００４７】
ビデオレコーダ１００は、受信波入力端子１０１、チューナ１０２、外部入力端子１０３、セレクタ１０４、CCI(Copy Control Information)検出器１０５、NTSCデコーダ１０６、符号化器１０７、スクランブラ１０８、バッファメモリ１０９、システムコントローラ１１０、操作パネル１１１、リモコン受信部１１２、時計１１３、HDDコントローラ１１４、HDD１１５、デスクランブラ１１６、復号器１１７、NTSCエンコーダ１１８、CCI埋込器１１９、外部出力端子１２０、再配置処理制御部１２１、挿脱検出部１２２、HDDユニット１２３、HDDソケット１２４、バスＡから構成されている。
【００４８】
また、バッファメモリ１０９は、記憶時に用いる領域１０９ａと再生時に用いる領域１０９ｂの２つの領域を備えている。
【００４９】
受信ＴＶ波は、アンテナ（図示されず）によって受信され、受信波入力端子１０１を介して、チューナ１０２に入力される。そして、チューナ１０２において利用者指示により所望のチャンネルに対する入力信号として抽出され、セレクタ１０４に入力される。
【００５０】
一方、他の映像機器（図示されず）を信号源とする入力信号は、外部入力端子１０３を介して、セレクタ１０４に入力される。セレクタ１０４では、利用者の指示にしたがって、チューナ１０２または外部入力端子１０３を経て入力された入力信号のいずれかを選択し、これをCCI検出回路１０４およびNTSCデコーダ１０５に入力する。
【００５１】
CCI検出回路１０４は、入力信号内の映像信号に埋め込まれているCCIの検出およびコピー可否の判定を行う。CCIとしては、マクロビジョン(Macrovision）、CGMS-A(Copy Generation Management System for Analog Signal)などがあり、映像信号に埋め込まれたこれらの信号を抜き取り、入力された映像信号の記憶の可否および記憶する状態の決定を行う。すなわち、マクロビジョンの埋め込みを検出した場合には、記憶不可、非検出時には記憶可となる。
【００５２】
CGMS-Aの信号を検出し、その内容が「コピー不可」の場合には記憶不可、「１世代だけコピー可」の場合には、スクランブル状態で記憶、「コピー可」の場合には、非スクランブル状態での記憶となる。
【００５３】
なお、アナログ地上波については、CCIが埋め込まれていないため非スクランブル状態での記憶となる。判定結果は、バスＡを介してシステムコンロトローラ１１０に伝えられる。
【００５４】
一方、NSTCデコーダ１０６では、入力信号から、映像信号と音声信号の分離および両信号のデジタル化を行い、デジタル化した映像と音声を符号化器１０７へ出力する。そして、符号化器１０７において、データ量の削減を目的とした圧縮符号化方式、例えば、MPEG2(Motion Picture coding Experts Groups phase 2, ISO/IEC13818)方式にしたがった符号列すなわちビデオデータへと変換し、変換後のビデオデータをスクランブラ１０８に入力する。このビデオデータへの変換によって、データ量は著しく削減される。
【００５５】
スクランブラ１０８は、変換されたビデオデータに対してスクランブルを施す。スクランブルとは他の機器へ複製されたとしても再生不能な状態とすることを目的として、ビデオデータを暗号化する処理である。
【００５６】
スクランブルの指示は、CCI検出器１０４によって、「１世代だけコピー可」であることが検出され、スクランブル状態で記憶すると判定された入力信号に対するビデオデータに対して指示される。指示のないビデオデータは、そのまま出力される。
【００５７】
出力されたビデオデータは、バッファメモリ１０９の領域１０９ａにて一時的に蓄えられ、所定の量のデータが蓄えられると、バッファメモリ１０９の領域１０９ａに蓄えられたビデオデータは、システムコントローラ１１０の指示に従って、バスＡおよびHDDコントローラ１１４を介して、デジタル記憶媒体であるHDD１１５に記憶される。
【００５８】
再生時に、HDD１１５から読み出されたビデオデータは、システムコントローラ１１０の指示に従って、HDDコントローラ１１４、バスＡを介して、バッファメモリ１０９の領域１０９ｂに一時的に蓄えられる。このとき復号器１１７での復号に必要なビデオデータが、適時供給されるように、常に一定量のビデオデータがバッファメモリ１０９の領域１０９ｂに蓄えられているように、システムコントローラ１１０が、データ量を制御している。
【００５９】
バッファメモリ１０９の領域１０９ｂに蓄えられたビデオデータは、デスクランブラ１１６に入力され、これがスクランブルされたビデオデータである場合には、スクランブラ１０８において施されたスクランブルが解除され、スクランブルされていないビデオデータの場合には、そのまま復号器１１７に出力される。
【００６０】
復号器１１７は、ビデオデータ（符号列）の解釈を行い、入力されたビデオデータを元の映像と音声のデジタルデータに復元し、これをNTSCエンコーダ１１０に出力する。そして、NTSCエンコーダ１１８においてアナログの映像信号と音声信号に変換して再生信号をCCI埋込器１１９に出力する。
【００６１】
CCI埋込器１１９は、システムコントローラ１１０の指示にしたがって、「コピー不可」を示すCCI情報を入力された再生信号に埋め込みを行い、出力信号として外部出力端子１２０を介し外部に出力する。「コピー不可」を示すCCI情報の埋め込み指示は、記憶時にCCI検出回路１０４にて「１世代だけコピー可」を検出したビデオデータを再生した再生信号に対して指示される。指示を受けない再生信号はそのまま出力信号として外部出力端子１２０を介し外部に出力する。
【００６２】
なお、バッファメモリ１０９は、揮発性のメモリであり、それぞれ符号器１０７、復号器１１７とHDD１１５とのアクセスの違いを緩和するための緩衝機能を提供する。
【００６３】
HDDコントローラ１１４は、HDD１１５との間のデータ授受を行う制御機能および電気的接続を提供するインタフェースを提供する。
【００６４】
システムコントローラ１１０は、ビデオレコーダ全体の制御およびHDD１１５内のデータ管理等を行い、映像の記憶および再生を実現し、主にマイクロコンピュータによって構成される。
【００６５】
操作パネル１１１およびリモコン受信部１１２は、利用者の指示を受け取るための入力装置であり、操作パネル１１１は直接に利用者の指示を受け取る。リモコン受信部１１２はリモコン（図示せず）を介して間接的に利用者の指示を受け取る。
【００６６】
時計１１３は、予約録画を行うためのものである。なお、予約録画を管理するための予約データはHDD１１５に格納される。
【００６７】
再配置処理制御部１２１は、再配置処理開始指示に応じて、記憶済みデータの再配置を行う。また、再配置処理の進行状況を示す情報、例えば、ユニットの参照インデックスを保持するメモリを内部に備える。
【００６８】
挿脱検出部１２２は、HDDユニット１２３がHDDソケット１２４に装着、あるいは取り外されたことを検出する。
【００６９】
HDDユニット１２３は、HDD１１５を内蔵する。HDDユニット１２３は、HDD１１５を可搬型とするために外殻に設けたものであり、ビデオレコーダ１００のソケット１２４に対して着脱自在に装着することを除いて、HDD１１５の提供する機能しか持たない。
【００７０】
なお、以下の説明においては、便宜上、このHDDユニット１２３そのものをHDD１１５と同等と見なす。このソケット１２４に装着されたHDDユニット１２３へのデータの書き込み、およびHDDユニット１２３からのデータの読み出しは、HDD１１５同様にHDDコントローラ１１４によって制御され実行される。
【００７１】
このほか、ビデオレコーダ１００は、システムコントローラ１１０の管理下で使用されるシステムメモリ（図示せず）を備え、HDDユニット１２３が着脱自在であることから、HDDユニット１２３に依存せず、かつ、ビデオレコーダ１００の動作に関連がある情報、例えば、予約録画やEPG情報などのビデオレコーダ１００内部で参照する情報をシステムメモリに記憶する。
【００７２】
次に、本実施例におけるビデオレコーダ１００の記憶媒体であるHDD１１５に記憶される情報について説明する。
【００７３】
HDD１１５には、映像や音声などのコンテンツデータのリアルタイム性の主データと、主データを管理するファイル管理情報や番組の付属情報等のノンリアルタイム性の副データが記憶される。このファイル管理情報として、後述するブロック管理デーブルが記憶されている。
【００７４】
また、HDD１１５は、可搬型記憶媒体であるためビデオレコーダ１００から脱着して、他のビデオレコーダやPCへの装着が可能である。そして、PCでの利用を可能とするために汎用のファイルシステムが用いられている。そして、PCにおいて、データの記憶・削除が、この汎用のファイルシステムの管理下において繰り返されることによって、ため、記憶媒体上に空きブロックの点在率が増加することになる。
【００７５】
PCにおいては、記憶あるいは削除される主なデータは、ノンリアルタイムデータとする。但し、PCにおいて、本発明のビデオレコーダと同じ機能をプログラムにて実現した場合にはリアルタイムデータを記録することが可能である。
【００７６】
次に、ビデオレコーダ１００の再配置処理制御部１２１によるデータ再配置処理について説明する。
【００７７】
再配置制御処理部１２１は、システムコントローラ１１０より指示を受けて動作する。システムコントローラ１１０は、挿脱検出部１２２によるHDDソケット１２４へのHDDユニット１２３装着の検出結果によって、再配置開始イベントを発行し、再配置処理制御部１２１を起動する。
【００７８】
このとき、ビデオレコーダとしての主たる機能であるコンテンツの録画、再生などが発生した時には、再配置を中断するイベントを発行し、再配置処理を休止させ、前述の中断用件が終了した時点で、再配置を再開するイベントを発行する。この中断用件とは、ユーザがビデオレコーダの操作パネル１１１やリモコンを用いて再生を開始する場合、コンテンツの削除や複製要求を行う場合、時計１１３が録画予約時間に達したことにより録画処理が発生する場合、ユーザがHDDユニット１２３を取り出そうとする場合などである。
【００７９】
このように、データ再配置処理は、ユーザの所望するビデオレコーダの主機能を優先し、空いた時間を利用して行われる。
【００８０】
また、本実施例のビデオレコーダ１００は、HDD１１５に記憶されているデータがリアルタイムデータ、あるいは、ノンリアルタイムデータのどちらであるか判別する。この判別は、例えば、UDFのようなリアルタイムデータの属性指定が可能なファイルシステムを採用して記憶する、ファイルシステムとは別に属性の管理ファイルをHDD１１５に記憶する、リアルタイムデータのファイル名に一定の規則を設けて記憶するなどの方法によって実現することができる。さらには、リアルタイムデータは特定の規則に沿ったデータ列であることに着目して、リアルタイムデータの先頭を識別することによっても可能である。
【００８１】
しかしながら、ここでは、HDD１１５に記憶されているデータがリアルタイムデータ、ノンリアルタイムデータであることが確認できれば、いずれの方法によって確認されるものであってもよい。
【００８２】
次に、再配置処理のフローについて説明する。
【００８３】
図２は、ビデオレコーダ１００におけるデータ再配置処理のフロー図である。
【００８４】
図３および図４は、本実施例におけるデータ再配置の模式図である。
【００８５】
HDD１１５は、ユニットより小さなブロック単位で管理されており、本実施例では、HDD１１５内に、複数のブロックから構成され、ユニットと同一のデータ量であるユニットブロックを固定的に配置し、このユニットブロック単位でデータ再配置を行うものとする。
【００８６】
以降、説明を簡単にするために、１ユニットブロック＝４ブロックとする。したがって、ユニットブロックは、HDD１１５内の連続したＬＢＡ(Logical Block Address)からなる４ブロック分のデータ記憶領域を指す。尚、HDD１１５内の全ての領域はユニットブロックに属している。また、図のブロック内に記さされた“Ｒ”はリアルタイムデータが記憶されたブロック、“Ｎ”は、ノンリアルタイムデータが記憶されたブロック、空白は、データが記憶されていない未使用の状態を示している。
【００８７】
図２のフローを参照して、まず、システムコントローラ１１０の開始イベントによって再配置処理制御部１２１が起動すると、ユニットブロックを順に処理していくためのインデックスｍ（自然数）を０に初期化する（Ｓ１）。このインデックスは、データの再配置処理中のユニットブロック番号を示す。これ以後、システムコントローラ１１０からの中断イベントを受けるか、若しくは、インデックスｍが最終ユニットブロックの番号に達するまで、ユニットブロック単位でこのデータ再配置処理が実行される。
【００８８】
再配置処理制御部１２１は、ユニットブロックｍに対して、まず、リアルタイムデータに対するデータの再配置の必要性を判定する（Ｓ２）。ここでは、ユニットブロックｍを構成するブロックにリアルタイムデータが記憶され、かつ、ユニットブロックｍの先頭にリアルタイムデータが記憶されていない場合に、リアルタイムデータに対するデータ再配置が必要である、と判定する。
【００８９】
再配置処理制御部１２１は、リアルタイムデータに対して再配置が必要であると判定すると（Ｓ２ｙｅｓ）、未使用のユニットブロック（全ての未使用のブロックから構成されるユニットブロック）を検索する（Ｓ３）。
【００９０】
この検索の結果（Ｓ３）にしたがって、記憶領域内に移動先ユニットブロックが存在する場合（Ｓ４Ｙｅｓ）、ユニットブロックｍのデータを移動先ユニットブロックに複製する（Ｓ５）。一方、移動先の未使用ブロックが存在しない場合（Ｓ４Ｎｏ）、複製処理（Ｓ５）は行わない。
【００９１】
なお、Ｓ３の検索においては、その検索の方法を限定するものではなく、また、検索の結果得られた空きユニットブロックは、記憶領域内のいずれに配されていても良い。
【００９２】
以下、Ｓ５における複製処理を図３の模式図を用いて説明する。
【００９３】
図３（ａ）は、ユニットブロックｍに対する再配置前の状態である。ユニットブロックｍを構成するブロックには、リアルタイムデータを記憶する３つのブロックＢ１１，Ｂ１２，Ｂ１３が配置されている。ここで、リアルタイムデータは、４ブロックから構成されるユニット単位で扱われるため、ユニットブロックｍに続いて、ユニットブロック（ｍ＋１）の先頭ブロックＢ１４までの４つのブロックに、一連のリアルタイムデータが記憶されることになる。
【００９４】
図３（ａ）に示すように、リアルタイムデータのユニットがユニットブロックｍとユニットブロック（ｍ＋１）をまたいで記憶されている場合、この１ユニット分のデータ（ブロックＢ１１〜Ｂ１４）が再配置の対象となる。
【００９５】
これに対して、ユニットブロックｍを構成する先頭ブロックにリアルタイムデータが記憶されている場合には、リアルタイムデータの１ユニットが、全てユニットブロックｍに含まれているので、再配置の必要がない。言うまでもなく、ユニットブロックｍを構成するブロックにリアルタイムデータが記憶されていない場合も、再配置の必要はない。
【００９６】
図３の模式図において、図３（ａ）のユニットブロック（ｍ−１）が未使用のユニットブロックである。ここに、再配置の対象となったユニット（ブロックＢ１１、Ｂ１２、Ｂ１３、Ｂ１４）を、ユニットブロックｍ−１に複製する（図３（ｂ）の状態）。この複製によって、ユニットブロック（ｍ−１）内のブロックＢ２１、Ｂ２２、Ｂ２３、Ｂ２４には、それぞれブロックＢ１１、Ｂ１２、Ｂ１３、Ｂ１４と同一のデータが記憶される。しかし、この時点では、ブロック管理テーブルはまだ更新されておらず、ファイルシステム上は、図３（ａ）の状態として解釈される。
【００９７】
図２のフローに戻り、リアルタイムデータの複製（Ｓ５）が終了する、あるいは、リアルタイムデータに対する再配置が必要ないと判定される場合（Ｓ２ｎｏ）、続いてノンリアルタイムデータに対するデータ再配置の必要性を判定する（Ｓ６）。
【００９８】
ユニットブロックｍを構成するブロックに、ノンリアルタイムデータを記憶したブロックと未使用のブロックが混在している場合（Ｓ６ｙｅｓ）、例えば、ユニットブロックを構成するブロックに、離散的に記憶されたノンリアルタイムデータは、ブロック単位で再配置される。
【００９９】
再配置処理制御部１２１が、ノンリアルタイムデータに対して再配置が必要であると判定すると（Ｓ６Ｙｅｓ）、ユニットブロック０〜（ｍ−１）を検索して、移動先となりうるユニットブロック選択する（Ｓ７）。この移動先ユニットブロックとは、未使用のブロックとノンリアルタイムデータ記憶されているブロックが混在しているユニットブロックであり、かつ、最も先頭に近いユニットブロックである。
【０１００】
この検索の結果（Ｓ８）にしたがって、ユニットブロック０〜（ｍ−１）に移動先ユニットブロックが存在する場合（Ｓ８Ｙｅｓ）、ユニットブロックｍのブロックに記憶されているデータを、ブロック単位で移動先ユニットブロックの先頭に近い未使用ブロックから、未使用ブロックの空きがある限り複製を行う（Ｓ８）。一方、移動先の未使用ブロックが存在しない場合（Ｓ８Ｎｏ）、複製処理（Ｓ８）は行わない。
【０１０１】
なお、Ｓ８Ｎｏの場合、およびＳ８において、ユニットブロックｍ内の全てのデータが移動先ユニットブロックに複製できなかった場合、以後の処理によってユニットブロックｍが、移動先ユニットブロックとなる。
【０１０２】
以下、図４のノンリアルタイムデータに対する再配置を模式図を用いて説明する。図４（ａ）のユニットブロックｍには、１つのノンリアルタイムデータを記憶したブロックＡ１が配置されている。このブロックＡ１に記憶されたデータが再配置の対象である。
【０１０３】
また、再配置対象ブロックＡ１の移動先となるブロックＡ２が、ユニットブロック２内に存在する。Ｓ７では、移動先ユニットブロックとしてユニットブロック２を選択し、Ｓ８では、ユニットブロックｍのブロックＡ１内のデータを、ユニットブロック２のブロックＡ２に複製する。ブロックＡ１とブロックＡ２に記憶されているデータは同一である。
【０１０４】
図４（ｂ）は、データ複製後の状態であり、この時点では、ブロック管理テーブルが更新されていないため、ファイルシステム上は、図４（ａ）の状態として解釈される。
【０１０５】
図２のフローに戻り、次に、再配置処理制御部１２１は、ユニットブロックｍに対するデータ再配置の結果、すなわち、Ｓ５およびＳ９の結果を反映するようブロック管理デーブルを更新し、ユニットブロックｍに対する再配置処理を終了する（Ｓ１０）。このとき、Ｓ５およびＳ９において、データの複製が行われなかった場合、Ｓ１０における処理は省略される。
【０１０６】
ブロック管理デーブルは、ステップＳ５およびＳ９において、新しく割り当てられたブロックにはデータが記憶され、元のブロックは未記憶となった状態を反映して書き換えられる。
【０１０７】
図３に示すようなリアルタイムデータの再配置では、ユニットブロック（ｍ−１）を構成するブロックＢ２１、Ｂ２２、Ｂ２３、Ｂ２４を新たにデータを記憶したブロック、元のブロックＢ１１、Ｂ１２、Ｂ１３、Ｂ１４は未使用ブロックであることを示すようブロック管理テーブルを書き換える。この結果、ユニットブロックｍおよびユニットブロック（ｍ＋１）に含まれて記憶されていたリアルタイムデータのユニットは、ユニットブロック（ｍ−１）に移動する。
【０１０８】
ノンリアルタイムデータの再配置についても、図４で示したように、ユニットブロックｍ内に配置されたブロックＡ１に記憶されたノンリアルタイムデータが、ユニットブロック２内の未使用ブロックＡ２に移動される。
【０１０９】
図２のフローに戻り、ユニットブロックｍに対してデータの再配置が必要でない（Ｓ６ｎｏ）、あるいは、ユニットブロックｍに対するデータの再配置が終了すると（Ｓ９）、再配置処理の終了を確認する（Ｓ１１）。この結果、インデックスｍが最終ユニットブロック（総ユニット数―１）の場合（Ｓ１１Ｙｅｓ）、データの再配置処理を終了し、再配置処理制御部１２１を停止状態とする。一方、最終ユニットブロックでない場合（Ｓ１１ｎｏ）、インデックスｍはインクリメントされ（Ｓ１２）、再び、ステップＳ２へ移行して、全てのユニットブロックに対する処理が終了するまで繰り返される。
【０１１０】
なお、上記再配置処理中に、ビデオレコーダ１００に対して、ユーザの操作、あるいは録画予約によって、記憶または再生が指示されると、システムコントローラ１１０から、再配置処理制御部１２１に再配置処理の中断が通知され、この通知を受けた再配置処理制御部１２１は、再配置処理を即座に中断する。中断が発生した場合は、再配置処理制御部１２１の内部のメモリに、再配置処理の進行状況を示す情報としてユニットの参照インデックスｍを記憶する。
【０１１１】
記憶または再生処理が終了し、再配置処理の再開が可能となると、システムコントローラ１１０により再配置処理の再開イベントを受け取った再配置処理制御部１２１は、内部のメモリより再配置処理の進行状況を示すユニットの参照インデックスを読み出し、中断時に再配置処理の対象であったユニットブロックｍに対して、Ｓ２に戻って処理を再開する。
【実施例２】
【０１１２】
動的ユニット配置方式によるデータ管理として、汎用のファイルシステムのブロック単位で管理するブロック管理テーブルと、ユニット単位での記憶管理を行うユニット管理テーブルの２つの管理テーブルを利用した動的ユニット配置方式を搭載したビデオレコーダに対して行う再配置処理について説明する。
【０１１３】
ビデオレコーダは、図１と同一の構成であるため説明を省略する。システムコントローラ１１０が実行する記憶処理や再生処理および再配置処理制御部１２１が実行する再配置処理において、記憶媒体上のデータ記憶状況の変化に伴って、実施例１で使用したブロック管理テーブルに加えてユニット管理テーブルに対する更新を行う。なお、PCなどの汎用機のファイルシステムではブロック管理テーブルのみが使用される。
【０１１４】
図５は、動的ユニット配置方式における記憶媒体の記憶領域へのデータ配置の一例を図示したものである。２０１はリアルタイムデータを納めたリアルタイムファイル、２０２、２０３、２０４、２０５は、ノンリアルタイムデータを納めたノンリアルタイムファイルとして示している。
【０１１５】
図中の記憶媒体上の記憶領域２００は、物理的に連続する領域が論理的にブロックとして分割されていることを示している。ブロック内に記された“Ｒ”はリアルタイムデータが記憶されたブロック、“Ｎ”は、ノンリアルタイムデータが記憶されたブロック、空白は、データが記憶されていない未使用の状態のブロックを示している。
【０１１６】
これらのブロックは、汎用のファイルシステムによって記憶や読み出しが処理される最小単位であり、この単位領域の整数倍で記憶や読み出し処理が実行される。
【０１１７】
ブロック管理テーブル２１０は、上記の記憶領域２００のブロック毎の使用状況を管理するものである。ブロック管理テーブル２１０を構成するエントリ２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ・・・は、記憶領域２００の２００ａ、２００ｂ、２００ｃ、２００ｄ・・・の各ブロックに対応しており、使用中のブロックの場合は‘１’、未使用のブロックの場合は‘０’として使用状況を示す。
【０１１８】
ユニット管理テーブル２２０は、記憶領域２００をユニット単位で扱うユニットブロックに対応して、ユニット情報２２０ａ、２２０ｂ、２２０ｃ・・・から構成される。
【０１１９】
ユニット情報は、ユニットブロックを構成するブロックの利用状況を示す情報であり、“リアルタイムデータ記憶に使用”／“ノンリアルタイムデータ記憶に一部使用”／“ノンリアルタイムデータ記憶に全使用”／“未使用”によって示す。
【０１２０】
ユニットブロックとブロックとは、記憶媒体２００における配置によって一意に対応づけられる。例えば、記憶領域２００の２００ａ、２００ｂ、２００ｃ、２００ｄは、それぞれブロック管理テーブル２１０上の２１０ａ、２１０ｂ、２１０ｃ、２１０ｄに対応しており、これらはすべて、ユニット管理テーブル２２０上の２２０ａのユニット情報に対応する。
【０１２１】
このように、ユニット管理テーブル２２０は、記憶媒体２００上に配置される全てのユニットブロックに関するユニット情報を保持し、ブロック管理テーブルは、記憶領域２００上に配置される全てのブロックに関する情報を保持する。
【０１２２】
図５を参照して、ビデオレコーダ１００におけるデータの記憶処理について説明する。
【０１２３】
リアルタイムデータを記憶する場合、ユニット管理テーブルを検索してユニット情報が“未使用”である未使用のユニットブロックを選択し、１ユニット分のリアルタイムデータを記憶する。そして、使用したユニットブロックに対するユニット情報を“リアルタイムデータ記憶に使用”に変更する。また、データを記憶したブロックに対するブロック管理テーブルの情報を“０”から“１”に変更する。リアルタイムデータの記憶が終了するまで、この処理は続けられる。
【０１２４】
一方、ノンリアルタイムデータを記憶する場合、ユニット管理テーブルを検索して、ユニット情報が“ノンリアルタイムデータ記憶に一部使用”のユニットを検索する。該当するユニット存在する場合、そのユニットブロック内のブロックにノンリアルタイムデータをブロック単位で記憶する。もし、該当するユニットがなければ、ユニット管理テーブルを検索して、ユニット情報が“未使用”であるユニット選択し、そのユニットブロック内のブロックにノンリアルタイムデータをブロック単位で記憶する。次に、使用したユニットブロックに対するユニット情報を、使用状況に合わせて“ノンリアルタイムデータ記憶に全使用”あるいは“ノンリアルタイムデータ記憶に一部使用”に変更し、データを記憶したブロックに対するブロック管理テーブルの情報を“０”から“１”に変更する。
【０１２５】
データの再生については、汎用ファイルシステムによって、ブロック管理テーブルのみの参照で可能となる。
【０１２６】
この動的ユニット配置方式を搭載したビデオレコーダ１００のみでHDD１１５が利用される場合には、空きブロック数から算出される残記憶容量と、確保可能なユニットから算出される残記憶容量との間に差が生じることはない。
【０１２７】
しかしながら、HDD１１５は、可搬型であるが故にPC等の汎用機に装着されて利用される。そして、PC等の汎用機によってノンリアルタイムデータの記憶／削除が行われる機会が増大し、空きブロックが離散的に点在する確立が高くなる。この結果、HDDには十分な空きブロックがあるにもかかわらず、ユニットを構成するための連続した空きブロックを確保できないために、空きブロック数から算出される残記憶容量と、確保可能なユニットから算出される残記憶容量との間に、著しく差が生じてしまう。
【０１２８】
これを解消するために、再配置処理を行う。この再配置処理は、HDDユニット１２３がビデオレコーダに装着されたとき、HDD１１５上のブロック管理テーブルとユニット管理テーブルの更新日時が異なるとき、HDD１１５におけるブロック管理テーブルとユニット管理テーブルに矛盾はあるとき、などに行う。
【０１２９】
本実施例では、システムコントローラ１１０が、HDDユニット１２３装着後に、ブロック管理テーブルとユニット管理テーブルの更新日時が異なることを検出し、これに応じてこの２つの管理テーブル間に発生した矛盾を修正した後に、再配置処理を行うこととする。  したがって、再配置処理のときには、”ユニット”を構成する各ユニットブロックの状態は、ユニット管理テーブルにて規定された状態に一致することになり、”ユニット”を構成するデータは、必ずユニットブロックに配置される。
【０１３０】
図６は、本実施例におけるビデオレコーダ１００におけるデータ再配置処理を示すフローチャートである。
【０１３１】
まず、システムコントローラ１１０の開始イベントによって再配置処理制御部１２１が起動すると、ユニットブロックを順に処理していくためのインデックスｍ（自然数）を０に初期化する（Ｓ２１）。このインデックスは、再配置中のユニットブロックの番号を示す。
【０１３２】
以後、システムコントローラ１１０からの中断イベントを受けるか、若しくは、インデックスｍが最終ユニットブロックの番号に達するまで、ユニットブロック単位のデータ再配置処理が実行される。
【０１３３】
再配置処理制御部１２１は、ユニット管理テーブルから、ユニットブロックｍのユニット情報を取得する（Ｓ２２）。ユニット情報が、“リアルタイムデータ記憶に使用”／“ノンリアルタイムデータ記憶に全使用”／“未使用”の場合（Ｓ２２Ｎｏ）、データ再配置を必要としない。ユニット情報が、“ノンリアルタイムデータ記憶に一部使用”の場合（Ｓ２２Ｙｅｓ）、データの再配置処理を必要とする。
【０１３４】
再配置処理制御部１２１は、ユニット情報が“ノンリアルタイムデータ記憶に一部使用”の場合（Ｓ２２Ｙｅｓ）、ユニットブロック０〜（ｍ−１）を検索して、移動先となりうるユニットブロックを検索する（Ｓ２３）。移動先ユニットブロックとは、未使用のブロックと、ノンリアルタイムデータが記憶されているブロックが混在しているユニットブロック、すなわち、ユニット情報が“ノンリアルタイムデータ記憶に一部使用”となっているユニットである。
【０１３５】
選択したユニットブロックの検索の結果（Ｓ２４）、ユニットブロック０〜（ｍ−１）に、移動先ユニットブロックが存在する場合（Ｓ２４Ｙｅｓ）、ユニットブロックｍのブロックに記憶されているデータをブロック単位で移動先ユニットブロックの未使用ブロックに空きがある限り複製する（Ｓ２５）。
【０１３６】
一方、移動先となる未使用ブロックが存在しない場合（Ｓ２４Ｎｏ）、再配置は必要とならない。
【０１３７】
次に、Ｓ２５の複製元のブロックに記憶されたデータが複製先のブロックに移動に伴い、ユニット管理テーブル２２０およびブロック管理テーブル２１０のデータを変更する（Ｓ２６）。
【０１３８】
図７は、ユニットブロックｍが、ノンリアルタイムデータの記憶に一部使用されている場合の再配置処理を説明する模式図である。ユニットブロックｍ内には、再配置の対象となるデータを記憶したブロックＡ３とＡ４が配置されている。そして、ユニットブロック２（２＜ｍ）もまた、ノンリアルタイムデータの記憶に一部使用されているユニットブロックであり、ブロックＡ５とＡ６が未使用のブロックである。本再配置処理では、ユニットブロック２が移動先ユニットブロックとなり、ユニットブロックｍのブロックＡ３およびＡ４に記憶されているデータが、それぞれユニットブロック２のブロックＡ５とＡ６に移動される。
【０１３９】
図８は、図７に対する再配置後の状態を示す模式図である。
【０１４０】
ユニットブロックｍのブロックＡ３およびＡ４のデータは、ユニットブロック２のブロックＡ６およびブロックＡ７へ移動し、これに伴い、ブロック管理テーブル２１０およびユニット管理テーブル２２０が変更されている。
【０１４１】
なお、Ｓ２４Ｎｏの場合、およびＳ２５において、ユニットブロックｍ内の全てのデータが移動先ユニットブロックに複製できなかった場合には、以後の処理においてユニットブロックｍが、移動先ユニットブロックとなる。
【０１４２】
ユニットブロックｍに対する処理が終了すると、データ再配置処理の終了を確認する（Ｓ２７）。すなわち、インデックスｍが、最終ユニットブロック（総ユニット数―１）の場合（Ｓ２７Ｙｅｓ）、データの再配置処理を終了し、再配置処理制御部１２１を停止状態にする。一方、インデックスｍが最終ユニットブロックでない場合（Ｓ２７ｎｏ）、インデックスｍはインクリメントされ（Ｓ２８）、再びステップＳ２２に移行して、全てのユニットブロックに対する処理が終了するまで繰り返し処理される。
【０１４３】
なお、上記再配置処理中に、ビデオレコーダ１００に対するユーザの操作、あるいは録画予約によって、記憶または再生が指示されると、システムコントローラ１１０から、再配置処理の中断が再配置処理制御部１２１に通知される。
【０１４４】
処理の中断の中断が通知された再配置処理制御部１２１は、再配置処理を即座に中断する。再配置処理の中断が発生した場合、再配置処理制御部１２１は、内部のメモリに、再配置処理の進行状況を示す情報としてユニットの参照インデックスｍを記憶する。
【０１４５】
記憶または再生処理が終了し再配置処理の再開が可能となると、システムコントローラ１１０により再配置処理の再開イベントを受け取った再配置処理制御部１２１は、中断時に再配置処理の対象としていたユニットブロックｍに対して、Ｓ２２に戻って処理を再開する。
【０１４６】
上記の実施例１および実施例２では、ブロック単位で記憶するノンリアルタイムデータと、ブロックの整数倍の単位であるユニット単位で記憶するリアルタイムデータの、データ長の異なる２つのデータを扱う場合について説明したが、本発明のように、２種類のデータ長単位で記憶される場合に限定されるものでなく、３種類以上の単位、すなわち、ブロックと、複数種類のブロック数を１単位として構成されるユニットを管理する場合においても有効である。この場合、ユニットブロックは、それぞれのユニットブロックを構成するブロック数の最小公倍数分のブロックによって構成され、１つのユニットブロックには、単一の単位で記憶されるユニットの属するブロックのみ、あるいは、ノンリアルタイムデータのブロックのみが配置されるように、データ再配置をユニットブロック単位で行うようにすればよい。また、この場合、ユニットの管理単位は、ユニットブロックを構成するブロック数の約数であることが望ましい。
また、実施例２は、ユニット管理テーブルとブロック管理テーブルとの矛盾を事前に解消し、再配置処理を行うものであるが、再配置処理を行いながら、ユニット管理テーブルとブロック管理テーブルとの矛盾を解消することも可能である。具体的には、実施例１の図２の処理フローのＳ１１の前に、処理対象のユニットの記憶状態をユニット管理テーブルに更新する処理を加えることによって実現することができる。
【図面の簡単な説明】
【０１４７】
【図１】本発明のビデオレコーダのブロック図
【図２】実施例１におけるデータ再配置処理フローチャート
【図４】実施例１におけるデータ再配置の例
【図３】実施例１におけるデータ再配置の例
【図５】動的ユニット配置方式における再配置を説明する図
【図６】実施例２におけるデータ再配置処理フローチャート
【図７】実施例２におけるデータ再配置の例
【図８】実施例２におけるデータ再配置の例
【符号の説明】
【０１４８】
１２１  再配置処理制御部
【図１】
2005108345.tif 000003
【図２】
2005108345.tif 000004
【図３】
2005108345.tif 000005
【図４】
2005108345.tif 000006
【図５】
2005108345.tif 000007
【図６】
2005108345.tif 000008
【図７】
2005108345.tif 000009
【図８】
2005108345.tif 000010