(57)【特許請求の範囲】
【請求項１】
格納デバイスにデータストリームを格納するデジタル記録システムのバンド幅要件を動的に管理する方法であって、
当該デジタル記録システムの可用なバンド幅を超える前に状態を検出する過程と、
当該格納デバイスに書き込み中、または、当該格納デバイスから読み出し中のデータストリームからデータが失われることを避けるために、ポリシーに従って、当該格納デバイスへの当該データストリームのアクセスの優先準位付けを行なう過程とを、有する方法。
【請求項２】
請求項1に記載の方法であって、状態を検出する当該過程が、
メディアデータ管理モジュールによって、当該デジタル記録システムが、当該格納デバイスへのデータストリームの書き込みまたは当該格納デバイスからのデータストリームの読み出しに対するタイムデッドラインに間に合わない状態に近づいているか否かを決定するサブ過程と、
当該デジタル記録システムが、当該格納デバイスへのデータストリームの書き込みまたは当該格納デバイスからのデータストリームの読み出しに対するタイムデッドラインに間に合わない状態に近づいている場合には、この事実を、当該ポリシーを実行するポリシーモジュールに報告するサブ過程と、を有し、
当該メディアデータ管理モジュールが、当該格納デバイスに転送されたデータ、または、当該格納デバイスから転送されたデータの各バッファに対して当該タイムデッドラインを測定するコードを有していることを特徴とする方法。
【請求項３】
請求項2に記載の方法であって、さらに、
タイムデッドラインが失われたとき、当該ポリシーモジュールに緊急のエラー警報を送るサブ過程を有することを特徴とする方法。
【請求項４】
請求項1に記載の方法であって、状態を検出する当該過程が、
ディスクドライバによって、当該デジタル記録システムが、進行中の全データストリームの入力−出力要求へのデッドライン要件に間に合わない状態に近づいているか否かを決定するサブ過程と、
当該デジタル記録システムが、進行中の全データストリームの入力−出力要求へのデッドライン要件に間に合わない状態に近づいている場合には、この事実を、当該ポリシーを実行する当該ポリシーモジュールに告げるサブ過程と、を有することを特徴とする方法。
【請求項５】
請求項4に記載の方法であって、当該ディスクドライバが、特定の期間にわたって進行中の全データストリームの入力−出力要求に対するその総可用時間を計算し、かつ、
当該総可用時間が、プログラム可能な閾値を当該特定の期間よりも多く超えたとき、当該ドライバが、当該デジタル記録システムが進行中の全データストリームの入力−出力要求へのデッドライン要件を満足しない状態に近づきつつあるか否かを決定することを特徴とする方法。
【請求項６】
請求項4に記載の方法であって、当該ドライバが、カーネルディスクドライバであることを特徴とする方法。
【請求項７】
請求項1に記載の方法であって、当該過程が、
書き込み中または読み出し中のデータストリーム以外のアクセス、
当該格納デバイスから読み出し中のデータストリーム、
当該格納デバイスへ書き込み中のデータストリーム、
の優先順位で、当該格納デバイスへの1つ以上のアクセスを保留、あるいは、休止、あるいは、終結させるサブ過程を有することを特徴とする方法。
【請求項８】
請求項7に記載の方法であって、さらに、
当該デジタル記録システムのバンド幅要件が緩和されたとき、
保留、あるいは、休止、あるいは、終結させる前に当該格納デバイスに書き込み中であったデータストリーム、
保留、あるいは、休止、あるいは、終結させる前に当該格納デバイスから読み出し中であったデータストリーム、
保留、あるいは、休止、あるいは、終結させる前に書き込み中または読み出し中であった他のデータストリームのアクセス、
の優先順位で、当該保留、あるいは、休止、あるいは、終結させたアクセスを再開させるサブ過程を有することを特徴とする方法。
【請求項９】
請求項8に記載の方法であって、保留、あるいは、休止、あるいは、終結させる前に当該格納デバイスに書き込み中であった当該データストリームが、最も近いデッドラインが最初の順(a nearest deadline first order)で再開されることを特徴とする方法。
【請求項１０】
請求項8に記載の方法であって、保留、あるいは、休止、あるいは、終結させる前に当該格納デバイスから読み出し中であった当該データストリームが、最も近いデッドラインが最初の順で再開されることを特徴とする方法。
【請求項１１】
格納デバイスにデータストリームを格納するデジタル記録システムのバンド幅効率を改善する方法であって、
当該格納デバイスの空間を一連の分割部分に区分する過程であって、前記一連の分割部分のいくつかのものは、相対的に低いバンド幅のデータストリームを格納するために使われ、前記一連の分割部分のいくつかのものは、相対的に高いバンド幅のデータストリームを格納するために使われる過程と、
データストリームが、低いバンド幅であることが知られているか否かを示す過程と、
低いバンド幅であることが知られているデータストリームが記録中であるときに、低バンド幅割り当てを要求する過程と、
記録中の当該データストリームによって必要とされる実際の平均またはピークのバンド幅をモニタする過程、とを有し、
当該一連の分割部分のそれぞれが、当該格納デバイスに格納されている、メディアファイルシステムが初期化されたときにメモリにロードされる一連のデータ構造と関連付けられている方法。
【請求項１２】
請求項11に記載の方法であって、データストリームが低いバンド幅であることが知られているか否かを示す前記過程が、当該メディアファイルシステムの空間割り当てAPIに含有されているパラメータを用いて遂行されることを特徴とする方法。
【請求項１３】
請求項11に記載の方法であって、さらに、
1つのフラグによって、与えられたディスク領域を、相対的に低いバンド幅の分割部分または相対的に高いバンド幅の分割部分として標識付ける過程を有することを特徴とする方法。
【請求項１４】
請求項13に記載の方法であって、当該フラグが、当該格納デバイスの各特定の分割部分に関連付けられたデータ構造に包含されていることを特徴とする方法。
【請求項１５】
請求項13に記載の方法であって、当該フラグが、特定の領域範囲が当該格納デバイスの相対的に低いバンド幅の分割部分にあることを示す1ビットフラグであることを特徴とする方法。
【請求項１６】
請求項11に記載の方法であって、さらに、
当該データストリームが低バンド幅であるとき、優先的に任意の可用な低バンド幅の分割部分から空間を割り当てる過程を有することを特徴とする方法。
【請求項１７】
請求項16に記載の方法であって、空間が、当該格納デバイスの内径から外側に向けて割り当てられることを特徴とする方法。
【請求項１８】
請求項11に記載の方法であって、さらに、
当該データストリームが高バンド幅であるとき、優先的に任意の可用な高バンド幅の分割部分から空間を割り当てる過程を有することを特徴とする方法。
【請求項１９】
請求項18に記載の方法であって、空間が、当該格納デバイスの外径から内側に向けて割り当てられることを特徴とする方法。
【請求項２０】
請求項11に記載の方法であって、実際のまたはピークのバンド幅をモニタする当該過程が、入力媒体またはネットワークからの実際に到達する速度に基づいて遂行されることを特徴とする方法。
【請求項２１】
請求項11に記載の方法であって、実際のまたはピークのバンド幅をモニタする当該過程が、当該データストリームに埋め込まれているタイムスタンプを追跡することによって遂行されることを特徴とする方法。
【請求項２２】
請求項11に記載の方法であって、さらに、
相対的に高いバンド幅の分割部分に記録された、バンド幅の知られていないデータストリームを、そのピークまたは平均のバンド幅があらかじめ定められた値よりも小さいか否かを決定するために、チェックする過程と、
当該記録されたバンド幅の知られていないデータストリームのピーク又は平均のバンド幅が、予め定められた値よりも小さければ、当該データストリームを相対的に低いバンド幅の分割部分に移動させる過程と、を有することを特徴とする方法。
【請求項２３】
請求項22に記載の方法であって、移動させる当該過程が、
当該データストリームのために当該低バンド幅の分割部分に新しいファイルを作成するサブ過程と、
当該データストリームの内容を再生するサブ過程および当該内容を当該新しいファイルに記録するサブ過程と、
当該内容が当該新しいファイルに記録されると、当該データストリームの元のファイルを消去するサブ過程と、を有することを特徴とする方法。
【請求項２４】
請求項22に記載の方法であって、移動させる当該過程が、読み出し要求および書き込み要求に何らのタイムデッドラインを伴わないバックグラウンドで遂行されることを特徴とする方法。
【請求項２５】
請求項11に記載の方法であって、さらに、
各記録物のピークバンド幅情報をデータベースに蓄える過程を有することを特徴とする方法。
【請求項２６】
請求項1-25のいずれかに記載の1個以上の方法を実行する1個以上のモジュールを有する、格納デバイス内にデータストリームを格納するデジタル記録システムのためのバンド幅要件を動的に管理するシステム。
【請求項２７】
請求項1-25のいずれかに記載の1個以上の方法を実行するように構成されているデジタルビデオレコーダ（DVR）。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的にはデジタルビデオ記録システムに関し、とりわけ、デジタルビデオレコーダのバンド幅管理の方法に関するものである。
【０００２】
【従来の技術】
現行のデジタルビデオレコーダ(DVR)システムは、同時に2つのデジタル−ビデオデータストリームしか処理することができない。通常、このようなシステムは、「1入、1出」("one in, one out")、即ち、デジタルチューナあるいはMPEGエンコーダを持つアナログチューナからシステムに入ってきてディスクに書き込まれる1つのデータストリームと、ハードドライブ(HD)ディスクから読み出された後にMPEGデコーダおよびNTSCエンコーダに供給され、TVセットに表示される、システムから出ていく1つのデータストリームとを扱う。
【０００３】
マルチアナログチューナやマルチデジタルチューナが存在すること、マルチTVセットの表示能力、および、インターネットを介してのストリーミングメディアダウンローディングによって、マルチプルデジタルデータストリームを同時に扱うことのできる次世代DVRが必要とされている。これらのデジタルデータストリームには、タイムクリティカル性（データ転送の定時性）の高いものがある。例えば、記録システムに入ってくるデジタルデータストリームは、なんらの損失あるいはくずれもなしに正確にディスクに記録されなければならない。そうでないと、記録されたプログラムが再生される度毎に、永続的な欠陥が現れるであろう。同様に、ディスクから読み出し中で、TVへの表示のために復号されているデジタルデータストリームは、タイムリーに送り出されなければならない。そうでないと、MPEGデコーダは、スターブ(starve)してしまい、そして、視覚できる欠陥が、画面に現れるであろう。
【０００４】
単一のデジタルデータストリームを流れるデータ量は、広い範囲にまたがる。品質の限られたビデオは、秒当り1-2メガビットしか必要としないであろうが、動きの速い高品質のビデオは、秒当り10から15メガビットを必要とするであろう。次世代テレビジョンシステムは、秒当り19メガビット以上のデータストリームを送り出すであろう。このように多量のデータをハードドライブから移動させたり、ハードドライブに移動させたりするのは、挑戦的なことである。
【０００５】
安価で値打ちの高いIDE HDディスクが、今日、秒当りほぼ6から18メガビットのデータ転送速度に耐える性能を有する。転送速度は、ディスクモデルに応じて変化し、また、データが転送されるディスクの位置によっても変化する。
【０００６】
HDディスクの外側のトラックは、内側のトラックよりも、より高い線データ密度（トラック当り、より多くのセクタ）を持っている。HDディスクは、一定速度で回転するから、したがって、外側のトラックは、内側のトラックよりも、秒当り、より多くのデータを受け取ったり、送り出したりすることができる。代表的なHDディスクは、内側のトラックで秒当り10メガバイトの速度で、外側のトラックで秒当り18メガバイトまでの速度で、データを転送することができる。
【０００７】
転送速度は、単に、ディスク性能の1つの面を示すにすぎない。それらは、ディスクの異なる領域間をシークするためにディスクが必要とするものを反映していない。1操作は、通常、距離に応じて、シーク当り10-25ミリ秒を要する。さらに、それらは、ディスク上のエラー、あるいは、衝撃および振動の効果によって2回以上データセクタを読むためにドライブが時折必要とするものを反映していない。
【０００８】
最後に、DVRのHDディスクは、しばしば、ビデオ内容のデータストリームを単に格納するだけ以上の目的に使用される。ディスクは、今後のプログラムに関する情報、オンスクリーンガイド、および、プログラムスケジューリングを含有するファイルシステムないしデータベースを収容するかもしれない。それは、また、DVRに使用される実行ソフトウェアを収容するかもしれない。したがって、ディスクへのアクセスを要する多数の異なるクライアントが存在し得る。デジタルビデオ書き込みストリームおよびデジタルビデオ読み出しストリームのように、いくつかのアクセスは、決定的にタイムセンシティブである。他のいくつかは、それほど遅延に影響されない。例えば、実行コードあるいはプログラムガイドデータベースへのアクセスを減速させることは、DVRのユーザインターフェイスを緩慢に振舞わせることになるであろうが、システムの誤りや不履行を起すことはないであろう。他のいくつかは、全くタイムクリテカル性を持たず、なんら感知されることなく、かなりの時間量保留され得る。例えば、視聴者に興味のあるであろう番組を捜すバックグラウンドタスクは、保留され得る。
【０００９】
マルチプルデータストリームを同時に扱うときに、デジタル記録システムが、競合するバンド幅要件を動的に軽減することを可能にするメカニズムが、求められている。
【００１０】
【課題を解決するための手段】
本発明は、システムのハードドライブへのデータストリームアクセスを、あらかじめ定められたポリシーに応じて優先順位付けし、かつ、HDディスクの空間を、記録中のデータストリームの性質に応じて割り当てることによって、デジタル記録システムのバンド幅効率を改善する方法を提供する。ポリシーモジュールとメディアデータ管理モジュールとが、ともに記録システムのマスターコントロールプログラムに包含されており、そのポリシーを実行する。ポリシーで考慮すべき事柄には、(1)HDディスクに書き込み中のデータストリームは、HDディスクから読み出し中のデータストリームに優先して優先順位を付けられ、(2) HDディスクから読み出し中のデータストリームは、HDディスクへの他のアクセスに優先して優先順位を付けられる、ということが含まれる。記録システムのバンド幅効率は、相対的に低いバンド幅のデータストリームをHDディスクの相対的に低いバンド幅の分割部分に記録し、相対的に高いバンド幅のデータストリームをHDディスクの相対的に高いバンド幅の分割部分に記録することによって改善される。データストリームは、ディスクの内径から外径へと外側に向かって記録されていく。記録されたデータストリームは、相対的に高いバンド幅の分割部分から相対的に低いバンド幅の分割部分に移動させられることもある。
【００１１】
【発明の実施の形態】
図1には、DVRのバンド幅管理のためのシステム100が図示されている。これは、メディアデータストリームおよび他のデータを格納するハードドライブ(HD)ディスク160、DVRの内部動作を制御するマスターコントロールプログラム110、各データバッファのデッドラインタイムを計算することによってDVRがタイムデッドラインに間に合いそうもないか否かを決定するメディアデータ管理モジュール120と、優先順位付けポリシーを実行するポリシーモジュール130と、特定の期間に渡って、進行中の全データストリームの入力−出力(I/O)要求に対してディスクの総可用時間を測定することによってDVRがタイムデッドラインに間に合いそうもないか否かを決定するディスクドライバ170とを有している。DVRは、（ハードドライブから読み出される）マルチプルアウトプットメディアストリーム140と、（ハードドライブに書き込まれる）マルチプルインプットメディアストリーム150とを同時に扱う。
【００１２】
HDディスク160上の競合するデマンドを均衡させて管理するために、DVRは、収容機能、特定のバンド幅、および、関連状態に対するポリシーを決定しなければならない。これは、また、ディスクバンド幅可用性、バンド幅割り当て、および、ポリシーの実行を決定するメカニズムを持つ必要がある。
【００１３】
第1のポリシーで考慮すべき事柄は、記録中のデータストリーム150の極度のタイムセンシティビティである。ディスクに書き込み中のデータストリームのどの部分が失われても、それは、必ず、記録物内の空白欠陥となるであろう。この空白欠陥を記録後に修復することはできない。したがって、ディスクに書き込み中のデータストリームは、ディスクバンド幅に対して最優先順位を持たなければならない。
【００１４】
第2のポリシーで考慮すべき事柄は、ハードドライブから読み出し中のデータストリーム140の相対的に大きなタイムセンシティビティである。HDディスクからのデータストリームのどの部分が正しいテンポで読み出されなくても、それは、必ず、画面上の視認可能な欠陥、あるいは、聴き取り可能な音声分裂となるであろう。利用者は、いつでも回転を戻して、その内容を再度見ることができ、そして、2度目にはデータを正しく取り出す可能性は十分大であるので、それは、書き込み中にデータが失われるほどには問題にはならない。それでもやはり、この問題は、避けられなければならない。
【００１５】
第3のポリシーで考慮すべき事柄は、HDディスクへのいくつかのアクセス180の最も低いタイムセンシティビティである。それは、いらいらするほど遅くなったり、フリーズアップしたりしない限り、高いディスクバンド幅のデマンドがあるときにユーザインターフェイス(UI)が低速になっても、容認される。
【００１６】
これらのポリシーで考慮すべき事柄に対応して、保留された、あるいは、休止された、あるいは、終結されたアクセスは、バンド幅不足が緩和されるとすぐに再開される。バンド幅効率を最適化するために、これらのアクセスは、ポリシーで考慮すべき事柄に調和してあらかじめ決められた順に再開される。例えば、書き込み中のデータストリーム150は、読み出し中のデータストリーム140に優先して優先順位がつけられ、読み出し中のデータストリーム140は、バックグラウンドで遂行されるであろうタスクのような他のアクセス180に優先して優先順位がつけられる。同一のデータストリーム区分においては、「最も近いデッドラインが最初」(“nearest deadline first”)の優先順位を採用することが出来る。例えば、ディスクから読み出された後保留されているいくつかの保留データストリームのうち、最も近いデッドラインを持つデータストリームが、最初に再開される。
【００１７】
扱われているデータストリームのバンド幅要件を完全に制御することは困難である。いくつかの場合、例えば、MPEGエンコーダを持つアナログチューナの場合、バンド幅要件を、あらかじめ完全に正確に予測することは可能である。いくつかの他の場合、例えば、衛星を経由するデジタルデータの場合、バンド幅要件は、非常に低い値から、ある同定された理論的最大値にまで、ひんぱんにこの全範囲に渡って変化するので、全く予測できない。
【００１８】
非常に広いバンド幅のデータストリームは、相対的にまれである。100％保証された動作で、即ち、理論的に最悪のケースのバンド幅に対して全ストリームをあらかじめ組んで、システムを設計することは可能である。しかしながら、この解決は、ハードドライブおよびストリームの今日の状態では、2ストリームよりも多くのストリームを扱うことはできないに違いない。さらに、この解決は、費用対効果が高くないに違いない。
【００１９】
適切なバンド幅ポリシーを実行することによって、デジタル記録システムは、高いけれども最大平均よりは低いバンド幅を持つマルチプルデータストリームで良好に作動するが、必要とされる実際のバンド幅が、保留することが可能なバンド幅を超えるときには、その動作はかなり後退する。扱われるデータストリームに対して必要なバンド幅の量が総可用量を超えるときには、システムは、記録中のデータが永久的に失われることを防ぐために即座にかつ自動的に反応しなければならない。
【００２０】
短期的には、システムは、ディスクから読み出し中の1つ以上のデータストリームを停止させることによって、ディスクバンド幅の規制を緩やかにするであろう。実際には、これは、再生中のビデオストリームを保留、あるいは、休止、あるいは、終結させて、システムのバンド幅容量が超過してしまっていることを利用者に通知する静止表示を画面上に表すことを意味する。
【００２１】
長期的には、このシステムは、利用者に、過負荷に対応するいくつかの方法に選択を与える。過負荷問題に対応して、利用者は、以下のうちのいずれかをなす必要がある。(1)ビデオを休止させて少し待ち、それから、再生の再開を試みる。妨害の原因が、記録中の高バンド幅ビデオの短時間の突出であれば、今度は、全ストリームを扱うに十分なディスクバンド幅が存在している可能性がある。(2)記録中の1つ以上のストリームを取り消す。(3)ライブにジャンプする。利用者が、記録中のビデオストリームの1つを見ているが、遅延モードでそのストリームを視聴しているときには、その利用者は、プログラムの残りの遅延部分をスキップして、リアルタイムでそのプログラムストリームの視聴をはじめることを選択することができる。リアルタイムでの視聴は、そのストリームがディスクから読み戻されることを必要としない。それどころか、それによって、ディスクに記録中に同時に視聴することが可能となる。これは、実質的に、ディスクアクセスを競合するストリームの数を減少させる。(4)現在のプログラムの視聴を停止して、その代わりに、前に記録された、より低いストリームバンド幅を持ち、したがって、ディスクに、より少ないデマンドしか置かないプログラムを視聴する。ある時点では、利用者が利用可能な他の選択もあり得る。このシステム設計は、新しい動作が加えられることを容認するに十分なほど柔軟性をもつべきである。
【００２２】
DVRが扱わなければならないデータストリームの動的性質のために、ストリームバンド幅の静的な予測は、有用ではない。ディスクバンド幅がまさに使い尽されてしまう状態にあるか否かをはるか前に見定めることは困難である。この不確実さは、データストリームが格納されるであろうディスクの正確な位置を、どんな実際的な正確さを持っても予測することが極めて困難であるということによって、さらに、悪化する。したがって、データが、如何に高速にディスク自体へ、また、ディスク自体から転送されるかを知ることはほとんど不可能である。さらに、読み出し再試行や書き込み再試行、ディスク破損、振動および衝撃などのディスク関連の性能問題を予測することも、ほとんど不可能である。
【００２３】
したがって、動的なストリームバンド幅の管理を採用する必要がある。このような管理は、システムがまさにHDディスクの可用なバンド幅を超えようとしている事実を検知することを可能にするであろう。これは、また、システムが、ディスクに記録中のデータを失うことを避けるに十分なほど速く応答することになろう。基本的には、この管理は、負帰還メカニズムに基づいている。
【００２４】
実際のディスクバンド幅の使用に関する情報を、集め、そして、上述のポリシーを実行するために1つ以上のモジュールに供給することができる。これらのモジュールは、DVRの内部コードに含ませてもよい。DVRのディスクに受信されて記録されているストリーム、あるいは、ディスクから読み戻された後に再生されているストリームは、メディアデータ管理モジュール120、即ち、Media Object Model (MOM)ソフトウェアモジュールを通過する。このモジュールは、バッファ管理と、データを配信および消費するデバイスの監視およびそれへの入力とを担当する。MOMは、PESトリプルなどのデータストリームの内部フォーマットに関する十分な知識を持っており、また、データを保持し、管理するために用いられる種々のバッファの状態にも通じている。MOMは、ディスクに転送されてきた、あるいは、ディスクから転送されていくデータの各バッファに対するデッドラインタイムを推定するためのコードを含有している。言い換えれば、MOMは、データのバッファが入力源から入ってくる新しいデータを保持するために再利用されることができるように、そのバッファがディスクに書き込まれてしまわなければならない時刻、あるいは、データを視認可能あるいは聴き取り可能な欠陥を回避するに十分な速さでMPEGデコーダに供給することができるように、そのバッファをディスクから読み出してしまわなければならない時刻を知っている。
【００２５】
MOMは、この情報を、ポリシーを実行するポリシーモジュール130に報告するように強化させることが出来る。とりわけ、MOMが、そのデッドラインに間に合う時間内にデータを読み出したり書き込んだりするのが困難であると決定すると、言い換えれば、システムが、MOMのデッドラインに間に合いそうにないようであると、MOMは、ポリシーモジュール130に警告イベントを送って、その事実を報告する。デッドラインに実際に間に合わないと、そして、データが失われてしまっていること、あるいは、視認可能な欠陥が発生してしまっていることをMOMが決定すると、MOMは、ポリシーモジュール130に緊急のエラー警報を送って、その事実を報告する。
【００２６】
カーネルディスクドライバとすることが出来るディスクドライバ170は、各ハードドライブの現在の状態について詳細な知識を持っている。現在の実行は、各メディアデータストリームI/O要求とともにデッドラインタイミング情報を受け取る。これは、(1)各デッドラインI/O要求がそのデッドラインの前に完結されるということを保証し、(2)そのI/O要求を遂行するために要されるシーク時間の総量を最小化するために、ディスクへのアクセス順を最適化する。ディスクドライバ170が、I/O要求の全てのデッドライン要求を満足させることが不可能であると決定すると、これは、「緊急モード」("emergency mode")に戻り、「最も近いデッドラインが最初」の順に全デッドライン要求を遂行する。
【００２７】
バンド幅およびデッドライン問題をより効果的に取り扱うために、ディスクドライバ170は、少なくとも2通りに強化可能である。第1に、これは、デッドラインを持つメディアデータストリームI/O要求のために使われるディスクバンド幅の総量を測定することが出来る。これは、このバンド幅を秒当りのメガバイトで測定しようとするのではなく、1/2秒程度の相対的に短い期間でドライブの総可用時間のパーセンテージを測定する。総メディアデータストリームI/O時間が、プログラム可能な閾値を、特定の時間量（例えば1秒）より多く、まさに超えようとする（例えば、90％）と、ディスクドライバ170は、ポリシーモジュール130に警告信号を送る。
【００２８】
第2に、ディスクドライバ170は、デッドラインを満たせないことが不可避な場合、別の内在ポリシーを実行することができる。厳密な「最も近いデッドラインが最初」のポリシーに切り換えるのではなく、ディスクドライバ170は、「書き込みは読み出しより重要」("writes are more important than reads")のポリシーを実行してもよい。これは、データの損失を避けるために、まず、全ての差し迫っているメディア書き込み要求をスケジュール化する。これは、差し迫っているメディア読み出し要求を、次の2つのどちらの仕方で取り扱ってもよい。「最大努力」("best efforts")、即ち、書き込みが完了した後にそれらの要求をスケジュール化し、どうにかしてデッドラインに間に合せることを期待するか、「早期失敗」("early failure")、即ち、MOMがこの問題の一層の徴候を得、かつポリシーモジュール自体に警報を発し得るように、デッドラインを満たせないことが避けられそうにない状態になるやいなや要求を取り消すか、である。
【００２９】
ポリシーモジュール130は、データストリームの再生を停止して、利用者に他の動作の選択を提示する必要がある時であるか否かに関する判定を管理している。ポリシーモジュールは、また、バンド幅が尽きる前に記録システムへの総I/Oロードを軽減するために、別様にも用いることが出来る。とりわけ、高メディアデータストリームI/Oロードの長く続く期間の間に、ポリシーモジュールは、ディスクI/Oバンド幅のかなりの量を使っているシステムバックグラウンドタスクのいくつかを保留するように判定することができる。この種の保留の明らかな対象には、いくつかのものが存在する。例えば、システムのガービジコレクターおよびインデクスビルダーは、それらが既に進行中であれば、延期させるか取り消すことができる。日常的な"Phone the service provider to download updated showcases and/or program guide data"コールは、保留させることが出来る。サジェスションプライオリタイザーは、それらが既に動いていれば、延期させるか取り消すことができる。この種の制御は、適切なポリシーインターフェイスを採用すれば、マスターコントロールプログラム(MCP)110内に存在するバックグラウンドタスクスーパーバイザーによって遂行させることが出来る。
【００３０】
図2は、相対的に低いバンド幅の分割部分220と相対的に高いバンド幅の分割部分210とに区分された代表的な輪形状のディスクの典型的なグラフィックダイアグラムを示している。ディスクの高速にデータを転送する能力は、ディスクのどの部分が使われているかにかなりの程度依存している。それぞれの盤の内側部分は、外側部分よりもトラック当りのセクタ数が少ないので、任意の与えられたデータ量を転送するのに、より多くの時間を必要とする。したがって、記録システムの高バンド幅ストリームを効果的に転送する能力は、高バンド幅ストリームが基本的に盤の外側部分に書き込まれることを保証することができれば、改善させることが出来る。
【００３１】
与えられたデータストリームのバンド幅が実際にどの程度高くなるかをあらかじめ知ることは、常に可能なわけではない。言い換えれば、与えられたデータストリームのバンド幅に関するデータを入手できないことは、しばしば、ある。しかしながら、多くの場合、「事後」("after the fact")アプローチが、システムバンド幅効率を改善するために採用され得る。
【００３２】
このアプローチは、以下の過程を有している。
1.  ディスクのメディア格納部を、異なる目的に用いられる一連の区画に分割すること。例えば、格納部は、2つのメディア区画、即ち、相対的に低いバンド幅の分割部分220と相対的に高いバンド幅の分割部分210と、に分割される。相対的に低いバンド幅の分割部分220は、内径(ID)230から出発して、相対的に低いバンド幅ストリームを格納する。相対的に高いバンド幅の分割部分210は、相対的に高いバンド幅ストリームを格納して、外径(OD)240で終わる。さらに、与えられた区画に、相対的に低いバンド幅であるか相対的に高いバンド幅であるかを示すフラグをたてることが必要である。これは、データベースの区画テーブル内の予備ビットの1つを用いて行うことが出来る。バンド幅フラグは、システムが初期化されるとき、メディアファイルシステム(MFS)の領域データ構造に移動される。
【００３３】
一実施例の場合、ディスクは、2つの区画をMFSに専用に割当てる。各区画内で、MFSは、MFSが扱う様式に特有である目的のために1つ以上の領域を備える。1つの区画に、MFSは、データファイルのiノード("inodes")（即ち、各ファイルまたはデレクトリの基本記載）とコンテンツ−これは、2つの領域を構成する−を備える。他の区画に、MFSは、ビデオ記録を保持する単一の領域を備える。各領域に連係して一連のデータ構造があり、これらは、ディスク（通常、領域範囲の先頭）に格納されており、システムが立ち上げられるときにメモリにロードされる。これらのデータ構造は、領域がどのくらいの大きさか（即ち、その中にどのくらい多くのデータセクタがあるか）ということ、領域の割り当てブロックサイズの大きさ（例えば、要求されている各タイムスペースに割り当てられるセクタの数）、および、自由な（可用な）あるいは（ファイルや記録に当てがわれて）使用されている割り当てブロックを同定する一連のビットマップ("bitmaps")を、MFSソフトウェアに伝える。バンド幅フラグは、「この領域は、ディスクの相対的に低速な分割部分にある」ということを伝える1ビットフラグである。このフラグは、インメモリ領域データ構造に加えられる。
【００３４】
2.  データストリームが低バンド幅であることが知られているか否かを示す追加パラメータを受け入れるように、MFS空間割り当てAPIを拡張すること。低バンド幅フラグが据えられると、空間は、優先的に任意の可用な低バンド幅区画250から、即ち、内径から外径へと外方に向かって、割り当てられる。低バンド幅フラグが据えられないと、空間は、高バンド幅区画から、即ち、外径から内径へと内方に向かって、割り当てられる。どちらの場合にも、全データストリームがどちらかの型の区画に落ちるということをシステムは保証しないから、空間は、どれかの区画内に可用になったときに、データストリームに割り当てられる。
【００３５】
低バンド幅であることが知られているストリームがディスクに記録されているときに、低バンド幅割り当てを要求すること。これは、MyWorld、あるいは、ele2pestriple、あるいは、MFSストリームファイルを生成し、それが低バンド幅フラグを据えるもの如何なるもの、により行うことが出来る。MFSストリームファイルは、ディスク上のファイルにMPEG-2音声データおよびビデオデータを格納する1つの方法である。各ストリームファイルは、一連の「レコード」("records")を有している。レコードは、かなり多数のディスクデータセクタ（典型的にはレコード当り256セクタ、ないし、128kバイト）を有している。各レコードは、最初のセクタに、そのレコードに格納されている音声データあるいはビデオデータの各ピースの位置、型、大きさを同定するあるヘッダ情報を持っている。MFSストリームファイルは、例えば、最初のレコードから最後のレコードへというように、常に順次的に書き込まれる。通常再生を通じて、それは、順次読み出される。それは、例えば、早送りおよび回転戻し動作により、順方向に、あるいは、逆方向に飛ばし読みされながら、ランダムに読み出される。
【００３６】
4.  バンド幅の知られていないデータストリームがディスクに記録されているときには、MyWorldあるいはそれと類似のものは、低バンド幅フラグを据えないであろう。したがって、そのデータストリームは、ハードドライブの高バンド幅の分割部分に記録される。
【００３７】
5.  記録処理を通じて、データストリームによって必要とされる実際の平均バンド幅あるいはピークバンド幅をモニターすること。これは、入力媒体あるいはネットワークからの実際のデータ到着速度に基づいて、ハードドライブにデータストリームを書き込むためのソフトウェアを用いて遂行されるであろうが、恐らく、データストリーム自体に埋め込まれているタイムスタンプを追跡することによって、よりよく遂行されるであろう。
【００３８】
6.  バンド幅の知られていないデータストリームが完全に記録された後はいつでも、記録ソフトウェアが、記録物のピークバンド幅あるいは平均バンド幅があらかじめ定められた値よりも低いか否かを、チェックしかつ決定する。イエスであれば、記録ソフトウェアは、ディスクの相対的に低いバンド幅の分割部分に、このデータストリームを移動させる方を選ぶ。これは、低いバンド幅の分割部分に、このデータストリームのための新しいファイルをつくり、このデータストリームの内容を再生し、それをこの新しいファイルに記録することによってなされる。このデータストリームの内容がこの新しいファイルにコピーされるとすぐに、このデータストリームの元のファイルが消去される。この処理は、読み出し要求および書き込み要求に何らのデッドラインタイムを伴うことなく、バックグラウンドで行うことが出来る。したがって、これは、ほかの場合には使われない任意のディスクバンド幅を用いることができ、記録中あるいは再生中の他のデータストリームのデッドラインを伴うI/O要求に大きく妨害を与えることはない。
【００３９】
このアプローチは、高バンド幅に終わり勝ちになり、「貪欲な」("greedy")データストリームが、再生中に高速にデータを配送できるディスクの最上の部分を占めることになる。各記録物における平均および／またはピークバンド幅情報は、システムのデータベースに格納される。これは、リアルタイムバンド幅デマンドが既に過剰になっているときに利用者が高バンド幅記録物を再生しようとした場合、システムが、その利用者に早期の警告を与えることを可能にする。
【００４０】
本発明は、本明細書において好ましい実施例を参照して記載されているが、当業者が、本発明の精神と視野から逸脱することなく本明細書に説明された出願を他の出願に代えることは容易なことであると理解されるべきである。
【００４１】
したがって、本発明は、請求項でのみ限定されなければならない。
【図面の簡単な説明】
【図１】DVRがバンド幅を使い切っているか否かを決定する処理を図示しているブロック図である。
【図２】メディアストリームが、低いバンド幅の分割部分（即ち、内径）から高いバンド幅の分割部分（即ち、外径）へと外方に向けてVCRのHDディスクに記録されることを示す、典型的なグラフィックダイアグラムである。
【符号の説明】
110  マスターコントロールプログラム
120  メディアデータ管理モジュール
130  ポリシーモジュール
140  読み出し中のデータストリーム
150  書き込み中のデータストリーム
160  ハードドライブ
170  ディスクドライバ
210  相対的に高いバンド幅の分割部分
220  相対的に低いバンド幅の分割部分
230  内径
240  外径
【図１】
0004699672.tif 000002
【図２】
0004699672.tif 000003