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