JP4483991B2 - 高速pe間データ再配置機能を有するプロセッサアレイシステム - Google Patents
高速pe間データ再配置機能を有するプロセッサアレイシステム Download PDFInfo
- Publication number
- JP4483991B2 JP4483991B2 JP2008502796A JP2008502796A JP4483991B2 JP 4483991 B2 JP4483991 B2 JP 4483991B2 JP 2008502796 A JP2008502796 A JP 2008502796A JP 2008502796 A JP2008502796 A JP 2008502796A JP 4483991 B2 JP4483991 B2 JP 4483991B2
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- pes
- block
- buffer means
- selector
- 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.)
- Expired - Fee Related
Links
- 238000012546 transfer Methods 0.000 claims abstract description 360
- 239000000872 buffer Substances 0.000 claims abstract description 167
- 230000008878 coupling Effects 0.000 claims description 49
- 238000010168 coupling process Methods 0.000 claims description 49
- 238000005859 coupling reaction Methods 0.000 claims description 49
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 101000579647 Penaeus vannamei Penaeidin-2a Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
本発明は、オンチップ上に多数のプロセッシングエレメント(PE)を相互結合したプロセッサアレイシステムに関する。
【背景技術】
【0002】
従来より、ビデオ信号などの画像処理用にオンチップ一次元プロセッサアレイあるいはそれに構成が類似したSIMD(Single Instruction Multiple Data)命令を有するメディアプロセッサが用いられている。例えば非特許文献1に提示されているビデオ画像認識処理に向けた一次元プロセッサアレイでは、図7に示すように、一端から順に画像を行単位で入力していき、そして隣接PE同士には隣接する1〜数列分の画像列を割り付けた上で、SIMD型制御に基づき、各PEは、制御プロセッサ(CP)から放送される命令を自ローカルメモリ上のデータに適用することにより、PE数分だけの並列処理を実現する。
【0003】
【特許文献1】
特開平5−342184号公報
【非特許文献1】
京 昭倫著「128個の4ウェイVLIW型RISCコアを集積した車載向け動画認識LSI」電子情報通信学会研究会報告、集積回路研究会(ICD), 2003年5月、Vol.103,No.89,pp.19−24
【発明の開示】
【発明が解決しようとする課題】
【0004】
一方、画像処理の中でも、特に画像に対し認識処理を行う場合では、最初の段階でこそ全画素を対象に行われるエッジ検出処理などのように、処理すべき対象データが全PE上に平等に存在するが、処理が進むに連れ、処理すべき対象データがPE間で均一でなくなってしまうことが多い。
【0005】
例えば多くの画像認識処理では、それまでの処理で、画像内の幾つかの(矩形)領域を認識対象物が存在する箇所として特定すると、それらの候補領域のみが以降の処理対象となる。また、それらの候補領域が、例えば図8に模式的に示したように、お互いに重なりを持つような位置関係で多数見つかる場合が多いことも一つの特徴である。
【0006】
ところが、例えば非特許文献1のように、画像列を単位にPEへのデータ割付けを行っている一次元プロセッサアレイでは、領域間で、列方向での位置的な重なりがあると、通常は重なりが発生した画像列の処理を受け持つPE(例えば図9(a)のPEN−2)がそうでないPEと比べ、重なりの回数分に比例して処理量が増え、PE間で負荷が不均一な状態となり処理性能が低下する。
【0007】
こうした処理負荷の不均一性を解消するためには、図9(b)に示すように、複数の矩形領域内画素データを、そっくりPE間で移動するという画素データの再配置処理を行う必要がある。従来の一次元プロセッサアレイ上で、そうした画素データ再配置処理を実現するためには、PE数が1行分の画素数と同様にNであるとすると、図10に示すように、CPを介する形で、N個の画素を1個ずつ逐次的にPEからPEへと移動することが、最も効率のよい方法になる。
【0008】
カウンタCにNをセットする(ステップ1000)。
【0009】
カウンタCがゼロとなるまで繰り返す。ステップ1001の判定においてカウンタCが非ゼロの場合、以下の処理を行い、ゼロの場合終了する。
【0010】
PE番号がCのPE上のKをリードする(ステップ1002)。
【0011】
TMPをC+Kとする(ステップ1003)。
【0012】
PE番号がTMPのPE上のDをリードする(ステップ1004)。
【0013】
PE番号がCのPE上のTにDをライトする(ステップ1005)。
【0014】
CをC−1にセットし(ステップ1006)、ステップ1001の判定に戻る。
【0015】
この場合、図10の1001〜1006が示すように6つの処理ステップをN回繰り返すため、図10の1000を加えると、PE間で1行分の画素を再配置するのに、計6N+1のステップ数が必要であり、効率が悪い、という課題が存在していた。
【0016】
なお、この課題の一つの解決方法として、PE間結合に、1次元結合ではなく、例えば特許文献1に開示されているように、2次元トーラスあるいはハイパ・キューブといった、より高次元の結合形態を採用することで、ステップ毎のPE間距離を減らすアプローチが考えられる。
[0017]
しかし、結合の次元数を増やしてしまうと、チップ上でのレイアウトの自由度が減少したり、あるいはPE間の配線距離が長くなってしまうという問題点が存在していた。
[0018]
したがって、本発明の主たる目的は、PE間で画素などのデータを高速に再配置することにより処理の負荷分散を効率よく実現できるプロセッサアレイシステムを提供することにある。
課題を解決するための手段
[0019]
本発明の第1の側面(アスペクト)に係るプロセッサアレイシステムは、複数(M個)のSIMD動作するプロセッサエレメント(以下、「PE」という)を含むPEブロックを少なくとも三つ有するPEブロックアレイを備え、少なくとも一つのPEブロックは、前記一つのPEブロックとは異なる少なくとも一つの他のPEブロックと、1本が所定ビットの、PEブロック内のPEの個数と同数であるM本の第1の信号線で結ばれるとともに、前記一つのPEブロック及び前記他のPEブロックとは異なる少なくとも一つのさらに別のPEブロックと1本が所定ビットのM本の第2の信号線で結ばれ、前記一つのPEブロックに含まれる前記PEが、前記M本の第1の信号線と前記M本の第2の信号線の中から1本の信号線を選択するセレクタ手段を備える、ことを特徴とする。
[0020]
本発明において、前記セレクタ手段は、前記M本の第1の信号線から一本の信号線を選択する第1のセレクタ手段と、前記M本の前記第2の信号線から一本の信号線を選択する第2のセレクタ手段と、前記第1のセレクタ手段で選択された前記1本の信号線と、前記第2のセレクタ手段で選択された前記1本の信号線から、一本の信号線を選択する第3のセレクタと、を備える。
[0021]
本発明において、複数の前記PEブロックは、一のPEブロックを一つのノードとする一次元結合又はリング結合の形態で接続され、前記PEブロックは、前記PEブロックの一側で隣接するPEブロックと相互に前記M本の第1の信号線によって結ばれるとともに、前記PEブロックの他側で隣接するPEブロックと相互に前記M本の第2の信号線によって結ばれる。
[0022]
本発明において、N個(ただし、Nは1より大きい自然数)の前記PEに関して、距離がM(ただし、Mは1より大きくNより小さい自然数であり、Nの約数)のPE同士を結合するPE間での第1の転送方向及び第2の転送方向へのそれぞれの転送路を備え、M個の隣接するPEが一個のPEブロックを構成し、前記PEブロック内のM個のPEによる前記第1の転送方向への転送路が、前記M本の第1の信号線を構成し、前記PEブロック内の全M個のPEによる前記第2の転送方向への転送路が、前記M本の第2の信号線を構成する。
【0023】
本発明において、N個(ただし、Nは1より大きい自然数)の前記PEが、一つのPEを一つのノードとする一次元結合又はリング結合の形態で接続され、隣接PE間の結合線のほかに、さらに距離がM(ただし、Mは1より大きくNより小さい自然数であり、Nの約数)のPE同士を結合するPE間での前記第1の転送方向及び前記第2の転送方向へのそれぞれの転送路を備え、M個の隣接するPEが一つのPEブロックを構成し、前記PEブロック内のM個のPEによる第1の転送方向への転送路が前記M本の第1の信号線を構成し、前記PEブロック内のM個のPEによる第2の転送方向への転送路が前記M本の第2の信号線を構成する。
【0024】
本発明において、前記PEブロック内の各PEは、前記PEブロック内の全PEに対する第1の転送方向の結合線及び第2の転送方向の結合線により、それぞれ、隣接するPEブロック内にある、自PEから距離MのPEと結合されている。
【0025】
本発明において、前記各PEは、
前記PEとの距離がMのPE同士を結合する前記第1の転送方向への転送路(B0)の転送データを格納する第1の転送バッファ手段(L)と、
前記PEとの距離がMのPE同士を結合する前記第2の転送方向への転送路(B1)の転送データを格納する第2の転送バッファ手段(R)と、
前記PEブロック内の複数の前記第1の転送バッファ手段の中から一つを選ぶ第1のセレクタ手段(LS)と、
前記PEブロック内の複数の前記第2の転送バッファ手段の中から一つを選ぶ第2のセレクタ手段(RS)と、
転送方向情報を格納するレジスタ手段(F)と、
転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、格納値がMより小さくなった時点で、前記格納値により、前記第1のセレクタ手段(LS)および第2のセレクタ手段(RS)を制御して得られる選択結果のいずれかを、レジスタ手段(F)の値により選択し、前記PEへの転送結果として格納する転送結果バッファ手段(T)と、を含む。
【0026】
本発明において、前記各PEは、前記PEとの距離がMのPE同士を結合する第1転送方向または第2の転送方向への転送路の転送データを格納する転送バッファ手段(L)と、
前記PEブロック内の複数の前記転送バッファ手段(L)の中から一つを選ぶセレクタ手段(LS)と、
転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、前記格納値がMより小さくなった時点で、前記格納値で、前記セレクタ手段(LS)を制御して得られる選択結果を、同PEへの転送結果として格納する転送結果バッファ手段(T)と、を含む。
【0027】
本発明において、自PEの右方向または左方向を正、その逆を負とし、最終的に自PEに再配置されるデータ(D)を保有するPEの自PE位置からみた格子距離をK(但しKは−N/2≦K≦N/2の任意の値であってよい)とした場合に、転送動作に参加するよう各PEの動作非動作を決定するマスクレジスタ(MR)を動作側に設定し、
前記第1の転送バッファ手段(L)と前記第2の転送バッファ手段(R)に、自PE上のデータ(D)を格納し、
格子距離(K)が正の場合は、レジスタ手段(F)をオンとし、前記転送結果バッファ手段(T)に格子距離(K)とPEブロック内で左または右から数えた場合の自PE番号との加算結果を格納し、
格子距離(K)が負の場合は、レジスタ手段(F)をオフとし、前記転送結果バッファ手段(T)に格子距離(K)とPEブロック内で右または左から数えた場合の自PE番号との減算結果を格納するように制御する。
【0028】
本発明において、自PEの右方向または左方向を正、その逆を負、最終的に自PEに再配置されるデータDを保有するPEの自PE位置からみた格子距離をK(但しKは0≦K≦N−1の任意の値であってよい)とした場合に、転送動作に参加するよう各PEの動作・非動作を決定するマスクレジスタ(MR)を動作側に設定し、
前記転送バッファ手段(L)に自PE上のデータ(D)を格納し、
前記転送結果バッファ手段(T)に、格子距離(K)とPEブロック内で左または右から数えた場合の自PE番号との加算結果を格納するように制御する。
【0029】
本発明において、レジスタ手段(F)がオンの場合は、前記転送結果バッファ手段の値TがM以上ならばT−Mの値を前記転送結果バッファ手段(T)に格納し、前記転送結果バッファ手段(T)がMより小さければPEブロック内で左から数えた場合のPE番号がTのPEの前記第1の転送バッファ手段(L)の内容を、前記第1のセレクタ手段(LS)で選び、前記転送結果バッファ手段(T)に格納し、マスクレジスタ(MR)を非動作に設定し、
レジスタ手段(F)がオフの場合には、前記転送結果バッファ手段(T)が−M以下ならばT+Mの値を、前記転送結果バッファ手段(T)に格納し、Tが−Mより大きければPEブロック内で右から数えた場合のPE番号が−TのPEの前記第2の転送バッファ手段(R)の内容を前記第2のセレクタ手段(RS)で選び、前記転送結果バッファ手段(T)に格納し、マスクレジスタ(MR)を非動作に設定した上、全PEが、左結合線(B0)と右結合線(B1)を利用し、M隣接する左と右のPEへそれぞれ、前記第1の転送バッファ手段(L)や前記第2の転送バッファ手段(R)の内容を転送すると共に、前記第1の転送バッファ手段(L)と前記第2の転送バッファ手段(R)にそれぞれ右M隣接と左M隣接PEから転送されてきたデータを格納する動作を、全PEのマスクレジスタMRが非動作の設定になるまで、マスクレジスタ(MR)が動作設定である各PEが繰り返し行うように制御する手段(制御プロセッサCP)を備えている。
【0030】
本発明において、前記転送結果バッファ手段(T)がM以上ならばT−Mの値を前記転送結果バッファ手段(T)に格納し、
TがMより小さければPEブロック内で左から数えた場合のPE番号がTのPEの前記第1の転送バッファ手段(L)の内容を第1のセレクタ手段(LS)で選び前記転送結果バッファ手段(T)に格納し、マスクレジスタ(MR)を非動作に設定した上、全PEが左結合線(B0)を利用し、M隣接する左のPEへ前記第1の転送バッファ手段(L)の内容を転送すると共に、前記第1の転送バッファ手段(L)に右M隣接PEから転送されてきたデータを格納する動作を、全PEのマスクレジスタ(MR)が非動作の設定になるまで、マスクレジスタ(MR)が動作設定である各PEが繰り返し行うように制御する手段(制御プロセッサCP)を備えている。
[0031]
本発明の他の側面によれば、それぞれがM個のSIMD動作するプロセッサエレメント(以下、「PE」という)からなる複数のPEブロックを有し、距離が、PEブロック内のPEの個数と同数であるM(ただし、Mは1より大きい自然数)のPE同士を結合するPE間での第1の転送方向及び/又は第2の転送方向への転送路を備えたプロセッサアレイシステムを構成するPEであって、前記第1及び/又は第2の転送方向への転送路による前記PEが属するPEブロックへの複数の転送データの中から一つを選ぶセレクタ手段を含むPEが提供される。
[0032]
本発明のPEは、前記PEとの距離がMのPE同士を結合する前記第1の転送方向への転送路の転送データを格納する第1の転送バッファ手段と、前記PEとの距離がMのPE同士を結合する前記第2の転送方向への転送路の転送データを格納する第2の転送バッファ手段と、前記PEブロック内のM個の前記第1の転送バッファ手段の中から一つを選ぶ第1のセレクタと、前記PEブロック内のM個の前記第2の転送バッファ手段の中から一つを選ぶ第2のセレクタと、転送方向情報を格納するレジスタ手段と、転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、格納値がMよりも小さくなった時点で、前記格納値により、前記第1のセレクタ及び前記第2のセレクタを制御して得られる選択結果のいずれかを、前記レジスタ手段の値により選択し、前記PEへの転送結果として格納する転送結果バッファ手段と、を含む。あるいは、本発明のPEは、前記PEとの距離がMのPE同士を結合する前記第1の転送方向又は第2の転送方向への転送路の転送データを格納する転送バッファ手段を備え、前記セレクタ手段は、前記第1の転送方向又は第2の転送方向への転送路の転送データを格納する複数の前記転送バッファ手段の中から一つを選び、転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、前記格納値がMよりも小さくなった時点で、前記格納値で、前記セレクタ手段を制御して得られる選択結果を、前記PEへの転送結果として格納する転送結果バッファ手段を含む。
[0033]
本発明に係るシステムは、それぞれが複数のプロセッサエレメント(以下、「PE」という)を含み、一次結合又はリング結合される、複数のPEブロックを有し、前記PEとして、
第1の転送方向への結合線を介して、前記第1の転送方向に関して自PEと予め定められた所定距離離間している、他のPEブロックのPEと接続され、
前記第1の転送方向と逆方向の第2の転送方向への結合線を介して、前記第2の転送方向に関して自PEと予め定められた所定距離離間している、さらに別のPEブロックのPEと接続され、
前記第1及び第2の転送方向への結合線の転送データをそれぞれ格納する第1及び第2の転送バッファ手段と、
自PEの前記第1の転送バッファ手段と、前記自PEが属するPEブロック内の他のPEの前記第1の転送バッファ手段の中から一つを選択する第1のセレクタ手段と、
前記自PEの前記第2の転送バッファ手段と、前記自PEが属する前記PEブロック内の他のPEの前記第2の転送バッファ手段の中から一つを選択する第2のセレクタ手段と、
前記結合線を利用した、前記所定距離離間したPE間での転送動作が行われる度に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが予め定められた大小関係となった時点で、前記格納値により、前記第1のセレクタ手段及び前記第2のセレクタ手段を制御して得られる選択結果のいずれかを、転送方向にしたがって選択し、選択結果を自PEへの転送結果として格納する転送結果バッファ手段と、を含むPEを有する。あるいは、前記PEとして、結合線を介して、自PEと予め定められた所定距離離間している、他のPEブロックのPEと接続され、
前記結合線の転送データを格納する転送バッファ手段と、
自PEの前記転送バッファ手段と、前記自PEが属するPEブロック内の他のPEの前記転送バッファの中から一つを選ぶセレクタ手段と、
前記結合線を利用した、前記所定距離離間したPE間での転送動作が行われる度に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが予め定められた大小関係となった時点で、前記格納値により、前記セレクタ手段を制御して得られる選択結果を、自PEへの転送結果として格納する転送結果バッファ手段と、を含むPEを有する。
【発明の効果】
[0034]
本発明によれば、処理の負荷分散を効率よく実現することができる。その理由は、本発明においては、N個のPEを有する一次元プロセッサアレイ型システム上でPE間結合の次元数を増やさずに、1行分(=N個)のデータをPE間で相互に交換するのに要するステップ数を、短縮できるようにしたためである。また、本発明によれば、レイアウトの容易性を維持することができる。さらに、本発明によれば、ハードウェア規模を小さくすることができる。また、本発明によれば、SIMD制御で同期動作する全PEが同時に送信するデータを、受信側PEにローカルな情報、すなわち「自PEと発信元PEとの格子距離情報」や「自PE番号」のみで、正確に受け取ることが可能となり、ネットワークの規模(ビット数、複雑度)を低減できる。
【図面の簡単な説明】
[0035]
[図1]本発明の一次元プロセッサアレイの概略構成を示すブロック図である。
[図2]本発明の一次元プロセッサアレイのPEブロック間結合線の構成を示すブロック図である。
[図3]本発明を実施するための最良の形態の構成を示すブロック図である。
[図4]本発明を実施するための最良の形態の動作の前半を示す流れ図である。
[図5]本発明を実施するための最良の形態の動作の後半を示す流れ図である。
[図6]本発明を実施するための最良の形態の動作の具体例を示す図である。
[図7]背景技術である既存の一次元プロセッサアレイの概略構成を示すブロック図である。
[図8]本発明が解決しようとする課題を説明するための図である。
[図9]本発明が解決しようとする課題を説明するための図である。
[図10]従来技術の場合の動作の流れを示す図である。
[図11]本発明の効果の一つを示す図である。
[図12]本発明の第2の発明を実施するための最良の形態の動作の前半を示す流れ図である。
[図13]本発明の第2の発明を実施するための最良の形態の動作の後半を示す流れ図である。
符号の説明
[0036]
100 一次元プロセッサアレイ(PEアレイ)
101 PE(プロセッシング・エレメント)
102 PEブロック(PEの集合体)
103 右から左へのPE間結合線B0(左結合線)
104 左から右へのPE間結合線B1(右結合線)
110 制御プロセッサCP
113 命令コード
301 B0からの転送データを格納するための転送バッファL
302 B1からの転送データを格納するための転送バッファR
303 セレクタ手段LS
304 セレクタ手段RS
305 転送結果バッファT
306 方向レジスタF
307 マスクレジスタMR
308 命令デコーダDE
309 レジスタファイルRF
310 データメモリ
311 演算器
400〜405、500〜511、1000〜1006、1200〜1202、1300〜1306 ステップ
【発明を実施するための最良の形態】
【0037】
上記した本発明についてさらに詳細に説述すべく添付図面を参照して以下に説明する。
【0038】
はじめに、本発明の概要・動作原理を説明しておく。N個のPEを有する一次元プロセッサアレイ型システムは、Mをチップ開発時でのレイアウトの単位であるPEブロック内のPE数、XをPE間の単位転送バイト数とする。
【0039】
図1、図3を参照すると、本発明のシステムは、
(A)距離MのPE同士を結合することによって得られるPEブロック単位で見た場合でのM本のXバイト幅結合線手段(左結合線)B0(右から左へ)、及び、M本のXバイト幅結合線手段(右結合線)B1(左から右へ)と、
(B)PEブロック内の各PEそれぞれに存在する、B0とB1からのデータを格納する転送バッファL及び転送バッファR、
(C)PEブロック内にあるM個のLとRの中から1つを選ぶM入力1出力のセレクタLS及びセレクタRS、
(D)PEの動作/非動作を制御するマスクレジスタMR、
(E)転送結果の格納及びカウンタとしても用いられる転送結果バッファT、
(F)転送方向を記憶する方向レジスタF、
とを備えている。
【0040】
上記構成のもとで、
・再配置対象をN個のXバイトデータDとし、
・自PEの右方向を正、左方向を負とし、
・自PEに再配置される予定のデータDが存在するPEの自PE位置からみた格子距離をK(但しKは−N/2≦K≦N/2の任意の値であってよい)とすると、
制御プロセッサCPは、PEアレイに対して以下の制御を行う(図4参照)。
【0041】
まず、各PEが転送バッファLとRに、自PE上のデータDを格納する(図4のステップ400)。
【0042】
格子距離Kが正又は0の場合には、格子距離Kに、PEブロック内で左から数えた場合の自PE番号を加算した結果を、転送結果バッファTに格納する(図4の402)。格子距離Kが負の場合は、格子距離Kに、PEブロック内で右から数えた場合の自PE番号を減算した結果を転送結果バッファTに格納する(図4の403)。格子距離Kが0以上の場合は方向レジスタFに1をセットし(図4の402)、格子距離Kが負の場合には方向レジスタFに0をセットし(図4の403)、マスクレジスタMRに1を格納する(図4の405)ように、PEアレイを制御する。
【0043】
次に、制御プロセッサCPは、全PEのマスクレジスタMRをモニターし、全PEのマスクレジスタMRが全てゼロになるまで、下記動作をステップ毎に繰り返すように、PEアレイを制御する。
【0044】
すなわち、マスクレジスタMRが非ゼロのPE上は、転送結果バッファTと方向レジスタFの値に応じ、
方向レジスタFが1の場合は、転送結果バッファTがM以上である場合、T−Mの値を転送結果バッファTに格納し(図5のステップ506)、転送結果バッファTがMより小さい場合、PEブロック内で左から数えた場合のPE番号がTであるPEの転送バッファLの内容を、セレクタLSで選び、転送結果バッファTに格納し(図5のステップ503)、マスクレジスタMRをゼロにセットする(図5のステップ504)。
【0045】
方向レジスタFが0の場合、転送結果バッファTが−M以下である場合、T+Mの値を、転送結果バッファTに格納し(図5のステップ511)、転送結果バッファTが−Mより大きい場合、PEブロック内で右から数えた場合のPE番号が−TであるPEの転送バッファRの内容をセレクタRSで選び、転送結果バッファTに格納し(図5のステップ508)、かつマスクレジスタMRをゼロにセットする(図5のステップ509)ように制御する。なお、転送結果バッファ手段Tにおいて、方向レジスタFが1のとき、セレクタLSで選択された出力を選択し、方向レジスタFが0のとき、セレクタRSで選択された出力を選択する機能は、請求項2の第3のセレクタ手段に対応する。
【0046】
その後、結合線B0と結合線B1を利用し、M隣接する左と右のPEへ転送バッファLや転送バッファRの内容を転送する(図5のステップ505、510)と共に、転送バッファLと転送バッファRに、それぞれ、右M隣接と左M隣接するPEから転送されてきたデータを格納するように動作する。
【0047】
上記構成および動作により、最大1+(N÷2M)ステップ後に、各PEの転送結果バッファTには、自PEから距離KにあるPE上のデータが格納される。
【0048】
このため、図10に示す従来の手法と比べると、約12M倍の効率で、1行内にあるN個のXバイトデータを再配置することができる。
【0049】
すなわち、本発明によれば、従来のように、隣接PEとではなく、距離MのPEと結合するPE間結合線B0、結合線B1を有すると共に、各PEが、最大(1+(N÷2M))のステップ数の間の各ステップ中に、隣接PEブロックから転送されて次々と自PEブロックを経由していくステップ毎、2M個のデータの中から、構成要素として転送結果レジスタT、方向レジスタF、転送バッファL、転送バッファS、セレクタLS、RS、そしてマスクレジスタMRを用いた、単純な動作で、保持しておくべきデータを抽出できるように構成されている。
【0050】
このため、本発明によれば、N個のPEを有する一次元プロセッサアレイ型システム上でPE間結合の次元数を増やさずに、1行分(=N個)のデータをPE間で相互に交換するのに要するステップ数が従来の最大(1+6N)から最大(1+(N÷2M))に短縮できる。
【0051】
本発明によれば、レイアウトの容易性を維持することができる。すなわち、本発明においては、M個のPEからなるPEブロックをレイアウトの単位としていることから結合の一次元性が維持されており、多次元結合とした場合よりも、チップ上でのレイアウトが容易化している。
【0052】
本発明において、M=√Nとすると、PE間データ転送距離は最大で、約√N÷2となり、これは典型的な2次元結合である八方格子結合のそれと同等である。そして、PE毎に必要となるデータ転送用セレクタの規模は、八方格子結合の場合では、図11(a)に示すように、8データから1つを選ぶセレクタが8つ必要なのに対し、本発明によれば、Nが1024(Mが32)では八方格子結合と同じ8つ必要とするが、Nが1024よりも小さい場合、例えば256(Mが16)では、図11(b)に示すように、その約半分の4つだけで済むため、実用的なNの値域内ではハードウェア規模を小さくできる。
【0053】
これは、本発明においては、転送方向が左右の2方向のみで済むため実現に要するハードウェアコストが低い一次元結合と、PE毎のローカルなセレクタを有効に組み合わせているためである。以下、実施の形態について説明する。
【0054】
図1を参照すると、本発明の第1の実施の形態は、N個のPE101を有するPEアレイ100と、PEアレイに命令を供給する制御プロセッサ110と、を有する。
【0055】
PEアレイ100は、それぞれが、M個(ただし、MはNの約数)のPE101を含むN÷M個のPEブロック102と、隣接するPEブロック同士を接続する左結合線B0(103、右から左へ)と、右結合線B1(104、左から右へ)と、を備えている。
【0056】
図2を参照すると、一つのPEブロック102内の各PE101は、隣接するPEブロック102内にある自PEから距離M(図2ではMが4)のPEと結合しており、B0とB1は、それぞれ、PEブロック102内の全PEに対する右から左、左から右への結合線の集合体である。
【0057】
図3を参照すると、各PE101は、B0とB1のうちの対応する一部の結合線で転送されてきたデータを格納する転送バッファ手段L(301)とR(302)、
PEブロック102内の全PEのLとRの中から1つを選ぶM入力(図3ではMが8)1出力のセレクタ手段LS(303)とRS(304)、
転送結果の格納およびカウンターとしても用いられる転送結果バッファ手段T(305)、
転送方向を記憶する方向レジスタF(306)、
PEの動作非動作を制御しかつ制御プロセッサCP(110)からもアクセス可能なマスクレジスタMR(307)、
とを含む。
【0058】
また、PE101は、通常、その他に命令デコーダDE(308)、レジスタファイルRF(309)、データメモリ(310)、そして演算器 (311)を備えている。
【0059】
転送結果バッファ手段T(305)は、その内容を、レジスタファイルRF(309)に転送したり、データメモリ(310)へライトしたり、あるいは、直接に、演算器(311)のオペランドとして利用できるように構成されている。
【0060】
これらの手段は、それぞれ概略つぎのように動作する。なお、自PEの右方向を正、左方向を負とした場合に、自PEに再配置される予定のデータDが存在するPEの自PE位置からみた格子距離をK(但しKは−N/2≦K≦N/2の任意の値であってよい)としている。この定義は逆でもかまわないが、以下では、この定義(自PEの左方向を正、右方向を負)のもとでの各手段の概略動作を述べる。
【0061】
制御プロセッサ110から「MVSET」という命令コード113が送られてくるものとする。各PE101は、自分が送出するデータをDとすると、転送バッファ手段LとRにDを格納し、全てのPEのMRを1にセットする。
【0062】
Kが正の場合は、方向レジスタFに1、かつ転送結果バッファ手段Tに、KとPEブロック内で左から数えた場合の自PE番号との加算結果、Kが負の場合は、Fに0、かつ、転送結果バッファT手段に、KとPEブロック内で右から数えた場合の自PE番号との減算結果を格納する。通常これらの動作は、単純のため、1ステップで完了できる。
【0063】
制御プロセッサ110から「MVLR」という命令コード113が送られてくると、マスクレジスタMRが1のPEは、
方向レジスタFが1の場合には、
TがM以上ならば、T−Mの値をTに格納し、
TがMより小さければ、ブロック内で左から数えた場合のPE番号がTのPEのLの内容をLSで選びTに格納し、かつ、MRをゼロにセットする。
【0064】
方向レジスタFが0の場合には、
Tが−M以下ならば、T+Mの値をTに格納し、
Tが−Mより大きければ、ブロック内で右から数えた場合のPE番号が−TのPEのRの内容をRSで選び、Tに格納し、かつMRをゼロにセットする。
【0065】
次に、全PEがB0とB1を利用し、M隣接する左と右のPEへLやRの内容を転送すると共に、LとRに、それぞれ右M隣接と左M隣接PEから転送されてきたデータを格納する。通常、これらの動作は単純のため1ステップで完了できる。
【0066】
一方、制御プロセッサ110は、全PEのMRがゼロになるまで、ステップ毎に同じ命令コード「MVLR」をPEに送り続ける。
【0067】
次に、図4及び図5のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。
【0068】
図4は、「MVSET」命令コードが制御プロセッサ110から送られた場合の各PEで実施される動作に係わるフローチャートである。
【0069】
DをLとRにそれぞれセットする(ステップ400)。
【0070】
全PEのMRに1をセットする(ステップ405)。
【0071】
Kが0以上か否かを判定する(ステップ401)。
【0072】
Kが0以上の場合には、方向レジスタFに1をセットし、かつ、KにPEブロック内で左から数えた場合の自PE番号を加算した結果を、転送結果バッファTに格納する(ステップ402)。
【0073】
Kが0より小さい場合には、方向レジスタFに0をセットし、転送結果バッファTにKにPEブロック内で右から数えた場合の自PE番号を加算した結果をTに格納する(ステップ403)。
【0074】
ステップ400〜405の動作は単純であるため、通常1ステップで行うことができる。
【0075】
図5は、「MVLR」命令コードに係わる、制御プロセッサ110および各PEで実施される動作に係わるフローチャートである。
【0076】
まず、制御プロセッサ110が、マスクレジスタMRが1であるPEが存在するか否かを調べる(ステップ520)。
【0077】
そのようなPEが存在する場合にPEアレイ100へ命令コード「MVLR」を送る(ステップ500)。
【0078】
PEアレイ側では、マスクレジスタMRが1のPE上において、方向レジスタFが1であるか否かを判定する(ステップ501)。
【0079】
方向レジスタFが1の場合には、ステップ502〜505の動作、方向レジスタFが0の場合には、ステップ507〜511の動作を行う。
【0080】
転送結果バッファTがMより小さいか否かを判定する(ステップ502)。
【0081】
転送結果バッファTがMより小さいければ、PEブロック内で左から数えた場合のPE番号がTのPE上のLをLSで選び、転送結果バッファTに格納する(ステップ503)。
【0082】
マスクレジスタMRを0にセットする(ステップ504)。
【0083】
結合線B0を用いて、L内データを左方向でMだけ離れたPEの転送バッファLに転送する(ステップ505)。
【0084】
TがM以上の場合は、転送結果バッファTをT−Mに更新する(ステップ506)。
【0085】
Tが−Mより大きいか否かを判定する(ステップ507)。
【0086】
Tが−Mより大きければ、PEブロック内で右から数えた場合のPE番号が−TのPE上のRをRSで選び、転送結果バッファTに格納する(ステップ508)。
【0087】
マスクレジスタMRを0にセットする(ステップ509)。
【0088】
結合線B1を用いてR内データを右方向でMだけ離れたPEの転送バッファRに転送する(ステップ510)。
【0089】
Tが−M以下の場合は、転送結果バッファTをT+Mに更新する(ステップ511)。
【0090】
ステップ501〜511の動作は、単純であるため、通常1ステップで行うことができる。
【0091】
次に、本実施の形態の効果について説明する。
【0092】
本実施の形態では、PE同士を距離Mで双方向で結合しているため、PE数がNにおいて、全PEから送出されたN個の転送データDは、1+(N÷2M)のステップ数をかけて全PEブロックを通過できる。
【0093】
また、本実施の形態では、さらに各PEが、PEブロック内のM個のPEが有する転送バッファLとRの内容の中から一つを選ぶためのセレクタLSとRS、およびそれらをどのタイミングで利用すべきかを指定するカウンターとしての役割も果たす転送結果バッファTとを備えているため、B0やB1を使って、各PEブロックを、右から左、および、左から右へと通過していく転送データD群の中から、所定のステップにおいて、タイミングで効率よく必要なものを選択し、自PEのTに取り込むことができる。
【0094】
本実施の形態では、マスクレジスタMRを利用して全PEが転送データを得た時点で処理を停止するようにしているため、さらに多くの場合では、1+(N÷2M)よりも少ないステップ数で全動作を終えることができる。
【0095】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。図1、図2、図3を参照すると、本発明の第2の実施の形態は、図1と図2において、右結合線B1が存在しない点、及び、図3において、転送バッファR、セレクタRS、方向レジスタF、そして右結合線B1が存在しない点以外は、本発明の第1の実施の形態と同じ構成をもつ。これらの手段は、概略つぎのように動作する。なお、自PEに再配置される予定のデータDが存在するPEの自PE位置から右方向へみた場合の格子距離をK(但しKは0≦K≦N−1の任意の値であってよい)とする。
【0096】
制御プロセッサ110から「MVSET」という命令コード113が送られてくるものとする。各PE101は自分が送出するデータをDとする。
【0097】
転送バッファ手段LにDを格納し、全てのPEのMRを1にセットし、転送結果バッファ手段TにKとPEブロック内で左から数えた場合の自PE番号との加算結果を格納する。通常これらの動作は単純のため1ステップで完了できる。
【0098】
制御プロセッサ110から、「MVLR」という命令コード113が送られてくると、MRが非ゼロのPEは、
TがM以上ならば、T−Mの値を転送結果バッファTに格納し、
TがMより小さければ、ブロック内で左から数えた場合のPE番号がTのPEのLの内容をLSで選び、転送結果バッファTに格納し、かつ、マスクレジスタMRをゼロにセットする。
【0099】
次に、全PEがB0を利用しM隣接する左のPEへLの内容を転送すると共に、Lに右M隣接PEから転送されてきたデータを格納する。
【0100】
また通常これらの動作は、単純のため1ステップで完了できる。
【0101】
一方、制御プロセッサ110は、全PEのMRがゼロになるまで、サイクル毎に同じ命令コード「MVLR」をPEに送り続ける。
【0102】
次に、図12及び図13のフローチャートを参照して本発明の第2の発明の実施の形態の全体の動作について詳細に説明する。
【0103】
図12は、「MVSET」命令コードが制御プロセッサ110から送られた場合の各PEで実行される動作を説明するためのフローチャートである。
【0104】
Dを転送バッファLにそれぞれセットする(ステップ1202)。
【0105】
全PEのマスクレジスタMRに1をセットする(ステップ1201)。
【0106】
KにPEブロック内で左から数えた場合の自PE番号を加算した結果を転送結果バッファTに格納する(ステップ1200)。
【0107】
ステップ1200〜1202の動作は単純であるため、通常1ステップで行うことができる。
【0108】
図13は、「MVLR」命令コードに係わる、制御プロセッサ110および各PEで実施される動作を説明するためのフローチャートである。
【0109】
まず、制御プロセッサ110が、MRが1であるPEが存在するか否かを調べ(1301)、そのようなPEが存在する場合にPEアレイ100へ命令コード「MVLR」を送る(ステップ1300)。
【0110】
PEアレイ側では、MRが1のPE上において、転送結果バッファTがMより小さいか否かを判定する(ステップ1302)。
【0111】
転送結果バッファTがMより小さいければ、PEブロック内で左から数えた場合のPE番号がTのPE上のLをセレクタLSで選び、転送結果バッファTに格納する(ステップ1303)。
【0112】
MRを0にセットし(ステップ1304)、その後、結合線B0を用いて、L内データを左方向でMだけ離れたPEの転送バッファLに転送する(ステップ1305)。
【0113】
TがM以上の場合は、転送結果バッファTをT−Mに更新する(ステップ1306)。
【0114】
また、ステップ1302〜1306の動作は単純であるため、通常1ステップで行うことができる。
【0115】
次に、本発明の第2の実施の形態の効果について説明する。
【0116】
本実施の形態では、PE同士を距離Mで結合しているため、PE数がNにおいて、全PEから送出されたN個の転送データDは、1+(N÷M)のステップ数をかけて全PEブロックを通過できる。
【0117】
また、本実施の形態では、さらに、各PEが、PEブロック内のM個のPEが有する転送バッファLの内容の中から一つを選ぶためのセレクタLSおよびRSを、どのタイミングで利用すべきかを指定するカウンターとしての役割も果たす転送結果バッファTを備えているため、B0を使って各PEブロックを右から左へと通過していく転送データD群の中から、所定のステップにおいて、タイミングで効率よく必要なものを選択し、自PEのTに取り込むことができる。
【0118】
本実施の形態では、マスクレジスタMRを利用して全PEが転送データを得た時点で処理を停止するようにしているため、さらに多くの場合では、1+(N÷M)よりも少ないステップ数で全動作を終えることができる。
【0119】
本発明の第2の実施の形態は、前記第1の実施の形態と比べると、1行分のN個の画素をPE間で再配置するのに要するステップ数は2倍程度に増えるが、構成要素がより少ないため、ハードウェア規模の増加がより少ない、という効果がある。
【実施例】
【0120】
次に、具体的な実施例に即して説明する。図6は、上記した本発明の動作を具体的に説明するための図である。
【0121】
図6(a)では、各列で、1つのPE上での設定を表現し、Nを16、Mを4としている。また、簡単のため各PEは自PE番号を送出データD、任意の−8〜7の値を、転送元PEへの距離値Kとして設定した場合に、MVSET命令を発行した直後での、図4のフローチャート通りに、Kやブロック内での右からおよび左からのPE番号を用いてF、T、L、R、MRの値を設定した結果を示している。
【0122】
ここで、図6(a)のT欄が、同じ列に属するKと各列の網目欄の内容を、Kが負の場合は減算、正の場合は加算することにより求めていることがわかる。例えば1列目のT=−6は、K=−3とブロック内右からのPE#=3の減算で求められ、3列目のT=4は、K=2とブロック内左からのPE#=2の加算で求められている。
【0123】
図6(b)乃至図6(d)は、MVLR命令の1回〜3回目の繰り返しを行った後の状態(但しLとRは更新前の値を表示)を、図6(a)と対応した表形式でそれぞれ示している。
【0124】
図6(b)乃至図6(d)では、図5のフローチャートに従い、Tの絶対値がMを下回ったことにより、転送バッファLまたはRの値が、転送結果バッファTへ格納されたPEについては、当該T欄およびMR欄に網目を施して表示している。
【0125】
図6から、Kで指定された距離に位置するPE上のDの値が、図5のフローチャートに示した動作を3回(=1+16/(4×2))繰り返した後に、転送結果バッファTに格納されていることがわかる(図6(d)のT欄参照)。
【0126】
図6(e)は、図6(b)乃至図6(d)の間に行われたPE間データ移動の様子(距離と方向)を矢線にて表現したものである。
【0127】
本発明によれば、高速にPE間でデータを再配置することが可能な一次元プロセッサアレイの提供により、処理負荷をPE間に分散させ一次元プロセッサアレイの性能を向上する用途に適用できる。また処理負荷の分散のみでなく、一次元プロセッサアレイの各PEにマッピングされた画像の拡大・縮小・変形といった用途にも適用できる。以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
Claims (17)
- 複数(M個)のSIMD動作するプロセッサエレメント(以下、「PE」という)を含むPEブロックを少なくとも三つ有するPEブロックアレイを備え、
少なくとも一つのPEブロックは、前記一つのPEブロックとは異なる少なくとも一つの他のPEブロックと、1本が所定ビットの、PEブロック内のPEの個数と同数であるM本の第1の信号線で結ばれるとともに、前記一つのPEブロック及び前記他のPEブロックとは異なる少なくとも一つのさらに別のPEブロックと1本が所定ビットのM本の第2の信号線で結ばれ、
前記一つのPEブロックに含まれる前記PEが、
前記M本の第1の信号線と前記M本の第2の信号線の中から1本の信号線を選択するセレクタ回路を備える、ことを特徴とするプロセッサアレイシステム。 - 前記セレクタ回路が、
前記M本の第1の信号線から一本の信号線を選択する第1のセレクタ手段と、
前記M本の前記第2の信号線から一本の信号線を選択する第2のセレクタ手段と、
前記第1のセレクタ手段で選択された前記1本の信号線と、前記第2のセレクタ手段で選択された前記1本の信号線から、一本の信号線を選択する第3のセレクタ手段と、
を備える、ことを特徴とする請求項1記載のプロセッサアレイシステム。 - 複数の前記PEブロックは、一のPEブロックを一つのノードとする一次元結合又はリング結合の形態で接続され、
前記PEブロックは、前記PEブロックの一側で隣接するPEブロックと相互に前記M本の第1の信号線によって結ばれるとともに、前記PEブロックの他側で隣接するPEブロックと相互に前記M本の第2の信号線によって結ばれる、ことを特徴とする請求項1記載のプロセッサアレイシステム。 - N個(ただし、Nは1より大きい自然数)の前記PEに関して、
距離がM(ただし、Mは1より大きくNより小さい自然数であり、Nの約数)のPE同士を結合するPE間での第1の転送方向及び第2の転送方向へのそれぞれの転送路を備え、
M個の隣接するPEが一個のPEブロックを構成し、前記PEブロック内のM個のPEによる前記第1の転送方向への転送路が、前記M本の第1の信号線を構成し、
前記PEブロック内の全M個のPEによる前記第2の転送方向への転送路が、前記M本の第2の信号線を構成する、ことを特徴とする請求項1記載のプロセッサアレイシステム。 - N個(ただし、Nは1より大きい自然数)の前記PEが、一つのPEを一つのノードとする一次元結合又はリング結合の形態で接続され、
隣接PE間の結合線のほかに、さらに距離がM(ただし、Mは1より大きくNより小さい自然数であり、Nの約数)のPE同士を結合するPE間での前記第1の転送方向及び前記第2の転送方向へのそれぞれの転送路を備え、
M個の隣接するPEが一つのPEブロックを構成し、
前記PEブロック内のM個のPEによる第1の転送方向への転送路が前記M本の第1の信号線を構成し、
前記PEブロック内のM個のPEによる第2の転送方向への転送路が前記M本の第2の信号線を構成する、ことを特徴とする請求項4記載のプロセッサアレイシステム。 - 前記PEブロック内の各PEは、
前記PEブロック内の全PEに対する第1の転送方向の結合線及び第2の転送方向の結合線により、それぞれ、隣接するPEブロック内にある、自PEから距離MのPEと結合されている、ことを特徴とする請求項3に記載のプロセッサアレイシステム。 - 前記各PEが、
前記PEとの距離がMのPE同士を結合する前記第1の転送方向への転送路の転送データを格納する第1の転送バッファ手段と、
前記PEとの距離がMのPE同士を結合する前記第2の転送方向への転送路の転送データを格納する第2の転送バッファ手段と、
前記PEブロック内の複数の前記第1の転送バッファ手段の中から一つを選ぶ第1のセレクタ手段と、
前記PEブロック内の複数の前記第2の転送バッファ手段の中から一つを選ぶ第2のセレクタ手段と、
転送方向情報を格納するレジスタ手段と、
転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、格納値がMよりも小さくなった時点で、前記格納値により、前記第1のセレクタ手段及び前記第2のセレクタ手段を制御して得られる選択結果のいずれかを、前記レジスタ手段の値に基づいて選択し、前記PEへの転送結果として格納する転送結果バッファ手段と、
を含む、ことを特徴とする請求項4、5、6のいずれか一に記載のプロセッサアレイシステム。 - 前記各PEが、
前記PEとの距離がMのPE同士を結合する前記第1の転送方向又は第2の転送方向への転送路の転送データを格納する転送バッファ手段と、
前記PEブロック内の複数の前記転送バッファ手段の中から一つを選ぶセレクタ手段と、
転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、前記格納値がMよりも小さくなった時点で、前記格納値で、前記セレクタ手段を制御して得られる選択結果を、前記PEへの転送結果として格納する転送結果バッファ手段と、
を含む、ことを特徴とする請求項4、5、6のいずれか一に記載のプロセッサアレイシステム。 - 転送方向として、自PEの前記第1の転送方向又は前記第2の転送方向の一方を正、他方を負とし、
最終的に自PEに再配置されるデータDを保有するPEの自PE位置からみた格子距離をK(但しKは−N/2≦K≦N/2の任意の値であってよい)とした場合に、転送動作に参加するように各PEの動作・非動作を決定するマスクレジスタを動作側に設定し、
前記第1の転送バッファ手段と前記第2の転送バッファ手段に、自PE上のデータを格納し、
前記格子距離が正の場合には、
前記レジスタ手段はオンとされ、
前記転送結果バッファ手段には、前記格子距離とPEブロック内で前記第1又は第2の転送方向側から数えた場合の自PE番号との加算結果が格納され、
前記格子距離が負の場合には、
前記レジスタ手段はオフとされ、
前記転送結果バッファ手段には、前記格子距離とPEブロック内で、前記第1又は前記第2の転送方向側から数えた場合の自PE番号との減算結果が格納される、ことを特徴とする請求項7に記載のプロセッサアレイシステム。 - 転送方向として、自PEの前記第1の転送方向又は前記第2の転送方向の一方を正、他方を負とし、最終的に自PEに再配置されるデータを保有するPEの自PE位置からみた格子距離をK(但しKは0≦K≦N−1の任意の値であってよい)とした場合に、転送動作に参加するよう各PEの動作・非動作を決定するマスクレジスタを動作側に設定し、
前記転送バッファ手段に自PE上のデータを格納し、
前記転送結果バッファ手段には、前記格子距離とPEブロック内で、前記第1又は前記第2の転送方向側から数えた場合の自PE番号との加算結果が格納される、ことを特徴とする請求項8に記載のプロセッサアレイシステム。 - 前記レジスタ手段がオンの場合には、
前記転送結果バッファ手段の値TがM以上であるとき、
T−Mの値が、前記転送結果バッファ手段に格納され、
前記転送結果バッファ手段の値TがMよりも小さいときには、PEブロック内で、前記第2の転送方向の一方の側から数えた場合のPE番号がTであるPEの前記第1及び前記第2の転送バッファ手段の内容を、前記第1のセレクタ手段で選んで、前記転送結果バッファ手段に格納し、
前記マスクレジスタを非動作に設定し、
前記レジスタ手段がオフの場合には、
前記転送結果バッファ手段の値Tが−M以下の場合、T+Mの値を、前記転送結果バッファ手段に格納し、
Tが−Mより大きい場合、PEブロック内で、前記第1及び第2の転送方向の一方側から数えた場合のPE番号が−TのPEの前記第2の転送バッファ手段の内容を前記第2のセレクタ手段で選び、前記転送結果バッファ手段に格納し、前記マスクレジスタを非動作に設定し、
全PEが前記第1の転送方向の結合線と前記第2の転送方向の結合線を利用し、M隣接する前記第1及び第2の転送方向のPEへそれぞれ、前記第1の転送バッファ手段と前記第2の転送バッファ手段の内容を転送すると共に、前記第1の転送バッファ手段と前記第2の転送バッファ手段とに、それぞれ、前記第1の転送方向にM隣接PEと前記第2の転送方向にM隣接PEから転送されてきたデータを格納する動作を、全PEのマスクレジスタが非動作の設定になるまで、前記マスクレジスタが動作設定である各PEが繰り返し行うように制御する手段を備えている、ことを特徴とする請求項7に記載のプロセッサアレイシステム。 - 前記転送結果バッファ手段の値TがM以上の場合には、T−Mの値を前記転送結果バッファ手段に格納し、
TがMよりも小さい場合には、PEブロック内で、前記第1及び第2の転送方向の一方側から数えた場合のPE番号が、TのPEの前記第1の転送バッファ手段の内容を前記第1のセレクタ手段で選び、前記転送結果バッファ手段に格納し、前記マスクレジスタを非動作に設定し、
全PEが前記第1の転送方向の結合線を利用し、前記第1の転送方向のM隣接PEへ前記第1の転送バッファ手段の内容を転送すると共に、前記第1の転送バッファ手段に、前記第2の転送方向のM隣接PEから転送されてきたデータを格納する動作を、全PEの前記マスクレジスタが非動作の設定になるまで、前記マスクレジスタが動作設定である各PEが繰り返し行うように制御する手段を備えている、ことを特徴とする請求項8に記載のプロセッサアレイシステム。 - それぞれがM個のSIMD動作するプロセッサエレメント(以下、「PE」という)からなる複数のPEブロックを有し、距離が、PEブロック内のPEの個数と同数であるM(ただし、Mは1より大きい自然数)のPE同士を結合するPE間での第1の転送方向及び/又は第2の転送方向への転送路を備えたプロセッサアレイシステムを構成するPEであって、
前記第1の転送方向及び/又は前記第2の転送方向への転送路による、前記PEが属するPEブロックへの複数の転送データの中から一つを選ぶセレクタ手段を含む、ことを特徴とするPE。 - 前記PEとの距離がMのPE同士を結合する前記第1の転送方向への転送路の転送データを格納する第1の転送バッファ手段と、
前記PEとの距離がMのPE同士を結合する前記第2の転送方向への転送路の転送データを格納する第2の転送バッファ手段と、
前記PEブロック内のM個の前記第1の転送バッファ手段の中から一つを選ぶ第1のセレクタと、
前記PEブロック内のM個の前記第2の転送バッファ手段の中から一つを選ぶ第2のセレクタと、
転送方向情報を格納するレジスタ手段と、
転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、格納値がMよりも小さくなった時点で、前記格納値により、前記第1のセレクタ及び前記第2のセレクタを制御して得られる選択結果のいずれかを、前記レジスタ手段の値により選択し、前記PEへの転送結果として格納する転送結果バッファ手段と、
を含む、ことを特徴とする請求項13記載のPE。 - 前記PEとの距離がMのPE同士を結合する前記第1の転送方向又は第2の転送方向への転送路の転送データを格納する転送バッファ手段を備え、
前記セレクタ手段は、前記第1の転送方向又は第2の転送方向への転送路の転送データを格納する複数の前記転送バッファ手段の中から一つを選び、
転送路を利用して、距離Mの転送が全PE間で行われる度に、格納値の絶対値をMだけ減少させ、前記格納値がMよりも小さくなった時点で、前記格納値で、前記セレクタ手段を制御して得られる選択結果を、前記PEへの転送結果として格納する転送結果バッファ手段を含む、ことを特徴とする請求項13記載のPE。 - それぞれが複数のプロセッサエレメント(以下、「PE」という)を含み、一次結合又はリング結合される、複数のPEブロックを有し、
前記PEとして、
第1の転送方向への結合線を介して、前記第1の転送方向に関して自PEと予め定められた所定距離離間している、他のPEブロックのPEと接続され、
前記第1の転送方向と逆方向の第2の転送方向への結合線を介して、前記第2の転送方向に関して自PEと予め定められた所定距離離間している、さらに別のPEブロックのPEと接続され、
前記第1及び第2の転送方向への結合線の転送データをそれぞれ格納する第1及び第2の転送バッファ手段と、
自PEの前記第1の転送バッファ手段と、前記自PEが属するPEブロック内の他のPEの前記第1の転送バッファ手段の中から一つを選択する第1のセレクタ手段と、
前記自PEの前記第2の転送バッファ手段と、前記自PEが属する前記PEブロック内の他のPEの前記第2の転送バッファ手段の中から一つを選択する第2のセレクタ手段と、
前記結合線を利用した、前記所定距離離間したPE間での転送動作が行われる度に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが予め定められた大小関係となった時点で、前記格納値により、前記第1のセレクタ手段及び前記第2のセレクタ手段を制御して得られる選択結果のいずれかを、転送方向にしたがって選択し、選択結果を自PEへの転送結果として格納する転送結果バッファ手段と、
を含むPEを有する、ことを特徴とするプロセッサアレイシステム。 - それぞれが複数のプロセッサエレメント(以下、「PE」という)を含み、一次結合又はリング結合される、複数のPEブロックを有し、
前記PEとして、
結合線を介して、自PEと予め定められた所定距離離間している、他のPEブロックのPEと接続され、
前記結合線の転送データを格納する転送バッファ手段と、
自PEの前記転送バッファ手段と、前記自PEが属するPEブロック内の他のPEの前記転送バッファの中から一つを選ぶセレクタ手段と、
前記結合線を利用した、前記所定距離離間したPE間での転送動作が行われる度に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが予め定められた大小関係となった時点で、前記格納値により、前記セレクタ手段を制御して得られる選択結果を、自PEへの転送結果として格納する転送結果バッファ手段と、
を含むPEを有する、ことを特徴とするプロセッサアレイシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006058302 | 2006-03-03 | ||
JP2006058302 | 2006-03-03 | ||
PCT/JP2007/053633 WO2007099950A1 (ja) | 2006-03-03 | 2007-02-27 | 高速pe間データ再配置機能を有するプロセッサアレイシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007099950A1 JPWO2007099950A1 (ja) | 2009-07-16 |
JP4483991B2 true JP4483991B2 (ja) | 2010-06-16 |
Family
ID=38459055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008502796A Expired - Fee Related JP4483991B2 (ja) | 2006-03-03 | 2007-02-27 | 高速pe間データ再配置機能を有するプロセッサアレイシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US7783861B2 (ja) |
EP (1) | EP2000922A4 (ja) |
JP (1) | JP4483991B2 (ja) |
KR (1) | KR101031680B1 (ja) |
CN (1) | CN101401088B (ja) |
WO (1) | WO2007099950A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009131007A1 (ja) * | 2008-04-22 | 2009-10-29 | 日本電気株式会社 | Simd型並列計算機システム、simd型並列計算方法及び制御プログラム |
CN101908032B (zh) * | 2010-08-30 | 2012-08-15 | 湖南大学 | 可重新配置处理器集合的处理器阵列 |
JP5739758B2 (ja) * | 2011-07-21 | 2015-06-24 | ルネサスエレクトロニクス株式会社 | メモリコントローラ及びsimdプロセッサ |
WO2020000383A1 (en) * | 2018-06-29 | 2020-01-02 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Systems and methods for low-power, real-time object detection |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5129092A (en) * | 1987-06-01 | 1992-07-07 | Applied Intelligent Systems,Inc. | Linear chain of parallel processors and method of using same |
JP2743994B2 (ja) * | 1987-06-29 | 1998-04-28 | 株式会社東芝 | 並列処理システム |
JPH03256159A (ja) * | 1990-03-07 | 1991-11-14 | Mitsubishi Electric Corp | ネツトワーク装置 |
JPH04113444A (ja) * | 1990-09-04 | 1992-04-14 | Oki Electric Ind Co Ltd | 双方向リングバス装置 |
FR2680026B1 (fr) * | 1991-07-30 | 1996-12-20 | Commissariat Energie Atomique | Architecture de systeme en tableau de processeurs a structure parallele. |
JPH05204876A (ja) * | 1991-10-01 | 1993-08-13 | Hitachi Ltd | 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム |
US5471580A (en) * | 1991-10-01 | 1995-11-28 | Hitachi, Ltd. | Hierarchical network having lower and upper layer networks where gate nodes are selectively chosen in the lower and upper layer networks to form a recursive layer |
JPH05342184A (ja) | 1992-06-05 | 1993-12-24 | Toshiba Corp | 格子トーラス結合型並列計算機及び並列プロセッサ |
US5689677A (en) * | 1995-06-05 | 1997-11-18 | Macmillan; David C. | Circuit for enhancing performance of a computer for personal use |
US6230252B1 (en) * | 1997-11-17 | 2001-05-08 | Silicon Graphics, Inc. | Hybrid hypercube/torus architecture |
AU3636901A (en) * | 1999-10-26 | 2001-05-08 | Pyxsys Corporation | Wide connections for transferring data between pe's of an n-dimensional mesh-connected simd array while transferring operands from memory |
US7196708B2 (en) * | 2004-03-31 | 2007-03-27 | Sony Corporation | Parallel vector processing |
US20060041715A1 (en) * | 2004-05-28 | 2006-02-23 | Chrysos George Z | Multiprocessor chip having bidirectional ring interconnect |
-
2007
- 2007-02-27 US US12/224,561 patent/US7783861B2/en not_active Expired - Fee Related
- 2007-02-27 KR KR1020087024270A patent/KR101031680B1/ko not_active IP Right Cessation
- 2007-02-27 EP EP07737435A patent/EP2000922A4/en not_active Withdrawn
- 2007-02-27 JP JP2008502796A patent/JP4483991B2/ja not_active Expired - Fee Related
- 2007-02-27 CN CN2007800076634A patent/CN101401088B/zh not_active Expired - Fee Related
- 2007-02-27 WO PCT/JP2007/053633 patent/WO2007099950A1/ja active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
US7783861B2 (en) | 2010-08-24 |
WO2007099950A1 (ja) | 2007-09-07 |
EP2000922A4 (en) | 2010-09-29 |
KR20090005312A (ko) | 2009-01-13 |
CN101401088B (zh) | 2011-03-30 |
CN101401088A (zh) | 2009-04-01 |
US20090043986A1 (en) | 2009-02-12 |
KR101031680B1 (ko) | 2011-04-29 |
JPWO2007099950A1 (ja) | 2009-07-16 |
EP2000922A1 (en) | 2008-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003449B2 (en) | Processing device and a swizzle pattern generator | |
KR20190043643A (ko) | 높은 성능, 전력 효율, 프로그램 가능 이미지 처리 프로세싱을 위한 아키텍처 | |
US20020035678A1 (en) | Processing architecture having field swapping capability | |
US8868885B2 (en) | On-the-fly permutation of vector elements for executing successive elemental instructions | |
KR20030064239A (ko) | 화상을 처리하는 장치 및 방법과 이 장치에 이용되는컴파일러 | |
JPS62208158A (ja) | マルチプロセツサシステム | |
US10477164B2 (en) | Shift register with reduced wiring complexity | |
CN108073549B (zh) | 卷积运算装置及方法 | |
JP4483991B2 (ja) | 高速pe間データ再配置機能を有するプロセッサアレイシステム | |
US8635432B2 (en) | SIMD processor array system and data transfer method thereof | |
US7996657B2 (en) | Reconfigurable computing circuit | |
US20070220236A1 (en) | Reconfigurable computing device | |
CN113867791B (zh) | 一种计算装置、芯片、板卡、电子设备和计算方法 | |
US20230315477A1 (en) | Computing apparatus, integrated circuit chip, board card, electronic device and computing method | |
WO2022001454A1 (zh) | 集成计算装置、集成电路芯片、板卡和计算方法 | |
WO2013137459A1 (ja) | データ供給装置及びデータ処理装置 | |
CN113867790A (zh) | 计算装置、集成电路芯片、板卡和计算方法 | |
CN113867788A (zh) | 一种计算装置、芯片、板卡、电子设备和计算方法 | |
JP5601817B2 (ja) | 並列演算処理装置 | |
JP2004171099A (ja) | 画像データ処理装置 | |
JPH10269187A (ja) | 信号処理装置 | |
JPH0895781A (ja) | プロセッサの算術論理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100119 |
|
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: 20100302 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100315 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140402 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |