(57)【要約】  記憶装置が、トリガイベントに応答して、装置の記憶容量を解放するために安全な削除動作を実行するように構成されたコントローラを含む。この安全な削除動作は、データが別の記憶プラットフォームにオフロードされる前に記憶装置から削除されることを防ぐために、記憶装置を使用するホスト装置のデータ状態と記憶装置自体のデータ状態とが確実に同期されるようにする。【選択図】図７Ａ
2013521588.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置コントローラの自律動作方法であって、
トリガイベントの検出時に、記憶装置のコントローラが、前記記憶装置の記憶媒体から削除する候補であるファイルのリストを列挙し、前記記憶媒体は、前記コントローラに通信可能に結合されて、前記候補ファイルを記憶するために使用する前記記憶媒体のセクタのリストを記録し、
前記記憶装置のホスト装置が前記記憶媒体にアクセスできないようにしながら、前記列挙されたファイルのリストに対応する記憶装置ファイルシステムのディレクトリエントリに削除マークを付け、前記ディレクトリエントリを保持する前記記憶媒体のセクタの読み取り／修正／書き込みシーケンスを実行し、
第１のホスト装置同期イベントを待ち、
前記第１のホスト装置同期イベントを認識すると、前記削除する候補ファイルのリストをチェックし、前記候補ファイルの対応するディレクトリエントリに削除マークが付いているかどうかを判定し、
前記候補ファイルのディレクトリエントリに削除マークが付いていない場合、前記ディレクトリエントリに削除マークを付けることを繰り返し、前記ディレクトリエントリを保持する前記記憶媒体のセクタの読み取り／修正／書き込みを実行すること、及びさらなる第１のホスト装置同期イベントを待ち、
前記候補ファイルのディレクトリエントリに削除マークが付いている場合、前記記憶媒体内の対応するデータ記憶ユニットにデータが記憶されないようにするが、前記セクタのリスト内には前記孤立セクタを残し、当該孤立セクタは、削除マークが付けられる対応するディレクトリエントリのセクタであって、依然として割り当てられている前記対応するデータ記憶ユニットのセクタではなく、
さらなるホスト装置同期イベントを待ち、該さらなるホスト装置同期イベントを認識すると、前記孤立セクタを通じて、前記読み取り／修正／書き込み動作に前記ホスト装置が後から上書きを行ったか否かを判定することを繰り返し、
前記孤立セクタが以前の値に戻っている場合、前記孤立セクタにマークを付けることを繰り返し、前記さらなるホスト装置同期イベントを待ち、及び前記ホスト装置が前記読み取り／修正／書き込み動作に上書きを行った否かを判定し、前記孤立セクタに依然としてマークが付いている場合、前記セクタのリストを新たなデータの記憶に利用できるものとして割り当て、及び前記候補リストをクリアにする、
ことを特徴とする方法。
【請求項２】
前記トリガイベントが、記憶媒体の利用閾値に達した又はこれを超えた旨の指示を含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記トリガイベントがプログラムされた動作を含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記トリガイベントが前記ホスト装置のユーザによる手動介入を含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記候補ファイルが前記記憶媒体に記憶されている最も古いファイルであることを特徴とする、請求項１に記載の方法。
【請求項６】
前記候補ファイルが前記記憶媒体に記憶されている最後のアクセスからの時間が最も長いファイルであることを特徴とする、請求項１に記載の方法。
【請求項７】
前記候補ファイルは、前記記憶媒体に記憶されている最もアクセス頻度の低いファイルであることを特徴とする、請求項１に記載の方法。
【請求項８】
前記セクタ情報が前記記憶媒体の確保された領域に記憶されることを特徴とする、請求項１に記載の方法。
【請求項９】
前記第１のホスト装置同期イベントが、前記ホスト装置の電源を切断し、その後電源を投入するサイクルを含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
前記第１のホスト装置同期イベントが、前記ホスト装置がパーティションテーブル又はマスタブートレコード及びファイル割り当てテーブル（ＦＡＴ）ブートブロックを読み取っていることを前記コントローラが検出することにより判別される、請求項９に記載の方法。
【請求項１１】
前記第１のホスト装置同期イベントが、前記コントローラがホスト装置による前記記憶装置のファイルシステムへのファイルシステム実装動作に一致するアクセスを認識することにより、別のイベントと区別される、請求項９に記載の方法。
【請求項１２】
前記孤立セクタが、前記ホスト装置が前記記憶装置にアクセスできないようにしながら読み取り／修正／書き込み動作を使用してマークを付けられる、請求項１に記載の方法。
【請求項１３】
前記記憶装置の削除閾値に達したこと、前記記憶装置に記憶されたファイルが一定数又は一定割合削除されたこと、或いは前記記憶装置内の指定した割合の記憶容量が新たなファイルの記憶に利用可能になったこと、という基準の少なくとも１つが満たされるまで削除処理が繰り返される、請求項１に記載の方法。
【請求項１４】
ホスト装置インターフェイス及び記憶媒体に通信可能に結合されたコントローラを備えた記憶装置であって、該コントローラが、
トリガイベントの検出時に、前記記憶媒体から削除する候補であるファイルのリストを列挙し、前記候補ファイルを記憶するために使用する前記記憶媒体のセクタのリストを記録し、
前記ホスト装置インターフェイスに結合されたホスト装置が前記記憶媒体にアクセスできないようにしながら、前記列挙されたファイルのリストに対応する記憶装置ファイルシステムのディレクトリエントリに削除マークを付け、前記ディレクトリエントリを保持する前記記憶媒体のセクタの読み取り／修正／書き込みシーケンスを実行し、
第１のホスト装置同期イベントを待ち、該第１のホスト装置同期イベントを認識すると、前記削除する候補ファイルのリストをチェックし、前記候補ファイルの対応するディレクトリエントリに削除マークが付いているかどうかを判定し、
前記候補ファイルのディレクトリエントリに削除マークが付いていない場合、前記ディレクトリエントリに削除マークを付けることを繰り返し、前記ディレクトリエントリを保持する前記記憶媒体のセクタの読み取り／修正／書き込みを実行すること、及びさらなる第１のホスト装置同期イベントを待ち、
前記候補ファイルのディレクトリエントリに削除マークが付いている場合、前記記憶媒体内の対応するデータ記憶ユニットにデータが記憶されないようにするが、前記セクタのリスト内には前記孤立セクタを残し、当該孤立セクタは、削除マークが付けられる対応するディレクトリエントリのセクタであって、依然として割り当てられている前記対応するデータ記憶ユニットのセクタではなく、
さらなるホスト装置同期イベントを待ち、該さらなるホスト装置同期イベントを認識すると、前記孤立セクタを通じて、前記読み取り／修正／書き込み動作に前記ホスト装置が後から上書きを行ったか否かを判定することを繰り返し、
前記孤立セクタが以前の値に戻っている場合、前記孤立セクタにマークを付けることを繰り返し、前記さらなるホスト装置同期イベントを待ち、及び前記ホスト装置が前記読み取り／修正／書き込み動作に上書きを行った否かを判定し、前記孤立セクタに依然としてマークが付いている場合、前記セクタのリストを新たなデータの記憶に利用できるものとして割り当て、及び前記候補リストをクリアにする、
ように構成されることを特徴とする記憶装置。
【請求項１５】
前記記憶装置がメディアカードを含み、前記ホストインターフェイスがデジタルカメラインターフェイスを含むことを特徴とする、請求項１４に記載の記憶装置。
【請求項１６】
前記トリガイベントが、記憶媒体の利用閾値に達した又はこれを超えた旨の指示、プログラムされた動作、又は前記ホスト装置のユーザによる手動介入のうちの１つを含むことを特徴とする、請求項１４に記載の記憶装置。
【請求項１７】
前記候補ファイルが、前記記憶媒体に記憶されている最も古いファイル、前記記憶媒体に記憶されている最後のアクセスからの時間が最も長いファイル、又は前記記憶媒体に記憶されている最もアクセス頻度の低いファイルのうちの１つであることを特徴とする、請求項１４に記載の記憶装置。
【請求項１８】
前記第１のホスト装置同期イベントが、前記ホスト装置の電源を切断し、その後電源を投入するサイクルを含むことを特徴とする、請求項１４に記載の記憶装置。
【請求項１９】
前記コントローラが、ホスト装置による前記記憶装置のファイルシステムへのファイルシステム実装動作に一致するアクセスを認識することにより、前記第１のホスト装置同期イベントを認識するように構成される、請求項１４に記載の記憶装置。
【請求項２０】
前記コントローラが、前記記憶装置の削除閾値に達したこと、前記記憶装置に記憶されたファイルが一定数又は一定割合削除されたこと、或いは前記記憶装置内の指定した割合の記憶容量が新たなファイルの記憶に利用可能になったこと、という基準の少なくとも１つが満たされるまで削除処理を実行するように構成される、請求項１４に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願〕
本出願は、（ｉ）引用により組み入れられる２０１０年３月５日に出願された米国仮特許出願第６１／３１１，１３８号の非仮出願であるとともに、（ｉｉ）２００５年９月１５日に出願された米国仮特許出願第６０／７１８，１５５号に基づく優先権主張する２００６年８月２９日に出願された米国特許出願１１／４６８，２５１号（現在は米国特許７，７０２，８２１号）の分割出願である２０１０年３月２９日に出願された同時係属中の米国特許出願第１２／７４９，４８５号の一部継続出願であり、これらの特許出願は全て本発明の譲受人に譲受される。
【０００２】
本発明は、記憶装置に関し、より詳細には、新しいコンテンツのための空き記憶容量を提供するために、記憶装置コントローラが、ホスト装置の明確な協調を伴わずにこのような記憶装置の記憶媒体からコンテンツを削除する方法及びシステムに関する。
【背景技術】
【０００３】
デジタルスチルカメラ（ＤＳＣ）などの装置は、画像データ及び（画像データに関するメタデータなどの）その他のデータを記憶するために、取り外し可能な不揮発性メディアカードに依存する。オーディオ／ビデオレコーダ／プレーヤなどの他のデジタルメディア装置（携帯電話、携帯情報端末、ＭＰ３プレーヤ、デジタルビデオカメラ、ポータブルコンピュータなど）も、様々なデジタルメディア（画像、ムービー、オーディオなど）を記憶するためにこのようなメディアカードを使用する。メディアカードのフォーマットは複数存在し、セキュアデジタル（ＳＤ）、マルチメディアカード（ＭＭＣ）、コンパクトフラッシュ（ＣＦ）Ｉ及びＩＩ、メモリスティック（ＭＳ）、及びｘＤピクチャカード（ｘＤ）などがある。本明細書で使用するメディアカードという用語は、物理フォーマットに関わらず、全てのこのようなデジタルメディア記憶装置を意味するように意図されている。
【０００４】
一般に、これらのメディアカードから画像データ又はその他のデータを抽出するには、パーソナルコンピュータ（又は同様の装置）又はプリンタへのテザー接続が必要である。例えば、メディアカードと互換性がある物理インターフェイスをサポートするプリンタを使用して、画像をハードコピーに直接ダウンロードすることができる。或いは、カードリーダ、又はメディアカードをホストするカメラとコンピュータとの間の有線接続を介して、画像をパーソナルコンピュータにアップロードすることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００７／００７３９３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
最近になって、無線ネットワーク接続性を有するデジタルカメラが現れてきた。これらのカメラは、無線ネットワーク（通常はＩＥＥＥ８０２．１１ａ／ｂ／ｇ規格などに準拠するネットワークなど）との接続を可能にして、画像データをメディアカードからパーソナルコンピュータ又はプリンタに転送する。しかしながら、一般にこのようなカメラは、無線ネットワーク非対応ＤＳＣよりも高価であり、現在の無線ネットワーク非対応ＤＳＣの導入基盤を考えると、今日市販されている全体的なＤＳＣの数のごく一部にしか相当しない。
【課題を解決するための手段】
【０００７】
本明細書では、新しいコンテンツのための空き記憶容量を提供するために、ホスト装置の明確な協調を伴わずにこれらの記憶装置の記憶媒体からコンテンツを削除する記憶装置コントローラのための方法及びシステムを説明する。
【０００８】
１つの実施形態では、ホスト装置インターフェイス及び記憶媒体を含む記憶装置のコントローラが、トリガイベントの検出時に、記憶媒体から削除する候補であるファイルのリストを列挙し、これらの候補ファイルを記憶するために使用する記憶媒体のセクタのリストを記録し、ホスト装置インターフェイスに結合されたホスト装置が記憶媒体にアクセスできないようにしながら、列挙されたファイルのリストに対応する記憶装置ファイルシステムのディレクトリエントリに削除マークを付け、このディレクトリエントリを保持する記憶媒体のセクタの読み取り／修正／書き込みシーケンスを実行し、第１のホスト装置同期イベントを待ち、この第１のホスト装置同期イベントを認識すると、削除する候補ファイルのリストをチェックし、この候補ファイルの対応するディレクトリエントリに削除マークが付いているかどうかを判定し、この候補ファイルのディレクトリエントリに削除マークが付いていない場合、ディレクトリエントリに削除マークを付けることを繰り返し、ディレクトリエントリを保持する記憶媒体のセクタの読み取り／修正／書き込みを実行すること、及びさらなる第１のホスト装置同期イベントを待ち、候補ファイルのディレクトリエントリに削除マークが付いている場合、前記記憶媒体内の対応するデータ記憶ユニットにデータが記憶されないようにするが、前記セクタのリスト内には前記孤立セクタを残し、当該孤立セクタは、削除マークが付けられる対応するディレクトリエントリのセクタであって、依然として割り当てられている前記対応するデータ記憶ユニットのセクタではなく、さらなるホスト装置同期イベントを待ち、このさらなるホスト装置同期イベントを認識すると、孤立セクタを通じて、読み取り／修正／書き込み動作にホスト装置が後から上書きを行ったか否かを判定することを繰り返し、孤立セクタが以前の値に戻っている場合、孤立セクタにマークを付けることを繰り返し、さらなるホスト装置同期イベントを待ち、及びホスト装置が読み取り／修正／書き込み動作に上書きを行った否かを判定し、孤立セクタに依然としてマークが付いている場合、セクタのリストを新たなデータの記憶に利用できるものとして割り当て、及び候補リストをクリアにする、ように構成される。
【０００９】
以下、添付図面を参照しながら、本発明のこれらの及び別の実施形態についてより詳細に説明する。
【００１０】
本発明の一例を添付図面の図に示す。本発明は図面の構成に限定されるわけではない。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態により構成されたメディアカードの形式のデジタルメディア記憶装置の一例を示す図である。
【図２】本発明の別の実施形態により構成されたメディアカードを示す図である。
【図３】本発明の実施形態によるフォーマット済みの記憶装置の構造を示す図である。
【図４】本発明の実施形態による、記憶装置のファイルシステム内のディレクトリテーブルの例を示す図である。
【図５】本発明の実施形態による、ファイル割り当てテーブルへのポインタを含むディレクトリテーブルの例を示す図である。
【図６】本発明の実施形態による、（画像などの）新規ファイル用の空間を作り出すために、記憶装置のファイルシステムから１又はそれ以上のファイルを削除する処理の一例を示す図である。
【図７Ａ】本発明の実施形態による、トリガイベントに応答して記憶装置からコンテンツを削除する一例を示す図である。
【図７Ｂ】本発明の実施形態による、トリガイベントに応答して記憶装置からコンテンツを削除する一例を示す図である。
【発明を実施するための形態】
【００１２】
米国特許出願公開第２００７／００７３９３７号に、ＤＳＣ及びその他のデジタルメディア装置などのレガシー装置における従来のメディアカードに取って代わる、又はこれの代用となることができるコンテンツアウェアデジタルメディア記憶装置が記載されている。このデジタルメディア記憶装置は、デジタルメディア記憶装置と、互換性のある送信機／受信機／送受信機との間の無線通信を可能にするための無線周波数回路を含む。この記憶装置はまた、フラッシュメモリアレイと、フラッシュメモリアレイ対向及びホスト対向物理層インターフェイスロジックを含むコンピュータ可読命令を実行するように構成されたコントローラとを含む。本文脈では、デジタルメディア記憶装置を（画像、オーディオファイルなどの）デジタルデータの保存場所として使用する（カメラ、オーディオプレーヤ又はその他のホスト装置などの）装置を「ホスト」と呼ぶ。コントローラは、コンピュータ可読命令を実行して、記憶装置のホスト対向物理層インターフェイス（すなわち、ＤＳＣ又はその他のデジタル装置とのインターフェイス）からフラッシュメモリアレイへのアクセスを代理し、フラッシュメモリアレイに記憶されたデジタルデータを、ＲＦ回路を介して遠隔コンピュータシステムにオフロードする。このようにして、ホストカメラから記憶装置を取り外す必要なく、又はホストカメラとコンピュータシステムの間の有線通信リンクを使用する必要なく、デジタル画像及びこれらの関連するメタデータを記憶装置からデジタルフォトアルバムなどに無線で転送することができる。また、記憶された画像がデジタルフォトアルバム又は遠隔コンピュータシステムに正常に転送され次第、これらの画像をメディアカードから自動的に削除することもできる。本明細書では、このような自律削除を容易にするための方法及びシステムについて説明する。なお、残りの説明部分は、フラッシュメモリ記憶媒体を有するメディアカードに関するが、本発明は、（磁気又は光学ディスク、固体記憶媒体又はその他の種類の記憶媒体などの）あらゆる種類の記憶媒体を有するあらゆる記憶装置に適用可能である。従って、本明細書に示すフラッシュメモリの例は、本発明の範囲を限定するためのものではない。
【００１３】
図１に、本発明の実施形態により構成されたメディアカード１０の形式のデジタルメディア記憶装置の例を示す。図示のように、メディアカード１０は、（ＤＳＣ又はその他のデジタル装置などの）ホストと通信するためのインターフェイス１２を含む。インターフェイス１２の物理的及び電気的構成は、使用するメディアカードの種類（ＳＤ、ＭＭＣ、ＣＦＩ、ＣＦＩＩ、ＭＳ、ｘＤなど）によって異なるが、当業界ではこのようなインターフェイスは周知であり、詳細に説明する必要はない。別の言い方をすれば、このようなインターフェイスは本質的に全く従来型であり、使用するメディアカードの種類に応じて関連業界の仕様に準拠する。
【００１４】
ホストインターフェイス１２は、メディアカード１０内で電気信号を伝えるために使用されるバス１４に結合される。場合によっては、バス１４は、インターフェイス１２と中央処理装置（ＣＰＵ）１６の間の専用バスであってもよく、また場合によっては、ＣＰＵと他の構成要素の間の通信に同様に使用される、より一般的なバスであってもよい。インターフェイス１２と同様に、（バス１４に通信可能に結合された）ＣＰＵ１６も、このようなメディアカードの従来機能である。いくつかの実施形態では、（ＳＲＡＭなどの）読み取り／書き込みメモリ１８を使用することができる。このメモリは、ＣＰＵ１６が計算などを行う場合の便利な記憶場所を提供する。ＳＲＡＭ１８は、（図示のように）バス１４に通信可能に結合することができ、或いは（別個のメモリバスなどの）プライベートインターフェイスを介して直接ＣＰＵ１６に通信可能に結合することができる。
【００１５】
メモリコントローラ２０及び関連するメモリアレイ２２も存在し、コントローラ２０は、バス１４及びアレイ２２に通信可能に結合される。図には、フラッシュメモリアレイ及びフラッシュメモリコントローラを示しているが、他の記憶媒体及び関連するコントローラを使用してもよい。例えば、比較的新しい形の記憶装置は、従来のＣＦ−ＩＩメディアカードと互換性のある物理フォーマットのミニハードドライブ及び関連するコントローラを内蔵する。このような記憶装置は記憶形式にとらわれず、本発明に関連してこれらを使用することもできる。
【００１６】
メディアカード１０には、ＣＰＵ１６と通信するためにバス１４に通信可能に結合できる無線送受信機２４も含まれる。無線機２４は、上述した周辺機器の一例であり、この実施形態では、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ仕様などに準拠することが好ましいが、他の実施形態では、他の形式の無線機又はその他の周辺機器を使用することもできる。例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）及び／又はＧＰＳ仕様に準拠する無線機を使用することができる。これとは別に又はこれに加えて、ＩＥＥＥ８０２．１６規格に準拠する無線機を使用することもできる。周辺ポートの正確な種類は本発明にとって重要ではないが、後述する応用のいくつかでは、メディアカード１０に無線通信を提供する周辺装置が必要である。
【００１７】
この例では、メディアカード１０の物理的寸法が、ＤＳＣ及びなどの様々なホストの既存のメディアカードインターフェイスに適合する。これまで、無線ネットワーク機能を備えたメディアカードは、非無線対応の同じカードよりも大型であった。通常（又はしばしば）、ＤＳＣ（及びその他のデジタル装置）は、そのメディアカードをホスト装置の本体に内包する。この結果、大型の無線対応メディアカードは、多くの既存のホスト装置に適合しなかった。しかしながら、様々な実施形態では、本メディアカード１０は、レガシーなホストのメディアカードハウジングに収まるようなサイズである。
【００１８】
無線機能を備えたメディアカードを様々なホストとともに使用することを阻んでいたその他の非互換性問題は、克服するのがさらに困難である。例えば、無線ネットワーク機能を備えたフラッシュメモリを組み込む従来のメディアカードは、ホスト装置が適当なソフトウェアドライバによってこれらのカードをサポートすることを必要とし、既存の及びレガシーなホストとの互換性がない。すなわち、既存のホストは、これらの機能を有するこれまで利用可能であったメディアカードとともに動作する必要があるファームウェアを単純に含んでいない。逆に、本メディアカードは「自己ホスト」型であり、すなわちこれらのカードは、ホスト装置からのこのようなファームウェアサポートを必要としない。或いは、本メディアカード自体が、オンボードネットワークインターフェイスを備えたホスト装置ではあるが、カードを従来のブロック記憶装置として使用するカメラ又はその他のデジタル装置に対して存在するホスト装置として動作する。このことは、本メディアカードとの間で画像ファイル、オーディオファイル、又はその他のデジタルコンテンツ及びメタデータの読み取り及び書き込みを行うために、既存の及びレガシーなホスト装置が使用するファームウェアを変更する必要がないことを意味する。
【００１９】
また、メモリアレイ２２の一部を、メディアカードから転送される画像のアップロード状態情報を記憶するために確保することもできる。例えば、無線機を備えたメディアカードをデジタル画像のアップロードに関連して使用する場合、無線ネットワークを介したあらゆるこのようなアップロードの状態に関する情報を維持することは、このような転送が中断された場合に、無線ネットワークとの通信が再確立された時点で正しい開始点から転送を再開できるようにするために重要となり得る。さらに、このような状態情報を維持することにより、いつメディアカードのメモリアレイからオリジナル画像を安全に削除できるかを判断する能力がメディアカードに与えられるようになる。当然ながら、メディアカード上に記憶することに加え、又はこの代わりに、ネットワーク側でアップロード状態を記憶することもできる。情報を「カード上」及び遠隔コンピュータシステム上の両方に記憶することにより、適切な送信中断処理が可能になる。
【００２０】
図２に、本発明の別の実施形態により構成されたメディアカード２６を示す。このメディアカード２６では、フラッシュメモリコントローラ２８が、例えば、ＳＤ又はＣＦ−Ｉ／ＣＦ−ＩＩインターフェイスなどのホストインターフェイス３０を含む。コントローラ２８は、フラッシュメモリアレイ３４に通信可能に接続されたフラッシュアレイインターフェイス３２も含む。この例では、ＮＡＮＤフラッシュメモリアレイを使用しているが、他の実施形態では、ＮＯＲフラッシュメモリアレイを使用することができる。
【００２１】
メディアカード２６は、フラッシュコントローラ２８及びメモリアレイ３４に通信可能に結合された無線機３６も含む。無線機３６は、メディアアクセスコントローラ、（中間結果及びコンピュータ可読命令をそれぞれ記憶するための付随する読み取り／書き込みメモリ及びフラッシュメモリを含む）ＲＩＳＣプロセッサ及び無線機フロントエンドをいずれも含む、内蔵型８０２．１１ａ／ｂ／ｇなどに準拠する通信装置であってもよい。二次インターフェイス（ホスト装置とのインターフェイスをメディアカードの一次インターフェイスと見なす）の無線特質により、ホストのメディアカードスロットにメディアカードを内包したままで、メディアカードとの間でデジタルコンテンツ（画像など）を転送することができる。メディアスロット内から作業を行うことにより、メディアカードがホスト装置から電力を引き出すことができ、内蔵バッテリの必要性が排除される。ホストインターフェイス（１２、３０）を介して電力が供給される場合には、或いはメディアカードにバッテリを一体化した実施形態では、メディアカード及びその無線インターフェイスをホストの外部で動作させることもできる。上述したように、本メディアカードは、無線転送機能を可能にするために、従来のフラッシュコントローラ機能に（ＩＥＥＥ８０２．１１ａ／ｂ／ｇなどの無線機又はＢｌｕｅｔｏｏｔｈ無線機などの）無線機、メディアアクセスコントローラ（ＭＡＣ）、及び組み込みホストＣＰＵを追加している。この組み込みホストＣＰＵが使用するために、ホストのファイルシステム及びメモリアレイに記憶されたデータを解釈するためのソフトウェア構成要素、ローカルエリアネットワーク及び／又は（ＴＣＰ／ＩＰプロトコルなどを介して）その他のネットワークに接続するためのソフトウェア構成要素、及び無線インターフェイスハードウェアの低水準ドライバタスクを管理するためのソフトウェア構成要素が全て含まれる。
【００２２】
説明したように、本発明により構成されたメディアカードは、ＤＳＣ、デジタルビデオカメラ、携帯電話機、パーソナルコンピュータ、携帯情報端末、及び同様の装置などの様々な装置に関連して使用することができる。以下の説明の大半は、このようなメディアカードをＤＳＣとともに使用することに焦点を当てており、以下、本発明により構成されたデジタルメディア記憶装置にＤＳＣが画像データを書き込むという特定の事例に関するファームウェア動作のさらなる詳細を示す。しかしながら、これは、本発明の一例を示すためだけに行うものであることを念頭に置かれたい。本発明の全体的な範囲は、この説明の後の特許請求の範囲に反映されており、この範囲を、本明細書に示すＤＳＣの例の観点からいたずらに限定すべきではない。
【００２３】
本発明による、記憶装置に無線通信システムを一体化したメディアカードは、様々なＤＳＣ及びその他のホストと互換性を有するように、あらゆる既存のメディアカードフォーマット（ＳＤ、ＭＭＣ、ＣＦ、ＭＳ、又はｘＤ）に準拠することができる。カメラホストの場合、無線通信装置を一体化することにより、ユーザは、カメラ又はメディアカードを（ユニバーサルシリアルバス（ＵＳＢ）ケーブル又はその他のインターフェイスなどの）物理インターフェイスにテザー接続する必要なく、画像を取り込んだ時点（無線通信が利用可能な場合）又は後の時点で、カメラ（すなわちメディアカード）から（パーソナルコンピュータ、ローカルエリアネットワークに関連するサーバ又は記憶場所、或いはインターネットベースのコンピュータ／記憶リソースなどの）別の装置に画像（又はその他のデータ）をアップロードできるようになる。インターネットベースのコンピュータ／記憶リソースに画像をアップロードする場合、パーソナルコンピュータ、テレビとセットトップボックスの組み合わせ、携帯電話機、又は同様の通信装置のいずれかを使用して、いずれかの従来のウェブブラウザを介してこれらの画像を管理することができる。
【００２４】
このように、本発明により構成された様々なメディアカードについて説明しているが、ここで記憶媒体へのデジタルデータの書き込み及び削除方法について説明する。
【００２５】
従来のフラッシュコントローラとは異なり、本コントローラ及び関連するファームウェアは、本発明により構成されたデジタルメディア記憶装置がフラッシュアレイに記憶されたデータを解釈して処理できるようにする。本ファームウェアは、フラッシュアレイに書き込まれたファイルシステム構造を使用して装置を「実装」し（コンピュータがあらゆる種類の記憶媒体を使用できるようになる前に、オペレーティングシステムは、この媒体をコンピュータのファイルシステムを通じてアクセス可能にしなければならない〜実装として知られている処理）、このフラッシュアレイに記憶されたファイルの在庫を取得し、これらのファイルのコンテンツを読み取り、（必要に応じて）ファイルシステムに修正を行う。このような修正は、以下に限定されるわけではないが、ファイルの削除及びリネーム、ファイル属性の更新、及び新規ファイルの作成を含む。このことは、情報が固定サイズの不透明なデータブロックの形で記憶アレイに書き込まれるようにして、このブロックをアレイに書き込むのに適した動作を行うにすぎない従来のフラッシュアレイコントローラとは全く対照的である。
【００２６】
次に、１つの実施形態では、本デジタルメディア記憶装置は、外部ホストがフラッシュアレイのアドレスを直接指定するのを妨げる。或いは、ホスト装置による全てのアクセスを、フラッシュアレイ内の特定のデータブロックに帰着する前にファームウェアが代理して翻訳する。デジタルメディア記憶装置は、最初に必要に応じて装置を（従来の方法などで）フォーマットし、次に内部マッピングテーブルを初期化して、フォーマット動作中に書き込まれた全てのブロックを直接マッピングし、アレイ内の他の全てのブロックのマッピングを解除することにより、このような動作の準備を整えることができる。この結果、動作の終了後には、ファイル割り当てテーブル（ＦＡＴ）、ルートディレクトリ構造及びパーティションブートレコードなどのファイルシステムメタデータを含むデータブロックのみが、ホストインターフェイスにおいて示される論理ブロックアドレスからデジタルメディア記憶装置内の物理アドレスへの有効な変換を有するようになる。他の全てのブロックは、未使用及び未割り当てと見なされ、ホスト装置が直接アクセスすることはできない。このようなフォーマット済みの記憶装置の構造を図３に示す。
【００２７】
図示のように、ＦＡＴファイルシステム４０は４つの区画を有する。最初の区画は、（パーティションブートレコードとも呼ばれる）ブートセクタを含むいくつかの予約セクタ４２である。この予約セクタは、基本ファイルシステム情報及び他の区画の場所へのポインタのための領域を含む。次はＦＡＴセクタ４６であり、実際のファイル割り当てテーブル５４を含む。このセクタは、基本的にファイル及びディレクトリがどのクラスタを使用するかを示すデータ領域のマップである。次に、ルートディレクトリ領域４８が、ルートディレクトリ内に存在するファイル及びディレクトリに関する情報を記憶するディレクトリテーブルを提供する。場合によっては、ルートディレクトリ領域が、ファイル及びその他のディレクトリとともにデータ領域５０に記憶され、このような制約を伴わずに増大することができる。最後に、データ領域が、実際のファイル及びディレクトリ（及び、場合によってはサブディレクトリ）データを記憶する。ファイル及びディレクトリのサイズは、ＦＡＴ内のファイルのチェーンにより多くのリンク５６を単純に追加することによって（空きクラスタが存在する限り）任意に増加させることができる。ただし、ファイルはクラスタ５２を単位として割り当てられる。
【００２８】
この初期化状態から、デジタルメディア記憶装置は、フラッシュアレイ内の空き物理ブロック及び割り当てブロックの論理対物理マッピングの永続データベースを維持する。１つの実施形態では、外部ホストからのブロックアクセスを、以下の方法で阻止することができる。
１）外部ホストによりブロックの読み取りが要求され、そのブロックアドレスの論理対物理マッピングが存在する場合、対応するデータブロックをフラッシュアレイから読み取ってホストに戻す。
２）外部ホストによりブロックの読み取りが要求されたが、そのブロックアドレスの論理対物理マッピングが存在しない場合、デジタルメディア記憶装置は、全てがゼロのブロックデータ読み取り応答（又は他の応答）を作成して、データを外部ホストに戻す。フラッシュアレイは、アクセスを受けることも、新たな記憶又はマッピングが割り当てられることもない。
３）外部ホストによりブロック書き込みが要求され、そのブロックアドレスの論理対物理マッピングが存在する場合、ホストにより提供されたデータを、フラッシュメモリの対応する物理アドレスに書き込む。
４）外部ホストによりブロック書き込みが要求されたが、そのブロックアドレスの既存の論理対物理マッピングが存在しない場合、デジタルメディア記憶装置の空き物理ブロックの内部永続データベースから現在マッピングされていない物理ブロックを取り出し、ホストにより提供されたブロックアドレスから割り当てブロックの物理アドレスへの新しいマッピングを作成する。次に、ホストにより提供されたデータを、フラッシュアレイのその物理アドレスに書き込む。空き物理ブロックが利用可能でない場合、ブロックレベルの装置アクセスエラーをホストに戻す。
【００２９】
この動的割り当て論理対物理ブロックアドレスマッピング方式により、本デジタルメディア記憶装置は、そのフラッシュメモリアレイ内のデータを、外部のホストから見える副作用を伴わずに再編成できるようになる。さらに、高水準ＦＡＴファイルシステム動作をファームウェアが理解することによってこの方式を増補することにより、本記憶装置は、フラッシュアレイに記憶されたファイル又はフォルダのコンテンツを、外部ホスト装置のソフトウェアからのいずれの明確な協調又は同期も伴わずに操作できるようになる。別の言い方をすれば、本発明によってもたらされる利点（フラッシュメモリに記憶されたデータを操作する能力）により、物理ホストの既存のファームウェア又はアプリケーションレベルソフトウェアを変更する必要がなくなる。
【００３０】
本発明の実施形態により提供されるアクセス制御をより良く理解するには、従来の取り外し可能媒体及びホスト装置のいくつかの基本的特徴を見直すべきである。今日市販されているほとんどのＤＳＣは、ＤＳＣの「デジタルフィルム」スロットに挿入された不揮発性記憶装置を採用している。これらの不揮発性記憶装置は、ＤＳＣが取り込んだ画像を記憶するために「ＦＡＴ」すなわちファイル割り当てテーブルフォーマットを使用する。ＦＡＴファイルシステムは、ＭＳ−ＤＯＳを起源とし、（ＦＡＴ−１６及びＦＡＴ−３２などの）いくつかの変種が使用されている。ＦＡＴは、デジタルカメラにおいて、ＤＣＦ２．０として良く知られているＪＥＩＴＡ  ＣＰ−３４６１規格の一部として使用するように指定されている。ＤＣＦ２．０（セクション３．２及び５）は、ファイルシステムに加えて、ディレクトリ階層、並びにＦＡＴの８＋３命名方式のサブセットであるディレクトリ及びファイル命名規則を指定している。
【００３１】
ＤＳＣは、（メディアカードのフラッシュメモリなどの）記憶装置に画像を記憶する前に、この装置がＤＣＦ仕様に従ってフォーマットされているかどうかを判断する。そうでない場合、カメラは、「フォーマット」と呼ばれる処理を通じてデータを系統的に記憶するようにメモリ装置を準備する。フォーマットにより、メモリ装置に記憶された全ての既存のデータが論理的に消去され、ＦＡＴフォーマットの空のファイルシステム構造が書き込まれる。カメラのＦＡＴソフトウェアは、空のファイル割り当てテーブルに書き込みを行い、新規ファイルの記憶に利用できる全てのデータクラスタにマークを付ける。空のルートディレクトリ構造を初期化することにより、空のフォルダ構造が書き込まれる。次に、カメラは、ＤＣＦ仕様において概説した処理に従って新規フォルダを作成し、メモリ装置に記憶された画像を論理的に（メモリ装置を同時に使用できる異なるカメラを表すフォルダ、ユーザが写真を撮影した異なる日付を表すフォルダなどに）分離する。
【００３２】
ＥＸＩＦとして良く知られているＪＥＩＴＡ  ＣＰ−３４５１「デジタルスチルカメラのための交換可能な画像ファイルフォーマット」は、ＤＣＦ仕様の手引きである。ＥＸＩＦは、ＤＣＦにより義務付けられた、ファイルシステム構造内に記憶する画像、音、及びタグのフォーマットを指定する。例えば、及び上記で示唆したように、「アーティスト」（すなわち、撮影者）情報、及び／又は日付／時間情報を表すＥＸＩＦタグを使用することができる。撮影者情報は、ユーザが提供したアカウント情報から収集することができる。また、本発明により、ＧＰＳデータを使用して対応する時間帯を特定し、ＵＴＣを基準とするＧＰＳＤａｔｅＳｔａｍｐフィールドにこのような情報及び／又は絶対時間を書き込むことによって時間帯基準を追加することもできる。また、（本発明により構成されたメディアカードを有するＤＳＣの場所又はその近くに存在する他のユーザ／ＤＳＣなどの）仲間に関する情報をＭａｋｅｒＮｏｔｅタグに書き込むこともできる。場所メタデータと同様に、このような情報の処理も、メディアカード内で、サーバ層内で、又はこれらの装置を組み合わせて行うことができる。
【００３３】
ＥＸＩＦは、圧縮画像には（正式にはＩＳＯ−ＩＥＣ１０９１８−１／ＩＴＵ−Ｔ推薦Ｔ．８１として知られている）ＪＰＥＧを、未圧縮画像にはＡｄｏｂｅＴＩＦＦ６．０を使用することを指定している。いずれのフォーマットの画像にも、ＴＩＦＦ−スタイルタグ、記録するカメラ及び画像パラメータの注釈が付けられる。取り込んだ画像に関連付ける音声の注釈には、ＷＡＶフォーマットが指定されている。
【００３４】
不揮発性記憶媒体をうまく活用するには、各動作の最後に、カメラがメタデータ及びデータブロックの更新をフラッシュすることが予想される。にも関わらず、カメラの実施構成は、ライトスルーキャッシュの規律に依存して、ＦＡＴファイルシステムメタデータの一部又は全部をキャッシュし、フラッシュストレージを同期させておくことができる。この結果、次にカメラの電源が投入されるまで、又はメタデータキャッシュが一新されるときには常に、メディアカードによって行われるメタデータの更新を観察することはできない。
【００３５】
ＦＡＴファイル属性を使用して、ファイルに読み取り専用マークを付けることができる。ＤＣＦ２．０（セクション５．２．２．４）は、不慮の削除を防ぐための読み取り専用属性のサポートを定めている（ただし、ＤＳＣによっては、この属性を重んじないものもある）。カメラによっては、この読み取り専用属性をトグル切り替えできるものもある（プレビュー画面上のキーアイコンとして表されることが多い）。
【００３６】
画像が撮影されると、カメラによってファイルシステム内にファイルが作成され、その後、このファイルに、画像を符号化するデジタルデータのシーケンスが記憶される（注：場合によっては、このシーケンスが逆転することもあり、いずれも許容可能である）。通常、データは、ＤＣＦによって規定されるように、（ＪＰＥＧなどの）従来の圧縮画像フォーマットにフォーマットされる。カメラは、ファイルを作成して画像データを記憶する動作を完了するために、（装置に利用可能な空き容量があると仮定すると）以下の一連の動作を行わなければならないが、必ずしも正確にこの順序でなくてもよい。
１）ファイルシステムのルートディレクトリ領域から開始し、装置上に記憶されたディレクトリ階層を表すファイルシステムブロックを行き来して、新規画像を記憶するディレクトリのディレクトリテーブルブロック（フォルダ）を発見する。
２）このディレクトリテーブルブロックに、作成する新規ファイルを記述するエントリを追加する。このエントリは、ファイル名に関する情報、及びこのファイルのデータの先頭（すなわち、最初のデータブロック）がファイルシステム内のどこに存在するかに関する情報を含む。
３）ファイル割り当てテーブルに記憶された情報に基づいて空きデータクラスタを発見する。このデータクラスタに使用中マークを付け、このクラスタを表す連続範囲のブロックに画像データのクラスタの価値を記憶する（ＦＡＴでは、ファイルシステムの作成時にクラスタサイズを構成することができ、このサイズがファイル割り当てテーブル構造内に２ＫＢ〜３２ＫＢで示される）。
４）必要に応じて、画像データの全てのバイトがファイルシステムに書き込まれるまでステップ３を繰り返す。個々の新しいデータクラスタが書き込まれると、たとえファイルシステムを記憶する媒体の周囲にデータクラスタが散在していても、画像ファイルを論理的に連続して読み取ることができるように、これらのデータクラスタを以前のクラスタから１つずつリンクさせる。
【００３７】
デジタルカメラによって行われた全てのファイルシステムの更新が、メディアカード記憶装置によって代理されたフラッシュストレージへの書き込みアクセスとして表示される。メディアカードのファームウェアは、一連の経験則を使用して、これらの一連の動作の完了がデジタルスチルカメラ内の幅広いファイルシステム動作の実施と互換性があることを検出することができる。
１）ホスト装置によるフラッシュストレージへの最後の書き込みアクセス時間後に、所定の時間が経過するのを待つ。タイムアウト期間中にさらなる書き込みアクセスが生じた場合、ホスト装置がファイルシステムを更新し続けていると見なし、タイマをリセットして待ち続ける。
２）タイムアウト期限が来ると、ファイルシステムのディレクトリ構造をスキャンし、最後のスキャン中に保存したコピーとディレクトリ構造を比較することにより、最後のスキャン以降にいずれかの新規ファイルが作成されたかどうかを検出する。
３）検出された新規ファイルごとに、一つずつリンクされたデータクラスタのリストをリストの最後まで調べ、この時点で、データクラスタに記憶されたデータバイト数が、そのファイルのディレクトリテーブルエントリに示されるファイルのサイズに一致すべきである。スキャンが予定よりも早く終了した場合、ステップ１中のタイムアウト期限が短すぎたと仮定し、スキャン結果を無効にし、タイムアウトを増加させてステップ１に戻り、ホスト装置がファイルシステムの更新を完了できるようにする。
【００３８】
ユーザが画像のいずれかを削除することを選択した場合、カメラは、記憶装置上のファイルシステム情報を更新する必要がある。具体的には、カメラは、
１）削除する画像を含むフォルダのディレクトリテーブルブロックに書き込みを行って、この画像に対応するファイルのファイル名及びファイルシステム情報をテーブルから削除する。
２）ファイル割り当てテーブルブロックを更新して、削除されたファイルが使用していたデータクラスタブロックに空きマークを付ける。
【００３９】
上述したファイルシステム更新検出機構は、これらの動作、並びにフラッシュストレージへの書き込みアクセスとして現れる、デジタルカメラホストによって行われたファイル削除を含む全てのファイルシステム更新を検出する。更新検出後にディレクトリ構造のスキャンを行った時点で、メディアカードファームウェアが、更新済みのスキャン結果からいくつかのファイルが失われていることに気付いた場合、これらのファイルがファイルシステムから削除されたことが暗示される。ファームウェアは、削除されたファイルに対応する物理データブロックをフラッシュメモリ内に配置し、これらのブロックを永続データベース内の空き物理ブロックのプールに戻す。
【００４０】
ホストカメラが記憶装置との間で読み取り及び書き込みを行えることに加え、コントローラも、遠隔コンピュータシステムにデジタルデータをアップロードして画像又はその他のデータを削除するために、自律的読み取り及び書き込みを行うことができる。この処理は、ホストカメラが認識せずに又はその協調を伴わずに、ファイルシステムの一貫性問題又はデータの破損を排除する形で行われる。例えば、本発明の１つの実施形態では、（メモリ利用閾値に達したこと、プログラムされた動作又はユーザによる手動介入などの）事前に設定した基準の検出時に、コントローラが以下の動作を実行する。
【００４１】
まず、コントローラは、削除する候補であるファイルのリストを列挙し、これらのファイルを記憶するために使用されているセクタ割り当て範囲（クラスタ）のリストを記録する。これらの候補は、様々な基準のいずれかに従って選択することができ、例えば、記憶されている最も古いファイル、或いは最後のアクセスからの時間が最も長い又は最もアクセス頻度が低いファイルとすることができる。このクラスタ情報を、メディアカードの確保されたメモリ領域に記憶することができる。
【００４２】
次に、コントローラが、列挙されたファイルのディレクトリエントリにマーク付けし、（カメラなどの）ホストが記憶アレイにアクセスできないようにしながらこれらのファイルのそれぞれの削除フラグを設定し、このディレクトリエントリを保持するセクタの読み取り／修正／書き込みシーケンスを実行する。この時点で、記憶アレイがこの修正済み状態にある間、ホストは、修正済みセクタのキャッシュしたコピーを記憶しておくことができ、その後、関連性のある又はないディレクトリ動作の結果として、コントローラによって行われた変更に上書きすることができる。また、これらのファイルのデータ記憶も割り当てられて未修正のままである（すなわち、記憶アレイ内に画像自体が存在したままである）。
【００４３】
３番目に、コントローラは、ホスト装置の電源が切断されて次に再び投入されるのを待つ。ホストは、パーティションテーブル（又はマスタブートレコード）及び（ホストは、電源切断、電源投入サイクルの後でキャッシュを完全に補充する必要があると仮定されるので）ＦＡＴブートブロックを読み取ることにより、この新たな電源オンサイクルを検出することができる。後述するように、ホスト及びメディアカードの動力サイクルは、ホストによるセクタアクセスがファイルシステムの実装動作と一致することによってメディアカードのみの動力サイクルと区別することができる。
【００４４】
４番目に、コントローラは、削除候補ファイルのリストをチェックして、対応するディレクトリエントリに削除マークが付いているかどうかを調べる。付いている場合、これは、ホストが上記で行われた変更に上書きしておらず、最新版のディレクトリエントリを読み取った（キャッシュした）ばかりであることを示す。削除されないように戻された全てのファイルが、ホストカメラのキャッシュからの書き込みに起因して、削除フラグの読み取り／修正／書き込みを失うことになる。このようなファイルが存在するイベント（すなわち、ファイルが非削除状態に戻されたイベント）では、処理が上記ステップ２に戻り、削除フラグが設定されるように処理が繰り返される。次に、処理はステップ２から続行する。
【００４５】
５番目に、列挙されたファイルシステムには、ホストの関与を伴わずにコントローラによって削除マークを付けられたディレクトリエントリを含むファイルはこの時点でもはや存在しないが、（ＦＡＴ内のクラスタなどの）対応するデータ記憶ユニットは割り当てられたままである。これらのデータ記憶ユニットは、これらを示すディレクトリエントリが存在しないので事実上「孤立」しているが、これらはステップ１において記録されているので、範囲（クラスタ）のリストとしてコントローラに認識される。
【００４６】
６番目に、ステップ１及び５において、孤立したデータ記憶ユニットが追跡されて「不良」マークを付けられるが、これらはステップ１からの追跡リスト内に維持される。マーク付けは、ステップ２で使用したものと同様の読み取り／修正／書き込み動作を使用して（ホストカメラを締め出しながら）行うことができる。しかしながら、これらの修正がホストによるさらなる書き込みを免れるかどうかは次の動力サイクルまで分からない。
【００４７】
７番目に、コントローラは、ホストの別の電源切断、電源投入サイクルを待つ。
【００４８】
８番目に、コントローラは、ステップ６において修正された孤立したデータ記憶ユニットを通じて、修正が恒久的なものになったか否かを繰り返し判定する（すなわち、ホストが後から修正に上書きを行ったか否かを判定する）。データ記憶ユニットが、削除マークを付けられたままである場合、又はステップ１において最初に追跡したものとは異なる新規ファイルに対して割り当てられている場合、削除候補は永久に削除される。しかしながら、データ記憶ユニットの割り当てが以前の値に戻っている場合、処理はステップ５に戻って繰り返される。
【００４９】
９番目に、ステップ１においてコンパイルされたファイルのリストが上記に従って完全に処理されると、リスト及びその他のあらゆる追跡構造がクリア（削除）され、新たな候補リストで自律的ファイル削除処理を開始することができる。
【００５０】
上記の処理をなぜ使用するかをより良く理解するために、まずＤＳＣなどのシステムにおいて、ホスト装置が取り外し可能メディアカード又はその他の記憶装置を利用している場合に、このホストが唯一の「マスタ」であることを見込んでいる、すなわちこのホストが、記憶装置により記憶されたデータ及び／又はデータ構造を変更できる唯一の装置であることを見込んでいる場合について検討する。このため、性能、ユーザ体験などを理由として、ホストは、記憶装置のファイルシステム構造を構成するデータ及びメタデータの一部、多くの場合かなりの部分をキャッシュする。しかしながら、本取り外し可能メディアカードによって示すようなシステムでは、記憶装置により記憶されたデータ及びメタデータを（例えば、その一部を削除して新規データ（画像）及び／又はメタデータのための空間を作り出すために）ホストＤＳＣが認識していない第２のコントローラによっても変更できる場合、ホストがキャッシュしている情報と記憶装置が記憶している情報との間に矛盾が生じるとともに、ひいては他のコントローラにより行われた変更への上書きをホストに行わせるという固有のリスクが存在する。本発明は、このような矛盾及び上書き状況を解決する方法を提供する。
【００５１】
上述したように、取り外し可能メディアカード又はその他の記憶装置は、ファイルシステムを有する。このファイルシステムは、実際の記憶媒体（すなわち、フラッシュメモリアレイ又はハードディスクなど）に記憶された情報を装置が編成できるようにする手段である。より一般的には、ファイルシステムは、ホスト又はその他のコントローラが、これらのファイル及びデータの場所を特定してこれらにアクセスできるようにするために、ファイル及びこのファイルに含まれるデータを記憶して編成する方法を定義する。これを行うために、ファイルシステムは、記憶媒体の固定サイズのセクタをファイル及びディレクトリに編成し、どのセクタがどのファイルに属するか、及び他のどのセクタが使用されていないかを追跡する。ＦＡＴ、ｅｘＦＡＴを含むほとんどのファイルシステム、及びその他のファイルシステムは、記憶媒体の指定数のセクタで構成されたクラスタ（又はブロック）と呼ばれる固定サイズのユニット内にデータをアドレス指定する。このユニットは、ファイルを記憶するために割り当てできる最小量の物理記憶空間である。ファイルシステムは、記憶媒体に記憶されたファイルにファイル名を関連付けるための（ファイル割り当てテーブルなどの）ディレクトリも含む。本発明は、限定するわけではないが、ＦＡＴ及びｅｘＦＡＴを含む様々なシステムのいずれかを使用する記憶装置に適用可能である。図３には、ＦＡＴファイルシステム４０の例を示しているが、この図は例示を目的とするものにすぎず、本発明の範囲を限定していると見なすべきではない。
【００５２】
図３を参照して分かるように、ファイルシステムのデータ領域５０は、上述したようにファイルシステム内の割り当てできる（４ｋＢなどの）最小記憶単位であるクラスタ５２に分割されている。クラスタは、いずれの整数のセクタであってもよく、通常は１、２、４、８などである。記憶媒体のクラスタによって表される場所には、実際のユーザデータ、例えばＤＳＣの場合には画像データが記憶される。ＦＡＴセクタ４６は、データ領域内のクラスタの割り当てを識別するマッピングを含む。
【００５３】
画像又はその他のデータには、ＪＰＥＧ画像では例えばＤＳＣ＿０００１．ｊｐｇなどのファイル名が割り当てられる。ファイルシステムは、このファイルを、／ＤＳＩＭ／１００ＮＣＤ７０／ＤＳＣ＿０００１．ｊｐｇなどのファイル名によって識別される場所に記憶する。この（例えば、ルートディレクトリ領域に記録される、又は独立したルートディレクトリ領域が存在しないいくつかの場合にはデータ領域に記録される）識別符号は、ファイルＤＳＣ＿０００１．ｊｐｇの場所へのマッピングである。このマッピングにより、この例ではＤＳＩＭであるルートレベルディレクトリが識別され、これがさらにサブディレクトリ１００ＮＣＤ７０を示し、これ自体がファイルＤＳＣ＿１００．ｊｐｇを示す。このマッピングはディレクトリ構造と呼ばれ、基本的には、ユーザデータを記憶する次のテーブル又は実際のファイルを発見できるクラスタを示すエントリを含む一連のリンクされたテーブルである。ディレクトリ構造内では、個々のエントリが、これらのエントリをファイル又はディレクトリテーブルとして識別する属性、エントリが削除されたか否かを識別するためのインジケータ、及びその他の属性を含む。
【００５４】
当然ながら、個々のクラスタは、実際の記憶容量の観点から見て比較的小さく、従って通常は比較的大きなファイルである画像は、このようなクラスタを複数占めることになる。このクラスタのファイルへの割り当ては、ＦＡＴセクタのファイル割り当てテーブル内で追跡される。ファイル割り当てテーブル内の各エントリは、ＤＳＣ＿０００１．ｊｐｇに対応する画像データを記憶する最初のクラスタを表すエントリから開始し、このファイルの画像データを記憶する次のクラスタへのポインタ、又は関連するクラスタを、このようなデータを記憶するチェーン内の最後のクラスタとして識別するインジケータのいずれかを含む。カメラが画像を取り込むと、ファイルシステムは、ファイル割り当てテーブル内の選択された画像に対応するエントリを読み込み、対応するクラスタの場所からの画像データを取り出せるようになる。同様に、記憶装置に新たな画像が記憶されると、ＦＡＴセクタが更新されて、クラスタの割り当てをこの新たな画像の記憶に反映させる。
【００５５】
これらは全て、ファイルシステムからファイルをどのようにして削除しなければならないかに影響を与える。２つの事柄が起きなければならない。まず、対象ファイル（上記の例ではＤＳＣ＿０００１．ｊｐｇ）が記憶されている場所を識別するファイル割り当てテーブルのクラスタチェーン内の各クラスタに、「未使用」（又はこれらが再使用可能であることを示す他の何らかの指示）マークが付けられなければならない。次に、対象ファイルのディレクトリテーブルエントリに削除マークが付けられなければならない。これらの動作は、これらが完了したという保証が得られるようにアトミックに完了されなければならない。通常、ファイルシステムは、最初にディレクトリテーブルからファイルエントリを削除し（これにより、基本的にホストがファイル（すなわち画像）を利用できないようにし）、その後ファイル割り当てテーブルエントリを利用可能にする。なお、この処理は、多くの場合これらの記憶媒体の場所が物理的に消去又は上書きされるまでしばらく物理記憶媒体に記憶されたままであるユーザデータ自体には関与しない。また、ファイル割り当てテーブルエントリに「利用可能」マークを付ける２番目の動作が行われない場合、クラスタは割り当てられたままとなるが、そこに記憶された情報は利用不可能となり、従って（ホストの観点からすれば）記憶装置内の記憶容量の純損失が生じる。本発明の文脈では、「追記型」の記憶装置が意図されるいくつかの場合には、このことが望ましいものとなり得る。
【００５６】
本発明の文脈では、上述した動作は、ホストカメラが記憶装置との間で読み取り及び書き込みを行うだけでなく、記憶装置コントローラも、遠隔コンピュータシステムなどに画像データをアップロードし、記憶容量が常に新たな画像のために利用可能であることを確実にするために自動的に画像を削除する（すなわち、ホストカメラの観点からすれば「無限メモリ」を提供する）ことに関与するので複雑である。記憶装置コントローラのこれらの動作はホストカメラが認識せずに行われ、このためどのように記憶容量を割り当てるか、及びそこにどのような情報を記憶するかについてのカメラの概念と、これらについての記憶装置コントローラの概念との間に矛盾が生じる可能性がある。
【００５７】
図４を参照して、記憶装置のファイルシステム内のディレクトリテーブル５８、１００ＮＣＤ７０が、（１１枚の写真を表す）様々なファイル、ＤＳＣ＿０００１．ｊｐｇ、ＤＳＣ＿０００２．ｊｐｇ．．．ＤＳＣ＿００１１．ｊｐｇへの参照を含むと仮定する。さらに、（同期型ライトスルーキャッシュと仮定する）カメラのキャッシュ６０が、このディレクトリテーブルのコピーを記憶すると仮定する。カメラは、このブロックに関連する記憶容量を解放するための何らかの理由がなければ、このディレクトリテーブルは変更されていないままであると見なす。新たな写真（ＤＳＣ＿０００２．ｊｐｇ）が撮影された場合、カメラは、キャッシュしたバージョンのディレクトリテーブル内に新たなエントリを作成し、この修正されたディレクトリテーブルを記憶装置に書き込む。しかしながら、カメラは、このカメラが修正を行う唯一の装置であると思い込んでいるので、キャッシュしたバージョンを保持している限り、再び記憶装置からディレクトリテーブルを読み取る必要がない。
【００５８】
当然ながら、これは事実ではない。本記憶装置は、遠隔コンピュータシステム及び／又は電子フォトアルバムに自律的に画像をアップロードし、また新規画像のための空間を作り出すためにこの画像を記憶装置から削除するコントローラを含む。これらの削除動作はディレクトリテーブルに影響を与えるが、カメラがこれらのテーブルの以前にキャッシュしたバージョンを保持している場合、カメラはこれらの影響を知ることができない。従って、例えば、カメラが１００ＮＣＤ７０ディレクトリテーブルをキャッシュしている期間に記憶装置コントローラがファイルＤＳＣ＿０００２．ｊｐｇを削除した場合、この（削除されたファイルの参照を保持する）キャッシュされたバージョンのディレクトリテーブルは、記憶装置上に存在するバージョンのディレクトリテーブルとは異なるが、カメラは、この違いに気付くことも、再びこのバージョンのディレクトリテーブルを記憶装置から読み取って違いが存在すると判定することもない。その後、カメラが、記憶装置から画像ファイルＤＳＣ＿０００２．ｊｐｇを取り出そうとした場合（なお、単にこの画像を参照するディレクトリテーブルをカメラがキャッシュしたという理由により、この画像自体もキャッシュされていることを意味するわけではない）、記憶装置の観点からすれば、（記憶媒体内に画像データが存在するかどうかに関わらず）この画像を示すディレクトリテーブル又はファイル割り当てテーブルエントリが存在しないので、ファイルシステムエラーが生じる。カメラが、電源オフ、電源オンのサイクルを受け、この結果そのキャッシュが一新された場合にのみ、この２つのバージョンのディレクトリテーブルは再び同期される。或いは、上記のシナリオでは、カメラがキャッシュしたバージョンのＤＳＣ＿０００２．ｊｐｇを含む場合、ユーザは、騙されて画像が存在すると信じ込む場合がある（なぜなら、ユーザはこの画像をカメラ上では見ることができるが、ユーザがこれを記憶装置から回収しようとしたときにはなくなっているからである）。
【００５９】
さらなるエラーも考えられる。例えば、カメラがＤＳＣ＿０００２．ｊｐｇを記憶し、修正したディレクトリテーブルを記憶装置に書き込み、その後、記憶装置コントローラがＤＳＣ＿０００２．ｊｐｇを削除したと仮定する。ここで、カメラが新たな画像ＤＳＣ＿０００３．ｊｐｇを取り込むと仮定する。先程のように、この結果、キャッシュしたバージョンのディレクトリテーブルは、この新たな画像ファイルへの参照を含むように更新され、この修正されたバージョンのディレクトリテーブルが記憶装置に書き込まれる。しかしながら、このバージョンのディレクトリテーブルは、まさに記憶装置コントローラによって削除されたファイルであるＤＳＣ＿０００２．ｊｐｇへの参照を含む。この記憶装置コントローラの動作は、カメラの動作によって上書きされたことになる。さらに、カメラがＤＳＣ＿０００２．ｊｐｇに関するファイル割り当てテーブルの部分をキャッシュしなかった場合にも、記憶装置は、ＤＳＣ＿０００２．ｊｐｇに対応するディレクトリテーブルエントリを含むが、この画像のためのファイルテーブルエントリは存在せず（以前のバージョンは、ＤＳＣ＿０００２．ｊｐｇに関連するクラスタが利用可能であることを示すように修正されている）、この場合もファイルシステムエラーが生じる。当然ながら、カメラがファイル割り当てテーブルエントリをキャッシュして、記憶装置がファイルを削除した場合にも、同様の種類のエラーが生じ得る。これにより、実際にカメラが、データ領域内のクラスタが割り当てられていることを示すようにファイル割り当てに上書きしたが、記憶装置コントローラがこれらを削除してしまっていることにより、そこには実際のファイルが存在しないという状況が生じることがある。換言すれば、記憶容量は割り当てられるが、実際には使用されず、従って装置の有効記憶容量が減少する。
【００６０】
上述したような問題に取り組むために、本発明は同期「バリア」に依拠し、これを通過すると、（例えば、カメラのキャッシュ内に表されるような）ホストカメラによる記憶装置のファイルシステムの理解が、記憶装置コントローラによるファイルシステムの理解と同じになる（すなわち同期されている）こと（すなわち、記憶装置ファイルシステムに関する２つの装置の状態が同じになること）を記憶装置コントローラに対して保証することができる。名目上、この同期バリアは、カメラの動力サイクル（すなわち、ホストカメラの電源オフ、電源オン）であるが、カメラによっては、動力サイクルを通じてキャッシュの状態が持続することがあり、従っていくつかの実施構成では、（記憶装置コントローラにより）観察されるマスタブートレコード及びファイルシステム情報の（ホストカメラによる）読み取りに関連して、動力サイクルによりカメラのキャッシュコンテンツが完全に再初期化されていることが保証されるのを待つ必要があり得る。他の実施構成では、様々な観測基準を利用して、ファイルシステムがいつホストに実装されたかを特定し、その後これを同期バリア条件として使用することができる。
【００６１】
図５を参照すると、ファイル割り当てテーブル６２へのポインタを含むディレクトリテーブル５８の例を示している。このファイル割り当てテーブルは、実際の画像データがデータ領域内のどこに記憶されているかを定めるリンクされたエントリのリストを含む。ディレクトリテーブル５８は、クラスタ内の、例えばファイルシステムのデータ領域に記憶される。記憶装置コントローラが、（例えば、使用記憶容量の閾値に達したため、又は他の何らかの削除基準が満たされたためのいずれかの理由で）新規画像のための空間を作り出すためにファイルＤＳＣ＿０００３．ｊｐｇを削除すべきであると判断したと仮定する。
【００６２】
（図６に示す）処理６６の最初のステップは、記憶装置コントローラが、対象ファイル（ＤＳＣ＿０００３．ｊｐｇ）のディレクトリエントリ、（ディレクトリエントリをファイルシステム内のどこに記憶したかなどの）そのいくつかの属性、及びファイル割り当てテーブル内で識別される、対象ファイルの記憶に割り当てられたクラスタのリストを（例えば、メモリ６４の、ファイルシステムの外部であって記憶装置コントローラがアクセスできる範囲に）保存する（ステップ６８）ためのものである。この例では、これらはクラスタＣ０〜Ｃ９である。この記憶により、同期バリア（説明すると、この例ではホストの動力サイクルのことであるが、上述したように他の例では他のイベントであってもよい）にわたって一貫していることを後でチェックできるようになる。この情報が記録されると、対象ファイルのディレクトリエントリに「削除」マークが付けられ（ステップ７０）、処理は（ホストの電源ンオフ、電源オンなどの）同期バリアを待つ（ステップ７２）。
【００６３】
同期バリアが観察されると、記憶装置コントローラは、そのメモリの記憶領域から読み取りを行って、対象ファイルのディレクトリエントリのファイルシステムアドレスを取得し（ステップ７４）、この情報を使用して、ファイルシステム内の同じ場所のディレクトリエントリを読み取る。読み取ったものが、ファイルが削除されていないことを示す場合、これは、記憶装置コントローラが行った変更にホストが上書きし、従ってコントローラが新たに処理を開始した（６８）ことを示すものである。
【００６４】
しかしながら、ファイルシステムからのディレクトリエントリに削除マークが付けられている（ステップ７６）場合、これは、カメラが修正に上書きしなかったことを示し、同期バリアを越えている（すなわち、カメラがファイルシステムを実装し直した）ので、カメラのキャッシュが対象ファイルのディレクトリテーブルエントリを含まないことを記憶装置コントローラに対して保証することができる。
【００６５】
この時点で、ファイル割り当てテーブルは、対象ファイルに割り当てられたクラスタを依然として含むが、ファイルシステム内にこのクラスタの組を示すディレクトリエントリは存在しない。記憶装置コントローラは、対象ファイルに割り当てられたクラスタの以前に記憶したリストをメモリから読み取り、ファイルシステムのファイル割り当てテーブル内のこれらのクラスタに「不良」マークを付ける（ステップ７８）。これは、ファイルシステム（従って、これらのクラスタを情報の記憶に使用すべきでないホスト）について知らせるビット符号化である。次に、記憶装置コントローラは、別の同期バリアを待つ（ステップ８０）。なお、ホストとのキャッシュ不一致により、（同期バリアを越えて）反映される修正も存在すれば、（カメラからのキャッシュ書き込みによって上書きされることにより）反映されない修正も存在し得るので、この時点ではクラスタに単純に「空き」マークが付けられることはなく、これによりファイルシステムエラーが生じる（例えば、クラスタが割り当てられてもディレクトリエントリがこれらのクラスタを示さず、又はさらに油断できないことには、カメラが「空き」クラスタに新たな画像データを書き込んでしまっている場合があり、ファイルシステム全体を完全にスキャンして、この「新たな」画像に割り当てられたクラスタを示すディレクトリエントリを探さない限り、記憶装置コントローラが「古い」画像データと「新たな」画像データを区別できない）。
【００６６】
これらの問題を避けるために、これらのクラスタには「不良」マークが付けられ、記憶装置コントローラは別の同期バリアを待つ。同期バリアが検出されると（ステップ８０）、記憶装置コントローラは、対象ファイルのクラスタのリストをメモリから再び取得し、このような各クラスタを調べて、これらに現在「不良」マークが付いているか否かを判定する（ステップ８２）。クラスタのいずれにも（ホストカメラとのキャッシュ不一致を示す）「不良」マークが付いていない場合（ステップ８４）、処理は前のステップ（ステップ７８）に戻り、記憶装置コントローラがこれらのクラスタに「不良」マークを付ける。任意に、元々のクラスタに再び全てマークを付けてもよく、又は状態が変化してもはや「不良」マークが付いていないクラスタにのみマークを付けてもよい。
【００６７】
しかしながら、以前に対象ファイルに割り当てられたクラスタに全て「不良」マークが付いている場合、これは、前のステップからの修正が反映されたことを示し、ホストがファイルシステムを実装し直しているので、記憶装置コントローラによって観測されるように、ホストのキャッシュの状態がファイルシステムと同期していることが保証される。従って、記憶装置コントローラは、対象クラスタに、これらのクラスタが新たなデータの記憶に利用可能であることを意味する「空き」又は「利用可能」マークを付ける（ステップ８６）。
【００６８】
ここで、記憶装置コントローラは、この変更が反映されたことを検証する必要があり、従って再び別の同期バリア（ステップ８８）を待つ。同期バリアを検出すると、記憶装置コントローラは、対象ファイルのクラスタのリストを再びメモリから取得し、このような各クラスタを調べて（ステップ９０）、現在「不良」マークが付いているかどうかを判定する（ステップ９２）。クラスタのいずれかに（ホストカメラとのキャッシュ不一致を示す）「不良」マークが付いている場合、処理は前のステップ（ステップ８６）に戻り、記憶装置コントローラがこれらのクラスタに「空き」マークを付ける。任意に、元々のクラスタに再び全てマークを付けてもよく、又は状態が変化して「不良」マークが付いていないクラスタにのみマークを付けてもよい。しかしながら、以前に対象ファイルに割り当てられたクラスタに全て「不良」マークが付いていない場合、これは、前のステップからの修正が反映されたことを示し、ホストがファイルシステムを実装し直しているので、記憶装置コントローラによって観測されるように、ホストのキャッシュの状態がファイルシステムと同期していることが保証される。従って、記憶装置コントローラは、対象ファイルの削除を正常に完了したことになり、（このファイルに関して削除サイクルが繰り返されるのを防ぐために）以前に保存したクラスタのリスト及びディレクトリテーブル情報をメモリから削除することができる（ステップ９４）。なお、この処理を、複数のファイルに対して同時に、及び異なる削除処理状態にあるファイルに対して行うこともできる。
【００６９】
上記の説明に関連して、記憶装置コントローラは非常に小さなキャッシュを有しており、従ってコントローラは、上述した修正のいずれかを行う場合、（コントローラのキャッシュ内に情報が存在しないことがあるので）通常は読み取り−修正−書き込みサイクルに関与すると理解されたい。セクタデータを読み取り、修正し、そしてこれに書き込まなければならない。これらの動作には時間がかかり、従ってこれらの動作が（記憶装置に新たな画像データを書き込むことなどの）カメラが関与する動作と衝突し、記憶装置コントローラがファイルシステムに書き込みを行うときにこれらの動作が上書きされるのを防ぐために、記憶装置コントローラは、コントローラが読み取り−修正−書き込み動作に関与している短い時間にわたってホストを締め出す。従って、カメラの動作は、あらゆるコントローラの書き込み前（この場合、コントローラのキャッシュには、カメラのキャッシュに記憶されているものと同じバージョンのファイルシステム情報が取り込まれる）、又はコントローラの書き込み後に行われ（従って、コントローラの修正に上書きを行うが、上述の手順はこの上書きに対応するように設計されている）、コントローラの動作中には行われないように保証される。カメラデータが失われないことを確実にするために、コントローラは、この締め出し期間中のカメラからのあらゆる書き込みをバッファする。
【００７０】
以上、コントローラがトリガイベントに応答して上述の処理を開始できることについて説明した。このトリガイベントは、記憶装置から遠隔コンピュータシステム又は電子フォトアルバムに画像データが正常に転送された確認、又はこのような確認と記憶装置の容量の閾値レベルに達したことを組み合わせたものとすることができる。この閾値レベルは、（例えば、無線ネットワークパラメータ、電子フォトアルバムのアカウント名及びパスワードなどの、コントローラの他の設定を指定する場合にユーザが行う設定として）ユーザ定義可能であってもよく、又は予め設定した閾値であってもよい。
【００７１】
コンテンツの削除は、指定した記憶容量が利用可能になるまで継続することができる（これは、削除処理をトリガするために使用する閾値とは異なる閾値とすることができる）。しかしながら、画像の紛失を防ぐために、記憶装置からアップロードされたものでないファイルを削除すべきであるとユーザが積極的に指示しない限り、削除はこのようなファイルに関与すべきではない。図７Ａ及び図７Ｂに上記の例を示す。図７Ａでは、画像データが、たとえ装置から離れたストレージに既にアップロードされている場合でも、新たなコンテンツの記憶によって閾値９６が超えられるまでは記憶装置５６に保存される。このとき、（上述した処理６６を使用して）十分な量の既にオフロードしたコンテンツが記憶装置から削除され、従って記憶装置に記憶される総情報量は閾値量未満になる。図７Ｂでは、記憶装置上に記憶される新たなコンテンツの量が閾値９６を超えた場合、これにも関わらず、コンテンツは、記憶装置からオフロードできるまで記憶される。ファイルは、先入れ先出し順、又は（ユーザ定義可能な方法、又は最低閲覧頻度方法などの）その他の方法で削除することができ、場合によっては、記憶装置の削除閾値に達するまで、記憶装置に記憶されたファイルの一定数又は一定割合が削除されるまで、或いは記憶装置内の指定した割合の記憶容量が新規ファイルの記憶に利用可能になるまで削除を継続することができる。
【００７２】
以上、記憶装置の記憶媒体からコンテンツを自律的に削除するための方法及びシステムを説明した。ホストとともに使用する記憶装置を背景として説明したが、本発明は、ホストと記憶装置のあらゆる組み合わせに適用可能である。さらに、記憶装置からコンテンツを削除するための上述した処理を逆の順序で動作させて、外部ホストの動作に干渉することなく、記憶装置コントローラを介して記憶装置上に安全にコンテンツを移すことができる。例えば、コントローラは、新たな情報を記憶するための十分な数の空きクラスタを捜し出し、これらのセクタに「不良」マークを付けて同期バリアを待つことができる。これらの修正が確認されると、記憶装置コントローラは、クラスタ間のファイル割り当てテーブル結合を作成してさらなる同期バリアを待つことができる。その後、これらの結合が同期バリアを越えて検証されたと仮定して、記憶装置に新たなコンテンツをダウンロードし、確保されたクラスタに対応する記憶容量に記憶することができる。当然ながら、この場合、同期バリアを越えてコンテンツを検証する必要があるので、大きなファイルでは、複数の同期バリアにわたる時間を要する場合がある。確保されたクラスタに全てのデータが記憶されたことが検証されると、記憶装置コントローラは、新たなクラスタ割り当ての先頭を示すためのディレクトリテーブルエントリを作成する。
【００７３】
さらなる実施形態では、カメラが記憶装置のファイルシステムを実装していない期間が電源オンの後に存在してもよく、従って記憶装置コントローラは、カメラキャッシュが同期されていることを確実にする必要なく、ファイルシステムの読み取り及び書き込みを自由に行うことができる。この期間は、ホストが記憶装置のファイルシステムを実装したことをコントローラが観察したときに終了する。
【００７４】
当然ながら、本発明は、ＦＡＴ又はｅｘＦＡＴファイルシステムに限定されず、ＦＡＴ及びｅｘＦＡＴと同様の構造を維持するあらゆるファイルシステムとの関連で使用することができる。
【符号の説明】
【００７５】
５８  ディレクトリテーブル
６６  安全な削除処理
９６  知的削除閾値
【図１】
2013521588.tif 000003
【図２】
2013521588.tif 000004
【図３】
2013521588.tif 000005
【図４】
2013521588.tif 000006
【図５】
2013521588.tif 000007
【図６】
2013521588.tif 000008
【図７】
2013521588.tif 000009
【国際調査報告】
2013521588.tif 000010
2013521588.tif 000011
2013521588.tif 000012