(57)【特許請求の範囲】
【請求項１】
ホストシステムと通信するように構成されたチップ上のシステム（ＳｏＣ）であって、前記ＳｏＣが、
プロセッサを有するホストシステムのためのコンピュートサービスを提供するため、第１のセットの専用の処理及びメモリリソースを有するサーバコンピュートサブシステムと、
前記ホストシステム及び前記サーバコンピュートサブシステムに関するネットワークトラフィックを管理するため、Ｉ／Ｏサブシステムと、第２のセットの専用の処理及びメモリリソースとを有し、前記サーバコンピュートサブシステム及び前記ホストシステムが前記Ｉ／Ｏサブシステムを介してネットワークと通信するように構成されるネットワークコンピュートサブシステムと、
前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムに接続し、前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムに関する前記第１及び第２の専用の処理及びメモリリソースを管理するための管理コンピュートサブシステムと、を備え、
前記ＳｏＣは、前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムのための外部メモリと通信することができる、チップ上のシステム（ＳｏＣ）。
【請求項２】
前記Ｉ／Ｏサブシステムが、前記サーバコンピュートサブシステムと通信するための第１のインターフェースと、前記ホストシステムと通信するための第２のインターフェースと、前記ネットワークと通信するための第３のインターフェースと、を含む、請求項１に記載のＳｏＣ。
【請求項３】
前記第１のインターフェース及び前記第２のインターフェースが周辺機器コンポーネント相互接続エクスプレス（ＰＣＩｅ）インターフェースである、請求項２に記載のＳｏＣ。
【請求項４】
前記ＳｏＣが、外部メモリと通信するように構成され、前記ネットワークコンピュートサブシステムまたは前記サーバコンピュートサブシステムのみが前記外部メモリと通信することができるように、前記外部メモリが、前記ネットワークコンピュートサブシステムまたは前記サーバコンピュートサブシステムのいずれかから論理的または物理的に隔離される、請求項１〜３のいずれかに記載のＳｏＣ。
【請求項５】
前記メモリリソースが、１つまたは複数のメモリコントローラ、レベル１キャッシュ、レベル２キャッシュまたはレベル３キャッシュを含む、請求項１に記載のＳｏＣ。
【請求項６】
前記管理コンピュートサブシステムが、前記サーバコンピュートサブシステムに前記第１のセットの専用の処理及びメモリリソースを割り当てるように構成され、前記ネットワークコンピュートサブシステムに第２のセットの専用の処理及びメモリリソースを割り当てるように構成される、請求項５に記載のＳｏＣ。
【請求項７】
前記管理コンピュートサブシステムが、ハードウェアまたはソフトウェア構成に基づいて、前記第１のセット及び前記第２のセットのメモリリソースを割り当てるように構成される、請求項５または６に記載のＳｏＣ。
【請求項８】
前記第１のセットの専用の処理及びメモリリソースが、サーバコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、請求項５〜７のいずれかに記載のＳｏＣ。
【請求項９】
前記第２のセットの専用の処理及びメモリリソースが、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、請求項５〜８のいずれかに記載のＳｏＣ。
【請求項１０】
前記ＳｏＣがさらに、前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムによって共有される１つまたは複数のリソースを備える、請求項１〜９のいずれかに記載のＳｏＣ。
【請求項１１】
前記ネットワークコンピュートサブシステムが第１の電力ドメイン上にあり、前記サーバコンピュートサブシステムが第２の電力ドメイン上にある、請求項１〜１０のいずれかに記載のＳｏＣ。
【請求項１２】
前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムが、別個のリセットドメインにある、請求項１〜１１のいずれかに記載のＳｏＣ。
【請求項１３】
プロセッサを有するホストシステムと通信するように構成されたシステムオンチップ（ＳｏＣ）に関する方法であって、前記方法が、
管理コンピュートサブシステムにより、前記コンピュートサブシステムに接続した前記ＳｏＣのネットワークコンピュートサブシステム及びサーバコンピュートサブシステムを起動し、前記サーバコンピュートサブシステムが前記ホストシステムのためのコンピュートサービスを提供するように構成され、前記ネットワークコンピュートサブシステムが前記ホストシステム及び前記サーバコンピュートサブシステムに関するネットワークトラフィックを管理するように構成されることと、
前記ネットワークコンピュートサブシステムのための第１のセットの専用の処理及びメモリリソースのプールから前記ネットワークコンピュートサブシステムに、第１のセットの専用の処理及びメモリリソースを割り当てることによって、前記ネットワークコンピュートサブシステムのための第１のセットの専用の処理及びメモリリソースを構成することと、
前記サーバコンピュートサブシステムのための第２のセットの専用の処理及びメモリリソースのプールから前記サーバコンピュートサブシステムに、第２のセットの専用の処理及びメモリリソースを割り当てることによって、前記サーバコンピュートサブシステムのための第２のセットの専用の処理及びメモリリソースを構成することと、を含み、
前記ネットワークコンピュートサブシステムがＩ/Ｏサブシステムを備え、前記サーバコンピュートサブシステムが前記Ｉ／Ｏサブシステムを介して前記ホストシステムと通信する方法。
【請求項１４】
前記ネットワークコンピュートサブシステムをリセットせずに、前記サーバコンピュートサブシステムをリセットすることをさらに含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュートサブシステムを備えるチップ上のシステムに関する。
【背景技術】
【０００２】
一般に、組織や会社は、複数の通信ネットワークを介してコンピューティングサービスを提供する。例えば、コンピューティングサービスは、インターネットを介して異なるクライアントに提供することができるウェブストレージや仮想サーバなどのウェブサービスを含んで良い。一部の例では、必要に応じて仮想サーバがクライアントに貸し出される場合もある。
【０００３】
一部の例では、ネットワーク帯域幅及び処理要求は、各々のクライアントによる使用法に応じて変化する場合がある。例えば、第１のクライアントは、サーバ上のネットワーク帯域幅及びコンピューティングリソースを全て利用することができ、これは同一サーバと通信中の他のクライアントの速度を落とす可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
実施形態は、システムオンチップ上に１つまたは複数のサーバコンピュートサブシステムのインスタンスを設けることによって、最低限かつ増分費用で追加のコンピューティングリソースを提供することができる。システムオンチップは、複数のコンピュートサブシステムを含むことができ、各々のコンピュートサブシステムは、専用の処理及びメモリリソースを含むことができる。システムオンチップはまた、各々のサブシステムに関する処理及びメモリリソースを管理することができる管理コンピュートサブシステムを含むこともできる。
【０００５】
本開示による種々の実施形態が図面を参照して記載される。
【図面の簡単な説明】
【０００６】
【図１】本開示の一部の実施形態によるシステムのブロック図である。
【図２】本開示の特定の実施形態によるシステムオンチップ(ＳｏＣ)のハイレベルなブロック図である。
【図３Ａ】本開示の特定の実施形態による各々のコンピュートサブシステムに対して物理的に隔離された外部メモリと通信するように構成されたＳｏＣの詳細なブロック図である。
【図３Ｂ】本開示の特定の実施形態による各々のコンピュートサブシステムに対して論理的に隔離された外部メモリと通信するように構成されたＳｏＣの詳細なブロック図である。
【図４】本開示の特定の実施形態による管理コンピュートサブシステムのブロック図である。
【図５】本開示の特定の実施形態によるＩ／Ｏサブシステムのブロック図である。
【図６】本開示の特定の実施形態による共有リソースユニットのブロック図である。
【図７】本開示の特定の実施形態によるフロー図である。
【図８】少なくとも１つの例示の実施形態による、１つまたは複数のネットワークを介して接続された１つまたは複数のサービスプロバイダコンピュータ及び／またはユーザデバイスを含む、本明細書に記載される機構及びシステムに関する一例のアーキテクチャを示す図である。
【図９】種々の実施形態を履行することができる環境を示す図である。
【発明を実施するための形態】
【０００７】
以下の記載において、種々の実施形態が記載される。説明する目的で、これらの実施形態の完璧な理解を与えるために特有の構成及び詳細が記載される。しかしながらこれらの実施形態は、この固有の詳細がなくても実施され得ることも当業者に明らかであろう。さらに、記載される実施形態を不明瞭にしないためによく知られた機構は省略されるまたは簡素化される場合もある。
【０００８】
一般的に言えば、サーバは、例えば電源、冷却供給源、ネットワーキングリソース、ディスクドライブ、シートメタル、サーバの物理的な設置面積などの高価な製品リストを含む場合があり、これらは累積して高価なサーバシステムとなる可能性がある。各々の付加的なサーバシステムが、複数のサーバに対応付けられたコンピュートリソースを必要とする任意のインフラストラクチャのコストを増分的に加える場合もある。これにより、より多くのコンピューティングリソースを提供するために付加的なサーバシステムを有することは、サーバインフラストラクチャに対して比例式にかなりのコストを加える可能性がある。
【０００９】
開示される技術の種々の実施形態は、システム内に存在する現在のシリコン要素を活用し改良することによって、最低限かつ増分費用で追加のコンピューティングリソースを提供することができる。一部の実施形態において、追加のコンピュートリソースを提供するためにサーバコンピュートサブシステムがサーバに加えられる場合がある。例えばコストを有意に増大させることなく、ネットワーク機能を既に含むシステムオンチップ(ＳｏＣ)の中にサーバコンピュートサブシステムを実装することができる。ＳｏＣは、コンピュートサービスを提供するためにサーバコンピュートサブシステムを含み、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを少なくとも管理するためにネットワークコンピュートサブシステムを含んで良い。新たに加えられるサーバコンピュートサブシステムは、インフラストラクチャに追加のサーバを加える、またはサーバにサーバソケットを加えることに対して同様の利点を与えることができる。いくつかの実施形態において、コンピュートサブシステムは、プロセッサコアなどの専用処理リソースを有するサブシステムを含む場合もある。
【００１０】
コンピュータネットワークは典型的には、データをホストし、複数のクライアントまたは組織にサービスを提供することができる複数のサーバを含むことができる。例えばサーバは、場合によって多数のクライアントコンピュータに対してクラウドコンピューティング、解析、ウェブサービス、ストレージ、データベース、アプリケーション、展開サービスなどのサービスを提供することができる。クライアントまたは組織は、これらのサービスまたはデータを利用して、ストレージ、データ処理及びウェアハウジング、ウェブ及びモバイルアプリケーション、アーカイブ及び多くの他のタスクなどの広範な種類の作業負荷を行うことができる。一般に、クライアントがサーバからのサービスまたはデータを要求し、サーバが特定のタスクを実行することでネットワークを介してリクエストに答える及び／またはデータを供給することによって応答する。ネットワークトラフィックは、例えば、特定の時間におけるサービスを要求するクライアントの数、サーバの容量などのいくつかの要因に応じて変動する場合がある。一部の例では、サーバが同時に何人ものクライアントにサービスを提供する場合、ネットワークの輻輳が生じる可能性がある。例えば、一人のクライアントが全てのネットワーク帯域幅を利用しているとき、これにより同一サーバと通信中の他のクライアントの速度が遅くなる場合がある。
【００１１】
一部の例では、ネットワークシステムは、ネットワークトラフィックを監視することでデータの流通量を調整し、帯域幅の輻輳を最小限にすることができる。例えばネットワークシステムは、異なるクライアントにウェブサービスを提供するホストシステム（例えばｘ８６サーバ）に通信可能に結合される場合がある。ネットワークシステムは、１つまたは複数のプロセッサコア、キャッシュ、ネットワーク加速ロジック、メモリコントローラ及びＩ／Ｏサブシステムなどを含むことができる。一部の実施形態において、ネットワークシステムはまた、サーバ（例えばホストシステム）によって提供されるウェブサービスに関連するトラフィックシェーピング、ネットワークストレージ処理などの他の機能を果たす場合もある。一部の例では、ネットワークシステムの機能は、ホストシステムに通信可能に結合され得るシステムオンチップ(ＳｏＣ)上のコンピュートサブシステムとして実施される場合もある。例えばＳｏＣは、プラグインカードを利用してまたはホストシステムのマザーボード上にはんだ付けされてホストシステム（例えば１つまたは複数のサーバ）に結合させることができる。
【００１２】
典型的なＳｏＣは、単一のチップに組み込まれたシステムの機能を含んで良い。例えばＳｏＣは、複数のプロセッサコア、揮発性または不揮発性のメモリモジュール、メモリコントローラ、１つまたは複数の内部バス、標準的なインターフェース、周辺機器、電圧調整器、電力管理回路、発振器及び位相同期ループなどのタイミングリソースなどを含むことができる。１つのチップ上で複数のチップの機能を履行することで、製造及び組立コストを削減することができる。加えてＳｏＣは一般に、より小さな設置面積を有し、空間要件もより低下する。したがってＳｏＣの実装は一般に、同一の機能を実装するマルチチップシステムと比べて消費する電力が少なくなり、よりコスト効果が高くなる。
【００１３】
開示される技術の種々の実施形態は、システムオンチップ上に１つまたは複数のサーバコンピュートサブシステムのインスタンスを設けることによって、比較的低い（例えば最小限の）増分費用で追加のコンピューティングリソースを提供することができる。いくつかの実施形態において、既存のインフラストラクチャをシステムレベルで活用することによって、サーバにサーバコンピュートサブシステムを加えることができる。例えばサーバコンピュートサブシステムは、コストを有意に増大させることなく、ネットワーク機能を既に含むＳｏＣ内に実装されて良い。ＳｏＣは、コンピュートサービスを提供するためのサーバコンピュートサブシステムと、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを少なくとも管理するためのネットワークコンピュートサブシステムとを含む場合がある。ＳｏＣ内の追加のサーバコンピュートサブシステムは、一部の態様では、インフラストラクチャの追加のサーバまたはサーバのサーバソケットと同様であって良い。一部の実施形態は、サーバコンピュートサブシステムとネットワークコンピュートサブシステムの間に事前に定義された通信機構を有することでＳｏＣ上で完全に別個のプロセッサインスタンスを可能にすることができる。いくつかの実施形態において、サーバコンピュートサブシステムは、周辺機器コンポーネント相互接続エクスプレス（ＰＣＩｅ）インターフェースなどのＳｏＣ内の標準的なインターフェースを利用してネットワークコンピュートサブシステムと通信する場合もある。これは、ＰＣＩｅインターフェースを介して典型的なネットワーキングＳｏＣ（例えばサーバコンピュートサブシステムを持たずに）と通信するホストシステム通信と同様であり得る。これにより少なくとも一部の実施形態は、ホストシステムとＳｏＣのネットワークコンピュートサブシステム間の通信経路を妨害せずに、コンピュートサブシステムにＳｏＣ内の内部インターフェースを介して通信させることによってジッター及びセキュリティリスクを緩和させることができる。
【００１４】
さらに一部の実施形態は、ネットワークコンピュートサブシステム及びサーバコンピュートサブシステムの各々のために、例えば処理及びメモリリソースなどの共有されない専用リソースを提供する。各々のサブシステムのための専用リソースを有することで、ホストシステム及びサーバコンピュートサブシステムによって提供されるサービスを同時に利用する可能性のある異なるクライアントに関するジッターを最小限にすることができる。例えば一部の例では、２人以上のクライアントがホストシステムと同時に通信する際、ネットワークコンピュートサブシステムとサーバコンピュートサブシステムの間でプロセッサ及びメモリリソースが共有される場合、ネットワーク帯域幅問題が生じる可能性があり、これは基幹システムなどの要求の厳しいシステムの性能に影響を与える可能性がある。例えば一人のクライアントがリソースを完全に利用し、他のクライアントの性能に影響を与えることでジッターが生じる可能性がある。さらに、特定の実装形態によると、何らかのセキュリティ攻撃が影響を受けたサブシステム内に含まれる可能性があるため、隔離されたサブシステムを有することも、基幹システムの関するセキュリティリスクを緩和させることになる。
【００１５】
少なくとも一部の実施形態が単一のサーバコンピュートサブシステムをＳｏＣ内に含むように記載され示されているが、他の実施形態は、ＳｏＣ内に単一のサーバコンピュートサブシステムを含むように限定されるわけではない。例えば一部の実装形態では、複数のサーバコンピュートサブシステムがＳｏＣ内に含まれる場合もある。
【００１６】
図１は、本明細書に記載される開示の特定の実施形態による例示のシステム１００を示している。特定の実施形態において、ＳｏＣ１０２は、サーバコンピュートサブシステム１０６及びネットワークコンピュートサブシステム１０４を含んで良い。ＳｏＣ１０２はまた、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６に関するリソースを管理するように構成され得る管理コンピュートサブシステム１０８も含む場合がある。
【００１７】
図１は、ホストシステム１１０と通信するように構成されたＳｏＣ１０２を示す。ＳｏＣ１０２とホストシステム１１０間の通信は、ＰＣＩｅインターフェースまたは任意の他の好適なインターフェースなどのインターフェース１１２を利用して行われて良い。
【００１８】
一部の例では、ホストシステム１１０は、複数のクライアントに対してマルチテナントプラットフォームを提供する場合がある。例えばホストシステム１１０は、クラウドコンピューティング、クラウドストレージ、解析、ウェブサービス、データベース、アプリケーション、展開サービスなどのサービスを異なるクライアントに提供することができる。ホストシステム１１０は、例えばｘ８６サーバなどのサーバを含んで良い。一部の実施形態において、ホストシステム１１０内の１つまたは複数のプロセッサが、ＳｏＣ１０２上のソケットに接続される場合もある。一部の実装形態では、ＳｏＣ１０２は、プラグインカードを利用して、またはホストシステム１１０のマザーボード上にはんだ付けされてホストシステム１１０に結合させることができる。
【００１９】
ＳｏＣ１０２は、ネットワークコンピュートサブシステム１０４、サーバコンピュートサブシステム１０６及び管理コンピュートサブシステム１０８を含んで良い。いくつかの実施形態において、コンピュートサブシステムは、プロセッサコアなどのその独自の専用処理リソースを含むことができる。いくつかの実施形態において、先に考察したようにネットワークコンピュートサブシステム１０４とサーバコンピュートサブシステム１０６が物理的に隔離されることで、ジッターを削減し、セキュリティリスクを抑えることができる。いくつかの実施形態において、ＳｏＣ１０２は、物理的または論理的に隔離され得る外部メモリ（図示せず）と通信することが可能である場合がある。例えば一実施形態において、外部メモリは、コンピュートサブシステムの各々に対して物理的に隔離されて良く、その独自の専用メモリコントローラ及びメモリチャネルを利用して各々のコンピュートサブシステムによってアクセス可能であって良く、例えばネットワークコンピュートサブシステム１０４に関する外部メモリ、及びサーバコンピュートサブシステム１０６に関する別の外部メモリが存在し得る。別の実施形態において、外部メモリが論理的に隔離される（例えばソフトウェア分割によって）場合もあり、共通のマルチポートメモリコントローラ及びメモリチャネルを利用して各々のコンピュートサブシステムによってアクセス可能である場合もある。さらにＳｏＣ１０２は、簡素化の目的でここには示されないが、その意図する機能を果たすのに必要であるとみなされる他のコンポーネントを含む場合もあることを理解されたい。
【００２０】
ネットワークコンピュートサブシステム１０４は、ネットワークトラフィックシェーピング、ネットワーク加速、ネットワークストレージ処理などの機能に関連するネットワークを提供するように構成されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４は、ネットワークインターフェースコントローラ（ＮＩＣ）またはネットワークコプロセッサの少なくとも一部の機能を含む場合もある。特定の実施形態において、ネットワークコンピュートサブシステム１０４は、例えば課金、査定、トラフィックシェーピング、暗号化、チョーキングなどの、ホストシステム１１０によって提供されるウェブサービスに関連する任意の機能を含む場合もある。ネットワークコンピュートサブシステム１０４は、処理コア、キャッシュ、メモリコントローラなどの専用の処理及びメモリリソースを含んで良く、これらはサーバコンピュートサブシステム１０６によって共有されない。ネットワークコンピュートサブシステム１０４はまた、ホストシステム１１０、サーバコンピュートサブシステム１０６及びネットワークとインターフェース接続するように構成され得るＩ/Ｏサブシステムを含んで良い。
【００２１】
サーバコンピュートサブシステム１０６は、例えば仮想または物理的リソースなどのコンピュートサービスをクライアントコンピュータに提供するように構成されて良い。例えばコンピュートサービスは、種々のサイズの仮想マシンインスタンスを起動すること、要求に応じて仮想マシンにストレージ容量を対応させること、仮想マシン、データ処理、記憶装置などを貸し出すことによってアプリケーションを稼働するためのリソースをクライアントコンピュータに提供することを含むことができる。サーバコンピュートサブシステム１０６は、処理コア、キャッシュ、メモリコントローラなどの専用の処理及びメモリリソースを含んで良く、これらはネットワークコンピュートサブシステム１０４によって共有されない。いくつかの実施形態において、コンピュートサブシステム１０６は、かなりの量の追加の電源、ネットワーキングリソース、冷却供給源、ピン、シートメタルなどを加えることなく、ＳｏＣ１０２の一部として含まれて良い。よってサーバコンピュートサブシステム１０６は、それに関連する追加のコストがかからずに、追加のサーバをホストシステム１１０内のソケットの１つに加える、または追加のサーバシステムを加えるのと同じようにコンピューティングリソースを増やすことができる。
【００２２】
別の実施形態において、サーバコンピュートサブシステム１０６をＳｏＣ１０２の一部として実装することで、ホストシステム１１０に対して別のサーバシステムを加えるのと比べて製造及び組立コストを低下させることができる。さらにサーバコンピュートサブシステム１０６をＳｏＣ１０２上に実装しても、システムレベルにおける物理的な設置面積または空間要件は変わらない場合が多い。種々の実施形態によるＳｏＣ実装はまた、サーバコンピュートサブシステム１０６がＳｏＣ１０２上の内部バスを利用してネットワークコンピュートサブシステム１０４と通信することに起因して、低電力要件を実現することもできる。これらの利点はエンドユーザにとっての低コストにつなげることが可能である。
【００２３】
いくつかの実施形態において、サーバコンピュートサブシステム１０６を利用して、ホストシステム１１０の作業負荷の一部を軽減することもできる。一部の例では、サーバコンピュートサブシステム１０６と協働するホストシステム１１０は、高性能のコンピュートサービスを提供することができる。例えばホストシステム１１０は、迅速なターンアラウンドサービスの処理に集中することができ、サーバコンピュートサブシステム１０６に対する一部の低い効率の作業負荷を軽減することでシステムのスループットを高めることができる。
【００２４】
管理コンピュートサブシステム１０８は、ＳｏＣ１０２の種々のサブシステムを管理するように構成されて良い。例えば管理コンピュートサブシステム１０８は、ブート管理、種々のサブシステムのリセット及び電力管理、ならびに機能性に関連する任意の他のＳｏＣ管理を提供するように構成されて良い。管理コンピュートサブシステム１０８はまた、各々のサブシステムを独立してリセットしたり電源を入れたりするように構成されて良い。管理コンピュートサブシステム１０８はまた、異なるサブシステムに対応付けられたリソースを管理するように構成されて良い。例えば管理コンピュートサブシステム１０８は、各々のサブシステムのための専用の処理及びメモリリソースのプールから各々のサブシステムのための専用の処理及びメモリリソースを構成することができる。いくつかの実施形態において、管理コンピュートサブシステム１０８は、１つまたは複数のプロセッサコアなどのその独自の専用処理リソースを含む場合もある。
【００２５】
一部の実施形態によると、ＳｏＣ１０２内のネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６は、２つのサブシステムを物理的に隔てることによって互いから完全に隔離することができる。ＳｏＣ１０２上の各々のサブシステムは、別々のリセット及び／または電力ドメイン上に実装することができる。サブシステムの１つがリセットされるまたはその電源を切ることが必要な場合に、他のサブシステムは、影響されることなく機能を継続することができる。
【００２６】
いくつかの実施形態において、ＳｏＣ１０２は、ネットワークコンピュートサブシステム１０４、サーバコンピュートサブシステム１０６及び管理コンピュートサブシステム１０８を独立してリセットすることができるようなリセットロジック（図示せず）を含んで良い。ＳｏＣ１０２を完全にリセットするために別個のリセットラインが存在して良い。いくつかの実施形態において、ＳｏＣ１０２の異なるサブシステムは、異なる電力ドメイン上にあって良い。例えばネットワークコンピュートサブシステム１０４は第１の電力ドメイン上にあり、サーバコンピュートサブシステム１０６は第２の電力ドメイン上にあり、管理コンピュートサブシステム１０８は第３の電力ドメイン上にあって良い。これにより、他のサブシステムに影響を与えることなく、異なるサブシステムを独立して電源を入れたり切ったりすることが可能になる。
【００２７】
いくつかの実施形態において、必要な作業負荷に応じて、ホストシステム１１０は、サーバコンピュートサブシステム１０６に対するコンピューティングサービスタスクの一部を軽減する場合がある。例えば一部の例では、ホストシステム１１０が、より緊急の及び／または処理集中的なタスク（例えば迅速な結果を要するタスク）を行い、さほど緊急ではない、さほど重要ではない、またはさほど処理集中的ではないタスクをＳｏＣ１０２に肩代わりさせることができる。一部の他の例では、ホストシステム１１０上のサーバの電力消費は、サーバコンピュートサブシステム１０６の電力消費より大きくなる可能性があるため、ホストシステム１１０は、一部の低電力タスクをＳｏＣ１０２に肩代わりさせる場合もある。
【００２８】
いくつかの実施形態において、管理コンピュートサブシステム１０８は、例えばソフトウェアまたはハードウェア構成に基づいて、サーバコンピュートサブシステム１０６にどのコンピューティングサービスタスクを肩代わりさせるかを決定する場合もある。いくつかの実施形態において、コンピューティングサービスタスクの一部は、サーバコンピュートサブシステム１０６によって実行するようにタグ付けされる場合もある。例えば管理コンピュートサブシステム１０８は、タグ付けされ（例えばフラグまたはデータフィールドに基づいて）たコンピューティングサービスタスクを特定し、それらのタスクを実行するようにサーバコンピュートサブシステム１０６に転送する場合もある。
【００２９】
いくつかの実施形態において、外部エンティティまたはシステムが、どのコンピューティングサービスタスクがサーバコンピュートサブシステム１０６によって実行され得るかを決定する場合もある。例えば外部エンティティまたはシステムは、ネットワーク接続を介して管理コンピュートサブシステム１０８と通信して、サーバコンピュートサブシステム１０６によって実行され得るタスクを特定することができる。
【００３０】
それ故、種々の実施形態は、追加の電源、冷却供給源、ネットワーキングリソース、ディスクドライブ、シートメタル、サーバの物理的設置面積などを加えることなく、サーバの内部に追加のサーバコンピュートサブシステムを設けることができる。特定の実施形態によると、ＳｏＣの一部としてサーバコンピュートサブシステムを実装することの追加のコストは、インフラストラクチャに別のサーバを加えるよりも、あるいはさらには別のサーバソケットを加えるのと比べて少ない、または最低限になる可能性がある。例えば本明細書に記載されるようにサーバコンピュートサブシステムを実装するのに関連するコストは、例えばサーバコンピュートサブシステムに対応付けられるプロセッサ及びメモリリソースなどの新たなサーバコンピュートサブシステムに関する追加のダイ面積に限定されて良い。
【００３１】
図２は、開示される技術の一実施形態によるより詳細なＳｏＣ１０２のコンポーネントを示す。
【００３２】
ＳｏＣ１０２は、図１を参照して考察したネットワークコンピュートサブシステム１０４、管理コンピュートサブシステム１０８及びサーバコンピュートサブシステム１０６に加えて加速装置２１０及び共有リソースユニット２０８を含んで良い。ネットワークコンピュートサブシステム１０４は、Ｉ／Ｏサブシステム２０２及び専用リソース２０４を含んで良い。サーバコンピュートサブシステム１０６は、専用リソース２０６を含んで良い。別々の専用リソースを有することで、各々のサブシステムが独立して機能することが可能になり、ジッターまたはクライアントサービスに対するセキュリティリスクを回避することが可能になる。
【００３３】
Ｉ／Ｏサブシステム２０２は、ＳｏＣ１０２上の他のサブシステムと通信するため、かつ外部システムと通信するために１つまたは複数のインターフェースを含んで良い。例えばＩ／Ｏサブシステム２０２は、サーバコンピュートサブシステム１０６と通信するための第１のインターフェース２１２を含んで良い。Ｉ／Ｏサブシステム２０２は、図１に示されるようにホストシステム１１０と通信するための第２のインターフェース１１２を含んで良い。インターフェース２１２は、ＰＣＩｅまたは任意の他の好適なインターフェースなどの標準的なインターフェースに基づいて良い。例えばＩ／Ｏサブシステム２０２は、他のサブシステムのＰＣＩｅインターフェースと接続するためにＰＣＩｅルートコンプレックス（ＲＣ）デバイスを含んで良い。Ｉ／Ｏサブシステム２０２はまた、ネットワーク接続能力のために第３のインターフェース２１４を含む場合もある。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６は、Ｉ／Ｏサブシステム２０２のインターフェース２１４を利用してネットワーク（例えばインターネット、イントラネット）と通信することができる。例えばインターフェース２１４は、イーサネット、トークンリング、Ｗｉ-Ｆｉ、ＡＴＭ（非同期転送モード）などの標準規格に基づく場合がある。いくつかの実施形態において、Ｉ／Ｏサブシステム２０２はまた、ハードドライブ、光学ドライブなどの外部の大容量記憶装置に接続するためのインターフェースを含む場合もある。例えばインターフェースは、シリアルＡＴＡまたはＳＡＴＡとしても知られるシリアルアドバンストテクノロジーアタッチメントに基づく場合もある。
【００３４】
いくつかの実施形態において、サーバコンピュートサブシステム１０６はネットワークコンピュートサブシステム１０４のＩ／Ｏサブシステム２０２を利用して、ホストシステム１１０と通信することができる。例えばサーバコンピュートサブシステム１０６は、ネットワークコンピュートサブシステム１０４を利用して、ホストシステム１１０と通信してデータ流通量を移動させる、またはネットワークストレージ処理などのネットワーク機能を行うことができる。ネットワークコンピュートサブシステムのみを備えるＳｏＣは、ホストシステム１１０に対するスマートネットワークインターフェースコントローラ（ＮＩＣ）として機能することができる。例えばネットワークコンピュートサブシステムによって、ホストシステム１１０がＩ／Ｏサブシステム２０２を利用してネットワークに接続することを可能にすることができる。しかしながら一部の実施形態によると、ＳｏＣ１０２は、ホストシステム１１０に対して外向きのスマートＮＩＣ機能を提示し、ＳｏＣ１０２上のサーバコンピュートサブシステム１０６に対しては内向きのスマートＮＩＣ機能を提示する場合もある。例えば外向きのスマートＮＩＣ機能によって、ホストシステム１１０、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６がＩ／Ｏサブシステム２０２を利用して（例えばインターフェース２１４を介して）ネットワークに接続することを可能にすることができる。同様に内向きのスマートＮＩＣ機能によってサーバコンピュートサブシステム１０６がＩ／Ｏサブシステム２０２を利用して（例えばインターフェース２１２及びインターフェース１１２を介して）ホストシステム１１０に接続することを可能にすることもできる。
【００３５】
専用リソース２０４は、ネットワークコンピュートサブシステム１０４のためのマルチ−コアプロセッサ及びメモリリソースを含んで良い。マルチ−コアプロセッサは、同一のプロセッサ内に複数の処理装置を含んで良い。メモリリソースは、キャッシュ、メモリコントローラ、メモリなどを含んで良い。例えばキャッシュは、レベル１（Ｌ１）、レベル２（Ｌ２）及びレベル３（Ｌ３）またはラスト−レベルキャッシュなどのキャッシュヒエラルキーを含んで良い。いくつかの実施形態において、マルチ−コアプロセッサは、マルチ−コア間でバスならびにＬ１キャッシュ及び／またはＬ２キャッシュなどの特定のリソースを共有する場合がある。一部の例では、シングルまたはマルチ−コアプロセッサにおける各々のコアはまた、複数の実行中の論理プロセッサ（またはスレッド）を含む場合もある。そのようなコアにおいて（複数の論理プロセッサをサポートする）、実行パイプラインのいくつかの段階及びより低レベルのキャッシュ（例えばＬ１またはＬ２）が共有される場合もある。マルチ−コアプロセッサの非限定的な例の一部には、ＡＲＭ'ｓコルテックスＡ５７、ＭＩＰＳ、ＡＭＤＰｈｅｎｏｍ、インテルＡＴＯＭなどが含まれて良い。Ｌ１キャッシュは一次キャッシュとして使用されて良く、Ｌ２キャッシュは二次キャッシュとして使用されて良い。いくつかの実施形態において、Ｌ１キャッシュ及びＬ２キャッシュがプロセッサコアに組み込まれる場合もある。Ｌ３キャッシュがＳｏＣ１０２上にある場合もあり、同一のサブシステムに関する全てのプロセッサによって共有されて良い。メモリコントローラは、ダブルデータレート（ＤＤＲ）コントローラ、ＤＤＲ２コントローラまたは任意の好適なコントローラを含んで良く、外部メモリ（図示せず）へのアクセスを管理するのに使用されて良い。
【００３６】
いくつかの実施形態において、専用リソース２０４は、ネットワークコンピュートサブシステム１０４のための専用の処理及びメモリリソースを含む場合があり、これはパワーオンリセット時にネットワークコンピュートサブシステム１０４のための処理及びメモリリソースの専用プールから構成することができる。例えばネットワークコンピュートサブシステム１０４のための処理及びメモリリソースの専用プールはパワーオンリセット時に８つの４−コアプロセッサと、８つの４ＭＢ  Ｌ２キャッシュとを含んで良く、６つの４−コアプロセッサと、６つの４ＭＢ  Ｌ２キャッシュをネットワークコンピュートサブシステム１０４に割り当てることによって専用リソース２０４を構成することができる。いくつかの実施形態において、処理及びメモリリソースの専用プールにおける各々のプロセッサに関するコアの数及びＬ１／Ｌ２キャッシュのサイズもまた構成可能であって良い。例えば一部の例では、パワーオンリセット時に、５つの２−コアプロセッサと、５つの２．５ＭＢ  Ｌ２キャッシュをネットワークコンピュートサブシステム１０４に割り当てることによって専用リソース２０４が構成される場合もある。
【００３７】
専用リソース２０６は、サーバコンピュートサブシステム１０６のためのマルチ−コアプロセッサ及びメモリリソースを含んで良い。専用リソース２０６は、１つまたは複数の処理コアと、メモリリソースとを含んで良い。マルチ−コアプロセッサの非制限的な例の一部には、ＡＲＭ'ｓコルテックスＡ５７、ＭＩＰＳ、ＡＭＤＰｈｅｎｏｍ、インテルＡＴＯＭなどが含まれて良い。メモリリソースには、キャッシュ、メモリコントローラなどが含まれて良い。例えばキャッシュは、例えばＬ１、Ｌ２及びＬ３またはラスト−レベルキャッシュなどのキャッシュヒエラルキーを含んで良い。Ｌ１キャッシュは一次キャッシュとして使用されて良く、Ｌ２キャッシュは二次キャッシュとして使用されて良い。いくつかの実施形態において、Ｌ１キャッシュ及びＬ２キャッシュがプロセッサコアに組み込まれる場合もある。Ｌ３キャッシュがＳｏＣ１０２上にある場合もあり、同一のサブシステムに関する全てのプロセッサによって共有されて良い。メモリコントローラは、ＤＤＲコントローラ、ＤＤＲ２コントローラまたは任意の好適なコントローラを含んで良く、外部メモリ（例えばＤＲＡＭなどのシステムメモリ）へのアクセスを管理するのに使用されて良い。
【００３８】
いくつかの実施形態において、専用リソース２０６は、サーバコンピュートサブシステム１０６のための専用の処理及びメモリリソースを含む場合があり、これはパワーオンリセット時にサーバコンピュートサブシステム１０６のための処理及びメモリリソースの専用プールから構成することができる。例えばサーバコンピュートサブシステム１０６のための処理及びメモリリソースの専用プールは、パワーオンリセット時に８つの４−コアプロセッサと、８つの４ＭＢ  Ｌ２キャッシュを含んで良く、６つの４−コアプロセッサと、６つの４ＭＢ  Ｌ２キャッシュをサーバコンピュートサブシステム１０６に割り当てることによって専用リソース２０６を構成することができる。いくつかの実施形態において、処理及びメモリリソースの専用プールにおける各々のプロセッサに関するコアの数及びＬ１／Ｌ２キャッシュのサイズもまた構成可能であって良い。例えば一部の例では、パワーオンリセット時に、専用リソース２０６は、７つの３−コアプロセッサと、７つの３ＭＢ  Ｌ２キャッシュをサーバコンピュートサブシステム１０６に割り当てることによって構成されて良い。
【００３９】
加速装置２１０は、ネットワークコンピュートサブシステム１０４に関するネットワーキング加速を実現するように構成されて良い。いくつかの実施形態において、加速装置２１０は、ハードウェア加速器、種々のパイプラインなど異なる種類の加速器を含む場合がある。加速装置２１０はまた、ＲＤＭＡ（リモートダイレクトメモリアクセス）、クリプトエンジンなどを支持する場合もある。例えばクリプトエンジンがハードウェアにおいて暗号機能を実行することにより、ソフトウェアオーバーヘッドを削減し、ネットワーキングに関連する暗号解読、暗号化及び認証機能の実行を加速することができる。いくつかの実施形態において、加速装置２１０はサーバコンピュートサブシステム１０６によってアクセスすることができない場合もある。
【００４０】
共有リソースユニット２０８は、ネットワークコンピュートサブシステム１０４とサーバコンピュートサブシステム１０６の間で共有することができる１つまたは複数のリソースを含んで良い。いくつかの実施形態において、共有リソースユニット２０８は、いかなるジッターまたはセキュリティの問題も生じることなく、ネットワークコンピュートサブシステム１０４とサーバコンピュートサブシステム１０６の間で安全に共有することができる１つまたは複数の周辺機器を含む場合がある。例えば共有リソースユニット２０８には、乱数発生器、プロセッサ間通信モジュール、スクラッチパッドメモリ、フラッシュメモリなどが含まれて良い。
【００４１】
図３Ａは、一例の実施形態において各々のコンピュートサブシステムに対して物理的に隔離された外部メモリと通信するように構成されたＳｏＣ１０２の詳細なブロック図３００を示す。図３Ａは、図１及び図２を参照して先に考察したようなネットワークコンピュートサブシステム１０４及び１０６を備えるＳｏＣ１０２を図示している。
【００４２】
ネットワークコンピュートサブシステム１０４は、例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２などの処理リソースと、例えばキャッシュ３０４及びＬ３キャッシュ３０８、ネットワークコンピュートサブシステムメモリコントローラ３１０及びメモリチャネル３１２などのメモリリソースとを含むことができる専用リソース２０４（図２を参照）を含んで良い。専用リソース２０４は、図３Ａを参照して示されるものより多くのまたはこれより少ないコンポーネントを含む場合もあることを理解されたい。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４のための専用リソース２０４は、ネットワークコンピュートサブシステム１０４のための処理及びメモリリソースの専用プールから割り当てられて良い。
【００４３】
ネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２は、同一のプロセッサ内に複数のプロセッサコアまたは処理装置を含んで良い。特定の実施形態において、ネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２は、キャッシュ３０４（例えばＬ１キャッシュ及び／またはＬ２キャッシュ）に結合される場合もある。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４のための専用プロセッサコアの数は、ネットワークコンピュートサブシステム１０４のためのプロセッサコアのプールからパワーオンリセット時の管理コンピュートサブシステム１０８によって構成することができる。例えば１つの例では、プロセッサコアのプールは３２個のプロセッサコアを含み、これにより３２個以下のプロセッサコアを専用処理リソースとしてネットワークコンピュートサブシステム１０４に割り当てることを可能にする場合がある。いくつかの実施形態において、プロセッサコアの数は、必要とされるコンピュートリソースを仮想マシンインスタンスのスループット要件に見合うように構成することができる。
【００４４】
ネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２は、プロセッサコアの１つまたは複数のプロセッサ上で複数の命令をまとめて実行するように構成されて良い。これらの命令は、例えばコンピュータプログラムの形態でコンピュータ可読記憶媒体に記憶させることができる。コンピュータ可読記憶媒体は、非一時的であって良い。
【００４５】
いくつかの実施形態において、各々のプロセッサコアは、Ｌ１キャッシュ及び／またはＬ２キャッシュに結合されて良い。例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２は、命令及びデータの一時的な記憶のために各々がＬ１命令キャッシュ（例えば４８ＫＢ）及び／またはＬ１データキャッシュ（例えば３２ＫＢ）を含むことができるＡＲＭ（登録商標）Ｃｏｒｔｅｘ（登録商標）Ａ５７マルチプロセッサコアを含むことができる。いくつかの実施形態において、Ｌ１及びＬ２キャッシュは、スタティックランダムアクセスメモリ（ＳＲＡＭ）を利用して実装されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４のためのＬ１キャッシュ、Ｌ２キャッシュ、Ｌ３キャッシュ、メモリコントローラ、メモリチャネルなどの専用プールからネットワークコンピュートサブシステム１０４のための専用メモリリソースが割り当てられる場合もある。例えばいくつかの実施形態において、キャッシュ３０４（Ｌ１／Ｌ２キャッシュ）のサイズは、最大限利用可能なキャッシュサイズに基づいてパワーオンリセット時の管理コンピュートサブシステム１０８によって構成することができる。例えばキャッシュ３０４は、サブシステムのために最大限利用可能なキャッシュ（例えば４ＭＢ）以下である任意の好適なサイズを有するように構成されて良い。
【００４６】
いくつかの実施形態において、ネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２は、バス及びＬ３キャッシュなどの特定のリソースを複数のコア間で共有する場合がある。例えば図３Ａに示されるように、Ｌ３キャッシュ３０８はネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２の複数のコアによって共有されて良い。いくつかの実施形態において、Ｌ３キャッシュ３０８のサイズは、最大限利用可能なＬ３キャッシュのサイズに基づいてパワーオンリセット時の管理コンピュートサブシステム１０８によって構成することができる。例えばＬ３キャッシュ３０８は、最大限利用可能なキャッシュ（例えば３２ＭＢ）以下である任意の好適なサイズを有するように構成されて良い。
【００４７】
ネットワークコンピュートサブシステムメモリコントローラ３１０は、メモリチャネル３１２を介してネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２、キャッシュ３０４及びＬ３キャッシュ３０８と、外部メモリ（図示せず）との間でのデータ転送を制御するように構成されて良い。外部メモリには、ＤＤＲ同期ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＤＤＲ２ＤＲＡＭ、ＤＲＡＭなどが含まれて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４に関する外部メモリは、サーバコンピュートサブシステム１０６から物理的に隔離される場合があり、インターフェース３３０を利用してネットワークコンピュートサブシステムメモリコントローラ３１０及びメモリチャネル３１２を使用してアクセスすることができる。いくつかの実施形態において、ネットワークコンピュートサブシステムメモリコントローラ３１０は、１つまたは複数のＤＤＲ（ダブルデータレート）コントローラを含む場合もある。ＤＤＲコントローラは、メモリチャネル３１２を利用してデータの流れを制御することによって帯域幅を拡大することができる。いくつかの実施形態において、ＤＤＲコントローラの数は、プロセッサコアの数、キャッシュの数などに基づいて決定されて良い。
【００４８】
ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６は、例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２の複数のコア、キャッシュ３０４、Ｌ３キャッシュ３０８、加速装置２１０、ネットワークコンピュートサブシステムメモリコントローラ３１０、Ｉ／Ｏサブシステム２０２、管理コンピュートサブシステム１０８及び共有リソースユニット２０８などにおいて、ネットワークコンピュートサブシステム１０４の異なるコンポーネントにおいて一貫性を与えるように構成されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６は、全ての共有データがネットワークコンピュートサブシステム１０４においてコヒーレントであることを保証するように構成されて良い。例えば特定の共有データが２つ以上の場所に記憶される場合（例えば複数のプロセッサ、キャッシュなど）、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６は、異なる場所における共有データの一致を維持するように動作可能であって良い。ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６は、ソフトウェア管理コヒーレンシ、ハードウェア管理コヒーレンシまたは両方を組み合わせたものを実行することができる。例えばネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６は、スヌーピング、ディレクトリ方式などのコヒーレンシプロトコルに基づいてコヒーレンシを維持するように構成されて良い。いくつかの実施形態において、スヌーピング方式のキャッシュコヒーレンシにおいて、各々の個別のキャッシュ（例えばキャッシュ３０４、Ｌ３キャッシュ３０８）は、それらがキャッシュしたメモリ位置へのアクセスに備えてアドレスラインを監視することができる。キャッシュがコピーを有する特定の位置への書き込み作業が観測された場合、キャッシュコントローラは、スヌープされたメモリ位置のその独自のコピーを無効にする。いくつかの実施形態において、ディレクトリ方式のコヒーレンシを利用して、異なるコンポーネント間で一貫性を維持することができる共通のディレクトリに共有データを記憶する場合もある。いくつかの実施形態において、スヌープフィルタを利用して、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６に関するコヒーレンシトラフィックをチェックする場合もある。
【００４９】
特定の実施形態において、ネットワークコンピュートサブシステム１０４が、別個のリセットドメイン上にある場合もある。例えばネットワークコンピュートサブシステム１０４の全てのコンポーネント、例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２、キャッシュ３０４、Ｌ３キャッシュ３０８、ネットワークコンピュートサブシステムメモリコントローラ３１０、Ｉ／Ｏサブシステム２０２及びメモリチャネル３１２は、同時にリセットされて良い。ネットワークコンピュートサブシステム１０４は、他のサブシステム（例えばサーバコンピュートサブシステム１０６、管理コンピュートサブシステム１０８、共有リソースユニット２０８など）をリセットすることなく独立してリセットされて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４は、管理コンピュートサブシステム１０８によってまたはフルチップリセット（例えばＳｏＣリセット）によってリセットされる場合もある。例えばＳｏＣリセットは、ネットワークコンピュートサブシステム１０４、サーバコンピュートサブシステム１０６、管理コンピュートサブシステム１０８及び共有リソースユニット２０８を含めたＳｏＣ１０２上の全てのサブシステムをリセットすることができる。特定の例では、ネットワークコンピュートサブシステム１０４をリセットすることは、Ｉ/Ｏサブ２０２をリセットする場合があり、これはホストシステム１１０及びサーバコンピュートサブシステム１０６に関するネットワーキングトラフィックに影響を与える可能性がある場合もある。
【００５０】
特定の実施形態において、ネットワークコンピュートサブシステム１０４は、別個の電力ドメイン上にある場合がある。例えばネットワークコンピュートサブシステム１０４は、他のサブシステムから独立して電源を入れたり切ったりすることができる。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４の異なるコンポーネントは、ネットワークコンピュートサブシステム１０４内の異なる電力ドメイン上にあって良い。例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ３０２における各々のコアは、別個の電力ドメイン上にあり、共有Ｌ１／Ｌ２キャッシュを有する各々のコアプロセッサクラスタは、特定の電力ドメイン上にあり、加速装置２１０は特定の電力ドメイン上にあり、Ｉ/Ｏサブシステム２０２は別個の電力ドメイン上にある場合がある。異なるコンポーネントのために別の電力ドメインを有することによって、ＳｏＣ１０２上での効率的な電力管理を可能にすることができる。例えばいくつかの実施形態において、電圧操作、クロック操作（例えばクロックゲーティング）または任意の他の好適な方法を介して電力管理を実現することで、各々の電力ドメインに関して独立して電力消費を制御することができる。
【００５１】
図３Ａに戻って参照すると、特定の実施形態において、サーバコンピュートサブシステム１０４は、例えばサーバコンピュートサブシステムマルチ−コアプロセッサ３１４などのプロセッサリソースと、例えばキャッシュ３１６及びＬ３キャッシュ３２０、ネットワークコンピュートサブシステムメモリコントローラ３２４及びメモリチャネル３２６などのメモリリソースとを含むことができる専用リソース２０６（図２を参照）を含んで良い。専用リソース２０６は、図３Ａを参照して示されたものより多くのまたはこれより少ないコンポーネントを含む場合もあることを理解されたい。いくつかの実施形態において、サーバコンピュートサブシステム１０６のための専用リソース２０６は、サーバコンピュートサブシステム１０６のための処理及びメモリリソースの専用プールから割り当てられる場合もある。
【００５２】
サーバコンピュートサブシステムマルチ−コアプロセッサ３１４は、同一のプロセッサ内に複数のプロセッサコアまたは処理装置を含んで良い。いくつかの実施形態において、サーバコンピュートサブシステム１０６のための専用プロセッサコアの数は、サーバコンピュートサブシステム１０６に関するプロセッサコアのプールからパワーオンリセット時の管理コンピュートサブシステム１０８によって構成することができる。例えば一例において、プロセッサコアのプールは３２個のプロセッサコアを含んで良く、これにより３２個以下のプロセッサコアを専用処理リソースとしてサーバコンピュートサブシステム１０６に割り当てることを可能にすることができる。いくつかの実施形態において、プロセッサコアの数は、必要とされるコンピュートリソースを仮想マシンインスタンスのスループット要件に合致させるように構成することができる。
【００５３】
サーバコンピュートサブシステムマルチ−コアプロセッサ３１４は、プロセッサコアの１つまたは複数のプロセッサ上で複数の命令をまとめて実行するように構成されて良い。これらの命令は、例えばコンピュータプログラムの形態でコンピュータ可読記憶媒体に記憶させることができる。コンピュータ可読記憶媒体は、非一時的であって良い。
【００５４】
いくつかの実施形態において、各々のプロセッサコアは、Ｌ１キャッシュ及び／またはＬ２キャッシュに結合されて良い。例えばサーバコンピュートサブシステムマルチ−コアプロセッサ３１４は、命令及びデータの一時的な記憶のために各々がＬ１命令キャッシュ（例えば４８ＫＢ）及び／またはＬ１データキャッシュ（例えば３２ＫＢ）を含むことができるＡＲＭ（登録商標）Ｃｏｒｔｅｘ（登録商標）Ａ５７マルチプロセッサコアを含むことができる。いくつかの実施形態において、Ｌ１及びＬ２キャッシュは、スタティックランダムアクセスメモリＲＡＭ（ＳＲＡＭ）を利用して実装されて良い。いくつかの実施形態において、サーバコンピュートサブシステム１０６に関するＬ１キャッシュ、Ｌ２キャッシュ、Ｌ３キャッシュ、メモリコントローラ、メモリチャネルなどの専用プールからサーバコンピュートサブシステム１０６のための専用メモリリソースが割り当てられる場合がある。例えばいくつかの実施形態において、キャッシュ３１６（Ｌ１／Ｌ２キャッシュ）のサイズは、最大限利用可能なキャッシュサイズに基づいてパワーオンリセットの管理コンピュートサブシステム１０８によって構成することができる。例えばキャッシュ３１６は、最大限利用可能なキャッシュ（例えば４ＭＢ）以下である任意の好適なサイズを有するように構成されて良い。
【００５５】
いくつかの実施形態において、サーバコンピュートサブシステムマルチ−コアプロセッサ３１４は、バス及びＬ３キャッシュなどの特定のリソースを複数のコア間で共有する場合がある。例えば図３Ａに示されるように、Ｌ３キャッシュ３２０はサーバコンピュートサブシステムマルチ−コアプロセッサ３１４の複数のコアによって共有されて良い。いくつかの実施形態において、Ｌ３キャッシュ３２０のサイズは、最大限利用可能なＬ３キャッシュのサイズに基づいてパワーオンリセット時の管理コンピュートサブシステム１０８によって構成することができる。例えばＬ３キャッシュ３２０は、最大限利用可能なキャッシュ（例えば３２ＭＢ）以下である任意の好適なサイズを有するように構成されて良い。
【００５６】
サーバコンピュートサブシステムメモリコントローラ３２４は、メモリチャネル３２６を介してサーバコンピュートサブシステムマルチ−コアプロセッサ３１４、キャッシュ３１６及びＬ３キャッシュ３２０と、外部メモリ（図示せず）との間のデータ転送を制御するように構成されて良い。いくつかの実施形態において、サーバコンピュートサブシステム１０６に関する外部メモリは、ネットワークコンピュートサブシステム１０４から物理的に隔離される場合があり、インターフェース３３２を利用してサーバコンピュートサブシステムメモリコントローラ３２４及びメモリチャネル３２６を使用してアクセスすることができる。いくつかの実施形態において、サーバコンピュートサブシステムメモリコントローラ３２４は、１つまたは複数のＤＤＲコントローラを含む場合がある。いくつかの実施形態において、ＤＤＲコントローラの数は、プロセッサコアの数、キャッシュの数などに基づいて決定されて良い。
【００５７】
図３Ａに示されるように、ネットワークコンピュートサブシステム１０４のためのプロセッサ及びメモリリソースは、サーバコンピュートサブシステム１０６のためのプロセッサ及びメモリリソースによって共有されない。２つのサブシステムは、他のサブシステムの性能に影響を及ぼすことなく、その独自のリソースを利用して独立したタスクを算出することができ、これによりジッター及びセキュリティリスクを最小限にすることができる。これは結果として、ホストシステム１１０によって提供されるコンピュートサービスを高性能なものにする。
【００５８】
サーバコンピュートサブシステム１０４は、バスインターフェースユニット３２２を利用してＩ／Ｏサブシステム２０２と通信するように構成されて良い。いくつかの実施形態において、バスインターフェースユニット３２２は、他のサブシステムのＰＣＩｅバス（例えばＩ／Ｏサブシステム２０２のＰＣＩｅに接続するためのインターフェース２１２）と接続するためにＰＣＩｅルートコンプレックス（ＲＣ）デバイスを含む場合もある。特定の実施形態において、バスインターフェースユニット３２２はまた、ハードドライブ、光学ドライブなどの大容量記憶装置に接続するためのＳＡＴＡ式のインターフェースを含む場合もある。
【００５９】
サーバコンピュートサブシステム１０４は、Ｉ／Ｏサブシステム２０２を介してホストシステム１１０と通信するように構成されて良い。例えばサーバコンピュートサブシステム１０４は、バスインターフェース２１２を介してＩ／Ｏサブシステム２０２と通信することができ、Ｉ／Ｏサブシステム２０２はバスインターフェース１１２を介してホストシステム１１０と通信することができる。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４の電源が落ちるような事態においても、サーバコンピュートサブシステム１０６は引き続きＩ／Ｏサブシステム２０２を利用してホストシステム１１０と通信することができる。例えばサーバコンピュートサブシステム１０６は、ネットワークトラフィックの道筋を決め、Ｉ／Ｏサブシステム２０２を介してネットワークストレージ処理作業を行うことが可能であり得る。
【００６０】
サーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８は、サーバコンピュートサブシステムマルチ−コアプロセッサ３１４、キャッシュ３１６、Ｌ３キャッシュ３２０、サーバコンピュートサブシステムメモリコントローラ３２４、バスインターフェースユニット３２２、管理コンピュートサブシステム１０８及び共有リソース２０８においてコヒーレンシを提供するように構成されて良い。例えばサーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８は、全ての共有データがサーバコンピュートサブシステム１０６内でコヒーレントであることを保証することができる。サーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８は、ソフトウェア管理コヒーレンシ、ハードウェア管理コヒーレンシまたは両方を組み合わせたものを実行することができる。例えばサーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８は、スヌーピング、ディレクトリ方式などのコヒーレンシプロトコルに基づいてコヒーレンシを維持するように構成されて良い。いくつかの実施形態において、スヌーピング方式のキャッシュコヒーレンシにおいて、各々の個別のキャッシュ（例えばキャッシュ３１６、Ｌ３キャッシュ３２０）は、それらがキャッシュしたメモリ位置へのアクセスに備えてアドレスラインを監視することができる。キャッシュがコピーを有する特定の位置への書き込み作業が観測された場合、キャッシュコントローラは、スヌープされたメモリ位置のその独自のコピーを無効にする。いくつかの実施形態において、ディレクトリ方式のコヒーレンシを利用して、異なるコンポーネント間で一貫性を維持することができる共通のディレクトリに共有データを記憶する場合もある。いくつかの実施形態において、スヌープフィルタを利用して、サーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８に関するコヒーレンシトラフィックをチェックする場合もある。
【００６１】
特定の実施形態において、サーバコンピュートサブシステム１０６が、別個のリセットドメイン上にある場合もある。例えばサーバコンピュートサブシステム１０６の全てのコンポーネント、例えばサーバコンピュートサブシステムマルチ−コアプロセッサ３１４、キャッシュ３１６、Ｌ３キャッシュ３２０、サーバコンピュートサブシステムメモリコントローラ３２４及びメモリチャネル３２６は、同時にリセットされて良い。サーバコンピュートサブシステム１０６は、他のサブシステム（例えばネットワークコンピュートサブシステム１０４、管理コンピュートサブシステム１０８、共有リソースユニット２０８など）をリセットすることなく独立してリセットされて良い。いくつかの実施形態において、サーバコンピュートサブシステム１０６は、管理コンピュートサブシステム１０８によってまたはフルチップリセット（例えばＳｏＣリセット）によってリセットされる場合もある。例えばＳｏＣリセットは、ネットワークコンピュートサブシステム１０４、サーバコンピュートサブシステム１０６、管理コンピュートサブシステム１０８及び共有リソースユニット２０８を含めたＳｏＣ１０２上の全てのサブシステムをリセットすることができる。特定の実施形態では、サーバコンピュートサブシステム１０６をリセットすることは、ホストシステム１１０及びネットワークコンピュートサブシステム１０４の機能に影響を与える可能性はない。
【００６２】
特定の実施形態において、サーバコンピュートサブシステム１０６が、別個の電力ドメイン上にある場合もある。例えばサーバコンピュートサブシステム１０６は、他のサブシステムから独立して電源を入れたり切ったりすることができる。いくつかの実施形態において、サーバコンピュートサブシステム１０６の一部または全てのコンポーネントが、サーバコンピュートサブシステム１０６内で異なる電力ドメイン上にある場合もある。例えばサーバコンピュートサブシステムマルチ−コアプロセッサ３１４における各々のコアが別個の電力ドメイン上にあり、共有Ｌ１／Ｌ２キャッシュ３１６を有する各々のコアプロセッサクラスタが別個の電力ドメイン上にある場合などである。異なるコンポーネントのために別の電力ドメインを有することによって、各々の電力ドメインの独立した制御を可能にし、これによりＳｏＣ１０２の全体の電力消費を制御するための柔軟性を与えることができる。
【００６３】
いくつかの実施形態において、管理コンピュートサブシステム１０８及び共有リソースユニット２０８は、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６に通信可能に結合され得る内部バス３２８を利用してネットワークコンピュートサブシステム１０４と通信することができる。同様に管理コンピュートサブシステム１０８及び共有リソースユニット２０８は、サーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８に通信可能に結合され得る内部バス３２８を利用してサーバコンピュートサブシステム１０６と通信することができる。
【００６４】
図３Ｂは、本開示の特定の実施形態による各々のコンピュートサブシステムに対して論理的に隔離された外部メモリと通信するように構成されたＳｏＣ１０２の詳細なブロック図を示す。図３Ｂは、例えば図３Ａに示されるネットワークコンピュートサブシステム１０４のためのネットワークコンピュートサブシステムメモリコントローラ３１０及びメモリチャネル３１２ならびに、サーバコンピュートサブシステム１０６のためのサーバコンピュートサブシステムメモリコントローラ３２４及びメモリチャネル３２６などの図３Ａを参照して考察したような各々のコンピュートサブシステムのための専用のメモリコントローラ及びメモリチャネルの代わりにマルチ−ポートメモリコントローラ３３４及びメモリチャネル３３６を含む。マルチ−ポートメモリコントローラ３３４は、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６及びサーバコンピュートサブシステムコヒーレント相互接続ネットワーク３１８に通信可能に結合されて良い。
【００６５】
いくつかの実施形態において、マルチ−ポートメモリコントローラ３３４及びメモリチャネル３３６は、ＳｏＣ１０２が、異なるコンピュートサブシステムに対して論理的に隔離された外部メモリ（例えばＤＲＡＭ、ＳＤＲＡＭ、ＤＤＲ、ＤＤＲ２メモリ）と通信することを可能にすることができる。例えばマルチ−ポートメモリコントローラ３３４は、ネットワークコンピュートサブシステム１０４が第１のポート上で外部メモリと通信することを可能にし、サーバコンピュートサブシステム１０６が第２のポート上で外部メモリと通信することを可能にするように構成されて良い。いくつかの実施形態において、マルチ−ポートメモリコントローラ３３４は、ネットワークコンピュートサブシステム１０４とサーバコンピュートサブシステム１０６間のメモリアクセスのアービトレーションを行うように構成されて良い。外部メモリは、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６に対して論理的に隔離されたメモリを含むように区切られたソフトウェアであって良い。
【００６６】
図４は、特定の実施形態による管理コンピュートサブシステム１０８に関するブロック図を示す。管理コンピュートサブシステム１０８は、マルチ−コアプロセッサ４０２、Ｌ１／Ｌ２キャッシュ４０４、ネットワークインターフェースユニット４０６、プライベートメモリ４０８、周辺装置４１０及びコンピュータ可読記憶媒体４１２を含むことができる。
【００６７】
マルチ−コアプロセッサ４０２は、例えばＡＲＭ（登録商標）によるＡ５７などの１つまたは複数のプロセッサコアを含んで良い。Ｌ１／Ｌ２キャッシュ４０４は、マルチ−コアプロセッサ４０２の内部または外部であって良い。マルチ−コアプロセッサ４０２は、コンピュータ可読記憶媒体４１２上に記憶され得る複数の命令を実行するように構成されて良い。コンピュータ可読記憶媒体４１２は非一時的であって良い。いくつかの実施形態において、コンピュータ可読記憶媒体には、これに限定するものではないがパラメータランダムアクセスメモリ（ＰＲＡＭ）、ＳＲＡＭ、ＤＲＡＭ、ＲＡＭ、リードオンリーメモリ（ＲＯＭ）、電気的消去可能リードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、コンパクトディスク（ＣＤ）−ＲＯＭ、デジタルビデオディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、マルチ−コアプロセッサ４０２によってアクセスすることができる任意の他の媒体が含まれて良い。いくつかの実施形態において、コンピュータ可読記憶媒体４１２は、周辺装置４１０の一部である場合もある。Ｌ１／Ｌ２キャッシュ４０４は、データの一時的な記憶のためのデータキャッシュを含む場合もある。
【００６８】
ネットワークインターフェースユニット４０６によって管理コンピュートサブシステム１０８をネットワークに接続することを可能にすることができる。例えばネットワークインターフェースユニット４０６は、管理コンピュートサブシステム１０８をイーサネットなどのネットワークに接続することを可能にし得るイーサネットＭＡＣ（メディアアクセスコントロール）を含む場合がある。一部の例では、イーサネットＭＡＣは、ネットワークに接続するためのＰＨＹ（物理層）デバイスにインターフェース接続するためのイーサネットポートを提供する場合もある。いくつかの実施形態において、外部エンティティまたはシステムが、ネットワーク接続を介して管理コンピュートサブシステム１０８と通信することで、どのコンピューティングサービスタスクがサーバコンピュートサブシステム１０６によって実行され得るかを決定することができる。いくつかの実施形態において、管理コンピュートサブシステム１０８は、ネットワーク接続を介して外部エンティティまたはシステムと通信して仮想マシンの作業負荷を決定することで、パワーオンリセット後に処理及びメモリリソースを構成することができる。
【００６９】
プライベートメモリ４０８は、管理コンピュートサブシステム１０８のプライベートな利用のためのメモリを含むことができる。プライベートメモリ４０８には、ランダムアクセスメモリ（例えばＳＲＡＭまたはＤＲＡＭ）などの揮発性メモリが含まれて良い。例えば管理コンピュートサブシステム１０８は、データの一時的な記憶のためのプライベートメモリ４０８を利用する場合もある。
【００７０】
周辺装置４１０は、管理コンピュートサブシステム１０８のためのプライベート周辺装置を含んで良い。いくつかの実施形態において、プライベート周辺装置４１０の一部は、汎用入／出力装置、万能非同期送受信機などＳｏＣ１０２の異なるサブシステムのリブート及び電力管理のためのデバイスを含む場合もある。例えば周辺装置４１０は、他のサブシステムに対して電力を供給する前にルート−オブ−トラストを確立するために電源投入時に実行することができるブートファームウェアを含めたトラステッドな管理モジュールを含むことができる。いくつかの実施形態において、電力管理は、電圧操作、クロック操作または任意の他の好適な方法を通して行うことができる。いくつかの実施形態において、周辺装置４１０の一部は、電力管理を実現することで、ＳｏＣ１０２上の各々のサブシステムに関する電力ドメインを制御し、これにより各々のサブシステムまたはそのコンポーネントの一部を他のものから独立して電源を入れたり切ったりすることを可能にすることができる。
【００７１】
いくつかの実施形態において、管理コンピュートサブシステム１０８は、ＳｏＣ１０２全体のコールド電源投入時に最初に稼働するように構成されて良い。一部の例では、管理コンピュートサブシステム１０８は、他のサブシステムに電源が入れられる前に、それらに関するルート−オブ−トラストを確立するために最初に電源が入れられて良い。例えばネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６に関するブートプロセスは、管理コンピュートサブシステム１０８に関するコアブートの下で階層的に考慮されて良い。いくつかの実施形態において、その後ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６上で稼働するソフトウェアは、管理コンピュートサブシステム１０８によって、ホストシステム１１０に対応付けられたプライベートキイまたはホストシステム１１０によって提供された特定のサービスを利用して署名されたものとして認証されて良い。これにより、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６の両方のプロセスがトラストテッドで独立したブートローダーを介して起動することを可能にすることができる。
【００７２】
いくつかの実施形態において、管理コンピュートサブシステム１０８は、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６の両方の実際の動作に影響を与えることなく、別個のリセットラインを使用してリセット／リブートされて良い。
【００７３】
図５は、Ｉ／Ｏサブシステム２０２の一部のコンポーネントを示す。Ｉ／Ｏサブシステム２０２は、バスインターフェースユニット５０２と、ネットワークインターフェースユニット５０４と、Ｉ／Ｏインターフェースユニット５０６とを含んで良い。
【００７４】
バスインターフェースユニット５０２は、内部または外部コンポーネントと通信するために１つまたは複数のバスインターフェースを含んで良い。例えばバスインターフェースユニット５０２は、サーバコンピュートサブシステム１０６と接続するための第１のインターフェースと、ホストシステム１１０と接続するための第２のインターフェースとを含むことができる。いくつかの実施形態において、第１のインターフェース及び第２のインターフェースはＰＣＩｅインターフェースであって良い。例えばバスインターフェースユニット５０２は、他のＰＣＩｅポートに接続するための１つまたは複数のＰＣＩｅポートを含む場合がある。バスインターフェースユニット５０２は、ルートコンプレックス（ＲＣ）ポート及びエンドポイントポート（ＥＰ）を含んで良い。図３Ａに戻って参照すると、ネットワークコンピュートサブシステム１０４は、Ｉ／Ｏサブシステム２０２におけるＰＣＩｅポート及びバスインターフェースユニット３２２におけるＰＣＩｅポートを介してサーバコンピュートサブシステム１０６と通信することができる。同様に図１に戻って参照すると、ネットワークコンピュートサブシステム１０４は、Ｉ／Ｏサブシステム２０２におけるＰＣＩｅポート及びホストシステム１１０におけるＰＣＩｅポートを介してホストシステム１１０と通信することができる。
【００７５】
ネットワークインターフェースユニット５０４は、例えば図２を参照して考察したインターフェース２１４などのネットワークに接続するためのインターフェースを含んで良い。いくつかの実施形態において、ネットワークインターフェースユニット５０４は、イーサネットネットワークに接続するために１つまたは複数のイーサネットＭＡＣｓ（例えば１０／２５／４０／５０Ｇｂ／秒）を含む場合がある。例えばイーサネットＭＡＣｓは、ネットワークに接続するためにＰＨＹ（物理層）デバイスにインターフェース接続するためのイーサネットポートを提供することができる。図３Ａに戻って参照すると、１つまたは複数のイーサネットＭＡＣｓは、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク３０６に接続することができる。
【００７６】
Ｉ／Ｏインターフェースユニット５０６は、Ｉ／Ｏ接続のために１つまたは複数のインターフェースを含んで良い。例えばＩ／Ｏインターフェースユニット５０６は、ネットワーク接続（例えばイーサネットなど）のため及び外部バスインターフェース（例えばＰＣＩｅ）のためのピンまたは相互接続部とインターフェース接続するように構成されて良い。いくつかの実施形態において、Ｉ／Ｏインターフェースユニット５０６は、１つまたは複数の入／出力信号を選択するためにＩ／Ｏマルチプレクサを含む場合もある。いくつかの実施形態において、Ｉ／Ｏマルチプレクサは、Ｉ／ＯのためにＳＥＲＤＥＳ(シリアライズ−デシリアライズ)インターフェースを含む場合もある。
【００７７】
図６は、共有リソースユニット２０８の一部のコンポーネントを示す。特定の実施形態において、共有リソースユニット２０８は、ジッターを生じることなく、２つのサブシステムによって共有され得るコンポーネント、例えばプロセス状態を含まないコンポーネントを含むことができる。共有リソースユニット２０８は、メモリモジュール６０２、ランダム発生器モジュール６０４、プロセッサ間通信モジュール６０６及びスクラッチパッドメモリモジュール６０８を含んで良い。
【００７８】
メモリモジュール６０２は、フラッシュメモリなどの不揮発性メモリ記憶装置を含んで良い。例えばメモリモジュール６０２は、低レベルのフラッシュメモリ管理を実現するために組み込みマルチ−メディアコントローラ（ｅＭＭＣ）またはセキュアデジタル（ＳＤ）を含む場合もある。いくつかの実施形態において、メモリモジュール６０２は、例えばＢＩＯＳ（ベーシックインプット/アウトプットシステム）、ブートローダーなどの制御コードを記憶するのに使用される場合もある。例えばメモリモジュール６０２は、両方のサブシステムによって共有され得るコードを含むことができる。
【００７９】
ランダム発生器モジュール６０４は、数または符号のランダムなシーケンスを生成するように構成されて良い。例えばデータなどの暗号用途または任意のそのような用途のために乱数を使用することができる。いくつかの実施形態において、ランダム発生器モジュール６０４を使用して、電源投入またはリブート後に各々のサブシステムを立ち上げる前に各々のサブシステムを認証するために、管理コンピュートサブシステム１０８によって使用され得る乱数またはシーケンスを生成することができる。
【００８０】
プロセッサ間通信モジュール６０６を使用して、２つのサブシステムに対応付けられた異なるプロセス間の通信を促進することができる。例えばメッセージの受け渡し、同期、共有メモリ及びリモートプロシージャコール（ＲＰＣ）などの種々の機能のためにデータをやりとりするための通信メイルボックスとしてプロセッサ間通信モジュール６０６を使用することもできる。
【００８１】
両方のサブシステムによって使用され得るデータの一時的な記憶にスクラッチパッドメモリモジュール６０８が使用されて良い。いくつかの実施形態において、スクラッチパッドメモリモジュール６０８は、例えば命令または中間値などの高速検索のために少量のデータを記憶するために高速メモリ（例えば２ＭＢ  ＳＲＡＭ）を含む場合がある。
［図７は、ＳｏＣを構成し起動するための一例の方法を示す。］
【００８２】
図７は、開示される実施形態の１つまたは複数の態様によるフロー図７００を示す。プロセス７００の一部または全て（あるいは本明細書に記載される任意の他のプロセスまたは変形形態及び／またはその組み合わせ）は、実行可能な命令を有するように構成された１つまたは複数のコンピュータシステムの制御の下に実行されて良く、１つまたは複数のプロセッサ上であるいはハードウェアまたはその組み合わせによってまとめて実行されるコードとして（例えばファームウェア、実行可能命令、１つまたは複数のコンピュータプログラムあるいは１つまたは複数のアプリケーション）履行される場合もある。コードは、例えば１つまたは複数のプロセッサによって実行可能な複数の命令を含み得るコンピュータプログラムの形態でコンピュータ可読記憶媒体上に記憶されて良い。コンピュータ可読記憶媒体は非一時的であって良い。
【００８３】
ステップ７０２において、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６が起動されて良い。例えば管理コンピュートサブシステム１０８がネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６を起動させることができる。ネットワークコンピュートサブシステム１０４は、第１の電力ドメイン上にあって良く、サーバコンピュートサブシステム１０６は、第２の電力ドメイン上にあって良い。いくつかの実施形態において、管理コンピュートサブシステム１０８が最初に起動され、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６が起動される前に、それらためのルート−オブ−トラストを確立することができる。例えば管理コンピュートサブシステム１０８は、電源投入時にブートファームウェアを実行することでルート−オブ−トラストを確立する場合もある。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６に関するブートプロセスは、管理コンピュートサブシステム１０８に関するコアブートの下に階層的に考慮されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６上でその後稼働することになるソフトウェアは、ホストシステム１１０に対応付けられたプライベートキイまたはホストシステム１１０によって提供される特定のサービスを利用して署名されたものとして管理コンピュートサブシステム１０８によって認証される。これにより、ネットワークコンピュートサブシステム１０４及びサーバコンピュートサブシステム１０６の両方のプロセスをトラストテッドで独立したブートローダーを介して起動することが可能になる。
【００８４】
ステップ７０４において、管理コンピュートサブシステム１０８は、ネットワークコンピュートサブシステム１０４のための処理及びメモリリソースの専用プールから１つまたは複数の専用の処理及びメモリリソースをネットワークコンピュートサブシステム１０４に割り当てることによって、ネットワークコンピュートサブシステム１０４のための処理及びメモリリソースを構成することができる。いくつかの実施形態において、管理コンピュートサブシステム１０８は、ソフトウェアまたはハードウェア構成に基づいてネットワークコンピュートサブシステム１０４に関する処理及びメモリリソースの構成を決定するように構成されて良い。例えば管理コンピュートサブシステム１０８は、ソフトウェアレジスタあるいはＳｏＣ１０２の１つまたは複数のピンの状態をチェックすることで種々の構成を決定することができる。例えば図３Ａに戻って参照すると、管理コンピュートサブシステム１０８は、ネットワークコンピュートサブシステム１０４が１６コアプロセッサを含み、Ｌ２キャッシュ３０４が２ＭＢであり、Ｌ３キャッシュ３０８が１６ＭＢであり得ることを決定することができる。管理コンピュートサブシステム１０８はまた、ネットワークコンピュートサブシステム１０４のプロセッサ及びメモリ容量に基づいてネットワークコンピュートサブシステム１０４に関するネットワークコンピュートサブシステムメモリコントローラ３１０及びメモリチャネル３１２の数を決定することもできる。
【００８５】
ステップ７０６において、管理コンピュートサブシステム１０８は、サーバコンピュートサブシステム１０６のための処理及びメモリリソースの専用プールから１つまたは複数の専用処理及びメモリリソースをサーバコンピュートサブシステム１０６に割り当てることによって、サーバコンピュートサブシステム１０６のための処理及びメモリリソースを構成することができる。いくつかの実施形態において、管理コンピュートサブシステム１０８は、ソフトウェアまたはハードウェア構成に基づいてサーバコンピュートサブシステム１０６に関する処理及びメモリリソースの構成を決定するように構成されて良い。例えば管理コンピュートサブシステム１０８は、ソフトウェアレジスタあるいはＳｏＣ１０２の１つまたは複数のピンの状態をチェックすることで種々の構成を決定することができる。例えば図３Ａに戻って参照すると、管理コンピュートサブシステム１０８は、サーバコンピュートサブシステム１０６が２４コアプロセッサを含み、Ｌ２キャッシュ３１６が４ＭＢであり、Ｌ３キャッシュ３２０が２４ＭＢであり得ることを決定することができる。管理コンピュートサブシステム１０８はまた、サーバコンピュートサブシステム１０６のプロセッサ及びメモリ容量に基づいてサーバコンピュートサブシステム１０６に関するサーバコンピュートサブシステムメモリコントローラ３２４及びメモリチャネル３２６の数を決定することもできる。
【００８６】
ステップ７０８において、サーバコンピュートサブシステム１０６は、ネットワークコンピュートサブシステム１０４のＩ／Ｏサブシステム２０２を介してホストシステム１１０と通信することができる。例えば図３Ａに戻って参照すると、サーバコンピュートサブシステム１０６は、バスインターフェース２１２を利用してＩ／Ｏサブシステム２０２と通信することができる。Ｉ／Ｏサブシステム２０２はさらに、インターフェース１１２を利用してホストシステム１１０と通信することができる。いくつかの実施形態において、サーバコンピュートサブシステム１０６は、例えばインターフェース２１４を利用してＩ／Ｏサブシステム２０２を介してネットワークと通信することができる。
【００８７】
少なくとも一部の実施形態は、ＳｏＣ上にサーバコンピュートサブシステムのインスタンスを設けることによって最低限のコストで追加のサーバを提供することができる。ＳｏＣは、各々のコンピュートサブシステムが専用の処理及びメモリリソースを有することができる複数のコンピュートサブシステムを備えることができる。各々のコンピュートサブシステムは、別々に電源を入れたりリセットしたりすることができる。さらに専用リソースを有することによって、他のコンピュートサブシステムの性能に影響を与えることなく各々のコンピュートサブシステムが独立して機能し、これによりジッター及びセキュリティリスクを最小限にすることを可能にすることができる。
［図８及び図９は、本発明の実施形態を実施することができる特定の環境の例を示しており、以下のセクションは他の用途において検討されているため、所望であればこのセクションはざっと目を通すだけでも良い。この用途を検討する際、それらが、単にあなた方の実装形態だけでなく、様々な状況に適用し得るような態様を包含することを望んでいることを覚えておいて下さい］
【００８８】
図８は、少なくとも一例の実施形態による、１つまたは複数のネットワークを介して接続された１つまたは複数のサービスプロバイダコンピュータ及び／またはユーザデバイスを含む本明細書に記載される機能及びシステムに関する一例のアーキテクチャを示す。図１〜図７で考察されたデバイスは、図８に記載されるコンピューティングデバイスの１つまたは複数のコンポーネントを利用することができ、図８に記載される１つまたは複数のコンピューティングデバイスを代表して良い。アーキテクチャ８００において、１人または複数のユーザ８０２はユーザコンピューティングデバイス８０４（１）から（Ｎ）（まとめてユーザデバイス８０４）を利用して１つまたは複数のネットワーク８０８を介してアプリケーション８０６（例えばウェブブラウザまたはモバイルデバイスアプリケーション）にアクセスすることができる。一部の態様において、アプリケーション８０６は、コンピューティングリソースサービスまたはサービスプロバイダによってホストされる、管理される及び／または提供される場合がある。１つまたは複数のサービスプロバイダコンピュータ８１０が、１人または複数のユーザ８０２がやり取りすることができるユーザデバイス８０４上で稼働するように構成されたネイティブアプリケーションを提供する場合がある。１つまたは複数のサービスプロバイダコンピュータ８１０は、一部の例では、これに限定するものではないがクライアントエンティティ、低レイテンシーデータストレージ、永続的なデータストレージ、データアクセス、管理、仮想化、クラウドベースのソフトウェアソリューション、電子コンテンツ性能管理などのコンピューティングリソースを提供することができる。また１つまたは複数のサービスプロバイダコンピュータ８１０は、ウェブホスティング、コンピュータアプリケーション開発及び／または実装プラットフォーム、前述の組み合わせなどを１人または複数のユーザ８０２に提供するように操作可能であって良い。１つまたは複数のサービスプロバイダコンピュータ８１０は、一部の例では、１つまたは複数のサードパーティコンピュータ８１２と通信する場合もある。
【００８９】
一部の例では、ネットワーク８０８は、例えばケーブルネットワーク、インターネット、無線ネットワーク、携帯電話ネットワークならびに他のプライベート及び／またはパブリックネットワークなどの１つのネットワークまたは多くの異なるタイプのネットワークの組み合わせを含む場合がある。例示される例は、１つまたは複数のネットワーク８０８を介してアプリケーション８０６にアクセスする１人または複数のユーザ８０２であるが、記載される技術は、ユーザが、キオスクまたは任意の他の方法を介して固定電話を介して１つまたは複数のユーザデバイス８０４を介して１つまたは複数のサービスプロバイダコンピュータ８１０とやり取りする例にも記載される技術を等しく適用することもできる。記載される技術は、他のクライアント／サーバ構成（例えばセットトップボックスなど）、ならびに非クライアント／サーバ構成（例えばローカルに記憶されたアプリケーションなど）にも適用され得ることにも留意されたい。
【００９０】
上記に簡単に記載したように、アプリケーション８０６によって１人または複数のユーザ８０２がウェブコンテンツ（例えばウェブページ、音楽、ビデオなど）にアクセスするなど、１つまたは複数のサービスプロバイダコンピュータ８１０とやり取りすることを可能にすることができる。サーバのクラスタ内にまたはサーバファームとして恐らく構成された１つまたは複数のサービスプロバイダコンピュータ８１０は、アプリケーション８０６及び／またはクラウドベースのソフトウェアサービスをホストすることができる。アプリケーション８０６をホストするのに他のサーバアーキテクチャを使用することもできる。アプリケーション８０６は、多くのユーザ８０２からのリクエストを処理し、応答して多様なアイテムウェブページを供給することが可能であって良い。アプリケーション８０６は、ソーシャルネットワーキングサイト、オンライン小売り業者、情報サイト、ブログサイト、サーチエンジンサイト、ニュース及びエンターテインメントサイトなどを含め、ユーザインタラクションをサポートする任意のタイプのウェブサイトを提供することができる。上記で考察したように、記載される技術は、例えば１つまたは複数のユーザデバイス８０４上で稼働する他のアプリケーションなどのように、アプリケーション８０６以外でも同様に履行することができる。
【００９１】
１つまたは複数のユーザデバイス８０４は、これに限定するものではないが携帯電話、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、シンクライアントデバイス、タブレットＰＣ、電子ブック（ｅ−ブック）リーダーなどを任意のタイプのコンピューティングデバイスであって良い。一部の例では、１つまたは複数のユーザデバイス８０４は、１つまたは複数のネットワーク８０８を介してまたは他のネットワーク接続を介して１つまたは複数のサービスプロバイダコンピュータ８１０と通信することができる。加えて１つまたは複数のユーザデバイス８０４は、１つまたは複数のサービスプロバイダコンピュータ８１０によって管理される、制御される分散システムの一部である、あるいはそうでなければ１つまたは複数のサービスプロバイダコンピュータ８１０の一部である（例えばサービスプロバイダコンピュータ８１０と一体化したコンソールデバイス）場合もある。
【００９２】
例示の一構成において、１つまたは複数のユーザデバイス８０４は、少なくとも１つのメモリ８１４と、１つまたは複数の処理装置（または１つまたは複数のプロセッサ８１６）とを含んで良い。１つまたは複数のプロセッサ８１６は必要に応じて、ハードウェア、コンピュータ実行可能命令、ファームウェアまたはその組み合わせにおいて履行されて良い。１つまたは複数のプロセッサ８１６のコンピュータ実行可能命令またはファームウェアインプリメンテーションは、記載される様々な機能を果たすために任意の好適なプログラミング言語で書かれたコンピュータ実行可能またはマシン実行可能命令を含んで良い。１つまたは複数のユーザデバイス８０４はまた、１つまたは複数のユーザデバイス８０４に対応付けられた地理的位置情報を提供する及び／または記録するためのジオロケーションデバイス（例えば全地球測位システム（ＧＰＳ）装置など）を含む場合もある。
【００９３】
メモリ８１４は、１つまたは複数のプロセッサ８１６上でロード可能かつ実行可能なプログラム命令ならびにこれらのプログラムの実行時に生成されるデータを記憶することができる。１つまたは複数のユーザデバイス８０４の構成及びタイプに応じて、メモリ８１４は、揮発性（ランダムアクセスメモリ（ＲＡＭ））及び／または不揮発性（リードオンリーメモリ（ＲＯＭ）、フラッシュメモリなど）であって良い。１つまたは複数のユーザデバイス８０４はまた、これに限定するものではないが磁気記憶装置、光ディスク及び／またはテープ記憶装置を含めた補助的な取り外し可能な記憶装置及び／または非取り外し可能な記憶装置を含む場合もある。ディスクドライブ及びその関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構想、プログラムモジュール及びコンピューティングデバイスに関する他のデータの不揮発性記憶装置を提供することができる。一部の実装形態では、メモリ８１４は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）またはＲＯＭなどの複数の異なるタイプのメモリを含む場合もある。
【００９４】
より詳細なメモリ８１４の内容に注目すると、メモリ８１４は、ブラウザアプリケーション８０６または専用アプリケーション（例えばスマートフォンアプリケーション、タブレットアプリケーションなど）を介して少なくとも１つのユーザが提供する入力要素または電子サービスウェブページを含めた、本明細書に開示される機構を履行するためのオペレーティングシステム及び１つまたは複数のアプリケーションプログラムまたはサービスを含む場合がある。ブラウザアプリケーション８０６は、ウェブサイトあるいは１つまたは複数のサービスプロバイダコンピュータ８１０とやり取りするために他のインターフェースを受信、記憶及び／または表示するように構成されて良い。加えてメモリ８１４は、これに限定するものではないがユーザＩＤ、パスワード及び／または他のユーザ情報などのアクセス信用証明及び／または他のユーザ情報を記憶することもできる。一部の例ではユーザ情報は、これに限定するものではないがデバイスＩＤ、クッキー及びＩＰアドレス、位置などのアカウントアクセスリクエストを確認するための情報を含む場合もある。加えてユーザ情報には、ユーザデバイス８０４によって取得されたセキュリティに関する質問または地理的な位置に対するユーザが提供した応答が含まれる場合もある。
【００９５】
一部の態様において、１つまたは複数のサービスプロバイダコンピュータ８１０はまた、携帯電話、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、シンクライアントデバイス、タブレットＰＣ、などの任意のタイプのコンピューティングデバイスであって良い。加えて、一部の実施形態では、１つまたは複数のサービスプロバイダコンピュータ８１０は、ホストコンピューティング環境に実装された１つまたは複数の仮想マシンによって実行されることに留意されたい。このホストコンピューティング環境は、１つまたは複数の迅速にプロビジョニングされ解放されるコンピューティングリソースを含むことができ、これらのコンピューティングリソースはコンピューティング、ネットワーキング及び／または記憶装置を含むことができる。またホストコンピューティング環境は、クラウドコンピューティング環境と呼ばれる場合もある。いくつかの実施例において、１つまたは複数のサービスプロバイダコンピュータ８１０は、１つまたは複数のネットワーク８０８を介してまたは他のネットワーク接続を介して１つまたは複数のユーザデバイス８０４と通信することができる。１つまたは複数のサービスプロバイダコンピュータ８１０はクラスタ内にサーバファームとして、または互いに関連付けられない個々のサーバとして恐らく配置された１つまたは複数のサーバを含むことができる。これらのサーバは、統合された分散コンピューティング環境の一部として本明細書に記載されるキーワード分類及び格付け機構を履行するように構成されて良い。
【００９６】
１つの例示の構成において、１つまたは複数のサービスプロバイダコンピュータ８１０は、少なくとも１つのメモリ８１８と、１つまたは複数の処理装置（例えば１つまたは複数のプロセッサ８２０）とを含むことができる。１つまたは複数のプロセッサ８２０は必要に応じて、ハードウェア、コンピュータ実行可能命令、ファームウェアまたはその組み合わせにおいて履行されて良い。１つまたは複数のプロセッサ８２０のコンピュータ実行可能命令またはファームウェアインプリメンテーションは、記載される様々な機能を果たすために任意の好適なプログラミング言語で書かれたコンピュータ実行可能またはマシン実行可能命令を含んで良い。
【００９７】
一部の例において、１つまたは複数のハードウェアプロセッサ８２０は、シングルコアプロセッサまたはマルチコアプロセッサであって良い。マルチコアプロセッサは、同一のプロセッサの中に複数の処理装置を含むことができる。いくつかの実施形態において、マルチコアプロセッサは、マルチコア間でバス及び第２または第３レベルのキャッシュなど特定のリソースを共有することができる。一部の例では、シングルまたはマルチコアプロセッサにおける各々のコアはまた、複数の実行中の論理プロセッサ（またはスレッド）を含む場合もある。そのようなコアでは（複数の論理プロセッサをサポートする）実行パイプラインの複数のステージ及びより下層レベルのキャッシュが共有される場合もある。
【００９８】
メモリ８１８は、１つまたは複数のプロセッサ８２０上でロード可能かつ実行可能なプログラム命令ならびにこれらのプログラムの実行時に生成されるデータを記憶することができる。１つまたは複数のサービスプロバイダコンピュータ８１０の構成及びタイプに応じて、メモリ８１８は、揮発性（ランダムアクセスメモリ（ＲＡＭ））及び／または不揮発性（リードオンリーメモリ（ＲＯＭ）、フラッシュメモリなど）であって良い。１つまたは複数のサービスプロバイダコンピュータ８１０またはサーバはまた、補助的な記憶装置８２２を含む場合もあり、これは取り外し可能な記憶装置及び／または非取り外し可能な記憶装置を含めて良い。補助的な記憶装置８２２には、これに限定するものではないが磁気記憶装置、光ディスク及び／またはテープ記憶装置などが含まれて良い。ディスクドライブ及びその関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構想、プログラムモジュール及びコンピューティングデバイスに関する他のデータの不揮発性記憶装置を提供することができる。一部の実装形態では、メモリ８１８は、ＳＲＡＭ、ＤＲＡＭまたはＲＯＭなどの複数の異なるタイプのメモリを含む場合もある。
【００９９】
共に取り外し可能及び非取り外し可能なメモリ８１８、補助的な記憶装置８２２はコンピュータ可読記憶媒体の全ての例である。例えばコンピュータ可読記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術において実装された揮発性または不揮発性、取り外し可能または非取り外し可能な媒体が含まれて良い。メモリ８１８及び補助的な記憶装置８２２は、コンピュータ記憶媒体の全ての例である。１つまたは複数のサービスプロバイダコンピュータ８１０内に存在し得るコンピュータ記憶媒体の追加の例には、これに限定するものではないがＰＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤまたは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスあるいは所望の情報を記憶するのに使用することができ、１つまたは複数のサービスプロバイダコンピュータ８１０によってアクセスすることができる任意の他の媒体が含まれて良い。上記のいずれかの組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１００】
あるいはコンピュータ可読通信媒体が、コンピュータ可読命令、プログラムモジュール、または搬送波または他の伝送方法などのデータ信号内で伝送される他のデータを含む場合もある。しかしながら本明細書で使用される際、コンピュータ可読媒体は、コンピュータ可読通信媒体を含まない。
【０１０１】
１つまたは複数のサービスプロバイダコンピュータ８１０はまた、１つまたは複数のサービスプロバイダコンピュータ８１０が、記憶したデータベース、別のコンピューティングデバイスまたはサーバ、ユーザ端末及び／または１つまたは複数のネットワーク８０８上の他のデバイスと通信することを可能にする１つまたは複数の通信接続８２４を含む場合もある。１つまたは複数のサービスプロバイダコンピュータ８１０はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、ディスプレイ、スピーカー、プリンターなどの１つまたは複数のＩ／Ｏ装置８２６を含む場合もある。
【０１０２】
メモリ８１８は、オペレーティングシステム８２８、１つまたは複数のデータストア８３０及び／または光学式の管理コンピュートサブシステムモジュール８３２、ネットワークコンピュートサブシステムモジュール８３４及びサーバコンピュートサブシステムモジュール８３６を含めた本明細書で開示される機構を履行するための１つまたは複数のアプリケーションプログラムまたはサービスを含むことができる。本明細書に記載されるモジュールは、ソフトウェアモジュール、ハードウェアモジュールまたはそれらの好適な組み合わせであって良い。モジュールがソフトウェアモジュールである場合、これらのモジュールは、非一時的コンピュータ可読媒体上で具現化され、本明細書に記載されるコンピュータシステムのいずれかにおけるプロセッサによって処理することができる。いくつかの実施形態において、図１に戻って参照すると、管理コンピュートサブシステムモジュール８３２は、管理コンピュートサブシステム１０８の機能を含むことができ、ネットワークコンピュートサブシステムモジュール８３４はネットワークコンピュートサブシステム１０４の機能を含むことができ、サーバコンピュートサブシステムモジュール８３６は、サーバコンピュートサブシステム１０６の機能を含むことができる。記載されるプロセス及びアーキテクチャは、任意のユーザインタラクションに先だってリアルタイムで、または非同期式に実行することができることに留意されたい。モジュールは、図８において提案されるやり方で構成されて良い、及び／または本明細書に記載される機能は、別個のモジュールとして存在する１つまたは複数のモジュールによって提供することができる、及び／または本明細書に記載されるモジュール機能は複数のモジュールに及ぶ場合があることに留意されたい。
【０１０３】
図９は、種々の実施形態による実装態様に関する一例の環境９００の態様を示す。理解されるように、説明する目的でウェブベース環境が使用されるが、必要に応じて種々の環境を使用して様々な実施形態を履行することができる。環境には、電子クライアントデバイス９０２が含まれ、これは適切なネットワーク９０４を介してリクエスト、メッセージまたは情報を送信し、デバイスのユーザに戻すように情報を伝えるように動作可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子ブックリーダーなどが含まれる。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワークまたは任意の他のそのようなネットワークあるいはその組み合わせを含めた任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されたネットワーク及び／または環境のタイプに少なくとも幾分左右される可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントはよく知られているため、本明細書では詳細に考察しないことにする。ネットワークを介する通信は、有線または無線接続及びその組み合わせによって可能にすることができる。この例において、この環境は、リクエストを受信しそれに応答する内容を提供するためにウェブサーバ９０６を含むため、ネットワークにインターネットが含まれるが、当業者には明白であるように、他のネットワークに関して、同様の目的を果たす代替のデバイスを使用することも可能である。
【０１０４】
例示の環境は、少なくとも１つのアプリケーションサーバ９０８と、データストア９１０とを含む。適切なデータストアからデータを取得するなどのタスクを行うためにやり取りすることができ、一続きにつながれるまたはその他のやり方で構成され得るいくつかのアプリケーションサーバ、レイヤ、または他の要素、プロセスまたはコンポーネントが存在する可能性があることを理解されたい。本明細書で使用される際、「データストア」という用語は、データを記憶する、データにアクセスする、データを検索することが可能な任意のデバイスまたはデバイスの組み合わせを指しており、これらは、任意の標準的な分散またはクラスタ環境においてデータサーバ、データベース、データ記憶装置及びデータ記憶媒体の任意の組み合わせ及びそのいくつかを含むことができる。アプリケーションサーバは、必要に応じてデータストアと組み合わせるための任意の適切なハードウェア及びソフトウェアを含むことで、クライアントデバイスに関する１つまたは複数のアプリケーションの態様を実行し、アプリケーションに関するデータアクセス及びビジネスロジックの大半を扱うことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに伝えるべきテキスト、グラフィック、音響及び／またはビデオなどのコンテンツを生成することが可能であり、これらはハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）またはこの例における別の適切な構造化言語の形態でウェブサーバによってユーザに提供されて良い。全てのリクエスト及び応答の処理ならびにクライアントデバイス９０２とアプリケーションサーバ９０８間のコンテンツの配信は、ウェブサーバによって対処することができる。本明細書で考察される構造化データは、本明細書の他の場所で考察されるいずれの適切なデバイスまたはホストマシン上でも実行することができるため、ウェブ及びアプリケーションサーバは欠かせないわけではなく、単に一例のコンポーネントであることを理解されたい。
【０１０５】
データストア９１０は、複数の別個のデータタブレット、データベースまたは他のデータ記憶機構及び特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば例示されるデータストアは、製品データ９１２及びユーザ情報９１６を記憶するための機構を含み、これらを使用して製造側のためにコンテンツを提供することができる。データストアはまた、ログデータ９１４のための機構を含むように示されており、このデータは、報告、分析または他のそういった目的のために使用することができる。例えばページイメージ情報及びアクセス権利情報など、データストアに記憶される必要がある多くの他の態様が存在する可能性があり、これらは必要に応じて上記に列記した機構のいずれかにまたはデータストア９１０内の補助機構に記憶することができることを理解されたい。データストア９１０は、それに関連するロジックを通してアプリケーションサーバ９０８から命令を受信し、それに応答してデータを取得する、更新するあるいはそうでなければ処理するように動作可能である。一例において、ユーザは、特定のタイプのアイテムに関してサーチリクエストを発信する場合がある。このようなケースでは、データストアは、ユーザ情報にアクセスしてユーザの同一性を検証する場合があり、カタログ詳細情報にアクセスしてそのタイプのアイテムに関する情報を取得することができる。この情報はその後、ユーザがユーザデバイス９０２上のブラウザを介して閲覧することができるウェブページ上にリストを形成するなどしてユーザに返すことができる。対象の特定のアイテムに関する情報は、専用ページまたはブラウザのウィンドウで閲覧することができる。
【０１０６】
各々のサーバは典型的には、そのサーバの一般的な管理及び動作に関する実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的にはサーバのプロセッサによって実行される際、サーバがその目的とする機能を果たすことを可能にする命令を記憶するコンピュータ可読記憶媒体（例えばハードディスク、ランダムアクセスメモリ、リードオンリーメモリなど）を含む。サーバのオペレーティングシステム及び全体の機能にとって好適なインプリメンテーションは既知であり、商業的に利用可能であり、とりわけ本明細書の開示に照らしてみることで当業者によって容易に履行される。
【０１０７】
一実施形態における環境は、１つまたは複数のコンピュータネットワークまたは直接接続を利用して通信リンクを介して相互に接続された複数のコンピュータシステム及びコンポーネントを利用する分散コンピューティング環境である。しかしながらそのようなシステムは、図９に例示されるものより少ないまたはこれより多い数のコンポーネントを有するシステムにおいても等しく適切に動作することが可能であることは当業者によって理解されるであろう。よって図９におけるシステム９００の描写は、本質的に例示であるとみなすべきであり、本開示の範囲を制限するものではない。
【０１０８】
種々の実施形態はさらに、広範な種類の動作環境において履行することができ、これらは一部のケースでは、いくつかのアプリケーションのいずれかを作動させるのに使用することができる１つまたは複数のユーザコンピュータ、コンピューティングデバイスまたは処理デバイスを含むことができる。ユーザまたはクライアントデバイスは、例えば標準的なオペレーティングシステム上で稼働するデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを稼働し、いくつかのネットワーキング及びメッセージングプロトコルをサポートすることが可能な携帯電話、無線及びハンドヘルドデバイスなどいくつかの汎用パーソナルコンピュータのいずれかを含むことができる。そのようなシステムはまた、多様な商業的に利用可能なオペレーティングシステムならびに開発及びデータベース管理などの目的の他の既知のアプリケーションのいずれかを稼働するいくつかのワークステーションを含むことができる。このようなデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム及びネットワークを介して通信することが可能な他のデバイスなどの他の電子デバイスも含むことができる。
【０１０９】
大半の実施形態は、多様な商業的に利用可能なプロトコルのいずれかを利用する通信をサポートするために、トランスミッションコントロールプロトコル／インターネットプロトコル（「ＴＣＰ/ＩＰ」）、オープンシステムインターコネクション（「ＯＳＩ」）、ファイルトランスファプロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ」）、ネットワークファイルシステム（「ＮＦＳ」）、コモンインターネットファイルシステム（「ＣＩＦＳ」）及びアップルトークなどの当業者によく知られた少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク及びそれらの何らかの組み合わせであって良い。
【０１１０】
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキストトランスファープロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、コモンゲートウェイインターフェース（「ＣＧＩ」）サーバ、データサーバ、ジャバサーバ及びビジネスアプリケーションサーバを含めた多様なサーバまたは中間層アプリケーションのいずれかを稼働することができる。１つまたは複数のサーバはまた、Ｊａｖａ（登録商標）、Ｃ、Ｃ#またはＣ++などのプログラミング言語で、あるいはパール、パイソンまたはＴＣＬならびにその組み合わせなどの任意のスクリプト言語で書かれた１つまたは複数のスクリプトまたはプログラムとして履行され得る１つまたは複数のウェブアプリケーションを実行することによってユーザデバイスからのリクエストに応答してプログラムまたはスクリプトを実行することが可能であって良い。１つまたは複数のサーバは、限定ではなく、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）及びＩＢＭ（登録商標）から商業的に利用可能なものを含めたデータベースを含む場合もある。
【０１１１】
環境は、上記で考察したような多様な種類のデータストア及び他のメモリ及び記憶媒体を含むことができる。これらは、１つまたは複数のコンピュータに対してローカルな記憶媒体あるいはネットワークにわたる一部または全てのコンピュータからリモートな記憶媒体など様々な場所に常駐することができる。特定のセットの実施形態において、情報は当業者によく知られたストレージ−エリアネットワーク（「ＳＡＮ」）に属する場合もある。同様にコンピュータ、サーバまたは他のネットワークデバイスに属する機能を果たすための一部の必須ファイルが必要に応じてローカルに及び／またはリモートに記憶される場合もある。システムがコンピュータ化されたデバイスを含む場合、各々のそのようなデバイスは、バスを介して電気的に結合され得るハードウェア要素を含むことができ、これらの要素には、例えば少なくとも１つの中央処理装置（「ＣＰＵ」）、少なくとも１つの入力デバイス（例えばマウス、キーボード、コントローラ、タッチスクリーンまたはキイパッド）及び少なくとも１つの出力デバイス（例えばディスプレイデバイス、プリントまたはスピーカ）が含まれる。そのようなシステムはまた、例えばディスクドライブ、光学記憶装置などの１つまたは複数の記憶装置、及びランダムアクセスメモリ（「ＲＡＭ」）またはリードオンリーメモリ（「ＲＯＭ」）などのソリッドステート記憶装置ならびに取り外し可能な媒体デバイス、メモリカード、フラッシュカードなどを含む場合もある。
【０１１２】
そのようなデバイスはまた、上記で考察したようにコンピュータ可読記憶媒体リーダー、通信デバイス（例えばモデム、ネットワークカード（無線または有線）、赤外線通信デバイスなど）、及びワーキングメモリを含むこともできる。コンピュータ可読記憶媒体リーダーは、リモートな、ローカルな、固定式の及び／または取り外し可能な記憶装置を表すコンピュータ可読記憶媒体、ならびにコンピュータ可読情報を一時的に及び／または永続的に収容する、記憶する、伝達する及び抽出するための記憶媒体と接続させる、またはこれを収容するように構成される場合がある。システム及び種々のデバイスは典型的には、少なくとも１つのワーキングメモリデバイス内に位置するいくつかのソフトウェアアプリケーション、モジュール、サービスまたは他の要素を含むことになり、これにはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムが含まれる。代替の実施形態は、上記に記載したものから多くの変形形態を有する可能性があることを理解されたい。例えばカスタマイズされたハードウェアが使用される場合もあり、及び／またはハードウェア、ソフトウェア（アプレットなどのポータブルソフトウェア）またはその両方に特定の要素が実装される場合もある。さらに、ネットワーク入／出力デバイスなどの他のコンピューティングデバイスへの接続が利用される場合もある。
【０１１３】
コードまたはコードの一部を含む記憶媒体及びコンピュータ可読媒体は、これに限定するものではないがコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶及び／または伝達のために任意の方法または技術で実装された揮発性及び不揮発性、取り外し可能及び非取り外し可能な媒体を含めた記憶媒体及び通信媒体を含め、当分野で既知のまたは使用される何らかの適切な媒体を含むことができ、これには、ＲＡＭ、ＲＯＭ、電気的消去可能リードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、システムデバイスによってアクセスすることができる任意の他の媒体が含まれる。本明細書で提供される開示及び教示に基づいて、当業者は、種々の実施形態を履行するための他のやり方及び／または方法を理解するであろう。
【０１１４】
本開示の実施形態は、以下の条項を鑑みて記載することができる。
【０１１５】
条項１  ホストシステムと通信するように構成されたチップ上のシステム（ＳｏＣ）であって、ＳｏＣが、
複数のメモリリソースを備え、コンピュートサービスを提供するためのサーバコンピュートサブシステムと、
Ｉ／Ｏサブシステムと、複数のメモリリソースとを備え、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを管理するためのネットワークコンピュートサブシステムであって、Ｉ／Ｏサブシステムを介してサーバコンピュートサブシステム及びホストシステムと通信するネットワークコンピュートサブシステムと、  サーバコンピュートサブシステム及びネットワークコンピュートサブシステムに関するメモリリソースを管理するための管理コンピュートサブシステムとを備え、
ＳｏＣが、サーバコンピュートサブシステム及びネットワークコンピュートサブシステムの各々に関して外部メモリと通信することが可能なチップ上のシステム（ＳｏＣ）。
【０１１６】
条項２  Ｉ/Ｏサブシステムが、サーバコンピュートサブシステムと通信するための第１のインターフェースと、ホストシステムと通信するための第２のインターフェースとを含む、条項１のＳｏＣ。
【０１１７】
条項３  第１のインターフェース及び第２のインターフェースが周辺機器コンポーネント相互接続エクスプレス（ＰＣＩｅ）インターフェースである、条項２のＳｏＣ。
【０１１８】
条項４  外部メモリが、ネットワークコンピュートサブシステム及びサーバコンピュートサブシステムの各々から物理的または論理的に隔離される、任意の先行する条項のＳｏＣ。
【０１１９】
条項５  ホストシステムと通信するように構成されたチップ上のシステム（ＳｏＣ）であって、ＳｏＣが、
コンピュートサービスを提供するためのサーバコンピュートサブシステムと、
ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを管理するためのネットワークコンピュートサブシステムと、
サーバコンピュートサブシステム及びネットワークコンピュートサブシステムに関するリソースを管理するための管理コンピュートサブシステムとを備えるチップ上のシステム（ＳｏＣ）。
【０１２０】
条項６ネットワークコンピュートサブシステムが、Ｉ／Ｏサブシステムを備え、該Ｉ／Ｏサブシステムが、サーバコンピュートサブシステムと通信するための第１のインターフェースと、ホストシステムと通信するための第２のインターフェースとを含む、条項５のＳｏＣ。
【０１２１】
条項７  第１のインターフェース及び第２のインターフェースが周辺機器コンポーネント相互接続エクスプレス（ＰＣＩｅ）インターフェースである、条項６のＳｏＣ。
【０１２２】
条項８  ＳｏＣが外部メモリと通信するように構成され、ネットワークコンピュートサブシステムまたはサーバコンピュートサブシステムのみが外部メモリと通信することができるように、該外部メモリが、ネットワークコンピュートサブシステムまたはサーバコンピュートサブシステムのいずれかから物理的または論理的に隔離される、条項５〜７のいずれかのＳｏＣ。
【０１２３】
条項９  ネットワークコンピュートサブシステム及びサーバコンピュートサブシステムが、その独自の専用メモリリソースを備える、条項５〜８のいずれかのＳｏＣ。
【０１２４】
条項１０  メモリリソースが、１つまたは複数のメモリコントローラ、レベル１キャッシュ、レベル２キャッシュまたはレベル３キャッシュを含む、条項９のＳｏＣ。
【０１２５】
条項１１  管理コンピュートサブシステムが、サーバコンピュートサブシステム及びネットワークコンピュートサブシステムにメモリリソースを割り当てるように構成される、条項９または１０のＳｏＣ。
【０１２６】
条項１２  管理コンピュートサブシステムが、ハードウェアまたはソフトウェア構成に基づいてメモリリソースを割り当てるように構成される、条項９〜１１のいずれかのＳｏＣ。
【０１２７】
条項１３  サーバコンピュートサブシステムのための専用メモリリソースが、サーバコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、条項９〜１２のいずれかのＳｏＣ。
【０１２８】
条項１４  ネットワークコンピュートサブシステムのための専用メモリリソースが、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、条項９〜１３のいずれかのＳｏＣ。
【０１２９】
条項１５  ＳｏＣがさらに、サーバコンピュートサブシステム及びネットワークコンピュートサブシステムによって共有される１つまたは複数のリソースを備える、条項５〜１４のいずれかのＳｏＣ。
【０１３０】
条項１６  ネットワークコンピュートサブシステムが第１の電力ドメイン上にあり、サーバコンピュートサブシステムが第２の電力ドメイン上にある、条項５〜１５のいずれかのＳｏＣ。
【０１３１】
条項１７  サーバコンピュートサブシステム及びネットワークコンピュートサブシステムが別個のリセットドメインにある、条項５〜１６のいずれかのＳｏＣ。
【０１３２】
条項１８  ホストシステムと通信するように構成されたシステムオンチップ（ＳｏＣ）に関する方法であって、方法が、
ＳｏＣのネットワークコンピュートサブシステム及びサーバコンピュートサブシステムを起動し、サーバコンピュートサブシステムがコンピュートサービスを提供するように構成され、ネットワークコンピュートサブシステムが、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを管理するように構成されることと、
ネットワークコンピュートサブシステムのための処理及びメモリリソースの専用プールから１つまたは複数の専用の処理及びメモリリソースをネットワークコンピュートサブシステムに割り当てることによって、ネットワークコンピュートサブシステムのための専用の処理及びメモリリソースを構成することと、
サーバコンピュートサブシステムに関して利用可能な専用の処理及びメモリリソースから１つまたは複数の専用の処理及びメモリリソースをサーバコンピュートサブシステムに割り当てることによって、サーバコンピュートサブシステムのための専用の処理及びメモリリソースを構成することとを含み、
ネットワークコンピュートサブシステムがＩ/Ｏサブシステムを備え、サーバコンピュートサブシステムがＩ／Ｏサブシステムを介してホストシステムと通信する方法。
【０１３３】
条項１９  サーバコンピュートサブシステムがＩ／Ｏサブシステムを介してネットワークと通信する、条項１８の方法。
【０１３４】
条項２０  ネットワークコンピュートサブシステムをリセットせずに、サーバコンピュートサブシステムをリセットすることをさらに含む、条項１８または１９の方法。
【０１３５】
本明細書及び図面は、１つの例示とみなすべきであって、限定する意味とみなすべきではない。しかしながら、特許請求の範囲に記載されるより広範な本開示の精神及び範囲から逸脱することなく、種々の修正及び変更がそれに対して行われる可能性があることは明白である。
【０１３６】
その他の変形形態も本開示の精神の範囲内にある。よって開示される技術は、様々な修正形態及び代替構造を受けやすく、その特定の例示の実施形態は、図面に示され、詳細に上記に記載されてきた。しかしながら本開示を開示される特有の１つまたは複数の形態に限定することは全く意図されておらず、反対にその意図は、添付の特許請求の範囲において定義される本開示の精神及び範囲の範囲内にある全ての修正形態及び代替構造及び等価物を包含することである。
【０１３７】
開示される実施形態を記述する文脈における（とりわけ以下の特許請求の範囲の文脈において）用語「ａ」及び「ａｎ」及び「ｔｈｅ」ならびに同様の指示代名詞の使用は、そうでないことが本明細書で指摘されるまたは文脈によって否定されなければ単数及び複数の両方を網羅するように解釈すべきである。用語「備える」「有する」「含む」及び「収容する」は、そうでないことが指摘されなければオープンエンドな用語として解釈すべきである（すなわち「これに限定するものではないが、〜を含む」という意味）。用語「接続される」は、たとえ介在する何かが存在したとしても、一部がまたは全体がその中に収容される、そこに装着される、または合わせて結合されるものと解釈すべきである。本明細書の値の範囲の記述は、そうでないことが本明細書に指摘されなければ、その範囲内にある各々の別々の値を個別に参照する略記方法として機能することが意図されており、各々の別々の値は、それがあたかも本明細書に個別に列記されるかのように明細書に組み込まれている。本明細書に記載される全ての方法は、そうでないことが本明細書に指摘されなければ、あるいはそうでなければ文脈によって明らかに否定されなければ任意の好適な順序で行うことができる。本明細書に提供される全ての例または例示の言葉（例えば「など」）の使用は単に本開示の実施形態をより最適に解明することが意図されており、そうでないことが主張されなければ本開示の範囲に対して限定を与えるものではない。明細書におけるいかなる言葉も、本開示の実施形態に対して必須なものとして何らかの主張されない要素を示すものとして解釈すべきではない。
【０１３８】
フレーズ「Ｘ、ＹまたはＺのうちの少なくとも１つ」などの選言的な言葉は、具体的にそうでないことが述べられなければ、特定のアイテム、用語などがＸ、ＹまたはＺのいずれかであり得る、あるいはその組み合わせ（例えばＸ、Ｙ及び／またはＺ）であり得ることを提示するために一般的に使用されるように、この文脈において理解されるように意図されている。よってそのような選言的な言葉は、特定の実施形態が、Ｘの少なくとも１つ、Ｙの少なくとも１つまたはＺの少なくとも１つが各々存在することを要求することを暗示することは一般的に意図されないし、そのようなことを暗示すべきでもない。
【０１３９】
本開示を実施するための発明者等に知られた最適な様式を含め、本開示の好ましい実施形態が本明細書に記載されている。そのような好ましい実施形態の変形形態は、上述の記載を読むことで当業者に明らかであろう。本発明者等は、必要に応じて熟練した職人がそのような変形形態を採用することを期待しており、本発明者等は、本開示が具体的に本明細書に記載されるもの以外方法で実践されることを意図している。したがって本開示は、適用可能な法律によって許可されるように、ここに添付される特許請求の範囲において記載される主題の全ての修正形態及び等価物を含む。さらに、その全ての可能な変形形態における上記に記載した要素の何らかの組み合わせは、そうでないことが本明細書に指摘されなければ、あるいはそうでなければ文脈によって明らかに否定されなければ本開示によって包含される。
【図１】
0006514330.tif 000002
【図２】
0006514330.tif 000003
【図３Ａ】
0006514330.tif 000004
【図３Ｂ】
0006514330.tif 000005
【図４】
0006514330.tif 000006
【図５】
0006514330.tif 000007
【図６】
0006514330.tif 000008
【図７】
0006514330.tif 000009
【図８】
0006514330.tif 000010
【図９】
0006514330.tif 000011