以下、様々な実施形態について説明する。説明のために、特定の構成及び詳細が実施形態を全面的に理解するために示されている。しかしながら、実施形態は具体的な内容なくして実施され得ることが、当業者には明らかであろう。さらに、既知の特徴は、記載される実施形態を曖昧にしないために省略または簡略化され得る。
一般に、コンピューティングシステムはいくつかの異なる機能を実行するために、1つ以上のコンピュータサブシステムを含み得る。ほとんどの場合、それぞれのコンピュータサブシステムは意図された機能を実行するための一定数のリソースを含み得る。コンピューティングシステムは一旦製作されると、リソースの数及び種類はコンピューティングシステム用のそれぞれのコンピュータサブシステム対し一定である。したがって、ユースケースにかかわらず、クライアントは、それぞれのコンピュータサブシステムに対してリソースの特定の所定の構成に限定される。
さらに、固定リソースで作業負荷要求が時間とともに変化するため、それぞれのサブシステムは効率的に実行しない可能性がある。例えば、第1のサブシステムの性能は、作業負荷が高い場合に特定の期間に意図された機能を実行するために、一定数のリソースによって制限され、一方、第2のサブシステムはその期間中に作業負荷が低いために全てのリソースを使用しなくてよい。したがって、ほとんどの場合、本システムはそれぞれのサブシステムに割り当てられた一定数のリソースにより、効率的に実行しない可能性がある。
開示された技術の実施形態は、システムオンチップ(SoC)上の多数のコンピュータサブシステムを、動的にまたは起動時のいずれの場合にも、様々なリソースに分割することを提供することが可能である。例えば、SoCはホストシステム(例えば、x86サーバ)に通信可能に接続され、トラフィック監視、トラフィックシェーピング、コンピューティング等のような様々なサービスを提供し得る。いくつかの実施形態では、SoCは多数のコンピュータサブシステムを含み、様々な機能を実行し得る。例えば、特定の実施形態においては、SoCはサーバコンピュータサブシステムを含み、少なくともホストシステム及びサーバサブシステム用の管理ネットワークトラフィックのためのコンピュータサービス及びネットワークコンピュータサブシステムを提供し得る。それぞれのコンピュータサブシステムは、処理リソース(例えば、プロセッサコア)、メモリリソース(例えば、キャッシュ階層、メモリコントローラ、メモリチャネル等)、I/Oリソース(例えば、周辺装置、ネットワーク及びバスインタフェース)等のような複数のリソースを含み得る。開示された技術の実施形態においては、それぞれのリソースは、再構成が可能であり、異なるコンピュータサブシステムに動的にまたは起動時に割り当てられることができる。例えば、ホストシステムは、各仮想サーバインスタンス用に異なるコンピュータサブシステムの再構成を必要とし得る仮想サーバインスタンスのレンジを提供し、必要とされるリソースを仮想サーバインスタンスのスループット要件に合致させる。開示された技術の実施形態により、各コンピュータサブシステム用のリソースのより効率的な使用をすることができ、それによってシステムのスループットを増加させることができる。さらに、開示された技術の実施形態により、それぞれのコンピュータサブシステムは専用の物理層またはハードウェアパスを使用して様々なリソースの再構成及び分離をすることができる。例えば、複数の構成されたリソースは、ネットワークコンピュータサブシステム用の第1の物理層ファブリック及び/またはサーバコンピュータサブシステム用の第2の物理層ファブリックに動的に割り当てられることが可能である。したがって、本技術の実施形態は、異なるコンピュータサブシステムに独立した物理層を有することによって、ハードウェアセキュリティ及びジッタ/性能分離を提供することができる。
コンピュータネットワークは、一般に、データをホストし、多数のクライアントまたは組織にサービスを提供できる複数のサーバを含み得る。例えば、サーバは、クラウドコンピューティング、アナリティクス、ウェブサービス、ストレージ、データベース、アプリケーション、展開サービス等のようなサービスを場合により多数のクライアントコンピュータに提供できる。クライアントまたは組織は、ストレージ、データ処理と保管、ウェブとモバイルアプリケーション、アーカイブと多くのその他のタスクのような多種多様の作業負荷に電力を供給し、これらのサービスまたはデータを使用できる。一般に、クライアントはサーバからサービス及びデータを要求し、サーバは特定のタスクを実行してネットワークを介してデータを要求及び/または提供するサービスに応答する。ネットワークトラフィックは、特定の時間にサービスを要求するクライアント数やサーバの容量等のような、いくつかの要因に依存して変化し得る。
場合によっては、ネットワークシステムはネットワークトラフィックを監視してトラフィックを調節し帯域幅の輻輳を最小化することができる。例えば、ネットワークシステムは、異なるクライアントにウェブサービスを提供するホストシステム(例えば、x86サーバ)に通信可能に接続され得る。ネットワークシステムは、1つ以上のプロセッサコア、キャッシュ、ネットワークアクセラレーション論理、メモリコントローラ及びI/Oサブシステム等を含み得る。いくつかの実施形態では、ネットワークシステムもまた、サーバ(例えば、ホストシステム)によって提供されるウェブサービスと関連するトラフィックシェーピング、ネットワークストレージ処理等のようなその他の機能を実行し得る。場合によっては、ネットワークシステムの機能性は、ホストシステムに通信可能に接続され得るシステムオンチップ(SoC)上のネットワークコンピュータサブシステムとして実施され得る。例えば、SoCは、プラグインカードを使用してホストシステム(例えば、1つ以上のサーバ)に接続されるか、またはホストシステムのマザーボードにはんだ付けされることが可能である。
いくつかの実施形態では、SoCもまた、ネットワークコンピュータサブシステムに加え、サーバコンピュータサブシステム及び管理コンピュータサブシステムを含み得る。例えば、サーバコンピュータサブシステムは、コンピュータサービスを提供するように構成され、管理コンピュータサブシステムは、ネットワークコンピュータサブシステム及びサーバコンピュータサブシステム用のリソースを管理するように構成され得る。場合によっては、ネットワークコンピュータサブシステム及びサーバコンピュータサブシステムは、一定数のリソースを含み得る。例えば、リソースは処理リソース(例えば、プロセッサコア)、メモリリソース(例えば、(例えば、レベル1(L1)キャッシュ、レベル2(L2)キャッシュ、レベル3(L3)キャッシュまたは最終レベルキャッシュ、メモリコントローラ、メモリチャネル等)及びI/Oリソース(ネットワーク及びバスインタフェース)を含み得る。
ほとんどの場合、コンピューティングシステムは一旦製造されると、リソースの数及び種類はコンピューティングシステム用のそれぞれのコンピュータサブシステム対し一定である。加えて、SoCが固定リソースを備えるネットワークコンピュータサブシステム及び固定リソースを備えるサーバコンピュータサブシステムを含むように製造されている場合には、SoCはそれぞれのコンピュータサブシステムに対し、固定リソースに基づいて特定の種類のサービスのみを提供するように制限され得る。例えば、場合によっては、ネットワークコンピュータサブシステムが固定処理リソース及びメモリリソースの数が少ない場合、SoCは低い性能のネットワーク処理のみ提供し得る。同様に、場合によってはサーバコンピュータサブシステムが固定処理リソース及びメモリリソースの数が少ない場合、SoCは低い性能のコンピュータサービスのみ提供し得る。したがって、ユースケースにかかわらず、クライアントは、それぞれのコンピュータサブシステムに対してリソースは特定の所定の構成に限定される。
さらに、場合によってはそれぞれのコンピュータサブシステムに割り当てられた固定リソースは、リソースを非効率的に使用する結果となり得る。例えば、場合によっては、ネットワークコンピュータサブシステムは、低性能のネットワークサービス(例えば、低ネットワークまたは帯域幅の輻輳)を実行する場合、全てのリソースを利用しない可能性がある。同様に、場合によっては、サーバコンピュータサブシステムは、低性能のコンピュータサービス(例えば、仮想サーバインスタンスの全てが必ずしも貸し出されない)を実行している場合には、全てのリソースを利用しなくてよい。
開示された技術の実施形態は、システムオンチップ(SoC)上の多数のコンピュータサブシステム間で様々なリソースの細分化された動的再分割を提供することが可能である。いくつかの実施形態では、コンピュータサブシステムは、1つ以上の処理コアを備えるサブシステムを含み得る。例えば、SoCはホストシステム(例えば、x86サーバ)に通信可能に接続されてよく、トラフィック監視、トラフィックシェーピング、コンピューティング等のような様々なサービスを提供する。いくつかの実施形態では、SoCは、ネットワークトラフィックを監視するためのネットワークコンピュータサブシステム、コンピュータサービスを提供するためのサーバコンピュータサブシステム、リソースを管理するための管理コンピュータサブシステムならびに内部及び外部通信のための様々なインタフェースを備えるI/Oサブシステムのような、多数のサブシステムを含み得る。SoC上の様々なリソースは、プロセッサコア、レベル1(L1)キャッシュ、レベル2(L2)キャッシュ、レベル3(L3)キャッシュまたは最終レベルキャッシュのようなキャッシュ階層のいくつかのレベル、メモリコントローラ、I/O等を含み得る。開示された技術の実施形態においては、いくつかのリソースは、再構成が可能であり、異なるサブシステムに動的に割り当てられることができる。例えば、いくつかの実施様態においては、構成されたリソースは異なる物理層に個別にルーティングされることが可能である。
本技術の実施形態では、管理コンピュータサブシステムは、それぞれのリソースを動的に構成し得る。いくつかの実施形態では、管理コンピュータサブシステムは、要求される作業負荷に基づいてサブシステムに対しそれぞれのリソースの構成を決定し得る。例えば、サーバコンピュータサブシステムがネットワークコンピュータサブシステムと比べて特定の時間で高性能の計算を実行している場合、ネットワークコンピュータサブシステムのリソースのうちいくつかは、サーバコンピュータサブシステム及びその逆にシフトされ得る。いくつかの実施形態では、リソースは、ポリシーに基づいてデフォルトの構成を有し得る。場合によっては、これらのポリシーは起動時に適用される。例えば、管理コンピュータサブシステムは、ソフトウェアレジスタの1つ以上のピンまたはデータフィールドに基づいて起動時にリソースのデフォルトの構成を決定し得る。したがって、開示された技術のいくつかの実施形態は、SoCが一旦製造されると、リソースの再構成ができる。例えば、リソースはパワーオンリセットされた後、様々なサブシステムで均等に分割され得る。
開示された技術の特定の実施形態においては、ファブリックブリッジは、物理層にそれぞれ構成されたリソースをマッピングするルーティングファブリックを提供できる。いくつかの実施形態では、多数の物理層は、それぞれの物理層がコヒーレントファブリックに関連されることが可能な場所に存在し得る。例えば、ファブリックブリッジは、1つ以上の再構成可能リソース(例えば、プロセッサコア、最終レベルキャッシュ、メモリコントローラ、I/Oコントローラ等)をネットワークコンピュータサブシステム用の第1の物理層ファブリックに、またはサーバコンピュータサブシステム用の第2の物理層ファブリックにマッピングできる。開示された技術の様々な実施形態においては、第1の物理層ファブリック及び第2の物理層ファブリックは、互いに物理的に分離されジッタ及びセキュリティリスクの低減を提供する。例えば、それぞれのコンピュータサブシステムの各物理層によって物理的に分離されることが可能な処理リソース及びメモリリソースを有することにより、コンピュータサブシステム内に含まれた任意のセキュリティリスクを可能にする。
いくつかの実施形態では、ステアリングユニットは、構成されたリソースを個々のコンピュータサブシステムをステアリングするために使用され得る。例えば、ステアリングユニットは1つ以上の多重変換装置を含んでよく、再構成処理コア、L3キャッシュ、メモリコントローラ、I/Oリソース等をネットワークコンピュータサブシステムまたはサーバコンピュータサブシステムのいずれかにステアリングする。
通常のSoCは、シングルチップに集積されたシステムの機能性を含み得る。例えば、SoCは、多数のプロセッサコア、揮発性及び不揮発性のメモリモジュール、メモリコントローラ、1つ以上の内部バス、標準インタフェース、周辺機器、電圧調整器、電力管理回路、発振器及び位相ロックループ等のようなタイミングリソース等を含むことができる。シングルチップに多数のチップの機能を実装することで製造及び組立の費用を削減できる。加えて、SoCは通常、必要とする設置面積及び空間がより小さい。したがって、SoCの実施様態は通常、同一の機能を実装するマルチチップシステムと比べて消費電力がより少なく、費用効果が高い。
開示された技術の実施形態は、SoC上の異なるコンピュータサブシステム間で、様々なコンピュータリソースを細分化して動的に分割する柔軟性を提供することが可能である。それぞれのリソースを動的に再構成する能力によってリソースの効率的な使用をすることができ、それによって性能を損なうことなく作業負荷要求を満たすことができる。
開示された技術の実施形態が記載され、SoC上の2つのコンピュータサブシステム間のリソースを動的に分割すると示されているが、技術の態様は2つのコンピュータサブシステム間でのみリソースを分割することに限定されない。例えば、いくつかの実施様態においては、リソースは、開示された技術の範囲を逸脱することなくSoC上の多数(例えば、2つ以上)のコンピュータサブシステム間で分割され得る。
図1は、本明細書に記載された実施形態を実行するために使用されることが可能な例示的なシステム100を示す。通常、SoCは、ネットワークコンピュータサブシステムとサーバコンピュータサブシステム間が動的に再分割されることができる再構成可能リソースを含み得る。管理コンピュータサブシステムは、ネットワークコンピュータサブシステム及びサーバコンピュータサブシステム用のリソースを管理するように構成され得る。
図1は、ホストシステム112と通信するように構成されるSoC102を示す。SoC102とホストシステム112間の通信は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェースまたは任意のその他の好適なインタフェースのような、ホストインタフェース114を使用して実行され得る。
場合によっては、ホストシステム112は、多数のクライアントにマルチテナントプラットフォームを提供し得る。例えば、ホストシステム112は、クラウドコンピューティング、クラウドストレージ、アナリティクス、ウェブサービス、データベース、アプリケーション、展開サービス、ウェブサイトのホスティング等のようなサービスを異なるクライアントに提供し得る。ホストシステム112は、例えばx86サーバのようなサーバを含み得る。いくつかの実施形態では、ホストシステム112における1つ以上のプロセッサは、SoC102上のソケットに接続され得る。
SoC102は、ネットワークコンピュータサブシステム104、再構成可能リソース106、サーバコンピュータサブシステム108及び管理コンピュータサブシステム110を含み得る。いくつかの実施形態では、コンピュータサブシステムは、複数の処理コアを含んでよく、それぞれの処理コアはネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように再構成されることが可能である。いくつかの実施形態では、再構成可能リソース106は、再構成可能メモリリソースを含んでよく、メモリリソースの少なくとも一部は、ネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように再構成されることが可能である。
ネットワークコンピュータサブシステム104は、ネットワークトラフィックシェーピング、ネットワークアクセラレーション、ネットワークストレージ処理等のようなネットワークに関連する機能を提供するように構成され得る。いくつかの実施形態では、ネットワークコンピュータサブシステム104は、ネットワークインタフェースコントローラ(NIC)またはネットワークコプロセッサの少なくともいくつかの機能を含み得る。ある実施形態においては、ネットワークコンピュータサブシステム104は、例えば課金、速度、トラフィックシェーピング、暗号化、チョーク等のようなホストシステム112によって提供されるウェブサービスに関連するいくつかの機能を含み得る。
サーバコンピュータサブシステム108は、ホストシステム112用の例えば仮想または物理リソースのようなコンピュータサービスを提供するように構成され得る。例えば、コンピュータサービスは、様々なサイズの仮想マシンインスタンスを起動することを含んでよく、ストレージの容量を仮想マシン等に必要に応じて関連付ける。いくつかの実施形態では、サーバコンピュータサブシステム108は、ホストシステム112の作業負荷の一部をオフロードするために使用され得る。場合によっては、ホストシステム112は、サーバコンピュータサブシステム108とともに高性能のコンピュータサービスを提供し得る。例えば、ホストシステム112は、迅速なターンアラウンドサービスを処理することに集中し、低性能の作業負荷をサーバコンピュータサブシステム108にオフロードし、その結果システムのスループットを増加させ得る。
再構成可能リソース106は、動的に再構成され得る複数のリソースを含み得る。例えば、いくつかの実施形態では、再構成可能リソース106は、再構成可能処理コア、再構成可能メモリリソース、再構成可能I/Oリソース及び再構成可能最終レベルキャッシュリソースを含み得る。いくつかの実施形態では、再構成可能リソース106の少なくともいくつかは、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108の一部として機能するために動的に分割され得る。例えば、いくつかの実施様態においては、再構成可能リソース106は、ファブリックブリッジまたは好適なステアリングユニットを使用して異なる物理層に個別にルーティングされ得る。
再構成可能処理コアは、複数の処理コアを含み得る。いくつかの実施形態では、再構成可能処理コアは、マルチコアプロセッサを含み得る。マルチコアプロセッサは、同一のプロセッサ内に多数の処理ユニットを含み得る。いくつかの実施形態では、処理コアの動的な分割は、2コアプロセッサの細粒度で実行されることができる。いくつかの実施形態では、マルチコアプロセッサは、マルチコア間のバスとL1及び/またはL2キャッシュのような特定のリソースを共有し得る。場合によっては、シングルまたはマルチコアプロセッサのそれぞれのコアもまた、多数の実行論理プロセッサ(またはスレッド)を含み得る。このようなコア(多数の論理プロセッサを支援する)においては、実行パイプライン及び低レベルキャッシュ(例えば、L1またはL2)のいくつかのステージもまた共有され得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能/ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能処理コアをルーティングすることが可能である。
再構成可能リソースは、再構成可能メモリコントローラ等を含み得る。メモリコントローラは、DDRコントローラ、DDR2コントローラまたは任意の好適なコントローラを含んでよく、外部メモリへのアクセスを管理するために使用されてよい。いくつかの実施形態では、L1及び/またはL2キャッシュは、プロセッサの多数のコア間で共有され得る。したがって、いくつかの実施形態では、処理リソースの分割は、L1/L2キャッシュで処理コアの分割をすることを含み得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能/ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能メモリリソースをルーティングすることが可能である。
再構成可能I/Oリソースは、内部及び外部通信のための様々なI/Oインタフェースを含み得る。例えば、再構成可能I/Oリソースは、ホストシステム112と通信するための第1のインタフェース、ネットワークコンピュータサブシステム104と通信するための第2のインタフェース、サーバコンピュータサブシステム108と通信するための第3のインタフェース、ネットワークと通信するための第4のインタフェースを含み得る。例えば、ホストインタフェース114は、ホストシステム112と通信するために使用され得る。ホストインタフェース114は、PCIeインタフェースのような任意の標準インタフェースを使用して実施され得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能/ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能I/Oリソースをルーティングすることが可能である。
再構成可能最終レベルキャッシュリソースは、最終レベルキャッシュまたはレベル3(L3)キャッシュを含み得る。いくつかの実施形態では、1つのL3キャッシュは、1つのコンピュータサブシステムによって共有され得る。本明細書において、最終レベルキャッシュ及びL3キャッシュという用語は同じ意味で用いられ得るが、いくつかのシステムにおいては、最終レベルキャッシュは、本技術の範囲から逸脱せずにレベル2キャッシュまたはレベル4キャッシュまたは任意のその他のレベルであり得る。いくつかの実施様態においては、開示された技術の実施形態は、ハードウェアセキュリティ及び性能/ジッタの分離を提供できる専用のハードウェアパスを使用する異なるコンピュータサブシステムに関連する異なる物理層に再構成可能最終レベルキャッシュリソースをルーティングすることが可能である。
管理コンピュータサブシステム110は、SoC102上の異なるコンピュータサブシステム用の様々なリソースを管理するように構成され得る。いくつかの実施形態では、管理コンピュータサブシステム110は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間の再構成可能リソース106の細分化された分割を動的に実行するように構成し得る。いくつかの実施形態では、起動後に管理コンピュータサブシステム110は、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108用のリソースを管理するように構成され得る。例えば、管理コンピュータサブシステム110は、全ての処理リソース及びメモリリソースをネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のそれぞれにマッピングすることによって、ネットワーク専用システムとしてまたはサーバ専用システムとしてSoC102を構成するために起動時にリソースの少なくともいくつかを再構成し得る。いくつかの実施形態では、管理コンピュータサブシステム110は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で共有され得る1つ以上のリソースを含み得る。例えば、いくつかの実施様態においては、共有されたリソースは、ファブリックブリッジまたはステアリングユニットを使用してネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108の両方にマッピングされ得る。
いくつかの実施形態では、再構成可能リソース106は、パワーオンリセットでのデフォルトの構成に基づいて分割され得る。いくつかの実施形態では、デフォルトの構成は、ポリシー(例えば、組織によって提供される)に基づくか、またはオペレータが提供する構成であり得る。管理コンピュータサブシステム110は、パワーオンリセット後に、再構成可能リソース106の動的に再分割するように構成され得る。いくつかの実施形態では、管理コンピュータサブシステム110は、ソフトウェアまたはハードウェアの構成に基づいて再構成可能リソース106の再分割のための構成を決定し得る。例えば、管理コンピュータサブシステム110は、1つ以上のSoC102のピンまたはソフトウェアレジスタにおけるデータフィールドに基づいて、再分割の構成を決定し得る。
図2は、本技術のいくつかの実施形態による、再構成可能リソースを備えるシステム200の高レベルの図を示す。
SoC102は、ネットワークコンピュータサブシステム104、サーバコンピュータサブシステム108、管理コンピュータサブシステム110及び共有リソースサブシステム204を含み得る。再構成可能リソース106は、ファブリックブリッジ202を使用して、ネットワークコンピュータサブシステム104、サーバコンピュータサブシステム108及び管理コンピュータサブシステム110に通信可能に接続され得る。再構成可能リソース106は、再構成可能処理コア206、再構成可能メモリリソース208、再構成可能I/Oリソース210及び再構成可能最終レベルキャッシュリソース212を含み得る。再構成可能リソース106は、管理コンピュータサブシステム110によって動的に構成されることができる。ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間の管理コンピュータサブシステム110によって再分割されることができる。ファブリックブリッジ202は、再構成可能リソース106におけるそれぞれ構成されたリソースをネットワークコンピュータサブシステム104用の第1の物理層ファブリックか、またはサーバコンピュータサブシステム108用の第2の物理層ファブリックにマッピングすることができる。特定の実施形態において、ステアリングユニットは、構成されたリソースをネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108にステアリングするために使用され得る。いくつかの実施形態では、共有リソースは、ファブリックブリッジ202またはステアリングユニット(図示せず)を使用して、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108の両方にルーティングされ得る。
ネットワークコンピュータサブシステム104は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214及びアクセラレーションユニット216を含み得る。いくつかの実施形態では、再構成可能処理コア206、再構成可能メモリリソース208、再構成可能I/Oリソース210及び再構成可能最終レベルキャッシュリソース212の少なくとも一部は、ネットワークコンピュータサブシステム104の一部として機能するように再構成可能である。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104にマッピングされ得る処理コア、メモリリソース、I/Oリソース及び最終レベルキャッシュリソースに接続され得る。例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104用に構成されたリソースをサーバコンピュータサブシステム108用に構成されたリソースから物理的に分離することが可能なネットワークコンピュータサブシステム104の第1の物理層ファブリックを表し得る。
サーバコンピュータサブシステム108は、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218を含み得る。いくつかの実施形態では、再構成可能処理コア206、再構成可能メモリリソース208、再構成可能I/Oリソース210及び再構成可能最終レベルキャッシュリソース212の少なくとも一部は、サーバコンピュータサブシステム108の一部として機能するように再構成される。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108にマッピングされ得る処理コア、メモリリソース、I/Oリソース及び最終レベルキャッシュリソースに接続され得る。例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108用に構成されたリソースをネットワークコンピュータサブシステム104用に構成されたリソースから物理的に分離することが可能なサーバコンピュータサブシステム108用の第2物理層ファブリックを表し得る。
再構成可能処理コア206は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間を分割可能な複数の再構成可能処理コアを含み得る。いくつかの実施形態では、再構成可能処理コア206の少なくとも1つの処理コアは、ネットワークコンピュータサブシステム104の一部として、またはサーバコンピュータサブシステム108の一部として機能するために再構成が可能である。例えば、一例では再構成可能処理コア206は、12個の2コアプロセッサを含み得る。パワーオンリセットでは、デフォルトの構成に基づいて、4つの2コアプロセッサは、ネットワークコンピュータサブシステム104にマッピングされてよく、8つの2コアプロセッサは、サーバコンピュータサブシステム108にマッピングされてよい。例えば、デフォルトの構成は、ポリシーに基づくか、またはオペレータにより提供され得る。いくつかの実施形態では、L1及び/またはL2キャッシュは、プロセッサの多数のコア間で共有され得る。例えば、L1及び/またはL2キャッシュ(例えば、4MBキャッシュ)のそれぞれは、1つのマルチコアプロセッサ(例えば、2コアプロセッサ)に統合され得る。場合によっては、L1キャッシュは一次キャッシュとして使用され、L2キャッシュは二次キャッシュとして使用され得る。したがって、再構成可能処理コア206の再構成は、統合されたL1/L2キャッシュを備える複数の再構成可能処理コアを分割することを含み得る。管理コンピュータサブシステム110は、再構成可能処理コア206を再構成してネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間のリソースを動的に再分割し得る。いくつかの実施形態では、管理コンピュータサブシステム110は、それぞれのサブシステムの性能要件に基づいて、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間のリソースを動的に再分割し得る。例えば、ホストシステム112は、仮想インスタンスの種類(例えば、スモールコンピューティング、ビッグコンピューティング、スモールネットワーキング、ビッグネットワーキング等)の範囲を提供するように構成されてよく、これは必要とされるリソースをサーバインスタンスのスループット要件に合致させる各仮想サーバインスタンス用に異なるサブシステムの再構成を必要とし得る。いくつかの実施形態では、再構成可能処理コア206におけるそれぞれの構成可能なプロセッサコアは、ファブリックブリッジ202またはステアリングユニットを介してコンピュータサブシステムに接続するインタフェースを有し得る。例えば、いくつかの実施様態においては、再構成可能処理コア206は、ルーティングファブリック(例えば、ファブリックブリッジ202)またはステアリングユニット(図示せず)を使用して、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108に個別にルーティングされ得る。
再構成可能メモリリソース208は、メモリコントローラを含み得る。メモリコントローラは、DDRコントローラ、DDR2コントローラまたは任意の好適なコントローラを含んでよく、外部メモリ(例えば、システムメモリ)へのアクセスを管理するために使用されてよい。いくつかの実施形態では、再構成可能メモリリソース208は、帯域幅及びそれぞれの処理コアのメモリ容量に基づいて再構成され得る。いくつかの実施形態では、再構成可能メモリリソース208のメモリリソースの少なくとも一部は、ネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように再構成され得る。いくつかの実施形態では、再構成可能メモリリソース208におけるそれぞれの構成可能なリソースは、ファブリックブリッジ202またはステアリングユニットを介してコンピュータサブシステムに接続するインタフェースを有し得る。例えば、いくつかの実施様態においては、再構成可能メモリリソース208は、ルーティングファブリック(例えば、ファブリックブリッジ202)またはステアリングユニット(図示せず)を使用して、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108に個別にルーティングされ得る。
再構成可能I/Oリソース210は、ネットワークインタフェース、内部及び外部のバスインタフェースのような様々なI/Oインタフェースを含み得る。いくつかの実施形態では、再構成可能I/Oリソース210は、図1を参照して記載しているように例えばホストインタフェース114のようなホストシステム112と通信する第1のインタフェースを含み得る。いくつかの実施形態では、再構成可能I/Oリソース210は、ネットワークコンピュータサブシステム104と通信するための第2のインタフェースを含み得る。例えば、いくつかの実施形態では、ネットワークコンピュータサブシステム104は、ファブリックブリッジ202によってホストインタフェース114にマッピングされてきた第2のインタフェースを使用するホストシステム112と通信し得る。いくつかの実施形態では、再構成可能I/Oリソース210は、サーバコンピュータサブシステム108と通信するための第3のインタフェースを含み得る。例えば、いくつかの実施形態では、サーバコンピュータサブシステム108は、ファブリックブリッジ202によってホストインタフェース114にマッピングされてきた第3のインタフェースを使用するホストシステム112と通信し得る。いくつかの実施形態では、第1、第2及び第3のインタフェースは、PCIeインタフェースのような標準インタフェースを使用して実施され得る。再構成可能I/Oリソース210は、例えばネットワークインタフェース218のようなネットワークで通信するための第4のインタフェースを含み得る。例えば、ネットワークインタフェース218は、イーサネット、トークンリング、Wi−Fi、ATM(非同期転送モード)等のような規格に基づいてよい。いくつかの実施形態では、再構成可能I/Oリソース210は、また、インタフェースを含み、ハードドライブ、光学式ドライブ等のような外部の大容量ストレージデバイスに接続し得る。例えば、インタフェースは、シリアルATAまたはSATAとしても知られている、シリアルアドバンストテクノロジーアタッチメントに基づいてよい。いくつかの実施形態では、再構成可能I/Oリソース210の少なくとも一部は、ネットワークコンピュータサブシステム104の一部として、またはサーバコンピュータサブシステム108の一部として機能するように再構成されることが可能である。いくつかの実施形態では、再構成可能I/Oリソース210におけるそれぞれのインタフェースは、ファブリックブリッジ202またはステアリングユニットを介してコンピュータサブシステムに接続し得る。例えば、いくつかの実施様態においては、再構成可能I/Oリソース210は、ルーティングファブリック(例えば、ファブリックブリッジ202)またはステアリングユニット(図示せず)を使用して、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108に個別にルーティングされ得る。
再構成可能最終レベルキャッシュリソース212は、L3キャッシュのような最終レベルキャッシュを含み得る。いくつかの実施形態では、再構成可能最終レベルキャッシュリソース212の少なくとも一部は、ネットワークコンピュータサブシステム104の一部として、またはサーバコンピュータサブシステム108の一部として機能するように再構成されることが可能である。例えば、L3キャッシュは、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で共有され得る。例えば、16MBのL3キャッシュは、2つの8MBのL3キャッシュに分割され得る。1つの8MBのL3キャッシュは、ネットワークコンピュータサブシステム104に割り当てられてよく、もう1つの8MBキャッシュはサーバコンピュータサブシステム108に割り当ててよい。いくつかの実施形態では、L3キャッシュは2MBの細粒度レベルで再構成され得る。例えば、L3キャッシュは、ネットワークコンピュータサブシステム104に割り当てられた2MBのL3キャッシュと、サーバコンピュータサブシステム108に割り当てられた14MBのL3キャッシュに再分割され得る。いくつかの実施形態では、それぞれのコンピュータサブシステム用に構成された処理コアのメモリ及び帯域幅の要件に基づいて、再構成可能最終レベルキャッシュリソース212は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で、再構成可能処理コア302と、再構成可能メモリリソース208とに動的に再分割され得る。いくつかの実施形態では、再構成可能最終レベルキャッシュリソース212におけるそれぞれの構成可能なリソースは、ファブリックブリッジ202またはステアリングユニットを介してコンピュータサブシステムに接続するインタフェースを有し得る。例えば、いくつかの実施様態においては、再構成可能最終レベルキャッシュリソース212は、ルーティングファブリック(例えば、ファブリックブリッジ202)またはステアリングユニット(図示せず)を使用して、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108に個別にルーティングされ得る。
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステムの機能の一部として機能できるように構成された第1の物理層ファブリックを表し得る。いくつかの実施様態においては、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104用に全ての構成されたリソースに接続でき、ネットワークコンピュータサブシステム104をサーバコンピュータサブシステム108から分離でき、その結果ジッタ及び性能分離を提供できる。ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、例えば、ネットワークコンピュータサブシステム104に割り当てられた再構成可能リソース(例えば、再構成可能処理コア206、再構成可能メモリリソース208、再構成可能I/Oリソース210及び再構成可能最終レベルキャッシュリソース212)、アクセラレーションユニット216及び共有リソースサブシステム204のようなネットワークコンピュータサブシステム104の異なるコンポーネント間でコヒーレンシを維持するように構成され得る。場合によっては、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104の通信バックボーンを表し得る。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、全ての共有データがネットワークコンピュータサブシステム104においてコヒーレントであることを確実にするように構成され得る。例えば、特定の共有データが2つ以上の位置(例えば、多数のプロセッサ、プロセッサの多数のコア、キャッシュ等)に記憶される場合、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、異なる位置の共有データの一貫性を維持するように動作可能であり得る。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104の異なるコンポーネント間でコヒーレンシを維持するためのコヒーレンシコントローラ及びコヒーレンシディレクトリを含み得る。
アクセラレーションユニット216は、ネットワークコンピュータサブシステム104にネットワーキングのアクセラレーションを提供するように構成され得る。いくつかの実施形態では、アクセラレーションユニット216は、ハードウェアアクセラレータ、様々なパイプライン等のような異なる種類のアクセラレータを含み得る。アクセラレーションユニット216は、RDMA(遠隔ダイレクトメモリアクセス)、暗号エンジン等も支援し得る。例えば、暗号エンジンはハードウェアの暗号機能を実行してよく、したがって、ソフトウェアのオーバーヘッドを低減し、ネットワークに関連する復号化、暗号化及び認証機能の実行を加速化する。いくつかの実施形態では、アクセラレーションユニット216は、サーバコンピュータサブシステム108によってアクセスされない場合がある。
共有リソースユニット204は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で共有され得る1つ以上のリソースを含むことができる。いくつかの実施様態においては、共有リソースユニット204は、管理コンピュータサブシステム110の一部であってよい。いくつかの実施形態では、共有リソースユニット204は、任意のジッタまたは安全性の問題を起こすことなく、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で共有され得る1つ以上の周辺機器を安全に含むことができる。例えば、共有リソースユニット204は、乱数発生器、通信メールボックス、スクラッチパッドメモリ、フラッシュメモリ等を含み得る。いくつかの実施形態では、共有リソースユニット204における1つ以上のリソースは、ファブリックブリッジ202またはステアリングユニットを使用して、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108に個別にルーティングされ得る。
サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108の機能の一部として構成されることが可能な、第2の物理層ファブリックを表し得る。いくつかの実施様態においては、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108用の全ての構成されたリソースに接続でき、サーバコンピュータサブシステム108をネットワークコンピュータサブシステム104から分離でき、その結果ジッタ及び性能分離を提供できる。サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、例えば、サーバコンピュータサブシステム108に割り当てられた再構成可能リソース(例えば、再構成可能処理コア206、再構成可能メモリリソース208、再構成可能I/Oリソース210及び再構成可能最終レベルキャッシュリソース212)及び共有リソースサブシステム204のようなサーバコンピュータサブシステム108の異なるコンポーネント間でコヒーレンシを維持するように構成され得る。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、全ての共有されたデータがサーバコンピュータサブシステム108においてコヒーレントであることを確実にするように構成され得る。例えば、特定の共有データが2つ以上の位置(例えば、多数のプロセッサ、キャッシュ等)に記憶される場合、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、異なる位置の共有データの一貫性を維持するように動作可能であり得る。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108の異なるコンポーネント間でコヒーレンシを維持するためのコヒーレンシコントローラ及びコヒーレンシディレクトリを含み得る。
ファブリックブリッジ202は、それぞれのリソースを物理層にマッピングするルーティングファブリックを表し得る。例えば、ファブリックブリッジ202は、1つ以上のリソース(例えば、再構成可能処理コア206、再構成可能メモリリソース208、再構成可能I/Oリソース210及び再構成可能最終レベルキャッシュリソース212)を、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108に関連し得る物理層ファブリックにマッピングできる。本技術のいくつかの実施形態では、多数の物理層は、サブシステム用にそれぞれの物理層がコヒーレントファブリックに関連されることが可能な場所に存在し得る。例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104の第1の物理層ファブリックを表してよく、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108の第2物理層ファブリックを表し得る。いくつかの実施形態では、ネットワークコンピュータサブシステムコヒーレントファブリック214及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック218のそれぞれは、リソースに取り付けるためのポートを有し得る。いくつかの実施形態では、ファブリックブリッジ202は、ポートを有し、例えばリソースのインタフェースを介して再構成可能リソース206のそれぞれのリソースに物理的に接続してよい。ファブリックブリッジ202は、それぞれの物理層ファブリックのポートに取り付けられたリソースをマッピングするように構成され得る。例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック218のそれぞれは、クロスバー、メッシュ、リングまたは、ファブリックブリッジ202のポートに物理的に接続されるリソースを取付可能な任意のその他の好適な実施様態として実施され得る。開示された技術の実施形態により、双方のコンピュータサブシステムに対するジッタ及びセキュリティリスクを低減できるそれぞれのコンピュータサブシステム用に物理層ファブリックを物理的に分離することが可能である。
図3は、本技術のいくつかの実施形態では、再構成可能処理及びメモリリソースを備える例示的なSoCを示す。
SoC102は、再構成可能処理コア302、L1/L2キャッシュ304、ファブリックブリッジ202、ネットワークコンピュータサブシステム104、サーバコンピュータサブシステム108、管理コンピュータサブシステム110、ステアリングユニット306、再構成可能メモリコントローラ308、及び共有リソースサブシステム204を含み得る。ネットワークコンピュータサブシステム104は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214、L3キャッシュ310、アクセラレーションユニット216及びネットワークI/Oサブシステム312を含み得る。いくつかの実施形態では、再構成可能処理コア302、L1/L2キャッシュ304及び再構成可能メモリコントローラ308のうち少なくとも一部は、ネットワークコンピュータサブシステム104の一部として機能するように構成されることができる。サーバコンピュータサブシステム108は、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218、L3キャッシュ314、ブート周辺装置316及びサーバI/Oサブシステム318を含み得る。いくつかの実施形態では、再構成可能処理コア302、L1/L2キャッシュ304及び再構成可能メモリコントローラ308のうち少なくとも一部は、サーバコンピュータサブシステム108の一部として機能するように構成されることができる。
再構成可能処理コア302は、複数の処理コアを含んでよく、それぞれの処理コアがネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように再構成され得る。いくつかの実施形態では、再構成可能処理コア302は、複数のマルチコアプロセッサを含んでよく、それぞれのマルチコアプロセッサ(例えば、2コアプロセッサ、3コアプロセッサ等)がネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように再構成されることが可能である。L1/L2キャッシュ304は、ネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように再構成されることが可能な、複数のL1及び/またはL2キャッシュを含み得る。いくつかの実施形態では、L1/L2キャッシュ304は、再構成可能処理コア302に組み込まれ得る。L3キャッシュは、SoC102上にあり、それぞれのL3キャッシュは同一のサブシステム用の全ての処理コアによって共有され得る。いくつかの実施形態では、再構成可能処理コア302及びL1/L2キャッシュ304は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で管理コンピュータサブシステム110によって動的に再分割され得る。例えば、一例では再構成可能処理コア302及び対応するL1/L2キャッシュ304のうち半分は、ネットワークコンピュータサブシステム104にマッピングされ、その他の半分はサーバコンピュータサブシステム108にマッピングされ得る。別の例では、再構成可能処理コア302及び対応するL1/L2キャッシュ304のうち3分の1は、ネットワークコンピュータサブシステム104にマッピングされ、3分の2はサーバコンピュータサブシステム108にマッピングされ得る。いくつかの実施形態では、それぞれのコンピュータサブシステム用に構成された処理コアのメモリ及び帯域幅の要件に基づいて、L3キャッシュ310及びL3キャッシュ314は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で、再構成可能処理コア302と、L1/L2キャッシュ304とに動的に再分割され得る。いくつかの実施様態においては、再構成可能処理コア302及びL1/L2キャッシュ304は、異なる物理層ファブリック(例えば、ネットワークコンピュータサブシステムコヒーレントファブリック214及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック218)にファブリックブリッジ202またはステアリングユニット306を使用してルーティングされ得る。
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、例えば、ネットワークコンピュータサブシステム104(例えば、再構成可能処理コア302の1つ以上の処理コア、再構成可能メモリコントローラ308の1つ以上のメモリコントローラ、L1/L2キャッシュ304の一部、L3キャッシュ310)に割り当てられた再構成リソース、ネットワークI/Oサブシステム312、アクセラレーションユニット216及び共有リソースサブシステム204のようなネットワークコンピュータサブシステム104の異なるコンポーネント間でコヒーレンシを維持するように構成されてよく、また、ネットワークコンピュータサブシステム104に割り当てられた全ての再構成されたリソースをサーバコンピュータサブシステム108から物理的に分離するように構成され得る。いくつかの実施形態では、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、全ての共有データがネットワークコンピュータサブシステム104においてコヒーレントであることを確実にするように構成され得る。
本技術のいくつかの実施形態では、図2を参照して説明したように、L3キャッシュ310は、再構成可能最終レベルキャッシュリソース212の一部分であり得る。例えば、L3キャッシュ310は、ファブリックブリッジ202またはステアリングユニット306を使用してネットワークコンピュータサブシステム104にルーティングされ得る。いくつかの実施形態では、L3キャッシュ310は、例えば、一部の再構成可能処理コア302のようなネットワークコンピュータサブシステム104用に構成された全ての処理コアによって共有され得る。
ネットワークI/Oサブシステム312は、様々な内部及び外部のコンポーネントと通信するための1つ以上のインタフェースを含み得る。例えば、ネットワークI/Oサブシステム312は、ホストシステム112と通信するためのインタフェースを含み得る。ネットワークI/Oサブシステム312は、例えばインタフェース320のようなサーバコンピュータサブシステム108と通信するための内部インタフェースを含み得る。いくつかの実施形態では、ホストシステム112と通信するためのインタフェース及びサーバコンピュータサブシステム108は、PCIeのような標準インタフェースに基づき得る。ネットワークI/Oサブシステム312は、ネットワーク(例えば、インターネット、イントラネット)等と通信するためのインタフェースを含み得る。いくつかの実施形態では、サーバコンピュータサブシステム108が使用されない場合、サーバコンピュータサブシステム108と通信するためのインタフェース320は利用されなくてよい。いくつかの実施形態では、サーバコンピュータサブシステム108は、例えばインタフェース320のようなネットワークI/Oサブシステム312を介してホストシステム112及びネットワークと通信し得る。図2を再度参照すると、いくつかの実施形態では、ホストインタフェース114及びネットワークインタフェース218は、ネットワークコンピュータサブシステム104の一部として機能するように構成され得る。例えば、ファブリックブリッジ202によってネットワークI/Oサブシステム312のインタフェースにマッピングされ得る。
サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、例えば、サーバコンピュータサブシステム108に割り当てられた再構成リソース(例えば、再構成可能処理コア302の1つ以上の処理コア、再構成可能メモリコントローラ308の1つ以上のメモリコントローラ、L1/L2キャッシュ304の一部、L3キャッシュ314)、サーバI/Oサブシステム318及び共有リソースサブシステム204のようなサーバコンピュータサブシステム108の異なるコンポーネント間でコヒーレンシを維持するように構成されてよく、また、サーバコンピュータサブシステム108に割り当てられた全ての再構成リソースをネットワークコンピュータサブシステム104から物理的に分離するように構成され得る。いくつかの実施形態では、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、全てのデータがサーバコンピュータサブシステム108においてコヒーレントであることを確実にするように構成され得る。
本技術のいくつかの実施形態では、図2を参照して説明したように、L3キャッシュ314は、再構成可能最終レベルキャッシュリソース212の一部分であり得る。例えば、L3キャッシュ314は、ファブリックブリッジ202またはステアリングユニットを使用してサーバコンピュータサブシステム108にルーティングされ得る。いくつかの実施形態では、L3キャッシュ314は、例えば、一部の再構成可能処理コア302のようなサーバコンピュータサブシステム108用に構成された全ての処理コアによって共有され得る。
サーバI/Oサブシステム318は、様々な内部及び外部のコンポーネントと通信するための1つ以上のインタフェースを含み得る。いくつかの実施形態では、サーバI/Oサブシステム318は、ホストシステム112と通信するためのインタフェースを含み得る。例えば、インタフェースはPCIeのような事前に定義されたインタフェースに基づき得る。サーバI/Oサブシステム318は、例えばインタフェース320のようなネットワークコンピュータサブシステム104と通信するための内部インタフェースを含み得る。サーバI/Oサブシステム318は、ネットワーク(例えば、インターネット、イントラネット)等と通信するためのインタフェースを含み得る。いくつかの実施形態では、例えばネットワークコンピュータサブシステム104が使用されない場合のように、全ての再構成可能リソースがサーバコンピュータサブシステム108用に構成されている場合には、ネットワークコンピュータサブシステム104と通信するためのインタフェース320は利用されなくてよい。したがって、このような場合にはサーバコンピュータサブシステム108は、ネットワークコンピュータサブシステム104を介してホストシステム112及びネットワークと通信しなくてよく、むしろ、サーバコンピュータサブシステム108はインタフェースを利用してホストシステム112とインタフェースと通信し、サーバI/Oサブシステム318を介してネットワークと通信し得る。例えば、図2に戻って参照すると、いくつかの実施形態では、ホストインタフェース114及びネットワークインタフェース218は、サーバコンピュータサブシステム108の一部として機能するように構成され得る。例えば、ファブリックブリッジ202によってサーバI/Oサブシステム318のインタフェースにマッピングされ得る。いくつかの実施形態では、サーバI/Oサブシステム318は、また、インタフェースを含み、ハードドライブ、光学式ドライブ等のような外部の大容量ストレージに接続し得る。例えば、インタフェースは、シリアルATAまたはSATAとしても知られている、シリアルアドバンストテクノロジーアタッチメントに基づいてよい。
ブート周辺装置316は、サーバコンピュータサブシステム108用の1つ以上の周辺機器を含み得る。例えば、ブート周辺装置316は、ブートROM、EEPROMまたはフラッシュメモリを含み得る。いくつかの実施形態では、ブート周辺装置316のうち1つは、サーバコンピュータサブシステム108用のオペレーティングシステムをブートストラップするためのBIOSソフトウェアを含み得る。
管理コンピュータサブシステム110は、SoC102上の様々なコンピュータサブシステムを管理するように構成され得る。管理コンピュータサブシステム110も、異なるコンピュータサブシステムに関連するリソースを管理するように構成され得る。例えば、管理コンピュータサブシステム110は、再構成可能処理コア302、L1/L2キャッシュ304及び再構成可能メモリコントローラ308を再構成し、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間の処理とメモリリソースを再分割し得る。いくつかの実施形態では、管理コンピュータサブシステム110は、ソフトウェアまたはハードウェアの構成に基づいて処理及びメモリリソースの再構成を決定し得る。
再構成可能メモリコントローラ308は、1つ以上のメモリコントローラを含み得る。再構成可能メモリコントローラ308は、DDRコントローラ、DDR2コントローラまたは任意の好適なコントローラを含んでよく、例えば1つ以上のメモリチャネル(図示せず)を介する外部メモリへのアクセスを管理するために使用されてよい。いくつかの実施形態では、1つ以上の再構成可能メモリコントローラ308は、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108の一部として機能するように構成され得る。例えば、いくつかの実施様態においては、再構成可能メモリコントローラ308は、異なる物理層ファブリック(例えば、ネットワークコンピュータサブシステムコヒーレントファブリック214及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック218)にファブリックブリッジ202またはステアリングユニット306を使用してルーティングされ得る。
共有リソースサブシステム204は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間で共有され得る1つ以上のリソースを含むことができる。共有リソースサブシステム318は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214及びサーバコンピュータサブシステムキャッシュコヒーレントファブリック218の両方に通信可能に接続され得る。
ステアリングユニット306は、再構成可能メモリコントローラ308のメモリコントローラのそれぞれをネットワークコンピュータサブシステム104(例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214を介して)またはサーバコンピュータサブシステム108(例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218を介して)にステアリングするように構成され得る。いくつかの実施形態では、ステアリングユニット306は、ステアリングを実行するための多重変換装置、多重分離装置または任意のその他の好適な実施態様を含み得る。例えば、場合によっては、ステアリングユニット306は、メモリデータ及び制御信号を再構成可能メモリコントローラ308からネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のいずれかへステアリングするかルーティングし得る。その他の場合によっては、メモリデータ及び制御信号をネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のいずれかから再構成可能メモリコントローラ308へとルーティングし得る。いくつかの実施形態では、ステアリングユニット306は、再構成可能処理コア302及び必要とされるメモリ帯域幅の分割に基づいて、再構成可能メモリコントローラ308のステアリングを決定し得る。いくつかの実施形態では、ステアリングユニット306は、再構成可能メモリコントローラ308に統合され、再構成可能メモリコントローラ308のそれぞれのメモリコントローラをコンピュータサブシステムのいずれかにステアリングし得る。
いくつかの実施様態においては、ステアリングユニット306は、再構成処理コア302及びL1/L2キャッシュ304をネットワークコンピュータサブシステム104(例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214を介して)またはサーバコンピュータサブシステム108(例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218を介して)にステアリングするようにも構成され得る。いくつかの実施様態においては、ステアリングユニット306は、共有リソースサブシステム204における1つ以上の共有リソースをネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108へとステアリングするように構成され得る。
図4は、本技術のいくつかの実施形態において再構成リソースを含むSoC402の例示的なブロック図を示している。例えば、図3を参照すると、再構成可能処理コア302、L1/L2キャッシュ304及び再構成可能メモリコントローラ308は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間を再構成し、再分割する。例えば、図4に示す構成は、電源オンでデフォルトの構成であり得る。
図4は、ネットワークコンピュータサブシステム104、サーバコンピュータサブシステム108、ファブリックブリッジ202、管理コンピュータサブシステム110及び共有リソースサブシステム204を含むSoC102を示す。ネットワークコンピュータサブシステム104は、図3を参照して説明したネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214、L3キャッシュ310、ネットワークI/Oサブシステム312、及びアクセラレーションユニット216に加え、ネットワークコンピュータサブシステム処理コア402、L1/L2キャッシュ404及びネットワークコンピュータサブシステムメモリコントローラ406のような、1つ以上の再構成リソースを含み得る。サーバコンピュータサブシステム108は、図3を参照して説明したサーバコンピュータサブシステムキャッシュコヒーレントファブリック218、L3キャッシュ314、サーバI/Oサブシステム318及びブート周辺装置316に加え、サーバコンピュータサブシステム処理コア408、L1/L2キャッシュ410及びネットワークコンピュータサブシステムメモリコントローラ412のような、1つ以上の再構成リソースを含み得る。
ネットワークコンピュータサブシステム402は、例えば管理コンピュータサブシステム110によってネットワークコンピュータサブシステム104の一部として機能するように構成されてきた1つ以上の処理コアを含み得る。いくつかの実施形態では、ネットワークコンピュータサブシステム処理コア402は、2つの処理コアの粒度レベルで分割され得る。いくつかの実施形態では、L1/L2キャッシュ404は、L1/L2キャッシュがネットワークコンピュータサブシステム処理コア402における各マルチコアプロセッサ(例えば、2つのコアプロセッサ)によって共有されることができるように分割され得る。
ネットワークコンピュータサブシステムメモリコントローラ406は、例えば管理コンピュータサブシステム110によってネットワークコンピュータサブシステム104の一部として機能するように構成されてきた1つ以上のメモリコントローラを含み得る。図3を再度参照すると、ネットワークコンピュータサブシステムメモリコントローラ406は、ステアリングユニット306によってネットワークコンピュータサブシステム104にステアリングされる再構成可能メモリコントローラ308における1つ以上のメモリコントローラを含み得る。
サーバコンピュータサブシステム処理コア408は、例えば管理コンピュータサブシステム110によってサーバコンピュータサブシステム108の一部として機能するように構成される1つ以上のマルチコアプロセッサを含み得る。いくつかの実施形態では、サーバコンピュータサブシステム処理コア408は、2つの処理コアの粒度レベルで分割され得る。いくつかの実施形態では、L1/L2キャッシュ410は、L1/L2キャッシュがサーバコンピュータサブシステム処理コア408における各マルチコアプロセッサ(例えば、2コアプロセッサ)によって共有されることができるように分割され得る。
サーバコンピュータサブシステムメモリコントローラ412は、例えば管理コンピュータサブシステム110によってサーバコンピュータサブシステム108の一部として機能するように構成されてきた1つ以上のメモリコントローラを含み得る。図3を再度参照すると、サーバコンピュータサブシステムメモリコントローラ412は、ステアリングユニット306によってサーバコンピュータサブシステム108にステアリングされる再構成可能メモリコントローラ308における1つ以上のメモリコントローラを含み得る。
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104用の全ての構成されたリソースを第1の物理層に分離することによってジッタ及びセキュリティへの懸念を低減し、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108用の全ての構成されたリソースを第2の物理層に分離することによってジッタ及びセキュリティへの懸念を低減し得る。
いくつかの実施形態では、図4に図示されているように、起動時に、再構成可能処理及びメモリリソースは、例示的な構成に分割され得る。場合によっては、サーバコンピュータサブシステム108が高性能のコンピュータサービスを提供するように構成されているがコンピューティングリソースが十分に利用されていない場合(例えば、仮想サーバ上の全てのスロットが貸し出されているとは限らない)には、管理コンピュータサブシステム110は、処理及びメモリリソースのうちいくつかをサーバコンピュータサブシステム108からネットワークコンピュータサブシステム104へと動的に移動し得る。同様に、その他の場合においては、サーバコンピュータサブシステム108が低性能のコンピュータサービスを提供するように構成されているが全てのリソースが十分に利用されている場合(例えば、仮想サーバ上の全てのスロットが貸し出されている)には、管理コンピュータサブシステム110は、リソースをより良く利用するために、処理及びメモリリソースのうちいくつかをネットワークコンピュータサブシステム104からサーバコンピュータサブシステム108へと動的に移動し得る。
図5は、本技術のいくつかの実施形態におけるサーバ構成のみを備えるSoC102の例示的なブロック図を示している。前述したように、場合によっては、管理サブシステム110は、サーバコンピュータサブシステム108の一部として機能する全ての再構成可能リソースを再分割し得る。例えば、ネットワークコンピュータサブシステム104の機能が利用されていない場合である。例えば、図3に戻って参照すると、再構成可能処理コア302、L1/L2キャッシュ304及び再構成可能メモリコントローラ308は、サーバコンピュータサブシステム108の一部として機能するように再構成されることができる。場合によっては、リソースのこの再構成は起動時に起こり得る。
図5は、サーバコンピュータサブシステム108、ファブリックブリッジ202、管理コンピュータサブシステム110及び共有リソースサブシステム204を含むSoC102を示す。図4を参照して説明したように、ネットワークコンピュータサブシステム104は本実施形態において利用されない。例えば、いくつかの実施形態では、SoC102はサーバ機能のみを提供するように構成され、したがって、ネットワーク機能は使用されなくてよい。
サーバコンピュータサブシステム108は図4に記載されているものと同様のコンポーネントを含み得る。サーバコンピュータサブシステム処理コア408及びL1/L2キャッシュ410は、例えば管理コンピュータサブシステム110によってサーバコンピュータサブシステム108の一部として機能するように構成され得る。サーバコンピュータサブシステムメモリコントローラ412は、ステアリングユニット306によってサーバコンピュータサブシステム108にいくつかまたは全ての再構成可能メモリコントローラ308を含み得る。
インタフェース320は、ネットワークコンピュータサブシステム104を介してホストシステム112及びネットワークを通信するためのサーバコンピュータサブシステム108によって利用され得ない。本技術のいくつかの実施形態では、サーバコンピュータサブシステム108は、サーバI/Oサブシステム318を使用してホストシステム112及びネットワークと通信し得る。例えば、図2に戻って参照すると、例えば、ファブリックブリッジ202によりサーバI/Oサブシステム318インタフェースをホストインタフェース114及びネットワークインタフェース218にマッピングすることによって、ホストインタフェース114及びネットワークインタフェース218は、サーバコンピュータサブシステム108の一部として機能するように再構成され得る。
図6は、本技術の一実施形態においてSoC102の例示的なブロック図を示す。一般に、SoCは、ネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように動的に構成されることが可能な、リソースの可撓性プールを含むことができる。ネットワークコンピュータサブシステム及びサーバコンピュータサブシステムは、専用の処理及びメモリリソースもそれぞれ含むことができる。
図3を参照して説明したように、SoC102は、ネットワークコンピュータサブシステム104、サーバコンピュータサブシステム108、ファブリックブリッジ202、管理コンピュータサブシステム110、ステアリングユニット306、再構成可能メモリコントローラ308及び共有リソースサブシステム204に加え、再構成可能処理コア602、L1/L2キャッシュ604を含み得る。図4で説明したように、ネットワークコンピュータサブシステム104は、複数のコンポーネントに加えて、ネットワークコンピュータサブシステム専用処理コア608及びL1/L2キャッシュ610を含み得る。例えば、ネットワークコンピュータサブシステム104は、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214、L3キャッシュ310、ネットワークI/Oサブシステム312及びアクセラレーションユニット216も含み得る。図4で説明したように、サーバコンピュータサブシステム108は、複数のコンポーネントに加えて、サーバコンピュータサブシステム専用処理コア612及びL1/L2キャッシュ614を含み得る。例えば、サーバコンピュータサブシステム108は、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218、L3キャッシュ314及びサーバI/Oサブシステム318を含み得る。
再構成可能処理コア602は、ネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように動的に構成されることが可能な、複数の処理コアを含み得る。L1/L2キャッシュ604は、ネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能するように動的に構成されることが可能な、複数のL1/L2キャッシュを含み得る。いくつかの実施形態では、L1/L2キャッシュ604のそれぞれは、1つ以上の処理コアによって共有され得る。例えば、管理コンピュータサブシステム110は、処理コア及びL1/L2キャッシュのそれぞれをネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のいずれかに向けるように作業負荷要求に基づいて、決定し得る。一例として、一実施形態では、ネットワークコンピュータサブシステム専用処理コア606、サーバコンピュータサブシステム専用処理コア610及び再構成可能処理コア602は、8つの2コアプロセッサを含み得る。本技術の実施形態では、1つ以上の再構成可能処理コア602は、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のいずれかに向けられることが可能である。例えば、一例では管理コンピュータサブシステム110は、特定の時間では、サーバコンピュータサブシステム108はネットワークコンピュータサブシステム104と比べて高性能の計算サービスを提供していると判断し得る。したがって、この例では再構成可能処理コア602からの2つの2コアプロセッサはネットワークコンピュータサブシステム104にマッピングされてよく、再構成可能処理コア602からの6つの2コアプロセッサはサーバコンピュータサブシステム108にマッピングされてよい。同様に、管理コンピュータサブシステム110は、特定の時間では、ネットワークコンピュータサブシステム104はサーバコンピュータサブシステム108と比べて高性能のネットワークサービスを提供していると判断し得る。したがって、この例では再構成可能処理コア602からの2つの2コアプロセッサはサーバコンピュータサブシステム108にマッピングされてよく、再構成可能処理コア602からの6つの2コアプロセッサはネットワークコンピュータサブシステム104にマッピングされてよい。いくつかの実施形態では、再構成可能処理コア602の全ては作業負荷要求に応じていずれかのコンピュータサブシステムにマッピングされ得るか、または1つもマッピングされ得ない。
ステアリングユニット306は、再構成可能メモリコントローラ308の1つ以上のメモリコントローラをネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108に動的にステアリングするように構成され得る。例えば、管理コンピュータサブシステム110は、ネットワークコンピュータサブシステム104の一部としてまたはサーバコンピュータサブシステム108の一部として機能する再構成可能メモリコントローラ308を構成できる。いくつかの実施形態では、管理コンピュータサブシステム110は、再構成可能メモリコントローラ308をネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108にステアリングするステアリングユニット306に制御信号を提供するように構成され得る。いくつかの実施形態では、ステアリングユニットは、再構成可能メモリコントローラ308をネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108にステアリングし、向けられた再構成可能処理コア602の帯域幅及びメモリ容量を一致させ得る。
いくつかの実施形態では、ステアリングユニット306は、再構成処理コア302及びL1/L2キャッシュ304をネットワークコンピュータサブシステム104(例えば、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214を介して)またはサーバコンピュータサブシステム108(例えば、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218を介して)にステアリングするために使用され得る。
ネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214は、ネットワークコンピュータサブシステム104用の全ての構成されたリソースを第1の物理層に分離することによってジッタ及びセキュリティへの懸念を低減してよく、サーバコンピュータサブシステムキャッシュコヒーレントファブリック218は、サーバコンピュータサブシステム108用の全ての構成されたリソースを第2の物理層に分離することによってジッタ及びセキュリティへの懸念を低減してよい。
図7は、本技術の特定の実施形態による管理コンピュータサブシステム110のブロック図を示す。管理コンピュータサブシステム110は、マルチコアプロセッサ702、L1/L2キャッシュ704、ネットワークインタフェースユニット706、プライベートメモリ708、周辺装置710及びコンピュータ可読記憶媒体712を含み得る。
マルチコアプロセッサ702は、ARM(登録商標)によるA57のような2つ以上のプロセッサコアを含み得る。いくつかの実施形態では、シングルコアプロセッサは、マルチコアプロセッサ702の代わりに使用され得る。L1/L2キャッシュ704は、マルチコアプロセッサ702の内部または外部であってよく、全てのプロセッサコアによって共有され得る。マルチコアプロセッサ702は、コンピュータ可読記憶媒体712上に記憶され得る複数の命令を実行するように構成され得る。例えば、コンピュータ可読媒体は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108間の構成可能リソースの細分化された動的な再分割を実行する命令を含み得る。コンピュータ可読記憶媒体712は非一時的であり得る。いくつかの実施形態では、コンピュータ可読記憶媒体は、パラメータランダムアクセスメモリ(PRAM)、SRAM、DRAM、RAM、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスク(CD)−ROM、デジタルビデオディスク(DVD)もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用されることが可能であり、マルチコアプロセッサ702によってアクセスされることが可能な任意のその他の媒体を含み得るが、これらに限定されない。いくつかの実施形態では、コンピュータ可読記憶媒体712は、周辺装置の一部であり得る。L1/L2キャッシュ704は、データの一時的記憶のためのデータキャッシュであり得る。
ネットワークインタフェースユニット706は、管理コンピュータサブシステム110をネットワークに接続することを可能にし得る。例えば、ネットワークインタフェースユニット706は、管理コンピュータサブシステム110にイーサネットのようなネットワークに接続するのを可能にするイーサネットMAC(Medium Access Control)を含み得る。場合によっては、イーサネットMACは、ネットワークに接続するためのPHY(物理層)デバイスにインタフェース接続するためのイーサネットポートを提供し得る。いくつかの実施形態では、管理コンピュータサブシステム110は、処理及びメモリリソースを動的に構成するための仮想サーバインスタンスの作業負荷を決定するネットワークを介して、外部エンティティまたはシステムと通信可能である。
プライベートメモリ708は、管理コンピュータサブシステム110の私的使用のためのメモリを含み得る。プライベートメモリ708は、ランダムアクセスメモリ(例えば、SRAMまたはDRAM)のような揮発性メモリを含み得る。例えば、管理コンピュータサブシステム110はデータの一時的記憶のためのプライベートメモリ708を使用し得る。
周辺装置710は、管理コンピュータサブシステム110用のプライベート周辺装置を含み得る。いくつかの実施形態では、プライベート周辺装置710のいくつかは、SoC202の異なるサブシステムの再起動及び電源管理のためのデバイスを含み得る。例えば、周辺装置710は、電源オン時にその他のサブシステムを電源オンにする前にルートオブトラストを確立するために実行できるブートファームウェアを含むトラステッド管理モジュールを含み得る。いくつかの実施形態では、電力管理は電圧操作、クロック操作または任意のその他の好適な方法で提供され得る。
いくつかの実施形態では、管理コンピュータサブシステム110は、全体のSoC202のコールド電源に最初に稼働するように構成され得る。場合によっては、管理コンピュータサブシステム110は、電源がオンになる前にその他のサブシステム用にルートオブトラストを確立するために最初に電源をオンにし得る。例えば、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108用のブートプロセスは、管理コンピュータサブシステム110用のコアブート下で階層的に考えられ得る。いくつかの実施形態では、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108上でその後稼働するソフトウェアは、ホストシステム112またはホストシステム112によって提供される特定のサービスに関連するプライベートキーを使用して署名され、管理コンピュータサブシステム110によって認証され得る。これにより、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108の両方はトラステッド及び独立ブートローダを介して起動するために処理することができる。
いくつかの実施形態では、管理コンピュータサブシステム110は、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108用のリソースを起動後に構成し得る。例えば、管理コンピュータサブシステム110は、全ての処理リソース及びメモリリソースをネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のそれぞれにマッピングすることによって、ネットワーク専用システムとしてまたはサーバ専用システムとしてSoC102を再構成するために起動時にリソースの少なくともいくつかを再構成し得る。いくつかの実施形態では、管理コンピュータサブシステム110は、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108の両方のライブオペレーションに影響せずに別のリセットラインでリセット/再起動され得る。
図8は、ネットワークI/Oサブシステム324のいくつかのコンポーネントを示す。ネットワークI/Oサブシステム312は、バスインタフェースユニット802、ネットワークインタフェースユニット804及びI/Oインタフェースユニット806を含み得る。
バスインタフェースユニット802は、内部または外部のコンポーネントと通信するための1つ以上のバスインタフェースを含み得る。例えば、バスインタフェースユニット802は、例えば、ファブリックブリッジ202によってホストインタフェース114に第1のインタフェースをマッピングすることによってホストシステム112と接続する第1のインタフェースを含み得る。バスインタフェースユニット802は、第2のインタフェースを含み、例えばインタフェース320のようなサーバコンピュータサブシステム108に接続し得る。いくつかの実施形態では、第1のインタフェース及び第2のインタフェースはPCIeインタフェースであり得る。例えば、バスインタフェースユニット802は、その他のPCIeポートに接続する1つ以上のPCIeポートを含み得る。バスインタフェースユニット802は、ルートコンプレックス(RC)ポート及びエンドポイントポート(EP)を含み得る。図3を再度参照すると、ネットワークコンピュータサブシステム104は、インタフェース320を使用して、ネットワークI/Oサブシステム312におけるPCIeポート及びサーバI/Oサブシステム318におけるPCIeポートを介してサーバコンピュータサブシステム108と通信し得る。同様に、ネットワークコンピュータサブシステム104は、インタフェース114を使用してネットワークI/Oサブシステム312におけるPCIeポート及びホストシステム112におけるPCIeポートを介してホストシステム112と通信し得る。
ネットワークインタフェースユニット804は、例えばファブリックブリッジ202によって第3のインタフェースをネットワークインタフェース218にマッピングすることによって、ネットワークに接続する第3のインタフェースを含み得る。いくつかの実施形態では、ネットワークインタフェースユニット804は、イーサネットネットワークに接続するための1つ以上のイーサネットMAC(例えば、10/25/40/50Gb/秒)を含み得る。場合によっては、イーサネットMACは、ネットワークに接続するためのPHY(物理層)デバイスにインタフェース接続するためのイーサネットポートを提供し得る。図3を再度参照すると、1つ以上のイーサネットMACは、ネットワークコンピュータサブシステムコヒーレント相互接続ネットワーク320に接続し得る。
I/Oインタフェースユニット806は、I/O接続のために1つ以上のインタフェースを含み得る。例えば、I/Oインタフェースユニット806は、ネットワーク接続(例えば、イーサネット等)及び外部バスインタフェース(例えばPCIe)用のピンまたは相互接続によりインタフェースで接続するように構成され得る。いくつかの実施形態では、I/Oインタフェースユニット806は、I/O多重変換装置を含み、1つ以上の入力/出力信号を選択し得る。いくつかの実施形態では、I/O多重変換装置は、I/O用にSERDES(シリアライズ−デシリアライズ)インタフェースを含み得る。
図9は、サーバI/Oサブシステム318のいくつかのコンポーネントを示す。サーバI/Oサブシステム318は、バスインタフェースユニット902、ネットワークインタフェースユニット904及び周辺ユニット906を含み得る。
バスインタフェースユニット902は、内部または外部のコンポーネントと通信するための1つ以上のバスインタフェースを含み得る。いくつかの実施形態では、バスインタフェースユニット902は、ネットワークコンピュータサブシステム104が使用されていない場合、例えば、ファブリックブリッジ202によってホストインタフェース114に第1のインタフェースをマッピングすることによってホストシステム112と接続する第1のインタフェースを含み得る。例えば、いくつかの実施形態では、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108の両方が機能しているときには、サーバコンピュータサブシステム108は、ネットワークコンピュータサブシステム104を介してホストシステム112と通信し得る。バスインタフェースユニット902は、第2のインタフェースも含み、例えばインタフェース320のようなネットワークコンピュータサブシステム104に接続し得る。いくつかの実施形態では、第1のインタフェース及び第2のインタフェースはPCIeインタフェースであり得る。例えば、バスインタフェースユニット902は、その他のPCIeポートに接続する1つ以上のPCIeポートを含み得る。バスインタフェースユニット902は、ルートコンプレックス(RC)ポート及びエンドポイントポート(EP)を含み得る。図3を再度参照すると、サーバコンピュータサブシステム308は、インタフェース320を使用して、サーバI/Oサブシステム318におけるPCIeポート及びネットワークI/Oサブシステム312におけるPCIeポートを介してネットワークコンピュータサブシステム104と通信し得る。同様に、サーバコンピュータサブシステム108は、インタフェース114を使用してサーバI/Oサブシステム318におけるPCIeポート及びホストシステム112におけるPCIeポートを介してホストシステム112と通信し得る。いくつかの実施形態では、バスインタフェースユニット902は、また、インタフェースを含み、ハードドライブ、光学式ドライブ等のような外部の大容量ストレージデバイスに接続し得る。例えば、インタフェースは、シリアルATAまたはSATAとしても知られている、シリアルアドバンストテクノロジーアタッチメントに基づき得る。
ネットワークコンピュータサブシステム104が使用されない場合には、ネットワークインタフェースユニット904は、例えばファブリックブリッジ202によって第3のインタフェースをネットワークインタフェース218にマッピングすることによって、ネットワークに接続する第3のインタフェースを含み得る。例えば、ネットワークコンピュータサブシステム104及びサーバコンピュータサブシステム108の両方が機能しているときには、サーバコンピュータサブシステム108は、ネットワークコンピュータサブシステム104を介してネットワークと通信し得る。いくつかの実施形態では、ネットワークインタフェースユニット904は、イーサネットネットワークに接続するための1つ以上のイーサネットMAC(例えば、10/25/40/50Gb/秒)を含み得る。場合によっては、イーサネットMACは、ネットワークに接続するためのPHY(物理層)デバイスにインタフェース接続するためのイーサネットポートを提供し得る。図3を再度参照すると、1つ以上のイーサネットMACは、サーバコンピュータサブシステムコヒーレント相互接続ネットワーク320に接続し得る。
周辺ユニット906は、起動管理のための1つ以上の周辺ユニットを含み得る。例えば、周辺ユニット906は、汎用の入力/出力、低速起動周辺機器等を含み得る。
図10は、共有リソースサブシステム204のいくつかのコンポーネントを示す。本技術の実施形態では、共有リソースサブシステム204は、プロセスの状態を含まないコンポーネントを含み得る。共有リソースサブシステム204は、メモリモジュール1002、ランダム生成モジュール1004、通信メールボックス1006及びスクラッチパッドメモリモジュール1008を含み得る。
メモリモジュール1002は、フラッシュメモリのような不揮発性メモリストレージを含み得る。例えば、メモリモジュール1002は、埋込み型マルチメディアコントローラ(eMMC)またはセキュアデジタル(SD)を含み、低レベルのフラッシュメモリ管理を提供し得る。いくつかの実施形態では、メモリモジュール1002は、例えばBIOS(ベーシックインプット/アウトプットシステム)、ブートローダ等のような制御コードを記憶するために使用され得る。例えば、メモリモジュール1002は、両方のサブシステムによって共有され得るコードを含み得る。いくつかの実施形態では、メモリモジュール1002は、電源を入れた際に様々な構成可能リソースのデフォルトの構成を記憶するために使用され得る。
ランダム生成モジュール1004は、数または記号の不作為のシーケンスを生成するように構成され得る。例えば、乱数は、データの暗号化または任意のこのようなアプリケーションのような暗号化アプリケーションに使用され得る。いくつかの実施形態では、電源をオンにするかまたは再起動した後にそれぞれのコンピュータサブシステムの電源を入れる前に、ランダム生成モジュール1004は、それぞれのコンピュータサブシステムの認証用の管理コンピュータサブシステム110によって使用され得る乱数またはシーケンスを生成するために使用され得る。
通信メールボックス1006は、2つのサブシステムに関連する異なるプロセス間の通信を促進するために使用され得る。例えば、通信メールボックス1006は、メッセージパッシング、同期、共有メモリ及びリモートプロシージャコール(RPC)のような、様々な機能のためのデータの交換用にプロセス間通信モジュールとして使用され得る。
スクラッチパッドメモリモジュール1008は、両方のサブシステムによって使用され得るデータの一時記憶のために使用され得る。いくつかの実施形態では、スクラッチパッドメモリモジュール1008は、例えば命令または中間値のような高速検索のための小規模のデータ量を記憶するために高速メモリ(例えば、2MB SRAM)を含み得る。
図11は、本技術の1つ以上の態様によるフローチャート1100を示す。いくつかまたは全てのプロセス1100(または本明細書で記載される任意のその他のプロセスもしくはその変形及び/または組み合わせ)は、実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で実行されてよく、1つ以上のプロセッサ上で、またはハードウェアもしくはそれらの組み合わせによって、全体的に実行するコード(例えば、ファームウェア、実行可能な命令、1つ以上のコンピュータプログラムまたは1つ以上のアプリケーション)として実装され得る。コードは、例えば、1つ以上のプロセッサによって実行可能な複数の命令を含み得るコンピュータプログラムの形態のコンピュータ可読記憶媒体に記憶され得る。コンピュータ可読記憶媒体は、非一時的であり得る。
ステップ1102では、複数の処理コアが構成され得る。少なくとも1つの処理コアがネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、ネットワークコンピュータサブシステムはホストシステム及びサーバコンピュータサブシステム用の少なくともネットワークトラフィックを管理するように構成される。例えば、図2に戻って参照すると、再構成可能処理コア206における少なくとも1つの処理コアは、管理コンピュータサブシステム204によって構成され、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108の一部として機能し得る。管理コンピュータサブシステム110は、再構成可能処理コア206をデフォルトの構成で電源を入れるように構成され得る。本技術の実施形態では、管理コンピュータサブシステム110は、例えば作業負荷要求に基づいて、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間の再構成可能処理コア206を動的に再分割することが可能であり得る。図4を再度参照すると、一実施形態では、再構成可能処理コア206は、それぞれネットワークコンピュータサブシステム処理コア402及びサーバコンピュータサブシステム処理コア408のように、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間で分割される。図5を再度参照すると、別の実施形態では、ネットワークコンピュータサブシステム104は使用されていないため、再構成可能処理コア206はサーバコンピュータサブシステム108のためだけに構成されている。
ステップ1104では、複数のメモリリソース(例えば、L1キャッシュ、L2キャッシュ、メモリコントローラ等)が構成されてよく、メモリリソースの少なくとも一部は、ネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように再構成されることが可能である。例えば、図2に戻って参照すると、再構成可能メモリリソース208は、管理コンピュータサブシステム204によって構成され、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108の一部として機能し得る。管理コンピュータサブシステム110は、再構成可能メモリリソース208をデフォルトの構成で電源を入れるように構成し得る。例えば、管理コンピュータサブシステム110は、それぞれのコンピュータサブシステム用にキャッシュ階層(例えば、L1、L2及びL3キャッシュ)及びメモリコントローラを構成し得る。本技術の実施形態では、管理コンピュータサブシステム110は、例えば作業負荷要求に基づいて、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間の再構成可能メモリリソース208を動的に再分割することが可能であり得る。図4を再度参照すると、一実施形態では、再構成可能メモリリソース208は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間で分割される。図5を再度参照すると、別の実施形態では、ネットワークコンピュータサブシステム104は使用されていないため、再構成可能メモリリソース208はサーバコンピュータサブシステム108のためだけに構成されている。
ステップ1106では、複数のI/Oリソースは構成されてよく、I/Oリソースの少なくとも一部は、ネットワークコンピュータサブシステムの一部としてまたはサーバコンピュータサブシステムの一部として機能するように再構成されることが可能である。例えば、図2に戻って参照すると、再構成可能I/Oリソース210は、管理コンピュータサブシステム204によって構成され、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108の一部として機能し得る。管理コンピュータサブシステム110は、再構成可能I/Oリソース210をデフォルトの構成で電源を入れるように構成され得る。例えば、管理コンピュータサブシステム110は、それぞれのコンピュータサブシステムにバス及びネットワークインタフェースを構成し得る。本技術の実施形態では、管理コンピュータサブシステム110は、例えば作業負荷要求に基づいて、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間の再構成可能I/Oリソース210を動的に再分割し得る。例えば、図4に戻って参照すると、再構成可能I/Oリソース210は、ネットワークコンピュータサブシステム104とサーバコンピュータサブシステム108との間で分割される。例えば、サーバコンピュータサブシステム108は、インタフェース320を使用するネットワークI/Oサブシステム312のホスト及びネットワークインタフェースを介してホストシステム112及びネットワークと通信し得る。例えば、図5に戻って参照すると、ネットワークコンピュータサブシステム104が使用されていないため、再構成可能I/Oリソース210はサーバコンピュータサブシステム108のためだけに構成されている。例えば、サーバコンピュータサブシステム108は、サーバI/Oサブシステム318のホスト及びネットワークインタフェースを介してホストシステム112及びネットワークと通信し得る。
ステップ1108では、構成された処理コア、メモリリソース及びI/Oリソースは、ファブリックブリッジを使用して、ネットワークコンピュータサブシステム用の第1の物理層ファブリック及び/またはサーバコンピュータサブシステム用の第2の物理層ファブリックにマッピングされることが可能であり、第1の物理層ファブリック及び第2の物理層ファブリックは、互いに物理的に分離されている。例えば、図2に戻って参照すると、ファブリックブリッジ202は、再構成可能処理コア206、再構成可能メモリリソース208及び再構成可能I/Oリソース210をネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108のいずれかにマッピングできる。例えば、いくつかの実施形態では、ファブリックブリッジ202は、ポートに取り付けられたそれぞれの構成されたリソースをネットワークコンピュータサブシステムキャッシュコヒーレントファブリック214のポートまたはサーバコンピュータサブシステムキャッシュコヒーレントファブリック218に物理的に接続できる。いくつかの実施様態においては、構成された処理コア、メモリリソース及びI/Oリソースは、ネットワークコンピュータサブシステム104またはサーバコンピュータサブシステム108にステアリングユニット306を使用してステアリングされることができる。しかしながら、その他の実施様態も可能である。
開示された技術の実施形態は、SoC上の異なるコンピュータサブシステム間で、様々なコンピュータリソースを細分化して動的に分割する柔軟性を提供することが可能である。それぞれのリソースを動的に再構成する能力によってリソースの効率的な使用をすることができ、それによって性能を損なうことなく作業負荷要求を満たすことができる。
図12は、少なくとも1つの例示的な実施形態による、1つ以上のネットワークを介して接続される1つ以上のサービスプロバイダコンピュータ及び/またはユーザデバイスを含む、本明細書に記載された機能及びシステムのための例示的な構造を示す。図1〜図11に記載されたデバイスは、図12に記載されたコンピューティングデバイスの1つ以上のコンポーネントを使用するか、または図12に記載された1つ以上のコンピューティングデバイスを表し得る。構造1200においては、1つ以上のユーザ1202は、ユーザコンピューティングデバイス1204(1)〜(N)(包括的にユーザデバイス1204)を利用して、アプリケーション1206(例えば、ウェブブラウザまたはモバイル機器用のアプリケーション)に1つ以上のネットワーク1208を介してアクセスし得る。いくつかの態様では、アプリケーション1206は、コンピューティングリソースサービスまたはサービスプロバイダによってホスト、管理及び/または提供され得る。1つ以上のサービスプロバイダコンピュータ1210は、ユーザ(複数可)1202が対話し得るユーザデバイス1204上で稼働するように構成されるネイティブアプリケーションを提供し得る。いくつかの実施例では、サービスプロバイダコンピュータ(複数可)1210は、以下に限定されないが、クライアントエンティティ、低レイテンシデータストレージ、永続データストレージ、データアクセス、管理、仮想化、クラウドベースのソフトウェアソリューション、電子コンテンツの性能管理等のようなコンピューティングリソースを提供し得る。サービスプロバイダコンピュータ(複数可)1210も、ウェブホスティング、コンピュータアプリケーション開発及び/または実施様態のプラットフォーム、ユーザ(複数可)1202に対する前述のもの等の組み合わせを提供するように動作可能であり得る。サービスプロバイダコンピュータ(複数可)1210は、いくつかの実施例では、1つ以上の第三者コンピュータ1212と通信し得る。
いくつかの実施例では、ネットワーク(複数可)1208は、ケーブルネットワーク、インターネット、無線ネットワーク、セルラーネットワークならびにその他の私設及び/または公衆ネットワークのような、多くの異なる種類のネットワークのうちいずれか1つ、または組み合わせを含み得る。図示された実施例は、ネットワーク(複数可)1208を介してアプリケーション1206にアクセスするユーザ(複数可)1202を表す一方、記載された技術は、固定電話のユーザデバイス(複数可)1204、電話ボックスまたは任意のその他の手法を介してサービスプロバイダコンピュータ(複数可)1210と対話する場合に等しく適用し得る。非クライアント/サーバの配置(例えば、ローカルに記憶されるアプリケーション等)と同様に、記載された技術は、その他のクライアント/サーバの配置(例えば、セットトップボックス等)で適用し得ることにも注意する。
簡潔に上述したように、アプリケーション1206は、ウェブコンテンツ(例えば、ウェブページ、音楽、ビデオ等)にアクセスするようなサービスプロバイダコンピュータ(複数可)1210とユーザ(複数可)1202が対話することを可能にし得る。サービスプロバイダコンピュータ(複数可)1210は、場合によりサーバのクラスタまたはサーバファームにおいて配置され、アプリケーション1206及び/またはクラウドベースのソフトウェアサービスをホストし得る。その他のサーバ構造もまた、ホストアプリケーション1206に使用され得る。アプリケーション1206は、多くのユーザ1202からの要求の処理をし、応答として、様々なアイテムウェブページを供給することが可能であり得る。アプリケーション1206は、ソーシャルネットワーキングサイト、オンライン小売業者、情報サイト、ブログサイト、検索エンジンサイト、ニュースやエンタテインメントサイト等を含むユーザの対話を支援する任意の種類のウェブサイトを提供可能である。上述のように、説明した技術は、ユーザデバイス(複数可)1404上で稼働するその他のアプリケーションのようなアプリケーション1206の外部で同様に実施されることが可能である。
ユーザデバイス(複数可)は、以下に限定されないが、携帯電話、スマートフォン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、シンクライアントデバイス、タブレットPC、電子ブック(eブック)リーダ等のような、任意の種類のコンピューティングデバイスであり得る。いくつかの実施例では、ユーザデバイス(複数可)1204は、ネットワーク(複数可)1208またはその他のネットワーク接続を介してサービスプロバイダコンピュータ(複数可)1210と通信し得る。さらに、ユーザデバイス(複数可)1204は、サービスプロバイダコンピュータ(複数可)1210(例えば、サービスプロバイダコンピュータ1210に統合されたコンソールデバイス)によって管理、制御され、または別の分散システムの一部であり得る。
1つの例示的な構成においては、ユーザデバイス(複数可)1204は、少なくとも1つのメモリ1214及び1つ以上の処理ユニット(またはプロセッサ(複数可))1216を含み得る。プロセッサ(複数可)1216は、ハードウェア、コンピュータで実行可能な命令、ファームウェアまたはそれらの組み合わせにおいて適切であるように実装され得る。コンピュータで実行可能な命令またはプロセッサ(複数可)1216のファームウェアの実施様態は、記載された様々な機能を行うために好適な任意のプログラミング言語で書かれたコンピュータで実行可能または機械で実行可能な命令を含み得る。ユーザデバイス(複数可)1204もまた、ユーザデバイス(複数可)1204と関連する地理的位置情報を提供及び/または記録するための測位装置(例えば、衛星測位システム(GPS)装置等)を含み得る。
メモリ1214は、これらのプログラムの実行中に生成されるデータと同様に、プロセッサ(複数可)1216に搭載可能で、かつ実行可能なプログラム命令を記憶し得る。ユーザデバイス(複数可)1204の構成及び種類により、メモリ1214は、揮発性(ランダムアクセスメモリ(RAM)及び/または不揮発性(読み取り専用メモリ(ROM)、フラッシュメモリ等)であり得る。ユーザデバイス(複数可)1204もまた、さらに取り外し可能なストレージ及び/または取り外しができないストレージを含み得るが、磁気ストレージ、光ディスク及び/またはテープストレージに限定されない。ディスクドライブ及びそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピューティングデバイスのためのその他のデータなどのような不揮発性のストレージを提供し得る。いくつかの実施様態においては、メモリ1214は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、またはROMのような多数の異なる種類のメモリを含み得る。
メモリ1214の内容をより詳細に見てみると、メモリ1214は、ブラウザアプリケーション1206または専用のアプリケーション(例えば、スマートフォンのアプリケーション、タブレットのアプリケーション等)のような少なくともユーザが提供した入力要素または電子サービスのウェブページを含む、本明細書で開示された機能を実現するためのオペレーティングシステム及び1つ以上のアプリケーションプログラムまたはサービスを含み得る。ブラウザアプリケーション1206は、サービスプロバイダコンピュータ(複数可)1210と対話するウェブサイトまたはその他のインタフェースを受信、記憶及び/または表示するように構成され得る。さらに、メモリ1214は、アクセスの資格情報及び/または、その他のユーザ情報を記憶し得るが、ユーザID、パスワード及び/またはその他のユーザ情報に限定されない。いくつかの実施例では、ユーザ情報は、アカウントへのアクセス要求を認証するための情報を含み得るが、デバイスのID、クッキー、IPアドレス、位置等に限定されない。加えて、ユーザ情報は、ユーザデバイス1204によって取得されたセキュリティの質問に対するユーザの回答や地理的位置を含み得る。
いくつかの態様では、サービスプロバイダコンピュータ(複数可)1210は、以下に限定されないが、携帯電話、スマートフォン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、サーバコンピュータ、シンクライアントデバイス、タブレットPC等のような、任意の種類のコンピューティングデバイスでもあり得る。さらに、いくつかの実施形態では、サービスプロバイダコンピュータ(複数可)1210は、ホスト型コンピュータ環境で実装される1つ以上の仮想マシンによって実施されることに留意すべきである。ホスト型コンピュータ環境は、1つ以上の迅速にプロビジョニングされ、開放されるコンピュータリソースを含んでよく、コンピュータリソースは、コンピューティング、ネットワーキング及び/またはストレージを含み得る。ホスト型コンピュータ環境もまた、クラウド型コンピュータ環境と称され得る。いくつかの実施例では、サービスプロバイダコンピュータ(複数可)1210は、ユーザデバイス(複数可)1204及び/またはその他サービスプロバイダとネットワーク(複数可)1208またはその他のネットワーク接続を介して通信し得る。サービスプロバイダコンピュータ(複数可)1210は、場合により、互いに関連しないサーバファームまたは個別のサーバとしてクラスタに配置される1つ以上のサーバを含み得る。これらのサーバは、統合、分散されたコンピュータ環境の一部として本明細書に記載されたキーワード分類及びレーティング機能サービスを実装するように構成され得る。
1つの例示的な構成においては、サービスプロバイダコンピュータ(複数可)1210は、少なくとも1つのメモリ1218及び1つ以上の処理ユニット(またはプロセッサ(複数可))1220を含み得る。プロセッサ(複数可)1220は、ハードウェア、コンピュータで実行可能な命令、ファームウェアまたはそれらの組み合わせにおいて適切であるように実装され得る。コンピュータで実行可能な命令またはプロセッサ(複数可)1220のファームウェアの実施様態は、記載された様々な機能を行うために任意の好適なプログラミング言語で書かれたコンピュータで実行可能または機械で実行可能な命令を含み得る。
場合によっては、ハードウェアプロセッサ(複数可)1220は、シングルコアプロセッサまたはマルチコアプロセッサであり得る。マルチコアプロセッサは、同一のプロセッサ内に多数の処理ユニットを含み得る。いくつかの実施形態では、マルチコアプロセッサは、マルチコア間のバスと第2または第3レベルのキャッシュのような特定のリソースを共有し得る。場合によっては、シングルまたはマルチコアプロセッサのそれぞれのコアもまた、多数の実行論理プロセッサ(またはスレッド)を含み得る。このようなコア(多数の論理プロセッサを支援する)においては、実行パイプライン及び低レベルキャッシュのいくつかのステージもまた共有され得る。
メモリ1218は、これらのプログラムの実行中に生成されるデータと同様に、プロセッサ(複数可)1220に搭載可能で、かつ実行可能なプログラム命令を記憶し得る。サービスプロバイダコンピュータ(複数可)1210の構成及び種類により、メモリ1218は、揮発性(RAMのような)及び/または不揮発性(ROM、フラッシュメモリ等)であり得る。サービスプロバイダコンピュータ(複数可)1210やサーバはまた、追加のストレージ1222を含み、取り外し可能なストレージ及び/または取り外しができないストレージを含み得る。追加のストレージ1222は、以下に限定されないが、磁気ストレージ、光ディスク及び/またはテープストレージを含み得る。ディスクドライブ及びそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピューティングデバイスのためのその他のデータのような不揮発性のストレージを提供し得る。いくつかの実施様態においては、メモリ1218は、SRAM、DRAM、ROMのような多数の異なる種類のメモリを含み得る。
取り外し可能及び取り外しができないメモリ1218、追加のストレージ1222の両方は、全てコンピュータ可読記憶媒体の例である。例えば、コンピュータ可読記憶媒体は、コンピュータで読み取り可能な指示、データ構造、プログラムモジュールまたはその他のデータのような、情報の記憶のために任意の方法または技術で実装される揮発性もしくは不揮発性、取り外し可能もしくは取り外しができない媒体を含み得る。メモリ1218及び追加のストレージ1222は、全てコンピュータ記憶媒体の例である。サービスプロバイダコンピュータ(複数可)1210において存在し得るコンピュータ記憶媒体の追加の種類は、PRAM、SRAM、DRAM、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、DVDまたはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用可能であり、サービスプロバイダコンピュータ(複数可)1210によってアクセスされることが可能な任意のその他の媒体を含むがこれらに限定されない。上記の任意の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
あるいは、コンピュータ可読通信媒体は、コンピュータ可読命令、プログラムモジュールまたは搬送波またはその他の伝送のようなデータ信号内で伝送されるその他のデータを含み得る。しかしながら、本発明で使用する場合、コンピュータ可読記憶媒体は、コンピュータ可読通信媒体を含まない。
サービスプロバイダコンピュータ(複数可)1210もまた、サービスプロバイダコンピュータ(複数可)1210に記憶されたデータベース、別のコンピューティングデバイスまたはサーバ、ユーザ端末及び/またはネットワーク(複数可)1208上のその他の装置と通信可能にする通信接続(複数可)1224を含有し得る。サービスプロバイダコンピュータ(複数可)1210もまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、ディスプレイ、スピーカ、プリンタ等のようなI/Oデバイス(複数可)1226を含み得る。
メモリ1218は、所望により再構成可能リソースモジュール1232及び多数のコンピュータサブシステムモジュール1240を含む、本明細書で開示された機能を実現するためのオペレーティングシステム1228、1つ以上のデータストア1230及び/もしくは1つ以上のアプリケーションプログラムまたはサービスを含み得る。本明細書で記載されたモジュールは、ソフトウェアモジュール、ハードウェアモジュールまたはそれらの好適な組み合わせであり得る。モジュールがソフトウェアモジュールである場合には、モジュールは非一時的なコンピュータ可読媒体上で具現化され、本明細書に記載された任意のコンピュータシステムのプロセッサによって処理されることができる。記載された処理及び構造は、リアルタイムでまたは任意のユーザの対話の前の非同期モードのいずれかで実行されることが可能であるという点に留意すべきである。モジュールは図12に示された手法で構成されてよく、及び/または本明細書で記載された機能は、別のモジュールとして存在する1つ以上のモジュールによって提供されることが可能であり、及び/または本明細書で記載されたモジュール機能は多数のモジュールにわたって分散されることが可能である。
図13は、様々な実施形態による、態様を実装するための例示的な環境1300の態様を示す。分かるように、ウェブベースの環境が説明のために使用されているが、異なる環境が適切な場合に様々な実施形態を実施するために使用され得る。環境は電子クライアントデバイス1302を含み、適切なネットワーク1304を介して要求、メッセージまたは情報を送受信し、デバイスのユーザに情報を返送するために操作可能な任意の適切なデバイスを含むことができる。このようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、携帯用メッセージデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダ等が含まれる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意のその他のこのようなネットワークもしくはそれらの組み合わせを含む任意の適切なネットワークを含むことができる。このようなシステム用に使用されるコンポーネントは、選択されるネットワーク及び/または環境の種類に少なくとも部分的に依存し得る。このようなネットワークを介して通信するプロトコル及びコンポーネントは、よく知られており、詳細に本明細書には記載されないであろう。ネットワークを介する通信は、有線または無線及びそれらの組み合わせの接続によって可能になり得る。本実施例では、その他のネットワークには、類似の目的を提供する代替的なデバイスは当業者に明白であるとして使用され得るが、環境は要求を受信しそれに応答するコンテンツを提供するためのウェブサーバ1306を含むように、ネットワークはインターネットを含む。
例示の環境は少なくとも1つのアプリケーションサーバ1308及びデータストア1310を含み得る。いくつかのアプリケーションサーバ、レイヤまたはその他の要素、工程またはコンポーネントがあり、これらは繋がれ、または別の方法で構成されてよく、データを適切なデータストアから取得するようなタスクを実行するために対話できると理解すべきである。本明細書で使用する場合、「データストア」という用語は、データの保存、アクセス及び検索が可能な任意のデバイスまたはデバイスの組み合わせを意味し、任意の標準、分散またはクラスタ環境におけるデータサーバ、データベース、データストレージ及びデータ記憶媒体の任意の組み合わせ及び数を含み得る。アプリケーションサーバは、クライアントデバイス用の1つ以上のアプリケーションの態様を実行するのに必要なデータストアと統合する任意の適切なハードウェア及びソフトウェアを含み、アプリケーション用のデータアクセス及びビジネス論理の大部分を処理する。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィック、オーディオ及び/またはビデオのようなコンテンツを生成することができ、ハイパーテキストマークアップ言語(「HTML」)、拡張可能なマークアップ言語(「XML」)または本実施例の別の適切に構造化された言語の形態でウェブサーバによってユーザに提供され得る。クライアントデバイス1302とアプリケーションサーバ1308間のコンテンツの配信と同様に、全ての要求及び応答の処理は、ウェブサーバによって処理されることが可能である。本明細書に記載された構造化されたコードが、本明細書内に記載される任意の適切なデバイスまたはホストマシン上で実行されることができるように、ウェブ及びアプリケーションのサーバは必要とされず、単に例示的なコンポーネントであると理解すべきである。
データストア1310は、特定の様態に関連するデータを記憶するためのいくつかの別のデータテーブル、データベースまたはその他のデータ記憶機構及び媒体を含むことができる。例えば、図示されたデータストアは、製造データ1312及びユーザ情報1316を記憶するための機構を含み、製造側のコンテンツを提供するために使用され得る。データストアもまた、ログデータ1314を記憶するための機構を含むために示され、通知、分析またはその他のこのような目的に使用されることが可能である。ページの画像情報用や正しい情報にアクセスするためのデータストアに記憶される必要がある多くのその他の態様であり、上に挙げた機構のいずれかに適切なものとして、またはデータストア1310の付加的な機構に記憶されることが可能であると理解すべきである。それに関連する論理を通して、データストア1310は、アプリケーションサーバ1308から命令を受信し、それに応答してデータを取得、更新または別の方法で処理する動作が可能である。一実施例では、ユーザは、特定の種類の項目に対する検索要求を提出する場合がある。この場合、データストアはユーザのIDを照合するためにユーザ情報にアクセスする場合があり、カタログの詳細情報にアクセスしその種類の項目に関する情報を取得できる。したがって、ユーザがユーザデバイス1302上のブラウザを介して閲覧できるウェブページに列挙している結果におけるような情報はユーザに戻されることができる。対象とする特定の項目に対する情報は、ブラウザの専用のページまたはウィンドウで閲覧できる。
それぞれのサーバは、通常、全体的な管理及び当該サーバの動作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常、サーバのプロセッサによって実行されるとサーバに意図された機能を実施することを許可する命令を記憶するコンピュータ可読記憶媒体(例えば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリ等)を含むであろう。オペレーティングシステムに好適な実施様態及びサーバの一般的な機能は公知であるか、商業的に入手可能である。また、特に本明細書の本開示の観点における当業者によって容易に実施される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用して通信回線を介し相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する分散コンピューティング環境である。しかしながら、このようなシステムは図13に示されているよりも少ない数のコンポーネントまたはより多数のコンポーネントを有するシステムにおいて等しく良好に動作し得ることを当業者は認識するであろう。したがって、図13におけるシステム1300の記載は、本質を説明するものとして解釈すべきであり、本開示の範囲を限定するものと解釈すべきでない。
様々な実施形態が多種多様な操作環境においてさらに実施されてよく、場合によっては、1つ以上のユーザコンピュータ、計算装置またはいくつかのアプリケーションのいずれかを操作するために使用され得る処理装置をさらに含み得る。ユーザまたはクライアントデバイスは、移動ソフトウェアを動かし、いくつかのネットワーキングとメッセージプロトコルを支援するセルラーデバイス、無線デバイス及び携帯型デバイスと同様に、標準的なオペレーティングシステムを稼働するデスクトップまたはラップトップコンピュータのような、いくつかの汎用のパーソナルコンピュータうちいずれかを含むことができる。このようなシステムは、市販のオペレーティングシステムと、開発とデータベース管理などの目的のその他の既知のアプリケーションのうちいずれかを作動するいくつかのワークステーションも含むことができる。これらのデバイスはまた、ダミー端子、シンクライアント、ゲーミングシステム及びネットワークを介して通信可能なその他のデバイスのような、その他の電子デバイスを含み得る。
たいていの実施形態は、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、オープンシステム相互接続(「OSI」)、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP)、ネットワークファイルシステム(「NFS」)、共有インターネットファイルシステム(「CIFS」)及びアップルトークのような種々な商業的に入手可能なプロトコルのいずれかを使用して通信を支援するために当業者によく知られている少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想私設ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク及びこれらの任意の組み合わせであり得る。
ウェブサーバを利用する実施形態においては、ウェブサーバは、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、コモンゲートウェイインタフェース(「CGI」)サーバ、データサーバ、Javaサーバ及び業務アプリケーションサーバを含む、様々なサーバのいずれか、または中間層のアプリケーションを作動し得る。サーバ(複数可)は、また、プログラムまたはスクリプトを、Java(登録商標)、C、C#もしくはC++またはPerl、Python、TCLのような任意のスクリプト言語またはそれらの組み合わせと同様に、任意のプログラミング言語で書かれた1つ以上のスクリプトまたはプログラムとして実行され得る1つ以上のウェブアプリケーションの実行のようなユーザデバイスからの要求に対して、実施可能であり得る。サーバ(複数可)は、また、オラクル(登録商標)、マイクロソフト(登録商標)、サイベース(登録商標)及びIBM(登録商標)から市販されているデータベースサーバをもまた含み得るが、これらに限定されない。
環境は様々なデータストアと、上述のようにその他のメモリと記憶媒体を含むことができる。これらは、1つ以上のコンピュータのローカルにある(及び/または存在する)またはネットワークを経由するコンピュータのいずれかまたはその全てから離れている記憶媒体のような、様々な位置であることが可能である。特定の一式の実施形態においては、情報は、当業者によく知られたストレージエリアネットワーク(「SAN」)内に存在し得る。同様に、コンピュータ、サーバまたはその他のネットワークデバイスに属する機能を実行するための任意の必要なファイルは、ローカル及び/またはリモートに適切に記憶され得る。システムがコンピュータ化されたデバイスを含む場合には、それぞれのそのようなデバイスは、バスを介して電気的に接続され得るハードウェア要素を含んでよく、要素は、例えば、少なくとも1つの中央演算処理装置(CPU)、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチスクリーンまたはキーパッド)、及び少なくとも1つの出力装置(例えば表示装置、プリンタまたはスピーカ)を含み得る。このようなシステムは、また、ディスクドライブのような1つ以上の記憶装置、光ストレージ装置、ランダムアクセスメモリ(「RAM」)または読み取り専用メモリ(「ROM」)のような、ソリッドステートストレージデバイスを含み得る。
このような装置は、また、コンピュータで読み取り可能な記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(有線または無線)、赤外線通信デバイス等)及び上記のような作業用メモリを含み得る。コンピュータで読み取り可能な記憶媒体読取装置は、一時的及び/またはより恒久的にコンピュータで読み取り可能な情報を含み、記憶し、送信し、検索するための記憶媒体と同様に、リモート、ローカル、固定及び/または取り外し可能なストレージデバイスを代表するコンピュータで読み取り可能な記憶媒体に接続され、または受信するよう構成され得る。このシステム及び様々な装置もまた、典型的にはいくつかのソフトウェアアプリケーション、モジュール、サービスまたは、オペレーティングシステム及びアプリケーションクライアントやウェブブラウザのようなアプリケーションプログラムを含む、少なくとも1つの作動ストレージ内に配置されたその他の要素を含むだろう。代替的な実施形態は、その上述から多数の変動を有し得るであると理解されよう。例えば、カスタマイズされたハードウェアも使用され、及び/または特定の要素は、(アプレットのような携帯可能なソフトウェアを含む)ハードウェア、ソフトウェアまたはその両方において実施され得る。さらに、ネットワーク入力/出力装置のような、その他の計算装置が採用され得る。
コード、コードの一部を含むための記憶媒体及びコンピュータで読み取り可能な媒体は、この技術にて既知または使用される記憶媒体及び通信媒体を含む、任意の適切な媒体を含むことが可能である。例えば、以下に限定されないが、RAM、ROM、電気的に消去可能なプログラマブル読み取り専用メモリ(「EEPROM」)、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスク読み取り専用メモリ(「CD−ROM」)、デジタル汎用ディスク(DVD)もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用されることが可能であり、システムデバイスによってアクセスされることが可能な任意のその他の媒体を含む、揮発性及び非揮発性、コンピュータで読み取り可能な命令のような情報の記憶及び/または伝送するための任意の方法または技術で実装される取り外し可能及び取り外し不可能な媒体、データ構造、プログラムモジュールまたはその他のデータなどである。本明細書で提供された開示及び教示に基づいて、当業者は、様々な実施形態を実行するための適切なその他のやり方及び/または方法を理解するであろう。
したがって、明細書及び図面は、制限を意味するというよりも、むしろ例証として考慮されるべきである。しかしながら、様々な修正や変更が、添付の特許請求の範囲に記述されているように、より広い趣旨と本開示の範囲から逸脱することなく成され得るということは、明白であろう。
本開示の実施形態は、以下の条項を考慮して記載され得る。
条項1. ホストシステムと通信するように構成されたシステムオンチップ(SoC)であって、
前記SoCは複数の処理コアを備え、前記複数の処理コアのうち少なくとも1つが前記SoCのネットワークコンピュータサブシステムの一部としてまたは前記SoCのサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムは前記ホストシステム及び前記サーバサブシステムのために管理ネットワークトラフィックが構成され、前記ネットワークコンピュータサブシステムはI/Oサブシステムを介して前記ホストシステム及び前記サーバコンピュータサブシステムと通信するように構成され、
前記SoCは再構成可能メモリリソースを備え、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、
前記SoCは、前記ネットワークコンピュータサブシステムの一部として機能するように構成された第1の物理層ファブリックと、前記サーバコンピュータサブシステムの一部として機能するように構成された第2の物理層ファブリックを備え、前記第1の物理層ファブリック及び前記第2の物理層ファブリックは、互いに物理的に分離され、
前記SoCは、前記サーバコンピュータサブシステムと前記ネットワークコンピュータサブシステム用に前記処理コア、メモリリソース及び前記I/Oリソースを少なくとも構成するための管理コンピュータサブシステムと、
前記構成された処理コア、メモリリソース及び前記I/Oリソースを前記第1の物理層ファブリックまたは前記第2の物理層ファブリックにマッピングするファブリックブリッジと、を備える前記SoC。
条項2. 再構成可能最終レベルキャッシュ(LLC)リソースをさらに備え、前記最終レベルキャッシュリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項1に記載のSoC。
条項3. 前記最終レベルキャッシュリソースの前記一部が前記管理コンピュータサブシステムによって構成され、前記ファブリックブリッジによって前記第1の物理層ファブリックまたは前記第2の物理層ファブリックにマッピングされる、条項2に記載のSoC。
条項4. 再構成可能I/Oリソースをさらに備え、前記I/Oリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能である、先行条項のいずれか1項に記載のSoC。
条項5. ホストシステムと通信するように構成されたシステムオンチップ(SoC)であって、
複数の処理コアを備え、それぞれの処理コアは前記SoCのネットワークコンピュータサブシステムの一部としてまたは前記SoCのサーバコンピュータサブシステムの一部として機能するように再構成されることが可能であり、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムは前記ホストシステム及び前記サーバサブシステム用の管理ネットワークトラフィックが構成され、
前記サーバコンピュータサブシステム及び前記ネットワークコンピュータサブシステム用のリソースを管理するための管理コンピュータサブシステムを備える前記SoC。
条項6. 再構成可能メモリリソースをさらに備え、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項5に記載のSoC。
条項7. 再構成可能I/Oリソースをさらに備え、前記I/Oリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項5または6に記載のSoC。
条項8. 再構成可能最終レベルキャッシュ(LLC)リソースをさらに備え、前記最終レベルキャッシュリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成されることが可能な、条項5から7のいずれか1項に記載のSoC。
条項9. 前記管理コンピュータサブシステムは、前記サーバコンピュータサブシステムと前記ネットワークコンピュータサブシステム用に前記処理コア、メモリリソース、I/Oリソース及び前記最終レベルキャッシュリソースを構成するように構成された、条項8に記載のSoC。
条項10. 前記構成された処理コア、メモリリソース及びI/Oリソース及び前記最終レベルキャッシュリソースを前記ネットワークコンピュータサブシステム用の第1の物理層ファブリックまたは前記サーバコンピュータサブシステム用の第2の物理層ファブリックにマッピングするためのファブリックブリッジをさらに備え、前記第1の物理層ファブリック及び前記第2の物理層ファブリックは、互いに物理的に分離される、条項9に記載のSoC。
条項11. 前記処理コア、メモリリソース、I/Oリソース及び前記最終レベルキャッシュリソースは、前記サーバコンピュータサブシステムにマッピングされ、サーバコンピュータサブシステムキャッシュコヒーレントファブリックに接続される、条項10に記載のSoC。
条項12. 前記処理コア、メモリリソース、I/Oリソース及び前記最終レベルキャッシュリソースは、前記ネットワークコンピュータサブシステムにマッピングされ、ネットワークコンピュータサブシステムキャッシュコヒーレントファブリックに接続される、条項10または11に記載のSoC。
条項13. 前記再構成可能メモリリソースは1つ以上のメモリコントローラを備える、条項5から12のいずれか1項に記載のSoC。
条項14. 前記SoCは前記メモリコントローラの少なくとも一部を前記ネットワークコンピュータサブシステムまたは前記サーバコンピュータサブシステムにステアリングするためのステアリングユニットをさらに備える、条項13に記載のSoC。
条項15.前記I/Oリソースは、前記ホストシステムと通信するための第1のインタフェース、前記サーバコンピュータサブシステムと通信するための第2のインタフェース、前記ネットワークコンピュータサブシステムと通信するための第3のインタフェース、前記ネットワークと通信するための第4のインタフェースを含む、条項5から7のいずれか1項に記載のSoC。
条項16. 前記サーバコンピュータサブシステム用の1つ以上の専用の処理コア及びメモリリソースと、前記ネットワークコンピュータサブシステム用の1つ以上の専用の処理コア及びメモリリソースと、をさらに備える、条項5から15のいずれか1項に記載のSoC。
条項17. システムオンチップ(SoC)を構成するための方法であって、前記方法は、
複数の処理コアを構成することを含み、少なくとも1つの処理コアが前記SoCのサーバコンピュータサブシステムの一部としてまたは前記SoCのネットワークコンピュータサブシステムの一部として機能するように再構成が可能であり、前記サーバコンピュータサブシステムはコンピュータサービスを提供するように構成され、前記ネットワークコンピュータサブシステムはホストシステム及び前記サーバコンピュータサブシステム用のネットワークトラフィックを管理するように構成され、
前記方法は複数のメモリリソースを備えることを含み、前記メモリリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成が可能であり、
前記方法は複数のI/Oリソースを備えることを含み、前記I/Oリソースの少なくとも一部は、前記ネットワークコンピュータサブシステムの一部としてまたは前記サーバコンピュータサブシステムの一部として機能するように再構成が可能であり、
前記構成された処理コア、メモリリソース及び前記I/Oリソースは、ファブリックブリッジを使用して、前記ネットワークコンピュータサブシステム用の第1の物理層ファブリックまたは前記サーバコンピュータサブシステム用の第2の物理層ファブリックにマッピングされ、前記第1の物理層ファブリック及び前記第2の物理層ファブリックは、互いに物理的に分離される、前記方法。
条項18. 前記メモリリソースは1つ以上のメモリコントローラを含み、前記方法はさらに、前記ネットワークコンピュータサブシステムの一部として、または前記サーバコンピュータサブシステムの一部として機能する前記1つ以上のメモリコントローラを設定することを含む、条項17に記載の方法。
条項19. 前記サーバコンピュータサブシステム用の1つ以上の専用の処理コア及びメモリリソースを割り当てることと、
前記ネットワークコンピュータサブシステム用の1つ以上の専用の処理コア及びメモリリソースを割り当てることと、をさらに含む、条項17または18に記載の方法。
条項20. 前記複数の処理コアを構成することと、前記複数のメモリリソースを構成することと、前記複数のI/Oリソースを構成することは、前記SoCの管理コンピュータサブシステムによって動的に実行される、条項17から19のいずれか1項に記載の方法。
その他の変形は本開示の趣旨の範囲内である。したがって、開示された技術は様々な修正及び代替的構造であることが可能であるが、それらの特定の図示された実施形態は、図面に示され、詳細に上述されている。ただし、本開示を特定の開示される形態(複数可)に限定することを何ら意図するものではなく、逆に、添付の特許請求の範囲において定義される開示の趣旨ならびに範囲に包含される全ての修正、代替的構造及び等価物を網羅することを意図するものであることが理解されるべきである。
用語「a」、「an」、「the」の使用及び本開示の特定の実施形態を記載する関係において類似の参照(特に以下の特許請求の範囲との関係において)は、特に本明細書において指示がない限り、または文脈によって明らかに矛盾しない限り、単数及び複数の両方を含むと解釈される。「comprising」、「having」、「including」、及び「containing」の用語は、別段の記載がない限り、オープンエンドの用語として解釈されるべきである(すなわち「including, but not limited to,」を意味する)。「connected」という用語は、介在するものが何かある場合であっても部分的または全体的に含まれ、取り付けられ、または一緒に接合されているものと解釈すべきである。本明細書における値の範囲の列挙は、単に、範囲内に入る、それぞれ分離した値を個別に言及する簡潔な方法として機能することを目的とし、特に指示がない限り、各個々の値はあたかも個別に本明細書で引用されているかのように明細書中に組み込まれる。本明細書で記載された全ての方法は、特に指示がない限り、または文脈によって明らかに矛盾しない限り、任意の好適な順序で実施されることができる。本明細書にて提供された、任意の例、及び全ての例の使用、または例示的な用語の使用(例えば「such as」)は、単に、本開示の実施形態を明らかにすることを目的とし、特に指示がない限り、本発明の範囲について制限を課するものではない。明細書内の文言は、本開示の実行に不可欠な、任意の請求されていない要素を示すものと解釈すべきではない。
特に断りのない限り、「X、YまたはZのうち少なくとも1つ」等の離接語は、それらの項目、用語等に一般的に存在するために使用されるような文脈内で解釈されることが意図され、X、Y、Z、または任意のそれらの組み合わせ(例えば、X、Y及び/またはZ)のいずれかであり得る。したがって、このような離接語は一般的に、特定の実施形態は、Xのうち少なくとも1つ、Yのうち少なくとも1つ、またはZのうち少なくとも1つがそれぞれ存在する必要があることを意図されておらず、また暗示すべきではない。
本開示の好ましい実施形態は、本明細書で記載されており、本開示を実施するために発明者に既知の最良の様態を含む。それらの好ましい実施形態の変動は、前述の記載を読むことで当業者には明白になる可能性がある。発明者は、当業者がこのような変形を適切に採用し、発明者は本明細書で具体的に記載されたもの以外でも実行し得ると考えられる。したがって、本開示は、適用される法律によって認められたここに添付された特許請求の範囲に引用された本主題の全ての変動及び等価物を含む。さらに、その全ての可能な変動における上述した要素の任意の組み合わせは、特に指示がない限り、または文脈によって明らかに矛盾しない限り、本開示によって包含される。