(57)【特許請求の範囲】
【請求項１】
ホスト装置に着脱可能な半導体記憶装置であって、
データを保持可能であり、ＦＡＴファイルシステムによりファイルを管理される不揮発性の半導体記憶装置と、
前記ホスト装置と通信可能なインターフェースを有し、ホスト機器から受信した書き込みデータを前記半導体記憶装置へ書き込み制御するメモリコントローラと
を具備し、前記メモリコントローラは、書き込み対象アドレスに応じて、複数のアドレス領域を含む論理アドレス空間に対して書き込み制限条件を設け、
前記メモリコントローラは、ファイル名と、前記ホスト装置により前記ファイル名に関連付けられたファイルデータを、前記半導体記憶装置に書き込み、
既に前記半導体記憶装置に書き込まれている第１ファイルについてのファイル名及びファイルデータの変更要求を前記ホスト装置から受信した際には、前記メモリコントローラは該変更要求を拒絶し、
前記第１ファイルと異なり、且つ前記半導体記憶装置に書き込まれていない第２ファイルについての書き込み要求を前記ホスト装置から受信した際には、前記メモリコントローラは、該書き込み要求を許可する
ことを特徴とする半導体装置。
【請求項２】
前記アドレス領域の設定は、前記ホスト機器からの書き込みアクセス時におけるアドレスやデータに応じて、前記メモリコントローラによって行われる
ことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記アドレス領域のうちのいずれかは、論理アドレスが増加する方向への書き込みのみが許可される
ことを特徴とする請求項１記載の半導体装置。
【請求項４】
前記アドレス領域のうちのいずれかは、同一の値によるデータの上書きと、初期値からそれ以外の値へのデータの上書きのみが許可される
ことを特徴とする請求項１記載の半導体装置。
【請求項５】
前記アドレス領域は、前記半導体記憶装置の論理ファイルフォーマットの論理領域区分に応じたものである
ことを特徴とする請求項１記載の半導体装置。
【請求項６】
前記メモリコントローラは、ＦＡＴ領域及びディレクトリエントリ領域に対して、互いに異なる前記書き込み制限条件を設定する
ことを特徴とする請求項１記載の半導体装置。
【請求項７】
ＦＡＴ領域は、書き込み済みデータの同一のデータによる上書き、及び未使用クラスタであることを示す値からそれ以外の値への上書きのみが許可され、
ディレクトリエントリ領域は、書き込み済みデータの同一のデータによる上書き、及び未使用エントリであることを示す値からそれ以外の値への上書きのみが許可される
ことを特徴とする請求項１記載の半導体装置。
【請求項８】
前記メモリコントローラは、前記ＦＡＴ領域において、書き込み対象となる領域における値がＦＡＴチェーンの最終値であり、且つ上書きデータが有効なクラスタ値であった場合、前記領域に対する上書きを許可する
ことを特徴とする請求項６または７記載の半導体装置。
【請求項９】
前記メモリコントローラは、前記ＦＡＴ領域において、前記書き込み対象となる領域がディレクトリエントリ領域に対応する場合、前記上書きデータに対応するクラスタに新たなディレクトリエントリ領域を設定し、それ以外の場合には、対応するファイルエントリにおけるファイルサイズの上書きを許可する
ことを特徴とする請求項８記載の半導体装置。
【請求項１０】
前記インターフェースは、ＳＤインターフェースである
ことを特徴とする請求項１記載の半導体装置。
【請求項１１】
請求項１記載の半導体装置と、
前記ホスト機器と
を具備し、前記ホスト機器は、前記半導体装置をプリフォーマットすることにより、前記半導体記憶装置の前記論理アドレス空間に、前記書き込み制限条件を有する複数の前記アドレス領域を設定する
ことを特徴とするメモリシステム。
【請求項１２】
前記半導体装置は、カードデバイスである
ことを特徴とする請求項１１記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体装置及びメモリシステムに関する。例えば、メモリカードとホスト機器との間の通信方法に関する。
【背景技術】
【０００２】
近年、写真などのデータ記憶デバイスとして、ＳＤTMメモリカードが広く用いられている。そして、公式資料用の写真等、一度作成したファイルの保全性が重要な用途にも、ＳＤメモリカードが使用できることが望まれている。
【０００３】
このような用途では、ＳＤメモリカードに下記の特性を持たせることが必要である。すなわち、  
・一度ＳＤカードに記録した写真データを、後で削除、変更、改竄出来ない。  
・通常のデジタルカメラで撮影した写真データを記録出来る。  
・一般的なＰＣ及びＵＳＢリーダ／ライタで写真データを読み出せる。
【０００４】
しかしながら、ＳＤカードにおけるデータの取り扱いには種々の提案が為されているものの（例えば特許文献１参照）、上記全ての特性を備えたＳＤメモリカードは存在しなかった。従って、ファイルの保全性が重要な用途には、ＳＤメモリカードは使用し難いという問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０４０２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明は、データの保全性に優れた半導体装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００７】
この発明の一態様に係る半導体装置は、ホスト装置に着脱可能な半導体記憶装置であって、データを保持可能であり、ＦＡＴファイルシステムによりファイルを管理される不揮発性の半導体記憶装置と、前記ホスト装置と通信可能なインターフェースを有し、ホスト機器から受信した書き込みデータを前記半導体記憶装置へ書き込み制御するメモリコントローラとを具備し、前記メモリコントローラは、書き込み対象アドレスに応じて、複数のアドレス領域を含む論理アドレス空間に対して書き込み制限条件を設け、前記メモリコントローラは、ファイル名と、前記ホスト装置により前記ファイル名に関連付けられたファイルデータを、前記半導体記憶装置に書き込み、既に前記半導体記憶装置に書き込まれている第１ファイルについてのファイル名及びファイルデータの変更要求を前記ホスト装置から受信した際には、前記メモリコントローラは該変更要求を拒絶し、前記第１ファイルと異なり、且つ前記半導体記憶装置に書き込まれていない第２ファイルについての書き込み要求を前記ホスト装置から受信した際には、前記メモリコントローラは、前記書き込み要求を許可する。
【０００８】
またこの発明の一態様に係るメモリシステムは、上記半導体装置と、前記ホスト機器とを具備し、前記ホスト機器は、前記半導体装置をプリフォーマットすることにより、前記半導体記憶装置の前記論理アドレス空間に前記書き込み制限条件を有する複数の前記アドレス領域を設定する。
【発明の効果】
【０００９】
本発明によれば、データの保全性に優れた半導体装置及びメモリシステムを提供出来る。
【図面の簡単な説明】
【００１０】
【図１】この発明の第１実施形態に係るメモリシステムのブロック図。
【図２】第１実施形態に係るディレクトリ構造の概念図。
【図３】第１実施形態に係るメモリ空間の概念図。
【図４】第１実施形態に係るＦＡＴの概念図。
【図５】第１実施形態に係るディレクトリエントリの概念図。
【図６】第１実施形態に係るメモリカードの動作を示すフローチャート。
【図７】第１実施形態に係るメモリカードの動作を示すダイアグラム。
【図８】第１実施形態に係るメモリカードの動作を示すフローチャート。
【図９】第１実施形態に係るメモリ空間の概念図。
【図１０】第１実施形態に係るディレクトリ構造の概念図。
【図１１】第１実施形態に係るメモリ空間の概念図。
【図１２】第１実施形態に係るディレクトリ構造の概念図。
【図１３】第１実施形態に係るメモリ空間の概念図。
【図１４】この発明の第２実施形態に係るメモリカードの動作を示すフローチャート。
【図１５】第２実施形態に係るメモリ空間の概念図。
【図１６】第２実施形態に係るメモリ空間の概念図。
【図１７】この発明の第３実施形態に係るメモリカードの動作を示すフローチャート。
【図１８】第３実施形態に係るメモリ空間の概念図。
【図１９】第３実施形態に係るメモリ空間の概念図。
【発明を実施するための形態】
【００１１】
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１２】
［第１の実施形態］  
この発明の第１の実施形態に係る半導体装置及びメモリシステムにつき、ＳＤメモリカード（以下、単にメモリカードと呼ぶ）及びそれを含むメモリシステムを例に挙げて説明する。
【００１３】
＜メモリカードの構成について＞  
まず、メモリカードの全体構成について、図１を用いて説明する。図１は、本実施形態に係るメモリカードを備えたメモリシステムのブロック図である。
【００１４】
図示するようにメモリシステムは、メモリカード１とホスト機器２（例えばパーソナルコンピュータやデジタルカメラ等）とを備えている。メモリカード１は、バスインターフェース３を介してホスト機器２と通信可能とされている。そしてメモリカード１は、ホスト機器２に接続された時に電源供給を受けて動作し、ホスト機器２からのアクセスに応じた処理を行う。
【００１５】
メモリカード１は、大まかにはメモリコントローラ１０、ＮＡＮＤ型フラッシュメモリ１１、及びデータバス１２を備えている。メモリコントローラ１０及びＮＡＮＤ型フラッシュメモリ１１はそれぞれ異なる基板上に形成されても良いし、または同一基板上に形成されても良い。そしてメモリコントローラ１０とＮＡＮＤ型フラッシュメモリ１１は、データバス１２によって互いに通信可能に接続されている。
【００１６】
＜メモリコントローラ１０の構成について＞  
次に、上記メモリコントローラ１０の構成の詳細について、引き続き図１を参照して説明する。図示するようにメモリコントローラ１０は、ＳＤカードインターフェース２０、ＭＰＵ２１、ＣＰＲＭ（Copy Protection for Prerecorded Media）用回路２２、ＲＯＭ２３、ＲＡＭ２４、及びＮＡＮＤインターフェース２５を備えている。これらは同一の半導体基板上に形成され、内部バス２６によって通信可能に接続されている。
【００１７】
ＳＤカードインターフェース２０は、バスインターフェース３（ＳＤカードバス）によってホスト機器２に接続可能とされ、ホスト機器２との間の通信を司る。ＮＡＮＤインターフェース２５は、データバス１２によってＮＡＮＤ型フラッシュメモリ１１と接続されており、ＮＡＮＤ型フラッシュメモリ１１との間の通信を司る。
【００１８】
ＭＰＵ２１は、メモリカード１全体の動作を制御する。ＭＰＵ２１は、例えばメモリカード１が電源供給を受けたときに、ＲＯＭ２３に格納されているファームウェア（制御プログラム）をＲＡＭ２４上に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ２４上に作成する。またＭＰＵ２１は、ホスト機器２から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、ＮＡＮＤ型フラッシュメモリ１１に対して所定の処理を実行したり、データ転送処理を制御したりする。
【００１９】
ＲＯＭ２３は、ＭＰＵ２１により制御される制御プログラムなどを格納する。ＲＡＭ２４は、ＭＰＵ２１の作業エリアとして使用され、制御プログラムや各種のテーブル（表）を記憶する。
【００２０】
ＣＰＲＭ回路２２は、メモリカード１における著作権保護機能を司る。すなわち、ＮＡＮＤ型フラッシュメモリ１１内において秘匿されるべき情報に対してホスト機器２からアクセスが為された場合に、当該アクセスを許可するか否かを決定する。
【００２１】
＜ＮＡＮＤ型フラッシュメモリ１１の構成について＞  
次に、ＮＡＮＤ型フラッシュメモリ１１の構成について、引き続き図１を参照して説明する。図示するようにＮＡＮＤ型フラッシュメモリ１１は、メモリセルアレイ３０、ロウデコーダ３１、ページバッファ３２、及びＮＡＮＤインターフェース３３を備えている。
【００２２】
メモリセルアレイ３０は、複数のメモリブロックＢＬＫを含んでいる。メモリブロックＢＬＫの各々は、データを保持可能なメモリセルの集合である。メモリセルの各々はマトリクス状に配置され、同一行にある例えば（４０９６×８）個のメモリセルは同一のワード線に接続されている。一例として、図１の構成では各ブロックＢＬＫには６４本のワード線が含まれる。同一のワード線に接続された複数のメモリセルに対しては、一括してデータが書き込まれ、また一括してデータが読み出される。この単位はページと呼ばれ、図１の例では１ページは４０９６バイトである。メモリセルの各々は、１ビット（２値モード）または２ビット（４値モード）のデータを保持出来る。データの書き込み及び読み出しは、４値モードの場合にもビット毎に行われる。従って各ブロックＢＬＫは、２値モードにおいては６４ページを含み、４値モードにおいてはその倍の１２８ページを含む。またデータの消去はメモリブロックＢＬＫ単位で行われる。
【００２３】
ＮＡＮＤインターフェース３３は、データバス１２を介したメモリコントローラ１０のＮＡＮＤインターフェース２５との間の通信を司る。そしてメモリコントローラ１０から与えられたロウアドレスをロウデコーダ３１へ転送し、書き込みデータをページバッファ３２へ転送する。またページバッファ３２から転送された読み出しデータをメモリコントローラ１０へ送信する。
【００２４】
ロウデコーダ３１は、ＮＡＮＤインターフェース３３から与えられるロウアドレスをデコードする。そしてデコード結果に従って、メモリセルアレイ３０中におけるいずれかのメモリブロックＢＬＫのロウ方向を選択する。すなわちいずれかのページを選択する。
【００２５】
ページバッファ３２は、メモリセルアレイ３０へのデータ入出力を行い、データを一時的に保持する。ページバッファ３２とメモリセルアレイ３０との間のデータの入出力はページ単位で行われる。ページバッファ３２は、データの書き込み時には、ＮＡＮＤインターフェース３３から与えられる書き込みデータを一時的に保持し、これをメモリセルに書き込む。またデータの読み出し時には、読み出しデータを一時的に保持し、これをＮＡＮＤインターフェース３３に転送する。
【００２６】
＜メモリカード１のメモリ空間について＞  
次に、上記構成のメモリカード１におけるＮＡＮＤ型フラッシュメモリ１１のメモリ空間について、図２に示すようなディレクトリ構造が形成されている場合を例に挙げて説明する。すなわち、ルートディレクトリに２つのサブディレクトリ“ＤＣＩＭ”、“ＭＩＳＣ”が形成され、サブディレクトリ“ＭＩＳＣ”内に“ＡＵＴＰＲＩＮＴ．ＭＲＫ”という名前のファイルが形成されている場合を仮定する。
【００２７】
図３は、上記ディレクトリ構造を有するＮＡＮＤ型フラッシュメモリ１１のメモリ空間を示すメモリマップである。メモリ空間は、大まかには管理領域４０とユーザデータ領域４１とに分けられる。
【００２８】
管理領域４０は、ＮＡＮＤ型フラッシュメモリ１１に記録されているファイル（データ）を管理するために設けられており、ファイルの管理情報を保持する。このように、メモリに記録されているファイル（データ）を管理する方式をファイルシステムと呼ぶ。ファイルシステムにおいては、ファイルやフォルダなどのディレクトリ情報の作成方法、ファイルやフォルダなどの移動方法や削除方法、データの記録方式、管理領域の場所や利用方法などが定められる。図３では一例としてＦＡＴ（File Allocation Table）ファイルシステムについて示している。以下では、数字の先頭に付加した“０ｘ”は、それに続く数字が１６進数表示であることを示す。
【００２９】
管理領域４０は、例えばブートセクタ、ＦＡＴ１、ＦＡＴ２、及びルートディレクトリエントリを含んでいる。ブートセクタは、例えば論理アドレス“０ｘ０００００”〜“０ｘ１２３ｆｆ”の領域に格納され、ブート情報を記憶する。ブートセクタは読み出し専用領域である。ＦＡＴ１及びＦＡＴ２は、それぞれ論理アドレス“０ｘ１２４００”〜“０ｘ２ｆ１ｆｆ”及び“０ｘ２ｆ２００”〜“０ｘ４ｂｆｆｆ”の領域に格納され、データがいずれのクラスタに記憶されているかを記憶する。ＦＡＴ１及びＦＡＴ２は、制限付きで上書きが許可されており、このような領域を制限付き上書き許可ＦＡＴ領域と呼ぶ。ルートディレクトリエントリは、例えば論理アドレス“０ｘ４ｃ０００”〜“０ｘ４ｆｆｆｆ”の領域に格納され、ルートディレクトリの情報を記憶する。より具体的には、ファイル名又はフォルダ名、ファイルサイズ、属性及びファイルの更新日時などとともに、ＦＡＴ１、ＦＡＴ２に示されたどのクラスタがファイルの先頭クラスタであるかを記憶する。ルートディレクトリも制限付きで上書きが許可されており、このようなディレクトリエントリを制限付き上書き許可ディレクトリエントリ領域と呼ぶ。
【００３０】
ユーザデータ領域４１は管理領域４０以外の領域であり、特にユーザによって書き込まれる正味のデータを格納する領域である。そしてユーザデータ領域４１における論理アドレス“０ｘ５００００”〜“０ｘ５３ｆｆｆ”の領域とには“ＭＩＳＣ”についてのサブディレクトリエントリが作成され、“０ｘ５４０００”〜“０ｘ５７ｆｆｆ”の領域には“ＡＵＴＰＲＩＮＴ．ＭＲＫ”が書き込まれる。これらの２つの領域は任意に上書きが可能であり、このような領域を任意上書き許可領域と呼ぶ。“０ｘ５ｃ０００”〜“０ｘｆｆｆｆ”の領域には“ＤＣＩＭ”についてのサブディレクトリエントリが形成されており、これは制限付き上書き許可ディレクトリエントリである。その他の領域、すなわちアドレスが“０ｘ６００００”以降の領域は未使用の領域である。未使用の領域には“０ｘｆｆ”が書き込まれている。そして未使用の領域は上書き・消去を禁止され、追記のみが許可される。このような領域を追記領域と呼ぶ。
【００３１】
＜ＦＡＴについて＞  
次に、上記ＦＡＴ１及びＦＡＴ２について説明する。以下ではＦＡＴ１、ＦＡＴ２をまとめてＦＡＴと呼ぶ。
【００３２】
メモリ空間は、クラスタと呼ばれるある一定のサイズの空間の集合である。そして、書き込まれるデータがクラスタサイズより大きい場合、クラスタ単位に分割されて記憶される。この際、データが書き込まれるクラスタは連続しない場合がある。すなわち、１つのデータが場所的に離れたクラスタに書き込まれる。この際に、データがどのクラスタに分割されて書き込まれたかを管理するための管理データが、ＦＡＴに記憶される。
【００３３】
図４は、ＦＡＴおよびルートディレクトリエントリ内のファイルエントリの一例を示している。例えばルートディレクトリに３つのファイル“ＦＩＬＥ１．ＪＰＧ”、“ＦＩＬＥ２．ＪＰＧ”、及び“ＦＩＬＥ３．ＪＰＧ”が含まれており、それぞれの先頭クラスタが“０００２”、“０００５”、“０００７”であったと仮定する。
【００３４】
ＦＡＴには、各クラスタの次に接続されるべきクラスタの番号が記載されている。例えば“ＦＩＬＥ１．ＪＰＧ”の場合、先頭のクラスタ“０００２”のデータに続くデータを格納するクラスタはクラスタ“０００３”で、クラスタ“０００３”のデータに続くデータを格納するクラスタはクラスタ“０００４”であることが分かる。そしてクラスタ“０００２”、“０００３”、“０００４”のデータを接続することにより、“ＦＩＬＥ１．ＪＰＧ”のファイルが復元される。ファイルデータの最後の部分を格納するクラスタには、“０ｘｆｆｆ８”〜“０ｘｆｆｆｆ”のいずれかが書き込まれている。また、未使用のクラスタについては“０ｘ００００”が書き込まれている。
【００３５】
＜ルートディレクトリエントリについて＞  
次に、上記ルートディレクトリエントリについて説明する。図５はルートディレクトリエントリの構成を示す概念図であり、一例としてルートディレクトリにディレクトリ“ＤＣＩＭ”及び“ＭＩＳＣ”が作成され、更にファイル“ＦＩＬＥ１．ＪＰＧ”が作成された場合について示している。
【００３６】
図示するようにルートディレクトリエントリは、各々が３２バイトの複数のエントリを備える。そして各エントリが、ルートディレクトリに含まれるファイルまたはディレクトリに関する情報を保持する。各エントリは、３２バイトの先頭バイト位置から順に、ファイルまたはサブディレクトリの名前（DIR_Name、１１バイト）、属性（DIR_Attr、１バイト）、予約（DIR_NTRes、１バイト）、作成時刻（DIR_CrtTimeTenth、１バイト）、作成時刻（DIR_CrtTime、２バイト）、作成日付（DIR_CrtDate、２バイト）、最終アクセス日付（DIR_LstAccDate、２バイト）、先頭クラスタの上位２バイト（DIR_FstClusHI）、書き込み時刻（DIR_WrtTime、２バイト）、書き込み日付（DIR_WrtDate、２バイト）、先頭クラスタの下位２バイト（DIR_FstClusLO）、及びファイルサイズ（DIR_FileSize、４バイト）を保持する。属性とは、読み取り専用か否か、ディレクトリであるか否か、システムファイルであるか否か、また隠しファイルであるか否か等を示す情報である。予約を示す１バイトのデータは全て“０ｘ００”とされる。作成時刻（DIR_CrtTimeTenth）は、対応するファイルまたはディレクトリの作成時刻のうちのミリ秒の部分を示し、作成時刻（DIR_CrtTime）は時分を示す。また先頭クラスタ番号は、DIR_FstClusHIとDIR_FstClusLOの２つに分離されて、ルートディレクトリエントリに記録される。
【００３７】
例えば図５の例では、ルートディレクトリにはファイル“ＦＩＬＥ１．ＪＰＧ”が存在し、このファイルは読み取り専用であり、２００９年１２月１０日１２：００：１５に作成され、そのファイルサイズは１．３５ＭＢであり、そのデータはクラスタ２０を先頭に書き込まれていることが分かる。また図５ではエントリ０〜２までが使用されており、エントリ３以降は未使用である。そして未使用のエントリ内は全て“０ｘ００”または“０ｘｆｆ”とされている。
【００３８】
なお、サブディレクトエントリの構造も、基本的にはルートディレクトリエントリと同じである。ルートディレクトリエントリと異なる点は、サブディレクトリエントリには、自分自身を示すドット（．）エントリと、親ディレクトリを示すドットドット（．．）エントリが含まれる点である。
【００３９】
＜書き込み・消去コマンドに対するメモリカード１の動作＞  
次に、ホスト機器２からメモリカード１に対してデータの書き込みまたは消去コマンドが発行された際における、メモリカード１の動作について、図６を用いて説明する。図６は書き込みまたは消去コマンドを受信したメモリカード１の動作を示すフローチャートである。下記の動作は、メモリカード１におけるＳＤカードインターフェース２０またはＭＰＵ２１によって実行される。またＳＤカードの場合、書き込みコマンドによるデータの書き込みは、５１２バイトのデータブロック（セクタ）単位で行われる。更に書き込みコマンドには、１つのデータブロックを書き込むシングルブロックライトコマンドと、複数のデータブロックを連続した論理アドレスに書き込むマルチブロックライトコマンドとがある。
【００４０】
図示するように、まずメモリカード１は、受信したコマンドが消去コマンドであった場合（ステップＳ１０、ＹＥＳ）、消去を禁止する（ステップＳ１１）。すなわち本実施形態に係るメモリカード１は消去コマンドをサポートしない。そしてメモリカード１は、消去を行うことなくGeneral Errorをホスト機器２に返す。
【００４１】
消去コマンドでない場合（ステップＳ１０、ＮＯ）、すなわち書き込みコマンドであった場合、メモリカード１はアクセス対象（書き込み対象）となる領域を判断する（ステップＳ１２）。これは、書き込みコマンドと共に受信したアドレスによって判断出来る。
【００４２】
アクセス対象が読み出し専用領域（図３の場合にはブートセクタ）であった場合（ステップＳ１３、ＹＥＳ）、メモリカード１は書き込みを禁止する（ステップＳ１４）。そしてメモリカード１は、書き込みを行うことなくライトプロテクトエラーをホスト機器２に返す。
【００４３】
アクセス対象が制限付き上書き許可ＦＡＴ領域であった場合（ステップＳ１３でＮＯ、ステップＳ１５でＹＥＳ）、アクセス内容が、「書き込み済みのワードデータを同じワードデータで上書きする」場合（ステップＳ１６、ＹＥＳ）、または「“０ｘ００００”であるワードデータを“０ｘ００００”以外のワードデータに上書きする」場合（ステップＳ１７、ＹＥＳ）のみ、書き込みを許可する（ステップＳ１８）。それ以外の場合（ステップＳ１６でＮＯ、ステップＳ１７でＮＯ）には、書き込みは禁止される（ステップＳ１９）。そしてメモリカード１は、書き込みを行うことなくライトプロテクトエラーをホスト機器２に返す。つまり、制限付き上書き許可ＦＡＴ領域に対する書き込みコマンドの１セクタデータに含まれる５１２バイトのデータが全て、ステップＳ１６でＹＥＳとなり、またはステップＳ１７でＹＥＳとなるデータであった場合、書き込みは正常に行われる（これは、セクタデータの一部がステップＳ１６でＹＥＳとなり、残りの全てがステップＳ１７でＹＥＳとなる場合も含む）。他方、制限付き上書き許可ＦＡＴ領域に対する書き込みコマンドの１セクタデータの少なくとも一部に、上記ステップＳ１６、Ｓ１７の両方でＮＯとなるデータが含まれていた場合、書き込みは行われない。
【００４４】
アクセス対象が制限付き上書き許可ディレクトリエントリ領域であった場合（ステップＳ１５でＮＯ、ステップＳ２０でＹＥＳ）、アクセス内容が、「書き込み済みのバイトデータを同じバイトデータで上書きする」場合（ステップＳ２１、ＹＥＳ）、「“０ｘ００”であるバイトデータを“０ｘ００”以外のバイトデータに上書きする」場合（ステップＳ２２、ＹＥＳ）、または「“０ｘｆｆ”であるバイトデータを“０ｘｆｆ”以外のバイトデータに上書きする」場合（ステップＳ２３、ＹＥＳ）のみ、書き込みを許可する（ステップＳ２４）。それ以外の場合（ステップＳ２１でＮＯ、ステップＳ２２でＮＯ、ステップＳ２３でＮＯ）には、書き込みは禁止される（ステップＳ２５）。そしてメモリカード１は、書き込みを行うことなくライトプロテクトエラーをホスト機器２に返す。つまり、制限付き上書き許可ディレクトリエントリ領域に対する書き込みコマンドの１セクタデータに含まれる５１２バイトのデータが全て、ステップＳ２１でＹＥＳとなり、またはステップＳ２２でＹＥＳとなるデータであった場合、またはステップＳ２３でＹＥＳとなるデータであった場合、書き込みは正常に行われる（これは、セクタデータの一部がステップＳ２１〜Ｓ２３のいずれかでＹＥＳとなり、残りの全てがステップＳ２１〜Ｓ２３の別のいずれかでＹＥＳとなるような場合も含む）。他方、制限付き上書き許可ディレクトリエントリ領域に対する書き込みコマンドの１セクタデータの少なくとも一部に、上記ステップＳ２１〜Ｓ２３でＮＯとなるデータが含まれていた場合、書き込みは行われない。
【００４５】
アクセス対象が任意データ上書き許可領域であった場合（ステップＳ２０でＮＯ、ステップＳ２６でＹＥＳ）、書き込みは許可される（ステップＳ２７）。
【００４６】
アクセス対象が上記以外の領域であった場合（ステップＳ２６でＮＯ）、つまり追記領域であった場合には、追記書き込みのみ許可される（ステップＳ２８）。なお、「追記」とは、以前に書き込んだデータの論理セクタアドレスより後ろのセクタアドレスにのみデータの書き込みを行う方式である。これに対して「上書き」とは、以前に書き込んだデータの論理セクタアドレスに関係なく、任意のセクタアドレスに書き込みを行う方式である。
【００４７】
以上のフローチャートをまとめたものが図７の表である。図示するように、消去コマンドは、いずれの領域に対するものであっても実行されない。これに対して書き込みコマンドは、アクセス対象となる領域毎に取り扱いが異なる。
【００４８】
まず読み出し専用領域については、書き込みは実行されない。
【００４９】
制限付き上書き許可ＦＡＴ領域に対しては、既に書き込み済みのデータを同じデータに上書きすること、及び新規ディレクトリ及び新規ファイル作成のためのクラスタチェーンの作成のみが許可される。そして一度作成されたクラスタチェーンの変更は禁止される。但し、後者については例外的に認める手法が取られても良い。これについては第２、第３の実施形態として説明する。
【００５０】
制限付き上書き許可ディレクトリエントリ領域に対しては、既に書き込み済みのデータを同じデータに上書きすること、及び新規ディレクトリ及び新規ファイルに関するエントリの作成のみが許可される。そして、一度記録されたエントリの変更は禁止される。但し、後者についてはエントリ内の項目毎に変更を許可するか否かを定めても良い。これについては第４の実施形態として説明する。
【００５１】
任意データ上書き許可領域に対しては、書き込みは許可される。この領域は、例えばデジタルカメラで撮影した写真データをメモリカード１に保存する場合のＤＰＯＦファイル等、データの上書きが必要なディレクトリエントリ用の領域や、そのファイル本体を格納するための領域であり、データを任意の値に上書き出来る。
【００５２】
そして追記領域は、写真の本体データを書き込む領域であり、追記書き込みのみが許可される。
【００５３】
＜新規サブディレクトリ作成時の動作＞  
次に、サブディレクトリを新規に作成する際のメモリカード１の動作について、図８を用いて説明する。図８はメモリカード１の動作を示すフローチャートである。以下の動作は主にＭＰＵ２１によって実行される。
【００５４】
図示するようにメモリカード１は、ホスト機器２から書き込みコマンドによって、サブディレクトリの作成命令を受信する（ステップＳ３０）。まずメモリカード１は、書き込みアドレスが適切か否かを判断する（ステップＳ３１）。すなわち、サブディレクトリエントリの開始アドレスが、追記領域の最終書き込み済みアドレス以下の場合や、既に設定されている制限付き上書き許可ディレクトリエントリ領域内に含まれる場合には、書き込みアドレスは適切でないと判断する（ステップＳ３１、ＮＯ）。そしてこの場合には、対応する制限付き上書き許可ディレクトリエントリ（ルートディレクトリエントリまたは対応するいずれかのサブディレクトリエントリ）におけるエントリの更新を禁止し（ステップＳ３３）、また新たな制限付き上書き許可ディレクトリエントリ領域の作成を行わない（ステップＳ３４）。そしてメモリカード１はホスト機器２に対してライトプロテクトエラーを返す。
【００５５】
開始アドレスが適切な場合（ステップＳ３１、ＹＥＳ）、次にメモリカード１は、既に設定済みの制限付き上書き許可ディレクトリエントリ領域の数が、その設定可能個数の上限に達しているか否かを判断する（ステップＳ３２）。そして達している場合（ステップＳ３２、ＹＥＳ）には、これ以上、制限付き上書き許可ディレクトリエントリ領域を作成出来ないので、ステップＳ３３、Ｓ３４に進む。
【００５６】
達していない場合（ステップＳ３２、ＮＯ）には、メモリカード１は、対応するディレクトエントリを更新する（ステップＳ３５）。そしてメモリカード１は、対応する制限付き上書き許可ディレクトリエントリ領域におけるエントリ（ドットエントリ及びドットドットエントリを除く）の開始クラスタ番号フィールド（DIR_FstClusLO）が“０ｘ００００”以外の値に更新されたことを検知し、且つ当該エントリのファイル属性フィールド（DIR_Attr）が“０ｘ１０”（ディレクトリ属性）に更新されたことを検知する。この検知によりメモリカード１は、開始クラスタから１クラスタ分（１６ＫＢ）を、新たな制限付き上書き許可ディレクトリエントリ領域として自動設定する（ステップＳ３６）。
【００５７】
以上の様子を図９に示す。図９は、新規サブディレクトリ作成時のメモリ空間の様子を示すメモリマップである。図示するように、例えばアドレスＡ１〜Ａ２の領域に制限付き上書き許可ディレクトリエントリ領域が設定され、アドレスＡ３〜Ａ４の領域に写真ファイルが書き込まれ、アドレスＡ５以降の領域が追記領域である場合を仮定する。
【００５８】
この状態において新規サブディレクトリの作成命令を受信した場合、その開始アドレスがアドレスＡ１〜Ａ４内である場合には、アドレスは適切でない（ステップＳ３１、ＮＯ）。従ってこの場合、サブディレクトリは作成されない。他方、アドレスＡ５以降の領域内である場合には、アドレスは適切であるので（ステップＳ３１、ＹＥＳ）、例えばアドレスＡ６〜Ａ７の領域にサブディレクトリエントリが作成される。この場合、アドレスＡ５〜Ａ６の間の領域、及びＡ７以降の領域は、追記領域のままである。
【００５９】
＜デジタルカメラによる撮影時のメモリカード１の動作＞  
次に、上記構成のメモリカード１をデジタルカメラのストレージデバイスとして用いた際の、メモリカード１の動作について、以下説明する。
【００６０】
＜プリフォーマット＞  
デジタルカメラで使用するためにメモリカード１は、専用のホスト機器によってプリフォーマットされることにより、図２及び図３に示すデータ構造が作成される。そしてメモリカード１は、プリフォーマットされた状態で出荷される。
【００６１】
プリフォーマットにおいては、専用のホスト機器は、次の処理を行う。  
（１）まずブートセクタ、ＦＡＴ１、及びＦＡＴ２を、カードの容量に応じた所定のデータによって作成する。  
（２）次に、ルートディレクトリにサブディレクトリ“ＤＣＩＭ”及び“ＭＩＳＣ”を作成し、サブディレクトリ“ＭＩＳＣ”内にファイル“ＡＵＴＰＲＩＮＴ．ＭＲＫ”を作成する。“ＡＵＴＰＲＩＮＴ．ＭＲＫ”は、写真プリント用のＤＰＯＦ（digital print order format）ファイルであり、ファイル名は固定されている。  
（３）次に、上記フォーマットに応じて、読み出し専用領域、制限付き上書き許可ＦＡＴ領域、制限付き上書き許可ディレクトリエントリ領域（ルートディレクトリ、ＤＣＩＭ）、及び追記領域を設定する。
【００６２】
以上の結果、図２及び図３に示すデータ構造が作成される。このとき、ブートセクタには所定のフォーマットパラメータ値が書き込まれている。またＦＡＴ１、ＦＡＴ２には各ディレクトリのクラスタチェーンが書き込まれている（未使用クラスタには“０ｘ００００”が書き込まれている。
【００６３】
ルートディレクトリエントリ用のクラスタには、“ＭＩＳＣ”用の３２バイトのディレクトリエントリ、“ＤＣＩＭ”用の３２バイトのディレクトリエントリが順に書き込まれ、以降のデータは全て“０ｘ００”または“０ｘｆｆ”に初期化されている。
【００６４】
またサブディレクトリ“ＭＩＳＣ”用のクラスタには、カレントディレクトリ用の３２バイトのディレクトリエントリ（ドットエントリ）、親ディレクトリ用の３２バイトのディレクトリエントリ（ドットドットエントリ）、及び“ＡＵＴＰＲＩＮＴ．ＭＲＫ”用の３２バイトのファイルエントリが順に書き込まれ、以降のデータは全て“０ｘ００”または“０ｘｆｆ”に初期化されている。なお、“ＡＵＴＰＲＩＮＴ．ＭＲＫ”ファイルは、サイズ０とされている。
【００６５】
ファイル“ＡＵＴＰＲＩＮＴ．ＭＲＫ”用のクラスタは、全て“０ｘ００”で初期化されている。
【００６６】
サブディレクトリ“ＤＣＩＭ”用のクラスタには、カレントディレクトリ用の３２バイトのディレクトリエントリ（ドットエントリ）、及び親ディレクトリ用の３２バイトのディレクトリエントリ（ドットドットエントリ）が順に書き込まれ、以降のデータは全て“０ｘ００”または“０ｘｆｆ”に初期化されている。
【００６７】
それ以降の領域は、初期状態であり、全データが“０ｘｆｆ”とされている。
【００６８】
なお、デジタルカメラの機種によっては、“ＭＩＳＣ”及び“ＡＵＴＰＲＩＮＴ．ＭＲＫ”は、ＤＰＯＦ設定するまでは作成しないデジタルカメラもある。この場合には、メモリカード１のデータ構造は、図２及び図３において“ＭＩＳＣ”及び“ＡＵＴＰＲＩＮＴ．ＭＲＫ”を排したものとなる。そしてメモリカード１の出荷後、デジタルカメラの処理により“ＭＩＳＣ”と“ＡＵＴＰＲＩＮＴ．ＭＲＫ”が作成される。
【００６９】
＜デジタルカメラにメモリカード１を挿入した際の動作＞  
次に、上記プリフォーマットされたメモリカード１をデジタルカメラ（ホスト機器２）に挿入した際の動作について説明する。
【００７０】
デジタルカメラは、メモリカード１が挿入されたことを検知すると、サブディレクトリ“ＤＣＩＭ”の下に、サブディレクトリ“１００ＸＸＸＸＸ”及び“ＹＹＹＹＹ”を作成する。なお、サブディレクトリ“１００ＸＸＸＸＸ”の“ＸＸＸＸＸ”は、カメラメーカ毎の５バイトのＡＳＣＩＩ文字列であり、このサブディレクトリの下に写真ファイル（ＪＰＥＧファイル）が順次保存される。また“ＹＹＹＹＹ”は、メーカー毎の追加機能用のファイルまたはサブディレクトリであるが、機種によっては“ＹＹＹＹＹ”を設定しない場合もある。
【００７１】
以上の結果得られるメモリカード１のディレクトリ構造及び論理アドレスマップを図１０及び図１１に示す。図２及び図３からの変更点を、図１０では四角印で示し、図１１では斜線を付した領域で示す。
【００７２】
デジタルカメラによって“ＤＣＩＭ”内に新たなサブディレクトリエントリ“１００ＸＸＸＸＸ”が作成されると、“ＤＣＩＭ”用のクラスタには、カレントディレクトリ用のディレクトリエントリ及び親ディレクトリ用のディレクトリエントリに続く三番目に、“１００ＸＸＸＸＸ”を示す３２バイトのサブディレクトリエントリが作成される。
【００７３】
このサブディレクトリエントリが書き込まれると、それに応答してメモリカード１は、当該サブディレクトリエントリ領域を、新たな制限付き上書き許可ディレクトリエントリ領域として自動設定する。
【００７４】
サブディレクトリ“１００ＸＸＸＸＸ”用のクラスタ（初期値は全て“０ｘｆｆ”）には、カレントディレクトリ用の３２バイトのディレクトリエントリ及び親ディレクトリ用の３２バイトのディレクトリエントリが作成され、以後のデータは全て“０ｘｆｆ”である。
【００７５】
なお通常、サブディレクトリ“１００ＸＸＸＸ”には１クラスタが確保される。そして１クラスタのサブディレクトリ内に作成出来るファイルエントリ数には制限があるため、撮影した写真が増えると、ＪＰＥＧファイルのファイルエントリが１クラスタ内に収まらなくなる。この場合、デジタルカメラの機種によって以下の２通りの対応がある。すなわち、
（Ａ）サブディレクトリ“１００ＸＸＸＸＸ”のＦＡＴチェーンを延長して新たなクラスタを確保し、サブディレクトリ“１００ＸＸＸＸＸ”のサイズを拡張する。これによって、“１００ＸＸＸＸＸ”の下に保存出来る写真ファイル数を増やす。
【００７６】
（Ｂ）“１０１ＸＸＸＸＸ”という新たなサブディレクトリを“ＤＣＩＭ”の下に作り、この下に写真ファイルを保存する。以後、“１０２ＸＸＸＸＸ”、“１０３ＸＸＸＸＸ”、…というサブディレクトを順次作成する。
【００７７】
本実施形態に係る方法であると、上記（Ｂ）の方法に対応出来る。上記（Ａ）の方法への対応については、第２の実施形態で説明する。
【００７８】
＜デジタルカメラによる写真撮影動作＞  
次に、デジタルカメラによる写真撮影を行った際の、メモリカード１への写真データの書き込みシーケンスについて説明する。書き込みシーケンスは、次の順で実行される。
【００７９】
（１）まずデジタルカメラは、サブディレクトリ“１００ＸＸＸＸＸ”の新しいエントリに、以下の値でファイルエントリを書き込む。  
・DIR_Name：ＸＸＸＸＸＸＸＸＪＰＧ  
・DIR_Attr：０ｘ２０（＝ＡＲＣＨＩＶＥ）  
・DIR_NTRes：０ｘ００（固定値）  
・DIR_CrtTimeTenth、DIR_CrtTime、DIR_CrtDate：ファイル作成時刻値  
・DIR_LstAccDate：０ｘ００  
・DIR_FstClusHI、DIR_FstClusLO：０ｘ００００、０ｘ００００（初期値）  
・DIR_WrtTime、DIR_WrtDate：ファイル作成時刻値  
・DIR_FileSize：０ｘ００００＿００００（初期値）  
（２）次にデジタルカメラは、ＦＡＴ１とＦＡＴ２の未使用テーブル（値は“０ｘ００００”に、当該写真ファイル用のクラスタチェーン値を書き込む。  
（３）次にデジタルカメラは、（１）で作成したファイルエントリに、開始クラスタ番号を上書きする。  
（４）次にデジタルカメラは、（３）で設定した開始クラスタから、写真ファイルデータ本体を書き込む（追記する）。  
（５）最後にデジタルカメラは、（１）で作成したファイルエントリに、ファイルサイズを上書きする。
【００８０】
以上の結果得られるメモリカード１のディレクトリ構造及び論理アドレスマップを図１２及び図１３に示す。図１０及び図１１からの変更点を、図１２では四角印で示し、図１３では斜線を付した領域で示す。
【００８１】
図示するように、追記領域内には、写真ファイル“ＸＸＸＸＸＸＸＸ．ＪＰＧ”が記録されると共に、サブディレクトリエントリ“１００ＸＸＸＸＸ”内には、この写真ファイル用のエントリが作成される。
【００８２】
以後、写真を撮影する度に、上記（１）〜（５）の動作が繰り返される。
【００８３】
＜ホスト機器２によるメモリカード１へのアクセスについて＞  
次に、図１１の通りに写真ファイルが記録されたメモリカード１に対する各種ホスト機器２によるアクセスについて、以下説明する。
【００８４】
＜各種ホスト機器によるファイル削除、上書き、再フォーマット動作＞  
まず、上記の通りメモリカード１に記録された写真ファイルを削除する処理は、対応するファイルエントリの先頭バイトを“０ｘ００”で上書きすることになる。従って、制限付き上書き許可ディレクトリエントリ領域の上書き制限条件に該当するため（図６のステップＳ２１でＮＯ、ステップＳ２２でＮＯ、且つステップＳ２３でＮＯ）、ライトプロテクトエラーとなりファイル削除は実行されない。
【００８５】
また当該メモリカード１を再度論理フォーマットしようとした場合、ブートセクタへの書き込み、ＦＡＴの再初期化のための上書き、ファイルエントリの初期化のための上書きを伴う。よって、各領域の書き込み制限条件に該当して（図６のステップＳ１３でＹＥＳ、ステップＳ１６、Ｓ１７でＮＯ、ステップＳ２１〜Ｓ２３でＮＯ）、ライトプロテクトエラーとなりファイル削除は実行されない。
【００８６】
更に、当該写真ファイルのファイルエントリの各フィールドまたはＦＡＴのクラスタチェーンにデータを上書き変更しようとした場合には、制限付き上書き許可ディレクトリエントリ領域及び制限付き上書き許可ＦＡＴ領域の上書き制限条件に該当する（図６のステップＳ１６、Ｓ１７でＮＯ、ステップＳ２１〜Ｓ２３でＮＯ）。よって、やはりライトプロテクトエラーとなり、ファイルエントリ及びＦＡＴは上書き変更されない。
【００８７】
更に写真ファイル本体にデータを上書き変更しようとした場合、追記領域の制限条件に該当する（ステップＳ２８）。従ってこの場合もライトプロテクトエラーとなり、データの改変は為されない。
【００８８】
＜通常のＰＣ及びカードリーダ／ライタによるファイルの読み出し＞  
データの読み出しは、通常の従来のＳＤカードと同様に実行される。従って、通常のＰＣ及びカードリーダ／ライタ等によるファイルの読み出しは正常に行うことが出来る。
【００８９】
＜ホスト機器からのファイルアクセス＞  
ホスト機器２からのファイル書き込みについて、新規ファイルの書き込みは、従来のＦＡＴファイルシステムソフトウェアによって実行可能である。但し、前述の通りファイル削除、上書き、及び再フォーマット動作は、ライトプロテクトエラーとなる。ファイルの読み出しも同様である。
【００９０】
＜効果＞  
以上のように、本実施形態に係る構成であると、下記の特性を有するメモリカード１が得られる。すなわち、  
・メモリカード１に一度書き込んだ写真ファイルは、後で削除、変更、及び改竄出来ない。  
・通常のデジタルカメラで撮影した写真データを記録出来る。  
・一般的なＰＣ及びＵＳＢリーダ／ライタで、写真が読み出せる。  
・メモリカード１はフォーマット出来ない。
【００９１】
従って、ファイルデータの保全性に優れたメモリカードを実現でき、公式資料用の写真を記録する用途に好適なメモリカードが得られる。
【００９２】
なお、論理アドレス範囲を、読み出し専用領域、制限付き上書き許可ＦＡＴ領域、制限付き上書き許可ディレクトリエントリ領域、任意データ上書き許可領域、及び追記領域として設定するには、新規に定義する専用のコマンドを用いれば良い。これによりＳＤホスト機器により、各種領域の設定が可能となる。この設定値は、ＮＡＮＤ型フラッシュメモリ１１のシステム領域に保存される。
【００９３】
別の方式としては、専用のコマンドを使用する代わりに、ユーザデータ領域の特定の論理メモリアドレス（例えば論理アドレス“０ｘ００００００”〜“０ｘ０００００ｆ”）に、特定のキーデータ（例えば“０ｘ５５”、“０ｘａａ”、“０ｘ５５”、“０ｘａａ”、“０ｘ５５”、“０ｘａａ”、“０ｘ５５”、“０ｘａａ”）を書き込み、更にこの後ろの論理アドレス領域に、領域属性データとアドレス範囲を示すデータを書き込むことによって、アドレス領域範囲をメモリコントローラ１０に通知する、という方法も使用できる。すなわちＮＡＮＤ型フラッシュメモリ１１において、上記キーデータの後ろの領域に、図３の例であると“０ｘ０００００”〜“０ｘ１２３ｆｆ”の論理アドレス領域は読み出し専用領域であること、“０ｘ１２４００”〜“０ｘ４ｂｆｆｆ”の論理アドレス領域は制限付き上書き許可ＦＡＴ領域であること、…などを書き込む。このデータは、通常の書き込みデータとしてはＮＡＮＤ型フラッシュメモリ１１に書き込まれず、システムデータとして書き込まれる。この場合、専用のコマンドを必要としないため、新規コマンドをサポートしていない従来仕様のＵＳＢリーダ／ライタ等でも、ＰＣ側のソフトウェアからアドレスを通知出来るという利点がある。
【００９４】
［第２の実施形態］  
次に、この発明の第２の実施形態に係る半導体装置及びメモリシステムについて説明する。本実施形態は、上記第１の実施形態で説明したように、ファイルが１つのサブディレクトリ内に収まらなくなった際に、新たなクラスタを確保して当該サブディレクトリのＦＡＴチェーンを延長する方法に関するものである。本方法を実行するため本実施形態に係る半導体装置は、第１の実施形態で説明したＦＡＴに対する書き込み制限を変更している。その他は第１の実施形態と同様であるので、説明は省略する。
【００９５】
＜書き込みコマンドに対するメモリカード１の動作＞  
ホスト機器２からメモリカード１のＦＡＴに対してデータの書き込みコマンドが発行された際におけるメモリカード１の動作について、図１４を用いて説明する。図１４はＦＡＴに対する書き込みコマンドを受信したメモリカード１の動作を示すフローチャートであり、第１の実施形態で説明したステップＳ１５でＹＥＳ以降の処理に対応する。その他の動作は第１の実施形態と同様である。
【００９６】
図示するようにメモリカード１は、ステップＳ１６でＮＯ、ステップＳ１７でＮＯであった場合、上書きされるクラスタがディレクトリに相当するか否かを判断する（ステップＳ４０）。これは、対応するディレクトリエントリのDIR_Attrを確認することで可能である。ディレクトリで無ければ（ステップＳ４０、ＮＯ）、書き込みは禁止される（ステップＳ１９）。
【００９７】
ディレクトリだった場合（ステップＳ４０、ＹＥＳ）、引き続きメモリカード１は、上書き対象とされたクラスタに既に書き込まれている値が、ＦＡＴチェーンの最終を示す値（“０ｘｆｆｆ８”〜“０ｘｆｆｆｆ”）であるか否かを判断する（ステップＳ４１）。最終を示す値でなければ（ステップＳ４１、ＮＯ）、書き込みは禁止される（ステップＳ１９）。
【００９８】
最終を示す値であった場合（ステップＳ４１、ＹＥＳ）、メモリカード１は、当該クラスタへの上書きデータが有効なクラスタ番号であるか否かを判断する（ステップＳ４２）。有効でないクラスタ番号の例は、“０ｘ００００（未使用クラスタ）”や“０ｘ０００１（予約クラスタ番号）”である。有効なクラスタ番号でない場合（ステップＳ４２、ＮＯ）には、書き込みは禁止される（ステップＳ１９）。
【００９９】
有効なクラスタ番号であった場合（ステップＳ４２、ＹＥＳ）、メモリカード１は書き込みを許可する（ステップＳ４３）。これにより、クラスタ番号が書き換えられる。引き続きメモリカード１は、書き換えたクラスタ番号に対応するクラスタを、当該サブディレクトリの拡張クラスタ領域とみなし、制限付き上書き許可ディレクトリエントリ領域として自動設定する（ステップＳ４４）。
【０１００】
＜具体例＞  
次に、上記動作の具体例について説明する。仮に図１５の状態を想定する。図１５はメモリカード１のメモリマップであり、本例に関する部分のみを図示したものである。
【０１０１】
図示するように、ルートディレクトリにはサブディレクトリ“１００ＸＸＸＸＸ”が作成されており、その開始クラスタはクラスタ５である。そしてサブディレクトリ“１００ＸＸＸＸＸ”のエントリ数は例えば５１２個である。またサブディレクトリ“１００ＸＸＸＸＸ”内には、５１０個のＪＰＥＧファイルが作成されている。従って、サブディレクトリ“１００ＸＸＸＸＸ”についての５１２個のエントリは、ドットエントリ及びドットドットエントリを含めて、全て使用済みである。このような状態で、新たなＪＰＥＧファイル“ＦＩＬＥ５１１．ＪＰＧ”がメモリカード１に記録される場合を考える。
【０１０２】
第１の実施形態で説明した方法であると、ＦＡＴの上書きは禁止されているので、このような場合には新たにサブディレクトリ“１０１ＸＸＸＸＸ”を作成して、この下にファイル“ＦＩＬＥ５１１．ＪＰＧ”を格納する。
【０１０３】
これに対して本実施形態に係る方法であると、サブディレクトリ“１００ＸＸＸＸＸ”のディレクトリエントリとして新たにクラスタを確保し、クラスタチェーンを延長することにより、ファイル“ＦＩＬＥ５１１．ＪＰＧ”をサブディレクトリ“１００ＸＸＸＸＸ”の下に格納する。この様子を図１６に示す。図１６はメモリカード１のメモリマップであり、図１５からの変更箇所を、斜線を付した領域として示している。
【０１０４】
図示するようにメモリカード１は、サブディレクトリ“１００ＸＸＸＸＸ”のディレクトリエントリとして、未使用のクラスタ６を新たに確保する。ＦＡＴにおけるクラスタ５の値が“０ｘｆｆｆ８”であり（図１４のステップＳ４１、ＹＥＳ）、また上書きデータはクラスタ６を示す有効なクラスタ番号（“０ｘ０００６”）であるので（図１４のステップＳ４２、ＹＥＳ）、上書きが許可される（図１４のステップＳ４３）。すなわち、クラスタ番号５に対応する値は“０ｘｆｆｆ８”から“０ｘ０００６”に書き換えられる。そしてクラスタ６が、サブディレクトリ“１００ＸＸＸＸＸ”の拡張クラスタ領域とされて、制限付き上書き許可ディレクトリエントリ領域として設定される（図１４のステップＳ４４）。この結果、サブディレクトリ“１００ＸＸＸＸＸ”のエントリ数は、５１２＋５１２＝１０２４個となり、サブディレクトリ“１００ＸＸＸＸＸ”の下に“ＦＩＬＥ５１１．ＪＰＧ”を格納出来るようになる。なお、ＦＡＴのクラスタ６に対応する値は、ＦＡＴチェーンの最終を示す“０ｘｆｆｆ８”に書き換えられる（図６のステップＳ１７、ＹＥＳ）。
【０１０５】
＜効果＞  
本実施形態に係る構成であると、ＦＡＴに関する書き込み制限を一部緩和し、ＦＡＴチェーンの拡張を許可する。従って、第１の実施形態で説明した効果が得られると共に、メモリカード１の使い勝手を向上出来る。
【０１０６】
［第３の実施形態］  
次に、この発明の第３の実施形態に係る半導体装置及びメモリシステムについて説明する。本実施形態は、上記第１または第２の実施形態において、動画ファイルの記録に対応するための構成に関するものである。以下では、第１、第２の実施形態と異なる点についてのみ説明する。
【０１０７】
＜書き込みコマンドに対するメモリカード１の動作＞  
動画ファイルの記録に対応するため、本実施形態に係る構成は、第１の実施形態で説明したＦＡＴに対する書き込み制限を変更している。図１７は、ＦＡＴに対する書き込みコマンドを受信したメモリカード１の動作を示すフローチャートであり、第１の実施形態で説明したステップＳ１５でＹＥＳ以降の処理に対応する。その他の動作は第１の実施形態と同様である。
【０１０８】
図示するようにメモリカード１は、ステップＳ１６でＮＯ、ステップＳ１７でＮＯであった場合、メモリカード１は、上書き対象とされたクラスタに既に書き込まれている値が、ＦＡＴチェーンの最終を示す値（“０ｘｆｆｆ８”〜“０ｘｆｆｆｆ”）であるか否かを判断する（ステップＳ４１）。最終を示す値でなければ（ステップＳ４１、ＮＯ）、書き込みは禁止される（ステップＳ１９）。最終を示す値であった場合（ステップＳ４１、ＹＥＳ）、メモリカード１は、当該クラスタへの上書きデータが有効なクラスタ番号であるか否かを判断する（ステップＳ４２）。有効なクラスタ番号でない場合（ステップＳ４２、ＮＯ）には、書き込みは禁止される（ステップＳ１９）。ステップＳ４１〜Ｓ４３までは、第２の実施形態と同様である。
【０１０９】
有効なクラスタ番号であった場合（ステップＳ４２、ＹＥＳ）、メモリカード１は、上書きされるクラスタがディレクトリに相当するか否かを判断する（ステップＳ５０）。これは第２の実施形態で説明したステップＳ４０と同様に、対応するディレクトリエントリのDIR_Attrを確認することで可能である。
【０１１０】
ディレクトリでない場合（ステップＳ５０、ＮＯ）、すなわちファイルであった場合には、メモリカード１は、制限付き上書き許可ディレクトリエントリ領域において対応するファイルエントリのファイルサイズフィールドの値の変更を許可する（ステップＳ５１）。但し、既に書き込まれている値よりも大きな値への変更のみ許可され、小さい値への変更は許されない。
【０１１１】
ディレクトリであった場合（ステップＳ５０、ＹＥＳ）は、上記第２の実施形態に相当し、ステップＳ４４に進む。第１の実施形態に係る方法であると、ディレクトリであった場合には、書き込み禁止とされる（ステップＳ１９）。
【０１１２】
＜具体例＞  
次に、上記動作の具体例について説明する。仮に図１８の状態を想定する。図１８はメモリカード１のメモリマップであり、本例に関する部分のみを図示したものである。
【０１１３】
図示するように、ルートディレクトリにはサブディレクトリ“１００ＸＸＸＸＸ”が作成されており、その下に動画ファイル“ＦＩＬＥ１．ＭＰＧ”が格納されている。この動画ファイルは撮影中のものであり、開始クラスタはクラスタ１０で、現在のファイルサイズは１０ＭＢである。
【０１１４】
その後、更に動画の撮影を継続し、動画ファイル“ＦＩＬＥ１．ＭＰＧ”として、クラスタ１１を更に割り当てる場合を考える。この処理は、ＦＡＴ及びファイルエントリにおける書き込み済みデータの上書きを伴うため、第１の実施形態では禁止されている。
【０１１５】
これに対して本実施形態では、図１９のようにＦＡＴ及びファイルエントリの上書きを許可する。図１９はメモリカード１のメモリマップであり、図１８からの変更箇所を、斜線を付した領域として示している。
【０１１６】
図示するようにメモリカード１は、動画ファイル“ＦＩＬＥ１．ＭＰＧ”の追加クラスタとして、未使用のクラスタ１１を新たに確保する。するとＦＡＴにおけるクラスタ１０の値が“０ｘｆｆｆ８”であり（図１７のステップＳ４１、ＹＥＳ）、また上書きデータはクラスタ１１を示す有効なクラスタ番号（“０ｘ０００Ｂ”）であるので（図１７のステップＳ４２、ＹＥＳ）、ＦＡＴの上書きが許可される（図１７のステップＳ４３）。すなわち、クラスタ番号１０に対応する値は“０ｘｆｆｆ８”から“０ｘ０００Ｂ”に書き換えられる。そしてクラスタ１１が、動画ファイル“ＦＩＬＥ１．ＭＰＧ”の拡張クラスタ領域とされる。また、書き換えられたクラスタはファイルに対応するので（ステップＳ５０、ＮＯ）、ファイルエントリのファイルサイズが変更される（ステップＳ５１）。すなわち、動画ファイル“ＦＩＬＥ１．ＭＰＧ”についてのファイルエントリにおいて、ファイルサイズDIR_FileSizeが、１０ＭＢから、これよりも大きい例えば２０ＭＢ等の値に上書きされる
＜効果＞  
本実施形態に係る構成であっても、ＦＡＴに関する書き込み制限を一部緩和し、ＦＡＴチェーンの拡張を許可する。これにより、一度作成してファイルサイズを確定したファイルへの追加書き込みが可能となる。従って、第１、第２の実施形態で説明した効果が得られると共に、メモリカード１の使い勝手を更に向上出来る。
【０１１７】
［第４の実施形態］  
次に、この発明の第４の実施形態に係る半導体装置及びメモリシステムについて説明する。本実施形態は、上記第１の実施形態において、制限付き上書き許可ディレクトリエントリ領域についての書き込み制限を、フィールド毎に判断するものである。
【０１１８】
すなわち、本実施形態に係る構成では、第１の実施形態で説明した図６のステップＳ２１、Ｓ２２において、フィールド毎に以下の判断・処理を行う。
【０１１９】
（１）DIR_Name（１１バイト）  
All“０ｘ００”以外の値であれば、それ以外の値に変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（２）DIR_Attr（１バイト）
“０ｘ００”以外の値であれば、それ以外の値に変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（３）DIR_NTRes（１バイト）
“０ｘ００”以外の値に変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（４）DIR_CrtTimeTenth、DIR_CrtTime、DIR_CrtDate（５バイト）
All“０ｘ００”以外の値であれば、それ以外の値へ変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（５）DIR_LstAccDate（２バイト）
All“０ｘ００”以外の値であれば、それ以外の値へ変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（６）DIR_FstClusHI、DIR_FstClusLO（４バイト）
All“０ｘ００”以外の値であれば、それ以外の値へ変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（７）DIR_WrtTime、DIR_WrtDate（４バイト）
All“０ｘ００”以外の値であれば、それ以外の値へ変更する書き込みは禁止し、ライトプロテクトエラーを返す。  
（８）DIR_FileSize（４バイト）
All“０ｘ００”以外の値であれば、それ以外の値へ変更する書き込みは禁止し、ライトプロテクトエラーを返す。
【０１２０】
＜効果＞  
本実施形態に係る構成であると、制限付き上書き許可ディレクトリエントリ領域に関する書き込み制限を、フィールド毎に判断する。これによりメモリカード１へのアクセスの自由度を向上出来る。なお、本実施形態は図６のステップＳ２３にも同様に適用可能である。また、ホスト機器によっては、ファイル読み出し動作時にも最終アクセス日時（DIR_LatAccDate）を上書きするものがある。従ってこのフィールドについては、任意データ、または既に書き込まれた値よりも大きい任意のデータ（すなわち、より後の日時）への上書きを許可しても良い。また本実施形態は、上記第２、第３の実施形態に適用することも可能である。
【０１２１】
以上のように、この発明の第１乃至第４の実施形態に係る半導体装置であると、データを保持可能な不揮発性の半導体記憶装置１１と、ホスト機器２から受信した書き込みデータを半導体記憶装置１１へ書き込み制御するメモリコントローラ１０とを具備する。そしてメモリコントローラ１０は、半導体記憶装置１１に書き込むデータに対して、データの種類及びアドレスに応じた書き込み制限条件をそれぞれ有する複数のアドレス領域（図３の読み出し専用領域、制限付き上書き許可ＦＡＴ領域、制限付き上書き許可ディレクトリエントリ、及び追記領域）を含む論理アドレス空間４０、４１を有する。これにより、特定のファイルフォーマットにおいて、ファイルの追加は許可する一方で、書き込み済みのファイルへのデータの上書きは禁止する。
【０１２２】
そしてアドレス領域の設定は、ホスト機器２からの書き込みアクセス時におけるアドレスやデータに応じて、メモリコントローラ１０によって行われる。
【０１２３】
またアドレス領域のうちのいずれか（追記領域）は、論理アドレスが増加する方向への書き込みのみが許可され、また別のアドレス領域（制限付き上書き許可ＦＡＴ領域及び制限付き上書き許可ディレクトリエントリ領域）は、同一の値によるデータの上書きと、初期値からそれ以外の値へのデータの上書きのみが許可される。
【０１２４】
そして上記アドレス領域は、半導体記憶装置１１の論理ファイルフォーマットの論理領域区分に応じたものである。この半導体記憶装置１１のファイルシステムはＦＡＴであり、メモリコントローラ１０は、ＦＡＴ領域及びディレクトリエントリ領域に対して、互いに異なる書き込み制限条件を設定する。
【０１２５】
また、専用のホスト機器が上記半導体装置１をプリフォーマットすることにより、半導体記憶装置１１の論理アドレス空間に、書き込み制限条件を有する複数の前記アドレス領域を設定しても良い。
【０１２６】
［変形例］  
なお、上記第１乃至第４の実施形態は種々の変形が可能である。例えば、ＳＤカードインターフェース２０における、読み出し専用のカード仕様情報レジスタ（ＣＳＤ Register：Card Specific Data Register）に、カードタイプをホスト機器２に伝えるための情報を追加しても良い。この場合にはＣＳＤにレジスタに、ファイルの上書きが出来ない「ファイルライトワンス」タイプを示すフラグを追加すれば良い。
【０１２７】
また、上記実施形態では、書き込み制限条件を満たさないデータ書き込みに対しては、エラーレスポンス（プロテクトエラー）を返す場合を例に説明した。しかし、書き込み条件によっては、エラーレスポンスは返さずに正常終了のステータスを返すようにしても良い。勿論、この場合であっても、ＮＡＮＤ型フラッシュメモリ１１への実際のデータの書き込みは行われない。すなわち、ホスト機器からはあたかも書き込みが正常に行われたかのように見えるが、実際にデータの更新は行われない、という処理にしても良い。
【０１２８】
また上記実施形態ではＦＡＴ１６へ適用した場合を例に説明したが、同様の手法によりＦＡＴ３２にも適用可能である。また、ＦＡＴを拡張したような類似のファイルシステム全般に適用可能である。
【０１２９】
更に、プリフォーマット時に、ルートディレクトリを読み込み専用領域としても良い。この場合、ルートディレクトリへのサブディレクトリ及びファイルの作成は禁止される。
【０１３０】
また、制限付き上書き許可ディレクトリエントリ領域に書き込み可能なディレクトリエントリ及びファイルエントリのファイル名フィールド（DIR_Name）に制限を設けても良い。例えば、サブディレクトリ名としては“１０ＸＸＸＸＸＸ”のみを許可し、ファイル名は拡張子がＪＰＧであるもののみを許可するようにしても良い。これにより、特定の名称のサブディレクトリ及びファイルのみの作成だけが許可される。
【０１３１】
また上記実施形態では、デジタルカメラ用の特定のサブディレクトリ構造でプリフォーマットを行う例について説明した（図３）。しかし、他の用途向けに異なるサブディレクトリ構造でプリフォーマットしても良い。例えばルートディレクトリまでをプリフォーマットにより設定しても良い。
【０１３２】
更に上記実施形態では、プリフォーマットの時点で、作成済みのディレクト構造（“ＤＣＩＭ”）より論理アドレスが後ろの領域は追記領域として設定する場合を例に説明した。しかし、この領域は任意上書き可能領域としても良い。この場合、制限付き上書き許可ディレクトリエントリ領域に、ファイル名の拡張子がＪＰＧであるファイルエントリが作成され、そのファイルエントリの開始クラスタ番号フィールドに“０ｘ００００”以外の値が書き込まれたことをメモリコントローラ１０が検知した時点で、当該開始クラスタ以降の論理アドレス領域を追記領域に設定する。また、上記追記領域の設定がなされる前に作成されたサブディレクトリエントリ領域は、制限付き上書き許可ディレクトリエントリ領域としてでは無く、任意上書き可能領域のままとしておく。これにより、実際に写真を撮影してＪＰＧファイルが作成される以前に作成されたファイルを、上書き可能なファイルとすることが出来る。そして最初のＪＰＧファイル以降に記録されたファイルは、ライトワンスファイルとなる。
【０１３３】
また実施形態では、半導体装置としてＳＤメモリカードの場合を例に説明したが、ＵＨＳ（ultra high speed）−IIカードや、またはホスト機器２内に実装されたメモリデバイスであっても良い。勿論、半導体デバイスの備える記憶媒体はＮＡＮＤ型フラッシュメモリ１１に限らず、その他の半導体メモリや、半導体メモリ以外の記憶媒体であっても良い。
【０１３４】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【符号の説明】
【０１３５】
１…メモリカード、２…ホスト機器、１０…メモリコントローラ、１１…ＮＡＮＤ型フラッシュメモリ、２０、２５、３３…インターフェース、２１…ＭＰＵ、２２…ＣＰＲＭ用回路、２３…ＲＯＭ、２４…ＲＡＭ、３０…メモリセルアレイ、３１…ロウデコーダ、３２…ページバッファ
【図１】
0005558093.tif 000002
【図２】
0005558093.tif 000003
【図３】
0005558093.tif 000004
【図４】
0005558093.tif 000005
【図５】
0005558093.tif 000006
【図６】
0005558093.tif 000007
【図７】
0005558093.tif 000008
【図８】
0005558093.tif 000009
【図９】
0005558093.tif 000010
【図１０】
0005558093.tif 000011
【図１１】
0005558093.tif 000012
【図１２】
0005558093.tif 000013
【図１３】
0005558093.tif 000014
【図１４】
0005558093.tif 000015
【図１５】
0005558093.tif 000016
【図１６】
0005558093.tif 000017
【図１７】
0005558093.tif 000018
【図１８】
0005558093.tif 000019
【図１９】
0005558093.tif 000020