JP2011022780A - ベクトル演算装置およびベクトル演算方法 - Google Patents
ベクトル演算装置およびベクトル演算方法 Download PDFInfo
- Publication number
- JP2011022780A JP2011022780A JP2009166974A JP2009166974A JP2011022780A JP 2011022780 A JP2011022780 A JP 2011022780A JP 2009166974 A JP2009166974 A JP 2009166974A JP 2009166974 A JP2009166974 A JP 2009166974A JP 2011022780 A JP2011022780 A JP 2011022780A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- iteration
- pipe
- instruction
- calculation
- 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
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
【解決手段】ベクトル演算装置1は、複数個のベクトルデータを格納する複数のベクトルレジスタ110、および、ベクトルレジスタ110から出力されるベクトルデータに対し演算を行うベクトル演算器111を有するベクトルパイプ11と、イテレーション演算のk(k:1以上の整数)番目の演算を行うベクトルパイプ11からk+1番目の演算を行うベクトルパイプ11に演算結果を順次並列して供給するパス116と、複数のイテレーション演算を複数のベクトルパイプ11で並列して実行するよう命令発行管理を行う命令発行部102とを備える。
【選択図】図1
Description
X[i]=Y[i]+X[i-1](i=0、1、2、3・・・)
のように表わされる。このような演算は、イテレーション演算又はイタレーション演算と呼ばれる。
X[i]=C[i]+Z[i]*X[i-1]
という漸化式について式を展開し、
X[i]=A[i]+B[i]*X[i-4]
(但し、A[i]=C[i]+Z[i]*C[i-1]+Z[i]*Z[i-1]*C[i-2]+Z[i]*Z[i-1]*Z[i-2]*C[i-3]、B[i]=Z[i]*Z[i-1]*Z[i-2]*Z[i-3])
とする。
この漸化式の演算で再帰的に表れる項は、4つ前の要素であるX[i-4]となる。したがって、要素番号iが5以上であるときのX[i]の算出について、例えばX[4]の算出にはX[0]を、X[5]の算出にはX[1]を用いればよく、4つのベクトルパイプで並列演算することができる。このようにして、ベクトル演算装置の効率の向上を図っている。
以下、図面を参照して実施の形態1について説明する。まず、図1に実施の形態1にかかるベクトル演算装置1の構成を示す。
ベクトル命令発行制御部10は、命令識別部101と、命令発行部102とを有する。
命令識別部101は、プログラム中のイテレーション命令を識別して抽出する。また、命令識別部101は、抽出したイテレーション命令を命令発行部102に出力する。
命令発行部102は、命令識別部101から入力されたイテレーション命令を保持するとともに、イテレーション命令を各ベクトルパイプに発行するタイミングの制御し、命令実行指示を各ベクトルパイプ11に出力する。
ここで、イテレーション命令を発行するタイミングは、バンクスロット方式に基づいて決定される。
イテレーション命令は、イテレーション命令1→イテレーション命令2→イテレーション命令0→イテレーション命令3、の順で実行するものとする。このとき、イテレーション命令1はスロット2と対応付けられ、イテレーション命令2はスロット3と対応付けられ、イテレーション命令0はスロット0と対応付けられ、イテレーション命令3はスロット1と対応付けられる。
ベクトルパイプ11は、命令発行部102からイテレーション命令の入力を受ける。
図1に示す例では、ベクトル演算装置1は、パイプ#0、パイプ#1、・・・、パイプ#n−1、のn個のベクトルパイプ11を有している。なお、パイプ#n−1の出力からパイプ#0の入力にもパス116が設けられており、各ベクトルパイプ11はパス116によって出力と入力とが巡回するように接続されている。また、パイプ#0はセレクタ114を更に有している。
ここで、図1に示した例ではパス116により、ベクトルパイプ11は巡回的に接続されている。パス116は、パイプ#n−1のベクトル演算器111から出力した演算結果をパイプ#0のセレクタ114に入力するのを仲介する。
図1に示した例では、セレクタ114は、イテレーション演算における初期値と、パイプ#n−1のベクトル演算器111から出力された演算結果と、が入力され、いずれか一方を選択して、ベクトル演算器111に出力する。典型的には、イテレーション演算を開始するときは、初期値が選択され、それ以外のときであればパイプ#n−1のベクトル演算器111から出力された演算結果が選択される。
イテレーション命令1:A1[i]=E1[i]+A1[i-1](i=0、1、2、3、…、k、…)
イテレーション命令2:B2[i]=F2[i]+B2[i-1](i=0、1、2、3、…、k、…)
イテレーション命令3:C3[i]=G3[i]+C3[i-1](i=0、1、2、3、…、k、…)
イテレーション命令4:D4[i]=H4[i]+D4[i-1](i=0、1、2、3、…、k、…)
A1[0]=E1[0]+A1[-1]
を行う。
ここで{A1[-1]}は初期値である。この場合、最初の演算に必要な要素を演算器111に入力するため、m個のベクトルレジスタ110の中からセレクタ113にてベクトルレジスタR0が選択され、さらにセレクタ114にて初期値が選択される。ベクトル演算器111は、
E1[0]+A1[-1]
の演算を行い、演算結果{A1[0]}を算出する。
A1[1]=E1[1]+A1[0]
を行う。すなわち、パイプ#0から送られてきた演算結果{A1[0]}とベクトルレジスタR0に格納されている{E1[1]}との演算を行い、演算結果{A1[1]}を算出する。
A1[2]=E1[2]+A1[1]
を行う。すなわち、パイプ#1から送られてきた演算結果{{A1[1]}とベクトルレジスタR0に格納されている{E1[2]}との演算を行い、演算結果{A1[2]}を算出する。
A1[n]=E1[n]+A1[n-1]
を実行できる。すなわち、演算結果{A1[n-1]}と、ベクトルレジスタ110に格納されているベクトルデータ{E1[n]}の演算を行う。これにより、n番以上の演算であってもパイプ#0にもどってイテレーション演算を続行することができる。
イテレーション命令1をA1[i]=E1[i]+A1[i-1](i=0、1、2、3、…、k、…)、
イテレーション命令2をB2[i]=F2[i]+B2[i-1](i=0、1、2、3、…、k、…)、
イテレーション命令3をC3[i]=G3[i]+C3[i-1](i=0、1、2、3、…、k、…)、
イテレーション命令4をD4[i]=H4[i]+D4[i-1](i=0、1、2、3、…、k、…)、
とし、スロット0のタイミングでイテレーション命令1、スロット1のタイミングでイテレーション命令2、スロット2のタイミングでイテレーション命令3、スロット3のタイミングでイテレーション命令4が実行される場合には、
時刻0ではA1[0]=E1[0]+A1[-1](パイプ#0)、
時刻1ではA1[1]=E1[1]+A1[0](パイプ#1)、B2[0]=F2[0]+B2[-1](パイプ#0)、
時刻2ではA1[2]=E1[2]+A1[1](パイプ#2)、B2[1]=F2[1]+B2[0](パイプ#1)、C3[0]=G3[0]+C3[-1](パイプ#0)、
時刻3では、A1[3]=E1[3]+A1[2](パイプ#3)、B2[2]=F2[2]+B2[1](パイプ#2)、C3[1]=G3[1]+C3[0](パイプ#1)、D4[0]=H4[0]+D4[-1](パイプ#0)、
時刻4ではA1[4]=E1[4]+A1[3](パイプ#0)、B2[3]=F2[3]+B2[2](パイプ#3)、C3[2]=G3[2]+C3[1](パイプ#2)、D4[1]=H4[1]+D4[0](パイプ#1)、
時刻5ではA1[5]=E1[5]+A1[4](パイプ#1)、B2[4]=F2[4]+B2[3](パイプ#0)、C3[3]=G3[3]+C3[2](パイプ#3)、D4[2]=H4[2]+D4[1](パイプ#2)
といった処理が、各イテレーション命令の終了条件を満たすまで実行される。イテレーション命令の終了条件は、例えば、ベクトルレジスタ110に格納されたベクトルデータのうち、その演算で使用されるべきベクトルデータを、全て使用し終えた場合とすることができる。
10 ベクトル命令発行制御部
11 ベクトルパイプ
101 命令識別部
102 命令発行部
110 ベクトルレジスタ
111 ベクトル演算器
112 ライトクロスバ
113 セレクタ
114 セレクタ
115 パス
116 パス
Claims (5)
- 複数のイテレーション演算を行うベクトル演算装置であって、
複数個のベクトルデータを格納する複数のベクトルレジスタ、および、前記ベクトルレジスタから出力されるベクトルデータに対し演算を行うベクトル演算器、を有するベクトルパイプと、
前記イテレーション演算のk(k:1以上の整数)番目の演算を行うベクトルパイプからk+1番目の演算を行うベクトルパイプに演算結果を順次並列して供給するパスと、
前記複数のイテレーション演算を前記複数のベクトルパイプで並列して実行するよう命令発行管理を行う命令発行部と、を備える
ベクトル演算装置。 - 前記命令発行部は、各イテレーション命令と、スロット番号と、を対応させておき、ベクトルパイプに時間によってスロット番号を巡回的に割り当て、対応するスロット番号が割り当てられたベクトルパイプに、そのスロット番号のイテレーション命令を与える、
請求項1に記載のベクトル演算装置。 - 前記パスは、前記複数のベクトルパイプを巡回的に接続するように設けられており、
イテレーション演算は、前記複数のベクトルパイプで巡回的に実行される
請求項1又は請求項2に記載のベクトル演算装置。 - 複数のベクトルパイプを有するベクトル演算装置によって複数のイテレーション演算を処理する方法であって、
イテレーション演算のk(k:1以上の整数)番目の演算を実行し、
k番目の演算を行うベクトルパイプからk+1番目の演算を行うベクトルパイプに演算結果を供給し、
k+1番目のベクトルパイプでは、前記k番目の演算結果を用いて演算する、
イテレーション演算方法。 - 各イテレーション命令と、スロット番号と、を対応させておき、ベクトルパイプに時間によってスロット番号を巡回的に割り当て、対応するスロット番号が割り当てられたベクトルパイプに、そのスロット番号のイテレーション命令を与える、
請求項4に記載のイテレーション演算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009166974A JP5170021B2 (ja) | 2009-07-15 | 2009-07-15 | ベクトル演算装置およびベクトル演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009166974A JP5170021B2 (ja) | 2009-07-15 | 2009-07-15 | ベクトル演算装置およびベクトル演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011022780A true JP2011022780A (ja) | 2011-02-03 |
JP5170021B2 JP5170021B2 (ja) | 2013-03-27 |
Family
ID=43632803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009166974A Active JP5170021B2 (ja) | 2009-07-15 | 2009-07-15 | ベクトル演算装置およびベクトル演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5170021B2 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01108676A (ja) * | 1987-10-21 | 1989-04-25 | Fujitsu Ltd | ベクトル処理装置 |
-
2009
- 2009-07-15 JP JP2009166974A patent/JP5170021B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01108676A (ja) * | 1987-10-21 | 1989-04-25 | Fujitsu Ltd | ベクトル処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5170021B2 (ja) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8595280B2 (en) | Apparatus and method for performing multiply-accumulate operations | |
US9760373B2 (en) | Functional unit having tree structure to support vector sorting algorithm and other algorithms | |
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
JP2007519052A (ja) | 命令制御式データ処理装置 | |
WO2015114305A1 (en) | A data processing apparatus and method for executing a vector scan instruction | |
US9965275B2 (en) | Element size increasing instruction | |
KR101586770B1 (ko) | 데이터 처리 장치 | |
US10963258B2 (en) | Apparatus and method for performing multiple control flow predictions | |
KR102295677B1 (ko) | 연속적인 데이터 병렬처리가 가능한 병렬 처리장치 | |
US10001994B2 (en) | Data processing apparatus and method for performing scan operations omitting a further step | |
US8055883B2 (en) | Pipe scheduling for pipelines based on destination register number | |
JP5170021B2 (ja) | ベクトル演算装置およびベクトル演算方法 | |
JP2008015589A (ja) | Vliw型プロセッサおよび命令発行方法 | |
JP5255885B2 (ja) | ベクトルプロセッサ制御装置 | |
WO2015155894A1 (ja) | プロセッサーおよび方法 | |
KR101118593B1 (ko) | Vliw 명령어 처리 장치 및 방법 | |
US20230071941A1 (en) | Parallel processing device | |
JP2011060048A (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
WO2020246598A1 (ja) | 演算装置、演算方法、および演算プログラム | |
JP2006164307A (ja) | 多様な行列格納法を使用可能な連立方程式の並列処理装置および方法 | |
JP4735962B2 (ja) | パイプライン演算処理装置 | |
JP2009086870A (ja) | ベクトル処理装置 | |
JP2006215611A (ja) | 演算装置 | |
JP2013140472A (ja) | ベクトルプロセッサ | |
JP2010204913A (ja) | ベクトル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121009 |
|
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: 20121127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5170021 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |