(57)【要約】  不揮発性メモリシステム（例えば、フラッシュメモリシステム）のようなシステムのピーク電力消費を管理するためのシステム及び方法が開示される。このシステムは、複数のサブシステムと、それらのサブシステムを制御するためのコントローラとを備えている。各サブシステムは、ピークのある電流プロフィールを有する。従って、コントローラは、例えば、電力集中動作を同時に実行できるサブシステムの数を制限するか、又はサブシステムが所与の時間に消費するピーク電力を決定する上でサブシステムを支援することにより、システムのピーク電力を制御することができる。【選択図】      図２Ａ
2013516716.tif 000002
【特許請求の範囲】
【請求項１】
複数のフラッシュダイと、
前記複数のフラッシュダイを制御するためのコントローラと、
を備え、前記コントローラは、多くとも所定数のフラッシュダイが電力集中動作を実質的に同時に実行するのを許すように構成された、フラッシュメモリシステム。
【請求項２】
前記電力集中動作は、感知動作を含む、請求項１に記載のフラッシュメモリシステム。
【請求項３】
前記フラッシュメモリシステムは、マネージド不揮発性メモリパッケージを含み、そのマネージド不揮発性メモリパッケージは、前記複数のフラッシュダイ及びコントローラを含む、請求項１に記載のフラッシュメモリシステム。
【請求項４】
前記フラッシュメモリシステムは、ロー不揮発性メモリシステムを含み、前記コントローラは、ホストプロセッサを含む、請求項１に記載のフラッシュメモリシステム。
【請求項５】
複数のメモリサブシステムを含む不揮発性メモリシステムのピーク電力消費を管理する方法において、
各メモリサブシステムのクロックを同期させる段階と、
時間を複数のタイムスロットに分割する段階と、
電力集中動作を実行するためのタイムスロットを前記メモリサブシステムの各々に指定する段階と、
を含む方法。
【請求項６】
前記同期段階は、同じクロックソースから導出されたクロック信号を前記メモリシステムの各々に供給することを含む、請求項５に記載の方法。
【請求項７】
前記メモリサブシステムの各々は、内部クロックを含み、前記同期段階は、各メモリサブシステムの内部クロックを同期させることを含む、請求項５に記載の方法。
【請求項８】
前記分割段階は、前記メモリサブシステムの数に基づいて多数のタイムスロットを生成し、タイムスロットは、連続的に繰り返される、請求項５に記載の方法。
【請求項９】
前記メモリサブシステムの１つで電力集中動作を実行することを決定する段階と、
前記メモリサブシステムの前記１つが現在タイムスロットに指定されているかどうか決定する段階と、
前記メモリサブシステムの前記１つが現在タイムスロットに指定されているかどうかに基づいて電力集中動作を実行する段階と、
を更に含む請求項５に記載の方法。
【請求項１０】
前記不揮発性メモリシステムは、ＮＡＮＤフラッシュメモリシステムである、請求項５に記載の方法。
【請求項１１】
コントローラを使用してメモリシステム内の複数のメモリサブシステムを制御する方法において、
前記メモリサブシステムのうちの第１のメモリサブシステムで電力集中動作を開始することを決定する段階であって、前記電力集中動作は、読み取り、プログラム及び消去動作の１つを含むような段階と、
電力集中動作を開始するための前記コントローラからの許可を要求する段階と、
前記メモリサブシステムのうちの別のメモリサブシステムが電力集中動作を実行するかどうか前記コントローラで決定する段階と、
前記決定に基づいて前記第１のサブシステムに許可を与えるべきかどうか選択する段階と、
前記決定の結果を前記第１のサブシステムに与える段階と、
を含む方法。
【請求項１２】
前記メモリシステムは、フラッシュメモリシステムを含み、そして前記メモリサブシステムは、フラッシュダイを含む、請求項１１に記載の方法。
【請求項１３】
前記選択段階は、所定数より少ないサブシステムが電力集中動作を既に実行しているときには許可を与えると決定することを含む、請求項１１に記載の方法。
【請求項１４】
前記方法は、更に、電力集中動作を既に実行しているサブシステムの合成電流使用量を決定する段階を含み、
前記選択段階は、その合成電流使用量に基づいて実行される、
請求項１１に記載の方法。
【請求項１５】
前記方法は、更に、
前記第１のサブシステムで電力集中動作を開始するための許可を受けるのに応答して、電力集中動作を実行する段階と、
前記第１のサブシステムの電力集中動作が完了したときに前記コントローラに指示する段階と、
を含む請求項１１に記載の方法。
【請求項１６】
前記電力集中動作は、第１の電力集中動作であり、前記方法は、更に、
前記サブシステムのうちの第２のサブシステムで第２の電力集中動作を開始することを決定する段階と、
第２の電力集中動作を開始するための前記コントローラからの許可を要求する段階と、
前記第１の電力集中動作が完了していないことを前記コントローラで決定する段階と、
前記第２の電力集中動作を開始するための許可を前記第２のサブシステムに与えないことを決定する段階と、
を含む請求項１１に記載の方法。
【請求項１７】
前記方法は、更に、
前記第１のサブシステムが前記第１の電力集中動作を完了したことを前記第１のサブシステムから前記コントローラで受け取る段階と、
前記第２の電力集中動作を開始するための許可を前記第２のサブシステムに与える段階と、
を含む請求項１６に記載の方法。
【請求項１８】
複数のサブシステムと、
前記サブシステムを制御するためのコントローラと、
を備え、前記コントローラは、
前記サブシステムのどれが電力集中動作を実行するか決定し、そして
電力集中動作を実行する前記サブシステムの数の指示を前記サブシステムの少なくとも１つに与える、
ように構成された、システム。
【請求項１９】
前記少なくとも１つのサブシステムは、前記数に基づいて動作を実行するように構成される、請求項１８に記載のシステム。
【請求項２０】
前記少なくとも１つのサブシステムは、更に、前記数に基づいて、低速度低電力動作に対して高速度高電力動作をトレードオフするように動作を設定するよう構成された請求項１８に記載のシステム。
【請求項２１】
前記システムは、フラッシュメモリシステムを含み、そして前記サブシステムは、フラッシュダイを含む、請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤフラッシュメモリシステムのようなシステムのピーク電力消費の管理に係る。
【背景技術】
【０００２】
電子システムは、益々複雑なものとなり、益々多くのコンポーネントを組み込んできている。従って、これらシステムのピーク電力問題が続いている。特に、システム内の多くのコンポーネントが同時に動作するので、システムは、電力又は電流スパイクに悩まされている。この影響は、特に、システムコンポーネントが各々高電力動作を実行するときに顕著である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
消費者向け電子装置の大量記憶に通常使用されるフラッシュメモリシステムは、ピーク電力が問題となる現在システムの一例である。
【課題を解決するための手段】
【０００４】
フラッシュメモリシステム（例えば、ＮＡＮＤフラッシュメモリシステム）のようなシステムのピーク電力消費を管理するためのシステム及び方法について開示する。
【０００５】
複数のサブシステムと、それらサブシステムを制御するためのコントローラとを備えたシステムが提供される。各サブシステムは、実質的に同じ特徴及び機能を有し、そしてピークのある電流プロフィールを有する。特に、各サブシステムは、電力消費が変化する動作を実行し、従って、時間と共に、より高電力の動作に対応してサブシステムの電流プロフィールに電流ピークが生じる。
【０００６】
ある実施形態では、システムは、メモリシステムであるか、又はメモリシステムを備えている。特にピーク電流プロフィールを有するメモリシステムの一例は、フラッシュメモリシステム（例えば、ＮＡＮＤフラッシュメモリシステム）である。そのようなフラッシュシステムでは、サブシステムは、フラッシュダイ電流消費プロフィールにスパイクを生じさせる電力集中動作を実行する異なるフラッシュダイを備えている。フラッシュダイを制御するコントローラは、ホストプロセッサ（例えば、ロー又はマネージドＮＡＮＤシステムにおいて）及び／又はフラッシュコントローラ（例えばマネージドＮＡＮＤシステムにおいて）を備えている。他の実施形態では、フラッシュメモリシステムに代わって、システムは、他の適当な不揮発性メモリシステム、例えば、ハードドライブシステム、又は適当な並列コンピューティングシステムを備えている。
【０００７】
コントローラ（例えば、ホストプロセッサ及び／又はフラッシュコントローラ）は、システムのピーク電力消費を管理するよう構成される。例えば、コントローラは、電力集中動作を同時に実行できるサブシステムの数を制限するか、又はサブシステムが所与の時間に消費するピーク電力を決定する上でサブシステムを支援する。このように、システムの合計電力がホストシステムの動作に適したスレッシュホールドレベル内に維持される。
【０００８】
ある実施形態では、時分割多重化スキームが使用され、コントローラは、電力集中動作を実行するためのタイムスロットを各サブシステムに指定する。他の実施形態では、コントローラは、電力集中動作を実行するために所与の時間に多くとも所定数のサブシステムに許可を与えるように構成される。或いは又、コントローラは、実質的な動作を実行するサブシステムの予想電流使用の和を追跡し、そしてその和に基づいて付加的なサブシステムに許可を与える。更に別の実施形態では、コントローラは、システムに関する電力状態情報（例えば、電力集中動作を実行するサブシステムの合計数）を特定のサブシステムに与えて、どんな形式の動作を実行するのが適当であるかをその特定のサブシステムに指示する。
【０００９】
本発明の前記及び他の態様及び効果は、全体にわたり同じ部分が同じ参照文字で示された添付図面を参照した以下の詳細な説明を考慮することでより明らかとなろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の種々の実施形態により構成されたコントローラ及び複数のサブシステムを備えた例示的システムの概略図である。
【図２Ａ】本発明の種々の実施形態により構成されたホストプロセッサ及びマネージド不揮発性メモリパッケージを備えた例示的な不揮発性メモリシステムの概略図である。
【図２Ｂ】本発明の種々の実施形態により構成されたホストプロセッサ及びロー不揮発性メモリパッケージを備えた例示的な不揮発性メモリシステムの概略図である。
【図２Ｃ】本発明の種々の実施形態によりメモリサブシステムのピーク電流消費プロフィールを示すグラフである。
【図３】本発明の種々の実施形態により時分割多重化スキームを使用して異なるサブシステムの電力集中動作を食い違わせるための例示的プロセスのフローチャートである。
【図４】本発明の種々の実施形態によりサブシステムによる要求を使用して異なるサブシステムの電力集中動作を管理するための例示的プロセスのフローチャートである。
【図５】本発明の種々の実施形態によりシステムの電力状態情報をサブシステムに与えることにより異なるサブシステムの電力集中動作を管理するための例示的プロセスのフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、ピーク電力問題で悩まれる例示的システム１００の概略図である。特に、システム１００は、コントローラ１１０及び複数のサブシステム１２０を備え、サブシステム１２０の合成電力消費は、コントローラ１１０により適当に管理されないときに望ましからぬピークとなる。ある実施形態では、各サブシステム１２０は、実質的に同じ特徴及び機能を有する。例えば、サブシステム１２０は、実質的に同じ製造プロセスを使用して製造されるか、又は実質的に同じ仕様（例えば、使用する材料、等に関して）を有する。
【００１２】
各サブシステム１２０は、ピークのある電流又は電力プロフィールを有する。特に、動作中、各サブシステム１２０は、電力の高い幾つかの動作、及び電力の低い幾つかの動作を実行する。従って、時間と共に、各サブシステム１２０の電流又は電力プロフィールが上昇及び下降し、サブシステムがその最も高い電力の動作を実行するときに最も高いピークが生じる。複数のサブシステムが高電力動作を同時に実行する場合には、システム１００の全電力又は電流プロフィールが、システム１００の電力スレッシュホールド又は仕様より高いピーク電力レベルに達することがある。ここで使用する「電力集中動作」とは、システムの全電力レベルに実質的な影響を及ぼすサブシステム動作である。例えば、「電力集中動作」とは、少なくとも所定量の電流を要求するか又は消費することが予想される動作を指す。
【００１３】
コントローラ１１０は、全体的なシステムピークが生じない（又は生じるおそれが低くなる）ように、サブシステム１２０により実行される動作を制御し、管理し、及び／又は同期させるように構成される。特に、以下に詳細に述べるように、コントローラ１１０は、多くとも所定数のサブシステム１２０が電力集中動作を同時に実行するようにサブシステム１２０を制御するか、又はサブシステムが所与の時間に使用するピーク電力を決定する上でサブシステムを支援する。コントローラ１１０は、サブシステム１２０を管理するためにハードウェアベースのコンポーネント（例えば、特定用途向け集積回路、フィールドプログラマブルアレイ、等）及びソフトウェアベースのコンポーネント（例えば、プロセッサ、マイクロプロセッサ、等）の適当な組み合わせを含むことができる。
【００１４】
システム１００は、３つのサブシステムを有するものとして示されているが、システム１００は、適当な数のサブシステム（例えば、２、４、５又はそれ以上のサブシステム）を含んでもよいことを理解されたい。
【００１５】
システム１００は、ピーク電力の問題で悩まされている適当な形式の電子システムである。例えば、システム１００は、並列コンピューティングシステム或いはメモリシステム（例えば、ハードドライブシステム、又はＮＡＮＤフラッシュメモリシステムのようなフラッシュメモリシステム、等）であるか又はそれを含む。
【００１６】
図２Ａ及び２Ｂは、図１の種々の実施形態の一例であるメモリシステムの概略図である。先ず、図２Ａを見ると、メモリシステム２００は、ホストプロセッサ２１０と、少なくとも１つの不揮発性メモリ（ＮＶＭ）パッケージ２２０とを備えている。ホストプロセッサ２１０、及び任意であるが、ＮＶＭパッケージ２２０は、適当なホスト装置又はシステム、例えば、ポータブルメディアプレーヤ（例えば、カリフォルニア州クパチーノのアップル社から入手できるｉＰｏｄTM）、セルラー電話（例えば、アップル社から入手できるｉＰｈｏｎｅTM）、ポケットサイズパーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、又はラップトップコンピュータにおいて具現化される。
【００１７】
ホストプロセッサ２１０は、現在入手できる又は将来開発される１つ以上のプロセッサ又はマイクロプロセッサを備えている。それとは別に又はそれに加えて、ホストプロセッサ２１０は、メモリシステム２００の種々の動作を制御できる他のコンポーネント又は回路（例えば、特定用途向け集積回路（ＡＳＩＣ））を備え又はそれに関連して動作する。プロセッサベースの具現化において、ホストプロセッサ２１０は、ホストにおいて具現化されるメモリ（図示せず）へロードされるファームウェア及びソフトウェアプログラムを実行することができる。メモリは、適当な形式の揮発性メモリ（例えば、キャッシュメモリ又はランダムアクセスメモリ（ＲＡＭ）、例えば、倍データレート（ＤＤＲ）ＲＡＭ又はスタティックＲＡＭ（ＳＲＡＭ））を含む。ホストプロセッサ２１０は、ＮＶＭドライバ２１２を実行し、これは、ホストプロセッサ２１０が不揮発性メモリパッケージ２２０のための種々のメモリ管理及びアクセス機能を実行できるようにするベンダー特有及び／又は技術特有のインストラクションを与えるものである。
【００１８】
ＮＶＭパッケージ２２０は、ボールグリッドアレイ（ＢＧＡ）パッケージ又は他の適当な形式の集積回路（ＩＣ）パッケージである。ＮＶＭパッケージ２２０は、マネージドＮＶＭパッケージである。特に、ＮＶＭパッケージ２２０は、適当な数のＮＶＭダイ２２４に結合されたＮＶＭコントローラ２２２を備えている。ＮＶＭコントローラ２２２は、プロセッサ、マイクロプロセッサ、又はハードウェアベースのコンポーネント（例えば、ＡＳＩＣ）の適当な組み合わせを含み、そしてホストプロセッサ２１０と同じコンポーネント又はそれとは異なるコンポーネントを含んでもよい。ＮＶＭコントローラ２２２は、ＮＶＭダイ２２４の物理的メモリ位置を管理及び／又はアクセスする責任をＮＶＭドライバ２１２と分担する。或いは又、ＮＶＭコントローラ２２２は、ＮＶＭダイ２２４に対する管理及びアクセス機能の実質的に全部を実行してもよい。従って、「マネージドＮＶＭ」とは、不揮発性メモリ（例えば、ＮＶＭダイ２２４）に対して少なくとも１つのメモリ管理機能を実行するように構成されたコントローラ（例えば、ＮＶＭコントローラ２２２）を含むメモリ装置又はパッケージを指す。ＮＶＭコントローラ２２２によって実行できる管理機能の１つは、メモリシステム２００のピーク電力消費を制御することである。このように、ＮＶＭコントローラ２２２は、ホストプロセッサ２１０の動作又は性能に影響せずにＮＶＭパッケージ２１０（及び特にＮＶＭダイ２２４）の電力消費を管理する。
【００１９】
ＮＶＭダイ２２４に対してＮＶＭコントローラ２２２及び／又はホストプロセッサ２１０により実行される他のメモリ管理及びアクセス機能は、読み取り、書き込み又は消去インストラクションを発行し、そしてウェアレベリング、不良ブロックの管理、不要データ収集、論理的・対・物理的アドレスマッピング、ＳＬＣ又はＭＬＣプログラミング判断、エラー修正又は検出の適用、及びプログラム動作を設定するためのデータキューイングを実行することを含む。
【００２０】
ＮＶＭダイ２２４は、メモリシステム２００がパワーダウンされたときに保持する必要のある情報を記憶するのに使用される。状況に応じてここに使用する「不揮発性メモリ」とは、データを記憶できるＮＶＭダイを指すか、又はＮＶＭダイを含むＮＶＭパッケージを指す。ＮＶＭダイ２２４は、フローティングゲート又はチャージトラップ技術に基づくＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、消去可能なプログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、強誘電性ＲＡＭ（ＦＲＡＭ（登録商標））、磁気抵抗性ＲＡＭ（ＭＲＡＭ）、相変化メモリ（ＰＣＭ）、他の既知の又は将来の形式の不揮発性メモリ技術、或いはその組合せを含む。
【００２１】
図２Ｂは、図１のシステム１００の別の実施形態の一例であるメモリシステム２５０の概略図である。このメモリシステム２５０は、図２Ａのメモリシステム２００に関連して上述した特徴及び機能のいずれを有してもよい。特に、図２Ｂに示すいずれのコンポーネントも、図２Ａの同じ名前のコンポーネントの特徴及び機能のいずれを有してもよく、そしてその逆のことも言える。
【００２２】
メモリシステム２５０は、ホストプロセッサ２６０と、不揮発性メモリパッケージ２７０とを備えている。図２Ａのメモリシステム２００とは異なり、ＮＶＭパッケージ２７０は、埋め込まれたＮＶＭコントローラを含まず、それ故、ＮＶＭダイ２７４は、ホストプロセッサ２６０により（例えば、ＮＶＭドライバ２６２を経て）全体的に管理される。従って、不揮発性メモリパッケージ２７０は、「ロー(raw)ＮＶＭ」と称される。「ローＮＶＭ」とは、ＮＶＭパッケージの外部で具現化されるホストコントローラ又はプロセッサ（例えば、ホストプロセッサ２６０）により全体的に管理されるメモリ装置又はパッケージを指す。そのようなローＮＶＭ具現化においてホストプロセッサ２６０により実行される管理機能の１つは、メモリシステム２５０のピーク電力消費を制御することである。又、ホストプロセッサ２６０は、図２Ａのホストプロセッサ２１０及びＮＶＭコントローラ２２２に関連して上述した他のメモリ管理及びアクセス機能のいずれを実行することもできる。
【００２３】
図２Ａ及び２Ｂの両方を参照すれば、ＮＶＭコントローラ２２２（図２Ａ）及びホストプロセッサ２７０（例えば、ＮＶＭドライバ２６２を経て）（図２Ｂ）は、各々、図１を参照して上述したコントローラ１１０の特徴及び機能を実施し、そしてＮＶＭダイ２２４及び２７４は、図１を参照して上述したサブシステム１２０の特徴及び機能を実施する。特に、ＮＶＭダイ２２４及び２７４は、各々、ダイがその最も電力集中の動作を実行するときに最高のピークが生じるピーク電流プロフィールを有する。フラッシュメモリの実施形態では、そのような電力集中動作の一例は、メモリセルに記憶されたデータを読み取るときに使用される感知動作（例えば、電流感知動作）である。そのような感知動作は、例えば、プログラミングの後にデータが適切に記憶されたことを検証するときにホストプロセッサ及び／又はＮＶＭコントローラからの読み取り要求に応答して実行される。
【００２４】
図２Ｃは、電流消費プロフィール２９０を示す。この電流消費プロフィール２９０は、検証形式の感知動作中のＮＶＭダイ（例えば、ＮＶＭダイ２２４又は２７４の１つ）の電流消費の一例を与えるものである。ピーク２９２及び２９４を含む幾つかのピークがある状態で、電流消費プロフィール２９０は、検証形式の感知動作がどのようにピークを生じるか示している。これらの検証形式の感知動作は、複数のＮＶＭダイにわたって同時に生じるおそれがあるので（即ち、複数のダイにわたって並列書き込みを使用するために）、特に問題になり得る。従って、ＮＶＭコントローラ２２２（図２）又はホストプロセッサ２６０により管理されない場合には、異なるＮＶＭダイのピークが重畳して、全電流和が受け容れられないほど高くなる。この状況は、消去及びプログラム動作のような他の形式の電力集中動作でも生じ得る。
【００２５】
従って、上述したように、ＮＶＭコントローラ２２２（図２Ａ）又はホストプロセッサ２６０（図２Ｂ）により実行されるメモリ管理及びアクセス機能は、更に、例えば、電力集中動作を同時に実行するＮＶＭダイ２２４又は２７４の数を制限するか（例えば、電流ピークが同時に生じ難いように電力集中動作を食い違わせるか）、又は所与の時間にＮＶＭダイが消費するピーク電力を決定する上でＮＶＭダイを支援することにより、各システムの全ピーク電力を管理するようにＮＶＭダイ２２４又は２７４を制御することも含む。このように、ＮＶＭコントローラ２２２（図２Ａ）又はホストプロセッサ２６０（図２Ｂ）は、各メモリシステムの全ピーク電力消費が高くなり過ぎるのを防止する。
【００２６】
図２Ａ及び２Ｂを参照しながら、図１へ戻ると、コントローラ１１０（例えば、ＮＶＭコントローラ２２２（図２Ａ）又はホストプロセッサ２６０（図２Ｂ））は、適当な解決策を使用して、システム１００の全ピーク電力消費を管理することができる。ある実施形態では、時分割多重化スキームが使用され、コントローラ１１０は、電力集中動作を実行するためのタイムスロットを各サブシステムに指定する。これは、サブシステム１２０がそれらの電力集中動作を食い違わせられるようにする。この解決策の一例を、図３を参照して以下に説明する。
【００２７】
他の実施形態では、コントローラ１１０は、電力集中動作を実行するために所与の時間に多くとも所定数のサブシステムに許可を与えるように構成される。例えば、サブシステム１２０は、各々、電力集中動作を実行する前にコントローラから許可を要求し、そしてコントローラ１１０は、許可が与えられるサブシステム１２０の数を管理する。コントローラ１１０がサブシステムに許可を与えるかどうかは、例えば、既に許可が与えられたサブシステムの予想合計電流消費量に依存する。この解決策の一例を、図４を参照して以下に説明する。
【００２８】
更に別の実施形態では、コントローラ１１０は、システムに関する電力状態情報を特定のサブシステムに与えて、どんな形式の動作を行うのが適当であるかをその特定のサブシステムに指示する。例えば、電力状態情報は、電力集中動作を現在実行しているサブシステム１１０の合計数を指示してもよいし、又は電力状態情報は、電力集中動作を実行しているサブシステム１１０によって使用される予想電流和を指示してもよい。この解決策の一例を、図５を参照して以下に説明する。これら３つの解決策は、単なる例示に過ぎず、コントローラ１１０によって他の解決策も実施できることを理解されたい。
【００２９】
図３から５は、本発明の種々の実施形態により構成されたシステムにより実行される例示的プロセスのフローチャートである。例えば、図１、２Ａ及び２Ｂを参照して上述したシステム（例えば、フラッシュメモリシステム、並列コンピューティングシステム、等）は、いずれも、１つ以上のこれらプロセスのステップを実行するように構成される。
【００３０】
先ず、図３は、時分割多重化スキームを使用して複数のサブシステム間で電力集中動作をタイミング合わせするための例示的プロセス３００のフローチャートである。プロセス３００は、ステップ３０２で開始される。次いで、ステップ３０４において、各サブシステムのクロックが同期される。クロックは、各サブシステムに同じクロック（即ち、同じソースクロックから導出されたクロック信号）を供給するか、又はコントローラを使用して各サブシステムの内部クロックを同期させるといった適当な解決策を使用して同期させることができる。
【００３１】
次いで、ステップ３０６において、時間が複数のタイムスロットに分割される。タイムスロットの数は、サブシステムの数に基づき、例えば、サブシステム当たり１つのタイムスロットを与えるか、２つのサブシステム当たり１つのタイムスロットを与えるか、等々である。タイムスロットは、適当な正の整数をＮとすれば、長さがＮ個のクロックサイクルといった適当な長さのものである。例えば、４つのサブシステムがある場合には、ステップ３０６は、各Ｎ個のクロックサイクルの４つのタイムスロットを生成してそれらの間で回転することを伴う。
【００３２】
ステップ３０８へと続き、各サブシステムには、タイムスロットの１つが指定される。特定のサブシステムに指定されたタイムスロットの間に、サブシステムは、フラッシュメモリシステムにおけるプログラム動作のような電力集中動作を実行する。特定のサブシステムに指定されないタイムスロットの間に、サブシステムは、電力集中動作の実行を延期し、そしてその指定のタイムスロットが始まるまで停止し、及び／又はその間に非電力集中動作を実行する。ある実施形態では、各サブシステムにタイムスロットの異なる１つが指定され、所与の時間に１つのサブシステムのみが電力集中動作を実行するようにする。他の実施形態では、２つ以上（であるが全部ではない）のサブシステムに同じタイムスロットが指定される。この時分割多重化スキームを使用することにより、このスキームは、電力集中動作を食い違わせることを保証するので、ピーク電力を制限することができる。
【００３３】
プロセス３００は、ステップ３１０へ続き、終了となる。他の実施形態において、プロセス３００は、同期を保つためにサブシステムのクロックを周期的に調整する必要のある実施形態では適当な長さの時間の後にステップ３０２へ戻る。
【００３４】
図４は、コントローラへの要求を使用して複数のサブシステム間で電力集中動作を同期させるための例示的プロセスのフローチャートである。このプロセス４００は、ステップ４０２で開始する。次いで、ステップ４０４において、システム内のサブシステムの１つ（図４では、第１サブシステムと称される）が電力集中動作を開始することを決定する。例えば、フラッシュメモリシステムでは、フラッシュダイの１つに対する次のキュー動作は、（例えば、読み取り検証動作の中の）データを読み取るための感知動作のような電力集中動作である。
【００３５】
ステップ４０６において、サブシステムは、電力集中動作を開始するためにシステムのコントローラ（例えば、不揮発性メモリシステムのためのＮＶＭドライバ又はコントローラ）へ要求を送る。例えば、サブシステムは、適当な通信プロトコル又はインターフェイスを経て適当なコマンドを発行するか、又は他の適当な解決策を使用することにより、この目的専用の物理的な通信リンクを経て電力集中動作を実行するためのコントローラからの許可を要求する。
【００３６】
次いで、コントローラは、ステップ４０８において、１つ以上の他のサブシステムが電力集中動作を実行するかどうか決定する。ある実施形態では、コントローラは、他のサブシステムの所定数（例えば、１、２、等）より多くの電力集中動作を実行するための許可をコントローラが既に与えたかどうかそしてそれらの動作がまだ完了していないことを検証することによりこの判断を行う。ステップ４１０において、コントローラは、サブシステムが電力集中動作を実行することを許すべきかどうか決定する。ある実施形態では、コントローラは、所定数の他のシステムが電力集中動作を現在実行している場合には動作を許さず、さもなければ、動作を許す。
【００３７】
ある実施形態では、ステップ４０８における決定は、更に、電力集中動作を実行する１つ以上の他のサブシステムの予想合成ピーク電流を決定することを含む。このようにすれば、ステップ４１０において、電力集中動作を実行する他のサブシステムの数に基づいて動作の実行を許す（又は許さない）のではなく、コントローラは、予想電流使用量に基づきこの決定を行うことができる。コントローラは、例えば、電力をあまり消費しない電力集中動作を実行するサブシステムであれば多数あっても動作を許すと決定するが、電力をより多く消費する電力集中動作を実行するサブシステムは僅かであっても（例えば、１つの他のサブシステム）動作を許さないと決定する。
【００３８】
ステップ４１０において、コントローラが動作を許さないと決定すると、プロセス４００は、ステップ４１２へ進み、電力集中動作の実行を待機させるためにコントローラからサブシステムへ信号が送られる。この信号は、専用の物理的ライン上の信号、適当なプロトコル又はインターフェイスを使用する適当なコマンド、等の適当な形態で与えられる。このように、サブシステムは、動作の実行を延期するよう命令され、そして更なる動作を停止するか、又はその間に他の非電力集中動作を実行する。これは、あまりに多くのサブシステムが電力集中動作を同時に実行しないようにするか、或いはシステム全体のピーク電流がある点を越えて増加しないように保証する。次いで、プロセス４００は、ステップ４１０へ戻り、電力集中動作がコントローラにより許されるかどうか（例えば、１つ以上のサブシステムが電力集中動作の実行を終了したかどうか）再び決定する。
【００３９】
ステップ４１０において、コントローラが電力集中動作を許すべきと決定すると、プロセス４００は、ステップ４１４へ進む。ステップ４１４において、電力集中動作を実行するための許可がコントローラからサブシステムへ与えられる。この許可は、専用の物理的ライン上の信号、適当なプロトコル又はインターフェイスを使用する適当なコマンドとして、又は他の適当な解決策を使用して、与えられる。次いで、ステップ４１６において、サブシステムにより電力集中動作が実行される。サブシステムが電力集中動作の実行を終了すると、サブシステムは、ステップ４１８において、電力集中動作の完了をコントローラに指示する。この指示は、コントローラへの表現指示でもよく、又はコントローラは、サブシステムが動作の結果（例えば、フラッシュメモリシステムの場合は、読み取り動作から生じるデータ）を与えるときに、電力集中動作の完了を推測することができる。このように、コントローラは、電力集中動作を実行するために別のサブシステムへ許可を与えることができる。
【００４０】
次いで、プロセス４００は、ステップ４２０で終了となる。
【００４１】
図５は、システムの電力状態情報をサブシステムに与えることにより複数のサブシステム（例えば、フラッシュダイ）間で電力集中動作を管理するための例示的プロセス５００のフローチャートである。このプロセス５００は、ステップ５０２で開始する。ステップ５０４において、例えば、サブシステムを制御できるコントローラにより、電力集中動作を実行するサブシステムの数を決定する。例えば、上述した技術のいずれかを使用して、サブシステムは、各々、そのサブシステムが電力集中動作を開始又は終了するときにコントローラに信号するように構成される。このように、コントローラは、所与の時間に電力集中動作を実行するサブシステムの数を追跡することができる。
【００４２】
次いで、ステップ５０６において、電力集中動作を実行するサブシステムの数の指示をコントローラから１つ以上のサブシステムへ送る。この指示は、システム内の全てのサブシステムへ、又は電力集中動作を実行する全てのサブシステムへ送られる。この指示は、適当な時間に送られるか、又は適当な刺激に応答して、例えば、サブシステムが電力集中動作の実行を開始しようとしているという指示をサブシステムから受け取るのに応答して、送られる。このようにして、サブシステムが電力集中動作を設定すると、サブシステムには、電力集中動作を実行しているサブシステムが他にもどれほどあるか通知される。
【００４３】
プロセス５００は、ステップ５０６へ続く。ステップ５０６において、電力集中動作を実行するサブシステムの数に基づきサブシステムで動作が実行される。多くの場合、動作を実行するときには、サブシステムは、速度と電力をトレードオフする（即ち、サブシステムは、電力消費が増加することを犠牲にして高い速度で動作を実行するか、又はサブシステムは、動作の完了に長時間を要することを犠牲にして低い電力で動作を実行する）。例えば、サブシステムは、計算を直列化するのではなく並列化することにより、又は高いレートで電荷ポンプをチャージすることにより、電力を犠牲にして速度を高めることができる。従って、ステップ５０６において、サブシステムは、それが電力集中動作を実行する唯一のサブシステムであるという指示を受け取ると、より高い／最も高い速度、より高い／最も高い電力のスキームを使用することができる。電力集中動作を実行するサブシステムの数が多いほど、特定のサブシステムが使用すると決定する電力が少なくなる。サブシステムが低速低電力スキームを使用すると決定しても、システムの全体的な速度が改善される。というのは、各サブシステムが高い電力モードで動作するときに可能であるよりも多くのサブシステムを同時に動作できるからである。
【００４４】
プロセス５００は、次いで、ステップ５１０で終了となる。
【００４５】
図３−５のプロセス３００、４００、及び５００は、単なる例示に過ぎないことを理解されたい。本発明の範囲から逸脱せずに、これらステップのいずれかを除去し、変更し、又は結合してもよく、そして付加的なステップを追加してもよい。
【００４６】
本発明のここに述べる実施形態は、例示のために表現されたもので、これに限定されるものではない。
【符号の説明】
【００４７】
１００：システム
１１０：コントローラ
１２０：サブシステム
２００：メモリシステム
２１０：ホストプロセッサ
２１２：ＮＶＭドライバ
２２０：ＮＶＭメモリパッケージ
２２２：ＮＶＭコントローラ
２２４：ＮＶＭ
２５０：メモリシステム
２６０：ホストプロセッサ
２６２：ＮＶＭドライバ
２７０：ＮＶＭパッケージ
２７４：ＮＶＭ
【図１】
2013516716.tif 000003
【図２Ａ】
2013516716.tif 000004
【図２Ｂ】
2013516716.tif 000005
【図２Ｃ】
2013516716.tif 000006
【図３】
2013516716.tif 000007
【図４】
2013516716.tif 000008
【図５】
2013516716.tif 000009
【国際調査報告】
2013516716.tif 000010
2013516716.tif 000011
2013516716.tif 000012