(57)【特許請求の範囲】
【請求項１】
ｎ（ｎは自然数）個の書き込み単位領域からなる第１オリジナルブロックと、ｎ個の前記書き込み単位領域からなる第２オリジナルブロックと、複数の前記書き込み単位領域からなる第１サブブロックと、複数の前記書き込み単位領域からなる第２サブブロックと、を含む不揮発性半導体メモリと、
第１アドレス乃至第ｐ（ｐはｐ＜ｎを満たす自然数）アドレスのいずれかを付されたデータを前記第１オリジナルブロックに書き込み、第ｐ＋１アドレス乃至第ｍ（ｍはｐ＋２≦ｍ≦ｎを満たす自然数）アドレスのいずれかを付されたデータを前記第２オリジナルブロックに書き込み、前記第１アドレス乃至前記第ｐアドレスのいずれかの第１書き込みアドレスを付されたデータの書き込み要求を受け且つ前記第１書き込みアドレスを付されたデータが前記第１オリジナルブロックに書き込み済みの場合に前記第１書き込みアドレスを付された書き込み要求対象のデータを前記第１サブブロックに書き込み、前記第ｐ＋１アドレス乃至前記第ｍアドレスのいずれかの第２書き込みアドレスを付されたデータの書き込み要求を受け且つ前記第２書き込みアドレスを付されたデータが前記第２オリジナルブロックに書き込み済みの場合に前記第２書き込みアドレスを付された書き込み要求対象のデータを前記第２サブブロックに書き込むコントローラと、
を具備することを特徴とするメモリシステム。
【請求項２】
ｎ個の前記書き込み単位領域からなる第３オリジナルブロックと、ｎ個の前記書き込み単位領域からなる第４オリジナルブロックと、をさらに含み、
前記コントローラが、前記第１サブブロック内の前記第１乃至第ｐアドレスをそれぞれ付された第１データ乃至第ｐデータのそれぞれの最新のものを、前記第３オリジナルブロックに書き込み、
前記コントローラが、前記第２サブブロック内の前記第ｐ＋１乃至第ｍアドレスをそれぞれ付された第ｐ＋１データ乃至第ｎデータのそれぞれの最新のものを、前記第４オリジナルブロックに書き込む、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記第１オリジナルブロック、第２オリジナルブロックに書き込まれるデータが、前記不揮発性半導体メモリに書き込まれる実体的なデータの管理情報を含むことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記コントローラが、
前記第１オリジナルブロックおよび前記第２オリジナルブロックには、前記書き込み要求対象のデータの論理アドレス順に、前記第１オリジナルブロックおよび前記第２オリジナルブロックの低位の前記アドレスの前記書き込み単位領域から高位の前記アドレスの前記書き込み単位領域に向かって前記データを書き込み、
前記第１サブブロックおよび前記第２サブブロックには、前記書き込み要求対象のデータの前記アドレスの順番によらずに、前記第１サブブロックおよび前記第２サブブロックの低位の前記アドレスの前記書き込み単位領域から高位の前記アドレスの前記書き込み単位領域に向かって前記書き込み要求対象のデータを書き込む、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記不揮発性半導体メモリのメモリセルが多ビットを記憶し、
前記コントローラが、前記第１サブブロックおよび前記第２サブブロックを構成する前記メモリセルに、１ビットの情報を書き込む、
ことを特徴とする請求項１に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関し、例えば、カードコントローラによるメモリへの書き込み方法に関する。
【背景技術】
【０００２】
音楽データや映像データの記録メディアとしてフラッシュメモリ等の不揮発性半導体メモリを用いたメモリカードが使われている。メモリカードに使用されるフラッシュメモリの代表例としては、ＮＡＮＤフラッシュTMメモリが挙げられる。
【０００３】
メモリ内のデータの管理は、メモリカードを挿入されるホスト機器中のファイルシステムが、アプリケーション等からの書き込み要求に応じて行う。ファイルシステムは、書き込まれるファイルをクラスタ単位の大きさのデータに分割し、分割された各データに論理アドレスを割り当て、論理アドレス順に、書き込まれていないクラスタにデータを割り当てる。メモリカードは、各データの論理アドレスと、この論理アドレスのデータを書き込む物理アドレスの対応をメモリ上に実現された表等で管理しながら、メモリにデータを書き込む。
【０００４】
このようなファイルシステムを使用した場合、メモリにデータを書き込む際、書き込みデータ以外に、ルートディレクトリエントリの情報やＦＡＴなどの管理データも一緒に更新する必要がある。しかし、ＮＡＮＤフラッシュTMメモリは、１）データの書き込みはページ単位で行われる、２）データの消去はブロックと呼ばれる複数のページをまとめた単位で行われる、３）データの上書きができない、という特徴を有する。このため、ページ単位にデータを更新する場合、消去済みのブロックを用いて、以下の処理が行われる。すなわち、更新されるデータ（新データ）がデータの書き込まれていない新ブロックに書き込まれ、次に、旧データ（新データに書き換えられるデータ）を含んでいる旧ブロックから、更新されない残りのデータが新ブロックにコピーされる。このため、１つのページのデータの更新にかなりの時間がかかる場合がある。
【０００５】
上記のように、管理データの更新は、ファイルの書き込みの度に発生するために、頻繁に行なわれる。このため、フラッシュメモリとＦＡＴファイルシステムが併用されたメモリカードでは、データの書き込み、書き換え速度が低下する場合がある。
【０００６】
書き込み速度の低下を回避するために、ＦＡＴファイルシステム等の管理データに対して、キャッシュブロック（サブブロック）と呼ばれる追記専用のブロックが設けられることがある。キャッシュブロックは、各論理アドレスのデータが本来書き込まれるブロック（オリジナルブロック）に加えて設けられる。あるデータの書き込み要求が来た際、このデータは、オリジナルブロックに書き込まれる。そして、オリジナルブロックに書き込み済みのデータの更新要求が来る度に、このデータはサブブロックに順次書き込まれる。このとき、メモリカードは、ある論理アドレスの最新のデータがサブブロックのどこのページに書き込まれているかを示す対応表を作成しておく。
【０００７】
カードは、所定のタイミングで、オリジナルブロックの再構成を行う。再構成とは、対応表を参照しながら、サブブロック内の各論理アドレスの最新のデータを、オリジナルブロックにまとめる作業である。
【０００８】
しかしながら、オリジナルブロックの再構成の際に以下に示す問題が発生する。例えば、図１６に示すように、ブロックＢ１が、アドレス０乃至アドレス５のデータを記憶するためのオリジナルブロックであったとする。そして、ブロックＢ１が、アドレス０乃至アドレスＡ５の各旧データを格納しており、オリジナルブロックＢ１用のサブブロックＳＢが、アドレス０乃至アドレスＡ５の各最新データを格納している。この状態から、アドレス０乃至アドレス５用のオリジナルブロックを再構成する場合、次の手順が取られる。すなわち、消去済みのブロックＢ２が準備され、サブブロックの第５ページからアドレス０の最新データが読み出され、ブロックＢ２の第１ページに書き込まれる。
【０００９】
次に、サブブロックの第４ページからアドレス１の最新データが読み出され、ブロックＢ２の第２ページに書き込まれる。この作業が繰り返されることにより、図１６に示すように、ブロックＢ２にアドレス０乃至アドレス５の各最新データが書き込まれる。最後に、ブロックＢ２が、アドレス０乃至アドレスＡ５用のオリジナルブロックとして、対応付けされる。
【００１０】
以上のような処理のため、１つのオリジナルブロックに割り当てられたアドレスと同数（図の例では、６）の読み出しおよび書き込み処理が繰り返される。再構成を行っている間、メモリカードはホスト機器にビジー信号を出し続ける。ビジー信号の出ている期間が、ホスト機器に設定されている時間を超えると、ホスト機器はメモリカードが故障していると判断する可能性がある。技術の進歩に伴いページの容量が大きくなると、この問題は、より顕著になる。
【００１１】
この出願の発明に関連する先行技術文献情報としては次のものがある。
【特許文献１】特開2002-280822号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、サブブロック内のデータを再構成する時間の短いメモリカードを提供しようとするものである。
【課題を解決するための手段】
【００１３】
本発明の第１の視点によるメモリシステムは、ｎ（ｎは自然数）個の書き込み単位領域からなる第１オリジナルブロックと、ｎ個の前記書き込み単位領域からなる第２オリジナルブロックと、複数の前記書き込み単位領域からなる第１サブブロックと、複数の前記書き込み単位領域からなる第２サブブロックと、を含む不揮発性半導体メモリと、第１アドレス乃至第ｐ（ｐはｐ＜ｎを満たす自然数）アドレスのいずれかを付されたデータを前記第１オリジナルブロックに書き込み、第ｐ＋１アドレス乃至第ｍ（ｍはｐ＋２≦ｍ≦ｎを満たす自然数）アドレスのいずれかを付されたデータを前記第２オリジナルブロックに書き込み、前記第１アドレス乃至前記第ｐアドレスのいずれかの第１書き込みアドレスを付されたデータの書き込み要求を受け且つ前記第１書き込みアドレスを付されたデータが前記第１オリジナルブロックに書き込み済みの場合に前記第１書き込みアドレスを付された書き込み要求対象のデータを前記第１サブブロックに書き込み、前記第ｐ＋１アドレス乃至前記第ｍアドレスのいずれかの第２書き込みアドレスを付されたデータの書き込み要求を受け且つ前記第２書き込みアドレスを付されたデータが前記第２オリジナルブロックに書き込み済みの場合に前記第２書き込みアドレスを付された書き込み要求対象のデータを前記第２サブブロックに書き込むコントローラと、を具備することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、サブブロック内のデータを再構成する時間の短いメモリカードを提供できる。
【発明を実施するための最良の形態】
【００１５】
以下に本発明の実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１６】
なお、以下、本発明の実施形態に係るメモリシステムの一例としてメモリカードを用いて説明を行う。
【００１７】
図１は、本発明の一実施形態に係るメモリカードの構成を示す概略図である。メモリカード１は、ホスト機器２とバスインタフェース１４を介して情報の授受を行う。メモリカード１は、ＮＡＮＤフラッシュTMメモリ（以下、単にフラッシュメモリと記載する）チップ１１、このフラッシュメモリチップ１１を制御するカードコントローラ１２、および複数の信号ピン（第１ピン乃至第９ピン）１３を備えている。
【００１８】
複数の信号ピン１３は、カードコントローラ１２と電気的に接続されている。複数の信号ピン１３における第１ピン乃至第９ピンに対する信号の割り当ては、例えば図２に示すようになっている。
【００１９】
データ０乃至データ３は、第７ピン、第８ピン、第９ピン、および第１ピンにそれぞれ割り当てられている。第１ピンは、また、カード検出信号に対しても割り当てられている。さらに、第２ピンはコマンドに割り当てられ、第３ピンおよび第６ピンは接地電位Ｖssに、第４ピンは電源電位Ｖddに、第５ピンはクロック信号に割り当てられている。
【００２０】
また、メモリカード１は、ホスト機器２に設けられたスロットに対して挿抜可能なように形成されている。ホスト機器２に設けられたホストコントローラ（図示せず）は、これら第１ピン乃至第９ピンを介してメモリカード１内のカードコントローラ１２と各種信号およびデータを通信する。例えば、メモリカード１にデータが書き込まれる際には、ホストコントローラは、書き込みコマンドを、第２ピンを介してカードコントローラ１２にシリアルな信号として送出する。このとき、カードコントローラ１２は、第５ピンに供給されているクロック信号に応答して、第２ピンに与えられる書き込みコマンドを取り込む。
【００２１】
ここで、前述したように、書き込みコマンドは、第２ピンのみを利用してカードコントローラ１２にシリアルに入力される。コマンドの入力に割り当てられている第２ピンは、図２に示すように、データ３用の第１ピンと接地電位Ｖss用の第３ピンとの間に配置されている。複数の信号ピン１３とそれに対するバスインタフェース１４は、ホスト機器２内のホストコントローラとメモリカード１とが通信するのに使用される。
【００２２】
これに対し、フラッシュメモリ１１とカードコントローラ１２との間の通信は、ＮＡＮＤフラッシュTMメモリ用のインタフェースによって行われる。したがって、ここでは図示しないが、フラッシュメモリ１１とカードコントローラ１２とは８ビットの入出力（Ｉ／Ｏ）線により接続されている。
【００２３】
例えば、カードコントローラ１２がフラッシュメモリ１１にデータを書き込む際には、カードコントローラ１２は、これらＩ／Ｏ線を介してデータ入力コマンド８０Ｈ、カラムアドレス、ページアドレス、データ、およびプログラムコマンド１０Ｈをフラッシュメモリ１１に順次入力する。ここで、コマンド８０Ｈの“Ｈ”は１６進数を示すものであり、実際には“１０００００００”という８ビットの信号が、８ビットのＩ／Ｏ線にパラレルに与えられる。つまり、このＮＡＮＤフラッシュTMメモリ用のインタフェースでは、複数ビットのコマンドがパラレルに与えられる。
【００２４】
また、ＮＡＮＤフラッシュTMメモリ用のインタフェースでは、フラッシュメモリ１１に対するコマンドとデータが同じＩ／Ｏ線を共用して通信されている。このように、ホスト機器２内のホストコントローラとメモリカード１とが通信するインタフェースと、フラッシュメモリ１１とカードコントローラ１２とが通信するインタフェースとは異なる。
【００２５】
図３は、本発明の一実施形態に係るメモリカードのハード構成を示すブロック図である。
【００２６】
ホスト機器２は、バスインタフェース１４を介して接続されるメモリカード１に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。メモリカード１は、ホスト機器２に接続された時に電源供給を受けて動作し、ホスト機器２からのアクセスに応じた処理を行う。
【００２７】
メモリカード１は、前述したように、フラッシュメモリ１１およびカードコントローラ１２を含む。フラッシュメモリ１１は、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が所定サイズ（例えば、２５６ｋＢ）に定められている。また、このフラッシュメモリ１１に対して、ページと称する単位（例えば、２ｋＢ）でデータの書き込みおよび読み出しが行われる。
【００２８】
カードコントローラ１２は、フラッシュメモリ１１内部の物理状態（例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか）を管理する。カードコントローラ１２は、ホストインタフェースモジュール２１、ＭＰＵ（Micro processing unit）２２、フラッシュコントローラ２３、ＲＯＭ（Read-only memory）２４、ＲＡＭ（Random access memory）２５、およびバッファ２６を有する。
【００２９】
ホストインタフェースモジュール２１は、カードコントローラ１２とホスト機器２との間のインタフェース処理を行い、レジスタ部２７を含む。図４に、レジスタ部２７の詳細な構成を示す。レジスタ部２７は、カードステータスレジスタ、およびＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、ＯＣＲの各種レジスタを有する。
【００３０】
これらレジスタは、以下のように定義されている。カードステータスレジスタは、通常動作において使用され、例えば後述するエラー情報が記憶される。ＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、およびＯＣＲは、主にメモリカードの初期化時に使用される。
【００３１】
ＣＩＤ（Card identification number）には、メモリカード１の個体番号が記憶される。ＲＣＡ（Relative card address）には、相対カードアドレス（初期化時にホスト機器が動的に決める）が記憶される。ＤＳＲ（Driver stage register）には、メモリカード１のバス駆動力等が記憶される。
【００３２】
ＣＳＤ（Card specific data）には、メモリカード１の特性パラメータ値が記憶され、第１実施形態の、バージョン情報、性能識別コード、性能パラメータを保持する。
【００３３】
ＳＣＲ（SD configuration data register）には、メモリカード１のデータ配置が記憶される。ＯＣＲ（Operation condition resister）には、動作範囲電圧に制限のあるメモリカードの場合の動作電圧が記憶される。
【００３４】
ＭＰＵ２２は、メモリカード１全体の動作を制御する。ＭＰＵ２２、例えばメモリカード１が電源供給を受けたときに、ＲＯＭ２４に格納されているファームウェア（制御プログラム）をＲＡＭ２５上に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ２５上に作成する。
【００３５】
ＭＰＵ２２は、また、ホスト機器２から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、フラッシュメモリ１１に対して所定の処理を実行したり、バッファ２６を通じたデータ転送処理を制御したりする。
【００３６】
ＲＯＭ２４は、ＭＰＵ２２により制御される制御プログラムなどを格納する。ＲＡＭ２５は、ＭＰＵ２２の作業エリアとして使用され、制御プログラムや各種のテーブル（表）を記憶する。フラッシュコントローラ２３は、カードコントローラ１２とフラッシュメモリ１１との間のインタフェース処理を行う。
【００３７】
バッファ２６は、ホスト機器２から送られてくるデータをフラッシュメモリ１１へ書き込む際に、一定量のデータ（例えば、１ページ分）を一時的に記憶したり、フラッシュメモリ１１から読み出されるデータをホスト機器２へ送り出す際に、一定量のデータを一時的に記憶したりする。
【００３８】
図５は、メモリカード１内のフラッシュメモリ１１におけるデータ配置を示している。フラッシュメモリ１１の各ページは、２１１２Ｂ（５１２Ｂ分のデータ記憶部×４＋１０Ｂ分の冗長部×４＋２４Ｂ分の管理データ記憶部）を有しており、例えば１２８ページ分が１つの消去単位（２５６ｋＢ＋８ｋＢ（ここで、ｋは１０２４））である。なお、以下の説明においては、便宜上、このフラッシュメモリ１１の消去単位を２５６ｋＢとする。
【００３９】
また、フラッシュメモリ１１は、フラッシュメモリ１１へのデータ入出力を行うためのページバッファ１１Ａを備えている。ページバッファ１１Ａの記憶容量は、２１１２Ｂ（２０４８Ｂ＋６４Ｂ）である。データ書き込みなどの際、ページバッファ１１Ａは、フラッシュメモリ１１に対するデータ入出力処理を、自身の記憶容量に相当する１ページ分の単位で実行する。
【００４０】
フラッシュメモリ１１の記憶容量が例えば１Ｇビットである場合、２５６ｋＢブロック（消去単位）の数は、５１２個となる。
【００４１】
また、図５においては消去単位が２５６ｋＢブロックである場合を例示しているが、消去単位が例えば１６ｋＢブロックとなるように構築することも実用上有効である。この場合、各ページは５２８Ｂ（５１２Ｂ分のデータ記憶部＋１６Ｂ分の冗長部）を有しており、３２ページ分が１つの消去単位（１６ｋＢ＋０．５ｋＢ）である。
【００４２】
フラッシュメモリ１１のデータが書き込まれる領域（データ記憶領域）は、図３に示すように、保存されるデータに応じて複数の領域に区分けされている。フラッシュメモリ１１は、データ記憶領域として、管理データ領域３２と、機密データ領域３２と、保護データ領域３３と、ユーザデータ領域３４と、を備えている。
【００４３】
管理データ領域３１は、主にメモリカードに関する管理情報を格納し、すなわち、メモリカード１のセキュリティ情報やメディアＩＤなどのカード情報を格納する。
【００４４】
機密データ領域３２は、暗号化に用いる鍵情報や認証時に使用する機密データを格納し、ホスト機器２からはアクセス不可能な領域である。
【００４５】
保護データ領域３３は、重要なデータを格納し、メモリカード１に接続されたホスト機器２との相互認証によりホスト機器２の正当性が証明された場合にのみアクセスが可能となる領域である。
【００４６】
ユーザデータ領域３４は、ユーザデータを格納し、メモリカード１を使用するユーザが自由にアクセスおよび使用することが可能な領域である。
【００４７】
また、本実施形態では、メモリカード１の動作モードがＳＤ４ｂｉｔモードである場合を例に説明するが、ＳＤ１ｂｉｔモード、ＳＰＩモードである場合にも適用できる。図６に、ＳＤ４ｂｉｔモード、ＳＤ１ｂｉｔモード、およびＳＰＩモードにおける信号ピンに対する信号割り当てを示す。
【００４８】
メモリカード１の動作モードは、ＳＤモードとＳＰＩモードに大別される。ＳＤモードにおいては、メモリカード１はホスト機器２からのバス幅変更コマンドによって、ＳＤ４ｂｉｔモードまたはＳＤ１ｂｉｔモードに設定される。
【００４９】
ここで、４つのデータ０ピン（ＤＡＴ０）乃至データ３ピン（ＤＡＴ３）に着目すると、４ビット幅単位でデータ転送を行うＳＤ４ｂｉｔモードでは、４つのデータ０ピン乃至データ３ピンが全てデータ転送に用いられる。
【００５０】
１ビット幅単位でデータ転送を行うＳＤ１ｂｉｔモードでは、データ０ピン（ＤＡＴ０）のみがデータ転送に使用され、データ１ピン（ＤＡＴ１）、データ２ピン（ＤＡＴ２）は全く使用されない。また、データ３ピン（ＤＡＴ３）は、例えばメモリカード１９からホスト機器２への非同期割り込み等のために使用される。
【００５１】
ＳＰＩモードでは、データ０ピン（ＤＡＴ０）が、メモリカード１からホスト機器２へのデータ信号線（ＤＡＴＡ  ＯＵＴ）に用いられる。コマンドピン（ＣＭＤ）はホスト機器２からメモリカード１９へのデータ信号線（ＤＡＴＡ  ＩＮ）に用いられる。データ１ピン（ＤＡＴ１）、データ２ピン（ＤＡＴ２）は全く使用されない。また、ＳＰＩモードでは、データ３ピン（ＤＡＴ３）は、ホスト機器２からメモリカード１へのチップセレクト信号ＣＳの送信に用いられる。
【００５２】
ホスト機器２は、ファイルシステムを搭載している。ファイルシステムは、メモリに記録されているファイル（データ）を管理する方式であり、メモリに設けられた管理領域や管理情報を示している。また、ファイルシステムには、メモリにおけるファイルやフォルダなどのディレクトリ情報の作成方法、ファイルやフォルダなどの移動方法や削除方法、データの記録方式、管理領域の場所や利用方法などが定められている。
【００５３】
図７は、クラスタサイズが１６ｋバイトのＦＡＴ（File Allocation Table）ファイルシステムの一例を示している。このファイルシステムは、管理領域７０１、複数のクラスタＡ、Ｂ、Ｃ、Ｄ（７０２乃至７０５）…により構成されている。ファイルシステム管理領域７０１は、例えばブート情報を記憶するブート領域７１１、パーティション情報などを記憶する領域７０２、ルートディレクトリエントリの情報を記憶するルートディレクトリエントリ領域７１３、ＦＡＴ１、ＦＡＴ２（７１４、７１５）を有している。
【００５４】
例えばクラスタＡおよびクラスタＣが使用された状態において、ファイル名が「ＡＡＡ．ｔｘｔ」で、ファイルサイズが３２ｋバイトのファイルを記憶装置に書き込むとする。このファイルのサイズは、クラスタサイズより大きいため、ファイルはクラスタ単位のサイズに分割され、記憶装置の空いているクラスタに記憶される。つまり、書き込むべきファイルサイズが３２ｋバイトであるため、２つのクラスタを使用してファイルが書き込まれる。クラスタは連続している必要がないため、例えばクラスタＢとクラスタＤを使用してファイルが記憶される。１つのファイルを構成する各データには、通常、連続する論理アドレスが割り当てられるため、ファイルシステムがアドレスの連続しないクラスタにファイルを構成する各データを割り当てたとしても、各データに割り当てられた論理アドレスは連続している。
【００５５】
書き込むべきファイルがどのクラスタに分割して記憶されたかを管理するための管理データがＦＡＴ１、ＦＡＴ２に記憶される。ＦＡＴ１、ＦＡＴ２には、同一のデータが記憶されており、一方のＦＡＴに欠陥が生じた場合、他方のＦＡＴを用いてデータの修復が可能とされている。ＦＡＴ１、ＦＡＴ２は、ファイルに割り当てられたクラスタの情報を記憶しており、記憶装置中のクラスタのリンクの関係を記憶している。ＦＡＴ１、ＦＡＴ２に記憶された情報をトレースすることにより、元のファイルへと復元することができる。
【００５６】
この場合、分割されたファイルのうち、前半の１６ｋバイトがクラスタＢに記憶され、後半の１６ｋバイトがクラスタＤに記憶されるため、ＦＡＴ１、ＦＡＴ２には、クラスタＢの次にクラスタＤがリンクされることを示す情報が記憶される。２つのクラスタに分割されたファイルを読み出す際、ＦＡＴ１、ＦＡＴ２に記憶されたこれらの情報をチェイン接続することにより、ファイルが元に復元される。
【００５７】
ルートディレクトリエントリ領域７１３は、ファイル名又はフォルダ名、ファイルサイズ、属性及びファイルの更新日時などとともに、ＦＡＴ１、ＦＡＴ２に示されたどのクラスタがファイルの先頭クラスタであるかを示すフラグを記憶する。この例の場合、ルートディレクトリエントリ領域７１３に記憶される情報は、ファイル名が「ＡＡＡ．ｔｘｔ」、ファイルサイズが３２ｋバイト、先頭クラスタがクラスタＢである。
【００５８】
図８は、ＦＡＴ１、ＦＡＴ２、ルートディレクトリエントリ内のデータの一例を示している。図８に示すように、ルートディレクトリ領域には、ファイルエントリとして各ファイル「ＦＩＬＥ１．ｔｘｔ」、「ＦＩＬＥ２．ｔｘｔ」、「ＦＩＬＥ３．ｔｘｔ」、の先頭のクラスタの位置情報が示されている。「ＦＩＬＥ１．ｔｘｔ」、「ＦＩＬＥ２．ｔｘｔ」、「ＦＩＬＥ３．ｔｘｔ」、の各先頭クラスタは、クラスタ０００２、０００５、０００７である。
【００５９】
また、ＦＡＴ（ＦＡＴ１、ＦＡＴ２）には、各クラスタの次に接続されるべきクラスタの番号が記載されている。例えば、「ＦＩＬＥ１．ｔｘｔ」の場合、先頭のクラスタ０００２のデータに続くデータを格納するクラスタはクラスタ０００３で、クラスタ０００３のデータに続くデータを格納するクラスタはクラスタ０００４であることが分かる。そしてクラスタ０００２、０００３、０００４のデータを接続することにより、「ＦＩＬＥ１．ｔｘｔ」のファイルが復元される。
【００６０】
図９は、本発明の一実施形態に係るメモリカードのメモリの構成を示している。図９に示すように、ユーザデータ領域は、通常のデータ記憶用のオリジナルブロックと、サブブロック（キャッシュブロック）ＳＢとを含んでいる。各ブロックＯＢ、ＳＢは、フラッシュＯＢメモリの消去単位に対応する。各オリジナルブロックＯＢには、所定の範囲に亘って連続する論理アドレスのデータが、論理アドレス順に書き込まれることになっている。これは、連続して読み出されるであろうデータを、１つのブロックにまとめておくことによって、読み出しを効率的に行うことを可能にするためである。各オリジナルブロックＯＢはページＯＰを有し、各サブブロックＳＢはページＳＰを有する。
【００６１】
一般に、オリジナルブロックＯＢには、論理アドレス順に、オリジナルブロックＯＢ内の低位の物理アドレスのページから高位の物理アドレスのページＯＰに向かってデータが書き込まれている。
【００６２】
オリジナルブロックＯＢは、データ用オリジナルブロックＯＢＤ１乃至ＯＢＤｎと管理データ用オリジナルブロックＯＢＭ１乃至ＯＢＭｎとを含んでいる。データ用オリジナルブロックＯＢＤ１乃至ＯＢＤｎは、ファイルを構成する実データ（以下、単にデータと称する）を格納し、管理データ用オリジナルブロックＯＢＭ１乃至ＯＢＭｎは、ＦＡＴ等の管理データを格納する。
【００６３】
データ用オリジナルブロックＯＢＤ１乃至ＯＢＤｎには、このオリジナルブロックＯＢＤ１乃至ＯＢＤｎが有するページ数と同数のデータまたは管理データが書き込まれるようになっている。例えば１つのブロックが１２８個のページから構成されている場合、データ用オリジナルブロックには、最大で、アドレスが連続する１２８個のデータが書き込まれる。
【００６４】
一方、管理データ用オリジナルブロックＯＢＭ１乃至ＯＢＭｎは、このオリジナルブロックＯＢＭ１乃至ＯＢＭｎが有するページ数より少ない数の管理データが書き込まれるようになっている。そして、幾つかの管理データ用オリジナルブロックＯＢＭによって、ｎ（ｎは、１つのブロックが含むページの数、例えば１２８）個のアドレスのデータが記憶される。例えば、１つの管理データ用オリジナルブロックＯＢＭのページ数が１２８であるとすると、１２８のうちの幾つかのアドレスのデータが、１つの管理データ用オリジナルブロックＯＢＭに格納され、１２８のうちの残りのアドレスのデータが、他の管理データ用オリジナルブロックＯＢＭに格納される。
【００６５】
例えば、２つの管理データ用オリジナルブロックＯＢＭで、管理用データを記憶するとすると、管理用データの各論理アドレスＡ0乃至Ａnのうち、論理アドレスＡ0乃至Ａpのデータが、第１の管理用データオリジナルブロックに格納される。ここで、ｐはｎ未満の自然数である。また、論理アドレスＡp+1乃至Ａnのデータが、第２の管理用データオリジナルブロックに格納される。最も典型的な例として、各管理データ用オリジナルブロックは、このオリジナルブロックが有するページ数の半分のアドレスのデータを格納する。このため、各管理データ用オリジナルブロックには、未使用ページが存在する。以下、同じ管理データ用オリジナルブロックに属するべき複数の論理アドレスをグループと称する。
【００６６】
同様に、３つの管理データ用オリジナルブロックＯＢＭで、管理用データを記憶するとすると、管理用データの各論理アドレスＡ0乃至Ａnのうち、論理アドレスＡ0乃至Ａpのデータが、第１の管理用データオリジナルブロックに割り当てられる。第２の管理用データオリジナルブロックは、論理アドレスＡp+1乃至Ａqのデータ（ｑは、ｐ＋２以上ｎ未満の自然数）を記憶し、第３の管理用データオリジナルブロックは、論理アドレスＡq+1乃至Ａnのデータを記憶する。４つ以上の管理データ用オリジナルブロックＯＢＭを用いる場合も同様である。
【００６７】
また、管理データ用オリジナルブロックＯＢＭ１乃至ＯＢＭｎごとに、サブブロック（キャッシュブロック）ＳＢ１乃至ＳＢｎが設けられる。各サブブロックＳＢには、各サブブロックＳＢが対応する管理データ用オリジナルブロックＯＢＭに書き込まれるべきデータが、論理アドレスの順番によらずに、低位の物理アドレスのページから高位の物理アドレスのページに向かって順次追記される。
【００６８】
次に、上記構成のメモリカードへの書き込み方法について図１０乃至図１３を参照して説明する。図１０、図１１、図１２は、本発明の一実施形態に係るメモリカードへの書き込み方法を説明するための図である。図１３は、本発明の一実施形態に係るメモリカードへの書き込み動作を示すフローチャートであり、１回の書き込み要求に対する動作を示している。
【００６９】
カードコントローラ１２は、以下に示す方法に従って、フラッシュメモリ１１にデータを書き込む。すなわち、カードコントローラ１２は、ホスト機器２からの書き込み要求があったデータの論理アドレスと、この論理アドレスのデータを書き込む物理アドレスの対応を例えばＲＡＭ上に実現された対応表等で管理しながら、後述の方法に従ってフラッシュメモリ１１にデータを書き込む。
【００７０】
図１０の例では、説明の簡略化のために各オリジナルブロックＯＢが６個のページからなり、各管理データ用オリジナルブロックＯＢＭが、６個の半分の３個のアドレスのデータを記憶するように、カードコントローラ１１が動作するものとする。
【００７１】
まず、アドレスＡ0、Ａ1、Ａ2の管理データは、１回目の書き込み要求の際、アドレスＡ0、Ａ1、Ａ2の管理データを格納すべく設定された管理データ用オリジナルブロックＯＢＭ１のページＯＰ１１、ＯＰ１２、ＯＰ１３に順次書き込まれる。すなわち、アドレスＡ0、Ａ1、Ａ2の管理データが書き込まれた管理データ用オリジナルブロックが存在するか否かが判定される（ステップＳ１）。このような管理データオリジナルブロックが存在しない場合、書き込み要求対象の管理データ（書き込みデータ）のアドレスが判定される（ステップＳ２）。アドレスがＡ0、Ａ1、Ａ2のいずれかの場合、処理はステップＳ３に移行する。
【００７２】
ステップＳ３において、アドレスＡ0の管理データが、消去済みのブロックＯＢＭ１に書き込まれる。そして、管理データ用オリジナルブロックＯＢＭ１を、アドレスＡ0、Ａ1、Ａ2の管理データを格納するためのブロックとして用いて、以降、アドレスＡ0と同じグループに属するアドレスＡ1、Ａ2の１回目の書き込み要求時の管理データは、オリジナルブロックＯＢＭ１に書き込まれる。すなわち、ステップＳ１で偽と判定され、ステップＳ２で真と判定された場合、書き込みデータは、管理データ用オリジナルブロックＯＢＭ１に書き込まれる。なお、ページＯＰ１４、ＯＰ１５、ＯＰ１６は使用されない。
【００７３】
一方、アドレスＡ3、Ａ4、Ａ5の管理データは、１回目の書き込み要求の際、アドレスＡ3、Ａ4、Ａ5の管理データを格納すべく設定された管理データ用オリジナルブロックＯＢＭ２のページＯＰ２１、ＯＰ２２、ＯＰ２３に順次書き込まれる。すなわち、ステップＳ１、ステップＳ２において順次、偽と判定された場合、処理はステップＳ４に移行する。
【００７４】
ステップＳ４において、アドレスＡ3の管理データが、消去済みのブロックＯＢＭ２に書き込まれる。そして、管理データ用オリジナルブロックＯＢＭ２を、アドレスＡ3、Ａ4、Ａ5の管理データを格納するためのブロックとして用いて、以降、アドレスＡ3と同じグループに属するアドレスＡ4、Ａ5の１回目の書き込み要求時の管理データは、オリジナルブロックＯＢＭ２に書き込まれる。すなわち、ステップＳ１、ステップＳ２で順次、偽と判定された場合、書き込みデータは、管理データ用オリジナルブロックＯＢＭ２に書き込まれる。なお、ページＯＰ２４、ＯＰ２５、ＯＰ２６は使用されない。
【００７５】
管理データ用オリジナルブロックＯＢＭ１に書き込まれている、論理アドレスＡ0、Ａ1、Ａ2のいずれかの管理データの更新要求が来た場合、図１１に示すように、この管理データは、論理アドレスの順番によらずに、サブブロックＳＢ１に書き込まれる。すなわち、ステップＳ１で真と判定された場合、処理は、ステップＳ５に移行する。ステップＳ５において、書き込みデータのアドレスが判定される。アドレスがＡ0、Ａ1、Ａ2のいずれかの場合、書き込みデータは、サブブロックＳＢ１のページＳＰ１１からＳＰ１６に向かって、書き込み要求の来た順に書き込まれる（ステップＳ６）。
【００７６】
同様に、管理データ用オリジナルブロックＯＢＭ２に書き込まれている、論理アドレスＡ3、Ａ4、Ａ5のいずれかの管理データの更新要求が来た場合、この管理データは、論理アドレスの順番によらずに、サブブロックＳＢ２に書き込まれる。すなわち、ステップＳ１で真と判定され、ステップＳ５において偽と判定された場合、書き込みデータは、サブブロックＳＢ２のページＳＰ２１からＳＰ２６に向かって、書き込み要求の来た順に順次書き込まれる（ステップＳ７）。
【００７７】
次に、図１２に示すように、サブブロックＳＢ１が満杯になった際等の所定のタイミングで、サブブロックＳＢ１内の各論理アドレスの最新の管理データを用いて、アドレスＡ0、Ａ1、Ａ2の管理データ用の管理用データオリジナルブロックの再構成が行なわれる（ステップＳ８）。すなわち、消去済みの管理データ用オリジナルブロックＯＢＭ３が準備され、この管理データ用オリジナルブロックＯＢＭ３に、論理アドレスＡ0、Ａ1、Ａ2の最新の管理データが、論理アドレス順になるように、すなわち、ページＯＰ３１、ＯＰ３２、ＯＰ３３にそれぞれ順にコピーされる。
【００７８】
そして、論理アドレスＡ0、Ａ1、Ａ2と、これらの管理データを格納する、管理データ用ブロックＯＢＭ３の各ページＯＰ３１、ＯＰ３２、ＯＰ３３とがそれぞれ対応するように対応表が書き換えられる。管理データ用ブロックＯＢＭ１内のデータは、その後、所定のタイミングで消去される。
【００７９】
１回のオリジナルブロックの再構成に必要な、データの読み出しおよび書き込みのサイクルは、１つのオリジナルブロックが格納すべきとして割り当てられたアドレスの数と一致する。本実施形態によれば、ｎ個のページを含む管理データ用オリジナルブロックＯＢＭに割り当てられるアドレスの数は、ｎ未満である。このため、管理データ用オリジナルブロックＯＢＭを１つ再構成する際の読み出しおよび書き込みのサイクルは、ｎ未満である。
【００８０】
サブブロックＳＢ２に関しても同様の処理が行なわれる。すなわち、消去済みの管理データ用オリジナルブロックＯＢＭ４が準備され、この管理データ用オリジナルブロックＯＢＭ４に、論理アドレスＡ3、Ａ4、Ａ5の最新の管理データが、ページＯＰ４１、ＯＰ４２、ＯＰ４３にそれぞれ順にコピーされる。そして、論理アドレスＡ3、Ａ4、Ａ5と、これらの管理データを格納する、管理データ用ブロックＯＢＭ４の各ページＯＰ４１、ＯＰ４２、ＯＰ４３とがそれぞれ対応するように対応表が書き換えられる。
【００８１】
フラッシュメモリ１１のメモリセルが多値（多ビット、例えば２ビット）の情報を記録できる場合、以下の手法を取ることが可能である。すなわち、管理データ用オリジナルブロックＯＢＭのメモリセルには、多値で情報が書き込まれ、サブブロックＳＢには、２値モードと呼ばれる方法で情報が書き込まれる。以下、このことについて、図１４、図１５を参照して説明する。図１４は、２値メモリと多値メモリの記憶状態を概略的に示す図である。図１５は、多値メモリの２値モードで記憶状態を概略的に示す図である。
【００８２】
ＮＡＮＤ型フラッシュメモリは、２値メモリと、多値メモリとに区別することができる。図１４（ａ）に示すように、２値メモリでは、１つのメモリセルＭＣが、論理“０”または論理“１”の１ビットのデータのみ記憶する。これに対して、図１４（ｂ）に示すように、多値メモリでは、１つのメモリセルＭＣが、例えば２ビットのデータを記憶できる。
【００８３】
例えば、「０１１０１１１１」なる８ビットのデータの書き込み要求が来た場合、２値メモリの場合、例えば物理アドレスの連続する８個のメモリセルＭＣのそれぞれが、８ビットのデータの１ビットの記憶を受け持つ。そして、この８個のビットの塊に１つのページアドレスが割り当てられる。
【００８４】
一方、多値メモリの場合は、例えばメモリセルのそれぞれが、２ビットのデータの記憶を受け持つ。そして、各２ビットのデータには相互に異なるページアドレスが割り当てられる。例えば、各メモリセルＭＣの上位ビットの塊に対して１つのページアドレスが割り当てられ、下位ビットの塊に対して１つのページアドレスが割り当てられる。上位ビット群に割り当てられたページは、例えば、アッパーページ（upper page）と呼ばれ、下位ビット群に割り当てられたページは、例えば、ロアーページ（lower page）と呼ばれる。
【００８５】
多値メモリの１つのメモリセルＭＣに２ビットのデータが書き込まれる場合、２回の書き込みが行なわれる。すなわち、ロアーページアドレスに対するデータの書き込みと、アッパーページアドレスに対するデータの書き込みが行なわる。
【００８６】
現在の多値メモリの書き込み規則として、ロアーページを書き込んだ後に、アッパーページを書き込むことは可能で、アッパーページを書き込んだ後にロアーページを書き込むことは禁止されていることがある。この規則に従った場合、ロアーページの書き込み時に、何らかの異常事態（電源の瞬断など）が発生し、メモリセルＭＣの記憶状態が破壊された場合、アッパーページのデータは書き込まれていないので、破壊されるデータはロアーページに書き込まれるべきデータのみである。
【００８７】
しかしながら、アッパーページの書き込みに失敗し、メモリセルの記憶状態を破壊した場合、既書き込みのロアーページのデータも一緒に破壊されてしまう。破壊されたデータは、一般にフラッシュメモリ１１内には残っておらず、残っているとしてもホスト機器２内のみである。したがって、ホスト機器２からデータを再送することを除けば（好ましい処理ではない）、フラッシュメモリ１１内では完全にデータが失われてしまう。
【００８８】
上記のように、ＦＡＴなどの管理データは、クラスタ単位に分割されたデータを元のファイルへと復元するために必要なデータである。このため、管理データが破壊されると、元のファイルを復元することができなくなってしまう。
【００８９】
そこで、管理データがサブブロックＳＢに書き込まれる際は、多値のメモリセルが２値のメモリセルとして使用される。こうすることにより、多値のデータが書き込まれる場合よりメモリセル当たりの記憶容量は低下するが、アッパーページに書き込まれる際に、既書き込みのロアーページの管理データが破壊されることが防止される。この書き込み方法は、例えば「２値モード」等と呼ばれる。
【００９０】
多値メモリセルを２値メモリセルとして使用する方法は、例えば、図１５にも示すように、以下の２通りが考えられる。１つは、アッパーページおよびロアーページのうち一方にのみデータが書き込まれる（図１５（ａ））。もう１つは、アッパーページとロアーページとの両方に、同一のデータが書き込まれる（図１５（ｂ））。このように２通りの方法があるが、いずれの方法によっても、１つのメモリセルに１ページ分のデータ（１ビット分のデータ）しか書き込まれない。このため、データの書き込みに失敗した場合に、既書き込みのデータまでもが破壊されることが防止される。
【００９１】
なお、管理データ用オリジナルブロックＯＢのメモリセルには、データ用オリジナルブロックＯＢＤと同様、多値のデータが記憶され（多値モードで書き込まれる）、２値モードで書き込まれない。この理由について説明する。すなわち、管理データ用オリジナルブロックＯＢのメモリセルＭＣには、多値モードで書き込まれるため、再構成の場合等にアッパーページのデータの書き込みに失敗したことによって、ロアーページのデータが破壊される可能性がある。しかしながら、その場合でも、破壊された管理データ用オリジナルブロックＯＢのロアーページのデータは、サブブロックＳＢに記憶されている。このため、管理データ用オリジナルブロックＯＢの場合、アッパーページの書き込みに失敗しても、管理データが完全に失われることはない。
【００９２】
本発明の一実施形態に係るメモリカードによれば、管理データを格納する管理データ用オリジナルブロックが、ブロックが含むページ数ｎより少ない数のアドレスのデータを格納し、ｎ個のアドレス分の管理データが複数の管理データ用オリジナルブロックに割り振られる。このため、管理データ用オリジナルブロックＯＢＭを１つ再構成する際の読み出しおよび書き込みのサイクルはｎ未満である。
【００９３】
サブブロック内の各アドレスの最新の管理データの全てを、いずれかの管理データ用オリジナルブロックＯＢＭへとコピーするのに要する時間の総計は、１つの管理データ用オリジナルブロックに割り当てられたアドレスの数によらず一定である。しかしながら、少なくとも、本実施形態によれば、１回の再構成に要する時間は、各管理データ用オリジナルブロックに管理データ用オリジナルブロックが含むページ数と同数のアドレスが割り当てられた場合より少ない。このため、再構成の際にビジー信号の持続時間が規定の時間を超えることを回避できる。
【００９４】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施形態のメモリカードの構成を示す概略図。
【図２】本発明の実施形態のメモリカードにおける信号ピンに対する信号割り当てを示す図。
【図３】本発明の実施形態のメモリカードのハード構成を示すブロック図。
【図４】本発明の実施形態のメモリカードにおけるレジスタ部の詳細な構成を示す図。
【図５】本発明の実施形態のメモリカード内のフラッシュメモリにおけるメモリセルとバッファの構造を示す図。
【図６】各動作モードにおけるＳＤバス信号ピンに対する信号割り当てを示す図。
【図７】ＦＡＴファイルシステムを示す構成図。
【図８】ＦＡＴ、ルートディレクトリエントリ内のデータの一例を示す図。
【図９】本発明の実施形態のメモリカードのメモリの構成を示す図。
【図１０】本発明の実施形態のメモリカードへの書き込み方法を説明するための図。
【図１１】本発明の実施形態のメモリカードへの書き込み方法を説明するための図。
【図１２】本発明の実施形態のメモリカードへの書き込み方法を説明するための図。
【図１３】本発明の実施形態のメモリカードへの書き込み動作を示すフローチャート。
【図１４】２値メモリと多値メモリの記憶状態を概略的に示す図。
【図１５】多値メモリの２値モードで記憶状態を概略的に示す図。
【図１６】従来のメモリカードへの書き込み方法を説明するための図。
【符号の説明】
【００９６】
１…メモリカード、２…ホスト機器、１１…フラッシュメモリ、１２…カードコントローラ、１３…信号ピン、ＯＢＤ１乃至ＯＢＤｎ…データ用オリジナルブロック、ＯＢＭ１乃至ＯＢＭｎ…管理データ用オリジナルブロック、ＳＢ１乃至ＳＢｎ…サブブロック、ＯＰ、ＳＰ…ページ。
【図１】
0004751163.tif 000002
【図２】
0004751163.tif 000003
【図３】
0004751163.tif 000004
【図４】
0004751163.tif 000005
【図５】
0004751163.tif 000006
【図６】
0004751163.tif 000007
【図７】
0004751163.tif 000008
【図８】
0004751163.tif 000009
【図９】
0004751163.tif 000010
【図１０】
0004751163.tif 000011
【図１１】
0004751163.tif 000012
【図１２】
0004751163.tif 000013
【図１３】
0004751163.tif 000014
【図１４】
0004751163.tif 000015
【図１５】
0004751163.tif 000016
【図１６】
0004751163.tif 000017