(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
本発明の例示的な実施形態および様々な態様について、以下にさらに詳細に記載する。本願明細書は、特許請求の範囲を限定することを意図したものではなく、例示的な実施形態を提供するためのものである。したがって、以下の記述は、複数のストレージデバイスを管理するための様々なストレージシステムを含む、例示的な実施形態を提示する。
本願明細書における開示は、不揮発性ストレージデバイスに関するものであるが、揮発性ストレージデバイスに同様に関連してもよく、または揮発性ストレージデバイスとともに使用されてもよい。一例として、不揮発性ストレージデバイスは、フラッシュまたはEEPROMタイプのものであってもよい。
【0014】
本願明細書において使用されるストレージデバイスは、ホストと直接接続され直接通信するように動作する、当業者に既知の任意のストレージデバイスであってもよい。このようなストレージデバイスは、セキュアなデジタルメモリカード形式およびマルチメディアカード形式を含むメモリカード形式に適合する構成を有してもよい。ストレージデバイスは、揮発性または不揮発性のいずれかでバイナリ形式でデータを格納する能力を備えたメモリセルアレイ(フラッシュなど)を含んでもよい。フラッシュタイプのメモリセルを有するということは、任意の適切なタイプのメモリセルを使用する他の実施形態もさらに適用可能であるため、限定的な意味ではないことに留意するべきである。
【0015】
デジタルデータの格納に一般に使用されるメモリカードは、様々な電子デバイスとともに使用される。メモリカードには、「エンベデッド」カードと呼ばれるものや、「リムーバブル」カードと呼ばれるメモリカードがあり、リムーバルカードとは、言い換えれば、エンドユーザがある電子デバイスから別のものへカードを簡単に移動させて、カードに格納されたデジタルデータをポータブルデータにすることができるということである。メモリカードのフォームファクタは、比較的小型であり、デジタルカメラ、メディアプレーヤ/レコーダ(例えば、MP3プレーヤ)、ハンドヘルドまたはノートブックコンピュータ、携帯情報端末(PDA)、携帯電話、ネットワークカード、ネットワーク機器、セットトップボックス、およびハンドヘルドまたは他のデバイスなどのデータストレージを必要とする電子デバイスに対して、デジタルデータを格納するために使用され得る。
【0016】
このため、本願明細書における開示は、ストレージデバイスが、ストレージシステムへの接続およびストレージシステムからの取り外し用に構成された取り外し可能なストレージデバイスであろうが、ストレージシステム内に組み込まれた専用ストレージデバイスであろうが、任意のマスストレージデバイスを採用し得る。
以上のことから、本願明細書において記述するストレージデバイスは、音声、映像、または画像ファイルなどのマルチメディアコンテンツを格納するために使用される任意のメモリタイプ(例えば、フラッシュメモリ)および/またはメモリカード形式(例えば、セキュアデジタル(「SD」)メモリカード形式)に適合する構成を有するものであってもよい。ストレージデバイスはまた、マルチメディアカード(「MMC」)形式、コンパクトフラッシュ(「CF」)形式、フラッシュPC(例えば、ATAフラッシュ)形式、スマートメディア形式、USBフラッシュドライブ、メモリスティック形式、または任意の他の業界標準形式に適合する構成を有するものであってもよい。
【0017】
ストレージデバイスは、電源が切られたときでも記憶または格納状態を維持する不揮発性メモリを有してもよい。ストレージデバイスはまた、例えば、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、EPROM、MRAM、FRAM、強誘電性、磁気、または他のメモリなどの消去可能なプログラマブルメモリ技術を採用してもよい。デバイスの構成は、メモリタイプに依存するものではなく、フラッシュメモリまたは別のタイプのメモリであれば、任意のタイプのメモリで実装されてもよいことに留意するべきである。デバイスはまた、メモリチップおよび/または三次元(3D)メモリチップ技術を用いて実装されてもよい。
本願明細書において記述するホストは、パーソナルコンピュータ、ノートブックコンピュータ、PDA(携帯情報端末)やモバイルハンドセットなどのハンドヘルドコンピューティングデバイス、携帯電話、カメラ、音声再生デバイス、または取り外し可能なデータストレージとともに機能する任意の他の電子デバイスであってもよい。ホストは、いくつか例を挙げると、アドレス帳、一日単位の電子手帳、電子ノートパッドなどの様々な個人の情報管理アプリケーションを有してもよい。
【0018】
図1は、1つの例示的な実施形態によるストレージシステム10のブロック図である。ストレージシステム10は、典型的に、状態マシン12に作動的に接続された「SDa1」、「SDa2」、「SDa3」・・・「SDaN」として示された複数のストレージデバイスを含む。
典型的に、ストレージシステム10のストレージデバイスSDa1〜SDaNは、類似したものまたは同一のもの、すなわち同様に構成されたものであり、したがって、同様の方法でデータを格納する。しかし、ストレージデバイスは、異なるように構成されてもよい。
【0019】
状態マシン12は、例えば、ストレージデバイスSDa1〜SDaNの動作を制御するコントローラまたはCPUであってもよい。状態マシン12は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせで実装されてもよい。
状態マシン12は、ストレージデバイスSDa1〜SDaNの特定の1つの動作(すなわち、ストレージ動作)を、ストレージデバイスSDa1〜SDaNの少なくとも別のものの電流消費に関する情報(本願明細書において「電流消費情報」と呼ばれる情報)に基づいて制御する。例えば、ストレージシステム10は、少なくともストレージデバイスSDa2に関連するか、関係するか、または関する電流消費情報に基づいて、ストレージデバイスSDa1の動作を制御してもよい。例えば、ストレージシステム10は、SDa2、SDa3、およびSDaNに関連するか、関係するか、または関する電流消費情報に基づいて、SDa1の動作を制御してもよい。
【0020】
電流消費情報は、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNから状態マシン12へ伝達されてもよく、またはこれらのストレージデバイスの代わりに状態マシン12に供給されてもよい。さらにまたは他の形態では、電流消費情報を、ストレージデバイスの製造業者から状態マシン12が入手するかまたは別のデバイスから入手し、情報16のデータベース上に格納する(
図5の表100を参照されたい)。情報16のデータベースは、状態マシン12に格納されてもよく、または状態マシン12によって入手可能であってもよい。
【0021】
すでに前述したように、状態マシン12は、異なる時間に低電流消費レベルおよび高電流消費レベルを要求する異なるタイプのストレージデバイスに接続されてもよい。したがって、自己学習機構14が、情報16のデータベースを開発するように状態マシン12に教示したり状態マシン12を訓練したりすることで、状態マシン12によって各ストレージデバイスのさらなる制御が要求される電流消費レベルに関連する情報をデータベースが含むように、自己学習機構14が設けられる。このようなトラッキングは、電流消費情報に関連する情報の外部ユニットへの転送などを含む種々の目的でさらに使用され得る。自己学習機構14は、
図1に示すような状態マシン12に実装されるか、組み込まれるか、または内蔵されてもよく、あるいは
図2に示すように、状態マシン12の外部に動作可能に接続されてもよい。
【0022】
以下に記載するように、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの電流消費に対する基本的な制御が実行される。状態マシン12は、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの各々と継続的に別々に通信を行う。ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの各々は、例えば、ストレージデバイスに任意に割り当てられた識別子(例えば、識別番号)を使用することで、状態マシン12に対して固有に識別される。
状態マシン12によるストレージデバイスSDa1、SDa2、SDa3・・・SDaNの電流消費の管理を行いやすいようにするために、電流消費情報は、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの各々と状態マシン12との間で(継続的、時々、または断続的のいずれかで)交換される。
【0023】
状態マシン12は、ストレージデバイスの間を同期させるように動作し得る。言い換えれば、状態マシン12は、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの各々が動作するタイミングを制御することで、全ストレージデバイスSDa1、SDa2、SDa3・・・SDaNが任意の所与の時間にまとめて消費する電流の総量が、最大稼働値を超えないようにし、この最大稼働値を超えてしまうと、ストレージシステム10の動作の信頼性を確保したり、または保障できなくなったりする。
【0024】
ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの各々と通信状態にある間、状態マシン12は、1つのストレージデバイスとの間で、このようなストレージデバイスの少なくとも別のものに関する電流消費情報に基づいて、データのプログラミング(すなわち、書き込み)、消去、および読み出しを制御する。状態マシン12は、任意の適切な通信プロトコルを使用して、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNと通信状態にあってもよい。例えば、
図1に示すように、通信リンクC1、C2、C3・・・CNが、状態マシン12からストレージデバイスSDa1、SDa2、SDa3・・・SDaNにストレージコマンドおよび同期信号を転送し、反対方向、すなわちストレージデバイスSDa1、SDa2、SDa3・・・SDaNから状態マシン12に電流消費情報を転送するためにそれぞれ使用されてもよい。
ストレージコマンドは、例えば、データ読み出しコマンド、データ書き込み(プログラミング)コマンド、およびデータ消去コマンドであってもよい。
【0025】
本願明細書における開示において、同期信号とは、ある電流レベルまで(例えば、ストレージシステムが利用可能な最大電流まで)の消費が許容されていることをストレージデバイス(例えば、SDa1として示されるストレージデバイス)に伝えるメッセージである。同期信号は、
図1に示すように、状態マシンによって生成され、状態マシンから同期信号で動作するストレージデバイスに転送されてもよい。他の形態においてまたはさらに、ストレージシステムは、
図2に示すように、同期信号を生成し、ストレージデバイス間で同期信号を交換してもよい。任意の時点で、ストレージデバイスに同期信号が転送されてもよい。
【0026】
本願明細書における開示において、「情報」および「電流消費情報」は、時間の経過とともに(すなわち、状態マシンやストレージデバイスによって)動的に更新される任意の実時間情報、および/または異なる(例えば、高、中、および低)電流消費レベルの予測タイミングを表す固定された所定のスケジューリングを示す情報を含んでもよい。また、ストレージデバイスから送出された電流消費情報は、状態マシン12に対してストレージデバイスを特定する固有ストレージデバイス識別子を含んでもよい。各ストレージデバイスの電流消費情報は、ストレージデバイスによって状態マシンに供給されてもよく、かつ/または製造中に状態マシン12に組み込まれてもよい。
【0027】
ストレージデバイス10は、各ストレージデバイスの初期動作の前に、ストレージデバイスが、対応する同期信号の受信に応答して高電流消費レベルで動作するように構成され(例えば、製造時に)、または状態マシン12によって命令される。言い換えれば、ストレージシステム10のストレージデバイスは高電流消費レベルで再開するように許容されず、かつ/またはストレージデバイスが適切なコマンドで再開することを許容されないかぎり、ある電流消費しきい値を超えた動作は許容されない。状態マシン12は同期信号を1つのストレージデバイス(例えば、SDa1)に送信し、そのストレージデバイスが高電流消費レベルで動作する一方で、ストレージデバイスの残り(例えば、SDa2、SDa3・・・SDaN)は低電流消費レベルで動作し得る。
【0028】
本願明細書における開示において、「ストレージデバイスが高電流消費レベルで動作でき、残りのストレージデバイスが低電流消費レベルで動作できる」ということは、言い換えれば、ストレージシステムにより、この1つのストレージデバイスが、(典型的に、ストレージデバイスの構成で規定されている)高電流消費レベルおよび/または最大許容電流消費レベルを消費できる一方で、ストレージシステムの他のストレージデバイスが、(典型的に、ストレージデバイスの構成で規定されている)低電流消費レベルおよび/または最少電流消費レベルを一時的に消費できるということである。他の形態においてまたはさらに、「1つのストレージデバイスが第1の電流消費レベルで動作できる一方で、残りのストレージデバイスが第2の電流消費レベルで動作できる」ということは、言い換えれば、この1つのストレージデバイスに信号が送信されるため、この1つのストレージデバイスの電流消費が可能になる一方で、他のストレージデバイスの電流消費が一時的に不能になるということであり得る。
ストレージデバイスは、通例、製造中に、高電流消費レベルおよび低電流消費レベルで動作するように設計されている。典型的に、ストレージデバイスは、任意のストレージ動作を実行するときは比較的高い電流を消費し、他の場合、例えば、ストレージデバイスがアイドル状態にあるときは低電流を消費する。
【0029】
例示的な実施形態において、状態マシン12は、ストレージコマンドおよび同期信号を、通信リンクC1、C2、C3・・・CNを介して、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNにそれぞれ転送する。
例えば、状態マシン12は、以下の方法でプログラムコマンドを3つのストレージデバイスに同時に発行するようにプログラムされてもよい。すなわち、プログラミング動作の50マイクロ秒(μsec)の第1のスロットの間、ストレージデバイスSDa1に比較的高レベルの電流を消費させ、次に、(SDa1が低電流消費レベルで動作している間に)プログラミング動作の第1の次のスロットの50マイクロ秒の間、ストレージデバイスSDa2に比較的高レベルの電流を消費させ、その後、(SDa2が低電流消費レベルで動作している間に)プログラミング動作の第2の次のスロットの50マイクロ秒時間の間、ストレージデバイスSDa3に比較的高レベルの電流を消費させる。
【0030】
別の実施例において、状態マシン12により、特定のストレージデバイスは、別のストレージデバイスから受信されるReady信号に応答して高電流消費を消費できる。本願明細書における開示において、「Ready」信号は、該当するストレージデバイスが、高電流消費レベルで動作し終えたことを状態マシン12に通知するために、ストレージデバイスによって送出された信号である。実時間表示であるReady信号は、1つのストレージデバイスから別のものへ直接的または間接的のいずれかで(例えば、状態マシン12を介して)送出され送信されてもよい。Ready信号は、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNから状態マシン12へ、例えば、通信リンクC1、C2、C3・・・CNを介して転送されてもよい。
【0031】
説明のため、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの各々が、状態マシン12から対応する同期信号の電流条件を消費するように構成されると仮定する。言い換えれば、ストレージデバイスは、このストレージデバイスに電流の消費を許容する同期信号が受信されていなければ、電流を消費できないようにされ得る。
状態マシン12のスケジュールによれば、SDa1は、高電流消費レベルで動作するように許容されるストレージデバイスのみである。このようにして、状態マシン12は、例えば、通信チャネルC1を介して、ストレージデバイスSDa1が電流を消費できるようにする同期信号を、ストレージデバイスSDa1に転送する。このような同期信号は、ストレージデバイスSDa1に、そのストレージデバイスが利用可能な最も高い電流を消費できる間の時間スロットを指定してもよい。
【0032】
状態マシン12が、ストレージデバイスSDa1に、ストレージデバイスSDa1が高電流を消費するように許容される時間スロットを割り当てても、ストレージデバイスSDa1は、高電流要求動作を実行するために、割り当てられた時間スロットを必ずしも使用する必要はないことに留意するべきである。言い換えれば、割り当てられた時間スロットの間、ストレージデバイスSDa1が、高電流を要求する動作を実行する必要があれば、ストレージデバイスSDa1は、割り当てられた時間スロットの間にその動作を実行する。ストレージデバイスSDa1が高電流消費レベルで動作する必要がない場合、ストレージデバイスSDa1は、高電流要求動作の実行を完了したか、あるいはストレージデバイスSDa1が高電流を要求する動作を実行する予定がないことを示すReady信号を状態マシン12に送信する。引き続きまたはReady信号の受信に応答して、状態マシン12は、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの別のものに同期信号を送信し、このストレージデバイスが高電流消費レベルで動作できるようにする。
【0033】
高電流レベルで動作する許可を状態マシン12から受信するために、ストレージデバイスSDa1、SDa2、SDa3・・・SDaNの中の次のストレージデバイスは、例えば、ストレージデバイスの識別番号に応じて、任意にまたは順番通りに、状態マシン12によって選択されてもよい。あるいは、許可が出される次のストレージデバイスの選択は、許容されたストレージデバイスの順番がその時々に変化しながらランダムに行われ得る。別の実施例によれば、次のストレージデバイスの選択は、所定のスケジューリングに従って行われる。
【0034】
状態マシン12によって採用される所定のスケジューリングは、優先度を考慮した動きになり得る。このような場合、状態マシン12は、特定のストレージデバイスの電流消費を、特定のストレージデバイスに割り当てられた優先度に基づかせることもできる。
1つのストレージデバイスが別のストレージデバイスより優先度が高い状態が生じるのは、第1のストレージデバイスの高電流消費レベルでの動作が急を要する場合であり得る。このような状況下において、状態マシン12は、1つのストレージデバイスの電流消費期間を別のストレージデバイスより長くし(すなわち、延長させ)、かつ/またはより頻度を高くすることもある。
【0035】
ある時間に特定のストレージデバイスに転送されるタイプのコンテンツ、特定のストレージデバイス構成、特定のストレージデバイスの電流消費の変化に対する耐性度、およびストレージデバイスの活動レベルを含むが、これらに限定されるものではない基準の群から選択された1つ以上の基準に基づいて、ストレージデバイスSDa1〜SDaNは優先度が付けられてもよい。このような基準は、構成中に状態マシン12に設定されてもよく、かつ/または外部デバイスおよび/または任意の他の手段から状態マシン12に供給され、例えば、ユーザからの入力として受信されてもよい。
例えば、状態マシン12は、特定のストレージデバイスに高優先度レベルを割り当て、ある種の情報(例えば、起動情報、オペレーティングシステムに関する情報、あるいは任意の他の重要な情報や操作上または別の理由から重大なユーザまたはシステム情報)が該当するストレージデバイスに送信される場合に、その優先度を適用するように決定し得る。
【0036】
ストレージデバイスの優先度は、追加の1つ以上の基準または別の基準に基づいたものであってもよい。例えば、状態マシン12は、ストレージデバイスが、高電流または長時間の期間に高電流消費を必要としない動作の実行中でビジーの状態にある場合、ストレージデバイスに低優先度レベルを割り当ててもよい。別の例によれば、状態マシン12は、ストレージデバイスが状態マシンおよび/または他のストレージデバイスの任意のものとの間で固有のプロトコルをサポートしていない場合や、ストレージデバイスの状態が悪く、動作不良になった場合などに、このストレージデバイスに低優先度レベルを割り当てる。さらにまたは任意で、状態マシンは、ストレージデバイスがスリープモードまたはアイドルモードで動作中の場合、ストレージデバイスに低優先度レベルを割り当ててもよい。
【0037】
状態マシン12が特定のストレージデバイスの電流消費を許容する方法は、あるストレージシステムから別のものへ、さらには同じストレージシステム上である時点から別の時点へ変動し得ることに留意するべきである。また、状態マシン12には、ウェアレベリング管理、エラー訂正コード(「ECC」)管理、不良ブロック管理、およびデータ転送管理など、当業者に既知の追加のストレージデバイス管理能力が与えられてもよいことに留意するべきである。
【0038】
図2は、別の例示的な実施形態によるストレージシステム20のブロック図である。ストレージシステム20において、ストレージデバイスSDb1、SDb2、SDb3・・・SDbNが、「デイジーチェーン」として既知の配線方式で動作可能に相互接続されることを除いて、ストレージシステム20は、
図1に示すストレージシステム10のものと同一の配置を含む。簡潔に言えば、「デイジーチェーン」とは、例えば、デバイスAがデバイスBに配線され、デバイスBがデバイスCに配線され、その後も同様に続く通信のバス配線方式である。最後のデバイスは、通常、抵抗やターミネータに配線される。すべてのデバイスが同一の信号を受信してもよいし、あるいは単純なバスとは対照的に、チェーンにある各デバイスが各デバイスを通過する前に1つ以上の信号を修正してもよい。
ストレージデバイス間の動作接続は、物理的接続またはワイヤレス接続であってもよい。さらに、
図2に示すストレージデバイス間の接続は、直接通信チャネルを介したものである必要はない。したがって、ストレージデバイスが隣接するストレージデバイスに(物理的またはワイヤレスのいずれかで)接続されることも、ストレージデバイスが1つのストレージデバイスのみに接続されることも要求されない。
【0039】
2つの隣接するストレージデバイス間(例えば、ストレージデバイスSDb1およびSDb2の間)は、「Sync Out」、「Ready In」、「Sync In」、および「Ready Out」通信ポートによって接続される。ストレージデバイスSDb1〜SDbNの各々は、最初のストレージデバイス(すなわち、ストレージデバイスSDb1)および最後のストレージデバイス(すなわち、ストレージデバイスSDbN)以外、これらの4つのポートを有する。すなわち、SDb1がSync OutポートおよびReady Inポートしか有しておらず、SDbNがSync InポートおよびReady Outポートしか有していない。
図2のSDbNである最後のストレージデバイスに同期信号が到達するまで、同期信号は、1つのストレージデバイスのSync Outポートから、そのストレージデバイスが接続されている次のストレージデバイスのSync Inポート(例えば、SDb1からSDb2)へデイジーチェーンの下流に転送されるかまたはカスケードされる。Ready信号は、1つのストレージデバイスのReady Outポートから、そのストレージデバイスが接続されている次のストレージデバイスのReady Inポートへ、反対方向(すなわち、デイジーチェーンの上流)に転送されるかまたはカスケードされる。
【0040】
ストレージデバイスSDb1〜SDbNと状態マシン22との間の接続C1’、C2’、C3’・・・CN’は、
図1に示す接続C1、C2、C3・・・CNと同一または同様のものであってもよい。通信リンクC1’、C2’、C3’・・・CN’は、状態マシン22によって送出されるストレージコマンドおよびイネーブル信号をストレージデバイス(SDb1、SDb2、SDb3・・・SDbN)のそれぞれに転送するように使用される。通信リンクC1’、C2’、C3’・・・CN’はまた、ストレージデバイスSDb1、SDb2、SDb3・・・SDbNから状態マシン22へ電流消費情報を転送するように使用される。
【0041】
図2aに示す例において、ストレージデバイスが、別のストレージデバイスからの同期信号および/またはイネーブル信号として状態マシン22によって送出される許容メッセージの受信に応答して、高電流を消費するように許容されてもよい。状態マシン22から特定のストレージデバイスへ転送されるイネーブル信号が、このストレージデバイスを「オン」に切り換えるため、このデバイスは、その後の任意の時間に受信されてもよい同期信号に応答できる。
以下、基本的な非限定的動作モードについて記載する。状態マシン22は、通信リンクC1’、C2’、C3’・・・CN’を介して、ストレージデバイスSDb1、SDb2、SDb3・・・SDbNの各々と通信状態にある。前述したように、状態マシン22に対して固有に識別されたストレージデバイスSDb1、SDb2、SDb3・・・SDbNが「オフ」にされ、ストレージデバイスが高電流消費を消費できなくなる。状態マシン22により、特定のストレージデバイスは、ストレージデバイスの残りのものに関する電流消費情報に基づくかまたは考慮に入れられ得る、規定のスケジューリングに従って、同期信号に応答することができるようにされ得る。
【0042】
例示すると、ストレージデバイスSDb1が、最初、高電流消費状態に入ることを許容されるということは、つまり、SDb1が、状態マシン22からの対応するイネーブル信号の受信に応答して、高電流を消費することが許容されるということを意味する。イネーブル信号が有効である限り、ストレージデバイスSDb1は、実際に高電流消費を行うことができ、またはストレージデバイスSDb2から(ストレージデバイスSDb1のReady Inポートを介して)SDb1が受信するReady信号に応答して、高電流消費を再開することができる。ストレージデバイスSDb1は、(SDb2のSync Outポートを介して)ストレージデバイスSDb2へ同期信号を送出する。
【0043】
ストレージデバイスSDb2、SDb3・・・SDbNが、ストレージデバイスSDb1と異なるように動作する。ここでも、ストレージデバイスSDb2、SDb3・・・SDbNの各々は、状態マシン22からの対応するイネーブル信号の受信に応答して、高電流を消費することが許容される。イネーブル信号が有効である限り、ストレージデバイスSDb2、SDb3・・・SDbNは、ストレージデバイスSDb1、SDb2・・・SDbN−1から(Sync Inポートを介して)それぞれ受信される対応する同期信号に応答して、高電流を消費するように動作し得る。ストレージデバイスSDb2、SDb3・・・SDbNは、(Ready Outポートを介して)ストレージデバイスSDb1、SDb2・・・SDbN−1にそれぞれReady信号を送出する。
典型的に、(ストレージデバイスSDb3、SDb4・・・SDbNから)ストレージデバイスSDb2、SDb3・・・SDbN−1によって受信されるReady信号が、ストレージデバイスSDb1、SDb2・・・SDbN−2にそれぞれ横断されていく。
【0044】
ストレージデバイスSDb1、SDb2、SDb3・・・SDbNの任意のものは、ストレージシステム20にある任意の1つ以上のストレージデバイスと通信状態にあり得るため、特定のストレージデバイスは、特定の構成に応じて、対応する同期信号/Ready信号を、ストレージシステム20にある他のストレージデバイスの任意のものに対してさらに受信および/または送信してもよい。
図1および
図2の配置および/または
図1および
図2の配置で示すコンポーネントの任意のものの機能の任意の組み合わせが、本願明細書において適用可能であり得ることに留意するべきである。
【0045】
図3は、例示的な実施形態による
図1のストレージデバイス(例えば、ストレージデバイスSDaN)をより詳細に示す。ここでも、ストレージデバイスSDaNは、構成に応じて、ストレージシステムの1つ以上の他のストレージデバイスに直接的または間接的に接続される。
ストレージデバイスSDaNは、典型的に、データを格納するためのメモリアレイ32aおよびストレージデバイスコントローラ34aなどの記憶部を含む回路を含む。メモリアレイ32aへのデータのプログラミング、およびメモリアレイ32aからのデータの読み出しを管理するために、ストレージデバイスコントローラ34aが設けられる。ストレージデバイスコントローラ34aは、状態マシンからインターフェイス36を介して、同期信号などの信号の受信に応答して、ストレージデバイスSDaNの電流消費を制御する。
状態マシンは、例えば、
図1および
図2のストレージシステムに関して記載した状態マシンであってもよい。さらに、前述したように、ストレージデバイスSDaNは、インターフェイス36を介して、状態マシンに電流消費レベルの実時間表示を伝えるように動作し得るものであってもよい。
【0046】
図4は、例示的な実施形態による
図1のストレージデバイス(例えば、ストレージデバイスSDbN)をより詳細に示す。
ストレージデバイスSDbNは、典型的に、データを格納するためのメモリアレイ32bおよびストレージデバイスコントローラ34bなどの記憶部を含む回路を含む。メモリアレイ32bへのデータのプログラミング、およびメモリアレイ32bからのデータの読み出しを管理するために、ストレージデバイスコントローラ34bが設けられる。ストレージデバイスコントローラ34bは、状態マシンからイネーブルポート48を介する同期信号などの信号の受信に応答して、さらにSync Inポートを介する別のこのようなストレージデバイスから受信されたイネーブル信号に基づいて、ストレージデバイスSDbNの電流消費を制御する。同期信号は、ストレージ動作コマンドの受信後または受信前のいずれかに、任意の時点で受信されてもよい。
【0047】
ストレージデバイスコントローラ34bは、Sync OutおよびReady Outポート接続のそれぞれを介して、(典型的には、ストレージデバイスSDbNと直接接続状態にある)他のこのようなストレージデバイスに、同期信号およびReady信号を送信するようにさらに動作可能である。Ready信号を受信すると、ストレージデバイスSDb2は、Ready Outポート接続を介して別のこのようなストレージデバイスにこのReady信号を伝えるか、または特定の構成に応じて、高電流消費状態に入るかのいずれかである。
同期信号およびReady信号は、前述したものと同じ方法で送出される。すなわち、同期信号は、他のストレージデバイスが高電流消費レベルでの動作を開始するために送信される。Ready信号は、典型的に、高電流の消費がこれ以上必要ないことを他のストレージデバイスに通知するために送信される。
前述したように、状態マシンは、例えば、
図1および
図2のストレージシステムに関して記載した状態マシンであってもよい。さらに、前述したように、ストレージデバイスSDbNは、インターフェイス46を介して、状態マシンに電流消費レベルの実時間表示を伝えるように動作し得るものであってもよい。
【0048】
図5は、1つの例示的な実施形態による電流消費情報を保持する表100を示す。一般に、表100は、ストレージデバイスSDa1、SDa2、SDa3、SDa4、およびSDa5に関連する電流消費要求に関する情報を提供する。
一例として、表100は、高電流消費状態で50mAの量を消費するのに20マイクロ秒を必要とし、7mAの量を消費するのに30マイクロ秒を必要とするストレージデバイスの電流消費情報を提供する。
【0049】
特に、表100は、高電流消費状態で動作するためにストレージデバイスによって要求される電流量(単位ミリアンペア)を示すためにフィールド110と、高電流状態で動作するためにストレージデバイスが要求する時間(単位マイクロ秒)を示すためのフィールド120と、低電流消費状態で動作するためにストレージデバイスによって要求される電流量(ミリアンペア)を示すためのフィールド130と、低電流状態で動作するためにストレージデバイスが要求する時間(マイクロ秒)を示すためのフィールド140と、優先度を示すためのフィールド150と、動作状態を示すためのフィールド160とを含む。 表100は、5つの例示的な見出しを含み、各見出しは、異なるストレージデバイスを参照する。例えば、見出し210は、ストレージデバイスSDa1について言及している。SDa1は、動作中であり、高優先度が割り当てられている。見出し220は、ストレージデバイスSDa2について言及している。SDa2も同様に、動作中であり、高優先度が割り当てられている。
【0050】
見出し230および250は、ストレージデバイスSDa3およびSDa5についてそれぞれ言及している。SDa3が動作不良中であり、SDa5がスリープモードにあるため、両方のデバイスには低優先度が割り当てられている。
見出し240は、ストレージデバイスSDa4について言及している。SDa4は、動作中であり、中優先度が割り当てられている。このような状況下において、状態マシン12は、ストレージデバイスSDa4より、ストレージデバイスSDa1およびSDa2をより長く(すなわち、延長された)かつ/またはより高頻度の電流消費期間にしてもよい。
ここでも、電流消費要求は、前述したように、本願明細書に使用される例示的な値に限定されるものではなく、他の値に基づいたものであってもよい。
【0051】
図6は、状態マシンが、複数のストレージデバイスを制御または管理する例示的な方法50を示す。
図6は、
図1に関連して記載される。本願明細書に記載される方法は、ストレージデバイスSDa1〜SDaNの動作を管理するために、ストレージシステム10の状態マシン12などの状態マシンによって用いられてもよい。一例として、この方法は、ストレージデバイスSDa1、SDa2、およびSDa3のみを使用して記載されている。
【0052】
最初のステップS51において、ストレージデバイスに通信リンクが設けられる状態マシン12は、ストレージ動作コマンドを発行する。さらなる例のために、本願明細書において発行されるストレージ動作コマンドは、データを3つのストレージデバイスに同時に格納するためのプログラムコマンドである。
ステップS52において、状態マシン12は、同期信号を第1のストレージデバイスに送信し、第1のストレージデバイスが高電流消費レベルで動作し(S53)、第2および第3のストレージデバイスが低電流消費レベルで動作する。
ステップS54において、状態マシン12は、第1のストレージデバイスが高電流消費レベルで動作しないことを示すReady信号を第1のストレージデバイスから受信する。
次に、ステップS55(Ready信号の受信後)において、状態マシン12は、第2のストレージデバイスに同期信号を送信する。この信号により、第2のストレージデバイスは、高電流消費レベルでの動作を開始することができ(S56)、第1および第3のストレージデバイスが低電流消費レベルで動作する。
【0053】
ステップS57において、状態マシン12は、第2のストレージデバイスが高電流消費レベルで動作しないことを示すReady信号を第2のストレージデバイスから受信する。
次に、ステップS58(Ready信号の受信後)において、状態マシン12は、第3のストレージデバイスに同期信号を送信する。この信号により、第3のストレージデバイスは、高電流消費レベルでの動作を開始することができ(S59)、第1および第2のストレージデバイスが低電流消費レベルで動作する。
ステップS60において、状態マシン12は、第3のストレージデバイスが高電流消費レベルで動作しないことを示すReady信号を第3のストレージデバイスから受信する。
第3のストレージデバイスからReady信号を受信した後、状態マシン12は、電流プログラム動作において最後のサブ状態に達したかを判定し(S61)、すなわち、最後の同期信号が発行されたかを判定する。最後の同期信号が発行されていれば、プロセスは終了し、最後の同期信号が発行されていなければ、プロセスはステップS51に戻る。
【0054】
図7は、状態マシンが2つのストレージデバイスを制御または管理する例示的な方法60を示す。
図7は、
図1に関連して記載される。ステップ61において、使用されるT1およびT2を含む読み込みタイミング情報が、フラッシュまたはROMから読み込まれる。ステップ62において、SD1およびSD2でプログラムシーケンスが開始される。ステップ63において、SD1は高電流消費状態に設定され、SD2は低電流消費状態に設定され、タイマがT1に読み込まれる。ステップ64において、時間T1が経過すれば、SD1は低電流消費状態に設定され、SD2は高電流消費状態に設定され、ステップ65において、タイマにT2が読み込まれる。ステップ66において、時間T2が経過すると、ステップ63に制御が戻される。
【0055】
各ストレージデバイスの動作の順序は、一例としてここに挙げただけである。したがって、コントローラは、ランダムな順序に従って、および/または任意の他の規定の順序に従って、任意の他のストレージデバイスに同期信号を送信してもよい。
当業者に認識されているように、現在の技術は、多種多様な異なるアーキテクチャを採用し、新しいアーキテクチャが継続的に開発されていくことが予測される。一般に、ストレージデバイスが適切な処理能力を有するものである限り、多種多様な異なるタイプのメモリとともに、例示的な実施形態が採用されてもよい。
【0056】
本願明細書に記載する様々な例である実施形態は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実現されてもよい。ハードウェアおよびソフトウェアの典型的な組み合わせは、読み込まれ実行されると、本願明細書に記載する方法を実行するようにコンピュータシステムを制御するコンピュータプログラムを有する汎用コンピュータシステムであり得る。また、コンピュータプログラム製品に前述した概念が組み込まれてもよく、このコンピュータプログラム製品は、本願明細書に記載する実施形態の実行を可能にするすべての特徴を備え、コンピュータシステムに読み込まれた場合にはこれらの実施形態を実行可能である。本願明細書におけるコンピュータプログラムまたはアプリケーションは、情報処理能力を有するシステムに、特定の機能を直接実行させるか、あるいはa)別の言語、コード、または表記への変換、b)異なる構成形態での再現のいずれかまたは両方の後に特定の機能を実行させることが意図された命令セットの任意の言語、コード、または表記での任意の表現を意味する。
【0057】
システムおよび方法の様々な実施形態について記載してきたが、当業者であれば、さらなる修正が提案されるであろうことから、本願明細書における記載は、限定的なものとして意図したものではなく、添付の特許請求の範囲内にあるものとしてこのような修正も含むように意図されていることを理解するべきである。