JP6546584B2 - 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 - Google Patents
推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 Download PDFInfo
- Publication number
- JP6546584B2 JP6546584B2 JP2016519799A JP2016519799A JP6546584B2 JP 6546584 B2 JP6546584 B2 JP 6546584B2 JP 2016519799 A JP2016519799 A JP 2016519799A JP 2016519799 A JP2016519799 A JP 2016519799A JP 6546584 B2 JP6546584 B2 JP 6546584B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- inference
- speculative
- width
- indication
- 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
- 239000013598 vector Substances 0.000 title claims description 446
- 238000012545 processing Methods 0.000 title claims description 146
- 238000000034 method Methods 0.000 title claims description 62
- 230000009467 reduction Effects 0.000 claims description 118
- 230000004044 response Effects 0.000 claims description 16
- 238000005265 energy consumption Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 6
- 239000000872 buffer Substances 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000013519 translation Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000750 progressive effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 45
- 238000013459 approach Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 230000002411 adverse Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/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]
- G06F9/38873—Iterative single instructions 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
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)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
Claims (28)
- ベクトル・オペランドに対して推論的ベクトル演算のシーケンスを実行するように構成された処理回路であって、それぞれのベクトル・オペランドが複数のベクトル要素を含む、処理回路と、
前記推論的ベクトル演算を受けるそれぞれのベクトル・オペランドのベクトル要素の個数を示す推論幅表示を維持するように構成された推論制御回路であって、前記推論幅表示が、推論的ベクトル演算の前記シーケンスの実行に先立って初期値に初期化される、推論制御回路とを備え、
前記処理回路が、推論的ベクトル演算の前記シーケンスの実行中に、前記推論的ベクトル演算の実行中に前記処理回路内で発生するマイクロアーキテクチャ上のイベントに応答して発される進行表示であって、それぞれのマイクロアーキテクチャ上のイベントが例外をトリガすることなく発生するイベントである、進行表示を生成するように構成され、
前記推論制御回路が、前記進行表示及び推論削減基準を参照して、推論削減条件の存在を検出するようにさらに構成され、前記推論削減条件が、前記推論幅表示を削減せずに演算が継続するのに比べて、前記推論幅表示の前記削減がデータ処理装置の少なくとも1つの性能特性を改善すると予想されることを示す条件であり、
前記推論制御回路が前記推論削減条件の検出にさらに応答して前記推論幅表示を削減する、データ処理装置。 - 前記進行表示が、前記推論的ベクトル演算の実行中に前記処理回路内で発生するスループットに影響を及ぼすイベントを示す、請求項1に記載のデータ処理装置。
- 前記進行表示が、前記推論的ベクトル演算の実行中に前記処理回路内で発生するエネルギー消費に影響を及ぼすイベントを示す、請求項1又は請求項2に記載のデータ処理装置。
- 前記マイクロアーキテクチャ上のイベントが、キャッシュ・ミスのイベント及びトランスレーション・ルックアサイド・バッファ(translation lookaside buffer:TLB)・ミスのイベントの少なくとも一方を備える、請求項1から3までのいずれかに記載のデータ処理装置。
- 前記推論幅表示が、前記推論的ベクトル演算を受けるそれぞれのベクトル・オペランドの最初のベクトル要素をさらに識別する、請求項1から4までのいずれかに記載のデータ処理装置。
- 前記推論幅表示が、前記推論的ベクトル演算を受けるそれぞれのベクトル・オペランドのベクトル要素の前記個数を、前記最初のベクトル要素から開始するシーケンシャルなベクトル要素の指定された個数であると識別する、請求項5に記載のデータ処理装置。
- 前記処理回路が、命令のベクトル・ループを実行するように構成され、前記ベクトル・ループが、ベクトル演算の前記シーケンスを定義する命令と、ベクトル演算の前記シーケンスの実行に続く、前記ベクトル・ループ内のコミット・ポイントで実行される少なくとも1つの評価命令とを含み、前記少なくとも1つの評価命令の実行により、必要なベクトル幅が決定され、
前記推論制御回路が、前記必要なベクトル幅の決定に応答して、前記推論幅表示の現在の値を参照してベクトル演算の前記シーケンスの実行が推論過剰に至ったか推論不足に至ったかについて決定し、前記推論不足のイベントでは、リピート・フラグを設定して命令の前記ベクトル・ループのさらなる反復を実行させる、請求項1から6までのいずれかに記載のデータ処理装置。 - 命令の前記ベクトル・ループのさらなる反復が行われると、前記推論制御回路が、命令の前記ベクトル・ループの先行反復中に処理されたベクトル要素の個数を考慮して変更した初期値に前記推論幅表示を初期化するように構成される、請求項7に記載のデータ処理装置。
- 前記ベクトル・ループが、前記コミット・ポイント後に実行される1つ又は複数の非推論的命令を含み、前記推論制御回路が、前記1つ又は複数の非推論的命令によって定義された前記非推論的演算を受けるそれぞれのベクトル・オペランドのベクトル要素の個数を識別するために、マスク値を設定するようにさらに構成される、請求項7又は請求項8に記載のデータ処理装置。
- 前記処理回路によるアクセス用に前記ベクトル・オペランドを記憶するように構成されたベクトル・レジスタ・バンクをさらに含み、
前記処理回路が、前記ベクトル・レジスタ・バンクとキャッシュ・ストレージの少なくとも1つのレベルを含むメモリ・システムとの間でベクトル・オペランドを移動させるためにベクトル・アクセス演算を実行するように構成されたデータ・アクセス回路を含み、
前記データ・アクセス回路が、前記ベクトル・アクセス演算の実行中に発生するキャッシュ・ミスに関する情報を前記進行表示として発するように構成される、請求項1から9までのいずれかに記載のデータ処理装置。 - 前記ベクトル・アクセス演算の実行中に前記データ・アクセス回路によって参照されるトランスレーション・ルックアサイド・バッファ(translation lookaside buffer:TLB)をさらに備え、前記データ・アクセス回路が、前記ベクトル・アクセス演算の実行中に発生するTLBミスに関係する情報を前記進行表示として発するようにさらに構成される、請求項10に記載のデータ処理装置。
- 前記処理回路が、前記推論幅表示の前記削減に応答して、前記推論幅表示を削減させる前記推論削減条件の検出に至る進行表示をもつ前記ベクトル演算から始まる前記シーケンスで発生する選択されたベクトル演算を受けるそれぞれのベクトル・オペランドのベクトル要素の個数を変更する、請求項1から11までのいずれかに記載のデータ処理装置。
- 前記処理回路が、前記推論幅表示の前記削減にさらに応答して、前記推論幅表示を削減させる前記推論削減条件の検出に至る進行表示をもつ前記ベクトル演算前の前記シーケンスで発生する非完結ベクトル演算を受けるそれぞれのベクトル・オペランドのベクトル要素の個数を変更する、請求項12に記載のデータ処理装置。
- 前記推論幅表示の削減に応答して前記処理回路の1つ又は複数のコンポーネント内の電力消費を削減するように構成された制御回路をさらに備える、請求項1から13までのいずれかに記載のデータ処理装置。
- 前記制御回路が、前記1つ又は複数のコンポーネント内の電力消費を削減するために、クロック・ゲーティング及びパワー・ゲーティングのうちの少なくとも1つを利用する、請求項14に記載のデータ処理装置。
- 前記推論幅表示がそれに初期化される前記初期値及び前記推論削減基準の少なくとも1つが、前記データ処理装置によって実行される命令によって指定される、請求項1から15までのいずれかに記載のデータ処理装置。
- 前記推論幅表示がそれに初期化される前記初期値及び前記推論削減基準の少なくとも1つが、あらかじめ定められる、請求項1から15までのいずれかに記載のデータ処理装置。
- 前記処理回路によって以前に実行された推論的ベクトル演算のシーケンス用に、コミット・ポイントで使用された推論幅値に関する履歴データを維持するように構成された予測回路をさらに備え、
前記予測回路が、前記処理回路によって実行される推論的ベクトル演算の現在のシーケンス用に、前記履歴データを参照して、推論的ベクトル演算の前記現在のシーケンスの実行に先立って前記推論幅表示がそれに設定されるべき前記初期値を決定するように構成される、請求項1から15までのいずれかに記載のデータ処理装置。 - 前記処理回路によって以前に実行された推論的ベクトル演算のシーケンス用に使用される推論削減基準に関する履歴データを維持するように構成された予測回路をさらに備え、
前記予測回路が、前記処理回路によって実行される推論的ベクトル演算の現在のシーケンス用に、前記履歴データを参照して、推論的ベクトル演算の前記現在のシーケンスの実行用に使用される前記推論削減基準を決定するように構成される、請求項1から15までのいずれかに記載のデータ処理装置。 - 前記推論制御回路が、推論的演算のモードをトリガする推論開始命令の実行に応答し、前記処理回路が、前記推論的演算モード中に実行される命令に応答して、前記推論的ベクトル演算を実行するように構成される、請求項1から19までのいずれかに記載のデータ処理装置。
- 前記推論制御回路が、前記推論的演算モードを終結するコミット命令の実行に応答する、請求項20に記載のデータ処理装置。
- 前記推論制御回路が、それぞれのベクトル・オペランドの少なくとも1つのベクトル要素が前記推論的ベクトル演算を受けるべきであることを示す前記推論幅表示を変更するために前記推論削減条件に応答する、請求項1から21までのいずれかに記載のデータ処理装置。
- 前記推論削減基準が、前記推論制御回路によって維持される性能許容情報を含み、
前記推論制御回路が、推論的ベクトル演算の前記シーケンスの実行中に生成される前記進行表示を考慮した前記性能許容情報を調整するように構成され、
前記推論制御回路が、前記性能許容情報がトリガ・ポイントに達した場合に前記推論削減条件を検出するように構成される、請求項1から22までのいずれかに記載のデータ処理装置。 - 前記推論制御回路が、前記推論幅表示が削減されるべき量を決定するとき前記性能許容情報を参照する、請求項23に記載のデータ処理装置。
- 前記推論削減条件の検出時に前記推論幅表示が削減されるべき量があらかじめ定められている、請求項1から24までのいずれかに記載のデータ処理装置。
- データ処理装置における推論的ベクトル演算の実行を制御する方法であって、
ベクトル・オペランドに対して推論的ベクトル演算のシーケンスを実行するステップであって、それぞれのベクトル・オペランドが、複数のベクトル要素を含む、実行するステップと、
前記推論的ベクトル演算を受けるそれぞれのベクトル・オペランドのベクトル要素の個数を示す推論幅表示を維持するステップあって、前記推論幅表示が、推論的ベクトル演算の前記シーケンスの実行に先立って初期値に初期化される、維持するステップと、
推論的ベクトル演算の前記シーケンスの実行中に、前記推論的ベクトル演算の実行中に前記処理回路内で発生するマイクロアーキテクチャ上のイベントに応答して発される進行表示であって、それぞれのマイクロアーキテクチャ上のイベントが例外をトリガすることなく発生するイベントである、進行表示を生成するステップと、
前記進行表示及び推論削減基準を参照して、推論削減条件の存在を検出するステップであって、前記推論削減条件が、前記推論幅表示を削減せずに演算が継続するのに比べて、前記推論幅表示の前記削減が前記データ処理装置の少なくとも1つの性能特性を改善すると予想されることを示す条件である、検出するステップと、
前記推論削減条件の検出時に、前記推論幅表示を削減するステップとを含む、方法。 - 請求項1から25のいずれか一項に記載のデータ処理装置に対応するプログラム命令用に仮想マシン実行環境を実現するためにコンピュータを制御するためのコンピュータ・プログラムを非一時的に記憶するコンピュータ・プログラム製品
- ベクトル・オペランドに対して推論的ベクトル演算のシーケンスを実行するための処理手段であって、それぞれのベクトル・オペランドが複数のベクトル要素を含む、処理手段と、
前記推論的ベクトル演算を受けるそれぞれのベクトル・オペランドのベクトル要素の個数を示す推論幅表示を維持するための推論制御手段であって、前記推論幅表示が、推論的ベクトル演算の前記シーケンスの実行に先立って初期値に初期化される、推論制御手段とを備え、
前記処理手段が、推論的ベクトル演算の前記シーケンスの実行中に、前記推論的ベクトル演算の実行中に前記処理回路内で発生するマイクロアーキテクチャ上のイベントに応答して発される進行表示であって、それぞれのマイクロアーキテクチャ上のイベントが例外をトリガすることなく発生するイベントである、進行表示を生成するためものであり、
前記推論制御手段が、前記進行表示及び推論削減基準を参照して、推論削減条件の存在を検出するためものであり、前記推論削減条件が、前記推論幅表示を削減せずに演算が継続するのに比べて、前記推論幅表示の前記削減が前記データ処理装置の少なくとも1つの性能特性を改善すると予想されることを示す条件であり、
前記推論制御手段が、前記推論幅表示を削減することによって前記推論削減条件の検出に応答するためものである、データ処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1317876.9A GB2519108A (en) | 2013-10-09 | 2013-10-09 | A data processing apparatus and method for controlling performance of speculative vector operations |
GB1317876.9 | 2013-10-09 | ||
PCT/GB2014/052508 WO2015052485A1 (en) | 2013-10-09 | 2014-08-14 | A data processing apparatus and method for controlling performance of speculative vector operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016536665A JP2016536665A (ja) | 2016-11-24 |
JP6546584B2 true JP6546584B2 (ja) | 2019-07-17 |
Family
ID=49630436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016519799A Active JP6546584B2 (ja) | 2013-10-09 | 2014-08-14 | 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10261789B2 (ja) |
EP (1) | EP3039532B1 (ja) |
JP (1) | JP6546584B2 (ja) |
KR (1) | KR102271992B1 (ja) |
CN (1) | CN105612494B (ja) |
GB (1) | GB2519108A (ja) |
IL (1) | IL244408B (ja) |
TW (1) | TWI649693B (ja) |
WO (1) | WO2015052485A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2539429B (en) | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
GB2539428B (en) | 2015-06-16 | 2020-09-09 | Advanced Risc Mach Ltd | Data processing apparatus and method with ownership table |
GB2539433B8 (en) * | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
GB2540942B (en) * | 2015-07-31 | 2019-01-23 | Advanced Risc Mach Ltd | Contingent load suppression |
GB2548602B (en) * | 2016-03-23 | 2019-10-23 | Advanced Risc Mach Ltd | Program loop control |
CN111651206B (zh) * | 2016-04-26 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种用于执行向量外积运算的装置和方法 |
CN107315568B (zh) * | 2016-04-26 | 2020-08-07 | 中科寒武纪科技股份有限公司 | 一种用于执行向量逻辑运算的装置 |
US10108581B1 (en) * | 2017-04-03 | 2018-10-23 | Google Llc | Vector reduction processor |
US11372804B2 (en) * | 2018-05-16 | 2022-06-28 | Qualcomm Incorporated | System and method of loading and replication of sub-vector values |
GB2580426B (en) * | 2019-01-11 | 2021-06-30 | Advanced Risc Mach Ltd | Controlling use of data determined by a resolve-pending speculative operation |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2765411B2 (ja) * | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US6915395B1 (en) * | 2000-05-03 | 2005-07-05 | Sun Microsystems, Inc. | Active address content addressable memory |
WO2002084451A2 (en) | 2001-02-06 | 2002-10-24 | Victor Demjanenko | Vector processor architecture and methods performed therein |
CN1142484C (zh) * | 2001-11-28 | 2004-03-17 | 中国人民解放军国防科学技术大学 | 微处理器向量处理方法 |
US20040123081A1 (en) * | 2002-12-20 | 2004-06-24 | Allan Knies | Mechanism to increase performance of control speculation |
US20040215941A1 (en) | 2003-04-24 | 2004-10-28 | Sun Microsystems, Inc. | Method and system to handle register window fill and spill |
US7149946B2 (en) | 2003-06-13 | 2006-12-12 | Microsoft Corporation | Systems and methods for enhanced stored data verification utilizing pageable pool memory |
US7149851B1 (en) | 2003-08-21 | 2006-12-12 | Transmeta Corporation | Method and system for conservatively managing store capacity available to a processor issuing stores |
US7500087B2 (en) | 2004-03-09 | 2009-03-03 | Intel Corporation | Synchronization of parallel processes using speculative execution of synchronization instructions |
US7395419B1 (en) | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
US7961636B1 (en) * | 2004-05-27 | 2011-06-14 | Cisco Technology, Inc. | Vectorized software packet forwarding |
US20060259737A1 (en) * | 2005-05-10 | 2006-11-16 | Telairity Semiconductor, Inc. | Vector processor with special purpose registers and high speed memory access |
US7739456B1 (en) | 2007-03-06 | 2010-06-15 | Oracle America, Inc. | Method and apparatus for supporting very large transactions |
US8019977B2 (en) | 2007-05-14 | 2011-09-13 | Apple Inc. | Generating predicate values during vector processing |
US8060728B2 (en) | 2007-05-14 | 2011-11-15 | Apple Inc. | Generating stop indicators during vector processing |
US8019976B2 (en) | 2007-05-14 | 2011-09-13 | Apple, Inc. | Memory-hazard detection and avoidance instructions for vector processing |
US8078847B2 (en) * | 2007-05-14 | 2011-12-13 | Apple Inc. | Detecting memory-hazard conflicts during vector processing |
US8739141B2 (en) | 2008-05-19 | 2014-05-27 | Oracle America, Inc. | Parallelizing non-countable loops with hardware transactional memory |
US8291202B2 (en) * | 2008-08-08 | 2012-10-16 | Qualcomm Incorporated | Apparatus and methods for speculative interrupt vector prefetching |
JP5279046B2 (ja) * | 2008-10-14 | 2013-09-04 | 国立大学法人 奈良先端科学技術大学院大学 | データ処理装置 |
US8572341B2 (en) | 2009-09-15 | 2013-10-29 | International Business Machines Corporation | Overflow handling of speculative store buffers |
JP5491113B2 (ja) * | 2009-09-18 | 2014-05-14 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置、ベクトル処理方法、およびプログラム |
JP5573134B2 (ja) * | 2009-12-04 | 2014-08-20 | 日本電気株式会社 | ベクトル型計算機及びベクトル型計算機の命令制御方法 |
US8887171B2 (en) | 2009-12-28 | 2014-11-11 | Intel Corporation | Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection |
US9552206B2 (en) | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
TWI636362B (zh) | 2011-06-24 | 2018-09-21 | 林正浩 | 高性能快取方法和裝置 |
WO2013095608A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for vectorization with speculation support |
US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
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 |
US9501276B2 (en) | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
-
2013
- 2013-10-09 GB GB1317876.9A patent/GB2519108A/en not_active Withdrawn
-
2014
- 2014-08-14 CN CN201480054729.5A patent/CN105612494B/zh active Active
- 2014-08-14 KR KR1020167011068A patent/KR102271992B1/ko active IP Right Grant
- 2014-08-14 WO PCT/GB2014/052508 patent/WO2015052485A1/en active Application Filing
- 2014-08-14 JP JP2016519799A patent/JP6546584B2/ja active Active
- 2014-08-14 EP EP14753139.6A patent/EP3039532B1/en active Active
- 2014-08-18 US US14/461,664 patent/US10261789B2/en active Active
- 2014-09-03 TW TW103130434A patent/TWI649693B/zh active
-
2016
- 2016-03-03 IL IL244408A patent/IL244408B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP3039532B1 (en) | 2020-11-11 |
GB2519108A (en) | 2015-04-15 |
IL244408B (en) | 2020-03-31 |
US10261789B2 (en) | 2019-04-16 |
EP3039532A1 (en) | 2016-07-06 |
IL244408A0 (en) | 2016-04-21 |
TW201514850A (zh) | 2015-04-16 |
CN105612494B (zh) | 2019-07-12 |
KR102271992B1 (ko) | 2021-07-05 |
US20150100755A1 (en) | 2015-04-09 |
KR20160065145A (ko) | 2016-06-08 |
WO2015052485A1 (en) | 2015-04-16 |
GB201317876D0 (en) | 2013-11-20 |
JP2016536665A (ja) | 2016-11-24 |
CN105612494A (zh) | 2016-05-25 |
TWI649693B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6546584B2 (ja) | 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 | |
JP3790039B2 (ja) | 分岐予測調整方法 | |
US7711935B2 (en) | Universal branch identifier for invalidation of speculative instructions | |
US9176737B2 (en) | Controlling the execution of adjacent instructions that are dependent upon a same data condition | |
JP6942298B2 (ja) | ベクトル演算命令の例外条件処理 | |
JP7397858B2 (ja) | フェッチグループのシーケンスのための分岐予測ユニットへのアクセスの制御 | |
CN108780396A (zh) | 程序循环控制 | |
US20100095151A1 (en) | Processor Apparatus for Executing Instructions with Local Slack Prediction of Instructions and Processing Method Therefor | |
CN108780397B (zh) | 程序循环控制 | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
KR20130112009A (ko) | 벡터 분할 루프들의 성능 향상 | |
TW201349111A (zh) | 抑制零述詞分支錯誤預測之分支錯誤預測行為 | |
CN108885549A (zh) | 分支指令 | |
US9311094B2 (en) | Predicting a pattern in addresses for a memory-accessing instruction when processing vector instructions | |
US6735687B1 (en) | Multithreaded microprocessor with asymmetrical central processing units | |
US9122485B2 (en) | Predicting a result of a dependency-checking instruction when processing vector instructions | |
US9098295B2 (en) | Predicting a result for an actual instruction when processing vector instructions | |
US8683178B2 (en) | Sharing a fault-status register when processing vector instructions | |
JP7510253B2 (ja) | 分岐予測器 | |
JP2002014868A (ja) | メモリ参照動作検出機構を有するマイクロプロセッサおよびコンパイル方法 | |
JP2021515929A (ja) | データ処理 | |
KR20220113410A (ko) | 페치 그룹들의 시퀀스들에 대한 분기 예측 유닛에의 액세스 제어 | |
TWI569207B (zh) | 微處理器、微處理器的運作方法、及改善微處理器效能的方法 | |
JP2023540036A (ja) | 分岐予測リダイレクトのための代替パス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190129 |
|
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: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190621 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6546584 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 |