JP2017079083A - 論理比較動作を実行するための装置 - Google Patents
論理比較動作を実行するための装置 Download PDFInfo
- Publication number
- JP2017079083A JP2017079083A JP2016255721A JP2016255721A JP2017079083A JP 2017079083 A JP2017079083 A JP 2017079083A JP 2016255721 A JP2016255721 A JP 2016255721A JP 2016255721 A JP2016255721 A JP 2016255721A JP 2017079083 A JP2017079083 A JP 2017079083A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instruction
- packed
- bit
- data
- 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
- 238000007667 floating Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 15
- 230000000295 complement effect Effects 0.000 abstract description 23
- 238000012545 processing Methods 0.000 description 126
- 238000000034 method Methods 0.000 description 57
- 230000008569 process Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 14
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 7
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007429 general method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000001066 destructive effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 101100534223 Caenorhabditis elegans src-1 gene Proteins 0.000 description 1
- 101100514059 Escherichia coli (strain K12) modE gene Proteins 0.000 description 1
- 102000001332 SRC Human genes 0.000 description 1
- 108060006706 SRC Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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/22—Microcontrol or microprogram 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/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
- 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/02—Comparing digital values
-
- 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/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- 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/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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/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/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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
- 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
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)
Abstract
【解決手段】メモリは、第1のデータおよび第2のデータを格納する。プロセッサは、第1および第2のデータの論理比較を実行する。論理比較は、第1および第2のデータの各ビットに実行されてもよく、または特定のビットだけに実行されてもよい。少なくとも、第1のデータはパックド・データエレメントを含む。論理比較はパックド・データエレメントの最上位ビットに実行される。論理比較は、第1および第2のデータの同じそれぞれのビットの比較を含む。更に、第1のデータのビットと第2のデータの対応ビットの補数との論理比較を含む。これらの比較に基づいて、分岐サポートが実行される。そして、それは分岐ユニットによって次々に利用されてもよい。あるいは、分岐サポートは、示された目的コード位置への分岐を含んでもよい。
【選択図】図1a
Description
[定義]
ビット XからビットY:2進数のサブフィールドを定義する。例えば、バイト001110102(基数2)のビット6からからビットゼロは、サブフィールド1110102を表す。ここで、二進数の後についている「2」は、数字が2を基数とすることを意味する。したがって、10002は810と等しい。また、F16は、1510と等しい。
Rx:レジスタを表す。レジスタは、データを格納し、かつ提供することができるいかなるデバイスでもよい。レジスタの更なる機能については後述する。レジスタが必ずしも同じダイ、あるいは、プロセッサと同じパッケージに含まれていなくてもよい。
SRCおよびDEST:記憶領域(例えば、メモリーアドレス、レジスタ、その他)を表す。
Source1―iおよびResult1―iおよびDestin:データを表す。
本願は、パックドまたはアンパックド・データの論理的比較動作のためのプロセッサ命令を含む方法、装置およびシステムの実施例が記載されている。より詳細には、命令は、論理的にデータを比較し、そして、その比較に基づいて、ゼロおよびキャリーフラグをセットしてもよい。少なくとも1つの実施例において、2つの論理的比較動作は、以下の表1aおよび表1bに示すように、単一の命令を使用して実行される。比較動作は、以下の処理を含む。すなわち、デスティネーションとソースオペランドとのビット毎の論理積と、および、デスティネーションの補数とソースオペランドとのビット毎の論理積を含む。表1aは開示された論理的比較動作の一実施例の簡略化された代表例を示す。一方、表1bは開示された論理的比較命令の実施例のビットレベルの例を示す。例示として、値を付記している。表1aおよび1bにおいて例示される実施例は、パックド・データを例示しているが、ソースおよびデスティネーションオペランドのデータはいかなるデータ表現でもよい、すなわち、必ずしもパックド・データでなければならないわけではない。ソースおよび/またはデスティネーションオペランドのデータが128ビットの単一のエントリーである。このため「パックド」データとして捉えられない。このため、本願明細書では、「アンパックド」データと呼ぶこととする。このことは、必ずしも単にデータがコンポーネント表現に再分割されていなくてもよく、単一のデータ値として捉えてもよいことを意味する。説明を簡単にするため、表1aのデータは32ビット値として表される。当業者は表1aおよび表1bにおいて例示されているコンセプトは、いかなる長さのデータにも適用されることを理解するであろう。たとえば、もっと短いデータ長(例えば、4ビット、8ビット、および16ビットの長さ)および、もっと長いデータ長(例えば、64ビットおよび128ビットの長さ)である。
[コンピュータシステム]
[データ記憶フォーマット]
[論理的比較、ゼロおよびキャリーフラッグ設定オペレーション]
[論理的比較、ゼロおよびキャリーフラッグ設定回路]
ここでyは、0x8、0x9、0xAまたは0xBである。3バイトエスケープオペコード値として値「0x0F38」を含むLCSZC命令オペコードの特定の実施例が本願明細書において開示される。なお、かかる開示は制限するものとして解釈されてはならない。他の実施例は、他のエスケープオペコード値を利用してもよい。
“マスクの下のすべてが「0」である場合、ZFをセットせよ;マスクの下のすべてが「1」である場合、CFをセットせよ”
一方、マスク値として第1の引数(デスティネーション)を使用するときに、結果として生じる動作は次のようになる。
“マスクの下のすべてが「1」である場合、ZFをセットせよ;マスクの下のすべてが「0」である場合、CFをセットせよ”
[別の実施例]
Claims (22)
- SIMDコプロセッサの第1の比較命令及び第2の比較命令をデコードするデコーダであって、該第1の比較命令及び該第2の比較命令の各々は、それぞれの第1ソースオペランドを指定する第1のフィールドと、それぞれの第2のソースオペランドを指定する第2のフィールドとを有する、デコーダと;
整数レジスタと浮動小数点レジスタとを含む複数のレジスタと;
前記複数のレジスタと接続されている実行ユニットであって:
パックド・データの一致を判断する比較命令としての前記第1の比較命令のデコードに応答して、前記第1の比較命令の第1のソースオペランド及び第2のソースオペランドのそれぞれのパックドデータコンポーネントのペアの第1の複数の比較によって、それぞれのマスク値を含む第1のパックド結果を生成し、かつ、
前記第2の比較命令をデコードするデコーダに応答して、前記第2の比較命令の第1のソースオペランド及び第2のソースオペランドのそれぞれのパックドデータコンポーネントのペアの第2の複数の比較によって、分岐サポートを実行する、
実行ユニットと;
前記第2の比較命令に応答して前記実行ユニットにより実行された分岐サポートの結果で、1つ以上の構造上可視であるステータスフラッグの値を含む複数の状態ビットを保存するステータスレジスタと;
を有するプロセッサ。 - 前記第2の複数の比較は、前記第2の比較命令の第1のソースオペランド及び第2のソースオペランドのそれぞれのパックド単精度浮動小数点データコンポーネントのペアによりなされる、請求項1記載のプロセッサ。
- 前記分岐サポートの実行は、前記比較の少なくとも1つに基づいて、前記ステータスフラッグの値を修正することを含む、請求項2記載のプロセッサ。
- 前記分岐サポートの実行は、前記比較の少なくとも1つに基づいて、目的コード位置に分岐することを含む、請求項2記載のプロセッサ。
- 前記比較が実行された結果によって、ステータスフラッグは設定されない、請求項4記載のプロセッサ。
- 前記ステータスレジスタが保存する前記複数の状態ビットは、トラップビットを含む、請求項4記載のプロセッサ。
- 前記ステータスレジスタが保存する前記複数の状態ビットは、イネーブルビットを含む、請求項4記載のプロセッサ。
- 前記ステータスレジスタが保存する前記複数の状態ビットは、オーバフロービットを含む、請求項4記載のプロセッサ。
- 前記分岐サポートの実行は、前記第2の複数の比較のうちの1つに基づいて、前記ステータスレジスタの第1の状態ビットを修正すること、及び、前記第2の比較命令に応答して、前記第2の複数の比較の他のものに基づいて、前記ステータスレジスタの第2の状態ビットを修正することを含む、請求項2記載のプロセッサ。
- 前記分岐サポートの実行は、前記第1の状態ビットの前記値に基づいて、第1の分岐オペレーションを実行すること、及び、前記第2の状態ビットの前記値に基づいて第2の分岐オペレーションを実行することを含む、請求項9記載のプロセッサ。
- 前記第1の複数の比較は、前記第1の比較命令の第1のソースオペランド及び第2のソースオペランドのそれぞれのパックド32ビットデータコンポーネントのペアによりなされる、請求項1記載のプロセッサ。
- それぞれのマスク値を含む前記第1のパックド結果は、前記第2の比較命令の第1のソースオペランド又は第2のソースオペランドの少なくとも1つとして前記実行ユニットによって保存される、請求項11記載のプロセッサ。
- 前記第2の複数の比較は、前記第2の比較命令の第1のソースオペランド又は第2のソースオペランドのそれぞれのパックド単精度浮動小数点データコンポーネントのペアによりなされる、請求項12記載のプロセッサ。
- SIMDコプロセッサの第1の比較命令、第2の比較命令、及び第3の比較命令をデコードするデコーダであって、該第1の比較命令、該第2の比較命令、及び該第3の比較命令の各々は、それぞれの第1ソースオペランドを指定する第1のフィールドと、それぞれの第2のソースオペランドを指定する第2のフィールドとを有する、デコーダと;
整数レジスタと浮動小数点レジスタとを含むレジスタファイルと;
前記レジスタファイルと接続されている実行ユニットであって、前記実行ユニットは、比較回路を含み、前記比較回路は:
パックド・データの一致を判断する比較命令としてのコプロセッサの前記第1の比較命令のデコードに応答して、前記第1の比較命令の第1のソースオペランド及び第2のソースオペランドのそれぞれのパックドデータコンポーネントのペアの第1の複数の比較が、それぞれのマスク値を含む第1のパックド結果を生成し、かつ
前記第2の比較命令及び前記第3の比較命令のデコードに応答して、前記第2の比較命令及び前記第3の比較命令の第1のソースオペランドとそれぞれの第2のオペランドとのパックドデータコンポーネントにそれぞれペアの第2の複数の比較及び第3の複数の比較を実行し、
前記実行ユニットは、コプロセッサの前記第2の比較命令に応答して、前記比較回路によって実行された比較に基づいて、制御ジャンプを実行する分岐回路を更に有する、
前記実行ユニットと;
前記第3の比較命令に応答して前記比較回路により実行された比較の結果で、1つ以上の構造上可視であるステータスフラッグの値を含む複数の状態ビットを保存するステータスレジスタと;
を有するプロセッサ。 - 前記第2の比較命令及び前記第3の比較命令のデコードに応答する前記第2の複数の比較及び前記第3の複数の比較は、それぞれ、第1のソースオペランドのパックド単精度浮動小数点データコンポーネントに、それぞれの前記第2のソースオペランドのパックド単精度浮動小数点データコンポーネントのペアによりなされる、請求項14記載のプロセッサ。
- 前記ステータスレジスタに保存された前記構造上可視であるステータスフラッグの値は、前記第3の比較命令に応答して実行された前記比較の少なくとも1つに基づいて設定される、請求項14記載のプロセッサ。
- 前記ステータスレジスタが保存する前記状態ビットは、構造上可視であるオーバーフローステータスフラグを含む、請求項16記載のプロセッサ。
- ステータスフラグは、前記第2の比較命令に応答して実行された前記比較の結果によっては、設定されない、請求項14記載のプロセッサ。
- 前記ステータスレジスタが保存する前記複数の状態ビットは、トラップビットを含む、請求項18記載のプロセッサ。
- 前記ステータスレジスタが保存する前記複数の状態ビットは、イネーブルビットを含む、請求項18記載のプロセッサ。
- 前記第3の比較命令に応答して、前記ステータスレジスタの第1の状態ビットは、前記第3の複数の比較の第1のものに基づいて修正され、かつ前記ステータスレジスタの第2の状態ビットは、前記第3の複数の比較の第2のものに基づいて修正される、請求項14記載のプロセッサ。
- 前記第1の複数の比較は、前記第1の比較命令の第1のソースオペランド及び第2のソースオペランドのパックド32ビットデータコンポーネントのペアによりなされる請求項14記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/525,706 US7958181B2 (en) | 2006-09-21 | 2006-09-21 | Method and apparatus for performing logical compare operations |
US11/525,706 | 2006-09-21 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014162358A Division JP2015007993A (ja) | 2006-09-21 | 2014-08-08 | 論理比較動作を実行するための装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018189273A Division JP2019023909A (ja) | 2006-09-21 | 2018-10-04 | 論理比較動作を実行するための装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017079083A true JP2017079083A (ja) | 2017-04-27 |
JP6416861B2 JP6416861B2 (ja) | 2018-10-31 |
Family
ID=39200856
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009529421A Active JP5284264B2 (ja) | 2006-09-21 | 2007-09-21 | 論理比較動作を実行するための方法と装置 |
JP2013077025A Pending JP2013178791A (ja) | 2006-09-21 | 2013-04-02 | 論理比較動作を実行するための装置 |
JP2014162358A Pending JP2015007993A (ja) | 2006-09-21 | 2014-08-08 | 論理比較動作を実行するための装置 |
JP2016255721A Active JP6416861B2 (ja) | 2006-09-21 | 2016-12-28 | 論理比較動作を実行するための装置 |
JP2018189273A Pending JP2019023909A (ja) | 2006-09-21 | 2018-10-04 | 論理比較動作を実行するための装置 |
JP2020036849A Pending JP2020091908A (ja) | 2006-09-21 | 2020-03-04 | 論理比較動作を実行するための装置 |
JP2022019581A Active JP7423886B2 (ja) | 2006-09-21 | 2022-02-10 | 論理比較動作を実行するための装置 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009529421A Active JP5284264B2 (ja) | 2006-09-21 | 2007-09-21 | 論理比較動作を実行するための方法と装置 |
JP2013077025A Pending JP2013178791A (ja) | 2006-09-21 | 2013-04-02 | 論理比較動作を実行するための装置 |
JP2014162358A Pending JP2015007993A (ja) | 2006-09-21 | 2014-08-08 | 論理比較動作を実行するための装置 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018189273A Pending JP2019023909A (ja) | 2006-09-21 | 2018-10-04 | 論理比較動作を実行するための装置 |
JP2020036849A Pending JP2020091908A (ja) | 2006-09-21 | 2020-03-04 | 論理比較動作を実行するための装置 |
JP2022019581A Active JP7423886B2 (ja) | 2006-09-21 | 2022-02-10 | 論理比較動作を実行するための装置 |
Country Status (6)
Country | Link |
---|---|
US (13) | US7958181B2 (ja) |
JP (7) | JP5284264B2 (ja) |
KR (1) | KR101064837B1 (ja) |
CN (3) | CN101231583B (ja) |
DE (1) | DE102007045187A1 (ja) |
WO (1) | WO2008036946A1 (ja) |
Families Citing this family (23)
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 |
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US9690591B2 (en) * | 2008-10-30 | 2017-06-27 | Intel Corporation | System and method for fusing instructions queued during a time window defined by a delay counter |
CN101859325B (zh) * | 2010-06-07 | 2012-07-11 | 华为技术有限公司 | 一种数据表项的查找处理方法和装置 |
US20120030451A1 (en) * | 2010-07-28 | 2012-02-02 | Broadcom Corporation | Parallel and long adaptive instruction set architecture |
CN102566975A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 一种跳转路径的分支跳转处理装置、方法和处理器 |
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 |
CN104067224B (zh) * | 2011-12-23 | 2017-05-17 | 英特尔公司 | 在不同的粒度水平下对数据值进行广播和掩码的指令执行 |
WO2013101124A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Packed data operation mask comparison processors, methods, systems, and instructions |
US9886277B2 (en) * | 2013-03-15 | 2018-02-06 | Intel Corporation | Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources |
US9483266B2 (en) * | 2013-03-15 | 2016-11-01 | Intel Corporation | Fusible instructions and logic to provide OR-test and AND-test functionality using multiple test sources |
US9496023B2 (en) | 2014-06-05 | 2016-11-15 | Micron Technology, Inc. | Comparison operations on logical representations of values in memory |
US10380593B2 (en) | 2014-11-10 | 2019-08-13 | Mastercard International Incorporated | Systems and methods for detecting compromised automated teller machines |
US20160179542A1 (en) * | 2014-12-23 | 2016-06-23 | Patrick P. Lai | Instruction and logic to perform a fused single cycle increment-compare-jump |
US10445092B2 (en) * | 2014-12-27 | 2019-10-15 | Intel Corporation | Method and apparatus for performing a vector permute with an index and an immediate |
US10423411B2 (en) | 2015-09-26 | 2019-09-24 | Intel Corporation | Data element comparison processors, methods, systems, and instructions |
GB2543304B (en) * | 2015-10-14 | 2020-10-28 | Advanced Risc Mach Ltd | Move prefix instruction |
US10379854B2 (en) * | 2016-12-22 | 2019-08-13 | Intel Corporation | Processor instructions for determining two minimum and two maximum values |
CN108897522A (zh) * | 2018-06-14 | 2018-11-27 | 北京比特大陆科技有限公司 | 数据处理方法、数据处理装置以及电子设备 |
US11593105B2 (en) * | 2018-12-29 | 2023-02-28 | Intel Corporation | Vector logical operation and test instructions with result negation |
CN111506520B (zh) * | 2020-07-01 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 一种地址生成的方法、相关装置以及存储介质 |
US20230072105A1 (en) * | 2021-08-31 | 2023-03-09 | Intel Corporation | Bfloat16 comparison instructions |
US20240220262A1 (en) * | 2022-12-30 | 2024-07-04 | Jason Agron | Instructions and support for conditional comparison and test |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6014338A (ja) * | 1983-06-30 | 1985-01-24 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 計算機システムにおける分岐機構 |
JPH08328849A (ja) * | 1995-05-17 | 1996-12-13 | Sgs Thomson Microelectron Ltd | コンピュータ及びコンピュータ動作方法 |
JPH10116268A (ja) * | 1996-08-19 | 1998-05-06 | Samsung Electron Co Ltd | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 |
JPH10512070A (ja) * | 1994-12-02 | 1998-11-17 | インテル・コーポレーション | 複合オペランドのパック演算機能を有するマイクロプロセッサ |
JPH1124293A (ja) * | 1997-06-30 | 1999-01-29 | Konica Corp | 電子写真感光体、画像形成方法及び画像形成装置 |
JPH11511575A (ja) * | 1995-08-31 | 1999-10-05 | インテル・コーポレーション | パック・データを処理する1組の命令 |
JP2001229135A (ja) * | 2000-02-16 | 2001-08-24 | Nec Corp | Simd型並列計算装置 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US502069A (en) * | 1893-07-25 | John dierdorf | ||
US4648059A (en) * | 1984-09-13 | 1987-03-03 | Motorola, Inc. | N-bit magnitude comparator |
JPS6491228A (en) | 1987-09-30 | 1989-04-10 | Takeshi Sakamura | Data processor |
CA2045773A1 (en) | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
US5408670A (en) | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
KR200152537Y1 (ko) | 1993-12-21 | 1999-07-15 | 구본준 | 2진수 비교기 회로 |
JP3096387B2 (ja) * | 1994-01-28 | 2000-10-10 | 三菱電機株式会社 | 数値演算処理装置 |
JP3000857B2 (ja) * | 1994-08-31 | 2000-01-17 | 松下電工株式会社 | プログラマブルコントローラ |
US5748950A (en) * | 1994-09-20 | 1998-05-05 | Intel Corporation | Method and apparatus for providing an optimized compare-and-branch instruction |
IL116210A0 (en) | 1994-12-02 | 1996-01-31 | Intel Corp | Microprocessor having a compare operation and a method of comparing packed data in a processor |
US6036350A (en) * | 1995-12-20 | 2000-03-14 | Intel Corporation | Method of sorting signed numbers and solving absolute differences using packed instructions |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US5835782A (en) * | 1996-03-04 | 1998-11-10 | Intel Corporation | Packed/add and packed subtract operations |
JPH1011628A (ja) | 1996-06-25 | 1998-01-16 | Fujitsu Ltd | 営業車両管理システム |
GB2317466B (en) | 1996-09-23 | 2000-11-08 | Advanced Risc Mach Ltd | Data processing condition code flags |
TW325552B (en) * | 1996-09-23 | 1998-01-21 | Advanced Risc Mach Ltd | Data processing condition code flags |
JPH1124923A (ja) * | 1997-07-09 | 1999-01-29 | Mitsubishi Electric Corp | マイクロプロセッサ |
US20010049780A1 (en) * | 1998-03-27 | 2001-12-06 | Shreekant Thakkar | Method and apparatus for performing integer operations in response to a result of a floating point operation |
US6189091B1 (en) * | 1998-12-02 | 2001-02-13 | Ip First, L.L.C. | Apparatus and method for speculatively updating global history and restoring same on branch misprediction detection |
US6230261B1 (en) * | 1998-12-02 | 2001-05-08 | I. P. First, L.L.C. | Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
DE10157822A1 (de) * | 2001-11-24 | 2003-06-05 | Behr Gmbh & Co | Elektromagnetisch angesteuerte Flüssigkeitsreibungskupplung |
JP3851228B2 (ja) | 2002-06-14 | 2006-11-29 | 松下電器産業株式会社 | プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム |
JP2004046747A (ja) * | 2002-07-16 | 2004-02-12 | Matsushita Electric Ind Co Ltd | ベクトル化方式 |
US7424501B2 (en) * | 2003-06-30 | 2008-09-09 | Intel Corporation | Nonlinear filtering and deblocking applications utilizing SIMD sign and absolute value operations |
GB2409063B (en) * | 2003-12-09 | 2006-07-12 | Advanced Risc Mach Ltd | Vector by scalar operations |
US7809932B1 (en) * | 2004-03-22 | 2010-10-05 | Altera Corporation | Methods and apparatus for adapting pipeline stage latency based on instruction type |
US7853578B1 (en) * | 2005-12-09 | 2010-12-14 | Marvell International Ltd. | High-performance pattern matching |
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 |
JP6014338B2 (ja) | 2012-03-05 | 2016-10-25 | 日本放送協会 | コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信プログラム |
US20160179542A1 (en) * | 2014-12-23 | 2016-06-23 | Patrick P. Lai | Instruction and logic to perform a fused single cycle increment-compare-jump |
-
2006
- 2006-09-21 US US11/525,706 patent/US7958181B2/en active Active
-
2007
- 2007-09-21 CN CN2007101441872A patent/CN101231583B/zh not_active Expired - Fee Related
- 2007-09-21 JP JP2009529421A patent/JP5284264B2/ja active Active
- 2007-09-21 CN CN2010102834141A patent/CN101937329B/zh not_active Expired - Fee Related
- 2007-09-21 DE DE102007045187A patent/DE102007045187A1/de not_active Withdrawn
- 2007-09-21 CN CN201110127835.XA patent/CN102207849B/zh active Active
- 2007-09-21 WO PCT/US2007/079235 patent/WO2008036946A1/en active Application Filing
- 2007-09-21 KR KR1020097005715A patent/KR101064837B1/ko active IP Right Grant
-
2011
- 2011-04-08 US US13/082,726 patent/US8380780B2/en active Active
-
2012
- 2012-10-19 US US13/656,636 patent/US9043379B2/en active Active
- 2012-10-19 US US13/656,634 patent/US8606841B2/en active Active
-
2013
- 2013-02-08 US US13/763,596 patent/US9170813B2/en active Active
- 2013-02-08 US US13/763,598 patent/US9037627B2/en active Active
- 2013-03-15 US US13/843,236 patent/US9037626B2/en active Active
- 2013-04-02 JP JP2013077025A patent/JP2013178791A/ja active Pending
-
2014
- 2014-08-08 JP JP2014162358A patent/JP2015007993A/ja active Pending
-
2015
- 2015-04-12 US US14/684,412 patent/US9268565B2/en active Active
-
2016
- 2016-02-04 US US15/015,991 patent/US9489198B2/en active Active
- 2016-11-07 US US15/345,221 patent/US9898285B2/en active Active
- 2016-12-28 JP JP2016255721A patent/JP6416861B2/ja active Active
-
2018
- 2018-01-31 US US15/885,269 patent/US10146536B2/en active Active
- 2018-10-04 JP JP2018189273A patent/JP2019023909A/ja active Pending
- 2018-10-18 US US16/164,736 patent/US10416997B2/en active Active
- 2018-11-08 US US16/184,994 patent/US10572251B2/en active Active
-
2020
- 2020-03-04 JP JP2020036849A patent/JP2020091908A/ja active Pending
-
2022
- 2022-02-10 JP JP2022019581A patent/JP7423886B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6014338A (ja) * | 1983-06-30 | 1985-01-24 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 計算機システムにおける分岐機構 |
JPH10512070A (ja) * | 1994-12-02 | 1998-11-17 | インテル・コーポレーション | 複合オペランドのパック演算機能を有するマイクロプロセッサ |
JPH08328849A (ja) * | 1995-05-17 | 1996-12-13 | Sgs Thomson Microelectron Ltd | コンピュータ及びコンピュータ動作方法 |
JPH11511575A (ja) * | 1995-08-31 | 1999-10-05 | インテル・コーポレーション | パック・データを処理する1組の命令 |
JPH10116268A (ja) * | 1996-08-19 | 1998-05-06 | Samsung Electron Co Ltd | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 |
JPH1124293A (ja) * | 1997-06-30 | 1999-01-29 | Konica Corp | 電子写真感光体、画像形成方法及び画像形成装置 |
JP2001229135A (ja) * | 2000-02-16 | 2001-08-24 | Nec Corp | Simd型並列計算装置 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7423886B2 (ja) | 論理比較動作を実行するための装置 | |
JP5709775B2 (ja) | 選択演算を実行するプロセッサ | |
JP2017539013A (ja) | 競合検出を実行するための方法および装置 | |
TWI637317B (zh) | 用於將遮罩擴充為遮罩值之向量的處理器、方法、系統及裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170127 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180821 |
|
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: 20180904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6416861 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 |