JP2014197435A - 文字列を処理するための命令及び論理回路 - Google Patents
文字列を処理するための命令及び論理回路 Download PDFInfo
- Publication number
- JP2014197435A JP2014197435A JP2014150992A JP2014150992A JP2014197435A JP 2014197435 A JP2014197435 A JP 2014197435A JP 2014150992 A JP2014150992 A JP 2014150992A JP 2014150992 A JP2014150992 A JP 2014150992A JP 2014197435 A JP2014197435 A JP 2014197435A
- Authority
- JP
- Japan
- Prior art keywords
- data
- string
- operand
- packed
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000003860 storage Methods 0.000 claims description 28
- 230000002776 aggregation Effects 0.000 claims description 15
- 238000004220 aggregation Methods 0.000 claims description 15
- 238000007667 floating Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000003491 array Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 2
- 102000001332 SRC Human genes 0.000 description 2
- 108060006706 SRC Proteins 0.000 description 2
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 235000019580 granularity Nutrition 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method 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
- 238000012938 design process Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 235000019587 texture Nutrition 0.000 description 1
- 238000012546 transfer 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
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
-
- 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/3001—Arithmetic 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/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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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 or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】単一命令複数データ(SIMD)比較命令に応じて、第1のパックされたオペランドのすべての有効データ要素を第2のパックされたオペランドのすべての有効データ要素と比較するステップと、比較の第1の結果を記憶するステップとを有する、コンピュータにより実施される方法である。
【選択図】図4
Description
DEST1 <− SRC1 cmp SRC2;
1つのパック化したSIMDデータ演算対象について、この汎用演算を、各演算対象の各データ要素の位置に適用できる。
マイクロコントローラ、組み込みプロセッサ、グラフィックスデバイス、DSP、その他のタイプの論理回路において、実行ユニット108の別の実施形態を利用することもできる。システム100は、メモリ120を含む。メモリ120は、DRAM(dynamic random access memory)デバイス、SRAM(static random access memory)デバイス、フラッシュメモリデバイス、その他のメモリデバイスである。メモリ120は、プロセッサ102により実行できる、データ信号で表された命令及び/またはデータを格納できる。システム論理チップ116はプロセッサバス110とメモリ120に結合している。例示した実施形態では、システム論理チップ116はメモリコントローラハブ(MCH)である。プロセッサ102は、プロセッサバス110を介してMCH116と通信できる。MCH116は、命令とデータの格納、グラフィックスコマンド、データ、及びテクスチャの格納のために、メモリ120への広帯域幅メモリパス118を提供する。MCH116は、プロセッサ102、メモリ120、及びシステム100のその他のコンポーネントの間でデータ信号を方向付け(direct)、プロセッサバス110、メモリ120、及びシステムI/O122間のデータ信号をブリッジする。実施形態によっては、システム論理チップ116は、グラフィックスコントローラ112に結合するためのグラフィックスポートを提供する。MCH116は、メモリインターフェイス118を通してメモリ120に結合している。グラフィックスカード112は、AGP(Accelerated Graphics Port)インターコネクト114によりMCH116に結合されている。
(付記1) 命令を記憶した機械読み取り可能媒体であって、前記命令は、機械により実行されると、前記機械に
第1のパック化オペランドの各データ要素を、第2のパック化オペランドの各データ要素と比較する段階と、
前記比較の第1の結果を記憶する段階と
を含む方法を実行させる媒体。
(付記2) 前記第1のオペランドの有効データ要素のみを、前記第2のオペランドの有効データ要素のみと比較する、付記1に記載の機械読み取り可能媒体。
(付記3) 前記第1の結果は前記データ要素のいずれかが等しいかどうか示す、付記1に記載の機械読み取り可能媒体。
(付記4) 前記第1の結果は前記第1のオペランドに示された一範囲のデータ要素が、前記第2のオペランドに示された一範囲のデータ要素と等しいかどうか示す、付記1に記載の機械読み取り可能媒体。
(付記5) 前記第1の結果は前記第1のオペランドの各データ要素が、前記第2のオペランドの各データ要素と等しいかどうか示す、付記1に記載の機械読み取り可能媒体。
(付記6) 前記第1の結果は前記第1のオペランドのデータ要素の一部の順序が、前記第2のオペランドのデータ要素の一部の順序と等しいかどうか示す、付記1に記載の機械読み取り可能媒体。
(付記7) 前記第1の結果の一部をネゲートする、付記1に記載の機械読み取り可能媒体。
(付記8) 前記第1の結果は、マスク値またはインデックス値のいずれかにより表される、付記1に記載の機械読み取り可能媒体。
(付記9) 第1のオペランドの有効データ要素のみを、第2のオペランドの有効データ要素のみと比較する比較ロジックと、
前記比較ロジックを制御する第1の制御信号とを有する装置。
(付記10) 前記第1と第2のオペランドのデータ要素の有効性を明示的に示す、付記9に記載の装置。
(付記11) 前記第1と第2のオペランドのデータ要素の有効性を黙示的に示す、付記9に記載の装置。
(付記12) 前記第1の制御信号は、前記比較ロジックが符号付きまたは符号無しの値を比較するかどうか示す符号制御信号を含む、付記9に記載の装置。
(付記13) 前記第1の制御信号は、どれかが等しい、範囲が等しい、それぞれ等しい、不連続サブストリング、及び順序が等しいよりなるリストから選択した集約機能を前記比較ロジックが実行するかどうか示す集約機能信号を含む、付記12に記載の装置。
(付記14) 前記第1の制御信号は、ネゲート信号を含み、前記比較ロジックに前記比較の結果の少なくとも一部をネゲートさせる、付記13に記載の装置。
(付記15) 前記第1の制御信号は、前記比較ロジックが前記比較の結果のMSBまたはLSBのインデックスを生成するかどうか示すインデックス信号を含む、付記14に記載の装置。
(付記16) 前記第1の制御信号は、前記比較ロジックが前記比較の結果としてゼロ延長マスクまたは拡張マスクを生成するかどうかを示すマスク信号を含む、付記15に記載の装置。
(付記17) 前記第1の制御信号は、複数のビットを記憶する制御フィールドである、付記16に記載の装置。
(付記18) 単一命令複数データ(SIMD)比較命令を記憶する第1のメモリと、
前記SIMD比較命令を実行して、前記SIMD比較命令で示された第1と第2のオペランドのデータ要素を比較するプロセッサを有する、システム。
(付記19) 前記第1のオペランドを、第1のレジスタのアドレスにより前記命令内に示す、付記18に記載のシステム。
(付記20) 前記第2のオペランドを、メモリアドレスまたは第2のレジスタにより前記命令内に示す、付記19に記載のシステム。
(付記21) 前記命令は前記プロセッサに対する制御信号を示すイミーディエイトフィールドを含む、付記20に記載のシステム。
(付記22) イミーディエイトフィールドは、前記オペランドが符号付きバイト、符号無しバイト、符号付きワード、または符号無しワードを含むかどうかを示す、付記21に記載のシステム。
(付記23) 前記イミーディエイトフィールドは集約機能を前記プロセッサが実行することを示す、付記22に記載のシステム。
(付記24) 前記イミーディエイトフィールドは、マスクまたはインデックスを前記命令の実行に応じて生成するかどうかを示す、付記23に記載のシステム。
(付記25) 前記命令は、前記第1及び第2のオペランドの明示的に有効なデータ要素のみを比較させる、付記18に記載のシステム。
(付記26) 前記命令は、前記第1及び第2のオペランドの黙示的に有効なデータ要素のみを比較させる、付記18に記載のシステム。
(付記27) 第1のテキストストリングに対応する第1のパック化オペランドを記憶する第1の記憶領域と、
第2のテキストストリングに対応する第2のパック化オペランドを記憶する第2の記憶領域と、
前記第1のパック化オペランドのすべての有効データ要素を、前記第2のパック化オペランドのすべての有効データ要素と比較する比較ロジックと、
前記比較ロジックが実行した前記比較の結果アレイを記憶する第3の記憶領域と
を有するプロセッサ。
(付記28) 前記比較ロジックは値の2次元のアレイを生成し、前記アレイのエントリーは前記第1のパック化オペランドの有効なデータ要素と前記第2のパック化オペランドの有効なデータ要素との間の比較に対応する、付記27に記載のプロセッサ。
(付記29) 前記比較ロジックは、前記値の2次元のアレイに、いずれかが等しい、範囲が等しい、各々が等しい、非連続的サブストリング、及び順序が等しいよりなる集約機能の1つを実行する、付記28に記載のプロセッサ。
(付記30) 前記結果アレイは、マスク値またはインデックス値のいずれかにより表される、付記29に記載のプロセッサ。
Claims (7)
- コンピュータにより実施される方法であって、
第1のパックされたオペランド、第2のパックされたオペランド、及び中間バイトオペランドを指定する単一命令複数データ(SIMD)ストリング比較命令をデコードするステップと、
前記デコードされたSIMDストリング比較命令に応じて、第1のパックされたオペランドの、第1の黙示的に画定された長さを有する第1のストリングの各データ要素を、第2のパックされたオペランドの、第2の黙示的に画定された長さを有する第2のストリングの各データ要素と比較して、前記第1のストリングのデータ要素と前記第2のストリングのデータ要素との間の一致に対応する配列を生成するステップと、
前記配列に、前記中間バイトオペランドにより指定された集計関数を実行するステップと、
前記SIMDストリング比較命令の結果として、インデックスまたはマスクのうち一方を記憶するステップと、を有する方法。 - 前記集計関数は、どらかが等しい、範囲が等しい、それぞれ等しい、及び順序が等しいよりなるリストから選択される、請求項1に記載のコンピュータにより実施される方法。
- 前記第1のストリングの各データ要素と前記第2のストリングの各データ要素とは8ビットよりなる、請求項1または2に記載のコンピュータにより実施される方法。
- 前記第1のストリングの各データ要素と前記第2のストリングの各データ要素とは16ビットよりなる、請求項1または2に記載のコンピュータにより実施される方法。
- コンピュータにより実施される方法であって、
第1のパックされたオペランド、第2のパックされたオペランド、及び中間バイトオペランドを指定する単一命令複数データ(SIMD)ストリング比較命令をデコードするステップと、
前記デコードされたSIMDストリング比較命令に応じて、第1のパックされたオペランドの、第1の明示的に画定された長さを有する第1のストリングのすべてのデータ要素を、第2のパックされたオペランドの、第2の明示的に画定された長さを有する第2のストリングの各データ要素と比較して、前記第1のストリングのデータ要素と前記第2のストリングのデータ要素との間の一致に対応する配列を生成するステップと、
前記配列に、前記中間バイトオペランドにより指定された集計関数を実行するステップと、
前記SIMDストリング比較命令の結果として、インデックスまたはマスクのうち一方を記憶するステップと、を有する方法。 - 前記集計関数は、どらかが等しい、範囲が等しい、それぞれ等しい、及び順序が等しいよりなるリストから選択される、請求項5に記載のコンピュータにより実施される方法。
- 前記第1のストリングの各データ要素と前記第2のストリングの各データ要素とは、他の一記憶エリア内に記憶された明示的に有効なビットに対応する、請求項5または6に記載のコンピュータにより実施される方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/525,981 | 2006-09-22 | ||
US11/525,981 US9069547B2 (en) | 2006-09-22 | 2006-09-22 | Instruction and logic for processing text strings |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014003425A Division JP5837105B2 (ja) | 2006-09-22 | 2014-01-10 | 文字列を処理するための命令及び論理回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014197435A true JP2014197435A (ja) | 2014-10-16 |
JP6005696B2 JP6005696B2 (ja) | 2016-10-12 |
Family
ID=39200855
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009529420A Active JP5575477B2 (ja) | 2006-09-22 | 2007-09-21 | 文字列を処理するための命令及び論理回路 |
JP2014003425A Active JP5837105B2 (ja) | 2006-09-22 | 2014-01-10 | 文字列を処理するための命令及び論理回路 |
JP2014150992A Active JP6005696B2 (ja) | 2006-09-22 | 2014-07-24 | 文字列を処理するための命令及び論理回路 |
JP2015025309A Active JP6050399B2 (ja) | 2006-09-22 | 2015-02-12 | 文字列を処理するための命令及び論理回路 |
JP2015025301A Active JP6567285B2 (ja) | 2006-09-22 | 2015-02-12 | 文字列を処理するための命令及び論理回路 |
JP2015025307A Active JP6193281B2 (ja) | 2006-09-22 | 2015-02-12 | 文字列を処理するための命令及び論理回路 |
JP2017154302A Active JP6651485B2 (ja) | 2006-09-22 | 2017-08-09 | 文字列を処理するための命令及び論理回路 |
JP2019183764A Active JP7052171B2 (ja) | 2006-09-22 | 2019-10-04 | プロセッサ、システム及び方法 |
JP2022000310A Pending JP2022050519A (ja) | 2006-09-22 | 2022-01-04 | プロセッサ、システム及び方法 |
JP2022077419A Active JP7452930B2 (ja) | 2006-09-22 | 2022-05-10 | プロセッサ、システム及び方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009529420A Active JP5575477B2 (ja) | 2006-09-22 | 2007-09-21 | 文字列を処理するための命令及び論理回路 |
JP2014003425A Active JP5837105B2 (ja) | 2006-09-22 | 2014-01-10 | 文字列を処理するための命令及び論理回路 |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015025309A Active JP6050399B2 (ja) | 2006-09-22 | 2015-02-12 | 文字列を処理するための命令及び論理回路 |
JP2015025301A Active JP6567285B2 (ja) | 2006-09-22 | 2015-02-12 | 文字列を処理するための命令及び論理回路 |
JP2015025307A Active JP6193281B2 (ja) | 2006-09-22 | 2015-02-12 | 文字列を処理するための命令及び論理回路 |
JP2017154302A Active JP6651485B2 (ja) | 2006-09-22 | 2017-08-09 | 文字列を処理するための命令及び論理回路 |
JP2019183764A Active JP7052171B2 (ja) | 2006-09-22 | 2019-10-04 | プロセッサ、システム及び方法 |
JP2022000310A Pending JP2022050519A (ja) | 2006-09-22 | 2022-01-04 | プロセッサ、システム及び方法 |
JP2022077419A Active JP7452930B2 (ja) | 2006-09-22 | 2022-05-10 | プロセッサ、システム及び方法 |
Country Status (7)
Country | Link |
---|---|
US (20) | US9069547B2 (ja) |
JP (10) | JP5575477B2 (ja) |
KR (2) | KR101300362B1 (ja) |
CN (10) | CN101251791B (ja) |
BR (1) | BRPI0717068A2 (ja) |
DE (4) | DE102007063809B3 (ja) |
WO (1) | WO2008036945A1 (ja) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958181B2 (en) | 2006-09-21 | 2011-06-07 | Intel Corporation | Method and apparatus for performing logical compare operations |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7991987B2 (en) * | 2007-05-10 | 2011-08-02 | Intel Corporation | Comparing text strings |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US8200947B1 (en) * | 2008-03-24 | 2012-06-12 | Nvidia Corporation | Systems and methods for voting among parallel threads |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US9747105B2 (en) * | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US9003170B2 (en) * | 2009-12-22 | 2015-04-07 | Intel Corporation | Bit range isolation instructions, methods, and apparatus |
US9009447B2 (en) * | 2011-07-18 | 2015-04-14 | Oracle International Corporation | Acceleration of string comparisons using vector instructions |
EP2788901A1 (en) * | 2011-12-08 | 2014-10-15 | Oracle International Corporation | Techniques for maintaining column vectors of relational data within volatile memory |
WO2013095592A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Apparatus and method for vector compute and accumulate |
WO2013095631A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing a butterfly horizontal and cross add or substract in response to a single instruction |
WO2013095637A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of improved permute instructions |
US20140281369A1 (en) * | 2011-12-23 | 2014-09-18 | Ashish Jha | Apparatus and method for sliding window data gather |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
CN104067224B (zh) * | 2011-12-23 | 2017-05-17 | 英特尔公司 | 在不同的粒度水平下对数据值进行广播和掩码的指令执行 |
CN104081336B (zh) * | 2011-12-23 | 2018-10-23 | 英特尔公司 | 用于检测向量寄存器内的相同元素的装置和方法 |
US9619236B2 (en) | 2011-12-23 | 2017-04-11 | Intel Corporation | Apparatus and method of improved insert instructions |
US9448765B2 (en) | 2011-12-28 | 2016-09-20 | Intel Corporation | Floating point scaling processors, methods, systems, and instructions |
CN104025029A (zh) * | 2011-12-30 | 2014-09-03 | 英特尔公司 | 唯一打包数据元素标识处理器、方法、系统、和指令 |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9575753B2 (en) | 2012-03-15 | 2017-02-21 | International Business Machines Corporation | SIMD compare instruction using permute logic for distributed register files |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9317285B2 (en) | 2012-04-30 | 2016-04-19 | Apple Inc. | Instruction set architecture mode dependent sub-size access of register with associated status indication |
US8838997B2 (en) * | 2012-09-28 | 2014-09-16 | Intel Corporation | Instruction set for message scheduling of SHA256 algorithm |
US9268567B2 (en) | 2012-09-30 | 2016-02-23 | Intel Corporation | Instruction and logic for boyer-moore search of text strings |
US9804839B2 (en) * | 2012-12-28 | 2017-10-31 | Intel Corporation | Instruction for determining histograms |
US20140281418A1 (en) * | 2013-03-14 | 2014-09-18 | Shihjong J. Kuo | Multiple Data Element-To-Multiple Data Element Comparison Processors, Methods, Systems, and Instructions |
US9207941B2 (en) * | 2013-03-15 | 2015-12-08 | Intel Corporation | Systems, apparatuses, and methods for reducing the number of short integer multiplications |
JP6160259B2 (ja) | 2013-05-30 | 2017-07-12 | 富士通株式会社 | 文字列探索方法、文字列探索装置および文字列探索プログラム |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US11113054B2 (en) | 2013-09-10 | 2021-09-07 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression |
US9639369B2 (en) | 2013-11-11 | 2017-05-02 | Apple Inc. | Split register file for operands of different sizes |
US10191743B2 (en) * | 2013-12-29 | 2019-01-29 | Intel Corporation | Versatile packed data comparison processors, methods, systems, and instructions |
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 |
US9772848B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9891913B2 (en) * | 2014-12-23 | 2018-02-13 | Intel Corporation | Method and apparatus for performing conflict detection using vector comparison operations |
US10203955B2 (en) * | 2014-12-31 | 2019-02-12 | Intel Corporation | Methods, apparatus, instructions and logic to provide vector packed tuple cross-comparison functionality |
GB2546465B (en) * | 2015-06-05 | 2018-02-28 | Advanced Risc Mach Ltd | Modal processing of program instructions |
US10423411B2 (en) | 2015-09-26 | 2019-09-24 | Intel Corporation | Data element comparison processors, methods, systems, and instructions |
US9996361B2 (en) * | 2015-12-23 | 2018-06-12 | Intel Corporation | Byte and nibble sort instructions that produce sorted destination register and destination index mapping |
US11106467B2 (en) * | 2016-04-28 | 2021-08-31 | Microsoft Technology Licensing, Llc | Incremental scheduler for out-of-order block ISA processors |
CN106201440B (zh) * | 2016-06-28 | 2018-10-23 | 上海兆芯集成电路有限公司 | 字符串比较指令优化的中央处理单元以及其操作方法 |
CN109313552A (zh) * | 2016-07-27 | 2019-02-05 | 英特尔公司 | 用于复用向量比较的系统和方法 |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
CN106649836B (zh) * | 2016-12-29 | 2019-11-29 | 武汉新芯集成电路制造有限公司 | 一种基于硬件查找表的模式字符的查找方法 |
US10423191B2 (en) * | 2017-01-19 | 2019-09-24 | International Business Machines Corporation | Clock comparator sign control |
US10620956B2 (en) | 2017-03-03 | 2020-04-14 | International Business Machines Corporation | Search string processing via inline decode-based micro-operations expansion |
US10789069B2 (en) | 2017-03-03 | 2020-09-29 | International Business Machines Corporation | Dynamically selecting version of instruction to be executed |
US10613862B2 (en) | 2017-03-03 | 2020-04-07 | International Business Machines Corporation | String sequence operations with arbitrary terminators |
US10564965B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Compare string processing via inline decode-based micro-operations expansion |
US10564967B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Move string processing via inline decode-based micro-operations expansion |
US10255068B2 (en) | 2017-03-03 | 2019-04-09 | International Business Machines Corporation | Dynamically selecting a memory boundary to be used in performing operations |
US10324716B2 (en) | 2017-03-03 | 2019-06-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
US10678506B2 (en) * | 2017-08-01 | 2020-06-09 | Arm Limited | Matching consecutive values in a data processing apparatus |
CN107832058B (zh) * | 2017-10-31 | 2022-01-18 | 北京小米移动软件有限公司 | 数据处理方法及装置 |
US10691457B1 (en) | 2017-12-13 | 2020-06-23 | Apple Inc. | Register allocation using physical register file bypass |
JP6705473B2 (ja) * | 2018-06-22 | 2020-06-03 | 日本電気株式会社 | 演算装置及び演算システム |
CN112631657B (zh) * | 2019-09-24 | 2024-06-11 | 阿里巴巴集团控股有限公司 | 用于字符串处理的字节比较方法以及指令处理装置 |
CN111209041B (zh) * | 2019-12-31 | 2022-05-17 | Oppo广东移动通信有限公司 | 神经网络处理器、片上系统及电子设备 |
US11809558B2 (en) * | 2020-09-25 | 2023-11-07 | Advanced Micro Devices, Inc. | Hardware security hardening for processor devices |
GB2599652B (en) * | 2020-10-06 | 2023-01-18 | Advanced Risc Mach Ltd | Masked-vector-comparison instruction |
US11880263B2 (en) | 2021-05-13 | 2024-01-23 | Meta Platforms, Inc. | Systems having disaggregated components coupled by optical media |
KR102370851B1 (ko) | 2021-08-18 | 2022-03-07 | 주식회사 로그프레소 | 벡터 연산 명령어를 통해 문자열을 고속으로 추출하는 방법 |
CN114675890B (zh) * | 2022-05-26 | 2022-09-23 | 飞腾信息技术有限公司 | 一种指令执行方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0696124A (ja) * | 1992-09-11 | 1994-04-08 | Sumitomo Metal Ind Ltd | 情報検索装置 |
WO1994029790A1 (en) * | 1993-06-14 | 1994-12-22 | Apple Computer, Inc. | Method and apparatus for finding a termination character within a variable length character string or a processor |
US20080046683A1 (en) * | 2006-08-18 | 2008-02-21 | Lucian Codrescu | System and method of processing data using scalar/vector instructions |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4068299A (en) * | 1973-12-13 | 1978-01-10 | Honeywell Information Systems, Inc. | Data processing system incorporating a logical compare instruction |
JPS57170344A (en) | 1981-04-09 | 1982-10-20 | Fujitsu Ltd | Paper jointer |
JPS5856207A (ja) | 1981-09-30 | 1983-04-02 | Hitachi Ltd | Ram制御装置 |
JPH0232663B2 (ja) | 1981-09-30 | 1990-07-23 | Fujitsu Ltd | Jokentsukihikakuenzansochi |
JPS58106636A (ja) | 1981-12-18 | 1983-06-25 | Hitachi Ltd | パイプライン演算装置 |
JPS617976A (ja) | 1984-06-22 | 1986-01-14 | Mitsubishi Electric Corp | ベクトル演算処理装置 |
US5210833A (en) | 1985-11-08 | 1993-05-11 | Nec Corporation | System for selectively masking data in a branch address register and replacing the microinstruction address register by the masked data |
JPH0731669B2 (ja) | 1986-04-04 | 1995-04-10 | 株式会社日立製作所 | ベクトル・プロセツサ |
JPS6320628A (ja) * | 1986-07-15 | 1988-01-28 | Nec Corp | 記号列グル−プ分類方式 |
JPH0743672B2 (ja) | 1987-02-18 | 1995-05-15 | 株式会社東芝 | メモリ保護違反検出装置 |
JPH01271875A (ja) | 1988-04-22 | 1989-10-30 | Nec Corp | ベクトル演算制御方式 |
JP2790466B2 (ja) | 1988-10-18 | 1998-08-27 | 株式会社日立製作所 | 文字列検索方法及び装置 |
JPH0769811B2 (ja) | 1988-12-21 | 1995-07-31 | 松下電器産業株式会社 | データ処理装置 |
US5125092A (en) | 1989-01-09 | 1992-06-23 | International Business Machines Corporation | Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes |
CA2045773A1 (en) | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
US5138669A (en) * | 1990-06-29 | 1992-08-11 | Hitachi, Ltd. | Range-conditional character string retrieving method and system |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
US5553309A (en) * | 1991-11-08 | 1996-09-03 | Japan Atomic Energy Research Institute | Device for high speed evaluation of logical expressions and high speed vector operations |
JP2665111B2 (ja) * | 1992-06-18 | 1997-10-22 | 日本電気株式会社 | ベクトル処理装置 |
JPH0617976A (ja) | 1992-06-29 | 1994-01-25 | Mitsubishi Plastics Ind Ltd | メカニカル継手 |
US6131092A (en) | 1992-08-07 | 2000-10-10 | Masand; Brij | System and method for identifying matches of query patterns to document text in a document textbase |
JPH06162067A (ja) | 1992-11-24 | 1994-06-10 | Hitachi Ltd | ベクトル命令制御装置および制御方法 |
GB2273377A (en) | 1992-12-11 | 1994-06-15 | Hughes Aircraft Co | Multiple masks for array processors |
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 |
US5465374A (en) | 1993-01-12 | 1995-11-07 | International Business Machines Corporation | Processor for processing data string by byte-by-byte |
US5519649A (en) | 1993-06-04 | 1996-05-21 | Nippon Steel Corporation | Micro-processor having rapid condition comparison function |
JPH07114469A (ja) * | 1993-10-18 | 1995-05-02 | Mitsubishi Electric Corp | データ処理装置 |
EP0681236B1 (en) | 1994-05-05 | 2000-11-22 | Conexant Systems, Inc. | Space vector data path |
IT1268611B1 (it) * | 1994-09-30 | 1997-03-06 | Finmeccanica Spa | Coprocessore per riconoscimento caratteri |
US5717952A (en) | 1994-11-16 | 1998-02-10 | Apple Computer, Inc. | DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command |
US5724572A (en) * | 1994-11-18 | 1998-03-03 | International Business Machines Corporation | Method and apparatus for processing null terminated character strings |
CN1094610C (zh) | 1994-12-02 | 2002-11-20 | 英特尔公司 | 可以对复合操作数进行压缩操作和拆开操作的微处理器 |
US5819101A (en) | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
US5634119A (en) | 1995-01-06 | 1997-05-27 | International Business Machines Corporation | Computer processing unit employing a separate millicode branch history table |
JP2931890B2 (ja) | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
CN103345380B (zh) | 1995-08-31 | 2016-05-18 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
US5884059A (en) | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US5991874A (en) | 1996-06-06 | 1999-11-23 | Intel Corporation | Conditional move using a compare instruction generating a condition field |
JPH1056027A (ja) | 1996-08-09 | 1998-02-24 | Furukawa Electric Co Ltd:The | 素子接合装置 |
US6058465A (en) | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
TW380237B (en) * | 1996-09-23 | 2000-01-21 | Advanced Risc Mach Ltd | Data processing system register control |
US6377970B1 (en) | 1998-03-31 | 2002-04-23 | Intel Corporation | Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry |
GB2338094B (en) | 1998-05-27 | 2003-05-28 | Advanced Risc Mach Ltd | Vector register addressing |
EP1044407B1 (en) | 1998-10-09 | 2014-02-26 | Koninklijke Philips N.V. | Vector data processor with conditional instructions |
US6292886B1 (en) | 1998-10-12 | 2001-09-18 | Intel Corporation | Scalar hardware for performing SIMD operations |
US6430557B1 (en) * | 1998-12-16 | 2002-08-06 | Xerox Corporation | Identifying a group of words using modified query words obtained from successive suffix relationships |
DE69930544T2 (de) | 1998-12-16 | 2007-01-25 | Matsushita Electric Industrial Co., Ltd., Kadoma | Verfahren und vorrichtung für bedingte vektoroperationen |
US6282628B1 (en) | 1999-02-24 | 2001-08-28 | International Business Machines Corporation | Method and system for a result code for a single-instruction multiple-data predicate compare operation |
US6356951B1 (en) * | 1999-03-01 | 2002-03-12 | Sun Microsystems, Inc. | System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction |
US6745336B1 (en) | 1999-05-20 | 2004-06-01 | Princeton University | System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating |
US6470440B1 (en) | 1999-05-20 | 2002-10-22 | International Business Machines Corporation | Vector compare and maximum/minimum generation apparatus and method therefor |
GB2355084B (en) | 1999-07-21 | 2004-04-28 | Element 14 Ltd | Setting condition values in a computer |
US6421696B1 (en) | 1999-08-17 | 2002-07-16 | Advanced Micro Devices, Inc. | System and method for high speed execution of Fast Fourier Transforms utilizing SIMD instructions on a general purpose processor |
US6484255B1 (en) | 1999-09-20 | 2002-11-19 | Intel Corporation | Selective writing of data elements from packed data based upon a mask using predication |
JP2001282820A (ja) | 2000-01-25 | 2001-10-12 | Sony Corp | データ圧縮方法、検索方法、検索装置、データパケット信号および記録媒体 |
US20050228595A1 (en) * | 2001-05-25 | 2005-10-13 | Cooke Laurence H | Processors for multi-dimensional sequence comparisons |
US6986025B2 (en) * | 2001-06-11 | 2006-01-10 | Broadcom Corporation | Conditional execution per lane |
US7861071B2 (en) | 2001-06-11 | 2010-12-28 | Broadcom Corporation | Conditional branch instruction capable of testing a plurality of indicators in a predicate register |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US20030167460A1 (en) | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
US6928605B2 (en) | 2002-03-29 | 2005-08-09 | Intel Corporation | Add-compare-select accelerator using pre-compare-select-add operation |
US7793084B1 (en) | 2002-07-22 | 2010-09-07 | Mimar Tibet | Efficient handling of vector high-level language conditional constructs in a SIMD processor |
AU2003256870A1 (en) | 2002-08-09 | 2004-02-25 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
US6986023B2 (en) | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
JP3958662B2 (ja) * | 2002-09-25 | 2007-08-15 | 松下電器産業株式会社 | プロセッサ |
US7103756B2 (en) * | 2002-09-30 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Data processor with individually writable register subword locations |
US7003653B2 (en) * | 2002-10-21 | 2006-02-21 | Sun Microsystems, Inc. | Method for rapid interpretation of results returned by a parallel compare instruction |
JP2004145493A (ja) | 2002-10-23 | 2004-05-20 | Hiroshima Industrial Promotion Organization | マッチング演算回路 |
JP3837386B2 (ja) * | 2003-02-18 | 2006-10-25 | 誠 小川 | 情報処理装置 |
US7472258B2 (en) | 2003-04-21 | 2008-12-30 | International Business Machines Corporation | Dynamically shared group completion table between multiple threads |
US20040252547A1 (en) * | 2003-06-06 | 2004-12-16 | Chengpu Wang | Concurrent Processing Memory |
US7689641B2 (en) * | 2003-06-30 | 2010-03-30 | Intel Corporation | SIMD integer multiply high with round and shift |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
CN101299185B (zh) * | 2003-08-18 | 2010-10-06 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器结构 |
US7475393B2 (en) | 2003-08-29 | 2009-01-06 | Motorola, Inc. | Method and apparatus for parallel computations with incomplete input operands |
US7315935B1 (en) | 2003-10-06 | 2008-01-01 | Advanced Micro Devices, Inc. | Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots |
GB2409064B (en) * | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing in parallel a data processing operation on data elements |
GB2409065B (en) * | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
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 |
GB2409067B (en) | 2003-12-09 | 2006-12-13 | Advanced Risc Mach Ltd | Endianess compensation within a SIMD data processing system |
GB2409062C (en) * | 2003-12-09 | 2007-12-11 | Advanced Risc Mach Ltd | Aliasing data processing registers |
US6915300B1 (en) | 2003-12-19 | 2005-07-05 | Xerox Corporation | Method and system for searching indexed string containing a search string |
CN1297888C (zh) * | 2004-03-03 | 2007-01-31 | 浙江大学 | 32位媒体数字信号处理器 |
JP4129981B2 (ja) * | 2004-04-02 | 2008-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 |
US20050251644A1 (en) | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
GB2414308B (en) * | 2004-05-17 | 2007-08-15 | Advanced Risc Mach Ltd | Program instruction compression |
US7284092B2 (en) | 2004-06-24 | 2007-10-16 | International Business Machines Corporation | Digital data processing apparatus having multi-level register file |
EP1622009A1 (en) | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
US7434034B2 (en) * | 2004-09-13 | 2008-10-07 | Ati Technologies Inc. | SIMD processor executing min/max instructions |
US7237094B2 (en) * | 2004-10-14 | 2007-06-26 | International Business Machines Corporation | Instruction group formation and mechanism for SMT dispatch |
US20060101256A1 (en) | 2004-10-20 | 2006-05-11 | Dwyer Michael K | Looping instructions for a single instruction, multiple data execution engine |
US7565514B2 (en) * | 2006-04-28 | 2009-07-21 | Freescale Semiconductor, Inc. | Parallel condition code generation for SIMD operations |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7536532B2 (en) * | 2006-09-27 | 2009-05-19 | International Business Machines Corporation | Merge operations of data arrays based on SIMD instructions |
US20140280271A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Instruction and logic for processing text strings |
JP6329412B2 (ja) * | 2014-03-26 | 2018-05-23 | 株式会社メガチップス | Simdプロセッサ |
JP6162067B2 (ja) | 2014-03-27 | 2017-07-12 | 東レ株式会社 | 繊維製品の処理装置 |
-
2006
- 2006-09-22 US US11/525,981 patent/US9069547B2/en active Active
-
2007
- 2007-09-21 WO PCT/US2007/079234 patent/WO2008036945A1/en active Application Filing
- 2007-09-21 JP JP2009529420A patent/JP5575477B2/ja active Active
- 2007-09-21 BR BRPI0717068 patent/BRPI0717068A2/pt not_active Application Discontinuation
- 2007-09-21 KR KR1020117006958A patent/KR101300362B1/ko active IP Right Grant
- 2007-09-21 KR KR1020097005793A patent/KR101105030B1/ko active IP Right Grant
- 2007-09-24 CN CN200710305776.4A patent/CN101251791B/zh active Active
- 2007-09-24 CN CN201410826057.7A patent/CN104484157B/zh active Active
- 2007-09-24 CN CN201610875178.XA patent/CN107015784B/zh active Active
- 2007-09-24 CN CN201110022470.4A patent/CN102073478B/zh active Active
- 2007-09-24 CN CN201410452395.9A patent/CN105607890B/zh active Active
- 2007-09-24 DE DE102007063809.6A patent/DE102007063809B3/de active Active
- 2007-09-24 CN CN201410822302.7A patent/CN104657113B/zh active Active
- 2007-09-24 CN CN201210381275.5A patent/CN102999315B/zh active Active
- 2007-09-24 DE DE102007045496.3A patent/DE102007045496B4/de active Active
- 2007-09-24 CN CN201410820208.8A patent/CN104657112B/zh active Active
- 2007-09-24 DE DE102007063894.0A patent/DE102007063894B3/de active Active
- 2007-09-24 CN CN202210391590.XA patent/CN115048144A/zh active Pending
- 2007-09-24 DE DE102007063911.4A patent/DE102007063911B3/de active Active
- 2007-09-24 CN CN201810003932.XA patent/CN108052348B/zh active Active
-
2011
- 2011-06-20 US US13/164,715 patent/US9063720B2/en active Active
-
2012
- 2012-12-20 US US13/721,819 patent/US8825987B2/en active Active
- 2012-12-20 US US13/721,725 patent/US8819394B2/en active Active
-
2013
- 2013-03-15 US US13/843,576 patent/US9448802B2/en active Active
-
2014
- 2014-01-10 JP JP2014003425A patent/JP5837105B2/ja active Active
- 2014-07-24 JP JP2014150992A patent/JP6005696B2/ja active Active
- 2014-12-05 US US14/562,618 patent/US9495160B2/en active Active
- 2014-12-05 US US14/562,632 patent/US9740489B2/en active Active
- 2014-12-05 US US14/562,641 patent/US9720692B2/en active Active
- 2014-12-05 US US14/562,609 patent/US9645821B2/en active Active
- 2014-12-05 US US14/562,624 patent/US9804848B2/en active Active
- 2014-12-05 US US14/562,637 patent/US9632784B2/en active Active
- 2014-12-18 US US14/576,124 patent/US9703564B2/en active Active
- 2014-12-18 US US14/576,136 patent/US9772847B2/en active Active
- 2014-12-18 US US14/576,101 patent/US9772846B2/en active Active
- 2014-12-18 US US14/576,147 patent/US9740490B2/en active Active
-
2015
- 2015-02-12 JP JP2015025309A patent/JP6050399B2/ja active Active
- 2015-02-12 JP JP2015025301A patent/JP6567285B2/ja active Active
- 2015-02-12 JP JP2015025307A patent/JP6193281B2/ja active Active
-
2017
- 2017-08-09 JP JP2017154302A patent/JP6651485B2/ja active Active
- 2017-10-30 US US15/797,524 patent/US10261795B2/en active Active
-
2019
- 2019-04-15 US US16/384,865 patent/US10929131B2/en active Active
- 2019-06-29 US US16/458,012 patent/US11023236B2/en active Active
- 2019-06-29 US US16/458,014 patent/US11029955B2/en active Active
- 2019-10-04 JP JP2019183764A patent/JP7052171B2/ja active Active
-
2021
- 2021-06-07 US US17/341,330 patent/US11537398B2/en active Active
-
2022
- 2022-01-04 JP JP2022000310A patent/JP2022050519A/ja active Pending
- 2022-05-10 JP JP2022077419A patent/JP7452930B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0696124A (ja) * | 1992-09-11 | 1994-04-08 | Sumitomo Metal Ind Ltd | 情報検索装置 |
WO1994029790A1 (en) * | 1993-06-14 | 1994-12-22 | Apple Computer, Inc. | Method and apparatus for finding a termination character within a variable length character string or a processor |
US20080046683A1 (en) * | 2006-08-18 | 2008-02-21 | Lucian Codrescu | System and method of processing data using scalar/vector instructions |
Non-Patent Citations (1)
Title |
---|
JPN6013002860; freescale semiconductor: "AltiVec TechnologyProgramming Interface Manual" Rev.0, 199906, pages:50,51,179,180,205,225, freescale semiconductor * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7452930B2 (ja) | プロセッサ、システム及び方法 | |
KR101300431B1 (ko) | 내적 연산을 수행하기 위한 명령 및 논리 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140724 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150811 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20151106 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20151208 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160212 |
|
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: 20160809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160907 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6005696 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |