(57)【要約】【課題】  記憶媒体に対する無駄のないブロック単位でのライトプロテクト及びその復旧を可能とする。【解決手段】  データを所定サイズのブロック単位でライトプロテクトするライトプロテクト手段と、前記ライトプロテクト手段によりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止手段と、前記記憶媒体のデータ領域におけるデータ単位であるクラスタと、前記クラスタの境界と少なくとも一つ以上の連続した前記ブロックの境界を一致させるブロック境界一致手段と、を具備する。【選択図】  図２２
2006146505.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体のデータ記憶を管理する記憶管理装置であって、
データを所定サイズのブロック単位でライトプロテクトするライトプロテクト手段と、
前記ライトプロテクト手段によりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止手段と、
前記記憶媒体のデータ領域におけるデータ単位であるクラスタの境界と少なくとも一つ以上の連続した前記ブロックの境界を一致させるブロック境界一致手段と、を具備することを特徴とする記憶管理装置。
【請求項２】
前記ライトプロテクト手段によりライトプロテクトされたブロックのライトプロテクトを解除するライトプロテクト解除手段をさらに具備することを特徴とする請求項１に記載の記憶管理装置。
【請求項３】
データ書き込み時に、データが格納される少なくとも一つ以上の前記ブロックの全てを、データ書き込み後に前記ライトプロテクト手段によりライトプロテクトをかけるライトプロテクト書き込み手段をさらに具備することを特徴とする請求項１に記載の記憶管理装置。
【請求項４】
データ書き込み時に、書き込みデータを連続領域に格納する連続領域格納手段と、前記連続領域格納手段によりデータを書き込む際に、前記ライトプロテクト書き込み手段により、データが格納される少なくとも一つ以上の前記ブロックの全てを、データ書き込み後にライトプロテクトをかける連続領域ライトプロテクト書き込み手段と、をさらに具備することを特徴とする請求項３記載の記憶管理装置。
【請求項５】
前記ブロック境界一致手段により、前記クラスタの境界と少なくとも一つ以上の前記ブロックの境界が一致している場合において、前記クラスタに一意のアドレスを割り当てるクラスタアドレス割り当て手段と、前記クラスタアドレス割り当て手段により割り当てられたクラスタアドレスにおいて、所定アドレスを持つクラスタを構成する前記ブロック全てに、前記ライトプロテクト手段によりライトプロテクトをかけるクラスタライトプロテクト手段と、をさらに具備することを特徴とする請求項１に記載の記憶管理装置。
【請求項６】
データ書き込み時に、データが格納される少なくとも一つ以上のクラスタを、データ書き込み後に、前記クラスタライトプロテクト手段によりライトプロテクトをかけるクラスタライトプロテクト書き込み手段をさらに具備することを特徴とする請求項５記載の記憶管理装置。
【請求項７】
データ書き込み時に、書き込みデータを連続する前記クラスタに格納する連続クラスタ格納手段と、前記連続クラスタ格納手段によりデータを書き込む際に、前記クラスタライトプロテクト書き込み手段により、データが格納される少なくとも一つ以上の前記クラスタの全てを、データ書き込み後にライトプロテクトをかける連続クラスタライトプロテクト書き込み手段と、を具備することを特徴とする請求項５記載の記憶管理装置。
【請求項８】
ライトプロテクトされたブロック以外の領域のデータが不当に書き換え、及び削除された場合に、不当な書き換え及び削除が行われる前に、前記連続領域ライトプロテクト書き込み手段により書き込まれたデータの先頭が存在するアドレスを特定するデータ先頭アドレス特定手段と、ライトプロテクトされたブロック以外の領域のデータが不当に書き換え、及び削除された場合に、不当な書き換え及び削除が行われる前に、前記連続領域ライトプロテクト書き込み手段により書き込まれたデータの、サイズを特定するデータサイズ特定手段と、前記データ先頭アドレス特定手段により特定したアドレスから、前記データサイズ特定手段により特定したサイズ分データを取得するデータ復旧手段と、をさらに具備することを特徴とする請求項５記載の記憶管理装置。
【請求項９】
記憶媒体のデータ記憶を管理する記憶管理方法であって、
前記記憶媒体のデータ領域におけるデータ単位であるクラスタの境界と少なくとも一つ以上の連続した所定サイズのブロックの境界を一致させるブロック境界一致ステップと、
データを前記ブロック単位でライトプロテクトするライトプロテクトステップと、
前記ライトプロテクトステップによりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止ステップと、を具備することを特徴とする記憶管理方法。
【請求項１０】
前記ライトプロテクトステップによりライトプロテクトされたブロックのライトプロテクトを解除するライトプロテクト解除ステップをさらに具備することを特徴とする請求項９に記載の記憶管理方法。
【請求項１１】
データ書き込み時に、データが格納される少なくとも一つ以上の前記ブロックの全てを、データ書き込み後に前記ライトプロテクトステップによりライトプロテクトをかけるライトプロテクト書き込みステップをさらに具備することを特徴とする請求項９に記載の記憶管理方法。
【請求項１２】
データ書き込み時に、書き込みデータを連続領域に格納する連続領域格納ステップと、前記連続領域格納ステップによりデータを書き込む際に、前記ライトプロテクト書き込みステップにより、データが格納される少なくとも一つ以上の前記ブロックの全てを、データ書き込み後にライトプロテクトをかける連続領域ライトプロテクト書き込みステップと、をさらに具備することを特徴とする請求項１１記載の記憶管理方法。
【請求項１３】
前記ブロック境界一致ステップにより、前記クラスタの境界と少なくとも一つ以上の前記ブロックの境界が一致している場合において、前記クラスタに一意のアドレスを割り当てるクラスタアドレス割り当てステップと、前記クラスタアドレス割り当てステップにより割り当てられたクラスタアドレスにおいて、所定アドレスを持つクラスタを構成する前記ブロック全てに、前記ライトプロテクトステップによりライトプロテクトをかけるクラスタライトプロテクトステップと、をさらに具備することを特徴とする請求項９に記載の記憶管理方法。
【請求項１４】
データ書き込み時に、データが格納される少なくとも一つ以上のクラスタを、データ書き込み後に、前記クラスタライトプロテクトステップによりライトプロテクトをかけるクラスタライトプロテクト書き込みステップをさらに具備することを特徴とする請求項１３記載の記憶装置方法。
【請求項１５】
データ書き込み時に、書き込みデータを連続する前記クラスタに格納する連続クラスタ格納ステップと、前記連続クラスタ格納ステップによりデータを書き込む際に、前記クラスタライトプロテクト書き込みステップにより、データが格納される少なくとも一つ以上の前記クラスタの全てを、データ書き込み後にライトプロテクトをかける連続クラスタライトプロテクト書き込みステップと、を具備することを特徴とする請求項１３記載の記憶管理方法。
【請求項１６】
ライトプロテクトされたブロック以外の領域のデータが不当に書き換え、及び削除された場合に、不当な書き換え及び削除が行われる前に、前記連続領域ライトプロテクト書き込みステップにより書き込まれたデータの先頭が存在するアドレスを特定するデータ先頭アドレス特定ステップと、ライトプロテクトされたブロック以外の領域のデータが不当に書き換え、及び削除された場合に、不当な書き換え及び削除が行われる前に、前記連続領域ライトプロテクト書き込みステップにより書き込まれたデータの、サイズを特定するデータサイズ特定ステップと、前記データ先頭アドレス特定ステップにより特定したアドレスから、前記データサイズ特定ステップにより特定したサイズ分データを取得するデータ復旧ステップと、をさらに具備することを特徴とする請求項１３記載の記憶管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体のデータ記憶を管理する記憶管理装置及び記憶管理方法に関するものである。
【背景技術】
【０００２】
近年、固定ディスクや着脱可能記憶媒体、例えばＳＤ（ＳｅｃｕｒｅＤｉｇｉｔａｉｌ）メモリカード等が、パーソナルコンピュータ、ＰＤＡ、携帯電話、デジタルスチルカメラ等で、ファイルを格納するためのストレージデバイスとして用いられている。また、光磁気ディスク等も広く利用されている。
【０００３】
これら記憶装置は、一度きりの書き込みのみ許すもの、例えば一度データを焼き付けたＣＤ−Ｒ等を除いて、記憶データを物理的に保護することは困難であり、記憶データの保護は大部分がユーザの注意に頼っていた。それは、リード／ライト可能な状態にある記憶装置内データを、特定のソフトウェア（例えば、ファイルシステム等）により管理し、プロテクトしていても、他のソフトウェアからは書換えや削除が可能だからである。特に、リード／ライト可能な着脱可能記憶媒体は、装着した機器によりデータ管理ソフトウェアが決定されるため、ソフトウェア依存のプロテクト方法では、データ保護の実現が難しい。さらに、いずれの記憶装置においても、記憶装置のフォーマットを行うと、データは全て削除されてしまう。
【０００４】
しかし近年、データ保護機能を具備する記憶装置が登場してきた。例えばＳＤメモリカード等は、記憶媒体のデータ領域全体にライトプロテクトをかける全体ライトプロテクト機能を具備している。これは、記憶媒体の側面のスイッチにより、ライトプロテクトＯＮ及びＯＦＦを切り替えることにより、記憶媒体内データ全てをライトプロテクトすることができるという機能である。また、ＳＤメモリカードは、記憶媒体のデータ領域一部分にライトプロテクトをかける部分ライトプロテクト機能を具備している。これは、記憶媒体内データ領域を、例えば２ＫＢといったＷＰブロックと呼ばれる単位で分割し、該ＷＰブロック単位でライトプロテクトすることができるという機能である。また、クラスタ単位での記憶データの消去を管理する技術は、特許文献１に開示されている。
【特許文献１】特開２００１−１８８７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記全体ライトプロテクト機能では、一つのファイルを保護するためにも、記憶媒体全体がライトプロテクトしなくてはならないため、非効率かつ使い勝手が悪いという問題があった。
【０００６】
また、前記部分ライトプロテクト機能では、ファイルの先頭がＷＰブロックの先頭と一致していなければ、無駄にデータ領域を消費してしまうという問題があった。さらに、例えばＦＡＴファイルシステムによりデータを格納する場合、ファイルはクラスタ単位で区切られて、不連続な領域に格納されることがあるため、ファイルの位置を特定するＦＡＴ（ＦｉｌｅＡｌｌｏｃａｔｉｏｎＴａｂｌｅ）やディレクトリエントリがフォーマットやＦＡＴ更新等により変更されてしまうと、ファイルを復旧することが不可能になってしまうという問題もあった。
【０００７】
記憶媒体に対する無駄のないブロック単位でのライトプロテクト及びその復旧が可能となる記憶管理装置及び記憶管理方法を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の記憶管理装置は、記憶媒体のデータ記憶を管理する記憶管理装置であって、データを所定サイズのブロック単位でライトプロテクトするライトプロテクト手段と、前記ライトプロテクト手段によりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止手段と、前記記憶媒体のデータ領域におけるデータ単位であるクラスタの境界と少なくとも一つ以上の連続した前記ブロックの境界を一致させるブロック境界一致手段と、を具備することを特徴とする。
【０００９】
本発明の記憶管理方法は、記憶媒体のデータ記憶を管理する記憶管理方法であって、前記記憶媒体のデータ領域におけるデータ単位であるクラスタの境界と少なくとも一つ以上の連続した所定サイズのブロックの境界を一致させるブロック境界一致ステップと、データを前記ブロック単位でライトプロテクトするライトプロテクトステップと、前記ライトプロテクトステップによりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止ステップと、を具備することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、記憶媒体に対する無駄のないブロック単位でのライトプロテクト及びその復旧が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。
【００１２】
（第１の実施形態）
図１は第１の実施形態におけるカメラシステムの構成を表すブロック図である。本カメラシステムは、電子カメラと、これに着脱可能な外部記憶媒体として、ＳＤメモリカード１７、ＰＣ通信インターフェース１９、及びＰＣ通信インターフェース１９を介して電子カメラと通信可能に接続されたパーソナルコンピュータ２２から構成される。
【００１３】
１はレンズであり、２はレンズ１を通った光を電気信号として出力するＣＣＤユニットである。３はＡ／Ｄコンバータであり、ＣＣＤユニット２からのアナログ信号をデジタル信号へ変換する。４はＳＳＧユニットであり、ＣＣＤユニット２とＡ／Ｄコンバータ３に同期信号を供給する。５はＣＰＵであり、本カメラシステムにおける各種の制御を実現する。
【００１４】
６は信号処理アクセラレータであり、信号処理を高速に実現する。７は電池であり、８は電池７よりの電力を電子カメラ全体へ供給するためのＤＣ／ＤＣコンバータである。９は電源コントローラユニットであり、ＤＣ／ＤＣコンバータ８をコントロールする。１０はパネル操作・教示装置・電源のコントロールを行うサブＣＰＵである。１１はユーザへ各種の情報を表示する装置であり、液晶パネル等が用いられる。１２はコントロールパネルであり、ユーザが直接操作するレリーズスイッチ、及びメニューボタンを含む。
【００１５】
１３はＲＯＭであり、ＯＳ等のシステムプログラムを格納する。１４はＤＲＡＭであり、本電子カメラの主記憶であり。１５はフラッシュＲＯＭであり、内蔵記憶媒体として使用する。１６はＳＤカード等のカーとインターフェース部、１７はＳＤメモリカードの外部記憶媒体である。また、１８はＤＭＡコントローラ、１９はストロボである。
【００１６】
この電子カメラの撮影時の動作について説明する。コントロールパネル１２のレリーズスイッチをユーザが押すと、ＣＰＵ５がそのことを検出して撮影シーケンスを開始する。以下の動作は全てＣＰＵ５によるコントロールで行われることを前提とする。
【００１７】
さて、レリーズスイッチの押下により、ＳＳＧ４がＣＣＤ２を駆動する。ＣＣＤ２から出力されるアナログ信号は、Ａ／Ｄコンバータ３でデジタル信号へ変換される。Ａ／Ｄコンバータ３の出力は、ＤＭＡコントローラ１８によってＤＲＡＭ１４へＤＭＡ転送される。１フレーム分のＤＭＡ転送が終了した時点でＣＰＵ５は、信号シーケンスを開始する。
【００１８】
信号処理シーケンスでは、フラッシュＲＯＭ１５から信号処理プログラムを主記憶（ＤＲＡＭ１４）上に読み出し、主記憶上のデータを信号処理アクセラレータ６へ転送し信号処理を行う。ただし、信号処理アクセラレータ６は信号処理の全てを行うわけではなく、ＣＰＵ５で行う処理の特に時間のかかる処理などを助ける演算回路であり、ＣＰＵ５の処理ソフトウェアと連携して動作する。信号処理の一部または全部が終了すると画像ファイルとして、カードインターフェース１６を介して、ＳＤメモリカード１７へ記録する。このとき、ＣＰＵ５もしくは信号処理アクセラレータ６は、記録するファイルフォーマットが圧縮処理を必要とするのであれば画像ファイルの圧縮も行う。
【００１９】
図２は、図１に示したＳＤメモリカード１７に記録される画像ファイルシステムの階層構造を示す概念図であり、例えば階層Ｌ１〜Ｌ４で構成される。
【００２０】
図２において、最上位の階層Ｌ１はユーザアプリケーションで、電子カメラ内部で起動するソフトウェアであり、ファイルをファイル名でオープンして読み書きした後クローズする。階層Ｌ２は、ファイルシステムＡＰＩ層で、ユーザアプリケーションからファンクションコールによって呼び出される。階層Ｌ２がドライブ名とファイルシステムを関連付けて管理している。各ドライブ毎にファイルシステムアーキテクチャ層（階層Ｌ３）をマウントするように構成しているため、複数のファイルシステムアーキテクチャ（例えばＦＡＴ、ＨＰ−ＦＳ、ＮＦＳ、ＮＴＦＳ等）を混在されることが可能となっている。なお、ファイルシステムアーキテクチャ層が実際のファイル管理を行う部分である。最下位の階層Ｌ４がブロックデバイス層である。
【００２１】
ファイルシステムアーキテクチャ層がブロックデバイス層の提供するサービスを利用してファイル入出力を実現している。なお、ブロックデバイス層では、データを例えば５１２バイト等のセクタという単位で管理している。該ブロックデバイス層でデバイス毎の入出力制御の違いと、ヘッドやシリンダ等のパラメータの違いを吸収している。これにより、同時に複数の種類のデバイスを混在させたカメラシステムを構築することが出来る。
【００２２】
第１の実施形態におけるカメラシステムでは、ＳＤメモリカード１７のブロックデバイスがファイルシステムへ提供するサービスは、（Ａ．１）論理的なセクタ番号で指定したセクタからのデータの読み出し、ならびに（Ａ．２）論理的なセクタ番号で指定したセクタへのデータの書き込みである。
【００２３】
ここで、記憶媒体のデータ構造及びＦＡＴファイルシステムについて説明する。図５は、記憶媒体のデータ構造を示している。図５において、５０１はＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）であり、記憶媒体の先頭から５１２バイトのデータサイズを占め、図６に示す構造を持っている。該記憶媒体が起動可能な記憶媒体である場合は、６０１のブートストラップローダ、該記憶媒体の起動プログラムを所持している。起動可能ではない場合は、ブートストラップローダを持っていない。ブートストラップローダ６０１は、ＭＢＲ５０１の先頭から４４６バイトまでを占める。６０２はパーティションテーブルであり、該記憶媒体のパーティション５０２〜５０Ｎの情報が収めら、ＭＢＲ５０１の４４７バイト目から６４バイト、５１０バイト目までに格納されている。
【００２４】
パーティションとは、該記憶媒体の区分けを意味し、一つのパーティションは、一つのファイルシステムにより管理される。一つの記憶媒体は、少なくとも一つ以上のパーティションによって構成される。パーティションテーブル６０２には、各パーティションの物理的な開始位置、終了位置、論理的な開始位置、総セクタ数が収められている。例外的にパーティションが一つの場合、ＭＢＲを持たないことがある。その場合は、記憶媒体全体を一つのパーティションとみなす。
【００２５】
続いて、ＦＡＴファイルシステムで論理フォーマットされたパーティションのデータ構造を説明する。図７は、ＦＡＴ１６ファイルシステムによりフォーマットした場合のデータ構造を示している。７０１はＰＢＲ（Ｐａｒｔｉｔｉｏｎ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）で、図８に示す構造を持っている。図８の８０１はジャンプ命令で、ＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）８０３へのジャンプ命令が格納されている。８０２はＢＰＢ（ＢＩＯＳ  Ｐａｒａｍｅｔｅｒ  Ｂｌｏｃｋ）でファイルシステムが扱う該パーティションに特化した情報が記録されている。図９は該ＢＰＢに含まれるパラメータを示している。８０３はＩＰＬでこのパーティションの起動プログラムが収められている。
【００２６】
図７の７０２、及び７０３はＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）で、ユーザデータ領域７０５に格納されているファイルの位置情報が収められている。ＦＡＴファイルシステムは、ＦＡＴ７０２及び７０３により、パーティションに格納されているファイルの位置情報を取得する。そのため、ユーザデータ領域にファイルが格納されていても、ＦＡＴ７０２及び７０３に該ファイルの位置情報が格納されていなければ、ファイルとして認識できない。ＦＡＴ７０２及び７０３には、全く同じデータが収められており、片方はバックアップとして利用する。７０４はルートディレクトリエントリで、ルートディレクトリに格納されたファイルの管理情報が収められている。７０５はユーザデータ領域でファイルの本体が格納されている。
【００２７】
第１の実施形態におけるＳＤメモリカード１７は、前記ＭＢＲを持たず、データ領域全体が一つのパーティションを構成し、該パーティションは、ＦＡＴ１６ファイルシステムによりフォーマットされ、管理されている。ここで、ＳＤメモリカード１７に対するファイルの書き込み、読み出し動作について説明する。
【００２８】
ＳＤメモリカード１７内のデータが、図１０に示す状態になっているものとする。図１０において、１００１はルートディレクトリであり、１００２はディレクトリ、１００３、１００４及び１００５はファイルである。ディレクトリ１００２、ファイル１００４及び１００５は、ルートディレクトリ１００１に格納されている。また、ファイル１００３は、ディレクトリ１００２に格納されている。
【００２９】
このときのＳＤメモリカード１７内データ構造を、図１１に示す。図１１において、図１０と同一のものは、同じ番号を振っている。ただし、ディレクトリはデータ構造においてはディレクトリエントリと呼ぶ。１１０１、１１０２、及び１１０３は、エントリアイテムであり、ルートディレクトリ１００１内に格納されているディレクトリ１００２及びファイル１００４、１００５の格納場所を示している。同じくエントリアイテム１１０４は、ディレクトリ１００２に格納されているファイル１００３の格納場所を示している。
【００３０】
ディレクトリエントリ及びファイルは、前記ＢＰＢ内パラメータ、クラスタサイズ（図９の９０３）が示すサイズ、例えば８ＫＢ等の単位で格納されている。ディレクトリエントリ、及びファイルは、１クラスタ以上のデータ量を持つ場合は、複数のクラスタにまたがって格納される。クラスタの使用状況、及びクラスタ同士のリンク情報は、前記ＦＡＴに格納されている。ファイル１００３は、クラスタ１１１１、及び１１１２にまたがって格納されている。連続したクラスタに格納されるか、不連続のクラスタに格納されるかは、ＳＤメモリカード１７内のクラスタ使用状況によって決定される。
【００３１】
ファイルデータを読み出すファイル読み出し手段を、ディレクトリ１００２に格納されている、ファイル１００３を読み出す場合の動作を例にとり説明する。データの読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス（Ａ．１）及び（Ａ．２）を利用して行う。ただし、ディレクトリ１００２のディレクトリエントリが格納されているクラスタ番号はわかっているものとする。
【００３２】
図１２に前記ファイル読み出し手段をフローチャートで示している。先ず、ファイルシステムソフトウェアは、ステップＳ１２０１でディレクトリ１００２のクラスタをカレントクラスタとし、ステップＳ１２０２でカレントクラスタの先頭から、ファイル１００３のエントリアイテムを検索する。続いて、ステップＳ１２０３でエントリアイテムを発見したかを判断し、発見できなかった場合は、ステップＳ１２０４でカレントクラスタのリンク情報を前記ＦＡＴから取得する。該リンク情報を基に、ステップＳ１２０５でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップＳ１２０６で、リンク先クラスタを新たなカレントクラスタとし、ステップＳ１２０２へ戻り、繰り返す。
【００３３】
ステップＳ１２０３で、ファイル１００３のエントリアイテムを発見した場合は、ステップＳ１２０７で該エントリアイテムのリンク先クラスタの情報を前記ＦＡＴから読み出す。該情報は、該クラスタの使用状況及び、リンク状況である。該情報を基に、ステップＳ１２０８で該クラスタの使用状況を確認する。該クラスタが使用されている場合は、ステップＳ１２０９で該クラスタのデータを読み出し、ステップＳ１２１０で該クラスタがリンクされているかを判断する。リンクされていると判断した場合は、ステップＳ１２０７に戻り、読み出し動作を繰り返す。リンクされていないと判断した場合は、正常終了する。ステップＳ１２０５でリンクされていなかった場合、及びステップＳ１２０８で未使用と判断した場合は、ファイルが存在しない、もしくはファイルが壊れていると判断し、エラー終了する。
【００３４】
ファイルデータを書き込むファイル書き込み手段を、ディレクトリ１００２に対し、ファイルを作成し、書き込みを行う場合の動作を例にとり説明する。データの読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス（Ａ．１）及び（Ａ．２）を利用して行う。ただし、ディレクトリ１００２のディレクトリエントリが格納されているクラスタ番号はわかっているものとする。
【００３５】
図１３に前記ファイル書き込み手段をフローチャートで示している。ステップＳ１３０１でディレクトリ１００２のディレクトリエントリが格納されたクラスタをカレントクラスタとし、ステップＳ１３０２でカレントクラスタのディレクトリエントリアイテムを先頭から順に読み出し、エントリアイテムの空きを検索する。ステップＳ１３０３で発見したかを判断し、発見できなかった場合は、ステップＳ１３０４でカレントクラスタのリンク情報を取得する。該リンク情報を基に、ステップＳ１３０５でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップＳ１３０６で、リンク先クラスタを新たなカレントクラスタとし、ステップＳ１３０２へ戻る。
【００３６】
ステップＳ１３０５でリンクされていなかった場合は、新たに空きクラスタを、ディレクトリ１００２のディレクトリエントリ領域としてリンクさせ拡張する。先ず、ステップＳ１３０７で、前記ＦＡＴを先頭から順に読み出し、空きクラスタを検索する。ステップＳ１３０８で空きクラスタを発見したかを判断し、発見した場合は、ステップＳ１３０９でカレントクラスタを発見した空きクラスタへリンクし、空きクラスタはリンクしないようにＦＡＴを修正する。さらに、カレントクラスタを発見した空きクラスタに変更する。
【００３７】
ステップＳ１３０３でエントリアイテムの空きを発見した場合、及びステップＳ１３０９でＦＡＴを修正した場合は、ステップＳ１３１０でファイルデータ書き込み領域の有無を調べるため、前記ＦＡＴを先頭から順に読み出し、空きクラスタを検索する。さらに、ステップＳ１３１１で、空きクラスタを発見したかを判断し、発見した場合は、ステップＳ１３１２で該クラスタへのリンク情報を持ったエントリアイテムを、カレントクラスタのディレクトリエントリに対し追加書き込みを行う。ステップＳ１３０９で新たなクラスタをリンクさせた場合は、カレントクラスタの先頭にエントリアイテムを書き込む。続いて、ステップＳ１３１３で該クラスタにファイルデータを１クラスタ分書き込み、ステップＳ１３１４でまだ書き込まれていないファイルデータがあるかを判断する。まだファイルデータがあった場合は、ステップＳ１３１５で再び前記ＦＡＴから空きクラスタを検索する。ステップＳ１３１６で空きクラスタを発見したかを判断し、発見した場合は、ステップＳ１３１３に戻り書き込み動作を繰り返す。ステップＳ１３１４で、もう全てのファイルデータの書き込みが完了したと判断した場合、ステップＳ１３１７で、ファイルデータを書き込んだクラスタを順にリンクさせ、最後のクラスタはリンクさせないように、前記ＦＡＴの更新を行い、正常終了する。ステップＳ１３０８、ステップＳ１３１０、及びステップＳ１３１５で空きクラスタを発見できなかった場合は、エラー終了する。
【００３８】
ファイルデータを削除するファイル削除手段を、ディレクトリ１００２内のファイル１００３を削除する場合の動作を例にとり説明する。データの読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス（Ａ．１）及び（Ａ．２）を利用して行う。ただし、ディレクトリ１００２のディレクトリエントリが格納されているクラスタ番号はわかっているものとする。
【００３９】
図１４に前記ファイル削除手段をフローチャートで示している。先ず、ファイルシステムソフトウェアは、ステップＳ１４０１でディレクトリ１００２のクラスタをカレントクラスタとし、ステップＳ１４０２でカレントクラスタの先頭から、ファイル１００３のエントリアイテムを検索する。続いて、ステップＳ１４０３でエントリアイテムを発見したかを判断し、発見できなかった場合は、ステップＳ１４０４でカレントクラスタのリンク情報を前記ＦＡＴから取得する。該リンク情報を基に、ステップＳ１４０５でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップＳ１４０６で、リンク先クラスタを新たなカレントクラスタとし、ステップＳ１４０２へ戻り、繰り返す。ステップＳ１４０３で、ファイル１００３のエントリアイテムを発見した場合は、ステップＳ１４０７で該エントリアイテムに無効データを書き込み、ステップＳ１４０８でＦＡＴを更新し、ファイル１００３が使用していたクラスタ全てを未使用領域にし、正常終了する。ステップＳ１４０５でリンクされていなかった場合は、ファイルが存在しないと判断し、エラー終了する。
【００４０】
以下、ＳＤメモリカードのライトプロテクト機能について説明する。ＳＤメモリカードには、ＷＰブロックと呼ばれる単位でデータ領域の一部分をライトプロテクトする機能が具備されている。ＷＰブロックのサイズは、１セクタ〜２の１４乗セクタまでの値がとられ、セクタサイズとともに、カード固有の値となっている。ＷＰブロックは、図１９に示すように、データ領域の先頭から重なることなく固定で割り付けられ、各ＷＰブロックには、一意にＷＰブロックアドレスが割り当てられている。
【００４１】
ＷＰブロックに対する操作には、（Ｂ．１）指定ＷＰブロックにライトプロテクトをかける操作、（Ｂ．２）指定ＷＰブロックにかけられているライトプロテクトを解除する操作、ならびに（Ｂ．３）指定ＷＰブロックがライトプロテクトされているかの状態を参照する操作がある。各操作は、ＳＤカードドライバがＳＤメモリカードへコマンドを送信し、該コマンドをＳＤメモリカード内コントローラが処理することで行われる。各操作について説明する。
【００４２】
図１５は、前記（Ｂ．１）の操作をフローチャートで示した図である。まず、ステップＳ１５０１で前記ＳＤカードドライバは、ＳＤメモリカード１７へライトプロテクトを要求するコマンドを送信する。該コマンド内には、ライトプロテクトをかけるＷＰブロックのＷＰブロックアドレスが含まれている。該コマンドを受信したＳＤメモリカード内コントローラは、ステップＳ１５０２で、指定ＷＰブロックアドレスが有効な範囲内であるかを判定する。有効な範囲内であると判定した場合は、ステップＳ１５０３で指定ＷＰブロックアドレスのＷＰブロックが現在ライトプロテクトされているかを判定する。現在ライトプロテクトされていないと判定した場合は、ステップＳ１５０４で指定ＷＰブロックアドレスのＷＰブロックにライトプロテクトをかけ、正常終了する。ステップＳ１５０３で現在ライトプロテクトされていると判定した場合は、その時点で正常終了する。ステップＳ１５０２で指定ＷＰブロックアドレスが有効な範囲外であると判定した場合は、エラー終了する。
【００４３】
図１６は、前記（Ｂ．２）の操作をフローチャートで示した図である。まず、ステップＳ１６０１で前記ＳＤカードドライバは、ＳＤメモリカード１７へライトプロテクト解除を要求するコマンドを送信する。該コマンド内には、ライトプロテクトを解除するＷＰブロックのＷＰブロックアドレスが含まれている。該コマンドを受信したＳＤカード内コントローラは、ステップＳ１６０２で、指定ＷＰブロックアドレスが有効な範囲内であるかを判定する。有効な範囲内であると判定した場合は、ステップＳ１６０３で指定ＷＰブロックアドレスのＷＰブロックが現在ライトプロテクトされているかを判定する。現在ライトプロテクトされていると判定した場合は、ステップＳ１６０４で指定ＷＰブロックアドレスのＷＰブロックのライトプロテクトを解除し、正常終了する。ステップＳ１６０３で現在ライトプロテクトされていないと判定した場合は、その時点で正常終了する。ステップＳ１６０２で指定ＷＰブロックアドレスが有効な範囲外であると判定した場合は、エラー終了する。
【００４４】
図１７は、前記（Ｂ．３）の操作をフローチャートで示した図である。まず、ステップＳ１７０１で前記ＳＤカードドライバは、ＳＤメモリカード１７へライトプロテクト状態参照を要求するコマンドを送信する。該コマンド内には、ライトプロテクト状態を参照するＷＰブロックのＷＰブロックアドレスが含まれている。該コマンドを受信したＳＤカード内コントローラは、ステップＳ１７０２で、指定ＷＰブロックアドレスが有効な範囲内であるかを判定する。有効な範囲内であると判定した場合は、ステップＳ１７０３で指定ＷＰブロックアドレスのＷＰブロックが現在ライトプロテクトされているかを判定し、その結果をレスポンスに載せ、返信する。ステップＳ１７０３における判定がいずれの場合でも、正常終了する。ステップＳ１７０２で指定ＷＰブロックアドレスが有効な範囲外であると判定した場合は、エラー終了する。
【００４５】
以下、第１の実施形態におけるＳＤメモリカード１７のデータ構造について説明する。図１８にＳＤメモリカード１７の初期状態を示している。図１８において、１８０１はＰＢＲ、１８０２はＦＡＴ、１８０３はルートディレクトリエントリである。また、１８０４はプロテクトファイル格納用のディレクトリエントリであるプロテクトディレクトリエントリで、ルートディレクトリエントリの直ぐ後に位置するクラスタである。該クラスタは、クラスタ番号、『２』番となる。該プロテクトディレクトリエントリには、ライトプロテクトがかけられている。また、該プロテクトディレクトリエントリはリンクすることはない。そのため、プロテクトディレクトリに格納できるファイル数は制限される。１８０５は空きクラスタである。該クラスタは、クラスタ番号『３』番であり、前記ＦＡＴを修正し、使用済みクラスタとなっている。該クラスタは、後述するプロテクトファイル復旧手段において、クラスタのサイズを特定するために利用する。
【００４６】
以下、第１の実施形態における、本発明の第１の特徴であるＷＰブロック境界一致手段について説明する。該ＷＰブロック境界一致手段とは、クラスタ単位でライトプロテクトを実現するため、クラスタサイズを前記ＷＰブロックサイズの整数倍のサイズにし、かつクラスタ境界と前記ＷＰブロック境界を一致させる手段である。前記カメラシステムでＳＤメモリカード１７をフォーマットすると、該ＷＰブロック境界一致手段により、クラスタ境界と前記ＷＰブロック境界が一致した状態でフォーマットされる。ＳＤメモリカード１７は、前記カメラシステムでフォーマットされているものとする。
【００４７】
クラスタ境界は、クラスタ開始位置とクラスタサイズによって決定する。一方ＷＰブロックは、ＳＤメモリカード１７固有のサイズであり、可変ではない。そのため、クラスタの開始位置とクラスタサイズをＷＰブロックに合わせることで境界を一致させる。クラスタ開始位置は、ルートディレクトリエントリの直後であり、図２３に示す式で決定する。図２３において、２３０１はパーティションの開始アドレスであり、本実施形態においては先頭アドレス『０』である。２３０２はリザーブセクタ数、２３０３はセクタサイズ、２３０４はＦＡＴサイズ、２３０５はＦＡＴの数、ならびに２３０６はルートディレクトリエントリ数であり、前記ＢＰＢのパラメータに含まれている。このとき、図２３の式で導かれる値、クラスタ開始位置アドレスが前記ＷＰブロックサイズの整数倍になるようにパラメータを当てはめる。さらに、クラスタサイズは、前記ＢＰＢのパラメータであるため、クラスタサイズが前記ＷＰブロックの整数倍になるように、パラメータを当てはめる。前記カメラシステムは、このようにして作成したＢＰＢを基にフォーマットを行うことで、クラスタ境界と前記ＷＰブロックの境界を一致させた状態でのフォーマットを実現している。
【００４８】
具体的な数値を挙げて説明する。ＳＤメモリカード１７の固有パラメータが、図２０に示す値であるとき、クラスタサイズをＷＰブロックサイズの４倍の８Ｋバイトとし、クラスタ境界とＷＰブロック境界を一致させた上で、図１８に示す初期状態を生成する。
【００４９】
先ず、データ領域を無駄にしないため、できる限り多くのクラスタを生成することを目指す。データ領域全体をクラスタとして割り当てると考えると、１０Ｍ÷８Ｋから１２８０個のクラスタが割り当てられることがわかる。しかし、先頭にリザーブセクタ数（ＰＢＲを含む）、ＦＡＴサイズ（×２）、及びルートディレクトリエントリサイズが必要であるため、この分を差し引いた上での最大数を求める。
【００５０】
まず、リザーブセクタ数は、最低でＰＢＲ領域として１セクタ必要である。該リザーブセクタ数をＹとする。ＦＡＴサイズは、クラスタ数分のＦＡＴエントリを格納できるだけの領域を２個分（ＦＡＴの数）持つ必要がある。一つのＦＡＴエントリは、ＦＡＴ１６においては、１６ビットであるため、１セクタで２５６個のＦＡＴエントリを持つことができることがわかる。ＦＡＴは、少なくともクラスタ数以上のＦＡＴエントリを持つ必要があるが、その条件さえ満たしていれば、できるだけ小さい方が良い。一つのＦＡＴに必要なセクタ数をＸとする。ルートディレクトリエントリサイズは、ルートディレクトリエントリ数に依存する。ルートディレクトリエントリ数は通常５１２であり、１ディレクトリエントリが３２バイトであるため、ルートディレクトリエントリサイズは１６Ｋバイト（３２セクタ）である。また、クラスタ境界とＷＰブロック境界を一致させるため、リザーブセクタ数、ＦＡＴ、及びルートディレクトリエントリを足し合わせた値が、ＷＰブロックの整数倍になるようにしなければならない。
【００５１】
以上の条件を基に式を立てる。
（式１）：クラスタ最大数−（リザーブセクタ数＋ＦＡＴセクタ数×２＋ルートディレクトリエントリサイズ）／（クラスタサイズ／セクタサイズ）＜１セクタのＦＡＴエントリ数×ＦＡＴセクタ数
（式２）：（リザーブセクタ数＋ＦＡＴセクタ数×２＋ルートディレクトリエントリサイズ）＝（ＷＰブロックサイズ／セクタサイズ）
（式１）、（式２）に値を代入すると以下のようになる。
（式３）：１２８０−（Ｙ＋２Ｘ＋３２）／１６＜２５６Ｘ（Ｘ、Ｙは整数）
（式４）：Ｙ＋２Ｘ＋３２＝４α（Ｘ、Ｙ、αは任意の整数）
さらに、（式３）を変換すると、以下のようになる。
（式５）：４０９８Ｘ＞２０４８０−Ｙ
（式５）において、ＸはＦＡＴのセクタ数であるため、最小値を取る必要がある。Ｘは整数であるため、Ｘは５を取ることがわかる。
【００５２】
これをもとに、（式４）を変換すると、以下のようになる。
（式６）：Ｙ＋４２＝４α
（式６）において、Ｙはリザーブセクタ数であり、１以上の整数であれば良い。無駄を省くため最小値を取ると、Ｙは２であるとことがわかる。
【００５３】
以上の計算により、ＢＰＢパラメータを図２１に示すように設定した上で、フォーマットを行うと、図２２に示すようなデータ構造となり、クラスタ境界とＷＰブロック境界を一致させることができる。このＷＰブロック境界一致手段により、クラスタ単位のライトプロテクトが可能となり、ひいてはディレクトリエントリ及びファイル単位のライトプロテクトが可能となる。
【００５４】
以下、先に説明したＳＤメモリカードのライトプロテクト機能を用い、第１の実施形態における、本発明の第２の特徴であるライトプロテクトアクセス手段について説明する。該ライトプロテクトアクセス手段とは、ＳＤメモリカード１７に対する、ライトプロテクトされたファイルの書き込みを行うライトプロテクト書き込み手段、ライトプロテクトされたファイルの削除を行うライトプロテクト削除手段、並びにライトプロテクトされたファイルの書き換えを行うライトプロテクト書き換え手段によって構成される。
【００５５】
先ず、前記ライトプロテクト書き込み手段について説明する。該ライトプロテクト書き込み手段とは、書き込み対象のファイルが新規書き込みファイルである場合に、該ファイルにライトプロテクトをかけ書き込みを行う手段である。図３は、ＳＤメモリカード１７に対し、該ライトプロテクト書き込み手段によりファイルを書き込むときの動作をフローチャートで示している。読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス（Ａ．１）及び（Ａ．２）を利用して行う。また、プロテクト実行／解除、状態参照命令は、前記サービス（Ｂ．１）〜（Ｂ．３）を利用して行う。ただし、クラスタ（ディレクトリエントリを含む）に対するライトプロテクト実行／解除、状態参照は、該クラスタを構成する全ての前記ＷＰブロックに対して、該サービス（Ｂ．１）〜（Ｂ．３）を実行しているものとする。
【００５６】
図３のフローチャートを説明する。先ず、ステップＳ３０１で前記プロテクトディレクトリエントリを先頭から順に読み出し、エントリアイテムの空きを検索する。ステップＳ３０２で発見したかを判断し、発見した場合は、続いてステップＳ３０３でファイルデータを格納するのに必要なクラスタ数を計算する。さらに、ステップＳ３０４でＦＡＴを読み出し、必要なクラスタ数分の連続した空きクラスタを検索し、ステップＳ３０５で発見したかを判断する。発見した場合は、ステップＳ３０６で前記プロテクトディレクトリエントリのライトプロテクトを解除し、ステップＳ３０７で該連続空きクラスタの先頭クラスタへのリンク情報をもったエントリアイテムをステップＳ２５０１で検索した空きエントリアイテム位置に格納し、ステップＳ３０８で再度該プロテクトディレクトリエントリにライトプロテクトをかける。さらに、ステップＳ３０９でファイルデータを該連続空きクラスタに書き込み、ステップＳ３１０で該連続空きクラスタにライトプロテクトをかけ、ステップＳ３１１でＦＡＴを更新し、正常終了する。ステップＳ３０２でエントリアイテムの空きを発見できなかった場合と、ステップＳ３０５で連続空きクラスタを発見できなかった場合は、エラー終了する。
【００５７】
続いて、前記ライトプロテクト削除手段、及び前記ライトプロテクト書き換え手段について説明する。該ライトプロテクト削除手段とは、前記ライトプロテクト書き込み手段により書き込まれたファイルデータを削除する手段であり、該ライトプロテクト書き換え手段とは、前記ライトプロテクト書き込み手段により書き込まれたファイルデータを書き換え、書き込んだファイルに再度ライトプロテクトをかける手段である。該ライトプロテクト削除手段、及び該ライトプロテクト書き換え手段はともに、最初に現在書き込まれているファイルデータのライトプロテクトを解除するライトプロテクト解除動作は共通している。該ライトプロテクト解除動作後、前記ライトプロテクト削除手段は前記サービス（Ａ．３）により削除を行い、前記ライトプロテクト書き換え手段は前記ライトプロテクト書き込み手段により書き込みを行い、動作を完了する。
【００５８】
前記ライトプロテクト解除動作について説明する。図２４は、ＳＤメモリカード１７内に存在するライトプロテクトされたファイルのライトプロテクトを解除するときの動作をフローチャートで示している。読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス（Ａ．１）及び（Ａ．２）を利用して行う。また、プロテクト実行／解除、状態参照命令は、前記サービス（Ｂ．１）〜（Ｂ．３）を利用して行う。ただし、クラスタ（ディレクトリエントリを含む）に対するライトプロテクト実行／解除、状態参照は、該クラスタを構成する全ての前記ＷＰブロックに対して、該サービス（Ｂ．１）〜（Ｂ．３）を実行しているものとする。
【００５９】
図２４のフローチャートを説明する。先ず、ステップＳ２４０１で前記プロテクトディレクトリエントリを先頭から順に読み出し、書き換え及び削除対象ファイルのエントリアイテムを検索する。ステップＳ２４０２で発見したかを判断し、発見した場合は、続いて、ステップＳ２４０３で該エントリアイテムから、書き換え及び削除対象ファイルデータが格納されている先頭クラスタを取得し、ステップＳ２４０４で該クラスタをカレントクラスタとし、ステップＳ２４０５でカレントクラスタのライトプロテクトを解除する。続いて、ステップＳ２４０６で、前記ＦＡＴからカレントクラスタのリンク情報を取得する。該リンク情報を基に、ステップＳ２４０７でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップＳ２４０８で、リンク先クラスタを新たなカレントクラスタとし、ステップＳ２４０５へ戻る。ステップＳ２４０７で、リンクされていなかった場合は正常終了する。ステップＳ２４０２で、エントリアイテムを発見できなかった場合は、エラー終了する。
【００６０】
以下、第１の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段について説明する。該ライトプロテクトファイル復旧手段とは、フォーマット等により、ＳＤメモリカード１７のファイルフォーマットが破壊されてしまった場合に、ユーザもしくはシステムの指示により、前記ライトプロテクト書き込み手段により書き込んだファイルを復旧する手段である。ここで、ファイルフォーマットが破壊されてしまった場合とは、ＳＤメモリカード１７が、別のホスト（例えばＰＣ等）でフォーマットされ、ＢＰＢパラメータやＦＡＴが書き換えられ、フォーマットされる前のファイル格納位置を特定することができなくなってしまった場合を指す。
【００６１】
該ライトプロテクトファイル復旧手段は、情報取得ステップとファイルデータ取得ステップにより実現する。該情報取得ステップでは、前記ライトプロテクトファイル書き込み手段により書き込んだファイルのデータが格納されている位置を特定するための情報を取得するステップであり、該ファイルデータ取得ステップは、情報取得ステップで取得したファイル位置情報を基に、ファイルデータを取得するステップである。
【００６２】
先ず、本実施形態における前記情報取得ステップについて説明する。本実施形態においては、前記ライトプロテクト書き込み手段により書き込まれたファイルは、連続したクラスタに書き込まれている。そのため、該ファイルの位置を特定するためには、クラスタの開始位置とサイズ、及び該ファイルの開始クラスタとファイルのサイズを特定する必要がある。本実施形態においては、図１８に示すように、前記プロテクトディレクトリエントリを１つのクラスタで実現し、該プロテクトディレクトリエントリは、初期状態でクラスタ番号『２』番の位置に配置させている。さらに、該プロテクトディレクトリエントリの直後のクラスタは、初期状態で使用済みとし、ライトプロテクトをかけていない。さらに、該プロテクトディレクトリエントリの前には、プロテクトされた領域を作成しないことを前提としていた。そのため、データ領域の先頭からプロテクトされたＷＰブロックを検索すれば、最初に見つかったＷＰブロックが該プロテクトディレクトリエントリの先頭であることがわかり、さらに、該ＷＰブロックから連続でプロテクトされている領域を検索すれば、最後に見つかったＷＰブロックが該プロテクトディレクトリエントリの終端であることがわかる。これにより、クラスタサイズと、クラスタ開始位置が特定できる。また、プロテクトディレクトリエントリには、プロテクトされたファイルのエントリアイテムが格納されているため、ファイルデータの開始クラスタとサイズを特定することができる。
【００６３】
続いて、本実施形態における前記ファイルデータ取得ステップについて説明する。本実施形態においては、前記ライトプロテクト書き込み手段により書き込まれたファイルは、連続したクラスタに書き込まれている。そのため、前記情報取得ステップで取得したクラスタの開始位置とサイズ、及びファイルの開始クラスタとサイズにより、ファイルデータを取得することができる。
【００６４】
図４は、該ライトプロテクトファイル復旧手段の動作をフローチャートで示している。図４を説明する。先ず、ステップＳ４０１でＳＤメモリカード１７のデータ領域の先頭から順に、ライトプロテクトされているＷＰブロックを検索し、ステップＳ４０２で発見したかを判断する。発見した場合には、ステップＳ４０３で連続して何個のＷＰブロックがライトプロテクトされているかを調べる。これにより、前記プロテクトディレクトリエントリと、ファイルフォーマットが破壊される前のクラスタサイズが確定する。
【００６５】
続いて、ステップＳ４０４で該プロテクトディレクトリエントリのエントリアイテムを検索する。ステップＳ４０５で発見したかを判断し、発見した場合には、ステップＳ４０６でエントリアイテムから、該エントリアイテムが示すファイルの開始クラスタ番号と、サイズを取得する。また、前記プロテクトディレクトリエントリのクラスタ（クラスタ番号『２』）を基準にして、ファイルデータ開始アドレスを特定する。次に、ステップＳ４０７でファイルデータ開始アドレスから、ファイルサイズ分のデータ領域がライトプロテクトされているかを判断する。該データ領域がライトプロテクトされていた場合、ステップＳ４０８でファイルデータを読み出し、他の記憶媒体に保存する。さらに、ステップＳ４０９で該データ領域のライトプロテクトを解除し、ステップＳ４０４に戻る。ステップＳ４０５で、エントリアイテムを発見できなかった場合は、ステップＳ４１０でプロテクトディレクトリエントリのライトプロテクトを解除し、正常終了する。ステップＳ４０２で、ライトプロテクトされているＷＰブロックを発見できなかった場合、ステップＳ４０７でライトプロテクトされていないと判断した場合は、エラー終了する。
【００６６】
（第２の実施形態）
本発明の第２の実施形態について説明する。本実施形態においても、第１の実施形態で説明したカメラシステムに着脱可能なＳＤメモリカード１７を例に説明を行う。ＳＤメモリカード１７のブロックデバイスは、前記サービス（Ａ．１）及び（Ａ．２）を提供可能とし、該ＳＤメモリカード１７のデータ領域は、前記ＭＢＲを持たず、データ領域全体が一つのパーティションを構成し、該パーティションは、ＦＡＴ１６ファイルシステムによりフォーマットされ、管理されているものとする。また、本実施形態における本発明の第１の特徴であるＷＰブロック境界一致手段は、第１の実施形態におけるＷＰブロック境界一致手段と同様の手段であるものとする。
【００６７】
以下、第２の実施形態におけるＳＤメモリカード１７のデータ構造について説明する。本実施形態におけるＳＤメモリカード１７のデータ構造は、特殊なフォーマットではなく、図７に示すＦＡＴファイルシステムによるフォーマットを用いる。よって、第１の実施形態のように、前記プロテクトディレクトリ等といったプロテクトファイルを格納するためのディレクトリは存在せず、いずれのディレクトリであってもプロテクトされたファイルを格納することができる。また、特殊なフォーマットではないため、第１の実施形態のように、初期状態が限定されるわけではないため、既にファイルの書き込みが行われている状態のＳＤメモリカードであっても、ＦＡＴファイルシステムによりフォーマットされていれば、本実施形態を適応することができる。
【００６８】
以下、第２の実施形態における、本発明の第２の特徴であるライトプロテクトアクセス手段について説明する。該ライトプロテクトアクセス手段は、ライトプロテクトされたファイルの書き込みを行うライトプロテクト書き込み手段、ライトプロテクトされたファイルの削除を行うライトプロテクト削除手段、並びにライトプロテクトされたファイルの書き換えを行うライトプロテクト書き換え手段によって構成される。
【００６９】
先ず、前記ライトプロテクト書き込み手段について説明する。該ライトプロテクト書き込み手段とは、書き込み対象のファイルが新規書き込みファイルである場合に、該ファイルにライトプロテクトをかけ書き込みを行う手段である。該ライトプロテクト書き込み手段は、連続したクラスタにファイルデータを書き込み、該クラスタにライトプロテクトをかける。ただし、ファイルデータが格納される連続クラスタ内、最終クラスタに限り、ライトプロテクトはクラスタ全体ではなく、ファイルデータが格納されているＷＰブロックのみにかける。このとき、ファイルデータが該最終クラスタを構成するＷＰブロック全体に及んでいる場合は、該最終クラスタのさらに一つ後のクラスタを使用済み領域として確保する。
【００７０】
これにより、該ライトプロテクト書き込み手段により書き込まれたファイルは、ファイルデータが格納されているＷＰブロックの内、最終ＷＰブロックの直後のＷＰブロックには、ライトプロテクトがかけられていないことが保証できる。これは、後述する第２の実施形態におけるライトプロテクトファイル復旧手段において、ファイルのサイズを特定するためである。該ライトプロテクト書き込み手段により、二つのファイルが書き込まれ、この二つのファイルデータが連続していた場合、ファイルデータが格納されるクラスタ全てをライトプロテクトしてしまうと、図２７のようになり、ライトプロテクトファイル１とライトプロテクトファイル２が連続したライトプロテクト領域に格納され、境界を特定することができない。そこで、最終ＷＰブロック直後のＷＰブロックには、ライトプロテクトをかけないことで、図２８のようになり、ライトプロテクトファイル１、及び２のサイズを特定することができる。
【００７１】
図２５は、ＳＤメモリカード１７に対し、該ライトプロテクト書き込み手段によりファイルを書き込むときの動作をフローチャートで示している。読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス（Ａ．１）及び（Ａ．２）を利用して行う。また、プロテクト実行／解除、状態参照命令は、前記サービス（Ｂ．１）〜（Ｂ．３）を利用して行う。ただし、クラスタ（ディレクトリエントリを含む）に対するライトプロテクト実行／解除、状態参照は、該クラスタを構成する全ての前記ＷＰブロックに対して、該サービス（Ｂ．１）〜（Ｂ．３）を実行しているものとする。
【００７２】
図２５のフローチャートを説明する。先ず、ステップＳ２５０１で書き込みを行うディレクトリのディレクトリエントリを先頭から順に読み出し、エントリアイテムの空きを検索する。ステップＳ２５０２で発見したかを判断し、発見した場合は、続いてステップＳ２５０３でファイルデータを格納するのに必要なクラスタ数を計算する。このとき、ファイルデータが最終クラスタを構成するＷＰブロックの最終クラスタにまで及ぶ場合は、必要なクラスタ数に１加えた値を必要なクラスタ数とする。さらに、ステップＳ２５０４でＦＡＴを読み出し、ステップＳ２５０３で計算した必要なクラスタ数分の連続した空きクラスタを検索し、ステップＳ２５０５で発見したかを判断する。発見した場合は、ステップＳ２５０６で該連続空きクラスタの先頭クラスタへのリンク情報をもったエントリアイテムをステップＳ２５０１で検索した空きエントリアイテム位置に格納する。さらに、ステップＳ２５０７でファイルデータを該連続空きクラスタに書き込み、ステップＳ２５０８で該連続空きクラスタの内、最終クラスタを除いた全てのクラスタにライトプロテクトをかける。続いて、ステップＳ２５０９で、最終クラスタを構成するＷＰブロックの内、ファイルデータが格納されたＷＰブロックに対し、ライトプロテクトをかける。このとき、ファイルデータが格納されたＷＰブロックが存在しなかった場合、何も行わない。最後に、ステップＳ２５１０でＦＡＴを更新し、正常終了する。ステップＳ２５０２でエントリアイテムの空きを発見できなかった場合と、ステップＳ２５０５で連続空きクラスタを発見できなかった場合は、エラー終了する。
【００７３】
続いて、前記ライトプロテクト削除手段、及び前記ライトプロテクト書き換え手段について説明する。該ライトプロテクト削除手段、及び該ライトプロテクト書き換え手段は、第１の実施形態におけるライトプロテクト削除手段、及びライトプロテクト書き換え手段と同様の動作で実現する。ただし、前記ライトプロテクト解除動作を示す図２４のステップＳ２４０５において、カレントクラスタが連続クラスタの最終クラスタである場合、該カレントクラスタを構成するＷＰブロックの内、ライトプロテクトいないＷＰブロックが存在する。このとき、該ＷＰブロックの内、ライトプロテクトされているＷＰブロックのみに対してライトプロテクト解除を行うものとする。
【００７４】
以下、第２の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段について説明する。該ライトプロテクトファイル復旧手段とは、フォーマット等により、ＳＤメモリカード１７のファイルフォーマットが破壊されてしまった場合に、ユーザもしくはシステムの指示により、前記ライトプロテクト書き込み手段により書き込んだファイルを復旧する手段である。ここで、ファイルフォーマットが破壊されてしまった場合とは、ＳＤメモリカード１７が、別のホスト（例えばＰＣ等）でフォーマットされ、ＢＰＢパラメータやＦＡＴが書き換えられ、フォーマットされる前のファイル格納位置を特定することができなくなってしまった場合を指す。
【００７５】
該ライトプロテクトファイル復旧手段は、情報取得ステップとファイルデータ取得ステップにより実現する。該情報取得ステップでは、前記ライトプロテクトファイル書き込み手段により書き込んだファイルのデータが格納されている位置を特定するための情報を取得するステップであり、該ファイルデータ取得ステップは、情報取得ステップで取得したファイル位置情報を基に、ファイルデータを取得するステップである。
【００７６】
先ず、本実施形態における前記情報取得ステップについて説明する。本実施形態においては、前記ライトプロテクト書き込み手段により書き込まれたファイルは、連続したＷＰブロックに書き込まれており、かつ該ＷＰブロックの最終ＷＰブロック直後のＷＰブロックはライトプロテクトされていないことが保証されている。そのため、該ファイルの位置を特定するためには、ライトプロテクトされているＷＰブロックを検索し、該ＷＰブロックから連続してライトプロテクトされているＷＰブロック数を特定することで、該ファイルの開始位置及びサイズを特定することができる。
【００７７】
続いて、本実施形態における前記ファイルデータ取得ステップについて説明する。前記情報取得ステップで取得したファイルデータの開始位置及びサイズにより、ファイルデータを取得することができる。
【００７８】
図２６は、該ライトプロテクトファイル復旧手段の動作をフローチャートで示している。図２６を説明する。先ず、ステップＳ２６０１でＳＤメモリカード１７のデータ領域の先頭から順に、ライトプロテクトされているＷＰブロックを検索し、ステップＳ２６０２で発見したかを判断する。発見した場合には、ステップＳ２６０３で連続して何個のＷＰブロックがライトプロテクトされているかを調べる。これにより、ライトプロテクトファイルの開始位置とサイズが確定する。
【００７９】
続いて、ステップＳ２６０４で、ステップＳ２６０３で取得した連続ＷＰブロック内のファイルデータを取得し、ステップＳ２６０５で該連続ＷＰブロックのライトプロテクトを解除し、ステップＳ２６０２へ戻り繰り返す。ステップＳ２６０２で、発見しなかった場合は、正常終了する。
【００８０】
以上説明した実施形態によれば、前記ＷＰブロック境界一致手段、前記ライトプロテクト書き込み手段、及び前記ライトプロテクトファイル復旧手段によって、ファイルデータにライトプロテクトをかける際には、ファイルが格納されたクラスタのみをライトプロテクトすることにより、無駄のないファイルデータのライトプロテクトが行える。また、いずれのソフトウェア及び機器によってデータ管理がされても、ライトプロテクトしたファイルが削除されることはない。さらに、フォーマットなどにより、ファイルシステムが破壊されても、ライトプロテクトしたファイルを復旧することができる。
【００８１】
（他の実施形態）
本実施形態においては、ＭＢＲを持たないようにフォーマットされた記憶装置を例に取り説明したが、ＭＢＲを持ち、パーティションを複数持つ記憶装置においても、パーティションの開始アドレスの取得手段があれば、本発明を適用できることは言うまでもない。
【００８２】
さらに、本実施形態においては、記憶装置としてＳＤメモリカードを例に取り説明したが、いずれの記憶装置であっても、データ領域の部分的なライトプロテクト機能を持つ記憶装置においては、本発明を適用できることは言うまでもない。
【００８３】
さらに、本実施形態においては、前記ＷＰブロック境界一致手段により、クラスタとＷＰブロックの境界を一致させていることを前提に、前記ライトプロテクト書き込み手段、及びライトプロテクトファイル復旧手段を説明したが、クラスタとＷＰブロックの境界が一致していない場合であっても、プロテクトするファイルデータが一部分でも格納されるＷＰブロック全てにライトプロテクトをかける手段と、該手段によりライトプロテクトがかけられたＷＰブロックが一部分でも存在するクラスタを別のデータの書き込み対象となることを防止する手段とを具備する場合、本発明を適用できる。
【００８４】
さらに、本実施形態においては、ライトプロテクトファイルの書き込み時、連続クラスタ領域に書き込むことを前提に説明したが、ＦＡＴ領域をすべてライトプトテクトし、リンク情報をも保護しておけば、不連続なクラスタ領域にファイルを書き込んでも、本発明を適用できることは言うまでもない。
【００８５】
さらに、本実施形態においては、初期状態として、前記ライトプロテクトディレクトリがルートディレクトリエントリの直後に位置し、かつ該クラスタの直後には使用済みの空きクラスタが位置し、かつライトプロテクトファイルの書き込み時には、該ライトプロテクトディレクトリに書き込むことを前提に説明したが、ライトプロテクトファイルを書き込むディレクトリエントリを全てライトプロテクトし、かつフォーマットされてしまった場合でも、クラスタサイズとクラスタ開始位置を特定する手段を具備する場合、本発明を適用できることは言うまでもない。
【００８６】
さらに、本実施形態においては、ＦＡＴファイルシステムを例にとり説明したが、記憶装置のデータ領域がいずれのファイルシステムにより管理されていても、クラスタ等のファイルの最小単位が存在する場合、本発明のＷＰブロック境界一致手段を適用し、本発明を適用できることは言うまでもない。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施形態を示すファイル管理手段を適用可能な画像処理システムの一例を示すブロック図である。
【図２】図２２に示したＳＤメモリカードを構成するファイルシステムの階層構造を示す概念図である。
【図３】第１の実施形態におけるライトプロテクト書き込み手段を示すフローチャート図である。
【図４】第１の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段を示すフローチャート図である。
【図５】ＳＤメモリカードの一般的な内部データ構造を示すブロック図である。
【図６】図５におけるＭＢＲの内部データ構造を示すブロック図である。
【図７】図５におけるパーティションをＦＡＴファイルシステムでフォーマットした場合の内部データ構造を示すブロック図である。
【図８】図７におけるＰＢＲの内部データ構造を示すブロック図である。
【図９】図８におけるＢＰＢに含まれるパラメータを示すテーブルである。
【図１０】ＳＤメモリカードのデータ領域の一例を示す状態図である。
【図１１】ＳＤメモリカードの図１０の状態におけるデータ構造を示す構造図である。
【図１２】ＳＤメモリカードに対するファイル読み出し手段を示すフローチャート図である。
【図１３】ＳＤメモリカードに対するファイル書き込み手段を示すフローチャート図である。
【図１４】ＳＤメモリカードに対するファイル削除手段を示すフローチャート図である。
【図１５】ＳＤメモリカードのライトプロテクト動作の手順を示すフローチャート図である。
【図１６】ＳＤメモリカードのライトプロテクト解除動作の手順を示すフローチャート図である。
【図１７】ＳＤメモリカードのライトプロテクト状態参照動作の手順を示すフローチャート図である。
【図１８】ＳＤメモリカードに対するライトプロテクト書き込みを行う場合の、初期データ構造を示す図である。
【図１９】ＳＤメモリカードにおけるＷＰブロック割り当て構造を示すデータ構造図である。
【図２０】実施形態１におけるＳＤメモリカードの固有パラメータの例を示す表である。
【図２１】図２０のパラメータを持つＳＤメモリカードにＷＰブロック境界一致手段を適用した場合のＢＰＢパラメータの例を示す表である。
【図２２】図２１のパラメータを基にフォーマットされたＳＤメモリカードのデータ領域の構造を示す構造図である。
【図２３】ＦＡＴ１６におけるクラスタ開始アドレス計算式である。
【図２４】ライトプロテクト削除手段、及びライトプロテクト書き換え手段におけるライトプロテクト解除動作を示すフローチャート図である。
【図２５】第２の実施形態におけるライトプロテクト書き込み手段を示すフローチャート図である。
【図２６】第２の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段を示すフローチャート図である。
【図２７】ライトプロテクトした場合におけるＳＤメモリカードのデータ領域の構造を示す構造図１である。
【図２８】ライトプロテクトした場合におけるＳＤメモリカードのデータ領域の構造を示す構造図２である。
【符号の説明】
【００８８】
１  レンズ
２  ＣＣＤユニット
３  Ａ／Ｄコンバータ
４  ＳＳＧユニット
５  ＣＰＵ
６  信号処理アクセラレータ
７  電池
８  ＤＣ／ＤＣコンバータ
９  電源コントローラ
１０  サブＣＰＵ
１１  表示装置
１２  コントロールパネル
１３  ＲＯＭ
１４  ＤＲＡＭ
１５  フラッシュＲＯＭ
１６  カードインターフェース
１７  外部記憶媒体
１８  ＤＭＡコントローラ
１９  ストロボ
【図１】
2006146505.tif 000003
【図２】
2006146505.tif 000004
【図３】
2006146505.tif 000005
【図４】
2006146505.tif 000006
【図５】
2006146505.tif 000007
【図６】
2006146505.tif 000008
【図７】
2006146505.tif 000009
【図８】
2006146505.tif 000010
【図９】
2006146505.tif 000011
【図１０】
2006146505.tif 000012
【図１１】
2006146505.tif 000013
【図１２】
2006146505.tif 000014
【図１３】
2006146505.tif 000015
【図１４】
2006146505.tif 000016
【図１５】
2006146505.tif 000017
【図１６】
2006146505.tif 000018
【図１７】
2006146505.tif 000019
【図１８】
2006146505.tif 000020
【図１９】
2006146505.tif 000021
【図２０】
2006146505.tif 000022
【図２１】
2006146505.tif 000023
【図２２】
2006146505.tif 000024
【図２３】
2006146505.tif 000025
【図２４】
2006146505.tif 000026
【図２５】
2006146505.tif 000027
【図２６】
2006146505.tif 000028
【図２７】
2006146505.tif 000029
【図２８】
2006146505.tif 000030