説明

マルチクロックドメインを有するマイクロプロセッサ

【課題】 本発明は、周波数が将来アグレッシブに増加することを許容し、同期式の設計方法を維持し、機能ブロックをより自律なものにする方向へのトレンドを活用するような、複数のドメインを備えたマイクロプロセッサに関するアーキテクチャを構築すること。
【解決手段】 上記課題を解決するために、本発明は、複数のクロックドメインを有するマイクロプロセッサであって、複数のドメインと、該複数のドメインの各々についてそのドメインのためのクロック信号を別々に生成するクロックと、を備えたことを特徴とするマイクロプロセッサを提供する。

【発明の詳細な説明】
【技術分野】
【0001】
(米国政府の持分に関する陳述)
この研究取組みは、AFRL契約F29601−00−K−0182の下のDARPA/ITOにより、NSFの補助金CCR−9701915、CCR−9702466、CCR−9705594、CCR−9811929、EIA−9972881、CCR−9988361及びEIA−0080124によって一部サポートされたものである。米国政府(米国)は本発明に対して一定の権利を有する。
(関連する出願への言及)
本出願は、2003年1月23日に出願された米国仮特許出願60/441,759の利益を主張するものであり、その仮出願による開示は参照されることにより本開示にそのまま盛り込まれる。
(本発明の技術分野)
本発明は、マイクロプロセッサ、特にマルチクロックドメインを有するマイクロプロセッサに関する。
【背景技術】
【0002】
より高性能なマイクロプロセッサのために費やされてきた絶間ない努力は、近年では、クロック周波数をかつてないほどに増加させてきた。Pentium(登録商標) IIIマイクロプロセッサは2000年に1GHzの障壁を打ち破ったが、現在ではPentium(登録商標) IVが2GHzで動作している。同時に、信頼性と性能の問題のため、ワイヤ寸法は連綿と続くプロセス世代においてトランジスタ寸法より保守的にスケールされてきた。これら周波数及び寸法に関するトレンドにより、マイクロプロセッサのクロックスピードがワイヤの開発遅れによってますます制限されるようになってきているので、例えばPentium(登録商標) IV(非特許文献14)のような近時のマイクロプロセッサの内の幾つかは、チップを横切って信号をやり取りすることに専ら向けられたパイプラインステージを有するようになっている。さらに、将来のシステムにおいて取り組まなければならないであろう課題は、減少するクロックスキューの制約に縛られながら、クロックを、増加する数のラッチに対して累進的に大きくなるダイを横切って分配するというものとなろう。産業研究者らによって達せられた不可避的結論は、現在のペースでクロック周波数を増加し続けるためには、マイクロプロセッサの設計者らは、非同期の何らかの形式を志向して単一クロックの大局的に同期なシステムを最終的に放棄せざるをえなくなるであろう、というものである(非特許文献8、24)。
【0003】
純粋な非同期方式は同期方式に比べ高性能及び低電力へと繋がるポテンシャルを有しているが、主要企業は非同期設計方法に完全に移行することを躊躇っている。この躊躇の主要な2つの理由は、同期ドメインの設計ツールに比べた非同期設計ツールの未熟さ、及び多世代に亘るマイクロプロセッサ製品を創造するために成功裡に用いられてきた成熟した設計インフラストラクチャから立ち去るコストとリスク、である。もっとも、多くの既存の同期設計は、実際には非同期性を限定的に組み込んでいる。たとえば、いくつかのマルチプロセッサシステムは、単一のシステムが異なる周波数のプロセッサに適応することを可能にするために、プロセッサコアと異なったクロックのメモリバスを使っている。そのような2クロックドメインのシステムにおいては、当該2つのクロックドメインの各々のロジックは、従来の同期式設計方法を用いて設計されている。馴染み深く高信頼性の技術が、超過遅れを犠牲にしてはいるものの、当該2つのドメイン間の通信を同期させるために使用されている。
【0004】
ワイヤスケーリングのジレンマから来る更なるトレンドは、長く大局的なワイヤを必要とするマイクロアーキテクチャ技術を、局所的なワイヤリングのみを必要とする行き方へと変換することである。このアプローチは、将来のプロセス世代における設計の、クロック周波数及びスケーラビリティの何れをも改善する。たとえば、Alpha21164、Alpha21264(非特許文献11、20)及びUltraSPARC III(非特許文献17)を含む幾つかのマイクロプロセッサにおいては、前にあるパイプラインステージをストールするための大局的ワイヤの使用は、命令を取り消してパイプラインを再開する再生トラップの使用によって代替された。このような方法でパイプラインをフラッシュすることはリロードするための追加的サイクルを必要とするが、それは大局的ワイヤの除去により、より高いクロック周波数とよりスケーラブルな実装に帰着する。Ultra SPARC IIIの設計者は、ユニット間の長いワイヤの殆どを除去するとともに、相互に相対的に独立して動作する6つの機能ブロックを創造することによって、このアプローチを完全に包み込んだ(非特許文献17)。
【0005】
括弧内で示された非特許文献の出所は以下のとおりである:
【非特許文献1】ディー・エイチ・アルボネシ「ダイナミックIPC/クロック周波数最適化」第25回コンピュータアーキテクチャに関する国際シンポジウム会報第282頁乃至第292頁、1998年6月(英語表記:D. H. Albonesi. Dynamic IPC/Clock Rate Optimization. Proceedings of the 25th International Symposium on Computer Architecture, pages 282−292, June 1998.)
【非特許文献2】エフ・ベロッサ「OSに関するダイナミック・パワー・マネジメントのためのプロセッサ動作の締付け」技術リポートTR−I4−3−99、アーランゲン大学コンピュータサイエンス学部(ドイツ)、1999年6月(英語表記:F. Bellosa. OS−Directed Throttling of Processor Activity for Dynamic Power Management. Technical ReportTR−I4−3−99, C.S. Dept., University of Erlangen, Germany, June 1999.)
【非特許文献3】エフ・ベロッサ「パワー・センシティブ方式におけるイベント駆動によるエネルギー・アカウンティングの効用」第9回ACM SIGOPS欧州ワークショップ会報、2000年9月(英語表記:F. Bellosa. The Benefits of Event−Driven Energy Accounting in Power−Sensitive Systems. In Proceedings of the 9th ACM SIGOPS European Workshop, Sept. 2000.)
【非特許文献4】エル・ベニーニ、エイ・ボグリオーロ、エス・カバルッチ、及びビー・リコ「OSに関するダイナミック・パワーマネジメントのためのモニタリングシステム活動」低電力エレクトロニクスとデザインに関する国際シンポジウム会報、1998年8月(英語表記:L. Benini, A. Bogliolo, S. Cavallucci, and B. Ricco. Monitoring System Activity for OS−directed Dynamic Power Management. In Proceedings of the International Symposium on Low−Power Electronics and Design, Aug. 1998.)
【非特許文献5】ディー・ブルックス、ヴィー・ティワリ及びエム・マートノシ「ウオッチ:アーキテクチャのレベル・パワー分析と最適化に関するフレームワーク」第27回コンピュータアーキテクチャに関する国際シンポジウム会報、2000年6月(英語表記:D. Brooks, V. Tiwari, and M. Martonosi. Wattch: A Frame−work for Architectural− Level Power Analysis and Optimizations. In Proceedings of the 27th International Symposium on Computer Architecture, June 2000.)
【非特許文献6】ディー・バーガー及びティー・オースティン「SimpleScalarツールセット・バージョン2.0」技術リポートCS−TR−97−1342、ウィスコンシン大学マディソン校(ウィスコンシン州)、1997年6月(英語表記:D. Burger and T. Austin. The Simplescalar Tool Set, Version 2.0. Technical Report CS−TR−97−1342, University of Wisconsin, Madison, Wisconsin, June 1997.)
【非特許文献7】ジェイ・カスミラ及びディー・グリュンワルド「スラックをスケジューリングするダイナミックな命令」第33回マイクロアーキテクチャに関する国際シンポジウム(MICRO−33)と共同開催されたクール・チップ・ワークショップの会報、2000年12月(英語表記:J. Casmira and D. Grunwald. Dynamic Instruction Scheduling Slack. In Proceedings of the Kool Chips Workshop, in conjunction with the 33rd International Symposium on Microarchitecture (MICRO−33), Dec. 2000.)
【非特許文献8】ビー・チャッペル「IC設計の先端技術」IEEEスペクトル第36巻第7号第30頁乃至第34頁、1999年7月(英語表記:B. Chappell. The fine art of IC design. IEEE Spectrum, 36(7):30−34, July 1999.)
【非特許文献9】ビー・アール・チルダーズ、エイチ・タン及びアール・メルヘム「命令レベル並列度に対するプロセッサ供給電圧の適応」マイクロアーキテクチャに関する第33回国際シンポジウム(MICRO−33)と共同開催されたクール・チップ・ワークショップの会報、2000年12月(英語表記:B. R. Childers, H. Tang, and R.Melhem. Adapting Processor Supply Voltage to Instruction−Level Parallelism. In Proceedings of the Kool Chips Workshop, in conjunction with the 33rd Internationall Symposium on Microarchitecture (MICRO−33), Dec. 2000.)
【非特許文献10】エル・ティー・クラーク「XScale(R)マイクロプロセッサの回路設計」VLSI回路に関する2001年シンポジウム、低電力且高性能マイクロプロセッサ回路の物理設計に関する短期講習、IEEEソリッドステート回路学会、2001年6月(英語表記:L. T. Clark. Circuit Design of XScale Microprocessors. In 2001 Symposium on VLSI Circuits, Short Course on Physical Design for Low−Power and High−Performance Microprocessor Circuits. IEEE Solid−State Circuits Society, June 2001.)
【非特許文献11】ジェイ・エイチ・エドモンドソン等「300MHz64ビット4発行CMOS RISCマイクロプロセッサであるAlpha 21164の内部機構」デジタル技術ジャーナル第7巻第1号(特別版)第119頁乃至第135頁、1995年(英語表記:J. H. Edmondson et al. Internal Organization of the Alpha 21164, a 300−MHz 64−bit Quad−issue CMOS RISC Microprocessor. Digital Technical Journal, 7(1):119−135,1995. Special Edition.)
【非特許文献12】ビー・フィールズ、エス・ルービン及びアール・ボディク「クリティカルパス予測を介したプロセッサポリシーの集中」第28回コンピュータアーキテクチャに関する国際シンポジウム会報、2001年7月(英語表記:B. Fields, S. Rubin, and R. Bodik. Focusing Processor Policies via Critical−Path Prediction. In Proceedings of the 28th International Symposium on Computer Architecture, July 2001.)
【非特許文献13】エム・フライシュマン「LongRun(R)のパワーマネジメント」技術リポート、トランスメタ株式会社、2001年1月(英語表記:M. Fleischmann. Longrun power management. Technical report, Transmeta Corporation, January, 2001.)
【非特許文献14】ピー・エヌ・グラスコースキー「Pentium(登録商標) 4プレヴュー(一部)」マイクロプロセッサ・リポート第14巻第8号1第11頁乃至第13頁、2000年8月(英語表記:P. N. Glaskowsky. Pentium(登録商標) 4 (Partially) Previewed. Microprocessor Report, 14(8):1,11−13, Aug. 2000.)
【非特許文献15】ケイ・ゴヴィル、イー・チャン及びエイチ・ワッサーマン「低電力CPUのダイナミックスピードセッティングに関するアルゴリズム比較」モバイルなコンピューティングとネットワーキングに関する第1回CM/IEEE国際会議会報、第13頁乃至第25頁、1995年11月(英語表記:K. Govil, E. Chang, and H. Wasserman. Comparing Algorithms for Dynamic Speed−Setting of a Low−Power CPU. In Proceedings of the 1st ACM/IEEE International Conference on Mobile Computing and Networking, pages 13−25, Nov. 1995.)
【非特許文献16】ティー・アール・ハーフィル「トランスメタ社−x86低電力の壁を打ち破る」マイクロプロセッサ・リポート第14巻第2号、2000年2月(英語表記:T. R. Halfhill. Transmeta breaks x86 low−power barrier. Microprocessor Report, 14(2), Feb. 2000.)
【非特許文献17】ティー・ホーレル及びジー・ローターバッハ「UltraSPARC III:第3世代64ビットパフォーマンスの設計」IEEEマイクロ第19巻第3号第73頁乃至第85頁、1999年5月/6月(英語表記:T. Horel and G. Lauterbach. UltraSPARC III: Designing Third−Generation 64−Bit Performance. IEEE Micro, 19(3):73−85, May/June 1999.)
【非特許文献18】シー・エイチ・スウ、ユー・クレマー及びエム・シャオ「コンパイラへのダイナミックな周波数と電圧のスケーリング」プログラミング言語とオペレーティングシステムのためのアーキテクチャサポートに関する第9回国際会議(ASPLOS−IX)での省電力コンピュータシステムに関するワークショップ会報、2000年11月(英語表記:C. −H. Hsu, U. Kremer, and M. Hsiao. Compiler−Directed Dynamic Frequency and Voltage Scaling. In Proceedings of the Workshop on Power−Aware Computer Systems, in conjunction with the 9th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS−IX), Nov. 2000.)
【非特許文献19】シー・ジェイ・ヒューズ、ジェイ・スリンヴァサン及びエス・ヴィー・アドゥヴ「アーキテクチャ及び周波数適応によるマルチメディア応用のためのエネルギー節約」第34会マイクロアーキテクチャ年次国際シンポジウム会報(MICRO−34)、2001年12月(英語表記:C. J. Hughes, J. Srinivasan, and S. V.Adve. Saving Energy with Architectural and Frequency Adaptations for Multimedia Applications. In Proceedings of the 34th annual International Symposium on Microarchitecture (MICRO−34), Dec. 2001.)
【非特許文献20】アール・イー・ケスラー、イー・ジェイ・マクレラン及びディー・エイ・ウェッブ「Alpha 21264マイクロプロセッサのアーキテクチャ」コンピュータ設計国際会議会報第90乃至第95頁、テキサス州オースティン、1998年10月、IEEEコンピュータ学会(英語表記:R. E. Kessler, E. J. McLellan, and D. A. Webb. The Alpha 21264 Microprocessor Architecture. In Proceedings of the International Conference on Computer Design, pages 90−95, Austin, Texas, Oct. 1998. IEEE Computer Society.)
【非特許文献21】エス・レイブソン「XScale(StrongArm−2)マッスル・イン」マイクロプロセッサ・リポート第14巻9号第7頁乃至第12頁、2000年9月(英語表記:S. Leibson. XScale (StrongArm−2) Muscles In. Microprocessor Report, 14 (9):7−12, Sept. 2000.)
【非特許文献22】ティー・リー及びシー・ディン「命令バランス、エネルギー消費及びプログラム性能」技術リポートUR−CS−TR−739、コンピュータサイエンス学部、ロチェスター大学、2000年12月、2001年2月改訂(英語表記:T. Li and C. Ding. Instruction Balance, Energy Consumption and Program Performance. Technical Report UR−CS−TR−739, Computer Science Dept., University of Rochester, Dec. 2000. Revised February 2001.)
【非特許文献23】ディー・マルクレスク「マイクロアーキテクチャ駆動ダイナミック電圧スケーリングの使用について」第27回コンピュータアーキテクチャ国際シンポジウムでの複雑で有効な設計に関するワークショップ会報、2000年6月(英語表記:D. Marculescu. On the Use of Microarchitecture−Driven Dynamic Voltage Scaling. In Proceedings of the Workshop on Complexity−Effective Design, in conjunction with the 27th International Symposium on Computer Architecture, June 2000.)
【非特許文献24】ディー・マツク「物理的スケーラビリティはパフォーマンスゲインを妨害するか」IEEEコンピュータ第30巻第9号第37頁乃至第39頁、1997年9月(英語表記:D. Matzke. Will Physical Scalability Sabotage Performance Gains? IEEE Computer, 30(9):37−39, Sept. 1997.)
【非特許文献25】ティー・ペリン、ティ・バード及びアール・ダブリュー・ブロダーセン「ダイナミック電圧スケーリングアルゴリズムのシミュレーションと評価」低電力エレクトロニクスと設計に関する国際シンポジウム会報、1998年8月(英語表記:T. Pering, T. Burd, and R. W. Brodersen. The Simulation and Evaluation of Dynamic Voltage Scaling Algorithms. In Proceedings of the International Symposium on Low− Power Electronics and Design, Aug. 1998.)
【非特許文献26】アール・ピレディー及びジー・タイソン「2倍速パイプライン内のトレードオフの評価デザイン」 第28回コンピュータアーキテクチャ国際シンポジウムでの複雑で有効な設計に関するワークショップ会報、2001年6月(英語表記:R. Pyreddy and G. Tyson. Evaluating Design Tradeoffs in Dual Speed Pipelines. In Proceedings of the Workshop on Complexity−Effective Design, in conjunction with the 28th International Symposium on Computer Architecture, June 2001.)
【非特許文献27】エル・エフ・ジー・サーメンタ、ジー・エイ・プラット及びエス・エイ・ウォード「合理的なクロッキング」コンピュータ設計国際会議会報、テキサス州オースティン、1995年10月(英語表記:L. F. G. Sarmenta, G. A. Pratt, and S. A. Ward. Rational Clocking. In Proceedings of the International Conference on Computer Design, Austin, Texas, Oct. 1995.)
【非特許文献28】エイ・イー・シェーグレン及びシー・ジェイ・マイヤーズ「高速パイプライン内の同期及び非同期モジュールの接続」VLSIの先端研究に関する第17回会議会報、第47頁乃至第61頁、ミシガン州アンナーバー、1997年9月(英語表記:A. E. Sjogren and C. J. Myers. Interfacing Synchronous and Asynchronous Modules Within A High−Speed Pipeline. In Proceedings of the 17th Conference on Advanced Research in VLSI, pages 47−61, Ann Arbor, Michigan, Sept. 1997.)
【非特許文献29】ジー・ソヒ「高性能で割込み可能な、マルチ機能ユニット、パイプライン処理採用コンピュータのための命令発行ロジック」コンピュータシステム上のACMトランザクション第39巻第3号第349頁乃至第359頁、1990年3月(英語表記:G. Sohi. Instruction Issue Logic for High−Performance Interruptible, Multiple Functional Unit, Pipelined Computers. ACM Transactions on Computer Systems, 39(3):349−359, Mar. 1990.)
【非特許文献30】TSMC社「TSMC技術ロードマップ」2001年7月(英語表記:TSMC Corp. TSMC Technology Roadmap, July 2001.)
【非特許文献31】エム・ウィーサー、エイ・ドゥメール、ビー・ウェルチ及びエス・シェンカー「削減されたCPUエネルギーのスケジューリング」第1回オペレーティングシステムの設計と実施に関するUSENIXシンポジウム会報、1994年11月(英語表記:M. Weiser, A. Demers, B. Welch, and S. Shenker. Scheduling for Reduced CPU Energy. In Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation, Nov. 1994.)
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の目的は、上記で言及された先行技術の欠点を克服することである。本発明の別の目的は、周波数が将来アグレッシブに増加することを許容し、同期式の設計方法を維持し、機能ブロックをより自律なものにする方向へのトレンドを活用する、アプローチを提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、請求項1に記載のマイクロプロセッサは、複数のクロックドメインを有するマイクロプロセッサであって、
複数のドメインと、
該複数のドメインの各々について、そのドメインのためのクロック信号を別々に生成するクロックと、
を備えたことを特徴とする。
【0008】
上記課題を解決するために、請求項2に記載のマイクロプロセッサは、前記クロックの各々は位相同期回路を備え、
外部で生成されたクロック信号を受信し、該外部で生成されたクロック信号を前記位相同期回路の各々に対して供給する手段を更に備えたことを特徴とする。
【0009】
上記課題を解決するために、請求項3に記載のマイクロプロセッサを作動させる方法は、マイクロプロセッサを作動させる方法であって、
該マイクロプロセッサに複数のドメインを提供するステップと、
該ドメインの各々を別々にクロッキングするステップと、
各ドメインが相互に非同期で動作する一方で、各ドメインが同期して動作するように該マイクロプロセッサを作動させるステップと、
を備えたことを特徴とする。
【発明を実施するための最良の形態】
【0010】
(発明の要約:Summary of the Invention)
本発明の目的は、上記で言及された先行技術の欠点を克服することである。本発明の別の目的は、アグレッシブな将来の周波数増加を許容し、同期式の設計方法を維持し、機能ブロックをより自律なものにする方向へのトレンドを活用する、アプローチを提供することである。
【0011】
上記及びその他の目的を達成するために、本発明はマルチクロックドメイン(MCD:multiple clock domain)のマイクロアーキテクチャに向けられる。ここに、MCDマイクロアーキテクチャとは、大局的に非同期で局所的に同期の(GALS:globally−asynchronous, locally−synchronous)クロッキング方式を用いるものである。MCDマイクロプロセッサでは、各機能ブロックは別々に生成されたクロックで作動し、同期回路は信頼性のあるドメイン間通信を保証する。したがって、完全同期の設計プラクティスが各ドメインの設計内で使用される。ドメイン間の同期化は所定のアプリケーションを実行するのに必要なクロックサイクル数を増加させるが、MCDマイクロプロセッサは単一でクロックされた設計に対して多くの潜在的な利点を与える。すなわち、
(イ)大局的なクロック分配ネットワークは、外部的に生成されたクロックを各ドメイン内の局所的な位相同期回路(PLL:Phase Lock Loop)へ分配することのみを必要とするので、非常に単純化される。各ローカルドメインクロックの独立は、将来のプロセス世代における、より大きなスケーラビリティ及び各ドメイン内での潜在的な高周波を許容するので、大局的なクロックスキュー要件をまったく含意しない。
(ロ)各ドメインの設計者は、複雑なハードウェア構造を介して、クロックスピードと、レイテンシと、アプリケーションの並列利用との間のトレードオフを最適化するための大きな自由度を各ドメイン内で与えられるので、他のドメインのクリティカルパスのスピードによってもはや束縛されない。
(ハ)各クロックドメインにおいて個別の電圧入力、外部電圧調整器及び制御可能なクロック周波数回路を使用することは、単一クロック、単一コア電圧システムで達成されるのと比べて、細粒度の高いダイナミックな電圧及び周波数スケーリング、したがってまた低エネルギーを可能にする。
(ニ)ダイナミックにストラクチャのサイズを組み直し、各ドメインのクロックスピードを変更することができることにより、IPC/クロック周波数トレードオフは個々のドメイン内のアプリケーション特性に適合され得(非特許文献1)、これによって性能とエネルギー効率の両方が改善される。
【0012】
本出願において、我々は、単一クロックの同期式ダイナミック・スーパースカラ設計の直接的拡張である、あるMCDマイクロプロセッサの初期実装について記述する。ドメイン間の同期化を正確にモデル化することによって、我々は、必要となる同期回路構成の性能及びエネルギーコストを特徴づける。その後我々は、ドメイン毎のダイナミックな電圧及び周波数スケーリングの潜在的利益を探究する。我々の成果は、計算及びメモリの両方に向けられたアプリケーションを含むベンチマークセットに関するエネルギー遅延積において、平均して20%の改善を示す。レートベースのマルチメディアアプリケーションと異なり、これらのベンチマークは電圧及び周波数スケーリングに対して伝統的に用いられてこなかった。
【0013】
我々は、マルチクロックドメイン(MCD)のマイクロアーキテクチャを開示するが、これは、所与のアプリケーションに対する性能及びエネルギー効率を最大化するために、ダイナミックな電圧及び周波数スケーリングとともに、全体的に非同期で局所的に同期の(GALS)クロッキング方式を用いるものである。我々の設計は、ドメイン間で同期化する必要性を最小化するという方法で異なるクロックドメインを分離するために、スーパースカラプロセッサコアの既存のキュー構造を使用する。
【0014】
標準的なベンチマークスイートから導き出された複数のアプリケーションに対するパフォーマンス結果は、プロセッサをマルチドメインに分割することにより、平均して4%未満のベースラインパフォーマンスコストが招来されることを示す。同時に、異なるドメインにおける周波数及び電圧をダイナミック且つ独立にスケーリングすることによって、我々は、エネルギー遅延積において平均して約20%の改善を達成することができる。対照的に、単一にクロックされたマイクロプロセッサにおける比較可能な性能劣化を達成するための大局的電圧スケーリングは、平均してたった3%のエネルギー遅延の改善を達成する。
【0015】
我々のここでの分析は、異なるドメインが周波数及び電圧を変更すべきプログラム内ポイントを決定するために、オフラインアルゴリズムを使用する。本発明の範囲内におけるバリエーションには、調整可能なオンチップの電圧及び周波数を低いレイテンシで伝えるアビリティに加え、フロントエンドを効率的にスケーリングするアプローチを含んだ、効率的なオンラインアルゴリズムが含まれる。
【0016】
次の論文は、該発明について記述するものであり、言及されることによって全体として本開示に盛り込まれる: セマラロ他「ダイナミックな電圧及び周波数スケーリングを備えたマルチクロックドメインを使用したエネルギー効率の良いプロセッサ設計」高性能コンピュータアーキテクチャ(HPCA:High Performance Computer Architecture)、2002年2月2日(英語表記:Semeraro et al, “Energy−Efficient Processor Design Using Multiple Clock Domains with Dynamic Voltage and Frequency Scaling,” High Performance Computer Architecture(HPCA), February 2,2002.)。
【0017】
(発明を実施するための最良の形態)
マツクは、テクノロジーが0.1μmフィーチュアサイズまで縮小すると、ダイの16%だけが単一クロックサイクル内で到達可能になるであろうと推測した(非特許文献24)。1ダイ当たり2つのプロセッサを備えたチップ・マルチプロセッサがあるとすると、各プロセッサは最低3つの等しいサイズのクロックドメインを有する必要があるであろう。好ましい実施形態は4つのドメインを使用し、内1つにはL2キャッシュが含まれているので、各ドメインは、サイズが多少異なって尚も単一クロックによってカバーされている。実質的に、我々は、主記憶インターフェースをMCDプロセッサの外部にある第5番目のクロックドメインとして扱い、それは常にフルスピードで作動している。
【0018】
ドメイン間の境界を選択する際、我々は、(a)異なるパイプライン機能を分離する役目を果たしたキュー構造が既に存在したか、又は(b)比較的に少ない機能間通信があったポイントを明らかにすることを試みた。図1のアーキテクチャ100の中で示されている我々の4つの選択ドメインは、フロントエンド110(命令キャッシュ112、フェッチユニット114、並びに分岐予測、リネーム、及びディスパッチ116を含む)と、整数演算/エクセキュート120(整数演算キュー122と、整数算術論理演算ユニット及びレジスタファイル124と、を含む)と、浮動小数点演算/エクセキュート130(浮動小数点演算キュー132と、浮動小数点算術論理演算ユニット及びレジスタファイル134と、を含む)と、ロード/ストア・演算/エクセキュート140(ロード/ストア・ユニット142と、L1Dキャッシュ144と、フロントエンド110のキャッシュ112及び主記憶インターフェース150と通信するL2キャッシュ146と、を含む)と、を備える。我々は当初、別個のロード/ストア及び整数ドメインを実装することによる性能インパクトについて関心を持っていたが、追加的同期ペナルティが性能を著しく低下させないことを発見した。さらに、我々は、リネーム/ディスパッチから命令フェッチを分離することからは省エネ効果がないことを発見したので、これらのドメイン間の同期化オーバヘッドを除去するために、それらの部分を単一のフェッチ/リネーム/ディスパッチドメインへと統合した。最後に、同じタイプのエクセキューションユニット(例えば整数ユニット)は、これらのユニット中のバイパスとレジスタファイルのデータパスを同期させる高いコストを回避するために、1つのドメインへと一体化された。これらの区分化の結果、マシンのパイプライン構成への明確な変更はなかった。我々はまた、このように区分することが、MCDプロセッサについての物理的に実現可能な基本設計になるだろうと考える。
【0019】
MCDプロセッサの主要な欠点は、ドメイン間同期による性能オーバヘッドである。このセクションにおいては、我々は、この同期を行なうのに必要な回路構成について議論する。我々は、そのパフォーマンスコストをモデル化する方法について、下記で議論する。
【0020】
いくつかの同期スキームは、クロックの位相関係と相対的周波数とを制限し、それによってハードウェア・アービトレーションの必要性をなくす(非特許文献27)。不幸なことに、これらのスキームは、周波数のあり得べき選択肢に対して、重要な制限を課す。加えて、クロックの位相関係を制御する必要性は、大局的なクロックによる同期化が必要であることを意味する。我々の設計は、全く知られていない位相関係を備えた独立したクロックに関連したオーバヘッドを、特に認識する。我々は、このオーバヘッドがMCDプロセッサにおいては避けられないと考える:当該設計を動機づける要因のうちの1つは、従来の全体的なクロック分配が今後は一層困難になるだろうという認識である。
【0021】
整数、浮動小数点、及びロード/ストアのドメイン内の演算キュー(ロード/ストア・ユニット内のロード/ストア・キュー)は、フロントエンド・ドメインのリオーダバッファ(ROB:Reorder Buffer)とともに、従来のプロセッサのフロントエンドとバックエンドとを分離する役目を果たす。これらのキューをドメイン間同期ポイントとして選択することは、(下記に述べられるように)キューがフルでもエンプティーでもない場合は常に同期化コストを隠蔽するという長所を有する。
【0022】
我々がドメイン間通信に使用する一般的なキュー構造が図2において示される。フルフラグのアサートは生産者に対してフラグがディアサートされる(フル・バー(フルの否定)となる)まで生産者がキューにもはや書き込むことができないということを示し、アサートされた場合のエンプティーフラグは消費者がキューから読むべき有効なデータがないことを示す。消費者は、再び読み出す前に、エンプティーがディアサートされるまで待つ。
【0023】
このインターフェースに関するフルハンドシェークプロトコルの使用は、書き込みすぎてキューがオーバランし又は空の(エンプティーな)キューから読み出すことを回避するために、生産者/消費者に対して各操作後にフル/エンプティーフラグをチェックすることを求める。この要求は、インターフェースを著しく遅くし、それによって性能を低下させる。もっと正確に言えば、我々は、ライト(信号)とリード(信号)がキューをオーバフロー又はアンダフローすることなくすべてのクロックサイクルで生じるように、フル及びエンプティーのフラグが十分に前もって生成されると考える。 換言すれば、フルフラグは、最後に残っているキューエントリがちょうど書き込まれた時に各々のサイクルでのライトのバーストが(生産者によってフルフラグのアサートが認識されることにより)終わるように、十分に早く生成される。類似した状況はキューの消費者サイドに存在する。もっとも、我々が後で議論するように、我々の特定のキューはこの点に関して異なる。このスキームは特定状況下ではキューを有効活用しないことに帰し得る、という点に注意が必要である。たとえば、フルフラグのアサートを伝えるライト信号がバーストの端部にあれば、次に生産者がキューに書き込むべきデータを有しているときには、(フルフラグがアサートされているであろうから)キューにエンプティーだけれども使用できないエントリが存在するであろう。
【0024】
キューの非有効活用を回避するために、我々は、キューエントリの当初数が完全に利用されるようにするために、最悪ケースの状況下でライト信号をバッファするための超過キューエントリを想定する。当該MCD設計において、該最悪ケースの状況は、生産者が最大周波数(max_freq) で作動し、 消費者が最小周波数(min_freq)で作動する場合に生じる。異なるクロックドメインからのキューのヘッドとテイルのポインタを、フル及びエンプティーフラグを生成するために比較する必要があるので、更に複雑となる。これらの状況の下で、また、生産者がフル信号を認識するための追加的なサイクルを仮定すると、(max_freq/min_freq)+1の追加的なエントリが必要になる。我々の結果は、これら追加エントリのパフォーマンス上の利点及びエネルギーコストを説明しない。
【0025】
各インターフェースに対する完全に独立したクロックでさえ、キュー構造は一定の状況の下で読み書きするためにフルスピードで作動することができる。この並列性は、同時的な読取り及び書込みサイクルが異なるSRAMセルへ許容されるデュアルポートのSRAM構造を必要とする。インターフェースがフルとエンプティーのフラグに関連したプロトコルに従うように設計されている限り、キュー構造は同一のSRAMセルへ同時に読み書きすることをサポートしなくてよい。キューがフルでない限り(上記のように)、生産者はクロック(図3)のすべての立ち上りエッジでデータを書き続けることができる。同様に、キューがエンプティーでない限り、消費者はクロックのすべての立ち上りエッジで読み続けることができる。したがって、新しく書き込まれたエントリは同期ピリオドの後まで消費者によって認識されないであろうが、両インターフェースはキューが部分的にフルな限りフルスピードで作動する。一旦キューがフルになれば、キューのフル・バー(フルの否定)の状態は、読み取りインターフェース上のキューから読まれているデータのみから導かれ得る。このイベントが生じる場合、リードドメインのキューポインタは、フルをディアサートするために、ライトドメインのクロック(クロック)と同期が取られなければならない。類似した非同期遅延が、エンプティーであるキューへの書込みによるエンプティー・バー(エンプティーの否定)条件の生成によって生じる。
【0026】
我々が同期ポイントとして使用するキューの多くは、上に述べられたのとは異なるインターフェースを有している。演算キューについては、たとえば、各エントリは、エントリがリード(イシュー)されるべきかどうかを判断するためにスケジューラが使用する、有効(Valid)及び準備完了(Ready)フラグを有している。計画されたスケジューラは、キュー内の有効及び準備完了のエントリ数を超えて発行しないであろう。しかしながら、同期により、スケジューラが新しく書き込まれたキューデータを認識する前に遅延が存在するということに注意が必要である。クロックドメイン・インターフェースの行き来に関連した遅延は、以下の関数である:
(a)信号がデスティネーションで首尾よくラッチされるために、ソースとデスティネーションのクロック間で必要となる最小時間を意味する、クロックアービトレーション回路の同期時間Ts。我々は、ソース及びデスティネーションのクロックエッジがソースで生成された信号がデスティネーションで首尾よくクロックすることができるように十分に離れている(最低、Ts)かどうかを検知する、シェーグレン及びマイヤーズによって展開された(非特許文献28)、アービトレーション回路及び同期回路を想定する。デスティネーションクロックはこれらの状況の下でのみイネーブルされる。我々は、最高周波数のピリオドの30%のTsを仮定する。
(b)インターフェースクロックの周波数比率。
(c)インターフェースクロックの相対的なフェーズ。
【0027】
この遅延は、ソースクロックF1とデスティネーションクロックF2を示すタイミングチャート(図4)を検討することにより、より良く理解され得る。キューは初めにエンプティーであるとする。データは、F1の立上りエッジ(エッジ1)でキューに書き込まれる。データは、次のF2の立上りエッジで直ちにキューから読み出され得る。T≦Tsである場合、データが読み出され得ることとなる最先は、1F2周期期間後(エッジ3)である。この超過遅延は、同期による性能劣化の1つの根源を表わす。Tの値は、クロックソースの相対的なジターに加えてFIとF2の相対的周波数とフェーズによっても決定され、時間が経つにつれて頻繁に変わり得る。同期化コストは、TとTsの関係、及び程度は低いがTsの大きさ、によってコントロールされる。類似した状況は、上記議論におけるエンプティーをフルに、エッジ1をエッジ2に、エッジ3をエッジ4に置換することで、キューがフルな場合に存在する。
【0028】
下記に述べる我々のシミュレータは、ドメイン間オーバヘッドを正確に説明する。
【0029】
我々のシミュレーションのテストベッドは、Wattch(非特許文献5)の電力評価エクステンションを備えたSimpleScalarツールセット(非特許文献6)に基づく。元々のSimpleScalarモデルは集中化されたレジスタ・アップデート・ユニット(RUU:Register Update Unit)を使用してアウトオブオーダ実行をサポートする(非特許文献29)。我々は、このストラクチャを、Alpha21264マイクロプロセッサのマイクロアーキテクチャ(非特許文献20)にもっと近接してモデルするために、修正した。具体的には、我々は、RUUを、別個のリオーダバッファ(ROB)、演算キュー及び物理レジスタファイルストラクチャに分けた。我々のシミュレーション・パラメータの概要が表1に示されている。
【0030】
【表1】

【0031】
我々は、MediaBench、Olden及びSPEC2000ベンチマークスイートから、計算向け、メモリ向け及びマルチメディアのアプリケーションの混合を選んだ。表2は、シミュレートされた命令のウィンドウとともに使用されるベンチマークを示す。我々は、adpcm、epic、及びg721のエンコード及びデコードフェーズについて、並びにmesaのmipmap、osdemo、及びtexgenフェーズについての一体化された統計を示す。
【0032】
【表2】

【0033】
ベースラインプロセッサとして、我々は、近く投入されるTSMCの低電力0.1μmプロセスCL010LP(非特許文献30)に基づいて、1GHzクロックで1.2V供給電圧を想定する。ダイナミックな電圧及び周波数スケーリングを備えた構成について、我々は、1GHzから250MHzまでの線形範囲を測る32個の周波数ポイントを想定する。これらの周波数ポイントに対応するのは、1.2Vから0.65Vまでの直線的な電圧範囲である。Wattchにおいて、Wattchが2.0Vの供給電圧を想定するので、我々は、2.0−1.0833Vの範囲を使用することにより1.2−0.65Vの電圧範囲の影響をシミュレートする。供給電圧がスレショルド電圧に比例して積極的にスケーリングされ続けるときの将来世代における電圧範囲の圧縮(compression)を反映して、我々の電圧範囲はXScaleのそれ(1.65−0.75V)よりタイトである。加えて、周波数範囲の最大幅は、電圧範囲の最大幅の2倍である。我々が下記で実証するように、これらの要因は、従来のダイナミックな電圧及び周波数スケーリングで達成することができる節約電力量を制限する。
【0034】
我々は、ダイナミックな電圧及び周波数スケーリングに関して2つのモデルを想定する。すなわち、XScaleモデルとTransmetaモデルであり、これらはそれぞれの会社から公表された情報(非特許文献10、13)に基づく。これら両モデルに関し、我々は、所望電圧が周波数を増加させるよりも前に最初に達せられていなければならない一方で、より低い周波数及び電圧に移行する場合に周波数変化が直ちに伝えられ得ると想定する。Transmetaモデルについては、我々は、1ステップ当たり20μsの電圧調整時間で28.6mV間隔の、合計32個の別個の電圧段階を想定する。周波数変化は、再ロックするためのPLLを必要とする。それを行うまで、ドメインは使用されていないままである。我々は、PLLを、平均時間15μsで10−20μsの範囲のノーマルに分散されたロック回路としてモデル化する。XScaleモデルについては、我々は、電圧が変化すると直ちに周波数変化が生じる、つまり、電圧が変化されるのに合わせて周波数も追従して変化される、と想定する。PLLを待っている使用されていないドメインがあるため、ペナルティは全くない。すなわち、回路は該変化を通って実行する。滑らかな変化に近づけるために、我々は、ある段階から次の段階へ移行するのに0.1718μs必要な、各2.86mVの320段階を使用する。全電圧範囲を横断するには、Transmetaモデルでは640μs、XScaleモデルでは55μsが必要である。
【0035】
プロセッサ再構成の決定(時間、周波数及び電圧の選択)は、静的分析、オンライン統計、又はフィードバックに基づいたプロファイリングから集められた情報を使用することにより、ハードウェア、ソフトウェア又はその2つの一定の組合せにおいて、原則的になされる。当座の研究目的のために、我々は、アルゴリズムがどのようなものであるかということを必ずしも決めないで、幾つかの高品質管理アルゴリズムで達成されるかもしれないエネルギー節約を明らかにすることを試みた。より具体的には、我々は、アプリケーションの全速実行の際に集められたトレースを分析するオフラインツールを使用して、実行時間を著しく増加させることなく、該実行の様々の部分の間に様々のドメインによって使用されたに違いない最小の周波数及び電圧を測定することを試みた。これら周波数及び電圧−並びにそれらが適用されたに違いない時間−のリストは、その後、エネルギーとパフォーマンスの正確な評価を得るために、第2コースのダイナミックなスケーリングランにおいて我々のプロセッサシミュレータへフィードバックされる。
【0036】
この実験方法が現実的なオンライン制御アルゴリズムによって達成されるであろう利点を過大評価又は過小評価するのかは、不明確である:我々のフィードバックに基づいたシステムは原則として将来の知識を使用できるが、それは最適であると証明されているわけではない:良好のオンライン戦略が、考え得るところではより良く振舞うのかもしれない。該方法が提供するものは、存在することの証明である:我々の分析ツールによって選択された周波数及び電圧によって、下記に述べられるエネルギー節約を実現できることが予期されよう。
【0037】
続く2つのサブセクションはそれぞれ、再構成ポイントを選択するために使用される、我々のマルチクロックドメインシミュレータ及び分析ツールについて記述する。
【0038】
マルチクロックドメインの欠点は、あるドメインで生成され他のドメインで必要とされるデータがドメインの境界を横断しなければいけないという点であり、これはセクション2において記述されたような同期コストを潜在的に招来する。同期コストを正確にモデルするために、我々は、クロックにおける変動である独立ジターをサイクル毎にモデル化することによって、各ドメインを動作させるクロックが独立であるという事実を説明する。我々のモデルは、平均が0であるジターの正規分布を想定する。標準偏差は110psであり、100psの外部の位相同期回路(PLL)ジターと(利用可能なICの調査に基づいている)、内部PLLによる10psとから成る。これらの値は、共通の外部100MHzクロック源から生成された1GHzのオンチップクロックを想定する。外部クロックの共通使用にもかかわらず、局所的クロック源が独立であるので、個々のドメイン内のクロックスキューは、ドメイン間ペナルティを計算する際の要因でない。
【0039】
我々のシミュレータは、スケーリングファクターとジター値に基づいて、サイクル毎にドメインクロックの全ての関係を追跡する。最初に、全てのクロックは、それらのスタート時間に関してランダム化される。あるドメインにおける次のクロックパルスの時間を決定するために、ドメインサイクル時間がスタート時間に加えられ、そのサイクルについてのジター(それは正の値かもしれないしあるいは負の値かもしれない)が該分配から得られ、この合計に加えられる。全てのドメインについてこの計算をサイクル毎に行なうことによって、全てのクロックエッジ間の関係が追跡される。このようにして、我々はT>Tsの関係の崩れ又はドメイン間のクロック周波数差により、同期コストを正確に説明することができる。
【0040】
すべての構成について、我々は、すべての回路は、使用されていない時にはクロックがゲートされている(クロックゲーテッドされている)ものと想定する。我々は、すべてのチップラッチに対して低スキューのクロックを供給する従来のグローバルクロック分配ツリーがないことによる、(削減されたスキューに起因する)電力節減やクロック周波数アドバンテージを、現段階では評価しない。
【0041】
所与のアプリケーションにおけるダイナミックスケーリングに対する時間及び値を選択するために、我々の再構成ツールは、アプリケーションを該シミュレータ上で最高速度で実行することで始まる。この初期動作中に、我々は、すべての原始的イベント(単一クロックドメインにおけるハードウェアによって単一命令のために行なわれる時間的に連続するオペレーション)のトレースと、これらイベント間の機能的依存及びデータ依存のトレースとを収集する。たとえば、メモリ命令(ロード/ストア)は5つのイベントに分割される。すなわち、フェッチ、ディスパッチ、アドレス計算、メモリアクセス、及びコミットの5つのイベントに分割される。データ依存は、これらのイベントを経時的にリンクする。機能依存は、各イベントを、同一のハードウェアユニットを使用するところの(異なる命令における)前後のイベントにリンクする。追加的機能依存は、フェッチキュー、発行キュー及びリオーダバッファのような、サイズが限定された構造を捕捉する。フェッチキューにおいては、たとえば、kがキューのサイズである場合、イベントnはイベントn−kに依存する。
【0042】
我々は、50Kサイクル間隔毎の依存有向非循環グラフ(DAG:directed acyclic graph)を構築するために、トレース情報を使用する。(この間隔の長さは、DAGが我々のシミュレーションサーバ上でキャッシュに入る最大となるべく選択された。)一旦DAGが構築されたならば、我々は2つの更なる分析フェーズを経る。第1フェーズは、入力としてDAGを使用し、そのワークを1つの間隔に閉じ込める。その目的は、アプリケーションのクリティカル実行パス上にない個々のイベントを、あたかもより低い周波数で命令毎に実行されたかのように、「ストレッチする」(スケールする)ことである。最終フェーズは、第1フェーズからの要約統計を使用して、複数の間隔を、それぞれに関して一様なクロック周波数により、より大きな連続する期間へクラスタする。
【0043】
依存DAGにおけるイベントが2つ以上の入射矢印を有している場合、常に、ある矢印がクリティカルパスを構成し、他の矢印が「スラック」を有しているであろう−実際にそうであろう。このスラックは、直前のオペレーションが余裕をもって終わったことを意味する。イベントの出射矢印のすべてがスラックを有している場合、我々には、当該イベントをより低い周波数及び電圧で行なうことによりエネルギーを節約するための(0コストスケーリングを想定する)機会がある。DAGの中の各イベントについて、我々は、Wattchにおけるパラメータによって測定されているような、デフォルト値が対応するクロックドメインの相対的な電力消費量に基づく電力因子を関連づけて考える。我々がイベントをストレッチする場合、我々はその電力因子を相応してスケールする。計算は、相関的な方式に基づいて、すなわちエネルギーがクロック周波数の2乗に比例するという仮定に基づいてなされる。我々の再構成ツールのストレッチするフェーズは、スラックとスケールエッジをできるだけ一様に分配するために、「シェーカ」アルゴリズムを使用する。SimpleScalarが、任意の実際のプロセッサと同様に、依存及びハザードの影響を受け易いイベントをできるだけ早く実行するので、スラックは元の実行トレースの非クリティカルパスの端部に常に現われる。そのシェーカアルゴリズムは、50Kサイクル間隔の端部でそのようにして始まり、DAGを通って後方にワークする。出射エッジがすべてスラックを有しているイベントにそれが遭遇すると、該シェーカは、そのイベントの電力因子が、グラフ内の任意のイベントの最大電力を僅かに下回るように最初にセットされた一定の閾値を越えるかどうかチェックする。もしそうであれば(これが高電力のイベントであれば)、該シェーカは、それが利用可能なスラックをすべて消費するか又はその電力因子が現在の閾値を下回るまで、該イベントをスケールする。スラックが残っていると、該イベントはそのうち動かされ、その結果、可能な限りのスラックがその入射エッジに移動される。それがDAGの始まりに達したとき、該シェーカは、方向を転じて少しだけその電力閾値を弱め、高電力のイベントをスケールしスラックを出射エッジに動かしながら、DAGを通って新しいパスを前にする。それは、DAG上を前と後ろに行ったり来たりしてその電力閾値を毎回引き下げるそのプロセスを、利用可能なスラックがすべて消費されるか、又はスラックエッジに隣接するすべてのイベントが当初の周波数の4分の1までスケールダウンされるまで繰り返す。所与の50Kのサイクル間隔について作業を終えると、該シェーカは、各クロックドメインの要約ヒストグラムを構築する。各ヒストグラムは、XScaleモデルの320個の周波数段階(当該2つのモデルに関する段階の最高数である)の各々について、その周波数で又はその周波数近くで作動するためにスケールされた、該ドメイン及び間隔での該イベントについてのサイクル総数を示す。
【0044】
不幸なことに、イベント間の依存に関してフロントエンドのビヘイビアを捕捉するのが困難であることが判明する。たとえば、浮動小数点ドメインにおける加算の開始及び終了間の時間と異なり、フェッチとディスパッチとの間の時間は一定数のサイクルでない。加えて、手動で選択された再構成ポイントでの実験は、フロントのスケーリングが他のドメインをスケーリングした場合程に有益であることが滅多にないことを示唆した。そこで、我々は、フロントを安定した1GHzで実行し、他の3つのドメインにおけるイベントについてのみ当該シェーカアルゴリズムを適用することにした。フロントエンドがチップエネルギーの合計の20%を典型的には占めるので、この選択は、我々が得るであろうエネルギー改善が残りの80%からもたらされるに相違ないことを示唆する。フロントエンドについて取り組む将来の試みは、ここで報告されるよりも大きな節約を与えるであろう。
【0045】
我々のオフライン分析ツールの最後のクラスタリングフェーズは、同時的な命令に基づいて周波数が変化できないことを認識する。それはまた、一定の性能劣化を可能にする。シェーカによって生成されたヒストグラムを使用して、我々は、各クロックドメインと間隔について、ドメインがその作業をdパーセント(ここに、dは当該分析に対するパラメータである。)の時間遅延なく終えることを可能にする最小周波数fを計算する。より具体的には、我々は、(Transmetaに関する32個の可能な値とXScaleに関する320個の可能な値とから)周波数を、それらのイベントを選択された周波数で実行するのに必要な余分な時間の、ヒストグラムのより高いビン内のすべてのイベントに対する合計が、該間隔の長さのdパーセントよりも小さいか又は等しくなるように選択する。この計算は近似の必要による。それは、ドメイン内のILPを無視する:すなわち、それは、同一ドメイン内の別々のイベントの遅延が蓄積作用を有するであろうと想定する。同時に、それはドメイン間の殆どの依存を無視する:すなわち、それは、異なるドメインのイベントの遅延が独立するであろうと想定する。この規則の例外として、我々は、ロード/ストア・ドメインのイベントを、整数ドメインのヒストグラムに加える。この特別のケースは、メモリ動作が高い場合に、実行アドレス計算が迅速に生じることを保証する。殆どのアプリケーションについて、該所要時間遅延評価は、合理的正確性があることが判明する:図5−図7及び図8A−図9Bは、dと概略的に一致する(MCDベースラインに対する)性能劣化を示す。
【0046】
シェーカアルゴリズムは再構成が同時的で自由であると想定するのに対して、クラスタリングアルゴリズムは再構成時間及びコストをモデル化しなければならない。所与のドメインの各隣接した組の間隔について、それは、ヒストグラムをビン毎に併合し、我々がより大きな一体化された間隔を単一周波数で実行することを可能にする最小周波数を計算する。Transmeta電力モデルについては、我々は、遅すぎるイベント(too−slow event)の時間遅延と間隔境界で再構成するのに必要な時間との合計が、実行時間の合計のdパーセントを超過しないことを要求する。それが1つの再構成を除去するので、Transmetaモデル下の間隔の併合は、我々が一体化された間隔をより低い周波数及び電圧で実行することを往々に可能とし、これによってエネルギーが節約される。XScaleモデル下の併合の殆どは、隣接する間隔が同一の又は同一に近い目標周波数を有している場合に生じる。クラスタリングアルゴリズムは、併合を、エネルギーの見地から有益な限り反復的に行ない続ける。
【0047】
併合を終えた場合、クラスタリングアルゴリズムは、目標時間で目標周波数及び電圧に達するために、再構成が開始されなければならない時間を計算する。たとえば、利用可能な間隔より(電圧を下げるか上げる時間のため)長くかかる周波数の大きな振動により再構成が可能でない場合、再構成は回避される。Transmetaモデルにおける遷移は1電圧レベル当たり20μsを要するので、短い間隔を大きな周波数変化に適応させることができなくなる。当該アルゴリズムは、アプリケーションが種々のドメインの周波数及び電圧の変化を有益に要求することができた時を明示するログファイルを書き込むことにより、その作業を終える。このファイルはその後、第2のダイナミックな構成ランでプロセッサシミュレータによって読み取られる。
【0048】
このセクションにおいて、我々は、MCDマイクロアーキテクチャの性能、エネルギー、及びエネルギー遅延積を、従来の単一にクロックされたシステムのそれらと比較する。ベースライン構成は、ダイナミックな電圧又は周波数スケーリングのない、単一クロックの1GHzのAlpha21264に類似のシステムである。そのベースラインMCD構成は、上記で述べられたように4つのクロックドメインへ分割されるが、全てのクロックの周波数は1GHzに静的にセットされる。この構成は、ドメイン間同期の性能及びエネルギーコストを計量するのに役立つ。ダイナミック1%及びダイナミック5%構成は、それらが各クロックドメイン内のダイナミックな電圧及び周波数スケーリングをサポートするという点を除き、ベースラインMCDと同一である。そのダイナミック1%の場合のために、我々のオフライン再構成ツールのクラスタリングフェーズは、1%の性能劣化のターゲット(ベースラインMCDのそれを凌ぐ)を使用し;ダイナミックな5%の場合のために、それは、5%のターゲットを使用する。最後に、大局的構成は、該ベースライン構成を、その単一の電圧及び周波数のダイナミックスケーリングを加味することによってモデル化し、マルチクロックドメインの利点を計量する役目をする。
【0049】
該大局的場合についての周波数は、ダイナミック5%構成の全体的性能劣化と等しくなるようにセットされ、その電圧は相応して小さくされる。大局のエネルギー節減は、削減された周波数及び電圧値を使用してSimpleScalar及びWattchの下で各アプリケーションを実行することにより計算される。このアプローチは、同一レベルの性能劣化の下で、MCDアプローチのエネルギー節減が、従来の電圧及び周波数スケーリングのそれと比較されることを可能にする。我々は、該大局的構成のエネルギー結果の正確性チェックを、該Wattch結果を、電圧比率の2乗に比例してスケールされた該ベースライン構成の該エネルギーの単純な計算と比較することにより行ない、該結果が2%以内に収まることを発見した。
【0050】
図5、図6及び図7は、電圧及び周波数スケーリングのXScaleモデル下における、ベースラインMCD、該ベースライン構成に関するダイナミック1%構成、ダイナミック5%構成、及び大局的構成の、性能劣化、エネルギー節減及びエネルギー×遅延変化を示す。Transmetaモデルは、XScaleモデルに比べて遥かに有望でない結果をもたらした。Transmetaモデル下ではPLLを再ロックするのに約15μsが必要となるので、再構成は、XScaleモデルの下での再構成と比べると有益であることが滅多になく、エネルギー改善の程度は遥かに小さい。我々は、XScaleの結果についてより詳細に議論した後、TransmetaとXScaleのモデルの比較に戻ることにする。
【0051】
電圧又は周波数スケーリングのないマルチクロックドメインを単に使用する該ベースラインMCD設計は、1.5%の平均エネルギーコストとともに、4%未満の平均性能劣化を示す。エネルギー遅延積に関して示された結果は、−adpcmについて10%、−全体として5%に近づく。該アルゴリズムによってもたらされるオーバヘッドのすべては、このベースラインMCDのオーバヘッドに直接に付け加わるということに注意されたい。たとえば、平均的ダイナミック5%の性能オーバヘッドは、約10%又は凡そベースラインMCDに加えて5%の該目標劣化が付与されたときに期待されるであろうもの、である。
【0052】
我々の2番目の観察は、該大局的アプローチの全体的なエネルギー節減が、その性能劣化に類似しており、16個のベンチマークに亘って平均すると12%未満となる、ということである。周波数及び電圧の両方が同じパーセンテージだけ線形的に削減された場合、性能は周波数とともに線形的に減少するが、エネルギーは電圧とともに2乗的に減少するので、この結果は幾分直観に反している。しかしながら、我々のモデルでは、周波数の4重の変化(1GHzから250MHzまで)が、電圧の2重未満の変化となる(Wattchにおいて2.0Vから1.0833Vとしてモデルされたような、1.2Vから0.65Vまで)ことを思い出されたい。上記で議論したように、この相違は、電圧がスレショルド電圧に対してスケールダウンされ、且つ周波数がスケールアップされたように、連綿と続くプロセス世代における周波数範囲に対する電圧範囲の圧縮によるものである。電圧カーブの傾斜は周波数カーブの傾斜と比べると、電圧削減のエネルギー上の2乗効果を大幅に縮小しつつ、非常に緩やかとなった。
【0053】
該MCDアプローチは、対照的に、該ベースライン構成に対して、比較的マイナーな全体的性能劣化とともに、顕著なエネルギー及びエネルギー×遅延の改善を達成する。たとえば、ダイナミック5%構成は、ベースライン構成と比べると、XScaleモデル下で16個のベンチマークに亘って10%未満の性能劣化を招来する一方で、平均して27%の全体的エネルギーの縮小及び20%のエネルギー×遅延の改善を達成する。エネルギー節約を犠牲にして性能劣化をより厳格に抑えようとするダイナミック1%アルゴリズムは、このゴールを達成するために多くのエネルギー節約をトレードオフし、およそ13%のエネルギー×遅延の改善に帰着する。そうではあるが、これは、該大局的アプローチで得られた3%のエネルギー×遅延改善を、尚も遥かに超えている。
【0054】
いくつかの場合において、レイテンシをキャッシュミスの背後に隠蔽する機会は、実際の性能劣化を、該ダイナミックアルゴリズムによって選択された周波数から予期されるであろうものに比べて著しく小さくすることを可能にする。特に、L1データキャッシュミスに関連するスラックは、我々の再構成ツールが整数及び浮動小数点ドメインを全体的性能に顕著な影響を与えることなくスケールすることを、これらのドメインの利用が高い場合でさえ、しばしば可能とする(利用可能なILPがミスレイテンシを完全に隠蔽するには十分ではないという事実による)。第2レベルキャッシュが同一ドメイン内にあるので、ロード/ストア・ドメインは、ミスにできるだけ迅速に仕えるために、もちろん高周波で作動し続けなければならない(我々が多くのレベル−2キャッシュを同様に有する場合は別)。ミスの影響は、gccにおいてみることができる(ダイナミック1%)。キャッシュミス割合は高く(12.5%)、整数ドメインの平均周波数は約920MHzまで落ちるが、トータルでの性能劣化は1%未満である。
【0055】
対照的に、分岐予測ミスは、ダイナミックなスケーリングをする機会を提供しない。すなわち、分岐を分析するために展開された依存鎖は、整数ドメイン、そして時にはロード/ストア・ドメインの重要な周波数縮小を、排除する。高い分岐予測ミス割合を伴うアプリケーションは、周波数の減少に従って性能劣化を示すであろう。この効果はswimで見ることができる。エネルギー節約は、性能劣化をかろうじて超える。(ここでもまた、浮動小数点ドメインは、高利用のために高周波のままでいなければならない。)
【0056】
該ダイナミックアルゴリズムは、g721における大局的電圧スケーリングに関して最も貧弱に機能する。これは、整数及びロード/ストア・ドメインの高利用、低キャッシュミス割合、低分岐誤予測割合、及び高ベースラインMCDオーバヘッドという、程よくバランスがとられた命令ミックスを備えた整数ベンチマークである。そのIPCは比較的高く(2超)、整数及びロード/ストア・ドメインはこれを保持するために最高速度近くで動作しなければならない。浮動小数点ドメインは勿論250MHzまでスケールバックされ得るが、他のドメインにおける高動作レベルのため、結果として生じるエネルギー節約は、他の整数アプリケーションの殆どにおけるそれと比べると、プロセッサエネルギー全体の僅かでしかない。
【0057】
図5−7をTransmetaスケーリングモデルの下での対応する結果(ここでは示されていない)と比較することで、我々は、XScaleモデルによって我々が所与のレベルの性能劣化に関し著しく高いエネルギー節約を達成することができることを知った。この結果の理由は図8A及び図8Bにおいて図示されており、これらは、1%の目標性能劣化とともに、我々の再構成ツールによってartベンチマークの30msの間隔について選択された周波数設定を示す。図8A及び図8Bを比較する際には、XScaleモデル(図8B)の下では、我々が、より多くの振動数を変化させることができ、かつそれらの変化を広範囲の周波数に及ぼすことができる、という点に注意されたい。特に、artは浮動小数点に集中的なアプリケーションであるが、そこには我々が浮動小数点ドメインを安全にスケールバックする際の多くの命令間隔がある。その10−20μsのPLL再ロックペナルティがあるため、Transmetaモデルは、我々がこの比較的短期間のビヘイビアを捕捉することを可能にしない。
【0058】
図9A及び図9Bは、Transmeta及びXScaleの両モデル下で、全16個のアプリケーションにおける我々のオフライン再構成ツールによって選択された間隔についての要約統計を示す。それらの図は、Transmeta及びXScaleの再構成データに対するダイナミック5%構成について、そのオフラインツールによって選択された間隔での要約統計をそれぞれ示す。四角い棒は、整数、ロード・ストア、及び浮動小数点のドメインについて、100万命令当りに必要となる再構成の数を示す。その棒の上にあるポイントは、それらのドメインについて選択された平均周波数を示す。「エラーバー」は、これが示された場合、ドメインについてのダイナミック周波数の範囲を示す。整数、ロード・ストア、及び浮動小数点のドメインについて選択された平均周波数は、その2つのグラフにおいて類似しているが、再構成の総数はTransmetaモデル下で遥かに少なく、周波数範囲はより狭い。
【0059】
図8A乃至図9Bはすべて、異なるクロックドメインにおいて異なる周波数を使用する値を図示する。つまり、これらの周波数を独立して制御することによって、我々は、それほど性能クリティカルでないドメインを積極的にスケールする一方で、性能に対してクリティカルなドメインにおいて必要周波数を維持することができる。浮動小数点ドメインは特に、少なからぬ数の浮動小数点演算を含んでいる幾つかのアプリケーションを含め、多くのアプリケーションにおいて最低の利用可能な周波数にスケールバックされ得る。しかしながら、クロック・ゲーティングのため、浮動小数点ドメインは多くの場合整数プログラムにとってエネルギー散逸の最大の源ではないということに注意が必要である。すなわち、整数ドメインは多くの場合最大のソースであり、したがって、そのドメイン電圧を適度に調節することでさえかなりのエネルギー節約をもたらす。さらに、ダイナミックスケーリングがスタティックな電力をも引き下げることが予期されるものの、我々はエネルギー節約への対応する寄与を計量していない。(クリティカルなプロセッサ状態を保存/回復するための適切なサポートが付与されたならば)ダイナミック電圧ゲーティングは追加的な節約を達成するかもしれないし、将来の研究にとって有望なアベニューと映るかもしれない。
【0060】
いくつかのメーカー、特にインテル(非特許文献21)とTransmeta(非特許文献16)は、大局的でダイナミックな周波数及び電圧のスケーリングが可能なプロセッサを開発した。最小動作電圧が周波数にほぼ比例し、電力が電圧の2乗にほぼ比例するので、このダイナミックなスケーリングは、プロセッサが全体として過剰設計されているリアルタイムの制約を備えたアプリケーションにおける重要な恩恵となり得る:たとえば動画のレンダリング。マルクレスク(非特許文献23)及びスウ等(非特許文献18)は、キャッシュミスをトリガーとして使用する性能の最小ロスにより、チップ全体のダイナミック電圧の使用を評価した(非特許文献23)。他の研究(非特許文献7、26)もまた、エネルギーを節約するために、プログラム内のスケジューリング・スラックを活用するように異なるスピードで静的に動くパイプライン又は機能ユニットへ命令を導くことに関心を抱くようになった。我々の貢献は、マルチクロックドメインを備えたマイクロプロセッサが、現行のアプリケーション・フェーズのクリティカルパスに大きく寄与していないドメインの周波数及び電圧を引き下げることにより、性能に重大な影響を与えることなく、様々の異なるアプリケーション上の電力消費量を削減する機会を提供するということを、実証することである。
【0061】
ゴヴィル等(非特許文献15)及びウィーサー等(非特許文献31)は、プロセッサの利用に基づいてCPUスピードを調節するための、間隔ベースのストラテジーについて述べる。その目的は、タスク完了時間を著しく遅らせることなくプロセッサを100%利用された状態にしておくことを試みることにより、エネルギー消費を引き下げることである。直前の間隔での利用に基づいた履歴は、作業量を予測し、これによって作業残りのない最大利用がされるようにスピードを調節するために使用される。ペリン等(非特許文献25)は、リアルタイム及びマルチメディアのアプリケーションに対して類似した原理を適用する。同様にヒューズ等(非特許文献19)は、ミスされたフレームデッドラインを低い割合で許容しつつプロセッサのグローバルな電圧及び周波数をダイナミックに変化させるために、フレームベースのマルチメディアアプリケーションについての命令数予測を使用する。ベロッサ(非特許文献2、3)は、冷却及び電池寿命の両目的ためにエネルギー消費を制御するべく、エネルギー使用パターンをすべてのプロセスに関連させるスキームについて述べる。プロセス・プライオリティに加えてキャッシュ及びメモリのビヘイビアも、該エネルギー制御法を働かせるために、入力として使用される。ベニーニ等(非特許文献4)は、システム活動を監視し、システム電力を司るOSモジュールに対して情報を提供するシステムを示す。彼らは、ディスクを低電力モードとするために用いられた閾値アイドル時間のセットの仕方を実証するために、このモニタリングシステムを使用する。我々の研究は、アプリケーションのクリティカルパス上にないプロセッサの部分のみを遅くすることを我々が試みる点で異なるものである。
【0062】
フィールズ等(非特許文献12)は、我々のものに類似した依存グラフを使用するが、アプリケーションのクリティカルパスを明らかにするために、そのグラフは性急に構築されている。彼らの目的は、クラスタ化されたアーキテクチャにおいて指令している命令を改善し、クリティカルな命令に対してのみ選択的にそれを適用することにより予測値を改善することである。我々は、非クリティカルなプログラムパスを遅くするために、我々のオフライングラフを用いる。リー等(非特許文献22)は、プログラムとマシンの両方が完全に調整可能であると想定して、エネルギー消費の理論的下限を探究する。すべてのハードウェアコンポーネントにおいて等しいエネルギー散逸を想定して、彼らは、すべてのコンポーネント上にバランスの取られた負荷を備えたプログラムが、大きく加重されたプログラムよりも少ないエネルギーを消費することを示す。
【0063】
チルダーズ等(非特許文献9)は、IPCとクロック周波数とをトレードすることを提案する。ユーザは(MIPSで表現された)システムから特定の質のサービスを要求し、プロセッサは、IPCをモニターして周波数及び電圧を相応して調節するために、間隔ベースの方法を使用する。彼らの研究において、高IPCのプロセスは低クロック周波数で動作し、低IPCのプロセスは高クロック周波数で動作するであろうが、これは、幾つかのアプリケーションに対して要求されるところに反する(例えば、低IPCが高いミス割合による場合)。我々の技術は、最小エネルギーで最大性能を提供するために、全くの反対を達成するように機能する。
【0064】
本発明の好ましい実施形態は上述されたが、当該技術に対して技術知識を有し本開示を精査した者は、本発明の範囲内において他の実施形態が実現可能であることを認識するであろう。たとえば、数値及び製作技術は、制限するためのものでなく説明のためのものである。また、4つのドメインが開示されたが、それよりも多い又は少ない数のドメインとともに、異なる数のドメイン間境界によって、プロセッサを実装することも可能である。その他の可能な本発明の変形は、上記に示されている。したがって、本発明は、添付された特許請求の範囲によってのみ制限されるものとして解釈されなければならない。
【図面の簡単な説明】
【0065】
【図1】図1は、マルチクロックドメインを有するプロセッサのブロック図を示すものである。
【図2】図2は、キュー構造を示すものである。
【図3】図3は、フルフラグを示すものである。
【図4】図4は、同期するタイミングを示すものである。
【図5】図5は、性能劣化の結果を示すものである。
【図6】図6は、エネルギー節約の結果を示すものである。
【図7】図7は、エネルギー遅延の改善結果を示すものである。
【図8A】図8A(及び図8B)は、Transmeta及びXScaleに関するダイナミック1%構成のための我々のオフラインアルゴリズムによって生成された、artについての周波数変化を、それぞれ示すものである。
【図8B】(図8A及び)図8Bは、Transmeta及びXScaleに関するダイナミック1%構成のための我々のオフラインアルゴリズムによって生成された、artについての周波数変化を、それぞれ示すものである。
【図9A】図9A(及び図9B)は、Transmeta及びXScaleの再構成データに関するダイナミック5%構成のためのオフラインツールによって選択された間隔についての要約統計を、それぞれ示すものである。
【図9B】(図9A及び)図9Bは、Transmeta及びXScaleの再構成データに関するダイナミック5%構成のためのオフラインツールによって選択された間隔についての要約統計を、それぞれ示すものである。
【符号の説明】
【0066】
110 フロントエンド(複数のドメインの1つ)
120 整数演算/エクセキュート(複数のドメインの1つ)
130 浮動小数点演算/エクセキュート(複数のドメインの1つ)
140 ロード/ストア・演算/エクセキュート(複数のドメインの1つ)
150 メインメモリ(複数のドメインの1つ)

【特許請求の範囲】
【請求項1】
複数のクロックドメインを有するマイクロプロセッサであって、
複数のドメインと、
該複数のドメインの各々について、そのドメインのためのクロック信号を別々に生成するクロックと、
を備えたことを特徴とするマイクロプロセッサ。
【請求項2】
前記クロックの各々は位相同期回路を備え、
外部で生成されたクロック信号を受信し、該外部で生成されたクロック信号を前記位相同期回路の各々に対して供給する手段を更に備えたことを特徴とする請求項1記載のマイクロプロセッサ。
【請求項3】
マイクロプロセッサを作動させる方法であって、
該マイクロプロセッサに複数のドメインを提供するステップと、
該ドメインの各々を別々にクロッキングするステップと、
各ドメインが相互に非同期で動作する一方で、各ドメインが同期して動作するように該マイクロプロセッサを作動させるステップと、
を備えたことを特徴とするマイクロプロセッサを作動させる方法。
【特許請求の範囲】
【請求項1】
複数のクロックドメインを有するマイクロプロセッサであって、
複数のドメインと、
該複数のドメインの各々について、そのドメインのためのクロック信号を、該複数のドメインの内の他のものについて生成されたクロック信号の周波数から独立してダイナミックに変化可能な周波数で、別々に生成するクロックと、
該複数のドメインの各々について、該複数のドメインの内の前記他のものに対して適用された電圧から独立してダイナミックに変化可能な電圧を受け取る電圧入力と、
を備えたことを特徴とするマイクロプロセッサ。
【請求項2】
前記クロックの各々は位相同期回路を備え、
外部で生成されたクロック信号を受信し、該外部で生成されたクロック信号を前記位相同期回路の各々に対して供給する手段を更に備えたことを特徴とする請求項1記載のマイクロプロセッサ。
【請求項3】
少なくとも4つの前記ドメインがあることを特徴とする請求項1記載のマイクロプロセッサ。
【請求項4】
該ドメインの1つにおいて処理する際のスラックを測定し、該スラックを削減するために該ドメインの前記1つにおけるクロック周波数及び電圧を削減するようにプログラムされたことを特徴とする請求項1記載のマイクロプロセッサ。
【請求項5】
該ドメインの少なくとも2つの間のコミュニケーションのためのキューを更に備えたことを特徴とする請求項1記載のマイクロプロセッサ。
【請求項6】
該キューはフルフラグ及びエンプティーフラグを有し、
該フルフラグがアサートされている場合に該フルフラグがディアサートされるまで該キューに対する書込みを防止し、該エンプティーフラグがアサートされている場合に該エンプティーフラグがディアサートされるまで該キューからの読込みを防止するようにプログラムされたことを特徴とする請求項5記載のマイクロプロセッサ。
【請求項7】
該キューはデュアルポートのSRAMとして実装されていることを特徴とする請求項6記載のマイクロプロセッサ。
【請求項8】
マイクロプロセッサを作動させる方法であって、
(a)該マイクロプロセッサに複数のドメインを提供するステップと、
(b)該ドメインの各々をあるクロック周波数で別々にクロッキングするステップと、
(c)該ドメインの各々に対して別々にある電圧を適用するステップと、
(d)各ドメインが相互に非同期で動作する一方で、各ドメインが同期して動作するように該マイクロプロセッサを作動させるステップと、
(e)該複数のドメインの各々におけるクロック周波数及び電圧を、該複数のドメインの内の他のものにおけるクロック周波数及び電圧から独立してダイナミックにコントロールするステップと、
を備えたことを特徴とするマイクロプロセッサを作動させる方法。
【請求項9】
ステップ(e)は、
(i)該ドメインの1つにおける処理時のスラックを測定するステップと、
(ii)該スラックを削減するために、該ドメインの前記1つにおけるクロック周波数及び電圧を削減するステップと、
を備えたことを特徴とする請求項8記載の方法。
【請求項10】
ステップ(d)は、該ドメインの少なくとも2つの間のコミュニケーションのためのキューを提供するステップを備えたことを特徴とする請求項8記載の方法。
【請求項11】
該キューはフルフラグ及びエンプティーフラグを有し、
ステップ(d)は、
該フルフラグがアサートされている場合に該フルフラグがディアサートされるまで該キューに対する書込みを防止するステップと、
該エンプティーフラグがアサートされている場合に該エンプティーフラグがディアサートされるまで該キューからの読込みを防止するステップと、
を更に備えたことを特徴とする請求項10記載の方法。
【請求項12】
少なくとも4つの前記ドメインがあることを特徴とする請求項8記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9A】
image rotate

【図9B】
image rotate


【公表番号】特表2006−518064(P2006−518064A)
【公表日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願番号】特願2006−501098(P2006−501098)
【出願日】平成16年1月23日(2004.1.23)
【国際出願番号】PCT/US2004/001700
【国際公開番号】WO2004/066092
【国際公開日】平成16年8月5日(2004.8.5)
【出願人】(303036496)ユニバーシティー オブ ロチェスター (6)
【Fターム(参考)】