特許第6445710号(P6445710)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6445710
(24)【登録日】2018年12月7日
(45)【発行日】2018年12月26日
(54)【発明の名称】マルチモード・システム・オン・チップ
(51)【国際特許分類】
   G06F 15/78 20060101AFI20181217BHJP
   G06F 9/44 20180101ALI20181217BHJP
【FI】
   G06F15/78 560
   G06F9/44
   G06F15/78 530
【請求項の数】13
【全頁数】45
(21)【出願番号】特願2017-542058(P2017-542058)
(86)(22)【出願日】2016年2月12日
(65)【公表番号】特表2018-505494(P2018-505494A)
(43)【公表日】2018年2月22日
(86)【国際出願番号】US2016017832
(87)【国際公開番号】WO2016190927
(87)【国際公開日】20161201
【審査請求日】2017年8月10日
(31)【優先権主張番号】14/622,661
(32)【優先日】2015年2月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100106541
【弁理士】
【氏名又は名称】伊藤 信和
(72)【発明者】
【氏名】ボーランド デイビッド ジェームス
(72)【発明者】
【氏名】デイビス マーク ブラッドリー
【審査官】 漆原 孝治
(56)【参考文献】
【文献】 特開2009−134576(JP,A)
【文献】 特開2004−040188(JP,A)
【文献】 特開2002−132397(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/78
G06F 9/44
(57)【特許請求の範囲】
【請求項1】
システム・オン・チップ(SoC)であって、
複数のモードのうちの1つで動作させるように構成され、
第一モードで、前記SoCは、ネットワーク・トラフィックを管理するためにネットワーク計算サブシステムを動作させるように構成され、
第二モードで、前記SoCは、計算サービスを提供するためにサーバ計算サブシステムを動作させるように構成され、
第三モードで、前記SoCは、前記ネットワーク計算サブシステム、及び前記サーバ計算サブシステムを同時に動作させるように構成される、
前記第一モードで、前記SoCは、第二ネットワーク計算サブシステムとして前記サーバ計算サブシステムを別の目的のために再利用するようにさらに構成される、
SoC
【請求項2】
前記第一モードで、前記SoCは、ホスト・システム内のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・デバイス上で前記ネットワーク計算サブシステムを動作させるように構成される、請求項1のSoC
【請求項3】
前記第二モードで、前記SoCは、ホスト・システム内のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・デバイス上で前記サーバ計算サブシステムを動作させるように構成される、請求項1又は2に記載のSoC
【請求項4】
前記第二モードで、前記SoCは、ホスト・システムで汎用プロセッサとして動作させるように構成される、請求項1〜3のいずれかに記載のSoC
【請求項5】
前記第一モードで、前記SoCは、前記サーバ計算サブシステムを無効にし、前記サーバ計算サブシステムと関連する処理及びメモリ・リソースを再構成し、前記ネットワーク計算サブシステムについてのリソースとして動作させるようにさらに構成される、請求項1〜4のいずれかに記載のSoC
【請求項6】
前記第二モードで、前記SoCは、前記ネットワーク計算サブシステムを無効にし、前記ネットワーク計算サブシステムと関連する処理及びメモリ・リソースを再構成し、前記サーバ計算サブシステムについてのリソースとして動作させるようにさらに構成される、請求項1〜5のいずれかに記載のSoC
【請求項7】
前記SoCは、前記第二モードで第二サーバ計算サブシステムとして前記ネットワーク計算サブシステムを別の目的のために再利用するようにさらに構成される、請求項1〜6のいずれかに記載のSoC
【請求項8】
前記SoCは、再構成可能な処理及びメモリ・リソースを備え、前記SoCは、前記第一モードで前記ネットワーク計算サブシステムへ前記再構成可能な処理及びメモリ・リソースのうちの少なくとも部分を割り当てるようにさらに構成される、請求項1〜7のいずれかに記載のSoC
【請求項9】
前記SoCは、再構成可能な処理及びメモリ・リソースを備え、前記SoCは、前記第二モードで、前記サーバ計算サブシステムへ前記再構成可能な処理及びメモリ・リソースのうちの少なくとも部分を割り当てるようにさらに構成される、請求項1〜8のいずれかに記載のSoC
【請求項10】
前記第三モードで、前記SoCは、ホスト・システムとして前記サーバ計算サブシステムを動作させるように、及び前記ネットワーク計算サブシステムを動作させ、前記ホスト・システムについてのネットワーク・トラフィックを管理するようにさらに構成される、請求項1〜9のいずれかに記載のSoC
【請求項11】
前記SoCは、管理計算サブシステムを備え、前記管理計算サブシステムは、前記複数のモードのうちの1つで、前記SoCを設定するように構成される、請求項1〜10のいずれかに記載のSoC
【請求項12】
システム・オン・チップ(SoC)・システムであって、
複数のSoCを備え、前記複数のSoCは、第一SoC、及び第二SoCを備え、前記第二SoCは、前記第一SoCへ通信可能に結合され、前記第一SoCは、複数のモードのうちの1つで動作させるように構成され、
第一モードで、前記第一SoCは、第一ネットワーク計算サブシステムを動作させるように構成され、
第二モードで、前記第一SoCは、第一サーバ計算サブシステムを動作させるように構成され、
第三モードで、前記第一SoCは、前記第一ネットワーク計算サブシステム、及び前記第一サーバ計算サブシステムを同時に動作させるように構成され、
前記第一SoCは、前記第一モードで、第三ネットワーク計算サブシステムとして別の目的のために再利用される前記第一サーバ計算サブシステムで構成される、
SoCシステム
【請求項13】
前記第二SoCは、また前記複数のモードのうちの1つで動作させるように構成され、
前記第一モードで、前記第二SoCは、第二ネットワーク計算サブシステムを動作させるように構成され、
前記第二モードで、前記第二SoCは、第二サーバ計算サブシステムを動作させるように構成され、
前記第三モードで、前記第二SoCは、前記第二ネットワーク計算サブシステム、及び前記第二サーバ計算サブシステムを同時に動作させるように構成される、
請求項12のシステム
【発明の詳細な説明】
【背景技術】
【0001】
相互参照
本出願は、国際出願であり、2015年2月13日に出願され、「MULTI−MODE SYSTEM ON A CHIP」と題し、その本開示がその全体を参照により本明細書に援用される、米国特許出願第14/622,661号へ優先権を主張する。
【0002】
多くの組織及び企業は、複数の通信ネットワーク経由でコンピューティング・サービスを提供する。たとえば、コンピューティング・サービスは、インターネット経由で異なるクライアントへ提供されることが可能であるウェブ・ストレージ、または仮想サーバなどの、ウェブ・サービスを有することができる。
【0003】
一般的に言えば、システムは、いくつかの異なる機能を実行する1つ以上のサブシステムを含むことができる。しかしながら、システムを作成すると、各サブシステムは、特定の機能性を実行することへ制限される可能性がある。いくつかの実施例で、追加の機能性は、より多くのシリコンを浪費して提供される可能性がある。したがって、ほとんどの場合に、クライアントは、そのサブシステムについて所定の構成に基づき各サブシステムにより提供される特定の機能性を使用することに限定される可能性がある。
【0004】
さまざまな実施形態は、本開示に従い、図面を参照して記述される。
【図面の簡単な説明】
【0005】
図1】開示された技術のいくつかの実施形態により、システムのブロック図を図示する。
図2】本技術の特定の実施形態により、システム・オン・チップ(SoC)の詳細なブロック図を図示する。
図3A】開示された技術の1つの実施形態により、第一モードでSoC構成を図示する。
図3B】開示された技術の1つの実施形態により、第二モードでSoC構成を図示する。
図3C】開示された技術の1つの実施形態により、第三モードでSoC構成を図示する。
図4A】開示された技術の1つの実施形態により、第一モードで、ネットワーク計算サブシステムとして別の目的のために再利用されたサーバ計算サブシステムを含むSoC構成を図示する。
図4B】開示された技術の1つの実施形態により、第二モードで、サーバ計算サブシステムとして別の目的のために再利用されたネットワーク計算サブシステムを含むSoC構成を図示する。
図5】開示された技術の1つの実施形態により、リソースのフレキシブル・プールを含むSoCのブロック図を図示する。
図6A】開示された技術のいくつかの実施形態により、フレキシブル・リソースを含む第一モードで動作させるように構成されるSoCを図示する。
図6B】開示された技術のいくつかの実施形態により、第二モードで動作させるように構成されるSoCを図示する。
図7A】本技術の1つの実施形態により、第一モードで動作させるように構成される第二SoCと通信する第二モードで動作させるように構成される第一SoCを図示する。
図7B】本技術の1つの実施形態により、第二モードで動作させるように構成される第二SoCと通信する第二モードで動作させるように構成される第一SoCを図示する。
図7C】本技術の1つの実施形態により、第三モードで動作させるように構成される第二SoCと通信する第二モードで動作させるように構成される第一SoCを図示する。
図8】本技術の1つの実施形態により、複数のSoCを含むシステムを図示する。
図9】本技術の特定の実施形態により、管理計算サブシステムのブロック図を図示する。
図10】本技術の特定の実施形態により、ネットワークI/Oサブシステムのブロック図を図示する。
図11】本技術の特定の実施形態により、サーバI/Oサブシステムのブロック図を図示する。
図12】本技術の特定の実施形態により、共有リソース・サブシステムのブロック図を図示する。
図13】少なくとも1つの例示的な実施形態により、1つ以上のネットワークを介して接続される1つ以上のサービス・プロバイダ・コンピュータ、及び/またはユーザ・デバイスを含む、本明細書に記述される特徴及びシステムについての例示的なアーキテクチャを図示する。
図14】さまざまな実施形態を実施することが可能である環境を図示する。
【発明を実施するための形態】
【0006】
以下の説明で、さまざまな実施形態を記述する。説明目的のために、本実施形態の完全な理解を提供するために、具体的な構成及び詳細を記載する。しかしながら、これらの具体的な詳細なしで実施形態を実施することができることも当業者に明らかであろう。さらに、記述されている実施形態を不明瞭にしないために、既知の特徴を省略する、または簡略化することができる。
【0007】
一般に、コンピューティング・システムは、いくつかの異なる機能を実行する1つ以上の計算サブシステムを含むことができる。ほとんどの場合に、コンピューティング・システムを作成すると、各計算サブシステムは、特定の機能性を実行することに限定される可能性がある。いくつかの実施例で、追加の機能性は、より多くのシリコンを浪費して提供される可能性がある。たとえば、コンピューティング・システムは、追加の機能性を提供するために追加のチップを必要とする可能性がある。したがって、ほとんどの場合に、クライアントは、そのサブシステムについての所定の構成に基づき各サブシステムにより提供される具体的な機能性を使用することに制限される可能性がある。
【0008】
本技術の実施形態は、システム・オン・チップ(SoC)を動作させるためにさまざまな構成及びモードを提供することが可能である。たとえば、SoCは、ホスト・システム(たとえば、x86サーバ)へ通信可能に結合され、ネットワーク・トラフィック監視、ネットワーク・トラフィック・シェーピング、コンピューティングなどのような、さまざまなサービスを提供することができる。特定の実施形態により、SoCは、ホスト・システムについてのネットワーク・トラフィックを少なくとも管理するためのネットワーク計算サブシステム、及び計算サービスを提供するためのサーバ計算サブシステムを含むことができる。開示された技術のいくつかの実施形態で、SoCは、ネットワーキング・サービスのみを提供する(たとえば、サーバ計算サブシステムが構成解除される、または非アクティブであるときに)第一モードで、計算サービスのみを提供する(たとえば、ネットワーク計算サブシステムが構成解除される、または非アクティブであるときに)第二モードで、またはネットワーキング及び計算サービスの両方を同時に提供する(たとえば、ネットワーク計算サブシステム、及びサーバ計算サブシステムの両方がアクティブである、または機能的であるときに)第三モードで動作することができる。
【0009】
コンピュータ・ネットワークは、データをホストし、複数のクライアントまたは組織へサービスを提供することが可能である複数のサーバを典型的に含むことができる。たとえば、サーバは、クラウド・コンピューティング、分析、ウェブ・サービス、ストレージ、データベース、アプリケーション、デプロイメント・サービスなどのようなサービスを潜在的に多数のクライアント・コンピュータへ提供することが可能である。クライアントまたは組織は、これらのサービスまたはデータを使用して、ストレージ、データ処理及びウェアハウジング、ウェブ及びモバイル・アプリケーション、アーカイブ、ならびに多くの他のタスクのような多種多様な作業負荷に電力を供給することが可能である。一般に、クライアントは、サーバからのサービスまたはデータを要求し、サーバは、ネットワーク経由で要求にサービスを提供する、及び/またはデータを提供する特定のタスクを実行することで応答する。ネットワーク・トラフィックは、特定の時間にサービスを要求するクライアント数、サーバ容量などのような複数の要因により変化する可能性がある。
【0010】
いくつかの実施例で、ネットワーク・システムは、ネットワーク・トラフィックを監視し、トラフィックを調整し、帯域幅輻輳を最小限にすることが可能である。たとえば、ネットワーク・システムは、異なるクライアントへウェブ・サービスを提供するホスト・システム(たとえば、x86サーバ)へ通信可能に結合されることができる。ネットワーク・システムは、1つ以上のプロセッサ・コア、キャッシュ、ネットワーク・アクセラレーション・ロジック、メモリ・コントローラ、及びI/Oサブシステムなどを含むことができる。いくつかの実施形態で、ネットワーク・システムは、サーバ(たとえば、ホスト・システム)により提示されたウェブ・サービスと関連する、トラフィック・シェーピング、ネットワーク・ストレージ処理などのような他の機能を実行することもできる。いくつかの実施例で、ネットワーク・システムの機能性は、ホスト・システムへ通信可能に結合されることができるシステム・オン・チップ(SoC)で計算サブシステムとして実装されることができる。たとえば、SoCは、プラグイン・カードを使用してホスト・システム(たとえば、1つ以上のサーバ)へ結合されることが可能である、またはホスト・システムのマザーボードにはんだ付けされることが可能である。
【0011】
いくつかの実施形態で、SoCは、ネットワーク計算サブシステムに加えて、サーバ計算サブシステム、及び管理計算サブシステムを含むこともできる。たとえば、サーバ計算サブシステムは、計算サービスを提供するように構成されることができ、管理計算サブシステムは、ネットワーク計算サブシステム、及びサーバ計算サブシステムについてのリソースを管理するように構成されることができる。いくつかの実施例で、ネットワーク計算サブシステム、及びサーバ計算サブシステムは、専用リソースを含むことができる。たとえば、リソースは、プロセッサ・コア、レベル1(L1)キャッシュ、レベル2(L2)キャッシュ、レベル3(L3)、またはラスト・レベル・キャッシュ、メモリ・コントローラ、メモリ・チャネル、I/Oコントローラ、さまざまなI/Oインタフェースなどを含むことができる。
【0012】
ほとんどの場合に、SoCを製造すると、SoCは、特定の構成に基づき特定の種類のサービスのみを提供することに限定されることができる。たとえば、SoCは、1セットの機能性を提供する第一構成で、または別のセットの機能性を提供する第二構成で製造されることができる。加えて、特定の構成でSoCを製造すると、処理及びメモリ・リソースの数及び種類は、各計算サブシステムについて固定されることができる。したがって、各SoCは、所定の構成に基づきサービスのタイプ及びレベルを提供することに限定されることができる。
【0013】
開示された技術の実施形態は、システム・オン・チップ(SoC)を動作させるためのさまざまな構成及びモードを提供することが可能である。SoCは、トラフィック監視、トラフィック・シェーピング、コンピューティングなどのような、さまざまなサービスを提供するホスト・システム(たとえば、x86サーバ)へ通信可能に結合されることができる。本技術のいくつかの実施形態で、SoCは、計算サービスを提供するサーバ計算サブシステム、ネットワーク・トラフィックを少なくとも管理するネットワーク計算サブシステム、ならびにネットワーク計算サブシステム、及びサーバ計算サブシステムを管理する管理計算サブシステムのような複数のサブシステムを含むことができる。
【0014】
開示された技術の実施形態で、SoCは、複数のモードのうちの1つで動作させるように構成されることが可能である。たとえば、異なる実施形態で、SoCは、ネットワーキング・サービスのみを提供する第一モードで、計算サービスのみを提供する第二モードで、またはネットワーキング及び計算サービスの両方を同時に提供する第三モードで動作することができる。加えて、各モードは、異なる技術を使用して実施されることが可能である。たとえば、1つの実施形態で、各計算サブシステムは、固定されたリソース割り当てを有することが可能である。別の実施形態で、構成解除済み、または非アクティブ計算サブシステムと関連するリソースは、アクティブ計算サブシステムへ再割り当てされることが可能である。別の実施形態で、SoCは、アクティブ計算サブシステムへステアリングされることが可能である再構成可能なリソースを含むことが可能である。いくつかの実施形態で、管理計算サブシステムは、ハードウェア構成(たとえば、1つ以上のピン、ジャンパー線、またはフューズ)、ソフトウェア構成(たとえば、ソフトウェア・レジスタのデータ・フィールド)、またはポリシーに基づく電源投入でSoCについての構成を決定することができる。たとえば、ポリシーは、ネットワーク接続を介して、外部エンティティ、またはオペレータにより提供されることができる。
【0015】
1つの実施形態で、管理計算サブシステムは、第一モードで動作させるようにSoCを構成することができ、たとえば、SoCは、ネットワーク関連サービスのみを提供することができる。たとえば、サーバ計算サブシステムは、電源を遮断される、または構成解除される可能性がある。1つの実施形態で、SoCは、ホスト・システム内のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・デバイスでネットワーク計算サブシステムとして動作させるように構成されることが可能である。いくつかの実施形態で、さらに管理計算サブシステムは、サーバ計算サブシステムを無効にし、サーバ計算サブシステムと関連する処理及びメモリ・リソースを再構成し、ネットワーク計算サブシステムについてのリソースとして動作させるように第一モードでSoCを構成することが可能である。別の実施形態で、さらに管理計算サブシステムは、第二ネットワーク計算サブシステムとしてサーバ計算サブシステムを別の目的のために再利用するように第一モードでSoCを構成することが可能である。たとえば、ネットワーク計算サブシステムは、第一ネットワーク計算サブシステムとして使用されることができ、サーバ計算サブシステムは、第二ネットワーク計算サブシステムとして使用されることができる。いくつかの実施形態で、再構成可能なリソースのうちの少なくとも部分を第一モードでネットワーク計算サブシステムへステアリングすることが可能である。このようにして、開示された技術のいくつかの実施形態は、たとえば、サーバ計算サブシステムと関連するリソース、または再構成可能なリソースを使用して、SoCが第一モードで高性能ネットワーキング・サービスを提供することを可能にすることができる。
【0016】
1つの実施形態で、管理計算サブシステムは、第二モードで動作させるようにSoCを構成することが可能であり、たとえば、SoCは、計算関連サービスのみを提供することができる。たとえば、ネットワーク計算サブシステムは、電源を遮断される、または構成解除されることができる。1つの実施形態で、SoCは、ホスト・システム内のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・デバイスでサーバ計算サブシステムとして動作させるように構成されることが可能である。いくつかの実施形態で、さらに管理計算サブシステム108は、ネットワーク計算サブシステムを無効にし、ネットワーク計算サブシステムと関連する処理及びメモリ・リソースを再構成し、サーバ計算サブシステムについてのリソースとして動作させる第二モードで、SoCを構成することができる。別の実施形態で、さらに管理計算サブシステムは、第二サーバ計算サブシステムとしてネットワーク計算サブシステムを別の目的のために再利用する第二モードでSoCを構成することができる。たとえば、サーバ計算サブシステムは、第一サーバ計算サブシステムとして使用されることができ、ネットワーク計算サブシステムは、第二サーバ計算サブシステムとして使用されることができる。いくつかの実施形態で、再構成可能なリソースの少なくとも部分を第二モードでサーバ計算サブシステムへステアリングすることが可能である。このようにして、開示された技術のいくつかの実施形態は、たとえば、ネットワーク計算サブシステムと関連するリソース、または再構成可能なリソースを使用して、第二モードで高性能コンピューティング・サービスをSoCが提供することを可能にすることができる。
【0017】
1つの実施形態で、管理計算サブシステムは、第三モードで動作させるようにSoCを構成することが可能であり、たとえば、ネットワーク計算サブシステム、及びサーバ計算サブシステムの両方は、有効にされることができ、SoCは、ネットワーク関連サービス、及び計算関連サービスを同時に提供することができる。第三モードで、それぞれのネットワーク計算サブシステム、及びサーバ計算サブシステムは、その専用処理及びメモリ・リソースを利用することができる。いくつかの実施形態で、第三モードで、サーバ計算サブシステムは、ホスト・システムとして構成されることができ、ネットワーク計算サブシステムは、ホスト・システムとして構成されるサーバ計算サブシステムについてのネットワーク・トラフィックを管理するように構成されることができる。
【0018】
開示された技術のいくつかの実施形態で、システムは、複数のSoCを含むことが可能であり、複数のSoCの内の第一SoCは、複数のモードのうちの1つで動作させるように構成されることが可能であり、複数のSoCの内の第二SoCは、複数のモードのうちの1つで動作させるように構成されることが可能である。1つの実施形態で、システム内の複数のSoCは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・インタフェースのような標準インタフェースを使用して互いと通信することが可能である。たとえば、1つの実施形態で、計算サービスのみを提供する第二モードで動作させるように構成される第一SoCは、ホスト・システムで汎用プロセッサとして動作させることが可能であり、複数のモードのうちの1つで構成される1つ以上の他のSoCと通信することが可能である。別の実施形態で、ネットワーク・サービスのみを提供する第一モードで動作させるように構成される第一SoCは、1つ以上のサーバについてのネットワーク・プロセッサ(たとえば、第二モードで構成されるSoC、または第三者のSoC)として動作させることが可能である。
【0019】
典型的なSoCは、単一のチップ内に統合されたシステムの機能性を有することができる。たとえば、SoCは、複数のプロセッサ・コア、揮発性及び不揮発性メモリ・モジュール、メモリ・コントローラ、1つ以上の内部バス、標準インタフェース、ペリフェラル、電圧レギュレータ、電源管理回路、発振器及び位相同期回路のようなタイミング・リソースなどを含むことが可能である。単一のチップで複数のチップの機能性を実装することは、製造コスト、及び組み立てコストを削減することが可能である。加えて、一般的にSoCは、より小さいフットプリント及び空間要件を有する。したがって、一般的にSoC実装は、同一の機能性を実装するマルチチップ・システムと比較して、より少ない電力を消費し、よりコスト効率が良い。
【0020】
3つモードのうちの1つで動作させるようにSoCを構成するように、開示された技術の実施形態を記述して示すが、開示された技術の態様は、3つモードのうちの1つで動作させるようにSoCを構成することに限定されない。たとえば、いくつかの実装で、複数の計算サブシステムは、SoC内に含まれることができ、SoCは、開示された技術の範囲から逸脱することなく、計算サブシステムのうちの1つとして動作させるように、または2つより多い計算サブシステムとして同時に動作させるように構成されることが可能である。
【0021】
図1は、本明細書に記述される技術の特定の実施形態による例示的なシステム100を図示する。特定の実施形態で、システム・オン・チップ(SoC)102は、複数のモードのうちの1つで動作させるように構成されることができる。
【0022】
SoC102は、ネットワーク計算サブシステム104、サーバ計算サブシステム106、及び管理計算サブシステム108を含むことができる。SoC102は、ホスト・システム110と通信するように構成されることができる。SoC102、及びホスト・システム110間の通信は、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・インタフェース、または任意の他の適切なインタフェースのようなインタフェース112を使用して、実行されることができる。
【0023】
いくつかの実施例で、ホスト・システム110は、複数のクライアントへマルチテナント・プラットフォームを提供することができる。たとえば、ホスト・システム110は、異なるクライアントへ、クラウド・コンピューティング、クラウド・ストレージ、分析、ウェブ・サービス、データベース、アプリケーション、デプロイメント・サービスなどのようなサービスを提供することができる。ホスト・システム110は、サーバ、たとえば、x86サーバを含むことができる。いくつかの実施形態で、ホスト・システム110内の1つ以上のプロセッサは、SoC102上のソケットへ接続されることができる。いくつかの実装で、SoC102は、プラグイン・カードを使用してホスト・システム110へ結合される、またはホスト・システム110のマザーボードにはんだ付けされることが可能である。
【0024】
ネットワーク計算サブシステム104は、ネットワーク・トラフィック・シェーピング、ネットワーク・アクセラレーション、ネットワーク・ストレージ処理などのようなネットワーク関連機能性を提供するように構成されることができる。いくつかの実施形態で、ネットワーク計算サブシステム104は、ネットワーク・インタフェース・コントローラ(NIC)、またはネットワーク・コプロセッサの少なくともいくつかの機能性を有することができる。特定の実施形態で、ネットワーク計算サブシステム104は、ホスト・システム110により提示されるウェブ・サービス、たとえば、ビリング、レート、トラフィック・シェーピング、暗号化、チョーキングなどに関連するいくつかの機能性を有することができる。ネットワーク計算サブシステム104は、処理コア、キャッシュ、メモリ・コントローラ、I/Oコントローラなどのような処理及びメモリ・リソースを含むことができる。
【0025】
サーバ計算サブシステム106は、計算サービス、たとえば、クライアント・コンピュータへの仮想または物理リソースを提供するように構成されることができる。たとえば、計算サービスは、さまざまなサイズの仮想マシン・インスタンスを起動させ、必要に応じて仮想マシンへストレージ・ボリュームを関連付け、仮想マシン、データ処理、ストレージなどをレンタルすることで、アプリケーションを実行するリソースをクライアント・コンピュータに提供することを備えることができる。サーバ計算サブシステム106は、処理コア、キャッシュ、メモリ・コントローラ、I/Oコントローラなどのような処理及びメモリ・リソースを含むことができる。
【0026】
いくつかの実施形態で、サーバ計算サブシステム106を使用して、ホスト・システム110の作業負荷のいくらかを軽減することができる。いくつかの実施例で、サーバ計算サブシステム106と併せてホスト・システム110は、高性能計算サービスを提供することができる。たとえば、ホスト・システム110は、迅速にターンアラウンド・サービスを処理することに集中することができ、サーバ計算サブシステム106へいずれかの低性能作業負荷を軽減するため、システムのスループットを向上させることができる。
【0027】
開示された技術の実施形態で、SoC102は、複数のモードのうちの1つで動作させるように構成されることが可能である。たとえば、第一モードで、SoC102は、ネットワーク・トラフィックを少なくとも管理するためにネットワーク計算サブシステム104を動作させるように構成されることが可能である。たとえば、いくつかの実施形態で、SoC102は、ホスト・システム110(たとえば、インタフェース112を介して)内のPCIeデバイスでネットワーク計算サブシステム104を動作させるように、たとえば、ホスト・システム110についてのネットワーク・トラフィックを管理するように構成されることができる。第二モードで、SoC102は、計算サービスを提供するためにサーバ計算サブシステム106を動作させるように構成されることが可能である。たとえば、いくつかの実施形態で、SoC102は、ホスト・システム110(たとえば、インタフェース112を介して)内のPCIeデバイスでサーバ計算サブシステム106を動作させるように構成されることができる。第三モードで、SoC102は、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106を同時に動作させるように構成されることが可能である。いくつかの実施形態で、サーバ計算サブシステム106は、ホスト・システムとして構成されることができ、ネットワーク計算サブシステム104は、ホスト・システムとして構成されるサーバ計算サブシステム106についてのネットワーク・トラフィックを管理することができる。いくつかの実施形態で、SoC102は、管理計算サブシステム108により複数のモードのうちの1つで構成されることが可能である。
【0028】
いくつかの実施形態で、SoC102を第一モードで動作させるときに、サーバ計算サブシステム106は、構成解除される、または非アクティブであることができる。たとえば、いくつかの実施例で、サーバ計算サブシステム106は、電源を遮断されることができる。いくつかの他の実施形態で、SoC102を第一モードで動作させるときに、サーバ計算サブシステム106は、第二ネットワーク計算サブシステムとして別の目的のために再利用されることができる。たとえば、いくつかの実施例で、SoC102は、2つのネットワーク計算サブシステムを利用することで、高性能ネットワーキング・サービスを提供するように構成されることができる。いくつかの実施形態において、第一モードで、SoC102は、サーバ計算サブシステム106を無効にし、サーバ計算サブシステム106と関連する処理及びメモリ・リソースを再構成し、ネットワーク計算サブシステム104についてのリソースとして動作させ、高性能ネットワーキング・サービスを提供するように構成されることができる。いくつかの実施形態において、第一モードで、SoC102は、1つ以上のサーバについてのネットワーク・プロセッサとして動作させるように構成されることが可能である。
【0029】
いくつかの実施形態で、SoC102を第二モードで動作させるときに、ネットワーク計算サブシステム104は、構成解除される、または非アクティブであることができる。たとえば、いくつかの実施例で、ネットワーク計算サブシステム104は、電源を切断されることができる。1つの実施形態において、第二モードで、SoC102は、ホスト・システム110内の汎用プロセッサとして動作させるように構成されることが可能である。たとえば、いくつかの実施形態で、汎用プロセッサは、いずれかのプラットフォーム、たとえば、いずれかのオペレーティング・システム上で実行することが可能であることができる。いくつかの実施形態で、汎用プロセッサは、汎用コンピューテーションのようなコンピュータの中央処理装置の機能性のほとんどを実行することが可能であることができ、複数のネットワーキング及びメッセージング・プロトコルを支援することが可能であることができる。いくつかの他の実施形態で、SoC102を第二モードで動作させるときに、ネットワーク計算サブシステム104は、第二サーバ計算サブシステムとして別の目的のために再利用されることができる。たとえば、いくつかの実施例で、SoC102は、2つのサーバ計算サブシステムを利用することで高性能計算サービスを提供するように構成されることができる。いくつかの実施形態において、第二モードで、SoC102は、ネットワーク計算サブシステム104を無効にし、ネットワーク計算サブシステム104と関連する処理及びメモリ・リソースを再構成し、サーバ計算サブシステム106についてのリソースとして動作させ、高性能計算サービスを提供するように構成されることができる。
【0030】
いくつかの実施形態で、管理計算サブシステム108は、複数のモードのうちの1つ、たとえば、第一モード、第二モード、または第三モードで動作させるようにSoC102を設定するように構成されることができる。また管理計算サブシステム108は、SoC102のさまざまなサブシステムを管理するように構成されることができる。たとえば、管理計算サブシステム108は、ブート管理、異なるサブシステムのリセット及び電源管理、ならびに任意の他のSOC管理関連機能性を提供するように構成されることができる。たとえば、いくつかの実施形態で、管理計算サブシステム108は、他の計算サブシステム、たとえば、ネットワーク計算サブシステム104に影響を与えずに、各計算サブシステムの電源を遮断するように構成されることができ、サーバ計算サブシステム106は、独立して電源を投入される、または遮断されることができる。また管理計算サブシステム108は、異なるサブシステムと関連するリソースを管理するように構成されることができる。いくつかの実施形態で、管理計算サブシステム108は、1つ以上のプロセッサ・コアのようなそれ自体の処理リソースを含むことができる。
【0031】
したがって、開示された技術の実施形態は、SoC102が同一のシリコンを使用して異なる機能性を提供することで複数のモードのうちの1つで動作させることを可能にすることができる。たとえば、同一のSoC102は、最小コストで、任意の追加のシリコンの必要なしで異なる構成で、ネットワーク計算サブシステムとして、サーバ計算サブシステムとして、または同時にネットワーク計算サブシステム、及びサーバ計算サブシステムとして動作することが可能である。
【0032】
図2は、開示された技術のいくつかの実施形態によりSoC102の詳細なブロック図を図示する。
【0033】
SoC102は、ネットワーク計算サブシステム104、サーバ計算サブシステム106、管理計算サブシステム108、及び共有リソース・サブシステム230を含むことができる。管理計算サブシステム108は、内部バス232を使用して、ネットワーク計算サブシステム104、サーバ計算サブシステム106、及び共有リソース・サブシステム230のような他のサブシステムと通信することができる。
【0034】
ネットワーク計算サブシステム104は、ネットワーク計算サブシステム・マルチコア・プロセッサ202、L1/L2キャッシュ204、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206、L3キャッシュ208、ネットワークI/Oサブシステム210、ネットワーク計算サブシステム・メモリ・コントローラ212、及びアクセラレーション部214を含むことができる。いくつかの実施形態で、ネットワーク計算サブシステム104についての処理及びメモリ・リソースの割り当てを固定することができる。たとえば、ネットワーク計算サブシステム・マルチコア・プロセッサ202内の複数のマルチコア・プロセッサ数、ネットワーク計算サブシステム・メモリ・コントローラ212内の複数のメモリ・コントローラ数、及びL1/L2キャッシュ204、L3キャッシュ208のサイズは、パワー・オン・リセット後に固定されることができる。
【0035】
サーバ計算サブシステム106は、サーバ計算サブシステム・マルチコア・プロセッサ216、L1/L2キャッシュ218、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220、L3キャッシュ222、サーバI/Oサブシステム224、サーバ計算サブシステム・メモリ・コントローラ226、及びブート周辺デバイス228を含むことができる。いくつかの実施形態で、サーバ計算サブシステム106についての処理及びメモリ・リソースの割り当てを固定することができる。たとえば、サーバ計算サブシステム・マルチコア・プロセッサ216内の複数のマルチコア・プロセッサ数、サーバ計算サブシステム・メモリ・コントローラ226内の複数のメモリ・コントローラ、及びL1/L2キャッシュ218の数、L3キャッシュ222のサイズは、パワー・オン・リセット後に固定されることができる。
【0036】
ネットワーク計算サブシステム・マルチコア・プロセッサ202は、同一のプロセッサ内で、複数のマルチコア・プロセッサ、または処理部を含むことができる。たとえば、1つの実施例で、ネットワーク計算サブシステム・マルチコア・プロセッサ202は、12個の2コア・プロセッサを含むことができる。ネットワーク計算サブシステム・マルチコア・プロセッサ202は、プロセッサ・コアの1つ以上のプロセッサで集合的に複数の命令を実行するように構成されることができる。これらの命令は、たとえば、コンピュータ・プログラムの形式で、コンピュータ可読記憶媒体に格納されることができる。コンピュータ可読記憶媒体は、非一時的であることができる。いくつかの実施形態で、マルチコア・プロセッサは、複数のコア間のバス及びレベル1(L1)キャッシュ、及び/またはレベル2(L2)キャッシュのような、特定のリソースを共有することができる。たとえば、いくつかの実施例で、またシングル・コアまたはマルチコア・プロセッサ内の各コアは、複数の実行中の論理プロセッサ(またはスレッド)を含むことができる。このようなコア(複数の論理プロセッサを支援する)で、実行パイプラインのいくつかのステージ、及びより低いレベルのキャッシュ(たとえば、L1またはL2)も、共有することができる。マルチコア・プロセッサの非限定的な実施例のうちのいくつかは、ARMのCortex A57、MIPS、AMD Phenom、Intel ATOMなどを含むことができる。
【0037】
いくつかの実施形態で、L1/L2キャッシュ204は、ネットワーク計算サブシステム・マルチコア・プロセッサ202の複数のコア間で共有されることができる。たとえば、L1キャッシュを1次キャッシュとして使用することができ、L2キャッシュを2次キャッシュとして使用することができる。いくつかの実施形態で、L1/L2キャッシュ204をネットワーク計算サブシステム・マルチコア・プロセッサ202内に組み込むことができる。たとえば、1つのL1/L2キャッシュを1つのマルチコア・プロセッサと統合することができる。いくつかの実施形態で、ネットワーク計算サブシステム・マルチコア・プロセッサ202、及びL1/L2キャッシュ204は、サーバ計算サブシステム106についてのコンピューティング・リソースとして動作させるように再構成されることができる。たとえば、SoC102を第二モードで動作させるように構成するときに、ネットワーク計算サブシステム104は、SoC102により提供されるネットワーク関連機能性を無効にするように構成解除されることができる。
【0038】
ネットワークI/Oサブシステム210は、さまざまな内部及び外部コンポーネントと通信する1つ以上のインタフェースを含むことができる。たとえば、ネットワークI/Oサブシステム210は、ホスト・システム110と通信するインタフェース236を含むことができる。ネットワークI/Oサブシステム210は、サーバ計算サブシステム106と通信する内部インタフェース、たとえば、インタフェース234を含むことができる。いくつかの実施形態で、サーバ計算サブシステム106を無効にするときに、サーバ計算サブシステム106と通信するインタフェース234を利用しないことができる。いくつかの実施形態で、サーバ計算サブシステム106は、ネットワークI/Oサブシステム210を介して、たとえば、インタフェース234を介してホスト・システム110、及びネットワークと通信することができる。いくつかの実施形態で、ホスト・システム110、及びサーバ計算サブシステム106と通信するインタフェースは、PCIeのような標準インタフェースに基づくことができる。またネットワークI/Oサブシステム210は、ネットワーク(たとえば、インターネット、イントラネット)などと通信するインタフェースを含むことができる。たとえば、インタフェースは、イーサネット、トークン・リング、Wi−Fi、ATM(非同期転送モード)などのような規格に基づくことができる。いくつかの実施形態で、またネットワークI/Oサブシステム210は、1つ以上のSATAコントローラ、イーサネットMAC、PCIeデバイス、SERDES(シリアライズ・デシリアライズ)I/Oマルチプレクサ、UART(汎用非同期送受信回路)、I2C(集積回路間)、GPIO(汎用入出力)、及びSoC機能性用の任意の他の適切なI/Oデバイスのような周辺デバイスを含むことができる。いくつかの実施形態で、またネットワークI/Oサブシステム210は、ハード・ドライブ、光学ドライブなどのような外部マス・ストレージ・デバイスへ接続するインタフェース(たとえば、SATA)を含むことができる。
【0039】
ネットワーク計算サブシステム・メモリ・コントローラ212は、DDR(ダブル・データ・レート)コントローラ、DDR2コントローラ、または任意の適切なメモリ・コントローラのような、複数のメモリ・コントローラを含むことができる。ネットワーク計算サブシステム・メモリ・コントローラ212を使用して、外部メモリ(たとえば、システム・メモリ)へのアクセスを管理することができる。たとえば、外部システム・メモリは、DDR同期ダイナミック・ランダム・アクセス・メモリ(DRAM)、DDR2 DRAM、DRAMなどを含むことができる。いくつかの実施形態で、ネットワーク計算サブシステム・メモリ・コントローラ212内のメモリ・コントローラ数は、プロセッサ・コア数、キャッシュ・サイズなどに基づくことができる。
【0040】
アクセラレーション部214は、ネットワーク・アクセラレータのような1つ以上のアクセラレータを含むことができる。いくつかの実施形態で、アクセラレーション部214は、たとえば、ハードウェア・アクセラレータ、さまざまなパイプライン、キャッシング、圧縮などを使用して、帯域幅最適化、またはネットワーク・アクセラレーションを提供する、さまざまなハードウェア及びソフトウェア技術の組み合わせを含むことができる。またアクセラレーション部214は、RDMA(リモート・ダイレクト・メモリ・アクセス)、暗号化エンジンなどを支援することができる。たとえば、いくつかの実施例で、暗号化エンジンは、ハードウェアで暗号化機能を実行するため、ソフトウェア・オーバーヘッドを削減し、ネットワーキングに関連する復号化、暗号化及び認証機能の実行を加速することができる。
【0041】
L3キャッシュ208は、ラスト・レベル・キャッシュを含むことができる。いくつかの実施形態で、L3キャッシュ208は、ネットワーク計算サブシステム・マルチコア・プロセッサ202の複数のコアにより共有されることができる。本明細書で、用語、ラスト・レベル・キャッシュ、及びL3キャッシュを交換可能に使用することができるが、いくつかのシステムで、ラスト・レベル・キャッシュは、本技術の範囲から逸脱することなく、レベル2キャッシュ、またはレベル4キャッシュ、または任意の他のレベルであってもよい。いくつか実施形態で、L3キャッシュ208、及びネットワーク計算サブシステム・メモリ・コントローラ212は、サーバ計算サブシステム106についてのコンピューティング・リソースとして動作させるように再構成されることができる。たとえば、SoC102を第二モードで動作させるように構成するときに、ネットワーク計算サブシステム104は、SoC102により提供されるネットワーク関連機能性を無効にするように構成解除されることができる。
【0042】
ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、ネットワーク計算サブシステム104へ割り当てられるすべてのリソースへ接続することが可能である物理層ファブリックを表現することができる。開示された技術のいくつかの実施形態で、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、ネットワーク計算サブシステム104へ割り当てられるすべてのリソースについての専用ハードウェア・パスを許可することで、ハードウェア・セキュリティ、及びパフォーマンス/ジッタ隔離を提供することができる。いくつかの実施形態で、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、ネットワーク計算サブシステム104の異なるコンポーネント、たとえば、ネットワーク計算サブシステム・マルチコア・プロセッサ202、L1/L2キャッシュ204、L3キャッシュ208、ネットワークI/Oサブシステム210、ネットワーク計算サブシステム・メモリ・コントローラ212、アクセラレーション部214、及び共有リソース・サブシステム230間の整合性を維持するように構成されることができる。いくつかの実施例で、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、ネットワーク計算サブシステム104の通信バックボーンを表現することができる。いくつかの実施形態で、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、すべての共有データがネットワーク計算サブシステム104でコヒーレントであることを確実にするように構成されることができる。たとえば、特定の共有データを2つ以上の位置(たとえば、複数のプロセッサ、1つのプロセッサの複数のコア、キャッシュなど)に格納する場合に、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、異なる位置でこの共有データの一貫性を維持するように動作可能であることができる。いくつかの実施形態で、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、ネットワーク計算サブシステム104の異なるコンポーネント間の整合性を維持する、整合性コントローラ、及び整合性ディレクトリを含むことができる。
【0043】
サーバ計算サブシステム・マルチコア・プロセッサ216は、同一のプロセッサ内の複数のマルチコア・プロセッサ、または処理部を含むことができる。たとえば、1つの実施例で、サーバ計算サブシステム・マルチコア・プロセッサ216は、12個の2コア・プロセッサを含むことができる。サーバ計算サブシステム・マルチコア・プロセッサ216は、プロセッサ・コアの1つ以上のプロセッサで集合的に複数の命令を実行するように構成されることができる。たとえば、コンピュータ・プログラムの形式で、命令をコンピュータ可読記憶媒体に格納することができる。コンピュータ可読記憶媒体は、非一時的であることができる。
【0044】
いくつかの実施形態で、L1/L2キャッシュ218をサーバ計算サブシステム・マルチコア・プロセッサ216の複数のコア間で共有することができる。たとえば、L1キャッシュを1次キャッシュとして使用することができ、L2キャッシュを2次キャッシュとして使用することができる。いくつかの実施形態で、L1/L2キャッシュ218をサーバ計算サブシステム・マルチコア・プロセッサ216内へ組み込むことができる。いくつかの実施形態で、サーバ計算サブシステム・マルチコア・プロセッサ216、及びL1/L2キャッシュ218は、ネットワーク計算サブシステム104についてのコンピューティング・リソースとして動作させるように再構成されることができる。たとえば、SoC102が第一モードで動作させるように構成されるときに、サーバ計算サブシステム106は、SoC102により提供される計算関連機能性を無効にするように構成解除されることができる。
【0045】
サーバ計算サブシステム・メモリ・コントローラ226は、DDRコントローラ、DDR2コントローラ、または任意の適切なメモリ・コントローラのような複数のメモリ・コントローラを含むことができる。サーバ計算サブシステム・メモリ・コントローラ226を使用して、外部メモリへのアクセスを管理することができる。いくつかの実施形態で、サーバ計算サブシステム・メモリ・コントローラ226内のメモリ・コントローラ数は、プロセッサ・コア数、キャッシュ・サイズなどに基づくことができる。
【0046】
サーバI/Oサブシステム224は、さまざまな内部及び外部コンポーネントと通信する1つ以上のインタフェースを含むことができる。たとえば、サーバI/Oサブシステム224は、ホスト・システム110と通信するインタフェース238を含むことができる。サーバI/Oサブシステム224は、ネットワーク計算サブシステム104と通信する内部インタフェース、たとえば、インタフェース234を含むことができる。いくつかの実施形態で、ネットワーク計算サブシステム104を無効にするときに、ネットワーク計算サブシステム104と通信するインタフェース234を利用することができる。いくつかの実施形態で、サーバ計算サブシステム106は、ネットワークI/Oサブシステム210を介して、たとえば、インタフェース234を介してホスト・システム110、及びネットワークと通信することができる。いくつかの実施形態で、ホスト・システム110、及びネットワーク計算サブシステム104と通信するインタフェースは、PCIeのような標準インタフェースに基づくことができる。またサーバI/Oサブシステム224は、ネットワーク(たとえば、インターネット、イントラネット)などと通信するインタフェースを含むことができる。たとえば、インタフェースは、イーサネット、トークン・リング、Wi−Fi、ATM(非同期転送モード)などのような規格に基づくことができる。いくつかの実施形態で、またサーバI/Oサブシステム224は、1つ以上のSATAコントローラ、イーサネットMAC、PCIeデバイス、SERDES(シリアライズ・デシリアライズ)I/Oマルチプレクサ、UART、I2C、GPIO、及びSoC機能性についての任意の他の適切なI/Oデバイスのような、周辺デバイスを含むことができる。いくつかの実施形態で、またサーバI/Oサブシステム224は、ハード・ドライブ、光学ドライブなどのような外部マス・ストレージ・デバイスへ接続するインタフェース(たとえば、SATA)を含むことができる。
【0047】
L3キャッシュ222は、ラスト・レベル・キャッシュを含むことができる。いくつかの実施形態で、L3キャッシュ222は、サーバ計算サブシステム・マルチコア・プロセッサ216の複数のコアにより共有されることができる。いくつかの実施形態で、L3キャッシュ222、及びサーバ計算サブシステム・メモリ・コントローラ226は、ネットワーク計算サブシステム104についてのメモリ・リソースとして動作させるように再構成されることができる。たとえば、SoC102を第一モードで動作させるように構成するときに、サーバ計算サブシステム106は、SoC102により提供される計算関連機能性を無効にするように構成解除されることができる。
【0048】
ブート周辺デバイス228は、サーバ計算サブシステム106についての1つ以上のペリフェラルを含むことができる。たとえば、ブート周辺デバイス228は、ブートROM、EEPROM、またはフラッシュ・メモリを含むことができる。いくつかの実施形態で、ブート周辺デバイス228のうちの1つは、サーバ計算サブシステム106についてのオペレーティング・システムをブートストラップするBIOSソフトウェアを含むことができる。
【0049】
サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、サーバ計算サブシステム106へ割り当てられるすべてのリソースへ接続することが可能である物理層ファブリックを表現することができる。開示された技術の実施形態で、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、サーバ計算サブシステム106へ割り当てられるすべてのリソースについての専用ハードウェア・パスを許可することで、ハードウェア・セキュリティ及びパフォーマンス/ジッタ隔離を提供することができる。いくつかの実施形態で、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、サーバ計算サブシステム106の異なるコンポーネント、たとえば、サーバ計算サブシステム・マルチコア・プロセッサ216、L1/L2キャッシュ218、サーバ計算サブシステム・メモリ・コントローラ226、L3キャッシュ222、サーバI/Oサブシステム224、及び共有リソース・サブシステム230間の整合性を維持するように構成されることができる。いくつかの実施例で、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、サーバ計算サブシステム106の通信バックボーンを表現することができる。いくつかの実施形態で、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、すべての共有データがサーバ計算サブシステム106内でコヒーレントであることを確実にするように構成されることができる。たとえば、特定の共有データを2箇所以上の位置(たとえば、複数のプロセッサ、1つのプロセッサの複数のコア、キャッシュなど)に格納する場合に、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、異なる位置で共有データの一貫性を維持するように動作可能であることができる。いくつかの実施形態で、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、サーバ計算サブシステム106の異なるコンポーネント間の整合性を維持する、整合性コントローラ、及び整合性ディレクトリを含むことができる。
【0050】
共有リソース・サブシステム230は、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106間で共有されることが可能である1つ以上のリソースを含むことができる。いくつかの実施形態で、共有リソース・サブシステム230は、いかなるジッタまたは安全性の懸念事項を生じることなく、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106間で安全に共有されることが可能である1つ以上のペリフェラルを含むことができる。たとえば、共有リソース・サブシステム230は、乱数生成器、通信メールボックス、スクラッチパッド・メモリ、フラッシュ・メモリなどを含むことができる。
【0051】
管理計算サブシステム108は、複数のモードのうちの1つで動作させるようにSoC102を設定するように構成されることができる。いくつかの実施形態で、管理計算サブシステム108は、ハードウェア構成(たとえば、1つ以上のピン、ジャンパー線、またはフューズ)、ソフトウェア構成(たとえば、ソフトウェア・レジスタのデータ・フィールド)、またはポリシーに基づき電源投入でSoC102についての構成を決定することができる。たとえば、ポリシーは、ネットワーク接続を介して外部エンティティ、またはオペレータにより提供されることができる。いくつかの実施形態で、管理計算サブシステム108は、ランタイムに動的にSoC102の構成を決定することができる。
【0052】
1つの実施形態で、管理計算サブシステム108は、第一モードで動作させるようにSoC102を構成することができ、たとえば、SoC102は、ネットワーク関連サービスのみを提供することができる。たとえば、サーバ計算サブシステム106は、電源を切断される、または構成解除されることができる。いくつかの実施形態で、さらに管理計算サブシステム108は、サーバ計算サブシステム106を無効にし、サーバ計算サブシステム106と関連する処理及びメモリ・リソースを再構成し、ネットワーク計算サブシステム104についてのリソースとして動作させる、第一モードでSoC102を構成することができる。1つの実施形態で、管理計算サブシステム108は、ネットワーク計算サブシステム104についてのリソースとして動作させるように、サーバ計算サブシステム・マルチコア・プロセッサ216、L1/L2キャッシュ218、L3キャッシュ222、サーバ計算サブシステム・メモリ・コントローラ226、及びサーバI/Oサブシステム224を再構成することができる。別の実施形態で、さらに管理計算サブシステム108は、第二ネットワーク計算サブシステムとしてサーバ計算サブシステム106を別の目的のために再利用するように第一モードでSoC102を構成することができる。たとえば、ネットワーク計算サブシステム104を第一ネットワーク計算サブシステムとして使用することができ、サーバ計算サブシステム106を第二ネットワーク計算サブシステムとして使用することができる。したがって、開示された技術のいくつかの実施形態は、SoC102が第一モードで高性能ネットワーキング・サービスを提供することを可能にすることができる。
【0053】
1つの実施形態で、管理計算サブシステム108は、第二モードで動作させるようにSoC102を構成することができ、たとえば、SoC102は、計算関連サービスのみを提供することができる。たとえば、ネットワーク計算サブシステム104は、電源を切断される、または構成解除されることができる。いくつかの実施形態で、さらに管理計算サブシステム108は、ネットワーク計算サブシステム104を無効にし、ネットワーク計算サブシステム104と関連する処理及びメモリ・リソースを再構成し、サーバ計算サブシステム106についてのリソースとして動作させる、第二モードでSoC102を構成することができる。1つの実施形態で、管理計算サブシステム108は、サーバ計算サブシステム106についてのリソースとして動作させるように、ネットワーク計算サブシステム・マルチコア・プロセッサ202、L1/L2キャッシュ204、L3キャッシュ208、ネットワーク計算サブシステム・メモリ・コントローラ212、及びネットワークI/Oサブシステム210を再構成することができる。別の実施形態で、さらに管理計算サブシステム108は、第二サーバ計算サブシステム106としてネットワーク計算サブシステム104を別の目的のために再利用するように第二モードで、SoC102を構成することができる。たとえば、サーバ計算サブシステム106を第一サーバ計算サブシステムとして使用することができ、ネットワーク計算サブシステム104を第二サーバ計算サブシステムとして使用することができる。したがって、開示された技術のいくつかの実施形態は、SoC102が第二モードで高性能コンピューティング・サービスを提供することを可能にすることができる。
【0054】
1つの実施形態で、管理計算サブシステム108は、第三モードで動作させるようにSoC102を構成することができ、たとえば、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106の両方は、有効にされることができ、SoC102は、ネットワーク関連サービス、及び計算関連サービスを同時に提供することができる。第三モードで、それぞれのネットワーク計算サブシステム104、及びサーバ計算サブシステム106は、その専用処理及びメモリ・リソースを利用することができる。
【0055】
図3Aは、開示された技術の実施形態により、第一モードでSoC構成を図示する。
【0056】
第一モードで、SoC102は、ホスト・システム110についてのネットワーク・トラフィックを少なくとも管理するためのネットワーク計算サブシステムとして動作することが可能である。1つの実施形態で、SoC102は、たとえば、インタフェース236を使用して、ホスト・システム110内のPCIeデバイスでネットワーク計算サブシステム104を動作させるように構成されることができる。たとえば、いくつかの実施例で、SoCを使用して、ネットワーク・トラフィック・シェーピング、ネットワーク・アクセラレーション、ネットワーク・ストレージ処理などのようなネットワーク関連機能性のみを提供することができ、SoCを使用しないで、計算関連サービスを提供することができる。いくつかの実施形態で、図3Aで図示されるように、第一モードで、唯一のネットワーク計算サブシステム104は、アクティブである、またはホスト・システム110についてのネットワーク・トラフィックを少なくとも管理するように構成されることができる。サーバ計算サブシステム106は、非アクティブである、または構成解除されることができる。いくつかの実施形態で、サーバ計算サブシステム106の少なくとも部分は、電源を切断されることができる。管理計算サブシステム108は、アクティブであり、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106についてのリソースを管理するように構成されることができる。たとえば、いくつかの実施形態で、さらに管理計算サブシステム108は、サーバ計算サブシステム106と関連する処理及びメモリ・リソースを再構成し、ネットワーク計算サブシステム104についてのリソースとして動作させるようにSoC102を構成することができる。図2に戻り参照して、管理計算サブシステム108は、サーバ計算サブシステム・マルチコア・プロセッサ216、L1/L2キャッシュ218、L3キャッシュ222、サーバ計算サブシステム・メモリ・コントローラ226、及びサーバI/Oサブシステム224を再構成し、ネットワーク計算サブシステム104についてのリソースとして動作させることができる。したがって、開示された技術のいくつかの実施形態は、SoC102が計算サブシステムの両方からのリソースを利用することで、高性能ネットワーキング・サービスを提供することを可能にすることができる。
【0057】
図3Bは、開示された技術の実施形態により、第二モードでSoC構成を図示する。
【0058】
第二モードで、SoC102は、計算サービスを提供するためのサーバ計算サブシステムとして動作することが可能である。1つの実施形態で、SoC102は、たとえば、インタフェース238を使用して、ホスト・システム110内のPCIeデバイスでサーバ計算サブシステム106を動作させるように構成されることができる。たとえば、いくつかの実施例で、SoC102は、コンピューティング、データ処理、または他の仮想若しくは物理リソースを提供することのようなサーバ関連機能性のみを提供するために使用されることができ、ネットワーク関連サービスを提供するために使用されないことができる。いくつかの実施形態で、図3Bで図示されるように、第二モードで、唯一のサーバ計算サブシステム106は、アクティブである、または計算サービスを提供するように構成されることができる。ネットワーク計算サブシステム104は、非アクティブである、または構成解除されることができる。いくつかの実施形態で、ネットワーク計算サブシステム104の少なくとも部分は、電源を遮断されることができる。管理計算サブシステム108は、アクティブであり、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106についてのリソースを管理するように構成されることができる。たとえば、いくつかの実施形態で、さらに管理計算サブシステム108は、ネットワーク計算サブシステム104と関連する処理及びメモリ・リソースを再構成し、サーバ計算サブシステム106についてのリソースとして動作させるようにSoC102を構成することができる。図2に戻り参照して、管理計算サブシステム108は、ネットワーク計算サブシステム・マルチコア・プロセッサ202、L1/L2キャッシュ204、L3キャッシュ208、ネットワーク計算サブシステム・メモリ・コントローラ212、及びネットワークI/Oサブシステム210を再構成し、サーバ計算サブシステム106についてのリソースとして動作させることができる。したがって、開示された技術のいくつかの実施形態は、SoC102が計算サブシステムの両方からのリソースを利用することで、高性能計算サービスを提供することを可能にすることができる。
【0059】
図3Cは、開示された技術の1つの実施形態により、第三モードでSoC構成を図示する。
【0060】
第三モードで、SoC102は、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106として同時に動作することが可能である。たとえば、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106の両方は、アクティブであることが可能である。いくつかの実施形態で、ネットワーク計算サブシステム104を使用して、ネットワーク・トラフィック・シェーピング、ネットワーク・アクセラレーション、ネットワーク・ストレージ処理などのような、ネットワーク関連サービスを提供することができ、サーバ計算サブシステム106を使用して、コンピューティング、データ処理、または他の仮想若しくは物理リソースを提供することのような、計算サービスを提供することができる。いくつかの実施形態で、第三モードで、さらにSoC102は、ホスト・システムとしてサーバ計算サブシステム106を動作させるように、及びサーバ計算サブシステム106についてのネットワーク・トラフィックを管理するようにネットワーク計算サブシステム104を動作させるように構成されることができる。たとえば、いくつかの実施形態で、計算サービス、及びネットワーク・サービスを提供することが可能であるホスト・システムとしてSoC102を使用することができる。管理計算サブシステム108は、アクティブであり、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106についてのリソースを管理するように構成されることができる。したがって、開示された技術のいくつかの実施形態は、SoC102が両方の計算サブシステムを利用することでネットワーク・サービス、及び計算サービスを同時に提供することを可能にすることができる。
【0061】
図4Aは、開示された技術の1つの実施形態により、第一モードで、ネットワーク計算サブシステムとして別の目的のために再利用されるサーバ計算サブシステムを含むSoC構成を図示する。
【0062】
いくつかの実施形態において、第一モードで、SoC402は、第二ネットワーク計算サブシステム406としてサーバ計算サブシステムを別の目的のために再利用するように構成されることが可能である。たとえば、図3Aに戻り参照して、サーバ計算サブシステム106は、第一モードで、非アクティブである、または構成解除されることができる。またSoC402は、図2及び3Aを参照して、先に考察されるように、ネットワーク計算サブシステム104に類似することが可能である第一ネットワーク計算サブシステム404、及び管理計算サブシステム108に類似することが可能である管理計算サブシステム408を含むことが可能である。いくつかの実施形態で、ネットワーク計算サブシステムとしてサーバ計算サブシステムを別の目的のために再利用することは、サーバ計算サブシステムと関連する1つ以上のリソースを利用し、計算サーバ関連機能性の代わりにネットワーク関連機能性を実行することを備えることができる。たとえば、図2に戻り参照して、サーバI/Oサブシステム238は、ネットワーク・トラフィック監視のために利用されることができ、サーバ計算サブシステム・マルチコア・プロセッサ216、L1/L2キャッシュ218、L3キャッシュ222、及びサーバ計算サブシステム・メモリ・コントローラ226は、ネットワーク・ストレージ処理を実行するために利用されることができる。いくつかの実施形態で、SoC402は、ネットワーク・プロセッサとして動作することが可能である。したがって、開示された技術のいくつかの実施形態は、リソースの効率的な使用が高性能ネットワーキング・サービスを提供することを可能にすることができる。
【0063】
図4Bは、開示された技術の実施形態により、第二モードで、サーバ計算サブシステムとして別の目的のために再利用されるネットワーク計算サブシステムを含むSoC構成を図示する。
【0064】
いくつかの実施形態において、第二モードで、SoC410は、第二サーバ計算サブシステム414としてネットワーク計算サブシステム104を別の目的のために再利用するように構成されることが可能である。たとえば、図3Bへ戻り参照して、ネットワーク計算サブシステム104は、第二モードで、非アクティブである、または構成解除されることができる。またSoC410は、図2及び3Bを参照して先に考察されるように、管理計算サブシステム408、及びサーバ計算サブシステム106に類似することが可能である第一サーバ計算サブシステム412を含むことが可能である。いくつかの実施形態で、第二サーバ計算サブシステムとしてネットワーク計算サブシステムを別の目的のために再利用することは、ネットワーク計算サブシステムと関連する1つ以上のリソースを利用し、ネットワーク関連機能性の代わりに計算サーバ関連機能性を実行することを備えることができる。たとえば、図2に戻り参照して、ネットワークI/Oサブシステム210は、ホスト・システム110と通信するために利用されることができ、ネットワーク計算サブシステム・マルチコア・プロセッサ202、L1/L2キャッシュ204、L3キャッシュ208、及びネットワーク計算サブシステム・メモリ・コントローラ212は、データ処理を実行するために利用されることができる。いくつかの実施形態で、SoC410は、汎用プロセッサとして動作することが可能である。したがって、開示された技術のいくつかの実施形態は、リソースの効率的な使用が高性能計算サービスを提供することを可能にすることができる。
【0065】
図5は、開示された技術の1つの実施形態により、再構成可能な処理及びメモリ・リソースを含むSoC502のブロック図を図示する。一般に、SoC502は、モードに基づき、ネットワーク計算サブシステムの部分として、またはサーバ計算サブシステムの部分として機能するように構成されることが可能である、再構成可能な処理及びメモリ・リソースを含むことが可能である。またネットワーク計算サブシステム、及びサーバ計算サブシステムは、それぞれ、それ自体の専用処理及びメモリ・リソースを含むことが可能である。
【0066】
SoC502は、図2を参照して先に考察されるようなSoC102に類似することが可能である。1つの実施形態で、SoC502は、図2を参照して考察されるような、ネットワーク計算サブシステム104、サーバ計算サブシステム106、管理計算サブシステム108、及び共有リソース・サブシステム230に加えて、再構成可能な処理コア504、L1/L2キャッシュ506、ステアリング部508、ファブリック・ブリッジ512、及び再構成可能なメモリ・コントローラ510を含むことができる。ネットワーク計算サブシステム104は、図2を参照して考察されるような、ネットワーク計算サブシステム・マルチコア・プロセッサ202、L1/L2キャッシュ204、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206、L3キャッシュ208、ネットワークI/Oサブシステム210、ネットワーク計算サブシステム・メモリ・コントローラ212、及びアクセラレーション部214を含むことができる。サーバ計算サブシステム106は、サーバ計算サブシステム・マルチコア・プロセッサ216、L1/L2キャッシュ218、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220、L3キャッシュ222、サーバ計算サブシステム・メモリ・コントローラ226、ブート周辺デバイス228、及びサーバI/Oサブシステム224を含むことができる。
【0067】
再構成可能な処理コア504は、ネットワーク計算サブシステム104の部分として、またはサーバ計算サブシステム106の部分として機能するように構成されることが可能である複数の処理コアを含むことができる。L1/L2キャッシュ506は、ネットワーク計算サブシステム104の部分として、またはサーバ計算サブシステム106の部分として機能するように構成されることが可能である複数のL1/L2キャッシュを含むことができる。いくつかの実施形態で、それぞれのL1/L2キャッシュ506は、1つ以上の処理コアにより共有されることができる。
【0068】
1つの実施形態で、管理計算サブシステム108は、ネットワーク計算サブシステム104へ、再構成可能な処理コア504、及びL1/L2キャッシュ506のうちの1つ以上を割り当てるようにSoC502を構成することができる。たとえば、第一モードで、SoC502は、ホスト・システム110についてのネットワーク・トラフィックを少なくとも管理するためにネットワーク計算サブシステムとして動作することができる。たとえば、いくつかの実施例で、SoC502は、ネットワーク・トラフィック・シェーピング、ネットワーク・アクセラレーション、ネットワーク・ストレージ処理などのような、ネットワーク関連機能性のみを提供するために使用されることができ、計算関連サービスを提供するために使用されることができる。いくつかの実施形態で、再構成可能な処理コア504、及びL1/L2キャッシュ506のうちの少なくともいくつかは、ネットワーク計算サブシステム104についてのリソースとして動作させるように再構成されることができる。いくつかの実施形態で、またSoC502は、ネットワーク計算サブシステム104の部分として、またはサーバ計算サブシステム106の部分として機能するように構成されることができる再構成可能なL3またはラスト・レベル・キャッシュを含むことができる。したがって、SoC502は、ネットワーク計算サブシステム104と関連する専用リソース、及びネットワーク計算サブシステム104へステアリングされる再構成可能なリソースを利用し、高性能ネットワーキング・サービスを提供することができる。
【0069】
1つの実施形態で、管理計算サブシステム108は、サーバ計算サブシステム106へ、再構成可能な処理コア504、及びL1/L2キャッシュ506のうちの1つ以上を割り当てるようにSoC502を構成することができる。たとえば、第二モードで、SoC502は、計算サービスを提供するためにサーバ計算サブシステムとして動作することができる。たとえば、いくつかの実施例で、SoC502は、コンピューティング、データ処理、または他の仮想若しくは物理リソースを提供することのようなサーバ関連機能性のみを提供するために使用されることができ、ネットワーク関連サービスを提供するために使用されることができない。いくつかの実施形態で、再構成可能な処理コア504、及びL1/L2キャッシュ506のうちの少なくともいくつかは、サーバ計算サブシステム106についてのリソースとして動作させるように再構成されることができる。したがって、SoC502は、サーバ計算サブシステム106と関連する専用リソース、及びサーバ計算サブシステム106へステアリングされる再構成可能なリソースを利用し、高性能計算サービスを提供することができる。
【0070】
ステアリング部508は、ネットワーク計算サブシステム104へ、またはサーバ計算サブシステム106へ再構成可能なメモリ・コントローラ510内の1つ以上のメモリ・コントローラをステアリングするように構成されることができる。たとえば、管理計算サブシステム108は、SoC502のモードに基づき、ネットワーク計算サブシステム104の部分として、またはサーバ計算サブシステム106の部分として機能するように再構成可能なメモリ・コントローラ510を構成することが可能である。いくつかの実施形態で、管理計算サブシステム108は、ステアリング部508へ制御信号を提供し、第一モードでネットワーク計算サブシステム104へ、または第二モードでサーバ計算サブシステム106へ再構成可能なメモリ・コントローラ510をステアリングするように構成されることができる。
【0071】
いくつかの実施形態で、またステアリング部508は、ネットワーク計算サブシステム104(たとえば、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206を介して)へ、またはサーバ計算サブシステム106(たとえば、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220を介して)へ再構成された処理コア504、及びL1/L2キャッシュ506をステアリングするために使用されることができる。
【0072】
ファブリック・ブリッジ506は、物理層へ各リソースをマッピングするルーティング・ファブリックを表現することができる。たとえば、ファブリック・ブリッジ512は、ネットワーク計算サブシステム104、またはサーバ計算サブシステム106と関連することができる、物理層ファブリックへ再構成可能な処理コア504、及びL1/L2キャッシュ506をマッピングすることが可能である。いくつかの実施形態で、ファブリック・ブリッジ512を使用して、再構成可能なメモリ・コントローラ510をネットワーク計算サブシステム104へ、またはサーバ計算サブシステム106へマッピングすることができる。本技術のいくつかの実施形態で、複数の物理層は、各物理層がサブシステムについてのコヒーレント・ファブリックと関連することが可能であるところに存在することができる。たとえば、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、ネットワーク計算サブシステム104についての第一物理層ファブリックを表現することができ、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、サーバ計算サブシステム106についての第二物理層ファブリックを表現することができる。いくつかの実施形態で、それぞれのネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206、及びサーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、リソースへ接続するポートを含むことができる。いくつかの実施形態で、ファブリック・ブリッジ512は、たとえば、リソースのインタフェースを介して、各再構成可能なリソースへ物理的に接続するポートを含むことができる。ファブリック・ブリッジ512は、それぞれの物理層ファブリックのポートへ接続されたリソースをマッピングするように構成されることができる。たとえば、それぞれのネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206、及びサーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、ファブリック・ブリッジ512上のポートへ物理的に接続されるリソースに接続することを許可することが可能である、クロス・バー、メッシュ、リング、または任意の他の適切な実装として実施されることができる。開示された技術の実施形態は、両方の計算サブシステムについてのジッタ及びセキュリティ・リスクを低減することが可能である各計算サブシステムについての物理的に隔離された物理層ファブリックを許可することが可能である。
【0073】
いくつかの実施形態で、ネットワーク計算サブシステム・キャッシュ・コヒーレント・ファブリック206は、第一物理層へネットワーク計算サブシステム104についてのすべての構成されたリソースを隔離することで低減されたジッタ及びセキュリティ懸念事項をもたらすことができ、サーバ計算サブシステム・キャッシュ・コヒーレント・ファブリック220は、第二物理層へサーバ計算サブシステム106についてのすべての構成されたリソースを隔離することで低減されたジッタ及びセキュリティ懸念事項をもたらすことができる。
【0074】
図6Aは、開示された技術のいくつかの実施形態により、再構成可能なリソースを含む第一モードで動作させるように構成されたSoC502を図示する。
【0075】
図6Aで図示されるように、SoC502は、ネットワーク計算サブシステム602、サーバ計算サブシステム106、及び管理計算サブシステム108を含むことができる。いくつかの実施形態で、ネットワーク計算サブシステム602は、図5を参照して考察されるような、ネットワーク計算サブシステム104についての専用リソース、ならびに再構成可能な処理及びメモリ・リソースを含むことができる。たとえば、ネットワーク計算サブシステム602は、ネットワーク計算サブシステム104と関連する専用処理及びメモリ・リソースに加えて、再構成された処理コア504、L1/L2キャッシュ506、及び再構成されたメモリ・コントローラ510を含むことができる。
【0076】
図3Aを参照して先に考察されるように、第一モードで、サーバ計算サブシステム106は、非アクティブである、または構成解除されることができる。たとえば、いくつかの実施例で、サーバ計算サブシステム106のうちの少なくともいくつかの部分は、電源を遮断されることができる。いくつかの実施形態で、第一モードで、SoC502は、ネットワーク計算サブシステム104と関連する専用リソース、ならびにネットワーク計算サブシステム104についてのリソースとして動作させるように構成される再構成可能な処理及びメモリ・リソースを含む、ネットワーク計算サブシステム602として動作することができる。これは、SoC502がより多くのリソースを利用することで高性能ネットワーキング・タスクを実行することを可能にすることができる。
【0077】
図6Bは、開示された技術のいくつかの実施形態により、第二モードで動作させるように構成されるSoC502を図示する。
【0078】
図6Bで図示されるように、SoC502は、ネットワーク計算サブシステム104、サーバ計算サブシステム604、及び管理計算サブシステム108を含むことができる。いくつかの実施形態で、サーバ計算サブシステム604は、図5を参照して考察されるような、サーバ計算サブシステム106についての専用リソース、ならびに再構成可能な処理及びメモリ・リソースを含むことができる。たとえば、サーバ計算サブシステム604は、サーバ計算サブシステム106と関連するリソースに加えて、再構成された処理コア504、L1/L2キャッシュ506、及び再構成されたメモリ・コントローラ510を含むことができる。
【0079】
図3Bを参照して先に考察されるように、第二モードで、ネットワーク計算サブシステム104は、非アクティブである、または構成解除されることができる。たとえば、いくつかの実施例で、ネットワーク計算サブシステム104の少なくともいくつかの部分は、電源を遮断されることができる。いくつかの実施例で、ネットワーク計算サブシステム104の小さい部分は、SoC502について不可欠なネットワーキング機能性を提供するように機能的であることができる。いくつかの実施形態において、第二モードで、SoC502は、サーバ計算サブシステム106と関連する専用リソース、ならびにサーバ計算サブシステム106についてのリソースとして動作させるように構成される再構成可能な処理及びメモリ・リソースを含む、サーバ計算サブシステム604として動作することができる。これは、SoC502がより多くのリソースを利用することで高性能コンピューティング・タスクを実行することを可能にすることができる。
【0080】
図7A−7Cは、インタフェース710を介して通信するように構成されることができる第一SoC、及び第二SoCを含むことができるシステム700を図示する。たとえば、インタフェース710は、PCIeのような標準インタフェースに基づくことができる。第一SoCは、複数のモードのうちの1つで、たとえば、ネットワーク計算サブシステムを動作させる第一モードで、サーバ計算サブシステムを動作させる第二モードで、またはネットワーク計算サブシステム、及びサーバ計算サブシステムの両方を同時に動作させる第三モードで構成されることができる第二SoCと通信するように構成されることができる。
【0081】
図7Aは、本技術の1つの実施形態により、第一モードで動作させるように構成される第二SoCと通信するように第二モードで動作させるように構成される第一SoCを図示する。たとえば、第一SoC702は、計算サービスを提供する第二モードで動作させるように構成されることができる。いくつかの実施形態で、SoC502を第一SoC702、または第二SoC102の適所に使用することができることに留意するであろう。しかしながら、例示目的のみのために、SoC102を第二SoCとして示す。
【0082】
図7Aで図示されるように、第一SoC702は、第二モードで、第二サーバ計算サブシステムとして別の目的のために再利用されるネットワーク計算サブシステムで構成されるSoC102に類似することが可能である。いくつかの実施形態で、SoC702は、第二モードで、ホスト・システム(たとえば、ホスト・システム110)内の汎用プロセッサとして動作させるように構成されることができる。たとえば、いくつかの実施形態で、汎用プロセッサは、任意のプラットフォーム、たとえば、任意のオペレーティング・システムで実行することが可能であることができる。いくつかの実施形態で、汎用プロセッサは、汎用コンピューテーションのようなコンピュータの中央処理装置のほとんどの機能性を実行することが可能であることができ、複数のネットワーキング及びメッセージング・プロトコルを支援することが可能であることができる。SoC702は、第一サーバ計算サブシステム704、第二サーバ計算サブシステム706、及び管理計算サブシステム708を含むことができる。第一サーバ計算サブシステム704は、図4Bを参照して先に考察されるように、サーバ計算サブシステム106に類似することができ、第二サーバ計算サブシステム706は、第二サーバ計算サブシステム414に類似することができる。たとえば、第二サーバ計算サブシステム706は、別の目的のために再利用されたネットワーク計算サブシステムであることができる。管理計算サブシステム708は、図2を参照して先に考察されるような、管理計算サブシステム108に類似することができる。
【0083】
SoC102は、図3Aを参照して先に考察されるような第一モードで動作することができる。たとえば、いくつかの実施形態で、SoC102は、第一SoC702についてのネットワーク・トラフィックを少なくとも管理するためにネットワーク計算サブシステム104を動作させるように構成されることができる。サーバ計算サブシステム106は、非アクティブである、または構成解除されることができる。いくつかの実施例で、サーバ計算サブシステム106の少なくともいくつかの部分は、電源を遮断されることができる。いくつかの実施形態で、第一モードで、SoC102は、ホスト・システムとして動作させるSoC702内のPCIeデバイスでネットワーク計算サブシステム104を動作させるように構成されることができる。たとえば、PCIeデバイスは、図2を参照して考察されるようなサーバI/Oサブシステム224の部分であることができる。このようにして、いくつかの実施形態で、SoC102は、SoC702についてのネットワーク・プロセッサとして動作させることができる。
【0084】
図7Bは、本技術の1つの実施形態により、第二モードで動作させるように構成される第二SoCと通信する第二モードで動作させるように構成される第一SoCを図示する。たとえば、第一SoC702は、図7Aを参照して先に考察されるような計算サービスを提供する第二モードで動作させるように構成されることができる。いくつかの実施形態で、SoC702は、第二モードでホスト・システム(たとえば、ホスト・システム110)内の汎用プロセッサとして動作させるように構成されることができる。
【0085】
図7Bで図示されるように、SoC102は、図3Bを参照して先に考察されるような第二モードで動作することができる。たとえば、SoC102は、計算サービスを提供するためにサーバ計算サブシステム106を動作させるように構成されることができる。ネットワーク計算サブシステム104は、非アクティブである、または構成解除されることができる。いくつかの実施例で、ネットワーク計算サブシステム104の少なくともいくつかの部分は、電源を遮断されることができる。いくつかの実施形態で、第二モードで、SoC102は、ホスト・システムとして動作させるSoC702内のPCIeデバイスでサーバ計算サブシステム106を動作させるように構成されることができる。たとえば、PCIeデバイスは、図2を参照して考察されるようなサーバI/Oサブシステム224の部分であることができる。したがって、SoC702は、PCIeインタフェースを介してサーバ計算サブシステム106と通信することが可能である汎用プロセッサとして動作することが可能である。たとえば、いくつかの実施形態で、サーバ計算サブシステム106は、第一SoC702の作業負荷のいくらかを軽減するために使用されることができる。いくつかの実施例で、サーバ計算サブシステム106と併せて第二モードで構成される第一SoC702は、高性能計算サービスを提供することができる。たとえば、第一SoC702は、迅速にターンアラウンド・サービスを処理することに集中することができ、サーバ計算サブシステム106への低性能作業負荷を軽減するため、システムのスループットを向上させることができる。
【0086】
図7Cは、本技術の1つの実施形態により、第三モードで動作させるように構成される第二SoCと通信するように第二モードで動作させるように構成される第一SoCを図示する。たとえば、第一SoC702は、図7Aを参照して先に考察されるような計算サービスを提供するように第二モードで動作させるように構成されることができる。いくつかの実施形態で、SoC702は、第二モードでホスト・システム(たとえば、ホスト・システム110)内の汎用プロセッサとして動作させるように構成されることができる。
【0087】
図7Cで図示されるように、SoC102は、図3Cを参照して先に考察されるような第三モードで動作することができる。たとえば、SoC102は、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106を同時に動作させるように構成されることができる。したがって、SoC702は、PCIeインタフェースを介してネットワーク計算サブシステム104、及びサーバ計算サブシステム106と通信することが可能である汎用プロセッサとして動作することが可能である。いくつかの実施形態で、SoC702は、図2を参照して先に考察されるように、ネットワークI/Oサブシステム210(たとえば、インタフェース236)を介してネットワーク計算サブシステム104と、及びサーバI/Oサブシステム224(たとえば、インタフェース238)を介してサーバ計算サブシステム106と通信することが可能である。
【0088】
図8は、本技術の1つの実施形態により、複数のSoCを含むシステム800を図示する。第一SoCは、本技術の1つの実施形態により、PCIeインタフェースを使用して1つ以上のSoCと通信するように構成されることが可能であるネットワーク計算サブシステムとして動作させるように構成されることが可能である。いくつかの実施形態で、第一SoCは、第三者SoC、たとえば、汎用プロセッサを含むSoCであることが可能である第二SoCと通信するように構成されることができる。
【0089】
SoC802は、ネットワーク・トラフィックを少なくとも管理するためにネットワーク計算サブシステムを動作させるように第一モードで構成されることができる。たとえば、SoC802は、図4Aを参照して先に考察されるように第一ネットワーク計算サブシステム804、及び第二ネットワーク計算サブシステム806を含むことができる。第一ネットワーク計算サブシステム804は、第一ネットワーク計算サブシステム404に類似することができ、ネットワーク・トラフィックを少なくとも管理するために構成されることができる。第二ネットワーク計算サブシステム806は、別の目的のために再利用されたサーバ計算サブシステム、たとえば、サーバ計算サブシステム106であることができる。SoC802は、第一ネットワーク計算サブシステム804、及び第二ネットワーク計算サブシステム806と関連するリソースを利用することで高性能ネットワーキング・サービスを提供するように構成されることができる。
【0090】
いくつかの実施形態で、SoC802は、1つ以上のサーバについてのネットワーク・プロセッサとして動作することができる。たとえば、SoC802は、サーバ・サブシステムとして構成される1つ以上のSoC、たとえば、SoC808、SoC820、及びSoC832と通信するように構成されることができる。たとえば、それぞれのSoC808、820及び832は、計算サービスを提供するためのサーバ計算サブシステムとして動作させる、第二モードで動作させるように構成されることができる。SoC808は、第一サーバ計算サブシステム810、及び第二サーバ計算サブシステム812を含むことができる。たとえば、第二サーバ計算サブシステム812は、4Bを参照して先に考察されるような別の目的のために再利用されたネットワーク計算サブシステムであることができる。SoC820は、第一サーバ計算サブシステム822、及び第二サーバ計算サブシステム824を含むことができ、第二サーバ計算サブシステム824は、別の目的のために再利用されたネットワーク計算サブシステムであることができる。SoC832は、第一サーバ計算サブシステム834、及び第二サーバ計算サブシステム836を含むことができ、第二サーバ計算サブシステム836は、別の目的のために再利用されたネットワーク計算サブシステムであることができる。SoC808、820及び832が処理及びメモリ・リソースの同一の、または異なる構成を有することができることに留意する。さらに、いくつかの実施形態で、SoC808、820及び832のうちのいずれかは、唯一のサーバ計算サブシステムを含むことができる(たとえば、他のサーバ計算サブシステムが非アクティブであることができる)。いくつかの実施形態で、SoC808、820及び832のうちの1つ以上は、図6Bを参照して考察されるような、SoC502に類似することができる。
【0091】
SoC808は、第一サーバ計算サブシステム810、及びSoC802間のインタフェース816、ならびに第二サーバ計算サブシステム818、及びSoC802間のインタフェース818を含むことができる。いくつかの実施形態で、インタフェース816及び818は、PCIeまたはイーサネット・インタフェースであることができる。またSoC808は、ソリッド・ステート・ドライブ、DRAMなど(図示せず)のような外部メモリについてのインタフェース814を含むことができる。いくつかの実施形態で、インタフェース814は、PCIeインタフェースであることができる。またSoC808は、SATAコントローラ、GPIO、I2Cなどのような他のI/Oデバイスについてのインタフェースを含むことができる。SoC820は、インタフェース826、828及び830を含むことができ、SoC832は、インタフェース838、840及び842を含むことができる。SoC820、及びSoC832についてのインタフェースは、SoC808についてのそれぞれのインタフェースに類似することができる。いくつかの実施形態で、SoC808、820及び832は、同一のSoCのインスタンスであることができる、または異なるSoCであることができる。
【0092】
いくつかの実施形態で、SoC802は、第三者により提供されるSoC(たとえば、ARM(登録商標)サーバに基づくSoCのような汎用SoC)と通信するように構成されることができる。たとえば、いくつかの実施形態で、SoC802は、PCIex4/x8スロットを使用して4つの、または8つのSoCまでと通信することができる。いくつかの実施形態で、SoC802、及びSoC808、820、832は、簡略化のために図8で示されない、図2を参照して先に考察されるような、管理計算サブシステム、共有リソース・サブシステムなどのような他のコンポーネントを含むことができる。
【0093】
管理計算サブシステム108は、マルチコア・プロセッサ902、L1/L2キャッシュ904、ネットワーク・インタフェース部906、プライベート・メモリ908、周辺デバイス910、及びコンピュータ可読記憶媒体912を含むことができる。
【0094】
マルチコア・プロセッサ902は、ARM(登録商標)によるA57のような2つ以上のプロセッサ・コアを含むことができる。いくつかの実施形態で、シングル・コア・プロセッサは、マルチコア・プロセッサ902の適所に使用されることができる。L1/L2キャッシュ904は、マルチコア・プロセッサ902の内部に、または外部にあることができ、すべてのプロセッサ・コアにより共有されることができる。マルチコア・プロセッサ902は、コンピュータ可読記憶媒体912に格納されることができる複数の命令を実行するように構成されることができる。たとえば、コンピュータ可読媒体は、複数のモードのうちの1つ、たとえば、第一モード、第二モード、または第三モードで動作させるようにSoC(たとえば、SoC102)を構成する命令を含むことができる。コンピュータ可読記憶媒体912は、非一時的であることができる。いくつかの実施形態で、コンピュータ可読記憶媒体は、限定されないが、パラメータ・ランダム・アクセス・メモリ(PRAM)、SRAM、DRAM、RAM、読み出し専用メモリ(ROM)、電気的に消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュ・メモリ、若しくは他のメモリ技術、コンパクト・ディスク(CD)−ROM、デジタル・ビデオ・ディスク(DVD)、若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または所望の情報を格納するために使用されることが可能であり、マルチコア・プロセッサ902によりアクセスされることが可能である任意の他のメディアを含むことができる。いくつかの実施形態で、コンピュータ可読記憶媒体912は、周辺デバイス910の部分であることができる。L1/L2キャッシュ904は、一時的なデータ・ストレージについてのデータ・キャッシュであることができる。
【0095】
ネットワーク・インタフェース部906は、管理計算サブシステム108がネットワークへ接続することを可能にすることができる。たとえば、ネットワーク・インタフェース部906は、管理計算サブシステム108がイーサネットのようなネットワークへ接続することを可能にすることができるイーサネットMAC(媒体アクセス制御)を含むことができる。いくつかの実施例で、イーサネットMACは、ネットワークへ接続するためのPHY(物理層)デバイスへインタフェースで接続するイーサネット・ポートを提供することができる。いくつかの実施形態で、管理計算サブシステム108は、SoCを構成するためのモードを決定するためにネットワーク経由で外部エンティティ、またはシステムと通信することが可能である。
【0096】
プライベート・メモリ908は、管理計算サブシステム108のプライベート使用のためにメモリを含むことができる。プライベート・メモリ908は、ランダム・アクセス・メモリ(たとえば、SRAMまたはDRAM)のような揮発性メモリを含むことができる。たとえば、管理計算サブシステム108は、一時的なデータ・ストレージのためのプライベート・メモリ908を使用することができる。
【0097】
周辺デバイス910は、管理計算サブシステム108のためのプライベート周辺デバイスを含むことができる。いくつかの実施形態で、いくつかのプライベート周辺デバイス910は、SoC102の異なるサブシステムのリブート及び電源管理のためのデバイスを含むことができる。たとえば、周辺デバイス910は、他のサブシステムに電源を投入する前に信頼の起点を確立するために電源投入で実行することが可能であるブート・ファームウェアを含む信頼できる管理モジュールを含むことができる。いくつかの実施形態で、電源管理は、電圧操作、クロック操作、または任意の他の適切な方法を通して提供されることができる。
【0098】
いくつかの実施形態で、管理計算サブシステム108は、モードに基づき、ネットワーク計算サブシステム104、またはサーバ計算サブシステム106の少なくともいくつかの部分の電源を遮断するように構成されることができる。たとえば、1つの実施形態において、第一モードで、SoC102は、ネットワーク計算サブシステム104を動作させることができるため、サーバ計算サブシステム106の少なくともいくつかの部分は、たとえば、利用される可能性がない計算集約型ロジックの電源を遮断されることができる。同様に、別の実施形態において、第二モードで、SoC102は、サーバ計算サブシステム106を動作させることができるため、ネットワーク計算サブシステム104の少なくともいくつかの部分は、たとえば、利用される可能性がないネットワーク集約型ロジックの電源を遮断されることができる。
【0099】
いくつかの実施形態で、管理計算サブシステム108は、SoC202全体のコールド・パワー・オン時に実行する最初であるように構成されることができる。いくつかの実施例で、管理計算サブシステム108は、それらが電源を投入される前に他のサブシステムについての信頼の起点を確立するように最初に電源を投入されることができる。たとえば、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106についてのブート・プロセスは、管理計算サブシステム108についてのコア・ブート下で階層的にみなされることができる。いくつかの実施形態で、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106で後に実行するソフトウェアは、ホスト・システム114と関連する秘密鍵、またはホスト・システム114により提供される特定のサービスを使用して署名されている場合に管理計算サブシステム108により認証されていることができる。これは、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106プロセスの両方が信頼でき、独立したブート・ローダを介してブートすることを可能にすることができる。
【0100】
いくつかの実施形態で、管理計算サブシステム108は、ネットワーク計算サブシステム104、及びサーバ計算サブシステム106の両方の運転する動作に影響を与えることなく、別個のリセット・ラインでリセット/リブートされることができる。
【0101】
ネットワークI/Oサブシステム210は、バス・インタフェース部1002、ネットワーク・インタフェース部1004、及びI/O周辺部1006を含むことができる。
【0102】
バス・インタフェース部1002は、内部または外部コンポーネントとの通信のために1つ以上のバス・インタフェースを含むことができる。たとえば、バス・インタフェース部1002は、ホスト・システム110と通信する第一インタフェース、たとえば、インタフェース236を含むことができる。いくつかの実施形態で、第一インタフェースは、PCIeインタフェースであることができる。たとえば、バス・インタフェース部1002は、他のPCIeポートへ接続する1つ以上のPCIeポートを含むことができる。バス・インタフェース部1002は、ルート・コンプレックス(RC)・ポート、及びエンドポイント・ポート(EP)を含むことができる。いくつかの実施形態で、ネットワーク計算サブシステム104は、インタフェース236を使用して、ネットワークI/Oサブシステム210内のPCIeポート、及びホスト・システム110内のPCIeポートを介してホスト・システム110と通信することができる。いくつかの実施形態で、SoC102は、ホスト・システム110内のPCIeデバイスに第一モードでネットワーク計算サブシステム104として動作させるように構成される。バス・インタフェース部1002は、サーバ計算サブシステム106と接続する第二インタフェース、たとえば、インタフェース234を含むことができる。たとえば、インタフェース234は、PCIeインタフェースであることができ、バス・インタフェース部1002は、PCIeインタフェースを介してサーバI/Oサブシステム224内のPCIeポートへ接続することができる。
【0103】
ネットワーク・インタフェース部1004は、ネットワークへ接続する第三インタフェースを含むことができる。いくつかの実施形態で、ネットワーク・インタフェース部1004は、イーサネット・ネットワークへ接続するための1つ以上のイーサネットMAC(たとえば、10/25/40/50Gb/sec)を含むことができる。いくつかの実施例で、イーサネットMACは、ネットワークへ接続するためのPHY(物理層)デバイスへインタフェースで接続するためにイーサネット・ポートを提供することができる。
【0104】
I/O周辺部1006は、1つ以上の周辺デバイスを含むことができる。たとえば、I/O周辺部1006は、UART、I2C、GPIO、SATAコントローラ、SERDES(シリアライズ・デシリアライズ)インタフェースなどのような1つ以上の周辺デバイスを含むことができる。
【0105】
サーバI/Oサブシステム224は、バス・インタフェース部1102、ネットワーク・インタフェース部1104、及びI/O周辺部1106を含むことができる。
【0106】
バス・インタフェース部1102は、内部または外部コンポーネントとの通信用の1つ以上のバス・インタフェースを含むことができる。たとえば、バス・インタフェース部1102は、ホスト・システム110と通信する第一インタフェース、たとえば、インタフェース238を含むことができる。いくつかの実施形態で、第一インタフェースは、PCIeインタフェースであることができる。たとえば、バス・インタフェース部1102は、他のPCIeポートへ接続するために1つ以上のPCIeポートを含むことができる。バス・インタフェース部1102は、ルート・コンプレックス(RC)・ポート、及びエンドポイント・ポート(EP)を含むことができる。いくつかの実施形態で、サーバ計算サブシステム106は、インタフェース238を使用して、サーバI/Oサブシステム224内のPCIeポート、及びホスト・システム110内のPCIeポートを介してホスト・システム110と通信することができる。いくつかの実施形態で、SoC102は、ホスト・システム110内のPCIeデバイスに第二モードでサーバ計算サブシステム106を動作させるように構成される。バス・インタフェース部1102は、ネットワーク計算サブシステム104と接続する第二インタフェース、たとえば、インタフェース234を含むことができる。たとえば、バス・インタフェース部1102は、PCIeインタフェースを介してネットワークI/Oサブシステム210内のPCIeポートへ接続することができる。
【0107】
ネットワーク・インタフェース部1104は、ネットワークへ接続するための第三インタフェースを含むことができる。いくつかの実施形態で、ネットワーク・インタフェース部1104は、1つ以上のイーサネットMAC(たとえば、10/25/40/50Gb/sec)を含み、イーサネット・ネットワークへ接続することができる。いくつかの実施例で、イーサネットMACは、ネットワークへ接続するためのPHY(物理層)デバイスへインタフェースで接続するイーサネット・ポートを提供することができる。
【0108】
I/O周辺部1106は、1つ以上の周辺デバイスを含むことができる。たとえば、I/O周辺部1106は、UART、I2C、GPIO、SATAコントローラ、SERDES(シリアライズ・デシリアライズ)インタフェースなどのような1つ以上の周辺デバイスを含むことができる。いくつかの実施形態で、I/O周辺部906は、図10を参照して考察されるI/O周辺部1006と異なるタイプ及び数のI/Oデバイスを含むことができる。たとえば、いくつかの実施例で、I/O周辺部1106は、I/O周辺部1006と比較して、より多くのSATAコントローラを含むことができる。いくつかの実施例で、I/O周辺部1106のみは、GPIOを含むことができ、I/O周辺部1006のみは、UARTを含むことができる。
【0109】
本技術の実施形態で、共有リソース・サブシステム230は、処理状態を有する可能性がないコンポーネントを含むことができる。共有リソース・サブシステム230は、メモリ・モジュール1202、ランダム生成モジュール1204、通信メールボックス1206、及びスクラッチパッド・メモリ・モジュール1208を含むことができる。
【0110】
メモリ・モジュール1202は、フラッシュ・メモリのような不揮発性メモリ・ストレージを含むことができる。たとえば、メモリ・モジュール1202は、組み込み型マルチメディア・コントローラ(eMMC)、またはセキュア・デジタル(SD)を含み、低レベル・フラッシュ・メモリ管理を提供することができる。いくつかの実施形態で、メモリ・モジュール1202を使用して、制御コード、たとえば、BIOS(ベーシック入出力システム)、ブート・ローダなどを格納することができる。たとえば、メモリ・モジュール1202は、両方の計算サブシステムにより共有されることができるコードを含むことができる。
【0111】
ランダム生成モジュール1204は、数字または記号のランダム・シーケンスを生成するように構成されることができる。たとえば、乱数は、データの暗号化のような暗号化アプリケーション、または任意のこれらのようなアプリケーションのために使用されることができる。いくつかの実施形態で、ランダム生成モジュール1204を使用して、電源投入、またはリブート後に各計算サブシステムに電源を投入する前に各計算サブシステムの認証のために管理計算サブシステム108により使用されることができる、乱数、またはランダム・シーケンスを生成することができる。
【0112】
通信メールボックス1206を使用して、2つのサブシステムと関連する異なるプロセス間の通信を容易にすることができる。たとえば、メッセージ受け渡し、同期、共有メモリ、及びリモート・プロシージャ・コール(RPC)のような、さまざまな機能のために、データ交換用にプロセス間通信モジュールとして通信メールボックス1206を使用することができる。
【0113】
スクラッチパッド・メモリ・モジュール1208は、両方のサブシステムにより使用されることができる一時的なデータ・ストレージのために使用されることができる。いくつかの実施形態で、スクラッチパッド・メモリ・モジュール1208は、迅速な取得用の少量のデータ、たとえば、命令、または中間値を格納する高速メモリ(たとえば、2MB SRAM)を含むことができる。
【0114】
開示された技術の実施形態は、システム・オン・チップ(SoC)を動作させるためにさまざまな構成及びモードを提供することが可能である。開示された技術の異なる実施形態で、SoCは、ネットワーキング・サービスのみを提供する第一モードで、計算サービスのみを提供する第二モードで、またはネットワーキング及び計算サービスの両方を同時に提供する第三モードで動作することができる。いくつかの実施形態で、第一計算サブシステムは、高性能ネットワーキング・サービス、または高性能計算サービスを提供する第二計算サブシステムとして別の目的のために再利用されることができる。いくつかの実施形態で、再構成可能な処理及びメモリ・リソースは、SoCが動作させているモードにより、第一計算サブシステムへ、または第二計算サブシステムへステアリングされることが可能である。いくつかの他の実施形態で、構成解除された計算サブシステムの処理及びメモリ・リソースは、アクティブ計算サブシステム用のリソースとして動作させるように再構成されることができる。したがって、開示された技術のさまざまな実施形態は、リソースの効率的な利用が高性能ネットワーキング・サービス、または高性能コンピューティング・サービスを提供することを可能にすることができる。さらに、開示された技術のいくつかの実施形態は、第一SoCを第一モードでネットワーク・プロセッサとして構成することが可能であり、第二SoCを第二モードでサーバとして構成することが可能である複数のSoCを含むシステムを提供する。
【0115】
図13は、少なくとも1つの例示的な実施形態により、1つ以上のネットワーク経由で接続される1つ以上のサービス・プロバイダ・コンピュータ、及び/またはユーザ・デバイスを含む、本明細書に記述される特徴及びシステムについての例示的なアーキテクチャを図示する。図1−12で考察されるデバイスは、図13で記述されるコンピューティング・デバイスの1つ以上のコンポーネントを使用することができる、または図13で記述される1つ以上のコンピューティング・デバイスを表現することができる。アーキテクチャ1300で、1人以上のユーザ1302は、1つ以上のネットワーク1308を介して、アプリケーション1306(たとえば、ウェブ・ブラウザ、またはモバイル・デバイス・アプリケーション)にアクセスするためにユーザ・コンピューティング・デバイス1304(1)−(N)(集合的に、ユーザ・デバイス1304)を利用することができる。いくつかの態様で、アプリケーション1306は、コンピューティング・リソース・サービス、またはサービス・プロバイダにより、ホストされる、管理される、及び/または提供されることができる。1つ以上のサービス・プロバイダ・コンピュータ1310は、ユーザ(複数可)1302がインタラクトすることができるユーザ・デバイス1304で実行するように構成されるネイティブ・アプリケーションを提供することができる。サービス・プロバイダ・コンピュータ(複数可)1310は、いくつかの実施例で、限定されないが、クライアント・エンティティ、低レイテンシ・データ・ストレージ、デュラブル・データ・ストレージ、データ・アクセス、管理、仮想化、クラウド・ベース・ソフトウェア・ソリューション、電子コンテンツ・パフォーマンス管理などのようなコンピューティング・リソースを提供することができる。またサービス・プロバイダ・コンピュータ(複数可)1310は、ウェブ・ホスティング、コンピュータ・アプリケーション開発及び/または実装プラットフォーム、前述のものの組み合わせ、または同様のものをユーザ(複数可)1302へ提供するように動作可能であることができる。サービス・プロバイダ・コンピュータ(複数可)1310は、いくつかの実施例で、1つ以上の第三者コンピュータ1312と通信することができる。
【0116】
いくつかの実施例で、ネットワーク(複数可)1308は、ケーブル・ネットワーク、インターネット、無線ネットワーク、セルラ・ネットワーク、及び他のプライベート及び/またはパブリック・ネットワークのような、多くの異なるタイプのネットワークのうちのいずれかの1つ、または組み合わせを含むことができる。図示された実施例は、ネットワーク(複数可)1308経由でアプリケーション1306にアクセスするユーザ(複数可)1302を表現するが、記述された技術は、ユーザ(複数可)1302がキオスクを介して、または任意の他の方式で、固定電話経由でユーザ・デバイス(複数可)1304を介してサービス・プロバイダ・コンピュータ(複数可)1310とインタラクトする実施例で、等しく適用されることができる。また、記述された技術が非クライアント/サーバ配置(たとえば、ローカルに格納されたアプリケーションなど)でと同様に、他のクライアント/サーバ配置(たとえば、セット・トップ・ボックスなど)で適用されることができることに留意する。
【0117】
上記で簡潔に記述されるように、アプリケーション1306は、ユーザ(複数可)1302がウェブ・コンテンツ(たとえば、ウェブ・ページ、音楽、ビデオなど)にアクセスすることのような、サービス・プロバイダ・コンピュータ(複数可)1310とインタラクトすることを可能にすることができる。サーバのクラスタ内に、またはサーバ・ファームとして配置されるかもしれない、サービス・プロバイダ・コンピュータ(複数可)1310は、アプリケーション1306、及び/またはクラウド・ベース・ソフトウェア・サービスをホストすることができる。また、他のサーバ・アーキテクチャを使用して、アプリケーション1306をホストすることができる。アプリケーション1306は、多くのユーザ1302からの要求を処理し、応答して、さまざまなアイテム・ウェブ・ページを提供することが可能であることができる。アプリケーション1306は、ソーシャル・ネットワーキング・サイト、オンライン・リテーラ、情報サイト、ブログ・サイト、検索エンジン・サイト、ニュース、及びエンターテイメント・サイト、ならびにその他のものを含むユーザ・インタラクションを支援する任意のタイプのウェブサイトを提供することが可能である。上記で考察されるように、記述された技術は、ユーザ・デバイス(複数可)1304で実行する他のアプリケーションでのような、アプリケーション1306外部で同様に実装されることが可能である。
【0118】
ユーザ・デバイス(複数可)1304は、限定されないが、モバイル・フォン、スマート・フォン、パーソナル・デジタル・アシスタント(PDA)、ラップトップ・コンピュータ、デスクトップ・コンピュータ、シンクライアント・デバイス、タブレットPC、電子ブック(e−book(登録商標))・リーダなどのような、任意のタイプのコンピューティング・デバイスであることができる。いくつかの実施例で、ユーザ・デバイス(複数可)1304は、ネットワーク(複数可)1308を介して、または他のネットワーク接続を介してサービス・プロバイダ・コンピュータ(複数可)1310と通信していることができる。加えて、ユーザ・デバイス(複数可)1304は、サービス・プロバイダ・コンピュータ(複数可)1310(たとえば、サービス・プロバイダ・コンピュータ1310と統合されたコンソール・デバイス)の部分により管理される、これにより制御される、またはその他の方法をされる分散型システムの部分であることができる。
【0119】
1つの例示的な構成で、ユーザ・デバイス(複数可)1304は、少なくとも1つのメモリ1314、及び1つ以上の処理部(またはプロセッサ(複数可))1316を含むことができる。プロセッサ(複数可)1316は、ハードウェア、コンピュータ実行可能命令、ファームウェア、またはそれらの組み合わせで必要に応じて実装されることができる。プロセッサ(複数可)1316のコンピュータ実行可能命令、またはファームウェア実装は、任意の適切なプログラミング言語で書き込まれたコンピュータ実行可能、または機械実行可能命令を含み、記述されたさまざまな機能を実行することができる。また、ユーザ・デバイス(複数可)1304は、ユーザ・デバイス(複数可)1304と関連する地理的位置情報を提供する、及び/または記録するためのジオロケーション・デバイス(たとえば、全地球測位システム(GPS)・デバイス、または同様のもの)を含むことができる。
【0120】
メモリ1314は、これらのプログラムの実行中に生成されたデータと同様に、プロセッサ(複数可)1316でロード可能で実行可能であるプログラム命令を格納することができる。ユーザ・デバイス(複数可)1304の構成及びタイプにより、メモリ1314は、揮発性(ランダム・アクセス・メモリ(RAM)のような)及び/または不揮発性(読み出し専用メモリ(ROM)、フラッシュ・メモリなどのような)であることができる。また、ユーザ・デバイス(複数可)1304は、限定されないが、磁気ストレージ、光学ディスク、及び/またはテープ・ストレージを含む、追加のリムーバブル・ストレージ、及び/または非リムーバブル・ストレージを含むことができる。ディスク・ドライブ及びそれらの関連したコンピュータ可読媒体は、コンピューティング・デバイスのための、コンピュータ可読命令、データ構造、プログラム・モジュール、及び他のデータの不揮発性ストレージを提供することができる。いくつかの実装で、メモリ1314は、スタティック・ランダム・アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、またはROMのような、複数の異なるタイプのメモリを含むことができる。
【0121】
より詳細にメモリ1314のコンテンツに目を向けると、メモリ1314は、ブラウザ・アプリケーション1306、または専用アプリケーション(たとえば、スマート・フォン・アプリケーション、タブレット・アプリケーションなど)を介してのような、少なくともユーザが提供した入力要素、または電子サービス・ウェブ・ページを含む本明細書で開示された特徴を実装するためのオペレーティング・システム、及び1つ以上のアプリケーション・プログラムまたはサービスを含むことができる。ブラウザ・アプリケーション1306は、サービス・プロバイダ・コンピュータ(複数可)1310とインタラクトするためのウェブサイト、または他のインタフェースを受信する、格納する、及び/または表示するように構成されることができる。加えて、メモリ1314は、限定されないが、ユーザID、パスワード、及び/または他のユーザ情報のようなアクセス・クレデンシャル、及び/または他のユーザ情報を格納することができる。いくつかの実施例で、ユーザ情報は、限定されないが、デバイスID、クッキー、IPアドレス、位置、または同様のもののようなアカウント・アクセス要求を認証するための情報を含むことができる。加えて、ユーザ情報は、ユーザ・デバイス1304により取得される、秘密の質問、または地理的位置へユーザが提供した応答を含むことができる。
【0122】
いくつかの態様で、また、サービス・プロバイダ・コンピュータ(複数可)1310は、限定されないが、モバイル・フォン、スマート・フォン、パーソナル・デジタル・アシスタント(PDA)、ラップトップ・コンピュータ、デスクトップ・コンピュータ、サーバ・コンピュータ、シンクライアント・デバイス、タブレットPCなどのような、いずれかのタイプのコンピューティング・デバイスであることができる。加えて、いくつかの実施形態で、ホストされたコンピューティング環境で実装された1つ以上の仮想マシンがサービス・プロバイダ・コンピュータ(複数可)1310を実行することに留意するべきである。ホストされたコンピューティング環境は、1つ以上の迅速にプロビジョニングされリリースされたコンピューティング・リソースを含むことができ、コンピューティング・リソースは、コンピューティング、ネットワーキング、及び/またはストレージ・デバイスを含むことができる。また、ホストされたコンピューティング環境は、クラウド・コンピューティング環境と言われることができる。いくつかの実施例で、サービス・プロバイダ・コンピュータ(複数可)1310は、ネットワーク(複数可)1308を介して、または他のネットワーク接続を介してユーザ・デバイス(複数可)1304、及び/または他のサービス・プロバイダと通信していることができる。サービス・プロバイダ・コンピュータ(複数可)1310は、サーバ・ファームとして、または互いと関連しない個々のサーバとして、クラスタ内に配置されるかもしれない、1つ以上のサーバを含むことができる。これらのサーバは、統合された分散コンピューティング環境の部分として本明細書に記述されるキーワード分類及び格付け機能サービスを実装するように構成されることができる。
【0123】
1つの例示的な構成で、サービス・プロバイダ・コンピュータ(複数可)1310は、少なくとも1つのメモリ1318、及び1つ以上の処理部(またはプロセッサ(複数可))1320を含むことができる。プロセッサ(複数可)1320は、ハードウェア、コンピュータ実行可能命令、ファームウェア、またはそれらの組み合わせで必要に応じて実装されることができる。プロセッサ(複数可)1320のコンピュータ実行可能命令、またはファームウェア実装は、任意の適切なプログラミング言語で書き込まれたコンピュータ実行可能、または機械実行可能命令を含み、記述されたさまざまな機能を実行することができる。
【0124】
いくつかの実施例で、ハードウェア・プロセッサ(複数可)1320は、シングル・コア・プロセッサ、またはマルチコア・プロセッサであることができる。マルチコア・プロセッサは、同一のプロセッサ内に複数の処理部を含むことができる。いくつかの実施形態で、マルチコア・プロセッサは、マルチコア間の、バス、及び第二または第三レベルのキャッシュのような、特定のリソースを共有することができる。いくつかの実施例で、また、シングル・コア、またはマルチコア・プロセッサ内の各コアは、複数の実行中の論理プロセッサ(またはスレッド)を含むことができる。このようなコア(複数の論理プロセッサを支援する)で、実行パイプライン、及びより低レベル・キャッシュのいくつかのステージも共有することができる。
【0125】
メモリ1318は、これらのプログラムの実行中に生成されたデータと同様に、プロセッサ(複数可)1320でロード可能で実行可能であるプログラム命令を格納することができる。サービス・プロバイダ・コンピュータ(複数可)1310の構成及びタイプにより、メモリ1318は、揮発性(RAMのような)、及び/または不揮発性(ROM、フラッシュ・メモリなどのような)であることができる。また、サービス・プロバイダ・コンピュータ(複数可)1310、またはサーバは、リムーバブル・ストレージ、及び/または非リムーバブル・ストレージを含むことができる、追加のストレージ1322を含むことができる。この追加のストレージ1322は、限定されないが、磁気ストレージ、光学ディスク、及び/またはテープ・ストレージを含むことができる。ディスク・ドライブ、及びそれらの関連するコンピュータ可読媒体は、コンピューティング・デバイス用の、コンピュータ可読命令、データ構造、プログラム・モジュール、及び他のデータの不揮発性ストレージを提供することができる。いくつかの実装で、メモリ1318は、SRAM、DRAM、またはROMのような、複数の異なるタイプのメモリを含むことができる。
【0126】
リムーバブル及び非リムーバブルの両方の、メモリ1318、追加のストレージ1322は、コンピュータ可読記憶媒体のすべての実施例である。たとえば、コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータのような情報の格納のための任意の方法または技術で実装される、揮発性または不揮発性、リムーバブルまたは非リムーバブル・メディアを含むことができる。メモリ1318、及び追加のストレージ1322は、コンピュータ・ストレージ・メディアのすべての実施例である。サービス・プロバイダ・コンピュータ(複数可)1310内に存在することができる、追加のタイプのコンピュータ・ストレージ・メディアは、限定されないが、PRAM、SRAM、DRAM、RAM、ROM、EEPROM、フラッシュ・メモリ、若しくは他のメモリ技術、CD−ROM、DVD、若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または所望の情報を格納するために使用されることが可能であり、サービス・プロバイダ・コンピュータ(複数可)1310によりアクセスされることが可能である任意の他のメディアを含むことができる。また上記のうちのいずれかの組み合わせをコンピュータ可読媒体の範囲内に含む。
【0127】
代替に、コンピュータ可読通信媒体は、コンピュータ可読命令、プログラム・モジュール、または搬送波若しくは他の伝送のような、データ信号内で伝送される他のデータを含むことができる。しかしながら、本明細書で使用されるように、コンピュータ可読記憶媒体は、コンピュータ可読通信媒体を含まない。
【0128】
また、サービス・プロバイダ・コンピュータ(複数可)1310は、サービス・プロバイダ・コンピュータ(複数可)1310がネットワーク(複数可)1308で、格納されたデータベース、別のコンピューティング・デバイスまたはサーバ、ユーザ端末、及び/または他のデバイスと通信することを可能にする通信接続(複数可)1324を含むことができる。また、サービス・プロバイダ・コンピュータ(複数可)1310は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、ディスプレイ、スピーカ、プリンタ、及び同様のもののような、I/Oデバイス(複数可)1326を含むことができる。
【0129】
メモリ1318は、オペレーティング・システム1328、1つ以上のデータ・ストア1330、及び/または任意選択で管理計算サブシステム・モジュール1332、ネットワーク計算サブシステム・モジュール1334、及びサーバ計算サブシステム・モジュール1336を含む、本明細書で開示された特徴を実装するための1つ以上のアプリケーション・プログラムまたはサービスを含むことができる。本明細書に記述されたこれらのモジュールは、ソフトウェア・モジュール、ハードウェア・モジュール、またはそれらの適切な組み合わせであることができる。これらのモジュールがソフトウェア・モジュールである場合に、モジュールは、非一時的なコンピュータ可読媒体で具現化され、本明細書に記述されたコンピュータ・システムのうちのいずれか内のプロセッサにより処理されることが可能である。いくつかの実施形態で、図2に戻り参照して、管理計算サブシステム・モジュール1332は、管理計算サブシステム108の機能性を有することが可能であり、ネットワーク計算サブシステム・モジュール1334は、ネットワーク計算サブシステム104の機能性を有することが可能であり、サーバ計算サブシステム・モジュール1336は、サーバ計算サブシステム106の機能性を有することが可能である。記述されたプロセス及びアーキテクチャが任意のユーザ・インタラクションの前にリアルタイムで、または非同期モードで、のいずれか一方で実行されることが可能であることに留意するべきである。これらのモジュールは、図13で提案された方式で構成されることができる、及び/または本明細書に記述された機能は、別個のモジュールとして存在する1つ以上のモジュールにより提供されることが可能である、及び/または本明細書に記述されたモジュール機能は、複数のモジュールに分散されることが可能である。
【0130】
図14は、さまざまな実施形態に従う態様を実装するための例示的な環境1400の態様を図示する。理解されるように、ウェブ・ベース環境を説明のために使用するが、異なる環境を使用し、適切に、さまざまな実施形態を実装することができる。この環境は、適切なネットワーク1404を介して要求、メッセージまたは情報を送受信し、デバイスのユーザへ情報を返送するように動作可能な、任意の適切なデバイスを含むことが可能である、電子クライアント・デバイス1402を含む。このようなクライアント・デバイスの実施例は、パーソナル・コンピュータ、携帯電話、ハンドヘルド・メッセージング・デバイス、ラップトップ・コンピュータ、セット・トップ・ボックス、パーソナル・データ・アシスタント、電子ブック・リーダ、及び同様のものを含む。ネットワークは、イントラネット、インターネット、セルラ・ネットワーク、ローカル・エリア・ネットワーク、若しくは任意の他のこのようなネットワーク、またはそれらの組み合わせを含む、任意の適切なネットワークを含むことが可能である。このようなシステムのために使用されるコンポーネントは、選択されたネットワーク及び/または環境のタイプに少なくとも部分的に依存することが可能である。このようなネットワークを介して通信するためのプロトコル及びコンポーネントは、既知であり、詳細に本明細書で考察されない。ネットワーク経由の通信は、有線または無線接続、及びそれらの組み合わせにより有効にされることが可能である。この実施例で、当業者に明らかであるように、他のネットワークについて同様の目的を果たす代替デバイスを使用することが可能であるが、環境がそこへ応答して要求を受信し、コンテンツを提供するためのウェブ・サーバ1406を含む場合に、ネットワークは、インターネットを含む。
【0131】
例示的な環境は、少なくとも1つのアプリケーション・サーバ1408、及びデータ・ストア1410を含む。適切なデータ・ストアからデータを取得するようなタスクを実行するためにインタラクトすることが可能である、連鎖される、またはその他の方法で構成されることができる、いくつかのアプリケーション・サーバ、層、または他の要素、プロセス、若しくはコンポーネントがあることが可能であることを理解するであろう。本明細書に使用されるように、用語「データ・ストア」は、任意の標準の、分散された、またはクラスタ化された環境で、データ・サーバ、データベース、データ・ストレージ・デバイス、及びデータ・ストレージ・メディアのうちのいずれかの組み合わせ、及びいくつかを含むことができる、データを格納し、これにアクセスし、これを取得することが可能である、任意のデバイス、またはデバイスの組み合わせを指す。アプリケーション・サーバは、アプリケーションのための、データ・アクセス及びビジネス・ロジックの大部分を処理する、クライアント・デバイスについての1つ以上のアプリケーションの態様を実行するために必要に応じてデータ・ストアと統合するための任意の適切なハードウェア及びソフトウェアを含むことが可能である。アプリケーション・サーバは、データ・ストアと協動してアクセス制御サービスを提供し、この実施例で、ハイパーテキスト・マークアップ言語(「HTML」)、拡張可能なマークアップ言語(「XML」)、または別の適切な構造化言語の形式で、ウェブ・サーバによりユーザへ提供されることができる、ユーザへ転送されるテキスト、グラフィックス、オーディオ、及び/またはビデオのようなコンテンツを生成することが可能である。クライアント・デバイス1402、及びアプリケーション・サーバ1408間のコンテンツの配信と同様に、すべての要求及び応答の処理は、ウェブ・サーバにより処理されることが可能である。本明細書で考察される構造化コードを本明細書の他の箇所で考察されるような任意の適切なデバイス、またはホスト・マシンで実行することが可能である場合に、ウェブ及びアプリケーション・サーバが必要とされず、単に例示的なコンポーネントであることを理解するであろう。
【0132】
データ・ストア1410は、特定の態様に関するデータを格納するために、いくつかの別個のデータ・テーブル、データベース、または他のデータ・ストレージ・メカニズム及びメディアを含むことが可能である。たとえば、図示されたデータ・ストアは、プロダクション側にコンテンツを提供するために使用されることが可能である、プロダクション・データ1412、及びユーザ情報1416を格納するためのメカニズムを有する。またデータ・ストアは、報告、分析、または他のこのような目的のために使用されることが可能である、ログ・データ1414を格納するためのメカニズムを有するように示される。必要に応じて、上記で列挙されたメカニズムのうちのいずれかに、またはデータ・ストア1410内の追加のメカニズムに格納されることが可能である、ページ画像情報についてのようなデータ・ストア内に格納されるために、及び権利情報にアクセスするために必要である可能性がある、多くの他の態様があることが可能であることを理解するであろう。データ・ストア1410は、それに関連するロジックを介して、動作可能であり、アプリケーション・サーバ1408から命令を受信し、それに応答してデータを取得する、更新する、またはその他の方法で処理する。1つの実施例で、ユーザは、特定のタイプのアイテムについて検索要求を提示することができる。この事例で、データ・ストアは、ユーザ情報にアクセスし、ユーザのアイデンティティを検証することができ、カタログ詳細情報にアクセスし、そのタイプのアイテムについての情報を取得することが可能である。つぎにこの情報は、ユーザがユーザ・デバイス1402上のブラウザを介して視聴することが可能であるウェブ・ページ上でリストにする結果でのような、ユーザへ返されることが可能である。関心の特定のアイテムについての情報をブラウザの専用ページまたはウィンドウで視聴することが可能である。
【0133】
典型的に各サーバは、そのサーバの一般的な管理及び操作のために実行可能なプログラム命令を提供するオペレーティング・システムを含み、典型的に、サーバのプロセッサにより実行されるときに、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハード・ディスク、ランダム・アクセス・メモリ、読み出し専用メモリなど)を含む。サーバのオペレーティング・システム、及び一般的な機能性についての適切な実装は、既知または市販であり、特に本明細書の開示に照らして、当業者により容易に実施される。
【0134】
1つの実施形態で、この環境は、1つ以上のコンピュータ・ネットワーク、または直接接続を使用して、通信リンクを介して相互接続される、いくつかのコンピュータ・システム及びコンポーネントを利用する、分散コンピューティング環境である。しかしながら、このようなシステムが図14で図示されるものより少ない、またはより多いコンポーネントを含むシステムで等しく良く動作させることが可能であることを当業者は、理解するであろう。このようにして、図14でシステム1400の描写は、本質的に例示であり、本開示の範囲を限定しないとみなされるであろう。
【0135】
さらにさまざまな実施形態は、複数のアプリケーションのうちのいずれかを動作させるために使用されることが可能である、いくつかの事例で、1つ以上のユーザ・コンピュータ、コンピューティング・デバイス、または処理デバイスを含むことが可能である、多種多様なオペレーティング環境で実施されることが可能である。ユーザまたはクライアント・デバイスは、標準オペレーティング・システムを実行するデスクトップまたはラップトップ・コンピュータのような、複数の汎用パーソナル・コンピュータ、ならびにモバイル・ソフトウェアを実行し複数のネットワーキング及びメッセージング・プロトコルを支援することが可能である、セルラ、無線、及びハンドヘルド・デバイスのうちのいずれかを含むことが可能である。このようなシステムは、開発及びデータベース管理のような目的のために、さまざまな市販のオペレーティング・システム、及び他の既知のアプリケーションのいずれかを実行する複数のワークステーションを含むことも可能である。また、これらのデバイスは、ネットワークを介して通信することが可能である、ダミー端末、シンクライアント、ゲーミング・システム、及び他のデバイスのような、他の電子機器を含むことが可能である。
【0136】
ほとんどの実施形態は、伝送制御プロトコル/インターネット・プロトコル(「TCP/IP」)、オープン・システム・インターコネクション(「OSI」)、ファイル転送プロトコル(「FTP」)、ユニバーサル・プラグ・アンド・プレイ(「UpnP」)、ネットワーク・ファイル・システム(「NFS」)、共通インターネット・ファイル・システム(「CIFS」)、及びAppleTalkのような、さまざまな市販のプロトコルのうちのいずれかを使用して通信を支援するために当業者に既知である、少なくとも1つのネットワークを利用する。このネットワークは、たとえば、ローカル・エリア・ネットワーク、ワイドエリア・ネットワーク、仮想プライベート・ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及び任意のそれらの組み合わせであることが可能である。
【0137】
ウェブ・サーバを利用する実施形態で、ウェブ・サーバは、ハイパーテキスト転送プロトコル(「HTTP」)・サーバ、FTPサーバ、共通ゲートウェイ・インタフェース(「CGI」)・サーバ、データ・サーバ、Javaサーバ、及びビジネス・アプリケーション・サーバを含む、さまざまなサーバまたはミッドティア・アプリケーションのうちのいずれかを実行することが可能である。またサーバ(複数可)は、Java(登録商標)、C、C#若しくはC++のような任意のプログラミング言語、またはPerl、Python若しくはTCLのような任意のスクリプト言語、及びそれらの組み合わせで書き込まれた1つ以上のスクリプトまたはプログラムとして実装されることができる、1つ以上のウェブ・アプリケーションを実行することでのような、ユーザ・デバイスからの要求に応答してプログラムまたはスクリプトを実行することが可能であることができる。またサーバ(複数可)は、限定ではなく、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)及びIBM(登録商標)から市販されているそれらを含む、データベース・サーバを含むことができる。
【0138】
この環境は、上記で考察されるような、さまざまなデータ・ストア、ならびに他のメモリ及びストレージ・メディアを含むことが可能である。これらは、コンピュータのうちの1つ以上へローカルに(及び/または常駐の)、またはネットワーク上のコンピュータのうちのいずれか、若しくはすべてからリモートにストレージ・メディアでのような、さまざまな位置にあることが可能である。特定のセットの実施形態で、この情報は、当業者に既知のストレージエリア・ネットワーク(「SAN」)にあることができる。同様に、コンピュータ、サーバ、または他のネットワーク・デバイスに起因する機能を実行するためにいずれかの必要なファイルは、適切にローカルに、及び/またはリモートに格納されることができる。システムは、コンピュータ化デバイスを含み、それぞれのこのようなデバイスは、バスを介して電気的に結合されることができるハードウェア要素を含むことが可能であり、これらの要素は、たとえば、少なくとも1つの中央処理装置(「CPU」)、少なくとも1つの入力デバイス(たとえば、マウス、キーボード、コントローラ、タッチ・スクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(たとえば、表示装置、プリンタまたはスピーカ)を含む。また、このようなシステムは、ディスク・ドライブ、光学ストレージ・デバイス、及びランダム・アクセス・メモリ(「RAM」)または読み出し専用メモリ(「ROM」)のようなソリッドステート・ストレージ・デバイスのような1つ以上のストレージ・デバイス、ならびにリムーバブル・メディア・デバイス、メモリ・カード、フラッシュ・カードなどを含むことができる。
【0139】
また、このようなデバイスは、上述されるような、コンピュータ可読記憶媒体リーダ、通信デバイス(たとえば、モデム、ネットワーク・カード(無線の、または有線の)、赤外線通信デバイスなど)、及びワーキング・メモリを含むことが可能である。コンピュータ可読記憶媒体リーダは、リモートの、ローカルの、固定の、及び/またはリムーバブル・ストレージ・デバイスを表現するコンピュータ可読記憶媒体、及びコンピュータ可読情報を一時的に、及び/またはより永続的に含み、格納し、伝送し、取得するためのストレージ・メディアと接続される、またはこれらを受信するように構成されることが可能である。またシステム、及びさまざまなデバイスは、クライアント・アプリケーション、またはウェブ・ブラウザのような、オペレーティング・システム、及びアプリケーション・プログラムを含む、少なくとも1つのワーキング・メモリ・デバイス内に設置された、複数のソフトウェア・アプリケーション、モジュール、サービス、または他の要素を典型的に含む。代替の実施形態が上述されるものから複数の変形形態を含むことができることを理解するであろう。たとえば、カスタマイズされたハードウェアも使用することができる、及び/または特定の要素をハードウェア、ソフトウェア(アプレットのような、ポータブル・ソフトウェアを含む)、または両方で実装することができる。さらにネットワーク入出力デバイスのような他のコンピューティング・デバイスへの接続を用いることができる。
【0140】
コード、またはコードの部分を含むためのストレージ・メディア、及びコンピュータ可読媒体は、限定されないが、所望の情報を格納するために使用されることが可能であり、システム・デバイスによりアクセスされることが可能である、RAM、ROM、電気的に消去可能プログラマブル読み出し専用メモリ(「EEPROM」)、フラッシュ・メモリ、若しくは他のメモリ技術、コンパクト・ディスク読み出し専用メモリ(「CD−ROM」)、デジタル多目的ディスク(DVD)、若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または任意の他のメディアを含む、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータのような情報のストレージ及び/または伝送用の任意の方法または技術で実装される、揮発性及び不揮発性、リムーバブル及び非リムーバブル・メディアのような、ストレージ・メディア、及び通信メディアを含む、当該技術分野で既知の、または使用される任意の適切なメディアを含むことが可能である。本明細書に提供される本開示及び教示に基づき、当業者は、さまざまな実施形態を実施するために他の方式及び/または方法を理解するであろう。
【0141】
本明細書及び図面は、したがって、制限的ではなく例示的な意味とみなされるであろう。しかしながら、特許請求の範囲で記載されるような本開示のより広い趣旨及び範囲から逸脱することなく、さまざまな修正形態及び変形形態を行うことができることは、明らかであろう。
【0142】
以下の条項を考慮して本開示の実施形態を記述することが可能である。
条項1.システム・オン・チップ(SoC)であって、
ホスト・システムについてのネットワーク・トラフィックを管理するためのネットワーク計算サブシステム、及び
計算サービスを提供するためのサーバ計算サブシステム、
を備え、
前記SoCは、複数のモードのうちの1つで動作させるように構成され、
第一モードで、前記SoCは、前記ネットワーク計算サブシステムを動作させるように構成され、
第二モードで、前記SoCは、前記サーバ計算サブシステムを動作させるように構成され、
第三モードで、前記SoCは、前記ネットワーク計算サブシステム、及び前記サーバ計算サブシステムを同時に動作させるように構成される、
前記SoC。
【0143】
条項2.前記第一モードで、前記SoCは、第二ネットワーク計算サブシステムとして前記サーバ計算サブシステムを別の目的のために再利用するようにさらに構成される、条項1の前記SoC。
【0144】
条項3.前記第二モードで、前記SoCは、第二サーバ計算サブシステムとして前記ネットワーク計算サブシステムを別の目的のために再利用するようにさらに構成される、いずれかの先行条項の前記SoC。
【0145】
条項4.前記SoCは、再構成可能な処理及びメモリ・リソースをさらに備え、前記SoCは、前記再構成可能な処理及びメモリ・リソースのうちの少なくとも部分を割り当て、前記第二モードで前記サーバ計算サブシステムについてのリソースとして動作させる、または前記第一モードで前記ネットワーク計算サブシステムについてのリソースとして動作させるようにさらに構成される、いずれかの先行条項の前記SoC。
【0146】
条項5.システム・オン・チップ(SoC)であって、
複数のモードのうちの1つで動作させるように構成され、
第一モードで、前記SoCは、ネットワーク・トラフィックを管理するためにネットワーク計算サブシステムを動作させるように構成され、
第二モードで、前記SoCは、計算サービスを提供するためにサーバ計算サブシステムを動作させるように構成され、
第三モードで、前記SoCは、前記ネットワーク計算サブシステム、及び前記サーバ計算サブシステムを同時に動作させるように構成される、
前記SoC。
【0147】
条項6.前記第一モードで、前記SoCは、ホスト・システム内のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・デバイス上で前記ネットワーク計算サブシステムを動作させるように構成される、条項5の前記SoC。
【0148】
条項7.前記第二モードで、前記SoCは、ホスト・システム内のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)・デバイス上で前記サーバ計算サブシステムを動作させるように構成される、条項5または6の前記SoC。
【0149】
条項8.前記第二モードで、前記SoCは、ホスト・システムで汎用プロセッサとして動作させるように構成される、条項5−7のうちのいずれかの前記SoC。
【0150】
条項9.前記第一モードで、前記SoCは、前記サーバ計算サブシステムを無効にし、前記サーバ計算サブシステムと関連する処理及びメモリ・リソースを再構成し、前記ネットワーク計算サブシステムについてのリソースとして動作させるようにさらに構成される、条項5−8のうちのいずれかの前記SoC。
【0151】
条項10.前記第一モードで、前記SoCは、第二ネットワーク計算サブシステムとして前記サーバ計算サブシステムを別の目的のために再利用するようにさらに構成される、条項5−9のうちのいずれかの前記SoC。
【0152】
条項11.前記第二モードで、前記SoCは、前記ネットワーク計算サブシステムを無効にし、前記ネットワーク計算サブシステムと関連する処理及びメモリ・リソースを再構成し、前記サーバ計算サブシステムについてのリソースとして動作させるようにさらに構成される、条項5−10のうちのいずれかの前記SoC。
【0153】
条項12.前記SoCは、前記第二モードで第二サーバ計算サブシステムとして前記ネットワーク計算サブシステムを別の目的のために再利用するようにさらに構成される、条項5−11のうちのいずれかの前記SoC。
【0154】
条項13.前記SoCは、再構成可能な処理及びメモリ・リソースを備え、前記SoCは、前記第一モードで前記ネットワーク計算サブシステムへ前記再構成可能な処理及びメモリ・リソースのうちの少なくとも部分を割り当てるようにさらに構成される、条項5−12のうちのいずれかの前記SoC。
【0155】
条項14.前記SoCは、再構成可能な処理及びメモリ・リソースを備え、前記SoCは、前記第二モードで前記サーバ計算サブシステムへ前記再構成可能な処理及びメモリ・リソースのうちの少なくとも部分を割り当てるようにさらに構成される、条項5−13のうちのいずれかの前記SoC。
【0156】
条項15.前記第三モードで、前記SoCは、ホスト・システムとして前記サーバ計算サブシステムを動作させるように、及び前記ネットワーク計算サブシステムを動作させ、前記ホスト・システムについてのネットワーク・トラフィックを管理するようにさらに構成される、条項5−14のうちのいずれかの前記SoC。
【0157】
条項16.前記SoCは、管理計算サブシステムを備え、前記管理計算サブシステムは、前記複数のモードのうちの1つで前記SoCを設定するように構成される、条項5−15のうちのいずれかの前記SoC。
【0158】
条項17.システム・オン・チップ(SoC)・システムであって、
複数のSoCを備え、前記複数のSoCは、第一SoC、及び第二SoCを備え、前記第二SoCは、前記第一SoCへ通信可能に結合され、前記第一SoCは、複数のモードのうちの1つで動作させるように構成され、
第一モードで、前記第一SoCは、第一ネットワーク計算サブシステムを動作させるように構成され、
第二モードで、前記第一SoCは、第一サーバ計算サブシステムを動作させるように構成され、
第三モードで、前記第一SoCは、前記第一ネットワーク計算サブシステム、及び前記第一サーバ計算サブシステムを同時に動作させるように構成される、
前記SoCシステム。
【0159】
条項18.前記第二SoCは、また前記複数のモードのうちの1つで動作させるように構成され、
前記第一モードで、前記第二SoCは、第二ネットワーク計算サブシステムを動作させるように構成され、
前記第二モードで、前記第二SoCは、第二サーバ計算サブシステムを動作させるように構成され、
前記第三モードで、前記第二SoCは、前記第二ネットワーク計算サブシステム、及び前記第二サーバ計算サブシステムを同時に動作させるように構成される、
条項17の前記システム。
【0160】
条項19.前記第一SoCは、前記第一モードで、第三ネットワーク計算サブシステムとして別の目的のために再利用される前記第一サーバ計算サブシステムで構成され、前記第二SoCは、前記第二モードで、第三サーバ計算サブシステムとして別の目的のために再利用される前記第二ネットワーク計算サブシステムで構成される、条項18の前記システム。
【0161】
条項20.前記第二SoCは、汎用SoCである、条項17−19のうちのいずれかの前記システム。
【0162】
他の変形形態は、本開示の趣旨内にある。したがって、開示された技術は、さまざまな修正形態、及び代替構成の影響を受けやすく、特定の図示されたこれらの実施形態は、図面内で示され、詳細に上記で説明されている。しかしながら、開示された特定の単一の形態、または複数の形態へ本開示を限定する意図はないが、対照的に、この意図が添付の特許請求の範囲で定められるように、本開示の趣旨及び範囲内に入るすべての修正形態、代替構成、及び均等物を網羅することを理解するであろう。
【0163】
用語「a」、及び「an」、及び「the」、及び開示された実施形態を記述する文脈内で(特に以下の特許請求の範囲の文脈内で)同様の指示対象の使用は、別段に本明細書で示されない限り、または明らかに文脈が矛盾しない限り、単数形及び複数形の両方を網羅するように解釈される。用語「comprising(含む)」、「having(含む)」、「including(含む)」、及び「containing(含む)」は、特に断りのない限り、オープン・エンド用語(すなわち、「including(含む)がこれに限定されない」ことを意味する)として解釈される。用語「接続される」は、何かが介在している場合であっても、部分的に、または全体的に、この内に含まれる、これに取り付けられる、または共に結合されると解釈される。本明細書で値の範囲の列挙は、本明細書で特に指示されない限り、この範囲内に入る各別個の値へ個々に参照する省略表現方法として機能することを単に意図され、各別個の値は、それが本明細書で個々に列挙されたかのように本明細書で援用される。本明細書に記述されるすべての方法は、本明細書で特に指示されない、または特に明らかに文脈が矛盾しない限り、任意の適切な順序で実行されることが可能である。本明細書で提供される、任意の、及びすべての実施例の使用、または例示的な言語(たとえば、「such as(のような)」)は、本開示の実施形態のより良い理解を容易にすることを単に意図され、特に請求されない限り本開示の範囲を限定するものではない。本明細書内の言語は、本開示の実施へ必須であるとして任意の請求されない要素を示すように解釈されない。
【0164】
語句「X、Y、またはZのうちの少なくとも1つ」のような選言は、特に具体的に明言されない限り、項目、用語などがX、Y、若しくはZ、または任意のそれら(たとえば、X、Y、及び/またはZ)の組み合わせのいずれかであることができることを提示するために一般に使用されるように文脈内で理解されることを意図される。したがって、このような選言は、特定の実施形態が各存在する、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つを必要とすることを一般に意図されず、このことを必要とすることを意味しない。
【0165】
本開示を実行する発明者らに知られている最良のモードを含む、本開示の好ましい実施形態を本明細書で記述する。これらの好ましい実施形態の変形形態は、前述の説明を読めば、当業者に明らかになるであろう。発明者らは、当業者が適切なものとしてこれらのような変形形態を用いることを期待し、発明者らは、本開示について本明細書で具体的に記述されるものと別の方法で実施されることを意図する。その結果、本開示は、適用法により許容されるように本明細書に添付される特許請求の範囲で列挙される発明の主題のすべての修正形態及び均等物を含む。さらに、それらのすべての可能な変形形態内の上記で説明された要素の任意の組み合わせは、本明細書で特に示されない、または特に明らかに文脈が矛盾しない限り、本開示により包含される。
図1
図2
図3A
図3B
図3C
図4A
図4B
図5
図6A
図6B
図7A
図7B
図7C
図8
図9
図10
図11
図12
図13
図14