(57)【要約】      （修正有）【課題】自動テスト（ＡＴＥ）装置を制御する技術を提供する。【解決手段】非集中化ストレージ環境においてデバイスを制御する方法は、ネットワーク内の複数のデバイスを、それぞれが複数のデバイスのサブセットを有する複数のスーパーセルに分割し、各スーパーセルについて、システムコントローラが、当該スーパーセル内のメンバデバイスを制御する中核デバイスに指名する。システムコントローラは、特定タスクに関連付けられたコマンドを中核デバイスへ送信し、特定タスクの実行に関する情報を中核デバイスから受信する。【選択図】図９
2020102192.tif 000002
【特許請求の範囲】
【請求項１】
非集中化環境においてデバイスを制御する方法であって、
ネットワーク内の複数のデバイスを、それぞれが前記複数のデバイスのサブセットを有する複数のスーパーセルに分割することと、
各スーパーセルについて、
当該スーパーセル内のデバイスを、当該スーパーセル内のメンバデバイスを制御する中核デバイスに指名することと、
特定タスクに関連付けられたコマンドを前記中核デバイスへ送信することであって、前記中核デバイスは前記メンバデバイスと通信し、前記メンバデバイスが前記特定タスクの一部を実行するように構成する、送信することと、
前記特定タスクの実行に関する情報を前記中核デバイスから受信することであって、前記情報は、前記特定タスクの各部分の実行に関連付けられた前記スーパーセルの前記メンバデバイスから集約した情報を含む、受信することと
を備える方法。
【請求項２】
前記複数のデバイスは、ソリッドステートデバイス（ＳＳＤ）を含む請求項１に記載の方法。
【請求項３】
前記複数のデバイスは、被試験デバイス（ＤＵＴ）である請求項１または２に記載の方法。
【請求項４】
前記ネットワークは、複数のプリミティブに通信可能に接続されたシステムコントローラを備える自動テスト装置（ＡＴＥ）フレームワークであり、
前記複数のプリミティブは、前記複数のデバイスに通信可能に接続されて前記複数のデバイスをテストするように構成され、
前記複数のプリミティブのそれぞれは、前記複数のデバイスのサブセットと通信してテストするように構成される
請求項３に記載の方法。
【請求項５】
前記複数のプリミティブの各プリミティブに接続された前記複数のデバイスのそれぞれのサブセットは、スーパーセルを有する請求項４に記載の方法。
【請求項６】
前記分割、前記指名、前記送信、および前記受信は、前記システムコントローラにより実行され、
前記システムコントローラは、有線のＰＣＩｅバックボーンを介して、前記複数のスーパーセルの各中核デバイスにコマンド情報を通信するように構成される
請求項４または５に記載の方法。
【請求項７】
前記分割、前記指名、前記送信、および前記受信は、前記システムコントローラにより実行され、
前記システムコントローラは、無線ネットワーク上のノードホッピングを用いて前記複数のスーパーセルの各中核デバイスにコマンド情報を通信するように構成される
請求項４または５に記載の方法。
【請求項８】
前記ネットワークは、クラウドコンピューティングネットワークであり、前記複数のデバイスは前記クラウドコンピューティングネットワーク内のＳＳＤである請求項１に記載の方法。
【請求項９】
前記指名は、予め定められた基準のセットに基づいて前記中核デバイスを選択することを含む請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記予め定められた基準のセットは、デバイスの処理能力、デバイスの実行履歴、およびデバイスのストレージ容量からなるグループから選択される請求項９に記載の方法。
【請求項１１】
前記指名は、前記スーパーセルの前記メンバデバイスの間での選択プロセスに基づいて前記中核デバイスを選択することを備える請求項１から８のいずれか一項に記載の方法。
【請求項１２】
前記メンバデバイスは、無線ネットワークを介して前記中核デバイスと通信するように構成される請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
前記中核デバイスは、前記複数のスーパーセルのうち隣接スーパーセルから追加のメンバデバイスをそれぞれのスーパーセルに追加するように構成される請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
スーパーセルごとに、
中核デバイスが故障しているとの決定に応じて、前記スーパーセル内の前記メンバデバイスのうちの１つを、中核デバイスの地位に昇進させる
ことをさらに備える請求項１から１３のいずれか一項に記載の方法。
【請求項１５】
前記メンバデバイスは、各スーパーセルの前記中核デバイスと排他的に通信するように構成される請求項１から１４のいずれか一項に記載の方法。
【請求項１６】
ネットワーク内の複数のデバイスを、それぞれが前記複数のデバイスのサブセットを有する複数のスーパーセルに分割する動作を行うことができるシステムコントローラと、
前記システムコントローラと前記複数のスーパーセルとの間を通信可能とする動作を行うことができるバックボーンと、
各スーパーセルが当該スーパーセル内のメンバデバイスから指名された中核デバイスを有する前記複数のスーパーセルと
を備え、
前記中核デバイスは、
特定タスクに関連付けられた前記システムコントローラからコマンドを受信し、
前記スーパーセル内の前記メンバデバイスの間で前記特定タスクを配分し、
前記特定タスクの実行に関する情報を前記メンバデバイスから集約し、
前記情報を前記システムコントローラへ通信する
ように構成される非集中化ストレージシステム。
【請求項１７】
前記複数のデバイスは、ソリッドステートデバイス（ＳＳＤ）を含む請求項１６に記載の非集中化ストレージシステム。
【請求項１８】
前記複数のスーパーセルの各スーパーセルは、ＡＴＥフレームワークのプリミティブに関連付けられ、
前記ＡＴＥフレームワークの各プリミティブは、前記複数のデバイスのそれぞれのサブセットのテストを制御する
請求項１６または１７に記載の非集中化ストレージシステム。
【請求項１９】
前記ネットワークは、クラウドコンピューティングネットワークであり、前記複数のデバイスは前記クラウドコンピューティングネットワーク内のＳＳＤである請求項１６または１７に記載の非集中化ストレージシステム。
【請求項２０】
前記中核デバイスは、無線ネットワークを介して前記メンバデバイスと通信する請求項１６から１９のいずれか一項に記載の非集中化ストレージシステム。
【請求項２１】
前記中核デバイスは、前記バックボーンを介して前記システムコントローラと通信する請求項１６から１９のいずれか一項に記載の非集中化ストレージシステム。
【請求項２２】
前記中核デバイスは、ノードホッピングを介して無線ネットワーク上で前記システムコントローラと通信し、
前記バックボーンは、ストレージデータに関連する情報を通信するように動作可能である
請求項１６から２０のいずれか一項に記載の非集中化ストレージシステム。
【請求項２３】
各スーパーセルが複数のメンバデバイスを有し、前記複数のメンバデバイスの間から選択された中核デバイスが前記複数のメンバデバイスと通信して制御するように動作可能な複数のスーパーセルと、
前記複数のスーパーセルのそれぞれに関連付けられた中核デバイスと排他的に通信するように動作可能であり、構成およびコマンド情報を、前記複数のスーパーセルのそれぞれに関連付けられた前記中核デバイスと交換するシステムコントローラと、
前記複数のスーパーセルを前記システムコントローラに通信可能に接続するように動作可能であり、前記システムコントローラと前記複数のスーパーセルのそれぞれに関連付けられた前記中核デバイスとの間でコマンドおよび構成情報を通信し、前記システムコントローラと前記複数のスーパーセルのそれぞれ内の前記複数のメンバデバイスとの間でストレージデータを通信するために用いられるバックボーンと
を備え、
前記システムコントローラは、特定タスクに関連付けられたコマンドを前記複数のスーパーセルのそれぞれに関連付けられた前記中核デバイスへと通信し、
関連付けられた前記中核デバイスは、各スーパーセルのメンバデバイスが前記特定タスクの一部を実行するように構成する
非集中化ストレージネットワーク。
【請求項２４】
前記複数のスーパーセルのそれぞれのメンバデバイスは、各スーパーセルの前記関連付けられた中核デバイスと排他的に通信するように構成される請求項２３に記載の非集中化ストレージネットワーク。
【請求項２５】
前記複数のメンバデバイスは、ソリッドステートデバイス（ＳＳＤ）を含む請求項２３または２４に記載の非集中化ストレージネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、自動テスト装置の分野に関し、より具体的には、そのような装置を制御する技術に関する。
【背景技術】
【０００２】
自動テスト装置（ＡＴＥ）は、半導体ウエハ若しくはダイ、集積回路（ＩＣ）、回路基板、またはソリッドステートドライブ（ＳＳＤ）などのパッケージ化されたデバイスに対してテストを行う、任意のテストアセンブリであってよい。ＡＴＥアセンブリは、測定を迅速に行う自動テストを実行し、その後解析され得るテスト結果を生成するのに用いられてよい。ＡＴＥアセンブリは、計測器に接続されたコンピュータシステムから、システムオンチップ（ＳＯＣ）のテストまたは集積回路のテストなどの、電子部品および／または半導体ウエハのテストを自動的に行うことが可能である、カスタムの専用コンピュータ制御システムおよび多くの異なるテスト機器を含みうる複雑な自動テストアセンブリまでのいずれであってもよい。ＡＴＥシステムは、デバイスが設計通りに機能することを保証するためにデバイスをテストするのに費やされる時間を低減すると共に、与えられたデバイスが消費者に届く前に、その中に欠陥部品が存在していないかを判定する診断ツールとして機能する。
【０００３】
ＡＴＥシステムは、ＡＴＥシステムの動作を指揮するコンピュータまたはシステムコントローラデバイスを含むのが一般的である。通常、コンピュータは、（ｉ）テスト開発環境、および（ｉｉ）デバイステスト環境を提供する１つ若しくは複数の専用のソフトウェアプログラムを実行する。テスト開発環境においては、ユーザは通常、例えばＡＴＥシステムの様々な部分を制御する１または複数のファイルのようなソフトウェアベースの構成体であるテストプログラムを作成する。デバイステスト環境においては、ユーザは通常、テストのために１または複数のデバイスをＡＴＥシステムに提供し、テストプログラムにしたがって各デバイスをテストすることをシステムコントローラに指示する。ユーザは、追加のデバイスをＡＴＥシステムに提供し、ＡＴＥシステムがテストプログラムにしたがって追加のデバイスをテストすることを指示するだけで、追加のデバイスをテストすることができる。したがって、ＡＴＥシステムは、テストプログラムに基づいて、ユーザが、多くデバイスを一貫した自動化方式でテストすることを可能にする。
【０００４】
現在、ＡＴＥシステムでＳＳＤストレージデバイスのセットまたはアレイがテスト中の場合、各ストレージデバイスは、システムコントローラからデバイスへの別個の通信チャネルを用いて通信する。これは、システムコントローラに接続されるプライマリ通信チャネルを経由する必要がある大量のトラフィックを発生する。通常、これは、ＰＣＩｅバックボーンか何かで有り得る。このことは、システムコントローラにおけるプライマリ通信接続部におけるボトルネックを発生させうる。また、システムコントローラが同じコマンドをセット内の各個別デバイスに送信する必要がある場合（セットを再利用すること、暗号化を確立すること、デバイスをリセットすることなどのために）、コマンドおよびデータが複製されて、システムコントローラから各デバイスへと渡されるので、通信機構は非効率になる。このトポロジーは非常に非効率になり、システムの全体性能および効率を低下させるチャネルボトルネックの問題を発生させる。
【０００５】
同様の問題は、中央制御システムを有するエンタープライズまたは他のタイプのクラウドベースのストレージシステムにおいても発生する。ストリーミングサービス、クラウドストレージサービス、ソーシャルネットワーキングなどが出現してから、クラウドコンピューティングの市場は、非常に増加した。データは、大量のデータの記憶、処理、または分散のための、ネットワーク接続されたサーバの大きなグループを備えるデータセンタに格納される。データは、相互接続されたハードドライブのアレイを用いたクラウドコンピューティングシステムに格納される。ハードドライブの業界で現在用いられる典型的なストレージプロトコルは、ＮＶＭｅ、ＳＡＳ、およびＳＡＴＡである。集中制御されるクラウドコンピューティングシステムにおける１つの課題は、デバイスの構成および制御に関連するトラフィックが、格納されるべきデータに関連するトラフィックと同じバンドで通信される必要があることである。通常、制御サーバは、クラウドベースのシステム内の各デバイスを構成および制御するために、各デバイスと通信可能である必要があるであろう。これは、オーバヘッドによってデータバンド幅が低減される結果を生じる。
【０００６】
さらに、従来のクラウドコンピューティングシステムに関連付けられた別の課題は、クラウドコンピューティングシステム内のデバイスまたはハードドライブが故障し、またはメンテナンスを受けている場合、メンテナンスまたは故障に関する情報は、通常、タイムリーに制御サーバに通信されないことである。あるいは、制御サーバは、メンテナンスを受けている、または故障の各デバイスに時間内に応答するのに十分なリソースを有していない可能性がある。このことは、従来のクラウドコンピューティングシステムを信頼性がより低いものにする。
【発明の概要】
【０００７】
したがって、例えばＳＳＤデバイスのような各デバイスの制御をＡＴＥフレームワーク全体に分散したテスト環境へのニーズが存在する。さらに、ＡＴＥシステム内の各デバイスに対して、システムコントローラと各デバイスとの間で個別のチャネルを要求することなくコマンドを送信することができるテスト環境が必要である。これに加えて、構成および制御のトラフィックをデータトラフィックの帯域外で通信するクラウドコンピューティングシステムが必要である。また、メンテナンスまたは故障の間でさえデバイスに関連付けられたデータを容易にアクセスできるクラウドコンピューティングシステムが必要である。説明されるシステムの有益な態様を用いることで、本発明の実施形態は、そのような態様のそれぞれに限定することなくこれら課題に対処する新規の解決手段を提供する。
【０００８】
本発明の実施形態は、（ＡＴＥフレームワーク内またはクラウドコンピューティングシステム内の）ハードドライブのサブセットが、サブセット内のデバイス（例えばＳＳＤデバイス）のうちの１つを、中核またはサブコントローラデバイスとして選択することを可能とすることにより、従来のシステムの欠点に対処する。換言すれば、ＡＴＥフレームワークまたはクラウドコンピューティングシステム全体は、デバイスのサブセット（「スーパーセル」とも称する。）を多数有し、各スーパーセル内で中核であると指定されたデバイスが、各サブセットまたはスーパーセルを制御する。
【０００９】
１つの実施形態において、中核は、スーパーセル内の他のデバイスと直接通信して直接制御することが可能である。これは、システムコントローラを、各デバイスを独立に制御する必要から解放する。本発明の一実施形態において、システムコントローラは、命令またはデータを中核に直接送ってよく、その場合中核は、（システムコントローラから受信された命令にしたがって）コマンド、ステータス、データ、または構成情報を、いずれの情報もシステムコントローラから発信することなくスーパーセルの他のデバイスとの間で直接通信することができる。このことは、ボトルネックの問題を軽減し、また、システムコントローラが直接スーパーセル内の各ハードドライブに対してコマンドを複製するいかなる必要性も軽減する。さらに、中核は通常システムのデバイスのサブセットのみを制御するであろうし、それらのデバイスに近接しているであろうから、それらのデバイスのいずれかについての故障またはメンテナンスに関する情報は容易に取得することができる。さらに、中核は、（システムコントローラよりも）近接しておりオーバヘッドが低いので、自身のスーパーセル内の、故障またはメンテナンスを受けているデバイスに対してより容易に応答することができる。
【００１０】
非集中化ストレージ環境においてデバイスを制御する方法は、ネットワーク内の複数のデバイスを、それぞれが複数のデバイスのサブセットを有する複数のスーパーセルに分割することを備える。各スーパーセルについて、システムコントローラは、当該スーパーセル内のデバイスを、当該スーパーセル内のメンバデバイスを制御する中核デバイスに指名するように構成される。システムコントローラは、さらに、特定タスクに関連付けられたコマンドを中核デバイスへ送信し、特定タスクの実行に関する情報を中核デバイスから受信するように構成され、情報は、スーパーセルのメンバデバイスから集約した、特定タスクの各部分の実行に関連付けられた情報を含む。
【００１１】
非集中化ストレージシステムは、ネットワーク内の複数のデバイスを、それぞれが複数のデバイスのサブセットを有する複数のスーパーセルに分割する動作を行うことができるシステムコントローラを備える。システムは、さらに、システムコントローラと複数のスーパーセルとの間を通信可能とする動作を行うことができるバックボーンを備える。さらに、システムは、各スーパーセルが当該スーパーセル内のメンバデバイスから指名された中核デバイスを有する複数のスーパーセルを備え、中核デバイスは、（ａ）特定タスクに関連付けられたシステムコントローラからコマンドを受信し、（ｂ）スーパーセル内のメンバデバイスの間で特定タスクを配分し、（ｃ）特定タスクの実行に関する情報をメンバデバイスから集約し、（ｄ）情報をシステムコントローラへ通信するように構成される。
【００１２】
添付図面と共に以下の詳細な説明が、本発明の本質および利点に関する、さらなる理解を提供するであろう。
【図面の簡単な説明】
【００１３】
本発明の実施形態が、限定するためでなく例として添付図面の各図に示される。これらの図面において、同様の参照番号は同様の要素を指す。
【００１４】
【図１】本発明の一実施形態に係る、本発明の非集中化ストレージ環境の実施形態が実装され得るコンピュータシステムである。
【００１５】
【図２】制御された環境チャンバにＤＵＴが配置される典型的なテスト環境を示す。
【００１６】
【図３】テスタスライスと、システムコントローラおよびＤＵＴとのその相互接続とについての例示的な実施形態を示す詳細な概略ブロック図である。
【００１７】
【図４Ａ】本発明の一実施形態に係る、ＤＵＴインタフェースボード（ＤＩＢ）４００とインタフェースで接続されるプリミティブを示す。
【００１８】
【図４Ｂ】複数のプリミティブを備えるワークセルを示す。
【００１９】
【図５】本発明の一実施形態に係る、２つスーパーセルを含む例示的な分散ネットワークトポロジーを示す。
【００２０】
【図６】本発明の一実施形態に係る、４つスーパーセルを含む他の例示的な分散ネットワークトポロジーを示す。
【００２１】
【図７】本発明の一実施形態に係る、構成コマンドがシステムコントローラからスーパーセル内の中核デバイスへと無線により通信される例示的な分散ネットワークトポロジーを示す。
【００２２】
【図８】本発明の一実施形態に係る、ＡＴＥフレームワーク内でスーパーセルを用いてテストを実行する構成を示す。
【００２３】
【図９】本発明の一実施形態に係る、分散ストレージ環境においてデバイスを制御する例示的なコンピュータ実装プロセスのフローチャートを示す。
【発明を実施するための形態】
【００２４】
ここで、本開示の様々な実施形態が詳細に参照されることになり、これらの実施形態の実施例が添付図面に示されている。実施例がこれらの実施形態と共に説明されるが、本開示がこれらの実施形態に限定されることは意図していないことが理解されるであろう。反対に、本開示は、添付の特許請求の範囲によって定義される本開示の主旨および範囲内に含まれ得る代替例、修正例、および均等物をカバーすることが意図される。さらに、本開示の以下の詳細な説明では、本開示への深い理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、本開示は、これらの具体的な詳細を用いずに実施され得ることが理解されるであろう。他の例では、本開示の態様を不必要に曖昧にしないよう、周知の方法、手順、コンポーネント、および回路は詳細には説明されていない。
【００２５】
以下の詳細な説明のいくつかの部分は、手順、論理ブロック、処理、および、コンピュータメモリ内のデータビットに対する演算の他の記号表現の観点から提示される。これらの説明および表現は、データ処理分野の当業者によって、彼らの研究の本質を他の当業者に最も効果的に伝えるために使用される手段である。本出願において、手順、論理ブロック、プロセス、または同様のものは、所望の結果をもたらす首尾一貫した一連の段階または命令であると考えられる。これらの段階は、物理量の物理的操作を利用するものである。通常、必ずではないが、これらの量は、コンピュータシステムにおいて格納され、転送され、組み合わせられ、比較され、および、そうでなければ操作されることが可能な電気信号または磁気信号の形をとる。これらの信号を、トランザクション、ビット、値、要素、記号、文字、サンプル、ピクセルなどと呼ぶことが、主に一般的に用いられているという理由で、場合によっては便利であると分かっている。
【００２６】
しかしながら、これらのおよび同様の用語の全ては、適切な物理量と関連付けられるべきであり、これらの量に適用される便宜的なラベルに過ぎないことが留意されるべきである。別途具体的に述べられない限り、以下の説明から明らかなように、本開示を通じて、「分割する」、「指名する」、「送信する」、「受信する」、「構成する」、「提供する」、「実行する」、「取得する」、「実装する」、「プログラムする」「割り当てる」、「関連付ける」、「設定する」、「アクセスする」、「制御する」、「判断する」、「識別する」、「維持する」、「読み出す」、「書き込む」、または同様のものなどの用語を利用する説明は、コンピュータシステムまたは同様の電子コンピューティングデバイスもしくはプロセッサ（例えば、図１のシステム１１０）の動作およびプロセス（例えば、図９のフローチャート９００）を指すことを理解されたい。コンピュータシステムまたは同様の電子コンピューティングデバイスは、コンピュータシステムメモリ、レジスタ、もしくは、他のそのような情報記憶デバイス、送信デバイス、またはディスプレイデバイス内で物理（電子）量として表されるデータを操作および変換する。
【００２７】
本明細書において説明される実施形態は、１または複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどの何らかの形式のコンピュータ可読記憶媒体に存在するコンピュータ実行可能命令の一般的文脈において説明されてよい。限定としてではなく例として、コンピュータ可読記憶媒体は、非一時的コンピュータ可読記憶媒体および通信媒体を含んでよく、非一時的コンピュータ可読媒体は、一時的な伝播信号を除く全てのコンピュータ可読媒体を含む。概して、プログラムモジュールは、特定のタスクを行い、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態において要望通りに組み合わせられ、または分散されてよい。
【００２８】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの、情報の記憶のための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体は、限定されないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を格納するために使用でき、該情報を読み出すためにアクセスできる任意の他の媒体を含む。
【００２９】
通信媒体は、コンピュータ実行可能命令、データ構造、およびプログラムモジュールを具現化でき、任意の情報配信媒体を含む。限定としてではなく例として、通信媒体は、有線ネットワークもしくは直接有線接続などの有線媒体、ならびに、音波、無線周波数（ＲＦ）、赤外線などの無線媒体、および他の無線媒体を含む。上記のうちの任意のものの組合せもまた、コンピュータ可読媒体の範囲内に含まれ得る。
【００３０】
図１は、本発明の一実施形態に係る、本発明の非集中化ストレージ環境の実施形態が実装され得るコンピュータシステム１１０である。
【００３１】
一実施形態において、システム１１０は、システムコントローラ（または制御サーバ）の機能を実行してよい。システム１１０は、コンピュータ可読命令を実行することが可能な任意のシングルプロセッサまたはマルチプロセッサのコンピューティングデバイスまたはシステムを幅広く表す。制御システム１１０の例は、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、または、任意の他のコンピューティングシステムもしくはデバイスを含むが、それらに限定されない。その最も基本的な構成において、制御システム１１０は、少なくとも１つのプロセッサ１１４とシステムメモリ１１６とを含んでよい。
【００３２】
プロセッサ１１４は、データを処理すること、または命令を解釈および実行することが可能なあらゆる種類または形態の処理ユニットを概して表す。特定の実施形態において、プロセッサ１１４は、ソフトウェアアプリケーションまたはモジュールから命令を受信してよい。これらの命令は、本明細書において説明および／または示される例示的な実施形態のうちの１または複数のものの機能をプロセッサ１１４に行わせてよい。
【００３３】
システムメモリ１１６は、データおよび／または他のコンピュータ可読命令を格納することが可能なあらゆる種類または形態の揮発性もしくは不揮発性記憶デバイスまたは媒体を概して表す。システムメモリ１１６の例は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、または任意の他の適切なメモリデバイスを含むが、それらに限定されない。必須ではないが、特定の実施形態では、制御システム１１０は、揮発性メモリユニット（例えばシステムメモリ１１６など）および不揮発性記憶デバイス（例えば主記憶デバイス１３２など）の両方を含んでよい。
【００３４】
テスタ制御システム１１０は、プロセッサ１１４およびシステムメモリ１１６に加えて、１つまたは複数のコンポーネントまたは要素も含んでよい。例えば、図１の実施形態において、制御システム１１０は、メモリコントローラ１１８、入力／出力（Ｉ／Ｏ）コントローラ１２０、および通信インタフェース１２２を含み、これらはそれぞれ、通信インフラストラクチャ１１２を介して相互接続されてよい。通信インフラストラクチャ１１２は概して、コンピューティングデバイスの１つまたは複数のコンポーネント間の通信を促進することが可能な、あらゆる種類または形態のインフラストラクチャを表す。通信インフラストラクチャ１１２の例は、通信バス（業界標準アーキテクチャ（ＩＳＡ）、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、もしくは同様のバスなど）、およびネットワークを含むが、それらに限定されない。
【００３５】
メモリコントローラ１１８は概して、メモリ若しくはデータを扱うことが可能な、または制御システム１１０の１つ若しくは複数のコンポーネント間の通信を制御することが可能な、あらゆる種類または形態の装置を表す。例えば、メモリコントローラ１１８は、通信インフラストラクチャ１１２を介して、プロセッサ１１４、システムメモリ１１６、およびＩ／Ｏコントローラ１２０の間の通信を制御してよい。
【００３６】
Ｉ／Ｏコントローラ１２０は、コンピューティングデバイスの入力機能および出力機能を調整および／または制御することが可能なあらゆる種類または形態のモジュールを概して表す。例えば、Ｉ／Ｏコントローラ１２０は、プロセッサ１１４、システムメモリ１１６、通信インタフェース１２２、ディスプレイアダプタ１２６、入力インタフェース１３０、およびストレージインタフェース１３４などの制御システム１１０の１または複数の要素の間のデータ転送を制御してよく、または促進してよい。
【００３７】
通信インタフェース１２２は、例示的な制御システム１１０と１または複数の追加のデバイスとの間の通信を促進することが可能な、あらゆる種類または形態の通信デバイスまたはアダプタを概して表す。例えば、通信インタフェース１２２は、制御システム１１０と、追加の制御システムを含むプライベートネットワークまたはパブリックネットワークとの間の通信を促進してよい。通信インタフェース１２２の例は、有線ネットワークインタフェース（ネットワークインタフェースカードなど）、無線ネットワークインタフェース（無線ネットワークインタフェースカードなど）、モデム、および任意の他の適切なインタフェースを含むが、それらに限定されない。１つの実施形態において、通信インタフェース１２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供する。通信インタフェース１２２はまた、任意の他の適切な接続を通じてそのような接続を間接的に提供してよい。
【００３８】
通信インタフェース１２２はまた、外部バスまたは通信チャネルを介して、制御システム１１０と、１または複数の追加のネットワークまたは記憶デバイスとの間の通信を促進するよう構成されるホストアダプタを表してよい。ホストアダプタの例は、スモールコンピュータシステムインタフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、ＩＥＥＥ（米国電気電子技術者協会）１３９４ホストアダプタ、シリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）および外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、アドバンスドテクノロジアタッチメント（ＡＴＡ）およびパラレルＡＴＡ（ＰＡＴＡ）ホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネット（登録商標）アダプタ、または同様のものを含むが、それらに限定されない。通信インタフェース１２２はまた、制御システム１１０が分散コンピューティングまたはリモートコンピューティングに携わることを可能にしてよい。例えば、通信インタフェース１２２は、リモートデバイスから命令を受信してよく、または、実行のために命令をリモートデバイスに送信してよい。
【００３９】
図１に示すように、制御システム１１０はまた、ディスプレイアダプタ１２６を介して通信インフラストラクチャ１１２に接続される少なくとも１つのディスプレイデバイス１２４を備えてよい。ディスプレイデバイス１２４は、ディスプレイアダプタ１２６によって転送された情報を視覚的に表示することが可能なあらゆる種類または形態のデバイスを概して表す。同様に、ディスプレイアダプタ１２６は、ディスプレイデバイス１２４上で表示するために、グラフィックス、テキスト、および他のデータを転送するよう構成されるあらゆる種類または形態のデバイスを概して表す。
【００４０】
図１に示すように、制御システム１１０はまた、入力インタフェース１３０を介して通信インフラストラクチャ１１２に接続される少なくとも１つの入力デバイス１２８を備えてよい。入力デバイス１２８は、コンピュータまたは人間のいずれかが生成した入力を制御システム１１０に提供することが可能なあらゆる種類または形態の入力デバイスを概して表す。入力デバイス１２８の例は、キーボード、ポインティングデバイス、音声認識デバイス、または任意の他の入力デバイスを含むが、それらに限定されない。
【００４１】
図１に示すように、制御システム１１０はまた、ストレージインタフェース１３４を介して通信インフラストラクチャ１１２に接続される主記憶デバイス１３２およびバックアップ記憶デバイス１３３を含んでよい。記憶デバイス１３２および１３３は、データおよび／または他のコンピュータ可読命令を格納することが可能なあらゆる種類または形態の記憶デバイスまたは媒体を概して表す。例えば、記憶デバイス１３２および１３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、または同様のものであってよい。ストレージインタフェース１３４は、記憶デバイス１３２および１３３と、制御システム１１０の他の構成要素との間でデータを転送するためのあらゆる種類または形態のインタフェースまたはデバイスを概して表す。
【００４２】
１つの例において、データベース１４０が、主記憶デバイス１３２に格納されてよい。データベース１４０は、単一のデータベースまたはコンピューティングデバイスの一部を表してよく、複数のデータベースまたはコンピューティングデバイスを表してもよい。例えば、データベース１４０は、制御システム１１０の一部、および／または、（下記の）図２の例示的ネットワークアーキテクチャ２００の一部を表して（に格納されて）よい。あるいは、データベース１４０は、制御システム１１０および／またはネットワークアーキテクチャ２００の一部などのコンピューティングデバイスがアクセス可能な１または複数の物理的に別個のデバイスを表して（に格納されて）よい。
【００４３】
引き続き図１を参照すると、記憶デバイス１３２および１３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を格納するよう構成される取り外し可能記憶ユニットから読み出す、および／またはそれに書き込むよう構成されてよい。好適な取り外し可能記憶ユニットの例は、フロッピー（登録商標）ディスク、磁気テープ、光ディスク、フラッシュメモリデバイス、または同様のものを含むが、それらに限定されない。記憶デバイス１３２および１３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を制御システム１１０にロードすることを可能にするための、他の類似の構造またはデバイスを含んでもよい。例えば、記憶デバイス１３２および１３３は、ソフトウェア、データ、または他のコンピュータ可読情報を読み出し、書き込むように構成されてよい。記憶デバイス１３２および１３３は、制御システム１１０の一部であってもよく、または、他のインタフェースシステムを通じてアクセスされる別個のデバイスであってよい。
【００４４】
多くの他のデバイスまたはサブシステムが、制御システム１１０に接続されてよい。逆に、本明細書において説明される実施形態を実施するために、図１に示される構成要素およびデバイスの全てが存在する必要はない。上述したデバイスおよびサブシステムは、図１に示したものとは異なる方法で相互接続されてもよい。制御システム１１０は、任意の数のソフトウェア、ファームウェア、および／またはハードウェア構成を利用してもよい。例えば、本明細書において開示される例示的な実施形態は、コンピュータ可読媒体上でコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御ロジックとも呼ばれる）として符号化されてよい。
【００４５】
コンピュータプログラムを含むコンピュータ可読媒体は、制御システム１１０にロードされてよい。コンピュータ可読媒体に格納されたコンピュータプログラムの全てまたは一部は、その後、システムメモリ１１６並びに／または記憶デバイス１３２および１３３の様々な部分に格納されてよい。制御システム１１０にロードされたコンピュータプログラムは、プロセッサ１１４によって実行される場合、本明細書において説明されるおよび／または示される例示的な実施形態の機能をプロセッサ１１４に実行させてよく、および／またはこれらの機能を実行する手段であってもよい。追加的または代替的に、本明細書において説明および／または示される例示的な実施形態は、ファームウェアおよび／またはハードウェアにおいて実装されてよい。
【００４６】
［非集中化ストレージ環境］ 
【００４７】
図２は、制御された環境チャンバ１０または「オーブン」の中に被試験デバイス（ＤＵＴ）が配置された典型的なテスト環境を示す。ＳＳＤ等のＤＵＴは、テストヘッド２０のテスタスライスに接続される。多数のＤＵＴが単一のテスタスライス４０に接続され得る。テスタスライスは、テストプランにしたがってＤＵＴに対してテストを行うテスト回路を含む。テストヘッド２０ごとに多くのテスタスライスが設けられ得る。ＤＵＴは、オーブン１０に挿入されたときにトレイ３０に配置される。オーブン１０の中にあるとき、ＤＵＴは、チャンバ１０における制御された環境を乱さないよう通常ユーザが手を触れることができない。さらに、テストヘッドは、テストヘッドに直接接続され、この方式でテストヘッド２０の全てのスライスを制御する単一のシステムコントローラ（不図示）によって通常制御される。ＤＵＴにおけるテストプランを実行する単一ユーザが、制御用コンピュータを通常操作する。
【００４８】
このテスト環境の課題は、上述したように、ＡＴＥシステムでＳＳＤストレージデバイスのセットまたはアレイがテスト中である場合、各ストレージデバイスは、システムコントローラからデバイスへの別個の通信チャネルを用いて通信することである。これは、システムコントローラに接続されるプライマリ通信チャネルを経由する必要がある大量のトラフィックを発生する。このことは、システムコントローラにおけるプライマリ通信接続部におけるボトルネックを発生させうる。また、システムコントローラが同じコマンドをセット内の各個別デバイスに送信する必要がある場合（セットを再利用すること、暗号化を確立すること、デバイスをリセットすることなどのために）、コマンドおよびデータが複製されて、システムコントローラから各デバイスへと渡されるので、通信機構は非効率になる。
【００４９】
図３は、テスタスライスと、システムコントローラおよびＤＵＴとのその相互接続とについての例示的な実施形態を示す詳細な概略ブロック図である。
【００５０】
図３を参照すると、各テスタスライスはサイトモジュールを備える。サイトモジュールは、１つの実施形態において、テスタスライス３４０Ａ〜３４０Ｎ上に機械的に構成され得る。ここで、各テスタスライスは少なくとも１つのサイトモジュールを備える。特定の典型的な実施形態において、各テスタスライスは、２つのサイトモジュールと２つのデバイス電源ボードとを備え得る。他の実施形態においては、テスタスライスは、より多くのまたはより少ないサイトモジュールおよび／または電源ボードを備えてよい。図３のテスタスライス３４０Ａは、例えば、サイトモジュール３１０Ａおよび３１０Ｂと、デバイス電源ボード３３２Ａおよび３３２Ｂとを備える。しかしながら、テスタスライス上に構成され得るデバイス電源ボードまたはサイトモジュールの数に対する制限はない。テスタスライス３４０は、ネットワークスイッチ３０２を通じてシステムコントローラ３０１に接続される。ネットワークスイッチ３０２は、３２ビット幅のバスで、これらのサイトモジュールのそれぞれに接続されてよい。
【００５１】
１つの実施形態において、システムコントローラ３０１は、例えば、ＡＴＥのユーザがテストプログラムをロードし、ＡＴＥ３００に接続されたＤＵＴに対してテストを実行するためのユーザインタフェースを提供するパーソナルコンピュータ（ＰＣ）といったコンピュータシステムであってよい。Ａｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標）  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍは、デバイステストの間に通常使用されるテストソフトウェアの１つの例である。それは、ユーザにグラフィカルユーザインタフェースを提供し、当該グラフィカルユーザインタフェースから、テストは構成され、制御される。それはまた、テストフローを制御し、テストプログラムの状態を制御し、どのテストプログラムが実行中であるかを判断し、テスト結果と、テストフローに関連する他のデータとのログを取る機能を備え得る。１つの実施形態において、システムコントローラは、５１２個もの数のＤＵＴに接続され、それらを制御し得る。
【００５２】
１つの実施形態において、システムコントローラ３０１は、イーサネット（登録商標）スイッチなどのネットワークスイッチを介してサイトモジュールボード３１０Ａ〜３１０Ｂに接続され得る。他の実施形態において、ネットワークスイッチは、例としてファイバチャネル、８０２．１１、またはＡＴＭなどの異なるプロトコルと互換性があるものであってよい。
【００５３】
デバイス電源ボード３３２Ａ〜３３２Ｂの各々は、サイトモジュール３１０Ａ〜３１０Ｂのうちの１つから制御され得る。テスタプロセッサ３０４上で動作するソフトウェアは、特定のサイトモジュールにデバイス電源を割り当てるよう構成され得る。１つの実施形態において、サイトモジュール３１０Ａ〜３１０Ｂおよびデバイス電源３３２Ａ〜３３２Ｂは、例えば、例としてペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、シリアルＡＴアタッチメント（ＳＡＴＡ）、またはシリアルアタッチドＳＣＳＩ（ＳＡＳ）といった高速シリアルプロトコルを使用して互いに通信し合うよう構成される。
【００５４】
１つの実施形態において、各サイトモジュールは、図３に示されるように２つのＦＰＧＡで構成される。図３の実施形態におけるＦＰＧＡ３１６および３１８のそれぞれは、テスタプロセッサ３０４によって制御される。テスタプロセッサ３０４は、図３のシステムバス３３０および３３２で示されるように、ＰＣＩｅなどの８レーン高速シリアルプロトコルインタフェースを用いて各ＦＰＧＡと通信することができる。他の実施形態において、テスタプロセッサ３０４はまた、例えば、シリアルＡＴアタッチメント（ＳＡＴＡ）またはシリアルアタッチドＳＣＳＩ（ＳＡＳ）といった異なる高速シリアルプロトコルを用いてＦＰＧＡと通信してもよい。
【００５５】
ＦＰＧＡ３１６および３１８は、それぞれメモリモジュール３０８および３０４に接続される。メモリモジュールは、ＦＰＧＡデバイスおよびテスタプロセッサ３０４の両方と接続され得て、それらによって制御され得る。
【００５６】
ＦＰＧＡ３１６および３１８は、それぞれバス３５２および３５４を介してロードボード３８０上のＤＵＴ３７２Ａ〜３７２Ｍに接続され得る。ロードボード３８０は、ライン３５２および３５４でＤＵＴへ通信するのに用いられるプロトコルに依存しない汎用高速接続を、サイトモジュールエンドで可能にする物理ハーネスである。しかしながら、ＤＵＴエンドにおいてロードボードは、ＤＵＴによって用いられているプロトコルに固有のコネクタを有するように設計される必要がある。
【００５７】
図３は、テスタスライスの例示的な実施形態のみを示していることに留意すべきである。さらに、本発明の実施形態は、図３に示すテスタスライスのタイプのみに限定されないことに留意されたい。本発明の実施形態は、下記でさらに説明される異なるタイプのテスタスライスおよびプリミティブを含んでよい。
【００５８】
本発明の１つの実施形態において、ＤＵＴ３７２Ａ〜３７２Ｍは、テストのために、サーマルチャンバ３９０の内部に配置されたロードボード３８０にロードされる。ＤＵＴ３７２Ａ〜３７２Ｍおよびロードボード３８０は、デバイス電源３３２Ａおよび３３２Ｂから電力を得る。
【００５９】
各ＦＰＧＡに接続され得るＤＵＴの数は、ＦＰＧＡ内のトランシーバの数と、各ＤＵＴによって必要とされるＩ／Ｏレーンの数とに依存する。１つの実施形態において、ＦＰＧＡ３１６および３１８はそれぞれ、３２個の高速トランシーバを備えることができ、バス３５２および３５４はそれぞれ、３２ビット幅であり得る。しかしながら、用途に応じてそれより多い、またはそれより少ないものが実装され得る。例えば、各ＤＵＴが８個のＩ／Ｏレーンを必要とする場合、そのようなシステムでは各ＦＰＧＡに４つのＤＵＴのみが接続され得る。
【００６０】
図４Ａは、本発明の一実施形態に係る、ＤＵＴインタフェースボード（ＤＩＢ）４００とインタフェースで接続されるプリミティブ４１０を示す。図２に示すテスタスライス４０と同様に、図４のプリミティブは、テストヘッド２０に収まるタイプの個別のテストモジュールであり、テストプランにしたがってＤＵＴに対してテストを行うテスト回路を備える。プリミティブは、例えばサイトモジュール、電源などの全ての様々な電子機器がその内に収容される筐体４５０を備える。ＤＩＢ４００は、ＤＵＴ４２０に合わせた寸法の特注のコネクタを使用して複数のＤＵＴ４２０を含み得る。ＤＩＢ４００はまた、筐体４７０を備え得る。ＤＩＢ４００は、図３に示すロードボード３８０と同様のロードボード（不図示）を介してプリミティブ４１０のユニバーサルバックプレーン（不図示）にインタフェースで接続する。プリミティブ４１０は、ＤＵＴ４２０に対してテストプランを実行するための（図３に示すテスタスライス３４０Ａと同様の）テスト回路を含む。プリミティブ４１０は、任意の他のプリミティブとは独立して動作でき、（図３に示すシステムコントローラ３０１と同様の）制御サーバに接続される。
【００６１】
図４Ｂは、単一のテスタラック４９２内に複数のプリミティブ４９１を備えるワークセルを示す。本発明の実施形態は、（図４Ｂに示すプリミティブと同様の）複数のプリミティブと、関連付けられるＤＩＢとを利用してＤＵＴをテストする。本発明の実施形態は、（図２のテスタスライス４０と同様の）テスタスライスを使用してＤＵＴをテストすることもできる。各プリミティブ（またはテスタスライス）はモジュール方式であり、それが他のプリミティブ（またはテスタスライス）から独立して動作することが可能であることを意味する。プリミティブは、命令、制御、管理などのために制御サーバと通信する。制御サーバは、それがサポートする様々なプリミティブのための複数のアプリケーションプログラムまたはテストプランをホストすることが可能である。プリミティブは、標準ＩＰネットワークを介してサーバと通信することができる。遠隔配置され得る様々なコンピュータシステムは、標準ＩＰネットワーク接続を介してサーバにアクセスすることができる。
【００６２】
各プリミティブは、いくつかのＳＳＤに同時に接続され、これらをテストしてよい。さらに、各プリミティブは、制御サーバによって制御される。上述したように、このテスト環境に関連付けられた課題は、従来のシステムではＡＴＥフレームワーク中のプリミティブに接続される各ＳＳＤは別個の通信チャネルを用いて制御サーバと通信し、それによりシステムコントローラにおいてボトルネックを生じることである。さらに、このことは、システムコントローラが、プリミティブに接続された全デバイスに重複したコマンドを送信する結果となる。
【００６３】
本発明の一実施形態において、システムコントローラ（例えば図３におけるコントローラ３０１）は、プリミティブ（例えば図４Ｂに示したようにラック内に配置されたプリミティブ）内の中核デバイスに接続することができ、そこでシステムコントローラは制御および構成情報をプリミティブ内の中核デバイスへ送信し、中核デバイスはプリミティブ内の他のメンバデバイス（例えばＳＳＤのＤＵＴ）と通信する。例えば、図５に見られるように、スーパーセル５３０および関連付けられた中核デバイス５５０は、試験ラック内の単一のプリミティブの一部であってよく、スーパーセル５４０および関連付けられた中核デバイス５５５は、同じ試験ラック内の異なるプリミティブの一部であってよい。システムコントローラ５１０（システムコントローラ３０１と同様）は、下記にさらに説明されるように、様々なプリミティブ（および関連するスーパーセル）と通信する。
【００６４】
また上述したように、ＡＴＥフレームワークにおいて発生するものと同様の課題（図２、３、４Ａおよび４Ｂに関連して論じたもの）は、一般にクラウドコンピューティングシステムでも発生する。例えば従来のクラウドコンピューティング環境では、制御サーバは、通常、クラウドベースのシステム内の各デバイスを構成および制御するために、各デバイスと通信可能である必要があるであろう。これは、オーバヘッドによってデータバンド幅が低減される結果を生じる。クラウドコンピューティングシステムに関する実施形態では、スーパーセル５３０および５４０は、電子メールまたは他のデータを格納するサーバファームの一部である記憶デバイスを有し得る。
【００６５】
図５は、本発明の一実施形態に係る、２つスーパーセルを含む例示的な分散ネットワークトポロジーを示す。従来のＡＴＥまたはクラウドコンピューティングシステムの欠点に対処するため、本発明の実施形態は、各々が複数ＳＳＤデバイスを備える１または複数の「スーパーセル」によって編成されたネットワークトポロジーを提供する。システムコントローラ５１０は、１または複数のスーパーセル（図５におけるスーパーセル５３０および５４０）を構成する。スーパーセルは、任意のサイズであってよい。換言すれば、各スーパーセルは、任意の数のＳＳＤデバイスを有してよい。さらに、単一ネットワーク内の各スーパーセルは、他のスーパーセルと異なるサイズであってよい。スーパーセル内のデバイスは、１つの実施形態において、単一の記憶ユニットとして動作するように構成されてよい。
【００６６】
図５に示された実施形態は、ＡＴＥフレームワーク環境およびクラウドコンピューティング環境の両方に適用できることに留意すべきである。上述のように、スーパーセル５３０および関連付けられた中核デバイス５５０は、試験ラック内の単一のプリミティブの一部であってよく、スーパーセル５４０および関連付けられた中核デバイス５５５は同じ試験ラック内の異なるプリミティブの一部であってよい。あるいは、スーパーセル５３０および５４０は、クラウドコンピューティングシステム内の、サーバファームの一部である、電子メールまたは他のデータを格納する記憶デバイスを有し得る。
【００６７】
図５に示されるように、システムコントローラ５１０は、ＰＣＩｅバックボーン等のバックボーンに接続される。バックボーンは、いくつかの異なる通信プロトコルのうちの１つを利用することができ、ＰＣＩｅに限定されないことに留意すべきである。また、ＳＳＤデバイスの２つスーパーセル５３０および５４０がバックボーン５２０に接続される。各セットは、全部がＰＣＩｅバックボーン５２０に接続された複数のＳＳＤデバイスを有する。ＳＳＤデバイスはまた、同じ場所にあるＳＳＤデバイス同士の間での無線通信機能を有してよい。メンバデバイスの無線範囲は、いくつかの例においては、スーパーセルのサイズを制限しうることに留意すべきである。例えば、スーパーセル内のデバイスが互いに無線通信するように構成された場合、スーパーセルのサイズは、スーパーセル内の各デバイスがいかなる信号減衰もなく互いに無線通信可能であるように制約される。換言すれば、スーパーセルの全メンバデバイスは、信号損失なく互いに通信可能である必要がある。
【００６８】
異なる実施形態において、スーパーセルのデバイスは、中核のみと通信するように構成され、相互間で通信する必要がない。本実施形態においては、スーパーセルは、全てのデバイスがいかなる信号劣化もなく中核デバイスと通信することができるサイズである必要がある。
【００６９】
ＡＴＥフレームワーク内またはクラウドコンピューティングシステム内の各スーパーセルから、分散システムは、スーパーセル内のデバイス（例えばＳＳＤデバイス）のうちの１つを中核またはサブコントローラデバイスとして選択するように構成されるであろう。換言すれば、ＡＴＥフレームワークまたはクラウドコンピューティングシステムは、デバイスのサブセット（またはスーパーセル）を多数有し、各スーパーセル内で中核であると指定されたデバイスが、各サブセットまたはスーパーセルを制御する。
【００７０】
１つの実施形態において、最初の構成処理中、各サブセットまたはスーパーセルは、コマンドのシーケンスおよび情報がスーパーセルの方々に渡される中核選択プロセス（図５中の要素５６０および５６５として示される）に入ってよい。デバイスは、デバイスにプログラムされてよい、例えば最も高い処理能力または最も多くのリソースを有するデバイスを選択するといった特定の基準に基づいて、それらの間で中核を選択する。  中核選択プロセスの中で、スーパーセル内のデバイスは、互いに無線通信してよい。この通信は、バックボーン５２０を介して行われてもよい。中核の選択プロセスの結果、各スーパーセルはデバイス５５０およびデバイス５５５として示した中核を選択する。
【００７１】
スーパーセルの様々なメンバの間での中核選択プロセスを通して中核が確立される実施形態において、選択に続いて中核のアイデンティティがシステムコントローラ５１０へと通信される。
【００７２】
異なる実施形態において、例えば、システムコントローラは、ネットワーク内の様々なＳＳＤデバイスをスーパーセルとして組織化し、さらに指定された各スーパーセルの中のデバイスを中核として選択することができる。例えば、システムコントローラは、分散トポロジー内の各デバイスが属するスーパーセルを指定し、スーパーセルごとに中核をさらに決定してよい。例として、システムコントローラは、各スーパーセルが１４のメンバのみを有してよいことを指定し、さらに各スーパーセル内のそれら１４のデバイスのうちの１つがメンバデバイスの動作を管理する中核として動作することを指定してよい。
【００７３】
１つの実施形態において、システムコントローラは、ネットワーク内の特定のデバイス（例えば最も多くのリソースを持つデバイス）を単純に中核デバイスとして指定する。各中核は、次に、近くのＳＳＤと通信するように自主性を持つようプログラムされ、スーパーセルのメンバーシップを確立する通信プロトコルをセットアップする。例えば、中核は、近くのデバイスをポーリングし、異なるスーパーセルの一部となっていないデバイスをそのメンバーシップのベースに組み込む。一旦スーパーセルが確立されると、中核は、次にスーパーセルを構成する全てのＳＳＤの集合体を報告するためにシステムコントローラ５１０に通信を返す。
【００７４】
中核は、スーパーセルを制御し、システムコントローラ５１０に通信し、逆もまた然りである。中核の選択に用いられる基準は、１つの実施形態においては恣意的であることができる。例えば、この基準は、最も多くのリソースを有するデバイスを中核デバイスとして選択することを含んでよい。あるいは、他の基準、例えばより速いプロセッサを有する、または最良の「健全性」の記録を有するデバイスを選択すること、が用いられてよい。最終的に、スーパーセル内のどのデバイスが中核として指定されるかを判定するために任意の数の異なる基準を用いることができる。
【００７５】
この時点で、一旦スーパーセルおよび中核が確立されると、システムコントローラ５１０は、スーパーセル内の任意のまたは全てのデバイスを制御するために、バッチコマンド若しくはデータ、または状態情報を中核へと通信することができる。換言すれば、一旦スーパーセルおよび中核が確立されると、スーパーセル内の任意のデバイスへの通信またはコマンドは、まずシステムコントローラから中核デバイスへと送信される。中核は、次に、個別デバイスと通信する。同じことは、任意の上流への通信についても当てはまる。例えば、ＡＴＥフレームワーク内で、中核デバイスは、システムコントローラ５１０からテストプログラムに関する情報を受信してよく、その後各メンバデバイスのテストをスケジューリングする責任があるであろう。換言すれば、中核は、１つの実施形態において、システムコントローラからテストプログラム情報を受信し、スーパーセルの全メンバデバイス上で特定のテストを実行するようにプログラムされてよい。これは、被試験デバイス（ＤＵＴ）ごとのテスト実行コストを削減する。なぜなら、コントローラは、接続された全部のデバイスのテストを同時に管理しなくてよいからである。
【００７６】
通常、中核を除きスーパーセル（例えば５３０および５４０）内のどのメンバも、システムコントローラ５１０と直接通信しないであろうことに留意すべきである。１つの実施形態において、中核は、スーパーセル内の全デバイスと無線により通信することができる。
【００７７】
実際には、スーパーセルが確立された後、システムコントローラ５１０は、中核が、システムコントローラ５１０からの上位のコマンドからアレイ内の各ＳＳＤデバイスに対する低レベルの個々のコマンドおよびデータへと変換する仲介者となることを可能とすることにより、スーパーセルを、単一の大型記憶デバイスであるかのように取り扱うことができる。同じことは、スーパーセルのデバイスから状態情報を収集する場合にも当てはまる。実際には、スーパーセルのデバイスは、状態情報を中核へと通信することができ、中核はこの情報を集約することができ、これをシステムコントローラ５１０に送信することができる。１つの実施形態において、これらの機能は、システムコントローラ５１０と中核（例えば５５０または５５５）との間のコマンド構文を確立することによって実装されてよい。
【００７８】
１つの実施形態において、中核は、スーパーセル内の他のデバイスと直接通信して直接制御することが可能である。これは、システムコントローラを、各デバイスを独立に制御する必要から有利に解放する。上述のように、本発明の一実施形態において、システムコントローラは、命令またはデータを中核に直接送ってよく、その場合中核は、（システムコントローラから受信された命令にしたがって）コマンド、ステータス、データ、または構成情報を、このいずれの情報もシステムコントローラから発信することなくスーパーセルの他のデバイスとの間で直接通信することができる。換言すれば、ストレージバックボーンを介した構成コマンドは、サーバおよび中核デバイスの間でのみ発生するであろう。これは、バックボーン５２０を、コマンドおよび構成情報の代わりにデータを通信するように解放する。
【００７９】
１つの実施形態において、システムコントローラ５１０と中核デバイス５５０および５５５との間で交換される構成コマンドは無線ネットワークに移行され、それにより、有線バックボーンはストレージデータのみを通信するように解放される。これは、構成およびハウスキーピングコマンド（コントローラおよび中核デバイスの間で交換される）を、ストレージバックプレーンでの通信から完全に分離することを可能にする。システムコントローラ５１０からネットワーク内の全ての中核デバイスへとコマンドを通信することができるやり方のうちの１つは、図７に関連してさらに論じられるであろうノードホッピングによる。
【００８０】
いくつかの通信を、スーパーセルの個々のＳＳＤに対して送信するのではなく、むしろ（システムコントローラ５１０から）中核へと送信することにより、ＰＣＩｅバックボーン２０上のシステムコントローラ近くのボトルネックポイントにおいてＰＣＩｅトラフィックが有利に低減される。同じことは、そうでなければ個別ＳＳＤからコントローラ５１０の別個の通信を必要とするであろう中核からシステムコントローラ５１０へのいくつかの通信に関しても当てはまる。スーパーセルのＳＳＤデバイスはまた、互いに無線通信してよく、これはさらにバックボーン５２０上のトラフィックを低減する。
【００８１】
いくつかのセットアップおよびハウスキーピングコマンドをデータパスから離してオフロードすることは、本発明の実施形態が全体のネットワークデータ転送バンド幅を有利に増加させることを許容する。これは、従来のＡＴＥシステムおよびクラウドコンピューティングネットワークに対する有意な向上である。なぜならこれは、システムコントローラにおけるあらゆるボトルネック、およびまたシステムコントローラがスーパーセルの各ハードドライブに対して直接コマンドを複製することのあらゆる必要性を緩和するからである。
【００８２】
さらに、中核は通常システムのデバイスのサブセットのみを制御するであろうし、それらのデバイスに近接するであろうから、それらのデバイスのいずれについての故障またはメンテナンスに関する情報も容易に取得することができる。
【００８３】
いくつかの他の有益な機能が、図５の分散トポロジーにより提供される。一旦中核が確立されると、中核が知っている負荷分散特性および履歴情報に基づいてデータを特定のデバイスへと送信することにより、ＳＳＤのサブセットまたはスーパーセル全域でデータストレージを負荷分散することも効果的に行うことができる。これは、コントローラ５１０に対して透過的に行うことができる。なぜなら、中核はシステムコントローラよりもかなり小さいサブセットのＳＳＤを管理し、そのような負荷分散を実行するバンド幅を有するからである。
【００８４】
さらに、構成情報は、コントローラ５１０から中核からへと通信されることができ、中核は、スーパーセルのデバイスを個別に構成（例えばスーパーセルを再利用するなどのために）する役割を担うことができる。１つの実施形態において、中核は、システムコントローラからの特定タスクを実行するように構成されてよい。その場合中核は、特定タスクを実行するためにそのスーパーセルのハードドライブを構成し再利用することができる。換言すれば、一旦中核が特定の機能を実行するように構成されると、中核は、その機能をスーパーセル内の他のメンバデバイスへとブロードキャストまたは分配することができる。したがって、中核は、コントローラ５１０からのコマンドに基づいてスーパーセルを別の目的のために再利用する責任を果たすことができる。
【００８５】
中核はまた、スーパーセル全域にわたって冗長なストレージを確立する責任を果たすことができる。さらに、中核はまた、スーパーセルの各ＳＳＤデバイスから状態および健全性／診断情報を収集し、その情報をコントローラ５１０に通信し返し、および／または、悪いもしくは悪化しつつある健全性を示したＳＳＤをドロップし若しくは減らすアクションをとる責任を担うことができる。このように、図５のトポロジーは、従来のシステムと比較して、故障しているまたはメンテナンスを受けているＳＳＤに対応するのにかなり好適であり、それによりコンピュータ関連技術に有意な向上を提供する。
【００８６】
１つの実施形態において、中核はまた、コントローラ５１０から受信されるコマンドにしたがってスーパーセル全域の暗号化を確立する責任を担うことができる。
【００８７】
図６は、本発明の一実施形態に係る、４つスーパーセルを含む他の例示的な分散ネットワークトポロジーを示す。図６に示されるように、システムコントローラ６２０は、ストレージバックプレーンネットワーク６９０を介してスーパーセルと通信する。図６は、（複数のプリミティブを備えるＡＴＥフレームワーク、またはクラウドコンピューティングネットワークであってよい）分散ネットワーク内の４つの異なるスーパーセル６１０、６２０、６４０、および６５０を示す。図６に示されるように、全てのスーパーセルが同じサイズである必要はない。例えば、スーパーセル６４０は、他のスーパーセルより少ないメンバデバイスを有する。
【００８８】
１つの実施形態において、中核デバイスは、必要な場合にメンバドライブを追加するようにプログラムされてよい。例えば、スーパーセル６１０の中核デバイス６９１が特定タスクを実行するようにプログラムされ、時間とともにそのタスクを実行するためにそのスーパーセルにより多くのストレージドライブが必要となった場合、中核デバイスは、例えばドライブ６８７、すなわちすでにスーパーセルの一部ではないドライブを追加するようにプログラムされてよい。あるいは、中核デバイス６９１は、スーパーセル６２０からドライブを借りるために、中核デバイス６９２と通信するようにプログラムされてもよい。
【００８９】
同様に、スーパーセルのメンバデバイスが故障しまたはメンテナンスを受けている場合、中核デバイスは、問題のあるデバイスに応答するのにシステムコントローラ６２０よりもかなりよい配置にある。中核が、メンバデバイスが故障しているまたはメンテナンスを受けていると判定した場合、およびスーパーセルが機能異常のデバイスを補償する追加のストレージを必要とする場合、中核は、隣接スーパーセルからデバイスを借りること、またはいずれのスーパーセルにも属しない例えばデバイス６８７のようなデバイスを組み込むことができる。
【００９０】
さらに、１つの実施形態において、スーパーセル全体がサービスを受ける必要がある場合、近くのスーパーセルおよびこれに関連付けられた中核デバイスは、サービスを受けるべきスーパーセルの機能を実行する目的のために再利用されることができる。例えば、スーパーセル６１０が特定の重要なデータを格納する場合、スーパーセル６２０の中核デバイス６９２は、スーパーセル６１０がサービスを受ける間、スーパーセル６１０の機能を実行するようにそのメンバデバイスを制御するよう一時的にプログラムされることができる。
【００９１】
１つの実施形態において、特定のスーパーセルの中核デバイスが故障している場合、隣接スーパーセルの中核デバイスは、故障している中核デバイスのメンバを採用可能であってよい。例えば、中核デバイス６９１が故障しまたはメンテナンスを受けている場合、中核デバイス６９２は、スーパーセル６１０の全メンバデバイスを採用するように構成されてよい。
【００９２】
さらに、１つの実施形態において、スーパーセル６１０の別のメンバデバイスが中核デバイス６９１と同じ計算能力を有している場合、本発明の実施形態はまた、メンバデバイスが中核の役割を務めるように昇進させる柔軟性を有するようにプログラムされてもよい。換言すれば、メンバデバイスが最低必要な計算能力を有すると仮定すると、メンバデバイスは、中核デバイスが故障しまたはメンテナンスを受けている場合に、中核デバイスの役割に昇進されることができる。
【００９３】
したがって、本発明の実施形態は、柔軟性および冗長性により増加された信頼性を提供することができる。メンバデバイスは、例えば、故障しているまたはメンテナンスを受けているときに他のデバイスに取り換えられてよい。さらなる例として、中核デバイスは、スーパーセルの機能を変更するように容易に再構成されることができる。さらに、スーパーセルは、そのハードドライブのメンバーシップを変更する柔軟性を有する。中核デバイスの再構成では、拡張リソースが必要な場合に隣接スーパーセルのハードドライブメンバを再割り当てすることができる。さらに、スーパーセルが故障しまたはメンテナンスのためにオフラインである場合、隣接スーパーセルは、サービスを橋渡しするために一時的に再構成されることができる。本発明の実施形態により提供される増加した柔軟性は、リアルタイムにおける信頼性のための増加した適応性を与えることができる。
【００９４】
図７は、本発明の一実施形態に係る、構成コマンドがシステムコントローラからスーパーセル内の中核デバイスへと無線により通信される例示的な分散ネットワークトポロジーを示す。図７に示した実施形態において、構成コマンドは、コマンドをノードホッピングによって隣接スーパーセルを経由してスーパーセルへと送信することにより、システムコントローラ７２０から対象スーパーセル７２５へと通信される。図７に示されるように、コマンドは、まずスーパーセル７２３により受信される。スーパーセル７２３の中核デバイスは、コントローラ７２０から受信されたコマンドを解析し、コマンドが異なるスーパーセルに向けられたものであると判定するように構成される。スーパーセル７２３の中核デバイスは、次に、対象スーパーセル７２５の方向に隣接するスーパーセルへ無線によりコマンドを送信し得る。一連の同様のノードホップの後、コマンドは、最後に対象スーパーセル７２５に届く。このように、対象スーパーセルの構成コマンドは、無線通信を介して、対象スーパーセルのメンバのハードドライブコミュニティへと分散される。
【００９５】
図７に示されたスーパーセルは、ＡＴＥフレームワーク内でテストされるＳＳＤを有するか、または例えばサーバファームのようなクラウドコンピューティングシステム内の記憶デバイスを有するかのいずれも可能であることに留意すべきである。
【００９６】
図８は、本発明の一実施形態に係る、ＡＴＥフレームワーク内でスーパーセルを用いてテストを実行する構成を示す。
【００９７】
上述したように、ＡＴＥフレームワーク内で、中核デバイスは、システムコントローラ８００からテストプログラムに関する情報を受信してよく、その後各メンバデバイスのテストをスケジューリングする責任があるであろう。換言すれば、中核は、１つの実施形態において、システムコントローラからテストプログラム情報を受信し、スーパーセルの全メンバデバイス上で特定のテストを実行するようにプログラムされてよい。
【００９８】
図８に示されているように、システムコントローラ８００は、例えばプリミティブ８０１、８０２、８０３および８０４といった複数のプリミティブに接続され、通信してもよい。１つの実施形態において、図８に示された各プリミティブは、図４Ｂに示したように、単一のラックに配置されてよい。
【００９９】
１つの実施形態において、プリミティブに接続されたデバイスのうちの１つは、例えば中核８９１または８９２等の中核として選択されてよい。プリミティブ内でテストされるデバイスのうちの１つであってよい中核は、次に、プリミティブ内の全ての他のメンバデバイスの動作を制御するであろう。別の実施形態において、プリミティブは、図８に示したように、各々がそれ自体のメンバデバイスのセットに接続される複数の中核デバイス（例えばデバイス８９３、８９４および８９５）を有してよい。このように、個々のプリミティブによってテストされ、管理されるＳＳＤの数は増加する。
【０１００】
プリミティブ内の１つ若しくは複数の中核デバイスを選択して、プリミティブに接続されたその他のＳＳＤのテストを管理することにより、システムコントローラ８００、およびＳＳＤが接続されるプリミティブ内の各テスタスライスの計算処理負荷を低減することができる。
【０１０１】
１つの実施形態において、中核デバイス（例えばデバイス８９１、８９３など）は、被試験デバイスではなく、接続された全てのＳＳＤデバイスのテストを管理するようにプログラムされたコントローラデバイスとして特別に構成されてよい。
【０１０２】
中核デバイスは、例えば、接続されたＤＵＴのテストの実行を開始し、テスト結果を集めてシステムコントローラ８００に報告するように構成されることができる。例えば、中核デバイスは、特定のメンバデバイスの特定のテストを実行し、または特定のデバイスに対して特定のテストパターンを実行する知能を持つようにプログラムされる。さらに、メンバデバイスは、それらの結果を無線によって中核デバイスに通信するように構成されることができ、これによりプリミティブに対する複数の物理的接続の必要性を除去し、ネットワークトラフィックを低減する。
【０１０３】
１つの実施形態において、任意の中核におけるメンバデバイスの無線機能は、無線機能を提供してよいＳＳＤ等のメンバデバイスの外部ポートに収まる拡張カードまたはドータカードによって可能となってよい。拡張カードは、有線および無線通信機能の両方をＳＳＤに許容するために、有線バックボーンにも接続されることができる。バックボーンへの有線接続は、主にストレージデータを運ぶために用いられてもよく、その一方で無線接続が上述のように制御および構成コマンドのために使用されることができる。
【０１０４】
図９は、本発明の一実施形態に係る、非集中化された分散ストレージ環境においてデバイスを制御する例示的なコンピュータ実装プロセスのフローチャートを示す。しかしながら、本発明は、フローチャート９００で提供される説明に限定されない。むしろ、本明細書において提供される教示から、他の機能フローが本発明の範囲および主旨に含まれることが当業者には明らかであろう。フローチャート９００は、上述した例示的な実施形態を引き続き参照して説明されるが、当該方法はそれらの実施形態に限定されない。
【０１０５】
段階９０２において、システムコントローラ５１０は、ネットワーク（クラウドコンピューティングネットワークまたはＡＴＥフレームワーク）内のデバイスを、各スーパーセルが複数のメンバデバイスを有する複数のスーパーセルに分割するように構成される。
【０１０６】
段階９０４において、各スーパーセルのメンバデバイスのうちの１つは、スーパーセル内の他のメンバデバイスを制御する中核デバイスに指名される。中核デバイスは、システムコントローラ５０１によって指定されてよい。あるいは、中核デバイスは、メンバデバイスがいくつかの基準に基づいてメンバデバイス間で中核デバイスを選択する選択プロセスによって選択されてもよい。
【０１０７】
段階９０６において、構成および他のハウスキーピングコマンドが、システムコントローラ５１０から特定タスクに関連付けられたネットワーク内の中核デバイス（例えば５５０および５５５）へと送信される。このタスクは、対応する中核デバイスに関連付けられたスーパーセルが実行する必要があるものである。中核デバイスは、そのメンバデバイスが特定タスクを実行するように構成するようにプログラムされる。
【０１０８】
段階９０８において、情報は、各スーパーセルの中核デバイスから受信される。結果は、各中核デバイスのメンバデバイスからの、特定タスクの実行に関連付けられた情報を有する。
【０１０９】
前述の説明は、説明することを目的としており、特定の実施形態を参照して説明されてきた。しかしながら、例示された上記説明は、網羅的であることも、開示されたまさにその形態に本発明を限定することも意図していない。上記教示に照らして、多くの修正および変形が可能である。実施形態は、本発明の原理とその実際の適用を最も良く説明するために選択され、説明された。それにより、他の当業者が、本発明と、予期される特定の用途に適し得る様々な修正を加えた様々な実施形態とを最も良く利用することを可能にする。
【図１】
2020102192.tif 000003
【図２】
2020102192.tif 000004
【図３】
2020102192.tif 000005
【図４Ａ】
2020102192.tif 000006
【図４Ｂ】
2020102192.tif 000007
【図５】
2020102192.tif 000008
【図６】
2020102192.tif 000009
【図７】
2020102192.tif 000010
【図８】
2020102192.tif 000011
【図９】
2020102192.tif 000012
【外国語明細書】
2020102192000001.pdf