JPWO2008155806A1 - バリア同期方法、装置、及びマルチコアプロセッサ - Google Patents

バリア同期方法、装置、及びマルチコアプロセッサ Download PDF

Info

Publication number
JPWO2008155806A1
JPWO2008155806A1 JP2009520147A JP2009520147A JPWO2008155806A1 JP WO2008155806 A1 JPWO2008155806 A1 JP WO2008155806A1 JP 2009520147 A JP2009520147 A JP 2009520147A JP 2009520147 A JP2009520147 A JP 2009520147A JP WO2008155806 A1 JPWO2008155806 A1 JP WO2008155806A1
Authority
JP
Japan
Prior art keywords
processor
information
synchronization
core
processor cores
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
JP2009520147A
Other languages
English (en)
Other versions
JP5273045B2 (ja
Inventor
秀之 海野
秀之 海野
鵜飼 昌樹
昌樹 鵜飼
マシュー デペトロ
マシュー デペトロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of JPWO2008155806A1 publication Critical patent/JPWO2008155806A1/ja
Application granted granted Critical
Publication of JP5273045B2 publication Critical patent/JP5273045B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

複数のプロセッサコアを有するマルチコアプロセッサに、その複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサをバリア同期させるためのバリア同期装置を実装し、そのマルチコアプロセッサが有する2つ以上のプロセッサコアのみが同一の同期グループに属している場合に、実装したバリア同期装置を用いてそれらのバリア同期を行わせる。

Description

本発明は、同一の同期グループに属する2つ以上のプロセッサコア、或いはプロセッサのバリア同期を実現させるための技術に関する。
計算機システムに要求される処理速度および処理容量は増加し続けている。このため、複数のプロセッサによる分散処理技術の重要度は非常に高くなっている。処理速度に対する要求と、処理容量に対する要求の両方を妥当なコストで満たすためには、効率の良い分散処理を実現する必要がある。バリア同期技術は、効率の良い分散処理を実現させるための一つであり、現在、高性能な計算機システムに広く採用されている。
そのバリア同期では、複数のプロセッサを同期グループで分け、同期グループ単位で処理の進行を管理する。その管理により、現在、実行中の処理の次に実行すべき処理への移行は、同期グループに属する全てのプロセッサが現在、実行中の処理を終了してから行わせる。そのバリア同期を実現させるためのバリア同期装置としては、例えば特許文献1〜3にそれぞれ記載されたものが知られている。
同期グループ単位での処理の進行を管理するためには、各プロセッサは処理の実行状況を通知し、次の処理に移行すべき状況となったときにはその旨を各プロセッサに通知する必要がある。このことから分散処理は一般的に、個々のプロセッサが並列に実行すべき処理を実行する並列処理部分と、プロセッサ同士が協調動作するために実行する協調動作部分と、に大別される。分散処理の効率を向上させるためには、協調動作部分(同期処理)の実行に要する割合(時間)を極力、減らすことが重要である。
近年、半導体技術の向上により、演算機能を有するプロセッサコア(命令のデコードや実行を行なう各種ユニット、レジスタ、及びキャッシュメモリなどを備えている)を複数、実装したマルチコアプロセッサが製品化されている。そのようなマルチコアプロセッサでは、各プロセッサコアは同期グループを割り当てる対象となる。それにより、同一の同期グループに属する全てのプロセッサコアが1個のマルチコアプロセッサ内に存在する状況が有りうる。協調動作部分の実行に要する時間の短縮化では、そのような状況を考慮することも重要と考えられる。
半導体技術の向上は、プロセッサでは高速化、高密度化を実現し、メモリでは大容量化に貢献している。結果として、従来よりも小さな領域内により大きい計算能力が実現され、領域はより広大となっている。しかし、主記憶のアクセス速度はプロセッサより低速なままである。むしろ、プロセッサの処理速度と主記憶の動作速度との乖離はより深刻となっている。したがって、情報の伝達を主記憶を介して行った場合、協調動作部分の実行に要する時間にはより低速な主記憶の動作速度の影響をうける。このことも、協調動作部分の実行に要する時間の短縮に考慮すべきと云える。
特開平8−187303号公報 特開平9−6734号公報 特開2005−71109号公報
本発明は、マルチコアプロセッサ内のバリア同期のための同期処理をより高速に行うための技術を提供することを目的とする。
本発明の第1の態様のバリア同期方法は、複数のプロセッサコアを有するプロセッサにおいて、前記プロセッサコアが実行した処理を同期させるバリア同期方法であって、前記複数のプロセッサコアのうち、同期すべきプロセッサコアをそれぞれ、同一の同期グループに割り当てるステップと、前記同一の同期グループに属するプロセッサコアの実行した処理を同期させるステップとを有する。
上記第1の態様では、さらに、前記プロセッサが有する前記プロセッサコアにメモリを有し、前記プロセッサコアの実行した処理を同期させるステップは、前記同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を前記メモリに格納するステップを含むことが望ましい。或いは/及び、さらに、前記複数のプロセッサコアのうち、いずれかのプロセッサコアが実行すべき処理を完了した場合には、前記処理を完了したプロセッサコアが次の処理に移行するまでの間、前記プロセッサコアを休止状態に移行させるステップを含むことが望ましい。
第2の態様のバリア同期方法は、複数のプロセッサを有する情報処理装置において、前記プロセッサが実行した処理を同期させるバリア同期方法であって、前記複数のプロセッサのうち、いずれかのプロセッサコアが実行すべき処理を完了した場合には、前記処理を完了したプロセッサコアが次の処理に移行するまでの間、前記プロセッサコアを休止状態に移行させるステップと、前記休止状態に移行させたプロセッサを、次の処理に移行させるタイミングの到来により前記休止状態前の状態に復帰させるステップを有する。
本発明の第1の態様のバリア同期装置は、マルチコアプロセッサが有する複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサを同期させるために該マルチコアプロセッサに実装されることを前提とし、前記複数のプロセッサコアそれぞれの処理の実行状態を示す状態情報を格納する第1の情報格納手段と、同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、を具備する。
第2の態様のバリア同期装置は、上記第1の態様の構成に加えて、前記第3の情報格納手段に格納されている同期情報を専用の配線により前記プロセッサコアが有するメモリに書き込む情報書込手段、を更に具備する。
なお、上記第1或いは第2の態様では、前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
N≧2M・X
の関係を満たしている、ことが望ましい。
本発明のマルチコアプロセッサは、前記複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサをバリア同期させるためのバリア同期装置と、前記バリア同期装置に、前記複数のプロセッサコアそれぞれの処理の実行状態を示す状態情報を通知する通知手段と、を具備する。
本発明では、マルチコアプロセッサに、バリア同期のためのバリア同期装置を実装し、そのマルチコアプロセッサが有する2つ以上のプロセッサコアのみが同一の同期グループに属している場合に、実装したバリア同期装置を用いてそれらプロセッサコアのバリア同期を実現させる。そのようにして、バリア同期のためのデータの送受信をマルチコアプロセッサ外と行うのを回避させるため、バリア同期用の同期処理は極めて高速に行うことができる。
バリア同期装置に、同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報をそのプロセッサコアのメモリに直接、書き込ませるようにした場合には、プロセッサコアはより高速に同期情報を確認することができる。このため、バリア同同期用に実行する同期処理の時間が短縮し、その処理が全体に占める割合はより低減される。
実行すべき処理が終了したプロセッサコアを次の処理に移行するまでの間、計算資源の消費が少なく、より消費電力が小さい休止状態に移行させるようにした場合には、処理能力の低下を回避しつつ、消費電力をより抑えられるようになる。
バリア同期装置を構成する第2及び第3の情報格納手段、並びに情報更新手段からなる組の総数Nを、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
N≧2M・X
の関係を満たすようにした場合には、第2の情報格納手段に格納した組み合わせ情報を更新することなく、より多くの同期グループに対応できる可能性が高くなる。このため、バリア同期用にプロセッサコアが実行すべき同期処理の量はより抑えられるようになる。それにより、バリア同期もより高速化されることとなる。
本実施形態によるマルチコアプロセッサの構成を示す図である。 本実施形態によるマルチコアプロセッサが適用される計算機システムの構成を示す図である。 図2の計算機システムに用いられている計算機ノードの構成を示す図である。 バリア装置の構成を示す図である。 バリアブレイドの構成を示す図である。 LBSY値をプロセッサコアにコピーするための書き込み機構を示す図である。 図6の書き込み機構によるコピーのために設けられた専用の配線を説明する図である。 図6の書き込み機構に係わるプロセッサコアの構成を示す図である。 LBSY更新ロジックによるLBSY値の更新方法を示す図である。 各プロセッサコアがスリープ状態に移行している期間を説明する図である。 同一の同期グループに属する論理プロセッサが1個のマルチコアプロセッサ内に全て存在しない場合にバリア同期を行う方法を説明する図である。
以下、本バリア同期方法、装置、及びマルチコアプロセッサの実施形態の一例について、図面を参照しながら詳細に説明する。
図1は、本実施形態によるマルチコアプロセッサ(CPU LSI)の構成を示す図である。そのプロセッサ1は、図1に示すように、演算機能を有するプロセッサコア(図中「Core」。命令のデコードや実行を行なう各種ユニット、レジスタ、及びキャッシュメモリなどを備えている)11を計4個、搭載したものである。各プロセッサコア(以下「コア」)11は共有キャッシュ制御部12と接続され、その制御部12を介して、大容量の共有するキャッシュメモリ(データ部)13、バス制御部14、或いはバリア装置(BARRIER UNIT)16にアクセス、或いはデータの送受信を行うようになっている。本実施形態によるバリア同期装置は、バリア装置16として実現されている。
そのバリア装置16は、同一の同期グループに属するコア11が全て当該プロセッサ1内に存在する場合に、その同期グループのバリア同期を実現させるための処理を行う。それにより、そのバリア同期の実現のためにプロセッサ1外とのデータの送受信を行う必要性を回避させている。プロセッサ1内部でバリア同期を実現させ、その内部の処理速度と比較して低速なデータの送受信を行わないようにしたため、そのバリア同期のための処理は極めて高速に行うことができる。
上記マルチコアプロセッサ(以降「プロセッサ」と略記)1は、高性能な計算機システムの構築に用いられることを想定したものである。その計算機システムは、例えば図2に示すように、それぞれが1個の計算機システムである計算機ノード21を複数、ノード間のインタコネクト用の接続装置22に接続して構築されるものである。接続装置22は、具体的にはクロスバー、或いはメッシュ・ネットワークなどである。
上記プロセッサ1は、1LSI上に図1に示す構成を全て実装したものである。しかし、プロセッサとしては、同一パッケージ内に図1に示す構成を全て搭載したものであっても良い。つまり、例えばコア11を実装した1つ以上の半導体チップ、及び共有するキャッシュメモリ13を実装した別の半導体チップを同一パッケージにまとめたようなものでも良い。
図2に示す計算機ノード(計算機システムである情報処理装置)21は、例えば図3に示すような構成のものである。その図3に示すように、計算機ノード21には、複数のプロセッサ1が搭載され、各プロセッサ1はシステムコントローラ31と不図示のシステムバスにより接続されている。そのコントローラ31には、各プロセッサ1により共有される主記憶装置32、及び不図示の外部記憶装置との間でデータの入出力等を行う入出力制御装置33が接続されている。接続装置22との間でデータの送受信を行うためのインタフェース34は、その接続装置22と接続させる場合に搭載されるオプションである。そのインタフェース34が無線LAN用のものであった場合、接続装置22は存在しないことも有りうる。
図4は、上記バリア装置16の構成を示す図である。そのバリア装置16は、2つのバリア処理装置15、及び論理プロセッサ(OSが認識可能な仮想的コア)の総数と同じ数の設定レジスタ(Configuration Registers)43を備えている。2つのバリア処理装置15は、複数のBST(Barrier STatus register)からなるBST群42、及びそれぞれが1つの同期グループの同期処理を実行可能な複数のバリア同期実行部(図中「Barrier Blade」。以降「バリアブレイド」)40を備えている。
BST群42を構成する各BST41にはそれぞれ、異なる論理プロセッサが割り当てられる。各BST41は1ビットのデータを格納するレジスタである。各論理プロセッサ(その論理プロセッサが割り当てられたコア11)は、並列処理として実行すべき処理の実行の終了により「1」を書き込み、次の処理の実行開始により「0」を書き込むようになっている。それによりBST41の値は、対応する論理プロセッサの処理の実行状態を示している。その値が0→1に変化するポイントは、同一の同期グループに属する他の論理プロセッサとの同期を取るための待ち状態に移行したことを意味している。そのポイントについては以降「同期ポイント」と呼ぶ。
各コア11の論理プロセッサ数は2である。本実施形態では、論理プロセッサ当たり3つの同期グループに対応できるように、計24(=3×2×4)個のバリアブレイド40を用意している。そのために、BST41も24個、用意している。
図5は、上記バリアブレイド40の構成を示す図である。バリアブレイド40は、BST41の総数分のビット数を有するBSTマスクレジスタ40a、LBSY(Last Barrier SYnchronization register)40b及びLBSY更新ロジック(回路)40cを備えている。
BSTマスクレジスタ40aは、バリアブレイド40に割り当てられた同期グループに属する論理プロセッサの組み合わせを示す組データを格納するものである。その組データは例えば、同期グループに属する論理プロセッサに対応するビットの値は1、属しない論英プロセッサに対応するビットの値は0である。そのような組データを格納したマスクレジスタ40aによりLBSY更新ロジック40cは、BST群42のなかで同期グループに属する論理プロセッサに割り当てられたBST41の値のみを用いて、LBSY40bの値(LBSY値)を更新する。その更新は、対象となる全てのBST41の値が一致した場合に、現在のLBSY値の否定値(現在値が0であれば1、1であれば0)をLBSY40bに書き込むことで行う。
分散処理の対象となる処理(複数のスレッドを含むプログラム全体の処理)が常に一定であるとは限らない。その処理の追加や消滅が発生する場合がある。処理が追加される場合、その処理の同期実現用にバリアブレイド40を割り当て、マスクレジスタ40aに組データを格納しなければならない。論理プロセッサ当たり3個のバリアブレイド40を用意しているのは、そのような設定を行う回数をより少なくして、つまりバリア同期用にコア11に実行させる処理の量をより少なくして、その処理に要する時間の短縮を実現させるためである。設定の回数を抑えるためには、論理プロセッサ当たり2個以上のバリアブレイド40を用意することが望ましい。つまり、コア11の総数をM、コア11当たりの論理プロセッサの総数をXとすると、バリアブレイド40の総数Nは
N≧2・M・X
の関係を満たすようにすることが望ましい。
図9は、LBSY更新ロジック40cによるLBSY値の更新方法を示す図である。図9中の「プロセス1」〜「プロセス3」はそれぞれ、同一の同期グループに属する各論理プロセッサに割り当てられた処理を示し、「BST1」〜「BST3」はそれぞれ、プロセス1〜3を実行する論理プロセッサによって値が更新されるBST41を示している。これは後述する図10でも同じである。図9に示すようにLBSY40bの値は、BST1〜3の値が全て1となることで0→1に更新され、その後、それらBST1〜3の値が全て0の値となると1→0に更新されている。
バリア装置16内の各種レジスタ、即ち設定レジスタ43、BST41、及びマスクレジスタ40a等へのコア11によるアクセスは、共有キャッシュ制御部12を介して行われる。このため、そのアクセスには或る程度、長い時間が必要である。処理を終了したことで論理値1をBST41に書き込んだ論理プロセッサは、LBSY値を監視(ポーリング)して、その値が1に変化するのを確認しなければならない。その監視のためにLBSY値にアクセスを繰り返すスピンループが発生することがある。このようなことから本実施形態では、以下のことを行っている。図6〜図8及び図10を参照して具体的に説明する。
コア11によるLBSY値の確認をより迅速に行えるように、そのコア11が監視すべきLBSY値はそのコア11内部にバリアブレイド40からコピーするようにしている。図6は、そのコピーのための書き込み機構を示す図である。
図6に示すセレクタ61は、設定レジスタ43毎、つまり論理プロセッサ毎に用意している。各バリアブレイド40のLBSY40bに格納されたLBSY値は全てセレクタ61に入力されるようになっており、各セレクタ61は、対応する設定レジスタ43に格納されたデータに従い、24のLBSY値のなかから6つのLBSY値を選択して出力する。出力側の配線(計6本の配線)は、図7に共有キャッシュ制御部12を通る太線で示すように、対応するコア11に接続されている。このため、セレクタ61により選択されたLBSY値は直接、対応するコア11に出力(コピー)される。各コア11は2つの論理プロセッサを持つことができるので、太線一本あたり12本の配線が存在する。
各セレクタ61はバリア装置16内に配置している。これは、セレクタ61をコア11の近くに配置するほど、全体の配線長が長くなるからである。それにより、セレクタ61にLBSY値を入力するために必要な全体の配線長はより短くなるようにして、レイアウト設計等への影響を抑えている。
図8は、上記書き込み機構に係わるコア11の構成を示す図である。
書き込み機構により出力された6つのLBSY値はそれぞれレジスタ83にストアされる。LBSY値変化検出部82は、各レジスタ83にストアされるLBSY値の変化を検出するものである。命令制御部81は不図示の1次キャッシュ部に取り込まれた命令を取り出し、実行させるものである。
レジスタ83は、アクセスがより高速に行えるように、命令制御部81の近傍に配置している。LBSY値を監視する対象がコア11内のレジスタ83になると、その監視のために共有キャッシュ制御部12に発行するリクエストの数は少なくなる。それにより、高速化が実現されるとともに、共有キャッシュ制御部12の負荷も軽減されることとなる。共有キャッシュ制御部12を介したLBSY値のリードでは数十nsかかるが、そのリード時間はレジスタ83のリードとすることで数nsとなる。LBSY値をコピーするメモリは、高速にアクセスできるものであればレジスタ83以外の種類であっても良い。
各論理プロセッサは、同期ポイントに到達、つまり対応するBST41の値を0から1に書き換えてからLBSY値が更新(0から1への更新)されるまでの期間、分散処理のために割り当てられた処理を実行することができない。このことから本実施形態では、その期間の消費電力を抑えるために、同期ポイントに到達した論理プロセッサはスリープ状態(モード)に移行させるようにしている。LBSY値変化検出部82は、LBSY値の変化を検出して、命令制御部81に対し、スリープ状態の解除を要求するために用意している。命令制御部81は、そのスリープ解除要求によりスリープ状態を解除してその直前の状態に復帰させる。スリープ状態への移行は、論理プロセッサに実行させるプログラム(ソフトウェア)により行っている。なお、同期ポイントに到達した後に移行させる状態としては、より計算に必要な資源(バッファ、一時レジスタなど)の使用を抑えられる、より消費電力が抑えられる、復帰が高速に行える、という条件を満たしていれば別の休止状態であっても良い。
図10は、スリープ状態に移行している期間を説明する図である。プロセス1〜3を実行する論理プロセッサがスリープ状態に移行している期間を、BST1〜3で斜線により表している。図10に示すように各論理プロセッサは、三角で示す同期ポイントに到達してからLBSY値が1に変化するまでの期間、スリープ状態となっている。
6個のレジスタ83、及び1個のLBSY値変化検出部82は、全部で2組、用意されている。それにより、コア11の別の論路プロセッサでも同様に、同期ポイントに到達すればスリープ状態に移行させ、LBSY値の変化により直前の状態に復帰させるようになっている。
LBSY値が変化したことの検出は、6つのLBSY値のうちの1つ以上の変化を条件としても良いが、処理(プロセス)が終了した同期グループに対応するLBSY値の変化のみを条件としても良い。
上記スリープ状態への移行は、論理プロセッサ単位で行っているが、コア11単位で行っても良い。或いはプロセッサ1単位で行っても良い。その場合、プロセッサ1はマルチコアプロセッサでなくとも良い。
図11は、同一の同期グループに属する論理プロセッサが1個のマルチコアプロセッサの内に全て存在しない場合にバリア同期を行う方法を説明する図である。
図11において、2個のバリアブレイド40はそれぞれ異なるプロセッサ1に実装されたものである。バリアリーフ(Barrier Leaf)110は、プロセッサ1以外の構成要素、例えば図3に示すシステムコントローラ31、或いは図2に示す接続装置22に搭載されたものである。そのバリアリーフ110はBST群111と共にバリア処理装置(図4)を構成するものである。ここでは便宜的に、バリアリーフ110等は接続装置22に搭載されたバリア装置に存在するものであると想定する。
各バリアブレイド40は、BST群42のなかで値を送信すべきBST41をマスクレジスタ40aから特定する。特定したBST41の値は、インタフェース34を介して接続装置22に送信され、BST群111の対応するBSTにストアされる。それによりバリアリーフ110はバリアブレイド40と同様に、BST群111のなかでマスクレジスタ110aにより指定されるBSTの組み合わせからLBSY110bの値を必要に応じて更新する。そのLBSY110bの値は各バリアブレイド40に送信され、LBSY40bにストアされる。そのLBSY40bの値を対応するコア11内にコピーすることにより、バリア同期を実現させる。
なお、本実施形態では、バリア装置16のLBSY値を各コア11内に直接コピーできるようにしているが、全てのコア11を直接コピーできるようにしなくとも良い。スリープ状態への移行については、対応するBST41への1の書き込みを契機にして移行させるようにしても良い。
なお、本実施の形態では、バリア装置16のLBSY値を各コア11内に直接コピーできるようにしているが、全てのコア11を直接コピーできるようにしなくとも良い。スリープ状態への移行については、対応するBST41への1の書き込みを契機にして移行させるようにしても良い。
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
複数のプロセッサコアを有するプロセッサにおいて、前記プロセッサコアが実行した処理を同期させるバリア同期方法であって、
前記複数のプロセッサコアのうち、同期すべきプロセッサコアをそれぞれ、同一の同期グループに割り当てるステップと、
前記同一の同期グループに属するプロセッサコアの実行した処理を同期させるステップとを有することを特徴とするバリア同期方法。
(付記2)
前記バリア同期方法はさらに、
前記プロセッサが有する前記プロセッサコアにメモリを有し、
前記プロセッサコアの実行した処理を同期させるステップは、前記同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を前記メモリに格納するステップを含むことを特徴とする付記1記載のバリア同期方法。
(付記3)
前記バリア同期方法はさらに、
前記複数のプロセッサコアのうち、いずれかのプロセッサコアが実行すべき処理を完了した場合には、前記処理を完了したプロセッサコアが次の処理に移行するまでの間、前記プロセッサコアを休止状態に移行させるステップを含むことを特徴とする付記1又は2記載のバリア同期方法。
(付記4)
複数のプロセッサを有する情報処理装置において、前記プロセッサが実行した処理を同期させるバリア同期方法であって、
前記複数のプロセッサのうち、いずれかのプロセッサコアが実行すべき処理を完了した場合には、前記処理を完了したプロセッサコアが次の処理に移行するまでの間、前記プロセッサコアを休止状態に移行させるステップと、
前記休止状態に移行させたプロセッサを、次の処理に移行させるタイミングの到来により前記休止状態前の状態に復帰させるステップを有することを特徴とするバリア同期方法。
(付記5)
マルチコアプロセッサが有する複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサを同期させるために該マルチコアプロセッサに実装される装置であって、
前記複数のプロセッサコアそれぞれの処理の実行状態を示す状態情報を格納する第1の情報格納手段と、
同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、
前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、
前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、
を具備することを特徴とするバリア同期装置。
(付記6)
前記第3の情報格納手段に格納されている同期情報を専用の配線により前記プロセッサコアが有するメモリに書き込む情報書込手段、
を更に具備することを特徴とする付記5記載のバリア同期装置。
(付記7)
前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
N≧2M・X
の関係を満たしている、
ことを特徴とする付記5記載のバリア同期装置。
(付記8)
前記情報書込手段は、前記情報更新手段毎に用意されている、
ことを特徴とする付記6記載のバリア同期装置。
(付記9)
前記マルチコアプロセッサは、前記複数のプロセッサコアを一つのLSI上に実装したプロセッサである、
ことを特徴とする付記5記載のバリア同期装置。
(付記10)
前記マルチコアプロセッサは、前記複数のプロセッサコアがキャッシュメモリを共有するプロセッサである、
ことを特徴とする付記5記載のバリア同期装置。
(付記11)
複数のプロセッサコアを有するマルチコアプロセッサにおいて、
前記複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサをバリア同期させるためのバリア同期装置と、
前記バリア同期装置に、前記複数のプロセッサコアそれぞれの処理の実行状態を示す状態情報を通知する通知手段と、
を具備することを特徴とするマルチコアプロセッサ。
(付記12)
前記バリア同期装置は、
前記通知手段により通知される、複数のプロセッサコアそれぞれの前記状態情報を格納する第1の情報格納手段と、
同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、
前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、
前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、
前記第3の情報格納手段に格納されている同期情報を専用の配線により前記プロセッサコアが有するメモリに書き込む情報書込手段と、
を具備することを特徴とする付記11記載のマルチコアプロセッサ。
(付記13)
前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
N≧2M・X
の関係を満たしている、
ことを特徴とする付記12記載のマルチコアプロセッサ。
(付記14)
前記バリア同期装置は、
前記通知手段により通知される、複数のプロセッサコアそれぞれの前記状態情報を格納する第1の情報格納手段と、
同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、
前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、
前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、
を具備し、
前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
N≧2M・X
の関係を満たしている、
ことを特徴とする付記11記載のマルチコアプロセッサ。
(付記15)
前記マルチコアプロセッサは、前記複数のプロセッサコアを一つのLSI上に実装したプロセッサである、
ことを特徴とする付記11記載のマルチコアプロセッサ。
(付記16)
前記マルチコアプロセッサは、前記複数のプロセッサコアがキャッシュメモリを共有するプロセッサである、
ことを特徴とする付記11記載のマルチコアプロセッサ。

Claims (16)

  1. 複数のプロセッサコアを有するプロセッサにおいて、前記プロセッサコアが実行した処理を同期させるバリア同期方法であって、
    前記複数のプロセッサコアのうち、同期すべきプロセッサコアをそれぞれ、同一の同期グループに割り当てるステップと、
    前記同一の同期グループに属するプロセッサコアの実行した処理を同期させるステップとを有することを特徴とするバリア同期方法。
  2. 前記バリア同期方法はさらに、
    前記プロセッサが有する前記プロセッサコアにメモリを有し、
    前記プロセッサコアの実行した処理を同期させるステップは、前記同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を前記メモリに格納するステップを含むことを特徴とする請求項1記載のバリア同期方法。
  3. 前記バリア同期方法はさらに、
    前記複数のプロセッサコアのうち、いずれかのプロセッサコアが実行すべき処理を完了した場合には、前記処理を完了したプロセッサコアが次の処理に移行するまでの間、前記プロセッサコアを休止状態に移行させるステップを含むことを特徴とする請求項1又は2記載のバリア同期方法。
  4. 複数のプロセッサを有する情報処理装置において、前記プロセッサが実行した処理を同期させるバリア同期方法であって、
    前記複数のプロセッサのうち、いずれかのプロセッサコアが実行すべき処理を完了した場合には、前記処理を完了したプロセッサコアが次の処理に移行するまでの間、前記プロセッサコアを休止状態に移行させるステップと、
    前記休止状態に移行させたプロセッサを、次の処理に移行させるタイミングの到来により前記休止状態前の状態に復帰させるステップを有することを特徴とするバリア同期方法。
  5. マルチコアプロセッサが有する複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサを同期させるために該マルチコアプロセッサに実装される装置であって、
    前記複数のプロセッサコアそれぞれの処理の実行状態を示す状態情報を格納する第1の情報格納手段と、
    同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、
    前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、
    前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、
    を具備することを特徴とするバリア同期装置。
  6. 前記第3の情報格納手段に格納されている同期情報を専用の配線により前記プロセッサコアが有するメモリに書き込む情報書込手段、
    を更に具備することを特徴とする請求項5記載のバリア同期装置。
  7. 前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
    N≧2M・X
    の関係を満たしている、
    ことを特徴とする請求項5記載のバリア同期装置。
  8. 前記情報書込手段は、前記情報更新手段毎に用意されている、
    ことを特徴とする請求項6記載のバリア同期装置。
  9. 前記マルチコアプロセッサは、前記複数のプロセッサコアを一つのLSI上に実装したプロセッサである、
    ことを特徴とする請求項5記載のバリア同期装置。
  10. 前記マルチコアプロセッサは、前記複数のプロセッサコアがキャッシュメモリを共有するプロセッサである、
    ことを特徴とする請求項5記載のバリア同期装置。
  11. 複数のプロセッサコアを有するマルチコアプロセッサにおいて、
    前記複数のプロセッサコアのなかで同一の同期グループに属する2つ以上のマルチコアプロセッサをバリア同期させるためのバリア同期装置と、
    前記バリア同期装置に、前記複数のプロセッサコアそれぞれの処理の実行状態を示す状態情報を通知する通知手段と、
    を具備することを特徴とするマルチコアプロセッサ。
  12. 前記バリア同期装置は、
    前記通知手段により通知される、複数のプロセッサコアそれぞれの前記状態情報を格納する第1の情報格納手段と、
    同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、
    前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、
    前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、
    前記第3の情報格納手段に格納されている同期情報を専用の配線により前記プロセッサコアが有するメモリに書き込む情報書込手段と、
    を具備することを特徴とする請求項11記載のマルチコアプロセッサ。
  13. 前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
    N≧2M・X
    の関係を満たしている、
    ことを特徴とする請求項12記載のマルチコアプロセッサ。
  14. 前記バリア同期装置は、
    前記通知手段により通知される、複数のプロセッサコアそれぞれの前記状態情報を格納する第1の情報格納手段と、
    同期グループに属するプロセッサコアの組み合わせを示す組み合わせ情報を格納する第2の情報格納手段と、
    前記同一の同期グループに属するプロセッサコアが次の処理に移行すべきか否かを示す同期情報を格納する第3の情報格納手段と、
    前記第1及び第2の情報格納手段にそれぞれ格納された状態情報、及び組み合わせ情報を基に、前記第3の情報格納手段に格納されている同期情報を更新する情報更新手段と、
    を具備し、
    前記第2及び第3の情報格納手段、並びに前記情報更新手段からなる組の総数Nは、前記プロセッサコアの総数をM、該プロセッサコアの論理プロセッサの総数をXとした場合に、
    N≧2M・X
    の関係を満たしている、
    ことを特徴とする請求項11記載のマルチコアプロセッサ。
  15. 前記マルチコアプロセッサは、前記複数のプロセッサコアを一つのLSI上に実装したプロセッサである、
    ことを特徴とする請求項11記載のマルチコアプロセッサ。
  16. 前記マルチコアプロセッサは、前記複数のプロセッサコアがキャッシュメモリを共有するプロセッサである、
    ことを特徴とする請求項11記載のマルチコアプロセッサ。
JP2009520147A 2007-06-20 2007-06-20 バリア同期方法、装置、及びプロセッサ Active JP5273045B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000664 WO2008155806A1 (ja) 2007-06-20 2007-06-20 バリア同期方法、装置、及びマルチコアプロセッサ

Publications (2)

Publication Number Publication Date
JPWO2008155806A1 true JPWO2008155806A1 (ja) 2010-08-26
JP5273045B2 JP5273045B2 (ja) 2013-08-28

Family

ID=40155971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520147A Active JP5273045B2 (ja) 2007-06-20 2007-06-20 バリア同期方法、装置、及びプロセッサ

Country Status (4)

Country Link
US (1) US7971029B2 (ja)
EP (1) EP2159694B1 (ja)
JP (1) JP5273045B2 (ja)
WO (1) WO2008155806A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101542442B (zh) * 2007-04-09 2012-12-19 松下电器产业株式会社 多处理器控制装置、其控制方法及集成电路
JP5447807B2 (ja) * 2009-08-07 2014-03-19 株式会社日立製作所 バリア同期方法及び計算機
JP5549574B2 (ja) * 2010-12-17 2014-07-16 富士通株式会社 並列計算機システム、同期装置、並列計算機システムの制御方法
JPWO2012127534A1 (ja) * 2011-03-23 2014-07-24 富士通株式会社 バリア同期方法、バリア同期装置及び演算処理装置
DE102011084569B4 (de) * 2011-10-14 2019-02-21 Continental Automotive Gmbh Verfahren zum Betreiben eines informationstechnischen Systems und informationstechnisches System
US9092272B2 (en) * 2011-12-08 2015-07-28 International Business Machines Corporation Preparing parallel tasks to use a synchronization register
JP5974703B2 (ja) 2012-07-20 2016-08-23 富士通株式会社 情報処理装置およびバリア同期方法
FR3021433B1 (fr) * 2014-05-21 2016-06-24 Kalray Systeme de synchronisation inter-processeurs
GB2549239A (en) 2014-11-13 2017-10-18 Advanced Risc Mach Ltd Context sensitive barriers in data processing
JP2017016250A (ja) * 2015-06-29 2017-01-19 日本電気株式会社 バリア同期装置、バリア同期方法及びプログラム
US10346164B2 (en) 2015-11-05 2019-07-09 International Business Machines Corporation Memory move instruction sequence targeting an accelerator switchboard
US10067713B2 (en) 2015-11-05 2018-09-04 International Business Machines Corporation Efficient enforcement of barriers with respect to memory move sequences
US10152322B2 (en) 2015-11-05 2018-12-11 International Business Machines Corporation Memory move instruction sequence including a stream of copy-type and paste-type instructions
US10042580B2 (en) 2015-11-05 2018-08-07 International Business Machines Corporation Speculatively performing memory move requests with respect to a barrier
US10241945B2 (en) 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US10140052B2 (en) 2015-11-05 2018-11-27 International Business Machines Corporation Memory access in a data processing system utilizing copy and paste instructions
US10126952B2 (en) 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device
US9996298B2 (en) 2015-11-05 2018-06-12 International Business Machines Corporation Memory move instruction sequence enabling software control
US10318355B2 (en) * 2017-01-24 2019-06-11 Oracle International Corporation Distributed graph processing system featuring interactive remote control mechanism including task cancellation
US11353868B2 (en) * 2017-04-24 2022-06-07 Intel Corporation Barriers and synchronization for machine learning at autonomous machines
US10509452B2 (en) * 2017-04-26 2019-12-17 Advanced Micro Devices, Inc. Hierarchical power distribution in large scale computing systems
US11461130B2 (en) 2020-05-26 2022-10-04 Oracle International Corporation Methodology for fast and seamless task cancelation and error handling in distributed processing of large graph data
GB2597078B (en) * 2020-07-14 2022-07-13 Graphcore Ltd Communication between host and accelerator over network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02144657A (ja) * 1988-11-26 1990-06-04 Hitachi Ltd 並列演算処理装置
JPH10240549A (ja) * 1997-02-24 1998-09-11 Hitachi Ltd 並列ジョブ多重スケジューリング方法及び装置
JP2005316679A (ja) * 2004-04-28 2005-11-10 Nec Corp 並列演算処理装置
JP2006259821A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 並列計算機の同期方法及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3285629B2 (ja) 1992-12-18 2002-05-27 富士通株式会社 同期処理方法及び同期処理装置
JPH08187303A (ja) 1995-01-10 1996-07-23 Toyoda Gosei Co Ltd トレーニング装置
JP2783192B2 (ja) 1995-06-21 1998-08-06 日本電気株式会社 バリア同期装置
US5940856A (en) * 1997-04-14 1999-08-17 International Business Machines Corporation Cache intervention from only one of many cache lines sharing an unmodified value
JP2003338200A (ja) * 2002-05-17 2003-11-28 Mitsubishi Electric Corp 半導体集積回路装置
JP4276028B2 (ja) * 2003-08-25 2009-06-10 株式会社日立製作所 マルチプロセッサシステムの同期方法
US7340565B2 (en) * 2004-01-13 2008-03-04 Hewlett-Packard Development Company, L.P. Source request arbitration
US7277989B2 (en) * 2004-06-22 2007-10-02 Sun Microsystems, Inc. Selectively performing fetches for store operations during speculative execution
US7627770B2 (en) * 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
JP4471947B2 (ja) * 2005-04-28 2010-06-02 Necエレクトロニクス株式会社 データ処理装置及びデータ処理方法
US7356653B2 (en) * 2005-06-03 2008-04-08 International Business Machines Corporation Reader-initiated shared memory synchronization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02144657A (ja) * 1988-11-26 1990-06-04 Hitachi Ltd 並列演算処理装置
JPH10240549A (ja) * 1997-02-24 1998-09-11 Hitachi Ltd 並列ジョブ多重スケジューリング方法及び装置
JP2005316679A (ja) * 2004-04-28 2005-11-10 Nec Corp 並列演算処理装置
JP2006259821A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 並列計算機の同期方法及びプログラム

Also Published As

Publication number Publication date
WO2008155806A1 (ja) 2008-12-24
US20100095090A1 (en) 2010-04-15
EP2159694A4 (en) 2012-12-26
EP2159694A1 (en) 2010-03-03
EP2159694B1 (en) 2019-03-27
US7971029B2 (en) 2011-06-28
JP5273045B2 (ja) 2013-08-28

Similar Documents

Publication Publication Date Title
JP5273045B2 (ja) バリア同期方法、装置、及びプロセッサ
US9971635B2 (en) Method and apparatus for a hierarchical synchronization barrier in a multi-node system
Foley et al. Ultra-performance Pascal GPU and NVLink interconnect
KR101831550B1 (ko) 다중슬롯 링크 계층 플릿에서의 제어 메시징
US7930470B2 (en) System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
TWI423036B (zh) 用以在雙向環型互連結構上選擇一方向以傳輸封包之方法及儲存有多個可執行指令的機器可讀媒體
US8788879B2 (en) Non-volatile memory for checkpoint storage
KR102355989B1 (ko) 다중 노드 시스템 저전력 관리
CN103744644B (zh) 采用四核结构搭建的四核处理器系统及数据交换方法
WO2009093680A1 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの同期方法
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
US10339059B1 (en) Global socket to socket cache coherence architecture
JP2012043031A (ja) 共有キャッシュメモリ装置
CN111684391B (zh) 全系统低功率管理
JP2010134698A (ja) 情報処理システム
JP2014063278A (ja) 同期処理回路及び同期処理方法
US8867304B2 (en) Command throttling for multi-channel duty-cycle based memory power management
CN114237717A (zh) 一种多核异构处理器片上暂存动态调度管理器
Schmidt Accelerating checkpoint/restart application performance in large-scale systems with network attached memory
Mak et al. Processor subsystem interconnect architecture for a large symmetric multiprocessing system
US9697122B2 (en) Data processing device
EP4195060A1 (en) Data transmission method and system
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
JP2001188764A (ja) マルチプロセッサシステム
Fossum Multi core design for chip level multiprocessing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120803

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130318

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130429

R150 Certificate of patent or registration of utility model

Ref document number: 5273045

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150