(57)【要約】【課題】管理情報へのアクセス集中やメモリ特性の悪化に対して、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐようにする。【解決手段】ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドを受信し、前記受信したコマンドがいずれに対するものであるかを判別する。その判別の結果に応じて、前記ユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報を記憶する不揮発性メモリ手段に対する制御方式を切り換える。そして、切り換え後の制御方式に従い、前記ユーザデータ又は前記管理情報を前記不揮発性メモリ手段に記録する。【選択図】図１
2010152703.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報を記憶する不揮発性メモリ手段と、
ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドがいずれに対するものであるかを判別し、判別結果に応じて前記不揮発性メモリ手段に対する制御方式を切り換えるメディアコントローラと、
を備える不揮発性記憶装置。
【請求項２】
ユーザデータを記憶する第１の不揮発性メモリと、
前記第１の不揮発性メモリよりデータ保存の点で信頼性が高く、前記ユーザデータをファイルシステム上で管理するための管理情報を記憶する第２の不揮発性メモリと、を備え、
前記メディアコントローラは、
前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドに応じて、前記第１の不揮発性メモリと前記第２の不揮発性メモリを切り換えてデータを保存すべく制御を行う、
請求項１に記載の不揮発性記憶装置。
【請求項３】
前記メディアコントローラは、
前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する前記コマンドを取得するホストインターフェースと、
前記ホストインターフェースで取得した前記ユーザデータ及び前記管理情報に対するコマンドのプロトコルに基づいて、いずれに対するコマンドであるか判別するプロトコル判別部と、
前記第１の不揮発性メモリに対する制御を行う第１の不揮発性メモリ制御部と、
前記第２の不揮発性メモリに対する制御を行う第２の不揮発性メモリ制御部と、
前記プロトコル判別部の判別結果に応じて、前記第１の不揮発性メモリ制御部と前記第２の不揮発性メモリ制御部を切り換える不揮発性メモリ制御選択部と、を更に備える
請求項２に記載の不揮発性記憶装置。
【請求項４】
前記メディアコントローラは、
前記ホスト装置から入力される、前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドが前記管理情報に対するものである場合、管理情報に対し前記ユーザデータより高い能力を持つ誤り訂正コードを付加して前記不揮発性メモリに保存すべく制御を行う、
請求項１に記載の不揮発性記憶装置。
【請求項５】
前記不揮発性メモリ手段は一つの不揮発性メモリから構成され、
前記メディアコントローラは、
前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する前記コマンドを取得するホストインターフェースと、
前記ホストインターフェースで取得した前記ユーザデータ及び前記管理情報に対するコマンドのプロトコルに基づいて、いずれに対するコマンドであるか判別するプロトコル判別部と、
保存すべきデータに第１の誤り訂正コードを付与する第１の誤り訂正回路を有し、前記不揮発性メモリに対する制御を行う第１の不揮発性メモリ制御部と、
保存すべきデータに前記第１の誤り訂正コードより高い訂正能力の第２の誤り訂正コードを付与する第２の誤り訂正回路を有し、前記不揮発性メモリに対する制御を行う第２の不揮発性メモリ制御部と、
前記プロトコル判別部の判別結果に応じて、前記第１の不揮発性メモリ制御部と前記第２の不揮発性メモリ制御部を切り換える不揮発性メモリ制御選択部と、を更に備える
請求項４に記載の不揮発性記憶装置。
【請求項６】
前記メディアコントローラは、
前記ホスト装置から入力される、前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドが前記管理情報に対するものである場合、前記不揮発性メモリに前記管理情報を２重に書き込むべく制御を行う、
請求項１に記載の不揮発性記憶装置。
【請求項７】
前記メディアコントローラは、
前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する前記コマンドを取得するホストインターフェースと、
前記ホストインターフェースで取得した前記ユーザデータ及び前記管理情報に対するコマンドのプロトコルに基づいて、いずれに対するコマンドであるか判別するプロトコル判別部と、
前記プロトコル判別部の判別の結果、前記管理情報に対するコマンドであった場合、前記不揮発性メモリに前記管理情報を２重に書き込むべく制御を行う不揮発性メモリ制御部と、を更に備える
請求項５に記載の不揮発性記憶装置。
【請求項８】
ファイルアクセス指示を行うアプリケーション処理部と、
前記アプリケーション処理部のファイルアクセス指示に基づいて、ユーザデータと該ユーザデータをファイルシステム上で管理するための管理情報に対する処理内容を記述したコマンドを生成するファイルシステム制御部と、
前記ユーザデータと前記管理情報に対するコマンドを、不揮発性記憶装置へ転送するメディア制御部と、
を備えるホスト装置と、
前記ユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報を記憶する不揮発性メモリ手段と、
前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドがいずれに対するものであるかを判別し、判別結果に応じて前記不揮発性メモリ手段に対する制御を切り換えるメディアコントローラと、
を含む情報記録システム。
【請求項９】
ホスト装置から入力される、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを受信する第１ステップと、
前記受信したコマンドがいずれに対するものであるかを判別する第２ステップと、
前記判別の結果に応じて、前記ユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報を記憶する不揮発性メモリ手段に対する制御方式を切り換える第３ステップと、
前記切り換え後の制御方式に従い、前記ユーザデータ又は前記管理情報を前記不揮発性メモリ手段に記録する第４ステップと、を含む
情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを安全な状態で保存することができる、不揮発性メモリデバイスを備えた不揮発性記憶装置、不揮発性記憶装置を含む情報記録システム、及び情報記録方法に関する。
【背景技術】
【０００２】
近年、半導体メモリデバイス等を備え電気的に書き換え可能な不揮発性記憶装置（以下、「メディア」と称する。）の大容量化に伴い、従来は磁気ディスク等に記憶していたファイルデータを記録するメディアとして、メモリカードなどの補助記憶装置が製品化されている。特に、ＮＡＮＤ型フラッシュメモリは、大容量を低コストで実現できるためデジタルカメラや携帯電話端末などの用途に多く使用されるようになっている。
【０００３】
図３０に、メディアに対しデータの読出し及び書込みを行うホスト装置として機能する情報記録装置（以下、「ホスト」と称する。）とメディアから構成されるストレージシステムを示す。
【０００４】
ストレージシステムは、ホスト４００とメディア３００からなり、メディア３００はメディアコントローラ３１０と不揮発性メモリデバイス（ＮＶＭ:Non-Volatile Memory）３５０からなる。メディアコントローラ３１０は、ホストインターフェース３２０、ＮＶＭ制御部３３０及びＮＶＭインターフェース３４０を備える。メディアコントローラ３１０は、ホストインターフェース３２０を経由して受信した所定プロトコルのデータに含まれる情報に基づき、ＮＶＭ制御部３３０によって不揮発性メモリデバイス３５０を制御し、ストレージとしての動作を実現する。
【０００５】
ホスト４００は、ストレージを制御するための管理情報用およびユーザデータ用のバッファ部を持ち、バッファリングした管理情報とユーザデータをメディア３００へ出力する。このときホスト４００は、管理情報又はユーザデータのどちらのデータか判別する手段を持たない同じ方法（同一のプロトコル）で、メディア３００へ出力している。このホスト４００としては、上記のデジタルカメラや携帯電話端末、パーソナルコンピュータなど、種々の情報記録装置が適用される。
【０００６】
ストレージシステムにおいて、ホスト４００はメディア３００に対してアクセスするための所定プロトコルを利用する。ホスト４００内のソフトウェアレイヤーを、図３１に示す。
【０００７】
図３１に示すように、主にアプリケーション４５０、ファイルシステム４６０、メディア制御ドライバ４７０から構成される。アプリケーション４５０は、ユーザの操作等に従いファイルアクセスを行うとき、ファイルシステム４６０を介してファイルアクセスを指示する。
【０００８】
ホスト４００がファイルシステム４６０を使用してメディア３００に対してアクセスするデータには、「ユーザデータ」と、ファイルシステムの「管理情報」の２種類がある。ユーザデータは、アプリケーションを利用したユーザが作成したデータファイルである。一方、管理情報は、そのメディア上に保存されたすべてのユーザデータを管理している重要なデータである。現在、ファイルシステムとしてはＦＡＴ（File Allocation Tables）ファイルシステムなどが知られており、ＦＡＴファイルシステムを例にとれば、管理情報にはＢＰＢ，ＰＢＲ，ＦＡＴ１，ＦＡＴ２，ルートディレクトリ、ディレクトリがある。これら２種類のデータはホスト側から見て、１つのストレージ空間に配置される。
【０００９】
ファイルシステム４６０は、管理情報制御部４６１とユーザデータアクセス部４６２を備え、それぞれが管理情報とユーザデータの制御（アクセス制御）を行う。そして、ファイルシステム４６０からメディア制御ドライバ４７０へデータアクセス指示を出力する。
【００１０】
メディア制御ドライバ４７０は、図示しないメディア制御部を制御するソフトウェアであり、ファイルシステム４６０からのデータアクセス指示を受けて、メディア制御コマンド及びパラメータを、メディアインターフェース４８０へ出力する。このとき管理情報とユーザデータをメディア制御ドライバ４７０に出力するようにしている。
【００１１】
メディアインターフェース４８０は、メディア制御ドライバ４７０からのデータアクセス指示を受けて、メディアアクセスプロトコルのデータを、メディア３００へ出力する。メディア３００へ出力されるデータは、アプリケーションで使用する読出し／書込みコマンドの送信パターン（シーケンス）に従って出力される。
【００１２】
ホスト４００から送信される読出し／書込みコマンドの送信パターン（シーケンス）には、メディア３００からデータを読出すためのコマンドとして例えばREAD_DATA、またデータを書込むためのコマンドとしてWRITE_DATAが含まれている。図３２Ａ，Ｂにそれぞれ、読出しコマンドと書込みコマンドに対するメディア３００の処理を表したフローチャートを示している。
読出し処理の場合、図３２Ａに示すように、ＮＶＭ制御部３３０が例えばREAD_DATAコマンドを検出して（ステップＳ２３１）、不揮発性メモリデバイス３５０に対し読み出し制御を行う（ステップＳ２３２）。このとき、ＥＣＣ（Error Correcting Code）の確認、すなわち読出しデータの誤りの有無の確認（ステップＳ２３３）などが行われる。
一方、書込み処理の場合、図３２Ｂに示すように、ＮＶＭ制御部３３０が例えばWRITE_DATAコマンドを検出して（ステップＳ２３５）、不揮発性メモリデバイス３５０に対し書込み制御を行う（ステップＳ２３６）。このとき、不揮発性メモリデバイス３５０のステータスの確認（ステップＳ２３７）などが行われる。
【００１３】
ここで、図３３に、ファイルシステムの一例であるＦＡＴファイルシステムのストレージ空間の例を示す。
アクセス単位となるセクタ（５１２Ｂｙｔｅ）をもとに先頭アドレスを０とした連続するアドレス空間としてストレージ空間が存在する。ＦＡＴファイルシステムを例として、ストレージ空間を論理フォーマットした結果、先頭アドレスにＢＰＢが配置され、それに続きＰＢＲ，ＦＡＴ１，ＦＡＴ２，ルートディレクトリが管理情報として配置される。User Data Areaは、ディレクトリとファイルを含む。
【００１４】
ディレクトリも管理情報の一部であるが、ユーザの指示によって生成される管理情報であり、実際に生成されたタイミングによってその配置されるアドレスが決定される。ＦＡＴ２はＦＡＴ１のコピーとして存在するが、それ以外の管理情報はストレージ空間上にコピーが存在せず、データエラーとなった場合にはその情報は失われ、ストレージとして正常に動作することができなくなる。
【００１５】
また、管理情報はユーザデータと比較して必要とする容量も小さく、小さいサイズによるアクセスが行われる。例えば、ファイルシステムＦＡＴ３２の場合、４ＭＢｙｔｅのユーザデータの管理に必要なＦＡＴ情報のサイズは５１２Ｂｙｔｅになる（クラスタサイズが３２ＫＢｙｔｅの場合）。
【００１６】
図３４のフローチャートを参照して、図３１のファイルアクセスの例に該当する読み出しファイルアクセス処理を説明する。
ホスト４００は、スロットにメディア３００が装着されたことを検出するとマウント処理を開始する。ホスト４００は、まずＦＡＴファイルシステムのＢＰＢを読出し（ステップＳ２０１）、続いてＰＢＲを読み出す（ステップＳ２０２）。その後、ルートディレクトリを読み出す（ステップＳ２０３）。このように、ＢＰＢ，ＰＢＲ、ルートディレクトリは、メディア３００がマウントされる度に必ず１回以上読み出される。それ故、管理情報にアクセスが集中する。
【００１７】
次に、図３５のフローチャートを参照して、図３１のデータアクセスの例に該当する読出しファイルアクセス処理を説明する。
メディア３００では、ファイルへの読出しアクセス指示を検出すると、まずＦＡＴファイルシステムのディレクトリを読み出し（ステップＳ２１１）、続いてＦＡＴ１を読出す（ステップＳ２１２）。その後、ユーザデータを読出す（ステップＳ２１３）。そして、ユーザデータが終了したか否かを判定し（ステップＳ２１４）、ユーザデータがまだ終了していない場合はステップＳ２１２のＦＡＴ１の読出し処理へ戻る。ユーザデータが終了した場合は、一連の処理を終了する。
【００１８】
次に、図３６のフローチャートを参照して、図３１のデータアクセスの例に該当する書込みファイルアクセス処理を説明する。
メディア３００では、ファイルへの書込みアクセス指示を検出すると、まずＦＡＴファイルシステムのディレクトリを読み出し（ステップＳ２２１）、目的のユーザデータを検索して書込みを行う（ステップＳ２２２）。書込み後、ＦＡＴ１にユーザデータの書込み内容を反映し（ステップＳ２２３）、続いてＦＡＴ２にユーザデータの書込みを反映する（ステップＳ２２４）。そして、ユーザデータが終了したか否かを判定し（ステップＳ２２５）、ユーザデータがまだ終了していない場合はステップＳ２２２のユーザデータの書込み処理へ戻る。ユーザデータが終了した場合は、ディレクトリを書き込み（ステップＳ２２６）、一連の処理を終了する。
【００１９】
ＦＡＴ情報はクラスタと呼ばれるデータを管理単位として、１クラスタあたり最大３２Ｂｉｔを割り当て管理する。（ＦＡＴ３２の場合）。したがって、同じＦＡＴ情報が保存された１セクタで「３２×１２８＝４０９６Ｂｉｔ」（５１２Ｂｙｔｅ）が管理され、それらのクラスタへのアクセスの度に、この１セクタのＦＡＴ情報に１回以上のアクセスがされることになる。
【００２０】
図３７を参照して、図３１のメディア制御＆パラメータの具体例を説明する。この図３７は、ホスト４００からメディア３００へ発行される実際のコマンド（書込み処理のシーケンス）の一例である。
ホスト４００が発行するコマンドには、処理内容、メディアのセクタアドレス及びセクタ数の情報が含まれている。この例では、コマンドのＮｏ．１〜３、Ｎｏ．９〜１１が管理情報へのアクセスを伴うものであり、複数回にわたって管理情報へアクセスしている。
【００２１】
近年、フラッシュメモリ等のページサイズが２ｋ〜４ｋＢｙｔｅのサイズに拡張されている。このようなメモリを使用した場合、１Ｐａｇｅ＝４〜８セクタということは、さらに４〜８倍のアクセス集中が発生することが考えられる。このように、このファイルシステムの管理情報は、ユーザデータと比較して、ホストからのアクセス回数が集中するため、データ保持特性から見てデータエラーを発生しやすいという傾向がある。
【００２２】
このような状況で、ホスト４００からメディア３００へデータ保存中に、システムの電源が落ちた場合、保存の中断によってその保存処理中であったデータがデータエラーとなる状態が発生する。リムーバブルメディアの場合には、データ保存中に、メディアが抜かれた場合にも同じ状態が発生する。
【００２３】
図３８は、書込みファイルアクセス処理中（ユーザデータ）に電源遮断が発生した場合を説明するための図である。
まずメディア３００は、ファイルへの書込みアクセス指示を検出すると、ＦＡＴファイルシステムのディレクトリを読み出し（ステップＳ２４１）、目的のユーザデータ１を検索して書込みを行う（ステップＳ２４２）。書込み後、ＦＡＴ１にユーザデータ１の書込み内容を反映し（ステップＳ２４３）、続いてＦＡＴ２にユーザデータの書込みを反映する（ステップＳ２４４）。ユーザデータ２をさらに保存処理中（ステップＳ２４５）に電源遮断した場合、ユーザデータ２にデータエラーが発生する。
【００２４】
続いて、ユーザデータ２にデータエラーが発生した状態で読出し処理を行った場合を説明する。図３９は、図３８で説明した電源遮断が発生した後の読出し処理を説明するための図である。
まずメディア３００では、ファイルへの読出しアクセス指示を検出すると、ＦＡＴファイルシステムのディレクトリを読み出し（ステップＳ２５１）、続いてＦＡＴ１を読出す（ステップＳ２５２）。その後、ユーザデータ１を読出す（ステップＳ２５３）。続いて、ＦＡＴ１を読出し（ステップＳ２５４）、ユーザデータ２を読み出そうとすると、保存処理が中断されているため（図３８参照）、ファイルの途中で読出しエラーが発生する。この場合、そのファイルだけがアクセス不可能になり、他のユーザデータ及び管理情報には影響はない。
【００２５】
次に、ディレクトリの保存中に電源遮断が発生した場合を説明する。図４０は、書込みファイルアクセス処理中（ディレクトリ）に電源遮断が発生した場合を説明するための図である。
まずメディア３００は、ファイルへの書込みアクセス指示を検出すると、ＦＡＴファイルシステムのディレクトリを読み出し（ステップＳ２６１）、目的のユーザデータを検索して書込みを行う（ステップＳ２６２）。書込み後、ＦＡＴ１にユーザデータの書込み内容を反映し（ステップＳ２６３）、続いてＦＡＴ２にユーザデータの書込みを反映する（ステップＳ２６４）。上記ユーザデータの変更に伴いディレクトリを保存処理中（ステップＳ２６５）に電源遮断が発生したとする。
【００２６】
続いて、ディレクトリにデータエラーが発生した後で読出し処理を行った場合を説明する。図４１は、図３８で説明した電源遮断が発生した後の読出し処理を説明するための図である。
メディア３００では、ファイルへの読出しアクセス指示を検出すると、ＦＡＴファイルシステムのディレクトリを読み出そうとするが（ステップＳ２７１）、ディレクトリアクセスで読出しエラーが発生する。保存処理中に電源遮断が発生したファイル以外の同じディレクトリに存在する全てのファイルがアクセス不可能になる。ＢＰＢやＰＢＲがデータエラーとなった場合にはメディアとしての認識が不可能になり、すべてのユーザデータにアクセス不可能となる。
【００２７】
管理情報はユーザデータよりもアクセスが集中することから、データ保持特性から見て、上記の要因でデータエラーが発生する可能性がユーザデータより高いと言える。管理情報にデータエラーが発生した場合、あるユーザデータがエラーとなった場合と比較して、ユーザに非常に大きな混乱と損害を与える。したがって、ユーザにとって信頼性の高いストレージシステムを実現するためには、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐ必要がある。
【００２８】
近年、半導体プロセスの進歩に従ってメモリデバイスの大容量化が進んできているが、メモリセルの特性が低下してきており、ソフトエラーや上記のようなアクセスの集中に対してデータエラーが発生する可能性を上げる大きな要因の一つとなっている。
【００２９】
図４２に、従来のメディアの内部構成の他の例を示す。この例は、図３０の例と比較して、高速処理のためにキャッシュ領域を備え、キャッシュ処理に対応したメディアコントローラ３１０Ａを備えている。すなわち、ユーザデータ用ＮＶＭ制御部３３１の他に、キャッシュ用ＮＶＭ制御部３３２を備える。
【００３０】
図４３は、従来のメディアの内部構成の他の例、すなわちキャッシュ対応のメモリデバイスを備えた例（ハイブリッド）を示している。通常の不揮発性メモリデバイス３５０Ｂに加え、キャッシュ用不揮発性メモリデバイス３６０を備える。なお、メモリデバイスを２種類備えたことに伴い、それぞれにＮＶＭインターフェース３４１，３４２を備えている。
【００３１】
図４４は、図４２，図４３のメディアによるREAD_DATAに対する処理を示すフローチャートである。
メディア３００は、ホスト４００からのシーケンス中にREAD_DATAのコマンドを検出すると、目的のデータがキャッシュ上のデータか否かを判定する（ステップＳ２７１）。キャッシュ上のデータでない場合は、ユーザデータ用ＮＶＭ制御部３３１によって、不揮発性メモリデバイス３５０又は３５０Ｂから読み出す（ステップＳ２７２）。一方、キャッシュ上のデータである場合は、キャッシュ用ＮＶＭ制御部３３２によって、所定のキャッシュ領域又はキャッシュ用不揮発性メモリデバイス３６０から読み出す（ステップＳ２７３）。
【００３２】
図４５は、図４２，図４３のメディアによるWRITE_DATAに対する処理を示すフローチャートである。
メディア３００は、ホスト４００からのシーケンス中にWRITE_DATAのコマンドを検出すると、キャッシュに目的のデータを書き込むための空き容量があるか否かを判定する（ステップＳ２８１）。キャッシュ上に空きがない場合は、ユーザデータ用ＮＶＭ制御部３３１よって、キャッシュ領域に空きを作り（ステップＳ２８２）、ステップＳ２８３に移る。
一方、キャッシュ領域に空きがある場合、キャッシュ用ＮＶＭ制御部３３２によって、所定のキャッシュ領域又はキャッシュ用不揮発性メモリデバイス３６０に書き込む（ステップＳ２７３）。
【００３３】
しかし、図４２〜図４５に示した技術でも、管理情報のアクセス集中を回避することはできず、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐことはできない。
【００３４】
ところで、特許文献１に、電源遮断発生によるデータエラーを防ぐものとして、電源遮断対策を実施する場合とそうでない場合で、２つの不揮発性メモリ制御手段を切り替える技術が記載されている。
【特許文献１】特開２００８−１７６６７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００３５】
しかしながら、特許文献１に記載の技術は、管理情報へのアクセス集中やメモリ特性の悪化に対する対策にはなっていない。また、電源遮断対策を実施した場合とそうでない場合で、結果的にメモリ上に保存されるデータの形式、内容が異なるという問題があった。
【００３６】
本発明は、このような状況に鑑みてなされたものであり、管理情報へのアクセス集中やメモリ特性の悪化に対して、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐようにするものである。
【課題を解決するための手段】
【００３７】
上記課題を解決するため、本発明は、ホスト装置から入力される、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを受信し、前記受信したコマンドがいずれに対するものであるかを判別する。その判別の結果に応じて、前記ユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報を記憶する不揮発性メモリ手段に対する制御方式を切り換える。そして、切り換え後の制御方式に従い、前記ユーザデータ又は前記管理情報を前記不揮発性メモリ手段に記録することを特徴とする。
【００３８】
上記構成によれば、ホスト装置が不揮発性記憶装置に送信したコマンドが管理情報に対するものであることを指示でき、不揮発性記憶装置がこれを検出して管理情報を確実に安全な状態で保存できる制御方式に切り換えられる。
【００３９】
また、本発明の一側面は、上記構成において、不揮発性記憶装置が、ユーザデータを記憶する第１の不揮発性メモリと、前記第１の不揮発性メモリよりデータ保存の点で信頼性が高く、前記ユーザデータをファイルシステム上で管理するための管理情報を記憶する第２の不揮発性メモリと、を備える。そして、メディアコントローラが、前記ホスト装置から入力される、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドに応じて、前記第１の不揮発性メモリと前記第２の不揮発性メモリを切り換えてデータを保存すべく制御を行うことを特徴とする。
【００４０】
上記構成によれば、管理情報用に高信頼性の不揮発性メモリを設けたので、管理情報のデータエラーの可能性が低減される。
【００４１】
また、本発明の一側面は、上記構成において、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを使用することによって、メディアコントローラがホスト装置から入力されるデータが管理情報に対するものであるかを判別する。管理情報に対するものであった場合、前記メディアコントローラが、管理情報に対し前記ユーザデータより高い能力を持つ誤り訂正コードを付加して前記不揮発性メモリに保存すべく制御を行うことを特徴とする。
【００４２】
上記構成によれば、管理情報用としてユーザデータより高い訂正能力を持つ誤り訂正コードを付加するので、管理情報のデータエラーの可能性が低減される。
【００４３】
また、本発明の一側面は、上記構成において、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを使用することによって、メディアコントローラがホスト装置から入力されるデータが管理情報に対するものであるかを判別する。管理情報に対するものであった場合、前記メディアコントローラが、前記不揮発性メモリに前記管理情報を２重に書き込むべく制御を行うことを特徴とする。
【００４４】
上記構成によれば、同じ管理情報を２箇所に書き込むことにより（２重書込み）、必ず１箇所の管理情報が安全な状態で保存され、データエラーを防ぐことができる。
【発明の効果】
【００４５】
以上のように、本発明によれば、管理情報へのアクセス集中やメモリ特性の悪化に対して、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐことができる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明を実施するための最良の形態の例について、添付図面を参照しながら説明する。説明は下記項目の順に行う。
【００４７】
１．第１の実施の形態（メモリデバイス：ユーザデータ用及び管理情報用の２種類のメモリデバイスの例）
２．第２の実施の形態（メモリデバイス：ユーザデータ用及び管理情報用で同一のメモリデバイスの例）
３．第３の実施の形態（ＮＶＭ制御部：不揮発性のキャッシュ領域を備える例）
４．第４の実施の形態（ＮＶＭ制御部：ユーザデータ用に揮発性のキャッシュ領域を備える例）
５．第５の実施の形態（ＮＶＭ制御アルゴリズムを切り替える例）
６．第６の実施の形態（ホストとメディアが一体構成である例）
【００４８】
＜１．第１の実施の形態＞
メディアに対しデータの読出し及び書込みを行うホスト装置として機能する情報記録装置（以下、「ホスト」と称する。）と、メディアから構成されるストレージシステムを説明する。メディアは、半導体メモリデバイス等を備え電気的に書き換え可能な不揮発性記憶装置である。ホスト４００としては、上記のデジタルカメラや携帯電話端末、パーソナルコンピュータなど、種々の情報記録装置を適用できる。
【００４９】
本実施の形態では、ホストがメディアに対してアクセスするデータが、ユーザデータと管理情報のどちらであるかを、メディア側で判断できるようにしている。そして、メディア側で、ユーザデータ用の大容量と管理情報用の小容量の２種類のメモリデバイスを切換えてデータを保存する手段を備えるようにしたものである。なお、以下の説明において、不揮発性メモリデバイスをＮＶＭと称することもある。
【００５０】
図１は、本発明の第１の実施の形態に係るメディアの内部構成を示すブロック図である。
ストレージシステムは、ホスト１００とメディア１からなり、メディア１はメディアコントローラ１０、不揮発性メモリデバイス（ＮＶＭ）８０及び高信頼性不揮発性メモリデバイスからなる。
メディアコントローラ１０は、ホストインターフェース２０、プロトコル判別部３０、ＮＶＭ制御選択部４０、ユーザデータ用ＮＶＭ制御部５０、管理情報用ＮＶＭ制御部６０、ＮＶＭインターフェース７１，７２を備える。
【００５１】
プロトコル判別部３０は、ホストインターフェース２０を経由してホスト１００から受信したデータのプロトコルを判別し、判別結果をＮＶＭ制御選択部４０に出力する。ＮＶＭ制御選択部４０は、受信した判別結果からいずれのＮＶＭ制御部を使用するか選択し、２つのＮＶＭ制御部を切り換える。選択されたＮＶＭ制御部は、対応するメモリデバイスを制御して、データの読出し又は書込みを行い、ストレージとしての動作を実現する。プロトコル判別部３０の動作については後に詳述する。
【００５２】
図２は、ＮＶＭ制御選択部４０及びユーザデータ用ＮＶＭ制御部５０の内部構成を説明するためのブロック図である。両者の構成は同一であるので、図２を参照して共通の説明を行う。
ＮＶＭ制御部は、不揮発性メモリデバイスに対してRead/Write/Erase/Copyなどのストレージ機能を実現する手段であり、ＮＶＭを制御するためのＮＶＭ制御アルゴリズム５０Ａと、ＮＶＭ制御回路５０Ｂからなる。ＮＶＭ制御部の構成は、周知であるので、ここでは簡単に説明するに留める。
【００５３】
ＮＶＭ制御アルゴリズム５０Ａには、空きブロック管理部５０Ａ１、論物アドレス変換部５０Ａ２、不良ブロック管理部５０Ａ３が含まれる。
上記空きブロック管理部５０Ａ１は、不揮発性メモリデバイス内の使用状況を管理する。また論物アドレス変換部５０Ａ２は、ホスト１００が指定する論理アドレスを不揮発性メモリデバイス内の物理アドレスに変換する論物変換テーブルを参照して、論理アドレスと物理アドレスの変換を行う。また不良ブロック管理部５０Ａ３は、不揮発性メモリデバイス上に発生する不良ブロックの管理を行う。ホスト１００からのデータを保存する領域として上記不良ブロックは使用されないようにメディア１内で制御される。
【００５４】
また、ＮＶＭ制御回路５０Ｂには、ＮＶＭコマンド制御回路５０Ｂ１とＥＣＣ（Error Correcting Code）回路５７が含まれる。ＮＶＭ制御部は、不揮発性メモリデバイスごとに異なり、さらにユーザデータ用、管理情報用、キャッシュ用でも異なる。
ＮＶＭコマンド制御回路５０Ｂ１は、コマンドの処理内容に基づいて、不揮発性メモリデバイスに対して読出し／書込み処理を行う。ＥＣＣ回路５０Ｂ２は、ホスト１００から受信したデータに誤りを訂正するための誤り訂正符号（以下、「ＥＣＣデータ」と証する。）を付加する。
【００５５】
［ホストの構成例］
図３は、ホストの内部構成を示すブロック図である。
ホスト１００は、アプリケーション処理部１１０、ファイルシステム制御部１２０、メディア制御部１３０、メディアインターフェース１４０を備える。
上記ファイルシステム制御部１２０は、管理情報制御部１２１とユーザデータ制御部１２２を含む。またメディア制御部１３０は、管理情報用バッファ部１３１−１とユーザデータ用バッファ部１３１−２を含むデータ転送用バッファ１３１を備える。
【００５６】
図４は、図３のホスト内のソフトウェアレイヤーを示す図である。
図４に示すように、図３の各ブロックに対応して、アプリケーション１５０、ファイルシステム１６０、メディア制御ドライバ１７０から構成される。アプリケーション１５０は、ユーザの操作等に従いファイルアクセスを行うとき、ファイルシステム１６０を介してファイルアクセスを指示する。
【００５７】
ホスト１００がファイルシステム１６０を使用してメディア１に対してアクセスするデータには、「ユーザデータ」と、ファイルシステムの「管理情報」の２種類がある。ユーザデータは、アプリケーションを利用したユーザが作成したデータファイルである。一方、管理情報は、そのメディア上に保存されたすべてのユーザデータを管理している重要なデータである。現在、ＦＡＴファイルシステムを例にとれば、管理情報にはＢＰＢ，ＰＢＲ，ＦＡＴ１，ＦＡＴ２，ルートディレクトリ、ディレクトリがある。これら２種類のデータはホスト側から見て、１つのストレージ空間に配置される。
【００５８】
ファイルシステム１６０は、管理情報制御部１６１とユーザデータアクセス部１６２のそれぞれが、各々の管理情報とユーザデータの制御（アクセス制御）を行う。そして、ファイルシステム１６０からメディア制御ドライバ１７０へ各々のデータアクセス指示を出力する。
【００５９】
メディア制御ドライバ１７０は、メディア制御部１３０を制御するソフトウェアであり、ファイルシステム１６０からのデータアクセス指示を受けて、メディア制御コマンド及びパラメータを、メディアインターフェース１４０へ出力する。本発明の実施の形態では、管理情報とユーザデータを別々のプロトコルのデータとしてメディア制御ドライバ１７０に出力し、メディア１側で管理情報とユーザデータのどちらのデータか判別できるようにしている。
【００６０】
メディアインターフェース１４０は、メディア制御ドライバ１７０からのデータアクセス指示を受けて、メディアアクセスプロトコルのデータを、メディア１へ出力する。すなわち、管理情報用バッファ部１３１−１およびユーザデータ用バッファ部１３１−２がそれぞれバッファリングした管理情報とユーザデータを、同期をとってそれぞれにメディア１へ出力する。このメディア１へ出力されるデータには、アプリケーションで使用する読出し／書込みコマンドの送信パターン（シーケンス）が含まれる。
【００６１】
図５は、メディア１による読出し／書込み処理を示すフローチャートである。
メディア１は、ホスト１００から読出し／書込みのシーケンスを受信すると、プロトコル判別部３０が受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別する（ステップＳ１）。管理情報用プロトコルでない場合は、ユーザデータ用ＮＶＭ制御部５０によって、不揮発性メモリデバイス８０を制御する（ステップＳ２）。一方、管理情報用プロトコルである場合は、管理情報用ＮＶＭ制御部６０によって、高信頼性不揮発性メモリデバイス９０を制御する（ステップＳ３）。
【００６２】
本発明におけるホストからメディアへデータを保存するプロトコルとして、ユーザデータと管理情報用の２種類のプロトコルの具体的な形態として以下が考えられる。
（１）管理情報であることを設定、解除するためのコマンドの例（図６）
指定するセクタ領域のデータを変更せずに、管理情報であることを設定、解除することができる。
（２）ユーザデータとコマンドは共通だが、パラメータで指定する例（図９）
管理情報であることの設定と実際のデータの書込みを同時に可能となる。
（３）それぞれ専用のアクセスコマンドを持った例（図１１）
この場合、上記（２）と効果は同じだが、コマンドの形式が異なる。
（４）次に実行するコマンドが管理情報アクセスであることを設定するコマンドの例。（図１３）
【００６３】
［第１のプロトコル］
図６は、ホスト１００からメディア１へのシーケンス例（１）を示す図である。
本例は、コマンドでアクセスするデータ属性として管理情報領域を指定する方式であり、例えば、SET_MNG(セクタアドレス, セクタ数)、CLR_MNG(セクタアドレス, セクタ数)のようなコマンド（プロトコル）を使用する。SET_MNGはそのアドレスに保存されるデータが管理情報であることを設定するコマンドである。また、CLR_MNGはそのアドレスに保存されるデータが管理情報ではないことを設定するコマンドである。これらのコマンドの説明に用いるフローチャートを図７、図８に示す。図７はユーザデータを管理情報に変更する処理を示し、図８は管理情報をユーザデータに変更する処理を示す。変更する場合には不揮発性メモリデバイス上での保存方法が異なるため、一度変更前の方法で読出したデータを、変更後の方法で書込みを行う必要がある。
【００６４】
図７のフローチャートを参照して、ユーザデータを管理情報に変更する処理（SET_MNGコマンドに対するメディアの処理）を説明する。
プロトコル判別部３０でSET _MNGのコマンドを検出した場合、まずＮＶＭ制御選択部４０によってユーザデータ用ＮＶＭ制御部５０に切り換えられ、ユーザデータ用ＮＶＭ制御部５０によるユーザデータの読出し制御を行う（ステップＳ１１）。次に、管理情報用ＮＶＭ制御部６０に切り換えられ、管理情報用ＮＶＭ制御部６０による管理情報の書込み制御を行う（ステップＳ１２）。最後に、ユーザデータ用ＮＶＭ制御部５０に切り換えられ、ユーザデータ用ＮＶＭ制御部５０によるユーザデータの消去制御を行う（ステップＳ１３）。
【００６５】
図８のフローチャートを参照して、管理情報をユーザデータに変更する処理（CLR_MNRコマンドに対するメディアの処理）を説明する。
プロトコル判別部３０でCLR _MNGのコマンドを検出した場合、まずＮＶＭ制御選択部４０によって管理情報用ＮＶＭ制御部６０に切り換えられ、管理情報用ＮＶＭ制御部６０による管理情報の読出し制御を行う（ステップＳ２１）。次に、ユーザデータ用ＮＶＭ制御部５０に切り換えられ、ユーザデータ用ＮＶＭ制御部５０によるユーザデータの書込み制御を行う（ステップＳ２２）。最後に、管理情報用ＮＶＭ制御部６０に切り換えられ、管理情報用ＮＶＭ制御部６０による管理情報の消去制御を行う（ステップＳ２３）。
【００６６】
実際のセクタへのアクセスでは、管理情報もユーザデータも従来と同じコマンドを使用することができる。このプロトコルでは、保存後のデータの属性を変更することも可能であり、他のプロトコルとの組合せで使用することが有効である。
【００６７】
［第２のプロトコル］
図９は、ホスト１００からメディア１へのシーケンス例（２）を示す図である。
本例は、ホスト１００からメディア１へのアクセスと同時に属性を設定する方式である。例えば、WRITE_DATA (セクタアドレス, セクタ数，MNGフラグ)、READ_DATA (セクタアドレス, セクタ数，MNGフラグ)のようなコマンド（プロトコル）であり、パラメータとして与えられた値によってそのコマンドで処理を行うデータの属性がわかる。
【００６８】
図１０は、第２のプロトコルのコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
メディア１は、ホスト１００から読出し／書込みのシーケンスを受信すると、プロトコル判別部３０はコマンドのパラメータに基づいて、受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別する（ステップＳ３１）。
MNGフラグがオフであれば、ユーザデータを対象とするコマンドであると判別して、ユーザデータ用ＮＶＭ制御部５０を選択し、不揮発性メモリデバイス８０の制御を行う。一方、MNGフラグがオンあれば、管理情報を対象とするコマンドであると判別して、管理情報用ＮＶＭ制御部６０を選択し、高信頼性不揮発性メモリデバイス９０の制御を行う。
【００６９】
［第３のプロトコル］
図１１、ホスト１００からメディア１へのシーケンス例（３）を示す図である。
本例は、第２プロトコルと同様、ホスト１００からメディア１へのアクセスと同時に属性を設定する方式である。例えば、WRITE_MNG (セクタアドレス, セクタ数)、READ_MNG (セクタアドレス, セクタ数)のようなコマンド（プロトコル）を使用し、オペレーションコードを解析することで管理情報に対する処理を行うコマンドであるかを判別する。
【００７０】
図１２は、第３のプロトコルのコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
メディア１は、ホスト１００から読出し／書込みのシーケンスを受信すると、プロトコル判別部３０はオペレーションコードを解析して、受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別する（ステップＳ４１）。
解析の結果、ユーザデータコードであれば、ユーザデータを対象とするコマンドであると判別して、ユーザデータ用ＮＶＭ制御部５０を選択し、不揮発性メモリデバイス８０の制御を行う。一方、管理情報コードであれば、管理情報を対象とするコマンドであると判別して、管理情報用ＮＶＭ制御部６０を選択し、高信頼性不揮発性メモリデバイス９０の制御を行う。
【００７１】
［第４のプロトコル］
図１３は、ホスト１００からメディア１へのシーケンス例（４）を示す図である。
本例は、次に記述するアクセスコマンドを管理情報アクセスに設定する方式である。例えば、SET_MNG_ACCESS()のようなコマンド（プロトコル）である。
【００７２】
図１４は、第４のプロトコルのコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
メディア１は、ホスト１００から読出し／書込みのシーケンスを受信すると、プロトコル判別部３０はオペレーションコードを解析して、受信したシーケンス中のコマンドに、管理情報用プロトコルがあるか否かを判別する（ステップＳ４１）。解析の結果、直前のコマンドがSET_MNG_ACCESSであれば、管理情報を対象とするコマンドであると判別して、管理情報用ＮＶＭ制御部６０を選択し、高信頼性不揮発性メモリデバイス９０の制御を行う。一方、それ以外のコマンドを示すものであれば、ユーザデータを対象とするコマンドであると判別して、ユーザデータ用ＮＶＭ制御部５０を選択し、不揮発性メモリデバイス８０の制御を行う。
【００７３】
従来は、ホストから転送されるデータがユーザデータであるか、管理情報であるかをメディア側で確実に判断する手段がなかった。そのため図３３にあるような、システムで使用するファイルシステムとメディア上の論理フォーマットのマップのアドレスを固定することで、セクタアドレスから管理情報を判断することは可能だった。しかし、ディレクトリのようにセクタアドレスが自由に変化する管理情報も存在し、すべての管理情報を判断することは困難だった。また、ファイルシステムに依存してアドレスが変化するため、一つのメディアで複数のファイルシステムに対応することが困難だった。また、管理情報を判断する方法がファイルシステムごとに異なっていることも、メディア側での判断を困難にする大きな原因のひとつだった。
【００７４】
これに対し、上述した第１の実施の形態の構成では、メディアはホストから受信したプロトコルがユーザデータ用か管理情報用かを判断する手段を持ち、判断した結果に従って対応するＮＶＭ制御手段を選択し、不揮発性メモリデバイスにアクセスを実施する。したがって、ユーザデータ用か管理情報用かをホスト側が指定可能であるため、ユーザデータの中にアプリケーションに依存して重要な情報があった場合にも、管理情報と同様に安全に保存することができる。
【００７５】
本発明の第１の実施例では、管理情報にアクセスが集中することに対して、管理情報のデータエラーの可能性を低減することができる。例えば半導体プロセスの進歩でデータ保持特性が劣化したメモリをユーザデータ用として採用した場合にも、管理情報用としてはデータ保持特性の優れた小容量のメモリデバイスを使用することで、管理情報のデータエラーを低減することができる。具体的には、管理情報用としてＮＯＲ型メモリであったり、ユーザデータはＮＡＮＤ型メモリであったり、また管理情報用としてＳＬＣ（シングルレベルセル）型メモリ、ユーザデータ用としてＭＬＣ（マルチレベルセル）型メモリなどが考えられる。一般的に管理情報用として使用できるメモリデバイスはユーザデータ用と比較して、コストが高い。
【００７６】
このような第1の実施の形態において、管理情報用のメモリデバイスはユーザデータ用のメモリデバイスと比較して、管理情報の保存に優れた特性を持つことができる。例えば、データ保持特性の優れたメモリデバイス、書換え保証回数が高いメモリデバイスや、プログラム時間やイレース時間が短いメモリデバイスなどを使用する。ユーザデータ用のＮＶＭ制御手段としては大容量不揮発性メモリデバイス用のＮＶＭ制御回路を持ち、管理情報用のＮＶＭ制御手段としては高信頼性不揮発性メモリデバイス用のＮＶＭ制御回路を持つことができる。
【００７７】
＜２．第２の実施の形態＞
本実施の形態は、同一の不揮発性メモリデバイスを使用し、管理情報用として誤り訂正コードを保存する領域のサイズを拡張し、ユーザデータよりも高い能力の誤り訂正コードを付加して保存するようにしたものである。
【００７８】
図１５は、本発明の第２の実施の形態に係るメディアの内部構成を示すブロック図である。
この例は、第１の実施の形態（図１）と比較して、ユーザデータ用メモリデバイスと管理情報用メモリデバイスで同一の不揮発性メモリデバイス８０Ａを備える。メディアコントローラ１０Ａは、ＮＶＭインターフェース７０を介して不揮発性メモリデバイス８０Ａとデータ伝送を行う。ここで、管理情報用ＮＶＭ制御部６０の持つＥＣＣ回路５０Ｂ２はユーザデータ用よりも訂正能力の高い回路を採用し、そのため生成されるＥＣＣコードが大きくなるため、そのための領域を不揮発性メモリデバイス８０Ａ上に確保しておく。
【００７９】
このように、第２の実施例では、管理情報にアクセスが集中することに対して、管理情報用としてユーザデータより高い能力を持つ誤り訂正コードを管理情報に付加して保存することによって、管理情報のデータエラーの可能性を低減することができる。第１の実施の形態と同様の作用効果を奏する。
【００８０】
＜３．第３の実施の形態＞
本実施の形態は、メディアコントローラの各ＮＶＭ制御部に不揮発性のキャッシュ領域を設けるようにしたものである。
【００８１】
図１６は、本発明の第３の実施の形態に係るメディアの内部構成を示すブロック図である。
本実施の形態のメディア１Ｂのメディアコントローラ１０Ｂは、キャッシュメモリ５１Ａを備えたユーザデータキャッシュ用ＮＶＭ制御部５１、及びユーザデータ用ＮＶＭ制御部５２を備える。またキャッシュメモリ６１Ａを備えた管理情報キャッシュ用ＮＶＭ制御部６１、及び管理情報用ＮＶＭ制御部６２を備える。それに伴い、ＮＶＭ制御選択手段もそれぞれについて用意する必要があり、ＮＶＭ制御選択手段４１，４２を備える。
【００８２】
この実施の形態では、キャッシュ領域もユーザデータと同じように不揮発性メモリデバイスを構成できるが、ホストからのアクセスを高速化することが目的であり、不揮発性メモリデバイスの制御方法はユーザデータの場合と異なる。不揮発性メモリデバイスの制御方法については、後述する。その他、本実施の形態は、第１の実施の形態と同様の作用効果を奏する。
【００８３】
＜４．第４の実施の形態＞
本実施の形態は、メディアコントローラの各ＮＶＭ制御部にキャッシュ領域を設けるようにしたものである。ただし、ユーザデータ用のキャッシュ領域として、大容量で高速アクセス可能な揮発性メモリを採用している。
【００８４】
図１７は、本発明の第４の実施の形態に係るメディアの内部構成を示すブロック図である。
本実施の形態のメディア１Ｃのメディアコントローラ１０Ｃは、キャッシュメモリ５３Ａを備えたユーザデータキャッシュ用ＮＶＭ制御部５３、及びユーザデータ用ＮＶＭ制御部５２を備える。またキャッシュメモリ６１Ａを備えた管理情報キャッシュ用ＮＶＭ制御部６１、及び管理情報用ＮＶＭ制御部６２を備える。
【００８５】
本実施の形態によれば、第３の実施の形態と比較して、管理情報の安全性を保ちつつ、より高速にユーザデータへアクセスすることができる。ただしこの場合には、電源遮断が発生した場合、不揮発性メモリデバイスに書き込む前のユーザデータは消えることになる。
【００８６】
次に、図１６及び図１７に示したメディアの動作を説明する。
図１８は、図１６及び図１７のメディアの読出し処理を示すフローチャートである。
メディアは、ホスト１００から読出しシーケンスを受信すると、プロトコル判別部３０が受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別し（ステップＳ６１）、管理情報用プロトコルでない場合は、ステップＳ６２へ移行する。一方、管理情報用プロトコルである場合は、ステップＳ６５へ移行する。
【００８７】
ステップＳ６１において管理情報用プロトコルでない場合は、メディアは、目的のデータがユーザデータ用キャッシュメモリ上のデータか否かを判定する（ステップＳ６２）。キャッシュメモリ上のデータでない場合は、ユーザデータ用ＮＶＭ制御部によって、不揮発性メモリデバイス８０を制御する（ステップＳ６３）。一方、キャッシュメモリ上のデータである場合は、ユーザデータキャッシュ用ＮＶＭ制御部によって、キャッシュメモリから読み出す（ステップＳ６４）。
【００８８】
一方、ステップＳ６１において管理情報用プロトコルであった場合は、メディアは、目的のデータが管理情報用キャッシュメモリ上のデータか否かを判定する（ステップＳ６５）。キャッシュメモリ上のデータでない場合は、管理情報用ＮＶＭ制御部によって、高信頼性不揮発性メモリデバイス９０を制御する（ステップＳ６６）。一方、キャッシュメモリ上のデータである場合は、管理情報キャッシュ用ＮＶＭ制御部によって、キャッシュメモリから読み出す（ステップＳ６７）。
【００８９】
図１９は、図１６及び図１７のメディアの書込み処理を示すフローチャートである。
メディアは、ホスト１００から読出しシーケンスを受信すると、プロトコル判別部３０が受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別し（ステップＳ７１）、管理情報用プロトコルでない場合は、ステップＳ７２へ移行する。一方、管理情報用プロトコルである場合は、ステップＳ７５へ移行する。
【００９０】
ステップＳ７１において管理情報用プロトコルでない場合は、メディアは、ユーザデータ用キャッシュメモリに目的のデータを書き込むための空き容量があるか否かを判定する（ステップＳ７２）。ユーザデータ用キャッシュメモリ上に空きがない場合は、ユーザデータ用ＮＶＭ制御部よって、キャッシュ領域に空きを作り（ステップＳ７３）、ステップ７４に移る。一方、キャッシュ領域に空きがある場合、ユーザデータ用キャッシュ用ＮＶＭ制御部によって、キャッシュメモリに書き込む（ステップＳ７４）。
【００９１】
一方、ステップＳ７１において管理情報用プロトコルであった場合は、メディアは、管理情報用キャッシュメモリに目的のデータを書き込むための空き容量があるか否かを判定する（ステップＳ７５）。管理情報用キャッシュメモリ上に空きがない場合は、管理情報用ＮＶＭ制御部よって、キャッシュ領域に空きを作り（ステップＳ７６）、ステップ７７に移る。一方、キャッシュ領域に空きがある場合、管理情報用キャッシュ用ＮＶＭ制御部によって、キャッシュメモリに書き込む（ステップＳ７７）。
【００９２】
図２０は、図１６及び図１７のSET_MNGコマンドに対するメディアの処理を示すフローチャートである。
メディアは、ホスト１００からSET_MNGコマンドを検出すると、目的のデータがユーザデータ用キャッシュメモリ上のデータか否かを判定する（ステップＳ８１）。ユーザデータ用キャッシュメモリ上のデータでない場合は、ステップＳ８２へ移行する。一方、ユーザデータ用キャッシュメモリ上のデータである場合は、ステップＳ８３へ移行する。
【００９３】
次に、ユーザデータ用ＮＶＭ制御部５０によるユーザデータの読出し制御を行う（ステップＳ８２）。また、ユーザデータキャッシュ用ＮＶＭ制御部によるユーザデータの読出し制御を行う（ステップＳ８３）。次に、管理情報キャッシュ用ＮＶＭ制御部に切り換えられ、管理情報キャッシュ用ＮＶＭ制御部による管理情報の書込み制御を行う（ステップＳ８４）。最後に、ユーザデータキャッシュ用ＮＶＭ制御部によるユーザデータの消去制御を行う（ステップＳ８５）とともに、ユーザデータ用ＮＶＭ制御部に切り換えられ、ユーザデータ用ＮＶＭ制御部によるユーザデータの消去制御を行う（ステップＳ８６）。
【００９４】
図２１は、図１６及び図１７のCLR_MNGコマンドに対するメディアの処理を示すフローチャートである。
【００９５】
メディアは、ホスト１００からCLR_MNGコマンドを検出すると、目的のデータが管理情報用キャッシュメモリ上のデータか否かを判定する（ステップＳ９１）。管理情報用キャッシュメモリ上のデータでない場合は、ステップＳ９２へ移行する。一方、管理情報用キャッシュメモリ上のデータである場合は、ステップＳ９３へ移行する。
【００９６】
次に、管理情報用ＮＶＭ制御部による管理情報の読出し制御を行う（ステップＳ９２）。また、管理情報キャッシュ用ＮＶＭ制御部による管理情報の読出し制御を行う（ステップＳ９３）。次に、ユーザデータキャッシュ用ＮＶＭ制御部に切り換えられ、ユーザデータキャッシュ用ＮＶＭ制御部によるユーザデータの書込み制御を行う（ステップＳ９４）。最後に、管理情報キャッシュ用ＮＶＭ制御部による管理情報の消去制御を行う（ステップＳ９５）とともに、管理情報用ＮＶＭ制御部に切り換えられ、管理情報用ＮＶＭ制御部による管理情報の消去制御を行う（ステップＳ９６）。
【００９７】
第３，第４の実施の形態によれば、ユーザデータ用と管理情報用のＮＶＭ制御部の中でそれぞれのキャッシュメモリを搭載することができる。キャッシュアルゴリズムは管理情報用とユーザデータ用それぞれで最適なアルゴリズムを独立に選択することができる。第１の実施の形態と同様の作用効果を奏する。
【００９８】
＜第５の実施の形態＞
本実施の形態は、同一の不揮発性メモリデバイス（図１５参照）を使用し、管理情報用ＮＶＭ制御アルゴリズムを切り換えることで信頼性の高い保存を実現するものである。ＮＶＭ制御部のＮＶＭ制御回路（図２参照）はユーザデータ用と管理情報用に持っていてもよいし、共通でもよい。図２のＮＶＭ制御アルゴリズム５０Ａの例として２つの手段が考えられる。いずれも２つの異なるブロックのページを一つのデータに割り当てる場合の例である。ブロックは不揮発性メモリデバイスの物理的な単位を示すものであり、ページは制御されるデータの単位を示すものである。以下、図２２を参照して２つのアルゴリズムを説明する。
【００９９】
（１）ＮＶＭ制御アルゴリズム−１：二重書き
あるデータ（１ページ）の更新時に、ブロックＡとブロックＢの各１ページに更新を行う。領域のサイズを２倍に拡張し、１回の更新ごとに保存する領域を２つのページに保存する手段である。
（２）ＮＶＭ制御アルゴリズム−２：交互書き
あるデータ（１ページ）の更新毎に、ブロックＡとブロックＢを交互に切換えて１ページずつ更新を行う。二重にデータを保存できるよう２倍に領域のサイズを拡張し、交互に切り替える手段である。
いずれのアルゴリズムも、最終ページまで書込んだ次は、新しい２つのブロックを割り当て、旧ブロックを消去する。
【０１００】
［ＮＶＭ制御アルゴリズム−１］
図２３は、ＮＶＭ制御アルゴリズム−１における読出し処理を示すフローチャートである。
管理情報用ＮＶＭ制御部は、ブロックＡの読出し元とページアドレスを決定し（ステップＳ１０１）、管理情報を読み出す（ステップＳ１０２）。ここで、データエラーが発生したか否かを判定し（ステップＳ１０３）、データエラーが発生したらステップＳ１０４へ、データエラーが発生していない場合は処理を終了する。ステップＳ２でデータエラーが発生した場合、ブロックＢの読出し元とページアドレスを決定し、（ステップＳ１０４）、管理情報を読出し（ステップＳ１０５）、処理を終了する。
【０１０１】
図２４は、ＮＶＭ制御アルゴリズム−１における書込み処理を示すフローチャートである。
管理情報用ＮＶＭ制御部は、ブロックＡの書込み先とページアドレスを決定し（ステップＳ１１１）、管理情報を書き込む（ステップＳ１１２）。次に、ブロックＢの書込み先とページアドレスを決定し、（ステップＳ１１３）、管理情報を書き込み（ステップＳ１１４）、処理を終了する。
【０１０２】
図２５は、ＮＶＭ制御アルゴリズム−１の処理中に電源遮断が発生した場合について説明するための図である。図２５におけるステップ１２１〜Ｓ１２４は、図２４のステップＳ１１１〜Ｓ１１４に対応する。
【０１０３】
書込み先のページアドレスがｍの状態で、電源遮断が発生した場合を想定する。
（１）ステップＳ１２２で電源遮断が発生したケース：
ブロックＡの読み出しページｍでデータエラーが発生する。
ブロックＢの読み出しページｍ−１が成功する（書込み前の古い管理情報）。
【０１０４】
（２）ステップＳ１２３で電源遮断が発生したケース：
ブロックＡの読み出しページｍが成功する。
ブロックＢのページｍは消去状態のままである（書込み後の新しい管理情報）。
【０１０５】
（３）ステップＳ１２４で電源遮断が発生したケース：
ブロックＡの読み出しページｍが成功する。
ブロックＢの読み出しページｍはデータエラーが発生する（書込み後の新しい管理情報）。
【０１０６】
［ＮＶＭ制御アルゴリズム−２］
図２６は、ＮＶＭ制御アルゴリズム−２における読出し処理を示すフローチャートである。
管理情報用ＮＶＭ制御部は、読み出し元のブロックＡ又はＢを選択するとともに（ステップＳ１３１）、読み出し元のページアドレスを決定し（ステップＳ１３２）、管理情報を読み出す（ステップＳ１３３）。ここで、データエラーが発生したか否かを判定し（ステップＳ１３４）、データエラーが発生したらステップＳ１４１へ移行し、一つ前のブロックに戻って同様の処理を繰り返す。一方、データエラーが発生していない場合は処理を終了する。
【０１０７】
図２７は、ＮＶＭ制御アルゴリズム−２における書込み処理を示すフローチャートである。
管理情報用ＮＶＭ制御部は、書込み先のブロックＡ又はＢを選択するとともに（ステップＳ１４１）、書込み先のページアドレスを決定し（ステップＳ１４２）、管理情報を書き込む（ステップＳ１４３）。ステップＳ１３３が終了後、処理を終了する。
【０１０８】
図２８は、ＮＶＭ制御アルゴリズム−２の処理中に電源遮断が発生した場合について説明するための図である。図２８におけるステップ１５１〜Ｓ１５２は、図２７のステップＳ１４１〜Ｓ１４３に対応する。
【０１０９】
書込み先のページアドレスがｍの状態で、電源遮断が発生した場合を想定する。
ステップＳ１５３で電源遮断が発生したケース：、
（１）書込み先ＢｌｏｃｋがＢｌｏｃｋ  Ａの場合
ブロックＡの読み出しページｍでデータエラーが発生する。
ブロックＢの読み出しページｍ−１が成功する。
（２）書込み先ブロックがブロックＢの場合
ブロックＢの読み出しページｍでデータエラーが発生する。
ブロックＡの読み出しページｍが成功する。
いずれの場合も書込み前の古いデータが読み出される。
【０１１０】
上述した本実施の形態によれば、管理情報にアクセスが集中することに対して、管理情報へのアクセスを分散することによって、管理情報のデータエラーの可能性を低減することができる。また、管理情報の保存中に電源を遮断がされたり、メディアが抜かれたりした場合、同じ管理情報を２箇所に書き込むことで（二重書き込み）、必ず１か所の管理情報が安全な状態で保存されていることで、データエラーを防ぐことができる。
【０１１１】
本発明のメディアは、上述した各実施の形態のうちの１つあるいは２つ以上を組み合わせることで実現可能である。
【０１１２】
＜６．第６の実施の形態＞
本実施の形態は、ホストにメディアを格納し、一体構成としたものである。
図２９は、本発明の第６の実施の形態に係るホストの内部構成を示すブロック図である。本例のホスト２００は、図３に示したホスト１００と比較して、メディア１がホスト本体に含まれた構成である。このように構成した場合、メディアを着脱しないホスト装置（情報記録装置）を提供することができる。なお、メディア１には、第１〜第５の実施の形態の各メディアを適用でき、その場合、各実施の形態の作用効果を得られる。
【０１１３】
なお、上述した情報処理装置で行われる一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。また、これらの処理を実行する機能はハードウェアとソフトウェアの組合せによっても実現できることは言うまでもない。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、プログラム記録媒体からインストールされる。
【０１１４】
また、本明細書において示した各ステップの処理は、記載された順序に沿って時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的もしくはこれとは異なる順序、あるいは個別に実行される処理をも含むものである。
【０１１５】
以上に述べた実施の形態は、本発明を実施するための好適な形態の具体例であるから、技術的に好ましい種々の限定が付されている。ただし、本発明は、以上の実施の形態の説明において特に本発明を限定する旨の記載がない限り、これらの実施の形態に限られるものではない。例えば、以上の説明で挙げた処理時間、処理順序および各パラメータの数値的条件等は好適例に過ぎず、また、説明に用いた各図における寸法、形状および配置関係等も実施の形態の一例を示す概略的なものである。したがって、本発明は、上述した実施の形態の例に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【図面の簡単な説明】
【０１１６】
【図１】本発明の第１の実施の形態に係るメディアの内部構成を示すブロック図である。
【図２】図１のＮＶＭ制御手段の内部構成を示すブロック図である。
【図３】本発明の第１の実施の形態に係るホストの内部構成を示すブロック図である。
【図４】図３のホスト内のソフトウェアレイヤーを示す図である。
【図５】図１のメディアによる読出し／書込み処理を示すフローチャートである。
【図６】本発明の第１の実施の形態に係るコマンドの例（１）を示す図である。
【図７】図６のSET_MNGコマンドに対するメディアの処理を示すフローチャートである。
【図８】図６のCLR_MNRコマンドに対するメディアの処理を示すフローチャートである。
【図９】本発明の第１の実施の形態に係るコマンドの例（２）を示す図である。
【図１０】図９のコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
【図１１】本発明の第１の実施の形態に係るコマンドの例（３）を示す図である。
【図１２】図１１のコマンドに対するプロトコル判別部の処理を示すフローチャートである。
【図１３】本発明の第１の実施の形態に係るコマンドの例（４）を示す図である。
【図１４】図１３のコマンドに対するプロトコル判別部の処理を示すフローチャートである。
【図１５】本発明の第２の実施の形態に係るメディアの内部構成を示すブロック図である。
【図１６】本発明の第３の実施の形態に係るメディアの内部構成を示すブロック図である。
【図１７】本発明の第４の実施の形態に係るメディアの内部構成を示すブロック図である。
【図１８】図１６，図１７のメディアの読出し処理を示すフローチャートである。
【図１９】図１６，図１７のメディアの書込み処理を示すフローチャートである。
【図２０】図１６，図１７のSET_MNGコマンドに対するメディアの処理を示すフローチャートである。
【図２１】図１６，図１７のCLR_MNGコマンドに対するメディアの処理を示すフローチャートである。
【図２２】本発明の第５の実施の形態に係る管理情報用ＮＶＭ制御アルゴリズムを説明するための図である。
【図２３】図２２のＮＶＭ制御アルゴリズム−１における読出し処理を示すフローチャートである。
【図２４】図２２のＮＶＭ制御アルゴリズム−１における書込み処理を示すフローチャートである。
【図２５】図２４のＮＶＭ制御アルゴリズムの処理中に電源遮断が発生した場合について説明するための図である。
【図２６】図２２のＮＶＭ制御アルゴリズム−２における読出し処理（２）を示すフローチャートである。
【図２７】図２２のＮＶＭ制御アルゴリズム−２における書込み処理（２）を示すフローチャートである。
【図２８】図２７のＮＶＭ制御アルゴリズムの処理中に電源遮断が発生した場合について説明するための図である。
【図２９】本発明の第６の実施の形態に係るホストコンピュータの内部構成を示すブロック図である。
【図３０】従来のメディアの内部構成（１）を示す図である。
【図３１】図３０のホストコンピュータ内のソフトウェアレイヤーを示す図である。
【図３２】Ａは読出しコマンド、Ｂは書込みコマンドに対するメディアの処理を示すフローチャートである。
【図３３】ＦＡＴファイルシステムを例としたストレージ空間の例を示す図である。
【図３４】マウント処理を示すフローチャートである。
【図３５】読出しファイルアクセス処理を示すフローチャートである。
【図３６】書込みファイルアクセス処理を示すフローチャートである。
【図３７】書込み処理のシーケンスの一例である。
【図３８】書込みファイルアクセス処理中（ユーザデータ）に電源遮断が発生した場合を説明するための図である。
【図３９】書込みファイルアクセス処理中（ユーザデータ）に電源遮断が発生後、読出しファイルアクセス処理中（ユーザデータ）にエラーが発生した場合を説明するための図である。
【図４０】書出しファイルアクセス処理中（ディレクトリ）に電源遮断が発生した場合を説明するための図である。
【図４１】書出しファイルアクセス処理中（ディレクトリ）に電源遮断が発生後、読出しファイルアクセス処理中（ディレクトリ）にエラーが発生した場合を説明するための図である。
【図４２】従来のメディアの内部構成（２）を示す図である。
【図４３】従来のメディアの内部構成（３）を示す図である。
【図４４】図４２，図４３のメディアによるREAD_DATAに対する処理を示すフローチャートである。
【図４５】図４２，図４３のメディアによるWRITE_DATAに対する処理を示すフローチャートである。
【符号の説明】
【０１１７】
１，１Ａ，１Ｂ，１Ｃ…メディア、１０，１０Ａ，１０Ｂ…メディアコントローラ、２０…ホストインターフェース、３０…プロトコル判別部、４０，４０−１，４０−２…ＮＶＭ制御選択部、５０，５０−１，５０−２，５０−３…ユーザデータ用ＮＶＭ制御部、５０Ａ…ＮＶＭ制御アルゴリズム、５０Ａ１…空ブロック管理部、５０Ａ２…論物アドレス変換部、５０Ａ３…不良ブロック管理部、５０Ｂ…ＮＶＭ制御回路、５０Ｂ１…ＮＶＭコマンド制御回路、５０Ｂ２…ＥＣＣ回路、６０，６０−１，６０−２…管理情報用ＮＶＭ制御部、７０，７０−１，７０−２…ＮＶＭインターフェース、８０，８０Ａ…不揮発性メモリデバイス、９０…高信頼性不揮発性メモリデバイス、１００…ホスト、１１０…アプリケーション処理部、１２０…ファイルシステム制御部、１２１…管理情報制御部、１２２…ユーザデータ制御部、１３０…メディア制御部、１３１…データ転送用バッファ部、１３１−１…管理情報バッファ部、１３１−２…ユーザデータバッファ部、１４０…メディアインターフェース、１５０…アプリケーション、１６０…ファイルシステム、１６１…管理情報制御部、１６２…ユーザデータアクセス部、１７０…メディア制御ドライバ、１７１…管理情報制御部、１７２…ユーザデータアクセス部
【図１】
2010152703.tif 000003
【図２】
2010152703.tif 000004
【図３】
2010152703.tif 000005
【図４】
2010152703.tif 000006
【図５】
2010152703.tif 000007
【図６】
2010152703.tif 000008
【図７】
2010152703.tif 000009
【図８】
2010152703.tif 000010
【図９】
2010152703.tif 000011
【図１０】
2010152703.tif 000012
【図１１】
2010152703.tif 000013
【図１２】
2010152703.tif 000014
【図１３】
2010152703.tif 000015
【図１４】
2010152703.tif 000016
【図１５】
2010152703.tif 000017
【図１６】
2010152703.tif 000018
【図１７】
2010152703.tif 000019
【図１８】
2010152703.tif 000020
【図１９】
2010152703.tif 000021
【図２０】
2010152703.tif 000022
【図２１】
2010152703.tif 000023
【図２２】
2010152703.tif 000024
【図２３】
2010152703.tif 000025
【図２４】
2010152703.tif 000026
【図２５】
2010152703.tif 000027
【図２６】
2010152703.tif 000028
【図２７】
2010152703.tif 000029
【図２８】
2010152703.tif 000030
【図２９】
2010152703.tif 000031
【図３０】
2010152703.tif 000032
【図３１】
2010152703.tif 000033
【図３２】
2010152703.tif 000034
【図３３】
2010152703.tif 000035
【図３４】
2010152703.tif 000036
【図３５】
2010152703.tif 000037
【図３６】
2010152703.tif 000038
【図３７】
2010152703.tif 000039
【図３８】
2010152703.tif 000040
【図３９】
2010152703.tif 000041
【図４０】
2010152703.tif 000042
【図４１】
2010152703.tif 000043
【図４２】
2010152703.tif 000044
【図４３】
2010152703.tif 000045
【図４４】
2010152703.tif 000046
【図４５】
2010152703.tif 000047