(57)【要約】【課題】ホストにより記憶装置のビジー時間を設定することが可能なメモリシステム及び記憶装置を提供する。【解決手段】記憶装置は、複数のデータ記憶領域を有する不揮発性メモリと、不揮発性メモリの読み出し及び書き込みを制御するコントローラとを有する。ホストは、記憶装置の動作に先立って、記憶装置の動作に必要で、許容可能な最大ビジー時間を前記記憶装置に指示する。【選択図】      図３
2010044570.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ記憶領域を有する不揮発性メモリと、前記不揮発性メモリの読み出し及び書き込みを制御するコントローラとを有する記憶装置と、
前記記憶装置が接続されるホストとを有し、
前記ホストは、前記記憶装置の動作に先立って、前記記憶装置の前記動作に必要で、許容可能な最大ビジー時間を前記記憶装置に指示することを特徴とするストレージシステム。
【請求項２】
複数のデータ記憶領域を有する不揮発性メモリと、
前記不揮発性メモリの読み出し及び書き込みを制御するコントローラとを具備し、
前記コントローラは、ホストから指示された許容可能な最大ビジー時間の範囲内で、ビジー信号を前記ホストに示すことを特徴とする記憶装置。
【請求項３】
前記許容可能な最大ビジー時間内で、前記ホストからの書き込み命令に対応する書き込み処理を行い、先行する書き込み処理で発生した未整理状態のデータの整理処理を行うことを特徴とする請求項２記載の記憶装置。
【請求項４】
複数の書き込みタスクに対して一旦設定された許容可能な最大ビジー時間は、更新されるまで有効であることを特徴とする請求項１記載のストレージシステム又は請求項２記載の記憶装置。
【請求項５】
複数の書き込みタスクの冒頭で設定された許容可能な最大ビジー時間が、各書き込みタスクに有効であることを特徴とする請求項１記載のストレージシステム又は請求項２記載の記憶装置。
【請求項６】
書き込みタスクにおいて、個々の書き込み処理の発生前に設定された許容可能な最大ビジー時間が続く書き込み処理に有効であることを特徴とする請求項１記載のストレージシステム又は請求項２記載の記憶装置。
【請求項７】
前記許容可能な最大ビジー時間は、第１の優先度、第２の優先度、及び第３の優先度を有し、
前記第１の優先度は、前記タスク内の１つの書き込み処理に対応して設定される１回限り有効な許容可能な最大ビジー時間であり、
前記第２の優先度は、前記書き込みタスクの前で設定される１つの書き込みタスクに限り有効な許容可能な最大ビジー時間であり、
前記第３の優先度は、複数の前記書き込みタスクに対して共通に設定される許容可能な最大ビジー時間であることを特徴とする請求項１記載のストレージシステム又は請求項２記載の記憶装置。
【請求項８】
前記ホストが記憶装置に許容可能な最大ビジー時間を指示したとき、記憶装置がそれを受け入れ可能かどうかを応答するプロトコルを有することを特徴とする請求項１記載のストレージシステム又は請求項２記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば不揮発性メモリとしてのフラッシュメモリを有する記憶装置と、この記憶装置を用いたストレージシステムに関する。
【背景技術】
【０００２】
近時、例えばＮＡＮＤ型フラッシュメモリを用いた半導体記憶装置が量産され、音楽録音再生装置等の記憶装置に利用されている。
【０００３】
ＮＡＮＤ型フラッシュメモリは、ブロック内に記憶されたデータを上書きすることができない。このため、例えば第１のブロックに既に書き込まれた論理ブロックアドレスと同じ論理ブロックアドレスのデータを書き込む場合、第１のブロックを一旦消去し、論理ブロックアドレスのデータを書き込む必要がある。この場合、特定の論理ブロックアドレスのデータの書き換えは、特定の物理ブロックアドレスの書き換えとなり、フラッシュメモリの書き換え回数を冗長させる。このため、先ず、空きブロックとしての第２のブロックが新たにアサインされる。この第２のブロックに、その論理ブロックアドレスのデータが書き込まれ、第１のブロックが消去されて空きブロックとなる。また、データの更新状況によっては、空きブロックとしての第３のブロックがアサインされ、第１のブロックに書き込まれたデータと第２のブロックに書き込まれたデータが第３のブロックに書き込まれてマージされ、この後、第１、第２のブロックが消去され、空きブロックとされる。
【０００４】
このように、フラッシュメモリは、データの書き込み処理において、データのコピー動作や消去動作及び消去ブロック管理に伴う内部動作が間欠的に発生する。このフラッシュメモリの内部動作の実行中、フラッシュメモリを有する記憶装置からホストにビジー信号が送信される。このビジー信号が長時間続き、ホストが長時間待たされた結果、タイムアウトをおこし、書き込みを正常に終了できない場合がある。
【０００５】
例えばホストが録音装置である場合を仮定すると、録音装置は、一定間隔で音響信号をサンプリングしてバッファに一時的に格納し、バッファ内のデータは、記憶装置に書き込まれる。このような動作が順次繰り返されるが、バッファの記憶容量には限りがあるため、記憶装置への書き込みが長時間待たされた場合、バッファに記憶されているデータが、次にサンプリングされたデータに上書きされて消失する。このため、記憶装置にはホストが期待したデータの全てが記憶できないことになる。
【０００６】
一方、記憶装置からホストに対して長時間のビジー信号を出さないようにすることが考えられる。すなわち、例えば記憶装置の内部動作が発生した場合において、この内部動作のうち、例えば消去動作を省略することにより、ビジー時間を短縮することが考えられる。この場合、記憶されたデータの欠落を防止することができるが、未消去のブロックが残るため、利用可能な記憶領域が減少し、最終的には未消去ブロックをどこかでまとめて消去する時間が、ホストの期待しない時間帯で必要となる。
【０００７】
このように、ビジー信号の送信時間は、記憶装置により設定されているため、ホストの仕様に適合しない場合、適正な書き込み処理ができないという問題を有している。
【０００８】
尚、関連技術として、フラッシュメモリに対するデータ書き換え時におけるデータ消去中に、パラレルインターフェース制御部がホスト装置に通知するビジー信号の解除タイミングを所定時間遅延させる技術が開発されている（例えば特許文献１参照）。また、バッファメモリが、コピー処理後にフラッシュメモリに書き込むべきデータを受信した時点又はその直前に、カードコントローラからホストインターフェースにビジー延長設定信号を出力する技術が開発されている（例えば特許文献２参照）。
【特許文献１】特開平１１−２１２８６２号公報
【特許文献２】特開２００７−１８２１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、ホストにより記憶装置のビジー時間を設定することが可能なメモリシステム及び記憶装置を提供しようとするものである。
【課題を解決するための手段】
【００１０】
本発明のストレージシステムの態様は、複数のデータ記憶領域を有する不揮発性メモリと、前記不揮発性メモリの読み出し及び書き込みを制御するコントローラとを有する記憶装置と、前記記憶装置が接続されるホストとを有し、前記ホストは、前記記憶装置の動作に先立って、前記記憶装置の前記動作に必要で、許容可能な最大ビジー時間を前記記憶装置に指示することを特徴とする。
【００１１】
本発明の記憶装置の態様は、複数のデータ記憶領域を有する不揮発性メモリと、前記不揮発性メモリの読み出し及び書き込みを制御するコントローラとを具備し、前記コントローラは、ホストから指示された許容可能な最大ビジー時間の間、ビジー信号を前記ホストに送ることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ホストにより記憶装置のビジー時間を設定することが可能なメモリシステム及び記憶装置を提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１４】
図２は、本実施形態が適用される記憶装置、例えばメモリカードの一例を示している。図２において、記憶装置としての例えばメモリカード１はホスト機器（以下、ホストと称す）１０に接続される。ホスト１０は、接続されるメモリカード１をアクセスするためのハードウェア及びソフトウェア（システム）を備えている。このホスト１０は、メモリカード1に対して、データの書き込み、読み出しのアクセスを行う。
【００１５】
メモリカード１は、ホスト１０に接続されたとき、電源が供給されて動作し、ホスト１０からのアクセスに応じた処理を行う。このメモリカード１は、ＮＡＮＤ型フラッシュメモリ２及びコントローラ３を有している。
【００１６】
コントローラ３は、メモリインターフェース部４、ホストインターフェース部５、バッファ６、ＣＰＵ７、ＲＯＭ（Read Only Memory）８、及びＲＡＭ（Random Access Memory）９を有している。
【００１７】
メモリインターフェース部４は、コントローラ３とＮＡＮＤ型フラッシュメモリ２との間のインターフェース処理を行う。メモリインターフェース部４は、エラー訂正処理回路（ＥＣＣ）４ａを有し、このＥＣＣ４ａにより、フラッシュメモリ２から読み出されたデータのエラーを訂正する。ホストインターフェース部５は、コントローラ３とホスト１０との間のインターフェース処理を行う。
【００１８】
バッファ６は、ホスト１０から送られてくるデータをＮＡＮＤ型フラッシュメモリ２へ書き込む際に、一定量（例えば１ページ分）のデータを一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ２から読み出されるデータをホスト１０へ送り出す際に、一定量のデータを一時的に記憶したりする。
【００１９】
ＣＰＵ７は、メモリカード１全体の動作を司るものである。このＣＰＵ７は、例えばメモリカード１に電源が供給された場合、ＲＯＭ８に格納されているファームウェア(制御プログラム)に従って処理を開始する。即ち、ＣＰＵ７は、処理に必要な各種テーブル（管理データ）をＲＡＭ９上に作成したり、ホスト１０からの書き込みコマンド（命令）、読み出しコマンドを受けてＮＡＮＤ型フラッシュメモリ２上の該当領域をアクセスしたり、ＮＡＮＤ型フラッシュメモリ２をアクセスするにあたってホストからの論理アドレスと物理アドレスとを変換したり、バッファ６を通じてデータ転送処理を制御したりする。さらに、ＣＰＵ７は、コマンドの応答として、ホスト１０に例えばレディ又はビジー（Ｒ／Ｂ）信号を出力する。
【００２０】
ＲＯＭ８は、ＣＰＵ７により使用される制御プログラムなどを格納するメモリである。ＲＡＭ９は、ＣＰＵ７の作業エリアとして使用され、各種のテーブル等を記憶する揮発性メモリである。
【００２１】
（第１の実施形態）
図２、図３、図４は、第１の実施形態を示すものであり、図２は、ホスト１０とメモリカード１とのプロトコルの一例を示し、図３は、ビジー時間設定の一例を示し、図４は、書き込み処理の一例を示している。
【００２２】
第１の実施形態において、ホスト１０は、メモリカード１に対して書き込み行なう場合、書き込みコマンドの発行に先立って、ビジー時間を設定するための指示を行なう。すなわち、ホスト１０は、図２に示すように、先ず、メモリカード１に対してビジー時間設定指示を行なう。
【００２３】
図３（ａ）は、ビジー時間設定指示ＢＴＤの一例を示している。ビジー時間設定指示ＢＴＤは、コマンド“００ｈ”（ｈは、１６進を示す）、アドレスサイクル、及びコマンド“５７ｈ”により構成されている。コマンド“００ｈ”“５７ｈ”は、汎用性の高いコマンドであり、コマンド“００ｈ”に続くアドレスサイクルにおいて、コマンドの定義及びビジー時間ＢＴが指定される。 “５７ｈ”は、アドレスサイクルの終了を示すとともに、ＢＴＤを実行するコマンドである。
【００２４】
具体的には、図３（ｂ）に示すように、アドレスサイクルにおいて、パラメータの定義及びパラメータが指定される。第１の実施形態の場合、パラメータの定義は、ビジー時間の指定を示し、パラメータは、ビジー時間を示している。本実施形態において、以下、コマンド“００ｈ”に続くアドレスサイクルを単にビジー時間ＢＴと記す。ビジー時間ＢＴは、ホスト１０が例えばこの書き込み処理に許容する最大の時間である。
【００２５】
メモリカード１は、コマンド“００ｈ”、ビジー時間ＢＴ、コマンド“５７ｈ”を順次受け、受けたコマンドを処理する。すなわち、ＣＰＵ７は、コマンド“００ｈ”を受信すると、コマンド“００ｈ”の後に受信された信号からビジー時間ＢＴを認識する。次いで、コマンド“５７ｈ”を受けた後、ＣＰＵ７は必要な内部処理を終え、レディ信号をホスト１０に出力する。
【００２６】
ホスト１０は、レディ信号を受けると、メモリカードに対して書き込み指示を行なう。この書き込み指示は、図４（ａ）に示すように、コマンド“８０ｈ”、スタートアドレス“ＳＴＡ”、データ“ＤＴ”、及びコマンド“１０ｈ”により構成されている。コマンド“８０ｈ”は書き込みコマンドであり、この書き込みコマンド“８０ｈ”に続くスタートアドレスは、書き込みアドレスを示し、データは、ホストからの書き込みデータを示している。コマンド“１０ｈ”は書き込み実行を示している。書き込みコマンド“８０ｈ”は、コマンド“１０ｈ”とセットで使用される。
【００２７】
スタートアドレスは、図４（ｂ）に示すように、セクタカウントとセクタアドレスとにより構成されている。ホストは、セクタアドレスを先頭に、セクタカウント分の書き込みを行うことを、ここで宣言している。メモリカード１のＣＰＵは、書き込みコマンド“８０ｈ”が供給されると、続くスタートアドレスＳＴＡを認識し、データＤＴをバッファとしてのＲＡＭ９に転送する。この後、書き込み実行を示すコマンド“１０ｈ”が供給されると、ホストにビジー信号を出力し、フラッシュメモリに対して、ＲＡＭ９に保持されたデータを書き込む。このとき、ビジー時間設定指示ＢＴＤにおいて指定されたビジー時間ＢＴ以内のビジー信号が出力される。このビジー時間ＢＴの間、ＣＰＵ７は、書き込みコマンドにより指定されたアドレスにデータを書き込む。この書き込み処理の途中において、新たなブロックのアサインや、旧ブロックから新ブロックへのデータのコピーや旧ブロックの消去を伴う内部動作が発生した場合、ＣＰＵ７は、指定されたビジー時間ＢＴの範囲内において、これらの内部動作を実行する。指定されたビジー時間ＢＴの内において内部動作を全て終了することができなかった場合、残りの内部動作は、次のビジー時間内に実行される。このように、内部動作は、ビジー時間毎に分散して実行される。すなわち、ＣＰＵ７は、ビジー時間ＢＴ内の空き時間で、先行する書き込み処理において発生した未整理状態のデータの整理処理を行なう。
【００２８】
尚、設定されたビジー時間内に書き込み処理が終了し、且つ内部動作の必要がない場合、ＣＰＵ７は、指定されたビジー時間ＢＴを待たずにレディ信号をホスト１０に送信する。このため、書き込み処理の無用な時間を除去でき、書き込み処理の高速化を図ることができる。
【００２９】
上記第１の実施形態によれば、書き込み処理を行なう場合、書き込みコマンドの発行に先立って、ホスト１０からメモリカード１に対してビジー時間設定指示が行なわれる。このビジー時間設定指示により設定されるビジー時間は、ホスト１０が書き込み処理に対して許容する最大のビジー時間である。このため、データの書き込み途中において、ホスト内のバッファがデータを消失することを回避でき、記憶されるデータの一部が欠落することを防止できる。
【００３０】
また、ビジー時間設定指示により設定されるビジー時間は、ホスト１０が書き込み処理に対して許容する最大のビジー時間であり、このビジー時間内における書き込み処理の余剰時間を用いて、ＣＰＵ７は、ブロック消去等の内部動作を実行し、先行する書き込み処理で発生した未整理状態のデータを整理している。このため、メモリカード１は、ＮＡＮＤ型フラッシュメモリ２に対し最適な書き込み処理を実行できる。したがって、信頼性の高いストレージシステムを得ることができる。
【００３１】
（第２の実施形態）
図５、図６、図７を参照して第２の実施形態について説明する。
【００３２】
第１の実施形態は、１回の書き込み処理に対して、ホストからビジー時間を指定する場合について説明した。これに対して、第２の実施形態は、１つ又は複数のタスクに対してビジー時間を設定する場合について説明する。
【００３３】
第２の実施形態において、タスクとは、例えばセクタカウントに設定された数値の範囲内の書き込み処理である。前述したように、ホスト１０から書き込みコマンド“８０ｈ”に続いてセクタカウントが出力される。このセクタカウントに数値“ｎ”が設定された場合、この数値“ｎ”が“１”となるまでの書き込み処理をタスクと呼ぶ。
【００３４】
図５、図６、図７は、第２の実施形態を示すものであり、例えば複数のタスクを連続して実行する場合におけるコマンドシーケンスを示している。
【００３５】
図５は、タスク毎に、その１つのタスクにのみ有効なビジー時間設定指示ＢＴＤ１が行なわれる場合を示している。第１のタスクは、例えば８回の書き込み（セクタカウント８）の処理を行う場合を示している。第１のタスクにおいて、複数の書き込み処理に先行して各書き込み処理のビジー時間設定指示ＢＴＤ１が行なわれる。このビジー時間設定指示ＢＴＤ１において、ビジー時間ＢＴ１が指示されると、その後の８回の書き込み処理それぞれにビジー時間ＢＴ１が設定される。
【００３６】
具体的には、ホスト１０からコマンド“００ｈ”に続くアドレスサイクルにおいて、例えばビジー時間ＢＴ１が指示される。次いで、アドレスサイクルの終了を示すコマンド“５７ｈ”が発行される。すると、メモリカード１からレディ信号（Ｂ２Ｒ）がホスト１０に送信される。尚、（Ｂ２Ｒ）は、レディ／ビジー（Ｒ／Ｂ）信号が変化する期間を示している。
【００３７】
この後、ホスト１０から８個の書き込み処理を示すコマンドセットが順次メモリカード１に送信される。各コマンドセットは、書き込みコマンド“８０ｈ”、スタートアドレス、データＤＴ、コマンド“１０ｈ”により構成されている。メモリカード１は、各コマンドセットのコマンド“１０ｈ”を受けると、ホストにビジー信号を送信する。このビジー信号の送信期間は、ビジー時間設定指示ＢＴＤ１において指示された最大ビジー時間ＢＴ１である。この例の場合、第１のタスクの書き込み処理のビジー時間は、全てＢＴ１以内で出力される。
【００３８】
第１のタスクと同様に第２のタスクにおいて、複数の書き込み処理に先行して各書き込み処理のビジー時間設定指示ＢＴＤ１が行なわれる。このビジー時間設定指示ＢＴＤ１において、最大ビジー時間ＢＴ２が指示されると、その後の８回の書き込み処理のビジー時間は、全てＢＴ２以内で出力される。
【００３９】
図６は、複数のタスクに対して共通のビジー時間を設定する場合を示しており、図５と同一部分には同一符号を付している。この場合、第１のタスクに先行して書き込み処理のビジー時間設定指示ＢＴＤ２が行なわれる。すなわち、ホスト１０からコマンド“００ｈ”に続くアドレスサイクルにおいて、例えばビジー時間ＢＴ２が指示される。次いで、アドレスサイクルの終了を示すコマンド“５７ｈ”が発行される。すると、メモリカード１からレディ信号（Ｂ２Ｒ）がホスト１０に送信される。この後、ホスト１０から８個の書き込み処理を示すコマンドセットが順次メモリカード１に送信される。各コマンドセットは、書き込みコマンド“８０ｈ”、スタートアドレス、データＤＴ、コマンド“１０ｈ”により構成されている。メモリカード１は、各コマンドセットのコマンド“１０ｈ”を受けると、ホストにビジー信号を送信する。このビジー信号の送信期間は、ビジー時間設定指示において指示された時間ＢＴ２以内である。この例の場合、第１のタスクから第ｎのタスクの全ての最大ビジー時間はＢＴ２以内で出力される。
【００４０】
図７は、図５に示す例の変形例を示すものであり、あるタスク内の１つの書き込み処理に対してのみ有効なビジー時間を設定する場合を示している。図７において、図５と同一部分には同一符号を付している。
【００４１】
この例において、第１のタスク乃至第ｎのタスクは、タスク毎にビジー時間を設定可能とされており、第１のタスクは、ビジー時間設定指示ＢＴＤ１によりビジー時間がＢＴ１に設定され、第ｎのタスクは、ビジー時間設定指示ＢＴＤ１によりビジー時間がＢＴ２に設定される。さらに、第１のタスクは、書き込み処理の途中にビジー時間設定指示ＢＴＤ３が挿入されている。すなわち、１番目の書き込み処理（セクタカウント８）と２番目の書き込み処理（セクタカウント７）との間でビジー時間設定指示ＢＴＤ３が行なわれる。この場合、１番目の書き込み処理（セクタカウント８）と３番目（セクタカウント６）から８番目（セクタカウント１）は、ビジー時間設定指示ＢＴＤ１により指示されたビジー時間ＢＴ１に設定される。
【００４２】
また、ビジー時間設定指示ＢＴＤ３の次の２番目の書き込み処理（セクタカウント７）は、ビジー時間設定指示ＢＴＤ３で指示された最大ビジー時間ＢＴ３が設定される。すなわち、ビジー時間設定指示ＢＴＤ３において、ホスト１０からコマンド“００ｈ”に続くアドレスサイクルにおいて、例えばビジー時間ＢＴ３が指示される。次いで、アドレスサイクルの終了を示すコマンド“５７ｈ”が発行される。すると、メモリカード１からレディ信号（Ｂ２Ｒ）がホスト１０に送信される。この後、ホスト１０から書き込みコマンド“８０ｈ”、スタートアドレス、データＤＴ、コマンド“１０ｈ”が順次メモリカード１に送信される。メモリカード１はコマンド“１０ｈ”を受けると、ホストにビジー信号を送信する。このビジー信号の送信期間は、直前のビジー時間設定指示ＢＴＤ３において指示された時間ＢＴ３である。
【００４３】
このように、書き込み処理の途中に挿入されたビジー時間設定指示ＢＴＤ３が、タスクの先頭において実行されたビジー時間設定指示ＢＴＤ１より優先される。１つのタスク内に発生されるビジー時間設定指示ＢＴＤ３は、１つに限定されるものではなく、複数個発生させることも可能である。いずれの場合においても、１つのビジー時間設定指示ＢＴＤ３は、次の書き込み処理についてのみ有効である。
【００４４】
ここで、図５、図６、図７に示す例のビジー時間設定指示ＢＴＤ１、ＢＴＤ２、ＢＴＤ３の優先順位は、次のようになる。
【００４５】
ＢＴＤ２＜ＢＴＤ１＜ＢＴＤ３
すなわち、書き込み処理の途中で実行されるビジー時間設定指示ＢＴＤ３が最も優先順位が高く、次に、各タスクの先頭において実行されるビジー時間設定指示ＢＴＤ１、次に複数のタスクの先頭において実行されるビジー時間設定指示ＢＴＤ２の順となる。
【００４６】
上記第２の実施形態によれば、タスク毎にビジー時間の設定を指示したり、複数のタスクに対して共通のビジー時間の設定を指示したりすることができる。このため、複数の書き込み処理毎にビジー時間を設定する必要がないため、書き込み処理の高速化を図ることができるとともに、ビジー時間設定指示に要するホスト１０の負担を軽減することができる。
【００４７】
また、複数のタスクに対して一旦設定された許容可能な最大ビジー時間設定が、後のビジー時間設定指示により更新されるまで有効とされる。このため、ビジー時間設定指示に要する手間を省くことができる。
【００４８】
さらに、タスクに含まれる書き込み処理の途中において、ビジー時間設定指示を可能とし、１つの書き込み処理についてのみ特別のビジー時間を設定可能としている。このため、特定の書き込み処理について、必要なビジー時間を設定することができる。したがって、特定の書き込み処理に対して適正なビジー時間を設定することが可能である。
【００４９】
また、ビジー時間設定指示に優先度を設けているため、ビジー時間を状況に応じて適切に設定することが可能である。
【００５０】
（第３の実施形態）
図８は、第３の実施形態を示している。第１、第２の実施形態において、記憶装置としてのメモリカード１は、ホスト１０によりビジー時間設定指定が行なわれると、指定されたビジー時間を無条件に設定していた。
【００５１】
これに対して、第３の実施形態は、ホスト１０によりビジー時間設定指定を行なった後、そのビジー時間が受け入れ可能か否かが確認される。
【００５２】
すなわち、図８に示すように、ホスト１０によりビジー時間設定指定ＢＴＤがメモリカード１に送信され、メモリカード１よりレディ信号がホスト１０に送られると、ホスト１０は、メモリカード１のステータスを読み出すステータスリードコマンド“７０ｈ”を発行する。メモリカード１は、コマンド“７０ｈ”を受けると、ステータスデータＳＴＤを準備し、ホスト１０はこれを読み出す。ステータスデータＳＴＤは、例えばレディ／ビジーを示すビット、セクタ書き込みのパス／フェイルを示すビット、及びビジー時間の受け入れが可能か否かを示すビット等を含んでいる。ホスト１０は、ステータスデータＳＴＤの対応ビットが受け入れ可能を示す場合、例えば書き込みコマンドシーケンスを実行する。
【００５３】
一方、ステータスデータＳＴＤの対応ビットが受け入れ不可能を示す場合、データ出力要求のコマンドセットが発行する。このコマンドセットは、例えばコマンド“００ｈ”、データ出力要求ＲＱ、及びコマンド“５７ｈ”により構成されている。アドレスサイクルにおけるデータ出力要求ＲＱは、データ出力要求を示すパラメータ定義と、パラメータとしての例えばデータ長により構成されている。
【００５４】
上記コマンドセットを受信したメモリカード１のＣＰＵ７は、設定可能なビジー時間ＢＴ４を算出し、このビジー時間ＢＴ４をデータとしてホスト１０に送信する。
【００５５】
このビジー時間ＢＴ４としてのデータを受信したホスト１０は、このビジー時間ＢＴ４に基づきビジー時間設定指示ＢＴＤを再度メモリカード１に送信する。すなわち、ホスト１０からコマンド“００ｈ”、メモリカード１から供給されたビジー時間ＢＴ４、コマンド“５７ｈ”がメモリカード１に送信される。この後、メモリカード１からレディ信号が送出されると、ホスト１０からデータの書き込み処理を示すコマンドセットがメモリカード１に送信される。メモリカード１は、最大ビジー時間ＢＴ４の期間において、指定された書き込み処理を実行する。
【００５６】
上記第３の実施形態によれば、ホスト１０は、ビジー時間設定指示を行なった後、メモリカード１のステータスデータＳＴＤを読み出し、このステータスデータＳＴＤが受け入れ不可能を示す場合において、メモリカード１に対してデータ出力要求を行い、この要求に応じてメモリカード１から出力されたビジー時間に基づきビジー時間設定指示を行ない、ビジー時間を再設定している。このため、メモリカード１のビジー時間をホスト１０により最適化することができる。したがって、一層適正な書き込み処理を行うことが可能である。
【００５７】
図９は、上記第１乃至第３の実施形態が適用されるメモリカードの内部処理の一例を示している。
【００５８】
前述したように、メモリカード１は、書き込み処理において、先行する書き込み処理で発生した未整理状態のデータを、ビジー時間の余剰時間の範囲において、整理処理している。この未整理状態のデータが多い場合、１つのビジー時間内で整理することは困難である。これを考慮して、ホスト１０は、書き込み処理に対する許容可能な最大ビジー時間を設定して書き込み処理を実行する。
【００５９】
例えば図９（ａ）に示す記憶領域（ブロック）において、先行する書き込み処理により、論理ブロックアドレス（１）〜（４）の書き込みが行なわれ、論理ブロックアドレス（Ａ）〜（Ｄ）が未整理状態であるとする。この場合、図９（ｂ）に示す新たにアサインされた記憶領域の論理ブロックアドレス（５）〜（８）の書き込み処理を行なうとき、ホスト１０により、許容可能な最大ビジー時間ＢＴｍが設定される。このビジー時間の設定は、第１乃至第３の実施形態において説明したビジー時間設定指示を適用できる。
【００６０】
図９（ｃ）に示すように、論理ブロックアドレス（５）〜（８）の書き込み処理は、ビジー時間設定指示により設定されたビジー時間ＢＴｍ内において実行され、論理ブロックアドレス（５）〜（８）の各書き込み処理の余剰時間において、未整理状態の論理ブロックアドレス（Ａ）〜（Ｄ）をコピーや消去することにより、整理することができる。
【００６１】
このように、未整理状態のブロックが複数存在する場合においても、各書き込み処理の余剰時間を用いて、分散して処理することにより、記憶領域の低減、及び書き込み処理の遅延を防止して、未整理状態のデータを整理することができる。
【００６２】
尚、本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において種々変形実施することが可能である。また、各実施形態を選択的に組み合わせて実施することも可能である。
【図面の簡単な説明】
【００６３】
【図１】各実施形態が適用されるメモリシステムを概略的に示す構成図。
【図２】第１の実施形態を示すものであり、ビジー時間設定指示の動作を示す図。
【図３】図３（ａ）は、第１の実施形態に係るビジー時間設定指示の一例を示す図、図３（ｂ）は、図３（ａ）に示すアドレスサイクルの一例を示す図。
【図４】図４（ａ）は、第１の実施形態に係る書き込み処理を示すコマンドセットの一例を示す図、図４（ｂ）は、図４（ａ）に示すスタートアドレスサイクルの一例を示す図。
【図５】第２の実施形態を示すものであり、タスク毎にビジー時間を設定する例を示す図。
【図６】第２の実施形態を示すものであり、複数のタスクにビジー時間を一括して設定する例を示す図。
【図７】第２の実施形態を示すものであり、タスク内に最大の優先度を有するビジー時間を設定する例を示す図。
【図８】第３の実施形態を示すものであり、ホストとメモリカードとの間のコマンド応答に対応してビジー時間を設定する例を示す図。
【図９】第１乃至第３の実施形態を用いた書き込み処理と内部動作の一例を示す図。
【符号の説明】
【００６４】
１…メモリカード、２…ＮＡＮＤ型フラッシュメモリ、３…コントローラ、７…ＣＰＵ、１０…ホスト、ＢＴＤ、ＢＴＤ１〜ＢＴＤ３…ビジー時間設定指示、ＢＴ１〜ＢＴ４…ビジー信号。
【図１】
2010044570.tif 000003
【図２】
2010044570.tif 000004
【図３】
2010044570.tif 000005
【図４】
2010044570.tif 000006
【図５】
2010044570.tif 000007
【図６】
2010044570.tif 000008
【図７】
2010044570.tif 000009
【図８】
2010044570.tif 000010
【図９】
2010044570.tif 000011