JP2014182796A - 書き込みマスク・レジスタの末尾の最下位マスキング・ビットを判定するためのシステム、装置、および方法 - Google Patents
書き込みマスク・レジスタの末尾の最下位マスキング・ビットを判定するためのシステム、装置、および方法 Download PDFInfo
- Publication number
- JP2014182796A JP2014182796A JP2014028431A JP2014028431A JP2014182796A JP 2014182796 A JP2014182796 A JP 2014182796A JP 2014028431 A JP2014028431 A JP 2014028431A JP 2014028431 A JP2014028431 A JP 2014028431A JP 2014182796 A JP2014182796 A JP 2014182796A
- Authority
- JP
- Japan
- Prior art keywords
- write mask
- bit position
- register
- instruction
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 20
- 230000000873 masking effect Effects 0.000 title description 15
- 239000013598 vector Substances 0.000 abstract description 97
- 238000004364 calculation method Methods 0.000 abstract description 3
- 230000015654 memory Effects 0.000 description 72
- 238000010586 diagram Methods 0.000 description 29
- 238000007667 floating Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 1
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program 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
- 230000006837 decompression Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
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)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】KZBTZの実行では、第1の入力マスクの末尾の最下位ゼロビット・ポジションを検出し、出力マスクを、その第1の入力マスクの値を有するようにセットするが、第1の入力マスクにおける末尾の最下位ゼロビット・ポジションよりも最上位ビット・ポジションに近い全てのビット・ポジションはゼロにセットされた状態である。いくつかの実施形態では、第1の入力マスクのビット・ポジションが、対応する第2の入力マスクのビット・ポジションに応じて末尾の最下位ゼロビット・ポジション計算に考慮されないように、第2の入力マスクが書き込みマスクとして使用される。
【選択図】図1
Description
命令セット・アーキテクチャは、ISAを実装するプロセッサの内部設計であるマイクロ・アーキテクチャとは区別される。様々なマイクロ・アーキテクチャを備えるプロセッサが共通の命令セットを共有することができる。例えば、インテル(登録商標)社製Pentium(登録商標)4プロセッサ、インテル社製コアプロセッサ、およびアドバンスト・マイクロ・ディバイシズ社(カルフォルニア州サニーベール)製プロセッサは、x86命令セットのほぼ同一のバージョン(より新しいバージョンにはいくつかの拡張が追加されている)を実装するが、異なる内部設計を有する。例えば、そのISAの同一レジスタ・アーキテクチャを異なるマイクロ・アーキテクチャに様々な方法で実装することができる。こういったマイクロ・アーキテクチャは、専用物理レジスタや1つまたは複数の動的に割り付けられる物理レジスタを含む既知の技術を使用しており、動的に割り付けられる物理レジスタは、レジスタ・リネーミング機構などを使用する(例えば、特許文献1に記載のレジスタ・エイリアス・テーブル(RAT)、リオーダ・バッファ(ROB)およびリタイアメント・レジスタ・ファイルの使用、特許文献2に記載のレジスタの複数マップと1つのプールの使用など)。他に指定されていない限り、 レジスタ・アーキテクチャ、レジスタ・ファイル、およびレジスタという語句は、ソフトウェア/プログラマから見えるものと、命令がレジスタを指定する方法を示す。具体性を求める場合、論理の、アーキテクチャ上の、またはソフトウェアビジブルの、という形容詞がレジスタ・アーキテクチャにおけるレジスタ/ファイルを示すために使用され、所与のマイクロ・アーキテクチャにおけるレジスタ(例えば物理レジスタ、リオーダ・バッファ、リタイアメント・レジスタ、レジスタ・プール)を示すために種々の形容詞が使用される。
for (i=0; i<N; i+=SIMD_WIDTH) {
gather_indices = vload (&B[i]);
scatter_indices = vload (&C[i]);
comparisons = vconflict (gather_indices, scatter_indices);
elements_left_mask = all_ones;
do {
do_these = Compute_Mask_of_Non_Conflicting_Elements (comparisons, elements_left_mask);
Gather_Compute_Scatter (gather_indices, scatter_indices, do_these);
elements_left_mask ^= do_these;
} while (elements_left_mask != 0);
}
この命令のフォーマットの例は「KZBTZ K1,K2,K3」である。ここで、オペランドK1がデスティネーション書き込みマスク・レジスタであり、K2およびK3がソース書き込みマスク・レジスタであり、KZBTZが命令のオペコードである。いくつかの実施形態では、K1、K2、およびK3は上記で詳述した専用書き込みマスク・レジスタである。他の実施形態では、K1、K2、およびK3は汎用レジスタである。
図4に、プロセッサでKZBTZ命令を実行する実施形態が示されている。401で、第1および第2のソース書き込みマスク・オペランド、デスティネーション書き込みマスク・オペランド、およびオペコードを有するKZBTZ命令がフェッチされる。
for (i=0; i<N; i+=SIMD_WIDTH) {
gather_indices = vload (&B[i]);
scatter_indices = vload (&C[i]);
comparisons = vconflict (gather_indices, scatter_indices);
elements_left_mask = all_ones;
do{
no_raw_mask = Compute_Mask_of_Elements_w/o_RAW_Dependence (comparisons, elements_left_mask);
stop_at_first_conf_mask = kzbtz (no_raw_mask, elements_left_mask);
Gather_Compute_Scatter (gather_indices, scatter_indices, stop_at_first_conf_mask);
elements_left_mask ^= stop_at_first_conf_mask;
} while (elements_left_mask != 0);
}
図6は、本発明の一実施形態によるレジスタ・アーキテクチャ600のブロック図である。示されている実施形態には以下のものが存在する。幅が512ビットの32個のベクトル・レジスタ610−これらのレジスタはzmm0〜zmm31と呼ばれる。下位16個のzmmレジスタの下位256ビットがレジスタymm0〜16に重なる。下位16個のzmmレジスタの下位128ビット(ymmレジスタの下位128ビット)がレジスタxmm0〜15に重なる。
プロセッサ・コアは、様々なプロセッサに、様々な目的のために、様々な方法で実装することができる。例えば、かかるコアの実装は以下を含むことができる。1)汎用計算向けの汎用インオーダ・コア、2)汎用計算向けの高性能汎用アウトオブオーダ・コア、3)主にグラフィックスおよび/または科学計算(スループット・コンピューティング)向けの専用コア。各種プロセッサの実装には以下を含むことができる。1)汎用計算向けの1つまたは複数の汎用インオーダ・コアおよび/または汎用計算向けの1つまたは複数の汎用アウトオブオーダ・コアを含んだCPU、2)主にグラフィックスおよび/または科学(スループット)向けの1つまたは複数の専用コアを含んだコプロセッサ。かかる各種プロセッサは様々なコンピュータ・システム・アーキテクチャに結びつく。この様々なコンピュータ・システム・アーキテクチャには以下を含むことができる。1)CPUとは別個のチップ上にあるコプロセッサ、2)CPUと同じパッケージにある個別ダイ上のコプロセッサ、3)CPUと同じダイ上にあるコプロセッサ(この場合、かかるコプロセッサは専用ロジック呼ばれることがある。専用ロジックには例えば、統合グラフィックスおよび/または科学(スループット)ロジックや、専用コアなどがある)、4)同一ダイ上に上述のCPU(アプリケーション・コアまたはアプリケーション・プロセッサと呼ばれることがある)と上述のコプロセッサと追加の機能を含むことができるチップ上のシステム。次にコア・アーキテクチャの例について説明し、続いてプロセッサおよびコンピュータ・アーキテクチャの例の説明をする。
インオーダ/アウトオブオーダ・コアのブロック図
図8A及び図8Bは、インオーダ・コア・アーキテクチャのより具体的な例のブロック図を示す。このコアは、チップ内における複数の論理ブロック(同じタイプおよび/または異なるタイプからなるその他のコアを含む)のうちの1つであるはずである。論理ブロックは、アプリケーションに応じて、いくつかの固定機能ロジック、メモリ入出力インタフェース、およびその他必要な入出力ロジックと、高バンド幅の相互接続ネットワーク(例えばリング・ネットワーク)を介して通信する。
図9は、本発明の実施形態に従って複数のコアを有することができ、統合メモリ・コントローラを有することができ、統合グラフィックスを有することができるプロセッサ900のブロック図である。図9の実線のボックスは、単一のコア902A、システム・エージェント910、1つまたは複数のバス・コントローラ・ユニット916のセットを備えるプロセッサ900を示し、破線のボックスの任意追加部分は、複数のコア902A〜N、システム・エージェント・ユニット910内にある1つまたは複数の統合メモリ・コントローラ・ユニット914のセット、および専用ロジック908を備える代替プロセッサ900を示す。
図10〜13は、コンピュータ・アーキテクチャの例のブロック図である。以下の当技術分野で知られているその他のシステム設計および構成も適当である。つまり、デスクトップ、ラップトップ、ハンドヘルドPC、パーソナル・デジタル・アシスタント、エンジニアリング・ワークステーション、サーバ、ネットワーク・デバイス、ネットワーク・ハブ、切替器、埋込み型プロセッサ、デジタル信号プロセッサ(DSP)、グラフィックス・デバイス、ビデオ・ゲーム・デバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブル・メディア・プレーヤ、ハンドへルド・デバイス、およびその他様々な電子デバイスのためのものである。一般に、ここで開示するプロセッサおよび/またはその他の実行ロジックを組み込むことができる非常に多様なシステムまたは電子デバイスが概ね適合する。
いくつかの事例では、命令をソース命令セットからターゲット命令セットに変換するために、命令コンバータを使用することができる。例えば、命令コンバータは、命令を、コアで処理する1つまたは複数の他の命令に変換(例えば静的バイナリ変換や、動的コンパイルを含む動的バイナリ変換を使用)、モーフ、エミュレート、またはその他の方法で変換することができる。この命令コンバータは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組合せで実装することができる。命令コンバータは、プロセッサ搭載型であっても、プロセッサ非搭載型であってもよく、あるいは部分的プロセッサ搭載型/部分的プロセッサ非搭載型であってもよい。
204 KZBTZ命令
205 アーキテクチャから見えるレジスタ
206 パックデータ・レジスタ
207 パックデータ動作マスク・レジスタ
208 実行ロジック
301 第1のソース書き込みマスク・レジスタ
303 第2のソース書き込みマスク・レジスタ
305 デスティネーション書き込みマスク
307 第1のソース書き込みマスク・レジスタ
309 第2のソース書き込みマスク・レジスタ
311 デスティネーション書き込みマスク・レジスタ
600 レジスタ・アーキテクチャ
610 ベクトル・レジスタ
625 汎用レジスタ
645 スカラー浮動小数点スタック・レジスタ・ファイル
650 MMXパック整数フラット・レジスタ・ファイル
700 プロセッサ・パイプライン
702 フェッチ段階
704 長さ復号化段階
706 復号化段階
708 割付け段階
710 リネーミング段階
712 スケジューリング段階
714 レジスタ読み取り/メモリ読み取り段階
716 実行段階
718 ライト・バック/メモリ書き込み段階
722 例外処理段階
724 コミット段階
730 フロントエンド・ユニット
732 分岐予測ユニット
734 命令キャッシュ・ユニット
736 命令トランスレーション・ルックアサイド・バッファ(TLB)
738 命令フェッチ・ユニット
740 復号化ユニット
750 実行エンジン・ユニット
752 リネーム/アロケータ・ユニット
754 リタイアメント・ユニット
756 スケジューラ・ユニット
758 物理レジスタ・ファイル・ユニット
760 実行クラスタ
762 実行ユニット
764 メモリ・アクセス・ユニット
770 メモリ・ユニット
772 データTLBユニット
774 データ・キャッシュ・ユニット
776 レベル2キャッシュ・ユニット
790 プロセッサ・コア
800 命令デコーダ
802 オンダイ相互接続ネットワーク
804 ローカル・サブセット
806 L1キャッシュ
808 スカラー・ユニット
810 ベクトル・ユニット
812 スカラー・レジスタ
814 ベクトル・レジスタ
820 スウィズル・ユニット
822 数値変換ユニット
824 レプリケーション・ユニット
828 算術論理演算装置
900 プロセッサ
902 コア
906 共用キャッシュ・ユニット
908 専用ロジック
910 システム・エージェント・ユニット
912 リングベースの相互接続ユニット
914 統合メモリ・コントローラ・ユニット
916 バス・コントローラ・ユニット
1000 システム
1010 プロセッサ
1015 プロセッサ
1020 コントローラ・ハブ
1040 メモリ
1045 コプロセッサ
1050 入出力ハブ(IOH)
1060 入出力デバイス
1090 グラフィックス・メモリ・コントローラ・ハブ
1095 接続
1100 マルチプロセッサ・システム
1114 入出力デバイス
1115 プロセッサ
1116 第1のバス
1118 バス・ブリッジ
1120 第2のバス
1122 キーボードおよび/またはマウス
1124 オーディオ入出力
1127 通信デバイス
1128 記憶ユニット
1130 命令/コードおよびデータ
1132 メモリ
1134 メモリ
1138 コプロセッサ
1139 高性能インタフェース
1150 ポイント・ツー・ポイント(P−P)インタフェース
1152 P−Pインタフェース
1154 P−Pインタフェース
1170 第1のプロセッサ
1172 統合メモリ・コントローラ(IMC)ユニット
1176 ポイント・ツー・ポイント・インタフェース回路
1178 P−Pインタフェース回路
1180 第2のプロセッサ
1182 統合メモリ・コントローラ(IMC)ユニット
1186 P−Pインタフェース
1188 P−Pインタフェース回路
1190 チップセット
1194 ポイント・ツー・ポイント・インタフェース回路
1196 インタフェース
1198 ポイント・ツー・ポイント・インタフェース回路
1200 システム
1214 入出力デバイス
1215 レガシー入出力デバイス
1300 SoC
1302 相互接続ユニット
1320 コプロセッサ
1310 アプリケーション・プロセッサ
1330 スタティック・ランダム・アクセス・メモリ(SRAM)ユニット
1332 ダイレクト・メモリ・アクセス(DMA)ユニット
1340 ディスプレイ・ユニット
1402 高級言語
1404 x86コンパイラ
1406 x86バイナリコード
1408 代替命令セット・コンパイラ
1410 代替命令セット・バイナリコード
1412 命令コンバータ
1414 プロセッサ
1416 プロセッサ
Claims (20)
- ゼロマスク・ビフォー・末尾ゼロ(KZBTZ)命令を復号化する復号化ロジックにおいて、前記KZBTZ命令が第1のソース書き込みマスク・オペランドおよびデスティネーション書き込みマスク・オペランドを含む復号化ロジックと、
前記第1のソース書き込みマスクにおいて末尾の最下位ゼロビット・ポジションを検出し、前記デスティネーション書き込みマスクを、前記第1のソース書き込みマスクの値を有するようにセットするが、前記第1のソース書き込みマスクにおける前記末尾の最下位ゼロビット・ポジションよりも最上位ビット・ポジションに近い全てのビット・ポジションはゼロにセットされた状態になるように、前記復号化されたKZBTZ命令を実行する実行ロジックとを備える装置。 - 前記KZBTZ命令がさらに、第2のソース書き込みマスク・オペランドを含み、前記末尾の最下位ゼロビット・ポジションが、前記第2のソース書き込みマスク・オペランドのそれに対応するビット・ポジションが1にセットされた場合、前記第1のソース書き込みマスク・オペランドにおいてゼロにセットされる最初のビット・ポジションである、請求項1に記載の装置。
- 前記書き込みマスク・オペランドが専用書き込みマスク・レジスタである、請求項1または2に記載の装置。
- 前記専用書き込みマスク・レジスタのサイズが8または16ビットである、請求項3に記載の装置。
- 前記書き込みマスク・オペランドが汎用レジスタである、請求項1から4のいずれか1項に記載の装置。
- 前記実行ロジックが、前記第1のソース・オペランドの各ビット・ポジションを最下位から最上位まで直列に評価する、請求項1から5のいずれか1項に記載の装置。
- 前記ビット・ポジションの全てが何時評価完了したか判定するために、カウンタが前記実行ロジックで使用される、請求項6に記載の装置。
- コンピュータ・プロセッサでゼロマスク・ビフォー・末尾ゼロ(KZBTZ)命令を実行する方法であって、前記KZBTZ命令が、第1のソース書き込みマスク・オペランドおよびデスティネーション書き込みマスク・オペランドを含み、
前記第1のソース書き込みマスクにおいて末尾の最下位ゼロビット・ポジションを検出するステップと、
前記デスティネーション書き込みマスクを、前記第1のソース書き込みマスクの値を有するようにセットするが、前記第1のソース書き込みマスクにおける前記末尾の最下位ゼロビット・ポジションよりも最上位ビット・ポジションに近い全てのビット・ポジションはゼロにセットされた状態になるようにするステップとを含む方法。 - 前記KZBTZ命令がさらに、第2のソース書き込みマスク・オペランドを含み、前記末尾の最下位ゼロビット・ポジションが、前記第2のソース書き込みマスク・オペランドのそれに対応するビット・ポジションが1にセットされた場合、前記第1のソース書き込みマスク・オペランドにおいてゼロにセットされる最初のビット・ポジションである、請求項8に記載の方法。
- 前記書き込みマスク・オペランドが専用書き込みマスク・レジスタである、請求項8または9に記載の方法。
- 前記専用書き込みマスク・レジスタのサイズが8または16ビットである、請求項10に記載の方法。
- 前記書き込みマスク・オペランドが汎用レジスタである、請求項8から11のいずれか1項に記載の方法。
- 前記第1のソース書き込みマスク・オペランドの各ビット・ポジションが、最下位から最上位まで直列に評価される、請求項8から12のいずれか1項に記載の方法。
- 前記ビット・ポジションの全てが何時評価完了したかを、カウンタに基づいて判定する、請求項13に記載の方法。
- ゼロマスク・ビフォー・末尾ゼロ(KZBTZ)命令をプロセッサに実行させるコードを含んだ、プログラムであって、前記KZBTZ命令が、第1のソース書き込みマスク・オペランドおよびデスティネーション書き込みマスク・オペランドを含み、
前記第1のソース書き込みマスクにおいて末尾の最下位ゼロビット・ポジションを検出するステップと、
前記デスティネーション書き込みマスクを、前記第1のソース書き込みマスクの値を有するようにセットするが、前記第1のソース書き込みマスクにおける前記末尾の最下位ゼロビット・ポジションよりも最上位ビット・ポジションに近い全てのビット・ポジションはゼロにセットされた状態になるようにするステップとを前記プロセッサに実行させるプログラム。 - 前記KZBTZ命令がさらに、第2のソース書き込みマスク・オペランドを含み、前記末尾の最下位ゼロビット・ポジションが、前記第2のソース書き込みマスク・オペランドのそれに対応するビット・ポジションが1にセットされた場合、前記第1のソース書き込みマスク・オペランドにおいてゼロにセットされる最初のビット・ポジションである、請求項15に記載のプログラム。
- 前記書き込みマスク・オペランドが専用書き込みマスク・レジスタである、請求項15または16に記載のプログラム。
- 前記専用書き込みマスク・レジスタのサイズが8または16ビットである、請求項17に記載のプログラム。
- 前記書き込みマスク・オペランドが汎用レジスタである、請求項15から18のいずれか1項に記載のプログラム。
- 前記第1のソース書き込みマスク・オペランドの各ビット・ポジションが、最下位から最上位まで直列に評価される、請求項15から19のいずれか1項に記載のプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/840,809 | 2013-03-15 | ||
US13/840,809 US9323531B2 (en) | 2013-03-15 | 2013-03-15 | Systems, apparatuses, and methods for determining a trailing least significant masking bit of a writemask register |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014182796A true JP2014182796A (ja) | 2014-09-29 |
JP2014182796A5 JP2014182796A5 (ja) | 2015-07-16 |
JP5806748B2 JP5806748B2 (ja) | 2015-11-10 |
Family
ID=50554642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014028431A Expired - Fee Related JP5806748B2 (ja) | 2013-03-15 | 2014-02-18 | 書き込みマスク・レジスタの末尾の最下位マスキング・ビットを判定するためのシステム、装置、および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9323531B2 (ja) |
JP (1) | JP5806748B2 (ja) |
KR (1) | KR101624786B1 (ja) |
CN (1) | CN104049946A (ja) |
BR (1) | BR102014006118A2 (ja) |
DE (1) | DE102014003659A1 (ja) |
GB (1) | GB2513467B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9354877B2 (en) * | 2011-12-23 | 2016-05-31 | Intel Corporation | Systems, apparatuses, and methods for performing mask bit compression |
US10387150B2 (en) | 2015-06-24 | 2019-08-20 | International Business Machines Corporation | Instructions to count contiguous register elements having a specific value in a selected location |
US10162603B2 (en) * | 2016-09-10 | 2018-12-25 | Sap Se | Loading data for iterative evaluation through SIMD registers |
WO2019005165A1 (en) | 2017-06-30 | 2019-01-03 | Intel Corporation | METHOD AND APPARATUS FOR VECTORIZING INDIRECT UPDATING BUCKLES |
KR101999006B1 (ko) | 2017-09-11 | 2019-07-11 | 중앙대학교 산학협력단 | 세균성 벼흰잎마름병균의 OprXBo 단백질 및 이의 용도 |
GB2585202B (en) * | 2019-07-01 | 2021-11-24 | Advanced Risc Mach Ltd | An apparatus and method for speculatively vectorising program code |
US11853757B2 (en) * | 2020-03-06 | 2023-12-26 | Intel Corporation | Vectorization of loops based on vector masks and vector count distances |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04182777A (ja) * | 1990-11-16 | 1992-06-30 | Koufu Nippon Denki Kk | ベクトル処理装置 |
US20100042789A1 (en) * | 2008-08-15 | 2010-02-18 | Apple Inc. | Check-hazard instructions for processing vectors |
US20120060020A1 (en) * | 2008-08-15 | 2012-03-08 | Apple Inc. | Vector index instruction for processing vectors |
WO2012040545A2 (en) * | 2010-09-24 | 2012-03-29 | Intel Corporation | Functional unit for vector integer multiply add instruction |
WO2012040539A2 (en) * | 2010-09-24 | 2012-03-29 | Intel Corporation | Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation |
WO2013095642A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for setting an output mask in a destination writemask register from a source write mask register using an input writemask and immediate |
WO2013101223A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Efficient zero-based decompression |
JP2013254484A (ja) * | 2012-04-02 | 2013-12-19 | Apple Inc | ベクトル分割ループの性能の向上 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5207132A (en) | 1991-10-16 | 1993-05-04 | Textron Inc. | Elliptical lobed drive system |
US5651121A (en) * | 1992-12-18 | 1997-07-22 | Xerox Corporation | Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand |
US5446912A (en) | 1993-09-30 | 1995-08-29 | Intel Corporation | Partial width stalls within register alias table |
US7129864B2 (en) * | 2004-12-31 | 2006-10-31 | Intel Corporation | Fast compact decoder for huffman codes |
US7966523B2 (en) * | 2008-08-21 | 2011-06-21 | Rockwell Automation Technologies, Inc. | Industrial automation and information solutions having industry specific modalities |
US8972701B2 (en) * | 2011-12-06 | 2015-03-03 | Arm Limited | Setting zero bits in architectural register for storing destination operand of smaller size based on corresponding zero flag attached to renamed physical register |
-
2013
- 2013-03-15 US US13/840,809 patent/US9323531B2/en not_active Expired - Fee Related
-
2014
- 2014-02-18 JP JP2014028431A patent/JP5806748B2/ja not_active Expired - Fee Related
- 2014-03-06 GB GB1403993.7A patent/GB2513467B/en not_active Expired - Fee Related
- 2014-03-14 DE DE102014003659.6A patent/DE102014003659A1/de not_active Withdrawn
- 2014-03-14 BR BR102014006118A patent/BR102014006118A2/pt not_active Application Discontinuation
- 2014-03-14 KR KR1020140030541A patent/KR101624786B1/ko active IP Right Grant
- 2014-03-17 CN CN201410097430.XA patent/CN104049946A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04182777A (ja) * | 1990-11-16 | 1992-06-30 | Koufu Nippon Denki Kk | ベクトル処理装置 |
US20100042789A1 (en) * | 2008-08-15 | 2010-02-18 | Apple Inc. | Check-hazard instructions for processing vectors |
US20120060020A1 (en) * | 2008-08-15 | 2012-03-08 | Apple Inc. | Vector index instruction for processing vectors |
WO2012040545A2 (en) * | 2010-09-24 | 2012-03-29 | Intel Corporation | Functional unit for vector integer multiply add instruction |
WO2012040539A2 (en) * | 2010-09-24 | 2012-03-29 | Intel Corporation | Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation |
JP2013543173A (ja) * | 2010-09-24 | 2013-11-28 | インテル・コーポレーション | ベクトル先頭ゼロ、ベクトル末尾ゼロ、ベクトルオペランド1sカウントおよびベクトルパリティ計算のための機能ユニット |
JP2013543174A (ja) * | 2010-09-24 | 2013-11-28 | インテル・コーポレーション | ベクトル整数乗算加算命令のための機能ユニット |
WO2013095642A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for setting an output mask in a destination writemask register from a source write mask register using an input writemask and immediate |
WO2013101223A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Efficient zero-based decompression |
JP2013254484A (ja) * | 2012-04-02 | 2013-12-19 | Apple Inc | ベクトル分割ループの性能の向上 |
Also Published As
Publication number | Publication date |
---|---|
DE102014003659A1 (de) | 2014-09-18 |
KR101624786B1 (ko) | 2016-05-26 |
BR102014006118A2 (pt) | 2015-10-20 |
KR20140113555A (ko) | 2014-09-24 |
CN104049946A (zh) | 2014-09-17 |
US20140281401A1 (en) | 2014-09-18 |
GB2513467A (en) | 2014-10-29 |
JP5806748B2 (ja) | 2015-11-10 |
GB201403993D0 (en) | 2014-04-23 |
GB2513467B (en) | 2015-11-04 |
US9323531B2 (en) | 2016-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478139B (zh) | 用于共享存储器中的访问同步的装置、方法和系统 | |
JP6207095B2 (ja) | 条件付きループをベクトル化する命令及び論理 | |
JP6466388B2 (ja) | 方法及び装置 | |
JP5806748B2 (ja) | 書き込みマスク・レジスタの末尾の最下位マスキング・ビットを判定するためのシステム、装置、および方法 | |
US10387148B2 (en) | Apparatus and method to reverse and permute bits in a mask register | |
US9710279B2 (en) | Method and apparatus for speculative vectorization | |
US20140089634A1 (en) | Apparatus and method for detecting identical elements within a vector register | |
CN106030514B (zh) | 用于执行采用传播的被屏蔽源元素存储指令的处理器及其方法 | |
JP6807073B2 (ja) | 高速ベクトルによる動的なメモリ競合検出 | |
US9904548B2 (en) | Instruction and logic to perform a centrifuge operation | |
US20150186136A1 (en) | Systems, apparatuses, and methods for expand and compress | |
JP2018500652A (ja) | マスクをマスク値のベクトルに拡張するための方法および装置 | |
US10545757B2 (en) | Instruction for determining equality of all packed data elements in a source operand | |
US20140189322A1 (en) | Systems, Apparatuses, and Methods for Masking Usage Counting | |
JP2017538215A (ja) | 逆分離演算を実行するための命令及びロジック | |
US10922080B2 (en) | Systems and methods for performing vector max/min instructions that also generate index values | |
US9207942B2 (en) | Systems, apparatuses,and methods for zeroing of bits in a data element |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141202 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150302 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150401 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150501 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20150602 |
|
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: 20150707 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150805 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150904 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5806748 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 |
|
LAPS | Cancellation because of no payment of annual fees |