JP2019509574A - プログラム・ループ制御 - Google Patents
プログラム・ループ制御 Download PDFInfo
- Publication number
- JP2019509574A JP2019509574A JP2018548766A JP2018548766A JP2019509574A JP 2019509574 A JP2019509574 A JP 2019509574A JP 2018548766 A JP2018548766 A JP 2018548766A JP 2018548766 A JP2018548766 A JP 2018548766A JP 2019509574 A JP2019509574 A JP 2019509574A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- instruction
- program
- processing
- branch
- 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 208
- 238000000034 method Methods 0.000 claims description 56
- 238000004590 computer program Methods 0.000 claims 2
- 230000000754 repressing effect Effects 0.000 claims 2
- 238000003079 width control Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 39
- 230000006399 behavior Effects 0.000 description 37
- 230000001960 triggered effect Effects 0.000 description 22
- 230000004044 response Effects 0.000 description 21
- 102100024348 Beta-adducin Human genes 0.000 description 10
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 10
- 230000003111 delayed effect Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 208000011580 syndromic disease Diseases 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000001629 suppression Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000009977 dual effect Effects 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
- 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
- 230000002250 progressing effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
- G06F8/452—Loops
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
個々のベクトル処理レーンと関連付けられたNmax個までのベクトル要素の処理をサポートする少なくとも1つのベクトル処理プログラム命令を含むプログラム命令によって指定される処理動作を行う処理回路と、
前記処理動作を行うために、前記プログラム命令を復号して前記処理回路を制御する制御信号を生成する命令復号器と、
を備え、
前記命令復号器が、行われることになるプログラム・ループ本体のいくつかの繰返しの中で処理されることになるいくつかのベクトル要素Nveを関連付けた述語的(predicated)ループ命令を復号する述語的ループ命令復号器回路を備え、
前記処理回路が、前記繰返しの中で処理されるベクトル要素の総数がNveになるように、Nve/Nmaxが整数でないときに、前記繰返しの1つ又は複数の間、前記ベクトル処理レーンの1つ又は複数における処理を少なくとも部分的に抑制するよう動作する述語(predication)ループ制御回路を備える、
データを処理するための装置を提供する。
個々のベクトル処理レーンと関連付けられたNmax個までのベクトル要素の処理をサポートする少なくとも1つのベクトル処理プログラム命令を含むプログラム命令によって指定される処理動作を行うための処理手段と、
前記処理動作を行うために、前記プログラム命令を復号して前記処理手段を制御する制御信号を生成するための命令復号手段と
を有し、
前記命令復号手段が、行われることになるプログラム・ループ本体のいくつかの繰返しの中で処理されることになるいくつかのベクトル要素Nveを関連付けた述語的ループ命令を復号するための述語的ループ命令復号手段を有し、
前記処理手段が、前記繰返しの中で処理されるベクトル要素の総数がNveになるように、Nve/Nmaxが整数でないときに、前記繰返しの1つ又は複数の間、前記ベクトル処理レーンの1つ又は複数における処理を少なくとも部分的に抑制するよう動作するための述語的ループ制御手段を有する、
データを処理するための装置を提供する。
個々のベクトル処理レーンと関連付けられたNmax個までのベクトル要素の処理をサポートする少なくとも1つのベクトル処理プログラム命令を含むプログラム命令によって指定される処理動作を行うステップと、
前記処理動作を前記行うステップを制御する制御信号を生成するために前記プログラム命令を復号するステップであって、
前記プログラム命令を前記復号するステップが、行われることになるプログラム・ループ本体のいくつかの繰返しの中で処理されることになるいくつかのベクトル要素Nveを関連付けた述語的ループ命令を復号するステップを含む、
復号するステップと、
Nve/Nmaxが整数でないときに、前記繰返しの中で処理されるベクトル要素の総数がNveになるように、前記繰返しの1つ又は複数の間、前記ベクトル処理レーンの1つ又は複数における処理を少なくとも部分的に抑制するステップと、
を含む、データを処理する方法を提供する。
・DLS:非述語的ループ開始命令。ループ終了アドレス「loopend」及び繰返しrNの数を指定するが、ベクトル要素サイズは指定しないので、浮動小数点制御レジスタ内のVEwidthパラメータに対する変更は行われない。VEwidthはデフォルトで、1つのベクトル・レジスタVRwidthの中のビット数に等しくなると想定される。
・DLSP:述語的ループ開始命令。ループ終了アドレス「loopend」及び繰返しrNの数を指定し、ベクトル命令に対する要素幅VEwidthを示す「size」パラメータも指定する。要素幅は、浮動小数点制御レジスタに格納される。浮動小数点コンテキストがまだアクセス可能でない場合、DLSP命令は、遅延状態保存動作をトリガして、以前の浮動小数点コンテキストをメモリに保存し、浮動小数点コンテキストは、要素幅を浮動小数点制御レジスタに格納する前に、現在のプロセスにアクセス可能になる。
・DLE:非述語的ループ終了命令。DLS命令に続いて使用される。浮動小数点コンテキストがアクセス不能なときに実行されると、ループ終了命令復号回路は、メモリへの、浮動小数点コンテキストのいずれの遅延状態保存もトリガしない。
・DLEP:述語的ループ終了命令。DLSP命令に続いて使用される。浮動小数点コンテキストがアクセス不能なときに実行されると、ループ終了命令復号回路は、浮動小数点コンテキストのメモリへの保存をトリガする制御信号を生成し、浮動小数点コンテキストをアクセス可能にする。DLEP命令は、浮動小数点コンテキストが、現在のプロセス/特権レベルに対してアクセスされることを許可されない場合、アクセス許可チェック回路1008によって障害条件がトリガされることを保証するために、浮動小数点コンテキスト・レジスタのうちの1つ(例えば、VEwidthを格納する浮動小数点制御レジスタ)へのアクセスもトリガする。
Claims (20)
- 個々のベクトル処理レーンと関連付けられたNmax個までのベクトル要素の処理をサポートする少なくとも1つのベクトル処理プログラム命令を含むプログラム命令によって指定される処理動作を行う処理回路と、
前記処理動作を行うために、前記プログラム命令を復号して前記処理回路を制御する制御信号を生成する命令復号器と、
を備え、
前記命令復号器が、行われることになるプログラム・ループ本体のいくつかの繰返しの中で処理されることになるいくつかのベクトル要素Nveを関連付けた述語的ループ命令を復号する述語的ループ命令復号器回路を備え、
前記処理回路が、前記繰返しの中で処理されるベクトル要素の総数がNveになるように、Nve/Nmaxが整数でないときに、前記繰返しの1つ又は複数の間、前記ベクトル処理レーンの1つ又は複数における処理を少なくとも部分的に抑制するよう動作する述語ループ制御回路を備える、
データを処理するための装置。 - Nmaxが、前記プログラム・ループ本体内部の前記プログラム命令に依存しない定数値である、請求項1に記載の装置。
- 前記処理回路が、所定の数のビットVRwidthをそれぞれ有し、それぞれがいくつかのビットVEwidthを有する複数の前記ベクトル要素を格納できるベクトル・レジスタ備え、ここでNmaxが(VRwidth/VEwidth)の整数部分によって与えられる、請求項1に記載の装置。
- 前記述語的ループ命令が、VEwidthを示す値を指定する、請求項3に記載の装置。
- 前記述語的ループ命令が、
前記述語的ループ命令内にNveをイミディエート値として符号化することと、
Nveを示すデータを収めるレジスタの識別子を符号化することと、
のうちの1つによってNveを指定する、請求項1から4までのいずれか一項に記載の装置。 - 前記述語的ループ命令が、前記プログラム・ループ本体のサイズを示す値を指定する、請求項1から5までのいずれか一項に記載の装置。
- 前記述語的ループ命令を処理したとき、ループの繰返しが必要とされないと前記処理回路が決定した場合、前記処理回路が、
前記プログラム・ループ本体の前記終わりに到達したことを、前記プログラム・ループ本体の前記サイズを示す前記値が示すまで、少なくともいくつかの命令の実行を抑制すること、又は
前記プログラム・ループ本体の前記終わりに到達したことを、前記プログラム・ループ本体の前記サイズを示す前記値が示すまで、少なくともいくつかの命令の結果レジスタのアップデートを抑制すること、又は
前記プログラム・ループ本体に続く前記命令への分岐をトリガすること、
のうちの1つによって前記プログラム・ループ本体を抑制する、請求項6に記載の装置。 - 前記述語的ループ命令が、述語的ゼロ・オーバヘッドのループ命令であり、前記処理回路が、前記述語的ループ開始命令に続く前記プログラム・ループ本体のプログラム命令によって指定される処理動作を行い、前記述語的ループ開始命令を除外するように前記処理回路を制御するループ制御回路を備える、請求項6に記載の装置。
- 前記命令復号器が、ループ制御データを格納するように前記処理回路を制御する制御信号を生成するために、前記プログラム・ループ本体の終わりでループ終了命令を復号し、さらなるループの繰返しが必要とされるかどうかを決定し、さらなるループの繰返しが必要とされる場合、前記プログラム・ループ本体の冒頭の命令に分岐するループ終了命令復号回路を備え、
前記ループ制御データの制御下で、前記プログラム・ループ本体の最後のプログラム命令を少なくとも部分的に行うことに続いて、前記ループ制御回路が、さらなるループの繰返しが必要とされるかどうかを決定し、さらなるループの繰返しが必要とされる場合、前記ループ終了命令に先行する前記プログラム・ループ本体のプログラム命令によって指定される処理動作を行い、前記ループ終了命令を除外するように前記処理回路を制御する、
請求項1から8までのいずれか一項に記載の装置。 - 前記述語的ループ命令を処理したとき、前記処理回路が、ループの繰返しが必要とされないと決定した場合、前記処理回路が、
前記ループ終了命令に到達するまで、少なくともいくつかの命令の前記実行を抑制すること、又は
前記ループ終了命令に到達するまで、少なくともいくつかの命令の結果レジスタのアップデートを抑制すること、
のうちの1つによって前記プログラム・ループ本体を抑制する、請求項9に記載の装置。 - 前記ループ制御データが、VEwidthを示すデータを含む、請求項3及び9に記載の装置。
- 前記ループ制御データが、
前記冒頭の命令のアドレスを示すループ開始データと、
前記ループ終了命令の直前の前記プログラム・ループ本体の最後の命令と前記プログラム・ループ本体の前記冒頭の命令との間の前記間隔を示すループ開始オフセット・データと、
前記ループ終了命令の直前の前記プログラム・ループ本体の最後の命令のアドレスを示すループ終了データと、
前記ループ終了命令の直前の前記プログラム・ループ本体の最後の命令に到達する前に処理されるべき、残っている命令の前記数を示すループ残存命令データと、
前記ループ終了命令の直前の前記プログラム・ループ本体の最後の命令に到達する前に処理されるべき、残っているプログラム記憶メモリの場所の前記数を示すループ残存サイズ・データと、
ループ制御有効データと、
のうちの1つ又は複数を含む、請求項9、10、及び11のいずれか一項に記載の装置。 - 前記命令復号器が、VEwidth=VRwidthの述語的ループ開始命令のような、非述語的ループ開始命令を行うように前記処理回路を制御する制御信号を生成する、前記非述語的ループ開始命令の復号回路を備える、請求項3に記載の装置。
- 浮動小数点データの値を格納するための浮動小数点レジスタ、並びに浮動小数点制御データ、及びVEwidthを示す値を格納するための浮動小数点制御レジスタを備え、
浮動小数点データの値が前記プログラム命令にアクセス可能なとき、前記浮動小数点制御レジスタもアクセス可能であり、
前記浮動小数点データの値が前記プログラム命令にアクセス不能なとき、前記浮動小数点制御レジスタもアクセス不能である、
請求項1から13までのいずれか一項に記載の装置。 - 前記非述語的ループ開始復号回路が非述語的ループ開始命令を復号し、VEwidth=VRwidthであって、前記浮動小数点の値がアクセス可能であるとき、前記非述語的ループ開始復号回路が、VEwidthを表す値を前記浮動小数点制御レジスタ内に格納するように前記処理回路を制御し、前記処理回路がVEwidthを表す前記値を読み込もうとする際に、VEwidthを表す前記値が、前記浮動小数点制御データレジスタから読み込まれ、
前記非述語的ループ開始復号回路が非述語的ループ開始命令を復号し、前記浮動小数点の値がアクセス不能であるとき、前記処理回路が、前記浮動小数点制御レジスタに格納されたVEwidthのいずれの値にも依存しない、VEwidth=VRwidthを表す値を返す、
請求項13及び14に記載の装置。 - 前記非述語的ループ開始命令の実行に続いて、及び前記プログラム・ループ本体の繰返しの前記数Nitが完了される前に、前記浮動小数点データの値がアクセス不能からアクセス可能に変更されると、VRwidthを示す値が、前記浮動小数点制御レジスタに格納される、請求項15に記載の装置。
- 所与のベクトル処理レーンの所与の部分と関連付けられた動作の抑制が、
前記所与の部分に対応するその後のベクトル命令のうちの1つの行先ベクトル・レジスタの部分のアップデートを抑制することと、
前記所与の部分に対応する行先ベクトル・レジスタの部分をゼロにセットすることと、
前記所与のレーンの前記所与の部分のうちの1つに対応する制御情報に依存して前記所与のレーンに対応する行先ベクトル・レジスタの部分のアップデートを抑制することと、
前記所与の部分のうちの1つに対応する前記制御情報に依存して前記所与のレーンに対応する前記処理を抑制することと、
のうちの1つによって行われる、請求項1から16までのいずれか一項に記載の装置。 - 個々のベクトル処理レーンと関連付けられたNmax個までのベクトル要素の処理をサポートする少なくとも1つのベクトル処理プログラム命令を含むプログラム命令によって指定される処理動作を行うための処理手段と、
前記処理動作を行うために、前記プログラム命令を復号して前記処理手段を制御する制御信号を生成するための命令復号手段と、
を有し、
前記命令復号手段が、行われることになるプログラム・ループ本体のいくつかの繰返しの中で処理されることになるいくつかのベクトル要素Nveを関連付けた述語的ループ命令を復号するための述語的ループ命令復号手段を有し、
前記処理手段が、前記繰返しの中で処理されるベクトル要素の総数がNveになるように、Nve/Nmaxが整数でないときに、前記繰返しの1つ又は複数の間、前記ベクトル処理レーンの1つ又は複数における処理を少なくとも部分的に抑制するよう動作するための述語的ループ制御手段を有する、
データを処理するための装置。 - 個々のベクトル処理レーンと関連付けられたNmax個までのベクトル要素の処理をサポートする少なくとも1つのベクトル処理プログラム命令を含むプログラム命令によって指定される処理動作を行うステップと、
前記処理動作を前記行うステップを制御する制御信号を生成するために前記プログラム命令を復号するステップであって、
前記プログラム命令を前記復号するステップが、行われることになるプログラム・ループ本体のいくつかの繰返しの中で処理されることになるいくつかのベクトル要素Nveを関連付けた述語的ループ命令を復号するステップを含む、
復号するステップと、
Nve/Nmaxが整数でないときに、前記繰返しの中で処理されるベクトル要素の総数がNveになるように、前記繰返しの1つ又は複数の間、前記ベクトル処理レーンの1つ又は複数における処理を少なくとも部分的に抑制するステップと、
を含む、データを処理する方法。 - 請求項19に記載の方法によって動作する仮想マシン実行環境を提供するようにコンピュータを制御するためのコンピュータ・プログラムを非一時的な形で格納するコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1604945.4A GB2548602B (en) | 2016-03-23 | 2016-03-23 | Program loop control |
GB1604945.4 | 2016-03-23 | ||
PCT/GB2017/050776 WO2017163040A1 (en) | 2016-03-23 | 2017-03-21 | Program loop control |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019509574A true JP2019509574A (ja) | 2019-04-04 |
JP7105699B2 JP7105699B2 (ja) | 2022-07-25 |
Family
ID=55968775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018548766A Active JP7105699B2 (ja) | 2016-03-23 | 2017-03-21 | プログラム・ループ制御 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10768934B2 (ja) |
EP (1) | EP3433726B1 (ja) |
JP (1) | JP7105699B2 (ja) |
KR (1) | KR102353636B1 (ja) |
CN (1) | CN108780397B (ja) |
GB (1) | GB2548602B (ja) |
IL (1) | IL261310B (ja) |
TW (1) | TWI749000B (ja) |
WO (1) | WO2017163040A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2548603B (en) * | 2016-03-23 | 2018-09-26 | Advanced Risc Mach Ltd | Program loop control |
JP6933263B2 (ja) * | 2017-11-13 | 2021-09-08 | 日本電気株式会社 | データ処理装置、ループ制御装置、データ処理方法、ループ制御方法およびプログラム |
CN112000370B (zh) | 2020-08-27 | 2022-04-15 | 北京百度网讯科技有限公司 | 循环指令的处理方法、装置、设备和存储介质 |
US12112171B2 (en) * | 2020-09-26 | 2024-10-08 | Intel Corporation | Loop support extensions |
US12039329B2 (en) * | 2020-12-24 | 2024-07-16 | Intel Corporation | Methods, systems, and apparatuses to optimize partial flag updating instructions via dynamic two-pass execution in a processor |
US11954496B2 (en) * | 2021-08-02 | 2024-04-09 | Nvidia Corporation | Reduced memory write requirements in a system on a chip using automatic store predication |
US11663007B2 (en) | 2021-10-01 | 2023-05-30 | Arm Limited | Control of branch prediction for zero-overhead loop |
US11650822B1 (en) * | 2021-10-25 | 2023-05-16 | Arm Limited | Program flow prediction for loops |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60220424A (ja) * | 1984-04-16 | 1985-11-05 | Nec Corp | 配列要素の演算方式 |
JPS6353643A (ja) * | 1986-08-23 | 1988-03-07 | Nec Corp | 命令制御装置 |
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 |
US20140115301A1 (en) * | 2012-10-23 | 2014-04-24 | Analog Devices Technology | Processor architecture and method for simplifying programming single instruction, multiple data within a register |
US20140208078A1 (en) * | 2013-01-23 | 2014-07-24 | International Business Machines Corporation | Vector checksum instruction |
JP2015158940A (ja) * | 2011-04-01 | 2015-09-03 | インテル コーポレイション | ベクトルフレンドリ命令フォーマット及びその実行 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551895A (en) | 1968-01-15 | 1970-12-29 | Ibm | Look-ahead branch detection system |
US5781753A (en) * | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
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 |
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 |
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 |
US6629238B1 (en) | 1999-12-29 | 2003-09-30 | Intel Corporation | Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration |
WO2002084451A2 (en) * | 2001-02-06 | 2002-10-24 | Victor Demjanenko | Vector processor architecture and methods performed therein |
AU2003274591A1 (en) * | 2002-11-28 | 2004-06-18 | Koninklijke Philips Electronics N.V. | A loop control circuit for a data processor |
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 |
US20050223202A1 (en) | 2004-03-31 | 2005-10-06 | Intel Corporation | Branch prediction in a pipelined processor |
US7886314B2 (en) * | 2005-03-28 | 2011-02-08 | Pioneer Corporation | Disk device, shutter control device, and computer program for shutter opening/closing control |
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 |
US7937574B2 (en) | 2007-07-17 | 2011-05-03 | Advanced Micro Devices, Inc. | Precise counter hardware for microcode loops |
JP4526560B2 (ja) | 2007-12-05 | 2010-08-18 | 日本テキサス・インスツルメンツ株式会社 | プロセッサおよび信号処理方法 |
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 |
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 |
US20140189296A1 (en) * | 2011-12-14 | 2014-07-03 | Elmoustapha Ould-Ahmed-Vall | System, apparatus and method for loop remainder mask instruction |
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 |
US9557999B2 (en) | 2012-06-15 | 2017-01-31 | Apple Inc. | Loop buffer learning |
US9298456B2 (en) * | 2012-08-21 | 2016-03-29 | Apple Inc. | Mechanism for performing speculative predicated instructions |
EP2901275A4 (en) * | 2012-09-28 | 2016-06-08 | Intel Corp | GRINDING VECTORIZATION PROCESS AND DEVICE |
US9244677B2 (en) * | 2012-09-28 | 2016-01-26 | Intel Corporation | Loop vectorization methods and apparatus |
US9459871B2 (en) * | 2012-12-31 | 2016-10-04 | Intel Corporation | System of improved loop detection and execution |
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 |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
JP6353643B2 (ja) | 2013-09-26 | 2018-07-04 | 矢崎総業株式会社 | 車両用表示装置 |
GB2519108A (en) * | 2013-10-09 | 2015-04-15 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling performance of speculative vector operations |
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 |
GB2548604B (en) | 2016-03-23 | 2018-03-21 | Advanced Risc Mach Ltd | Branch instruction |
US20180349144A1 (en) | 2017-06-06 | 2018-12-06 | Intel Corporation | Method and apparatus for branch prediction utilizing primary and secondary branch predictors |
-
2016
- 2016-03-23 GB GB1604945.4A patent/GB2548602B/en active Active
-
2017
- 2017-03-21 JP JP2018548766A patent/JP7105699B2/ja active Active
- 2017-03-21 WO PCT/GB2017/050776 patent/WO2017163040A1/en active Application Filing
- 2017-03-21 TW TW106109306A patent/TWI749000B/zh active
- 2017-03-21 CN CN201780017790.6A patent/CN108780397B/zh active Active
- 2017-03-21 US US16/081,464 patent/US10768934B2/en active Active
- 2017-03-21 EP EP17713414.5A patent/EP3433726B1/en active Active
- 2017-03-21 KR KR1020187029666A patent/KR102353636B1/ko active IP Right Grant
-
2018
- 2018-08-22 IL IL261310A patent/IL261310B/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60220424A (ja) * | 1984-04-16 | 1985-11-05 | Nec Corp | 配列要素の演算方式 |
JPS6353643A (ja) * | 1986-08-23 | 1988-03-07 | Nec Corp | 命令制御装置 |
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 |
JP2015158940A (ja) * | 2011-04-01 | 2015-09-03 | インテル コーポレイション | ベクトルフレンドリ命令フォーマット及びその実行 |
US20140115301A1 (en) * | 2012-10-23 | 2014-04-24 | Analog Devices Technology | Processor architecture and method for simplifying programming single instruction, multiple data within a register |
US20140208078A1 (en) * | 2013-01-23 | 2014-07-24 | International Business Machines Corporation | Vector checksum instruction |
Non-Patent Citations (1)
Title |
---|
"「Cover Story 仮想化の正体 Part 2:コンピュータ. 「分割」を極め、「結合」の段階に」", 日経バイト(NIKKEI BYTE), vol. 2005年11月号(No.270), JPN6020040885, 22 October 2005 (2005-10-22), JP, pages 28 - 33, ISSN: 0004492821 * |
Also Published As
Publication number | Publication date |
---|---|
US20190310851A1 (en) | 2019-10-10 |
CN108780397B (zh) | 2023-03-10 |
KR20180126519A (ko) | 2018-11-27 |
IL261310B (en) | 2020-08-31 |
JP7105699B2 (ja) | 2022-07-25 |
WO2017163040A1 (en) | 2017-09-28 |
US10768934B2 (en) | 2020-09-08 |
GB2548602A (en) | 2017-09-27 |
GB2548602B (en) | 2019-10-23 |
KR102353636B1 (ko) | 2022-01-20 |
IL261310A (en) | 2018-10-31 |
GB201604945D0 (en) | 2016-05-04 |
EP3433726A1 (en) | 2019-01-30 |
EP3433726B1 (en) | 2020-09-02 |
TW201737060A (zh) | 2017-10-16 |
TWI749000B (zh) | 2021-12-11 |
CN108780397A (zh) | 2018-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7011594B2 (ja) | プログラム・ループ制御 | |
JP7011595B2 (ja) | 分岐命令 | |
JP7105699B2 (ja) | プログラム・ループ制御 | |
JP7377807B2 (ja) | リンク付き分岐命令の分岐ターゲット・バリアント |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210423 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220322 |
|
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: 20220617 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220712 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7105699 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |