JP2014038494A - 演算処理装置および演算処理装置の制御方法 - Google Patents

演算処理装置および演算処理装置の制御方法 Download PDF

Info

Publication number
JP2014038494A
JP2014038494A JP2012180607A JP2012180607A JP2014038494A JP 2014038494 A JP2014038494 A JP 2014038494A JP 2012180607 A JP2012180607 A JP 2012180607A JP 2012180607 A JP2012180607 A JP 2012180607A JP 2014038494 A JP2014038494 A JP 2014038494A
Authority
JP
Japan
Prior art keywords
node
axis direction
nodes
adjacent
data
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
JP2012180607A
Other languages
English (en)
Other versions
JP5920105B2 (ja
Inventor
Yoshiro Ikeda
吉朗 池田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012180607A priority Critical patent/JP5920105B2/ja
Priority to US13/920,811 priority patent/US9009372B2/en
Publication of JP2014038494A publication Critical patent/JP2014038494A/ja
Application granted granted Critical
Publication of JP5920105B2 publication Critical patent/JP5920105B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

【課題】コア数の増加に応じた性能の向上を図ること。
【解決手段】本願の開示する演算処理装置は、一つの態様において、コア部と、キャッシュメモリとを有する複数のノードをX軸方向およびY軸方向にタイル状に配置する演算処理装置であり、第1の接続部と、第2の接続部とを有する。第1の接続部は、複数のノードをX軸方向にそれぞれリング状に接続する。第2の接続部は、複数のノードをY軸方向にそれぞれリング状に接続する。そして、複数のノードに含まれるキャッシュメモリは、Y軸方向にバンク分割され、X軸方向において該キャッシュメモリの一貫性をスヌープ方式で制御されて、複数のノード間で共有される。
【選択図】図1

Description

本発明は、演算処理装置および演算処理装置の制御方法に関する。
近年、CPU(Central Processing Unit)は、クロックの高周波化に伴う消費電力の増大を抑えつつ高性能化するため、チップ上に集積される演算処理部としてのプロセッサコア(以下、「コア」という)の数が増えてきている。また、同一チップ上のコア間を接続する技術として、例えば、リングネットワークや、メッシュネットワークが知られている。
特開2005−174289号公報 特表2004−538548号公報 特開2005−339348号公報
しかしながら、上述した従来の技術では、コア数の増加に応じた性能の向上を図ることができない。
例えば、コア数が増えた場合、バイセクションバンド幅(Bisection Bandwidth)の増大が望まれる。しかしながら、単一のリングでコアを接続すると、コア間の通信距離が長くなり、コア数を増加させてもバイセクションバンド幅は増大しない。
また、記憶領域がバンク分割されたメッシュネットワークでは、コアは、自装置が管理する記憶領域以外にアクセスを行う場合、外部のコアが有するキャッシュメモリへアクセスすることになる。このため、コアが頻繁に外部のコアが有するキャッシュメモリへアクセスを行う場合、レイテンシが大きくなる。さらに、多くのコアが、自装置が管理する記憶領域以外に対してアクセスすると、コア間通信網の負荷が高くなる。なお、このようなレイテンシが大きくなることや、コア間通信網の負荷が高くなることは、メッシュネットワークに限って生じるものではなく、記憶領域がバンク分割された構造である場合に共通して生じるものである。
1つの側面では、本発明は、コア数の増加に応じた性能の向上を図ることができる演算処理装置および演算処理装置の制御方法を提供することを目的とする。
本願の開示する演算処理装置は、一つの態様において、コア部と、キャッシュメモリとを有する複数のノードをX軸方向およびY軸方向にタイル状に配置する演算処理装置であり、第1の接続部と、第2の接続部とを有する。第1の接続部は、複数のノードをX軸方向にそれぞれリング状に接続する。第2の接続部は、複数のノードをY軸方向にそれぞれリング状に接続する。そして、複数のノードに含まれるキャッシュメモリは、Y軸方向にバンク分割され、X軸方向において該キャッシュメモリの一貫性をスヌープ方式で制御されて、複数のノード間で共有される。
1実施形態における演算処理装置によれば、コア数の増加に応じた性能の向上を図ることができる。
図1は、実施例1に係る演算処理装置の構成の一例を示すブロック図である。 図2は、ノードの構成の一例を示すブロック図である。 図3は、トーラスルータの構成の一例を示す図である。 図4は、同一X座標上に位置する別のノードがデータを保持する場合の処理動作の一例を示す図である。 図5は、X座標およびY座標が異なる座標に位置する別のノードがデータを保持する場合の処理動作の一例を示す図である。 図6は、データの取得を要求するノードによる処理の処理手順を示すフローチャートである。 図7は、データの取得を要求するパケットを受信したノードによる処理の処理手順を示すフローチャートである。 図8は、座標(3,4)に位置するノードに異常が生じた場合の処理動作を示す図である。 図9は、物理層でバイパスさせる一例を示す図である。 図10は、ノードあたり1コアである場合のノードの構成の一例を示すブロック図である。
以下に、本願の開示する演算処理装置および演算処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[実施例1に係る演算処理装置100の構成]
図1は、実施例1に係る演算処理装置100の構成の一例を示すブロック図である。図1に示すように、演算処理装置100は、メモリ制御装置110(図1中、M)と、I/O(Input/Output)制御装置120(図1中、IO)と、X軸方向およびY軸方向の二次元にタイル状に配置された複数のノード130(図1中、N)とを有する。
メモリ制御装置110は、ノード130と、図示しないメインメモリとの間のデータの入出力を制御する。I/O制御装置120は、PCI ExpressやインターコネクトなどのI/O接続インターフェースであり、ノード130と、図示しない入出力装置との間のデータの入出力を制御する。
ノード130は、図示しない、演算処理部としてのコアと分散共有型のキャッシュメモリとトーラスルータとを有する。そして、ノード130は、自装置の分散共有型のキャッシュメモリが保持するデータや、他のノードの分散共有型のキャッシュメモリが保持するデータを用いて、演算処理を実行する。なお、以下の説明では、分散共有型のキャッシュメモリのことを、「キャッシュメモリ」と記載する。
また、各ノード130を区別して説明する場合、各ノード130が配置された位置をX−Y座標系平面上の座標で表すものとする。例えば、図1中の1aで示すノード130は、座標(0,0)に位置し、図1中の1bで示すノード130は、座標(0,7)に位置する。また、図1中の1cで示すノード130は、座標(7,0)に位置し、図1中の1dで示すノード130は、座標(7,7)に位置する。なお、ノード130の構成については、図2を用いて後述する。
このような演算処理装置100において、第1の接続部101は、ノード130をX軸方向にそれぞれリング状に接続する。例えば、第1の接続部101は、ノード130がX軸方向において両端以外に位置する場合、ノード130と、このノード130と、少なくとも一つのノードを挟んで隣接する位置に配置されるノードとを接続する。一例をあげると、第1の接続部101は、座標(3,0)に位置するノード130と、座標(1,0)に位置するノード130とを接続するとともに、座標(3,0)に位置するノード130と、座標(5,0)に位置するノード130とを接続する。
また、第1の接続部101は、ノード130がX軸方向において両端に位置する場合、ノード130とこのノードに隣接する位置に配置されるノードとを接続する。また、第1の接続部101は、ノード130がX軸方向において両端に位置する場合、ノード130と、このノードに隣接する位置に配置されるノードに隣接するノードとを接続する。一例をあげると、第1の接続部101は、座標(0,0)に位置するノード130と、座標(1,0)に位置するノード130とを接続するとともに、座標(0,0)に位置するノード130と、座標(2,0)に位置するノード130とを接続する。
また、第1の接続部101は、ノード130がX軸方向において両端に位置するノードと隣接する場合、ノード130と、両端に位置するノードのうち隣接するノードとを接続する。また、第1の接続部101は、ノード130がX軸方向において両端に位置するノードと隣接する場合、ノード130と、このノードに隣接する位置に配置されるノードに隣接するノードとを接続する。一例をあげると、第1の接続部101は、座標(1,0)に位置するノード130と、座標(0,0)に位置するノード130とを接続するとともに、座標(1,0)に位置するノード130と、座標(3,0)に位置するノード130とを接続する。このようにして、第1の接続部101は、X座標が同一であるように並んで配置された複数のノード130をリング状に接続する。
このように、第1の接続部101は、図1に示す例では、それぞれ独立に機能する8つのリングネットワークを生成する。また、X軸方向において8つのノード130を第1の接続部101により接続した場合、ノード間の最短ホップ数は、互いに接続するノード間で「1」となる。また、ノード間の最長ホップ数は、例えば、隣接する位置に配置されるノード間や両端に位置するノード間などで「4」となる。すなわち、第1の接続部101により生成されるリングネットワークは、隣接するノード間を接続して生成されるリングネットワークと比較して、最長ホップ数を少なくすることができる。なお、第1の接続部101は、例えば「スヌープバス」と呼ばれるバスである。
第2の接続部102は、ノード130をY軸方向にそれぞれリング状に接続する。例えば、第2の接続部102は、ノード130がY軸方向において両端以外に位置する場合、ノード130と、少なくとも一つのノードを挟んで隣接する位置に配置されるノードとを接続する。一例をあげると、第2の接続部102は、座標(0,3)に位置するノード130と、座標(0,1)に位置するノード130とを接続するとともに、座標(0,3)に位置するノード130と、座標(0,5)に位置するノード130とを接続する。
また、第2の接続部102は、ノード130がY軸方向において両端に位置する場合、ノード130とこのノードに隣接する位置に配置されるノードとを接続する。また、第2の接続部102は、ノード130がY軸方向において両端に位置する場合、ノード130と、このノードに隣接する位置に配置されるノードに隣接するノードとを接続する。一例をあげると、第2の接続部102は、座標(0,0)に位置するノード130と、座標(0,1)に位置するノード130とを接続するとともに、座標(0,0)に位置するノード130と、座標(0,2)に位置するノード130とを接続する。
また、第2の接続部102は、ノード130がY軸方向において両端に位置するノードと隣接する場合、ノード130と、両端に位置するノードのうち隣接するノードとを接続する。また、第2の接続部102は、ノード130がY軸方向において両端に位置するノードと隣接する場合、ノード130と、このノードに隣接する位置に配置されるノードに隣接するノードとを接続する。一例をあげると、第2の接続部102は、座標(0,1)に位置するノード130と、座標(0,0)に位置するノード130とを接続するとともに、座標(0,1)に位置するノード130と、座標(0,3)に位置するノード130とを接続する。このようにして、第2の接続部102は、Y座標が同一であるように並んで配置された複数のノード130をリング状に接続する。
このように、第2の接続部102は、図1に示す例では、それぞれ独立に機能する8つのリングネットワークを生成する。また、Y軸方向において8つのノードを第2の接続部102により接続した場合、ノード間の最短ホップ数は、互いに接続するノード間で「1」となる。また、ノード間の最長ホップ数は、例えば、隣接する位置に配置されるノード間や両端に位置するノード間などで「4」となる。すなわち、第2の接続部102により生成されるリングネットワークは、隣接するノード間を接続して生成されるリングネットワークと比較して、最長ホップ数を少なくすることができる。なお、第2の接続部102は、例えば「キャッシュデータバス」と呼ばれるバスである。
また、演算処理装置100は、X軸方向とY軸方向とがともにリングネットワークで接続されており、リングネットワーク間をトーラスルータでルーティングする。このようにして、演算処理装置100では、ノード130は、複数のリングネットワーク間でパケットのルーティングをおこなうことにより、トーラスネットワークを形成する。
また、同じX座標に位置するノード130が有するキャッシュメモリは、例えば、図1に示すように、バンク#0からバンク#7の8つのバンクに分割され、全体として一つのキャッシュとして機能する。
一例をあげると、X座標が0に位置するノード130において、バンク#0には、座標(0,7)に位置するノード130が有するキャッシュメモリが含まれ、バンク#1には、座標(0,6)に位置するノード130が有するキャッシュメモリが含まれる。また、バンク#2には、座標(0,5)に位置するノード130が有するキャッシュメモリが含まれ、バンク#3には、座標(0,4)に位置するノード130が有するキャッシュメモリが含まれる。
同様に、バンク#4には、座標(0,3)に位置するノード130が有するキャッシュメモリが含まれ、バンク#5には、座標(0,2)に位置するノード130が有するキャッシュメモリが含まれる。また、バンク#6には、座標(0,1)に位置するノード130が有するキャッシュメモリが含まれ、バンク#7には、座標(0,0)に位置するノード130が有するキャッシュメモリが含まれる。なお、メインメモリとキャッシュメモリとの間でバンクの分け方を共通化しており、例えば座標(0,7)のノード130は、バンク#0のメインメモリが保持するデータのみをキャッシュする。
また、同じY座標に位置するノード130が有するキャッシュメモリはバンク分割された担当領域を管理する共有キャッシュとして機能し、スヌーププロトコルにより一貫性(キャッシュコヒーレンシ)が維持される。例えば、座標(0,0)、座標(1,0)、座標(2,0)、座標(3,0)、座標(4,0)、座標(5,0)、座標(6,0)および座標(7,0)に位置するノード130が有するキャッシュメモリがバンク#7の共有キャッシュとして機能する。
[ノード130の機能構成]
次に、図2を用いて、ノード130の構成の一例を説明する。図2は、ノード130の構成の一例を示すブロック図である。図2に示すように、ノード130は、4つのコア201と、キャッシュメモリ202とトーラスルータ300とを有する。
また、コア201は、非共有のキャッシュ階層をもっていてもよい。なお、ノード130が有するコアの数は、図2に示す4つに限定されるものではなく、1以上のコアを有していればよい。また、コア間では、パケットにより情報が送受信されるものとして説明する。
キャッシュメモリ202は、例えば分散共有型のキャッシュメモリであり、複数のノード130間で共有される。Y座標が同一であるように並んで配置された複数のノード130の各キャッシュメモリ202は、少なくとも一つのノード130、もしくは、少なくとも同一Y座標の複数のノード130のグループを分割単位として、Y軸方向にバンク分割された一つのキャッシュメモリとして管理される。また、X座標が同一であるように並んで配置された複数のノード130の各キャッシュメモリ202は、X軸方向においてキャッシュメモリの一貫性をスヌープ方式で制御される。
トーラスルータ300は、複数のノード130の配置座標系の次元に応じてトーラスネットワークにおけるリングネットワーク間でのパケットのルーティングを行う。例えば、トーラスルータ300は、キャッシュ共有に伴うデータ転送をX軸方向に限定する。このため、トーラスルータ300は、X軸方向のリングネットワークを使用して共有キャッシュ間のデータ転送を行う。ここで、キャッシュ共有に伴うデータ転送には、スヌーププロトコルの制御情報などが含まれる。
また、例えば、トーラスルータ300は、演算処理装置100において、バンク間のデータ転送をY軸方向に限定する。このため、トーラスルータ300は、Y軸方向のリングネットワークを使用してバンク間のデータ転送を行う。なお、トーラスルータ300の詳細な構成については、図3を用いて後述する。
[トーラスルータ300の機能構成]
次に、図3を用いて、トーラスルータ300の構成について説明する。図3は、トーラスルータ300の構成の一例を示す図である。図3に示すように、トーラスルータ300は、ポート301(図3中、P)と、ポート302と、ポート303と、ポート304と、クロスバ305と、インターフェース306(図3中、T)と、コントローラ307とを有する。
ポート301およびポート302は、Y軸方向において接続するノード130からパケットを受信する。また、ポート301およびポート302は、Y軸方向において接続するノード130へパケットを送信する。すなわち、ポート301およびポート302は、バンク間のデータ転送を行う。
ポート303およびポート304は、X軸方向において接続するノード130からパケットを受信する。ポート303およびポート304は、X軸方向において接続するノード130へパケットを送信する。すなわち、ポート303およびポート304は、キャッシュ共有に伴うデータ転送を行う。
クロスバ305は、各ポート301〜ポート304間で送受信されるデータの伝送路である。例えば、クロスバ305は、ポート301から入力されたパケットをポート302に出力する。また、例えば、クロスバ305は、ポート303から入力されたパケットをポート304に出力する。また、例えば、クロスバ305は、ポート301から入力されたパケットをポート304に出力する。
インターフェース306は、コア201の指示によりデータの取得を要求するパケットの生成や、キャッシュメモリ202から読出したデータを付加したパケットの生成を実行する。また、インターフェース306は、他のノード130から受信したパケットからデータを抽出してコア201に出力する。
コントローラ307は、外部に存在する図示しない制御用のプロセッサと接続し、ルーティングに関する各種の条件の設定を受付ける。また、コントローラ307は、例えば、自身に異常が生じた場合、制御用のプロセッサに自身に異常が生じた旨を通知する。
[処理動作]
次に、図4および図5を用いて、演算処理装置100による処理動作を説明する。ここでは、図4を用いて、同一X座標上に位置する別のノードがデータを保持する場合の処理動作を説明し、図5を用いて、X座標およびY座標が異なる座標に位置する別のノードがデータを保持する場合の処理動作を説明する。
図4は、同一X座標上に位置する別のノードがデータを保持する場合の処理動作の一例を示す図である。なお、図4は、座標(0,7)に位置するノードが要求するデータを、座標(0,4)に位置するノードが保持する場合を示す。
図4に示すように、座標(0,7)に位置するノード130は、要求するデータのアドレスからデータを保持するバンクを検索する。ここで、座標(0,7)に位置するノード130は、バンク#3のノード130を宛て先とするデータの取得要求を送信する(ステップS1)。
そして、座標(0,6)に位置するノード130は、データの取得要求を受信する。ここで、座標(0,6)に位置するノード130は、宛て先が自装置ではないので、自装置と接続するノード130にデータの取得要求を転送する(ステップS2)。
続いて、座標(0,4)に位置するノード130は、データの取得要求を受信する。ここで、座標(0,4)に位置するノード130は、宛て先が自装置であるので、要求されたデータを自装置が保持するか否かを検索する。そして、座標(0,4)に位置するノード130は、要求されたデータ付きでデータの取得要求に対する応答をデータの要求元に返信する(ステップS3)。
また、座標(0,6)に位置するノード130は、座標(0,4)に位置するノード130から応答を受信する。ここで、座標(0,6)に位置するノード130は、宛て先が自装置ではないので、自装置と接続するノード130に応答を転送する(ステップS4)。そして、座標(0,7)に位置するノード130は、応答を受信し、データを取得する。
図5は、X座標およびY座標が異なる座標に位置する別のノードがデータを保持する場合の処理動作の一例を示す図である。なお、図5は、座標(0,7)に位置するノードが要求するデータを、座標(5,4)に位置するノードが保持する場合を示す。
図5に示すように、座標(0,7)に位置するノード130は、要求するデータのアドレスからデータを保持するバンクを検索する。ここで、座標(0,7)に位置するノード130は、バンク#3のノード130を宛て先とするデータの取得要求を送信する(ステップS11)。
そして、座標(0,6)に位置するノード130は、データの取得要求を受信する。ここで、座標(0,6)に位置するノード130は、宛て先が自装置ではないので、自装置と接続するノード130にデータの取得要求を転送する(ステップS12)。
続いて、座標(0,4)に位置するノード130は、データの取得要求を受信する。ここで、座標(0,4)に位置するノード130は、宛て先が自装置であるので、要求されたデータを自装置が保持するか否かを検索する。
ここで、座標(0,4)に位置するノード130は、要求されたデータを自装置が保持しないと判定し、同一Y座標上の他のノードに要求されたデータを保持するか否かを問い合わせる(ステップS13〜S19)。例えば、座標(0,4)に位置するノード130は、座標(1,4)に位置するノード130および座標(2,4)に位置するノード130に要求されたデータを保持するか否かを問い合わせる(ステップS13、S14)。
同様に、座標(0,4)に位置するノード130は、座標(3,4)から座標(7,4)に位置するノード130に要求されたデータを保持するか否かを問い合わせる(ステップS15〜S19)。
また、座標(1,4)から座標(7,4)に位置するノード130は、要求されたデータを保持する旨あるいは、要求されたデータを保持しない旨を、座標(0,4)に位置するノード130に応答する(ステップS20〜S26)。
例えば、座標(1,4)に位置するノード130は、要求されたデータを保持しない旨を座標(0,4)に位置するノード130に応答する(ステップS20)。また、座標(2,4)に位置するノード130は、要求されたデータを保持しない旨を座標(0,4)に位置するノード130に応答する(ステップS21)。
同様に、座標(3,4)、座標(4,4)、座標(6,4)および座標(7,4)に位置するノード130は、要求されたデータを保持しない旨を座標(0,4)に位置するノード130に応答する(ステップS22〜S25)。
また、座標(5,4)に位置し、要求されたデータを保持するノード130は、要求されたデータを保持する旨と要求されたデータとを座標(0,4)に位置するノード130に応答する(ステップS26)。そして、座標(0,4)に位置するノード130は、要求されたデータ付きでデータの取得要求に対する応答をデータの要求元であるノード130に返信する(ステップS27)。
また、座標(0,6)に位置するノード130は、座標(0,4)に位置するノード130から応答を受信する。ここで、座標(0,6)に位置するノード130は、宛て先が自装置ではないので、自装置と接続するノード130に応答を転送する(ステップS28)。そして、座標(0,7)に位置するノード130は、応答を受信し、データを取得する。
[ノード130による処理の処理手順]
次に図6および図7を用いて、ノード130による処理の処理手順を説明する。ここでは、図6を用いてデータの取得を要求するノード130による処理の処理手順を説明し、図7を用いてデータの取得を要求するパケットを受信したノード130による処理の処理手順を説明する。
(データの要求元であるノード130による処理)
図6は、データの取得を要求するノード130による処理の処理手順を示すフローチャートである。図6に示すように、データの取得を要求するノード130は、要求するデータを保持するノードのアドレスを検索する(ステップS101)。そして、ノード130は、検索したアドレスを宛て先とするデータの取得を要求するパケットを送信する(ステップS102)。
続いて、ノード130は、要求したデータを受信したか否かを判定する(ステップS103)。ここで、ノード130は、要求したデータを受信したと判定する場合(ステップS103、Yes)、処理を終了する。一方、ノード130は、要求したデータを受信していないと判定する場合(ステップS103、No)、所定の時間が経過後、ステップS103の処理を実行する。
(データの取得を要求するパケットを受信したノード130による処理)
図7は、データの取得を要求するパケットを受信したノード130による処理の処理手順を示すフローチャートである。図7に示すように、ノード130は、データの取得を要求するパケットを受信したか否かを判定する(ステップS201)。ここで、ノード130は、データの取得を要求するパケットを受信したと判定する場合(ステップS201、Yes)、Y軸方向からパケットを受信したか否かを判定する(ステップS202)。
ノード130は、Y軸方向からパケットを受信したと判定する場合(ステップS202、Yes)、宛て先とするアドレスが自装置のアドレスと一致するか否かを判定する(ステップS203)。ここで、ノード130は、宛て先とするアドレスが自装置のアドレスと一致しないと判定する場合(ステップS203、No)、受信したパケットを自装置と接続するノード130に転送する(ステップS204)。
一方、ノード130は、宛て先とするアドレスが自装置のアドレスと一致すると判定する場合(ステップS203、Yes)、要求されたデータを自装置のキャッシュメモリに保持しているか否かを判定する(ステップS205)。
ノード130は、要求されたデータを自装置のキャッシュメモリに保持していないと判定する場合(ステップS205、No)、同一のX軸方向に位置するノード130にブロードキャストして、要求されたデータを保持するか否かを問い合わせる(ステップS206)。そして、ノード130は、要求されたデータを保持するノード130からデータを受信する(ステップS207)。
続いて、ノード130は、データの要求元ノードにデータを応答する(ステップS208)。また、ノード130は、ステップS205において、要求されたデータを自装置のキャッシュメモリに保持していると判定する場合(ステップS205、Yes)、データの要求元ノードにデータを応答する(ステップS208)。
ノード130は、Y軸方向からパケットを受信していないと判定する場合(ステップS202、No)、言い換えると、X軸方向からブロードキャストで送信されたパケットを受信したと判定する場合、以下の処理を実行する。すなわち、ノード130は、要求されたデータを自装置のキャッシュメモリ202に保持しているか否かを判定する(ステップS209)。なお、ノード130が、X軸方向からブロードキャストで送信されたパケットを受信したと判定する場合、ノード130がデータを保持しているかどうかを確認するほか、X軸上の先にある他のノードにもデータ要求パケットを転送する。ここで、ノード130では、トーラスルータ300が転送を行い、コア及びキャッシュメモリはデータ要求パケットの転送には関与しない。
ノード130は、要求されたデータを自装置のキャッシュメモリ202に保持していると判定する場合(ステップS209、Yes)、データを保持する旨と、データとをブロードキャスト元のノード130に応答する(ステップS210)。一方、ノード130は、要求されたデータを自装置のキャッシュメモリ202に保持していないと判定する場合(ステップS209、No)、データを保持しない旨をブロードキャスト元のノード130に応答する(ステップS211)。
なお、ノード130は、ステップS201において、データの取得を要求するパケットを受信していないと判定する場合(ステップS201、No)、所定の時間が経過後、ステップS201の処理を実行する。
[実施例1の効果]
上述してきたように、演算処理装置100によれば、コア数の増加に応じた性能の向上を図ることができる。
例えば、従来技術に係るメッシュネットワークは、規模に応じてバイセクションバンド幅を増加する。しかしながら、この場合、バイセクションバンド幅の値自体は、トーラスネットワークの半分しかない。また、リングネットワークのように規模に応じてバイセクションバンド幅を増やせない接続形態では、階層化したりデータバス幅を広げたりする。この場合、ルーティング論理やチップ内部の各所のデータバス幅を拡張することになり、変更量が非常に多くなってしまう。このようなことから、データバス幅の拡張に関しては、実装上困難である可能性もある。一方、演算処理装置100は、X軸方向とY軸方向がともにリング接続であり、その間をトーラスルータ300でルーティングするため、全体がトーラスネットワークとなっている。このようなトーラスネットワークでは、コア数の増加に伴ってバイセクションバンド幅が増大する。すなわち、演算処理装置100は、接続形態を再設計することなく、コア数の増加に伴ってバイセクションバンド幅を増大できる。
また、演算処理装置100は、共有キャッシュとバンク分割とを併用している。このため、コア数「n」に対して共有キャッシュ自体の数は、バンクあたり「nの平方根」となる。すなわち、コア数に対するキャッシュコヒーレンシの制御対象が少なくなる。例えば、キャッシュが64個である場合、キャッシュコヒーレンシの制御対象は、8個に抑えられる。この結果、演算処理装置100は、コア数の増加に伴うキャッシュコヒーレンシを制御するコストを低減できる。
さらに、演算処理装置100は、キャッシュコヒーレンシを制御するプロトコルとして単純かつリングネットワークと親和性の良いスヌープ方式を採用する。また、バンク分割によりスヌープバスもインタリーブされて独立に動作することになるので、スヌープバスの帯域がネックになりにくい。さらに、演算処理装置100は、キャッシュコヒーレンシを保証する対象が増えるとバンク数も増えるので、スヌープバスの帯域を増加できる。このため、演算処理装置100は、規模を拡張してもスヌープバスがネックになりにくい。また、演算処理装置100では、コア数が増えるとバンク分割数が増えるので、キャッシュメモリへのアクセスのスループットをコア数の増加に応じて向上できる。
また、演算処理装置100は、キャッシュコヒーレンシの制御プロトコルをスヌープ方式にすることによってプロトコル処理の負担を軽減できる。また、演算処理装置100は、スヌープバスがリング接続であるのでブロードキャストの制御を簡略化できる。
また、演算処理装置100では、複数のノード130を二次元平面上に整列して配置し、X軸方向およびY軸方向にそれぞれリング接続にすることで、ノード130間を接続するリンクが短くなる。これにより、演算処理装置100は、高帯域の配線を実装できる。
また、演算処理装置100は、単純なスヌーププロトコルと単純なリングネットワークとを採用することで、制御に用いる構成部の数、電力および時間を低減できる。これにより、演算処理装置100では、高帯域のデータバスを実装できる。
また、演算処理装置100は、キャッシュメモリ202と同様にメインメモリもバンク分割する。そして、メインメモリをキャッシュメモリ202と同じバンク分割にして、バンクとY座標を対応させている。このため、演算処理装置100において、メインメモリとキャッシュメモリ202との間の転送は、X軸上に閉じ、Y軸上のデータ転送には干渉しない。これにより、演算処理装置100は、スループットを向上できる。
また、演算処理装置100では、ノード130とI/O制御装置120との間の通信についても、ノード130間の通信と同様にトーラスネットワークを利用可能である。これにより、演算処理装置100では、ノード130間の通信やノード130とI/O制御装置120との間の通信用に専用の配線やルーティング機構などが設けられなくてもよい。
ところで、演算処理装置100において、あるノード130に異常が生じる場合がある。そして、ノード間で分散共有型のキャッシュメモリを構成している場合、異常発生時に、ノード単位での切り離しが困難である。例えば、チップ内のノードは、ボードの差し替えやチップの載せ替えのように物理的に隔離や交換ができない。
このようなことから、演算処理装置100は、異常が生じたノード130を安全に切り離した上で継続動作できるようにしてもよいものである。そこで、実施例2では、演算処理装置100において、異常が生じたノード130を無効化する場合を説明する。なお、実施例2に係る演算処理装置の構成は、図1に示した演算処理装置100の構成と同様であるので、図1と同一の符号を付与し、実施例2に係る演算処理装置の構成の詳細については説明を省略する。
[処理動作]
図8を用いて、ノード130に異常が生じた場合の処理動作を説明する。なお、ここでは、一例として、座標(3,4)に位置するノード130に異常が生じた場合を示す。図8は、座標(3,4)に位置するノード130に異常が生じた場合の処理動作を示す図である。なお、図8では、Y軸方向のデータバスは省略しているが、図1と同様に、Y軸方向もデータバスで接続される。
座標(3,4)に位置するノード130に異常が生じた場合、異常が生じたノード130が有するトーラスルータ300のコントローラ307は、制御用のプロセッサにノード130に異常が生じた旨を通知する。また、異常が生じたノード130が有するコントローラ307は、Y軸方向のポート301およびポート302を無効化する。
制御用のプロセッサは、座標(3,0)、座標(3,1)、座標(3,2)、座標(3,3)、座標(3,5)、座標(3,6)および座標(3,7)に位置するノード130のコントローラ307に、Y軸方向のポート301およびポート302の無効化を指示する。これにより、演算処理装置100は、X座標が3である一列のノード130を無効化する。なお、ノードを無効化する際には、一旦計算途中のデータを退避させてジョブを終了させ、新しい設定(故障ノードの切り離し)でシステムを立ち上げ直し、ジョブを(退避ポイントから)再実行することが多い。また、動的に(立ち上げ直しなしに)ノードを無効化することも可能である。この場合、動的にジョブの再割り付けやキャッシュのフラッシュやルーティング経路の切り替えなどを行う。
図8に示すように、X座標が3で同一である同一X座標列上のノード130を全て無効化する場合、データを共有するキャッシュの数が減るだけである。同一X座標列上のノード130を全て無効化しても、無効化したノード130とX軸方向に隣接するノード130同士は、リングネットワークの2つの線路の一方により接続されているため、通信可能である。このため、演算処理装置100は、継続して動作が可能である。なお、演算処理装置100は、同一X座標列ではなく同一Y座標行上のノード130を全て無効化すると、無効化された同一Y座標行のノード130が担当するバンク領域を使えなくなる。また、演算処理装置100は、座標(3,4)に位置するノード130だけを無効化すると、X座標が3であるノード130で特定のバンクを使えなくなる。
また、異常のレベルとして、「コアやキャッシュだけが故障した場合」と、「ルータが故障した場合」とが考えられる。「コアやキャッシュだけが故障した場合」、ルータは、継続動作可能である。このため、X軸方向のリング接続が保たれる。
また、「ルータが故障した場合」、故障したノードのトーラスルータが使用できなくなるのでリング接続が切れるが、単一バス接続になるだけである。この場合、単一バス接続とリング接続とでは最適なルーティング方法が異なるので、ノードの無効化のほか、ルーティング論理を切り替える。例えば、図8において、座標(5,4)のノードから座標(0,4)のノードへの応答の経路は、「X座標において−方向へパケットを送信する経路」および「X座標において+方向へパケットを送信する経路」の2つの経路がある。「X座標において−方向へパケットを送信する経路」は、座標(5,4)−座標(3,4)−座標(1,4)−座標(0,4)の順でパケットを送信する経路である。「X座標において+方向へパケットを送信する経路」は、座標(5,4)−座標(6,4)−座標(4,4)−座標(2,4)−座標(0,4)の順でパケットを送信する経路である。そして、いずれのノードも正常である場合、座標(5,4)のノードは、最短経路である「X座標において−方向へパケットを送信する経路」を利用する。一方、座標(3,4)のノードがルータを含めて故障した場合には、座標(5,4)のノードは、「X座標において+方向へパケットを送信する経路」を利用する。このように、演算処理装置100は、ルータが故障した場合、故障したノードのトーラスルータが使用できなくなるのでリング接続が切れるが、単一バス接続になるだけである。したがって、演算処理装置100では、他のノードから孤立するノードが発生することはない。
なお、ルータ故障時にもリング接続を保つには、バイパス経路を別途用意するか、物理層でバイパスさせる。図9を用いて、物理層でバイパスさせる一例を説明する。図9は、物理層でバイパスさせる一例を示す図である。
図9中における破線で記した配線は、トーラスルータ300を介さずにバイパスが可能な経路である。このように、演算処理装置100は、トーラスルータ300の故障時に破線で示す物理層でバイパスさせる経路を使えば、リング接続を保つことができる。
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例3では、本発明に含まれる他の実施例について説明する。
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
また、ノード130が有するコアの数は、図2に示す4つに限定されるものではない。例えば、図10に示すように、ノード130aは、1つのコア201と、分散共有型のキャッシュメモリ202と、トーラスルータ300とを有する。また、図1に示す演算処理装置100が、このノード130aを有する場合、コアの数は、64コアとなる。なお、図10は、ノードあたり1コアである場合のノードの構成の一例を示すブロック図である。
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コア部と、分散共有型のキャッシュメモリとを有する複数のノードをX軸方向およびY軸方向の二次元に配置する演算処理装置において、
前記複数のノードのうち前記X軸方向に隣接するノードをリング状に接続する第1の接続部と、
前記複数のノードのうち前記Y軸方向に隣接するノードをリング状に接続する第2の接続部と、
を有し、
前記複数のノードに含まれるキャッシュメモリは、前記Y軸方向にバンク分割され、前記X軸方向において該キャッシュメモリの一貫性をスヌープ方式で制御されて、前記複数のノード間で共有される
ことを特徴とする演算処理装置。
(付記2)前記第1の接続部は、
ノードがX軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
前記第2の接続部は、
ノードがY軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し
ノードがY軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがY軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続する
ことを特徴とする付記1に記載の演算処理装置。
(付記3)前記複数のノードのいずれかに異常が発生した場合、異常が発生したノードおよび該ノードと前記Y軸方向の座標が同一である列上に位置するノードを切離すことを特徴とする付記1または2に記載の演算処理装置。
(付記4)コア部と分散共有型のキャッシュメモリとを有する複数のノードをX軸方向およびY軸方向の二次元に配置する演算処理装置の制御方法において、
各ノードが、
他のノードが有する前記キャッシュメモリに保持されるデータの取得を要求する場合、前記複数のノードに含まれるキャッシュメモリをY軸方向に分割したバンクのうち、要求するデータを保持するバンクのアドレスを指定して、第2の接続部によりY軸方向にリング状に接続されるノードを介して該データを保持するバンクに該データの取得を要求し、
前記データの要求元のノードと前記Y軸方向の座標が同一である列上に位置し、前記指定されたアドレスのバンクを管理するノードが、
要求された前記データを保持する場合、前記Y軸方向にリング状に接続されるノードを介して該データを前記要求元のノードに応答し、要求された前記データを保持しない場合、第1の接続部により前記X軸方向にリング状に接続されるノードに、要求された前記データを保持するノードをスヌープ方式で問い合わせて該データを取得し、前記Y軸方向にリング状に接続されるノードを介して取得した該データを前記要求元のノードに応答する
各処理を含んだことを特徴とする演算処理装置の制御方法。
(付記5)前記第1の接続部は、
ノードがX軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
前記第2の接続部は、
ノードがY軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し
ノードがY軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがY軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続する
ことを特徴とする付記4に記載の演算処理装置の制御方法。
(付記6)前記複数のノードのいずれかに異常が発生した場合、異常が発生したノードおよび該ノードと前記Y軸方向の座標が同一である列上に位置するノードを切離す
処理を更に含んだことを特徴とする付記4または5に記載の演算処理装置の制御方法。
100 演算処理装置
101 第1の接続部
102 第2の接続部
130 ノード
201 コア
202 分散共有型のキャッシュメモリ

Claims (4)

  1. コア部と、分散共有型のキャッシュメモリとを有する複数のノードをX軸方向およびY軸方向の二次元に配置する演算処理装置において、
    前記複数のノードのうち前記X軸方向に隣接するノードをリング状に接続する第1の接続部と、
    前記複数のノードのうち前記Y軸方向に隣接するノードをリング状に接続する第2の接続部と、
    を有し、
    前記複数のノードに含まれるキャッシュメモリは、前記Y軸方向にバンク分割され、前記X軸方向において該キャッシュメモリの一貫性をスヌープ方式で制御されて、前記複数のノード間で共有される
    ことを特徴とする演算処理装置。
  2. 前記第1の接続部は、
    ノードがX軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
    ノードがX軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
    ノードがX軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
    前記第2の接続部は、
    ノードがY軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し
    ノードがY軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
    ノードがY軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続する
    ことを特徴とする請求項1に記載の演算処理装置。
  3. 前記複数のノードのいずれかに異常が発生した場合、異常が発生したノードおよび該ノードと前記Y軸方向の座標が同一である列上に位置するノードを切離すことを特徴とする請求項1または2に記載の演算処理装置。
  4. コア部と分散共有型のキャッシュメモリとを有する複数のノードをX軸方向およびY軸方向の二次元に配置する演算処理装置の制御方法において、
    各ノードが、
    他のノードが有する前記キャッシュメモリに保持されるデータの取得を要求する場合、前記複数のノードに含まれるキャッシュメモリをY軸方向に分割したバンクのうち、要求するデータを保持するバンクのアドレスを指定して、第2の接続部によりY軸方向にリング状に接続されるノードを介して該データを保持するバンクに該データの取得を要求し、
    前記データの要求元のノードと前記Y軸方向の座標が同一である列上に位置し、前記指定されたアドレスのバンクを管理するノードが、
    要求された前記データを保持する場合、前記Y軸方向にリング状に接続されるノードを介して該データを前記要求元のノードに応答し、要求された前記データを保持しない場合、第1の接続部により前記X軸方向にリング状に接続されるノードに、要求された前記データを保持するノードをスヌープ方式で問い合わせて該データを取得し、前記Y軸方向にリング状に接続されるノードを介して取得した該データを前記要求元のノードに応答する
    各処理を含んだことを特徴とする演算処理装置の制御方法。
JP2012180607A 2012-08-16 2012-08-16 演算処理装置および演算処理装置の制御方法 Active JP5920105B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012180607A JP5920105B2 (ja) 2012-08-16 2012-08-16 演算処理装置および演算処理装置の制御方法
US13/920,811 US9009372B2 (en) 2012-08-16 2013-06-18 Processor and control method for processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012180607A JP5920105B2 (ja) 2012-08-16 2012-08-16 演算処理装置および演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2014038494A true JP2014038494A (ja) 2014-02-27
JP5920105B2 JP5920105B2 (ja) 2016-05-18

Family

ID=50100920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012180607A Active JP5920105B2 (ja) 2012-08-16 2012-08-16 演算処理装置および演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US9009372B2 (ja)
JP (1) JP5920105B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017134817A (ja) * 2015-11-13 2017-08-03 エイチジーエスティーネザーランドビーブイ 分散キャッシュメモリにおける適応分割用のシステム及び方法
JPWO2021182223A1 (ja) * 2020-03-11 2021-09-16

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949200B2 (en) * 2013-06-16 2021-03-16 President And Fellows Of Harvard College Methods and apparatus for executing data-dependent threads in parallel
US10303637B2 (en) * 2015-08-20 2019-05-28 Toshiba Memory Corporation Storage system including a plurality of storage devices arranged in a holder
NO342930B1 (en) 2016-10-18 2018-09-03 Numascale As Cache Coherent node controller
CN108400880B (zh) * 2017-02-07 2020-11-03 华为技术有限公司 片上网络、数据传输方法和第一交换节点
NO343359B1 (en) 2017-05-02 2019-02-11 Numascale As Interconnect switch in multiprocessor systems
CN109213641B (zh) * 2017-06-29 2021-10-26 展讯通信(上海)有限公司 缓存一致性检测***及方法
US11269628B2 (en) * 2019-06-18 2022-03-08 Tenstorrent Inc. Processor cores using packet identifiers for routing and computation
CN112416852B (zh) * 2020-12-08 2023-11-21 海光信息技术股份有限公司 环形互连结构路由确定方法及装置
US20240111694A1 (en) * 2022-09-30 2024-04-04 Mellanox Technologies, Ltd. Node identification allocation in a multi-tile system with multiple derivatives

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266684A (ja) * 1993-03-15 1994-09-22 Toshiba Corp プロセッサ間ルーティング方式
US5715391A (en) * 1991-11-15 1998-02-03 International Business Machines Corporation Modular and infinitely extendable three dimensional torus packaging scheme for parallel processing
JPH11134312A (ja) * 1997-08-22 1999-05-21 Seitai Cho 分散共有メモリ多重プロセッサシステム
JP2005174289A (ja) * 2003-12-13 2005-06-30 Internatl Business Mach Corp <Ibm> トーラス区画化を容易にするために並列コンピュータのプロセッサを相互接続する方法およびシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60237433D1 (de) 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
JP4656862B2 (ja) 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 半導体装置
US7743285B1 (en) * 2007-04-17 2010-06-22 Hewlett-Packard Development Company, L.P. Chip multiprocessor with configurable fault isolation
JP4676463B2 (ja) * 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715391A (en) * 1991-11-15 1998-02-03 International Business Machines Corporation Modular and infinitely extendable three dimensional torus packaging scheme for parallel processing
JPH06266684A (ja) * 1993-03-15 1994-09-22 Toshiba Corp プロセッサ間ルーティング方式
JPH11134312A (ja) * 1997-08-22 1999-05-21 Seitai Cho 分散共有メモリ多重プロセッサシステム
JP2005174289A (ja) * 2003-12-13 2005-06-30 Internatl Business Mach Corp <Ibm> トーラス区画化を容易にするために並列コンピュータのプロセッサを相互接続する方法およびシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017134817A (ja) * 2015-11-13 2017-08-03 エイチジーエスティーネザーランドビーブイ 分散キャッシュメモリにおける適応分割用のシステム及び方法
JPWO2021182223A1 (ja) * 2020-03-11 2021-09-16
WO2021182223A1 (ja) * 2020-03-11 2021-09-16 株式会社エヌエスアイテクス プロセッサ及びデータ経路再構成方法
JP7473755B2 (ja) 2020-03-11 2024-04-24 株式会社デンソー プロセッサ及びデータ経路再構成方法

Also Published As

Publication number Publication date
US20140052923A1 (en) 2014-02-20
JP5920105B2 (ja) 2016-05-18
US9009372B2 (en) 2015-04-14

Similar Documents

Publication Publication Date Title
JP5920105B2 (ja) 演算処理装置および演算処理装置の制御方法
US8848703B2 (en) On-chip router and multi-core system using the same
JP4484757B2 (ja) 情報処理装置
JP5852294B2 (ja) マルチプロセサシステムおよびマルチプロセサシステムの構成方法
US9294403B2 (en) Mechanism to control resource utilization with adaptive routing
KR102092660B1 (ko) Cpu 및 다중 cpu 시스템 관리 방법
JP5419107B2 (ja) マルチコア処理システム
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
KR20080097486A (ko) 메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는시스템 및 방법
CN108874687B (zh) 针对拼贴式末级高速缓存的非统一总线(nub)互连协议
JP5050028B2 (ja) サーバ装置
US7159079B2 (en) Multiprocessor system
NO342930B1 (en) Cache Coherent node controller
NO343359B1 (en) Interconnect switch in multiprocessor systems
JP5754504B2 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
JP6070732B2 (ja) 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム
JP2018014057A (ja) 並列処理装置及びノード間通信方法
US11714755B2 (en) System and method for scalable hardware-coherent memory nodes
CN115580572A (zh) 路由方法、路由节点、路由装置和计算机可读存储介质
JP2009237709A (ja) 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法
JP4855669B2 (ja) システム電源モード制御のためのパケット交換
CN113544658A (zh) 置换环形网络互联的计算架构
US20050289101A1 (en) Methods and systems for dynamic partition management of shared-interconnect partitions
US20120236843A1 (en) Information processing apparatus and method of switching settings thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160328

R150 Certificate of patent or registration of utility model

Ref document number: 5920105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150