JP2013037701A - 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 - Google Patents
可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 Download PDFInfo
- Publication number
- JP2013037701A JP2013037701A JP2012193259A JP2012193259A JP2013037701A JP 2013037701 A JP2013037701 A JP 2013037701A JP 2012193259 A JP2012193259 A JP 2012193259A JP 2012193259 A JP2012193259 A JP 2012193259A JP 2013037701 A JP2013037701 A JP 2013037701A
- Authority
- JP
- Japan
- Prior art keywords
- instruction set
- execution mode
- set execution
- bht
- instruction
- 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
- 238000000034 method Methods 0.000 claims description 40
- 238000011156 evaluation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000002902 bimodal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000003813 thumb Anatomy 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
-
- 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
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode 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
-
- 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/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/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
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)
- Power Sources (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
【解決手段】少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行するプロセッサにおいて、分岐履歴テーブル(BHT)46のあらゆるカウンタにアクセスし、現在の命令セット実行モードに基づいて多重化されたインデックスアドレスビットの数を削減する、行インデックスアドレス及びカウンタインデックスアドレスが形成される。一実施形態において、BHTの行内のカウンタは、当該BHTの半分が一つの命令セット実行モードにおける各アクセスについて電源を落とすことができるような方法でインデックスを付けられ、配置される。
【選択図】図4
Description
11−予測が強く成立する
10−予測が弱く成立する
01−予測が弱く不成立する
00−予測が強く不成立する
といった重み付けされた予測値が割り当てられる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットプロセッサの分岐履歴テーブル(BHT)のあらゆる行にインデックスを付けるためのアドレスを形成する方法であって、各命令セット実行モードは異なるネイティブなインデックスアドレスを有しており、
前記第1及び第2の命令セット実行モードの共通のネイティブな行インデックスアドレスビットを識別し、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットと前記第2の命令セット実行モード専用の最下位のネイティブな行インデックスアドレスビットとを、命令セット実行モードインジケータに基づいて多重化し、
前記共通の及び多重化されたアドレスビットを連結し、
前記BHTの行に前記連結されたアドレスを用いてインデックスを付ける
ことを含む、方法。
[C2]
前記BHTの行にインデックスを付けることに先立って、前記連結されたアドレスをグローバルな分岐履歴値でハッシングすることを更に含む、C1記載の方法。
[C3]
前記連結されたアドレスを前記グローバルな分岐履歴値でハッシングすることは、前記連結されたアドレスと前記グローバルな分岐履歴値との間で排他的論理和をとることを含む、C2記載の方法。
[C4]
インデックスを付けられた行のカウンタインデックスアドレスは、前記第1の命令セット実行モードの前記ネイティブなカウンタインデックスアドレスと前記第2の命令セット実行モードの前記ネイティブなカウンタインデックスアドレスとを多重化することによって形成される、C1記載の方法。
[C5]
前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、C1記載の方法。
[C6]
前記BHTは各行8個のカウンタを有する512行を備え、
前記共通のネイティブな行インデックスアドレスビットはビット[12:5]を備え、 前記第1の命令セット実行モード専用の前記最上位のネイティブな行インデックスアドレスビットはビット13を備え、
前記第2の命令セット実行モード専用の前記最下位のネイティブな行インデックスアドレスビットはビット4を備える、
C4記載の方法。
[C7]
インデックスを付けられた行のカウンタインデックスアドレスは、前記第1の命令セット実行モードのアドレスビット[4:2]と前記第2の命令セット実行モードのアドレスビット[3:1]とを多重化することによって形成される、C5記載の方法。
[C8]
少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットのプロセッサの分岐履歴テーブル(BHT)のあらゆるカウンタにアクセスするための行インデックスアドレス及びカウンタインデックスアドレスを形成する方法であって、
前記BHTの行に前記第2の命令セット実行モードの前記ネイティブな行インデックスアドレスを用いてインデックスを付け、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットと前記第2の命令セット実行モード専用の最下位のネイティブなカウンタインデックスアドレスとを多重化し、
前記多重化されたビットと連結された、各BHTの行におけるカウンタを、前記第2の命令セット実行モードの前記最下位のネイティブなカウンタインデックスアドレスビット以外の全てを用いてインデックスを付ける
ことを含む、方法。
[C9]
前記BHTの2つの部分に別個に電源を供給し、
各行の前記カウンタを、奇数のカウンタインデックスアドレスを有するカウンタは一方の部分にグループ化され、偶数のカウンタインデックスアドレスを有するカウンタは他方の部分にグループ化されるように順序付け、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットの値に基づいて、前記第1の命令セット実行モードで前記BHTの半分にのみ電源を供給する
ことを更に含む、C8記載の方法。
[C10]
各行の前記カウンタを、前記BHTから同時に読み出すことができないカウンタ値が隣接するように順序付けることを更に備える、C9記載の方法。
[C11]
前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、C8記載の方法。
[C12]
前記BHTは各行8個のカウンタを有する512行を備え、
前記第2の命令セット実行モードの前記ネイティブな行インデックスアドレスビットはビット[12:4]を備え、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットはビット13を備え、前記第2の命令セット実行モード専用の最下位のネイティブなカウンタインデックスアドレスビットはビット1を備え、
前記第2の命令セット実行モードの最下位のネイティブなカウンタインデックスアドレスビット以外は全てビット[3:2]を備える、
C11記載の方法。
[C13]
少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットプロセッサの複数のカウンタを備える分岐履歴テーブル(BHT)を動作させる方法であって、
前記第2の命令セット実行モードでのBHTアクセスの期間に前記BHT全体に電源を供給し、
前記第1の命令セット実行モードでのBHTアクセスの期間に前記BHTの半分のみに電源を供給する
ことを含む、方法。
[C14]
偶数のカウンタインデックスアドレスを有する前記カウンタの全てが前記それらのそれぞれの行の一方の半分にあり、奇数のカウンタインデックスアドレスを有する前記カウンタの全てはそれらのそれぞれの行の他方の半分にあるように、前記複数のカウンタを複数の行に配置し、各行は複数のカウンタを有することを更に含む、C13記載の方法。
[C15]
同時にアクセスされることができないカウンタは、それらのそれぞれの行において互いに隣接して並列される、C14記載の方法。
[C16]
フェッチステージを有し、少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行するように動作する命令実行パイプラインと、
前記第1の命令セット実行モードにおいて、前記BHTの半分のみに電源が供給されるように、前記フェッチパイプラインステージの命令アドレスによって、インデックスを付けられ、配置された、複数のカウンタを備える分岐履歴テーブル(BHT)と
を備える、プロセッサ。
[C17]
偶数のカウンタインデックスアドレスを有する前記カウンタの全てがそれらのそれぞれの行の一方の半分にあり、偶数のカウンタインデックスアドレスを有する前記カウンタの全てがそれらのそれぞれの行の他方の半分にあるように、前記BHTの前記複数のカウンタは複数の行に配置され、各行は複数のカウンタを備える、C16記載のプロセッサ。
[C18]
同時にアクセスすることができない前記BHTのカウンタは、それらのそれぞれの行において互いに隣接するように並列される、C17記載のプロセッサ。
Claims (18)
- 少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットプロセッサの分岐履歴テーブル(BHT)のあらゆる行にインデックスを付けるためのアドレスを形成する方法であって、各命令セット実行モードは異なるネイティブなインデックスアドレスを有しており、
前記第1及び第2の命令セット実行モードの共通のネイティブな行インデックスアドレスビットを識別し、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットと前記第2の命令セット実行モード専用の最下位のネイティブな行インデックスアドレスビットとを、命令セット実行モードインジケータに基づいて多重化し、
前記共通の及び多重化されたアドレスビットを連結し、
前記BHTの行に前記連結されたアドレスを用いてインデックスを付ける
ことを含む、方法。 - 前記BHTの行にインデックスを付けることに先立って、前記連結されたアドレスをグローバルな分岐履歴値でハッシングすることを更に含む、請求項1記載の方法。
- 前記連結されたアドレスを前記グローバルな分岐履歴値でハッシングすることは、前記連結されたアドレスと前記グローバルな分岐履歴値との間で排他的論理和をとることを含む、請求項2記載の方法。
- インデックスを付けられた行のカウンタインデックスアドレスは、前記第1の命令セット実行モードの前記ネイティブなカウンタインデックスアドレスと前記第2の命令セット実行モードの前記ネイティブなカウンタインデックスアドレスとを多重化することによって形成される、請求項1記載の方法。
- 前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、請求項1記載の方法。
- 前記BHTは各行8個のカウンタを有する512行を備え、
前記共通のネイティブな行インデックスアドレスビットはビット[12:5]を備え、
前記第1の命令セット実行モード専用の前記最上位のネイティブな行インデックスアドレスビットはビット13を備え、
前記第2の命令セット実行モード専用の前記最下位のネイティブな行インデックスアドレスビットはビット4を備える、
請求項4記載の方法。 - インデックスを付けられた行のカウンタインデックスアドレスは、前記第1の命令セット実行モードのアドレスビット[4:2]と前記第2の命令セット実行モードのアドレスビット[3:1]とを多重化することによって形成される、請求項5記載の方法。
- 少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットのプロセッサの分岐履歴テーブル(BHT)のあらゆるカウンタにアクセスするための行インデックスアドレス及びカウンタインデックスアドレスを形成する方法であって、
前記BHTの行に前記第2の命令セット実行モードの前記ネイティブな行インデックスアドレスを用いてインデックスを付け、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットと前記第2の命令セット実行モード専用の最下位のネイティブなカウンタインデックスアドレスとを多重化し、
前記多重化されたビットと連結された、各BHTの行におけるカウンタを、前記第2の命令セット実行モードの前記最下位のネイティブなカウンタインデックスアドレスビット以外の全てを用いてインデックスを付ける
ことを含む、方法。 - 前記BHTの2つの部分に別個に電源を供給し、
各行の前記カウンタを、奇数のカウンタインデックスアドレスを有するカウンタは一方の部分にグループ化され、偶数のカウンタインデックスアドレスを有するカウンタは他方の部分にグループ化されるように順序付け、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットの値に基づいて、前記第1の命令セット実行モードで前記BHTの半分にのみ電源を供給する
ことを更に含む、請求項8記載の方法。 - 各行の前記カウンタを、前記BHTから同時に読み出すことができないカウンタ値が隣接するように順序付けることを更に備える、請求項9記載の方法。
- 前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、請求項8記載の方法。
- 前記BHTは各行8個のカウンタを有する512行を備え、
前記第2の命令セット実行モードの前記ネイティブな行インデックスアドレスビットはビット[12:4]を備え、
前記第1の命令セット実行モード専用の最上位のネイティブな行インデックスアドレスビットはビット13を備え、前記第2の命令セット実行モード専用の最下位のネイティブなカウンタインデックスアドレスビットはビット1を備え、
前記第2の命令セット実行モードの最下位のネイティブなカウンタインデックスアドレスビット以外は全てビット[3:2]を備える、
請求項11記載の方法。 - 少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットプロセッサの複数のカウンタを備える分岐履歴テーブル(BHT)を動作させる方法であって、
前記第2の命令セット実行モードでのBHTアクセスの期間に前記BHT全体に電源を供給し、
前記第1の命令セット実行モードでのBHTアクセスの期間に前記BHTの半分のみに電源を供給する
ことを含む、方法。 - 偶数のカウンタインデックスアドレスを有する前記カウンタの全てが前記それらのそれぞれの行の一方の半分にあり、奇数のカウンタインデックスアドレスを有する前記カウンタの全てはそれらのそれぞれの行の他方の半分にあるように、前記複数のカウンタを複数の行に配置し、各行は複数のカウンタを有することを更に含む、請求項13記載の方法。
- 同時にアクセスされることができないカウンタは、それらのそれぞれの行において互いに隣接して並列される、請求項14記載の方法。
- フェッチステージを有し、少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行するように動作する命令実行パイプラインと、
前記第1の命令セット実行モードにおいて、前記BHTの半分のみに電源が供給されるように、前記フェッチパイプラインステージの命令アドレスによって、インデックスを付けられ、配置された、複数のカウンタを備える分岐履歴テーブル(BHT)と
を備える、プロセッサ。 - 偶数のカウンタインデックスアドレスを有する前記カウンタの全てがそれらのそれぞれの行の一方の半分にあり、偶数のカウンタインデックスアドレスを有する前記カウンタの全てがそれらのそれぞれの行の他方の半分にあるように、前記BHTの前記複数のカウンタは複数の行に配置され、各行は複数のカウンタを備える、請求項16記載のプロセッサ。
- 同時にアクセスすることができない前記BHTのカウンタは、それらのそれぞれの行において互いに隣接するように並列される、請求項17記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/536,743 | 2006-09-29 | ||
US11/536,743 US7716460B2 (en) | 2006-09-29 | 2006-09-29 | Effective use of a BHT in processor having variable length instruction set execution modes |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009526956A Division JP5384344B2 (ja) | 2006-09-29 | 2007-09-28 | 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013037701A true JP2013037701A (ja) | 2013-02-21 |
JP5497123B2 JP5497123B2 (ja) | 2014-05-21 |
Family
ID=38814527
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009526956A Expired - Fee Related JP5384344B2 (ja) | 2006-09-29 | 2007-09-28 | 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 |
JP2012193259A Expired - Fee Related JP5497123B2 (ja) | 2006-09-29 | 2012-09-03 | 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009526956A Expired - Fee Related JP5384344B2 (ja) | 2006-09-29 | 2007-09-28 | 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7716460B2 (ja) |
EP (1) | EP2069916B1 (ja) |
JP (2) | JP5384344B2 (ja) |
KR (1) | KR101059335B1 (ja) |
CN (1) | CN101517534B (ja) |
WO (1) | WO2008039975A1 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
EP2527972A3 (en) | 2006-11-14 | 2014-08-06 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
CN101853148B (zh) * | 2009-05-19 | 2014-04-23 | 威盛电子股份有限公司 | 适用于微处理器的装置及方法 |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
CN108376097B (zh) | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
CN103547993B (zh) | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
EP2689326B1 (en) | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
WO2012162189A1 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
TWI603198B (zh) | 2011-05-20 | 2017-10-21 | 英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
CN102298815B (zh) * | 2011-05-20 | 2014-03-12 | 宁波讯强电子科技有限公司 | 一种高矫顽力偏置片、其制造方法及用其制成的声磁防盗标签 |
US20130007602A1 (en) | 2011-06-29 | 2013-01-03 | Apple Inc. | Fixed layout electronic publications |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
EP2783280B1 (en) | 2011-11-22 | 2019-09-11 | Intel Corporation | An accelerated code optimizer for a multiengine microprocessor |
US9378017B2 (en) * | 2012-12-29 | 2016-06-28 | Intel Corporation | Apparatus and method of efficient vector roll operation |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9436476B2 (en) | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
EP2972845B1 (en) | 2013-03-15 | 2021-07-07 | Intel Corporation | A method for executing multithreaded instructions grouped onto blocks |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US20140281116A1 (en) | 2013-03-15 | 2014-09-18 | Soft Machines, Inc. | Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits |
US9627038B2 (en) | 2013-03-15 | 2017-04-18 | Intel Corporation | Multiport memory cell having improved density area |
US9582322B2 (en) | 2013-03-15 | 2017-02-28 | Soft Machines Inc. | Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10140138B2 (en) * | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9825884B2 (en) | 2013-12-30 | 2017-11-21 | Cavium, Inc. | Protocol independent programmable switch (PIPS) software defined data center networks |
JP2017516228A (ja) | 2014-05-12 | 2017-06-15 | インテル・コーポレーション | 自己書き換えコードのハードウェアサポートを提供する方法及び装置 |
US9413357B2 (en) | 2014-06-11 | 2016-08-09 | Cavium, Inc. | Hierarchical statistically multiplexed counters and a method thereof |
US10198260B2 (en) * | 2016-01-13 | 2019-02-05 | Oracle International Corporation | Processing instruction control transfer instructions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021489A (en) * | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
JP2003256197A (ja) * | 2002-02-20 | 2003-09-10 | Arm Ltd | データ処理装置における命令の予測 |
JP2006053830A (ja) * | 2004-08-13 | 2006-02-23 | Toshiba Corp | 分岐予測装置および分岐予測方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778735B2 (ja) | 1988-12-05 | 1995-08-23 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
US6157980A (en) * | 1998-03-23 | 2000-12-05 | International Business Machines Corporation | Cache directory addressing scheme for variable cache sizes |
US7134005B2 (en) | 2001-05-04 | 2006-11-07 | Ip-First, Llc | Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte |
US6923502B2 (en) | 2003-07-28 | 2005-08-02 | Terry Cassaday | Chair with switch controls for chair control directory |
US20050273559A1 (en) | 2004-05-19 | 2005-12-08 | Aris Aristodemou | Microprocessor architecture including unified cache debug unit |
KR101076815B1 (ko) | 2004-05-29 | 2011-10-25 | 삼성전자주식회사 | 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템 |
-
2006
- 2006-09-29 US US11/536,743 patent/US7716460B2/en not_active Expired - Fee Related
-
2007
- 2007-09-28 CN CN2007800340942A patent/CN101517534B/zh not_active Expired - Fee Related
- 2007-09-28 EP EP07843464.4A patent/EP2069916B1/en not_active Not-in-force
- 2007-09-28 KR KR1020097008741A patent/KR101059335B1/ko not_active IP Right Cessation
- 2007-09-28 WO PCT/US2007/079864 patent/WO2008039975A1/en active Application Filing
- 2007-09-28 JP JP2009526956A patent/JP5384344B2/ja not_active Expired - Fee Related
-
2009
- 2009-11-05 US US12/612,860 patent/US8185725B2/en not_active Expired - Fee Related
-
2012
- 2012-09-03 JP JP2012193259A patent/JP5497123B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021489A (en) * | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
JP2003256197A (ja) * | 2002-02-20 | 2003-09-10 | Arm Ltd | データ処理装置における命令の予測 |
JP2006053830A (ja) * | 2004-08-13 | 2006-02-23 | Toshiba Corp | 分岐予測装置および分岐予測方法 |
Non-Patent Citations (1)
Title |
---|
JPN6012016243; Dharmesh Parikhy et al.: '"Power Issues Related to Branch Prediction"' Proceedings of the Eighth International Symposium on High-Performance Computer Architecture (HPCA.02 , 20020206, page(s): 233 - 244, IEEE * |
Also Published As
Publication number | Publication date |
---|---|
JP5497123B2 (ja) | 2014-05-21 |
US7716460B2 (en) | 2010-05-11 |
US20100058032A1 (en) | 2010-03-04 |
KR101059335B1 (ko) | 2011-08-24 |
JP5384344B2 (ja) | 2014-01-08 |
CN101517534A (zh) | 2009-08-26 |
JP2010501964A (ja) | 2010-01-21 |
US8185725B2 (en) | 2012-05-22 |
EP2069916B1 (en) | 2017-08-02 |
EP2069916A1 (en) | 2009-06-17 |
KR20090061075A (ko) | 2009-06-15 |
US20080082807A1 (en) | 2008-04-03 |
WO2008039975A1 (en) | 2008-04-03 |
CN101517534B (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5497123B2 (ja) | 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 | |
US10209993B2 (en) | Branch predictor that uses multiple byte offsets in hash of instruction block fetch address and branch pattern to generate conditional branch predictor indexes | |
US9367471B2 (en) | Fetch width predictor | |
JP5255701B2 (ja) | 疎及び密予測を伴うハイブリッド分岐予測デバイス | |
US5758142A (en) | Trainable apparatus for predicting instruction outcomes in pipelined processors | |
US20060218385A1 (en) | Branch target address cache storing two or more branch target addresses per index | |
US7032097B2 (en) | Zero cycle penalty in selecting instructions in prefetch buffer in the event of a miss in the instruction cache | |
US20080034187A1 (en) | Method and Apparatus for Prefetching Non-Sequential Instruction Addresses | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
WO1998012631A1 (en) | A cache line branch prediction scheme that shares among sets of a set associative cache | |
JP2013080497A (ja) | スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ | |
US20080040576A1 (en) | Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set | |
US7877587B2 (en) | Branch prediction within a multithreaded processor | |
KR20090089358A (ko) | 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법 | |
US10776119B2 (en) | Combined conditional branch and indirect branch target predictor | |
US7447885B2 (en) | Reading prediction outcomes within a branch prediction mechanism | |
Xia | Using Trace Cache in SMT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130917 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20131217 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20131220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140117 |
|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5497123 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 |
|
LAPS | Cancellation because of no payment of annual fees |