本原理は、記憶媒体にデータを書き込むためのシステム及び方法を提供する。上述のように、記憶媒体へのデータ書き込みに関する一般的な問題はデータ構造の破損である。データ破損の1つの深刻な形態には、記憶媒体上のセクタへのデータ書き込み処理の中断時に発生する書き継ぎ(write-splice)が含まれる。中断は、電源の故障、プロセッサのフリーズ、又は書き込み処理の完了を阻止するその他の事象の結果として生じ得る。書き継ぎは、セクタの先頭に新たなデータが書き込まれ且つ該セクタの末尾に古いチェックサム(セクタ内にエラーがないことを確認するために用いられるセクタ内の全てのビットの和)を有する古いデータが残存しているセクタによって特徴付けられ得る。書き継ぎエラーは検出されることもあるし検出されないこともあり、例え検出されたとしても、書き継ぎを補正するために記憶媒体の再フォーマットを必要とすることで、全ての記録データの喪失をもたらし得る。ハードディスクドライブシステムにおいて、書き継ぎエラーは、しばしばエラーコードを返すこともできないマウント故障又はファイルシステム容量のハンギングを引き起こし得る。従って、書き継ぎエラーは一般に全ての記録データの喪失をもたらすので、それを回避するために幾つかの手法が開発されてきた。
書き継ぎを解決するための手法には、同期書き込み法、書き込み順序を変更するもの、及び様々な形態のジャーナリングが含まれる。上述のように、ジャーナリングは、記憶媒体プラッタへの変更が行われる前に、それら変更の記録を取ることを伴い得る。変更のジャーナルは、データを書き込むのと同一の記憶媒体に含められることもあるし、全く異なる記憶媒体に含められることもある。多くのジャーナリングファイルシステムにおいて、ジャーナルは、データが最終的に書き込まれるのと同一の記憶媒体上のリングバッファに格納される。電源の故障又はプロセッサのフリーズ等の結果として書き込み処理が中断すると、システムの復元を実行するために、変更のジャーナルが参照され得る。例えば、中断されたプラッタへの書き込みを完了することによって書き継ぎを補正するために、ジャーナルが再生され得る。また、ジャーナル自体への書き込みが中断され、不完全である場合、ジャーナリングされた変更は再生されず、メインプラッタのデータ構造のインテグリティは同様に損傷されない。
書き込み処理の中断の後にファイルシステムの復元を可能にするため、変更のジャーナルは記憶媒体上のファイルシステムの状態を正確に反映すべきである。具体的には、ジャーナルはメインプラッタに書き込みが実行された順序、及び/又は書き込みが行われた時間を正確に含むべきである。復元はジャーナル内に記録された変更を再生することを必要とするので、ジャーナリングファイルシステムは記憶装置の記録状態が正確であることに依存し、変更を再生することに先立って、ジャーナリングファイルシステムは特定の書き込みが実行されたこと又は実行されなかったことをジャーナルに基づいて推定する。故に、ジャーナルに記録された書き込みの順序及び/又は書き込みの実行が完了した時間が不正確な場合、ジャーナリングされた変更の再生は、書き継ぎエラーに関する問題と同様の問題を招くデータ破損をもたらし得る。
従って、上述のように、多くのジャーナリングファイルシステムはキャッシュシステムの無効化を必要とする。キャッシュシステムはしばしば、上述のように、書き込み処理を実行するときに記憶媒体上の領域同士の間の距離が大きくなることを回避するために、書き込みコマンドの順序に一致しないように書き込み処理の順序を変更する。故に、書き込み処理はしばしば、マウント又はその他の書き込み手段が効率的に記憶媒体を走査するように、データを書き込むセクタの位置に従って順序付けられる。また、現行のハードディスクドライブ・ファームウェアにおいては、例えハードディスクプラッタへのデータの書き込みが完了していなくても、ハードディスクキャッシュにデータを書き込むと、書き込み処理の完了状態が返される。キャッシュシステムのこれらの特徴は、ジャーナリングファイルシステムの正確なジャーナルへの依存性のため、書き込み処理の中断から復元するジャーナリングファイルシステムの能力を妨害し得る。
本原理の態様は、ジャーナリング機能によって可能にされるシステム復元能力に加えて読み出し及び書き込みの効率性を提供するようキャッシュを統合したジャーナリングファイルシステムを含む。ここでは本原理の実施形態をビデオ録画再生装置(personal video recorder;PVR)に関して説明するが、理解されるように、本原理の態様はPVR用途に限定されるものではない。
ここでは、幾つもの図を通して同様の参照符号が同様あるいは同一の要素を指し示す図面を参照する。先ず、図1を参照して、本原理の態様を実現する典型的な一例に係るPVR100を説明する。PVR100はプロセッサ116及び記憶媒体124を含み得る。記憶媒体124は、これに限られないが、ハードディスクドライブとすることができ、ジャーナルデータと、データ書き込みコマンドに従って書き込まれるデータとの双方を格納するために使用され得る。しかしながら、上述のように、他の実施形態においては、ジャーナルデータは、書き込みコマンドに従ってデータが書き込まれる記憶媒体とは完全に別個の記憶機構に格納されてもよい。中央処理ユニット116は、例えば、ブロードコム社(Broadcom(登録商標))から市販されているBCM7078C2チップを有し得る。BCM7078C2チップは、300MHzの64ビットCPUを内蔵した2チャンネルHDビデオ/オーディオ/グラフィックス・デジタルビデオ録画再生チップであり、デジタルビデオ録画再生装置に用いられる一般的なプロセッサである。
本原理の一実施形態において、衛星技術回路を介して受信したMPEG−4圧縮フォーマットのオーディオ/ビデオデータパケットは、ストリーム112によってCPU116に伝送され得る。例えば、チューナ104が適当な周波数に同調してデータパケットを受信し得る。さらに、復調器108が同期的にチューナからの出力信号を復調し、オーディオ/ビデオデータパケットをストリーム112によってCPU116に供給し得る。その後、復号器120を用いることによってオーディオ/ビデオデータは伸張され得る。復号器120は、やはりブロードコム社から市販されているBCM7411COデコーダとしてもよい。BCM7411COデコーダはMPEG−4ビデオストリームに対応している。しかしながら、理解されるように、オーディオ/ビデオデータは、例えばMPEG−2といった技術的に知られた如何なるフォーマットであってもよく、また、例えばケーブルテレビジョン伝送などのその他の手段によって受信されてもよい。CPU116は、好適なソフトウェア及びハードウェアによって構成されることができ、オーディオ/ビデオデータストリームにてオーディオ/ビジュアルデータを受信すると、後述の方法の段階群を実行する。
例えばパーソナルコンピュータ等の標準的な計算装置とは異なる一部のPVRの態様は、例えば、オーディオ/ビデオデータの読み出し及び書き込みに関して一定の時間的制約を含んでいる。そのようなPVRシステム、又は一定の時間的制約の下で動作する何らかのその他のシステムが、一定の時間内にトランザクションを完了しない場合、PVRはプレゼンテーションの次の部分に移行し、未完了のトランザクションに関する情報は喪失あるいは廃棄され得る。この制約は、プレゼンテーションの可能な限り多くを適時に表示することが望ましいことによるものである。故に、オーディオ又はビデオのデータが過度に遅く到着するとき、PVR録画再生システムが正常に動作しなくなることを防止するため、該データは廃棄される。従って、一定の時間的制約の下で動作する例えばPVR等のシステムにおいては、情報の喪失を防止するために、キャッシュによって提供されるデータの迅速な読み出しが望まれる。
標準的な計算装置とは異なる一部のPVRの他の一観点は、PVRは一般的に、ユーザが電気プラグをコンセントから抜くこと又は停電を受けて電源切断されるとき、適切なオペレーションシステム・シャットダウンシーケンスを実行しないことである。標準的な計算装置においては、ハードディスクドライブは一般的に、シャットダウンのためのコマンドを与えられるので、キャッシュからプラッタへデータを流す(フラッシュする)のに十分な時間が与えられ、また、読み出し/書き込みヘッドが安全区域で停止することが可能になり、これらは何れもデータ破損及びデータ喪失を防止する。様々なPVR設計は、初期電源異常(early power fail)ルーティンを設けることによって突然の電源切断問題を解決してきた。EPFルーティンは、電源断の後にPVRシステム内に残存する電流を利用する。この電流は、およそ10ms−40msにわたってPVRを動作させ続けることを可能にし得る。この残存電流を用いて、一部のEPFルーティンは、キャッシュをフラッシュし且つ制御されたヘッド停止を実行することを試みる。一般的に、このようなEPFルーティンはしばしば、残存電流の消失前にキャッシュのフラッシュを完了することに失敗する。故に、電力が消失するとき、一般的にこれらのEPFルーティンはメインプラッタにデータを書き込むようPVRドライブに指示し、それにより、書き継ぎエラー、データ喪失、及び非制御的なヘッド停止がもたらされる。
本原理の一態様に従って、EPFルーティンに、現時のセクタ書き込み(システムが書き込みを行うとき)を完了し、キャッシュ内の如何なる更なるデータをも廃棄し、そして制御されたヘッド停止を実行する特別なシャットダウンコマンドシーケンスが組み込まれる。書き継ぎエラーよりはデータの喪失の方が好ましいことがしばしばある。上述のように、書き継ぎエラーはしばしば、ディスクの再フォーマットを要求し、全ての記録データの喪失を伴う。また、PVRは、例えばパーソナルコンピュータ等の一部の標準的な計算装置より、ユーザデータの喪失に対して高い許容度を有する。PVRのユーザデータは通常、オーディオ/ビデオプレゼンテーションデータを有し、少数フレームの喪失は一般的に、プレゼンテーション全体には最小限の影響しか及ぼさない。
EPFルーティンは書き継ぎエラーを低減し得るものであるが、EPFルーティンを用いても、ファイルシステムの破損は完全には防止されない。本発明の他の一態様によれば、キャッシュシステムと統合されたジャーナリングファイルシステムを用いて、データ破損が防止され、且つ読み出し及び書き込みの効率性が提供され得る。上述のように、ジャーナリングファイルシステムは一般的にキャッシュシステムと相性が悪い。本原理の一態様に従ったジャーナリングファイルシステムは、より十分に後述するクリティカル(critical)データと非クリティカル(non-critical)データとを区別することによって、この相性の悪さを克服する。クリティカルデータは、破損された場合にファイルシステムのインテグリティに直接的に影響を及ぼす傾向にあり且つファイルシステムの動作を無能化してしまう可能性を有するデータとして特徴付けられ得る。また、クリティカルデータはユーザ及び/又はシステムパラメータによってアクセスされ且つ変更され、然るべく調整され得る。非クリティカルデータは、その破損がシステムのインテグリティに対して比較的危害が少ないデータを含み得る。本原理の一態様によれば、クリティカルデータをメインプラッタに書き込むとき、キャッシュは迂回される。この態様は、クリティカルデータをプラッタに書き込む順序がプラッタへの複数の書き込みのジャーナリングされた書き込み順序に一致するため、クリティカルデータに関するジャーナリングされたシステム状態が正確であることを保証する。故に、書き込み処理の中断を受けてジャーナルが再生されるとき、ファイルシステムは上述の正確なジャーナルを参照することによって適切な復元を行い、それによりクリティカルデータに関するデータ破損を防止し得る。
非クリティカルデータを書き込むことに関しては、本原理の他の一態様に従って、読み出し及び書き込みの効率性を実現するためにキャッシュが使用される。より十分に後述するように、非クリティカルデータの破損の影響が比較的危害の小さいものであるため、キャッシュの使用により生じる如何なる潜在的な破損の悪影響も最小になる。さらに、より十分に後述するように、非クリティカルデータの書き込みは、メインプラッタへの全書き込みのうちの実質的に大きい部分を有する。故に、クリティカルデータを書き込むときにキャッシュを迂回することの、全体としてのシステムの書き込み効率への影響は、比較的小さい。従って、本原理の態様は、キャッシュシステムをジャーナリングファイルシステムと有利に統合し、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込みの機構との双方を提供する。
図2を参照して、本原理の態様に従った一典型例に係るシステム200を提示する。システム200は、ファイルシステム制御モジュール204とコマンド生成器208とを有するジャーナリングファイルシステム202を含んでいる。ファイルシステム制御モジュール204は、記憶媒体に格納されたファイルシステム202内のデータの編成の受信及び制御を行い得る。また、ファイルシステム制御モジュール204は、コマンド生成器208を用いて、ジャーナル216、キャッシュ220及びメインプラッタ224のうちの何れか1つにデータを書き込むためのコマンドを生成する。ジャーナル216、キャッシュ220及びメインプラッタ224は、同一の記憶装置に含まれていてもよいし、異なる複数の記憶装置に含まれていてもよい。システム200はまた、記憶装置上でデータ書き込みコマンドを処理し、実行する記憶装置制御モジュール212を含んでいる。ここで紹介した図2のシステム要素については、本原理の態様の方法の実施形態を参照して、より十分に後述する。
なお、図面に示した様々な要素の機能は、専用ハードウェアを使用することのほかに、適当なソフトウェアと連係してソフトウェアを実行することが可能なハードウェアを使用することによっても実現され得る。プロセッサによって実現されるとき、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、あるいは、一部が共有されてもよい複数の個別のプロセッサによって実現され得る。また、用語“プロセッサ”又は“コントローラ”の明示的な使用は、ソフトウェアを実行することが可能なハードウェアのみを意味すると解されるべきでなく、限定することなく、デジタル信号プロセッサ(“DSP”)ハードウェア、ソフトウェアを格納する読み出し専用メモリ(“ROM”)、ランダムアクセスメモリ(“RAM”)、及び不揮発性記憶装置をも暗に含み得る。また、発明の原理、態様及び実施形態、並びにその特定の実施例を記載するここでの全ての記述は、その構造的な均等物及び機能的な均等物の何れをも包含するものである。さらに、そのような均等物は、現在既知の均等物と将来開発される均等物(すなわち、構造に拘わらず、同一の機能を実行するような何らかの開発される要素)との双方を含むものである。
故に、例えば、当業者に認識されるように、ここで提示するブロック図は、発明の原理を具現化する例示的なシステム要素及び/又は回路の概念図を表すものである。同様に、認識されるように、何れのフローチャート、フロー図、状態遷移図、擬似コード、及びこれらの類するものも、コンピュータ読み取り可能媒体内に実質的に表され、そして、コンピュータ又はプロセッサが明示的に示されていようとなかろうと、コンピュータ又はプロセッサによって実行され得る様々な処理を表すものである。
引き続き図2を参照しながら図3を参照し、本原理の態様に従ったデータ書き込み方法にて用いられる典型的なジャーナリングファイルシステム処理の実施形態を説明する。ジャーナリングファイルシステム処理方法300は、ステップ304にて、データを受信することによって開始し得る。データは、図1のPVRシステムに関連して上述したように、例えばMPEG−4フォーマットの、パケットとしてファイルシステム202によって受信され得る。続いて、ステップ308にて、データはファイルシステム202で処理され得る。このとき、ファイルシステム制御モジュール204は、データが、例えばハードディスクドライブを有し得る記憶装置のメインプラッタ224に書き込まれることを決定し得る。その後、ステップ312にて、このデータのメタデータがファイルシステム制御モジュール204によって生成され得る。
方法300はまた、記憶装置のプラッタへの変更を、ジャーナル又はログ216内に記録(ジャーナリング)することを有していてもよい。例えば、ファイルシステム制御モジュール204は、コマンド生成器208を用いて、記憶装置への変更をジャーナリングするためのコマンドを生成してもよい。変更はメインプラッタ224にデータを書き込むことを含んでいてもよく、ステップ316にて、メインプラッタ書き込みに関するデータ書き込みコマンドがログ又はジャーナル216内にジャーナリングされてもよい。記憶装置制御モジュール212は、ファイルシステム202から受信したコマンドに従ってジャーナルに書き込むことによって、プラッタ書き込みコマンドをジャーナリングし得る。また、上述のように、ジャーナル又はログ216は、記憶装置のリングバッファに格納されてもよいし、全く別の記憶媒体に格納されてもよい。さらに、特定の実施形態において、ジャーナル216は書き込まれるべき実際のデータを含んでいてもよい。
データ書き込みコマンドをジャーナリングすると、本原理の態様に従って、ステップ320にて、ファイルシステム制御モジュール212は、該データ書き込みコマンドがクリティカルデータ又は非クリティカルデータの何れを書き込むものに相当するかを決定する。非クリティカルデータは、例えばオーディオ−ビデオデータ、テキスト、及び他のアプリケーション情報など、ユーザファイルを含み得る。上述のように、オーディオ−ビデオデータやその他のユーザデータの喪失は、しばしば、PVRシステムにおいて最小限の悪影響を有するのみである。クリティカルデータはメタデータを含み得る。メタデータは、ユーザデータファイルの発見や、内部保全(すなわち、オーディオデータ及びビデオデータではなくファイルシステムの状態又は維持を対象にするデータ)のためにファイルシステム自体が用いる隠し情報又は非隠し情報の何れかを含み得る。
データ書き込みコマンドがクリティカルデータに対応していると決定された場合、ステップ324にて、本原理の態様に従ったコマンド生成器208はクリティカルデータ書き込みコマンドを生成する。同様に、データ書き込みコマンドが非クリティカルデータに対応していると決定された場合、ステップ328にて、本原理の態様に従ったコマンド生成器208は非クリティカルデータ書き込みコマンドを生成する。クリティカルデータ書き込みコマンド及び非クリティカルデータ書き込みコマンドについては、記憶装置コマンド処理の実施形態の説明に関連して、より十分に後述する。
引き続き図2を参照しながら図4を参照し、本原理の態様に従ったデータ書き込み方法にて用いられる典型的な記憶装置コマンド処理ルーティン400を説明する。記憶装置コマンド処理ルーティンは、ステップ414にて、記憶装置制御モジュール212がコマンド生成器208からのコマンドを受信することによって開始し得る。そして、ステップ408にて、記憶装置制御モジュール212は、該コマンドがクリティカルデータ又は非クリティカルデータの何れを書き込むためのコマンドであるかを決定する。データ書き込みコマンドがクリティカルデータを書き込むためのコマンドであると決定されると、ステップ412にて、記憶装置制御モジュール212は、キャッシュ220への書き込みを迂回して、直接的にクリティカルデータをプラッタ224に書き込む。上述のように、キャッシュ220を迂回することは、ジャーナリングされた記憶装置状態がクリティカルデータに関して正確であることを保証する。例えば、クリティカルデータのプラッタへの直接的な書き込みは、プラッタへの複数の書き込みの書き込み順序が、プラッタへの複数の書き込みのジャーナリングされた書き込み順序と一致することを確実にし得る。
クリティカルデータをプラッタ224に書き込んだ後、ステップ416にて、記憶装置制御モジュール212はジャーナリングファイルシステム202に、書き込み完了を指し示すもの(以下、書き込み完了指示)を提供する。書き込み完了指示は、データがプラッタに書き込まれた時間をジャーナリングファイルシステム202が正確に反映していることを保証する。正確なジャーナルは、上述のように、ファイルシステム202がデータ書き込み処理の中断から適切に復元されることを可能にする。また、キャッシュ220を迂回することは、より多くのキャッシュ空間をユーザデータに提供し、ひいては、上述のようにデータのより効率的な読み出しを可能にするという更なる利点を含む。また、本原理の他の一態様によれば、システム200は必要に応じて、データの効率的な読み出しを可能にするために、クリティカルデータをプラッタ224に書き込んだ後に該クリティカルデータをキャッシュに書き込んでもよい。例えば、ファイルシステム制御モジュール204は、コマンド生成器208を用いて、クリティカルデータがプラッタ224に書き込まれた後に該クリティカルデータをキャッシュ220に書き込むためのコマンドを発し得る。そして、記憶装置制御モジュール212は、該クリティカルデータをメインプラッタ224に書き込んだ後に、該クリティカルデータをキャッシュ220に書き込む。
データ書き込みコマンドが非クリティカルデータを書き込むためのコマンドであると決定されると、ステップ420にて、記憶装置制御モジュール212は非クリティカルデータをキャッシュ220に書き込む。その後、キャッシュされたデータに対応する書き込み処理に関してプラッタ224の準備が整ったことがステップ424にて決定された後、ステップ428にて、記憶装置制御モジュール212は非クリティカルデータを記憶装置のメインプラッタ224に書き込む。上述のように、キャッシュを用いるとき、プラッタに書き込まれるデータはしばしば、書き込みの効率性を提供するために、元々の書き込みコマンドと一致しない順序で書き込まれる。また、上述のように、キャッシュの小さいサイズのために、データはキャッシュから比較的高速に読み出され得る。データをプラッタ224に書き込んだ後、ステップ416にて、記憶装置制御モジュール212はジャーナリングファイルシステム202に書き込み完了指示を提供する。方法300及び400は、ファイルシステムによって新たなデータ又は異なるデータが受信されたとき、必要に応じて繰り返される。
上述のように、ジャーナリングファイルシステムは、記憶装置上でのデータの破損を防止するために用いられ得る。ジャーナリングファイルシステムの一態様は、書き込み処理の中断の結果として損傷された破損セクタを修復するために記録を取られた(ロギングされた)コマンドを再生することを含む。引き続き図2を参照しながら図5を参照し、本原理の一態様に従ったジャーナリングファイルシステム202を用いることによって少なくとも1つの破損セクタを修復する方法500を説明する。この方法は、電源異常後に、ステップ504にて、プロセッサとデータを書き込む記憶媒体とを起動することによって開始し得る。しかしながら、この方法は、例えば、プロセッサのフリーズ又は書き込み中断のその他の原因の後の通常処理の復旧を受けて開始してもよい。中断及び通常処理の再開の後、ステップ508にて、ファイルシステム制御モジュール204はコマンドのジャーナル216にアクセスする。その後、ステップ512にて、ファイルシステム制御モジュール204は、ジャーナル216内のロギングされたコマンドを再生すべきかを決定する。上述のように、ロギングされたコマンドは、中断されたプラッタへの書き込みを完了するために再生される。ファイルシステムは、プラッタへの書き込みが中断されたことを決定した後、ステップ516にて、ジャーナリングされたコマンドを実行する。例えば、ファイルシステム制御モジュール204は、プラッタへの書き込みが中断されたとの決定を受け、コマンド生成器208を用いて、ジャーナル216内にロギングされたコマンドと一致するコマンドを生成し得る。加えて、記憶装置制御モジュール212は、データをメインプラッタ224に書き込むこと又はジャーナル216と一致する何らかのその他の変更を加えることによってコマンドを実行する。ファイルシステム制御モジュール204が、プラッタへの書き込み処理ではなく、ジャーナルへの書き込み処理が中断されたことを決定した場合、ステップ520にて、ジャーナリングされたコマンドは廃棄される。上述のように、ジャーナリングファイルシステムをこのように用いることにより、メインプラッタのデータ構造のインテグリティが保証される。理解されるように、方法300、400及び500はシステム200を参照して説明されたが、これらの方法は本原理の他の態様に従った他の手段によって実行されてもよい。
本原理の態様に従ったジャーナリングファイルシステムのキャッシュシステムとの統合は、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込み機構との双方を提供する。上述のように、ジャーナリングファイルシステムにおけるクリティカルデータ書き込みに関してキャッシュを迂回することは、該データの破損を防止する。例えばメタデータ等のクリティカルデータの破損は、非クリティカル書き込みに関連するデータの破損より、比較的大きいダメージをファイルシステムに与える傾向にある。上述のように、メタデータは、ユーザデータを発見するためや内部保全を実行するためにファイルシステムが利用する情報を含んでおり、その破損はユーザデータの破損と比較して大きい悪影響を有する。データがクリティカルなものであるか非クリティカルなものであるかがプロセッサによって決定され、その決定は、例えばビデオ録画システム等のシステムの特定のアプリケーションに基づいてプログラムされ得る。ユーザデータの破損は一般的に、破損されたユーザデータの部分に限られるが、メタデータの破損は、破損されたメタデータに加えて、データのその他の部分にも悪影響を及ぼし得る。故に、キャッシュの使用の結果としてユーザデータの破損が生じ得るものの、その悪影響は最小限である。従って、本原理の態様に従ったジャーナリングファイルシステムは、キャッシュの利用に拘わらず、ファイルシステムの破損に対する堅牢な保護を提供する。
また、本原理の利点は、PVRシステムにおいて特に明白である。PVRシステムにおいては、例えば符号化、暗号化されたオーディオ/ビデオ情報などの非クリティカルデータの破損は、クリティカルデータの破損より遙かに小さい害しか及ぼさない傾向にある。オーディオ/ビジュアル情報を含む記憶媒体の損傷セクタは、プレゼンテーションにおいて小さい異常として現れるのみであるが、破損されたメタデータはファイルシステム自体を無能化する一層大きい可能性を有する傾向にある。
ファイルシステムの破損に対する実質的な保護を提供することに加えて、本原理の態様は、非クリティカルデータに対するキャッシュの使用によって、効率的な読み出し及び書き込み能力をも提供する。例えばメタデータ等のクリティカルデータは典型的に、全てのデータ書き込み処理のうちの約10%未満を有するのみであるが、例えばユーザデータ等の非クリティカルデータは典型的に、全てのデータ書き込み処理のうちの約90%より多くを有する。故に、クリティカルデータは書き込みのうちの比較的小さい容量を有するのみであるので、クリティカルデータの書き込みの場合にキャッシュを迂回することは、キャッシュによって提供される読み出し及び書き込みに対して小さい影響を有するのみである。従って、本原理の態様は、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込み機構との双方を提供するように、キャッシュシステムをジャーナリングファイルシステムと有利に統合する。
上述の本原理の態様を実現するために用いられ得るジャーナリングファイルシステムは、例えば、XFS及びEXT3FSを含み得る。PVRアプリケーションに関するXFS等のファイルシステムの有利な特徴は、オーディオ−ビジュアルデータの多重ストリームの効率的な書き込みを提供することができることを含む。XFS等のファイルシステムは、比較的大きい部分内で記憶空間が割り当てられる“リアルタイム”パーティション機能を有し、アプリケーションに複雑性を加えることなく記憶装置のスループットのほぼ100%が実現される。対照的に、デスクトップ・時分割ファイルシステムは、一般的に、書き込まれる通りにファイルの記憶空間の小さい部分を割り当てるため、比較的乏しいスループットで部分最適的にインターリーブされたストリームをもたらす。
また、本原理の態様を実現するために使用され得るプログラムインタフェース仕様はATA7を含む。ATA7は、自己監視・分析・報告技術(Self-Monitoring,Analysis,and Reporting Technology;SMART)機能、強制ユニットアクセス(Forced Unit Access;FUA)機能、及び時限コマンドを有し、これらの各々はPVRにとりわけ適合し得る。例えば、SMART機能は、記憶装置の動作状態を決定すること、記憶装置の温度監視のためにファイルシステムによって使用され得る。また、SMART機能はハードディスクドライブ記憶装置における目先のディスクドライブ故障を予測するために使用されてもよい。
FUAコマンドは、キャッシングが有効にされた場合であってもコマンドの完了前に装置媒体に、あるいは装置媒体からユニットデータが転送されることを確実にする。故に、FUAコマンドは、キャッシュを迂回する、あるいはほぼ迂回する書き込み要求を実現する。本原理の態様に従ったジャーナリングファイルシステムは、FUAコマンドを用いて、より重要性の低いデータの書き込みに目につく影響を及ぼすことなくクリティカルデータを首尾良く書き込むことができる可能性を高めてもよい。例えば、FUAコマンドは、より重要性の低いデータに伝統的な書き込みコマンドを用い続けながら、本原理の態様に従って例えばファイルシステムのメタデータ等のクリティカルデータのプラッタへの直接的な書き込みを実行するために用いられてもよい。
また、ATA7に含まれる時限コマンドのセットが、PVRシステムの一定の時間的制約を設けるために用いられてもよい。上述のように、PVRシステムは、PVRが一定時間内にトランザクションを完了しない場合に情報が喪失あるいは廃棄されるという一定の時間的制約の下で動作している。例えばパーソナルコンピュータ等の一部の標準的な計算装置に含まれる記憶媒体は、入力/出力エラー又はディスク面エラーに遭遇すると、時間を要するデータ読み出し・書き込みリトライを何度も実行する。このようなシステムをPVR装置に用いることは、単一のセクタにのみエラーが存在するかもしれない場合に、マルチメディアストリームをひどく乱す可能性がある。ATA7の時限コマンドは、一定の時間制約を課して、このようなリトライを該時間制約内で断念させ得る。上述のように、PVRシステムはプレゼンテーションのうちの可能な限り多くを適時に表示しようとする。従って、エラーを含んだセクタ内又はセクタの小集合内のデータを省くことの悪影響は無視することができ、しばしば、オーディオビデオプレゼンテーションの表示中に実際に感知できない程度である。
上述の実施形態の特徴及び態様は様々な用途に適用され得る。用途には、例えば、標準的な計算装置、携帯情報端末、MP3プレイヤ、ビデオファイルプレイヤ及びその他の装置上でのデータ破損の防止が含まれる。しかしながら、ここで説明した特徴及び態様はその他の応用分野にも適応されてもよく、従って、その他の用途も可能であり且つ想定される。また、データは、光ファイバケーブル、ユニバーサル・シリアル・バス(USB)ケーブル、小型コンピュータ用周辺機器インターフェース(SCSI)ケーブル、電話回線、デジタル加入者回線(DSL)、衛星接続、ライン・オブ・サイト接続及びセル式接続上で、本原理の態様に従った装置によって送受信され得る。
ここで説明した実施形態は、例えば、方法若しくはプロセス、装置、又はソフトウェアプログラムにて実施され得る。例え単一形態の実施形態の文脈においてのみ説明(例えば、方法としてのみ説明)されているとしても、説明された特徴の実現法は、その他の形態(例えば、装置又はプログラム)にて実現されてもよい。装置は、例えば、適切なハードウェア、ソフトウェア及びファームウェアにて実現され得る。方法は、例えば、コンピュータ、マイクロプロセッサ、集積回路、又はプログラム可能論理装置などを含む概して処理装置と呼ぶプロセッサなどの装置にて実現され得る。処理装置はまた、例えばコンピュータ、セル式電話、携帯情報端末(“PDA”)等の通信装置、及びエンドユーザ間での情報通信を容易にするその他の装置を含む。
ここで説明した様々な処理及び機能の実施形態は、特には例えばデータの送信及び受信に関連する機器又は用途である、多様な機器又は用途にて具現化され得る。機器の例には、ビデオコーダ、ビデオデコーダ、ビデオコーデック、ウェブサーバ、セットトップボックス、ノート型コンピュータ、パーソナルコンピュータ及びその他の通信装置が含まれる。明らかなことには、機器は移動式であってもよく、更には移動車両に搭載されていてもよい。
また、方法は、プロセッサによって実行される命令によって実施されてもよく、そのような命令は、プロセッサが読み取り可能な媒体、例えば集積回路、ソフトウェア担体、又はハードディスク、コンパクトディスク、ランダムアクセスメモリ(“RAM”)、若しくは読み出し専用メモリ(“ROM”)等のその他の記憶装置に格納されていてもよい。命令は、プロセッサが読み取り可能な媒体として有形に具現化されたアプリケーションプログラムを形成してもよい。明らかなことには、プロセッサは、例えば処理を実行するための命令などを有するプロセッサが読み取り可能な媒体を含んでいてもよい。
当業者に明白であるように、実施形態はまた、例えば格納あるいは送信され得る情報を担持するようにフォーマットされた信号を生成してもよい。情報は、例えば、方法を実行するための命令、又は上述の実施形態の1つによって生成されたデータを含み得る。そのような信号は、例えば、電磁波(例えば、スペクトルの無線周波数部分を用いる)として、あるいはベースバンド信号としてフォーマットされ得る。フォーマットを行うことは、例えば、データストリームを符号化すること、符号化されたストリームをパケット化すること、及びパケット化されたストリームで搬送波を変調することを含み得る。信号が搬送する情報は、例えば、アナログ情報又はデジタル情報とし得る。信号は、知られているように、多様な有線リンク又は無線リンク上で伝送され得る。
多数の実施形態を説明してきた。そうは言うものの、理解されるように、様々な変更が為され得る。例えば、他の実施形態を作り出すように、相異なる複数の実施形態の要素が組み合わされ、補充され、変更され、あるいは除去されてもよい。また、当業者に理解されるように、他の構造及び処理が開示されたものに代用されてもよく、その結果得られる実施形態が、開示された実施形態と少なくとも実質的に同一の結果を達成するように、少なくとも実質的に同じようにして、少なくとも実質的に同一の機能を果たすようになる。従って、これら及びその他の実施形態は以下の請求項の範囲内である。