(57)【要約】【課題】  情報処理システムにおいて、プロセッサによる電力消費のさらなる低減を達成する装置および方法を提供する。【解決手段】  情報処理システムは、分岐命令キュー内に格納された分岐命令に関する分岐予測における不正確さまたは信頼の欠如が、不正確さまたは誤差の所定の信頼度しきい値レベルを超える場合は、必ず命令フェッチャを抑制する、プロセッサを含む。このように、プロセッサが分岐命令の成果を誤予測する可能性の高い場合、プロセッサの電力を節約するために、フェッチ動作の速度が低下される。プロセッサが分岐命令の成果を正しく予測する可能性の高い場合、フェッチ動作は全速に戻る。【選択図】  図１
2010524107.tif 000002
【特許請求の範囲】
【請求項１】
分岐命令を含む命令ストリームを提供するために、フェッチャによって、命令ソースから命令をフェッチするステップと、
分岐命令キューによって、前記命令ストリームから複数のフェッチ済み分岐命令を格納するステップと、
分岐実行ユニットによって、分岐予測情報を使用することによりフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令で分岐が選択されるか否かを解決し、実行済み分岐命令を提供するステップと、
信頼ストレージ・メモリによって、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令の前記分岐予測情報における信頼度をそれぞれ記述する、１つまたは複数の信頼値を格納するステップと、
前記信頼値の合計が所定の信頼しきい値未満の場合、抑制回路によって、前記命令ソースからの前記命令のフェッチを抑制するステップであって、前記抑制により、プロセッサによる電力消費が低減される、抑制するステップと、
を含む、プロセッサを動作する方法。
【請求項２】
前記信頼ストレージ・メモリによって格納するステップが、前記分岐命令キュー内に格納された各フェッチ済み分岐命令について、前記信頼ストレージ・メモリ内にそれぞれの信頼値を格納するステップを含む、請求項１に記載の方法。
【請求項３】
有効ベクトル生成回路によって、前記分岐命令キューに格納された有効なフェッチ済み分岐回路を識別する有効ベクトルを生成するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
ＡＮＤ回路によって、有効信頼値を取得するために、前記有効ベクトルと前記信頼値とを論理的にＡＮＤ演算するステップをさらに含む、請求項３に記載の方法。
【請求項５】
加算器回路によって、前記信頼ストレージ・メモリに格納された前記有効信頼値の合計を取得するために、前記有効信頼値を加算するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記抑制ステップが、
比較器によって、前記有効信頼値の合計と前記所定のしきい値とを比較するステップと、
前記比較器が、前記有効信頼値の合計が前記所定のしきい値を超えると判別した場合、フェッチ抑制状態マシンによって、前記フェッチャによる前記命令ソースからの命令のフェッチ速度を低下させ、超えない場合、前記フェッチ抑制状態マシンが、前記命令ソースからの前記フェッチャによる全速での命令のフェッチを許可するステップと、
を含む、請求項５に記載の方法。
【請求項７】
前記所定のしきい値がプログラム可能しきい値である、請求項１から６のいずれか一項に記載の方法。
【請求項８】
命令を格納する命令ソースと、
フェッチ済み分岐命令を含む命令ストリームを提供するために前記命令ソースから命令をフェッチする、前記命令ソースに結合されたフェッチャと、
分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、前記フェッチャに結合された分岐実行ユニットと、
前記フェッチャによる前記命令のフェッチを抑制することが可能な、前記フェッチャに結合された抑制コントローラと、
を備えるプロセッサであって、前記抑制コントローラは、
複数のフェッチ済み分岐命令を格納する分岐命令キューと、
前記分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリであって、前記信頼値が、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する前記分岐予測情報における信頼の欠如を記述する、信頼ストレージ・メモリと、を含み、
前記抑制コントローラは、前記信頼ストレージ・メモリ内の前記信頼値の合計が所定のしきい値を超えた場合、前記命令ソースからの前記命令のフェッチを抑制し、前記抑制によって、前記プロセッサによる電力消費を低減させる、
プロセッサ。
【請求項９】
前記分岐命令キューに格納された有効なフェッチ済み分岐回路を識別する有効ベクトルを生成する、有効ベクトル生成回路をさらに備える、請求項８に記載のプロセッサ。
【請求項１０】
有効信頼値を取得するために、前記有効ベクトルと前記信頼値とを論理的にＡＮＤ演算する、前記信頼ストレージ・メモリおよび前記有効ベクトル生成回路に結合された、ＡＮＤ回路をさらに備える、請求項９に記載のプロセッサ。
【請求項１１】
前記信頼ストレージ・メモリに格納された前記有効信頼値の合計を取得するために、前記有効信頼値を加算する、前記ＡＮＤ回路に結合された加算器回路をさらに備える、請求項１０に記載のプロセッサ。
【請求項１２】
前記有効信頼値と、しきい値回路が提供する前記所定のしきい値とを比較する、前記加算器回路およびしきい値回路に結合された比較器をさらに備える、請求項１１に記載のプロセッサ。
【請求項１３】
前記比較器および前記フェッチャに結合されたフェッチ抑制状態マシンをさらに備え、前記フェッチ抑制状態マシンは、前記比較器が、前記有効信頼値の合計が前記所定のしきい値を超えると判別した場合、前記フェッチャによる前記命令ソースからの命令のフェッチ速度を低下させ、超えない場合、前記フェッチ抑制状態マシンは、前記命令ソースからの前記フェッチャによる全速での命令のフェッチを許可する、請求項１２に記載のプロセッサ。
【請求項１４】
メモリと、
前記メモリに結合されたプロセッサと、を備える、情報処理システム（ＩＨＳ）であって、前記プロセッサは、
命令を格納する命令ソースと、
フェッチ済み分岐命令を含む命令ストリームを提供するために前記命令ソースから命令をフェッチする、前記命令ソースに結合されたフェッチャと、
分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、前記フェッチャに結合された分岐実行ユニットと、
前記フェッチャによる前記命令のフェッチを抑制することが可能な、前記フェッチャに結合された抑制コントローラと、を備え、前記抑制コントローラは、
複数のフェッチ済み分岐命令を格納する分岐命令キューと、
前記分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリであって、前記信頼値が、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する前記分岐予測情報における信頼の欠如を記述する、信頼ストレージ・メモリと、を含み、
前記抑制コントローラは、前記信頼ストレージ・メモリ内の前記信頼値の合計が所定のしきい値を超えた場合、前記命令ソースからの前記命令のフェッチを抑制し、前記抑制によって、前記プロセッサによる電力消費を低減させる、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書の開示は、一般にプロセッサに関し、とりわけ、情報処理システムにおいて電力節約方法を採用するプロセッサに関する。
【背景技術】
【０００２】
現在の情報処理システムは、しばしばかなりの量の熱を発生するプロセッサを使用する。プロセッサの温度を感知する温度抑制（throttling）技法が存在する。プロセッサの温度が所定のしきい値温度を超えると、システムはプロセッサのクロック速度を抑制または低下させ、それに応じてプロセッサの温度を低下させる。このようにして、システムは望ましくない過熱を防止する。別の方法として、システムはクロック・ゲーティングを採用すること、すなわち、プロセッサの温度を低下させるために、プロセッサのクロックをある期間停止することができる。
【０００３】
電力節約は、現在のプロセッサの最大動作周波数にとって重要な要因である。プロセッサが消費する電力量を感知する電力抑制技法が使用可能である。消費された電力が所定のしきい値電力レベルを超えた場合、電力抑制システムは、プロセッサの電力消費が少なくなるようにプロセッサの動作周波数を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報処理システムにおいて、プロセッサによる電力消費のさらなる低減を達成する装置および方法が求められている。
【課題を解決するための手段】
【０００５】
したがって、一実施形態では、プロセッサを動作させるための方法が開示される。この方法は、フェッチャ（fetcher）による、フェッチ済み分岐命令を含む命令ストリームを提供するための命令ソースからの命令のフェッチを含む。この方法は、分岐命令キューによる、命令ストリームからの複数のフェッチ済み分岐命令の格納も含む。さらにこの方法は、分岐実行ユニットによる、分岐予測情報を使用することによるフェッチ済み分岐命令の投機的実行、および、それぞれのフェッチ済み分岐命令で分岐が選択されるか否かの解決、したがって実行済み分岐命令の提供も含む。さらにまたこの方法は、信頼ストレージ・メモリによる、分岐命令キュー内に格納されたフェッチ済み分岐命令に関する分岐予測情報内の信頼量を記述する信頼情報の格納も含む。この方法は、信頼情報が所定の信頼しきい値未満の信頼を示す場合、抑制回路による命令ソースからの命令のフェッチの抑制も含み、この抑制により、プロセッサによる電力消費が低減される。
【０００６】
他の実施形態では、プロセッサを動作させるための方法が開示される。この方法は、フェッチャによる、フェッチ済み分岐命令を含む命令ストリームを提供するための命令ソースからの命令のフェッチを含む。この方法は、分岐命令キューによる、命令ストリームからの複数のフェッチ済み分岐命令の格納も含む。さらにこの方法は、分岐実行ユニットによる、分岐予測情報を使用することによるフェッチ済み分岐命令の投機的実行、および、それぞれのフェッチ済み分岐命令で分岐が選択されるか否かの解決、したがって実行済み分岐命令の提供も含む。さらにまたこの方法は、信頼ストレージ・メモリによる、分岐命令キュー内のそれぞれのフェッチ済み分岐命令の分岐予測情報の不正確さを記述する複数の信頼値の格納も含む。この方法は、信頼値の合計が所定のしきい値を超える場合、抑制回路による、フェッチャによる命令ソースからの命令のフェッチの抑制も含み、この抑制により、プロセッサによる電力消費が低減される。
【０００７】
さらに他の実施形態では、命令を格納する命令ソースを含むプロセッサが開示される。プロセッサは、フェッチ済み分岐命令を含む命令ストリームを提供するために命令ソースから命令をフェッチする、命令ソースに結合されたフェッチャも含む。さらにプロセッサは、分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、フェッチャに結合された分岐実行ユニットを含む。プロセッサは、フェッチャに結合された抑制コントローラも含む。抑制コントローラは、フェッチャによる命令のフェッチを抑制することができる。抑制コントローラは、複数のフェッチ済み分岐命令を格納する分岐命令キューを含む。抑制コントローラは、分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリも含む。信頼値は、分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する分岐予測情報における信頼の欠如を記述する。抑制コントローラは、信頼ストレージ・メモリ内の信頼値の合計が所定のしきい値を超えた場合、命令ソースからの命令のフェッチを抑制するため、結果として、プロセッサによる電力消費を低減させることになる。
【０００８】
本発明の概念は他の等しく有効な諸実施形態に適しているため、添付の図面は、本発明の単なる例示的な諸実施形態を示すものであり、その範囲を限定するものではない。
【図面の簡単な説明】
【０００９】
【図１】開示されたプロセッサの一実施形態を示すブロック図である。
【図２】開示されたプロセッサが採用する代表的な抑制コントローラを示すブロック図である。
【図３】開示されたプロセッサが採用可能な代替抑制コントローラを示すブロック図である。
【図４】開示されたプロセッサがフェッチ抑制動作を実行する際の、プロセッサ内のプロセス流れを示す流れ図である。
【図５】図１の開示されたプロセッサを採用する情報処理システム（ＩＨＳ）を示すブロック図である。
【発明を実施するための形態】
【００１０】
多くの現代のプロセッサは、処理効率を上げるために分岐予測を使用する、投機的実行技法を採用する。プロセッサ内の命令フェッチャは、分岐命令を含む命令ストリームをフェッチする。プロセッサは、分岐予測に応答して、分岐命令後に命令を投機的に実行することができる。より詳細に言えば、命令デコーダが命令ストリームのフェッチ済み分岐命令をデコーディングした後、分岐予測回路は、分岐命令が提案する分岐を選択するか否かの予測を実行する。分岐は「選択される」または「選択されない」の、いずれかである。分岐予測回路は、分岐履歴情報、すなわち、過去にプロセッサがこの特定の分岐命令に遭遇した際の分岐結果、を使用することによって、分岐を選択するか否かを予測する。分岐予測回路が分岐を正しく予測した場合、プロセッサは分岐後に命令の結果を維持する。しかしながら、分岐予測が正しくなかった場合、プロセッサは分岐後に命令の結果を廃棄する。
【００１１】
プロセッサによる命令の投機的実行は、電力を消費する。プロセッサの性能にほとんど影響を与えないように、投機的実行アクティビティが消費する電力を最小限にすることが望ましい。一実施形態では、開示されたプロセッサは、分岐命令の成果予測におけるプロセッサの有する低信頼度分岐命令にプロセッサが遭遇した場合、処理アクティビティを抑制することによって、電力消費を低減させる。プロセッサは、命令ストリームの分岐命令ならびにそれぞれの格納済み分岐命令に関する信頼情報を格納する、分岐命令キュー（ＢＩＱ）を含む。信頼情報は、ＢＩＱ内の各分岐予測の正確さにおいてプロセッサが示す、信頼のレベルを示す。一実施形態では、プロセッサは、ＢＩＱにおける低信頼度分岐の数を合計する。低信頼度分岐の数の合計が、所定のプログラム可能しきい値よりも大きい場合、プロセッサは、電力消費を低減させるために命令フェッチの抑制を実行する。この方法は、プロセッサが、低信頼度分岐パスに対しては命令フェッチの抑制を実行するが、高信頼度分岐パスに対しては抑制を実行しないため、プロセッサの性能に与えるマイナスの影響はわずかである。言い換えればプロセッサは、高信頼度分岐パスでは、抑制せずに全速で命令の実行を継続する。
【００１２】
図１は、プロセッサが消費する電力を低減させるために低信頼度分岐の抑制を採用する、プロセッサ１００の一実施形態を示す。プロセッサ１００は、プロセッサ１００が実行する命令ストリームを含むローカル・キャッシュ・メモリなどのメモリ１０５を含む。したがってメモリ１０５は、命令ソースとして動作する。実際には、メモリ１０５は、命令ストリームまたはプロセッサが実行するプログラムを含む、大規模外部システム・メモリ（図示せず）に接続される。フェッチャ１１０は、実行用にメモリ１０５から命令をフェッチするために、メモリ１０５に結合される。フェッチャ１１０は、命令アドレス入力１１０Ａを含む。デコーダ回路１１５は、フェッチャ１１０から受け取ったフェッチ済み命令を復号するために、フェッチャ１１０に結合される。フェッチ済み命令ストリームは、演算コードおよびオペランドを備えた命令を含む。命令ストリームの一部の命令は、分岐命令である。シーケンサ回路１１７はデコーダ１１５に結合される。シーケンサ回路１１７は、実行用に特定の復号済み命令を受け取るべき適切な実行ユニットを決定する。シーケンサ回路１１７は、固定小数点実行ユニット（ＦＸＵ）１２０、浮動小数点実行（ＦＰＵ）ユニット１２５、ロード・ストア・ユニット（ＬＳＵ）１３０、および分岐実行ユニット（ＢＲＵ）１３５という、実行ユニットに結合される。固定小数点実行ユニット（ＦＸＵ）１２０は、レジスタ・ファイル１２０Ａを含む。浮動小数点実行ユニット１２５は、レジスタ・ファイル１２５Ａを含む。
【００１３】
実行ユニットは、復号済み分岐命令後、命令ストリーム内で投機的に命令を実行する。分岐履歴テーブル（ＢＨＴ）１４０は、フェッチャ１１０の命令アドレス入力１１０Ａと分岐実行ユニット（ＢＲＵ）１３５との間を結合する。分岐履歴テーブル１４０は、以前に実行された分岐命令の履歴成果を追跡する。分岐ユニット（ＢＲＵ）１３５は、この分岐実行履歴情報を使用して、現在受け取っている分岐命令に関する分岐予測を実行する。完了ユニット１４５は、それぞれの実行ユニット、すなわちＦＸＵ  １２０、ＦＰＵ  １２５、ＬＳＵ  １３０、およびＢＲＵ  １３５に結合される。より具体的に言えば、完了ユニット１４５は、ＦＸＵレジスタ・ファイル１２０ＡおよびＦＰＵレジスタ・ファイル１２５Ａに結合される。完了ユニット１４５は、投機的に実行された命令を完了すべきであるか否かを判別する。分岐ユニット（ＢＲＵ）１３５が分岐を正しく予測した場合、その分岐をたどる命令は完了するはずである。たとえば、分岐ユニット１３５が分岐を正しく予測した場合、その分岐をたどる固定小数点または整数命令は完了するはずである。この場合、完了ユニット１４５は、分岐の固定小数点結果の固定小数点レジスタ・ファイル１２０Ａへの書き戻しを制御する。正しく予測された分岐をたどる命令が浮動小数点命令の場合、完了ユニット１４５は、その浮動小数点命令の結果の浮動小数点レジスタ・ファイル１２５Ａへの書き戻しを制御する。命令が完了すると、それらはもはや投機的ではなくなる。分岐実行ユニット（ＢＲＵ）１３５は、特定の分岐命令が選択されるか否かを解決するために、完了ユニット１４５およびＢＨＴ  １４０と協働して動作する。
【００１４】
より詳細に言えば、分岐履歴テーブル（ＢＨＴ）１４０は、以前に実行された分岐命令の履歴を含む。ＢＨＴ  １４０内の各エントリは、方向ビットおよび信頼ビットを含む。特定の分岐命令の場合、ＢＨＴ内のそのエントリは、「分岐選択」または「分岐非選択」を示す方向ビットを含む。一実施形態では、前回分岐が選択されなかった場合、方向ビットは０に等しいことが可能であり、または前回分岐が選択された場合、方向ビットは１に等しいことが可能である。一実施形態では、特定の分岐命令について、方向ビットは、次回プロセッサがその分岐命令に遭遇した際に、プロセッサが分岐を選択すべきであるかどうかを示す。必ずしも方向ビットは、前回プロセッサがその分岐命令に遭遇した際の分岐の方向を表すものではない。しかしながら多くの場合、方向ビットは、前回プロセッサがその分岐命令に遭遇した際の分岐の方向を示す。特定の分岐命令について、分岐選択または分岐非選択予測において信頼度が低い場合、信頼ビットは１に等しいことが可能である。分岐選択または分岐非選択予測において信頼度が高い場合、信頼ビットは０に等しいことが可能である。特定の分岐予測について、低い信頼度を示す理由の１つは、最新の２回でプロセッサが特定の分岐命令を実行し、１回は分岐を選択したがもう１回は選択しなかったためである。特定の分岐予測について、高い信頼度を示す理由には、最新の２回でプロセッサが特定の分岐命令を実行し、どちらの回でも分岐を選択したか、またはどちらの回でも分岐を選択しなかったことが含まれる。
【００１５】
プロセッサ１００は、分岐命令キュー（ＢＩＱ）２０５を備えた抑制制御回路または抑制コントローラ２００を含む。この特定の実施形態では、分岐命令キュー（ＢＩＱ）２０５は、フェッチャがフェッチしたがプロセッサがまだ完了していない、１６のエントリ、すなわち１６までの分岐命令を命令ストリーム内に含む。ＢＩＱ  ２０５は、特定の応用例に応じて、１６よりも多いかまたは少ないエントリを含むことができる。抑制コントローラ２００は、ＢＩＱ  ２０５に関連する信頼追跡キューまたは信頼キュー（ＣＱ）２１０も含む。ＣＱ  ２１０は、信頼情報を格納する信頼情報ストレージ・メモリとして働く。ＢＩＱ  ２０５の各分岐命令エントリについて、ＣＱ  ２１０はそれぞれの信頼ビットを含む。この特定の実施形態では、ＣＱは１６のエントリ、すなわち低信頼度ビットを含む。ＢＩＱ  ２０５内の特定の分岐命令エントリについて、ＣＱ  ２１０内のそれぞれのＣＱ信頼ビット・エントリが論理１を示す場合、これは、この特定の分岐命令に関する分岐予測における低信頼度を示す。しかしながら、ＢＩＱ  ２０５内の特定の分岐命令エントリについて、ＣＱ  ２１０内のそれぞれのＣＱ信頼ビット・エントリが論理０を示す場合、これは、この特定の分岐命令に関する分岐予測における高信頼度を示す。抑制コントローラ２００は、ＣＱ  ２１０内の信頼ビットの読み込み（population）を支援するために、分岐履歴テーブル１４０にアクセスする。たとえば一実施形態では、対応するそれぞれの信頼ビットをＣＱ  ２１０に読み込むためにＢＩＱ  ２０５が格納する特定の分岐命令について、前回そのプロセッサがその分岐命令を実行した際に、ＢＲＵ  １３５およびＢＨＴ  １４０がその分岐命令を誤って予測した場合、抑制コントローラ２００は信頼ビット１をＣＱエントリ内に格納する。しかしながら、前回プロセッサがその分岐命令を実行した際に、ＢＲＵ  １３５およびＢＨＴ  １４０がその分岐命令を正しく予測した場合、抑制コントローラ２００はＣＱ内のその分岐に関するそれぞれのエントリに信頼ビット０を読み込む。一実施形態では、ＢＨＴ  １４０は、それぞれの分岐命令の信頼ビットまたは信頼値を保持または格納し、分岐命令が実行された場合、ＢＨＴ  １４０はそれ自体を更新する。フェッチャ１１０が特定の分岐命令をフェッチする場合、ＣＱ  ２１０はＢＨＴ  １４０にアクセスし、特定の分岐命令に対応する信頼ビットを読み取って格納する。
【００１６】
分岐命令キュー（ＢＩＱ）２０５は、図１の実施形態では巡回キューである。ＢＩＱ  ２０５は、概念上はヘッド・ポインタ２１５として示されたヘッド・ポインタと、概念上はテール・ポインタ２２０として示されたテール・ポインタとを含む。ヘッド・ポインタ２１５は、ＢＩＱ  ２０５内の最新の分岐命令を指示し、テール・ポインタ２２０は、ＢＩＱ  ２０５内の最古の分岐命令を指示する。ＢＩＱ  ２０５がフェッチャ１１０から分岐命令を受け取ると、ヘッド・ポインタ２１５が常にＢＩＱ  ２０５に入る最新の分岐命令を指示し、テール・ポインタが常にＢＩＱ  ２０５内の最古の分岐命令を指示するように、ヘッドおよびテール・ポインタは１回に１つの分岐命令エントリを移動する。
【００１７】
抑制コントローラ２００は、ヘッド・ポインタ２１５、テール・ポインタ２２０、および信頼キュー（ＣＱ）２１０に結合された、制御論理２２５も含む。したがって制御論理２２５は、現在のヘッド・ポインタ、現在のテール・ポインタ、およびＣＱ  ２１０のすべての信頼ビットを受け取る。ヘッド・ポインタは、他の分岐命令がＢＩＱ  ２０５に入るごとに変化する。テール・ポインタは、分岐命令が完了するごとに変化する。信頼キュー（ＣＱ）２１０は、ＢＩＱ  ２０５の各分岐命令エントリについて、それぞれの信頼ビットを格納する。言い換えれば、ＢＩＱ  ２０５の各分岐命令エントリは、ＣＱ  ２１０内に関連付けられた対応する信頼ビットを有する。制御論理２２５は、信頼ビットの合計を取得するために、ＣＱ  ２１０のすべての信頼ビットを合計または追加する。この特定の実施形態では、ＣＱ  ２１０が低信頼度ビットを格納するため、制御論理２２５は低信頼度ビットの合計を決定する。制御論理２２５は、現在の低信頼度ビットの合計が所定の低信頼度レベルしきい値よりも大きいかどうかを判別するためのテストを実行する。現在の低信頼度ビットの合計が所定の低信頼度レベルしきい値よりも実際に大きいことを、制御論理２２５が判別した場合、抑制コントローラ２００は、プロセッサの電力消費を低減させるためにフェッチ抑制を開始するようにフェッチャ１１０に指示する。正しい分岐予測が見込まれない命令の投機的実行時に、このようにフェッチ抑制することによって、プロセッサ１００は電力消費を低減する。しかしながら、現在の低信頼度ビットの合計が所定の信頼度レベルしきい値よりも大きくない場合、分岐予測は正しい可能性が高く、制御論理２２５は、命令のフェッチと、抑制なしの全速での投機的実行を許可する。
【００１８】
図２は、図１の抑制コントローラ２００のより詳細なブロック図である。図２は、図１を参照しながらすでに前述した、分岐命令キュー（ＢＩＱ）２０５、信頼キュー（ＣＱ）２１０、制御論理２２５、およびフェッチ抑制状態マシン２３０を示す。ＢＩＱ  ２０５は、図２に示されるような１６の分岐命令エントリＢＩ−０、ＢＩ−１、．．．、ＢＩ−１５を含む。信頼キュー（ＣＱ）は、０〜１５と指定された１６の信頼ビット・エントリを含む。図２では、ヘッド・ポインタ２１５およびテール・ポインタ２２０は分岐命令ＢＩ−０およびＢＩ−２を示すが、ヘッドおよびテール・ポインタは、フェッチ済み命令ストリームから新しい分岐命令がＢＩＱ  ２０５に入ると移動する。プロセッサが命令ストリーム内の分岐命令をフェッチ、実行、および完了する間、ＢＩＱ  ２０５が格納する特定の分岐命令は絶えず流動している。ＢＩＱ  ２０５は、フェッチ済み命令ストリームから最も新しくフェッチされた１６の分岐命令を格納する。したがって、ある一時点で、ＢＩＱ  ２０５内のそれぞれの分岐命令に関連付けられた信頼ビットは、全体として、抑制コントローラが、これらの分岐命令に関する予測の正確さにおいて低い信頼度を有することを示す可能性がある。その場合抑制コントローラ２００は、電力消費を低減させるためにフェッチ制御を開始する。しかしながら、他の時点で、ＢＩＱは他の分岐命令のグループを読み込む。この場合、ＢＩＱ  ２０５のそれぞれの分岐命令に関連付けられた信頼ビットは、全体として、抑制コントローラが、これらの分岐命令に関する予測の正確さにおいて高い信頼度を有することを示す可能性がある。したがって抑制コントローラ２００は、電力消費を低減させるためのフェッチ制御は開始しないが、その代わりに全速でフェッチするようにフェッチャ１１０に指示する。
【００１９】
制御論理２２５は、１６ライン入力２３５Ａおよび１６ライン入力２３５Ｂを有するＡＮＤ回路２３５を含む。ＡＮＤ回路入力２３５Ａは、ＣＱ  ２１０内の１６のスロットまたはストレージ位置に結合されるため、結果としてＡＮＤ回路２３５は、ＣＱ  ２１０から１６の信頼ビットを受け取る。ヘッド・ポインタ２１５およびテール・ポインタ２２０は、有効ベクトル生成回路２４０に結合される。有効ベクトル生成回路２４０は、ヘッドおよびテール・ポインタ情報を使用して１６ビット・ベクトルを生成し、ここではベクトルの各ビットがＢＩＱ  ２０５の異なるエントリに対応する。１６ビット・ベクトルの各ビットは、ＢＩＱ  ２０５内の対応する分岐命令エントリが有効であるかどうかを示す。１６ビット・ベクトルの特定ビットが論理１を示す場合、ＢＩＱ  ２０５の対応する分岐命令エントリは有効であり、すなわち分岐命令は依然として処理中である。しかしながら、１６ビット・ベクトルの特定ビットが論理０を示す場合、ＢＩＱ  ２０５の対応する分岐命令エントリは無効である。有効なＢＩＱ  ２０５のエントリはテール・ポインタで始まり、ヘッド・ポインタまで及ぶ。たとえば、ヘッド・ポインタがエントリＢＩ−３にあり、テール・ポインタがエントリＢＩ−７にある場合、１６ビット有効ベクトルは０００１１１１１００００００００である。これは、エントリＢＩ−３、ＢＩ−４、ＢＩ−５、ＢＩ−６、およびＢＩ−７が有効であり、残りのエントリは無効であることを意味する。ヘッド・ポインタがテール・ポインタよりも上の場合、有効ベクトルは折り返し、不連続である。たとえば、ヘッド・ポインタがエントリＢＩ−１４にあり、テール・ポインタがＢＩ−２にある場合、有効ベクトルは１１１０００００００００００１１である。これは、エントリＢＩ−０、ＢＩ−１、ＢＩ−２、ＢＩ−１４、およびＢＩ−１５が有効であり、残りのエントリは無効であることを意味する。図２において、有効ベクトル・ボックス２４５は１６ビットの有効ベクトル２４５を表す。
【００２０】
したがって、入力２３５Ａでは、ＡＮＤ回路２３５はＣＱ  ２１０から１６の低信頼度ビットを受け取り、入力２３５Ｂでは、ＡＮＤ回路２３５は１６ビットの有効ベクトルを受け取る。ＡＮＤ回路２３５が、論理的に１６の低信頼度ビットと１６のそれぞれの有効ベクトル・ビットとのＡＮＤ演算を実行する場合、有効ベクトルは、ＡＮＤ回路２３５の出力での１６ビット結果から任意の無効な低信頼度ビットを効果的に除去するマスクとして働く。したがってこの特定の実施形態では、ＡＮＤゲート２３５の出力での１６ビット結果は、有効な低信頼度ビットのみを含む。言い換えれば、ＡＮＤ回路２３５の出力での１６の低信頼度ビットは、ＢＩＱ  ２０５におけるそれぞれの有効分岐命令に関する低信頼度ビットに対応する。
【００２１】
加算器２５０は、ＡＮＤ回路２３５の出力に結合される。加算器２５０は、ＡＮＤ回路２３５から受け取った有効な低信頼度ビットを合計して、加算器２５０の出力に低信頼度分岐の合計、すなわち読み込みカウント（ＰＯＰＣＯＵＮＴ）を提供する。したがってＰＯＰＣＯＵＮＴは、特定の時点でのＢＩＱ  ２０５における有効な低信頼度分岐の合計数を表す。比較器２５５は、低信頼度分岐合計、すなわちＰＯＰＣＯＵＮＴを受け取るために、加算器２５０に結合された１つの入力を含む。比較器２５５の残りの入力は、プログラム可能信頼しきい値を比較器２５５に提供する、プログラム可能しきい値回路２６０に結合される。設計者または他のエンティティは、そのレベルを超えた場合は、ＢＩＱ内の分岐に関する予測の信頼度が低いため、フェッチ抑制および電力節約を開始すべきであることを示す、低信頼度レベルを表すように、信頼しきい値を選択する。
【００２２】
比較器２５５の出力は、フェッチ抑制状態マシン２３０に結合される。低信頼度分岐の合計数であるＰＯＰＣＯＵＮＴが、所定のプログラム可能しきい値を超えた場合、比較器２５５は論理１をフェッチ抑制状態マシン２３０に出力する。これに応答して、フェッチ抑制状態マシン２３０は、命令のフェッチ速度を低下させるようにフェッチャ１１０に指示するＴＨＲＯＴＴＬＥ信号を、フェッチャ入力１１０Ｂに送信する。命令のフェッチ速度を低下させることによって、選択される可能性の低い分岐、すなわち低信頼度分岐を実行する際にプロセッサ１００が消費する電力量が減少する。しかしながら、低信頼度分岐の合計数であるＰＯＰＣＯＵＮＴが所定のプログラム可能しきい値を超えない場合、比較器２５５は論理０をフェッチ抑制状態マシン２３０に出力する。これに応答して、フェッチ抑制状態マシン２３０は、命令を全速でフェッチするようにフェッチャ１１０に指示するＴＨＲＯＴＴＬＥ信号を、フェッチャ入力１１０Ｂに送信する。その場合、プロセッサは、ＢＩＱ  ２０５の分岐命令に関する予測において高い信頼度を示す。したがって、分岐命令の投機的実行は、フェッチャの抑制および電力低下なしに全速で進められる。
【００２３】
図３は、抑制コントローラの簡略化バージョンをコントローラ３００として示す。図３の抑制コントローラ３００は図２の抑制コントローラ２００と同様であり、同じ要素が同じ番号で示されている。抑制コントローラ３００では、コントローラは、ＢＩＱ  ２０５内の分岐命令の妥当性をチェックするための有効ベクトル生成を採用しない。したがって抑制コントローラ３００は、有効ベクトル生成器２４０およびＡＮＤ回路２３５を採用しない。図３の制御論理２２５’は、制御論理２２５’がＡＮＤ回路２３５を使用しない点を除いて、図２の制御論理２２５と同様である。しかしながら、ＢＩＱ  ２０５内の分岐命令の妥当性をチェックする有効ベクトル生成を除去することによって、加算器２５０がＣＱ  ２１０から受け取る低信頼度ビットは、不良または陳腐化した（stale）信頼情報を含む可能性がある。有効ベクトル・チェック機能を消去することによって、抑制コントローラが、フェッチャを抑制すべきでない時に抑制してしまう可能性がある。この問題を解決するために、抑制コントローラ３００は、プロセッサ１００がフラッシュまたは分岐誤予測に遭遇すると必ず、ＣＱ  ２１０のすべての信頼ビットをクリアする。言い換えれば、プロセッサがフラッシュまたは分岐誤予測に遭遇した場合、コントローラ３００は、ＣＱ  ２１０のＲＥＳＥＴ入力にＲＥＳＥＴ信号を印加して、すべてのＣＱ信頼ビットをゼロにリセットする。実際には、完了ユニット１４５がＣＱ  ２１０のＲＥＳＥＴ入力にＲＥＳＥＴ信号を送信する（接続は図示せず）。プロセッサは、例外処理中にこうしたフラッシュ動作に遭遇する可能性がある。
【００２４】
図４は、ＢＩＱ  ２０５内の分岐命令が低信頼度を示す場合に、電力を節約するためのフェッチ抑制動作を実行する際の、プロセッサ１００内のプロセス流れを示す流れ図である。この流れ図では、図１のプロセッサ１００が抑制コントローラとして図２の抑制コントローラ２００を採用する。プロセス流れは、ブロック４０５のように、プロセッサ１００の初期設定を開始する。プログラマ、設計者、または他のエンティティは、ブロック４１０のように、フェッチ抑制状態マシン２３０によるフェッチ抑制の使用可能化またはフェッチ抑制の使用不可の選択を実行する。たとえばプロセッサは、プロセッサの初期設定時にフェッチ抑制を使用可能または使用不可にするように設定可能な、ラッチ（図示せず）を含むことができる。抑制コントローラ２００は、意思決定ブロック４１５のように、フェッチ抑制状態マシン２３０が使用可能状態を示すか、または使用不可状態を示すかを判別するためのテストを実行する。フェッチ抑制状態マシン２３０が使用可能でない場合、すべての後続のフェッチ動作は、ブロック４２０のように、フェッチ抑制状態マシン２３０によるフェッチ抑制なしに、通常の全速で続行される。言い換えれば、プロセッサ１００は、開示された電力節約機能の恩恵なしに命令の実行を続行する。しかしながら、意思決定ブロック４１５で、フェッチ抑制状態マシンが使用可能状態を示す場合、フェッチャ１１０は、ブロック４２５のように、分岐命令を含む命令の中のある命令ストリームからの命令フェッチを開始する。この時点で、分岐ユニット（ＢＲＵ）１３５は、分岐命令の成果に関する予測を取得するために、分岐履歴テーブル（ＢＨＴ）１４０を読み取る。初期設定時に、ＢＨＴ  １４０は一切のエントリを含まない。しかしながら、経時的に、ＢＨＴ  １４０は、命令ストリーム内の以前の分岐命令の成果の履歴を累積する。ＢＨＴ  １４０は、ＢＨＴ  １４０が前回分岐の成果を予測した際に、各分岐命令を正しく予測したかどうかを示す、信頼情報も含む。プロセッサ１００が命令ストリームの命令実行を続行すると、ブロック４３０のように、分岐命令キュー（ＢＩＱ  ２０５）は分岐命令で満たされる。ＢＩＱ  ２０５の各分岐命令について、ＣＱ  ２１０はそれぞれの信頼ビットで満たされる。
【００２５】
制御論理２２５は、ブロック４３５のように、有効ベクトル生成器２４０からの有効ベクトル２４５とＣＱ  ２１０の信頼ビットとのＡＮＤ演算によって、有効なＣＱ  ２１０内のそれらの信頼ビットを適格とする。加算器２５０は、ブロック４４０のように、ＣＱ  ２１０からのすべての有効信頼ビットをまとめて加算して、合計ＰＯＰＣＯＵＮＴを決定する。ＰＯＰＣＯＵＮＴの値は、低信頼度分岐命令の合計を表す。制御論理２２５は、ブロック４４５のように、低信頼度分岐命令の合計であるＰＯＰＣＯＵＮＴが、所定の低信頼度しきい値ＴＨＲＥＳＨよりも大きいかどうかを判別するためのテストを実行する。意思決定ブロック４４５が、現在の低信頼度分岐命令の合計であるＰＯＰＣＯＵＮＴが、所定の低信頼度しきい値ＴＨＲＥＳＨよりも大きいと判別した場合、ＢＩＱ内の分岐命令に関する分岐予測の精度における信頼度が低いため、フェッチ抑制状態マシン２３０はフェッチ抑制を開始する。このアクションにより、低信頼度分岐命令およびそれらの分岐命令から延伸する分岐内の命令の、投機的実行中の電力消費が低減される。
【００２６】
より詳細には、フェッチ抑制状態マシン２３０は、１ビット信号ＴＨＲＯＴＴＬＥを生成するプログラム可能状態マシンであり、ここで０は「フェッチ遮断」を示し、１は「フェッチ許可」を示す。状態マシン２３０の出力は、抑制信号を提供するためにフェッチャ１１０に結合される。抑制信号が０に等しい場合、これはフェッチャにフェッチしないよう指示する。前述のように、フェッチ抑制状態マシン２３０は、プログラマ、設計者、または他のエンティティによる選択に応じて、使用可能状態または使用不可状態を示すことができる。フェッチ抑制状態マシン２３０が使用不可状態を示す場合、ブロック４２０のように、フェッチャ１１０が抑制なしの全速で命令をフェッチするように、常に値１を伴う抑制信号を出力する。しかしながら、フェッチ抑制状態マシン２３０が使用可能状態を示す場合、プロセス流れは前述のようにブロック４２５、４３０、４３５、４４０へと続行される。低信頼度分岐命令の合計、ＰＯＰＣＯＵＮＴを決定した後、比較器２５５は、現在の低信頼度分岐命令の合計、ＰＯＰＣＯＵＮＴが、低信頼度しきい値レベルＴＨＲＥＳＨよりも大きいかどうかを判別するための比較テストを実行する。現在の低信頼度分岐命令の合計、ＰＯＰＣＯＵＮＴが、低信頼度しきい値ＴＨＲＥＳＨよりも大きくない場合、比較器２５５は、ブロック４５０のように、フェッチ抑制状態マシン２３０に対して抑制しないように指示する。これに応答して、フェッチ抑制状態マシン２３０は、抑制信号ＴＨＲＯＴＴＴＬＥをフェッチャ１１０に送信し、ここで抑制信号は、抑制しないようにフェッチャ１１０に指示する一連の１である。言い換えれば、抑制信号の一連の１、すなわち連続する論理１値は、全速で命令をフェッチするようにフェッチャ１１０に指示する。
【００２７】
しかしながら、現在の低信頼度分岐命令の合計、ＰＯＰＣＯＵＮＴが、低信頼度しきい値ＴＨＲＥＳＨよりも大きい場合、比較器２５５は、ブロック４５５のように、フェッチャ１１０の抑制を開始するようにフェッチ抑制状態マシン２３０に指示する。たとえば、フェッチ抑制を実行させるために、状態マシン２３０は、フェッチャ１１０が採用する抑制の量を決定するデジタル・パターンを示す抑制信号ＴＨＲＯＴＴＬＥを生成する。一実施形態では、抑制信号は、抑制動作の持続期間中繰り返されるデジタル・パターン１０００を示す。このパターン内の１は、対応するマシン・サイクルの間フェッチするように、フェッチャに指示する。パターン内の０００は、次の３マシン・サイクルの間フェッチしないように、フェッチャに指示する。したがってデジタル抑制パターン１０００は、４マシン・サイクルごとに１回命令をフェッチするように、フェッチャ１１０に指示する。これは、７５％の抑制に対応する。デジタル・パターン１０１０は、１０００デジタル・パターンよりも少ない抑制、すなわち、プロセッサのマシン・サイクルの５０％の抑制を提供する。状態マシン２３０により、特定の応用例に対して望ましい抑制の量に依存した抑制信号として、他のデジタル・パターンが使用可能である。一実施形態では、望ましい抑制の量および電力節約に従った、デジタル抑制パターンがプログラム可能である。
【００２８】
図５は、プロセッサ１００を採用する情報処理システム（ＩＨＳ）５００を示す。ＩＨＳとは、デジタル形式、アナログ形式、または他の形式の情報を、処理、転送、通信、修正、格納、またはその他の方法で処理するシステムである。ＩＨＳ  ５００は、メモリ・コントローラ５２０を介してプロセッサ１００をシステム・メモリ５１０に結合するバス５０５を含む。ビデオ・グラフィックス・コントローラ５２５は、ディスプレイ５３０をバス５０５に結合する。ハード・ディスク・ドライブ、ＣＤドライブ、ＤＶＤドライブ、または他の不揮発性ストレージなどの、不揮発性ストレージ５３５は、ＩＨＳ  ５００に永続ストレージを提供するために、バス５０５に接続される。オペレーティング・システム５４０は、ＩＨＳ  ５００の動作を管理するために、メモリ５１０内にロードする。キーボードおよびマウス・ポインティング・デバイスなどのＩ／Ｏデバイス５４５は、Ｉ／Ｏコントローラ５５０およびＩ／Ｏバス５５５を介して、バス５０５に結合される。ＵＳＢ、ＩＥＥＥ  １３９４バス、ＡＴＡ、ＳＡＴＡ、ＰＣＩ、ＰＣＩＥ、および他のバスなどの、１つまたは複数の拡張バス５６０は、周辺機器およびデバイスのＩＨＳ  ５００への接続を容易にするために、バス５０５に結合される。ネットワーク・アダプタ５６５は、ＩＨＳ  ５００が有線または無線でネットワークおよび他の情報処理システムに接続できるようにするために、バス５０５に結合される。図５は、プロセッサ１００を採用する１つのＩＨＳを示すが、ＩＨＳは多くの形を取ることができる。たとえばＩＨＳ  ５００は、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、あるいは他のフォーム・ファクタ・コンピュータまたはデータ処理システムの形を取ることができる。ＩＨＳ  ５００は、ゲーミング・デバイス、携帯情報端末（ＰＤＡ）、携帯電話デバイス、通信デバイス、または、プロセッサおよびメモリを含む他のデバイスなどの、他のフォーム・ファクタを取ることができる。
【００２９】
前述の実施形態では、ＣＱ  ２１０は、ＢＩＱ  ２０５内の分岐命令に関する分岐予測における信頼度をそれらの予測に関する低信頼度に関して記述する、信頼ビットを格納するが、等価の方法および装置で、プロセッサの論理を逆転させてもなお、開示された技術を実施することができる。たとえばプロセッサ１００は、図１の実施形態の分岐予測における低信頼度の量とは対照的に、ＢＩＱ  ２０５内の分岐命令に関する分岐予測における高信頼度の量を記述する、ＣＱ  ２１０内の信頼情報を採用することができる。こうした実施形態では、ＣＱ  ２１０内の信頼ビットは、ＢＩＱ  ２０５が格納する分岐命令に関する分岐予測の精度における信頼度を示す。加算器２５０は、ＰＯＰＣＯＵＮＴ値を決定するために、依然として前述のように信頼ビットをまとめて加算する。しかしながら、比較器２５５は、ＢＩＱ分岐命令に関する分岐予測の精度における信頼度レベルを示すＰＯＰＣＯＵＮＴ値が、所定の信頼度しきい値レベルよりも大きいかどうかを判別するためのテストを実行する。ＰＯＰＣＯＵＮＴによって表された信頼度が所定の信頼度しきい値レベルを超える場合、状態マシン２３０からのＴＨＲＯＴＴＬＥ信号は、抑制しないようにフェッチャ１１０に指示する。ＢＩＱ分岐命令に関する分岐予測の精度における信頼度が高いため、フェッチ済み命令の投機的実行は、フェッチ抑制なしに、および電力節約なしに、全速で続行される。しかしながら、ＰＯＰＣＯＵＮＴが所定の信頼度しきい値レベルを超えない場合、状態マシン２３０からのＴＨＲＯＴＴＬＥ信号は、抑制するようにフェッチャ１１０に指示する。言い換えれば、ＢＩＱ分岐命令に関する分岐予測の精度における信頼度が低いため、フェッチ済み命令の投機的実行が電力を節約するために減速されて続行されるように、フェッチャ１１０はフェッチ抑制を開始する。代替実施形態では、各ＢＩＱ分岐命令エントリについて、ＢＩＱ  ２０５がそれぞれの信頼ビットを格納する限り、分岐命令キュー（ＢＩＱ）２０５の内部に信頼キュー（ＣＱ）２１０が存在することが可能である。
【００３０】
当業者であれば、本発明の説明に鑑みて、本発明の修正および代替実施形態が明らかとなろう。したがって、本説明は、本発明の実施方法を当業者に教示し、単なる例示として解釈されるものと意図される。図示および説明された本発明の形が、本実施形態を構成する。当業者であれば、部品の形状、サイズ、および配置構成における様々な変更が可能である。たとえば当業者は、本明細書で例示および説明された要素を等価の要素に置き換えることができる。さらに当業者であれば、本発明の説明の利点を理解した後に、本発明の範囲を逸脱することなく、他の機能の使用とは無関係に本発明の特定の機能を使用することができる。
【図１】
2010524107.tif 000003
【図２】
2010524107.tif 000004
【図３】
2010524107.tif 000005
【図４】
2010524107.tif 000006
【図５】
2010524107.tif 000007
【手続補正書】
【提出日】平成21年12月3日(2009.12.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサの電力消費を低減させる方法であって、
分岐命令を含む命令ストリームを提供するために、フェッチャによって、命令ソースから命令をフェッチするステップと、
分岐命令キューによって、前記命令ストリームから複数のフェッチ済み分岐命令を格納するステップと、
分岐実行ユニットによって、分岐予測情報を使用することによりフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令で分岐が選択されるか否かを解決し、実行済み分岐命令を提供するステップと、
信頼ストレージ・メモリによって、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令の前記分岐予測情報における信頼度をそれぞれ記述する、１つまたは複数の信頼値を格納するステップと、
前記信頼値の合計が所定の信頼しきい値未満の場合、抑制回路によって、前記命令ソースからの前記命令のフェッチを抑制するステップであって、前記抑制により、プロセッサによる電力消費が低減される、抑制するステップと、
を含む、プロセッサを動作する方法。
【請求項２】
前記信頼ストレージ・メモリによって格納するステップが、前記分岐命令キュー内に格納された各フェッチ済み分岐命令について、前記信頼ストレージ・メモリ内にそれぞれの信頼値を格納するステップを含む、請求項１に記載の方法。
【請求項３】
有効ベクトル生成回路によって、前記分岐命令キューに格納された有効なフェッチ済み分岐回路を識別する有効ベクトルを生成するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
ＡＮＤ回路によって、有効信頼値を取得するために、前記有効ベクトルと前記信頼値とを論理的にＡＮＤ演算するステップをさらに含む、請求項３に記載の方法。
【請求項５】
加算器回路によって、前記信頼ストレージ・メモリに格納された前記有効信頼値の合計を取得するために、前記有効信頼値を加算するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記抑制ステップが、
比較器によって、前記有効信頼値の合計と前記所定のしきい値とを比較するステップと、
前記比較器が、前記有効信頼値の合計が前記所定のしきい値を超えると判別した場合、フェッチ抑制状態マシンによって、前記フェッチャによる前記命令ソースからの命令のフェッチ速度を低下させ、超えない場合、前記フェッチ抑制状態マシンが、前記命令ソースからの前記フェッチャによる全速での命令のフェッチを許可するステップと、
を含む、請求項５に記載の方法。
【請求項７】
前記所定のしきい値がプログラム可能しきい値である、請求項１から６のいずれか一項に記載の方法。
【請求項８】
命令を格納する命令ソースと、
フェッチ済み分岐命令を含む命令ストリームを提供するために前記命令ソースから命令をフェッチする、前記命令ソースに結合されたフェッチャと、
分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、前記フェッチャに結合された分岐実行ユニットと、
前記フェッチャによる前記命令のフェッチを抑制することが可能な、前記フェッチャに結合された抑制コントローラと、
を備えるプロセッサであって、前記抑制コントローラは、
複数のフェッチ済み分岐命令を格納する分岐命令キューと、
前記分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリであって、前記信頼値が、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する前記分岐予測情報における信頼の欠如を記述する、信頼ストレージ・メモリと、を含み、
前記抑制コントローラは、前記信頼ストレージ・メモリ内の前記信頼値の合計が所定のしきい値を超えた場合、前記命令ソースからの前記命令のフェッチを抑制し、前記抑制によって、前記プロセッサによる電力消費を低減させる、
プロセッサ。
【請求項９】
前記分岐命令キューに格納された有効なフェッチ済み分岐回路を識別する有効ベクトルを生成する、有効ベクトル生成回路をさらに備える、請求項８に記載のプロセッサ。
【請求項１０】
有効信頼値を取得するために、前記有効ベクトルと前記信頼値とを論理的にＡＮＤ演算する、前記信頼ストレージ・メモリおよび前記有効ベクトル生成回路に結合された、ＡＮＤ回路をさらに備える、請求項９に記載のプロセッサ。
【請求項１１】
前記信頼ストレージ・メモリに格納された前記有効信頼値の合計を取得するために、前記有効信頼値を加算する、前記ＡＮＤ回路に結合された加算器回路をさらに備える、請求項１０に記載のプロセッサ。
【請求項１２】
前記有効信頼値と、しきい値回路が提供する前記所定のしきい値とを比較する、前記加算器回路およびしきい値回路に結合された比較器をさらに備える、請求項１１に記載のプロセッサ。
【請求項１３】
前記比較器および前記フェッチャに結合されたフェッチ抑制状態マシンをさらに備え、前記フェッチ抑制状態マシンは、前記比較器が、前記有効信頼値の合計が前記所定のしきい値を超えると判別した場合、前記フェッチャによる前記命令ソースからの命令のフェッチ速度を低下させ、超えない場合、前記フェッチ抑制状態マシンは、前記命令ソースからの前記フェッチャによる全速での命令のフェッチを許可する、請求項１２に記載のプロセッサ。
【請求項１４】
メモリと、
前記メモリに結合されたプロセッサと、を備える、情報処理システム（ＩＨＳ）であって、前記プロセッサは、
命令を格納する命令ソースと、
フェッチ済み分岐命令を含む命令ストリームを提供するために前記命令ソースから命令をフェッチする、前記命令ソースに結合されたフェッチャと、
分岐予測情報を使用することによってフェッチ済み分岐命令を投機的に実行し、各フェッチ済み分岐命令内で分岐が選択されるか否かを解決し、したがって実行済み分岐命令を提供する、前記フェッチャに結合された分岐実行ユニットと、
前記フェッチャによる前記命令のフェッチを抑制することが可能な、前記フェッチャに結合された抑制コントローラと、を備え、前記抑制コントローラは、
複数のフェッチ済み分岐命令を格納する分岐命令キューと、
前記分岐命令キュー内のフェッチ済み分岐命令に関するそれぞれの信頼値を格納する、信頼ストレージ・メモリであって、前記信頼値が、前記分岐命令キュー内のそれぞれのフェッチ済み分岐命令に関する前記分岐予測情報における信頼の欠如を記述する、信頼ストレージ・メモリと、を含み、
前記抑制コントローラは、前記信頼ストレージ・メモリ内の前記信頼値の合計が所定のしきい値を超えた場合、前記命令ソースからの前記命令のフェッチを抑制し、前記抑制によって、前記プロセッサによる電力消費を低減させる、
情報処理システム。
【国際調査報告】
2010524107.tif 000008
2010524107.tif 000009
2010524107.tif 000010