(57)【特許請求の範囲】
【請求項１】
ホストシステムと通信するように構成されたシステムオンチップ（ＳｏＣ）であって、
複数の処理コアを備え、それぞれの処理コアは前記ＳｏＣのネットワークコンピュータサブシステムの一部としてまたは前記ＳｏＣのサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、前記サーバコンピュータサブシステムは前記ホストシステム用にコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムは前記ホストシステム及び前記サーバサブシステム用の管理ネットワークトラフィックが構成され、
前記サーバコンピュータサブシステム及び前記ネットワークコンピュータサブシステムに接続され、前記サーバコンピュータサブシステム及び前記ネットワークコンピュータサブシステム用のリソースを管理するための管理コンピュータサブシステムを備えるＳｏＣ。
【請求項２】
再構成可能メモリリソースをさらに備え、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、請求項１に記載のＳｏＣ。
【請求項３】
再構成可能Ｉ／Ｏリソースをさらに備え、前記Ｉ／Ｏリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、先行請求項のいずれか１項に記載のＳｏＣ。
【請求項４】
再構成可能最終レベルキャッシュ（ＬＬＣ）リソースをさらに備え、前記最終レベルキャッシュリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能である、先行請求項のいずれか１項に記載のＳｏＣ。
【請求項５】
再構成可能メモリリソース、再構成可能Ｉ／Ｏリソース、及び再構成可能最終レベルキャッシュをさらに備え、
前記管理コンピュータサブシステムは、前記処理コア、メモリリソース、Ｉ／Ｏリソース及び前記最終レベルキャッシュリソースを構成するように構成された、請求項１に記載のＳｏＣ。
【請求項６】
前記構成された処理コア、メモリリソース及びＩ／Ｏリソース及び前記最終レベルキャッシュリソースを前記ネットワークコンピュータサブシステム用の第１の物理層ファブリックまたは前記サーバコンピュータサブシステム用の第２の物理層ファブリックにマッピングするためのファブリックブリッジをさらに備え、前記第１の物理層ファブリック及び前記第２の物理層ファブリックは、互いに物理的に分離される、請求項５に記載のＳｏＣ。
【請求項７】
前記処理コア、メモリリソース、Ｉ／Ｏリソース及び前記最終レベルキャッシュリソースは、前記サーバコンピュータサブシステムにマッピングされ、サーバコンピュータサブシステムキャッシュコヒーレントファブリックに接続される、請求項６に記載のＳｏＣ。
【請求項８】
前記処理コア、メモリリソース、Ｉ／Ｏリソース及び前記最終レベルキャッシュリソースは、前記ネットワークコンピュータサブシステムにマッピングされ、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリックに接続される、請求項６または７に記載のＳｏＣ。
【請求項９】
前記再構成可能メモリリソースは１つ以上のメモリコントローラを備える、請求項２から８のいずれか１項に記載のＳｏＣ。
【請求項１０】
前記ＳｏＣは前記メモリコントローラの少なくとも一部を前記ネットワークコンピュータサブシステムまたは前記サーバコンピュータサブシステムにステアリングするためのステアリングユニットをさらに備える、請求項９に記載のＳｏＣ。
【請求項１１】
前記Ｉ／Ｏリソースは、前記ホストシステムと通信するための第１のインタフェース、前記サーバコンピュータサブシステムと通信するための第２のインタフェース、前記ネットワークコンピュータサブシステムと通信するための第３のインタフェース、前記ネットワークと通信するための第４のインタフェースを含む、請求項３から１０のいずれか１項に記載のＳｏＣ。
【請求項１２】
前記サーバコンピュータサブシステム用の１つ以上の専用の処理コア及びメモリリソースと、
前記ネットワークコンピュータサブシステム用の１つ以上の専用の処理コア及びメモリリソースと、をさらに備える、先行請求項のいずれか１項に記載のＳｏＣ。
【請求項１３】
システムオンチップ（ＳｏＣ）を構成するための方法であって、前記方法は、
管理コンピュータサブシステムによって複数の処理コアを構成することを含み、少なくとも１つの処理コアが前記ＳｏＣのサーバコンピュータサブシステムの一部としてまたは前記ＳｏＣのネットワークコンピュータサブシステムの一部として機能するように再構成が可能であり、前記サーバコンピュータサブシステム及び前記ネットワークコンピュータサブシステムは前記管理コンピュータサブシステムに接続され、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムはホストシステム及び前記サーバコンピュータサブシステム用の管理ネットワークトラフィックが構成され、
前記方法は複数のメモリリソースを備えることを含み、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成が可能であり、
前記方法は複数のＩ／Ｏリソースを備えることを含み、前記Ｉ／Ｏリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成が可能であり、
前記構成された処理コア、メモリリソース及び前記Ｉ／Ｏリソースは、ファブリックブリッジを使用して、前記ネットワークコンピュータサブシステム用の第１の物理層ファブリックまたは前記サーバコンピュータサブシステム用の第２の物理層ファブリックにマッピングされ、前記第１の物理層ファブリック及び前記第２の物理層ファブリックは、互いに物理的に分離される、方法。
【請求項１４】
前記メモリリソースは１つ以上のメモリコントローラを含み、前記方法はさらに、
前記ネットワークコンピュータサブシステムの一部として、または前記サーバコンピュータサブシステムの一部として機能する前記１つ以上のメモリコントローラを設定することを含む、請求項１３に記載の方法。
【請求項１５】
前記複数の処理コアを構成することと、前記複数のメモリリソースを構成することと、前記複数のＩ／Ｏリソースを構成することは、前記ＳｏＣの管理コンピュータサブシステムによって動的に実行される、請求項１３または１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のコンピュータサブシステム用の再構成可能リソースを備えるシステムオンチップに関する。
【背景技術】
【０００２】
多くの組織及び企業は、複数の通信ネットワークを介してコンピューティングサービスを提供する。例えば、コンピューティングサービスは、インターネットを介して異なるクライアントに提供されることが可能なウェブストレージまたは仮想サーバのようなウェブサービスを含み得る。場合によっては、仮想サーバは必要に応じてクライアントに貸し出され得る。
【０００３】
一般に、システムは、固定コンピューティングリソースを備えるサブシステムを含み得る。ほとんどの場合、システム上のコンピューティングリソースは、不規則な作業付加を要求するため効率的に利用されない可能性がある。例えば、特定の時間には、低性能のサブシステムはコンピューティングリソースの全てを利用しなくてよいが、高性能のサブシステムは一定数のコンピューティングリソースによって限定され得る。したがって、ほとんどの場合、本システムはそれぞれのサブシステムに割り当てられた一定数のリソースにより、効率的に実行しない可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本技術の実施形態は、ＳｏＣ（１０２）上の異なるコンピュータサブシステム間で、様々なコンピュータリソースを細分化して動的に分割する柔軟性を提供することが可能である。複数の処理コア（２０６）、キャッシュ階層（２１２）、メモリコントローラ（２０８）及びＩ／Ｏリソース（２１０）は、ＳｏＣ上のネットワークコンピュータサブシステム（１０４）とサーバコンピュータサブシステム（１０８）間で動的に分割されることが可能である。
【０００５】
以下において、図面を参照して本開示による様々な実施形態について説明する。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態によるシステムのブロック図を示す。
【図２】本開示の特定の実施形態による、再構成可能リソースを備えるシステムオンチップ（ＳｏＣ）の高レベルのブロック図を示す。
【図３】本開示の特定の実施形態による、再構成可能処理及びメモリリソースを備えるＳｏＣのブロック図を示す。
【図４】本開示の特定の実施形態によるＳｏＣの詳細なブロック図を示す。
【図５】本開示の特定の実施形態によるサーバコンピュータサブシステムを含むＳｏＣの詳細なブロック図を示す。
【図６】本開示の特定の実施形態による、ネットワーク及びサーバコンピュータサブシステムのそれぞれに専用のリソースに加えて、再構成可能処理リソースを含むＳｏＣの詳細なブロック図を示す。
【図７】本開示の特定の実施形態による管理コンピュータサブシステムのブロック図を示す。
【図８】本開示の特定の実施形態によるネットワークＩ／Ｏサブシステムのブロック図を示す。
【図９】本開示の特定の実施形態によるサーバＩ／Ｏサブシステムのブロック図を示す。
【図１０】本開示の特定の実施形態による共有リソースユニットの詳細なブロック図を示す。
【図１１】本開示の特定の実施形態によるフローチャートを示す。
【図１２】少なくとも１つの例示的な実施形態による、１つ以上のネットワークを介して接続される１つ以上のサービスプロバイダコンピュータ及び／またはユーザデバイスを含む、本明細書に記載された特徴及びシステムのための例示的な構造を示す。
【図１３】様々な実施形態が実施されることが可能な環境を示す。
【発明を実施するための形態】
【０００７】
以下、様々な実施形態について説明する。説明のために、特定の構成及び詳細が実施形態を全面的に理解するために示されている。しかしながら、実施形態は具体的な内容なくして実施され得ることが、当業者には明らかであろう。さらに、既知の特徴は、記載される実施形態を曖昧にしないために省略または簡略化され得る。
【０００８】
一般に、コンピューティングシステムはいくつかの異なる機能を実行するために、１つ以上のコンピュータサブシステムを含み得る。ほとんどの場合、それぞれのコンピュータサブシステムは意図された機能を実行するための一定数のリソースを含み得る。コンピューティングシステムは一旦製作されると、リソースの数及び種類はコンピューティングシステム用のそれぞれのコンピュータサブシステム対し一定である。したがって、ユースケースにかかわらず、クライアントは、それぞれのコンピュータサブシステムに対してリソースの特定の所定の構成に限定される。
【０００９】
さらに、固定リソースで作業負荷要求が時間とともに変化するため、それぞれのサブシステムは効率的に実行しない可能性がある。例えば、第１のサブシステムの性能は、作業負荷が高い場合に特定の期間に意図された機能を実行するために、一定数のリソースによって制限され、一方、第２のサブシステムはその期間中に作業負荷が低いために全てのリソースを使用しなくてよい。したがって、ほとんどの場合、本システムはそれぞれのサブシステムに割り当てられた一定数のリソースにより、効率的に実行しない可能性がある。
【００１０】
開示された技術の実施形態は、システムオンチップ（ＳｏＣ）上の多数のコンピュータサブシステムを、動的にまたは起動時のいずれの場合にも、様々なリソースに分割することを提供することが可能である。例えば、ＳｏＣはホストシステム（例えば、ｘ８６サーバ）に通信可能に接続され、トラフィック監視、トラフィックシェーピング、コンピューティング等のような様々なサービスを提供し得る。いくつかの実施形態では、ＳｏＣは多数のコンピュータサブシステムを含み、様々な機能を実行し得る。例えば、特定の実施形態においては、ＳｏＣはサーバコンピュータサブシステムを含み、少なくともホストシステム及びサーバサブシステム用の管理ネットワークトラフィックのためのコンピュータサービス及びネットワークコンピュータサブシステムを提供し得る。それぞれのコンピュータサブシステムは、処理リソース（例えば、プロセッサコア）、メモリリソース（例えば、キャッシュ階層、メモリコントローラ、メモリチャネル等）、Ｉ／Ｏリソース（例えば、周辺装置、ネットワーク及びバスインタフェース）等のような複数のリソースを含み得る。開示された技術の実施形態においては、それぞれのリソースは、再構成が可能であり、異なるコンピュータサブシステムに動的にまたは起動時に割り当てられることができる。例えば、ホストシステムは、各仮想サーバインスタンス用に異なるコンピュータサブシステムの再構成を必要とし得る仮想サーバインスタンスのレンジを提供し、必要とされるリソースを仮想サーバインスタンスのスループット要件に合致させる。開示された技術の実施形態により、各コンピュータサブシステム用のリソースのより効率的な使用をすることができ、それによってシステムのスループットを増加させることができる。さらに、開示された技術の実施形態により、それぞれのコンピュータサブシステムは専用の物理層またはハードウェアパスを使用して様々なリソースの再構成及び分離をすることができる。例えば、複数の構成されたリソースは、ネットワークコンピュータサブシステム用の第１の物理層ファブリック及び／またはサーバコンピュータサブシステム用の第２の物理層ファブリックに動的に割り当てられることが可能である。したがって、本技術の実施形態は、異なるコンピュータサブシステムに独立した物理層を有することによって、ハードウェアセキュリティ及びジッタ／性能分離を提供することができる。
【００１１】
コンピュータネットワークは、一般に、データをホストし、多数のクライアントまたは組織にサービスを提供できる複数のサーバを含み得る。例えば、サーバは、クラウドコンピューティング、アナリティクス、ウェブサービス、ストレージ、データベース、アプリケーション、展開サービス等のようなサービスを場合により多数のクライアントコンピュータに提供できる。クライアントまたは組織は、ストレージ、データ処理と保管、ウェブとモバイルアプリケーション、アーカイブと多くのその他のタスクのような多種多様の作業負荷に電力を供給し、これらのサービスまたはデータを使用できる。一般に、クライアントはサーバからサービス及びデータを要求し、サーバは特定のタスクを実行してネットワークを介してデータを要求及び／または提供するサービスに応答する。ネットワークトラフィックは、特定の時間にサービスを要求するクライアント数やサーバの容量等のような、いくつかの要因に依存して変化し得る。
【００１２】
場合によっては、ネットワークシステムはネットワークトラフィックを監視してトラフィックを調節し帯域幅の輻輳を最小化することができる。例えば、ネットワークシステムは、異なるクライアントにウェブサービスを提供するホストシステム（例えば、ｘ８６サーバ）に通信可能に接続され得る。ネットワークシステムは、１つ以上のプロセッサコア、キャッシュ、ネットワークアクセラレーション論理、メモリコントローラ及びＩ／Ｏサブシステム等を含み得る。いくつかの実施形態では、ネットワークシステムもまた、サーバ（例えば、ホストシステム）によって提供されるウェブサービスと関連するトラフィックシェーピング、ネットワークストレージ処理等のようなその他の機能を実行し得る。場合によっては、ネットワークシステムの機能性は、ホストシステムに通信可能に接続され得るシステムオンチップ（ＳｏＣ）上のネットワークコンピュータサブシステムとして実施され得る。例えば、ＳｏＣは、プラグインカードを使用してホストシステム（例えば、１つ以上のサーバ）に接続されるか、またはホストシステムのマザーボードにはんだ付けされることが可能である。
【００１３】
いくつかの実施形態では、ＳｏＣもまた、ネットワークコンピュータサブシステムに加え、サーバコンピュータサブシステム及び管理コンピュータサブシステムを含み得る。例えば、サーバコンピュータサブシステムは、コンピュータサービスを提供するように構成され、管理コンピュータサブシステムは、ネットワークコンピュータサブシステム及びサーバコンピュータサブシステム用のリソースを管理するように構成され得る。場合によっては、ネットワークコンピュータサブシステム及びサーバコンピュータサブシステムは、一定数のリソースを含み得る。例えば、リソースは処理リソース（例えば、プロセッサコア）、メモリリソース（例えば、（例えば、レベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュ、レベル３（Ｌ３）キャッシュまたは最終レベルキャッシュ、メモリコントローラ、メモリチャネル等）及びＩ／Ｏリソース（ネットワーク及びバスインタフェース）を含み得る。
【００１４】
ほとんどの場合、コンピューティングシステムは一旦製造されると、リソースの数及び種類はコンピューティングシステム用のそれぞれのコンピュータサブシステム対し一定である。加えて、ＳｏＣが固定リソースを備えるネットワークコンピュータサブシステム及び固定リソースを備えるサーバコンピュータサブシステムを含むように製造されている場合には、ＳｏＣはそれぞれのコンピュータサブシステムに対し、固定リソースに基づいて特定の種類のサービスのみを提供するように制限され得る。例えば、場合によっては、ネットワークコンピュータサブシステムが固定処理リソース及びメモリリソースの数が少ない場合、ＳｏＣは低い性能のネットワーク処理のみ提供し得る。同様に、場合によってはサーバコンピュータサブシステムが固定処理リソース及びメモリリソースの数が少ない場合、ＳｏＣは低い性能のコンピュータサービスのみ提供し得る。したがって、ユースケースにかかわらず、クライアントは、それぞれのコンピュータサブシステムに対してリソースは特定の所定の構成に限定される。
【００１５】
さらに、場合によってはそれぞれのコンピュータサブシステムに割り当てられた固定リソースは、リソースを非効率的に使用する結果となり得る。例えば、場合によっては、ネットワークコンピュータサブシステムは、低性能のネットワークサービス（例えば、低ネットワークまたは帯域幅の輻輳）を実行する場合、全てのリソースを利用しない可能性がある。同様に、場合によっては、サーバコンピュータサブシステムは、低性能のコンピュータサービス（例えば、仮想サーバインスタンスの全てが必ずしも貸し出されない）を実行している場合には、全てのリソースを利用しなくてよい。
【００１６】
開示された技術の実施形態は、システムオンチップ（ＳｏＣ）上の多数のコンピュータサブシステム間で様々なリソースの細分化された動的再分割を提供することが可能である。いくつかの実施形態では、コンピュータサブシステムは、１つ以上の処理コアを備えるサブシステムを含み得る。例えば、ＳｏＣはホストシステム（例えば、ｘ８６サーバ）に通信可能に接続されてよく、トラフィック監視、トラフィックシェーピング、コンピューティング等のような様々なサービスを提供する。いくつかの実施形態では、ＳｏＣは、ネットワークトラフィックを監視するためのネットワークコンピュータサブシステム、コンピュータサービスを提供するためのサーバコンピュータサブシステム、リソースを管理するための管理コンピュータサブシステムならびに内部及び外部通信のための様々なインタフェースを備えるＩ／Ｏサブシステムのような、多数のサブシステムを含み得る。ＳｏＣ上の様々なリソースは、プロセッサコア、レベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュ、レベル３（Ｌ３）キャッシュまたは最終レベルキャッシュのようなキャッシュ階層のいくつかのレベル、メモリコントローラ、Ｉ／Ｏ等を含み得る。開示された技術の実施形態においては、いくつかのリソースは、再構成が可能であり、異なるサブシステムに動的に割り当てられることができる。例えば、いくつかの実施様態においては、構成されたリソースは異なる物理層に個別にルーティングされることが可能である。
【００１７】
本技術の実施形態では、管理コンピュータサブシステムは、それぞれのリソースを動的に構成し得る。いくつかの実施形態では、管理コンピュータサブシステムは、要求される作業負荷に基づいてサブシステムに対しそれぞれのリソースの構成を決定し得る。例えば、サーバコンピュータサブシステムがネットワークコンピュータサブシステムと比べて特定の時間で高性能の計算を実行している場合、ネットワークコンピュータサブシステムのリソースのうちいくつかは、サーバコンピュータサブシステム及びその逆にシフトされ得る。いくつかの実施形態では、リソースは、ポリシーに基づいてデフォルトの構成を有し得る。場合によっては、これらのポリシーは起動時に適用される。例えば、管理コンピュータサブシステムは、ソフトウェアレジスタの１つ以上のピンまたはデータフィールドに基づいて起動時にリソースのデフォルトの構成を決定し得る。したがって、開示された技術のいくつかの実施形態は、ＳｏＣが一旦製造されると、リソースの再構成ができる。例えば、リソースはパワーオンリセットされた後、様々なサブシステムで均等に分割され得る。
【００１８】
開示された技術の特定の実施形態においては、ファブリックブリッジは、物理層にそれぞれ構成されたリソースをマッピングするルーティングファブリックを提供できる。いくつかの実施形態では、多数の物理層は、それぞれの物理層がコヒーレントファブリックに関連されることが可能な場所に存在し得る。例えば、ファブリックブリッジは、１つ以上の再構成可能リソース（例えば、プロセッサコア、最終レベルキャッシュ、メモリコントローラ、Ｉ／Ｏコントローラ等）をネットワークコンピュータサブシステム用の第１の物理層ファブリックに、またはサーバコンピュータサブシステム用の第２の物理層ファブリックにマッピングできる。開示された技術の様々な実施形態においては、第１の物理層ファブリック及び第２の物理層ファブリックは、互いに物理的に分離されジッタ及びセキュリティリスクの低減を提供する。例えば、それぞれのコンピュータサブシステムの各物理層によって物理的に分離されることが可能な処理リソース及びメモリリソースを有することにより、コンピュータサブシステム内に含まれた任意のセキュリティリスクを可能にする。
【００１９】
いくつかの実施形態では、ステアリングユニットは、構成されたリソースを個々のコンピュータサブシステムをステアリングするために使用され得る。例えば、ステアリングユニットは１つ以上の多重変換装置を含んでよく、再構成処理コア、Ｌ３キャッシュ、メモリコントローラ、Ｉ／Ｏリソース等をネットワークコンピュータサブシステムまたはサーバコンピュータサブシステムのいずれかにステアリングする。
【００２０】
通常のＳｏＣは、シングルチップに集積されたシステムの機能性を含み得る。例えば、ＳｏＣは、多数のプロセッサコア、揮発性及び不揮発性のメモリモジュール、メモリコントローラ、１つ以上の内部バス、標準インタフェース、周辺機器、電圧調整器、電力管理回路、発振器及び位相ロックループ等のようなタイミングリソース等を含むことができる。シングルチップに多数のチップの機能を実装することで製造及び組立の費用を削減できる。加えて、ＳｏＣは通常、必要とする設置面積及び空間がより小さい。したがって、ＳｏＣの実施様態は通常、同一の機能を実装するマルチチップシステムと比べて消費電力がより少なく、費用効果が高い。
【００２１】
開示された技術の実施形態は、ＳｏＣ上の異なるコンピュータサブシステム間で、様々なコンピュータリソースを細分化して動的に分割する柔軟性を提供することが可能である。それぞれのリソースを動的に再構成する能力によってリソースの効率的な使用をすることができ、それによって性能を損なうことなく作業負荷要求を満たすことができる。
【００２２】
開示された技術の実施形態が記載され、ＳｏＣ上の２つのコンピュータサブシステム間のリソースを動的に分割すると示されているが、技術の態様は２つのコンピュータサブシステム間でのみリソースを分割することに限定されない。例えば、いくつかの実施様態においては、リソースは、開示された技術の範囲を逸脱することなくＳｏＣ上の多数（例えば、２つ以上）のコンピュータサブシステム間で分割され得る。
【００２３】
図１は、本明細書に記載された実施形態を実行するために使用されることが可能な例示的なシステム１００を示す。通常、ＳｏＣは、ネットワークコンピュータサブシステムとサーバコンピュータサブシステム間が動的に再分割されることができる再構成可能リソースを含み得る。管理コンピュータサブシステムは、ネットワークコンピュータサブシステム及びサーバコンピュータサブシステム用のリソースを管理するように構成され得る。
【００２４】
図１は、ホストシステム１１２と通信するように構成されるＳｏＣ１０２を示す。ＳｏＣ１０２とホストシステム１１２間の通信は、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）インタフェースまたは任意のその他の好適なインタフェースのような、ホストインタフェース１１４を使用して実行され得る。
【００２５】
場合によっては、ホストシステム１１２は、多数のクライアントにマルチテナントプラットフォームを提供し得る。例えば、ホストシステム１１２は、クラウドコンピューティング、クラウドストレージ、アナリティクス、ウェブサービス、データベース、アプリケーション、展開サービス、ウェブサイトのホスティング等のようなサービスを異なるクライアントに提供し得る。ホストシステム１１２は、例えばｘ８６サーバのようなサーバを含み得る。いくつかの実施形態では、ホストシステム１１２における１つ以上のプロセッサは、ＳｏＣ１０２上のソケットに接続され得る。
【００２６】
ＳｏＣ１０２は、ネットワークコンピュータサブシステム１０４、再構成可能リソース１０６、サーバコンピュータサブシステム１０８及び管理コンピュータサブシステム１１０を含み得る。いくつかの実施形態では、コンピュータサブシステムは、複数の処理コアを含んでよく、それぞれの処理コアはネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように再構成されることが可能である。いくつかの実施形態では、再構成可能リソース１０６は、再構成可能メモリリソースを含んでよく、メモリリソースの少なくとも一部は、ネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように再構成されることが可能である。
【００２７】
ネットワークコンピュータサブシステム１０４は、ネットワークトラフィックシェーピング、ネットワークアクセラレーション、ネットワークストレージ処理等のようなネットワークに関連する機能を提供するように構成され得る。いくつかの実施形態では、ネットワークコンピュータサブシステム１０４は、ネットワークインタフェースコントローラ（ＮＩＣ）またはネットワークコプロセッサの少なくともいくつかの機能を含み得る。ある実施形態においては、ネットワークコンピュータサブシステム１０４は、例えば課金、速度、トラフィックシェーピング、暗号化、チョーク等のようなホストシステム１１２によって提供されるウェブサービスに関連するいくつかの機能を含み得る。
【００２８】
サーバコンピュータサブシステム１０８は、ホストシステム１１２用の例えば仮想または物理リソースのようなコンピュータサービスを提供するように構成され得る。例えば、コンピュータサービスは、様々なサイズの仮想マシンインスタンスを起動することを含んでよく、ストレージの容量を仮想マシン等に必要に応じて関連付ける。いくつかの実施形態では、サーバコンピュータサブシステム１０８は、ホストシステム１１２の作業負荷の一部をオフロードするために使用され得る。場合によっては、ホストシステム１１２は、サーバコンピュータサブシステム１０８とともに高性能のコンピュータサービスを提供し得る。例えば、ホストシステム１１２は、迅速なターンアラウンドサービスを処理することに集中し、低性能の作業負荷をサーバコンピュータサブシステム１０８にオフロードし、その結果システムのスループットを増加させ得る。
【００２９】
再構成可能リソース１０６は、動的に再構成され得る複数のリソースを含み得る。例えば、いくつかの実施形態では、再構成可能リソース１０６は、再構成可能処理コア、再構成可能メモリリソース、再構成可能Ｉ／Ｏリソース及び再構成可能最終レベルキャッシュリソースを含み得る。いくつかの実施形態では、再構成可能リソース１０６の少なくともいくつかは、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８の一部として機能するために動的に分割され得る。例えば、いくつかの実施様態においては、再構成可能リソース１０６は、ファブリックブリッジまたは好適なステアリングユニットを使用して異なる物理層に個別にルーティングされ得る。
【００３０】
再構成可能処理コアは、複数の処理コアを含み得る。いくつかの実施形態では、再構成可能処理コアは、マルチコアプロセッサを含み得る。マルチコアプロセッサは、同一のプロセッサ内に多数の処理ユニットを含み得る。いくつかの実施形態では、処理コアの動的な分割は、２コアプロセッサの細粒度で実行されることができる。いくつかの実施形態では、マルチコアプロセッサは、マルチコア間のバスとＬ１及び／またはＬ２キャッシュのような特定のリソースを共有し得る。場合によっては、シングルまたはマルチコアプロセッサのそれぞれのコアもまた、多数の実行論理プロセッサ（またはスレッド）を含み得る。このようなコア（多数の論理プロセッサを支援する）においては、実行パイプライン及び低レベルキャッシュ（例えば、Ｌ１またはＬ２）のいくつかのステージもまた共有され得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能／ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能処理コアをルーティングすることが可能である。
【００３１】
再構成可能リソースは、再構成可能メモリコントローラ等を含み得る。メモリコントローラは、ＤＤＲコントローラ、ＤＤＲ２コントローラまたは任意の好適なコントローラを含んでよく、外部メモリへのアクセスを管理するために使用されてよい。いくつかの実施形態では、Ｌ１及び／またはＬ２キャッシュは、プロセッサの多数のコア間で共有され得る。したがって、いくつかの実施形態では、処理リソースの分割は、Ｌ１／Ｌ２キャッシュで処理コアの分割をすることを含み得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能／ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能メモリリソースをルーティングすることが可能である。
【００３２】
再構成可能Ｉ／Ｏリソースは、内部及び外部通信のための様々なＩ／Ｏインタフェースを含み得る。例えば、再構成可能Ｉ／Ｏリソースは、ホストシステム１１２と通信するための第１のインタフェース、ネットワークコンピュータサブシステム１０４と通信するための第２のインタフェース、サーバコンピュータサブシステム１０８と通信するための第３のインタフェース、ネットワークと通信するための第４のインタフェースを含み得る。例えば、ホストインタフェース１１４は、ホストシステム１１２と通信するために使用され得る。ホストインタフェース１１４は、ＰＣＩｅインタフェースのような任意の標準インタフェースを使用して実施され得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能／ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能Ｉ／Ｏリソースをルーティングすることが可能である。
【００３３】
再構成可能最終レベルキャッシュリソースは、最終レベルキャッシュまたはレベル３（Ｌ３）キャッシュを含み得る。いくつかの実施形態では、１つのＬ３キャッシュは、１つのコンピュータサブシステムによって共有され得る。本明細書において、最終レベルキャッシュ及びＬ３キャッシュという用語は同じ意味で用いられ得るが、いくつかのシステムにおいては、最終レベルキャッシュは、本技術の範囲から逸脱せずにレベル２キャッシュまたはレベル４キャッシュまたは任意のその他のレベルであり得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能／ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能最終レベルキャッシュリソースをルーティングすることが可能である。
【００３４】
管理コンピュータサブシステム１１０は、ＳｏＣ１０２上の異なるコンピュータサブシステム用の様々なリソースを管理するように構成され得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間の再構成可能リソース１０６の細分化された分割を動的に実行するように構成し得る。いくつかの実施形態では、起動後に管理コンピュータサブシステム１１０は、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８用のリソースを管理するように構成され得る。例えば、管理コンピュータサブシステム１１０は、全ての処理リソース及びメモリリソースをネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のそれぞれにマッピングすることによって、ネットワーク専用システムとしてまたはサーバ専用システムとしてＳｏＣ１０２を構成するために起動時にリソースの少なくともいくつかを再構成し得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で共有され得る１つ以上のリソースを含み得る。例えば、いくつかの実施様態においては、共有されたリソースは、ファブリックブリッジまたはステアリングユニットを使用してネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８の両方にマッピングされ得る。
【００３５】
いくつかの実施形態では、再構成可能リソース１０６は、パワーオンリセットでのデフォルトの構成に基づいて分割され得る。いくつかの実施形態では、デフォルトの構成は、ポリシー（例えば、組織によって提供される）に基づくか、またはオペレータが提供する構成であり得る。管理コンピュータサブシステム１１０は、パワーオンリセット後に、再構成可能リソース１０６の動的に再分割するように構成され得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、ソフトウェアまたはハードウェアの構成に基づいて再構成可能リソース１０６の再分割のための構成を決定し得る。例えば、管理コンピュータサブシステム１１０は、１つ以上のＳｏＣ１０２のピンまたはソフトウェアレジスタにおけるデータフィールドに基づいて、再分割の構成を決定し得る。
【００３６】
図２は、本技術のいくつかの実施形態による、再構成可能リソースを備えるシステム２００の高レベルの図を示す。
【００３７】
ＳｏＣ１０２は、ネットワークコンピュータサブシステム１０４、サーバコンピュータサブシステム１０８、管理コンピュータサブシステム１１０及び共有リソースサブシステム２０４を含み得る。再構成可能リソース１０６は、ファブリックブリッジ２０２を使用して、ネットワークコンピュータサブシステム１０４、サーバコンピュータサブシステム１０８及び管理コンピュータサブシステム１１０に通信可能に接続され得る。再構成可能リソース１０６は、再構成可能処理コア２０６、再構成可能メモリリソース２０８、再構成可能Ｉ／Ｏリソース２１０及び再構成可能最終レベルキャッシュリソース２１２を含み得る。再構成可能リソース１０６は、管理コンピュータサブシステム１１０によって動的に構成されることができる。ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間の管理コンピュータサブシステム１１０によって再分割されることができる。ファブリックブリッジ２０２は、再構成可能リソース１０６におけるそれぞれ構成されたリソースをネットワークコンピュータサブシステム１０４用の第１の物理層ファブリックか、またはサーバコンピュータサブシステム１０８用の第２の物理層ファブリックにマッピングすることができる。特定の実施形態において、ステアリングユニットは、構成されたリソースをネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８にステアリングするために使用され得る。いくつかの実施形態では、共有リソースは、ファブリックブリッジ２０２またはステアリングユニット（図示せず）を使用して、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８の両方にルーティングされ得る。
【００３８】
ネットワークコンピュータサブシステム１０４は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４及びアクセラレーションユニット２１６を含み得る。いくつかの実施形態では、再構成可能処理コア２０６、再構成可能メモリリソース２０８、再構成可能Ｉ／Ｏリソース２１０及び再構成可能最終レベルキャッシュリソース２１２の少なくとも一部は、ネットワークコンピュータサブシステム１０４の一部として機能するように再構成可能である。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４にマッピングされ得る処理コア、メモリリソース、Ｉ／Ｏリソース及び最終レベルキャッシュリソースに接続され得る。例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４用に構成されたリソースをサーバコンピュータサブシステム１０８用に構成されたリソースから物理的に分離することが可能なネットワークコンピュータサブシステム１０４の第１の物理層ファブリックを表し得る。
【００３９】
サーバコンピュータサブシステム１０８は、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８を含み得る。いくつかの実施形態では、再構成可能処理コア２０６、再構成可能メモリリソース２０８、再構成可能Ｉ／Ｏリソース２１０及び再構成可能最終レベルキャッシュリソース２１２の少なくとも一部は、サーバコンピュータサブシステム１０８の一部として機能するように再構成される。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８にマッピングされ得る処理コア、メモリリソース、Ｉ／Ｏリソース及び最終レベルキャッシュリソースに接続され得る。例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８用に構成されたリソースをネットワークコンピュータサブシステム１０４用に構成されたリソースから物理的に分離することが可能なサーバコンピュータサブシステム１０８用の第２物理層ファブリックを表し得る。
【００４０】
再構成可能処理コア２０６は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間を分割可能な複数の再構成可能処理コアを含み得る。いくつかの実施形態では、再構成可能処理コア２０６の少なくとも１つの処理コアは、ネットワークコンピュータサブシステム１０４の一部として、またはサーバコンピュータサブシステム１０８の一部として機能するために再構成が可能である。例えば、一例では再構成可能処理コア２０６は、１２個の２コアプロセッサを含み得る。パワーオンリセットでは、デフォルトの構成に基づいて、４つの２コアプロセッサは、ネットワークコンピュータサブシステム１０４にマッピングされてよく、８つの２コアプロセッサは、サーバコンピュータサブシステム１０８にマッピングされてよい。例えば、デフォルトの構成は、ポリシーに基づくか、またはオペレータにより提供され得る。いくつかの実施形態では、Ｌ１及び／またはＬ２キャッシュは、プロセッサの多数のコア間で共有され得る。例えば、Ｌ１及び／またはＬ２キャッシュ（例えば、４ＭＢキャッシュ）のそれぞれは、１つのマルチコアプロセッサ（例えば、２コアプロセッサ）に統合され得る。場合によっては、Ｌ１キャッシュは一次キャッシュとして使用され、Ｌ２キャッシュは二次キャッシュとして使用され得る。したがって、再構成可能処理コア２０６の再構成は、統合されたＬ１／Ｌ２キャッシュを備える複数の再構成可能処理コアを分割することを含み得る。管理コンピュータサブシステム１１０は、再構成可能処理コア２０６を再構成してネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間のリソースを動的に再分割し得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、それぞれのサブシステムの性能要件に基づいて、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間のリソースを動的に再分割し得る。例えば、ホストシステム１１２は、仮想インスタンスの種類（例えば、スモールコンピューティング、ビッグコンピューティング、スモールネットワーキング、ビッグネットワーキング等）の範囲を提供するように構成されてよく、これは必要とされるリソースをサーバインスタンスのスループット要件に合致させる各仮想サーバインスタンス用に異なるサブシステムの再構成を必要とし得る。いくつかの実施形態では、再構成可能処理コア２０６におけるそれぞれの構成可能なプロセッサコアは、ファブリックブリッジ２０２またはステアリングユニットを介してコンピュータサブシステムに接続するインタフェースを有し得る。例えば、いくつかの実施様態においては、再構成可能処理コア２０６は、ルーティングファブリック（例えば、ファブリックブリッジ２０２）またはステアリングユニット（図示せず）を使用して、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８に個別にルーティングされ得る。
【００４１】
再構成可能メモリリソース２０８は、メモリコントローラを含み得る。メモリコントローラは、ＤＤＲコントローラ、ＤＤＲ２コントローラまたは任意の好適なコントローラを含んでよく、外部メモリ（例えば、システムメモリ）へのアクセスを管理するために使用されてよい。いくつかの実施形態では、再構成可能メモリリソース２０８は、帯域幅及びそれぞれの処理コアのメモリ容量に基づいて再構成され得る。いくつかの実施形態では、再構成可能メモリリソース２０８のメモリリソースの少なくとも一部は、ネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように再構成され得る。いくつかの実施形態では、再構成可能メモリリソース２０８におけるそれぞれの構成可能なリソースは、ファブリックブリッジ２０２またはステアリングユニットを介してコンピュータサブシステムに接続するインタフェースを有し得る。例えば、いくつかの実施様態においては、再構成可能メモリリソース２０８は、ルーティングファブリック（例えば、ファブリックブリッジ２０２）またはステアリングユニット（図示せず）を使用して、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８に個別にルーティングされ得る。
【００４２】
再構成可能Ｉ／Ｏリソース２１０は、ネットワークインタフェース、内部及び外部のバスインタフェースのような様々なＩ／Ｏインタフェースを含み得る。いくつかの実施形態では、再構成可能Ｉ／Ｏリソース２１０は、図１を参照して記載しているように例えばホストインタフェース１１４のようなホストシステム１１２と通信する第１のインタフェースを含み得る。いくつかの実施形態では、再構成可能Ｉ／Ｏリソース２１０は、ネットワークコンピュータサブシステム１０４と通信するための第２のインタフェースを含み得る。例えば、いくつかの実施形態では、ネットワークコンピュータサブシステム１０４は、ファブリックブリッジ２０２によってホストインタフェース１１４にマッピングされてきた第２のインタフェースを使用するホストシステム１１２と通信し得る。いくつかの実施形態では、再構成可能Ｉ／Ｏリソース２１０は、サーバコンピュータサブシステム１０８と通信するための第３のインタフェースを含み得る。例えば、いくつかの実施形態では、サーバコンピュータサブシステム１０８は、ファブリックブリッジ２０２によってホストインタフェース１１４にマッピングされてきた第３のインタフェースを使用するホストシステム１１２と通信し得る。いくつかの実施形態では、第１、第２及び第３のインタフェースは、ＰＣＩｅインタフェースのような標準インタフェースを使用して実施され得る。再構成可能Ｉ／Ｏリソース２１０は、例えばネットワークインタフェース２１８のようなネットワークで通信するための第４のインタフェースを含み得る。例えば、ネットワークインタフェース２１８は、イーサネット、トークンリング、Ｗｉ−Ｆｉ、ＡＴＭ（非同期転送モード）等のような規格に基づいてよい。いくつかの実施形態では、再構成可能Ｉ／Ｏリソース２１０は、また、インタフェースを含み、ハードドライブ、光学式ドライブ等のような外部の大容量ストレージデバイスに接続し得る。例えば、インタフェースは、シリアルＡＴＡまたはＳＡＴＡとしても知られている、シリアルアドバンストテクノロジーアタッチメントに基づいてよい。いくつかの実施形態では、再構成可能Ｉ／Ｏリソース２１０の少なくとも一部は、ネットワークコンピュータサブシステム１０４の一部として、またはサーバコンピュータサブシステム１０８の一部として機能するように再構成されることが可能である。いくつかの実施形態では、再構成可能Ｉ／Ｏリソース２１０におけるそれぞれのインタフェースは、ファブリックブリッジ２０２またはステアリングユニットを介してコンピュータサブシステムに接続し得る。例えば、いくつかの実施様態においては、再構成可能Ｉ／Ｏリソース２１０は、ルーティングファブリック（例えば、ファブリックブリッジ２０２）またはステアリングユニット（図示せず）を使用して、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８に個別にルーティングされ得る。
【００４３】
再構成可能最終レベルキャッシュリソース２１２は、Ｌ３キャッシュのような最終レベルキャッシュを含み得る。いくつかの実施形態では、再構成可能最終レベルキャッシュリソース２１２の少なくとも一部は、ネットワークコンピュータサブシステム１０４の一部として、またはサーバコンピュータサブシステム１０８の一部として機能するように再構成されることが可能である。例えば、Ｌ３キャッシュは、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で共有され得る。例えば、１６ＭＢのＬ３キャッシュは、２つの８ＭＢのＬ３キャッシュに分割され得る。１つの８ＭＢのＬ３キャッシュは、ネットワークコンピュータサブシステム１０４に割り当てられてよく、もう１つの８ＭＢキャッシュはサーバコンピュータサブシステム１０８に割り当ててよい。いくつかの実施形態では、Ｌ３キャッシュは２ＭＢの細粒度レベルで再構成され得る。例えば、Ｌ３キャッシュは、ネットワークコンピュータサブシステム１０４に割り当てられた２ＭＢのＬ３キャッシュと、サーバコンピュータサブシステム１０８に割り当てられた１４ＭＢのＬ３キャッシュに再分割され得る。いくつかの実施形態では、それぞれのコンピュータサブシステム用に構成された処理コアのメモリ及び帯域幅の要件に基づいて、再構成可能最終レベルキャッシュリソース２１２は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で、再構成可能処理コア３０２と、再構成可能メモリリソース２０８とに動的に再分割され得る。いくつかの実施形態では、再構成可能最終レベルキャッシュリソース２１２におけるそれぞれの構成可能なリソースは、ファブリックブリッジ２０２またはステアリングユニットを介してコンピュータサブシステムに接続するインタフェースを有し得る。例えば、いくつかの実施様態においては、再構成可能最終レベルキャッシュリソース２１２は、ルーティングファブリック（例えば、ファブリックブリッジ２０２）またはステアリングユニット（図示せず）を使用して、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８に個別にルーティングされ得る。
【００４４】
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステムの機能の一部として機能できるように構成された第１の物理層ファブリックを表し得る。いくつかの実施様態においては、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４用に全ての構成されたリソースに接続でき、ネットワークコンピュータサブシステム１０４をサーバコンピュータサブシステム１０８から分離でき、その結果ジッタ及び性能分離を提供できる。ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、例えば、ネットワークコンピュータサブシステム１０４に割り当てられた再構成可能リソース（例えば、再構成可能処理コア２０６、再構成可能メモリリソース２０８、再構成可能Ｉ／Ｏリソース２１０及び再構成可能最終レベルキャッシュリソース２１２）、アクセラレーションユニット２１６及び共有リソースサブシステム２０４のようなネットワークコンピュータサブシステム１０４の異なるコンポーネント間でコヒーレンシを維持するように構成され得る。場合によっては、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４の通信バックボーンを表し得る。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、全ての共有データがネットワークコンピュータサブシステム１０４においてコヒーレントであることを確実にするように構成され得る。例えば、特定の共有データが２つ以上の位置（例えば、多数のプロセッサ、プロセッサの多数のコア、キャッシュ等）に記憶される場合、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、異なる位置の共有データの一貫性を維持するように動作可能であり得る。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４の異なるコンポーネント間でコヒーレンシを維持するためのコヒーレンシコントローラ及びコヒーレンシディレクトリを含み得る。
【００４５】
アクセラレーションユニット２１６は、ネットワークコンピュータサブシステム１０４にネットワーキングのアクセラレーションを提供するように構成され得る。いくつかの実施形態では、アクセラレーションユニット２１６は、ハードウェアアクセラレータ、様々なパイプライン等のような異なる種類のアクセラレータを含み得る。アクセラレーションユニット２１６は、ＲＤＭＡ（遠隔ダイレクトメモリアクセス）、暗号エンジン等も支援し得る。例えば、暗号エンジンはハードウェアの暗号機能を実行してよく、したがって、ソフトウェアのオーバーヘッドを低減し、ネットワークに関連する復号化、暗号化及び認証機能の実行を加速化する。いくつかの実施形態では、アクセラレーションユニット２１６は、サーバコンピュータサブシステム１０８によってアクセスされない場合がある。
【００４６】
共有リソースユニット２０４は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で共有され得る１つ以上のリソースを含むことができる。いくつかの実施様態においては、共有リソースユニット２０４は、管理コンピュータサブシステム１１０の一部であってよい。いくつかの実施形態では、共有リソースユニット２０４は、任意のジッタまたは安全性の問題を起こすことなく、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で共有され得る１つ以上の周辺機器を安全に含むことができる。例えば、共有リソースユニット２０４は、乱数発生器、通信メールボックス、スクラッチパッドメモリ、フラッシュメモリ等を含み得る。いくつかの実施形態では、共有リソースユニット２０４における１つ以上のリソースは、ファブリックブリッジ２０２またはステアリングユニットを使用して、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８に個別にルーティングされ得る。
【００４７】
サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８の機能の一部として構成されることが可能な、第２の物理層ファブリックを表し得る。いくつかの実施様態においては、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８用の全ての構成されたリソースに接続でき、サーバコンピュータサブシステム１０８をネットワークコンピュータサブシステム１０４から分離でき、その結果ジッタ及び性能分離を提供できる。サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、例えば、サーバコンピュータサブシステム１０８に割り当てられた再構成可能リソース（例えば、再構成可能処理コア２０６、再構成可能メモリリソース２０８、再構成可能Ｉ／Ｏリソース２１０及び再構成可能最終レベルキャッシュリソース２１２）及び共有リソースサブシステム２０４のようなサーバコンピュータサブシステム１０８の異なるコンポーネント間でコヒーレンシを維持するように構成され得る。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、全ての共有されたデータがサーバコンピュータサブシステム１０８においてコヒーレントであることを確実にするように構成され得る。例えば、特定の共有データが２つ以上の位置（例えば、多数のプロセッサ、キャッシュ等）に記憶される場合、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、異なる位置の共有データの一貫性を維持するように動作可能であり得る。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８の異なるコンポーネント間でコヒーレンシを維持するためのコヒーレンシコントローラ及びコヒーレンシディレクトリを含み得る。
【００４８】
ファブリックブリッジ２０２は、それぞれのリソースを物理層にマッピングするルーティングファブリックを表し得る。例えば、ファブリックブリッジ２０２は、１つ以上のリソース（例えば、再構成可能処理コア２０６、再構成可能メモリリソース２０８、再構成可能Ｉ／Ｏリソース２１０及び再構成可能最終レベルキャッシュリソース２１２）を、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８に関連し得る物理層ファブリックにマッピングできる。本技術のいくつかの実施形態では、多数の物理層は、サブシステム用にそれぞれの物理層がコヒーレントファブリックに関連されることが可能な場所に存在し得る。例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４の第１の物理層ファブリックを表してよく、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８の第２物理層ファブリックを表し得る。いくつかの実施形態では、ネットワークコンピュータサブシステムコヒーレントファブリック２１４及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８のそれぞれは、リソースに取り付けるためのポートを有し得る。いくつかの実施形態では、ファブリックブリッジ２０２は、ポートを有し、例えばリソースのインタフェースを介して再構成可能リソース２０６のそれぞれのリソースに物理的に接続してよい。ファブリックブリッジ２０２は、それぞれの物理層ファブリックのポートに取り付けられたリソースをマッピングするように構成され得る。例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８のそれぞれは、クロスバー、メッシュ、リングまたは、ファブリックブリッジ２０２のポートに物理的に接続されるリソースを取付可能な任意のその他の好適な実施様態として実施され得る。開示された技術の実施形態により、双方のコンピュータサブシステムに対するジッタ及びセキュリティリスクを低減できるそれぞれのコンピュータサブシステム用に物理層ファブリックを物理的に分離することが可能である。
【００４９】
図３は、本技術のいくつかの実施形態では、再構成可能処理及びメモリリソースを備える例示的なＳｏＣを示す。
【００５０】
ＳｏＣ１０２は、再構成可能処理コア３０２、Ｌ１／Ｌ２キャッシュ３０４、ファブリックブリッジ２０２、ネットワークコンピュータサブシステム１０４、サーバコンピュータサブシステム１０８、管理コンピュータサブシステム１１０、ステアリングユニット３０６、再構成可能メモリコントローラ３０８、及び共有リソースサブシステム２０４を含み得る。ネットワークコンピュータサブシステム１０４は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４、Ｌ３キャッシュ３１０、アクセラレーションユニット２１６及びネットワークＩ／Ｏサブシステム３１２を含み得る。いくつかの実施形態では、再構成可能処理コア３０２、Ｌ１／Ｌ２キャッシュ３０４及び再構成可能メモリコントローラ３０８のうち少なくとも一部は、ネットワークコンピュータサブシステム１０４の一部として機能するように構成されることができる。サーバコンピュータサブシステム１０８は、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８、Ｌ３キャッシュ３１４、ブート周辺装置３１６及びサーバＩ／Ｏサブシステム３１８を含み得る。いくつかの実施形態では、再構成可能処理コア３０２、Ｌ１／Ｌ２キャッシュ３０４及び再構成可能メモリコントローラ３０８のうち少なくとも一部は、サーバコンピュータサブシステム１０８の一部として機能するように構成されることができる。
【００５１】
再構成可能処理コア３０２は、複数の処理コアを含んでよく、それぞれの処理コアがネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように再構成され得る。いくつかの実施形態では、再構成可能処理コア３０２は、複数のマルチコアプロセッサを含んでよく、それぞれのマルチコアプロセッサ（例えば、２コアプロセッサ、３コアプロセッサ等）がネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように再構成されることが可能である。Ｌ１／Ｌ２キャッシュ３０４は、ネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように再構成されることが可能な、複数のＬ１及び／またはＬ２キャッシュを含み得る。いくつかの実施形態では、Ｌ１／Ｌ２キャッシュ３０４は、再構成可能処理コア３０２に組み込まれ得る。Ｌ３キャッシュは、ＳｏＣ１０２上にあり、それぞれのＬ３キャッシュは同一のサブシステム用の全ての処理コアによって共有され得る。いくつかの実施形態では、再構成可能処理コア３０２及びＬ１／Ｌ２キャッシュ３０４は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で管理コンピュータサブシステム１１０によって動的に再分割され得る。例えば、一例では再構成可能処理コア３０２及び対応するＬ１／Ｌ２キャッシュ３０４のうち半分は、ネットワークコンピュータサブシステム１０４にマッピングされ、その他の半分はサーバコンピュータサブシステム１０８にマッピングされ得る。別の例では、再構成可能処理コア３０２及び対応するＬ１／Ｌ２キャッシュ３０４のうち３分の１は、ネットワークコンピュータサブシステム１０４にマッピングされ、３分の２はサーバコンピュータサブシステム１０８にマッピングされ得る。いくつかの実施形態では、それぞれのコンピュータサブシステム用に構成された処理コアのメモリ及び帯域幅の要件に基づいて、Ｌ３キャッシュ３１０及びＬ３キャッシュ３１４は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で、再構成可能処理コア３０２と、Ｌ１／Ｌ２キャッシュ３０４とに動的に再分割され得る。いくつかの実施様態においては、再構成可能処理コア３０２及びＬ１／Ｌ２キャッシュ３０４は、異なる物理層ファブリック（例えば、ネットワークコンピュータサブシステムコヒーレントファブリック２１４及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８）にファブリックブリッジ２０２またはステアリングユニット３０６を使用してルーティングされ得る。
【００５２】
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、例えば、ネットワークコンピュータサブシステム１０４（例えば、再構成可能処理コア３０２の１つ以上の処理コア、再構成可能メモリコントローラ３０８の１つ以上のメモリコントローラ、Ｌ１／Ｌ２キャッシュ３０４の一部、Ｌ３キャッシュ３１０）に割り当てられた再構成リソース、ネットワークＩ／Ｏサブシステム３１２、アクセラレーションユニット２１６及び共有リソースサブシステム２０４のようなネットワークコンピュータサブシステム１０４の異なるコンポーネント間でコヒーレンシを維持するように構成されてよく、また、ネットワークコンピュータサブシステム１０４に割り当てられた全ての再構成されたリソースをサーバコンピュータサブシステム１０８から物理的に分離するように構成され得る。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、全ての共有データがネットワークコンピュータサブシステム１０４においてコヒーレントであることを確実にするように構成され得る。
【００５３】
本技術のいくつかの実施形態では、図２を参照して説明したように、Ｌ３キャッシュ３１０は、再構成可能最終レベルキャッシュリソース２１２の一部分であり得る。例えば、Ｌ３キャッシュ３１０は、ファブリックブリッジ２０２またはステアリングユニット３０６を使用してネットワークコンピュータサブシステム１０４にルーティングされ得る。いくつかの実施形態では、Ｌ３キャッシュ３１０は、例えば、一部の再構成可能処理コア３０２のようなネットワークコンピュータサブシステム１０４用に構成された全ての処理コアによって共有され得る。
【００５４】
ネットワークＩ／Ｏサブシステム３１２は、様々な内部及び外部のコンポーネントと通信するための１つ以上のインタフェースを含み得る。例えば、ネットワークＩ／Ｏサブシステム３１２は、ホストシステム１１２と通信するためのインタフェースを含み得る。ネットワークＩ／Ｏサブシステム３１２は、例えばインタフェース３２０のようなサーバコンピュータサブシステム１０８と通信するための内部インタフェースを含み得る。いくつかの実施形態では、ホストシステム１１２と通信するためのインタフェース及びサーバコンピュータサブシステム１０８は、ＰＣＩｅのような標準インタフェースに基づき得る。ネットワークＩ／Ｏサブシステム３１２は、ネットワーク（例えば、インターネット、イントラネット）等と通信するためのインタフェースを含み得る。いくつかの実施形態では、サーバコンピュータサブシステム１０８が使用されない場合、サーバコンピュータサブシステム１０８と通信するためのインタフェース３２０は利用されなくてよい。いくつかの実施形態では、サーバコンピュータサブシステム１０８は、例えばインタフェース３２０のようなネットワークＩ／Ｏサブシステム３１２を介してホストシステム１１２及びネットワークと通信し得る。図２を再度参照すると、いくつかの実施形態では、ホストインタフェース１１４及びネットワークインタフェース２１８は、ネットワークコンピュータサブシステム１０４の一部として機能するように構成され得る。例えば、ファブリックブリッジ２０２によってネットワークＩ／Ｏサブシステム３１２のインタフェースにマッピングされ得る。
【００５５】
サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、例えば、サーバコンピュータサブシステム１０８に割り当てられた再構成リソース（例えば、再構成可能処理コア３０２の１つ以上の処理コア、再構成可能メモリコントローラ３０８の１つ以上のメモリコントローラ、Ｌ１／Ｌ２キャッシュ３０４の一部、Ｌ３キャッシュ３１４）、サーバＩ／Ｏサブシステム３１８及び共有リソースサブシステム２０４のようなサーバコンピュータサブシステム１０８の異なるコンポーネント間でコヒーレンシを維持するように構成されてよく、また、サーバコンピュータサブシステム１０８に割り当てられた全ての再構成リソースをネットワークコンピュータサブシステム１０４から物理的に分離するように構成され得る。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、全てのデータがサーバコンピュータサブシステム１０８においてコヒーレントであることを確実にするように構成され得る。
【００５６】
本技術のいくつかの実施形態では、図２を参照して説明したように、Ｌ３キャッシュ３１４は、再構成可能最終レベルキャッシュリソース２１２の一部分であり得る。例えば、Ｌ３キャッシュ３１４は、ファブリックブリッジ２０２またはステアリングユニットを使用してサーバコンピュータサブシステム１０８にルーティングされ得る。いくつかの実施形態では、Ｌ３キャッシュ３１４は、例えば、一部の再構成可能処理コア３０２のようなサーバコンピュータサブシステム１０８用に構成された全ての処理コアによって共有され得る。
【００５７】
サーバＩ／Ｏサブシステム３１８は、様々な内部及び外部のコンポーネントと通信するための１つ以上のインタフェースを含み得る。いくつかの実施形態では、サーバＩ／Ｏサブシステム３１８は、ホストシステム１１２と通信するためのインタフェースを含み得る。例えば、インタフェースはＰＣＩｅのような事前に定義されたインタフェースに基づき得る。サーバＩ／Ｏサブシステム３１８は、例えばインタフェース３２０のようなネットワークコンピュータサブシステム１０４と通信するための内部インタフェースを含み得る。サーバＩ／Ｏサブシステム３１８は、ネットワーク（例えば、インターネット、イントラネット）等と通信するためのインタフェースを含み得る。いくつかの実施形態では、例えばネットワークコンピュータサブシステム１０４が使用されない場合のように、全ての再構成可能リソースがサーバコンピュータサブシステム１０８用に構成されている場合には、ネットワークコンピュータサブシステム１０４と通信するためのインタフェース３２０は利用されなくてよい。したがって、このような場合にはサーバコンピュータサブシステム１０８は、ネットワークコンピュータサブシステム１０４を介してホストシステム１１２及びネットワークと通信しなくてよく、むしろ、サーバコンピュータサブシステム１０８はインタフェースを利用してホストシステム１１２とインタフェースと通信し、サーバＩ／Ｏサブシステム３１８を介してネットワークと通信し得る。例えば、図２に戻って参照すると、いくつかの実施形態では、ホストインタフェース１１４及びネットワークインタフェース２１８は、サーバコンピュータサブシステム１０８の一部として機能するように構成され得る。例えば、ファブリックブリッジ２０２によってサーバＩ／Ｏサブシステム３１８のインタフェースにマッピングされ得る。いくつかの実施形態では、サーバＩ／Ｏサブシステム３１８は、また、インタフェースを含み、ハードドライブ、光学式ドライブ等のような外部の大容量ストレージに接続し得る。例えば、インタフェースは、シリアルＡＴＡまたはＳＡＴＡとしても知られている、シリアルアドバンストテクノロジーアタッチメントに基づいてよい。
【００５８】
ブート周辺装置３１６は、サーバコンピュータサブシステム１０８用の１つ以上の周辺機器を含み得る。例えば、ブート周辺装置３１６は、ブートＲＯＭ、ＥＥＰＲＯＭまたはフラッシュメモリを含み得る。いくつかの実施形態では、ブート周辺装置３１６のうち１つは、サーバコンピュータサブシステム１０８用のオペレーティングシステムをブートストラップするためのＢＩＯＳソフトウェアを含み得る。
【００５９】
管理コンピュータサブシステム１１０は、ＳｏＣ１０２上の様々なコンピュータサブシステムを管理するように構成され得る。管理コンピュータサブシステム１１０も、異なるコンピュータサブシステムに関連するリソースを管理するように構成され得る。例えば、管理コンピュータサブシステム１１０は、再構成可能処理コア３０２、Ｌ１／Ｌ２キャッシュ３０４及び再構成可能メモリコントローラ３０８を再構成し、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間の処理とメモリリソースを再分割し得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、ソフトウェアまたはハードウェアの構成に基づいて処理及びメモリリソースの再構成を決定し得る。
【００６０】
再構成可能メモリコントローラ３０８は、１つ以上のメモリコントローラを含み得る。再構成可能メモリコントローラ３０８は、ＤＤＲコントローラ、ＤＤＲ２コントローラまたは任意の好適なコントローラを含んでよく、例えば１つ以上のメモリチャネル（図示せず）を介する外部メモリへのアクセスを管理するために使用されてよい。いくつかの実施形態では、１つ以上の再構成可能メモリコントローラ３０８は、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８の一部として機能するように構成され得る。例えば、いくつかの実施様態においては、再構成可能メモリコントローラ３０８は、異なる物理層ファブリック（例えば、ネットワークコンピュータサブシステムコヒーレントファブリック２１４及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８）にファブリックブリッジ２０２またはステアリングユニット３０６を使用してルーティングされ得る。
【００６１】
共有リソースサブシステム２０４は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間で共有され得る１つ以上のリソースを含むことができる。共有リソースサブシステム３１８は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８の両方に通信可能に接続され得る。
【００６２】
ステアリングユニット３０６は、再構成可能メモリコントローラ３０８のメモリコントローラのそれぞれをネットワークコンピュータサブシステム１０４（例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４を介して）またはサーバコンピュータサブシステム１０８（例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８を介して）にステアリングするように構成され得る。いくつかの実施形態では、ステアリングユニット３０６は、ステアリングを実行するための多重変換装置、多重分離装置または任意のその他の好適な実施態様を含み得る。例えば、場合によっては、ステアリングユニット３０６は、メモリデータ及び制御信号を再構成可能メモリコントローラ３０８からネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のいずれかへステアリングするかルーティングし得る。その他の場合によっては、メモリデータ及び制御信号をネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のいずれかから再構成可能メモリコントローラ３０８へとルーティングし得る。いくつかの実施形態では、ステアリングユニット３０６は、再構成可能処理コア３０２及び必要とされるメモリ帯域幅の分割に基づいて、再構成可能メモリコントローラ３０８のステアリングを決定し得る。いくつかの実施形態では、ステアリングユニット３０６は、再構成可能メモリコントローラ３０８に統合され、再構成可能メモリコントローラ３０８のそれぞれのメモリコントローラをコンピュータサブシステムのいずれかにステアリングし得る。
【００６３】
いくつかの実施様態においては、ステアリングユニット３０６は、再構成処理コア３０２及びＬ１／Ｌ２キャッシュ３０４をネットワークコンピュータサブシステム１０４（例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４を介して）またはサーバコンピュータサブシステム１０８（例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８を介して）にステアリングするようにも構成され得る。いくつかの実施様態においては、ステアリングユニット３０６は、共有リソースサブシステム２０４における１つ以上の共有リソースをネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８へとステアリングするように構成され得る。
【００６４】
図４は、本技術のいくつかの実施形態において再構成リソースを含むＳｏＣ４０２の例示的なブロック図を示している。例えば、図３を参照すると、再構成可能処理コア３０２、Ｌ１／Ｌ２キャッシュ３０４及び再構成可能メモリコントローラ３０８は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間を再構成し、再分割する。例えば、図４に示す構成は、電源オンでデフォルトの構成であり得る。
【００６５】
図４は、ネットワークコンピュータサブシステム１０４、サーバコンピュータサブシステム１０８、ファブリックブリッジ２０２、管理コンピュータサブシステム１１０及び共有リソースサブシステム２０４を含むＳｏＣ１０２を示す。ネットワークコンピュータサブシステム１０４は、図３を参照して説明したネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４、Ｌ３キャッシュ３１０、ネットワークＩ／Ｏサブシステム３１２、及びアクセラレーションユニット２１６に加え、ネットワークコンピュータサブシステム処理コア４０２、Ｌ１／Ｌ２キャッシュ４０４及びネットワークコンピュータサブシステムメモリコントローラ４０６のような、１つ以上の再構成リソースを含み得る。サーバコンピュータサブシステム１０８は、図３を参照して説明したサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８、Ｌ３キャッシュ３１４、サーバＩ／Ｏサブシステム３１８及びブート周辺装置３１６に加え、サーバコンピュータサブシステム処理コア４０８、Ｌ１／Ｌ２キャッシュ４１０及びネットワークコンピュータサブシステムメモリコントローラ４１２のような、１つ以上の再構成リソースを含み得る。
【００６６】
ネットワークコンピュータサブシステム４０２は、例えば管理コンピュータサブシステム１１０によってネットワークコンピュータサブシステム１０４の一部として機能するように構成されてきた１つ以上の処理コアを含み得る。いくつかの実施形態では、ネットワークコンピュータサブシステム処理コア４０２は、２つの処理コアの粒度レベルで分割され得る。いくつかの実施形態では、Ｌ１／Ｌ２キャッシュ４０４は、Ｌ１／Ｌ２キャッシュがネットワークコンピュータサブシステム処理コア４０２における各マルチコアプロセッサ（例えば、２つのコアプロセッサ）によって共有されることができるように分割され得る。
【００６７】
ネットワークコンピュータサブシステムメモリコントローラ４０６は、例えば管理コンピュータサブシステム１１０によってネットワークコンピュータサブシステム１０４の一部として機能するように構成されてきた１つ以上のメモリコントローラを含み得る。図３を再度参照すると、ネットワークコンピュータサブシステムメモリコントローラ４０６は、ステアリングユニット３０６によってネットワークコンピュータサブシステム１０４にステアリングされる再構成可能メモリコントローラ３０８における１つ以上のメモリコントローラを含み得る。
【００６８】
サーバコンピュータサブシステム処理コア４０８は、例えば管理コンピュータサブシステム１１０によってサーバコンピュータサブシステム１０８の一部として機能するように構成される１つ以上のマルチコアプロセッサを含み得る。いくつかの実施形態では、サーバコンピュータサブシステム処理コア４０８は、２つの処理コアの粒度レベルで分割され得る。いくつかの実施形態では、Ｌ１／Ｌ２キャッシュ４１０は、Ｌ１／Ｌ２キャッシュがサーバコンピュータサブシステム処理コア４０８における各マルチコアプロセッサ（例えば、２コアプロセッサ）によって共有されることができるように分割され得る。
【００６９】
サーバコンピュータサブシステムメモリコントローラ４１２は、例えば管理コンピュータサブシステム１１０によってサーバコンピュータサブシステム１０８の一部として機能するように構成されてきた１つ以上のメモリコントローラを含み得る。図３を再度参照すると、サーバコンピュータサブシステムメモリコントローラ４１２は、ステアリングユニット３０６によってサーバコンピュータサブシステム１０８にステアリングされる再構成可能メモリコントローラ３０８における１つ以上のメモリコントローラを含み得る。
【００７０】
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４用の全ての構成されたリソースを第１の物理層に分離することによってジッタ及びセキュリティへの懸念を低減し、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８用の全ての構成されたリソースを第２の物理層に分離することによってジッタ及びセキュリティへの懸念を低減し得る。
【００７１】
いくつかの実施形態では、図４に図示されているように、起動時に、再構成可能処理及びメモリリソースは、例示的な構成に分割され得る。場合によっては、サーバコンピュータサブシステム１０８が高性能のコンピュータサービスを提供するように構成されているがコンピューティングリソースが十分に利用されていない場合（例えば、仮想サーバ上の全てのスロットが貸し出されているとは限らない）には、管理コンピュータサブシステム１１０は、処理及びメモリリソースのうちいくつかをサーバコンピュータサブシステム１０８からネットワークコンピュータサブシステム１０４へと動的に移動し得る。同様に、その他の場合においては、サーバコンピュータサブシステム１０８が低性能のコンピュータサービスを提供するように構成されているが全てのリソースが十分に利用されている場合（例えば、仮想サーバ上の全てのスロットが貸し出されている）には、管理コンピュータサブシステム１１０は、リソースをより良く利用するために、処理及びメモリリソースのうちいくつかをネットワークコンピュータサブシステム１０４からサーバコンピュータサブシステム１０８へと動的に移動し得る。
【００７２】
図５は、本技術のいくつかの実施形態におけるサーバ構成のみを備えるＳｏＣ１０２の例示的なブロック図を示している。前述したように、場合によっては、管理サブシステム１１０は、サーバコンピュータサブシステム１０８の一部として機能する全ての再構成可能リソースを再分割し得る。例えば、ネットワークコンピュータサブシステム１０４の機能が利用されていない場合である。例えば、図３に戻って参照すると、再構成可能処理コア３０２、Ｌ１／Ｌ２キャッシュ３０４及び再構成可能メモリコントローラ３０８は、サーバコンピュータサブシステム１０８の一部として機能するように再構成されることができる。場合によっては、リソースのこの再構成は起動時に起こり得る。
【００７３】
図５は、サーバコンピュータサブシステム１０８、ファブリックブリッジ２０２、管理コンピュータサブシステム１１０及び共有リソースサブシステム２０４を含むＳｏＣ１０２を示す。図４を参照して説明したように、ネットワークコンピュータサブシステム１０４は本実施形態において利用されない。例えば、いくつかの実施形態では、ＳｏＣ１０２はサーバ機能のみを提供するように構成され、したがって、ネットワーク機能は使用されなくてよい。
【００７４】
サーバコンピュータサブシステム１０８は図４に記載されているものと同様のコンポーネントを含み得る。サーバコンピュータサブシステム処理コア４０８及びＬ１／Ｌ２キャッシュ４１０は、例えば管理コンピュータサブシステム１１０によってサーバコンピュータサブシステム１０８の一部として機能するように構成され得る。サーバコンピュータサブシステムメモリコントローラ４１２は、ステアリングユニット３０６によってサーバコンピュータサブシステム１０８にいくつかまたは全ての再構成可能メモリコントローラ３０８を含み得る。
【００７５】
インタフェース３２０は、ネットワークコンピュータサブシステム１０４を介してホストシステム１１２及びネットワークを通信するためのサーバコンピュータサブシステム１０８によって利用され得ない。本技術のいくつかの実施形態では、サーバコンピュータサブシステム１０８は、サーバＩ／Ｏサブシステム３１８を使用してホストシステム１１２及びネットワークと通信し得る。例えば、図２に戻って参照すると、例えば、ファブリックブリッジ２０２によりサーバＩ／Ｏサブシステム３１８インタフェースをホストインタフェース１１４及びネットワークインタフェース２１８にマッピングすることによって、ホストインタフェース１１４及びネットワークインタフェース２１８は、サーバコンピュータサブシステム１０８の一部として機能するように再構成され得る。
【００７６】
図６は、本技術の一実施形態においてＳｏＣ１０２の例示的なブロック図を示す。一般に、ＳｏＣは、ネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように動的に構成されることが可能な、リソースの可撓性プールを含むことができる。ネットワークコンピュータサブシステム及びサーバコンピュータサブシステムは、専用の処理及びメモリリソースもそれぞれ含むことができる。
【００７７】
図３を参照して説明したように、ＳｏＣ１０２は、ネットワークコンピュータサブシステム１０４、サーバコンピュータサブシステム１０８、ファブリックブリッジ２０２、管理コンピュータサブシステム１１０、ステアリングユニット３０６、再構成可能メモリコントローラ３０８及び共有リソースサブシステム２０４に加え、再構成可能処理コア６０２、Ｌ１／Ｌ２キャッシュ６０４を含み得る。図４で説明したように、ネットワークコンピュータサブシステム１０４は、複数のコンポーネントに加えて、ネットワークコンピュータサブシステム専用処理コア６０８及びＬ１／Ｌ２キャッシュ６１０を含み得る。例えば、ネットワークコンピュータサブシステム１０４は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４、Ｌ３キャッシュ３１０、ネットワークＩ／Ｏサブシステム３１２及びアクセラレーションユニット２１６も含み得る。図４で説明したように、サーバコンピュータサブシステム１０８は、複数のコンポーネントに加えて、サーバコンピュータサブシステム専用処理コア６１２及びＬ１／Ｌ２キャッシュ６１４を含み得る。例えば、サーバコンピュータサブシステム１０８は、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８、Ｌ３キャッシュ３１４及びサーバＩ／Ｏサブシステム３１８を含み得る。
【００７８】
再構成可能処理コア６０２は、ネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように動的に構成されることが可能な、複数の処理コアを含み得る。Ｌ１／Ｌ２キャッシュ６０４は、ネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能するように動的に構成されることが可能な、複数のＬ１／Ｌ２キャッシュを含み得る。いくつかの実施形態では、Ｌ１／Ｌ２キャッシュ６０４のそれぞれは、１つ以上の処理コアによって共有され得る。例えば、管理コンピュータサブシステム１１０は、処理コア及びＬ１／Ｌ２キャッシュのそれぞれをネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のいずれかに向けるように作業負荷要求に基づいて、決定し得る。一例として、一実施形態では、ネットワークコンピュータサブシステム専用処理コア６０６、サーバコンピュータサブシステム専用処理コア６１０及び再構成可能処理コア６０２は、８つの２コアプロセッサを含み得る。本技術の実施形態では、１つ以上の再構成可能処理コア６０２は、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のいずれかに向けられることが可能である。例えば、一例では管理コンピュータサブシステム１１０は、特定の時間では、サーバコンピュータサブシステム１０８はネットワークコンピュータサブシステム１０４と比べて高性能の計算サービスを提供していると判断し得る。したがって、この例では再構成可能処理コア６０２からの２つの２コアプロセッサはネットワークコンピュータサブシステム１０４にマッピングされてよく、再構成可能処理コア６０２からの６つの２コアプロセッサはサーバコンピュータサブシステム１０８にマッピングされてよい。同様に、管理コンピュータサブシステム１１０は、特定の時間では、ネットワークコンピュータサブシステム１０４はサーバコンピュータサブシステム１０８と比べて高性能のネットワークサービスを提供していると判断し得る。したがって、この例では再構成可能処理コア６０２からの２つの２コアプロセッサはサーバコンピュータサブシステム１０８にマッピングされてよく、再構成可能処理コア６０２からの６つの２コアプロセッサはネットワークコンピュータサブシステム１０４にマッピングされてよい。いくつかの実施形態では、再構成可能処理コア６０２の全ては作業負荷要求に応じていずれかのコンピュータサブシステムにマッピングされ得るか、または１つもマッピングされ得ない。
【００７９】
ステアリングユニット３０６は、再構成可能メモリコントローラ３０８の１つ以上のメモリコントローラをネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８に動的にステアリングするように構成され得る。例えば、管理コンピュータサブシステム１１０は、ネットワークコンピュータサブシステム１０４の一部としてまたはサーバコンピュータサブシステム１０８の一部として機能する再構成可能メモリコントローラ３０８を構成できる。いくつかの実施形態では、管理コンピュータサブシステム１１０は、再構成可能メモリコントローラ３０８をネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８にステアリングするステアリングユニット３０６に制御信号を提供するように構成され得る。いくつかの実施形態では、ステアリングユニットは、再構成可能メモリコントローラ３０８をネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８にステアリングし、向けられた再構成可能処理コア６０２の帯域幅及びメモリ容量を一致させ得る。
【００８０】
いくつかの実施形態では、ステアリングユニット３０６は、再構成処理コア３０２及びＬ１／Ｌ２キャッシュ３０４をネットワークコンピュータサブシステム１０４（例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４を介して）またはサーバコンピュータサブシステム１０８（例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８を介して）にステアリングするために使用され得る。
【００８１】
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４は、ネットワークコンピュータサブシステム１０４用の全ての構成されたリソースを第１の物理層に分離することによってジッタ及びセキュリティへの懸念を低減してよく、サーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８は、サーバコンピュータサブシステム１０８用の全ての構成されたリソースを第２の物理層に分離することによってジッタ及びセキュリティへの懸念を低減してよい。
【００８２】
図７は、本技術の特定の実施形態による管理コンピュータサブシステム１１０のブロック図を示す。管理コンピュータサブシステム１１０は、マルチコアプロセッサ７０２、Ｌ１／Ｌ２キャッシュ７０４、ネットワークインタフェースユニット７０６、プライベートメモリ７０８、周辺装置７１０及びコンピュータ可読記憶媒体７１２を含み得る。
【００８３】
マルチコアプロセッサ７０２は、ＡＲＭ（登録商標）によるＡ５７のような２つ以上のプロセッサコアを含み得る。いくつかの実施形態では、シングルコアプロセッサは、マルチコアプロセッサ７０２の代わりに使用され得る。Ｌ１／Ｌ２キャッシュ７０４は、マルチコアプロセッサ７０２の内部または外部であってよく、全てのプロセッサコアによって共有され得る。マルチコアプロセッサ７０２は、コンピュータ可読記憶媒体７１２上に記憶され得る複数の命令を実行するように構成され得る。例えば、コンピュータ可読媒体は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８間の構成可能リソースの細分化された動的な再分割を実行する命令を含み得る。コンピュータ可読記憶媒体７１２は非一時的であり得る。いくつかの実施形態では、コンピュータ可読記憶媒体は、パラメータランダムアクセスメモリ（ＰＲＡＭ）、ＳＲＡＭ、ＤＲＡＭ、ＲＡＭ、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスク（ＣＤ）−ＲＯＭ、デジタルビデオディスク（ＤＶＤ）もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用されることが可能であり、マルチコアプロセッサ７０２によってアクセスされることが可能な任意のその他の媒体を含み得るが、これらに限定されない。いくつかの実施形態では、コンピュータ可読記憶媒体７１２は、周辺装置の一部であり得る。Ｌ１／Ｌ２キャッシュ７０４は、データの一時的記憶のためのデータキャッシュであり得る。
【００８４】
ネットワークインタフェースユニット７０６は、管理コンピュータサブシステム１１０をネットワークに接続することを可能にし得る。例えば、ネットワークインタフェースユニット７０６は、管理コンピュータサブシステム１１０にイーサネットのようなネットワークに接続するのを可能にするイーサネットＭＡＣ（Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）を含み得る。場合によっては、イーサネットＭＡＣは、ネットワークに接続するためのＰＨＹ（物理層）デバイスにインタフェース接続するためのイーサネットポートを提供し得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、処理及びメモリリソースを動的に構成するための仮想サーバインスタンスの作業負荷を決定するネットワークを介して、外部エンティティまたはシステムと通信可能である。
【００８５】
プライベートメモリ７０８は、管理コンピュータサブシステム１１０の私的使用のためのメモリを含み得る。プライベートメモリ７０８は、ランダムアクセスメモリ（例えば、ＳＲＡＭまたはＤＲＡＭ）のような揮発性メモリを含み得る。例えば、管理コンピュータサブシステム１１０はデータの一時的記憶のためのプライベートメモリ７０８を使用し得る。
【００８６】
周辺装置７１０は、管理コンピュータサブシステム１１０用のプライベート周辺装置を含み得る。いくつかの実施形態では、プライベート周辺装置７１０のいくつかは、ＳｏＣ２０２の異なるサブシステムの再起動及び電源管理のためのデバイスを含み得る。例えば、周辺装置７１０は、電源オン時にその他のサブシステムを電源オンにする前にルートオブトラストを確立するために実行できるブートファームウェアを含むトラステッド管理モジュールを含み得る。いくつかの実施形態では、電力管理は電圧操作、クロック操作または任意のその他の好適な方法で提供され得る。
【００８７】
いくつかの実施形態では、管理コンピュータサブシステム１１０は、全体のＳｏＣ２０２のコールド電源に最初に稼働するように構成され得る。場合によっては、管理コンピュータサブシステム１１０は、電源がオンになる前にその他のサブシステム用にルートオブトラストを確立するために最初に電源をオンにし得る。例えば、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８用のブートプロセスは、管理コンピュータサブシステム１１０用のコアブート下で階層的に考えられ得る。いくつかの実施形態では、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８上でその後稼働するソフトウェアは、ホストシステム１１２またはホストシステム１１２によって提供される特定のサービスに関連するプライベートキーを使用して署名され、管理コンピュータサブシステム１１０によって認証され得る。これにより、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８の両方はトラステッド及び独立ブートローダを介して起動するために処理することができる。
【００８８】
いくつかの実施形態では、管理コンピュータサブシステム１１０は、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８用のリソースを起動後に構成し得る。例えば、管理コンピュータサブシステム１１０は、全ての処理リソース及びメモリリソースをネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のそれぞれにマッピングすることによって、ネットワーク専用システムとしてまたはサーバ専用システムとしてＳｏＣ１０２を再構成するために起動時にリソースの少なくともいくつかを再構成し得る。いくつかの実施形態では、管理コンピュータサブシステム１１０は、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８の両方のライブオペレーションに影響せずに別のリセットラインでリセット／再起動され得る。
【００８９】
図８は、ネットワークＩ／Ｏサブシステム３２４のいくつかのコンポーネントを示す。ネットワークＩ／Ｏサブシステム３１２は、バスインタフェースユニット８０２、ネットワークインタフェースユニット８０４及びＩ／Ｏインタフェースユニット８０６を含み得る。
【００９０】
バスインタフェースユニット８０２は、内部または外部のコンポーネントと通信するための１つ以上のバスインタフェースを含み得る。例えば、バスインタフェースユニット８０２は、例えば、ファブリックブリッジ２０２によってホストインタフェース１１４に第１のインタフェースをマッピングすることによってホストシステム１１２と接続する第１のインタフェースを含み得る。バスインタフェースユニット８０２は、第２のインタフェースを含み、例えばインタフェース３２０のようなサーバコンピュータサブシステム１０８に接続し得る。いくつかの実施形態では、第１のインタフェース及び第２のインタフェースはＰＣＩｅインタフェースであり得る。例えば、バスインタフェースユニット８０２は、その他のＰＣＩｅポートに接続する１つ以上のＰＣＩｅポートを含み得る。バスインタフェースユニット８０２は、ルートコンプレックス（ＲＣ）ポート及びエンドポイントポート（ＥＰ）を含み得る。図３を再度参照すると、ネットワークコンピュータサブシステム１０４は、インタフェース３２０を使用して、ネットワークＩ／Ｏサブシステム３１２におけるＰＣＩｅポート及びサーバＩ／Ｏサブシステム３１８におけるＰＣＩｅポートを介してサーバコンピュータサブシステム１０８と通信し得る。同様に、ネットワークコンピュータサブシステム１０４は、インタフェース１１４を使用してネットワークＩ／Ｏサブシステム３１２におけるＰＣＩｅポート及びホストシステム１１２におけるＰＣＩｅポートを介してホストシステム１１２と通信し得る。
【００９１】
ネットワークインタフェースユニット８０４は、例えばファブリックブリッジ２０２によって第３のインタフェースをネットワークインタフェース２１８にマッピングすることによって、ネットワークに接続する第３のインタフェースを含み得る。いくつかの実施形態では、ネットワークインタフェースユニット８０４は、イーサネットネットワークに接続するための１つ以上のイーサネットＭＡＣ（例えば、１０／２５／４０／５０Ｇｂ／秒）を含み得る。場合によっては、イーサネットＭＡＣは、ネットワークに接続するためのＰＨＹ（物理層）デバイスにインタフェース接続するためのイーサネットポートを提供し得る。図３を再度参照すると、１つ以上のイーサネットＭＡＣは、ネットワークコンピュータサブシステムコヒーレント相互接続ネットワーク３２０に接続し得る。
【００９２】
Ｉ／Ｏインタフェースユニット８０６は、Ｉ／Ｏ接続のために１つ以上のインタフェースを含み得る。例えば、Ｉ／Ｏインタフェースユニット８０６は、ネットワーク接続（例えば、イーサネット等）及び外部バスインタフェース（例えばＰＣＩｅ）用のピンまたは相互接続によりインタフェースで接続するように構成され得る。いくつかの実施形態では、Ｉ／Ｏインタフェースユニット８０６は、Ｉ／Ｏ多重変換装置を含み、１つ以上の入力／出力信号を選択し得る。いくつかの実施形態では、Ｉ／Ｏ多重変換装置は、Ｉ／Ｏ用にＳＥＲＤＥＳ（シリアライズ−デシリアライズ）インタフェースを含み得る。
【００９３】
図９は、サーバＩ／Ｏサブシステム３１８のいくつかのコンポーネントを示す。サーバＩ／Ｏサブシステム３１８は、バスインタフェースユニット９０２、ネットワークインタフェースユニット９０４及び周辺ユニット９０６を含み得る。
【００９４】
バスインタフェースユニット９０２は、内部または外部のコンポーネントと通信するための１つ以上のバスインタフェースを含み得る。いくつかの実施形態では、バスインタフェースユニット９０２は、ネットワークコンピュータサブシステム１０４が使用されていない場合、例えば、ファブリックブリッジ２０２によってホストインタフェース１１４に第１のインタフェースをマッピングすることによってホストシステム１１２と接続する第１のインタフェースを含み得る。例えば、いくつかの実施形態では、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８の両方が機能しているときには、サーバコンピュータサブシステム１０８は、ネットワークコンピュータサブシステム１０４を介してホストシステム１１２と通信し得る。バスインタフェースユニット９０２は、第２のインタフェースも含み、例えばインタフェース３２０のようなネットワークコンピュータサブシステム１０４に接続し得る。いくつかの実施形態では、第１のインタフェース及び第２のインタフェースはＰＣＩｅインタフェースであり得る。例えば、バスインタフェースユニット９０２は、その他のＰＣＩｅポートに接続する１つ以上のＰＣＩｅポートを含み得る。バスインタフェースユニット９０２は、ルートコンプレックス（ＲＣ）ポート及びエンドポイントポート（ＥＰ）を含み得る。図３を再度参照すると、サーバコンピュータサブシステム３０８は、インタフェース３２０を使用して、サーバＩ／Ｏサブシステム３１８におけるＰＣＩｅポート及びネットワークＩ／Ｏサブシステム３１２におけるＰＣＩｅポートを介してネットワークコンピュータサブシステム１０４と通信し得る。同様に、サーバコンピュータサブシステム１０８は、インタフェース１１４を使用してサーバＩ／Ｏサブシステム３１８におけるＰＣＩｅポート及びホストシステム１１２におけるＰＣＩｅポートを介してホストシステム１１２と通信し得る。いくつかの実施形態では、バスインタフェースユニット９０２は、また、インタフェースを含み、ハードドライブ、光学式ドライブ等のような外部の大容量ストレージデバイスに接続し得る。例えば、インタフェースは、シリアルＡＴＡまたはＳＡＴＡとしても知られている、シリアルアドバンストテクノロジーアタッチメントに基づき得る。
【００９５】
ネットワークコンピュータサブシステム１０４が使用されない場合には、ネットワークインタフェースユニット９０４は、例えばファブリックブリッジ２０２によって第３のインタフェースをネットワークインタフェース２１８にマッピングすることによって、ネットワークに接続する第３のインタフェースを含み得る。例えば、ネットワークコンピュータサブシステム１０４及びサーバコンピュータサブシステム１０８の両方が機能しているときには、サーバコンピュータサブシステム１０８は、ネットワークコンピュータサブシステム１０４を介してネットワークと通信し得る。いくつかの実施形態では、ネットワークインタフェースユニット９０４は、イーサネットネットワークに接続するための１つ以上のイーサネットＭＡＣ（例えば、１０／２５／４０／５０Ｇｂ／秒）を含み得る。場合によっては、イーサネットＭＡＣは、ネットワークに接続するためのＰＨＹ（物理層）デバイスにインタフェース接続するためのイーサネットポートを提供し得る。図３を再度参照すると、１つ以上のイーサネットＭＡＣは、サーバコンピュータサブシステムコヒーレント相互接続ネットワーク３２０に接続し得る。
【００９６】
周辺ユニット９０６は、起動管理のための１つ以上の周辺ユニットを含み得る。例えば、周辺ユニット９０６は、汎用の入力／出力、低速起動周辺機器等を含み得る。
【００９７】
図１０は、共有リソースサブシステム２０４のいくつかのコンポーネントを示す。本技術の実施形態では、共有リソースサブシステム２０４は、プロセスの状態を含まないコンポーネントを含み得る。共有リソースサブシステム２０４は、メモリモジュール１００２、ランダム生成モジュール１００４、通信メールボックス１００６及びスクラッチパッドメモリモジュール１００８を含み得る。
【００９８】
メモリモジュール１００２は、フラッシュメモリのような不揮発性メモリストレージを含み得る。例えば、メモリモジュール１００２は、埋込み型マルチメディアコントローラ（ｅＭＭＣ）またはセキュアデジタル（ＳＤ）を含み、低レベルのフラッシュメモリ管理を提供し得る。いくつかの実施形態では、メモリモジュール１００２は、例えばＢＩＯＳ（ベーシックインプット／アウトプットシステム）、ブートローダ等のような制御コードを記憶するために使用され得る。例えば、メモリモジュール１００２は、両方のサブシステムによって共有され得るコードを含み得る。いくつかの実施形態では、メモリモジュール１００２は、電源を入れた際に様々な構成可能リソースのデフォルトの構成を記憶するために使用され得る。
【００９９】
ランダム生成モジュール１００４は、数または記号の不作為のシーケンスを生成するように構成され得る。例えば、乱数は、データの暗号化または任意のこのようなアプリケーションのような暗号化アプリケーションに使用され得る。いくつかの実施形態では、電源をオンにするかまたは再起動した後にそれぞれのコンピュータサブシステムの電源を入れる前に、ランダム生成モジュール１００４は、それぞれのコンピュータサブシステムの認証用の管理コンピュータサブシステム１１０によって使用され得る乱数またはシーケンスを生成するために使用され得る。
【０１００】
通信メールボックス１００６は、２つのサブシステムに関連する異なるプロセス間の通信を促進するために使用され得る。例えば、通信メールボックス１００６は、メッセージパッシング、同期、共有メモリ及びリモートプロシージャコール（ＲＰＣ）のような、様々な機能のためのデータの交換用にプロセス間通信モジュールとして使用され得る。
【０１０１】
スクラッチパッドメモリモジュール１００８は、両方のサブシステムによって使用され得るデータの一時記憶のために使用され得る。いくつかの実施形態では、スクラッチパッドメモリモジュール１００８は、例えば命令または中間値のような高速検索のための小規模のデータ量を記憶するために高速メモリ（例えば、２ＭＢ  ＳＲＡＭ）を含み得る。
【０１０２】
図１１は、本技術の１つ以上の態様によるフローチャート１１００を示す。いくつかまたは全てのプロセス１１００（または本明細書で記載される任意のその他のプロセスもしくはその変形及び／または組み合わせ）は、実行可能な命令で構成された１つ以上のコンピュータシステムの制御下で実行されてよく、１つ以上のプロセッサ上で、またはハードウェアもしくはそれらの組み合わせによって、全体的に実行するコード（例えば、ファームウェア、実行可能な命令、１つ以上のコンピュータプログラムまたは１つ以上のアプリケーション）として実装され得る。コードは、例えば、１つ以上のプロセッサによって実行可能な複数の命令を含み得るコンピュータプログラムの形態のコンピュータ可読記憶媒体に記憶され得る。コンピュータ可読記憶媒体は、非一時的であり得る。
【０１０３】
ステップ１１０２では、複数の処理コアが構成され得る。少なくとも１つの処理コアがネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、ネットワークコンピュータサブシステムはホストシステム及びサーバコンピュータサブシステム用の少なくともネットワークトラフィックを管理するように構成される。例えば、図２に戻って参照すると、再構成可能処理コア２０６における少なくとも１つの処理コアは、管理コンピュータサブシステム２０４によって構成され、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８の一部として機能し得る。管理コンピュータサブシステム１１０は、再構成可能処理コア２０６をデフォルトの構成で電源を入れるように構成され得る。本技術の実施形態では、管理コンピュータサブシステム１１０は、例えば作業負荷要求に基づいて、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間の再構成可能処理コア２０６を動的に再分割することが可能であり得る。図４を再度参照すると、一実施形態では、再構成可能処理コア２０６は、それぞれネットワークコンピュータサブシステム処理コア４０２及びサーバコンピュータサブシステム処理コア４０８のように、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間で分割される。図５を再度参照すると、別の実施形態では、ネットワークコンピュータサブシステム１０４は使用されていないため、再構成可能処理コア２０６はサーバコンピュータサブシステム１０８のためだけに構成されている。
【０１０４】
ステップ１１０４では、複数のメモリリソース（例えば、Ｌ１キャッシュ、Ｌ２キャッシュ、メモリコントローラ等）が構成されてよく、メモリリソースの少なくとも一部は、ネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように再構成されることが可能である。例えば、図２に戻って参照すると、再構成可能メモリリソース２０８は、管理コンピュータサブシステム２０４によって構成され、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８の一部として機能し得る。管理コンピュータサブシステム１１０は、再構成可能メモリリソース２０８をデフォルトの構成で電源を入れるように構成し得る。例えば、管理コンピュータサブシステム１１０は、それぞれのコンピュータサブシステム用にキャッシュ階層（例えば、Ｌ１、Ｌ２及びＬ３キャッシュ）及びメモリコントローラを構成し得る。本技術の実施形態では、管理コンピュータサブシステム１１０は、例えば作業負荷要求に基づいて、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間の再構成可能メモリリソース２０８を動的に再分割することが可能であり得る。図４を再度参照すると、一実施形態では、再構成可能メモリリソース２０８は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間で分割される。図５を再度参照すると、別の実施形態では、ネットワークコンピュータサブシステム１０４は使用されていないため、再構成可能メモリリソース２０８はサーバコンピュータサブシステム１０８のためだけに構成されている。
【０１０５】
ステップ１１０６では、複数のＩ／Ｏリソースは構成されてよく、Ｉ／Ｏリソースの少なくとも一部は、ネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように再構成されることが可能である。例えば、図２に戻って参照すると、再構成可能Ｉ／Ｏリソース２１０は、管理コンピュータサブシステム２０４によって構成され、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８の一部として機能し得る。管理コンピュータサブシステム１１０は、再構成可能Ｉ／Ｏリソース２１０をデフォルトの構成で電源を入れるように構成され得る。例えば、管理コンピュータサブシステム１１０は、それぞれのコンピュータサブシステムにバス及びネットワークインタフェースを構成し得る。本技術の実施形態では、管理コンピュータサブシステム１１０は、例えば作業負荷要求に基づいて、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間の再構成可能Ｉ／Ｏリソース２１０を動的に再分割し得る。例えば、図４に戻って参照すると、再構成可能Ｉ／Ｏリソース２１０は、ネットワークコンピュータサブシステム１０４とサーバコンピュータサブシステム１０８との間で分割される。例えば、サーバコンピュータサブシステム１０８は、インタフェース３２０を使用するネットワークＩ／Ｏサブシステム３１２のホスト及びネットワークインタフェースを介してホストシステム１１２及びネットワークと通信し得る。例えば、図５に戻って参照すると、ネットワークコンピュータサブシステム１０４が使用されていないため、再構成可能Ｉ／Ｏリソース２１０はサーバコンピュータサブシステム１０８のためだけに構成されている。例えば、サーバコンピュータサブシステム１０８は、サーバＩ／Ｏサブシステム３１８のホスト及びネットワークインタフェースを介してホストシステム１１２及びネットワークと通信し得る。
【０１０６】
ステップ１１０８では、構成された処理コア、メモリリソース及びＩ／Ｏリソースは、ファブリックブリッジを使用して、ネットワークコンピュータサブシステム用の第１の物理層ファブリック及び／またはサーバコンピュータサブシステム用の第２の物理層ファブリックにマッピングされることが可能であり、第１の物理層ファブリック及び第２の物理層ファブリックは、互いに物理的に分離されている。例えば、図２に戻って参照すると、ファブリックブリッジ２０２は、再構成可能処理コア２０６、再構成可能メモリリソース２０８及び再構成可能Ｉ／Ｏリソース２１０をネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８のいずれかにマッピングできる。例えば、いくつかの実施形態では、ファブリックブリッジ２０２は、ポートに取り付けられたそれぞれの構成されたリソースをネットワークコンピュータサブシステムキャッシュコヒーレントファブリック２１４のポートまたはサーバコンピュータサブシステムキャッシュコヒーレントファブリック２１８に物理的に接続できる。いくつかの実施様態においては、構成された処理コア、メモリリソース及びＩ／Ｏリソースは、ネットワークコンピュータサブシステム１０４またはサーバコンピュータサブシステム１０８にステアリングユニット３０６を使用してステアリングされることができる。しかしながら、その他の実施様態も可能である。
【０１０７】
開示された技術の実施形態は、ＳｏＣ上の異なるコンピュータサブシステム間で、様々なコンピュータリソースを細分化して動的に分割する柔軟性を提供することが可能である。それぞれのリソースを動的に再構成する能力によってリソースの効率的な使用をすることができ、それによって性能を損なうことなく作業負荷要求を満たすことができる。
【０１０８】
図１２は、少なくとも１つの例示的な実施形態による、１つ以上のネットワークを介して接続される１つ以上のサービスプロバイダコンピュータ及び／またはユーザデバイスを含む、本明細書に記載された機能及びシステムのための例示的な構造を示す。図１〜図１１に記載されたデバイスは、図１２に記載されたコンピューティングデバイスの１つ以上のコンポーネントを使用するか、または図１２に記載された１つ以上のコンピューティングデバイスを表し得る。構造１２００においては、１つ以上のユーザ１２０２は、ユーザコンピューティングデバイス１２０４（１）〜（Ｎ）（包括的にユーザデバイス１２０４）を利用して、アプリケーション１２０６（例えば、ウェブブラウザまたはモバイル機器用のアプリケーション）に１つ以上のネットワーク１２０８を介してアクセスし得る。いくつかの態様では、アプリケーション１２０６は、コンピューティングリソースサービスまたはサービスプロバイダによってホスト、管理及び／または提供され得る。１つ以上のサービスプロバイダコンピュータ１２１０は、ユーザ（複数可）１２０２が対話し得るユーザデバイス１２０４上で稼働するように構成されるネイティブアプリケーションを提供し得る。いくつかの実施例では、サービスプロバイダコンピュータ（複数可）１２１０は、以下に限定されないが、クライアントエンティティ、低レイテンシデータストレージ、永続データストレージ、データアクセス、管理、仮想化、クラウドベースのソフトウェアソリューション、電子コンテンツの性能管理等のようなコンピューティングリソースを提供し得る。サービスプロバイダコンピュータ（複数可）１２１０も、ウェブホスティング、コンピュータアプリケーション開発及び／または実施様態のプラットフォーム、ユーザ（複数可）１２０２に対する前述のもの等の組み合わせを提供するように動作可能であり得る。サービスプロバイダコンピュータ（複数可）１２１０は、いくつかの実施例では、１つ以上の第三者コンピュータ１２１２と通信し得る。
【０１０９】
いくつかの実施例では、ネットワーク（複数可）１２０８は、ケーブルネットワーク、インターネット、無線ネットワーク、セルラーネットワークならびにその他の私設及び／または公衆ネットワークのような、多くの異なる種類のネットワークのうちいずれか１つ、または組み合わせを含み得る。図示された実施例は、ネットワーク（複数可）１２０８を介してアプリケーション１２０６にアクセスするユーザ（複数可）１２０２を表す一方、記載された技術は、固定電話のユーザデバイス（複数可）１２０４、電話ボックスまたは任意のその他の手法を介してサービスプロバイダコンピュータ（複数可）１２１０と対話する場合に等しく適用し得る。非クライアント／サーバの配置（例えば、ローカルに記憶されるアプリケーション等）と同様に、記載された技術は、その他のクライアント／サーバの配置（例えば、セットトップボックス等）で適用し得ることにも注意する。
【０１１０】
簡潔に上述したように、アプリケーション１２０６は、ウェブコンテンツ（例えば、ウェブページ、音楽、ビデオ等）にアクセスするようなサービスプロバイダコンピュータ（複数可）１２１０とユーザ（複数可）１２０２が対話することを可能にし得る。サービスプロバイダコンピュータ（複数可）１２１０は、場合によりサーバのクラスタまたはサーバファームにおいて配置され、アプリケーション１２０６及び／またはクラウドベースのソフトウェアサービスをホストし得る。その他のサーバ構造もまた、ホストアプリケーション１２０６に使用され得る。アプリケーション１２０６は、多くのユーザ１２０２からの要求の処理をし、応答として、様々なアイテムウェブページを供給することが可能であり得る。アプリケーション１２０６は、ソーシャルネットワーキングサイト、オンライン小売業者、情報サイト、ブログサイト、検索エンジンサイト、ニュースやエンタテインメントサイト等を含むユーザの対話を支援する任意の種類のウェブサイトを提供可能である。上述のように、説明した技術は、ユーザデバイス（複数可）１４０４上で稼働するその他のアプリケーションのようなアプリケーション１２０６の外部で同様に実施されることが可能である。
【０１１１】
ユーザデバイス（複数可）は、以下に限定されないが、携帯電話、スマートフォン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、シンクライアントデバイス、タブレットＰＣ、電子ブック（ｅブック）リーダ等のような、任意の種類のコンピューティングデバイスであり得る。いくつかの実施例では、ユーザデバイス（複数可）１２０４は、ネットワーク（複数可）１２０８またはその他のネットワーク接続を介してサービスプロバイダコンピュータ（複数可）１２１０と通信し得る。さらに、ユーザデバイス（複数可）１２０４は、サービスプロバイダコンピュータ（複数可）１２１０（例えば、サービスプロバイダコンピュータ１２１０に統合されたコンソールデバイス）によって管理、制御され、または別の分散システムの一部であり得る。
【０１１２】
１つの例示的な構成においては、ユーザデバイス（複数可）１２０４は、少なくとも１つのメモリ１２１４及び１つ以上の処理ユニット（またはプロセッサ（複数可））１２１６を含み得る。プロセッサ（複数可）１２１６は、ハードウェア、コンピュータで実行可能な命令、ファームウェアまたはそれらの組み合わせにおいて適切であるように実装され得る。コンピュータで実行可能な命令またはプロセッサ（複数可）１２１６のファームウェアの実施様態は、記載された様々な機能を行うために好適な任意のプログラミング言語で書かれたコンピュータで実行可能または機械で実行可能な命令を含み得る。ユーザデバイス（複数可）１２０４もまた、ユーザデバイス（複数可）１２０４と関連する地理的位置情報を提供及び／または記録するための測位装置（例えば、衛星測位システム（ＧＰＳ）装置等）を含み得る。
【０１１３】
メモリ１２１４は、これらのプログラムの実行中に生成されるデータと同様に、プロセッサ（複数可）１２１６に搭載可能で、かつ実行可能なプログラム命令を記憶し得る。ユーザデバイス（複数可）１２０４の構成及び種類により、メモリ１２１４は、揮発性（ランダムアクセスメモリ（ＲＡＭ）及び／または不揮発性（読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ等）であり得る。ユーザデバイス（複数可）１２０４もまた、さらに取り外し可能なストレージ及び／または取り外しができないストレージを含み得るが、磁気ストレージ、光ディスク及び／またはテープストレージに限定されない。ディスクドライブ及びそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピューティングデバイスのためのその他のデータなどのような不揮発性のストレージを提供し得る。いくつかの実施様態においては、メモリ１２１４は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、またはＲＯＭのような多数の異なる種類のメモリを含み得る。
【０１１４】
メモリ１２１４の内容をより詳細に見てみると、メモリ１２１４は、ブラウザアプリケーション１２０６または専用のアプリケーション（例えば、スマートフォンのアプリケーション、タブレットのアプリケーション等）のような少なくともユーザが提供した入力要素または電子サービスのウェブページを含む、本明細書で開示された機能を実現するためのオペレーティングシステム及び１つ以上のアプリケーションプログラムまたはサービスを含み得る。ブラウザアプリケーション１２０６は、サービスプロバイダコンピュータ（複数可）１２１０と対話するウェブサイトまたはその他のインタフェースを受信、記憶及び／または表示するように構成され得る。さらに、メモリ１２１４は、アクセスの資格情報及び／または、その他のユーザ情報を記憶し得るが、ユーザＩＤ、パスワード及び／またはその他のユーザ情報に限定されない。いくつかの実施例では、ユーザ情報は、アカウントへのアクセス要求を認証するための情報を含み得るが、デバイスのＩＤ、クッキー、ＩＰアドレス、位置等に限定されない。加えて、ユーザ情報は、ユーザデバイス１２０４によって取得されたセキュリティの質問に対するユーザの回答や地理的位置を含み得る。
【０１１５】
いくつかの態様では、サービスプロバイダコンピュータ（複数可）１２１０は、以下に限定されないが、携帯電話、スマートフォン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、サーバコンピュータ、シンクライアントデバイス、タブレットＰＣ等のような、任意の種類のコンピューティングデバイスでもあり得る。さらに、いくつかの実施形態では、サービスプロバイダコンピュータ（複数可）１２１０は、ホスト型コンピュータ環境で実装される１つ以上の仮想マシンによって実施されることに留意すべきである。ホスト型コンピュータ環境は、１つ以上の迅速にプロビジョニングされ、開放されるコンピュータリソースを含んでよく、コンピュータリソースは、コンピューティング、ネットワーキング及び／またはストレージを含み得る。ホスト型コンピュータ環境もまた、クラウド型コンピュータ環境と称され得る。いくつかの実施例では、サービスプロバイダコンピュータ（複数可）１２１０は、ユーザデバイス（複数可）１２０４及び／またはその他サービスプロバイダとネットワーク（複数可）１２０８またはその他のネットワーク接続を介して通信し得る。サービスプロバイダコンピュータ（複数可）１２１０は、場合により、互いに関連しないサーバファームまたは個別のサーバとしてクラスタに配置される１つ以上のサーバを含み得る。これらのサーバは、統合、分散されたコンピュータ環境の一部として本明細書に記載されたキーワード分類及びレーティング機能サービスを実装するように構成され得る。
【０１１６】
１つの例示的な構成においては、サービスプロバイダコンピュータ（複数可）１２１０は、少なくとも１つのメモリ１２１８及び１つ以上の処理ユニット（またはプロセッサ（複数可））１２２０を含み得る。プロセッサ（複数可）１２２０は、ハードウェア、コンピュータで実行可能な命令、ファームウェアまたはそれらの組み合わせにおいて適切であるように実装され得る。コンピュータで実行可能な命令またはプロセッサ（複数可）１２２０のファームウェアの実施様態は、記載された様々な機能を行うために任意の好適なプログラミング言語で書かれたコンピュータで実行可能または機械で実行可能な命令を含み得る。
【０１１７】
場合によっては、ハードウェアプロセッサ（複数可）１２２０は、シングルコアプロセッサまたはマルチコアプロセッサであり得る。マルチコアプロセッサは、同一のプロセッサ内に多数の処理ユニットを含み得る。いくつかの実施形態では、マルチコアプロセッサは、マルチコア間のバスと第２または第３レベルのキャッシュのような特定のリソースを共有し得る。場合によっては、シングルまたはマルチコアプロセッサのそれぞれのコアもまた、多数の実行論理プロセッサ（またはスレッド）を含み得る。このようなコア（多数の論理プロセッサを支援する）においては、実行パイプライン及び低レベルキャッシュのいくつかのステージもまた共有され得る。
【０１１８】
メモリ１２１８は、これらのプログラムの実行中に生成されるデータと同様に、プロセッサ（複数可）１２２０に搭載可能で、かつ実行可能なプログラム命令を記憶し得る。サービスプロバイダコンピュータ（複数可）１２１０の構成及び種類により、メモリ１２１８は、揮発性（ＲＡＭのような）及び／または不揮発性（ＲＯＭ、フラッシュメモリ等）であり得る。サービスプロバイダコンピュータ（複数可）１２１０やサーバはまた、追加のストレージ１２２２を含み、取り外し可能なストレージ及び／または取り外しができないストレージを含み得る。追加のストレージ１２２２は、以下に限定されないが、磁気ストレージ、光ディスク及び／またはテープストレージを含み得る。ディスクドライブ及びそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピューティングデバイスのためのその他のデータのような不揮発性のストレージを提供し得る。いくつかの実施様態においては、メモリ１２１８は、ＳＲＡＭ、ＤＲＡＭ、ＲＯＭのような多数の異なる種類のメモリを含み得る。
【０１１９】
取り外し可能及び取り外しができないメモリ１２１８、追加のストレージ１２２２の両方は、全てコンピュータ可読記憶媒体の例である。例えば、コンピュータ可読記憶媒体は、コンピュータで読み取り可能な指示、データ構造、プログラムモジュールまたはその他のデータのような、情報の記憶のために任意の方法または技術で実装される揮発性もしくは不揮発性、取り外し可能もしくは取り外しができない媒体を含み得る。メモリ１２１８及び追加のストレージ１２２２は、全てコンピュータ記憶媒体の例である。サービスプロバイダコンピュータ（複数可）１２１０において存在し得るコンピュータ記憶媒体の追加の種類は、ＰＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤまたはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用可能であり、サービスプロバイダコンピュータ（複数可）１２１０によってアクセスされることが可能な任意のその他の媒体を含むがこれらに限定されない。上記の任意の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１２０】
あるいは、コンピュータ可読通信媒体は、コンピュータ可読命令、プログラムモジュールまたは搬送波またはその他の伝送のようなデータ信号内で伝送されるその他のデータを含み得る。しかしながら、本発明で使用する場合、コンピュータ可読記憶媒体は、コンピュータ可読通信媒体を含まない。
【０１２１】
サービスプロバイダコンピュータ（複数可）１２１０もまた、サービスプロバイダコンピュータ（複数可）１２１０に記憶されたデータベース、別のコンピューティングデバイスまたはサーバ、ユーザ端末及び／またはネットワーク（複数可）１２０８上のその他の装置と通信可能にする通信接続（複数可）１２２４を含有し得る。サービスプロバイダコンピュータ（複数可）１２１０もまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、ディスプレイ、スピーカ、プリンタ等のようなＩ／Ｏデバイス（複数可）１２２６を含み得る。
【０１２２】
メモリ１２１８は、所望により再構成可能リソースモジュール１２３２及び多数のコンピュータサブシステムモジュール１２４０を含む、本明細書で開示された機能を実現するためのオペレーティングシステム１２２８、１つ以上のデータストア１２３０及び／もしくは１つ以上のアプリケーションプログラムまたはサービスを含み得る。本明細書で記載されたモジュールは、ソフトウェアモジュール、ハードウェアモジュールまたはそれらの好適な組み合わせであり得る。モジュールがソフトウェアモジュールである場合には、モジュールは非一時的なコンピュータ可読媒体上で具現化され、本明細書に記載された任意のコンピュータシステムのプロセッサによって処理されることができる。記載された処理及び構造は、リアルタイムでまたは任意のユーザの対話の前の非同期モードのいずれかで実行されることが可能であるという点に留意すべきである。モジュールは図１２に示された手法で構成されてよく、及び／または本明細書で記載された機能は、別のモジュールとして存在する１つ以上のモジュールによって提供されることが可能であり、及び／または本明細書で記載されたモジュール機能は多数のモジュールにわたって分散されることが可能である。
【０１２３】
図１３は、様々な実施形態による、態様を実装するための例示的な環境１３００の態様を示す。分かるように、ウェブベースの環境が説明のために使用されているが、異なる環境が適切な場合に様々な実施形態を実施するために使用され得る。環境は電子クライアントデバイス１３０２を含み、適切なネットワーク１３０４を介して要求、メッセージまたは情報を送受信し、デバイスのユーザに情報を返送するために操作可能な任意の適切なデバイスを含むことができる。このようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、携帯用メッセージデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダ等が含まれる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意のその他のこのようなネットワークもしくはそれらの組み合わせを含む任意の適切なネットワークを含むことができる。このようなシステム用に使用されるコンポーネントは、選択されるネットワーク及び／または環境の種類に少なくとも部分的に依存し得る。このようなネットワークを介して通信するプロトコル及びコンポーネントは、よく知られており、詳細に本明細書には記載されないであろう。ネットワークを介する通信は、有線または無線及びそれらの組み合わせの接続によって可能になり得る。本実施例では、その他のネットワークには、類似の目的を提供する代替的なデバイスは当業者に明白であるとして使用され得るが、環境は要求を受信しそれに応答するコンテンツを提供するためのウェブサーバ１３０６を含むように、ネットワークはインターネットを含む。
【０１２４】
例示の環境は少なくとも１つのアプリケーションサーバ１３０８及びデータストア１３１０を含み得る。いくつかのアプリケーションサーバ、レイヤまたはその他の要素、工程またはコンポーネントがあり、これらは繋がれ、または別の方法で構成されてよく、データを適切なデータストアから取得するようなタスクを実行するために対話できると理解すべきである。本明細書で使用する場合、「データストア」という用語は、データの保存、アクセス及び検索が可能な任意のデバイスまたはデバイスの組み合わせを意味し、任意の標準、分散またはクラスタ環境におけるデータサーバ、データベース、データストレージ及びデータ記憶媒体の任意の組み合わせ及び数を含み得る。アプリケーションサーバは、クライアントデバイス用の１つ以上のアプリケーションの態様を実行するのに必要なデータストアと統合する任意の適切なハードウェア及びソフトウェアを含み、アプリケーション用のデータアクセス及びビジネス論理の大部分を処理する。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィック、オーディオ及び／またはビデオのようなコンテンツを生成することができ、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張可能なマークアップ言語（「ＸＭＬ」）または本実施例の別の適切に構造化された言語の形態でウェブサーバによってユーザに提供され得る。クライアントデバイス１３０２とアプリケーションサーバ１３０８間のコンテンツの配信と同様に、全ての要求及び応答の処理は、ウェブサーバによって処理されることが可能である。本明細書に記載された構造化されたコードが、本明細書内に記載される任意の適切なデバイスまたはホストマシン上で実行されることができるように、ウェブ及びアプリケーションのサーバは必要とされず、単に例示的なコンポーネントであると理解すべきである。
【０１２５】
データストア１３１０は、特定の様態に関連するデータを記憶するためのいくつかの別のデータテーブル、データベースまたはその他のデータ記憶機構及び媒体を含むことができる。例えば、図示されたデータストアは、製造データ１３１２及びユーザ情報１３１６を記憶するための機構を含み、製造側のコンテンツを提供するために使用され得る。データストアもまた、ログデータ１３１４を記憶するための機構を含むために示され、通知、分析またはその他のこのような目的に使用されることが可能である。ページの画像情報用や正しい情報にアクセスするためのデータストアに記憶される必要がある多くのその他の態様であり、上に挙げた機構のいずれかに適切なものとして、またはデータストア１３１０の付加的な機構に記憶されることが可能であると理解すべきである。それに関連する論理を通して、データストア１３１０は、アプリケーションサーバ１３０８から命令を受信し、それに応答してデータを取得、更新または別の方法で処理する動作が可能である。一実施例では、ユーザは、特定の種類の項目に対する検索要求を提出する場合がある。この場合、データストアはユーザのＩＤを照合するためにユーザ情報にアクセスする場合があり、カタログの詳細情報にアクセスしその種類の項目に関する情報を取得できる。したがって、ユーザがユーザデバイス１３０２上のブラウザを介して閲覧できるウェブページに列挙している結果におけるような情報はユーザに戻されることができる。対象とする特定の項目に対する情報は、ブラウザの専用のページまたはウィンドウで閲覧できる。
【０１２６】
それぞれのサーバは、通常、全体的な管理及び当該サーバの動作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常、サーバのプロセッサによって実行されるとサーバに意図された機能を実施することを許可する命令を記憶するコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリ等）を含むであろう。オペレーティングシステムに好適な実施様態及びサーバの一般的な機能は公知であるか、商業的に入手可能である。また、特に本明細書の本開示の観点における当業者によって容易に実施される。
【０１２７】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を使用して通信回線を介し相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する分散コンピューティング環境である。しかしながら、このようなシステムは図１３に示されているよりも少ない数のコンポーネントまたはより多数のコンポーネントを有するシステムにおいて等しく良好に動作し得ることを当業者は認識するであろう。したがって、図１３におけるシステム１３００の記載は、本質を説明するものとして解釈すべきであり、本開示の範囲を限定するものと解釈すべきでない。
【０１２８】
様々な実施形態が多種多様な操作環境においてさらに実施されてよく、場合によっては、１つ以上のユーザコンピュータ、計算装置またはいくつかのアプリケーションのいずれかを操作するために使用され得る処理装置をさらに含み得る。ユーザまたはクライアントデバイスは、移動ソフトウェアを動かし、いくつかのネットワーキングとメッセージプロトコルを支援するセルラーデバイス、無線デバイス及び携帯型デバイスと同様に、標準的なオペレーティングシステムを稼働するデスクトップまたはラップトップコンピュータのような、いくつかの汎用のパーソナルコンピュータうちいずれかを含むことができる。このようなシステムは、市販のオペレーティングシステムと、開発とデータベース管理などの目的のその他の既知のアプリケーションのうちいずれかを作動するいくつかのワークステーションも含むことができる。これらのデバイスはまた、ダミー端子、シンクライアント、ゲーミングシステム及びネットワークを介して通信可能なその他のデバイスのような、その他の電子デバイスを含み得る。
【０１２９】
たいていの実施形態は、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）、オープンシステム相互接続（「ＯＳＩ」）、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ）、ネットワークファイルシステム（「ＮＦＳ」）、共有インターネットファイルシステム（「ＣＩＦＳ」）及びアップルトークのような種々な商業的に入手可能なプロトコルのいずれかを使用して通信を支援するために当業者によく知られている少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想私設ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク及びこれらの任意の組み合わせであり得る。
【０１３０】
ウェブサーバを利用する実施形態においては、ウェブサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、コモンゲートウェイインタフェース（「ＣＧＩ」）サーバ、データサーバ、Ｊａｖａサーバ及び業務アプリケーションサーバを含む、様々なサーバのいずれか、または中間層のアプリケーションを作動し得る。サーバ（複数可）は、また、プログラムまたはスクリプトを、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃もしくはＣ＋＋またはＰｅｒｌ、Ｐｙｔｈｏｎ、ＴＣＬのような任意のスクリプト言語またはそれらの組み合わせと同様に、任意のプログラミング言語で書かれた１つ以上のスクリプトまたはプログラムとして実行され得る１つ以上のウェブアプリケーションの実行のようなユーザデバイスからの要求に対して、実施可能であり得る。サーバ（複数可）は、また、オラクル（登録商標）、マイクロソフト（登録商標）、サイベース（登録商標）及びＩＢＭ（登録商標）から市販されているデータベースサーバをもまた含み得るが、これらに限定されない。
【０１３１】
環境は様々なデータストアと、上述のようにその他のメモリと記憶媒体を含むことができる。これらは、１つ以上のコンピュータのローカルにある（及び／または存在する）またはネットワークを経由するコンピュータのいずれかまたはその全てから離れている記憶媒体のような、様々な位置であることが可能である。特定の一式の実施形態においては、情報は、当業者によく知られたストレージエリアネットワーク（「ＳＡＮ」）内に存在し得る。同様に、コンピュータ、サーバまたはその他のネットワークデバイスに属する機能を実行するための任意の必要なファイルは、ローカル及び／またはリモートに適切に記憶され得る。システムがコンピュータ化されたデバイスを含む場合には、それぞれのそのようなデバイスは、バスを介して電気的に接続され得るハードウェア要素を含んでよく、要素は、例えば、少なくとも１つの中央演算処理装置（ＣＰＵ）、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチスクリーンまたはキーパッド）、及び少なくとも１つの出力装置（例えば表示装置、プリンタまたはスピーカ）を含み得る。このようなシステムは、また、ディスクドライブのような１つ以上の記憶装置、光ストレージ装置、ランダムアクセスメモリ（「ＲＡＭ」）または読み取り専用メモリ（「ＲＯＭ」）のような、ソリッドステートストレージデバイスを含み得る。
【０１３２】
このような装置は、また、コンピュータで読み取り可能な記憶媒体リーダ、通信デバイス（例えば、モデム、ネットワークカード（有線または無線）、赤外線通信デバイス等）及び上記のような作業用メモリを含み得る。コンピュータで読み取り可能な記憶媒体読取装置は、一時的及び／またはより恒久的にコンピュータで読み取り可能な情報を含み、記憶し、送信し、検索するための記憶媒体と同様に、リモート、ローカル、固定及び／または取り外し可能なストレージデバイスを代表するコンピュータで読み取り可能な記憶媒体に接続され、または受信するよう構成され得る。このシステム及び様々な装置もまた、典型的にはいくつかのソフトウェアアプリケーション、モジュール、サービスまたは、オペレーティングシステム及びアプリケーションクライアントやウェブブラウザのようなアプリケーションプログラムを含む、少なくとも１つの作動ストレージ内に配置されたその他の要素を含むだろう。代替的な実施形態は、その上述から多数の変動を有し得るであると理解されよう。例えば、カスタマイズされたハードウェアも使用され、及び／または特定の要素は、（アプレットのような携帯可能なソフトウェアを含む）ハードウェア、ソフトウェアまたはその両方において実施され得る。さらに、ネットワーク入力／出力装置のような、その他の計算装置が採用され得る。
【０１３３】
コード、コードの一部を含むための記憶媒体及びコンピュータで読み取り可能な媒体は、この技術にて既知または使用される記憶媒体及び通信媒体を含む、任意の適切な媒体を含むことが可能である。例えば、以下に限定されないが、ＲＡＭ、ＲＯＭ、電気的に消去可能なプログラマブル読み取り専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスク読み取り専用メモリ（「ＣＤ−ＲＯＭ」）、デジタル汎用ディスク（ＤＶＤ）もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用されることが可能であり、システムデバイスによってアクセスされることが可能な任意のその他の媒体を含む、揮発性及び非揮発性、コンピュータで読み取り可能な命令のような情報の記憶及び／または伝送するための任意の方法または技術で実装される取り外し可能及び取り外し不可能な媒体、データ構造、プログラムモジュールまたはその他のデータなどである。本明細書で提供された開示及び教示に基づいて、当業者は、様々な実施形態を実行するための適切なその他のやり方及び／または方法を理解するであろう。
【０１３４】
したがって、明細書及び図面は、制限を意味するというよりも、むしろ例証として考慮されるべきである。しかしながら、様々な修正や変更が、添付の特許請求の範囲に記述されているように、より広い趣旨と本開示の範囲から逸脱することなく成され得るということは、明白であろう。
【０１３５】
本開示の実施形態は、以下の条項を考慮して記載され得る。
【０１３６】
条項１. ホストシステムと通信するように構成されたシステムオンチップ（ＳｏＣ）であって、
前記ＳｏＣは複数の処理コアを備え、前記複数の処理コアのうち少なくとも１つが前記ＳｏＣのネットワークコンピュータサブシステムの一部としてまたは前記ＳｏＣのサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムは前記ホストシステム及び前記サーバサブシステムのために管理ネットワークトラフィックが構成され、前記ネットワークコンピュータサブシステムはＩ／Ｏサブシステムを介して前記ホストシステム及び前記サーバコンピュータサブシステムと通信するように構成され、
前記ＳｏＣは再構成可能メモリリソースを備え、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、
前記ＳｏＣは、前記ネットワークコンピュータサブシステムの一部として機能するように構成された第１の物理層ファブリックと、前記サーバコンピュータサブシステムの一部として機能するように構成された第２の物理層ファブリックを備え、前記第１の物理層ファブリック及び前記第２の物理層ファブリックは、互いに物理的に分離され、
前記ＳｏＣは、前記サーバコンピュータサブシステムと前記ネットワークコンピュータサブシステム用に前記処理コア、メモリリソース及び前記Ｉ／Ｏリソースを少なくとも構成するための管理コンピュータサブシステムと、
前記構成された処理コア、メモリリソース及び前記Ｉ／Ｏリソースを前記第１の物理層ファブリックまたは前記第２の物理層ファブリックにマッピングするファブリックブリッジと、を備える前記ＳｏＣ。
【０１３７】
条項２. 再構成可能最終レベルキャッシュ（ＬＬＣ）リソースをさらに備え、前記最終レベルキャッシュリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項１に記載のＳｏＣ。
【０１３８】
条項３. 前記最終レベルキャッシュリソースの前記一部が前記管理コンピュータサブシステムによって構成され、前記ファブリックブリッジによって前記第１の物理層ファブリックまたは前記第２の物理層ファブリックにマッピングされる、条項２に記載のＳｏＣ。
【０１３９】
条項４. 再構成可能Ｉ／Ｏリソースをさらに備え、前記Ｉ／Ｏリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能である、先行条項のいずれか１項に記載のＳｏＣ。
【０１４０】
条項５. ホストシステムと通信するように構成されたシステムオンチップ（ＳｏＣ）であって、
複数の処理コアを備え、それぞれの処理コアは前記ＳｏＣのネットワークコンピュータサブシステムの一部としてまたは前記ＳｏＣのサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムは前記ホストシステム及び前記サーバサブシステム用の管理ネットワークトラフィックが構成され、
前記サーバコンピュータサブシステム及び前記ネットワークコンピュータサブシステム用のリソースを管理するための管理コンピュータサブシステムを備える前記ＳｏＣ。
【０１４１】
条項６. 再構成可能メモリリソースをさらに備え、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項５に記載のＳｏＣ。
【０１４２】
条項７. 再構成可能Ｉ／Ｏリソースをさらに備え、前記Ｉ／Ｏリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項５または６に記載のＳｏＣ。
【０１４３】
条項８. 再構成可能最終レベルキャッシュ（ＬＬＣ）リソースをさらに備え、前記最終レベルキャッシュリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項５から７のいずれか１項に記載のＳｏＣ。
【０１４４】
条項９. 前記管理コンピュータサブシステムは、前記サーバコンピュータサブシステムと前記ネットワークコンピュータサブシステム用に前記処理コア、メモリリソース、Ｉ／Ｏリソース及び前記最終レベルキャッシュリソースを構成するように構成された、条項８に記載のＳｏＣ。
【０１４５】
条項１０. 前記構成された処理コア、メモリリソース及びＩ／Ｏリソース及び前記最終レベルキャッシュリソースを前記ネットワークコンピュータサブシステム用の第１の物理層ファブリックまたは前記サーバコンピュータサブシステム用の第２の物理層ファブリックにマッピングするためのファブリックブリッジをさらに備え、前記第１の物理層ファブリック及び前記第２の物理層ファブリックは、互いに物理的に分離される、条項９に記載のＳｏＣ。
【０１４６】
条項１１. 前記処理コア、メモリリソース、Ｉ／Ｏリソース及び前記最終レベルキャッシュリソースは、前記サーバコンピュータサブシステムにマッピングされ、サーバコンピュータサブシステムキャッシュコヒーレントファブリックに接続される、条項１０に記載のＳｏＣ。
【０１４７】
条項１２. 前記処理コア、メモリリソース、Ｉ／Ｏリソース及び前記最終レベルキャッシュリソースは、前記ネットワークコンピュータサブシステムにマッピングされ、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリックに接続される、条項１０または１１に記載のＳｏＣ。
【０１４８】
条項１３. 前記再構成可能メモリリソースは１つ以上のメモリコントローラを備える、条項５から１２のいずれか１項に記載のＳｏＣ。
【０１４９】
条項１４. 前記ＳｏＣは前記メモリコントローラの少なくとも一部を前記ネットワークコンピュータサブシステムまたは前記サーバコンピュータサブシステムにステアリングするためのステアリングユニットをさらに備える、条項１３に記載のＳｏＣ。
【０１５０】
条項１５.前記Ｉ／Ｏリソースは、前記ホストシステムと通信するための第１のインタフェース、前記サーバコンピュータサブシステムと通信するための第２のインタフェース、前記ネットワークコンピュータサブシステムと通信するための第３のインタフェース、前記ネットワークと通信するための第４のインタフェースを含む、条項５から７のいずれか１項に記載のＳｏＣ。
【０１５１】
条項１６. 前記サーバコンピュータサブシステム用の１つ以上の専用の処理コア及びメモリリソースと、前記ネットワークコンピュータサブシステム用の１つ以上の専用の処理コア及びメモリリソースと、をさらに備える、条項５から１５のいずれか１項に記載のＳｏＣ。
【０１５２】
条項１７. システムオンチップ（ＳｏＣ）を構成するための方法であって、前記方法は、
複数の処理コアを構成することを含み、少なくとも１つの処理コアが前記ＳｏＣのサーバコンピュータサブシステムの一部としてまたは前記ＳｏＣのネットワークコンピュータサブシステムの一部として機能するように再構成が可能であり、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムはホストシステム及び前記サーバコンピュータサブシステム用のネットワークトラフィックを管理するように構成され、
前記方法は複数のメモリリソースを備えることを含み、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成が可能であり、
前記方法は複数のＩ／Ｏリソースを備えることを含み、前記Ｉ／Ｏリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成が可能であり、
前記構成された処理コア、メモリリソース及び前記Ｉ／Ｏリソースは、ファブリックブリッジを使用して、前記ネットワークコンピュータサブシステム用の第１の物理層ファブリックまたは前記サーバコンピュータサブシステム用の第２の物理層ファブリックにマッピングされ、前記第１の物理層ファブリック及び前記第２の物理層ファブリックは、互いに物理的に分離される、前記方法。
【０１５３】
条項１８. 前記メモリリソースは１つ以上のメモリコントローラを含み、前記方法はさらに、前記ネットワークコンピュータサブシステムの一部として、または前記サーバコンピュータサブシステムの一部として機能する前記１つ以上のメモリコントローラを設定することを含む、条項１７に記載の方法。
【０１５４】
条項１９. 前記サーバコンピュータサブシステム用の１つ以上の専用の処理コア及びメモリリソースを割り当てることと、
前記ネットワークコンピュータサブシステム用の１つ以上の専用の処理コア及びメモリリソースを割り当てることと、をさらに含む、条項１７または１８に記載の方法。
【０１５５】
条項２０. 前記複数の処理コアを構成することと、前記複数のメモリリソースを構成することと、前記複数のＩ／Ｏリソースを構成することは、前記ＳｏＣの管理コンピュータサブシステムによって動的に実行される、条項１７から１９のいずれか１項に記載の方法。
【０１５６】
その他の変形は本開示の趣旨の範囲内である。したがって、開示された技術は様々な修正及び代替的構造であることが可能であるが、それらの特定の図示された実施形態は、図面に示され、詳細に上述されている。ただし、本開示を特定の開示される形態（複数可）に限定することを何ら意図するものではなく、逆に、添付の特許請求の範囲において定義される開示の趣旨ならびに範囲に包含される全ての修正、代替的構造及び等価物を網羅することを意図するものであることが理解されるべきである。
【０１５７】
用語「ａ」、「ａｎ」、「ｔｈｅ」の使用及び本開示の特定の実施形態を記載する関係において類似の参照（特に以下の特許請求の範囲との関係において）は、特に本明細書において指示がない限り、または文脈によって明らかに矛盾しない限り、単数及び複数の両方を含むと解釈される。「ｃｏｍｐｒｉｓｉｎｇ」、「ｈａｖｉｎｇ」、「ｉｎｃｌｕｄｉｎｇ」、及び「ｃｏｎｔａｉｎｉｎｇ」の用語は、別段の記載がない限り、オープンエンドの用語として解釈されるべきである（すなわち「ｉｎｃｌｕｄｉｎｇ，  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ，」を意味する）。「ｃｏｎｎｅｃｔｅｄ」という用語は、介在するものが何かある場合であっても部分的または全体的に含まれ、取り付けられ、または一緒に接合されているものと解釈すべきである。本明細書における値の範囲の列挙は、単に、範囲内に入る、それぞれ分離した値を個別に言及する簡潔な方法として機能することを目的とし、特に指示がない限り、各個々の値はあたかも個別に本明細書で引用されているかのように明細書中に組み込まれる。本明細書で記載された全ての方法は、特に指示がない限り、または文脈によって明らかに矛盾しない限り、任意の好適な順序で実施されることができる。本明細書にて提供された、任意の例、及び全ての例の使用、または例示的な用語の使用（例えば「ｓｕｃｈ  ａｓ」）は、単に、本開示の実施形態を明らかにすることを目的とし、特に指示がない限り、本発明の範囲について制限を課するものではない。明細書内の文言は、本開示の実行に不可欠な、任意の請求されていない要素を示すものと解釈すべきではない。
【０１５８】
特に断りのない限り、「Ｘ、ＹまたはＺのうち少なくとも１つ」等の離接語は、それらの項目、用語等に一般的に存在するために使用されるような文脈内で解釈されることが意図され、Ｘ、Ｙ、Ｚ、または任意のそれらの組み合わせ（例えば、Ｘ、Ｙ及び／またはＺ）のいずれかであり得る。したがって、このような離接語は一般的に、特定の実施形態は、Ｘのうち少なくとも１つ、Ｙのうち少なくとも１つ、またはＺのうち少なくとも１つがそれぞれ存在する必要があることを意図されておらず、また暗示すべきではない。
【０１５９】
本開示の好ましい実施形態は、本明細書で記載されており、本開示を実施するために発明者に既知の最良の様態を含む。それらの好ましい実施形態の変動は、前述の記載を読むことで当業者には明白になる可能性がある。発明者は、当業者がこのような変形を適切に採用し、発明者は本明細書で具体的に記載されたもの以外でも実行し得ると考えられる。したがって、本開示は、適用される法律によって認められたここに添付された特許請求の範囲に引用された本主題の全ての変動及び等価物を含む。さらに、その全ての可能な変動における上述した要素の任意の組み合わせは、特に指示がない限り、または文脈によって明らかに矛盾しない限り、本開示によって包含される。
【図１】
0006426846.tif 000002
【図２】
0006426846.tif 000003
【図３】
0006426846.tif 000004
【図４】
0006426846.tif 000005
【図５】
0006426846.tif 000006
【図６】
0006426846.tif 000007
【図７】
0006426846.tif 000008
【図８】
0006426846.tif 000009
【図９】
0006426846.tif 000010
【図１０】
0006426846.tif 000011
【図１１】
0006426846.tif 000012
【図１２】
0006426846.tif 000013
【図１３】
0006426846.tif 000014