JP2021508963A - 相互接続トポロジの自己識別 - Google Patents

相互接続トポロジの自己識別 Download PDF

Info

Publication number
JP2021508963A
JP2021508963A JP2020534180A JP2020534180A JP2021508963A JP 2021508963 A JP2021508963 A JP 2021508963A JP 2020534180 A JP2020534180 A JP 2020534180A JP 2020534180 A JP2020534180 A JP 2020534180A JP 2021508963 A JP2021508963 A JP 2021508963A
Authority
JP
Japan
Prior art keywords
fabric
components
component
routing table
processor
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
JP2020534180A
Other languages
English (en)
Other versions
JP7123146B2 (ja
JP2021508963A5 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2021508963A publication Critical patent/JP2021508963A/ja
Publication of JP2021508963A5 publication Critical patent/JP2021508963A5/ja
Application granted granted Critical
Publication of JP7123146B2 publication Critical patent/JP7123146B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/0016Inter-integrated circuit (I2C)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7452Multiple parallel or consecutive lookup operations
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ファブリックトポロジを自動的に発見するシステムは、少なくとも1つまたは複数の処理ユニット、1つまたは複数のメモリデバイス、セキュリティプロセッサ及び通信ファブリックを含み、通信ファブリックは、処理ユニット(複数可)、メモリデバイス(複数可)及びセキュリティプロセッサに結合された不明トポロジを備える。セキュリティプロセッサは、コンポーネントに関連する様々な属性を取得するために、ファブリックの各コンポーネントに問い合わせを行う。セキュリティプロセッサは、取得された属性を利用して、ファブリック内のコンポーネントのトポロジのネットワークグラフを作成する。セキュリティプロセッサは、ネットワークグラフからルーティングテーブルを生成し、ルーティングテーブルをファブリックコンポーネントにプログラムする。次いで、ファブリックコンポーネントは、ルーティングテーブルを利用して、着信パケットをルーティングする方法を決定する。
【選択図】図7

Description

コンピューティングシステムでは、単一の集積回路(すなわち、チップ)またはマルチチップモジュール上に多数の異なるタイプのコンポーネントを統合することが増えている。システムの複雑性及び消費電力は、異なるタイプのコンポーネントの数に伴い増加する。多くの場合、これらのコンポーネントは、スイッチ、ルータ、通信バス、ブリッジ、バッファ、コントローラ、コヒーレントデバイス及びその他のリンクを介して接続されている。これらの相互接続コンポーネントの組み合わせは、本明細書において「通信ファブリック」または略して「ファブリック」と呼ばれる。
一般的に、ファブリックは、チップまたはマルチチップモジュール上の複数のコンポーネント間でメッセージをルーティングすることにより、通信を容易にする。ファブリックを介して通信されるメッセージの例には、メモリアクセス要求、ステータス更新、データ転送、コヒーレンシー・プローブ、コヒーレンシー・プローブ応答などがある。コンピューティングシステムの複雑性が増すと、システムコンポーネント間で結合及び通信する相互接続ファブリックの複雑性も増す。ラベル及びルートを静的に割り当てることは、通常、実行不可能であり、ファブリックトポロジの規則性について仮定することも不可能である。したがって、不規則なファブリックトポロジを管理するための改善された技術が求められている。
添付図面と共に以下の説明を参照することによって、本明細書に記載される方法及びメカニズムの利点はより良好に理解され得る。
コンピューティングシステムの一実施形態のブロック図である。 ファブリックの一実施形態のブロック図である。 コンピューティングシステムの別の実施形態のブロック図である。 ファブリックに結合されたセキュリティプロセッサの一実施形態のブロック図である。 ネットワークグラフの一実施形態のブロック図である。 ファブリックコンポーネントの一実施形態のブロック図である。 ファブリックトポロジの自動発見プロセスを実行するための方法の一実施形態を示す一般化されたフロー図である。
以下の説明では、本明細書に提示する方法及びメカニズムの完全な理解を提供するために、多くの具体的な詳細が記載されている。しかしながら、当業者は、それらの特定の詳細がなくとも、様々な実施形態を実施可能であることを認識するべきである。いくつかの例では、本明細書に記載される手法を不明瞭にしないために、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術を詳細には示さない。例示を簡潔及び明確にするために、図面に示される要素は、必ずしも縮尺通りに描写されるわけではないことが認識されるだろう。例えば、要素のいくつかの寸法は、他の要素に対して拡張されてよい。
本明細書では、相互接続ファブリックトポロジの自己識別発見プロセスを実装するための様々なシステム、装置、方法及びコンピュータ可読媒体を開示する。一実施形態では、システムは、少なくとも1つまたは複数の処理ユニット、1つまたは複数の入出力(I/O)インターフェース、不明トポロジの相互接続ファブリック、及び1つまたは複数のメモリデバイスを含む。一実施形態では、システムは、任意のファブリックトポロジで動作することができる自律的なブートストラップ発見プロセスを実施する。異なるファブリックシステムのプログラミングを簡素化するために、ファブリックが複数のノード(ダイまたはソケット)にまたがる場合、任意のネットワークオンチップ(NoC)の発見及びプログラミングに対する一般的な解決法が実施される。一実施形態では、情報レジスタのセット及びアルゴリズムを実装してネットワークブロックを横断し、ブロックタイプ及び機能ならびにネットワークコンポーネント間の接続性を発見する。
一実施形態では、ファブリックの発見は、セキュリティプロセッサによって実行される。別の実施形態では、ファブリックの発見は、システム管理プロセッサによって実行される。他の実施形態では、ファブリックの発見は、他のタイプのコンポーネントによって実行することができる。一実施形態では、ファブリックの発見は、ファブリックを発見する際に取得された情報を使用してシステムハードウェアにリセット条件を作成する場合には、設計フローの一部として実行される。一実施形態では、ファブリックの発見は、セキュリティプロセッサがファブリックブロック・インスタンスカウントレジスタを読み取ることによって開始する。ファブリックブロック・インスタンスカウントレジスタは、システム内のファブリックブロックの合計数の表示を記憶し、ファブリックブロック・インスタンスカウントレジスタは、システム内の固定アドレスに存在する。ファブリックブロック・インスタンスカウントレジスタを使用すると、システムのサイズまたはトポロジに関係なく、ファームウェアは一般的な開始点を有することができる。
ファブリックブロックの合計数がファブリックブロック・インスタンスカウントレジスタから取得されると、セキュリティプロセッサは各ブロックを通過してブロックインスタンス情報レジスタを読み取る。これらのレジスタには、ブロックタイプ(例えば、コヒーレントマスタ、非コヒーレントマスタ、クロスバー、コヒーレントスレーブ、非コヒーレントスレーブ)、コマンド及びデータポートのタイプ及び数、データバス幅、クロック速度、ネイバーインスタンス識別子(ID)、ファブリックID及びその他の属性などの情報が含まれる。この情報が各ブロックについて取得されると、以降の処理で使用するデータ構造としてネットワークグラフが構築される。ネットワークグラフに基づいてルーティングアルゴリズムを実行し、NoC及びマルチノードシステムに必要なルーティングを決定することができる。ルート、ブロックタイプ及び機能が発見されると、ファームウェアはファブリックを初期化するために、マスタ、スレーブ及びスイッチの適切なプログラミングを開始する。
ここで図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、少なくとも処理ユニット110A〜B、ファブリック115、入出力(I/O)インターフェース120、メモリコントローラ130(複数可)、ディスプレイコントローラ135、他のデバイス140(複数可)及びセキュリティプロセッサ145を含む。他の実施形態では、コンピューティングシステム100は、他のコンポーネントを含むことができ、及び/またはコンピューティングシステム100は異なる方式で配置することができる。処理ユニット110A〜Bは、任意の数及びタイプの処理ユニットを表す。例えば、一実施形態では、処理ユニット110Aは中央処理ユニット(CPU)であり、処理ユニット110Bはグラフィック処理ユニット(GPU)である。別の実施形態では、処理ユニット110A〜Bは、他の数またはタイプの処理ユニット(例えば、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC))を含むことができる。
ファブリック115は、システム100のコンポーネント間で通信するために利用される、様々なタイプのプロトコルのいずれかによる任意の通信相互接続を表す。ファブリック115は、処理ユニット110A〜B、I/Oインターフェース120、メモリコントローラ130(複数可)、ディスプレイコントローラ135及び他のデバイス(複数可)140を互いに接続するデータパス、スイッチ、ルータ及び他のロジックを提供する。ファブリック115は、要求、応答及びデータトラフィックを処理するだけでなく、トラフィックをプローブしてコヒーレンシを容易にする。ファブリック115は、割り込み要求ルーティング及びシステム100の様々なコンポーネントへの構成アクセスパスも処理する。加えて、ファブリック115は、構成要求、応答及び構成データトラフィックを処理する。ファブリック115は、共有バス構成、クロスバー構成及びブリッジを備えた階層バスを含む、バスベースとすることができる。ファブリック115は、パケットベースにすることもでき、ブリッジ、クロスバー、ポイントツーポイントまたは他の相互接続で階層化することができる。ファブリック115の観点から、システム100の他のコンポーネントは「クライアント」と呼ばれることがある。ファブリック115は、様々なクライアントによって生成された要求を処理し、その要求を他のクライアントに渡すように構成される。
一実施形態では、セキュリティプロセッサ145は、ファブリック115のコンポーネントのトポロジの自律的な発見を開始するように構成される。これは、システム100が通常の構成を有しておらず、システム100の異なる実装内に様々な異なるタイプの機能が含まれる可能性がある状況において役立つことがある。例えば、システム100の1つの実装では、コアあたり16のプロセッサコア及び2つのメモリチャネルを含むことがあり、システム100の第2の実装では、コアあたり8つのプロセッサコア及び1つのメモリチャネルを含むことがある。システム100の他の実装は、他の数のコア、メモリチャネル、メモリコントローラ、メモリデバイスなどを含むことがある。したがって、システムの起動前にファブリック115の構成及び初期化を行う機能は制限される。したがって、これらの状況では、セキュリティプロセッサ145は、システム100の最初の起動中にシステム100の所与の実装の固有トポロジを発見するように構成される。
一実施形態では、セキュリティプロセッサ145は、コンポーネントに関連する様々な属性を取得するために、ファブリック115の各コンポーネントに問い合わせを行うように構成される。一実施形態では、ファブリック115の各コンポーネントは、それぞれのコンポーネントの属性を指定する値を格納するための1つまたは複数のレジスタを含む。次いで、ファブリック115のコンポーネントに問い合わせを行った後、セキュリティプロセッサ145は、様々なコンポーネントから取得された属性に基づいて、ネットワークグラフを作成するように構成される。次に、セキュリティプロセッサ145は、決定されたルート、ブロックタイプ及び機能に基づいて、ファブリックを初期化するために、マスタ、スレーブ及びスイッチをプログラムするように構成される。例えば、一実施形態では、ネットワークグラフを作成した後、セキュリティプロセッサ145は、ネットワークグラフからルーティングテーブルを生成するように構成される。この実施形態では、セキュリティプロセッサ145は、ルーティングテーブルをファブリック115の様々なコンポーネントにプログラムする。次いで、ファブリック115のコンポーネントは、プログラムされたルーティングテーブルを利用して、受信パケットをルーティングする方法を決定する。
一実施形態では、セキュリティプロセッサ145はさらに、システム100の構成及びセキュリティを管理するように構成される。セキュリティプロセッサ145は、システム100にセキュリティ保護を提供する認証及び検証機能を行うための命令を実行するように構成される。さらに、セキュリティプロセッサ145は、システム100の他の部分へのアクセスを不可能にする1つまたは複数の一意の暗号化/復号キーを格納する。したがって、セキュリティプロセッサ145は、システム100にハードウェアベースの信頼の基点を提供し、システム100が安全な環境で起動することを可能にする。一実施形態では、セキュリティプロセッサ145は、システム100の起動プロセスを管理して、システム100が認証された起動コードで起動することを確実にする。セキュリティプロセッサ145はさらに、システム100の起動プロセスに関連する他の様々な機能を管理する。次いで、セキュリティプロセッサ145は、処理ユニット110A〜Nを解放して、ブートコードを実行し、システム100のオペレーティングシステムを起動する。
メモリコントローラ130(複数可)は、任意の数及びタイプのメモリデバイス(複数可)に結合することができる任意の数及びタイプのメモリコントローラを表す。例えば、メモリコントローラ130(複数可)に結合されるメモリデバイス(複数可)のタイプは、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(FeRAM)またはその他を含むことができる。メモリコントローラ130(複数可)は、ファブリック115を介して、処理ユニット110A〜B、I/Oインターフェース120、ディスプレイコントローラ135及び他のデバイス140(複数可)にアクセス可能である。I/Oインターフェース120は、任意の数及びタイプのI/Oインターフェース(例えば、周辺コンポーネント相互接続(PCI)バス、PCI−Extended(PCI−X)、PCIE(PCI Express)バス、ギガビットイーサネット(GBE)バス、ユニバーサルシリアルバス(USB))を表す。様々なタイプの周辺デバイスは、I/Oインターフェース120に結合することができる。係る周辺デバイスは、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティックまたは他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶装置、ネットワークインターフェースカードなどを含む(しかしながら、それらに限定されない)。他のデバイス140(複数可)は、任意の数及びタイプのデバイス(例えば、マルチメディアデバイス、ビデオコーデック)を表す。
様々な実施形態では、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、サーバまたは様々な他のタイプのコンピューティングシステムもしくはデバイスのいずれかであることができる。コンピューティングシステム100のコンポーネントの数は、実施形態によって変更することがあることに留意されたい。各々のコンポーネントは、図1に示される数よりも多いまたは少ない場合がある。さらに、コンピューティングシステム100は、図1に示されていない他のコンポーネントを含むことがあることに留意されたい。加えて、他の実施形態では、コンピューティングシステム100は、図1に示された以外の方式で構造化することができる。
ここで図2に注目すると、ファブリック200の一実施形態のブロック図が示される。一実施形態では、ファブリック200は、(図1の)コンピューティングシステム100のファブリック115として実装することができる。一実施形態では、ファブリック200は、不規則なトポロジに配置された複数の異なるコンポーネントを含む。いくつかの実施形態では、ファブリック200は複数の領域に分割され、領域ごとに任意の数のコンポーネントがあり、各領域には任意のタイプのトポロジがある。一実施形態では、ファブリック200の各領域は、異なるパワーゲーティングドメインに関連付けられている。
図2の左側では、ファブリック200は、クロスバー210に結合されたマスタ205ならびにスレーブ215及び220を含む。本明細書で使用される場合、「マスタ」は、要求を生成するコンポーネントとして定義され、「スレーブ」は、要求を提供するコンポーネントとして定義される。クロスバー210はクロスバー225に結合され、クロスバー225はマスタ230A〜Bに結合される。クロスバー225はクロスバー245に結合され、クロスバー245はクロスバー250及び260ならびにマスタ255Aに結合される。クロスバー250はマスタ255B〜Cに結合され、クロスバー260はマスタ265A〜B及びスレーブ265Cに結合される。図2の右端では、ファブリック200は、スレーブ275及びマスタ280に結合されたクロスバー270を含む。一実施形態では、スレーブ275は、メモリコントローラに結合される。
一実施形態では、ファブリック200の各コンポーネントは、それぞれのコンポーネントに関する情報を指定する属性を格納するためのレジスタを含む。例えば、一実施形態では、レジスタは、コンポーネントのタイプ、コマンド及びデータポートのタイプ及び数、データバス幅、クロック速度、ネイバーインスタンスID、ファブリックIDなどの情報、ならびに他の情報を格納する。一実施形態では、セキュリティプロセッサ(例えば、図1のセキュリティプロセッサ145)は、対応するレジスタに格納された情報を取得するためにファブリック200の各コンポーネントに問い合わせを行うように構成される。次いで、セキュリティプロセッサはこの情報を利用して、ファブリック200のネットワークグラフ及びネットワークグラフに基づいたルーティングテーブルを作成することができる。
ファブリック200のコンポーネントのレイアウト、数及びタイプは、1つの実施形態を示すにすぎないことに留意されたい。他の実施形態では、ファブリック200は、異なった方式で配置することができる、及び/または他の数及びタイプのコンポーネントを含むことができる。さらに、ファブリック200の一部である様々なクロスバー210、225、245、250、260及び270は、スイッチまたはルータと呼ぶこともできることに留意されたい。クロスバーには、スイッチ接続と、クロスバーが受信した要求をバッファリングするバッファリングを含めることができる。クロスバーには、要求を送信元から宛先に送信するためのフロー制御メカニズムを実施するためのクレジット制御ロジックを含めることもできる。各クロスバーによって、クロスバーに結合された任意の送信元から宛先のいずれかへの接続を要求することができる。各クロスバーには、他のクロスバーへの1つまたは複数の接続も含まれ、それぞれのクロスバーに直接的には結合されていない他の宛先への要求を送信することができる。
ここで図3を参照すると、コンピューティングシステム300の別の実施形態のブロック図が示される。システム300は、少なくともセキュリティプロセッサ305、ファブリックブロック・インスタンスカウントレジスタ310、ファブリック315、処理ユニット335A〜N、I/Oインターフェース340、メモリコントローラ345(複数可)及び図を不明瞭しないために示されていない任意の数の他のコンポーネントを含む。一実施形態では、システム300の電源を最初に投入すると、システム300にはファブリック315のトポロジまたは構造の知識が全くなく、システム300は、起動プロセスの一部としてこのトポロジを発見するように構成される。その結果、ファブリックトポロジの発見は、同じ基本コンポーネントを使用して、様々なネットワークトポロジ及びリソースを備えた異なるタイプのシステムを構築する柔軟性を提供する。
一実施形態では、セキュリティプロセッサ305は、ファブリックブロック・インスタンスカウントレジスタ310に問い合わせを行い、ファブリック315のコンポーネント320A〜Nの合計数の表示を取得するように構成される。次いで、セキュリティプロセッサ305は、ファブリック315のコンポーネント320A〜Nの自動発見プロセスを開始する。セキュリティプロセッサ305は、ソフトウェア、ハードウェア及び/またはファームウェアの任意の適切な組み合わせを使用して実装することができる。一実施形態では、セキュリティプロセッサ305は、システム300の様々なセキュリティ機能を実行するように構成された専用のマイクロプロセッサである。例えば、この実施形態では、セキュリティプロセッサ305は、システム300にハードウェアベースの信頼の基点を提供するように構成される。
コンポーネント320A〜Nは、ファブリック315内の任意のタイプのトポロジに配置された任意の数及びタイプのコンポーネントを表す。例えば、コンポーネント320A〜Nは、クロスバー、スイッチ、ルータ、非コヒーレントマスタ、コヒーレントマスタ、非コヒーレントスレーブ、コヒーレントスレーブなどを含むことができる。コンポーネント320A〜Nは、本明細書では「ブロック」と呼ばれることもあることに留意されたい。一実施形態では、各コンポーネント320A〜Nは、それぞれのコンポーネントの様々なメタデータを格納する対応するレジスタ325A〜Nを有する。各レジスタ325A〜Nは、任意の数の属性を格納するための任意の数のレジスタまたは他のタイプの格納場所を表す。例えば、各レジスタ325A〜Nは、コンポーネントのタイプ、コマンド及びデータポートのタイプ及び数、データバス幅、クロック速度、ネイバーインスタンスID、ファブリックIDなどを指定することができる。
一実施形態では、セキュリティプロセッサ305は、ファブリック315のコンポーネント320A〜Nを一度に1つずつ横断するように構成される。一実施形態では、セキュリティプロセッサ305は、主要なデータパスを介して、ファブリック315のコンポーネント320A〜Nに結合される。別の実施形態では、セキュリティプロセッサ305は、パケットがファブリック315を通過するときに横断する主要なデータパス接続とは異なるサイドバンド接続を介してファブリック315のコンポーネント320A〜Nに結合される。自動発見プロセスを開始するために、セキュリティプロセッサ305は、セキュリティプロセッサ305に最も近いコンポーネント320Aのレジスタ325Aに問い合わせることによって開始する。次いで、セキュリティプロセッサ305は、コンポーネント320Aのネイバーに問い合わせることにより継続する。一実施形態では、各コンポーネント320A〜Nには、ファブリック315内で一意のIDが割り当てられる。
セキュリティプロセッサ305は、ファブリック315の末端に到達するまで、ネイバーのネイバーなどを経由してファブリック315を横断し続ける。セキュリティプロセッサ305がコンポーネント320A〜Nの全てのレジスタ325A〜Nからメタデータを取得した後、セキュリティプロセッサ305は、発見されたコンポーネントのネットワークグラフを構築するように構成される。次いで、セキュリティプロセッサ305は、ネットワークグラフを利用して、各コンポーネント320A〜Nのルーティングテーブルを生成する。ルーティングテーブルを生成した後、セキュリティプロセッサ305は、受信パケットをルーティングする方法を決定するときに使用するために、ルーティングテーブルを各コンポーネント320A〜Nに伝達する。
ここで図4を参照すると、ファブリック415に結合されたセキュリティプロセッサ405の一実施形態のブロック図が示されている。セキュリティプロセッサ405は、図3に関する説明において既に記載したように、ファブリック発見プロセス中にファブリック415のコンポーネント420A〜Nのレジスタ425A〜Nからコンポーネント属性408を取得するように構成される。コンポーネント属性408を取得した後、セキュリティプロセッサ405は、ネットワークグラフ410を作成して、コンポーネント及びファブリック415のコンポーネント相互接続のトポロジを表すように構成される。
一実施形態では、セキュリティプロセッサ405は、ネットワークグラフ410を利用して、ルーティングテーブル430A〜Nを生成する。例えば、セキュリティプロセッサ405は、ネットワークグラフ410の所与のノードで開始することによってネットワークグラフ410を横断し、ここで所与のノードは所与のコンポーネントを表す。次いで、セキュリティプロセッサ405は、所与のノードから発生する接続を追跡しながらリーフノードに到達するまで、所与のノードからネットワークグラフ410を横断する。セキュリティプロセッサ405は、所与のノードからリーフノードへの各横断パスを利用して、所与のノードのルーティングテーブルを構築する。ルーティングテーブルを構築した後、セキュリティプロセッサ405は、このルーティングテーブルを用いて所与のコンポーネントをプログラムする。次いで、セキュリティプロセッサ405は、ネットワークグラフ410の他のノードに対して同様のプロセスを実行することができる。
例えば、セキュリティプロセッサ405は、ネットワークグラフ410を利用して、コンポーネント420Aのルーティングテーブル430Aを生成し、次いで、セキュリティプロセッサ405は、ルーティングテーブル430Aをコンポーネント420Aにプログラムする。ファブリック415を含むホストシステムの動作中、コンポーネント420Aは、ルーティングテーブル430Aを利用して、着信パケットをルーティングする方法を決定する。同様に、セキュリティプロセッサ405は、ルーティングテーブル430B〜Nをコンポーネント420B〜Nにそれぞれプログラムし、次いでコンポーネント420B〜Nは、それらの対応するルーティングテーブル430B〜Nを利用して、ホストシステムの実際の動作中に受信パケットをルーティングする方法を決定する。ファブリック415にはルーティングテーブルが事前にプログラムされているわけではなく、ホストシステムの初期化中に実施される自己発見プロセス中にルーティングテーブル430A〜Nが生成されることを理解すべきである。
ここで図5に注目すると、ネットワークグラフ500の一実施形態のブロック図が示されている。ネットワークグラフ500は、自動発見プロセス中に検出されたファブリックのコンポーネントを表すノードを含む。一実施形態では、ファブリックのコンポーネントは、ネットワークグラフ500の相互作用ノードとしてモデル化される。セキュリティプロセッサ(例えば、図3のセキュリティプロセッサ305)は、ファブリックの様々なコンポーネントの検出及び問い合わせを行い、これらのコンポーネントに関連する属性を取得するように構成される。一実施形態では、セキュリティプロセッサは、ファブリックコンポーネントの属性をテーブルのエントリに格納し、ここで各コンポーネントには個別のエントリがあり、各属性には個別の列がある。次いで、セキュリティプロセッサは、テーブルのエントリ内の取得された属性に基づいて、ネットワークグラフ500を作成するように構成される。
ネットワークグラフ500は、所与の相互接続ファブリックのコンポーネントを表すことを意図している。ネットワークグラフ500の各ノードは、発見プロセス中に発見されたファブリックのコンポーネントを表す。例えば、図5に示すように、ネットワークグラフは、コンポーネント510、515及び520に結合されたコンポーネント505、コンポーネント505、510、515及び535に結合されたコンポーネント520、コンポーネント515に結合されたコンポーネント530、コンポーネント515に結合されたコンポーネント525、コンポーネント520に結合されたコンポーネント535ならびにコンポーネント510に結合されたコンポーネント540を含む。ネットワークグラフ500を作成した後、セキュリティプロセッサはネットワークグラフ500を利用して、ファブリックの各コンポーネントのルーティングテーブルを生成する。次いで、セキュリティプロセッサはルーティングテーブルをコンポーネントにプログラムし、受信パケットのルーティング方法を決定するときにコンポーネントがルーティングテーブルを利用できるようにする。ネットワークグラフ500は、ネットワークグラフの単に1つの表現であることに留意されたい。他の実施形態では、セキュリティプロセッサによって他のタイプのネットワークグラフを作成することができる。
ここで図6に注目すると、ファブリックコンポーネント600の一実施形態のブロック図が示されている。一実施形態では、ファブリックコンポーネント600は、入力バッファ605、クロスバー615、出力バッファ620、制御ユニット630及び1つまたは複数のルーティングテーブル635を含む。入力バッファ605は、1つまたは複数の入力ポート610A〜Nに結合される。各入力ポート610A〜Nは、ファブリックの内部または外部の対応するコンポーネントに結合され、入力バッファ605は、入力ポート610A〜Nを介して受信されたメッセージデータをバッファするように構成される。同様に、出力バッファ620は、1つまたは複数の出力ポート625A〜Nに接続されている。各出力ポート625A〜Nは、ファブリックの内部または外部の対応するコンポーネントに結合され、出力バッファ620は、対応するリンクのクロスバー615から受信されたメッセージデータをバッファするように構成される。一実施形態では、(図3の)コンポーネント320A〜Nのそれぞれは、ファブリックコンポーネント600のロジックを含む。ファブリックコンポーネント600におけるロジック構成は、1つの特定の実施形態を表すことを理解すべきである。他の実施形態では、他の適切なロジック構成を利用することができる、及び/または他のロジックをファブリックコンポーネント600に含めることができる。
一実施形態では、クロスバー615は、制御ユニット630によって提供される制御シグナリングに基づいて、入力ポート610A〜Nから出力ポート625A〜Nを通過するパケットを切り替えるマルチプレクサを含む。一実施形態では、制御ユニット630は、ソフトウェアによって指定された構成パラメータ及び1つまたは複数のルーティングテーブル635で表されるルーティング情報を利用して、クロスバー615を制御し、入力ポート610A〜Nから出力ポート625A〜Nへの入力メッセージデータの特定のルーティングを行う。制御ユニット630は、着信メッセージヘッダを検査し、ルーティングテーブル635のルックアップを実行して次のホップを決定し、クロスバー615を制御して、データを適切な出力ポート625A〜Nに転送する。制御ユニット630はさらに、仮想チャネルを管理し、ソフトウェアによって提供される構成データごとにアービトレーション及びフィルタリングを実装し、別様には、1つまたは複数のルーティングプロトコルのコンポーネントを実装する。
様々な実施形態では、ルーティングテーブル635は、ファブリックコンポーネント600を通過するパケットのルーティング情報を提供する。一実施形態では、ルーティングテーブル635は、複数のテーブルエントリとして実装され、各エントリは、送信元コンポーネントと宛先コンポーネントとの間の指定されたルーティングパスに従って、対応する宛先、ネクストホップ及びポートフィールドに関連付けられる。他の実施形態では、ルーティングテーブル635のエントリはさらに、代替ルート、パスの長さ、リンクエラーステータスなど、制御ユニット630によって使用される他のフィールドを含むことができる。ネクストホップフィールドは、マルチホップルートの次のコンポーネントのアドレスとすることができ、あるいはネクストホップが最終的な宛先である場合は宛先と同じにすることができる。様々な実施形態では、テーブル635のエントリは、自律的な発見プロセス中の実行時に決定される。
したがって、テーブル635は、様々なルートを実装するために、またはダイもしくはネットワークトポロジの異なる数または配置の再構成を可能にするために、書き込み可能か、別様にはプログラム可能である。様々な実施形態では、テーブル635は、RAMまたはフラッシュメモリなどにレジスタファイルなどの多様な構成可能ストレージ要素のいずれかを使用して実装することができる。これらの構成可能要素及び書き込み可能なテーブルエントリは、オペレーティングシステム、ハイパーバイザ、セキュリティプロセッサ、基本的な入出力システム(BIOS)、ファームウェアまたはそれらの組み合わせを含む、多数の要素によって管理することができる。一例として、システムの起動中に、セキュリティプロセッサ(例えば、図3のセキュリティプロセッサ305)は、ファブリック全体のトポロジ、コンポーネントの数及びシステム相互接続を発見した後、ルーティングテーブル635をプログラムすることができる。一実施形態では、物理システムの異なるバージョンと実装との間で変化する様々な数のコンポーネント及び接続によりファブリックのトポロジは事前には分からない。一実施形態では、セキュリティプロセッサは、クロスバー及び相互接続トポロジを検査して、実装されたファブリックトポロジを発見するように構成される。セキュリティプロセッサはさらに、コンポーネントを再構成して、ネットワーク及びメモリの帯域幅保証などのサービス品質ポリシを実施することができる。
ここで図7を参照すると、ファブリックトポロジの自動発見プロセスを実行するための方法700の一実施形態が示されている。説明の目的上、本実施形態のステップは順番に示される。しかしながら、記載される方法の様々な実施形態では、記載される要素のうちの1つまたは複数は同時に実行され、示されるのとは異なる順序で実行されるか、または全体が省略されることに留意されたい。他の追加の要素も所望により実行されることがある。本明細書に記載される様々なシステムまたは装置のいずれも、方法700を実施するように構成されている。
プロセッサ(例えば、図3のセキュリティプロセッサ305)は、ファブリックブロック・インスタンスカウントレジスタ(例えば、ファブリックブロック・インスタンスカウントレジスタ310)に問い合わせを行い、相互接続ファブリックのコンポーネントの数を決定する(ブロック705)。次に、プロセッサは、複数のコンポーネントの各コンポーネントに問い合わせを行い、各コンポーネントに関連する様々な属性を対応するレジスタから取得する(ブロック710)。様々な実施形態では、属性は、ブロックタイプ(例えば、コヒーレントマスタ、非コヒーレントマスタ、クロスバー、コヒーレントスレーブ、非コヒーレントスレーブ)、コマンド及びデータポートのタイプ及び数、データバス幅、クロック速度、ネイバーインスタンス識別子(ID)、ファブリックID及びその他の属性を含むことができる。
次いで、プロセッサは、取得された属性を利用して、ファブリックコンポーネントのネットワークグラフを作成する(ブロック715)。次に、プロセッサはネットワークグラフからルーティングテーブルを生成する(ブロック720)。次いで、プロセッサはルーティングテーブルをファブリックコンポーネントにプログラムする(ブロック725)。ルーティングテーブルでプログラムされた後、ファブリックコンポーネントはルーティングテーブルを利用して、着信パケットをルーティングする方法を決定する(ブロック730)。ブロック730の後に、方法700は終了する。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令は、本明細書に記載される方法及び/またはメカニズムを実装するために使用される。例えば、汎用または専用プロセッサによって実行可能なプログラム命令が企図される。様々実施形態では、係るプログラム命令は、高レベルプログラミング言語として表すことができる。他の実施形態では、プログラム命令は、高レベルプログラミング言語から、バイナリ、中間または他の形式にコンパイルすることができる。代替的には、ハードウェアの挙動または設計を記述したプログラム命令を書き込むことができる。係るプログラム命令は、Cなどの高レベルプログラミング言語によって表すことができる。代替的には、Verilogなどのハードウェア設計言語(HDL)を使用することができる。様々実施形態では、プログラム命令は、様々な非一時的コンピュータ可読記憶媒体のいずれかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために使用される間にコンピューティングシステムによってアクセス可能である。一般的に、係るコンピューティングシステムは、プログラム命令を実行するように構成された少なくとも1つまたは複数のメモリ及び1つまたは複数のプロセッサを含む。
上記の実施形態は実装の非限定的な例にすぎないことが強調されるべきである。上記の開示を十分に理解すれば、当業者には多数の変形形態及び修正形態が明らかになるであろう。以下の特許請求の範囲は、全ての係る変形形態及び修正形態を包含すると解釈されることが意図される。

Claims (20)

  1. 複数のコンポーネントを備える通信ファブリックと、
    前記通信ファブリックに結合されたプロセッサであって、
    ファブリックブロック・インスタンスカウントレジスタから値を読み取ることであって、前記値は、前記通信ファブリック内のコンポーネントの数を指定する、前記読み取ることと、
    各コンポーネントのレジスタを読み取ることによって、前記通信ファブリックの各コンポーネントに問い合わせを行うことと、
    前記通信ファブリックの各コンポーネントの問い合わせに基づいて、ネットワークグラフを作成することと、
    前記ネットワークグラフに基づいて、ルーティングテーブルを生成することと、
    を行うように構成される、前記プロセッサと、
    を備える、システム。
  2. 前記プロセッサは、前記ルーティングテーブルを前記通信ファブリックの前記複数のコンポーネントにプログラムするようにさらに構成される、請求項1に記載のシステム。
  3. 前記通信ファブリックの各コンポーネントは、それぞれのルーティングテーブルに基づいて、受信パケットをルーティングするように構成される、請求項2に記載のシステム。
  4. 各レジスタは、ブロックタイプ、コマンド及びデータポートのタイプ及び数、データバス幅、ネイバーインスタンス識別子(ID)及び/またはファブリックIDのうちの1つまたは複数を備える、請求項1に記載のシステム。
  5. 前記ファブリックブロック・インスタンスカウントレジスタは、前記システム内のファブリックコンポーネントの合計数の表示を格納し、
    前記ファブリックブロック・インスタンスカウントレジスタは、固定アドレスに存在する、請求項1に記載のシステム。
  6. 前記プロセッサはセキュリティプロセッサである、請求項1に記載のシステム。
  7. 前記複数のコンポーネントは、マスタ、スレーブまたはクロスバーのうちの1つまたは複数を備える、請求項1に記載のシステム。
  8. プロセッサによって、ファブリックブロック・インスタンスカウントレジスタから値を読み取ることであって、前記値は、通信ファブリック内のコンポーネントの数を指定する、前記読み取ることと、
    前記プロセッサによって、各コンポーネントのレジスタを読み取ることによって、前記通信ファブリックの各コンポーネントに問い合わせを行うことと、
    前記プロセッサによって、前記通信ファブリックの各コンポーネントの問い合わせに基づいて、ネットワークグラフを作成することと、
    前記プロセッサによって、前記ネットワークグラフに基づいて、ルーティングテーブルを生成することと、
    を備える、方法。
  9. 前記ルーティングテーブルを前記通信ファブリックの複数のコンポーネントにプログラムすることをさらに備える、請求項8に記載の方法。
  10. それぞれのルーティングテーブルに基づいて、受信パケットをルーティングすることをさらに備える、請求項9に記載の方法。
  11. 各レジスタは、ブロックタイプ、コマンド及びデータポートのタイプ及び数、データバス幅、ネイバーインスタンス識別子(ID)及び/またはファブリックIDのうちの1つまたは複数を備える、請求項8に記載の方法。
  12. 前記ファブリックブロック・インスタンスカウントレジスタは、前記システム内のファブリックコンポーネントの合計数の表示を格納し、前記ファブリックブロック・インスタンスカウントレジスタは固定アドレスに存在する、請求項8に記載の方法。
  13. セキュリティプロセッサが、前記ネットワークグラフを作成することと、前記ネットワークグラフに基づいてルーティングテーブルを生成することとをさらに備える、請求項8に記載の方法。
  14. 前記複数のコンポーネントは、マスタ、スレーブまたはクロスバーのうちの1つまたは複数を備える、請求項8に記載の方法。
  15. 1つまたは複数の処理ユニットと、
    1つまたは複数のメモリデバイスと、
    前記1つまたは複数の処理ユニット及び前記1つまたは複数のメモリデバイスに結合された通信ファブリックと、を備える装置であって、
    ファブリックブロック・インスタンスカウントレジスタから値を読み取ることであって、前記値は、前記通信ファブリック内のコンポーネントの数を指定する、前記読み取ることと、
    各コンポーネントのレジスタを読み取ることによって、前記通信ファブリックの各コンポーネントに問い合わせを行うことと、
    前記通信ファブリックの各コンポーネントの問い合わせに基づいて、ネットワークグラフを作成することと、
    前記ネットワークグラフに基づいて、ルーティングテーブルを生成することと、
    を行うように構成される、前記装置。
  16. 前記装置は、前記ルーティングテーブルを前記通信ファブリックの複数のコンポーネントにプログラムするようにさらに構成される、請求項15に記載の装置。
  17. 前記通信ファブリックの各コンポーネントは、それぞれのルーティングテーブルに基づいて、受信パケットをルーティングするように構成される、請求項16に記載の装置。
  18. 各レジスタは、ブロックタイプ、コマンド及びデータポートのタイプ及び数、データバス幅、ネイバーインスタンス識別子(ID)及び/またはファブリックIDのうちの1つまたは複数を備える、請求項15に記載の装置。
  19. 前記ファブリックブロック・インスタンスカウントレジスタは、前記システム内のファブリックコンポーネントの合計数の表示を格納し、前記ファブリックブロック・インスタンスカウントレジスタは固定アドレスに存在する、請求項15に記載の装置。
  20. 前記通信ファブリックの複数のコンポーネントは、マスタ、スレーブまたはクロスバーのうちの1つまたは複数を備える、請求項15に記載の装置。
JP2020534180A 2017-12-21 2018-09-19 相互接続トポロジの自己識別 Active JP7123146B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/850,616 2017-12-21
US15/850,616 US11196657B2 (en) 2017-12-21 2017-12-21 Self identifying interconnect topology
PCT/US2018/051782 WO2019125561A1 (en) 2017-12-21 2018-09-19 Self identifying interconnect topology

Publications (3)

Publication Number Publication Date
JP2021508963A true JP2021508963A (ja) 2021-03-11
JP2021508963A5 JP2021508963A5 (ja) 2021-10-28
JP7123146B2 JP7123146B2 (ja) 2022-08-22

Family

ID=63966075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020534180A Active JP7123146B2 (ja) 2017-12-21 2018-09-19 相互接続トポロジの自己識別

Country Status (6)

Country Link
US (1) US11196657B2 (ja)
EP (1) EP3729749A1 (ja)
JP (1) JP7123146B2 (ja)
KR (1) KR102383041B1 (ja)
CN (1) CN111684770B (ja)
WO (1) WO2019125561A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861504B2 (en) 2017-10-05 2020-12-08 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
US10558591B2 (en) 2017-10-09 2020-02-11 Advanced Micro Devices, Inc. Method and apparatus for in-band priority adjustment forwarding in a communication fabric
US11201730B2 (en) 2019-03-26 2021-12-14 International Business Machines Corporation Generating a protected key for selective use
US11372983B2 (en) * 2019-03-26 2022-06-28 International Business Machines Corporation Employing a protected key in performing operations
US11507522B2 (en) 2019-12-06 2022-11-22 Advanced Micro Devices, Inc. Memory request priority assignment techniques for parallel processors
US11223575B2 (en) 2019-12-23 2022-01-11 Advanced Micro Devices, Inc. Re-purposing byte enables as clock enables for power savings
CN112994927B (zh) * 2021-02-04 2022-11-25 海光信息技术股份有限公司 一种菊花链拓扑的检索方法及检索装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000031925A1 (en) * 1998-11-24 2000-06-02 Net Insight Ab Methods and systems for determining network topology
US20060165115A1 (en) * 2005-01-26 2006-07-27 Emulex Design & Manufacturing Corporation Controlling device access fairness in switched fibre channel fabric loop attachment systems
US20090016355A1 (en) * 2007-07-13 2009-01-15 Moyes William A Communication network initialization using graph isomorphism
US20160094435A1 (en) * 2012-12-26 2016-03-31 Iii Holdings 2, Llc Fabric discovery for a cluster of nodes
US20160127191A1 (en) * 2014-11-03 2016-05-05 Intel Corporation Method, Apparatus And System For Automatically Discovering Nodes And Resources In A Multi-Node System

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4760515A (en) 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
US5553223A (en) 1990-04-03 1996-09-03 U S West Advanced Technologies, Inc. Method and system of selectively transmitting display formats and data between a host computer and an intelligent terminal
US5530806A (en) * 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node
US6023561A (en) 1995-06-01 2000-02-08 Advanced Micro Devices, Inc. System for processing traceable cache trace information
US6138140A (en) 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US5815653A (en) 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US6058393A (en) 1996-02-23 2000-05-02 International Business Machines Corporation Dynamic connection to a remote tool in a distributed processing system environment used for debugging
US5706502A (en) 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US5761513A (en) 1996-07-01 1998-06-02 Sun Microsystems, Inc. System and method for exception handling in dynamically linked programs
US5923885A (en) 1996-10-31 1999-07-13 Sun Microsystems, Inc. Acquisition and operation of remotely loaded software using applet modification of browser software
US6618854B1 (en) 1997-02-18 2003-09-09 Advanced Micro Devices, Inc. Remotely accessible integrated debug environment
US6119247A (en) 1998-06-22 2000-09-12 International Business Machines Corporation Remote debugging of internet applications
US6667960B1 (en) * 2000-04-29 2003-12-23 Hewlett-Packard Development Company, L.P. Protocol for identifying components in a point-to-point computer system
JP4782937B2 (ja) 2001-03-27 2011-09-28 株式会社東芝 半導体記憶装置
US7027400B2 (en) 2001-06-26 2006-04-11 Flarion Technologies, Inc. Messages and control methods for controlling resource allocation and flow admission control in a mobile communications system
US20030035371A1 (en) 2001-07-31 2003-02-20 Coke Reed Means and apparatus for a scaleable congestion free switching system with intelligent control
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US20050198459A1 (en) 2004-03-04 2005-09-08 General Electric Company Apparatus and method for open loop buffer allocation
US20050228531A1 (en) * 2004-03-31 2005-10-13 Genovker Victoria V Advanced switching fabric discovery protocol
US7542473B2 (en) 2004-12-02 2009-06-02 Nortel Networks Limited High-speed scheduling apparatus for a switching node
US7724778B2 (en) 2005-01-28 2010-05-25 I/O Controls Corporation Control network with data and power distribution
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
KR100735756B1 (ko) 2006-01-02 2007-07-06 삼성전자주식회사 반도체 집적 회로
US7603503B1 (en) 2006-09-18 2009-10-13 Nvidia Corporation Efficiency based arbiter
US7657710B2 (en) 2006-11-17 2010-02-02 Sun Microsystems, Inc. Cache coherence protocol with write-only permission
US8028131B2 (en) 2006-11-29 2011-09-27 Intel Corporation System and method for aggregating core-cache clusters in order to produce multi-core processors
US7895345B2 (en) * 2007-04-13 2011-02-22 Microsoft Corporation Distributed routing table architecture and design
US8230152B2 (en) 2009-02-13 2012-07-24 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
US8549207B2 (en) 2009-02-13 2013-10-01 The Regents Of The University Of Michigan Crossbar circuitry for applying an adaptive priority scheme and method of operation of such crossbar circuitry
US8448001B1 (en) 2009-03-02 2013-05-21 Marvell International Ltd. System having a first device and second device in which the main power management module is configured to selectively supply a power and clock signal to change the power state of each device independently of the other device
US8359421B2 (en) * 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
US8549249B1 (en) 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8713294B2 (en) 2009-11-13 2014-04-29 International Business Machines Corporation Heap/stack guard pages using a wakeup unit
US9081501B2 (en) 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
CN103125097B (zh) * 2010-09-17 2016-11-16 甲骨文国际公司 在中间件机器中执行部分子网初始化
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
KR101842245B1 (ko) * 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US9479456B2 (en) * 2012-11-02 2016-10-25 Altera Corporation Programmable logic device with integrated network-on-chip
US9535860B2 (en) 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric
CN103139073B (zh) * 2013-02-01 2016-10-12 苏州大学 一种基于Ad Hoc网络形式的认知路由方法
US9436634B2 (en) 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
JP6552512B2 (ja) 2013-10-27 2019-07-31 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 入出力メモリマップユニット及びノースブリッジ
US10169256B2 (en) 2014-01-31 2019-01-01 Silicon Laboratories Inc. Arbitrating direct memory access channel requests
US9749214B2 (en) * 2014-02-26 2017-08-29 Futurewei Technologies, Inc. Software defined networking (SDN) specific topology information discovery
US9268970B2 (en) * 2014-03-20 2016-02-23 Analog Devices, Inc. System and method for security-aware master
US9529400B1 (en) 2014-10-29 2016-12-27 Netspeed Systems Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US20160191420A1 (en) 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
CN107005483B (zh) * 2014-12-27 2021-01-26 英特尔公司 用于高性能网络结构安全的技术
US9652391B2 (en) * 2014-12-30 2017-05-16 Arteris, Inc. Compression of hardware cache coherent addresses
US9594621B1 (en) * 2014-12-30 2017-03-14 Juniper Networks, Inc. Online network device diagnostic monitoring and fault recovery system
GB2527165B (en) 2015-01-16 2017-01-11 Imagination Tech Ltd Arbiter verification
US9602431B2 (en) * 2015-03-20 2017-03-21 International Business Machines Corporation Switch and select topology for photonic switch fabrics and a method and system for forming same
US10200261B2 (en) * 2015-04-30 2019-02-05 Microsoft Technology Licensing, Llc Multiple-computing-node system job node selection
CN106302173B (zh) * 2015-05-26 2019-07-23 南宁富桂精密工业有限公司 控制设备及其拓扑学习的方法
US20160378168A1 (en) 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Dynamic power management optimization
US9971700B2 (en) 2015-11-06 2018-05-15 Advanced Micro Devices, Inc. Cache with address space mapping to slice subsets
US9983652B2 (en) 2015-12-04 2018-05-29 Advanced Micro Devices, Inc. Balancing computation and communication power in power constrained clusters
US9918146B2 (en) * 2016-02-08 2018-03-13 Intel Corporation Computing infrastructure optimizations based on tension levels between computing infrastructure nodes
US20180048562A1 (en) * 2016-08-09 2018-02-15 Knuedge Incorporated Network Processor Inter-Device Packet Source ID Tagging for Domain Security
US10298511B2 (en) 2016-08-24 2019-05-21 Apple Inc. Communication queue management system
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US10425287B2 (en) * 2017-02-23 2019-09-24 Dell Products L.P. Systems and methods for network topology discovery
US10861504B2 (en) 2017-10-05 2020-12-08 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
US10558591B2 (en) 2017-10-09 2020-02-11 Advanced Micro Devices, Inc. Method and apparatus for in-band priority adjustment forwarding in a communication fabric

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000031925A1 (en) * 1998-11-24 2000-06-02 Net Insight Ab Methods and systems for determining network topology
US20060165115A1 (en) * 2005-01-26 2006-07-27 Emulex Design & Manufacturing Corporation Controlling device access fairness in switched fibre channel fabric loop attachment systems
US20090016355A1 (en) * 2007-07-13 2009-01-15 Moyes William A Communication network initialization using graph isomorphism
US20160094435A1 (en) * 2012-12-26 2016-03-31 Iii Holdings 2, Llc Fabric discovery for a cluster of nodes
US20160127191A1 (en) * 2014-11-03 2016-05-05 Intel Corporation Method, Apparatus And System For Automatically Discovering Nodes And Resources In A Multi-Node System

Also Published As

Publication number Publication date
CN111684770A (zh) 2020-09-18
US11196657B2 (en) 2021-12-07
KR20200101961A (ko) 2020-08-28
EP3729749A1 (en) 2020-10-28
JP7123146B2 (ja) 2022-08-22
KR102383041B1 (ko) 2022-04-11
WO2019125561A1 (en) 2019-06-27
US20190199617A1 (en) 2019-06-27
CN111684770B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
JP7123146B2 (ja) 相互接続トポロジの自己識別
US7398380B1 (en) Dynamic hardware partitioning of symmetric multiprocessing systems
JP5315209B2 (ja) 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用
US10333865B2 (en) Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US11372787B2 (en) Unified address space for multiple links
TWI618386B (zh) 用於通訊中封裝資訊之方法、裝置及系統
US10425275B2 (en) Centralized distribution of configuration parameters for a cluster server
US11995019B2 (en) PCIe device with changeable function types and operating method thereof
US11928070B2 (en) PCIe device
US11119704B2 (en) System, apparatus and method for sharing a flash device among multiple masters of a computing platform
TW202240415A (zh) PCIe裝置及其操作方法
TWI649992B (zh) 決定網路節點的網路介面卡操作速度的方法、端口扇出配置系統及其方法
TW202240414A (zh) PCIe功能及其操作方法
CN117561505A (zh) 用于动态地配置设备结构的系统、方法、装置和架构
US10027678B1 (en) Location-aware security configuration of peripheral devices
US11003618B1 (en) Out-of-band interconnect control and isolation
US20180203781A1 (en) Methods for updating memory maps of a system-on-chip
Nirmaladevi et al. Low power NoC architecture based dynamic reconfigurable system
US10037257B1 (en) Examining local hardware using a location-aware peripheral device
CN106708551A (zh) 一种热添加中央处理器cpu的配置方法及系统
JP2023545380A (ja) PCIeデバイスのための仮想ホットプラグシステム及び方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210917

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210917

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220401

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: 20220628

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220809

R150 Certificate of patent or registration of utility model

Ref document number: 7123146

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150