(57)【要約】【課題】セキュリティレベルに対応した書き込み動作を行うことができ、信頼性を向上できる記憶装置を提供する。【解決手段】記憶装置は、セキュリティレベルに対応して設けられた複数の記憶領域を備えた不揮発性メモリ１５と、前記複数の記憶領域の一部である第１領域３３をＭ値モードで書き込み、前記複数の記憶領域の一部であって前記第１領域よりもセキュリティレベルが低い第２領域３３をＮ値モード（Ｎ＞Ｍ）で書き込むように構成されたコントローラ１３とを具備する。【選択図】      図１
2008090519.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティレベルに対応して設けられた複数の記憶領域を備えた不揮発性メモリと、
前記複数の記憶領域の一部である第１領域をＭ値モードで書き込み、前記複数の記憶領域の一部であって前記第１領域よりもセキュリティレベルが低い第２領域をＮ値モード（Ｎ＞Ｍ）で書き込むように構成されたコントローラとを具備すること
を特徴とする記憶装置。
【請求項２】
前記第１領域は、アドレスによらない順番でデータを書き込む上書型ファイルシステムにより管理され、
前記第２領域は、前記アドレスが増加する方向に沿って順にデータを書き込む追記型ファイルシステムにより管理されること
を特徴とする請求項１に記載の記憶装置。
【請求項３】
前記第１領域はプロテクト領域であり、
前記Ｍ値モードは２値モードであり、
前記上書型ファイルシステムはＦＡＴファイルシステムであること
を特徴とする請求項２に記載の記憶装置。
【請求項４】
前記第２領域は一般領域であり、
前記Ｎ値モードは多値モードであり、
前記追記型ファイルシステムはＵＤＦファイルシステムであること
を特徴とする請求項３または４に記載の記憶装置。
【請求項５】
前記追記型ファイルシステムは、ＤＶＤ−Ｒタイプのファイルシステムであること
を特徴とする請求項２に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は記憶装置に関し、例えば、メモリカード、ＵＳＢメモリ等に適用されるものである。
【背景技術】
【０００２】
近年、例えば、フラッシュメモリを備えたメモリカード等において、セキュリティ保護手段を有しているものがある。上記メモリカードのフラッシュメモリにおいては、複数の記憶領域が設けられている（例えば、特許文献１参照）。
【０００３】
複数の記憶領域のうち、セキュリティレベルが高い記憶領域に格納される情報は、例えば、個人情報や各種機密情報アクセスのための鍵情報等である。そのため、セキュリティレベルが高い記憶領域には、例えば、ＡＶコンテンツファイル等が格納される一般領域よりも高い信頼性が要求される。
【０００４】
しかし、上記記憶領域を書き込む際に、セキュリティレベルに対応して書き込みモードが選択されることがなかった。そのため、セキュリティレベルが高い記憶領域に対しては信頼性が低減するという問題があった。
【０００５】
上記のように、従来の記憶装置は、セキュリティレベルに対応した書き込み動作が行われず、信頼性が低減するという問題があった。
【特許文献１】特開２００６−０４０２６４号公報  明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、セキュリティレベルに対応した書き込み動作を行うことができ、信頼性を向上できる記憶装置を提供する。
【課題を解決するための手段】
【０００７】
この発明の一態様によれば、セキュリティレベルに対応して設けられた複数の記憶領域を備えた不揮発性メモリと、前記複数の記憶領域の一部である第１領域をＭ値モードで書き込み、前記複数の記憶領域の一部であって前記第１領域よりもセキュリティレベルが低い第２領域をＮ値モード（Ｎ＞Ｍ）で書き込むように構成されたコントローラとを具備する記憶装置を提供できる。
【発明の効果】
【０００８】
この発明によれば、セキュリティレベルに対応した書き込み動作を行うことができ、信頼性を向上できる記憶装置が得られる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の実施形態について図面を参照して説明する。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【００１０】
[第１の実施形態（メモリカードの一例）]
まず、図１を用いてこの発明の第１の実施形態に係る記憶装置を説明する。図１は、この実施形態に係る記憶装置を示すブロック図である。本例では、記憶装置の一例として、メモリカードを例に挙げて説明する。
【００１１】
図示するように、メモリカード（記憶装置）１１は、コントローラ１３およびメモリ１５を備え、ホスト装置１２とデータ転送等を行う。例えば、ホスト装置１２は、携帯電話やパーソナルコンピュータ等である。本例では、メモリ１５として、多値ＮＡＮＤ型フラッシュメモリを一例として説明する。
【００１２】
コントローラ１３は、メモリ１５内部の物理状態（例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか）をＮＡＮＤＩ／Ｆ２４を介して管理するように構成されている。また、コントローラ１３は、メモリ１５に対してデータの入出力制御、データの管理、及びデータを書き込む際には誤り訂正符号（ＥＣＣ）を付加し、読み出す際にも誤り訂正符号（ＥＣＣ）の解析・処理を行う。さらに、コントローラ１３は、後述するように、メモリ１５中の区分された記憶領域のそれぞれに対して所定の書き込みモードにてデータを書き込むように構成されている。
【００１３】
コントローラ１３は、ホストインターフェイスとしてのＳＤＩ／Ｆ２１、ＭＰＵ（micro processing unit）２２、セキュアモジュール２３、メモリインターフェイスとしてのＮＡＮＤＩ／Ｆ２４、ＲＯＭ（Read Only Memory）２５、ＲＡＭ（Random Access Memory）２６、およびＣＰＲＭ（Content Protection for Recordable Media）モジュール２７を備えている。
【００１４】
ＳＤＩ／Ｆ２１は、コントローラ１３とホスト装置１２と間のデータ等の送受信を行うために設けられ、ＳＤＴＭメモリカードのインターフェイスに準拠したホストインターフェイスである。
【００１５】
ＭＰＵ２２は、メモリ１５全体の動作を制御するように構成されている。また、ＭＰＵ２２は、ホスト装置１２から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、メモリ１５に対して所定の処理を実行したり、ＲＡＭ２６を通じたデータ転送処理を制御する。
【００１６】
セキュアモジュール２３は、メモリカード１１とホスト装置１２との相互認証によりホスト装置１２の正当性が証明された場合にのみ、メモリ１５内のセキュア領域３２に対してデータの書き込み、または読み出しを行う。また、セキュアモジュール２３は、セキュア領域３２からデータを読み出す際に、セキュリティ用の高度な暗号処理を行う。このように、メモリカード１１とホスト装置１２との間で行われるセキュア領域３２内のデータの転送は、データが暗号化された状態で行われる。
【００１７】
ＮＡＮＤＩ／Ｆ２４は、コントローラ１３とメモリ１５間のデータ等の送受信を行うために設けられるメモリインターフェイスである。
【００１８】
ＲＡＭ２６は、例えば、ホスト装置１２から送られてくるデータをメモリ１５へ書き込む際に、一定量のデータ（例えば、１ページ分）、コマンド等を一時的に記憶するように構成される。
【００１９】
ＲＯＭ２５は、ＭＰＵ２２制御用のファームウェア（制御プログラム）を格納するように構成されている。そして、メモリカード１１が電源供給を受けたときに、ＭＰＵ２２は、上記制御用のファームウェアを読み出し、ＲＡＭ２６上に読み出して所定の処理を実行することにより、各種のテーブルをバッファＲＡＭ２６上に作成する。
【００２０】
ＣＰＲＭモジュール２７は、メモリ１５内のプロテクト領域３３にデータを書き込む際に著作権保護用の暗号を付加する暗号処理や認証処理を行い、プロテクト領域３３からデータを読み出す際の暗号解読や認証処理を行うように構成されている。
【００２１】
メモリ１５は、セキュリティレベルに対応して区分された複数の記憶領域を備えたＮＡＮＤ型フラッシュメモリである。本例では、メモリ１５は、データが書き込める領域として、システム領域３１、セキュア領域３２、プロテクト領域３３、および一般領域３４を備えている。
【００２２】
システム領域３１は、セキュリティ上重要なデータを格納し、メモリカード１１に接続されたホスト装置１２との相互認証により、ホスト装置１２の正当性が証明された場合にのみアクセスが可能となる領域である。
【００２３】
セキュア領域３２は、メモリカード１１とホスト装置１２との相互認証によりホスト装置１２の正当性が証明された場合にのみ、ホスト装置１２がアクセスすることが可能な領域である。
【００２４】
また、メモリ１５は、セキュリティ情報やメディアＩＤ等を格納する管理領域（図示せず）を備えている。
【００２５】
プロテクト領域３３は、著作権保護に関するデータを格納する領域であり、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、ホスト装置１２からはアクセス不可能な領域である。
【００２６】
一般領域３４は、メモリカード１１を使用するユーザが自由にアクセスおよび使用することが可能な領域であり、例えば、ＡＶコンテンツファイルや画像データ等のユーザデータを格納している。
【００２７】
ここで、コントローラ１３とメモリ１５との間でやりとりされる信号は、以下の通りである。
【００２８】
チップイネーブル信号（ＣＥ）は、メモリ１５のモード選択信号であり、コントローラ１３またはホスト装置１２から送信される。例えば、ＣＥが“Ｈレベル”とされるとメモリ１５がリード／ライト不可能であるスタンバイモードとなる。ＣＥが“Ｌレベル”とされると、メモリ１５がリード／ライト可能であるオペレーションモードとなる。
【００２９】
レディ（READY）／ビジィ（BUSY）信号（Ｒ／Ｂ）は、メモリ１５のデバイスの内部動作状態を外部に知らせるための信号である。メモリ１５が動作実行中の場合、メモリ１５は“ビジィ状態”のＲ／Ｂを送信する。一方、メモリ１５が動作完了の場合、メモリ１５ “レディ状態”のＲ／Ｂを送信する。
【００３０】
アドレスラッチイネーブル信号（ＡＬＥ）、コマンドラッチイネーブル信号（ＣＬＥ）などのコントロール信号は、メモリ１５に対して送信される信号が、アドレス、コマンド、データなのかを判別するための制御信号である。
【００３１】
Ｉ／Ｏ信号は、コマンド、アドレス、データの信号であり、Ｉ／Ｏバスにより送受信される。
【００３２】
＜ＮＡＮＤ型フラッシュメモリ１５の内部構成＞
次に、図２を用いて、ＮＡＮＤ型フラッシュメモリ１５の内部構成について簡単に説明する。図２は、ＮＡＮＤ型フラッシュメモリ１５のブロック図である。
【００３３】
図示するように、メモリ１５は、メモリセルアレイ３５、ページバッファ３６を備えている。
【００３４】
メモリセルアレイ３５は、複数のメモリブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の自然数）を含んでいる。また、各メモリブロックＢＬＫは、複数のメモリセルトランジスタを備えている。本例のメモリセルアレイ３５は、１つのメモリセルトランジスタに多ビットのデータを記録することが可能な多値ＮＡＮＤ型フラッシュメモリである場合を一例として説明する。なお以下の説明では、メモリブロックＢＬＫ０〜ＢＬＫｎを単純にメモリブロックＢＬＫと呼ぶことがある。
【００３５】
ここで、メモリセルトランジスタに多ビットのデータを書き込むモードを多値モード、メモリセルトランジスタに１ビットのデータを書き込むモードを２値モードと称する。この際、２値モードでデータが書き込まれたメモリセルトランジスタを多値モードで再度書きこむことが可能である。
【００３６】
また、データの消去はメモリブロックＢＬＫ単位で行われる。すなわち、同一メモリブロックＢＬＫ内のデータは一括して消去される。メモリブロックＢＬＫの各々は、複数のメモリセルトランジスタを備えている。またメモリブロックＢＬＫ内には、複数のワード線ＷＬ０、ＷＬ１、…（以下ワード線ＷＬと呼ぶ）と、ワード線ＷＬに直交するビット線ＢＬ０、ＢＬ１、…（以下ビット線ＢＬと呼ぶ）とが設けられている。そして、同一行にあるメモリセルトランジスタは同一のワード線に共通接続されている。また、同一列にあるメモリセルトランジスタは、複数のメモリセルトランジスタ単位でビット線ＢＬに共通接続されている。なお、データの書き込み及び読み出しは複数のメモリセルトランジスタの集合毎に行われ、このメモリセルトランジスタの集合を１ページと呼ぶ。なお、読み出し時及び書き込み時において、ロウアドレスによっていずれかのワード線ＷＬが選択され、カラムアドレスによっていずれかのビット線ＢＬが選択される。
【００３７】
図２の例の場合、メモリ１５の各ページは、２１１２バイト（５１２バイト分のデータ記憶部×４＋１０バイト分の冗長部×４＋２４バイト分の管理データ記憶部）を有しており、各メモリブロックＢＬＫは例えば１２８ページを含んでいる。
【００３８】
ページバッファ３６は、メモリ１５へのデータ入出力を行い、データを一時的に保持する。ページバッファ３６が保持可能なデータサイズは、各メモリブロックＢＬＫのページサイズと同じく２１１２バイト（２０４８バイト＋６４バイト）である。データ書き込みなどの際、ページバッファ３６は、メモリ１５に対するデータ入出力処理を、自身の記憶容量に相当する１ページ分の単位で実行する。
【００３９】
＜書き込みモード＞
次に、図３を用いて、上記２値モードおよび多値モードについて説明する。本例では、多値モードのうち、４値モードを一例に挙げて説明する。図３においては、横軸が閾値電圧Ｖthを示し、縦軸がメモリセルの存在確率を示している。
【００４０】
まず４値モードについて説明する。図示するようにメモリセルトランジスタは、閾値電圧Ｖthの低い順に“１１”、“０１”、“１０”、“００”の４つのデータを保持できる。“１１”データを保持するメモリセルトランジスタの閾値電圧Ｖthは、Ｖth＜０Ｖである。“０１”データを保持するメモリセルトランジスタの閾値電圧Ｖthは、０Ｖ＜Ｖth＜Ｖth１である。“１０”データを保持するメモリセルトランジスタの閾値電圧Ｖthは、Ｖth１＜Ｖth＜Ｖth２である。“００”データを保持するメモリセルトランジスタの閾値電圧Ｖthは、Ｖth２＜Ｖth＜Ｖth３である。
【００４１】
次に２値モードについて説明する。図示するようにメモリセルトランジスタは、閾値電圧Ｖthの低い順に“１”、“０”の２つのデータを保持できる。“１”データを保持するメモリセルトランジスタの閾値電圧Ｖthは、Ｖth＜０Ｖである。“０”データを保持するメモリセルトランジスタの閾値電圧Ｖthは、Ｖth１＜Ｖth＜Ｖth２である。すなわち、“１”データは４値モードにおける“１１”データに等しく、“０”データは４値モードにおける“１０”データに等しい閾値電圧を有する。
【００４２】
つまり、言い換えれば２値モードとは、４値モードにおける２ビットデータのうち、下位ビットのみを用いた動作モードと言うことができる。メモリセルトランジスタに対して２値モードでデータを書き込むか、または４値モードでデータを書き込むかについては、コントローラ１３が制御する。具体的には、２ビットデータの下位ビットには下位ページアドレスが割り当てられ、上位ビットには上位ページアドレスが割り当てられる。メモリセルトランジスタに対して２値モードでデータを書き込む場合、コントローラ１３は、これらのページアドレスのうち下位ページアドレスのみを使用してメモリ１５にデータを書き込む。メモリセルトランジスタに対して多値モードでデータを書き込む場合、コントローラ１３は、上位ページアドレスと下位ページアドレスの両方を使用してメモリ１５にデータを書き込む。
【００４３】
データの書き込みは、まず下位ビットから行われる。消去状態を“１１”（“−−”、−は不定の意味）とすると、まず下位ビットが書き込まれることにより、メモリセルトランジスタＭＴは“１１”（“−１”）、または“１０”（“−０”）を保持する。２値モードの場合には、以上で書き込みは終了である。４値モードで書き込む場合には、次に上位ビットが書き込まれる。その結果、“１１”（“−１”）を保持するメモリセルトランジスタＭＴは、“１１”または“０１”を保持し、“１０”（“−０”）を保持するメモリセルトランジスタは“１０”または“００”を保持する。その他の８値モード、１６値モード等について、同様である。
【００４４】
次に、図４を用いて、記憶領域、書き込みモード、およびファイルシステムの関係について説明する。図示するように、本例の場合には、より高いセキュリティレベルが必要なシステム領域３１、セキュア領域３２、およびプロテクト領域３３の書き込みモードは、２値モードである。この際、コントローラ１３が、上記２値モードでシステム領域３１、セキュア領域３２、およびプロテクト領域３３を書き込むようにメモリ１５を制御する。
【００４５】
一方、一般領域３４の書き込みモードは、多値モード（本例の場合、４値モード）である。この際、コントローラ１３が、上記多値モードで一般領域３４を書き込むようにメモリ１５を制御する。
【００４６】
また、システム領域３１、セキュア領域３２、およびプロテクト領域３３のファイルシステムは、論理アドレス（メモリカード１１がホスト装置１２から受け取るアドレス)が増加する方向によらない順番でデータを書き込む上書型ファイルシステム（例えば、後述するＦＡＴ等）である。この際、ホスト装置１２が、上記上書型ファイルシステムにより、データを書き込むようにメモリ１５を制御する。
【００４７】
一方、一般領域３４のファイルシステムは、アドレスが増加する方向に沿って順にデータを書き込む追記型ファイルシステム（例えば、後述するＵＤＦ等）である。この際、ホスト装置１２が、追記型ファイルシステムにより、データを書き込むようにメモリ１５を制御する。
【００４８】
即ち、上記の関係は、（記憶領域，書き込みモード，ファイルシステム）とした場合、（システム領域３１，２値モード，上書型（ＦＡＴ））、（セキュア領域３２，２値モード，上書型（ＦＡＴ））、（プロテクト領域３３，２値モード，上書型（ＦＡＴ））、（一般領域，多値モード，追記型（ＵＤＦ））として表される。
【００４９】
＜ファイルシステム＞
次に、ファイルシステムについて説明する。通常、メモリカードのＮＡＮＤ型フラッシュメモリはＦＡＴファイルシステムでフォーマットされている。
【００５０】
この実施形態では、図５に示すように、メモリ１５の少なくとも一部の領域３９ａ（一般領域３４）が、シーケンシャルアクセス追記型ファイルシステムでフォーマットされている。残りの領域３９ｂ（セキュア領域３２、プロテクト領域３３）が、ランダム書き込み型のファイルシステムでフォーマットされている。
【００５１】
まず、追記型ファイルシステムを説明する。追記型ファイルシステムは、低セクタ（書き込み領域）アドレスのセクタから高セクタアドレスのセクタに順にデータを書き込んでいく。以下、「ファイルシステムがデータを書き込むおよびデータを読み出す」と記載されていたり、これを意味する記載の場合、ファイルシステムが、コントローラ１３にデータの書き込みおよびデータの読み出しを指示し、コントローラ１３が実際にフラッシュメモリ１５にデータの書き込み、フラッシュメモリからデータを読み出すことを意味するものとする。
【００５２】
追記型ファイルシステムをメモリカード１１に採用することで、フラッシュメモリ１５での頻繁なデータの消去、書き換えがなくなる。この結果、用途によっては効率の良いファイル書き込みおよび書き換えが期待できる。
【００５３】
また、追記型ファイルシステムがメモリカード１１に適用されると、ファイル書き込み時のブロック消去が不要であるため、ファイル書き込み速度が低下しない。また、シーケンシャルな書き込みであるため、後述の引越し書き込みのような処理が不要である。よって、書き込み処理の高速化が期待できる。
【００５４】
シーケンシャルアクセス追記型のファイルシステムとして、例えば、ユニバーサルディスクフォーマット（ＵＤＦ）がある。ＵＤＦは、ＤＶＤで採用されているファイルシステムである。ＵＤＦでは、ＩＣＢ(Information Control Block)と呼ばれるアロケーションテーブル（Allocation Table）において、ファイルエントリの位置（論理セクタアドレス）が記載されている。ＩＣＢは、ファイルごとに設けられる。そして、ファイルの更新の際、このファイルのＩＣＢも書き換えられる。
【００５５】
ＩＣＢの構造を図６を参照して説明する。図６に示すファイル構造は、ＩＣＢを用いると、図７に示すような構成になる。あるファイルにアクセスする際、このファイルのＩＣＢが記載されているアドレスにアクセスされる。ＩＣＢには、ファイル識別記載子によって、ファイル名およびファイルエントリのアドレスが記載されている。ファイルエントリとして、ファイル実体の位置、ファイルサイズ、ファイル属性等が記載されている。そして、ファイルエントリに記載されているファイル実体のアドレスに、目的のファイルの実際のデータが記憶されている。
【００５６】
サブディレクトリが設けられている場合も同様の構造が形成される。ルートディレクトリのＩＣＢ（ＬＢＮ８２）には、ルートディレクトリのファイルエントリのアドレス（ＬＢＡ８３）が記載されている。このアドレスにより特定される領域には、ルートディレクトリのディレクトリ情報が記載されている。このディレクトリ情報として、各サブディレクトリのＩＣＢのアドレス（ＬＢＡ８４、９４）等が記載されている。
【００５７】
サブディレクトリのＩＣＢには、このサブディレクトリ内のファイルの各ファイルのＩＣＢのアドレス（ＬＢＡ８５、９５）が記載されている。そして、上記のように、ファイルのＩＣＢに記載されているアドレスにおいて、このファイルのファイルエントリが記載されており、これを参照して実際の（本当の）アドレスが特定される。
【００５８】
［２−１］ファイルシステムの種類
書き込み可能なＤＶＤの規格としては、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭがある。それぞれのディスクの特性に応じて、ファイルシステムが異なる。それぞれのファイルシステムについて以下に説明する。なお、これらのファイルシステムは、いずれも、シーケンシャルアクセス追記が可能である。以下、本実施形態において採用可能なファイルシステムについて説明する。
【００５９】
［２−１−１］ＤＶＤ−Ｒタイプのファイルシステム
ＤＶＤ−Ｒタイプのファイルシステムでは、書き込み済みデータの消去、書き換えは不可能であり、書き込みも低セクタアドレスから順に書き込まれていく。このため、ＤＶＤ−Ｒタイプのファイルシステムでは、後述するＶＡＴによって追記によるファイルの更新、削除、追加が実現される。追記型であるＤＶＤ−Ｒタイプのファイルシステムは、ＶＡＴ(Virtual Allocation Table）と呼ばれる変換テーブルをファイルとして持つ。
【００６０】
ＶＡＴには、ある仮想セクタアドレスと論理セクタアドレスとの対応関係が記載されている。あるアドレスにアクセスする際、ホスト装置１２はＶＡＴによって仮想セクタアドレスを論理セクタアドレスに変換した上で、変換された論理セクタにアクセスする。
【００６１】
そして、追記時には、ファイル実体の追記と共に、ＶＡＴ中の、このファイルのＩＣＢの仮想セクタアドレスに対する論理セクタアドレスを変更することにより、実際にアクセスされる論理セクタアドレスが変更される。こうすることにより、書き込み済みのセクタデータを書き換えることなくファイルの更新が実現される。
【００６２】
なお、ＶＡＴが参照されるのは、ファイル識別記載子によって記載されているファイルエントリの仮想アドレスから、実際の（最新の）アドレスが求められるときである。換言すれば、ファイルエントリに記載されているファイル実体（ディレクトリ実体）のポインタ（アドレス）は、ＶＡＴによって変換する必要のない、本当のアドレスである。
【００６３】
また、ＶＡＴ自体の更新は、ＶＡＴ自体のＩＣＢ（ＶＡＴ  ＩＣＢ）を、常にメディアの書き込み済み領域の最終の領域に書き込むことによって実現される。
【００６４】
図８は、ＤＶＤ−Ｒファイルシステムがメモリカード１１に適用された場合の、ファイルシステムが認識しているファイル構造を概略的に示している。図８は、ファイルが１度、更新、削除、追加された際の状態を示している。
【００６５】
図８に示すように、上から順に、ヴォリュームストラクチャ、ファイルセットディスクリプタ、ルートディレクトリのファイルエントリ、ルートディレクトリのデータが順次配置されている。次いで、１回目に記載されたファイル（オリジナルファイル）、すなわち追加、削除前のファイルのファイルエントリが配置されている。次に、オリジナルファイルのデータが配置されている。次に、１回目の記載時に作成されたＶＡＴ（ＶＡＴ＜１ｓｔ＞）、次に、この１回目のＶＡＴのＩＣＢが配置されている。
【００６６】
次に、ボーダーイン、ボーダーアウト領域を挟んで、更新されたファイルのファイルエントリ、更新されたファイルが配置されている。そして、更新時に作製されたＶＡＴ（ＶＡＴ＜２ｎｄ＞）、この更新時のＶＡＴのＩＣＢが配置される。これ以降は、ボーダーアウト領域を挟んで、未書き込み領域が続いている。図９は、ＶＡＴ＜２ｎｄ＞の一例を示している。図９に示すように、仮想アドレスと論理アドレスが対応付けられている。
【００６７】
ファイルのデータの読み出しの際、ファイルシステムは、最新のＶＡＴ  ＩＣＢを読み出す。ＶＡＴ  ＩＣＢは、上記のように、常に書き込み領域の最後尾に配置しており、図８の例の場合、ＶＡＴ  ＩＣＢ＜２ｎｄ＞にアクセスされる。
【００６８】
ファイルシステムは、ＶＡＴ  ＩＣＢ＜２ｎｄ＞に記載されている最新のＶＡＴの位置を参照の上、ＶＡＴを読み出す。次に、ファイルシステムは、ファイルセットディスクリプタ−にアクセスする。この際、ファイルセットディスクリプタ−の論理アドレスは、仮想アドレス＃０からＶＡＴを用いて求められる。
【００６９】
次に、ファイルシステムは、ファイルセットディスクリプタ−に記載のアドレスから、ルートディレクトリのファイルエントリを読み出す。実際には、ＩＣＢを読み出し、次に、ＩＣＢに記載されているファイルエントリのアドレスにアクセスする。
【００７０】
次に、ファイルシステムは、ルートディレクトリのファイルエントリに記載されている仮想アドレス＃１とＶＡＴを用いて、ルートディレクトリのデータにアクセスする。次に、ファイルシステムは、ルートディレクトリのデータに記載の仮想アドレスから最新ファイルのＩＣＢにアクセスし、このＩＣＢに記載の仮想アドレス＃２およびＶＡＴを用いて最新ファイルのファイルエントリにアクセスする。そして、ファイルエントリに記載のアドレスから、最新ファイルのデータが読み出される。
【００７１】
フラッシュメモリにＤＶＤ−Ｒタイプのファイルシステムが採用された場合、通常のメモリリードによっては書き込済み領域と未書き込み領域とを判別することは困難である。
【００７２】
そこで、フラッシュメモリ１５をＤＶＤ−Ｒタイプのファイルシステムでフォーマットした場合、図１０に示すように、各ページ４１は、データ記憶部４１ａと冗長部４１ｂとから構成される。そして、各ページの冗長部４１ｂを書き済み済み情報部として用い、書き込み済み情報部にページの書き込済み／未書き込みを示すフラグが設けられる。このフラグをチェックすることで、最高位のページが「最終書き込み領域」として判別されることができる。
【００７３】
このフラグ情報は冗長部４１ｂにあるため、メモリカード１１の通常のメモリリードコマンドでは、ホスト機器１２は、このフラグ情報を読み取ることができない。したがって、このフラグ情報に基づく書き込み済み領域の情報を読み込むためのコマンドがＳＤＩ／Ｆ２１に設置される。
【００７４】
コントローラ１３は、書き込み時、データとともにページにフラグを追記していく。ただし、この方法はＤＶＤ−Ｒ方式のようなシーケンシャルライト方式のみに使える。また、「最終書き込み領域」を知るためにはコントローラ１３がページを検索していく必要がある。
【００７５】
最終書き込み領域を効率的に検索するために、以下の手法を用いることもできる。コントローラ１３は、フラッシュメモリのメモリ領域の検索対象を順次半分に区切りながら、フラグをチェックする。すなわち、まず、１回目の分割時の境界の直後のページの冗長部のフラグをチェックする。そして、このフラグが、未書き込みを示している場合、１回目の分割の前半の部分を次の検索対象とする。同様に、書き込み済みを示している場合、１回目の分割の後半の部分を次の検索対象とする。
【００７６】
そして、新たな検索対象（１回目の分割の前半の部分または後半の部分）が分割（２回目の分割）され、この分割の境界の直後のページの冗長部のフラグがチェックされる。以上の動作が、繰り返されることにより、効率的に、最終書き込み領域を検出することができる。
【００７７】
また、最終書き込み領域を認識するために、例えばセキュア領域３２に「最終書き込み領域」を記憶するための専用の領域を設けても良い。この場合、コントローラ１３が、「最終書き込み領域」を知るために各ページを検索していく必要がない。ただし、この専用の領域への書き込みにおいて、あるタイミングでブロック消去が必要である。
【００７８】
上記のように、ＤＶＤ−Ｒタイプのファイルシステムでは、書き込み済み領域の最終部にＶＡＴ  ＩＣＢが書き込まれているため、動作の際、最終書き込み領域が検出される必要がある。本実施形態のように、ページの書き込済み／未書き込みを示すフラグが設けられることにより、コントローラ１３が、最終書き込み領域を短時間で検出することができる。
【００７９】
ＤＶＤ−Ｒタイプのファイルシステムでは、上記のように、既書き込みデータの消去、書き換えは不可能であり、書き込みも低セクタアドレスから順に書き込まれていく。このような特性のため、ＤＶＤ−Ｒタイプのファイルシステムがフラッシュメモリに適用されると、ファイル更新、追記、削除ではブロック消去は発生しない。書き込みも追記のシーケンシャルライトのみである。
【００８０】
［２−１−２］ＤＶＤ−ＲＷタイプのファイルシステム
ＤＶＤ−ＲＷタイプのファイルシステムは、セクタデータ（ＩＣＢなど）を書き換えることでファイル更新、追記、削除を実現する。
【００８１】
未書き込み領域があれば、ＩＣＢの書き換えとファイル実体が追記されることにより、ファイルを更新することができる。未書き込み領域がない場合は、書き込み済みの領域を書き換えるか、ファイルシステムによるメモリカードのファイルの再構成（ガベージコレクション）によって未書き込み領域を確保する必要がある。
【００８２】
ＤＶＤ−ＲＷタイプのファイルシステムでは、ＤＶＤ−ＲＷの書換え可能回数が少ないため、書き換えの繰り返し等によって発生する不良セクタを補填するための代替セクタ（Sparing Area）が設けられている。そして、不良セクタが発生した場合、変換テーブル（Sparing Table）によって、不良セクタへのアクセスが代替セクタへのアクセスへと変更される。ＤＶＤ−ＲＷタイプのファイルシステムでは、このような変換メカニズムがサポートされている。なお、ＤＶＤ−ＲＷタイプのファイルシステムでは、パケット単位で代替が行われる。
【００８３】
一方、通常、メモリカード１１での不良セクタの管理は、コントローラ１３で行われている。ＤＶＤ−ＲＷタイプのファイルシステムでフラッシュメモリ１５内のファイルを管理した場合、コントローラ１３で不良セクタを管理することが不要となり、コントローラ１３の負担を軽減することができる。
【００８４】
［２−１−３］ＤＶＤ−ＲＡＭタイプのファイルシステム
ＤＶＤ−ＲＡＭタイプのファイルシステムは、ＤＶＤ−ＲＷと同様に、セクタデータ（ＩＣＢなど）を書き換えることでファイル更新、追記、削除を実現する。その他の処理もほぼＤＶＤ−ＲＷと同様である。ただし、ＤＶＤ−ＲＡＭの書換え可能回数は１０万回程度と多いため、スペアリングエリアおよびスペアリングテーブルによる不良セクタの代替手段はサポートされていない。
【００８５】
［２−２］ファイルシステムの設定
次に、適切なファイルシステムを設定（選択）するための基準について説明する。
【００８６】
［２−２−１］容量に応じたファイルシステムの設定
用途や条件に応じて適切なファイルシステムを設定することでメモリカードを効率よく使える。以下に、適切なファイルシステムについて説明する。
【００８７】
メモリカード１１の容量が大きい場合、ＵＤＦのような、シーケンシャルライトメディアに対応可能なファイルシステムを採用することが好ましい。上述したようにＵＤＦには３つのタイプのファイルシステムがある。容量に応じて、以下のようにファイルシステムを採用することが好ましい。
【００８８】
大容量の場合は、ＤＶＤ−Ｒ方式のようなシーケンシャルライトメディアに対応可能なファイルシステムを採用することが好ましい。
【００８９】
大容量でも比較的小さい場合は、ＤＶＤ−ＲＷ方式、またはＤＶＤ−ＲＡＭ方式のような、すなわち書換え可能なメディアを前提としたファイルシステムを採用することが好ましい。
【００９０】
メモリカード１１の容量が小さい場合、現在使用されているＦＡＴファイルシステムを用いることが好ましい。ＵＤＦ等、追記型のファイルシステムの場合、ファイルの更新を繰り返すと書き込み済みの使用不可領域が増えていく。これを整理して空き領域を確保するために、ガベージコレクションが必要である。容量が小さいと、ガベージコレクションを頻繁に行う必要があり、使い勝手が悪くなる。また、ＵＤＦの場合は管理情報の領域がＦＡＴに比べると大きくなるため、この点でも小容量のメモリカードには適していない。
【００９１】
［２−２−２］用途に応じたファイルシステムの設定
ファイルサイズが小さい用途や同一ファイルの書き換えが頻繁に発生する用途（メール、文書など通常のオフィスデータファイル用途）の場合は、ＦＡＴファイルシステムのようなランダム書換え可能なメディアを前提としたファイルシステムを採用することが好ましい。
【００９２】
ファイルサイズが大きく同一ファイルの更新が少ない用途（画像、音楽、動画などのマルチメディア）には、ＵＤＦのようなシーケンシャルライトメディアに対応可能なファイルシステムを採用することが好ましい。
【００９３】
［２−３−１］ＦＡＴの場合
ＦＡＴファイルシステムの場合、これまでと同様のＦＡＴファイルシステム用のメモリ制御方式を行う。すなわち、メモリカード１１は、後述の引越し書き込みを行う。
【００９４】
＜引越し書き込みについて＞
引越し書き込み処理とは、フラッシュメモリ１５において書き込み済みのページへの書き込み（更新）が発生した場合に、以下のような処理を行うものである。フラッシュメモリ１５の場合は消去はブロック単位で発生するため、このような処理が必要になる。
【００９５】
１）消去されたブロック（Ｂ）をひとつ準備する。
【００９６】
２）書き換え対象のページを含むブロック（Ａ）のうち、書換え対象を除く全ての書き込み済みページのデータをブロック（Ｂ）に書き移す。
【００９７】
３）書換え対象のページのデータをブロック（Ｂ）に書き込む。
【００９８】
４）ブロック（Ａ）の論理アドレスをブロック（Ｂ）の論理アドレスと置き換える。
【００９９】
［２−３−２］ＵＤＦ（ＤＶＤ−Ｒのファイルシステム）の場合
ＤＶＤ−Ｒタイプのファイルシステムでは、ファイル更新、追記、削除ではブロック消去は発生せず、書き込みも追記のシーケンシャルのみである。このため、メモリカード１は、引越し書き込みやＦＡＴファイルシステムの場合に行うような特殊処理を実施せず、特殊処理のために必要なメモリ領域を確保しない。
【０１００】
［２−３−３］コントローラによるファイルシステムの識別
ファイルシステムに応じてメモリ制御方式を変更するためには、コントローラ４がファイルシステムを認識する必要がある。以下に識別方法の実施例を示す。
【０１０１】
フォーマット情報（パーティションテーブルのファイルシステム情報など）によって識別する。この識別方法では、ホスト１２が特別な操作をする必要はないが、コントローラ１３がフォーマット情報を認識し、フォーマットの種類を知得できる必要がある。
【０１０２】
フラッシュメモリ１５内にフォーマット情報設定領域を設け、ホスト１２が識別情報を設定する。この識別方法では、メモリカード１１はフォーマットデータを認識する必要がない。
【０１０３】
［３］フラッシュメモリの適性に合わせたＵＤＦ仕様の追加やパラメータの定義
ファイルシステムの論理フォーマットパラメータに、セクタサイズと書き込み単位であるパケットサイズとに加えて、フラッシュメモリ１５のブロック（消去単位）ＢＬＫサイズを追加することが好ましい。こうすることによって、ファイルシステム２０２は、フラッシュメモリ１５の消去特性に合わせたファイル管理を行うことができる。ファイルシステム２０２が、フラッシュメモリ１５のブロックサイズを知得することにより、以下の処理が可能である。
【０１０４】
まず、ＤＶＤ−ＲＷタイプのファイルシステムが採用された場合、スペアリングテーブルおよびスペアリングエリアの管理は、ファイルシステムが、論理フォーマットパラメータに記録されたブロックサイズで実施することが好ましい。すなわち、効率性の観点から、スペアリングテーブルおよびスペアリングエリアの管理単位の大きさとフラッシュメモリ１５のブロックの大きさとが同じであることが好ましい。こうすることによって、メモリカードが代替ブロックを確保しておく必要がなくユーザ領域が最初から少なくなることを防げる。
【０１０５】
また、ホスト装置１２のユーティリティ、ファイルシステムは、ブロック単位でのガベージコレクション、デフラグを優先的に行うことが好ましい。
【０１０６】
ガベージコレクションやデフラグでは、書き込み済みのブロックから他のブロックへのデータ移動が頻繁に行われるが、これをブロック単位で実施することで効率的な処理が可能である。また、この際に上記の「メモリ領域移動コマンド」を使用するとさらに効率的な処理が可能である。
【０１０７】
また、ホスト装置１２のファイルシステムは各ファイルのＩＣＢを１つのブロック内にまとめて記載することを優先することが好ましい。これによって、ガベージコレクションの際に発生する各ＩＣＢの書き換えに対して、書き換えが必要となるブロックの数を最低限に抑えることができる。こうすることによって、ガベージコレクション、デフラグの際のデータ移動やＩＣＢの書換え効率が向上する。
【０１０８】
この実施形態に係る記憶装置によれば、例えば、下記（１）および（２）の効果が得られる。
【０１０９】
（１）セキュリティレベルに対応した書き込み動作を行うことができ、信頼性を向上できる。
【０１１０】
上記図４に示すように、より高いセキュリティレベルが必要なシステム領域３１、セキュア領域３２、およびプロテクト領域３３の書き込みモードは、２値モードである。この際、コントローラ１３が、上記２値モードでシステム領域３１等を書き込むようにメモリ１５を制御する。
【０１１１】
ここで、上記システム領域３１、セキュア領域３２、およびプロテクト領域３３に格納される情報は、要求されるセキュリティレベルが一般領域３４よりも高い鍵情報等である。そのため、データ耐久性が要求されるが、データ容量はそれほど必要ではない。
【０１１２】
そのため、この領域に対しては、耐久性がより高く容量が少ない２値モードにて書き込みを行うことにより、セキュリティ保護を向上し、信頼性を向上できる。
【０１１３】
一方、一般領域３４の書き込みモードは、多値モードである。この際、コントローラ１３が、上記多値モードで一般領域３４を書き込むようにメモリ１５を制御する。
【０１１４】
ここで、一般領域３４に格納される情報は、例えば、ユーザの動画データ等であるため、データ耐久性は要求されないが、容量が必要とされる情報である。そのため、この一般領域３４に対しては、耐久性は低いが大容量化に有利な多値モードにて書き込むことで、過剰なセキュリティ保護を防止し、大容量化することができる。
【０１１５】
このように、セキュリティレベルに対応した書き込み動作を行うことができるため、信頼性を向上できる。
【０１１６】
（２）セキュリティレベルに対応したファイルシステムを選択し、利便性を向上できる。
【０１１７】
上記図４に示すように、システム領域３１、セキュア領域３２、およびプロテクト領域３３のファイルシステムは、論理アドレスによらない順番でデータを書き込む上書型ファイルシステム（例えば、ＦＡＴ等）である。この際、ホスト装置１２が、上記上書型ファイルシステムにより、データを書き込むようにメモリ１５を制御する。
【０１１８】
ここで、この領域に格納される情報は、例えば、セキュア領域３２に格納される鍵ファイル等のように、小さいデータの単位で書き換えられる頻度が多い情報である。そのため、書き換え頻度が多い場合であっても、上記上書型ファイルシステムにより書き込むことで、書き込み動作の遅延を防止でき、利便性を向上できる。
【０１１９】
一方、一般領域３４のファイルシステムは、アドレスが増加する方向に沿って順にデータを書き込む追記型ファイルシステム（例えば、上記ＵＤＦ等）である。この際、ホスト装置１２が、追記型ファイルシステムにより、データを書き込むようにメモリ１５を制御する。
【０１２０】
ここで、一般領域３４に格納される情報は、例えば、画像データ等のように、大容量でかつ適宜追加して使用される情報である。そのため、上記追記型ファイルシステムにより書き込むことで、高速で効率の良い書き込みができ、利便性を向上できる。
【０１２１】
このように、セキュリティレベルに対応したファイルシステムを選択するため、利便性を向上できる。
【０１２２】
［第２の実施形態（ＵＳＢメモリの一例）］
次に、第２の実施形態に係る記憶装置について、図１１を用いて説明する。この実施形態は、ユニバーサルシリアルバス（Universal Serial Bus：以下、ＵＳＢと称する）メモリに適用した一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１２３】
図示するように、この実施形態に係る記憶装置は、コントローラ１３がＵＳＢＩ／Ｆ４５を備えている点で上記第１の実施形態と相違している。
【０１２４】
ＵＳＢＩ／Ｆ４５を介して、ＵＳＢメモリ４３はホスト装置１２とデータ等の送受信を行う。
【０１２５】
上記のように、この実施形態に係る記憶装置によれば、上記（１）および（２）と同様の効果が得られる。さらに、本例のように、必要に応じて、ＵＳＢメモリ４３に適用することが可能である。
【０１２６】
尚、上記第１、第２の実施形態においては、２値モードおよび多値モードを一例として説明したがこれに限らず、複数に区分された記憶領域の一部である第１領域をＭ値モードで書き込んだ場合、上記第１領域よりもセキュリティレベルが低い第２領域をＮ値モード（Ｎ＞Ｍ）で書き込むことが可能である。例えば、上記第１領域を４値モードで書き込み、上記第２領域を１６値モードで書き込むこと等が可能である。
【０１２７】
また、上記第１、第２の実施形態では、メモリ１５として多値ＮＡＮＤ型フラッシュメモリの場合を挙げ、この多値ＮＡＮＤ型フラッシュメモリを２値モードと多値モードとで書き分ける場合を一例として説明した。しかし、これに限らず、例えば、メモリとして、２値ＮＡＮＤ型フラッシュメモリと多値ＮＡＮＤ型フラッシュメモリとを別チップとして備えた場合でも、同様に適用することが可能である。ここで、２値ＮＡＮＤ型フラッシュメモリとは、１つのメモリセルトランジスタに１ビットのデータを記録することが可能なＮＡＮＤ型フラッシュメモリをいう。
【０１２８】
以上、第１および第２の実施形態を用いて本発明の説明を行ったが、この発明は上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば各実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０１２９】
【図１】この発明の第１の実施形態に係る記憶装置を示す平面図。
【図２】図１中のメモリの内部構造を示す平面図。
【図３】書き込みモードを説明するための図。
【図４】図１中のメモリをフォーマットの違いにより区分けした状態を示す図。
【図５】記憶領域、書き込みモード、およびファイルシステムの関係を示す図。
【図６】一般的なファイル構造を示す図。
【図７】ＩＣＢを用いて実現されるファイル構成を示す図。
【図８】ＤＶＤ−Ｒファイルシステムがメモリカードに適用された場合の、ファイルシステムが認識しているファイル構造を概略的に示す図。
【図９】ＶＡＴの一例を示す図。
【図１０】各ページの構成の一例を示す図。
【図１１】この発明の第２の実施形態に係る記憶装置を示す平面図。
【符号の説明】
【０１３０】
１１…メモリカード、１２…ホスト装置、１３…コントローラ、１５…メモリ（ＮＡＮＤ型フラッシュメモリ）、２１…ＳＤＩ／Ｆ、２２…ＭＰＵ、２３…セキュアモジュール、２４…ＮＡＮＤＩ／Ｆ、２５…ＲＯＭ、２６…ＲＡＭ、２７…ＣＰＲＭモジュール、３１…システム領域、３２…セキュア領域、３３…プロテクト領域、３４…一般領域。
【図１】
2008090519.tif 000003
【図２】
2008090519.tif 000004
【図３】
2008090519.tif 000005
【図４】
2008090519.tif 000006
【図５】
2008090519.tif 000007
【図６】
2008090519.tif 000008
【図７】
2008090519.tif 000009
【図８】
2008090519.tif 000010
【図９】
2008090519.tif 000011
【図１０】
2008090519.tif 000012
【図１１】
2008090519.tif 000013