JP2018502376A - 複数のコンピュートサブシステムを備えるチップ上のシステム - Google Patents

複数のコンピュートサブシステムを備えるチップ上のシステム Download PDF

Info

Publication number
JP2018502376A
JP2018502376A JP2017528810A JP2017528810A JP2018502376A JP 2018502376 A JP2018502376 A JP 2018502376A JP 2017528810 A JP2017528810 A JP 2017528810A JP 2017528810 A JP2017528810 A JP 2017528810A JP 2018502376 A JP2018502376 A JP 2018502376A
Authority
JP
Japan
Prior art keywords
compute subsystem
network
subsystem
server
soc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017528810A
Other languages
English (en)
Other versions
JP6514330B2 (ja
Inventor
マーク ブラッドリー デイビス
マーク ブラッドリー デイビス
デイビッド ジェームス ボーランド
デイビッド ジェームス ボーランド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2018502376A publication Critical patent/JP2018502376A/ja
Application granted granted Critical
Publication of JP6514330B2 publication Critical patent/JP6514330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/782Hierarchical allocation of resources, e.g. involving a hierarchy of local and centralised entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

実施形態は、システムオンチップ上に1つまたは複数のサーバコンピュートサブシステムのインスタンスを設けることによって、最低限かつ増分費用で追加のコンピューティングリソースを提供することができる。システムオンチップは、複数のコンピュートサブシステムを含むことができ、各々のコンピュートサブシステムは、専用の処理及びメモリリソースを含むことができる。システムオンチップはまた、各々のサブシステムに関する処理及びメモリリソースを管理することができる管理コンピュートサブシステムを含むこともできる。【選択図】図1

Description

本発明は、複数のコンピュートサブシステムを備えるチップ上のシステムに関する。
一般に、組織や会社は、複数の通信ネットワークを介してコンピューティングサービスを提供する。例えば、コンピューティングサービスは、インターネットを介して異なるクライアントに提供することができるウェブストレージや仮想サーバなどのウェブサービスを含んで良い。一部の例では、必要に応じて仮想サーバがクライアントに貸し出される場合もある。
一部の例では、ネットワーク帯域幅及び処理要求は、各々のクライアントによる使用法に応じて変化する場合がある。例えば、第1のクライアントは、サーバ上のネットワーク帯域幅及びコンピューティングリソースを全て利用することができ、これは同一サーバと通信中の他のクライアントの速度を落とす可能性がある。
実施形態は、システムオンチップ上に1つまたは複数のサーバコンピュートサブシステムのインスタンスを設けることによって、最低限かつ増分費用で追加のコンピューティングリソースを提供することができる。システムオンチップは、複数のコンピュートサブシステムを含むことができ、各々のコンピュートサブシステムは、専用の処理及びメモリリソースを含むことができる。システムオンチップはまた、各々のサブシステムに関する処理及びメモリリソースを管理することができる管理コンピュートサブシステムを含むこともできる。
本開示による種々の実施形態が図面を参照して記載される。
本開示の一部の実施形態によるシステムのブロック図である。 本開示の特定の実施形態によるシステムオンチップ(SoC)のハイレベルなブロック図である。 本開示の特定の実施形態による各々のコンピュートサブシステムに対して物理的に隔離された外部メモリと通信するように構成されたSoCの詳細なブロック図である。 本開示の特定の実施形態による各々のコンピュートサブシステムに対して論理的に隔離された外部メモリと通信するように構成されたSoCの詳細なブロック図である。 本開示の特定の実施形態による管理コンピュートサブシステムのブロック図である。 本開示の特定の実施形態によるI/Oサブシステムのブロック図である。 本開示の特定の実施形態による共有リソースユニットのブロック図である。 本開示の特定の実施形態によるフロー図である。 少なくとも1つの例示の実施形態による、1つまたは複数のネットワークを介して接続された1つまたは複数のサービスプロバイダコンピュータ及び/またはユーザデバイスを含む、本明細書に記載される機構及びシステムに関する一例のアーキテクチャを示す図である。 種々の実施形態を履行することができる環境を示す図である。
以下の記載において、種々の実施形態が記載される。説明する目的で、これらの実施形態の完璧な理解を与えるために特有の構成及び詳細が記載される。しかしながらこれらの実施形態は、この固有の詳細がなくても実施され得ることも当業者に明らかであろう。さらに、記載される実施形態を不明瞭にしないためによく知られた機構は省略されるまたは簡素化される場合もある。
一般的に言えば、サーバは、例えば電源、冷却供給源、ネットワーキングリソース、ディスクドライブ、シートメタル、サーバの物理的な設置面積などの高価な製品リストを含む場合があり、これらは累積して高価なサーバシステムとなる可能性がある。各々の付加的なサーバシステムが、複数のサーバに対応付けられたコンピュートリソースを必要とする任意のインフラストラクチャのコストを増分的に加える場合もある。これにより、より多くのコンピューティングリソースを提供するために付加的なサーバシステムを有することは、サーバインフラストラクチャに対して比例式にかなりのコストを加える可能性がある。
開示される技術の種々の実施形態は、システム内に存在する現在のシリコン要素を活用し改良することによって、最低限かつ増分費用で追加のコンピューティングリソースを提供することができる。一部の実施形態において、追加のコンピュートリソースを提供するためにサーバコンピュートサブシステムがサーバに加えられる場合がある。例えばコストを有意に増大させることなく、ネットワーク機能を既に含むシステムオンチップ(SoC)の中にサーバコンピュートサブシステムを実装することができる。SoCは、コンピュートサービスを提供するためにサーバコンピュートサブシステムを含み、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを少なくとも管理するためにネットワークコンピュートサブシステムを含んで良い。新たに加えられるサーバコンピュートサブシステムは、インフラストラクチャに追加のサーバを加える、またはサーバにサーバソケットを加えることに対して同様の利点を与えることができる。いくつかの実施形態において、コンピュートサブシステムは、プロセッサコアなどの専用処理リソースを有するサブシステムを含む場合もある。
コンピュータネットワークは典型的には、データをホストし、複数のクライアントまたは組織にサービスを提供することができる複数のサーバを含むことができる。例えばサーバは、場合によって多数のクライアントコンピュータに対してクラウドコンピューティング、解析、ウェブサービス、ストレージ、データベース、アプリケーション、展開サービスなどのサービスを提供することができる。クライアントまたは組織は、これらのサービスまたはデータを利用して、ストレージ、データ処理及びウェアハウジング、ウェブ及びモバイルアプリケーション、アーカイブ及び多くの他のタスクなどの広範な種類の作業負荷を行うことができる。一般に、クライアントがサーバからのサービスまたはデータを要求し、サーバが特定のタスクを実行することでネットワークを介してリクエストに答える及び/またはデータを供給することによって応答する。ネットワークトラフィックは、例えば、特定の時間におけるサービスを要求するクライアントの数、サーバの容量などのいくつかの要因に応じて変動する場合がある。一部の例では、サーバが同時に何人ものクライアントにサービスを提供する場合、ネットワークの輻輳が生じる可能性がある。例えば、一人のクライアントが全てのネットワーク帯域幅を利用しているとき、これにより同一サーバと通信中の他のクライアントの速度が遅くなる場合がある。
一部の例では、ネットワークシステムは、ネットワークトラフィックを監視することでデータの流通量を調整し、帯域幅の輻輳を最小限にすることができる。例えばネットワークシステムは、異なるクライアントにウェブサービスを提供するホストシステム(例えばx86サーバ)に通信可能に結合される場合がある。ネットワークシステムは、1つまたは複数のプロセッサコア、キャッシュ、ネットワーク加速ロジック、メモリコントローラ及びI/Oサブシステムなどを含むことができる。一部の実施形態において、ネットワークシステムはまた、サーバ(例えばホストシステム)によって提供されるウェブサービスに関連するトラフィックシェーピング、ネットワークストレージ処理などの他の機能を果たす場合もある。一部の例では、ネットワークシステムの機能は、ホストシステムに通信可能に結合され得るシステムオンチップ(SoC)上のコンピュートサブシステムとして実施される場合もある。例えばSoCは、プラグインカードを利用してまたはホストシステムのマザーボード上にはんだ付けされてホストシステム(例えば1つまたは複数のサーバ)に結合させることができる。
典型的なSoCは、単一のチップに組み込まれたシステムの機能を含んで良い。例えばSoCは、複数のプロセッサコア、揮発性または不揮発性のメモリモジュール、メモリコントローラ、1つまたは複数の内部バス、標準的なインターフェース、周辺機器、電圧調整器、電力管理回路、発振器及び位相同期ループなどのタイミングリソースなどを含むことができる。1つのチップ上で複数のチップの機能を履行することで、製造及び組立コストを削減することができる。加えてSoCは一般に、より小さな設置面積を有し、空間要件もより低下する。したがってSoCの実装は一般に、同一の機能を実装するマルチチップシステムと比べて消費する電力が少なくなり、よりコスト効果が高くなる。
開示される技術の種々の実施形態は、システムオンチップ上に1つまたは複数のサーバコンピュートサブシステムのインスタンスを設けることによって、比較的低い(例えば最小限の)増分費用で追加のコンピューティングリソースを提供することができる。いくつかの実施形態において、既存のインフラストラクチャをシステムレベルで活用することによって、サーバにサーバコンピュートサブシステムを加えることができる。例えばサーバコンピュートサブシステムは、コストを有意に増大させることなく、ネットワーク機能を既に含むSoC内に実装されて良い。SoCは、コンピュートサービスを提供するためのサーバコンピュートサブシステムと、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを少なくとも管理するためのネットワークコンピュートサブシステムとを含む場合がある。SoC内の追加のサーバコンピュートサブシステムは、一部の態様では、インフラストラクチャの追加のサーバまたはサーバのサーバソケットと同様であって良い。一部の実施形態は、サーバコンピュートサブシステムとネットワークコンピュートサブシステムの間に事前に定義された通信機構を有することでSoC上で完全に別個のプロセッサインスタンスを可能にすることができる。いくつかの実施形態において、サーバコンピュートサブシステムは、周辺機器コンポーネント相互接続エクスプレス(PCIe)インターフェースなどのSoC内の標準的なインターフェースを利用してネットワークコンピュートサブシステムと通信する場合もある。これは、PCIeインターフェースを介して典型的なネットワーキングSoC(例えばサーバコンピュートサブシステムを持たずに)と通信するホストシステム通信と同様であり得る。これにより少なくとも一部の実施形態は、ホストシステムとSoCのネットワークコンピュートサブシステム間の通信経路を妨害せずに、コンピュートサブシステムにSoC内の内部インターフェースを介して通信させることによってジッター及びセキュリティリスクを緩和させることができる。
さらに一部の実施形態は、ネットワークコンピュートサブシステム及びサーバコンピュートサブシステムの各々のために、例えば処理及びメモリリソースなどの共有されない専用リソースを提供する。各々のサブシステムのための専用リソースを有することで、ホストシステム及びサーバコンピュートサブシステムによって提供されるサービスを同時に利用する可能性のある異なるクライアントに関するジッターを最小限にすることができる。例えば一部の例では、2人以上のクライアントがホストシステムと同時に通信する際、ネットワークコンピュートサブシステムとサーバコンピュートサブシステムの間でプロセッサ及びメモリリソースが共有される場合、ネットワーク帯域幅問題が生じる可能性があり、これは基幹システムなどの要求の厳しいシステムの性能に影響を与える可能性がある。例えば一人のクライアントがリソースを完全に利用し、他のクライアントの性能に影響を与えることでジッターが生じる可能性がある。さらに、特定の実装形態によると、何らかのセキュリティ攻撃が影響を受けたサブシステム内に含まれる可能性があるため、隔離されたサブシステムを有することも、基幹システムの関するセキュリティリスクを緩和させることになる。
少なくとも一部の実施形態が単一のサーバコンピュートサブシステムをSoC内に含むように記載され示されているが、他の実施形態は、SoC内に単一のサーバコンピュートサブシステムを含むように限定されるわけではない。例えば一部の実装形態では、複数のサーバコンピュートサブシステムがSoC内に含まれる場合もある。
図1は、本明細書に記載される開示の特定の実施形態による例示のシステム100を示している。特定の実施形態において、SoC102は、サーバコンピュートサブシステム106及びネットワークコンピュートサブシステム104を含んで良い。SoC102はまた、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106に関するリソースを管理するように構成され得る管理コンピュートサブシステム108も含む場合がある。
図1は、ホストシステム110と通信するように構成されたSoC102を示す。SoC102とホストシステム110間の通信は、PCIeインターフェースまたは任意の他の好適なインターフェースなどのインターフェース112を利用して行われて良い。
一部の例では、ホストシステム110は、複数のクライアントに対してマルチテナントプラットフォームを提供する場合がある。例えばホストシステム110は、クラウドコンピューティング、クラウドストレージ、解析、ウェブサービス、データベース、アプリケーション、展開サービスなどのサービスを異なるクライアントに提供することができる。ホストシステム110は、例えばx86サーバなどのサーバを含んで良い。一部の実施形態において、ホストシステム110内の1つまたは複数のプロセッサが、SoC102上のソケットに接続される場合もある。一部の実装形態では、SoC102は、プラグインカードを利用して、またはホストシステム110のマザーボード上にはんだ付けされてホストシステム110に結合させることができる。
SoC102は、ネットワークコンピュートサブシステム104、サーバコンピュートサブシステム106及び管理コンピュートサブシステム108を含んで良い。いくつかの実施形態において、コンピュートサブシステムは、プロセッサコアなどのその独自の専用処理リソースを含むことができる。いくつかの実施形態において、先に考察したようにネットワークコンピュートサブシステム104とサーバコンピュートサブシステム106が物理的に隔離されることで、ジッターを削減し、セキュリティリスクを抑えることができる。いくつかの実施形態において、SoC102は、物理的または論理的に隔離され得る外部メモリ(図示せず)と通信することが可能である場合がある。例えば一実施形態において、外部メモリは、コンピュートサブシステムの各々に対して物理的に隔離されて良く、その独自の専用メモリコントローラ及びメモリチャネルを利用して各々のコンピュートサブシステムによってアクセス可能であって良く、例えばネットワークコンピュートサブシステム104に関する外部メモリ、及びサーバコンピュートサブシステム106に関する別の外部メモリが存在し得る。別の実施形態において、外部メモリが論理的に隔離される(例えばソフトウェア分割によって)場合もあり、共通のマルチポートメモリコントローラ及びメモリチャネルを利用して各々のコンピュートサブシステムによってアクセス可能である場合もある。さらにSoC102は、簡素化の目的でここには示されないが、その意図する機能を果たすのに必要であるとみなされる他のコンポーネントを含む場合もあることを理解されたい。
ネットワークコンピュートサブシステム104は、ネットワークトラフィックシェーピング、ネットワーク加速、ネットワークストレージ処理などの機能に関連するネットワークを提供するように構成されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム104は、ネットワークインターフェースコントローラ(NIC)またはネットワークコプロセッサの少なくとも一部の機能を含む場合もある。特定の実施形態において、ネットワークコンピュートサブシステム104は、例えば課金、査定、トラフィックシェーピング、暗号化、チョーキングなどの、ホストシステム110によって提供されるウェブサービスに関連する任意の機能を含む場合もある。ネットワークコンピュートサブシステム104は、処理コア、キャッシュ、メモリコントローラなどの専用の処理及びメモリリソースを含んで良く、これらはサーバコンピュートサブシステム106によって共有されない。ネットワークコンピュートサブシステム104はまた、ホストシステム110、サーバコンピュートサブシステム106及びネットワークとインターフェース接続するように構成され得るI/Oサブシステムを含んで良い。
サーバコンピュートサブシステム106は、例えば仮想または物理的リソースなどのコンピュートサービスをクライアントコンピュータに提供するように構成されて良い。例えばコンピュートサービスは、種々のサイズの仮想マシンインスタンスを起動すること、要求に応じて仮想マシンにストレージ容量を対応させること、仮想マシン、データ処理、記憶装置などを貸し出すことによってアプリケーションを稼働するためのリソースをクライアントコンピュータに提供することを含むことができる。サーバコンピュートサブシステム106は、処理コア、キャッシュ、メモリコントローラなどの専用の処理及びメモリリソースを含んで良く、これらはネットワークコンピュートサブシステム104によって共有されない。いくつかの実施形態において、コンピュートサブシステム106は、かなりの量の追加の電源、ネットワーキングリソース、冷却供給源、ピン、シートメタルなどを加えることなく、SoC102の一部として含まれて良い。よってサーバコンピュートサブシステム106は、それに関連する追加のコストがかからずに、追加のサーバをホストシステム110内のソケットの1つに加える、または追加のサーバシステムを加えるのと同じようにコンピューティングリソースを増やすことができる。
別の実施形態において、サーバコンピュートサブシステム106をSoC102の一部として実装することで、ホストシステム110に対して別のサーバシステムを加えるのと比べて製造及び組立コストを低下させることができる。さらにサーバコンピュートサブシステム106をSoC102上に実装しても、システムレベルにおける物理的な設置面積または空間要件は変わらない場合が多い。種々の実施形態によるSoC実装はまた、サーバコンピュートサブシステム106がSoC102上の内部バスを利用してネットワークコンピュートサブシステム104と通信することに起因して、低電力要件を実現することもできる。これらの利点はエンドユーザにとっての低コストにつなげることが可能である。
いくつかの実施形態において、サーバコンピュートサブシステム106を利用して、ホストシステム110の作業負荷の一部を軽減することもできる。一部の例では、サーバコンピュートサブシステム106と協働するホストシステム110は、高性能のコンピュートサービスを提供することができる。例えばホストシステム110は、迅速なターンアラウンドサービスの処理に集中することができ、サーバコンピュートサブシステム106に対する一部の低い効率の作業負荷を軽減することでシステムのスループットを高めることができる。
管理コンピュートサブシステム108は、SoC102の種々のサブシステムを管理するように構成されて良い。例えば管理コンピュートサブシステム108は、ブート管理、種々のサブシステムのリセット及び電力管理、ならびに機能性に関連する任意の他のSoC管理を提供するように構成されて良い。管理コンピュートサブシステム108はまた、各々のサブシステムを独立してリセットしたり電源を入れたりするように構成されて良い。管理コンピュートサブシステム108はまた、異なるサブシステムに対応付けられたリソースを管理するように構成されて良い。例えば管理コンピュートサブシステム108は、各々のサブシステムのための専用の処理及びメモリリソースのプールから各々のサブシステムのための専用の処理及びメモリリソースを構成することができる。いくつかの実施形態において、管理コンピュートサブシステム108は、1つまたは複数のプロセッサコアなどのその独自の専用処理リソースを含む場合もある。
一部の実施形態によると、SoC102内のネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106は、2つのサブシステムを物理的に隔てることによって互いから完全に隔離することができる。SoC102上の各々のサブシステムは、別々のリセット及び/または電力ドメイン上に実装することができる。サブシステムの1つがリセットされるまたはその電源を切ることが必要な場合に、他のサブシステムは、影響されることなく機能を継続することができる。
いくつかの実施形態において、SoC102は、ネットワークコンピュートサブシステム104、サーバコンピュートサブシステム106及び管理コンピュートサブシステム108を独立してリセットすることができるようなリセットロジック(図示せず)を含んで良い。SoC102を完全にリセットするために別個のリセットラインが存在して良い。いくつかの実施形態において、SoC102の異なるサブシステムは、異なる電力ドメイン上にあって良い。例えばネットワークコンピュートサブシステム104は第1の電力ドメイン上にあり、サーバコンピュートサブシステム106は第2の電力ドメイン上にあり、管理コンピュートサブシステム108は第3の電力ドメイン上にあって良い。これにより、他のサブシステムに影響を与えることなく、異なるサブシステムを独立して電源を入れたり切ったりすることが可能になる。
いくつかの実施形態において、必要な作業負荷に応じて、ホストシステム110は、サーバコンピュートサブシステム106に対するコンピューティングサービスタスクの一部を軽減する場合がある。例えば一部の例では、ホストシステム110が、より緊急の及び/または処理集中的なタスク(例えば迅速な結果を要するタスク)を行い、さほど緊急ではない、さほど重要ではない、またはさほど処理集中的ではないタスクをSoC102に肩代わりさせることができる。一部の他の例では、ホストシステム110上のサーバの電力消費は、サーバコンピュートサブシステム106の電力消費より大きくなる可能性があるため、ホストシステム110は、一部の低電力タスクをSoC102に肩代わりさせる場合もある。
いくつかの実施形態において、管理コンピュートサブシステム108は、例えばソフトウェアまたはハードウェア構成に基づいて、サーバコンピュートサブシステム106にどのコンピューティングサービスタスクを肩代わりさせるかを決定する場合もある。いくつかの実施形態において、コンピューティングサービスタスクの一部は、サーバコンピュートサブシステム106によって実行するようにタグ付けされる場合もある。例えば管理コンピュートサブシステム108は、タグ付けされ(例えばフラグまたはデータフィールドに基づいて)たコンピューティングサービスタスクを特定し、それらのタスクを実行するようにサーバコンピュートサブシステム106に転送する場合もある。
いくつかの実施形態において、外部エンティティまたはシステムが、どのコンピューティングサービスタスクがサーバコンピュートサブシステム106によって実行され得るかを決定する場合もある。例えば外部エンティティまたはシステムは、ネットワーク接続を介して管理コンピュートサブシステム108と通信して、サーバコンピュートサブシステム106によって実行され得るタスクを特定することができる。
それ故、種々の実施形態は、追加の電源、冷却供給源、ネットワーキングリソース、ディスクドライブ、シートメタル、サーバの物理的設置面積などを加えることなく、サーバの内部に追加のサーバコンピュートサブシステムを設けることができる。特定の実施形態によると、SoCの一部としてサーバコンピュートサブシステムを実装することの追加のコストは、インフラストラクチャに別のサーバを加えるよりも、あるいはさらには別のサーバソケットを加えるのと比べて少ない、または最低限になる可能性がある。例えば本明細書に記載されるようにサーバコンピュートサブシステムを実装するのに関連するコストは、例えばサーバコンピュートサブシステムに対応付けられるプロセッサ及びメモリリソースなどの新たなサーバコンピュートサブシステムに関する追加のダイ面積に限定されて良い。
図2は、開示される技術の一実施形態によるより詳細なSoC102のコンポーネントを示す。
SoC102は、図1を参照して考察したネットワークコンピュートサブシステム104、管理コンピュートサブシステム108及びサーバコンピュートサブシステム106に加えて加速装置210及び共有リソースユニット208を含んで良い。ネットワークコンピュートサブシステム104は、I/Oサブシステム202及び専用リソース204を含んで良い。サーバコンピュートサブシステム106は、専用リソース206を含んで良い。別々の専用リソースを有することで、各々のサブシステムが独立して機能することが可能になり、ジッターまたはクライアントサービスに対するセキュリティリスクを回避することが可能になる。
I/Oサブシステム202は、SoC102上の他のサブシステムと通信するため、かつ外部システムと通信するために1つまたは複数のインターフェースを含んで良い。例えばI/Oサブシステム202は、サーバコンピュートサブシステム106と通信するための第1のインターフェース212を含んで良い。I/Oサブシステム202は、図1に示されるようにホストシステム110と通信するための第2のインターフェース112を含んで良い。インターフェース212は、PCIeまたは任意の他の好適なインターフェースなどの標準的なインターフェースに基づいて良い。例えばI/Oサブシステム202は、他のサブシステムのPCIeインターフェースと接続するためにPCIeルートコンプレックス(RC)デバイスを含んで良い。I/Oサブシステム202はまた、ネットワーク接続能力のために第3のインターフェース214を含む場合もある。いくつかの実施形態において、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106は、I/Oサブシステム202のインターフェース214を利用してネットワーク(例えばインターネット、イントラネット)と通信することができる。例えばインターフェース214は、イーサネット、トークンリング、Wi-Fi、ATM(非同期転送モード)などの標準規格に基づく場合がある。いくつかの実施形態において、I/Oサブシステム202はまた、ハードドライブ、光学ドライブなどの外部の大容量記憶装置に接続するためのインターフェースを含む場合もある。例えばインターフェースは、シリアルATAまたはSATAとしても知られるシリアルアドバンストテクノロジーアタッチメントに基づく場合もある。
いくつかの実施形態において、サーバコンピュートサブシステム106はネットワークコンピュートサブシステム104のI/Oサブシステム202を利用して、ホストシステム110と通信することができる。例えばサーバコンピュートサブシステム106は、ネットワークコンピュートサブシステム104を利用して、ホストシステム110と通信してデータ流通量を移動させる、またはネットワークストレージ処理などのネットワーク機能を行うことができる。ネットワークコンピュートサブシステムのみを備えるSoCは、ホストシステム110に対するスマートネットワークインターフェースコントローラ(NIC)として機能することができる。例えばネットワークコンピュートサブシステムによって、ホストシステム110がI/Oサブシステム202を利用してネットワークに接続することを可能にすることができる。しかしながら一部の実施形態によると、SoC102は、ホストシステム110に対して外向きのスマートNIC機能を提示し、SoC102上のサーバコンピュートサブシステム106に対しては内向きのスマートNIC機能を提示する場合もある。例えば外向きのスマートNIC機能によって、ホストシステム110、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106がI/Oサブシステム202を利用して(例えばインターフェース214を介して)ネットワークに接続することを可能にすることができる。同様に内向きのスマートNIC機能によってサーバコンピュートサブシステム106がI/Oサブシステム202を利用して(例えばインターフェース212及びインターフェース112を介して)ホストシステム110に接続することを可能にすることもできる。
専用リソース204は、ネットワークコンピュートサブシステム104のためのマルチ−コアプロセッサ及びメモリリソースを含んで良い。マルチ−コアプロセッサは、同一のプロセッサ内に複数の処理装置を含んで良い。メモリリソースは、キャッシュ、メモリコントローラ、メモリなどを含んで良い。例えばキャッシュは、レベル1(L1)、レベル2(L2)及びレベル3(L3)またはラスト−レベルキャッシュなどのキャッシュヒエラルキーを含んで良い。いくつかの実施形態において、マルチ−コアプロセッサは、マルチ−コア間でバスならびにL1キャッシュ及び/またはL2キャッシュなどの特定のリソースを共有する場合がある。一部の例では、シングルまたはマルチ−コアプロセッサにおける各々のコアはまた、複数の実行中の論理プロセッサ(またはスレッド)を含む場合もある。そのようなコアにおいて(複数の論理プロセッサをサポートする)、実行パイプラインのいくつかの段階及びより低レベルのキャッシュ(例えばL1またはL2)が共有される場合もある。マルチ−コアプロセッサの非限定的な例の一部には、ARM'sコルテックスA57、MIPS、AMDPhenom、インテルATOMなどが含まれて良い。L1キャッシュは一次キャッシュとして使用されて良く、L2キャッシュは二次キャッシュとして使用されて良い。いくつかの実施形態において、L1キャッシュ及びL2キャッシュがプロセッサコアに組み込まれる場合もある。L3キャッシュがSoC102上にある場合もあり、同一のサブシステムに関する全てのプロセッサによって共有されて良い。メモリコントローラは、ダブルデータレート(DDR)コントローラ、DDR2コントローラまたは任意の好適なコントローラを含んで良く、外部メモリ(図示せず)へのアクセスを管理するのに使用されて良い。
いくつかの実施形態において、専用リソース204は、ネットワークコンピュートサブシステム104のための専用の処理及びメモリリソースを含む場合があり、これはパワーオンリセット時にネットワークコンピュートサブシステム104のための処理及びメモリリソースの専用プールから構成することができる。例えばネットワークコンピュートサブシステム104のための処理及びメモリリソースの専用プールはパワーオンリセット時に8つの4−コアプロセッサと、8つの4MB L2キャッシュとを含んで良く、6つの4−コアプロセッサと、6つの4MB L2キャッシュをネットワークコンピュートサブシステム104に割り当てることによって専用リソース204を構成することができる。いくつかの実施形態において、処理及びメモリリソースの専用プールにおける各々のプロセッサに関するコアの数及びL1/L2キャッシュのサイズもまた構成可能であって良い。例えば一部の例では、パワーオンリセット時に、5つの2−コアプロセッサと、5つの2.5MB L2キャッシュをネットワークコンピュートサブシステム104に割り当てることによって専用リソース204が構成される場合もある。
専用リソース206は、サーバコンピュートサブシステム106のためのマルチ−コアプロセッサ及びメモリリソースを含んで良い。専用リソース206は、1つまたは複数の処理コアと、メモリリソースとを含んで良い。マルチ−コアプロセッサの非制限的な例の一部には、ARM'sコルテックスA57、MIPS、AMDPhenom、インテルATOMなどが含まれて良い。メモリリソースには、キャッシュ、メモリコントローラなどが含まれて良い。例えばキャッシュは、例えばL1、L2及びL3またはラスト−レベルキャッシュなどのキャッシュヒエラルキーを含んで良い。L1キャッシュは一次キャッシュとして使用されて良く、L2キャッシュは二次キャッシュとして使用されて良い。いくつかの実施形態において、L1キャッシュ及びL2キャッシュがプロセッサコアに組み込まれる場合もある。L3キャッシュがSoC102上にある場合もあり、同一のサブシステムに関する全てのプロセッサによって共有されて良い。メモリコントローラは、DDRコントローラ、DDR2コントローラまたは任意の好適なコントローラを含んで良く、外部メモリ(例えばDRAMなどのシステムメモリ)へのアクセスを管理するのに使用されて良い。
いくつかの実施形態において、専用リソース206は、サーバコンピュートサブシステム106のための専用の処理及びメモリリソースを含む場合があり、これはパワーオンリセット時にサーバコンピュートサブシステム106のための処理及びメモリリソースの専用プールから構成することができる。例えばサーバコンピュートサブシステム106のための処理及びメモリリソースの専用プールは、パワーオンリセット時に8つの4−コアプロセッサと、8つの4MB L2キャッシュを含んで良く、6つの4−コアプロセッサと、6つの4MB L2キャッシュをサーバコンピュートサブシステム106に割り当てることによって専用リソース206を構成することができる。いくつかの実施形態において、処理及びメモリリソースの専用プールにおける各々のプロセッサに関するコアの数及びL1/L2キャッシュのサイズもまた構成可能であって良い。例えば一部の例では、パワーオンリセット時に、専用リソース206は、7つの3−コアプロセッサと、7つの3MB L2キャッシュをサーバコンピュートサブシステム106に割り当てることによって構成されて良い。
加速装置210は、ネットワークコンピュートサブシステム104に関するネットワーキング加速を実現するように構成されて良い。いくつかの実施形態において、加速装置210は、ハードウェア加速器、種々のパイプラインなど異なる種類の加速器を含む場合がある。加速装置210はまた、RDMA(リモートダイレクトメモリアクセス)、クリプトエンジンなどを支持する場合もある。例えばクリプトエンジンがハードウェアにおいて暗号機能を実行することにより、ソフトウェアオーバーヘッドを削減し、ネットワーキングに関連する暗号解読、暗号化及び認証機能の実行を加速することができる。いくつかの実施形態において、加速装置210はサーバコンピュートサブシステム106によってアクセスすることができない場合もある。
共有リソースユニット208は、ネットワークコンピュートサブシステム104とサーバコンピュートサブシステム106の間で共有することができる1つまたは複数のリソースを含んで良い。いくつかの実施形態において、共有リソースユニット208は、いかなるジッターまたはセキュリティの問題も生じることなく、ネットワークコンピュートサブシステム104とサーバコンピュートサブシステム106の間で安全に共有することができる1つまたは複数の周辺機器を含む場合がある。例えば共有リソースユニット208には、乱数発生器、プロセッサ間通信モジュール、スクラッチパッドメモリ、フラッシュメモリなどが含まれて良い。
図3Aは、一例の実施形態において各々のコンピュートサブシステムに対して物理的に隔離された外部メモリと通信するように構成されたSoC102の詳細なブロック図300を示す。図3Aは、図1及び図2を参照して先に考察したようなネットワークコンピュートサブシステム104及び106を備えるSoC102を図示している。
ネットワークコンピュートサブシステム104は、例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ302などの処理リソースと、例えばキャッシュ304及びL3キャッシュ308、ネットワークコンピュートサブシステムメモリコントローラ310及びメモリチャネル312などのメモリリソースとを含むことができる専用リソース204(図2を参照)を含んで良い。専用リソース204は、図3Aを参照して示されるものより多くのまたはこれより少ないコンポーネントを含む場合もあることを理解されたい。いくつかの実施形態において、ネットワークコンピュートサブシステム104のための専用リソース204は、ネットワークコンピュートサブシステム104のための処理及びメモリリソースの専用プールから割り当てられて良い。
ネットワークコンピュートサブシステムマルチ−コアプロセッサ302は、同一のプロセッサ内に複数のプロセッサコアまたは処理装置を含んで良い。特定の実施形態において、ネットワークコンピュートサブシステムマルチ−コアプロセッサ302は、キャッシュ304(例えばL1キャッシュ及び/またはL2キャッシュ)に結合される場合もある。いくつかの実施形態において、ネットワークコンピュートサブシステム104のための専用プロセッサコアの数は、ネットワークコンピュートサブシステム104のためのプロセッサコアのプールからパワーオンリセット時の管理コンピュートサブシステム108によって構成することができる。例えば1つの例では、プロセッサコアのプールは32個のプロセッサコアを含み、これにより32個以下のプロセッサコアを専用処理リソースとしてネットワークコンピュートサブシステム104に割り当てることを可能にする場合がある。いくつかの実施形態において、プロセッサコアの数は、必要とされるコンピュートリソースを仮想マシンインスタンスのスループット要件に見合うように構成することができる。
ネットワークコンピュートサブシステムマルチ−コアプロセッサ302は、プロセッサコアの1つまたは複数のプロセッサ上で複数の命令をまとめて実行するように構成されて良い。これらの命令は、例えばコンピュータプログラムの形態でコンピュータ可読記憶媒体に記憶させることができる。コンピュータ可読記憶媒体は、非一時的であって良い。
いくつかの実施形態において、各々のプロセッサコアは、L1キャッシュ及び/またはL2キャッシュに結合されて良い。例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ302は、命令及びデータの一時的な記憶のために各々がL1命令キャッシュ(例えば48KB)及び/またはL1データキャッシュ(例えば32KB)を含むことができるARM(登録商標)Cortex(登録商標)A57マルチプロセッサコアを含むことができる。いくつかの実施形態において、L1及びL2キャッシュは、スタティックランダムアクセスメモリ(SRAM)を利用して実装されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム104のためのL1キャッシュ、L2キャッシュ、L3キャッシュ、メモリコントローラ、メモリチャネルなどの専用プールからネットワークコンピュートサブシステム104のための専用メモリリソースが割り当てられる場合もある。例えばいくつかの実施形態において、キャッシュ304(L1/L2キャッシュ)のサイズは、最大限利用可能なキャッシュサイズに基づいてパワーオンリセット時の管理コンピュートサブシステム108によって構成することができる。例えばキャッシュ304は、サブシステムのために最大限利用可能なキャッシュ(例えば4MB)以下である任意の好適なサイズを有するように構成されて良い。
いくつかの実施形態において、ネットワークコンピュートサブシステムマルチ−コアプロセッサ302は、バス及びL3キャッシュなどの特定のリソースを複数のコア間で共有する場合がある。例えば図3Aに示されるように、L3キャッシュ308はネットワークコンピュートサブシステムマルチ−コアプロセッサ302の複数のコアによって共有されて良い。いくつかの実施形態において、L3キャッシュ308のサイズは、最大限利用可能なL3キャッシュのサイズに基づいてパワーオンリセット時の管理コンピュートサブシステム108によって構成することができる。例えばL3キャッシュ308は、最大限利用可能なキャッシュ(例えば32MB)以下である任意の好適なサイズを有するように構成されて良い。
ネットワークコンピュートサブシステムメモリコントローラ310は、メモリチャネル312を介してネットワークコンピュートサブシステムマルチ−コアプロセッサ302、キャッシュ304及びL3キャッシュ308と、外部メモリ(図示せず)との間でのデータ転送を制御するように構成されて良い。外部メモリには、DDR同期ダイナミックランダムアクセスメモリ(DRAM)、DDR2DRAM、DRAMなどが含まれて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム104に関する外部メモリは、サーバコンピュートサブシステム106から物理的に隔離される場合があり、インターフェース330を利用してネットワークコンピュートサブシステムメモリコントローラ310及びメモリチャネル312を使用してアクセスすることができる。いくつかの実施形態において、ネットワークコンピュートサブシステムメモリコントローラ310は、1つまたは複数のDDR(ダブルデータレート)コントローラを含む場合もある。DDRコントローラは、メモリチャネル312を利用してデータの流れを制御することによって帯域幅を拡大することができる。いくつかの実施形態において、DDRコントローラの数は、プロセッサコアの数、キャッシュの数などに基づいて決定されて良い。
ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306は、例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ302の複数のコア、キャッシュ304、L3キャッシュ308、加速装置210、ネットワークコンピュートサブシステムメモリコントローラ310、I/Oサブシステム202、管理コンピュートサブシステム108及び共有リソースユニット208などにおいて、ネットワークコンピュートサブシステム104の異なるコンポーネントにおいて一貫性を与えるように構成されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306は、全ての共有データがネットワークコンピュートサブシステム104においてコヒーレントであることを保証するように構成されて良い。例えば特定の共有データが2つ以上の場所に記憶される場合(例えば複数のプロセッサ、キャッシュなど)、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306は、異なる場所における共有データの一致を維持するように動作可能であって良い。ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306は、ソフトウェア管理コヒーレンシ、ハードウェア管理コヒーレンシまたは両方を組み合わせたものを実行することができる。例えばネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306は、スヌーピング、ディレクトリ方式などのコヒーレンシプロトコルに基づいてコヒーレンシを維持するように構成されて良い。いくつかの実施形態において、スヌーピング方式のキャッシュコヒーレンシにおいて、各々の個別のキャッシュ(例えばキャッシュ304、L3キャッシュ308)は、それらがキャッシュしたメモリ位置へのアクセスに備えてアドレスラインを監視することができる。キャッシュがコピーを有する特定の位置への書き込み作業が観測された場合、キャッシュコントローラは、スヌープされたメモリ位置のその独自のコピーを無効にする。いくつかの実施形態において、ディレクトリ方式のコヒーレンシを利用して、異なるコンポーネント間で一貫性を維持することができる共通のディレクトリに共有データを記憶する場合もある。いくつかの実施形態において、スヌープフィルタを利用して、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306に関するコヒーレンシトラフィックをチェックする場合もある。
特定の実施形態において、ネットワークコンピュートサブシステム104が、別個のリセットドメイン上にある場合もある。例えばネットワークコンピュートサブシステム104の全てのコンポーネント、例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ302、キャッシュ304、L3キャッシュ308、ネットワークコンピュートサブシステムメモリコントローラ310、I/Oサブシステム202及びメモリチャネル312は、同時にリセットされて良い。ネットワークコンピュートサブシステム104は、他のサブシステム(例えばサーバコンピュートサブシステム106、管理コンピュートサブシステム108、共有リソースユニット208など)をリセットすることなく独立してリセットされて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム104は、管理コンピュートサブシステム108によってまたはフルチップリセット(例えばSoCリセット)によってリセットされる場合もある。例えばSoCリセットは、ネットワークコンピュートサブシステム104、サーバコンピュートサブシステム106、管理コンピュートサブシステム108及び共有リソースユニット208を含めたSoC102上の全てのサブシステムをリセットすることができる。特定の例では、ネットワークコンピュートサブシステム104をリセットすることは、I/Oサブ202をリセットする場合があり、これはホストシステム110及びサーバコンピュートサブシステム106に関するネットワーキングトラフィックに影響を与える可能性がある場合もある。
特定の実施形態において、ネットワークコンピュートサブシステム104は、別個の電力ドメイン上にある場合がある。例えばネットワークコンピュートサブシステム104は、他のサブシステムから独立して電源を入れたり切ったりすることができる。いくつかの実施形態において、ネットワークコンピュートサブシステム104の異なるコンポーネントは、ネットワークコンピュートサブシステム104内の異なる電力ドメイン上にあって良い。例えばネットワークコンピュートサブシステムマルチ−コアプロセッサ302における各々のコアは、別個の電力ドメイン上にあり、共有L1/L2キャッシュを有する各々のコアプロセッサクラスタは、特定の電力ドメイン上にあり、加速装置210は特定の電力ドメイン上にあり、I/Oサブシステム202は別個の電力ドメイン上にある場合がある。異なるコンポーネントのために別の電力ドメインを有することによって、SoC102上での効率的な電力管理を可能にすることができる。例えばいくつかの実施形態において、電圧操作、クロック操作(例えばクロックゲーティング)または任意の他の好適な方法を介して電力管理を実現することで、各々の電力ドメインに関して独立して電力消費を制御することができる。
図3Aに戻って参照すると、特定の実施形態において、サーバコンピュートサブシステム104は、例えばサーバコンピュートサブシステムマルチ−コアプロセッサ314などのプロセッサリソースと、例えばキャッシュ316及びL3キャッシュ320、ネットワークコンピュートサブシステムメモリコントローラ324及びメモリチャネル326などのメモリリソースとを含むことができる専用リソース206(図2を参照)を含んで良い。専用リソース206は、図3Aを参照して示されたものより多くのまたはこれより少ないコンポーネントを含む場合もあることを理解されたい。いくつかの実施形態において、サーバコンピュートサブシステム106のための専用リソース206は、サーバコンピュートサブシステム106のための処理及びメモリリソースの専用プールから割り当てられる場合もある。
サーバコンピュートサブシステムマルチ−コアプロセッサ314は、同一のプロセッサ内に複数のプロセッサコアまたは処理装置を含んで良い。いくつかの実施形態において、サーバコンピュートサブシステム106のための専用プロセッサコアの数は、サーバコンピュートサブシステム106に関するプロセッサコアのプールからパワーオンリセット時の管理コンピュートサブシステム108によって構成することができる。例えば一例において、プロセッサコアのプールは32個のプロセッサコアを含んで良く、これにより32個以下のプロセッサコアを専用処理リソースとしてサーバコンピュートサブシステム106に割り当てることを可能にすることができる。いくつかの実施形態において、プロセッサコアの数は、必要とされるコンピュートリソースを仮想マシンインスタンスのスループット要件に合致させるように構成することができる。
サーバコンピュートサブシステムマルチ−コアプロセッサ314は、プロセッサコアの1つまたは複数のプロセッサ上で複数の命令をまとめて実行するように構成されて良い。これらの命令は、例えばコンピュータプログラムの形態でコンピュータ可読記憶媒体に記憶させることができる。コンピュータ可読記憶媒体は、非一時的であって良い。
いくつかの実施形態において、各々のプロセッサコアは、L1キャッシュ及び/またはL2キャッシュに結合されて良い。例えばサーバコンピュートサブシステムマルチ−コアプロセッサ314は、命令及びデータの一時的な記憶のために各々がL1命令キャッシュ(例えば48KB)及び/またはL1データキャッシュ(例えば32KB)を含むことができるARM(登録商標)Cortex(登録商標)A57マルチプロセッサコアを含むことができる。いくつかの実施形態において、L1及びL2キャッシュは、スタティックランダムアクセスメモリRAM(SRAM)を利用して実装されて良い。いくつかの実施形態において、サーバコンピュートサブシステム106に関するL1キャッシュ、L2キャッシュ、L3キャッシュ、メモリコントローラ、メモリチャネルなどの専用プールからサーバコンピュートサブシステム106のための専用メモリリソースが割り当てられる場合がある。例えばいくつかの実施形態において、キャッシュ316(L1/L2キャッシュ)のサイズは、最大限利用可能なキャッシュサイズに基づいてパワーオンリセットの管理コンピュートサブシステム108によって構成することができる。例えばキャッシュ316は、最大限利用可能なキャッシュ(例えば4MB)以下である任意の好適なサイズを有するように構成されて良い。
いくつかの実施形態において、サーバコンピュートサブシステムマルチ−コアプロセッサ314は、バス及びL3キャッシュなどの特定のリソースを複数のコア間で共有する場合がある。例えば図3Aに示されるように、L3キャッシュ320はサーバコンピュートサブシステムマルチ−コアプロセッサ314の複数のコアによって共有されて良い。いくつかの実施形態において、L3キャッシュ320のサイズは、最大限利用可能なL3キャッシュのサイズに基づいてパワーオンリセット時の管理コンピュートサブシステム108によって構成することができる。例えばL3キャッシュ320は、最大限利用可能なキャッシュ(例えば32MB)以下である任意の好適なサイズを有するように構成されて良い。
サーバコンピュートサブシステムメモリコントローラ324は、メモリチャネル326を介してサーバコンピュートサブシステムマルチ−コアプロセッサ314、キャッシュ316及びL3キャッシュ320と、外部メモリ(図示せず)との間のデータ転送を制御するように構成されて良い。いくつかの実施形態において、サーバコンピュートサブシステム106に関する外部メモリは、ネットワークコンピュートサブシステム104から物理的に隔離される場合があり、インターフェース332を利用してサーバコンピュートサブシステムメモリコントローラ324及びメモリチャネル326を使用してアクセスすることができる。いくつかの実施形態において、サーバコンピュートサブシステムメモリコントローラ324は、1つまたは複数のDDRコントローラを含む場合がある。いくつかの実施形態において、DDRコントローラの数は、プロセッサコアの数、キャッシュの数などに基づいて決定されて良い。
図3Aに示されるように、ネットワークコンピュートサブシステム104のためのプロセッサ及びメモリリソースは、サーバコンピュートサブシステム106のためのプロセッサ及びメモリリソースによって共有されない。2つのサブシステムは、他のサブシステムの性能に影響を及ぼすことなく、その独自のリソースを利用して独立したタスクを算出することができ、これによりジッター及びセキュリティリスクを最小限にすることができる。これは結果として、ホストシステム110によって提供されるコンピュートサービスを高性能なものにする。
サーバコンピュートサブシステム104は、バスインターフェースユニット322を利用してI/Oサブシステム202と通信するように構成されて良い。いくつかの実施形態において、バスインターフェースユニット322は、他のサブシステムのPCIeバス(例えばI/Oサブシステム202のPCIeに接続するためのインターフェース212)と接続するためにPCIeルートコンプレックス(RC)デバイスを含む場合もある。特定の実施形態において、バスインターフェースユニット322はまた、ハードドライブ、光学ドライブなどの大容量記憶装置に接続するためのSATA式のインターフェースを含む場合もある。
サーバコンピュートサブシステム104は、I/Oサブシステム202を介してホストシステム110と通信するように構成されて良い。例えばサーバコンピュートサブシステム104は、バスインターフェース212を介してI/Oサブシステム202と通信することができ、I/Oサブシステム202はバスインターフェース112を介してホストシステム110と通信することができる。いくつかの実施形態において、ネットワークコンピュートサブシステム104の電源が落ちるような事態においても、サーバコンピュートサブシステム106は引き続きI/Oサブシステム202を利用してホストシステム110と通信することができる。例えばサーバコンピュートサブシステム106は、ネットワークトラフィックの道筋を決め、I/Oサブシステム202を介してネットワークストレージ処理作業を行うことが可能であり得る。
サーバコンピュートサブシステムコヒーレント相互接続ネットワーク318は、サーバコンピュートサブシステムマルチ−コアプロセッサ314、キャッシュ316、L3キャッシュ320、サーバコンピュートサブシステムメモリコントローラ324、バスインターフェースユニット322、管理コンピュートサブシステム108及び共有リソース208においてコヒーレンシを提供するように構成されて良い。例えばサーバコンピュートサブシステムコヒーレント相互接続ネットワーク318は、全ての共有データがサーバコンピュートサブシステム106内でコヒーレントであることを保証することができる。サーバコンピュートサブシステムコヒーレント相互接続ネットワーク318は、ソフトウェア管理コヒーレンシ、ハードウェア管理コヒーレンシまたは両方を組み合わせたものを実行することができる。例えばサーバコンピュートサブシステムコヒーレント相互接続ネットワーク318は、スヌーピング、ディレクトリ方式などのコヒーレンシプロトコルに基づいてコヒーレンシを維持するように構成されて良い。いくつかの実施形態において、スヌーピング方式のキャッシュコヒーレンシにおいて、各々の個別のキャッシュ(例えばキャッシュ316、L3キャッシュ320)は、それらがキャッシュしたメモリ位置へのアクセスに備えてアドレスラインを監視することができる。キャッシュがコピーを有する特定の位置への書き込み作業が観測された場合、キャッシュコントローラは、スヌープされたメモリ位置のその独自のコピーを無効にする。いくつかの実施形態において、ディレクトリ方式のコヒーレンシを利用して、異なるコンポーネント間で一貫性を維持することができる共通のディレクトリに共有データを記憶する場合もある。いくつかの実施形態において、スヌープフィルタを利用して、サーバコンピュートサブシステムコヒーレント相互接続ネットワーク318に関するコヒーレンシトラフィックをチェックする場合もある。
特定の実施形態において、サーバコンピュートサブシステム106が、別個のリセットドメイン上にある場合もある。例えばサーバコンピュートサブシステム106の全てのコンポーネント、例えばサーバコンピュートサブシステムマルチ−コアプロセッサ314、キャッシュ316、L3キャッシュ320、サーバコンピュートサブシステムメモリコントローラ324及びメモリチャネル326は、同時にリセットされて良い。サーバコンピュートサブシステム106は、他のサブシステム(例えばネットワークコンピュートサブシステム104、管理コンピュートサブシステム108、共有リソースユニット208など)をリセットすることなく独立してリセットされて良い。いくつかの実施形態において、サーバコンピュートサブシステム106は、管理コンピュートサブシステム108によってまたはフルチップリセット(例えばSoCリセット)によってリセットされる場合もある。例えばSoCリセットは、ネットワークコンピュートサブシステム104、サーバコンピュートサブシステム106、管理コンピュートサブシステム108及び共有リソースユニット208を含めたSoC102上の全てのサブシステムをリセットすることができる。特定の実施形態では、サーバコンピュートサブシステム106をリセットすることは、ホストシステム110及びネットワークコンピュートサブシステム104の機能に影響を与える可能性はない。
特定の実施形態において、サーバコンピュートサブシステム106が、別個の電力ドメイン上にある場合もある。例えばサーバコンピュートサブシステム106は、他のサブシステムから独立して電源を入れたり切ったりすることができる。いくつかの実施形態において、サーバコンピュートサブシステム106の一部または全てのコンポーネントが、サーバコンピュートサブシステム106内で異なる電力ドメイン上にある場合もある。例えばサーバコンピュートサブシステムマルチ−コアプロセッサ314における各々のコアが別個の電力ドメイン上にあり、共有L1/L2キャッシュ316を有する各々のコアプロセッサクラスタが別個の電力ドメイン上にある場合などである。異なるコンポーネントのために別の電力ドメインを有することによって、各々の電力ドメインの独立した制御を可能にし、これによりSoC102の全体の電力消費を制御するための柔軟性を与えることができる。
いくつかの実施形態において、管理コンピュートサブシステム108及び共有リソースユニット208は、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306に通信可能に結合され得る内部バス328を利用してネットワークコンピュートサブシステム104と通信することができる。同様に管理コンピュートサブシステム108及び共有リソースユニット208は、サーバコンピュートサブシステムコヒーレント相互接続ネットワーク318に通信可能に結合され得る内部バス328を利用してサーバコンピュートサブシステム106と通信することができる。
図3Bは、本開示の特定の実施形態による各々のコンピュートサブシステムに対して論理的に隔離された外部メモリと通信するように構成されたSoC102の詳細なブロック図を示す。図3Bは、例えば図3Aに示されるネットワークコンピュートサブシステム104のためのネットワークコンピュートサブシステムメモリコントローラ310及びメモリチャネル312ならびに、サーバコンピュートサブシステム106のためのサーバコンピュートサブシステムメモリコントローラ324及びメモリチャネル326などの図3Aを参照して考察したような各々のコンピュートサブシステムのための専用のメモリコントローラ及びメモリチャネルの代わりにマルチ−ポートメモリコントローラ334及びメモリチャネル336を含む。マルチ−ポートメモリコントローラ334は、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306及びサーバコンピュートサブシステムコヒーレント相互接続ネットワーク318に通信可能に結合されて良い。
いくつかの実施形態において、マルチ−ポートメモリコントローラ334及びメモリチャネル336は、SoC102が、異なるコンピュートサブシステムに対して論理的に隔離された外部メモリ(例えばDRAM、SDRAM、DDR、DDR2メモリ)と通信することを可能にすることができる。例えばマルチ−ポートメモリコントローラ334は、ネットワークコンピュートサブシステム104が第1のポート上で外部メモリと通信することを可能にし、サーバコンピュートサブシステム106が第2のポート上で外部メモリと通信することを可能にするように構成されて良い。いくつかの実施形態において、マルチ−ポートメモリコントローラ334は、ネットワークコンピュートサブシステム104とサーバコンピュートサブシステム106間のメモリアクセスのアービトレーションを行うように構成されて良い。外部メモリは、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106に対して論理的に隔離されたメモリを含むように区切られたソフトウェアであって良い。
図4は、特定の実施形態による管理コンピュートサブシステム108に関するブロック図を示す。管理コンピュートサブシステム108は、マルチ−コアプロセッサ402、L1/L2キャッシュ404、ネットワークインターフェースユニット406、プライベートメモリ408、周辺装置410及びコンピュータ可読記憶媒体412を含むことができる。
マルチ−コアプロセッサ402は、例えばARM(登録商標)によるA57などの1つまたは複数のプロセッサコアを含んで良い。L1/L2キャッシュ404は、マルチ−コアプロセッサ402の内部または外部であって良い。マルチ−コアプロセッサ402は、コンピュータ可読記憶媒体412上に記憶され得る複数の命令を実行するように構成されて良い。コンピュータ可読記憶媒体412は非一時的であって良い。いくつかの実施形態において、コンピュータ可読記憶媒体には、これに限定するものではないがパラメータランダムアクセスメモリ(PRAM)、SRAM、DRAM、RAM、リードオンリーメモリ(ROM)、電気的消去可能リードオンリーメモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスク(CD)−ROM、デジタルビデオディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、マルチ−コアプロセッサ402によってアクセスすることができる任意の他の媒体が含まれて良い。いくつかの実施形態において、コンピュータ可読記憶媒体412は、周辺装置410の一部である場合もある。L1/L2キャッシュ404は、データの一時的な記憶のためのデータキャッシュを含む場合もある。
ネットワークインターフェースユニット406によって管理コンピュートサブシステム108をネットワークに接続することを可能にすることができる。例えばネットワークインターフェースユニット406は、管理コンピュートサブシステム108をイーサネットなどのネットワークに接続することを可能にし得るイーサネットMAC(メディアアクセスコントロール)を含む場合がある。一部の例では、イーサネットMACは、ネットワークに接続するためのPHY(物理層)デバイスにインターフェース接続するためのイーサネットポートを提供する場合もある。いくつかの実施形態において、外部エンティティまたはシステムが、ネットワーク接続を介して管理コンピュートサブシステム108と通信することで、どのコンピューティングサービスタスクがサーバコンピュートサブシステム106によって実行され得るかを決定することができる。いくつかの実施形態において、管理コンピュートサブシステム108は、ネットワーク接続を介して外部エンティティまたはシステムと通信して仮想マシンの作業負荷を決定することで、パワーオンリセット後に処理及びメモリリソースを構成することができる。
プライベートメモリ408は、管理コンピュートサブシステム108のプライベートな利用のためのメモリを含むことができる。プライベートメモリ408には、ランダムアクセスメモリ(例えばSRAMまたはDRAM)などの揮発性メモリが含まれて良い。例えば管理コンピュートサブシステム108は、データの一時的な記憶のためのプライベートメモリ408を利用する場合もある。
周辺装置410は、管理コンピュートサブシステム108のためのプライベート周辺装置を含んで良い。いくつかの実施形態において、プライベート周辺装置410の一部は、汎用入/出力装置、万能非同期送受信機などSoC102の異なるサブシステムのリブート及び電力管理のためのデバイスを含む場合もある。例えば周辺装置410は、他のサブシステムに対して電力を供給する前にルート−オブ−トラストを確立するために電源投入時に実行することができるブートファームウェアを含めたトラステッドな管理モジュールを含むことができる。いくつかの実施形態において、電力管理は、電圧操作、クロック操作または任意の他の好適な方法を通して行うことができる。いくつかの実施形態において、周辺装置410の一部は、電力管理を実現することで、SoC102上の各々のサブシステムに関する電力ドメインを制御し、これにより各々のサブシステムまたはそのコンポーネントの一部を他のものから独立して電源を入れたり切ったりすることを可能にすることができる。
いくつかの実施形態において、管理コンピュートサブシステム108は、SoC102全体のコールド電源投入時に最初に稼働するように構成されて良い。一部の例では、管理コンピュートサブシステム108は、他のサブシステムに電源が入れられる前に、それらに関するルート−オブ−トラストを確立するために最初に電源が入れられて良い。例えばネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106に関するブートプロセスは、管理コンピュートサブシステム108に関するコアブートの下で階層的に考慮されて良い。いくつかの実施形態において、その後ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106上で稼働するソフトウェアは、管理コンピュートサブシステム108によって、ホストシステム110に対応付けられたプライベートキイまたはホストシステム110によって提供された特定のサービスを利用して署名されたものとして認証されて良い。これにより、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106の両方のプロセスがトラストテッドで独立したブートローダーを介して起動することを可能にすることができる。
いくつかの実施形態において、管理コンピュートサブシステム108は、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106の両方の実際の動作に影響を与えることなく、別個のリセットラインを使用してリセット/リブートされて良い。
図5は、I/Oサブシステム202の一部のコンポーネントを示す。I/Oサブシステム202は、バスインターフェースユニット502と、ネットワークインターフェースユニット504と、I/Oインターフェースユニット506とを含んで良い。
バスインターフェースユニット502は、内部または外部コンポーネントと通信するために1つまたは複数のバスインターフェースを含んで良い。例えばバスインターフェースユニット502は、サーバコンピュートサブシステム106と接続するための第1のインターフェースと、ホストシステム110と接続するための第2のインターフェースとを含むことができる。いくつかの実施形態において、第1のインターフェース及び第2のインターフェースはPCIeインターフェースであって良い。例えばバスインターフェースユニット502は、他のPCIeポートに接続するための1つまたは複数のPCIeポートを含む場合がある。バスインターフェースユニット502は、ルートコンプレックス(RC)ポート及びエンドポイントポート(EP)を含んで良い。図3Aに戻って参照すると、ネットワークコンピュートサブシステム104は、I/Oサブシステム202におけるPCIeポート及びバスインターフェースユニット322におけるPCIeポートを介してサーバコンピュートサブシステム106と通信することができる。同様に図1に戻って参照すると、ネットワークコンピュートサブシステム104は、I/Oサブシステム202におけるPCIeポート及びホストシステム110におけるPCIeポートを介してホストシステム110と通信することができる。
ネットワークインターフェースユニット504は、例えば図2を参照して考察したインターフェース214などのネットワークに接続するためのインターフェースを含んで良い。いくつかの実施形態において、ネットワークインターフェースユニット504は、イーサネットネットワークに接続するために1つまたは複数のイーサネットMACs(例えば10/25/40/50Gb/秒)を含む場合がある。例えばイーサネットMACsは、ネットワークに接続するためにPHY(物理層)デバイスにインターフェース接続するためのイーサネットポートを提供することができる。図3Aに戻って参照すると、1つまたは複数のイーサネットMACsは、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワーク306に接続することができる。
I/Oインターフェースユニット506は、I/O接続のために1つまたは複数のインターフェースを含んで良い。例えばI/Oインターフェースユニット506は、ネットワーク接続(例えばイーサネットなど)のため及び外部バスインターフェース(例えばPCIe)のためのピンまたは相互接続部とインターフェース接続するように構成されて良い。いくつかの実施形態において、I/Oインターフェースユニット506は、1つまたは複数の入/出力信号を選択するためにI/Oマルチプレクサを含む場合もある。いくつかの実施形態において、I/Oマルチプレクサは、I/OのためにSERDES(シリアライズ−デシリアライズ)インターフェースを含む場合もある。
図6は、共有リソースユニット208の一部のコンポーネントを示す。特定の実施形態において、共有リソースユニット208は、ジッターを生じることなく、2つのサブシステムによって共有され得るコンポーネント、例えばプロセス状態を含まないコンポーネントを含むことができる。共有リソースユニット208は、メモリモジュール602、ランダム発生器モジュール604、プロセッサ間通信モジュール606及びスクラッチパッドメモリモジュール608を含んで良い。
メモリモジュール602は、フラッシュメモリなどの不揮発性メモリ記憶装置を含んで良い。例えばメモリモジュール602は、低レベルのフラッシュメモリ管理を実現するために組み込みマルチ−メディアコントローラ(eMMC)またはセキュアデジタル(SD)を含む場合もある。いくつかの実施形態において、メモリモジュール602は、例えばBIOS(ベーシックインプット/アウトプットシステム)、ブートローダーなどの制御コードを記憶するのに使用される場合もある。例えばメモリモジュール602は、両方のサブシステムによって共有され得るコードを含むことができる。
ランダム発生器モジュール604は、数または符号のランダムなシーケンスを生成するように構成されて良い。例えばデータなどの暗号用途または任意のそのような用途のために乱数を使用することができる。いくつかの実施形態において、ランダム発生器モジュール604を使用して、電源投入またはリブート後に各々のサブシステムを立ち上げる前に各々のサブシステムを認証するために、管理コンピュートサブシステム108によって使用され得る乱数またはシーケンスを生成することができる。
プロセッサ間通信モジュール606を使用して、2つのサブシステムに対応付けられた異なるプロセス間の通信を促進することができる。例えばメッセージの受け渡し、同期、共有メモリ及びリモートプロシージャコール(RPC)などの種々の機能のためにデータをやりとりするための通信メイルボックスとしてプロセッサ間通信モジュール606を使用することもできる。
両方のサブシステムによって使用され得るデータの一時的な記憶にスクラッチパッドメモリモジュール608が使用されて良い。いくつかの実施形態において、スクラッチパッドメモリモジュール608は、例えば命令または中間値などの高速検索のために少量のデータを記憶するために高速メモリ(例えば2MB SRAM)を含む場合がある。
[図7は、SoCを構成し起動するための一例の方法を示す。]
図7は、開示される実施形態の1つまたは複数の態様によるフロー図700を示す。プロセス700の一部または全て(あるいは本明細書に記載される任意の他のプロセスまたは変形形態及び/またはその組み合わせ)は、実行可能な命令を有するように構成された1つまたは複数のコンピュータシステムの制御の下に実行されて良く、1つまたは複数のプロセッサ上であるいはハードウェアまたはその組み合わせによってまとめて実行されるコードとして(例えばファームウェア、実行可能命令、1つまたは複数のコンピュータプログラムあるいは1つまたは複数のアプリケーション)履行される場合もある。コードは、例えば1つまたは複数のプロセッサによって実行可能な複数の命令を含み得るコンピュータプログラムの形態でコンピュータ可読記憶媒体上に記憶されて良い。コンピュータ可読記憶媒体は非一時的であって良い。
ステップ702において、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106が起動されて良い。例えば管理コンピュートサブシステム108がネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106を起動させることができる。ネットワークコンピュートサブシステム104は、第1の電力ドメイン上にあって良く、サーバコンピュートサブシステム106は、第2の電力ドメイン上にあって良い。いくつかの実施形態において、管理コンピュートサブシステム108が最初に起動され、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106が起動される前に、それらためのルート−オブ−トラストを確立することができる。例えば管理コンピュートサブシステム108は、電源投入時にブートファームウェアを実行することでルート−オブ−トラストを確立する場合もある。いくつかの実施形態において、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106に関するブートプロセスは、管理コンピュートサブシステム108に関するコアブートの下に階層的に考慮されて良い。いくつかの実施形態において、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106上でその後稼働することになるソフトウェアは、ホストシステム110に対応付けられたプライベートキイまたはホストシステム110によって提供される特定のサービスを利用して署名されたものとして管理コンピュートサブシステム108によって認証される。これにより、ネットワークコンピュートサブシステム104及びサーバコンピュートサブシステム106の両方のプロセスをトラストテッドで独立したブートローダーを介して起動することが可能になる。
ステップ704において、管理コンピュートサブシステム108は、ネットワークコンピュートサブシステム104のための処理及びメモリリソースの専用プールから1つまたは複数の専用の処理及びメモリリソースをネットワークコンピュートサブシステム104に割り当てることによって、ネットワークコンピュートサブシステム104のための処理及びメモリリソースを構成することができる。いくつかの実施形態において、管理コンピュートサブシステム108は、ソフトウェアまたはハードウェア構成に基づいてネットワークコンピュートサブシステム104に関する処理及びメモリリソースの構成を決定するように構成されて良い。例えば管理コンピュートサブシステム108は、ソフトウェアレジスタあるいはSoC102の1つまたは複数のピンの状態をチェックすることで種々の構成を決定することができる。例えば図3Aに戻って参照すると、管理コンピュートサブシステム108は、ネットワークコンピュートサブシステム104が16コアプロセッサを含み、L2キャッシュ304が2MBであり、L3キャッシュ308が16MBであり得ることを決定することができる。管理コンピュートサブシステム108はまた、ネットワークコンピュートサブシステム104のプロセッサ及びメモリ容量に基づいてネットワークコンピュートサブシステム104に関するネットワークコンピュートサブシステムメモリコントローラ310及びメモリチャネル312の数を決定することもできる。
ステップ706において、管理コンピュートサブシステム108は、サーバコンピュートサブシステム106のための処理及びメモリリソースの専用プールから1つまたは複数の専用処理及びメモリリソースをサーバコンピュートサブシステム106に割り当てることによって、サーバコンピュートサブシステム106のための処理及びメモリリソースを構成することができる。いくつかの実施形態において、管理コンピュートサブシステム108は、ソフトウェアまたはハードウェア構成に基づいてサーバコンピュートサブシステム106に関する処理及びメモリリソースの構成を決定するように構成されて良い。例えば管理コンピュートサブシステム108は、ソフトウェアレジスタあるいはSoC102の1つまたは複数のピンの状態をチェックすることで種々の構成を決定することができる。例えば図3Aに戻って参照すると、管理コンピュートサブシステム108は、サーバコンピュートサブシステム106が24コアプロセッサを含み、L2キャッシュ316が4MBであり、L3キャッシュ320が24MBであり得ることを決定することができる。管理コンピュートサブシステム108はまた、サーバコンピュートサブシステム106のプロセッサ及びメモリ容量に基づいてサーバコンピュートサブシステム106に関するサーバコンピュートサブシステムメモリコントローラ324及びメモリチャネル326の数を決定することもできる。
ステップ708において、サーバコンピュートサブシステム106は、ネットワークコンピュートサブシステム104のI/Oサブシステム202を介してホストシステム110と通信することができる。例えば図3Aに戻って参照すると、サーバコンピュートサブシステム106は、バスインターフェース212を利用してI/Oサブシステム202と通信することができる。I/Oサブシステム202はさらに、インターフェース112を利用してホストシステム110と通信することができる。いくつかの実施形態において、サーバコンピュートサブシステム106は、例えばインターフェース214を利用してI/Oサブシステム202を介してネットワークと通信することができる。
少なくとも一部の実施形態は、SoC上にサーバコンピュートサブシステムのインスタンスを設けることによって最低限のコストで追加のサーバを提供することができる。SoCは、各々のコンピュートサブシステムが専用の処理及びメモリリソースを有することができる複数のコンピュートサブシステムを備えることができる。各々のコンピュートサブシステムは、別々に電源を入れたりリセットしたりすることができる。さらに専用リソースを有することによって、他のコンピュートサブシステムの性能に影響を与えることなく各々のコンピュートサブシステムが独立して機能し、これによりジッター及びセキュリティリスクを最小限にすることを可能にすることができる。
[図8及び図9は、本発明の実施形態を実施することができる特定の環境の例を示しており、以下のセクションは他の用途において検討されているため、所望であればこのセクションはざっと目を通すだけでも良い。この用途を検討する際、それらが、単にあなた方の実装形態だけでなく、様々な状況に適用し得るような態様を包含することを望んでいることを覚えておいて下さい]
図8は、少なくとも一例の実施形態による、1つまたは複数のネットワークを介して接続された1つまたは複数のサービスプロバイダコンピュータ及び/またはユーザデバイスを含む本明細書に記載される機能及びシステムに関する一例のアーキテクチャを示す。図1〜図7で考察されたデバイスは、図8に記載されるコンピューティングデバイスの1つまたは複数のコンポーネントを利用することができ、図8に記載される1つまたは複数のコンピューティングデバイスを代表して良い。アーキテクチャ800において、1人または複数のユーザ802はユーザコンピューティングデバイス804(1)から(N)(まとめてユーザデバイス804)を利用して1つまたは複数のネットワーク808を介してアプリケーション806(例えばウェブブラウザまたはモバイルデバイスアプリケーション)にアクセスすることができる。一部の態様において、アプリケーション806は、コンピューティングリソースサービスまたはサービスプロバイダによってホストされる、管理される及び/または提供される場合がある。1つまたは複数のサービスプロバイダコンピュータ810が、1人または複数のユーザ802がやり取りすることができるユーザデバイス804上で稼働するように構成されたネイティブアプリケーションを提供する場合がある。1つまたは複数のサービスプロバイダコンピュータ810は、一部の例では、これに限定するものではないがクライアントエンティティ、低レイテンシーデータストレージ、永続的なデータストレージ、データアクセス、管理、仮想化、クラウドベースのソフトウェアソリューション、電子コンテンツ性能管理などのコンピューティングリソースを提供することができる。また1つまたは複数のサービスプロバイダコンピュータ810は、ウェブホスティング、コンピュータアプリケーション開発及び/または実装プラットフォーム、前述の組み合わせなどを1人または複数のユーザ802に提供するように操作可能であって良い。1つまたは複数のサービスプロバイダコンピュータ810は、一部の例では、1つまたは複数のサードパーティコンピュータ812と通信する場合もある。
一部の例では、ネットワーク808は、例えばケーブルネットワーク、インターネット、無線ネットワーク、携帯電話ネットワークならびに他のプライベート及び/またはパブリックネットワークなどの1つのネットワークまたは多くの異なるタイプのネットワークの組み合わせを含む場合がある。例示される例は、1つまたは複数のネットワーク808を介してアプリケーション806にアクセスする1人または複数のユーザ802であるが、記載される技術は、ユーザが、キオスクまたは任意の他の方法を介して固定電話を介して1つまたは複数のユーザデバイス804を介して1つまたは複数のサービスプロバイダコンピュータ810とやり取りする例にも記載される技術を等しく適用することもできる。記載される技術は、他のクライアント/サーバ構成(例えばセットトップボックスなど)、ならびに非クライアント/サーバ構成(例えばローカルに記憶されたアプリケーションなど)にも適用され得ることにも留意されたい。
上記に簡単に記載したように、アプリケーション806によって1人または複数のユーザ802がウェブコンテンツ(例えばウェブページ、音楽、ビデオなど)にアクセスするなど、1つまたは複数のサービスプロバイダコンピュータ810とやり取りすることを可能にすることができる。サーバのクラスタ内にまたはサーバファームとして恐らく構成された1つまたは複数のサービスプロバイダコンピュータ810は、アプリケーション806及び/またはクラウドベースのソフトウェアサービスをホストすることができる。アプリケーション806をホストするのに他のサーバアーキテクチャを使用することもできる。アプリケーション806は、多くのユーザ802からのリクエストを処理し、応答して多様なアイテムウェブページを供給することが可能であって良い。アプリケーション806は、ソーシャルネットワーキングサイト、オンライン小売り業者、情報サイト、ブログサイト、サーチエンジンサイト、ニュース及びエンターテインメントサイトなどを含め、ユーザインタラクションをサポートする任意のタイプのウェブサイトを提供することができる。上記で考察したように、記載される技術は、例えば1つまたは複数のユーザデバイス804上で稼働する他のアプリケーションなどのように、アプリケーション806以外でも同様に履行することができる。
1つまたは複数のユーザデバイス804は、これに限定するものではないが携帯電話、スマートフォン、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、シンクライアントデバイス、タブレットPC、電子ブック(e−ブック)リーダーなどを任意のタイプのコンピューティングデバイスであって良い。一部の例では、1つまたは複数のユーザデバイス804は、1つまたは複数のネットワーク808を介してまたは他のネットワーク接続を介して1つまたは複数のサービスプロバイダコンピュータ810と通信することができる。加えて1つまたは複数のユーザデバイス804は、1つまたは複数のサービスプロバイダコンピュータ810によって管理される、制御される分散システムの一部である、あるいはそうでなければ1つまたは複数のサービスプロバイダコンピュータ810の一部である(例えばサービスプロバイダコンピュータ810と一体化したコンソールデバイス)場合もある。
例示の一構成において、1つまたは複数のユーザデバイス804は、少なくとも1つのメモリ814と、1つまたは複数の処理装置(または1つまたは複数のプロセッサ816)とを含んで良い。1つまたは複数のプロセッサ816は必要に応じて、ハードウェア、コンピュータ実行可能命令、ファームウェアまたはその組み合わせにおいて履行されて良い。1つまたは複数のプロセッサ816のコンピュータ実行可能命令またはファームウェアインプリメンテーションは、記載される様々な機能を果たすために任意の好適なプログラミング言語で書かれたコンピュータ実行可能またはマシン実行可能命令を含んで良い。1つまたは複数のユーザデバイス804はまた、1つまたは複数のユーザデバイス804に対応付けられた地理的位置情報を提供する及び/または記録するためのジオロケーションデバイス(例えば全地球測位システム(GPS)装置など)を含む場合もある。
メモリ814は、1つまたは複数のプロセッサ816上でロード可能かつ実行可能なプログラム命令ならびにこれらのプログラムの実行時に生成されるデータを記憶することができる。1つまたは複数のユーザデバイス804の構成及びタイプに応じて、メモリ814は、揮発性(ランダムアクセスメモリ(RAM))及び/または不揮発性(リードオンリーメモリ(ROM)、フラッシュメモリなど)であって良い。1つまたは複数のユーザデバイス804はまた、これに限定するものではないが磁気記憶装置、光ディスク及び/またはテープ記憶装置を含めた補助的な取り外し可能な記憶装置及び/または非取り外し可能な記憶装置を含む場合もある。ディスクドライブ及びその関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構想、プログラムモジュール及びコンピューティングデバイスに関する他のデータの不揮発性記憶装置を提供することができる。一部の実装形態では、メモリ814は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)またはROMなどの複数の異なるタイプのメモリを含む場合もある。
より詳細なメモリ814の内容に注目すると、メモリ814は、ブラウザアプリケーション806または専用アプリケーション(例えばスマートフォンアプリケーション、タブレットアプリケーションなど)を介して少なくとも1つのユーザが提供する入力要素または電子サービスウェブページを含めた、本明細書に開示される機構を履行するためのオペレーティングシステム及び1つまたは複数のアプリケーションプログラムまたはサービスを含む場合がある。ブラウザアプリケーション806は、ウェブサイトあるいは1つまたは複数のサービスプロバイダコンピュータ810とやり取りするために他のインターフェースを受信、記憶及び/または表示するように構成されて良い。加えてメモリ814は、これに限定するものではないがユーザID、パスワード及び/または他のユーザ情報などのアクセス信用証明及び/または他のユーザ情報を記憶することもできる。一部の例ではユーザ情報は、これに限定するものではないがデバイスID、クッキー及びIPアドレス、位置などのアカウントアクセスリクエストを確認するための情報を含む場合もある。加えてユーザ情報には、ユーザデバイス804によって取得されたセキュリティに関する質問または地理的な位置に対するユーザが提供した応答が含まれる場合もある。
一部の態様において、1つまたは複数のサービスプロバイダコンピュータ810はまた、携帯電話、スマートフォン、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、シンクライアントデバイス、タブレットPC、などの任意のタイプのコンピューティングデバイスであって良い。加えて、一部の実施形態では、1つまたは複数のサービスプロバイダコンピュータ810は、ホストコンピューティング環境に実装された1つまたは複数の仮想マシンによって実行されることに留意されたい。このホストコンピューティング環境は、1つまたは複数の迅速にプロビジョニングされ解放されるコンピューティングリソースを含むことができ、これらのコンピューティングリソースはコンピューティング、ネットワーキング及び/または記憶装置を含むことができる。またホストコンピューティング環境は、クラウドコンピューティング環境と呼ばれる場合もある。いくつかの実施例において、1つまたは複数のサービスプロバイダコンピュータ810は、1つまたは複数のネットワーク808を介してまたは他のネットワーク接続を介して1つまたは複数のユーザデバイス804と通信することができる。1つまたは複数のサービスプロバイダコンピュータ810はクラスタ内にサーバファームとして、または互いに関連付けられない個々のサーバとして恐らく配置された1つまたは複数のサーバを含むことができる。これらのサーバは、統合された分散コンピューティング環境の一部として本明細書に記載されるキーワード分類及び格付け機構を履行するように構成されて良い。
1つの例示の構成において、1つまたは複数のサービスプロバイダコンピュータ810は、少なくとも1つのメモリ818と、1つまたは複数の処理装置(例えば1つまたは複数のプロセッサ820)とを含むことができる。1つまたは複数のプロセッサ820は必要に応じて、ハードウェア、コンピュータ実行可能命令、ファームウェアまたはその組み合わせにおいて履行されて良い。1つまたは複数のプロセッサ820のコンピュータ実行可能命令またはファームウェアインプリメンテーションは、記載される様々な機能を果たすために任意の好適なプログラミング言語で書かれたコンピュータ実行可能またはマシン実行可能命令を含んで良い。
一部の例において、1つまたは複数のハードウェアプロセッサ820は、シングルコアプロセッサまたはマルチコアプロセッサであって良い。マルチコアプロセッサは、同一のプロセッサの中に複数の処理装置を含むことができる。いくつかの実施形態において、マルチコアプロセッサは、マルチコア間でバス及び第2または第3レベルのキャッシュなど特定のリソースを共有することができる。一部の例では、シングルまたはマルチコアプロセッサにおける各々のコアはまた、複数の実行中の論理プロセッサ(またはスレッド)を含む場合もある。そのようなコアでは(複数の論理プロセッサをサポートする)実行パイプラインの複数のステージ及びより下層レベルのキャッシュが共有される場合もある。
メモリ818は、1つまたは複数のプロセッサ820上でロード可能かつ実行可能なプログラム命令ならびにこれらのプログラムの実行時に生成されるデータを記憶することができる。1つまたは複数のサービスプロバイダコンピュータ810の構成及びタイプに応じて、メモリ818は、揮発性(ランダムアクセスメモリ(RAM))及び/または不揮発性(リードオンリーメモリ(ROM)、フラッシュメモリなど)であって良い。1つまたは複数のサービスプロバイダコンピュータ810またはサーバはまた、補助的な記憶装置822を含む場合もあり、これは取り外し可能な記憶装置及び/または非取り外し可能な記憶装置を含めて良い。補助的な記憶装置822には、これに限定するものではないが磁気記憶装置、光ディスク及び/またはテープ記憶装置などが含まれて良い。ディスクドライブ及びその関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構想、プログラムモジュール及びコンピューティングデバイスに関する他のデータの不揮発性記憶装置を提供することができる。一部の実装形態では、メモリ818は、SRAM、DRAMまたはROMなどの複数の異なるタイプのメモリを含む場合もある。
共に取り外し可能及び非取り外し可能なメモリ818、補助的な記憶装置822はコンピュータ可読記憶媒体の全ての例である。例えばコンピュータ可読記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術において実装された揮発性または不揮発性、取り外し可能または非取り外し可能な媒体が含まれて良い。メモリ818及び補助的な記憶装置822は、コンピュータ記憶媒体の全ての例である。1つまたは複数のサービスプロバイダコンピュータ810内に存在し得るコンピュータ記憶媒体の追加の例には、これに限定するものではないがPRAM、SRAM、DRAM、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVDまたは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスあるいは所望の情報を記憶するのに使用することができ、1つまたは複数のサービスプロバイダコンピュータ810によってアクセスすることができる任意の他の媒体が含まれて良い。上記のいずれかの組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
あるいはコンピュータ可読通信媒体が、コンピュータ可読命令、プログラムモジュール、または搬送波または他の伝送方法などのデータ信号内で伝送される他のデータを含む場合もある。しかしながら本明細書で使用される際、コンピュータ可読媒体は、コンピュータ可読通信媒体を含まない。
1つまたは複数のサービスプロバイダコンピュータ810はまた、1つまたは複数のサービスプロバイダコンピュータ810が、記憶したデータベース、別のコンピューティングデバイスまたはサーバ、ユーザ端末及び/または1つまたは複数のネットワーク808上の他のデバイスと通信することを可能にする1つまたは複数の通信接続824を含む場合もある。1つまたは複数のサービスプロバイダコンピュータ810はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、ディスプレイ、スピーカー、プリンターなどの1つまたは複数のI/O装置826を含む場合もある。
メモリ818は、オペレーティングシステム828、1つまたは複数のデータストア830及び/または光学式の管理コンピュートサブシステムモジュール832、ネットワークコンピュートサブシステムモジュール834及びサーバコンピュートサブシステムモジュール836を含めた本明細書で開示される機構を履行するための1つまたは複数のアプリケーションプログラムまたはサービスを含むことができる。本明細書に記載されるモジュールは、ソフトウェアモジュール、ハードウェアモジュールまたはそれらの好適な組み合わせであって良い。モジュールがソフトウェアモジュールである場合、これらのモジュールは、非一時的コンピュータ可読媒体上で具現化され、本明細書に記載されるコンピュータシステムのいずれかにおけるプロセッサによって処理することができる。いくつかの実施形態において、図1に戻って参照すると、管理コンピュートサブシステムモジュール832は、管理コンピュートサブシステム108の機能を含むことができ、ネットワークコンピュートサブシステムモジュール834はネットワークコンピュートサブシステム104の機能を含むことができ、サーバコンピュートサブシステムモジュール836は、サーバコンピュートサブシステム106の機能を含むことができる。記載されるプロセス及びアーキテクチャは、任意のユーザインタラクションに先だってリアルタイムで、または非同期式に実行することができることに留意されたい。モジュールは、図8において提案されるやり方で構成されて良い、及び/または本明細書に記載される機能は、別個のモジュールとして存在する1つまたは複数のモジュールによって提供することができる、及び/または本明細書に記載されるモジュール機能は複数のモジュールに及ぶ場合があることに留意されたい。
図9は、種々の実施形態による実装態様に関する一例の環境900の態様を示す。理解されるように、説明する目的でウェブベース環境が使用されるが、必要に応じて種々の環境を使用して様々な実施形態を履行することができる。環境には、電子クライアントデバイス902が含まれ、これは適切なネットワーク904を介してリクエスト、メッセージまたは情報を送信し、デバイスのユーザに戻すように情報を伝えるように動作可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子ブックリーダーなどが含まれる。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワークまたは任意の他のそのようなネットワークあるいはその組み合わせを含めた任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されたネットワーク及び/または環境のタイプに少なくとも幾分左右される可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントはよく知られているため、本明細書では詳細に考察しないことにする。ネットワークを介する通信は、有線または無線接続及びその組み合わせによって可能にすることができる。この例において、この環境は、リクエストを受信しそれに応答する内容を提供するためにウェブサーバ906を含むため、ネットワークにインターネットが含まれるが、当業者には明白であるように、他のネットワークに関して、同様の目的を果たす代替のデバイスを使用することも可能である。
例示の環境は、少なくとも1つのアプリケーションサーバ908と、データストア910とを含む。適切なデータストアからデータを取得するなどのタスクを行うためにやり取りすることができ、一続きにつながれるまたはその他のやり方で構成され得るいくつかのアプリケーションサーバ、レイヤ、または他の要素、プロセスまたはコンポーネントが存在する可能性があることを理解されたい。本明細書で使用される際、「データストア」という用語は、データを記憶する、データにアクセスする、データを検索することが可能な任意のデバイスまたはデバイスの組み合わせを指しており、これらは、任意の標準的な分散またはクラスタ環境においてデータサーバ、データベース、データ記憶装置及びデータ記憶媒体の任意の組み合わせ及びそのいくつかを含むことができる。アプリケーションサーバは、必要に応じてデータストアと組み合わせるための任意の適切なハードウェア及びソフトウェアを含むことで、クライアントデバイスに関する1つまたは複数のアプリケーションの態様を実行し、アプリケーションに関するデータアクセス及びビジネスロジックの大半を扱うことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに伝えるべきテキスト、グラフィック、音響及び/またはビデオなどのコンテンツを生成することが可能であり、これらはハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)またはこの例における別の適切な構造化言語の形態でウェブサーバによってユーザに提供されて良い。全てのリクエスト及び応答の処理ならびにクライアントデバイス902とアプリケーションサーバ908間のコンテンツの配信は、ウェブサーバによって対処することができる。本明細書で考察される構造化データは、本明細書の他の場所で考察されるいずれの適切なデバイスまたはホストマシン上でも実行することができるため、ウェブ及びアプリケーションサーバは欠かせないわけではなく、単に一例のコンポーネントであることを理解されたい。
データストア910は、複数の別個のデータタブレット、データベースまたは他のデータ記憶機構及び特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば例示されるデータストアは、製品データ912及びユーザ情報916を記憶するための機構を含み、これらを使用して製造側のためにコンテンツを提供することができる。データストアはまた、ログデータ914のための機構を含むように示されており、このデータは、報告、分析または他のそういった目的のために使用することができる。例えばページイメージ情報及びアクセス権利情報など、データストアに記憶される必要がある多くの他の態様が存在する可能性があり、これらは必要に応じて上記に列記した機構のいずれかにまたはデータストア910内の補助機構に記憶することができることを理解されたい。データストア910は、それに関連するロジックを通してアプリケーションサーバ908から命令を受信し、それに応答してデータを取得する、更新するあるいはそうでなければ処理するように動作可能である。一例において、ユーザは、特定のタイプのアイテムに関してサーチリクエストを発信する場合がある。このようなケースでは、データストアは、ユーザ情報にアクセスしてユーザの同一性を検証する場合があり、カタログ詳細情報にアクセスしてそのタイプのアイテムに関する情報を取得することができる。この情報はその後、ユーザがユーザデバイス902上のブラウザを介して閲覧することができるウェブページ上にリストを形成するなどしてユーザに返すことができる。対象の特定のアイテムに関する情報は、専用ページまたはブラウザのウィンドウで閲覧することができる。
各々のサーバは典型的には、そのサーバの一般的な管理及び動作に関する実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的にはサーバのプロセッサによって実行される際、サーバがその目的とする機能を果たすことを可能にする命令を記憶するコンピュータ可読記憶媒体(例えばハードディスク、ランダムアクセスメモリ、リードオンリーメモリなど)を含む。サーバのオペレーティングシステム及び全体の機能にとって好適なインプリメンテーションは既知であり、商業的に利用可能であり、とりわけ本明細書の開示に照らしてみることで当業者によって容易に履行される。
一実施形態における環境は、1つまたは複数のコンピュータネットワークまたは直接接続を利用して通信リンクを介して相互に接続された複数のコンピュータシステム及びコンポーネントを利用する分散コンピューティング環境である。しかしながらそのようなシステムは、図9に例示されるものより少ないまたはこれより多い数のコンポーネントを有するシステムにおいても等しく適切に動作することが可能であることは当業者によって理解されるであろう。よって図9におけるシステム900の描写は、本質的に例示であるとみなすべきであり、本開示の範囲を制限するものではない。
種々の実施形態はさらに、広範な種類の動作環境において履行することができ、これらは一部のケースでは、いくつかのアプリケーションのいずれかを作動させるのに使用することができる1つまたは複数のユーザコンピュータ、コンピューティングデバイスまたは処理デバイスを含むことができる。ユーザまたはクライアントデバイスは、例えば標準的なオペレーティングシステム上で稼働するデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを稼働し、いくつかのネットワーキング及びメッセージングプロトコルをサポートすることが可能な携帯電話、無線及びハンドヘルドデバイスなどいくつかの汎用パーソナルコンピュータのいずれかを含むことができる。そのようなシステムはまた、多様な商業的に利用可能なオペレーティングシステムならびに開発及びデータベース管理などの目的の他の既知のアプリケーションのいずれかを稼働するいくつかのワークステーションを含むことができる。このようなデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム及びネットワークを介して通信することが可能な他のデバイスなどの他の電子デバイスも含むことができる。
大半の実施形態は、多様な商業的に利用可能なプロトコルのいずれかを利用する通信をサポートするために、トランスミッションコントロールプロトコル/インターネットプロトコル(「TCP/IP」)、オープンシステムインターコネクション(「OSI」)、ファイルトランスファプロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、コモンインターネットファイルシステム(「CIFS」)及びアップルトークなどの当業者によく知られた少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク及びそれらの何らかの組み合わせであって良い。
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキストトランスファープロトコル(「HTTP」)サーバ、FTPサーバ、コモンゲートウェイインターフェース(「CGI」)サーバ、データサーバ、ジャバサーバ及びビジネスアプリケーションサーバを含めた多様なサーバまたは中間層アプリケーションのいずれかを稼働することができる。1つまたは複数のサーバはまた、Java(登録商標)、C、C#またはC++などのプログラミング言語で、あるいはパール、パイソンまたはTCLならびにその組み合わせなどの任意のスクリプト言語で書かれた1つまたは複数のスクリプトまたはプログラムとして履行され得る1つまたは複数のウェブアプリケーションを実行することによってユーザデバイスからのリクエストに応答してプログラムまたはスクリプトを実行することが可能であって良い。1つまたは複数のサーバは、限定ではなく、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)及びIBM(登録商標)から商業的に利用可能なものを含めたデータベースを含む場合もある。
環境は、上記で考察したような多様な種類のデータストア及び他のメモリ及び記憶媒体を含むことができる。これらは、1つまたは複数のコンピュータに対してローカルな記憶媒体あるいはネットワークにわたる一部または全てのコンピュータからリモートな記憶媒体など様々な場所に常駐することができる。特定のセットの実施形態において、情報は当業者によく知られたストレージ−エリアネットワーク(「SAN」)に属する場合もある。同様にコンピュータ、サーバまたは他のネットワークデバイスに属する機能を果たすための一部の必須ファイルが必要に応じてローカルに及び/またはリモートに記憶される場合もある。システムがコンピュータ化されたデバイスを含む場合、各々のそのようなデバイスは、バスを介して電気的に結合され得るハードウェア要素を含むことができ、これらの要素には、例えば少なくとも1つの中央処理装置(「CPU」)、少なくとも1つの入力デバイス(例えばマウス、キーボード、コントローラ、タッチスクリーンまたはキイパッド)及び少なくとも1つの出力デバイス(例えばディスプレイデバイス、プリントまたはスピーカ)が含まれる。そのようなシステムはまた、例えばディスクドライブ、光学記憶装置などの1つまたは複数の記憶装置、及びランダムアクセスメモリ(「RAM」)またはリードオンリーメモリ(「ROM」)などのソリッドステート記憶装置ならびに取り外し可能な媒体デバイス、メモリカード、フラッシュカードなどを含む場合もある。
そのようなデバイスはまた、上記で考察したようにコンピュータ可読記憶媒体リーダー、通信デバイス(例えばモデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及びワーキングメモリを含むこともできる。コンピュータ可読記憶媒体リーダーは、リモートな、ローカルな、固定式の及び/または取り外し可能な記憶装置を表すコンピュータ可読記憶媒体、ならびにコンピュータ可読情報を一時的に及び/または永続的に収容する、記憶する、伝達する及び抽出するための記憶媒体と接続させる、またはこれを収容するように構成される場合がある。システム及び種々のデバイスは典型的には、少なくとも1つのワーキングメモリデバイス内に位置するいくつかのソフトウェアアプリケーション、モジュール、サービスまたは他の要素を含むことになり、これにはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムが含まれる。代替の実施形態は、上記に記載したものから多くの変形形態を有する可能性があることを理解されたい。例えばカスタマイズされたハードウェアが使用される場合もあり、及び/またはハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェア)またはその両方に特定の要素が実装される場合もある。さらに、ネットワーク入/出力デバイスなどの他のコンピューティングデバイスへの接続が利用される場合もある。
コードまたはコードの一部を含む記憶媒体及びコンピュータ可読媒体は、これに限定するものではないがコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶及び/または伝達のために任意の方法または技術で実装された揮発性及び不揮発性、取り外し可能及び非取り外し可能な媒体を含めた記憶媒体及び通信媒体を含め、当分野で既知のまたは使用される何らかの適切な媒体を含むことができ、これには、RAM、ROM、電気的消去可能リードオンリーメモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリーメモリ(CD−ROM)、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、システムデバイスによってアクセスすることができる任意の他の媒体が含まれる。本明細書で提供される開示及び教示に基づいて、当業者は、種々の実施形態を履行するための他のやり方及び/または方法を理解するであろう。
本開示の実施形態は、以下の条項を鑑みて記載することができる。
条項1 ホストシステムと通信するように構成されたチップ上のシステム(SoC)であって、SoCが、
複数のメモリリソースを備え、コンピュートサービスを提供するためのサーバコンピュートサブシステムと、
I/Oサブシステムと、複数のメモリリソースとを備え、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを管理するためのネットワークコンピュートサブシステムであって、I/Oサブシステムを介してサーバコンピュートサブシステム及びホストシステムと通信するネットワークコンピュートサブシステムと、 サーバコンピュートサブシステム及びネットワークコンピュートサブシステムに関するメモリリソースを管理するための管理コンピュートサブシステムとを備え、
SoCが、サーバコンピュートサブシステム及びネットワークコンピュートサブシステムの各々に関して外部メモリと通信することが可能なチップ上のシステム(SoC)。
条項2 I/Oサブシステムが、サーバコンピュートサブシステムと通信するための第1のインターフェースと、ホストシステムと通信するための第2のインターフェースとを含む、条項1のSoC。
条項3 第1のインターフェース及び第2のインターフェースが周辺機器コンポーネント相互接続エクスプレス(PCIe)インターフェースである、条項2のSoC。
条項4 外部メモリが、ネットワークコンピュートサブシステム及びサーバコンピュートサブシステムの各々から物理的または論理的に隔離される、任意の先行する条項のSoC。
条項5 ホストシステムと通信するように構成されたチップ上のシステム(SoC)であって、SoCが、
コンピュートサービスを提供するためのサーバコンピュートサブシステムと、
ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを管理するためのネットワークコンピュートサブシステムと、
サーバコンピュートサブシステム及びネットワークコンピュートサブシステムに関するリソースを管理するための管理コンピュートサブシステムとを備えるチップ上のシステム(SoC)。
条項6ネットワークコンピュートサブシステムが、I/Oサブシステムを備え、該I/Oサブシステムが、サーバコンピュートサブシステムと通信するための第1のインターフェースと、ホストシステムと通信するための第2のインターフェースとを含む、条項5のSoC。
条項7 第1のインターフェース及び第2のインターフェースが周辺機器コンポーネント相互接続エクスプレス(PCIe)インターフェースである、条項6のSoC。
条項8 SoCが外部メモリと通信するように構成され、ネットワークコンピュートサブシステムまたはサーバコンピュートサブシステムのみが外部メモリと通信することができるように、該外部メモリが、ネットワークコンピュートサブシステムまたはサーバコンピュートサブシステムのいずれかから物理的または論理的に隔離される、条項5〜7のいずれかのSoC。
条項9 ネットワークコンピュートサブシステム及びサーバコンピュートサブシステムが、その独自の専用メモリリソースを備える、条項5〜8のいずれかのSoC。
条項10 メモリリソースが、1つまたは複数のメモリコントローラ、レベル1キャッシュ、レベル2キャッシュまたはレベル3キャッシュを含む、条項9のSoC。
条項11 管理コンピュートサブシステムが、サーバコンピュートサブシステム及びネットワークコンピュートサブシステムにメモリリソースを割り当てるように構成される、条項9または10のSoC。
条項12 管理コンピュートサブシステムが、ハードウェアまたはソフトウェア構成に基づいてメモリリソースを割り当てるように構成される、条項9〜11のいずれかのSoC。
条項13 サーバコンピュートサブシステムのための専用メモリリソースが、サーバコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、条項9〜12のいずれかのSoC。
条項14 ネットワークコンピュートサブシステムのための専用メモリリソースが、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、条項9〜13のいずれかのSoC。
条項15 SoCがさらに、サーバコンピュートサブシステム及びネットワークコンピュートサブシステムによって共有される1つまたは複数のリソースを備える、条項5〜14のいずれかのSoC。
条項16 ネットワークコンピュートサブシステムが第1の電力ドメイン上にあり、サーバコンピュートサブシステムが第2の電力ドメイン上にある、条項5〜15のいずれかのSoC。
条項17 サーバコンピュートサブシステム及びネットワークコンピュートサブシステムが別個のリセットドメインにある、条項5〜16のいずれかのSoC。
条項18 ホストシステムと通信するように構成されたシステムオンチップ(SoC)に関する方法であって、方法が、
SoCのネットワークコンピュートサブシステム及びサーバコンピュートサブシステムを起動し、サーバコンピュートサブシステムがコンピュートサービスを提供するように構成され、ネットワークコンピュートサブシステムが、ホストシステム及びサーバコンピュートサブシステムに関するネットワークトラフィックを管理するように構成されることと、
ネットワークコンピュートサブシステムのための処理及びメモリリソースの専用プールから1つまたは複数の専用の処理及びメモリリソースをネットワークコンピュートサブシステムに割り当てることによって、ネットワークコンピュートサブシステムのための専用の処理及びメモリリソースを構成することと、
サーバコンピュートサブシステムに関して利用可能な専用の処理及びメモリリソースから1つまたは複数の専用の処理及びメモリリソースをサーバコンピュートサブシステムに割り当てることによって、サーバコンピュートサブシステムのための専用の処理及びメモリリソースを構成することとを含み、
ネットワークコンピュートサブシステムがI/Oサブシステムを備え、サーバコンピュートサブシステムがI/Oサブシステムを介してホストシステムと通信する方法。
条項19 サーバコンピュートサブシステムがI/Oサブシステムを介してネットワークと通信する、条項18の方法。
条項20 ネットワークコンピュートサブシステムをリセットせずに、サーバコンピュートサブシステムをリセットすることをさらに含む、条項18または19の方法。
本明細書及び図面は、1つの例示とみなすべきであって、限定する意味とみなすべきではない。しかしながら、特許請求の範囲に記載されるより広範な本開示の精神及び範囲から逸脱することなく、種々の修正及び変更がそれに対して行われる可能性があることは明白である。
その他の変形形態も本開示の精神の範囲内にある。よって開示される技術は、様々な修正形態及び代替構造を受けやすく、その特定の例示の実施形態は、図面に示され、詳細に上記に記載されてきた。しかしながら本開示を開示される特有の1つまたは複数の形態に限定することは全く意図されておらず、反対にその意図は、添付の特許請求の範囲において定義される本開示の精神及び範囲の範囲内にある全ての修正形態及び代替構造及び等価物を包含することである。
開示される実施形態を記述する文脈における(とりわけ以下の特許請求の範囲の文脈において)用語「a」及び「an」及び「the」ならびに同様の指示代名詞の使用は、そうでないことが本明細書で指摘されるまたは文脈によって否定されなければ単数及び複数の両方を網羅するように解釈すべきである。用語「備える」「有する」「含む」及び「収容する」は、そうでないことが指摘されなければオープンエンドな用語として解釈すべきである(すなわち「これに限定するものではないが、〜を含む」という意味)。用語「接続される」は、たとえ介在する何かが存在したとしても、一部がまたは全体がその中に収容される、そこに装着される、または合わせて結合されるものと解釈すべきである。本明細書の値の範囲の記述は、そうでないことが本明細書に指摘されなければ、その範囲内にある各々の別々の値を個別に参照する略記方法として機能することが意図されており、各々の別々の値は、それがあたかも本明細書に個別に列記されるかのように明細書に組み込まれている。本明細書に記載される全ての方法は、そうでないことが本明細書に指摘されなければ、あるいはそうでなければ文脈によって明らかに否定されなければ任意の好適な順序で行うことができる。本明細書に提供される全ての例または例示の言葉(例えば「など」)の使用は単に本開示の実施形態をより最適に解明することが意図されており、そうでないことが主張されなければ本開示の範囲に対して限定を与えるものではない。明細書におけるいかなる言葉も、本開示の実施形態に対して必須なものとして何らかの主張されない要素を示すものとして解釈すべきではない。
フレーズ「X、YまたはZのうちの少なくとも1つ」などの選言的な言葉は、具体的にそうでないことが述べられなければ、特定のアイテム、用語などがX、YまたはZのいずれかであり得る、あるいはその組み合わせ(例えばX、Y及び/またはZ)であり得ることを提示するために一般的に使用されるように、この文脈において理解されるように意図されている。よってそのような選言的な言葉は、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つまたはZの少なくとも1つが各々存在することを要求することを暗示することは一般的に意図されないし、そのようなことを暗示すべきでもない。
本開示を実施するための発明者等に知られた最適な様式を含め、本開示の好ましい実施形態が本明細書に記載されている。そのような好ましい実施形態の変形形態は、上述の記載を読むことで当業者に明らかであろう。本発明者等は、必要に応じて熟練した職人がそのような変形形態を採用することを期待しており、本発明者等は、本開示が具体的に本明細書に記載されるもの以外方法で実践されることを意図している。したがって本開示は、適用可能な法律によって許可されるように、ここに添付される特許請求の範囲において記載される主題の全ての修正形態及び等価物を含む。さらに、その全ての可能な変形形態における上記に記載した要素の何らかの組み合わせは、そうでないことが本明細書に指摘されなければ、あるいはそうでなければ文脈によって明らかに否定されなければ本開示によって包含される。

Claims (15)

  1. ホストシステムと通信するように構成されたチップ上のシステム(SoC)であって、前記SoCが、
    コンピュートサービスを提供するためのサーバコンピュートサブシステムと、
    前記ホストシステム及び前記サーバコンピュートサブシステムに関するネットワークトラフィックを管理するためのネットワークコンピュートサブシステムと、
    前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムに関するリソースを管理するための管理コンピュートサブシステムとを備える、チップ上のシステム(SoC)。
  2. 前記ネットワークコンピュートサブシステムが、I/Oサブシステムを備え、前記I/Oサブシステムが、前記サーバコンピュートサブシステムと通信するための第1のインターフェースと、前記ホストシステムと通信するための第2のインターフェースとを含む、請求項1に記載のSoC。
  3. 前記第1のインターフェース及び前記第2のインターフェースが周辺機器コンポーネント相互接続エクスプレス(PCIe)インターフェースである、請求項2に記載のSoC。
  4. 前記SoCが、外部メモリと通信するように構成され、前記ネットワークコンピュートサブシステムまたは前記サーバコンピュートサブシステムのみが前記外部メモリと通信することができるように、前記外部メモリが、前記ネットワークコンピュートサブシステムまたは前記サーバコンピュートサブシステムのいずれかから論理的または物理的に隔離される、先行請求項のいずれかに記載のSoC。
  5. 前記ネットワークコンピュートサブシステム及び前記サーバコンピュートサブシステムが各々その独自の専用メモリリソースを備える、先行請求項のいずれかに記載のSoC。
  6. 前記メモリリソースが、1つまたは複数のメモリコントローラ、レベル1キャッシュ、レベル2キャッシュまたはレベル3キャッシュを含む、請求項5に記載のSoC。
  7. 前記管理コンピュートサブシステムが、前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムにメモリリソースを割り当てるように構成される、請求項5または6に記載のSoC。
  8. 前記管理コンピュートサブシステムが、ハードウェアまたはソフトウェア構成に基づいてメモリリソースを割り当てるように構成される、請求項5〜7のいずれかに記載のSoC。
  9. 前記サーバコンピュートサブシステムのための前記専用メモリリソースが、サーバコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、請求項5〜8のいずれかに記載のSoC。
  10. 前記ネットワークコンピュートサブシステムのための前記専用メモリリソースが、ネットワークコンピュートサブシステムコヒーレント相互接続ネットワークに通信可能に結合される、請求項5〜9のいずれかに記載のSoC。
  11. 前記SoCがさらに、前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムによって共有される1つまたは複数のリソースを備える、先行請求項のいずれかに記載のSoC。
  12. 前記ネットワークコンピュートサブシステムが第1の電力ドメイン上にあり、前記サーバコンピュートサブシステムが第2の電力ドメイン上にある、先行請求項のいずれかに記載のSoC。
  13. 前記サーバコンピュートサブシステム及び前記ネットワークコンピュートサブシステムが、別個のリセットドメインにある、先行請求項のいずれかに記載のSoC。
  14. ホストシステムと通信するように構成されたシステムオンチップ(SoC)に関する方法であって、前記方法が、
    前記SoCのネットワークコンピュートサブシステム及びサーバコンピュートサブシステムを起動し、前記サーバコンピュートサブシステムがコンピュートサービスを提供するように構成され、前記ネットワークコンピュートサブシステムが、前記ホストシステム及び前記サーバコンピュートサブシステムに関するネットワークトラフィックを管理するように構成されることと、
    前記ネットワークコンピュートサブシステムのための処理及びメモリリソースの専用プールから1つまたは複数の専用の処理及びメモリリソースを前記ネットワークコンピュートサブシステムに割り当てることによって、前記ネットワークコンピュートサブシステムのための専用の処理及びメモリリソースを構成することと、
    前記サーバコンピュートサブシステムに関して利用可能な専用の処理及びメモリリソースから1つまたは複数の専用の処理及びメモリリソースを前記サーバコンピュートサブシステムに割り当てることによって、前記サーバコンピュートサブシステムのための専用の処理及びメモリリソースを構成することとを含み、
    前記ネットワークコンピュートサブシステムがI/Oサブシステムを備え、前記サーバコンピュートサブシステムが前記I/Oサブシステムを介して前記ホストシステムと通信する方法。
  15. 前記ネットワークコンピュートサブシステムをリセットせずに、前記サーバコンピュートサブシステムをリセットすることをさらに含む、請求項14に記載の方法。
JP2017528810A 2014-12-19 2015-12-21 複数のコンピュートサブシステムを備えるチップ上のシステム Active JP6514330B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/578,004 2014-12-19
US14/578,004 US10523585B2 (en) 2014-12-19 2014-12-19 System on a chip comprising multiple compute sub-systems
PCT/US2015/067156 WO2016100978A1 (en) 2014-12-19 2015-12-21 System on a chip comprising multiple compute sub-systems

Publications (2)

Publication Number Publication Date
JP2018502376A true JP2018502376A (ja) 2018-01-25
JP6514330B2 JP6514330B2 (ja) 2019-05-15

Family

ID=55182570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017528810A Active JP6514330B2 (ja) 2014-12-19 2015-12-21 複数のコンピュートサブシステムを備えるチップ上のシステム

Country Status (5)

Country Link
US (1) US10523585B2 (ja)
EP (1) EP3234798B1 (ja)
JP (1) JP6514330B2 (ja)
CN (1) CN107111585B (ja)
WO (1) WO2016100978A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021052386A (ja) * 2019-08-16 2021-04-01 ウルトラソック、テクノロジーズ、リミテッドUltrasoc Technologies Limited システムオンチップにおけるイベントメッセージのブロードキャスティング
JP2021528929A (ja) * 2018-07-04 2021-10-21 グラフコアー リミテッドGraphcore Limited データ通過ゲートウェイ

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023453B2 (en) * 2015-01-29 2021-06-01 Hewlett Packard Enterprise Development Lp Hash index
US10313217B2 (en) * 2015-03-13 2019-06-04 Samsung Electronics Co., Ltd. System on chip (SoC) capable of sharing resources with network device and devices having the SoC
US9658671B2 (en) * 2015-09-28 2017-05-23 Qualcomm Incorporated Power-aware CPU power grid design
US9910673B2 (en) * 2016-04-19 2018-03-06 Xiaolin Wang Reconfigurable microprocessor hardware architecture
US10445099B2 (en) 2016-04-19 2019-10-15 Xiaolin Wang Reconfigurable microprocessor hardware architecture
US10761938B2 (en) 2016-09-30 2020-09-01 Intel Corporation System and method for granular reset management without reboot
US11488004B2 (en) * 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
WO2018193352A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
US11232347B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Fabric vectors for deep learning acceleration
US11249779B2 (en) * 2017-09-01 2022-02-15 Intel Corporation Accelerator interconnect assignments for virtual environments
US10573598B2 (en) * 2017-09-28 2020-02-25 Xilinx, Inc. Integration of a programmable device and a processing system in an integrated circuit package
CN110663036B (zh) * 2017-12-04 2023-04-25 谷歌有限责任公司 使用片上系统的数据的同步处理
WO2020044152A1 (en) 2018-08-28 2020-03-05 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
WO2020044238A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
CN111147927A (zh) * 2018-11-06 2020-05-12 中国电信股份有限公司 视频响应系统和方法及智能网卡
US10817455B1 (en) * 2019-04-10 2020-10-27 Xilinx, Inc. Peripheral I/O device with assignable I/O and coherent domains
US11544009B2 (en) * 2019-04-11 2023-01-03 Black Sesame Technologies Inc. Heterogeneous computation and hierarchical memory image sensing pipeline
US11593140B2 (en) 2019-06-28 2023-02-28 Hewlett Packard Enterprise Development Lp Smart network interface card for smart I/O
US11669468B2 (en) 2019-06-28 2023-06-06 Hewlett Packard Enterprise Development Lp Interconnect module for smart I/O
US20200133649A1 (en) * 2019-12-23 2020-04-30 Intel Corporation Processor controlled programmable logic device modification
CN111488310B (zh) * 2020-03-26 2023-07-07 北京中电华大电子设计有限责任公司 一种Soc系统中分组算法功能扩展适配结构及方法
TWI771828B (zh) * 2020-12-16 2022-07-21 英業達股份有限公司 重置方法、重置裝置及智能網卡
US11675722B2 (en) 2021-04-16 2023-06-13 Apple Inc. Multiple independent on-chip interconnect
US11586476B2 (en) * 2021-05-24 2023-02-21 Nxp Usa, Inc. Resource sharing in a multi-core system
US11803471B2 (en) 2021-08-23 2023-10-31 Apple Inc. Scalable system on a chip
US20230229757A1 (en) * 2022-01-18 2023-07-20 Xilinx, Inc. Hierarchical hardware-software partitioning and configuration

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518472A (ja) * 2007-02-06 2010-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
JP2011238231A (ja) * 2010-05-07 2011-11-24 Samsung Electronics Co Ltd システムオンチップ、それを含む装置、及び該システムオンチップの電力制御方法
JP2014038652A (ja) * 2013-10-10 2014-02-27 Canon Inc 通信装置及びその制御方法、プログラム

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6426846A (en) 1987-07-23 1989-01-30 Agency Ind Science Techn Optical recording medium
JP3365581B2 (ja) 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
JP2001290510A (ja) 2001-02-05 2001-10-19 Hitachi Ltd 自動車用制御ユニット
US6691192B2 (en) 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
JP2003316752A (ja) 2002-04-25 2003-11-07 Nec Corp マルチプロセッサシステムおよびリソース割り当て方法
US20120173732A1 (en) 2002-10-22 2012-07-05 Sullivan Jason A Systems and methods for providing resources and interactivity in computer systems
US7162279B2 (en) * 2002-12-20 2007-01-09 Intel Corporation Portable communication device having dynamic power management control and method therefor
US7290260B2 (en) 2003-02-20 2007-10-30 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
US7412588B2 (en) * 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
US7353362B2 (en) 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
WO2005022380A1 (ja) 2003-08-29 2005-03-10 Ipflex Inc. データ処理装置
EP1690185A4 (en) 2003-10-20 2007-04-04 Rhode Island Education UPPER MEMORY MEMORY STRUCTURE FOR STORAGE SERVERS
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7979862B2 (en) 2004-12-21 2011-07-12 Hewlett-Packard Development Company, L.P. System and method for replacing an inoperable master workload management process
JP4856983B2 (ja) 2006-03-02 2012-01-18 株式会社日立製作所 ストレージシステム及びスケジューリング方法
JP4786248B2 (ja) 2005-08-09 2011-10-05 株式会社日立製作所 ストレージシステムの構成管理装置及び構成管理方法
US8566479B2 (en) 2005-10-20 2013-10-22 International Business Machines Corporation Method and system to allow logical partitions to access resources
FR2898753B1 (fr) 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
US7783788B1 (en) * 2006-04-28 2010-08-24 Huawei Technologies Co., Ltd. Virtual input/output server
JP2008044581A (ja) 2006-08-21 2008-02-28 Land Works:Kk ルーフキャリア
US7624222B2 (en) 2006-10-06 2009-11-24 International Business Machines Corporation South bridge system and method
US7464448B2 (en) 2006-10-12 2008-12-16 Illinois Tool Works Inc. Side-release buckle assembly
US8082547B1 (en) 2006-10-31 2011-12-20 Hewlett-Packard Development Company, L.P. Reallocating hardware resources among workloads in accordance with license rights
US7797509B2 (en) 2007-01-11 2010-09-14 Netlogic Microsystems, Inc. Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
US8103853B2 (en) * 2008-03-05 2012-01-24 The Boeing Company Intelligent fabric system on a chip
EP2323036A4 (en) 2008-08-04 2011-11-23 Fujitsu Ltd MULTIPROCESSOR SYSTEM, ADMINISTRATION DEVICE FOR A MULTIPROCESSOR SYSTEM AND COMPUTER READABLE RECORDING MEDIUM IN WHICH AN ADMINISTRATIVE PROGRAM FOR A MULTIPROCESSOR SYSTEM IS RECORDED
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
WO2011150346A2 (en) 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
US9075764B2 (en) 2010-08-11 2015-07-07 Apple Inc. Multiprocessor system-on-a-chip for machine vision algorithms
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
KR101863929B1 (ko) * 2011-02-23 2018-06-01 엘지전자 주식회사 무선통신 시스템에서 m2m(machine to machine) 기기가 멀티캐스트 데이터 관련 정보를 송신 및 수신하는 방법과 이를 위한 장치
KR101855399B1 (ko) 2011-03-24 2018-05-09 삼성전자주식회사 데이터 트래픽을 개선한 SoC 및 이의 동작 방법
JP5939740B2 (ja) * 2011-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的にリソースを割り当てる方法、システム及びプログラム
KR101949382B1 (ko) 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
US8990455B1 (en) 2012-06-21 2015-03-24 Cypress Semiconductor Corporation Offloading tasks from a central processing unit to peripheral function engines
US8959402B2 (en) * 2012-10-04 2015-02-17 Qualcomm Incorporated Method for preemptively restarting software in a multi-subsystem mobile communication device to increase mean time between failures
US20140100837A1 (en) 2012-10-08 2014-04-10 Stefan Heinen Integration verification system
US8934377B2 (en) * 2013-03-11 2015-01-13 Netspeed Systems Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis
US8959266B1 (en) 2013-08-02 2015-02-17 Intel Corporation Dynamic priority control based on latency tolerance
US9684597B1 (en) 2014-08-07 2017-06-20 Chelsio Communications, Inc. Distributed cache coherent shared memory controller integrated with a protocol offload network interface card
US10394731B2 (en) 2014-12-19 2019-08-27 Amazon Technologies, Inc. System on a chip comprising reconfigurable resources for multiple compute sub-systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518472A (ja) * 2007-02-06 2010-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
JP2011238231A (ja) * 2010-05-07 2011-11-24 Samsung Electronics Co Ltd システムオンチップ、それを含む装置、及び該システムオンチップの電力制御方法
JP2014038652A (ja) * 2013-10-10 2014-02-27 Canon Inc 通信装置及びその制御方法、プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021528929A (ja) * 2018-07-04 2021-10-21 グラフコアー リミテッドGraphcore Limited データ通過ゲートウェイ
JP7322131B2 (ja) 2018-07-04 2023-08-07 グラフコアー リミテッド データ通過ゲートウェイ
JP2021052386A (ja) * 2019-08-16 2021-04-01 ウルトラソック、テクノロジーズ、リミテッドUltrasoc Technologies Limited システムオンチップにおけるイベントメッセージのブロードキャスティング
JP7326231B2 (ja) 2019-08-16 2023-08-15 シーメンス インダストリー ソフトウェア インコーポレイテッド システムオンチップにおけるイベントメッセージのブロードキャスティング

Also Published As

Publication number Publication date
EP3234798B1 (en) 2023-04-05
CN107111585A (zh) 2017-08-29
WO2016100978A1 (en) 2016-06-23
CN107111585B (zh) 2020-06-05
EP3234798A1 (en) 2017-10-25
US10523585B2 (en) 2019-12-31
JP6514330B2 (ja) 2019-05-15
US20160182398A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
JP6514330B2 (ja) 複数のコンピュートサブシステムを備えるチップ上のシステム
US10394731B2 (en) System on a chip comprising reconfigurable resources for multiple compute sub-systems
JP7200078B2 (ja) I/oステアリングエンジンを備えるシステムオンチップ
US10248607B1 (en) Dynamic interface port assignment for communication transaction
JP6445710B2 (ja) マルチモード・システム・オン・チップ
US10437492B1 (en) Input/output adapter with offload pipeline for data copying
US10915486B1 (en) Ingress data placement
US9459897B2 (en) System and method for providing data analysis service in cloud environment
US9864701B1 (en) Resource mapping for an input/output device
US10970118B2 (en) Shareable FPGA compute engine
US9910813B1 (en) Single function using multiple ports
CN108293047B (zh) 由用户访问跨多个分布式计算网络的资源的系统和方法
WO2017083313A1 (en) Systems and methods for coordinating data caching on virtual storage appliances
US9836421B1 (en) Standardized interface for network using an input/output (I/O) adapter device
US20230342496A1 (en) Trust brokering and secure information container migration

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181015

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190411

R150 Certificate of patent or registration of utility model

Ref document number: 6514330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190426

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250