JP2009501961A - 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法 - Google Patents

予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法 Download PDF

Info

Publication number
JP2009501961A
JP2009501961A JP2008505345A JP2008505345A JP2009501961A JP 2009501961 A JP2009501961 A JP 2009501961A JP 2008505345 A JP2008505345 A JP 2008505345A JP 2008505345 A JP2008505345 A JP 2008505345A JP 2009501961 A JP2009501961 A JP 2009501961A
Authority
JP
Japan
Prior art keywords
instruction
processor
component
components
suspending
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.)
Pending
Application number
JP2008505345A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2009501961A publication Critical patent/JP2009501961A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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
    • 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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

命令サイクルが、キャッシュに記憶された命令から求められる(502)。ここで、命令サイクルは、キャッシュに常駐する、処理デバイスによって実行されると予測された命令シーケンスを表す。この命令サイクルの継続期間が見積もられ、命令サイクル中に使用されると予想されていない、処理デバイスの1つ又は2つ以上のコンポーネントを、その継続期間の一部又は全部の間サスペンドすることができる(506)。これらのコンポーネントは、たとえば、クロックゲーティングによるか、又は、1つ若しくは2つ以上の電源領域からコンポーネントを切り離すことにより、サスペンドすることができる(508)。

Description

本開示は、包括的には、処理デバイスにおける節電に関し、より具体的には、処理デバイスの特定のコンポーネントをサスペンドすることに関する。
パイプライン化された処理は、多くの場合、パイプラインのさまざまなコンポーネントで複数の命令を同時に処理できることから、改善された性能を提供する。性能は、分岐予測技法を使用してさらに高めることができる。分岐予測技法によれば、処理デバイスの分岐予測ユニットが、やがて現れるフロー変化(change of flow)(COF)命令によって提示される分岐が選ばれるか否かを予測する。その分岐が選ばれることが予測される場合には、分岐に続く命令を処理デバイスの命令キャッシュに事前にロードすることができ、また、COF命令が解決される前に、分岐に続く命令を全体的又は部分的に実行することもできる。一方、予測ミスの場合には、パイプラインは、通常、フラッシュされ、予測ミスに関連した命令の実行のあらゆる結果が廃棄される。このように、予測ミスの結果、多くの場合、プロセッサによりかなりの電力が消費されるだけでなく、処理サイクルも浪費される。
プロセッサの分岐予測の有効性にかかわらず、パイプライン化された処理デバイスによる命令のフェッチ及び実行は、処理デバイスの1つ又は2つ以上のコンポーネントの使用を伴わないか又は必要としない場合があることが十分理解される。例示すると、整数演算を表す命令の実行は、通常、処理デバイスの浮動小数点ユニット(FPU)の使用を必要としない。したがって、たとえやがて現れる命令ストリームが一定のコンポーネントの使用を必要としない場合であっても、処理デバイスは、多くの場合、それらの一定のコンポーネントをイネーブルステータスに維持している間、電力を不必要に消費する。したがって、処理デバイスの電力消費を削減すると共に、予測ミスした分岐に関連したペナルティを削減するシステム及び方法が有利となる。
本開示の目的及び利点は、添付図面と共に以下の詳細な説明から当業者には明らかになる。添付図面において、同様の参照符号は、同様の要素を示すのに使用されている。
図1乃至図5は、処理デバイスの電力消費を削減するために、プロセッサコンポーネントを動的にサスペンドするための例示的なシステム及び技法を示している。少なくとも1つの実施形態では、命令サイクルが、キャッシュに記憶された命令から求められる。ここで、命令サイクルは、キャッシュに常駐する、処理デバイスによって実行されると予測された命令シーケンスを表す。この命令サイクルの継続期間が見積もられ、命令サイクル中に使用されると予想されていない、処理デバイスの1つ又は2つ以上のコンポーネントを、その継続期間の一部又は全部の間サスペンドすることができる。これらのコンポーネントは、たとえば、クロックゲーティングによるか、又は、1つ若しくは2つ以上の電源領域からコンポーネントを切り離すことにより、サスペンドすることができる。
次に図1を参照すると、1つの例示的な処理システム100が、本開示の少なくとも1つの実施形態に従って示されている。処理システム100は、プロセッサ102等の処理デバイスを備える。この処理デバイスは、たとえば、マスタバスインターフェースユニット104、メモリコントローラ(MC)106、システムメモリ108等の1つ又は2つ以上の周辺コンポーネントに結合されている。プロセッサ102は、命令パイプライン110を含む。命令パイプライン110は、たとえば、命令キャッシュ112、プリフェッチモジュール114、デコードモジュール116、アドレス計算モジュール118、及び実行モジュール120を有する。実行モジュール120は、たとえば、整数ユニット122、浮動小数点ユニット(FPU)124、マルチメディア拡張(MMX)ユニット126等を含むことができる。プロセッサ102は、サスペンドコントローラ130、デコードキャッシュ132、レベル2(L2)キャッシュ134、及び、プロセッサ102のコンポーネントと周辺コンポーネントとの間のインターフェースとしてのバスコントローラ(BC)136をさらに含むことができる。
分岐予測情報又は他のプリフェッチ情報に基づいて、プリフェッチモジュール114は、特定された命令を命令キャッシュ112又はシステムメモリ108からフェッチし、それらの命令をデコードモジュール116に提供する。デコードモジュール116は、一実施形態では、プリフェッチされた命令を部分的に又は完全にデコードし、それらの命令をデコードキャッシュ132及び/又はL2キャッシュ134に記憶する。デコードキャッシュ132の命令及び/又は命令キャッシュ112から直接フェッチされた命令は、次に、プログラムフローに従って実行するためにアドレス計算モジュール118及び実行モジュール120に提供することができる。
図2についてより詳細に解説するように、デコードモジュール116は、一実施形態では、プリフェッチモジュール114によって提供された命令に関連した一定のプログラムフロー特性を求め、これらのプログラムフロー特性の表示をデコードキャッシュ132に提供して、対応するデコードされた命令と共に記憶する。プログラムフロー特性には、フロー変化特性(すなわち、命令が分岐になることがあるか否か)、命令の実行に使用されると予想されるプロセッサコンポーネント又は命令の実行の結果として使用されると予想されるプロセッサコンポーネントを示すもの、さらには、命令がCOF命令である場合には分岐予測特性が含まれ得るが、これらに限定されるものではない。この分岐予測特性には、分岐が選ばれると予測されるか否か、予測が補完される前に命令が選ばれると予想される回数、補完予測(complement prediction)が実現される前に所与のCOF命令が正しく解決された回数等がある。
デコードキャッシュ132の命令及び関連したプログラムフロー特性に基づいて、サスペンドコントローラ130は、一実施形態では、デコードキャッシュ132に常駐していない命令が要求されると予想される前の継続期間を見積もることができる。サスペンドコントローラ130は、見積もられた継続期間中にプロセッサ102によって消費される電力を削減するために、その継続期間中に使用されないと予想されるプロセッサ102のコンポーネントを特定し、次に、その継続期間の一部又は全部の間、特定されたコンポーネントの1つ又は2つ以上をサスペンドすることができる。同様に、サスペンドコントローラ130は、継続期間中に使用されないと予想される1つ又は2つ以上の周辺コンポーネントも特定し、継続期間の一部又は全部の間、これらの周辺コンポーネントの1つ又は2つ以上をサスペンドすることができる。後述するように、プロセッサコンポーネント又は周辺コンポーネントをシャットダウンして再起動することに伴う追加の電力消費は、特定のコンポーネントをサスペンドするか否かを判断する時に考慮することができる。
少なくとも1つの実施形態では、1つ又は2つ以上のプロセッサコンポーネントは、それらのコンポーネントに対応する電源領域をシャットダウンすることによって、それらの対応する電源領域から1つ又は2つ以上のプロセッサコンポーネントを切り離すことによりサスペンドされる。例示すると、プリフェッチモジュール114は電源領域140に関連付けることができ、整数ユニット122は電源領域142に関連付けることができ、FPU124は電源領域144に関連付けることができ、MMXユニット126は電源領域146に関連付けることができ、L2キャッシュ134は電源領域148に関連付けることができ、システムメモリ108は電源領域150に関連付けることができる。したがって、サスペンドコントローラ130は、たとえば、コンポーネント114、122、124、126、134と電源領域140乃至148の電力供給ライン(複数可)との間に挿入された1つ又は2つ以上のスイッチユニット160乃至168に、アサートされたサスペンド信号を提供することによって、対応する電源領域140乃至148からコンポーネント114、122、124、126、134の1つ又は2つ以上を接続解除することができる。さらに、ディアサートされたサスペンド信号を供給して、コンポーネントを対応する電源領域に再接続することもできる。例示すれば、MMXユニット126が特定の命令サイクルの間使用されないと予想されるとの判断に応じて、サスペンドコントローラ130は、アサートされたサスペンド信号をスイッチユニット166に提供して、MMXユニット126を電源領域146から接続解除することができる。その命令サイクルが終了すると、サスペンドコントローラ130は、ディアサートされたサスペンド信号をスイッチユニット166に提供して、MMXユニット126を電源領域146に再接続することができる。同様に、サスペンドコントローラ130は、システムメモリ108が使用されないと予想されるとの判断に応じて、アサートされた信号を、たとえば、BC136、MBIU104、及びMC106を介してスイッチユニット170に提供して、システムメモリ108を電源領域150から接続解除することができる。スイッチユニット160乃至170は、たとえばトランジスタ等の適切なさまざまのスイッチングメカニズムのいずれも備えることができる。
図1は、図解を容易にするために、電源領域とプロセッサコンポーネントとの間の1対1の対応を示しているが、複数のコンポーネントを1つの電源領域に関連付けることができ、および/または、複数の電源領域を1つのコンポーネントに関連付けることができることが十分理解されよう。特定の電源領域に関連付けられたコンポーネントのすべてが特定の命令サイクル中に使用されないと予想される場合、その電源領域を当該電源領域の電源から切り離すことによってそれらのコンポーネントをサスペンドすることができる。代替的に、本開示の趣旨又は範囲から逸脱することなく、クロックゲーティング等の他の技法を使用して、プロセッサコンポーネント及び周辺コンポーネントをサスペンドすることもできる。
次に図2を参照すると、デコードモジュール116、デコードキャッシュ132、及びサスペンドコントローラ130の例示的な一実施態様が、本開示の少なくとも1つの実施形態に従って示されている。一実施形態では、デコードモジュール116は、プログラムフロー基準テーブル202を利用して、デコードモジュール116がデコードキャッシュ132に記憶する命令に関連付けられたプログラムフロー基準を決定する。図示した例では、テーブル202は、プロセッサ102に準拠した命令タイプの少なくともサブセットの複数のエントリーを含む。各エントリーは、特定の命令タイプを特定するプリフィックス/演算コードフィールド204と、対応するプロセッサコンポーネント又は周辺コンポーネントが、対応する命令タイプを有する命令の実行中に又は実行の結果として使用されると予想されるか否かを示す1つ又は2つ以上のフィールドとを有することができる。たとえば、これらのフィールドは、特定の命令タイプを有する命令が、システムメモリ108、整数ユニット124、FPU124、又はMMXユニット126を使用すると予想されるか否かをそれぞれ示すメモリフィールド206、整数フィールド208、FPUフィールド210、及びMMXフィールド212を含むことができる。加えて、各エントリーは、命令タイプが潜在的なCOF命令であるか否かを示すCOFフィールド213も含むことができる。
デコードモジュール116は、プリフェッチモジュール114から命令を受け取ると、その命令を適切な範囲までデコードし、その命令の演算コードやプリフィックス等の識別子を使用して、テーブル202における対応する命令タイプエントリーを特定する。デコードモジュール116は、テーブル202のエントリーのフィールドの値を使用して、デコードキャッシュ132のエントリーを、(フィールド214に記憶された)少なくとも部分的にデコードされた命令及び適切なプログラムフロー情報とポピュレート(populate)する。デコードキャッシュ132のプログラムフローフィールドは、インデックスを提供する線形命令ポインタ(LIP)フィールド216と、命令がCOF命令であるか否かを示すCOFフィールド218と、命令が、システムメモリ108、整数ユニット124、FPU124、又はMMXユニット126を使用すると予想されるか否かをそれぞれ示すフィールド218〜226を含むことができる。デコードキャッシュ132のエントリーは、COF命令が選ばれると予測されるか否かを示す予測フィールド228と、予測が補完される前にCOF命令が選ばれると予測される回数を示す予測カウントフィールド230と、補完(compliment)予測が実現される前にCOF命令が実行モジュール120によって正しく解決された回数を示す予測インデックスフィールド232と、COF命令のターゲットを示すターゲットフィールド234とをさらに含むことができる。デコードモジュール116は、テーブル202からの情報に加えて、たとえばプリフェッチモジュール114に関連付けられた分岐予測ロジックにより提供される分岐予測情報も使用して、これらのフィールドのそれぞれの適切な値を求めることができる。
サスペンドコントローラ130は、一実施形態では、デコードキャッシュ132を解析して、1つ又は2つ以上の命令サイクルを特定する。これらの命令サイクルのそれぞれは、実行モジュール120によって順に実行されると予想される、デコードキャッシュ132に常駐する命令シーケンスを表す。ここで、命令サイクルの終了は、デコードキャッシュ132に常駐していない命令の要求を含む。デコードキャッシュ132が、デコードキャッシュ132内にループを形成する命令を含む場合、命令シーケンスは、1つ又は2つ以上の命令の複数の生起を含むことができることに留意されたい。図2の例を使用して例示すると、LIP1で開始する1つの例示的な命令サイクルは、{LIP1,2,3,4,5,6,7,2,3,4,5,6,7,2,3,4,5,6,7,8,9,10}を含む。LIP7の命令がCOF命令であり且つ選ばれると予測されることを示すCOFフィールド218及び予測フィールド228の値「1」と、命令がLIP2の命令に分岐することを示すターゲットフィールド234の値「2」と、LIP2の命令への分岐が2回繰り返すことを示す予測カウントフィールド230の値「2」とによって、LIP2〜7の命令シーケンスは3回繰り返されることが十分理解されよう。
予想される命令サイクル(複数可)を特定した後、サスペンドコントローラは、プロセッサ102が命令サイクルで予測されたように命令を実際に実行する場合に要すると予想される処理時間の継続期間を求めることができる。一実施形態では、この継続期間は、クロックサイクルを基準として求められる。サスペンドコントローラ130は、たとえば、1命令当たりの平均クロックサイクル数を使用して命令サイクルの総クロックサイクル数に到達することができる。例示すると、1命令当たりのクロックサイクルの所定の平均が2.4の場合、サスペンドモジュール130は、30個の命令から成るシーケンスを有する命令サイクルが72クロックサイクル(すなわち、2.4クロックサイクル/命令×30命令)を要すると判断することができる。代替的に、サスペンドコントローラ130は、命令サイクルの命令のそれぞれを実行するためにプロセッサ102により使用されるクロックサイクル数を、それらの命令の命令タイプに基づいて求めて、命令サイクルの総クロックサイクル数に到達することもできる。
サスペンドコントローラ130は、たとえば、命令サイクルの命令に対応するデコードキャッシュ132のエントリーのフィールド220乃至226を使用して、命令サイクルの実行中に使用されないと予想されるコンポーネントを特定することができる。例示すると、LIP2の命令は、フィールド220及び224に「1」の値を有し、これは、システムメモリ108及びFPU124が、命令を実行するのに使用されることを示しているのに対して、上記で提供した例示的な命令サイクルの命令のいずれも、フィールド222にも226にも「1」の値を有せず、これは、整数ユニット122もMMXユニット126も例示的な命令サイクルの命令の実行中に使用されると予想されないことを示している。命令サイクルの予想された継続期間及び命令サイクルの実行中に使用されないと予想されたコンポーネントに基づいて、サスペンドコントローラ130は、たとえば、アサートされたサスペンド信号を適切なスイッチングユニット(図1)に提供することにより、適切なプロセッサコンポーネント及び周辺コンポーネントをサスペンドすることができる。
次に図3を参照して、プロセッサコンポーネント及び周辺コンポーネントを特定してサスペンドする1つの例示的な方法300が、本開示の少なくとも1つの実施形態に従って示されている。この方法300は、ステップ302で開始する。ステップ302において、デコードキャッシュ132の特定された命令サイクルの継続期間が求められる。上述したように、この継続期間は、命令サイクルの命令シーケンスの実行中に使用されると予想されたクロックサイクル数によって表すことができる。
ステップ304において、サスペンドコントローラ130は、予測された継続期間の一部又は全部の間サスペンドすることができる1つ又は2つ以上のコンポーネントを特定する。一方、一定のコンポーネントをシャットダウンし、その後、再起動する際に浪費される電力及びクロックサイクルが存在し得ることが十分理解されよう。たとえば、一定のコンポーネントは、数十、数百、又は数千個のクロックサイクル及び無視できる電力を上回る電力を必要とする場合がある初期化を起動時に必要とする場合がある。したがって、ステップ306において、サスペンドコントローラ130は、特定のコンポーネントをサスペンドすることの節電の利点があるか否かを、その特定のコンポーネントをサスペンドする電力コスト及び時間コストを考慮して判断する。この評価は、コンポーネントがサスペンドされている間に節約される電力と、そのコンポーネントをシャットダウンし、その後、再起動するのに消費される電力とを考慮することができる。たとえば、命令サイクルが、100クロックサイクルの長さであると予測され、特定のコンポーネントが、1サイクル当たり0.001ミリワット(mW)の節電、すなわち、その命令サイクルの間0.1mWの節電でそれらのサイクルの90(10サイクルの再初期化期間を仮定する)の間シャットダウンできる場合において、シャットダウン電力コストが0.1mwに近いか又は0.1mWよりも大きいときは、サスペンドコントローラ130は、そのコンポーネントのサスペンドを差し控えることを選ぶことができる。
別の実施形態では、予想される継続期間を1つ又は2つ以上のしきい値を比較することに基づいて、コンポーネントをサスペンドすることの相対値を求めることができる。たとえば、継続期間が、一定のしきい値(たとえば、100クロックサイクル)よりも小さい場合、サスペンドコントローラは、コンポーネントのサスペンドを差し控えることを選ぶことができる。代替的に、サスペンドコントローラ130によって利用されるサスペンドオペレーションのタイプを、予測された比較を1つ又は2つ以上のしきい値と比較することに基づいて求めることができる。例示すると、継続期間が第1のしきい値(たとえば、50クロックサイクル)よりも小さい場合には、サスペンドオペレーションは行われない。継続期間が第1のしきい値よりも大きいが、第2のしきい値(たとえば、200クロックサイクル)よりも小さい場合には、クロックゲーティングサスペンドオペレーションを行うことができる。継続期間が第2のしきい値よりも大きい場合には、コンポーネントをその電源領域から切り離すサスペンドオペレーションを行うことができる。多段階のサスペンドオペレーションを有することによって、特定の命令サイクルに対して、その予想された継続期間に基づき節電/シャットダウンコストのバランスを調節することができる。サスペンドされる処理デバイスの特定のコンポーネントに関してしきい値を設定できることが十分理解されよう。たとえば、マルチプレクサや加算器等の単純なコンポーネントがサスペンドされる場合、クロックゲーティングしきい値は、比較的低く(たとえば、2〜3クロックサイクル)設定することができるのに対して、FPU等のより複雑なコンポーネントをサスペンドすることがサスペンドされる場合、クロックゲーティングしきい値は、比較的高く(たとえば、数百又は数千クロックサイクル)に設定することができる。
継続期間の少なくとも一部の間、コンポーネントをサスペンドすることが有利であると判断された場合、サスペンドコントローラ130は、ステップ308において、継続期間の特定された部分の間、コンポーネントをサスペンドする。継続期間の特定された部分の実行の終了時に、サスペンドコントローラ130は、コンポーネントが次の命令サイクルの間不要であると特定されていない限り、コンポーネントを再初期化し、および/または再起動する。コンポーネントが次の命令サイクルの間不要であると特定されている場合、サスペンドコントローラは、コンポーネントを、サスペンドされた状態に維持することができる。複数のコンポーネントがサスペンド可能であるとして特定されている場合、サスペンドコントローラ130は、ステップ310において、特定された各コンポーネントについてステップ306及び308を繰り返すことができる。
次に図4を参照すると、1つの例示的な方法400が示されている。方法400は、ステップ402で開始する。ステップ402において、複数の命令が受け取られる。これらの複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの1つまたは2つ以上のコンポーネントが、ステップ404において特定される。ステップ406において、特定されたコンポーネントの1つまたは2つ以上が、プロセッサによる命令シーケンスの少なくとも一部の実行中にサスペンドしている。
次に図5を参照すると、1つの例示的な方法500が示されている。方法500は、ステップ502で開始する。ステップ502において、複数のデコードされた命令がキャッシュに記憶される。これらの複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの1つまたは2つ以上のコンポーネントが、ステップ504において特定される。ステップ506において、命令シーケンスにない命令がプロセッサによる実行のために要求される前の継続期間が見積もられる。ステップ508において、プロセッサの1つまたは2つ以上の特定された1つ又は2つ以上のコンポーネントの少なくとも1つが、命令シーケンスの少なくとも一部の実行中に、見積もられた継続期間に基づいてサスペンドされる。
上記で開示した主題は、制限的ではなく、例示とみなされるべきであり、添付の特許請求の範囲は、本開示の真の趣旨及び範囲内に入るすべての変更、高度化、及び他の実施形態をカバーすることを目的としている。したがって、法律によって許可される最大範囲まで、本開示の範囲は、添付の特許請求の範囲及びその均等物の許容可能な最も広い解釈によって決定されるべきであり、上記詳細な説明によって制限も限定もされない。
本開示の少なくとも1つの実施形態による1つの例示的な処理システムを示すブロック図である。 本開示の少なくとも1つの実施形態による図1の1つの例示的な処理システムの1つの例示的なサスペンドコントローラを示すブロック図である。 本開示の少なくとも1つの実施形態による処理デバイスのコンポーネントを動的にサスペンドするための例示的な方法を示すフロー図である。 本開示の少なくとも1つの実施形態による処理デバイスのコンポーネントを動的にサスペンドするための例示的な方法を示すフロー図である。 本開示の少なくとも1つの実施形態による処理デバイスのコンポーネントを動的にサスペンドするための例示的な方法を示すフロー図である。

Claims (10)

  1. 複数の命令を受け取るステップと、
    前記複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの1つ又は2つ以上のコンポーネントを特定するステップと、
    前記プロセッサによる前記命令シーケンスの少なくとも一部の実行中に、前記プロセッサの前記1つまたは2つ以上の特定されたコンポーネントの少なくとも1つをサスペンドするステップとを含む、方法。
  2. 前記少なくとも1つのコンポーネントをサスペンドするステップは、前記少なくとも1つのコンポーネントを1つまたは2つ以上の電源領域から切り離すことを含む、請求項1記載の方法。
  3. 前記少なくとも1つのコンポーネントをサスペンドするステップは、前記少なくとも1つのコンポーネントをクロックゲーティングすることを含む、請求項1記載の方法。
  4. 前記少なくとも1つのコンポーネントをサスペンドするステップは、前記少なくとも1つのコンポーネントを再起動するのに消費されると予想される電力量に基づいて、前記少なくとも1つのコンポーネントをサスペンドするか否かを判断するステップを含む、請求項1記載の方法。
  5. プロセッサであって、
    複数のコンポーネントと、
    複数の命令を記憶するためのストレージ手段と、
    前記プロセッサによる前記複数の命令の命令シーケンスの実行中に使用されないと予想される、前記複数のコンポーネントの1つまたは2つ以上のコンポーネントを特定するための手段と、
    前記プロセッサによる前記命令シーケンスの少なくとも一部の実行中に前記1つまたは2つ以上の特定されたコンポーネントの少なくとも1つをサスペンドする手段とを備える、プロセッサ。
  6. 前記少なくとも1つのコンポーネントをサスペンドするための手段は、前記少なくとも1つのコンポーネントを1つまたは2つ以上の電源領域から切り離すための手段を含む、請求項5記載のプロセッサ。
  7. 前記命令シーケンスに含まれない命令が前記プロセッサによる実行のために要求される前の継続期間を求めるための手段をさらに備える、請求項5記載のプロセッサ。
  8. 前記少なくとも1つのコンポーネントをサスペンドするための手段は、前記継続期間が第1のしきい値よりも大きいときに、前記少なくとも1つのコンポーネントをクロックゲーティングするための手段を含む、請求項7記載のプロセッサ。
  9. 前記少なくとも1つのコンポーネントをサスペンドするための手段は、前記継続期間が第2のしきい値よりも大きいときに、前記少なくとも1つのコンポーネントを1つまたは2つ以上の電源領域から切り離すための手段を含み、ここで、前記第2のしきい値は、前記第1のしきい値よりも大きい、請求項7記載のプロセッサ。
  10. 前記少なくとも1つのコンポーネントをサスペンドするための手段は、前記継続期間が第1のしきい値よりも大きいときに、前記少なくとも1つのコンポーネントを1つまたは2つ以上の電源領域から切り離すための手段を含む、請求項7記載のプロセッサ。
JP2008505345A 2005-04-04 2006-03-21 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法 Pending JP2009501961A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/098,321 US7441136B2 (en) 2005-04-04 2005-04-04 System for predictive processor component suspension and method thereof
PCT/US2006/010242 WO2006107589A2 (en) 2005-04-04 2006-03-21 System for predictive processor component suspension and method thereof

Publications (1)

Publication Number Publication Date
JP2009501961A true JP2009501961A (ja) 2009-01-22

Family

ID=36695060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008505345A Pending JP2009501961A (ja) 2005-04-04 2006-03-21 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法

Country Status (8)

Country Link
US (1) US7441136B2 (ja)
JP (1) JP2009501961A (ja)
KR (1) KR20070116857A (ja)
CN (1) CN101427218A (ja)
DE (1) DE112006000824T5 (ja)
GB (1) GB2440849B (ja)
TW (1) TWI401564B (ja)
WO (1) WO2006107589A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100806284B1 (ko) * 2005-12-08 2008-02-22 한국전자통신연구원 동적 전압 스케일링을 적용한 고효율 프로세서
JP5247037B2 (ja) * 2007-01-26 2013-07-24 キヤノン株式会社 半導体集積回路及びその制御方法
US8103562B2 (en) * 2007-04-03 2012-01-24 Sony Computer Entertainment America Llc System and method for processor cycle accounting and valuation
US8020017B2 (en) * 2008-08-15 2011-09-13 Freescale Semiconductor, Inc. Management of power domains in an integrated circuit
KR101197591B1 (ko) * 2008-12-22 2012-11-08 한국전자통신연구원 저전력 프로세서
JP5674611B2 (ja) * 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム
US20130262896A1 (en) * 2012-03-29 2013-10-03 Semiconductor Energy Laboratory Co., Ltd. Processor and electronic device
US8954775B2 (en) * 2012-06-20 2015-02-10 Intel Corporation Power gating functional units of a processor
US20140157017A1 (en) * 2012-12-05 2014-06-05 Qualcomm Incorporated Power management of communication devices
JP6521565B2 (ja) * 2014-01-20 2019-05-29 Dmg森精機株式会社 省電力を考慮したncプログラム生成装置
US10223123B1 (en) * 2016-04-20 2019-03-05 Apple Inc. Methods for partially saving a branch predictor state
US9977680B2 (en) * 2016-09-30 2018-05-22 International Business Machines Corporation Clock-gating for multicycle instructions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236226A (ja) * 2000-01-14 2001-08-31 Texas Instr Inc <Ti> マイクロプロセッサ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US6012125A (en) * 1997-06-20 2000-01-04 Advanced Micro Devices, Inc. Superscalar microprocessor including a decoded instruction cache configured to receive partially decoded instructions
US6457120B1 (en) * 1999-11-01 2002-09-24 International Business Machines Corporation Processor and method including a cache having confirmation bits for improving address predictable branch instruction target predictions
US7849463B2 (en) * 2000-06-02 2010-12-07 Microsoft Corporation Dynamically variable idle time thread scheduling
US6839828B2 (en) * 2001-08-14 2005-01-04 International Business Machines Corporation SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode
US6816977B2 (en) * 2001-12-03 2004-11-09 Hewlett-Packard Development Company, L.P. Power reduction in computing devices using micro-sleep intervals
US6795781B2 (en) * 2002-06-27 2004-09-21 Intel Corporation Method and apparatus for compiler assisted power management
US7143243B2 (en) * 2003-05-29 2006-11-28 Via-Cyrix, Inc. Tag array access reduction in a cache memory
US7281144B2 (en) * 2004-02-17 2007-10-09 Intel Corporation Power management in communication devices
US20060074497A1 (en) * 2004-09-29 2006-04-06 Pollin Robert E Methods, systems, and articles of manufacture for providing a timing apparatus with an almanac memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236226A (ja) * 2000-01-14 2001-08-31 Texas Instr Inc <Ti> マイクロプロセッサ

Also Published As

Publication number Publication date
US20060225046A1 (en) 2006-10-05
GB0718783D0 (en) 2007-11-07
TWI401564B (zh) 2013-07-11
US7441136B2 (en) 2008-10-21
WO2006107589A2 (en) 2006-10-12
KR20070116857A (ko) 2007-12-11
GB2440849A (en) 2008-02-13
WO2006107589A3 (en) 2007-02-08
DE112006000824T5 (de) 2008-02-07
CN101427218A (zh) 2009-05-06
TW200702979A (en) 2007-01-16
GB2440849B (en) 2008-10-29

Similar Documents

Publication Publication Date Title
JP2009501961A (ja) 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法
JP5059623B2 (ja) プロセッサ及び命令プリフェッチ方法
US20180107485A1 (en) Energy-focused compiler-assisted branch prediction
JP5313279B2 (ja) 非アラインドメモリアクセス予測
US10423216B2 (en) Asymmetric multi-core processor with native switching mechanism
US9361111B2 (en) Tracking speculative execution of instructions for a register renaming data store
JP7301955B2 (ja) ループ終了予測を用いたプロセッサのループモードの促進又は抑制
WO2008122662A1 (en) Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
KR20090009955A (ko) 블록-기반 브랜치 타겟 어드레스 캐시
WO2007038532A2 (en) Clock gated pipeline stages
US20160162293A1 (en) Asymmetric processor with cores that support different isa instruction subsets
US10705851B2 (en) Scheduling that determines whether to remove a dependent micro-instruction from a reservation station queue based on determining cache hit/miss status of one ore more load micro-instructions once a count reaches a predetermined value
US20040181654A1 (en) Low power branch prediction target buffer
JPH10111800A (ja) 分岐解決方法、プロセッサ、及びシステム
US11074080B2 (en) Apparatus and branch prediction circuitry having first and second branch prediction schemes, and method
US20220035635A1 (en) Processor with multiple execution pipelines
US10860327B2 (en) Methods for scheduling that determine whether to remove a dependent micro-instruction from a reservation station queue based on determining a cache hit/miss status of a load micro-instruction once a count reaches a predetermined value and an apparatus using the same
US8161272B2 (en) Memory control circuit and integrated circuit including branch instruction detection and operation mode control of a memory
US20070294519A1 (en) Localized Control Caching Resulting In Power Efficient Control Logic
CN111936968A (zh) 一种指令执行方法及装置
US11379237B2 (en) Variable-length-instruction processing modes
US20050027974A1 (en) Method and system for conserving resources in an instruction pipeline

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20071203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090310

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120425