JP5764257B2 - レジスタをアライメントするためのシステム、装置、および方法 - Google Patents
レジスタをアライメントするためのシステム、装置、および方法 Download PDFInfo
- Publication number
- JP5764257B2 JP5764257B2 JP2014502797A JP2014502797A JP5764257B2 JP 5764257 B2 JP5764257 B2 JP 5764257B2 JP 2014502797 A JP2014502797 A JP 2014502797A JP 2014502797 A JP2014502797 A JP 2014502797A JP 5764257 B2 JP5764257 B2 JP 5764257B2
- Authority
- JP
- Japan
- Prior art keywords
- data elements
- operand
- bit
- write mask
- instruction
- 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
- 238000000034 method Methods 0.000 title claims description 52
- 230000015654 memory Effects 0.000 claims description 147
- 230000008859 change Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 3
- 239000013598 vector Substances 0.000 description 110
- 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 56
- 238000006073 displacement reaction Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 29
- 238000006243 chemical reaction Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 21
- 230000003416 augmentation Effects 0.000 description 14
- 238000007667 floating Methods 0.000 description 14
- 230000000873 masking effect Effects 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000013519 translation Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 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
- 230000001629 suppression Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000013604 expression vector Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002789 length control Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001020 rhythmical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 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
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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/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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Description
ベクトルアライメント(VALIGN)命令の実施形態、および、それらの命令を実行するのに用いられ得るシステム、アーキテクチャ、命令形式などの実施形態を以下に詳述する。ベクトルアライメント命令は実行されるとプロセッサに対し、当該命令の第1ソースオペランドおよび第2ソースオペランドのデータ要素を連結させ、当該命令のオフセット値(即値)に基づき当該連結されたデータからのデータ要素を右にシフトさせ、シフトされ連結されたデータの要素のうち1以上を宛て先ベクトルレジスタに格納させる。いくつかの実施形態において、宛て先ベクトルレジスタに格納されるべき、シフトされ連結されたデータの要素は、書き込みマスクレジスタの対応するビットに基づき判断される。第1ソースおよび第2ソースは共にレジスタ、メモリ位置、またはこれらの組み合わせであり得る。いくつかの実施形態において、ソースがメモリ位置である場合、そのデータは、連結される前にレジスタにロードされる。
図8Aおよび図8Bは、本願発明の実施形態に係る、汎用のベクトルフレンドリーな命令形式、および、その命令テンプレートを示すブロック図である。図8Aは、本願発明の実施形態に係る、汎用のベクトルフレンドリーな命令形式、および、そのクラスAの命令テンプレートを示すブロック図である。図8Bは、本願発明の実施形態に係る、汎用のベクトルフレンドリーな命令形式、および、そのクラスB命令テンプレートを示すブロック図である。詳細には、汎用のベクトルフレンドリーな命令形式800には、それぞれが非メモリアクセス805命令テンプレートおよびメモリアクセス820命令テンプレートを含む、クラスAおよびクラスB命令テンプレートが定義されている。ベクトルフレンドリーな命令形式という表現において汎用という用語は、命令形式が何ら特定の命令セットに関連付けられていないことを意味する。ベクトルフレンドリーな命令形式の命令が、レジスタ(非メモリアクセス805命令テンプレート)およびレジスタ/メモリ(メモリアクセス820命令テンプレート)のうちいずれかをソースとするベクトルに対して動作する実施形態を説明するが、本願発明の代替的な実施形態においては、これらのうちいずれか一方だけをサポートしてもよい。また、ベクトル命令形式のロード命令および格納命令がある本願発明の実施形態を説明するが、代替的な実施形態においては、代わりに、或いは、加えて、レジスタへ、またはレジスタからベクトル(例えば、メモリからレジスタへ、レジスタからメモリへ、レジスタ間で、など)を移動させる異なる命令形式の命令が用いられる。さらに、2つのクラスの命令テンプレートをサポートする本願発明の実施形態を説明するが、代替的な実施形態においては、これらのうち一方のみ、または3つ以上がサポートされる。
汎用のベクトルフレンドリーな命令形式800は、図8Aおよび図8Bに示される順序で、以下に列挙するフィールドを含む。
クラスフィールド868−このコンテンツは複数の異なるクラスの命令を区別する。図2を参照すると、このフィールドのコンテンツは、クラスAの命令およびクラスBの命令のうちから選択する。図8Aおよび図8Bにおいて、角が丸められた正方形は、特定値がフィールド内に存在することを示すのに用いられている(例えば、図8AのクラスA868A、および図8BのクラスB868B)。
クラスAの非メモリアクセス805命令テンプレートの場合、アルファフィールド852は、含まれるコンテンツが複数の異なるオーグメンテーション動作タイプのうち何れが実行されるかを区別する(例えば、丸め852A.1およびデータ変換852A.2がそれぞれ、非メモリアクセス丸めタイプ演算810および非メモリアクセスデータ変換タイプ演算815命令テンプレートに関して特定される)RSフィールド852Aとして解釈され、ベータフィールド854は、特定されたタイプの動作のうち何れが実行されるかを区別する。図8Aおよび図8Bにおいて、角が丸められたブロックは、特定値が存在することを示すのに用いられている(例えば、修飾子フィールド846の非メモリアクセス846A、アルファフィールド852/RSフィールド852Aの丸め852A.1およびデータ変換852A.2)。非メモリアクセス805命令テンプレートにおいて、スケールフィールド860、変位フィールド862A、および変位スケールフィールド862Bは存在しない。
非メモリアクセス完全丸め制御タイプ演算810命令テンプレートにおいて、ベータフィールド854は、含まれるコンテンツが静的な丸めを提供する丸め制御フィールド854Aとして解釈される。本願発明の説明される実施形態においては、丸め制御フィールド854Aは全浮動小数点例外抑制(SAE)フィールド856、および、丸め演算制御フィールド858を含むが、代替的な実施形態においては、これらのコンセプトの両方を同じフィールドにエンコードする、または、これらのコンセプト/フィールドのうち一方、または他方のみを有する(例えば、丸め演算制御フィールド858のみを有する)。
非メモリアクセスデータ変換タイプ演算815命令テンプレートにおいて、ベータフィールド854は、複数のデータ変換(例えば、データ変換、スウィズル、ブロードキャスト)のうち何れが実行されるかを含まれるコンテンツが区別するデータ変換フィールド854Bとして解釈される。
クラスAのメモリアクセス820命令テンプレートの場合、アルファフィールド852は、含まれるコンテンツが削除ヒントのうちいずれが用いられるかを区別する(図8Aにおいて、一時的852B.1および非一時的852B.2がそれぞれ、メモリアクセス一時的825命令テンプレートおよびメモリアクセス非一時的830命令テンプレートに関して特定される)削除ヒントフィールド852Bとして解釈され、ベータフィールド854は、含まれるコンテンツが複数のデータ操作動作(プリミティブとしても知られる)のうちいずれが実行されるか(例えば、操作なし、ブロードキャスト、ソースのアップコンバート、および宛て先のダウンコンバート)を区別するデータ操作フィールド854Cとして解釈される。メモリアクセス820命令テンプレートは、スケールフィールド860を含み、場合によっては、変位フィールド862Aまたは変位スケールフィールド862Bを含む。
一時的データは、キャッシュするのが有利である程度に直ぐに再度用いられる可能性が高いデータである。しかし、これはヒントであり、複数の異なるプロセッサが、ヒントを全く無視するなど複数の異なるやり方で実行し得る。
非一時的データは、第1レベルキャッシュでキャッシュするのが有利ではない程度に直ぐには再度用いられる可能性が低く、削除に関して高い優先度を与えられるべきデータである。しかし、これはヒントであり、複数の異なるプロセッサが、ヒントを全く無視するなど複数の異なるやり方で実行し得る。
クラスB命令テンプレートの場合、アルファフィールド852は、書き込みマスクフィールド870により制御される書き込みマスキングがマージングであるかゼロ化であるかを含まれるコンテンツが区別する書き込みマスク制御(Z)フィールド852Cとして解釈される。
クラスBの非メモリアクセス805命令テンプレートの場合、ベータフィールド854の一部は、含まれるコンテンツが複数の異なるオーグメンテーション動作タイプのうちいずれが実行されるのかを区別する(例えば、丸め857A.1およびベクトル長さ(VSIZE)857A.2がそれぞれ、非メモリアクセス書き込みマスク制御部分的丸め制御タイプ演算812命令テンプレート、および非メモリアクセス書き込みマスク制御VSIZEタイプ演算817命令テンプレートに関して特定される)RLフィールド857Aとして解釈され、ベータフィールド854の残りは、特定されたタイプの動作のうちいずれが実行されるのかを区別する。図8Aおよび8Bにおいて、角が丸められたブロックは、特定値(例えば、修飾子フィールド846の非メモリアクセス846A、RLフィールド857Aの丸め857A.1およびVSIZE857A.2)が存在することを示すのに用いられている。非メモリアクセス805命令テンプレートにおいて、スケールフィールド860、変位フィールド862A、および、変位スケールフィールド862Bは存在しない。
非メモリアクセス書き込みマスク制御部分的丸め制御タイプ演算810命令テンプレートにおいて、ベータフィールド854の残りは、丸め演算フィールド859Aとして解釈され、例外イベント報告が無効化される(任意の命令はあらゆるタイプの浮動小数点例外フラグを報告せず、浮動小数点例外ハンドラを立ち上げない)。
非メモリアクセス書き込みマスク制御VSIZEタイプ演算817命令テンプレートにおいて、ベータフィールド854の残りは、複数のデータベクトル長さ(例えば、128、856、または1012バイト)のうち何れで実行されるかを含まれるコンテンツが区別するベクトル長さフィールド859Bとして解釈される。
クラスAのメモリアクセス820命令テンプレートの場合、ベータフィールド854の一部は、ブロードキャストタイプデータ操作が実行されるかどうかを含まれるコンテンツが区別するブロードキャストフィールド857Bとして解釈され、ベータフィールド854の残りは、ベクトル長さフィールド859Bとして解釈される。メモリアクセス820命令テンプレートは、スケールフィールド860を含み、場合によっては、変位フィールド862Aまたは変位スケールフィールド862Bを含む。
汎用のベクトルフレンドリーな命令形式800に関し、フルオペコードフィールド874は、形式フィールド840、ベース動作フィールド842、およびデータ要素幅フィールド864を含むものとして示した。フルオペコードフィールド874がこれらのフィールド全てを含む一実施形態を示したが、これらのフィールド全てをサポートしない実施形態においては、フルオペコードフィールド874はこれらのフィールドの全ては含まない。フルオペコードフィールド874は演算コードを提供する。
図9A、図9B、および図9Cは、本願発明の実施形態に係る例示的な特定のベクトルフレンドリーな命令形式を示すブロック図である。図9A、図9B、および図9Cは、フィールドの場所、サイズ、解釈、および順序、並びに、これらのフィールドのうちいくつかの値を特定するという意味で特定的である、特定のベクトルフレンドリーな命令形式900を示す。特定のベクトルフレンドリーな命令形式900を用いて、x86命令の拡張を行ってもよく、よって、フィールのうちいくつかは、既存のx86命令のセット、およびその拡張(例えばAVX)に用いられるものと同様、または同じである。この形式は、拡張された既存のx86命令のセットのプレフィックスエンコードフィールド、リアルオペコードバイトフィールド、MOD R/Mフィールド、SIBフィールド、変位フィールド、および、即値フィールドに対応したままである。図9A、図9B、および図9Cからのフィールドがマッピングされる図8Aおよび図8Bのフィールドが示されている。
汎用のベクトルフレンドリーな命令形式800は、図9A、図9B、および図9Cで示される順序で以下に列挙するフィールドを含む。
即値フィールド872は上述したように動作する。
図10は、本願発明の一実施形態に係るレジスタアーキテクチャ1000のブロック図である。レジスタアーキテクチャのレジスタファイルおよびレジスタを以下に列挙する。
図11Aおよび図11Bは、例示的なインオーダープロセッサアーキテクチャのブロック図を示す。これらの例示的な実施形態は、ワイドベクトルプロセッサ(VPU)で補強されたインオーダーCPUコアの複数のインスタンシエイションに基づいて設計されている。コアはe13tアプリケーションに応じて、何らかの所定の関数ロジック、メモリI/Oインタフェース、および、他の必要なI/Oロジックと高帯域幅インターコネクトネットワークを介して通信を行う。例えば、スタンドアローンGPUとしての本実施形態の実施は、典型的にはPCIeバスを含む。
図12は、本願発明の実施形態に係る例示的なアウトオブオーダーアーキテクチャを示すブロック図である。詳細には、図12は、ベクトルフレンドリーな命令形式およびその実行に対応するよう修正された周知の例示的なアウトオブオーダーアーキテクチャを示す。図12において、矢印は2以上のユニットの結合を示し、矢印の方向はそれらユニット間のデータフローの方向を示す。図12は、実行エンジンユニット1210およびメモリユニット1215に結合されたフロントエンドユニット1205を含む。実行エンジンユニット1210はさらに、メモリユニット1215に結合されている。
図17は、本願発明の実施形態に係る、集積メモリコントローラおよび集積グラフィックを備えたシングルコアプロセッサおよびマルチコアプロセッサ1700を示すブロック図である。図17において、実線の四角はシングルコア1702A、システムエージェント1710、および1以上のバスコントローラユニット1716からなるセットを含むプロセッサ1700を示し、破線の四角は、複数のコア1702A〜N、システムエージェントユニット1710内の1以上の集積メモリコントローラユニット1714からなるセット、および集積グラフィックロジック1708を含む代替的なプロセッサ1700を任意的な追加として示す。
図13〜15は、プロセッサ1700を含めるのに適した例示的なシステムを示す。図16は、1以上のコア1702を含み得る例示的なシステムオンチップ(SoC)を示す。ラップトップ、デスクトップ、ハンドヘルドPC、パーソナルデジタルアシスタント、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、埋め込み型プロセッサ、デジタル信号プロセッサ(DSP)、グラフィックデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、携帯型メディアプレーヤ、ハンドヘルドデバイス、および様々な他の電子デバイスに関する当分野で公知の他のシステム設計および構成も適している。一般的に、本明細書で開示されるプロセッサ、および/または他の実行ロジックを組み込むことが可能な非常に幅広い種類のシステムまたは電子デバイスが適している。
ベクトルフレンドリーな命令形式がネイティブに実行される実施形態を説明してきたが、代替的な実施形態においては、異なる命令セットを実行する(例えば、米国カリフォルニア州サニーベールのMIPS TechnologiesのMIPS命令セットを実行するプロセッサ、米国カリフォルニア州サニーベールのARM HoldingsのARM命令セットを実行するプロセッサなどの)プロセッサ上で実行されるエミュレーションレイヤーを介してベクトルフレンドリーな命令形式を実行してもよい。また、図中のフロー図は本願発明の特定の実施形態によって実行される動作の特定の順序を示すが、そのような順序は例示であることが理解されるべきである(例えば、代替的な実施形態においては、それらの動作を異なる順序で実行する、特定の動作を組み合わせる、または特定の動作を同時に行うなど)。
本明細書によれば、以下の各項目に記載の構成もまた開示される。
[項目1]
コンピュータプロセッサでアライメント命令を実行する方法であり、
書き込みマスクオペランドと、宛て先オペランドと、第1ソースオペランドと、第2ソースオペランドと、オフセット値とを含む前記アライメント命令をフェッチする段階と、
フェッチされた前記アライメント命令をデコードする段階と、
前記第1ソースオペランドの第1の複数のデータ要素と、前記第2ソースオペランドの第2の複数のデータ要素とを連結し、
連結された前記第1の複数のデータ要素および前記第2の複数のデータ要素を前記オフセット値に基づき右にシフトし、
右にシフトされた前記連結された第1の複数のデータ要素および第2の複数のデータ要素のうち宛て先の対応する位置に格納されるデータ要素を書き込みマスクの対応するビットに基づき判断する
ことにより、デコードされた前記アライメント命令を実行する段階と、
前記宛て先に格納されると判断された前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうちの前記データ要素を前記宛て先の前記対応する位置に格納する段階と
を備える方法。
[項目2]
前記書き込みマスクは16ビットのレジスタである、項目1に記載の方法。
[項目3]
前記オフセットは8ビットの即値である、項目1または2に記載の方法。
[項目4]
前記書き込みマスクが用いられるかどうかを判断する段階と、
前記書き込みマスクが用いられない場合、前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうち前記宛て先の前記対応する位置に格納される前記データ要素を前記書き込みマスクの前記対応するビットに基づき判断することなく、前記宛て先の前記対応する位置に前記右にシフトされた連結された第11の複数のデータ要素および第2の複数のデータ要素のうちの前記データ要素を格納する段階と
をさらに備える、項目1から3のいずれか1項に記載の方法。
[項目5]
前記宛て先に格納されるとの判断は、前記書き込みマスクの各ビット位置に関して並行して行われる、項目1から4のいずれか1項に記載の方法。
[項目6]
前記第1ソースオペランドおよび前記第2ソースオペランドは512ビットのレジスタである、項目1から5のいずれか1項に記載の方法。
[項目7]
前記第2ソースオペランドは512ビットのメモリ位置であり、
前記メモリ位置からの前記データ要素は、ソースの前記連結の前に一時的な512ビットのレジスタへロードされる、項目1から6のいずれか1項に記載の方法。
[項目8]
前記第1ソースオペランドの前記データ要素は、前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうち最下位のデータ要素である、項目1から7のいずれか1項に記載の方法。
[項目9]
第1ソースオペランドと、第2ソースオペランドと、宛て先オペランドと、書き込みマスクオペランドと、オフセットとを含むアライメント命令に応答し、
前記第1ソースオペランドの第1セットのデータ要素と、前記第2ソースオペランドの第2セットのデータ要素とを連結する段階と、
連結された前記第1セットのデータ要素および前記第2セットのデータ要素をX個のデータ要素の分だけ右にシフトする段階であり、Xは前記アライメント命令が示す即値である段階と、
書き込みマスクの第1ビット位置に関し、
シフトされた前記連結された第1セットのデータ要素および第2セットのデータ要素のうち対応するデータ要素が宛て先の対応する位置に格納されることを前記第1ビット位置が示すか判断し、
前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち前記対応するデータ要素が格納されることを前記書き込みマスクの前記第1ビット位置が示す場合、前記対応するデータ要素を前記宛て先の前記対応する位置に格納し、
前記対応するデータ要素が前記宛て先に格納されないことを前記書き込みマスクの前記第1ビット位置が示す場合、前記宛て先の前記対応する位置のデータ要素に変更を加えない
段階と
を備える方法。
[項目10]
前記書き込みマスクの第2ビット位置に関し、
前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち対応するデータ要素が前記宛て先の対応する位置に格納されることを前記第2ビット位置が示すか判断し、
前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち前記対応するデータ要素が格納されることを前記書き込みマスクの前記第2ビット位置が示す場合、前記対応するデータ要素を前記宛て先の対応する位置に格納し、
前記対応するデータ要素が前記宛て先に格納されないことを前記書き込みマスクの前記第2ビット位置が示す場合、前記宛て先の前記対応する位置のデータ要素に変更を加えない
段階と
をさらに備える、項目9に記載の方法。
[項目11]
最後のビット位置に関して、前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち対応するデータ要素を前記宛て先の対応する位置に格納されるかを判断するべく評価された時点を判断し、前記アライメント命令を完了する段階をさらに備える、項目10に記載の方法。
[項目12]
前記書き込みマスクの前記第1ビット位置は前記書き込みマスクの最下位のビットである、項目9から11のいずれか1項に記載の方法。
[項目13]
前記書き込みマスクは16ビットのレジスタである、項目9から12のいずれか1項に記載の方法。
[項目14]
前記オフセットは8ビットの即値である、項目9から13のいずれか1項に記載の方法。
[項目15]
前記第1ビット位置が示すかの判断は、前記書き込みマスクの各ビット位置に関して並行して行われる、項目9から14のいずれか1項に記載の方法。
[項目16]
前記第1ソースオペランドおよび前記第2ソースオペランドは512ビットのレジスタである、項目9から15のいずれか1項に記載の方法。
[項目17]
前記第2ソースオペランドは512ビットのメモリ位置であり、
前記メモリ位置からの前記データ要素は、ソースの前記連結の前に一時的な512ビットのレジスタへロードされる、項目9から16のいずれか1項に記載の方法。
[項目18]
書き込みマスクオペランドと、宛て先オペランドと、第1ソースオペランドと、第2ソースオペランドと、オフセット値とを含むアライメント命令をデコードするハードウェアデコーダと、
実行ロジックと
を備え、
前記実行ロジックは、
前記第1ソースオペランドの第1の複数のデータ要素と、前記第2ソースオペランドの第2の複数のデータ要素とを連結し、
連結された前記第1の複数のデータ要素および前記第2の複数のデータ要素を前記オフセット値に基づき右にシフトし、
右にシフトされた前記連結された前記第1の複数のデータ要素および前記第2の複数のデータ要素のうち宛て先の対応する位置に格納されるデータ要素を書き込みマスクのうち対応するビットに基づき判断し、
前記宛て先に格納されると判断された前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうちの前記データ要素を前記宛て先の前記対応する位置に格納する、
装置。
[項目19]
前記書き込みマスクを格納する16ビットの書き込みマスクレジスタと、
前記第1ソースオペランドおよび前記第2ソースオペランドの前記データ要素を格納する少なくとも2つの512ビットのレジスタと
をさらに備える項目18に記載の装置。
Claims (20)
- コンピュータプロセッサで命令を実行する方法であり、
明示的書き込みマスクレジスタオペランドと、宛て先オペランドと、第1ソースオペランドと、第2ソースオペランドと、オフセット値とを含む前記命令をフェッチする段階と、
フェッチされた前記命令をデコードする段階と、
前記第1ソースオペランドの第1の複数のデータ要素と、前記第2ソースオペランドの第2の複数のデータ要素とを連結し、
連結された前記第1の複数のデータ要素および前記第2の複数のデータ要素を前記オフセット値に基づき右にシフトし、
右にシフトされた前記連結された第1の複数のデータ要素および第2の複数のデータ要素のうち宛て先の対応する位置に格納されるデータ要素を前記明示的書き込みマスクレジスタオペランドの対応するビット位置の値に基づき判断する
ことにより、デコードされた前記命令を実行する段階と、
前記宛て先に格納されると判断された前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうちの前記データ要素を、前記明示的書き込みマスクレジスタオペランドに基づいて、前記宛て先の前記対応する位置に格納する段階と
を備え、
前記判断することにおいて用いられるビット位置の数は、前記命令のプレフィックスに定められる前記第1ソースオペランドおよび前記第2ソースオペランドの前記データ要素のサイズならびに前記第1ソースオペランドおよび前記第2ソースオペランドのサイズに依存し、前記明示的書き込みマスクレジスタオペランドは、複数の専用の書き込みマスクレジスタの1つを示す
方法。 - 前記明示的書き込みマスクレジスタオペランドは16ビットのレジスタである、請求項1に記載の方法。
- 前記オフセット値は8ビットの即値である、請求項1または2に記載の方法。
- 前記明示的書き込みマスクレジスタオペランドが用いられないか判断する段階と、
前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうち前記宛て先の対応する位置に格納される前記データ要素を前記明示的書き込みマスクレジスタオペランドの対応するビットに基づき判断することなく、前記宛て先の前記対応する位置に前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうちの前記データ要素を格納する段階と
をさらに備える、請求項1から3のいずれか1項に記載の方法。 - 前記宛て先に格納されるとの判断は、前記明示的書き込みマスクレジスタオペランドの各ビット位置に関して並行して行われる、請求項1から4のいずれか1項に記載の方法。
- 前記第1ソースオペランドおよび前記第2ソースオペランドは512ビットのレジスタである、請求項1から5のいずれか1項に記載の方法。
- 前記第2ソースオペランドは512ビットのメモリ位置であり、
前記メモリ位置からの前記データ要素は、前記第1ソースオペランドおよび前記第2ソースオペランドの前記連結の前に一時的な512ビットのレジスタへロードされる、請求項1から6のいずれか1項に記載の方法。 - 前記第1ソースオペランドの前記データ要素は、前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうち下位側のデータ要素である、請求項1から7のいずれか1項に記載の方法。
- 第1ソースオペランドと、第2ソースオペランドと、宛て先オペランドと、明示的書き込みマスクレジスタオペランドと、オフセット値とを含む命令に応答し、
前記第1ソースオペランドの第1セットのデータ要素と、前記第2ソースオペランドの第2セットのデータ要素とを連結する段階と、
連結された前記第1セットのデータ要素および前記第2セットのデータ要素をX個のデータ要素の分だけ右にシフトする段階であり、Xは前記命令が示す即値である段階と、
前記明示的書き込みマスクレジスタオペランドの第1ビット位置に関し、
シフトされた前記連結された第1セットのデータ要素および第2セットのデータ要素のうち対応するデータ要素が前記宛て先の対応する位置に格納されることを前記第1ビット位置が示すか判断し、
前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち前記対応するデータ要素が格納されることを前記明示的書き込みマスクレジスタオペランドの前記第1ビット位置が示す場合、前記対応するデータ要素を前記宛て先の前記対応する位置に格納し、
前記対応するデータ要素が前記宛て先に格納されないことを前記明示的書き込みマスクレジスタオペランドの前記第1ビット位置が示す場合、前記宛て先の前記対応する位置のデータ要素に変更を加えない
段階とを備え
前記判断することにおいて用いられるビット位置の数は、前記命令のプレフィックスに定められる前記第1ソースオペランドおよび前記第2ソースオペランドの前記データ要素のサイズならびに前記第1ソースオペランドおよび前記第2ソースオペランドのサイズに依存し、前記明示的書き込みマスクレジスタオペランドは、複数の専用の書き込みマスクレジスタの1つを示す
方法。 - 前記明示的書き込みマスクレジスタオペランドの第2ビット位置に関し、
前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち対応するデータ要素が前記宛て先の対応する位置に格納されることを前記第2ビット位置が示すか判断し、
前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち前記対応するデータ要素が格納されることを前記明示的書き込みマスクレジスタオペランドの前記第2ビット位置が示す場合、前記対応するデータ要素を前記宛て先の対応する位置に格納し、
前記対応するデータ要素が前記宛て先に格納されないことを前記明示的書き込みマスクレジスタオペランドの前記第2ビット位置が示す場合、前記宛て先の前記対応する位置のデータ要素に変更を加えない
段階と
をさらに備える、請求項9に記載の方法。 - 最後のビット位置に関して、前記シフトされた連結された第1セットのデータ要素および第2セットのデータ要素のうち対応するデータ要素を前記宛て先の対応する位置に格納されるかを判断するべく評価された時点を判断し、前記命令を完了する段階をさらに備える、請求項10に記載の方法。
- 前記明示的書き込みマスクレジスタオペランドの前記第1ビット位置は前記明示的書き込みマスクレジスタオペランドの最下位のビットである、請求項9から11のいずれか1項に記載の方法。
- 前記明示的書き込みマスクレジスタオペランドは16ビットのレジスタである、請求項9から12のいずれか1項に記載の方法。
- 前記オフセット値は8ビットの即値である、請求項9から13のいずれか1項に記載の方法。
- 前記第1ビット位置が示すかの判断は、前記明示的書き込みマスクレジスタオペランドの各ビット位置に関して並行して行われる、請求項9から14のいずれか1項に記載の方法。
- 前記第1ソースオペランドおよび前記第2ソースオペランドは512ビットのレジスタである、請求項9から15のいずれか1項に記載の方法。
- 前記第2ソースオペランドは512ビットのメモリ位置であり、
前記メモリ位置からの前記データ要素は、前記第1ソースオペランドおよび前記第2ソースオペランドの前記連結の前に一時的な512ビットのレジスタへロードされる、請求項9から16のいずれか1項に記載の方法。 - 明示的書き込みマスクレジスタオペランドと、宛て先オペランドと、第1ソースオペランドと、第2ソースオペランドと、オフセット値とを含む命令をデコードするハードウェアデコーダと、
実行ロジックと
を備え、
前記実行ロジックは、
前記第1ソースオペランドの第1の複数のデータ要素と、前記第2ソースオペランドの第2の複数のデータ要素とを連結し、
連結された前記第1の複数のデータ要素および前記第2の複数のデータ要素を前記オフセット値に基づき右にシフトし、
右にシフトされた前記連結された前記第1の複数のデータ要素および前記第2の複数のデータ要素のうち宛て先の対応する位置に格納されるデータ要素を前記明示的書き込みマスクレジスタオペランドのうち対応するビット位置の値に基づき判断し、
前記宛て先に格納されると判断された前記右にシフトされた連結された第1の複数のデータ要素および第2の複数のデータ要素のうちの前記データ要素を、前記明示的書き込みマスクレジスタオペランドに基づいて、前記宛て先の前記対応する位置に格納し、
前記判断することにおいて用いられるビット位置の数は、前記命令のプレフィックスに定められる前記第1ソースオペランドおよび前記第2ソースオペランドの前記データ要素のサイズならびに前記第1ソースオペランドおよび前記第2ソースオペランドのサイズに依存し、前記明示的書き込みマスクレジスタオペランドは、複数の専用の書き込みマスクレジスタの1つを示す
装置。 - 前記明示的書き込みマスクレジスタオペランドを格納する16ビットの書き込みマスクレジスタと、
前記第1ソースオペランドおよび前記第2ソースオペランドの前記データ要素を格納する少なくとも2つの512ビットのレジスタと
をさらに備える請求項18に記載の装置。 - 前記命令は、前記第1ソースオペランドおよび前記第2ソースオペランドのデータ要素のそれぞれのサイズ、および右にシフトされた前記データ要素のうち前記宛て先に格納されるデータ要素を判断することにおいて用いられる前記明示的書き込みマスクレジスタオペランドのビット数を定めるオペコードを含む、請求項1から17のいずれか一項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/078,868 US20120254589A1 (en) | 2011-04-01 | 2011-04-01 | System, apparatus, and method for aligning registers |
US13/078,868 | 2011-04-01 | ||
PCT/US2012/031202 WO2012135494A2 (en) | 2011-04-01 | 2012-03-29 | System, apparatus, and method for aligning registers |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014510352A JP2014510352A (ja) | 2014-04-24 |
JP5764257B2 true JP5764257B2 (ja) | 2015-08-19 |
Family
ID=46928899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014502797A Expired - Fee Related JP5764257B2 (ja) | 2011-04-01 | 2012-03-29 | レジスタをアライメントするためのシステム、装置、および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20120254589A1 (ja) |
JP (1) | JP5764257B2 (ja) |
KR (2) | KR101926241B1 (ja) |
CN (2) | CN107273095B (ja) |
DE (1) | DE112012001542T5 (ja) |
GB (1) | GB2504226B (ja) |
WO (1) | WO2012135494A2 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103502935B (zh) * | 2011-04-01 | 2016-10-12 | 英特尔公司 | 向量友好指令格式及其执行 |
US20130027416A1 (en) * | 2011-07-25 | 2013-01-31 | Karthikeyan Vaithianathan | Gather method and apparatus for media processing accelerators |
CN109086073B (zh) * | 2011-12-22 | 2023-08-22 | 英特尔公司 | 浮点舍入处理器、方法、系统和指令 |
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 |
US9606961B2 (en) * | 2012-10-30 | 2017-03-28 | Intel Corporation | Instruction and logic to provide vector compress and rotate functionality |
US9632781B2 (en) * | 2013-02-26 | 2017-04-25 | Qualcomm Incorporated | Vector register addressing and functions based on a scalar register data value |
US9477467B2 (en) * | 2013-03-30 | 2016-10-25 | Intel Corporation | Processors, methods, and systems to implement partial register accesses with masked full register accesses |
US9606803B2 (en) | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US11106462B2 (en) | 2019-05-24 | 2021-08-31 | Texas Instruments Incorporated | Method and apparatus for vector sorting |
US9740888B1 (en) * | 2014-02-07 | 2017-08-22 | Seagate Technology Llc | Tamper evident detection |
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 |
US20160179550A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Fast vector dynamic memory conflict detection |
US9971686B2 (en) * | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
JP6492943B2 (ja) | 2015-05-07 | 2019-04-03 | 富士通株式会社 | 計算機、コンパイル方法、コンパイルプログラム、およびパイプライン処理プログラム |
US10001995B2 (en) | 2015-06-02 | 2018-06-19 | Intel Corporation | Packed data alignment plus compute instructions, processors, methods, and systems |
GB2540939B (en) * | 2015-07-31 | 2019-01-23 | Advanced Risc Mach Ltd | An apparatus and method for performing a splice operation |
WO2020066375A1 (ja) * | 2018-09-25 | 2020-04-02 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
CN110688330B (zh) * | 2019-09-23 | 2021-08-31 | 北京航空航天大学 | 一种基于内存映射相邻性的虚拟内存地址翻译方法 |
TWI762908B (zh) * | 2020-04-17 | 2022-05-01 | 新唐科技股份有限公司 | 串接式擴增裝置及包含其之串接式系統 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US4873630A (en) * | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
US4949250A (en) * | 1988-03-18 | 1990-08-14 | Digital Equipment Corporation | Method and apparatus for executing instructions for a vector processing system |
JPH01319863A (ja) * | 1988-06-21 | 1989-12-26 | Nec Corp | ベクトルマスク制御方式 |
KR100329338B1 (ko) * | 1994-12-02 | 2002-07-18 | 피터 엔. 데트킨 | 복합피연산자의팩연산을수행하는마이크로프로세서 |
JP2806346B2 (ja) * | 1996-01-22 | 1998-09-30 | 日本電気株式会社 | 演算処理装置 |
US6535903B2 (en) * | 1996-01-29 | 2003-03-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for maintaining translated routine stack in a binary translation environment |
US5983344A (en) * | 1997-03-19 | 1999-11-09 | Integrated Device Technology, Inc. | Combining ALU and memory storage micro instructions by using an address latch to maintain an address calculated by a first micro instruction |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6223277B1 (en) * | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6745318B1 (en) * | 1999-08-18 | 2004-06-01 | Sanjay Mansingh | Method and apparatus of configurable processing |
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 |
JP3776732B2 (ja) * | 2001-02-02 | 2006-05-17 | 株式会社東芝 | プロセッサ装置 |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7340495B2 (en) * | 2001-10-29 | 2008-03-04 | Intel Corporation | Superior misaligned memory load and copy using merge hardware |
US7349934B2 (en) * | 2002-12-20 | 2008-03-25 | Texas Instruments Incorporated | Processor system and method with combined data left and right shift operation |
CN100338571C (zh) * | 2003-09-27 | 2007-09-19 | 英特尔公司 | 处理器的扩展寄存器空间装置和方法 |
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 |
GB2411974C (en) * | 2003-12-09 | 2009-09-23 | Advanced Risc Mach Ltd | Data shift operations |
US7339592B2 (en) * | 2004-07-13 | 2008-03-04 | Nvidia Corporation | Simulating multiported memories using lower port count memories |
US8127117B2 (en) * | 2006-05-10 | 2012-02-28 | Qualcomm Incorporated | Method and system to combine corresponding half word units from multiple register units within a microprocessor |
US7761694B2 (en) * | 2006-06-30 | 2010-07-20 | Intel Corporation | Execution unit for performing shuffle and other operations |
US8156310B2 (en) * | 2006-09-11 | 2012-04-10 | International Business Machines Corporation | Method and apparatus for data stream alignment support |
GB0619380D0 (en) * | 2006-10-02 | 2006-11-08 | Transitive Ltd | Method and apparatus for program code conversion from a register window based subject computing architecture |
US8667250B2 (en) * | 2007-12-26 | 2014-03-04 | Intel Corporation | Methods, apparatus, and instructions for converting vector data |
CN101930356B (zh) * | 2010-08-24 | 2013-03-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 用于浮点协处理器的寄存器文件分组编址、读写控制方法 |
US8788794B2 (en) * | 2010-12-07 | 2014-07-22 | Advanced Micro Devices, Inc. | Programmable atomic memory using stored atomic procedures |
-
2011
- 2011-04-01 US US13/078,868 patent/US20120254589A1/en not_active Abandoned
-
2012
- 2012-03-29 WO PCT/US2012/031202 patent/WO2012135494A2/en active Application Filing
- 2012-03-29 KR KR1020167001233A patent/KR101926241B1/ko active IP Right Grant
- 2012-03-29 CN CN201710458693.2A patent/CN107273095B/zh active Active
- 2012-03-29 DE DE112012001542.8T patent/DE112012001542T5/de not_active Withdrawn
- 2012-03-29 KR KR1020137028972A patent/KR101592079B1/ko active IP Right Grant
- 2012-03-29 GB GB1317942.9A patent/GB2504226B/en active Active
- 2012-03-29 CN CN201280026790.XA patent/CN103562854B/zh not_active Expired - Fee Related
- 2012-03-29 JP JP2014502797A patent/JP5764257B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2012135494A2 (en) | 2012-10-04 |
CN107273095B (zh) | 2020-12-29 |
KR20160014100A (ko) | 2016-02-05 |
DE112012001542T5 (de) | 2014-02-20 |
CN103562854B (zh) | 2017-07-14 |
GB2504226A (en) | 2014-01-22 |
GB201317942D0 (en) | 2013-11-27 |
GB2504226B (en) | 2020-01-29 |
CN107273095A (zh) | 2017-10-20 |
KR101592079B1 (ko) | 2016-02-04 |
KR20130137697A (ko) | 2013-12-17 |
US20120254589A1 (en) | 2012-10-04 |
WO2012135494A3 (en) | 2012-12-27 |
KR101926241B1 (ko) | 2018-12-06 |
JP2014510352A (ja) | 2014-04-24 |
CN103562854A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5764257B2 (ja) | レジスタをアライメントするためのシステム、装置、および方法 | |
JP6274672B2 (ja) | 装置および方法 | |
JP6109910B2 (ja) | メモリ・ソースを宛先レジスタに展開し、ソース・レジスタを宛先メモリ位置に圧縮するためのシステム、装置および方法 | |
JP6408524B2 (ja) | 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法 | |
KR101817034B1 (ko) | 반복 종속 조건을 갖는 반복들의 벡터 루프들을 구현하기 위한 명령어 | |
TWI502499B (zh) | 執行將寫入罩暫存器轉換成向量暫存器中的索引值列表的系統、裝置及方法 | |
KR102354842B1 (ko) | 비트 셔플 프로세서, 방법, 시스템, 및 명령어 | |
TWI489381B (zh) | 多暫存器散布指令 | |
KR101776227B1 (ko) | 슬라이딩 윈도 인코딩 알고리즘들을 위한 명령어들 | |
JP5947879B2 (ja) | マスクレジスタを用いてジャンプを行うシステム、装置、および方法 | |
JP2016531377A (ja) | インデックス付きベクトルメモリアクセス及び算術及び/または論理演算プロセッサ、方法、システム、及び命令 | |
TWI473015B (zh) | 執行向量頻率擴展指令之方法、處理器核心以及製品 | |
KR20170099873A (ko) | 벡터 비트 셔플을 수행하기 위한 방법 및 장치 | |
JP2017534114A (ja) | Z順序曲線において次のポイントの座標を計算するためのベクトル命令 | |
JP6835436B2 (ja) | マスクをマスク値のベクトルに拡張するための方法および装置 | |
TWI733718B (zh) | 用於獲得偶數和奇數資料元素的系統、裝置及方法 | |
JP2017539010A (ja) | ベクトル飽和ダブルワード/クワッドワードの加算を実行するための命令およびロジック | |
JP2018500665A (ja) | マスク値を圧縮するための方法および装置 | |
JP2018500666A (ja) | ベクトルビットギャザーを実行するための方法および装置 | |
JP2018503162A (ja) | スピンループジャンプを実行するための装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150225 |
|
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: 20150414 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150513 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5764257 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |