JP2015185152A - Simdプロセッサ - Google Patents
Simdプロセッサ Download PDFInfo
- Publication number
- JP2015185152A JP2015185152A JP2014064238A JP2014064238A JP2015185152A JP 2015185152 A JP2015185152 A JP 2015185152A JP 2014064238 A JP2014064238 A JP 2014064238A JP 2014064238 A JP2014064238 A JP 2014064238A JP 2015185152 A JP2015185152 A JP 2015185152A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- value
- output
- control signal
- data
- 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
- 238000000034 method Methods 0.000 claims description 115
- 230000008569 process Effects 0.000 claims description 100
- 230000010354 integration Effects 0.000 claims description 24
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 19
- 239000002245 particle Substances 0.000 description 75
- 101100063435 Caenorhabditis elegans din-1 gene Proteins 0.000 description 44
- 238000010586 diagram Methods 0.000 description 16
- 101150050114 CTL1 gene Proteins 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 101150052401 slc44a1 gene Proteins 0.000 description 4
- -1 Din2 Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101150099461 CTL2 gene Proteins 0.000 description 2
- 101150116431 Slc44a2 gene Proteins 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/3001—Arithmetic 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
Abstract
【解決手段】SIMDプロセッサ1000では、レンジ判断演算ユニットS14に2つの値を保持することができる第1レジスタおよび第2レジスタを備えており、この2つの値と、レジスタファイル部から入力されるソースデータの3つの値を用いて、レンジ判断処理の処理対象データ、レンジ判断処理の処理対象範囲を決める2つの境界値を、柔軟に設定することができる。
【選択図】図1
Description
(1)処理対象画素である注目画素(注目画素の座標を(x,y)とし、その画素値をI(x,y)と表記する)ごとに、注目画素と、当該注目画素と左右に隣接する画素との間のX方向の勾配強度dx(x,y)が、
dx(x,y)=I(x+1,y)−I(x−1,y)
により算出される。
dy(x,y)=I(x,y+1)−I(x,y−1)
により算出される。
(2)次に、Y方向の勾配強度dy(x,y)をX方向の勾配強度dx(x,y)で除算して取得した値に基づいて、注目画素の勾配ベクトル角度gradient(x,y)が、
gradient(x,y)=atan(dy(x,y)/dx(x,y))
atan():逆正接関数(アークタンジェント)
により、算出される。
(3)そして、算出された勾配ベクトル角度gradient(x,y)と、dx(x,y)およびdy(x,y)の符号(正負)とに基づいて、注目画素の勾配ベクトル方向が決定され、決定された勾配ベクトル方向に基づいて、輝度ヒストグラムが生成される。
(1)ヒストグラム算出処理を実行する場合であって、処理対象データが、ヒストグラム算出するための所定のビンの範囲に含まれているか否かを判断する場合、命令制御部は、レンジ制御信号の信号値を「0」に設定し、セレクタは、レンジ制御信号に基づいて、第2レジスタ値を選択する。
(2)処理対象データが、第1レジスタ値および第2レジスタ値により規定される範囲内であるか否かを判断する場合、命令制御部は、レンジ制御信号の信号値を「1」に設定し、セレクタは、レンジ制御信号に基づいて、レジスタファイル部から入力したソースデータを選択する。
(1)処理対象データがビンの範囲内であるとき、条件フラグの値が「1」に設定されるように、命令制御部は、レンジ方向設定信号の信号値を「0」に設定し、
(2)処理対象データがビンの範囲外であるとき、条件フラグの値が「1」に設定されるように、命令制御部は、レンジ方向設定信号の信号値を「1」に設定する。
(1)命令制御部により生成される第1等価制御信号の信号値が「1」に設定されている場合、レンジ判断演算ユニットは、処理対象データに対するレンジ判断処理において、処理対象データが、レンジ判断処理の範囲を規定する2つの境界値のうちの小さい方の値である第1境界値と等しい場合、条件フラグの値を「1」にして出力する。
(2)命令制御部により生成される第2等価制御信号の信号値が「1」に設定されている場合、レンジ判断演算ユニットは、処理対象データに対するレンジ判断処理において、処理対象データが、レンジ判断処理の範囲を規定する2つの境界値のうちの大きい方の値である第2境界値と等しい場合、条件フラグの値を「1」にして出力する。
(1)レンジ制御信号の信号値が「1」であり、レンジ方向設定信号の信号値が「1」である場合、第1比較制御信号の信号値を「1」とし、それ以外の場合、第1比較制御信号の信号値を「0」とし、
(2)レンジ制御信号の信号値が「1」であり、レンジ方向設定信号の信号値が「0」である場合、第2比較制御信号の信号値を「1」とし、それ以外の場合、第2比較制御信号の信号値を「0」とし、
(3)レンジ制御信号の信号値が「1」であり、レンジ方向設定信号の信号値が「1」である場合、統合制御信号の信号値を「1」とし、それ以外の場合、統合制御信号の信号値を「0」とする。
(1)第1比較部は、第1比較制御信号の信号値が「0」であり、第1等価制御信号の信号値が「0」である場合、第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11>Din12であるときは、第1比較部からの出力データD1outを「1」にして出力し、Din11≦Din12であるときは、第1比較部からの出力データD1outを「0」にして出力する。
(2)第1比較部は、第1比較制御信号の信号値が「0」であり、第1等価制御信号の信号値が「1」である場合、第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11≧Din12であるときは、第1比較部からの出力データD1outを「1」にして出力し、Din11<Din12であるときは、第1比較部からの出力データD1outを「0」にして出力する。
(3)第1比較部は、第1比較制御信号の信号値が「1」であり、第1等価制御信号の信号値が「0」である場合、第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11<Din12であるときは、第1比較部からの出力データD1outを「1」にして出力し、Din11≧Din12であるときは、第1比較部からの出力データD1outを「0」にして出力する。
(4)第1比較部は、第1比較制御信号の信号値が「1」であり、第1等価制御信号の信号値が「1」である場合、第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11≦Din12であるときは、第1比較部からの出力データD1outを「1」にして出力し、Din11>Din12であるときは、第1比較部からの出力データD1outを「0」にして出力する。
(1)第2比較部は、第2比較制御信号の信号値が「0」であり、第2等価制御信号の信号値が「0」である場合、第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21>Din22であるときは、第2比較部からの出力データD2outを「1」にして出力し、Din21≦Din22であるときは、第2比較部からの出力データD2outを「0」にして出力する。
(2)第2比較部は、第2比較制御信号の信号値が「0」であり、第2等価制御信号の信号値が「1」である場合、第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21≧Din22であるときは、第2比較部からの出力データD2outを「1」にして出力し、Din21<Din22であるときは、第2比較部からの出力データD2outを「0」にして出力する。
(3)第2比較部は、第2比較制御信号の信号値が「1」であり、第2等価制御信号の信号値が「0」である場合、第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21<Din22であるときは、第2比較部からの出力データD2outを「1」にして出力し、Din21≧Din22であるときは、第2比較部からの出力データD2outを「0」にして出力する。
(4)第2比較部は、第1比較制御信号の信号値が「1」であり、第2等価制御信号の信号値が「1」である場合、第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21≦Din22であるときは、第2比較部からの出力データD2outを「1」にして出力し、Din21>Din22であるときは、第2比較部からの出力データD2outを「0」にして出力する。
第1実施形態について、図面を参照しながら、以下、説明する。
図1は、第1実施形態に係るSIMDプロセッサ1000の概略構成図である。
Dsub=Din1−Din2
により、減算結果データDsubを取得し、取得したデータDsubを非ゼロ判定器3052に出力する。
(1)減算結果データDsubが「0」である場合、判定結果信号non_zero_detの信号値を「0」に設定し、
(2)減算結果データDsubが「0」でない場合、判定結果信号non_zero_detの信号値を「1」に設定する。
以上のように構成されたSIMDプロセッサ1000の動作について、以下、図面を参照しながら、説明する。
(1.2.1:ヒストグラム算出処理)
まず、SIMDプロセッサ1000において、輝度勾配ヒストグラム算出処理を実行する場合について説明する。
SIMDプロセッサ1000において、例えば、画像上のN画素×M画素(N、M:自然数)からなる矩形の画像領域を輝度勾配ヒストグラム算出処理の対象領域に設定し、当該画像領域に含まれる画素ごとに、勾配ベクトル角度gradient(x,y)を算出する。なお、勾配ベクトル角度gradient(x,y)は、処理対象画素である注目画素の座標を(x,y)とし、その画素値をI(x,y)と表記すると、以下のように算出される。
(1)処理対象の画像領域に含まれる画素(注目画素)ごとに、注目画素と、当該注目画素と左右に隣接する画素との間のX方向の勾配強度dx(x,y)が、
dx(x,y)=I(x+1,y)−I(x−1,y)
により算出される。
dy(x,y)=I(x,y+1)−I(x,y−1)
により算出される。
(2)次に、Y方向の勾配強度dy(x,y)をX方向の勾配強度dx(x,y)で除算して取得した値に基づいて、注目画素の勾配ベクトル角度gradient(x,y)が、
gradient(x,y)=atan(dy(x,y)/dx(x,y))
atan():逆正接関数(アークタンジェント)
により、算出される。
SIMDプロセッサ1000において、輝度勾配ヒストグラムの各ビンの範囲を決定するための境界値を設定し、設定した境界値は、例えば、データメモリM2の連続したメモリ領域に格納される。
SIMDプロセッサ1000において、輝度勾配ヒストグラムの各ビンのヒストグラム値(処理対象データが各ビンの範囲に含まれると判定されたときにカウントされるカウント値(頻度累積値))を格納する領域を、レジスタファイル部2に確保し(例えば、レジスタファイル部2において、各ビンのヒストグラム値を格納するためのレジスタを確保し)、各ビンのヒストグラム値を「0」に初期化する。
サイクル0において、第3スロットのL/SユニットS31は、勾配ベクトル角度grad1をロードする。そして、ロードされた勾配ベクトル角度grad1は、図1に示すように、データパスDo3を介して、レジスタファイル部2に出力される。レジスタファイル部2は、第3スロットS3から出力された勾配ベクトル角度grad1を、所定のレジスタに格納する。
サイクル1において、命令制御部1は、命令実行部3に対して、データ書き込み命令(Write命令)を発行する。命令実行部3の第1スロットS1のデータ書き込み演算ユニットS13は、当該データ書き込み命令(Write命令)に基づいて、データ書き込み処理を実行する。具体的には、データ書き込み演算ユニットS13は、レジスタファイル部2から、データパスDi11、Di12を介して、サイクル0でロードした勾配ベクトル角度grad1と、ヒストグラムの下限値histL1を入力し、当該2つの入力されたデータに対して、データ書き込み処理を実行する。つまり、データ書き込み演算ユニットS13は、
(第1レジスタ値val1)=histL1
(第2レジスタ値val2)=grad1
となるように、第1レジスタ値および第2レジスタ値を設定する。
サイクル2において、命令制御部1は、命令実行部3に対して、レンジ判断命令(RngD)を発行する。命令実行部3の第1スロットS1のレンジ判断演算ユニットS14は、当該レンジ判断命令(RngD命令)に基づいて、レンジ判断処理を実行する。具体的には、レンジ判断演算ユニットS14は、レジスタファイル部2から、サイクル1でロードされたヒストグラムの境界値histL2をデータsrcとして入力する。
Din1=val2=grad1
Din2=val1=histL1
src=histL2
eq1=0
(1)cctl1、Din1、Din2、src、eq1が上記のように設定されている場合であって、かつ、Din2<Din1、つまり、histL1<grad1である場合、
Dsub=Din1―Din2>0
MSB=0
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD1は、「1」となる。
(2)cctl1、Din1、Din2、src、eq1が上記のように設定されている場合であって、かつ、Din2>Din1、つまり、histL1>grad1である場合、
Dsub=Din1―Din2<0
MSB=1
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD1は、「0」となる。
(3)cctl1、Din1、Din2、src、eq1が上記のように設定されている場合であって、かつ、Din2=Din1、つまり、histL1=grad1である場合、
Dsub=Din1―Din2=0
MSB=0
non_zero_det=0
であるので、ANDゲート3059から出力されるデータD1は、「0」となる。
cctl1=0
Din1=val2=grad1
Din2=val1=histL1
src=histL2
eq1=0
である場合において、Din2<Din1、つまり、histL1<grad1であるとき、第1比較部305の出力データD1が「1」となり、それ以外の場合、第1比較部305の出力データは「0」となる。
Din1=src=histL2
Din2=val2=grad1
eq2=0
(1)cctl2、Din1、Din2、eq2が上記のように設定されている場合であって、かつ、Din2<Din1、つまり、grad1<histL2である場合、
Dsub=Din1―Din2>0
MSB=0
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD2(第2比較部306の出力データD2)は、「1」となる。
(2)cctl2、Din1、Din2、eq2が上記のように設定されている場合であって、かつ、Din2>Din1、つまり、grad1>histL2である場合、
Dsub=Din1―Din2<0
MSB=1
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD2(第2比較部306の出力データD2)は、「0」となる。
(3)cctl2、Din1、Din2、eq2が上記のように設定されている場合であって、かつ、Din2=Din1、つまり、grad1=histL2である場合、
Dsub=Din1―Din2=0
MSB=0
non_zero_det=0
であるので、ANDゲート3059から出力されるデータD1は、「0」となる。
cctl2=0
Din1=src=histL2
Din2=val2=grad1
eq2=0
である場合において、Din2<Din1、つまり、grad1<histL2であるとき、第2比較部306の出力データD2が「1」となり、それ以外の場合、第2比較部306の出力データD2は「0」となる。
(1)eq1=0、かつ、eq2=0である場合、
(1A)histL1<grad1<histL2であるとき、CF=1
(1B)上記(1A)以外のとき、CF=0
(2)eq1=1、かつ、eq2=0である場合、
(2A)histL1≦grad1<histL2であるとき、CF=1
(2B)上記(2A)以外のとき、CF=0
(3)eq1=0、かつ、eq2=1である場合、
(3A)histL1<grad1≦histL2であるとき、CF=1
(3B)上記(3A)以外のとき、CF=0
(4)eq1=1、かつ、eq2=1である場合、
(4A)histL1≦grad1≦histL2であるとき、CF=1
(4B)上記(4A)以外のとき、CF=0
つまり、サイクル2において、レンジ判断演算ユニットS14は、第2レジスタに設定されている値grad1(=val2)が、境界値histL1およびhistL2により規定される範囲に含まれるか否かの判定を行い、その判定結果を示す条件フラグCFを条件レジスタ部4に出力する。
サイクル3において、命令制御部1は、命令実行部3に対して、条件付き加算命令(Addt命令)を発行する。命令実行部3の第2スロットS2の条件付き加算ユニットS21は、条件付き加算命令(Addt命令)に基づいて、条件付き加算処理を実行する。具体的には、条件付き加算ユニットS21は、レジスタファイル部2から、第1ビン(ヒストグラム下限値histL1と、境界値histL2とにより規定されるビン)のヒストグラム値hist_bin1を入力し、条件レジスタ部4から出力される制御信号CFctlに基づいて、ヒストグラム値hist_bin1に対して、条件付き加算処理を実行する。
val1=histL2
val2=grad1
src=histL3
として、サイクル2で説明したのと同様の処理を実行する。
(1)eq1=0、かつ、eq2=0である場合、
(1A)histL2<grad1<histL3であるとき、CF=1
(1B)上記(1A)以外のとき、CF=0
(2)eq1=1、かつ、eq2=0である場合、
(2A)histL2≦grad1<histL3であるとき、CF=1
(2B)上記(2A)以外のとき、CF=0
(3)eq1=0、かつ、eq2=1である場合、
(3A)histL2<grad1≦histL3であるとき、CF=1
(3B)上記(3A)以外のとき、CF=0
(4)eq1=1、かつ、eq2=1である場合、
(4A)histL2≦grad1≦histL3であるとき、CF=1
(4B)上記(4A)以外のとき、CF=0
つまり、サイクル3において、レンジ判断演算ユニットS14は、第2レジスタに設定されている値grad1(=val2)が、境界値histL2およびhistL3により規定される範囲に含まれるか否かの判定を行い、その判定結果を示す条件フラグCFを条件レジスタ部4に出力する。
サイクル4において、命令制御部1は、命令実行部3に対して、条件付き加算命令(Addt命令)を発行する。命令実行部3の第2スロットS2の条件付き加算ユニットS21は、条件付き加算命令(Addt命令)に基づいて、条件付き加算処理を実行する。具体的には、条件付き加算ユニットS21は、レジスタファイル部2から、第2ビン(ヒストグラム境界値histL2と、境界値histL3とにより規定されるビン)のヒストグラム値hist_bin2を入力し、条件レジスタ部4から出力される制御信号CFctlに基づいて、ヒストグラム値hist_bin2に対して、条件付き加算処理を実行する。
val1=histL3
val2=grad1
src=histL4
として、サイクル2で説明したのと同様の処理を実行する。
(1)eq1=0、かつ、eq2=0である場合、
(1A)histL3<grad1<histL4であるとき、CF=1
(1B)上記(1A)以外のとき、CF=0
(2)eq1=1、かつ、eq2=0である場合、
(2A)histL3≦grad1<histL4であるとき、CF=1
(2B)上記(2A)以外のとき、CF=0
(3)eq1=0、かつ、eq2=1である場合、
(3A)histL3<grad1≦histL4であるとき、CF=1
(3B)上記(3A)以外のとき、CF=0
(4)eq1=1、かつ、eq2=1である場合、
(4A)histL3≦grad1≦histL4であるとき、CF=1
(4B)上記(4A)以外のとき、CF=0
つまり、サイクル4において、レンジ判断演算ユニットS14は、第2レジスタに設定されている値grad1(=val2)が、境界値histL3およびhistL4により規定される範囲に含まれるか否かの判定を行い、その判定結果を示す条件フラグCFを条件レジスタ部4に出力する。
サイクル5において、命令制御部1は、命令実行部3に対して、条件付き加算命令(Addt命令)を発行する。命令実行部3の第2スロットS2の条件付き加算ユニットS21は、条件付き加算命令(Addt命令)に基づいて、条件付き加算処理を実行する。具体的には、条件付き加算ユニットS21は、レジスタファイル部2から、第3ビン(ヒストグラム境界値histL3と、境界値histL4とにより規定されるビン)のヒストグラム値hist_bin3を入力し、条件レジスタ部4から出力される制御信号CFctlに基づいて、ヒストグラム値hist_bin3に対して、条件付き加算処理を実行する。
val1=histL4
val2=grad1
src=histL5
として、サイクル2で説明したのと同様の処理を実行する。
(1)eq1=0、かつ、eq2=0である場合、
(1A)histL4<grad1<histL5であるとき、CF=1
(1B)上記(1A)以外のとき、CF=0
(2)eq1=1、かつ、eq2=0である場合、
(2A)histL4≦grad1<histL5であるとき、CF=1
(2B)上記(2A)以外のとき、CF=0
(3)eq1=0、かつ、eq2=1である場合、
(3A)histL4<grad1≦histL5であるとき、CF=1
(3B)上記(3A)以外のとき、CF=0
(4)eq1=1、かつ、eq2=1である場合、
(4A)histL4≦grad1≦histL5であるとき、CF=1
(4B)上記(4A)以外のとき、CF=0
つまり、サイクル5において、レンジ判断演算ユニットS14は、第2レジスタに設定されている値grad1(=val2)が、境界値histL4およびhistL5により規定される範囲に含まれるか否かの判定を行い、その判定結果を示す条件フラグCFを条件レジスタ部4に出力する。
サイクル6において、命令制御部1は、命令実行部3に対して、データ書き込み命令(Write命令)を発行する。命令実行部3の第1スロットS1のデータ書き込み演算ユニットS13は、当該データ書き込み命令(Write命令)に基づいて、データ書き込み処理を実行する。具体的には、データ書き込み演算ユニットS13は、レジスタファイル部2から、データパスDi11、Di12を介して、サイクル5でロードした勾配ベクトル角度grad2と、ヒストグラムの下限値histL1を入力し、当該2つの入力されたデータに対して、データ書き込み処理を実行する。つまり、データ書き込み演算ユニットS13は、
(第1レジスタ値val1)=histL1
(第2レジスタ値val2)=grad2
となるように、第1レジスタ値および第2レジスタ値を設定する。
サイクル7〜11では、サイクル2〜6と同様の処理が実行される。これにより、処理対象画素の勾配ベクトル角度grad2が、ビン1〜4のいずれに含まれるか判断され、ヒストグラム算出処理が実行される。
(1.2.2:パーティクルフィルタ処理)
次に、SIMDプロセッサ1000において、パーティクルフィルタ処理を実行する場合について説明する。
(1)まず、時刻tにおいて、パーティクルをランダムに配置し、パーティクルの事前確率分布が取得される。
(2)時刻tにおいて、実際の観測データが取得される。つまり、画像上の全てのデータについての黄色度合いが取得される。この黄色度合いを示すデータが、図7の(2)に示す時刻tの実際の観測データ(実際の観測)である。
(3)時刻tの事前確率分布に従い配置されたパーティクルごとに、尤度が取得される。図7の(3)において、このように取得された尤度を示しており、尤度が大きい程、大きな円として描いている。
(4)求めた尤度に基づいて、パーティクルの事後確率分布が取得される。つまり、図7の(4)に示すように、尤度が大きい領域ほど、多数のパーティクルが配置されるように、パーティクルの事後確率分布が取得される。
(5)次の時刻(時刻t+1)におけるパーティクル事前確率分布が取得される。このとき、パーティクルの事後確率分布において取得されたパーティクルの位置に、乱数を加算または減算して取得した位置に、パーティクルを配置することで、時刻t+1におけるパーティクル事前確率分布が取得される。
(6)時刻t+1において、実際の観測データが取得される。つまり、画像上の全てのデータについての黄色度合いが取得される。この黄色度合いを示すデータが、図7の(6)に示す時刻t+1の実際の観測データ(実際の観測)である。
(7)時刻t+1の事前確率分布に従い配置されたパーティクルごとに、尤度が取得される。
SIMDプロセッサ1000において、各パーティクルの画像上のX位置(X座標値)、Y位置(X座標値)は、例えば、データメモリM2のそれぞれ別々の連続したメモリ領域に格納される。
命令制御部1は、命令実行部3に対して、データ書き込み命令(Write命令)を発行する。命令実行部3の第1スロットS1のデータ書き込み演算ユニットS13は、当該データ書き込み命令(Write命令)に基づいて、データ書き込み処理を実行する。具体的には、データ書き込み演算ユニットS13は、レジスタファイル部2から、データパスDi11、Di12を介して、パーティクルの取り得る上限位置および下限位置を、第1レジスタ301および第2レジスタ302に書き込む。例えば、パーティクルの取り得るX軸方向の上限位置をXmaxとし、パーティクルの取り得るX軸方向の下限位置をXminとすると、データ書き込み演算ユニットS13は、
(第1レジスタ値val1)=Xmin
(第2レジスタ値val2)=Xmax
となるように、第1レジスタ値および第2レジスタ値を設定する。なお、以下では、説明便宜のため、パーティクルのX軸方向の位置について処理を行う場合について説明する。
サイクル0において、命令制御部1は、命令実行部3に対して、ロード命令(Load命令)および乱数生成命令(Rand命令)を発行する。第3スロットS3のL/SユニットS31は、1つ目のパーティクルの位置情報(X座標位置)x1をロードし、ロードしたX座標位置x1を、データパスDo3を介して、レジスタファイル部2に出力する。レジスタファイル部2は、当該X座標位置x1を所定のレジスタに格納する。第2スロットS2の乱数生成ユニットS22は、1つ目のパーティクルの位置情報(X座標位置)x1に付加する変動量Δx1(Δx1:実数)を生成し、生成した変動量Δx1を、データパスDo2を介して、レジスタファイル部2に出力する。レジスタファイル部2は、当該変動量Δx1を所定のレジスタに格納する。
サイクル1において、命令制御部1は、命令実行部3に対して、加算命令(Add)を発行する。命令実行部3の第1スロットS1の加算ユニットS11は、当該加算命令(Add命令)に基づいて、サイクル0で取得された1つ目のパーティクルのX座標位置x1と、その変動量Δx1とを加算し、その加算結果x1+Δx1を、データパスDo1を介して、レジスタファイル部2に出力する。
サイクル2において、命令制御部1は、命令実行部3に対して、レンジ判断命令(RngD)を発行する。命令実行部3の第3スロットS1のレンジ判断演算ユニットS14は、当該レンジ判断命令(RngD命令)に基づいて、レンジ判断処理を実行する。具体的には、レンジ判断演算ユニットS14は、レジスタファイル部2から、サイクル1で取得された加算結果x1+Δx1を入力し、当該加算結果x1+Δx1に対して、レンジ判断処理を行う。
Din1=src=x1+Δx1
Din2=val1=Xmin
eq1=0
(1)cctl1、Din1、Din2、eq1が上記のように設定されている場合であって、かつ、Din2<Din1、つまり、Xmin<x1+Δx1である場合、
Dsub=Din1―Din2>0
MSB=0
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD1は、「1」となる。
(2)cctl1、Din1、Din2、eq1が上記のように設定されている場合であって、かつ、Din2>Din1、つまり、Xmin>x1+Δx1である場合、
Dsub=Din1―Din2<0
MSB=1
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD1は、「0」となる。
(3)cctl1、Din1、Din2、eq1が上記のように設定されている場合であって、かつ、Din2=Din1、つまり、Xmin=x1+Δx1である場合、
Dsub=Din1―Din2=0
MSB=0
non_zero_det=0
であるので、ANDゲート3059から出力されるデータD1は、「0」となる。
cctl1=1
Din1=src=x1+Δx1
Din2=val1=Xmin
eq1=0
である場合において、Din2<Din1、つまり、Xmin<x1+Δx1であるとき、第1比較部305の出力データD1が「1」となり、それ以外の場合、第1比較部305の出力データは「0」となる。
Din1=src=x1+Δx1
Din2=val2=Xmax
eq2=0
(1)cctl2、Din1、Din2、eq2が上記のように設定されている場合であって、かつ、Din2<Din1、つまり、Xmax<x1+Δx1である場合、
Dsub=Din1―Din2>0
MSB=0
cctl2=1
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD2(第2比較部306の出力データD2)は、「0」となる。
(2)cctl2、Din1、Din2、eq2が上記のように設定されている場合であって、かつ、Din2>Din1、つまり、Xmax>x1+Δx1である場合、
Dsub=Din1―Din2<0
MSB=1
cctl2=1
non_zero_det=1
であるので、ANDゲート3059から出力されるデータD2(第2比較部306の出力データD2)は、「1」となる。
(3)cctl2、Din1、Din2、eq2が上記のように設定されている場合であって、かつ、Din2=Din1、つまり、Xmax=x1+Δx1である場合、
Dsub=Din1―Din2=0
MSB=0
cctl2=1
non_zero_det=0
であるので、ANDゲート3059から出力されるデータD1は、「0」となる。
cctl2=1
Din1=src=x1+Δx1
Din2=val2=Xmax
eq2=0
である場合において、Din1<Din2、つまり、x1+Δx1<Xmaxであるとき、第2比較部306の出力データD2が「1」となり、それ以外の場合、第2比較部306の出力データD2は「0」となる。
(1)eq1=0、かつ、eq2=0である場合、
(1A)Xmin<x1<Xmaxであるとき、CF=1
(1B)上記(1A)以外のとき、CF=0
(2)eq1=1、かつ、eq2=0である場合、
(2A)Xmin≦x1<Xmaxであるとき、CF=1
(2B)上記(2A)以外のとき、CF=0
(3)eq1=0、かつ、eq2=1である場合、
(3A)Xmin<x1≦Xmaxであるとき、CF=1
(3B)上記(3A)以外のとき、CF=0
(4)eq1=1、かつ、eq2=1である場合、
(4A)Xmin≦x1≦Xmaxであるとき、CF=1
(4B)上記(4A)以外のとき、CF=0
つまり、サイクル2において、レンジ判断演算ユニットS14は、レジスタファイル部2から出力される値src(=x1)が、パーティクルの限界値(下限値および上限値)XminおよびXmaxにより規定される範囲に含まれるか否かの判定を行い、その判定結果を示す条件フラグCFを条件レジスタ部4に出力する。
サイクル3において、命令制御部1は、命令実行部3に対して、条件付き加算命令(Addt命令)を発行する。命令実行部3の第2スロットS2の条件付き加算ユニットS21は、条件付き加算命令(Addt命令)に基づいて、条件付き加算処理を実行する。具体的には、条件付き加算ユニットS21は、レジスタファイル部2から、1つ目のパーティクルの座標位置x1と、その変動量Δx1とを入力し、条件レジスタ部4から出力される制御信号CFctlに基づいて、1つ目のパーティクルの加算結果x1+Δx1に対して、条件付き加算処理を実行する。
サイクル4において、命令制御部1は、命令実行部3に対して、ストア命令(Store命令)を発行する。命令実行部3の第3スロットS3のロード/ストアユニットS31は、当該ストア命令に基づいて、サイクル3で取得(確定)された1つ目のパーティクルのX座標位置をデータメモリM2に格納する。
サイクル5以降において、図8に示す命令スケジュールに従い、上記処理と同様の処理が実行され、2つ目以降のパーティクルの座標位置が確定される。
上記実施形態において、レンジ判断演算ユニットS14は、図2〜図5に示すハードウェア構成を有する場合について説明したが、これに限定されることはない。レンジ判断演算ユニットS14は、図9に示した関係図を満たすものであれば、他の回路構成により実現されるものであってもよい。また、レンジ判断演算ユニットS14は、図9に示した関係図を満たすように、一部に、ルックアップテーブルを有するものであってもよい。
MSB:減算結果データDsubの最上位ビット
eq:等価制御信号(第1等価制御信号eq1、または、第2等価制御信号eq2)
cctrl:制御信号生成部303から出力される制御信号cctl1
ROR:非ゼロ判定器3052の出力
なお、上記論理式のROR、MSB、eq、cctrlは、論理値「0」または「1」をとるものとする。
1 命令制御部
2 レジスタファイル部
3 命令実行部
S1 第1スロット
S2 第2スロット
S3 第3スロット
S13 書き込みユニット
S14 レンジ判断演算ユニット
S21 条件付き加算ユニット
S31 ロード/ストアユニット
4 条件レジスタ部
301 第1レジスタ
302 第2レジスタ
303 制御信号生成部
304 セレクタ
305 第1比較部
306 第2比較部
307 統合部
Claims (12)
- 命令フェッチ処理と、命令デコード処理とを実行するとともに、所定の演算を実行させるためのレンジ制御信号と、レンジ方向設定信号と、第1等価制御信号と、第2等価制御信号とを生成する命令制御部と、
ソースデータを保持するレジスタを含む複数のレジスタを有するレジスタファイル部と、
条件フラグを格納することができ、前記条件フラグに基づいて、条件付き演算を実行するための条件制御信号を生成する条件レジスタ部と、
レンジ判断演算ユニットを含む第1スロットを有する命令実行部と、
を備え、
前記レンジ判断演算ユニットは、
前記レジスタファイル部から、前記ソースデータを入力し、
第1レジスタ値を格納する第1レジスタと、
第2レジスタ値を格納する第2レジスタと、
前記レンジ制御信号に応じて、前記レジスタファイル部から入力した前記ソースデータ、および、前記第2レジスタ値のいずれかを選択するセレクタと、
前記レンジ制御信号と前記レンジ方向設定信号とに基づいて、第1比較制御信号と、第2比較制御信号と、統合制御信号とを生成する制御信号生成部と、
前記制御信号生成部が生成した第1比較制御信号と、前記第1等価制御信号とに基づき、前記セレクタから出力される値と、前記第1レジスタ値とを比較し、比較結果を第1比較データとして取得する第1比較部と、
前記制御信号生成部が生成した第2比較制御信号と、前記第2等価制御信号とに基づき、前記ソースデータと、前記第2レジスタ値とを比較し、比較結果を第2比較データとして取得する第2比較部と、
前記統合制御信号に基づいて、前記第1比較データと前記第2比較データとを統合することで前記条件フラグを取得する統合部と、
を備え、
前記第1レジスタは、前記レンジ制御信号が非アクティブである場合、前記第1レジスタ値を前記ソースデータにより更新し、
前記条件レジスタ部は、前記統合部により取得された前記条件フラグを格納する、
SIMDプロセッサ。 - 前記命令制御部は、
前記命令実行部に対して、レンジ判断命令を発行する場合、
前記レンジ判断演算ユニットに対して、前記条件フラグを取得する処理を実行させるための前記レンジ制御信号と、前記レンジ方向設定信号と、前記第1等価制御信号と、前記第2等価制御信号とを出力し、
前記レンジ判断演算ユニットに、前記条件フラグを取得する処理を実行させる、
請求項1に記載のSIMDプロセッサ。 - (1)ヒストグラム算出処理を実行する場合であって、処理対象データが、ヒストグラム算出するための所定のビンの範囲に含まれているか否かを判断する場合、
前記命令制御部は、前記レンジ制御信号の信号値を「0」に設定し、
前記セレクタは、前記レンジ制御信号に基づいて、前記第2レジスタ値を選択し、
(2)処理対象データが、前記第1レジスタ値および前記第2レジスタ値により規定される範囲内であるか否かを判断する場合、
前記命令制御部は、前記レンジ制御信号の信号値を「1」に設定し、
前記セレクタは、前記レンジ制御信号に基づいて、前記レジスタファイル部から入力した前記ソースデータを選択する、
請求項1又は2に記載のSIMDプロセッサ。 - ヒストグラム算出処理を実行する場合であって、処理対象データが、ヒストグラム算出するための所定のビンの範囲に含まれているか否かを判断する場合、
(1)前記処理対象データが前記ビンの範囲内であるとき、前記条件フラグの値が「1」に設定されるように、前記命令制御部は、前記レンジ方向設定信号の信号値を「0」に設定し、
(2)前記処理対象データが前記ビンの範囲外であるとき、前記条件フラグの値が「1」に設定されるように、前記命令制御部は、前記レンジ方向設定信号の信号値を「1」に設定する、
請求項1から3のいずれかに記載のSIMDプロセッサ。 - (1)前記命令制御部により生成される前記第1等価制御信号の信号値が「1」に設定されている場合、
前記レンジ判断演算ユニットは、処理対象データに対するレンジ判断処理において、前記処理対象データが、前記レンジ判断処理の範囲を規定する2つの境界値のうちの小さい方の値である第1境界値と等しい場合、前記条件フラグの値を「1」にして出力し、
(2)前記命令制御部により生成される前記第2等価制御信号の信号値が「1」に設定されている場合、
前記レンジ判断演算ユニットは、処理対象データに対するレンジ判断処理において、前記処理対象データが、前記レンジ判断処理の範囲を規定する2つの境界値のうちの大きい方の値である第2境界値と等しい場合、前記条件フラグの値を「1」にして出力する、
請求項1から4のいずれかに記載のSIMDプロセッサ。 - 前記制御信号生成部は、
(1)前記レンジ制御信号の信号値が「1」であり、前記レンジ方向設定信号の信号値が「1」である場合、前記第1比較制御信号の信号値を「1」とし、それ以外の場合、前記第1比較制御信号の信号値を「0」とし、
(2)前記レンジ制御信号の信号値が「1」であり、前記レンジ方向設定信号の信号値が「0」である場合、前記第2比較制御信号の信号値を「1」とし、それ以外の場合、前記第2比較制御信号の信号値を「0」とし、
(3)前記レンジ制御信号の信号値が「1」であり、前記レンジ方向設定信号の信号値が「1」である場合、前記統合制御信号の信号値を「1」とし、それ以外の場合、前記統合制御信号の信号値を「0」とする、
請求項1から5のいずれかに記載のSIMDプロセッサ。 - 前記第1比較部は、
(1)前記第1比較制御信号の信号値が「0」であり、前記第1等価制御信号の信号値が「0」である場合、前記第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11>Din12であるときは、前記第1比較部からの出力データD1outを「1」にして出力し、Din11≦Din12であるときは、前記第1比較部からの出力データD1outを「0」にして出力し、
(2)前記第1比較制御信号の信号値が「0」であり、前記第1等価制御信号の信号値が「1」である場合、前記第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11≧Din12であるときは、前記第1比較部からの出力データD1outを「1」にして出力し、Din11<Din12であるときは、前記第1比較部からの出力データD1outを「0」にして出力し、
(3)前記第1比較制御信号の信号値が「1」であり、前記第1等価制御信号の信号値が「0」である場合、前記第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11<Din12であるときは、前記第1比較部からの出力データD1outを「1」にして出力し、Din11≧Din12であるときは、前記第1比較部からの出力データD1outを「0」にして出力し、
(4)前記第1比較制御信号の信号値が「1」であり、前記第1等価制御信号の信号値が「1」である場合、前記第1比較部に入力される第1入力データDin11および第2入力データDin12が、Din11≦Din12であるときは、前記第1比較部からの出力データD1outを「1」にして出力し、Din11>Din12であるときは、前記第1比較部からの出力データD1outを「0」にして出力する、
請求項6に記載のSIMDプロセッサ。 - 前記第2比較部は、
(1)前記第2比較制御信号の信号値が「0」であり、前記第2等価制御信号の信号値が「0」である場合、前記第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21>Din22であるときは、前記第2比較部からの出力データD2outを「1」にして出力し、Din21≦Din22であるときは、前記第2比較部からの出力データD2outを「0」にして出力し、
(2)前記第2比較制御信号の信号値が「0」であり、前記第2等価制御信号の信号値が「1」である場合、前記第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21≧Din22であるときは、前記第2比較部からの出力データD2outを「1」にして出力し、Din21<Din22であるときは、前記第2比較部からの出力データD2outを「0」にして出力し、
(3)前記第2比較制御信号の信号値が「1」であり、前記第2等価制御信号の信号値が「0」である場合、前記第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21<Din22であるときは、前記第2比較部からの出力データD2outを「1」にして出力し、Din21≧Din22であるときは、前記第2比較部からの出力データD2outを「0」にして出力し、
(4)前記第1比較制御信号の信号値が「1」であり、前記第2等価制御信号の信号値が「1」である場合、前記第2比較部に入力される第1入力データDin21および第2入力データDin22が、Din21≦Din22であるときは、前記第2比較部からの出力データD2outを「1」にして出力し、Din21>Din22であるときは、前記第2比較部からの出力データD2outを「0」にして出力する、
請求項6または7に記載のSIMDプロセッサ。 - 前記統合部は、
前記第1比較部からの出力と前記第2比較部からの出力とを入力とし、前記第1比較部からの出力と前記第2比較部からの出力との論理積をとるANDゲートと、
前記第1比較部からの出力と前記第2比較部からの出力とを入力とし、前記第1比較部からの出力と前記第2比較部からの出力との論理和をとるORゲートと、
前記ANDゲートの出力、および、前記ORゲートの出力のいずれか一方を選択して出力する第2セレクタであって、前記統合制御信号の信号値が「0」である場合、前記ANDゲートの出力を選択して出力し、前記統合制御信号の信号値が「1」である場合、前記ORゲートの出力を選択して出力する前記第2セレクタと、
を備える請求項6から8のいずれかに記載のSIMDプロセッサ。 - ヒストグラム算出処理を実行する場合であって、処理対象データが、ヒストグラム算出するための所定のビンの範囲に含まれているか否かを判断する場合、
前記命令制御部は、レンジ判断命令を前記命令実行部に対して発行する前に、ヒストグラムの下限値を前記第1レジスタの前記第1レジスタ値に設定し、前記処理対象データを前記第2レジスタの前記第2レジスタ値に設定する書き込み命令を、前記命令実行部に対して発行する、
請求項1から9のいずれかに記載のSIMDプロセッサ。 - 処理対象データが、前記第1レジスタ値および前記第2レジスタ値により規定される範囲内であるか否かを判断する場合、
前記命令制御部は、レンジ判断命令を前記命令実行部に対して発行する前に、前記レンジ判断命令の判断対象となる範囲の下限値を前記第1レジスタの前記第1レジスタ値に設定し、前記レンジ判断命令の判断対象となる範囲の上限値を前記第2レジスタの前記第1レジスタ値に設定する書き込み命令を、前記命令実行部に対して発行する、
請求項1から10のいずれかに記載のSIMDプロセッサ。 - 前記命令実行部は、
前記レジスタファイル部からの出力データを入力するためのN×2ビット(N:自然数)の入力ポートと、前記レジスタファイル部にデータを出力するためのNビットの出力ポートと、を備える第2スロットと、
前記レジスタファイル部からの出力データを入力するためのN×2ビット(N:自然数)の入力ポートと、前記レジスタファイル部にデータを出力するためのNビットの出力ポートと、を備える第3スロットと、
をさらに備え、
前記第1スロットは、
前記レジスタファイル部からの出力データを入力するためのN×2ビット(N:自然数)の入力ポートと、
前記レジスタファイル部にデータを出力するためのNビットの出力ポートと、
前記命令制御部から前記命令実行部に対して、前記第1レジスタおよび前記第2レジスタの少なくとも一方にデータを書き込むための書き込み命令が発行された場合、当該書き込み命令を実行するための書き込み演算ユニットと、
をさらに備え、
前記第2スロットは、
ロード/ストア命令を実行するためのロード/ストア・ユニットを備え、
前記第3スロットは、
前記条件フラグがアクティブである場合、加算処理を実行し、前記条件フラグがアクティブでない場合、加算処理を実行しない条件付き加算ユニットを備える、
請求項1から11のいずれかに記載のSIMDプロセッサ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014064238A JP6329412B2 (ja) | 2014-03-26 | 2014-03-26 | Simdプロセッサ |
CN201510010597.2A CN104951295B (zh) | 2014-03-26 | 2015-01-09 | Simd处理器 |
US14/660,253 US9886281B2 (en) | 2014-03-26 | 2015-03-17 | SIMD processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014064238A JP6329412B2 (ja) | 2014-03-26 | 2014-03-26 | Simdプロセッサ |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015185152A true JP2015185152A (ja) | 2015-10-22 |
JP2015185152A5 JP2015185152A5 (ja) | 2018-04-26 |
JP6329412B2 JP6329412B2 (ja) | 2018-05-23 |
Family
ID=54165969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014064238A Active JP6329412B2 (ja) | 2014-03-26 | 2014-03-26 | Simdプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US9886281B2 (ja) |
JP (1) | JP6329412B2 (ja) |
CN (1) | CN104951295B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018005924A (ja) * | 2006-09-22 | 2018-01-11 | インテル コーポレイション | 文字列を処理するための命令及び論理回路 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005059A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
CN106843813B (zh) * | 2016-12-28 | 2018-08-14 | 华为技术有限公司 | 一种数据处理方法及装置 |
JP7469726B2 (ja) | 2022-08-29 | 2024-04-17 | ダイキン工業株式会社 | 被覆電線および被覆電線の製造方法 |
WO2024048192A1 (ja) | 2022-08-29 | 2024-03-07 | ダイキン工業株式会社 | 被覆電線および被覆電線の製造方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198183A (ja) * | 2009-02-24 | 2010-09-09 | Mitsubishi Electric Corp | プログラム実行装置 |
US20140032877A1 (en) * | 2011-12-23 | 2014-01-30 | Thomas R. Craver | Apparatus and method for an instruction that determines whether a value is within a range |
US20140068226A1 (en) * | 2008-03-28 | 2014-03-06 | Mikhail Smelyanskiy | Vector instructions to enable efficient synchronization and parallel reduction operations |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5539663A (en) * | 1993-11-24 | 1996-07-23 | Intel Corporation | Process, apparatus and system for encoding and decoding video signals using temporal filtering |
US5559722A (en) * | 1993-11-24 | 1996-09-24 | Intel Corporation | Process, apparatus and system for transforming signals using pseudo-SIMD processing |
JP2004192405A (ja) * | 2002-12-12 | 2004-07-08 | Ricoh Co Ltd | Simd型プロセッサ |
US7412587B2 (en) * | 2004-02-16 | 2008-08-12 | Matsushita Electric Industrial Co., Ltd. | Parallel operation processor utilizing SIMD data transfers |
US20060095713A1 (en) * | 2004-11-03 | 2006-05-04 | Stexar Corporation | Clip-and-pack instruction for processor |
US8000537B2 (en) * | 2006-12-05 | 2011-08-16 | Electronics And Telecommunications Research Institute | Optical vision chip (OVC) and image recognition method using the same |
JP4537420B2 (ja) * | 2007-04-02 | 2010-09-01 | 株式会社リコー | Simd型マイクロプロセッサ |
CN101035071B (zh) * | 2007-04-16 | 2010-09-29 | 中国人民解放军国防科学技术大学 | 并行simd结构中条件数据路由方法 |
US8700884B2 (en) * | 2007-10-12 | 2014-04-15 | Freescale Semiconductor, Inc. | Single-instruction multiple-data vector permutation instruction and method for performing table lookups for in-range index values and determining constant values for out-of-range index values |
CN102055969B (zh) * | 2009-10-30 | 2012-12-19 | 鸿富锦精密工业(深圳)有限公司 | 影像解块过滤器及使用其的影像处理装置 |
JP2011192171A (ja) * | 2010-03-16 | 2011-09-29 | Ricoh Co Ltd | Simd型プロセッサを備えた画像処理装置とその処理方法及びプログラム |
CN101930358B (zh) * | 2010-08-16 | 2013-06-19 | 中国科学技术大学 | 一种单指令多数据流结构上的数据处理方法及处理器 |
KR101405410B1 (ko) * | 2010-10-20 | 2014-06-24 | 고려대학교 산학협력단 | 객체 검출 장치 및 시스템 |
JP2012221131A (ja) | 2011-04-06 | 2012-11-12 | Panasonic Corp | 画像認識プロセッサ |
JP2013238442A (ja) | 2012-05-14 | 2013-11-28 | Oki Electric Ind Co Ltd | 推定装置、推定方法及びプログラム |
US9251572B2 (en) * | 2013-07-26 | 2016-02-02 | Qualcomm Incorporated | System and method of correcting image artifacts |
-
2014
- 2014-03-26 JP JP2014064238A patent/JP6329412B2/ja active Active
-
2015
- 2015-01-09 CN CN201510010597.2A patent/CN104951295B/zh active Active
- 2015-03-17 US US14/660,253 patent/US9886281B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068226A1 (en) * | 2008-03-28 | 2014-03-06 | Mikhail Smelyanskiy | Vector instructions to enable efficient synchronization and parallel reduction operations |
JP2010198183A (ja) * | 2009-02-24 | 2010-09-09 | Mitsubishi Electric Corp | プログラム実行装置 |
US20140032877A1 (en) * | 2011-12-23 | 2014-01-30 | Thomas R. Craver | Apparatus and method for an instruction that determines whether a value is within a range |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018005924A (ja) * | 2006-09-22 | 2018-01-11 | インテル コーポレイション | 文字列を処理するための命令及び論理回路 |
US10929131B2 (en) | 2006-09-22 | 2021-02-23 | Intel Corporation | Instruction and logic for processing text strings |
US11023236B2 (en) | 2006-09-22 | 2021-06-01 | Intel Corporation | Instruction and logic for processing text strings |
US11029955B2 (en) | 2006-09-22 | 2021-06-08 | Intel Corporation | Instruction and logic for processing text strings |
US11537398B2 (en) | 2006-09-22 | 2022-12-27 | Intel Corporation | Instruction and logic for processing text strings |
Also Published As
Publication number | Publication date |
---|---|
US20150277928A1 (en) | 2015-10-01 |
CN104951295A (zh) | 2015-09-30 |
US9886281B2 (en) | 2018-02-06 |
CN104951295B (zh) | 2018-05-29 |
JP6329412B2 (ja) | 2018-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6865847B2 (ja) | 処理装置、チップ、電子設備及び方法 | |
JP6329412B2 (ja) | Simdプロセッサ | |
JP6700712B2 (ja) | 畳み込み演算装置 | |
KR102486030B1 (ko) | 완전연결층 신경망 정방향 연산 실행용 장치와 방법 | |
US10379816B2 (en) | Data accumulation apparatus and method, and digital signal processing device | |
TWI690896B (zh) | 影像處理器、由其執行之方法、及非暫態機器可讀儲存媒體 | |
JP2009140491A (ja) | 融合型積和演算機能ユニット | |
WO2011024654A1 (ja) | 画像処理装置及び画像処理方法 | |
TWI752343B (zh) | 用於執行絕對差計算之加總的執行單元電路、影像處理器以及方法 | |
JP2013543175A (ja) | 汎用論理演算の方法および装置 | |
US10185560B2 (en) | Multi-functional execution lane for image processor | |
TWI508023B (zh) | 平行及向量式吉伯特-詹森-科西(gilbert-johnson-keerthi)圖形處理技術 | |
JP2018005369A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2014160516A (ja) | 画像処理装置及び画像処理方法 | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
Komuro et al. | A reconfigurable embedded system for 1000 f/s real-time vision | |
JP6378515B2 (ja) | Vliwプロセッサ | |
WO2008077803A1 (en) | Simd processor with reduction unit | |
US20160117168A1 (en) | Vliw processor, instruction structure, and instruction execution method | |
JP2004334297A (ja) | 並列演算処理装置及び並列演算処理方法 | |
Jeon et al. | The parallelization of convolution on a CNN using a SIMT based GPGPU | |
CN108805846A (zh) | 二值图像处理优化的方法及其系统 | |
Lesniak et al. | Approximate Accelerators: A Case Study using Runtime Reconfigurable Processors | |
WO2021228392A1 (en) | Device and method for data processing | |
JP2020112840A (ja) | データ処理装置、データ処理システム、データ処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170301 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180315 |
|
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: 20180410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180420 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6329412 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |