JP7011595B2 - 分岐命令 - Google Patents
分岐命令 Download PDFInfo
- Publication number
- JP7011595B2 JP7011595B2 JP2018548913A JP2018548913A JP7011595B2 JP 7011595 B2 JP7011595 B2 JP 7011595B2 JP 2018548913 A JP2018548913 A JP 2018548913A JP 2018548913 A JP2018548913 A JP 2018548913A JP 7011595 B2 JP7011595 B2 JP 7011595B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- loop
- processing
- expected
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 195
- 238000000034 method Methods 0.000 claims description 68
- 230000008569 process Effects 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 28
- 230000001960 triggered effect Effects 0.000 claims description 23
- 230000005055 memory storage Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims 1
- 230000006399 behavior Effects 0.000 description 37
- 230000003111 delayed effect Effects 0.000 description 19
- 102100024348 Beta-adducin Human genes 0.000 description 10
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 10
- 208000011580 syndromic disease Diseases 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000001629 suppression Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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
-
- 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/30054—Unconditional 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/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/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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
プログラム命令のシーケンスによって指定される処理動作を行う処理回路と、
前記処理動作を行うために、プログラム命令の前記シーケンスを復号して前記処理回路を制御する制御信号を生成する命令復号器と、
を備え、
前記命令復号器が、分岐見込み命令を復号する分岐見込み命令復号回路を備え、前記分岐見込み命令が、分岐宛先アドレスと関連付けられたプログラム可能なパラメータと、プログラム命令の前記シーケンス内の前記分岐見込み命令に続く所定の命令を示す、さらなるプログラム可能な分岐ポイント・データ・パラメータと、を有し、
前記処理回路が、前記分岐見込み命令復号回路によって制御され、プログラム命令の前記シーケンスの処理が前記所定の命令に到達すると前記分岐宛先アドレスに対応する分岐宛先命令から始まるプログラム命令の処理への分岐をトリガする前記分岐ポイント・データに応答する、分岐制御回路を備える、
データ処理装置である一例を提供する。
プログラム命令のシーケンスによって指定される処理動作を行うための処理手段と、
前記処理動作を行うように前記処理手段を制御するために制御信号を生成するようプログラム命令の前記シーケンスに応答する命令復号器手段と、
を備え、
前記命令復号器手段が、分岐見込み命令を復号するための分岐見込み命令復号手段を備え、前記分岐見込み命令が、分岐宛先アドレス、及びプログラム命令の前記シーケンス内の前記分岐見込み命令に続く所定の命令を示す分岐ポイント・データとそれぞれ関連付けられたプログラム可能なパラメータを有し、
前記処理手段が、前記分岐見込み命令復号手段によって制御され、プログラム命令の前記シーケンスの処理が前記所定の命令に到達すると前記分岐宛先アドレスに対応する分岐宛先命令から始まるプログラム命令の処理への分岐をトリガする前記分岐ポイント・データに応答する、分岐制御手段を備える、
データを処理するための装置を提供する。
プログラム命令のシーケンスによって指定される処理動作を行うステップと、
前記処理動作を行う前記ステップを制御する制御信号を生成するためにプログラム命令の前記シーケンスを復号するステップと、
を含み、
前記復号するステップが、分岐見込み命令を復号するステップを含み、前記分岐見込み命令が、分岐宛先アドレス、及びプログラム命令の前記シーケンス内の前記分岐見込み命令に続く所定の命令を示す分岐ポイント・データとそれぞれ関連付けられたプログラム可能なパラメータを有し、
プログラム命令の前記シーケンスの処理が前記所定の命令に到達するときに、前記分岐宛先アドレスに対応する分岐宛先命令から始まるプログラム命令の処理への分岐をトリガするステップ
を含む、データを処理する方法を提供する。
・DLS:非述語的ループ開始命令。ループ終了アドレス「loopend」及び繰返しrNの数を指定するが、ベクトル要素サイズは指定しないので、浮動小数点制御レジスタ内のVEwidthパラメータに対する変更は行われない。VEwidthはデフォルトで、1つのベクトル・レジスタVRwidthの中のビット数に等しくなると想定される。
・DLSP:述語的ループ開始命令。ループ終了アドレス「loopend」及び繰返しrNの数を指定し、ベクトル命令に対する要素幅VEwidthを示す「size」パラメータも指定する。要素幅は、浮動小数点制御レジスタに格納される。浮動小数点コンテキストがまだアクセス可能でない場合、DLSP命令は、遅延状態保存動作をトリガして、以前の浮動小数点コンテキストをメモリに保存し、浮動小数点コンテキストは、要素幅を浮動小数点制御レジスタに格納する前に、現在のプロセスにアクセス可能になる。
・DLE:非述語的ループ終了命令。DLS命令に続いて使用される。浮動小数点コンテキストがアクセス不能なときに実行されると、ループ終了命令復号回路は、メモリへの、浮動小数点コンテキストのいずれの遅延状態保存もトリガしない。
・DLEP:述語的ループ終了命令。DLSP命令に続いて使用される。浮動小数点コンテキストがアクセス不能なときに実行されると、ループ終了命令復号回路は、浮動小数点コンテキストのメモリへの保存をトリガする制御信号を生成し、浮動小数点コンテキストをアクセス可能にする。DLEP命令は、浮動小数点コンテキストが、現在のプロセス/特権レベルに対してアクセスされることを許可されない場合、アクセス許可チェック回路1008によって障害条件がトリガされることを保証するために、浮動小数点コンテキスト・レジスタのうちの1つ(例えば、VEwidthを格納する浮動小数点制御レジスタ)へのアクセスもトリガする。
Claims (19)
- プログラム命令のシーケンスによって指定される処理動作を行う処理回路と、
前記処理動作を行うために、プログラム命令の前記シーケンスを復号して前記処理回路を制御する制御信号を生成する命令復号器と、
を備え、
前記命令復号器が、分岐見込み命令を復号する分岐見込み命令復号回路を備え、前記分岐見込み命令が、分岐宛先アドレスと関連付けられたプログラム可能なパラメータと、プログラム命令の前記シーケンス内の前記分岐見込み命令に続く所定の命令を示す分岐ポイント・データを提供する、さらなるプログラム可能なパラメータと、を有し、
前記処理回路が、前記分岐見込み命令復号回路によって制御され、プログラム命令の前記シーケンスの処理が前記所定の命令に到達すると前記分岐宛先アドレスに対応する分岐宛先命令から始まるプログラム命令の処理への分岐をトリガする前記分岐ポイント・データに応答する、分岐制御回路を備え、
前記分岐見込み命令が、条件付き分岐見込み命令であって、当該条件付き分岐見込み命令が満たされたということと関連付けられた1つ又は複数の条件コードに依存して実行される条件付き分岐見込み命令であり、
前記1つ又は複数の条件コードが満たされないときに前記条件付き分岐見込み命令に応答して、前記分岐見込み命令復号回路が、プログラム命令の前記シーケンスの処理が前記所定の命令に到達したときにプログラム命令の前記シーケンス内の前記その後の分岐命令に続く分岐迂回命令の処理への分岐をトリガするように前記分岐制御回路を制御する分岐制御データをセットするように構成される、
データを処理するための装置。 - 前記分岐制御回路が前記分岐をトリガすると、前記分岐宛先命令が、プログラム命令の前記シーケンス内の前記所定の命令の直前の命令に続き、かつ、前記所定の命令の直前の前記命令によって指定された動作及び前記分岐見込み命令によって指定された動作が、前記処理回路によって連続的に行われる、請求項1に記載の装置。
- 前記分岐ポイント・データが、
前記所定の命令のアドレスを示すアドレス・データと、
前記所定の命令の直前にある最後の命令のアドレスを示す終了データと、
前記分岐見込み命令と前記所定の命令との間の間隔を示すオフセット・データと、
命令の開始記憶アドレスを区別するメモリ記憶アドレスのビットの最下位ビットの端から始まる前記所定の命令の前記メモリ記憶アドレスを示すビットの真部分集合と、
前記所定の命令の前に処理されるべき、残っている命令の数を示す残存サイズ命令データと、
前記所定の命令に到達する前に処理されるべき、残っているプログラムの記憶場所の数を示す残存サイズ・データと、
のうちの1つ又は複数を含む、請求項1及び2のいずれか一項に記載の装置。 - 前記分岐見込み命令復号器回路が、分岐制御キャッシュに前記分岐ポイント・データ及び前記分岐宛先アドレスを格納するように前記処理回路を制御する、請求項1から3までのいずれかに記載の装置。
- 前記分岐見込み命令復号回路が前記分岐見込み命令を復号するとき、前記分岐制御回路が、命令の開始記憶アドレスを区別するメモリ記憶アドレスのビットの最下位ビットの端から始まる前記所定の命令の前記メモリ記憶アドレスを示すビットの真部分集合を格納する、請求項4に記載の装置。
- ビットの前記真部分集合が、
プログラム・カウンタの値を示す値の対応する部分と、
命令フェッチ・アドレスを示す値の対応する部分と、
のうちの1つにマッチするとき、前記分岐制御回路が前記分岐をトリガする、請求項5に記載の装置。 - 前記処理回路がリセットされることと、
ループ制御回路又はループ終了命令が、プログラム・ループ本体のさらなる繰返しが必要とされないことを決定することと、
例外に入ることと、
例外がテール・チェーンし、それによって現在の例外より前の状態を復元させずに、処理が前記現在の例外の処理から次の例外の処理に直接的に進むことと、
所定のイミディエート宛先アドレスの範囲より大きい分岐命令の実行と、
分岐命令の実行と、
ループ開始命令の実行と、
例外から復帰することと、
前記データを処理するための装置の命令キャッシュが無効化されるようにする命令の実行と、
分岐制御データのキャッシングをディスエーブルする命令の実行と、
分岐予測をディスエーブルする命令の実行と、
プログラム・ループ本体内部の分岐が、ループ開始命令とループ終了命令との間にないアドレスを宛先にしていると前記処理回路が決定することと、
セキュア・モードの動作と非セキュア・モードの動作との間での切り替えと、
のうちの1つ又は複数に応答して前記分岐ポイント・データが無効化される、請求項4に記載の装置。 - 前記分岐ポイント・データが無効化されると、プログラム・フローが前記所定の命令に進行する、請求項7に記載の装置。
- 前記条件付き分岐見込み命令が、前記所定の命令のアドレスに相対する前記分岐迂回命令のアドレスを示す迂回パラメータを指定する、請求項1に記載の装置。
- 前記命令復号器が、前記命令復号器によってサポートされる複数の命令長から選択された可変命令長を有する命令を復号するように構成され、
前記迂回パラメータが、前記その後の分岐命令の命令長を示す、
請求項9に記載の装置。 - 前記1つ又は複数の条件コードが満たされ、分岐制御キャッシュが、より以前の分岐見込み命令に応答してセットされた有効な分岐制御データを既に格納しているときに前記条件付き分岐見込み命令に応答して、前記分岐見込み命令復号器回路が、前記有効な分岐制御データを上書きするように前記処理回路を制御するように構成され、
前記1つ又は複数の条件コードが満たされず、前記分岐制御キャッシュが、より以前の分岐見込み命令に応答してセットされた有効な分岐制御データを既に格納しているときに前記条件付き分岐見込み命令に応答して、前記分岐見込み命令復号器回路が、前記分岐制御キャッシュに前記有効な分岐制御データを保持するように前記処理回路を制御するように構成される、
請求項1から10までのいずれかに記載の装置。 - 分岐宛先アドレスと関連付けられた前記プログラム可能なパラメータが、レジスタ指定子を含み、前記分岐宛先アドレスが、前記レジスタ指定子に対応するレジスタに格納される、請求項1から11までのいずれかに記載の装置。
- 分岐宛先アドレスと関連付けられた前記プログラム可能なパラメータが、前記分岐見込み命令のメモリ・アドレスに依存する現在のメモリ・アドレスからのオフセットによって前記分岐宛先アドレスを示す、イミディエートオフセット値を含む、請求項1から11までのいずれかに記載の装置。
- 前記分岐見込み命令復号器回路が、前記分岐からの復帰に使用するための復帰アドレスをリンク・データ記憶機器内に格納するように前記処理回路を制御する、請求項1から13までのいずれか一項に記載の装置。
- 前記分岐制御回路が、プログラム命令の前記シーケンスの処理が前記所定の命令に到達するときに、前記分岐からの復帰に使用するための復帰アドレスをリンク・データ記憶機器に格納するように構成される、請求項1から13までのいずれかに記載の装置。
- 前記リンク・データ記憶機器が、
リンク・レジスタ、又は
スタック・ポインタ・レジスタに適用される所定のオフセットによって指定される記憶エリア内のアドレス
のうちの1つである、請求項14から15までのいずれかに記載の装置。 - プログラム命令のシーケンスによって指定される処理動作を行うための処理手段と、
前記処理動作を行うように前記処理手段を制御するために制御信号を生成するようプログラム命令の前記シーケンスに応答する命令復号器手段と、
を備え、
前記命令復号器手段が、分岐見込み命令を復号するための分岐見込み命令復号手段を備え、前記分岐見込み命令が、分岐宛先アドレス、及びプログラム命令の前記シーケンス内の前記分岐見込み命令に続く所定の命令を示す分岐ポイント・データとそれぞれ関連付けられたプログラム可能なパラメータを有し、
前記処理手段が、前記分岐見込み命令復号手段によって制御され、プログラム命令の前記シーケンスの処理が前記所定の命令に到達すると前記分岐宛先アドレスに対応する分岐宛先命令から始まるプログラム命令の処理への分岐をトリガする前記分岐ポイント・データに応答する、分岐制御手段を備え、
前記分岐見込み命令が、条件付き分岐見込み命令であって、当該条件付き分岐見込み命令が満たされたということと関連付けられた1つ又は複数の条件コードに依存して実行される条件付き分岐見込み命令であり、
前記1つ又は複数の条件コードが満たされないときに前記条件付き分岐見込み命令に応答して、前記分岐見込み命令復号手段が、プログラム命令の前記シーケンスの処理が前記所定の命令に到達したときにプログラム命令の前記シーケンス内のその後の分岐命令に続く分岐迂回命令の処理への分岐をトリガするように前記分岐制御手段を制御する分岐制御データをセットするように構成される、
データを処理するための装置。 - プログラム命令のシーケンスによって指定される処理動作を行うステップと、
前記処理動作を行う前記ステップを制御する制御信号を生成するためにプログラム命令の前記シーケンスを復号するステップと、
を含み、
前記復号するステップが、分岐見込み命令を復号するステップを含み、前記分岐見込み命令が、分岐宛先アドレス、及びプログラム命令の前記シーケンス内の前記分岐見込み命令に続く所定の命令を示す分岐ポイント・データとそれぞれ関連付けられたプログラム可能なパラメータを有し、
プログラム命令の前記シーケンスの処理が前記所定の命令に到達するときに、前記分岐宛先アドレスに対応する分岐宛先命令から始まるプログラム命令の処理への分岐をトリガするステップを含み、
前記分岐見込み命令が、条件付き分岐見込み命令であって、当該条件付き分岐見込み命令が満たされたということと関連付けられた1つ又は複数の条件コードに依存して実行される条件付き分岐見込み命令であり、
前記1つ又は複数の条件コードが満たされないときに前記条件付き分岐見込み命令に応答して、プログラム命令の前記シーケンスの処理が前記所定の命令に到達したときにプログラム命令の前記シーケンス内のその後の分岐命令に続く分岐迂回命令の処理への分岐をトリガするように分岐制御回路を制御する分岐制御データをセットするステップ
を含む、データを処理する方法。 - 請求項18に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1604948.8 | 2016-03-23 | ||
GB1604948.8A GB2548604B (en) | 2016-03-23 | 2016-03-23 | Branch instruction |
PCT/GB2017/050774 WO2017163038A1 (en) | 2016-03-23 | 2017-03-21 | Branch instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019509576A JP2019509576A (ja) | 2019-04-04 |
JP7011595B2 true JP7011595B2 (ja) | 2022-01-26 |
Family
ID=55968778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018548913A Active JP7011595B2 (ja) | 2016-03-23 | 2017-03-21 | 分岐命令 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10768938B2 (ja) |
EP (1) | EP3433723B1 (ja) |
JP (1) | JP7011595B2 (ja) |
KR (1) | KR102353639B1 (ja) |
CN (1) | CN108885549B (ja) |
GB (1) | GB2548604B (ja) |
IL (1) | IL261341B (ja) |
TW (1) | TWI746529B (ja) |
WO (1) | WO2017163038A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2548602B (en) | 2016-03-23 | 2019-10-23 | Advanced Risc Mach Ltd | Program loop control |
GB2548603B (en) * | 2016-03-23 | 2018-09-26 | Advanced Risc Mach Ltd | Program loop control |
GB2551574B (en) * | 2016-06-24 | 2019-11-27 | Advanced Risc Mach Ltd | An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry |
GB2564130B (en) * | 2017-07-04 | 2020-10-07 | Advanced Risc Mach Ltd | An apparatus and method for controlling execution of instructions |
CN109783143B (zh) * | 2019-01-25 | 2021-03-09 | 贵州华芯通半导体技术有限公司 | 用于流水线指令流的控制方法和控制设备 |
CN110134441B (zh) * | 2019-05-23 | 2020-11-10 | 苏州浪潮智能科技有限公司 | Risc-v分支预测方法、装置、电子设备及存储介质 |
CN112835624A (zh) * | 2021-02-18 | 2021-05-25 | 中国科学院自动化研究所 | 指令字处理器及零开销循环处理方法、电子设备及介质 |
US20230305992A1 (en) * | 2022-03-25 | 2023-09-28 | Nokia Solutions And Networks Oy | Processor using target instructions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724563A (en) | 1995-04-12 | 1998-03-03 | Matsushita Electric Industrial Co., Ltd. | Pipeline processsor |
US5790845A (en) | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
JP6314195B2 (ja) | 2016-10-20 | 2018-04-18 | 住友電工プリントサーキット株式会社 | プリント配線板及び該プリント配線板の製造方法 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551895A (en) * | 1968-01-15 | 1970-12-29 | Ibm | Look-ahead branch detection system |
US5388841A (en) * | 1992-01-30 | 1995-02-14 | A/N Inc. | External memory system having programmable graphics processor for use in a video game system or the like |
JPH0827715B2 (ja) * | 1993-03-03 | 1996-03-21 | 日本電気株式会社 | 記憶装置 |
JPH08292887A (ja) * | 1995-02-24 | 1996-11-05 | Hitachi Ltd | 命令の分岐方法およびプロセッサ |
JP2883035B2 (ja) * | 1995-04-12 | 1999-04-19 | 松下電器産業株式会社 | パイプライン・プロセッサ |
JP2931890B2 (ja) | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
US5742804A (en) * | 1996-07-24 | 1998-04-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Instruction prefetch mechanism utilizing a branch predict instruction |
US6189092B1 (en) * | 1997-06-30 | 2001-02-13 | Matsushita Electric Industrial Co., Ltd. | Pipeline processor capable of reducing branch hazards with small-scale circuit |
US6092188A (en) * | 1997-12-23 | 2000-07-18 | Intel Corporation | Processor and instruction set with predict instructions |
US6304963B1 (en) | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
TW455814B (en) * | 1998-08-06 | 2001-09-21 | Intel Corp | Software directed target address cache and target address register |
US6611910B2 (en) | 1998-10-12 | 2003-08-26 | Idea Corporation | Method for processing branch operations |
US6308322B1 (en) * | 1999-04-06 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints |
US6523110B1 (en) | 1999-07-23 | 2003-02-18 | International Business Machines Corporation | Decoupled fetch-execute engine with static branch prediction support |
US6446197B1 (en) * | 1999-10-01 | 2002-09-03 | Hitachi, Ltd. | Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions |
WO2002084451A2 (en) | 2001-02-06 | 2002-10-24 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US7159103B2 (en) | 2003-03-24 | 2007-01-02 | Infineon Technologies Ag | Zero-overhead loop operation in microprocessor having instruction buffer |
GB2409064B (en) | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing in parallel a data processing operation on data elements |
US7930526B2 (en) * | 2004-03-24 | 2011-04-19 | Arm Limited | Compare and branch mechanism |
US20050223202A1 (en) * | 2004-03-31 | 2005-10-06 | Intel Corporation | Branch prediction in a pipelined processor |
US7272704B1 (en) | 2004-05-13 | 2007-09-18 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | Hardware looping mechanism and method for efficient execution of discontinuity instructions |
US7565514B2 (en) | 2006-04-28 | 2009-07-21 | Freescale Semiconductor, Inc. | Parallel condition code generation for SIMD operations |
US7991985B2 (en) | 2006-12-22 | 2011-08-02 | Broadcom Corporation | System and method for implementing and utilizing a zero overhead loop |
ATE463788T1 (de) | 2007-06-26 | 2010-04-15 | Ericsson Telefon Ab L M | Datenverarbeitungseinheit für anweisungen in geschachtelten schleifen |
JP4526560B2 (ja) | 2007-12-05 | 2010-08-18 | 日本テキサス・インスツルメンツ株式会社 | プロセッサおよび信号処理方法 |
US7925866B2 (en) * | 2008-01-23 | 2011-04-12 | Arm Limited | Data processing apparatus and method for handling instructions to be executed by processing circuitry |
US9110683B2 (en) | 2008-08-15 | 2015-08-18 | Apple Inc. | Predicting branches for vector partitioning loops when processing vector instructions |
US8271832B2 (en) | 2008-08-15 | 2012-09-18 | Apple Inc. | Non-faulting and first-faulting instructions for processing vectors |
US7900025B2 (en) | 2008-10-14 | 2011-03-01 | International Business Machines Corporation | Floating point only SIMD instruction set architecture including compare, select, Boolean, and alignment operations |
US20100122066A1 (en) | 2008-11-12 | 2010-05-13 | Freescale Semiconductor, Inc. | Instruction method for facilitating efficient coding and instruction fetch of loop construct |
NL2002799C2 (en) * | 2009-04-24 | 2010-10-26 | Univ Delft Tech | Data structure, method and system for address lookup. |
GB2471067B (en) * | 2009-06-12 | 2011-11-30 | Graeme Roy Smith | Shared resource multi-thread array processor |
GB2471138B (en) | 2009-06-19 | 2014-08-13 | Advanced Risc Mach Ltd | Handling integer and floating point registers during a context switch |
JP5692089B2 (ja) | 2009-11-24 | 2015-04-01 | 日本電気株式会社 | プロセッサ、プロセッサによるループ回数制御方法 |
US20110280314A1 (en) | 2010-05-12 | 2011-11-17 | Texas Instruments Incorporated | Slice encoding and decoding processors, circuits, devices, systems and processes |
US20110320787A1 (en) * | 2010-06-28 | 2011-12-29 | Qualcomm Incorporated | Indirect Branch Hint |
US20140189296A1 (en) | 2011-12-14 | 2014-07-03 | Elmoustapha Ould-Ahmed-Vall | System, apparatus and method for loop remainder mask instruction |
US9448879B2 (en) * | 2011-12-22 | 2016-09-20 | Intel Corporation | Apparatus and method for implement a multi-level memory hierarchy |
US8688661B2 (en) * | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US20130346727A1 (en) * | 2012-06-25 | 2013-12-26 | Qualcomm Incorporated | Methods and Apparatus to Extend Software Branch Target Hints |
CN103530089B (zh) * | 2012-08-31 | 2018-06-15 | 威盛电子股份有限公司 | 微处理器及其操作方法 |
US9244677B2 (en) | 2012-09-28 | 2016-01-26 | Intel Corporation | Loop vectorization methods and apparatus |
EP2901275A4 (en) | 2012-09-28 | 2016-06-08 | Intel Corp | GRINDING VECTORIZATION PROCESS AND DEVICE |
US9557993B2 (en) | 2012-10-23 | 2017-01-31 | Analog Devices Global | Processor architecture and method for simplifying programming single instruction, multiple data within a register |
US9459871B2 (en) | 2012-12-31 | 2016-10-04 | Intel Corporation | System of improved loop detection and execution |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US9329870B2 (en) | 2013-02-13 | 2016-05-03 | International Business Machines Corporation | Extensible execution unit interface architecture with multiple decode logic and multiple execution units |
US9430245B2 (en) * | 2014-03-28 | 2016-08-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient branch predictor history recovery in pipelined computer architectures employing branch prediction and branch delay slots of variable size |
US9798542B2 (en) | 2014-04-25 | 2017-10-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Zero overhead looping by a decoder generating and enqueuing a branch instruction |
-
2016
- 2016-03-23 GB GB1604948.8A patent/GB2548604B/en active Active
-
2017
- 2017-03-21 US US16/085,053 patent/US10768938B2/en active Active
- 2017-03-21 TW TW106109292A patent/TWI746529B/zh active
- 2017-03-21 EP EP17713065.5A patent/EP3433723B1/en active Active
- 2017-03-21 WO PCT/GB2017/050774 patent/WO2017163038A1/en active Application Filing
- 2017-03-21 JP JP2018548913A patent/JP7011595B2/ja active Active
- 2017-03-21 CN CN201780017738.0A patent/CN108885549B/zh active Active
- 2017-03-21 KR KR1020187029669A patent/KR102353639B1/ko active IP Right Grant
-
2018
- 2018-08-23 IL IL261341A patent/IL261341B/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790845A (en) | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
US5724563A (en) | 1995-04-12 | 1998-03-03 | Matsushita Electric Industrial Co., Ltd. | Pipeline processsor |
JP6314195B2 (ja) | 2016-10-20 | 2018-04-18 | 住友電工プリントサーキット株式会社 | プリント配線板及び該プリント配線板の製造方法 |
Non-Patent Citations (3)
Title |
---|
「Cover Story 仮想化の正体 Part 2:コンピュータ. 「分割」を極め、「結合」の段階に」,日経バイト(NIKKEI BYTE),日本,日経BP社,2005年10月22日,2005年11月号(No.270),第28~33頁,ISSN: 0289-6508. |
Bill Appelbe, et al.,"Hoisting Branch Conditions - Improving Super-Scalar Processor Performance",Proceedings of the International Workshop on Languages and Compilers for Parallel Computing (LCPC 1995) (Also published as "Lecture Notes in Computer Science, Vol.1033".),[online],1995年08月,Pages 1-15,[令和3年4月14日検索], インターネット, <URL: https://link.springer.com/chapter/10.1007/BFb0014207> ,<URL: https://www.researchgate.net/profile/Maurizio-Vitale/publication/221497032_Hoisting_Branch_Conditions_-_Improving_Super-Scalar_Processor_Performance/links/54fb47810cf2c3f524204735/Hoisting-Branch-Conditions-Improving-Super-Scalar-Processor-Performance.pdf>, <DOI: 10.1007/BFb0014207>. |
James E. Smith, et al.,"PIPE: A High Performance VLSI Architecture",Computer Science Technical Report #512,[online], University of Wisconsin-Madison Department of Computer Sciences,1983年09月,Pages 1-15,[令和3年4月17日検索], インターネット, <URL: https://minds.wisconsin.edu/handle/1793/58462?show=full>. |
Also Published As
Publication number | Publication date |
---|---|
KR20180126003A (ko) | 2018-11-26 |
IL261341B (en) | 2020-07-30 |
CN108885549B (zh) | 2023-03-07 |
WO2017163038A1 (en) | 2017-09-28 |
GB201604948D0 (en) | 2016-05-04 |
TWI746529B (zh) | 2021-11-21 |
JP2019509576A (ja) | 2019-04-04 |
EP3433723A1 (en) | 2019-01-30 |
IL261341A (en) | 2018-10-31 |
CN108885549A (zh) | 2018-11-23 |
GB2548604A (en) | 2017-09-27 |
GB2548604B (en) | 2018-03-21 |
US10768938B2 (en) | 2020-09-08 |
EP3433723B1 (en) | 2020-07-22 |
KR102353639B1 (ko) | 2022-01-20 |
US20190079770A1 (en) | 2019-03-14 |
TW201734768A (zh) | 2017-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7011594B2 (ja) | プログラム・ループ制御 | |
JP7011595B2 (ja) | 分岐命令 | |
JP7105699B2 (ja) | プログラム・ループ制御 | |
US6289445B2 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
US11307856B2 (en) | Branch target variant of branch-with-link instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210528 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210827 |
|
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: 20211222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220114 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7011595 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |