(57)【要約】  システムにおける１つ以上のデバイスの動作を自動的に作動制御するためのシステムおよび方法が提供される。特定の実施形態において、（デバイスの初期化の実行など）動作を実行すべきかどうかをデバイスが決定するために、コマンドがデバイスによって受信される。コマンドには、システムの少なくとも一部の資源能力を示す情報を含んでもよい。情報を用いて、デバイスは、（初期化などの）動作の実行を開始すべきかどうかを決定し、開始することが決定された場合には動作を実行してもよい。
2013513871.tif 000002
【特許請求の範囲】
【請求項１】
システムにおけるデバイスを動作させるための方法であって、
記憶装置通信インターフェースを介してコマンドを前記デバイスにおいて受信することであって、前記コマンドが、前記システムの少なくとも一部の現在の資源能力を示す情報を含むことと、
前記情報に基づいて前記デバイスの動作を開始するかどうかを前記デバイスによって決定することと、
前記動作を開始すべきかどうかの決定に基づいて前記デバイスを動作させることと、
を含む方法。
【請求項２】
動作を開始すべきかどうかを決定することが、前記動作を開始すべきかどうかを前記デバイスが決定するために、前記コマンドにおける前記情報および前記動作を実行するために前記デバイスによって必要とされる資源量を解析することを含む、請求項１に記載の方法。
【請求項３】
前記動作を実行するために前記デバイスによって必要とされる前記資源量が、前記現在の資源能力より大きい場合、前記デバイスが前記動作を実行しない、請求項２に記載の方法。
【請求項４】
前記デバイスの前記動作が初期化を含み、
前記動作を開始すべきかどうかを決定することが、初期化を開始すべきかどうかを決定することを含む、請求項１に記載の方法。
【請求項５】
前記情報の少なくとも一部が、複数のデバイスを示す、請求項４に記載の方法。
【請求項６】
前記情報の前記少なくとも一部が、現在初期化可能な複数のデバイスを示す、請求項５に記載の方法。
【請求項７】
現在の資源能力を示す前記情報が電気的パラメータを含む、請求項４に記載の方法。
【請求項８】
前記電気的パラメータが電力を含む、請求項７に記載の方法。
【請求項９】
初期化を開始する決定に応じて前記情報の少なくとも一部を修正することをさらに含む、請求項４に記載の方法。
【請求項１０】
前記情報が、１つ以上のパラメータを含み、
前記情報の少なくとも一部を修正することが、前記１つ以上のパラメータの少なくとも１つに対して算術演算を実行することを含む、請求項９に記載の方法。
【請求項１１】
前記少なくとも１つのパラメータに対して前記算術演算を実行することが、前記デバイスの現在の初期化を示すために、前記パラメータの値を１だけ変更することを含む、請求項１０に記載の方法。
【請求項１２】
記憶装置通信インターフェースと、
前記記憶装置通信インターフェースと通信するコントローラであって、
前記記憶装置通信インターフェースを介してコマンドを前記デバイスにおいて受信し、前記コマンドが、前記システムの少なくとも一部の現在の資源能力を示す情報を含むように、
前記情報に基づいて、前記デバイスの動作を開始すべきかどうかを前記デバイスによっ
て決定するように、
かつ前記動作を開始すべきかどうかの決定に基づいて前記デバイスを動作させるように、動作するコントローラと、
を含むデバイス。
【請求項１３】
前記コントローラが、前記動作を開始すべきかどうかを決定するために、前記コマンドにおける前記情報、および前記動作を実行するために前記デバイスによって必要とされる前記資源量を解析するように構成される、請求項１２に記載のデバイス。
【請求項１４】
前記動作を実行するために前記デバイスによって必要とされる前記資源量が、前記現在の資源能力より大きい場合、前記コントローラが前記動作を実行しない、請求項１３に記載のデバイス。
【請求項１５】
前記デバイスの前記動作が初期化を含み、
前記コントローラが、初期化を開始すべきかどうかを決定するように構成される、請求項１２に記載のデバイス。
【請求項１６】
前記情報の少なくとも一部が複数のデバイスを示す、請求項１５に記載のデバイス。
【請求項１７】
前記情報の前記少なくとも一部が、現在初期化している最中の複数のデバイスを示す、請求項１６に記載のデバイス。
【請求項１８】
現在の資源能力を示す前記情報が電気的パラメータを含む、請求項１５に記載のデバイス。
【請求項１９】
前記コントローラが、初期化を開始する決定に応じて、前記情報の少なくとも一部を修正するようにさらに構成される、請求項１５に記載のデバイス。
【請求項２０】
前記情報が、１つ以上のパラメータを含み、
前記コントローラが、前記１つ以上のパラメータの少なくとも１つに対して算術演算を実行することによって、前記情報の少なくとも一部を修正するように構成される、請求項１９に記載のデバイス。
【請求項２１】
前記コントローラが、前記デバイスの現在の初期化を示すために、前記パラメータの値を１だけ変更することによって、前記少なくとも１つのパラメータに対して前記算術演算を実行するように構成される、請求項２０に記載のデバイス。
【請求項２２】
ホスト装置がシステムの少なくとも一部の動作を制御するための方法であって、
前記ホスト装置によってコマンドを生成することであって、前記コマンドが、デバイスに動作するように命令することおよび前記ホスト装置の現在の資源能力を示す情報を含むことを示すことと、
ホスト装置通信インターフェースを用いて、前記ホスト装置から前記コマンドを送信することと、
を含む方法。
【請求項２３】
現在の資源能力を示す前記情報が電気的パラメータを含む、請求項２２に記載の方法。
【請求項２４】
前記電気的パラメータが電力を含む、請求項２３に記載の方法。
【請求項２５】
前記動作が初期化を含み、
前記コマンドが、初期化するためのコマンドを含む、請求項２２に記載の方法。
【請求項２６】
前記情報の少なくとも一部が複数のデバイスを示す、請求項２５に記載の方法。
【請求項２７】
前記情報の前記少なくとも一部が、現在初期化可能な複数のデバイスを示す、請求項２６に記載の方法。
【請求項２８】
通信インターフェースと、
前記通信インターフェースと通信するコントローラであって、
コマンドを生成し、前記コマンドが、前記デバイスに動作するように命令することおよび前記ホスト装置の現在の資源能力を示す情報を含むことを示すように、
かつ前記通信インターフェースを用いて、前記コマンドを送信するように、動作するコントローラと、
を含むホスト装置。
【請求項２９】
現在の資源能力を示す前記情報が電気的パラメータを含む、請求項２８に記載のホスト装置。
【請求項３０】
前記電気的パラメータが電力を含む、請求項２８に記載のホスト装置。
【請求項３１】
前記コマンドが、初期化するためのコマンドを含む、請求項２８に記載のホスト装置。
【請求項３２】
前記情報の少なくとも一部が複数のデバイスを示す、請求項３１に記載のホスト装置。
【請求項３３】
前記情報の前記少なくとも一部が、現在初期化可能な複数のデバイスを示す、請求項３２に記載のホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００９年１２月１４日出願の米国仮特許出願第６１／２８６，２８１号の利益および２００９年１２月１８日出願の米国仮特許出願第６１／２８８，０７８号の利益を主張する２０１０年２月１６日出願の米国特許出願第１２／７０６，５１９号の優先権を主張し、これらの出願のそれぞれにおける全体が、これによって参照により本明細書に援用される。
【背景技術】
【０００２】
システムには、ホスト装置、およびホストと通信する複数のデバイスを含んでもよい。システム構成の例が図１に示されているが、そこではホスト装置は、「リング」として知られているネットワークトポロジを用いる。「リング」トポロジは、複数のデバイスが直列に接続され、複数のデバイスにおける第１のデバイスおよび最後のデバイスがホスト装置に直接接続されるタイプのネットワーク設定である。ホスト装置の送信回路（Ｔｘ）が、デバイス１の受信回路（Ｒｘ）に接続される。デバイス１の送信回路（Ｔｘ）が、デバイス２の受信回路（Ｒｘ）に接続され、この動作が繰り返される。システムにおける最終デバイスであるデバイスＮの送信回路（Ｔｘ）が、ホスト装置の受信回路（Ｒｘ）に接続され、それによってリング接続を完了する。システム構成の他の例には、ツリートポロジ、スタートポロジ、線形デイジーチェーントポロジまたはハブトポロジが含まれる。
【０００３】
システムの通常の動作に先立って、複数のデバイスのうちの１つ以上を初期化してもよい。複数のデバイスのうちの１つ以上を初期化するにはいくつかの方法がある。方法の１つは、複数のデバイスを順次的に初期化することである。順次初期化には、第１のデバイス（図１のデバイス１）から始めて１つずつ順番に複数のデバイスを初期化し、最後のデバイス（図１のデバイスＮ）で終了することが含まれる。順次初期化には、利点および欠点の両方がある。このタイプの初期化は、ホスト装置の電力能力を超えないように、どんな単回にも比較的低い電力を消費する。しかしながら、初期化が、一度に１つのデバイスで実行されるので、順次初期化は、長い時間がかかる。
【０００４】
システムを初期化する別の方法は、並列初期化である。並列初期化には、複数のデバイスの全てを同時に初期化することが含まれる。並列初期化には、迅速な初期化という利点がある。しかしながら、並列初期化は、システムの初期化時間中に比較的高い電力を消費する。特に、複数のデバイスのそれぞれが、初期化中に（１００ミリアンペア（ｍＡ）などの）電流を消費する。ホスト装置には、通常動作中には動作できるが、しかし並列初期化を実行できない電源が含まれる可能性がある。例えば、ホスト装置には、４００ｍＡの出力を備えた電源が含まれる可能性がある。システムが、４つを超えるデバイス（それぞれが、初期化中に１００ｍＡを要求する）を含む場合、電源は、デバイスの全てを並列に初期化することはできない。並列初期化を実行するために、ホスト装置は、より大きなコストで、より大きな電源を有しなければならない。
【０００５】
したがって、順次初期化および並列初期化の両方とも、電力制約または時間制約を非常に受ける。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の実施形態は、請求項によって定義され、このセクションにおけるどんな部分も、それらの請求項に対する制限として取るべきではない。
【０００７】
例として、以下で説明する実施形態は、一般に、（初期化など）システムの少なくとも一部の動作に関する。一実施形態において、システムにおけるデバイスは、システムの少なくとも一部の資源能力を示す情報を含むコマンドを受信する。一実施形態において、情報には、１つ以上のパラメータを含んでもよい。別の実施形態において、情報には、２つ以上のパラメータを含んでもよい。情報を用いて、デバイスは、（初期化の開始など）動作を開始すべきであるかどうかを決定し、決定に応じて動作を実行してもよい。
【０００８】
他の実施形態が提供され、かつ実施形態のそれぞれは、単独で、または組み合わせて一緒に用いることができる。ここで、添付の図面に関連して様々な実施形態を説明する。
【図面の簡単な説明】
【０００９】
【図１】リングトポロジにおけるホスト装置および複数のデバイスのブロック図である。
【００１０】
【図２】リングトポロジにおけるホスト装置および複数のデバイスのそれぞれにおけるコントローラ、記憶素子、および通信インターフェースを示すブロック図である。
【００１１】
【図３】ハブトポロジにおけるホスト装置および複数のデバイスを示すブロック図である。
【００１２】
【図４】チェーントポロジにおけるホスト装置および複数のデバイスを示すブロック図である。
【００１３】
【図５】初期化を開始するコマンドのフォーマットである。
【００１４】
【図６】初期化プロセスのステータスチェック用のコマンドのフォーマットである。
【００１５】
【図７】初期化を開始するコマンドを受信した場合におけるデバイスのフローチャートの一例である。
【００１６】
【図８】初期化を開始するコマンドを受信した場合におけるデバイスのフローチャートの別の例である。
【００１７】
【図９】デバイス初期化プロセスの第１の段階を示すブロック図である。
【００１８】
【図１０】デバイス初期化プロセスの第２の段階を示すブロック図である。
【発明を実施するための形態】
【００１９】
導入として、以下の実施形態は、一般に、システムの少なくとも一部を初期化することなど、システムの少なくとも一態様の動作における自動的かつ制御可能な制御に関する。システムには、ホスト装置、およびホスト装置と通信する１つ以上のデバイスが含まれる。ホスト装置は、（複数のデバイスのうちの１つ以上の初期化など）１つ以上のデバイスの動作を制御するコマンドを、複数のデバイスのうちの１つか、いくつかか、または全てに送信する。
【００２０】
コマンドには、初期化の開始など、動作を開始すべきかどうかを決定するために複数のデバイスが利用可能な情報が含まれる。一実施形態において、コマンドにおける情報には、１つ以上のパラメータが含まれる。コマンドにおける１つ以上のパラメータは、動作を実行するために現在利用可能なシステム資源を示してもよい。例えば、コマンドにおける
１つ以上のパラメータは、システム初期化用に利用可能な現在のシステム資源を示してもよい。複数のデバイスは、コマンドを受信し、かつ（コマンドにおける１つ以上のパラメータを検討するなど）コマンドにおける情報を検討することによって、（初期化を開始すべきかどうかなど）動作を実行すべきかどうかを決定してもよい。コマンドにおける情報は、動作を開始すべきかどうかをデバイスが決定するために、（デバイスが初期化するための資源量など）動作を実行するためにデバイスによって必要とされる資源量と共に解析してもよい。例えば、動作を実行するためにデバイスによって必要とされる資源量が、（コマンドにおける１つ以上のパラメータによって示されるような）現在の資源能力より大きい場合、動作は実行されない。
【００２１】
別の実施形態において、コマンドにおける情報には、２つ以上のパラメータが含まれる。コマンドにおける２つ以上のパラメータは、動作を実行するために現在利用可能なシステム資源を示してもよい。例えば、コマンドにおける２つ以上のパラメータは、システム初期化用に利用可能な現在のシステム資源を示してもよい。複数のデバイスは、コマンドを受信し、かつ（コマンドにおける２つ以上のパラメータを検討することなど）コマンドにおける情報を検討することによって、（初期化を開始すべきかどうかなど）動作を実行すべきかどうかを決定してもよい。コマンドにおける情報は、動作を開始すべきかどうかをデバイスが決定するために、（デバイスが初期化するための資源量など）動作を実行するためにデバイスによって必要とされる資源量と共に解析してもよい。例えば、動作を実行するためにデバイスによって必要とされる資源量が、（コマンドにおける２つ以上のパラメータによって示されるような）現在の資源能力より大きい場合、動作は実行されない。
【００２２】
このように、（初期化を開始するコマンドなど）動作を開始するコマンドは、１つもしくは複数のパラメータまたは２つ以上のパラメータを有することを含めて、いくつかの形態の１つを取ってもよい。しかしながら、コマンドにおけるパラメータ数（パラメータが１つであれ２つであれ）のこれらの例は、単に説明のためである。それとは関係なく、コマンドは、（初期化などの）動作を実行するためのシステムの現在の能力を示す情報（１つのパラメータの形態であれ２つのパラメータの形態であれ）を、コマンドを受信するデバイスに提供してもよい。
【００２３】
一実施形態において、システムの現在の能力を示す、コマンドにおける情報は、（現在初期化を開始してもよいデバイスの数など）複数のデバイスを含んでもよい。例えば、１つ以上のパラメータには、システムが、現在どのくらいの資源を提供できるかを示してもよい。デバイスの数の場合、１つ以上のパラメータは、まだいくつのデバイスが初期化可能であるかを示してもよい。以下でより詳細に説明するように、まだ初期化可能なデバイスの数を示す一例には、資源能力パラメータから現在の初期化パラメータを減じることを含んでもよい。しかしながら、これは、まだ初期化可能なデバイスの数を示し得る、コマンドにおける１つ以上のパラメータの単なる一例である。別の実施形態において、システムの現在の能力を示す、コマンドにおける情報には、（電流（ｍＡ）など）電気的パラメータを含んでもよい。次に、デバイスは、（初期化などの）動作を実行すべきかどうかおよび／またはいつ実行すべきかをデバイスが決定するために、この情報を用いてもよい。
【００２４】
以下で説明する例は、初期化すべきかどうか、またはいつ初期化すべきかを制御することに関する。しかしながら、システムにおける複数のデバイスが同時に動作するように要求される任意の動作など、複数のデバイスのうちの１つ以上の他の動作を制御してもよい。したがって、開示のシステムおよび方法は、複数のデバイスが１つ以上の動作を同時に実行する際の資源利用を改善または最適化するための一般的な方法を提供する。
【００２５】
１つ以上のパラメータの例を以下で説明する。しかしながら、これらの例は、単に説明
のためである。あるパラメータには、資源能力パラメータを含んでもよく、この資源能力パラメータは、（ホストシステムの電力能力、電流消費など）システムの資源能力を示す。資源能力パラメータは、いくつかの形態の１つを取ってもよい。一例として、このパラメータは、電力システムが同時に初期化できる、システムにおけるデバイスの数を表してもよい。特に、資源能力パラメータは、ホスト装置電力システムが同時に初期化できる複数のデバイス（例えば４つのデバイス）を示してもよい。別の例として、このパラメータは、システムが提供できる電気的パラメータを表してもよい。例えば、資源能力パラメータは、システムが初期化用に出力できる総電流量（ｍＡ）（例えば４００ｍＡ）を示してもよい。または、資源能力パラメータは、システムが初期化用に出力できる総電力量を示してもよい。
【００２６】
ホスト装置から送信されるコマンドに含み得る別のパラメータには、現在の初期化パラメータを含んでもよく、このパラメータは、現在初期化している最中のデバイスを示す。ホスト装置は、初期化している最中のデバイスに関するホスト装置の現在の判定に基づいて、パラメータを設定してもよい。例えば、現在初期化している最中のデバイスが存在しないとホスト装置が判定した場合、ホスト装置は、現在の初期化パラメータをゼロに設定することができる。デバイスの１つ以上が、コマンドを受信し、かつ（デバイスが初期化している最中かどうか、またはデバイスが初期化を完了したかどうかを含む）デバイスの初期化ステータスに依存して現在の初期化パラメータを更新してもよい。かつ１つ以上のデバイスは、デバイスの初期化ステータスに基づいて、およびホスト装置から送信されたコマンドにおける１つ以上のパラメータに基づいて、初期化を開始すべきかどうかの、ホスト装置から送信されたコマンドを処理してもよい。
【００２７】
実際には、ホスト装置は、初期化プロセスにおける様々な時間に１つ以上のコマンドを送信してもよい。例えば、ホスト装置は、初期化を開始するコマンドを送信してもよい。リングトポロジにおいて、ホスト装置は、初期化開始コマンドをデバイスに送信してもよい。第１のデバイスは、コマンドを受信し、かつ（資源能力パラメータおよび現在の初期化パラメータを含む）コマンドにおけるパラメータ、および（第１のデバイスが、初期化される必要があるかどうかを含む）それ自体のステータスを解析して、初期化し開始すべきかどうかを決定する。システムが第１のデバイスを初期化することができ、かつ第１のデバイスが初期化を必要とすると、第１のデバイスが判定した場合、第１のデバイスは、初期化を開始し、（第１のデバイスが初期化している最中であることを反映するために）現在の初期化パラメータを修正し、かつ（修正された現在の初期化パラメータを備えた）コマンドを、リングトポロジにおける第２のデバイスに送信する。第２のデバイス（およびリングトポロジにおける後続のデバイス）は、第１のデバイスによって実行された解析と同様の解析を実行してもよい。
【００２８】
デバイスが初期化を完了した後で、ホスト装置または別のデバイスは、この初期化完了を反映するために現在の初期化パラメータを修正してもよい。例えば、ホスト装置は、リングトポロジにおけるどのデバイスが現在初期化している最中かを評価するために後続のステータスコマンドを送信し、かつ評価に基づいて現在の初期化パラメータを修正してもよい。またはリングトポロジにおけるデバイスは、初期化が完了すると現在の初期化パラメータを修正し、かつ修正された現在の初期化パラメータを他のデバイスおよびホスト装置に送信してもよい。
【００２９】
このように、デバイスシーケンスは、事前設定されず、コマンドにおける、１つ以上のパラメータなどの情報に基づいて動的に決定してもよい。かつ現場の複数のデバイスは、コマンドにおける、１つ以上のパラメータなどの情報、さらに潜在的にそれ自体の能力／パラメータを用いて、初期化をいつ開始するかまたは開始すべきかどうか、およびいつコマンドを次のデバイスに転送すべきかを決定してもよい。したがって、複数のデバイスは
、いつ初期化を開始すべきかの決定に参加し、意思決定プロセスにおいて受動的ではない。これは、順次または並列初期化などの他の初期化方式、すなわち、ホスト装置が複数のデバイスにコマンドを送信し、複数のデバイスが、コマンドが受信された場合、受動的にコマンドに従って初期化する他の初期化方式とは異なる。かつシステムの資源能力は、一層よく利用可能である。
【００３０】
一実施形態において、コマンドにおける情報の１つか、いくつかか、または全ては、（初期化などの）動作を実行するために、システムの現在の能力を反映するようにデバイスによって修正してもよい。例えば、特定の実施形態において、コマンドにおけるパラメータの１つ以上は、（デバイスが初期化することを決定したかどうか、またはデバイスが初期化を完了したかどうかなど）デバイスの動作ステータスを反映するように修正してもよい。その例は、算術演算を用いて、コマンドにおける１つ以上のパラメータのうちの１つを修正することによる。以下でより詳細に説明するように、現在の初期化パラメータは、デバイスが初期化している最中であることかまたはデバイスが初期化を完了したことを反映するために、「１」だけパラメータ値を変更することによって、修正してもよい。次に、修正された現在の初期化パラメータは、資源能力パラメータと比較してもよく、デバイスは、システムの資源能力が現在の初期化を可能にするかどうかを判定してもよい。
【００３１】
例えば、システムの資源能力によって、４つのデバイスなど、ある数のデバイスが同時に初期化可能である場合、現在の初期化パラメータなどのコマンドにおける情報の更新によって、４つのデバイスなど、システムにおけるある数のデバイスが、より頻繁に、同時に初期化することがよりよく保証され、それによって、システム資源能力をよりよく利用し、かつシステムにおけるデバイスを初期化する時間を潜在的に低減することが可能になる。
【００３２】
セキュアデジタル（「ＳＤTM」）メモリカード（比較的遅いフラッシュ記憶装置の例）および超高速タイプＩＩ（ＵＨＳ−ＩＩ）メモリカード（より高速なフラッシュ記憶装置の例）など、メモリ装置のいくつかの例が存在する。ＳＤは、ＳＤ−３Ｃ  ＬＬＣの商標である。ＵＨＳ−ＩＩは、次世代ＳＤTMカード用にＳＤ  Ａｓｓｏｃｉａｔｅによって開発された規格であり、「高速プロトコル」の一例である。別の例は、ユニバーサルフラッシュストレージ（「ＵＦＳ」）記憶装置であってもよい。「ＵＦＳ」は、Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ（ｓ）（電子機器技術評議会）（「ＪＥＤＥＣ」）Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎ（半導体技術協会）のために働くＵＦＳタスクフォースによって開発された規格である。
【００３３】
図２は、リングトポロジにおけるホスト装置２１０および複数のデバイス２３０、２５０、２７０の詳細なブロック図２００を示す。ホスト装置２１０には、コンピュータ、携帯電話、携帯情報端末（ＰＤＡ）、ゲーム機、通信装置、マルチメディアプレーヤ装置、１つもしくは複数のメモリ装置と通信するように適合された任意の他のデバイス、またはそれらの任意の組み合わせなどの電子装置を含んでもよい。ホスト装置２１０には、プロセッサ、マイクロコントローラ、または他のタイプの算術論理演算ユニットなどのコントローラ２１２を含んでもよい。ホスト装置２１０には、さらに、不揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、フラッシュ記憶装置、１つもしくは複数のレジスタ、または他の実体のある記憶装置など、記憶素子２１４または他のタイプのメモリを含んでもよい。ホスト装置２１０にはまた、ネットワークを介して複数のデバイスと通信を可能にする通信インターフェース２１６を含んでもよい。通信インターフェース２１６は、メッセージをデバイスに送信する送信回路（Ｔｘ）２１８およびデバイスからメッセージを受信する受信回路（Ｒｘ）２２０を有する。したがって、通信インターフェース２１６を用いて、ホスト装置２１０は、コマンド、データ、またはそれらの任意の組み合わせなどのメ
ッセージを、ネットワークを介して複数のデバイス２３０、２５０、２７０に送信するように構成される。ネットワークには、デバイス２３０、２５０、２７０間でメッセージを送信する１つ以上のデータ線ペアを含んでもよい。
【００３４】
複数のデバイス２３０、２５０、２７０には、コンピュータおよび／またはメモリ装置を含んでもよい。例えば、複数のデバイス２３０、２５０、２７０の１つ以上は、拡張ＳＤTM、マイクロＳＤTMカード、埋め込みＳＤ（ｅＳＤ）、またはＳＤ入力／出力装置（ＳＤＩＯ）（ＳＤまたはマイクロＳＤは、ＳＤ−３Ｃ  ＬＬＣの商標である）などのフラッシュメモリカードであってもよい。別の例として、複数のデバイス２３０、２５０、２７０の１つ以上には、ＵＨＳ−ＩＩ記憶装置、または（入力／出力通信アプリケーションなど）ＵＨＳ−ＩＩインターフェースを含む他のタイプの装置を含んでもよい。複数のデバイス２３０、２５０、２７０には、バスを介してホスト装置および他のデバイスと通信できるようにする通信インターフェースが含まれる。例えば、デバイス２５０には、Ｗｉ−ＦｉまたはＢｌｕｅｔｏｏｔｈ（登録商標）などの無線通信機能を示すＩ／Ｏインターフェース２６２が含まれる。このように、デバイス２３０、２５０、２７０には、メモリ装置、Ｉ／Ｏ通信装置、および／またはメモリ装置＋Ｉ／Ｏ通信装置の組み合わせを含んでもよい。
【００３５】
第１のデバイス２３０には、プロセッサ、マイクロコントローラ、または他のタイプの算術論理演算ユニットなどのコントローラ２３２が含まれる。第１のデバイス２３０には、さらに、不揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、フラッシュ記憶装置、１つもしくは複数のレジスタ、もしくは他の実体のある記憶装置などの記憶素子２３４か他のタイプのメモリ、または（Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ、ＷｉＧＩＧなどの）入力／出力通信インターフェースを含んでもよい。第１のデバイス２３０には、受信回路（Ｒｘ）２３８および送信回路（Ｔｘ）２４０を有する通信インターフェース２３６が含まれる。受信回路（Ｒｘ）２３８は、コマンドおよびデータなどのメッセージを、通信経路上の前のデバイスから、すなわちネットワークを介してホスト装置２１０から受信するように構成される。送信回路（Ｔｘ）２４０は、応答などのメッセージを、通信経路上の次のデバイスに、すなわちネットワークを介して第２のデバイス２５０に送信するように構成される。
【００３６】
第２のデバイス２５０には、コントローラ２５２が含まれる。第２のデバイス２５０には、さらに、記憶素子２５４または他のタイプのメモリを含んでもよい。第２のデバイス２５０には、受信回路（Ｒｘ）２５８および送信回路（Ｔｘ）２６０を有する通信インターフェース２５６が含まれる。受信回路（Ｒｘ）２５８は、通信経路上の第１のデバイス２３０からメッセージを受信するように構成される。送信回路（Ｔｘ）２６０は、ネットワークを介して通信経路上の次のデバイスにメッセージを送信するように構成される。
【００３７】
「Ｎ」デバイス２７０には、コントローラ２７２、および記憶素子２７４または他のタイプのメモリが含まれる。「Ｎ」デバイス２７０には、さらに、受信回路（Ｒｘ）２７８および送信回路（Ｔｘ）２８０を有する通信インターフェース２７６が含まれる。受信回路（Ｒｘ）２７８は、通信経路上の別のデバイスからメッセージを受信するように構成される。送信回路（Ｔｘ）２８０は、ネットワークを介して通信経路上の次のデバイスに、すなわちネットワークを介してホスト装置２１０にメッセージを送信するように構成される。
【００３８】
図２に示すように、ネットワークは、リングトポロジを有し、メッセージは、リングの回りの通信経路に沿って単一の方向に伝わる。第１のデバイス２３０は、通信経路上の第１の位置を有し、第２のデバイス２５０は、通信経路上の第２の位置を有する等である。デバイスの位置の連続的な順序は、通信経路に沿ってデバイスからデバイスへメッセージ
が伝わる連続的な順序に対応する。例えば、ホスト装置２１０によって送信されたメッセージは、（デバイス２３０、２５０、２７０の１つを識別する特定の識別子など）特定の宛先を示す宛先識別子（ＤＩＤ）フィールドを含んでもよく、またはブロードキャスト指示を含んでもよく、この場合、コマンドを受信できる状態にあるどんなデバイスも、アドレス指定された受信者としてコマンドを受信する。
【００３９】
ネットワークを介してホスト装置２１０に結合された３つの代表的デバイス２３０、２５０、２７０が示されているが、任意の数のかかるデバイスを、ネットワークを介してホスト装置２１０に結合してもよい。また、説明を簡単にするために、図２に示すように、ホスト装置２１０およびデバイス２３０、２５０、２７０を接続するネットワークが、概略的に示されているが、様々な物理構造を用いて、単一方向におけるメッセージングためのリングトポロジを有するネットワークを形成してもよい。１つの例として、かつ代替実施形態において、ネットワークは、リングトポロジをエミュレートするように制御されるバスとして実現してもよい。
【００４０】
さらに、リングトポロジに関連して説明されているが、他の実施形態において、ネットワークは、ツリートポロジ、スタートポロジ、線形デイジーチェーントポロジ、またはハブトポロジなどの他のトポロジを用いて実現してもよい。例えば、ハブトポロジは、ホスト装置用の１つのポート、およびデバイス用の複数のポートを有してもよい。図３は、ホスト装置３０２、デバイス３０４、３０６、３０８、３１０、およびハブ３１２を用いたハブトポロジ用のブロック図３００の例を示す。ハブトポロジは、全ての接続されたデバイスに同時にメッセージを送信してもよく、またはブロードキャストコマンドが、ハブを介し全てのデバイス（第１のデバイスから最後のデバイスまで）を通して実際に連続的に転送されるリングトポロジをエミュレートすることによってブロードキャストコマンドを送信してもよい（例えば、これによりその全体において参照により援用される、「ＤＥＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲ  ＳＥＬＥＣＴＩＯＮ」なる名称で２００９年７月２７日に出願された米国特許出願第１２／５０９，８３２号明細書を参照されたい。同様に、これによりその全体において参照により援用される、「ＤＥＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲ  ＳＥＬＥＣＴＩＯＮ」なる名称で２００９年９月１６日に出願された米国特許出願第１２／５６１，１２２号明細書を参照されたい）。または、ハブトポロジは、メッセージの内容に従ってメッセージ宛先を選択することによってメッセージを送信してもよい。図３は、経路を示す矢印を備えたラインで示されたブロードキャストコマンド経路を示す。ブロードキャストは、全てのデバイスにアクセスしてもよいが、これは、ハブ３１２を通過しながらデバイス＃１  ３０４からスタートしてデバイス＃Ｎで終了し、連続的に行われる。このようにして、正確なリング動作挙動が達成可能である。リングトポロジに関連する下記の説明は、同様に所与のハブトポロジにおいて用いてもよい。
【００４１】
図４は、ホスト装置４０２、およびデバイス４０４、４０６、４０８を用いたチェーントポロジ用のブロック図４００の例を示す。チェーントポロジにおけるブロードキャスト動作は、デバイス＃１  ４０４からスタートしデバイス＃Ｎ  ４０８で終了し、全てのデバイスに実際にアクセスされるブロードキャストコマンドを用いて実現してもよい（リングトポロジに似ている）。ただ１つの相違は、デバイス＃Ｎからホスト装置へ戻る接続が、全てのデバイス４０４、４０６を逆に通過することである（一方でリングトポロジでは、ホスト装置への直接経路が存在する）。それにもかかわらず、リングトポロジ用に説明したのと同じ概念を、ここでも同様に用いてもよい。かつリングトポロジに関連する下記の説明も同様に、所与のチェーントポロジにおいて用いてもよい。リング、ハブおよびチェーントポロジの例は、単に説明のためである。このように、ネットワークは、メッセージの送信および受信を可能にする、ホスト装置と各デバイスとの間の通信経路を備えた１つ以上の他のトポロジにおいて実現してもよい。
【００４２】
ホスト装置は、（図２における）デバイス２３０、２５０、２７０、（図３における）デバイス３０４、３０６、３０８、３１０、またはデバイス（４０４、４０８、４１０）などの１つ以上のデバイスの初期化用に１つ以上のメッセージまたはコマンドを送信してもよい。デバイスの初期化は、デバイスをアクティブ状態に移行させる際のステップであってもよい。初期化には、ＰＨＹ層およびＬＩＮＫ層を含む１つ以上の層を初期化することを含んでもよい。かつ初期化は、デバイス依存の初期能力および動作値など、デバイスの動作条件を設定してもよい。
【００４３】
（図２における）ホスト装置２１０、（図３における）ホスト装置３０２、または（図４における）ホスト装置４０２などのホスト装置から送信されたメッセージは、１つ以上のパラメータの形態が可能な情報を含んでもよい。コマンドにおける情報は、初期化を開始すべきかどうかを決定するために、（図２における）デバイス２３０、２５０、２７０、（図３における）デバイス３０４、３０６、３０８、３１０、またはデバイス（４０４、４０８、４１０）などのデバイスが用いてもよい。
【００４４】
１つのパラメータには、システムの資源能力を示す資源能力パラメータを含んでもよい。システムの資源能力の一例は、ホスト装置の利用可能な資源出力であってもよい。資源能力パラメータは、いくつかの形態の１つを取ってもよい。一例として、パラメータは、電力システムが同時に初期化できる、システムのデバイスの数を表してもよい。特に、資源能力パラメータは、ホスト装置の電力システムが同時に初期化できる複数のデバイス（例えば４つのデバイス）を示してもよい。別の例として、このパラメータは、電力システムが供給できる電気的パラメータを表してもよい。例えば、資源能力パラメータは、電力システムが初期化用に出力できる総ｍＡ量（例えば４００ｍＡ）を示してもよい。
【００４５】
ホスト装置から送信されるコマンドに含み得る別のパラメータには現在の初期化パラメータを含んでもよく、この現在の初期化パラメータは、現在初期化している最中のデバイスを示す。現在の初期化パラメータは、ホスト装置および／またはデバイスが修正または調整してもよい。
【００４６】
例えば、ホスト装置２１０は、デバイス２３０、２５０、２７０のどれが初期化している最中かに関するホスト装置の現在の判定に基づいてパラメータを設定してもよい。特に、ホスト装置２１０は、現在どのデバイスが初期化している最中かを判定するために、１つ以上のステータスメッセージをデバイス２３０、２５０、２７０に送信してもよい。ホスト装置２１０は、現在初期化している最中のデバイスを反映するように現在の初期化パラメータを設定してもよい。例えば、現在初期化している最中のデバイスが存在しないとホスト装置が判定した場合、ホスト装置は、現在の初期化パラメータをゼロに設定することができる。
【００４７】
さらに、（図２におけるデバイス２３０、２５０、２７０、図３におけるデバイス３０４、３０６、３０８、３１０、または図４におけるデバイス４０４、４０６、４０８などの）デバイスの１つ以上は、現在の初期化パラメータを修正してもよい。例えば、デバイス２３０は、デバイス２３０が初期化している最中であること、またはデバイス２３０が初期化を終了したことを反映するために、現在の初期化パラメータを修正してもよい。具体的には、デバイス２３０は、初期化するためのコマンドを受信し、かつデバイス２３０が初期化を開始すべきかどうかを決定してもよい。以下でより詳細に説明するように、デバイス２３０は、それが初期化される必要があるかどうかを決定し、必要があるならば、資源能力パラメータを現在の初期化パラメータと比較して、システムの資源能力が、この時におけるデバイス２３０の初期化を可能にするかどうかを決定してもよい。初期化が必要とされ、かつシステムが、初期化する能力があると、第１のデバイス２３０が判定した場合、第１のデバイス２３０は、初期化を開始し、かつ第１のデバイス２３０が初期化し
ている最中であることを反映するために現在の初期化パラメータを修正してもよい。さらに、デバイス２３０は、デバイス２３０が初期化を完了したことを反映するために、現在の初期化パラメータを修正してもよい。第１のデバイス２３０が初期化を完了した後で、デバイス２３０は、現在の初期化パラメータにおける変更を通信するために、メッセージを送信してもよい。一例として、第１のデバイス２３０は、第１のデバイス２３０の初期化が完了したことを示すメッセージをホスト装置２１０に送信してもよく、その結果、ホスト装置２１０は、これを反映するために現在の初期化パラメータを修正し、かつ修正された現在の初期化パラメータを含む後続のブロードキャストコマンドを送信してもよい。別の例として、第１のデバイス２３０は、現在の初期化パラメータを修正し、現在の初期化パラメータにおける変更を示すメッセージをデバイス２５０、２７０および／またはホスト装置２１０に送信してもよい。さらに別の例として、デバイス２３０は、ホスト装置２１０からステータスメッセージを受信してもよい。第１のデバイス２３０が初期化している最中である場合、第１のデバイス２３０は、それが初期化を完了するまでステータスメッセージを保持し、次に、（第１のデバイス２３０が初期化を完了したことを示す更新された現在の初期化パラメータを備えた）ステータスメッセージをデバイス２５０、２７０に転送してもよい。さらに別の例として、第１のデバイス２３０は、その初期化が完了したことを示すメッセージをデバイス２５０および／または２７０に送信してもよく、その結果、デバイス２５０および／または２７０は、これを反映するために現在の初期化パラメータを修正し、かつ必要ならば初期化を開始してもよい。
【００４８】
図２に示すように、ホスト装置２１０は、資源能力パラメータおよび現在の初期化パラメータの両方を含む単一のコマンドを送信する。またはホスト装置は、資源能力パラメータおよび現在の初期化パラメータを別個のコマンドで送信してもよい。例えば、資源能力パラメータは、デバイス２３０、２５０、２７０に別々に送信し、現在の初期化パラメータを備えた別個のコマンドが受信された場合に後で使用するために記憶素子２３４、２５４、２７４に記憶してもよい。
【００４９】
実際には、ホスト装置は、初期化プロセスにおける様々な時間に１つ以上のコマンドを送信してもよい。例えば、ホスト装置２１０は、初期化を開始するコマンド、および初期化ステータスを判定する後続のコマンドを送信してもよい。リングトポロジにおいて、ホスト装置２１０は、初期化開始コマンドを第１のデバイス２３０に送信し、第１のデバイス２３０は、その初期化ステータスおよび１つ以上のパラメータを検討して、初期化を開始すべきかどうかを決定してもよい。具体的には、第１のデバイス２３０の初期化ステータスは、図７に関連してより詳細に説明するように、「初期化された」「初期化されていない」、または「初期化している最中である」であってもよい。
【００５０】
第１のデバイス２３０が「初期化された」（第１のデバイスが現在の初期化を必要としないことを意味する）場合、第１のデバイス２３０は、１つ以上のパラメータを変更せずに、コマンドを別のデバイスに送信してもよい（リングトポロジにおいて、第１のデバイス２３０は、コマンドを第２のデバイス２５０に送信してもよい）。第１のデバイス２３０が、「初期化されていない」（第１のデバイス２３０が初期化されることになることを意味する）場合、第１のデバイス２３０は、受信されたコマンドにおけるパラメータを検討して、初期化を開始すべきかどうかを決定する。第１のデバイス２３０は、現在の初期化パラメータを資源能力パラメータ（および潜在的には第１のデバイス自体の要件）と比較して、初期化を開始すべきかどうかを決定してもよい。現在の初期化パラメータが、初期化されている最中のデバイスの数を示す例、および資源能力が同時に初期化され得るデバイスの総数を示す場合、現在の初期化パラメータが資源能力パラメータ未満であるならば、これは、システムが第１のデバイス２３０を初期化し得ることを示す。システムが第１のデバイス２３０を初期化できることを比較が示す場合、第１のデバイス２３０は、初期化を開始する。現在の初期化パラメータが、デバイスを初期化するために現在引き出さ
れている総電流を示す例において、および資源能力パラメータが、初期化用にシステムが供給できる総電流を示す場合、第１のデバイス２３０は、それ自体の要件を検討して、初期化を開始すべきかどうかを決定してもよい。特に、第１のデバイス２３０は、記憶素子２３４にアクセスして、初期化する場合に第１のデバイス２３０がどれだけの電流を必要とするかを判定してもよい（１００ｍＡなど）。第１のデバイス２３０は、それが初期化用に必要とする電流量を現在の初期化パラメータに加算してもよい。第１のデバイスが初期化用に必要とする電流および現在の初期化パラメータの合計が、資源能力パラメータ以下である場合、これは、システムが第１のデバイス２３０を初期化できることを示す。
【００５１】
かつシステムが第１のデバイス２３０を現在初期化できると第１のデバイス２３０が判定した場合、第１のデバイス２３０は、コマンドにおけるパラメータの１つ以上を修正し、コマンドを別のデバイスに送信してもよい。第１のデバイス２３０は、第１のデバイス２３０が初期化している最中であることを示すために、現在の初期化パラメータなどの、コマンドにおける情報を変更してもよい。情報への変更には、算術演算を含んでもよい。例えば、以下でより詳細に説明するように、第１のデバイスは、初期化用の第１のデバイス自体の電流消費要求を現在の初期化パラメータに加算してもよい。次に、第１のデバイス２３０は、リングトポロジにおける第２のデバイス２５０にコマンドを送信してもよい。資源能力パラメータと現在の初期化パラメータの比較が、システムが第１のデバイス２３０を初期化できないことを示す場合、第１のデバイス２３０は、初期化を開始しないで、コマンドを次のデバイスに送信する。第２のデバイス２５０は、第１のデバイス２３０から送信されたコマンドを受信し、かつ第１のデバイス２３０が実行したのと同じ解析を行ってもよい。第１のデバイス２３０が「初期化している最中である」場合、第１のデバイス２３０は、それが初期化を完了するまでコマンドを保持し、それからコマンドを次のデバイスに送信してもよい。第１のデバイス２３０は、それが初期化を終了したことを反映するために、現在の初期化パラメータを修正してもよい。コマンドが、複数のデバイス２３０、２５０、２７０を通過した後で、コマンドは、ホスト装置２１０に戻ってもよい。
【００５２】
初期化開始コマンドに加え、ホスト装置は、初期化開始コマンドを送信した後で後続のコマンドを送信してもよい。後続のコマンドには、初期化ステータスを判定するステータスコマンドを含んでもよい。またはホスト装置は、次のデバイスグループ用の次の初期化コマンド、または初期化プロセス全体用の単一のコマンドを送信してもよい。ホスト装置は、コマンドに対する応答を受信し、応答を解析し、かつ１つ以上のデバイスの初期化ステータスを判定してもよい。例えば、ホスト装置は、（１つ以上のパラメータを備えたコマンドなど）自身に情報を備えた（初期化開始コマンドまたはステータスコマンドなどの）コマンドを送信してもよい。１つ以上のデバイスは、デバイスが初期化している最中である場合、（パラメータの１つ以上を修正することなど）コマンドにおける情報を修正することができる。次に、ホスト装置は、（デバイスＮもしくはデバイス２７０または３１０など）１つ以上のデバイスから送信された応答を解析して、デバイスのいずれかが初期化している最中かどうかなど、１つ以上のデバイスのステータスを判定してもよい。ホスト装置は、コマンドにおける情報を応答で受信された情報と比較して、デバイスのステータスを判定してもよい。コマンドにおける情報が、応答で受信された情報と同じである場合、ホスト装置は、どのデバイスも初期化している最中ではないと判定してもよい。なぜなら、デバイスが初期化している最中である場合には、コマンドにおける情報が修正されるからである（以下で説明する）。
【００５３】
現在の初期化パラメータおよび資源能力パラメータを用いれば、デバイスを初期化するシーケンスは、事前設定されず、コマンドにおけるこれらのパラメータに基づいて動的に決定することが可能である。かつ現場における複数のデバイスは、コマンドにおけるパラメータなどの、コマンドにおける情報を用いて、いつ初期化を開始すべきかを決定しても
よい。したがって、複数のデバイスは、いつ初期化を開始すべきかの決定に参加し、意思決定プロセスにおいて受動的ではない。これは、順次または並列初期化などの他の初期化方式、すなわちホスト装置が複数のデバイスにコマンドを送信し、複数のデバイスが、コマンドが受信された場合、受動的にコマンドに従って初期化する他の初期化方式とは異なる。これはまた、デバイスが、デバイスにおけるある事前構成ごとに初期化されて追加の労力およびコストを必要とする方法論と異なる。
【００５４】
図５および６は、ホスト装置２１０から送信されるコマンドのフォーマットを示す。特に、図５は、初期化開始コマンドを表すＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴ  ＣＣＭＤを送信する場合のフィールドを示す。
【００５５】
図５に示すように、メッセージ５００には、ヘッダ５０２、引数５０４およびペイロード５０６が含まれる。ヘッダ５０２には、送信元ＩＤ／宛先ＩＤまたはブロードキャスト指示用のフィールドを含んでもよい。引数５０４には、メッセージがＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴコマンドであるという指示などのコマンド名を含んでもよい。さらに、（「Ｙ」によって表されるような）資源能力パラメータ、および（「Ｘ」によって表されるような）現在の初期化パラメータは、ペイロードの一部であってもよい。しかしながら、図５に示すメッセージ５００は、単に説明のためである。資源能力パラメータおよび現在の初期化パラメータ、ブロードキャスト指示、ならびにコマンド指示を含む、メッセージ５００における情報は、図５に示す方法とは異なる方法で構成してもよい。
【００５６】
図６は、ステータスコマンドを表すＤＥＶＩＣＥ＿ＩＮＩＴ＿ＣＨＥＣＫ＿ＳＴＡＴＵＳ  ＣＣＭＤを送信する場合のフィールドを示す。図６に示すように、メッセージ６００には、ヘッダ５０２および引数５０４が含まれる。図５と同様に、ヘッダ５０２には、送信元ＩＤ／宛先ＩＤまたはブロードキャスト指示用のフィールドを含んでもよい。引数５０４には、メッセージが、ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＣＨＥＣＫ＿ＳＴＡＴＵＳコマンドであるという指示を含んでもよい。（「Ｙ」によって表されるような）資源能力パラメータ、および（「Ｘ」によって表されるような）現在の初期化パラメータは、メッセージ６００においてペイロードの一部である必要はない。ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴおよびＤＥＶＩＣＥ＿ＩＮＩＴ＿ＣＨＥＣＫ＿ＳＴＡＴＵＳメッセージの両方とも、ブロードキャストＣＣＭＤであってもよい。ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴメッセージは、図２に示すデバイス２３０、２５０、２７０などのデバイスグループ用のデバイス初期化を開始するトリガであってもよい。初期化方法は、ペイロード領域に記憶されたパラメータを用い、ホスト装置によってプログラムしてもよい。ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＣＨＥＣＫ＿ＳＴＡＴＵＳメッセージは、各デバイス、デバイスグループ、または全システムの初期化完了をチェックするために発行してもよい。
【００５７】
図７は、現在使用されているデバイスの数、およびシステムによってサポートできるデバイスの数によってそれぞれ表される現在の初期化パラメータおよび資源能力パラメータの一タイプを用いて初期化を開始すべきかどうかを決定するための、（図２における）デバイス２３０、２５０、２７０、（図３における）デバイス３０４、３０６、３０８、３１０、またはデバイス（４０４、４０８、４１０）などのデバイスのフローチャート７００の一例を示す。７０２において、（「Ｙ」によって表されるような）資源能力パラメータおよび（「Ｘ」によって表されるような）現在の初期化パラメータを含むコマンドを受信した後で、フローチャートはスタートする。７０４において、デバイスが現在初期化している最中かどうかが判定される。そうならば、デバイスは、（ブロック７０４にループバックする、図７におけるフローチャートによって表されるように）デバイスが初期化を完了するまでコマンドを保持してもよい。
【００５８】
７０６において、デバイスが、既に初期化されたかどうかが判定される。デバイスが既
に初期化された場合、フローチャートは、７１２に移動する。デバイスが初期化されていなかった場合、デバイスは、７０８においてＸ＜Ｙかどうかを判定する。Ｘ＝Ｙである場合、これは、資源能力が完全に利用されていること、および他のデバイスが初期化を開始できないことを反映する。合計がシステムの能力を超過しない場合、ブロック７１０で第１のデバイスを初期化してもよい。さらに、デバイスが初期化されている最中であることを反映するために、算術演算を用いて現在の初期化パラメータ（「Ｘ」）を修正してもよい。例えば、現在の初期化パラメータ「Ｘ」は、「Ｘ」が、７１０で示すように現在初期化している最中のデバイスの数を表す場合、（＋１だけ増分するなど）＋１だけ変更してもよい。次に、フローチャートは７１２に移動し、それによってデバイスは、修正された現在の初期化パラメータを備えたブロードキャストＣＣＭＤを、デバイスのＴｘポートから送信する。
【００５９】
Ｘ≧Ｙの場合、７１２において、デバイスは、不変の現在の初期化パラメータを備えたブロードキャストＣＣＭＤを、デバイスのＴｘポートから送信する。チェーントポロジを備えたシステムにおいて、コマンドは、所与の条件で、デバイス４０４からホスト装置４０２へ（上向き）に返送され、ダウンロード経路におけるデバイス４０６および４０８を通る経路を省いてもよい。図４におけるデバイス＃２  ４０６を通るショートカットは、かかる場合を示す。７１４において、フローチャートは終了する。
【００６０】
ホストおよびデバイスによってコマンドを処理する例である。この例において、デバイス１〜Ｎのどれも初期化されておらず、ホスト装置は、一度に２つのデバイスを初期化することができる。初期化を開始するために、ホスト装置は、２つのデバイスを初期化する電力能力を示す（１つ以上のパラメータを含む）情報を含むコマンドを送信してもよい。コマンドは、初期化されていないデバイス１に送信される。デバイス１は、コマンドにおける情報を検討し、それが初期化できると判定し（なぜなら、２つのデバイスが初期化できることをコマンドにおける情報が示しているからである）、初期化を開始する。次に、デバイス１は、コマンドを送信するが、コマンドにおける情報は、１つのデバイスが初期化できることを示すように修正される。初期化されていないデバイス２がコマンドを受信する。デバイス２は、コマンドにおける情報を検討し、それが初期化できると判定し（なぜなら、１つのデバイスが初期化できることをコマンドにおける情報が示しているからである）、初期化を開始する。次に、デバイス２は、コマンドを送信するが、コマンドにおける情報は、どのデバイスも初期化できないことを示すように修正される。後続のデバイス（デバイス３〜デバイスＮ）は、コマンドを受信し、それが初期化できないと判定し、コマンドを次のデバイスに転送する。最終的に、ホスト装置は、コマンドを受信する。
【００６１】
ホスト装置は、後続のコマンドをデバイスに発行してもよい。後続のコマンドには、初期化すべきかどうかをデバイスが決定するための情報を含んでもよい。ホスト装置は、後続のコマンドをデバイスに送信してもよい。デバイスが初期化している最中である場合、デバイスは、（ブロック７０４で示すように）後続のコマンドを保持してもよい。デバイスが初期化を終了した後で、デバイスは、（初期化すべきかどうかを決定するためにデバイスが必要とする情報を備えた）後続のコマンドを次のデバイスに送信してもよい。このシーケンスは、デバイスのいくつかまたは全てが初期化されるまで継続してもよい。
【００６２】
図８は、別のタイプの現在の初期化パラメータおよび資源能力パラメータを用いて初期化を開始すべきかどうかを決定するための、（図２における）デバイス２３０、２５０、２７０、（図３における）デバイス３０４、３０６、３０８、３１０、またはデバイス（４０４、４０８、４１０）などのデバイスのフローチャート８００の別の例を示す。８０２において、（「Ｙ」によって表されるような）資源能力パラメータ、および（「Ｘ」によって表されるような）現在の初期化パラメータを含むコマンドを受信した後で、フローチャートはスタートする。８０４において、デバイスが現在初期化している最中かどうか
が判定される。そうならば、デバイスは、（ブロック８０４にループバックする、図８におけるフローチャートによって表されるように）デバイスが初期化を完了するまでコマンドを保持してもよい。
【００６３】
８０６において、デバイスが、既に初期化されたかどうかが決定される。デバイスが既に初期化された場合、フローチャートは、８１４に移動する。デバイスが初期化されなかった場合、デバイスは、デバイスの初期化要件（Ｄｅｖ＿Ｉｎｉｔ＿Ｒｅｑ）にアクセスする。資源能力パラメータが、電力システムによって出力可能な総電流量などの電気的パラメータによって表される場合、デバイスは、初期化すべきかどうかを決定するために、（初期化するために必要な電流など）デバイス自体の電気的パラメータにアクセスしてもよい。Ｄｅｖ＿Ｉｎｉｔ＿Ｒｅｑにアクセスした後で、デバイスは、初期化がシステムの能力を超過するかどうかを決定してもよい。特に、デバイスは、（記憶素子２３４に記憶可能な）Ｄｅｖ＿Ｉｎｉｔ＿Ｒｅｑを現在の初期化パラメータ（「Ｘ」）に加算し、それを、ブロック８１０において資源能力パラメータ（「Ｙ」）と比較してもよい。特に、第１のデバイス２３０を初期化するための電流量が１００ｍＡであり、「Ｘ」＝２００ｍＡおよび「Ｙ」＝５００ｍＡである場合、第１のデバイス２３０は、１００ｍＡを２００ｍＡに加算してもよい（第１のデバイス２３０が初期化を開始する場合、デバイスを初期化するために現在必要な電流量）。合計３００ｍＡを５００ｍＡと比較して、それが、電力システムによって出力可能な総電流量を超過するかどうかを決定してもよい。
【００６４】
Ｘ＋Ｄｅｖ＿Ｉｎｉｔ＿Ｒｅｑ＞Ｙの場合、この時間にデバイスを初期化することは、システムの能力を超過し、その結果、フローチャートは、ブロック８１４に移動する。Ｘ＋Ｄｅｖ＿Ｉｎｉｔ＿Ｒｅｑ≦Ｙの場合、この時間にデバイスを初期化することは、システムの能力を超過せず、その結果、デバイスは、８１２において初期化を開始する。さらに、現在の初期化パラメータ（「Ｘ」）は、デバイスが初期化されている最中であることを反映するために修正してもよい。例えば、８１２において、現在の初期化パラメータ「Ｘ」は、「Ｘ」が、現在初期化している最中のデバイスによって引き出される総電流を表す場合、Ｄｅｖ＿Ｉｎｉｔ＿Ｒｅｑだけ増分してもよい。次に、フローチャートは８１４に移動し、それによって、デバイスは、修正された現在の初期化パラメータを備えたブロードキャストＣＣＭＤを、デバイスのＴｘポートから送信する。次に、フローチャート８００は、８１６で終了する。
【００６５】
図９および１０は、初期化シーケンス、すなわち、ホスト装置９１０が、（図７に示す）第１の段階においてデバイス＃１およびデバイス＃２（グループＡ）の、かつ（図８に示す）第２の段階でデバイス＃３、デバイス＃４、およびデバイス＃５（グループＢ）の初期化を開始する初期化シーケンスを示す。（図９に示す）第１の段階用に、ホスト装置９１０は、Ｘ＝０およびＹ＝２を備えたＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴを発行する（図７で説明するような方法が用いられると仮定する）。図６におけるデバイスのいずれかがブロードキャストＣＣＭＤを受信した場合、それは、ＸおよびＹをチェックする。Ｘ＜Ｙである場合、デバイスは、そのデバイスの初期化を開始し、そうでなければ何も行わない。デバイス＃１が、Ｘ＜Ｙを備えたＣＣＭＤを受信したときに、デバイス＃１は、デバイス初期化を開始し、Ｘの値を１だけ増分し、かつ更新されたブロードキャストＣＣＭＤをデバイス＃１のＴｘポートから送信する。デバイス＃２の挙動は、デバイス＃１の挙動と同じである。デバイス＃３〜デバイス＃５が、Ｘ＝Ｙ＝２を備えたブロードキャストＣＣＭＤを受信すると、デバイス＃３〜デバイス＃５は、デバイス初期化を開始しない。最後に、更新されたブロードキャストＣＣＭＤは、ホスト装置９１０に送信される。その後、ホスト装置９１０は、ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＣＨＥＣＫ＿ＳＴＡＴＵＳを発行するか、または（次のパラグラフで説明するように）次のデバイスグループ用にＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴを送信してもよい。デバイスがそれをデバイス初期化中に受信した場合、デバイスは、初期化を完了した後でコマンドを送信する。デバイスが、初期化
を開始も完了もしない場合、デバイスは、コマンドを直ちに送信することができる。
【００６６】
図１０は、デバイス初期化プロセスの例の第２の段階を示す。そのとき、ホスト装置９１０は、３つのデバイスを初期化するために、Ｘ＝０およびＹ＝３を備えたＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴを発行する。デバイス＃１がブロードキャストＣＣＭＤを受信したとき、それ自体の初期化が完了している場合、デバイス＃１は、ＣＣＭＤを次のデバイスに送信する。それがまだ初期化している最中である場合、デバイスは、それがそれ自体の初期化を完了するまでＣＣＭＤを保持し、完了するとすぐに次のデバイスにＣＣＭＤを送信する。デバイス＃２の挙動は、デバイス＃１の挙動と同じである。デバイス＃３がコマンドを受信すると、それは、Ｘ＜Ｙなのでデバイス初期化を開始する。さらに、デバイス＃３は、１だけＸを増分し、（更新された現在の初期化パラメータを備えた）更新されたコマンドを、デバイス＃３のＴｘポートから送信する。デバイス＃４およびデバイス＃５は、デバイス＃３と同じように動作する。ホスト装置９１０がコマンドを受信した後で、ホスト装置９１０は、（図９に示す第１の段階と同じである）ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＣＨＥＣＫ＿ＳＴＡＴＵＳ）を発行し、かつデバイスの総数が５であることをホスト装置９１０が既に知っているので、全てのデバイス初期化が終了したことを認識する。ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴを受信するというデバイス動作フローは、図７として要約される。一度に単一デバイスの初期化（順次初期化）の場合、またはポイントツーポイント接続におけるような単一デバイス接続の場合、ホスト装置９１０は、ＤＥＶＩＣＥ＿ＩＮＩＴ＿ＳＴＡＲＴ用にＸ＝０およびＹ＝１を設定する。
【００６７】
別の実施形態において、システムにおけるデバイスを動作させる方法が提供されるが、この方法には、記憶装置通信インターフェースを介してコマンドを受信することが含まれ、コマンドには、デバイスが使用可能な資源量の指示が含まれる。上記のように、指示は、いくつかの形態であってもよく、１つもしくは複数のパラメータまたは２つ以上のパラメータを含んでもよい。例えば、指示の形態は、システムの現在の初期化を示す現在の初期化パラメータ、および／またはシステムの少なくとも一部の資源能力を示す資源能力パラメータであってもよい。
【００６８】
方法には、さらに、資源能力パラメータおよび／または現在の初期化パラメータなど、デバイスが使用可能な資源量の指示に基づいて、デバイス用の動作を開始すべきかどうかをデバイスが決定することと、動作を開始すべきかどうかの決定に基づいてデバイスを動作させることと、を含んでもよい。
【００６９】
デバイスを動作させるための方法には、デバイスの初期化動作を含んでもよく、動作を開始すべきかどうかの決定には、初期化を開始すべきかどうかの決定が含まれる。次に、デバイスは、（資源能力パラメータおよび／または現在の初期化パラメータなど）デバイスが使用可能な資源量の指示に基づいて、初期化を開始すべきかどうかを決定してもよい。初期化用のコマンドには、資源能力パラメータおよび／または現在の初期化パラメータなど、デバイスが使用可能な資源量の指示を含んでもよく、この場合、資源能力パラメータは、システムの少なくとも一部の電力能力を用いて同時に初期化できる複数のデバイスを示す。デバイスが現在初期化している最中である場合、方法には、さらに、デバイスが初期化を完了する後まで、コマンドを別のデバイスに送信するのを待つことを含んでもよい。方法において、動作を開始すべきかどうかの決定は、資源能力パラメータ、現在の初期化パラメータ、およびデバイスの資源要件に基づいてもよい。
【００７０】
現在の初期化パラメータは、初期化用に現在利用されている合計資源用の累積値を示してもよい。かつ資源能力パラメータは、システムの少なくとも一部の総電流（ｍＡ）出力能力を示してもよい。初期化を開始すべきかどうかの決定には、初期化用のデバイスの資源要件にアクセスすること、ならびに現在の初期化パラメータ、資源能力パラメータ、お
よびデバイスの資源要件に基づいて、初期化を開始すべきかどうかを決定することを含んでもよい。
【００７１】
初期化において、デバイスは、システムの現在の動作を示す現在の動作パラメータを受信し、デバイスは、資源能力パラメータおよび現在の動作パラメータに基づいて、動作を開始すべきかどうかを決定してもよい。デバイスは、資源能力パラメータ、現在の動作パラメータ、およびデバイスの資源要件に基づいて、動作を開始すべきかどうかを決定してもよい。かつ現在の動作パラメータは、動作用に現在利用されている合計資源用の累積値を示してもよい。資源能力パラメータは、システムの少なくとも一部の総電流（ｍＡ）出力能力を示してもよい。デバイスは、動作を実行するためのデバイスの資源要件にアクセスすること、ならびに現在の動作パラメータ、資源能力パラメータおよびデバイスの資源要件に基づいて動作を開始すべきかどうかを決定することによって、動作を開始すべきかどうかを決定してもよい。
【００７２】
資源能力パラメータは、システムの少なくとも一部の電力能力を用いて動作を同時に実行できる複数のデバイスを示してもよい。デバイスが、現在動作を実行している最中である場合、デバイスは、それが動作の実行を完了する後まで、別のデバイスへコマンドを送信するのを待ってもよい。
【００７３】
別の実施形態において、記憶装置通信インターフェースおよび記憶装置通信インターフェースと通信するコントローラを含むデバイスであって、コントローラが、記憶装置通信インターフェースを介してコマンドを受信するように動作し、コマンドが、デバイスが使用可能な資源量の指示を含むデバイスが提供される。指示は、いくつかの形態であってもよく、１つもしくは複数のパラメータまたは２つ以上のパラメータを含んでもよい。例えば、指示の形態は、システムの現在の初期化を示す現在の初期化パラメータ、および／またはシステムの少なくとも一部の資源能力を示す資源能力パラメータであってもよい。
【００７４】
コントローラは、さらに、資源能力パラメータおよび／または現在の初期化パラメータなど、デバイスが使用可能な資源量の指示に基づいて、動作を開始すべきかどうかを決定するように、かつ動作を開始すべきかどうかの決定に基づいてデバイスを動作させるように、動作してもよい。
【００７５】
デバイスの動作には初期化を含んでもよく、コントローラは、初期化を開始すべきかどうかを決定するように動作する。さらに、コマンドには、現在初期化している最中の複数のデバイスを示す現在の初期化パラメータを含んでもよく、かつコントローラは、資源能力パラメータおよび現在の初期化パラメータに基づいて、初期化を開始すべきかどうかを決定するように動作してもよい。デバイスにはメモリ装置が含まれる。
【００７６】
コマンドには、資源能力パラメータおよび現在の初期化パラメータを含んでもよい。資源能力パラメータは、システムの少なくとも一部の電力能力を用いて同時に初期化できる複数のデバイスを示してもよい。かつデバイスが現在初期化している最中である場合、コントローラは、さらに、デバイスが初期化を完了する後まで、別のデバイスへコマンドを送信するのを待つように動作してもよい。
【００７７】
さらに、コントローラは、資源能力パラメータ、現在の初期化パラメータ、およびデバイスの資源要件に基づいて、動作を開始すべきかどうかを決定するように動作してもよい。かつ現在の初期化パラメータは、初期化用に現在利用されている合計資源用の累積値を示してもよい。また、資源能力パラメータは、システムの少なくとも一部の総電流（ｍＡ）出力能力を示してもよく、コントローラは、初期化用のデバイスの資源要件にアクセスすることと、現在の初期化パラメータ、資源能力パラメータ、およびデバイスの資源要件
に基づいて、初期化を開始すべきかどうかを決定することと、によって初期化を開始すべきかどうかを決定するように動作してもよい。
【００７８】
デバイスは、システムの現在の動作を示す現在の動作パラメータを受信してもよく、コントローラは、資源能力パラメータおよび現在の動作パラメータに基づいて、動作を開始すべきかどうかを決定してもよい。コントローラは、資源能力パラメータ、現在の動作パラメータ、およびデバイスの資源要件に基づいて、動作を開始すべきかどうかを決定するように構成してもよい。現在の動作パラメータは、動作用に現在利用されている合計資源用の累積値を示してもよい。かつ資源能力パラメータは、システムの少なくとも一部の総電流（ｍＡ）出力能力を示してもよく、コントローラは、動作を実行するためにデバイスの資源要件にアクセスすることと、現在の動作パラメータ、資源能力パラメータ、およびデバイスの資源要件に基づいて、動作の実行を開始すべきかどうかを決定することと、によって動作を開始すべきかどうかを決定するように動作してもよい。
【００７９】
資源能力パラメータは、システムの少なくとも一部の電力能力を用いて同時に動作を実行できる複数のデバイスを示してもよい。デバイスが現在動作を実行している最中である場合、コントローラは、さらに、デバイスが動作の実行を完了する後まで、別のデバイスへコマンドを送信するのを待つように構成してもよい。
【００８０】
さらに別の実施形態には、ホスト装置がシステムの少なくとも一部の初期化を制御する方法が含まれ、この方法には、ホスト装置によってコマンドを生成することが含まれ、このコマンドは、デバイスに初期化するように命令することと、システムの少なくとも一部の資源能力を示す資源能力パラメータなど、システムにおける１つ以上のデバイスが使用可能な資源量の指示を含むことと、を示す。方法には、さらに、ホスト装置通信インターフェースを用いて、ホスト装置からコマンドを送信することが含まれる。
【００８１】
方法におけるコマンドには、システムの現在の初期化を示す現在の初期化パラメータを含んでもよい。資源能力パラメータは、システムの少なくとも一部の電力能力を用いて同時に初期化できる複数のデバイスを示してもよく、現在の初期化パラメータは、システムにおいて現在初期化している最中の複数のデバイスを示してもよい。現在の初期化パラメータは、システムの初期化用に現在利用されている合計資源用の累積値を示してもよい。
【００８２】
方法は、ホスト装置および複数のデバイスを含むシステム用に用いてもよい。かつ方法において用いられるコマンドには、複数のデバイスへのブロードキャストコマンドを含んでもよい。システムには、リング、ハブおよびチェーンからなる群から選択されるトポロジなどのトポロジを含んでもよい。
【００８３】
方法には、システムにおけるデバイスの初期化完了を評価するためのステータスコマンドを生成することと、ホスト装置通信インターフェースを用いて、ステータスコマンドを送信することと、を含んでもよい。
【００８４】
別の実施形態は、通信インターフェース、および通信インターフェースと通信するコントローラを含むホスト装置に関し、コントローラは、コマンドを生成するように動作し、このコマンドは、デバイスに初期化するように命令することと、システムの少なくとも一部の資源能力を示す資源能力パラメータなど、システムにおける１つ以上のデバイスが使用可能な資源量の指示を含むことと、を示す。コントローラは、さらに、通信インターフェースを用いて、ホスト装置からコマンドを送信するように動作する。
【００８５】
ホスト装置から送信されるコマンドには、さらに、システムの現在の初期化を示す現在の初期化パラメータを含んでもよい。資源能力パラメータは、システムの少なくとも一部
の電力能力を用いて同時に初期化できる複数のデバイスを示してもよく、現在の初期化パラメータは、システムにおいて現在初期化している最中の複数のデバイスを示してもよい。現在の初期化パラメータは、初期化用に現在利用されている合計資源用の累積値を示してもよい。
【００８６】
ホスト装置から送信されるコマンドには、複数のデバイスへのブロードキャストコマンドを含んでもよい。かつ複数のデバイスは、トポロジに配置してもよく、トポロジは、リング、ハブおよびチェーンからなる群から選択してもよい。
【００８７】
ホスト装置におけるコントローラは、さらに、どのデバイスが現在初期化している最中かを評価するためのステータスコマンドを生成するように、および通信インターフェースを用いてステータスコマンドを送信するように動作してもよい。さらに、ホスト装置におけるコントローラは、システムにおける複数のデバイスへの初期化開始コマンド、および初期化の終わりにおける複数のデバイスへのステータスコマンドを送信するように動作してもよく、複数のデバイスは、それぞれのデバイスの初期化完了まで、初期化開始コマンドを自動的に保持してもよい。
【００８８】
ホスト装置におけるコントローラは、デバイスが現在初期化している最中かどうかにかかわらず、システムにおけるデバイスに初期化開始コマンドを送信するように動作してもよく、デバイスが、初期化開始コマンドを受信したときに、現在初期化中である場合、デバイスは、それが初期化を完了する後まで待ち、その後、システムにおける別のデバイスへ初期化開始コマンドを送信してもよい。
【００８９】
前述の詳細な説明が、本発明の定義ではなく、本発明が取り得る選択された形態の例として理解されるように意図されている。本発明の範囲を定義するように意図されているのは、全ての均等物を含めて特許請求の範囲だけである。
【図１】
2013513871.tif 000003
【図２】
2013513871.tif 000004
【図３】
2013513871.tif 000005
【図４】
2013513871.tif 000006
【図５】
2013513871.tif 000007
【図６】
2013513871.tif 000008
【図７】
2013513871.tif 000009
【図８】
2013513871.tif 000010
【図９】
2013513871.tif 000011
【図１０】
2013513871.tif 000012
【国際調査報告】
2013513871.tif 000013
2013513871.tif 000014