JP2010524107A - プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム - Google Patents

プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム Download PDF

Info

Publication number
JP2010524107A
JP2010524107A JP2010502508A JP2010502508A JP2010524107A JP 2010524107 A JP2010524107 A JP 2010524107A JP 2010502508 A JP2010502508 A JP 2010502508A JP 2010502508 A JP2010502508 A JP 2010502508A JP 2010524107 A JP2010524107 A JP 2010524107A
Authority
JP
Japan
Prior art keywords
branch
instruction
processor
instructions
suppression
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
Application number
JP2010502508A
Other languages
English (en)
Other versions
JP5172942B2 (ja
Inventor
ヤン、レイモンド、チュン
ゲスビント、マイケル、カール
ボーズ、プラディプ
ブユクトスノグル、アルパ
シェル、チェンヨン
ネイル、ラヴィ
フィルハワー、ロバート、アラン
ウォルフラム、ザウアー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010524107A publication Critical patent/JP2010524107A/ja
Application granted granted Critical
Publication of JP5172942B2 publication Critical patent/JP5172942B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

【課題】 情報処理システムにおいて、プロセッサによる電力消費のさらなる低減を達成する装置および方法を提供する。
【解決手段】 情報処理システムは、分岐命令キュー内に格納された分岐命令に関する分岐予測における不正確さまたは信頼の欠如が、不正確さまたは誤差の所定の信頼度しきい値レベルを超える場合は、必ず命令フェッチャを抑制する、プロセッサを含む。このように、プロセッサが分岐命令の成果を誤予測する可能性の高い場合、プロセッサの電力を節約するために、フェッチ動作の速度が低下される。プロセッサが分岐命令の成果を正しく予測する可能性の高い場合、フェッチ動作は全速に戻る。
【選択図】 図1

Description

本明細書の開示は、一般にプロセッサに関し、とりわけ、情報処理システムにおいて電力節約方法を採用するプロセッサに関する。
現在の情報処理システムは、しばしばかなりの量の熱を発生するプロセッサを使用する。プロセッサの温度を感知する温度抑制(throttling)技法が存在する。プロセッサの温度が所定のしきい値温度を超えると、システムはプロセッサのクロック速度を抑制または低下させ、それに応じてプロセッサの温度を低下させる。このようにして、システムは望ましくない過熱を防止する。別の方法として、システムはクロック・ゲーティングを採用すること、すなわち、プロセッサの温度を低下させるために、プロセッサのクロックをある期間停止することができる。
電力節約は、現在のプロセッサの最大動作周波数にとって重要な要因である。プロセッサが消費する電力量を感知する電力抑制技法が使用可能である。消費された電力が所定のしきい値電力レベルを超えた場合、電力抑制システムは、プロセッサの電力消費が少なくなるようにプロセッサの動作周波数を低下させる。
情報処理システムにおいて、プロセッサによる電力消費のさらなる低減を達成する装置および方法が求められている。
したがって、一実施形態では、プロセッサを動作させるための方法が開示される。この方法は、フェッチャ(fetcher)による、フェッチ済み分岐命令を含む命令ストリームを提供するための命令ソースからの命令のフェッチを含む。この方法は、分岐命令キューによる、命令ストリームからの複数のフェッチ済み分岐命令の格納も含む。さらにこの方法は、分岐実行ユニットによる、分岐予測情報を使用することによるフェッチ済み分岐命令の投機的実行、および、それぞれのフェッチ済み分岐命令で分岐が選択されるか否かの解決、したがって実行済み分岐命令の提供も含む。さらにまたこの方法は、信頼ストレージ・メモリによる、分岐命令キュー内に格納されたフェッチ済み分岐命令に関する分岐予測情報内の信頼量を記述する信頼情報の格納も含む。この方法は、信頼情報が所定の信頼しきい値未満の信頼を示す場合、抑制回路による命令ソースからの命令のフェッチの抑制も含み、この抑制により、プロセッサによる電力消費が低減される。
他の実施形態では、プロセッサを動作させるための方法が開示される。この方法は、フェッチャによる、フェッチ済み分岐命令を含む命令ストリームを提供するための命令ソースからの命令のフェッチを含む。この方法は、分岐命令キューによる、命令ストリームからの複数のフェッチ済み分岐命令の格納も含む。さらにこの方法は、分岐実行ユニットによる、分岐予測情報を使用することによるフェッチ済み分岐命令の投機的実行、および、それぞれのフェッチ済み分岐命令で分岐が選択されるか否かの解決、したがって実行済み分岐命令の提供も含む。さらにまたこの方法は、信頼ストレージ・メモリによる、分岐命令キュー内のそれぞれのフェッチ済み分岐命令の分岐予測情報の不正確さを記述する複数の信頼値の格納も含む。この方法は、信頼値の合計が所定のしきい値を超える場合、抑制回路による、フェッチャによる命令ソースからの命令のフェッチの抑制も含み、この抑制により、プロセッサによる電力消費が低減される。
さらに他の実施形態では、命令を格納する命令ソースを含むプロセッサが開示される。プロセッサは、フェッチ済み分岐命令を含む命令ストリームを提供するために命令ソースから命令をフェッチする、命令ソースに結合されたフェッチャも含む。さらにプロセッサは、分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、フェッチャに結合された分岐実行ユニットを含む。プロセッサは、フェッチャに結合された抑制コントローラも含む。抑制コントローラは、フェッチャによる命令のフェッチを抑制することができる。抑制コントローラは、複数のフェッチ済み分岐命令を格納する分岐命令キューを含む。抑制コントローラは、分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリも含む。信頼値は、分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する分岐予測情報における信頼の欠如を記述する。抑制コントローラは、信頼ストレージ・メモリ内の信頼値の合計が所定のしきい値を超えた場合、命令ソースからの命令のフェッチを抑制するため、結果として、プロセッサによる電力消費を低減させることになる。
本発明の概念は他の等しく有効な諸実施形態に適しているため、添付の図面は、本発明の単なる例示的な諸実施形態を示すものであり、その範囲を限定するものではない。
開示されたプロセッサの一実施形態を示すブロック図である。 開示されたプロセッサが採用する代表的な抑制コントローラを示すブロック図である。 開示されたプロセッサが採用可能な代替抑制コントローラを示すブロック図である。 開示されたプロセッサがフェッチ抑制動作を実行する際の、プロセッサ内のプロセス流れを示す流れ図である。 図1の開示されたプロセッサを採用する情報処理システム(IHS)を示すブロック図である。
多くの現代のプロセッサは、処理効率を上げるために分岐予測を使用する、投機的実行技法を採用する。プロセッサ内の命令フェッチャは、分岐命令を含む命令ストリームをフェッチする。プロセッサは、分岐予測に応答して、分岐命令後に命令を投機的に実行することができる。より詳細に言えば、命令デコーダが命令ストリームのフェッチ済み分岐命令をデコーディングした後、分岐予測回路は、分岐命令が提案する分岐を選択するか否かの予測を実行する。分岐は「選択される」または「選択されない」の、いずれかである。分岐予測回路は、分岐履歴情報、すなわち、過去にプロセッサがこの特定の分岐命令に遭遇した際の分岐結果、を使用することによって、分岐を選択するか否かを予測する。分岐予測回路が分岐を正しく予測した場合、プロセッサは分岐後に命令の結果を維持する。しかしながら、分岐予測が正しくなかった場合、プロセッサは分岐後に命令の結果を廃棄する。
プロセッサによる命令の投機的実行は、電力を消費する。プロセッサの性能にほとんど影響を与えないように、投機的実行アクティビティが消費する電力を最小限にすることが望ましい。一実施形態では、開示されたプロセッサは、分岐命令の成果予測におけるプロセッサの有する低信頼度分岐命令にプロセッサが遭遇した場合、処理アクティビティを抑制することによって、電力消費を低減させる。プロセッサは、命令ストリームの分岐命令ならびにそれぞれの格納済み分岐命令に関する信頼情報を格納する、分岐命令キュー(BIQ)を含む。信頼情報は、BIQ内の各分岐予測の正確さにおいてプロセッサが示す、信頼のレベルを示す。一実施形態では、プロセッサは、BIQにおける低信頼度分岐の数を合計する。低信頼度分岐の数の合計が、所定のプログラム可能しきい値よりも大きい場合、プロセッサは、電力消費を低減させるために命令フェッチの抑制を実行する。この方法は、プロセッサが、低信頼度分岐パスに対しては命令フェッチの抑制を実行するが、高信頼度分岐パスに対しては抑制を実行しないため、プロセッサの性能に与えるマイナスの影響はわずかである。言い換えればプロセッサは、高信頼度分岐パスでは、抑制せずに全速で命令の実行を継続する。
図1は、プロセッサが消費する電力を低減させるために低信頼度分岐の抑制を採用する、プロセッサ100の一実施形態を示す。プロセッサ100は、プロセッサ100が実行する命令ストリームを含むローカル・キャッシュ・メモリなどのメモリ105を含む。したがってメモリ105は、命令ソースとして動作する。実際には、メモリ105は、命令ストリームまたはプロセッサが実行するプログラムを含む、大規模外部システム・メモリ(図示せず)に接続される。フェッチャ110は、実行用にメモリ105から命令をフェッチするために、メモリ105に結合される。フェッチャ110は、命令アドレス入力110Aを含む。デコーダ回路115は、フェッチャ110から受け取ったフェッチ済み命令を復号するために、フェッチャ110に結合される。フェッチ済み命令ストリームは、演算コードおよびオペランドを備えた命令を含む。命令ストリームの一部の命令は、分岐命令である。シーケンサ回路117はデコーダ115に結合される。シーケンサ回路117は、実行用に特定の復号済み命令を受け取るべき適切な実行ユニットを決定する。シーケンサ回路117は、固定小数点実行ユニット(FXU)120、浮動小数点実行(FPU)ユニット125、ロード・ストア・ユニット(LSU)130、および分岐実行ユニット(BRU)135という、実行ユニットに結合される。固定小数点実行ユニット(FXU)120は、レジスタ・ファイル120Aを含む。浮動小数点実行ユニット125は、レジスタ・ファイル125Aを含む。
実行ユニットは、復号済み分岐命令後、命令ストリーム内で投機的に命令を実行する。分岐履歴テーブル(BHT)140は、フェッチャ110の命令アドレス入力110Aと分岐実行ユニット(BRU)135との間を結合する。分岐履歴テーブル140は、以前に実行された分岐命令の履歴成果を追跡する。分岐ユニット(BRU)135は、この分岐実行履歴情報を使用して、現在受け取っている分岐命令に関する分岐予測を実行する。完了ユニット145は、それぞれの実行ユニット、すなわちFXU 120、FPU 125、LSU 130、およびBRU 135に結合される。より具体的に言えば、完了ユニット145は、FXUレジスタ・ファイル120AおよびFPUレジスタ・ファイル125Aに結合される。完了ユニット145は、投機的に実行された命令を完了すべきであるか否かを判別する。分岐ユニット(BRU)135が分岐を正しく予測した場合、その分岐をたどる命令は完了するはずである。たとえば、分岐ユニット135が分岐を正しく予測した場合、その分岐をたどる固定小数点または整数命令は完了するはずである。この場合、完了ユニット145は、分岐の固定小数点結果の固定小数点レジスタ・ファイル120Aへの書き戻しを制御する。正しく予測された分岐をたどる命令が浮動小数点命令の場合、完了ユニット145は、その浮動小数点命令の結果の浮動小数点レジスタ・ファイル125Aへの書き戻しを制御する。命令が完了すると、それらはもはや投機的ではなくなる。分岐実行ユニット(BRU)135は、特定の分岐命令が選択されるか否かを解決するために、完了ユニット145およびBHT 140と協働して動作する。
より詳細に言えば、分岐履歴テーブル(BHT)140は、以前に実行された分岐命令の履歴を含む。BHT 140内の各エントリは、方向ビットおよび信頼ビットを含む。特定の分岐命令の場合、BHT内のそのエントリは、「分岐選択」または「分岐非選択」を示す方向ビットを含む。一実施形態では、前回分岐が選択されなかった場合、方向ビットは0に等しいことが可能であり、または前回分岐が選択された場合、方向ビットは1に等しいことが可能である。一実施形態では、特定の分岐命令について、方向ビットは、次回プロセッサがその分岐命令に遭遇した際に、プロセッサが分岐を選択すべきであるかどうかを示す。必ずしも方向ビットは、前回プロセッサがその分岐命令に遭遇した際の分岐の方向を表すものではない。しかしながら多くの場合、方向ビットは、前回プロセッサがその分岐命令に遭遇した際の分岐の方向を示す。特定の分岐命令について、分岐選択または分岐非選択予測において信頼度が低い場合、信頼ビットは1に等しいことが可能である。分岐選択または分岐非選択予測において信頼度が高い場合、信頼ビットは0に等しいことが可能である。特定の分岐予測について、低い信頼度を示す理由の1つは、最新の2回でプロセッサが特定の分岐命令を実行し、1回は分岐を選択したがもう1回は選択しなかったためである。特定の分岐予測について、高い信頼度を示す理由には、最新の2回でプロセッサが特定の分岐命令を実行し、どちらの回でも分岐を選択したか、またはどちらの回でも分岐を選択しなかったことが含まれる。
プロセッサ100は、分岐命令キュー(BIQ)205を備えた抑制制御回路または抑制コントローラ200を含む。この特定の実施形態では、分岐命令キュー(BIQ)205は、フェッチャがフェッチしたがプロセッサがまだ完了していない、16のエントリ、すなわち16までの分岐命令を命令ストリーム内に含む。BIQ 205は、特定の応用例に応じて、16よりも多いかまたは少ないエントリを含むことができる。抑制コントローラ200は、BIQ 205に関連する信頼追跡キューまたは信頼キュー(CQ)210も含む。CQ 210は、信頼情報を格納する信頼情報ストレージ・メモリとして働く。BIQ 205の各分岐命令エントリについて、CQ 210はそれぞれの信頼ビットを含む。この特定の実施形態では、CQは16のエントリ、すなわち低信頼度ビットを含む。BIQ 205内の特定の分岐命令エントリについて、CQ 210内のそれぞれのCQ信頼ビット・エントリが論理1を示す場合、これは、この特定の分岐命令に関する分岐予測における低信頼度を示す。しかしながら、BIQ 205内の特定の分岐命令エントリについて、CQ 210内のそれぞれのCQ信頼ビット・エントリが論理0を示す場合、これは、この特定の分岐命令に関する分岐予測における高信頼度を示す。抑制コントローラ200は、CQ 210内の信頼ビットの読み込み(population)を支援するために、分岐履歴テーブル140にアクセスする。たとえば一実施形態では、対応するそれぞれの信頼ビットをCQ 210に読み込むためにBIQ 205が格納する特定の分岐命令について、前回そのプロセッサがその分岐命令を実行した際に、BRU 135およびBHT 140がその分岐命令を誤って予測した場合、抑制コントローラ200は信頼ビット1をCQエントリ内に格納する。しかしながら、前回プロセッサがその分岐命令を実行した際に、BRU 135およびBHT 140がその分岐命令を正しく予測した場合、抑制コントローラ200はCQ内のその分岐に関するそれぞれのエントリに信頼ビット0を読み込む。一実施形態では、BHT 140は、それぞれの分岐命令の信頼ビットまたは信頼値を保持または格納し、分岐命令が実行された場合、BHT 140はそれ自体を更新する。フェッチャ110が特定の分岐命令をフェッチする場合、CQ 210はBHT 140にアクセスし、特定の分岐命令に対応する信頼ビットを読み取って格納する。
分岐命令キュー(BIQ)205は、図1の実施形態では巡回キューである。BIQ 205は、概念上はヘッド・ポインタ215として示されたヘッド・ポインタと、概念上はテール・ポインタ220として示されたテール・ポインタとを含む。ヘッド・ポインタ215は、BIQ 205内の最新の分岐命令を指示し、テール・ポインタ220は、BIQ 205内の最古の分岐命令を指示する。BIQ 205がフェッチャ110から分岐命令を受け取ると、ヘッド・ポインタ215が常にBIQ 205に入る最新の分岐命令を指示し、テール・ポインタが常にBIQ 205内の最古の分岐命令を指示するように、ヘッドおよびテール・ポインタは1回に1つの分岐命令エントリを移動する。
抑制コントローラ200は、ヘッド・ポインタ215、テール・ポインタ220、および信頼キュー(CQ)210に結合された、制御論理225も含む。したがって制御論理225は、現在のヘッド・ポインタ、現在のテール・ポインタ、およびCQ 210のすべての信頼ビットを受け取る。ヘッド・ポインタは、他の分岐命令がBIQ 205に入るごとに変化する。テール・ポインタは、分岐命令が完了するごとに変化する。信頼キュー(CQ)210は、BIQ 205の各分岐命令エントリについて、それぞれの信頼ビットを格納する。言い換えれば、BIQ 205の各分岐命令エントリは、CQ 210内に関連付けられた対応する信頼ビットを有する。制御論理225は、信頼ビットの合計を取得するために、CQ 210のすべての信頼ビットを合計または追加する。この特定の実施形態では、CQ 210が低信頼度ビットを格納するため、制御論理225は低信頼度ビットの合計を決定する。制御論理225は、現在の低信頼度ビットの合計が所定の低信頼度レベルしきい値よりも大きいかどうかを判別するためのテストを実行する。現在の低信頼度ビットの合計が所定の低信頼度レベルしきい値よりも実際に大きいことを、制御論理225が判別した場合、抑制コントローラ200は、プロセッサの電力消費を低減させるためにフェッチ抑制を開始するようにフェッチャ110に指示する。正しい分岐予測が見込まれない命令の投機的実行時に、このようにフェッチ抑制することによって、プロセッサ100は電力消費を低減する。しかしながら、現在の低信頼度ビットの合計が所定の信頼度レベルしきい値よりも大きくない場合、分岐予測は正しい可能性が高く、制御論理225は、命令のフェッチと、抑制なしの全速での投機的実行を許可する。
図2は、図1の抑制コントローラ200のより詳細なブロック図である。図2は、図1を参照しながらすでに前述した、分岐命令キュー(BIQ)205、信頼キュー(CQ)210、制御論理225、およびフェッチ抑制状態マシン230を示す。BIQ 205は、図2に示されるような16の分岐命令エントリBI−0、BI−1、...、BI−15を含む。信頼キュー(CQ)は、0〜15と指定された16の信頼ビット・エントリを含む。図2では、ヘッド・ポインタ215およびテール・ポインタ220は分岐命令BI−0およびBI−2を示すが、ヘッドおよびテール・ポインタは、フェッチ済み命令ストリームから新しい分岐命令がBIQ 205に入ると移動する。プロセッサが命令ストリーム内の分岐命令をフェッチ、実行、および完了する間、BIQ 205が格納する特定の分岐命令は絶えず流動している。BIQ 205は、フェッチ済み命令ストリームから最も新しくフェッチされた16の分岐命令を格納する。したがって、ある一時点で、BIQ 205内のそれぞれの分岐命令に関連付けられた信頼ビットは、全体として、抑制コントローラが、これらの分岐命令に関する予測の正確さにおいて低い信頼度を有することを示す可能性がある。その場合抑制コントローラ200は、電力消費を低減させるためにフェッチ制御を開始する。しかしながら、他の時点で、BIQは他の分岐命令のグループを読み込む。この場合、BIQ 205のそれぞれの分岐命令に関連付けられた信頼ビットは、全体として、抑制コントローラが、これらの分岐命令に関する予測の正確さにおいて高い信頼度を有することを示す可能性がある。したがって抑制コントローラ200は、電力消費を低減させるためのフェッチ制御は開始しないが、その代わりに全速でフェッチするようにフェッチャ110に指示する。
制御論理225は、16ライン入力235Aおよび16ライン入力235Bを有するAND回路235を含む。AND回路入力235Aは、CQ 210内の16のスロットまたはストレージ位置に結合されるため、結果としてAND回路235は、CQ 210から16の信頼ビットを受け取る。ヘッド・ポインタ215およびテール・ポインタ220は、有効ベクトル生成回路240に結合される。有効ベクトル生成回路240は、ヘッドおよびテール・ポインタ情報を使用して16ビット・ベクトルを生成し、ここではベクトルの各ビットがBIQ 205の異なるエントリに対応する。16ビット・ベクトルの各ビットは、BIQ 205内の対応する分岐命令エントリが有効であるかどうかを示す。16ビット・ベクトルの特定ビットが論理1を示す場合、BIQ 205の対応する分岐命令エントリは有効であり、すなわち分岐命令は依然として処理中である。しかしながら、16ビット・ベクトルの特定ビットが論理0を示す場合、BIQ 205の対応する分岐命令エントリは無効である。有効なBIQ 205のエントリはテール・ポインタで始まり、ヘッド・ポインタまで及ぶ。たとえば、ヘッド・ポインタがエントリBI−3にあり、テール・ポインタがエントリBI−7にある場合、16ビット有効ベクトルは0001111100000000である。これは、エントリBI−3、BI−4、BI−5、BI−6、およびBI−7が有効であり、残りのエントリは無効であることを意味する。ヘッド・ポインタがテール・ポインタよりも上の場合、有効ベクトルは折り返し、不連続である。たとえば、ヘッド・ポインタがエントリBI−14にあり、テール・ポインタがBI−2にある場合、有効ベクトルは1110000000000011である。これは、エントリBI−0、BI−1、BI−2、BI−14、およびBI−15が有効であり、残りのエントリは無効であることを意味する。図2において、有効ベクトル・ボックス245は16ビットの有効ベクトル245を表す。
したがって、入力235Aでは、AND回路235はCQ 210から16の低信頼度ビットを受け取り、入力235Bでは、AND回路235は16ビットの有効ベクトルを受け取る。AND回路235が、論理的に16の低信頼度ビットと16のそれぞれの有効ベクトル・ビットとのAND演算を実行する場合、有効ベクトルは、AND回路235の出力での16ビット結果から任意の無効な低信頼度ビットを効果的に除去するマスクとして働く。したがってこの特定の実施形態では、ANDゲート235の出力での16ビット結果は、有効な低信頼度ビットのみを含む。言い換えれば、AND回路235の出力での16の低信頼度ビットは、BIQ 205におけるそれぞれの有効分岐命令に関する低信頼度ビットに対応する。
加算器250は、AND回路235の出力に結合される。加算器250は、AND回路235から受け取った有効な低信頼度ビットを合計して、加算器250の出力に低信頼度分岐の合計、すなわち読み込みカウント(POPCOUNT)を提供する。したがってPOPCOUNTは、特定の時点でのBIQ 205における有効な低信頼度分岐の合計数を表す。比較器255は、低信頼度分岐合計、すなわちPOPCOUNTを受け取るために、加算器250に結合された1つの入力を含む。比較器255の残りの入力は、プログラム可能信頼しきい値を比較器255に提供する、プログラム可能しきい値回路260に結合される。設計者または他のエンティティは、そのレベルを超えた場合は、BIQ内の分岐に関する予測の信頼度が低いため、フェッチ抑制および電力節約を開始すべきであることを示す、低信頼度レベルを表すように、信頼しきい値を選択する。
比較器255の出力は、フェッチ抑制状態マシン230に結合される。低信頼度分岐の合計数であるPOPCOUNTが、所定のプログラム可能しきい値を超えた場合、比較器255は論理1をフェッチ抑制状態マシン230に出力する。これに応答して、フェッチ抑制状態マシン230は、命令のフェッチ速度を低下させるようにフェッチャ110に指示するTHROTTLE信号を、フェッチャ入力110Bに送信する。命令のフェッチ速度を低下させることによって、選択される可能性の低い分岐、すなわち低信頼度分岐を実行する際にプロセッサ100が消費する電力量が減少する。しかしながら、低信頼度分岐の合計数であるPOPCOUNTが所定のプログラム可能しきい値を超えない場合、比較器255は論理0をフェッチ抑制状態マシン230に出力する。これに応答して、フェッチ抑制状態マシン230は、命令を全速でフェッチするようにフェッチャ110に指示するTHROTTLE信号を、フェッチャ入力110Bに送信する。その場合、プロセッサは、BIQ 205の分岐命令に関する予測において高い信頼度を示す。したがって、分岐命令の投機的実行は、フェッチャの抑制および電力低下なしに全速で進められる。
図3は、抑制コントローラの簡略化バージョンをコントローラ300として示す。図3の抑制コントローラ300は図2の抑制コントローラ200と同様であり、同じ要素が同じ番号で示されている。抑制コントローラ300では、コントローラは、BIQ 205内の分岐命令の妥当性をチェックするための有効ベクトル生成を採用しない。したがって抑制コントローラ300は、有効ベクトル生成器240およびAND回路235を採用しない。図3の制御論理225’は、制御論理225’がAND回路235を使用しない点を除いて、図2の制御論理225と同様である。しかしながら、BIQ 205内の分岐命令の妥当性をチェックする有効ベクトル生成を除去することによって、加算器250がCQ 210から受け取る低信頼度ビットは、不良または陳腐化した(stale)信頼情報を含む可能性がある。有効ベクトル・チェック機能を消去することによって、抑制コントローラが、フェッチャを抑制すべきでない時に抑制してしまう可能性がある。この問題を解決するために、抑制コントローラ300は、プロセッサ100がフラッシュまたは分岐誤予測に遭遇すると必ず、CQ 210のすべての信頼ビットをクリアする。言い換えれば、プロセッサがフラッシュまたは分岐誤予測に遭遇した場合、コントローラ300は、CQ 210のRESET入力にRESET信号を印加して、すべてのCQ信頼ビットをゼロにリセットする。実際には、完了ユニット145がCQ 210のRESET入力にRESET信号を送信する(接続は図示せず)。プロセッサは、例外処理中にこうしたフラッシュ動作に遭遇する可能性がある。
図4は、BIQ 205内の分岐命令が低信頼度を示す場合に、電力を節約するためのフェッチ抑制動作を実行する際の、プロセッサ100内のプロセス流れを示す流れ図である。この流れ図では、図1のプロセッサ100が抑制コントローラとして図2の抑制コントローラ200を採用する。プロセス流れは、ブロック405のように、プロセッサ100の初期設定を開始する。プログラマ、設計者、または他のエンティティは、ブロック410のように、フェッチ抑制状態マシン230によるフェッチ抑制の使用可能化またはフェッチ抑制の使用不可の選択を実行する。たとえばプロセッサは、プロセッサの初期設定時にフェッチ抑制を使用可能または使用不可にするように設定可能な、ラッチ(図示せず)を含むことができる。抑制コントローラ200は、意思決定ブロック415のように、フェッチ抑制状態マシン230が使用可能状態を示すか、または使用不可状態を示すかを判別するためのテストを実行する。フェッチ抑制状態マシン230が使用可能でない場合、すべての後続のフェッチ動作は、ブロック420のように、フェッチ抑制状態マシン230によるフェッチ抑制なしに、通常の全速で続行される。言い換えれば、プロセッサ100は、開示された電力節約機能の恩恵なしに命令の実行を続行する。しかしながら、意思決定ブロック415で、フェッチ抑制状態マシンが使用可能状態を示す場合、フェッチャ110は、ブロック425のように、分岐命令を含む命令の中のある命令ストリームからの命令フェッチを開始する。この時点で、分岐ユニット(BRU)135は、分岐命令の成果に関する予測を取得するために、分岐履歴テーブル(BHT)140を読み取る。初期設定時に、BHT 140は一切のエントリを含まない。しかしながら、経時的に、BHT 140は、命令ストリーム内の以前の分岐命令の成果の履歴を累積する。BHT 140は、BHT 140が前回分岐の成果を予測した際に、各分岐命令を正しく予測したかどうかを示す、信頼情報も含む。プロセッサ100が命令ストリームの命令実行を続行すると、ブロック430のように、分岐命令キュー(BIQ 205)は分岐命令で満たされる。BIQ 205の各分岐命令について、CQ 210はそれぞれの信頼ビットで満たされる。
制御論理225は、ブロック435のように、有効ベクトル生成器240からの有効ベクトル245とCQ 210の信頼ビットとのAND演算によって、有効なCQ 210内のそれらの信頼ビットを適格とする。加算器250は、ブロック440のように、CQ 210からのすべての有効信頼ビットをまとめて加算して、合計POPCOUNTを決定する。POPCOUNTの値は、低信頼度分岐命令の合計を表す。制御論理225は、ブロック445のように、低信頼度分岐命令の合計であるPOPCOUNTが、所定の低信頼度しきい値THRESHよりも大きいかどうかを判別するためのテストを実行する。意思決定ブロック445が、現在の低信頼度分岐命令の合計であるPOPCOUNTが、所定の低信頼度しきい値THRESHよりも大きいと判別した場合、BIQ内の分岐命令に関する分岐予測の精度における信頼度が低いため、フェッチ抑制状態マシン230はフェッチ抑制を開始する。このアクションにより、低信頼度分岐命令およびそれらの分岐命令から延伸する分岐内の命令の、投機的実行中の電力消費が低減される。
より詳細には、フェッチ抑制状態マシン230は、1ビット信号THROTTLEを生成するプログラム可能状態マシンであり、ここで0は「フェッチ遮断」を示し、1は「フェッチ許可」を示す。状態マシン230の出力は、抑制信号を提供するためにフェッチャ110に結合される。抑制信号が0に等しい場合、これはフェッチャにフェッチしないよう指示する。前述のように、フェッチ抑制状態マシン230は、プログラマ、設計者、または他のエンティティによる選択に応じて、使用可能状態または使用不可状態を示すことができる。フェッチ抑制状態マシン230が使用不可状態を示す場合、ブロック420のように、フェッチャ110が抑制なしの全速で命令をフェッチするように、常に値1を伴う抑制信号を出力する。しかしながら、フェッチ抑制状態マシン230が使用可能状態を示す場合、プロセス流れは前述のようにブロック425、430、435、440へと続行される。低信頼度分岐命令の合計、POPCOUNTを決定した後、比較器255は、現在の低信頼度分岐命令の合計、POPCOUNTが、低信頼度しきい値レベルTHRESHよりも大きいかどうかを判別するための比較テストを実行する。現在の低信頼度分岐命令の合計、POPCOUNTが、低信頼度しきい値THRESHよりも大きくない場合、比較器255は、ブロック450のように、フェッチ抑制状態マシン230に対して抑制しないように指示する。これに応答して、フェッチ抑制状態マシン230は、抑制信号THROTTTLEをフェッチャ110に送信し、ここで抑制信号は、抑制しないようにフェッチャ110に指示する一連の1である。言い換えれば、抑制信号の一連の1、すなわち連続する論理1値は、全速で命令をフェッチするようにフェッチャ110に指示する。
しかしながら、現在の低信頼度分岐命令の合計、POPCOUNTが、低信頼度しきい値THRESHよりも大きい場合、比較器255は、ブロック455のように、フェッチャ110の抑制を開始するようにフェッチ抑制状態マシン230に指示する。たとえば、フェッチ抑制を実行させるために、状態マシン230は、フェッチャ110が採用する抑制の量を決定するデジタル・パターンを示す抑制信号THROTTLEを生成する。一実施形態では、抑制信号は、抑制動作の持続期間中繰り返されるデジタル・パターン1000を示す。このパターン内の1は、対応するマシン・サイクルの間フェッチするように、フェッチャに指示する。パターン内の000は、次の3マシン・サイクルの間フェッチしないように、フェッチャに指示する。したがってデジタル抑制パターン1000は、4マシン・サイクルごとに1回命令をフェッチするように、フェッチャ110に指示する。これは、75%の抑制に対応する。デジタル・パターン1010は、1000デジタル・パターンよりも少ない抑制、すなわち、プロセッサのマシン・サイクルの50%の抑制を提供する。状態マシン230により、特定の応用例に対して望ましい抑制の量に依存した抑制信号として、他のデジタル・パターンが使用可能である。一実施形態では、望ましい抑制の量および電力節約に従った、デジタル抑制パターンがプログラム可能である。
図5は、プロセッサ100を採用する情報処理システム(IHS)500を示す。IHSとは、デジタル形式、アナログ形式、または他の形式の情報を、処理、転送、通信、修正、格納、またはその他の方法で処理するシステムである。IHS 500は、メモリ・コントローラ520を介してプロセッサ100をシステム・メモリ510に結合するバス505を含む。ビデオ・グラフィックス・コントローラ525は、ディスプレイ530をバス505に結合する。ハード・ディスク・ドライブ、CDドライブ、DVDドライブ、または他の不揮発性ストレージなどの、不揮発性ストレージ535は、IHS 500に永続ストレージを提供するために、バス505に接続される。オペレーティング・システム540は、IHS 500の動作を管理するために、メモリ510内にロードする。キーボードおよびマウス・ポインティング・デバイスなどのI/Oデバイス545は、I/Oコントローラ550およびI/Oバス555を介して、バス505に結合される。USB、IEEE 1394バス、ATA、SATA、PCI、PCIE、および他のバスなどの、1つまたは複数の拡張バス560は、周辺機器およびデバイスのIHS 500への接続を容易にするために、バス505に結合される。ネットワーク・アダプタ565は、IHS 500が有線または無線でネットワークおよび他の情報処理システムに接続できるようにするために、バス505に結合される。図5は、プロセッサ100を採用する1つのIHSを示すが、IHSは多くの形を取ることができる。たとえばIHS 500は、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、あるいは他のフォーム・ファクタ・コンピュータまたはデータ処理システムの形を取ることができる。IHS 500は、ゲーミング・デバイス、携帯情報端末(PDA)、携帯電話デバイス、通信デバイス、または、プロセッサおよびメモリを含む他のデバイスなどの、他のフォーム・ファクタを取ることができる。
前述の実施形態では、CQ 210は、BIQ 205内の分岐命令に関する分岐予測における信頼度をそれらの予測に関する低信頼度に関して記述する、信頼ビットを格納するが、等価の方法および装置で、プロセッサの論理を逆転させてもなお、開示された技術を実施することができる。たとえばプロセッサ100は、図1の実施形態の分岐予測における低信頼度の量とは対照的に、BIQ 205内の分岐命令に関する分岐予測における高信頼度の量を記述する、CQ 210内の信頼情報を採用することができる。こうした実施形態では、CQ 210内の信頼ビットは、BIQ 205が格納する分岐命令に関する分岐予測の精度における信頼度を示す。加算器250は、POPCOUNT値を決定するために、依然として前述のように信頼ビットをまとめて加算する。しかしながら、比較器255は、BIQ分岐命令に関する分岐予測の精度における信頼度レベルを示すPOPCOUNT値が、所定の信頼度しきい値レベルよりも大きいかどうかを判別するためのテストを実行する。POPCOUNTによって表された信頼度が所定の信頼度しきい値レベルを超える場合、状態マシン230からのTHROTTLE信号は、抑制しないようにフェッチャ110に指示する。BIQ分岐命令に関する分岐予測の精度における信頼度が高いため、フェッチ済み命令の投機的実行は、フェッチ抑制なしに、および電力節約なしに、全速で続行される。しかしながら、POPCOUNTが所定の信頼度しきい値レベルを超えない場合、状態マシン230からのTHROTTLE信号は、抑制するようにフェッチャ110に指示する。言い換えれば、BIQ分岐命令に関する分岐予測の精度における信頼度が低いため、フェッチ済み命令の投機的実行が電力を節約するために減速されて続行されるように、フェッチャ110はフェッチ抑制を開始する。代替実施形態では、各BIQ分岐命令エントリについて、BIQ 205がそれぞれの信頼ビットを格納する限り、分岐命令キュー(BIQ)205の内部に信頼キュー(CQ)210が存在することが可能である。
当業者であれば、本発明の説明に鑑みて、本発明の修正および代替実施形態が明らかとなろう。したがって、本説明は、本発明の実施方法を当業者に教示し、単なる例示として解釈されるものと意図される。図示および説明された本発明の形が、本実施形態を構成する。当業者であれば、部品の形状、サイズ、および配置構成における様々な変更が可能である。たとえば当業者は、本明細書で例示および説明された要素を等価の要素に置き換えることができる。さらに当業者であれば、本発明の説明の利点を理解した後に、本発明の範囲を逸脱することなく、他の機能の使用とは無関係に本発明の特定の機能を使用することができる。

Claims (14)

  1. 分岐命令を含む命令ストリームを提供するために、フェッチャによって、命令ソースから命令をフェッチするステップと、
    分岐命令キューによって、前記命令ストリームから複数のフェッチ済み分岐命令を格納するステップと、
    分岐実行ユニットによって、分岐予測情報を使用することによりフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令で分岐が選択されるか否かを解決し、実行済み分岐命令を提供するステップと、
    信頼ストレージ・メモリによって、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令の前記分岐予測情報における信頼度をそれぞれ記述する、1つまたは複数の信頼値を格納するステップと、
    前記信頼値の合計が所定の信頼しきい値未満の場合、抑制回路によって、前記命令ソースからの前記命令のフェッチを抑制するステップであって、前記抑制により、プロセッサによる電力消費が低減される、抑制するステップと、
    を含む、プロセッサを動作する方法。
  2. 前記信頼ストレージ・メモリによって格納するステップが、前記分岐命令キュー内に格納された各フェッチ済み分岐命令について、前記信頼ストレージ・メモリ内にそれぞれの信頼値を格納するステップを含む、請求項1に記載の方法。
  3. 有効ベクトル生成回路によって、前記分岐命令キューに格納された有効なフェッチ済み分岐回路を識別する有効ベクトルを生成するステップをさらに含む、請求項1または2に記載の方法。
  4. AND回路によって、有効信頼値を取得するために、前記有効ベクトルと前記信頼値とを論理的にAND演算するステップをさらに含む、請求項3に記載の方法。
  5. 加算器回路によって、前記信頼ストレージ・メモリに格納された前記有効信頼値の合計を取得するために、前記有効信頼値を加算するステップをさらに含む、請求項4に記載の方法。
  6. 前記抑制ステップが、
    比較器によって、前記有効信頼値の合計と前記所定のしきい値とを比較するステップと、
    前記比較器が、前記有効信頼値の合計が前記所定のしきい値を超えると判別した場合、フェッチ抑制状態マシンによって、前記フェッチャによる前記命令ソースからの命令のフェッチ速度を低下させ、超えない場合、前記フェッチ抑制状態マシンが、前記命令ソースからの前記フェッチャによる全速での命令のフェッチを許可するステップと、
    を含む、請求項5に記載の方法。
  7. 前記所定のしきい値がプログラム可能しきい値である、請求項1から6のいずれか一項に記載の方法。
  8. 命令を格納する命令ソースと、
    フェッチ済み分岐命令を含む命令ストリームを提供するために前記命令ソースから命令をフェッチする、前記命令ソースに結合されたフェッチャと、
    分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、前記フェッチャに結合された分岐実行ユニットと、
    前記フェッチャによる前記命令のフェッチを抑制することが可能な、前記フェッチャに結合された抑制コントローラと、
    を備えるプロセッサであって、前記抑制コントローラは、
    複数のフェッチ済み分岐命令を格納する分岐命令キューと、
    前記分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリであって、前記信頼値が、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する前記分岐予測情報における信頼の欠如を記述する、信頼ストレージ・メモリと、を含み、
    前記抑制コントローラは、前記信頼ストレージ・メモリ内の前記信頼値の合計が所定のしきい値を超えた場合、前記命令ソースからの前記命令のフェッチを抑制し、前記抑制によって、前記プロセッサによる電力消費を低減させる、
    プロセッサ。
  9. 前記分岐命令キューに格納された有効なフェッチ済み分岐回路を識別する有効ベクトルを生成する、有効ベクトル生成回路をさらに備える、請求項8に記載のプロセッサ。
  10. 有効信頼値を取得するために、前記有効ベクトルと前記信頼値とを論理的にAND演算する、前記信頼ストレージ・メモリおよび前記有効ベクトル生成回路に結合された、AND回路をさらに備える、請求項9に記載のプロセッサ。
  11. 前記信頼ストレージ・メモリに格納された前記有効信頼値の合計を取得するために、前記有効信頼値を加算する、前記AND回路に結合された加算器回路をさらに備える、請求項10に記載のプロセッサ。
  12. 前記有効信頼値と、しきい値回路が提供する前記所定のしきい値とを比較する、前記加算器回路およびしきい値回路に結合された比較器をさらに備える、請求項11に記載のプロセッサ。
  13. 前記比較器および前記フェッチャに結合されたフェッチ抑制状態マシンをさらに備え、前記フェッチ抑制状態マシンは、前記比較器が、前記有効信頼値の合計が前記所定のしきい値を超えると判別した場合、前記フェッチャによる前記命令ソースからの命令のフェッチ速度を低下させ、超えない場合、前記フェッチ抑制状態マシンは、前記命令ソースからの前記フェッチャによる全速での命令のフェッチを許可する、請求項12に記載のプロセッサ。
  14. メモリと、
    前記メモリに結合されたプロセッサと、を備える、情報処理システム(IHS)であって、前記プロセッサは、
    命令を格納する命令ソースと、
    フェッチ済み分岐命令を含む命令ストリームを提供するために前記命令ソースから命令をフェッチする、前記命令ソースに結合されたフェッチャと、
    分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、前記フェッチャに結合された分岐実行ユニットと、
    前記フェッチャによる前記命令のフェッチを抑制することが可能な、前記フェッチャに結合された抑制コントローラと、を備え、前記抑制コントローラは、
    複数のフェッチ済み分岐命令を格納する分岐命令キューと、
    前記分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリであって、前記信頼値が、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する前記分岐予測情報における信頼の欠如を記述する、信頼ストレージ・メモリと、を含み、
    前記抑制コントローラは、前記信頼ストレージ・メモリ内の前記信頼値の合計が所定のしきい値を超えた場合、前記命令ソースからの前記命令のフェッチを抑制し、前記抑制によって、前記プロセッサによる電力消費を低減させる、
    情報処理システム。
JP2010502508A 2007-04-10 2008-04-10 プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム Expired - Fee Related JP5172942B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/733,589 US7627742B2 (en) 2007-04-10 2007-04-10 Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US11/733,589 2007-04-10
PCT/EP2008/054335 WO2008122662A1 (en) 2007-04-10 2008-04-10 Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system

Publications (2)

Publication Number Publication Date
JP2010524107A true JP2010524107A (ja) 2010-07-15
JP5172942B2 JP5172942B2 (ja) 2013-03-27

Family

ID=39591449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010502508A Expired - Fee Related JP5172942B2 (ja) 2007-04-10 2008-04-10 プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム

Country Status (5)

Country Link
US (1) US7627742B2 (ja)
JP (1) JP5172942B2 (ja)
KR (1) KR101159407B1 (ja)
CN (1) CN101652739B (ja)
WO (1) WO2008122662A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152843A (ja) * 2008-12-26 2010-07-08 Nec Corp 分岐予測の信頼度見積もり回路及びその方法
JP2013254484A (ja) * 2012-04-02 2013-12-19 Apple Inc ベクトル分割ループの性能の向上
US9348589B2 (en) 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9389860B2 (en) 2012-04-02 2016-07-12 Apple Inc. Prediction optimizations for Macroscalar vector partitioning loops
US9817663B2 (en) 2013-03-19 2017-11-14 Apple Inc. Enhanced Macroscalar predicate operations

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566568B2 (en) * 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
WO2008097710A2 (en) * 2007-02-02 2008-08-14 Tarari, Inc. Systems and methods for processing access control lists (acls) in network switches using regular expression matching logic
US8006070B2 (en) * 2007-12-05 2011-08-23 International Business Machines Corporation Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system
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
US8255669B2 (en) * 2008-01-30 2012-08-28 International Business Machines Corporation Method and apparatus for thread priority control in a multi-threaded processor based upon branch issue information including branch confidence information
US20090193240A1 (en) * 2008-01-30 2009-07-30 Ibm Corporation Method and apparatus for increasing thread priority in response to flush information in a multi-threaded processor of an information handling system
US9836304B2 (en) * 2010-11-15 2017-12-05 Advanced Micro Devices, Inc. Cumulative confidence fetch throttling
US9182991B2 (en) * 2012-02-06 2015-11-10 International Business Machines Corporation Multi-threaded processor instruction balancing through instruction uncertainty
US9442732B2 (en) 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
US9354679B2 (en) * 2012-12-28 2016-05-31 Intel Corporation System and method for causing reduced power consumption associated with thermal remediation
US9201490B2 (en) * 2013-03-15 2015-12-01 International Business Machines Corporation Power management for a computer system
US10001998B2 (en) * 2014-04-18 2018-06-19 Oracle International Corporation Dynamically enabled branch prediction
US9658961B2 (en) 2014-06-27 2017-05-23 International Business Machines Corporation Speculation control for improving transaction success rate, and instruction therefor
US11755484B2 (en) * 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US20170046159A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Power efficient fetch adaptation
US10915446B2 (en) 2015-11-23 2021-02-09 International Business Machines Corporation Prefetch confidence and phase prediction for improving prefetch performance in bandwidth constrained scenarios
US10296463B2 (en) * 2016-01-07 2019-05-21 Samsung Electronics Co., Ltd. Instruction prefetcher dynamically controlled by readily available prefetcher accuracy
US10474462B2 (en) * 2016-02-29 2019-11-12 Qualcomm Incorporated Dynamic pipeline throttling using confidence-based weighting of in-flight branch instructions
US10013357B2 (en) 2016-05-09 2018-07-03 Cavium, Inc. Managing memory access requests with prefetch for streams
US10599577B2 (en) 2016-05-09 2020-03-24 Cavium, Llc Admission control for memory access requests
US10191845B2 (en) 2017-05-26 2019-01-29 International Business Machines Corporation Prefetch performance
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
US11099852B2 (en) * 2018-10-25 2021-08-24 Arm Limitied Apparatus and method for maintaining prediction performance metrics for prediction components for each of a plurality of execution regions and implementing a prediction adjustment action based thereon
US10929062B2 (en) * 2018-11-07 2021-02-23 International Business Machines Corporation Gradually throttling memory due to dynamic thermal conditions
US11379372B1 (en) 2019-07-19 2022-07-05 Marvell Asia Pte, Ltd. Managing prefetch lookahead distance based on memory access latency
US11442864B2 (en) 2020-06-29 2022-09-13 Marvell Asia Pte, Ltd. Managing prefetch requests based on stream information for previously recognized streams

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282663B1 (en) * 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US6625744B1 (en) * 1999-11-19 2003-09-23 Intel Corporation Controlling population size of confidence assignments
US20040139301A1 (en) * 2003-01-14 2004-07-15 Ip-First, Llc. Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US6766441B2 (en) * 2001-01-19 2004-07-20 International Business Machines Corporation Prefetching instructions in mis-predicted path for low confidence branches
US20050235170A1 (en) * 2004-04-19 2005-10-20 Atkinson Lee W Computer power conservation apparatus and method
WO2006084288A2 (en) * 2005-02-03 2006-08-10 Qualcomm Incorporated Instruction prefetch mechanism

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US6411156B1 (en) * 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
US6438682B1 (en) * 1998-10-12 2002-08-20 Intel Corporation Method and apparatus for predicting loop exit branches
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
TW451132B (en) * 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
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
US6363490B1 (en) * 1999-03-30 2002-03-26 Intel Corporation Method and apparatus for monitoring the temperature of a processor
US6393374B1 (en) * 1999-03-30 2002-05-21 Intel Corporation Programmable thermal management of an integrated circuit die
US6330660B1 (en) * 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
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
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
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
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
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282663B1 (en) * 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US6625744B1 (en) * 1999-11-19 2003-09-23 Intel Corporation Controlling population size of confidence assignments
US6766441B2 (en) * 2001-01-19 2004-07-20 International Business Machines Corporation Prefetching instructions in mis-predicted path for low confidence branches
US20040139301A1 (en) * 2003-01-14 2004-07-15 Ip-First, Llc. Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US20050235170A1 (en) * 2004-04-19 2005-10-20 Atkinson Lee W Computer power conservation apparatus and method
WO2006084288A2 (en) * 2005-02-03 2006-08-10 Qualcomm Incorporated Instruction prefetch mechanism

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6012045171; Srilatha Manne, Artur Klauser, Dirk Grunwald: 'Pipeline Gating : Speculation Control For Energy Reduction' Proceedings of the 25th Annual International Symposium on Computer Architecture , 19980627, Pages:132-141, IEEE *
JPN6012045172; Dongsoo Kang, Jean-Luc Gaudiot: 'Speculation Control for Simultaneous Multithreading' Proceedings of the 18th International Parallel and Distributed Processing Symposium (IPDPS'04) , 20040426, all 10 Pages, IEEE *
JPN6012045173; Juan L. Aragon, Jose Gonzalez, Antonio Gonzalez: 'Power-Aware Control Speculation through Selective Throttling' Proceedings of the Ninth International Symposium on High-Performance Computer Architecture , 20030208, Pages:103-112, IEEE *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152843A (ja) * 2008-12-26 2010-07-08 Nec Corp 分岐予測の信頼度見積もり回路及びその方法
JP2013254484A (ja) * 2012-04-02 2013-12-19 Apple Inc ベクトル分割ループの性能の向上
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
US9389860B2 (en) 2012-04-02 2016-07-12 Apple Inc. Prediction optimizations for Macroscalar vector partitioning loops
US9348589B2 (en) 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9817663B2 (en) 2013-03-19 2017-11-14 Apple Inc. Enhanced Macroscalar predicate operations

Also Published As

Publication number Publication date
KR101159407B1 (ko) 2012-06-28
KR20090112645A (ko) 2009-10-28
CN101652739A (zh) 2010-02-17
JP5172942B2 (ja) 2013-03-27
US7627742B2 (en) 2009-12-01
US20080256345A1 (en) 2008-10-16
CN101652739B (zh) 2011-10-12
WO2008122662A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
JP5172942B2 (ja) プロセッサによる電力消費を低減する方法、プロセッサ、及び、情報処理システム
JP5285408B2 (ja) プロセッサ、プロセッサを動作させる方法、および情報処理システム
US9891923B2 (en) Loop predictor-directed loop buffer
US9389863B2 (en) Processor that performs approximate computing instructions
KR100973951B1 (ko) 오정렬 메모리 액세스 예측
JP5059623B2 (ja) プロセッサ及び命令プリフェッチ方法
US9201658B2 (en) Branch predictor for wide issue, arbitrarily aligned fetch that can cross cache line boundaries
US8832418B2 (en) Efficient branch target address cache entry replacement
EP3039532B1 (en) A data processing apparatus and method for controlling performance of speculative vector operations
CN112230992B (zh) 一种包含分支预测循环的指令处理装置、处理器及其处理方法
US10289514B2 (en) Apparatus and method for a user configurable reliability control loop
US9996127B2 (en) Method and apparatus for proactive throttling for improved power transitions in a processor core
EP4020167A1 (en) Accessing a branch target buffer based on branch instruction information
EP4020187A1 (en) Segmented branch target buffer based on branch instruction type
US20140281440A1 (en) Precalculating the direct branch partial target address during missprediction correction process
CN111475010B (zh) 管线式处理器及节电方法
US10579414B2 (en) Misprediction-triggered local history-based branch prediction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121126

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: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121226

R150 Certificate of patent or registration of utility model

Ref document number: 5172942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees