(57)【要約】【課題】  データの書換え、挿抜が可能な記録メディアを使用する情報処理装置において、記録メディアの規格に準拠した方式で、電源断等の障害に対するデータ修復を行えるようにする。【解決手段】  記録領域２３０へのデータ書込みに先立ち、ログ領域（カスタマが自由に使用できる領域として設定）２１０にログ書込みを行う。ログ書込みは、データ修復処理を可能にすべく、ログ領域２１０にデータと書込み先アドレス／書込みデータサイズを一緒に書込む；図１（Ａ）。ログ書込みの後、記録領域２３０にデータ書込みを行う；図１（Ｂ）。データ書込みの途中で、電源断等の障害が発生し、未書込みになったデータが修復の対象になる。修復の際、ログ領域に書込まれたデータが用いられる。データ書込みが完了した場合には、不要なログ領域のデータを消去する；図１（Ｃ）。【選択図】          図１
2006134125.tif 000002
【特許請求の範囲】
【請求項１】
装置本体に挿抜可能であり、データの書き換えが可能な記録メディアと、装置内で生成されたデータを前記記録メディアの管理された記録領域における指定の場所へ書き込み、又書き込まれたデータを消去するための記録制御手段を有する情報処理装置であって、書き込み対象データと該データの書き込みに必要な管理情報とよりなる書き込みログデータを生成するログデータ生成手段を備え、前記記録制御手段は、書き込み対象データの記録領域への書き込みを行う前に、前記ログデータ生成手段により生成されたログデータを前記書き込み対象データの記録領域と別に設定された領域に書き込み、前記書き込み対象データの記録領域への書き込みの完了を条件に、書き込まれたログデータを消去するようにしたことを特徴とする情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、ログデータの記録領域におけるデータの有無を検出するログデータ検出手段を備え、前記記録制御手段は、ログデータ検出手段によりログデータが検出されたことを条件に、該ログデータに基づいて書き込み対象データの記録領域への書き込みを行い、データを修復し、修復の完了を条件に、書き込まれたログデータを消去するようにしたことを特徴とする情報処理装置。
【請求項３】
請求項２に記載された情報処理装置において、前記記録制御手段は、修復に用いる前記ログデータに上書きの条件が指示されているときに、最後のログデータのみでデータを修復し、修復の完了を条件に、上書きの条件が指示された前記ログデータを全て消去するようにしたことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載された情報処理装置において、前記記録メディアへ書き込むデータを貯えるキャッシュを備え、前記記録制御手段は、前記キャッシュが一杯になるか、或いは所定期間の経過を条件に、キャッシュに貯えたデータを記録メディアへ書き込むようにしたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置本体に挿抜可能であり、データの書き換えが可能な記録メディアを使用する情報処理装置に関し、より特定すると、装置本体から記録メディアへのデータ書き込み中に起きる電源断等の障害による異常書き込みを修復することを可能とした上記情報処理装置に関する。
【背景技術】
【０００２】
近年、文書や画像等の様々な情報を扱うアプリケーションを用いて情報を処理する情報処理装置において、多機能化に伴って使用するアプリケーションやプログラムサイズが増大しており、これらを装置内に保存する方法をとると、内蔵のＲＯＭに大容量が必要になる。内蔵のＲＯＭはメモリ容量が有限（固定）である上に、高価であることが制約となることもあって、機能の拡大やバージョンアップに対応できなくなるという状況が起きる。
このために、装置内蔵のＲＯＭに代えて、ビット単価の比較的安いディスクやカード等の装置本体に挿抜可能（リムーバブル）な記録メディアを用いることにより、機能の拡大や装置のコストダウンを図っている。
この種の記録メディアには、図１６に示すように、情報処理装置１００´で生成されたデータを装置側から記録メディア２００´において記録領域２３０´として管理されている領域の指定の格納場所に書き込まれる。また、記録メディア２００´への書き込み以外に、記録メディア２００´に書き込まれたデータを消去したり、逆に装置側へ読み込んだり、といった動作を行う。これらの動作は、情報処理装置１００´が備えるファイルシステムの指示に従い、記録メディアコントローラを介して行われる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の挿抜可能（リムーバブル）な記録メディアを用いた装置においては、データを記録メディアに書き込んでいる最中に記録メディアが抜かれたり、もしくは電源断が起きてしまうと、図１６に示すように、記録領域には半端にデータが書き込まれた状態になる。この半端な書き込みは、管理している記録領域の構成情報と記録領域に実際に書き込まれたデータ構成とに不整合を生み、記録領域の構成情報を破壊してしまう、という危険がある。
そこで、記録領域の構成情報が破壊されることを防止するための対応策として、記録領域を利用して、データ修復等に必要な管理情報を提供するようにする、といった方法も検討されている。ただ、記録領域の形式（フォーマット）は記録メディアの規格によって決められているので、この記録領域をデータの書き込み領域以外に利用するといった形式の変更を行って、電源断等の障害に対応しようとすると、他の情報装置との互換性が失われてしまうことになる。また、記録メディアによっては、記録領域の形式の変更を許可しないものもある。
また、挿抜可能なこの種の記録メディアの寿命は、書き込み回数に関係しており、頻繁な書き込みを行なうとメディア寿命を縮めてしまう、という性質をもっている。上記した電源断等の障害に対応して行われるデータ修復等の処理において、従来、こうした記録メディアの性質を考慮し、長寿命化を図るという観点からのアプローチをしてこなかった。
本発明は、装置本体に挿抜可能であり、データの書き換えが可能な記録メディアを使用する情報処理装置に生じる、記録メディアへのデータ書き込み途中に発生する電源断等の障害に対する上記した先行技術の問題に鑑み、これを解決するためになされたもので、記録メディアの規格に準拠した方式によって、電源断等の障害に対応するデータ修復等の処理を行えるようにすること、さらに、この処理を行う際に、記録メディアへの書き込み回数の増大を抑えることにより、記録メディアの長寿命化を図ることを解決課題とする。
【課題を解決するための手段】
【０００４】
請求項１の発明は、装置本体に挿抜可能であり、データの書き換えが可能な記録メディアと、装置内で生成されたデータを前記記録メディアの管理された記録領域における指定の場所へ書き込み、又書き込まれたデータを消去するための記録制御手段を有する情報処理装置であって、書き込み対象データと該データの書き込みに必要な管理情報とよりなる書き込みログデータを生成するログデータ生成手段を備え、前記記録制御手段は、書き込み対象データの記録領域への書き込みを行う前に、前記ログデータ生成手段により生成されたログデータを前記書き込み対象データの記録領域と別に設定された領域に書き込み、前記書き込み対象データの記録領域への書き込みの完了を条件に、書き込まれたログデータを消去するようにしたことを特徴とする情報処理装置である。
請求項２の発明は、請求項１に記載された情報処理装置において、ログデータの記録領域におけるデータの有無を検出するログデータ検出手段を備え、前記記録制御手段は、ログデータ検出手段によりログデータが検出されたことを条件に、該ログデータに基づいて書き込み対象データの記録領域への書き込みを行い、データを修復し、修復の完了を条件に、書き込まれたログデータを消去するようにしたことを特徴とするものである。
【０００５】
請求項３の発明は、請求項２に記載された情報処理装置において、前記記録制御手段は、修復に用いる前記ログデータに上書きの条件が指示されているときに、最後のログデータのみでデータを修復し、修復の完了を条件に、上書きの条件が指示された前記ログデータを全て消去するようにしたことを特徴とするものである。
請求項４の発明は、請求項１乃至３のいずれかに記載された情報処理装置において、前記記録メディアへ書き込むデータを貯えるキャッシュを備え、前記記録制御手段は、前記キャッシュが一杯になるか、或いは所定期間の経過を条件に、キャッシュに貯えたデータを記録メディアへ書き込むようにしたことを特徴とするものである。
【発明の効果】
【０００６】
請求項１，２の発明によると、書き込み対象データを書き込む前に、書き込み対象データの記録領域と別に設定された領域に、書き込みログデータ（書き込み対象データと該データの書き込みに必要な管理情報）を書き込むことにより、記録メディアの規格に準拠した方式によって、電源断等の障害に対応するデータ修復等の処理をすることが可能になる。
また、請求項３の発明によると、修復に用いるために書き込んだログデータに上書きの条件が指示されているときに、最後のログデータのみでデータを修復するようにしたことにより、処理時間を短縮することができ、しかも、書き込み回数によって寿命が決まる記録メディアを使用する場合、この方式によると、書き込み回数を少なくすることができるので、記録メディアの長寿命化が可能になる。
また、請求項４の発明によると、記録メディアへ書き込むデータを貯えるキャッシュを備え、キャッシュが一杯になるか、或いは所定期間の経過を条件に、キャッシュに貯えたデータを記録メディアへ書き込むようにしたことにより、書き込み処理のパフォーマンスを向上させ、又書き込み回数によって寿命が決まる記録メディアを使用する場合、記録メディアの長寿命化を図ることが可能になる。
【発明を実施するための最良の形態】
【０００７】
今日、情報処理機能を持つ装置として様々な情報処理装置が存在し、これらの装置では、内蔵のＲＯＭに代えて、機能の拡張や装置のコストダウンを図るために、装置本体に挿抜可能なディスクやカード等の記録メディアを使用している。例えば、ＰＣ（パーソナルコンピュータ）、携帯電話、プリンタ等で使用する場合、機器間での互換性が必要になることもあって、使用する際に記録メディアの規格に従った運用が求められる。
また、此の種の記録メディアを使用する際に起きる問題として、記録メディアへのデータ書き込み途中に記録メディアが抜かれたり、電源断等による障害の発生が不可避である。
本発明は、このような背景のもとに、記録メディアの規格に準拠し、他の情報処理装置との互換性を保つことが可能な方式によって、電源断等の障害に対応するデータ修復等の処理を行えるようにするものである。
【０００８】
以下に、本発明の情報処理装置に係わる実施形態を説明するが、実施形態の説明に先だって、記録メディアの規格に準拠した方式によって、電源断等の障害に対応するデータ修復等の処理を行えるようにするための基本操作の概念を説明する。
本方式では、データを記憶領域に書き込む際に、電源断等の障害時に必要なデータ修復処理を可能にするために「ログ書き込み」と称する処理を合わせて行い、障害の復帰時に、「ログ書き込み」をもとにデータ修復処理を行う。
図１は、この書き込み処理の操作手順を説明するための図で、（Ａ）→（Ｂ）→（Ｃ）という手順で書き込み処理が行われる。同図において、情報処理装置１００で生成されたデータが、装置側から記録メディア２００において記録領域２３０として管理されている領域の指定の格納場所に書き込まれれば、正常なデータの書き込みの完了となる。
本発明では、このデータ書き込みの過程で「ログ書き込み」を行う。「ログ書き込み」は、データ修復処理を可能にするために、図１（Ａ）に示すように、ログ領域２１０に「データ」と「書き込み先アドレス／書き込みデータサイズ」を一緒に書き込む（以下、これらを「ログデータ」と称する）。ここに、ログ領域２１０は、記録メディア２００の規格に定められているデータを書き込む記録領域２３０とは別に、カスタマーによって自由に使用できる領域として設定し（ここでは、「ログ領域」と称する）、この領域を使用する。
「ログ書き込み」を行った後、図１（Ｂ）に示すように、記録領域２３０にデータを書き込んでいく（ここでは「データ書き込み」と称する）。この「データ書き込み」の途中で、電源断等の障害が発生し、未書き込みの状態になったデータが修復の対象になり、修復にあたっては、「ログ領域」に書き込まれたログデータ、即ち、データ修復等に必要な「書き込み先アドレス／書き込みデータサイズ」と「データ」が用いられる。
「データ書き込み」を完了した場合には、もはや「ログ領域」に書き込まれたログデータは不要であるから、図１（Ｃ）に示すように、「ログ領域」を無効化する（ここでは「ログ消去」と称する）。
また、障害が発生した場合、障害の復帰時に、「ログ書き込み」をもとにデータ修復処理を行うようにする。図２は、この修復処理を説明するための図である。
上記した書き込み手順における図１（Ｂ）に示す「データ書き込み」の途中で、電源断等の障害が発生した場合、「データ書き込み」は未完であり、ログ領域２１０の書き込みは無効化されていないので、このデータを用いて、未書き込みの状態になったデータに対する修復処理を行う。即ち、図２に示すように、「ログ領域」に書き込まれた、データ修復等に必要な管理情報としてのログデータを参照して、修復処理が行われる。
【０００９】
上記のような基本操作に従って行われる、データ修復機能を備えた情報処理装置に係わる実施形態を説明する
図３は、本実施形態に係わる情報処理装置の構成例を示す。
図３において、本発明を適用する情報処理装置として、プリンタ１００ａ、ＰＣ１００ｂ及び携帯電話１００ｃが例示されている。これらの情報処理装置は、挿抜可能な記録メディア２００を利用するために、それぞれ図示しないコネクタやドライバを介して記録メディア２００を接続可能としている。
また、各情報処理装置に内蔵されたＣＰＵ１１０は、それぞれの装置が持つ機能に従い情報を処理するために必要なプログラムを動作させることにより、装置全体を制御する手段として働く。特に、本実施形態では、記録メディア２００への「ログ書き込み」をもとにデータ修復を行う機能を実現するために、下記に詳述する、ファイルシステム１６０（図４参照）及び記録メディアコントローラ１２０を動作させる。なお、図３では省略されているが、ＣＰＵ１１０の制御下には、通常、処理・制御システムの構成に必要とされるハードウェア要素として、情報を処理するための各種アプリケーションプログラムやデータを格納するＲＯＭ、ワークメモリとしてのＲＡＭ、情報の入出力に用いる各種デバイス及び操作・表示部（ユーザインタフェース）等がバスを介して装備されている。
情報処理装置１００ａ〜ｃは、それぞれ記録メディア２００への上記した「ログ書き込み」によって実現されるデータ修復機能を搭載することによって、各情報処理装置の間で記録メディアの互換性を実現し、共用することが可能になり、相互に機能を拡張することが可能になる。
【００１０】
上記情報処理装置におけるデータ修復機能について、以下に詳細に説明する。
図４は、データ修復機能を有するファイルシステムに係わる構成を示す図である。
情報処理装置１００は、装置が搭載するアプリケーションによって生成されたデータを管理するファイルシステムが構築されており、記録メディア２００もこの管理下におかれる。図４に示すように、情報処理装置１００は、ファイルシステムに係わるソフトウェア構成として、各種アプリケーション１５０ａ〜ｃ‥‥、ファイルシステム１６０、ログ生成部１６１、ログ消去部１６３及びログ修復部１６５を備える。
ファイルシステム１６０は、ＣＰＵ１００からの指示に従って、記録メディア２００に対するデータの書き込み及びデータ修復の各処理を行う。
データの書き込みは、書き込まれる１つのデータに対し「ログ書き込み」と「データ書き込み」の両方が、始めに「ログ書き込み」、次に「データ書き込み」という順で行われる。
「データ書き込み」は、アプリケーション１５０ａ〜ｃ‥‥から受け取った書き込み対象となるデータを記録メディア２００の記録領域２３０に書き込むために、記録メディアコントローラ１２０に書き込み指令を発行する処理である。書き込み指令には、データと書き込み先を指示するために必要な、記録メディア２００の書き込み先アドレスと書き込みデータサイズが含まれる。
また、「ログ書き込み」は、データ修復等に必要なログデータを記録メディア２００のログ領域２１０へ書き込むために、記録メディアコントローラ１２０に書き込み指令を発行する処理である。この処理は、ログ生成部１６１によって行われる。
さらに、「データ書き込み」の完了時に、ログ消去部１６３によって、不要になるログ領域２１０へ書き込まれたログデータを無効化するための指令が、記録メディアコントローラ１２０に発行される。
【００１１】
データの修復は、障害の復帰時に、通常のファイルシステム動作に先だって、障害の発生により「ログ書き込み」及び「データ書き込み」が未了になっている不完全なデータに対して行われる。
ファイルシステム１６０は、先ずログ領域２１０へ書き込まれたログデータがあるか、否かをチェックし、ログデータがあれば、ログ修復部１６５にファイルシステムの修復を指示する。
ログ修復部１６５は、ファイルシステムの修復処理として、先ずログデータの不正をチェックサムにより検出し、不正なログデータを消去する。その後、正しいログデータに基づいて、不完全なデータを修復するために、記録メディアコントローラ１２０に書き込み指令を発行する。
また、修復が完了したときに、ログ消去部１６３によって、不要になるログ領域２１０へ書き込まれたログデータを無効化するための指令が、記録メディアコントローラ１２０に発行される。
なお、記録メディア２００に対するデータ書き込み及びデータ修復の各処理の詳細な処理手順については、それぞれ後記する実施形態にて処理フローに基づいて説明する。
【００１２】
次に、ファイルシステムにおける上記したデータ修復機能を有するデータ書き込みに関する処理フローを詳細に説明する。
図５は、データ修復機能を持つファイルシステムのデータ書き込みに係わる処理フローを示す。
記録メディア２００へのデータ書き込みは、ファイルシステムに用意された機能の１つである。従って、図５のフローに示すように、ファイルシステムの起動後に行われるファイルシステムチェック（ステップＳ１０１）を経て、待機し（ステップＳ１０２）、ここでデータ書き込みの指示があった場合に、ファイル書き込み処理（ステップＳ１０３）を開始する。
ファイルシステムチェック（ステップＳ１０１）では、ファイルシステムの利用にあたって正常な動作を保証するために必要な様々なチェックが行われ、その中で記録メディア２００に書き込まれたデータに異常があるか、否かをチェックする。このチェックは、ログ領域２１０のログデータによりチェックされる。チェックの結果、データに異常が存在する可能性があれば、ファイルシステム修復処理（ステップＳ１０４）でデータの修復を行う。修復処理後は、データ書き込みの指示を待つ待機状態（ステップＳ１０２）へと移行させる。
ファイル書き込み処理（ステップＳ１０３）、ファイルシステム修復処理（ステップＳ１０４）及び待機状態（ステップＳ１０２）の何れの場合にも、電源断により動作は中断され、書き込み動作を行っている途中であれば、書き込みが未了な状態で強制終了される。
なお、ファイル書き込み処理（ステップＳ１０３）、ファイルシステム修復処理（ステップＳ１０４）については、後記で詳述する。
【００１３】
図６は、データ書き込み時の処理手順を示すフロー図である。なお、図６のフローは、基本的に図５に示した全体フローの手順と変わりが無く、ここでは、ファイルシステムの起動からデータ書き込みまでの処理を通して行う場合を説明するために、書き換えたものである。
図６に示すように、データ書き込み時にファイル書き込み処理（ステップＳ２０４）を行うために、ファイルシステムを起動した時には、先ず、ファイルシステム修復処理（ステップＳ２０２）を行い、データを修復する。
このために、記録メディア２００のログ領域２１０にログデータが書き込まれているか、否かがチェックされる（ステップＳ２０１）。チェックの結果、ログデータがあれば、データに異常が存在する可能性があるので、ファイルシステム修復処理（ステップＳ２０２）で書き込みが未了となっているデータの修復を行う。
このデータ修復によって、障害による影響を解消した状態でなければ、データ書き込みの指示に従ったファイル書き込み処理（ステップＳ２０４）が実行できない手順とする。
この手順を実行することによって、記録領域の構成情報を破壊してしまう、という危険を回避することが可能になる。
【００１４】
図７は、図６のフローに示したファイル書き込み処理（ステップＳ２０４）の手順をより詳細に示すフロー図である。
ファイル書き込み処理では、書き込み対象データをログ領域２１０に書き込むログ書き込み（ステップＳ３０２）と記録領域２３０に書き込むデータ書き込み（ステップＳ３０３）を行う。これらの書き込みは、上記の書き込み処理の基本操作（図１参照）に示したように、始めにログ書き込みを行い、その後、データ書き込みを行うという順である。
データ書き込みの際には、ファイルシステム１６０は、アプリケーション１５０ａ〜ｃ‥‥から受け取った書き込み対象となるデータを記録メディア２００の記録領域２３０に書き込むための指令を記録メディアコントローラ１２０に発行する。書き込み指令には、書き込み対象となるデータに対し、ファイルシステム１６０が求めた書き込み先（書き込み開始）アドレスと書き込みデータサイズが指示される。この指示を受けて、記録メディアコントローラ１２０は、記録メディア２００へのデータ書き込みを行う。
ログ書き込みの際には、ログ生成部１６１は、ファイルシステム１６０によって登録されたログ、即ち、書き込み対象となるデータ、書き込み開始アドレス及び書き込みデータサイズよりなる登録ログをもとに、ログデータを生成し、このログデータを記録メディア２００のログ領域２１０に書き込むための指令を記録メディアコントローラ１２０に発行する。この指令を受けて、記録メディアコントローラ１２０は、記録メディア２００へのログ書き込みを行う。
【００１５】
ここで、ログ領域２１０に書き込むログデータの構成について説明する。
図８は、ログデータの構成を説明するための図である。同図示の構成例は、書き込み対象データを、各々ログ１，ログ２，ログ３，‥‥として、複数個指示することを可能にした方式を採用した場合で、各ログに順に通し番号を、ログ１，ログ２，ログ３，‥‥と振ることによりログを特定する（つまり、通し番号が大きい方が後から書き込まれたものとなる）。また、各ログのログデータは、ログ１を例にすると、各々書込内容１−ａ，書込内容１−ｂ，‥‥として示すように、記録領域２３０の複数の場所にデータが書き込まれるのに対応して、書き込み場所毎に、データ修復に必要な「書き込み開始アドレスと書き込みデータサイズ」＋「データ列」が書き込まれる。また、ログデータの不正をチェックするために必要なデータとして、ログ全体のチェックサムが、ログ毎に書き込まれる。なお、ログデータの不正チェックについては、下記の修復処理において詳述する。
ログ書込みにおいては、図８に示すような構成のログデータをログ領域２１０に書き込むので、図７に示すファイル書き込み処理のフローにおいては、処理の始めにログに通し番号を指定して（ステップＳ３０１）、各ログのファイル書き込み処理を管理可能とする。
【００１６】
上記のように、始めにログ書き込み（ステップＳ３０２）を行い、その後、データ書き込み（ステップＳ３０３）を行うという順で記録メディア２００への書き込みを行い、これらの処理が完了すれば、ログ領域２１０に書き込まれたログデータは、もはや不要であるから、ログを無効化するログ消去処理を行い（ステップＳ３０４）、ファイル書き込みの処理フローを終了する。
ファイルシステム１６０は、記録メディアコントローラ１２０を通して記録領域２３０へのデータ書き込み完了が通知されてきたことを条件に、ログを無効化する処理をログ消去部１６３に指示する。この指示を受けるログ消去部１６３は、記録メディア２００のログ領域２１０に書き込まれたログデータを消去するための指令を記録メディアコントローラ１２０に発行する。この指令を受けて、記録メディアコントローラ１２０は、ログ領域２１０に書き込まれたログデータを消去する。
なお、ファイル書き込みの処理フローの途中で、電源断等の障害が起きた場合には、記録メディア２００への書き込み処理やログ消去処理は、同時に中断し、書き込みデータは、未了のままにおかれる。
【００１７】
図９は、図６のフローに示したファイルシステム修復処理（ステップＳ２０２）の手順をより詳細に示すフロー図である。
ファイルシステム修復処理では、記録領域２３０へのデータ書き込みが未了になっている場合に、未了になっているデータを修復する処理を行う。この修復は、上記したファイル書き込み処理（図６、ステップＳ２０４）において説明したように、電源断等の障害によりデータ書き込みが未了になっている場合には、ログ領域２１０には、ログデータが残っているので、このデータを用いて修復処理を行う。
ファイルシステム修復処理が必要か、否かは、上述のように、ファイルシステム１６０がログデータの存在の有無をチェックし、ログデータがあれば、ログ修復部１６５に修復を指示する。
ログ修復部１６５は、図９のフローに従って、先ずチェックサムが不正なログの消去を行う（ステップＳ４０１）。この処理は、電源断等の障害が、記録領域２３０へのデータ書き込みの未了だけではなく、図１０の（Ａ）に示すように、ログ領域２１０へのログ書き込みを未了にする場合が有り、この場合を考慮したものである。ログ書き込みの途中で障害が発生すると、ログデータが未了となり、図１０の（Ｂ）に示すように、ログのデータ量とチェックサムが一致しなくなるので、これらの関係を調べることにより、不正を判定するができる。
【００１８】
図１１は、このログの判定処理のフローを示す。図１１の処理手順によると、ログ単位にログデータのデータ量（バイト）を求める（ステップＳ５０１）。図８に示すように、複数の書き込み領域のログデータを持つ場合には、全てのログデータのトータルバイト数を算出する。次に、算出したトータルバイト数をこのログに付与されているチェックサムと比較するために、トータルバイト数からチェックサムを減算する（ステップＳ５０２）。ログに不正が無ければ、減算結果は「０」であるから、減算結果が「０」であるか、否かをチェックし（ステップＳ５０３）、「０」の場合には、ログを有効とする、判定結果を得る（ステップＳ５０４）。他方、「０」ではない場合には、ログに不正があるとみなして、ログを無効とする、判定結果を得る（ステップＳ５０５）。
この判定結果により、ログに不正があるとみなされるログデータは、不要である従って、ログ修復部１６５は、このログを無効化するログ消去処理をログ消去部１６３に指示する。この指示を受けるログ消去部１６３は、記録メディア２００のログ領域２１０に書き込まれた該当するログデータを消去するための指令を記録メディアコントローラ１２０に発行する。この指令を受けて、記録メディアコントローラ１２０は、ログ領域２１０に書き込まれた不正なログデータを消去する。
【００１９】
前段（ステップＳ４０１）でログに不正が無く、有効と判定されたログは、修復の対象となるログであるから、該当するログのデータを参照して、書き込み予定領域リストを作成し（ステップＳ４０２）、このリストにより修復処理を管理する。本実施形態では、図８に示すように、ファイル書き込みの際に、複数データに対応可能な処理手順を用意している（図８における、ログ１，ログ２，ログ３，‥‥、がそれぞれ有する複数の書込内容）ので、修復に当たっても、予定領域リストに登録されたデータ（書込内容）を１つずつ指定の領域に書き込んでいく、という手順に従って処理する。
処理手順としては、予定領域リストに登録されたデータの書き込みを全て終了するまでは、同じ処理手順を繰り返すので、未書き込みの書き込み予定領域があるか、否かをチェックし（ステップＳ４０３）、書き込み予定領域が有るうちは、書き込み処理の手順を進める（ステップＳ４０３-YES）。
書き込み処理の始めに、書き込み予定領域リストから１つの領域を書き込みの対象として選択する（ステップＳ４０４）。
このとき、選択した領域に複数のログデータが存在する場合がある。この場合に、通し番号の小さいログから順に修復処理を行っていく、即ち、全てのログを書き込み対象として上書き処理を繰り返す、という方法により実施することが可能である。ただ、この方法によると、頻繁に書き換えが行われる場合に、ログの数だけ書き込み処理が繰り返されることになり、処理にかなりの時間を要する。その上、書き込み回数によって寿命が決まる記録メディアの場合、寿命を縮めてしまうことになる。
【００２０】
そこで、本実施形態では、書き込みの対象となる１領域に複数のログデータが存在する場合に、最後のログデータのみでデータを修復する方式を採用することによって、上記した問題の解決を図るようにする。
図１２は、この方式による複数のログを修復する処理を説明する図である。
図１２を参照して、この方式による修復処理を説明する。この例では、ログ１、ログ２、ログ３の３つのログが修復の対象となる場合を示している。図１２（Ａ）には、ログ領域２１０に記録されたログ１の２つのログデータ（書込内容１−ａと書込内容１−ｂ）とこのログデータをもとに修復すべき記録領域２３０の２箇所の領域ａ，ｂが示されている。ログ１の次にログ２の書き込みが指示されている。ログ２には、図１２（Ｂ）に示すように、２つのログデータ（書込内容２−ａと書込内容２−ｂ）により、ログ１の２箇所の領域ａ，ｂ（書込内容１−ａと書込内容１−ｂ）への上書きが、指示されている。また、次のログ３には、図１２（Ｃ）に示すように、２つのログデータ（書込内容３−ａと書込内容３−ｃ）により、ログ２の１箇所の領域ａ（書込内容２−ａ）への上書きと、２箇所の領域ａ，ｂと異なる領域ｃ（書込内容３−ｃ）が、修復すべき記録領域として指示されている。
【００２１】
上記のような上書きが指示された複数ログを修復する際に、最後のログデータのみで、即ち、各ログに付けられた通し番号のうち最も大きい番号の書込内容（ログデータ）による１回の書き込みでデータの修復を行う。
図１２に示す例では、同図（Ｄ）に示すように、ログ１〜３の３つ修復対象のログにより指示された３箇所の領域ａ，ｂ，ｃのうち、先ず、領域ａを修復する。この例では、通し番号の最も大きいログ３のログデータ（書込内容３−ａ）のみを用いて修復する。
次に、領域ｂの修復で、この例では、図１２（Ｅ）に示すように、通し番号の最も大きいログ２のログデータ（書込内容２−ｂ）のみを用いて修復する。ここまでの修復を終了すると、ログ１及びログ２の修復を完了する。ログ領域２１０に書き込まれているログは、データ書き込みが未了であることを表すものであるから、この時点で完了したログ１及びログ２を消去する。
次に、領域ｃの修復で、この例では、図１２（Ｆ）に示すように、ログ３だけであるから、このログデータ（書込内容３−ｃ）を用いて修復する。この修復を終了すると、ログ３の修復も完了する。従って、この時点で完了したログ３を消去し、全ての修復処理を終える。
【００２２】
図１２の例により説明した方式による複数ログの修復処理は、図９のフローにおいては、ステップＳ４０５以降の手順によって行われる。
ステップＳ４０４で、書き込み予定領域リストから選択された１領域に複数ログが対応する場合、各ログに付けられた通し番号のうち最も大きい番号をサーチする（ステップＳ４０５）。
次いで、このサーチの結果として得られた最も大きい番号のログのみを用い、即ちその他のログは省略して、このログに示されている書込内容（ログデータ）に基づいて、記録領域２３０へのデータ書き込み（ステップＳ４０６）、データの修復を行う（図１２（Ｄ）〜（Ｆ）、参照）。ログデータに基づく書き込み処理は、ログデータとして書き込まれている、「書き込み開始アドレスと書き込みデータサイズ」＋「データ列」、から取り出した「データ列」を書き込み対象データとして、「書き込み開始アドレスと書き込みデータサイズ」によって記録メディア２３０の記録領域を指定し、記録メディアコントローラ１２０に書き込みが指示される。この指示を受けて、記録メディアコントローラ１２０は、記録メディア２００へのデータ書き込みを行う。
ログデータをもとに記録領域２３０にデータが書き込まれ、記録メディアコントローラ１２０からデータ書き込みの終了通知を受け取ったときに、書き込み予定領域リスト上で書き込みの済んだログデータであることがわかるように管理する。
【００２３】
この後、データ書き込みが済み、不要となるログを消去する必要があるので、消去すべきログがあるかをチェックする（ステップＳ４０７）。このチェックは、修復によって１ログ内における全ての書込内容（ログデータ）の修復が済んだか、否かを、書き込み予定領域リスト上で、未了のログデータの有無を調べる。なお、このときに、１領域に複数ログが対応する場合に、データ書き込みが省略されたログデータも終了したものとみなす。
ここで、１ログ内における全てのログデータの修復が済んでいれば（ステップＳ４０７-YES）、このログは消去すべきものであるから、ログ消去処理を行う（ステップＳ４０８）。ログ消去処理は、ログ消去部１６３によって、記録メディア２００のログ領域２１０に書き込まれた該当するログデータを消去するための指令が記録メディアコントローラ１２０に発行され、この指令を受ける記録メディアコントローラ１２０によって、ログ領域２１０に書き込まれたログデータが消去される。
ログの消去処理を行った後、次のログデータによる修復を行うために、ステップＳ４０３に戻し、書き込み予定領域リストに未書き込みの書き込み予定領域があるか、否かをチェックし、その結果に従い、再び上述の手順に従って修復処理を行う。
また、１ログ内における全てのログデータの修復が済んでいない場合には（ステップＳ４０７-NO）、ログの消去はできないので、ステップＳ４０８のログ消去処理は実行しないで、次のログデータによる修復を行うために、ステップＳ４０３に戻し、書き込み予定領域リストに未書き込みの書き込み予定領域があるか、否かをチェックし、その結果に従い、再び上述の手順に従って修復処理を行う。
ステップＳ４０３のチェックで、書き込み予定領域リストの全ての書き込みが終了した、という結果を得た場合には（ステップＳ４０３-NO）、ファイルシステム修復を抜け、図６のフローにおけるファイル書き込みの指示待ち（ステップＳ２０３）となる。
【００２４】
上記実施形態では、書き込みの対象となるデータを複数個のログ（ログ１，ログ２，ログ３，‥‥）として、指示することを可能にしたが、ファイル書き込みは、図７のフローに示したように、ログ毎に処理する。従って、記録メディア２００への書き込みは、ログの数だけ、図７のフローに示した書き込み処理を繰り返して行うことになる。
このように、記録メディア２００に何度も書き込みを行なうと、
(1)書き込みに必要な処理ステップが多くなり、パフォーマンスが悪くなる。
(2)記録メディアの寿命が短くなる （記録メディアの寿命は、書き込み回数
に依存している）。
という不都合が生じる。
そこで、ディスクキャッシュを利用して、アプリケーションがファイルへの書き込み指示を行なっても、すぐに記録メディアに書き込まず、一旦ディスクキャッシュに複数ログ分のデータを溜め、ある程度ディスクキャッシュにデータが溜ったところで、記録メディアに反映する方式を適用して、上記の不都合が生じないようにする。
この方式を適用する際、ディスクキャッシュのデータを記録メディアに反映するタイミングは、
(1)前回の反映から所定時間が経過した時。
(2)キャッシュへの書き込みを所定回数行なった時。
(3)キャッシュが一杯になり、これ以上の書き込みが不可能になった時。
の何れかを採用する。
なお、ディスクキャッシュのデータを記録メディアに反映する際の書き込み処理の手順は、上記の書き込み処理の基本操作（図１参照）に従い、始めにログ領域２１０にログ書き込みを行い、その後、記録領域２３０にデータ書き込みを行う、という手順が、当然守られる。
【００２５】
図１３は、本実施形態のデータ修復機能を有するファイルシステムに係わる構成を示す図である。
図１３に示す構成は、先の実施形態で示した図４の構成に、本実施形態で利用するディスクキャッシュ１６７が付加されている以外に基本的に図４の構成と変わりが無い。ディスクキャッシュ１６７は、ファイル書き込みにおけるキャッシュ動作、即ち、ファイルシステム１６０から受け取るデータと、ログ生成部１６１で生成されたログデータに対するキャッシュ機能を持つ。このために、ディスクキャッシュ１６７は、ファイルシステム１６０及びログ生成部１６１と記録メディアコントローラ１２０の間に設けられる。ディスクキャッシュ１６７にキャッシュされたデータは、上記した条件によるタイミングで記録メディア２００のぞれぞれの領域に書き込まれる。この書き込み動作は、ファイルシステム１６０により管理される。以下の実施形態（図１４及び図１５に示すファイル書き込みフロー）においては、キャッシュが一杯になったタイミングで記録メディア２００へ書き込むようにする動作例を示す。
なお、ディスクキャッシュ１６７によるキャッシュ機能以外のファイルシステムに係わる構成は、基本的に図４の構成と同様であるから、先のファイルシステムに係わる構成の説明を参照することとし、ここでは、説明を省略する。
【００２６】
次に、キャッシュ機能を備えた本実施形態のファイルシステムによる、データ書き込み処理について、フロー図を用いて説明する。本実施形態におけるデータ書き込み処理の基本フローは、上述のキャッシュ機能を持たないシステムの処理フローと同様であり、図６に示した処理フローに従う。本実施形態では、図６に示す基本フローにおけるファイル書き込み（ステップＳ２０４）に、以下に説明する本実施形態の処理フローが適用される。
図１４及び図１５は、本実施形態のファイル書き込みの処理手順を示すフロー図である。図１５は、図１４における“キャッシュを記録メディアに反映させる処理”（ステップＳ６０２，Ｓ６０６）のサブルーチンを示す。
このファイル書き込みの処理では、ログ領域２１０へのログ書き込みと記録領域２３０へのデータ書き込みを行う。これらの書き込みは、上記の書き込み処理の基本操作（図１参照）に示したように、始めにログ書き込みを行い、その後、データ書き込みを行うという順である。この手順がディスクキャッシュ１６７を通して行われる。
データ書き込みでは、ファイルシステム１６０によって、アプリケーション１５０ａ〜ｃ‥‥から受け取った書き込み対象となるデータが、ディスクキャッシュ１６７に格納される。
また、ログ書き込みでは、ログ生成部１６１によって、ファイルシステム１６０によって登録されたログ、即ち、書き込み対象となるデータ、書き込み開始アドレス及び書き込みデータサイズよりなる登録ログをもとに、ログデータが生成され、このログデータがディスクキャッシュ１６７に格納される。
格納によってディスクキャッシュ１６７が満杯の状態になることが予測されるときに、ファイルシステム１６０は、ディスクキャッシュ１６７のデータを記録メディア２００へ書き込む（反映させる）指示を出す。この指示により、ディスクキャッシュ１６７に格納された各データは、記録メディア２００のログ領域２１０への書き込み、記録領域２３０への書き込み、という順で、記録メディアコントローラ１２０を通して、それぞれの領域へ転送され、書き込みが行われる。
【００２７】
本実施形態のファイル書き込みのフローでは、図１４に示すように、始めに次に行うログ処理で、ディスクキャッシュ１６７が満杯になるか、否かをチェックする（ステップＳ６０１）。この結果、満杯にならないと判断されれば、処理の対象となっているログに対しログデータの生成を行い、ディスクキャッシュ１６７に格納する処理を行う（ステップＳ６０４）。ただし、ログデータを格納する処理を行う前に、このファイル書き込みの以降に行われる処理フローにおいて、ログ単位で処理を管理するために、各ログに通し番号を指定する（ステップＳ６０３）。
ステップＳ６０４でディスクキャッシュ１６７にログデータを格納する処理を終え、次の処理対象データをディスクキャッシュ１６７に格納する前に、次のデータの格納でディスクキャッシュ１６７が満杯にならないか、否かをチェックする（ステップＳ６０５）。この結果、満杯にならないと判断されれば、処理対象データをディスクキャッシュ１６７に格納する処理を行い（ステップＳ６０７）、この処理フローを抜ける。
【００２８】
ディスクキャッシュ１６７が満杯にならないか、否かのチェックは、上記のように、ログデータ、処理対象データをディスクキャッシュ１６７に格納する前にそれぞれ行い（ステップＳ６０１，ステップＳ６０５）、満杯になると判断されれば、今あるキャッシュを記録メディア２００に反映させる（ステップＳ６０２，ステップＳ６０６）。この結果、再びキャッシュ動作が可能な状態になり、ログデータ及び処理対象データを受け入れることが可能になる。
キャッシュの記録メディア２００への反映（ステップＳ６０２，ステップＳ６０６）は、図１５のフローに従って行われる。このフローは、記録メディアへの書き込み処理の基本操作（図１参照）に示したように、始めにログ書き込み、その後、データ書き込みを行い、データ書き込みの完了後に初めに書き込んだログデータを消去する、という手順が守られる。
図１５に示すように、始めにディスクキャッシュ１６７に格納されたログデータのログ書き込みを行い、その後、不要になるキャッシュ内のログデータを消去する（ステップＳ７０１）。
次いで、ディスクキャッシュ１６７に格納された処理対象データのデータ書き込みを行い、その後、不要になるキャッシュ内のデータを消去する（ステップＳ７０２）。
データ書き込みが完了すれば、ログ領域２１０に書き込まれたログデータは、もはや不要であるから、ログを無効化するログ消去処理を行い（ステップＳ７０３）、キャッシュから記録メディアへの書き込み処理のフローを抜ける。
なお、上記したファイル書き込みの処理フロー（図１４）においては、キャッシュが満杯になるタイミングで記録メディア２００への書き込みを行う実施形態を示したが、所定時間の経過、所定のキャッシュ書き込み回数の経過によって、キャッシュから記録メディアへの書き込み処理を行う場合には、ステップＳ６０１，ステップＳ６０５において、それぞれのチェック方法を採用することにより実施することが可能である。
上記実施形態に示したように、キャッシュ動作を通して記録メディアへの書き込み処理を行うことにより、記録メディア２００への書き込み処理のパフォーマンスを向上させ、記録メディアの長寿命化を図ることが可能になる。
【図面の簡単な説明】
【００２９】
【図１】データ修復を可能にする本発明の書き込み処理における基本操作の説明図を示す。
【図２】障害による書き込み異常の生じたデータの修復処理における基本操作の説明図を示す。
【図３】本発明の実施形態に係わるデータ修復を可能とした情報処理装置の構成例を示す。
【図４】データ修復機能を持つファイルシステムに係わる構成を示す。
【図５】データ修復機能を持つファイルシステムのデータ書き込みに係わる処理フローを示す。
【図６】データ書き込み時の処理手順を示すフロー図である。
【図７】図６のフローに示したファイル書き込み処理（ステップＳ２０４）の手順をより詳細に示すフロー図である。
【図８】ログデータの構成を説明するための図である。
【図９】図６のフローに示したファイルシステム修復処理（ステップＳ２０２）の手順をより詳細に示すフロー図である。
【図１０】ログ書き込みの未了状態及びチェックサムにより判定される不正ログデータを示す。
【図１１】不正ログの判定処理のフローを示す。
【図１２】複数ログの修復処理の説明図を示す。
【図１３】本発明の実施形態に係わるデータ修復を可能とした情報処理装置の構成例を示す。
【図１４】データ修復機能を持つファイルシステムのデータ書き込み（キャッシュを利用）に係わる処理フローを示す。
【図１５】図１４における“キャッシュを記録メディアに反映させる処理”（ステップＳ６０２，Ｓ６０６）のサブルーチンを示す。
【図１６】挿抜可能な記録メディアへの書き込みの説明図を示す。
【符号の説明】
【００３０】
１００・・情報処理装置、            １２０・・記録メディアコントローラ、
１５０ａ，１５０ｂ，１５０ｃ・・アプリケーション、
１６０・・ファイルシステム、        １６１・・ログ生成部、
１６３・・ログ消去部、              １６５・・ログ修復部、
１６７・・ディスクキャッシュ、      ２００・・記録メディア、
２１０・・ログ領域、                ２３０・・データ領域。
【図１】
2006134125.tif 000003
【図２】
2006134125.tif 000004
【図３】
2006134125.tif 000005
【図４】
2006134125.tif 000006
【図５】
2006134125.tif 000007
【図６】
2006134125.tif 000008
【図７】
2006134125.tif 000009
【図８】
2006134125.tif 000010
【図９】
2006134125.tif 000011
【図１０】
2006134125.tif 000012
【図１１】
2006134125.tif 000013
【図１２】
2006134125.tif 000014
【図１３】
2006134125.tif 000015
【図１４】
2006134125.tif 000016
【図１５】
2006134125.tif 000017
【図１６】
2006134125.tif 000018