(57)【要約】【課題】消去単位である物理ブロックサイズがクラスタサイズより大きい不揮発性メモリを使用した場合における書き込み速度を向上させること。【解決手段】論理アドレスが不連続である複数のクラスタ（領域割り当て単位）に割り当てられたファイルデータを書き込む場合においても、アクセス装置側がファイルデータの送信前にＦＳＣＭＤにより事前にファイル番号を指定する。不揮発性記憶装置はファイルデータの送信順に仮想論理アドレスを形成すると共に、ファイル番号に基づいて物理ブロックへのマッピングを行う。そのためファイルデータの送信順に不揮発性メモリに連続的に書き込むことができる。ファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、退避処理が不要となり、ファイルデータの書き込み速度を向上させることができる。【選択図】図１６
2007310533.tif 000002
【特許請求の範囲】
【請求項１】
アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、
前記アクセス装置は、
複数のクラスタに割り当てられる１つのファイルデータを前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定するファイル番号指定手段と、
前記ファイルデータ、及び前記ファイル番号指定手段によって指定されたファイル番号を前記不揮発性記憶装置に送信するファイルデータ送信手段とを有し、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有する不揮発性記憶システム。
【請求項２】
前記アドレス管理部は、
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルと、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスを発生するアドレスカウンタと、を有する請求項１記載の不揮発性記憶システム。
【請求項３】
前記セグメントは、
少なくとも１つの物理ブロックである請求項２記載の不揮発性記憶システム。
【請求項４】
前記メモリコントローラは、
不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有し、
前記アクセス装置は、
通知されたセグメントサイズに基づきファイルデータの最小サイズを決定する請求項２記載の不揮発性記憶システム。
【請求項５】
アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、
前記アクセス装置は、
複数のクラスタに割り当てられる１つのファイルデータを前記不揮発性記憶装置に送信する前に、クラスタ毎に連続的なオフセット番号を指定するオフセット番号指定部と、
当該ファイルデータのファイル番号を指定するファイル番号指定部と、
前記オフセット番号に基づき前記ファイルデータを分割するファイル分割部と、
当該ファイルデータの送信前に前記ファイル番号指定部によって指定されたファイル番号、前記オフセット番号指定部によって指定されたオフセット番号を送信すると共に、ファイルデータを分割して送信するファイルデータ送信部とを有し、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有する不揮発性記憶システム。
【請求項６】
前記アドレス管理部は、
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルと、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想理論アドレスを発生するアドレスカウンタと、を有する請求項５記載の不揮発性記憶システム。
【請求項７】
前記セグメントは、
少なくとも１つの物理ブロックである請求項６記載の不揮発性記憶システム。
【請求項８】
前記メモリコントローラは、
不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有し、
前記アクセス装置は、通知されたセグメントサイズに基づきファイルデータの最小サイズを決定する請求項６記載の不揮発性記憶システム。
【請求項９】
不揮発性メモリとメモリコントローラとを有し、外部のアクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶装置であって、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルを有し、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有する不揮発性記憶装置。
【請求項１０】
前記アドレス管理部は、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスを発生するアドレスカウンタを更に有する請求項９記載の不揮発性記憶システム。
【請求項１１】
前記セグメントは、
少なくとも１つの物理ブロックである請求項１０記載の不揮発性記憶装置。
【請求項１２】
前記メモリコントローラは、
不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有する請求項１０記載の不揮発性記憶装置。
【請求項１３】
アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムのファイルデータの書き込み方法であって、
複数のクラスタに割り当てられる１つのファイルデータを前記アクセス装置より前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定し、
前記ファイルデータと前記ファイル番号指定手段によって指定されたファイル番号とを前記不揮発性記憶装置に送信し、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むファイルデータ書き込み方法。
【請求項１４】
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけ、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスに基づいて前記ファイルデータを書き込む請求項１３記載のファイルデータ書き込み方法。
【請求項１５】
前記セグメントは、
少なくとも１つの物理ブロックである請求項１４記載のファイルデータ書き込み方法。
【請求項１６】
前記セグメントのサイズに基づきファイルデータの最小サイズを決定することを特徴とする請求項１４記載のファイルデータ書き込み方法。
【請求項１７】
アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムのファイル書き込み方法であって、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
複数のクラスタに割り当てられる１つのファイルデータを前記アクセス装置より前記不揮発性記憶装置に送信する前に、クラスタ毎に連続的なオフセット番号を指定し、
当該ファイルデータのファイル番号を指定し、
当該ファイルデータの送信前にファイル番号と指定されたオフセット番号を送信し、
前記オフセット番号に基づき前記ファイルデータを分割して送信し、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に不揮発性メモリに規則的に書き込むファイルデータ書き込み方法。
【請求項１８】
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけ、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスに基づいて前記ファイルデータを書き込む請求項１７記載のファイルデータ書き込み方法。
【請求項１９】
前記セグメントは、
少なくとも１つの物理ブロックである請求項１８記載のファイルデータ書き込み方法。
【請求項２０】
前記セグメントのサイズに基づきファイルデータの最小サイズを決定する請求項１８記載のファイルデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを備えた不揮発性記憶装置、それを記憶媒体として使用した不揮発性記憶システム、及びフラッシュメモリ等の不揮発性メモリへのファイルデータ書き込み方法に関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。また半導体メモリカードを使った不揮発性記憶システムは、デジタルスチルカメラ等を中心にその需要が広まっている。かかる半導体メモリカードには様々な種類があり、その一つとしてＳＤメモリカードがある。このＳＤメモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパーソナルコンピュータ本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものとなっている。
【０００３】
このようなＳＤメモリカードをデジタルスチルカメラ等のアクセス装置に取り付けて、アクセス装置側からリムーバブルディスクと見なしてＦＡＴファイルシステムで管理し、データのアクセスを行うことを考える。ＦＡＴファイルシステムは、記録デバイスへファイルやデータを記録する際にファイル・アローケション・テーブル（以下、ＦＡＴという）を用いてデータ書き込みの最小単位である「クラスタ」ごとにデータ読み書きを指示するシステムである。
【０００４】
従来、ＳＤメモリカードを構成するフラッシュメモリは、クラスタサイズとイレーズサイズ（物理ブロックのサイズ）とが例えば１６ｋバイトで同一であったが、近年、フラッシュメモリの大容量化のニーズに伴い、物理ブロックサイズが例えば２５６ｋバイトのフラッシュメモリが主流になってきている。このような大容量のフラッシュメモリは、クラスタサイズ（例えば１６ｋバイト）よりイレーズサイズが大きいため、データの書き込みが以前よりも煩雑になっている。
【０００５】
この書き換えの煩雑さについて、図１を用いて説明する。ＦＡＴファイルシステムを適用したアクセス装置側は、図１の左側に示す論理アドレス空間ＬＡＡ上で、画像などのデータのアクセス制御を行う。論理アドレス空間は複数のクラスタに分割され、例えばクラスタ番号０と１が管理情報領域、クラスタ番号２以降がデータ領域に分けられる、管理情報領域にはＦＡＴなどの管理情報が記録され、データ領域には画像などのデータ（いわゆるコンテンツデータ）が記録される。
【０００６】
データ領域では、画像データの記憶や不要となった画像データを論理的に消去することによって、有効データが記憶されたクラスタと空きクラスタが混在することとなる。なお、論理消去とはＦＡＴに消去済みであることを示す情報を書き込むだけであり、ＳＤメモリカード内のフラッシュメモリ上に記録されたデータを物理的に消去するものではない。図１に示す論理アドレス空間において、ハッチングで示すクラスタは既存の有効ファイル、ハッチングのないクラスタは論理消去されたクラスタを示しており、この状態で新たに１６クラスタ分のデータの書き込みを行うことを考える。
【０００７】
図１において、アクセス装置は管理情報領域上のＦＡＴを参照することにより、クラスタ番号６〜９、１４、１５、１８、２０〜２２、２５〜３０が１６クラスタ分の空きクラスタ番号であることを認識する。そして、アクセス装置は、ＳＤメモリカードに対して空きクラスタ番号の小さい方から順番に書き込みを行う。すなわち、クラスタ番号６のクラスタから書き込みを開始する。なお、ＦＡＴファイルシステムにおいては、少なくともクラスタ番号が不連続になった時点では、ライトコマンド（以下、ＷＣＭＤという）を発行し直す必要がある。つまり、少なくともクラスタ番号６、１４、１８、２０、２５にデータを送信する直前にＷＣＭＤを発行する必要がある。それぞれのＷＣＭＤを、ＷＣＭＤ１、ＷＣＭＤ２、ＷＣＭＤ３、ＷＣＭＤ４、ＷＣＭＤ５とする。また各ＷＣＭＤにおいてデータ送信が完了した時点でストップコマンド（以下、ＳＣＭＤという）を発行する。
【０００８】
まず、アクセス装置は、ＳＤメモリカードに対して、ＷＣＭＤ１の発行した後、クラスタ番号６〜９にデータを書き込む。具体的には、書き込み開始セクタアドレス、すなわちクラスタ番号６の先頭セクタに対応する論理セクタアドレスを送信した後にクラスタ番号６〜９に書き込むデータ（Ｃ６〜Ｃ９）を送信する。そして送信した後にＳＣＭＤ１を送信し、アクセス装置からＳＤメモリカードへのデータ送信を完了する。
【０００９】
このときＳＤメモリカード内のフラッシュメモリの物理ブロック番号５（ＰＢ５）にクラスタ番号２〜１７までの１６クラスタ分（２５６ｋバイト分）のデータが既に記憶されているものとする。ここで、物理ブロックは、１２８ページの書き込み単位から構成されている。
【００１０】
さて図１において、物理ブロックＰＢ５の斜線でハッチングした領域は、論理アドレス空間上のクラスタ番号２〜５、１０〜１３、１６、１７に書き込まれたデータを既に記憶している。また、以前にクラスタ番号６〜９にデータがＰＢ５のドットでハッチングした領域に書き込まれていた場合には、そのデータをそのまま記憶している。なお、クラスタ番号６〜９は、論理アドレス空間上において論理消去されているが、ＳＤメモリカード側は論理消去した事を認識できないので、ＳＤメモリカードは、ＰＢ５のドットでハッチングした領域には有効なデータが記憶されているものとして管理している。
【００１１】
ＳＤメモリカードは送られてきたデータＣ６〜Ｃ９を書き込むために、消去済みの物理ブロック、ここではＰＢ１を選択し、ＰＢ１の対応する領域にＣ６〜Ｃ９を書き込む。この書き込みを実線矢印で示す。それと同時にＰＢ５に記憶されているデータをＰＢ５に書き込む。これを退避ともいい、破線矢印で示す。
【００１２】
上述したＷＣＭＤ１の書き込みと同様にして、ＷＣＭＤ２〜ＷＣＭＤ５の書き込みにおいても、消去済みブロック（ここではＰＢ７、ＰＢ０、ＰＢ８、ＰＢ８８）を選択し、データの書き込みと退避を行う。なお、ＷＣＭＤ５までの一連の書き込みが完了した段階で、物理ブロックＰＢ５、ＰＢ１、ＰＢ２１、ＰＢ０、ＰＢ８に記憶されたデータは不要となるので、物理消去して次の書き込みに備える。
【特許文献１】特開２００３−２６３８９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上説明した物理ブロックへの書き込み方法のことを「退避前提の書き込み手法」と呼ぶ。「退避前提の書き換え手法」は、ＷＣＭＤ毎にデータの退避が必要となるため、時間のかかる処理となっている。
【００１４】
そこで、本発明は、従来よりも退避処理を合理化し、データ書き込みを高速に行うことができる不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
この課題を解決するために本発明の不揮発性記憶システムは、アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、前記アクセス装置は、複数のクラスタに割り当てられる１つのファイルデータを前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定するファイル番号指定手段と、前記ファイルデータ、及び前記ファイル番号指定手段によって指定されたファイル番号を前記不揮発性記憶装置に送信するファイルデータ送信手段とを有し、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有するものである。
【００１６】
この課題を解決するために本発明の不揮発性記憶システムは、アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、前記アクセス装置は、複数のクラスタに割り当てられる１つのファイルデータを前記不揮発性記憶装置に送信する前に、クラスタ毎に連続的なオフセット番号を指定するオフセット番号指定部と、当該ファイルデータのファイル番号を指定するファイル番号指定部と、前記オフセット番号に基づき前記ファイルデータを分割するファイル分割部と、当該ファイルデータの送信前に前記ファイル番号指定部によって指定されたファイル番号、前記オフセット番号指定部によって指定されたオフセット番号を送信すると共に、ファイルデータを分割して送信するファイルデータ送信部とを有し、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記アクセス装置から送信された前記ファイルデータの受信順に不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有するものである。
【００１７】
なお、「規則的に書き込む」とは、予めメモリコントローラ側で決めておいた物理ブロックへの書き込み順番に従って書き込むことを示している。これは例えば物理ブロックの下位アドレスから順に連続的に書き込むものであってもよい。
【００１８】
ここで前記アドレス管理部は、前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルと、前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスを発生するアドレスカウンタと、を有するようにしてもよい。
【００１９】
ここで前記セグメントは、少なくとも１つの物理ブロックとしてもよい。
【００２０】
ここで前記メモリコントローラは、不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有し、前記アクセス装置は、通知されたセグメントサイズに基づきファイルデータの最小サイズを決定するようにしてもよい。
【００２１】
この課題を解決するために本発明の不揮発性記憶装置は、不揮発性メモリとメモリコントローラとを有し、外部のアクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶装置であって、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルを有し、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有するものである。
【００２２】
この課題を解決するために本発明のファイルデータ書き込み方法は、アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムのファイルデータの書き込み方法であって、複数のクラスタに割り当てられる１つのファイルデータを前記アクセス装置より前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定し、前記ファイルデータと前記ファイル番号指定手段によって指定されたファイル番号とを前記不揮発性記憶装置に送信し、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むものである。
【発明の効果】
【００２３】
本発明によれば、論理アドレスが不連続である複数のクラスタ（領域割り当て単位）に割り当てられたファイルデータを書き込む場合においても、ファイルデータの送信前に該ファイルデータのファイル番号を指定することによって、メモリコントローラが該ファイル番号に基づいてファイルデータを1つのまとまった単位として管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなく、ファイルデータの送信順に不揮発性メモリに規則的に書き込むことができ、ファイルデータの書き込み速度が向上する。この方法は、ファイル番号指定後に１つのファイルデータ全てを書き込むような用途、すなわち１つのファイルサイズが比較的小さい場合に好都合である。
【００２４】
さらに、アクセス装置側で１つのファイルデータに連続的なアドレスであるオフセット番号を付与し、ファイルデータを分割して送信する。ファイルデータの送信前にファイルデータのファイル番号と前記オフセット番号を指定する場合には、メモリコントローラが該ファイル番号とオフセット番号に基づいて分割されたファイルを管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなくファイルデータの送信順に不揮発性メモリに規則的に書き込むができ、ファイルデータの書き込み速度が向上する。この方法は、ファイル番号指定後に１つのファイルデータを分割的に書き込むような用途、すなわち１つのファイルサイズが比較的大きい場合に好都合である。
【発明を実施するための最良の形態】
【００２５】
（実施の形態１）
図２は、本発明の実施の形態１における不揮発性記憶システムを示すブロック図である。図２において、不揮発性記憶システムは、アクセス装置１００Ａと不揮発性記憶装置１４０とを含んで構成される。不揮発性記憶装置１４０は、メモリコントローラ１１０と不揮発性メモリ１３０を含む。
【００２６】
図２において不揮発性記憶装置１４０にアクセスするアクセス装置１００Ａは、入出力部１０１、データ処理部１０２、ＦＡＴファイルシステム制御部１０３、コマンド発行部１０４、ファイルデータ受信部１０５、ファイルデータ送信部１０６、ファイル番号指定部１０７、カードインターフェース（カードＩＦ）１０８、ＣＰＵ１０９を含む。
【００２７】
入出力部１０１は、デジタルスチルカメラの場合は撮像回路やＬＣＤなどの表示回路に相当する。データ処理部１０２は、取り込んだ静止画像をデジタル信号に変換しファイルデータとしてファイルデータ送信部１０６に送信したり、不揮発性記憶装置１４０からファイルデータデータ受信部１０５に読み込んだファイルデータを、入出力部１０１に送信して画像を表示させる回路である。ＦＡＴファイルシステム制御部１０３は、データ処理部１０２が出力したファイルデータを論理アドレス空間上に割り当てるためのブロックである。コマンド発行部１０４は不揮発性記憶装置１４０にファイルデータを書き込んだり、読み出したりする際のコマンドを発行するブロック、ファイルデータ受信部１０５は、不揮発性記憶装置１４０からファイルデータを受信するブロックである。ファイルデータ送信部１０６は、不揮発性記憶装置１４０にファイルデータを送信するブロックである。ファイル番号指定部１０７はファイルデータを特定するためのファイル番号をコマンド発行部１０４に指定するブロックである。ＣＰＵ１０９はアクセス装置１００Ａ全体の制御を行うブロックである。カードインターフェース部１０８は不揮発性記憶装置１４０とのインターフェースを行うブロックである。
【００２８】
一方、メモリコントローラ１１０はホストインターフェース（ホストＩＦ）１１１、ＣＰＵ１１２、カード情報保持レジスタ１１３、アドレス管理部１１４、バッファ１１５、読み書き制御部１１６を含んでいる。ホストインターフェース１１１は、アクセス装置１００Ａと各種コマンド、ファイル番号、論理アドレス及びデータを送受信するインターフェースである。なお、データとは後述する通り、画像などのファイルデータとファイルデータを管理するためのファイル管理データの２種類がある。
【００２９】
さて、メモリコントローラ１１０のＣＰＵ１１２は、ＣＰＵの他にメモリコントローラ１１０全体を制御するプログラムが格納されているＲＯＭや作業用のＲＡＭを含む。アドレス管理部１１４は、不揮発性メモリ１３０へ書き込むデータあるいは読み出すデータの物理アドレスを決定する回路であり、内部にアドレスカウンタ１２０、物理領域管理テーブル１２１とマッピングテーブル１２２を含む。読み書き制御部１１６は、アドレス管理部１１４が指定した物理アドレスに基づき、アクセス装置１００Ａから受信したデータを不揮発性メモリ１３０に書き込んだり、不揮発性メモリ１３０からデータを読み出す回路である。
【００３０】
次に各ブロックについて更に詳細に説明する。不揮発性メモリ１３０はフラッシュメモリで構成され、複数の物理ブロックを有する。物理ブロックは消去の単位である。図３は、不揮発性メモリ１３０内の物理ブロックの配置図である。図３はセグメントサイズを２５６ｋバイトとし、物理ブロックＰＢ０ｘ９に２５６ｋバイトのファイルデータが記憶された状態を表す。ＰＢはＰｈｙｓｉｃａｌ  Ｂｌｏｃｋの略号であり、０ｘは１６進数を表し、０〜ｆｆｆは物理ブロックを特定する番号である。各物理ブロックは図４に示すようにページ番号０〜１２７までの１２８ページの書き込み単位から構成されている。各ページはデータ領域と、物理ブロックやページの状態を示すためのステータス情報を記憶する管理領域とから構成されている。
【００３１】
カード情報保持部１１３は不揮発性記憶装置のデータ領域の容量（以下、カード容量という）セグメントサイズを記憶するものである。このレジスタは不揮発性記憶装置１４０の製造時にあらかじめこれらの情報を書き込んだＲＯＭであってもよい。また不揮発性記憶装置１４０の製造時に予めカード容量とセグメントサイズを不揮発性メモリ１３０の一部の物理ブロック（例えば最終物理ブロック）に記憶させておき、電源立ち上げ直後にＣＰＵ１１２が不揮発性メモリ１３０から読み込んだ該セグメントサイズを一時記憶させるＲＡＭであっても構わない。
【００３２】
ここでセグメントとはファイルデータの管理単位を示しており、セグメントサイズはアドレス管理部１１４がマッピングテーブル１２２を用いて管理するファイルデータの管理単位サイズである。例えばセグメントサイズが２５６ｋバイトであれば、アドレス管理部１１４はファイルデータを２５６ｋバイト単位で管理することを意味する。この場合、カード容量を１Gバイトとすると、最大４０９６個のファイルデータを記憶することが可能となる。但し、不揮発性メモリ１３０の物理アドレス空間が１Gバイトの場合、データ領域の他にシステム情報を記憶するシステム領域があるので、実際のデータ領域のサイズは１Gバイトより小さくなる。ここでは簡単のためにデータ領域のサイズと不揮発性メモリ１３０の物理アドレス空間のサイズは等しいものとして説明する。
【００３３】
また、セグメントサイズが１Ｍバイトであれば、アドレス管理部１１４はファイルデータを１Ｍバイト単位で管理することを意味する。この場合、カード容量を１Gバイトとすると、最大１０２４個のファイルデータを記憶することが可能となる。
【００３４】
図５は物理領域管理テーブル１２１を示すメモリマップである。物理領域管理テーブル１２１は物理ブロック番号ＰＢ０からＰＢ４０９５までの４０９６の物理ブロックのステータスを２ビットで示しており、００は有効ブロック、０１は無効ブロック、１０は不良ブロック、１１は消去済みブロックを示す。
【００３５】
図６はセグメントサイズを２５６ｋバイトとした場合のマッピングテーブル１２２のメモリマップである。この図では、物理ブロックＰＢ０ｘ９に２５６ｋバイトのファイルデータが記憶された状態を表す。図７は、セグメントサイズを１Ｍバイトとした場合のマッピングテーブル１２２のメモリマップである。
【００３６】
尚セグメントサイズが２５６ｋバイトであっても、ファイルサイズは２５６ｋバイトに制限されるものではなく、それ以上のファイルも記憶することができる。図８Ａは、セグメントサイズが２５６ｋバイトの場合に、ファイルデータのサイズが１Ｍバイトの場合の物理ブロックの連結状態を表す説明図である。最初の物理ブロックＰＢ０ｘ９の管理領域に、物理ブロックＰＢ０ｘ１ｆ、ＰＢ０ｘ２５、ＰＢ０ｘ３０の物理ブロック番号を記憶して連結している。図９は、この場合の物理ブロックＰＢ０ｘ９の管理領域を示したメモリマップである。
【００３７】
一方図８Ｂは、物理ブロックＰＢ０ｘ９の管理領域に物理ブロックＰＢ０ｘ１ｆの物理ブロック番号を、物理ブロックＰＢ０ｘ１ｆの管理領域に物理ブロックＰＢ０ｘ２５の物理ブロック番号を、物理ブロックＰＢ０ｘ２５の管理領域に物理ブロックＰＢ０ｘ３０の物理ブロック番号を記憶した例である。
【００３８】
以上のように構成された、不揮発性記憶システムの動作について説明する。ここで、本発明の不揮発性記憶システムは、一般的なＦＡＴファイルシステムによるファイルデータの割り当て処理に準拠したものであるので、まずＦＡＴファイルシステム制御部１０３によるファイルデータの割り当て処理について説明する。
【００３９】
＜ＦＡＴファイルシステムによるファイルデータの割り当て処理＞
図１０はＦＡＴファイルシステムの構成を示す。ＦＡＴファイルシステムでは、ファイルシステム管理領域の先頭にファイルシステム管理領域の全体を管理するための管理情報領域２０１が存在し、引き続いてファイルデータを格納するデータ領域２０２が存在する。管理情報領域２０１は、マスターブートレコード・パーティションテーブル（ＭＢＲ／ＰＴ）２０３、パーティションブートセクタ（ＰＢＳ）２０４、ＦＡＴ２０５、２０６、ルートディレクトリエントリ（ＲＤＥ）２０７から構成される。
【００４０】
マスターブートレコード・パーティションテーブル２０３は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。パーティションブートセクタ２０４は、１つのパーティション内の管理情報を格納する部分である。ＦＡＴ２０５、２０６は、ファイルデータの格納位置を示す部分である。ルートディレクトリエントリ２０７は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、ＦＡＴ２０５、２０６は、ファイルデータの格納位置を示す重要な領域であることから、通常、ファイルシステム管理領域内に２つの同じ情報を持つＦＡＴ２０５、２０６が存在し、二重化されている。
【００４１】
データ領域２０２は複数のクラスタに分割され管理されており、各クラスタにはファイルデータが格納されている。１クラスタ以上のサイズのファイルデータは、複数のクラスタに跨っており、各クラスタ間の繋がりは、ＦＡＴ２０５、２０６に格納されたリンク情報により管理されている。図１１を用いてＦＡＴファイルシステムにおけるファイルデータ格納例を説明する。データ領域２０２は、クラスタと呼ばれる固定長ブロック単位で管理されており、各クラスタには２から始まる昇順のクラスタ番号が付与されている。ＦＡＴ２０５、２０６は各クラスタの使用状況と、各クラスタ間の繋がりを示すリンク情報を管理しており、各クラスタ番号に対応したＦＡＴエントリから構成される。ＦＡＴエントリは、ＦＡＴファイルシステムの種別により、１クラスタあたり１２ビット、１６ビット、３２ビットの３種類のうち、いずれかの大きさとなる。図１１の例では１６ビットで１エントリが表現される場合を示している。ＦＡＴエントリには、次に繋がるクラスタのクラスタ番号、当該クラスタが空き領域であることを示す０ｘ００００、当該クラスタがリンク終端であることを示す０ｘＦＦＦＦのいずれかの値が格納される。図１１の例では、クラスタ番号２、５、７に対応するＦＡＴエントリに０ｘ００００が格納されており、これら３つのクラスタが空き領域であることを示している。また、クラスタ番号３に対応するＦＡＴエントリに０ｘ０００４、クラスタ番号４に対応するＦＡＴエントリに０ｘ０００６、クラスタ番号６に対応するＦＡＴエントリに０ｘＦＦＦＦが格納されており、クラスタ番号３、４、６の３つのクラスタにファイルデータが分割して格納されていることを示している。
【００４２】
次に図１２、図１３を用いてＦＡＴファイルシステムにおけるファイルデータの割り当てを説明する。図１２は、ファイルデータを新規に割り当てる処理を表す。ファイルデータの割り当て処理では先ず始めにＦＡＴ２０５、２０６を参照し、ＦＡＴ２０５、２０６上でクラスタ番号２（データ領域の先頭クラスタ）から昇順に空き領域を検索し、１クラスタの空き領域を取得する（Ｓ３０１）。次に、その空きクラスタ内に書き込めるだけのファイルデータをデータ領域２０２に割り当てる（Ｓ３０２）。次に、全ファイルデータの割り当てが完了したか判定する（Ｓ３０３）。まだファイルデータが残っている場合、Ｓ３０４の処理においてさらに空き領域取得が必要かどうかを判断し、必要であれば１クラスタの空き領域を取得する。全ファイルデータの割り当てが完了した場合、ディレクトリエントリ２１１内に格納されたファイルサイズやタイムスタンプなどを更新する（Ｓ３０５）。最後にＦＡＴ２０５、２０６を更新し、処理を完了する（Ｓ３０６）。
【００４３】
図１３（ａ）は、前述したファイルデータの割り当て処理後のディレクトリエントリ２１１、図１３（ｂ）はＦＡＴ２０５、２０６、図１３（ｃ）はデータ領域２０２の一例を示した図である。ＦＡＴファイルシステムでは、ルートディレクトリエントリ２０７やデータ領域２０２の一部に、ファイル名やファイルサイズ、ファイル属性などの情報を格納したディレクトリエントリ２１１が格納されており、図１３（ａ）はディレクトリエントリ２１１の一例を示している。このディレクトリエントリ２１１で示されるファイルデータは、ファイル名がＰＩＣＴＵＲＥ１．ＪＰＧであり、クラスタ番号１０から１３までファイルデータ１〜４が格納されている。また、ファイルサイズは６４ｋバイトであり、図１３では１クラスタの大きさを１６ｋバイトと仮定しており、４クラスタに跨ってファイルデータが格納されている。
【００４４】
本実施の形態の不揮発性記憶システムにおいては、以上のファイルデータの割り当て処理は、ＦＡＴファイルシステム制御部１０３によって実行される。ファイルデータの割り当てやＦＡＴの更新などは、ＦＡＴファイルシステム制御部１０３内に設けられたＲＡＭ上で行われ、不揮発性記憶装置１４０への書き込みは、次に説明する「ファイルデータの書き込み処理」において実行される。
【００４５】
＜ファイルデータの書き込み処理＞
図１４Ａ，図１４Ｂは本発明の実施の形態１における不揮発性記憶システムの書き込み処理の概要を示すフローチャートである。次に、このフローチャートを参照しながら、本実施の形態のファイルデータ書き込み処理について説明する。ここで各ステップにおいてＭの表示は不揮発性記憶装置１４０の処理であり、Ａの表示はアクセス装置１００Ａの処理を示す。さてアクセス装置１００Ａの電源の立ち上げにより、外部バスを通じて不揮発性記憶装置１４０も電源が立ち上がり、不揮発性記憶装置１４０は初期化処理に移行する（Ｓ１００）。初期化処理において、不揮発性記憶装置１４０はＣＰＵ１１２が、カード情報保持部１１３に予め設定されているカード容量とセグメントサイズをアクセス装置１００Ａに通知する（Ｓ１０１）。アクセス装置１００Ａは、不揮発性記憶装置１４０から受信したセグメントサイズを最小論理割り当て単位とみなし、次式（１）に基づき最大ファイルデータ数を決定する（Ｓ１０２）。
最大ファイルデータ数＝カード容量÷最小論理割り当て単位・・・（１）
【００４６】
なお、最小論理割り当て単位とは、１つのファイルデータを論理アドレス空間上に割り当てる際に占有される論理領域のサイズであり、ファイルデータサイズとしては最小論理割り当て単位以下であっても構わない。例えばセグメントサイズが１Ｍバイトの場合は最小論理割り当て単位も１Ｍバイト（６４クラスタ分）となり、１つのファイルデータを論理アドレス空間上に割り当てる際は６４クラスタ占有されることとなる。但し、実際のファイルデータサイズとしては例えば５１２ｋバイトであっても構わない。このように、全てのファイルデータのファイルデータサイズが、最小論理割り当て単位の半分しかなかった場合は、カード容量を１Ｇバイトとすると、その半分の５１２Ｍバイト分の記憶領域しか使えないので、無駄な使い方となるだけである。
【００４７】
Ｓ１０１の処理の後、他の各種初期化処理を行い（Ｓ１０３）、アクセス待ち状態になる（Ｓ１０４）。例えばデジタルスチルカメラなどにおいて、写真の撮影及び不揮発性メモリ装置への記録を行った場合（Ｓ１０４）、ファイルデータの書き込み処理に移行する。なお、撮影した写真を表示するためデータを読み出す処理については、ここでは説明を省略する。
【００４８】
まず、撮影された画像データはデータ処理部１０２を介してファイルデータ送信部１０６に転送される。これと同時にＦＡＴファイルシステム制御部１０３は該画像データを取り込み、１つのファイルデータとして論理アドレス空間へ割り当てる（Ｓ１０６）。
【００４９】
ＣＰＵ１０９は、ＦＡＴファイルシステム制御部１０３のファイルデータ割り当て処理を認識した後に、不揮発性記憶装置１４０へファイルデータを書き込むための制御に移る。まずＣＰＵ１０９はファイル番号指定部１０７を起動する。ファイル番号指定部１０７はこれから書き込もうとするファイルデータのファイル番号を決定し、該ファイル番号をコマンド発行部１０４に渡す。コマンド発行部１０４は、ファイル番号を引数としてファイルデータアクセスの開始コマンドＦＳＣＭＤを不揮発性記憶装置１４０に発行する（Ｓ１０７）。
【００５０】
ファイル番号の決定では、ファイル番号指定部１０７は、ＦＡＴファイルシステム制御部１０３内のＲＡＭを参照することにより、ファイル名に関連させた番号表を例えば不揮発性ＲＡＭなどに作成しておき、最大ファイルデータ数未満の空いているファイル番号を使用すればよい。図１５はこの番号表の一例を示す。例えば最大ファイルデータ数が１０２４の場合において、ファイル番号０〜１０のみが使用されているとすれば、ファイル番号１１〜１０２３のいずれの番号を使用しても構わない。またファイルデータを論理消去した場合は、図１５に示すようにそのファイル番号を最大ファイルデータ数以上の値に設定すればよい。
【００５１】
一方、不揮発性記憶装置１４０はファイルデータを不揮発性メモリ１３０に書き込む処理を行う。まず、ホストインターフェース１１１を介して取り込まれたＦＳＣＭＤをＣＰＵ１１２が解釈し、ファイル番号をアドレス管理部１１４に渡すと共に、アドレスカウンタ１２０のカウント値をリセットする。アドレス管理部１１４は物理領域管理テーブル１２１を参照し、ブロックステータスを調べ、消去済みブロック、例えば、ＰＢ０ｘ９を取得する。さらにアドレス管理部１１４はマッピングテーブル１２２（図７）において、送られてきたファイル番号に対応する行に、値０ｘ９を記憶させる（Ｓ１０８）。
【００５２】
さて、アクセス装置１００のコマンド発行部１０４はＦＳＣＭＤの発行後に書き込みを開始する論理セクタアドレスを引数としてライトコマンドＷＣＭＤを発行する（Ｓ１０９）。ＣＰＵ１０９は、ＷＣＭＤやファイルデータの送信方法、すなわち１回のＷＣＭＤに対応して全ファイルデータを送信するか、何回かのＷＣＭＤに分割して送信するかについて後述するように決定する。そしてファイルデータ送信部１０６がファイルデータを不揮発性記憶装置１４０に送信する（Ｓ１０８）。
【００５３】
その後、不揮発性記憶装置１４０は、ホストインターフェース１１１を介して取り込まれたＷＣＭＤをＣＰＵ１１２が解釈し、アドレスカウンタ１２０のインクリメント動作を許可する。アドレスカウンタ１２０の初期値は０であり、ＷＣＭＤの後にファイルデータを１ページ分（４セクタ分）受信する毎にカウンタをインクリメントする。ここでこのカウンタの値により示されるアドレスを仮想論理アドレスと言う。このアドレスはＷＣＭＤに引数として与えられた論理セクタアドレスとは無関係のアドレスである。なお、論理セクタアドレスは、不揮発性記憶装置１４０においては無視される。
【００５４】
アドレスカウンタ１２０の計数値である仮想論理アドレスは、書き込み対象の物理ブロックのページ番号として使用される（Ｓ１１１）。不揮発性メモリ１３０の物理ブロックは図４に示したとおり１２８ページで構成されるので、アドレスカウンタ１２０は値０〜１２７を計数できる７ビットのカウンタでよい。
【００５５】
アドレス管理部１１４は、アドレスカウンタ１２０が受け取った仮想論理アドレスをＰＢ０ｘ９のページアドレスとして、読み書き制御部１１６に物理アドレスを転送する。すなわち、ＰＢ０ｘ９の下位アドレス（ページ０）から昇順に物理アドレスを指定することとなる。読み書き制御部１１６は、アドレス管理部１１４が指定した物理アドレスに基づいて、アクセス装置１００Ａから受信したファイルデータを順次不揮発性メモリ１３０に書き込む（Ｓ１１２）。一方アクセス装置１００ＡはＦＳＣＭＤとファイルデータの送信後に、ストップコマンドＳＣＭＤを送信する（Ｓ１１３）。そしてＣＰＵ１０９は、ファイルデータの書き込みが完了したかどうかを判断し（Ｓ１１４）、完了していなければＳ１０９に戻り、完了していれば、ＦＡＴやディレクトリエントリの書き込みを行う（Ｓ１１５）。
【００５６】
以上、図２および図１４Ａ，図１４Ｂを参照しながら説明した、ファイルデータの書き込み処理について、さらに図１６および図１７を用いて説明する。
【００５７】
図１６は、ファイルデータの書き込み処理を示す説明図である。なお、クラスタは１６ｋバイトとする。クラスタ０と１はＦＡＴなどの管理情報が割り当てられる領域であり、クラスタ２以降は、ファイルデータが割り当てられるデータ領域である。
【００５８】
図１６の論理アドレス空間ＬＡＡにおいて、ハッチングが施されたクラスタは有効なファイルが記録されていることを示す。論理アドレス空間のデータ領域に、ファイルデータサイズの異なるファイルデータを割り当てたり、不要になったファイルデータを論理消去することを繰り返すことによって、図１６のように、空きクラスタに不連続が生じてしまうこととなる。図１６において、論理消去済みの空きクラスタにサイズが２５６ｋバイトのファイルデータを書き込むものとする。
【００５９】
さて、ＦＡＴファイルシステム制御部１０３は、クラスタ番号の小さい空きクラスタから順番に、ファイルデータを割り当てる。不揮発性記憶装置の場合は、例えばクラスタ番号６から９までのようなクラスタ番号が連続の領域に対しては、１つのＷＣＭＤでファイルデータの書き込みができるが、クラスタ番号９とクラスタ番号１４の間には不連続があるので、再度ＷＣＭＤを発行し直す必要がある。これは、ＷＣＭＤの引数としてファイルデータの書き込み開始論理アドレスを設定し、不揮発性記憶装置１４０側において書き込み開始論理アドレスを連続的に計数する仕組みとなっているため、１つのＷＣＭＤにおいて論理アドレスに不連続があった場合は、不揮発性記憶装置１４０は間違った論理アドレスとして認識しまうからである。
【００６０】
従って、少なくとも論理アドレスに不連続がある点、例えばクラスタ番号１４、１８、２０、２５においては、ＷＣＭＤを発行し直す必要がある。すなわち、最低でもＷＭＣＤ１〜ＷＣＭＤ５の５回でのライトコマンドによって、ファイルデータ全ての書き込みを行うこととなる。
【００６１】
本実施の形態１においては、アクセス装置１００がＷＭＣＤ１〜ＷＭＣＤ５の発行前にＦＳＣＭＤを発行する。こうすれば、今から書き込むファイルデータのファイル番号を不揮発性記憶装置１４０が認識し、アドレス管理部１１４が該ファイル番号と、アドレスカウンタ１２０が計数する仮想論理アドレスに基づいてアドレス管理を行うようにしたので、消去済み物理ブロックのページ０から順番にファイルデータを書き込むことができる。
【００６２】
図１７Ａは、図１４Ａ，図１４Ｂに示したファイルデータの書き込みを、外部バス上のタイムチャートとして表したものである。図１７Ａはファイルデータの書き込み前にファイルデータアクセス開始コマンド（以下、ＦＳＣＭＤという）を発行する場合を示す。この場合はＦＳＣＭＤ発行後に、ＷＣＭＤ１〜ＷＣＭＤ５を順次発行することによって、全ファイルデータの書き込みが完了する。なお、不揮発性記憶装置１４０は、この一連の書き込み処理がなされた後に、次のＦＳＣＭＤもしくはＦＡＴやディレクトリエントリなどの管理情報を受信することによって始めて、ファイルデータの書き込み処理が完了したことを認識できる。因みに、ＦＡＴやディレクトリエントリは書き込み時に指定される論理アドレス等によってファイルデータの書き込みではないことを識別できるが、詳細については簡単のために説明を省略する。
【００６３】
不揮発性記憶装置１４０が、ファイルデータの書き込み処理が完了を認識させるための別の方法として、ＦＳＣＭＤの引数に今から書き込もうとするファイルデータサイズを設定してもよい。この場合は、ＣＰＵ１１２が、ＦＳＣＭＤの引数として設定されたファイルデータサイズを解釈することによって、これからどれだけのサイズのファイルサイズが送信されてくるかを前もって認識することができる。
【００６４】
図１７Ｂはファイルデータの書き込み前にファイルデータアクセス開始コマンドＦＳＣＭＤを発行し、さらにファイルデータ全てを送信した直後にファイルデータアクセス終了コマンド（以下、ＦＥＣＭＤという）を発行する場合を示す。このように、アクセス装置１００Ａが全ファイルデータを書き込んだ後に、ＦＥＣＭＤを送信すると、不揮発性記憶装置１４０は、ＦＥＣＭＤを受信した時点で、ファイルデータの書き込みが完了したことを認識することができる。
【００６５】
以上の動作は、セグメントサイズが２５６ｋバイトであり、かつ1つのファイルデータのサイズがセグメントサイズの場合における書き込み処理について説明したものであるが、セグメントサイズ以上のファイルデータを書き込むことも可能である。例えば、セグメントサイズが２５６ｋバイトであり、かつ1つのファイルデータのサイズがセグメントサイズの４倍の場合、即ちファイルデータサイズが１Ｍバイトの場合において、ＰＢ０ｘ９、ＰＢ０ｘ１ｆ、ＰＢ０ｘ２５、ＰＢ０ｘ３０の４つの物理ブロックにファイルデータを書き込むことを考える。
【００６６】
このような場合は、図８Ａに示すように、アドレス管理部１１４は、最初の２５６ｋバイト分を書き込む物理ブロックＰＢ０ｘ９の物理ブロック番号（０ｘ９）を、マッピングテーブル１２２に記憶させ、後続するファイルデータを書き込む物理ブロックの物理ブロック番号（０ｘ１ｆ、０ｘ２５、０ｘ３０）を、ＰＢ０ｘ９の管理領域に書き込むように制御すればよい。具体的には図８Ａに示すように、管理領域のページ０から２バイトずつ降順に、０ｘ１ｆ、０ｘ２５、０ｘ３０を書き込むこととなる。
【００６７】
あるいは、図８Ｂに示すように、ＰＢ０ｘ９の管理領域にＰＢ０ｘ１ｆの物理ブロック番号を書くように、ＰＢ０ｘ９、ＰＢ０ｘ１ｆ、ＰＢ０ｘ２５、ＰＢ０ｘ３０が順番にリンクする形にしても構わない。
【００６８】
以上のように、論理アドレスが不連続である複数のクラスタ（領域割り当て単位）に割り当てられたファイルデータを書き込む場合においても、ファイル番号指定部１０７がファイルデータの送信前に該ファイルデータのファイル番号を指定することによって、アドレス管理部１１４が該ファイル番号に基づいてファイルデータを1つのまとまった単位として管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなくファイルデータの送信順に不揮発性メモリ１３０に連続的に書き込むこととなり、ファイルデータの書き込み速度を向上させることができる。
【００６９】
なお、本実施の形態１においては、ＦＳＣＭＤのようなコマンドを新たに追加することによって、今から書き込もうとするファイル番号を不揮発性記憶装置１４０に認識させるようにしたが、先頭のライトコマンド（ＷＣＭＤ１）のみの引数にファイル番号を付加するようにしても構わない。また、仮想論理アドレスは、ページ０から昇順になるようにしたが、不揮発性メモリ１３０のページ書き込み順序に特に制約がなければ、ページ１２７から降順になるように書き込むなどの別の規則を設けてもよい。また、ファイル番号によってファイルデータ単位で管理できるようにしたが、ファイルを特定できるものであればファイル番号に限る必要はない。また、ファイルデータの読み出しにおいては、アクセス装置１００Ａは不揮発性記憶装置１４０に対して、ファイル番号を指定した後に、読み出しコマンドを発行すればよい。
【００７０】
（実施の形態２）
図１８は、本発明の実施の形態２における不揮発性記憶システムを示すブロック図である。実施の形態１においては、デジタルスチルカメラのようにファイル単位での読み書きを前提とした例であり、ファイルの一部を読み書きすることはできない。実施の形態２はファイルの一部を読み書きすることができる不揮発性記憶システムである。実施の形態１における不揮発性記憶システムと比較すると、アクセス装置の構成が異なっている。実施の形態２ではファイルデータサイズが大きい大容量の用途、例えばデジタルムービー等の動画記録に好適である。
【００７１】
本実施の形態のアクセス装置１００ＢはＣＰＵ１５１を有し、前述した構成に加えて、ファイル分割部１５２及びオフセット番号指定部１５３を有している。この実施の形態ではファイル分割部１５２は大きなファイルデータを分割し、その分割したファイルにオフセット番号を指定する。オフセット番号はファイルデータに付けられる連続的なアドレスである。又ファイル分割部１５２はデータを転送する際に複数の連続するオフセットアドレス毎にデータを分割するものである。図１９は１つのファイルを分割した例を示しており、その分割したデータが割り当てられる論理アドレス上のクラスタ番号と１つのファイルに連続して付けられるオフセット番号、及び分割グループ番号を示している。オフセット番号は０から１６３８３とし、分割グループ番号を０〜１０２３とする。分割グループ番号は、アクセス装置１００Ｂ側の都合で付与すればよいが、実施の形態２では、ファイルデータに対して２５６ｋバイト単位、即ち１６クラスタ毎に先頭から昇順に分割グループ番号を付与している。
【００７２】
実施の形態１における不揮発性記憶システムと比較した時の構成上の相違点は下記の通りである。
＜構成上の相違点＞
１．アクセス装置１００ＢのＣＰＵ１５１はファイルデータを連続的なアドレスであるオフセット番号を用いて管理する。
２．オフセットアドレスに基づいてファイルデータを分割する。
３．分割したファイルデータの送信前に該ファイルデータのファイル番号と前記オフセット番号を不揮発性記憶装置１４０に指定する。
【００７３】
以上の事を踏まえて、実施の形態２における不揮発性記憶システムの動作について図２０Ａ，図２０Ｂのフローチャートを用いて説明する。実施の形態１における不揮発性記憶システムの書き込み処理を示す図１４Ａ，図１４Ｂのフローチャートとは、ステップＳ１２１，Ｓ１２２，Ｓ１２３の処理だけが異なる。図２０ＡにおいてステップＳ１００〜Ｓ１０６については前述した実施の形態１の動作と同様であり、詳細な説明を省略する。
【００７４】
図２０Ａにおいて、画像の取り込み処理及び論理アドレス空間への割り当て処理（ステップＳ１０６）を行った後、ステップＳ１２１に進んで前述したようにファイルデータにオフセットアドレスを付与し、ファイルデータを分割する。ファイルデータの総容量は２５６Mバイトであり、クラスタ番号６を先頭に、以降図１９の左欄に示すように各クラスタ番号に割り当てられているものとする。ここでは、例えばクラスタ番号９に続いて１４、クラスタ番号１８に続いて２０というように、クラスタ番号の不連続が生じている。ファイルデータのデータの先頭であるクラスタ番号６の位置をオフセット番号０として、以降昇順に連続したオフセット番号を付与し、ファイルデータの最終はオフセット番号１６３８３となる。分割グループ番号の付与の方法は、アクセス装置１００Ｂ側の都合で付与する。実施の形態２では、図１９に示すようにファイルデータに対して２５６ｋバイト単位毎、即ち１６クラスタ毎に先頭から昇順に分割グループ番号を付与することによって、ファイルデータを分割する。次に、ＦＳＣＭＤを不揮発性記憶装置１４０に送信し、ＦＳＣＭＤの引数にファイル番号とオフセット番号を指定する（Ｓ１２２）。
【００７５】
以上のアクセス装置１００Ｂの処理の後に、不揮発性記憶装置１４０側は分割したファイルデータを不揮発性メモリ１３０に書き込む処理を行う。まず、ホストインターフェース１１１を介して取り込まれたＦＳＣＭＤをＣＰＵ１１２が解釈し、ファイル番号とオフセット番号をアドレス管理部１１４に渡すと共に、アドレスカウンタ１２０のカウント値をオフセット番号にセットする。アドレス管理部１１４は物理領域管理テーブル１２１を参照し、ブロックステータスを調べ、消去済みブロック、例えば、ＰＢ０ｘ９を取得する。さらにアドレス管理部１１４はマッピングテーブル１２２において、前記ファイル番号に対応する行に、値０ｘ９を記憶させる（Ｓ１０８）。
【００７６】
ＦＳＣＭＤの発行直後、コマンド発行部１０４は書き込みを開始する論理セクタアドレスを引数としてＷＣＭＤを発行する（Ｓ１０９）。更にファイルデータ送信部１０６が分割したファイルデータを不揮発性記憶装置１４０に送信する（Ｓ１２３）。なお、ＣＰＵ１５１は、図１９に示した分割グループ番号に従ってファイルデータを１０２４回に分割して送信するように指示する。
【００７７】
不揮発性記憶装置１４０はその後、ホストインターフェース１１１を介して取り込まれたＷＣＭＤをＣＰＵ１１２が解釈し、アドレスカウンタ１２０のインクリメント動作を許可する。アドレスカウンタ１２０は、ＷＣＭＤの受信後に分割したファイルデータを１ページ分（４セクタ分）受信する毎に０からインクリメントする。実施の形態１と同様に、このカウンタ値である仮想論理アドレスは、書き込み対象の物理ブロックのページ番号として使用される（Ｓ１１１）。
【００７８】
アドレス管理部１１４は、アドレスカウンタ１２０から受け取った仮想論理アドレスをＰＢ０ｘ９のページアドレスとして、読み書き制御部１１６に物理アドレスを転送する。すなわち、ＰＢ０ｘ９のページ０から昇順に物理アドレスを指定する。読み書き制御部１１６は、アドレス管理部が指定した物理アドレスに基づいて、アクセス装置１００Ｂから受信した、分割したファイルデータを順次不揮発性メモリ１３０に書き込む（Ｓ１１２）。アクセス装置１００Ｂはデータの送信後にストップコマンドを送信する（Ｓ１１３）。ＣＰＵ１０９は、分割したファイルデータの書き込みが完了したかどうか判断し（Ｓ１１４）、完了していなければＳ１０９に戻り、完了していれば、ＦＡＴやディレクトリエントリの書き込みを行う（Ｓ１１５）。
【００７９】
以上の処理により、図１９に示された分割グループ番号０のファイルデータの書き込みが完了する。次に、分割グループ番号１の書き込み処理を行うために、Ｓ１２２の処理に戻り、以降、分割グループ番号１〜１０２３まで同様の書き込み処理を行う。尚書き込みは全ての分割グループについて行う必要はなく、分割したグループの１つ以上であればＳ１０５〜Ｓ１１５の処理によって分割書き込みができる。
【００８０】
次に、ファイルデータを構成するデータ種が、例えば動画と音声のように複数種類からなり、それぞれのデータ種を互い違いに書き込む場合について、図２１を用いて説明する。図２１において、クラスタ番号順にみて前半部分に動画が、後半部分に音声が記録されるものとする。そして、動画のクラスタ番号の小さい方からを４クラスタ分、音声のクラスタ番号の小さい方からを４クラスタ分といったように、互い違いに書き込むことを考える。その場合は、オフセット番号は不揮発性記憶装置１４０に送信する順に従うものであるので、図２１に示すような配列でオフセット番号と分割グループ番号が付与される。アクセス装置は、このオフセット番号と分割グループ番号に従って、図２０Ａ，図２０Ｂに示す手順で書き込み処理を行う。
【００８１】
以下に、実施の形態１と、実施の形態２を比較しながら、用途上の相違点について説明する。
１．実施の形態１における不揮発性記憶システムは、例えばデジタルスチルカメラのような静止画の記録再生用途などのファイルデータサイズが比較的小容量の用途には好適である。
２．実施の形態２における不揮発性記憶システムは、デジタルムービーのような動画の記録再生用途などのファイルデータサイズが比較的大容量の用途にも好適である。
【００８２】
例えばデジタルスチルカメラのような静止画の記録再生用途であれば、ファイルデータのサイズは、数Mバイト程度である。通常SDメモリカードの書き込みレートは、数Mバイト程度であるので、１つのファイルデータは１秒程度でSDメモリカードに記録することができる。１秒程度の記録時間であれば、アクセス装置側のバッファサイズも数Ｍバイトで済むし、また記録中の電源遮断に対応する必要がないので、実施の形態１における不揮発性記憶システムのように、１つのファイルデータを書き込んで後にＦＡＴなどの管理情報を書き込む方法が適用できる。
【００８３】
しかしながら、デジタルムービーのような動画の記録再生用途の場合は、ファイルデータのサイズは数百Ｍバイト以上であるので記録時間に数百秒を要してしまい、膨大なバッファサイズが必要となる。また記録中の電源遮断に対応する必要がある。
【００８４】
以上により、実施の形態２においては、ファイルデータを分割したグループ毎に書き込み、その都度ＦＡＴなどの管理情報も更新するようにしたので、実施の形態１に示す不揮発性記憶システムよりも、電源遮断などのエラーに対して、より好適な書き込み方法であるといえる。以上のように、図１９や図２１に示すようにクラスタ番号すなわち論理アドレスが不連続である複数のクラスタ（領域割り当て単位）に割り当てられたファイルデータを書き込む場合においても、ＣＰＵ１５１がファイルデータを連続的なアドレス（オフセット番号）で管理し、さらに、該オフセット番号に基づき前記ファイルデータを分割し、ファイル番号指定部１０７が指定した分割したファイルデータのファイル番号と、該オフセット番号をファイルデータの送信前に不揮発性記憶装置１４０に通知する。そのためアドレス管理部１１４が該ファイル番号とオフセット番号に基づいてファイルデータを1つのまとまった単位として管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなくファイルデータの送信順に不揮発性メモリ１３０に連続的に書き込むこととなり、ファイルデータの書き込み速度を向上させることができる。
【００８５】
なお、本実施の形態２においては、ＦＳＣＭＤのようなコマンドを新たに追加することによって、今から書き込もうとするファイル番号を不揮発性記憶装置１４０に認識させるようにしたが、先頭のライトコマンドの引数にファイル番号とオフセット番号を付加するようにしても構わない。また、仮想論理アドレスは、ページ０から昇順になるようにしたが、不揮発性メモリ１３０のページ書き込み順序に特に制約がなければ、ページ１２７から降順になるように書き込むようにしてもよい。また、ファイル番号によってファイルデータ単位で管理できるようにしたが、ファイルを特定できるものであればファイル番号に限る必要はない。また、ファイルデータの読み出しにおいては、アクセス装置１００Ａは不揮発性記憶装置１４０に対して、ファイル番号とオフセット番号を指定した後に、読み出しコマンドを発行すればよい。又分割グループ番号を同時に指定するようにすれば、分割グループ単位での読出しも可能となる。
【産業上の利用可能性】
【００８６】
本発明にかかる不揮発性記憶システムは、物理ブロックサイズがクラスタサイズより大きな不揮発性メモリを用いた不揮発性記憶装置においても、高速書き込みのできるシステム及び書き込み方法を提案したものであり、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話において有益である。
【図面の簡単な説明】
【００８７】
【図１】従来の不揮発性記憶システムの書き込み処理を示す概略図
【図２】本発明の実施の形態１における不揮発性記憶システムを示すブロック図
【図３】不揮発性メモリ１３０内の物理ブロックの配置図
【図４】物理ブロック内のページの配置図
【図５】物理領域管理テーブルのメモリマップ
【図６】マッピングテーブル１２２のメモリマップ
【図７】マッピングテーブル１２２のメモリマップ
【図８Ａ】ファイルデータのサイズが１Ｍバイトの場合の物理ブロックの連結状態を示す説明図
【図８Ｂ】ファイルデータのサイズが１Ｍバイトの場合の物理ブロックの連結状態の他の例を示す説明図
【図９】図８Ａの例における物理ブロックＰＢ０ｘ９の管理領域を示したメモリマップ
【図１０】ＦＡＴファイルシステムの構成を示すメモリマップ
【図１１】ＦＡＴファイルシステムにおけるデータ格納例を示す説明図
【図１２】ＦＡＴファイルシステムにおけるファイルデータの割り当て処理手順を示すフローチャート
【図１３】ファイルデータの割り当て処理後のディレクトリエントリ、ＦＡＴ、及びデータ領域の一例を示す説明図
【図１４Ａ】本発明の実施の形態１における不揮発性記憶システムの書き込み処理の概要を示すフローチャート（その１）
【図１４Ｂ】本発明の実施の形態１における不揮発性記憶システムの書き込み処理の概要を示すフローチャート（その２）
【図１５】ファイル名とその番号を示す図
【図１６】ファイルデータの書き込み処理を示す説明図
【図１７Ａ】ファイルデータの書き込み処理の一例を示すタイムチャート
【図１７Ｂ】ファイルデータの書き込み処理の他の例を示すタイムチャート
【図１８】本発明の実施の形態２における不揮発性記憶システムを示すブロック図
【図１９】１つのファイルデータのクラスタ番号とオフセット番号及びその分割グループ番号を示す図
【図２０Ａ】本発明の実施の形態２における不揮発性記憶システムの書き込み処理の概要を示すフローチャート（その１）
【図２０Ｂ】本発明の実施の形態２における不揮発性記憶システムの書き込み処理の概要を示すフローチャート（その２）
【図２１】動画と音声データからなるファイルデータのクラスタ番号とオフセット番号及びその分割グループ番号を示す図
【符号の説明】
【００８８】
１００Ａ，１００Ｂ  アクセス装置
１０１  入出力部
１０２  データ処理部
１０３  ＦＡＴファイルシステム制御部
１０４  コマンド発行部
１０５  ファイルデータ受信部
１０６  ファイルデータ送信部
１０７  ファイル番号指定部
１０８  カードインターフェース
１０９、１１２、１５１  ＣＰＵ
１１０  メモリコントローラ
１１１  ホストインターフェース
１１３  カード情報保持レジスタ
１１４  アドレス管理部
１１５  バッファ
１１６  読み書き制御部
１２０  アドレスカウンタ
１２１  物理領域管理テーブル
１２２  マッピングテーブル
１３０  不揮発性メモリ
１４０  不揮発性記憶装置
１５２  ファイル分割部
１５３  オフセット番号指定部
【図１】
2007310533.tif 000003
【図２】
2007310533.tif 000004
【図３】
2007310533.tif 000005
【図４】
2007310533.tif 000006
【図５】
2007310533.tif 000007
【図６】
2007310533.tif 000008
【図７】
2007310533.tif 000009
【図８Ａ】
2007310533.tif 000010
【図８Ｂ】
2007310533.tif 000011
【図９】
2007310533.tif 000012
【図１０】
2007310533.tif 000013
【図１１】
2007310533.tif 000014
【図１２】
2007310533.tif 000015
【図１３】
2007310533.tif 000016
【図１４Ａ】
2007310533.tif 000017
【図１４Ｂ】
2007310533.tif 000018
【図１５】
2007310533.tif 000019
【図１６】
2007310533.tif 000020
【図１７Ａ】
2007310533.tif 000021
【図１７Ｂ】
2007310533.tif 000022
【図１８】
2007310533.tif 000023
【図１９】
2007310533.tif 000024
【図２０Ａ】
2007310533.tif 000025
【図２０Ｂ】
2007310533.tif 000026
【図２１】
2007310533.tif 000027