JP2014513341A - メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 - Google Patents
メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 Download PDFInfo
- Publication number
- JP2014513341A JP2014513341A JP2014502545A JP2014502545A JP2014513341A JP 2014513341 A JP2014513341 A JP 2014513341A JP 2014502545 A JP2014502545 A JP 2014502545A JP 2014502545 A JP2014502545 A JP 2014502545A JP 2014513341 A JP2014513341 A JP 2014513341A
- Authority
- JP
- Japan
- Prior art keywords
- destination
- source
- instruction
- data element
- write mask
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 title claims description 178
- 230000006835 compression Effects 0.000 claims abstract description 12
- 238000007906 compression Methods 0.000 claims abstract description 12
- 230000006837 decompression Effects 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 description 113
- 238000012545 processing Methods 0.000 description 76
- VOXZDWNPVJITMN-ZBRFXRBCSA-N 17β-estradiol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@H](CC4)O)[C@@H]4[C@@H]3CCC2=C1 VOXZDWNPVJITMN-ZBRFXRBCSA-N 0.000 description 60
- 238000006073 displacement reaction Methods 0.000 description 40
- 238000006243 chemical reaction Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 238000007667 floating Methods 0.000 description 17
- 239000003607 modifier Substances 0.000 description 13
- 230000008859 change Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000003416 augmentation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002789 length control Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 230000017105 transposition 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/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/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
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)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
展開から始めると、展開の実行は、プロセッサに、ソース・オペランド(メモリまたはレジスタ・オペランド)からの相続くデータ要素を宛先オペランド(典型的にはレジスタ・オペランド)中の(疎な)データ要素位置に、書き込みマスク・オペランドによって決定されるアクティブ要素に基づいて書き込ませる。さらに、ソース・オペランドのデータ要素は、そのサイズおよびどのサイズのデータ要素が宛先レジスタ内にあるかに依存して上方変換されてもよい。たとえば、ソース・オペランドがメモリ・オペランドであり、そのデータ要素が16ビットのサイズであり、宛先レジスタのデータ要素が32ビットであれば、宛先に記憶されるべきメモリ・オペランドのデータ要素は32ビットになるよう上方変換される。上方変換およびそれらがどのように命令フォーマット中にエンコードされるかについての例はのちに詳述する。
この第一のビット位置における書き込みマスクが宛先レジスタにおける変化があるべきであることを示さないときは、書き込みマスクにおける次のビット位置が評価され、何の変更もされない。第一のビット位置における書き込みマスクが宛先の第一のデータ要素位置における変化があるべきであることを示すときは、第一のソース・データ要素(たとえば、メモリ位置またはソース・レジスタの最下位のデータ要素)が507において第一のデータ要素位置に記憶される。実装に依存して、505では、メモリ・データ要素は、宛先のデータ要素サイズに変換される。これは、501の評価の前に行われていてもよい。宛先レジスタ中に書き込まれてもよい、ソースからのその後の(連続する)データ要素が511で準備される。
圧縮命令の実行は、プロセッサに、ソース・オペランド(典型的にはレジスタ・オペランド)からのデータ要素を宛先オペランド(メモリまたはレジスタ・オペランド)中の相続く要素中に、書き込みマスク・オペランドによって決定されるアクティブな要素に基づいて、記憶(パック)させる。さらに、ソース・オペランドのデータ要素は、そのサイズおよびソースがメモリである場合にどのサイズのデータ要素があるかに依存して、下方変換されてもよい。たとえば、メモリ・オペランドのデータ要素が16ビットのサイズであり、ソース・レジスタのデータ要素が32ビットであれば、メモリに記憶されるべきレジスタのデータ要素は16ビットになるよう下方変換される。下方変換およびそれらがどのように命令フォーマット中にエンコードされるかについての例はのちに詳述する。圧縮の実行は、要素整列されたアドレスにおいて始まって論理的にマップされたバイト/語/倍長語のストリームを生成するものと見ることもできる。マスクによって無効にされる要素はストリームに加えられないので、ストリームの長さは書き込みマスクに依存する。圧縮は典型的には、疎なデータを待ち行列中に圧縮するために使われる。さらに、書き込みマスクを使わないとき(またはすべて1にセットされた書き込みマスクを使うとき)、この命令は、メモリ参照がキャッシュライン・スプリットを生じる高い確信がある、より高いパフォーマンスのベクトル・ストアについて使われてもよい。
この第一のビット位置における書き込みマスクが宛先レジスタにおける変化があるべきであることを示さないときは(第一のデータ要素はソース・レジスタの第一のデータ要素によって不変のままであるべき)、書き込みマスクにおける次のビット位置が評価され(もしそのようなビット位置があれば)、何の変更もされない。第一のビット位置における書き込みマスクが宛先の第一のデータ要素位置における変化があるべきであることを示すときは、1007において、ソース・データ要素が宛先の第一のデータ要素位置の中に記憶される。実装に依存して、1005では、ソース・データ要素は、宛先のデータ要素サイズに変換される。これは、1001の評価の前に行われていてもよい。書き込みされてもよいその後の(連続する)宛先位置が1009で準備される。
図11A〜Bは、本発明の諸実施形態に基づく、汎用ベクトル・フレンドリー命令フォーマットおよびその命令テンプレートを示すブロック図である。図11Aは、本発明の諸実施形態に基づく、汎用ベクトル・フレンドリー命令フォーマットおよびそのクラスA命令テンプレートを示すブロック図であり、一方、図11Bは、本発明の諸実施形態に基づく、汎用ベクトル・フレンドリー命令フォーマットおよびそのクラスB命令テンプレートを示すブロック図である。具体的には、汎用ベクトル・フレンドリー命令フォーマット1100について、クラスAおよびクラスB命令テンプレートが定義されており、その両方は、メモリ・アクセスなし1105命令テンプレートおよびメモリ・アクセス1120命令テンプレートを含む。ベクトル・フレンドリー命令フォーマットのコンテキストにおける汎用(generic)という用語は、いかなる特定の命令セットにも結び付けられていない命令フォーマットをいう。ベクトル・フレンドリー命令フォーマット中の命令が、レジスタ(メモリ・アクセスなし1105命令テンプレート)またはレジスタ/メモリ(メモリ・アクセス1120命令テンプレート)のいずれかをソースとするベクトルに対して作用する実施形態が記述されるが、本発明の代替的な実施形態はこれらの一つのみをサポートしてもよい。また、ベクトル命令フォーマット中にロードおよびストア命令がある本発明の実施形態が記述されるが、代替的な実施形態はその代わりにまたはそれに加えて、ベクトルをレジスタに入れたり出したりする(たとえばメモリからレジスタに、レジスタからメモリに、レジスタ間の移動)異なる命令フォーマット中の命令を有する。さらに、二つのクラスの命令テンプレートをサポートする本発明の実施形態が記述されるが、代替的な実施形態はこれらの一方のみまたは三つ以上をサポートしてもよい。
汎用ベクトル・フレンドリー命令フォーマット1100は、図11A〜11Bに示されている順で下記に挙げる以下のフィールドを含む。
クラス・フィールド1168――その内容は命令の異なるクラスの間の区別をする。図2A〜2Bを参照するに、このフィールドの内容は、クラスA命令とクラスB命令の間の選択をする。図11A〜11Bでは、特定の値がフィールドに存在していることを示すために角丸の四角が使われている(たとえば、それぞれ図11A〜11Bにあるクラス・フィールド1168についてのクラスA 1168AおよびクラスB 1168B)。
クラスAの非メモリ・アクセス1105命令テンプレートの場合、アルファ・フィールド1152はRSフィールド1152Aとして解釈され、その内容は種々の増強処理型のどの一つが実行されるべきかを区別する(たとえば、メモリ・アクセスなしの丸め型処理1110およびメモリ・アクセスなしのデータ変換型処理1115命令テンプレートについて、丸め1152A.1およびデータ変換1152A.2がそれぞれ指定されている)。一方、ベータ・フィールド1154は、指定された型の処理のどれが実行されるべきかを区別する。図11では、特定の値が存在していることを示すために角丸のブロックが使われている(たとえば、修正子フィールド1146内のメモリ・アクセスなし1146A;アルファ・フィールド1152/rsフィールド1152Aについての丸め1152A.1およびデータ変換1152A.2)。メモリ・アクセスなし1105命令テンプレートでは、スケール・フィールド1160、変位フィールド1162Aおよび変位スケール・フィールド1162Bは存在しない。
メモリ・アクセスなしのフル丸め制御型処理1110命令テンプレートでは、ベータ・フィールド1154は丸め制御フィールド1154Aとして解釈され、その内容は、静的な丸めを指定する。本発明の記載される実施形態では、丸め制御フィールド1154Aは、全浮動小数点例外抑制(SAE: suppress all floating point exceptions)フィールド1156および丸め処理制御フィールド1158を含むが、代替的な実施形態は、これらの概念両方を同じフィールドにエンコードすること、あるいはこれらの概念/フィールドの一方または他方のみを有することをサポートしてもよい(たとえば丸め処理制御フィールド1158のみを有していてもよい)。
メモリ・アクセスなしデータ変換型処理1115命令テンプレートでは、ベータ・フィールド1154はデータ変換フィールド1154Bとして解釈され、その内容はいくつかのデータ変換のうちどの一つが実行されるべきかを区別する(たとえばデータ変換なし、スウィズル、ブロードキャスト)。
クラスAのメモリ・アクセス1120命令テンプレートの場合、アルファ・フィールド1152は放逐ヒント(eviction hint)フィールド1152Bとして解釈され、その内容は放逐ヒントのどの一つが使用されるべきかを区別する(図11Aでは、メモリ・アクセスの時間的1125命令テンプレートおよびメモリ・アクセスの非時間的1130命令テンプレートについて、時間的1152B.1および非時間的1152B.2がそれぞれ指定されている)。一方、ベータ・フィールド1154は、データ操作フィールド1154Cとして解釈され、その内容はいくつかのデータ操作処理(プリミティブとしても知られる)のどの一つが実行されるべきかを区別する(たとえば、操作なし;ブロードキャスト;ソースの上方変換;および宛先の下方変換)。メモリ・アクセス1120命令テンプレートはスケール・フィールド1160を含み、任意的に、変位フィールド1162Aまたは変位スケール・フィールド1162Bを含む。
時間的(temporal)データは、キャッシュすることから裨益するのに十分早く再使用される可能性が高いデータである。しかしながら、これはヒントであり、異なるプロセッサは、該ヒントを完全に無視することを含め、これを異なる仕方で実装してもよい。
非時間的(non-temporal)データは、第一レベルのキャッシュにキャッシュすることから裨益するのに十分早く再使用される可能性が高くないデータであり、放逐のために優先されるべきである。しかしながら、これはヒントであり、異なるプロセッサは、該ヒントを完全に無視することを含め、これを異なる仕方で実装してもよい。
クラスBの命令テンプレートの場合、アルファ・フィールド1152は書き込みマスク制御(Z)フィールド1152Cとして解釈され、その内容は、書き込みマスク・フィールド1170によって制御される書き込みマスクが併合または零化のどちらであるべきかを区別する。
クラスBの非メモリ・アクセス1105命令テンプレートの場合、ベータ・フィールド1154の一部がRLフィールド1175Aとして解釈され、その内容は種々の増強処理型のどの一つが実行されるべきかを区別する(たとえば、丸め1157A.1とベクトル長(VSIZE)1157A.2はそれぞれ、メモリ・アクセスなしの書き込みマスク制御の部分丸め制御型処理1112命令テンプレートと、メモリ・アクセスなしの書き込みマスク制御のVSIZE型処理1117命令テンプレートとについて指定される)。一方、ベータ・フィールド1154の残りは、指定された型の処理のどれが実行されるべきかを区別する。図11では、特定の値が存在することを示すために、角丸のブロックが使われている(たとえば、修正子フィールド1146内のメモリ・アクセスなし1146A;RLフィールド1157Aについての丸め1157A.1およびVSIZE 1157A.2)。メモリ・アクセスなし1105命令テンプレートでは、スケール・フィールド1160、変位フィールド1162Aおよび変位スケール・フィールド1162Bは存在しない。
メモリ・アクセスなし命令テンプレート――書き込みマスク制御、部分丸め制御型処理
メモリ・アクセスなしの書き込みマスク制御の部分丸め制御型処理1110命令テンプレートでは、ベータ・フィールド1154の残りは丸め処理フィールド1159Aとして解釈され、例外イベント報告が無効化される(所与の命令がいかなる種類の浮動小数点例外フラグも報告せず、いかなる浮動小数点例外ハンドラも立ち上げない)。
メモリ・アクセスなし書き込みマスク制御VSIZE型処理1117命令テンプレートでは、ベータ・フィールド1154の残りはベクトル長フィールド1159Bとして解釈され、その内容はいくつかのデータ・ベクトル長のうちどの一つが実行対象とされるべきかを区別する(たとえば128、1156または1312バイト)。
クラスAのメモリ・アクセス1120命令テンプレートの場合、ベータ・フィールド1154の一部はブロードキャスト・フィールド1157Bとして解釈され、その内容はブロードキャスト型データ操作処理が実行されるべきか否かを区別する。一方、ベータ・フィールド1154の残りは、ベクトル長フィールド1159Bと解釈される。メモリ・アクセス1120命令テンプレートはスケール・フィールド1160を含み、任意的に、変位フィールド1162Aまたは変位スケール・フィールド1162Bを含む。
汎用ベクトル・フレンドリー命令フォーマット1100に関し、フォーマット・フィールド1140、基本処理フィールド1142およびデータ要素幅フィールド1164を含むフル・オペコード・フィールド1174が示されている。フル・オペコード・フィールド1174がこれらのフィールドのすべてを含む一つの実施形態が示されているが、フル・オペコード・フィールド1174は、そのすべてをサポートするのでない実施形態では、これらのフィールドの全部より少ないものを含む。
図12のA〜Cは、本発明の諸実施形態に基づく、例示的な個別的なベクトル・フレンドリー命令フォーマットを示している。図12のA〜Cは、諸フィールドの位置、サイズ、解釈および順序およびそれらのフィールドのいくつかについては値を特定しているという意味で個別的である、個別的なベクトル・フレンドリー命令フォーマット1200を示している。この個別的なベクトル・フレンドリー命令フォーマット1200は、x86命令セットを拡張するために使われてもよく、よってフィールドのいくつかは既存のx86命令セットおよびその拡張において使われているものと同様または同じである(たとえばAVX)。このフォーマットは、拡張を含む既存のx86命令セットのプレフィックス・エンコード・フィールド、リアル・オペコード・バイト・フィールド、MOD R/Mフィールド、SIBフィールド、変位フィールドおよび直定数フィールドと整合するままである。図12のA〜Cからのフィールドが対応する図11のフィールドが示されている。
汎用ベクトル・フレンドリー命令フォーマット1100は、図12A〜Cに示される順で下記に挙げる以下のフィールドを含む。
EVEXプレフィックス1202――これは四バイトの形でエンコードされる。
これはオペコード・バイトとしても知られる。オペコードの一部はこのフィールドにおいて指定される。
修正子フィールド1146(MODR/M.MOD、ビット[7-6]――MODフィールド1242)――先述したように、MODフィールド1242の内容は、メモリ・アクセスと非メモリ・アクセス処理の間の区別をする。このフィールドについては本稿でさらに後述する。
スケール・フィールド1160(SIB.SS、ビット[7-6])――先述したように、スケール・フィールド1160の内容はメモリ・アドレス生成のために使われる。このフィールドについては本稿でさらに後述する。
変位フィールド1162A(バイト7-10)――MODフィールド1242が10を含むとき、バイト7-10は
変位フィールド1162Aであり、レガシーの32ビット変位(disp32)と同じはたらきをし、バイト粒度ではたらく。
直定数フィールド1172は先述したように機能する。
図13は、本発明のある実施形態に基づくレジスタ・アーキテクチャ1300のブロック図である。レジスタ・アーキテクチャのレジスタ・ファイルおよびレジスタを下記に挙げる。
図14A〜Bは、例示的な順序内プロセッサ・アーキテクチャのブロック図を示している。これらの例示的な実施形態は、幅広のベクトル・プロセッサ(VPU)をもって増強される順序内CPUコアの複数のインスタンス化のまわりに設計される。コアは広帯域幅の相互接続網を通じて、e16tアプリケーションに依存して、何らかの固定機能論理、メモリI/Oインターフェースおよび他の必要なI/O論理と通信する。たとえば、この実施形態のスタンドアローンGPUとしての実装は典型的にはPCIeバスを含む。
図15は、本発明の諸実施形態に基づく、例示的な順序外アーキテクチャを示すブロック図である。具体的には、図15は、よく知られた例示的な順序外アーキテクチャを、ベクトル・フレンドリー命令フォーマットおよびその実行を組み込むよう修正したものである。図15では、矢印は二つ以上のユニットの間の結合を表し、矢印の向きはそれらのユニット間でのデータの流れの向きを示す。図15は、実行エンジン・ユニット1510およびメモリ・ユニット1515に結合されたフロント・エンド・ユニット1505を含む。実行エンジン・ユニット1510はさらにメモリ・ユニット1515に結合されている。
図20は、本発明の諸実施形態に基づく統合されたメモリ・コントローラおよびグラフィクスをもつ単一コア・プロセッサおよび複数コア・プロセッサ2000のブロック図である。図119における実線の四角は単一コア2002A、システム・エージェント2010、一つまたは複数のバス・コントローラ・ユニットの組2016をもつプロセッサ20000を示している。一方、破線の四角の任意的な付加は、複数のコア2002A〜N、システム・エージェント・ユニット2010内の一つまたは複数の統合されたメモリ・コントローラ・ユニット2014の組および統合されたグラフィック論理2008をもつ代替的なプロセッサ2000を示す。
図16〜図18は、プロセッサ2000を含むのに好適な例示的なシステムであり、図19はコア2002の一つまたは複数を含みうる例示的なシステム・オン・チップ(SoC: system on a chip)である。ラップトップ、デスクトップ、ハンドヘルドPC、携帯情報端末(personal digital assistant)、エンジニアリング・ワークステーション、サーバー、ネットワーク・デバイス、ネットワーク・ハブ、スイッチ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、グラフィクス・デバイス、ビデオ・ゲーム装置、セットトップボックス、マイクロコントローラ、携帯電話、携帯メディアプレーヤー、ハンドヘルド・ゲーム装置および他のさまざまな電子装置のための、当技術分野で知られている他のシステム設計および構成も好適である。一般に、本稿に開示されるプロセッサおよび/または他の実行論理を組み込むことのできる実に多様なシステムまたは電子装置が一般に好適である。
ベクトル・フレンドリー命令フォーマットをネイティブに実行する実施形態を記述してきたが、本発明の代替的な実施形態はベクトル・フレンドリー命令フォーマットを、異なる命令セットを実行するプロセッサ(たとえば、米国カリフォルニア州サニーヴェールのMIPSテクノロジーズのMIPS命令セットを実行するプロセッサ、米国カリフォルニア州サニーヴェールのARMホールディングズのARM命令セットを実行するプロセッサ)上で走るエミュレーション層を通じて実行してもよい。また、図面における流れ図は、本発明の諸実施形態によって実行される処理の特定の順序を示しているが、そのような順序が例示的であることは理解しておくべきである(たとえば、代替的な実施形態はそれらの処理を異なる順序で実行したり、ある種の処理を組み合わせたり、ある種の処理をオーバーラップさせたりしてもよい)。
Claims (19)
- コンピュータ・プロセッサにおいて圧縮命令を実行する方法であって:
圧縮命令をフェッチする段階であって、前記圧縮命令は宛先オペランド、ソース・オペランドおよび書き込みマスク・オペランドを含む、段階と;
フェッチされた圧縮命令をデコードする段階と;
デコードされた圧縮命令を実行して、前記書き込みマスクの値に基づいてソースからのどのデータ要素が宛先において記憶されるべきかを選択する段階と;
ソースの選択された要素を、シーケンシャルにパックされたデータ要素として宛先中に記憶する段階とを含む、
方法。 - 前記宛先オペランドがメモリであり、前記ソース・オペランドがレジスタである、請求項1記載の方法。
- 前記ソースおよび宛先オペランドがレジスタである、請求項1記載の方法。
- 前記実行がさらに:
前記書き込みマスクの第一ビット位置値が、対応する第一ソース・データ要素が宛先のある位置中に記憶されるべきであることを示していることを判別する段階と;
前記対応する第一ソース・データ要素を宛先の前記位置中に記憶する段階とを含む、
請求項1記載の方法。 - 前記実行がさらに:
前記書き込みマスクの第一ビット位置値が、対応する第一ソース・データ要素が宛先のある位置中に記憶されるべきでないことを示していることを判別する段階と;
前記第一ソース・データ要素を宛先のある位置中に記憶することなく、前記書き込みマスクの第二ビット位置値を評価する段階とを含む、
請求項1記載の方法。 - 宛先中に記憶されるべき各ソース・データ要素がまずストリーム中に入れられ、そのストリームが前記宛先中に記憶される、請求項1記載の方法。
- 宛先中に記憶されるべきデータ要素を、宛先中に記憶するのに先立って下方変換する段階をさらに含む、
請求項1記載の方法。 - コンピュータ・プロセッサにおいて展開命令を実行する方法であって:
展開命令をフェッチする段階であって、前記展開命令は宛先オペランド、ソース・オペランドおよび書き込みマスク・オペランドを含む、段階と;
前記展開圧縮命令をデコードする段階と;
前記展開圧縮命令を実行して、前記書き込みマスクの値に基づいてソースからのどの要素が宛先において疎に記憶されるべきかを選択する段階と;
ソースの各選択されたデータ要素を、疎なデータ要素としてある宛先位置中に記憶する段階であって、前記宛先位置は、ソースの対応するデータ要素が記憶されるべきであることを示す各書き込みマスク・ビット位置に対応する、段階とを含む
方法。 - 前記宛先オペランドがレジスタであり、前記ソース・オペランドがメモリである、請求項9記載の方法。
- 前記ソースおよび宛先オペランドがレジスタである、請求項9記載の方法。
- 前記実行がさらに:
前記書き込みマスクの第一ビット位置値が、対応する第一ソース・データ要素が宛先の対応する位置中に記憶されるべきであることを示していることを判別する段階と;
前記対応する第一ソース・データ要素を宛先の前記対応する位置中に記憶する段階とを含む、
請求項9記載の方法。 - 前記実行がさらに:
前記書き込みマスクの第一ビット位置値が、対応する第一ソース・データ要素が宛先の対応する位置中に記憶されるべきでないことを示していることを判別する段階と;
前記第一ソース・データ要素を宛先の対応する位置中に記憶することなく、前記書き込みマスクの第二ビット位置値を評価する段階とを含む、
請求項9記載の方法。 - 宛先中に記憶されるべき各ソース・データ要素がまずストリーム中に入れられ、そのストリームが前記宛先中に記憶される、請求項1記載の方法。
- 宛先中に記憶されるべきデータ要素を、宛先中に記憶するのに先立って上方変換する段階をさらに含む、
請求項1記載の方法。 - 前記データ要素が16ビット値から32ビット値に上方変換される、請求項7記載の方法。
- 展開命令および/または圧縮命令をデコードするハードウェア・デコーダであって、前記展開命令は第一の書き込みマスク・オペランド、第一の宛先オペランド、第一のソース・オペランドを含み、前記圧縮命令は第二の書き込みマスク・オペランド、第二の宛先オペランド、第二のソース・オペランドを含む、ハードウェア・デコーダと;
実行論理とを有する装置であって、
前記実行論理は、
デコードされた展開命令を実行して、前記書き込みマスクの値に基づいてソースからのどのデータ要素が宛先において疎に記憶されるべきかを選択し、ソースの各選択されたデータ要素を、疎なデータ要素としてある宛先位置中に記憶し、前記宛先位置は、ソースの対応するデータ要素が記憶されるべきであることを示す各書き込みマスク・ビット位置に対応し、
前記実行論理は、
デコードされた圧縮命令を実行して、前記書き込みマスクの値に基づいてソースからのどのデータ要素が宛先において記憶されるべきかを選択し、ソースの選択されたデータ要素を、シーケンシャルにパックされたデータ要素として宛先中に記憶する、
装置。 - 請求項17記載の装置であって、さらに:
前記第一または第二の書き込みマスクを記憶する16ビット書き込みマスク・レジスタと;
選択されたデータ要素を記憶する第一の512ビット・レジスタとを有する、
装置。 - 請求項18記載の装置であって、さらに:
前記展開および圧縮命令のためのソースとしてはたらく第二の512ビット・レジスタを有する、
装置。 - 前記データ要素が、展開命令の実行中に16ビット値から32ビット値に上方変換される、請求項17記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/078,896 | 2011-04-01 | ||
US13/078,896 US20120254592A1 (en) | 2011-04-01 | 2011-04-01 | Systems, apparatuses, and methods for expanding a memory source into a destination register and compressing a source register into a destination memory location |
PCT/US2011/064254 WO2012134558A1 (en) | 2011-04-01 | 2011-12-09 | Systems, apparatuses, and methods for expanding a memory source into a destination register and compressing a source register into a destination memory location |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015233642A Division JP6109910B2 (ja) | 2011-04-01 | 2015-11-30 | メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014513341A true JP2014513341A (ja) | 2014-05-29 |
Family
ID=46928902
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014502545A Pending JP2014513341A (ja) | 2011-04-01 | 2011-12-09 | メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 |
JP2015233642A Expired - Fee Related JP6109910B2 (ja) | 2011-04-01 | 2015-11-30 | メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015233642A Expired - Fee Related JP6109910B2 (ja) | 2011-04-01 | 2015-11-30 | メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20120254592A1 (ja) |
JP (2) | JP2014513341A (ja) |
KR (2) | KR101851487B1 (ja) |
CN (1) | CN103562855B (ja) |
DE (1) | DE112011105818T5 (ja) |
GB (1) | GB2503827B (ja) |
TW (2) | TWI470542B (ja) |
WO (1) | WO2012134558A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015158940A (ja) * | 2011-04-01 | 2015-09-03 | インテル コーポレイション | ベクトルフレンドリ命令フォーマット及びその実行 |
US10157061B2 (en) | 2011-12-22 | 2018-12-18 | Intel Corporation | Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks |
US11360771B2 (en) * | 2017-06-30 | 2022-06-14 | Intel Corporation | Method and apparatus for data-ready memory operations |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
EP2122461A4 (en) | 2006-11-14 | 2010-03-24 | Soft Machines Inc | DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES |
EP2616928B1 (en) | 2010-09-17 | 2016-11-02 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
US9274793B2 (en) | 2011-03-25 | 2016-03-01 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
TWI548994B (zh) | 2011-05-20 | 2016-09-11 | 軟體機器公司 | 以複數個引擎支援指令序列的執行之互連結構 |
EP2783281B1 (en) | 2011-11-22 | 2020-05-13 | Intel Corporation | A microprocessor accelerated code optimizer |
KR101842550B1 (ko) | 2011-11-22 | 2018-03-28 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
US9606961B2 (en) * | 2012-10-30 | 2017-03-28 | Intel Corporation | Instruction and logic to provide vector compress and rotate functionality |
US9189236B2 (en) * | 2012-12-21 | 2015-11-17 | Intel Corporation | Speculative non-faulting loads and gathers |
US9501276B2 (en) | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9632825B2 (en) | 2013-03-15 | 2017-04-25 | Intel Corporation | Method and apparatus for efficient scheduling for asymmetrical execution units |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
EP2972845B1 (en) | 2013-03-15 | 2021-07-07 | Intel Corporation | A method for executing multithreaded instructions grouped onto blocks |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9477467B2 (en) * | 2013-03-30 | 2016-10-25 | Intel Corporation | Processors, methods, and systems to implement partial register accesses with masked full register accesses |
US9424034B2 (en) * | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
US9395990B2 (en) | 2013-06-28 | 2016-07-19 | Intel Corporation | Mode dependent partial width load to wider register processors, methods, and systems |
US9323524B2 (en) * | 2013-09-16 | 2016-04-26 | Oracle International Corporation | Shift instruction with per-element shift counts and full-width sources |
KR102152735B1 (ko) * | 2013-09-27 | 2020-09-21 | 삼성전자주식회사 | 그래픽 처리 장치 및 이의 동작 방법 |
US20150186136A1 (en) * | 2013-12-27 | 2015-07-02 | Tal Uliel | Systems, apparatuses, and methods for expand and compress |
US9720667B2 (en) * | 2014-03-21 | 2017-08-01 | Intel Corporation | Automatic loop vectorization using hardware transactional memory |
US10223113B2 (en) | 2014-03-27 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to store consecutive source elements to unmasked result elements with propagation to masked result elements |
KR101818985B1 (ko) | 2014-03-28 | 2018-02-28 | 인텔 코포레이션 | 마스킹된 결과 요소들로의 전파를 이용하여 소스 요소들을 대응하는 마스킹되지 않은 결과 요소들에 저장하기 위한 프로세서, 방법, 시스템 및 명령어 |
US10133570B2 (en) | 2014-09-19 | 2018-11-20 | Intel Corporation | Processors, methods, systems, and instructions to select and consolidate active data elements in a register under mask into a least significant portion of result, and to indicate a number of data elements consolidated |
US9811464B2 (en) * | 2014-12-11 | 2017-11-07 | Intel Corporation | Apparatus and method for considering spatial locality in loading data elements for execution |
US20160179521A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Method and apparatus for expanding a mask to a vector of mask values |
US20160179520A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Method and apparatus for variably expanding between mask and vector registers |
US10503502B2 (en) | 2015-09-25 | 2019-12-10 | Intel Corporation | Data element rearrangement, processors, methods, systems, and instructions |
US20170109093A1 (en) * | 2015-10-14 | 2017-04-20 | International Business Machines Corporation | Method and apparatus for writing a portion of a register in a microprocessor |
US20170177348A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instruction and Logic for Compression and Rotation |
US10007519B2 (en) * | 2015-12-22 | 2018-06-26 | Intel IP Corporation | Instructions and logic for vector bit field compression and expansion |
US10891131B2 (en) | 2016-09-22 | 2021-01-12 | Intel Corporation | Processors, methods, systems, and instructions to consolidate data elements and generate index updates |
JP6767660B2 (ja) | 2017-01-27 | 2020-10-14 | 富士通株式会社 | プロセッサ、情報処理装置及びプロセッサの動作方法 |
EP4137941A1 (en) | 2017-03-20 | 2023-02-22 | Intel Corporation | Systems, methods, and apparatuses for matrix add, subtract, and multiply |
CN110383243B (zh) * | 2017-04-06 | 2024-05-10 | 英特尔公司 | 具有两个存储器位置的向量压缩2指令和扩展2指令 |
WO2019009870A1 (en) | 2017-07-01 | 2019-01-10 | Intel Corporation | SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE |
US10346163B2 (en) | 2017-11-01 | 2019-07-09 | Apple Inc. | Matrix computation engine |
US10642620B2 (en) | 2018-04-05 | 2020-05-05 | Apple Inc. | Computation engine with strided dot product |
US10970078B2 (en) * | 2018-04-05 | 2021-04-06 | Apple Inc. | Computation engine with upsize/interleave and downsize/deinterleave options |
US10754649B2 (en) | 2018-07-24 | 2020-08-25 | Apple Inc. | Computation engine that operates in matrix and vector modes |
US10831488B1 (en) * | 2018-08-20 | 2020-11-10 | Apple Inc. | Computation engine with extract instructions to minimize memory access |
US10838734B2 (en) * | 2018-09-24 | 2020-11-17 | Intel Corporation | Apparatus and method for processing structure of arrays (SoA) and array of structures (AoS) data |
US10719323B2 (en) | 2018-09-27 | 2020-07-21 | Intel Corporation | Systems and methods for performing matrix compress and decompress instructions |
US11403256B2 (en) * | 2019-05-20 | 2022-08-02 | Micron Technology, Inc. | Conditional operations in a vector processor having true and false vector index registers |
CN111124495B (zh) * | 2019-12-16 | 2021-02-12 | 海光信息技术股份有限公司 | 一种数据处理方法、解码电路及处理器 |
US20220308873A1 (en) * | 2021-03-27 | 2022-09-29 | Intel Corporation | Apparatuses, methods, and systems for instructions for downconverting a tile row and interleaving with a register |
US20230409326A1 (en) * | 2022-06-15 | 2023-12-21 | Intel Corporation | Device, method and system for executing a tile load and expand instruction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03196257A (ja) * | 1989-12-25 | 1991-08-27 | Hitachi Ltd | ベクトル処理装置 |
JP2009026106A (ja) * | 2007-07-20 | 2009-02-05 | Oki Electric Ind Co Ltd | 命令コード圧縮方法と命令フェッチ回路 |
US20100088536A1 (en) * | 2008-10-07 | 2010-04-08 | Lee Sang-Suk | Processor and method of decompressing instruction bundle |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57209570A (en) * | 1981-06-19 | 1982-12-22 | Fujitsu Ltd | Vector processing device |
JPH0634203B2 (ja) * | 1983-04-11 | 1994-05-02 | 富士通株式会社 | ベクトル処理装置 |
US4873630A (en) * | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
JPS62226275A (ja) * | 1986-03-28 | 1987-10-05 | Hitachi Ltd | ベクトル処理装置 |
JPH0731669B2 (ja) * | 1986-04-04 | 1995-04-10 | 株式会社日立製作所 | ベクトル・プロセツサ |
JP2665111B2 (ja) * | 1992-06-18 | 1997-10-22 | 日本電気株式会社 | ベクトル処理装置 |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US20020002666A1 (en) * | 1998-10-12 | 2002-01-03 | Carole Dulong | Conditional operand selection using mask operations |
US6807622B1 (en) * | 2000-08-09 | 2004-10-19 | Advanced Micro Devices, Inc. | Processor which overrides default operand size for implicit stack pointer references and near branches |
US7395412B2 (en) * | 2002-03-08 | 2008-07-01 | Ip-First, Llc | Apparatus and method for extending data modes in a microprocessor |
US7212676B2 (en) * | 2002-12-30 | 2007-05-01 | Intel Corporation | Match MSB digital image compression |
US7243205B2 (en) * | 2003-11-13 | 2007-07-10 | Intel Corporation | Buffered memory module with implicit to explicit memory command expansion |
US20070186210A1 (en) * | 2006-02-06 | 2007-08-09 | Via Technologies, Inc. | Instruction set encoding in a dual-mode computer processing environment |
US8667250B2 (en) * | 2007-12-26 | 2014-03-04 | Intel Corporation | Methods, apparatus, and instructions for converting vector data |
GB2456775B (en) * | 2008-01-22 | 2012-10-31 | Advanced Risc Mach Ltd | Apparatus and method for performing permutation operations on data |
GB2457303A (en) * | 2008-02-11 | 2009-08-12 | Linear Algebra Technologies | Randomly accessing elements of compressed matrix data by calculating offsets from non-zero values of a bitmap |
-
2011
- 2011-04-01 US US13/078,896 patent/US20120254592A1/en not_active Abandoned
- 2011-12-09 JP JP2014502545A patent/JP2014513341A/ja active Pending
- 2011-12-09 CN CN201180071236.9A patent/CN103562855B/zh not_active Expired - Fee Related
- 2011-12-09 WO PCT/US2011/064254 patent/WO2012134558A1/en active Application Filing
- 2011-12-09 KR KR1020167030147A patent/KR101851487B1/ko active IP Right Grant
- 2011-12-09 DE DE112011105818.7T patent/DE112011105818T5/de not_active Withdrawn
- 2011-12-09 GB GB1317058.4A patent/GB2503827B/en active Active
- 2011-12-09 KR KR1020137028982A patent/KR20130137698A/ko active IP Right Grant
- 2011-12-14 TW TW100146249A patent/TWI470542B/zh not_active IP Right Cessation
- 2011-12-14 TW TW103140475A patent/TWI550512B/zh not_active IP Right Cessation
-
2015
- 2015-11-30 JP JP2015233642A patent/JP6109910B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03196257A (ja) * | 1989-12-25 | 1991-08-27 | Hitachi Ltd | ベクトル処理装置 |
JP2009026106A (ja) * | 2007-07-20 | 2009-02-05 | Oki Electric Ind Co Ltd | 命令コード圧縮方法と命令フェッチ回路 |
US20100088536A1 (en) * | 2008-10-07 | 2010-04-08 | Lee Sang-Suk | Processor and method of decompressing instruction bundle |
Non-Patent Citations (1)
Title |
---|
JPN6014040669; Michael ABRASH: '"A First Look at the Larrabee New Instructions (LRBni)"' [online] , 20090401, pages:1-16, United Business Media * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015158940A (ja) * | 2011-04-01 | 2015-09-03 | インテル コーポレイション | ベクトルフレンドリ命令フォーマット及びその実行 |
US9513917B2 (en) | 2011-04-01 | 2016-12-06 | Intel Corporation | Vector friendly instruction format and execution thereof |
JP2017079078A (ja) * | 2011-04-01 | 2017-04-27 | インテル コーポレイション | ベクトルフレンドリ命令フォーマット及びその実行 |
US10795680B2 (en) | 2011-04-01 | 2020-10-06 | Intel Corporation | Vector friendly instruction format and execution thereof |
US11210096B2 (en) | 2011-04-01 | 2021-12-28 | Intel Corporation | Vector friendly instruction format and execution thereof |
US11740904B2 (en) | 2011-04-01 | 2023-08-29 | Intel Corporation | Vector friendly instruction format and execution thereof |
US10157061B2 (en) | 2011-12-22 | 2018-12-18 | Intel Corporation | Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks |
US11360771B2 (en) * | 2017-06-30 | 2022-06-14 | Intel Corporation | Method and apparatus for data-ready memory operations |
US11934830B2 (en) | 2017-06-30 | 2024-03-19 | Intel Corporation | Method and apparatus for data-ready memory operations |
Also Published As
Publication number | Publication date |
---|---|
TW201523441A (zh) | 2015-06-16 |
JP2016029598A (ja) | 2016-03-03 |
TWI470542B (zh) | 2015-01-21 |
CN103562855B (zh) | 2017-08-11 |
TWI550512B (zh) | 2016-09-21 |
GB201317058D0 (en) | 2013-11-06 |
GB2503827B (en) | 2020-05-27 |
US20120254592A1 (en) | 2012-10-04 |
KR20130137698A (ko) | 2013-12-17 |
JP6109910B2 (ja) | 2017-04-05 |
DE112011105818T5 (de) | 2014-10-23 |
WO2012134558A1 (en) | 2012-10-04 |
KR20160130320A (ko) | 2016-11-10 |
GB2503827A (en) | 2014-01-08 |
KR101851487B1 (ko) | 2018-04-23 |
TW201241744A (en) | 2012-10-16 |
CN103562855A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6109910B2 (ja) | メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 | |
JP6274672B2 (ja) | 装置および方法 | |
JP6408524B2 (ja) | 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法 | |
KR101817034B1 (ko) | 반복 종속 조건을 갖는 반복들의 벡터 루프들을 구현하기 위한 명령어 | |
JP5764257B2 (ja) | レジスタをアライメントするためのシステム、装置、および方法 | |
TWI517031B (zh) | 用於呈現各別複數之複數共軛根之向量指令 | |
TWI498815B (zh) | 用以響應於單一指令而執行橫向部分和之系統、裝置及方法 | |
TWI473015B (zh) | 執行向量頻率擴展指令之方法、處理器核心以及製品 | |
JP5947879B2 (ja) | マスクレジスタを用いてジャンプを行うシステム、装置、および方法 | |
TWI493449B (zh) | 用於使用遮罩以執行向量緊縮一元解碼的系統、裝置及方法 | |
CN108292228B (zh) | 用于基于通道的步进收集的系统、设备和方法 | |
CN110471699B (zh) | 用于指令处理的处理器核、方法和系统 | |
TWI498814B (zh) | 用以基於兩個來源寫入遮罩暫存器而產生相依向量之系統、裝置及方法 | |
JP2018500666A (ja) | ベクトルビットギャザーを実行するための方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140924 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20141218 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150121 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150224 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150728 |