JP5285408B2 - プロセッサ、プロセッサを動作させる方法、および情報処理システム - Google Patents
プロセッサ、プロセッサを動作させる方法、および情報処理システム Download PDFInfo
- Publication number
- JP5285408B2 JP5285408B2 JP2008311299A JP2008311299A JP5285408B2 JP 5285408 B2 JP5285408 B2 JP 5285408B2 JP 2008311299 A JP2008311299 A JP 2008311299A JP 2008311299 A JP2008311299 A JP 2008311299A JP 5285408 B2 JP5285408 B2 JP 5285408B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- fetch
- instruction
- unit
- branch 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 41
- 230000010365 information processing Effects 0.000 title claims description 14
- 238000012360 testing method Methods 0.000 claims description 48
- 230000001186 cumulative effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
105 メモリ
110 フェッチ・ユニット
110A 命令アドレス・ユニット
110B スロットル入力
115 デコーダ
116 レジスタ・リネーミング・ステージ
117 発行ユニット
120 固定小数点ユニット(FXU)
120A レジスタ・ファイル(RF)
125 浮動小数点ユニット(FPU)
130 ロード・ストア・ユニット(LSU)
125A レジスタ・ファイル(RF)
130 ロード・ストア・ユニット(LSU)
135 ブランチ・ユニット(BRU)
140 ブランチ予測ユニット
142 ブランチ履歴ユニット(BHT)
145 完了ユニット
200 フェッチ・スロットル・コントローラ
205 ブランチ命令キュー(BIQ)
210 信頼性キュー(CQ)
215 ヘッド・ポインタ
220 テール・ポインタ
225 制御論理
230 禁止機能を備えたフェッチ・スロットル状態マシーン(FTSMWIF)
235 アンド回路
235A アンド回路入力
235B ライン入力
240 有効ベクトル発生回路
245 有効ベクトル
250 加算器
255 比較器
260 プログラマブル閾値回路
300 プロセッサ
305 フェッチ・ユニット
310 命令キャッシュ(Iキャッシュ)
315 デコーダ
320 レジスタ・リネーミング回路
325 発行ユニット
350 ブランチ・ユニット(BRU)
355 ブランチ予測ユニット
357 ブランチ履歴ユニット(BHT)
370 フェッチ・スロットル・コントローラ
372 ブランチ命令キュー(BIQ)
374 信頼性キュー(CQ)
376 禁止機能を備えたフェッチ・スロットル状態マシーン(FTSMWIF)
500 情報処理システム(IHS)
505 バス
510 システム・メモリ
520 メモリ・コントローラ
525 ビデオ・グラフィックス・コントローラ
530 ディスプレイ
535 不揮発性ストレージ
540 オペレーティング・システム
545 I/O装置
550 I/Oコントローラ
555 I/Oバス
560 拡張バス
565 ネットワーク・インターフェイス
630 メモリ・バス
Claims (20)
- フェッチされたブランチ命令を含む命令ストリームを提供するために命令ソースから命令を、フェッチ・ユニットによりフェッチするステップと、
前記フェッチされたブランチ命令の結果を、ブランチ予測ユニットにより予測するステップであって、前記フェッチされたブランチ命令のための個々のブランチ予測を提供する前記予測するステップと、
前記フェッチされたブランチ命令を、発行ユニットにより、実行のためのブランチ実行ユニットに発行するステップと、
グループとしての、ブランチ命令キュー中の前記フェッチされたブランチ命令が、第1の所定のブランチ予測信頼性閾値よりも低いことを示すなら、前記フェッチ・ユニットによる命令のフェッチングを、フェッチ・スロットル・コントローラによりスロットリングするステップと、
前記発行ユニットにより現在発行される特定のフェッチされたブランチ命令が、第2の所定のブランチ予測信頼性閾値よりも低いことを示すなら、命令の前記フェッチングの前記スロットリングを、前記フェッチ・スロットル・コントローラにより禁止するステップとを含む、
プロセッサを動作させる方法。 - 前記スロットリングするステップは、前記ブランチ命令キュー中のグループとしての前記フェッチされたブランチ命令が前記第1の所定のブランチ予測信頼性閾値よりも低いことを累積的に示すかを決定するための第1のテストを、前記フェッチ・スロットル・コントローラにより行うステップを含む、請求項1に記載の方法。
- 前記禁止するステップは、前記発行ユニットにより現在発行される前記特定のフェッチされたブランチ命令が、前記第2の所定のブランチ予測信頼性閾値よりも低いことを示すかを決定するための第2のテストを、前記フェッチ・スロットル・コントローラにより行うステップを含む、請求項1に記載の方法。
- 前記第1のテストが、前記ブランチ命令キュー中の、実行中のブランチ命令上で前記フェッチ・スロットル・コントローラにより行われる、請求項2に記載の方法。
- 前記禁止するステップが、所定の期間の窓の間、命令の前記フェッチングの前記スロットリングを、前記フェッチ・スロットル・コントローラにより停止するステップを含む、請求項1に記載の方法。
- 前記所定の期間の前記窓の時間経過後に、前記フェッチ・ユニットによりフェッチ・スロットリングに戻すステップを更に含む、請求項5に記載の方法。
- 前記ブランチ命令キュー中のフェッチされたブランチ命令毎の個々のブランチ予測信頼性閾値を、信頼性ストレージ・メモリによりストアするステップを更に含む、請求項1に記載の方法。
- 命令をストアする命令ソースと、
フェッチされたブランチ命令を含む命令ストリームを提供するため、前記命令ソースからの命令をフェッチするように前記命令ソースに結合されたフェッチ・ユニットと、
前記フェッチされたブランチ命令の結果を予測するブランチ予測ユニットであって、前記フェッチされたブランチ命令のために個々のブランチ予測を提供する前記ブランチ予測ユニットと、
前記フェッチされたブランチ命令を、実行のためのブランチ実行ユニットに発行するように前記フェッチ・ユニットおよび前記ブランチ実行ユニットに結合された発行ユニットと、
グループとしてのブランチ命令キュー中の前記フェッチされたブランチ命令が、第1の所定のブランチ予測信頼性閾値よりも低いことを示すなら、前記フェッチ・ユニットにより命令のフェッチングをスロットルするように、かつ
前記発行ユニットにより現在発行される特定のフェッチされたブランチ命令が、第2の所定のブランチ予測信頼性閾値よりも低いことを示すなら、命令の前記フェッチングのスロットリングをフェッチ・スロットル・コントローラが禁止するように、前記フェッチ・ユニットおよび前記発行ユニットに結合された前記フェッチ・スロットル・コントローラとを含む、プロセッサ。 - グループとしての、前記ブランチ命令キュー中のフェッチされたブランチ命令が、前記第1の所定のブランチ予測信頼性閾値よりも低いことを累積的に示すかを決定する第1のテストを行う、請求項8に記載のプロセッサ。
- フェッチされた命令の前記スロットリングを投機的に禁止する前に、前記発行ユニットにより現在発行される特定のフェッチされたブランチ命令が第2の所定のブランチ予測信頼性閾値よりも低いことを示すかを決定するための第2のテストを行う、請求項9に記載のプロセッサ。
- 前記第1のテストが、前記ブランチ命令キュー中の、実行中のブランチ命令上で前記フェッチ・スロットル・コントローラにより行われる、請求項9に記載のプロセッサ。
- 所定の期間の窓の間、命令の前記フェッチングの前記スロットリングを停止することによって、前記フェッチ・スロットル・コントローラが、命令の前記フェッチングの前記スロットリングを投機的に禁止する、請求項8に記載のプロセッサ。
- 所定の期間の前記窓の時間経過後に、前記フェッチ・スロットル・コントローラが、フェッチ・スロットリングに戻る、請求項12に記載のプロセッサ。
- 前記フェッチ・スロットル・コントローラが前記ブランチ命令キューを含み、かつ前記フェッチ・スロットル・コントローラが、フェッチされたブランチ命令毎の個々のブランチ命令信頼性値をストアする信頼性ストレージ・メモリを更に含む、請求項8に記載のプロセッサ。
- メモリ、および前記メモリに結合されたプロセッサを含む情報処理システムにおいて、前記プロセッサが、
命令をストアする命令ソースと、
フェッチされたブランチ命令を含む命令ストリームを提供するため、前記命令ソースから命令をフェッチするように前記命令ソースに結合されたフェッチ・ユニットと、
前記フェッチされたブランチ命令の結果を予測するブランチ予測ユニットであって、前記フェッチされたブランチ命令のために個々のブランチ予測を提供する前記ブランチ予測ユニットと、
前記フェッチされたブランチ命令を、実行のためのブランチ実行ユニットに発行するように前記フェッチ・ユニットおよび前記ブランチ実行ユニットに結合された発行ユニットと、
グループとしてのブランチ命令キュー中の前記フェッチされたブランチ命令が、第1の所定のブランチ予測信頼性閾値よりも低いことを示すなら、前記フェッチ・ユニットにより命令のフェッチングをスロットルするように、かつ
前記発行ユニットにより現在発行される特定のフェッチされたブランチ命令が、第2の所定のブランチ予測信頼性閾値よりも低いことを示すなら、命令の前記フェッチングのスロットリングをフェッチ・スロットル・コントローラが禁止するように、前記フェッチ・ユニットおよび前記発行ユニットに結合された前記フェッチ・スロットル・コントローラとを含む、
前記情報処理システム。 - グループとしての、前記ブランチ命令キュー中のフェッチされたブランチ命令が、前記第1の所定のブランチ予測信頼性閾値よりも低いことを累積的に示すかを決定する第1のテストを行う、請求項15に記載の情報処理システム。
- フェッチされた命令の前記スロットリングを投機的に禁止する前に、前記発行ユニットにより現在発行される特定のフェッチされたブランチ命令が第2の所定のブランチ予測信頼性閾値よりも低いことを示すかを決定するための第2のテストを行う、請求項16に記載の情報処理システム。
- 前記第1のテストが、前記ブランチ命令キュー中の、実行中のブランチ命令上で前記フェッチ・スロットル・コントローラにより行われる、請求項16に記載の情報処理システム。
- 所定の期間の窓の間、命令の前記フェッチングの前記スロットリングを停止することによって、前記フェッチ・スロットル・コントローラが、命令の前記フェッチングの前記スロットリングを投機的に禁止する、請求項15に記載の情報処理システム。
- 所定の期間の前記窓の時間経過後に、前記フェッチ・スロットル・コントローラが、フェッチ・スロットリングに戻る、請求項19に記載の情報処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/951112 | 2007-12-05 | ||
US11/951,112 US8006070B2 (en) | 2007-12-05 | 2007-12-05 | Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009140502A JP2009140502A (ja) | 2009-06-25 |
JP5285408B2 true JP5285408B2 (ja) | 2013-09-11 |
Family
ID=40722887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008311299A Active JP5285408B2 (ja) | 2007-12-05 | 2008-12-05 | プロセッサ、プロセッサを動作させる方法、および情報処理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8006070B2 (ja) |
JP (1) | JP5285408B2 (ja) |
CN (1) | CN101452378B (ja) |
TW (1) | TW200939116A (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925853B2 (en) * | 2008-01-04 | 2011-04-12 | International Business Machines Corporation | Method and apparatus for controlling memory array gating when a processor executes a low confidence branch instruction in an information handling system |
US8020167B2 (en) * | 2008-05-05 | 2011-09-13 | Dell Products L.P. | System and method for automatic throttling of resources in an information handling system chassis |
US9335980B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using wrapping propagate instructions in the macroscalar architecture |
US9342304B2 (en) | 2008-08-15 | 2016-05-17 | Apple Inc. | Processing vectors using wrapping increment and decrement instructions in the macroscalar architecture |
US9335997B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using a wrapping rotate previous instruction in the macroscalar architecture |
US20100332812A1 (en) * | 2009-06-24 | 2010-12-30 | Doug Burger | Method, system and computer-accessible medium for low-power branch prediction |
CN101604235B (zh) * | 2009-07-10 | 2012-03-28 | 杭州电子科技大学 | 一种嵌入式处理器分支预测的方法 |
US9411599B2 (en) | 2010-06-24 | 2016-08-09 | International Business Machines Corporation | Operand fetching control as a function of branch confidence |
US9836304B2 (en) * | 2010-11-15 | 2017-12-05 | Advanced Micro Devices, Inc. | Cumulative confidence fetch throttling |
US9778934B2 (en) * | 2010-11-16 | 2017-10-03 | Advanced Micro Devices, Inc. | Power efficient pattern history table fetch in branch predictor |
EP2691854A1 (en) * | 2011-03-30 | 2014-02-05 | Freescale Semiconductor, Inc. | A method and apparatus for controlling fetch-ahead in a vles processor architecture |
US9389860B2 (en) | 2012-04-02 | 2016-07-12 | Apple Inc. | Prediction optimizations for Macroscalar vector partitioning loops |
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 |
US9389868B2 (en) * | 2012-11-01 | 2016-07-12 | International Business Machines Corporation | Confidence-driven selective predication of processor instructions |
US11150721B2 (en) * | 2012-11-07 | 2021-10-19 | Nvidia Corporation | Providing hints to an execution unit to prepare for predicted subsequent arithmetic operations |
GB2514956B (en) * | 2013-01-21 | 2015-04-01 | Imagination Tech Ltd | Allocating resources to threads based on speculation metric |
US9489204B2 (en) * | 2013-03-15 | 2016-11-08 | Qualcomm Incorporated | Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process |
US9817663B2 (en) | 2013-03-19 | 2017-11-14 | Apple Inc. | Enhanced Macroscalar predicate operations |
US9348589B2 (en) | 2013-03-19 | 2016-05-24 | Apple Inc. | Enhanced predicate registers having predicates corresponding to element widths |
US10496410B2 (en) * | 2014-12-23 | 2019-12-03 | Intel Corporation | Instruction and logic for suppression of hardware prefetchers |
DE102015208591B4 (de) * | 2015-05-08 | 2016-12-08 | Physik Instrumente (Pi) Gmbh & Co. Kg | Piezoelektrischer Drehantrieb mit einem als Blattfeder ausgebildeten Spannmittel |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US9940136B2 (en) | 2015-06-26 | 2018-04-10 | Microsoft Technology Licensing, Llc | Reuse of decoded instructions |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US11755484B2 (en) * | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US10061584B2 (en) * | 2015-09-19 | 2018-08-28 | Microsoft Technology Licensing, Llc | Store nullification in the target field |
US10095519B2 (en) | 2015-09-19 | 2018-10-09 | Microsoft Technology Licensing, Llc | Instruction block address register |
US10474462B2 (en) | 2016-02-29 | 2019-11-12 | Qualcomm Incorporated | Dynamic pipeline throttling using confidence-based weighting of in-flight branch instructions |
US10331566B2 (en) | 2016-12-01 | 2019-06-25 | International Business Machines Corporation | Operation of a multi-slice processor implementing adaptive prefetch control |
CN108549400B (zh) * | 2018-05-28 | 2021-08-03 | 浙江工业大学 | 基于对数增强型双幂次趋近律和快速终端滑模面的四旋翼飞行器自适应控制方法 |
US10776122B2 (en) | 2018-06-14 | 2020-09-15 | International Business Machines Corporation | Prioritization protocols of conditional branch instructions |
US11507380B2 (en) * | 2018-08-29 | 2022-11-22 | Advanced Micro Devices, Inc. | Branch confidence throttle |
US11216279B2 (en) * | 2018-11-26 | 2022-01-04 | Advanced Micro Devices, Inc. | Loop exit predictor |
US11003454B2 (en) * | 2019-07-17 | 2021-05-11 | Arm Limited | Apparatus and method for speculative execution of instructions |
US11620224B2 (en) * | 2019-12-10 | 2023-04-04 | Advanced Micro Devices, Inc. | Instruction cache prefetch throttle |
US11249764B2 (en) | 2020-04-14 | 2022-02-15 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Flushing in a microprocessor with multi-step ahead branch predictor and a fetch target queue |
CN111459550B (zh) * | 2020-04-14 | 2022-06-21 | 上海兆芯集成电路有限公司 | 具高度领先分支预测器的微处理器 |
US11508124B2 (en) * | 2020-12-15 | 2022-11-22 | Advanced Micro Devices, Inc. | Throttling hull shaders based on tessellation factors in a graphics pipeline |
US11776085B2 (en) | 2020-12-16 | 2023-10-03 | Advanced Micro Devices, Inc. | Throttling shaders based on resource usage in a graphics pipeline |
US11710207B2 (en) | 2021-03-30 | 2023-07-25 | Advanced Micro Devices, Inc. | Wave throttling based on a parameter buffer |
US11972264B2 (en) * | 2022-06-13 | 2024-04-30 | Arm Limited | Micro-operation supply rate variation |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742805A (en) * | 1996-02-15 | 1998-04-21 | Fujitsu Ltd. | Method and apparatus for a single history register based branch predictor in a superscalar microprocessor |
US5822577A (en) * | 1996-05-01 | 1998-10-13 | International Business Machines Corporation | Context oriented branch history table |
US6411156B1 (en) * | 1997-06-20 | 2002-06-25 | Intel Corporation | Employing transistor body bias in controlling chip parameters |
US6415388B1 (en) | 1998-10-30 | 2002-07-02 | Intel Corporation | Method and apparatus for power throttling in a microprocessor using a closed loop feedback system |
US6233645B1 (en) * | 1998-11-02 | 2001-05-15 | Compaq Computer Corporation | Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high |
US7035997B1 (en) * | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
US6272666B1 (en) * | 1998-12-30 | 2001-08-07 | Intel Corporation | Transistor group mismatch detection and reduction |
US6484265B2 (en) * | 1998-12-30 | 2002-11-19 | Intel Corporation | Software control of transistor body bias in controlling chip parameters |
US6393374B1 (en) * | 1999-03-30 | 2002-05-21 | Intel Corporation | Programmable thermal management of an integrated circuit die |
US6363490B1 (en) * | 1999-03-30 | 2002-03-26 | Intel Corporation | Method and apparatus for monitoring the temperature of a processor |
US6625744B1 (en) * | 1999-11-19 | 2003-09-23 | Intel Corporation | Controlling population size of confidence assignments |
US6564328B1 (en) * | 1999-12-23 | 2003-05-13 | Intel Corporation | Microprocessor with digital power throttle |
US6697932B1 (en) * | 1999-12-30 | 2004-02-24 | Intel Corporation | System and method for early resolution of low confidence branches and safe data cache accesses |
US6766441B2 (en) * | 2001-01-19 | 2004-07-20 | International Business Machines Corporation | Prefetching instructions in mis-predicted path for low confidence branches |
US6608528B2 (en) * | 2001-10-22 | 2003-08-19 | Intel Corporation | Adaptive variable frequency clock system for high performance low power microprocessors |
US7032116B2 (en) * | 2001-12-21 | 2006-04-18 | Intel Corporation | Thermal management for computer systems running legacy or thermal management operating systems |
US6931559B2 (en) * | 2001-12-28 | 2005-08-16 | Intel Corporation | Multiple mode power throttle mechanism |
US7281140B2 (en) * | 2001-12-28 | 2007-10-09 | Intel Corporation | Digital throttle for multiple operating points |
TW567408B (en) * | 2002-03-29 | 2003-12-21 | Uniwill Comp Corp | Apparatus and method for controlling power and clock speed of electronic system |
TWI262380B (en) * | 2002-04-25 | 2006-09-21 | Quanta Comp Inc | Dynamic adjustment method for power consumption of computer system |
US20040003215A1 (en) * | 2002-06-28 | 2004-01-01 | Evgeni Krimer | Method and apparatus for executing low power validations for high confidence speculations |
US6934865B2 (en) * | 2002-07-09 | 2005-08-23 | University Of Massachusetts | Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor |
US6762629B2 (en) * | 2002-07-26 | 2004-07-13 | Intel Corporation | VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors |
US6908227B2 (en) * | 2002-08-23 | 2005-06-21 | Intel Corporation | Apparatus for thermal management of multiple core microprocessors |
US7076672B2 (en) * | 2002-10-14 | 2006-07-11 | Intel Corporation | Method and apparatus for performance effective power throttling |
US7085945B2 (en) * | 2003-01-24 | 2006-08-01 | Intel Corporation | Using multiple thermal points to enable component level power and thermal management |
US7124321B2 (en) * | 2003-02-10 | 2006-10-17 | Sun Microsystems, Inc. | Adaptive throttling |
US7496776B2 (en) * | 2003-08-21 | 2009-02-24 | International Business Machines Corporation | Power throttling method and apparatus |
EP1658560B1 (en) * | 2003-08-26 | 2009-06-10 | International Business Machines Corporation | Processor with demand-driven clock throttling for power reduction |
US7240225B2 (en) * | 2003-11-10 | 2007-07-03 | Dell Products L.P. | System and method for throttling power in one or more information handling systems |
US7363517B2 (en) * | 2003-12-19 | 2008-04-22 | Intel Corporation | Methods and apparatus to manage system power and performance |
CN1270233C (zh) * | 2003-12-24 | 2006-08-16 | 智慧第一公司 | 远跳跃及远呼叫指令的退回分支预测机制的处理器及方法 |
US7194641B2 (en) * | 2004-01-22 | 2007-03-20 | International Business Machines Corporation | Method and apparatus for managing power and thermal alerts transparently to an operating system in a data processing system with increased granularity in reducing power usage and thermal generation |
CN1280713C (zh) * | 2004-03-09 | 2006-10-18 | 中国人民解放军国防科学技术大学 | 双栈返回地址预测器设计方法 |
US7334143B2 (en) * | 2004-04-19 | 2008-02-19 | Hewlett-Packard Development Company, L.P. | Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value |
US7418608B2 (en) * | 2004-06-17 | 2008-08-26 | Intel Corporation | Method and an apparatus for managing power consumption of a server |
US7330988B2 (en) * | 2004-06-30 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for power throttling in a multi-thread processor |
US7392366B2 (en) * | 2004-09-17 | 2008-06-24 | International Business Machines Corp. | Adaptive fetch gating in multithreaded processors, fetch control and method of controlling fetches |
US7478214B2 (en) * | 2006-01-04 | 2009-01-13 | Intel Corporation | Clock-gated random access memory |
US7627742B2 (en) * | 2007-04-10 | 2009-12-01 | International Business Machines Corporation | Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system |
US20080263325A1 (en) * | 2007-04-19 | 2008-10-23 | International Business Machines Corporation | System and structure for synchronized thread priority selection in a deeply pipelined multithreaded microprocessor |
-
2007
- 2007-12-05 US US11/951,112 patent/US8006070B2/en not_active Expired - Fee Related
-
2008
- 2008-11-10 TW TW097143346A patent/TW200939116A/zh unknown
- 2008-11-19 CN CN2008101813441A patent/CN101452378B/zh active Active
- 2008-12-05 JP JP2008311299A patent/JP5285408B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
TW200939116A (en) | 2009-09-16 |
US8006070B2 (en) | 2011-08-23 |
CN101452378B (zh) | 2011-11-23 |
CN101452378A (zh) | 2009-06-10 |
JP2009140502A (ja) | 2009-06-25 |
US20090150657A1 (en) | 2009-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5285408B2 (ja) | プロセッサ、プロセッサを動作させる方法、および情報処理システム | |
US7627742B2 (en) | Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system | |
US8255669B2 (en) | Method and apparatus for thread priority control in a multi-threaded processor based upon branch issue information including branch confidence information | |
EP3001308B1 (en) | Loop predictor-directed loop buffer | |
JP4811879B2 (ja) | 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法 | |
US7925853B2 (en) | Method and apparatus for controlling memory array gating when a processor executes a low confidence branch instruction in an information handling system | |
US6282663B1 (en) | Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor | |
JP5917616B2 (ja) | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 | |
KR101174560B1 (ko) | 잘못된 추측성 업데이트의 링크 스택 복구 | |
US8667257B2 (en) | Detecting branch direction and target address pattern and supplying fetch address by replay unit instead of branch prediction unit | |
US20120079488A1 (en) | Execute at commit state update instructions, apparatus, methods, and systems | |
EP3039532B1 (en) | A data processing apparatus and method for controlling performance of speculative vector operations | |
US6735687B1 (en) | Multithreaded microprocessor with asymmetrical central processing units | |
EP0901063A2 (en) | Power management methods | |
US11693666B2 (en) | Responding to branch misprediction for predicated-loop-terminating branch instruction | |
US11663007B2 (en) | Control of branch prediction for zero-overhead loop | |
JP5247037B2 (ja) | 半導体集積回路及びその制御方法 | |
WO2002029556A2 (en) | Incorporating local branch history when predicting multiple conditional branch outcomes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111021 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130416 |
|
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: 20130514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130531 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5285408 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |