JP2012199767A - 電子回路システム - Google Patents
電子回路システム Download PDFInfo
- Publication number
- JP2012199767A JP2012199767A JP2011062448A JP2011062448A JP2012199767A JP 2012199767 A JP2012199767 A JP 2012199767A JP 2011062448 A JP2011062448 A JP 2011062448A JP 2011062448 A JP2011062448 A JP 2011062448A JP 2012199767 A JP2012199767 A JP 2012199767A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- fpga
- data
- pes
- fpga board
- 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.)
- Withdrawn
Links
Landscapes
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システムを提供する。
【解決手段】システムは、複数のPEと、ホストコンピュータに通信可能に接続され、複数のPEのそれぞれと接続し、複数のPEをリング状に接続可能にする電子回路とを備え、電子回路は、複数のPEをリング状に接続した場合に、通信不能となった接続経路の代わりに新たな接続経路を再構成することによって、通信不能となった接続経路に係らない残りのPE間の通信を維持可能にする。
【選択図】図1
【解決手段】システムは、複数のPEと、ホストコンピュータに通信可能に接続され、複数のPEのそれぞれと接続し、複数のPEをリング状に接続可能にする電子回路とを備え、電子回路は、複数のPEをリング状に接続した場合に、通信不能となった接続経路の代わりに新たな接続経路を再構成することによって、通信不能となった接続経路に係らない残りのPE間の通信を維持可能にする。
【選択図】図1
Description
本発明は、電子回路システムに関し、より具体的には、複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システムに関する。
分子軌道法(MO法)を用いて計算をおこなう場合のように、大量な計算を高速に処理するために、複数の専用電子回路(専用プロセッサ)を用いた専用計算機システムが存在する。専用計算機システムでは、専用プロセッサを並列に動作(並列計算)させることによって計算時間の短縮を図る。
一方、人工ニューラルネットワーク(ANN)と呼ばれる機械学習の一手法で小脳をモデル化できる可能性が示唆されている。特に、小脳の中にみられるような多数の入力信号処理をモデル化するためには、大規模かつ高速に応答するANNが必要となる可能性が高い。
専用計算機システムにおける並列計算を用いて処理することによりその計算処理時間の短縮を図ることが可能となる。その場合、従来から専用プロセッサ間を同一の転送時間をもつ通信経路で環状に結ぶ構成(リング状通信アーキテクチャ)をもった電子回路システムがよく使われている。
特許文献1は、複数のマスターノードおよびスレーブノードの各々がリングインターフェースを介して併設された2つのリングの各々に接続する通信ネットワークを開示する。
特許文献1に記載の通信ネットワークでは、2つのリングの一方のリングにおいてスレーブノード間の通信故障が起きた場合、他方のリングを介してそのスレーブノード間の通信をおこなう。
しかし、特許文献1に記載の方法では、2つのリングを用意し、その各々に各ノード(専用プロセッサ)を接続させる必要が有るので、その接続構成が複雑かつ大規模になってしまう。また、そもそも1つのリングのみを有するリング状通信における通信経路の故障に対しては何らその対策を開示するものではない。
したがって、本発明は、複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システム、より具体的には大規模なANN計算を並列計算する専用計算機システムにおいて、通信経路の故障を迅速に回避することによりその信頼性を高め、また高速な計算処理を可能にすることによりその性能を向上させることを目的とする。
本発明は、複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システムを提供する。その電子回路システムは、複数のPEと、ホストコンピュータに通信可能に接続され、複数のPEのそれぞれと接続し、複数のPEをリング状に接続可能にする電子回路とを備え、電子回路は、複数のPEをリング状に接続した場合に、通信不能となった接続経路の代わりに新たな接続経路を再構成することによって、通信不能となった接続経路に係らない残りのPE間の通信を維持可能にすることを特徴とする。
本発明によれば、複数のPEをリング状に接続可能な電子回路システムにおいて、故障や配線不良などにより通信不能となった接続経路を迂回して残りのPE間のリング状通信を維持することができる。これにより、システムの信頼性が向上する。
本発明の一形態によると、電子回路は、複数のPEをリング状に通信可能にする第1のFPGA基板であって、通信不能となった接続経路に係るPEを特定して、当該特定されたPEを除いた残りのPE間の通信を維持可能にする第1のFPGA基板を備える。
本発明によれば、電子回路は、さらに、複数の第1のFPGA基板をリング状に通信可能にする第2のFPGA基板であって、通信不能となった第1のFPGA基板を特定して、当該通信不能な第1のFPGA基板を除いた残りの第1のFPGA基板間の通信を維持可能にする第2のFPGA基板と、ホストコンピュータに通信可能に接続され、複数の第2のFPGA基板をリング状に通信可能にする第3のFPGA基板であって、通信不能となった第2のFPGA基板を特定して、当該通信不能な第2のFPGA基板を除いた残りの第2のFPGA基板間の通信を維持可能にする第3のFPGA基板と、を備える。
本発明の一形態によると、複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システムを提供する。その電子回路システムは、複数のPEをリング状に通信可能にする第1のFPGA基板であって、通信不能となったPEを特定して、当該通信不能なPEを除いた残りのPE間の通信を維持可能にする第1のFPGA基板と、複数の第1のFPGA基板をリング状に通信可能にする第2のFPGA基板であって、通信不能となった第1のFPGA基板を特定して、当該通信不能な第1のFPGA基板を除いた残りの第1のFPGA基板間の通信を維持可能にする第2のFPGA基板と、ホストコンピュータに通信可能に接続され、複数の第2のFPGA基板をリング状に通信可能にする第3のFPGA基板であって、通信不能となった第2のFPGA基板を特定して、当該通信不能な第2のFPGA基板を除いた残りの第2のFPGA基板間の通信を維持可能にする第3のFPGA基板と、を備える。
本発明の一形態によれば、階層化された通信構造をなす第1から第3のFPGA基板を有する電子回路システムにおいて、故障や配線不良などにより通信不能となったPEあるいは各FPGA基板を迂回して他のPE間およびFPGA基板間のリング状通信を維持することができる。これにより、システムの信頼性が向上する。
本発明の一形態によると、第3のFPGA基板は、ホストコンピュータに通信可能に接続され、ホストコンピュータからの信号を複数のPE中の特定された少なくとも1つのPEへ送るべく、当該少なくとも1つのPEとの通信経路を確立可能な前記第2のFPGA基板を特定し、当該第2のFPGA基板にホストコンピュータからの信号を送り、特定された第2のFPGA基板は、少なくとも1つのPEとの通信経路を確立可能な第1のFPGA基板を特定し、当該第1のFPGA基板に受け取ったホストコンピュータからの信号を送り、特定された第1のFPGA基板は、少なくとも1つのPEへ受け取ったホストコンピュータからの信号を送ることにより、ホストコンピュータから少なくとも1つのPEへ至る階層状通信が可能となる。
本発明の一形態によれば、第3のFPGA基板から第1のFPGA基板へ至る経路を特定しながらホストコンピュータからの信号を少なくとも1つのPEへ送ることができ、これによりリング状データ通信から階層状データ通信ヘの切り替えが可能となる。また、送信先として全てのPEを選択することにより、全てのPEへ同一データを送信するブロードキャスト通信もおこなうことができる。これにより、通信の種類(形態)に応じて最適な通信経路を選択しながらその通信速度を高めることが可能となる。
本発明の一形態によると、PEは、メモリと該メモリに格納されたデータを用いて演算処理を行うCPUとを含む演算処理回路と、演算処理回路が出力する演算処理結果から内部通信データを作成する通信データ作成回路と、外部から受信した外部通信データの内容に応じて、演算処理回路内のメモリに演算に必要となるデータを送り、通信データ作成回路から受信した内部通信データを外部に出力する通信処理回路と、を含む。
本発明の一形態によれば、演算処理回路は、通信処理回路が内部通信データを外部に出力する間、あるいは通信データ作成回路が内部通信データを作成する間、これらのデータとは独立した他のデータの演算処理をおこなうことができ、これによりデータ通信(転送)とデータ処理を並行して進めることが可能となる。その結果、並列計算処理をより迅速におこなうことが可能となり、システム全体の性能を向上させることが可能となる。
本発明の一形態によると、第1のFPGA基板、第2のFPGA基板、および第3のFPGA基板の各々は、外部から受信した受信データを一時的に格納する第1バッファと、第1バッファに格納された受信データの内容に応じて、当該受信データの転送経路を決定する経路決定回路と、経路決定回路が決定した経路へ向けて前記受信データを出力する出力回路と、を含む。
本発明の一形態によれば、経路決定回路が受信データの内容に応じて転送経路を決定しながら当該受信データを送信することができ、これによりリング状データ通信と階層状データ通信の双方を切り替えながら実施することが可能となる。
本発明の一形態によると、演算処理回路は、通信処理回路が外部から受信した演算に必要となるデータを前記メモリに送り終わるまでの間、メモリに既に格納された他のデータを用いた演算処理を優先しておこなう。
本発明の一形態によれば、通信を行っている間は通信されるデータを使わない計算を実施することにより、通信時間の影響を軽減し、もしくは無くすことができる。言い換えれば、計算時間によって通信時間を隠す効果があり、いわば通信を計算に隠蔽することが可能となる。これにより、並列計算処理をより迅速におこなうことが可能となり、システム全体の性能を向上させることが可能となる。
本発明の一形態によると、内部通信データ、外部通信データ、および受信データは、パケットのデータ構造を有し、当該パケットの先頭に通信経路を選択するためのコード情報を含む。
本発明の一形態によれば、パケットの先頭にある通信経路を選択するためのコード情報を読み取ることにより、通信経路を選択することが可能となる。
図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の電子回路システムの一般的な構成を示す図である。電子回路システム1は、符号100〜103でその一部が例示される、(R+1)個の階層L(0)〜L(R)から構成される。各階層には、上下の階層と通信を行うFPGA(Field Programmable Gate Array)回路を備える。FPGAは、従来からある、内部の回路構成(配線)をプログラム(変更)可能なICである。階層L(i)に備えられているFPGA回路は(S_i+1)個あり、L(i)−FPGAと呼ぶ。階層の数(R+1)は、任意に決めることができ、少なくとも1個以上の数であれば良い。また各階層のFPGA回路の数も、任意に決めることができ、少なくとも1個以上の数であれば良い。
L(i)−FPGAは、上の階層のL(i+1)−FPGAとの間では、図1の矢印105で例示する上下方向の1対の通信経路で接続する。また下の階層のL(i―1)−FPGAとは、図の矢印106で例示する複数対の通信経路を用いて接続する。この対の数が接続しているL(i―1)−FPGAの数と一致しており、この数は2個以上であれば良い。また、各L(i)−FPGAが接続する下の階層のL(i―1)−FPGAの数は固定でも良く、あるいはL(i)−FPGA毎に異なっても良い。さらに、階層毎に接続する下の階層のFPGAの数が異なっていても良い。
最上層のFPGAであるL(R)−FPGA100は、上の階層の通信経路を通してホストコンピュータ(以下、単に「ホスト」と呼ぶ)10と接続する。また最下層のFPGAであるL(0)−FPGA103は、下の階層の通信経路を通して、図に示した複数個のPE18と接続する。L(0)−FPGA103と接続するPE18の数は、少なくとも2個以上であれば良い。
図1のシステムは、1枚あるいは複数枚のボードから構成される。ボードの構成としては、L(R)−FPGA以下のシステムを全て1枚のボードに搭載しても良く、あるいは1個のL(i)−FPGA毎に異なるボードに搭載しても良い。また各階層のL(i)−FPGAをまとめて1枚のボードに搭載しても良く、あるいは複数階層ずつまとめて1枚のボードに搭載しても良い。またPEに関しても同様に、1個のPEを1枚のボードに搭載しても良く、あるいは複数個のPEを1枚のボードに搭載してもよい。このように、本発明は、図1に例示されるシステムに関して、考えられるあらゆるボードの組み合わせによって実現可能である。
次に、本発明の一実施形態として3階層の場合を例にとり、本発明の実施形態の詳細について説明する。なお、上述したように、本発明の階層化は3階層に限られず、1階層あるいは2階層、または4階層以上で任意に設定することができることは言うまでもない。
図2は、電子回路システムの構成を示す図である。電子回路システム1は、ホスト10に対して、L2―FPGA基板12、L1―FPGA基板14およびL0―FPGA基板16が階層状に接続する構成を有する。本明細書では、このFPGA基板の階層状の接続構成を階層状ボード構成とも呼ぶ。各FPGA基板は、後述する図3に例示されるように、内部にFPGA回路を含む。
L2―FPGA基板12は、ホスト10と直接あるいはリング状の通信網を介して相互に通信可能に接続する。1つのL2―FPGA基板12には、L1(0)からL1(k)までの(k+1)個(kは任意の整数)のL1のFPGA基板14が相互に通信可能に接続される。
各々のL1―FPGA基板14には、2つのL0―FPGA基板16が通信可能に接続される。(k+1)個のL1―FPGA基板14に対しては、全体で(M+1)個(M+1=2k+2)のL0―FPGA基板16が相互に通信可能に接続される。各々のL0―FPGA基板16には、2つのプロセッサエレメント(PE)18が通信可能に接続される。(M+1)個のL0―FPGA基板16に対しては、全体で(N+1)個(N+1=2(M+1))のPE18が相互に通信可能に接続される。各PE18はメモリ20に接続する。メモリ20はDRAM等の記憶手段からなる。
図3は、本発明の一実施例に従う、L0〜L2のFPGA基板間の接続構成、言い換えれば階層状ボード構成における接続構成を示す図である。図3の接続構成は、図2の階層状ボード構成1において、リング状通信を実現可能とするための構成である。図3(a)は、L2―FPGA基板12と、L1―FPGA基板14と、L0―FPGA基板16との間の接続構成を示す図である。図3(b)は、(a)に示される1つのL1―FPGA基板14と4つのL0―FPGA基板16との間の接続構成を示す図である。図3(c)は、1つのL0―FPGA基板16内の接続構成を示す図である。
図3(a)において、L2―FPGA基板12は、L2―FPGA回路13を内蔵する。L2―FPGA回路13内では、図に示されるように、4つのL1―FPGA基板14の入出力がリング状に接続可能にプログラム(配線)されている。図では、L1―FPGA基板14の(3)番から(0)番へ向けて信号が伝搬可能になっている。L1―FPGA基板14の各々には、4つのL0―FPGA基板16が接続されている。ホスト10は、L1―FPGA基板14の(0)番に接続するL0―FPGA基板16の左端の1つに接続し、図3(c)から明らかなように、PE(0)とのみ通信可能に接続する。
図3(b)において、(a)の場合と同様に、L1―FPGA基板14は、L1―FPGA回路15を内蔵する。L1―FPGA回路15内では、図に示されるように、4つのL0―FPGA基板16の入出力がリング状に接続可能にプログラム(配線)されている。図では、L0―FPGA基板16の(3)番から(0)番へ向けて信号が伝搬可能になっている。
図3(c)において、(a)と(b)の場合と同様に、L0―FPGA基板16は、L0―FPGA回路17を内蔵する。L0―FPGA回路17内では、図に示されるように、4つのPE18の入出力がリング状に接続可能にプログラム(配線)されている。図では、PE(3)番からPE(0)番へ向けて信号が伝搬可能になっている。各PEにはメモリ20が通信可能に接続されている。ホスト10は、PE(0)とのみ通信可能に接続することは既に述べた通りである。このように、図3の階層状ボード構成によって64個(=4x4x4)のPEをリング状に接続することが可能となる。なお、接続するPEの数やボードの枚数はこの例に限定されず、電子回路システムの規模に応じて任意に設定することができる。
次に、図4と図5を参照しながら、図3の電子回路システムにおいて、通信不能となる障害が発生した場合の対応について説明する。図4は、L0―FPGA基板16とL1―FPGA基板14との間での配線故障が発生した場合の対応を示す。図5は、L1―FPGA基板14とL2―FPGA基板12との間での配線故障が発生した場合の対応を示す。
図4において、L0―FPGA基板の(1)番から(0)番へ向かう途中の×印で示した位置Aが配線故障箇所を示している。L0―FPGA基板の(1)番から(0)番へ信号伝搬が不能となっている。この場合、図4(b)に示すように、L1―FPGA回路15内において、基板L0―FPGA基板の(1)番をバイパスして、L0―FPGA基板の(2)番から(0)番へ向かう矢印Pで示される経路を作り、故障箇所Aを通信経路から除外する。これにより、正常に動作するリング状通信経路を構成できる。具体的には、矢印Pで示される経路ができるように、L1―FPGA回路15内の配線(接続構成)を変更する。
図5において、L1―FPGA基板の(1)番から(0)番へ向かう途中の×印で示した位置Bが配線故障箇所を示している。L1―FPGA基板の(1)番から(0)番へ信号伝搬が不能となっている。この場合、図5(b)に示すように、L2―FPGA回路13内において、L0―FPGA基板の(1)番から(3)番へ向かう矢印Qで示される経路を作り、故障箇所Bを通信経路から除外する。具体的には、矢印Qで示される経路ができるように、L2―FPGA回路13内の配線(接続構成)を変更する。同時に、ホスト10との接続箇所もL0―FPGA基板の(0)番から(1)番へ変更する。これにより、正常に動作するリング状通信経路を構成できる。
このように、本発明の階層状ボード構成によって、使用できるPE数は若干減少するものの、配線故障のような基板間の通信故障が発生した場合でもFPGA回路の配線構成を変更することにより、正常に動作するリング状通信を比較的簡単に構成することができる。
次に、図6と図7を参照しながら、本発明の電子回路システムにおいて、通信の種類に応じて通信経路を変更する例について説明する。最初にこの通信経路の変更が何故必要になるのかについて説明する。
図3に例示した本発明の階層状ボード構成を使ってリング状通信を行い、大規模ANNを実行する方法では、PE間の通信に要する時間が部分的に長くなってしまうという現象が発生する。例えば図3において、(c)の一方端のPE(0)から他方端のPE(3)へ向かう通信は、5つのFPGA基板(回路)を通過するため(L0−>L1−>L2−>L1−>L0)、他のPE間通信よりも時間がかかってしまう。本発明では、この問題を以下に述べる通信経路の変更と、後述するPE回路構成およびその動作アルゴリズムの工夫によって改善する。
図3に例示した階層状ボード構成では、リング状通信以外に、ホストから全てのPEへデータを同時に転送するブロードキャストと呼ばれる通信経路を構成することもできる。したがって、本発明では、以下に述べるように、通信の種類、すなわち階層状通信かリング状通信かで通信経路を切り替える。
図6と図7の構成は、基本的に図3の構成と同様であり、ホスト10に対して、L2―FPGA基板12、L1―FPGA基板14およびL0―FPGA基板16が階層状に接続する構成を有する。図3との対比では、図3の階層状ボード構成では、各層の要素を4つ集めて1つ上の階層に接続していたが、図6と図7の構成では簡略化のため、集める要素数を2としている。またホスト10は、図3ではPE18の1つに直接接続していたが、図6と図7の構成では次に述べる階層状通信を行うため、L2―FPGA基板12に接続する。
図6の階層状通信の経路は、ホスト10と各PE18の間の通信に適している。この通信経路には、各FPGA基板の中で実線の上向き矢印で示した上りと、破線の下向き矢印で示した下りの2つがある。このうち下りの経路では、ホスト10から1つのPE18へデータを転送する場合と、ホストから全てのPEへデータを同時に転送する場合の2通りの通信が行われる。後者の通信を「ブロードキャスト」と呼ぶ。図6の階層状通信は、特にこのブロードキャストに有効である。なぜならば、上述したようにリング状通信経路を使った場合は、全てのPEを通過する時間を要するのに対し、図6の階層状通信経路を使ってブロードキャストを実施したときには3つの階層のFPGA基板を通過する時間で済むからである。従って、これらの通信を行うときには、図2の電子回路システムの通信経路を図6のように切り替える。
一方、リング状通信を行う場合は、図7に示すように通信経路を切り替える。この場合、各FPGA基板内において、図3で示したように、順次隣りの要素へ信号が伝搬される。図7では、図の右から左へ向けて信号が伝搬するようにリング状通信経路が作られる。このように、本発明では通信の種類に応じて、通信経路を階層状通信の経路またはリング状通信の経路に切り替えることにより、通信時間の短縮化を実現する。そのため、本発明では、後述するように、各FPGA基板(回路)やPEが、伝搬する信号からそれぞれの通信の種類を早期に判定し、図6または図7の構成を動的に選択しながらデータを出力する。このしくみによって高速な通信経路の切り替えを可能にする。
次に、PE回路構成およびその動作アルゴリズムの工夫について説明する。図8はPEの回路構成を示す図である。図8のPE18は、プロセッサ回路30と、通信データ処理回路31と、通信データ生成回路32と、外部メモリインターフェイス回路33を含む。プロセッサ回路30では、演算回路35が内部データメモリ36との間で浮動小数点表現のデータを読み書きしながら、プログラムメモリ37に格納されたプログラムに従った特定の演算手順で演算を実行する。
一方、通信処理回路31は、PE18の中で通信の制御を担う回路であり、外部から入力される「外部通信データ」を読み出し、通信の内容に応じて外部メモリやプロセッサ回路30中の内部データメモリ36への読み書きを行ったり、外部メモリインターフェイス回路33を通して、外部メモリ20との間の読み書きを行ったり、あるいは通信データを出力する。また、通信データを生成するときは、通信処理回路31は、通信データ生成回路32から「内部通信データ」を読み込んで出力処理を行う。
図8のPEの回路構成において、プロセッサ回路30は可能な限り通信には関与しないように工夫している。例えば、ある演算処理例では、プロセッサ回路30では、演算回路35による演算結果を内部データメモリ36に書き込むと同時に、通信データ生成回路32にも書き込むだけである。このデータに対する通信処理は、通信データ生成回路32で一括して行う。通信データ生成回路32は、演算結果が書き込まれたことを検出すると、その演算結果(データ)に通信の種類を示す信号などの制御情報を付加して「内部通信データ」を生成し、それを通信処理回路31に出力してPEの外部に出力する。このように通信処理回路31が動作している間にプロセッサ回路30では別の計算を並行して実施できるので、効率化が図れる。
また、他の処理例では、別のPEから取得したデータを使って計算を行う。このとき、通信処理回路31は、取得したデータを、プロセッサ回路30を関与させることなく内部データメモリ36への書き込みを実施する。このため、プロセッサ回路30は、そのデータが内部データメモリ36に書き込まれるまでの間別の計算を実行することができ、効率化が図れる。
図9はPEの回路構成の詳細図である。図9は図8をより詳細にしたものである。図9のFIFO_I、FIFO_R、Select、Master_PE、Slave_PEは、図8の通信処理回路31を構成する。FIFO_IとFIFO_Rは、入力または出力するパケットを一時的に格納するためのFIFOと呼ばれるメモリである。Master_PEは、FIFOからパケットを受け取って、その内容を解釈して振り分ける回路である。Slave_PEは、Master_PEからパケットの転送要求を受け取って、パケットをUOから出力する回路である。
図9のRing_Outは、図8の通信データ生成回路32と同様の機能をもち、書き込まれたデータから自動的にパケットを生成して出力する。図9のプロセッサ回路30の内容は、図8とほぼ同じであるが、内部データメモリに対して書き込み、読み出しを行うMem_IF回路を明示している。また図8の演算回路35はFUと表示している。
図8の外部メモリ20とインタフェース回路33は概略のみ表示していたが、図9では2個のメモリ(Mem0、Mem1)とともにインタフェース回路の接続を明示した。外部メモリは高速ダイナミックメモリインタフェースを有するDDR2 SDRAMを使用することを想定している。Mem0は、主にデータを格納し、メモリインターフェース回路DDR2_IF0はMaster_PEとの間、またはプロセッサ回路30のData_Memoryとの間でやりとりする。またMem1は、主にプロセッサ回路30のプログラムメモリを格納するため、メモリインターフェース回路DDR2 IF1はMaster_PEとの間のやりとり、またはプログラムメモリへの書き込みを行う。
通信処理回路の処理内容についてさらに説明する。FIFOは、UIから入力するパケットを格納するFIFO_Iと、Ring_Outで生成するパケットを格納するFIFO_Rの2種類がある。それぞれにパケットが入っている場合、Select回路によってそのうちの1つを選択してMaster_PEに送る。Master_PEではパケットの内容を見て、外部メモリ、内部メモリとの間の読み書きを行う。さらにパケットを出力するときには、Slave_PEへパケットを転送する。Master_PEが内部メモリとの間の読み書き機能をもっているため、FUにおける計算の効率化が可能である。
次に、PEの動作アルゴリズムの工夫について説明する。図8、図9のプロセッサ回路の内部にあるプログラムメモリに格納する演算手順を変えることによって工夫を施す。その内容は、データを転送している間はPEでそのデータを使用しない演算を行っておくことにより転送待ち時間をなくす、というものである。この内容について、以下に具体的に説明する。
図10は、リング状通信を行う隣り合う2つのPE間の信号の流れを示す図である。PE#NからPE#(N+1)にリング状通信経路の一部である通信経路Nを通して転送を行うものとする。図11と図12は、図10のPE#NとPE#(N+1)との間での計算と通信の時間推移を示す図である。図11は、従来からの計算手順による場合の例であり、図12は本発明の計算手順を用いた場合の例である。図11と図12において、y1 (1)、y2 (1)、、、y5 (1)はPE#Nでの演算によって生成されるデータ、y6 (1)、y7 (1)、、、y10 (1)はPE#(N+1)での演算によって生成されるデータを意味するものとする。
図11において、まずPE#Nにおいて計算1を行い、時刻Tgenでy1 (1)を生成する。次にy1 (1)を通信経路Nに送り出し、転送後時刻TarrにPE#(N+1)に到着する。一方、PE#(N+1)でも計算2と呼ぶ同様の計算を行っており、PE#Nがy1 (1)、y2 (1)、、、y5 (1)を求めるのと同様のタイミングでy6 (1)、y7 (1)、、、y10 (1)を求めるものとする。またその後、y10 (1)の計算が終了した時刻Tcで、PE#Nから送られてくるy1 (1)、y2 (1)、、、y5 (1)を使った計算をすぐに開始するものとする。このとき、時刻TcでPE#(N+1)にy1 (1)が到着している必要がある。ところが、通信経路Nではy1 (1)の転送に時間がかかっているためTc<Tarrとなり、PE#(N+1)においてTarrまでの期間は計算を全く行わない待ち時間になってしまう。
階層状ボード構成のように一部の通信経路に通信時間が長いものがあると、ここで説明した待ち時間の発生によって計算の効率が低下するためANN計算の性能に影響を及ぼす。この課題の対策として、PE#(N+1)での計算2の順番を変更し、yk (1)のうち転送を待つ必要がない、自ら計算して生成したデータを最初に使う。本発明では、最初にPE#(N+1)で求められたy6 (1)、y7 (1)、、、y10 (1)を使った計算を行い、その後y1 (1)、y2 (1)、、、y5 (1)などの他のPEで求められた値を使った計算を行う。このような計算手順に変更したときの計算と通信の時間推移を図11に示す。
図12において、PE#(N+1)での計算1によってy6 (1)、y7 (1)、、、y10 (1)を生成する時刻も示した。この場合、図11にも示した時刻Tcにおいて、転送中のy1 (1)ではなく、y6 (1)を使用した計算を開始する。y6 (1)の値は、PE#(N+1)において時刻Tgen2ですでに求められているため、この計算は即座に開始できる。その後、y10 (1)を使った計算までを行った後、時刻Tc2においてデータy1 (1)を使った計算を開始する。このとき、y6 (1)、y7 (1)、、、y10 (1)を使った計算に時間がかかるようであれば、図12のようにTc2>Tarrとすることができるため、y1 (1)を使った計算はTc2ですぐに開始できる。その結果、図11の待ち時間を入れずに同じ内容の計算を行えるため、ANNの計算時間は通信時間の影響を受けることがなくなる。また、y6 (1)、y7 (1)、、、y10 (1)を使った計算が速くできて、Tc2<Tarrとなってしまう場合には、図11と同様待ち時間が必要になるが、この待ち時間の長さは短くてすむ。
このように計算の順番に工夫を施し、通信を行っている間は通信されるデータを使わない計算を実施することにより、通信時間の影響を軽減し、もしくはなくすことができる。この手法は計算時間によって通信時間を隠す効果があるので、いわば「通信を計算に隠蔽する」ことができる。
次に、図13と図14を参照しながら、本発明の通信されるデータ構造について説明する。図13は、階層状通信用のパケットの構成を示す図である。図14は、リング状通信用のパケットの構成を示す図である。
図13の階層状通信用のパケットの構成において、パケットは複数個の32ビットのデータから構成される。通信を行うときは左から順番に32ビットデータが通信路に送られる。図13でStartと示したデータは、スタートパケットと呼ばれる通信の開始を示すコードで、固定値0x5555AAAAである。これはFPGA回路などの回路がパケット処理の開始を認識するためのものである。この機能に加えて、スタートパケットは、通信経路を選択するための情報としても使用する。またHeaderと示したデータはヘッダパケットと呼ばれ、読み出しまたは書き込みなどのコマンドを示すCmd、データ長を示すLength、データのソースとなるデバイスIdを示すSource ID、データのターゲットとなるデバイスを示すTarget IDなどのパケットの制御情報を表すフィールドを含んでいる。他に、同図に示したように、ソースアドレス(Source Ad)、ターゲットアドレス(Target Ad)、およびデータを格納するパケット(Data)も含んでいる。これらの情報によって、データ送付元、および送付先が指定できる。
次に、図13のパケット構成を用いて図6に例示されるような階層状通信を行う場合の通信内容について説明する。通信を行うときには、まず要求の内容に応じて、ホスト10が図13の(a)または(c)で示すリクエストパケットを送り出し、PE18に届ける。その後、PE18は、前述のヘッダパケットに含まれるコマンドに従って読み出しまたは書き込み操作を行った後、図13の(b)または(d)で示すアクノリッジパケットをホスト10に返す。このときホスト10からの書き込みの場合はリクエストパケットに、読み出しの場合はアクノリッジパケットに、それぞれデータが付加される。また途中のL2、L1、L0のFPGA基板12、14、16は、上位階層からの入力端子、あるいは下位階層からの入力端子を通して、リクエストパケットやアクノリッジパケットを入力し、それに含まれるヘッダパケットのTarget IDで指定される送り先に届くように通信経路を選択する。そして、下位階層への出力端子、あるいは上位階層への出力端へ振り分けてパケットをそのまま出力する。
例えば図6の外付けメモリ20からデータを読み出すときは、ホスト10は、図13(a)に示した読み出しリクエストパケットを出力し、下りの経路を通して各FPGA基板において経路を選択しながらパケットを振り分ける。次にPE18は、図13の(b)に示した読み出しアクノリッジパケットの最後に読み出したデータを付加して出力し、上りの経路を通してホスト10に送る。また、ホスト10から全てのPEにデータをブロードキャストするときは、図13(c)に示す書き込みリクエストパケットを通してデータを送り出す。このとき、ヘッダ部のTarget IDに、ブロードキャストであることを示すIDを設定する。次に、L0、L1、L2のFPGA基板12、14、16は、上位階層から来るパケットのヘッダ部のTarget IDがブロードキャストを示していることを判別して、全ての下り出力に同時に同じパケットを送出する。このようにして、最終的に全てのPE18に同時にパケットが渡され、各FPGA基板(回路)はローカルメモリへデータを書き込む。
図14のリング状通信用のパケットの構成は、図13に示した階層状通信用パケットと比較して、通信の開始を示すスタートパケットが異なる。図13のスタートパケットは、固定値0x5555AAAAであるが、図14のスタートパケット(Start2)はこれとは異なる固定値とし、通信の内容(形態)に応じて、例えば0x5578AAE0、0x5578AAE1のような値をとる。このスタートパケットは、通信経路の選択などにも使用する。またスタートパケット以外の構成は、図13の(b)や(c)とほぼ同じ構成である。図7で例示されるリング状通信を行うときは必ず通信の起点となるPEが存在する。その起点となるPEは、リング状通信のヘッダパケットのSource IDに自らのPE情報を入れた上で、リング状通信経路を通して図13に示したパケットを送り出す。このパケットは次のPEが受け取り、適切な処理を行う。
次に、図15と図16を参照しながら、本発明のL0〜L2のFPGA回路の構成について説明する。図15は、L0およびL1のFPGA回路15、17の構成を示す図である。図16は、L2のFPGA回路13の構成を示す図である。
図15において、FIFO_UI、FIFO_DIL、FIFO_DIRと記した回路は、図9の場合と同様に、入力するパケットを一時的に格納するためのFIFOと呼ばれるメモリである。パケットが例えば複数個の32ビットデータから構成されている場合、これらのFIFOは32ビットデータを順番に格納し、格納した順番に出力する。また、Master_UI、Master_DIL、Master_DIRとした回路は、それぞれFIFOからパケットを受け取って、その内容を解釈して振り分ける回路である。さらに、Slave_UO、Slave_DOR、Slave_DIRと記した回路は、それぞれMasterからパケットの転送要求を受け取って、複数個のMasterからの要求の調停を行って、順番にパケットを出力する回路である。
図6に例示したような階層状通信を行うときには、MasterからSlaveへの矢印上でHierと示した経路で転送要求を行い、リング状通信を行うときはRingと示した経路で転送を行う。以下に、Master_UIを例にとってMasterの動作を説明する。パケットのスタートコードが0x5555AAAAであるときは階層状通信と判定する。そして、続くヘッダパケットの値に応じて、パケット送付先のアドレスやデータのサイズ、読み出しか書き込みか、という情報を読み取り、経路の選択や送るパケットの構成などの制御を行う。パケットの送付先が単一のPEである場合は、接続先のSlaveに応じてSlave_DOLまたはSlave_DORを選択してパケットを送る。またブロードキャストである場合は、Slave_DOLとSlave_DORの両方に、同時にパケットを送る。またパケットのスタートコードが例えば上述した0x5578AAE0または0x5578AAE1になっているときにはリング状通信と判定し、無条件でSlave_DORにパケットを送る。このようにパケットのスタートコードによって経路を選択するため、リアルタイムで通信経路の切り替えが可能である。
次に、Slave_DOLを例にとってSlaveの動作を説明する。L0またはL1のFPGA回路15、17に対して、DIRからリング状通信のパケットを入力すると同時に、UIから階層状通信を通したブロードキャストの要求を入力する、という状況が発生する可能性がある。この場合は、Slave_DOLは、調停を実施して2つのパケットの処理の順序を決定し、その順序に従って処理してDOLから出力する。
図16において、L2のFPGA回路13は、図15のL0およびL1のFPGA回路15、17と同様に、FIFO、Master、Slaveの各回路で構成されている。これらの回路の動作内容は図15の対応する回路とほぼ同様である。すなわち、Master_UI、Master_DIk(k=0〜7)とした回路は、それぞれFIFOからパケットを受け取って、その内容を解釈して振り分ける回路である。Slave_UO、Slave_DOk(k=0〜7)と記した回路は、それぞれMasterからパケットの転送要求を受け取って、複数個のMasterからの要求の調停を行ってパケットを出力する回路である。そして、階層状通信を行うときには、MasterからSlaveへの矢印上でHierと示した経路で転送要求を行い、リング状通信を行うときはRingと示した経路で転送を行う。
以上、本発明の実施の形態について説明したが、本発明はこのような実施形態に限定されることはなく、本発明の趣旨を逸脱しない範囲において改変して用いることができる。
10 ホストコンピュータ、
12 L2のFPGA基板、
13 L2のFPGA回路、
14 L1のFPGA基板、
15 L1のFPGA回路、
16 L0のFPGA基板、
17 L0のFPGA回路、
18 プロセッサエレメント(PE)、
20 メモリ、
30 プロセッサ回路
12 L2のFPGA基板、
13 L2のFPGA回路、
14 L1のFPGA基板、
15 L1のFPGA回路、
16 L0のFPGA基板、
17 L0のFPGA回路、
18 プロセッサエレメント(PE)、
20 メモリ、
30 プロセッサ回路
Claims (9)
- 複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システムであって、
複数のPEと、
ホストコンピュータに通信可能に接続され、前記複数のPEのそれぞれと接続し、前記複数のPEをリング状に接続可能にする電子回路とを備え、
前記電子回路は、前記複数のPEをリング状に接続した場合に、通信不能となった接続経路の代わりに新たな接続経路を再構成することによって、当該通信不能となった接続経路に係らない残りのPE間の通信を維持可能にすることを特徴とする、電子回路システム。 - 前記電子回路は、前記複数のPEをリング状に通信可能にする第1のFPGA基板であって、前記通信不能となった接続経路に係るPEを特定して、当該特定されたPEを除いた残りのPE間の通信を維持可能にする第1のFPGA基板を備える、請求項1に記載の電子回路システム。
- 前記電子回路は、さらに、
複数の前記第1のFPGA基板をリング状に通信可能にする第2のFPGA基板であって、通信不能となった第1のFPGA基板を特定して、当該通信不能な第1のFPGA基板を除いた残りの第1のFPGA基板間の通信を維持可能にする第2のFPGA基板と、
前記ホストコンピュータに通信可能に接続され、複数の前記第2のFPGA基板をリング状に通信可能にする第3のFPGA基板であって、通信不能となった第2のFPGA基板を特定して、当該通信不能な第2のFPGA基板を除いた残りの第2のFPGA基板間の通信を維持可能にする第3のFPGA基板と、を備える請求項2に記載の電子回路システム。 - 複数のプロセッサエレメント(PE)を用いて並列計算をおこなう電子回路システムであって、
複数のPEをリング状に通信可能にする第1のFPGA基板であって、通信不能となったPEを特定して、当該通信不能なPEを除いた残りのPE間の通信を維持可能にする第1のFPGA基板と、
複数の第1のFPGA基板をリング状に通信可能にする第2のFPGA基板であって、通信不能となった第1のFPGA基板を特定して、当該通信不能な第1のFPGA基板を除いた残りの第1のFPGA基板間の通信を維持可能にする第2のFPGA基板と、
ホストコンピュータに通信可能に接続され、複数の第2のFPGA基板をリング状に通信可能にする第3のFPGA基板であって、通信不能となった第2のFPGA基板を特定して、当該通信不能な第2のFPGA基板を除いた残りの第2のFPGA基板間の通信を維持可能にする第3のFPGA基板と、を備える電子回路システム。 - 前記第3のFPGA基板は、ホストコンピュータからの信号を前記複数のPE中の特定された少なくとも1つのPEへ送るべく、当該少なくとも1つのPEとの通信経路を確立可能な前記第2のFPGA基板を特定し、当該第2のFPGA基板にホストコンピュータからの信号を送り、
前記特定された第2のFPGA基板は、前記少なくとも1つのPEとの通信経路を確立可能な前記第1のFPGA基板を特定し、当該第1のFPGA基板に受け取った前記ホストコンピュータからの信号を送り、
前記特定された第1のFPGA基板は、前記少なくとも1つのPEへ受け取った前記ホストコンピュータからの信号を送ることにより、前記ホストコンピュータから前記少なくとも1つのPEへ至る階層状通信が可能となる、請求項3または4に記載の電子回路システム。 - 前記PEは、
メモリと該メモリに格納されたデータを用いて演算処理を行うCPUとを含む演算処理回路と、
演算処理回路が出力する演算処理結果から内部通信データを作成する通信データ作成回路と、
外部から受信した外部通信データの内容に応じて、演算処理回路内のメモリに演算に必要となるデータを送り、通信データ作成回路から受信した内部通信データを外部に出力する通信処理回路と、を含む請求項1〜5のいずれかに記載の電子回路システム。 - 前記第1のFPGA基板、前記第2のFPGA基板および前記第3のFPGA基板の各々は、
外部から受信した受信データを一時的に格納する第1バッファと、
第1バッファに格納された受信データの内容に応じて、当該受信データの転送経路を決定する経路決定回路と、
経路決定回路が決定した経路へ向けて前記受信データを出力する出力回路と、を含む請求項3または4に記載の電子回路システム。 - 前記演算処理回路は、前記通信処理回路が外部から受信した前記演算に必要となるデータを前記メモリに送り終わるまでの間、前記メモリに既に格納された他のデータを用いた演算処理を優先しておこなう、請求項6に記載の電子回路システム。
- 前記内部通信データ、前記外部通信データ、および前記受信データは、パケットのデータ構造を有し、当該パケットの先頭に通信経路を選択するためのコード情報を含む、請求項7に記載の電子回路システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011062448A JP2012199767A (ja) | 2011-03-22 | 2011-03-22 | 電子回路システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011062448A JP2012199767A (ja) | 2011-03-22 | 2011-03-22 | 電子回路システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012199767A true JP2012199767A (ja) | 2012-10-18 |
Family
ID=47181548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011062448A Withdrawn JP2012199767A (ja) | 2011-03-22 | 2011-03-22 | 電子回路システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012199767A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020204913A (ja) * | 2019-06-17 | 2020-12-24 | 富士通株式会社 | 演算処理装置、及び情報処理装置 |
-
2011
- 2011-03-22 JP JP2011062448A patent/JP2012199767A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020204913A (ja) * | 2019-06-17 | 2020-12-24 | 富士通株式会社 | 演算処理装置、及び情報処理装置 |
JP7331482B2 (ja) | 2019-06-17 | 2023-08-23 | 富士通株式会社 | 演算処理装置、及び情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6856612B2 (ja) | 多層相互接続による分散型プロセッサを有する処理システム | |
US10348563B2 (en) | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology | |
US8601423B1 (en) | Asymmetric mesh NoC topologies | |
US8045546B1 (en) | Configuring routing in mesh networks | |
US8151088B1 (en) | Configuring routing in mesh networks | |
JP2019095861A (ja) | ニューラルネットワーク装置 | |
JP2010218364A (ja) | 情報処理システム、通信制御装置および方法 | |
KR20210033996A (ko) | 전용 저 레이턴시 링크를 사용한 다수의 하드웨어 가속기에 대한 통합된 어드레스 공간 | |
WO2014113646A1 (en) | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification | |
JPWO2008155806A1 (ja) | バリア同期方法、装置、及びマルチコアプロセッサ | |
JP4818920B2 (ja) | 複数のプログラム可能なプロセッサを有する集積データ処理回路 | |
US9781043B2 (en) | Identification of internal dependencies within system components for evaluating potential protocol level deadlocks | |
US20140359195A1 (en) | Crossbar switch, information processing apparatus, and information processing apparatus control method | |
CN112306946B (zh) | 一种多核处理器及其执行复杂计算的方法 | |
JP5680466B2 (ja) | 並列処理システム及び並列処理システムの動作方法 | |
JPWO2008126471A1 (ja) | 半導体集積回路およびその試験方法 | |
US20230305991A1 (en) | Network Computer with Two Embedded Rings | |
US9170979B2 (en) | Converging interconnect node controlling operation related to associated future item in dependence upon data predicted based on current transaction data item passing through | |
CN108541365B (zh) | 用于交换机中拥塞信息的分发的设备和方法 | |
JP2016162014A (ja) | データ転送制御装置、データ転送制御プログラム、および並列計算システム | |
US20080052429A1 (en) | Off-board computational resources | |
JP2012199767A (ja) | 電子回路システム | |
US20080126472A1 (en) | Computer communication | |
US20080052490A1 (en) | Computational resource array | |
JP2008204335A (ja) | 半導体ストレージ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140603 |