JP3917635B2 - データ処理システムにおけるプリディケーション命令 - Google Patents
データ処理システムにおけるプリディケーション命令 Download PDFInfo
- Publication number
- JP3917635B2 JP3917635B2 JP2005500494A JP2005500494A JP3917635B2 JP 3917635 B2 JP3917635 B2 JP 3917635B2 JP 2005500494 A JP2005500494 A JP 2005500494A JP 2005500494 A JP2005500494 A JP 2005500494A JP 3917635 B2 JP3917635 B2 JP 3917635B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- predication
- program instructions
- condition
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 51
- 238000000034 method Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 8
- 230000000295 complement effect Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 210000003813 thumb Anatomy 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process 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
-
- 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/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/30181—Instruction operation extension or modification
-
- 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
-
- 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
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Description
Pnevmatikatos D N et al:”Guarded Execution and Branch Prediction In Dynamic ILP Processor”Computer Architecture News, Association for Computing Machinery, New York, US, Vol.22, No.2, 1 April 1994(1994-04-01), pages 120-129, XP000450344には、1つまたは複数の続く命令をプリディケートする(predicate)役割を果たすガード(Guard)命令を提供するシステムが開示されている。
処理システムの制御を容易にするために、通常のプログラムカウンタレジスタは、プリディケーション命令に従う1つまたは複数の関連するプログラム命令のうちいくつが実行されたかを示すカウンタ値を格納する動作が可能なプリディケートされた命令のカウンタレジスタによって補完される。プリディケーション命令は、実際上、いくつの関連するプログラム命令を制御するかを指定する、その中にエンコードされた到達範囲を有し、かつシステムは、この到達範囲の中で実行がどこまで進んだか、およびいつこの到達範囲を越えたかを追跡する必要がある。
このプリディケートされた命令のカウンタレジスタは、特に、例外および例外からの復帰の処理において有効であり、例外からの復帰において、プリディケートされた命令のカウンタレジスタはリストアされ、かつその値は復帰するプログラム命令が前のプリディケーション命令によって作用を受ける動作を有するか否かを決定するために使用することが可能である。
このIf−Then(IT)命令は、メモリ内の次のN個の命令を条件付きにする。IT命令に続き、かつその作用を受けるN個の命令の集合は「ITブロック」として理解するべきである。
それらがITブロック内で実行されるとき、いくつか(または全て)の命令の機能を再定義することが可能である。例えば、CMP/CMN/TST以外のThumb 16ビット命令はフラグをセットしないことが可能である。そのような場合、ITは、それ自身の後に作用を受けるAL条件とともに用いることが可能である。
特別なPSRビット(または専用IT状態レジスタ)は、ITの状態を保持するために用いることが可能である。これはITブロック内での割り込みを可能とする。
下記の例は4命令の最大ITブロックサイズを有するThumb 16ビットIT命令を定義する。ITブロック内の全ての命令は、同じ条件でプリディケートされ、または条件のバージョン(すなわち、EQまたはNE等)が保持される。
構文規則
IT{<x>{<y>{<z>}}} <cond>
ここで、
<x>は、存在するならば、文字「T」および「E」のうちの1つであり、かつ2番目の続く命令がIT命令の作用を受けることを示す。<x>が「T」(「Then」)ならば、その命令に結び付けられた条件は<cond>であり、<x>が「E」ならば、<cond>の最下位ビットの論理反転によって得られた<cond>の反転である。<x>が省略される(従って<y>および<z>も省略される)ならば、ただ1つの続く命令がIT命令の作用を受ける。
<y>は、存在するならば、文字「T」および「E」のうちの1つであり、かつ3番目の続く命令がIT命令の作用を受けることを示す。<y>が「T」(「Then」)ならば、その命令に結び付けられた条件は<cond>であり、<y>が「E」ならば、<cond>の最下位ビットの論理反転によって得られた<cond>の反転である。<y>が省略される(従って<z>も省略される)ならば、3つより少ない続く命令がIT命令の作用を受ける。
<z>は、存在するならば、文字「T」および「E」のうちの1つであり、かつ4番目の続く命令がIT命令の作用を受けることを示す。<z>が「T」(「Then」)ならば、その命令に結び付けられた条件は<cond>であり、<z>が「E」ならば、<cond>の最下位ビットの論理反転によって得られた<cond>の反転である。<z>が省略されるならば、4つより少ない続く命令がIT命令の作用を受ける。
<cond>は、1番目の続く命令に適用される条件であり、かつ<x>、<y>および<z>によって指定されるようにさらに続く命令に適用することも可能である。
MRSおよびSRS命令は、これらのビットを正常に読み出す。MRS命令は、それらを正常にSPSRに書き込むが、上述したように、CPSRに書き込むときに、書き込まれている値は無視する。既存の例外復帰命令(「SPSRからCPSRへのコピー」の副作用によるもの)およびRFE命令は、これも上述したように、それらを正常にCPSRに書き込む。
ARMおよびJava(登録商標)状態例外の間、これらのビットはゼロでなければならない(すなわち、これらがゼロでなければ、結果は「予測不可能」である)。
例外エントリシーケンスは、これらのビットをCPSRからSPSRへコピーさせ、かつ(JおよびTとともに)CPSRにおいてクリアされ、プロセッサを通常のARM例外に復帰させる。
Thumb状態例外の間、下記の通りである。
2.条件付き分岐命令が実行されるとき、ビット[26,25,11,10]はゼロでなければならない。(すなわち、条件付き分岐命令は、IT命令の作用を受ける命令ブロック内に存在することが禁止される。条件なし分岐命令はそこに存在することが可能であるが、条件付きとして扱われる。この規則は、基本的に、同じ命令が2つの条件を有することによって生じる問題を防止するために存在する。)
3.上記の規則によって「予測不可能」とならない全ての命令のために、下記のように、条件が現在の「実行状態」ビットから生成される。
注釈:これは、AL条件(またはNV条件)を有するIT命令が1番目から4番目の続く命令によるそのようなフラグ設定を阻止するために使用することが可能であるという系(corollary)を有する。現在のThumb命令セットの不便な側面の1つは、事後挿入される(late-inserted)コード(例えば、spill/fillコード)が条件フラグを破壊する副作用を有する可能性があることである。これを単一の特別な16ビット命令とともに扱うことが可能であることは、たいへん有用である。
例外復帰命令(SPSRからCPSRへのコピーを行い、かつ特権モードで実行されるRFEを行うもの)については:
CPSRに書き込まれた値のビット[26,25,15:10]。
それ以外は:
全てゼロ。
注釈:「それ以外」の場合は、ITを単に静的に続く命令に作用させる基本規則である。
1.分岐。注釈した以外、ITブロック内のどのような命令も、分岐命令またはPCを変更するいくつかの他の命令のいずれの結果としても、どのような分岐のターゲットとなることも許可されない。この制限に従うことができなければ、結局、「予測不可能」な動作に帰着する可能性がある。
2.例外。割り込みおよび他の例外は、命令とそのITブロックとの間、またはITブロック内で発生する可能性がある。通常のように、結局それらは、適切なモードのR14およびSPSRにおいて配置された適当な復帰情報とともに開始される割り込みハンドラに帰着する。例外復帰に用いるために設計された命令は、例外から復帰するために通常通り使用され、かつITブロックの実行を正しく再開することが可能である。これは、PCを変更する命令がITブロック内の命令に分岐することを可能とする唯一の方法である。
3.ITブロック。ITブロック内の命令は、
・IT命令
・条件付き分岐命令
であることは許されない。
そうである場合、結果は「予測不可能」となる。
このIf−Then−Else(ITE)命令は、条件が適合であるときに実行される命令ブロックのサイズ(このブロックは命令の直後に位置する)、および条件が不適合であるときに実行される命令ブロックのサイズ(このブロックは「if」ブロックの直後に位置する)を指定することを可能とする。
ITEコンテクストビットの数は、PSRまたは他の特別なレジスタにおいて保持されなければならない。これらのビットをPSR_uPCと呼ぶ。PSR_uPCビットの正確な数は、「if」ブロックの可能な最大サイズを決定する。
1.分岐。ITEの「if」セクション内のいかなる命令も、分岐命令またはPCを変更するいくつかの他の命令のいずれの結果としても、どのような分岐のターゲットとなることも許可されない。この制限に従うことができなれば、結局、「予測不可能」な動作に帰着する可能性がある。
2.例外。割り込みおよび他の例外は、「If」ブロック内の命令間で発生する可能性がある。通常のように、結局それらは、特定の例外モードのR14およびSPSRにおいて配置された適当な復帰情報とともに開始される割り込みハンドラに帰着する。例外復帰に用いるために設計された命令は、例外から復帰するために、通常、用いることが可能であり、かつ「if」ブロックの実行を正しく再開する。これは、PCを変更する命令が「if」ブロック内の命令に分岐することを可能とする唯一の方法である。
4 プログラムレジスタバンク
6 乗算器
8 シフタ
10 加算器
12 命令デコーダ
14 命令パイプライン
16 先取りユニット
18 割り込みコントローラ
20 プログラムカウンタレジスタ
22 プリディケーション命令カウンタレジスタ
Claims (27)
- データを処理するための装置(2)であって、
データ処理オペレーションを実行する動作が可能なデータ処理ロジック(4、6、8、10)と、
前記データ処理ロジックが前記データ処理オペレーションを実行するように制御するためにプログラム命令をデコードする動作が可能な命令デコーダ(12)と、
実行されるプログラム命令のメモリ位置を示すアドレスを格納する動作が可能なプログラムカウンタレジスタ(PC)と、
を具備し、
前記命令デコーダは、プリディケーション(predication)命令(IT)に応答して、前記プリディケーション命令以外の1つまたは複数のプログラム命令の実行によってセットされる前記データを処理するための装置の1つまたは複数の条件状態に応じて、前記データ処理ロジックが1つまたは複数の関連するプログラム命令を実行するかまたは実行しないかのいずれかであるように制御し、
前記プリディケーション命令に従う前記1つまたは複数の関連するプログラム命令のうちいくつが実行されたかを示すカウンタ値を格納する動作が可能なプリディケートされた(predicated)命令のカウンタレジスタ(μPC)をさらに具備し、
前記プリディケーション命令に従う前記1つまたは複数の関連するプログラム命令を実行するとき、前記プログラムカウンタレジスタは前記プリディケーション命令に対応するアドレスを格納し続け、
例外が発生したときに前記カウンタ値を格納し、かつ前記例外が完了したときに前記カウンタ値によって示されるプログラム命令で開始する実行を再開する動作が可能な例外処理回路(18)をさらに具備する装置。 - 前記プリディケーション命令は、複数の関連するプログラム命令を制御する請求項1に記載の装置。
- 前記1つまたは複数の関連するプログラム命令は、条件なしプログラム命令である請求項1に記載の装置。
- 前記1つまたは複数の条件状態は、1つまたは複数の条件コードフラグの値を含む請求項1から3のいずれか1項に記載の装置。
- 前記1つまたは複数の条件状態は、
(1)前記プリディケーション命令の実行時に一度、および
(2)各々の関連するプログラム命令を実行する前、
のうち一方において評価される請求項1から4のいずれか1項に記載の装置。 - 前記1つまたは複数の関連するプログラム命令は、前記プリディケーション命令の直後に続く請求項1から5のいずれか1項に記載の装置。
- 前記プリディケーション命令は、
(1)前記1つまたは複数の条件状態が1つまたは複数の所定状態に適合するならば実行される1つまたは複数のプログラム命令の条件適合ブロック、および
(2)前記1つまたは複数の条件状態が前記1つまたは複数の所定状態に適合しないならば実行される1つまたは複数のプログラム命令の条件不適合ブロック、
に対応付けられる請求項1から6のいずれか1項に記載の装置。 - 前記プリディケーション命令は、
(1)前記1つまたは複数のプログラム命令の条件適合ブロックの長さ、および
(2)前記1つまたは複数のプログラム命令の条件不適合ブロックの長さ、
のうち1つまたは複数を指定する請求項7に記載の装置。 - 前記プリディケーション命令は、前記1つまたは複数の所定状態(<cond>)を指定する請求項7および8のいずれか1項に記載の装置。
- 前記プリディケーション命令は、前記1つまたは複数の条件状態と1つまたは複数の所定状態との比較に応じて、個々の関連するプログラム命令が実行されるかまたは実行されないかを各々が指定する1つまたは複数のフィールドを含む請求項1から6のいずれか1項に記載の装置。
- 前記プリディケーション命令は、前記個々の関連するプログラム命令が実行されるか否かを決定するために、前記1つまたは複数の条件状態または前記1つまたは複数の条件状態の補数(complement)が前記1つまたは複数の所定状態と比較されるか否かを、前記個々の関連するプログラム命令の各々について指定するフィールドを含む請求項10に記載の装置。
- 前記1つまたは複数の関連するプログラム命令は、前記プリディケーション命令に従うとき異なるデータ処理オペレーションを指定する請求項1から11のいずれか1項に記載の装置。
- 前記プリディケーション命令内のプログラム可能なフィールドに応じて、前記1つまたは複数の関連するプログラム命令が前記1つまたは複数の条件状態にいかなる変更をすることも阻止される請求項12に記載の装置。
- データを処理する方法であって、
データ処理ロジックを用いてデータ処理オペレーションを実行するステップと、
前記データ処理ロジックが前記データ処理オペレーションを実行するように制御するために、命令デコーダを用いてプログラム命令をデコードするステップと、
プログラムカウンタレジスタに実行されるプログラム命令のメモリ位置を示すアドレスを格納するステップと、
を有し、
前記命令デコーダは、プリディケーション命令に応答して、前記プリディケーション命令以外の1つまたは複数のプログラム命令の実行によってセットされる、データを処理するための装置の1つまたは複数の条件状態に応じて、前記データ処理ロジックが1つまたは複数の関連するプログラム命令を実行するかまたは実行しないかのいずれかであるように制御し、
前記プリディケーション命令に従う前記1つまたは複数の関連するプログラム命令のうちいくつが実行されたかを示すカウンタ値をプリディケートされた命令のカウンタレジスタに格納するステップと、
前記1つまたは複数の関連するプログラム命令を実行するとき、前記プログラムカウンタレジスタに前記プリディケーション命令に対応するアドレスを格納し続けるステップと、
例外が発生したときに前記カウンタ値を格納し、かつ前記例外が完了したときに前記カウンタ値によって示されるプログラム命令で開始する実行を再開するステップと、
をさらに有する、データを処理する方法。 - 前記プリディケーション命令は、複数の関連するプログラム命令を制御する請求項14に記載の方法。
- 前記1つまたは複数の関連するプログラム命令は、条件なしプログラム命令である請求項14に記載の方法。
- 前記1つまたは複数の条件状態は、1つまたは複数の条件コードフラグの値を含む請求項14から16のいずれか1項に記載の方法。
- 前記1つまたは複数の条件状態は、
(1)前記プリディケーション命令の実行時に一度、および
(2)各々の関連するプログラム命令を実行する前、
のうち一方において評価される請求項14から17のいずれか1項に記載の方法。 - 前記1つまたは複数の関連するプログラム命令は、前記プリディケーション命令の直後に続く請求項14から18のいずれか1項に記載の方法。
- 前記プリディケーション命令は、
(1)前記1つまたは複数の条件状態が1つまたは複数の所定状態に適合するならば実行される1つまたは複数のプログラム命令の条件適合ブロック、および
(2)前記1つまたは複数の条件状態が前記1つまたは複数の所定状態に適合しないならば実行される1つまたは複数のプログラム命令の条件不適合ブロック、
に対応付けられる請求項14から19のいずれか1項に記載の方法。 - 前記プリディケーション命令は、
(1)前記1つまたは複数のプログラム命令の条件適合ブロックの長さ、および
(2)前記1つまたは複数のプログラム命令の条件不適合ブロックの長さ、
のうち1つまたは複数を指定する請求項20に記載の方法。 - 前記プリディケーション命令は、前記1つまたは複数の所定状態を指定する請求項20および21のいずれか1項に記載の方法。
- 前記プリディケーション命令は、前記1つまたは複数の条件状態と1つまたは複数の所定状態との比較に応じて、個々の関連するプログラム命令が実行されるかまたは実行されないかを各々が指定する1つまたは複数のフィールドを含む請求項14から19のいずれか1項に記載の方法。
- 前記プリディケーション命令は、前記個々の関連するプログラム命令が実行されるか否かを決定するために、前記1つまたは複数の条件状態または前記1つまたは複数の条件状態の補数が前記1つまたは複数の所定状態と比較されるか否かを、前記個々の関連するプログラム命令の各々について指定するフィールドを含む請求項23に記載の方法。
- 前記1つまたは複数の関連するプログラム命令は、前記プリディケーション命令に従うとき異なるデータ処理オペレーションを指定する請求項14から24のいずれか1項に記載の方法。
- 前記プリディケーション命令内のプログラム可能なフィールドに応じて、前記1つまたは複数の関連するプログラム命令が前記1つまたは複数の条件状態にいかなる変更をすることも阻止される請求項25に記載の方法。
- 請求項14から26のいずれか1項に記載の方法に従ってデータを処理するための装置を制御する動作が可能なコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0312977A GB2402510A (en) | 2003-06-05 | 2003-06-05 | Predication instruction within a data processing system |
PCT/GB2003/005674 WO2004109499A2 (en) | 2003-06-05 | 2003-12-30 | Predication instruction within a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006526813A JP2006526813A (ja) | 2006-11-24 |
JP3917635B2 true JP3917635B2 (ja) | 2007-05-23 |
Family
ID=9959411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005500494A Expired - Lifetime JP3917635B2 (ja) | 2003-06-05 | 2003-12-30 | データ処理システムにおけるプリディケーション命令 |
Country Status (12)
Country | Link |
---|---|
US (1) | US7178011B2 (ja) |
EP (1) | EP1629375B1 (ja) |
JP (1) | JP3917635B2 (ja) |
KR (1) | KR101016713B1 (ja) |
CN (1) | CN100483336C (ja) |
AU (1) | AU2003290350A1 (ja) |
DE (1) | DE60323885D1 (ja) |
GB (1) | GB2402510A (ja) |
MY (1) | MY138874A (ja) |
RU (1) | RU2005137695A (ja) |
TW (1) | TWI314701B (ja) |
WO (1) | WO2004109499A2 (ja) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7210024B2 (en) * | 2005-02-10 | 2007-04-24 | Qualcomm Incorporated | Conditional instruction execution via emissary instruction for condition evaluation |
US7234043B2 (en) * | 2005-03-07 | 2007-06-19 | Arm Limited | Decoding predication instructions within a superscaler data processing system |
DE102005050382B4 (de) * | 2005-10-20 | 2012-08-09 | Infineon Technologies Ag | Prozessor zum Prüfen einer Bedingung für eine bedingte Ausführung eines Programmbefehls |
JP4159586B2 (ja) * | 2006-08-03 | 2008-10-01 | エヌイーシーコンピュータテクノ株式会社 | 情報処理装置および情報処理の高速化方法 |
US7971104B2 (en) * | 2006-10-24 | 2011-06-28 | Shlomi Dolev | Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations |
US9946550B2 (en) | 2007-09-17 | 2018-04-17 | International Business Machines Corporation | Techniques for predicated execution in an out-of-order processor |
US7818551B2 (en) * | 2007-12-31 | 2010-10-19 | Microsoft Corporation | Feedback mechanism for dynamic predication of indirect jumps |
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 |
CN101324838A (zh) * | 2008-07-31 | 2008-12-17 | 华为技术有限公司 | 一种指令执行方法和装置 |
US8819399B1 (en) | 2009-07-31 | 2014-08-26 | Google Inc. | Predicated control flow and store instructions for native code module security |
US10175990B2 (en) * | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
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 |
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 |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
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 |
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 |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
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) |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution 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 |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
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 |
US10261793B2 (en) | 2011-12-16 | 2019-04-16 | International Business Machines Corporation | Instruction predication using instruction address pattern matching |
US9632779B2 (en) | 2011-12-19 | 2017-04-25 | International Business Machines Corporation | Instruction predication using instruction filtering |
US9465613B2 (en) * | 2011-12-19 | 2016-10-11 | International Business Machines Corporation | Instruction predication using unused datapath facilities |
US9632786B2 (en) * | 2011-12-20 | 2017-04-25 | International Business Machines Corporation | Instruction set architecture with extended register addressing using one or more primary opcode bits |
WO2014043886A1 (en) | 2012-09-21 | 2014-03-27 | Intel Corporation | Methods and systems for performing a binary translation |
US9389868B2 (en) | 2012-11-01 | 2016-07-12 | International Business Machines Corporation | Confidence-driven selective predication of processor instructions |
US9304771B2 (en) | 2013-02-13 | 2016-04-05 | International Business Machines Corporation | Indirect instruction predication |
US9626185B2 (en) | 2013-02-22 | 2017-04-18 | Apple Inc. | IT instruction pre-decode |
US9792121B2 (en) | 2013-05-21 | 2017-10-17 | Via Technologies, Inc. | Microprocessor that fuses if-then instructions |
FR3021432B1 (fr) * | 2014-05-20 | 2017-11-10 | Bull Sas | Processeur a instructions conditionnelles |
WO2016014081A1 (en) * | 2014-07-25 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Exception handling predicate register |
US10607003B2 (en) * | 2017-06-29 | 2020-03-31 | International Business Machines Corporation | Mitigation of code reuse attacks by restricted indirect branch instruction |
US11275712B2 (en) | 2019-08-20 | 2022-03-15 | Northrop Grumman Systems Corporation | SIMD controller and SIMD predication scheme |
CN113254082B (zh) * | 2021-06-23 | 2021-10-08 | 北京智芯微电子科技有限公司 | 条件分支指令处理方法及系统、cpu、芯片 |
CN113254083B (zh) * | 2021-06-28 | 2021-11-02 | 北京智芯微电子科技有限公司 | 指令处理方法、指令处理系统及处理器、芯片 |
KR102571809B1 (ko) * | 2021-08-03 | 2023-08-25 | 연세대학교 산학협력단 | 전자기 과도 상태 시뮬레이션 방법 및 기록 매체 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62259140A (ja) | 1986-05-06 | 1987-11-11 | Oki Electric Ind Co Ltd | アドレス生成回路 |
DE4430195B4 (de) * | 1993-12-13 | 2004-09-23 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Verfahren zur Auswertung von Booleschen Ausdrücken |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
JP3442225B2 (ja) | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
US6009512A (en) * | 1997-10-27 | 1999-12-28 | Advanced Micro Devices, Inc. | Mechanism for forwarding operands based on predicated instructions |
US6157996A (en) * | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
US6353883B1 (en) * | 1998-08-04 | 2002-03-05 | Intel Corporation | Method and apparatus for performing predicate prediction |
US6233676B1 (en) * | 1999-03-18 | 2001-05-15 | Ip-First, L.L.C. | Apparatus and method for fast forward branch |
US6640315B1 (en) * | 1999-06-26 | 2003-10-28 | Board Of Trustees Of The University Of Illinois | Method and apparatus for enhancing instruction level parallelism |
US6910123B1 (en) * | 2000-01-13 | 2005-06-21 | Texas Instruments Incorporated | Processor with conditional instruction execution based upon state of corresponding annul bit of annul code |
JP3532835B2 (ja) | 2000-07-04 | 2004-05-31 | 松下電器産業株式会社 | データ処理装置およびプログラム変換装置 |
US6886094B1 (en) * | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
US6662294B1 (en) * | 2000-09-28 | 2003-12-09 | International Business Machines Corporation | Converting short branches to predicated instructions |
US7017032B2 (en) * | 2001-06-11 | 2006-03-21 | Broadcom Corporation | Setting execution conditions |
-
2003
- 2003-06-05 GB GB0312977A patent/GB2402510A/en not_active Withdrawn
- 2003-12-30 JP JP2005500494A patent/JP3917635B2/ja not_active Expired - Lifetime
- 2003-12-30 WO PCT/GB2003/005674 patent/WO2004109499A2/en active IP Right Grant
- 2003-12-30 AU AU2003290350A patent/AU2003290350A1/en not_active Abandoned
- 2003-12-30 EP EP03782711A patent/EP1629375B1/en not_active Expired - Lifetime
- 2003-12-30 KR KR1020057023079A patent/KR101016713B1/ko active IP Right Grant
- 2003-12-30 DE DE60323885T patent/DE60323885D1/de not_active Expired - Lifetime
- 2003-12-30 CN CNB2003801103310A patent/CN100483336C/zh not_active Expired - Lifetime
- 2003-12-30 RU RU2005137695/09A patent/RU2005137695A/ru not_active Application Discontinuation
-
2004
- 2004-01-29 US US10/765,867 patent/US7178011B2/en active Active
- 2004-02-09 TW TW093102967A patent/TWI314701B/zh not_active IP Right Cessation
- 2004-02-10 MY MYPI20040391A patent/MY138874A/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20040250051A1 (en) | 2004-12-09 |
EP1629375B1 (en) | 2008-10-01 |
TWI314701B (en) | 2009-09-11 |
CN1788253A (zh) | 2006-06-14 |
EP1629375A2 (en) | 2006-03-01 |
WO2004109499A3 (en) | 2005-10-13 |
RU2005137695A (ru) | 2006-06-27 |
AU2003290350A1 (en) | 2005-01-04 |
KR101016713B1 (ko) | 2011-02-25 |
WO2004109499A2 (en) | 2004-12-16 |
JP2006526813A (ja) | 2006-11-24 |
CN100483336C (zh) | 2009-04-29 |
US7178011B2 (en) | 2007-02-13 |
GB2402510A (en) | 2004-12-08 |
MY138874A (en) | 2009-08-28 |
GB0312977D0 (en) | 2003-07-09 |
TW200428276A (en) | 2004-12-16 |
DE60323885D1 (de) | 2008-11-13 |
KR20060063790A (ko) | 2006-06-12 |
AU2003290350A8 (en) | 2005-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3917635B2 (ja) | データ処理システムにおけるプリディケーション命令 | |
JP6807383B2 (ja) | 転送プレフィックス命令 | |
JP3786644B2 (ja) | バイトコンパイルされたJava(R)コードを実行するためのマイクロプロセッサ | |
JP7002462B2 (ja) | ベクトル述語命令 | |
JP2006079652A (ja) | 多重命令セットによるデータ処理 | |
JP2002512399A (ja) | 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ | |
JP7105699B2 (ja) | プログラム・ループ制御 | |
JPH1185515A (ja) | マイクロプロセッサ | |
CN108885549A (zh) | 分支指令 | |
JPH0810428B2 (ja) | データ処理装置 | |
JPH0769795B2 (ja) | コンピュータ | |
JP2003525476A (ja) | プログラムの命令を実行するための装置及び方法 | |
KR102307581B1 (ko) | 레지스터 복구 분기 명령 | |
KR100573334B1 (ko) | 실시간 동적 수정이 가능한 명령어 집합을 가지는 컴퓨터 | |
JPS6250934A (ja) | 処理装置の割込制御方式 | |
EP0140299A2 (en) | Vector mask control system | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
JP5233078B2 (ja) | プロセッサ及びその処理方法 | |
JP6882320B2 (ja) | ベクトル命令の処理 | |
JP5732139B2 (ja) | データ要素の条件付き選択 | |
JP3619343B2 (ja) | データ処理装置と方法 | |
WO2023188905A1 (ja) | 情報処理装置、及び情報処理装置の動作制御方法 | |
CN100590591C (zh) | 选择性地控制条件码回写的装置及方法 | |
US20090119492A1 (en) | Data Processing Apparatus and Method for Handling Procedure Call Instructions | |
JPH04338825A (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061012 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061214 |
|
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: 20070116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3917635 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100216 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140216 Year of fee payment: 7 |
|
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 |
|
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 |
|
EXPY | Cancellation because of completion of term |