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

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

Info

Publication number
JP2018125044A
JP2018125044A JP2018093528A JP2018093528A JP2018125044A JP 2018125044 A JP2018125044 A JP 2018125044A JP 2018093528 A JP2018093528 A JP 2018093528A JP 2018093528 A JP2018093528 A JP 2018093528A JP 2018125044 A JP2018125044 A JP 2018125044A
Authority
JP
Japan
Prior art keywords
bus controller
processors
multiprocessor system
processor
interconnect network
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
JP2018093528A
Other languages
English (en)
Other versions
JP6603363B2 (ja
JP2018125044A5 (ja
Inventor
ドブス,カール・エス
S Dobbs Carl
トロシーノ,マイケル・アール
R Trocino Michael
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.)
Coherent Logix Inc
Original Assignee
Coherent Logix 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 Coherent Logix Inc filed Critical Coherent Logix Inc
Publication of JP2018125044A publication Critical patent/JP2018125044A/ja
Publication of JP2018125044A5 publication Critical patent/JP2018125044A5/ja
Priority to JP2019186694A priority Critical patent/JP6959310B2/ja
Application granted granted Critical
Publication of JP6603363B2 publication Critical patent/JP6603363B2/ja
Priority to JP2021165241A priority 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 複数のデータメモリルータと共に分散型配置された複数のプロセッサと、複数のバスインタフェースユニットと、バス制御回路と、プロセッサインタフェース回路とを含んでよい、マルチプロセッサシステムの実施形態を開示する。データメモリルータを連結して、一次相互接続ネットワークを形成してよい。
【解決手段】 バスインタフェースユニット及びバス制御回路をデイジーチェーン式で連結して、二次相互接続ネットワークを形成してよい。各バスインタフェースユニットは、複数のデータメモリルータそれぞれ及び各プロセッサに対して、データ又は命令の読み書きを実施するよう構成してよい。プロセッサインタフェース回路に結合されたバス制御回路は、一次ネットワークと二次ネットワークとの間の双方向ブリッジとして機能するよう構成してよい。バス制御回路は他のインタフェース回路にも結合して、二次ネットワークへのこれら他のインタフェース回路のアクセスを調停してよい。
【選択図】図3

Description

本発明はマルチプロセッサシステムに関し、更に詳細には、複数のプロセッサ要素と、メモリと、一次相互接続ネットワークとを有するマルチプロセッサシステムにおける、改善された二次相互接続ネットワークに関する。
コンピュータシステム及びデジタル信号処理(DSP)システムは、複数の処理要素(PE)と、補助メモリ(SM)と、データ相互接続ネットワーク(IN)と、入出力(I/O)インタフェースとから構成できる。複数のPEが利用可能であることにより、システムは、より迅速にタスクを完了するための、又はタスクを完了するためのエネルギーを削減するために、並列アルゴリズムをサポートできる。並列アルゴリズムは、システム内での並びにシステム内への及びシステム内からの、PEとSMの間での非常に高速なデータストリーミングを必要とすることが多い。これらのシステムでは、相互接続ネットワークは概して少なくとも1つの高帯域幅(高ビット/秒スループット)一次相互接続ネットワーク(PIN)を含む。PINは、比較的大きなメッセージの高ビット/秒スループットに対して最適化されているが、特に低レイテンシ(ポイントツーポイント配信遅延)に対しては最適化されていない。
また、PINを含む少なくとも1つの従来技術のマルチプロセッサシステムは、追加の低帯域幅二次相互接続ネットワーク(SIN)を有する。「シリアルバス」(SB)として実装された高レイテンシ型のSINは従来、本願の譲受人であるCoherent Logix Inc.製のHyperX hx3100Aと呼ばれるマルチプロセッサICチップに実装されている。図1は、HyperX hx3100Aに実装された、二次相互接続ネットワーク(SIN)とも呼ばれる従来技術のシリアルバス(SB)を示す。図1に示す従来技術のSINは、PE、SM、PIN、チップI/Oインタフェース、送電網、クロッキングネットワークとともにマルチプロセッサICに埋め込まれるように設計されている。図示したように、このシリアルバスアーキテクチャは、チップ内で前後に蛇行する長いループの中で全てのPE及びSMを相互接続している。これにより、SINは最小の面積及び消費電力でメッセージ配信の保証(GMD)をサポートできる。従ってSINは、アプリケーション及びシステムソフトウェアのプログラマにデバッグサポートを提供することを第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本の平行導線である。メッセージの存在はSBCLK上の複数のパルスによって示され(ここで、SBDATA上のデータ1ビットごとに1パルスである)、メッセージの不在はSBCLK上の一定値によって示される。
いくつかの実施形態では、固定長のSBメッセージを受信するために、SBS−IUをバッファと共に構成してよい。初めに(チップリセット時)、SBS−IUはリピータモードに入り、SBS−IUは固定長のSBメッセージを受信し、メッセージヘッダのアドレスをそれ自体の一意のアドレスと比較してよい。これらアドレスが一致しない場合、SBS−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は、DAPコントローラ及びブートコントローラから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によってもアクセス可能ではない。DMR0,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を発明者とする、発明の名称「Processing System With Interspersed Stall Propagating Processors And Communication Elements」の米国特許第7415594号は、その全体を参照することにより、本明細書においてその全体が完全に論述されているかのように、本明細書に援用されるものとする。
Michael B.Doerr、Carl S.Dobbs、Michael B.Solka、Michael R Trocino、David A.Gibsonを発明者とする、2011年10月14日出願の、発明の名称「Disabling Communication 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)と、矩形として表される複数のデータメモリルータ(DMR)とを備える。これもまたり図示されているように、マルチプロセッサシステムは複数のインタフェースユニットを含み、各インタフェースユニットはそれぞれのプロセッサ及びそれぞれのルータに結合される。インタフェースユニットは、それぞれのプロセッサ(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)を搬送してよく、他方のワイヤはクロック信号(SBCLK)を搬送して、受信機入力フリップフロップにおいてデータを取り込んでよい。メッセージの存在は、SBCLK上の方形波で示すことができ、メッセージの不在はSBCLKでの一定値によって示すことができる。
好ましい実施形態では、プロセッサのうちの1つは指定されたプロセッサである。つまり、図3でシリアルバスコントローラと呼ばれるバスコントローラに結合するように事前に構成されている。また、指定されたプロセッサは、関連付けられた「指定されたルータ」及び「指定されたインタフェースユニット」も有する。図示したように、指定されたルータはプロセッサインタフェースユニットに接続される。従って、マルチプロセッサシステムのいずれのプロセッサ(PE)は指定されたルータと通信して、SINにアクセスするための要求を提供できる。このようにして、例えば(指定されたプロセッサ以外の)プロセッサがSINでの通信を希望する場合、プロセッサは指定されたルータに通信要求を提供する。続いて指定されたルータはこの要求をプロセッサインタフェースブロックに転送できる。そしてプロセッサインタフェースブロックはこの要求をバスコントローラに転送できる。
バスコントローラは、少なくとも1つの指定されたインタフェースユニットに結合され、少なくとも1つの指定されたインタフェースユニットにデータを送信し、少なくとも1つの指定されたインタフェースユニットからデータを受信するよう構成される。指定されたインタフェースユニットは、SINへの「エントリポイント」つまり「アクセスポイント」を形成する。このようにして、バスコントローラはプロセッサインタフェースブロックで受信したメッセージを、指定されたインタフェースユニットに、従ってSINに渡すよう構成される。一実施形態では、同一の指定されたインタフェースユニットは、SINとバスコントローラとの間でのデータ送信及びデータ受信の両方のために構成される。別の実施形態では、第1の指定されたインタフェースユニットは、バスコントローラからデータを受信してSIN上にデータを提供するよう構成され、第2の指定されたインタフェースユニットはSINからデータを受信してバスコントローラにデータを提供するよう構成される。
バスコントローラは、アクセス要求の間のどのような競合も調停し、要求側の指定されたインタフェースユニットのうちの1つによるSINへの「一度に一回の(one−at−a−time)」アクセスを許可するよう構成される。多くの異なる論理ブロックがバスコントローラに結合され、SINへのアクセスのための要求をバスコントローラに提供してよい。これらの論理ブロックは、ブートコントローラ、デバッグアクセスポート(DAP)コントローラ、外部ホストインタフェース、プロセッサインタフェースブロックを含んでよい。いくつかの実施形態では、バスコントローラによって使用される調停方式及び優先順位は固定であってよい。一方、他の実施形態では、調停方式及び優先順位はプログラム制御下にあってよい。
上述のように、プロセッサインタフェースブロックはバスコントローラに結合され、少なくとも1つの指定されたインタフェースユニットに関連付けられた指定されたルータとも結合される。プロセッサインタフェースブロックは、マルチプロセッサシステムの複数のプロセッサのうちのいずれが、一次相互接続ネットワークを使用して指定されたルータを通して通信することによって二次相互接続ネットワーク(SIN)にアクセスできるよう構成される。
各インタフェースユニット(SBS−IU)は、その他のポートをバッファリングするためのシリアル入力レジスタ、シリアル出力レジスタ及び追加のレジスタ、並びにポートとシリアルバスとの間でメッセージフォーマットを変換するための1つ又は複数の状態機械から構成されてよい。SBS−IUでSBコマンドを受信すると、コマンドを初期化コマンドに関して試験してよい。初期化コマンドが存在しない場合、SBS−IUをバイパスモードのままとしてよい。しかしながら初期化コマンドが存在する場合、SBS−IUは、コマンドに関連付けられたアドレスをハードワイヤードアドレスに比較してよい。コマンドに関連付けられたアドレスがSBS−IUのハードワイヤードアドレスと一致すると、SBS−IUは、終了コマンドを受信するまで、全ての以降のコマンドをSBS−IU自体に向けられているものとして解釈し、終了コマンドを受信すると、SBS−IUはバイパスモードに戻る。
様々な実施形態では、SBトランシーバはDMRと同じコアマスタクロックで動作して、DMRメモリ又はレジスタへのアクセスを実行する際のタイミングに関する問題を防ぐ。ただし、いくつかの実施形態では、PEはよりゆっくりとしたクロックで動作できるようにしてよく、SBC−IUとPEとの間で移動するデータを潜在的にミスラッチすることがある。このような場合、SBC−IUとのいずれのデータの転送の間、PEをマスタクロックに一時的に切り替えてよい。
SIN上での通信は、並列入力及び出力を有するシフトレジスタを利用することによって固定ビット長のショートメッセージを使用して達成してよい。Mビットの固定長のメッセージは、同じ長さのシフトレジスタに容易に取り込まれる、又は同じ長さのシフトレジスタから容易に送信されるが、より長いレジスタを使用してもよく、また合計でMビット以上になるより短いレジスタの組み合せを使用してもよい。送信機は、出力がSBDATAに結合され、シフトクロックがSBCLKに結合された出力シフトレジスタを有してよい。送信機はその出力シフトレジスタを並列ロードし、続いてシフトクロックをオンにしてメッセージを送出し、Mビット後に停止する。受信機は、そのデータ入力がSBDATAに結合され、その入力クロックがSBCLKに結合された入力シフトレジスタを有してよい。Mビットが到達した後、入力シフトレジスタを並列で読み出してよく、このデータを、コマンドコード、アドレス、ブロックデータサイズ、データについて復号してよい。固定長メッセージ及びシフトレジスタの使用は一例にすぎず、他のメッセージフォーマットを代わりに使用してよい。
特定のインタフェースユニット(SBS−IU)で受信されたメッセージが、上記SBS−IUにアドレス指定されたコマンドを含まない場合、インタフェースユニット(SBS−IU)はメッセージを無視し、チェーン内の次のインタフェースユニット(SBS−IU)にメッセージを中継してよい。コマンドがSBS−IUにアドレス指定される、又はコマンドが放送コマンドである場合、SBS−IUは示されたアクションを行うだけでよい。コマンドが応答メッセージを必要とする場合、SBS−IUはメッセージを生成して、これをデイジーチェーンの次のSBS−IUに送信してよい。このメッセージは、多くのSBS−IUを通過した後、メッセージを待つコントローラへの中継のためにシリアルバスコントローラ(SBC)に戻る。SBS−IUから発せられたメッセージは、SBCからのメッセージと同じ固定長のメッセージフォーマットとなってよく、相違点は、宛先アドレスが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に結合してよい。更に、ルータ401はメモリ402及びSBS405に結合してよい。いくつかの実施形態では、ルータ401は、例えばPE404等の結合されたデバイスのうちの1つに受信されたデータのパケットを選択的に送信するよう構成してよいクロスバースイッチを含んでよい。他の実施形態では、ルータ401は、PINの複数の層の間でデータパケットを送受するよう構成してよい。
メモリ402は、様々な設計スタイルのうちの1つに従って設計してよい。いくつかの実施形態では、メモリ402は複数のスタティックランダムアクセスメモリ(SRAM)セル又は他のいずれの適切な記憶回路を含んでよい。例えばメモリ402は、ラッチ、又はレジスタファイルとして配列されたフリップフロップ回路を含んでよい。
いくつかの実施形態では、SBS405は専用ポートを介してルータ403及びPE404に結合されてよい。更に、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、DMR、並びに存在する場合はチップI/Oポート論理(NR)及び/又はDDR外部メモリコントローラのために、クロック有効化及びクロックリセットを選択的に制御してよい。より高位のビットは、セキュリティを目的としてローカル通信ポートを選択的に無効化するためのものであってよい。いくつかの実施形態では、ビット6及びビット16〜19は、追加された第2のルータ(B層ルータ)へのアクセスを制御するために使用できる。
本明細書に記載のレジスタは、記憶回路の特定の実施形態であってよい。いくつかの実施形態では、レジスタは、それぞれが単一データビットを記憶するよう構成された、1つ又は複数のラッチ、フリップフロップ回路、又は他の適切な記憶装置を含んでよい。レいくつかの実施形態では、ジスタは、クロックエッジ又は他のタイミング信号に応じてデータを記憶してよい。
図4に示す実施形態は単に例にすぎないことに留意されたい。他の実施形態では、異なる機能ブロック及び機能ブロックの異なる構成が可能であり、考察の対象となる。
図5を参照すると、プロセッサが二次相互接続ネットワークにアクセスするために一次相互接続ネットワーク上で通信を初期化する方法の一実施形態を示すフローチャートが示されている。図3、5に示すフローチャートを併せて参照すると、本方法はブロック501で開始する。次に、プロセッサから指定されたルータへの一次相互接続ネットワーク上の通信経路を確立してよい(ブロック502)。いくつかの実施形態では、例えば図3に示すようなDMR0,0等の指定されたルータは、例えば図3に示すような内部PEインタフェース302等のプロセッサインタフェースブロックに結合してよい。いくつかの実施形態では、指定されたルータは、例えば図3に示すようなPE0,0等の指定されたPEに結合されてよい。
PINにおいて通信経路を確立することにより、プロセッサは指定されたルータに1つ又は複数の第2の相互接続ネットワーク(SIN)メッセージを送信してよい(ブロック503)。いくつかの実施形態では、SINメッセージは、PINで利用される通信プロトコルに従ってフォーマットされてよい。例えばSINメッセージを一連のデータワードに分割してよく、各データワードは、フロー制御装置(FLIT)としてPIN上でビット並列で送信される。様々な実施形態では、SINメッセージは、1つ又は複数のSINメッセージを含むデータペイロードに加えて制御情報又は経路選択情報を含んでよい、パケット又は一連のパケットで送信されてよい。
指定されたルータ(例えば図3のDMR0,0)に到達するFLIT及びパケットは、流量制御を受けてプロセッサインタフェースブロック(図3の302)に転送され、レジスタでバッファリングできる。続いて制御情報及び経路選択情報を、1つ又は複数のSINメッセージを含むデータペイロードから分離してよい(ブロック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に到達すると、方法はブロック507で終了してよい。いくつかの実施形態では、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インタフェース(IPEI)を通して、別のチップ上の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つ以上のプロセッサそれぞれから受信したメッセージの比較を実行し、前記比較に基づいて複数のアクションの特定の1つを実行するよう構成される、マルチプロセッサシステム。
  2. 前記複数のアクションの特定の1つを実行し、前記バスコントローラは、前記2つ以上のプロセッサそれぞれから受信したメッセージが一致するとの判断に応答して前記メッセージの1つを二次相互接続ネットワークに送信するよう更に構成される、請求項1に記載のマルチプロセッサシステム。
  3. エラーハンドラユニットを更に備え、前記複数のアクションの前記特定の1つを実行し、前記バスコントローラは、前記2つ以上のプロセッサそれぞれが受信したメッセージが一致しないとの判断に応答して前記エラーハンドラユニットにコマンドを送信するよう更に構成される、請求項2に記載のマルチプロセッサシステム。
  4. 前記エラーハンドラユニットは、前記バスコントローラからの前記コマンドの受信に応答してタンパーイベントを報告するよう構成される、請求項3に記載のマルチプロセッサシステム。
  5. 複数の入出力回路を更に備え、前記エラーハンドラユニットは、前記バスコントローラからの前記コマンドの受信に応答して前記入出力回路を無効にするよう構成される、請求項3に記載のマルチプロセッサシステム。
  6. 複数のフューズを更に備え、前記エラーハンドラユニットは、前記バスコントローラからの前記コマンドの受信に応答して前記複数のフューズの少なくとも1つを飛ばすよう構成される、請求項3に記載のマルチプロセッサシステム。
  7. マルチプロセッサシステム内で通信を行うための方法であって、
    前記マルチプロセッサシステムは、分散型配置で連結された複数のプロセッサ及び複数のデータメモリルータを備え、
    前記方法は:
    第1の前記プロセッサから指定された前記プロセッサに関連付けられた指定された前記ルータへの通信経路を、一次相互接続ネットワーク上で確立するステップ;前記指定されたルータはプロセッサインターフェースブロックに接続され、
    前記第1のプロセッサによって、前記一次相互接続ネットワークを通して前記指定されたルータに二次相互接続ネットワークからのメッセージを送信するステップ;
    前記指定されたルータによって、前記二次相互接続ネットワークからの前記メッセージをプロセッサインタフェースブロックに提供するステップ;
    前記プロセッサインタフェースブロックによって、前記二次相互接続ネットワークからの前記メッセージをバスコントローラに提供するステップ;
    前記バスコントローラによって、前記複数のプロセッサの2つ以上のプロセッサからのメッセージを受信するステップ;
    前記バスコントローラによって、前記複数のプロセッサの前記2つ以上のプロセッサから前記のメッセージをの比較を実行するステップ;
    前記比較の結果に基づく複数のアクションの特定の1つを実行するステップ、
    を含む方法。
  8. 前記2つ以上のプロセッサそれぞれから受信したメッセージが一致するとの判断に応答して前記メッセージの1つを二次相互接続ネットワークに送信するステップを含む前記複数のアクションの特定の1つを実行する、請求項7に記載の方法。
  9. 前記2つ以上のプロセッサそれぞれから受信したメッセージが一致するとの判断に応答して前記マルチプロセッサシステムに含まれるエラーハンドラユニットへのコマンドの送信を含む前記複数のアクションの前記特定の1つを実行する、請求項8に記載の方法。
  10. 前記エラーハンドラユニットによって、前記バスコントローラからの前記コマンドの受信に応答してタンパーイベントを報告するステップを更に含む、請求項9に記載の方法。
  11. 前記エラーハンドラユニットによる、前記バスコントローラからの前記コマンドを受信する前記エラーハンドラユニットに応答して前記マルチプロセッサシステムに含まれる入出力(I/O)回路の少なくとも1つを無効にするステップを更に含む、請求項9に記載の方法。
  12. 複数のプロセッサ;
    複数のデータメモリルータ
    を備える、マルチプロセッサシステムであって、
    各前記プロセッサは複数のプロセッサポートを備え、
    前記複数のデータメモリルータは一次相互接続ネットワークを形成し、各データメモリルータは複数の通信ポートを含み、第1のメモリと、ルーティングエンジンを備え、
    前記複数のプロセッサと前記複数のデータメモリルータは、分散型配置で連結され、
    複数のインタフェースユニットは、連結されて二次相互接続ネットワークを形成し、各インタフェースユニットは、それぞれの前記プロセッサ及びそれぞれの前記データメモリルータに結合され、
    前記マルチプロセッサシステムは、少なくとも第1及び第2の前記インタフェースユニットに結合したバスコントローラを備え、
    前記バスコントローラは、前記第1のインタフェースユニットにデータを送信し、かつ前記第2のインタフェースユニットからデータを受信するよう構成され、
    前記バスコントローラは、少なくとも前記第1及び第2のインタフェースユニットにアクセスするための要求を調停するよう構成され、
    前記バスコントローラは、前記複数のプロセッサの前記2つ以上のプロセッサから受信したメッセージをの比較を実行するよう構成され、および、
    前記バスコントローラは、前記比較の結果に基づく複数のアクションの特定の1つを実行するよう構成される、マルチプロセッサシステム。
  13. 前記複数のアクションの特定の1つを実行し、前記バスコントローラは、前記2つ以上のプロセッサそれぞれから受信したメッセージが一致するとの判断に応答して前記メッセージの1つを前記二次相互接続ネットワークに送信するよう更に構成される、請求項12に記載のマルチプロセッサシステム。
  14. エラーハンドラユニットを更に備え、前記複数のアクションの前記特定の1つを実行し、前記バスコントローラは、前記2つ以上のプロセッサそれぞれが受信したメッセージが一致しないとの判断に応答して前記エラーハンドラユニットにコマンドを送信するよう更に構成される、請求項13に記載のマルチプロセッサシステム。
  15. 複数の入出力回路を更に備え、前記エラーハンドラユニットは、前記バスコントローラからの前記コマンドの受信に応答して前記入出力回路を無効にするよう構成される、請求項14に記載のマルチプロセッサシステム。
JP2018093528A 2012-12-13 2018-05-15 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム Active JP6603363B2 (ja)

Priority Applications (2)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261736851P 2012-12-13 2012-12-13
US61/736,851 2012-12-13

Related Parent Applications (1)

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

Related Child Applications (1)

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

Publications (3)

Publication Number Publication Date
JP2018125044A true JP2018125044A (ja) 2018-08-09
JP2018125044A5 JP2018125044A5 (ja) 2019-05-16
JP6603363B2 JP6603363B2 (ja) 2019-11-06

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 (1)

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

Family Applications After (2)

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

Country Status (5)

Country Link
US (5) US9292464B2 (ja)
EP (3) EP2932398B1 (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
CN104919442B (zh) * 2012-12-13 2017-10-10 相干逻辑公司 具有改进的辅互连网络的多处理器系统
CN104780122B (zh) * 2015-03-23 2018-09-11 中国人民解放军信息工程大学 基于缓存再分配的层次化片上网络路由器的控制方法
JP5943115B1 (ja) * 2015-03-27 2016-06-29 日本電気株式会社 集積回路、半導体装置、カード及びデータ転送方法
WO2018193354A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Wavelet representation 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
WO2019090032A1 (en) * 2017-11-03 2019-05-09 Coherent Logix, Inc. Memory network processor
KR102465213B1 (ko) 2018-03-31 2022-11-10 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 조건부 브랜칭 제어
EP3776243A1 (en) 2018-03-31 2021-02-17 Micron Technology, Inc. Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric
CN111919204A (zh) 2018-03-31 2020-11-10 美光科技公司 用于多线程自调度可重新配置计算架构的高效循环执行
CN111919203A (zh) 2018-03-31 2020-11-10 美光科技公司 使用重入队列的多线程自调度可重新配置计算架构的循环执行控制
CN111919205B (zh) 2018-03-31 2024-04-12 美光科技公司 多线程自调度可重新配置计算架构的循环线程顺序执行控制
WO2019191740A1 (en) 2018-03-31 2019-10-03 Micron Technology, Inc. Multiple types of thread identifiers for a 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
US11048656B2 (en) 2018-03-31 2021-06-29 Micron Technology, Inc. Multi-threaded, self-scheduling reconfigurable computing fabric
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934809A (ja) * 1995-07-18 1997-02-07 Hitachi Ltd 高信頼化コンピュータシステム
JP2004192621A (ja) * 2002-12-12 2004-07-08 Internatl Business Mach Corp <Ibm> クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム
JP2005302020A (ja) * 2004-04-06 2005-10-27 Hewlett-Packard Development Co Lp コアレベルプロセッサのロックステップ
JP2011135433A (ja) * 2009-12-25 2011-07-07 Fujitsu Ltd パケット通信制御装置、メモリアクセス制御装置及び情報処理システム
WO2012051577A1 (en) * 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
JP2012514257A (ja) * 2008-12-31 2012-06-21 インテル・コーポレーション 冗長プロセスを同期させるためのステート履歴ストレージ

Family Cites Families (28)

* 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
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 日本電気株式会社 データ処理装置
US7574581B2 (en) * 2003-04-28 2009-08-11 International Business Machines Corporation Cross-chip communication mechanism in distributed node topology to access free-running scan registers in clock-controlled components
US10417159B2 (en) * 2005-04-21 2019-09-17 Violin Systems Llc Interconnection system
US7649845B2 (en) * 2005-09-30 2010-01-19 Intel Corporation Handling hot spots in interconnection networks
WO2007112406A2 (en) * 2006-03-27 2007-10-04 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
EP2359237A4 (en) * 2008-11-28 2012-04-25 Siemens Ag AUTOMATIC CONTROL SYSTEM AND METHOD FOR PARALLELLY EXECUTING A CONTROL PROGRAM
US8307116B2 (en) * 2009-06-19 2012-11-06 Board Of Regents Of The University Of Texas System Scalable bus-based on-chip interconnection networks
WO2013128494A1 (en) * 2012-03-02 2013-09-06 Hitachi, Ltd. Storage system and data transfer control method
JP6317365B2 (ja) * 2012-12-06 2018-04-25 コーヒレント・ロジックス・インコーポレーテッド 同期命令を含む処理システム
CN104919442B (zh) * 2012-12-13 2017-10-10 相干逻辑公司 具有改进的辅互连网络的多处理器系统
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934809A (ja) * 1995-07-18 1997-02-07 Hitachi Ltd 高信頼化コンピュータシステム
JP2004192621A (ja) * 2002-12-12 2004-07-08 Internatl Business Mach Corp <Ibm> クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム
US20080091918A1 (en) * 2002-12-12 2008-04-17 Arimilli Ravi K Method and data processing system for microprocessor communication in a cluster-based multi-processor system
JP2005302020A (ja) * 2004-04-06 2005-10-27 Hewlett-Packard Development Co Lp コアレベルプロセッサのロックステップ
JP2012514257A (ja) * 2008-12-31 2012-06-21 インテル・コーポレーション 冗長プロセスを同期させるためのステート履歴ストレージ
JP2011135433A (ja) * 2009-12-25 2011-07-07 Fujitsu Ltd パケット通信制御装置、メモリアクセス制御装置及び情報処理システム
WO2012051577A1 (en) * 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6603363B2 (ja) 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム
US10838787B2 (en) Processing system with interspersed processors with multi-layer interconnect
US10802995B2 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
US9942146B2 (en) Router path selection and creation in a single clock cycle
US8218448B1 (en) Control networks providing reliable communications between different entities
CN103744819B (zh) Crossbar总线向Avalon总线的通讯转换设备及其转换方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20190404

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191010

R150 Certificate of patent or registration of utility model

Ref document number: 6603363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250