(57)【要約】【課題】連続するコンテンツのリアルタイム記録を継続しつつ、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に実施し、かつ電源断等によるデータの内容の不整合を回避可能にする。【解決手段】不揮発性記憶装置１は、キャッシュ領域（ＭＩＣ）のデータを有効化するタイミングとキャッシュ領域のデータを記憶領域に移動するタイミングをアクセス装置２から指定可能とする。さらに、移動処理は、所定時間を超えないように分割して実施し、各々の分割処理の開始タイミングもアクセス装置２から指定可能とする。第１キャッシュ領域１２２と第２キャッシュ領域１２３を切り替えることで、移動処理を実施中にキャッシュ書き込みの受付けを可能とする。【選択図】図１
2011133947.tif 000002
【特許請求の範囲】
【請求項１】
アクセス装置と通信することができ、前記アクセス装置からの指示によりデータの読み出しおよび／または書き込みを行う不揮発性記憶装置であって、
データを記憶する不揮発性メモリと、
前記不揮発性メモリの制御を行うコントローラと、
を備え、
前記不揮発性メモリは、前記アクセス装置からのデータを格納する記憶領域と、前記記憶領域に書き込むためのデータを一時的に格納するキャッシュ領域と、を含み、
前記メモリコントローラは、
前記アクセス装置からの指示内容を解析する指示内容解析処理を実行し、
前記指示内容解析処理により解析された前記指示内容に従い、
（１）前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理と、
（２）前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理と、
（３）前記キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理と、
を、それぞれ、前記アクセス装置が指定する個別のタイミングで実行する、
不揮発性記憶装置。
【請求項２】
前記メモリコントローラは、
前記アクセス装置からの指示内容が前記キャッシュ書き込み処理を指示する場合であって、既に前記キャッシュ領域に有効データが存在している場合、前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込み、前記キャッシュ領域に既存の有効データと新たに書き込んだ仮有効データとを混在させるように前記キャッシュ書き込み処理を実行する、
請求項１に記載の不揮発性記憶装置。
【請求項３】
前記メモリコントローラは、
前記キャッシュ領域の有効データを前記記憶領域に移動させる前記移動処理を、所定の時間を超えない範囲で分割して実施する分割移動処理により実行するものであり、前記分割移動処理を前記アクセス装置が指定する個別のタイミングで実行する、
請求項１または２に記載の不揮発性記憶装置。
【請求項４】
前記所定の時間は、不揮発性記憶装置に１セクタのデータ書き込みを行う場合に許容される処理時間と同程度以下の時間である、
請求項３に記載の不揮発性記憶装置。
【請求項５】
前記メモリコントローラは、
前記アクセス装置からの指示に基づいて、前記移動処理を分割して実施するか、それとも、分割せずに実施するかを選択することができる、
請求項３または４に記載の不揮発性記憶装置。
【請求項６】
前記メモリコントローラは、
前記分割移動処理を実行している間に、前記アクセス装置から前記キャッシュ書き込み処理の実行を指示された場合、前記分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、前記キャッシュ書き込み処理を実行する、
請求項３から５のいずれかに記載の不揮発性記憶装置。
【請求項７】
前記メモリコントローラは、
前記分割移動処理を実行している間に、前記アクセス装置から有効化処理の実行を指示された場合、前記分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、前記有効化処理を実行する、
請求項３から６のいずれかに記載の不揮発性記憶装置。
【請求項８】
前記メモリコントローラは、
初期化処理において前記キャッシュ領域に格納されている仮有効データを検出した場合、前記キャッシュ領域に格納されている全部または一部の仮有効データを破棄する、
請求項１から７のいずれかに記載の不揮発性記憶装置。
【請求項９】
前記メモリコントローラは、
初期化処理において前記キャッシュ領域に格納されている仮有効データを検出した場合に、前記アクセス装置からの指示に基づき、前記キャッシュ領域に格納されている仮有効データを破棄しない、
請求項１から７のいずれかに記載の不揮発性記憶装置。
【請求項１０】
前記メモリコントローラは、
前記アクセス装置の指示により前記移動処理を開始する場合、前記キャッシュ領域に仮有効データが存在しているならば、前記キャッシュ領域に存在する仮有効データを有効データに変換した後、前記移動処理の実行を開始する、
請求項１から９のいずれかに記載の不揮発性記憶装置。
【請求項１１】
記憶領域とキャッシュ領域とを含む不揮発性記憶装置と通信することができ、前記不揮発性記憶装置へのデータ書き込み及び／またはデータ読み出しを制御するアクセス装置あって、
前記キャッシュ領域に、データを仮有効データとして書き込むデータ書き込み処理と、
前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理と、
前記キャッシュ領域に格納されている有効データを前記記憶領域へ移動させる移動処理と、
を、前記不揮発性記憶装置に対して、それぞれ、個別のタイミングで実行するように指示する、
アクセス装置。
【請求項１２】
ストリームデータの記録中に、前記ストリームデータに関するコンテンツ管理情報を前記キャッシュ領域に書き込み前記データ書き込み処理の実行を、前記不揮発性記憶装置に指示し、
前記コンテンツ管理情報の整合性が確保された時点で、前記キャッシュ領域に書き込んだデータの有効化処理の実行を、前記不揮発性記憶装置に指示し、
前記ストリームデータの記録終了後に、前記キャッシュ領域に書き込んだデータを前記記憶領域に移動させる前記移動処理の実行を、前記不揮発性記憶装置に指示する、
請求項１１に記載のアクセス装置。
【請求項１３】
前記キャッシュ領域に書き込んだデータの前記記憶領域への移動処理を複数の個別移動処理に分割して行う分割移動処理を実行するように、前記不揮発性記憶装置に指示し、各々の前記個別移動処理を実行するタイミングを前記不揮発性記憶装置に指示する、
請求項１１または１２に記載のアクセス装置。
【請求項１４】
前記分割移動処理の開始から終了までの期間に含まれる所定の期間において、前記ストリームデータの記録を実行するように、前記不揮発性記憶装置に指示する、
請求項１３に記載のアクセス装置。
【請求項１５】
前記分割移動処理の開始から終了までの期間に含まれる所定の期間において、前記ストリームデータのコンテンツ管理情報を前記キャッシュ領域に書き込むように、前記不揮発性記憶装置に指示する、
請求項１３または１４に記載のアクセス装置。
【請求項１６】
前記分割移動処理が完了するまでは、新たな移動処理の開始を、前記不揮発性記憶装置に指示しない、
請求項１３から１５のいずれかに記載のアクセス装置。
【請求項１７】
請求項１から１０のいずれかに記載の不揮発性記憶装置と、
請求項１１から１６のいずれかに記載のアクセス装置と、
を備える不揮発性記憶システム。
【請求項１８】
請求項１７に記載の不揮発性記憶システムに用いられるデータ記録方法であって、
前記アクセス装置から指定される所定のタイミングで、前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理ステップと、
前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理ステップと、
前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理ステップと、
を備えるデータ記録方法。
【請求項１９】
請求項１７に記載の不揮発性記憶システムに用いられるデータ記録方法をコンピュータに実行させるためのプログラムであって、
前記アクセス装置から指定される所定のタイミングで、前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理ステップと、
前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理ステップと、
前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理ステップと、
を備えるデータ記録方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを制御するメモリコントローラと、不揮発性メモリ及びメモリコントローラを備えた半導体メモリカード等の不揮発性記憶装置と、不揮発性記憶装置にアクセスするアクセス装置、及びこれらを含む不揮発性記憶システムに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して高価格なものではある。しかし、半導体メモリカードは、小型・軽量・耐震性・取り扱いの簡便さ等のメリットが大きいので、デジタルスチルカメラや携帯電話など、ポータブル機器の記録媒体としてその需要が高まっており、最近では、民生用動画記録機器や放送局向けのプロ用動画記録機器の記録媒体としても利用されるようになってきている。さらに、最近では、ポータブル機器だけではなくデジタルテレビやＤＶＤレコーダ等の据え置き機器にも半導体メモリカード用のスロットが標準搭載されており、半導体メモリカードの需要はさらに高まっている。
半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリ（主にＮＡＮＤ型）を備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等に代表されるアクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
【０００３】
ところで、アクセス装置は、半導体メモリカードの記憶領域の管理をＦＡＴファイルシステムなどのファイルシステムによって行う。ファイルシステムを用いることにより、半導体メモリカードには、ＡＶコンテンツなどのファイルデータ本体に加え、ファイルシステムの管理情報であるディレクトリエントリやＦＡＴが格納される。
アクセス装置がハイビジョン動画のような大容量のコンテンツファイルを半導体メモリカードに対してリアルタイムに格納する場合（一定の書き込み速度を保証したデータ書き込み処理を行う場合）、電源断などの不測の事態が発生したときには、できるだけ直近のデータまでを有効にすることが望まれる。通常、半導体メモリカードに書き込まれたファイルデータは、ディレクトリエントリ及びＦＡＴが適切に更新された後に、ファイルシステムにおける有効なデータとして認識される。従って、アクセス装置が、一定量のファイルデータを半導体メモリカードに書き込んだ後、ディレクトリエントリおよびＦＡＴを更新するという手順を繰り返しながら、アクセス装置が半導体メモリカードにデータを記録するのが一般的である。
【０００４】
アクセス装置が、映像のビットレートが高いハイビジョン動画を半導体メモリカードに記録する場合、例えば、数秒に１回の割合でディレクトリエントリとＦＡＴを更新する。この場合、ファイルデータ（例えば、ハイビジョン動画のファイルデータ）の記録サイズは、数ＭＢ（メガバイト）程度の比較的大きなサイズとなるが、ディレクトリエントリやＦＡＴは、情報が更新される部分のみを半導体メモリカードに書き込むので、その記録サイズは、５１２バイトから３２ＫＢ（キロバイト）程度の比較的小さなサイズとなる。
フラッシュメモリは、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさは、現在のところ数百ＫＢから数ＭＢ程度であるが年々増大する傾向にある。フラッシュメモリにおいて、小サイズの書き込みを実施する場合、同一物理ブロック内に存在する有効なデータを他の物理ブロックにコピーする「巻き込み退避処理」が発生する。そのため、フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、ディレクトリエントリやＦＡＴなどのファイルシステムの管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
【０００５】
従来、このような問題を解決する方法として、半導体メモリカードにページキャッシュを搭載する方法が提案されている（例えば、特許文献１参照）。
この方法（従来技術）では、特定論理アドレスに対する小サイズのデータ（例えば、ファイルシステムの管理情報）の書き込み処理を、データを一時的に保持するための物理ブロック（ページキャッシュ用物理ブロック（キャッシュブロック））に対して行い管理することで、無駄な巻き込み退避処理の発生を防止し、書き込み処理を高速化することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第WO／２００９／１０７３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術には以下の課題がある。
アクセス装置が複数のコンテンツデータ（例えば、ハイビジョン動画のデータなど）を半導体メモリカード等の不揮発性記憶装置に記録する場合、各コンテンツデータは、個別のファイルとして記録されるのが一般的である。このように記録するのは、記録されたコンテンツデータの再生や編集などの管理が容易となるためである。さらに、各コンテンツデータに付随する様々な情報（例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など）も同様の理由により、各コンテンツデータに関連付けられた別の管理情報ファイル（コンテンツ管理情報ファイル）として、不揮発性記憶装置に記録される場合が多い。
これらのコンテンツデータのディレクトリエントリやＦＡＴの書き込み処理、あるいは、コンテンツ管理情報ファイルのディレクトリエントリやＦＡＴの書き込み処理において、ページキャッシュを利用することで、巻き込み退避処理の発生を抑えることができる。その結果、アクセス装置および不揮発性記憶装置において、高速なデータ書き込む処理を実現することができる。
【０００８】
しかし、例えば、アクセス装置が不揮発性記憶装置に対して、複数のコンテンツデータを連続的にリアルタイムに記録する場合には、記録する各コンテンツデータを切り替えるときにディレクトリエントリやＦＡＴの論理アドレスが変化するので、ページキャッシュの対象領域として設定されている論理アドレスを変更する必要がある。
ページキャッシュとして登録できる論理アドレスには限りがあるので、上記のように複数のコンテンツデータを連続的にリアルタイムに記録する場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させなければならない場合が発生する。
この移動処理は、上記で説明した巻き込み退避処理を含むため、非常に長い時間を要する。具体的な時間は、使用するフラッシュメモリの品種や半導体メモリカードのアーキテクチャにも依存するが、例えば、１つの論理アドレスのデータを移動するのに２００ミリ秒〜３００ミリ秒という時間がかかる。記録する各コンテンツデータの切り替えには、数十個程度の論理アドレスの変更が伴う場合があり、累積すると１０秒、２０秒といったオーダーの時間が必要になる。
【０００９】
その結果、次のコンテンツデータの記録のための準備期間が長くなり、次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足する可能性が高くなる。次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足すると、アクセス装置が不揮発性記憶装置に対して記録しようとしているコンテンツ（例えば、ハイビジョン動画）の一部のデータが欠落するため望ましくない。このようなデータの欠落を防止するためにアクセス装置に大量のバッファメモリを搭載するとコスト高につながるため、アクセス装置に大量のバッファメモリを搭載することも望ましくない。
また、各コンテンツデータの切り替えに長い時間を要するため、コンテンツ管理情報ファイル等のデータの書込み中に電源断や不揮発性記憶装置の抜去が発生する可能性が高まる。これに伴い、コンテンツデータファイルやコンテンツ管理情報ファイルにおける内容の不整合が発生する可能性が高まることも望ましくない。
【００１０】
本発明は、上記課題を鑑みてなされたものであり、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことが可能であり、かつ、電源断等によるデータの内容の不整合を回避可能な、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ記録方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の発明は、アクセス装置と通信することができ、アクセス装置からの指示によりデータの読み出しおよび／または書き込みを行う不揮発性記憶装置であって、不揮発性メモリと、コントローラと、を備える。
不揮発性メモリは、データを記憶する。コントローラは、不揮発性メモリの制御を行う。
不揮発性メモリは、アクセス装置からのデータを格納する記憶領域と、記憶領域に書き込むためのデータを一時的に格納するキャッシュ領域と、を含む。
メモリコントローラは、アクセス装置からの指示内容（例えば、コマンドの内容）を解析する指示内容解析処理（例えば、コマンド解析処理）を実行し（実行することができ）、当該指示内容解析処理により解析された指示内容に従い、以下の処理を、それぞれ、アクセス装置が指定する個別のタイミングで実行する。
（１）アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理。
（２）キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理。
（３）キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理。
【００１２】
この不揮発性記憶装置では、不揮発性メモリ上に設けられたキャッシュ領域に格納する（書き込むデータ）を、「有効データ」および「仮有効データ」として管理し、アクセス装置から指示される所定のタイミングで有効化処理を行い、アクセス装置から指示される所定のタイミングで有効化されたデータ（有効データ）を記録領域に移動させることができる。つまり、この不揮発性記憶装置では、有効データのみを記憶領域に移動させるので、例えば、アクセス装置により整合性の確認がとれたデータを有効データとし、その有効データのみを記憶領域に移動させることができる。さらに、キャッシュ書き込み処理、有効化処理、および、移動処理の実行タイミングを、アクセス装置が指示できるので、キャッシュ領域を効率良く（こまめに）管理することができる。
したがって、この不揮発性記憶装置では、例えば、キャッシュ領域を用いて、ＡＶコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、こまめに更新する（書き込む）ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。その結果、この不揮発性記憶装置では、記録処理中に不測の事態（不揮発性記憶装置の電源断や抜去等）が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置に保持させることができる。
【００１３】
第２の発明は、第１の発明であって、メモリコントローラは、アクセス装置からの指示内容がキャッシュ書き込み処理を指示する場合であって、既にキャッシュ領域に「有効データ」が存在している場合、アクセス装置からのデータをキャッシュ領域に「仮有効データ」として書き込み、キャッシュ領域に既存の「有効データ」と新たに書き込んだ「仮有効データ」とを混在させるようにキャッシュ書き込み処理を実行する。
この不揮発性記憶装置では、キャッシュ領域に「有効データ」と「仮有効データ」とが混在させることができる。これにより、アクセス装置が、例えば、コンテンツファイルのデータと、そのコンテンツファイルに関連するコンテンツ管理情報ファイルのデータとの整合性を確認するまで、整合性が確認されていないデータを、キャッシュ領域に「仮有効データ」として保持させることができる。
【００１４】
第３の発明は、第１または第２の発明であって、メモリコントローラは、キャッシュ領域の有効データを記憶領域に移動させる移動処理を、所定の時間を超えない範囲で分割して実施する分割移動処理により実行するものであり、分割移動処理をアクセス装置が指定する個別のタイミングで実行する。
この不揮発性記憶装置では、アクセス装置からの指示に従い、分割処理を、所定の期間において、分割して実行する。したがって、この不揮発性記憶装置では、所定の期間内において、データの記憶領域への書き込み処理、データのキャッシュ領域への書き込み処理、データ（有効データ）の移動処理を、時分割で行うことができる。
例えば、この不揮発性記憶装置において、所定の期間Ｔ１〜Ｔ２において、２つの番組ＰＲＧ１、ＰＲＧ２を連続して記録する場合、ＰＲＧ２のストリームデータの記憶領域への書き込み処理「Ｓ２」と、ＰＲＧ２のストリームデータのコンテンツ管理情報ファイルデータのキャッシュ領域への書き込み処理「Ｍ２」と、ＰＲＧ１のコンテンツ管理情報ファイルデータの移動処理「ｍ１」（このｍ１は、所定の期間Ｔ（期間Ｔは、所定の期間Ｔ１〜Ｔ２よりも短い期間である。）だけ実行される。）とを、所定の期間Ｔ１〜Ｔ２において、時分割で行うことができる。
【００１５】
このように、不揮発性記憶装置では、例えば、複数のＡＶコンテンツを連続的に記録する場合、記録対象のＡＶコンテンツを切り替えるときにおいても、時間のかかるキャッシュ領域に格納されている有効データの移動処理を分割して実施することが可能であるため、次のＡＶコンテンツの記録が長時間待たされることがない。
第４の発明は、第３の発明であって、所定の時間は、不揮発性記憶装置に１セクタのデータ書き込みを行う場合に許容される処理時間と同程度以下の時間である。
なお、所定の時間は、不揮発性記憶装置に１セクタのデータ書き込みを行う場合に許容される処理時間ｔ１と同一時間にすることが好ましいが、処理時間ｔ１と同程度の時間（例えば、ｔ１±２０％の時間）や、処理時間ｔ１と同程度の時間（例えば、ｔ１±２０％の時間）以下の所定の時間であってもよい。
【００１６】
第５の発明は、第３または第４の発明であって、アクセス装置からの指示に基づいて、移動処理を分割して実施するか、それとも、分割せずに実施するかを選択することができる。
第６の発明は、第３から第５のいずれかの発明であって、メモリコントローラは、分割移動処理を実行している間に、アクセス装置からキャッシュ書き込み処理の実行を指示された場合、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、キャッシュ書き込み処理を実行する。
これにより、この不揮発性記憶装置では、アクセス装置からのキャッシュ書き込み処理の実行の指示に従い、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、キャッシュ書き込み処理を実行することができる。
【００１７】
第７の発明は、第３から第６のいずれかの発明であって、メモリコントローラは、分割移動処理を実行している間に、アクセス装置から有効化処理の実行を指示された場合、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、有効化処理を実行する。
これにより、この不揮発性記憶装置では、アクセス装置からの有効化処理の実行の指示に従い、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、有効化処理を実行することができる。
第８の発明は、第１から第７のいずれかの発明であって、メモリコントローラは、初期化処理においてキャッシュ領域に格納されている仮有効データを検出した場合、キャッシュ領域に格納されている全部または一部の仮有効データを破棄する。
【００１８】
これにより、この不揮発性記憶装置では、所定の状態から、データの記憶領域への書き込み処理、データのキャッシュ領域への書き込み処理、データ（有効データ）の移動処理を、実行することができる。
なお、初期化処理においてキャッシュ領域に格納されている仮有効データを検出した場合、キャッシュ領域に格納されている全部の仮有効データを破棄し、キャッシュ領域に仮状態が全くない状態にすることが好ましいが、一部の仮有効データを破棄するようにしてもよい。
第９の発明は、第１から第７のいずれかの発明であって、メモリコントローラは、初期化処理においてキャッシュ領域に格納されている仮有効データを検出した場合に、アクセス装置からの指示に基づき、キャッシュ領域に格納されている仮有効データを破棄しない。
【００１９】
これにより、不揮発性記憶装置では、仮有効データを保持した状態から、データの記憶領域への書き込み処理、データのキャッシュ領域への書き込み処理、データ（有効データ）の移動処理を、実行することができる。
第１０の発明は、第１から第９のいずれかの発明であって、メモリコントローラは、アクセス装置の指示により移動処理を開始する場合、キャッシュ領域に仮有効データが存在しているならば、キャッシュ領域に存在する仮有効データを有効データに変換した後、移動処理の実行を開始する。
これにより、キャッシュ領域のデータが全て有効データである状態から、移動処理を開始することができる。
第１１の発明は、記憶領域とキャッシュ領域とを含む不揮発性記憶装置と通信することができ、不揮発性記憶装置へのデータ書き込み及び／またはデータ読み出しを制御するアクセス装置ある。このアクセス装置は、以下の処理を、それぞれ、個別のタイミングで実行するように指示する。
（１）キャッシュ領域に、データを仮有効データとして書き込むデータ書き込み処理。
（２）キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理。
（３）キャッシュ領域に格納されている有効データを前記記憶領域へ移動させる移動処理。
【００２０】
このアクセス装置では、不揮発性メモリ上に設けられたキャッシュ領域に格納する（書き込むデータ）を、「有効データ」および「仮有効データ」として管理する不揮発性記憶装置に対して、所定のタイミングで有効化処理の指示を行い、また、不揮発性記憶装置に対して、所定のタイミングで有効化されたデータ（有効データ）を記録領域に移動させることができる。つまり、このアクセス装置は、不揮発性記憶装置に対して、所定のタイミングで、有効データのみを記憶領域に移動させるので、例えば、アクセス装置が整合性の確認をしたデータを有効データとし、その有効データのみを記憶領域に移動させることができる。さらに、このアクセス装置は、不揮発性記憶装置に対して、キャッシュ書き込み処理、有効化処理、および、移動処理の実行タイミングを指示できるので、不揮発性記憶装置のキャッシュ領域を効率良く（こまめに）管理することができる。
【００２１】
したがって、このアクセス装置では、例えば、キャッシュ領域を用いて、ＡＶコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、不揮発性記憶装置に対して、こまめに更新させる（書き込ませる）ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。その結果、このアクセス装置では、記録処理中に不測の事態（不揮発性記憶装置の電源断や抜去等）が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置に保持させることができる。
第１２の発明は、第１１の発明であって、
（１）ストリームデータの記録中に、ストリームデータに関するコンテンツ管理情報をキャッシュ領域に書き込みデータ書き込み処理の実行を、不揮発性記憶装置に指示し、
（２）コンテンツ管理情報の整合性が確保された時点で、キャッシュ領域に書き込んだデータの有効化処理の実行を、不揮発性記憶装置に指示し、
（３）ストリームデータの記録終了後に、キャッシュ領域に書き込んだデータを記憶領域に移動させる移動処理の実行を、不揮発性記憶装置に指示する。
【００２２】
このアクセス装置では、ストリームデータの記録を行いながら、適宜、ストリームデータと、そのストリームデータに関するコンテンツ管理情報との整合性が確保された時点で、適宜、不揮発性記憶装置に対して、キャッシュ領域に書き込んだデータの有効化処理を実行させることができる。そして、このアクセス装置は、不揮発性記憶装置に対して、ストリームデータの記録終了後に、キャッシュ領域に書き込んだデータを記憶領域に移動させる移動処理を実行させる。
これにより、このアクセス装置では、ストリームデータとそのストリームデータに関するコンテンツ管理情報との整合性をこまめに確認しながら、効率良く、ストリームデータとそのストリームデータに関するコンテンツ管理情報とを不揮発性記憶装置に記録させることができる。
【００２３】
第１３の発明は、第１１または第１２の発明であって、キャッシュ領域に書き込んだデータの記憶領域への移動処理を複数の個別移動処理に分割して行う分割移動処理を実行するように、不揮発性記憶装置に指示し、各々の個別移動処理を実行するタイミングを不揮発性記憶装置に指示する。
これにより、このアクセス装置では、不揮発性記憶装置に対して、分割移動処理を実行させることができる。さらに、このアクセス装置は、不揮発性記憶装置に対して、分割移動処理を構成する複数の個別移動処理のそれぞれの実行開始タイミングを指示することができる。
例えば、分割移動処理が、個別移動処理ｍ１（１）〜ｍ１（Ｎ）（Ｎは、２以上の自然数）から構成される場合、アクセス装置は、個別移動処理ｍ１（ｋ）（１≦ｋ≦Ｎ）の処理開始タイミングを、不揮発性記憶装置に対して、指示することができる。
【００２４】
第１４の発明は、第１３の発明であって、分割移動処理の開始から終了までの期間に含まれる所定の期間において、ストリームデータの記録を実行するように、不揮発性記憶装置に指示する。
これにより、アクセス装置は、不揮発性記憶装置に対して、分割移動処理の開始から終了までの期間において、時分割で、ストリームデータの記録処理および分割移動処理を構成する個別移動処理の実行を行うことができる。そして、アクセス装置は、その時分割処理における処理タイミング、処理順序を、不揮発性記憶装置に対して指示することができる。
第１５の発明は、第１３または第１４の発明であって、分割移動処理の開始から終了までの期間に含まれる所定の期間において、ストリームデータのコンテンツ管理情報をキャッシュ領域に書き込むように、不揮発性記憶装置に指示する。
【００２５】
これにより、アクセス装置は、不揮発性記憶装置に対して、分割移動処理の開始から終了までの期間において、時分割で、ストリームデータのコンテンツ管理情報をキャッシュ領域に書き込む処理および分割移動処理を構成する個別移動処理の実行を行うことができる。そして、アクセス装置は、その時分割処理における処理タイミング、処理順序を、不揮発性記憶装置に対して指示することができる。
第１６の発明は、第１３から第１５のいずれかの発明であって、分割移動処理が完了するまでは、新たな移動処理の開始を、不揮発性記憶装置に指示しない。
これにより、分割移動処理が完了するまで、新たな移動処理が開始されることがないということを保証することができる。
第１７の発明は、第１から第１０のいずれかの発明である不揮発性記憶装置と、第１１から第１６のいずれかの発明であるアクセス装置とを備える不揮発性記憶システムである。
【００２６】
第１８の発明は、第１７の発明である不揮発性記憶システムに用いられるデータ記録方法であって、キャッシュ書き込み処理ステップと、有効化処理ステップと、移動処理ステップと、を備える。
キャッシュ書き込み処理ステップでは、アクセス装置から指定される所定のタイミングで、アクセス装置からのデータをキャッシュ領域に仮有効データとして書き込む。有効化処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている仮有効データを一括して有効データに変換する。移動処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている有効データを記憶領域に移動させる。
このデータ記録方法では、不揮発性メモリ上に設けられたキャッシュ領域に格納する（書き込むデータ）を、「有効データ」および「仮有効データ」として管理する不揮発性記憶装置に対して、アクセス装置から指示される所定のタイミングで有効化処理を行い、アクセス装置から指示される所定のタイミングで有効化されたデータ（有効データ）を記録領域に移動させることができる。つまり、このデータ記録方法では、有効データのみを記憶領域に移動させるので、例えば、アクセス装置により整合性の確認がとれたデータを有効データとし、その有効データのみを記憶領域に移動させることができる。さらに、キャッシュ書き込み処理、有効化処理、および、移動処理の実行タイミングを、アクセス装置が指示できるので、キャッシュ領域を効率良く（こまめに）管理することができる。
【００２７】
したがって、このデータ記録方法では、例えば、キャッシュ領域を用いて、ＡＶコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、こまめに更新する（書き込む）ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。その結果、このデータ記録方法では、記録処理中に不測の事態（不揮発性記憶装置の電源断や抜去等）が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置に保持させることができる。
第１９の発明は、第１７の発明である不揮発性記憶システムに用いられるデータ記録方法であって、キャッシュ書き込み処理ステップと、有効化処理ステップと、移動処理ステップと、を備えるデータ記録方法をコンピュータに実行させるためのプログラムである。
【００２８】
キャッシュ書き込み処理ステップでは、アクセス装置から指定される所定のタイミングで、アクセス装置からのデータをキャッシュ領域に仮有効データとして書き込む。有効化処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている仮有効データを一括して有効データに変換する。移動処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている有効データを記憶領域に移動させる。
これにより、第１８の発明と同様の効果を奏するコンピュータに実行させるためのプログラムを実現することができる。
【発明の効果】
【００２９】
本発明によれば、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことが可能であり、かつ、電源断等によるデータの内容の不整合を回避可能な、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ記録方法、プログラムを実現することができる。
【図面の簡単な説明】
【００３０】
【図１】第１実施形態における不揮発性記憶システムを示すブロック図
【図２】第１実施形態における不揮発性メモリの構成の一例を示した説明図
【図３】第１実施形態における各ＭＩＣの状態名と取りうる格納データの状態の対応を示す図
【図４】第１実施形態におけるＭＩＣ操作コマンドとコマンド付随する主なパラメータの種類を示す図
【図５】第１実施形態におけるＭＩＣの状態とＭＩＣ操作コマンドによる状態遷移を示す図
【図６】第１実施形態におけるＭＩＣ管理テーブルの構成の一例を示した説明図
【図７】第１実施形態における不揮発性記憶装置１の初期化コマンド処理の手順を示すフローチャート
【図８】第１実施形態における不揮発性記憶装置１のＭＩＣ＿ＷＲＩＴＥコマンド処理の手順を示すフローチャート
【図９】第１実施形態における不揮発性記憶装置１のＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド処理の手順を示すフローチャート
【図１０】第１実施形態における不揮発性記憶装置１のＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンド処理の手順を示すフローチャート
【図１１】第１実施形態における不揮発性記憶装置１のＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンド処理の手順を示すフローチャート
【図１２】第１実施形態における不揮発性記憶装置１のＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンド処理の手順を示すフローチャート
【図１３】第１実施形態における不揮発性記憶装置１の通常のＷｒｉｔｅコマンド処理の手順を示すフローチャート
【図１４】第１実施形態における不揮発性記憶装置１のＲｅａｄコマンド処理の手順を示すフローチャート
【図１５】第１実施形態におけるアクセス装置２のアプリケーション部２０１が不揮発性記憶装置１にＡＶコンテンツを格納する際のディレクトリ及びファイル構成の一例を示した説明図
【図１６】従来のアクセス装置がＡＶコンテンツを格納する際の記録の順序の一例を示した説明図
【図１７】従来のアクセス装置および第１実施形態におけるアクセス装置２がストリームファイルを記録する際の書込み順序の一例を示した説明図
【図１８】従来のアクセス装置および第１実施形態におけるアクセス装置２が管理情報ファイルを記録する際の書込み順序の一例を示した説明図
【図１９】第１実施形態におけるアクセス装置２がＡＶコンテンツを格納する際の記録の順序の一例を示した説明図
【図２０Ａ】第１実施形態におけるアクセス装置２のコンテンツ記録処理の手順を示すフローチャート
【図２０Ｂ】第１実施形態におけるアクセス装置２のコンテンツ記録処理の手順を示すフローチャート
【図２１】第１実施形態におけるＭＩＣの書込みデータの状況の一例を時系列的に示した説明図
【図２２】第１実施形態における電源断もしくは抜去直後のＭＩＣが取りうる状態の組合せを示す説明図
【図２３】（ａ）従来のアクセス装置が第１実施形態における不揮発性記憶装置１の初期化を行うシーケンスの一例を示す説明図、（ｂ）第１実施形態におけるアクセス装置が第１実施形態における不揮発性記憶装置１の初期化を行うシーケンスの一例を示す説明図
【図２４】第１実施形態における初期化コマンド処理直後の第１及び第２ＭＩＣが取りうる状態の組合せを示す説明図
【図２５】第１実施形態におけるアクセス装置２のＭＩＣ準備処理の手順を示すフローチャート
【図２６】第１実施形態におけるＭＩＣ準備処理のＳ１００４の開始時点における第１及び第２ＭＩＣが取りうる状態の組合せを示す説明図
【図２７】第１実施形態におけるＭＩＣ準備処理直後の第１及び第２ＭＩＣが取りうる状態の組合せを示す説明図
【図２８】第１実施形態の変形例におけるＭＩＣの状態とＭＩＣ操作コマンドによる状態遷移を示す図
【図２９】第１実施形態の変形例におけるアクセス装置２がＡＶコンテンツを格納する際の記録の順序の一例を示した説明図
【発明を実施するための形態】
【００３１】
以下、本発明の実施形態について、図面を参照しながら説明する。
［第１実施形態］
＜１．１：不揮発性記憶システムの構成＞
図１は、第１実施形態における不揮発性記憶システム１０００の概略構成図である。
図１に示すように、不揮発性記憶システム１０００は、不揮発性記憶装置１と、不揮発性記憶装置１が装着されるアクセス装置２とを含んで構成される。不揮発性記憶装置１と、アクセス装置２とは、バスＢ１により接続されて、双方向に通信を行うことができる。
不揮発性記憶装置１は、例えば、半導体メモリカードである。アクセス装置２は、例えば半導体メモリカードに動画コンテンツを記録するビデオレコーダである。
（１．１．１：アクセス装置の構成）
アクセス装置２は、図１に示すように、ＣＰＵ２１と、ＲＡＭ２２と、ＲＯＭ２３と、不揮発性記憶装置インタフェース（不揮発性記憶装置ＩＦ）２４と、ＡＶ入力部２５と、符号処理部２６と、暗号処理部２７と、を含む。アクセス装置２の各機能部は、図１に示すように、バスＢＡ１を介して接続されている。なお、アクセス装置２は、アクセス装置２の機能部の全部または一部が直接接続される構成であってもよい。
【００３２】
ＣＰＵ２１は、ＲＡＭ２２およびＲＯＭ２３を用いて、アクセス装置２の各種制御を行う。
ＲＡＭ２２は、所定のアドレスに対して、各種データの読み出し／書き込み処理を実行することができる。そして、ＲＡＭ２２に保持されているデータ等は、ＣＰＵ２１やアクセス装置２の各機能部からアクセスすることができる。
ＲＯＭ２３には、アクセス装置２を制御するプログラムが格納されている。このプログラムは、ＲＡＭ２２にロードされ、ＣＰＵ２１により実行される。
不揮発性記憶装置インタフェース部２４は、不揮発性記憶装置１とアクセス装置２との接続部である。制御信号及びデータは、不揮発性記憶装置インタフェース部２４を介して、アクセス装置２と不揮発性記憶装置１との間で、送受信される。
【００３３】
ＡＶ入力部２５は、外部から放送波などのＡＶ入力データ（映像や音声のデータ、及びこれらに関連する制御データ）を受信する。ＡＶ入力部２５により受信されたＡＶ入力データは、ＲＯＭ２３に格納されたプログラムによる処理や、符号処理部２６による符号処理や、暗号処理部２７による暗号処理が施され、コンテンツデータファイル及びコンテンツ管理情報ファイルとして不揮発性記憶装置１に格納される。
符号処理部２６は、ＡＶ入力部２５により受信されたＡＶ入力データに対して、所定の符号方式による符号処理を実行する。
暗号処理部２７は、ＡＶ入力部２５により受信されたＡＶ入力データ（例えば、暗号化が指示されているＡＶ入力データ）、あるいは、符号処理部２６により符号処理が実行されたＡＶ入力データに対して、所定の暗号方式による暗号処理を行う。
【００３４】
ＲＯＭ２３は、図１に示すように、アプリケーション部２０１と、ファイルシステム部２０２と、キャッシュ制御部２０３と、不揮発性記憶装置アクセスドライバ部２０４と、を含む。なお、本実施形態では、アプリケーション部２０１、ファイルシステム部２０２、キャッシュ制御部２０３、および、不揮発性記憶装置アクセスドライバ部２０４は、ＲＯＭ２３上において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、例えば、アプリケーション部２０１、ファイルシステム部２０２、キャッシュ制御部２０３、および、不揮発性記憶装置アクセスドライバ部２０４の全部または一部は、ハードウェアで実現されるものであってもよい。
アプリケーション部２０１は、データの生成や電源の制御などアクセス装置２全体の制御を行う。
【００３５】
ファイルシステム部２０２は、ＦＡＴファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。
キャッシュ制御部２０３は、不揮発性記憶装置１が提供するキャッシュ機能を利用するための制御を行う。本実施形態では、キャッシュ制御部２０３を独立した構成としているが、キャッシュ制御部２０３は、アプリケーション部２０１やファイルシステム部２０２の一部として実装されていてもよい。
不揮発性記憶装置アクセスドライバ部２０４は、ファイルシステム部２０２からデータと共にサイズとアドレスとを渡され、指定されたサイズのデータを不揮発性記憶装置１の記憶領域内における指定された位置に記録するなど、不揮発性記憶装置１に対するコマンドやデータの送受信を制御する。また、不揮発性記憶装置アクセスドライバ部２０４は、キャッシュ制御部２０３からの指示により、キャッシュ機能に関するコマンドやデータの送受信も制御する。
【００３６】
（１．１．２：不揮発性記憶装置の構成）
図１に示すように、不揮発性記憶装置１は、メモリコントローラ１１と、不揮発性メモリ１２と、を含む。メモリコントローラ１１と、不揮発性メモリ１２とは、バスＢ２により接続されており、メモリコントローラ１１は、不揮発性メモリ１２と、バスＢ２を介して、データの送受信（データの読み出し／書き込みや、コマンド送信やレスポンスの受信等）を行うことができる。
メモリコントローラ１１は、不揮発性記憶装置１の制御全般を行うモジュールであり、例えば、ＣＰＵなどを含むＬＳＩとして構成される。不揮発性メモリ１２は、例えば、１つ以上のＮＡＮＤ型フラッシュメモリで構成される。
メモリコントローラ１１は、図１に示すように、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、アクセス装置インタフェース（アクセス装置ＩＦ）１０４と、不揮発性メモリインタフェース（不揮発性メモリＩＦ）１０５と、を含む。メモリコントローラ１１の各機能部は、図１に示すように、バスＢＣ１を介して接続されている。なお、メモリコントローラ１１は、メモリコントローラ１１の機能部の全部または一部が直接接続される構成であってもよい。
【００３７】
アクセス装置インタフェース部１０４は、不揮発性記憶装置１とアクセス装置２との接続部である。不揮発性記憶装置インタフェース部２４同様、制御信号及びデータは、アクセス装置インタフェース部１０４を介して、アクセス装置２と不揮発性記憶装置１との間で、送受信される。
ＲＯＭ１０３には、不揮発性記憶装置１を制御するプログラムが格納されている。このプログラムは、ＲＡＭ１０２にロードされ、ＣＰＵ１０１により実行される。
不揮発性メモリインタフェース部１０５は、メモリコントローラ１１と不揮発性メモリ１２との接続部である。不揮発性メモリ１２に対するコマンドやデータは、不揮発性メモリインタフェース部１０５を介して、メモリコントローラ１１と不揮発性メモリ１２との間で、送受信される。
【００３８】
ＲＯＭ１０３は、図１に示すように、コマンド処理部１０６と、アドレス管理部１０７と、キャッシュ領域管理部１０８と、を含む。なお、本実施形態では、コマンド処理部１０６、アドレス管理部１０７、および、キャッシュ領域管理部１０８は、ＲＯＭ１０３上において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、例えば、コマンド処理部１０６、アドレス管理部１０７、および、キャッシュ領域管理部１０８の全部または一部は、ハードウェアで実現されるものであってもよい。
コマンド処理部１０６は、アクセス装置インタフェース部１０４を介して、アクセス装置２から受信したコマンド及びコマンドに関するパラメータを解釈し、コマンドの処理を実行する機能部である。
アドレス管理部１０７は、不揮発性メモリ１２のアドレス管理全般を行う。アドレス管理部１０７は、アクセス装置２からアクセス可能なアドレス空間として不揮発性記憶装置１が提供する論理アドレス空間における論理アドレスと物理アドレスとの対応付けを管理する。アドレス管理部１０７は、有効なデータが格納されておらずデータ書き込みに再利用可能なブロックであるフリーブロックの物理アドレスや、データ書き込みに利用不可能な不良ブロックの物理アドレスや、論理アドレスと物理アドレスとの変換テーブルが格納されたブロックの物理アドレスなども管理する。
【００３９】
キャッシュ領域管理部１０８は、不揮発性メモリ１２の第１キャッシュ領域１２２の状態、及び、第２キャッシュ領域１２３の状態や、キャッシュ領域（第１キャッシュ領域１２２、第２キャッシュ領域１２３）に格納されたデータの情報を管理し、アクセス装置２に対するキャッシュ機能を提供（実現）する。また、キャッシュ領域管理部１０８は、後述するＭＩＣ管理テーブルの生成や更新を行う。
不揮発性メモリ１２は、図１に示すように、記憶領域１２１と、第１キャッシュ領域１２２と、第２キャッシュ領域１２３と、フリーブロック領域１２４と、システム領域１２５と、を含む。
記憶領域１２１は、ユーザデータを格納する領域である。
第１キャッシュ領域１２２および第２キャッシュ領域１２３は、それぞれ、小サイズでランダムな論理アドレスのユーザデータを一時的に高速に格納するための領域である。第１キャッシュ領域および第２キャッシュ領域は、主に、コンテンツ管理情報（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ）をキャッシュ（Ｃａｃｈｅ）として書き込む領域である。簡便化のため、以降では、第１キャッシュ領域を「ＭＩＣ１」と、第２キャッシュ領域を「ＭＩＣ２」と呼称するものとする。また、ＭＩＣ１およびＭＩＣ２のいずれか一方のキャッシュ領域のことを、「ＭＩＣ」と記載する。
【００４０】
フリーブロック領域１２４は、フリーブロックにより構成される領域である
システム領域１２５は、メモリコントローラ１１が内部的に使用するシステム情報を格納する領域である。システム情報には、論理アドレスと物理アドレスとの変換テーブルの情報や、不良ブロックの情報などが含まれる。
図２は、不揮発性メモリ１２の物理的な構成例を示している。
図２に示すように、不揮発性メモリ１２は、複数の物理ブロックから構成される。物理ブロックは、データを消去する単位（データ消去単位）であり、不揮発性メモリ１２では、データを書き込む前にこのデータ消去単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
ページは、データ書き込みを行う単位である。更に、ページは、データ部と冗長部とを含む。データ部は、主にアクセス装置２から受信したファイルデータ等が格納される領域である。冗長部は、主に不揮発性メモリ１２の管理情報や誤り訂正符号であるＥＣＣ等が格納される領域である。データ部の大きさは、例えば、４ＫＢであり、冗長部の大きさは、例えば、１２８バイト程度である。このとき、データ部には、５１２バイトのセクタデータを８セクタ分格納することができる。また、データ部にのみ着目した場合、物理ブロックの大きさは、例えば、５１２ＫＢ程度となる。よって、この大きさの物理ブロック２０４８個から構成される不揮発性メモリ１２は、総容量１ＧＢ（ギガバイト）となる。
【００４１】
≪キャッシュ領域（ＭＩＣ）の構成≫
不揮発性記憶装置１が、アクセス装置２から、キャッシュ対象となっている論理アドレスにデータ（例えば、コンテンツ管理情報）を書き込むコマンドを受信した場合、アドレス管理部１０７は、当該論理アドレスに対応する物理アドレス（ＭＩＣに含まれる物理アドレス（物理ブロックアドレスおよびページアドレス（ブロック内のオフセット）））を特定する。そして、その特定された物理アドレス（ＭＩＣに含まれる物理アドレス）に、アクセス装置から送信されたデータ（例えば、コンテンツ管理情報）が書き込まれる。
つまり、キャッシュ領域管理部１０８によって管理されるＭＩＣには、アクセス装置２から受信した１つ以上の論理アドレス（キャッシュ対象の論理アドレス）の書き込みデータ（例えば、コンテンツ管理情報）が格納される。そして、ＭＩＣに格納される各データは、「有効」または「仮有効」という何れかの状態を有する。
【００４２】
状態が「有効」のデータ（以下、「有効データ」という。）とは、不揮発性記憶装置１を再初期化したときに、常に保持されるデータである。
一方、状態が「仮有効」のデータ（以下、「仮有効データ」という。）とは、不揮発性記憶装置１を再初期化したときに、破棄するか、あるいは、仮有効データとして保持するかを、アクセス装置２が選択できるデータである。
ＭＩＣへの書き込みデータは、まず、仮有効状態でＭＩＣに格納される。
その後、ＭＩＣに格納されているデータは、アクセス装置２のキャッシュ制御部２０３が指示するタイミングで、仮有効状態から有効状態に変更される。ＭＩＣに格納されているデータの状態を仮有効から有効に変更することを「有効化」あるいは「有効化処理」と呼ぶものとする。
【００４３】
ＭＩＣに書き込まれるデータが、コンテンツ管理情報であるとして、以下、説明する。
アクセス装置２は、まず、（複数の）コンテンツ管理情報を仮有効状態として、ＭＩＣに書き込む。
その後、アクセス装置２は、ＭＩＣに格納されている（複数の）コンテンツ管理情報の整合性が確保できた時点で、不揮発性記憶装置１に対して、有効化（有効化処理）を指示する。そして、キャッシュ領域管理部１０８は、既存の１つ以上の仮有効データ（ＭＩＣに仮有効状態で格納されている（複数）のコンテンツ管理情報）を一括して有効化する。
これにより、不揮発性記憶システム１０００では、複数のコンテンツ管理情報の書き込み中に電源断や不揮発性記憶装置１の抜去が発生した場合であっても、仮有効データ（ＭＩＣに仮有効状態で格納されているコンテンツ情報）を破棄することで、コンテンツ管理情報の内容の整合性を確保（保証）することが容易になる。
【００４４】
なお、「コンテンツ管理情報の整合性が確保できた時点」とは、例えば、ＡＶコンテンツのファイルデータと、その管理情報であるコンテンツ管理情報とが、所定の仕様や、所定の規格（フォーマット）に従って整合性がとれたと判断された時点をいう。より具体的には、例えば、ＡＶコンテンツデータをＮバイト書き込む度に、その書き込んだＡＶコンテンツについてのコンテンツ管理情報を書き込むという仕様（規格）の場合、ＮバイトのＡＶコンテンツデータを書き込み、かつ、その書き込んだＡＶコンテンツについてのコンテンツ管理情報を書き込んだ時点が、「コンテンツ管理情報の整合性が確保できた時点」である。
なお、「コンテンツ管理情報の整合性が確保できた時点」は、アクセス装置２が、アクセス装置２側の仕様等に基づいて、判定することが好ましい。
【００４５】
また、本実施形態における有効データ、仮有効データという区別は、論理的になされるものであり、物理的になされるものではない。より具体的には、あるデータが、有効データであるか、それとも、仮有効データであるかは、論理アドレスにより決定される。例えば、同じＭＩＣに論理アドレスＭの書き込みを数回連続して実施した場合、それぞれの書き込みは、物理的には別のアドレス（別の物理ページなど）に書き込まれるが、論理的には１つの論理アドレスＭの仮有効データが書き込まれることになる。つまり、あるデータが、有効データであるか、それとも、仮有効データであるかの区別は、論理アドレスに基づいて決定（判断）される。
また、ＭＩＣ１に有効データが存在する状態で、そのＭＩＣ１に新たなデータの書き込みを行った場合、ＭＩＣ１は、既に書き込まれている有効データを保持したまま、新たに仮有効データが書き込まれた状態となる。従って、ＭＩＣ１に論理アドレスＭの仮有効データ（論理アドレスがＭであるデータであって、仮有効状態でＭＩＣに格納されるデータ）を書き込んだ後、当該仮有効データを有効化して、当該仮有効データを有効データに変更した後、さらに、論理アドレスＭに仮有効データを書き込むことが可能である。このとき、ＭＩＣ１は、論理アドレスＭの仮有効データと論理アドレスＭの有効データの両方が書き込まれた状態となる。なお、上記では、ＭＩＣがＭＩＣ１である場合について説明したが、ＭＩＣがＭＩＣ２である場合も同様である。
【００４６】
以上のように、同一のＭＩＣには、ある論理アドレスのデータを、仮有効データ及び有効データの最大２つ登録することが可能である。
図３は、各ＭＩＣ（ＭＩＣ１、及び、ＭＩＣ２）の状態の種類と、その状態における各ＭＩＣの格納データが取りうる状態の種類との対応を示している。
各ＭＩＣは、「ＡＣＴＩＶＥ」、「ＭＯＶＩＮＧ」、「ＩＮＡＣＴＩＶＥ」のいずれかの状態を有する。
状態が「ＡＣＴＩＶＥ」のＭＩＣ（以下、「ＡＣＴＩＶＥ  ＭＩＣ」という。）とは、アクセス装置２からのデータの書き込みが可能な、活性状態のＭＩＣである。
ＡＣＴＩＶＥ  ＭＩＣにおける格納データの状態として、以下の（１）〜（４）の４つの状態がある。
（１）有効データ及び仮有効データが存在しない（データなし）状態。
（２）有効データのみが存在する状態。
（３）仮有効データのみが存在する状態。
（４）有効データ及び仮有効データの両方が存在する状態。
【００４７】
状態が「ＭＯＶＩＮＧ」のＭＩＣ（以下、「ＭＯＶＩＮＧ  ＭＩＣ」という。）とは、アクセス装置２からのデータの書き込みが禁止されており、該ＭＩＣに記録された有効データを記憶領域１２１に移動している状態のＭＩＣである。ＭＯＶＩＮＧ  ＭＩＣには、常に、有効データのみが存在している。
状態が「ＩＮＡＣＴＩＶＥ」のＭＩＣ（以降、「ＩＮＡＣＴＩＶＥ  ＭＩＣ」という。）とは、アクセス装置２からのデータの書き込みが禁止されており、有効データも仮有効データも存在しない、非活性状態のＭＩＣである。ＩＮＡＣＴＩＶＥ  ＭＩＣの状態は、常に「データなし」の状態である。
なお、図３に示すように、塗りつぶしのない（白地）のＰＴＮ１は、ＭＩＣの状態が「ＡＣＴＩＶＥ」であることを示しており、横縞模様のＰＴＮ２は、ＭＩＣの状態が「ＭＯＶＩＮＧ」であることを示しており、全面塗りつぶし（黒地）のＰＴＮ３は、ＭＩＣの状態が「ＩＮＡＣＴＩＶＥ」であることを示している。この塗り分けについては、図面の他の図においても同様である。
【００４８】
図４は、不揮発性記憶装置１が提供するキャッシュ機能に関するコマンド（以降、「ＭＩＣ操作コマンド」という。）と、各ＭＩＣ操作コマンドに付随する主なパラメータの種類とを示している。本実施形態の不揮発性記憶システム１０００では、少なくとも「ＭＩＣ＿ＷＲＩＴＥ」、「ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥ」、「ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥ」、「ＣＯＮＴＩＮＵＥ＿ＭＯＶＥ」、「ＧＥＴ＿ＭＩＣ＿ＩＮＦＯ」、「ＥＸＴＥＮＤＥＤ＿ＩＮＩＴ」という６つのコマンドを扱うことができる。アクセス装置２のキャッシュ制御部２０３が指定するタイミングで、アクセス装置２から不揮発性記憶装置１に対して、ＭＩＣ操作コマンドが発行される。不揮発性記憶装置１のメモリコントローラ１１は、アクセス装置２から受信したＭＩＣ操作コマンドに応じた処理を行うことでキャッシュ機能を提供（実現）する。
【００４９】
以下、各コマンドの詳細について、説明する。
≪１：ＭＩＣ＿ＷＲＩＴＥコマンド≫
ＭＩＣ＿ＷＲＩＴＥコマンドは、ＡＣＴＩＶＥ  ＭＩＣへのデータ書き込みを行うコマンドである。
アクセス装置２は、不揮発性記憶装置１に対して、書き込み論理アドレスや書き込みデータと共に本コマンドを発行する。書き込みデータは、ＡＣＴＩＶＥ  ＭＩＣに、仮有効データとして格納される。
≪２：ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド≫
ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンドは、ＡＣＴＩＶＥ  ＭＩＣに存在する仮有効データを一括して有効化するコマンドである。
【００５０】
アクセス装置２は、ＭＩＣのデータの整合性が確保された状態で、不揮発性記憶装置１に対して、本コマンドを発行する。不揮発性記憶システム１０００において、本コマンドによる処理が実行された場合、ＭＩＣのデータを記憶領域１２１に移動する処理は発生しない（”ＷＯ”は、”Ｗｉｔｈｏｕｔ”の意）。本コマンドにより実行される処理は、ＡＣＴＩＶＥ  ＭＩＣの格納データの状態の変更のみであるため、本コマンドにより実行される処理は、比較的短時間（数ミリ秒から数十ミリ秒程度）で完了するという特徴を持つ。
≪３：ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンド≫
ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドは、ＡＣＴＩＶＥ  ＭＩＣに存在する仮有効データを一括して有効化し、ＡＣＴＩＶＥ  ＭＩＣをＭＯＶＩＮＧ  ＭＩＣに変更し、該ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動するコマンドである（”Ｗ”は、”Ｗｉｔｈ”の意）。
【００５１】
アクセス装置２は、分割処理の有無に関する指定とともに、不揮発性記憶装置１に対して、本コマンドを発行する。
本コマンドにおいて分割処理「有り」と指定された場合、本コマンド処理が所定の時間Ｔを超えない範囲で有効データの移動処理（ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動する処理）を中断する。これにより、アクセス装置２は、移動処理の途中で、別のコンテンツデータ等を不揮発性記憶装置１に書き込むことが可能となる。
一方、本コマンドにおいて分割処理「無し」と指定された場合、ＭＯＶＩＮＧ  ＭＩＣの全ての有効データの移動処理を完了させる（全ての有効データの移動処理が終了するまで、当該移動処理を継続させる）。
アクセス装置２は、ＭＩＣのデータの整合性が確保された状態で、不揮発性記憶装置１に対して、本コマンドを発行する。特に、記録するコンテンツデータの切り替りタイミングなどで、ＭＩＣに登録している論理アドレスを一括して切り替える必要がある場合に、アクセス装置２は、不揮発性記憶装置１に対して、本コマンドを発行する。
【００５２】
また、本コマンドにより、ＡＣＴＩＶＥ  ＭＩＣがＭＯＶＩＮＧ  ＭＩＣに変更されるタイミングと同期して、ＩＮＡＣＴＩＶＥ  ＭＩＣがＡＣＴＩＶＥ  ＭＩＣに変更される。これにより、不揮発性メモリ１２に、必ず、ＡＣＴＩＶＥ  ＭＩＣが存在することを保証することができるので、移動処理（ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動する処理）中に、不揮発性記憶装置１は、アクセス装置２から、新たなＭＩＣへの書き込みを受け付けることが可能となる。
なお、本実施形態では、「所定の時間Ｔ」を、不揮発性記憶装置１に１セクタのデータ書き込みを行う場合に許容される処理時間と同程度に設定する。より具体的には、「所定の時間Ｔ」を、２５０ミリ秒とか５００ミリ秒といった値に設定する。これにより、不揮発性記憶装置１の設計や、アクセス装置２における時間管理をより簡単にできる可能性がある。「所定の時間Ｔ」を、不揮発性記憶装置１に１セクタのデータ書き込みを行う場合に許容される処理時間と同程度以下に設定することが好ましい。「所定の時間Ｔ」を、不揮発性記憶装置１に１セクタのデータ書き込みを行う場合に許容される処理時間と同一時間に設定するのが簡便で良い。なお、上記設定値は、一例であり、これに限定されないことは言うまでもない。
【００５３】
≪４：ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンド≫
ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドは、ＭＯＶＩＮＧ  ＭＩＣに存在する有効データの移動処理を継続するコマンドである。
アクセス装置２は、不揮発性記憶装置１に対して、分割処理の有無に関する指定とともに本コマンドを発行する。
本コマンドにおいて分割処理「有り」と指定された場合、本コマンド処理が所定の時間Ｔを超えない範囲で有効データの移動処理（ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動する処理）を中断する。これにより、アクセス装置２は、移動処理の途中で、別のコンテンツデータ等を不揮発性記憶装置１に書き込むことが可能となる。
一方、本コマンドにおいて分割処理「無し」と指定された場合、ＭＯＶＩＮＧ  ＭＩＣの全ての有効データの移動処理を完了させる（全ての有効データの移動処理が終了するまで、当該移動処理を継続させる）。
【００５４】
アクセス装置２は、不揮発性記憶装置１に対して、本コマンドを発行して、移動処理を行うタイミングを、不揮発性記憶装置１に明示的に通知する。従って、不揮発性記憶システム１０００において、アクセス装置２が頻繁に不揮発性記憶装置１に書き込みを行うタイミング（あるいは期間）では、移動処理を保留しておき、余裕のあるタイミング（あるいは期間）で、移動処理を再開するということが可能となる。本機能は、コンテンツデータのリアルタイム記録（一定の書き込み速度を保証したデータ書き込み処理）を行う場合などに特に有効である。
≪５：ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンド≫
ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドは、ＭＩＣに関する情報を取得するコマンドである。
【００５５】
アクセス装置２は、不揮発性記憶装置１に対して、不揮発性記憶装置１の初期化直後などに、本コマンドを発行することにより、ＭＩＣの状態や格納データの状態などを確認することが可能となる。具体的には、本コマンドにより、以下の情報を取得できることが好ましい。
（１）ＭＩＣに関する情報：
・ＡＣＴＩＶＥ、ＭＯＶＩＮＧ、ＩＮＡＣＴＩＶＥといった状態を示す情報
（２）格納データに関する情報：
・有効データの数
・仮有効データの数
・登録可能な論理アドレスの数
・登録済みの論理アドレスの数
・登録済みの論理アドレスのうち有効データの数
・登録済みの論理アドレスのうち仮有効データの数
・登録済みの論理アドレスのうち記憶領域１２１に移動処理済みの数
・登録済みの論理アドレスの値
・有効として登録済みの論理アドレスの値
・仮有効として登録済みの論理アドレスの値
・記憶領域１２１に移動処理を行うのに必要な時間に関する情報
（３）その他の情報：
・ＭＩＣへの登録単位（セクタ、複数セクタ、ページ、など）
・ＭＩＣの数（本実施例の場合はＭＩＣ１とＭＩＣ２の２つ）
≪６：ＥＸＴＥＮＤＥＤ＿ＩＮＩＴコマンド≫
ＥＸＴＥＮＤＥＤ＿ＩＮＩＴコマンドは、不揮発性記憶装置１の初期化処理を行うコマンドである。
【００５６】
アクセス装置２は、不揮発性記憶装置１に対して、仮有効データの扱いに関する指定とともに本コマンドを発行する。
本コマンドにおいて「破棄」を指定された場合、ＡＣＴＩＶＥ  ＭＩＣに存在する全ての仮有効データを破棄する処理が実行される。
本コマンドにおいて「保持」を指定された場合、ＡＣＴＩＶＥ  ＭＩＣに存在する全ての仮有効データは、そのまま保持される。
≪ＭＩＣの状態とＭＩＣ操作コマンドによる状態遷移≫
次に、ＭＩＣの状態とＭＩＣ操作コマンドによる状態遷移について、説明する。
図５は、ＭＩＣの状態（ＭＩＣ１及びＭＩＣ２の各状態の組合せ）とＭＩＣ操作コマンドによる状態遷移を示している。
【００５７】
不揮発性記憶装置１は、ＭＩＣ１とＭＩＣ２を備えているが、これらの状態の組合せは次の４つのいずれかとする。
（１）「状態Ａ」はＭＩＣ１がＡＣＴＩＶＥ、ＭＩＣ２がＩＮＡＣＴＩＶＥの状態である。
（２）「状態Ｂ」はＭＩＣ１がＭＯＶＩＮＧ、ＭＩＣ２がＡＣＴＩＶＥの状態である。
（３）「状態Ｃ」はＭＩＣ１がＩＮＡＣＴＩＶＥ、ＭＩＣ２がＡＣＴＩＶＥの状態である。
（４）「状態Ｄ」はＭＩＣ１がＡＣＴＩＶＥ、ＭＩＣ２がＭＯＶＩＮＧの状態である。
不揮発性記憶システム１０００では、上記４つの状態のみを許すことにより、不揮発性記憶装置１には、常にＡＣＴＩＶＥ  ＭＩＣが存在することが保証される。このため、アクセス装置２は、いつでも不揮発性記憶装置１のＭＩＣにデータを書き込むことが可能となる。
【００５８】
「状態Ａ」または「状態Ｃ」において、不揮発性記憶装置１が、アクセス装置２から、ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを受信した場合、ＡＣＴＩＶＥ  ＭＩＣの全ての有効データの移動処理（ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動する処理）が開始される。本コマンド処理後に移動処理が完結しなかった場合は、「状態Ａ」から「状態Ｂ」に、または、「状態Ｃ」から「状態Ｄ」に遷移する。一方、本コマンド処理後に移動処理が完結した場合は、「状態Ａ」から「状態Ｃ」に、または、「状態Ｃ」から「状態Ａ」に遷移する。
「状態Ｂ」または「状態Ｄ」において、不揮発性記憶装置１が、アクセス装置２から、ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドを受信した場合、ＭＯＶＩＮＧ  ＭＩＣの全ての有効データの移動処理（ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動する処理）が継続される。本コマンド処理後に移動処理が完結しなかった場合は、それぞれ「状態Ｂ」または「状態Ｄ」に留まる。一方、本コマンド処理後に移動処理が完結した場合は、「状態Ｂ」から「状態Ｃ」に、または、「状態Ｄ」から「状態Ａ」に遷移する。
【００５９】
不揮発性記憶装置１が、アクセス装置２から、ＭＩＣ＿ＷＲＩＴＥコマンド、ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド、ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドを受信した場合には、状態遷移は発生しない。
≪ＭＩＣ管理テーブル≫
次に、ＭＩＣ管理テーブルについて、説明する。
図６は、キャッシュ領域管理部１０８が生成及び更新するＭＩＣ管理テーブルの構成の一例を示している。
ＭＩＣ管理テーブルには、以下のような情報が格納されていることが好ましい。
・各ＭＩＣの状態（ＡＣＴＩＶＥ、ＭＯＶＩＮＧ、ＩＮＡＣＴＩＶＥ）、
・各ＭＩＣに同時に格納することが可能なデータ数（登録可能アドレス数（登録可能な論理アドレス数））、
・各ＭＩＣに既に格納されているデータ数（登録論理アドレス数）
・登録論理アドレス数のうちの有効データ数
・登録論理アドレス数のうちの仮有効データ数
・ＭＯＶＩＮＧ  ＭＩＣにおける移動処理済みの有効データ数
・各ＭＩＣに格納されたデータの論理アドレス、データ種別（有効、仮有効）、物理ブロックアドレス、物理ページアドレス、物理セクタアドレス、の一覧
ＭＩＣ管理テーブルは、不揮発性記憶装置１の初期化処理時等にキャッシュ領域管理部１０８によってＲＡＭ１０２上に生成される。このとき、キャッシュ領域管理部１０８は、不揮発性メモリ１２のシステム領域１２５に格納された情報などを参照する。システム領域１２５には、例えば、論理ブロックと物理ブロックとの対応関係に関する情報や、不良ブロックに関する情報や、ＭＩＣの状態に関する情報や、ＭＩＣの格納データの状態に関する情報等が、格納されている。本実施形態では、ＭＩＣの状態に関する情報や、ＭＩＣの格納データの状態に関する情報は、システム領域１２５に格納されていることを想定しているが、これに限定されることはなく、例えば、ＭＩＣの状態に関する情報や、ＭＩＣの格納データの状態に関する情報は、物理ブロック（ＭＩＣの物理ブロック）のページの冗長部（図２を参照）に格納されるものであってもよい。
【００６０】
キャッシュ領域管理部１０８がＭＩＣ管理テーブルを更新する場合、ＲＡＭ１０２上の値の更新と共に、不揮発性メモリ１２のシステム領域１２５に格納された情報の更新を行う。
＜１．２：不揮発性記憶装置の動作＞
以下、不揮発性記憶装置１の動作を説明する。
（１．２．１：初期化コマンド処理）
まず、初期化コマンド処理について、説明する。
図７は、不揮発性記憶装置１の初期化コマンド処理の手順を示すフローチャートである。
不揮発性記憶装置１は、アクセス装置２の不揮発性記憶装置インタフェース部２４に装着され、電源が投入されると、不揮発性記憶装置１を構成するハードウェア（ＨＷ）の初期化処理を行い、初期化コマンド待ち状態となる。
（Ｓ１０１）：
不揮発性記憶装置１は、本発明によるアクセス装置２が発行する初期化コマンド（拡張初期化コマンド（ＥＸＴＥＮＤＥＤ＿ＩＮＩＴコマンド））と、従来のアクセス装置が発行する初期化コマンド（ＩＮＩＴコマンド）の両方を受付け可能とする。
【００６１】
そして、不揮発性記憶装置１は、拡張初期化コマンド、または、初期化コマンド（従来アクセス装置が発行する初期化コマンド）を受信すると、従来の不揮発性記憶装置と同様の初期化処理を行う（Ｓ１０１）。すなわち、不揮発性記憶装置１は、メモリコントローラ１１内のＲＯＭ１０３に格納されたプログラムであるファームウェア（ＦＷ）をＣＰＵ１０１に転送し、ソフトウェアによる初期化処理を行う。
このとき、アドレス管理部１０７は、不揮発性メモリインタフェース部１０５を介して不揮発性メモリ１２からシステム情報を読み出し、ＲＡＭ１０２に論理アドレス・物理アドレスの変換テーブルやフリーブロックのリストを作成する。これらのテーブルをＲＡＭ１０２上に作成するのは、それぞれの情報を参照するときに不揮発性メモリ１２からの読み出しが省略でき、処理が高速化されるためである。
（Ｓ１０２〜Ｓ１０６）：
キャッシュ領域管理部１０８は、不揮発性メモリ１２からシステム情報を読み出し、ＭＩＣ管理テーブルをＲＡＭ１０２上に作成する。そして、キャッシュ領域管理部１０８は、作成したＭＩＣ管理テーブルを参照し（Ｓ１０２）、ＭＩＣに仮有効データが存在するか否かを判定する（Ｓ１０３）。
【００６２】
仮有効データが存在していると判定された場合、不揮発性記憶装置１がアクセス装置２から受信した初期化コマンドがＥＸＴＥＮＤＥＤ＿ＩＮＩＴであり（Ｓ１０４で「ＹＥＳ」の場合）、かつ、パラメータとして「保持」が指定されているときは（Ｓ１０５で「ＹＥＳの場合」）、キャッシュ領域管理部１０８は、なにもせず（仮有効データは仮有効データのまま保持して）処理を終了させる。
上記以外の場合（Ｓ１０４で「ＮＯ」場合、または、Ｓ１０５で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、ＭＩＣに存在する全ての仮有効データを破棄するようにＭＩＣ管理テーブルを更新し（Ｓ１０６）、処理を終了させる。
Ｓ１０３で、仮有効データが存在していないと判定された場合（Ｓ１０３で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、処理を終了させる。
【００６３】
（１．２．２：ＭＩＣ＿ＷＲＩＴＥコマンド処理）
次に、ＭＩＣ＿ＷＲＩＴＥコマンド処理について、説明する。
図８は、不揮発性記憶装置１のＭＩＣ＿ＷＲＩＴＥコマンド処理の手順を示すフローチャートである。
アクセス装置２は、不揮発性記憶装置１に対して、ＭＩＣ＿ＷＲＩＴＥコマンドを発行し、そのコマンドには少なくとも書き込みデータの論理アドレスの情報が含まれているものとする。また、本実施形態では、前記コマンドと共に、前記コマンドで指定する論理アドレスへの書き込みデータが転送されるものとする。
（Ｓ２０１、Ｓ２０２）：
不揮発性記憶装置１は、アクセス装置２からＭＩＣ＿ＷＲＩＴＥコマンドを受信すると、キャッシュ領域管理部１０８は、ＭＩＣ管理テーブルを参照し（Ｓ２０１）、ＡＣＴＩＶＥ  ＭＩＣにアクセス装置２が指定する論理アドレスを登録可能であるか否かを判定する（Ｓ２０２）。
（Ｓ２０３、Ｓ２０４、Ｓ２０５）：
キャッシュ領域管理部１０８は、登録可能アドレス数が登録論理アドレス数より大きい場合や、既に仮有効データとして登録済みの論理アドレスが指定された場合には「登録可能」と判断する。
（Ｓ２０３〜Ｓ２０５）：
Ｓ２０２で「登録可能」と判断された場合、キャッシュ領域管理部１０８は、ＡＣＴＩＶＥ＿ＭＩＣに仮有効データの登録があるか否かを判断する（Ｓ２０３）。
【００６４】
Ｓ２０３で、ＡＣＴＩＶＥ＿ＭＩＣに仮有効データの登録があると判断された場合（Ｓ２０３で「ＹＥＳ」の場合）、ＡＣＴＩＶＥ  ＭＩＣに登録された同一論理アドレスの仮有効データを受信した書き込みデータで「上書き」する（Ｓ２０４）。
上記の上書きは、例えば、特許文献１に記載されているページキャッシュの技術等によって「巻き込み退避処理」を伴わずに短時間で実現することができる。すなわち、データＸをデータＹで「上書き」する処理は、データＸが書き込まれている物理アドレスＡ１のデータを直接、データＹに書き換えることではなく、別の物理アドレスＡ２（例えば、未書き込みの物理ページ）に受信した書き込みデータＹを書き込んだ後、ＭＩＣ管理テーブルにおける該論理アドレスの仮有効データが存在する物理アドレスをＡ１からＡ２に更新することで実現する。このように「上書き」処理を実行することで、「巻き込み退避処理」を発生させず、「上書き」処理を短時間（ＭＩＣ管理テーブルの更新処理時間）で実現することができる。
【００６５】
Ｓ２０２で、ＡＣＴＩＶＥ  ＭＩＣに仮有効データの登録がないと判断された場合（Ｓ２０３で「ＮＯ」の場合）、場合、キャッシュ領域管理部１０８は、アクセス装置２から受信した書き込みデータをＡＣＴＩＶＥ  ＭＩＣのデータとして、ＡＣＴＩＶＥ  ＭＩＣに新規書込みする。この「新規書込み」もページキャッシュの技術等によって短時間で実現することができる。そして、キャッシュ領域管理部１０８は、ＭＩＣ管理テーブルを更新して論理アドレスなどの情報を新規に登録する。キャッシュ領域管理部１０８は、書き込みデータを仮有効データとして登録する。
（Ｓ２０６）：
Ｓ２０２で、登録不可と判断された場合、キャッシュ領域管理部１０８は、アクセス装置２へのエラー通知を行って（Ｓ２０６）、処理を終了させる。
【００６６】
（１．２．３：ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド処理）
次に、ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド処理について、説明する。
図９は、不揮発性記憶装置１のＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド処理の手順を示すフローチャートである。
アクセス装置２は、不揮発性記憶装置１に対してＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンドを発行する。不揮発性記憶装置１のキャッシュ領域管理部１０８は、アクセス装置２からＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンドを受信すると、ＭＩＣ管理テーブルを参照し（Ｓ３０１）、ＡＣＴＩＶＥ  ＭＩＣに仮有効データが存在するか否かを判定する（Ｓ３０２）。
Ｓ３０２の判定の結果、仮有効データが存在する場合、キャッシュ領域管理部１０８は、ＡＣＴＩＶＥ  ＭＩＣに存在する全ての仮有効データを有効データとするようにＭＩＣ管理テーブルを更新し（Ｓ３０３）、処理を終了させる。
【００６７】
Ｓ３０２の判定の結果、仮有効データが存在しない場合、キャッシュ領域管理部１０８は、そのまま処理を終了させる。
（１．２．４：ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンド処理）
次に、ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンド処理について、説明する。
図１０は、不揮発性記憶装置１のＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンド処理の手順を示すフローチャートである。
アクセス装置２は、不揮発性記憶装置１に対してＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを発行し、そのコマンドには少なくとも分割処理の有無に関する指定が含まれているものとする。
（Ｓ４０１、Ｓ４０２）：
不揮発性記憶装置１のキャッシュ領域管理部１０８は、アクセス装置２からＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを受信すると、ＭＩＣ管理テーブルを参照し（Ｓ４０１）、ＡＣＴＩＶＥ  ＭＩＣに仮有効データが存在するか否かを判定する（Ｓ４０２）。
【００６８】
仮有効データが存在する場合のみ、キャッシュ領域管理部１０８は、ＡＣＴＩＶＥ  ＭＩＣに存在する全ての仮有効データを有効データとするようにＭＩＣ管理テーブルを更新する（Ｓ４０３）。
（Ｓ４０４）：
その後、キャッシュ領域管理部１０８は、ＡＣＴＩＶＥ  ＭＩＣをＭＯＶＩＮＧ  ＭＩＣに、ＩＮＡＣＴＩＶＥ  ＭＩＣをＡＣＴＩＶＥ  ＭＩＣに変更するようにＭＩＣ管理テーブルを更新する（Ｓ４０４）。
（Ｓ４０５〜Ｓ４１０）：
Ｓ４０５でＭＯＶＩＮＧ  ＭＩＣに有効データがあると判定された場合（Ｓ４０５で「ＹＥＳ」の場合）、ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドで、分割処理「有り」と指定されているか否かを判定する（Ｓ４０６）。
【００６９】
ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドで、分割処理「有り」と指定されている場合（Ｓ４０６で「ＹＥＳ」の場合）、キャッシュ領域管理部１０８は、所定の時間Ｔを超えない範囲で有効データの移動処理を実施し、ＭＩＣ管理テーブルの情報（移動済みの有効データ数など）を更新する（Ｓ４０７）。
そして、キャッシュ領域管理部１０８は、ＭＯＶＩＮＧ  ＭＩＣに移動処理が完了していない有効データが存在するか判断し（Ｓ４０８）、移動処理が完了していない有効データが存在すれば処理を終了させ、存在しなければＭＯＶＩＮＧ  ＭＩＣをＩＮＡＣＴＩＶＥ  ＭＩＣに変更するようにＭＩＣ管理テーブルを更新して（Ｓ４１０）、処理を終了させる。
ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドで、分割処理「無し」と指定されている場合（Ｓ４０６で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、ＭＯＶＩＮＧ  ＭＩＣの全ての有効データの移動処理を完結させた後、ＭＩＣ管理テーブルの情報（移動済みの有効データ数など）を更新し（Ｓ４０９）、Ｓ４１０の処理を行って処理を終了させる。
【００７０】
Ｓ４０５でＭＯＶＩＮＧ  ＭＩＣに有効データがない場合（Ｓ４０５で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、Ｓ４１０の処理を行って処理を終了させる。
（１．２．５：ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンド処理）
次に、ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンド処理について、説明する。
図１１は、不揮発性記憶装置１のＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンド処理の手順を示すフローチャートである。
アクセス装置２は、不揮発性記憶装置１に対して、ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドを発行し、そのコマンドには少なくとも分割処理の有無に関する指定が含まれているものとする。
（Ｓ５０１、Ｓ５０２）：
不揮発性記憶装置１のキャッシュ領域管理部１０８は、ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドを受信すると、ＭＩＣ管理テーブルを参照し（Ｓ５０１）、ＭＯＶＩＮＧ  ＭＩＣに移動済みでない有効データが存在するか否かを判定する（Ｓ５０２）。
（Ｓ５０３〜Ｓ５０７）：
Ｓ５０２で、ＭＯＶＩＮＧ  ＭＩＣに移動済みでない有効データがあると判定された場合（Ｓ５０２で「ＹＥＳ」の場合）、ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドで、分割指定の有無を判定する（Ｓ５０３）。
【００７１】
ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドで、分割（分割処理）「有り」と指定されている場合（Ｓ５０３で「ＹＥＳ」の場合）、キャッシュ領域管理部１０８は、所定の時間Ｔを超えない範囲で有効データの処理を実施し、ＭＩＣ管理テーブルの情報（移動済みの有効データ数など）を更新する（Ｓ５０４）。
そして、キャッシュ領域管理部１０８は、ＭＯＶＩＮＧ  ＭＩＣに移動処理が完了していない有効データが存在するか判断し（Ｓ５０５）、存在すれば処理を終了させ、存在しなければＭＯＶＩＮＧ  ＭＩＣをＩＮＡＣＴＩＶＥ  ＭＩＣに変更するようにＭＩＣ管理テーブルを更新して（Ｓ５０７）、処理を終了させる。
ＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドで、分割（分割処理）「無し」と指定されている場合（Ｓ５０３で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、ＭＯＶＩＮＧ  ＭＩＣの全ての有効データの移動処理を完結させた後、ＭＩＣ管理テーブルの情報（移動済みの有効データ数など）を更新し（Ｓ５０６）、Ｓ５０７の処理を行って処理を終了させる。
【００７２】
Ｓ５０２で、ＭＯＶＩＮＧ  ＭＩＣに移動済みでない有効データがないと判定された場合（Ｓ５０２で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、Ｓ５０７の処理を行って処理を終了させる。
（１．２．６：ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンド処理）
次に、ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンド処理について、説明する。
図１２は、不揮発性記憶装置１のＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンド処理の手順を示すフローチャートである。
アクセス装置２は、不揮発性記憶装置１に対して、ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドを発行する。不揮発性記憶装置１のキャッシュ領域管理部１０８は、アクセス装置２からＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドを受信すると、ＭＩＣ管理テーブルを参照して現在のＭＩＣに関する情報を取得し（Ｓ６０１）、取得した情報を所定の出力形式（例えば、不揮発性記憶システム１０００の仕様により決定される形式や、規格によって決定される形式）のデータに変換する（Ｓ６０２）。そして、キャッシュ領域管理部１０８は、変換（生成した）所定の出力形式のデータをアクセス装置２に出力する（Ｓ６０３）。
【００７３】
（１．２．７：通常のＷｒｉｔｅコマンド処理）
次に、通常のＷｒｉｔｅコマンド処理について、説明する。
図１３は、不揮発性記憶装置１の通常のＷｒｉｔｅコマンド処理の手順を示すフローチャートである。
アクセス装置２は、不揮発性記憶装置１に対して、通常のＷｒｉｔｅコマンドを発行し、そのコマンドには少なくとも書き込みデータの論理アドレスの情報が含まれているものとする。また、本実施形態では、前記コマンドと共に、前記コマンドで指定する論理アドレスへの書き込みデータが転送されるものとする。
（Ｓ７０１）：
不揮発性記憶装置１は、アクセス装置２から通常のＷｒｉｔｅコマンドを受信すると、従来の不揮発性記憶装置と同様のデータ書き込み処理を行う（Ｓ７０１）。その結果、受信データは、記憶領域１２１に格納される。
（Ｓ７０２〜Ｓ７０４）：
続いて、キャッシュ領域管理部１０８は、ＭＩＣ管理テーブルを参照し（Ｓ７０２）、ＭＩＣにアクセス装置２がＳ７０１で書き込んだ論理アドレスが登録されているか否かを判定する（Ｓ７０３）。
【００７４】
Ｓ７０３で、ＭＩＣに書き込んだ論理アドレスが登録されていると判定された場合（Ｓ７０３で「ＹＥＳ」の場合）、キャッシュ領域管理部１０８は、該当する論理アドレスの登録を全て破棄するように、ＭＩＣ管理テーブルを更新し（Ｓ７０４）、処理を終了させる。
このように、「該当する論理アドレスの登録を全て破棄する」理由は、以下の通りである。例えば、論理アドレスＡのデータＤａｔａ１がＭＩＣに書き込まれている状態で、通常のＷｒｉｔｅコマンドにより、論理アドレスＡのデータがＤａｔａ１からＤａｔａ２に上書き（更新）される場合、上書きデータＤａｔａ２は、記憶領域１２１に書き込まれることになる。この時点で、論理アドレスＡのデータは、不揮発性記憶装置１において、ＭＩＣ（Ｄａｔａ１を格納）および記憶領域１２１（Ｄａｔａ２を格納）の２箇所に格納されていることとなる。このとき、最新のデータであるＤａｔａ２は記憶領域１２１に格納されていることになる。不揮発性記憶システム１０００では、ＭＩＣに格納されているデータが最新データであることを保証するため、上記のように、通常のＷｒｉｔｅコマンドにより、論理アドレスＡに書き込み処理が実行された場合、その論理アドレスＡに対応するＭＩＣのデータがあれば、そのＭＩＣのデータを破棄する。このようにすることで、論理アドレスＡに対応するデータが、記憶領域１２１とＭＩＣの両方に格納されている場合、ＭＩＣに格納されているデータが、常に最新データであることが保証される。
【００７５】
つまり、キャッシュ領域管理部１０８は、該当する論理アドレスに対応するデータが、記憶領域１２１とＭＩＣの両方に格納されている場合、ＭＩＣに格納されているデータが、常に最新データであることを保証するために、「該当する論理アドレスの登録を全て破棄する」のである。
Ｓ７０３で、ＭＩＣに書き込んだ論理アドレスが登録されていないと判定された場合（Ｓ７０３で「ＮＯ」の場合）、キャッシュ領域管理部１０８は、そのまま処理を終了させる。
（１．２．８：Ｒｅａｄコマンド処理）
次に、Ｒｅａｄコマンド処理について、説明する。
図１４は、不揮発性記憶装置１のＲｅａｄコマンド処理の手順を示すフローチャートである。
【００７６】
アクセス装置２は、不揮発性記憶装置１に対して、Ｒｅａｄコマンドを発行し、そのコマンドには少なくとも読み出しデータの論理アドレスの情報が含まれているものとする。
（Ｓ８０１）：
不揮発性記憶装置１は、アクセス装置２からＲｅａｄコマンドを受信すると、キャッシュ領域管理部１０８は、ＭＩＣ管理テーブルを参照し（Ｓ８０１）、ＭＩＣにアクセス装置２が読み出しを指定する論理アドレスが登録されているか否かを判定する（Ｓ８０２）。
Ｓ８０２で、指定する論理アドレスが登録されていると判定された場合、キャッシュ領域管理部１０８は、ＭＩＣに格納された該当する論理アドレスのデータを優先して出力し（Ｓ８０３）、処理を終了させる。不揮発性記憶システム１０００では、上記で説明したように、ＭＩＣに格納されているデータが最新のデータであることが保証される。したがって、Ｓ８０３では、キャッシュ領域管理部１０８は、ＭＩＣに格納された該当する論理アドレスのデータを優先して出力する。
【００７７】
Ｓ８０２で、指定する論理アドレスが登録されていないと判定された場合、キャッシュ領域管理部１０８は、従来の不揮発性記憶装置と同様のデータ読み出し処理を行い（Ｓ８０４）、処理を終了させる。
なお、Ｓ８０３において、ＭＩＣに同じ論理アドレスが複数格納されている場合には、最新の書き込みデータを出力するものとする。本実施形態においては、同じ論理アドレスであるならば、常に以下の順で新しい書き込みデータとなる。
（１）ＡＣＴＩＶＥ  ＭＩＣの仮有効データ
（２）ＡＣＴＩＶＥ  ＭＩＣの有効データ
（３）ＭＯＶＩＮＧ  ＭＩＣの有効データ
（４）記憶領域１２１のデータ
つまり、１つの論理アドレスに対して、ＭＩＣに、上記（１）〜（４）の４つのデータが格納されている場合、（１）のＡＣＴＩＶＥ  ＭＩＣの仮有効データが最も新しいデータであり、（４）の記憶領域１２１のデータが最も古いデータである。
【００７８】
このような関係が保証されるのは、不揮発性記憶装置１が、前述した処理（「１．２．１」〜「１．２．７」の処理）を行うからである。
＜１．３：アクセス装置の動作＞
続いて、アクセス装置２の動作を説明する。
（１．３．１：ディレクトリ及びファイル構成）
まず、ディレクトリ及びファイル構成について、説明する。
図１５は、アクセス装置２のアプリケーション部２０１が不揮発性記憶装置１にＡＶコンテンツを格納（記録）する際のディレクトリ及びファイル構成の一例を示している。
本実施形態においては、ルートディレクトリの直下に「ＶＩＤＥＯ」ディレクトリが生成され、「ＶＩＤＥＯ」ディレクトリの直下に「ＰＲＧ１」、「ＰＲＧ２」といった個々のＡＶコンテンツを格納するディレクトリが生成される。さらに、「ＰＲＧ１」には映像・音声のストリームデータ本体であるコンテンツファイルの「ＳＴ１」ファイルと、前記コンテンツファイルのメタデータ等を格納したコンテンツ管理情報ファイルである「ＩＮＦＯ１」、「ＩＮＦＯ２」、・・・、「ＩＮＦＯＮ」ファイルというＮ個のファイルが生成される。「ＰＲＧ２」ディレクトリにも「ＰＲＧ１」と同様のファイル群が生成される。
【００７９】
さらに、「ＶＩＤＥＯ」ディレクトリの直下には「ＭＮＧ」という全てのＡＶコンテンツデータに関するメタデータ等（例えば、ＡＶコンテンツデータの総数、総再生時間、プレイリスト等）を格納するディレクトリが生成される。「ＭＮＧ」ディレクトリの直下にはコンテンツ管理情報ファイルである「ＭＮＧ１」、「ＭＮＧ２」、・・・、「ＭＮＧＭ」ファイルというＭ個のファイルが生成される。
従って、アクセス装置２は、１つのＡＶコンテンツを記録する際に、コンテンツファイル以外にも複数のコンテンツ管理情報ファイル（例えば、上記の「ＩＮＦＯ１」や「ＭＮＧ１」等に相当するファイル）の書き込みが必要である。さらに、各々のコンテンツ管理情報ファイルに関するファイルシステム管理情報（ディレクトリエントリやＦＡＴ）の更新も必要となる。一般的に、異なるファイルのデータは、異なる論理アドレスに格納されるため、複数のランダムな（アドレスが連続しない）論理アドレスに対する小サイズのデータ書き込みが発生することになる。
【００８０】
（１．３．２：コンテンツ記録処理）
≪コンテンツ記録処理の記録シーケンス≫
図１６は、従来のアクセス装置がＡＶコンテンツを格納する際の記録の順序の一例を示している。図１６は、従来のアクセス装置が、放送時間が連続する２つの番組を２つのＡＶコンテンツとして、「ＰＲＧ１」ディレクトリと「ＰＲＧ２」ディレクトリに、それぞれ順に、格納（記録）する状況を、時間軸とともに示す図である。
図１６における「Ｓ１」、「Ｓ２」は、従来のアクセス装置が、映像・音声のストリームデータ本体をコンテンツファイル「ＳＴ１」、「ＳＴ２」として記録している期間である。図１７に示すように、コンテンツファイルの記録は、ストリームデータを書き込んだ後、ストリームデータのファイルシステム管理情報（ＦＡＴやディレクトリエントリ）を更新するという手順を繰り返す。
【００８１】
また、図１６における「Ｍ１」、「Ｍ２」は、従来のアクセス装置が、メタデータ等のコンテンツ管理情報を複数のコンテンツ管理情報ファイルとして記録している期間である。図１８に示すように、複数のコンテンツ管理情報ファイルのデータを書き込んだ後、コンテンツ管理情報ファイルのファイルシステム管理情報（ＦＡＴやディレクトリエントリ）をまとめて更新する（書き込む）。
従来のアクセス装置は、上述のようにＡＶコンテンツ毎に順次記録を実施することで、たとえ２つ目の番組の記録中に不揮発性記憶装置の電源断や抜去が発生しても、記録済みの１つ目の番組には影響ないように制御している。但し、このような場合、２つ目の番組に関するコンテンツ管理情報ファイルは未だ記録されていないので、２つ目の番組に関する書き込み途中のストリームデータ以外の情報は全て失われる。また、「Ｍ１」、「Ｍ２」などのコンテンツ管理情報ファイルの更新に要する期間が長いため、ＡＶコンテンツの切り替りにおいて、次のＡＶコンテンツの記録が長時間待たされることも課題となる。
【００８２】
本実施形態の不揮発性記憶システム１０００では、上記課題を解決させることができる。
図１９は、本発明のアクセス装置２が、ＡＶコンテンツを格納する際の記録の順序の一例を示している。図１９は、本実施形態の不揮発性記憶システム１０００において、放送時間が連続する２つの番組を２つのＡＶコンテンツ（ＰＲＧ１およびＰＲＧ２）として、「ＰＲＧ１」ディレクトリと「ＰＲＧ２」ディレクトリにそれぞれ順に格納（記録）する場合の状況を示している。
（期間Ｔ１〜Ｔ２）：
図１９に示すように、期間Ｔ１〜Ｔ２において、アクセス装置２は、１つ目の番組ＰＲＧ１の記録においてコンテンツファイル記録処理「Ｓ１」とコンテンツ管理情報ファイル記録処理「Ｍ１」とを交互に繰り返し記録している。不揮発性記憶システム１０００では、アクセス装置２は、コンテンツ管理情報ファイルの更新を不揮発性記憶装置１のＭＩＣ１に書き込むことで、短時間にコンテンツ管理情報ファイルの更新処理（書き込み処理）を実施する。このため、不揮発性記憶システム１０００では、ストリームデータ本体をリアルタイムに記録しつつ（一定の書き込み速度を保証したデータ書き込み処理を実行しつつ）、こまめにコンテンツ管理情報ファイルを更新することが可能となる。なお、図１９に示した複数のコンテンツファイル記録処理（記録期間）「Ｓ１」により、ＰＲＧ１のＡＶコンテンツファイル（ＰＲＧ１のＡＶコンテンツファイル）が記録される。また、図１９に示した複数のコンテンツ管理情報ファイル記録処理（記録期間）「Ｍ１」により、ＰＲＧ１の全てのコンテンツ管理情報ファイルが記録される。なお、このような関係については、ＰＲＧ２のコンテンツファイル記録処理（記録期間）「Ｓ２」、ＰＲＧ２のコンテンツ管理情報ファイル記録処理（記録期間）「Ｍ２」についても同様である。
【００８３】
なお、不揮発性記憶システム１０００では、コンテンツ管理情報ファイルの内容の整合性が確保される度に（アクセス装置２がコンテンツ管理情報ファイルの内容の整合性を確認する度に）、ＭＩＣ１の仮有効データを有効化しておく。
（期間Ｔ２〜Ｔ３）：
そして、１つ目の番組ＰＲＧ１のストリームデータ本体の記録が完了したら（時刻Ｔ２）、不揮発性記憶システム１０００では、ＭＩＣ１でのコンテンツ管理情報ファイルの更新処理を短時間（期間Ｔ２〜Ｔ３）で実施した後、ＭＩＣ１の仮有効データを有効化してから、２つ目の番組ＰＲＧ２のストリームデータのコンテンツファイル記録処理「Ｓ２」を開始する（時刻Ｔ３）。
（期間Ｔ３〜Ｔ４）：
その後、期間Ｔ３〜Ｔ４において、図１９に示すように、不揮発性記憶システム１０００では、ＰＲＧ２のコンテンツファイル記録処理「Ｓ２」とＰＲＧ１のコンテンツ管理情報ファイルの移動処理「ｍ１」またはＰＲＧ２のコンテンツ管理情報ファイルの記録処理「Ｍ２」とを交互に繰り返す。つまり、期間Ｔ３〜Ｔ４において、不揮発性記憶システム１０００では、「Ｓ２」、「ｍ１」、「Ｓ２」、「Ｍ２」、「Ｓ２」、「ｍ１」、「Ｓ２」、「Ｍ２」、・・・、という順番で交互に繰り返し記録処理および移動処理を実行する。なお、時系列で、上記のような順序になるよう処理を実行することが好ましいが、これに限定されることはなく、本発明の要旨を逸脱しない範囲で、上記処理の順序を入れ替えてもよい。
【００８４】
ここで、ＰＲＧ１のコンテンツ管理情報ファイルの移動処理「ｍ１」は、ＰＲＧ１のコンテンツ管理情報ファイルの記録処理「Ｍ１」によってＭＩＣ１に格納された有効データを不揮発性記憶装置１の記憶領域１２１に移動する処理を所定時間Ｔだけ実行する処理である。
不揮発性記憶システム１０００では、ＭＩＣ１に格納された有効データの記憶領域１２１への移動処理を行うことにより、続けて３つ目の番組を記録するときに利用できるＭＩＣ（図１９の場合では、ＭＩＣ１）を準備することができる。
ＰＲＧ２のコンテンツ管理情報ファイルの記録処理「Ｍ２」は、２つ目の番組ＰＲＧ２のコンテンツ管理情報ファイルのデータ（更新データ）を、ＭＩＣ２に書き込む処理であり、短時間に実施される。
【００８５】
不揮発性記憶システム１０００では、２つ目の番組ＰＲＧ２の記録中において、ＭＩＣ１に格納された有効データの移動処理が完了した時点（時刻Ｔ４）より後は、図１９に示すように、ＰＲＧ２のコンテンツファイルの記録処理「Ｓ２」とＰＲＧ２のコンテンツ管理情報ファイルの記録処理「Ｍ２」とを交互に繰り返し実行する。
（期間Ｔ５〜Ｔ６）：
そして、不揮発性記憶システム１０００では、２つ目の番組ＰＲＧ２のストリームデータ本体の記録が完了した時点（時刻Ｔ５）から、ＰＲＧ２のコンテンツ管理情報ファイルの更新をＭＩＣ２に対して実施し、ＭＩＣ２の有効データを不揮発性記憶装置１の記憶領域１２１に移動する処理（移動処理「ｍ２」）を開始する。この移動処理は、続けて３つ目の番組の記録する必要がある場合には所定時間Ｔ以内に分割して実施するが、そうでなければ一括して実施してもよい。不揮発性記憶システム１０００において、３つ目の番組を記録しない場合、図１９の期間Ｔ５〜Ｔ６のＭＩＣ２の移動処理（有効データのＭＩＣ２から記憶領域１２１への移動処理）「ｍ２」は、一括移動処理とすることが好ましい。
【００８６】
不揮発性記憶システム１０００では、アクセス装置２が上述のようにＡＶコンテンツを記録することで、たとえ２つ目の番組の記録中に不揮発性記憶装置の電源断や抜去が発生しても、記録済みの１つ目の番組には影響ないように制御することが可能である。
さらに、不揮発性記憶システム１０００では、記録中の番組に関するコンテンツ管理情報ファイルもこまめに記録し、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性が確保された時点で（アクセス装置２が整合性を確認した時点で）有効化する（有効化処理を実行する）。このため、不揮発性記憶システム１０００では、書き込み途中のストリームデータに応じたコンテンツ管理情報ファイルをこまめに生成（更新）することができる。その結果、不揮発性記憶システム１０００では、記録処理中に不測の事態（不揮発性記憶装置の電源断や抜去等）が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置１に保持させることができる。
【００８７】
また、不揮発性記憶システム１０００では、複数のＡＶコンテンツを連続的に記録する場合、記録対象のＡＶコンテンツを切り替えるときにおいても、時間のかかるＭＩＣの有効データの移動処理を分割して実施することが可能であるため、次のＡＶコンテンツの記録が長時間待たされることがない。
≪コンテンツ記録処理の処理フロー≫
次に、不揮発性記憶システム１０００におけるコンテンツ記録処理の処理フローについて、説明する。
図２０Ａ及び図２０Ｂは、アクセス装置２が不揮発性記憶装置インタフェース部２４に装着された不揮発性記憶装置１にコンテンツを記録するときの、不揮発性記憶装置１へのアクセスに着目したコンテンツ記録処理の手順を示すフローチャートである。
【００８８】
コンテンツ記録処理の開始前に、アクセス装置２は、不揮発性記憶装置１の初期化処理と後述するＭＩＣ準備処理を完了しているものとする。そして、ＭＩＣ準備処理の完了によって、不揮発性記憶装置１のＭＩＣには、有効データおよび仮有効データが全く存在しない状態となっているものとする。
（Ｓ９０１、Ｓ９０２）：
アクセス装置２のアプリケーション部２０１は、ＡＶ入力部２５や符号処理部２６や暗号処理部２７を制御してＡＶコンテンツのストリームデータ（コンテンツファイルのデータ）をＲＡＭ２２上に準備する（Ｓ９０１）。そして、アクセス装置２は、不揮発性記憶装置１に対して、通常のＷｒｉｔｅコマンドを発行して単位量のストリームデータ（コンテンツファイルのデータ）を記憶領域１２１に書き込む（Ｓ９０２）。
（Ｓ９０３）：
Ｓ９０３において、記録中のＡＶコンテンツのストリームデータの書き込みが終了したか否かを判断する（Ｓ９０３）。
（Ｓ９０４）：
Ｓ９０３で、記録中のＡＶコンテンツのストリームデータの書き込みが終了したと判断された場合（Ｓ９０３で「ＹＥＳ」の場合）、不揮発性記憶システム１０００では、キャッシュ制御部２０３の指示により１回以上のＭＩＣ＿ＷＲＩＴＥコマンドを、アクセス装置２から不揮発性記憶装置１に発行することで、関連するコンテンツ管理情報ファイルの書き込みを行い、コンテンツ管理情報ファイルの内容の整合性を確保する（Ｓ９０４）。
（Ｓ９０５、Ｓ９０８）：
Ｓ９０５において、続けて別のＡＶコンテンツのストリームデータを記録する必要の有無を判断する（Ｓ９０５）。
【００８９】
Ｓ９０５で、続けて別のＡＶコンテンツのストリームデータを記録する必要がないと判断された場合（Ｓ９０５で「ＮＯ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、分割処理「無し」の指定と供に、ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを発行し、Ｓ９０４でＭＩＣに仮有効データとして格納されたコンテンツ管理情報ファイルの更新データを有効化し、有効化したデータを、ＭＩＣから記憶領域１２１に移動する処理を完結させて（Ｓ９０８）、コンテンツ記録処理を終了させる。
（Ｓ９０５、Ｓ９０６、Ｓ９０７）：
Ｓ９０５において、続けて別のＡＶコンテンツのストリームデータを記録する必要があると判断された場合（Ｓ９０５で「ＹＥＳ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンドを発行し、Ｓ９０４でＭＩＣに仮有効データとして格納したコンテンツ管理情報ファイルの更新データを有効化し（Ｓ９０６）、キャッシュ制御部２０３が内部で管理する「移動待ちフラグ」をＯＮにする（Ｓ９０７）。そして、アクセス装置２は、次のストリームデータの準備（Ｓ９０１）を行う。
（Ｓ９０９）：
Ｓ９０３で、ＡＶコンテンツのストリームデータの書き込みが継続していると判断された場合（Ｓ９０３で「ＮＯ」の場合）、キャッシュ制御部２０３が内部的に管理する「前回移動処理実施フラグ」を参照する（Ｓ９０９）。なお、前回移動処理実施フラグの初期値はＯＦＦである。
（Ｓ９１０）：
前回移動処理実施フラグがＯＦＦである場合、アクセス装置２は、不揮発性記憶装置１に対して、ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドを発行し、不揮発性記憶装置１のＭＩＣに関する情報を取得する（Ｓ９１０）。
（Ｓ９１１）：
そして、アクセス装置２は、取得した不揮発性記憶装置１のＭＩＣに関する情報から、移動処理中のＭＩＣがあるか否か、つまり、ＭＯＶＩＮＧ  ＭＩＣが存在するか否かを判断する（Ｓ９１１）。
（Ｓ９１２、Ｓ９１３）：
Ｓ９１１で、ＭＯＶＩＮＧ  ＭＩＣが存在すると判断された場合（Ｓ９１１で「ＹＥＳ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、分割処理「有り」の指定と供にＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドを発行し、所定時間Ｔを超えない範囲で移動処理を継続させ（Ｓ９１２）、移動処理実施フラグをＯＮに設定する（Ｓ９１３）。そして、Ｓ９０１の処理に戻る。
（Ｓ９１４）：
Ｓ９１１で、ＭＯＶＩＮＧ  ＭＩＣが存在しないと判断された場合（Ｓ９１１で「ＮＯ」の場合）、アクセス装置２は、キャッシュ制御部２０３が内部で管理する移動待ちフラグを参照し、ＭＩＣに移動待ちのデータがあるか否かを判断する（Ｓ９１４）。
（Ｓ９１５、Ｓ９１６、Ｓ９１３）：
Ｓ９１４で、参照した移動待ちフラグがＯＮである場合（Ｓ９１４で「ＹＥＳ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、分割処理「有り」の指定と供にＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを発行し、所定時間Ｔを超えない範囲で移動処理を実行し、移動待ちフラグをＯＦＦに更新し（Ｓ９１６）、さらに、前回移動処理実施フラグをＯＮに更新し（Ｓ９１３）、Ｓ９０１の処理に戻る。
（Ｓ９１８〜Ｓ９２０）：
Ｓ９１４で、参照した移動待ちフラグがＯＦＦである場合（Ｓ９１４で「ＮＯ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、キャッシュ制御部２０３の指示により１回以上のＭＩＣ＿ＷＲＩＴＥコマンドを発行することで関連するコンテンツ管理情報ファイルの書き込みを行い、コンテンツ管理情報ファイルの内容の整合性を確保する（Ｓ９１８）。そして、アクセス装置２は、不揮発性記憶装置１に対して、ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンドを発行し、Ｓ９１８でＭＩＣに仮有効データとして格納されたコンテンツ管理情報ファイルの更新データを有効化し（Ｓ９１９）、前回移動処理実施フラグをＯＦＦに更新し（Ｓ９２０）、Ｓ９０１の処理に戻る。
【００９０】
また、Ｓ９０９で前回移動処理実施フラグがＯＮである場合（Ｓ９０９で「ＹＥＳ」の場合）も、アクセス装置２は、Ｓ９１８、Ｓ９１９、Ｓ９２０の処理を実施して、Ｓ９０１の処理に戻る。
以上のような手順により、アクセス装置２は、図１９で示したコンテンツ記録順序を実現することが可能となる。
図２１は、不揮発性記憶システム１０００でのコンテンツ記録処理に伴うＭＩＣの書き込みデータの状況の時系列的に示す図である。
図２１において、Ｔ０１が最も古く、Ｔ１４に近づくにつれて新しくなっている。ＡからＦのアルファベットはＭＩＣに登録された異なる論理アドレスを表している。（）内の数字は、その論理アドレスに対する何番目の書き込みデータであるかを表している。下線ありは仮有効データ、下線なしは有効データを表している。［］付きはＭＩＣから記憶領域１２１への移動処理済みデータであることを表している。
Ｔ０１：
コンテンツ記録処理前は、ＭＩＣ１およびＭＩＣ１２の状態は、Ｔ０１の状態である。
Ｔ０２：
コンテンツ記録処理を開始し、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０９、Ｓ９１８（ＭＩＣ＿ＷＲＩＴＥ発行）の処理が実行され、Ｔ０２の状態となる。
Ｔ０３：
さらに、Ｓ９１９（ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥ発行）の処理が実行され、Ｔ０３となる。
Ｔ０４：
さらに、Ｓ９２０、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０４（ＭＩＣ＿ＷＲＩＴＥ発行）の処理が実行され、Ｔ０４の状態となる。
Ｔ０５：
さらに、Ｓ９０５、Ｓ９０６（ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥ発行）の処理が実行され、Ｔ０５の状態となる。
Ｔ０６：
さらに、Ｓ９０７、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０９、Ｓ９１０（ＧＥＴ＿ＭＩＣ＿ＩＮＦＯ発行）、Ｓ９１１、Ｓ９１４、Ｓ９１５（ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥ（分割あり）発行）の処理が実行され、Ｔ０６の状態となる。そして、この段階で、ＭＩＣ１から記憶領域１２１への移動処理が開始される。そして、Ｔ０６において、ＭＩＣ１の状態が「ＡＣＴＩＶＥ」から「ＭＯＶＩＮＧ」となり、ＭＩＣ２の状態が「ＩＮＡＣＴＩＶＥ」から「ＡＣＴＩＶＥ」となる。したがって、Ｔ０６以降では、コンテンツ管理情報ファイルの新規データは、ＭＩＣ２に書き込まれることになる（ＭＩＣ２がキャッシュ対象となる）。
Ｔ０７：
さらに、Ｓ９１６（ＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥ（分割あり）発行）、Ｓ９１３、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０９、Ｓ９１８（ＭＩＣ＿ＷＲＩＴＥ発行）の処理が実行され、Ｔ０７の状態となる。
Ｔ０８：
さらに、Ｓ９１９（ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥ発行）の処理が実行され、Ｔ０８の状態となる。
Ｔ０９：
さらに、Ｓ９２０、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０９、Ｓ９１０（ＧＥＴ＿ＭＩＣ＿ＩＮＦＯ発行）、Ｓ９１１、Ｓ９１２（ＣＯＮＴＩＮＵＥ＿ＭＯＶＥ（分割あり）発行）の処理が実行され、Ｔ０９の状態となる。
Ｔ１０：
さらに、Ｓ９１３、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０９、Ｓ９１８（ＭＩＣ＿ＷＲＩＴＥ発行）の処理が実行され、Ｔ１０の状態となる。
Ｔ１１：
さらに、Ｓ９１９（ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥ発行）の処理が実行され、Ｔ１１の状態となる。
Ｔ１２：
さらに、Ｓ９２０、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０９、Ｓ９１０（ＧＥＴ＿ＭＩＣ＿ＩＮＦＯ発行）、Ｓ９１１、Ｓ９１２（ＣＯＮＴＩＮＵＥ＿ＭＯＶＥ（分割あり）発行）の処理が実行され、Ｔ１２の状態となる。Ｔ１２の段階で、ＭＩＣ１の移動処理の対象のデータがなくなるため、ＭＩＣ１の状態が「ＭＯＶＩＮＧ」から「ＩＮＡＣＴＩＶＥ」に遷移する。
Ｔ１３：
さらに、Ｓ９１３、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０４（ＭＩＣ＿ＷＲＩＴＥ発行）の処理が実行され、Ｔ１３の状態となる。
Ｔ１４：
さらに、Ｓ９０５、Ｓ９０８（ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥ（分割なし）発行）の処理が実行され、Ｔ１４の状態となる。つまり、Ｔ１４の段階で、仮有効データを一括した有効し、その有効化したデータのＭＩＣ２から記憶領域１２１への移動処理が一括して実行される。そして、ＭＩＣ２の状態が「ＡＣＴＩＶＥ」から「ＩＮＡＣＴＩＶＥ」に遷移し、ＭＩＣ１の状態が「ＩＮＡＣＴＩＶＥ」から「ＡＣＴＩＶＥ」に遷移する。
【００９１】
（１．３．３：コンテンツ記録準備処理）
次に、コンテンツ記録準備処理について、説明する。
アクセス装置２が上述したコンテンツ記録処理を正常に完了した場合、不揮発性記憶装置１のＭＩＣには、有効データ及び仮有効データが全く存在しない状態となる。一方、コンテンツ記録処理の途中で電源断や抜去が発生した場合、ＭＩＣに有効または仮有効のデータが残った状態となるため、次のコンテンツ記録処理を開始する前に準備処理を行う必要がある。
図２２は、不揮発性記憶システム１０００において、コンテンツ記録処理中の電源断もしくは抜去直後のＭＩＣが取りうる状態の組合せを示している。
図３及び図５にて説明したようにＭＩＣ１及びＭＩＣ２のうち一方は、常に、ＡＣＴＩＶＥ  ＭＩＣである。そして、ＭＩＣの格納データの状態は、（１）有効データ及び仮有効データが存在しない（データなし）場合と、（２）有効データのみが存在する場合と、（３）仮有効データのみが存在する場合と、（４）有効データ及び仮有効データの両方が存在する場合の４つのケースがある。
【００９２】
また、もう一方のＭＩＣ（ＡＣＴＩＶＥ  ＭＩＣでない方のＭＩＣ）は、ＭＯＶＩＮＧ  ＭＩＣまたはＩＮＡＣＴＩＶＥ  ＭＩＣであり、ＭＩＣがＭＯＶＩＮＧ  ＭＩＣである場合、そのＭＩＣの格納データは、有効データであり、ＭＩＣがＩＮＡＣＴＩＶＥ  ＭＩＣである場合、データなし、つまり、そのＭＩＣに格納されているデータは存在しない。
従って、不揮発性記憶システム１０００において、コンテンツ記録処理中の電源断もしくは抜去直後のＭＩＣが取りうる状態の組合せの数は、図２２に示すように、４かける２で８通りとなる。
そして、これら８通りのいずれかの状態にある不揮発性記憶装置１がアクセス装置に装着され初期化コマンドを受信すると、図７で説明した初期化処理コマンド処理が実行される。不揮発性記憶装置１が従来のアクセス装置に装着された場合、不揮発性記憶装置１は、ＭＩＣの仮有効データを破棄する（図２３（ａ））。一方、不揮発性記憶装置１が本発明のアクセス装置２に装着された場合、不揮発性記憶装置１は、ＭＩＣの仮有効データを破棄または保持する（図２３（ｂ））。
【００９３】
仮有効データが破棄された場合、ＭＩＣには仮有効データが存在しない状態となるので、初期化コマンド処理後のＭＩＣが取りうる状態の組合せは、図２４に示すとおり、４通りとなる。
なお、不揮発性記憶装置１が従来のアクセス装置に装着された場合、従来のアクセス装置側で特別な処理を行わなくても、不揮発性記憶装置１側で、仮有効データを破棄することによって、ＭＩＣに格納されたコンテンツ管理情報ファイルの整合性が確保される。これにより、既に普及している従来のアクセス装置と本発明の不揮発性記憶装置１との互換性を維持することができる。
また、アクセス装置２が不揮発性記憶装置１に対して初期化コマンドを発行したときに、不揮発性記憶装置１が仮有効データを保持することを選択できることは次の点で有用である。例えば、アクセス装置２が不揮発性記憶装置１への書き込み処理を実行中にエラーが発生し、リトライ処理が必要になったとする。できるだけ確実なリトライ処理を行うために、アクセス装置２が不揮発性記憶装置１に対して初期化コマンドを発行してから再書き込みしようとする場合、不揮発性記憶装置１のＭＩＣで仮有効データが保持されていることが望ましい。なぜならば、仮有効データが破棄されてしまうと、これらの１つ以上の仮有効データに関しても、再書き込みが必要となり処理が煩雑になってしまうからである。但し、これは特殊な用途であり、通常は、アクセス装置２でも仮有効の破棄を指定する。
【００９４】
アクセス装置２でも、不揮発性記憶装置１に対して、ＭＩＣの仮有効データの破棄を指定することで、特別な処理を行わずにコンテンツ管理情報ファイルの整合性が確保される。このことは、アクセス装置２側の処理負荷を削減するという点で有用である。
本発明によるアクセス装置２は、不揮発性記憶装置１に対して、初期化コマンドを発行した後、コンテンツ記録処理前にＭＩＣ準備処理を実施する。図２５は、アクセス装置２によるＭＩＣ準備処理の手順を示すフローチャートである。
（Ｓ１００１）：
アクセス装置２は、不揮発性記憶装置１に対して、ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドを発行し、ＭＩＣに関する情報を取得する（Ｓ１００１）。
（Ｓ１００２、Ｓ１００３）：
そして、アクセス装置２は、ＭＩＣに関する情報から、ＭＯＶＩＮＧ  ＭＩＣが存在するか否かを判断する（Ｓ１００２）。
【００９５】
Ｓ１００２で、ＭＯＶＩＮＧ  ＭＩＣが存在すると判断された場合（Ｓ１００２で「ＹＥＳ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、分割処理「無し」の指定と供にＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドを発行し、ＭＯＶＩＮＧ  ＭＩＣの有効データを記憶領域１２１に移動する処理を完結させ、ＭＯＶＩＮＧ  ＭＩＣをＩＮＡＣＴＩＶＥ  ＭＩＣにする。この処理を行うことで、ＭＩＣが取りうる状態の組合せは、図２６に示すとおり、２通りとなる。
Ｓ１００２で、ＭＯＶＩＮＧ  ＭＩＣが存在しないと判断された場合（Ｓ１００２で「ＮＯ」の場合）、アクセス装置２は、何もせず、Ｓ１００４の処理に移行する。
（Ｓ１００４、Ｓ１００５）：
次に、アクセス装置２は、ＭＩＣに関する情報から、ＡＣＴＩＶＥ  ＭＩＣに有効データが存在するか否かを判断する（Ｓ１００４）。
【００９６】
ＡＣＴＩＶＥ  ＭＩＣに有効データが存在しないと判断された場合（Ｓ１００４で「ＮＯ」の場合）、アクセス装置２は、処理を終了させる。
ＡＣＴＩＶＥ  ＭＩＣに有効データが存在すると判断された場合（Ｓ１００４で「ＹＥＳ」の場合）、アクセス装置２は、不揮発性記憶装置１に対して、分割処理「無し」の指定と供にＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを発行し、全ての有効データを記憶領域１２１に移動する処理を完結させる。この処理を行うことで、ＭＩＣが取りうる状態の組合せは、図２７に示すとおり、１通り（ＭＩＣには有効データ及び仮有効データが全く存在しない状態）となる。
なお、Ｓ１００４においてＡＣＴＩＶＥ  ＭＩＣに有効データが存在すると判断された場合であっても、その登録論理アドレス数が登録可能論理アドレス数に対して十分に小さく、アクセス装置２がその後のコンテンツ記録処理に支障ないと判断するならば、Ｓ１００５の処理を省略することも可能である。
【００９７】
以上のように、不揮発性記憶システム１０００では、アクセス装置２がコンテンツ記録準備処理を行うことで、コンテンツ記録処理の途中で電源断や抜去が発生した場合に生じるＭＩＣに有効または仮有効のデータが残った状態を解消させることができる。つまり、不揮発性記憶システム１０００では、コンテンツ管理情報ファイル等のデータ書込み中に電源断や不揮発性記憶装置の抜去が発生した場合にも、データの内容の不整合を回避させることができるとともに、次のコンテンツ記録処理を、ＭＩＣには有効データ及び仮有効データが全く存在しない状態から開始させることができる。
したがって、不揮発性記憶システム１０００では、電源断や不揮発性記憶装置の抜去等の不測の事態が発生した場合であっても、データの内容の整合性を確保しつつ、確実に、コンテンツ記録処理（データ記録処理）を行うことができる。
【００９８】
≪まとめ≫
以上のように、不揮発性記憶システム１０００では、不揮発性メモリ１２上に設けられたキャッシュ領域（ＭＩＣ１、ＭＩＣ２）に格納する（書き込むデータ）を、「有効データ」および「仮有効データ」として管理するとともに、キャッシュ領域（ＭＩＣ１、ＭＩＣ２）を、「ＡＣＴＩＶＥ」、「ＭＯＶＩＮＧ」、「ＩＮＡＣＴＩＶＥ」の３つ状態を所定のコマンドにより遷移させることで管理することで、キャッシュ領域を変更するための処理を効率的に行うことができる。不揮発性記憶システム１０００では、上記のように管理されるキャッシュ領域（ＭＩＣ１、ＭＩＣ２）を用いて、ＡＶコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、こまめに更新する（書き込む）ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。そのため、不揮発性記憶システム１０００では、記録処理中に不測の事態（不揮発性記憶装置の電源断や抜去等）が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置１に保持させることができる。
【００９９】
また、不揮発性記憶システム１０００では、複数のＡＶコンテンツを連続的に記録する場合、記録対象のＡＶコンテンツを切り替えるときにおいても、時間のかかるＭＩＣの有効データの移動処理を分割して実施することが可能であるため、次のＡＶコンテンツの記録が長時間待たされることがない。
つまり、不揮発性記憶システム１０００では、キャッシュ領域（ＭＩＣ１、ＭＩＣ２）、および、キャッシュ領域に格納されるデータの状態を適切に管理することで、コンテンツファイルと、そのコンテンツ管理情報ファイルとの整合性を確保させつつ、連続して記録するコンテンツのリアルタイム記録のための準備時間を短縮させることができる。さらに、不揮発性記憶システム１０００では、コンテンツ管理情報ファイル等のデータ書込み中に電源断や不揮発性記憶装置の抜去が発生した場合にも、データの内容の不整合を回避することができる。
【０１００】
［他の実施形態］
なお、本発明を上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。本発明の上記実施形態で記載された数値は一例であり、他の値を使用してもよい。例えば、物理ブロックサイズやページサイズなどの値はすべて一例であり、上記実施形態に記載した値に限定されるものではない。ＭＩＣへの書き込み単位もセクタに限定されない。
また、以下のような場合も本発明に含まれる。
（１）上記実施形態における、アクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムにおいて、各機能ブロックはＬＳＩなどの半導体装置により個別に１チップ化されてもよいし、一部または全部を含むように１チップ化されてもよい。
【０１０１】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（２）上記実施形態における各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。なお、上記実施形態に係るアクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムハードウェアにより実現する場合、書く処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０１０２】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
（３）上記実施形態におけるＭＩＣは、ＭＩＣ１とＭＩＣ２の２つから構成されるものとして説明したが、ＭＩＣの数はこれに限定されるものではない。例えば、３つ以上存在する場合には、少なくとも１つがＡＣＴＩＶＥ  ＭＩＣであればアクセス装置２からの書き込みを受付可能である。従って、ＭＯＶＩＮＧ  ＭＩＣが存在する状態で、さらに別のＡＣＴＩＶＥ  ＭＩＣをＭＯＶＩＮＧ  ＭＩＣにすることも可能となる。
また、逆にＭＩＣを１つにしてもよい。ＭＩＣが１つの場合のＭＩＣの状態とＭＩＣ操作コマンドによる状態遷移を図２８に示す。
【０１０３】
「状態Ｅ」は、ＭＩＣ１がＡＣＴＩＶＥの状態である。
「状態Ｆ」は、ＭＩＣ１がＭＯＶＩＮＧの状態である。
ＭＩＣが１つの場合、不揮発性記憶装置側の実装が簡素化される一方、ＭＩＣにデータを書き込むことができない状態「状態Ｆ」が存在するため、アクセス装置側での制御が複雑化する。
「状態Ｅ」において、不揮発性記憶装置がアクセス装置からＣＯＭＭＩＴ＿Ｗ＿ＭＯＶＥコマンドを受信した場合、ＡＣＴＩＶＥ  ＭＩＣの全ての有効データの移動処理が開始される。そして、コマンド処理後に移動処理が完結しなかった場合、ＭＩＣの状態は、「状態Ｅ」から「状態Ｆ」に遷移し、一方、移動処理が完結した場合には、状態遷移は発生しない（「状態Ｅ」のままである）。
【０１０４】
「状態Ｆ」において、不揮発性記憶装置がアクセス装置からＣＯＮＴＩＮＵＥ＿ＭＯＶＥコマンドを受信した場合、ＭＯＶＩＮＧ  ＭＩＣの全ての有効データの移動処理が継続される。そして、コマンド処理後に移動処理が完結しなかった場合、ＭＩＣの状態は、「状態Ｆ」に留まり、一方、移動処理が完結した場合、ＭＩＣの状態は、「状態Ｆ」から「状態Ｅ」に遷移する。
不揮発性記憶装置が、アクセス装置から、ＭＩＣ＿ＷＲＩＴＥコマンド、ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンド、ＧＥＴ＿ＭＩＣ＿ＩＮＦＯコマンドを受信した場合には、状態遷移は発生しない。なお、「状態Ｆ」ではＡＣＴＩＶＥ  ＭＩＣが存在しないため、ＭＩＣ＿ＷＲＩＴＥコマンド、ＣＯＭＭＩＴ＿ＷＯ＿ＭＯＶＥコマンドを受付けることができない。
【０１０５】
ＭＩＣの数を増やすことでアクセス装置側の制御の自由度が高まり、ＭＩＣの数を減らすことで不揮発性記憶装置の実装の簡素化と記憶容量の増加が見込める。ＭＩＣの数を増やした場合のメリットと、ＭＩＣの数を減らした場合のメリットとは、トレードオフの関係にあるため、不揮発性記憶システムの目的に応じて、ＭＩＣの数を決定することが望ましい。
（４）上記実施形態におけるＭＩＣ操作コマンドは一例である。同様の機能を提供するものであれば、複数のコマンドに分割されていてもよいし、別のコマンドと統合されていてもよい。
（５）上記実施形態における不揮発性記憶装置は、半導体メモリカードのような着脱可能な記憶装置として説明したが、アクセス装置の基板に組み込みできる形式の情報記憶モジュールとして実現してもよい。
（６）上記実施形態において、コンテンツ記録処理は、連続する２つの番組を記録する場合を例に説明したが、これに限定されることない。例えば、不揮発性記憶システム１０００において、アクセス装置２のＡＶ入力部２５が複数のチューナーを備えている場合などでは、不揮発性記憶システム１０００において、連続する複数の番組を同時に記録するようにしてもよい。
【０１０６】
図２９は、本発明のアクセス装置２がＡＶコンテンツを格納する際の記録の順序の一例を示している。図２９に示すように、放送時間が連続する２つの番組ＰＲＧ３とＰＲＧ５、および、その両方に重複する１つの番組ＰＲＧ４の計３つの番組を、３つのＡＶコンテンツ（ＰＲＧ３、ＰＲＧ４、ＰＲＧ５）として、「ＰＲＧ３」、「ＰＲＧ４」、「ＰＲＧ５」ディレクトリにそれぞれ格納するものとする。
（期間Ｔ１〜Ｔ２）：
まず、アクセス装置２は、図２９に示すように、期間Ｔ１〜Ｔ２において、ＰＲＧ３のコンテンツファイル記録処理「Ｓ３」と、ＰＲＧ４のコンテンツファイル記録処理「Ｓ４」と、ＰＲＧ３のコンテンツ管理情報ファイルおよびＰＲＧ４のコンテンツ管理情報ファイルの記録処理「Ｍ３・４」を順に繰り返し実行する。不揮発性記憶システム１０００では、ＰＲＧ３及びＰＲＧ４のコンテンツファイルのデータが不揮発性メモリ１２の記憶領域１２１に書き込まれた後、各々のコンテンツ管理情報ファイルの更新データ（書き込みデータ）が不揮発性記憶装置１のＭＩＣ１に短時間で書き込まれる（短時間で更新処理（書き込み処理）が実行される）。
（期間Ｔ２〜Ｔ３）：
そして、ＰＲＧ３のストリームデータ本体の記録が完了したら（時刻Ｔ２）、不揮発性記憶システム１０００では、ＭＩＣ１でのコンテンツ管理情報ファイルの更新処理を短時間（期間Ｔ２〜Ｔ３）で実施した後、ＭＩＣ１の仮有効データを有効化してから、ＰＲＧ５のストリームデータのコンテンツファイル記録処理「Ｓ５」を開始する（時刻Ｔ３）。
（期間Ｔ３〜Ｔ４）：
その後、不揮発性記憶システム１０００では、図２９に示すように、コンテンツファイル記録処理「Ｓ５」「Ｓ４」と、コンテンツ管理情報ファイル移動処理「ｍ３・４」またはコンテンツ管理情報ファイル記録処理「Ｍ５・４」が順に繰り返し実行される。
【０１０７】
ここで、コンテンツ管理情報ファイル移動処理「ｍ３・４」は、コンテンツ管理情報記録処理「Ｍ３・４」によってＭＩＣ１に格納された有効データを不揮発性記憶装置１の記憶領域１２１に移動する処理を所定時間Ｔだけ実施する処理である。
また、コンテンツ管理情報記録処理「Ｍ５・４」は、ＰＲＧ４及びＰＲＧ５のコンテンツ管理情報ファイルの更新データ（書き込みデータ）を、ＭＩＣ２に短時間に書き込む処理である。
（期間Ｔ４〜Ｔ５）：
ＰＲＧ４及びＰＲＧ５の記録中においてＭＩＣ１に格納された有効データの移動処理が完了した時点（時刻Ｔ４）より後は、図２９に示すように、不揮発性記憶システム１０００では、ＰＲＧ５のコンテンツファイル記録処理「Ｓ５」、ＰＲＧ４のコンテンツファイル記録処理「Ｓ４」、ＰＲＧ５およびＰＲＧ４のコンテンツ管理情報ファイルの記録処理「Ｍ５・４」が順に繰り返し実行される。
（期間Ｔ５〜Ｔ６）：
そして、ＰＲＧ４及びＰＲＧ５のストリームデータ本体の記録が完了したら（時刻Ｔ５）、ＭＩＣ２でコンテンツ管理情報ファイルの更新処理（記録処理）が実施され、ＭＩＣ２の有効データを不揮発性記憶装置１の記憶領域１２１に移動する処理が開始される。この移動処理は、続けて別の番組の記録する必要がある場合には、所定時間Ｔ以内に分割して実施されるが、そうでなければ一括して実施されることが好ましい。つまり、図２９の期間Ｔ５〜Ｔ６のＭＩＣ２の移動処理は、続けて別の番組の記録する必要がない場合、一括移動処理とすることが好ましい。
【０１０８】
以上のように、本発明は、同時に記録するＡＶコンテンツが複数になっても適用可能である。
（７）上記実施形態において、図１９にて、２つ目の番組ＰＲＧ２のストリームデータ本体の記録処理（コンテンツファイル記録処理）「Ｓ２」を開始した後は、コンテンツファイル記録処理「Ｓ２」と、ＰＲＧ１のコンテンツ管理情報ファイル移動処理「ｍ１」またはＰＲＧ２のコンテンツ管理情報ファイルの記録処理「Ｍ２」を交互に繰り返すものとしたが、必ずしも交互に繰り返す必要はない。「ｍ１」の実施タイミングは、アクセス装置の都合により任意のタイミングで決定してよい。例えば、ＲＡＭ２２に蓄積されたストリームデータ（コンテンツファイルのデータ）の量が少なく、アクセス装置側の処理に余裕があるとき（期間）に、ＰＲＧ１のコンテンツ管理情報ファイル移動処理「ｍ１」を実施するようにしてもよい。
（８）上記実施形態において、アクセス装置２と不揮発性記憶装置１とは、別装置である場合について説明したが、これに限定されることはなく、アクセス装置２と不揮発性記憶装置１とは、１つの装置内に構成されるものであってもよい。また、アクセス装置は、アクセスモジュールを含む概念であり、不揮発性記憶装置は、不揮発性記憶モジュールを含む概念である。
【０１０９】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【０１１０】
本発明にかかる不揮発性記憶システム、アクセス装置、不揮発性記憶装置、データ記録方法、および、プログラムは、不揮発性メモリ上に設けられたキャッシュの対象領域を変更する処理を効率的に行うことができるため、連続するコンテンツデータ記録のための準備時間を短縮することができるとともに、コンテンツ管理情報ファイル等のデータ書込み中に電源断や不揮発性記憶装置の抜去が発生した場合にも、データの内容の不整合を回避することができる。これは、半導体メモリカードはいうまでもなく、半導体メモリカード等の不揮発性記憶装置を使用した動画や音楽、静止画などのデジタルコンテンツを取り扱うアクセス装置であるＰＣアプリケーション、オーディオレコーダ、ＤＶＤレコーダ、ＨＤＤレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等のアクセス装置に最適（有用）であり、本発明は、半導体メモリ関連分野において、実施をすることができる。
【符号の説明】
【０１１１】
１０００  不揮発性記憶システム
１      不揮発性記憶装置
２      アクセス装置
１１    メモリコントローラ
１２    不揮発性メモリ
２１、１０１  ＣＰＵ
２２、１０２  ＲＡＭ
２３、１０３  ＲＯＭ
２４    不揮発性記憶装置インタフェース部
２５    ＡＶ入力部
２６    符号処理部
２７    暗号処理部
１０５  不揮発性メモリインタフェース部
１０６  コマンド処理部
１０７  アドレス管理部
１０８  キャッシュ領域管理部
１２１  記憶領域
１２２  第１キャッシュ領域
１２３  第２キャッシュ領域
１２４  フリーブロック領域
１２５  システム領域
２０１  アプリケーション部
２０２  ファイルシステム部
２０３  キャッシュ制御部
２０４  不揮発性記憶装置アクセスドライバ部
【図１】
2011133947.tif 000003
【図２】
2011133947.tif 000004
【図３】
2011133947.tif 000005
【図４】
2011133947.tif 000006
【図５】
2011133947.tif 000007
【図６】
2011133947.tif 000008
【図７】
2011133947.tif 000009
【図８】
2011133947.tif 000010
【図９】
2011133947.tif 000011
【図１０】
2011133947.tif 000012
【図１１】
2011133947.tif 000013
【図１２】
2011133947.tif 000014
【図１３】
2011133947.tif 000015
【図１４】
2011133947.tif 000016
【図１５】
2011133947.tif 000017
【図１６】
2011133947.tif 000018
【図１７】
2011133947.tif 000019
【図１８】
2011133947.tif 000020
【図１９】
2011133947.tif 000021
【図２０Ａ】
2011133947.tif 000022
【図２０Ｂ】
2011133947.tif 000023
【図２１】
2011133947.tif 000024
【図２２】
2011133947.tif 000025
【図２３】
2011133947.tif 000026
【図２４】
2011133947.tif 000027
【図２５】
2011133947.tif 000028
【図２６】
2011133947.tif 000029
【図２７】
2011133947.tif 000030
【図２８】
2011133947.tif 000031
【図２９】
2011133947.tif 000032