JP5370352B2 - Simd型プロセッサアレイシステム及びそのデータ転送方法 - Google Patents
Simd型プロセッサアレイシステム及びそのデータ転送方法 Download PDFInfo
- Publication number
- JP5370352B2 JP5370352B2 JP2010501931A JP2010501931A JP5370352B2 JP 5370352 B2 JP5370352 B2 JP 5370352B2 JP 2010501931 A JP2010501931 A JP 2010501931A JP 2010501931 A JP2010501931 A JP 2010501931A JP 5370352 B2 JP5370352 B2 JP 5370352B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- processing elements
- value
- processing element
- 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.)
- Active
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 145
- 238000000034 method Methods 0.000 title claims description 92
- 238000012545 processing Methods 0.000 claims abstract description 117
- 230000005540 biological transmission Effects 0.000 claims description 69
- 238000013500 data storage Methods 0.000 claims description 34
- 238000013481 data capture Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000010374 somatic cell nuclear transfer Methods 0.000 description 47
- 239000000872 buffer Substances 0.000 description 18
- 230000000694 effects Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Description
101 プロセッシングエレメント(PE)
110 制御プロセッサ(CP)
120 PE間結合ネットワーク(結合線)
121 転送バッファ(MBF)
1211 隣接PEの転送バッファ(MBF)
200 転送データ
201 ネットワーク制御回路(NCTL)
202 送信回数カウンタ(SCNT)
203 受信回数カウンタ(RCNT)
204 受信バッファ(RBUF)
205 送信バッファ(SBUF)
206 ステータス値(STATUS)
207 動作モードレジスタ(MODE)
208 受信成立フラグ(RFLG)
209 送信成立フラグ(SFLG)
210 IDバッファ(IDB)
211 データ転送中フラグ(FFLG)
220 演算器群
221 ローカルメモリ(IMEM)
222 汎用レジスタおよび条件フラグ群
301 組合せ回路部
302 SSFT命令(PE間データシフト命令)
303 RBUF、RFLG、SFLGの各更新値
304 RCNT、SCNTの各更新値
305 MBFの更新値
411〜415 第1〜第5AND回路
420 OR回路
421〜424 第1〜第4OR回路
431〜435 第1〜第5マルチプレクサ(データセレクタ)、
441〜444 第1〜第4判定回路
451、452 第1、第2減算回路
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「MODEの値が非カウンタ方式を指定し、かつ、SCNTの値が非ゼロであり、かつ、隣接MBFの有効無効を示すフィールドの値が無効を示す値を持つ」場合、あるいは「MODEが非カウンタ方式を指定し、かつ、SCNTの値が非ゼロであり、かつ、RBUFの内容を隣接MBFの内容で更新した」場合に、MBFの内容をSBUFの内容で更新し、それ以外の場合に、MBFの内容を隣接MBFの内容で更新する。
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「MODEの値が非カウンタ方式を指定し、かつ、RCNTの値が非ゼロであり、かつ、IDBの値と隣接MBFのIDを表現した部分の値とが一致する」場合、あるいは「MODEがカウンタ方式を指定し、かつ、RCNTの値がPE間ネットワークでの最小格子距離(以下「DIST」)よりも小さい」場合に、RBUFの内容を隣接MBFの内容で更新する。
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「MODEの値が非カウンタ方式を指定し、かつ、RBUFの内容を隣接MBFの内容で更新」した場合に、RCNTの値から1を減算した値(RCNT−1)で、あるいは、「MODEの値がカウンタ方式を指定し、かつ、RCNTの値がDIST以上を示す」場合に、RCNTの値からDISTの値を減算した値(RCNT−DIST)で、それぞれRCNTの値を更新する。
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「MBFの内容をSBUFの内容で更新」した場合に、SCNTの値から1を減算した値(SCNT−1)で、SCNTの値を更新する。
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「RBUFの内容が隣接MBFの内容で更新された」場合に、RFLGの値を「1」、それ以外の場合に、RFLGの値を「0」に更新する。
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「MBFの内容がSBUFの内容で更新された」場合に、SFLGの値を「1」、それ以外の場合に、SFLGの値を「0」に更新する。
NCTLは、「同サイクルにSSFT命令が実行」された場合に限り、「データ転送動作に参加する全PEのRCNTの値とSCNTの値のいずれかが非ゼロである」場合に、FFLGの値を「1」、それ以外の場合に、FFLGの値を「0」に更新する。
本実施の形態では、PE間で転送し合う必要があるのが単一のデータのみ、かつ発信元PEから受信側PEまでの格子距離情報が受信側PEで保持されている場合、以下に述べる「カウンタ方式」でデータ転送を行う。その場合は、関連技術と類似したネットワーク稼動率で、相異なる距離に位置するPE間でのデータ転送を実現できる。
b)RCNTの値:受信したいデータの発信元PEの自PEからみた格子距離値
c)SCNTの値:ゼロ
d)MBFの内容:各PEの送信データ
次に、CPが、FFLGが「0」となるまで、すなわちデータ転送動作に参加する全PEのRCNTの値がゼロになるまで、SSFT命令を繰り返し発行するよう命令制御を行う。こうすることで、当初自MBFに格納された各PEの送信データは、受信側PEのRBUFに格納されるようになる。
本実施の形態では、相異なる距離に位置するPE間で連続した複数のデータ転送を行う必要がある場合、以下に述べる「発信元ID方式」あるいは「宛先ID方式」のいずれかの「非カウンタ方式」でデータ転送を行う。これにより、それら複数のデータ転送事象を重畳した形で実施でき、ネットワーク稼動率を高め、結果的に転送終了までに要する総サイクル数を減らすことができるようになる。
発信元PEのID情報を受信側PEが保持している場合では、以下に述べる「発信元ID方式」でデータ転送を行う。
b)RCNTの値:受信回数
c)SCNTの値:送信回数
d)IDBの値:最初に受信したいデータの発信元PEのID番号
e)MBFの内容:最初の送信データ
d)SBUFの内容:次送信データ
なお、各送信データは、「データ(DATA)」フィールド、「ID」フィールド、そして有効無効を示す「VALID」フィールドで構成される。これらの各フィールドには、次の値が格納される。
y)「ID」フィールド:自PEのID情報
z)「VALID」フィールド:「有効」を示す値
その他、データ転送動作に参加しないPEでも、MBFの内容を「VALID」フィールドが「無効」を示す送信データにセットしておくものとする。
次に、宛先PEのID情報を発信側PEが保持している場合では、以下に述べる「宛先ID方式」でデータ転送を行う。
b)RCNTの値:受信回数
c)SCNTの値:送信回数
d)IDBの値:自PEのID番号
e)MBFの内容:最初の送信データ
f)SBUFの内容:次送信データ
なお、各送信データの各フィールドは、次の値が格納される。
y)「ID」フィールド:宛先PEのID情報
z)「VALID」フィールド:「有効」を示す値
その他、データ転送動作に参加しないPEでも、MBFの内容を「VALID」フィールドが「無効」を示す送信データにセットしておくものとする。
組合せ回路301は、「MODE207の値S1が非カウンタ方式を指定し(S1=「0」)、かつ、SCNT202の値S3が非ゼロであり(第4判定回路444の出力=「1」)、かつ、隣接MBF1211の有効無効を示す「VALID」フィールドの値が「無効」を示す値を持つ(第1OR回路421の出力=「1」)」場合、あるいは「MODE207の値S1が非カウンタ方式を指定し(S1=「0」)、かつ、SCNT202の値S3が非ゼロであり(第4判定回路444の出力=「1」)、かつ、RBUF204を隣接MBF1211の内容200で更新した」場合(第5AND回路415の出力=第1マルチプレクサ431の選択制御入力=「1」)に、SBUF205の内容S5を更新値305、それ以外の場合(第5AND回路415の出力=第1マルチプレクサ431の選択制御入力=「0」)に、隣接MBF1211の内容200を更新値305として、MBF121の内容を更新する。
組合せ回路301は、「MODE207の値S1が非カウンタ方式を指定し(S1=「0」)、かつ、RCNT202の値S2が非ゼロであり(第2判定回路442の出力=「1」)、かつ、IDB210の値S4と隣接MBF1211の「ID」フィールドとが一致する(第1判定回路441の出力=「1」、第1AND回路411の出力=「1」)」場合、あるいは「MODE207の値S1がカウンタ方式を指定し(S1=「1」)、かつ、RCNT203の値S2がPE間ネットワークでの最小格子距離(以下「DIST」)よりも小さい(第3判定回路443の出力=「1」)」場合(第4OR回路424の出力=第2マルチプレクサ432の選択制御入力=「1」)に、隣接MBF1211の内容200を更新値303として、RBUF204の内容を更新する。
組合せ回路301は、「MODE207の値S1が非カウンタ方式を指定し(S1=「0」)、かつ、RBUF204の内容を隣接MBF1211の内容200で更新」した場合(第4OR回路424の出力=「1」、第4AND回路414の出力=第5マルチプレクサ435の選択制御入力=「0」)に、RCNT203の値S2から「1」減算した値(RCNT−1:第2減算回路452の出力)を更新値304、「MODE207の値S1がカウンタ方式を指定し(S1=「1」)、かつ、RCNT203の値S2がDIST以上である(第3判定回路443の出力=「1」」場合(第3AND回路413の出力=「1」、第4AND回路414の出力=第5マルチプレクサ435の選択制御入力=「1」)に、RCNT203の値S2からDISTの値を減算した値(RCNT−DIST:第2減算回路452の出力)を更新値304として、それぞれRCNT203の値を更新する。
組合せ回路301は、「MBF121の内容をSBUF205の内容S5で更新した」場合(第5AND回路415の出力=第3マルチプレクサ433の選択制御入力=「1」)に、SCNT202の値S3から1減算した値(SCNT−1:第1減算回路451の出力)を更新値304として、SCNT202の値を更新する。
組合せ回路301は、「RBUF204の内容を隣接MBF1211の内容200で更新した」場合(第4OR回路の出力=第2マルチプレクサの選択制御入力=「1」)に「1」を更新値、それ以外の場合(第4OR回路の出力=第2マルチプレクサの選択制御入力=「1」)に「0」を更新値303として、RFLG208の値を更新する。
組合せ回路301は、「MBF121の内容をSBUF205の内容S5で更新した」場合(第5AND回路415の出力=第1マルチプレクサ431の選択制御入力=「1」)に「1」を更新値、それ以外の場合(第5AND回路415の出力=第1マルチプレクサ431の選択制御入力=「0」)に「0」を更新値303として、SFLG209の値を更新する。
組合せ回路301は、「データ転送動作に参加する全PE101のRCNT203の値S2とSCNT202の値S3のいずれかが非ゼロである(第2OR回路422の出力=STATUS206の値=「1」)」場合に「1」を更新値、それ以外の場合(第2OR回路422の出力=STATUS206の値=「0」)に「0」を更新値として、OR回路420を介して、FFLG211の値を更新する。
NCTL201は、隣接MBF1211の内容を更新値として、MBF121を更新する。
NCTL201は、「MODE207の値S1が非カウンタ方式を指定し、かつ、RCNT203の値が非ゼロであり、かつ、IDB210の値と隣接MBF1211の「ID」フィールドの値とが一致する」場合、あるいは「MODE207の値S1がカウンタ方式を指定し、かつ、RCNT203の値S2がPE間ネットワークでの最小格子距離DISTよりも小さい」場合に、隣接MBF1211の内容200を更新値305として、RBUF204の内容S6を更新する。
NCTL201は、「MODE207の値S1が非カウンタ方式を指定し、かつ、RBUF204の内容を隣接MBF1211の内容で更新した」場合にRCNT203の値から1減算した値(RCNT−1)を更新値304、「MODE207の値S1がカウンタ方式を指定し、かつ、RCNT203の値S2がDIST以上」の場合にRCNT203の値からDISTの値を減算した値(RCNT−DIST)を更新値304として、RCNT203の値S3を更新する。
NCTL201は、「RBUF204の内容が隣接MBF1211の内容200で更新された」場合に「1」を更新値303、それ以外の場合に「0」を更新値303として、RFLG208の値を更新する。
NCTL201は、「データ転送動作に参加する全PE101のRCNT203とSCNT202のいずれかが非ゼロである」場合に「1」を更新値、それ以外の場合に「0」を更新値として、FFLG211を更新する。
NCTL201は、「MODE207の値S1が非カウンタ方式を指定し、かつ、SCNT202が非ゼロであり、かつ、隣接MBF101の有効無効を示す「VALID」フィールドの値が無効を示す値を持つ」場合、あるいは「MODE207の値S1が非カウンタ方式を指定し、かつ、SCNT202が非ゼロであり、かつ、RBUF204の内容を隣接MBF1211の内容で更新した」場合に、SBUF205の内容を更新値305、「MODE207の値S1が非カウンタ方式を指定し、かつ、SCNT202がゼロであり、かつ、RBUF204の内容を隣接MBF1211の内容で更新した」場合に、無効を示す任意の送信データを更新値305、それ以外の場合に、隣接MBF1211の内容を更新値305として、MBF121を更新する。
まず、相異なる距離に位置するPE101間での一回のみのデータ転送を行う場合では、例えば図4のプログラムコードで示される動作を実行する。図4に示すプログラムコードの記述において、”..”は、その両隣の命令が同一サイクルに動作することを指定し、”%”は、条件付命令の場合に、どの条件フラグを参照するかを指定し、”:”で終わる文字列は、当該文字列の出現位置の番地を示し、分岐命令のオペランドとして同ラベルを指定した場合は、同番地を指定することを意味する。また、”/*”と「*/」で囲まれた部分は、コメントとする。
図6を参照して、PE101の数が8(PE=0〜7)の場合を例に、「宛先ID方式」を用いて一度だけ相異なる距離に位置するPE101間でのデータ転送を行う場合の動作について説明する。
図7は、送信元PEと受信先PEが図6の例と同じ場合で、「カウンタ方式」を用いて同じデータ転送を実施した場合の様子を示す。
次に、相異なる距離に位置するPE間での連続した複数のデータ転送を行う場合について説明する。この場合は、図8に示すプログラムコードを利用するものとする。
図8のプログラムコードに従い、「宛先ID方式」を用いて、4つのデータ転送を行う場合の動作について説明する。
図10及び図11では、宛先ID方式を用いた場合を説明しているが、これと同様に各PE101が4つの転送すべきデータを有する場合の動作について、例えば「カウンタ方式」を用いて、4回、逐次に転送を実施した場合を考える。この場合は、毎回のデータ転送に先立ち、各バッファに初期値を設定するのに要するサイクル数を無視した場合でも、7+8+7+8=30サイクルかかる計算となる。
Claims (10)
- 複数の命令を同時に発行可能な制御プロセッサと、
前記制御プロセッサにより制御される複数の相互結合したプロセッシングエレメントを有するプロセッシングエレメントアレイと、を備え、
前記制御プロセッサは、前記複数のプロセッシングエレメントに対し、プロセッシングエレメント間データシフト命令を発行し、
前記複数のプロセッシングエレメントは、転送データ記憶部と、転送データ取込み記憶部と、ID記憶部とを有し、前記プロセッシングエレメント間データシフト命令に従い、隣接プロセッシングエレメントの前記転送データ記憶部の内容の全部を自プロセッシングエレメントの前記転送データ記憶部にコピーするデータ送出動作と、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部と前記自プロセッシングエレメントの前記ID記憶部の内容が一致すれば、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部または全部を自プロセッシングエレメントの前記転送データ取込み記憶部にコピーするデータ取込み動作とを行うことを特徴とするSIMD型プロセッサアレイシステム。 - 前記複数のプロセッシングエレメントは、送信データ記憶部を有し、前記プロセッシングエレメント間データシフト命令に従い、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部と前記自プロセッシングエレメントの前記ID記憶部の内容が一致するか、または前記隣接プロセッシングエレメントの前記転送データ記憶部の内容が無効である場合は、前記自プロセッシングエレメントの前記送信データ記憶部の内容を前記自プロセッシングエレメントの前記転送データ記憶部にコピーし、一致しなければ前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の全部を自プロセッシングエレメントの前記転送データ記憶部にコピーするデータ送出動作を行うことを特徴とする請求項1記載のSIMD型プロセッサアレイシステム。
- 前記複数のプロセッシングエレメントは、送信成立フラグを有し、前記プロセッシングエレメント間データシフト命令に従い、前記自プロセッシングエレメントの前記送信データ記憶部の内容を前記自プロセッシングエレメントの前記転送データ記憶部にコピーした場合は、前記自プロセッシングエレメント上の前記送信成立フラグをONにする動作を行うことを特徴とする請求項2記載のSIMD型プロセッサアレイシステム。
- 前記複数のプロセッシングエレメントは、受信回数カウンタを有し、前記プロセッシングエレメント間データシフト命令に従い、前記自プロセッシングエレメントの前記受信回数カウンタが非ゼロであり、かつ、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部と前記自プロセッシングエレメントの前記ID記憶部の内容が一致すれば、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部または全部を前記自プロセッシングエレメントの前記転送データ取込み記憶部にコピーし、かつ、前記受信回数カウンタを1だけデクリメントするデータ取込み動作を行うことを特徴とする請求項1から3のいずれか1項に記載のSIMD型プロセッサアレイシステム。
- 前記複数のプロセッシングエレメントと前記制御プロセッサとの間にOR回路を備え、
前記複数のプロセッシングエレメントの各々は、受信回数カウンタを有し、前記プロセッシングエレメント間データシフト命令に従い、前記受信回数カウンタに基づくステータス値を前記OR回路に送信し、該前記OR回路は、受信した複数の前記ステータス値に基づいて、前記データ転送動作に参加するプロセッシングエレメントの前記受信回数カウンタのうち1つでも非ゼロのものが存在すればON、存在しなければOFFとなるように、前記制御プロセッサ上に存在するデータ転送中フラグを更新する動作を行うことを特徴とする請求項1から3のいずれか1項に記載のSIMD型プロセッサアレイシステム。 - 前記複数のプロセッシングエレメントと前記制御プロセッサとの間にOR回路を備え、
前記複数のプロセッシングエレメントの各々は、送信回数カウンタを有し、前記プロセッシングエレメント間データシフト命令に従い、前記送信回数カウンタに基づくステータス値を前記OR回路に送信し、該前記OR回路は、受信した複数の前記ステータス値に基づいて、前記データ転送動作に参加するプロセッシングエレメントの前記送信回数カウンタのうち1つでも非ゼロのものが存在すればON、存在しなければOFFとなるように、前記制御プロセッサ上に存在するデータ転送中フラグを更新する動作を行うことを特徴とする請求項1から3のいずれか1項に記載のSIMD型プロセッサアレイシステム。 - 前記複数のプロセッシングエレメントと前記制御プロセッサとの間にOR回路を備え、
前記複数のプロセッシングエレメントの各々は、受信回数カウンタおよび送信回数カウンタを有し、前記プロセッシングエレメント間データシフト命令に従い、前記受信回数カウンタ及び前記送信回数カウンタに基づくステータス値を前記OR回路に送信し、該前記OR回路は、受信した複数の前記ステータス値に基づいて、前記データ転送動作に参加するプロセッシングエレメントの前記受信回数カウンタおよび前記送信回数カウンタのうち1つでも非ゼロのものが存在すればON、存在しなければOFFとなるように、前記制御プロセッサ上に存在するデータ転送中フラグを更新する動作を行うことを特徴とする請求項1から3のいずれか1項に記載のSIMD型プロセッサアレイシステム。 - 前記複数のプロセッシングエレメントは、受信成立フラグを有し、前記プロセッシングエレメント間データシフト命令に従い、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部または全部を前記自プロセッシングエレメントの前記転送データ取込み記憶部にコピーした場合は、自プロセッシングエレメント上の前記受信成立フラグをONにする動作を行うことを特徴とする請求項1から7のいずれか1項に記載のSIMD型プロセッサアレイシステム。
- 前記複数のプロセッシングエレメントは、動作モードレジスタと、受信回数カウンタと、受信成立フラグとを有し、前記プロセッシングエレメント間データシフト命令に従い、前記動作モードレジスタの格納値がONの場合は、前記自プロセッシングエレメントの前記受信回数カウンタが前記隣接プロセッシングエレメントとのプロセッシングエレメント間距離に対応する単位数よりも小さくかつ前記受信成立フラグがOFFであれば、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部または全部を前記自プロセッシングエレメントの前記転送データ取込み記憶部にコピーし、前記受信成立フラグをOFFかつ前記受信回数カウンタをゼロに変更し、前記受信回数カウンタが前記プロセッシングエレメント間距離に対応する単位数以上ならば前記受信回数カウンタを前記プロセッシングエレメント間距離に対応する単位数だけデクリメントするデータ取込み動作を行うことを特徴とする請求項1から8のいずれか1項に記載のSIMD型プロセッサアレイシステム。
- 複数の命令を同時に発行可能な制御プロセッサが、前記制御プロセッサにより制御されるプロセッシングエレメントアレイの複数の相互結合したプロセッシングエレメントに対し、プロセッシングエレメント間データシフト命令を発行し、
前記複数のプロセッシングエレメントが、前記プロセッシングエレメント間データシフト命令に従い、隣接プロセッシングエレメントの転送データ記憶部の内容の全部を自プロセッシングエレメントの転送データ記憶部にコピーするデータ送出動作と、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部と前記自プロセッシングエレメントのID記憶部の内容が一致すれば、前記隣接プロセッシングエレメントの前記転送データ記憶部の内容の一部または全部を自プロセッシングエレメントの転送データ取込み記憶部にコピーするデータ取込み動作とを行うことを特徴とするSIMD型プロセッサアレイシステムのデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010501931A JP5370352B2 (ja) | 2008-03-04 | 2009-03-04 | Simd型プロセッサアレイシステム及びそのデータ転送方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008053343 | 2008-03-04 | ||
JP2008053343 | 2008-03-04 | ||
JP2010501931A JP5370352B2 (ja) | 2008-03-04 | 2009-03-04 | Simd型プロセッサアレイシステム及びそのデータ転送方法 |
PCT/JP2009/054046 WO2009110497A1 (ja) | 2008-03-04 | 2009-03-04 | Simd型プロセッサアレイシステム及びそのデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009110497A1 JPWO2009110497A1 (ja) | 2011-07-14 |
JP5370352B2 true JP5370352B2 (ja) | 2013-12-18 |
Family
ID=41056050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010501931A Active JP5370352B2 (ja) | 2008-03-04 | 2009-03-04 | Simd型プロセッサアレイシステム及びそのデータ転送方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8635432B2 (ja) |
EP (1) | EP2254057B1 (ja) |
JP (1) | JP5370352B2 (ja) |
WO (1) | WO2009110497A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5739758B2 (ja) * | 2011-07-21 | 2015-06-24 | ルネサスエレクトロニクス株式会社 | メモリコントローラ及びsimdプロセッサ |
WO2016051435A1 (en) * | 2014-10-01 | 2016-04-07 | Renesas Electronics Corporation | Data transfer apparatus and microcomputer |
JP7386543B2 (ja) | 2018-03-28 | 2023-11-27 | クアドリック.アイオー,インコーポレイテッド | 機械知覚および高密度アルゴリズム集積回路を実装するためのシステムおよび方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728763A (ja) * | 1993-07-15 | 1995-01-31 | Fujitsu Ltd | 放送通信方法および放送ルーティング装置 |
JPH0736842A (ja) * | 1993-07-20 | 1995-02-07 | Toshiba Corp | 並列計算機 |
JP2004234407A (ja) * | 2003-01-31 | 2004-08-19 | Hitachi Ulsi Systems Co Ltd | データ処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US5765015A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
JP2647327B2 (ja) | 1992-04-06 | 1997-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 大規模並列コンピューティング・システム装置 |
US6073185A (en) * | 1993-08-27 | 2000-06-06 | Teranex, Inc. | Parallel data processor |
JP3971559B2 (ja) | 2000-10-02 | 2007-09-05 | 株式会社リコー | 並列プロセッサ及びそれを用いた画像処理装置 |
US7596678B2 (en) * | 2003-04-23 | 2009-09-29 | Micron Technology, Inc. | Method of shifting data along diagonals in a group of processing elements to transpose the data |
JP4698242B2 (ja) | 2004-02-16 | 2011-06-08 | パナソニック株式会社 | 並列演算プロセッサ、並列演算プロセッサの動作を制御する制御プログラム及び制御方法、並びに並列演算プロセッサを搭載した画像処理装置 |
JP4442905B2 (ja) | 2006-08-09 | 2010-03-31 | 株式会社リコー | 画像データの処理方法 |
-
2009
- 2009-03-04 WO PCT/JP2009/054046 patent/WO2009110497A1/ja active Application Filing
- 2009-03-04 EP EP09717207.6A patent/EP2254057B1/en not_active Not-in-force
- 2009-03-04 JP JP2010501931A patent/JP5370352B2/ja active Active
- 2009-03-04 US US12/920,765 patent/US8635432B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728763A (ja) * | 1993-07-15 | 1995-01-31 | Fujitsu Ltd | 放送通信方法および放送ルーティング装置 |
JPH0736842A (ja) * | 1993-07-20 | 1995-02-07 | Toshiba Corp | 並列計算機 |
JP2004234407A (ja) * | 2003-01-31 | 2004-08-19 | Hitachi Ulsi Systems Co Ltd | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US8635432B2 (en) | 2014-01-21 |
WO2009110497A1 (ja) | 2009-09-11 |
EP2254057A4 (en) | 2011-10-05 |
US20110010524A1 (en) | 2011-01-13 |
EP2254057A1 (en) | 2010-11-24 |
JPWO2009110497A1 (ja) | 2011-07-14 |
EP2254057B1 (en) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
CN109542515B (zh) | 运算装置及方法 | |
EP2289003B1 (en) | Method & apparatus for real-time data processing | |
CN111512292A (zh) | 用于可配置空间加速器中的非结构化数据流的装置、方法和系统 | |
US20190303168A1 (en) | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator | |
KR101035646B1 (ko) | 파이프라인 코프로세서 | |
US20190018815A1 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
JP5496578B2 (ja) | 高密度スレッド化ネットワーク・オン・ア・チップにおけるソフトウェア制御の任意ベクトル・オペランド選択をサポートする直接スレッド間通信バッファ | |
JP2006012182A (ja) | データ処理システムとその方法 | |
CN113811859A (zh) | 控制流屏障以及可重构数据处理器 | |
JP5370352B2 (ja) | Simd型プロセッサアレイシステム及びそのデータ転送方法 | |
JP5231949B2 (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
US8171259B2 (en) | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal | |
US6948049B2 (en) | Data processing system and control method | |
EP1220091B1 (en) | Circuit and method for instruction compression and dispersal in VLIW processors | |
US20220261251A1 (en) | Processing device with vector transformation execution | |
JP3841967B2 (ja) | マイクロプロセッサ | |
JP5372307B2 (ja) | データ処理装置およびその制御方法 | |
US5826098A (en) | Data processing system which converts received data packet into extended packet with prescribed field for accumulation process | |
JP5708634B2 (ja) | Simdプロセッサ | |
KR20010072490A (ko) | 레지스터 스택을 포함하는 데이터 프로세서, 그 처리방법, 컴퓨터 프로그램 제품 및 멀티미디어 장치 | |
JP2000231488A (ja) | プロセッサ | |
JPH0816392A (ja) | コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法 | |
CN116097213A (zh) | 一种图指令处理方法及装置 | |
CN104011674A (zh) | 数字信号处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130723 |
|
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: 20130820 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130902 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5370352 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |