JP7289341B2 - 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム - Google Patents

改善された二次相互接続ネットワークを備えたマルチプロセッサシステム Download PDF

Info

Publication number
JP7289341B2
JP7289341B2 JP2021165241A JP2021165241A JP7289341B2 JP 7289341 B2 JP7289341 B2 JP 7289341B2 JP 2021165241 A JP2021165241 A JP 2021165241A JP 2021165241 A JP2021165241 A JP 2021165241A JP 7289341 B2 JP7289341 B2 JP 7289341B2
Authority
JP
Japan
Prior art keywords
processors
bus controller
processor
interconnection network
multiprocessor system
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.)
Active
Application number
JP2021165241A
Other languages
English (en)
Other versions
JP2022023108A (ja
Inventor
ドブス,カール・エス
トロシーノ,マイケル・アール
Original Assignee
コーヒレント・ロジックス・インコーポレーテッド
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 コーヒレント・ロジックス・インコーポレーテッド filed Critical コーヒレント・ロジックス・インコーポレーテッド
Publication of JP2022023108A publication Critical patent/JP2022023108A/ja
Application granted granted Critical
Publication of JP7289341B2 publication Critical patent/JP7289341B2/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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • 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
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • 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
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7882Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はマルチプロセッサシステムに関し、更に詳細には、複数のプロセッサ要素と、
メモリと、一次相互接続ネットワークとを有するマルチプロセッサシステムにおける、改
善された二次相互接続ネットワークに関する。
コンピュータシステム及びデジタル信号処理(DSP)システムは、複数の処理要素(
PE)と、補助メモリ(SM)と、データ相互接続ネットワーク(IN)と、入出力(I
/O)インタフェースとから構成できる。複数のPEが利用可能であることにより、シス
テムは、より迅速にタスクを完了するための、又はタスクを完了するためのエネルギーを
削減するために、並列アルゴリズムをサポートできる。並列アルゴリズムは、システム内
での並びにシステム内への及びシステム内からの、PEとSMの間での非常に高速なデー
タストリーミングを必要とすることが多い。これらのシステムでは、相互接続ネットワー
クは概して少なくとも1つの高帯域幅(高ビット/秒スループット)一次相互接続ネット
ワーク(PIN)を含む。PINは、比較的大きなメッセージの高ビット/秒スループッ
トに対して最適化されているが、特に低レイテンシ(ポイントツーポイント配信遅延)に
対しては最適化されていない。
また、PINを含む少なくとも1つの従来技術のマルチプロセッサシステムは、追加の
低帯域幅二次相互接続ネットワーク(SIN)を有する。「シリアルバス」(SB)とし
て実装された高レイテンシ型のSINは従来、本願の譲受人であるCoherent L
ogix Inc.製のHyperX hx3100Aと呼ばれるマルチプロセッサIC
チップに実装されている。図1は、HyperX hx3100Aに実装された、二次相
互接続ネットワーク(SIN)とも呼ばれる従来技術のシリアルバス(SB)を示す。図
1に示す従来技術のSINは、PE、SM、PIN、チップI/Oインタフェース、送電
網、クロッキングネットワークとともにマルチプロセッサICに埋め込まれるように設計
されている。図示したように、このシリアルバスアーキテクチャは、チップ内で前後に蛇
行する長いループの中で全てのPE及びSMを相互接続している。これにより、SINは
最小の面積及び消費電力でメッセージ配信の保証(GMD)をサポートできる。従ってS
INは、アプリケーション及びシステムソフトウェアのプログラマにデバッグサポートを
提供することを第1の目的としたオンチップシリアルバス(SB)であった。更にSBを
システムブートアップ中に使用して、メモリをロードし、電源投入時システムテスト実行
することもできる。またSBを実行時間中に使用して、個々のPEポート及びI/Oポー
トのためのクロック周波数の制御、PINに対するセキュリティバリアの設定、PEメッ
セージパッシング等の様々なシステム管理機能を実行できる。最後にSBを、ICテスト
及び評価でも使用できる。
図1に示す従来技術のSINは、ローカルインタフェースユニット間のリンクの一方向
デイジーチェーンとして編成されたシリアルバス(SB)アーキテクチャを有し、チェー
ンの両端はシリアルバスコントローラ(SBC)ユニットに結合されている。図1に示す
ように、典型的なローカルインタフェースユニットは、シリアルバススレーブ(SBS)
インタフェースユニットとして標識される。これは、(以下により詳しく説明されるよう
に)コマンドを発行できないためにそのように呼ばれている。各SBSインタフェースユ
ニットは、1つのPE、1つのSMユニット、1つのSB入力リンク、1つのSB出力リ
ンクに結合される。各SBSユニットには、個々のメッセージを特定のSBSユニットに
送信できるように一意のアドレス値が割り当てられていた。各SBSインタフェースユニ
ット(SBS-IU)は、PE及びSMの主にワード並列のフォーマット間のメッセージ
フォーマットをSBリンクの主にビット直列のフォーマットに変換するために、レジスタ
及び論理を含んでいる。インタフェースユニット間の各リンクは、一方のワイヤがデータ
信号(SBDATA)を搬送し、他方がクロック信号(SBCLK)を搬送して、受信機
入力フリップフロップでデータを取り込む2本の平行導線である。メッセージの存在はS
BCLK上の複数のパルスによって示され(ここで、SBDATA上のデータ1ビットご
とに1パルスである)、メッセージの不在はSBCLK上の一定値によって示される。
いくつかの実施形態では、固定長のSBメッセージを受信するために、SBS-IUを
バッファと共に構成してよい。初めに(チップリセット時)、SBS-IUはリピータモ
ードに入り、SBS-IUは固定長のSBメッセージを受信し、メッセージヘッダのアド
レスをそれ自体の一意のアドレスと比較してよい。これらアドレスが一致しない場合、S
BS-IUはメッセージをチェーン内の次のSBS-IUに渡してよい。アドレスが一致
する場合、SBS-IUは、SBS-IUがリピータモードに戻るコマンドを受信するま
で、以後のメッセージが可能なコマンドとして処理されるチャネルモードに入ってよい。
SBS-IUは、適切に符号化されたSBメッセージからコマンドのセットを復号するよ
う構成されてよい。SBメッセージがコマンドのセットのうちの1つについて適切に符号
化されない場合、SBS-IUはこれを無視する。様々な実施形態では、コマンドは以下
の通りである:SBS-IU設定レジスタの読み書き;(DMRのリセット、PEのリセ
ット、PEのクロック周波数の設定、存在する場合はI/O回路のリセット、PINルー
タセキュリティバリアの設定);特定のアドレス又はアドレスのブロックにおけるSMの
読み書き;特定の条件下でのメッセージレジスタを含むPEレジスタの読み書き;PE分
岐点の設定;PE中断の強制;シングルステップPE;ウェークアップPE(実行させる
);グローバル中断信号伝達へのPEの参加の有効化/無効化。読み出しコマンドの場合
、SBS-IUは読み出されたデータを含む戻りSBメッセージを生成してよく、これを
チェーンの次のSBS-IUに送信する。戻りSBメッセージはチェーン内の他のSBS
-IUを通過でき(これは上記他のSBS-IUがリピータモードにあるためである)、
SBCによって、チャネルをセットアップするコントローラに転送できる。
図1に示すように、シリアルバスコントローラ(SBC)は、SBの両端、デバッグア
クセスポート(DAP)コントローラ、ブートコントローラに結合される。SBCは、D
APコントローラ及びブートコントローラからSBメッセージを受け入れ、DAPコント
ローラ及びブートコントローラに戻りメッセージを返す。SBCの主要な目的は、2つ以
上のコントローラがSBアクセスを一度に獲得すること(これは、コマンド及び誤った結
果の無作為な混合を生じさせることがある)を防止することである。SBが休止している
場合には、どちらかのコントローラがSBS-IUへのチャネルを開始してよい。チャネ
ルが既に存在する場合、SBCコントローラは、現在のチャネルが終了するまで、チャネ
ルを開始しようとするいかなる新しい試みも無視する。2つのコントローラが同時にチャ
ネルを開始しようと試みる場合には、一方がアクセスを獲得し、他方のSBCが無視され
るようにSBCが調停する。
図1に示すように、PE0,0がSBCにメッセージを送信し、SBCから結果のメッ
セージを受信できるようにするために、DMR0,0専用のいくつかのレジスタをブート
コントローラに結合する。DMR0,0専用のこれらのレジスタは、PINによってアク
セス可能ではなく、PE0,0以外のいかなるPEによってもアクセス可能ではない。D
MR0,0の特定のレジスタがPE0,0によって書き込まれると、メッセージがSBC
に転送される。SBCからの戻りSBメッセージデータは、DMR0,0内の特定のレジ
スタにコピーできる。SBを利用するPE0,0上のソフトウェアプログラムは、SBメ
ッセージトランスポートの比較的長いレイテンシを待機するために、適切な遅延を含む必
要がある場合がある。
マルチプロセッサシステムでの使用のために、改善された二次相互接続ネットワーク(
SIN)アーキテクチャに対する需要がある。
複数のプロセッサと、複数のメモリと、複数のルータとを含むマルチプロセッサシステ
ムの様々な実施形態を開示する。一実施形態では、各プロセッサは関連付けられたメモリ
及びルータを有し、複数のプロセッサ、複数のメモリ、複数のルータは分散型配置で連結
される。複数のルータを連結して一次相互接続ネットワークを形成する。マルチプロセッ
サシステムは複数のインタフェースユニットも含み、各プロセッサ/ルータ組み合せは、
関連付けられたインタフェースユニットを有する。複数のインタフェースユニット及び少
なくとも1つのコントローラを連結して、二次相互接続ネットワーク(SIN)を形成す
る。複数のインタフェースユニットを、デイジーチェーン式で又は複数のループで連結し
て、二次相互接続ネットワークを作成してよい。この少なくとも1つのコントローラは他
のコントローラ及びSINの外部のメッセージソースと結合されており、SINにアクセ
スするためにソースからメッセージを受信し、ソースにメッセージを返し、ソースからの
要求を調停してSIN制御エラーを防止するよう構成される。インタフェースユニットの
複数のチェーンはSINコントローラに結合してよく、インタフェースユニットの各チェ
ーンは、一方向の又は双方向のメッセージの流れをサポートするよう構成してよい。
指定されたプロセッサは、(本明細書では「バスコントローラ」とも呼ばれる)SIN
コントローラに結合するよう構成してよい。この指定されたプロセッサは、関連付けられ
た少なくとも1つの指定されたインタフェースユニットと、バスコントローラに結合され
る、関連付けられた指定されたルータとを有する。バスコントローラは、少なくとも1つ
の指定されたインタフェースユニットにデータを送信し、少なくとも1つの指定されたイ
ンタフェースユニットからデータを受信するよう構成される。一実施形態では、この少な
くとも1つの指定されたインタフェースユニットは2つの異なる指定されたインタフェー
スユニットを備え、各指定されたインタフェースユニットはそれぞれのプロセッサに関連
付けられ、一方がバスコントローラにデータを送信するよう構成され、他方がコントロー
ラからデータを読み出すよう構成される。
バスコントローラは、少なくとも1つの指定されたインタフェースユニットへのアクセ
スに対する複数の要求の間での調停を行うよう構成してよい。言い換えると、バスコント
ローラは、異なる複数の論理ブロックから、指定されたインタフェースユニットにアクセ
スするための要求を受信し、これらの要求のうちの1つを選択して、指定されたインタフ
ェースユニットに提供するよう構成してよい。指定されたインタフェースユニットに対す
るアクセスを要求できる論理ブロックは、プロセッサインタフェースブロック、及びホス
トインタフェース、ブートコントローラ、デバッグアクセスポートといった他のブロック
を含んでよい。プロセッサインタフェースブロックはバスコントローラに結合され、上記
少なくとも1つの指定されたインタフェースユニットに関連付けられた指定されたルータ
にも結合される。プロセッサインタフェースブロックは、マルチプロセッサシステム内の
複数のプロセッサのうちのいずれ又は場合によっては全てが、一次相互接続ネットワーク
を使用して、指定されたルータを通して二次相互接続ネットワークにアクセスできるよう
にするよう構成される。プロセッサインタフェースブロックは、二次相互接続ネットワー
クメッセージをバッファリングするための1つ又は複数のバッファレジスタ、及びメッセ
ージの損失又は重複を防止するための流量制御回路を備えてよい。1つ又は複数のバッフ
ァレジスタ及び流量制御回路は、いずれのプロセッサが一次相互接続ネットワークを使用
して二次相互接続ネットワークにアクセスできるようにする際に使用される。
例えば、指定されたルータは、一次相互接続ネットワークで発せられるメッセージを受
信してよい。プロセッサインタフェースブロックは、指定されたルータからこれらのメッ
セージを受信し、バスコントローラにこれらのメッセージを提供して、二次相互接続ネッ
トワークに提供してよい。またプロセッサインタフェースブロックは、バスコントローラ
を通して二次相互接続ネットワークからメッセージを受信し、指定されたルータにこれら
のメッセージを提供して、一次相互接続ネットワークに提供してよい。
一実施形態では、マルチプロセッサシステムのいずれの各プロセッサは:1)二次相互
接続ネットワークへの順方向経路を生成するための、一次相互接続ネットワーク上の、各
プロセッサの隣接するルータから指定されたルータへの第1の通信経路;及び2)二次相
互接続ネットワークとの全二重通信のための二次相互接続ネットワークからの逆経路を生
成するための、一次相互ネットワーク上の、指定されたルータから各プロセッサの隣接す
るルータへの第2の通信経路を確立するよう構成可能である。
このようにして、いずれの各プロセッサは、プロセッサインタフェースブロック及びバ
スコントローラを通して二次相互接続ネットワークへ提供するために、二次相互接続ネッ
トワークコマンドを、一次相互接続ネットワーク上へ、指定されたルータに対して発行す
るように動作可能である。更に、このようないずれの各プロセッサは、バスコントローラ
及びプロセッサインタフェースブロックを通して指定されたルータに提供された、二次相
互接続ネットワークからの結果及び/又はメッセージステータス情報を受信するよう構成
される。
バスコントローラは、2つ以上のプロセッサそれぞれからコマンドを受信し、受信した
コマンドを比較し、この比較に基づいてアクションを実行するよう構成してよい。例えば
、これらのコマンドが一致すると判断された場合、バスコントローラはコマンドのうちの
1つを二次相互接続ネットワークに送信するよう構成してよい。コマンドが一致しないと
判断された場合、バスコントローラはプログラム可能エラーハンドラにメッセージを送信
するよう構成してよい。一実施形態では、指定されたプロセッサはバスコントローラへの
別個の通信経路を有し、バスコントローラは指定されたプロセッサ及び別のプロセッサか
らコマンドを受信するよう構成される。バスコントローラは、指定プロセッサ及び他のプ
ロセッサから受け取ったコマンドを比較して、上述のアクションを実行するよう構成して
よい。
いくつかの実施形態では、マルチチップシステムは複数の上述のマルチプロセッサシス
テムを含んでよく、これらマルチプロセッサシステムは異なるそれぞれのチップに実装さ
れ、そのそれぞれの一次相互接続ネットワークによって連結される。このマルチチップシ
ステムでは、1つのチップ上のいずれのプロセッサが、マルチチップシステム内のいずれ
の他のチップの二次相互接続ネットワークにアクセスできてよい。
マルチプロセッサシステムでの通信のための方法は、以下のステップを含んでよい。第
1に、第1のプロセッサから指定されたプロセッサに関連付けられた指定されたルータへ
の通信経路を、一次相互接続ネットワーク上で確立してよい。指定されたルータは、プロ
セッサインタフェースブロックに接続してよい。続いて第1のプロセッサは、一次相互接
続ネットワークを通して指定されたルータに二次相互接続ネットワークメッセージを送信
してよい。その後、指定されたルータは、二次相互接続ネットワークメッセージをプロセ
ッサインタフェースブロックに提供してよく、プロセッサインタフェースブロックはこの
メッセージをバスコントローラに提供する。そしてバスコントローラは、二次相互接続ネ
ットワークメッセージを二次相互接続ネットワークに提供する。本方法は、マルチプロセ
ッサシステム内のいずれのプロセッサが二次相互接続ネットワーク上で通信できるように
するために使用できる。
本方法はまた、二次相互接続ネットワークブロックから第1のプロセッサへの通信も提
供してよい。これは、指定されたルータから第1のプロセッサへの逆通信経路の確立も含
んでよく、この逆通信経路は二次相互接続ネットワークから第1のプロセッサへ応答情報
を提供するために使用できる。本通信方法は、二次相互接続ネットワークから応答情報を
受信して、プロセッサインタフェースブロックにこの応答情報を提供する、バスコントロ
ーラを備えてよい。応答情報をプロセッサインタフェースブロックでバッファリングして
よい。プロセッサインタフェースブロックは、応答情報を指定されたルータに提供してよ
く、続いて指定されたルータは逆通信経路上で応答情報を第1のプロセッサに提供する。
図1は、マルチプロセッサシステム用の従来技術の二次相互接続シリアルバスのブロック図である。 図2は、一次相互接続ネットワークを含むマルチプロセッサシステムの一実施形態を示すブロック図である。 図3は、マルチプロセッサシステムの二次相互接続ネットワークを示すブロック図である。 図4は、ルータ並びにその関連付けられたプロセッサ、メモリ及びインタフェースユニットの一実施形態のブロック図である。 図5は、プロセッサが二次相互接続ネットワークにアクセスするために一次相互接続ネットワーク上で通信する方法の一実施形態のフローチャート図である。 図6は、二次相互ネットワークからのメッセージをプロセッサに提供するために一次相互接続ネットワークに提供する方法の一実施形態のフローチャート図である。 図7は、チップ間の一次相互接続ネットワーク通路を使用してリモートチップ上の二次相互接続ネットワークにアクセスするマルチチップシステム実施形態を示すブロック図である。
本発明は様々な修正及び代替形態を許容するものであるが、その具体的な実施形態を例
として図面に示し、また本明細書で詳細に説明する。しかしながら、上記具体的実施形態
の図及び詳細な説明は、図示されている特定の形態に開示を限定することを意図したもの
ではなく、反対に、添付の請求項によって定義されるような本開示の精神及び範囲内にあ
る全ての修正例、均等物及び代替例を包含することを意図したものであることを理解され
たい。本明細書において使用されている見出しは、単に組織化を目的としたものであり、
これらの使用は本説明の範囲の限定を意味しない。本出願全体を通して使用される単語「
してよい/し得る/できる(may)」は、許容の意味で(即ち「可能性がある」ことを
意味して)使用されており、強制の意味で(即ち「しなければならない」ことを意味して
)使用されるものではない。同様に、単語「含む(include/including
/includes)」は、ある対象を含むもののそれに限定されないことを意味する。
様々なユニット、回路又はその他の構成部品は、1つ又は複数のタスクを実施する「よ
う構成される(configured to)」として記載され得る。このような文脈に
おいて「よう構成される」は、動作中に上記1つ又は複数のタスクを実施する「回路構成
を有する」ことを一般に意味する、構造の広範な説明である。従ってユニット/回路/構
成部品は、ユニット/回路/構成部品が現在オンでなくても上記タスクを実施するよう構
成できる。一般に「よう構成される」に対応する構造を形成する回路構成は、ハードウェ
ア回路を含んでよい。同様に、記載を簡略化するために、様々なユニット/回路/構成部
品は、1つ又は複数のタスクを実施するとして記載され得る。このような記載は「よう構
成される」という語句を含むものとして解釈されるものとする。1つ又は複数のタスクを
実施するよう構成されるユニット/回路/構成部品の列挙は、これらユニット/回路/構
成部品に関して米国特許法第112条第6段落の解釈を援用しないことを明示的に意図し
たものである。より一般には、いずれの要素の列挙は、「…のための手段(means
for)」又は「…のためのステップ(step for)」という語句が具体的に使用
されていない限り、上記要素に関して米国特許法第112条第6段落の解釈を援用しない
ことを明示的に意図したものである。
参照による援用
Michael B.Doerr、William H.Hallidy、David
A.Gibson、Craig M.Chaseを発明者とする、発明の名称「Pro
cessing System With Interspersed Stall P
ropagating Processors And Communication
Elements」の米国特許第7415594号は、その全体を参照することにより、
本明細書においてその全体が完全に論述されているかのように、本明細書に援用されるも
のとする。
Michael B.Doerr、Carl S.Dobbs、Michael B.
Solka、Michael R Trocino、David A.Gibsonを発
明者とする、2011年10月14日出願の、発明の名称「Disabling Com
munication in a Multiprocessor System」の米
国特許出願第13/274138号は、その全体を参照することにより、本明細書におい
てその全体が完全に論述されているかのように、本明細書に援用されるものとする。
用語
ハードウェア構成プログラム:例えば集積回路等のハードウェアをプログラム又は構成
するために使用できる、バイナリイメージにコンパイルできるソーステキストからなるプ
ログラム。
コンピュータシステム:パーソナルコンピュータシステム(PC)、メインフレームコ
ンピュータシステム、ワークステーション、ネットワーク家電、インターネット家電、パ
ーソナルデジタルアシスタント(PDA)、テレビジョンシステム、グリッドコンピュー
ティングシステム若しくはその他のデバイス又はデバイスの組み合わせを含む、様々なタ
イプの計算又は処理システムのいずれか。一般に、用語「コンピュータシステム」は、メ
モリ媒体からの命令を実行する少なくとも1つのプロセッサを有するいずれのデバイス(
又は複数のデバイスの組み合わせ)を包含するものとして広く定義できる。
自動的に(automatically):その動作又は操作を直接指定又は実施する
ユーザ入力を必要とせずに、コンピュータシステムが実施する動作又は操作(例えばコン
ピュータシステムが実行するソフトウェア)について用いる。従って用語「自動的に」は
、ユーザが手動で実施又は指定する操作(ここでユーザが操作を直接実施するために入力
を提供する)と対照的なものである。自動処理は、ユーザが提供する入力によって開始さ
れる場合があるが、これに続く「自動的に」実施される動作は、ユーザが指定するもので
はなく、即ち「手動で」実施される(ユーザが各動作の実施を指定する)ものではない。
例えばユーザが、各フィールドを選択し、(例えば情報をタイピングすることによって、
チェックボックスを選択することによって、無線選択によって等で)情報を指定する入力
を提供することによって、電子フォームを埋める場合、仮にコンピュータシステムがユー
ザの動作に応答して上記フォームを更新しなければならないとしても、これは上記フォー
ムを手動で埋めたことになる。このようなフォームはコンピュータシステムによって自動
で埋めることができ、この場合コンピュータシステム(例えばコンピュータシステム上で
実行されるソフトウェア)は、フォームのフィールドを分析して、フィールドへの回答を
指定するいずれのユーザ入力を必要とせずにフォームを埋める。上述のように、ユーザは
フォームを自動で埋める動作を発動する場合はあるが、実際にフォームを埋める動作には
関わらない(例えばユーザはフィールドへの回答を手動で指定せず、回答は自動的に完了
する)。本明細書は、ユーザが行う動作に応答して自動的に実施される操作の様々な例を
提供する。
マルチプロセッサシステム上の相互接続ネットワーク
図2は、処理要素(PE)とも呼ばれる複数のプロセッサと、補助メモリとも呼ばれる
データメモリルータ(DMR)と、一次相互接続ネットワーク(PIN)と、二次相互接
続ネットワーク(SIN)(図示せず)と、入出力(I/O)インタフェースとから構成
される、マルチプロセッサシステムを示す。図示したように、図中の正方形はプロセッサ
(つまり処理要素)を表し、円はデータメモリルータ(DMR)を表す。データメモリル
ータはルータ及びメモリを備え、このメモリは「補助メモリ」(SM)と呼ばれることが
ある。ルータ及びその関連付けられたメモリは、別個の独立したユニットとして考えるこ
とも、又は一体のデータメモリルータとして考えることもできる。各プロセッサ(PE)
は4つの隣接するDMRに接続されているが、この接続は説明を容易にするために図示さ
れていない。DMR間リンクと呼ばれるDMR間の接続は、マルチプロセッサシステム内
の様々なプロセッサ間の通信を可能にする一次相互接続ネットワーク(PIN)を形成す
る。図示したように、複数のプロセッサ、複数のメモリ、複数のルータが分散型配置で連
結されている。図2には示されていない(ただし図3には示されている)が、マルチプロ
セッサシステムは複数のインタフェースユニットを含み、各インタフェースユニットはそ
れぞれのプロセッサ(PE)及びそれぞれのルータ(DMR)に結合される。複数のイン
タフェースユニットは連結されて二次相互接続ネットワーク(SIN)を形成する。以下
で更に説明するように、マルチプロセッサシステムは、プロセッサのうちのいずれ(少な
くともプロセッサの複数のサブセット)がSINと通信できるようにする、改善されたア
ーキテクチャを含む。
複数のプロセッサ(PE)が存在することにより、マルチプロセッサシステムは、より
迅速にタスクを完了するための、又はタスクを完了するためのエネルギーを削減するため
の、並列アルゴリズムをサポートしてよい。並列アルゴリズムは、システム内での並びに
システム内への及びシステム内からの、PEとSMの間での非常に高速なデータストリー
ミングを必要とすることが多い。一次相互接続ネットワーク(PIN)は、好ましくは、
比較的大きなメッセージの高いビット/秒スループットに対して最適化されているが、特
に低レイテンシに対しては最適化されていない(ポイントツーポイント配信遅延)、高帯
域幅(高いビット/秒スループット)相互接続ネットワークである。トラフィック負荷が
軽い条件下では、大部分のメッセージは妨げられることなくPINを通過することになる
。トラフィック負荷が重い条件下では、メッセージはネットワーク上の他のメッセージに
よってブロックされることがある。PINハードウェアは、トラフィックが少なくなり、
ブロックするトラフィックが消えた後に最終的にブロックされたメッセージを配信してよ
いが、その間にPINは送信者にビジー信号を反映することがある。
また、図2は、マルチプロセッサシステム内の例示的な平面メッシュPINも示す。現
在のシリコントランジスタIC製作技術を使用すると、単一のICチップ上に100以上
のPEを集積して相互接続できる。高度な回路基板及び他の基板によって相互接続された
多数のこれらのチップを用いて、数千のPEのシステムを作成できる。
並列アルゴリズムはメッセージブロックを最小限に抑えるように設計できるが、特にア
ルゴリズムがハードウェアに適合されているアプリケーションソフトウェアの開発では、
並列アルゴリズムはメッセージブロックを常には排除できない。一般に2つのタイプの、
1つ又は複数の追加の低帯域幅二次相互接続ネットワーク(SIN)が必要となる。一方
はPINよりも低いレイテンシでの緊急の通信をサポートするためのものであり、他方は
メッセージ配信の保証(GMD)によって構成機能及びデバッグ機能をサポートするため
のものであるが、レイテンシがより高い。いくつかの実施形態では、二次相互接続ネット
ワーク(SIN)はシリアルバスであってよく、従って本明細書では「シリアルバス」(
SB)と呼ばれてよい。
図3を参照すると、二次相互接続ネットワーク(SIN)の一実施形態が示されている
。SINは、複数のプロセッサ(PE)、複数の補助メモリ(SM)、複数のルータ、一
次相互接続ネットワーク(PIN)、チップI/Oインタフェース、送電網、クロッキン
グネットワークとともに、マルチプロセッサシステムICチップに埋め込まれてよい。よ
り具体的には、図3に示すように、マルチプロセッサシステムは、図3において円で表さ
れる複数のプロセッサ(PE)と、矩形として表される複数のデータメモリルータ(DM
R)とを備える。これもまたり図示されているように、マルチプロセッサシステムは複数
のインタフェースユニットを含み、各インタフェースユニットはそれぞれのプロセッサ及
びそれぞれのルータに結合される。インタフェースユニットは、それぞれのプロセッサ(
PE)とそれぞれのDMRとの間に位置する小さい正方形として表される。個々のメッセ
ージを特定のインタフェースユニットに送信できるように、各インタフェースユニットに
一意のアドレス値を割り当ててよい。図示したように、複数のインタフェースユニットを
連結して二次相互接続ネットワークを形成する。より具体的には、複数のインタフェース
ユニットをデイジーチェーン式で連結して、二次相互接続ネットワーク(SIN)を形成
する。
いくつかの実施形態では、SINは、チップ全体で前後に蛇行する長いループ内の全て
のPE及びSMを相互接続するためにシリアルバスアーキテクチャを有してよい。従って
、本明細書に提示されるSINの一例はオンチップシリアルバス(SB)である。SIN
は、最小の面積及び消費電力でメッセージ配信の保証(GMD)をサポートできるよう動
作してよい。SINは、アプリケーション及びシステムソフトウェアのプログラマにデバ
ッグサポートを提供してよい。更に、SINをシステムブートアップ中及びいずれの時点
で使用して、メモリをロードし、電源投入時システムテストを実行できる。またSINを
実行時中に使用して、クロック制御管理及びPEメッセージパッシング等の様々なシステ
ム管理機能を実行できる。最後に、SINをICテスト及び評価で使用することもできる
本明細書に記載の実施形態では、SINは、ローカルインタフェースユニット間のリン
クの一方向デイジーチェーンとして編成されたシリアルバス(SB)アーキテクチャを有
し、図3に示すように、チェーンの両端は、シリアルバスコントローラ(SBC)ユニッ
トとも呼ばれるバスコントローラに結合される。図3に示す実施形態では、インタフェー
スユニットは図3のシリアルバススレーブ(SBS)インタフェースとして標識される。
各インタフェースユニット(SBSユニット)は1つのPE、1つのSMユニット、1つ
のSB入力リンク、1つのSB出力リンクに結合する。上述のように、個々のメッセージ
を特定のSBSユニットに送信できるように、各インタフェースユニット(SBSユニッ
ト)に一意のアドレス値を割り当ててよい。各インタフェースユニット(SBS-IU)
は、PE及びSMの主にワード並列のフォーマット間のメッセージフォーマットを、SB
リンクの主にビット直列のフォーマットに変換するためにレジスタ及び論理を含む。
SBは多数のコマンドをサポートしてよい。例えばいくつかの実施形態では、SBコマ
ンドは、例えばリセット、ゼロ化、並列ロード(命令及び/又はデータ)、ウェークアッ
プPE、分岐点強制、シングルステップ等の並列操作をサポートしてよい。他の実施形態
では、SBは、PEパイプラインステータス及び命令ポインタの読み出し並びにタンパー
検出リセットを可能にするコマンドをサポートしてよい。
インタフェースユニット間の各リンクはN本の平行導線であってよく、小さいNは電力
を保全し、大きいNはより多くのビット/秒スループットを達成する。SINではスルー
プットは通常問題ではないので、2本のワイヤ(N=2)リンクを使用してよい。一方の
ワイヤはデータ信号(SBDATA)を搬送してよく、他方のワイヤはクロック信号(S
BCLK)を搬送して、受信機入力フリップフロップにおいてデータを取り込んでよい。
メッセージの存在は、SBCLK上の方形波で示すことができ、メッセージの不在はSB
CLKでの一定値によって示すことができる。
好ましい実施形態では、プロセッサのうちの1つは指定されたプロセッサである。つま
り、図3でシリアルバスコントローラと呼ばれるバスコントローラに結合するように事前
に構成されている。また、指定されたプロセッサは、関連付けられた「指定されたルータ
」及び「指定されたインタフェースユニット」も有する。図示したように、指定されたル
ータはプロセッサインタフェースユニットに接続される。従って、マルチプロセッサシス
テムのいずれのプロセッサ(PE)は指定されたルータと通信して、SINにアクセスす
るための要求を提供できる。このようにして、例えば(指定されたプロセッサ以外の)プ
ロセッサがSINでの通信を希望する場合、プロセッサは指定されたルータに通信要求を
提供する。続いて指定されたルータはこの要求をプロセッサインタフェースブロックに転
送できる。そしてプロセッサインタフェースブロックはこの要求をバスコントローラに転
送できる。
バスコントローラは、少なくとも1つの指定されたインタフェースユニットに結合され
、少なくとも1つの指定されたインタフェースユニットにデータを送信し、少なくとも1
つの指定されたインタフェースユニットからデータを受信するよう構成される。指定され
たインタフェースユニットは、SINへの「エントリポイント」つまり「アクセスポイン
ト」を形成する。このようにして、バスコントローラはプロセッサインタフェースブロッ
クで受信したメッセージを、指定されたインタフェースユニットに、従ってSINに渡す
よう構成される。一実施形態では、同一の指定されたインタフェースユニットは、SIN
とバスコントローラとの間でのデータ送信及びデータ受信の両方のために構成される。別
の実施形態では、第1の指定されたインタフェースユニットは、バスコントローラからデ
ータを受信してSIN上にデータを提供するよう構成され、第2の指定されたインタフェ
ースユニットはSINからデータを受信してバスコントローラにデータを提供するよう構
成される。
バスコントローラは、アクセス要求の間のどのような競合も調停し、要求側の指定され
たインタフェースユニットのうちの1つによるSINへの「一度に一回の(one-at
-a-time)」アクセスを許可するよう構成される。多くの異なる論理ブロックがバ
スコントローラに結合され、SINへのアクセスのための要求をバスコントローラに提供
してよい。これらの論理ブロックは、ブートコントローラ、デバッグアクセスポート(D
AP)コントローラ、外部ホストインタフェース、プロセッサインタフェースブロックを
含んでよい。いくつかの実施形態では、バスコントローラによって使用される調停方式及
び優先順位は固定であってよい。一方、他の実施形態では、調停方式及び優先順位はプロ
グラム制御下にあってよい。
上述のように、プロセッサインタフェースブロックはバスコントローラに結合され、少
なくとも1つの指定されたインタフェースユニットに関連付けられた指定されたルータと
も結合される。プロセッサインタフェースブロックは、マルチプロセッサシステムの複数
のプロセッサのうちのいずれが、一次相互接続ネットワークを使用して指定されたルータ
を通して通信することによって二次相互接続ネットワーク(SIN)にアクセスできるよ
う構成される。
各インタフェースユニット(SBS-IU)は、その他のポートをバッファリングする
ためのシリアル入力レジスタ、シリアル出力レジスタ及び追加のレジスタ、並びにポート
とシリアルバスとの間でメッセージフォーマットを変換するための1つ又は複数の状態機
械から構成されてよい。SBS-IUでSBコマンドを受信すると、コマンドを初期化コ
マンドに関して試験してよい。初期化コマンドが存在しない場合、SBS-IUをバイパ
スモードのままとしてよい。しかしながら初期化コマンドが存在する場合、SBS-IU
は、コマンドに関連付けられたアドレスをハードワイヤードアドレスに比較してよい。コ
マンドに関連付けられたアドレスがSBS-IUのハードワイヤードアドレスと一致する
と、SBS-IUは、終了コマンドを受信するまで、全ての以降のコマンドをSBS-I
U自体に向けられているものとして解釈し、終了コマンドを受信すると、SBS-IUは
バイパスモードに戻る。
様々な実施形態では、SBトランシーバはDMRと同じコアマスタクロックで動作して
、DMRメモリ又はレジスタへのアクセスを実行する際のタイミングに関する問題を防ぐ
。ただし、いくつかの実施形態では、PEはよりゆっくりとしたクロックで動作できるよ
うにしてよく、SBC-IUとPEとの間で移動するデータを潜在的にミスラッチするこ
とがある。このような場合、SBC-IUとのいずれのデータの転送の間、PEをマスタ
クロックに一時的に切り替えてよい。
SIN上での通信は、並列入力及び出力を有するシフトレジスタを利用することによっ
て固定ビット長のショートメッセージを使用して達成してよい。Mビットの固定長のメッ
セージは、同じ長さのシフトレジスタに容易に取り込まれる、又は同じ長さのシフトレジ
スタから容易に送信されるが、より長いレジスタを使用してもよく、また合計でMビット
以上になるより短いレジスタの組み合せを使用してもよい。送信機は、出力がSBDAT
Aに結合され、シフトクロックがSBCLKに結合された出力シフトレジスタを有してよ
い。送信機はその出力シフトレジスタを並列ロードし、続いてシフトクロックをオンにし
てメッセージを送出し、Mビット後に停止する。受信機は、そのデータ入力がSBDAT
Aに結合され、その入力クロックがSBCLKに結合された入力シフトレジスタを有して
よい。Mビットが到達した後、入力シフトレジスタを並列で読み出してよく、このデータ
を、コマンドコード、アドレス、ブロックデータサイズ、データについて復号してよい。
固定長メッセージ及びシフトレジスタの使用は一例にすぎず、他のメッセージフォーマッ
トを代わりに使用してよい。
特定のインタフェースユニット(SBS-IU)で受信されたメッセージが、上記SB
S-IUにアドレス指定されたコマンドを含まない場合、インタフェースユニット(SB
S-IU)はメッセージを無視し、チェーン内の次のインタフェースユニット(SBS-
IU)にメッセージを中継してよい。コマンドがSBS-IUにアドレス指定される、又
はコマンドが放送コマンドである場合、SBS-IUは示されたアクションを行うだけで
よい。コマンドが応答メッセージを必要とする場合、SBS-IUはメッセージを生成し
て、これをデイジーチェーンの次のSBS-IUに送信してよい。このメッセージは、多
くのSBS-IUを通過した後、メッセージを待つコントローラへの中継のためにシリア
ルバスコントローラ(SBC)に戻る。SBS-IUから発せられたメッセージは、SB
Cからのメッセージと同じ固定長のメッセージフォーマットとなってよく、相違点は、宛
先アドレスがSBCアドレスである点である。
図3に示しかつ上述したように、バスコントローラ(SBC)は、ブートコントローラ
(BC)、デバッグアクセスポート(DAP)コントローラ、外部ホストインタフェース
(EHI)、及びプロセッサインタフェースブロック(内部PEインタフェース)に結合
される。更に、指定されたプロセッサは、指定されたDMRを通ってブートコントローラ
及びバスコントローラ(SBC)へと戻るアクセス経路を有する。これらのマスタコント
ローラ(ブートコントローラ、デバッグアクセスポートコントローラ、外部ホストインタ
フェース、プロセッサインタフェースブロック)のそれぞれは、SINへのアクセスを要
求することがある。各マスタは、適切にフォーマットされたメッセージをバスコントロー
ラ(SBC)に提供し、上記SBCはメッセージフォーマットエラーを検出してもしなく
てもよい。
上述のように、図3に示すSINバストポロジーは、バスコントローラにアクセスする
ための経路を含む。この経路は指定されたDMR(DMR0,0)のサウスポートからプ
ロセッサインタフェースブロックを通って進む。この経路はいずれの内部PEが使用する
ためのものである。プロセッサインタフェースブロック、つまり内部PEインタフェース
(IPEI)の目的は、SINメッセージにバッファレジスタを提供し、それによってシ
ステム内のいずれのPEがPINを使用して、指定されたDMR(DMR0,0)のサウ
スポートを通ってSINにアクセスできるようにすることである。いずれのプロセッサが
SIN上で通信するために、対象PEはPIN上において、隣接するDMRのうちの1つ
から指定されたDMR(DMR0,0)への通信経路を通常の方法で確立し、次いで全二
重通信用の逆経路を作成するための戻り経路情報を提供する。順方向経路及び逆方向経路
を確立した後、対象PEはSINコマンドを発行し、バスコントローラから結果及びメッ
セージステータス情報を受信してよい。
DMR並びにその関連付けられたプロセッサ、メモリ及びインタフェースユニットの実
施形態を、図4に示す。図示した実施形態では、DMR401は、メモリ402、ルータ
403を含む。メモリ402はルータ403に結合され、ルータ403はPE404及び
シリアルバススレーブ(SBS)405に結合される。
ルータ401は、隣接するPE及び隣接するDMRに結合してよい。更に、ルータ40
1はメモリ402及びSBS405に結合してよい。いくつかの実施形態では、ルータ4
01は、例えばPE404等の結合されたデバイスのうちの1つに受信されたデータのパ
ケットを選択的に送信するよう構成してよいクロスバースイッチを含んでよい。他の実施
形態では、ルータ401は、PINの複数の層の間でデータパケットを送受するよう構成
してよい。
メモリ402は、様々な設計スタイルのうちの1つに従って設計してよい。いくつかの
実施形態では、メモリ402は複数のスタティックランダムアクセスメモリ(SRAM)
セル又は他のいずれの適切な記憶回路を含んでよい。例えばメモリ402は、ラッチ、又
はレジスタファイルとして配列されたフリップフロップ回路を含んでよい。
いくつかの実施形態では、SBS405は専用ポートを介してルータ403及びPE4
04に結合されてよい。更に、SBS405は、他のSBSユニットにも結合されて、上
述のデイジーチェーン接続を形成してもよい。様々な実施形態では、SBS405は、シ
リアル入力レジスタ及びシリアル出力レジスタを含んでよく、これらはシリアルバスリン
クで通信をバッファリングするために利用できる。他のポートをバッファに入れるために
追加のレジスタを含んでもよい。いくつかの実施形態では、SBS405は、1つ又は複
数の順序論理回路又は状態機械を含んでよい。このような回路は様々なポートとシリアル
リンクとの間でメッセージフォーマットを変換するよう構成してよい。様々な実施形態で
は、SBS405はDMR401に組み込まれてよい。他の実施形態では、SBS405
は別個の機能ブロックであってよい。
いくつかの実施形態では、構成レジスタは、例えば図4に示すSBS405等のSBS
内に位置してよい。様々な実施形態では、構成レジスタは、シリアルバスコマンドを使用
することによって読み書きできる。構成レジスタ内の個々のビットは、セキュリティを目
的として、例えばPE、DMR並びに存在する場合はチップI/Oポート論理(NR)及
び/又はDDR外部メモリコントローラといった、SBS405に結合されたマクロセル
へのアクセスを制御するよう、並びに動的省力のためにマクロセルクロックレートを制御
するよう、設定又はクリアしてよい。構成レジスタ内の追加のビットを用いて、電源と所
与のマクロセルとの間で直列のトランジスタを制御することによって、又は所与のマクロ
セル内部でトランジスタに対する基板バイアスを活性化し、これによってトランジスタを
通る漏れを抑制することによって、漏れ電力を削減できる。様々な実施形態では、構成レ
ジスタは、基本的なDMR及びPEに加えて追加のマクロセルを制御するための追加ビッ
トを含んでよい。例えば追加のマクロセルは、関連付けられたDMR内のルート指定回路
の追加層となってよい。
様々な実施形態では、SBS構成レジスタは21ビット長であってよく、低位の20ビ
ットを、セキュリティ及び省力のためにローカルマクロセルを設定するために使用してよ
い。21ビット目はロックアウトビットであってよく、更なる変更を防止し、それによっ
て次のチップ全体のリセットまで設定を保護するために利用できる。
いくつかの実施形態では、低位の6ビットは、ローカルマクロセル、つまりPE、DM
R、並びに存在する場合はチップI/Oポート論理(NR)及び/又はDDR外部メモリ
コントローラのために、クロック有効化及びクロックリセットを選択的に制御してよい。
より高位のビットは、セキュリティを目的としてローカル通信ポートを選択的に無効化す
るためのものであってよい。いくつかの実施形態では、ビット6及びビット16~19は
、追加された第2のルータ(B層ルータ)へのアクセスを制御するために使用できる。
本明細書に記載のレジスタは、記憶回路の特定の実施形態であってよい。いくつかの実
施形態では、レジスタは、それぞれが単一データビットを記憶するよう構成された、1つ
又は複数のラッチ、フリップフロップ回路、又は他の適切な記憶装置を含んでよい。レい
くつかの実施形態では、ジスタは、クロックエッジ又は他のタイミング信号に応じてデー
タを記憶してよい。
図4に示す実施形態は単に例にすぎないことに留意されたい。他の実施形態では、異な
る機能ブロック及び機能ブロックの異なる構成が可能であり、考察の対象となる。
図5を参照すると、プロセッサが二次相互接続ネットワークにアクセスするために一次
相互接続ネットワーク上で通信を初期化する方法の一実施形態を示すフローチャートが示
されている。図3、5に示すフローチャートを併せて参照すると、本方法はブロック50
1で開始する。次に、プロセッサから指定されたルータへの一次相互接続ネットワーク上
の通信経路を確立してよい(ブロック502)。いくつかの実施形態では、例えば図3に
示すようなDMR0,0等の指定されたルータは、例えば図3に示すような内部PEイン
タフェース302等のプロセッサインタフェースブロックに結合してよい。いくつかの実
施形態では、指定されたルータは、例えば図3に示すようなPE0,0等の指定されたP
Eに結合されてよい。
PINにおいて通信経路を確立することにより、プロセッサは指定されたルータに1つ
又は複数の第2の相互接続ネットワーク(SIN)メッセージを送信してよい(ブロック
503)。いくつかの実施形態では、SINメッセージは、PINで利用される通信プロ
トコルに従ってフォーマットされてよい。例えばSINメッセージを一連のデータワード
に分割してよく、各データワードは、フロー制御装置(FLIT)としてPIN上でビッ
ト並列で送信される。様々な実施形態では、SINメッセージは、1つ又は複数のSIN
メッセージを含むデータペイロードに加えて制御情報又は経路選択情報を含んでよい、パ
ケット又は一連のパケットで送信されてよい。
指定されたルータ(例えば図3のDMR0,0)に到達するFLIT及びパケットは、
流量制御を受けてプロセッサインタフェースブロック(図3の302)に転送され、レジ
スタでバッファリングできる。続いて制御情報及び経路選択情報を、1つ又は複数のSI
Nメッセージを含むデータペイロードから分離してよい(ブロック504)。いくつかの
実施形態では、プロセッサインタフェースブロックは、パケットヘッダからの制御情報及
び経路選択情報を使用して、指定されたルータへのプロセッサインタフェースブロックの
逆結合を介して1つ又は複数の個々のDMR又はPEへのPINの1つ又は複数の戻り経
路を確立してよい。
第1のSINメッセージを再構築するために十分なデータがプロセッサインタフェース
ブロックのバッファに到着すると、第1のSINメッセージをSINバスコントローラに
ビット直列式で送信してよい(ブロック503)。続いて第1のSINメッセージを用い
て、SINコントローラに、それが既に別のコントローラによって使用されているかどう
かを尋ねてよい。SINコントローラが既に使用中である場合、プロセッサインタフェー
スブロックは流量制御信号伝達を用いて、結合されたDMR及びPINから送信側PEへ
と戻るFLITの配信をストールさせてよい。SINコントローラが既に使用中ではない
場合、第2のSINメッセージを含むFLITをプロセッサインタフェースブロックのバ
ッファの中に受け入れてよい。いくつかの実施形態では、受け入れ及びストールの交代は
無期限に使用されてよい。様々な実施形態では、送信側PEはそれ自体の遅延を更に挿入
し、これらの間隔を使用して他の作業を行ってよい。
第2のSINメッセージを再構築するために十分なFLITSを受信すると、プロセッ
サインタフェースブロックは、ビット直列式で第2のSINメッセージをSINバスコン
トローラに提供してよい(ブロック505)。第2のSINメッセージは、その一意のア
ドレスで識別された特定のSBS-IUにSINチャネルを初期化するために、SINコ
ントローラによって使用されてよい(ブロック506)。
いくつかの実施形態では、例えば図3に示すようなシリアルバスコントローラ301等
のSINバスコントローラは、ブートコントローラ、デバッグアクセスポート(DAP)
、外部ホストインタフェース、内部プロセッサインタフェースに結合されてよく、その例
が図3に示されている。続いてSINバスコントローラは二次相互接続ネットワークメッ
セージを選択し、二次相互接続ネットワーク上へ送信するために、上述のブロックからの
様々な要求の間での調停を行ってよい(ブロック506)。SINでチャネルを初期化す
るためのSINメッセージが意図されたSBS-ISに到達すると、方法はブロック50
7で終了してよい。いくつかの実施形態では、SINコントローラの第3のSINメッセ
ージ要求を利用して、意図されたチャネルが初期化されたことを確認してよい。
いくつかの実施形態では、バスコントローラは、コマンドが二次相互接続ネットワーク
に中継される前にコマンドを検証してよい。検証は、2つの異なるPEによって送信され
る2つの同一のコマンドを比較することによって実行できる。いくつかの実施形態では、
PEのうちの1つは、例えば図3に示すPE0,0といった指定されたPE、つまりマス
タPEであってよい。2つのコマンドのタイミングはソフトウェアによって制御されてよ
い。いくつかの実施形態では、2つの異なるポートからの書込みが衝突しないことを保証
するためにセマフォ機構が利用されてよい。
2つのコマンドがバスコントローラに記憶されると、コマンドを比較してよい。コマン
ドが一致すると、コマンドは二次相互接続ネットワークへと提供される。コマンドが一致
しない場合、コマンドは二次相互接続ネットワークへと提供されず、プログラム可能なエ
ラー処理ユニットに送信されてよい。様々な実施形態では、プログラム可能なエラー処理
ユニットの機能は、タンパーイベントを報告する能力、I/O回路を無効にする能力、メ
モリを「抹消する」能力、チップをリセットする能力、クロック若しくは電源をオフ/オ
ンにする能力、又はチップのより多くの特徴のうちの1つを恒久的に無効にするためにヒ
ューズを飛ばす能力を含んでよいが、これらに限定されない。
図5に示す方法の動作は連続して実行されるとして示されるが、他の実施形態では、動
作の1つ又は複数を並行して実行してよい。更に、上述の方法の実施形態では、単一の二
次相互接続ネットワークメッセージが、PINを通して所与のPEからプロセッサインタ
フェースブロックに、次いでバスコントローラを通して二次相互接続ネットワークに送信
される。しかしながら、メッセージは、マルチプロセッサアレイに含まれるいずれのPE
から発されてよいことに留意されたい。
二次相互接続ネットワークからのメッセージを、プロセッサに提供するために一次相互
接続ネットワークに提供する方法の一実施形態を、図6に示す。図3、6に示すフローチ
ャートを併せて参照すると、本方法はブロック601で開始する。次に、指定されたルー
タ(例えば、図3のDMR0,0)からプロセッサへの通信経路を確立してよい(ブロッ
ク602)。いくつかの実施形態では、プロセッサは、図5に関して上述したプロセッサ
等の、二次相互接続ネットワークメッセージを発したプロセッサであってよい。
逆通信経路が確立されると、図3に示すシリアルバスコントローラ301等のバスコン
トローラが、二次相互接続ネットワークから応答を受信してよい(ブロック603)。続
いて受信された応答を、バスコントローラからプロセッサインタフェースブロックに送信
してよい(ブロック604)。いくつかの実施形態では、図3に示す内部PEインタフェ
ース302等のプロセッサインタフェースブロックは1つ又は複数のバッファを含んでよ
く、これらはそれぞれ、バスコントローラを介して二次相互接続ネットワークから受信さ
れる受信済み応答を記憶するよう構成される。
プロセッサインタフェースブロックがバスコントローラから応答を受信すると、プロセ
ッサインタフェースブロックは、例えば図3に示すDMR0,0等の指定されたルータに
応答を中継してよい(ブロック605)。次に指定されたルータは、ターゲットプロセッ
サへの応答の転送を開始してよい(ブロック606)。いくつかの実施形態では、応答は
、宛先プロセッサに到達する前に、確立された通信経路に沿って1つ又は複数のルータに
沿って移動してよい。宛先プロセッサに応答が到着すると、方法はブロック607で終了
してよい。
図6に示す方法は単に例にすぎないことに留意されたい。他の実施形態では、異なる動
作及び動作の異なる順序を利用してよい。
いくつかの実施形態では、シリアルバスは1つのチップを越えて拡張しない。従ってマ
ルチチップシステムでは、いくつかのDAPポートが共に多重化されてよく、これらを操
作できるようソフトウェアドライバが書き込まれる。マルチプロセッサチップとプログラ
マのPCとの間の通信チェーンに応じて、これは冗長で遅い場合がある。
図7を参照すると、システムに含まれるチップ間により高速の通信を提供できるマルチ
チップシステムの一実施形態が示されている。図示した実施形態では、チップ701はチ
ップ702から704に結合される。このようなマルチチップシステムでは、1つのチッ
プ上のPEは、PIN、ターゲットチップDMR0,0、内部PEインタフェース(IP
EI)を通して、別のチップ上のSBCにアクセスできる。
図7に示す実施形態では、チップ0のPE0,0は、他の3つのチップのSBCにアク
セスしてよい。追加のチップのSBCは、PEからの出口経路がいっぱいになるまでアク
セスされてよく、その後は追加のPEを利用してよい。PINチップ間結合は真のシリア
ルバスポートほどワイヤ効率がよくなく、チップ間のリンク、つまりPINポートは、シ
リアルバスポートよりも6倍から17倍多くの平行導線を要することがあるが、PINポ
ートは他の目的のために時分割方式で使用できる。
図7に示すマルチチップシステムでは4つのチップが示されているが、他の実施形態で
は、異なる数のチップ及びチップの異なる構成が可能であり、考察の対象となる。
上記開示を完全に理解すれば、当業者には多数の変形形態及び修正形態が明らかになる
だろう。以下の特許請求の範囲は、全てのこのような変形形態及び修正形態を包含すると
解釈されることが意図される。

Claims (15)

  1. マルチプロセッサシステムであって、
    それぞれが複数のプロセッサポートを備える、複数のプロセッサと、
    複数のメモリと、
    前記複数のプロセッサおよび前記複数のメモリに分散型配置で連結された複数のルータであって、前記複数のルータは互いに連結されて一次相互接続ネットワークを形成する、前記複数のルータと、
    前記複数のプロセッサのうちの対応するプロセッサ、および、前記複数のルータのうちの対応するルータに連結された複数のインタフェースユニットであって、前記複数のインタフェースユニットは互いに連結されて二次相互接続ネットワークを形成する、前記複数のインタフェースユニットと、
    少なくとも1つの指定されたインタフェースユニットに連結されたバスコントローラであって、前記バスコントローラは、
    前記少なくとも1つの指定されたインタフェースユニットにデータを送信し、および、前記少なくとも1つの指定されたインタフェースユニットからデータを受信し、
    前記少なくとも1つの指定されたインタフェースユニットへのアクセス要求を調停し、
    2つ以上の前記プロセッサから受信したコマンドを比較する、
    ように構成される、前記バスコントローラと、
    を備える、前記マルチプロセッサシステム。
  2. 前記2つ以上のプロセッサから受信した前記コマンドを比較するために、前記バスコントローラは、前記2つ以上のプロセッサから受信した前記コマンドが一致するとの判断に応答して、前記コマンドのうちの1つを前記二次相互接続ネットワークに送信するようにさらに構成されていることを特徴とする、請求項1に記載のマルチプロセッサシステム。
  3. エラーハンドラユニットをさらに備え、前記2つ以上のプロセッサから受信した前記コマンドを比較するために、前記バスコントローラは、前記2つ以上のプロセッサから受信した前記コマンドが一致しないという判断に応答して、前記エラーハンドラユニットにコマンドを送信するようにさらに構成されていることを特徴とする、請求項1に記載のマルチプロセッサシステム。
  4. 複数の入出力(I/O)回路をさらに備え、前記エラーハンドラユニットが、
    前記バスコントローラから前記コマンドを受信することに応答して、タンパーイベントを報告することと、
    前記バスコントローラから前記コマンドを受信することに応答して、前記I/O回路を無効にするように構成されている、請求項3に記載のマルチプロセッサシステム。
  5. マルチプロセッサシステムにおいて通信を行うための方法であって、前記マルチプロセッサシステムは、複数のプロセッサと複数のデータメモリルータが相互に連結されて構成され、前記方法は、
    第1のプロセッサから、特定のプロセッサに関連する特定のルータへの一次相互接続ネットワーク上の通信経路を確立するステップであって、前記特定のルータは、プロセッサインタフェースブロックに接続されている、前記確立することと、
    前記第1のプロセッサが、前記一次相互接続ネットワークを介して、前記特定のルータに二次相互接続ネットワークメッセージを送信することと、
    前記特定のルータが、前記二次相互接続ネットワークメッセージを前記プロセッサインタフェースブロックに提供することと、
    前記プロセッサインタフェースブロックが、前記二次相互接続ネットワークメッセージをバスコントローラに提供することと、
    前記バスコントローラが、前記複数のプロセッサのうちの2つ以上のプロセッサからコマンドを受信することと、
    前記バスコントローラが、前記複数のプロセッサのうちの前記2つ以上のプロセッサから受信した前記コマンドを比較することと、
    を備える、方法。
  6. 前記2つ以上のプロセッサから受信した前記コマンドを比較することは、前記2つ以上のプロセッサから受信した前記コマンドが一致すると判断することに応答して、前記コマンドのうちの1つを前記特定のプロセッサに関連する前記特定のルータへの前記一次相互接続ネットワーク上の前記通信経路に送信することを含む、請求項5に記載の方法。
  7. 前記2つ以上のプロセッサから受信した前記コマンドを比較することは、前記2つ以上のプロセッサから受信した前記コマンドが一致しないと判断することに応答して、前記マルチプロセッサシステムに含まれるエラーハンドラユニットにコマンドを送信することを含む、請求項5に記載の方法。
  8. 前記エラーハンドラユニットが前記バスコントローラから前記コマンドを受信したことに応答して、前記エラーハンドラユニットによってタンパーイベントを報告するステップと、
    前記エラーハンドラユニットが前記バスコントローラから前記コマンドを受信したことに応答して、前記エラーハンドラユニットによって、前記マルチプロセッサシステムに含まれる少なくとも1つの入出力(I/O)回路を無効にするステップと、をさらに含む、請求項7に記載の方法。
  9. マルチプロセッサシステムであって、
    それぞれが複数のプロセッサポートを含む複数のプロセッサと、
    前記複数のプロセッサに分散して連結された複数のデータメモリルータであって、各データメモリルータは、複数の通信ポート、第1のメモリ、および、ルーティングエンジンを含み、前記複数のデータメモリルータは、一次相互接続ネットワークを形成する、前記複数のデータメモリルータと、
    二次相互接続ネットワークを形成するように連結された複数のインタフェースユニットであって、各前記インタフェースユニットは、それぞれの前記プロセッサおよび前記データメモリルータに結合されている、複数のインタフェースユニットと、
    少なくとも第1のインタフェースユニットおよび第2のインタフェースユニットに連結されたバスコントローラであって、前記バスコントローラは、
    前記第1のインタフェースユニットにデータを送信し、前記第2のインタフェースユニットからデータを受信し、
    少なくとも前記第1および第2のインタフェースユニットへのアクセス要求を調停し、
    前記複数のプロセッサのうちの2つ以上の前記プロセッサから受信したコマンドを比較する、
    ように構成される、前記バスコントローラと、
    を備えた、前記マルチプロセッサシステム。
  10. 前記2つ以上のプロセッサから受信した前記コマンドを比較するために、前記バスコントローラは、前記2つ以上のプロセッサから受信した前記コマンドが一致するとの判断に応答して、前記コマンドのうちの1つを前記二次相互接続ネットワークに送信するようにさらに構成される、請求項9に記載のマルチプロセッサシステム。
  11. エラーハンドラユニットをさらに備える、請求項9に記載のマルチプロセッサシステム。
  12. 前記2つ以上のプロセッサから受信した前記コマンドを比較するために、前記バスコントローラは、前記2つ以上のプロセッサから受信したコマンドが一致しないという判断に応答して、前記エラーハンドラユニットに前記コマンドを送信するようにさらに構成される、請求項11に記載のマルチプロセッサシステム。
  13. 前記エラーハンドラユニットは、前記バスコントローラから前記コマンドを受信したことに応答して、タンパーイベントを報告するように構成される、請求項12に記載のマルチプロセッサシステム。
  14. 複数の入出力(I/O)回路をさらに備え、前記エラーハンドラユニットは、前記バスコントローラから前記コマンドを受信したことに応答して、前記I/O回路を無効にするように構成される、請求項12に記載のマルチプロセッサシステム。
  15. 複数のヒューズをさらに備え、前記エラーハンドラユニットは、前記バスコントローラから前記コマンドを受信することに応答して、前記複数のヒューズのうち少なくとも1つのヒューズを飛ばすように構成される、請求項12に記載のマルチプロセッサシステム。
JP2021165241A 2012-12-13 2021-10-07 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム Active JP7289341B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261736851P 2012-12-13 2012-12-13
US61/736,851 2012-12-13
JP2018093528A JP6603363B2 (ja) 2012-12-13 2018-05-15 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
JP2019186694A JP6959310B2 (ja) 2012-12-13 2019-10-10 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019186694A Division JP6959310B2 (ja) 2012-12-13 2019-10-10 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2022023108A JP2022023108A (ja) 2022-02-07
JP7289341B2 true JP7289341B2 (ja) 2023-06-09

Family

ID=49765667

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2015547381A Active JP6341930B2 (ja) 2012-12-13 2013-11-21 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
JP2018093528A Active JP6603363B2 (ja) 2012-12-13 2018-05-15 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
JP2019186694A Active JP6959310B2 (ja) 2012-12-13 2019-10-10 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
JP2021165241A Active JP7289341B2 (ja) 2012-12-13 2021-10-07 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2015547381A Active JP6341930B2 (ja) 2012-12-13 2013-11-21 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
JP2018093528A Active JP6603363B2 (ja) 2012-12-13 2018-05-15 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
JP2019186694A Active JP6959310B2 (ja) 2012-12-13 2019-10-10 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム

Country Status (5)

Country Link
US (5) US9292464B2 (ja)
EP (3) EP3109769B1 (ja)
JP (4) JP6341930B2 (ja)
CN (1) CN104919442B (ja)
WO (1) WO2014092968A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014092968A1 (en) * 2012-12-13 2014-06-19 Coherent Logix, Incorporated Multiprocessor system with improved secondary interconnection network
CN104780122B (zh) * 2015-03-23 2018-09-11 中国人民解放军信息工程大学 基于缓存再分配的层次化片上网络路由器的控制方法
JP5943115B1 (ja) * 2015-03-27 2016-06-29 日本電気株式会社 集積回路、半導体装置、カード及びデータ転送方法
CA3060368C (en) * 2017-04-17 2020-07-28 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
US11093251B2 (en) 2017-10-31 2021-08-17 Micron Technology, Inc. System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network
US10747709B2 (en) * 2017-11-03 2020-08-18 Coherent Logix, Incorporated Memory network processor
US11119768B2 (en) 2018-03-31 2021-09-14 Micron Technology, Inc. Conditional branching control for a multi-threaded, self-scheduling reconfigurable computing fabric
KR102497178B1 (ko) 2018-03-31 2023-02-09 마이크론 테크놀로지, 인크. 재진입 큐를 사용하는 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 루프 실행 제어
CN112055853B (zh) 2018-03-31 2024-04-09 美光科技公司 用于多线程自调度可重新配置计算架构的电路及系统
US10990391B2 (en) 2018-03-31 2021-04-27 Micron Technology, Inc. Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric
KR102454405B1 (ko) 2018-03-31 2022-10-17 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 효율적인 루프 실행
EP3776242A1 (en) 2018-03-31 2021-02-17 Micron Technology, Inc. Multi-threaded self-scheduling reconfigurable computing fabric
US11003451B2 (en) 2018-03-31 2021-05-11 Micron Technology, Inc. Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
CN111919205B (zh) 2018-03-31 2024-04-12 美光科技公司 多线程自调度可重新配置计算架构的循环线程顺序执行控制
CN110262993B (zh) * 2019-06-11 2022-02-08 浙江华创视讯科技有限公司 输入信息的读取方法及电路、存储介质、电子装置
US11102030B2 (en) * 2019-06-27 2021-08-24 Rockwell Automation Technologies, Inc. Daisy chaining point-to-point link sensors
US11573834B2 (en) 2019-08-22 2023-02-07 Micron Technology, Inc. Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric
US11150900B2 (en) 2019-08-28 2021-10-19 Micron Technology, Inc. Execution or write mask generation for data selection in a multi-threaded, self-scheduling reconfigurable computing fabric
US11886377B2 (en) 2019-09-10 2024-01-30 Cornami, Inc. Reconfigurable arithmetic engine circuit
CN112419140B (zh) * 2020-12-02 2024-01-23 海光信息技术股份有限公司 数据处理装置、数据处理方法及电子设备
FR3121239A1 (fr) * 2021-03-24 2022-09-30 Thales Système de communication comprenant une pluralité de processeurs et au moins un commutateur, et un procédé de communication associé

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004192621A (ja) 2002-12-12 2004-07-08 Internatl Business Mach Corp <Ibm> クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム
JP2004326784A (ja) 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> 分散型ノード・トポロジにおけるクロス・チップ通信機構
WO2012051577A1 (en) 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123109A (en) * 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
EP0562251A2 (en) 1992-03-24 1993-09-29 Universities Research Association, Inc. Parallel data transfer network controlled by a dynamically reconfigurable serial network
JP3595033B2 (ja) * 1995-07-18 2004-12-02 株式会社日立製作所 高信頼化コンピュータシステム
US5859985A (en) 1996-01-14 1999-01-12 At&T Wireless Services, Inc. Arbitration controller for providing arbitration on a multipoint high speed serial bus using drivers having output enable pins
KR100259276B1 (ko) * 1997-01-27 2000-06-15 윤종용 대역폭확장이 가능한 상호연결망
US6131135A (en) 1998-06-30 2000-10-10 Intel Corporation Arbitration method for a system with two USB host controllers
US6247100B1 (en) 2000-01-07 2001-06-12 International Business Machines Corporation Method and system for transmitting address commands in a multiprocessor system
US6961782B1 (en) * 2000-03-14 2005-11-01 International Business Machines Corporation Methods for routing packets on a linear array of processors
US7058750B1 (en) * 2000-05-10 2006-06-06 Intel Corporation Scalable distributed memory and I/O multiprocessor system
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US6920627B2 (en) * 2002-12-13 2005-07-19 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
JP4492035B2 (ja) * 2003-04-21 2010-06-30 日本電気株式会社 データ処理装置
US7290169B2 (en) * 2004-04-06 2007-10-30 Hewlett-Packard Development Company, L.P. Core-level processor lockstepping
CN101727429B (zh) * 2005-04-21 2012-11-14 提琴存储器公司 一种互连系统
US7649845B2 (en) * 2005-09-30 2010-01-19 Intel Corporation Handling hot spots in interconnection networks
EP2008182B1 (en) * 2006-03-27 2010-05-12 Coherent Logix Incorporated Programming a multi-processor system
US8228930B1 (en) * 2006-06-02 2012-07-24 The Board Of Trustees Of The Leland Stanford Junior University Interconnection network router arrangements and methods therefor
JP5055942B2 (ja) * 2006-10-16 2012-10-24 富士通株式会社 計算機クラスタ
US8285789B2 (en) * 2007-10-05 2012-10-09 Intel Corporation Flattened butterfly processor interconnect network
US7877536B2 (en) * 2007-12-26 2011-01-25 Texas Instruments Incorporated Scalable distributed routing scheme for PCI express switches
US8140796B2 (en) * 2007-12-27 2012-03-20 Igt Serial advanced technology attachment write protection: mass storage data protection device
CN102227710A (zh) * 2008-11-28 2011-10-26 西门子公司 自动控制系统和用于并行执行控制程序的方法
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
US8307116B2 (en) * 2009-06-19 2012-11-06 Board Of Regents Of The University Of Texas System Scalable bus-based on-chip interconnection networks
JP5333200B2 (ja) * 2009-12-25 2013-11-06 富士通株式会社 パケット通信制御装置、メモリアクセス制御装置及び情報処理システム
WO2013128494A1 (en) * 2012-03-02 2013-09-06 Hitachi, Ltd. Storage system and data transfer control method
EP2929434B1 (en) * 2012-12-06 2019-01-16 Coherent Logix Incorporated Processing system with synchronization instruction
WO2014092968A1 (en) * 2012-12-13 2014-06-19 Coherent Logix, Incorporated Multiprocessor system with improved secondary interconnection network
US9992135B2 (en) * 2015-12-11 2018-06-05 Intel Corporation Apparatus and method for fusion of compute and switching functions of exascale system into a single component by using configurable network-on-chip fabric with distributed dual mode input-output ports and programmable network interfaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004192621A (ja) 2002-12-12 2004-07-08 Internatl Business Mach Corp <Ibm> クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム
JP2004326784A (ja) 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> 分散型ノード・トポロジにおけるクロス・チップ通信機構
WO2012051577A1 (en) 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system

Also Published As

Publication number Publication date
EP3109769B1 (en) 2019-10-16
CN104919442B (zh) 2017-10-10
US10747689B2 (en) 2020-08-18
US20170161214A1 (en) 2017-06-08
EP3109769A3 (en) 2018-03-28
CN104919442A (zh) 2015-09-16
JP2018125044A (ja) 2018-08-09
US20140173161A1 (en) 2014-06-19
JP6959310B2 (ja) 2021-11-02
JP2015537324A (ja) 2015-12-24
US20190155761A1 (en) 2019-05-23
US9292464B2 (en) 2016-03-22
US20200341914A1 (en) 2020-10-29
US20160162424A1 (en) 2016-06-09
US9612984B2 (en) 2017-04-04
JP2020004458A (ja) 2020-01-09
EP2932398A1 (en) 2015-10-21
EP3109769A2 (en) 2016-12-28
US11755504B2 (en) 2023-09-12
EP2932398B1 (en) 2016-07-13
WO2014092968A1 (en) 2014-06-19
JP6603363B2 (ja) 2019-11-06
JP6341930B2 (ja) 2018-06-13
US10185672B2 (en) 2019-01-22
EP3614273A2 (en) 2020-02-26
JP2022023108A (ja) 2022-02-07
EP3614273A3 (en) 2020-04-15

Similar Documents

Publication Publication Date Title
JP7289341B2 (ja) 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
US10521285B2 (en) Processing system with interspersed processors with multi-layer interconnection
US10802995B2 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
US10621129B2 (en) Peripheral interconnect for configurable slave endpoint circuits
JPH04218861A (ja) 多重クラスタ信号プロセッサ
JP2008532169A (ja) 共有されたリソースを調停するための電子装置及び方法
US11176297B2 (en) Detection and isolation of faults to prevent propagation of faults in a resilient system
JP2005515548A (ja) 設定可能同期または非同期バスインタフェース
CN111290986B (zh) 一种基于神经网络的总线互联系统
US7917823B2 (en) Decoupled clocking in testing architecture and method of testing
US9942146B2 (en) Router path selection and creation in a single clock cycle
US20240020261A1 (en) Peer-to-peer route through in a reconfigurable computing system
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
US7039750B1 (en) On-chip switch fabric
US11243856B1 (en) Framing protocol supporting low-latency serial interface in an emulation system
CN103744817B (zh) 用于Avalon总线向Crossbar总线的通讯转换桥设备及其通讯转换方法
Kashwan et al. Implementation and performance analyses of a novel optimized NoC router

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230414

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230530

R150 Certificate of patent or registration of utility model

Ref document number: 7289341

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150