JP2012190389A - プロセッサ装置及びその演算方法 - Google Patents
プロセッサ装置及びその演算方法 Download PDFInfo
- Publication number
- JP2012190389A JP2012190389A JP2011055211A JP2011055211A JP2012190389A JP 2012190389 A JP2012190389 A JP 2012190389A JP 2011055211 A JP2011055211 A JP 2011055211A JP 2011055211 A JP2011055211 A JP 2011055211A JP 2012190389 A JP2012190389 A JP 2012190389A
- Authority
- JP
- Japan
- Prior art keywords
- data
- matrix
- processing
- register
- exchanging
- 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
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】プロセッサ装置は、各PE方向に行ベクトルデータが配列され、かつ各PE内レジスタ方向に列ベクトルデータがそれぞれ配列された複数個の行列データの数学的転置を行うときに、各PE間のレジスタ参照、格納又は移動を行う単一命令複数データ型の演算命令を用いて、対角位置の要素データ又はベクトルデータの移動をして交換を行うステップを含み、行列に含まれる2のべき乗次の部分行列を対象にして、最小2次の行列(2×2要素)では対角要素データの移動又は交換を行い、上位のべき乗次数の部分行列では対角位置の下位の部分行列の要素データ群をブロックとして一括に移動又は交換し、これらの手順を上位次数から最小次数まで、又は最小次数から上位次数まで順次繰り返して行って複数の行列データを一括して並列同時に転置処理する。
【選択図】図2
Description
[数1]
__builtin_ia32_unpcklps(),__builtin_ia32_unpckhps()
がプロセッサの配置変換(インターリーブやパック命令と一般に呼称されるものである)命令(もしくは命令マクロ)に対応している。
[数2]
settb/t1 #1,#3f8h
はプロセシングエレメント(PE)の処理実行又は処理非実行を制御するための演算マスクビットを設定する命令であり、即値とPE番号とのビット比較により、演算マスクビットの設定を行うものである。第1オペランドが比較値、第2オペランドは比較の際無視するビットを指定するアドレスマスクである。演算マスクビットは各PE毎にT1からT7までの7個を持ち、同時に7種類の演算マスクを保持してPEの演算実行制御を個々に行うことができる。先の命令の場合、PE番号の下位3ビットを除く上位ビットを全て無視して、即値「1」と比較し一致するPEのT1ビットをセット(すなわち「1」を書き込む)するように動作する。結果、PE番号を8で割り算した余りが1である全てのPEのT1ビットがセットされることになる。さらに、Lda命令は指定されたソースレジスタ内容を第1アキュムレータAにロードする命令、Ldf命令は第2アキュムレータFにロードする命令である。
[数3]
lda/t1 TmR1:L1
は2つのオプションが付加されており、/t1により演算マスクT1ビットがセットされたPEだけで実行される命令となり、T1ビットがクリアされているPEでは実行されない(NOP)。オペランドのTmR1はソースレジスタの指定で、:L1は1つ下位(Lower:PE番号が小さいもの)のPEのレジスタを参照するように修飾される。この従来例のプロセッサでは自身以外のPEのレジスタ参照は、上位側、下位側それぞれ3つの距離まで可能であり、先のレジスタ修飾は:L1からL3まで、及びU1からU3まで使うことができる。ここで、Uは上位番号のPEを表す。これらの修飾子が付加されない場合は自身のレジスタが参照される。本機能により、PE方向のデータの移動が可能となり、このような態様を以下、「PEシフト」という。
[数4]
ldf TmR4:L3,TmR10
命令のように、ロード命令で2項のオペランドが配される場合は、アキュムレータにソースレジスタの内容がロードされた後、同時にアキュムレータの内容が第2項のデスティネーションレジスタにストア(複写)されるように動作する。
;===================================================
;行列転置
;---------------------------------------------------
;Input
; TmR00(1行目)〜TmR07(8行目)
;---------------------------------------------------
;Output
; TmR20(1行目)〜TmR27(8行目)
;---------------------------------------------------
;Tmp
; TmR10,TmR11,TmR12,TmR13,TmR14,
; t1,t2,t3,t4,t5,t6,t7
;===================================================
;
;演算マスクの設定
settb/t1 #1,#3f8h ;01000000 ;STEP1
settb/t2 #2,#3f8h ;00100000 ;STEP2
settb/t3 #3,#3f8h ;00010000 ;STEP3
settb/t4 #4,#3f8h ;00001000 ;STEP4
settb/t5 #5,#3f8h ;00000100 ;STEP5
settb/t6 #6,#3f8h ;00000010 ;STEP6
settb/t7 #7,#3f8h ;00000001 ;STEP7
;
;1行目の配置
lda TmR0 ;STEP8
lda/t1 TmR1:L1 ;STEP9
lda/t2 TmR2:L2 ;STEP10
lda/t3 TmR3:L3 ;STEP11
ldf TmR4:L3,TmR10 ;STEP12
ldf TmR5:L3,TmR11 ;STEP13
ldf TmR6:L3,TmR12 ;STEP14
ldf TmR7:L3 ;STEP15
lda/t4 TmR10:L1 ;STEP16
lda/t5 TmR11:L2 ;STEP17
stf TmR10:U1 ;STEP18
lda/t6 TmR12:L3 ;STEP19
lda/t7 TmR10:L3,TmR20 ;STEP20
;2行目の配置
lda TmR0:U1 ;STEP21
lda/t1 TmR1 ;STEP22
lda/t2 TmR2:L1 ;STEP23
lda/t3 TmR3:L2 ;STEP24
lda/t4 TmR4:L3 ;STEP25
ldf TmR5:L3,TmR10 ;STEP26
ldf TmR6:L3,TmR11 ;STEP27
ldf TmR7:L3,TmR12 ;STEP28
lda/t5 TmR10:L1 ;STEP29
lda/t6 TmR11:L2 ;STEP30
lda/t7 TmR12:L3,TmR21 ;STEP31
;3行目の配置
lda TmR0:U2 ;STEP32
lda/t1 TmR1:U1 ;STEP33
lda/t2 TmR2 ;STEP34
lda/t3 TmR3:L1 ;STEP35
lda/t4 TmR4:L2 ;STEP36
lda/t5 TmR5:L3 ;STEP37
ldf TmR6:L3,TmR10 ;STEP38
ldf TmR7:L3,TmR11 ;STEP39
lda/t6 TmR10:L1 ;STEP40
lda/t7 TmR11:L2,TmR22 ;STEP41
;4行目の配置
lda TmR0:U3,TmR10 ;STEP42
lda/t1 TmR1:U2 ;STEP43
lda/t2 TmR2:U1 ;STEP44
lda/t3 TmR3 ;STEP45
lda/t4 TmR4:L1 ;STEP46
lda/t5 TmR5:L2 ;STEP47
ldf TmR7:L3,TmR11 ;STEP48
lda/t6 TmR6:L3 ;STEP49
lda/t7 TmR11:L1,TmR23 ;STEP50
;5行目の配置
lda TmR10:U1 ;STEP51
lda/t1 TmR1:U3 ;STEP52
lda/t2 TmR2:U2 ;STEP53
lda/t3 TmR3:U1 ;STEP54
lda/t4 TmR4 ;STEP55
lda/t5 TmR5:L1 ;STEP56
lda/t6 TmR6:L2 ;STEP57
lda/t7 TmR7:L3,TmR24 ;STEP58
;6行目の配置
ldf TmR1:U3,TmR11 ;STEP59
lda TmR10:U2 ;STEP60
lda/t1 TmR11:U1 ;STEP61
lda/t2 TmR2:U3 ;STEP62
lda/t3 TmR3:U2 ;STEP63
lda/t4 TmR4:U1 ;STEP64
lda/t5 TmR5 ;STEP65
lda/t6 TmR6:L1 ;STEP66
lda/t7 TmR7:L2,TmR25 ;STEP67
;7行目の配置
ldf TmR2:U3,TmR12 ;STEP68
lda TmR10:U3 ;STEP69
lda/t1 TmR11:U2 ;STEP70
lda/t2 TmR12:U1 ;STEP71
lda/t3 TmR3:U3 ;STEP72
lda/t4 TmR4:U2 ;STEP73
lda/t5 TmR5:U1 ;STEP74
lda/t6 TmR6 ;STEP75
lda/t7 TmR7:L1,TmR26 ;STEP76
;8行目の配置
ldf TmR10 ;STEP77
stf TmR14:L1 ;STEP78
lda TmR14:U3 ;STEP79
ldf TmR3:U3,TmR13 ;STEP80
lda/t1 TmR11:U3 ;STEP81
lda/t2 TmR12:U2 ;STEP82
lda/t3 TmR13:U1 ;STEP83
lda/t4 TmR4:U3 ;STEP84
lda/t5 TmR5:U2 ;STEP85
lda/t6 TmR6:U1 ;STEP86
lda/t7 TmR7,TmR27 ;STEP87
;
上記各プロセシングエレメントは
複数のデータを保持する演算レジスタと、
所定の演算マスク値に従って命令の実行又は非実行を制御する制御手段とを備え、
上記各プロセシングエレメントはさらに、
処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタ値を参照する手段と、演算結果を処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタに転送して格納する手段とのうちの少なくとも1つの手段とを備え、
上記プロセッサ装置は、上記各プロセシングエレメント方向に行ベクトルデータが配列され、かつ上記各プロセシングエレメント内レジスタ方向に列ベクトルデータがそれぞれ配列された複数個の行列データの数学的転置を行うときに、
上記各プロセシングエレメント間のレジスタ参照、格納又は移動を行う単一命令複数データ型の演算命令を用いて、対角位置の要素データ又はベクトルデータの移動をして交換を行うステップを含み、行列に含まれる2のべき乗次の部分行列を対象にして、
最小2次の行列(2×2要素)では対角要素データの移動又は交換を行う第1の手順と、
上位のべき乗次数の部分行列では対角位置の下位の部分行列の要素データ群をブロックとして一括に移動又は交換する第2の手順とを実行し、
上記第1及び第2の手順を、上位次数から最小次数まで、又は最小次数から上位次数まで順次繰り返して行って複数の行列データを一括して並列同時に転置処理することを特徴とする。
上記各プロセシングエレメントは
複数のデータを保持する演算レジスタと、
所定の演算マスク値に従って命令の実行又は非実行を制御する制御手段とを備え、
上記各プロセシングエレメントはさらに、
処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタ値を参照する手段と、演算結果を処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタに転送して格納する手段とのうちの少なくとも1つの手段とを備え、
上記プロセッサ装置は、上記各プロセシングエレメント方向に行ベクトルデータが配列され、かつ上記各プロセシングエレメント内レジスタ方向に列ベクトルデータがそれぞれ配列された複数個の行列データの数学的転置を行うときに、
上記各プロセシングエレメント間のレジスタ参照、格納又は移動を行う単一命令複数データ型の演算命令を用いて、対角位置の要素データ又はベクトルデータの移動をして交換を行うステップを含み、行列に含まれる2のべき乗次の部分行列を対象にして、
最小2次の行列(2×2要素)では対角要素データの移動又は交換を行う第1の手順と、
上位のべき乗次数の部分行列では対角位置の下位の部分行列の要素データ群をブロックとして一括に移動又は交換する第2の手順とを実行し、
上記第1及び第2の手順を、上位次数から最小次数まで、又は最小次数から上位次数まで順次繰り返して行って複数の行列データを一括して並列同時に転置処理することを特徴とする。
図1は本発明の実施形態に係るSIMD型マイクロプロセッサ2の基本構成を示すブロック図である。実施形態に係るSIMD型マイクロプロセッサ2は、主としてプロセッサ2全体を制御するグローバルプロセッサ(GP)4と、主として外部入出力装置からデータを入力しデータ処理を行い、外部入出力装置にデータを出力するプロセシングエレメント(PE)3とを備えて構成される。PE3は、複数データを同時に処理するために複数用意されている。図1では、1個のGP4と、256個のPE3とにより、SIMD型マイクロプロセッサ2が構成されている。
(a)命令コードで構成されるプログラムを格納するためのプログラムRAM10と、
(b)GP4での演算データを格納するデータRAM12と、
(c)プログラムを解読し各種ブロックに各種制御信号を送るシーケンシャルユニット(SCU)9と、
(d)データを格納する複数の汎用レジスタ(G0〜G3)と、
(e)SCU9にプログラムの命令コードを送るためにプログラムのアドレスを保持するプログラムカウンタ(PC)14と、
(f)データメモリにスタックを形成するためデータメモリのアドレスを格納するスタックポインタ(SP)24と、
(g)プログラムの途中でサブルーチン処理を行う際には分岐が発生するが分岐前のアドレスを格納する複数のリンクレジスタ(LS、LI、LN)と、
(h)データメモリのデータ、命令コード中に記述された数値(即値)データ、もしくは汎用レジスタに格納されているデータのいずれかの組み合わせに対して、算術論理演算を行う算術論理演算装置(ALU)11と、
(i)プロセッサの状態を保持するプロセッサステータスレジスタ(図示せず。)と、
(j)ハードウェア割り込みとソフトウェア割り込みを制御する割り込み制御回路(図示せず。)と、
(k)外部入出力に直接接続され外部からのデータの入出力を制御する外部入出力制御回路(図示せず。)とを備えて構成される。
(a)レジスタファイル6からのデータをシフトして符号付き拡張もしくは符号無し拡張をして16ビットデータに加工するシフト拡張器44と、
(b)例えば、Aレジスタ38とFレジスタ40などを含む複数の汎用レジスタと、
(c)レジスタファイル6からのデータを、シフト拡張器44を経由して加工し1入力とし、他方の入力をAレジスタ36からの入力とする算術論理演算装置(ALU)36と、
(d)PE番号マスク回路、固定値選択回路、及びnおきにビットパターンデータ出力回路のそれぞれからの出力を入力とし、自らの出力をAレジスタ38やTレジスタ54に繋げる選択回路35とを備えて構成される。
本発明に係る好適な実施形態を以下に説明する。以下に示す表11〜表15は並列型のSIMDプロセッサにおいて行列転置処理方法の手順を示したプログラムリストである。本実施形態に係るSIMDプロセッサの形態及び命令セットの説明は、上述の従来例と同様であるので省略する。命令に付加される/f1オプションは、マスクビットT1に基づく演算制御のための修飾で、T1ビットが0であれば命令実行を行うよう制御される。/fに続く数字はT1〜T7ビットを指定するものである。プロセッサにおいてどの距離のPEまでアクセスできるかは、時代の集積技術と応用分野からの性能要請に基づきトレードオフで決定されるものであるので、本実施形態ではあくまで一例として示したにすぎず、以降の説明や本発明の内容をなんら制約するものではない。
;===================================================
;行列転置
;---------------------------------------------------
;Input
; TmR0(1行目)〜TmR7(8行目)
;---------------------------------------------------
;Output
; TmR0(1行目)〜TmR7(8行目)
;---------------------------------------------------
;Tmp
; TmR8~TmR9
; t1,t2,t3
;===================================================
;
;演算マスクの設定
settb/t1#1,#3feh ;01010101 ;STEP1
settb/t2#2,#3fdh ;00110011 ;STEP2
settb/t3#4,#3fbh ;00001111 ;STEP3
;
;2×2部分行列の転置
lda TmR0,TmR8 ;STEP4
ldf TmR1,TmR9 ;STEP5
ldf/f1 TmR8:u1,TmR1 ;STEP6
lda/t1 TmR9:l1,TmR0 ;STEP7
;
lda TmR2,TmR8 ;STEP8
ldf TmR3,TmR9 ;STEP9
ldf/f1 TmR8:u1,TmR3 ;STEP10
lda/t1 TmR9:l1,TmR2 ;STEP11
;
lda TmR4,TmR8 ;STEP12
ldf TmR5,TmR9 ;STEP13
ldf/f1 TmR8:u1,TmR5 ;STEP14
lda/t1 TmR9:l1,TmR2 ;STEP15
;
lda TmR6,TmR8 ;STEP16
ldf TmR7,TmR9 ;STEP17
ldf/f1 TmR8:u1,TmR7 ;STEP18
lda/t1 TmR9:l1,TmR6 ;STEP19
;
;4×4部分行列の転置
lda TmR0,TmR8 ;STEP20
ldf TmR2,TmR9 ;STEP21
ldf/f2 TmR8:u2,TmR2 ;STEP22
lda/t2 TmR9:l2,TmR0 ;STEP23
;
lda TmR1,TmR8 ;STEP24
ldf TmR3,TmR9 ;STEP25
ldf/f2 TmR8:u2,TmR3 ;STEP26
lda/t2 TmR9:l2,TmR1 ;STEP27
;
lda TmR4,TmR8 ;STEP28
ldf TmR6,TmR9 ;STEP29
ldf/f2 TmR8:u2,TmR6 ;STEP30
lda/t2 TmR9:l2,TmR4 ;STEP31
;
lda TmR5,TmR8 ;STEP32
ldf TmR7,TmR9 ;STEP33
ldf/f2 TmR8:u2,TmR7 ;STEP34
lda/t2 TmR9:l2,TmR5 ;STEP35
;
;8×8最終行列の転置
lda TmR0 ;STEP36
sta TmR8:l2 ;STEP37
ldf TmR4 ;STEP38
stf TmR9:u2 ;STEP39
ldf/f3 TmR8:u2,TmR4 ;STEP40
lda/t3 TmR9:l2,TmR0 ;STEP41
;
lda TmR1 ;STEP42
sta TmR8:l2 ;STEP43
ldf TmR5 ;STEP44
stf TmR9:u2 ;STEP45
ldf/f3 TmR8:u2,TmR5 ;STEP46
lda/t3 TmR9:l2,TmR1 ;STEP47
;
lda TmR2 ;STEP48
sta TmR8:l2 ;STEP49
ldf TmR6 ;STEP50
stf TmR9:u2 ;STEP51
ldf/f3 TmR8:u2,TmR6 ;STEP52
lda/t3 TmR9:l2,TmR2 ;STEP53
;
lda TmR3 ;STEP54
sta TmR8:l2 ;STEP55
ldf TmR7 ;STEP56
stf TmR9:u2 ;STEP57
ldf/f3 TmR8:u2,TmR7 ;STEP58
lda/t3 TmR9:l2,TmR3 ;STEP59
[数5]
settb/t1 #1,#3feh
命令は、PE番号の最下位ビット(bit0)が1のもの全てのT1ビットをセット(1を設定)する。このことにより、T1ビットの値は、最下位PEから010101010…が設定される。すなわち、偶数番号のPEのT1ビットは0に、奇数ビットのT1ビットは1に設定される。
settb/t2 #2,#3fdh
命令は、PE番号のbit1(最下位ビットから次のビットをいう。)が1のもの全てのT2ビットをセット(1を設定)する。このことにより、T2ビットの値は、最下位PEから001100110011…が設定される。すなわち、連続する4つのPE毎に連続する下位2つのPEのT2ビットは0に、上位2つのPEのT2ビットは1に設定される。
settb/t3 #4,#3fbh
命令は、PE番号のbit2(最下位ビットから2ビット目のビットをいう。)が1のもの全てのT3ビットをセット(1を設定)する。このことにより、T3ビットの値は、最下位PEから0000111100001111…が設定される。すなわち連続する8つのPE毎に連続する下位4つのPEのT3ビットは0に、上位4つのPEのT3ビットは1に設定される。
3…プロセシングエレメント(PE)、
4…グローバルプロセッサ(GP)、
6…レジスタファイル、
8…演算アレイ、
9…シーケンシャルユニット(SCU)、
10…プログラムRAM、
11…算術論理演算装置(ALU)、
12…データRAM、
14…プログラムカウンタ(PC)、
24…スタックポインタ(SP)、
34,38,40,54…レジスタ、
44…シフト拡張器、
G0〜G3…汎用レジスタ、
LS,LI,LN…リンクレジスタ。
Claims (4)
- 複数のプロセシングエレメントを備えたプロセッサ装置において、
上記各プロセシングエレメントは
複数のデータを保持する演算レジスタと、
所定の演算マスク値に従って命令の実行又は非実行を制御する制御手段とを備え、
上記各プロセシングエレメントはさらに、
処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタ値を参照する手段と、演算結果を処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタに転送して格納する手段とのうちの少なくとも1つの手段とを備え、
上記プロセッサ装置は、上記各プロセシングエレメント方向に行ベクトルデータが配列され、かつ上記各プロセシングエレメント内レジスタ方向に列ベクトルデータがそれぞれ配列された複数個の行列データの数学的転置を行うときに、
上記各プロセシングエレメント間のレジスタ参照、格納又は移動を行う単一命令複数データ型の演算命令を用いて、対角位置の要素データ又はベクトルデータの移動をして交換を行うステップを含み、行列に含まれる2のべき乗次の部分行列を対象にして、
最小2次の行列(2×2要素)では対角要素データの移動又は交換を行う第1の手順と、
上位のべき乗次数の部分行列では対角位置の下位の部分行列の要素データ群をブロックとして一括に移動又は交換する第2の手順とを実行し、
上記第1及び第2の手順を、上位次数から最小次数まで、又は最小次数から上位次数まで順次繰り返して行って複数の行列データを一括して並列同時に転置処理することを特徴とするプロセッサ装置。 - 行列データの対角位置の要素又はベクトルデータの移動又は交換を行う手順において、上記プロセッサ装置の単一命令複数データ型の演算命令と演算マスク値による制御を用いて、連続して配置される2N個の各プロセシングエレメント毎に、連続して配置される2N−1個のデータ(ここで、Nは1以上の自然数である。)の移動又は交換を一括して同時並列に行うことを特徴とする請求項1記載のプロセッサ装置。
- 複数のプロセシングエレメントを備えたプロセッサ装置の演算方法において、
上記各プロセシングエレメントは
複数のデータを保持する演算レジスタと、
所定の演算マスク値に従って命令の実行又は非実行を制御する制御手段とを備え、
上記各プロセシングエレメントはさらに、
処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタ値を参照する手段と、演算結果を処理を行うプロセッシングエレメント自身以外のプロセシングエレメントのレジスタに転送して格納する手段とのうちの少なくとも1つの手段とを備え、
上記プロセッサ装置は、上記各プロセシングエレメント方向に行ベクトルデータが配列され、かつ上記各プロセシングエレメント内レジスタ方向に列ベクトルデータがそれぞれ配列された複数個の行列データの数学的転置を行うときに、
上記各プロセシングエレメント間のレジスタ参照、格納又は移動を行う単一命令複数データ型の演算命令を用いて、対角位置の要素データ又はベクトルデータの移動をして交換を行うステップを含み、行列に含まれる2のべき乗次の部分行列を対象にして、
最小2次の行列(2×2要素)では対角要素データの移動又は交換を行う第1の手順と、
上位のべき乗次数の部分行列では対角位置の下位の部分行列の要素データ群をブロックとして一括に移動又は交換する第2の手順とを実行し、
上記第1及び第2の手順を、上位次数から最小次数まで、又は最小次数から上位次数まで順次繰り返して行って複数の行列データを一括して並列同時に転置処理することを特徴とするプロセッサ装置の演算方法。 - 行列データの対角位置の要素又はベクトルデータの移動又は交換を行う手順において、上記プロセッサ装置の単一命令複数データ型の演算命令と演算マスク値による制御を用いて、連続して配置される2N個の各プロセシングエレメント毎に、連続して配置される2N−1個のデータ(ここで、Nは1以上の自然数である。)の移動又は交換を一括して同時並列に行うことを特徴とする請求項3記載のプロセッサ装置の演算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011055211A JP5760532B2 (ja) | 2011-03-14 | 2011-03-14 | プロセッサ装置及びその演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011055211A JP5760532B2 (ja) | 2011-03-14 | 2011-03-14 | プロセッサ装置及びその演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012190389A true JP2012190389A (ja) | 2012-10-04 |
JP5760532B2 JP5760532B2 (ja) | 2015-08-12 |
Family
ID=47083440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011055211A Expired - Fee Related JP5760532B2 (ja) | 2011-03-14 | 2011-03-14 | プロセッサ装置及びその演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5760532B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003547A (zh) * | 2017-03-14 | 2022-02-01 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08314898A (ja) * | 1995-05-17 | 1996-11-29 | Sgs Thomson Microelectron Ltd | マトリックス転置方法 |
JPH08314717A (ja) * | 1995-05-17 | 1996-11-29 | Sgs Thomson Microelectron Ltd | コンピュータ及びコンピュータ動作方法 |
US5644517A (en) * | 1992-10-22 | 1997-07-01 | International Business Machines Corporation | Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors |
JPH11259441A (ja) * | 1998-03-13 | 1999-09-24 | Hitachi Ltd | 並列計算機における全対全通信方法 |
JP2001084229A (ja) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd型プロセッサ |
JP2001134538A (ja) * | 1999-11-05 | 2001-05-18 | Ricoh Co Ltd | 信号処理装置 |
JP2002207706A (ja) * | 2001-01-09 | 2002-07-26 | Ricoh Co Ltd | プロセッサエレメント間での総和値計算及びピーク検出を行なうsimd型マイクロプロセッサ |
JP2003067354A (ja) * | 2001-08-29 | 2003-03-07 | Hitachi Ltd | 並列計算機システム及びプロセッサ間通信処理方法 |
JP2003337696A (ja) * | 2002-03-06 | 2003-11-28 | Matsushita Electric Ind Co Ltd | データ処理装置及びプログラム |
JP2004206387A (ja) * | 2002-12-25 | 2004-07-22 | Ricoh Co Ltd | 画像処理方法およびプロセッサおよび画像処理装置 |
JP2004362253A (ja) * | 2003-06-04 | 2004-12-24 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2005174293A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
JP2005174292A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データシフト操作 |
JP2005174297A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | Simd処理における多重化操作 |
JP2005267615A (ja) * | 2004-02-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | 並列演算プロセッサ |
JP2006260479A (ja) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Simd型マイクロプロセッサ及びデータ処理方法 |
JP2006338696A (ja) * | 2006-09-25 | 2006-12-14 | Ricoh Co Ltd | Simdプロセッサにおけるデータ設定装置 |
JP2007073010A (ja) * | 2005-09-09 | 2007-03-22 | Ricoh Co Ltd | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
JP2007514226A (ja) * | 2003-12-09 | 2007-05-31 | アーム・リミテッド | データ処理レジスタに別名を付ける装置および方法 |
JP2007514227A (ja) * | 2003-12-09 | 2007-05-31 | アーム・リミテッド | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 |
JP2007535020A (ja) * | 2003-12-09 | 2007-11-29 | アーム・リミテッド | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 |
JP2008217061A (ja) * | 2007-02-28 | 2008-09-18 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2009015555A (ja) * | 2007-07-04 | 2009-01-22 | Ricoh Co Ltd | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサのデータ転送方法 |
JP2009015556A (ja) * | 2007-07-04 | 2009-01-22 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2011100452A (ja) * | 2009-11-04 | 2011-05-19 | Internatl Business Mach Corp <Ibm> | 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム |
WO2011064898A1 (en) * | 2009-11-26 | 2011-06-03 | Nec Corporation | Apparatus to enable time and area efficient access to square matrices and its transposes distributed stored in internal memory of processing elements working in simd mode and method therefore |
-
2011
- 2011-03-14 JP JP2011055211A patent/JP5760532B2/ja not_active Expired - Fee Related
Patent Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644517A (en) * | 1992-10-22 | 1997-07-01 | International Business Machines Corporation | Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors |
JPH08314898A (ja) * | 1995-05-17 | 1996-11-29 | Sgs Thomson Microelectron Ltd | マトリックス転置方法 |
JPH08314717A (ja) * | 1995-05-17 | 1996-11-29 | Sgs Thomson Microelectron Ltd | コンピュータ及びコンピュータ動作方法 |
JPH11259441A (ja) * | 1998-03-13 | 1999-09-24 | Hitachi Ltd | 並列計算機における全対全通信方法 |
JP2001084229A (ja) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd型プロセッサ |
JP2001134538A (ja) * | 1999-11-05 | 2001-05-18 | Ricoh Co Ltd | 信号処理装置 |
JP2002207706A (ja) * | 2001-01-09 | 2002-07-26 | Ricoh Co Ltd | プロセッサエレメント間での総和値計算及びピーク検出を行なうsimd型マイクロプロセッサ |
JP2003067354A (ja) * | 2001-08-29 | 2003-03-07 | Hitachi Ltd | 並列計算機システム及びプロセッサ間通信処理方法 |
JP2003337696A (ja) * | 2002-03-06 | 2003-11-28 | Matsushita Electric Ind Co Ltd | データ処理装置及びプログラム |
JP2004206387A (ja) * | 2002-12-25 | 2004-07-22 | Ricoh Co Ltd | 画像処理方法およびプロセッサおよび画像処理装置 |
JP2004362253A (ja) * | 2003-06-04 | 2004-12-24 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2005174292A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データシフト操作 |
JP2007514226A (ja) * | 2003-12-09 | 2007-05-31 | アーム・リミテッド | データ処理レジスタに別名を付ける装置および方法 |
JP2005174297A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | Simd処理における多重化操作 |
JP2005174293A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
JP2007535020A (ja) * | 2003-12-09 | 2007-11-29 | アーム・リミテッド | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 |
JP2007514227A (ja) * | 2003-12-09 | 2007-05-31 | アーム・リミテッド | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 |
JP2005267615A (ja) * | 2004-02-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | 並列演算プロセッサ |
JP2006260479A (ja) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Simd型マイクロプロセッサ及びデータ処理方法 |
JP2007073010A (ja) * | 2005-09-09 | 2007-03-22 | Ricoh Co Ltd | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
JP2006338696A (ja) * | 2006-09-25 | 2006-12-14 | Ricoh Co Ltd | Simdプロセッサにおけるデータ設定装置 |
JP2008217061A (ja) * | 2007-02-28 | 2008-09-18 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2009015555A (ja) * | 2007-07-04 | 2009-01-22 | Ricoh Co Ltd | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサのデータ転送方法 |
JP2009015556A (ja) * | 2007-07-04 | 2009-01-22 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2011100452A (ja) * | 2009-11-04 | 2011-05-19 | Internatl Business Mach Corp <Ibm> | 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム |
WO2011064898A1 (en) * | 2009-11-26 | 2011-06-03 | Nec Corporation | Apparatus to enable time and area efficient access to square matrices and its transposes distributed stored in internal memory of processing elements working in simd mode and method therefore |
JP2013512479A (ja) * | 2009-11-26 | 2013-04-11 | 日本電気株式会社 | Simdモードで動作するプロセッシング・エレメントの内部メモリに分散記憶された正方マトリックス及びその転置マトリックスに、時間と面積の効率良いアクセスを可能とする装置及び方法 |
Non-Patent Citations (3)
Title |
---|
CSNG200600480008; 吉村知晋,外5名: '中規模コモディティクラスタ向け相互結合網Three Quadsの提案' 情報処理学会研究報告 第2006巻,第20号,(2006-ARC-167), 20060228, Pages:79〜84, 社団法人情報処理学会 * |
JPN6014051856; J.O.EKLUNDH: 'A Fast Computer Method for Matrix Transposing' IEEE Transactions on Computers Vol:C-21, Issue:7, 197207, Pages:801-803, IEEE * |
JPN6014051860; 吉村知晋,外5名: '中規模コモディティクラスタ向け相互結合網Three Quadsの提案' 情報処理学会研究報告 第2006巻,第20号,(2006-ARC-167), 20060228, Pages:79〜84, 社団法人情報処理学会 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003547A (zh) * | 2017-03-14 | 2022-02-01 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
CN114003547B (zh) * | 2017-03-14 | 2023-12-19 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
Also Published As
Publication number | Publication date |
---|---|
JP5760532B2 (ja) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8458442B2 (en) | Method and structure of using SIMD vector architectures to implement matrix multiplication | |
US8024394B2 (en) | Dual mode floating point multiply accumulate unit | |
JP5500652B2 (ja) | 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法 | |
CN111656367A (zh) | 神经网络加速器的系统和体系结构 | |
KR100940957B1 (ko) | 프로세서 | |
US7302627B1 (en) | Apparatus for efficient LFSR calculation in a SIMD processor | |
CN117407644A (zh) | 用于片矩阵乘法和累加的系统、方法和装置 | |
CN103744639A (zh) | 数据访问和置换单元 | |
TW202125287A (zh) | 用於矩陣運算加速器之指令的裝置,方法和系統 | |
CN109992304A (zh) | 用于加载片寄存器对的系统和方法 | |
CN111353126A (zh) | 分块矩阵乘法运算系统 | |
CN117971315A (zh) | 用于执行快速转换片并且将片用作一维向量的指令的系统 | |
CN110909883A (zh) | 用于执行指定三元片逻辑操作的指令的系统和方法 | |
CN109992305A (zh) | 用于将片寄存器对归零的系统和方法 | |
US9361065B2 (en) | Processor and processing method | |
US6675286B1 (en) | Multimedia instruction set for wide data paths | |
CN110058886A (zh) | 用于计算两个区块操作数中的半字节的数量积的系统和方法 | |
EP3384376B1 (en) | Multi-functional execution lane for image processor | |
US20220129247A1 (en) | Semiconductor device and method of controlling the semiconductor device | |
JP5601327B2 (ja) | データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法 | |
JP6829838B2 (ja) | 演算装置及び演算システム | |
JP5760532B2 (ja) | プロセッサ装置及びその演算方法 | |
EP1634163B1 (en) | Result partitioning within simd data processing systems | |
EP2000922A1 (en) | Processor array system having function for data reallocation between high-speed pe | |
CN114691085A (zh) | 同时使用多个处理器来处理矩阵的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141209 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150422 |
|
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: 20150512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150525 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5760532 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |