説明

メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止

書き込み操作をサスペンドすることにより、メモリアレイにおける読み出し待ち時間を短縮し得る。一実施例では、処理は第1のデータセットをメモリに書き込むことと、第2のメモリ書き込み操作をインタラプトすることと、第2のメモリ書き込み操作のインタラプト後に、メモリから第1のデータセットを読み込むこととを含む。

【発明の詳細な説明】
【背景技術】
【0001】
現在、外部および内蔵フラッシュメモリ両方に用いられる最も一般的なインターフェースは、マルチメディアカード(MMC)および対応する埋め込み式のMMC(e−MMC)である。また、内部および外部フラッシュメモリが単一バスを共有するような、ユニバーサルフラッシュ記憶装置(UFS)などの新規の標準規格も開発されている。これらの標準規格は磁気、光学、および相変化を含む、他の種類のメモリにも適応するように意図されている。
【0002】
MMCまたはe−MMCインターフェースを簡素化するために、メモリカードコントローラは物理メモリインターフェース(例えば、NANDインターフェース)をMMCバスインターフェースに適応させ、さらには、物理メモリの技術に特有のタスクを管理する。NANDメモリにおけるこれらのタスクはデフラグ、不良ブロック管理、エラー修正および検出、摩耗を水平化するアルゴリズム、安全管理、および論理対物理ブロックの再配置を含み得る。これのよりシステムの他の部分の複雑性が軽減されるが、これらの追加的なメモリコントローラタスクの全ては実行に時間を要し、この間メモリが一時的に利用できなくなる場合がある。
【0003】
これにより、例えば、データデフラグまたはガーベジコレクションなどの最新のランニングデータの管理ルーチンに起因してホストコマンドの実行に、メモリカードコントローラが何百ミリ秒よりも長い時間を要する場合がある。この間、カードはビジー状態になり、先のホストコマンドが終了するまで他のホストコマンドを管理できない。この結果、読み出しコマンドへの応答が遅れる。この長くなった待ち時間によりホストの適切な動作が妨げられることがある。
【発明の概要】
【0004】
本発明に関する主題は、本明細書の結論部において特に示され、明確に主張される。だたし、本発明の対象、特徴および利点に加えて、その構成および操作方法の両方に関しては、添付図面と共に参照される以下の詳細な説明を読みことで最もよく理解され得る。
【図面の簡単な説明】
【0005】
【図1】実施形態の態様を示すのに適したe−MMCフラッシュメモリカードコントローラの一部を示す状態図である。
【図2】実施形態に従う、メモリコントローラの一部を示す状態図である。
【図3】実施形態に従う、書き込み操作のサスペンドおよび再開を示すタイミングチャートである。
【図4】実施形態に従う、書き込み操作の中断を示すタイミングチャートである。
【図5】実施形態に従う、書き込み操作のサスペンドおよび再開を説明するプロセスフロー図である。
【図6】実施形態に従う、書き込み操作の中断を説明するプロセスフロー図である。
【図7】他の図に関連する処理および装置を実現可能なホストインターフェースを有する管理メモリを示すブロック図である。
【図8】他の図に関連する処理および装置を実現可能なモバイル機器を示すブロック図である。
【0006】
説明の簡潔さおよび明確さを目的として、図に示す構成要素が必ずしも原寸に比例している訳ではないことが理解される。例えば、一部の構成要素の寸法は、明確さを目的として他の構成要素に対して拡大され得る。さらに、適切に考慮されて、対応するまたは同等の構成要素を示すために複数の図において同じ参照番号が繰り返し用いられる。
【発明を実施するための形態】
【0007】
物流管理システムおよび多くの他の戦略的な需要、並びに業務上の用途のために、メモリ読み出し操作は十分に速く、そして同一データの書き込み後すぐに利用可能になることが好ましい。したがって、下記するように、ホストはメモリコントローラの状態にかかわらずに管理メモリにアクセス可能である。例えば、書き込み操作の進行中、ホストはその進行中の書き込み操作をサスペンドし得、そして読み出し操作を実行し、その後、サスペンドされた書き込みを再開できる。
【0008】
例えば、ホストが管理メモリに保存されたファームウェア各々を有し、メモリコントローラがデータの保存に忙しいランタイムにその一部をロードする必要がある場合に、このようなサスペンド操作は有益となり得る。一実施例では、迅速な読み出し操作を実行するために、新規のコマンドシーケンスにより、ホストは長い書き込み操作をサスペンドかつ再開可能になる。
【0009】
書き込み再開コマンドに続く書き込みサスペンドコマンドは、最悪の条件でさえも数ミリ秒の読み出しアクセスタイムをホストが確保するために用いられ得る。これによりホストは、例えば、書き込み操作を少しの間フリーズすることにより、戦略的な要求に応じてページを実行可能になる。任意の他の長期メモリ管理操作が、同じ方法でフリーズし得る。
【0010】
説明を簡単にするために、以下の説明はe−MMC4.4JEDEC(電子素子技術連合評議会)の(米国電子工業会により公表された)JESD84−A44標準仕様に関連して記述される。ただし、同じ概念は他のメモリ管理プロトコルおよびメモリインターフェースにも適用され得る。
【0011】
内蔵NANDフラッシュメモリまたは個々のリムーバブルカードにおけるNANDフラッシュメモリのどちらも、いかなるシステムに要求される標準的な読み出し速度を容易に達成し得る。ただし、メモリ管理および書き込みアルゴリズムにより、待ち時間はより長くなる。メモリ管理はe−MMC仕様により、メモリカードコントローラに与えられ、このため、いかなる特定の処理が実行されていたとしてもホストは認識しない。したがって、常に高速のメモリ性能を実現するために、メモリ管理タスクに適応するいくつかの方法が必要となる。
【0012】
e−MMCが管理NANDフラッシュメモリカードである場合には、内部メモリカードコントローラが、内部NANDメモリ管理操作における全ての実行を管理する。これらのうちのデフラグおよびガーベジコレクションは予測できず、多大な時間を要する。これらのアルゴリズムは、通常、書き込み/消去コマンド中に実行され、それらの継続時間はNANDフラッシュブロックの占有状態、それ故、外部のホストアプリケーションがメモリシステムにどのようにアクセスするかに応じて決まる。他の種類の物理メモリでは、迅速な読み出しサイクルを妨げ得る他のメモリ管理操作が必要となる。
【0013】
任意の管理アルゴリズムの実行により、予測できない手法により書き込みコマンドの実行時間が長くなる場合がある。この結果、その後の優先度の高い読み出し操作が、仕様により許容される時間よりも長い時間遅れることがある。これはとりわけ、ホストの操作を中断させることがある。
【0014】
本明細書の説明は、e−MMCインターフェースを介してコンピュータ、スマートフォン、メディアプレーヤ、または類似の装置などのホストに連結されるフラッシュメモリカードに関連して記述される。ただし、本発明はこれらに限定されない。メモリの多くの種類はバックグラウンド管理タスクを必要とする。これらのタスクがフラッシュメモリに要求されるものと類似しても、または大きく異なっていても、本発明はこれらのタスクの待ち時間を短縮し得る。本発明は、特有のメモリハードウェア構成に限定されない。メモリは区別可能なカード、区別可能なチップに組み込まれてもよく、または一部の他のデバイスに内蔵されてもよい。メモリがメモリカードとしてパッケージされる場合には、メモリ管理操作はメモリカードコントローラにより実行され得る。ただし、メモリ管理に関与するコントローラは、他の種類のメモリにおいて相違する名前を有し得る。したがって、本発明はメモリとホストとの間に連結されたメモリコントローラと共に、メモリまたは管理メモリに関連して記載される。
【0015】
本発明の実施形態は、簡単な例示を示すことにより、より容易に理解され得る。この例では、ホストシステムはメモリコントローラへの書き込み多重ブロックコマンドを処理する。例示の管理メモリはメモリセルアレイを有し、複数のブロックに分類される。メモリコントローラは連結された管理メモリアレイの中央に位置し、データデフラグ操作をし、さらには実際にはメモリの一部でもよい。従来のフラッシュメモリカードでは、メモリカードコントローラはバッファ内のデータを受信し、その後デフラグ操作に戻る。この操作の次は、新規データの書き込みに続く。これらの操作が終了するまで、ホストはいかなる追加のデータも送信せず、またはいかなるデータも読み出さない。さらに、送信されただけのデータは、デフラグ処理が完了するまでは読み出されない。この例としてはデフラグが利用される。メモリを一時的に利用できなくし得るメモリコントローラにより実行されるいくつかの他の処理がある。
【0016】
標準仕様のe−MMCについての従来の状態図を参照して、この例はより完全に理解され得る。この状態図は図1として示される。本明細書に記載する操作に関連しない詳細の一部は、標準図から除去される。
【0017】
図1に示すように、メモリコントローラの状態はいくつかある。これらは待機状態(stby)10、転送状態(tran)12、データ送信状態(data)14、データ受信状態(rcv)16、プログラミング状態(prg)18、および非接続状態(dis)20を含む。他の状態も規定され得るが、図の簡素化のためにここには示さない。フラッシュメモリにおける、非揮発性記憶装置へのメモリセルの書き込みはプログラミングと呼ばれる。他の種類のメモリにおける、書き込みまたは記憶などのプログラミング状態は異なる名称でもよい。ここに示す特定の状態はe−MMC標準からそのまま参照したものであり、NANDフラッシュに特によく適応するものである。ただし、本発明は他の種類のメモリおよび他の種類の状態機械にも適応し得る。
【0018】
コントローラはコマンドの受信または生成に基づいて、または多くは無いが「操作完了」イベントの発生に基づいてある状態から別の状態に移行する。全てのコマンドはxxが番号であるCMDxxとして数値により規定される。各コマンドは数値的な定義および引数を有する。ただし、多くのコマンドでは引数は要素引数であり、これはいかなる情報を伝達するのに用いられることを意味する。
【0019】
stbyとtranとの間の移行は、CMD7、選択/非選択コマンドを利用してホストにより制御される。同様に、prgとdisとの間の移行、およびdataからstbyへの移行は、CMD7により制御される。コマンドの効果は、コマンド受信時のメモリコントローラの現在の状態に依存する。操作の完了時にdisからstbyへの移行が起こる。
【0020】
前述の簡単な例では、ホストは書き込み多重ブロックコマンドをメモリカードにアドレスする。これはCMD25である。図1に示すように、tran12において、CMD25がホストコントローラにより受信され得る。この例では、コントローラ状態はtranであり、ブロック22における書き込みコマンド(CMD25)の受信後にメモリコントローラ状態はtranからrcvになり、データを受信する。記憶するための、ホストからの全てのデータの受信後(「転送終了」)、またはブロック24における停止コマンド(CMD12)の受信後に、メモリコントローラ状態はprgに移行する。
【0021】
標準仕様に従い、先の書き込みコマンドが完了(ブロック26における「操作完了」)した場合にのみ、メモリコントローラはprgからtranに戻る。ホストはビジー状態では、いかなる他のコマンドもメモリコントローラに送信しない。コントローラがデフラグなどの複雑な操作を実行中の場合には、何ミリ秒間は「プログラミング状態」のままでもよい。
【0022】
標準的な種々の読み出し要求を記載する。これらをCMD8、11、17、18、30、56(r)としてブロック28に示す。これらのコマンドは、メモリコントローラが転送状態にある間にのみ実行され得る。したがって、読み出し要求を迅速に有効にするために、メモリコントローラは現在の状態から転送状態に迅速に移行する。待機状態では、これはCMD7を利用して容易に実行され得る。データ送信状態では、現在の要求が従えばすぐにメモリコントローラはより多くのデータを送信できる。非接続状態では、ブロック36における操作が完了するまでホストは待機し得、その後、待機状態にCMD7を発行するか、CMD7を利用してメモリコントローラをプログラミング状態にするコマンドを出し得る。プログラミング状態はブロック26における操作完了後に転送状態に戻るように移行する。
【0023】
データ受信状態またはプログラム状態において迅速に読み出し要求を提供を可能にするために、速い「ビジー外」メソッドがホストに提供され得る。このようなメソッドは現在のデフラグ、ガーベジコレクション、またはe−MMCにおいて進行中の他の操作をフリーズするための手段をホストに提供し得、これにより、より優先度の高い読み出し操作を実行するためにメモリコントローラを自由にする。停止した操作は後に再開され得る。前述のように、メモリ管理操作は書き込み多重ブロックコマンド(CMD25)により頻繁にトリガされる。
【0024】
簡潔に説明すると、任意のマイクロアクティビティをサスペンドするのに書き込みサスペンドコマンドが用いられ得、これによりDAT0線(ビジー信号)が送信され、デバイスからの読み出しが速くなる。書き込み再開コマンドにより、その後、メモリコントローラがプログラム状態になり得、先にサスペンドされた書き込み操作を完了する。後にマイクロアクティビティを再開させ、かつ書き込み操作を完了させるための少量のデータが保存され得る。書き込みサスペンド後、ホスト側からデバイスに既に入力した全てのこれらのデータブロックは、後の再開のために保存され得る。「ビジー外」または 「サスペンドおよび再開」メソッドを提供するためのいくつかの異なる方法がある。
【0025】
一例では、0xF0F0F0F0(16進数)などの固有の引数を利用した標準停止コマンド(CMD12)が用いられる。標準停止コマンドは、常に要素引数と共に送信され、標準のSTOP_TRANSMISSIONをコマンドする。引数を特定の固有の引数に変更することにより、コマンドの操作および機能は変更され得る。この新規のコマンドは「書き込みサスペンド」コマンドとしても考慮され得る。
【0026】
この例に従えば、書き込みサスペンドコマンドの受信後、コントローラはprg18に移行し、その後、全てのステップを完了することなく、可能な限り早く「操作完了」26に移行する。代わりに、全てのコントローラのバックグラウンド書き込み操作はサスペンドされる。コントローラは、後の書き込み操作を再開および完了するのに必要な全ての情報およびデータを保持または保存するように構成され得る。
【0027】
「操作完了」後、メモリコントローラはtran12に戻る。この状態において、ホストは読み出しコマンド28を管理メモリに送信し得、メモリコントローラは続いてdata14に移行し、そのコマンドを送信する。data状態14において読み出し操作が行われる。読み出し操作がブロック30における「操作完了」に至ると、続いて、メモリコントローラはrev16からprg18まで移行することにより、先の書き込みコマンドを再開し得るtran状態12に戻る。
【0028】
先の書き込みコマンドが再開されない場合には、続いて、先の書き込みコマンドにおいてホストに送信された全てのデータが消去される。再開シーケンスとは別の任意のコマンドシーケンスにより、先の書き込みコマンドは永久に停止され得る。書き込み操作を再開し、tranからprgに移行するための種々の方法が用いられ得る。一例では、ホストにより以下のコマンドシーケンスが生成され得る。
CMD16(0x00000004)
CMD56(0x00000000)
write 4Byte 0xF0F0F0F0
【0029】
ブロック32においてセットブロック長コマンドCMD16が引数「0x00000004」と共に送信され得る。引数は、次のコマンドCMD56のデータ転送長を示す。これはメモリコントローラをrev状態にする、ブロック22における業界標準の書き込みコマンド(CMD56)に続く。引数「0x00000000」は、この場合にはメモリアレイに向かうデータの転送方向を示す第1のビット(ビット0)以外のスタッフビットである。データ受信後、データブロックを書き込むために、それをprg状態にする「転送終了」がメモリコントローラに送信される。この状態になると、続いて、メモリコントローラは先にサスペンドされた書き込み操作を完了する。
【0030】
別の例示では、メモリコントローラを直接「プログラミング」状態にするさらなる目的のために、新規コマンドが用いられ得るか、既存コマンドは追加的な目的を与えられ得る。ブロック34に示すように、CMD6、28、29、38により、メモリコントローラはtranから直接にprgになる。特別な目的に応じてこれらのコマンドは用いられ得る。いずれの場合でも、デバイスを直接にprg状態にするためにコマンドが送信され得、先にサスペンドされた書き込み操作を完了する。この例では、CMD22が用いられる。このコマンドは、現在、e−MMC標準仕様において指定されたアプリケーションにはない。CMD22の代わりに、任意の他の保存してある、または未使用のコマンドが用いられ得るか、このコマンドは所望の処理に応じて変更される。
【0031】
前述の書き込みサスペンドまたはビジー外の状態である場合に、サスペンド後、ホストが読み出しまたは再開コマンドを送信すると、続いて、メンテナンス操作が再開され得る。ただし、別のコマンドが発行された場合には、メモリコントローラは全ての再開情報を消去し得る。これにより、インタラプトされた書き込みコマンドが完了状態になる。別のリスクとして、サスペンド操作が進行中であり、その上、サスペンドされた書き込みに関与するアドレスに、別の読み出しコマンドが発行された場合に、読み出されたデータが未定義であるというリスクがある。
【0032】
第3の例では、書き込み中断コマンドシーケンスが用いられ得る。書き込みコマンド中にe−MMCコントローラにより起動された進行中の全てのメモリメンテナンス操作に突然に割り込み得る中断コマンドが用いられ得る。割り込みにより、ホストは、迅速に実行され得る優先度の高い読み出しコマンドを発行する。
【0033】
書き込み中断コマンドに応答すると、メモリ内の全てのデータの再コピー操作は放棄され得る。この場合には、NANDメモリにおいて関与する物理ブロックは無効であるとみなされる。したがって、メモリに関与する物理ブロックはこの場合でも、新規データの書き込み操作において書き込まれる前に予め消去される。再コピー操作に関係する全てのデータの損失を回避するために、書き込み中断コマンドによりインタラプトされた書き込みコマンドは、その後ホストにより再び発行され得る。これにより、優先度の高い読み出し後に優先度の高い書き込み操作が完了する。
【0034】
書き込み操作が完了前に中断された場合には、メモリコントローラは操作が無事に完了しなかったことを示すエラー信号を発行し得る。これに応答して、ホストは対応する書き込みコマンドをその後再発行し得る。前述の例示のようにホストにより中断コマンドが発行された場合には、その後ホストは最後の書き込み要求を自動的に繰り返すように構成され得る。この場合では、ホストは書き込み操作が停止したことを認識するため、メモリコントローラからのエラー信号を必要としない。
【0035】
別の方法として、ホストからの優先度の高い読み出し要求の応答において、メモリコントローラにより書き込み中断コマンドが発行され得る。中断した書き込み操作を正常な状態に戻すために読み出し要求が提供されると、メモリコントローラは中断した操作を記憶し、自動的に再開し得る。代替的に、メモリコントローラは中断した操作に関するエラー信号を単に発行し得る。エラー信号を受信すると、ホストは最後の書き込み操作を再発行し得る。
【0036】
中断コマンドは種々の方法で実施され得る。一実施例では、第1の例示と同様に、「0xF0F0F0F0」などの新規の引数フォーマットを用いて、停止コマンド(CMD12)は変更され得る。停止コマンドの引数全体がスタッフビットにより構成されるため、さらなる機能をコマンドに追加するのに他の引数が用いられ得る。
【0037】
前述の方法はメモリコントローラまたはホストにおいて実施され得る。ホストが書き込みサスペンドまたは書き込み中断操作に関与している場合には、続いて、このようなコマンドをどのようにサポート可能かをメモリコントローラはホストに示し得る。e−MMC標準では、各MMCカードはEXT_CSD(増量されたカード特有データ)レジスタを含む。このレジスタはカード性能および選択されたモードについての情報を含む。この情報は開始アドレス、記憶容量、パーティション、ブートコード、有効なコマンドセット、タイミングおよび速度仕様、消去された保護モードなどを含む。カードが起動すると、ホストによりカードのレジスタが読み出される。
【0038】
一実施例では、拡張CSDレジスタの特性領域における専用フィールドは、デバイス上の書き込みサスペンド/再開、もしくは書き込み中断コマンド、またはその両方が利用可能なホストプラットフォームと通信するように設定され得る。例えば、拡張CSDレジスタのセグメント領域が用いられ得、これらのコマンドを有効にするか否かをホストが選択可能になる。一実施例では、ホストにより設定されたセグメント領域にバイトが存在し得る。ホストがバイトを設定すると、その後、デバイスにおける中断およびサスペンド/再開機能が利用可能になる。
【0039】
セグメント領域内のバイトは、例示として表1に示す構造体を有し得る。
【表1】

【0040】
WRITE_PRE_EMPTION_SUPPORTフィールドは、例示として表2に示す構造体を有し得る。
【表2】

【0041】
ビット1−WRITE_PRE_EMPTION_RESUME_ENにおいては、書き込み優先再開コマンドが有効であるか否かを示す2つの異なる値が用いられ得る。一例では、これらの値は以下から選択され得る。すなわち、0b0は書き込みサスペンド/再開コマンドがサポートされていないことを示し、0b1は書き込みサスペンド/再開コマンドがサポートされていることを示す。
【0042】
同様に、ビット0−WRITE_PRE_EMPTION_ABORT_ENにおいては、書き込み優先中断コマンドが有効であるか否かを示す2つの異なる値が用いられ得る。一例では、これらの値は以下から選択され得る。すなわち、0b0は書き込み中断コマンドがサポートされていないことを示し、0b1は書き込み中断コマンドがサポートされていることを示す。
【0043】
同様に、WRITE_PRE_EMPTION_MGMTフィールドは、例示として表3に示す構造体を有し得る。
【表3】

【0044】
ビット0−WRITE_PRE_EMPTION_ACTは、書き込み優先アクションがサポートされているか否かを示す2つの異なる値を有し得る。これらの値は以下のものでもよい。すなわち、0b0は書き込み中断コマンドがホストにより起動されていないことを示し、0b1は書き込み中断コマンドがホストにより起動されたことを示す。
【0045】
e−MMC標準のEXT CSDレジスタは、ホストとの通信性能に関して好都合な方法であり、前述の表はどのようにそれが実行されるかの特定の例である。ただし、同一の通信機能の実行には他のレジスタおよび他の制御機構が用いられ得る。他の種類のメモリデバイスおよびメモリプロトコルが、同じまたは異なる方法で用いられ得る。代替的に、いかなる種類の構成もしくは特有データ、または用いられるレジスタがなくとも、ホストおよびカードにより特定のコマンドの使用が可能となる。
【0046】
図2はサスペンドおよび再開操作が、メモリシステムの操作にどのように追加され得るかを示す簡易化された状態図である。図2は図1に示す転送状態12、データ受信状態16、およびプログラミング状態18を含む。図を簡単にするために、他の状態およびそれらの移行は示さない。図1に示すように、メモリコントローラはブロック22においてコマンドを受信すると、転送状態からデータ受信状態に移行し得る。メモリコントローラはブロック24におけるデータの受信後、メモリにデータを書き込むためにプログラミング状態に移行する。そして、ブロック26において書き込み操作が完了すると転送状態に戻る。他の操作およびコマンドもまた、図1に記載したように機能する。メモリコントローラがプログラム状態にあり、読み出しコマンドが迅速に有効になる必要がある場合には、図2のブロック38においてサスペンドコマンドを受信し得る。このコマンドはデータ受信状態16をインタラプトするのにも用いられ得る。サスペンドコマンドにより、メモリコントローラは読み出し要求を有効にし得る転送状態に迅速に戻るように移行する(不図示)。この状態でブロック40において再開コマンドを受信し得、メモリコントローラはプログラミング状態に戻り、サスペンドされていた操作を完了する。図3は図2に示すようなサスペンド/再開方法に関するトランザクションタイミングチャートである。図3では、横軸が左から右に経過する時間である。横軸の左端においてメモリコントローラは多重ブロック52を書き込み始める。同時に、ガーベジコレクションまたは他のメモリメンテナンスタスク54が実行される。これらのタスクは、通常、NANDフラッシュメモリカードにおいて、プログラミング状態18で実行される。
【0047】
書き込み中のいずれかの時にサスペンドコマンド56を受信する。これは優先度の高い読み出しコマンドを供給するために、メモリコントローラの書き込み操作を停止するコマンドである。このサスペンドコマンドの受信後、停止外ビジータイム58が続く。これは書き込み操作を終了し、かつその状態、任意の必須のオペランドおよびデータ値、並びにdata状態14への移行を保存するのに必要な時間である。このビジータイムの終わりに、読み出しコマンドが有効60になる。優先度の高い読み出しコマンドが有効になった後、サスペンドされたガーベジコレクションを含む書き込み操作(不図示)にメモリコントローラが戻り得る再開コマンド62が発行される。
【0048】
図4はサスペンドコマンドの代わりに中断コマンド64が発行された別の方法を示す。図4に示す例では、メモリコントローラは中断コマンドを受信すると、書き込み52およびガーベジコレクション54を実行する。
【0049】
これらに対応する時間はビジータイム66であり、その後、読み出し60が実行される。この例では、ビジータイムがより短いため、読み出しはより迅速に有効になる。これは中断コマンドの後に再開コマンドが続かないためである。この結果、メモリコントローラは書き込み操作に関して何も記憶する必要がない。別の書き込みコマンドを受信すると、書き込み操作は最初から再び開始される。別の方法として、停止コマンド、または類似の結果をもたらす任意の他のコマンドも利用され得る。
【0050】
サスペンド/再開コマンドにより、システムの中断時間が短くなり、ホストからのアテンションが軽減され得る。停止または中断により、読み出しはより迅速に有効になるが、書き込み操作中のいかなる変更は失われ、初めから開始される必要がある。前述の方法により種々の他の変更がなされ得、メモリ、コントローラの性質、およびホストシステムの必要性に応じて特定の選択が決定され得る。
【0051】
本発明はまた、図5に示すフローチャートを用いて説明され得る。図5では、メモリおよびそのホストは操作中であり、ブロック111においてメモリに発行する優先度の高い読み出しコマンドを要求することをホストは決定する。まず、ブロック113においてメモリが読み出し状態にあるか否かをホストは決定する。その状態にない場合には、その後操作は正常に進む。ブロック115においてホストは読み出し要求を発行し、続いて、ブロック117において読み出しデータを受信する。処理はその後スタートに戻る。
【0052】
読み出し要求の優先度が低い場合には、同じ処理が続いてもよい。メモリが書き込み操作中であり、読み出し要求が発行された場合には、続いて、メモリは書き込み操作を完了し、その後要求を有効にする。図1に示すe−MMCコンテキストでは、メモリは書き込み操作の完了時に転送状態に移行する。次に、それは読み出しコマンドに応答してdata状態に移行し、要求データを送信する。いかなる操作も中断されないが、読み出し要求への応答は遅れる。
【0053】
図5において、メモリが現在書き込み状態である場合には、その後ブロック119においてホストはサスペンドコマンドを発行し得る。これはメモリの書き込み操作をサスペンドするコマンドであり、このため、メモリは読み出し要求に応答できる。ブロック121においてサスペンドコマンドは読み出し要求に続く。ブロック123において、要求されたデータを受信するまでホストは待機する。受信後、ブロック127においてホストは再開コマンドを発行する。これにより、メモリはインタラプトされた書き込み操作を再開できる。その後、ホストはスタートに戻る。
【0054】
図6は別のプロセスフローを示す。図5に示すように、メモリおよびそのホストは操作中であり、ブロック131においてメモリに発行する優先度の高い読み出しコマンドを要求することをホストは決定する。まず、ブロック133においてメモリが読み出し状態にあるか否かをホストは決定する。その状態にない場合には、その後操作は正常に進む。ブロック135においてホストは読み出し要求を発行し、続いて、ブロック137において読み出しデータを受信する。処理はその後スタートに戻る。ただし、図5とは異なり図6では、メモリが現在書き込み状態であると、続いて、ブロック139においてホストは停止または中断コマンドを発行する。中断コマンドに対応する再開コマンドはない。中断コマンドは、読み出し要求に応答するようにメモリをなおも自由にするコマンドである。中断コマンド後、処理はブロック135に戻る。ホストは読み出し要求を発行する。その後、ホストはブロック137においてデータを受信し、スタートに戻る。図6に示すプロセスフローは、図示しないいくつかの選択的な操作を有する。ホストは停止コマンドの前に発行された最後の書き込みコマンドを追跡できる。読み出しデータの受信後、ホストはその書き込みコマンドを再発行できる。これにより、メモリは書き込み状態に戻り、書き込み処理が停止したときに失われた全てのデータを取り戻す。代替的に、停止コマンドの発行後、ホストはメモリからのエラー信号を待機できる。エラー信号は対応するコマンドを追跡し得、読み出し要求が有効になった後、対応するコマンドがホストによりメモリに再発行され得る。この方法では、停止コマンドにより書き込みがインタラプトされると、メモリはエラーに反応する。
【0055】
図5および図6両方に示すフローチャートとさらに異なる例では、メモリ状態を決定する操作は無視され得る。通常、メモリが待機状態、または転送状態である場合に、サスペンドまたは停止コマンドが発行されても、このコマンドはメモリの操作に影響を及ぼさない。一部の例では、これはエラー信号を生じ得るが、ホストはこれをその操作状態におけるメモリからの指示として解釈し得る。メモリがデータ送信状態または非接続状態であるときにも、サスペンドまたは停止コマンドが無効になるようにシステムはさらに構成され得る。この変更はホストの操作を簡単にするが、メモリの操作が多少不確実になる。
【0056】
図7はeMMCカードの形態である管理フラッシュメモリ223を示す。これは本発明が適用され得るメモリ製品の単なる一例である。ただし、これは前述の具体的な実施形態にも十分に適用される。示すコンポーネントは単一金型の一部でもよく、いくつかの金型から構成されてもよい。コンポーネントは単一パッケージ、ハウジング、またはリムーバブルカードに含まれてもよく、いくつかの別個のパッケージに含まれてもよい。メモリカードは、フラッシュメモリなどの非揮発性メモリ部201を有するが、揮発性メモリを含む任意の他の種類のメモリが用いられてもよい。メモリは種々の分割スキームを有し、様々な大きさでもよい。一部の例では、これは多重ブロックを有し、各ブロックは多重ページを有する。ただし、他の構成が用いられてもよい。メモリは非揮発性メモリインターフェース203を介してメモリカードコントローラまたはコア論理202に連結する。
【0057】
インターフェースは、通常、制御バスおよびデータバスを有し、コントローラとメモリセルとの物理層通信を可能にする。コントローラはさらにMMCインターフェース204を有し、ここでカード223はホストメモリ制御ユニット205と連結する。外部MMCインターフェースは管理NANDインターフェースを有し得、これにより、MMC、eMMC、UFS、または他のNANDベースのメモリインターフェースと通信する。このインターフェースはデータ、コマンド、およびクロックタイミングを通信するためのバス接続206を有する。ただし、種々の外部プロトコルを用いた通信に適応する種々のインターフェースがこの代わりに用いられ得る。メモリカードコントローラ202は外部インターフェースを、メモリ201を有する物理インターフェースに変換する。コントローラまたは外部MMCインターフェースはデータバッファを含み得、これは暫定の値を記憶し、内部および外部バスにおける待ち時間に適応する。コントローラは、例えば、前述のデータ処理、メモリメンテナンス、安全管理、並びにエラー検出および修正を含む種々の機能を実行する。
【0058】
図8は本発明の実施形態に適用され得る例示のシステム211を示す。示す例では、システムは移動性の、手持ち式の携帯電話であるが、多少変更した広範囲の種々のデバイスでもよい。システムは、チップセットを含んでも含まなくてもよい中央処理装置(CPU)213により駆動される。CPUはオペレーティングシステムを利用してプログラムを実行するアプリケーション部215、および電話機能を操作するベースバンド部217を有する。両方の部ともにメモリインターフェース219に連結されており、これはバスを介してシステムのメモリと通信する。
【0059】
示す例では、システムメモリは高速アクセス用のランダムアクセスメモリ(RAM)として実装され得る揮発性部221、および電力損失時でもデータが消失しないフラッシュとして実装され得る非揮発性部223を有する。通常、RAMは迅速にアクセスするデータおよび指示のための短期記憶装置として用いられ、一方、オペレーティングシステム、システムパラメータ、およびアプリケーションの記憶にはフラッシュが用いられる。代替的に、メモリはフラッシュ内の完全な単一メモリとして実装され得、フラッシュ部は、PCM(相変化メモリ)、MRM(磁気抵抗メモリ)、FRAM(登録商標)(強誘電体ランダムアクセスメモリ)、これらの組み合わせの一部、または任意の他のメモリタイプなどの他の種類の非揮発性メモリを有して実装され得る。図5および図6に関連する前述の操作は非揮発性メモリにも適用できる。電力損失の場合には、揮発性メモリ内に記憶された全てのデータは消去される。
【0060】
CPUのベースバンド部はユーザインターフェースに連結されている。示す例では、ユーザインターフェースはキーパッド225、並びにスピーカおよびマイクロホンを備えるヘッドセット227である。タッチスクリーン、ブルートゥースデバイス、加速度計、近接センサ、および特定の用途に応じた他のインターフェースなどの種々の他のインターフェースが用いられ得る。ベースバンド部はRF(無線周波数)回路229にも連結されており、無線接続を利用してシステムと外部デバイスとが通信する。無線接続は携帯電話、データ、無線ネットワーク、または要求に応じた任意の他のインターフェースでもよい。
【0061】
CPUはさらにカメラ、位置測定システム、ディスプレイ、プリンタ、ブルートゥースデバイス、およびシステム211の任意の追加的な機能を援助するための他の周辺機器などの種々の周辺機器231のいずれかと連結してもよい。図8に種々のコンポーネントの消費電力を制御するバッテリなどの電力供給装置を含み得る電源管理システム233をさらに示す。このデバイスはCPU、自律装置、または両方の組み合わせにより駆動および制御されるソフトウェアでもよい。
【0062】
前の記述では、どのハードウェアエンティティが操作を実行するかを指定することなく、多くの操作を説明した。これらの操作の多くは、特定のメモリ構成に応じて、種々のハードウェアユニットまたはモジュールにより実行され得る。前述のように、現在構成されているeMMCでは、ホストが読み出し、書き込み、および論理アドレスを制御し、一方、メモリコントローラが論理アドレスを物理アドレスにマッピングし、メンテナンス、エラー検出および修正を実行する。したがって、状態図はメモリコントローラの実際の状態を参照するが、この状態はホストからのコマンドにより決定される。
【0063】
他のシステムでは、メモリはより自律しており、ホストにより発行された前述のコマンドの一部は、メモリコントローラの内部処理により発行される。他方、システムメモリなどの他のシステムでは、ホストはメモリ使用量の全ての態様を制御する。この場合では、状態図はメモリを直接制御するホストの状態をより正確に示す。操作、コマンド、および応答の正確な分配は、種々の業界標準および種々のメモリ利用に適合するように変更され得、本発明はいかなる特定の分配に限定されない。用語「コンピュータ可読媒体」は、プロセッサ、メモリコントローラ、または実行のための他の適切なデバイスへのプログラム命令の供給に関与する適切な媒体でもよい。このような媒体は種々の構造を有し得、非揮発性媒体および揮発性媒体を含むがこれらに限定されない。非揮発性媒体は、例えば、光ディスクまたは磁気ディスク、半導体記憶装置および他のメモリ、ROM(読み出し専用メモリ)などを含み得る。揮発性媒体はシステムメモリなどのダイナミックメモリ、DRAM(ダイナミックRAM)、SRAM(スタティックRAM)、および他の種類の揮発性記憶装置を含み得る。コンピュータ可読媒体の一般的な種類は、例えば、磁気媒体(例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、および他の磁気媒体)、光媒体(例えば、コンパクトディスク読み出し専用メモリ(CD−ROM)および他の光媒体)、パターンを有する物理媒体(例えば、パンチカード、穿孔テープ、任意の他の物理媒体)、メモリチップまたはカートリッジ(例えば、RAM、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM、フラッシュメモリ、および他のメモリチップまたはカートリッジ))、並びにコンピュータ可読の任意の他の媒体を含む。
【0064】
以下の詳細な説明では、本発明の完全な理解のために多くの特定の詳細が説明される。ただし、これらの特定の詳細がなくとも、本発明が実行され得ることを当業者は理解する。他の例示では、本発明を曖昧にしないため、周知の方法、手順、コンポーネント、および回路は詳細には記載しない。
【0065】
詳細な説明の一部は、コンピュータメモリ内のデータビットまたは2値デジタル信号における操作のアルゴリズムおよび記号表示に関して記述される。これらのアルゴリズム的記述および表示は、それらの研究内容を他の当業者に伝えるための、当業者に用いられるデータ処理に関する技術でもよい。
【0066】
ここのアルゴリズムは、通常、所望の結果を導く動作または操作の自己無撞着シーケンスとして考慮される。これらは物理量に関する物理的処置を含む。これらの分量は、通常、これに限定されないが、記憶、転送、一体化、比較、および他の操作が可能な電気または磁気信号の形態である。主に共通使用を目的として、ビット、数値データ、要素、記号、桁、用語、数などにこれらの信号が参照されることが好都合であると証明される場合もある。ただし、これらおよび類似の用語の全ては、適切な物理量に関連し、これらの量に適用される単なる好都合なラベルであると理解されることは言うまでもない。
【0067】
特別な記述がない限り、本明細書全体の記述における、例えば、「処理」、「演算」、「計算」、「決定」などの用語が、演算システムのレジスタおよび/またはメモリ内の量を、演算システムのメモリ、レジスタまたは他のこのような情報記憶装置、送信または表示装置における物理量を表す類似の他のデータ、すなわち電子計算などにより物理的に表されるデータに処理および/または変換するコンピュータ、演算システム、または類似の電子計算装置のアクションおよび/または処理を参照することは以下の記述から明らかである。
【0068】
本発明の実施形態は本明細書の操作を実行するための装置を含み得る。装置は所望の目的のために特別に構成されてもよく、デバイスに記憶されたプログラムにより選択的に起動または再構成される汎用コンピュータ装置を備えてもよい。このようなプログラムは、これらに限定されないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク読み出し専用メモリ(CD−ROM)、光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的にプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能およびプログラム可能な読み出し専用メモリ(EEPROM)、磁気もしくは光カード、または電子的な命令の保存に適した任意の他の種類の媒体を含み、コンピュータ装置のシステムバスに連結可能な任意の種類のディスクなどの記憶装置媒体に記憶され得る。
【0069】
本明細書に記載した処理および表示は、任意の特定のコンピュータ装置または他の装置に本質的には関連しない。種々の汎用システムが本明細書の教示に従うプログラムと共に用いられ得るか、またはそれが所望の方法を実行するためにより特殊化された装置を構成することが好都合であることが証明され得る。種々のこれらのシステムに関する所望の構造体は、以下の説明により明らかになる。さらに本発明の実施形態は、任意の特定のプログラミング言語に関連して記述しない。本明細書に記載されたような本発明の教示の実施に種々のプログラミング言語が用いられ得ることが理解される。さらに、本明細書に記載された操作、性能、および特徴が、ハードウェア(ディスクリート回路または集積回路)およびソフトウェアの任意の組み合わせにより実現され得ることが理解されることは言うまでもない。
【0070】
用語「連結された」、「接続された」およびそれらの派生語が用いられ、これらの用語が互いに同義語とはみなされないことが当然理解される。むしろ、特に実施形態での「接続された」は、2つ以上の要素が互いに直接に物理的接触または電気接触していることが意図される。「連結された」は、2つ以上の要素が互いに直接または間接的(それらの間に他の介在要素が存在する)に、物理的接触または電気接触するか、かつ/または2つ以上の要素が共に動作するまたは互いに相互作用する(例えば、効果を関連付けるために)ことが意図される。特有の本発明の実施形態を記述したが、本発明はこのような実施形態の詳細に限定されず、以下の請求項およびそれらの妥当な均等物によってのみ限定される。

【特許請求の範囲】
【請求項1】
第1のデータセットをメモリに書き込むことと、
第2のメモリ書き込み操作をインタラプトすること(119)と、
前記第2のメモリ書き込み操作のインタラプト後に、前記メモリから前記第1のデータセットを読み出すこと(121)と、を含む、方法。
【請求項2】
前記第1のデータセットの読み出し後に、前記第2のメモリ書き込み操作を再開すること(127)をさらに含む、請求項1に記載の方法。
【請求項3】
前記第2のメモリ書き込み操作のインタラプトに応答してエラー信号を発行することをさらに含む、請求項1に記載の方法。
【請求項4】
前記エラー信号に応答して前記インタラプトされた第2のメモリ書き込み操作を繰り返すためのコマンドを受信することをさらに含む、請求項1に記載の方法。
【請求項5】
前記書き込みが書き込みコマンドを発行することを含み、前記インタラプトがインタラプトコマンドを発行することを含み、前記読み出しが読み出しコマンドを発行することを含む、請求項1に記載の方法。
【請求項6】
前記インタラプトが停止コマンドを発行すること(139)を含む、前記請求項のいずれか1項に記載の方法。
【請求項7】
前記インタラプトがサスペンドコマンドを発行すること(119)を含む、前記請求項のいずれか1項に記載の方法。
【請求項8】
前記インタラプトがインタラプトコマンドを受信することと、書き込み状態(18)から送信状態(12)に移行することとを含む、請求項1に記載の方法。
【請求項9】
前記第2のメモリの書き込みコマンドが、デフラグまたはガーベジコレクションなどのメモリメンテナンス操作を含む、前記請求項のいずれか1項に記載の方法。
【請求項10】
前記読み出しがメモリホスト(205)の要求に応じてデータページを提供することを含む、前記請求項のいずれか1項に記載の方法。
【請求項11】
前記メモリはNANDフラッシュメモリ(201)である、前記請求項のいずれか1項に記載の方法。
【請求項12】
電子データメモリ(201)と、
前記メモリに連結されたメモリコントローラ(202)と、
前記メモリコントローラおよびホスト(205)に連結されたホストインターフェース(204)と、を備えており、
前記メモリコントローラは第1のデータセットを前記メモリに書き込み、前記メモリにおいて第2のメモリ書き込み操作を実行し、前記ホストから前記ホストインターフェースを介してメモリ読み出しコマンドを受信し、その後、前記読み出しコマンドを有効にするために前記第2のメモリ書き込み操作をインタラプトする、装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2012−529692(P2012−529692A)
【公表日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願番号】特願2012−514597(P2012−514597)
【出願日】平成21年6月10日(2009.6.10)
【国際出願番号】PCT/IT2009/000253
【国際公開番号】WO2010/143209
【国際公開日】平成22年12月16日(2010.12.16)
【出願人】(595168543)マイクロン テクノロジー, インク. (444)
【Fターム(参考)】