(57)【要約】      （修正有）【課題】メモリアレイにおける読み出し待ち時間を短縮するための方法を提供する。【解決手段】メモリコントローラは、ホストからの書き込み多重ブロックコマンドを受けて転送状態１２から対応するデータをホストから受信するデータ受信状態１６へ遷移し、続いてホストからの停止コマンドを受けてメモリへの書き込み制御を行うプログラミング状態１８へ遷移され、且つ、前記プログラミング状態中にホストからのサスペンドコマンドを受けて対応するデータを保存すると共にメモリへの書き込み制御を中断して転送状態１２へ遷移する。更に、中断後にホストからの再開コマンドを受けてデータ受信状態を経ることなくプログラミング状態１８へ遷移して保存された前記書き込みデータを用いてメモリへの書き込み制御を再開する。【選択図】図１
2016026345.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを発行するホストと、
メモリと、
前記コマンドに応じて自身の状態を遷移させ、遷移された状態に応じて前記メモリを制御するメモリコントローラと、を備える装置であって、
前記メモリコントローラは、前記ホストからの書き込み多重ブロックコマンドを受けて転送状態から対応するデータをホストから受信するデータ受信状態へ遷移し、続いて前記ホストからの停止コマンドを受けて前記メモリへの書き込み制御を行うプログラミング状態へ遷移され、且つ、前記プログラミング状態中に前記ホストからのサスペンドコマンドを受けて前記対応するデータを保存すると共に前記メモリへの書き込み制御を中断して前記転送状態へ遷移し、更に、該中断後に前記ホストからの再開コマンドを受けて前記データ受信状態を経ることなく前記プログラミング状態へ遷移して保存された前記書き込みデータを用いて前記メモリへの書き込み制御を再開することを特徴とする装置。
【請求項２】
前記メモリコントローラは、前記サスペンドコマンドを受けた後の前記転送状態において前記ホストからの読み出しコマンドを受けて前記メモリへの読み出し制御を行い、その後に前記ホストからの再開コマンドを受けることを特徴とする請求項１に記載の装置。
【請求項３】
前記メモリコントローラは、前記書き込み多重ブロックコマンドと同時にガーベジコレクション制御を行うことを特徴とする請求項１または２に記載の装置。
【請求項４】
前記メモリコントローラは、前記書き込み多重ブロックコマンドと同時にデフラグ制御を行うことを特徴とする請求項１または２に記載の装置。
【請求項５】
前記メモリはＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１乃至４のいずれか一項に記載の装置。
【請求項６】
書き込み多重ブロックコマンドを発行して転送状態からデータ受信状態へ遷移させ、
前記書き込み多重ブロックコマンドの後に停止コマンドを発行して前記データ受信状態からプログラミング状態へ遷移させ、
前記プログラミング状態中にサスペンドコマンドを発行してプログラミングに用いられるデータを保存させると共に前記プログラミング状態から前記転送状態へ遷移させ、
前記サスペンドコマンドの後に再開コマンドを発行して前記転送状態から前記データ受信状態を経ることなく前記プログラミング状態へ遷移させるメモリコントローラの制御方法。
【請求項７】
前記サスペンドコマンドを発行した後の前記転送状態において前記再開コマンドを発行する前に読み出しコマンドを発行してデータ送信状態へ遷移させる請求項６に記載のメモリコントローラの制御方法。
【請求項８】
前記書き込み多重ブロックコマンドと同時にガーベジコレクション制御を行うことを特徴とする請求項６または７に記載のメモリコントローラの制御方法。
【請求項９】
前記書き込み多重ブロックコマンドと同時にデフラグ制御を行うことを特徴とする請求項６または７に記載のメモリコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラの制御方法及び装置に関する。
【背景技術】
【０００２】
現在、外部および内蔵フラッシュメモリ両方に用いられる最も一般的なインターフェースは、マルチメディアカード（ＭＭＣ）および対応する埋め込み式のＭＭＣ（ｅ−ＭＭＣ）である。また、内部および外部フラッシュメモリが単一バスを共有するような、ユニバーサルフラッシュ記憶装置（ＵＦＳ）などの新規の標準規格も開発されている。これらの標準規格は磁気、光学、および相変化を含む、他の種類のメモリにも適応するように意図されている。
【０００３】
なお、従来技術として、特許文献１に記載されているようなＮＡＮＤチップの制御方法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００７／１１０７１６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＭＭＣまたはｅ−ＭＭＣインターフェースを簡素化するために、メモリカードコントローラは物理メモリインターフェース（例えば、ＮＡＮＤインターフェース）をＭＭＣバスインターフェースに適応させ、さらには、物理メモリの技術に特有のタスクを管理する。ＮＡＮＤメモリにおけるこれらのタスクはデフラグ、不良ブロック管理、エラー修正および検出、摩耗を均一化するアルゴリズム、安全管理、および論理対物理ブロックの再配置を含み得る。これによりシステムの他の部分の複雑性が軽減されるが、これらの追加的なメモリコントローラタスクの全ては実行に時間を要し、この間メモリが一時的に利用できなくなる場合がある。
【０００６】
これにより、例えば、データデフラグまたはガーベジコレクションなどの最新のランニングデータの管理ルーチンに起因してホストコマンドの実行に、メモリカードコントローラが何百ミリ秒よりも長い時間を要する場合がある。この間、カードはビジー状態になり、先のホストコマンドが終了するまで他のホストコマンドを管理できない。この結果、読み出しコマンドへの応答が遅れる。この長くなった待ち時間によりホストの適切な動作が妨げられることがある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の装置は、コマンドを発行するホストと、メモリと、前記コマンドに応じて自身の状態を遷移させ、遷移された状態に応じて前記メモリを制御するメモリコントローラと、を備える装置であって、前記メモリコントローラは、前記ホストからの書き込み多重ブロックコマンドを受けて転送状態から対応するデータをホストから受信するデータ受信状態へ遷移し、続いて前記ホストからの停止コマンドを受けて前記メモリへの書き込み制御を行うプログラミング状態へ遷移され、且つ、前記プログラミング状態中に前記ホストからのサスペンドコマンドを受けて前記対応するデータを保存すると共に前記メモリへの書き込み制御を中断して前記転送状態へ遷移し、更に、該中断後に前記ホストからの再開コマンドを受けて前記データ受信状態を経ることなく前記プログラミング状態へ遷移して保存された前記書き込みデータを用いて前記メモリへの書き込み制御を再開することを特徴とする。
【０００８】
また、本発明のメモリコントローラの制御方法は、書き込み多重ブロックコマンドを発行して転送状態からデータ受信状態へ遷移させ、前記書き込み多重ブロックコマンドの後に停止コマンドを発行して前記データ受信状態からプログラミング状態へ遷移させ、前記プログラミング状態中にサスペンドコマンドを発行してプログラミングに用いられるデータを保存させると共に前記プログラミング状態から前記転送状態へ遷移させ、前記サスペンドコマンドの後に再開コマンドを発行して前記転送状態から前記データ受信状態を経ることなく前記プログラミング状態へ遷移させることを特徴とする。
【０００９】
本発明に関する主題は、本明細書の結論部において特に示され、明確に主張される。だたし、本発明の対象、特徴および利点に加えて、その構成および操作方法の両方に関しては、添付図面と共に参照される以下の詳細な説明を読みことで最もよく理解され得る。
【図面の簡単な説明】
【００１０】
【図１】実施形態の態様を示すのに適したｅ−ＭＭＣフラッシュメモリカードコントローラの一部を示す状態図である。
【図２】実施形態に従う、メモリコントローラの一部を示す状態図である。
【図３】実施形態に従う、書き込み操作のサスペンドおよび再開を示すタイミングチャートである。
【図４】実施形態に従う、書き込み操作の中断を示すタイミングチャートである。
【図５】実施形態に従う、書き込み操作のサスペンドおよび再開を説明するプロセスフロー図である。
【図６】実施形態に従う、書き込み操作の中断を説明するプロセスフロー図である。
【図７】他の図に関連する処理および装置を実現可能なホストインターフェースを有する管理メモリを示すブロック図である。
【図８】他の図に関連する処理および装置を実現可能なモバイル機器を示すブロック図である。
【００１１】
説明の簡潔さおよび明確さを目的として、図に示す構成要素が必ずしも原寸に比例している訳ではないことが理解される。例えば、一部の構成要素の寸法は、明確さを目的として他の構成要素に対して拡大され得る。さらに、適切に考慮されて、対応するまたは同等の構成要素を示すために複数の図において同じ参照番号が繰り返し用いられる。
【発明を実施するための形態】
【００１２】
物流管理システムおよび多くの他の戦略的な需要、並びに業務上の用途のために、メモリ読み出し操作は十分に速く、そして同一データの書き込み後すぐに利用可能になることが好ましい。したがって、下記するように、ホストはメモリコントローラの状態にかかわらずに管理メモリにアクセス可能である。例えば、書き込み操作の進行中、ホストはその進行中の書き込み操作をサスペンドし得、そして読み出し操作を実行し、その後、サスペンドされた書き込みを再開できる。
【００１３】
例えば、ホストが管理メモリに保存されたファームウェア各々を有し、メモリコントローラがデータの保存に忙しいランタイムにその一部をロードする必要がある場合に、このようなサスペンド操作は有益となり得る。一実施例では、迅速な読み出し操作を実行するために、新規のコマンドシーケンスにより、ホストは長い書き込み操作をサスペンドかつ再開可能になる。
【００１４】
書き込み再開コマンドに続く書き込みサスペンドコマンドは、最悪の条件でさえも数ミリ秒の読み出しアクセスタイムをホストが確保するために用いられ得る。これによりホストは、例えば、書き込み操作を少しの間フリーズすることにより、戦略的な要求に応じてページを実行可能になる。任意の他の長期メモリ管理操作が、同じ方法でフリーズし得る。
【００１５】
説明を簡単にするために、以下の説明はｅ−ＭＭＣ４．４ＪＥＤＥＣ（電子素子技術連合評議会）の（米国電子工業会により公表された）ＪＥＳＤ８４−Ａ４４標準仕様に関連して記述される。ただし、同じ概念は他のメモリ管理プロトコルおよびメモリインターフェースにも適用され得る。
【００１６】
内蔵ＮＡＮＤフラッシュメモリまたは個々のリムーバブルカードにおけるＮＡＮＤフラッシュメモリのどちらも、いかなるシステムに要求される標準的な読み出し速度を容易に達成し得る。ただし、メモリ管理および書き込みアルゴリズムにより、待ち時間はより長くなる。メモリ管理はｅ−ＭＭＣ仕様により、メモリカードコントローラに与えられ、このため、いかなる特定の処理が実行されていたとしてもホストは認識しない。したがって、常に高速のメモリ性能を実現するために、メモリ管理タスクに適応するいくつかの方法が必要となる。
【００１７】
ｅ−ＭＭＣが管理ＮＡＮＤフラッシュメモリカードである場合には、内部メモリカードコントローラが、内部ＮＡＮＤメモリ管理操作における全ての実行を管理する。これらのうちのデフラグおよびガーベジコレクションは予測できず、多大な時間を要する。これらのアルゴリズムは、通常、書き込み／消去コマンド中に実行され、それらの継続時間はＮＡＮＤフラッシュブロックの占有状態、それ故、外部のホストアプリケーションがメモリシステムにどのようにアクセスするかに応じて決まる。他の種類の物理メモリでは、迅速な読み出しサイクルを妨げ得る他のメモリ管理操作が必要となる。
【００１８】
任意の管理アルゴリズムの実行により、予測できない手法により書き込みコマンドの実行時間が長くなる場合がある。この結果、その後の優先度の高い読み出し操作が、仕様により許容される時間よりも長い時間遅れることがある。これはとりわけ、ホストの操作を中断させることがある。
【００１９】
本明細書の説明は、ｅ−ＭＭＣインターフェースを介してコンピュータ、スマートフォン、メディアプレーヤ、または類似の装置などのホストに連結されるフラッシュメモリカードに関連して記述される。ただし、本発明はこれらに限定されない。メモリの多くの種類はバックグラウンド管理タスクを必要とする。これらのタスクがフラッシュメモリに要求されるものと類似しても、または大きく異なっていても、本発明はこれらのタスクの待ち時間を短縮し得る。本発明は、特有のメモリハードウェア構成に限定されない。メモリは区別可能なカード、区別可能なチップに組み込まれてもよく、または一部の他のデバイスに内蔵されてもよい。メモリがメモリカードとしてパッケージされる場合には、メモリ管理操作はメモリカードコントローラにより実行され得る。ただし、メモリ管理に関与するコントローラは、他の種類のメモリにおいて相違する名前を有し得る。したがって、本発明はメモリとホストとの間に連結されたメモリコントローラと共に、メモリまたは管理メモリに関連して記載される。
【００２０】
本発明の実施形態は、簡単な例示を示すことにより、より容易に理解され得る。この例では、ホストシステムはメモリコントローラへの書き込み多重ブロックコマンドを処理する。例示の管理メモリはメモリセルアレイを有し、複数のブロックに分類される。メモリコントローラは連結された管理メモリアレイの中央に位置し、データデフラグ操作をし、さらには実際にはメモリの一部でもよい。従来のフラッシュメモリカードでは、メモリカードコントローラはバッファ内のデータを受信し、その後デフラグ操作に戻る。この操作の次は、新規データの書き込みに続く。これらの操作が終了するまで、ホストはいかなる追加のデータも送信せず、またはいかなるデータも読み出さない。さらに、送信されただけのデータは、デフラグ処理が完了するまでは読み出されない。この例としてはデフラグが利用される。メモリを一時的に利用できなくし得るメモリコントローラにより実行されるいくつかの他の処理がある。
【００２１】
標準仕様のｅ−ＭＭＣについての従来の状態図を参照して、この例はより完全に理解され得る。この状態図は図１として示される。本明細書に記載する操作に関連しない詳細の一部は、標準図から除去される。
【００２２】
図１に示すように、メモリコントローラの状態はいくつかある。これらは待機状態（ｓｔｂｙ）１０、転送状態（ｔｒａｎ）１２、データ送信状態（ｄａｔａ）１４、データ受信状態（ｒcｖ）１６、プログラミング状態（ｐｒｇ）１８、および非接続状態（ｄｉｓ）２０を含む。他の状態も規定され得るが、図の簡素化のためにここには示さない。フラッシュメモリにおける、不揮発性記憶装置へのメモリセルの書き込みはプログラミングと呼ばれる。他の種類のメモリにおける、書き込みまたは記憶などのプログラミング状態は異なる名称でもよい。ここに示す特定の状態はｅ−ＭＭＣ標準からそのまま参照したものであり、ＮＡＮＤフラッシュに特によく適応するものである。ただし、本発明は他の種類のメモリおよび他の種類の状態機械にも適応し得る。
【００２３】
コントローラはコマンドの受信または生成に基づいて、または多くは無いが「操作完了」イベントの発生に基づいてある状態から別の状態に移行する。全てのコマンドはｘｘが番号であるＣＭＤｘｘとして数値により規定される。各コマンドは数値的な定義および引数を有する。ただし、多くのコマンドでは引数は要素引数であり、これはいかなる情報を伝達するのに用いられることを意味する。
【００２４】
ｓｔｂｙとｔｒａｎとの間の移行は、ＣＭＤ７、選択／非選択コマンドを利用してホストにより制御される。同様に、ｐｒｇとｄｉｓとの間の移行、およびｄａｔａからｓｔｂｙへの移行は、ＣＭＤ７により制御される。コマンドの効果は、コマンド受信時のメモリコントローラの現在の状態に依存する。操作の完了時にｄｉｓからｓｔｂｙへの移行が起こる。
【００２５】
前述の簡単な例では、ホストは書き込み多重ブロックコマンドをメモリカードにアドレスする。これはＣＭＤ２５である。図１に示すように、ｔｒａｎ１２において、ＣＭＤ２５がホストコントローラにより受信され得る。この例では、コントローラ状態はｔｒａｎであり、ブロック２２における書き込みコマンド（ＣＭＤ２５）の受信後にメモリコントローラ状態はｔｒａｎからｒcｖになり、データを受信する。記憶するための、ホストからの全てのデータの受信後（「転送終了」）、またはブロック２４における停止コマンド（ＣＭＤ１２）の受信後に、メモリコントローラ状態はｐｒｇに移行する。
【００２６】
標準仕様に従い、先の書き込みコマンドが完了（ブロック２６における「操作完了」）した場合にのみ、メモリコントローラはｐｒｇからｔｒａｎに戻る。ホストはビジー状態では、いかなる他のコマンドもメモリコントローラに送信しない。コントローラがデフラグなどの複雑な操作を実行中の場合には、何ミリ秒間は「プログラミング状態」のままでもよい。
【００２７】
標準的な種々の読み出し要求を記載する。これらをＣＭＤ８、１１、１７、１８、３０、５６（ｒ）としてブロック２８に示す。これらのコマンドは、メモリコントローラが転送状態にある間にのみ実行され得る。したがって、読み出し要求を迅速に有効にするために、メモリコントローラは現在の状態から転送状態に迅速に移行する。待機状態では、これはＣＭＤ７を利用して容易に実行され得る。データ送信状態では、現在の要求が従えばすぐにメモリコントローラはより多くのデータを送信できる。非接続状態では、ブロック３６における操作が完了するまでホストは待機し得、その後、待機状態にＣＭＤ７を発行するか、ＣＭＤ７を利用してメモリコントローラをプログラミング状態にするコマンドを出し得る。プログラミング状態はブロック２６における操作完了後に転送状態に戻るように移行する。
【００２８】
データ受信状態またはプログラム状態において迅速に読み出し要求を提供を可能にするために、速い「ビジー外」メソッドがホストに提供され得る。このようなメソッドは現在のデフラグ、ガーベジコレクション、またはｅ−ＭＭＣにおいて進行中の他の操作をフリーズするための手段をホストに提供し得、これにより、より優先度の高い読み出し操作を実行するためにメモリコントローラを自由にする。停止した操作は後に再開され得る。前述のように、メモリ管理操作は書き込み多重ブロックコマンド（ＣＭＤ２５）により頻繁にトリガされる。
【００２９】
簡潔に説明すると、任意のマイクロアクティビティをサスペンドするのに書き込みサスペンドコマンドが用いられ得、これによりＤＡＴ０線（ビジー信号）が送信され、デバイスからの読み出しが速くなる。書き込み再開コマンドにより、その後、メモリコントローラがプログラム状態になり得、先にサスペンドされた書き込み操作を完了する。後にマイクロアクティビティを再開させ、かつ書き込み操作を完了させるための少量のデータが保存され得る。書き込みサスペンド後、ホスト側からデバイスに既に入力した全てのこれらのデータブロックは、後の再開のために保存され得る。「ビジー外」または 「サスペンドおよび再開」メソッドを提供するためのいくつかの異なる方法がある。
【００３０】
一例では、０ｘＦ０Ｆ０Ｆ０Ｆ０（１６進数）などの固有の引数を利用した標準停止コマンド（ＣＭＤ１２）が用いられる。標準停止コマンドは、常に要素引数と共に送信され、標準のＳＴＯＰ＿ＴＲＡＮＳＭＩＳＳＩＯＮをコマンドする。引数を特定の固有の引数に変更することにより、コマンドの操作および機能は変更され得る。この新規のコマンドは「書き込みサスペンド」コマンドとしても考慮され得る。
【００３１】
この例に従えば、書き込みサスペンドコマンドの受信後、コントローラはｐｒｇ１８に移行し、その後、全てのステップを完了することなく、可能な限り早く「操作完了」２６に移行する。代わりに、全てのコントローラのバックグラウンド書き込み操作はサスペンドされる。コントローラは、後の書き込み操作を再開および完了するのに必要な全ての情報およびデータを保持または保存するように構成され得る。
【００３２】
「操作完了」後、メモリコントローラはｔｒａｎ１２に戻る。この状態において、ホストは読み出しコマンド２８を管理メモリに送信し得、メモリコントローラは続いてｄａｔａ１４に移行し、そのコマンドを送信する。ｄａｔａ状態１４において読み出し操作が行われる。読み出し操作がブロック３０における「操作完了」に至ると、続いて、メモリコントローラはｒｅｖ１６からｐｒｇ１８まで移行することにより、先の書き込みコマンドを再開し得るｔｒａｎ状態１２に戻る。
【００３３】
先の書き込みコマンドが再開されない場合には、続いて、先の書き込みコマンドにおいてホストに送信された全てのデータが消去される。再開シーケンスとは別の任意のコマンドシーケンスにより、先の書き込みコマンドは永久に停止され得る。書き込み操作を再開し、ｔｒａｎからｐｒｇに移行するための種々の方法が用いられ得る。一例では、ホストにより以下のコマンドシーケンスが生成され得る。
【００３４】
ＣＭＤ１６（０ｘ０００００００４）
ＣＭＤ５６（０ｘ００００００００）
ｗｒｉｔｅ    ４Ｂｙｔｅ    ０ｘＦ０Ｆ０Ｆ０Ｆ０
ブロック３２においてセットブロック長コマンドＣＭＤ１６が引数「０x０００００００４」と共に送信され得る。引数は、次のコマンドＣＭＤ５６のデータ転送長を示す。これはメモリコントローラをｒｅｖ状態にする、ブロック２２における業界標準の書き込みコマンド（ＣＭＤ５６）に続く。引数「０x００００００００」は、この場合にはメモリアレイに向かうデータの転送方向を示す第１のビット（ビット０）以外のスタッフビットである。データ受信後、データブロックを書き込むために、それをｐｒｇ状態にする「転送終了」がメモリコントローラに送信される。この状態になると、続いて、メモリコントローラは先にサスペンドされた書き込み操作を完了する。
【００３５】
別の例示では、メモリコントローラを直接「プログラミング」状態にするさらなる目的のために、新規コマンドが用いられ得るか、既存コマンドは追加的な目的を与えられ得る。ブロック３４に示すように、ＣＭＤ６、２８、２９、３８により、メモリコントローラはｔｒａｎから直接にｐｒｇになる。特別な目的に応じてこれらのコマンドは用いられ得る。いずれの場合でも、デバイスを直接にｐｒｇ状態にするためにコマンドが送信され得、先にサスペンドされた書き込み操作を完了する。この例では、ＣＭＤ２２が用いられる。このコマンドは、現在、ｅ−ＭＭＣ標準仕様において指定されたアプリケーションにはない。ＣＭＤ２２の代わりに、任意の他の保存してある、または未使用のコマンドが用いられ得るか、このコマンドは所望の処理に応じて変更される。
【００３６】
前述の書き込みサスペンドまたはビジー外の状態である場合に、サスペンド後、ホストが読み出しまたは再開コマンドを送信すると、続いて、メンテナンス操作が再開され得る。ただし、別のコマンドが発行された場合には、メモリコントローラは全ての再開情報を消去し得る。これにより、インタラプトされた書き込みコマンドが完了状態になる。別のリスクとして、サスペンド操作が進行中であり、その上、サスペンドされた書き込みに関与するアドレスに、別の読み出しコマンドが発行された場合に、読み出されたデータが未定義であるというリスクがある。
【００３７】
第３の例では、書き込み中断コマンドシーケンスが用いられ得る。書き込みコマンド中にｅ−ＭＭＣコントローラにより起動された進行中の全てのメモリメンテナンス操作に突然に割り込み得る中断コマンドが用いられ得る。割り込みにより、ホストは、迅速に実行され得る優先度の高い読み出しコマンドを発行する。
【００３８】
書き込み中断コマンドに応答すると、メモリ内の全てのデータの再コピー操作は放棄され得る。この場合には、ＮＡＮＤメモリにおいて関与する物理ブロックは無効であるとみなされる。したがって、メモリに関与する物理ブロックはこの場合でも、新規データの書き込み操作において書き込まれる前に予め消去される。再コピー操作に関係する全てのデータの損失を回避するために、書き込み中断コマンドによりインタラプトされた書き込みコマンドは、その後ホストにより再び発行され得る。これにより、優先度の高い読み出し後に優先度の高い書き込み操作が完了する。
【００３９】
書き込み操作が完了前に中断された場合には、メモリコントローラは操作が無事に完了しなかったことを示すエラー信号を発行し得る。これに応答して、ホストは対応する書き込みコマンドをその後再発行し得る。前述の例示のようにホストにより中断コマンドが発行された場合には、その後ホストは最後の書き込み要求を自動的に繰り返すように構成され得る。この場合では、ホストは書き込み操作が停止したことを認識するため、メモリコントローラからのエラー信号を必要としない。
【００４０】
別の方法として、ホストからの優先度の高い読み出し要求の応答において、メモリコントローラにより書き込み中断コマンドが発行され得る。中断した書き込み操作を正常な状態に戻すために読み出し要求が提供されると、メモリコントローラは中断した操作を記憶し、自動的に再開し得る。代替的に、メモリコントローラは中断した操作に関するエラー信号を単に発行し得る。エラー信号を受信すると、ホストは最後の書き込み操作を再発行し得る。
【００４１】
中断コマンドは種々の方法で実施され得る。一実施例では、第１の例示と同様に、「０ｘＦ０Ｆ０Ｆ０Ｆ０」などの新規の引数フォーマットを用いて、停止コマンド（ＣＭＤ１２）は変更され得る。停止コマンドの引数全体がスタッフビットにより構成されるため、さらなる機能をコマンドに追加するのに他の引数が用いられ得る。
【００４２】
前述の方法はメモリコントローラまたはホストにおいて実施され得る。ホストが書き込みサスペンドまたは書き込み中断操作に関与している場合には、続いて、このようなコマンドをどのようにサポート可能かをメモリコントローラはホストに示し得る。ｅ−ＭＭＣ標準では、各ＭＭＣカードはＥＸＴ＿ＣＳＤ（増量されたカード特有データ）レジスタを含む。このレジスタはカード性能および選択されたモードについての情報を含む。この情報は開始アドレス、記憶容量、パーティション、ブートコード、有効なコマンドセット、タイミングおよび速度仕様、消去された保護モードなどを含む。カードが起動すると、ホストによりカードのレジスタが読み出される。
【００４３】
一実施例では、拡張ＣＳＤレジスタの特性領域における専用フィールドは、デバイス上の書き込みサスペンド／再開、もしくは書き込み中断コマンド、またはその両方が利用可能なホストプラットフォームと通信するように設定され得る。例えば、拡張ＣＳＤレジスタのセグメント領域が用いられ得、これらのコマンドを有効にするか否かをホストが選択可能になる。一実施例では、ホストにより設定されたセグメント領域にバイトが存在し得る。ホストがバイトを設定すると、その後、デバイスにおける中断およびサスペンド／再開機能が利用可能になる。
【００４４】
セグメント領域内のバイトは、例示として表１に示す構造体を有し得る。
【００４５】
【表１】
2016026345.tif 000003
ＷＲＩＴＥ＿ＰＲＥ＿ＥＭＰＴＩＯＮ＿ＳＵＰＰＯＲＴフィールドは、例示として表２に示す構造体を有し得る。
【００４６】
【表２】
2016026345.tif 000004
ビット１−ＷＲＩＴＥ＿ＰＲＥ＿ＥＭＰＴＩＯＮ＿ＲＥＳＵＭＥ＿ＥＮにおいては、書き込み優先再開コマンドが有効であるか否かを示す２つの異なる値が用いられ得る。一例では、これらの値は以下から選択され得る。すなわち、０ｂ０は書き込みサスペンド／再開コマンドがサポートされていないことを示し、０ｂ１は書き込みサスペンド／再開コマンドがサポートされていることを示す。
【００４７】
同様に、ビット０−ＷＲＩＴＥ＿ＰＲＥ＿ＥＭＰＴＩＯＮ＿ＡＢＯＲＴ＿ＥＮにおいては、書き込み優先中断コマンドが有効であるか否かを示す２つの異なる値が用いられ得る。一例では、これらの値は以下から選択され得る。すなわち、０ｂ０は書き込み中断コマンドがサポートされていないことを示し、０ｂ１は書き込み中断コマンドがサポートされていることを示す。
【００４８】
同様に、ＷＲＩＴＥ＿ＰＲＥ＿ＥＭＰＴＩＯＮ＿ＭＧＭＴフィールドは、例示として表３に示す構造体を有し得る。
【００４９】
【表３】
2016026345.tif 000005
ビット０−ＷＲＩＴＥ＿ＰＲＥ＿ＥＭＰＴＩＯＮ＿ＡＣＴは、書き込み優先アクションがサポートされているか否かを示す２つの異なる値を有し得る。これらの値は以下のものでもよい。すなわち、０ｂ０は書き込み中断コマンドがホストにより起動されていないことを示し、０ｂ１は書き込み中断コマンドがホストにより起動されたことを示す。
【００５０】
ｅ−ＭＭＣ標準のＥＸＴ  ＣＳＤレジスタは、ホストとの通信性能に関して好都合な方法であり、前述の表はどのようにそれが実行されるかの特定の例である。ただし、同一の通信機能の実行には他のレジスタおよび他の制御機構が用いられ得る。他の種類のメモリデバイスおよびメモリプロトコルが、同じまたは異なる方法で用いられ得る。代替的に、いかなる種類の構成もしくは特有データ、または用いられるレジスタがなくとも、ホストおよびカードにより特定のコマンドの使用が可能となる。
【００５１】
図２はサスペンドおよび再開操作が、メモリシステムの操作にどのように追加され得るかを示す簡易化された状態図である。図２は図１に示す転送状態１２、データ受信状態１６、およびプログラミング状態１８を含む。図を簡単にするために、他の状態およびそれらの移行は示さない。図１に示すように、メモリコントローラはブロック２２においてコマンドを受信すると、転送状態からデータ受信状態に移行し得る。メモリコントローラはブロック２４におけるデータの受信後、メモリにデータを書き込むためにプログラミング状態に移行する。そして、ブロック２６において書き込み操作が完了すると転送状態に戻る。他の操作およびコマンドもまた、図１に記載したように機能する。メモリコントローラがプログラム状態にあり、読み出しコマンドが迅速に有効になる必要がある場合には、図２のブロック３８においてサスペンドコマンドを受信し得る。このコマンドはデータ受信状態１６をインタラプトするのにも用いられ得る。サスペンドコマンドにより、メモリコントローラは読み出し要求を有効にし得る転送状態に迅速に戻るように移行する（不図示）。この状態でブロック４０において再開コマンドを受信し得、メモリコントローラはプログラミング状態に戻り、サスペンドされていた操作を完了する。図３は図２に示すようなサスペンド／再開方法に関するトランザクションタイミングチャートである。図３では、横軸が左から右に経過する時間である。横軸の左端においてメモリコントローラは多重ブロック５２を書き込み始める。同時に、ガーベジコレクションまたは他のメモリメンテナンスタスク５４が実行される。これらのタスクは、通常、ＮＡＮＤフラッシュメモリカードにおいて、プログラミング状態１８で実行される。
【００５２】
書き込み中のいずれかの時にサスペンドコマンド５６を受信する。これは優先度の高い読み出しコマンドを供給するために、メモリコントローラの書き込み操作を停止するコマンドである。このサスペンドコマンドの受信後、停止外ビジータイム５８が続く。これは書き込み操作を終了し、その状態および任意の必須のオペランドおよびデータ値を保存し、かつｄａｔａ状態１４へ移行するのに必要な時間である。このビジータイムの終わりに、読み出しコマンドが有効６０になる。優先度の高い読み出しコマンドが処理された後、サスペンドされたガーベジコレクションを含む書き込み操作（不図示）にメモリコントローラが戻り得る再開コマンド６２が発行される。
【００５３】
図４はサスペンドコマンドの代わりに中断コマンド６４が発行された別の方法を示す。図４に示す例では、メモリコントローラは中断コマンドを受信すると、書き込み５２およびガーベジコレクション５４を実行する。
【００５４】
これらに対応する時間はビジータイム６６であり、その後、読み出し６０が実行される。この例では、ビジータイムがより短いため、読み出しはより迅速に有効になる。これは中断コマンドの後に再開コマンドが続かないためである。この結果、メモリコントローラは書き込み操作に関して何も記憶する必要がない。別の書き込みコマンドを受信すると、書き込み操作は最初から再び開始される。別の方法として、停止コマンド、または類似の結果をもたらす任意の他のコマンドも利用され得る。
【００５５】
サスペンド／再開コマンドにより、システムの中断時間が短くなり、ホストからのアテンションが軽減され得る。停止または中断により、読み出しはより迅速に有効になるが、書き込み操作中のいかなる変更も失われ、初めから開始される必要がある。前述の方法により種々の他の変更がなされ得、メモリ、コントローラの性質、およびホストシステムの必要性に応じて特定の選択が決定され得る。
【００５６】
本発明はまた、図５に示すフローチャートを用いて説明され得る。図５では、メモリおよびそのホストは操作中であり、ブロック１１１においてメモリに発行する優先度の高い読み出しコマンドを要求することをホストは決定する。まず、ブロック１１３においてメモリが書き込み状態にあるか否かをホストは決定する。その状態にない場合には、その後操作は正常に進む。ブロック１１５においてホストは読み出し要求を発行し、続いて、ブロック１１７において読み出しデータを受信する。処理はその後スタートに戻る。
【００５７】
読み出し要求の優先度が低い場合には、同じ処理が続いてもよい。メモリが書き込み操作中であり、読み出し要求が発行された場合には、続いて、メモリは書き込み操作を完了し、その後要求を有効にする。図１に示すｅ−ＭＭＣコンテキストでは、メモリは書き込み操作の完了時に転送状態に移行する。次に、それは読み出しコマンドに応答してｄａｔａ状態に移行し、要求データを送信する。いかなる操作も中断されないが、読み出し要求への応答は遅れる。
【００５８】
図５において、メモリが現在書き込み状態である場合には、その後ブロック１１９においてホストはサスペンドコマンドを発行し得る。これはメモリの書き込み操作をサスペンドするコマンドであり、このため、メモリは読み出し要求に応答できる。ブロック１２１においてサスペンドコマンドの後に、読み出し要求が続く。ブロック１２３において、要求されたデータを受信するまでホストは待機する。受信後、ブロック１２７においてホストは再開コマンドを発行する。これにより、メモリはインタラプトされた書き込み操作を再開できる。その後、ホストはスタートに戻る。
【００５９】
図６は別のプロセスフローを示す。図６に示すように、メモリおよびそのホストは操作中であり、ブロック１３１においてメモリに発行する優先度の高い読み出しコマンドを要求することをホストは決定する。まず、ブロック１３３においてメモリが書き込み状態にあるか否かをホストは決定する。その状態にない場合には、その後操作は正常に進む。ブロック１３５においてホストは読み出し要求を発行し、続いて、ブロック１３７において読み出しデータを受信する。処理はその後スタートに戻る。ただし、図５とは異なり図６では、メモリが現在書き込み状態であると、続いて、ブロック１３９においてホストは停止または中断コマンドを発行する。中断コマンドに対応する再開コマンドはない。中断コマンドは、読み出し要求に応答するようにメモリをなおも自由にするコマンドである。中断コマンド後、処理はブロック１３５に戻る。ホストは読み出し要求を発行する。その後、ホストはブロック１３７においてデータを受信し、スタートに戻る。図６に示すプロセスフローは、図示しないいくつかの選択的な操作を有する。ホストは停止コマンドの前に発行された最後の書き込みコマンドを追跡できる。読み出しデータの受信後、ホストはその書き込みコマンドを再発行できる。これにより、メモリは書き込み状態に戻り、書き込み処理が停止したときに失われた全てのデータを取り戻す。代替的に、停止コマンドの発行後、ホストはメモリからのエラー信号を待機できる。エラー信号は対応するコマンドを追跡し得、読み出し要求が有効になった後、対応するコマンドがホストによりメモリに再発行され得る。この方法では、停止コマンドにより書き込みがインタラプトされると、メモリはエラーに反応する。
【００６０】
図５および図６両方に示すフローチャートとさらに異なる例では、メモリ状態を決定する操作は無視され得る。通常、メモリが待機状態、または転送状態である場合に、サスペンドまたは停止コマンドが発行されても、このコマンドはメモリの操作に影響を及ぼさない。一部の例では、これはエラー信号を生じ得るが、ホストはこれをその操作状態におけるメモリからの指示として解釈し得る。メモリがデータ送信状態または非接続状態であるときにも、サスペンドまたは停止コマンドが無効になるようにシステムはさらに構成され得る。この変更はホストの操作を簡単にするが、メモリの操作が多少不確実になる。
【００６１】
図７はｅＭＭＣカードの形態である管理フラッシュメモリ２２３を示す。これは本発明が適用され得るメモリ製品の単なる一例である。ただし、これは前述の具体的な実施形態にも十分に適用される。示すコンポーネントは単一のダイの一部でもよく、いくつかのダイから構成されてもよい。コンポーネントは単一パッケージ、ハウジング、またはリムーバブルカードに含まれてもよく、いくつかの別個のパッケージに含まれてもよい。メモリカードは、フラッシュメモリなどの不揮発性メモリ部２０１を有するが、揮発性メモリを含む任意の他の種類のメモリが用いられてもよい。メモリは種々の分割スキームを有し、様々な大きさでもよい。一部の例では、これは多重ブロックを有し、各ブロックは多重ページを有する。ただし、他の構成が用いられてもよい。メモリは不揮発性メモリインターフェース２０３を介してメモリカードコントローラまたはコア論理２０２に連結する。
【００６２】
インターフェースは、通常、制御バスおよびデータバスを有し、コントローラとメモリセルとの物理層通信を可能にする。コントローラはさらにＭＭＣインターフェース２０４を有し、ここでカード２２３はホストメモリ制御ユニット２０５と連結する。外部ＭＭＣインターフェースは管理ＮＡＮＤインターフェースを有し得、これにより、ＭＭＣ、ｅＭＭＣ、ＵＦＳ、または他のＮＡＮＤベースのメモリインターフェースと通信する。このインターフェースはデータ、コマンド、およびクロックタイミングを通信するためのバス接続２０６を有する。ただし、種々の外部プロトコルを用いた通信に適応する種々のインターフェースがこの代わりに用いられ得る。メモリカードコントローラ２０２は外部インターフェースを、メモリ２０１を有する物理インターフェースに変換する。コントローラまたは外部ＭＭＣインターフェースはデータバッファを含み得、これは暫定の値を記憶し、内部および外部バスにおける待ち時間に適応する。コントローラは、例えば、前述のデータ処理、メモリメンテナンス、安全管理、並びにエラー検出および修正を含む種々の機能を実行する。
【００６３】
図８は本発明の実施形態に適用され得る例示のシステム２１１を示す。示す例では、システムは移動性の、手持ち式の携帯電話であるが、多少変更した広範囲の種々のデバイスでもよい。システムは、チップセットを含んでも含まなくてもよい中央処理装置（ＣＰＵ）２１３により駆動される。ＣＰＵはオペレーティングシステムを利用してプログラムを実行するアプリケーション部２１５、および電話機能を操作するベースバンド部２１７を有する。両方の部ともにメモリインターフェース２１９に連結されており、これはバスを介してシステムのメモリと通信する。
【００６４】
示す例では、システムメモリは高速アクセス用のランダムアクセスメモリ（ＲＡＭ）として実装され得る揮発性部２２１、および電力損失時でもデータが消失しないフラッシュとして実装され得る不揮発性部２２３を有する。通常、ＲＡＭは迅速にアクセスするデータおよび指示のための短期記憶装置として用いられ、一方、オペレーティングシステム、システムパラメータ、およびアプリケーションの記憶にはフラッシュが用いられる。代替的に、メモリはフラッシュ内の完全な単一メモリとして実装され得、フラッシュ部は、ＰＣＭ（相変化メモリ）、ＭＲＭ（磁気抵抗メモリ）、ＦＲＡＭ（登録商標）（強誘電体ランダムアクセスメモリ）、これらの組み合わせの一部、または任意の他のメモリタイプなどの他の種類の不揮発性メモリを有して実装され得る。図５および図６に関連する前述の操作は不揮発性メモリにも適用できる。電力損失の場合には、揮発性メモリ内に記憶された全てのデータは消去される。
【００６５】
ＣＰＵのベースバンド部はユーザインターフェースに連結されている。示す例では、ユーザインターフェースはキーパッド２２５、並びにスピーカおよびマイクロホンを備えるヘッドセット２２７である。タッチスクリーン、ブルートゥースデバイス、加速度計、近接センサ、および特定の用途に応じた他のインターフェースなどの種々の他のインターフェースが用いられ得る。ベースバンド部はＲＦ（無線周波数）回路２２９にも連結されており、無線接続を利用してシステムと外部デバイスとが通信する。無線接続は携帯電話、データ、無線ネットワーク、または要求に応じた任意の他のインターフェースでもよい。
【００６６】
ＣＰＵはさらにカメラ、位置測定システム、ディスプレイ、プリンタ、ブルートゥースデバイス、およびシステム２１１の任意の追加的な機能を援助するための他の周辺機器などの種々の周辺機器２３１のいずれかと連結してもよい。図８に種々のコンポーネントの消費電力を制御するバッテリなどの電力供給装置を含み得る電源管理システム２３３をさらに示す。このデバイスはＣＰＵ、自律装置、または両方の組み合わせにより駆動および制御されるソフトウェアでもよい。
【００６７】
前の記述では、どのハードウェアエンティティが操作を実行するかを指定することなく、多くの操作を説明した。これらの操作の多くは、特定のメモリ構成に応じて、種々のハードウェアユニットまたはモジュールにより実行され得る。前述のように、現在構成されているｅＭＭＣでは、ホストが読み出し、書き込み、および論理アドレスを制御し、一方、メモリコントローラが論理アドレスを物理アドレスにマッピングし、メンテナンス、エラー検出および修正を実行する。したがって、状態図はメモリコントローラの実際の状態を参照するが、この状態はホストからのコマンドにより決定される。
【００６８】
他のシステムでは、メモリはより自律しており、ホストにより発行された前述のコマンドの一部は、メモリコントローラの内部処理により発行される。他方、システムメモリなどの他のシステムでは、ホストはメモリ使用量の全ての態様を制御する。この場合では、状態図はメモリを直接制御するホストの状態をより正確に示す。操作、コマンド、および応答の正確な分配は、種々の業界標準および種々のメモリ利用に適合するように変更され得、本発明はいかなる特定の分配に限定されない。用語「コンピュータ可読媒体」は、プロセッサ、メモリコントローラ、または実行のための他の適切なデバイスへのプログラム命令の供給に関与する適切な媒体でもよい。このような媒体は種々の構造を有し得、不揮発性媒体および揮発性媒体を含むがこれらに限定されない。不揮発性媒体は、例えば、光ディスクまたは磁気ディスク、半導体記憶装置および他のメモリ、ＲＯＭ（読み出し専用メモリ）などを含み得る。揮発性媒体はシステムメモリなどのダイナミックメモリ、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＲＡＭ（スタティックＲＡＭ）、および他の種類の揮発性記憶装置を含み得る。コンピュータ可読媒体の一般的な種類は、例えば、磁気媒体（例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、および他の磁気媒体）、光媒体（例えば、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）および他の光媒体）、パターンを有する物理媒体（例えば、パンチカード、穿孔テープ、任意の他の物理媒体）、メモリチップまたはカートリッジ（例えば、ＲＡＭ、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ、フラッシュメモリ、および他のメモリチップまたはカートリッジ））、並びにコンピュータ可読の任意の他の媒体を含む。
【００６９】
以下の詳細な説明では、本発明の完全な理解のために多くの特定の詳細が説明される。ただし、これらの特定の詳細がなくとも、本発明が実行され得ることを当業者は理解する。他の例示では、本発明を曖昧にしないため、周知の方法、手順、コンポーネント、および回路は詳細には記載しない。
【００７０】
詳細な説明の一部は、コンピュータメモリ内のデータビットまたは２値デジタル信号における操作のアルゴリズムおよび記号表示に関して記述される。これらのアルゴリズム的記述および表示は、それらの研究内容を他の当業者に伝えるための、当業者に用いられるデータ処理に関する技術でもよい。
【００７１】
ここのアルゴリズムは、通常、所望の結果を導く動作または操作の自己無撞着シーケンスとして考慮される。これらは物理量に関する物理的処置を含む。これらの分量は、通常、これに限定されないが、記憶、転送、一体化、比較、および他の操作が可能な電気または磁気信号の形態である。主に共通使用を目的として、ビット、数値データ、要素、記号、桁、用語、数などにこれらの信号が参照されることが好都合であると証明される場合もある。ただし、これらおよび類似の用語の全ては、適切な物理量に関連し、これらの量に適用される単なる好都合なラベルであると理解されることは言うまでもない。
【００７２】
特別な記述がない限り、本明細書全体の記述における、例えば、「処理」、「演算」、「計算」、「決定」などの用語が、演算システムのレジスタおよび／またはメモリ内の量を、演算システムのメモリ、レジスタまたは他のこのような情報記憶装置、送信または表示装置における物理量を表す類似の他のデータ、すなわち電子計算などにより物理的に表されるデータに処理および／または変換するコンピュータ、演算システム、または類似の電子計算装置のアクションおよび／または処理を参照することは以下の記述から明らかである。
【００７３】
本発明の実施形態は本明細書の操作を実行するための装置を含み得る。装置は所望の目的のために特別に構成されてもよく、デバイスに記憶されたプログラムにより選択的に起動または再構成される汎用コンピュータ装置を備えてもよい。このようなプログラムは、これらに限定されないが、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光磁気ディスク、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）、電気的に消去可能およびプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、磁気もしくは光カード、または電子的な命令の保存に適した任意の他の種類の媒体を含み、コンピュータ装置のシステムバスに連結可能な任意の種類のディスクなどの記憶装置媒体に記憶され得る。
【００７４】
本明細書に記載した処理および表示は、任意の特定のコンピュータ装置または他の装置に本質的には関連しない。種々の汎用システムが本明細書の教示に従うプログラムと共に用いられ得るか、またはそれが所望の方法を実行するためにより特殊化された装置を構成することが好都合であることが証明され得る。種々のこれらのシステムに関する所望の構造体は、以下の説明により明らかになる。さらに本発明の実施形態は、任意の特定のプログラミング言語に関連して記述しない。本明細書に記載されたような本発明の教示の実施に種々のプログラミング言語が用いられ得ることが理解される。さらに、本明細書に記載された操作、性能、および特徴が、ハードウェア（ディスクリート回路または集積回路）およびソフトウェアの任意の組み合わせにより実現され得ることが理解されることは言うまでもない。
【００７５】
用語「連結された」、「接続された」およびそれらの派生語が用いられ、これらの用語が互いに同義語とはみなされないことが当然理解される。むしろ、特に実施形態での「接続された」は、２つ以上の要素が互いに直接に物理的接触または電気接触していることが意図される。「連結された」は、２つ以上の要素が互いに直接または間接的（それらの間に他の介在要素が存在する）に、物理的接触または電気接触するか、かつ／または２つ以上の要素が共に動作するまたは互いに相互作用する（例えば、効果を関連付けるために）ことが意図される。特有の本発明の実施形態を記述したが、本発明はこのような実施形態の詳細に限定されず、以下の請求項およびそれらの妥当な均等物によってのみ限定される。
【符号の説明】
【００７６】
１０  待機状態
１２  転送状態
１４  データ送信状態
１６  データ受信状態
１８  プログラミング状態
２０  非接続状態
２０１  不揮発性メモリ部
２０２  メモリカードコントローラ（コア論理）
２０３  不揮発性メモリインターフェース
２０４  ＭＭＣインターフェース
２０５  ホストメモリ制御ユニット
２０６  バス接続
２１１  システム
２１３  中央処理装置（ＣＰＵ）
２１５  アプリケーション部
２１７  ベースバンド部
２１９  メモリインターフェース
２２１  揮発性部
２２３  ｅＭＭＣカード（管理フラッシュメモリ、不揮発性部）
２２５  キーパッド
２２７  ヘッドセット
２２９  ＲＦ回路
２３１  周辺機器
２３３  電源管理
【図１】
2016026345.tif 000006
【図２】
2016026345.tif 000007
【図３】
2016026345.tif 000008
【図４】
2016026345.tif 000009
【図５】
2016026345.tif 000010
【図６】
2016026345.tif 000011
【図７】
2016026345.tif 000012
【図８】
2016026345.tif 000013