(57)【要約】  メモリカード１にデータを書き込みする際、ホスト機器２からライトコマンド、およびデータが転送されると、メモリコントローラ４は、そのデータを、消去された任意のブロックに書き込む。書き込みが終了すると、ホスト機器２は、２回目のライトコマンドとデータとを転送する。メモリコントローラ４は、１回目に転送されたデータの最終アドレスと２回目のライトコマンドで設定されている転送データの先頭アドレスとが連続しているか否かを判断し、該アドレスが連続している場合には、１回目のデータに続いて２回目の転送データを連続して書き込む。そして、データの書き込みが終了した後、コピー処理を行う。
2007116476.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うメモリコントローラとを有したメモリカードであって、
前記メモリコントローラは、
ホスト機器によって任意に分割されたデータの書き込み処理において、前回のデータ転送における最終アドレスと、次のデータ転送における先頭アドレスとが連続しているか否かを判断し、連続している際には、コピー処理を行わずに、前回のデータ転送において書き込み処理されたデータに続けて次のデータ転送によるデータの書き込み処理を連続して行うことを特徴とするメモリカード。
【請求項２】
請求項１記載のメモリカードにおいて、
前記メモリコントローラは、
前回のデータ転送における最終アドレスと、次のデータ転送における先頭アドレスとが連続していない場合に、コピー処理を行うことを特徴とするメモリカード。
【請求項３】
請求項１または２記載のメモリカードにおいて、
前記メモリコントローラは、
ライトコマンド以外のコマンドが前記ホスト機器から発行された場合に、データの書き込み処理が終了した後、コピー処理を行うことを特徴とするメモリカード。
【請求項４】
請求項１〜３のいずれか１項に記載のメモリカードにおいて、
前記メモリコントローラは、
前記ホスト機器がライトコマンドを発行してから任意の期間が経過すると、データの書き込み処理が終了した後、コピー処理を行うことを特徴とするメモリカード。
【請求項５】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うメモリコントローラとを有したメモリカードにおけるデータの書き込み方法であって、
ホスト機器から転送された前回のデータ転送における最終アドレスと、次のデータ転送における先頭アドレスとが連続している際に、前記メモリコントローラは、コピー処理を行わずに、前回のデータ転送において書き込み処理されたデータに続けて次のデータ転送によるデータの書き込み処理を行うことを特徴とするデータの書き込み方法。
【請求項６】
請求項５記載のデータの書き込み方法において、
前回のデータ転送の最終アドレスと、次のデータ転送の先頭アドレスとが連続していない場合は、コピー処理を行うことを特徴とするデータの書き込み方法。
【請求項７】
請求項５または６記載のデータの書き込み方法において、
ライトコマンド以外のコマンドが前記ホスト機器から発行された場合に、データの書き込み処理が終了した後、コピー処理を行うことを特徴とするデータの書き込み方法。
【請求項８】
請求項５〜７のいずれか１項に記載のメモリカードにおいて、
前記ホスト機器がライトコマンドを発行してから任意の期間が経過すると、データの書き込み処理が終了した後、コピー処理を行うことを特徴とするデータの書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードにおけるデータの書き込み技術に関し、特に、不揮発性半導体メモリを用いたメモリカードにおけるデータ書き込み時間の短縮化に有効な技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータやＤＳＣ（Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）などの記憶装置として、たとえば、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード（登録商標）やＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）カード（登録商標）などのメモリカードが広く普及している。【０００３】
近年の高性能化の要求に伴って、メモリカードに搭載される半導体メモリとして、たとえば、電気的に一括消去、書き換えが可能であり、大容量のデータを保持できるフラッシュメモリなどの不揮発性半導体メモリが用いられている。【０００４】
一般に、メモリカードにデータを書き込む際には、パーソナルコンピュータやＤＳＣなどのホストは、ライトコマンドを発行する直前に、予め転送するデータ容量と転送データの転送アドレスとを設定する。そして、メモリカードに対してライトコマンドを発行した後、設定された容量のデータ転送が行われる。【０００５】
メモリカードに設けられたメモリコントローラは、ライトコマンドとそれに続くデータ転送とを１つのまとまりとして捉えており、設定されたコマンドの内容に沿ったデータ容量の書き込みを不揮発性半導体メモリに対して行う。【０００６】
また、不揮発性半導体メモリでは、あるサイズで決められたブロック単位（ワード線に接続された複数の不揮発性メモリセルを一括消去することができる消去単位）でデータの管理を行っている。【０００７】
この種の不揮発性半導体メモリにおいては、たとえば、ページ単位の書き込み指示が、同一ブロック内のアドレス順のページについて、連続して複数回発生する場合に、当該同一ブロック内において、ページ単位の書き込みされ、その後、当該ブロックの書き込みを終了することにより、書き込み処理速度を高速化する技術がある（特許文献１参照）。
【特許文献１】特開２００４−２６４９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、上記のようなメモリカードのデータ書き込み技術では、次のような問題点があることが本発明者により見い出された。【０００９】
ホストが大容量のデータをメモリカードに書き込む場合には、該ホストが設定したデータサイズにデータを分割し、ライトコマンドとともにデータ転送が繰り返されることになる。【００１０】
たとえば、データ転送が２回に分割された場合には、ライトコマンドと分割された前半のデータとがメモリカードに転送される。メモリカードに用いられる不揮発性半導体メモリは、データをオーバライトして更新することができない。【００１１】
そのため、消去されている第１のブロックに前半のデータを書き込んだ後、書き込み対象ブロックにおける前半のデータを除く残りの元データのコピーを行っている。【００１２】
コピー処理が終了すると、ホストは、ライトコマンドと分割された後半のデータとをメモリカードに転送する。これを受けて、メモリカードは、他の消去されている第２のブロックに後半のデータを書き込んだ後、第１のブロックにおける後半のデータを除く残りのデータのコピーを行っている。【００１３】
このように、メモリカードでは、ライトコマンドの発行回数に比例してコピー処理が発生することになる。メモリカードがコピー処理を行っている間、ホストは、コピー処理待ちの状態となってデータの書き込み処理を行うことができず、データの書き込み時間が増大してしまうという問題がある。【００１４】
特に、ホストがデータを転送する際に分割するデータサイズが小さい場合には、ライトコマンドの発行回数が極端に多くなり、データの書き込み時間の増大が顕著になってしまう恐れがある。【００１５】
本発明の目的は、データの書き込み処理において、コピー回数を大幅に削減することにより、データの書き込み時間を大幅に短縮することのできる技術を提供することにある。【００１６】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１７】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて該不揮発性半導体メモリの動作指示を行うメモリコントローラとを有したメモリカードであって、該メモリコントローラは、ホスト機器によって任意に分割されたデータの書き込み処理において、前回のデータ転送における最終アドレスと、次のデータ転送における先頭アドレスとが連続しているか否かを判断し、連続している際には、コピー処理を行わずに、前回のデータ転送において書き込み処理されたデータに続けて次のデータ転送によるデータの書き込み処理を連続して行うものである。【００１８】
また、本発明は、前記メモリコントローラが、前回のデータ転送における最終アドレスと、次のデータ転送における先頭アドレスとが連続していない場合にコピー処理を行うものである。【００１９】
さらに、本発明は、前記メモリコントローラが、ライトコマンド以外のコマンドがホスト機器から発行された場合に、データの書き込み処理が終了した後、コピー処理を行うものである。【００２０】
また、本発明は、前記メモリコントローラが、ホスト機器がライトコマンドを発行してから任意の期間が経過すると、データの書き込み処理が終了した後、コピー処理を行うものである。【００２１】
さらに、本願のその他の発明の概要を簡単に示す。【００２２】
本発明は、複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて該不揮発性半導体メモリの動作指示を行うメモリコントローラとを有したメモリカードにおけるデータの書き込み方法であって、ホスト機器から転送された前回のデータ転送における最終アドレスと、次のデータ転送における先頭アドレスとが連続している際に、該メモリコントローラは、コピー処理を行わずに、前回のデータ転送において書き込み処理されたデータに続けて次のデータ転送によるデータの書き込み処理を行うものである。【００２３】
また、本発明は、前回のデータ転送の最終アドレスと、次のデータ転送の先頭アドレスとが連続していない場合、およびライトコマンド以外のコマンドがホスト機器から発行された場合に、データの書き込み処理が終了した後、コピー処理を行うものである。【００２４】
さらに、本発明は、ホスト機器がライトコマンドを発行してから任意の期間が経過すると、データの書き込み処理が終了した後、コピー処理を行うものである。
【発明の効果】
【００２５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。【００２６】
（１）メモリカードにおけるデータ書き込み時間を大幅に短縮することができる。【００２７】
（２）また、上記（１）により、メモリカードの性能を向上させることができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施の形態によるメモリカードの構成を示すブロック図である。
【図２】図１のメモリカードに、データを書き込みする際のホスト機器のシーケンスを示す説明図である。
【図３】図１のメモリカードにデータを書き込みする際の動作を示すフローチャートである。
【図４】図１のメモリカードにおけるデータ書き込みの一例を示す動作シーケンスの説明図である。
【図５】図１のメモリカードにデータ書き込みを行った後、ホスト機器から読み出しコマンドが発行された際の一例を示す動作シーケンスの説明図である。
【図６】図１のメモリカードにデータ書き込みを行った後、ホスト機器からの応答がない場合の一例を示す動作シーケンスを示す説明図である。
【図７】本発明者が検討したライトコマンドによるデータ書き込み毎にコピー処理が行われるメモリカードにおけるデータ書き込み動作例を示す動作シーケンスの説明図である。
【図８】本発明の他の実施の形態によるメモリカードの構成を示すブロック図である。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。【００３０】
本実施の形態において、メモリカード１は、図１に示すように、該メモリカード１の外部にホスト機器２が接続可能なようにされており、たとえば、デジタルカメラ、携帯電話、携帯音楽プレーヤやパーソナルコンピュータなどのホスト機器２の外部記憶メディアとして用いられる。【００３１】
メモリカード１は、フラッシュメモリに例示される電気的にデータの書き換え、消去が可能な不揮発性半導体メモリ３、ならびにメモリコントローラ４から構成されている。メモリコントローラ４は、ホスト機器２と接続されており、不揮発性半導体メモリ３の制御を司り、該不揮発性半導体メモリ３に格納されたプログラムやデータなどを読み出してホスト機器２へ出力し、またはホスト機器２から入力されたプログラムやデータの書き込み動作指示を行う。【００３２】
次に、本実施の形態によるメモリカード１へのデータ書き込み動作について、図２を用いて説明する。【００３３】
図２は、メモリカード１に、ある容量（データサイズＡ）のデータをメモリカード１に書き込みする際のホスト機器２のシーケンスを示す説明図である。図２では、データサイズＡのデータＢを、データＢ１〜Ｂ４に分割して転送する場合の例を示している。【００３４】
まず、ホスト機器２は、最初のライトコマンドを発行し、メモリカード１に対して、該ライトコマンド、およびデータサイズＡを任意に分割したデータＢ１をそれぞれ転送する。【００３５】
メモリコントローラ４は、データＢ１を、消去された任意のブロックに書き込む。ここでは、書き込み対象ブロックにおける元データをコピーするコピー処理は行われない。メモリカード１におけるデータＢ１の書き込みが終了すると、ホスト機器２は、２回目のライトコマンドとデータサイズＡを任意に分割したデータＢ２とをそれぞれ転送する。【００３６】
メモリコントローラ４は、データＢ１の最終アドレスと２回目のライトコマンドで設定されている転送データの先頭アドレスとが連続しているか否かを判断し、該アドレスが連続している場合には、消去されているブロックにデータＢ１に続いてデータＢ２を書き込む。【００３７】
この場合も、書き込み対象ブロックにおける元データをコピーするコピー処理を行わずに、転送されたデータＢ２の書き込み（連続書き込み）を実行する。【００３８】
その後、ホスト機器２は、３回目のライトコマンドとデータサイズＡを任意に分割したデータＢ３とを転送する。同様に、メモリコントローラ４は、データＢ２の最終アドレスと３回目のライトコマンドで設定されているデータ転送の先頭アドレスが連続しているか否かを判断し、該アドレスが連続している場合には、コピー処理を行わずに転送されたデータＢ３の連続書き込みを実行する。【００３９】
続いて、メモリカード１におけるデータＢ３の書き込みが終了すると、ホスト機器２は、４回目のライトコマンドとデータサイズＡを任意に分割したデータＢ４とをそれぞれ転送する。【００４０】
メモリコントローラ４は、データＢ３の最終アドレスと４回目のライトコマンドで設定されているデータ転送の先頭アドレスとが連続しているか否かを判断する。アドレスが連続していれば、この場合もコピー処理を行わずに、データＢ３に続いて転送されたデータＢ４の連続書き込みを実行する。そして、データＢ４の書き込みが終了した後、コピー処理が行われる。【００４１】
このように、データサイズＡのデータを、データＢ１〜Ｂ４に分割して転送する場合であっても、メモリカード１のコピー処理を１回だけにすることができるので、書き込み動作にかかる時間を大幅に短縮することができる。【００４２】
図３は、ある容量のデータを書き込みする際のメモリカード１のフローチャートである。【００４３】
まず、ホスト機器２から、ライトコマンドが発行されると、メモリコントローラ４は、そのコマンドがライトコマンドであるか否かを判断する（ステップＳ１０１）。ライトコマンドの場合、メモリコントローラ４は、データの連続書き込み（図２）中であるか否かを判断する（ステップＳ１０２）。【００４４】
データの連続書き込み中でない場合、メモリコントローラ４は、連続書き込みフラグをセットし（ステップＳ１０３）、ホスト機器２からのデータ転送を受けて、該データを不揮発性半導体メモリ３に書き込む（ステップＳ１０４）。【００４５】
また、ステップＳ１０２の処理において、連続書き込み中の場合、メモリコントローラ４は、前回のデータ転送における最終アドレスと、今回のライトコマンドで設定された設定された転送データの先頭アドレスが連続しているか否かの判断を行う（ステップＳ１０５）。【００４６】
アドレスが連続していない場合、メモリコントローラ４は、コピー処理を行う（ステップＳ１０６）。続いて、コピー処理が終了すると、メモリコントローラ４は、連続書き込みフラグをクリアした（ステップＳ１０７）後、ステップＳ１０４の処理を実行する。【００４７】
ステップＳ１０５の処理において、アドレスが連続している場合、メモリコントローラ４は、ホスト機器２からのデータ転送を受けて、不揮発性半導体メモリ３に連続して追記書き込みを行う（ステップＳ１０８）。【００４８】
また、ステップＳ１０１の処理において、ホスト機器２から発行されたコマンドが、ライトコマンドでない場合、メモリコントローラ４は、データの連続書き込み中であるか否かを判断し（ステップＳ１０９）、データの連続書き込み中でない場合には、該ホスト機器２から発行されたコマンドを実行する（ステップＳ１１０）。【００４９】
また、ステップＳ１０９の処理において、データの連続書き込み中の場合、メモリコントローラ４は、コピー処理を実行し（ステップＳ１１１）、該コピー処理が終了すると連続書き込みフラグをクリアし（ステップＳ１１２）、ステップＳ１１０の処理を実行する。【００５０】
次に、メモリカード１、およびホスト機器２におけるデータ書き込み動作について、図４〜図６を用いて詳しく説明する。【００５１】
図４は、メモリカード１、およびホスト機器２における通常のデータ書き込み動作例を示す動作シーケンスの説明図である。この図４では、データＤ１，Ｄ２に分割されて転送される書き込みデータと、その書き込みデータとは異なる新たな書き込みデータであるデータＤ３とをメモリカード１にそれぞれ書き込む場合の動作シーケンスを示したものである。【００５２】
図４においては、左側から右側にかけて、ホスト機器２、メモリコントローラ４、および不揮発性半導体メモリ３のシーケンス動作をそれぞれ示しており、上方から下方にかけては、時間経過を示している。また、不揮発性半導体メモリ３の右側は、該不揮発性半導体メモリ３のメモリアレイにおけるブロック（消去済みのブロックＢ、および書き込み済み（書き込み対象）のブロックＡ）のイメージを示している。【００５３】
まず、ホスト機器２は、データ転送情報を含んだライトコマンドを発行し、該ライトコマンド、およびデータＤ１をメモリコントローラ４に対して転送する（シーケンスＳｅ１０，Ｓ１１）。データ転送情報は、たとえば、転送開始アドレス、ならびに転送容量などの設定情報からなる。【００５４】
これを受けて、メモリコントローラ４は、データＤ１を消去済みのブロックＢに書き込みする（シーケンスＳｅ１２）。データＤ１の書き込みが終了すると、メモリコントローラ４は、書き込み処理が終了したことを示す終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ１３）。【００５５】
続いて、ホスト機器２は、データ転送情報を含んだライトコマンドをメモリコントローラ４に対して発行する（シーケンスＳｅ１４）。メモリコントローラ４は、データ転送情報から、データＤ２の先頭アドレスが、データＤ１の最終アドレスと連続しているか否かを判断する（シーケンスＳｅ１５）。【００５６】
アドレスが連続していると判断すると、メモリコントローラ４は、データＤ１が書き込まれたブロックＢに転送されたデータＤ２（シーケンスＳｅ１６）を連続して書き込みする（シーケンスＳｅ１７）。【００５７】
メモリコントローラ４は、データＤ２の書き込み終了後、終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ１８）。終了コマンドを受けて、ホスト機器２は、データ転送情報を含んだライトコマンドをメモリコントローラ４に対して発行する（シーケンスＳｅ１９）。【００５８】
メモリコントローラ４は、そのデータ転送情報から、データＤ３の先頭アドレスが、データＤ２の最終アドレスと連続しているか否かを判断する（シーケンスＳｅ２０）。前述したようにデータＤ３は、データＤ１，Ｄ２とは異なる新たなデータである。【００５９】
よって、アドレスが連続していないので、メモリコントローラ４は、コピー処理を開始する（シーケンスＳｅ２１）。このコピー処理において、データＤ２の最終アドレスの次アドレスから、データＤ３が書き込まれる先頭アドレスの前アドレスまで書き込み済みのブロックＡの元データをブロックＢにコピーする。【００６０】
コピー処理が終了すると（シーケンスＳｅ２２）、ホスト機器２はデータＤ３をメモリコントローラ４に転送する（シーケンスＳｅ２３）。メモリコントローラ４は、ブロックＢにデータＤ３の書き込みを行い（シーケンスＳｅ２４）、書き込みが終了すると終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ２５）。【００６１】
図５は、データＤ１，Ｄ２に分割されて転送される書き込みデータを書き込んだ後、ホスト機器２から読み出しコマンドが発行され、データＤ３の読み出しが行われる場合の動作シーケンスを示したものである。【００６２】
この図５においても、左側から右側にかけて、ホスト機器２、メモリコントローラ４、および不揮発性半導体メモリ３のシーケンス動作をそれぞれ示しており、上方から下方にかけては、時間経過を示している。【００６３】
まず、ホスト機器２は、データ転送情報を含んだライトコマンドを発行し、該ライトコマンド、およびデータＤ１をメモリコントローラ４に対して転送する（シーケンスＳｅ１０１，Ｓｅ１０２）。【００６４】
これを受けて、メモリコントローラ４は、データＤ１を消去済みのブロックに書き込みする（シーケンスＳｅ１０３）。その後、メモリコントローラ４は、書き込み処理が終了したことを示す終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ１０４）。【００６５】
続いて、ホスト機器２は、データ転送情報を含んだライトコマンドをメモリコントローラ４に対して発行する（シーケンスＳｅ１０５）。メモリコントローラ４は、データ転送情報から、データＤ２の先頭アドレスが、データＤ１の最終アドレスと連続しているか否かを判断する（シーケンスＳｅ１０６）。【００６６】
アドレスが連続していると、データＤ１が書き込まれたブロックに、転送されたデータＤ２（シーケンスＳｅ１０７）を連続して書き込みする（シーケンスＳｅ１０８）。メモリコントローラ４は、データＤ２の書き込み終了後、終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ１０９）。【００６７】
次に、終了コマンドを受けると、ホスト機器２は、データ転送情報を含んだリードコマンドをメモリコントローラ４に対して発行する（シーケンスＳｅ１１０）。メモリコントローラ４は、受け取ったコマンドがライトコマンドでないと判断すると（シーケンスＳｅ１１１）、コピー処理を開始する（シーケンスＳｅ１１２）。【００６８】
そして、コピー処理が終了すると（シーケンスＳｅ１１３）、メモリコントローラ４は、データ転送情報に基づいて、不揮発性半導体メモリ３からデータＤ３を読み出し（シーケンスＳｅ１１４）、その読み出したデータＤ３をホスト機器２に転送する（シーケンスＳｅ１１５）。【００６９】
図６は、データＤ１，Ｄ２に分割されて転送される書き込みデータを書き込んだ後、任意の期間が経過してもホスト機器２からの応答がない場合の動作シーケンスを示してものである。【００７０】
この図６も、左側から右側にかけて、ホスト機器２、メモリコントローラ４、および不揮発性半導体メモリ３のシーケンス動作をそれぞれ示しており、上方から下方にかけては、時間経過を示している。【００７１】
まず、ホスト機器２は、データ転送情報を含んだライトコマンドを発行し、該ライトコマンド、およびデータＤ１をメモリコントローラ４に対して転送する（シーケンスＳｅ２０１，Ｓｅ２０２）。【００７２】
これを受けて、メモリコントローラ４は、データＤ１を消去済みのブロックに書き込みする（シーケンスＳｅ２０３）。その後、メモリコントローラ４は、書き込み処理が終了したことを示す終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ２０４）。【００７３】
続いて、ホスト機器２は、データ転送情報を含んだライトコマンドをメモリコントローラ４に対して発行する（シーケンスＳｅ２０５）。メモリコントローラ４は、データ転送情報から、データＤ２の先頭アドレスが、データＤ１の最終アドレスと連続しているか否かを判断する（シーケンスＳｅ２０６）。【００７４】
アドレスが連続していると、データＤ１が書き込まれたブロックＢに、転送されたデータＤ２（シーケンスＳｅ２０７）を連続して書き込みする（シーケンスＳｅ２０８）。データＤ２の書き込み終了後、メモリコントローラ４は、終了コマンドをホスト機器２に対して出力する（シーケンスＳｅ２０９）。【００７５】
その後、ホスト機器２からメモリカード１に対して、予め設定された期間内にアクセスがない場合（シーケンスＳｅ２１０）、メモリコントローラ４は、コピー処理を開始する（シーケンスＳｅ２１１）。コピー処理が終了となる（シーケンスＳｅ２１２）。【００７６】
図７は、本発明者が検討したライトコマンドによるデータ書き込み毎にコピー処理が行われるメモリカードにおけるデータ書き込み動作例を示す動作シーケンスの説明図である。【００７７】
図７においても、左側から右側にかけて、ホスト機器、メモリコントローラ、および不揮発性半導体メモリのシーケンス動作をそれぞれ示しており、上方から下方にかけては、時間経過を示している。また、不揮発性半導体メモリの右側は、該不揮発性半導体メモリのメモリアレイにおけるブロック（消去済みのブロックＢ、および書き込み済み（書き込み対象）のブロックＡ）のイメージを示している。【００７８】
まず、ホスト機器は、データ転送情報を含んだライトコマンドを発行し、該ライトコマンド、およびデータＤ１をメモリコントローラに対して転送する（シーケンスＳｅ３０１，Ｓｅ３０２）。【００７９】
これを受けて、メモリコントローラは、データＤ１を消去済みのブロックＢに書き込む（シーケンスＳｅ３０３）。データＤ１の書き込みが終了すると、メモリコントローラは、データＤ１の最終アドレスの次アドレスから、ブロックＢの最終アドレスまで書き込み済みのブロックＡの元データをブロックＢにコピーする（シーケンスＳｅ３０４）。このコピー処理の期間は、ホスト機器がメモリカードにアクセスすることができない。【００８０】
コピー処理が終了すると（シーケンスＳｅ３０５）、メモリコントローラは、終了コマンドをホスト機器に対して出力する（シーケンスＳ３０６）。これを受けて、ホスト機器は、データ転送情報を含んだライトコマンド、およびデータＤをメモリコントローラに対して転送する（シーケンスＳｅ３０７，Ｓｅ３０８）。【００８１】
メモリコントローラは、データ転送情報から、新たな消去済みのブロックＣに転送されたデータＤ２を書き込み（シーケンスＳｅ３０９）、データＤ２の書き込み終了後、ブロックＣにおけるコピー処理を開始する（シーケンスＳｅ３１０）。このコピー処理において、データＤ２以外のブロックＢの元データがブロックＣにコピーされる。【００８２】
コピー処理が終了すると（シーケンスＳｅ３１１）、メモリコントローラは、終了コマンドをホスト機器に対して出力し（シーケンスＳｅ３１２）、書き込みが終了となる。【００８３】
このように、本発明の連続書き込みを行わない場合、１回のライトコマンドによる書き込み動作で１回のコピー処理が発生してしまうことになる。たとえば、１ブロックのサイズが１２８ＫＢで、ホストが１回のライトコマンドにより２ｋＢのデータ書き込みを行う場合には、データ書き込みの差分である１２６ｋＢ（１２８ｋＢ−２ｋＢ）分のコピー処理が発生することなる。【００８４】
ホスト機器が連続したデータ１２８ｋＢを２ｋＢ毎に分割し、６４回のライトコマンドを発行してデータを書き込む際には、１２６ｋＢ×６４回＝８０６４ｋＢものコピー処理が行われることになり、書き込み処理時間が非常にかかってしまうことになる。【００８５】
一方、本実施の形態に示した連続書き込み処理を行うメモリカード１では、連続したデータ１２８ｋＢを２ｋＢ毎に分割してデータ書き込みを行う場合でも、前述した８０６４ｋＢものコピー処理を不要にすることができる。【００８６】
それにより、本実施の形態によれば、メモリカード１のデータ書き込み時間を大幅に短縮することができ、該メモリカード１の性能を向上させることができる。【００８７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。【００８８】
たとえば、前記実施の形態では、ホスト機器２にメモリカード１が接続された構成（図１）としたが、図８に示すように、ホスト機器２とメモリカード１とを該メモリカード１の読み書き制御を行うメモリカードリーダライタ５を介して接続する構成としてもよい。      【００８９】
この場合には、メモリカードリーダライタ５に設けられたコントローラ６が、連続書き込みの制御を行うことになる。それによっても、メモリカード１のデータ書き込み時間を大幅に短縮することが可能となる。
【産業上の利用可能性】
【００９０】
本発明は、メモリカードにおけるデータの書き込み時間の短縮化に適している。
【図１】
2007116476.tif 000003
【図２】
2007116476.tif 000004
【図３】
2007116476.tif 000005
【図４】
2007116476.tif 000006
【図５】
2007116476.tif 000007
【図６】
2007116476.tif 000008
【図７】
2007116476.tif 000009
【図８】
2007116476.tif 000010
【国際調査報告】
2007116476.tif 000011
2007116476.tif 000012
2007116476.tif 000013
2007116476.tif 000014