JP2013530450A - 条件付き比較命令 - Google Patents
条件付き比較命令 Download PDFInfo
- Publication number
- JP2013530450A JP2013530450A JP2013509616A JP2013509616A JP2013530450A JP 2013530450 A JP2013530450 A JP 2013530450A JP 2013509616 A JP2013509616 A JP 2013509616A JP 2013509616 A JP2013509616 A JP 2013509616A JP 2013530450 A JP2013530450 A JP 2013530450A
- Authority
- JP
- Japan
- Prior art keywords
- comparison
- instruction
- condition
- state
- condition state
- 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
- 238000012360 testing method Methods 0.000 claims abstract description 167
- 238000012545 processing Methods 0.000 claims abstract description 129
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 2
- 230000014509 gene expression Effects 0.000 description 8
- 230000001343 mnemonic effect Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013101 initial test Methods 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
- 230000000717 retained 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
- 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
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
CMP A,B
CMPEQ C,D
CMPNE E,F
データを処理するための処理回路と、
プログラム命令に応答して、データを処理するように、処理回路を制御するための制御信号を生成する、命令デコーダと、
処理回路の現在の条件状態を記憶するための状態記憶装置であって、現在の条件状態は、データの処理の際、修正可能である、状態記憶装置と、
を備え、プログラム命令は、条件付き比較命令を含み、命令デコーダは、条件付き比較命令に応答して、
(i)現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、
(ii)現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、
を備える、条件付き比較演算を行うように、処理回路を制御するための制御信号を生成する、データ処理装置を提供する。
(a)第2のオペランドを第1のオペランドから減算すること
(b)第1のオペランドを第2のオペランドに加算すること
(c)ビット排他論理和演算を第1のオペランドおよび第2のオペランドに行うこと
(d)ビット論理積演算を第1のオペランドおよび第2のオペランドに行うこと
(e)第1のオペランド、第2のオペランド、および状態記憶装置の桁上げビットを加算すること
(f)ビット論理和演算を第1のオペランドおよび第2のオペランドに行うこと。
比較演算はまた、第1および第2のオペランドに行われる、別の算術または論理演算を備えてもよい。
データを処理するための処理手段と、
プログラム命令に応答して、制御信号を生成するための命令デコーダ手段であって、制御信号は、データを処理するように、処理手段を制御するためのものである、手段と、
処理手段の現在の条件状態を記憶するための状態記憶手段であって、現在の条件状態は、データの処理の際、修正可能である、手段と、
を備え、プログラム命令は、条件付き比較命令を含み、命令デコーダ手段は、条件付き比較命令に応答して、
(i)現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、
(ii)現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、
を備える、条件付き比較演算を行うように、処理手段を制御するための制御信号を生成する、データ処理装置を提供する。
条件付き比較命令を含む、プログラム命令に応答して、データを処理するように、処理回路を制御するための制御信号を生成するステップと、
処理回路の現在の条件状態を記憶するステップであって、現在の条件状態は、データの処理の際、修正可能である、ステップと、
条件付き比較命令に応答して、
(i)現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、
(ii)現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、
を含む、条件付き比較演算を行うように、処理回路を制御するための制御信号を生成するステップと、
を含む、方法を提供する。
(a)1つ以上の論理積または論理和演算を使用して、論理的に組み合わせられたN個の比較演算の連鎖シーケンスを定義する、データの入力を受信するステップであって、Nは、1より大きい整数であって、N個の比較演算はそれぞれ、個別のオペランドが、個別の所定の基準を満たすかどうかを試験する、ステップと、
(b)連鎖シーケンスの第1の比較演算に対応する無条件比較命令を生成するステップと、
(c)2とNとの間のiの各整数値に対して、
(i)連鎖シーケンスのi番目の比較演算が、論理積演算または論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられるかどうかを判定するステップであって、部分的連鎖シーケンスは、連鎖シーケンスの第1から(i−1)番目の比較演算を備える、ステップと、
(ii)i番目の比較演算が、論理積演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、i番目の比較演算に対応する条件付き比較命令を生成するステップであって、条件付き比較命令は、試験条件として、(i−1)番目の比較演算の所定の基準が満たされる時、合格される条件を指定し、失敗条件状態として、満たされていない、i番目の比較演算の所定の基準に対応する条件状態を指定する、ステップと、
(iii)i番目の比較演算が、論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、i番目の比較演算に対応する条件付き比較命令を生成するステップであって、条件付き比較命令は、試験条件として、(i−1)番目の比較演算の所定の基準が満たされない時、合格される条件を指定し、失敗条件状態として、満たされている、i番目の比較演算の所定の基準に対応する条件状態を指定する、ステップと、
を行う、ステップと、
(d)プログラム命令のシーケンスとして、ステップ(b)で生成された少なくとも無条件比較命令と、ステップ(c)で生成された(N−1)個の条件付き比較命令と、を出力するステップと、
を含む、方法を提供する。
(i)処理回路の現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、
(ii)現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、
を備える、条件付き比較演算を行うように、処理回路を制御するための条件付き比較命令を備える、コンピュータプログラムを記憶する、非一時的コンピュータ記憶媒体を提供する。
ORRT RnHi,RnLo; //Z=1 if RnHi/Lo=0,and Z=0 otherwise)
CORRT NE,RmHi,RmLo,#0 //Z=1 if(ORRT set Z to 0 AND RmHi/Lo=0),//Z=0 otherwise
if(((s==t&&u>=0)||a!=b)&&c>d)
ここでは、実施形態の目的のため、s、t、およびuが、符号付き変数であって、a、b、c、およびdが、符号なし変数であることのみ仮定する(これらは、等しく、符号なし変数であり得る)。
1. 結果は、常時、「連鎖」内の最終の個々の比較のための好適な条件によって、反映される。
2. 連鎖「シーケンス」が、単一個々の比較のみ含む場合、その2つのオペランドに無条件比較(CMP)命令を使用する(図7Aおよび7Bのステップ214参照)。無条件比較命令は、比較結果に応じて、図8の条件状態のうちの1つをもたらすように定義される。
3. そうでなければ、連鎖シーケンスは、ある付加的個々の比較と論理積または論理和演算される、より短い連鎖シーケンスから成る。
4. 連鎖シーケンスが、ある付加的比較と論理積演算される、より短い連鎖シーケンスから成る場合、(図7Aおよび7Bのステップ206参照)より短い連鎖シーケンスのための命令シーケンスをもたらし、以下をさらに付け加える。
CCMPcond,op1,op2,#imm
ここでは、condは、合格する時、より短い連鎖シーケンスによってもたらされる条件であって、op1およびop2は、付加的比較のための2つのオペランドであって、immは、付加的比較からの所望の「失敗」結果に対応する、N、Z、C、V条件フラグ値の任意のセットである。
これは、より短い連鎖シーケンスが、その「失敗」条件をもたらす場合、付加的比較が、その独自の「失敗」条件をもたらし、より短い連鎖シーケンスが、その「合格」条件をもたらす場合、付加的比較が、付加的比較において、論理積演算を行うための正しい挙動である、個々の試験の結果に応じて、その独自の「失敗」結果またはその独自の「合格」結果のいずれかをもたらすことを確実にする。
5. 連鎖シーケンスが、付加的比較と論理和演算される、より短い連鎖シーケンスから成る場合、(図7Aおよび7Bのステップ208参照)より短い連鎖シーケンスのための命令シーケンスをもたらし、以下をさらに付け加える
CCMPcond,op1,op2,#imm
ここでは、condは、失敗される時、より短い連鎖シーケンスによってもたらされる条件であって、op1およびop2は、付加的比較のための2つのオペランドであって、
immは、付加的比較からの所望の「合格」結果に対応する、N、Z、C、V条件フラグ値の任意のセットである。
より短い連鎖シーケンスが、その「合格」条件をもたらす場合、付加的比較が、その独自の「合格」条件をもたらし、より短い連鎖シーケンスが、その「失敗」条件をもたらす場合、付加的比較は、付加的比較内で論理和演算を行うための正しい挙動である、個々の試験の結果に応じて、その独自の「失敗」結果またはその独自の「合格」結果のいずれかをもたらすことを確実にする。
...コードシーケンスについては未定...
//Now have HI if(((s==t&&u>=0)||a!=b)&&c>d)
//is TRUE,LS otherwise
*より短い連鎖シーケンスは、その最終比較として、a!=試験を有し、したがって、合格する場合、NE条件をもたらす。
*付加的比較の所望の「失敗」結果は、LS=(C=0)||(Z=1)である。
その条件を満たす、フラグのNZCVセットの任意の値、例えば、NZCV=0b0000を取り上げる。
次いで、コードシーケンスは、以下に対して、1つのステップで展開することができる。
...コードシーケンスについては未定...
//Now have NE if((s==t&&u>=0)||a!=b)is TRUE,EQ
//otherwise
CCMP NE,Rc,Rd,#0b0000
//Now have HI if(((s==t&&u>=0)||a!=b)&&c>d)
//is TRUE,LS otherwise
*より短い連鎖シーケンスは、その最終比較として、符号付き>=試験を有し、したがって、失敗する場合、LT条件をもたらす。
*付加的比較の所望の「合格」結果は、NE=(Z==0)である。その条件を満たすフラグのNZCVセットの任意の値、例えば、NZCV=0b0000を取り上げる。
次いで、コードシーケンスは、以下に対して、第2のステップで展開することができる。
...コードシーケンスについては未定...
//Now have GE if(s==t&&u>=0)is TRUE、LT otherwise
CCMP LT,Ra,Rb,#0b0000
//Now have NE if((s==t&&u>=0)||a!=b)is TRUE,EQ
//otherwise
CCMP NE,Rc,Rd,#0b0000
//Now have HI if(((s==t&&u>=0)||a!=b)&&c>d)
//is TRUE,LS otherwise
*より短い連鎖シーケンスは、その最終比較として、==試験を有し、したがって、合格する場合、EQ条件をもたらす。
*付加的比較の所望の「失敗」結果は、LT=(N!=V)である。その条件を満たす、フラグのNZCVセットの任意の値、例えば、NZCV=0b0001を取り上げる。
次いで、コードシーケンスは、以下に対して、第3のステップで展開することができる。
...コードシーケンスについては未定...
//Now have EQ if s==t is TRUE,NE otherwise
CCMP EQ,Ru,#0,#0b0001
//Now have GE if(s==t&&u>=0)is TRUE,LT otherwise
CCMP LT,Ra,Rb,#0b0000
//Now have NE if((s==t&&u>=0)||a!=b)is TRUE,EQ
//otherwise
CCMP NE,Rc,Rd,#0b0000
//Now have HI if(((s==t&&u>=0)||a!−b)&&c>d)
//is TRUE,LS otherwise
CMP Rs,Rt
//Now have EQ if s==t is TRUE,NE otherwise
CCMP EQ,Ru,#0、#0b0001
//Now have GE if(s==t&&u>−0)is TRUE,LT otherwise
CCMP LT,Ra,Rb,#0b0000
//Now have NE if((s==t&&u>=0)||a!=b)is TRUE,EQ
//otherwise
CCMP NE,Rc,Rd,#0b0000
//Now have HI if(((s==t&&u>=0)||a!=b)&&c>d)
//is TRUE,LS otherwise
CMP Rs,Rt
//Now have EQ if s==t is TRUE,NE otherwise
CCMP EQ,Ru,#0、LT
//Now have GE if(s==t&&u>=0)is TRUE,LT otherwise
CCMP LT,Ra,Rb,NE
//Now have NE if((s==t&&u>=0)||a!=b)is TRUE,EQ
//otherwise
CCMP NE,Rc,Rd,LS
//Now have HI if(((s==t&&u>=0)||a!=b)&&c>d)
//is TRUE,LS otherwise
4 処理回路
6 レジスタバンク
8 加算器
10 シフタ
12 乗算器
14 命令デコーダ
15 状態記憶装置、状態レジスタ
500 アプリケーションプログラム
510 仮想マシンプログラム
520 ホストオペレーティングシステム
530 ホストプロセッサ
Claims (20)
- データ処理装置であって、
データを処理するための処理回路と、
プログラム命令に応答して、前記データを処理するように、前記処理回路を制御するための制御信号を生成する、命令デコーダと、
前記処理回路の現在の条件状態を記憶するための状態記憶装置であって、前記現在の条件状態は、前記データの処理の際、修正可能である、状態記憶装置と、
を備え、前記プログラム命令は、条件付き比較命令を含み、前記命令デコーダは、前記条件付き比較命令に応答して、
(i)前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、
(ii)前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、
を含む、条件付き比較演算を行うように、前記処理回路を制御するための制御信号を生成する、データ処理装置。 - 前記状態記憶装置は、状態レジスタを備える、請求項1に記載のデータ処理装置。
- 前記現在の条件状態は、前記状態記憶装置内に記憶された少なくとも1つの条件コードフラグの値を備える、請求項1および2のいずれかに記載のデータ処理装置。
- 前記条件付き比較命令は、前記試験条件を指定するためのフィールドを含む、請求項1から3のいずれか一項に記載のデータ処理装置。
- 前記失敗条件状態は、前記条件付き比較命令によって、即値として指定される、請求項1から4のいずれか一項記載のデータ処理装置。
- 前記即値は、前記条件付き比較命令を備える、プログラムのプログラマによって設定される、プログラム可能値である、請求項5に記載のデータ処理装置。
- 前記即値は、前記条件付き比較命令を備えるプログラムのコンパイラによって設定される、プログラム可能値であって、前記コンパイラは、前記条件付き比較命令のための前記失敗条件状態によって合格されるべき所望の条件に応じて、前記プログラム可能値を選択する、請求項5に記載のデータ処理装置。
- 前記失敗条件状態は、Nビットの失敗条件状態値として指定され、Nは、ゼロより大きい任意の整数であって、前記現在の条件状態は、Nビットの値によって表され、
前記命令デコーダは、前記現在の条件状態が、前記試験条件に失敗する場合、前記Nビットの失敗条件状態値を前記状態記憶装置に書き込むように、前記処理回路を制御する、
請求項1から7のいずれか一項に記載のデータ処理装置。 - 前記現在の条件状態は、所定の条件状態を含む、複数の条件状態のうちのいずれかに設定可能であって、
前記現在の条件状態は、前記試験条件が、前記失敗条件状態として、前記所定の条件状態を指定する条件付き比較命令に失敗する場合、前記所定の条件状態にのみ設定することができる、
請求項1から8のいずれか一項に記載のデータ処理装置。 - 前記条件付き比較命令は、前記第1のオペランドおよび前記第2のオペランドを指定するための第1および第2のオペランドフィールドを含む、請求項1から9のいずれか一項請求項に記載のデータ処理装置。
- 前記第1および第2のオペランドフィールドのうちの少なくとも1つは、前記第1のオペランドまたは前記第2のオペランドを記憶する、記憶場所を指定する、請求項10に記載のデータ処理装置。
- 前記命令デコーダは、前記第1および第2のオペランドフィールドのうちの少なくとも1つに応答して、ゼロの値を有する前記第1および第2のオペランドのうちの対応する1つによって、前記条件付き比較演算を行うように、前記処理回路を制御するためのビット値の所定の組み合わせを指定する、請求項11に記載のデータ処理装置。
- 前記第1および第2のオペランドフィールドのうちの1つは、前記第1のオペランドまたは前記第2のオペランドとして、即値を指定する、請求項10から12のいずれかの請求項に記載のデータ処理装置。
- 前記比較演算は、
(a)前記第2のオペランドを前記第1のオペランドから減算すること、
(b)前記第1のオペランドを前記第2のオペランドに加算すること、
(c)ビット排他論理和演算を前記第1のオペランドおよび前記第2のオペランドに行うこと、
(d)ビット論理積演算を前記第1のオペランドおよび前記第2のオペランドに行うこと、
(e)前記第1のオペランド、前記第2のオペランド、および前記状態記憶装置の桁上げビットを加算すること、
(f)ビット論理和演算を前記第1のオペランドおよび前記第2のオペランドに行うこと、
のうちの任意の1つを含む、請求項1から13のいずれか一項に記載のデータ処理装置。 - データ処理装置であって、
データを処理するための処理手段と、
プログラム命令に応答して、制御信号を生成するための命令デコーダ手段であって、前記制御信号は、前記データを処理するように、前記処理手段を制御するためのものである、命令デコーダ手段と、
前記処理手段の現在の条件状態を記憶するための状態記憶手段であって、前記現在の条件状態は、前記データの処理の際、修正可能である、状態記憶手段と、
を備え、前記プログラム命令は、条件付き比較命令を含み、前記命令デコーダ手段は、前記条件付き比較命令に応答して、
(i)前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、
(ii)前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、
を含む、条件付き比較演算を行うように、前記処理手段を制御するための制御信号を生成する、データ処理装置。 - データ処理方法であって、
条件付き比較命令を含む、プログラム命令に応答して、データを処理するように、処理回路を制御するための制御信号を生成するステップと、
前記処理回路の現在の条件状態を記憶するステップであって、前記現在の条件状態は、前記データの処理の際、修正可能である、ステップと、
前記条件付き比較命令に応答して、
(i)前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、
(ii)前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、
を含む、条件付き比較演算を行うように、前記処理回路を制御するための制御信号を生成するステップと、
を含む、方法。 - データ処理装置による実行のためのプログラム命令のシーケンスをコンパイルする方法であって、
前記プログラム命令のシーケンスは、
2つのオペランドに無条件比較演算を行い、前記データ処理装置の現在の条件状態を前記無条件比較演算の際に生成された結果の条件状態に設定するように、前記データ処理装置を制御するための無条件比較命令と、
(i)前記データ処理装置の前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、(ii)前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、条件付き比較演算を行うように、前記データ処理装置を制御するための少なくとも1つの条件付き比較命令と、を含み、
前記方法は、
(a)1つ以上の論理積または論理和演算を使用して、論理的に組み合わせられたN個の比較演算の連鎖シーケンスを定義する、データの入力を受信するステップであって、Nは、1より大きい整数であって、前記N個の比較演算はそれぞれ、個別のオペランドが、個別の所定の基準を満たすかどうかを試験する、ステップと、
(b)前記連鎖シーケンスの第1の比較演算に対応する前記無条件比較命令を生成するステップと、
(c)2とNとの間のiの各整数値に対して、
(i)前記連鎖シーケンスのi番目の比較演算が、論理積演算または論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられるかどうか判定する段階であって、前記部分的連鎖シーケンスは、前記連鎖シーケンスの前記第1の比較演算から(i−1)番目の比較演算を備える段階と、
(ii)前記i番目の比較演算が、論理積演算を使用して、前記部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、前記i番目の比較演算に対応する条件付き比較命令を生成する段階であって、前記条件付き比較命令は、前記試験条件として、前記(i−1)番目の比較演算の前記所定の基準が満たされる時、合格される条件を指定し、前記失敗条件状態として、満たされていない、前記i番目の比較演算の前記所定の基準に対応する条件状態を指定する段階と、
(iii)前記i番目の比較演算が、論理和演算を使用して、前記部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、前記i番目の比較演算に対応する条件付き比較命令を生成するステップであって、前記条件付き比較命令は、前記試験条件として、前記(i−1)番目の比較演算の前記所定の基準が満たされない時、合格する条件を指定し、前記失敗条件状態として、満たされている、前記i番目の比較演算の前記所定の基準に対応する条件状態を指定する段階と、
を行う、ステップと、
(d)プログラム命令のシーケンスとして、ステップ(b)で生成された少なくとも前記無条件比較命令と、ステップ(c)で生成された(N−1)個の前記条件付き比較命令と、を出力するステップと、
を含む、方法。 - データ処理装置で実行するコンピュータプログラムによって提供される仮想マシンであって、請求項1から14のいずれかに記載のデータ処理装置に従って、命令実行環境を提供する、仮想マシン。
- コンピュータによって実行されると、請求項17の方法を行うように、前記コンピュータを制御する、コンピュータプログラムを記憶する、非一時的コンピュータ記憶媒体。
- コンピュータプログラムを記憶する、非一時的コンピュータ記憶媒体であって、
前記コンピュータプログラムは、条件付き比較演算を行うように、処理回路を制御するための条件付き比較命令を備え、
前記条件付き比較演算は、
(i)前記処理回路の現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、
(ii)前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、
を含む、非一時的コンピュータ記憶媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1007890.5 | 2010-05-11 | ||
GB1007890A GB2480285A (en) | 2010-05-11 | 2010-05-11 | Conditional compare instruction which sets a condition code when it is not executed |
GB1017144.5 | 2010-10-12 | ||
GB1017144.5A GB2480338B (en) | 2010-05-11 | 2010-10-12 | Conditional compare instruction |
PCT/GB2011/050719 WO2011141726A2 (en) | 2010-05-11 | 2011-04-12 | Conditional compare instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013530450A true JP2013530450A (ja) | 2013-07-25 |
JP5646737B2 JP5646737B2 (ja) | 2014-12-24 |
Family
ID=42315168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013509616A Active JP5646737B2 (ja) | 2010-05-11 | 2011-04-12 | 条件付き比較命令 |
Country Status (10)
Country | Link |
---|---|
US (1) | US9383999B2 (ja) |
EP (1) | EP2569694B1 (ja) |
JP (1) | JP5646737B2 (ja) |
KR (1) | KR101731238B1 (ja) |
CN (1) | CN102893254B (ja) |
GB (2) | GB2480285A (ja) |
IL (1) | IL222551A0 (ja) |
MY (1) | MY156502A (ja) |
TW (1) | TWI501148B (ja) |
WO (1) | WO2011141726A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013539882A (ja) * | 2010-10-12 | 2013-10-28 | エイアールエム リミテッド | データ要素の条件付き選択 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US8924695B2 (en) * | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US20160092398A1 (en) * | 2014-09-29 | 2016-03-31 | Apple Inc. | Conditional Termination and Conditional Termination Predicate Instructions |
US10514911B2 (en) | 2014-11-26 | 2019-12-24 | International Business Machines Corporation | Structure for microprocessor including arithmetic logic units and an efficiency logic unit |
GB2540216B (en) * | 2015-07-10 | 2020-01-01 | Advanced Risc Mach Ltd | Comparison of wide data types |
CN106201935A (zh) * | 2016-06-28 | 2016-12-07 | 田彬 | 用于处理存储队列中数据相关的装置及方法 |
US10761979B2 (en) * | 2016-07-01 | 2020-09-01 | Intel Corporation | Bit check processors, methods, systems, and instructions to check a bit with an indicated check bit value |
GB2556079A (en) * | 2016-11-17 | 2018-05-23 | Kumar Oberoi Bhushan | Magic card trick |
US10324716B2 (en) | 2017-03-03 | 2019-06-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
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 |
US10564965B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Compare 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 |
US10613862B2 (en) | 2017-03-03 | 2020-04-07 | International Business Machines Corporation | String sequence operations with arbitrary terminators |
US10564967B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Move string processing via inline decode-based micro-operations expansion |
GB2564130B (en) * | 2017-07-04 | 2020-10-07 | Advanced Risc Mach Ltd | An apparatus and method for controlling execution of instructions |
US11709676B2 (en) | 2021-08-19 | 2023-07-25 | International Business Machines Corporation | Inferring future value for speculative branch resolution |
US20230072105A1 (en) * | 2021-08-31 | 2023-03-09 | Intel Corporation | Bfloat16 comparison instructions |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0773149A (ja) * | 1993-03-31 | 1995-03-17 | Motorola Inc | データ処理システムとその方法 |
US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
JP2001265592A (ja) * | 2000-03-17 | 2001-09-28 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US6505345B1 (en) * | 2000-01-18 | 2003-01-07 | Intel Corporation | Optimization of initialization of parallel compare predicates in a computer system |
US6732356B1 (en) * | 2000-03-31 | 2004-05-04 | Intel Corporation | System and method of using partially resolved predicates for elimination of comparison instruction |
JP2006209805A (ja) * | 2006-04-28 | 2006-08-10 | Matsushita Electric Ind Co Ltd | プロセッサ |
JP2007272353A (ja) * | 2006-03-30 | 2007-10-18 | Nec Electronics Corp | プロセッサ装置及び複合条件処理方法 |
JP2008537231A (ja) * | 2005-04-14 | 2008-09-11 | クゥアルコム・インコーポレイテッド | 条件付き命令が無条件で出力を提供するシステム及び方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371862A (en) * | 1991-02-27 | 1994-12-06 | Kabushiki Kaisha Toshiba | Program execution control system |
JPH0827816B2 (ja) * | 1991-09-13 | 1996-03-21 | 日本電気株式会社 | ファジー三段論法推論システム |
JP3452655B2 (ja) * | 1993-09-27 | 2003-09-29 | 株式会社日立製作所 | ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法 |
JP3843594B2 (ja) * | 1998-04-08 | 2006-11-08 | 松下電器産業株式会社 | プロセッサ、コンパイラ及び命令列変換装置 |
US6009512A (en) | 1997-10-27 | 1999-12-28 | Advanced Micro Devices, Inc. | Mechanism for forwarding operands based on predicated instructions |
JP3830683B2 (ja) * | 1998-12-28 | 2006-10-04 | 富士通株式会社 | Vliwプロセッサ |
TWI226015B (en) * | 1999-08-31 | 2005-01-01 | Matsushita Electric Ind Co Ltd | Digital signal processor and control method of the same |
TW569136B (en) | 2002-05-09 | 2004-01-01 | Ip First Llc | Apparatus and method for conditional instruction execution |
JP3851228B2 (ja) * | 2002-06-14 | 2006-11-29 | 松下電器産業株式会社 | プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム |
JP3816845B2 (ja) * | 2002-07-05 | 2006-08-30 | 富士通株式会社 | プロセッサ及び命令制御方法 |
JP3958662B2 (ja) | 2002-09-25 | 2007-08-15 | 松下電器産業株式会社 | プロセッサ |
US7581088B1 (en) * | 2003-12-30 | 2009-08-25 | Altera Corporation | Conditional execution using an efficient processor flag |
KR100628573B1 (ko) * | 2004-09-08 | 2006-09-26 | 삼성전자주식회사 | 조건부실행명령어의 비순차적 수행이 가능한 하드웨어장치 및 그 수행방법 |
US8078846B2 (en) * | 2006-09-29 | 2011-12-13 | Mips Technologies, Inc. | Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated |
JP2008305185A (ja) | 2007-06-07 | 2008-12-18 | Nec Electronics Corp | プロセッサ装置及び複合条件処理方法 |
US8332620B2 (en) * | 2008-07-25 | 2012-12-11 | Freescale Semiconductor, Inc. | System, method and computer program product for executing a high level programming language conditional statement |
US8195923B2 (en) * | 2009-04-07 | 2012-06-05 | Oracle America, Inc. | Methods and mechanisms to support multiple features for a number of opcodes |
CN101593096B (zh) | 2009-05-22 | 2011-11-16 | 西安交通大学 | 一种共享寄存器相关性消除的实现方法 |
US8549504B2 (en) * | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
US20120079245A1 (en) * | 2010-09-25 | 2012-03-29 | Cheng Wang | Dynamic optimization for conditional commit |
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 |
-
2010
- 2010-05-11 GB GB1007890A patent/GB2480285A/en not_active Withdrawn
- 2010-10-12 GB GB1017144.5A patent/GB2480338B/en active Active
-
2011
- 2011-04-12 KR KR1020127030565A patent/KR101731238B1/ko active IP Right Grant
- 2011-04-12 MY MYPI2012004164A patent/MY156502A/en unknown
- 2011-04-12 CN CN201180023699.8A patent/CN102893254B/zh active Active
- 2011-04-12 EP EP11720829.8A patent/EP2569694B1/en active Active
- 2011-04-12 JP JP2013509616A patent/JP5646737B2/ja active Active
- 2011-04-12 US US13/637,757 patent/US9383999B2/en active Active
- 2011-04-12 WO PCT/GB2011/050719 patent/WO2011141726A2/en active Application Filing
- 2011-04-15 TW TW100113216A patent/TWI501148B/zh active
-
2012
- 2012-10-18 IL IL222551A patent/IL222551A0/en active IP Right Grant
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
JPH0773149A (ja) * | 1993-03-31 | 1995-03-17 | Motorola Inc | データ処理システムとその方法 |
US5790854A (en) * | 1993-03-31 | 1998-08-04 | Motorola Inc. | Efficient stack utilization for compiling and executing nested if-else constructs in a vector data processing system |
US6505345B1 (en) * | 2000-01-18 | 2003-01-07 | Intel Corporation | Optimization of initialization of parallel compare predicates in a computer system |
JP2001265592A (ja) * | 2000-03-17 | 2001-09-28 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US6732356B1 (en) * | 2000-03-31 | 2004-05-04 | Intel Corporation | System and method of using partially resolved predicates for elimination of comparison instruction |
JP2008537231A (ja) * | 2005-04-14 | 2008-09-11 | クゥアルコム・インコーポレイテッド | 条件付き命令が無条件で出力を提供するシステム及び方法 |
JP2007272353A (ja) * | 2006-03-30 | 2007-10-18 | Nec Electronics Corp | プロセッサ装置及び複合条件処理方法 |
JP2006209805A (ja) * | 2006-04-28 | 2006-08-10 | Matsushita Electric Ind Co Ltd | プロセッサ |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013539882A (ja) * | 2010-10-12 | 2013-10-28 | エイアールエム リミテッド | データ要素の条件付き選択 |
US9753724B2 (en) | 2010-10-12 | 2017-09-05 | Arm Limited | Conditional selection of data elements |
US9983872B2 (en) | 2010-10-12 | 2018-05-29 | Arm Limited | Conditional selection of data elements |
Also Published As
Publication number | Publication date |
---|---|
GB2480338B (en) | 2013-07-31 |
CN102893254A (zh) | 2013-01-23 |
JP5646737B2 (ja) | 2014-12-24 |
EP2569694A2 (en) | 2013-03-20 |
GB201007890D0 (en) | 2010-06-23 |
TW201203101A (en) | 2012-01-16 |
WO2011141726A2 (en) | 2011-11-17 |
GB201017144D0 (en) | 2010-11-24 |
IL222551A0 (en) | 2012-12-31 |
CN102893254B (zh) | 2015-11-25 |
KR101731238B1 (ko) | 2017-04-28 |
EP2569694B1 (en) | 2020-12-16 |
GB2480338A (en) | 2011-11-16 |
MY156502A (en) | 2016-02-26 |
US9383999B2 (en) | 2016-07-05 |
GB2480285A (en) | 2011-11-16 |
TWI501148B (zh) | 2015-09-21 |
WO2011141726A3 (en) | 2012-04-12 |
KR20130100900A (ko) | 2013-09-12 |
US20130097408A1 (en) | 2013-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5646737B2 (ja) | 条件付き比較命令 | |
JP5897696B2 (ja) | データ処理装置および方法 | |
JP6971220B2 (ja) | スプライス演算を行うための装置および方法 | |
US11307855B2 (en) | Register-provided-opcode instruction | |
KR20180066146A (ko) | 벡터 데이터 전송 명령어 | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
CN108780395B (zh) | 矢量预测指令 | |
US9965275B2 (en) | Element size increasing instruction | |
CN107851016B (zh) | 向量算术指令 | |
WO2012136975A1 (en) | A data processing apparatus and method for performing vector operations | |
KR20180067582A (ko) | 벡터 로드 명령어 | |
JP4686435B2 (ja) | 演算装置 | |
KR20200028965A (ko) | 데이터 처리장치에서의 벡터 인터리빙 | |
JP6803390B2 (ja) | 第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する符号化命令 | |
JP5732139B2 (ja) | データ要素の条件付き選択 | |
JP2021515929A (ja) | データ処理 | |
JP2022021554A (ja) | アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130501 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140612 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140623 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140917 |
|
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: 20141006 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5646737 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |