JP2010218076A - ベクトル演算装置及びベクトル演算方法 - Google Patents
ベクトル演算装置及びベクトル演算方法 Download PDFInfo
- Publication number
- JP2010218076A JP2010218076A JP2009062387A JP2009062387A JP2010218076A JP 2010218076 A JP2010218076 A JP 2010218076A JP 2009062387 A JP2009062387 A JP 2009062387A JP 2009062387 A JP2009062387 A JP 2009062387A JP 2010218076 A JP2010218076 A JP 2010218076A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data buffer
- data
- unit
- operation result
- 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 title claims description 58
- 238000004364 calculation method Methods 0.000 claims description 97
- 230000004044 response Effects 0.000 claims description 12
- 238000007726 management method Methods 0.000 description 75
- 230000000694 effects Effects 0.000 description 12
- 230000001419 dependent effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
【解決手段】ベクトル演算装置は、レジスタ、レジスタのデータを用いベクトル演算する演算器、及び演算結果データを格納可能なデータバッファを備える演算部と、演算部へベクトル演算命令を発する命令発行部及びデータバッファ管理情報を保持するデータバッファ管理部を備える演算制御部とを具備する。命令発行部は、同一レジスタでの複数の命令の依存関係に基づき、第1命令と第2命令とが順番変更可能な場合、演算結果データをデータバッファに格納するよう第2命令を編集する。データバッファ管理部は、第2命令に基づいて、データバッファの出力先レジスタ及び第1命令の情報を管理情報に格納する。演算器は、第2命令に基づき、ベクトル演算して演算結果データを出力する。データバッファは、演算結果データを格納する。
【選択図】図7
Description
命令発行部121は、バイパス部213と発行部214とを含む。バイパス部213は、VR0_111−0〜VRn_111−nを介さずに、バイパスパス部101B−0〜101B−mから演算器0_112−0〜演算器m_112−mへデータを供給し、バイパス演算を制御する。発行部214は、全ての命令の発行を行う。
命令1:VR0とVR1をベクトル加算し、結果をVR2に格納
(vfad:VR2←VR0、VR1)。
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp:VR0←定数C、VR3)。
命令3:VR0とVR1をベクトル加算し、結果をVR3に格納
(vfad:VR3←VR0、VR1)。
ここでは各命令で演算する要素数は4とする。また、命令2の演算結果は、VRを介して命令3へ供給されるものとする。
命令1、2、3が発行される順序は、VRの依存関係により、命令順となっている。
命令1:VR0とVR1をベクトル加算し、結果をVR0に格納
(vfad:VR0←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp:VR0←定数C、VR3)
命令3:VR0とVR1をベクトル加算し、結果をVR3に格納
(vfad:VR3←VR0、VR1)
ここでは各命令で演算する要素数は4とする。
時刻10で、図3で示したR−W依存と同様に、命令1(vfad)が発行される。時刻13で、R−W依存関係の場合と同様に命令1によりVR0、VR1の読み出しが始まり、演算が開始される。図中、「VR0、VR1」は演算器への入力がVR0、VR1のデータであること、「1 vfad」は実行される演算が命令1:vfadであることをそれぞれ示している。時刻20では、R−W依存関係の場合と同様に命令1の演算結果のVR0への書き込みが始まる。図中、「VR0」は演算結果の書き込み先がVR0であることを示している。また、「VR0 Write Start」はVR0へのデータの書き込みが始まることを示している。時刻23では、命令1の演算結果のVR0への書き込みが終わる。
命令1に関し、時刻23でVR0へ書き込みが終了し、命令2に関し、時刻24でVR0へ書き込みが開始され、命令3に関し、時刻24でVR0から読み出しが開始される。
命令1、2、3が発行される順序は、VRの依存関係により、命令順となっている。
命令1:VR0とVR1をベクトル加算し、結果をVR0に格納
(vfad:VR0←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp:VR0←定数C、VR3)
命令3:VR0をメモリにストア
(vst:M←VR0)
ここでは各命令で演算する要素数は4とする。
命令1、2、3が発行される順序は、VRの依存関係により、命令順となっている。
命令1:VR0とVR1をベクトル加算し、結果をVR2に格納
(vfad:VR2←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp:VR0←定数C、VR3)
命令3:VR0とVR1をベクトル加算し、結果をVR3に格納
(vfad:VR3←VR0、VR1)
ここでは、各命令で演算する要素数は4とする。
S101で、命令2の発行後、依存関係が無くなり、S102へ進む。S102で、バイパス部213にて、バイパス演算が可能か判定される。ここでは、命令3は命令2の演算結果を、バイパスパス101B−0〜101B−1経由で受け取るバイパス演算が可能と判定され、S103へ進む。バイパス演算が不可能な場合は、S108へ進み、R−W依存の命令3と同様である。
時刻10で、図3で示したR−W依存と同様に、命令1(vfad)が発行される。図中、「1 vfad」は、発行された命令が命令1:vfadであることを示している。その後、時刻13で、命令1によりVR0、VR1の読み出しが始まり、演算が開始される。命令1は4要素であるため、4時刻連続して、VRの読み出しと演算が行われる。図中、「VR0 Read Start」はVR0からのデータの読み出しが始まることを示している。また、「VR0、VR1」は演算器への入力がVR0、VR1のデータであること、「1 vfad」は実行される演算が命令1:vfadであることをそれぞれ示している。そして、時刻20で、命令1の演算結果のVR2への書き込みが始まる。図中、「VR2」は演算結果の書き込み先がVR2であることを示している。
このプロセッサは、命令種別判別手段と、命令並列発行手段と、分岐判定手段と、実行結果管理手段とを備える。命令種別判別手段は、実行前の命令列に含まれ、条件が他の命令に依存する条件分岐命令の種類を判別する。命令並列発行手段は、分岐の成否が決定されるまでの間、条件分岐命令の種類に応じて、実行ユニットに対して、分岐先の命令列及び/又は後続する命令列の命令を実行ユニットに対して並列発行する。分岐判定手段は、前記条件分岐が依存する他の命令が実行されたとき、条件分岐命令の分岐の成否を判定する。実行結果管理手段は、条件分岐命令の分岐の成否の判定結果によって、命令列の実行結果の有効無効を識別する。
まず、本発明の第1の実施の形態に係るベクトル演算装置の構成について説明する。図7は、本発明の第1の実施の形態に係るベクトル演算装置の構成を示すブロック図である。このベクトル演算装置は、演算部1と、演算制御部2と、演算制御パス3とを具備する。演算部1は、ベクトル演算が可能である。演算制御部2は、命令の発行制御を行い、演算部1を制御する。演算制御パス3は、演算部1と演算制御部2とを接続し、演算制御部2から演算部1に対して制御信号を送る。
命令1:VR0とVR1をベクトル加算し、結果をVR2に格納
(vfad:VR2←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp:VR0←定数C、VR3)
命令3:VR0とVR1をベクトル加算し、結果をVR3に格納
(vfad:VR3←VR0、VR1)
ここでは各命令で演算する要素数は4とする。
ステップS21で、命令発行部21がライトバック命令を発行する。ここでは、命令ID(自命令ID)が2で、VR0(ターゲットVR)へのライトバック命令が発行されたものとする。ステップS22で、ID比較部223が、情報保持部221に保持している情報(図8D)の依存命令IDと、命令発行部21で発行された命令のIDを比較する。ここではIDは一致しないため、ステップS24へ進む。
時刻16で、ステップS37が処理される。データバッファ15から読み出されたデータの、VR0への書き込みが開始される。図中、「VR0 Write Start」はデータバッファ15のデータのVR0への書き込みが開始されることを示している。
時刻20で、命令1の演算結果のVR2への書き込みが開始される。図中、「VR2」は演算結果の書き込み先がVR2であることを示している。
時刻17で、命令3によりVR0とVR1の読み出しが開始され、演算が開始される。図中、「VR0 Read Start」はVR0からのデータの読み出しが開始されることを示している。また、「VR0、VR1」は演算器への入力がVR0、VR1のデータであること、「3 vfad」は実行される演算が命令3:vfadであることをそれぞれ示している。
時刻24で、命令3の演算結果のVR3への書き込みが開始される。図中、「VR3」は演算結果の書き込み先がVR3であることを示している。
その後、演算制御部2において、時刻10で命令1の発行に関する処理が実行され、時刻11で命令2の演算結果についてライトバック命令の発行に関する処理が実行され、時刻14で命令3の発行に関する処理が実行される。
それら命令1、命令2に関するライトバック命令、及び命令3に対応して、演算部1において、時刻13〜時刻20で命令1に関する処理(第1要素)が実行され、時刻14〜時刻16でライトバック命令に関する処理(第1要素)が実行され、時刻17〜時刻24で命令3に関する処理(第1要素)が実行される。
命令1:VR0とVR1をベクトル加算し、結果をVR0に格納
(vfad VR0←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp VR0←定数C、VR3)
命令3:VR0とVR1をベクトル加算し、結果をVR3に格納
(vfad VR3←VR0、VR1)
ここでは各命令で演算する要素数は4とする。
ステップS11は、R−W依存関係の場合の動作と同様である。ステップS12で、発行部214が、命令間の依存関係を分析する。命令1と命令2との間に、W−Wの依存関係、命令2と命令3との間に、W−R依存関係があると判る。ここでは、W−Wの依存関係の有無に着目する。命令1と命令2との間には、W−W依存関係が有ると判別され、ステップS13に進む。W−W依存関係が無ければ、ステップS20に進む。ステップS13からステップS20は、R−W依存関係の場合と同様である。
時刻20では、R−W依存関係の場合と同様に命令1の演算結果のVR0への書き込みが開始される。図中、「VR0」は演算結果の書き込み先がVR0であることを示している。また、「VR0 Write Start」はVR0へのデータの書き込みが開始されることを示している。
時刻23では、命令1の演算結果のVR2への書き込みが終わる。
時刻24で、ステップS37が処理される。データバッファ15から読み出されたデータの、VR0への書き込みが開始される。図中、「VR0 Write Start」はデータバッファ15からのデータのVR0への書き込みが開始されることを示している。
時刻24で、命令3により、VR0とVR1のデータの読み出しが開始され、演算が開始される。図中、「VR0 Read Start」はVR0からのデータの読み出しが開始されることを示している。また、「VR0、VR1」は演算器への入力がVR0、VR1のデータであること、「3 vfad」は実行される演算が命令3:vfadであることをそれぞれ示している。
時刻31で、命令3の演算結果のVR3への書き込みが開始される。図中、「VR3」は演算結果の書き込み先がVR3であることを示している。
その後、演算制御部2において、時刻10で命令1の発行に関する処理が実行され、時刻19で命令2の演算結果についてライトバック命令の発行に関する処理が実行され、時刻21で命令3の発行に関する処理が実行される。
それら命令1、命令2に関するライトバック命令、及び命令3に対応して、演算部1において、時刻13〜時刻20で命令1に関する処理(第1要素)が実行され、時刻22〜時刻24でライトバック命令に関する処理(第1要素)が実行され、時刻24〜時刻31で命令3に関する処理(第1要素)が実行される。
第1の効果は、VRのR−W依存関係、及び、W−W依存関係のある後続命令が、先行命令を追い越して命令発行することが可能となり、システム性能の向上が図れることである。その理由は、データバッファ15に演算結果を一時的に保持することで、レジスタリネーミングと同様の効果が得られるからである。
まず、本発明の第2の実施の形態に係るベクトル演算装置の構成について説明する。図15は、本発明の第2の実施の形態に係るベクトル演算装置の構成を示すブロック図である。このベクトル演算装置は、図7に示す第1の実施の形態に係るベクトル演算装置に、以下の構成を追加/変更している。
命令1:VR0とVR1をベクトル加算し、結果をVR0に格納
(vfad VR0←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp VR0←定数C、VR3)
命令3:VR0をメモリにストア
(vst M←VR0)
ここでは各命令で演算する要素数は4とする。
時刻8での命令2の処理は、第1の実施の形態のW−W依存関係の場合と同様である。
時刻8で、命令3に対するデータバッファ15からのデータ供給が開始され、ストアデータバッファパス1Hにデータが送られる。この時、ストアパスセレクタ1Gでは、ストアデータバッファパス1H側が選択され、ストアパス1Kに、データバッファ15からのデータが送られる。図中、「Readデータバッファ」はデータバッファ15からデータを読み出すことを示している。また、「VR0」は演算器への入力がVR0のデータであること、「3 vst」は実行される演算が命令3:vstであることをそれぞれ示している。
時刻12で、メモリへデータが送られる。ここでは、データバッファ15の読み出しの4時刻後にメモリへデータが送られるものとする。図中、「メモリ」はデータの送信先がメモリであることを示している。
その命令2、及び命令3に対応して、演算部1において、時刻3〜時刻8で命令2に関する処理(処理すべき複数の要素のうちの先頭の第1要素)が実行され、時刻8〜時刻12で命令3に関する処理(第1要素)が実行される。
その後、演算制御部2において、時刻10で命令1の発行に関する処理が実行され、時刻19で命令2の演算結果についてライトバック命令の発行に関する処理が実行される。
それら命令1、及び命令2に関するライトバック命令に対応して、演算部1において、時刻13〜時刻20で命令1に関する処理(第1要素)が実行され、時刻22〜時刻24でライトバック命令に関する処理(第1要素)が実行される。
まず、第1の実施の形態に示される第1〜第2の効果を得ることができる。加えて、第3の効果として、ストア命令に対しても、データバッファ15からデータ供給を行うことで、ストア命令の実行タイミングを早めることが可能となり、システム性能の向上が図れることである。
まず、本発明の第3の実施の形態に係るベクトル演算装置の構成について説明する。図18は、本発明の第3の実施の形態に係るベクトル演算装置の構成を示すブロック図である。このベクトル演算装置は、図15に示す第2の実施の形態に係るベクトル演算装置に、以下の構成を追加/変更している。
命令1:VR0とVR1をベクトル加算し、結果をVR2に格納
(vfad VR2←VR0、VR1)
命令2:定数CとVR3をベクトル乗算し、結果をVR0に格納
(vfmp VR0←定数C、VR3)
命令3:VR0とVR1をベクトル加算し、結果をVR3に格納
(vfad VR3←VR0、VR1)
ここでは、各命令で演算する要素数は4とする。
時刻8での命令2の処理は、第1の実施の形態のR−W依存関係の場合と同様である。
時刻8で、命令3に対するデータバッファ15からのデータ供給が開始され、データバッファバイパスパス1Lを経由し、命令3が使用する演算器へデータが送られる。図中、「Readデータバッファ」はデータバッファ15からデータを読み出すことを示している。また、「VR0、VR1」は演算器への入力がVR0、VR1のデータであること、「3 vfad」は実行される演算が命令3:vfadであることをそれぞれ示している。
時刻15で、命令3の演算結果がVR3に書き込まれる。図中、「VR3」はデータの書き込み先がVR3であることを示している。
時刻11以降のライトバック命令の処理は、第1の実施の形態のR−W依存関係の場合と同様である。
その命令2、及び命令3に対応して、演算部1において、時刻3〜時刻8で命令2に関する処理(処理すべき複数の要素のうちの先頭の第1要素)が実行され、時刻8〜時刻15で命令3に関する処理(第1要素)が実行される。
その後、演算制御部2において、時刻10で命令1の発行に関する処理が実行され、時刻11で命令2の演算結果についてライトバック命令の発行に関する処理が実行される。
それら命令1、及び命令2に関するライトバック命令に対応して、演算部1において、時刻13〜時刻20で命令1に関する処理(第1要素)が実行され、時刻14〜時刻16でライトバック命令に関する処理(第1要素)が実行される。
まず、第1の実施の形態及び第2の実施の形態に示される第1〜第3の効果を得ることができる。加えて、第4の効果として、データバッファ15から後続演算へのデータ供給を行うことで、後続演算の実行タイミングを早める事が可能となり、システム性能の向上が図れることである。
2、102 演算制御部
3、103 演算制御パス
11、11−0〜11−n、111−0〜111−n VR0〜VRn
12、12−0〜12−m、112−0〜112−m 演算器0〜演算器m
13、113 クロスバ
14、 演算結果セレクタ
15、 データバッファ
16、116 ストアセレクタ
17、117 定数部
18、18−0〜18−m、118−0〜118−m 定数パス
19、19−0〜19−n、119−0〜119−n VRリードパス
21、121 命令発行部
22 データバッファ管理部
211 ID付加部
212 編集部
213 バイパス部
214 発行部
221 情報保持部
222 エントリ制御部
223 ID比較部
224 発行許可部
225 VR番号比較部
226 バイパス検出部
1A−0〜1A−m、101A−0〜101A−m 演算結果パス
1B−0〜1B−m、101B−0〜101B−m バイパスパス
1C−0〜1C−n、101C−0〜101C−n VRライトパス
1D バッファパス
1E、101E ストアパス
1F セレクトパス
1L データバッファバイパスパス
1G ストアパスセレクタ
1H ストアデータバッファパス
1J ストアセレクタパス
1K ストアパス
Claims (15)
- ベクトル演算が可能な演算部と、
前記演算部を制御する演算制御部と
を具備し、
前記演算部は、
複数のレジスタと、
前記複数のレジスタに格納されたデータを用いてベクトル演算を実行する複数の演算器と、
前記複数の演算器の演算結果データを一時的に格納可能なデータバッファと
を備え、
前記演算制御部は、
前記演算部へベクトル演算に関する複数の命令を発行する命令発行部と、
前記データバッファの管理に関する管理情報を保持するデータバッファ管理部と
を備え、
前記命令発行部は、前記複数のレジスタのうちの同一レジスタにおける前記複数の命令の依存関係に基づいて、前記複数の命令のうち、第1命令と第2命令との間で順番変更が可能な場合、演算結果データを前記データバッファに格納するように前記第2命令を編集して発行し、
前記データバッファ管理部は、前記編集された第2命令の発行に基づいて、前記データバッファの出力先レジスタ及び前記順番変更の変更相手である前記第1命令の情報を前記管理情報に格納し、
前記複数の演算器のうちの一つは、前記編集された第2命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いてベクトル演算を実行して演算結果データを出力し、
前記データバッファは、前記出力された演算結果データを一時的に格納する
ベクトル演算装置。 - 請求項1に記載のベクトル演算装置において、
前記命令発行部は、前記第1命令を発行し、
前記複数の演算器のうちの一つは、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを前記複数のレジスタいずれかへ出力し、
前記データバッファ管理部は、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納し、
前記命令発行部は、前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行し、
前記データバッファ管理部は、前記出力命令の発行に応答して、前記管理情報をリセットし、
前記出力命令に基づいて、前記データバッファに格納された前記演算結果データは、前記出力先レジスタである前記複数のレジスタのいずれかに出力され、
前記複数の演算器のうちの一つは、前記第1命令及び前記第2命令を除く前記複数の命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを出力する
ベクトル演算装置。 - 請求項1に記載のベクトル演算装置において、
前記データバッファ管理部は、前記複数の命令のうちの第3命令について、前記複数のレジスタのうちの前記第3命令が対象とするレジスタと、前記出力先レジスタとが等しい場合、前記管理情報に基づいて、前記データバッファの演算結果データが使用可能か否かを判定し、
前記命令発行部は、前記データバッファの演算結果データが使用可能な場合、前記データバッファの演算結果データを使用するように前記第3命令を編集して発行し、
前記編集された第3命令に基づいて、前記データバッファの演算結果データが前記第3命令での出力先へ出力され、
前記命令発行部は、前記第1命令を発行し、
前記複数の演算器は、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを前記複数のレジスタいずれかへ出力し、
前記データバッファ管理部は、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納し、
前記命令発行部は、前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行し、
前記データバッファ管理部は、前記出力命令の発行に応答して、前記管理情報をリセットし、
前記出力命令に基づいて、前記データバッファに格納された前記演算結果データは、前記出力先レジスタである前記複数のレジスタのいずれかに出力される
ベクトル演算装置。 - 請求項1に記載のベクトル演算装置において、
前記データバッファ管理部は、前記複数の命令のうちの第3命令について、前記複数のレジスタのうちの前記第3命令が対象とするレジスタと、前記出力先レジスタとが等しい場合、前記管理情報に基づいて、前記データバッファの演算結果データが使用可能か否かを判定し、
前記命令発行部は、前記データバッファの演算結果データが使用可能な場合、前記データバッファの演算結果データを使用するように前記第3命令を編集して発行し、
前記編集された第3命令に基づいて、前記データバッファの演算結果データが前記第3命令での出力先へ出力され、
前記命令発行部は、前記第1命令を発行し、
前記データバッファ管理部は、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納し、
前記命令発行部は、前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行し、
前記データバッファ管理部は、前記出力命令の発行に応答して、前記管理情報をリセットし、
前記出力命令に基づいて、前記データバッファに格納された演算結果データは、前記出力先レジスタである前記複数のレジスタのいずれかに出力され、
前記複数の演算器は、前記第1命令に基づいて、前記複数のレジスタのデータを用いたベクトル演算を実行して演算結果データを出力する
ベクトル演算装置。 - 請求項1乃至4のいずれか一項に記載のベクトル演算装置において、
前記複数の命令の依存関係は、同一レジスタに対して先行命令が読み出しで後続命令が書き込みの関係、又は、同一レジスタに対して先行命令が書き込みで後続命令が書き込みの関係、である
ベクトル演算装置。 - ベクトル演算装置を用いたベクトル演算方法であって、
ここで、前記ベクトル演算装置は、
複数のレジスタと、
前記複数のレジスタに格納されたデータを用いてベクトル演算を実行する複数の演算器と、
前記複数の演算器の演算結果データを一時的に格納可能なデータバッファと
を備え、
前記複数のレジスタのうちの同一レジスタにおける前記複数の命令の依存関係に基づいて、前記複数の命令のうち、第1命令と第2命令との間で順番変更が可能な場合、演算結果データを前記データバッファに格納するように前記第2命令を編集して発行するステップと、
前記編集された第2命令の発行に基づいて、前記データバッファの出力先レジスタ及び前記順番変更の変更相手である前記第1命令の情報を、前記データバッファの管理に関する管理情報に格納するステップと、
前記複数の演算器のうちの一つにより、前記編集された第2命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いてベクトル演算を実行して演算結果データを出力するステップと、
前記データバッファに、前記出力された演算結果データを一時的に格納するステップと
を具備する
ベクトル演算方法。 - 請求項6に記載のベクトル演算方法において、
前記第1命令を発行ステップと、
前記複数の演算器のうちの一つにより、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを前記複数のレジスタいずれかへ出力するステップと、
前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納するステップと、
前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行するステップと、
前記出力命令の発行に応答して、前記管理情報をリセットするステップと、
前記出力命令に基づいて、前記データバッファに格納された前記演算結果データを、前記出力先レジスタである前記複数のレジスタのいずれかに出力するステップと、
前記複数の演算器のうちの一つにより、前記第1命令及び前記第2命令を除く前記複数の命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを出力するステップと
を更に具備する
ベクトル演算方法。 - 請求項6に記載のベクトル演算方法において、
前記複数の命令のうちの第3命令について、前記複数のレジスタのうちの前記第3命令が対象とするレジスタと、前記出力先レジスタとが等しい場合、前記管理情報に基づいて、前記データバッファの演算結果データが使用可能か否かを判定するステップと、
前記データバッファの演算結果データが使用可能な場合、前記データバッファの演算結果データを使用するように前記第3命令を編集して発行するステップと、
前記編集された第3命令に基づいて、前記データバッファの演算結果データを前記第3命令での出力先へ出力するステップと、
前記第1命令を発行ステップと、
前記複数の演算器により、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを前記複数のレジスタいずれかへ出力するステップと、
前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納するステップと、
前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行ステップと、
前記出力命令の発行に応答して、前記管理情報をリセットするステップと、
前記出力命令に基づいて、前記データバッファに格納された前記演算結果データを、前記出力先レジスタである前記複数のレジスタのいずれかに出力するステップと
を更に具備する
ベクトル演算方法。 - 請求項6に記載のベクトル演算方法において、
前記複数の命令のうちの第3命令について、前記複数のレジスタのうちの前記第3命令が対象とするレジスタと、前記出力先レジスタとが等しい場合、前記管理情報に基づいて、前記データバッファの演算結果データが使用可能か否かを判定するステップと、
前記データバッファの演算結果データが使用可能な場合、前記データバッファの演算結果データを使用するように前記第3命令を編集して発行するステップと、
前記編集された第3命令に基づいて、前記データバッファの演算結果データを前記第3命令での出力先へ出力するステップと、
前記第1命令を発行するステップと、
前記データバッファ管理部は、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納するステップと、
前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行するステップと、
前記出力命令の発行に応答して、前記管理情報をリセットするステップと、
前記出力命令に基づいて、前記データバッファに格納された演算結果データを、前記出力先レジスタである前記複数のレジスタのいずれかに出力するステップと、
前記複数の演算器により、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを出力するステップと
を更に具備する
ベクトル演算方法。 - 請求項6乃至9のいずれか一項に記載のベクトル演算方法において、
前記複数の命令の依存関係は、同一レジスタに対して先行命令が読み出しで後続命令が書き込みの関係、又は、同一レジスタに対して先行命令が書き込みで後続命令が書き込みの関係、である
ベクトル演算方法。 - ベクトル演算装置を用いたベクトル演算方法を、コンピュータとしての前記ベクトル演算装置に実行させるプログラムであって、
ここで、前記ベクトル演算装置は、
ベクトル演算が可能な演算部と、
前記演算部を制御する演算制御部と
を具備し、
前記演算部は、
複数のレジスタと、
前記複数のレジスタに格納されたデータを用いてベクトル演算を実行する複数の演算器と、
前記複数の演算器の演算結果データを一時的に格納可能なデータバッファと
を備え、
前記演算制御部は、
前記演算部へベクトル演算に関する複数の命令を発行する命令発行部と、
前記データバッファの管理に関する管理情報を保持するデータバッファ管理部と
を備え、
前記命令発行部が、前記複数のレジスタのうちの同一レジスタにおける前記複数の命令の依存関係に基づいて、前記複数の命令のうち、第1命令と第2命令との間で順番変更が可能な場合、演算結果データを前記データバッファに格納するように前記第2命令を編集して発行するステップと、
前記データバッファ管理部が、前記編集された第2命令の発行に基づいて、前記データバッファの出力先レジスタ及び前記順番変更の変更相手である前記第1命令の情報を、前記データバッファの管理に関する管理情報に格納するステップと
を具備し、
前記複数の演算器のうちの一つは、前記編集された第2命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いてベクトル演算を実行して演算結果データを出力し、
前記データバッファは、前記出力された演算結果データを一時的に格納する
プログラム。 - 請求項11に記載のプログラムにおいて、
前記命令発行部が、前記第1命令を発行ステップと、
前記データバッファ管理部が、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納するステップと、
前記命令発行部が、前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行するステップと、
前記データバッファ管理部が、前記出力命令の発行に応答して、前記管理情報をリセットするステップと
を更に具備し、
前記複数の演算器のうちの一つが、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを前記複数のレジスタいずれかへ出力し、
前記出力命令に基づいて、前記データバッファに格納された前記演算結果データが、前記出力先レジスタである前記複数のレジスタのいずれかに出力され、
前記複数の演算器が、前記第1命令及び前記第2命令を除く前記複数の命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを出力する
プログラム。 - 請求項11に記載のプログラムにおいて、
前記データバッファ管理部が、前記複数の命令のうちの第3命令について、前記複数のレジスタのうちの前記第3命令が対象とするレジスタと、前記出力先レジスタとが等しい場合、前記管理情報に基づいて、前記データバッファの演算結果データが使用可能か否かを判定するステップと、
前記命令発行部が、前記データバッファの演算結果データが使用可能な場合、前記データバッファの演算結果データを使用するように前記第3命令を編集して発行するステップと、
前記命令発行部が、前記第1命令を発行ステップと、
前記データバッファ管理部が、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納するステップと、
前記命令発行部が、前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行ステップと、
前記データバッファ管理部が、前記出力命令の発行に応答して、前記管理情報をリセットするステップと
を更に具備し、
前記編集された第3命令に基づいて、前記データバッファの演算結果データが前記第3命令での出力先へ出力され、
前記複数の演算器が、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを前記複数のレジスタいずれかへ出力し、
前記出力命令に基づいて、前記データバッファに格納された前記演算結果データが、前記出力先レジスタである前記複数のレジスタのいずれかに出力される
プログラム。 - 請求項11に記載のプログラムにおいて、
前記データバッファ管理部が、前記複数の命令のうちの第3命令について、前記複数のレジスタのうちの前記第3命令が対象とするレジスタと、前記出力先レジスタとが等しい場合、前記管理情報に基づいて、前記データバッファの演算結果データが使用可能か否かを判定するステップと、
前記命令発行部が、前記データバッファの演算結果データが使用可能な場合、前記データバッファの演算結果データを使用するように前記第3命令を編集して発行するステップと、
前記命令発行部が、前記第1命令を発行するステップと、
前記データバッファ管理部が、前記管理情報を参照して、前記発行された第1命令が前記変更相手であることを検出して、前記管理情報に格納するステップと、
前記命令発行部が、前記管理情報を参照して、前記データバッファに格納された演算結果データを、前記出力先レジスタに出力する出力命令を発行するステップと、
前記データバッファ管理部が、前記出力命令の発行に応答して、前記管理情報をリセットするステップと
を更に具備し、
前記編集された第3命令に基づいて、前記データバッファの演算結果データが前記第3命令での出力先へ出力され、
前記出力命令に基づいて、前記データバッファに格納された演算結果データが、前記出力先レジスタである前記複数のレジスタのいずれかに出力され、
前記複数の演算器が、前記第1命令に基づいて、前記複数のレジスタの少なくとも一つのデータを用いたベクトル演算を実行して演算結果データを出力する
プログラム。 - 請求項11乃至14のいずれか一項に記載のプログラムにおいて、
前記複数の命令の依存関係は、同一レジスタに対して先行命令が読み出しで後続命令が書き込みの関係、又は、同一レジスタに対して先行命令が書き込みで後続命令が書き込みの関係、である
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009062387A JP5403661B2 (ja) | 2009-03-16 | 2009-03-16 | ベクトル演算装置及びベクトル演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009062387A JP5403661B2 (ja) | 2009-03-16 | 2009-03-16 | ベクトル演算装置及びベクトル演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010218076A true JP2010218076A (ja) | 2010-09-30 |
JP5403661B2 JP5403661B2 (ja) | 2014-01-29 |
Family
ID=42976889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009062387A Expired - Fee Related JP5403661B2 (ja) | 2009-03-16 | 2009-03-16 | ベクトル演算装置及びベクトル演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5403661B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015522196A (ja) * | 2012-07-11 | 2015-08-03 | エイアールエム リミテッド | ベクトル処理中のデータ要素処理のための順序制御 |
JP2020027614A (ja) * | 2018-08-10 | 2020-02-20 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 情報処理方法とプロセッサ |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0283779A (ja) * | 1988-09-21 | 1990-03-23 | Hitachi Ltd | ベクトル処理装置の命令実行制御方式 |
JP2001236222A (ja) * | 2000-02-22 | 2001-08-31 | Hitachi Ltd | アウトオブオーダー実行機能を備えるプロセッサ |
-
2009
- 2009-03-16 JP JP2009062387A patent/JP5403661B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0283779A (ja) * | 1988-09-21 | 1990-03-23 | Hitachi Ltd | ベクトル処理装置の命令実行制御方式 |
JP2001236222A (ja) * | 2000-02-22 | 2001-08-31 | Hitachi Ltd | アウトオブオーダー実行機能を備えるプロセッサ |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015522196A (ja) * | 2012-07-11 | 2015-08-03 | エイアールエム リミテッド | ベクトル処理中のデータ要素処理のための順序制御 |
JP2020027614A (ja) * | 2018-08-10 | 2020-02-20 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 情報処理方法とプロセッサ |
US11055100B2 (en) | 2018-08-10 | 2021-07-06 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Processor, and method for processing information applied to processor |
Also Published As
Publication number | Publication date |
---|---|
JP5403661B2 (ja) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9965274B2 (en) | Computer processor employing bypass network using result tags for routing result operands | |
KR100279784B1 (ko) | 연산처리장치 | |
CN100478871C (zh) | 从队列处理指令刷新的生存期计数器设计的***和方法 | |
JP5423217B2 (ja) | 演算処理装置、情報処理装置、および演算処理装置の制御方法 | |
US8918627B2 (en) | Multithreaded processor with multiple concurrent pipelines per thread | |
US20140215189A1 (en) | Data processing apparatus and method for controlling use of an issue queue | |
US20110138155A1 (en) | Vector computer and instruction control method therefor | |
JP4996654B2 (ja) | プロセッサ | |
JP2005235135A (ja) | ベクトル処理装置、及び、追い越し制御回路 | |
JPH09138778A (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
JP2000330788A (ja) | コンピュータシステム | |
JP5403661B2 (ja) | ベクトル演算装置及びベクトル演算方法 | |
KR20090101061A (ko) | 프로세서 및 정보 처리 장치 | |
JP2006517322A (ja) | パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置 | |
JP7048612B2 (ja) | ベクトル生成命令 | |
CN113900712A (zh) | 指令处理方法、指令处理装置及存储介质 | |
JP2008527559A (ja) | プロセッサ及びその命令発行方法 | |
CN109923520B (zh) | 计算机***及内存访问技术 | |
Kiat et al. | A comprehensive analysis on data hazard for RISC32 5-stage pipeline processor | |
JP6819166B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
CN107003855B (zh) | 带进位的原子加法指令 | |
CN111258657B (zh) | 流水线控制方法及相关设备 | |
JP6020428B2 (ja) | ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 | |
JP6254352B2 (ja) | ループのプロローグまたはエピローグの無効演算を処理する装置及び方法 | |
JP5493837B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130823 |
|
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: 20131001 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131024 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5403661 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 |
|
LAPS | Cancellation because of no payment of annual fees |