JP2020527795A - レジスタベースの複素数処理 - Google Patents
レジスタベースの複素数処理 Download PDFInfo
- Publication number
- JP2020527795A JP2020527795A JP2020501122A JP2020501122A JP2020527795A JP 2020527795 A JP2020527795 A JP 2020527795A JP 2020501122 A JP2020501122 A JP 2020501122A JP 2020501122 A JP2020501122 A JP 2020501122A JP 2020527795 A JP2020527795 A JP 2020527795A
- Authority
- JP
- Japan
- Prior art keywords
- complex
- data items
- component
- real
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 137
- 239000013598 vector Substances 0.000 claims abstract description 93
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 24
- 230000010076 replication Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000017105 transposition Effects 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims 2
- 238000007792 addition Methods 0.000 description 30
- 238000000605 extraction Methods 0.000 description 9
- 230000001186 cumulative effect Effects 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 235000019580 granularity Nutrition 0.000 description 3
- 230000005945 translocation Effects 0.000 description 3
- QQEHDZXXCDSAFE-JBSAMAPISA-N [(3s,8r,9s,10r,13s,14s,17r)-17-acetyl-6-chloro-3-hydroxy-10,13-dimethyl-1,2,3,8,9,11,12,14,15,16-decahydrocyclopenta[a]phenanthren-17-yl] acetate Chemical compound C1=C(Cl)C2=C[C@@H](O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 QQEHDZXXCDSAFE-JBSAMAPISA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000009738 saturating Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
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/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/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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/4806—Computations with complex numbers
- G06F7/4812—Complex multiplication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
? CMUL : complex multiply with rotation;
? CMLA : complex multiply accumulate with rotation;
? SQRDCMULH : signed saturating rounding doubling complex multiply with rotation, returning high half; and
? SQRDCMLAH : signed saturating rounding doubling complex multiply-accumulate with rotation, returning high half.
(上記命令セットの訳は以下の通り)
・CMUL:回転ありの複素数乗算
・CMLA:回転ありの複素数乗累算
・SQRDCMULH:上位半分を返す、回転ありの符号付き飽和丸め付きダブル複素数乗算
・SQRDCMLAH:上位半分を返す、回転ありの符号付き飽和丸め付きダブル複素数乗累算
? SQDMLALB : signed multiply add long bottom bottom;
? SQDMLSLB : signed multiply subtract long bottom bottom;
? SQDMLALT : signed multiply add long top top;
? SQDMLSLT : signed multiply subtract long top top;
? SQDMLALBT : signed multiply add long bottom top; and
? SQDMLSLBT : signed multiply subtract long bottom top.
(上記命令セットの訳は以下の通り)
・SQDMLALB:符号付き 乗算 加算 Long 下位 下位
・SQDMLSLB:符号付き 乗算 減算 Long 下位 下位
・SQDMLALT:符号付き 乗算 加算 Long 上位 上位
・SQDMLSLT:符号付き 乗算 減算 Long 上位 上位
・SQDMLALBT:符号付き 乗算 加算 Long 下位 上位
・SQDMLSLBT:符号付き 乗算 減算 Long 下位 上位
実例のコード・シーケンス(1):
...
.Loop:
...
LD1<Tb> <Zn>.<Tb>,<Pn>/z,[<Xn>]
LD1<Tb> <Zm>.<Tb>,p/z,[<Xm>]
SQDMLALB <Zda>.<T>,<Zn>.<Tb>,<Zm>.<Tb>
SQDMLSLT <Zda>.<T>,<Zn>.<Tb>,<Zm>.<Tb>
SQDMLALTB <Zdb>.<T>,<Zn>.<Tb>,<Zm>.<Tb>
SQDMLALTB <Zdb>.<T>,<Zm>.<Tb>,<Zn>.<Tb>
...
.endLoop:
SQSHRNB <Zda>.<Tb>,<Zda>.<T>,<imm>
SQSHRNT <Zda>.<Tb>,<Zdb>.<T>,<imm>
ST1 <Zda>.<Tb>,<Pd>,[Xd]
…
...
.Loop:
...
//aとbから8つの複素数値をロード
ld2 {v0.8h,v1.8h},[aPtr],#32
ld2 {v2.8h,v3.8h},[bPtr],#32
smlal v4.4s,v0.4h,v2.4h //c.re+=a.re*b.re
smlal v5.4s,v1.4h,v2.4h //c.im+=a.im*b.re
smlsl v4.4s,v1.4h,v3.4h //c.re−=a.re*b.im
smlal v5.4s,v0.4h,v3.4h //c.im+=a.re*b.im
smlal2 v6.4s,v0.8h,v2.8h //c.re+=a.re*b.re
smlal2 v7.4s,v1.8h,v2.8h //c.im+=a.im*b.re
smlsl2 v6.4s,v1.8h,v3.8h //c.re−=a.re*b.im
smlal2 v7.4s,v0.8h,v3.8h //c.im+=a.re*b.im
...
.endLoop:
...
add v4.4s,v4.4s,v6.4s
add v5.4s,v5.4s,v7.4s
addv s4,v4.4s //実数に対して水平の累算
addv s5,v5.4s //虚数に対して水平の累算
sqshrn h4,s4,#16 //実数を16右シフト
sqshrn h5,s5,#16 //虚数を16右シフト
st2 {v4.h,v5.h}[0],[outPtr] //出力を格納
...
.Loop:
...
//aとbから8つの複素数値をロード
ld1h z0.h,<Pn>/z,[aPtr,#0]
ld1h z2.h,<Pn>/z,[aPtr,#16]
ld1h z1.h,<Pn>/z,[bPtr,#0]
ld1h z3.h,<Pn>/z,[bPtr,#16]
cdotre z4.d,z0.h,z1.h //c.re+=a.re*b.re
cdotim z5.d,z0.h,z1.h //c.im+=a.im*b.re
cdotre z6.d,z2.h,z3.h //c.re+=a.re*b.re
cdotim z7.d,z2.h,z3.h //c.im+=a.im*b.re
...
.endLoop:
...
sqrshrnb z8.s,z4.d,#16
sqrshrnb z8.s,z6.d,#16
sqrshrnb z9.s,z5.d,#16
sqrshrnb z9.s,z7.d,#16
sqrshrnb z10.h,z8.s,#16
sqrshrnb z10.h,z9.s,#16
rev z11.h,<Pm>/m,z10.h
uzip1 z12.s,<Pm>/m,z11.s
str s12,[cPtr]
...
SQRDCMLAH Zda.S,Zn.S,Zm.S,#A
SQRDCMLAH Zda.S,Zn.S,Zm.S,#B
この時AとBとの意味のある結合は次の通りである:
A=0,B=90。この場合、Zn及びZm内の複素数の2つのベクトルは乗算され、その積がZda内の複素数に加算される。
A=0,B=270。この場合、Zn内の複素数の共役はZm内の複素数で乗算され、その積がZda内の複素数に加算される。
A=180,B=270。この場合、Zn及びZm内の複素数の2つのベクトルは乗算され、その積がZda内の複素数から減算される。
A=180,B=90。この場合、Zn内の複素数の共役はZm内の複素数で乗算され、その積がZda内の複素数から減算される。
・SQDMLALBT:拡大した虚数
・SQDMLSLT:拡大した実数
・SQDMLALB:拡大した共役実数
・SQDMLSLBT:拡大した共役虚数
回転が0の場合、結果は複素数ドット積演算の実数成分を含むベクトルである。
回転が90の場合、結果は複素数ドット積演算の虚数成分を含むベクトルである。
回転が180の場合、結果は複素共役ドット積演算の実数成分を含むベクトルである。
回転が270の場合、結果は複素共役ドット積演算の虚数成分を含むベクトルである。
回転が0の場合、第2のソースからの複素数の奇数番号の成分が負の値にされ、デスティネーション・ベクトルは複素数ドット積演算の実数成分を含む。
回転が90の場合、第2のソースからの複素数の実数部と虚数部がスワップされ、デスティネーション・ベクトルは複素数ドット積演算の虚数成分を含む。
回転が180の場合、変形は適用されず、デスティネーション・ベクトルは複素共役ドット積演算の実数成分を含む。
回転が270の場合、第2のソースからの複素数の偶数番号の成分が負の値にされ、次に第2のソースから導出されて得られるベクトルの実数部と虚数部がスワップされ、デスティネーション・ベクトルは複素共役ドット積演算の虚数成分を含む。
ADDLBT:(X+jY)を計算する際の拡大した虚数値
SUBLBT:(X+jY)を計算する際の拡大した実数値
SUBLTB:(X−jY)を計算する際の拡大した虚数値
ADDLBT:(X−jY)を計算する際の拡大した実数値
Claims (25)
- 命令をデコードするための命令デコーダ回路と、
入力データ・ベクトル内の個々の位置に複数の入力データ項目を含む前記入力データ・ベクトルへの前記命令によって指定されるベクトル処理演算を選択的に適用するためのデータ処理回路と
を備え、
前記命令デコーダ回路は複素数演算、第1のソース・レジスタ、第2のソース・レジスタ、及びデスティネーション・レジスタを指定する複素数処理命令に応答して、前記データ処理回路が、
前記第1のソース・レジスタ内の交互する位置からデータ項目の少なくとも1つの第1のセットを抽出することであって、前記第1のソース・レジスタ内の連続データ項目は複素数の第1のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記第2のソース・レジスタ内の交互する位置からデータ項目の少なくとも1つの第2のセットを抽出することであって、前記第2のソース・レジスタ内の連続データ項目は複素数の第2のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記データ項目の第1及び第2のセットをオペランドとして使用して複素数成分の結果セットを生成することであって、前記複素数成分の結果セットは、前記複素数の第1のセット及び前記複素数の第2のセットに適用された前記複素数演算の複素数結果の実数部及び虚数部のうちの1つである、生成することと、
前記複素数成分の結果セットを前記デスティネーション・レジスタに適用することと
を行うように制御するための制御信号を生成する、装置。 - 前記複素数成分の結果セットは前記複素数結果の実数成分のセットである、請求項1に記載の装置。
- 前記複素数成分の結果セットは前記複素数結果の虚数成分のセットである、請求項1に記載の装置。
- 前記データ処理回路は前記制御信号に応答して前記複素数成分の結果セットを前記デスティネーション・レジスタ内の連続位置に適用する、請求項1から3までのいずれかに記載の装置。
- 前記複素数成分の結果セットのそれぞれの複素数成分は、前記データ項目の第1及び第2のセットのそれぞれのデータ項目より拡大している、請求項4に記載の装置。
- 前記データ処理回路は前記制御信号に応答して、前記複素数成分の結果セットを、複素数成分のさらなる結果セットでインターリーブされる前記デスティネーション・レジスタ内の交互する位置に適用し、
前記複素数成分の結果セットが前記複素数結果の実数成分のセットである場合、前記複素数成分のさらなる結果セットは前記複素数結果の虚数成分のセットであり、
前記複素数成分の結果セットが前記複素数結果の虚数成分のセットである場合、前記複素数成分のさらなる結果セットは前記複素数結果の実数成分のセットである、
請求項1から3までのいずれかに記載の装置。 - 前記複素数処理命令は、前記データ項目の第1のセットが前記第1のソース・レジスタの奇数番号位置又は偶数番号位置から抽出されるかどうかをさらに指定し、前記複素数処理命令は、前記データ項目の第2のセットが前記第2のソース・レジスタの奇数番号位置又は偶数番号位置から抽出されるかどうかをさらに指定する、請求項1から6までのいずれかに記載の装置。
- 前記複素数処理命令は、前記第1のソース・レジスタ及び前記第2のソース・レジスタのうちの少なくとも1つについての複製インデックスをさらに指定し、前記データ処理回路はさらに前記制御信号に応答して、前記第1のソース・レジスタ及び前記第2のソース・レジスタのうちの前記少なくとも1つにおける前記複製インデックスによって示される複素数のソース・セットを複製する、請求項1から7までのいずれかに記載の装置。
- 前記複素数のソース・セットの複製は、前記複素数のソース・セットの複数回の複製を含む、請求項8に記載の装置。
- 前記第1のソース・レジスタから抽出される前記データ項目の少なくとも1つの第1のセットは、前記データ項目の第1のセット及びデータ項目の第3のセットを含み、
前記データ項目の第1のセットが前記複素数の第1のセットの実数成分である場合、前記データ項目の第3のセットは前記複素数の第1のセットの虚数成分であり、前記データ項目の第1のセットが前記複素数の第1のセットの虚数成分である場合、前記データ項目の第3のセットは前記複素数の第1のセットの実数成分であり、
前記データ処理回路は前記制御信号にさらに応答して、さらに前記データ項目の第3のセットをオペランドとして使用して、前記複素数成分の結果セットを生成する、請求項1から9までのいずれかに記載の装置。 - 前記第2のソース・レジスタから抽出される前記データ項目の少なくとも1つの第2のセットは、前記データ項目の第2のセット及びデータ項目の第4のセットを含み、
前記データ項目の第2のセットが前記複素数の第2のセットの実数成分である場合、前記データ項目の第4のセットは前記複素数の第2のセットの虚数成分であり、前記データ項目の第2のセットが前記複素数の第2のセットの虚数成分である場合、前記データ項目の第4のセットは前記複素数の第2のセットの実数成分であり、
前記データ処理回路は前記制御信号にさらに応答して、さらに前記データ項目の第4のセットをオペランドとして使用して、前記複素数成分の結果セットを生成する、請求項1から10までのいずれかに記載の装置。 - 前記複素数演算は、複素数ドット積演算であり、前記データ処理回路は前記制御信号に応答して、前記複素数の第1のセットの実数成分−虚数成分対の対のセット、並びに前記複素数の第2のセットの実数成分−虚数成分対の対のセット、の部分積から前記複素数成分の結果セットを累算する累算回路を備える、請求項10又は11に記載の装置。
- 前記複素数演算は複素数乗算演算を含む、請求項1から11までのいずれかに記載の装置。
- 前記複素数演算は複素数加算演算、又は複素数減算演算である、請求項1から11までのいずれかに記載の装置。
- 前記複素数処理命令がさらに転置パラメータを指定し、前記データ処理回路が前記制御信号に応答して、前記複素数の第1及び第2のセットへの前記複素数演算の適用に先立って前記複素数の第1及び第2のセットのうちの少なくとも1つに対して転置演算を適用する、請求項1から14までのいずれかに記載の装置。
- 前記転置演算は、
少なくとも1つの前記複素数の第1のセット及び前記複素数の第2のセットにおいて、
実数成分の虚数成分での置換、
虚数成分の実数成分での置換、
実数成分と虚数成分の交換、
実数成分を負の値にすること、及び
虚数成分を負の値にすること
のうちの少なくとも1つを含む、請求項15に記載の装置。 - 前記複素数処理命令は即値として前記転置パラメータを指定する、請求項15又は16に記載の装置。
- 前記複素数成分の結果セットを前記デスティネーション・レジスタに適用することは、前記複素数成分の結果セットを前記デスティネーション・レジスタに格納することを含む、請求項1から17までのいずれかに記載の装置。
- 前記複素数成分の結果セットを前記デスティネーション・レジスタに適用することは、前記複素数成分の結果セットを前記デスティネーション・レジスタの内容で累算することを含む、請求項1から18までのいずれかに記載の装置。
- 前記デスティネーション・レジスタは前記第1のソース・レジスタ及び前記第2のソース・レジスタのうちの1つである、請求項1から19までのいずれかに記載の装置。
- 前記複素数演算は飽和演算である、請求項1から20までのいずれかに記載の装置。
- データ処理装置を動作させる方法であって、
命令をデコードするステップと、
入力データ・ベクトル内の個々の位置に複数の入力データ項目を含む前記入力データ・ベクトルへの前記命令によって指定されるベクトル処理演算を選択的に適用するステップと、
複素数演算、第1のソース・レジスタ、第2のソース・レジスタ、及びデスティネーション・レジスタを指定する複素数処理命令に応答して、前記データ処理装置のデータ処理回路が、
前記第1のソース・レジスタ内の交互する位置からデータ項目の少なくとも1つの第1のセットを抽出することであって、前記第1のソース・レジスタ内の連続データ項目は複素数の第1のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記第2のソース・レジスタ内の交互する位置からデータ項目の少なくとも1つの第2のセットを抽出することであって、前記第2のソース・レジスタ内の連続データ項目は複素数の第2のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記データ項目の第1及び第2のセットをオペランドとして使用して複素数成分の結果セットを生成することであって、前記複素数成分の結果セットは、前記複素数の第1のセット及び前記複素数の第2のセットに適用された前記複素数演算の複素数結果の実数部及び虚数部のうちの1つである、生成することと、
前記複素数成分の結果セットを前記デスティネーション・レジスタに適用することと
を行うように制御するための制御信号を生成するステップと
を含む、方法。 - 命令をデコードする手段と、
入力データ・ベクトル内の個々の位置に複数の入力データ項目を含む前記入力データ・ベクトルへの前記命令によって指定されるベクトル処理演算を選択的に適用する手段と、
複素数演算、第1のソース・レジスタ、第2のソース・レジスタ、及びデスティネーション・レジスタを指定する複素数処理命令に応答して、データ処理装置内のデータ処理が、
前記第1のソース・レジスタ内の交互する位置からデータ項目の少なくとも1つの第1のセットを抽出することであって、前記第1のソース・レジスタ内の連続データ項目は複素数の第1のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記第2のソース・レジスタ内の交互する位置からデータ項目の少なくとも1つの第2のセットを抽出することであって、前記第2のソース・レジスタ内の連続データ項目は複素数の第2のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記データ項目の第1及び第2のセットをオペランドとして使用して複素数成分の結果セットを生成することであって、前記複素数成分の結果セットは、前記複素数の第1のセット及び前記複素数の第2のセットに適用された前記複素数演算の複素数結果の実数部及び虚数部のうちの1つである、生成することと、
前記複素数成分の結果セットを前記デスティネーション・レジスタに適用することと
を行うための手段を制御するための制御信号を生成する手段と
を備える、装置。 - 命令実行環境を提供するためのホスト・データ処理装置を制御するためのコンピュータ・プログラムであって、
命令をデコードするための命令デコード・プログラム・ロジックと、
入力データ・ベクトル構造体内の個々の位置に複数の入力データ項目を含む前記入力データ・ベクトル構造体への前記命令によって指定されるベクトル処理演算を選択的に適用するためのデータ処理プログラム・ロジックと
を含み、
前記命令デコード・プログラム・ロジックは複素数演算、第1のソース・データ構造体、第2のソース・データ構造体、及びデスティネーション・データ構造体を指定する複素数処理命令に応答して、前記データ処理プログラム・ロジックが、
前記第1のソース・データ構造体内の交互する位置からデータ項目の少なくとも1つの第1のセットを抽出することであって、前記第1のソース・データ構造体内の連続データ項目は複素数の第1のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記第2のソース・データ構造体内の交互する位置からデータ項目の少なくとも1つの第2のセットを抽出することであって、前記第2のソース・データ構造体内の連続データ項目は複素数の第2のセットの交互する実数成分及び虚数成分を含む、抽出することと、
前記データ項目の第1及び第2のセットをオペランドとして使用して複素数成分の結果セットを生成することであって、前記複素数成分の結果セットは、前記複素数の第1のセット及び前記複素数の第2のセットに適用された前記複素数演算の複素数結果の実数部及び虚数部のうちの1つである、生成することと、
前記複素数成分の結果セットを前記デスティネーション・データ構造体に適用することと
を行うように制御するための制御信号を生成する、コンピュータ・プログラム。 - 請求項24に記載の前記コンピュータ・プログラムを非一時的に記憶するコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1711700.3A GB2564696B (en) | 2017-07-20 | 2017-07-20 | Register-based complex number processing |
GB1711700.3 | 2017-07-20 | ||
PCT/GB2018/051851 WO2019016507A1 (en) | 2017-07-20 | 2018-07-02 | COMPLEX NUMBER PROCESSING BASED ON REGISTERS |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020527795A true JP2020527795A (ja) | 2020-09-10 |
JP7343473B2 JP7343473B2 (ja) | 2023-09-12 |
Family
ID=59771743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020501122A Active JP7343473B2 (ja) | 2017-07-20 | 2018-07-02 | レジスタベースの複素数処理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11210090B2 (ja) |
EP (1) | EP3655851B1 (ja) |
JP (1) | JP7343473B2 (ja) |
KR (1) | KR102586259B1 (ja) |
CN (1) | CN110914800B (ja) |
GB (1) | GB2564696B (ja) |
IL (1) | IL271635B2 (ja) |
TW (1) | TWI773783B (ja) |
WO (1) | WO2019016507A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018174936A1 (en) * | 2017-03-20 | 2018-09-27 | Intel Corporation | Systems, methods, and apparatuses for tile matrix multiplication and accumulation |
GB2564696B (en) | 2017-07-20 | 2020-02-05 | Advanced Risc Mach Ltd | Register-based complex number processing |
CN118012506B (zh) * | 2024-04-08 | 2024-06-07 | 龙芯中科技术股份有限公司 | 二进制翻译优化方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579253A (en) * | 1994-09-02 | 1996-11-26 | Lee; Ruby B. | Computer multiply instruction with a subresult selection option |
JP2002527808A (ja) * | 1998-10-09 | 2002-08-27 | ボプス インコーポレイテッド | マンアレイアーキテクチャにおける複素数乗算及び高速フーリエ変換(fft)の効率的な実現 |
US20050193185A1 (en) * | 2003-10-02 | 2005-09-01 | Broadcom Corporation | Processor execution unit for complex operations |
JP2009505214A (ja) * | 2005-08-11 | 2009-02-05 | コアソニック アーベー | 短い複素乗算器及び独立ベクトル・ロード・ユニットを含むクラスタードsimdマイクロ・アーキテクチャを有するプログラマブル・デジタル信号プロセッサ |
JP2009048532A (ja) * | 2007-08-22 | 2009-03-05 | Nec Electronics Corp | マイクロプロセッサ |
US20170177359A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Lane-Based Strided Scatter Operations |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376812B1 (en) * | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US7660840B2 (en) * | 2003-09-29 | 2010-02-09 | Broadcom Corporation | Method, system, and computer program product for executing SIMD instruction for flexible FFT butterfly |
GB2411976B (en) * | 2003-12-09 | 2006-07-19 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2409059B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2411975B (en) * | 2003-12-09 | 2006-10-04 | Advanced Risc Mach Ltd | Data processing apparatus and method for performing arithmetic operations in SIMD data processing |
GB2409066B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
US9557994B2 (en) * | 2004-07-13 | 2017-01-31 | Arm Limited | Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number |
GB2464292A (en) * | 2008-10-08 | 2010-04-14 | Advanced Risc Mach Ltd | SIMD processor circuit for performing iterative SIMD multiply-accumulate operations |
CN101825998B (zh) * | 2010-01-22 | 2012-09-05 | 龙芯中科技术有限公司 | 向量复数乘法运算的处理方法及相应的装置 |
US20120166511A1 (en) * | 2010-12-22 | 2012-06-28 | Hiremath Chetan D | System, apparatus, and method for improved efficiency of execution in signal processing algorithms |
KR20120077164A (ko) * | 2010-12-30 | 2012-07-10 | 삼성전자주식회사 | Simd 구조를 사용하는 복소수 연산을 위한 사용하는 장치 및 방법 |
CN102937967B (zh) * | 2012-10-11 | 2018-02-27 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
CN103873522B (zh) * | 2012-12-14 | 2018-07-06 | 联想(北京)有限公司 | 一种电子设备及应用于电子设备的文件分块方法 |
US9880845B2 (en) * | 2013-11-15 | 2018-01-30 | Qualcomm Incorporated | Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods |
US20170177362A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Adjoining data element pairwise swap processors, methods, systems, and instructions |
GB2548908B (en) * | 2016-04-01 | 2019-01-30 | Advanced Risc Mach Ltd | Complex multiply instruction |
US11023231B2 (en) * | 2016-10-01 | 2021-06-01 | Intel Corporation | Systems and methods for executing a fused multiply-add instruction for complex numbers |
GB2564696B (en) | 2017-07-20 | 2020-02-05 | Advanced Risc Mach Ltd | Register-based complex number processing |
-
2017
- 2017-07-20 GB GB1711700.3A patent/GB2564696B/en active Active
-
2018
- 2018-06-29 TW TW107122441A patent/TWI773783B/zh active
- 2018-07-02 WO PCT/GB2018/051851 patent/WO2019016507A1/en unknown
- 2018-07-02 CN CN201880046750.9A patent/CN110914800B/zh active Active
- 2018-07-02 JP JP2020501122A patent/JP7343473B2/ja active Active
- 2018-07-02 EP EP18739623.9A patent/EP3655851B1/en active Active
- 2018-07-02 KR KR1020207004143A patent/KR102586259B1/ko active IP Right Grant
- 2018-07-02 IL IL271635A patent/IL271635B2/en unknown
- 2018-07-02 US US16/630,614 patent/US11210090B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579253A (en) * | 1994-09-02 | 1996-11-26 | Lee; Ruby B. | Computer multiply instruction with a subresult selection option |
JP2002527808A (ja) * | 1998-10-09 | 2002-08-27 | ボプス インコーポレイテッド | マンアレイアーキテクチャにおける複素数乗算及び高速フーリエ変換(fft)の効率的な実現 |
US20050193185A1 (en) * | 2003-10-02 | 2005-09-01 | Broadcom Corporation | Processor execution unit for complex operations |
JP2009505214A (ja) * | 2005-08-11 | 2009-02-05 | コアソニック アーベー | 短い複素乗算器及び独立ベクトル・ロード・ユニットを含むクラスタードsimdマイクロ・アーキテクチャを有するプログラマブル・デジタル信号プロセッサ |
JP2009048532A (ja) * | 2007-08-22 | 2009-03-05 | Nec Electronics Corp | マイクロプロセッサ |
US20170177359A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Lane-Based Strided Scatter Operations |
Also Published As
Publication number | Publication date |
---|---|
TWI773783B (zh) | 2022-08-11 |
IL271635B1 (en) | 2023-10-01 |
CN110914800B (zh) | 2023-12-05 |
KR102586259B1 (ko) | 2023-10-10 |
GB2564696A (en) | 2019-01-23 |
GB2564696B (en) | 2020-02-05 |
TW201908964A (zh) | 2019-03-01 |
US11210090B2 (en) | 2021-12-28 |
CN110914800A (zh) | 2020-03-24 |
GB201711700D0 (en) | 2017-09-06 |
KR20200026992A (ko) | 2020-03-11 |
IL271635B2 (en) | 2024-02-01 |
WO2019016507A1 (en) | 2019-01-24 |
JP7343473B2 (ja) | 2023-09-12 |
EP3655851A1 (en) | 2020-05-27 |
IL271635A (en) | 2020-02-27 |
EP3655851B1 (en) | 2022-12-14 |
US20210026628A1 (en) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8255446B2 (en) | Apparatus and method for performing rearrangement and arithmetic operations on data | |
JP2020508513A (ja) | データ処理装置における拡大算術計算 | |
JP7148526B2 (ja) | データ処理装置におけるベクトルによる要素演算 | |
JP7324754B2 (ja) | ベクトル・キャリー付き加算命令 | |
JP7343473B2 (ja) | レジスタベースの複素数処理 | |
JP2020508512A (ja) | データ処理装置における乗累算 | |
JP7186212B2 (ja) | データ処理装置におけるベクトル・インタリーブ | |
US20240319999A1 (en) | A processing apparatus, method and computer program for a vector combining instruction | |
TW202305588A (zh) | 用於向量組合指令之處理設備、方法、及電腦程式 | |
TW202349232A (zh) | 用於執行外積操作之技術 | |
TW202411860A (zh) | 多外積指令 | |
GB2617829A (en) | Technique for handling data elements stored in an array storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230508 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7343473 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |