JP5497123B2 - 可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 - Google Patents
可変長の命令セット実行モードを有するプロセッサにおけるbhtの有効な利用 Download PDFInfo
- Publication number
- JP5497123B2 JP5497123B2 JP2012193259A JP2012193259A JP5497123B2 JP 5497123 B2 JP5497123 B2 JP 5497123B2 JP 2012193259 A JP2012193259 A JP 2012193259A JP 2012193259 A JP2012193259 A JP 2012193259A JP 5497123 B2 JP5497123 B2 JP 5497123B2
- Authority
- JP
- Japan
- Prior art keywords
- counter
- bht
- instruction
- execution mode
- instruction set
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 2
- 238000011156 evaluation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification 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
- 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)
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 (20)
- 少なくとも第1の最小の命令長を有する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する第2の命令セット実行モードで命令を実行する可変長の命令セットプロセッサにおける複数のカウンタを備える分岐履歴テーブル(BHT)を動作させる方法であって、前記方法は、
前記第2の命令セット実行モードで、BHTアクセスの間、前記BHTの第1の半分および前記BHTの第2の半分の両方ともに電源を供給することと、
前記第1の命令セット実行モードで、任意の所与のBHTアクセスの間、前記BHTの第1の半分のみあるいは前記BHTの第2の半分のみに電源を供給することと
を含む、方法。 - 前記複数のカウンタは、複数の行に配置され、各行は第1の半分および第2の半分を備え、前記複数のカウンタの各々はカウンタインデックスアドレスに関連付けられ、偶数のカウンタインデックスアドレスに関連付けられたカウンタは、前記行の第1の半分に割り当てられ、奇数のカウンタインデックスアドレスに関連付けられたカウンタは、前記行の第2の半分に割り当てられる、請求項1記載の方法。
- 第1のカウンタおよび第2のカウンタは、特定の行の半分に割り当てられ、前記第1のカウンタおよび前記第2のカウンタは同時にはアクセスされることができず、前記第1のカウンタは前記第2のカウンタに隣接する、請求項2記載の方法。
- 前記第1のカウンタに関連付けられた前記カウンタインデックスアドレスと前記第2のカウンタに関連付けられた前記カウンタインデックスアドレスとは、1ビットぶんだけ(by one bit)異なる、請求項3記載の方法。
- 前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、請求項1記載の方法。
- 前記第1の命令セット実行モードで、前記BHTアクセスの間、前記BHTの第1の半分および前記BHTの第2の半分のうちの1つに電源を供給することは、前記第1の命令セット実行モード専用の最上位の行インデックスアドレスビットの値に基づく、請求項1記載の方法。
- フェッチステージを有し、少なくとも第1の最小の命令長を有する命令に対応する第1の命令セット実行モード、及び、より小さな、第2の最小の命令長を有する命令に対応する第2の命令セット実行モードで命令を実行するように動作可能な命令実行パイプラインと、
第1の半分および第2の半分を備える分岐履歴テーブル(BHT)とを備えるプロセッサであって、
前記フェッチステージに対応する命令アドレスに基づいて、複数のカウンタがインデックスを付けられ、配置され、前記第2の命令セット実行モードで、BHTアクセスの間、前記BHTの第1の半分及び前記BHTの第2の半分の両方が電源を供給され、前記第1の命令セット実行モードで、任意の所与のBHTアクセスの間、前記BHTの第1の半分のみあるいは前記BHTの第2の半分のみが電源を供給される、プロセッサ。 - 前記複数のカウンタは、複数の行に配置され、各行は第1の半分および第2の半分を備え、前記複数のカウンタの各々はカウンタインデックスアドレスに関連付けられ、偶数のカウンタインデックスアドレスに関連付けられたカウンタは、前記行の第1の半分に割り当てられ、奇数のカウンタインデックスアドレスに関連付けられたカウンタは、前記行の第2の半分に割り当てられる、請求項7記載のプロセッサ。
- 特定の行の各半分は、少なくとも第1のカウンタおよび第2のカウンタを含み、前記第1のカウンタおよび前記第2のカウンタは同時にはアクセスされることができず、前記第1のカウンタは前記第2のカウンタに隣接する、請求項8記載のプロセッサ。
- 前記第1のカウンタに関連付けられた前記カウンタインデックスアドレスと前記第2のカウンタに関連付けられた前記カウンタインデックスアドレスとは、1ビットぶんだけ(by one bit)異なる、請求項9記載のプロセッサ。
- 前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、請求項7記載のプロセッサ。
- 前記第1の命令セット実行モードでの命令の実行中、前記BHTの第1の半分および前記BHTの第2の半分のうちの1つに電源を供給することは、前記第1の命令セット実行モード専用の最上位の行インデックスアドレスビットの値に基づく、請求項7記載のプロセッサ。
- 前記第2の命令セット実行モードでの命令の実行中、前記BHTの第1の半分および前記BHTの第2の半分に電源を供給することをさらに備える、請求項7記載のプロセッサ。
- 分岐履歴テーブル(BHT)を第1の半分および第2の半分に分割することであって、前記BHTは、フェッチステージに対応する命令アドレスに基づいて、インデックスを付けられ、配置される複数のカウンタを含み、少なくとも、第1の最小の命令長を有する命令に対応する第1の命令セット実行モード、及び、前記第1の最小の命令長とは異なる第2の最小の命令長を有する命令に対応する第2の命令セット実行モードで命令を実行するように構成された可変長の命令セットプロセッサに関連付けられた前記複数のカウンタを含むことと、
前記第2の命令セット実行モードで、BHTアクセスの間、前記BHTの第1の半分及び前記BHTの第2の半分の両方ともに電源を供給することと、
前記第1の命令セット実行モードで、任意の所与のBHTアクセスの間、前記BHTの第1の半分のみあるいは前記BHTの第2の半分のみに電源を供給することと
を含む、方法。 - 前記第2の命令セット実行モードで命令を実行する場合に、前記BHTの第1の半分および前記BHTの第2の半分に電源を供給することをさらに備える請求項14記載の方法。
- 前記複数のカウンタは、複数の行に配置され、各行は第1の半分および第2の半分を備え、前記複数のカウンタの各々はカウンタインデックスアドレスに関連付けられ、偶数のカウンタインデックスアドレスに関連付けられたカウンタは、前記行の第1の半分に割り当てられ、奇数のカウンタインデックスアドレスに関連付けられたカウンタは、前記行の第2の半分に割り当てられる、請求項14記載の方法。
- 特定の行の各半分は、少なくとも第1のカウンタおよび第2のカウンタを含み、前記第1のカウンタおよび前記第2のカウンタは同時にはアクセスされることができず、前記第1のカウンタは前記第2のカウンタに隣接する、請求項16記載の方法。
- 前記第1のカウンタに関連付けられた前記カウンタインデックスアドレスと前記第2のカウンタに関連付けられた前記カウンタインデックスアドレスとは、1ビットぶんだけ(by one bit)異なる、請求項17記載の方法。
- 前記第1の命令セット実行モードで、前記BHTの第1の半分および前記BHTの第2の半分のうちの1つに電源を供給することは、前記第1の命令セット実行モード専用の最上位の行インデックスアドレスビットの値に基づく、請求項14記載の方法。
- 前記第1の最小の命令長は32ビットであり、前記第2の最小の命令長は16ビットである、請求項14に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
US11/536,743 | 2006-09-29 |
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 JP2013037701A (ja) | 2013-02-21 |
JP5497123B2 true 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 |
---|---|---|---|---|
EP2011018B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
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 | 威盛电子股份有限公司 | 适用于微处理器的装置及方法 |
WO2012037491A2 (en) | 2010-09-17 | 2012-03-22 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
TWI533129B (zh) | 2011-03-25 | 2016-05-11 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊 |
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 |
CN108376097B (zh) | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
EP2710480B1 (en) | 2011-05-20 | 2018-06-20 | Intel Corporation | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
TWI666551B (zh) | 2011-05-20 | 2019-07-21 | 美商英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
CN102298815B (zh) * | 2011-05-20 | 2014-03-12 | 宁波讯强电子科技有限公司 | 一种高矫顽力偏置片、其制造方法及用其制成的声磁防盗标签 |
US20130007602A1 (en) | 2011-06-29 | 2013-01-03 | Apple Inc. | Fixed layout electronic publications |
CN104040491B (zh) | 2011-11-22 | 2018-06-12 | 英特尔公司 | 微处理器加速的代码优化器 |
IN2014CN03678A (ja) | 2011-11-22 | 2015-09-25 | Soft Machines Inc | |
US9378017B2 (en) * | 2012-12-29 | 2016-06-28 | Intel Corporation | Apparatus and method of efficient vector roll operation |
US9627038B2 (en) | 2013-03-15 | 2017-04-18 | Intel Corporation | Multiport memory cell having improved density area |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9582322B2 (en) | 2013-03-15 | 2017-02-28 | Soft Machines Inc. | Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
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 |
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 |
US9436476B2 (en) | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
WO2014151043A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
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 |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction 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 |
US9825884B2 (en) | 2013-12-30 | 2017-11-21 | Cavium, Inc. | Protocol independent programmable switch (PIPS) software defined data center networks |
CN106796506B (zh) | 2014-05-12 | 2019-09-27 | 英特尔公司 | 用于向自修改代码提供硬件支持的方法和装置 |
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 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778735B2 (ja) | 1988-12-05 | 1995-08-23 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
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 |
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 |
US7017030B2 (en) * | 2002-02-20 | 2006-03-21 | Arm Limited | Prediction of instructions in a data processing apparatus |
US6923502B2 (en) | 2003-07-28 | 2005-08-02 | Terry Cassaday | Chair with switch controls for chair control directory |
WO2005114441A2 (en) | 2004-05-19 | 2005-12-01 | Arc International (Uk) Limited | Microprocessor architecture |
KR101076815B1 (ko) | 2004-05-29 | 2011-10-25 | 삼성전자주식회사 | 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템 |
JP2006053830A (ja) * | 2004-08-13 | 2006-02-23 | Toshiba Corp | 分岐予測装置および分岐予測方法 |
-
2006
- 2006-09-29 US US11/536,743 patent/US7716460B2/en not_active Expired - Fee Related
-
2007
- 2007-09-28 JP JP2009526956A patent/JP5384344B2/ja not_active Expired - Fee Related
- 2007-09-28 KR KR1020097008741A patent/KR101059335B1/ko not_active IP Right Cessation
- 2007-09-28 CN CN2007800340942A patent/CN101517534B/zh not_active Expired - Fee Related
- 2007-09-28 WO PCT/US2007/079864 patent/WO2008039975A1/en active Application Filing
- 2007-09-28 EP EP07843464.4A patent/EP2069916B1/en not_active Not-in-force
-
2009
- 2009-11-05 US US12/612,860 patent/US8185725B2/en active Active
-
2012
- 2012-09-03 JP JP2012193259A patent/JP5497123B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2008039975A1 (en) | 2008-04-03 |
CN101517534B (zh) | 2012-10-17 |
US7716460B2 (en) | 2010-05-11 |
US20080082807A1 (en) | 2008-04-03 |
KR101059335B1 (ko) | 2011-08-24 |
JP5384344B2 (ja) | 2014-01-08 |
US8185725B2 (en) | 2012-05-22 |
EP2069916A1 (en) | 2009-06-17 |
KR20090061075A (ko) | 2009-06-15 |
EP2069916B1 (en) | 2017-08-02 |
JP2013037701A (ja) | 2013-02-21 |
CN101517534A (zh) | 2009-08-26 |
US20100058032A1 (en) | 2010-03-04 |
JP2010501964A (ja) | 2010-01-21 |
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 | |
JP3871883B2 (ja) | 間接分岐ターゲットを計算するための方法 | |
US20080034187A1 (en) | Method and Apparatus for Prefetching Non-Sequential Instruction Addresses | |
KR101081674B1 (ko) | 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법 | |
JP5231403B2 (ja) | スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
EP0927394A1 (en) | A cache line branch prediction scheme that shares among sets of a set associative cache | |
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 | |
US7447885B2 (en) | Reading prediction outcomes within a branch prediction mechanism |
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 |