JP5876458B2 - Simdベクトルの同期 - Google Patents
Simdベクトルの同期 Download PDFInfo
- Publication number
- JP5876458B2 JP5876458B2 JP2013240725A JP2013240725A JP5876458B2 JP 5876458 B2 JP5876458 B2 JP 5876458B2 JP 2013240725 A JP2013240725 A JP 2013240725A JP 2013240725 A JP2013240725 A JP 2013240725A JP 5876458 B2 JP5876458 B2 JP 5876458B2
- Authority
- JP
- Japan
- Prior art keywords
- source operand
- data elements
- data
- 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
- 230000004044 response Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 72
- 238000012545 processing Methods 0.000 description 46
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 23
- 102100037226 Nuclear receptor coactivator 2 Human genes 0.000 description 23
- 101000974356 Homo sapiens Nuclear receptor coactivator 3 Proteins 0.000 description 16
- 102100022883 Nuclear receptor coactivator 3 Human genes 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 16
- 230000008859 change Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 101000602926 Homo sapiens Nuclear receptor coactivator 1 Proteins 0.000 description 3
- 101000651467 Homo sapiens Proto-oncogene tyrosine-protein kinase Src Proteins 0.000 description 3
- 102100027384 Proto-oncogene tyrosine-protein kinase Src Human genes 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011343 solid material Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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
-
- 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/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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
Description
Claims (16)
- 第1の複数のデータ要素を含む第1ソースオペランド、第2の複数のデータ要素を含む第2ソースオペランド、および、第3の複数のデータ要素を含む第3ソースオペランドを示す命令をデコードするデコーダと、
前記デコーダに接続され、前記デコーダによりデコードされた前記命令を実行する実行ユニットと、
を備え、
前記実行ユニットは、
前記第1ソースオペランドにおける前記第1の複数のデータ要素のそれぞれが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致した場合に、前記第3ソースオペランドにおける前記第3の複数のデータ要素のそれぞれをデスティネーションへと格納し、
前記第1ソースオペランドにおける前記第1の複数のデータ要素のうちの少なくとも1つが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致しない場合に、前記第1ソースオペランドにおける前記第1の複数のデータ要素を、前記第2ソースオペランドにより参照される記憶ロケーションに格納する
プロセッサ。 - 前記実行ユニットは、
前記第1ソースオペランドにおける前記第1の複数のデータ要素のそれぞれが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致した場合に、ゼロフラグをセットし、
前記第1ソースオペランドにおける前記第1の複数のデータ要素のうちの少なくとも1つが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致しない場合に、ゼロフラグをクリアする
請求項1に記載のプロセッサ。 - 前記デスティネーションは、前記第1ソースオペランドと同一の記憶ロケーションを含む請求項1または2に記載のプロセッサ。
- 前記第1ソースオペランドは、128ビットを含む請求項1から3のいずれか一項に記載のプロセッサ。
- 前記第1ソースオペランドは、256ビットを含む請求項1から4のいずれか一項に記載のプロセッサ。
- 前記命令の実行の前に、前記第1ソースオペランドがキャッシュにプリフェッチされ、
前記実行ユニットは、前記第1ソースオペランドにおける前記第1の複数のデータ要素のそれぞれが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致した場合に、前記第3ソースオペランドにおける前記第3の複数のデータ要素を、前記キャッシュ上の前記第1ソースオペランドにより参照される記憶ロケーションに格納する
請求項1から5のいずれか一項に記載のプロセッサ。 - 第1の複数のデータ要素を含む第1ソースオペランド、第2の複数のデータ要素を含む第2ソースオペランド、第3の複数のデータ要素を含む第3ソースオペランド、および、それぞれがアクティブまたは非アクティブを示す複数のマスク要素を含むマスクベクトルを示す命令をデコードするデコーダと、
前記デコーダに接続され、前記デコーダによりデコードされた前記命令を実行する実行ユニットと、
を備え、
前記実行ユニットは、
前記マスクベクトルにおけるアクティブなマスク要素の各々に対して、前記第1ソースオペランドにおける前記第1の複数のデータ要素のそれぞれが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致した場合に、前記第3ソースオペランドにおける前記第3の複数のデータ要素のうちアクティブなマスク要素に対応するデータ要素のそれぞれをデスティネーションへと格納し、
前記マスクベクトルにおけるアクティブなマスク要素の各々に対して、前記第1ソースオペランドにおける前記第1の複数のデータ要素のうちの少なくとも1つが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致しない場合に、前記第1ソースオペランドにおける前記第1の複数のデータ要素のうちアクティブなマスク要素に対応するデータ要素を、前記第2ソースオペランドにより参照される記憶ロケーションに格納する
プロセッサ。 - 前記実行ユニットは、
前記マスクベクトルにおけるアクティブなマスク要素の各々について、前記第1ソースオペランドにおける前記第1の複数のデータ要素のそれぞれが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致した場合に、ゼロフラグをセットし、
前記マスクベクトルにおけるアクティブなマスク要素の各々について、前記第1ソースオペランドにおける前記第1の複数のデータ要素のうちの少なくとも1つが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致しない場合に、ゼロフラグをクリアする
請求項7に記載のプロセッサ。 - 前記デスティネーションは、前記第1ソースオペランドと同一の記憶ロケーションを含む請求項7または8に記載のプロセッサ。
- 前記第1ソースオペランドは、512ビットを含む請求項7から9のいずれか一項に記載のプロセッサ。
- 前記第1ソースオペランドは、32ビットのデータ要素または64ビットのデータ要素を含む請求項7から10のいずれか一項に記載のプロセッサ。
- 前記命令の実行の前に、前記第1ソースオペランドがキャッシュにプリフェッチされ、
前記実行ユニットは、前記第1ソースオペランドにおける前記第1の複数のデータ要素のそれぞれが、前記第2ソースオペランドにおける前記第2の複数のデータ要素のうちの対応するデータ要素と一致した場合に、前記第3ソースオペランドにおける前記第3の複数のデータ要素を、前記キャッシュ上の前記第1ソースオペランドにより参照される記憶ロケーションに格納する
請求項7から11のいずれか一項に記載のプロセッサ。 - 前記デコーダは、前記第3ソースオペランドを、前記マスクベクトルとしても使用する前記命令をデコードする請求項7から12のいずれか一項に記載のプロセッサ。
- 第1の複数のデータ要素を含む第1ソースオペランド、第2の複数のデータ要素を含む第2ソースオペランド、および、第3の複数のデータ要素を含む第3ソースオペランドを示す命令をデコードするデコーダと、
前記デコーダに接続された実行ユニットと、
を備え、
前記命令は、前記第3ソースオペランドを、前記第3の複数のデータ要素のそれぞれがマスク要素として用いられるマスクベクトルとして使用するものであり、
前記命令に応じて、前記実行ユニットは、
前記第3ソースオペランドのアクティブなマスク要素に対応して、前記第1の複数のデータ要素および前記第2の複数のデータ要素の対応するアクティブなデータ要素同士を比較し、
一致が存在する場合に、前記第3ソースオペランドのアクティブなマスク要素に対応して、前記第1の複数のデータ要素のうちアクティブなデータ要素を、前記第3の複数のデータ要素のうちの対応するデータ要素に置き換え、フラグをセットする
プロセッサ。 - 前記一致が存在しないと判断した前記実行ユニットは、前記第1の複数のデータ要素を、前記第2の複数のデータ要素上に格納する請求項14に記載のプロセッサ。
- 前記第1ソースオペランドは、512ビットを含む請求項14または15に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/644,529 | 2009-12-22 | ||
US12/644,529 US8996845B2 (en) | 2009-12-22 | 2009-12-22 | Vector compare-and-exchange operation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012517936A Division JP5421458B2 (ja) | 2009-12-22 | 2010-11-29 | Simdベクトルの同期 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014059902A JP2014059902A (ja) | 2014-04-03 |
JP5876458B2 true JP5876458B2 (ja) | 2016-03-02 |
Family
ID=44152784
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012517936A Expired - Fee Related JP5421458B2 (ja) | 2009-12-22 | 2010-11-29 | Simdベクトルの同期 |
JP2013240725A Expired - Fee Related JP5876458B2 (ja) | 2009-12-22 | 2013-11-21 | Simdベクトルの同期 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012517936A Expired - Fee Related JP5421458B2 (ja) | 2009-12-22 | 2010-11-29 | Simdベクトルの同期 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8996845B2 (ja) |
JP (2) | JP5421458B2 (ja) |
KR (1) | KR101461378B1 (ja) |
CN (2) | CN105094749A (ja) |
BR (1) | BRPI1005259A2 (ja) |
DE (1) | DE112010004963T5 (ja) |
GB (1) | GB2488619B (ja) |
TW (2) | TWI525539B (ja) |
WO (1) | WO2011087590A2 (ja) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US8996845B2 (en) | 2009-12-22 | 2015-03-31 | Intel Corporation | Vector compare-and-exchange operation |
WO2013048468A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
CN105955704B (zh) * | 2011-11-30 | 2018-12-04 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
US10318291B2 (en) | 2011-11-30 | 2019-06-11 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
US20140108480A1 (en) * | 2011-12-22 | 2014-04-17 | Elmoustapha Ould-Ahmed-Vall | Apparatus and method for vector compute and accumulate |
WO2013095609A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing conversion of a mask register into a vector register |
US9588764B2 (en) | 2011-12-23 | 2017-03-07 | Intel Corporation | Apparatus and method of improved extract instructions |
WO2013095617A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for propagating conditionally evaluated values in simd/vector execution |
WO2013095635A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction for merging mask patterns |
US9632980B2 (en) | 2011-12-23 | 2017-04-25 | Intel Corporation | Apparatus and method of mask permute instructions |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
US9619236B2 (en) | 2011-12-23 | 2017-04-11 | Intel Corporation | Apparatus and method of improved insert instructions |
US9658850B2 (en) | 2011-12-23 | 2017-05-23 | Intel Corporation | Apparatus and method of improved permute instructions |
WO2013095657A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
US9489196B2 (en) * | 2011-12-23 | 2016-11-08 | Intel Corporation | Multi-element instruction with different read and write masks |
CN104067224B (zh) * | 2011-12-23 | 2017-05-17 | 英特尔公司 | 在不同的粒度水平下对数据值进行广播和掩码的指令执行 |
CN107908427B (zh) | 2011-12-23 | 2021-11-09 | 英特尔公司 | 用于多维数组中的元素偏移量计算的指令 |
US20140019723A1 (en) * | 2011-12-28 | 2014-01-16 | Koichi Yamada | Binary translation in asymmetric multiprocessor system |
US9552313B2 (en) | 2011-12-28 | 2017-01-24 | Intel Corporation | Delivering real time interrupts with an advanced programmable interrupt controller |
WO2013101229A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Structure access processors, methods, systems, and instructions |
US9575753B2 (en) * | 2012-03-15 | 2017-02-21 | International Business Machines Corporation | SIMD compare instruction using permute logic for distributed register files |
US9405538B2 (en) * | 2012-12-28 | 2016-08-02 | Intel Corporation | Functional unit having tree structure to support vector sorting algorithm and other algorithms |
EP2965194A4 (en) * | 2013-03-05 | 2016-11-30 | Intel Corp | ANALYSIS OF POTENTIAL ADVANTAGES OF VECTORIZATION |
US9411593B2 (en) * | 2013-03-15 | 2016-08-09 | Intel Corporation | Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks |
US9405937B2 (en) | 2013-06-28 | 2016-08-02 | Intel Corporation | Method and apparatus for securing a dynamic binary translation system |
US9292298B2 (en) * | 2013-07-08 | 2016-03-22 | Arm Limited | Data processing apparatus having SIMD processing circuitry |
US9495155B2 (en) | 2013-08-06 | 2016-11-15 | Intel Corporation | Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment |
US9466091B2 (en) | 2013-09-26 | 2016-10-11 | Imagination Technologies Limited | Atomic memory update unit and methods |
US11257271B2 (en) | 2013-09-26 | 2022-02-22 | Imagination Technologies Limited | Atomic memory update unit and methods |
GB2520603B (en) * | 2013-09-26 | 2016-04-06 | Imagination Tech Ltd | Atomic memory update unit and methods |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
US9390023B2 (en) * | 2013-10-03 | 2016-07-12 | Cavium, Inc. | Method and apparatus for conditional storing of data using a compare-and-swap based approach |
US10445092B2 (en) * | 2014-12-27 | 2019-10-15 | Intel Corporation | Method and apparatus for performing a vector permute with an index and an immediate |
US9996350B2 (en) | 2014-12-27 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array |
US10528345B2 (en) * | 2015-03-27 | 2020-01-07 | Intel Corporation | Instructions and logic to provide atomic range modification operations |
US10019264B2 (en) * | 2016-02-24 | 2018-07-10 | Intel Corporation | System and method for contextual vectorization of instructions at runtime |
GB2549737B (en) * | 2016-04-26 | 2019-05-08 | Advanced Risc Mach Ltd | An apparatus and method for managing address collisions when performing vector operations |
WO2018022525A1 (en) * | 2016-07-27 | 2018-02-01 | Intel Corporation | System and method for multiplexing vector mask matches |
US20190155603A1 (en) * | 2016-07-27 | 2019-05-23 | Intel Corporation | System and method for multiplexing vector compare |
EP3336691B1 (en) * | 2016-12-13 | 2022-04-06 | ARM Limited | Replicate elements instruction |
EP3336692B1 (en) | 2016-12-13 | 2020-04-29 | Arm Ltd | Replicate partition instruction |
CN109542515B (zh) * | 2017-10-30 | 2021-06-25 | 上海寒武纪信息科技有限公司 | 运算装置及方法 |
US20210133854A1 (en) | 2018-09-13 | 2021-05-06 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
CN111258637B (zh) * | 2018-11-30 | 2022-08-05 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258639B (zh) * | 2018-11-30 | 2022-10-04 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258640B (zh) * | 2018-11-30 | 2022-10-04 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258642B (zh) * | 2018-11-30 | 2022-10-04 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258638B (zh) * | 2018-11-30 | 2022-10-04 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
US20200210181A1 (en) * | 2018-12-29 | 2020-07-02 | Intel Corporation | Apparatuses, methods, and systems for vector element sorting instructions |
US20200401412A1 (en) * | 2019-06-24 | 2020-12-24 | Intel Corporation | Hardware support for dual-memory atomic operations |
CN110515659B (zh) * | 2019-08-28 | 2021-10-01 | 中国人民解放军国防科技大学 | 一种原子指令的执行方法和装置 |
CN110515660B (zh) * | 2019-08-28 | 2021-08-06 | 中国人民解放军国防科技大学 | 一种加速原子指令执行的方法和装置 |
CN117561501A (zh) * | 2021-06-22 | 2024-02-13 | 华为技术有限公司 | 一种多线程数据处理方法及装置 |
CN115098165B (zh) * | 2022-06-13 | 2023-09-08 | 昆仑芯(北京)科技有限公司 | 数据处理方法、装置、芯片、设备及介质 |
CN118093143B (zh) * | 2024-04-12 | 2024-07-02 | 清华大学 | 大语言模型解码阶段的数据调度方法和装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4482956A (en) * | 1982-11-04 | 1984-11-13 | International Business Machines Corporation | Parallel queueing method |
JPS61288243A (ja) * | 1985-06-17 | 1986-12-18 | Fujitsu Ltd | コンペアアンドスワツプ命令処理方式 |
JPS6285372A (ja) | 1985-10-09 | 1987-04-18 | Nec Corp | マルチプロセツサシステムにおけるコンペアアンドスワツプ方式 |
US6460121B1 (en) * | 1998-09-14 | 2002-10-01 | Compaq Information Technologies Group, L.P. | Method for providing an atomic memory read using a compare-exchange instruction primitive |
US7308559B2 (en) * | 2000-02-29 | 2007-12-11 | International Business Machines Corporation | Digital signal processor with cascaded SIMD organization |
US6880071B2 (en) | 2001-04-09 | 2005-04-12 | Sun Microsystems, Inc. | Selective signalling of later reserve location memory fault in compound compare and swap |
US7107305B2 (en) | 2001-10-05 | 2006-09-12 | Intel Corporation | Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions |
CN100545804C (zh) * | 2003-08-18 | 2009-09-30 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微控制器及其指令集的实现方法 |
US8607241B2 (en) * | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
US7219213B2 (en) | 2004-12-17 | 2007-05-15 | Intel Corporation | Flag bits evaluation for multiple vector SIMD channels execution |
US7509463B2 (en) * | 2005-12-01 | 2009-03-24 | Sony Computer Entertainment, Inc. | Cell processor atomic compare and swap using dedicated synergistic processor element |
US20070260634A1 (en) * | 2006-05-04 | 2007-11-08 | Nokia Corporation | Apparatus, system, method, and computer program product for synchronizing the presentation of media content |
US7627723B1 (en) | 2006-09-21 | 2009-12-01 | Nvidia Corporation | Atomic memory operators in a parallel processor |
US7908255B2 (en) * | 2007-04-11 | 2011-03-15 | Microsoft Corporation | Transactional memory using buffered writes and enforced serialization order |
US8996845B2 (en) | 2009-12-22 | 2015-03-31 | Intel Corporation | Vector compare-and-exchange operation |
-
2009
- 2009-12-22 US US12/644,529 patent/US8996845B2/en not_active Expired - Fee Related
-
2010
- 2010-11-11 TW TW102143765A patent/TWI525539B/zh not_active IP Right Cessation
- 2010-11-11 TW TW099138849A patent/TWI427533B/zh not_active IP Right Cessation
- 2010-11-29 WO PCT/US2010/058238 patent/WO2011087590A2/en active Application Filing
- 2010-11-29 GB GB1119083.2A patent/GB2488619B/en not_active Expired - Fee Related
- 2010-11-29 JP JP2012517936A patent/JP5421458B2/ja not_active Expired - Fee Related
- 2010-11-29 DE DE112010004963T patent/DE112010004963T5/de not_active Withdrawn
- 2010-11-29 KR KR1020127019177A patent/KR101461378B1/ko not_active IP Right Cessation
- 2010-12-21 CN CN201510434397.XA patent/CN105094749A/zh active Pending
- 2010-12-21 CN CN201010619577.2A patent/CN102103570B/zh not_active Expired - Fee Related
- 2010-12-22 BR BRPI1005259-3A patent/BRPI1005259A2/pt not_active Application Discontinuation
-
2013
- 2013-11-21 JP JP2013240725A patent/JP5876458B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2488619B (en) | 2017-10-18 |
GB201119083D0 (ja) | 2011-12-21 |
JP2014059902A (ja) | 2014-04-03 |
WO2011087590A3 (en) | 2011-10-27 |
KR101461378B1 (ko) | 2014-11-20 |
BRPI1005259A2 (pt) | 2013-04-02 |
JP5421458B2 (ja) | 2014-02-19 |
WO2011087590A2 (en) | 2011-07-21 |
TWI525539B (zh) | 2016-03-11 |
CN105094749A (zh) | 2015-11-25 |
US8996845B2 (en) | 2015-03-31 |
US20110153989A1 (en) | 2011-06-23 |
DE112010004963T5 (de) | 2012-11-22 |
TWI427533B (zh) | 2014-02-21 |
GB2488619A (en) | 2012-09-05 |
KR20120096588A (ko) | 2012-08-30 |
CN102103570A (zh) | 2011-06-22 |
TW201140435A (en) | 2011-11-16 |
TW201428622A (zh) | 2014-07-16 |
JP2012531682A (ja) | 2012-12-10 |
CN102103570B (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5876458B2 (ja) | Simdベクトルの同期 | |
JP5366802B2 (ja) | 仮想化されたトランザクショナルメモリのグローバルオーバーフロー方法 | |
CN106648843B (zh) | 用于改善连续的事务性存储器区的吞吐量的***、方法和装置 | |
EP2430525B1 (en) | Load/store disjoint facility and instruction therefore | |
US9213665B2 (en) | Data processor for processing a decorated storage notify | |
CN108334400B (zh) | 为安全飞地管理存储器 | |
US9361233B2 (en) | Method and apparatus for shared line unified cache | |
US20070050560A1 (en) | Augmented instruction set for proactive synchronization within a computer system | |
KR20190108109A (ko) | 캐시 라인 로킹을 이용한 원자적 프리미트브들의 구현 | |
CN109791584B (zh) | 用于标识和避免虚拟机监视程序和客户虚拟机之间的跟踪冲突的处理器扩展 | |
US10768680B2 (en) | Hardware apparatuses and methods to perform transactional power management | |
JP2007157142A (ja) | 特定のspeを使ってcellプロセッサのアトミックなコンペア・アンド・スワップ命令を実行するための技術 | |
JP6005392B2 (ja) | ルーティングのための方法及び装置 | |
US9207940B2 (en) | Robust and high performance instructions for system call | |
CN108292268B (zh) | 用于分布式一致性存储器的***、方法和设备 | |
CN111095203A (zh) | 实时寄存器值的集群间通信 | |
US20090063881A1 (en) | Low-overhead/power-saving processor synchronization mechanism, and applications thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131224 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150331 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150630 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150730 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150930 |
|
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: 20151124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20151222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160121 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5876458 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |