JP2014504770A - 同一のデータ条件に依存する、隣接する命令の実行の制御 - Google Patents
同一のデータ条件に依存する、隣接する命令の実行の制御 Download PDFInfo
- Publication number
- JP2014504770A JP2014504770A JP2013552260A JP2013552260A JP2014504770A JP 2014504770 A JP2014504770 A JP 2014504770A JP 2013552260 A JP2013552260 A JP 2013552260A JP 2013552260 A JP2013552260 A JP 2013552260A JP 2014504770 A JP2014504770 A JP 2014504770A
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- instructions
- condition
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 89
- 230000004044 response Effects 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000008859 change Effects 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 7
- 238000013500 data storage Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 19
- 238000012360 testing method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/30069—Instruction skipping instructions, e.g. SKIP
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/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/30018—Bit or string 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
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)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Abstract
Description
VCMP D0,D1,D2 ;D1およびD2を比較し、結果マスクをD0に入れる
VTEST D0 ;D0内の全ビットがゼロであるかどうかを試験する
BEQL1 ;マスクがゼロである場合、次の10個の演算にスキップする
D0→VOP1 ;マスクD0の制御下、ベクトル演算1を行う
D0→VOP2 ;マスクD0の制御下、ベクトル演算2を行う
・
・
・
D0→VOP10 ;マスクD0の制御下、ベクトル演算10を行う
L1
Claims (21)
- 命令のストリームをデコードするように構成される命令デコーダと、
前記デコードされた命令のストリームを処理するように構成されるデータプロセッサと、を備え、
前記データプロセッサは、前記命令のストリームを分析し、前記命令のストリーム内の複数の隣接する命令を識別するように構成され、その実行は、データ条件が満たされているということに依存し、その実行は、データ条件が満たされていないとき、データレジスタ内に記憶された値を変化させず、前記複数の隣接する命令の識別に応答して、前記データプロセッサは、
前記データ条件が満たされているかどうかの判定を開始し、
前記複数の隣接する命令の処理を開始し、
前記データ条件が満たされていないという判定に応答して、
未だ実行されていない前記複数の隣接する命令のうちの任意の中間の命令を実行せずに、前記複数の隣接する命令後に実行されるべき次の命令にスキップし、前記次の命令における実行を継続する、
ように構成されるデータ処理装置。 - 前記データ処理装置は、データ記憶をさらに備え、前記データ処理装置は、前記複数の隣接する命令に応答して、標的場所として、前記複数の隣接する命令の実行後実行されるべき前記次の命令の場所を識別する識別子を前記データ記憶内に記憶し、スキップフラグを前記データ記憶内に設定し、前記スキップフラグは、前記プロセッサに、前記データ条件が満たされていないことに応答して、前記プロセッサが、プログラムカウンタを前記標的場所に対応するアドレスで更新すべきであることを示す、請求項1に記載のデータ処理装置。
- 前記次の命令の場所を識別する前記識別子は、アドレスを備える、請求項2に記載のデータ処理装置。
- 前記複数の隣接する命令は、ベクトルデータ要素を処理するためのベクトル命令を備え、各ベクトル命令は、前記ベクトルデータ要素内のどの要素が処理されるかを制御するマスクを備え、前記データ条件が満たされていないことは、ゼロを備える前記マスクが、処理されるべきデータ要素がないことを示す、前記請求項のいずれか1つに記載のデータ処理装置。
- 前記複数の隣接する命令は、複数の命令を備え、それぞれ、同一の述語を備え、前記述語は、前記データ条件を判定し、前記述語が満たされていないことは、前記データ条件が満たされていないことに相当し、前記述語が満たされていることに応答して、前記命令のみ完了し、任意の記憶されたデータ値を更新し、前記データ処理装置は、
前記複数の隣接する命令の処理を開始し、
前記データ条件が満たされていないという判定に応答して、
記憶されたデータ値が更新されないように、前記複数の隣接する命令の実行を終了し、
未だ実行されていない前記複数の隣接する命令のうちの任意の中間の命令を実行せずに、前記複数の隣接する命令に続く次の命令にスキップし、前記次の命令における実行を継続する、
ように構成される、請求項1から3のいずれか1つに記載のデータ処理装置。 - 前記データ処理装置は、データ記憶および検出回路をさらに備え、
前記検出回路は、前記データ条件が満たされていないということに依存する、条件付き分岐命令の検出に応答して、前記複数の隣接する命令を迂回して前方に分岐し、
前記標的場所として、前記分岐命令の標的場所を示す値を前記データ記憶内に記憶し、前記スキップフラグ値を前記データ記憶内に設定し、
前記プロセッサは、前記分岐を行うべきではないという前記スキップフラグに応答し、前記データ条件が満たされているかどうかの判定を開始し、
前記複数の隣接する命令の実行を開始し、
前記データ条件が満たされていないという判定に応答して、プログラムカウンタを前記標的場所に依存した値に設定する、
請求項2または3に記載のデータ処理装置。 - 前記条件付き分岐命令は、ベクトル値を条件とし、前記プロセッサは、前記ベクトルの値を試験するベクトル試験命令を実行することによって、前記データ条件が満たされているかどうかの前記判定を開始し、前記ベクトル値が、所定の値を備えるという判定に応答して、前記データ条件が満たされていないと判定される、請求項6に記載のデータ処理装置。
- 前記データ処理装置は、データ記憶および検出回路をさらに備え、
前記検出回路は、前記データ条件に依存する条件付き分岐命令の検出に応答して、前記複数の隣接する命令の開始へと後方に分岐し、
前記標的場所として、前記データ記憶内に1だけインクリメントされた前記分岐命令の場所を記憶し、スキップフラグ値を前記データ記憶内に設定し、
前記プロセッサは、前記分岐を行うべきという前記スキップフラグに応答して、前記データ条件が満たされたかどうかを判定し、
前記複数の隣接する命令の実行を開始し、
前記データ条件が満たされていないという判定に応答して、プログラムカウンタを前記標的場所として前記データ記憶内に記憶された値に依存する値に設定する、
請求項2または3に記載のデータ処理装置。 - 前記条件付き分岐命令は、ベクトル値を条件とし、前記プロセッサは、前記ベクトルの値を試験するベクトル試験命令を実行することによって、前記データ条件が満たされているかどうかの前記判定を開始し、前記ベクトル値が、所定の値を備えるという判定に応答して、前記データ条件が満たされていないと判定される、請求項8に記載のデータ処理装置。
- データ記憶および検出回路をさらに備え、
前記検出回路は、前記データ条件が前記命令に従うことに依存する、前記複数の隣接する命令を示す命令の検出に応答し、前記命令は、前記データ条件と、完了されるべき各命令に対して満たされるべきかどうかの指示とを備え、
前記標的場所として、前記複数の命令に続いて、前記次の命令の場所を識別する識別子を記憶し、スキップフラグ値を前記データ記憶内に設定し、
前記プロセッサは、前記データ条件が満たされていないという判定に応答して、前記スキップフラグに応答して、前記標的場所にスキップする、
請求項2または3に記載のデータ処理装置。 - 前記データ条件が満たされているという判定に応答して、前記プロセッサは、前記複数の隣接する命令の実行を継続し、前記スキップフラグをクリアするように構成される、請求項2または3に記載のデータ処理装置。
- 前記データ条件が判定される前に、前記隣接する命令の全部を実行することに応じて、前記プロセッサは、前記スキップフラグをクリアするように構成される、請求項2または3に記載のデータ処理装置。
- 標的レジスタおよびデータ条件レジスタを指定する、少なくとも1つのスキップ命令をデコードするように構成される命令デコーダと、
前記命令デコーダによって制御されるデータ処理演算を行うように構成されるデータプロセッサと、
を備え、前記データプロセッサは、前記デコードされた少なくとも1つのスキップ命令に応答して、前記データ条件の判定を開始し、前記命令ストリーム内の後続命令の処理を開始し、前記データ条件が所定の結果を有していないという判定に応答して、プログラムカウンタを前記標的レジスタ内に記憶された値に依存する値に設定するデータ処理装置。 - 前記データ処理装置は、データ記憶を備え、
前記命令デコーダは、前記少なくとも1つのスキップ命令に応答して、スキップフラグを前記データ記憶内に設定する、請求項13に記載のデータ処理装置。 - 標的レジスタおよびデータ条件レジスタを指定する、少なくとも1つのループ命令をデコードするように構成される命令デコーダと、
前記命令デコーダによって制御されるデータ処理演算を行うように構成されるデータプロセッサと、を備え、
前記データプロセッサは、前記デコードされた少なくとも1つのループ命令に応答し、前記データ条件の判定を開始し、前記ループの開始時に、前記プログラムカウンタを以前に実行された命令のアドレスに設定し、前記命令ストリーム内の命令の処理を開始し、前記データ条件が所定の結果を有していないという判定に応答して、プログラムカウンタを前記標的レジスタ内に記憶された値に依存する値に設定するデータ処理装置。 - データプロセッサによって実行するためのアプリケーションをコンパイルする方法であって、
前記アプリケーション内の複数の命令を分析することと、
スキップ命令に続いて、複数の隣接する命令を含む、命令のストリームを生成することであって、その実行は、同一のデータ条件に依存し、その実行は、データ条件が満たされていないとき、データレジスタ内に記憶された値を変化させないことと、
前記スキップ命令は、標的アドレスを指定し、前記標的アドレスは、前記隣接する命令および前記データ条件に続く次の命令のアドレスであって、前記スキップ命令は、前記データプロセッサによって実行されると、
前記データ条件が満たされているかどうかの判定を開始し、
前記複数の隣接する命令の処理を開始するよう、
前記データプロセッサを制御することと、
前記データ条件が満たされているという判定に応答して、未だ実行されていない前記複数の隣接する命令のうちの任意の中間の命令を実行せずに、前記複数の隣接する命令に続いて、次の命令にスキップし、前記次の命令における実行を継続することと、
前記データ条件が満たされていないという判定に応答して、前記複数の隣接する命令の実行を継続することと、
を備える方法。 - データプロセッサによって実行するためのアプリケーションをコンパイルする方法であって、
前記アプリケーション内の複数の命令を分析することと、
複数の隣接する命令の第1の命令のアドレスを指定するループ命令を含む、命令のストリームを生成し、その実行が、同一のデータ条件に依存し、データ条件が満たされていないときのその実行が、データレジスタ内に記憶された値を変化させない命令を備える、前記複数の隣接する命令にジャンプすることと、
前記ループ命令は、前記データ条件および標的アドレスを指定し、前記標的アドレスは、前記ループ命令に続く次の命令のアドレスであって、前記ループ命令は、前記データプロセッサによって実行されると、
前記データ条件が満たされているかどうかの判定を開始し、
前記複数の隣接する命令にジャンプし、その処理を開始するよう、
前記データプロセッサを制御することと、
前記データ条件が満たされているという判定に応答して、 未だ実行されていない前記複数の隣接する命令のうちの任意の中間の命令を実行せずに、前記標的アドレスによって指定される前記命令にスキップし、前記命令において、実行を継続することと、
前記データ条件が満たされていないという判定に応答して、前記複数の隣接する命令の実行を継続することと、
を備える方法。 - データプロセッサ上で実行されると、請求項16に記載の方法のステップを行う前記データプロセッサを制御するように演算可能である、スキップ命令を備える、コンピュータプログラムを記憶するコンピュータプログラム製品。
- データプロセッサ上で実行されると、請求項17に記載の方法のステップを行う前記データプロセッサを制御するように演算可能である、ループ命令を備える、コンピュータプログラムを記憶するコンピュータプログラム製品。
- データを処理する方法であって、
命令のストリームをデコードすることと、
前記デコードされた命令のストリームを処理することと、
前記命令のストリーム内の複数の隣接する命令に応答し、その実行は、データ条件が満たされているということに依存し、その実行は、データ条件が満たされていないとき、データレジスタ内に記憶された値を変化させないことと、
前記データ条件が満たされているかどうかの判定を開始することと、
前記複数の隣接する命令の処理を開始することと、
前記データ条件が満たされていないという判定に応答して、未だ実行されていない前記複数の隣接する命令のうちの任意の中間の命令を実行せずに、前記複数の隣接する命令後に実行されるべき次の命令にスキップし、前記次の命令における実行を継続することと、
を備える方法。 - データ処理装置上で実行するコンピュータプログラムによって提供される仮想機械であって、請求項1に記載の前記データ処理装置に従って、命令実行環境を提供する、仮想機械。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/929,667 US9176737B2 (en) | 2011-02-07 | 2011-02-07 | Controlling the execution of adjacent instructions that are dependent upon a same data condition |
US12/929,667 | 2011-02-07 | ||
PCT/GB2012/050161 WO2012107737A1 (en) | 2011-02-07 | 2012-01-26 | Controlling the execution of adjacent instructions that are dependent upon a same data condition |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014504770A true JP2014504770A (ja) | 2014-02-24 |
JP6267513B2 JP6267513B2 (ja) | 2018-01-24 |
Family
ID=45614861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013552260A Active JP6267513B2 (ja) | 2011-02-07 | 2012-01-26 | 同一のデータ条件に依存する、隣接する命令の実行の制御 |
Country Status (10)
Country | Link |
---|---|
US (1) | US9176737B2 (ja) |
EP (1) | EP2673703B1 (ja) |
JP (1) | JP6267513B2 (ja) |
KR (1) | KR101827747B1 (ja) |
CN (1) | CN103348318B (ja) |
BR (1) | BR112013019824B1 (ja) |
GB (1) | GB2501211B (ja) |
IL (1) | IL227476A (ja) |
MY (1) | MY160644A (ja) |
WO (1) | WO2012107737A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9335997B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using a wrapping rotate previous instruction in the macroscalar architecture |
US9342304B2 (en) | 2008-08-15 | 2016-05-17 | Apple Inc. | Processing vectors using wrapping increment and decrement instructions in the macroscalar architecture |
US9335980B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using wrapping propagate instructions in the macroscalar architecture |
US9116686B2 (en) | 2012-04-02 | 2015-08-25 | Apple Inc. | Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction |
US9389860B2 (en) | 2012-04-02 | 2016-07-12 | Apple Inc. | Prediction optimizations for Macroscalar vector partitioning loops |
US9626185B2 (en) * | 2013-02-22 | 2017-04-18 | Apple Inc. | IT instruction pre-decode |
US9348589B2 (en) | 2013-03-19 | 2016-05-24 | Apple Inc. | Enhanced predicate registers having predicates corresponding to element widths |
US9817663B2 (en) | 2013-03-19 | 2017-11-14 | Apple Inc. | Enhanced Macroscalar predicate operations |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
US9830153B2 (en) * | 2014-06-20 | 2017-11-28 | Netronome Systems, Inc. | Skip instruction to skip a number of instructions on a predicate |
US9519482B2 (en) * | 2014-06-20 | 2016-12-13 | Netronome Systems, Inc. | Efficient conditional instruction having companion load predicate bits instruction |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10175988B2 (en) * | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
GB2540941B (en) * | 2015-07-31 | 2017-11-15 | Advanced Risc Mach Ltd | Data processing |
US10055208B2 (en) * | 2015-08-09 | 2018-08-21 | Oracle International Corporation | Extending a virtual machine instruction set architecture |
CN107179935B (zh) * | 2016-03-11 | 2021-01-29 | 华为技术有限公司 | 一种指令执行方法及虚拟机 |
KR101699491B1 (ko) * | 2016-03-29 | 2017-01-24 | 주식회사 포워드벤처스 | 기능 사용법 표시 장치, 방법, 및 컴퓨터 프로그램 |
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
US10860534B2 (en) | 2016-10-27 | 2020-12-08 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
US10956051B2 (en) | 2016-10-31 | 2021-03-23 | Oracle International Corporation | Data-packed storage containers for streamlined access and migration |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US10884746B2 (en) * | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10908911B2 (en) | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
GB2571996B (en) * | 2018-03-16 | 2020-09-09 | Advanced Risc Mach Ltd | Branch target variant of branch-with-link instruction |
CN111124500B (zh) * | 2019-12-12 | 2022-03-08 | 浪潮(北京)电子信息产业有限公司 | 一种指令执行方法、装置、设备及存储介质 |
US11886883B2 (en) | 2021-08-26 | 2024-01-30 | International Business Machines Corporation | Dependency skipping in a load-compare-jump sequence of instructions by incorporating compare functionality into the jump instruction and auto-finishing the compare instruction |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02227731A (ja) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | データ処理システム |
JPH04137169A (ja) * | 1990-09-28 | 1992-05-12 | Nec Corp | 情報処理装置 |
US5799180A (en) * | 1995-10-31 | 1998-08-25 | Texas Instruments Incorporated | Microprocessor circuits, systems, and methods passing intermediate instructions between a short forward conditional branch instruction and target instruction through pipeline, then suppressing results if branch taken |
JPH10320380A (ja) * | 1997-05-20 | 1998-12-04 | Kofu Nippon Denki Kk | ベクトル処理装置 |
JPH1185516A (ja) * | 1997-07-14 | 1999-03-30 | Matsushita Electric Ind Co Ltd | 分岐予測方法およびプロセッサ |
US6918032B1 (en) * | 2000-07-06 | 2005-07-12 | Intel Corporation | Hardware predication for conditional instruction path branching |
US20100262813A1 (en) * | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Detecting and Handling Short Forward Branch Conversion Candidates |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2273377A (en) | 1992-12-11 | 1994-06-15 | Hughes Aircraft Co | Multiple masks for array processors |
WO2004001584A2 (en) * | 2002-06-24 | 2003-12-31 | Ante Vista Gmbh | A method for executing structured symbolic machine code on a microprocessor |
US8904155B2 (en) * | 2006-03-17 | 2014-12-02 | Qualcomm Incorporated | Representing loop branches in a branch history register with multiple bits |
-
2011
- 2011-02-07 US US12/929,667 patent/US9176737B2/en active Active
-
2012
- 2012-01-26 JP JP2013552260A patent/JP6267513B2/ja active Active
- 2012-01-26 KR KR1020137022123A patent/KR101827747B1/ko active IP Right Grant
- 2012-01-26 EP EP12704439.4A patent/EP2673703B1/en active Active
- 2012-01-26 GB GB1313488.7A patent/GB2501211B/en active Active
- 2012-01-26 CN CN201280007860.7A patent/CN103348318B/zh active Active
- 2012-01-26 BR BR112013019824-9A patent/BR112013019824B1/pt active IP Right Grant
- 2012-01-26 WO PCT/GB2012/050161 patent/WO2012107737A1/en active Application Filing
- 2012-01-26 MY MYPI2013701309A patent/MY160644A/en unknown
-
2013
- 2013-07-14 IL IL227476A patent/IL227476A/en active IP Right Grant
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02227731A (ja) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | データ処理システム |
JPH04137169A (ja) * | 1990-09-28 | 1992-05-12 | Nec Corp | 情報処理装置 |
US5799180A (en) * | 1995-10-31 | 1998-08-25 | Texas Instruments Incorporated | Microprocessor circuits, systems, and methods passing intermediate instructions between a short forward conditional branch instruction and target instruction through pipeline, then suppressing results if branch taken |
JPH10320380A (ja) * | 1997-05-20 | 1998-12-04 | Kofu Nippon Denki Kk | ベクトル処理装置 |
JPH1185516A (ja) * | 1997-07-14 | 1999-03-30 | Matsushita Electric Ind Co Ltd | 分岐予測方法およびプロセッサ |
US6918032B1 (en) * | 2000-07-06 | 2005-07-12 | Intel Corporation | Hardware predication for conditional instruction path branching |
US20100262813A1 (en) * | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Detecting and Handling Short Forward Branch Conversion Candidates |
Non-Patent Citations (1)
Title |
---|
JPN6015030072; SUGATeCH: '分岐予測とパイプラインの関係はいかなるものか?' C MAGAZINE 第18巻,第1号, 20060101, Pages:98〜102, ソフトバンククリエイティブ株式会社 * |
Also Published As
Publication number | Publication date |
---|---|
GB2501211B (en) | 2016-08-17 |
US20120204007A1 (en) | 2012-08-09 |
CN103348318B (zh) | 2016-08-17 |
EP2673703A1 (en) | 2013-12-18 |
WO2012107737A1 (en) | 2012-08-16 |
KR101827747B1 (ko) | 2018-03-22 |
MY160644A (en) | 2017-03-15 |
EP2673703B1 (en) | 2019-08-28 |
JP6267513B2 (ja) | 2018-01-24 |
GB2501211A (en) | 2013-10-16 |
KR20140014143A (ko) | 2014-02-05 |
IL227476A (en) | 2017-05-29 |
BR112013019824B1 (pt) | 2021-06-15 |
IL227476A0 (en) | 2013-09-30 |
CN103348318A (zh) | 2013-10-09 |
BR112013019824A2 (pt) | 2020-08-04 |
US9176737B2 (en) | 2015-11-03 |
GB201313488D0 (en) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6267513B2 (ja) | 同一のデータ条件に依存する、隣接する命令の実行の制御 | |
JP5889986B2 (ja) | 実行された命令の結果を選択的にコミットするためのシステムおよび方法 | |
TWI740844B (zh) | 用於資料處理的方法、設備、及電腦程式 | |
KR101459536B1 (ko) | 사전 통지 기법들을 사용하여 프로그램의 순차적 흐름을 변경하기 위한 방법들 및 장치 | |
JP4718901B2 (ja) | 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム | |
JP6971220B2 (ja) | スプライス演算を行うための装置および方法 | |
US10776124B2 (en) | Handling exceptional conditions for vector arithmetic instruction | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
JP2010526392A (ja) | システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法 | |
TW201737066A (zh) | 程式迴圈控制 | |
TW201734768A (zh) | 分支指令 | |
TW201737060A (zh) | 程式迴圈控制 | |
KR100316710B1 (ko) | 병렬 프로세서를 위한 무순서 명령어 발행 방법 및 장치 | |
EP3198400B1 (en) | Dependency-prediction of instructions | |
JP3900359B2 (ja) | パイプライン化されたプロセッサ及び命令ループ実行方法 | |
KR20070108936A (ko) | 조건부 명령어가 실행되지 않을 경우 소스 오퍼랜드를대기하는 것을 중지하는 방법 | |
KR102379886B1 (ko) | 벡터 명령 처리 | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
JP3748191B2 (ja) | 計算機とその制御方法 | |
WO2007048988A1 (en) | A data processing apparatus and method for handling procedure call instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151028 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160331 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160729 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20160809 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20161014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170901 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6267513 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 |