(57)【要約】【課題】書き込み時間の算出を容易にするメモリデバイスを提供する。【解決手段】メモリデバイスは、複数の記憶領域ＲＵを有するメモリ２１を有する。コントローラ２２は、書き込みデータを受け取ると、書き込みデータの論理アドレスと書き込みデータを記憶する記憶領域との対応を管理しながら書き込みデータを記憶領域に書き込み、不特定の大きさの書き込みデータを論理アドレス順番の制限なしに記憶領域に書き込むことが可能で且つ複数の連続する記憶領域からなる管理単位記憶領域ＡＵの中の書き込み対象でなかったデータを保持する第１モードを有し、特定の大きさの複数の書き込みデータを各々の論理アドレスの大きくなる順に記憶領域に書き込み且つ管理単位記憶領域の中の書き込まれなかったデータを無効なデータとして取り扱う第２モードを有する。【選択図】      図５
2010140268.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶領域を有するメモリと、
書き込みデータを受け取ると、前記書き込みデータの論理アドレスと前記書き込みデータを記憶する前記記憶領域との対応を管理しながら前記書き込みデータを前記記憶領域に書き込み、不特定の大きさの書き込みデータを論理アドレス順番の制限なしに前記記憶領域に書き込むことが可能で且つ複数の連続する前記記憶領域からなる管理単位記憶領域の中の書き込み対象でなかったデータを保持する第１モードを有し、特定の大きさの複数の書き込みデータを各々の論理アドレスの大きくなる順に前記記憶領域に書き込み且つ前記管理単位記憶領域の中の書き込まれなかったデータを無効なデータとして取り扱う第２モードを有するコントローラと、
を具備することを特徴とするメモリデバイス。
【請求項２】
前記コントローラが、前記記憶領域に対する書き込み速度に関する情報を保持するレジスタを具備することを特徴とする、請求項１のメモリデバイス。
【請求項３】
前記コントローラが、前記第２モードへの移行を指示するコマンドを受け取ると前記第２モードに移行し、前記第１モードへの移行を指示するコマンドを受け取ると前記第１モードに移行することを特徴とする、請求項１のメモリデバイス。
【請求項４】
前記コントローラが、前記第２モードにおいて複数の連続する論理アドレスを割り当てられた書き込みデータの書き込み要求を受けたとき、前記書き込みデータの前記論理アドレスが属する論理アドレス領域に対応して一時的に用意された作業領域に前記書き込みデータを書き込み、
前記作業領域の中の最後の前記記憶領域への書き込みが完了するか、第１コマンドを受け取ると、その引数により未書き込み領域に対して前記書き込みデータの書き込み要求前の旧データのコピーを行うか行わないかを判断し、前記作業領域に論理アドレスを割り当てるとともに前記書き込みデータの前記書き込み要求前の旧データを記憶していた前記管理単位記憶領域を破棄する、
ことを特徴とする請求項３のメモリデバイス。
【請求項５】
前記コントローラが、
相互に所定の関連を有する、ある管理単位領域に属する論理アドレスを割り当てられている複数の第１書き込みデータを前記作業領域に書き込み、
相互に所定の関連を有し且つ前記第１書き込みデータの論理アドレスとは別な管理単位領域に属する論理アドレスを割り当てられている第２書き込みデータを前記作業領域とは別の作業領域に書き込む、
ことを特徴とする、請求項４のメモリデバイス。
【請求項６】
前記コントローラが、前記作業領域が複数あるときに前記第１コマンドを受け取ると、複数の前記作業領域の全てまたは指定されたものの各々について、前記旧データを保持していた前記管理単位記憶領域に割り当てられていた論理アドレスを前記作業領域に割り当てるとともに前記書き込みデータの前記旧データを記憶していた前記管理単位記憶領域を破棄することを特徴とする請求項４のメモリデバイス。
【請求項７】
複数の記憶領域を有するメモリと、
書き込みデータを受け取ると、前記書き込みデータの論理アドレスと前記書き込みデータを記憶する前記記憶領域との対応を管理しながら前記書き込みデータを前記記憶領域に書き込み、複数の連続する前記論理アドレスから構成される論理アドレス領域を認識し、第１コマンドを受け取るとリアルタイム書き込み可能状態に移行するコントローラと、
を具備し、
前記リアルタイム書き込み可能状態の前記コントローラは、書き込み要求を受けると、前記書き込みデータの前記論理アドレスが属する管理単位記憶領域に対応して一時的に用意された作業領域に、複数の書き込みデータを各々の論理アドレスの大きくなる順に前記作業領域中の前記記憶領域に書き込み、前記作業領域中の最後の前記記憶領域への書き込みが完了するか、第２コマンドを受け取ると前記作業領域に論理アドレスに割り当てる、ことを特徴とするメモリデバイス。
【請求項８】
第１モードにおいて１つの前記作業領域を持ち、第２モードにおいて複数の前記作業領域を持つことにより複数のストリームの書き込みを可能にした請求項７のメモリデバイス。
【請求項９】
前記コントローラが、１つの前記管理単位記憶領域に属する前記論理アドレスで書き込み位置を指定される書き込みデータを、前記管理単位記憶領域内の複数の連続する前記記憶領域に書き込み、
前記コントローラが、一連の最後のデータの書き込み後に、
引数によって前記書き込みデータの前記書き込み要求前の旧データの保持を指示する前記第２コマンドを受取ると、前記作業領域の中で最後に書き込まれた前記記憶領域より大きなアドレスの前記記憶領域に前記書き込みデータの前記書き込み要求前の旧データを保持していた前記管理単位記憶領域内のデータをコピーしてから前記作業領域に論理アドレスを割り当て、
引数によって前記書き込みデータの前記書き込み要求前の旧データの破棄を指示する前記第２コマンドを受取ると、前記作業領域の中で最後に書き込まれた前記記憶領域より大きなアドレスの前記記憶領域に前記旧データを保持していた前記管理単位記憶領域内のデータをコピーせずに前記作業領域に論理アドレスを割り当てる、
ことを特徴とする請求項８のメモリデバイス。
【請求項１０】
前記作業領域が複数あるときに引数によって区別される前記第２コマンドを受け取ると、複数の前記作業領域の各々について、前記書き込みデータの書き込み要求前の旧データを未書き込みの前記記憶領域にコピーせずに前記旧データを保持していた前記管理単位記憶領域に割り当てられていた論理アドレスを前記作業領域に割り当てるとともに前記書き込みデータの前記書き込み要求前の旧データを記憶していた前記管理単位記憶領域を破棄する、ことを特徴とする請求項８のメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデバイス、特に不揮発性半導体メモリを用いたメモリデバイスに関する。
【背景技術】
【０００２】
現在、音楽データや映像データの記録メディアとして、フラッシュメモリ等の不揮発性半導体メモリを用いた、メモリカードに代表されるメモリデバイスが使われている。メモリデバイスは、多くの場合、メモリを制御するためのコントローラを内蔵している。コントローラは、このようなメモリデバイスを挿入されるホストのファイルシステムから依頼された、論理アドレスを割り当てられた書き込みデータを、フラッシュメモリの未書き込みの記憶領域に書き込む指示を出す。また、コントローラは、ファイルシステムによってデータに割り当てられた論理アドレスと、このデータを保存している、フラッシュメモリの記憶領域の位置との関係を管理しておく。
【０００３】
メモリデバイスに使用されるフラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。ＮＡＮＤ型フラッシュメモリでは、複数のビットからなるページと呼ばれる単位で書き込みが行われる。そして、複数のページからなるブロックと呼ばれる単位でしか消去を行えない。
【０００４】
ユーザがホスト装置を通じてメモリデバイスの性能を知ることが求められることがある。そのような性能には、メモリデバイスの記録速度、記録に要する時間、記録可能時間などが含まれる。これらの性能を予測するための技術が、特開２００６−１７８９２３（特許文献１）に記載されている。この技術は、以下の手法を用いている。
【０００５】
上記のように、複数のページからなるブロックと呼ばれる単位でしか消去を行えない。つまり、ＮＡＮＤ型フラッシュメモリは、データを上書きすることができない。メモリ内のあるデータを更新するには、新たなブロックを用意し、その中に更新されないデータをコピーすると共に、更新されるデータを書き込む必要がある。このため、フラッシュメモリでは、何も書き込まれていない連続するページへの書き込みは速いが、書き込み済みのページと未書き込みのページが混在して連なっているブロックへの書き込みは遅い。つまり、ブロック内の書き込みページの分布（フラグメンテーション）に応じて、データの書き込み速度が異なる。これを利用して、各ブロックの書き込み速度を求めたり、ホスト装置に搭載されていてメモリデバイスにデータを記憶しようとしているアプリケーションが要求する書き込み速度を満たすブロックの数からメモリデバイスの記録可能時間を求めたりしている。しかしながら、フラグメンテーションを用いたこのような手法は、性能の算出が複雑であり、実行するのに長時間を要する。このため、より簡便に性能予測を行なうことを可能にするメモリデバイスが求められている。
【０００６】
また、メモリの容量増大や、メモリデバイスの性能向上や、ユーザが記録することを望むコンテンツの多様化によって、ユーザのメモリデバイスの使用形態が多様化している。例えば、２つのテレビ番組のような２つの動画を平行して録画することや、動画を撮影している最中に静止画を撮影することといった要望が出現している。ところが、現在のフラッシュメモリではデータの上書きができないため、上記のデータのコピーが必要になる場合がある。データのコピーは長時間を要するので、データのコピーを伴う書き込みは速度が遅い。このため、上記の要望に答えて複数のファイルデータ、特に複数のファイルデータを平行してリアルタイムでメモリデバイスに書き込むことができない。
【特許文献１】特開２００６−１７８９２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、ある一定の書き込み性能を持つメモリデバイスを提供することにより複数ストリームのリアルタイム記録を可能にし、書き込み時間の算出を容易にするメモリデバイスを提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明の一態様によるメモリデバイスは、複数の記憶領域を有するメモリと、書き込みデータを受け取ると、前記書き込みデータの論理アドレスと前記書き込みデータを記憶する前記記憶領域との対応を管理しながら前記書き込みデータを前記記憶領域に書き込み、不特定の大きさの書き込みデータを論理アドレス順番の制限なしに前記記憶領域に書き込むことが可能で且つ複数の連続する前記記憶領域からなる管理単位記憶領域の中の書き込み対象でなかったデータを保持する第１モードを有し、特定の大きさの複数の書き込みデータを各々の論理アドレスの大きくなる順に前記記憶領域に書き込み且つ前記管理単位記憶領域の中の書き込まれなかったデータを無効なデータとして取り扱う第２モードを有するコントローラと、を具備することを特徴とする。
【０００９】
本発明の一態様によるメモリデバイスは、複数の記憶領域を有するメモリと、書き込みデータを受け取ると、前記書き込みデータの論理アドレスと前記書き込みデータを記憶する前記記憶領域との対応を管理しながら前記書き込みデータを前記記憶領域に書き込み、複数の連続する前記論理アドレスから構成される論理アドレス領域を認識し、第１コマンドを受け取るとリアルタイム書き込み可能状態に移行するコントローラと、を具備し、前記リアルタイム書き込み可能状態の前記コントローラは、書き込み要求を受けると、前記書き込みデータの前記論理アドレスが属する管理単位記憶領域に対応して一時的に用意された作業領域に、複数の書き込みデータを各々の論理アドレスの大きくなる順に前記作業領域中の前記記憶領域に書き込み、前記作業領域中の最後の前記記憶領域への書き込みが完了するか、第２コマンドを受け取ると前記作業領域に論理アドレスに割り当てる、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、書き込み時間の算出を容易にするメモリデバイスを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下に本発明の実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。ただし、図面は模式的なものであることに留意されたい。
【００１２】
なお、以下、本発明の実施形態に係るメモリデバイスの一例としてメモリカード、特にＳＤカードを用いて説明を行う。しかしながら、以下に説明するようなメモリと、このメモリを制御するコントローラを有するあらゆるメモリデバイスが本発明の範疇に含まれる。
【００１３】
（第１実施形態）
［１］構成
図１乃至図４を参照して、本発明の第１実施形態に係るメモリカードの構成について説明する。図１は、本発明の第１実施形態に係るメモリカードの主要な機能ブロックを示している。図１には、このメモリカードと接続されるホスト装置の機能ブロックも示されている。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
【００１４】
ホスト装置（以下、ホストと称する）１は、アプリケーション、オペレーティング・システム等のソフトウェア１１を備えている。ソフトウェア１１は、ユーザから、メモリカード２へのデータの書き込み、メモリカード２からのデータの読み出しを指示される。ソフトウェア１１は、データの書き込みおよび読み出しをファイルシステム１２に指示する。ファイルシステム１２は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
【００１５】
ホスト１は、ＳＤインターフェース１３を有する。ＳＤインターフェース１３は、ホスト１とメモリカード２との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト１は、ＳＤインターフェース１３を介してメモリカード２と通信を行う。ＳＤインターフェース１３は、ホスト１とメモリカード２とが通信するのに必要な様々な取り決めを規定し、後述のメモリカード２のＳＤインターフェース３１と相互に認識可能な各種のコマンドの組を備えている。また、ＳＤインターフェース１３は、メモリカード２のＳＤインターフェース３１と接続可能なハードウェア上の構成（ピンの配置、数等）も含む。
【００１６】
メモリカード２は、ＮＡＮＤ型フラッシュメモリ２１、メモリ２１を制御するためのコントローラ２２を有する。メモリカード２は、ホスト１に接続されたとき、およびオフ状態のホスト１に挿入された状態でホスト１がオンされたときに電源供給を受けて初期化動作を行った後、ホスト１からのアクセスに応じた処理を行う。
【００１７】
メモリ２１は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ２１は、複数のページからなる物理ブロック（消去ブロック）と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【００１８】
コントローラ２２は、メモリ２１によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。
【００１９】
コントローラ２２は、ＳＤインターフェース３１、ＭＰＵ（micro processing unit）３２、ＲＯＭ（read only memory）３３、ＲＡＭ（read only memory）３４、ＮＡＮＤインターフェース３５を含んでいる。
【００２０】
ＳＤインターフェース３１は、ホスト１とコントローラ２２との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、ＳＤインターフェース１３と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成（ピンの配置、数等）も含む。メモリカード２（コントローラ２２）は、ＳＤインターフェース３１を介してとホスト１と通信を行う。ＳＤインターフェース３１は、レジスタ３６を含んでいる。
【００２１】
ＭＰＵ３２は、メモリカード２全体の動作を司る。ＭＰＵ３２は、例えば、メモリカード２が電源供給を受けた際に、ＲＯＭ３３内に格納されているファームウェア（制御プログラム）をＲＡＭ３４上に読み出して所定の処理を実行する。ＭＰＵ３２は、制御プログラムに従って各種のテーブル（後述）をＲＡＭ３４上で作成したり、ホスト１から受けたコマンドに従ってメモリ２１に対する所定の処理を実行したりする。
【００２２】
ＲＯＭ３３は、ＭＰＵ３２により制御される制御プログラムなどを格納する。ＲＡＭ３４は、ＭＰＵ３２の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム１２によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル（論物テーブル）が含まれる。ＮＡＮＤインターフェース３５は、コントローラ２２とメモリ２１とのインターフェース処理を行う。
【００２３】
メモリ２１内の記憶領域は、保存されるデータの種類に応じて、例えばシステムデータ領域、機密データ領域、保護データ領域、ユーザデータ領域等を含んでいる。システムデータ領域は、コントローラ２２が、その動作に必要なデータを保存するためにメモリ２１内で確保しておく領域である。機密データ領域は、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、ホスト１からアクセスできない。保護データ領域は、重要なデータ、セキュアなデータを格納する。ユーザデータ領域は、ホスト１が自由にアクセスおよび使用することが可能で、例えばＡＶコンテンツファイルや画像データ等のユーザデータを格納する。以下の説明で、メモリ２１のメモリ空間を指す意味でメモリ２１という記述を用いているとき、この記述はユーザデータ領域を指すものとする。なお、コントローラ２２は、ユーザデータ領域の一部を確保し、自身の動作に必要な制御データ（論物テーブル等）を保存する。
【００２４】
レジスタ３６は、図２に例示するように、カードステータスレジスタ、ＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、ＯＣＲの各種レジスタを有する。これらのレジスタは、エラー情報、メモリカード２の個体番号、相対カードアドレス、メモリカード２のバス駆動力、メモリカード２の特性パラメータ値、データ配置、メモリカード２の動作範囲電圧に制限のある場合の動作電圧等を格納している。
【００２５】
また、レジスタ３６、例としてＣＳＤは、メモリカード２のクラス、データのコピーに要する時間、ＡＵサイズ等を格納している。クラスは、あるクラスに属するメモリカードが保証する最低の書き込み速度によって規定されている。また、クラスによって最高の書き込み速度が決定されている。したがって、ホスト１は、ＡＵサイズを示すデータをレジスタ３６から読み出して、この情報をメモリカード２の管理の際に利用でき、また、クラスを示すデータをレジスタ３６から読み出して、メモリカード２の最大の書き込み性能を知得することができる。その他、性能パフォーマンス情報、例えば、特開２００６−１７８９２３号公報に記載のパフォーマンス情報がＣＳＤに格納されていてもよい。
【００２６】
図３は、メモリ２１のメモリ空間の構成を示している。図３に示すように、メモリ２１は、通常のメモリ領域４１とページバッファ４２とを有する。メモリ領域４１は、複数の物理ブロックＢＬＫを含んでいる。各物理ブロックＢＬＫは、複数のページＰＧから構成される。各ページＰＧは、直列接続された複数のメモリセルトランジスタを含んでいる。
【００２７】
各メモリセルは、いわゆる積層ゲート構造のＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）からなる。各メモリセルトランジスタは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。メモリセルトランジスタが２つ以上の閾値電圧の異なる状態を取り得る、つまりメモリセルが多値（多ビット）を記憶できるように、メモリ２１が構成されていてもよい。
【００２８】
同じ行に属するメモリセルトランジスタの制御ゲート電極は、同じワード線と接続される。同じ列に属し且つ直列接続されたメモリセルトランジスタの両端には選択ゲートトランジスタが設けられる。一方の選択ゲートトランジスタは、ビット線と接続される。データの書き込みおよび読み出しは直列接続されたメモリセルトランジスタの集合毎に行われ、このメモリセルトランジスタの集合からなる記憶領域が１つのページに対応する。
【００２９】
図３の例の場合、各ページＰＧは、例えば２１１２Ｂを有しており、各ブロック５２は例えば１２８ページからなる。データの消去はブロックＢＬＫ単位で行われる。ページバッファ３４は、メモリ２１へのデータ入出力を行い、データを一時的に保持する。ページバッファ４２が保持可能なデータサイズは、例えば、ページＰＧのサイズと同じく２１１２Ｂ（２０４８Ｂ＋６４Ｂ）である。
【００３０】
図４に示すとともに上記したように、メモリ２１は、ページＰＧ単位でデータを書き込んだり、読み出したりし、ブロックＢＬＫ単位でデータを消去する。一方、ファイルシステム１２は、ＲＵ（recording unit）単位でデータを管理する。つまり、ファイルシステム１２は、ソフトウェア１１から依頼された書き込み対象のデータをＲＵの大きさに応じた適当な大きさの複数の部分へと分割し、各部分に論理アドレスを割り当てる。ＲＵは、１回のマルチブロック書き込みコマンドで書き込まれる単位に相当する。ファイルシステム１２は、固有の論理アドレスを割り当てられたデータを書き込みデータとして、書き込みコマンドに続いてメモリカード２に供給する。コントローラ２２は、論理アドレスを割り当てられた書き込みデータを適当なページに書き込む。ＲＵの大きさはページの容量の大きさの整数倍である。したがって、ＲＵの大きさの書き込みデータをメモリカード２は、物理アドレスが連続する複数のページに書き込む。なお、各ＲＵは、ファイルシステムが管理する固有の論理アドレスに対応するので、ＲＵにデータを割り当てるということは、データに論理アドレスを割り当てるのと同義である。ファイルシステム１２は、表を用いて、分割されたデータの各部分の接続関係を管理して、この接続関係を用いてデータの部分を繋げることによって元のデータを復元する。また、コントローラ２２は、論理アドレスとこの論理アドレスのデータを格納しているページのアドレス（物理アドレス）との対応を変換テーブル（論物テーブル）で管理する。
【００３１】
また、ファイルシステム１２は、所定の範囲に属する所定数の連続するＲＵの集合からなるＡＵ（allocation unit）という概念を用いて管理を行なう。コントローラ２２は、データの論理アドレスの上位ビットを見ることによってＡＵの区切りを認識できる。ＡＵの大きさはブロック（物理ブロック）の容量の大きさの整数倍である。このように、ＲＵは自然数個のページの大きさに一致し、ＡＵは自然数個のブロックの大きさに一致する。このため、以下の説明では、メモリカード２でのデータの読み出し／書き込みの単位としてＲＵ、ＡＵを用いて説明を行なう。すなわち、メモリカード２に関する記述において用いられるＲＵという文言は、ＲＵと同じ大きさの、連続する複数のページを意味し、メモリカード２に関する記述において用いられるＡＵという文言は、ＡＵと同じ大きさの、連続する複数のブロックを意味する。具体的には、ファイルシステム１２がファイルシステム１２のＲＵに割り当てたデータはメモリカード２のあるＲＵに書き込まれており、メモリカード２は、ファイルシステム１２によってデータに割り当てられたＲＵ（論理アドレス）とこの書き込みデータを記憶しているメモリ２１内のＲＵを表によって管理している。
【００３２】
［２］動作
［２−１］第１例
次に、まず図５乃至図１４を参照して、メモリカード２の動作の一部について説明する。図５は、第１実施形態に係るメモリカードが取り得るモードの遷移図である。図５に示すように、メモリカード２は、ランダム書き込みモードとシーケンシャル書き込みモードを有し、コントローラ２２は、これらの２つのモードのうち、現在設定されているモードに従って動作する。メモリカード２は、ホスト１からの電源供給が開始した際、ランダム書き込みモードにある。メモリカード２は、ランダム書き込みモードにあるときにシーケンシャル書き込み開始コマンドを受けると、シーケンシャル書き込みモードに移行する。一方、メモリカード２は、シーケンシャル書き込みモードにあるときにシーケンシャル書き込み終了コマンドを受けると、ランダム書き込みモードに移行する。ＳＤインターフェース３１は、シーケンシャル書き込み開始コマンドおよびシーケンシャル書き込み終了コマンドを認識できるように構成されている。
【００３３】
次に、図６乃至図９を参照して、ランダム書き込みモードについて説明する。図６乃至図９は、ランダム書き込みモードでの書き込み時の一状態を順に例示している。図６乃至図９内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。
【００３４】
まず、メモリカード２内のＡＵ１に属する第１乃至第ＮＲＵにデータ１乃至データＮが書き込まれている。この状態で、ホスト１は、ＡＵ１の第４乃至第６ＲＵにデータ２０乃至データ２２を書き込むことを希望している。しかしながら、フラッシュメモリ２１はデータの上書きによって直接的にこの更新命令を遂行することができないので、以下の動作を行なう。まず、図７に示すように、メモリカード２（コントローラ２２）は、一時作業用のＡＵ（ワークＡＵ）を用意する。次に、メモリカード２は、ワークＡＵ内の、ＡＵ１の更新されないＲＵと同じ第１乃至第３ＲＵにデータ１乃至データ３をそれぞれコピーする。
【００３５】
図８に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ１の更新対象のＲＵと同じ第４乃至第６ＲＵにデータ２０乃至データ２２を書き込む。
【００３６】
図９に示すように、メモリカード２は、ＡＵ１のデータ７乃至データＮを、ワークＡＵ内の、ＡＵ１の更新されないＲＵと同じ第７乃至第ＮＲＵにデータ７乃至データＮをそれぞれコピーする。次に、メモリカード２は、ワークＡＵ１のクローズ処理を行なう。クローズ処理とは、ワークＡＵをＡＵ１に設定すること、すなわち、ワークＡＵが、ファイルシステム１２が認識しているＡＵ１内のデータを記憶しているものとして設定する（論物テーブルを書き換える）ことである。同時に、旧ＡＵ１は破棄される、換言すれば旧ＡＵ１は無効のデータを有するＡＵとして取り扱われるようになる。旧ＡＵ内のデータは、所定のタイミングで消去され、新たな未書き込みＡＵになる。
【００３７】
次に、図１０乃至図１４を参照して、シーケンシャル書き込みモードについて説明する。図１０は、シーケンシャル書き込みモードおよびその前後における、ホスト１とメモリカード２間で授受されるコマンド、データの第１例を示している。図１１乃至図１４は、シーケンシャル書き込みモードでの第１例の書き込み時の一状態を順に示している。図１１乃至図１４内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。
【００３８】
まず、メモリカード２はランダム書き込みモードにあり、図１１に示すように、ＡＵ１の第１乃至第８ＲＵにデータ１乃至データ８が書き込まれており、ＡＵ２の第１乃至第８ＲＵにはデータ９乃至データ１６が書き込まれている。この状態で、図１０に示すように、ホスト１はメモリカード２にシーケンシャル書き込み開始コマンドを供給する。このコマンドを受けると、メモリカード２はシーケンシャル書き込みモードに移行する。
【００３９】
図１１に示すように、ホスト１は、ＡＵ１の第４乃至第６ＲＵにデータ２０乃至データ２２を書き込むことを希望している。すなわち、ホスト１は、第４乃至第６ＲＵをデータ２０乃至データ２２で更新することを希望している。この書き込みを行なうために、ホスト１は、図１０に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第４乃至第６ＲＵと関連付けられたデータ２０乃至データ２２を供給する。この書き込み要求を受け取ると、図１１に示すように、メモリカード２は、ＡＵ１のためのワークＡＵ１を用意する。ワークＡＵは、データを格納していないＲＵのみからなり、メモリカード２が内部処理に一時的に用いるＡＵである。シーケンシャル書き込みモードでは、メモリカード２は、書き込み要求に対して、常に未書き込みのワークＡＵを用意し、ワークＡＵにデータを書き込む。この段階では、ワークＡＵに対する元のＡＵ１が依然有効のままであるので、何らかの理由でライトエラーが発生した場合でも、書き込み前の状態を復元することが可能である。
【００４０】
シーケンシャル書き込みモードでは、更新されないＲＵのデータはワークＡＵのＲＵにコピーされない。したがって、図１２に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ１内でデータ２０乃至データ２２を書き込まれているＲＵと同じ第４乃至第６ＲＵにデータ２０乃至データ２２をそれぞれ書き込む。
【００４１】
次に、図１２に示すように、ホスト１は、ＡＵ１の第７、第８ＲＵのデータ７、データ８をデータ２３、データ２４データで更新するとともに、ＡＵ２の第１乃至第３ＲＵのデータ９乃至データ１１をデータ２５乃至データ２７で更新することを希望している。この更新を行なうために、ホスト１は、図１０に示すように、メモリカード２に、書き込みコマンド、ＡＵ１の第７、第８ＲＵと関連付けられたデータ２３、データ２４、ＡＵ２の第１乃至第３ＲＵと関連付けられたデータ２５乃至データ２７を供給する。この書き込み要求を受け取ると、図１３に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ１内でデータ２３、データ２４を書き込まれているＲＵと同じ第７、第８ＲＵにデータ２３、データ２４をそれぞれ書き込む。この時点で、ワークＡＵ１の最後のＲＵに書き込まれたので、図１４に示すように、メモリカード２は、ワークＡＵに対してクローズ処理を行なう。さらに、メモリカード２は、ＡＵ２のための新たなワークＡＵを用意する。
【００４２】
図１５に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ２内でデータ２５乃至データ２７を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータ２５乃至データ２７をそれぞれ書き込む。
【００４３】
書き込み要求が終了したので、図１０に示すように、ホスト１は、シーケンシャル書き込み終了コマンドをメモリカード２に供給する。このコマンドを受け取ると、図１５に示すように、メモリカード２は、ＡＵ２の第４乃至第８ＲＵに書き込まれていたデータ１２乃至データ１６をワークＡＵにコピーすることなく、ワークＡＵに対してクローズ処理を行ない、次いで、ランダム書き込みモードに移行する。
【００４４】
［２−２］第２例
次に、第１例を応用して複数のファイルデータを平行して記録することについて、図１６乃至図２１を参照して説明する。図１６は、第１実施形態に係るメモリカードが受信するコマンド、データの第２例を示している。図１７乃至図２１は、第１実施形態に係るメモリカード２での第２例の書き込み時の一状態を順に示している。図１７乃至図２１内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。なお、第２例は、シーケンシャル書き込みモードでの動作のみに関し、それ以外の動作は第１例と同じである。
【００４５】
まず、メモリカード２はランダム書き込みモードにある。この状態で、図１６に示すように、メモリカード２は、ホスト１から受け取ったシーケンシャル書き込み開始コマンドによってシーケンシャル書き込みモードに移行する。
【００４６】
図１７に示すように、ホスト１は、ＡＵ１の第１乃至第５ＲＵにデータＡ１乃至データＡ５を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図１６に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第１乃至第５ＲＵと関連付けられたデータＡ１乃至データＡ５を供給する。
【００４７】
上記のように、シーケンシャル書き込みモードでは、メモリカード２は、書き込み要求に対して、常に未書き込みのワークＡＵを用意し、ワークＡＵにデータを書き込む。このため、図１８に示すように、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＡ１乃至データＡ５を書き込まれているＲＵと同じ第１乃至第５ＲＵにデータＡ１乃至データＡ５をそれぞれ書き込む。
【００４８】
図１８に示すように、ホスト１は、ＡＵ２の第１乃至第３ＲＵにデータＢ１乃至データＢ３を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図１６に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第１乃至第３ＲＵと関連付けられたデータＢ１乃至データＢ３を供給する。データＢ１乃至Ｂ３は、データＡ１乃至Ａ３と異なるＡＵに属しており、したがって、データＢ１乃至Ｂ３はデータＡ１乃至Ａ３が構成するファイルと別のファイルを構成するデータである。具体例として、例えばデータＢ１乃至データＢ３はある動画データの一部であって、データＡ１乃至データＡ５は別の動画データの一部である。メモリカード２（コントローラ２２）は、データＡ１乃至データＡ５と、データＢ１乃至データＢ３が異なる種類のファイルを構成することを、ＡＵ、つまりこれらのデータに割り当てられた論理アドレスの上位ビットを観察することによって、判断することができる。
【００４９】
メモリカード２は、データＢ１乃至データＢ３の書き込み要求を受け取ると、これらのデータが先に書き込みを要求されたデータＡ１乃至データＡ５とは別のファイルを構成することを上記のようにＡＵから判断する。この判断の結果、図１９に示すように、メモリカード２は、ＡＵ２のための新たなワークＡＵ２を用意し、ワークＡＵ２内の、ＡＵ２内でデータＢ１乃至データＢ３を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータＢ１乃至データＢ３をそれぞれ書き込む。
【００５０】
さらに、図１９に示すように、ホスト１は、ＡＵ１の第６、第７ＲＵにデータＡ６、データＡ７を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図１６に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第６、第７ＲＵと関連付けられたデータＡ６、データＡ７を供給する。データＡ６、データＡ７は、以前に書き込み要求を受けたデータＡ１乃至データＡ５と同じＡＵ１に属している。このため、図２０に示すように、メモリカード２は、この書き込み要求を受け取ると、ワークＡＵ１内の、ＡＵ１内でデータＡ６、データＡ７を書き込まれているＲＵと同じ第６、第７ＲＵにデータＡ６、データＡ７をそれぞれ書き込む。
【００５１】
さらに、図２０に示すように、ホスト１は、ＡＵ２の第４乃至第６ＲＵにデータＢ４乃至データＢ６を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図１６に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第４乃至第６ＲＵと関連付けられたデータＢ４乃至データＢ６を供給する。データＢ４乃至データＢ６は、データＢ１乃至データＢ３と同じＡＵ２に属している。このため、図２０に示すように、メモリカード２は、この書き込み要求を受け取ると、ワークＡＵ２内の、ＡＵ２内でデータＢ４乃至データＢ６を書き込まれているＲＵと同じ第４乃至第６ＲＵにデータＢ４乃至データＢ６をそれぞれ書き込む。
【００５２】
書き込み要求が終了したので、図１６に示すように、ホスト１は、シーケンシャル書き込み終了コマンドをメモリカード２に供給する。このコマンドを受け取ると、図２１に示すように、メモリカード２は、全てのワークＡＵに対してクローズ処理を行ない、次いで、ランダム書き込みモードに移行する。
【００５３】
なお、第２例の説明において、２つのファイルのデータ群、すなわち、データＡ１乃至データＡ７とデータＢ１乃至データＢ６のファイルデータから各々がなる２つのストリームについて説明した。しかしながら、本明細書で説明した原理に基づいて、３つ以上のストリームに、本実施形態を適用することも可能である。メモリカード２が、幾つのストリームのデータを同時に書き込む処理をできるかは、メモリカード２が同時に幾つのワークＡＵを用意できるかに依存する。同時に用意されるワークＡＵの数は、メモリカード２の書き込み速度や記憶容量や仕様に応じて選択することができる。
【００５４】
［２−３］第３例
次に、ワークＡＵを任意のタイミングで閉じるための手法について、図２２乃至図２７を参照して説明する。図２２は、第１実施形態に係るメモリカードが受信するコマンド、データの第３例を示している。図２３乃至図２７は、第１実施形態に係るメモリカード２での第３例の書き込み時の一状態を順に示している。図２３乃至図２７内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。なお、第３例は、シーケンシャル書き込みモードでの動作のみに関し、それ以外の動作は第１例と同じである。
【００５５】
まず、メモリカード２はランダム書き込みモードにある。この状態で、図２２に示すように、メモリカード２は、ホスト１から受け取ったシーケンシャル書き込み開始コマンドによってシーケンシャル書き込みモードに移行する。
【００５６】
図２３に示すように、ホスト１は、ＡＵ１の第１乃至第５ＲＵにデータＡ１乃至データＡ５を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図２２に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第１乃至第５ＲＵと関連付けられたデータＡ１乃至データＡ５を供給する。
【００５７】
この書き込み要求を受け取ると、図２４に示すように、メモリカード２は、ＡＵ１のための新たなワークＡＵ１を用意し、ワークＡＵ１内の、ＡＵ１内でデータＡ１乃至データＡ５を書き込まれているＲＵと同じ第１乃至第５ＲＵにデータＡ１乃至データＡ５をそれぞれ書き込む。
【００５８】
図２４に示すように、ホスト１は、ＡＵ２の第１乃至第３ＲＵにデータＢ１乃至データＢ３を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図１６に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第１乃至第３ＲＵと関連付けられたデータＢ１乃至データＢ３を供給する。メモリカード２は、これらのデータがデータＡ１乃至データＡ５とは別のファイルを構成するので、図２５に示すように、メモリカード２は、ＡＵ２のための新たなワークＡＵ２を用意する。続いて、メモリカード２は、ワークＡＵ２内の、ＡＵ２内でデータＢ１乃至データＢ３を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータＢ１乃至データＢ３をそれぞれ書き込む。
【００５９】
次に、ホスト１は、データＡ１乃至データＡ５が一部を構成するファイルの書き込みを継続しながら、データＢ１乃至データＢ３が構成するファイルの書き込みを終了するために、ワークＡＵクローズ・コマンドをメモリ２に供給する。このコマンドを受けると、メモリカード２は、このコマンドの直前にデータを書き込まれたワークＡＵに対するクローズ処理を行なう。この結果、ワークＡＵ２の代わりに、さらなるワークＡＵを設けることができる。例えば、メモリカード２が平行して書き込み可能なファイルデータの数が２であった場合、ワークＡＵ２に対するクローズ処理の後、ファイルデータの書き込みが可能な状態になる。
【００６０】
クローズ・コマンドは、クローズ処理対象のワークＡＵを指定する引数を有している。この引数において、上記のように直前にデータを書き込まれたワークＡＵを指定すること、ワークＡＵが複数ある場合に任意のワークＡＵを指定すること、全てのワークＡＵを指定することができる。
【００６１】
図２６に示すように、ホスト１は、ＡＵ１の第６、第７ＲＵにデータＡ６、データＡ７を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図２２に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第６、第７ＲＵと関連付けられたデータＡ６、データＡ７を供給する。この書き込み要求を受け取ると、図２７に示すように、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＡ６、データＡ７を書き込まれているＲＵと同じ第６、第７ＲＵにデータＡ６、データＡ７をそれぞれ書き込む。
【００６２】
書き込み要求が終了したので、図２２に示すように、ホスト１は、シーケンシャル書き込み終了コマンドをメモリカード２に供給する。このコマンドを受け取ると、図２１に示すように、メモリカード２は、全てのワークＡＵ（本例ではワークＡＵ１のみ）に対してクローズ処理を行ない、次いで、ランダム書き込みモードに移行する。
【００６３】
以上延べたように、第１実施形態に係るメモリカードによれば、ランダム書き込みモードとシーケンシャル書き込みモードが設けられる。シーケンシャル書き込みモードでは、データの更新が要求された場合に、更新される部分のＲＵが属するＡＵに属するＲＵの更新されないデータは、新たなＡＵにコピーされない。したがって、シーケンシャル書き込みモードでは、常に、連続する未書き込みＲＵにデータが書き込まれる。このような書き込みの速度は、フラッシュメモリ２１が達成可能な最大書き込み速度である。ホスト１にとって最大性能で書き込めるメリットは大きい。最大書き込み速度は、フラッシュメモリ２１の性能に依存し、ほぼ一定である。このため、最大書き込み速度と、ホスト１が書き込みを求めるデータの容量から算出された必要なＡＵ（ＲＵ）の数から、要求された書き込みを完了するのに要する時間を容易に算出できる。また、書き込み時間の算出が容易なため、この算出に必要な時間も短い。
【００６４】
また、メモリカード２において、連続するＲＵページに、書き込みデータの論理アドレスの順にデータが書き込まれる。このようなデータの書き込みは、メモリ２１の最大の書き込み速度を引き出すことができる。さらに、シーケンシャル書き込みモードではデータのコピーが行なわれないので、メモリカード２は、書き込み要求に対して書き込みだけを継続できる。この書き込み速度は、上記のように、メモリ２１の最大の書き込み速度であるので、シーケンシャル書き込みモードではメモリカード２は、最大の書き込み速度で書き込みを継続することができる。
【００６５】
また、メモリカード２は、シーケンシャル書き込みモードにおいて最大の書き込み速度を維持できる。このため、第２例のように、２つ以上の別個のファイルのデータに対して、各ファイルデータに専用のワークＡＵが設けられることによって、２つ以上のファイルデータを平行して保存することが可能になる。
【００６６】
また、第１実施形態に係るメモリカードによれば、ワークＡＵクローズ・コマンドが設けられる。このコマンドによって、ファイルデータを平行して書き込んでいるメモリカード２は、シーケンシャル書き込み終了コマンドの供給を待たずに、任意のワークＡＵに対してクローズ処理を行なうことができる。この結果、書き込みが終了したファイルデータ用のワークＡＵを開放して、別のファイルデータ用のワークＡＵを新たに設けることができる。このことは、ハードウェアで本機能を実現する場合、同時に書き込み可能なストリーム数には限りがあるため、有効である。
【００６７】
（第２実施形態）
第２実施形態では、特定の書き込み準備状態への移行のための専用のコマンドが設けられる。第２実施形態に係るメモリカードは、第１実施形態（図１乃至図５）と同じ構造を有し、動作が異なる。
【００６８】
［１］第１例
図２８乃至図３４を参照して第２実施形態の第１例の動作について説明する。図２８は、第２実施形態に係るメモリカードが受信するコマンド、データの第１例を示している。図２９乃至図３４は、第２実施形態に係るメモリカード２での第１例の書き込み時の一状態を順に示している。図２９乃至図３４内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。
【００６９】
まず、図２９に示すように、ＡＵ１の第１乃至第８ＲＵにデータ１乃至データ８が書き込まれており、ＡＵ２の第１乃至第８ＲＵにはデータ９乃至データ１６が書き込まれている。続いて、図２８に示すように、ホスト１は、書き込み準備コマンドをメモリカード２に供給する。メモリカード２は、書き込み準備コマンドを受けると、すぐに書き込みを開始できる状態に移行するための準備を行なう。メモリカード２は、リアルタイム書き込み（即時書き込み）可能状態（リアルタイム書き込み可能モード）への移行処理を行なっている間は、ホスト１に、例えばビジー状態を示す信号を送信することによって、準備中である旨を伝える。ビジー状態が解除されると、ホスト１は書き込みを開始する。
【００７０】
図２９に示すように、ホスト１は、ＡＵ１の第４乃至第６ＲＵにデータ２０乃至データ２２を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図２８に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第４乃至第６ＲＵと関連付けられたデータ２０乃至データ２２を供給する。
【００７１】
リアルタイム書き込み可能状態のメモリカード２は、書き込み要求を受け取ると、図２９に示すように、後に述べる継続コマンドを受けた場合を除いて、書き込み対象のＡＵ（ＡＵ１）のためのワークＡＵ（ワークＡＵ１）を用意する。
【００７２】
この書き込み要求は、ＡＵの先頭ではないＲＵからの書き込みを要求している。即時書き込み状態のメモリカード２は、書き込みデータのＲＵ（本例では第４乃至第６ＲＵ）が属するＡＵ（ＡＵ１）のうちで、書き込みデータのＲＵより上位のＲＵ（第１乃至第３ＲＵ）のデータはワークＡＵ（ワークＡＵ１）にコピーしない。したがって、図３０に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ１内でデータ２０乃至データ２２を書き込まれているＲＵと同じ第４乃至第６ＲＵにデータ２０乃至データ２２をそれぞれ書き込む。
【００７３】
ホスト１は、ＡＵ１の第７、第８ＲＵのデータ７、データ８をデータ２３、データ２４データで更新するとともに、ＡＵ２の第１乃至第３ＲＵのデータ９乃至データ１１をデータ２５乃至データ２７で更新することを希望している。この更新を行なうために、ホスト１は、図２８に示すように、メモリカード２に、書き込みコマンド、ＡＵ１の第７、第８ＲＵと関連付けられたデータ２３、データ２４、ＡＵ２の第１乃至第３ＲＵと関連付けられたデータ２５乃至データ２７を供給する。この書き込み要求を受け取ると、図３２に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ１内でデータ２３、データ２４を書き込まれているＲＵと同じ第７、第８ＲＵにデータ２３、データ２４をそれぞれ書き込む。この時点で、ワークＡＵ１の最後のＲＵに書き込まれたので、メモリカード２は、ワークＡＵに対してクローズ処理を行なう。さらに、メモリカード２は、ＡＵ２のための新たなワークＡＵを用意する。
【００７４】
図３３に示すように、メモリカード２は、ワークＡＵ内の、ＡＵ２内でデータ２５乃至データ２７を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータ２５乃至データ２７をそれぞれ書き込む。
【００７５】
書き込み要求が終了したので、図２８に示すように、ホスト１は、クローズ・コマンドをメモリカード２に供給する。クローズ・コマンドは、第１実施形態と同様にクローズ処理対象のワークＡＵを指定する引数を有しており、さらに、コピーの有りまたは無しを設定する引数を有している。図２８で供給されるクローズ・コマンドでは、コピー無しが指定されている。図３３に示すように、メモリカード２は、このコマンドを受け取ると、直前の書き込みコマンドによる書き込みの対象となっているＡＵ（ＡＵ２）内の更新されないＲＵ（第３乃至第８ＲＵ）のデータ１２乃至データ１６をワークＡＵ２にコピーせずに、ワークＡＵ２に対してクローズ処理を行なう。
【００７６】
第２実施形態においては、リアルタイム書き込み可能状態以外の動作は、第１実施形態のランダム書き込みモードと同じである。
【００７７】
［２］第２例
次に、第１例を応用して複数のファイルデータを平行して記録することについて、図３４乃至図３９を参照して説明する。図３４は、第２実施形態に係るメモリカードが受信するコマンド、データの第２例を示している。図３５乃至図３９は、第２実施形態に係るメモリカード２での第２例の書き込み時の一状態を順に示している。図３５乃至図３９内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。
【００７８】
図３４に示すように、メモリカード２は、ホスト１から受け取った書き込み準備コマンドによってリアルタイム書き込み可能状態に移行する。
【００７９】
図３５に示すように、ホスト１は、ＡＵ１の第１乃至第５ＲＵにデータＡ１乃至データＡ５を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図３４に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第１乃至第５ＲＵと関連付けられたデータＡ１乃至データＡ５を供給する。ＡＵ１の第１乃至第８ＲＵにデータＸ１乃至データＸ８が書き込まれている。
【００８０】
上記のように、リアルタイム書き込み可能状態のメモリカード２は、後述の継続コマンドを受けた場合を除いて、新たなワークＡＵを用意する。このため、図３６に示すように、メモリカード２は、ＡＵ１のためのワークＡＵ１を用意する。続いて、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＡ１乃至データＡ５を書き込まれているＲＵと同じ第１乃至第５ＲＵにデータＡ１乃至データＡ５をそれぞれ書き込む。
【００８１】
ホスト１は、データＡ１乃至データＡ５が一部を構成するファイルデータとは別のファイルデータを平行して書き込むことを望んでいる。このため、ワークＡＵ１に引き続き書き込みを行なうことを予定している。このために、図３４に示すように、ホスト１は、継続コマンドをメモリカード２に供給する。継続コマンドは、クローズ・コマンドにおいて、クローズ処理の命令か、ワークＡＵの継続の命令かを指定する引数を設けることによって実現できる。または、クローズ・コマンドとは別のコマンドが設けられてもよい。図３６に示すように、メモリカード２は、継続コマンドを受け取ると、ワークＡＵ１に対してクローズ処理を行なわずに、このコマンドの直前に書き込み要求を受けた対象であるＡＵ１のためのワークＡＵ１を引き続き保持する。
【００８２】
図３６に示すように、ホスト１は、ＡＵ２の第１乃至第３ＲＵにデータＢ１乃至データＢ３を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図３４に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第１乃至第３ＲＵと関連付けられたデータＢ１乃至データＢ３を供給する。
【００８３】
上記のように、リアルタイム書き込み可能状態のメモリカード２は、書き込みコマンドを受けると、継続コマンドによってワークＡＵの継続使用を要求された場合を除いて、新たなワークＡＵを作成する。データＢ１乃至データＢ３はデータＡ１乃至Ａ３が属するＡＵ（ＡＵ１）とは別のＡＵ（ＡＵ２）に属するので、図３７に示すように、メモリカード２は、書き込みデータＢ１乃至データＢ３を受け取ると、ワークＡＵ２を用意する。メモリカード２は、ワークＡＵ２内の、ＡＵ２内でデータＢ１乃至データＢ３を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータＢ１乃至データＢ３をそれぞれ書き込む。
【００８４】
続いて、データＡ５に続くデータを書き込むために、図３４に示すように、ホスト１は、継続コマンドをメモリカード２に供給する。図３７に示すように、メモリカード２は、継続コマンドを受け取ると、このコマンドの直前に書き込み要求の対象であったＡＵのためのワークＡＵ２を引き続き保持する。
【００８５】
図３７に示すように、ホスト１は、ＡＵ１の第６、第７ＲＵにデータＡ６、データＡ７を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図３４に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第６、第７ＲＵと関連付けられたデータＡ６、データＡ７を供給する。
【００８６】
図３８に示すように、メモリカード２は、ＡＵ１のためのワークＡＵ１を維持しているので、メモリカード２は、書き込みコマンドを受けて新たなワークＡＵを作成しない。代わりに、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＡ６、データＡ７を書き込まれているＲＵと同じ第６、第７ＲＵにデータＡ６、データＡ７をそれぞれ書き込む。
【００８７】
続いて、データＢ３に続くデータを書き込むために、図３４に示すように、ホスト１は、継続コマンドをメモリカード２に供給する。図３８に示すように、メモリカード２は、継続コマンドを受け取ると、このコマンドの直前に書き込み要求の対象であったＡＵのためのワークＡＵ１を引き続き保持する。
【００８８】
次に、図３８に示すように、ホスト１は、ＡＵ２の第４、第５ＲＵにデータＢ４、データＢ５を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図３４に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第４、第５ＲＵと関連付けられたデータＢ４、データＢ６を供給する。
【００８９】
図３９に示すように、メモリカード２は、ＡＵ２のためのワークＡＵ２を維持しているので、メモリカード２は、維持しているワークＡＵ２内の、ＡＵ２内でデータＢ４、データＢ５を書き込まれているＲＵと同じ第４、第５ＲＵにデータＢ４、データＢ５をそれぞれ書き込む。
【００９０】
図３８に示すように、ホスト１は、ＡＵ２の第６ＲＵにデータＢ６を書き込むことを希望している。ホスト１は、直前に書き込まれたＲＵを含んでいるＡＵ内のＲＵへの書き込みを要求する場合、継続コマンドを供給せずに、書き込みコマンドを続けて供給することによってこれを行なうことができる。そこで、この書き込みを行なうために、ホスト１は、図３４に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第６ＲＵと関連付けられたデータＢ６を供給する。メモリカード２は、この書き込み要求を受け取ると、ワークＡＵ２内の、ＡＵ２内でデータＢ６を書き込まれているＲＵと同じ第６ＲＵにデータＢ６を書き込む。
【００９１】
書き込み要求が終了したので、図３４に示すように、ホスト１は、クローズ・コマンドをメモリカード２に供給する。図３４の例では、クローズ・コマンドのクローズ対象のワークＡＵの引数は全ワークＡＵを指定しており、また、コピー無しの指定も引数に記載されている。図３９に示すように、メモリカード２は、このコマンドを受け取ると、ＡＵ１内の更新されないＲＵ（第８ＲＵ）のデータＸ８をワークＡＵ１にコピーせずに、ワークＡＵ１、ワークＡＵ２に対してクローズ処理を行なう。
【００９２】
［３］第３例
次に、第１例を応用して複数のファイルデータを平行して記録する別の例について、図４０乃至図４７を参照して説明する。図４０は、第２実施形態に係るメモリカードが受信するコマンド、データの第３例を示している。図４１乃至図４７は、第２実施形態に係るメモリカード２での第３例の書き込み時の一状態を順に示している。これらの図のデータＡ１乃至Ａ７は動画データであり、データＢ１乃至データＢ３、データＣ１乃至データＣ３は静止画データであるのが典型例である。図４１乃至図４８内の、ワークＡＵを除くＡＵは、ファイルシステム１２が認識しているＡＵを表現しており、またメモリカード２内でこのＡＵ内のデータを記憶しているＡＵも表現している。
【００９３】
図４０に示すように、メモリカード２は、ホスト１から受け取った書き込み準備コマンドによってリアルタイム書き込み可能状態に移行する。
【００９４】
図４１に示すように、ホスト１は、ＡＵ１の第１乃至第５ＲＵにデータＡ１乃至データＡ５を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図４０に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第１乃至第５ＲＵと関連付けられたデータＡ１乃至データＡ５を供給する。ＡＵ１の第１乃至第８ＲＵにデータＸ１乃至データＸ８が書き込まれている。
【００９５】
上記のように、リアルタイム書き込み可能状態のメモリカード２は、継続コマンドを受けた場合を除いて、新たなワークＡＵを用意するので、図４２に示すように、メモリカード２は、ＡＵ１のためのワークＡＵ１を用意する。続いて、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＡ１乃至データＡ５を書き込まれているＲＵと同じ第１乃至第５ＲＵにデータＡ１乃至データＡ５をそれぞれ書き込む。
【００９６】
ホスト１は、データＡ１乃至データＡ５が一部を構成するファイルデータとは別のファイルデータを平行して書き込むことを望んでいる。このために、図４０に示すように、ホスト１は、継続コマンドをメモリカード２に供給する。図４２に示すように、メモリカード２は、継続コマンドを受け取ると、ワークＡＵ１を引き続き保持する。
【００９７】
図４２に示すように、ホスト１は、ＡＵ２の第１乃至第３ＲＵにデータＢ１乃至データＢ３を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図４０に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第１乃至第３ＲＵと関連付けられたデータＢ１乃至データＢ３を供給する。ＡＵ２の第１乃至第８ＲＵにデータＹ１乃至データＹ８が書き込まれている。
【００９８】
データＢ１乃至データＢ３は、先に書き込みを行なったＡＵ１とは異なるＡＵに属するので、図４３に示すように、メモリカード２は、書き込みデータＢ１乃至Ｂ３を受け取ると、ワークＡＵ２を用意する。メモリカード２は、ワークＡＵ２内の、ＡＵ２内でデータＢ１乃至データＢ３を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータＢ１乃至データＢ３をそれぞれ書き込む。
【００９９】
データＢ１乃至Ｂ３から構成されるファイルデータの書き込みが終了したので、図４０に示すように、ホスト１は、クローズ・コマンドをメモリカード２に供給する。このクローズ・コマンドは、コピー無しを引数によって指定されている。このため、図４４に示すように、メモリカード２は、このコマンドを受け取ると、直前の書き込みコマンドによる書き込みの対象となっているＡＵ２内の更新されていないＲＵ（第４乃至第８ＲＵ）のデータＹ４乃至データＹ８をワークＡＵ２にコピーせずに、ワークＡＵ２に対してクローズ処理を行なう。
【０１００】
図４４に示すように、ホスト１は、ＡＵ１の第６、第７ＲＵにデータＡ６、データＡ７を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図４０に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ１の第６、第７ＲＵと関連付けられたデータＡ６、データＡ７を供給する。
【０１０１】
図４４に示すように、メモリカード２は、ＡＵ１のためのワークＡＵ１を維持しているので、メモリカード２は、書き込みコマンドを受けて新たなワークＡＵを作成しない。代わりに、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＡ６、データＡ７を書き込まれているＲＵと同じ第６、第７ＲＵにデータＡ６、データＡ７をそれぞれ書き込む。
【０１０２】
データＡ１乃至Ａ７から構成されるファイルデータの書き込みが終了し、図４５に示すように、ホスト１は、ＡＵ３の第１乃至第３ＲＵにデータＣ１乃至データＣ３を書き込むことを希望している。この書き込みを行なうために、ホスト１は、図４０に示すように、メモリカード２に、書き込みコマンド、続いてＡＵ２の第１乃至第３ＲＵと関連付けられたデータＣ１乃至データＣ３を供給する。ＡＵ３の第１乃至第８ＲＵにデータＺ１乃至データＺ８が書き込まれている。
【０１０３】
データＣ１乃至データＣ３は、先に書き込みを行なったＡＵ１とは異なるＡＵに属する。また、ＡＵ１の中には、更新されなかったデータＸ８が残っている。この状態で、継続コマンドを受けずに書き込みコマンドを受けたメモリカード２は、この最後に書き込みを行なったＡＵ１内の更新されていないデータをワークＡＵにコピーする。すなわち、図４６に示すように、メモリカード２は、ワークＡＵ１内の、ＡＵ１内でデータＸ８を割り当てられたＲＵと同じ第８ＲＵにデータＸ８をコピーする。この後、メモリカード２は、ワークＡＵ１をクローズ処理する指示を持つクローズ・コマンドを受けていないので、ワークＡＵ１に対してクローズ処理を行なわない。なお、このコピー動作は、リアルタイム書き込みの終了後なので、書き込みや、書き込み時間の算出に影響を与えない。ＡＵ１内のデータＸ８をワークＡＵ１にコピーすることを、クローズ・コマンドを用いて行なうこともできる。すなわち、データＣ１乃至データＣ３を書き込むための書き込みコマンドの供給に先立って、ホスト１は、引数においてコピー有りを指定されたクローズ・コマンドをメモリカード２に供給する。メモリカード２は、このようなクローズ・コマンドを受け取ると、対象のＡＵ（ＡＵ１）内の最後に書き込まれたＲＵ（第７ＲＵ）以降のＲＵ（第８ＲＵ）のデータＸ８をワークＡＵ１の同じ第８ＲＵにコピーする。
【０１０４】
続いて、メモリカード２は、ＡＵ３のためのワークＡＵ３を用意する。データＣ１乃至データＣ３は、ＡＵ３の先頭のＲＵからの書き込みなのでコピーは必要ない。このため、図４７に示すように、メモリカード２は、ワークＡＵ３内の、ＡＵ３内でデータＣ１乃至Ｃ３を書き込まれているＲＵと同じ第１乃至第３ＲＵにデータＣ１乃至データＣ３をそれぞれ書き込む。
【０１０５】
データＡ１乃至Ａ７から構成されるファイルデータ、およびデータＣ１乃至Ｃ３から構成されるファイルデータの書き込みが終了したので、図４０に示すように、ホスト１は、クローズ・コマンドをメモリカード２に供給する。このクローズ・コマンドは、コピー無しの指示を引数において指定されており、かつ、全てのワークＡＵ（本例ではワークＡＵ１、ＡＵ３）に対してクローズ処理を行なう指示を引数において指定されている。このため、図４７に示すように、メモリカード２は、このコマンドを受け取ると、ワークＡＵ１に対してクローズ処理を行なうとともに、ワークＡＵ３内の更新されていないＲＵ（第４乃至第８ＲＵ）のデータＺ４乃至データＺ８をワークＡＵ３にコピーせずに、ワークＡＵ３に対してクローズ処理を行なう。
【０１０６】
以上述べたように、第２実施形態に係るメモリカードによれば、リアルタイム書き込み状態が定義されている。リアルタイム書き込み状態のメモリカードは、書き込みコマンドを受け取ると、未書き込みのＲＵのみからなるワークＡＵを用意して、ワークＡＵ内のＲＵに書き込みデータを書き込みデータの論理アドレスの順に従って書き込む。このような連続する未書き込みＲＵへの書き込みの速度は、フラッシュメモリ２１が達成可能な最大書き込み速度である。最大書き込み速度は、フラッシュメモリ２１の性能に依存し、ほぼ一定である。このため、最大書き込み速度と、ホスト１が書き込みを求めるデータの容量から算出された必要なＡＵ（ＲＵ）の数から、要求された書き込みを完了するのに要する時間を容易に算出できる。また、書き込み時間の算出が容易なため、この算出に必要な時間も短い。
【０１０７】
また、第２実施形態に係るメモリカードでは、継続コマンドが設けられる。継続コマンドによって、ワークＡＵに対してクローズ処理を行なわずに別のワークＡＵを用意することができる。このため、２つ以上の別個のファイルのデータに対して、各ファイルデータに専用のワークＡＵが設けられることによって、２つ以上のファイルデータを平行して保存することが可能になる。
【０１０８】
なお、継続コマンドは、作成済みのワークＡＵへの書き込みを一時的に停止することをもたらすのみである。このため、メモリカードが第２例のように、継続コマンドを受け取ったとしても、結局は、第１例のように一時停止せずに未書き込みの連続するＲＵのみに書き込みを行なうことと同じである。
【０１０９】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【図面の簡単な説明】
【０１１０】
【図１】第１実施形態に係るメモリカードの主要な機能ブロックを、ホスト装置の機能ブロックとともに示す図。
【図２】レジスタの詳細を例示する図。
【図３】メモリ空間の構成を示す図。
【図４】ホストが認識している記憶領域とメモリカードの記憶領域を示す図。
【図５】第１実施形態のメモリカードが取り得るモードの遷移図。
【図６】第１実施形態のメモリカードでの第１例の書き込み時の一状態を例示する図。
【図７】図６に続く状態を例示する図。
【図８】図７に続く状態を例示する図。
【図９】図８に続く状態を例示する図。
【図１０】第１実施形態のメモリカードが受信するコマンド、データの第１例を示す図。
【図１１】第１実施形態のメモリカードでの第１例の書き込み時の一状態を示す図。
【図１２】図１１に続く状態を例示する図。
【図１３】図１２に続く状態を例示する図。
【図１４】図１３に続く状態を例示する図。
【図１５】図１４に続く状態を例示する図。
【図１６】第１実施形態のメモリカードが受信するコマンド、データの第２例を示す図。
【図１７】第１実施形態のメモリカードでの第２例の書き込み時の一状態を示す図。
【図１８】図１７に続く状態を例示する図。
【図１９】図１８に続く状態を例示する図。
【図２０】図１９に続く状態を例示する図。
【図２１】図２０に続く状態を例示する図。
【図２２】第１実施形態のメモリカードが受信するコマンド、データの第３例を示す図。
【図２３】第１実施形態のメモリカードでの第３例の書き込み時の一状態を示す図。
【図２４】図２３に続く状態を例示する図。
【図２５】図２４に続く状態を例示する図。
【図２６】図２５に続く状態を例示する図。
【図２７】図２６に続く状態を例示する図。
【図２８】第２実施形態のメモリカードが受信するコマンド、データの第１例を示す図。
【図２９】第２実施形態のメモリカードでの第１例の書き込み時の一状態を示す図。
【図３０】図２９に続く状態を例示する図。
【図３１】図３０に続く状態を例示する図。
【図３２】図３１に続く状態を例示する図。
【図３３】図３２に続く状態を例示する図。
【図３４】第２実施形態のメモリカードが受信するコマンド、データの第２例を示す図。
【図３５】第２実施形態のメモリカードでの第２例の書き込み時の一状態を示す図。
【図３６】図３５に続く状態を例示する図。
【図３７】図３６続く状態を例示する図。
【図３８】図３７に続く状態を例示する図。
【図３９】図３８に続く状態を例示する図。
【図４０】第２実施形態のメモリカードが受信するコマンド、データの第３例を示す図。
【図４１】第２実施形態のメモリカードでの第３例の書き込み時の一状態を示す図。
【図４２】図４１に続く状態を例示する図。
【図４３】図４２続く状態を例示する図。
【図４４】図４３に続く状態を例示する図。
【図４５】図４４に続く状態を例示する図。
【図４６】図４５に続く状態を例示する図。
【図４７】図４６に続く状態を例示する図。
【符号の説明】
【０１１１】
１…ホスト装置、２…メモリカード、１１…ソフトウェア、１２…ファイルシステム、１３…ＳＤインターフェース、２１…フラッシュメモリ、２２…コントローラ、３１…ＳＤインターフェース、３２…ＭＰＵ、３３…ＲＯＭ、３４…ＲＡＭ、３５…ＮＡＮＤインターフェース、３６…レジスタ、４１…メモリ領域、４２…ページバッファ、ＰＧ…ページ、ＢＬＫ…ブロック、ＲＵ…ＲＵ、ＡＵ…ＡＵ。
【図１】
2010140268.tif 000003
【図２】
2010140268.tif 000004
【図３】
2010140268.tif 000005
【図４】
2010140268.tif 000006
【図５】
2010140268.tif 000007
【図６】
2010140268.tif 000008
【図７】
2010140268.tif 000009
【図８】
2010140268.tif 000010
【図９】
2010140268.tif 000011
【図１０】
2010140268.tif 000012
【図１１】
2010140268.tif 000013
【図１２】
2010140268.tif 000014
【図１３】
2010140268.tif 000015
【図１４】
2010140268.tif 000016
【図１５】
2010140268.tif 000017
【図１６】
2010140268.tif 000018
【図１７】
2010140268.tif 000019
【図１８】
2010140268.tif 000020
【図１９】
2010140268.tif 000021
【図２０】
2010140268.tif 000022
【図２１】
2010140268.tif 000023
【図２２】
2010140268.tif 000024
【図２３】
2010140268.tif 000025
【図２４】
2010140268.tif 000026
【図２５】
2010140268.tif 000027
【図２６】
2010140268.tif 000028
【図２７】
2010140268.tif 000029
【図２８】
2010140268.tif 000030
【図２９】
2010140268.tif 000031
【図３０】
2010140268.tif 000032
【図３１】
2010140268.tif 000033
【図３２】
2010140268.tif 000034
【図３３】
2010140268.tif 000035
【図３４】
2010140268.tif 000036
【図３５】
2010140268.tif 000037
【図３６】
2010140268.tif 000038
【図３７】
2010140268.tif 000039
【図３８】
2010140268.tif 000040
【図３９】
2010140268.tif 000041
【図４０】
2010140268.tif 000042
【図４１】
2010140268.tif 000043
【図４２】
2010140268.tif 000044
【図４３】
2010140268.tif 000045
【図４４】
2010140268.tif 000046
【図４５】
2010140268.tif 000047
【図４６】
2010140268.tif 000048
【図４７】
2010140268.tif 000049