(57)【要約】  本原理は、ジャーナリングファイルシステムをキャッシュシステムと統合することによって記憶装置上でのデータ破損を防止する方法及び装置を提供する。ファイルシステムのインテグリティに影響を及ぼしやすいデータに関してジャーナルの正確性を確保するため、本原理の一態様に従った方法は、そのようなデータを記憶装置のメインプラッタに書き込むときにキャッシュを迂回すること（４１２）を含む。また、データの読み出し及び書き込みにおける全体的な効率性を確保するため、本原理の一態様に従った方法は、ファイルシステムのインテグリティへの悪影響が比較的小さいデータを、プラッタに書き込むこと（４２８）に加えてキャッシュに書き込むこと（４２０）を含む。故に、本原理の態様は、キャッシュシステムをジャーナリングファイルシステムと有利に統合し、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込み機構との双方を提供する。
2010537309.tif 000002
【特許請求の範囲】
【請求項１】
ジャーナリングファイルシステムとキャッシュシステムとの双方を用いて記憶装置にデータを書き込む方法であって：
記憶媒体にデータを書き込むためのコマンドを受信する段階；
前記コマンドに応答してデータ書き込みをジャーナリングする段階；
前記データがクリティカルデータであるかを決定する段階；及び
前記データがクリティカルデータであるとの決定を受けて、前記データを前記記憶媒体に書き込むときにキャッシュへの書き込みを迂回することにより、前記クリティカルデータに関して、ジャーナリングされた前記記憶装置の状態が正確であることを保証する段階；
を有する方法。
【請求項２】
前記データが非クリティカルデータであるとの決定を受けて、前記データを前記キャッシュに書き込み、且つ前記データを前記記憶媒体に書き込む段階、
を更に有する請求項１に記載の方法。
【請求項３】
クリティカルデータをプラッタに書き込んだとき、該クリティカルデータが前記記憶媒体に書き込まれた時間を前記ジャーナリングファイルシステムが反映することを確実にするため、書き込み完了指示をジャーナリングする段階、
を更に有する請求項１に記載の方法。
【請求項４】
クリティカルデータはファイルシステムの管理を対象とするデータに相当し、非クリティカルデータは圧縮されたオーディオ／ビデオデータに相当する、請求項１に記載の方法。
【請求項５】
クリティカルデータはメタデータを含む、請求項４に記載の方法。
【請求項６】
ビデオ録画再生装置内で前記の段階群が実行される、請求項４に記載の方法。
【請求項７】
クリティカルデータの前記記憶媒体への書き込みを完了した後に、該クリティカルデータを前記キャッシュに書き込む段階、
を更に有する請求項１に記載の方法。
【請求項８】
書き込み処理の中断の後、ジャーナリングされたコマンドを実行して前記記憶装置の少なくとも１つの破損セクタを修復する段階、
を更に有する請求項１に記載の方法。
【請求項９】
記憶装置にデータを書き込むシステムであって：
記憶媒体に書き込まれるデータを含むキャッシュ；
変更のログを含むジャーナル；及び
前記記憶媒体にデータを書き込むためのコマンドを受信し、前記データがクリティカルデータであるかを決定し、前記データがクリティカルデータである場合、該クリティカルデータが前記記憶媒体に書き込まれるときに前記キャッシュを迂回することによって前記記憶媒体への前記データの書き込みを制御することで、該クリティカルデータに関して、ジャーナリングされた前記記憶装置の状態が正確であることを保証するように構成された記憶装置制御プロセッサ；
を有するシステム。
【請求項１０】
前記記憶装置制御プロセッサは更に、非クリティカルデータを前記キャッシュに書き込み、且つ非クリティカルデータを前記記憶媒体に書き込むように構成されている、
請求項９に記載のシステム。
【請求項１１】
前記記憶装置制御プロセッサは更に、クリティカルデータを前記記憶媒体に書き込んだとき、該クリティカルデータが前記記憶媒体に書き込まれた時間をジャーナリングファイルシステムが正確に反映することを確実にするため、書き込み完了指示をジャーナリングするように構成されている、
請求項９に記載のシステム。
【請求項１２】
クリティカルデータはファイルシステムの管理を対象とするデータに相当し、非クリティカルデータは圧縮されたオーディオ／ビデオデータに相当する、請求項９に記載のシステム。
【請求項１３】
前記クリティカルデータはメタデータを有する、請求項９に記載のシステム。
【請求項１４】
ビデオ録画再生装置内に含まれた請求項９に記載のシステム。
【請求項１５】
前記記憶装置制御プロセッサは更に、クリティカルデータの前記記憶媒体への書き込みの完了後に、該クリティカルデータを前記キャッシュに書き込むように構成されている、
請求項９に記載のシステム。
【請求項１６】
前記記憶装置制御プロセッサは更に、ファイルシステムコマンドに従って、書き込み処理の中断の後、ジャーナリングされたコマンドを実行して前記記憶媒体の少なくとも１つの破損セクタを修復するように構成されている、
請求項９に記載のシステム。
【請求項１７】
記憶媒体；
プログラム信号を提供するデジタルビデオ信号源；
前記プログラム信号を処理し、圧縮された信号を提供する手段；
前記圧縮されたオーディオ／ビデオ信号を前記記憶媒体に記録する手段；
前記記憶媒体に書き込まれるデータを格納するキャッシュ；
変更のログを格納するジャーナル；及び
前記記憶媒体にデータを書き込むためのコマンドを受信し、該データがクリティカルデータであるかを決定し、該データがクリティカルデータである場合、該クリティカルデータが前記記憶媒体に書き込まれるときに前記キャッシュを迂回することによって前記記憶媒体への該データの書き込みを制御することで、該クリティカルデータに関して、ジャーナリングされた前記記憶装置の状態が正確であることを保証するように構成されたプロセッサであり、前記クリティカルデータはファイルシステムの管理を対象とするデータに相当し、非クリティカルデータはオーディオ／ビデオ信号に相当する、プロセッサ；
を有するデジタルビデオ記録装置。
【請求項１８】
前記キャッシュ及び前記ジャーナルは前記記憶媒体上に保管される、請求項１７に記載の装置。
【請求項１９】
前記プロセッサは、クリティカルデータの前記記憶媒体への書き込みを完了した後に、該クリティカルデータを前記キャッシュに書き込むように構成されている、請求項１７に記載の装置。
【請求項２０】
前記クリティカルデータはメタデータを有する、請求項１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本原理は、概して記憶装置上でのデータ書き込みに関し、より具体的には記憶装置ファイルシステムのデータ破損を防止する方法及びシステムに関する。
【背景技術】
【０００２】
データ記憶に関する一般的な問題は、記憶媒体上のファイルシステムの部分のデータ破損である。データ破損はしばしば、記憶装置上でのデータ書き込み処理の中断の結果であり、このような中断は例えば電源断の結果として起こり得る。データ破損を回避する１つの手法は、例えばハードディスクドライブ等の記憶媒体への変更が行われるのに先立って、その変更の記録を取り得るジャーナリング（journaling）ファイルシステムを採用することを含む。故に、電源断が生じても、ジャーナリング（記録付け）された変更が“再生”され、すなわち実行され、実際のデータ構造をジャーナリングされた変更に一致させ得る。ジャーナリングされた動作が電源断のために不完全であり、且つそれを始めることが記憶媒体上のデータ構造を破損させるであろう場合、その動作は単に再生されない。従って、ジャーナリングファイルシステムは、電源断に際して生じ得る不完全な書き込みを補正することによって、記憶媒体上でのデータ破損を防止し得る。
【０００３】
データの記憶及び読み出しに関する他の１つの関心事は効率を含む。例えば、記憶装置に対してデータの書き込み及び読み出しを行うとき、可能な限り少ない量のリソースを用いることが望ましいことがしばしばである。これらの関心事を解決するため、典型的に、記憶媒体の比較的小さい部分を有するキャッシュシステムが用いられる。このようなキャッシュサイズにより、キャッシュからのデータの読み出しは、しばしば、記憶媒体のメインプラッタ（platter）からのデータの読み出しより遙かに高速である。多くのキャッシュシステムにおいて、データは、記憶媒体のメインプラッタにデータを書き込むことに先立って、キャッシュに書き込まれる。また、プラッタへのデータの書き込みは、書き込みを実行する元々のコマンドの順序とは異なる順序で行われることがある。キャッシュシステムは一般的に、書き込み処理中の記憶媒体の走査を最小化するようにプラッタにデータを書き込む。キャッシュシステムにおけるプラッタへの書き込み順序は、書き込みコマンドが発せられた順序よりむしろ、記憶媒体上での書き込み位置に依存する傾向にある。
【０００４】
故に、キャッシュシステムの性質により、ジャーナリングファイルシステムはしばしば、キャッシュシステムの動作を停止させることを必要とする。データ構造の破損を回避し、電源断の後にデータ構造を適切に復元するため、ジャーナリングファイルシステムは、元々の書き込みコマンドと一致する順序で記憶媒体のプラッタにデータを書き込むことに頼っている。従って、データ破損を回避するためのジャーナリングの観点と、データの効率的な読み出し及び書き込みを実現するためのキャッシュの特徴とを併せ持つファイルシステムが望まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本原理は、ジャーナリングファイルシステムをキャッシュシステムと統合するための方法及びシステムを提供しようとするものである。
【課題を解決するための手段】
【０００６】
本原理の一態様に従って、ジャーナリングファイルシステムは、ジャーナリングの側面とキャッシュ機能との双方を利用する。ジャーナリングファイルシステムは、書き込まれるデータの種類に応じて、キャッシュを用いるべきかを動的に決定し得る。例えば、ファイルシステムは、“クリティカル”書き込みと“非クリティカル”書き込みとを区別し得る。クリティカル書き込みに関連するデータの破損は、非クリティカル書き込みに関連するデータの破損より、比較的大きい損傷をファイルシステムに与える傾向にある。本原理の一態様は、クリティカル書き込みの場合にキャッシュを迂回することでファイルシステムのインテグリティを確保することによって、キャッシュ機能を含むようにジャーナリングファイルシステムを最適化することを含む。斯くして、本原理の態様は、ジャーナリング機能及びキャッシュ機能の双方の利益を、典型的にそれらの相互作用に伴う悪影響を最小限にしながら提供し得る。
【０００７】
本原理の一実施形態は、ジャーナリングファイルシステムとキャッシュシステムとの双方を用いて、記憶装置上でのファイルシステムの破損を防止するように記憶装置にデータを書き込む方法を含む。当該方法は：データ書き込みをジャーナリングすること；該データがクリティカルであるかを決定すること；該データがクリティカルであるとの決定を受けて、クリティカルデータを記憶装置のプラッタに書き込むためのコマンドを生成すること；及び該クリティカルデータを記憶装置のプラッタに書き込むことを有する。このとき、クリティカルデータのプラッタへの書き込みは、該クリティカルデータに関してジャーナリングされる記憶装置の状態が正確であることを保証するよう、キャッシュへの書き込みを迂回する。
【０００８】
本原理の他の一実施形態は、記憶装置上でのファイルシステムの破損を防止するように記憶装置にデータを書き込むシステムを含む。当該システムは：記憶装置のメインプラッタ；キャッシュ；記憶装置への変更のログを含むジャーナル；ジャーナル及びメインプラッタにデータを書き込むためのコマンドを生成するように構成されたファイルシステムであって、コマンドは、データがクリティカルデータであるとの決定を受けて生成されるクリティカルデータ書き込みコマンドを含む、ファイルシステム；及びクリティカルデータ書き込みコマンドに従ってクリティカルデータを記憶装置のメインプラッタに書き込むように構成された記憶装置制御モジュールであり、クリティカルデータのプラッタへの書き込みは、クリティカルデータに関してジャーナリングされる記憶装置の状態が正確であることを保証するよう、キャッシュへの書き込みを迂回する、記憶装置制御モジュールを有する。
【０００９】
１つ以上の実施形態の詳細が添付の図面及び以下の記載にて説明される。例え１つの特定の手法で記載されたとしても、実施形態は様々に構成あるいは適応され得ることは明らかである。例えば、一実施形態は、方法として実行されてもよいし、一組の処理を実行するように構成された装置、又は一組の処理を実行するための命令を格納した装置として具現化されてもよい。他の態様及び特徴が、以下の詳細な説明を図面及び特許請求の範囲とともに検討することによって明らかになるであろう。
【００１０】
本発明は、例えばＰＶＲにおいて等、圧縮デジタルビデオコンテンツの正確且つ適時の記録を必要とするビデオ記録環境にて有利に使用され得る。
【図面の簡単な説明】
【００１１】
本原理による教示は、以下の詳細な説明を添付の図面とともに検討することによって容易に理解される。
【図１】本原理の態様に従ったビデオ録画再生装置（ＰＶＲ）の典型的な一実施形態を示すブロック図である。
【図２】本原理の態様に従った、ファイルシステムの破損を防止するように記憶装置にデータを書き込むシステムの典型的な一実施形態を示すブロック図である。
【図３】本原理の態様に従った、記憶装置上でのデータ破損を防止する際に用いられるファイルシステム処理の典型的な一実施形態を示すフロー図である。
【図４】本原理の態様に従った、データ書き込み方法において用いられる典型的な記憶装置コマンド処理ルーティンを示すフロー図である。
【図５】本原理の態様に従った、破損セクタを修復するためにジャーナリングファイルシステムを利用する方法の典型的な一実施形態を示すフロー図である。  理解されるように、図面は本原理の概念を説明するためのものであり、必ずしも本原理を示す唯一の取り得る構成というわけではない。理解を容易にするため、複数の図に共通する同一の要素を指し示すために、可能な限り同一の参照符号を用いる。
【発明を実施するための形態】
【００１２】
本原理は、記憶媒体にデータを書き込むためのシステム及び方法を提供する。上述のように、記憶媒体へのデータ書き込みに関する一般的な問題はデータ構造の破損である。データ破損の１つの深刻な形態には、記憶媒体上のセクタへのデータ書き込み処理の中断時に発生する書き継ぎ（write-splice）が含まれる。中断は、電源の故障、プロセッサのフリーズ、又は書き込み処理の完了を阻止するその他の事象の結果として生じ得る。書き継ぎは、セクタの先頭に新たなデータが書き込まれ且つ該セクタの末尾に古いチェックサム（セクタ内にエラーがないことを確認するために用いられるセクタ内の全てのビットの和）を有する古いデータが残存しているセクタによって特徴付けられ得る。書き継ぎエラーは検出されることもあるし検出されないこともあり、例え検出されたとしても、書き継ぎを補正するために記憶媒体の再フォーマットを必要とすることで、全ての記録データの喪失をもたらし得る。ハードディスクドライブシステムにおいて、書き継ぎエラーは、しばしばエラーコードを返すこともできないマウント故障又はファイルシステム容量のハンギングを引き起こし得る。従って、書き継ぎエラーは一般に全ての記録データの喪失をもたらすので、それを回避するために幾つかの手法が開発されてきた。
【００１３】
書き継ぎを解決するための手法には、同期書き込み法、書き込み順序を変更するもの、及び様々な形態のジャーナリングが含まれる。上述のように、ジャーナリングは、記憶媒体プラッタへの変更が行われる前に、それら変更の記録を取ることを伴い得る。変更のジャーナルは、データを書き込むのと同一の記憶媒体に含められることもあるし、全く異なる記憶媒体に含められることもある。多くのジャーナリングファイルシステムにおいて、ジャーナルは、データが最終的に書き込まれるのと同一の記憶媒体上のリングバッファに格納される。電源の故障又はプロセッサのフリーズ等の結果として書き込み処理が中断すると、システムの復元を実行するために、変更のジャーナルが参照され得る。例えば、中断されたプラッタへの書き込みを完了することによって書き継ぎを補正するために、ジャーナルが再生され得る。また、ジャーナル自体への書き込みが中断され、不完全である場合、ジャーナリングされた変更は再生されず、メインプラッタのデータ構造のインテグリティは同様に損傷されない。
【００１４】
書き込み処理の中断の後にファイルシステムの復元を可能にするため、変更のジャーナルは記憶媒体上のファイルシステムの状態を正確に反映すべきである。具体的には、ジャーナルはメインプラッタに書き込みが実行された順序、及び／又は書き込みが行われた時間を正確に含むべきである。復元はジャーナル内に記録された変更を再生することを必要とするので、ジャーナリングファイルシステムは記憶装置の記録状態が正確であることに依存し、変更を再生することに先立って、ジャーナリングファイルシステムは特定の書き込みが実行されたこと又は実行されなかったことをジャーナルに基づいて推定する。故に、ジャーナルに記録された書き込みの順序及び／又は書き込みの実行が完了した時間が不正確な場合、ジャーナリングされた変更の再生は、書き継ぎエラーに関する問題と同様の問題を招くデータ破損をもたらし得る。
【００１５】
従って、上述のように、多くのジャーナリングファイルシステムはキャッシュシステムの無効化を必要とする。キャッシュシステムはしばしば、上述のように、書き込み処理を実行するときに記憶媒体上の領域同士の間の距離が大きくなることを回避するために、書き込みコマンドの順序に一致しないように書き込み処理の順序を変更する。故に、書き込み処理はしばしば、マウント又はその他の書き込み手段が効率的に記憶媒体を走査するように、データを書き込むセクタの位置に従って順序付けられる。また、現行のハードディスクドライブ・ファームウェアにおいては、例えハードディスクプラッタへのデータの書き込みが完了していなくても、ハードディスクキャッシュにデータを書き込むと、書き込み処理の完了状態が返される。キャッシュシステムのこれらの特徴は、ジャーナリングファイルシステムの正確なジャーナルへの依存性のため、書き込み処理の中断から復元するジャーナリングファイルシステムの能力を妨害し得る。
【００１６】
本原理の態様は、ジャーナリング機能によって可能にされるシステム復元能力に加えて読み出し及び書き込みの効率性を提供するようキャッシュを統合したジャーナリングファイルシステムを含む。ここでは本原理の実施形態をビデオ録画再生装置（personal  video  recorder；ＰＶＲ）に関して説明するが、理解されるように、本原理の態様はＰＶＲ用途に限定されるものではない。
【００１７】
ここでは、幾つもの図を通して同様の参照符号が同様あるいは同一の要素を指し示す図面を参照する。先ず、図１を参照して、本原理の態様を実現する典型的な一例に係るＰＶＲ１００を説明する。ＰＶＲ１００はプロセッサ１１６及び記憶媒体１２４を含み得る。記憶媒体１２４は、これに限られないが、ハードディスクドライブとすることができ、ジャーナルデータと、データ書き込みコマンドに従って書き込まれるデータとの双方を格納するために使用され得る。しかしながら、上述のように、他の実施形態においては、ジャーナルデータは、書き込みコマンドに従ってデータが書き込まれる記憶媒体とは完全に別個の記憶機構に格納されてもよい。中央処理ユニット１１６は、例えば、ブロードコム社（Broadcom（登録商標））から市販されているＢＣＭ７０７８Ｃ２チップを有し得る。ＢＣＭ７０７８Ｃ２チップは、３００MHｚの６４ビットＣＰＵを内蔵した２チャンネルＨＤビデオ／オーディオ／グラフィックス・デジタルビデオ録画再生チップであり、デジタルビデオ録画再生装置に用いられる一般的なプロセッサである。
【００１８】
本原理の一実施形態において、衛星技術回路を介して受信したＭＰＥＧ−４圧縮フォーマットのオーディオ／ビデオデータパケットは、ストリーム１１２によってＣＰＵ１１６に伝送され得る。例えば、チューナ１０４が適当な周波数に同調してデータパケットを受信し得る。さらに、復調器１０８が同期的にチューナからの出力信号を復調し、オーディオ／ビデオデータパケットをストリーム１１２によってＣＰＵ１１６に供給し得る。その後、復号器１２０を用いることによってオーディオ／ビデオデータは伸張され得る。復号器１２０は、やはりブロードコム社から市販されているＢＣＭ７４１１ＣＯデコーダとしてもよい。ＢＣＭ７４１１ＣＯデコーダはＭＰＥＧ−４ビデオストリームに対応している。しかしながら、理解されるように、オーディオ／ビデオデータは、例えばＭＰＥＧ−２といった技術的に知られた如何なるフォーマットであってもよく、また、例えばケーブルテレビジョン伝送などのその他の手段によって受信されてもよい。ＣＰＵ１１６は、好適なソフトウェア及びハードウェアによって構成されることができ、オーディオ／ビデオデータストリームにてオーディオ／ビジュアルデータを受信すると、後述の方法の段階群を実行する。
【００１９】
例えばパーソナルコンピュータ等の標準的な計算装置とは異なる一部のＰＶＲの態様は、例えば、オーディオ／ビデオデータの読み出し及び書き込みに関して一定の時間的制約を含んでいる。そのようなＰＶＲシステム、又は一定の時間的制約の下で動作する何らかのその他のシステムが、一定の時間内にトランザクションを完了しない場合、ＰＶＲはプレゼンテーションの次の部分に移行し、未完了のトランザクションに関する情報は喪失あるいは廃棄され得る。この制約は、プレゼンテーションの可能な限り多くを適時に表示することが望ましいことによるものである。故に、オーディオ又はビデオのデータが過度に遅く到着するとき、ＰＶＲ録画再生システムが正常に動作しなくなることを防止するため、該データは廃棄される。従って、一定の時間的制約の下で動作する例えばＰＶＲ等のシステムにおいては、情報の喪失を防止するために、キャッシュによって提供されるデータの迅速な読み出しが望まれる。
【００２０】
標準的な計算装置とは異なる一部のＰＶＲの他の一観点は、ＰＶＲは一般的に、ユーザが電気プラグをコンセントから抜くこと又は停電を受けて電源切断されるとき、適切なオペレーションシステム・シャットダウンシーケンスを実行しないことである。標準的な計算装置においては、ハードディスクドライブは一般的に、シャットダウンのためのコマンドを与えられるので、キャッシュからプラッタへデータを流す（フラッシュする）のに十分な時間が与えられ、また、読み出し／書き込みヘッドが安全区域で停止することが可能になり、これらは何れもデータ破損及びデータ喪失を防止する。様々なＰＶＲ設計は、初期電源異常（early  power  fail）ルーティンを設けることによって突然の電源切断問題を解決してきた。ＥＰＦルーティンは、電源断の後にＰＶＲシステム内に残存する電流を利用する。この電流は、およそ１０ｍｓ−４０ｍｓにわたってＰＶＲを動作させ続けることを可能にし得る。この残存電流を用いて、一部のＥＰＦルーティンは、キャッシュをフラッシュし且つ制御されたヘッド停止を実行することを試みる。一般的に、このようなＥＰＦルーティンはしばしば、残存電流の消失前にキャッシュのフラッシュを完了することに失敗する。故に、電力が消失するとき、一般的にこれらのＥＰＦルーティンはメインプラッタにデータを書き込むようＰＶＲドライブに指示し、それにより、書き継ぎエラー、データ喪失、及び非制御的なヘッド停止がもたらされる。
【００２１】
本原理の一態様に従って、ＥＰＦルーティンに、現時のセクタ書き込み（システムが書き込みを行うとき）を完了し、キャッシュ内の如何なる更なるデータをも廃棄し、そして制御されたヘッド停止を実行する特別なシャットダウンコマンドシーケンスが組み込まれる。書き継ぎエラーよりはデータの喪失の方が好ましいことがしばしばある。上述のように、書き継ぎエラーはしばしば、ディスクの再フォーマットを要求し、全ての記録データの喪失を伴う。また、ＰＶＲは、例えばパーソナルコンピュータ等の一部の標準的な計算装置より、ユーザデータの喪失に対して高い許容度を有する。ＰＶＲのユーザデータは通常、オーディオ／ビデオプレゼンテーションデータを有し、少数フレームの喪失は一般的に、プレゼンテーション全体には最小限の影響しか及ぼさない。
【００２２】
ＥＰＦルーティンは書き継ぎエラーを低減し得るものであるが、ＥＰＦルーティンを用いても、ファイルシステムの破損は完全には防止されない。本発明の他の一態様によれば、キャッシュシステムと統合されたジャーナリングファイルシステムを用いて、データ破損が防止され、且つ読み出し及び書き込みの効率性が提供され得る。上述のように、ジャーナリングファイルシステムは一般的にキャッシュシステムと相性が悪い。本原理の一態様に従ったジャーナリングファイルシステムは、より十分に後述するクリティカル（critical）データと非クリティカル（non-critical）データとを区別することによって、この相性の悪さを克服する。クリティカルデータは、破損された場合にファイルシステムのインテグリティに直接的に影響を及ぼす傾向にあり且つファイルシステムの動作を無能化してしまう可能性を有するデータとして特徴付けられ得る。また、クリティカルデータはユーザ及び／又はシステムパラメータによってアクセスされ且つ変更され、然るべく調整され得る。非クリティカルデータは、その破損がシステムのインテグリティに対して比較的危害が少ないデータを含み得る。本原理の一態様によれば、クリティカルデータをメインプラッタに書き込むとき、キャッシュは迂回される。この態様は、クリティカルデータをプラッタに書き込む順序がプラッタへの複数の書き込みのジャーナリングされた書き込み順序に一致するため、クリティカルデータに関するジャーナリングされたシステム状態が正確であることを保証する。故に、書き込み処理の中断を受けてジャーナルが再生されるとき、ファイルシステムは上述の正確なジャーナルを参照することによって適切な復元を行い、それによりクリティカルデータに関するデータ破損を防止し得る。
【００２３】
非クリティカルデータを書き込むことに関しては、本原理の他の一態様に従って、読み出し及び書き込みの効率性を実現するためにキャッシュが使用される。より十分に後述するように、非クリティカルデータの破損の影響が比較的危害の小さいものであるため、キャッシュの使用により生じる如何なる潜在的な破損の悪影響も最小になる。さらに、より十分に後述するように、非クリティカルデータの書き込みは、メインプラッタへの全書き込みのうちの実質的に大きい部分を有する。故に、クリティカルデータを書き込むときにキャッシュを迂回することの、全体としてのシステムの書き込み効率への影響は、比較的小さい。従って、本原理の態様は、キャッシュシステムをジャーナリングファイルシステムと有利に統合し、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込みの機構との双方を提供する。
【００２４】
図２を参照して、本原理の態様に従った一典型例に係るシステム２００を提示する。システム２００は、ファイルシステム制御モジュール２０４とコマンド生成器２０８とを有するジャーナリングファイルシステム２０２を含んでいる。ファイルシステム制御モジュール２０４は、記憶媒体に格納されたファイルシステム２０２内のデータの編成の受信及び制御を行い得る。また、ファイルシステム制御モジュール２０４は、コマンド生成器２０８を用いて、ジャーナル２１６、キャッシュ２２０及びメインプラッタ２２４のうちの何れか１つにデータを書き込むためのコマンドを生成する。ジャーナル２１６、キャッシュ２２０及びメインプラッタ２２４は、同一の記憶装置に含まれていてもよいし、異なる複数の記憶装置に含まれていてもよい。システム２００はまた、記憶装置上でデータ書き込みコマンドを処理し、実行する記憶装置制御モジュール２１２を含んでいる。ここで紹介した図２のシステム要素については、本原理の態様の方法の実施形態を参照して、より十分に後述する。
【００２５】
なお、図面に示した様々な要素の機能は、専用ハードウェアを使用することのほかに、適当なソフトウェアと連係してソフトウェアを実行することが可能なハードウェアを使用することによっても実現され得る。プロセッサによって実現されるとき、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、あるいは、一部が共有されてもよい複数の個別のプロセッサによって実現され得る。また、用語“プロセッサ”又は“コントローラ”の明示的な使用は、ソフトウェアを実行することが可能なハードウェアのみを意味すると解されるべきでなく、限定することなく、デジタル信号プロセッサ（“ＤＳＰ”）ハードウェア、ソフトウェアを格納する読み出し専用メモリ（“ＲＯＭ”）、ランダムアクセスメモリ（“ＲＡＭ”）、及び不揮発性記憶装置をも暗に含み得る。また、発明の原理、態様及び実施形態、並びにその特定の実施例を記載するここでの全ての記述は、その構造的な均等物及び機能的な均等物の何れをも包含するものである。さらに、そのような均等物は、現在既知の均等物と将来開発される均等物（すなわち、構造に拘わらず、同一の機能を実行するような何らかの開発される要素）との双方を含むものである。
【００２６】
故に、例えば、当業者に認識されるように、ここで提示するブロック図は、発明の原理を具現化する例示的なシステム要素及び／又は回路の概念図を表すものである。同様に、認識されるように、何れのフローチャート、フロー図、状態遷移図、擬似コード、及びこれらの類するものも、コンピュータ読み取り可能媒体内に実質的に表され、そして、コンピュータ又はプロセッサが明示的に示されていようとなかろうと、コンピュータ又はプロセッサによって実行され得る様々な処理を表すものである。
【００２７】
引き続き図２を参照しながら図３を参照し、本原理の態様に従ったデータ書き込み方法にて用いられる典型的なジャーナリングファイルシステム処理の実施形態を説明する。ジャーナリングファイルシステム処理方法３００は、ステップ３０４にて、データを受信することによって開始し得る。データは、図１のＰＶＲシステムに関連して上述したように、例えばＭＰＥＧ−４フォーマットの、パケットとしてファイルシステム２０２によって受信され得る。続いて、ステップ３０８にて、データはファイルシステム２０２で処理され得る。このとき、ファイルシステム制御モジュール２０４は、データが、例えばハードディスクドライブを有し得る記憶装置のメインプラッタ２２４に書き込まれることを決定し得る。その後、ステップ３１２にて、このデータのメタデータがファイルシステム制御モジュール２０４によって生成され得る。
【００２８】
方法３００はまた、記憶装置のプラッタへの変更を、ジャーナル又はログ２１６内に記録（ジャーナリング）することを有していてもよい。例えば、ファイルシステム制御モジュール２０４は、コマンド生成器２０８を用いて、記憶装置への変更をジャーナリングするためのコマンドを生成してもよい。変更はメインプラッタ２２４にデータを書き込むことを含んでいてもよく、ステップ３１６にて、メインプラッタ書き込みに関するデータ書き込みコマンドがログ又はジャーナル２１６内にジャーナリングされてもよい。記憶装置制御モジュール２１２は、ファイルシステム２０２から受信したコマンドに従ってジャーナルに書き込むことによって、プラッタ書き込みコマンドをジャーナリングし得る。また、上述のように、ジャーナル又はログ２１６は、記憶装置のリングバッファに格納されてもよいし、全く別の記憶媒体に格納されてもよい。さらに、特定の実施形態において、ジャーナル２１６は書き込まれるべき実際のデータを含んでいてもよい。
【００２９】
データ書き込みコマンドをジャーナリングすると、本原理の態様に従って、ステップ３２０にて、ファイルシステム制御モジュール２１２は、該データ書き込みコマンドがクリティカルデータ又は非クリティカルデータの何れを書き込むものに相当するかを決定する。非クリティカルデータは、例えばオーディオ−ビデオデータ、テキスト、及び他のアプリケーション情報など、ユーザファイルを含み得る。上述のように、オーディオ−ビデオデータやその他のユーザデータの喪失は、しばしば、ＰＶＲシステムにおいて最小限の悪影響を有するのみである。クリティカルデータはメタデータを含み得る。メタデータは、ユーザデータファイルの発見や、内部保全（すなわち、オーディオデータ及びビデオデータではなくファイルシステムの状態又は維持を対象にするデータ）のためにファイルシステム自体が用いる隠し情報又は非隠し情報の何れかを含み得る。
【００３０】
データ書き込みコマンドがクリティカルデータに対応していると決定された場合、ステップ３２４にて、本原理の態様に従ったコマンド生成器２０８はクリティカルデータ書き込みコマンドを生成する。同様に、データ書き込みコマンドが非クリティカルデータに対応していると決定された場合、ステップ３２８にて、本原理の態様に従ったコマンド生成器２０８は非クリティカルデータ書き込みコマンドを生成する。クリティカルデータ書き込みコマンド及び非クリティカルデータ書き込みコマンドについては、記憶装置コマンド処理の実施形態の説明に関連して、より十分に後述する。
【００３１】
引き続き図２を参照しながら図４を参照し、本原理の態様に従ったデータ書き込み方法にて用いられる典型的な記憶装置コマンド処理ルーティン４００を説明する。記憶装置コマンド処理ルーティンは、ステップ４１４にて、記憶装置制御モジュール２１２がコマンド生成器２０８からのコマンドを受信することによって開始し得る。そして、ステップ４０８にて、記憶装置制御モジュール２１２は、該コマンドがクリティカルデータ又は非クリティカルデータの何れを書き込むためのコマンドであるかを決定する。データ書き込みコマンドがクリティカルデータを書き込むためのコマンドであると決定されると、ステップ４１２にて、記憶装置制御モジュール２１２は、キャッシュ２２０への書き込みを迂回して、直接的にクリティカルデータをプラッタ２２４に書き込む。上述のように、キャッシュ２２０を迂回することは、ジャーナリングされた記憶装置状態がクリティカルデータに関して正確であることを保証する。例えば、クリティカルデータのプラッタへの直接的な書き込みは、プラッタへの複数の書き込みの書き込み順序が、プラッタへの複数の書き込みのジャーナリングされた書き込み順序と一致することを確実にし得る。
【００３２】
クリティカルデータをプラッタ２２４に書き込んだ後、ステップ４１６にて、記憶装置制御モジュール２１２はジャーナリングファイルシステム２０２に、書き込み完了を指し示すもの（以下、書き込み完了指示）を提供する。書き込み完了指示は、データがプラッタに書き込まれた時間をジャーナリングファイルシステム２０２が正確に反映していることを保証する。正確なジャーナルは、上述のように、ファイルシステム２０２がデータ書き込み処理の中断から適切に復元されることを可能にする。また、キャッシュ２２０を迂回することは、より多くのキャッシュ空間をユーザデータに提供し、ひいては、上述のようにデータのより効率的な読み出しを可能にするという更なる利点を含む。また、本原理の他の一態様によれば、システム２００は必要に応じて、データの効率的な読み出しを可能にするために、クリティカルデータをプラッタ２２４に書き込んだ後に該クリティカルデータをキャッシュに書き込んでもよい。例えば、ファイルシステム制御モジュール２０４は、コマンド生成器２０８を用いて、クリティカルデータがプラッタ２２４に書き込まれた後に該クリティカルデータをキャッシュ２２０に書き込むためのコマンドを発し得る。そして、記憶装置制御モジュール２１２は、該クリティカルデータをメインプラッタ２２４に書き込んだ後に、該クリティカルデータをキャッシュ２２０に書き込む。
【００３３】
データ書き込みコマンドが非クリティカルデータを書き込むためのコマンドであると決定されると、ステップ４２０にて、記憶装置制御モジュール２１２は非クリティカルデータをキャッシュ２２０に書き込む。その後、キャッシュされたデータに対応する書き込み処理に関してプラッタ２２４の準備が整ったことがステップ４２４にて決定された後、ステップ４２８にて、記憶装置制御モジュール２１２は非クリティカルデータを記憶装置のメインプラッタ２２４に書き込む。上述のように、キャッシュを用いるとき、プラッタに書き込まれるデータはしばしば、書き込みの効率性を提供するために、元々の書き込みコマンドと一致しない順序で書き込まれる。また、上述のように、キャッシュの小さいサイズのために、データはキャッシュから比較的高速に読み出され得る。データをプラッタ２２４に書き込んだ後、ステップ４１６にて、記憶装置制御モジュール２１２はジャーナリングファイルシステム２０２に書き込み完了指示を提供する。方法３００及び４００は、ファイルシステムによって新たなデータ又は異なるデータが受信されたとき、必要に応じて繰り返される。
【００３４】
上述のように、ジャーナリングファイルシステムは、記憶装置上でのデータの破損を防止するために用いられ得る。ジャーナリングファイルシステムの一態様は、書き込み処理の中断の結果として損傷された破損セクタを修復するために記録を取られた（ロギングされた）コマンドを再生することを含む。引き続き図２を参照しながら図５を参照し、本原理の一態様に従ったジャーナリングファイルシステム２０２を用いることによって少なくとも１つの破損セクタを修復する方法５００を説明する。この方法は、電源異常後に、ステップ５０４にて、プロセッサとデータを書き込む記憶媒体とを起動することによって開始し得る。しかしながら、この方法は、例えば、プロセッサのフリーズ又は書き込み中断のその他の原因の後の通常処理の復旧を受けて開始してもよい。中断及び通常処理の再開の後、ステップ５０８にて、ファイルシステム制御モジュール２０４はコマンドのジャーナル２１６にアクセスする。その後、ステップ５１２にて、ファイルシステム制御モジュール２０４は、ジャーナル２１６内のロギングされたコマンドを再生すべきかを決定する。上述のように、ロギングされたコマンドは、中断されたプラッタへの書き込みを完了するために再生される。ファイルシステムは、プラッタへの書き込みが中断されたことを決定した後、ステップ５１６にて、ジャーナリングされたコマンドを実行する。例えば、ファイルシステム制御モジュール２０４は、プラッタへの書き込みが中断されたとの決定を受け、コマンド生成器２０８を用いて、ジャーナル２１６内にロギングされたコマンドと一致するコマンドを生成し得る。加えて、記憶装置制御モジュール２１２は、データをメインプラッタ２２４に書き込むこと又はジャーナル２１６と一致する何らかのその他の変更を加えることによってコマンドを実行する。ファイルシステム制御モジュール２０４が、プラッタへの書き込み処理ではなく、ジャーナルへの書き込み処理が中断されたことを決定した場合、ステップ５２０にて、ジャーナリングされたコマンドは廃棄される。上述のように、ジャーナリングファイルシステムをこのように用いることにより、メインプラッタのデータ構造のインテグリティが保証される。理解されるように、方法３００、４００及び５００はシステム２００を参照して説明されたが、これらの方法は本原理の他の態様に従った他の手段によって実行されてもよい。
【００３５】
本原理の態様に従ったジャーナリングファイルシステムのキャッシュシステムとの統合は、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込み機構との双方を提供する。上述のように、ジャーナリングファイルシステムにおけるクリティカルデータ書き込みに関してキャッシュを迂回することは、該データの破損を防止する。例えばメタデータ等のクリティカルデータの破損は、非クリティカル書き込みに関連するデータの破損より、比較的大きいダメージをファイルシステムに与える傾向にある。上述のように、メタデータは、ユーザデータを発見するためや内部保全を実行するためにファイルシステムが利用する情報を含んでおり、その破損はユーザデータの破損と比較して大きい悪影響を有する。データがクリティカルなものであるか非クリティカルなものであるかがプロセッサによって決定され、その決定は、例えばビデオ録画システム等のシステムの特定のアプリケーションに基づいてプログラムされ得る。ユーザデータの破損は一般的に、破損されたユーザデータの部分に限られるが、メタデータの破損は、破損されたメタデータに加えて、データのその他の部分にも悪影響を及ぼし得る。故に、キャッシュの使用の結果としてユーザデータの破損が生じ得るものの、その悪影響は最小限である。従って、本原理の態様に従ったジャーナリングファイルシステムは、キャッシュの利用に拘わらず、ファイルシステムの破損に対する堅牢な保護を提供する。
【００３６】
また、本原理の利点は、ＰＶＲシステムにおいて特に明白である。ＰＶＲシステムにおいては、例えば符号化、暗号化されたオーディオ／ビデオ情報などの非クリティカルデータの破損は、クリティカルデータの破損より遙かに小さい害しか及ぼさない傾向にある。オーディオ／ビジュアル情報を含む記憶媒体の損傷セクタは、プレゼンテーションにおいて小さい異常として現れるのみであるが、破損されたメタデータはファイルシステム自体を無能化する一層大きい可能性を有する傾向にある。
【００３７】
ファイルシステムの破損に対する実質的な保護を提供することに加えて、本原理の態様は、非クリティカルデータに対するキャッシュの使用によって、効率的な読み出し及び書き込み能力をも提供する。例えばメタデータ等のクリティカルデータは典型的に、全てのデータ書き込み処理のうちの約１０％未満を有するのみであるが、例えばユーザデータ等の非クリティカルデータは典型的に、全てのデータ書き込み処理のうちの約９０％より多くを有する。故に、クリティカルデータは書き込みのうちの比較的小さい容量を有するのみであるので、クリティカルデータの書き込みの場合にキャッシュを迂回することは、キャッシュによって提供される読み出し及び書き込みに対して小さい影響を有するのみである。従って、本原理の態様は、ファイルシステムの堅牢なインテグリティと効率的な読み出し及び書き込み機構との双方を提供するように、キャッシュシステムをジャーナリングファイルシステムと有利に統合する。
【００３８】
上述の本原理の態様を実現するために用いられ得るジャーナリングファイルシステムは、例えば、ＸＦＳ及びＥＸＴ３ＦＳを含み得る。ＰＶＲアプリケーションに関するＸＦＳ等のファイルシステムの有利な特徴は、オーディオ−ビジュアルデータの多重ストリームの効率的な書き込みを提供することができることを含む。ＸＦＳ等のファイルシステムは、比較的大きい部分内で記憶空間が割り当てられる“リアルタイム”パーティション機能を有し、アプリケーションに複雑性を加えることなく記憶装置のスループットのほぼ１００％が実現される。対照的に、デスクトップ・時分割ファイルシステムは、一般的に、書き込まれる通りにファイルの記憶空間の小さい部分を割り当てるため、比較的乏しいスループットで部分最適的にインターリーブされたストリームをもたらす。
【００３９】
また、本原理の態様を実現するために使用され得るプログラムインタフェース仕様はＡＴＡ７を含む。ＡＴＡ７は、自己監視・分析・報告技術（Self-Monitoring，Analysis，and  Reporting  Technology；ＳＭＡＲＴ）機能、強制ユニットアクセス（Forced  Unit  Access；ＦＵＡ）機能、及び時限コマンドを有し、これらの各々はＰＶＲにとりわけ適合し得る。例えば、ＳＭＡＲＴ機能は、記憶装置の動作状態を決定すること、記憶装置の温度監視のためにファイルシステムによって使用され得る。また、ＳＭＡＲＴ機能はハードディスクドライブ記憶装置における目先のディスクドライブ故障を予測するために使用されてもよい。
【００４０】
ＦＵＡコマンドは、キャッシングが有効にされた場合であってもコマンドの完了前に装置媒体に、あるいは装置媒体からユニットデータが転送されることを確実にする。故に、ＦＵＡコマンドは、キャッシュを迂回する、あるいはほぼ迂回する書き込み要求を実現する。本原理の態様に従ったジャーナリングファイルシステムは、ＦＵＡコマンドを用いて、より重要性の低いデータの書き込みに目につく影響を及ぼすことなくクリティカルデータを首尾良く書き込むことができる可能性を高めてもよい。例えば、ＦＵＡコマンドは、より重要性の低いデータに伝統的な書き込みコマンドを用い続けながら、本原理の態様に従って例えばファイルシステムのメタデータ等のクリティカルデータのプラッタへの直接的な書き込みを実行するために用いられてもよい。
【００４１】
また、ＡＴＡ７に含まれる時限コマンドのセットが、ＰＶＲシステムの一定の時間的制約を設けるために用いられてもよい。上述のように、ＰＶＲシステムは、ＰＶＲが一定時間内にトランザクションを完了しない場合に情報が喪失あるいは廃棄されるという一定の時間的制約の下で動作している。例えばパーソナルコンピュータ等の一部の標準的な計算装置に含まれる記憶媒体は、入力／出力エラー又はディスク面エラーに遭遇すると、時間を要するデータ読み出し・書き込みリトライを何度も実行する。このようなシステムをＰＶＲ装置に用いることは、単一のセクタにのみエラーが存在するかもしれない場合に、マルチメディアストリームをひどく乱す可能性がある。ＡＴＡ７の時限コマンドは、一定の時間制約を課して、このようなリトライを該時間制約内で断念させ得る。上述のように、ＰＶＲシステムはプレゼンテーションのうちの可能な限り多くを適時に表示しようとする。従って、エラーを含んだセクタ内又はセクタの小集合内のデータを省くことの悪影響は無視することができ、しばしば、オーディオビデオプレゼンテーションの表示中に実際に感知できない程度である。
【００４２】
上述の実施形態の特徴及び態様は様々な用途に適用され得る。用途には、例えば、標準的な計算装置、携帯情報端末、ＭＰ３プレイヤ、ビデオファイルプレイヤ及びその他の装置上でのデータ破損の防止が含まれる。しかしながら、ここで説明した特徴及び態様はその他の応用分野にも適応されてもよく、従って、その他の用途も可能であり且つ想定される。また、データは、光ファイバケーブル、ユニバーサル・シリアル・バス（ＵＳＢ）ケーブル、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）ケーブル、電話回線、デジタル加入者回線（ＤＳＬ）、衛星接続、ライン・オブ・サイト接続及びセル式接続上で、本原理の態様に従った装置によって送受信され得る。
【００４３】
ここで説明した実施形態は、例えば、方法若しくはプロセス、装置、又はソフトウェアプログラムにて実施され得る。例え単一形態の実施形態の文脈においてのみ説明（例えば、方法としてのみ説明）されているとしても、説明された特徴の実現法は、その他の形態（例えば、装置又はプログラム）にて実現されてもよい。装置は、例えば、適切なハードウェア、ソフトウェア及びファームウェアにて実現され得る。方法は、例えば、コンピュータ、マイクロプロセッサ、集積回路、又はプログラム可能論理装置などを含む概して処理装置と呼ぶプロセッサなどの装置にて実現され得る。処理装置はまた、例えばコンピュータ、セル式電話、携帯情報端末（“ＰＤＡ”）等の通信装置、及びエンドユーザ間での情報通信を容易にするその他の装置を含む。
【００４４】
ここで説明した様々な処理及び機能の実施形態は、特には例えばデータの送信及び受信に関連する機器又は用途である、多様な機器又は用途にて具現化され得る。機器の例には、ビデオコーダ、ビデオデコーダ、ビデオコーデック、ウェブサーバ、セットトップボックス、ノート型コンピュータ、パーソナルコンピュータ及びその他の通信装置が含まれる。明らかなことには、機器は移動式であってもよく、更には移動車両に搭載されていてもよい。
【００４５】
また、方法は、プロセッサによって実行される命令によって実施されてもよく、そのような命令は、プロセッサが読み取り可能な媒体、例えば集積回路、ソフトウェア担体、又はハードディスク、コンパクトディスク、ランダムアクセスメモリ（“ＲＡＭ”）、若しくは読み出し専用メモリ（“ＲＯＭ”）等のその他の記憶装置に格納されていてもよい。命令は、プロセッサが読み取り可能な媒体として有形に具現化されたアプリケーションプログラムを形成してもよい。明らかなことには、プロセッサは、例えば処理を実行するための命令などを有するプロセッサが読み取り可能な媒体を含んでいてもよい。
【００４６】
当業者に明白であるように、実施形態はまた、例えば格納あるいは送信され得る情報を担持するようにフォーマットされた信号を生成してもよい。情報は、例えば、方法を実行するための命令、又は上述の実施形態の１つによって生成されたデータを含み得る。そのような信号は、例えば、電磁波（例えば、スペクトルの無線周波数部分を用いる）として、あるいはベースバンド信号としてフォーマットされ得る。フォーマットを行うことは、例えば、データストリームを符号化すること、符号化されたストリームをパケット化すること、及びパケット化されたストリームで搬送波を変調することを含み得る。信号が搬送する情報は、例えば、アナログ情報又はデジタル情報とし得る。信号は、知られているように、多様な有線リンク又は無線リンク上で伝送され得る。
【００４７】
多数の実施形態を説明してきた。そうは言うものの、理解されるように、様々な変更が為され得る。例えば、他の実施形態を作り出すように、相異なる複数の実施形態の要素が組み合わされ、補充され、変更され、あるいは除去されてもよい。また、当業者に理解されるように、他の構造及び処理が開示されたものに代用されてもよく、その結果得られる実施形態が、開示された実施形態と少なくとも実質的に同一の結果を達成するように、少なくとも実質的に同じようにして、少なくとも実質的に同一の機能を果たすようになる。従って、これら及びその他の実施形態は以下の請求項の範囲内である。
【図１】
2010537309.tif 000003
【図２】
2010537309.tif 000004
【図３】
2010537309.tif 000005
【図４】
2010537309.tif 000006
【図５】
2010537309.tif 000007
【国際調査報告】
2010537309.tif 000008
2010537309.tif 000009