(57)【特許請求の範囲】
【請求項１】
複数のダイを有する不揮発性メモリ（ＮＶＭ）を含むシステムで実施される方法において、
電流スレッシュホールドを調整する際にファクタとして使用するのに適したデータを複数のシステムソースのうちの少なくとも１つから受け取る段階であって、前記電流スレッシュホールドは、前記ＮＶＭが消費できるピーク電流未満であるような段階と、
前記電流スレッシュホールドを、前記受け取ったデータに基づいて調整する段階と、
前記ＮＶＭの累積電流消費が前記調整された電流スレッシュホールドを越えないように、遂行される同時ＮＶＭ動作の数を制限する電力制限スキームを使用する段階であって、当該電力制限スキームは、各ＮＶＭ動作が完了するのにどれほど長く要するか予想する予想的電力制限スキームを含む、電力制限スキームを使用する段階と、
を備えた方法。
【請求項２】
電力制限スキームを使用する前記段階は、前記ＮＶＭの累積電流消費が前記調整された電流スレッシュホールドを越えないように、前記同時ＮＶＭ動作を時間にわたって分散することを更に含む、請求項１に記載の方法。
【請求項３】
前記電流スレッシュホールドは、ＮＶＭ性能の最小レベルを可能にするレベルに最初にセットされる、請求項１に記載の方法。
【請求項４】
前記調整は、
前記受け取ったデータが、付加的な電流が得られることを指示するときには、前記電流スレッシュホールドを上げ、
前記受け取ったデータが、付加的な電流が得られないことを指示するときには、前記電流スレッシュホールドを下げる、
ことを含む請求項１に記載の方法。
【請求項５】
複数のダイを有し、固定量の電流を各々消費する複数の同時ＮＶＭ動作を遂行するように働く不揮発性メモリ（ＮＶＭ）と、
複数の装置ソースの少なくとも１つから受け取られるデータに基づいて電流スレッシュホールドを与えるように動作する電力レベル選択回路であって、前記電流スレッシュホールドは、前記ＮＶＭが消費できるピーク電流未満であるような電力レベル選択回路と、
前記ＮＶＭ及び電力レベル選択回路と動作上通信し、前記ＮＶＭの累積電流消費が前記電流スレッシュホールドを越えないように、遂行される同時ＮＶＭ動作の数を制限する電力キャッピングスキームを実行するように働く電力キャッピング回路であって、前記電力キャッピングスキームは各ＮＶＭ動作が完了するのにどれほど長く要するか予想する予想的電力制限スキームを含む、電力キャッピング回路と、
を備えた電子装置。
【請求項６】
前記複数の装置ソースは、電力供給監視回路、負荷監視回路、温度監視回路、ＮＶＭデータソース、及びその組み合わせより成るグループから選択される、請求項５に記載の装置。
【請求項７】
前記電力レベル選択回路は、前記電流スレッシュホールドを、ＮＶＭ性能の最小レベルを可能にするレベルに最初にセットするように動作し、
前記受け取ったデータが、付加的な電流が得られることを指示するときには、前記電流スレッシュホールドを上げ、
前記受け取ったデータが、付加的な電流が得られないことを指示するときには、前記電流スレッシュホールドを下げる、
ように動作する請求項５に記載の装置。
【請求項８】
前記電力キャッピング回路は、前記ＮＶＭの累積電流消費が前記調整された電流スレッシュホールドを越えないように、前記同時ＮＶＭ動作を時間にわたって分散するように働く、請求項５に記載の装置。
【請求項９】
不揮発性メモリ（ＮＶＭ）の電力消費を反応的に制限する方法において、
電流スレッシュホールドを受け取る段階と、
前記電流スレッシュホールドに基づいて遂行できる同時ＮＶＭ動作の最大数を決定する段階と、
キューイングされる同時ＮＶＭ動作の上限を受け取る段階であって、それらを同時に動作すると、累積電流消費が前記電流スレッシュホールドを越えることになる段階と、
キューイングされる同時ＮＶＭ動作の第１セットをディスパッチする段階であって、その第１セットは、前記最大数を越えない数の前記キューイングされるＮＶＭ動作を含むものである段階と、
完了したＮＶＭ動作に対するフィードバックデータを監視する段階と、
完了したＮＶＭ動作が監視されるときに前記キューイングされるＮＶＭ動作の別の１つをディスパッチする段階と、
を備えた方法。
【請求項１０】
ＮＶＭ動作は、バッファ部分及びプログラム部分を含み、前記ディスパッチ段階は、実質的に前記バッファ部分が遂行された直後に前記プログラム部分を遂行することを含む、請求項９に記載の方法。
【請求項１１】
ＮＶＭ動作は、バッファ部分及びプログラム部分を含み、前記ディスパッチ段階は、
前記バッファ部分を遂行すること、及び
完了したＮＶＭ動作が監視されるまで前記プログラム部分の遂行を遅延すること、
をふくむ請求項９に記載の方法。
【請求項１２】
前記ＮＶＭは、ナンドフラッシュＮＶＭであり、前記電流スレッシュホールドは、そのナンドフラッシュＮＶＭが消費できるピーク電流未満である、請求項９に記載の方法。
【請求項１３】
完了したＮＶＭ動作が監視されるときに、付加的なキューイングされるＮＶＭ動作のディスパッチを繰り返す段階を更に備えた請求項９に記載の方法。
【請求項１４】
不揮発性メモリ（ＮＶＭ）の電力消費を予想的に制限する方法において、そのＮＶＭは、ＮＶＭ動作を遂行するように働き、各ＮＶＭ動作は、バッファ部分及びプログラム部分を含み、そのバッファ部分は、完全に遂行されるために時間Ｔｂｕｆｆを要求し、そしてプログラム部分は、完全に遂行されるために時間Ｔｐｒｏｇを要求し、前記方法は、
電流スレッシュホールドを受け取る段階と、
前記電流スレッシュホールドに基づいて遂行できる同時ＮＶＭ動作の最大数を決定する段階と、
各ＮＶＭ動作に対する予想的タイミングパラメータを指定する段階であって、その予想的タイミングパラメータは、ＮＶＭ動作のバッファ部分を完全に遂行するための予想的タイミングパラメータＴｂｕｆｆ(ｐ)を含み、このＴｂｕｆｆ(ｐ)は、Ｔｐｒｏｇより大きいものである段階と、
キューイングされる同時ＮＶＭ動作の上限を受け取る段階であって、それらを同時に動作すると、累積電流消費が前記電流スレッシュホールドを越えることになる段階と、
同時ＮＶＭ動作の数が前記最大数を越えないように、キューイングされる同時ＮＶＭ動作のどれほど多くを、ディスパッチされるＮＶＭ動作のその後のセットとしてディスパッチできるか決定する段階と、
前記その後のセットにおける各ＮＶＭ動作のＴｂｕｆｆ(ｐ)を、先にディスパッチされたＮＶＭ動作のＴｂｕｆｆ(ｐ)の終わりに添付する段階と、
前記その後のセットのＴｂｕｆｆ(ｐ)の間に前記先にディスパッチされたＮＶＭ動作のプログラム部分を遂行する段階と、
を備えた方法。
【請求項１５】
前記その後のセットにおける各ＮＶＭ動作のプログラム部分を、前記その後のセットにおける各ＮＶＭ動作の各Ｔｂｕｆｆ(ｐ)の終わりに遂行する段階を更に備えた、請求項１４に記載の方法。
【請求項１６】
前記決定は、更に、同時ＮＶＭ動作の数に影響し得る前記先にディスパッチされたＮＶＭ動作を要因として考慮に入れることを含む、請求項１４に記載の方法。
【請求項１７】
前記電流スレッシュホールドは、前記ＮＶＭが消費できるピーク電流未満である、請求項１４に記載の方法。
【請求項１８】
前記その後のセットのＴｂｕｆｆ(ｐ)中に前記先にディスパッチされたＮＶＭ動作のプログラム部分を遂行することは、前記先にディスパッチされたＮＶＭ動作のプログラム部分のスタートを前記先にディスパッチされたＮＶＭ動作のＴｂｕｆｆ(ｐ)の終わりに開始することを含む、請求項１４に記載の方法。
【請求項１９】
不揮発性メモリ（ＮＶＭ）の電力消費を予想的に制限する方法において、そのＮＶＭは、ＮＶＭ動作を遂行するように働き、各ＮＶＭ動作は、バッファ部分及びプログラム部分を含み、そのバッファ部分は、完全に遂行されるために時間Ｔｂｕｆｆを要求し、そしてプログラム部分は、完全に遂行されるために時間Ｔｐｒｏｇを要求し、前記方法は、
各ＮＶＭ動作に対する予想的タイミングパラメータを指定する段階であって、その予想的タイミングパラメータは、ＮＶＭ動作のプログラム部分を完全に遂行するための予想的タイミングパラメータＴｐｒｏｇ(ｐ)を含むものである段階と、
各ＮＶＭ動作に関連したデータをバッファして、ＮＶＭ動作のプログラム部分に対してデータが実質的に即座に得られるようにする段階と、
その後のＮＶＭ動作のプログラム部分のスタートを、先のＮＶＭ動作のＴｐｒｏｇ(ｐ)の終わりに開始する段階であって、Ｔｐｒｏｇ(ｐ)は、Ｔｐｒｏｇより大きいものである段階と、
前記バッファされたデータを使用して、前記その後の動作のプログラム部分を遂行する段階と、
を備えた方法。
【請求項２０】
電流スレッシュホールドを受け取る段階と、
前記電流スレッシュホールドに基づいて遂行できる同時ＮＶＭ動作の最大数を決定する段階と、
キューイングされる同時ＮＶＭ動作の上限を受け取る段階であって、それらを同時に動作すると、累積電流消費が前記電流スレッシュホールドを越えることになる段階と、
同時ＮＶＭ動作の数が前記最大数を越えないことを保証するために１つ以上の前記キューイングされる同時ＮＶＭ動作のＴｐｒｏｇ(ｐ)を調整する段階と、
を更に備えた請求項１９に記載の方法。
【請求項２１】
前記先のＮＶＭ動作のＴｐｒｏｇ(ｐ)は、前記その後のＮＶＭ動作の直前のＮＶＭ動作に指定されたＴｐｒｏｇ(ｐ)である、請求項１９に記載の方法。
【請求項２２】
ＮＶＭ動作に指定されるＴｐｒｏｇ(ｐ)の期間は、ＮＶＭ動作に関連したデータが上位ページにプログラムされるか、下位ページにプログラムされるかに基づく、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力消費を制限するようにＮＡＮＤフラッシュメモリのような不揮発性メモリの動作を動的に制御することに係る。
【背景技術】
【０００２】
電子システムは、益々複雑になり、益々多くのコンポーネントを組み込むようになってきている。従って、これらシステムの電力需要が問題になり続けている。特に、システム内の多くのコンポーネントが同時に動作するので、システムは、電力又は電流スパイクに悩まされる。この影響は、種々のシステムコンポーネントが各々大電力動作を同時に行うときに特に顕著なものとなる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
消費者電子装置の大量記憶に通常使用されるフラッシュメモリシステムは、電力消費が問題となるシステムの一例である。過酷な使用では、フラッシュシステムは、ここでピーク電力事象と称される高いレベルの電力事象を経験する。ピーク電力事象は、フラッシュメモリシステムの各ダイが同時にアクセスされるときに生じる。フラッシュメモリシステムを使用するシステムは、このようなピーク電力事象を取り扱う（即ち、ピーク電力事象の電力需要を満足するに充分な電力リソースを維持する）ように設計される。しかしながら、ピーク電力事象は、あまり頻繁に生じるものでなく、フラッシュシステムの平均電力消費は、ピーク電力より実質的に低い。従って、その結果、これらシステムは、高い電力レベルが常に必要とされなくても、高レベルの電力を予約しておくように設計される。
【課題を解決するための手段】
【０００４】
多数の同時の不揮発性メモリ（ＮＶＭ）動作を時間にわたって分散させる電力制限スキームを使用してＮＶＭの電力消費を制限するためのシステム及び方法が開示される。これは、ＮＶＭの電流消費の上限を固定してピーク電力事象を排除する「電流消費キャップ」を提供する。
【０００５】
一実施形態において、ＮＶＭの電力消費は、複数のシステムリソースの少なくとも１つから電流スレッシュホールドを調整する際にファクタとして使用するのに適したデータを受け取ることにより制限することができる。電流スレッシュホールドは、ＮＶＭによって消費できるピーク電流未満であり、その受け取られたデータに基づき調整することができる。ＮＶＭの累積電流消費がその調整された電流スレッシュホールドを越えないように、実行される同時ＮＶＭ動作の数を制限する電力制限スキームを使用することができる。ある実施形態では、この電力制限スキームは、ＮＶＭにより与えられるフィードバックデータを使用して、各ＮＶＭ動作がいつ完了するか決定する反応的電力制限スキームである。別の実施形態では、電力制限スキームは、各ＮＶＭ動作が完了するまでにどれほど長くかかるかを予想する予想的電力制限スキームである。
【０００６】
本発明の前記及び他の態様並びに効果は、全体を通じて同じ部分が同じ参照文字で示された添付図面を参照した以下の詳細な説明から明らかとなろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の種々の実施形態により構成された電子装置の回路図である。
【図２Ａ】ホストプロセッサと、本発明の種々の実施形態により構成された管理型不揮発性メモリパッケージとを備えた例示的システムの概略図である。
【図２Ｂ】ホストプロセッサと、本発明の種々の実施形態により構成された生の不揮発性メモリパッケージとを備えた例示的システムの概略図である。
【図２Ｃ】本発明の種々の実施形態によるＮＶＭパッケージの電流消費プロフィールを示すグラフである。
【図３】本発明の種々の実施形態によるＮＶＭパッケージの一部分を詳細に示すブロック図である。
【図４Ａ】従来システムにより制御されるＮＶＭパッケージの全てのダイの累積的電流消費プロフィールを示すグラフである。
【図４Ｂ】本発明の種々の実施形態によるシステムにより制御されるＮＶＭパッケージの全てのダイの累積的電流消費プロフィールを示すグラフである。
【図５】本発明の種々の実施形態による電力レベル選択回路の例示的ブロック図である。
【図６】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図７】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図８Ａ】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図８Ｂ】本発明の種々の実施形態による電力制限スキームに関連したフローチャートである。
【図９】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図１０Ａ−Ｂ】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図１０Ｃ】本発明の種々の実施形態による電力制限スキームに関連したフローチャートである。
【図１１Ａ−Ｂ】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図１１Ｃ】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図１１Ｄ】本発明の種々の実施形態による電力制限スキームに関連したタイミング図である。
【図１１Ｅ】本発明の種々の実施形態による電力制限スキームに関連したフローチャートである。
【図１２】本発明の種々の実施形態による電力制限スキームに関連したフローチャートである。
【発明を実施するための形態】
【０００８】
図１は、電子装置１００の回路図である。ある実施形態では、電子装置１００は、ポータブルメディアプレーヤ（例えば、カリフォルニア州クパチーノのアップル社により入手できるｉＰｏｄTM）、セルラー電話（例えば、アップル社により入手できるｉＰｈｏｎｅTM）、ポケットサイズパーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、並びに他の適当な形式の電子装置であるか、又はそれらを含む。
【０００９】
電子装置１００は、システム・オン・ア・チップ（ＳｏＣ）１１０と、不揮発性メモリ（ＮＶＭ）１２０と、電力レベル選択回路１３０とを含むことができる。不揮発性メモリ１２０は、フローティングゲート又は電荷トラップ技術に基づくＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、消去可能なプログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、強誘電体ＲＡＭ（ＦＲＡＭ）、磁気抵抗性ＲＡＭ（ＭＲＡＭ）、他の既知の又は将来の形式の不揮発性メモリ技術、又はその組み合わせを含む。ＮＶＭメモリ１２０は、最小の消去単位である「ブロック」へと編成されると共に、最小のプログラム可能で且つ読み取り可能な単位である「ページ」へと編成される１つ以上のダイを含むことができる。ある実施形態では、ＮＶＭ１２０は、複数のブロックを各々有する複数の集積回路を含むことができる。対応する集積回路からのブロック（例えば、同じ位置又はブロック番号を有するブロック）は、「スーパーブロック」を形成する。ＮＶＭ１２０の各メモリ位置（例えば、ページ又はブロック）は、物理的アドレス（例えば、物理的ページアドレス又は物理的ブロックアドレス）を使用してアドレスすることができる。
【００１０】
電力レベル選択回路１３０は、ＮＶＭ１２０が消費できる最大電力量又は電流量を制限する電力レベルをセットすることができる。電力レベルは、電圧レベル、電流レベル、又はその両方を含むことができる。回路１３０は、多数のファクタに基づいて電力レベルを選択するように動作できる。これらのファクタは、例えば、電源から利用できる電力（例えば、利用可能なバッテリ電力）、装置１００の種々のコンポーネント（例えば、ＳｏＣ制御回路１１２）により要求される電力負荷、及び装置１００の温度を含む。回路１３０は、ＳｏＣ１１０及びＮＶＭ１２０に例示的に接続されて示されているが、回路１３０は、装置１００のいずれのコンポーネントにも接続できることを理解されたい。回路１３０の付加的な細部は、図５の説明に関連して以下に述べる。
【００１１】
図１及びそれ以降の図、並びにここに開示する種々の実施形態は、時々、フラッシュ技術に関連して説明する。しかしながら、これは、限定を意図したものではなく、他の形式の不揮発性メモリも実施することができる。又、電子装置１００は、図面が複雑になり過ぎるのを防ぐために図１には示されていない電源又はユーザ入力又は出力コンポーネントのような他のコンポーネントを含むことができる。
【００１２】
システム・オン・ア・チップ１１０は、ＳｏＣ制御回路１１２、メモリ１１４及びＮＶＭインターフェイス１１８を含むことができる。ＳｏＣ制御回路１１２は、ＳｏＣ１１０の一般的な動作及び機能、並びにＳｏＣ１１０又は装置１００の他のコンポーネントを制御することができる。例えば、ユーザ入力、及び／又はアプリケーション又はオペレーティングシステムのインストラクションに応答して、ＳｏＣ制御回路１１２は、ＮＶＭ１２０からデータを得又はそこにデータを記憶するためにＮＶＭインターフェイス１１８へ読み取り又は書き込みコマンドを発生することができる。明瞭化のために、ＳｏＣ制御回路１１２が記憶又は検索に要求するデータは、そのデータがユーザ又はユーザアプリケーションに直接関連していなくても、「ユーザデータ」と称される。むしろ、ユーザデータは、（例えば、アプリケーション又はオペレーティングシステムを経て）ＳｏＣ制御回路１１２により発生され又は得られたデジタル情報の適当なシーケンスである。
【００１３】
ＳｏＣ制御回路１１２は、ハードウェア、ソフトウェア及びファームウェアの任意の組み合わせ、並びに電子装置１００の機能を駆動するように働くコンポーネント、回路又はロジックを含む。例えば、ＳｏＣ制御回路１１２は、ＮＶＭ１２０又はメモリ１１４に記憶されたソフトウェア／ファームウェアの制御の下で動作する１つ以上のプロセッサを含む。
【００１４】
メモリ１１４は、適当な形式の揮発性又は不揮発性メモリ、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ）ＲＡＭ、キャッシュメモリ、リードオンリメモリ（ＲＯＭ）、又はその組み合わせを含むことができる。メモリ１１４は、ユーザデータを不揮発性メモリ１２０へプログラミングするか又はそこから読み取るために一時的に記憶できるデータソースを含むことができる。ある実施形態では、メモリ１４は、ＳｏＣ制御回路１１２の一部分として実施されるプロセッサのためのメインメモリとして働くことができる。
【００１５】
ＮＶＭインターフェイス１１８は、ＳｏＣ制御回路１１２とＮＶＭ１２０との間のインターフェイス又はドライバとして働くように構成されたハードウェア、ソフトウェア及び／又はファームウェアの適当な組み合わせを含む。ＮＶＭインターフェイス１１８に含まれたソフトウェアモジュールについては、それに対応するプログラムコードがＮＶＭ１２０又はメモリ１１４に記憶される。
【００１６】
ＮＶＭインターフェイス１１８は、ＳｏＣ制御回路１１２がＮＶＭ１２０にアクセスしそしてＮＶＭ１２０のメモリ位置（例えば、ページ、ブロック、スーパーブロック、集積回路）及びそこに記憶されたデータ（例えば、ユーザデータ）を管理できるようにする種々の機能を遂行することができる。例えば、ＮＶＭインターフェイス１１８は、ＳｏＣ制御回路１１２からの読み取り又は書き込みコマンドを解釈し、ウェアレベリングを遂行し、そしてＮＶＭ１２０のバスプロトコルに適合する読み取り及びプログラムインストラクションを発生することができる。
【００１７】
ＮＶＭインターフェイス１１８及びＳｏＣ制御回路１１２は、個別のモジュールとして示されているが、これは、本発明の実施形態の説明を簡単化するために過ぎない。これらのモジュールは、ハードウェアコンポーネント、ソフトウェアコンポーネント、又はその両方を共有することを理解されたい。例えば、ＳｏＣ制御回路１１２の一部分として実施されるプロセッサは、ＮＶＭインターフェイス１１８のためのソフトウェアベースのメモリドライバを実行する。従って、ＳｏＣ制御回路１１２及びＮＶＭインターフェイス１１８の各部分を集合的に「制御回路」と称してもよい。
【００１８】
図１は、ＮＶＭ１２０がそれ自身のコントローラをもたない電子装置を示す。他の実施形態では、電子装置１００は、ＮＶＭ１２０と、ＮＶＭインターフェイス１１８の幾つかの部分又は全ての部分（例えば、以下に述べる変換レイヤ）とを含むフラッシュ又はＳＤカードのようなターゲット装置を含むことができる。これらの実施形態では、ＳｏＣ１１０又はＳｏＣ制御回路１１２は、ターゲット装置のためのホストコントローラとして働いてもよい。例えば、ホストコントローラとして、ＳｏＣ１１０は、ターゲット装置へ読み取り又は書き込み要求を発生することができる。
【００１９】
図２Ａ及び２Ｂは、図１の実施形態１００の種々の実施形態を例示するシステムの回路図である。最初に図２Ａを参照すると、システム２００は、ホストプロセッサ２１０と、少なくとも１つの不揮発性メモリ（ＮＶＭ）パッケージ２２０とを含むことができる。ホストプロセッサ２１０及び任意であるがＮＶＭパッケージ２２０は、ポータブルメディアプレーヤ（例えば、カリフォルニア州クパチーノのアップル社により入手できるｉＰｏｄTM）、セルラー電話（例えば、アップル社により入手できるｉＰｈｏｎｅTM）、ポケットサイズパーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、又はラップトップコンピュータのような適当なホスト装置又はシステムにおいて実施することができる。
【００２０】
ホストプロセッサ２１０は、現在入手できる又は将来開発される１つ以上のプロセッサ又はマイクロプロセッサを含む。それとは別に又はそれに加えて、ホストプロセッサ２１０は、メモリシステム２００の種々の動作を制御できる他のコンポーネント又は回路（例えば、特定用途向け集積回路（ＡＳＩＣ））を含むか又はそれに関連して動作することができる。プロセッサベースの実施では、ホストプロセッサ２１０は、ホストに実施されたメモリ（図示せず）へロードされるファームウェア及びソフトウェアプログラムを実行することができる。このメモリは、適当な形式の揮発性メモリ（例えば、キャッシュメモリ又はランダムアクセスメモリ（ＲＡＭ）、例えば、ダブルデータレート（ＤＤＲ）ＲＡＭ又はスタティックＲＡＭ（ＳＲＡＭ））を含む。ホストプロセッサ２１０は、そのホストプロセッサ２１０が不揮発性メモリパッケージ２２０のための種々のメモリ管理及びアクセス機能を遂行できるようにするベンダー特有及び／又は技術特有のインストラクションを与えるＮＶＭドライバ２１２を実行することができる。ホストプロセッサ２１０は、（図１の）ＳｏＣ１１０いずれかの機能を遂行することができる。
【００２１】
又、ホストプロセッサ２１０は、ＮＶＭドライバ２１２の一部分として実施される電力キャッピングモジュール２１４を実行することもできる。電力キャッピングモジュール２１４は、ＮＶＭパッケージ２２０の電力消費コントローラとして動作し、本発明の種々の実施形態により種々の電力制限スキームを実施することができる。これらの電力制限スキームは、同時にアクセスできるダイ２２４の数を制御することによりＮＶＭパッケージ２２０で消費される電力を制限することができる。本発明の実施形態による種々の電力制限スキームは、以下で詳細に説明する。
【００２２】
ＮＶＭパッケージ２２０は、ボールグリッドアレイ（ＢＧＡ）パッケージ又は他の適当な形式の集積回路（ＩＣ）パッケージである。ＮＶＭパッケージ２２０は、管理型ＮＶＭパッケージでもよい。特に、ＮＶＭパッケージ２２０は、適当な数のＮＶＭダイ２２４に結合されたＮＶＭコントローラ２２２を含むことができる。ＮＶＭコントローラ２２２は、プロセッサ、マイクロプロセッサ、又はハードウェアベースのコンポーネント（例えば、ＡＳＩＣ）の適当な組み合わせを含み、そしてホストプロセッサ２１０と同じコンポーネント又は異なるコンポーネントを含んでもよい。ＮＶＭコントローラ２２２は、ＮＶＭダイ２２４の物理的メモリ位置を管理し及び／又はそこにアクセスする責任をＮＶＭドライバ２１２と共有する。或いは又、ＮＶＭコントローラ２２２は、ＮＶＭダイ２２４に対する実質的に全ての管理及びアクセス機能を遂行してもよい。従って、「管理型ＮＶＭ」とは、不揮発性メモリ（例えば、ＮＶＭダイ２２４）に対する少なくとも１つのメモリ管理機能を遂行するように構成されたコントローラ（例えば、ＮＶＭコントローラ２２２）を含むメモリ装置又はパッケージを指す。ＮＶＭダイ２２４に対してＮＶＭコントローラ２２２及び／又はホストプロセッサ２１０により遂行されるメモリ管理及びアクセス機能は、読み取り、書き込み又は消去インストラクションを発生し、そしてウェアレベリング、不良ブロック管理、不要データ収集、論理的／物理的アドレスマッピング、ＳＬＣ又はＭＬＣプログラミング判断、エラー修正又は検出の適用、及びプログラム動作を設定するためのデータキューイングを遂行することを含む。
【００２３】
ＮＶＭパッケージ２２０は、ＮＶＭコントローラ２２２により実行できる電力キャッピングモジュール２２３を含むことができる。電力キャッピングモジュール２２３は、電力キャッピングモジュール２１４と同じ動作能力を有する。ある実施形態では、両電力キャッピングモジュール２１４及び２２３をシステム２００に含ませることができる。この実施形態では、モジュール２１４及び２２３は、本発明の一実施形態による電力制限スキームを実施するように一緒に機能してもよい。例えば、モジュール２１４は、マスターとして機能し、そしてモジュール２２３は、スレーブとして機能してもよい。別の実施形態では、システム２００は、電力キャッピングモジュール２１４を含むが、電力キャッピングモジュール２２３は含まない。更に別の実施形態では、システム２００は、電力キャッピングモジュール２２３を含むが、電力キャッピングモジュール２１４は含まない。
【００２４】
ＮＶＭダイ２２４は、メモリシステム２００を停止するときに保持する必要のある情報を記憶するのに使用される。ここで使用する「不揮発性メモリ」という語は、状況に応じて、データを記憶できるＮＶＭダイを指すか、又はＮＶＭダイを含むＮＶＭパッケージを指してもよい。
【００２５】
図２Ｂは、図１の電子装置１００の別の実施形態の一例であるシステム２５０の回路図である。このシステム２５０は、図２Ａのシステム２００に関連して上述した特徴及び機能のいずれかを有する。特に、図２Ｂに示すいずれかのコンポーネントは、図２Ａの同じ名前のコンポーネントのいずれかの特徴及び機能を有し、そしてその逆のことも言える。
【００２６】
システム２５０は、ホストプロセッサ２６０及び不揮発性メモリパケット２７０を含むことができる。図２Ａのメモリシステム２００とは異なり、ＮＶＭパッケージ２７０は、埋め込まれたＮＶＭコントローラを含まず、それ故、ＮＶＭダイ２７４は、ホストプロセッサ２６０により（例えば、ＮＶＭドライバ２６２を経て）完全に管理される。従って、不揮発性メモリパッケージ２７０は、「生のＮＶＭ」と称される。「生のＮＶＭ」とは、ＮＶＭパッケージの外部で実施されるホストコントローラ又はプロセッサ（例えば、ホストプロセッサ２６０）により完全に管理されるメモリ装置又はパッケージを指す。ホストプロセッサ２６０は、図２Ａのホストプロセッサ２１０及びＮＶＭコントローラ２２２に関連して上述した他のメモリ管理及びアクセス機能のいずれかを遂行することができる。更に、ホストプロセッサ２６０は、（図１の）ＳｏＣ１１０の機能のいずれかを遂行することができる。
【００２７】
又、ホストプロセッサ２６０は、ＮＶＭドライバ２６２の一部分として実施されてもよい電力キャッピングモジュール２６４も実行できる。電力キャッピングモジュール２６４は、電力キャッピングモジュール２１４（図２Ａ）と同じ動作能力を有することができる。
【００２８】
図２Ａ及び２Ｂを参照し続けると、ＮＶＭコントローラ２２２（図２Ａ）及びホストプロセッサ２６０（例えば、ＮＶＭドライバ２６２を経て）（図２Ｂ）は、各々、図１に関連して上述したＳｏＣ１１０の特徴及び機能を実施し、そしてＮＶＭダイ２２４及び２７４は、本発明の種々の実施形態を使用して確認できる各電力消費プロフィールを実施することができる。特に、ＮＶＭダイ２２４（図２Ａ）及び２７４（図２Ｂ）は、各々、ピーク電流プロフィールを有し、ダイがその最も電力集中の動作を遂行するときに最も高いピークが生じる。フラッシュメモリの実施形態では、このような電力集中動作の一例は、メモリセルに記憶されたデータを読むときに使用される感知動作（例えば、電流感知動作）である。このような感知動作は、例えば、プログラミングの後にデータが適切に記憶されたことを検証するときにホストプロセッサ及び／又はＮＶＭコントローラからの読み取り要求に応答して遂行される。
【００２９】
図２Ｃは、電流消費プロフィール２９０を示す。この電流消費プロフィール２９０は、検証型の感知動作中にＮＶＭダイ（例えば、ＮＶＭダイ２２４又は２７４の１つ）の電流消費の一例を与える。ピーク２９２及び２９４を含む多数のピークを伴う電流消費プロフィール２９０は、検証型の感知動作がどれほどピーキーであるかを示している。これらの検証型感知動作は、複数のＮＶＭダイを横切って同時に生じるおそれがあるので（即ち、複数のダイを横切って並列な書き込みを使用するために）、特に問題である。従って、ＮＶＭコントローラ２２２（図２Ａ）又はホストプロセッサ２６０（図２Ｂ）により管理されない場合には、異なるＮＶＭダイのピークが重畳し、電流の総和が許容できないほど高くなる。この状況は、他の形式の電力集中動作、例えば、消去及びプログラム動作でも生じ得る。従って、各ダイが同時にアクセスされる（例えば、プログラム、読み取り、消去、又はその組み合わせにより）ときには、累積電流消費プロフィールは、単一のダイのものより著しく高くなる。
【００３０】
図３は、本発明の一実施形態によるＮＶＭパッケージの一部分を詳細に示すブロック図である。図３は、書き込み動作中に、どのようにしてデータをデータソース３１０からバッファ３２０へ転送し、そしてバッファ３２０から、ダイ３３０のブロック３３２の１つに存在するページ３３４の１つへ転送するかを示している。書き込み動作は、２つの部分、即ち（１）データをデータソース３１０からバッファ３２０へ転送するバッファ動作、及び（２）データをバッファ３２０からダイ３３０へ転送するプログラム動作を含むことができる。両部分は、時間成分及び電力消費成分を有する。これを完全に遂行するために要求されるバッファ動作及び時間は、ここでは、Ｔｂｕｆｆと称される。又、これを完全に遂行するために要求されるプログラミング動作及び時間は、ここでは、Ｔｐｒｏｇと称される。
【００３１】
書き込み動作のバッファ及びプログラム部分がタイミング図３５０に示されている。このタイミング図３５０は、時間ｔ０で開始し、時間ｔ１で終了する書き込み動作を示している。バッファ部分は、ｔ０で開始しｔｉで終了する全書き込み動作の比較的僅かな部分を占有し、一方、プログラム部分は、ｔｉで開始しｔ１で終了する書き込み動作の比較的大きな部分を占有する。又、図３５０は、バッファ及びプログラム部分の電力消費も示している。プログラム部分は、バッファ部分より実質的に多くの電力を消費する。
【００３２】
データソース３１０は、任意のデータソースのブラックボックス表現である。例えば、データソースは、データをＮＶＭパッケージへ及びＮＶＭパッケージからルーティングするデータバスラインである。データソース３１０は、図２Ａ及び２Ｂのホストプロセッサ２１０又は２６０のようなホストプロセッサからデータを受け取る。
【００３３】
バッファ３２０は、データを一時的に記憶するための適当な構造でよい。例えば、バッファ３２０は、レジスタでよい。バッファ３２０を使用するのは、ダイ３３０より相当に高いレートでデータを受け取って記憶できるからである。従って、バッファ３２０は、ＮＶＭインターフェイスが、データを、一時的及び高速記憶（バッファ３２０に）のために各ダイへディスパッチして、データラインを更なるデータ転送のために解放できるようにする。バッファ３２０が存在しない場合には、データラインは、全てのデータがダイ３３０に書き込まれるまでビジーとなる。
【００３４】
ダイ３３０は、所定数の物理的なブロック３３２を含むことができ、そして各ブロックは、所定数のページ３３４を含むことができる。ページ及びブロックは、ダイ３３０内のメモリセルの物理的な位置を表す。ページ又はブロック内のセルは、セルが存在するＮＶＭパッケージに関連したアドレス回路（図示せず）を使用してアクセスすることができる。典型的に、所与の時間に、ダイ当たり１つのブロックしかアクセスできない。ある実施形態では、ダイは、複数の平面に分割され、ダイの各平面のブロックは、同時にアクセスすることができる。
【００３５】
ある実施形態では、２つ以上のダイからのブロックを仮想的に一緒にリンクしてスーパーブロックを形成することができる。ブロックは、各ダイの同じ行においてスーパーブロックとして仮想的にリンクされる必要はない。実際に、ブロックは、２つ以上のダイからランダムに選択されて、スーパーブロックを形成することができる。ある実施形態では、ブロックは、２つ以上の平面から選択され、各平面のブロックに同時にアクセスすることができる。スーパーブロックは、動作の並列性を与え、異なる平面に位置するブロック上でプログラミング、読み取り及び消去動作を並列に行えるようにする。別の実施形態では、２つ以上のダイ又は平面からのページを仮想的に一緒にリンクして、スーパーページを形成することができる。ＮＶＭインターフェイスにおいて実施される変換レイヤは、スーパーブロック又はスーパーページを追跡する。
【００３６】
フィードバックライン３４０は、ダイ３３０及び／又はバッファ３２０の動作に関する情報を与えることができる。例えば、フィードバックライン３４０は、書き込み動作のバッファ部分及びプログラム部分が完了したときに、ページをプログラムするのに必要なパルスの数、電圧信号、電圧範囲、又はダイ３００の動作に関連した他の情報のようなフィードバック情報を与えることができる。書き込み動作の任意の部分の時間及び電力は、ダイ、ダイの領域、ブロック又はページ（例えば、下位ページ又は上位ページ）まで分解することができ、且つこの情報のいずれかをフィードバックライン３４０に与えられることが理解される。フィードバックライン３４０の情報は、ＮＶＭコントローラ（例えば、ＮＶＭコントローラ２２２）及び／又はホストプロセッサに与えられ、又はより詳細には、電力キャッピングモジュールに与えられる。
【００３７】
図３を参照して述べたＮＶＭ動作は、プログラミング動作に関するものであるが、読み取り及び消去のような他のＮＶＭ動作も、同様のタイミング及び電力消費パラメータを示すことが理解される。例えば、読み取り動作は、読み取り部分及びバッファ部分を有する。読み取り部分は、バッファ部分より多くの電力を消費し、又、遂行するのにより長時間を要する。
【００３８】
図４Ａは、従来のシステムによって制御されるＮＶＭパッケージにおける全てのダイの累積電流消費プロフィール４１０を例示するものである。このプロフィール４１０は、電力制限スキームを使用しないシステムにおいて発生される。その結果、電流プロフィール４１０は、ピーク４１２及び４１４で示すように、ピーク電流消費のインスタンスを含む。このような従来のシステムは、ピーク電力事象の発生を許すので、このような事象を受け容れるように設計されねばならない。これは、システムに不要な設計上の制約を課し、ピーク電流に達するＮＶＭ事象を取り扱い且つピーク電力要求を満足するに充分な電力の予約を強制することになる。更に、ピーク電力事象はあまり頻繁ではないから、平均電流消費は、図示されたように、ピーク電流より低い。ピーク電流と平均電流とのこの相違の結果、過剰な電流オーバーヘッドがＮＶＭパッケージに割り当てられる。本発明による実施形態は、図４Ａの欠点を克服する。
【００３９】
図４Ｂは、本発明の実施形態によるシステム（例えば、システム１００、システム２００、又はシステム２５０）により制御されるＮＶＭパッケージにおける全てのダイの累積電流消費プロフィール４２０を例示するものである。このプロフィール４２０は、電力制限又は電流制御スキームを使用するシステムにおいて発生される。このスキームは、電流消費を制限し、瞬時電流が電流スレッシュホールドを越えるのを防止する。電流を制限することにより、ピーク４２２及び４２４は、電流スレッシュホールドにより制限されない場合に消費する多量の電流を瞬時に消費することが許されない。図示されたように、ピーク４２２及び４２４は、本発明の一実施形態による電流制限スキームにより同時のＮＶＭ動作の数が制限されるので、平坦化される。従って、制限なしに動作することが許された場合に電流スレッシュホールドを越える同時動作負荷を有するＮＶＭ事象が作用することが防止され、電流消費がスレッシュホールドを越えないことを保証するようにそれら事象が時間にわたって分散される。ＮＶＭ事象の同時動作を制限する技術は、図６ないし１２を参照して以下に詳細に述べる。
【００４０】
電力制限スキームの使用で、ＮＶＭパッケージに対する電力オーバーヘッド負担を減少することができる。これは、システムが電力リソースをシステム内の他のコンポーネントに割り当てできるようにする。というのは、電力制限スキームによりセットされた電流スレッシュホールドにより、ＮＶＭパッケージにより引き出される最大電力をセットできるからである。ある実施形態では、電力制限スキームは、電流スレッシュホールドを種々のシステムパラメータに基づいて変化させる。例えば、プロセッサのようなシステム内の他のコンポーネントが相対的にアイドル状態である場合に、ＮＶＭパッケージの電流スレッシュホールドを上げて、付加的な同時ＮＶＭ動作を許すことができる。他のコンポーネントが相対的にアクティブになると、ＮＶＭの電流スレッシュホールドを下げることができる。
【００４１】
図５は、電源監視回路５１２、負荷監視回路５１４、温度監視回路５１６、及びＮＶＭ電力消費データ５１８から受け取った入力に基づいて電流スレッシュホールドを与え且つ動的に変化させるよう動作する電力レベル選択回路５１０の例示的ブロック図である。この選択回路５１０は、ＮＶＭインターフェイス（例えば、ＮＶＭインターフェイス１１８）又はＮＶＭパッケージ（例えば、ＮＶＭ１２０）に電流スレッシュホールドを与える。
【００４２】
電源監視回路５１２は、システムでの入手可能な電力レベルを監視し、そしてそのデータを電力レベル選択回路５１０に与えることができる。例えば、回路５１２は、バッテリのエネルギーレベルを監視することができる。別の例として、回路５１２は、システムがラップトップ又はパワーブリックのような外部電源からシステムが電力を受け取るかどうか検出する。更に、システムが外部電力を受け取るときには、回路が、電力レベル選択回路に、どれほど多くの電力が受け取られるか（例えば、ラップトップから５００ｍＡ又はパワーブリックから１Ａ）を指示することができる。負荷監視回路５１４は、システム内の種々のコンポーネント（例えば、プロセッサ、メモリ、バックライト、ＬＣＤ、ユーザインターフェイス、等）のリアルタイム負荷を監視することができる。又、回路５１４は、例えば、システム内に存在するコマンドキューに基づいてコンポーネントの負荷を予想することができる。温度監視回路５１６は、システムの温度を監視することができる。
【００４３】
ＮＶＭ電力消費データ５１８は、ＮＶＭパッケージによりどれほど多くの電力を消費できるか特定する。ＮＶＭパッケージの電力消費分解能は、比較的特定のもの（例えば、上位ページの電力又は電流消費）から比較的一般的なもの（例えば、特定のダイの電力消費）へと変化する。このデータを使用して、選択回路５１０は、所与の電流スレッシュホールドに対してどれほど多くの同時ＮＶＭ動作を遂行できるか決定することができる。データ５１８は、例えば、ＮＶＭパッケージのベンダーから、又はＮＶＭパッケージの電力消費を決定するテストから導出することができる。ＮＶＭパッケージの電力消費を決定するためのテストの一例が、参考としてここにそのまま援用される“Peak Power Validation Methods and Systems for Non-Volatile Memory”と題する米国特許出願（代理人管理番号Ｐ８９０９ＵＳ１）に見られる。
【００４４】
選択回路５１０は、それが受け取るデータをバランスさせ、それに応じて電流スレッシュホールドをセットすることができる。例えば、供給電力が所定の電力スレッシュホールドより高く、システム負荷が所定の負荷スレッシュホールドより低く、且つ温度が所定の温度スレッシュホールドより低い場合には、回路５１０は、比較的高い電流スレッシュホールドを選択してもよい。別の例として、供給電力が所定の電力スレッシュホールドより低く、システム負荷が所定の負荷スレッシュホールドより高く、且つ温度が所定の温度スレッシュホールドより低い場合には、回路５１０は、比較的低い電流スレッシュホールドを選択してもよい。これらの例は、単なる例示に過ぎず、そして回路５１０は、ここに述べるものを越える付加的な入力を、電流スレッシュホールドを動的に変化させるファクタとして受け取ってもよいことが理解される。
【００４５】
図６から１２を参照し、ＮＶＭ動作における電力消費を制限するための幾つかの技術を説明する。各技術は、図３について上述したように、バッファするための時間及びプログラムするための時間を参照するものである。バッファするための時間は、ここでは、Ｔｂｕｆｆと称され、そしてプログラムするために時間は、ここでは、Ｔｐｒｏｇと称される。幾つかの図は、番号付けされたダイを参照することを含む。Ｔｂｕｆｆ及びＴｐｒｏｇは、Ｔｂｕｆｆ及びＴｐｒｏｇ動作がどのダイに関連するか指示するためにダイ番号（例えば、Ｔｐｒｏｇ１）が添付される。例えば、Ｔｐｒｏｇ１は、ダイ番号１に対してプログラムするための時間を指す。
【００４６】
図６は、電流制限されない理想的なタイミング図６１０を例示している。このタイミング図６１０は、番号１及び２で示された２つのダイオードに対するＴｂｕｆｆ及びＴｐｒｏｇを示している。付加的なダイを示すことができるが、図面の過剰な複雑さを回避するために省略されていることを理解されたい。図示されたように、ＮＶＭ事象は、Ｔｂｕｆｆ１で始まり、その完了直後に、Ｔｐｒｏｇ１及びＴｂｕｆｆ２が始まる。Ｔｂｕｆｆ２が完了した後に、Ｔｐｒｏｇ２が始まる。この点において、Ｔｐｒｏｇ１及びＴｐｒｏｇ２が同時の動作であるから、電流消費が最高となる。Ｔｐｒｏｇ１が完了すると、Ｔｐｒｏｇ２が遂行されるだけであるから、電流消費は下がる。タイミング図６１０は、ＮＶＭの動作に電流スレッシュホールドが課せられず、従って、ダイ１及び２の両方の電流消費を積み重ねることができるので、理想的である。
【００４７】
図７は、本発明の一実施形態による電流制限型タイミング図７１０である。このタイミング図７１０は、同時ダイ動作を１つのダイのみに実際上制限する電流スレッシュホールドに従うものである。図示されたように、ＮＶＭ事象は、Ｔｂｕｆｆ１で始まり、その完了直後に、Ｔｐｒｏｇ１及びＴｂｕｆｆ２が始まる。図６とは対照的に、Ｔｐｒｏｇ２は、Ｔｂｕｆｆ２及びＴｐｒｏｇ１が完了する後まで開始しない。従って、Ｔｐｒｏｇ１が完了する後までＴｐｒｏｇ２の開始を遅延することで、電流消費を制限し、電流スレッシュホールドに従わせる。（理想的なモードにおいて作用する）Ｔｐｒｏｇ２の破線表示が比較のために設けられる。
【００４８】
図８Ａは、本発明の一実施形態による反応的電力制限スキームに基づいて動作する電流制限型タイミング図８１０を例示するものである。このスキームでは、実質的にＴｂｕｆｆ動作が完了した直後にＴｐｒｏｇ動作が開始すると仮定する。このスキームは、フィードバックデータを使用して、ダイごとにＴｂｕｆｆ及びＴｐｒｏｇ動作のディスパッチ（即ち、開始）を制御する。フィードバックデータは、例えば、所与のダイのＴｐｒｏｇがいつ完了するか特定することができる。従って、所与の電流スレッシュホールドに対し、どれほど多くのＴｐｒｏｇ動作を遂行できるか分かる。この知識及びフィードバックデータを使用して、反応的電力制限スキームは、電流スレッシュホールドに対して可能であるのと同程度に多くの動作をディスパッチすることができる。
【００４９】
タイミング図８１０は、Ｔｂｕｆｆ１で始まり、次いで、Ｔｐｒｏｇ１となる。Ｔｐｒｏｇ１が完了した後に、Ｔｐｒｏｇ１が完了したことを指示するフィードバックデータが与えられる。このフィードバックデータが受け取られた後、反応的電力制限スキームは、Ｔｂｕｆｆ２を開始し、その直後に、Ｔｐｒｏｇ２となる。図８Ａに示されていないが、Ｔｐｒｏｇ１が完了した後にＴｂｕｆｆ２が開始するのに待ち時間が生じ得る。というのは、フィードバックデータを受け取って処理するのに要する時間に関連した遅延が生じるからである。
【００５０】
図８Ｂは、本発明の一実施形態により反応的電力制限スキームで遂行されるステップの例示的フローチャートである。ステップ８２０で開始して、電流スレッシュホールドが受け取られる。システム内の種々のファクタに基づいて電流スレッシュホールドを変更できることを示すためにフィードバックループが設けられる。異なる電流スレッシュホールドが受け取られたときに、電流制限スキームは、その差を考慮して、必要に応じて適当な変更を行う。
【００５１】
ステップ８３０において、受け取られた電流スレッシュホールドに基づいて遂行できる同時ＮＶＭ動作の最大数Ｃｍａｘに関して決定がなされる。ステップ８４０において、キューイングされる同時ＮＶＭ動作の上限が受け取られ、それらを同時に動作すると、電流スレッシュホールドを越えることになる。ステップ８５０において、キューイングされるＮＶＭ動作の第１セットをディスパッチし、この第１セットは、Ｃｍａｘを越えない動作の数を含む。この第１セットは、Ｔｐｒｏｇの完了をまだ報告していない以前にディスパッチされたＮＶＭ動作を考慮することができる。ステップ８６０において、Ｔｐｒｏｇ完了のフィードバックを監視する。完了したＴｐｒｏｇが検出されると、ステップ８７０に示されたように、キューイングされるＮＶＭ動作の別の１つをディスパッチすることができる。
【００５２】
ステップ８８０において、キューイングされる付加的なＮＶＭ動作が存在するかどうかの決定がなされる。その決定がイエスの場合には、プロセスは、ステップ８６０へループバックする。キューイングされるＮＶＭ動作の上限に追加される付加的なＮＶＭ動作が受け取られることがあり、従って、同時動作の数を制限する必要性が更に続く。その決定がノーの場合には、プロセスは、ステップ８２０へループバックする。
【００５３】
図９は、本発明の一実施形態によるパイプライン型反応的電力制限スキームに基づいて動作する電流制限タイミング図９１０を例示する。このスキームは、図８Ａ及び８Ｂを参照して上述した反応的電力制限スキームと同様であるが、Ｔｂｕｆｆ動作をパイプライン型とすることができる。しかしながら、Ｔｐｒｏｇ動作は、実質的にＴｂｕｆｆ動作が完了した直後に自動的に開始しない。このスキームは、Ｔｂｕｆｆ動作を実質的にそれに対応するＴｐｒｏｇ動作の直前に遂行する必要性を排除することによりＮＶＭ動作のスループットを高めることができる。即ち、第２のダイに対するＴｂｕｆｆ動作を、第１のダイのＴｐｒｏｇ動作の前又は動作中に遂行することができる。
【００５４】
タイミング図９１０は、Ｔｂｕｆｆ１で開始し、そしてＴｂｕｆｆ１が完了した後に、Ｔｐｒｏｇ１及びＴｂｕｆｆ２の両方が開始することができる。Ｔｂｕｆｆ２は、Ｔｐｒｏｇ１が完了する前にその動作を完了するが、パイプライン反応的スキームは、Ｔｐｒｏｇ１が完了したことを示すフィードバックが受け取られるまでＴｐｒｏｇ２の開始を許さない。別の実施形態では、Ｔｂｕｆｆ１及びＴｂｕｆｆ２が一緒に開始できるが、Ｔｐｒｏｇ２は、Ｔｐｒｏｇ１が完了するまで開始しない。
【００５５】
図１０Ａ及び１１Ａは、本発明の一実施形態による予想的電力制限スキームに基づいて動作する電流制限タイミング図を例示する。この予想的電力制限スキームは、各ＮＶＭ動作を完了するのにどれほど長く要するか予想することができ、そして所与の電流スレッシュホールドに対してどれほど多くの同時Ｔｐｒｏｇ動作を遂行できるか分かるので、この予想的電力制限スキームは、できるだけ多くの同時動作をディスパッチするように動作できる。反応的電力制限スキームとは対照的に、予想的電力制限スキームは、その後のＮＶＭ動作をいつディスパッチできるか決定するためにフィードバックに依存する必要はない。その名前が意味する通り、予想的電力制限は、所与のＮＶＭ動作がいつ完了するか予想し、その予想に関連した期間が終了した後にＮＶＭ動作をディスパッチする。
【００５６】
ＮＶＭ動作の予想は、２つの部分、即ち（１）予想をバッファするための時間Ｔｂｕｆｆ(ｐ)、及び予想をプログラムするための時間Ｔｐｒｏｇ(ｐ)を含むことができる。これらのＴｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)は、実際のＴｂｕｆｆ及びＴｐｒｏｇ動作が実際にどれほど長くを要するかの予想である。Ｔｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)の選択は、保守的から積極的へと変化することができる。他の実施形態では、コンテクスト特有の予想を選択することができる（例えば、Ｔｐｒｏｇ(ｐ)は、上位ページをプログラミングする方が、下位ページをプログラミングより高い）。更に別の実施形態では、フィードバック情報での予想を使用するハイブリッド解決策を実施することができる。
【００５７】
図１０Ａを参照すれば、本発明の一実施形態による保守的な予想的電力制限スキームに基づいて動作する電流制限タイミング図１０１０が例示される。一実施形態において、この保守的な予想は、各ＮＶＭ動作に充分な時間が割り当てられるように保証し、実際のＴｂｕｆｆ及びＴｐｒｏｇ時間がＴｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)より短くなるよう実質上合理的に保証することができる。別の実施形態では、保守的な予想は、Ｔｂｕｆｆ(ｐ)がＴｐｒｏｇより大きいことを保証するように選択することができる。これら解決策は、例えば、Ｔｐｒｏｇの予想されない遅延に対して保護するための安全ネットを与えることができるが、動作を完了するために実際に必要とされる以上のものを予想することを犠牲にする。従って、同時ＮＶＭ動作のスループットを下げる予想オーバーヘッド時間の潜在的な危険性がある。
【００５８】
タイミング図１０１０は、２つのダイに対する予想タイミングパラメータを示し、そして保守的な予想パラメータが選択されるので、Ｔｂｕｆｆは、Ｔｐｒｏｇより、完了までに長時間を要すると仮定される。実際に、その逆も真であり、Ｔｐｒｏｇは、一般的に常に、Ｔｂｕｆｆより、完了までに長時間を要する。図示されたように、Ｔｂｕｆｆ(ｐ１)及びＴｂｕｆｆ(ｐ２)は、Ｔｐｒｏｇ(ｐ)及びＴｐｒｏｇ(ｐ)より、完了のために長時間が割り当てられる。図１０Ａ及び図１０Ｂの両方を参照すれば、タイミング図１０２０は、保守的な予想的電力制限スキームに基づいて動作する２つのダイに対する実際のタイミングパラメータを示す。Ｔｐｒｏｇ２の開始は、Ｔｐｒｏｇ１の完了ではなく、Ｔｂｕｆｆ(ｐ２)の完了とキーオフされる。従って、Ｔｂｕｆｆ(ｐ２)がＴｐｒｏｇ１より大きいことを保証することにより、Ｔｐｒｏｇ１及びＴｐｒｏｇ２の重畳はなく、ＮＶＭ動作の望ましからぬ同時動作が防止される。
【００５９】
図１０Ｃは、本発明の一実施形態による保守的な予想的電力制限スキームを実施するために行われるステップのフローチャートを例示する。ステップ１０２２で始めて、電流スレッシュホールドを受け取る。システムの種々のファクタに基づいて電流スレッシュホールドを変更できることを示すためにフィードバックループが与えられる。異なる電流スレッシュホールドが受け取られると、その異なる電流スレッシュホールドに関連した限界が予想的電力制限スキームにより適用される。ステップ１０３０において、受け取った電流スレッシュホールドに基づいて遂行できる同時ＮＶＭ動作の最大数（Ｃｍａｘ）の決定を行う。
【００６０】
ステップ１０４０において、予想スキームは、ＮＶＭ動作の予想タイミングパラメータを選択する。これらのパラメータは、Ｔｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)を含み、全てのＮＶＭ動作に均一に適用することができる。例えば、一実施形態では、Ｔｂｕｆｆ(ｐ)の期間は、Ｔｐｒｏｇ(ｐ)の期間より長い。予想時間パラメータとして選択される実際の値は、適当なソースから導出される。例えば、これらパラメータは、ＮＶＭパッケージベンダー仕様、Ｔｐｒｏｇ及び／又はＴｂｕｆｆの平均期間、又はテストデータに基づく。ある実施形態では、Ｔｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)として選択される実際の値は、これらＮＶＭ動作の各々に必要とされる最大期間に基づく。これらのＮＶＭ動作の平均期間に基づいて実際の値を選択する解決策とは対照的に、Ｔｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)の最大期間を使用することで、先にディスパッチされた動作が、次の動作が始まる前に完了しないという状態を防止することができる。
【００６１】
ステップ１０４５において、キューイングされる同時ＮＶＭ動作の上限を受け取り、全部を一度に動作することが許される場合に、それらが同時に動作されると、電流スレッシュホールドを越えることになる。説明を容易にするため、キューイングされるＮＶＭ動作は、少なくとも１つのＴｐｒｏｇ動作が進行中である間に受け取られると仮定する。ステップ１０５０において、ディスパッチされるセットがＣｍａｘを越えないように、キューイングされるＮＶＭ動作のどれほど多くをディスパッチできるかの決定がなされる。この決定は、既にディスパッチされたが、依然、予想されるタイミングパラメータ、例えば、Ｔｂｕｆｆ(ｐ)内にある、先にディスパッチされたＮＶＭ動作を考慮することができる。例えば、選択された電流スレッシュホールドに対して５つの同時ＮＶＭ動作を遂行することができ、且つ１つの先にディスパッチされたＮＶＭ動作が未解決であるが、先にディスパッチされた動作に対する予想される時間パラメータ（例えば、Ｔｂｕｆｆ(ｐ)）が満了になっていないために完了したと推定できないことを仮定する。この仮定のもとで動作すると、ディスパッチされるセットは、キューイングされるＮＶＭ動作を４つ含むことができる。ステップ１０５０又はその後のステップが遂行される間に、付加的なＮＶＭ動作をキューに追加できることを理解されたい。
【００６２】
ステップ１０５５において、キューイングされるＮＶＭ動作のディスパッチされたセットに関連したＴｂｕｆｆ(ｐ)パラメータを、先にディスパッチされたＮＶＭ動作のＴｂｕｆｆ(ｐ)パラメータの終わりに添付する。先にディスパッチされたＮＶＭ動作が２つ以上ある場合には、先にディスパッチされたＮＶＭ動作のシーケンスにおける最後のものがＮＶＭ動作とキーオフされる。換言すれば、先にディスパッチされたＮＶＭ動作のＴｐｒｏｇが始まるときに、Ｔｂｕｆｆ(ｐ)パラメータのディスパッチされたセットを開始することができる。従って、Ｔｂｕｆｆ(ｐ)パラメータの第１セットをこのように添付することで、先にディスパッチされたＮＶＭ動作のＴｐｒｏｇに、ディスパッチされたセットのＴｐｒｏｇが始まるまでにその動作を完了するに充分な時間が与えられることを保証する。
【００６３】
ステップ１０６０において、先にディスパッチされたＮＶＭ動作を、ディスパッチされたセットのＴｂｕｆｆ(ｐ)の間にＮＶＭパッケージのページへプログラムする。ステップ１０７０において、キューイングされたＮＶＭ動作が残っているかどうかの決定がなされる。もしイエスであれば、プロセスは、ステップ１０５０へ復帰する。もしノーであれば、プロセスは、ステップ１０２２へ復帰する。
【００６４】
図１１Ａは、本発明の一実施形態による積極的な予想的電力制限スキームに基づき動作する電流制限タイミング図を例示する。一実施形態において、この積極的なスキームは、各ＮＶＭ動作に対してＴｂｕｆｆが実質的に一定であり、且つＴｐｒｏｇが１つ以上のファクタに基づいて変化すると仮定する。従って、積極的なスキームは、典型的にバッファ動作に関連した時間値のような定数をＴｂｕｆｆ(ｐ)に添付することができ、そしてこのスキームは、Ｔｐｒｏｇ(ｐ)に対する予想時間のスライディングスケールを使用してもよい。更に、Ｔｂｕｆｆ動作は、パイプライン型で、このスキームにより許されるや否や、Ｔｐｒｏｇ動作について準備することができる。同時ＮＶＭ動作（このスキームで制限されない場合に電流スレッシュホールドを越える累積電力消費を生じることになる）に対するＴｐｒｏｇの開始は、先にディスパッチされたＮＶＭ動作のＴｐｒｏｇ(ｐ)の終わりである。これは、Ｔｂｕｆｆ(ｐ)の終わりにＴｐｒｏｇを開始した保守的な予想解決策とは対照的である。
【００６５】
このスキームの積極的な態様は、Ｔｐｒｏｇ(ｐ)のスライディングスケールによって与えられる。Ｔｐｒｏｇ(ｐ)を最小にするのが望ましいが、実際のＴｐｒｏｇ動作がＴｐｒｏｇ(ｐ)を越えるほどではない。Ｔｐｒｏｇ(ｐ)は、多数のファクタに基づいて変化し得る。例えば、Ｔｐｒｏｇ(ｐ)は、電流スレッシュホールド、データが下位ページへプログラムされるか上位ページへプログラムされるか、データをプログラムすべきダイの領域、上限キューにおけるＮＶＭ動作の数、又はその組み合わせに基づいて変化し得る。
【００６６】
例えば、システムにより消費される電流は、データが下位ページへプログラムされるか上位ページへプログラムされるかに基づいて変化し得る。上位ページのプログラミングは、一般に、下位ページのプログラミングより長いので、上位ページのプログラミングに対する電流消費は、対応的に高くなる。従って、上位ページのプログラミングについては、下位ページのプログラミングよりも長い予想時間がＴｐｒｏｇ(ｐ)に指定される。
【００６７】
タイミング図１１１０は、１つの同時ＮＶＭ動作しか許さない電流スレッシュホールドのもとで動作する２つのダイに対する予想Ｔｂｕｆｆ(ｐ)及びＴｐｒｏｇ(ｐ)を示す。図示されたように、Ｔｂｕｆｆ(ｐ１)及びＴｂｕｆｆ(ｐ２)は、バッファ動作をパイプライン型であることを示す。Ｔｐｒｏｇ(ｐ１)は、Ｔｂｕｆｆ(ｐ１)の直後に開始し、そしてこの例では、１つの同時ＮＶＭ動作しか許されないので、Ｔｐｒｏｇ(ｐ２)がＴｐｒｏｇ(ｐ１)の予想される終わりにキーオフされる。図１１Ａ及び１１Ｂの両方を参照すれば、タイミング図１１２０は、積極的な予想的電力制限スキームに基づいて動作する２つのダイに対する実際のタイミングパラメータを示す。Ｔｐｒｏｇ１の開始は、Ｔｂｕｆｆ(ｐ１)の完了とキーオフされ、そしてＴｐｒｏｇ２の開始は、Ｔｐｒｏｇ(ｐ１)の完了とキーオフされる。
【００６８】
図１１Ｃ及び１１Ｄは、各々、本発明の実施形態による積極的な予想的電力制限スキームに基づく付加的なタイミング図１１３０及び１１４０を示す。これらのタイミング図１１３０及び１１４０は、２つの同時ＮＶＭ動作しか許さない電流スレッシュホールドのもとで動作する６つの同時ＮＶＭ動作を示している。更に、これらのタイミング図１１３０及び１１４０は、あるＮＶＭ動作から別のＮＶＭ動作への予想Ｔｐｒｏｇ(ｐ)が（上述したような適当なファクタに基づいて）どれほど変化するか示している。例えば、タイミング図１１３０では、ＮＶＭ  Ｔｐｒｏｇ(ｐ)動作１、３及び５には、ＮＶＭ  Ｔｐｒｏｇ(ｐ)動作２、４及び６より短い時間が割り当てられる。一方、タイミング図１１４０のように、ＮＶＭ  Ｔｐｒｏｇ(ｐ)動作１、３及び５には、ＮＶＭ  Ｔｐｒｏｇ(ｐ)動作２、４及び６より長い時間が割り当てられる。タイミング図１１３０及び１１４０において、各次々のＴｐｒｏｇ(ｐ)動作が、先のＴｐｒｏｇ(ｐ)動作の完了にキーオフされる。
【００６９】
図１１Ｅは、本発明の一実施形態による積極的な予想的電力制限スキームにより遂行されるステップのフローチャートを例示する。このフローチャートは、図１０Ｃを参照して上述したフローチャートと多くの観点で同様であり、主たる相違は、Ｔｐｒｏｇ動作がＴｐｒｏｇ(ｐ)予想とキーオフされることである。
【００７０】
ステップ１１４２で始めて、各ＮＶＭ動作にはプログラミングパラメータ（Ｔｐｒｏｇ(ｐ)）の予想時間が指定される。このパラメータは、上述したように、種々のファクタに基づいて変化し得る。ステップ１１４４では、各ＮＶＭ動作に関連したデータをバッファし、実質的に即時のプログラミングにデータが利用できるようにする。即ち、複数のＮＶＭ動作のためのデータを複数の各バッファに記憶できるが、そこに記憶されたデータは、ダイのページへ自動的にプログラムされない。
【００７１】
ステップ１１４６において、ＮＶＭ動作のその後のプログラム動作のスタートは、先のＮＶＭ動作のＴｐｒｏｇ(ｐ)の終わりに開始される。例えば、その後のプログラム動作がＴｐｒｏｇ２であり、そして先のプログラム動作Ｔｐｒｏｇ１の予想Ｔｐｒｏｇ(ｐ１)が時間ｔ１に終了すると仮定する。これは、プログラム動作Ｔｐｒｏｇ１が時間ｔ１（Ｔｐｒｏｇ(ｐ１)により予想される）までに完了することを仮定している。従って、その後のプログラム動作Ｔｐｒｏｇ２は、時間ｔ１に開始する。更に、プログラム動作Ｔｐｒｏｇ２の予想Ｔｐｒｏｇ(ｐ２)も、時間ｔ１に開始する。ステップ１１４８において、バッファされたデータを使用して、その後のＮＶＭ動作のプログラミング部分を遂行する。
【００７２】
図１２は、本発明の一実施形態による電力制限スキームを使用してシステムにより実施されるステップを例示する。ステップ１２１０で始めて、電流スレッシュホールドを調整する際にファクタとして使用するのに適したデータを複数のソースから受け取る。これらソースは、コンポーネント及びそれらコンポーネントに関連した状態を監視する種々の監視回路（例えば、図５の回路５１２、５１４及び５１６）を含むことができる。又、ソースは、システムの種々のコンポーネントの動作パラメータ（例えば、ＮＶＭパッケージのピーク電力消費）を特定するデータを含むこともできる。電流スレッシュホールドは、たとえＮＶＭパッケージが、スレッシュホールドでセットされた以上の電力を消費できても、ＮＶＭパッケージの最大電流消費をセットすることができる。電流スレッシュホールドは、ＮＶＭが消費できるピーク電流未満である。
【００７３】
ステップ１２２０において、電流スレッシュホールドを、受け取ったデータに基づいて調整することができる。このシステムは、電流スレッシュホールドを最小の電流スレッシュホールドレベルに最初にセットすることができる。このレベルは、ＮＶＭパッケージが最小性能スレッシュホールドを満足できることを保証することができる。受け取ったデータが、付加的な電力をＮＶＭパッケージに供給できることを示す場合には、付加的な電力の利点を取り入れるように、電流スレッシュホールドをアップ方向に調整することができる。受け取ったデータが、付加的な電力がもはや得られないことを示すときには、それに応じて電流スレッシュホールドをダウン方向に調整することができる。電流スレッシュホールドをリアルタイムで調整できることを示すために、ステップ１２２０からステップ１２１０へのフィードバックループが設けられる。
【００７４】
ステップ１２３０において、累積電流消費が調整された電流スレッシュホールドを越えないように、電力制限スキームを使用して同時ＮＶＭ動作の数を制限する。電力制限スキームは、ここに述べた電力制限スキームのいずれか１つ（例えば、反応的又は予想的電力制限スキームの１つ）である。ある実施形態では、このシステムは、２つ以上の電力制限スキーム間をスイッチすることができる。
【００７５】
図８Ｂ、１０Ｃ、１１Ｅ及び１２のフローチャートに含まれたステップは、単なる例示に過ぎないことを理解されたい。本発明の範囲から逸脱せずに、これらのステップのいずれかを除去し、変更し、又は組み合わせしてもよく、又、付加的なステップを追加してもよい。
【００７６】
本発明の以上の実施形態は、説明上表現されたものであり、これに限定されない。
【符号の説明】
【００７７】
１００：電子装置
１１０：システム・オン・ア・チップ（ＳｏＣ）
１１２：ＳｏＣ制御回路
１１４：メモリ
１１８：ＮＶＭインターフェイス
１２０：不揮発性メモリ（ＮＶＭ）
１３０：電力レベル選択回路
２００、２５０：システム
２１０、２６０：ホストプロセッサ
２１４、２２３、２６４：電力キャッピングモジュール
２２０、２７０：不揮発性メモリ（ＮＶＭ）パッケージ
２２２：ＮＶＭコントローラ
２２４、２７４：ダイ
２６２：ＮＶＭドライバ
２９０：電流消費プロフィール
２９２、２９４：ピーク
３１０：データソース
３２０：バッファ
３３０：ダイ
３３２：ブロック
３３４：ページ
３４０：フィードバックライン
３５０：タイミング図
４１０、４２０：電流消費プロフィール
４２２、４２４：ピーク
５１０：電力レベル選択回路
５１２：電力供給監視回路
５１４：負荷監視回路
５１６：温度監視回路
５１８：ＮＶＭ電力消費データ
【図１】
0005722728.tif 000002
【図２Ａ】
0005722728.tif 000003
【図２Ｂ】
0005722728.tif 000004
【図２Ｃ】
0005722728.tif 000005
【図３】
0005722728.tif 000006
【図４Ａ】
0005722728.tif 000007
【図４Ｂ】
0005722728.tif 000008
【図５】
0005722728.tif 000009
【図６】
0005722728.tif 000010
【図７】
0005722728.tif 000011
【図８Ａ】
0005722728.tif 000012
【図８Ｂ】
0005722728.tif 000013
【図９】
0005722728.tif 000014
【図１０Ａ−Ｂ】
0005722728.tif 000015
【図１０Ｃ】
0005722728.tif 000016
【図１１Ａ−Ｂ】
0005722728.tif 000017
【図１１Ｃ】
0005722728.tif 000018
【図１１Ｄ】
0005722728.tif 000019
【図１１Ｅ】
0005722728.tif 000020
【図１２】
0005722728.tif 000021