JP6293795B2 - スカラーレジスタデータ値に基づいたベクトルレジスタアドレス指定および関数 - Google Patents
スカラーレジスタデータ値に基づいたベクトルレジスタアドレス指定および関数 Download PDFInfo
- Publication number
- JP6293795B2 JP6293795B2 JP2015558998A JP2015558998A JP6293795B2 JP 6293795 B2 JP6293795 B2 JP 6293795B2 JP 2015558998 A JP2015558998 A JP 2015558998A JP 2015558998 A JP2015558998 A JP 2015558998A JP 6293795 B2 JP6293795 B2 JP 6293795B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- processor
- vector
- alignment
- vrf
- 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.)
- Expired - Fee Related
Links
- 239000013598 vector Substances 0.000 title claims description 158
- 230000006870 function Effects 0.000 title description 42
- 238000000034 method Methods 0.000 claims description 40
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001360 synchronised effect 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/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/30018—Bit or string 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
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30163—Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
本出願は、参照によりその全体を本明細書に組み込むものとする2013年2月26日に出願された「VECTOR REGISTER ADDRESSING AND FUNCTIONS BASED ON A SCALAR REGISTER DATA VALUE」と題する米国特許出願第13/777,297号に対する優先権を主張するものである。
data@Rt+1=Rt.H=0100_0000_1000_0000_0000_0000_0000_0001
32エントリVRF360については、このマスク内の各イネーブルビットは、マスクの最下位ビットに対応するレジスタV0から開始して読み取られるVRFアドレスを指示する。イネーブルビットが「1」であるこの例示的なマスクでは、V0、V23およびV30にあるVRFレジスタが読み取られる。この方法では最大32個のレジスタを指定することが可能であり、またVRF360は同時読取り演算のこの回数を受け入れるのに十分な読取りポートを有しないことがある。したがって、32個の読取りポートを有することの代替として、コプロセッサ354の状態マシン関数によってオペランド読取り演算の連続した組を制御することが可能である。たとえば読取りポートが2つであれば、最大32のレジスタを読み取るために16回の連続した読取り演算(32のイネーブルマスクビットにより指定される場合)が提供されてよく、読取りポートが4つであれば、8回の連続した読取り演算が提供されよい。要求されるソースオペランドはVRF360から読み取られる。マスク値はまた、ベクトル実行ユニット362上の演算をマスクするために使用されてよい。アライメント関数は、たとえば図1のアライメント命令ならびに図2Aおよび図2Bのアライメント命令に関して説明したように供給されたソースオペランドに対して演算される。記憶回路366は、アライメントされた結果を選択するとともに、これらを、結果書込みユニット380によって作成されたVd/Vddアドレス(または、複数のアドレス)にアライメントされたデータが書き込まれる場所であるVRF360に送る。記憶回路366は、命令復号ユニット359により識別された命令復号情報に基づいて、アライメントユニット364からの結果またはベクトル実行ユニット365からの結果のいずれかを選択する。
104 Vd=valign(Vu@Rt)命令
105 演算コード(Opc)
106 命令特定フィールド
107 ベクトルレジスタアドレスソースフィールドVu
108 ベクトルレジスタアドレス宛先フィールドVd
109 GPプロセッサ開始場所レジスタアドレスソースフィールドGP Rt
112 Vuレジスタ
114 Vu+1レジスタ
122 Vdレジスタ
200 アライメント関数
201 アライメント関数
203 Vdd=valign(Vu@RT)命令
204 Vdd=valign(Vu@RT)命令
205 演算コード(Opc)
206 命令特定フィールド
207 ベクトルレジスタアドレスソースフィールドVu
208 ベクトルレジスタアドレス宛先フィールドVdd
209 GPプロセッサ開始場所レジスタアドレスソースフィールドGP Rt
212 Vuレジスタ
214 Vu+1レジスタ
216 Vu+2レジスタ
218 Vu+3レジスタ
219 アライメント演算
222 Vdd.Lレジスタ
224 Vdd.Hレジスタ
300 アライメントサブシステム
302 メモリ階層
304 ベクトルコプロセッサ
305 データポート
306 汎用(GP)プロセッサ
307 GPプロセッサレジスタファイル
308 ベクトルプロセッサ命令レジスタ
309 命令復号ユニット
310 ベクトルレジスタファイル(VRF)
312 ベクトル関数ユニット
314 アライメントユニット
315 ベクトル実行ユニット
320 オペランドフェッチユニット
330 結果書込みユニット
333 GP Rtアドレスフィールド
334 GP Rtアドレス(data@Rt)
335 復号化演算コード
337 スパンビット
338 Vuレジスタアドレス
339 VdまたはVddレジスタアドレス
350 アライメントサブシステム
354 ベクトルコプロセッサ
355 データポート
356 汎用(GP)プロセッサ
357 GPプロセッサレジスタファイル
359 命令復号ユニット
360 ベクトルレジスタファイル(VRF)
362 ベクトル関数ユニット
364 マスクアライメントユニット
365 ベクトル実行ユニット
370 オペランドフェッチユニット
380 結果書込みユニット
382 GP Rtアドレスフィールド
384 32ビットRt.L
385 復号化済み演算コード
386 復号化済み演算コード
387 スパンビット
388 Vuレジスタアドレス
389 VdまたはVddレジスタアドレス
500 ポータブルデバイス
504 システムコア
506 プロセッサコンプレックス
508 システムメモリ
510 ソフトウェア命令
514 電源
516 アンテナ
518 入力デバイス
520 ディスプレイ
522 カメラ
524 スピーカ
526 マイクロフォン
528 ワイヤレスインターフェース
530 表示コントローラ
532 カメラインターフェース
534 codec
536 汎用(GP)プロセッサ
538 コプロセッサ(CoP)
540 モデムサブシステム
544 フラッシュコントローラ
546 フラッシュデバイス
548 マルチメディアサブシステム
549 L1 I&Dキャッシュ
550 L2キャッシュ
552 メモリコントローラ
554 L1ベクトルメモリ
Claims (22)
- ベクトルアライメント命令を実行するための方法であって、
第1のプロセッサで作成された開始場所に、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスするステップであって、前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサである、ステップと、
前記第2のプロセッサ上で、ベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRFの標的レジスタに1組のアライメントされたデータ値として記憶されるようにアライメントするステップと、
前記VRFの標的レジスタに前記アライメントされた1組のデータ値を記憶するステップとを含む方法。 - ベクトルアライメント命令を実行するための方法であって、
第1のプロセッサ上で作成された開始場所に、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスするステップと、
前記第2のプロセッサ上で、ベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRFの標的レジスタに1組のアライメントされたデータ値として記憶されるようにアライメントするステップであって、スパンビットが、前記VRFの第1のレジスタ群のうちの第1のレジスタまたは前記VRFの第2のレジスタ群のうちの第2のレジスタを前記VRFの前記レジスタとして選択する、ステップと、
前記VRFの標的レジスタに前記アライメントされた1組のデータ値を記憶するステップと
を含む方法。 - 前記スパンビットは前記開始場所の最上位ビットである、請求項2に記載の方法。
- 前記第1のレジスタ群のうちの前記第1のレジスタは、前記ベクトルアライメント命令のVuフィールドによって識別され、前記第1のレジスタ群のそれ以外のレジスタは、レジスタの命令指定による順序付けに従って識別される、請求項2に記載の方法。
- ベクトルアライメント命令を実行するための方法であって、
第1のプロセッサ上で作成され、前記第1のプロセッサのスカラーレジスタファイル内のレジスタに記憶され、かつ前記第1のプロセッサと前記第2のプロセッサとの間で共有される値からスパンビットおよび開始場所にアクセスするステップと、
前記第2のプロセッサ上でベクトルレジスタファイル(VRF)の1組のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRFの標的レジスタの組に1組のアライメントされたデータ値として記憶されるようにアライメントするステップであって、前記VRFの前記1組のレジスタは前記スパンビットに基づいて第1のレジスタセットまたは第2のレジスタセットとして選択される、アライメントするステップと、
前記VRFの標的レジスタに前記アライメントされた1組のデータ値を記憶するステップと
を含む、方法。 - 前記第1のレジスタセットは、Vu識別されたレジスタで始まるリニアプラスワン順序付けにおける3つのレジスタからなる組であるとともに前記第2のレジスタセットは、Vu+k識別されたレジスタで始まるリニアプラスkプラスワン順序付けにおける3つのレジスタからなる組であり、かつkは前記アライメント命令によって1以上の整数となるように指定される、請求項5に記載の方法。
- 前記第1のレジスタセットは、Vu識別されたレジスタで始まるリニアプラスツー順序付けにおける3つのレジスタからなる組であるとともに前記第2のレジスタセットは、Vu+k識別されたレジスタで始まるリニアプラスkプラスツー順序付けにおける3つのレジスタからなる組であり、かつkは前記アライメント命令によって1以上の整数となるように指定される、請求項5に記載の方法。
- 前記第1のレジスタセットはVu、Vu+P1、Vu+P2であり、前記第2のレジスタセットはVu+P1、Vu+P2、Vu+P3であり、かつP1、P2、P3はアクセス可能なVRFレジスタの範囲内に来るように前記アライメント命令によって指定された素数である、請求項5に記載の方法。
- 前記スカラーレジスタファイルの前記レジスタ、および前記標的レジスタは、前記ベクトルアライメント命令内で指定され、前記VRFの前記レジスタは、ベクトルユニット(Vu)ベースレジスタに記憶された値によって間接的に識別される、請求項1、2、および5のうちのいずれか一項に記載の方法。
- 前記第1のプロセッサ上の演算に影響を及ぼすことなく開始場所のアクセスが発生可能なように、前記スカラーレジスタファイルの前記レジスタが、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項1、2、および5のうちのいずれか一項に記載の方法。
- ベクトルアライメントおよび演算命令を実行するための方法であって、
第1のプロセッサ上で作成された開始場所に対して、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスするステップであって、前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサである、ステップと、
前記第2のプロセッサ上でベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、1組のアライメントされたデータ値が作成されるようにアライメントするステップと、
前記VRFの標的レジスタに記憶される結果を作成するために前記アライメントされたデータ値に対して前記ベクトルアライメントおよび演算命令に従って演算をするステップと、
を含む方法。 - 前記第1のプロセッサ上の演算に影響を及ぼすことなく前記開始場所の前記アクセスが発生可能なように、前記スカラーレジスタファイル内の前記レジスタが、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項11に記載の方法。
- 前記スカラーレジスタファイル内の前記レジスタ、および前記標的レジスタは、前記ベクトルアライメントおよび演算命令において指定され、前記VRFの前記レジスタはベクトルユニット(Vu)ベースレジスタに記憶された値によって間接的に識別される、請求項12に記載の方法。
- ベクトルマスクアライメント命令を実行するための方法であって、
第1のプロセッサ上で作成されたマスクおよび開始場所に対して、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内の第1のレジスタおよび第2のレジスタからアクセスするステップであって、前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサである、ステップと、
前記マスク内のイネーブルビットに従って前記第2のプロセッサ上でベクトルレジスタファイル(VRF)の1組のレジスタを識別するように前記マスクを適用するステップと、
第2のプロセッサ上で前記VRFの前記識別された1組のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRFの標的レジスタの組に1組のアライメントされたデータ値として記憶されるようにアライメントするステップと、
前記VRFの標的レジスタの組に前記アライメントされた1組のデータ値を記憶するステップと
を含む方法。 - 前記第1のプロセッサ上の演算に影響を及ぼすことなく前記マスクおよび前記開始場所の前記アクセスが発生可能なように、前記第1のレジスタおよび前記第2のレジスタが、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項14に記載の方法。
- ベクトルアライメント命令を実行するための装置であって、
1つまたは複数のレジスタ値を第2のプロセッサと共有するように構成された第1のプロセッサと関連付けされたスカラーレジスタファイルであって、前記1つまたは複数のレジスタ値はベクトルアライメント命令において指定されたRtアドレスに従って前記スカラーレジスタファイルからアクセスされ、前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサであり、前記1つまたは複数のレジスタ値は、前記GPプロセッサにより作成される、スカラーレジスタファイルと、
ベクトルレジスタファイル(VRF)の複数のレジスタ内の識別されたデータを、前記ベクトルアライメント命令、および前記1つまたは複数のレジスタ値から決定されたアライメント開始場所に従ってアライメントするように構成された前記第2のプロセッサ内のアライメント回路と、
前記アライメント回路から前記アライメントされたデータを選択し、前記ベクトルアライメント命令によって指定されたアライメント記憶アドレスに従って、前記アライメントされたデータを前記ベクトルレジスタファイル内に記憶するように構成された記憶回路と、
を備える装置。 - 前記開始場所は前記複数のレジスタの開始レジスタ内にある、請求項16に記載の装置。
- ベクトルアライメント命令を実行するための装置であって、
1つまたは複数のレジスタ値を第2のプロセッサと共有するように構成された第1のプロセッサと関連付けされたスカラーレジスタファイルであって、前記1つまたは複数のレジスタ値はベクトルアライメント命令において指定されたRtアドレスに従って前記スカラーレジスタファイルからアクセスされる、スカラーレジスタファイルと、
ベクトルレジスタファイル(VRF)の複数のレジスタ内の識別されたデータを、前記ベクトルアライメント命令、および前記1つまたは複数のレジスタ値から決定されたアライメント開始場所に従ってアライメントするように構成された前記第2のプロセッサ内のアライメント回路と、
前記アライメント回路から前記アライメントされたデータを選択し、前記ベクトルアライメント命令によって指定されたアライメント記憶アドレスに従って、前記アライメントされたデータを前記ベクトルレジスタファイル内に記憶するように構成された記憶回路と
を備え、
ダブルアライメント命令は、スパンコードの状態に従って前記VRFの第1のレジスタセットまたは第2のレジスタセットを識別するために、前記1つまたは複数のレジスタ値から選択された前記スパンコードを指定する、装置。 - マスクアライメント命令が、マスク内の1つまたは複数のイネーブルビットに従って、前記VRFから選択される1つまたは複数のレジスタ内に記憶されたデータのアライメントを識別するために、前記1つまたは複数のレジスタ値から選択されるマスクを指定する、請求項16に記載の装置。
- 前記第1のプロセッサ上の演算に影響を及ぼすことなく前記レジスタ値の前記アクセスが発生可能なように、前記第1のプロセッサ内の前記スカラーレジスタファイルからアクセスされる前記1つまたは複数のレジスタ値が、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項16に記載の装置。
- コンピュータ読取り可能なプログラムデータおよびコードによって符号化されたコンピュータ可読記憶媒体であって、前記プログラムデータおよびコードは実行時に、
第1のプロセッサで作成された開始場所に対して、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスすることであって、前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサである、こと、
第2のプロセッサ上でベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRF内の標的レジスタに1組のアライメントされたデータ値として記憶されるようにアライメントすること、および
前記VRFの標的レジスタに前記アライメントされた1組のデータ値を記憶すること
を行うように動作可能である、コンピュータ可読記憶媒体。 - ベクトルアライメント命令を実行するための装置であって、
第1のプロセッサ内のスカラーレジスタファイルからアクセスされる1つまたは複数のレジスタ値を第2のプロセッサと共有するための手段であって、前記1つまたは複数のレジスタ値はベクトルアライメント命令において指定されたRtアドレスに従ってアクセスされ、前記共有されたレジスタ値のうちの1つから開始場所が決定され、前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサであり、前記1つまたは複数のレジスタ値は、前記GPプロセッサにより作成される、共有するための手段と、
前記ベクトルアライメント命令に従って、ベクトルレジスタファイル(VRF)の開始Vuレジスタ内の前記開始場所と前記VRFの最終Vuレジスタの終了場所との間で識別された前記第2のプロセッサ内のデータをアライメントするための手段と、
アライメント回路から前記アライメントされたデータを選択するとともに前記ベクトルアライメント命令によって指定されたアライメント記憶アドレスに従って前記アライメントされたデータを前記ベクトルレジスタファイル内に記憶するための手段と、
を備える装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/777,297 US9632781B2 (en) | 2013-02-26 | 2013-02-26 | Vector register addressing and functions based on a scalar register data value |
US13/777,297 | 2013-02-26 | ||
PCT/US2014/017713 WO2014133895A2 (en) | 2013-02-26 | 2014-02-21 | Vector register addressing and functions based on a scalar register data value |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016511470A JP2016511470A (ja) | 2016-04-14 |
JP2016511470A5 JP2016511470A5 (ja) | 2017-06-29 |
JP6293795B2 true JP6293795B2 (ja) | 2018-03-14 |
Family
ID=50272743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015558998A Expired - Fee Related JP6293795B2 (ja) | 2013-02-26 | 2014-02-21 | スカラーレジスタデータ値に基づいたベクトルレジスタアドレス指定および関数 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9632781B2 (ja) |
EP (1) | EP2962187B1 (ja) |
JP (1) | JP6293795B2 (ja) |
KR (1) | KR101753900B1 (ja) |
CN (1) | CN104981771B (ja) |
WO (1) | WO2014133895A2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10001995B2 (en) | 2015-06-02 | 2018-06-19 | Intel Corporation | Packed data alignment plus compute instructions, processors, methods, and systems |
US20170177355A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instruction and Logic for Permute Sequence |
US11243958B2 (en) | 2015-12-31 | 2022-02-08 | Teradata Us, Inc. | Implementing contract-based polymorphic and parallelizable SQL user-defined scalar and aggregate functions |
US10762164B2 (en) | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
CN111580865B (zh) * | 2016-01-20 | 2024-02-27 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
US10296337B2 (en) * | 2016-03-21 | 2019-05-21 | International Business Machines Corporation | Preventing premature reads from a general purpose register |
GB2548600B (en) * | 2016-03-23 | 2018-05-09 | Advanced Risc Mach Ltd | Vector predication instruction |
CN111651205B (zh) * | 2016-04-26 | 2023-11-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量内积运算的装置和方法 |
US20180217838A1 (en) * | 2017-02-01 | 2018-08-02 | Futurewei Technologies, Inc. | Ultra lean vector processor |
KR102343652B1 (ko) * | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
CN114008604A (zh) * | 2020-07-28 | 2022-02-01 | 深圳市汇顶科技股份有限公司 | 具有专用寄存器的risc处理器 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5922066A (en) | 1997-02-24 | 1999-07-13 | Samsung Electronics Co., Ltd. | Multifunction data aligner in wide data width processor |
US7197625B1 (en) | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
GB2372848B (en) | 2001-02-20 | 2004-10-27 | Advanced Risc Mach Ltd | Data processing using a coprocessor |
GB2382673B (en) | 2001-10-31 | 2005-10-26 | Alphamosaic Ltd | A vector processing system |
US7376812B1 (en) | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
JP2005535966A (ja) * | 2002-08-09 | 2005-11-24 | インテル・コーポレーション | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
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 |
US7574409B2 (en) | 2004-11-04 | 2009-08-11 | Vericept Corporation | Method, apparatus, and system for clustering and classification |
US7620797B2 (en) | 2006-11-01 | 2009-11-17 | Apple Inc. | Instructions for efficiently accessing unaligned vectors |
GB2444744B (en) | 2006-12-12 | 2011-05-25 | Advanced Risc Mach Ltd | Apparatus and method for performing re-arrangement operations on data |
US8255446B2 (en) * | 2006-12-12 | 2012-08-28 | Arm Limited | Apparatus and method for performing rearrangement and arithmetic operations on data |
US7783860B2 (en) | 2007-07-31 | 2010-08-24 | International Business Machines Corporation | Load misaligned vector with permute and mask insert |
US20090172348A1 (en) * | 2007-12-26 | 2009-07-02 | Robert Cavin | Methods, apparatus, and instructions for processing vector data |
US10387151B2 (en) | 2007-12-31 | 2019-08-20 | Intel Corporation | Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks |
US7865693B2 (en) | 2008-10-14 | 2011-01-04 | International Business Machines Corporation | Aligning precision converted vector data using mask indicating offset relative to element boundary corresponding to precision type |
US8607033B2 (en) | 2010-09-03 | 2013-12-10 | Lsi Corporation | Sequentially packing mask selected bits from plural words in circularly coupled register pair for transferring filled register bits to memory |
US8904153B2 (en) | 2010-09-07 | 2014-12-02 | International Business Machines Corporation | Vector loads with multiple vector elements from a same cache line in a scattered load operation |
US20120254589A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | System, apparatus, and method for aligning registers |
-
2013
- 2013-02-26 US US13/777,297 patent/US9632781B2/en active Active
-
2014
- 2014-02-21 EP EP14709827.1A patent/EP2962187B1/en active Active
- 2014-02-21 CN CN201480008139.9A patent/CN104981771B/zh active Active
- 2014-02-21 KR KR1020157025988A patent/KR101753900B1/ko active IP Right Grant
- 2014-02-21 WO PCT/US2014/017713 patent/WO2014133895A2/en active Application Filing
- 2014-02-21 JP JP2015558998A patent/JP6293795B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2962187B1 (en) | 2018-03-28 |
US9632781B2 (en) | 2017-04-25 |
CN104981771A (zh) | 2015-10-14 |
KR101753900B1 (ko) | 2017-07-04 |
KR20150122195A (ko) | 2015-10-30 |
CN104981771B (zh) | 2018-05-04 |
WO2014133895A2 (en) | 2014-09-04 |
US20140244967A1 (en) | 2014-08-28 |
WO2014133895A3 (en) | 2014-10-23 |
JP2016511470A (ja) | 2016-04-14 |
EP2962187A2 (en) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6293795B2 (ja) | スカラーレジスタデータ値に基づいたベクトルレジスタアドレス指定および関数 | |
TWI574156B (zh) | 具有獨立的使用者和監管者域的記憶體保護鑰結構 | |
EP3588281B1 (en) | Apparatus and method for a tensor permutation engine | |
US20210141683A1 (en) | Hardware apparatuses and methods for memory corruption detection | |
CN107918546B (zh) | 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统 | |
CN107220029B (zh) | 掩码置换指令的装置和方法 | |
KR20170118051A (ko) | 벡터 캐시 라인 라이트 백 프로세서, 방법, 시스템, 및 명령어 | |
TW201732551A (zh) | 用於載入索引和預提取聚集操作之指令和邏輯 | |
KR20210084223A (ko) | 동적 키 유도에 기초한 다중 키 전체 메모리 암호화를 위한 방법 및 장치 | |
TW201727493A (zh) | 從持續記憶體預取資訊的指令及邏輯 | |
TW201732547A (zh) | 用於載入索引及預取散佈運算的邏輯和指令 | |
KR20110055629A (ko) | 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공 | |
JP6741006B2 (ja) | マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置 | |
EP3644179A2 (en) | Apparatus and method for tile gather and tile scatter | |
KR101934760B1 (ko) | 단일 명령어에 응답하여 회전 및 xor을 수행하기 위한 시스템들, 장치들, 및 방법들 | |
KR20170065587A (ko) | 모턴 좌표 조정 프로세서, 방법, 시스템 및 명령어 | |
KR20170099869A (ko) | 인덱스 및 즉치로 벡터 치환을 수행하기 위한 방법 및 장치 | |
KR20170065585A (ko) | 사차원 모턴 좌표 변환 프로세서, 방법, 시스템 및 명령어 | |
JP2018500652A (ja) | マスクをマスク値のベクトルに拡張するための方法および装置 | |
JP2018507453A (ja) | 命令フローを最適化するチェックを実行するための装置および方法 | |
US20150186136A1 (en) | Systems, apparatuses, and methods for expand and compress | |
JP2018500629A (ja) | 3d座標から3dのz曲線インデックスを計算するための機械レベル命令 | |
JP2017539010A (ja) | ベクトル飽和ダブルワード/クワッドワードの加算を実行するための命令およびロジック | |
CN107168682B (zh) | 用于确定值是否在范围内的指令的装置和方法 | |
KR20140113579A (ko) | 데이터 요소에 있는 비트들의 제로화를 위한 시스템, 장치, 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170127 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170515 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170515 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170626 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20170926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171019 |
|
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: 20180115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6293795 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |