(57)【要約】  不揮発性メモリ（２３０）へのデータ書き込み又は読み出しを制御するメモリコントローラ（２２０）は、ホストインターフェイス部（２１０）と、ホスト情報管理部（２２３）とを備える。ホストインターフェイス部（２１０）は、不揮発性メモリ（２３０）へユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤと、同アプリケーションを使用する外部装置（１００）を識別するデバイスＩＤとを受信する。ホスト情報管理部（２２３）は、アプリケーションＩＤとデバイスＩＤとの対応関係を示すホスト情報テーブルを前記不揮発性メモリへ記録する。このメモリコントローラ（２２０）では、外部装置（１００）への着脱可能な不揮発性記憶装置（２００）に格納されたデータが、どのようなデータ処理装置によって更新されたかを簡単に判別することができる。
2010001602.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラにおいて、
前記不揮発性メモリへユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤと、前記アプリケーションを使用する外部装置を識別するデバイスＩＤとを受信するホストインターフェイス部と、
前記アプリケーションＩＤと前記デバイスＩＤとの対応関係を示すホスト情報テーブルを前記不揮発性メモリへ記録するホスト情報管理部と、
を備える、メモリコントローラ。
【請求項２】
前記不揮発性メモリへユーザデータが書き込まれる前に、前記ホスト情報管理部は、前記ホスト情報テーブルを更新する、
請求項１に記載のメモリコントローラ。
【請求項３】
前記ホストインターフェイス部が、前記不揮発性メモリへユーザデータが書き込まれる前に、前記アプリケーションＩＤと前記デバイスＩＤとを受信しない場合、前記ホスト情報管理部は、前記ホスト情報テーブルを初期化する、
請求項１又は２に記載のメモリコントローラ。
【請求項４】
請求項１から３のいずれかに記載のメモリコントローラと、
前記ホスト情報テーブルが記録された不揮発性メモリと、
を備える、不揮発性記憶装置。
【請求項５】
前記ホスト情報テーブルは、一のアプリケーションＩＤに対し、一意のデバイスＩＤを含む、
請求項４に記載の不揮発性記憶装置。
【請求項６】
前記不揮発性メモリは、ユーザデータを記録するユーザアクセス可能記憶領域と、前記ホスト情報テーブルを記録するホスト情報記憶領域と、を有し
前記ホスト情報記憶領域は、前記ユーザアクセス可能記憶領域よりもアクセスが制限されている、
請求項４又は５に記載の不揮発性記憶装置。
【請求項７】
不揮発性メモリと、前記不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラとを備える不揮発性記憶装置へ接続し、前記不揮発性記憶装置に対しユーザデータの書き込み又は読み出しを行うデータ処理装置であって、
前記データ処理装置を識別するデバイスＩＤと、前記不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとを前記不揮発性記憶装置へ出力するデータ処理部、
を備えるデータ処理装置。
【請求項８】
前記データ処理部は、前記ユーザデータの書き込みを前記不揮発性記憶装置へ行う前に、前記デバイスＩＤとアプリケーションＩＤとを前記不揮発性記憶装置へ出力する、
請求項７に記載のデータ処理装置。
【請求項９】
前記データ処理部は、
前記不揮発性記憶装置から、ユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤとアプリケーションを使用するデータ処理装置を識別するデバイスＩＤとの対応を示すホスト情報テーブルを読み出し、
前記ホスト情報テーブルにおいて、前記データ処理部が出力するアプリケーションＩＤに対応するデバイスＩＤの有無を判断し、
前記対応するデバイスＩＤが無い場合は、前記不揮発性記憶装置に記録されているユーザデータの整合性を判断する、
請求項７又は８に記載のデータ処理装置。
【請求項１０】
請求項４から６のいずれかに記載の不揮発性記憶装置と、
請求項７から９のいずれかに記載のデータ処理装置と、
を備える、不揮発性記憶システム。
【請求項１１】
不揮発性メモリ及び前記不揮発性メモリを制御するメモリコントローラを備える不揮発性記憶装置と、前記不揮発性記憶装置に接続するデータ処理装置とにより、前記不揮発性メモリに対しユーザデータの書き込み又は読み出しを制御する方法であって、
前記データ処理装置を識別するデバイスＩＤと、前記不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとを前記データ処理装置から前記不揮発性記憶装置へ出力し、
前記デバイスＩＤと前記アプリケーションＩＤとの対応関係を示すホスト情報テーブルを、前記不揮発性メモリへ記録し、
前記不揮発性メモリへユーザデータが書き込まれる前に、前記ホスト情報テーブルを更新する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、不揮発性記憶装置、データ処理装置、不揮発性記憶装置システム及び方法に関するものである。
【背景技術】
【０００２】
近年、デジタルデータを読み書き可能な不揮発性記憶装置としてＳＤメモリカードやメモリースティック、コンパクトフラッシュ（登録商標）といった半導体メモリが普及してきている。これらの半導体メモリを使ってデータを処理するデータ処理装置は、パーソナルコンピュータ、音響機器、映像機器、携帯電話、デジタルカメラ等の電化製品を始め、多岐に渡っている。
半導体メモリ等の着脱可能で可搬性に優れた不揮発性記憶装置は、データ処理装置間のデータのやり取りを担うブリッジメディアとして特に有用である。このため１つの不揮発性記憶装置は複数のデータ処理装置に装着されることが多い。従って、あるデータ処理装置が不揮発性記憶装置に格納したデータは、他のデータ処理装置によって更新される可能性がある。従来では複数のデータ処理装置においてデータを共有する仕組みとしてファイルシステムが導入され、このファイルシステム上でデータ交換を行うのが一般的であった。【０００３】
しかし、ファイルシステムは、汎用的に利用できる反面、特定のアプリケーションから利用した場合、十分なデータ管理機能を発揮しない場合もある。そこで、記録されたデータに対して、どのデータ処理装置においても効果的にアクセスができるように、記録されるファイルのストリーム構造やフォルダ構成を規定するアプリケーション規格と呼ばれる記録方式がある。このアプリケーション規格では、例えばＳＤメモリカードによってデジタルデータを記録するためのルールとして、ビデオデータに対してＳＤ−Ｖｉｄｅｏ規格、オーディオデータに対してＳＤ−Ａｕｄｉｏ規格が規定されており、データ処理装置間での互換性を確保している。これらのアプリケーション規格の記録方式では、ファイルシステム上に記録された複数のファイルのファイル情報やファイル間相互の関係が重要になる場合がある。【０００４】
しかし、不揮発性記憶装置がＰＣ等の通常のデータ処理装置に接続され、アプリケーション規格に準拠しない環境でファイルが操作される場合がある。そのため、このようなアプリケーション規格の記録方式では、あるデータ処理装置によって、不揮発性記憶装置内のデータが他のデータ処理装置によって更新された可能性があるか否かを判断するためには、前記不揮発性記憶装置に記録されたデータを実際に読み出して内容を確認しなければならず、読み出すデータのサイズが大きくなるに伴い処理時間がかかるという問題があった。
データが不揮発性記憶装置によって更新されたかどうかを判断する方法としては、不揮発性記憶装置内に書き込み直前に更新される更新通知部を設ける方法が開示されている（例えば、特許文献１参照）。この方法では、更新通知部の値をデータ処理装置から参照可能とし、更に前記更新通知部の値はデータ処理装置からは更新不可としている。しかし、この方法では、カードに一度でも書き込みがあれば、前記更新通知部の値が更新されるため、複数のアプリケーション規格でデータが記録される場合、ファイル間等の整合性を確認する回数を低減させるのには不十分だった。【０００５】
また、データ処理装置のスロット部にロック検知機構を設け、不揮発性記憶装置の着脱を確認する方法により、制御出力がなされ、整合性を保持する方法が開示されている（例えば、特許文献２、特許文献３参照）。しかし、この方法では、開閉検知を行うために検出スイッチ等の検知手段をスロット部に追加するため、物理機構が必要となりデータ処理装置の原価をあげてしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００５／０４１０５０号パンフレット
【特許文献２】特開２００３−１３２３８６号公報
【特許文献３】特開２００１−３０７０２６号公報
【発明の概要】
【０００７】
（発明が解決しようとする課題）
このように不揮発性記憶装置が複数のデータ処理装置に装着されると、どの機器がどのように記録、削除処理を行うか判別できないため、不揮発性記憶装置の装着時や、電源投入時にファイル間（コンテンツデータファイル、或いはコンテンツデータファイル等の情報を保持するインデックスファイルの間）の整合性のチェックを行う時間が必要となり、不揮発性記憶装置が使用可能な状態になるまで常に時間がかかってしまうという問題があった。
（課題を解決するための手段）
そこで、本発明の目的は、不揮発性記憶装置中のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくし、処理の高速化が可能な、メモリコントローラ、不揮発性記憶装置、データ処理装置、不揮発性記憶装置システム及び方法を提供することである。
【０００８】
本発明において、第１の発明は、不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラであって、ホストインターフェイス部と、ホスト情報管理部と、を備える。ホストインターフェイス部は、不揮発性メモリへユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤと、アプリケーションを使用する外部装置を識別するデバイスＩＤとを受信する。ホスト情報管理部は、アプリケーションＩＤとデバイスＩＤとの対応関係を示すホスト情報テーブルを不揮発性メモリへ記録する。
ここでは、アプリケーションＩＤとデバイスＩＤとを記録しておくことによって、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となる。
【０００９】
第２の発明は、第１の発明であって、不揮発性メモリへユーザデータが書き込まれる前に、ホスト情報管理部は、ホスト情報テーブルを更新する。
第３の発明は、第１又は第２の発明であって、ホストインターフェイス部が、不揮発性メモリへユーザデータが書き込まれる前に、アプリケーションＩＤとデバイスＩＤとを受信しない場合、ホスト情報管理部は、ホスト情報テーブルを初期化する。
ここで、ホスト情報テーブルを初期化するとは、例えば、ホスト情報テーブルに記載されているデバイスＩＤを、無効値（対応するデバイスが無い）に変更することである。
第４の発明は、第１から第３のいずれかに発明にかかるメモリコントローラと、ホスト情報テーブルが記録された不揮発性メモリと、を備える不揮発性記憶装置である。
不揮発性記憶装置は、例えば、メモリコントローラと不揮発性メモリが専用の筐体等に収められたメモリカードのような装置、或いはメモリコントローラと不揮発性メモリをもつ電子部品（電子回路又は集積回路）のようなモジュール（機能部品）装置等としても利用することが可能である。
【００１０】
第５の発明は、第４の発明であって、ホスト情報テーブルは、一のアプリケーションＩＤに対し、一意のデバイスＩＤを含む。
第６の発明は、第４又は第５の発明であって、不揮発性メモリは、ユーザデータを記録するユーザアクセス可能記憶領域と、ホスト情報テーブルを記録するホスト情報記憶領域と、を有する。更に、ホスト情報記憶領域は、ユーザアクセス可能記憶領域よりもアクセスが制限されている。
第７の発明は、不揮発性メモリと、不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラとを備える不揮発性記憶装置へ接続し、不揮発性記憶装置に対しユーザデータの書き込み又は読み出しを行うデータ処理装置であって、データ処理装置を識別するデバイスＩＤと、不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとを不揮発性記憶装置へ出力するデータ処理部、を備える。
【００１１】
ここでは、アプリケーションＩＤとデバイスＩＤとを不揮発性記憶装置に出力することによって、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となる。
第８の発明は、第７の発明であって、データ処理部は、ユーザデータの書き込みを不揮発性記憶装置へ行う前に、デバイスＩＤとアプリケーションＩＤとを不揮発性記憶装置へ出力する。
第９の発明は、第７又は第８の発明であって、データ処理部は、不揮発性記憶装置から、ユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤとアプリケーションを使用するデータ処理装置を識別するデバイスＩＤとの対応を示すホスト情報テーブルを読み出し、ホスト情報テーブルにおいて、データ処理部が出力するアプリケーションＩＤに対応するデバイスＩＤの有無を判断し、対応するデバイスＩＤが無い場合は、不揮発性記憶装置に記録されているユーザデータの整合性を判断する。
【００１２】
ここでは、例えば、不用意な不揮発性記憶装置の挿抜が行われた場合等に、装着された不揮発性記憶装置のデータの更新状況を簡単に判別することができる。これにより、整合性の判断処理の要不要を迅速に判別することができる。
第１０の発明は、第４から第６の発明のいずれかの不揮発性記憶装置と、第７から第９の発明のいずれかのデータ処理装置と、を備える不揮発性記憶システムである。
第１１の発明は、不揮発性メモリ及び不揮発性メモリを制御するメモリコントローラを備える不揮発性記憶装置と、同不揮発性記憶装置に接続するデータ処理装置とにより、不揮発性メモリに対しユーザデータの書き込み又は読み出しを制御する方法であって、次のステップを備える。データ処理装置を識別するデバイスＩＤと、不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとをデータ処理装置から不揮発性記憶装置へ出力する。デバイスＩＤとアプリケーションＩＤとの対応関係を示すホスト情報テーブルを、不揮発性メモリへ記録する。不揮発性メモリへユーザデータが書き込まれる前に、ホスト情報テーブルを更新する。
【００１３】
ここでは、アプリケーションＩＤとデバイスＩＤとを不揮発性記憶装置に出力し、不揮発性メモリにおいて、ユーザデータを書き込む前に、アプリケーションＩＤとデバイスＩＤとを含むホスト情報テーブルを更新することにより、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となる。
（発明の効果）
本発明によれば、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となるという利点がある。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る不揮発性記憶システムを示すブロック図
【図２】本実施形態に係る不揮発性記憶装置の構成例を示すブロック図
【図３】ホスト情報、ホスト情報テーブル、ホスト情報更新リストの例を示す図
【図４】不揮発性記憶装置がホスト情報更新リストを受信するときの動作例を示すフローチャート
【図５】不揮発性記憶装置がユーザアクセス可能記憶領域を更新するときの動作例を示すフローチャート
【図６】本実施形態に係るデータ処理装置の構成例を示すブロック図
【図７】ユーザアクセス可能記憶領域に記録されているユーザデータ構造の例を示す図
【図８】データ処理装置に不揮発性記憶装置を装着した際のデータ処理装置の動作例を示すフローチャート
【図９Ａ】データ書き込み中に電源遮断が生じた場合の電源回復後のデータ処理装置の動作例を示すフローチャート
【図９Ｂ】データ書き込み中に電源遮断が生じた場合の電源回復後のデータ処理装置の動作例を示すフローチャート
【発明を実施するための形態】
【００１５】
[１  実施形態]
＜１．１：不揮発性記憶システム１＞
以下、本発明の一実施形態を図面に基づいて詳細に説明する。
まず、本実施形態による不揮発性記憶システム１について説明する。図１は、不揮発性記憶システム１の一例を示す図である。不揮発性記憶システム１は、データ処理装置１００と不揮発性記憶装置２００とを備える。
不揮発性記憶装置２００は、データ処理装置１００と接続され、各種のデータを記録する。不揮発性記憶装置２００は、例えば、メモリカード等のリムーバルメディアである。
データ処理装置１００は、各種のデータ生成や加工等を行い、接続されている不揮発性記憶装置２００へデータの記録を行ったり、不揮発性記録装置２００からデータを読み出したりする。データ処理装置１００は、例えば、デジタルカメラやビデオカメラ、ポータブルオーディオプレーヤである。図１の例では、データ処理装置１００は、デジタルビデオカメラであり、不揮発性記憶装置２００はメモリカードとしており、これらが不揮発性記憶装置システム１の主要な構成要素をなす。なお、図１は一例であり、本発明はこれらに限定されるものではない。
【００１６】
ここで、データ処理装置１００は、動画撮影した撮影データ（コンテンツデータ）とこれらの付随情報であるインデックス情報とを不揮発性記憶装置２００に記録する。
図１は、データ処理装置１００がデジタルビデオカメラである場合の一例を示す。この例では、データ処理装置１００は、撮像部６６０、表示部６５０、ユーザ入力部６４０及びスロット６１０を有する。
撮像部６６０は、光をレンズで集光等し、ＣＣＤセンサやＣＭＯＳセンサ等のイメージセンサを用いて電気的な映像信号に変換する。表示部６５０は、不揮発性記憶装置２００に保存した動画コンテンツデータをユーザに表示する。ユーザ入力部６４０は、ユーザからの操作入力を行うためのものである。ユーザは、ユーザ入力部６４０によって不揮発性記憶装置２００に格納された所望するコンテンツを選択し、表示部６５０に表示された内容によりコンテンツの内容を確認できる。スロット６１０は、不揮発性記憶装置２００をデータ処理装置１００に装着し、データの送受信をするインターフェイスである。
【００１７】
次に、不揮発性記憶装置２００及びデータ処理装置１００の構成や動作について詳細に説明する。
＜１．２：不揮発性記憶装置２００＞
（１．２．１：不揮発性記憶装置２００の構成）
図２は、メモリカード（半導体メモリ）である不揮発性記憶装置２００の構成例を示す。
不揮発性記憶装置２００は、ホストインターフェイス部２１０、メモリコントローラ２２０、及び不揮発性メモリ２３０を備える。
ホストインターフェイス部２１０は、不揮発性記憶装置２００を装着することが可能な、外部機器であるデータ処理装置１００とコマンドやデータ等の情報を送受信する。
【００１８】
不揮発性メモリ２３０は、デジタルデータを格納する。不揮発性メモリ２３０は、ユーザアクセス可能記憶領域２３１と、ホスト情報記憶領域２３２とを含む。ユーザアクセス可能記憶領域２３１は、データ処理装置１００からの任意のデジタルデータを読み書きできる領域である。ホスト情報記憶領域２３２は、後述するように、メモリコントローラ２２０のホスト情報管理部２２３のみが記録できる領域である。ホスト情報記憶領域２３２には、後述する通り、ホスト情報テーブルが記録されるため、データ処理装置１００が記録するユーザデータ等を記録する領域とは区別されることが望ましい。そのため、ホスト情報記憶領域２３２は、不揮発性メモリ２３０の一定のアクセス制限がある領域、例えばアクセスには認証等の手続きが要する領域、とすることが好ましい。
不揮発性メモリ２３０は、代表的なものとしてＮＡＮＤ型のフラッシュメモリ等があるが、本実施形態は、これに限定されるものではない。ＥＥＰＲＯＭ、ＦｅＲＡＭ、ＭＲＡＭ等の他の不揮発性の半導体メモリを用いることも可能である。更に、本実施形態は半導体メモリだけでなく、ＨＤＤのような記録媒体を利用してもよい。
【００１９】
メモリコントローラ２２０は、不揮発性記憶装置２００の内部制御を行う。メモリコントローラ２２０は、不揮発性メモリ２３０と、ホストインターフェイス部２１０に接続されている。メモリコントローラ２２０は、コマンド処理部２２１と、媒体固有ＩＤ格納部２２２と、ホスト情報管理部２２３とを含む。
コマンド処理部２２１は、ホストインターフェイス部２１０を介して、データ処理装置１００とコマンド、データ等の送受信を行う。
媒体固有ＩＤ格納部２２２は、不揮発性記憶装置２００毎に異なる固有のＩＤを格納する。データ処理装置１００は、この媒体固有ＩＤを識別することにより、接続される媒体（不揮発性記憶装置２００）を識別することが可能となる。
ホスト情報管理部２２３は、不揮発性メモリ２３０のホスト情報記憶領域２３２に対するインターフェイスの役割をもつ。ホスト情報記憶領域２３２は、上述の通りデータ処理装置１００からのユーザアクセスはできず、ホスト情報管理部２２３がホスト情報記憶領域２３２に対しデータ書き込み又はデータ読み出しを行う。
【００２０】
なお、図示していないが、メモリコントローラ２２０は、上記以外に不揮発性記憶装置２００全体の制御（例えば、初期化処理、電源制御、クロック制御、メモリ管理、アドレス管理等）も行う。
≪ホスト情報管理部２２３による情報管理≫
次に、ホスト情報管理部２２３による情報管理について説明する。
図３は、ホスト情報管理部２２３の処理内容に係わる不揮発性記憶装置２００内の情報の内容を示す。
図３（ａ）は、ホスト情報記憶領域２３２に格納された、ホスト情報３０１を含むホスト情報テーブル３０２の内容を示す。図３（ｂ）は、ホスト情報管理部２２３内のホスト情報更新リスト３０３を示す。また、図３（ｃ）は、ホスト情報更新リストにより更新されたホスト情報テーブル３０４を示し、図３（ｄ）は、初期化されたホスト情報テーブル３０５を示す。
【００２１】
図３（ａ）に示す、ホスト情報テーブル３０２はホスト情報３０１から構成される。ホスト情報３０１は、データ処理装置１００を一意に識別するデバイスＩＤと、当該データ処理装置１００が不揮発性記憶装置２００にデータを書き込み又は更新等する際に用いた規約又はルール（アプリケーション）の識別情報であるアプリケーションＩＤとを含む。図３（ａ）の例では、例えばデバイスＩＤが００８０４５８７ＡＢＣＤＥＦ０１であるデータ処理装置１００が、アプリケーションＩＤが０で識別される規約又はルール（アプリケーション）によりデータを書き換え、又は更新等することが可能であることを示している。
ホスト情報テーブル３０２は、上記のホスト情報３０１に基づいて、複数のアプリケーションに対して各デバイスＩＤを示した表（テーブル）である。アプリケーション毎に一意に識別されるデバイスＩＤが示されている。ホスト情報テーブル３０２は、ホスト情報管理部２２３によりホスト情報記録領域２３２に記録される。
【００２２】
ホスト情報更新リスト３０３は、不揮発性記憶装置２００が接続される各データ処理装置１００が扱うことのできるアプリケーションの情報を示す。具体的には、ホスト情報更新リスト３０３は、各データ処理装置１００が扱うことのできるアプリケーション数（アプリケーションＩＤ数）と、データ処理装置１００を識別するデバイスＩＤと、データ処理装置１００が更新を行う対象のアプリケーションＩＤとで構成される。複数の規約又はルールに基づいて更新を行う場合は、ホスト情報更新リスト３０３のアプリケーションＩＤは複数個存在する。ホスト情報更新リスト３０３は、ホスト情報管理部２２３に記録される。
以上のように、ホスト情報管理部２２３は、不揮発性メモリ２３０のホスト情報記憶領域２３２へのアクセスを制御する。ホスト情報管理部２２３は、外部のデータ処理装置１００から送られる一部のコマンドのみを受けつけ、その内容に従って、ホスト情報記憶領域２３２等へのアクセスを実行する。
【００２３】
また、ホスト情報管理部２２３は、ユーザアクセス可能記憶領域２３１との関係では、ユーザアクセス可能記憶領域２３１にユーザデータが新たに書き込まれる、又はデータの一部が更新される前に、コマンド処理部２２１から受け取るホスト情報更新リスト３０３によってホスト情報記憶領域２３２を更新する等の処理も行う。
なお、ホスト情報管理部２２３はホスト情報更新リスト３０３を一時的に記憶するためのメモリを有する。
ホスト情報テーブル３０２は、データ処理装置１００に関する情報を記憶する領域であるホスト情報記憶領域２３２に記憶される。ホスト情報テーブル３０２は、ホスト情報管理部２２３、コマンド処理部２２１及びホストインターフェイス部２１０を介してデータ処理装置１００により読み出すことが可能である。
【００２４】
ホスト情報更新リスト３０３は、データ処理装置１００より送信され、図３（ｂ）に示すようにホスト情報管理部２２３のメモリに一時的に蓄積される。その後、データ処理装置１００がデジタルデータ（ユーザデータ）をユーザアクセス可能記憶領域２３１に記録する前に、ホスト情報管理部２２３が、一時的に蓄積されたホスト情報更新リスト３０３に基づいてホスト情報記憶領域２３２のホスト情報テーブル３０２を更新する。
ホスト情報管理部２２３に保持されるホスト情報更新リスト３０３は、電源投入時や不揮発性記憶装置２００をデータ処理装置１００に装着したときに発行される初期化コマンド等によって、デバイスＩＤ及びアプリケーションＩＤの部分がクリアされる。デバイスＩＤをクリアするとは、実際にはデバイスＩＤに無効なデバイスＩＤ（対応するデバイスが無い）を示す０を設定することを示す。また、アプリケーションＩＤをクリアするとは、アプリケーションＩＤの個数を格納するアプリケーションＩＤ数フィールドに０を設定することを示す。そうすることで、アプリケーションＩＤに対応するデバイスＩＤがない状態となる。
【００２５】
なお、ホスト情報記憶領域２３２のホスト情報テーブル３０２の値は、不揮発性記憶装置２００を製造したとき、無効デバイスＩＤ（対応するデバイスが無い）を示す０が全てのアプリケーションＩＤに対して書き込まれる。このホスト情報テーブル３０２は、ホスト情報管理部２２３によりアクセスが制御されているため、データ処理装置１００からの通常コマンド等で、ホスト情報テーブル３０２のデータは書き換えられない。また、ホスト情報記憶領域２３２は不揮発性メモリ内に記録されているため、不揮発性記憶装置２００の電源切断（ＯＦＦ）により、データが変化することはない。
（１．２．２：不揮発性記憶装置２００の動作）
図４は、不揮発性記憶装置２００がデータ処理装置１００からホスト情報更新リスト３０３を通知するコマンドを受信したときの動作例を示すフローチャートである。
【００２６】
（ステップＳ４０１）
ホストインターフェイス部２１０は、データ処理装置１００からのコマンドを受信し、コマンド処理部２２１に通知する。
（ステップＳ４０２）
コマンド処理部２２１は、ステップＳ４０１で通知されたコマンドの種別を判断し、そのコマンドがホスト情報更新リストを通知するコマンドであるか否かを判断する。ホスト情報更新リストを通知するコマンドであれば、ステップＳ４０４の処理に進む。それ以外のコマンドについては、ステップＳ４０３の処理に進む。
なお、それ以外のコマンドとは、例えばユーザアクセス可能記憶領域２３１からのデータの読み出しを行うＲｅａｄコマンドや、書き込みを行うＷｒｉｔｅコマンド等である。
【００２７】
（ステップＳ４０３）
ホスト情報更新リストを通知するコマンドでなければ、メモリコントローラ２２０は、コマンドに応じた処理を行い終了する。
（ステップＳ４０４）
メモリコントローラ２２０は、ホスト情報更新リストを通知するコマンドを受信すると、ユーザアクセス可能記憶領域２３１を更新するコマンドが初期化処理以降に発行されているかどうかを判断する。ユーザアクセス可能記憶領域２３１を更新するコマンドとは、不揮発性メモリ２３０のユーザアクセス可能記憶領域２３１へのデータの書き込みを行うＷｒｉｔｅコマンド、データの消去を行うＥｒａｓｅコマンド等である。また、初期化処理は、不揮発性記憶装置２００がハードウエア及びソフトウェアの初期設定を行う処理であり、メモリのクリアや初期値の設定等を含む。
【００２８】
ユーザアクセス可能記憶領域２３１を更新するコマンドを受信する前である場合、ステップＳ４０６の処理に進む。更新するコマンドを受信した後である場合、ステップＳ４０５の処理に進む。
（ステップＳ４０５）
既にユーザアクセス可能記憶領域２３１を更新するコマンドを受信した後である場合、メモリコントローラ２２０は、ホストインターフェイス部２１０を介して外部のデータ処理装置１００からのコマンドの拒絶をデータ処理装置１００に返答し、処理を終了する。
（ステップＳ４０６）
更新するコマンドを受信する前の場合、メモリコントローラ２２０は、データ処理装置１００から受け取ったホスト情報更新リストをホスト情報管理部２２３内に記録し、ステップＳ４０７に進む。
【００２９】
（ステップＳ４０７）
メモリコントローラ２２０は、処理が成功したことを、ホストインターフェイス部２１０を介して、データ処理装置１００に通知する。
図５は、不揮発性記憶装置２００がデータ処理装置１００からユーザアクセス可能記憶領域２３１を更新するコマンドを受信するときの動作例を示すフローチャートである。
（ステップＳ５０１）
ホストインターフェイス部２１０は、データ処理装置１００からのコマンドを受信すると、コマンド処理部２２１に通知する。
（ステップＳ５０２）
コマンド処理部２２１は、ユーザアクセス可能記憶領域２３１を更新するコマンドであるか否かを判断する。更新するコマンドである場合、ステップＳ５０４の処理に進む。それ以外のコマンドである場合、ステップＳ５０３の処理に進む。なお、それ以外のコマンドとは、例えば読み出しを行うＲｅａｄコマンド等である。
【００３０】
（ステップＳ５０３）
コマンド処理部２２１は、受信したコマンド（Ｒｅａｄ等）を実行して終了する。
（ステップＳ５０４）
コマンド処理部２２１は、ユーザアクセス可能記憶領域２３１を更新するコマンドが初期化処理後初めてユーザアクセス可能記憶領域２３１を更新するコマンドであるか否かを判断する。初めてユーザアクセス可能記憶領域２３１を更新するコマンドの場合、ステップＳ５０５の処理に進む。２回目以降のユーザアクセス可能記憶領域２３１を更新するコマンドの場合、ステップＳ５０８に処理を進める。
（ステップＳ５０５）
コマンド処理部２２１は、ホスト情報管理部２２３に対して、図４に示したフローチャートによる動作によってホスト情報更新リストを通知するコマンドを受信済みかどうか問い合わせる。ホスト情報管理部２２３からの結果が、ホスト情報更新リストを受信済みの場合、ステップＳ５０６に処理を進める。受信していない場合はステップＳ５０７に処理を進める。
【００３１】
（ステップＳ５０６）
ホスト情報更新リスト３０３を受信済みの場合、ホスト情報管理部２２３は、ホスト情報記憶領域２３２に記憶されているホスト情報テーブル３０２を、図４のステップＳ４０６においてホスト情報管理部２２３に記録されたホスト情報更新リスト３０３に従って更新する。同処理終了後はステップＳ５０８に処理を進める。
ここで更新するとは、ホスト情報テーブル３０２をホスト情報更新リスト３０３に基づいて更新することである。具体的には、ホスト情報テーブル３０２のアプリケーションＩＤのうち、ホスト情報更新リスト３０３に記載されているアプリケーションＩＤと一致するものに関し、ホスト情報テーブル３０２のデバイスＩＤをホスト情報更新リスト３０３のデバイスＩＤに置き換える。
【００３２】
例えば、ホスト情報テーブル３０２が図３（ａ）の状態であった場合、同ホスト情報テーブル３０２を図３（ｂ）のホスト情報更新リスト３０３によって更新を行う。その結果、図３（ｃ）に示すような、ホスト情報テーブル３０４が新たに作成される。更新後のホスト情報テーブル３０４では、アプリケーションＩＤ０と２が、ホスト情報更新リスト３０３に記載のデバイスＩＤ“００８０４５１２３４５６７８”に置き換えられている。
（ステップＳ５０７）
ホスト情報更新リストを受信していない場合、ホスト情報管理部２２３は、ホスト情報記憶領域２３２に記憶されているホスト情報テーブル３０２を初期化する。その処理終了後はステップＳ５０８に処理を進める。
ここでホスト情報テーブルを初期化するとは、ホスト情報テーブル３０２に記載されているデバイスＩＤを、無効値（対応するデバイスが無い）を示す０に変更することである。例えば、元のホスト情報更新テーブル３０２が図３（ａ）の状態であった場合、初期化を行うと、図３（ｄ）に示すようなホスト情報テーブル３０５が作成される。初期化後のホスト情報テーブル３０５では、全てのアプリケーションＩＤに対応するデバイスＩＤが“０”に置き換えられる。
【００３３】
（ステップＳ５０８）
コマンド処理部２２１は、受信した前記コマンドを実行し、処理を終了する。例えば、前記コマンドがＷｒｉｔｅコマンドである場合にはユーザアクセス可能記憶領域２３１にデータ処理装置１００から受信したユーザデータを書き込む。また、Ｅｒａｓｅコマンドである場合にはユーザアクセス可能記憶領域２３１の該当するアドレスのデータを消去する。
以上のように、本実施形態による不揮発性記憶装置２００は、ユーザアクセス可能記憶領域２３１のデータを更新する前に、事前に受信したホスト情報更新リスト３０３に従って前記ホスト情報記憶領域２３２に記録されているホスト情報テーブル３０２の値を更新する。
【００３４】
従って、デバイスＩＤ、アプリケーションＩＤを通知するデータ処理装置１００によって不揮発性記憶装置２００が更新された後、別のデータ処理装置に接続された場合や再度電源投入した場合等においても、データ処理装置１００は、ホスト情報記憶領域２３２のホスト情報テーブル３０２を読み取ることによって、どのデータ処理装置によって更新されたかどうかを判断することができ、且つ自身以外のデータ処理装置によってユーザデータが更新された場合に、不揮発性記憶装置２００を更新したデータ処理装置がどの規則又はルールに従って更新処理を行ったかを把握することができる。
＜１．３：データ処理装置１００＞
（１．３．１：データ処理装置１００の構成）
次に、本実施形態によるデータ処理装置１００について説明する。図６は、データ処理装置１００の構成例を示す図である。
【００３５】
データ処理装置１００は、前述したスロット６１０、ユーザ入力部６４０、表示部６５０、及び撮像部６６０の他、入出力処理部６２０、データ処理部６３０、及びデバイスＩＤ格納部６７０を備える。
スロット６１０は、外部の不揮発性記憶装置２００を装着するインターフェイスの一部である。
入出力処理部６２０は、スロット６１０に装着された不揮発性記憶装置２００に対してコマンドやデータ等の情報の受け渡しを行うインターフェイスの一部である。
データ処理部６３０は、スロット６１０に接続された不揮発性記憶装置２００に格納されたデータもしくはこれから格納するデータを処理する部分である。例えば、スロット６１０に接続された不揮発性記憶装置２００に格納されたデータがオーディオデータやビデオデータである場合、データを入出力処理部６２０経由で読み出し、記録・編集したユーザデータを入出力処理部６２０経由で不揮発性記憶装置２００に書き込む等の動作を制御する。
【００３６】
なお、データ処理部６３０は、上記以外のデータ処理（例えば、読み出したデータの再生や、撮影したデータの記録等）や、データ処理装置１００全体を制御する機能（電源制御、クロック制御等）の制御を行ってもよい。
前記データ処理部６３０は、データの処理中に使用する一時的な記憶領域であるメモリ（図示省略）を有する。当該メモリは、媒体固有ＩＤ格納領域６３１とインデックス情報格納領域６３２とを有する。
媒体固有ＩＤ格納領域６３１は、スロット６１０に接続される不揮発性記憶装置２００の媒体固有ＩＤ格納部２２２から読み出された媒体固有ＩＤを記録する。
インデックス情報格納領域６３２は、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１に記録するインデックスファイルの情報を格納する領域である。インデックスファイルの情報の詳細については後述する。また、インデックス情報格納領域６３２は、インデックスファイル等の各種のデータを一時的に保持するメモリを備える。このメモリは、揮発性メモリに限らず、不揮発性メモリであってもよい。
【００３７】
ユーザ入力部６４０は、ユーザからの入力を受け付ける部分である。表示部６５０は、前記データ処理部６３０の処理結果や各処理の進行状況等をユーザに通知する部分である。撮像部６６０は、光をＣＣＤ（電荷結合素子）やＣＭＯＳ（相補形金属酸化膜半導体）等の素子を用いて電気的な映像信号に変換するイメージセンサから受け取ったデジタル映像信号を前記データ処理部６３０に送る。
デバイスＩＤ格納部６７０は、データ処理装置１００を一意に特定する識別子であるデバイスＩＤを格納する。デバイスＩＤは、個々のデータ処理装置に一意の値を割り振られる。デバイスＩＤはデータ処理装置の製造時等に設定される。
≪インデックスファイル情報≫
インデックス情報格納領域６３２に格納されるインデックスファイル情報は、図７に示すように、不揮発性メモリ２３０のユーザアクセス可能記憶領域２３１に記録される。同図は、ユーザアクセス可能記憶領域２３１のユーザデータ構造を示す。
【００３８】
本実施形態では、各々のユーザデータは、規格又はルール（アプリケーション）毎に独立したフォルダに記録される。各フォルダでは、コンテンツファイルとインデックスファイルが、一定の規格又はルール（アプリケーション）によって定められたファイル形式で格納されている。
本実施形態では、各フォルダには、少なくとも１つ以上のコンテンツファイル及びインデックスファイルが格納されている。ただし、その他のファイルが格納されていてもよい。
ここで、コンテンツファイルとは、データ処理装置１００が処理するデータをファイル形式で管理したものであり、例えば音楽、動画、静止画等のユーザデータを格納したファイル等である。
【００３９】
インデックスファイル７００は、複数の前記コンテンツファイルに関する情報を格納したファイルであり、具体的には次のような情報を格納するフィールドを備えている。すなわち、更新処理中フラグ、総コンテンツ数、総再生時間、コンテンツの情報、プレイリスト等である。
更新処理中フラグは、インデックスファイルやコンテンツファイルの更新処理を開始する前に１に設定し、更新処理が終了すれば０に設定することにより、ファイル群へのアクセス情報を示す。総コンテンツ数は、フォルダの中に記録されているコンテンツファイルの総数を示す値である。総再生時間は、フォルダの中に記録されているすべてのコンテンツファイルの合計の再生時間である。
コンテンツの情報は、各コンテンツファイルの詳細な情報を示したデータである。具体的には、コンテンツファイル名、音楽、動画、静止画といったコンテンツの種類、コンテンツの再生（処理）時間、コンテンツファイルが格納されている記憶領域上の物理的な又は論理的なデータ格納アドレス、コンテンツの再生条件、複製条件又は著作権保護情報、コンテンツの作成日時、動画・音楽の特定の時刻と一致するデータアドレスを示すタイムサーチテーブル等である。
【００４０】
プレイリストは、フォルダ内のコンテンツファイルの再生順序を記述したデータである。
インデックスファイル７００には、前記コンテンツファイルの一覧表示等を行う際に必要な情報をまとめて格納する。このインデックスファイル７００により、コンテンツファイルの検索を比較的簡単に行うことができ、データ処理装置１００の処理を軽くすることができる。
本実施形態では、ＦＡＴファイルシステムを利用して記録アドレス等を管理し、このＦＡＴファイルシステムにおいて必要となる情報を所定の検索情報格納領域に記録するものとする。なお、ＵＤＦ等の他のファイルシステムを利用しても良いし、ファイルシステムを使わずに記録アドレス等を管理しても良い。
（１．３．２：データ処理装置１００の動作）
以下、データ処理装置１００の動作について、不揮発性記憶装置２００の動作と関連させながら図面を用いて説明する。
【００４１】
図８は、データ処理装置１００に不揮発性記憶装置２００を装着したときにユーザアクセス可能記憶領域２３１を更新する際の動作例を示すフローチャートである。本実施形態では、撮像部６６０からの撮像データを不揮発性記憶装置２００に記録するシーケンスとしているが、記録するデジタルデータは撮像部６６０からのものでなくてもよい。
（ステップＳ８０１）
データ処理部６３０は、入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００の媒体固有ＩＤ格納部２２２に記録されている媒体固有ＩＤを媒体固有ＩＤ格納領域６３１に読み込む。
（ステップＳ８０２）
ユーザ入力部６４０から撮影開始の指示が入力されると、データ処理部６３０は、デバイスＩＤ格納部６７０に記録されているデバイスＩＤと更新対象のアプリケーションＩＤとからホスト情報更新リストを作成する。データ処理部６３０は、入出力処理部６２０を経由して、スロット６１０に装着された不揮発性記憶装置２００に対し生成したホスト情報更新リストを通知する。不揮発性記憶装置２００側においては、通知されたホスト情報更新リストは、不揮発性記憶装置２００のホスト情報管理部２２３に記録される（図４のステップＳ４０２、Ｓ４０４、Ｓ４０６）。
【００４２】
（ステップＳ８０３）
データ処理部６３０は、不揮発性記憶装置２００にアクセスし、ユーザアクセス可能記憶領域２３１に記録された変更対象アプリケーション規格のフォルダにあるインデックスファイル７００中の更新処理中フラグを０（無効）から１（有効）に変更する。
このとき、インデックスファイル７００は、ユーザアクセス可能記憶領域２３１に存在するため、このフラグの変更は、ユーザアクセス可能記憶領域２３１の更新に該当する。そのため、不揮発性記憶装置２００側においては、図５で示した処理シーケンス（ステップＳ５０２、Ｓ５０４、Ｓ５０５、Ｓ５０６の処理）の通り、ステップＳ８０２で不揮発性記憶装置２００に通知したホスト情報更新リストに基づいて、ホスト情報記憶領域２３２内のホスト情報テーブル３０２が更新される。
【００４３】
（ステップＳ８０４）
データ処理部６３０は、撮像部６６０からの映像データを所定のアプリケーション規格に基づいたフォーマットに変換し、ある程度の映像データを蓄積した後、同データを入出力処理部６２０を介して出力する。出力された映像データは、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１内のコンテンツファイル等に記録される。また、既にコンテンツファイルが記録されている場合は追記を行う。
（ステップＳ８０５）
データ処理部６３０は、ステップＳ８０４で不揮発性記憶装置２００に記録した映像データに関するインデックスデータを、データ処理装置１００内のインデックス情報格納領域６３２に蓄積する。
【００４４】
（ステップＳ８０６）
データ処理部６３０は、ユーザがユーザ入力部６４０を介して撮影終了の指示を出していれば、ステップＳ８０７に処理を進む。撮影終了の指示を出していなければ、ステップＳ８０４に戻って映像データの記録を継続する。
（ステップＳ８０７）
データ処理部６３０は、撮影が終了すると、データ処理装置１００内のインデックス情報格納領域６３２に格納されている前記インデックスデータに基づき、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１における変更対象アプリケーション規格のインデックスファイル７００（図７）を更新する。
（ステップＳ８０８）
データ処理部６３０は、ユーザアクセス可能記憶領域２３１における変更対象となっているアプリケーション規格のインデックスファイル内の更新中フラグを１（有効）から０（無効）に変更し、処理を終了する。
【００４５】
図９Ａ及び９Ｂは、データ処理装置１００に不揮発性記憶装置２００を装着し、データの書き込み中に電源遮断が生じた場合、電源回復後の復旧処理を示すフローチャートである。
（ステップＳ９０１）
データ処理部６３０は、入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００にアクセスし、不揮発性記憶装置２００のホスト情報管理部２２３を介してホスト情報記憶領域２３２に格納されているホスト情報テーブル３０２の値を読み出す。
（ステップＳ９０２）
データ処理部６３０は、ステップＳ９０１で読み込んだホスト情報テーブル３０２内に記録されている読み出し対象のアプリケーションＩＤに対するデバイスＩＤの値を確認する。デバイスＩＤの値が０の場合、ステップＳ９０３に処理を進める。０以外の場合はステップＳ９０７に処理を進める。
【００４６】
（ステップＳ９０３）
デバイスＩＤの値が無効値を示す０の場合、当該データ処理装置１００からホスト情報更新リストが通知されていないか、或いはホスト情報テーブルがいったん初期化された（図５のステップＳ５０７）ことになる。これは、不揮発性記憶装置２００は、データ処理装置１００に装着される前にデータ処理装置１００以外であって、読み出し対象のアプリケーション規格に対応していない機器によって更新が加えられた可能性を意味する。
そのため、インデックスファイルとコンテンツファイルの間の整合性が維持されていることは保証されていない状態である。例えば、アプリケーション規格に対応していないデータ処理装置がインデックスファイル機能を有しないことがある。このような装置は、コンテンツデータの書き込みや消去を行っても、インデックスファイルは更新しないため、インデックスファイルとコンテンツファイル間に不整合が生じる。このようなことを防ぐため、データ処理部６３０は、インデックスファイルと全てのコンテンツファイルの読み込みを行い整合性の判断を行う。
【００４７】
不揮発性メモリ２３０内のインデックスファイル７００とコンテンツファイルとが整合しているかどうかを判断するには、インデックスファイル７００に記録されている各項目のデータ（図７のインデックスファイル７００やコンテンツの情報）とコンテンツファイルの実際の内容とが個々に適合しているか否かの判断を行う必要がある。そのため、データ処理装置１００は、個々のコンテンツファイルのデータ等を解析し、それぞれインデックスファイルの各項目のデータと実際のコンテンツファイルの内容とを比較する。
（ステップＳ９０４）
データ処理部６３０は、ステップＳ９０３で整合性を確認した結果、不整合が発生している場合はステップＳ９０５に処理を進める。不整合がなければ、処理を終了する。
（ステップＳ９０５）
データ処理部６３０は、不整合がある場合、ホスト情報更新リストを入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００に通知する。不揮発性記憶装置２００側では、通知されたホスト情報更新リストはホスト情報管理部２２３に記録される（図４のステップＳ４０６）。
【００４８】
（ステップＳ９０６）
データ処理部６３０は、不揮発性記憶装置２００にアクセスし、ステップＳ９０３で確認したインデックスファイル７００と全てのコンテンツファイルとの整合性情報に従って、整合性を取れるように、インデックスファイル７００と全てのコンテンツファイルとを修正する。インデックスファイル７００とコンテンツファイルとを修正する前に、インデックスファイル７００の更新処理中フラグを０から１に変更し、修正が完了すると、更新処理中フラグを１から０に変更する。
なお、整合性をとるとは、例えば、コンテンツファイルが削除されており、インデックスファイル７００に削除されたコンテンツファイルに関する情報が残存している場合、インデックスファイル７００から当該情報を削除する。或いは、インデックスファイル７００に情報が記録されていないコンテンツファイルが存在する場合、コンテンツファイルの内容を確認し、コンテンツファイルの情報をインデックスファイル７００に登録するか、不明なコンテンツファイルとして削除すること等である。
【００４９】
（ステップＳ９０７）
データ処理部６３０は、ステップＳ９０２で読み込んだデバイスＩＤの値が０以外の場合、インデックスファイル７００を読み込む。この場合、データ処理装置１００に装着される前にアプリケーション規格に対応しているデータ処理装置によって更新されたこと、すなわち、インデックスファイル７００に書き込まれている情報は正しことを意味する。
（ステップＳ９０８）
ステップＳ９０７で読み込んだインデックスファイル７００内の更新処理中フラグが０の場合、不揮発性記憶装置２００の読み出し対象のアプリケーション規格のインデックスファイル７００と全てのコンテンツファイルは整合性が保たれた状態であると判断し、処理を終了する。
【００５０】
（ステップＳ９０９）
データ処理部６３０は、ステップＳ９０１で読み込んだホスト情報テーブル３０２内に記録されている読み出し対象のアプリケーションＩＤに対するデバイスＩＤの値を確認する。そのデバイスＩＤの値が、当該データ処理装置１００のデバイスＩＤ格納部６７０に格納されている値と同じ（すなわち、当該データ処理装置１００が以前に当該アプリケーションを操作していた装置である）場合、ステップＳ９１０に処理を進む。そのデバイスＩＤの値がデバイスＩＤ格納部６７０に格納されている値と異なる場合、ステップＳ９１４に処理を進める。
（ステップＳ９１０）
データ処理部６３０は、入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００の媒体固有ＩＤを読み込む。
【００５１】
（ステップＳ９１１）
データ処理部６３０は、ステップＳ９１０で読み込んだ媒体固有ＩＤと媒体固有ＩＤ格納領域６３１に格納されている値を比較し、直前に記録処理を行った不揮発性記憶装置と同じかどうかを判断する。直前に記録処理を行った不揮発性記憶装置と同じであれば、ステップＳ９１２に処理を進める。異なっていればステップＳ９１４に処理を進める。
なお、媒体固有ＩＤ格納領域６３１には、図８のフローチャートのステップＳ８０１において読み込んだ媒体（不揮発性記憶装置）のＩＤが格納されている。
（ステップＳ９１２）
本ステップに到達することは、データ処理装置１００が更新処理中に、不揮発性記憶装置２００が抜けて再度装着される場合や、電源が遮断された場合等なんらかの事由により、更新処理が途中で中断している状態を意味する。そのため、データ処理部６３０は、ホスト情報更新リストを入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００に通知する。
【００５２】
（ステップＳ９１３）
データ処理部６３０は、インデックス情報格納領域６３２（キャッシュメモリ）に残っているインデックスデータを元に不揮発性記憶装置２００のインデックスファイル７００を更新し、インデックスファイル７００とコンテンツファイルの整合性を保持する。
（ステップＳ９１４）
本ステップに到達することは、不揮発性記憶装置２００が更新処理中に抜けて再度装着される等なんらかの事由により、更新処理が途中で中断している状態になっており、且つ、データ処理部６３０内のインデックス情報格納領域６３２に格納されているインデックスデータが、コンテンツファイルとの整合性がとれていないため、利用できない状態になっている。そのため、データ処理部６３０は、ホスト情報更新リストを入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００に通知する。
【００５３】
（ステップＳ９１５）
データ処理部６３０は、不揮発性記憶装置２００のインデックスファイル７００内のインデックス情報がないコンテンツファイル（テンポラリデータ）を削除することでインデックス情報とコンテンツファイルの整合性を保持する。なお、別の方法としてコンテンツファイルを復元できる場合、或いは残っているコンテンツファイルのデータで復旧できる場合等は、コンテンツファイルを削除せずにインデックスファイルに当該コンテンツファイルの情報を追加してもよい。
（ステップＳ９１６）
データ処理部６３０は、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１における読み出し対象アプリケーション規格のインデックスファイル内の更新中フラグを１から０に変更する。
【００５４】
上記の電源起動時の動作シーケンスが完了した後、データ処理装置１００は、ユーザ入力部６４０で受取ったユーザの入力をトリガにして、不揮発性記憶装置２００に格納されているデータの処理を実施する。ユーザ入力部６４０が存在せず、データ処理部６３０に格納されたソフトウェアが自動的に不揮発性記憶装置２００に格納されているデータの処理を開始してもよい。また、各動作シーケンスにおいて、表示部６５０はその進行状況や動作結果をユーザに表示してもよい。
＜１．４：実施形態の効果＞
以上のように、本実施形態によるデータ処理装置１００は、不揮発性記憶装置２００へのアクセスを行う際に、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１以外のホスト情報記憶領域２３２に記録されたホスト情報テーブルの値を利用する。これにより、不揮発性記憶装置２００が装着された際に不揮発性記憶装置２００のデータがどのデータ処理装置によってどのアプリケーション規格のデータを更新したかを簡単に判別できる。そのため、データ処理装置１００の電源投入時に常に整合性を確認する必要がなくなり、整合性の判断処理が不要な場合は処理の高速化が可能となる。
【００５５】
更に、不揮発性記憶装置２００のインデックスファイル内の更新処理中フラグと組み合わせることで、不用意な不揮発性記憶装置２００の挿抜が行われた場合等に、装着された不揮発性記憶装置２００のデータの更新状況を簡単に判別することができる。これにより、データ処理装置１００内に残っているインデックス情報を元に高速にデータの復旧処理が可能となる。
なお、本発明について、上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。以下のような場合も本発明に含まれる。
[２  変形例]
（１）
上記実施形態では、図４の動作シーケンスの説明において、ステップＳ４０６の処理で、データ処理装置１００から不揮発性記憶装置２００に送られる通知内容をホスト情報更新リスト（図３（ｂ））としたが、デバイスＩＤとアプリケーションＩＤを別々に送ってもよい。
【００５６】
（２）
上記実施形態では、不揮発性記憶装置２００内のホスト情報記憶領域２３２の中で、どのアプリケーション規格に基づいて記録されるかを、数字を用いたアプリケーションＩＤを用いて示したが、フォルダ名等異なるルールに基づいて書かれた識別情報を用いてもよい。要するに、アプリケーションを識別できるものであれば、その表現形態を特定するものではない。
（３）
上記実施形態では、不揮発性記憶装置２００は半導体メモリとしたが、着脱可能かつ読み書き可能な不揮発性記憶装置であれば、本発明の効果は有効である。半導体メモリ以外の不揮発性記憶装置として、例えば、着脱可能なＨＤＤでもよい。また、ＤＶＤやＢＤ等の光記憶装置のようにドライブと記憶媒体を分離しているような場合においても、上記実施形態のメモリコントローラ部をドライブ側に設置し、不揮発性メモリを記憶媒体側に設置することにより、本発明は有効に実施できる。
【００５７】
（４）
上記実施形態では、本発明のポイントを明確に説明するために、データ処理装置１００は１つのスロット６１０を備えているものとしたが、スロットは複数あってもよい。その場合、不揮発性記憶装置２００は、スロット数と同数の媒体固有ＩＤ記憶領域とインデックスデータ記憶領域を備えることができる。
（５）
上記実施形態では、更新処理中フラグをインデックスファイル内に設けたが、独立したファイルに設けてもよい。更新開始コマンドと更新終了コマンドを用いて、ホスト情報記憶領域２３２に記憶領域を設けてもよい。また、その際にアプリケーションＩＤ毎に格納するようにしてもよい。
【００５８】
（６）
上記実施形態では、データ処理装置１００の電源起動時において、データ処理部６３０は媒体固有ＩＤ格納領域６３１、及びインデックス情報格納領域６３２の値をクリアしているため、データ処理装置１００の電源がＯＦＦされるとキャッシュ情報は消去される。しかし、データ処理装置１００の電源がＯＦＦされてもキャッシュ情報が消去されないように、媒体固有ＩＤ格納領域６３１、及びインデックス情報格納領域６３２の値を不揮発性メモリに保持するようにしても良い。また、逆にインデックス情報を強制的にリセットする手段を備えていても良い。
（７）
上記実施形態では、デバイスＩＤは製造時に割り振るものとしたが、不揮発性記憶装置２００を更新するまでに設定できればよい。例えば、デバイスＩＤを一意に割り振るサーバからネットワーク経由で送られるＩＤを用いてもよい。
【００５９】
（８）
上記実施形態では、データ処理装置１００が、不揮発性記憶装置２００にホスト情報リストを通知し、そのままホスト情報管理部２２３に保持する例を記述したが、不揮発性記憶装置２００にホスト情報リストを通知する際に、暗号方式を用いて通知してもよい。例えば、アプリケーション毎にしか知りえない鍵を、不揮発性記憶装置２００の製造段階でホスト情報記憶領域２３２内に記録しておき、上記鍵で暗号化した上でデータ処理装置１００が不揮発性記憶装置２００に通知してもよい。このようにすることで、鍵を知りえる立場のデータ処理装置１００の製造者のみがホスト情報リストを通知することができるため、ホスト情報テーブル３０２の信頼性を増すことができる。
（９）
上記実施形態においては、コンテンツファイルやインデックスファイルの一部もしくは全体が暗号化されていてもよい。
【００６０】
（１０）
上記実施形態では、同一の不揮発性メモリ２３０の内部にユーザアクセス可能記憶領域２３１とホスト情報記憶領域２３２の２つの領域を設けて説明したが、ホスト情報記憶領域２３２が不揮発性メモリ２３０の内部になくてもよい。２つの不揮発性メモリ２３０をメモリコントローラに接続し、一方にユーザアクセス可能領域を設け、もう一方にホスト情報記憶領域を設けてもよい。２つの不揮発性メモリを搭載すると、より高速な処理を実現することができる。或いは、メモリコントローラの内部に不揮発性の記憶領域を設け、前記メモリコントローラの内部の不揮発性の記憶領域にホスト情報記憶領域を設けてもよい。不揮発性記憶装置２００の電源が遮断されたり、データ処理装置１００から着脱されたりしても、ホスト情報記憶領域の情報が消去されなければ、あらゆるバリエーションが可能である。
【産業上の利用可能性】
【００６１】
本発明は、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、或いは携帯電話等において有用である。
【符号の説明】
【００６２】
１００  データ処理装置
２００  不揮発性記憶装置
２１０  ホストインターフェイス部
２２０  メモリコントローラ
２２１  コマンド処理部
２２２  媒体固有ＩＤ格納部
２２３  ホスト情報管理部
２３０  不揮発性メモリ
２３１  ユーザアクセス可能記憶領域
２３２  ホスト情報記憶領域
３０１  ホスト情報
３０２  ホスト情報テーブル
３０３  ホスト情報更新リスト
６１０  スロット
６２０  入出力処理部
６３０  データ処理部
６３１  媒体固有ＩＤ格納領域
６３２  インデックス情報格納領域
６４０  ユーザ入力部
６５０  表示部
６６０  撮像部
６７０  デバイスＩＤ格納部
７００  インデックスファイル
【図１】
2010001602.tif 000003
【図２】
2010001602.tif 000004
【図３】
2010001602.tif 000005
【図４】
2010001602.tif 000006
【図５】
2010001602.tif 000007
【図６】
2010001602.tif 000008
【図７】
2010001602.tif 000009
【図８】
2010001602.tif 000010
【図９Ａ】
2010001602.tif 000011
【図９Ｂ】
2010001602.tif 000012
【手続補正書】
【提出日】平成22年5月27日(2010.5.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラにおいて、
前記不揮発性メモリへユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤと、前記アプリケーションを使用する外部装置を識別するデバイスＩＤとを受信するホストインターフェイス部と、
前記アプリケーションＩＤと前記デバイスＩＤとの対応関係を示すホスト情報テーブルを前記不揮発性メモリへ記録するホスト情報管理部と、
を備える、メモリコントローラ。
【請求項２】
前記不揮発性メモリへユーザデータが書き込まれる前に、前記ホスト情報管理部は、前記ホスト情報テーブルを更新する、
請求項１に記載のメモリコントローラ。
【請求項３】
前記ホストインターフェイス部が、前記不揮発性メモリへユーザデータが書き込まれる前に、前記アプリケーションＩＤと前記デバイスＩＤとを受信しない場合、前記ホスト情報管理部は、前記ホスト情報テーブルを初期化する、
請求項１又は２に記載のメモリコントローラ。
【請求項４】
請求項１から３のいずれかに記載のメモリコントローラと、
前記ホスト情報テーブルが記録された不揮発性メモリと、
を備える、不揮発性記憶装置。
【請求項５】
前記ホスト情報テーブルは、一のアプリケーションＩＤに対し、一意のデバイスＩＤを含む、
請求項４に記載の不揮発性記憶装置。
【請求項６】
前記不揮発性メモリは、ユーザデータを記録するユーザアクセス可能記憶領域と、前記ホスト情報テーブルを記録するホスト情報記憶領域と、を有し
前記ホスト情報記憶領域は、前記ユーザアクセス可能記憶領域よりもアクセスが制限されている、
請求項４又は５に記載の不揮発性記憶装置。
【請求項７】
不揮発性メモリと、前記不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラとを備える不揮発性記憶装置へ接続し、前記不揮発性記憶装置に対しユーザデータの書き込み又は読み出しを行うデータ処理装置であって、
前記データ処理装置を識別するデバイスＩＤと、前記不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとを前記不揮発性記憶装置へ出力するデータ処理部、
を備えるデータ処理装置。
【請求項８】
前記データ処理部は、前記ユーザデータの書き込みを前記不揮発性記憶装置へ行う前に、前記デバイスＩＤとアプリケーションＩＤとを前記不揮発性記憶装置へ出力する、
請求項７に記載のデータ処理装置。
【請求項９】
前記データ処理部は、
前記不揮発性記憶装置から、ユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤとアプリケーションを使用するデータ処理装置を識別するデバイスＩＤとの対応を示すホスト情報テーブルを読み出し、
前記ホスト情報テーブルにおいて、前記データ処理部が出力するアプリケーションＩＤに対応するデバイスＩＤの有無を判断し、
前記対応するデバイスＩＤが無い場合は、前記不揮発性記憶装置に記録されているユーザデータの整合性を判断する、
請求項７又は８に記載のデータ処理装置。
【請求項１０】
請求項４から６のいずれかに記載の不揮発性記憶装置と、
請求項７から９のいずれかに記載のデータ処理装置と、
を備える、不揮発性記憶システム。
【請求項１１】
不揮発性メモリ及び前記不揮発性メモリを制御するメモリコントローラを備える不揮発性記憶装置と、前記不揮発性記憶装置に接続するデータ処理装置とにより、前記不揮発性メモリに対しユーザデータの書き込み又は読み出しを制御する方法であって、
前記データ処理装置を識別するデバイスＩＤと、前記不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとを前記データ処理装置から前記不揮発性記憶装置へ出力し、
前記デバイスＩＤと前記アプリケーションＩＤとの対応関係を示すホスト情報テーブルを、前記不揮発性メモリへ記録し、
前記不揮発性メモリへユーザデータが書き込まれる前に、前記ホスト情報テーブルを更新する、
方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、不揮発性記憶装置、データ処理装置、不揮発性記憶装置システム及び方法に関するものである。
【背景技術】
【０００２】
近年、デジタルデータを読み書き可能な不揮発性記憶装置としてＳＤメモリカードやメモリースティック、コンパクトフラッシュ（登録商標）といった半導体メモリが普及してきている。これらの半導体メモリを使ってデータを処理するデータ処理装置は、パーソナルコンピュータ、音響機器、映像機器、携帯電話、デジタルカメラ等の電化製品を始め、多岐に渡っている。
半導体メモリ等の着脱可能で可搬性に優れた不揮発性記憶装置は、データ処理装置間のデータのやり取りを担うブリッジメディアとして特に有用である。このため１つの不揮発性記憶装置は複数のデータ処理装置に装着されることが多い。従って、あるデータ処理装置が不揮発性記憶装置に格納したデータは、他のデータ処理装置によって更新される可能性がある。従来では複数のデータ処理装置においてデータを共有する仕組みとしてファイルシステムが導入され、このファイルシステム上でデータ交換を行うのが一般的であった。
【０００３】
しかし、ファイルシステムは、汎用的に利用できる反面、特定のアプリケーションから利用した場合、十分なデータ管理機能を発揮しない場合もある。そこで、記録されたデータに対して、どのデータ処理装置においても効果的にアクセスができるように、記録されるファイルのストリーム構造やフォルダ構成を規定するアプリケーション規格と呼ばれる記録方式がある。このアプリケーション規格では、例えばＳＤメモリカードによってデジタルデータを記録するためのルールとして、ビデオデータに対してＳＤ−Ｖｉｄｅｏ規格、オーディオデータに対してＳＤ−Ａｕｄｉｏ規格が規定されており、データ処理装置間での互換性を確保している。これらのアプリケーション規格の記録方式では、ファイルシステム上に記録された複数のファイルのファイル情報やファイル間相互の関係が重要になる場合がある。
【０００４】
しかし、不揮発性記憶装置がＰＣ等の通常のデータ処理装置に接続され、アプリケーション規格に準拠しない環境でファイルが操作される場合がある。そのため、このようなアプリケーション規格の記録方式では、あるデータ処理装置によって、不揮発性記憶装置内のデータが他のデータ処理装置によって更新された可能性があるか否かを判断するためには、前記不揮発性記憶装置に記録されたデータを実際に読み出して内容を確認しなければならず、読み出すデータのサイズが大きくなるに伴い処理時間がかかるという問題があった。
データが不揮発性記憶装置によって更新されたかどうかを判断する方法としては、不揮発性記憶装置内に書き込み直前に更新される更新通知部を設ける方法が開示されている（例えば、特許文献１参照）。この方法では、更新通知部の値をデータ処理装置から参照可能とし、更に前記更新通知部の値はデータ処理装置からは更新不可としている。しかし、この方法では、カードに一度でも書き込みがあれば、前記更新通知部の値が更新されるため、複数のアプリケーション規格でデータが記録される場合、ファイル間等の整合性を確認する回数を低減させるのには不十分だった。
【０００５】
また、データ処理装置のスロット部にロック検知機構を設け、不揮発性記憶装置の着脱を確認する方法により、制御出力がなされ、整合性を保持する方法が開示されている（例えば、特許文献２、特許文献３参照）。しかし、この方法では、開閉検知を行うために検出スイッチ等の検知手段をスロット部に追加するため、物理機構が必要となりデータ処理装置の原価をあげてしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００５／０４１０５０号パンフレット
【特許文献２】特開２００３−１３２３８６号公報
【特許文献３】特開２００１−３０７０２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このように不揮発性記憶装置が複数のデータ処理装置に装着されると、どの機器がどのように記録、削除処理を行うか判別できないため、不揮発性記憶装置の装着時や、電源投入時にファイル間（コンテンツデータファイル、或いはコンテンツデータファイル等の情報を保持するインデックスファイルの間）の整合性のチェックを行う時間が必要となり、不揮発性記憶装置が使用可能な状態になるまで常に時間がかかってしまうという問題があった。
そこで、本発明の目的は、不揮発性記憶装置中のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくし、処理の高速化が可能な、メモリコントローラ、不揮発性記憶装置、データ処理装置、不揮発性記憶装置システム及び方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明において、第１の発明は、不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラであって、ホストインターフェイス部と、ホスト情報管理部と、を備える。ホストインターフェイス部は、不揮発性メモリへユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤと、アプリケーションを使用する外部装置を識別するデバイスＩＤとを受信する。ホスト情報管理部は、アプリケーションＩＤとデバイスＩＤとの対応関係を示すホスト情報テーブルを不揮発性メモリへ記録する。
ここでは、アプリケーションＩＤとデバイスＩＤとを記録しておくことによって、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となる。
【０００９】
第２の発明は、第１の発明であって、不揮発性メモリへユーザデータが書き込まれる前に、ホスト情報管理部は、ホスト情報テーブルを更新する。
第３の発明は、第１又は第２の発明であって、ホストインターフェイス部が、不揮発性メモリへユーザデータが書き込まれる前に、アプリケーションＩＤとデバイスＩＤとを受信しない場合、ホスト情報管理部は、ホスト情報テーブルを初期化する。
ここで、ホスト情報テーブルを初期化するとは、例えば、ホスト情報テーブルに記載されているデバイスＩＤを、無効値（対応するデバイスが無い）に変更することである。
第４の発明は、第１から第３のいずれかに発明にかかるメモリコントローラと、ホスト情報テーブルが記録された不揮発性メモリと、を備える不揮発性記憶装置である。
不揮発性記憶装置は、例えば、メモリコントローラと不揮発性メモリが専用の筐体等に収められたメモリカードのような装置、或いはメモリコントローラと不揮発性メモリをもつ電子部品（電子回路又は集積回路）のようなモジュール（機能部品）装置等としても利用することが可能である。
【００１０】
第５の発明は、第４の発明であって、ホスト情報テーブルは、一のアプリケーションＩＤに対し、一意のデバイスＩＤを含む。
第６の発明は、第４又は第５の発明であって、不揮発性メモリは、ユーザデータを記録するユーザアクセス可能記憶領域と、ホスト情報テーブルを記録するホスト情報記憶領域と、を有する。更に、ホスト情報記憶領域は、ユーザアクセス可能記憶領域よりもアクセスが制限されている。
第７の発明は、不揮発性メモリと、不揮発性メモリへのデータ書き込み又は読み出しを制御するメモリコントローラとを備える不揮発性記憶装置へ接続し、不揮発性記憶装置に対しユーザデータの書き込み又は読み出しを行うデータ処理装置であって、データ処理装置を識別するデバイスＩＤと、不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとを不揮発性記憶装置へ出力するデータ処理部、を備える。
【００１１】
ここでは、アプリケーションＩＤとデバイスＩＤとを不揮発性記憶装置に出力することによって、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となる。
第８の発明は、第７の発明であって、データ処理部は、ユーザデータの書き込みを不揮発性記憶装置へ行う前に、デバイスＩＤとアプリケーションＩＤとを不揮発性記憶装置へ出力する。
第９の発明は、第７又は第８の発明であって、データ処理部は、不揮発性記憶装置から、ユーザデータを記録する際に用いられるアプリケーションを識別するアプリケーションＩＤとアプリケーションを使用するデータ処理装置を識別するデバイスＩＤとの対応を示すホスト情報テーブルを読み出し、ホスト情報テーブルにおいて、データ処理部が出力するアプリケーションＩＤに対応するデバイスＩＤの有無を判断し、対応するデバイスＩＤが無い場合は、不揮発性記憶装置に記録されているユーザデータの整合性を判断する。
【００１２】
ここでは、例えば、不用意な不揮発性記憶装置の挿抜が行われた場合等に、装着された不揮発性記憶装置のデータの更新状況を簡単に判別することができる。これにより、整合性の判断処理の要不要を迅速に判別することができる。
第１０の発明は、第４から第６の発明のいずれかの不揮発性記憶装置と、第７から第９の発明のいずれかのデータ処理装置と、を備える不揮発性記憶システムである。
第１１の発明は、不揮発性メモリ及び不揮発性メモリを制御するメモリコントローラを備える不揮発性記憶装置と、同不揮発性記憶装置に接続するデータ処理装置とにより、不揮発性メモリに対しユーザデータの書き込み又は読み出しを制御する方法であって、次のステップを備える。データ処理装置を識別するデバイスＩＤと、不揮発性記憶装置へユーザデータを記録する際に用いるアプリケーションを識別するアプリケーションＩＤとをデータ処理装置から不揮発性記憶装置へ出力する。デバイスＩＤとアプリケーションＩＤとの対応関係を示すホスト情報テーブルを、不揮発性メモリへ記録する。不揮発性メモリへユーザデータが書き込まれる前に、ホスト情報テーブルを更新する。
【００１３】
ここでは、アプリケーションＩＤとデバイスＩＤとを不揮発性記憶装置に出力し、不揮発性メモリにおいて、ユーザデータを書き込む前に、アプリケーションＩＤとデバイスＩＤとを含むホスト情報テーブルを更新することにより、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となる。
【発明の効果】
【００１４】
本発明によれば、不揮発性メモリ内のデータが適切に更新されたかを簡単に判別し、不要な整合性の判断処理をなくすことができるため、処理の高速化が可能となるという利点がある。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係る不揮発性記憶システムを示すブロック図
【図２】本実施形態に係る不揮発性記憶装置の構成例を示すブロック図
【図３】ホスト情報、ホスト情報テーブル、ホスト情報更新リストの例を示す図
【図４】不揮発性記憶装置がホスト情報更新リストを受信するときの動作例を示すフローチャート
【図５】不揮発性記憶装置がユーザアクセス可能記憶領域を更新するときの動作例を示すフローチャート
【図６】本実施形態に係るデータ処理装置の構成例を示すブロック図
【図７】ユーザアクセス可能記憶領域に記録されているユーザデータ構造の例を示す図
【図８】データ処理装置に不揮発性記憶装置を装着した際のデータ処理装置の動作例を示すフローチャート
【図９Ａ】データ書き込み中に電源遮断が生じた場合の電源回復後のデータ処理装置の動作例を示すフローチャート
【図９Ｂ】データ書き込み中に電源遮断が生じた場合の電源回復後のデータ処理装置の動作例を示すフローチャート
【発明を実施するための形態】
【００１６】
[１  実施形態]
＜１．１：不揮発性記憶システム１＞
以下、本発明の一実施形態を図面に基づいて詳細に説明する。
まず、本実施形態による不揮発性記憶システム１について説明する。図１は、不揮発性記憶システム１の一例を示す図である。不揮発性記憶システム１は、データ処理装置１００と不揮発性記憶装置２００とを備える。
不揮発性記憶装置２００は、データ処理装置１００と接続され、各種のデータを記録する。不揮発性記憶装置２００は、例えば、メモリカード等のリムーバルメディアである。
データ処理装置１００は、各種のデータ生成や加工等を行い、接続されている不揮発性記憶装置２００へデータの記録を行ったり、不揮発性記録装置２００からデータを読み出したりする。データ処理装置１００は、例えば、デジタルカメラやビデオカメラ、ポータブルオーディオプレーヤである。図１の例では、データ処理装置１００は、デジタルビデオカメラであり、不揮発性記憶装置２００はメモリカードとしており、これらが不揮発性記憶装置システム１の主要な構成要素をなす。なお、図１は一例であり、本発明はこれらに限定されるものではない。
【００１７】
ここで、データ処理装置１００は、動画撮影した撮影データ（コンテンツデータ）とこれらの付随情報であるインデックス情報とを不揮発性記憶装置２００に記録する。
図１は、データ処理装置１００がデジタルビデオカメラである場合の一例を示す。この例では、データ処理装置１００は、撮像部６６０、表示部６５０、ユーザ入力部６４０及びスロット６１０を有する。
撮像部６６０は、光をレンズで集光等し、ＣＣＤセンサやＣＭＯＳセンサ等のイメージセンサを用いて電気的な映像信号に変換する。表示部６５０は、不揮発性記憶装置２００に保存した動画コンテンツデータをユーザに表示する。ユーザ入力部６４０は、ユーザからの操作入力を行うためのものである。ユーザは、ユーザ入力部６４０によって不揮発性記憶装置２００に格納された所望するコンテンツを選択し、表示部６５０に表示された内容によりコンテンツの内容を確認できる。スロット６１０は、不揮発性記憶装置２００をデータ処理装置１００に装着し、データの送受信をするインターフェイスである。
【００１８】
次に、不揮発性記憶装置２００及びデータ処理装置１００の構成や動作について詳細に説明する。
＜１．２：不揮発性記憶装置２００＞
（１．２．１：不揮発性記憶装置２００の構成）
図２は、メモリカード（半導体メモリ）である不揮発性記憶装置２００の構成例を示す。
不揮発性記憶装置２００は、ホストインターフェイス部２１０、メモリコントローラ２２０、及び不揮発性メモリ２３０を備える。
ホストインターフェイス部２１０は、不揮発性記憶装置２００を装着することが可能な、外部機器であるデータ処理装置１００とコマンドやデータ等の情報を送受信する。
【００１９】
不揮発性メモリ２３０は、デジタルデータを格納する。不揮発性メモリ２３０は、ユーザアクセス可能記憶領域２３１と、ホスト情報記憶領域２３２とを含む。ユーザアクセス可能記憶領域２３１は、データ処理装置１００からの任意のデジタルデータを読み書きできる領域である。ホスト情報記憶領域２３２は、後述するように、メモリコントローラ２２０のホスト情報管理部２２３のみが記録できる領域である。ホスト情報記憶領域２３２には、後述する通り、ホスト情報テーブルが記録されるため、データ処理装置１００が記録するユーザデータ等を記録する領域とは区別されることが望ましい。そのため、ホスト情報記憶領域２３２は、不揮発性メモリ２３０の一定のアクセス制限がある領域、例えばアクセスには認証等の手続きが要する領域、とすることが好ましい。
不揮発性メモリ２３０は、代表的なものとしてＮＡＮＤ型のフラッシュメモリ等があるが、本実施形態は、これに限定されるものではない。ＥＥＰＲＯＭ、ＦｅＲＡＭ、ＭＲＡＭ等の他の不揮発性の半導体メモリを用いることも可能である。更に、本実施形態は半導体メモリだけでなく、ＨＤＤのような記録媒体を利用してもよい。
【００２０】
メモリコントローラ２２０は、不揮発性記憶装置２００の内部制御を行う。メモリコントローラ２２０は、不揮発性メモリ２３０と、ホストインターフェイス部２１０に接続されている。メモリコントローラ２２０は、コマンド処理部２２１と、媒体固有ＩＤ格納部２２２と、ホスト情報管理部２２３とを含む。
コマンド処理部２２１は、ホストインターフェイス部２１０を介して、データ処理装置１００とコマンド、データ等の送受信を行う。
媒体固有ＩＤ格納部２２２は、不揮発性記憶装置２００毎に異なる固有のＩＤを格納する。データ処理装置１００は、この媒体固有ＩＤを識別することにより、接続される媒体（不揮発性記憶装置２００）を識別することが可能となる。
ホスト情報管理部２２３は、不揮発性メモリ２３０のホスト情報記憶領域２３２に対するインターフェイスの役割をもつ。ホスト情報記憶領域２３２は、上述の通りデータ処理装置１００からのユーザアクセスはできず、ホスト情報管理部２２３がホスト情報記憶領域２３２に対しデータ書き込み又はデータ読み出しを行う。
【００２１】
なお、図示していないが、メモリコントローラ２２０は、上記以外に不揮発性記憶装置２００全体の制御（例えば、初期化処理、電源制御、クロック制御、メモリ管理、アドレス管理等）も行う。
≪ホスト情報管理部２２３による情報管理≫
次に、ホスト情報管理部２２３による情報管理について説明する。
図３は、ホスト情報管理部２２３の処理内容に係わる不揮発性記憶装置２００内の情報の内容を示す。
図３（ａ）は、ホスト情報記憶領域２３２に格納された、ホスト情報３０１を含むホスト情報テーブル３０２の内容を示す。図３（ｂ）は、ホスト情報管理部２２３内のホスト情報更新リスト３０３を示す。また、図３（ｃ）は、ホスト情報更新リストにより更新されたホスト情報テーブル３０４を示し、図３（ｄ）は、初期化されたホスト情報テーブル３０５を示す。
【００２２】
図３（ａ）に示す、ホスト情報テーブル３０２はホスト情報３０１から構成される。ホスト情報３０１は、データ処理装置１００を一意に識別するデバイスＩＤと、当該データ処理装置１００が不揮発性記憶装置２００にデータを書き込み又は更新等する際に用いた規約又はルール（アプリケーション）の識別情報であるアプリケーションＩＤとを含む。図３（ａ）の例では、例えばデバイスＩＤが００８０４５８７ＡＢＣＤＥＦ０１であるデータ処理装置１００が、アプリケーションＩＤが０で識別される規約又はルール（アプリケーション）によりデータを書き換え、又は更新等することが可能であることを示している。
ホスト情報テーブル３０２は、上記のホスト情報３０１に基づいて、複数のアプリケーションに対して各デバイスＩＤを示した表（テーブル）である。アプリケーション毎に一意に識別されるデバイスＩＤが示されている。ホスト情報テーブル３０２は、ホスト情報管理部２２３によりホスト情報記録領域２３２に記録される。
【００２３】
ホスト情報更新リスト３０３は、不揮発性記憶装置２００が接続される各データ処理装置１００が扱うことのできるアプリケーションの情報を示す。具体的には、ホスト情報更新リスト３０３は、各データ処理装置１００が扱うことのできるアプリケーション数（アプリケーションＩＤ数）と、データ処理装置１００を識別するデバイスＩＤと、データ処理装置１００が更新を行う対象のアプリケーションＩＤとで構成される。複数の規約又はルールに基づいて更新を行う場合は、ホスト情報更新リスト３０３のアプリケーションＩＤは複数個存在する。ホスト情報更新リスト３０３は、ホスト情報管理部２２３に記録される。
以上のように、ホスト情報管理部２２３は、不揮発性メモリ２３０のホスト情報記憶領域２３２へのアクセスを制御する。ホスト情報管理部２２３は、外部のデータ処理装置１００から送られる一部のコマンドのみを受けつけ、その内容に従って、ホスト情報記憶領域２３２等へのアクセスを実行する。
【００２４】
また、ホスト情報管理部２２３は、ユーザアクセス可能記憶領域２３１との関係では、ユーザアクセス可能記憶領域２３１にユーザデータが新たに書き込まれる、又はデータの一部が更新される前に、コマンド処理部２２１から受け取るホスト情報更新リスト３０３によってホスト情報記憶領域２３２を更新する等の処理も行う。
なお、ホスト情報管理部２２３はホスト情報更新リスト３０３を一時的に記憶するためのメモリを有する。
ホスト情報テーブル３０２は、データ処理装置１００に関する情報を記憶する領域であるホスト情報記憶領域２３２に記憶される。ホスト情報テーブル３０２は、ホスト情報管理部２２３、コマンド処理部２２１及びホストインターフェイス部２１０を介してデータ処理装置１００により読み出すことが可能である。
【００２５】
ホスト情報更新リスト３０３は、データ処理装置１００より送信され、図３（ｂ）に示すようにホスト情報管理部２２３のメモリに一時的に蓄積される。その後、データ処理装置１００がデジタルデータ（ユーザデータ）をユーザアクセス可能記憶領域２３１に記録する前に、ホスト情報管理部２２３が、一時的に蓄積されたホスト情報更新リスト３０３に基づいてホスト情報記憶領域２３２のホスト情報テーブル３０２を更新する。
ホスト情報管理部２２３に保持されるホスト情報更新リスト３０３は、電源投入時や不揮発性記憶装置２００をデータ処理装置１００に装着したときに発行される初期化コマンド等によって、デバイスＩＤ及びアプリケーションＩＤの部分がクリアされる。デバイスＩＤをクリアするとは、実際にはデバイスＩＤに無効なデバイスＩＤ（対応するデバイスが無い）を示す０を設定することを示す。また、アプリケーションＩＤをクリアするとは、アプリケーションＩＤの個数を格納するアプリケーションＩＤ数フィールドに０を設定することを示す。そうすることで、アプリケーションＩＤに対応するデバイスＩＤがない状態となる。
【００２６】
なお、ホスト情報記憶領域２３２のホスト情報テーブル３０２の値は、不揮発性記憶装置２００を製造したとき、無効デバイスＩＤ（対応するデバイスが無い）を示す０が全てのアプリケーションＩＤに対して書き込まれる。このホスト情報テーブル３０２は、ホスト情報管理部２２３によりアクセスが制御されているため、データ処理装置１００からの通常コマンド等で、ホスト情報テーブル３０２のデータは書き換えられない。また、ホスト情報記憶領域２３２は不揮発性メモリ内に記録されているため、不揮発性記憶装置２００の電源切断（ＯＦＦ）により、データが変化することはない。
（１．２．２：不揮発性記憶装置２００の動作）
図４は、不揮発性記憶装置２００がデータ処理装置１００からホスト情報更新リスト３０３を通知するコマンドを受信したときの動作例を示すフローチャートである。
【００２７】
（ステップＳ４０１）
ホストインターフェイス部２１０は、データ処理装置１００からのコマンドを受信し、コマンド処理部２２１に通知する。
（ステップＳ４０２）
コマンド処理部２２１は、ステップＳ４０１で通知されたコマンドの種別を判断し、そのコマンドがホスト情報更新リストを通知するコマンドであるか否かを判断する。ホスト情報更新リストを通知するコマンドであれば、ステップＳ４０４の処理に進む。それ以外のコマンドについては、ステップＳ４０３の処理に進む。
なお、それ以外のコマンドとは、例えばユーザアクセス可能記憶領域２３１からのデータの読み出しを行うＲｅａｄコマンドや、書き込みを行うＷｒｉｔｅコマンド等である。
【００２８】
（ステップＳ４０３）
ホスト情報更新リストを通知するコマンドでなければ、メモリコントローラ２２０は、コマンドに応じた処理を行い終了する。
（ステップＳ４０４）
メモリコントローラ２２０は、ホスト情報更新リストを通知するコマンドを受信すると、ユーザアクセス可能記憶領域２３１を更新するコマンドが初期化処理以降に発行されているかどうかを判断する。ユーザアクセス可能記憶領域２３１を更新するコマンドとは、不揮発性メモリ２３０のユーザアクセス可能記憶領域２３１へのデータの書き込みを行うＷｒｉｔｅコマンド、データの消去を行うＥｒａｓｅコマンド等である。また、初期化処理は、不揮発性記憶装置２００がハードウエア及びソフトウェアの初期設定を行う処理であり、メモリのクリアや初期値の設定等を含む。
【００２９】
ユーザアクセス可能記憶領域２３１を更新するコマンドを受信する前である場合、ステップＳ４０６の処理に進む。更新するコマンドを受信した後である場合、ステップＳ４０５の処理に進む。
（ステップＳ４０５）
既にユーザアクセス可能記憶領域２３１を更新するコマンドを受信した後である場合、メモリコントローラ２２０は、ホストインターフェイス部２１０を介して外部のデータ処理装置１００からのコマンドの拒絶をデータ処理装置１００に返答し、処理を終了する。
（ステップＳ４０６）
更新するコマンドを受信する前の場合、メモリコントローラ２２０は、データ処理装置１００から受け取ったホスト情報更新リストをホスト情報管理部２２３内に記録し、ステップＳ４０７に進む。
【００３０】
（ステップＳ４０７）
メモリコントローラ２２０は、処理が成功したことを、ホストインターフェイス部２１０を介して、データ処理装置１００に通知する。
図５は、不揮発性記憶装置２００がデータ処理装置１００からユーザアクセス可能記憶領域２３１を更新するコマンドを受信するときの動作例を示すフローチャートである。
（ステップＳ５０１）
ホストインターフェイス部２１０は、データ処理装置１００からのコマンドを受信すると、コマンド処理部２２１に通知する。
（ステップＳ５０２）
コマンド処理部２２１は、ユーザアクセス可能記憶領域２３１を更新するコマンドであるか否かを判断する。更新するコマンドである場合、ステップＳ５０４の処理に進む。それ以外のコマンドである場合、ステップＳ５０３の処理に進む。なお、それ以外のコマンドとは、例えば読み出しを行うＲｅａｄコマンド等である。
【００３１】
（ステップＳ５０３）
コマンド処理部２２１は、受信したコマンド（Ｒｅａｄ等）を実行して終了する。
（ステップＳ５０４）
コマンド処理部２２１は、ユーザアクセス可能記憶領域２３１を更新するコマンドが初期化処理後初めてユーザアクセス可能記憶領域２３１を更新するコマンドであるか否かを判断する。初めてユーザアクセス可能記憶領域２３１を更新するコマンドの場合、ステップＳ５０５の処理に進む。２回目以降のユーザアクセス可能記憶領域２３１を更新するコマンドの場合、ステップＳ５０８に処理を進める。
（ステップＳ５０５）
コマンド処理部２２１は、ホスト情報管理部２２３に対して、図４に示したフローチャートによる動作によってホスト情報更新リストを通知するコマンドを受信済みかどうか問い合わせる。ホスト情報管理部２２３からの結果が、ホスト情報更新リストを受信済みの場合、ステップＳ５０６に処理を進める。受信していない場合はステップＳ５０７に処理を進める。
【００３２】
（ステップＳ５０６）
ホスト情報更新リスト３０３を受信済みの場合、ホスト情報管理部２２３は、ホスト情報記憶領域２３２に記憶されているホスト情報テーブル３０２を、図４のステップＳ４０６においてホスト情報管理部２２３に記録されたホスト情報更新リスト３０３に従って更新する。同処理終了後はステップＳ５０８に処理を進める。
ここで更新するとは、ホスト情報テーブル３０２をホスト情報更新リスト３０３に基づいて更新することである。具体的には、ホスト情報テーブル３０２のアプリケーションＩＤのうち、ホスト情報更新リスト３０３に記載されているアプリケーションＩＤと一致するものに関し、ホスト情報テーブル３０２のデバイスＩＤをホスト情報更新リスト３０３のデバイスＩＤに置き換える。
【００３３】
例えば、ホスト情報テーブル３０２が図３（ａ）の状態であった場合、同ホスト情報テーブル３０２を図３（ｂ）のホスト情報更新リスト３０３によって更新を行う。その結果、図３（ｃ）に示すような、ホスト情報テーブル３０４が新たに作成される。更新後のホスト情報テーブル３０４では、アプリケーションＩＤ０と２が、ホスト情報更新リスト３０３に記載のデバイスＩＤ“００８０４５１２３４５６７８”に置き換えられている。
（ステップＳ５０７）
ホスト情報更新リストを受信していない場合、ホスト情報管理部２２３は、ホスト情報記憶領域２３２に記憶されているホスト情報テーブル３０２を初期化する。その処理終了後はステップＳ５０８に処理を進める。
ここでホスト情報テーブルを初期化するとは、ホスト情報テーブル３０２に記載されているデバイスＩＤを、無効値（対応するデバイスが無い）を示す０に変更することである。例えば、元のホスト情報更新テーブル３０２が図３（ａ）の状態であった場合、初期化を行うと、図３（ｄ）に示すようなホスト情報テーブル３０５が作成される。初期化後のホスト情報テーブル３０５では、全てのアプリケーションＩＤに対応するデバイスＩＤが“０”に置き換えられる。
【００３４】
（ステップＳ５０８）
コマンド処理部２２１は、受信した前記コマンドを実行し、処理を終了する。例えば、前記コマンドがＷｒｉｔｅコマンドである場合にはユーザアクセス可能記憶領域２３１にデータ処理装置１００から受信したユーザデータを書き込む。また、Ｅｒａｓｅコマンドである場合にはユーザアクセス可能記憶領域２３１の該当するアドレスのデータを消去する。
以上のように、本実施形態による不揮発性記憶装置２００は、ユーザアクセス可能記憶領域２３１のデータを更新する前に、事前に受信したホスト情報更新リスト３０３に従って前記ホスト情報記憶領域２３２に記録されているホスト情報テーブル３０２の値を更新する。
【００３５】
従って、デバイスＩＤ、アプリケーションＩＤを通知するデータ処理装置１００によって不揮発性記憶装置２００が更新された後、別のデータ処理装置に接続された場合や再度電源投入した場合等においても、データ処理装置１００は、ホスト情報記憶領域２３２のホスト情報テーブル３０２を読み取ることによって、どのデータ処理装置によって更新されたかどうかを判断することができ、且つ自身以外のデータ処理装置によってユーザデータが更新された場合に、不揮発性記憶装置２００を更新したデータ処理装置がどの規則又はルールに従って更新処理を行ったかを把握することができる。
＜１．３：データ処理装置１００＞
（１．３．１：データ処理装置１００の構成）
次に、本実施形態によるデータ処理装置１００について説明する。図６は、データ処理装置１００の構成例を示す図である。
【００３６】
データ処理装置１００は、前述したスロット６１０、ユーザ入力部６４０、表示部６５０、及び撮像部６６０の他、入出力処理部６２０、データ処理部６３０、及びデバイスＩＤ格納部６７０を備える。
スロット６１０は、外部の不揮発性記憶装置２００を装着するインターフェイスの一部である。
入出力処理部６２０は、スロット６１０に装着された不揮発性記憶装置２００に対してコマンドやデータ等の情報の受け渡しを行うインターフェイスの一部である。
データ処理部６３０は、スロット６１０に接続された不揮発性記憶装置２００に格納されたデータもしくはこれから格納するデータを処理する部分である。例えば、スロット６１０に接続された不揮発性記憶装置２００に格納されたデータがオーディオデータやビデオデータである場合、データを入出力処理部６２０経由で読み出し、記録・編集したユーザデータを入出力処理部６２０経由で不揮発性記憶装置２００に書き込む等の動作を制御する。
【００３７】
なお、データ処理部６３０は、上記以外のデータ処理（例えば、読み出したデータの再生や、撮影したデータの記録等）や、データ処理装置１００全体を制御する機能（電源制御、クロック制御等）の制御を行ってもよい。
前記データ処理部６３０は、データの処理中に使用する一時的な記憶領域であるメモリ（図示省略）を有する。当該メモリは、媒体固有ＩＤ格納領域６３１とインデックス情報格納領域６３２とを有する。
媒体固有ＩＤ格納領域６３１は、スロット６１０に接続される不揮発性記憶装置２００の媒体固有ＩＤ格納部２２２から読み出された媒体固有ＩＤを記録する。
インデックス情報格納領域６３２は、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１に記録するインデックスファイルの情報を格納する領域である。インデックスファイルの情報の詳細については後述する。また、インデックス情報格納領域６３２は、インデックスファイル等の各種のデータを一時的に保持するメモリを備える。このメモリは、揮発性メモリに限らず、不揮発性メモリであってもよい。
【００３８】
ユーザ入力部６４０は、ユーザからの入力を受け付ける部分である。表示部６５０は、前記データ処理部６３０の処理結果や各処理の進行状況等をユーザに通知する部分である。撮像部６６０は、光をＣＣＤ（電荷結合素子）やＣＭＯＳ（相補形金属酸化膜半導体）等の素子を用いて電気的な映像信号に変換するイメージセンサから受け取ったデジタル映像信号を前記データ処理部６３０に送る。
デバイスＩＤ格納部６７０は、データ処理装置１００を一意に特定する識別子であるデバイスＩＤを格納する。デバイスＩＤは、個々のデータ処理装置に一意の値を割り振られる。デバイスＩＤはデータ処理装置の製造時等に設定される。
≪インデックスファイル情報≫
インデックス情報格納領域６３２に格納されるインデックスファイル情報は、図７に示すように、不揮発性メモリ２３０のユーザアクセス可能記憶領域２３１に記録される。同図は、ユーザアクセス可能記憶領域２３１のユーザデータ構造を示す。
【００３９】
本実施形態では、各々のユーザデータは、規格又はルール（アプリケーション）毎に独立したフォルダに記録される。各フォルダでは、コンテンツファイルとインデックスファイルが、一定の規格又はルール（アプリケーション）によって定められたファイル形式で格納されている。
本実施形態では、各フォルダには、少なくとも１つ以上のコンテンツファイル及びインデックスファイルが格納されている。ただし、その他のファイルが格納されていてもよい。
ここで、コンテンツファイルとは、データ処理装置１００が処理するデータをファイル形式で管理したものであり、例えば音楽、動画、静止画等のユーザデータを格納したファイル等である。
【００４０】
インデックスファイル７００は、複数の前記コンテンツファイルに関する情報を格納したファイルであり、具体的には次のような情報を格納するフィールドを備えている。すなわち、更新処理中フラグ、総コンテンツ数、総再生時間、コンテンツの情報、プレイリスト等である。
更新処理中フラグは、インデックスファイルやコンテンツファイルの更新処理を開始する前に１に設定し、更新処理が終了すれば０に設定することにより、ファイル群へのアクセス情報を示す。総コンテンツ数は、フォルダの中に記録されているコンテンツファイルの総数を示す値である。総再生時間は、フォルダの中に記録されているすべてのコンテンツファイルの合計の再生時間である。
コンテンツの情報は、各コンテンツファイルの詳細な情報を示したデータである。具体的には、コンテンツファイル名、音楽、動画、静止画といったコンテンツの種類、コンテンツの再生（処理）時間、コンテンツファイルが格納されている記憶領域上の物理的な又は論理的なデータ格納アドレス、コンテンツの再生条件、複製条件又は著作権保護情報、コンテンツの作成日時、動画・音楽の特定の時刻と一致するデータアドレスを示すタイムサーチテーブル等である。
【００４１】
プレイリストは、フォルダ内のコンテンツファイルの再生順序を記述したデータである。
インデックスファイル７００には、前記コンテンツファイルの一覧表示等を行う際に必要な情報をまとめて格納する。このインデックスファイル７００により、コンテンツファイルの検索を比較的簡単に行うことができ、データ処理装置１００の処理を軽くすることができる。
本実施形態では、ＦＡＴファイルシステムを利用して記録アドレス等を管理し、このＦＡＴファイルシステムにおいて必要となる情報を所定の検索情報格納領域に記録するものとする。なお、ＵＤＦ等の他のファイルシステムを利用しても良いし、ファイルシステムを使わずに記録アドレス等を管理しても良い。
（１．３．２：データ処理装置１００の動作）
以下、データ処理装置１００の動作について、不揮発性記憶装置２００の動作と関連させながら図面を用いて説明する。
【００４２】
図８は、データ処理装置１００に不揮発性記憶装置２００を装着したときにユーザアクセス可能記憶領域２３１を更新する際の動作例を示すフローチャートである。本実施形態では、撮像部６６０からの撮像データを不揮発性記憶装置２００に記録するシーケンスとしているが、記録するデジタルデータは撮像部６６０からのものでなくてもよい。
（ステップＳ８０１）
データ処理部６３０は、入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００の媒体固有ＩＤ格納部２２２に記録されている媒体固有ＩＤを媒体固有ＩＤ格納領域６３１に読み込む。
（ステップＳ８０２）
ユーザ入力部６４０から撮影開始の指示が入力されると、データ処理部６３０は、デバイスＩＤ格納部６７０に記録されているデバイスＩＤと更新対象のアプリケーションＩＤとからホスト情報更新リストを作成する。データ処理部６３０は、入出力処理部６２０を経由して、スロット６１０に装着された不揮発性記憶装置２００に対し生成したホスト情報更新リストを通知する。不揮発性記憶装置２００側においては、通知されたホスト情報更新リストは、不揮発性記憶装置２００のホスト情報管理部２２３に記録される（図４のステップＳ４０２、Ｓ４０４、Ｓ４０６）。
【００４３】
（ステップＳ８０３）
データ処理部６３０は、不揮発性記憶装置２００にアクセスし、ユーザアクセス可能記憶領域２３１に記録された変更対象アプリケーション規格のフォルダにあるインデックスファイル７００中の更新処理中フラグを０（無効）から１（有効）に変更する。
このとき、インデックスファイル７００は、ユーザアクセス可能記憶領域２３１に存在するため、このフラグの変更は、ユーザアクセス可能記憶領域２３１の更新に該当する。そのため、不揮発性記憶装置２００側においては、図５で示した処理シーケンス（ステップＳ５０２、Ｓ５０４、Ｓ５０５、Ｓ５０６の処理）の通り、ステップＳ８０２で不揮発性記憶装置２００に通知したホスト情報更新リストに基づいて、ホスト情報記憶領域２３２内のホスト情報テーブル３０２が更新される。
【００４４】
（ステップＳ８０４）
データ処理部６３０は、撮像部６６０からの映像データを所定のアプリケーション規格に基づいたフォーマットに変換し、ある程度の映像データを蓄積した後、同データを入出力処理部６２０を介して出力する。出力された映像データは、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１内のコンテンツファイル等に記録される。また、既にコンテンツファイルが記録されている場合は追記を行う。
（ステップＳ８０５）
データ処理部６３０は、ステップＳ８０４で不揮発性記憶装置２００に記録した映像データに関するインデックスデータを、データ処理装置１００内のインデックス情報格納領域６３２に蓄積する。
【００４５】
（ステップＳ８０６）
データ処理部６３０は、ユーザがユーザ入力部６４０を介して撮影終了の指示を出していれば、ステップＳ８０７に処理を進む。撮影終了の指示を出していなければ、ステップＳ８０４に戻って映像データの記録を継続する。
（ステップＳ８０７）
データ処理部６３０は、撮影が終了すると、データ処理装置１００内のインデックス情報格納領域６３２に格納されている前記インデックスデータに基づき、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１における変更対象アプリケーション規格のインデックスファイル７００（図７）を更新する。
（ステップＳ８０８）
データ処理部６３０は、ユーザアクセス可能記憶領域２３１における変更対象となっているアプリケーション規格のインデックスファイル内の更新中フラグを１（有効）から０（無効）に変更し、処理を終了する。
【００４６】
図９Ａ及び９Ｂは、データ処理装置１００に不揮発性記憶装置２００を装着し、データの書き込み中に電源遮断が生じた場合、電源回復後の復旧処理を示すフローチャートである。
（ステップＳ９０１）
データ処理部６３０は、入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００にアクセスし、不揮発性記憶装置２００のホスト情報管理部２２３を介してホスト情報記憶領域２３２に格納されているホスト情報テーブル３０２の値を読み出す。
（ステップＳ９０２）
データ処理部６３０は、ステップＳ９０１で読み込んだホスト情報テーブル３０２内に記録されている読み出し対象のアプリケーションＩＤに対するデバイスＩＤの値を確認する。デバイスＩＤの値が０の場合、ステップＳ９０３に処理を進める。０以外の場合はステップＳ９０７に処理を進める。
【００４７】
（ステップＳ９０３）
デバイスＩＤの値が無効値を示す０の場合、当該データ処理装置１００からホスト情報更新リストが通知されていないか、或いはホスト情報テーブルがいったん初期化された（図５のステップＳ５０７）ことになる。これは、不揮発性記憶装置２００は、データ処理装置１００に装着される前にデータ処理装置１００以外であって、読み出し対象のアプリケーション規格に対応していない機器によって更新が加えられた可能性を意味する。
そのため、インデックスファイルとコンテンツファイルの間の整合性が維持されていることは保証されていない状態である。例えば、アプリケーション規格に対応していないデータ処理装置がインデックスファイル機能を有しないことがある。このような装置は、コンテンツデータの書き込みや消去を行っても、インデックスファイルは更新しないため、インデックスファイルとコンテンツファイル間に不整合が生じる。このようなことを防ぐため、データ処理部６３０は、インデックスファイルと全てのコンテンツファイルの読み込みを行い整合性の判断を行う。
【００４８】
不揮発性メモリ２３０内のインデックスファイル７００とコンテンツファイルとが整合しているかどうかを判断するには、インデックスファイル７００に記録されている各項目のデータ（図７のインデックスファイル７００やコンテンツの情報）とコンテンツファイルの実際の内容とが個々に適合しているか否かの判断を行う必要がある。そのため、データ処理装置１００は、個々のコンテンツファイルのデータ等を解析し、それぞれインデックスファイルの各項目のデータと実際のコンテンツファイルの内容とを比較する。
（ステップＳ９０４）
データ処理部６３０は、ステップＳ９０３で整合性を確認した結果、不整合が発生している場合はステップＳ９０５に処理を進める。不整合がなければ、処理を終了する。
（ステップＳ９０５）
データ処理部６３０は、不整合がある場合、ホスト情報更新リストを入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００に通知する。不揮発性記憶装置２００側では、通知されたホスト情報更新リストはホスト情報管理部２２３に記録される（図４のステップＳ４０６）。
【００４９】
（ステップＳ９０６）
データ処理部６３０は、不揮発性記憶装置２００にアクセスし、ステップＳ９０３で確認したインデックスファイル７００と全てのコンテンツファイルとの整合性情報に従って、整合性を取れるように、インデックスファイル７００と全てのコンテンツファイルとを修正する。インデックスファイル７００とコンテンツファイルとを修正する前に、インデックスファイル７００の更新処理中フラグを０から１に変更し、修正が完了すると、更新処理中フラグを１から０に変更する。
なお、整合性をとるとは、例えば、コンテンツファイルが削除されており、インデックスファイル７００に削除されたコンテンツファイルに関する情報が残存している場合、インデックスファイル７００から当該情報を削除する。或いは、インデックスファイル７００に情報が記録されていないコンテンツファイルが存在する場合、コンテンツファイルの内容を確認し、コンテンツファイルの情報をインデックスファイル７００に登録するか、不明なコンテンツファイルとして削除すること等である。
【００５０】
（ステップＳ９０７）
データ処理部６３０は、ステップＳ９０２で読み込んだデバイスＩＤの値が０以外の場合、インデックスファイル７００を読み込む。この場合、データ処理装置１００に装着される前にアプリケーション規格に対応しているデータ処理装置によって更新されたこと、すなわち、インデックスファイル７００に書き込まれている情報は正しことを意味する。
（ステップＳ９０８）
ステップＳ９０７で読み込んだインデックスファイル７００内の更新処理中フラグが０の場合、不揮発性記憶装置２００の読み出し対象のアプリケーション規格のインデックスファイル７００と全てのコンテンツファイルは整合性が保たれた状態であると判断し、処理を終了する。
【００５１】
（ステップＳ９０９）
データ処理部６３０は、ステップＳ９０１で読み込んだホスト情報テーブル３０２内に記録されている読み出し対象のアプリケーションＩＤに対するデバイスＩＤの値を確認する。そのデバイスＩＤの値が、当該データ処理装置１００のデバイスＩＤ格納部６７０に格納されている値と同じ（すなわち、当該データ処理装置１００が以前に当該アプリケーションを操作していた装置である）場合、ステップＳ９１０に処理を進む。そのデバイスＩＤの値がデバイスＩＤ格納部６７０に格納されている値と異なる場合、ステップＳ９１４に処理を進める。
（ステップＳ９１０）
データ処理部６３０は、入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００の媒体固有ＩＤを読み込む。
【００５２】
（ステップＳ９１１）
データ処理部６３０は、ステップＳ９１０で読み込んだ媒体固有ＩＤと媒体固有ＩＤ格納領域６３１に格納されている値を比較し、直前に記録処理を行った不揮発性記憶装置と同じかどうかを判断する。直前に記録処理を行った不揮発性記憶装置と同じであれば、ステップＳ９１２に処理を進める。異なっていればステップＳ９１４に処理を進める。
なお、媒体固有ＩＤ格納領域６３１には、図８のフローチャートのステップＳ８０１において読み込んだ媒体（不揮発性記憶装置）のＩＤが格納されている。
（ステップＳ９１２）
本ステップに到達することは、データ処理装置１００が更新処理中に、不揮発性記憶装置２００が抜けて再度装着される場合や、電源が遮断された場合等なんらかの事由により、更新処理が途中で中断している状態を意味する。そのため、データ処理部６３０は、ホスト情報更新リストを入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００に通知する。
【００５３】
（ステップＳ９１３）
データ処理部６３０は、インデックス情報格納領域６３２（キャッシュメモリ）に残っているインデックスデータを元に不揮発性記憶装置２００のインデックスファイル７００を更新し、インデックスファイル７００とコンテンツファイルの整合性を保持する。
（ステップＳ９１４）
本ステップに到達することは、不揮発性記憶装置２００が更新処理中に抜けて再度装着される等なんらかの事由により、更新処理が途中で中断している状態になっており、且つ、データ処理部６３０内のインデックス情報格納領域６３２に格納されているインデックスデータが、コンテンツファイルとの整合性がとれていないため、利用できない状態になっている。そのため、データ処理部６３０は、ホスト情報更新リストを入出力処理部６２０を経由してスロット６１０に装着された不揮発性記憶装置２００に通知する。
【００５４】
（ステップＳ９１５）
データ処理部６３０は、不揮発性記憶装置２００のインデックスファイル７００内のインデックス情報がないコンテンツファイル（テンポラリデータ）を削除することでインデックス情報とコンテンツファイルの整合性を保持する。なお、別の方法としてコンテンツファイルを復元できる場合、或いは残っているコンテンツファイルのデータで復旧できる場合等は、コンテンツファイルを削除せずにインデックスファイルに当該コンテンツファイルの情報を追加してもよい。
（ステップＳ９１６）
データ処理部６３０は、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１における読み出し対象アプリケーション規格のインデックスファイル内の更新中フラグを１から０に変更する。
【００５５】
上記の電源起動時の動作シーケンスが完了した後、データ処理装置１００は、ユーザ入力部６４０で受取ったユーザの入力をトリガにして、不揮発性記憶装置２００に格納されているデータの処理を実施する。ユーザ入力部６４０が存在せず、データ処理部６３０に格納されたソフトウェアが自動的に不揮発性記憶装置２００に格納されているデータの処理を開始してもよい。また、各動作シーケンスにおいて、表示部６５０はその進行状況や動作結果をユーザに表示してもよい。
＜１．４：実施形態の効果＞
以上のように、本実施形態によるデータ処理装置１００は、不揮発性記憶装置２００へのアクセスを行う際に、不揮発性記憶装置２００のユーザアクセス可能記憶領域２３１以外のホスト情報記憶領域２３２に記録されたホスト情報テーブルの値を利用する。これにより、不揮発性記憶装置２００が装着された際に不揮発性記憶装置２００のデータがどのデータ処理装置によってどのアプリケーション規格のデータを更新したかを簡単に判別できる。そのため、データ処理装置１００の電源投入時に常に整合性を確認する必要がなくなり、整合性の判断処理が不要な場合は処理の高速化が可能となる。
【００５６】
更に、不揮発性記憶装置２００のインデックスファイル内の更新処理中フラグと組み合わせることで、不用意な不揮発性記憶装置２００の挿抜が行われた場合等に、装着された不揮発性記憶装置２００のデータの更新状況を簡単に判別することができる。これにより、データ処理装置１００内に残っているインデックス情報を元に高速にデータの復旧処理が可能となる。
なお、本発明について、上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。以下のような場合も本発明に含まれる。
[２  変形例]
（１）
上記実施形態では、図４の動作シーケンスの説明において、ステップＳ４０６の処理で、データ処理装置１００から不揮発性記憶装置２００に送られる通知内容をホスト情報更新リスト（図３（ｂ））としたが、デバイスＩＤとアプリケーションＩＤを別々に送ってもよい。
【００５７】
（２）
上記実施形態では、不揮発性記憶装置２００内のホスト情報記憶領域２３２の中で、どのアプリケーション規格に基づいて記録されるかを、数字を用いたアプリケーションＩＤを用いて示したが、フォルダ名等異なるルールに基づいて書かれた識別情報を用いてもよい。要するに、アプリケーションを識別できるものであれば、その表現形態を特定するものではない。
（３）
上記実施形態では、不揮発性記憶装置２００は半導体メモリとしたが、着脱可能かつ読み書き可能な不揮発性記憶装置であれば、本発明の効果は有効である。半導体メモリ以外の不揮発性記憶装置として、例えば、着脱可能なＨＤＤでもよい。また、ＤＶＤやＢＤ等の光記憶装置のようにドライブと記憶媒体を分離しているような場合においても、上記実施形態のメモリコントローラ部をドライブ側に設置し、不揮発性メモリを記憶媒体側に設置することにより、本発明は有効に実施できる。
【００５８】
（４）
上記実施形態では、本発明のポイントを明確に説明するために、データ処理装置１００は１つのスロット６１０を備えているものとしたが、スロットは複数あってもよい。その場合、不揮発性記憶装置２００は、スロット数と同数の媒体固有ＩＤ記憶領域とインデックスデータ記憶領域を備えることができる。
（５）
上記実施形態では、更新処理中フラグをインデックスファイル内に設けたが、独立したファイルに設けてもよい。更新開始コマンドと更新終了コマンドを用いて、ホスト情報記憶領域２３２に記憶領域を設けてもよい。また、その際にアプリケーションＩＤ毎に格納するようにしてもよい。
【００５９】
（６）
上記実施形態では、データ処理装置１００の電源起動時において、データ処理部６３０は媒体固有ＩＤ格納領域６３１、及びインデックス情報格納領域６３２の値をクリアしているため、データ処理装置１００の電源がＯＦＦされるとキャッシュ情報は消去される。しかし、データ処理装置１００の電源がＯＦＦされてもキャッシュ情報が消去されないように、媒体固有ＩＤ格納領域６３１、及びインデックス情報格納領域６３２の値を不揮発性メモリに保持するようにしても良い。また、逆にインデックス情報を強制的にリセットする手段を備えていても良い。
（７）
上記実施形態では、デバイスＩＤは製造時に割り振るものとしたが、不揮発性記憶装置２００を更新するまでに設定できればよい。例えば、デバイスＩＤを一意に割り振るサーバからネットワーク経由で送られるＩＤを用いてもよい。
【００６０】
（８）
上記実施形態では、データ処理装置１００が、不揮発性記憶装置２００にホスト情報リストを通知し、そのままホスト情報管理部２２３に保持する例を記述したが、不揮発性記憶装置２００にホスト情報リストを通知する際に、暗号方式を用いて通知してもよい。例えば、アプリケーション毎にしか知りえない鍵を、不揮発性記憶装置２００の製造段階でホスト情報記憶領域２３２内に記録しておき、上記鍵で暗号化した上でデータ処理装置１００が不揮発性記憶装置２００に通知してもよい。このようにすることで、鍵を知りえる立場のデータ処理装置１００の製造者のみがホスト情報リストを通知することができるため、ホスト情報テーブル３０２の信頼性を増すことができる。
（９）
上記実施形態においては、コンテンツファイルやインデックスファイルの一部もしくは全体が暗号化されていてもよい。
【００６１】
（１０）
上記実施形態では、同一の不揮発性メモリ２３０の内部にユーザアクセス可能記憶領域２３１とホスト情報記憶領域２３２の２つの領域を設けて説明したが、ホスト情報記憶領域２３２が不揮発性メモリ２３０の内部になくてもよい。２つの不揮発性メモリ２３０をメモリコントローラに接続し、一方にユーザアクセス可能領域を設け、もう一方にホスト情報記憶領域を設けてもよい。２つの不揮発性メモリを搭載すると、より高速な処理を実現することができる。或いは、メモリコントローラの内部に不揮発性の記憶領域を設け、前記メモリコントローラの内部の不揮発性の記憶領域にホスト情報記憶領域を設けてもよい。不揮発性記憶装置２００の電源が遮断されたり、データ処理装置１００から着脱されたりしても、ホスト情報記憶領域の情報が消去されなければ、あらゆるバリエーションが可能である。
【産業上の利用可能性】
【００６２】
本発明は、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、或いは携帯電話等において有用である。
【符号の説明】
【００６３】
１００  データ処理装置
２００  不揮発性記憶装置
２１０  ホストインターフェイス部
２２０  メモリコントローラ
２２１  コマンド処理部
２２２  媒体固有ＩＤ格納部
２２３  ホスト情報管理部
２３０  不揮発性メモリ
２３１  ユーザアクセス可能記憶領域
２３２  ホスト情報記憶領域
３０１  ホスト情報
３０２  ホスト情報テーブル
３０３  ホスト情報更新リスト
６１０  スロット
６２０  入出力処理部
６３０  データ処理部
６３１  媒体固有ＩＤ格納領域
６３２  インデックス情報格納領域
６４０  ユーザ入力部
６５０  表示部
６６０  撮像部
６７０  デバイスＩＤ格納部
７００  インデックスファイル
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010001602.tif 000013
【図２】
2010001602.tif 000014
【図３】
2010001602.tif 000015
【図４】
2010001602.tif 000016
【図５】
2010001602.tif 000017
【図６】
2010001602.tif 000018
【図７】
2010001602.tif 000019
【図８】
2010001602.tif 000020
【図９Ａ】
2010001602.tif 000021
【図９Ｂ】
2010001602.tif 000022
【国際調査報告】
2010001602.tif 000023
2010001602.tif 000024
2010001602.tif 000025
2010001602.tif 000026