(57)【要約】【課題】  本発明は、周波数が将来アグレッシブに増加することを許容し、同期式の設計方法を維持し、機能ブロックをより自律なものにする方向へのトレンドを活用するような、複数のドメインを備えたマイクロプロセッサに関するアーキテクチャを構築すること。    【解決手段】  上記課題を解決するために、本発明は、複数のクロックドメインを有するマイクロプロセッサであって、複数のドメインと、該複数のドメインの各々についてそのドメインのためのクロック信号を別々に生成するクロックと、を備えたことを特徴とするマイクロプロセッサを提供する。
2006518064.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロックドメインを有するマイクロプロセッサであって、
複数のドメインと、
該複数のドメインの各々について、そのドメインのためのクロック信号を別々に生成するクロックと、
を備えたことを特徴とするマイクロプロセッサ。
【請求項２】
前記クロックの各々は位相同期回路を備え、
外部で生成されたクロック信号を受信し、該外部で生成されたクロック信号を前記位相同期回路の各々に対して供給する手段を更に備えたことを特徴とする請求項１記載のマイクロプロセッサ。
【請求項３】
マイクロプロセッサを作動させる方法であって、
該マイクロプロセッサに複数のドメインを提供するステップと、
該ドメインの各々を別々にクロッキングするステップと、
各ドメインが相互に非同期で動作する一方で、各ドメインが同期して動作するように該マイクロプロセッサを作動させるステップと、
を備えたことを特徴とするマイクロプロセッサを作動させる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（米国政府の持分に関する陳述）
この研究取組みは、ＡＦＲＬ契約Ｆ２９６０１−００−Ｋ−０１８２の下のＤＡＲＰＡ／ＩＴＯにより、ＮＳＦの補助金ＣＣＲ−９７０１９１５、ＣＣＲ−９７０２４６６、ＣＣＲ−９７０５５９４、ＣＣＲ−９８１１９２９、ＥＩＡ−９９７２８８１、ＣＣＲ−９９８８３６１及びＥＩＡ−００８０１２４によって一部サポートされたものである。米国政府（米国）は本発明に対して一定の権利を有する。
（関連する出願への言及）
本出願は、２００３年１月２３日に出願された米国仮特許出願６０／４４１，７５９の利益を主張するものであり、その仮出願による開示は参照されることにより本開示にそのまま盛り込まれる。
（本発明の技術分野）
本発明は、マイクロプロセッサ、特にマルチクロックドメインを有するマイクロプロセッサに関する。
【背景技術】
【０００２】
より高性能なマイクロプロセッサのために費やされてきた絶間ない努力は、近年では、クロック周波数をかつてないほどに増加させてきた。Ｐｅｎｔｉｕｍ（登録商標）  ＩＩＩマイクロプロセッサは２０００年に１ＧＨｚの障壁を打ち破ったが、現在ではＰｅｎｔｉｕｍ（登録商標）  ＩＶが２ＧＨｚで動作している。同時に、信頼性と性能の問題のため、ワイヤ寸法は連綿と続くプロセス世代においてトランジスタ寸法より保守的にスケールされてきた。これら周波数及び寸法に関するトレンドにより、マイクロプロセッサのクロックスピードがワイヤの開発遅れによってますます制限されるようになってきているので、例えばＰｅｎｔｉｕｍ（登録商標）  ＩＶ（非特許文献１４）のような近時のマイクロプロセッサの内の幾つかは、チップを横切って信号をやり取りすることに専ら向けられたパイプラインステージを有するようになっている。さらに、将来のシステムにおいて取り組まなければならないであろう課題は、減少するクロックスキューの制約に縛られながら、クロックを、増加する数のラッチに対して累進的に大きくなるダイを横切って分配するというものとなろう。産業研究者らによって達せられた不可避的結論は、現在のペースでクロック周波数を増加し続けるためには、マイクロプロセッサの設計者らは、非同期の何らかの形式を志向して単一クロックの大局的に同期なシステムを最終的に放棄せざるをえなくなるであろう、というものである（非特許文献８、２４）。
【０００３】
純粋な非同期方式は同期方式に比べ高性能及び低電力へと繋がるポテンシャルを有しているが、主要企業は非同期設計方法に完全に移行することを躊躇っている。この躊躇の主要な２つの理由は、同期ドメインの設計ツールに比べた非同期設計ツールの未熟さ、及び多世代に亘るマイクロプロセッサ製品を創造するために成功裡に用いられてきた成熟した設計インフラストラクチャから立ち去るコストとリスク、である。もっとも、多くの既存の同期設計は、実際には非同期性を限定的に組み込んでいる。たとえば、いくつかのマルチプロセッサシステムは、単一のシステムが異なる周波数のプロセッサに適応することを可能にするために、プロセッサコアと異なったクロックのメモリバスを使っている。そのような２クロックドメインのシステムにおいては、当該２つのクロックドメインの各々のロジックは、従来の同期式設計方法を用いて設計されている。馴染み深く高信頼性の技術が、超過遅れを犠牲にしてはいるものの、当該２つのドメイン間の通信を同期させるために使用されている。
【０００４】
ワイヤスケーリングのジレンマから来る更なるトレンドは、長く大局的なワイヤを必要とするマイクロアーキテクチャ技術を、局所的なワイヤリングのみを必要とする行き方へと変換することである。このアプローチは、将来のプロセス世代における設計の、クロック周波数及びスケーラビリティの何れをも改善する。たとえば、Ａｌｐｈａ２１１６４、Ａｌｐｈａ２１２６４（非特許文献１１、２０）及びＵｌｔｒａＳＰＡＲＣ  ＩＩＩ（非特許文献１７）を含む幾つかのマイクロプロセッサにおいては、前にあるパイプラインステージをストールするための大局的ワイヤの使用は、命令を取り消してパイプラインを再開する再生トラップの使用によって代替された。このような方法でパイプラインをフラッシュすることはリロードするための追加的サイクルを必要とするが、それは大局的ワイヤの除去により、より高いクロック周波数とよりスケーラブルな実装に帰着する。Ｕｌｔｒａ  ＳＰＡＲＣ  ＩＩＩの設計者は、ユニット間の長いワイヤの殆どを除去するとともに、相互に相対的に独立して動作する６つの機能ブロックを創造することによって、このアプローチを完全に包み込んだ（非特許文献１７）。
【０００５】
括弧内で示された非特許文献の出所は以下のとおりである：
【非特許文献１】ディー・エイチ・アルボネシ「ダイナミックＩＰＣ／クロック周波数最適化」第２５回コンピュータアーキテクチャに関する国際シンポジウム会報第２８２頁乃至第２９２頁、１９９８年６月（英語表記：Ｄ．  Ｈ．  Ａｌｂｏｎｅｓｉ．  Ｄｙｎａｍｉｃ  ＩＰＣ／Ｃｌｏｃｋ  Ｒａｔｅ  Ｏｐｔｉｍｉｚａｔｉｏｎ．  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２５ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  ｐａｇｅｓ  ２８２−２９２，  Ｊｕｎｅ  １９９８．）
【非特許文献２】エフ・ベロッサ「ＯＳに関するダイナミック・パワー・マネジメントのためのプロセッサ動作の締付け」技術リポートＴＲ−Ｉ４−３−９９、アーランゲン大学コンピュータサイエンス学部（ドイツ）、１９９９年６月（英語表記：Ｆ．  Ｂｅｌｌｏｓａ．  ＯＳ−Ｄｉｒｅｃｔｅｄ  Ｔｈｒｏｔｔｌｉｎｇ  ｏｆ  Ｐｒｏｃｅｓｓｏｒ  Ａｃｔｉｖｉｔｙ  ｆｏｒ  Ｄｙｎａｍｉｃ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ．  Ｔｅｃｈｎｉｃａｌ  ＲｅｐｏｒｔＴＲ−Ｉ４−３−９９，  Ｃ．Ｓ．  Ｄｅｐｔ．，  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｅｒｌａｎｇｅｎ，  Ｇｅｒｍａｎｙ，  Ｊｕｎｅ  １９９９．）
【非特許文献３】エフ・ベロッサ「パワー・センシティブ方式におけるイベント駆動によるエネルギー・アカウンティングの効用」第９回ＡＣＭ  ＳＩＧＯＰＳ欧州ワークショップ会報、２０００年９月（英語表記：Ｆ．  Ｂｅｌｌｏｓａ．  Ｔｈｅ  Ｂｅｎｅｆｉｔｓ  ｏｆ  Ｅｖｅｎｔ−Ｄｒｉｖｅｎ  Ｅｎｅｒｇｙ  Ａｃｃｏｕｎｔｉｎｇ  ｉｎ  Ｐｏｗｅｒ−Ｓｅｎｓｉｔｉｖｅ  Ｓｙｓｔｅｍｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ９ｔｈ  ＡＣＭ  ＳＩＧＯＰＳ  Ｅｕｒｏｐｅａｎ  Ｗｏｒｋｓｈｏｐ，  Ｓｅｐｔ．  ２０００．）
【非特許文献４】エル・ベニーニ、エイ・ボグリオーロ、エス・カバルッチ、及びビー・リコ「ＯＳに関するダイナミック・パワーマネジメントのためのモニタリングシステム活動」低電力エレクトロニクスとデザインに関する国際シンポジウム会報、１９９８年８月（英語表記：Ｌ．  Ｂｅｎｉｎｉ，  Ａ．  Ｂｏｇｌｉｏｌｏ，  Ｓ．  Ｃａｖａｌｌｕｃｃｉ，  ａｎｄ  Ｂ．  Ｒｉｃｃｏ．  Ｍｏｎｉｔｏｒｉｎｇ  Ｓｙｓｔｅｍ  Ａｃｔｉｖｉｔｙ  ｆｏｒ  ＯＳ−ｄｉｒｅｃｔｅｄ  Ｄｙｎａｍｉｃ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｌｏｗ−Ｐｏｗｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  ａｎｄ  Ｄｅｓｉｇｎ，  Ａｕｇ．  １９９８．）
【非特許文献５】ディー・ブルックス、ヴィー・ティワリ及びエム・マートノシ「ウオッチ：アーキテクチャのレベル・パワー分析と最適化に関するフレームワーク」第２７回コンピュータアーキテクチャに関する国際シンポジウム会報、２０００年６月（英語表記：Ｄ．  Ｂｒｏｏｋｓ，  Ｖ．  Ｔｉｗａｒｉ，  ａｎｄ  Ｍ．  Ｍａｒｔｏｎｏｓｉ．  Ｗａｔｔｃｈ：  Ａ  Ｆｒａｍｅ−ｗｏｒｋ  ｆｏｒ  Ａｒｃｈｉｔｅｃｔｕｒａｌ−  Ｌｅｖｅｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｏｐｔｉｍｉｚａｔｉｏｎｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２７ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  Ｊｕｎｅ  ２０００．）
【非特許文献６】ディー・バーガー及びティー・オースティン「ＳｉｍｐｌｅＳｃａｌａｒツールセット・バージョン２．０」技術リポートＣＳ−ＴＲ−９７−１３４２、ウィスコンシン大学マディソン校（ウィスコンシン州）、１９９７年６月（英語表記：Ｄ．  Ｂｕｒｇｅｒ  ａｎｄ  Ｔ．  Ａｕｓｔｉｎ．  Ｔｈｅ  Ｓｉｍｐｌｅｓｃａｌａｒ  Ｔｏｏｌ  Ｓｅｔ，  Ｖｅｒｓｉｏｎ  ２．０．  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＣＳ−ＴＲ−９７−１３４２，  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｗｉｓｃｏｎｓｉｎ，  Ｍａｄｉｓｏｎ，  Ｗｉｓｃｏｎｓｉｎ，  Ｊｕｎｅ  １９９７．）
【非特許文献７】ジェイ・カスミラ及びディー・グリュンワルド「スラックをスケジューリングするダイナミックな命令」第３３回マイクロアーキテクチャに関する国際シンポジウム（ＭＩＣＲＯ−３３）と共同開催されたクール・チップ・ワークショップの会報、２０００年１２月（英語表記：Ｊ．  Ｃａｓｍｉｒａ  ａｎｄ  Ｄ．  Ｇｒｕｎｗａｌｄ．  Ｄｙｎａｍｉｃ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｃｈｅｄｕｌｉｎｇ  Ｓｌａｃｋ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｋｏｏｌ  Ｃｈｉｐｓ  Ｗｏｒｋｓｈｏｐ，  ｉｎ  ｃｏｎｊｕｎｃｔｉｏｎ  ｗｉｔｈ  ｔｈｅ  ３３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｃｒｏａｒｃｈｉｔｅｃｔｕｒｅ  （ＭＩＣＲＯ−３３），  Ｄｅｃ．  ２０００．）
【非特許文献８】ビー・チャッペル「ＩＣ設計の先端技術」ＩＥＥＥスペクトル第３６巻第７号第３０頁乃至第３４頁、１９９９年７月（英語表記：Ｂ．  Ｃｈａｐｐｅｌｌ．  Ｔｈｅ  ｆｉｎｅ  ａｒｔ  ｏｆ  ＩＣ  ｄｅｓｉｇｎ．  ＩＥＥＥ  Ｓｐｅｃｔｒｕｍ，  ３６（７）：３０−３４，  Ｊｕｌｙ  １９９９．）
【非特許文献９】ビー・アール・チルダーズ、エイチ・タン及びアール・メルヘム「命令レベル並列度に対するプロセッサ供給電圧の適応」マイクロアーキテクチャに関する第３３回国際シンポジウム（ＭＩＣＲＯ−３３）と共同開催されたクール・チップ・ワークショップの会報、２０００年１２月（英語表記：Ｂ．  Ｒ．  Ｃｈｉｌｄｅｒｓ，  Ｈ．  Ｔａｎｇ，  ａｎｄ  Ｒ．Ｍｅｌｈｅｍ．  Ａｄａｐｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ  Ｓｕｐｐｌｙ  Ｖｏｌｔａｇｅ  ｔｏ  Ｉｎｓｔｒｕｃｔｉｏｎ−Ｌｅｖｅｌ  Ｐａｒａｌｌｅｌｉｓｍ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｋｏｏｌ  Ｃｈｉｐｓ  Ｗｏｒｋｓｈｏｐ，  ｉｎ  ｃｏｎｊｕｎｃｔｉｏｎ  ｗｉｔｈ  ｔｈｅ  ３３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｃｒｏａｒｃｈｉｔｅｃｔｕｒｅ  （ＭＩＣＲＯ−３３），  Ｄｅｃ．  ２０００．）
【非特許文献１０】エル・ティー・クラーク「ＸＳｃａｌｅ（Ｒ）マイクロプロセッサの回路設計」ＶＬＳＩ回路に関する２００１年シンポジウム、低電力且高性能マイクロプロセッサ回路の物理設計に関する短期講習、ＩＥＥＥソリッドステート回路学会、２００１年６月（英語表記：Ｌ．  Ｔ．  Ｃｌａｒｋ．  Ｃｉｒｃｕｉｔ  Ｄｅｓｉｇｎ  ｏｆ  ＸＳｃａｌｅ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ．  Ｉｎ  ２００１  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ  Ｃｉｒｃｕｉｔｓ，  Ｓｈｏｒｔ  Ｃｏｕｒｓｅ  ｏｎ  Ｐｈｙｓｉｃａｌ  Ｄｅｓｉｇｎ  ｆｏｒ  Ｌｏｗ−Ｐｏｗｅｒ  ａｎｄ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｃｉｒｃｕｉｔｓ．  ＩＥＥＥ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｓｏｃｉｅｔｙ，  Ｊｕｎｅ  ２００１．）
【非特許文献１１】ジェイ・エイチ・エドモンドソン等「３００ＭＨｚ６４ビット４発行ＣＭＯＳ  ＲＩＳＣマイクロプロセッサであるＡｌｐｈａ  ２１１６４の内部機構」デジタル技術ジャーナル第７巻第１号（特別版）第１１９頁乃至第１３５頁、１９９５年（英語表記：Ｊ．  Ｈ．  Ｅｄｍｏｎｄｓｏｎ  ｅｔ  ａｌ．  Ｉｎｔｅｒｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｏｆ  ｔｈｅ  Ａｌｐｈａ  ２１１６４，  ａ  ３００−ＭＨｚ  ６４−ｂｉｔ  Ｑｕａｄ−ｉｓｓｕｅ  ＣＭＯＳ  ＲＩＳＣ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ．  Ｄｉｇｉｔａｌ  Ｔｅｃｈｎｉｃａｌ  Ｊｏｕｒｎａｌ，  ７（１）：１１９−１３５，１９９５．  Ｓｐｅｃｉａｌ  Ｅｄｉｔｉｏｎ．）
【非特許文献１２】ビー・フィールズ、エス・ルービン及びアール・ボディク「クリティカルパス予測を介したプロセッサポリシーの集中」第２８回コンピュータアーキテクチャに関する国際シンポジウム会報、２００１年７月（英語表記：Ｂ．  Ｆｉｅｌｄｓ，  Ｓ．  Ｒｕｂｉｎ，  ａｎｄ  Ｒ．  Ｂｏｄｉｋ．  Ｆｏｃｕｓｉｎｇ  Ｐｒｏｃｅｓｓｏｒ  Ｐｏｌｉｃｉｅｓ  ｖｉａ  Ｃｒｉｔｉｃａｌ−Ｐａｔｈ  Ｐｒｅｄｉｃｔｉｏｎ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２８ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  Ｊｕｌｙ  ２００１．）
【非特許文献１３】エム・フライシュマン「ＬｏｎｇＲｕｎ（Ｒ）のパワーマネジメント」技術リポート、トランスメタ株式会社、２００１年１月（英語表記：Ｍ．  Ｆｌｅｉｓｃｈｍａｎｎ．  Ｌｏｎｇｒｕｎ  ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ．  Ｔｅｃｈｎｉｃａｌ  ｒｅｐｏｒｔ，  Ｔｒａｎｓｍｅｔａ  Ｃｏｒｐｏｒａｔｉｏｎ，  Ｊａｎｕａｒｙ，  ２００１．）
【非特許文献１４】ピー・エヌ・グラスコースキー「Ｐｅｎｔｉｕｍ（登録商標）  ４プレヴュー（一部）」マイクロプロセッサ・リポート第１４巻第８号１第１１頁乃至第１３頁、２０００年８月（英語表記：Ｐ．  Ｎ．  Ｇｌａｓｋｏｗｓｋｙ．  Ｐｅｎｔｉｕｍ（登録商標）  ４  （Ｐａｒｔｉａｌｌｙ）  Ｐｒｅｖｉｅｗｅｄ．  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｒｅｐｏｒｔ，  １４（８）：１，１１−１３，  Ａｕｇ．  ２０００．）
【非特許文献１５】ケイ・ゴヴィル、イー・チャン及びエイチ・ワッサーマン「低電力ＣＰＵのダイナミックスピードセッティングに関するアルゴリズム比較」モバイルなコンピューティングとネットワーキングに関する第１回ＣＭ／ＩＥＥＥ国際会議会報、第１３頁乃至第２５頁、１９９５年１１月（英語表記：Ｋ．  Ｇｏｖｉｌ，  Ｅ．  Ｃｈａｎｇ，  ａｎｄ  Ｈ．  Ｗａｓｓｅｒｍａｎ．  Ｃｏｍｐａｒｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｄｙｎａｍｉｃ  Ｓｐｅｅｄ−Ｓｅｔｔｉｎｇ  ｏｆ  ａ  Ｌｏｗ−Ｐｏｗｅｒ  ＣＰＵ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １ｓｔ  ＡＣＭ／ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍｏｂｉｌｅ  Ｃｏｍｐｕｔｉｎｇ  ａｎｄ  Ｎｅｔｗｏｒｋｉｎｇ，  ｐａｇｅｓ  １３−２５，  Ｎｏｖ．  １９９５．）
【非特許文献１６】ティー・アール・ハーフィル「トランスメタ社−ｘ８６低電力の壁を打ち破る」マイクロプロセッサ・リポート第１４巻第２号、２０００年２月（英語表記：Ｔ．  Ｒ．  Ｈａｌｆｈｉｌｌ．  Ｔｒａｎｓｍｅｔａ  ｂｒｅａｋｓ  ｘ８６  ｌｏｗ−ｐｏｗｅｒ  ｂａｒｒｉｅｒ．  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｒｅｐｏｒｔ，  １４（２），  Ｆｅｂ．  ２０００．）
【非特許文献１７】ティー・ホーレル及びジー・ローターバッハ「ＵｌｔｒａＳＰＡＲＣ  ＩＩＩ：第３世代６４ビットパフォーマンスの設計」ＩＥＥＥマイクロ第１９巻第３号第７３頁乃至第８５頁、１９９９年５月／６月（英語表記：Ｔ．  Ｈｏｒｅｌ  ａｎｄ  Ｇ．  Ｌａｕｔｅｒｂａｃｈ．  ＵｌｔｒａＳＰＡＲＣ  ＩＩＩ：  Ｄｅｓｉｇｎｉｎｇ  Ｔｈｉｒｄ−Ｇｅｎｅｒａｔｉｏｎ  ６４−Ｂｉｔ  Ｐｅｒｆｏｒｍａｎｃｅ．  ＩＥＥＥ  Ｍｉｃｒｏ，  １９（３）：７３−８５，  Ｍａｙ／Ｊｕｎｅ  １９９９．）
【非特許文献１８】シー・エイチ・スウ、ユー・クレマー及びエム・シャオ「コンパイラへのダイナミックな周波数と電圧のスケーリング」プログラミング言語とオペレーティングシステムのためのアーキテクチャサポートに関する第９回国際会議（ＡＳＰＬＯＳ−ＩＸ）での省電力コンピュータシステムに関するワークショップ会報、２０００年１１月（英語表記：Ｃ．  −Ｈ．  Ｈｓｕ，  Ｕ．  Ｋｒｅｍｅｒ，  ａｎｄ  Ｍ．  Ｈｓｉａｏ．  Ｃｏｍｐｉｌｅｒ−Ｄｉｒｅｃｔｅｄ  Ｄｙｎａｍｉｃ  Ｆｒｅｑｕｅｎｃｙ  ａｎｄ  Ｖｏｌｔａｇｅ  Ｓｃａｌｉｎｇ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｐｏｗｅｒ−Ａｗａｒｅ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ，  ｉｎ  ｃｏｎｊｕｎｃｔｉｏｎ  ｗｉｔｈ  ｔｈｅ  ９ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｒｃｈｉｔｅｃｔｕｒａｌ  Ｓｕｐｐｏｒｔ  ｆｏｒ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅｓ  ａｎｄ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  （ＡＳＰＬＯＳ−ＩＸ），  Ｎｏｖ．  ２０００．）
【非特許文献１９】シー・ジェイ・ヒューズ、ジェイ・スリンヴァサン及びエス・ヴィー・アドゥヴ「アーキテクチャ及び周波数適応によるマルチメディア応用のためのエネルギー節約」第３４会マイクロアーキテクチャ年次国際シンポジウム会報（ＭＩＣＲＯ−３４）、２００１年１２月（英語表記：Ｃ．  Ｊ．  Ｈｕｇｈｅｓ，  Ｊ．  Ｓｒｉｎｉｖａｓａｎ，  ａｎｄ  Ｓ．  Ｖ．Ａｄｖｅ．  Ｓａｖｉｎｇ  Ｅｎｅｒｇｙ  ｗｉｔｈ  Ａｒｃｈｉｔｅｃｔｕｒａｌ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ａｄａｐｔａｔｉｏｎｓ  ｆｏｒ  Ｍｕｌｔｉｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３４ｔｈ  ａｎｎｕａｌ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｃｒｏａｒｃｈｉｔｅｃｔｕｒｅ  （ＭＩＣＲＯ−３４），  Ｄｅｃ．  ２００１．）
【非特許文献２０】アール・イー・ケスラー、イー・ジェイ・マクレラン及びディー・エイ・ウェッブ「Ａｌｐｈａ  ２１２６４マイクロプロセッサのアーキテクチャ」コンピュータ設計国際会議会報第９０乃至第９５頁、テキサス州オースティン、１９９８年１０月、ＩＥＥＥコンピュータ学会（英語表記：Ｒ．  Ｅ．  Ｋｅｓｓｌｅｒ，  Ｅ．  Ｊ．  ＭｃＬｅｌｌａｎ，  ａｎｄ  Ｄ．  Ａ．  Ｗｅｂｂ．  Ｔｈｅ  Ａｌｐｈａ  ２１２６４  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｄｅｓｉｇｎ，  ｐａｇｅｓ  ９０−９５，  Ａｕｓｔｉｎ，  Ｔｅｘａｓ，  Ｏｃｔ．  １９９８．  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ．）
【非特許文献２１】エス・レイブソン「ＸＳｃａｌｅ（ＳｔｒｏｎｇＡｒｍ−２）マッスル・イン」マイクロプロセッサ・リポート第１４巻９号第７頁乃至第１２頁、２０００年９月（英語表記：Ｓ．  Ｌｅｉｂｓｏｎ．  ＸＳｃａｌｅ  （ＳｔｒｏｎｇＡｒｍ−２）  Ｍｕｓｃｌｅｓ  Ｉｎ．  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｒｅｐｏｒｔ，  １４  （９）：７−１２，  Ｓｅｐｔ．  ２０００．）
【非特許文献２２】ティー・リー及びシー・ディン「命令バランス、エネルギー消費及びプログラム性能」技術リポートＵＲ−ＣＳ−ＴＲ−７３９、コンピュータサイエンス学部、ロチェスター大学、２０００年１２月、２００１年２月改訂（英語表記：Ｔ．  Ｌｉ  ａｎｄ  Ｃ．  Ｄｉｎｇ．  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｂａｌａｎｃｅ，  Ｅｎｅｒｇｙ  Ｃｏｎｓｕｍｐｔｉｏｎ  ａｎｄ  Ｐｒｏｇｒａｍ  Ｐｅｒｆｏｒｍａｎｃｅ．  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＵＲ−ＣＳ−ＴＲ−７３９，  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  Ｄｅｐｔ．，  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｒｏｃｈｅｓｔｅｒ，  Ｄｅｃ．  ２０００．  Ｒｅｖｉｓｅｄ  Ｆｅｂｒｕａｒｙ  ２００１．）
【非特許文献２３】ディー・マルクレスク「マイクロアーキテクチャ駆動ダイナミック電圧スケーリングの使用について」第２７回コンピュータアーキテクチャ国際シンポジウムでの複雑で有効な設計に関するワークショップ会報、２０００年６月（英語表記：Ｄ．  Ｍａｒｃｕｌｅｓｃｕ．  Ｏｎ  ｔｈｅ  Ｕｓｅ  ｏｆ  Ｍｉｃｒｏａｒｃｈｉｔｅｃｔｕｒｅ−Ｄｒｉｖｅｎ  Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｓｃａｌｉｎｇ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｃｏｍｐｌｅｘｉｔｙ−Ｅｆｆｅｃｔｉｖｅ  Ｄｅｓｉｇｎ，  ｉｎ  ｃｏｎｊｕｎｃｔｉｏｎ  ｗｉｔｈ  ｔｈｅ  ２７ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  Ｊｕｎｅ  ２０００．）
【非特許文献２４】ディー・マツク「物理的スケーラビリティはパフォーマンスゲインを妨害するか」ＩＥＥＥコンピュータ第３０巻第９号第３７頁乃至第３９頁、１９９７年９月（英語表記：Ｄ．  Ｍａｔｚｋｅ．  Ｗｉｌｌ  Ｐｈｙｓｉｃａｌ  Ｓｃａｌａｂｉｌｉｔｙ  Ｓａｂｏｔａｇｅ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｇａｉｎｓ？  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ，  ３０（９）：３７−３９，  Ｓｅｐｔ．  １９９７．）
【非特許文献２５】ティー・ペリン、ティ・バード及びアール・ダブリュー・ブロダーセン「ダイナミック電圧スケーリングアルゴリズムのシミュレーションと評価」低電力エレクトロニクスと設計に関する国際シンポジウム会報、１９９８年８月（英語表記：Ｔ．  Ｐｅｒｉｎｇ，  Ｔ．  Ｂｕｒｄ，  ａｎｄ  Ｒ．  Ｗ．  Ｂｒｏｄｅｒｓｅｎ．  Ｔｈｅ  Ｓｉｍｕｌａｔｉｏｎ  ａｎｄ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｓｃａｌｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｌｏｗ−  Ｐｏｗｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  ａｎｄ  Ｄｅｓｉｇｎ，  Ａｕｇ．  １９９８．）
【非特許文献２６】アール・ピレディー及びジー・タイソン「２倍速パイプライン内のトレードオフの評価デザイン」  第２８回コンピュータアーキテクチャ国際シンポジウムでの複雑で有効な設計に関するワークショップ会報、２００１年６月（英語表記：Ｒ．  Ｐｙｒｅｄｄｙ  ａｎｄ  Ｇ．  Ｔｙｓｏｎ．  Ｅｖａｌｕａｔｉｎｇ  Ｄｅｓｉｇｎ  Ｔｒａｄｅｏｆｆｓ  ｉｎ  Ｄｕａｌ  Ｓｐｅｅｄ  Ｐｉｐｅｌｉｎｅｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｃｏｍｐｌｅｘｉｔｙ−Ｅｆｆｅｃｔｉｖｅ  Ｄｅｓｉｇｎ，  ｉｎ  ｃｏｎｊｕｎｃｔｉｏｎ  ｗｉｔｈ  ｔｈｅ  ２８ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  Ｊｕｎｅ  ２００１．）
【非特許文献２７】エル・エフ・ジー・サーメンタ、ジー・エイ・プラット及びエス・エイ・ウォード「合理的なクロッキング」コンピュータ設計国際会議会報、テキサス州オースティン、１９９５年１０月（英語表記：Ｌ．  Ｆ．  Ｇ．  Ｓａｒｍｅｎｔａ，  Ｇ．  Ａ．  Ｐｒａｔｔ，  ａｎｄ  Ｓ．  Ａ．  Ｗａｒｄ．  Ｒａｔｉｏｎａｌ  Ｃｌｏｃｋｉｎｇ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｄｅｓｉｇｎ，  Ａｕｓｔｉｎ，  Ｔｅｘａｓ，  Ｏｃｔ．  １９９５．）
【非特許文献２８】エイ・イー・シェーグレン及びシー・ジェイ・マイヤーズ「高速パイプライン内の同期及び非同期モジュールの接続」ＶＬＳＩの先端研究に関する第１７回会議会報、第４７頁乃至第６１頁、ミシガン州アンナーバー、１９９７年９月（英語表記：Ａ．  Ｅ．  Ｓｊｏｇｒｅｎ  ａｎｄ  Ｃ．  Ｊ．  Ｍｙｅｒｓ．  Ｉｎｔｅｒｆａｃｉｎｇ  Ｓｙｎｃｈｒｏｎｏｕｓ  ａｎｄ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｍｏｄｕｌｅｓ  Ｗｉｔｈｉｎ  Ａ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｐｉｐｅｌｉｎｅ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １７ｔｈ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｄｖａｎｃｅｄ  Ｒｅｓｅａｒｃｈ  ｉｎ  ＶＬＳＩ，  ｐａｇｅｓ  ４７−６１，  Ａｎｎ  Ａｒｂｏｒ，  Ｍｉｃｈｉｇａｎ，  Ｓｅｐｔ．  １９９７．）
【非特許文献２９】ジー・ソヒ「高性能で割込み可能な、マルチ機能ユニット、パイプライン処理採用コンピュータのための命令発行ロジック」コンピュータシステム上のＡＣＭトランザクション第３９巻第３号第３４９頁乃至第３５９頁、１９９０年３月（英語表記：Ｇ．  Ｓｏｈｉ．  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｉｓｓｕｅ  Ｌｏｇｉｃ  ｆｏｒ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｔｅｒｒｕｐｔｉｂｌｅ，  Ｍｕｌｔｉｐｌｅ  Ｆｕｎｃｔｉｏｎａｌ  Ｕｎｉｔ，  Ｐｉｐｅｌｉｎｅｄ  Ｃｏｍｐｕｔｅｒｓ．  ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ，  ３９（３）：３４９−３５９，  Ｍａｒ．  １９９０．）
【非特許文献３０】ＴＳＭＣ社「ＴＳＭＣ技術ロードマップ」２００１年７月（英語表記：ＴＳＭＣ  Ｃｏｒｐ．  ＴＳＭＣ  Ｔｅｃｈｎｏｌｏｇｙ  Ｒｏａｄｍａｐ，  Ｊｕｌｙ  ２００１．）
【非特許文献３１】エム・ウィーサー、エイ・ドゥメール、ビー・ウェルチ及びエス・シェンカー「削減されたＣＰＵエネルギーのスケジューリング」第１回オペレーティングシステムの設計と実施に関するＵＳＥＮＩＸシンポジウム会報、１９９４年１１月（英語表記：Ｍ．  Ｗｅｉｓｅｒ，  Ａ．  Ｄｅｍｅｒｓ，  Ｂ．  Ｗｅｌｃｈ，  ａｎｄ  Ｓ．  Ｓｈｅｎｋｅｒ．  Ｓｃｈｅｄｕｌｉｎｇ  ｆｏｒ  Ｒｅｄｕｃｅｄ  ＣＰＵ  Ｅｎｅｒｇｙ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １ｓｔ  ＵＳＥＮＩＸ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｄｅｓｉｇｎ  ａｎｄ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，  Ｎｏｖ．  １９９４．）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、上記で言及された先行技術の欠点を克服することである。本発明の別の目的は、周波数が将来アグレッシブに増加することを許容し、同期式の設計方法を維持し、機能ブロックをより自律なものにする方向へのトレンドを活用する、アプローチを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載のマイクロプロセッサは、複数のクロックドメインを有するマイクロプロセッサであって、
複数のドメインと、
該複数のドメインの各々について、そのドメインのためのクロック信号を別々に生成するクロックと、
を備えたことを特徴とする。
【０００８】
上記課題を解決するために、請求項２に記載のマイクロプロセッサは、前記クロックの各々は位相同期回路を備え、
外部で生成されたクロック信号を受信し、該外部で生成されたクロック信号を前記位相同期回路の各々に対して供給する手段を更に備えたことを特徴とする。
【０００９】
上記課題を解決するために、請求項３に記載のマイクロプロセッサを作動させる方法は、マイクロプロセッサを作動させる方法であって、
該マイクロプロセッサに複数のドメインを提供するステップと、
該ドメインの各々を別々にクロッキングするステップと、
各ドメインが相互に非同期で動作する一方で、各ドメインが同期して動作するように該マイクロプロセッサを作動させるステップと、
を備えたことを特徴とする。
【発明を実施するための最良の形態】
【００１０】
（発明の要約：Ｓｕｍｍａｒｙ  ｏｆ  ｔｈｅ  Ｉｎｖｅｎｔｉｏｎ）
本発明の目的は、上記で言及された先行技術の欠点を克服することである。本発明の別の目的は、アグレッシブな将来の周波数増加を許容し、同期式の設計方法を維持し、機能ブロックをより自律なものにする方向へのトレンドを活用する、アプローチを提供することである。
【００１１】
上記及びその他の目的を達成するために、本発明はマルチクロックドメイン（ＭＣＤ：ｍｕｌｔｉｐｌｅ  ｃｌｏｃｋ  ｄｏｍａｉｎ）のマイクロアーキテクチャに向けられる。ここに、ＭＣＤマイクロアーキテクチャとは、大局的に非同期で局所的に同期の（ＧＡＬＳ：ｇｌｏｂａｌｌｙ−ａｓｙｎｃｈｒｏｎｏｕｓ，  ｌｏｃａｌｌｙ−ｓｙｎｃｈｒｏｎｏｕｓ）クロッキング方式を用いるものである。ＭＣＤマイクロプロセッサでは、各機能ブロックは別々に生成されたクロックで作動し、同期回路は信頼性のあるドメイン間通信を保証する。したがって、完全同期の設計プラクティスが各ドメインの設計内で使用される。ドメイン間の同期化は所定のアプリケーションを実行するのに必要なクロックサイクル数を増加させるが、ＭＣＤマイクロプロセッサは単一でクロックされた設計に対して多くの潜在的な利点を与える。すなわち、
（イ）大局的なクロック分配ネットワークは、外部的に生成されたクロックを各ドメイン内の局所的な位相同期回路（ＰＬＬ：Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）へ分配することのみを必要とするので、非常に単純化される。各ローカルドメインクロックの独立は、将来のプロセス世代における、より大きなスケーラビリティ及び各ドメイン内での潜在的な高周波を許容するので、大局的なクロックスキュー要件をまったく含意しない。
（ロ）各ドメインの設計者は、複雑なハードウェア構造を介して、クロックスピードと、レイテンシと、アプリケーションの並列利用との間のトレードオフを最適化するための大きな自由度を各ドメイン内で与えられるので、他のドメインのクリティカルパスのスピードによってもはや束縛されない。
（ハ）各クロックドメインにおいて個別の電圧入力、外部電圧調整器及び制御可能なクロック周波数回路を使用することは、単一クロック、単一コア電圧システムで達成されるのと比べて、細粒度の高いダイナミックな電圧及び周波数スケーリング、したがってまた低エネルギーを可能にする。
（ニ）ダイナミックにストラクチャのサイズを組み直し、各ドメインのクロックスピードを変更することができることにより、ＩＰＣ／クロック周波数トレードオフは個々のドメイン内のアプリケーション特性に適合され得（非特許文献１）、これによって性能とエネルギー効率の両方が改善される。
【００１２】
本出願において、我々は、単一クロックの同期式ダイナミック・スーパースカラ設計の直接的拡張である、あるＭＣＤマイクロプロセッサの初期実装について記述する。ドメイン間の同期化を正確にモデル化することによって、我々は、必要となる同期回路構成の性能及びエネルギーコストを特徴づける。その後我々は、ドメイン毎のダイナミックな電圧及び周波数スケーリングの潜在的利益を探究する。我々の成果は、計算及びメモリの両方に向けられたアプリケーションを含むベンチマークセットに関するエネルギー遅延積において、平均して２０％の改善を示す。レートベースのマルチメディアアプリケーションと異なり、これらのベンチマークは電圧及び周波数スケーリングに対して伝統的に用いられてこなかった。
【００１３】
我々は、マルチクロックドメイン（ＭＣＤ）のマイクロアーキテクチャを開示するが、これは、所与のアプリケーションに対する性能及びエネルギー効率を最大化するために、ダイナミックな電圧及び周波数スケーリングとともに、全体的に非同期で局所的に同期の（ＧＡＬＳ）クロッキング方式を用いるものである。我々の設計は、ドメイン間で同期化する必要性を最小化するという方法で異なるクロックドメインを分離するために、スーパースカラプロセッサコアの既存のキュー構造を使用する。
【００１４】
標準的なベンチマークスイートから導き出された複数のアプリケーションに対するパフォーマンス結果は、プロセッサをマルチドメインに分割することにより、平均して４％未満のベースラインパフォーマンスコストが招来されることを示す。同時に、異なるドメインにおける周波数及び電圧をダイナミック且つ独立にスケーリングすることによって、我々は、エネルギー遅延積において平均して約２０％の改善を達成することができる。対照的に、単一にクロックされたマイクロプロセッサにおける比較可能な性能劣化を達成するための大局的電圧スケーリングは、平均してたった３％のエネルギー遅延の改善を達成する。
【００１５】
我々のここでの分析は、異なるドメインが周波数及び電圧を変更すべきプログラム内ポイントを決定するために、オフラインアルゴリズムを使用する。本発明の範囲内におけるバリエーションには、調整可能なオンチップの電圧及び周波数を低いレイテンシで伝えるアビリティに加え、フロントエンドを効率的にスケーリングするアプローチを含んだ、効率的なオンラインアルゴリズムが含まれる。
【００１６】
次の論文は、該発明について記述するものであり、言及されることによって全体として本開示に盛り込まれる：  セマラロ他「ダイナミックな電圧及び周波数スケーリングを備えたマルチクロックドメインを使用したエネルギー効率の良いプロセッサ設計」高性能コンピュータアーキテクチャ（ＨＰＣＡ：Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、２００２年２月２日（英語表記：Ｓｅｍｅｒａｒｏ  ｅｔ  ａｌ，  “Ｅｎｅｒｇｙ−Ｅｆｆｉｃｉｅｎｔ  Ｐｒｏｃｅｓｓｏｒ  Ｄｅｓｉｇｎ  Ｕｓｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｃｌｏｃｋ  Ｄｏｍａｉｎｓ  ｗｉｔｈ  Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ，”  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＨＰＣＡ），  Ｆｅｂｒｕａｒｙ  ２，２００２．）。
【００１７】
（発明を実施するための最良の形態）
マツクは、テクノロジーが０．１μｍフィーチュアサイズまで縮小すると、ダイの１６％だけが単一クロックサイクル内で到達可能になるであろうと推測した（非特許文献２４）。１ダイ当たり２つのプロセッサを備えたチップ・マルチプロセッサがあるとすると、各プロセッサは最低３つの等しいサイズのクロックドメインを有する必要があるであろう。好ましい実施形態は４つのドメインを使用し、内１つにはＬ２キャッシュが含まれているので、各ドメインは、サイズが多少異なって尚も単一クロックによってカバーされている。実質的に、我々は、主記憶インターフェースをＭＣＤプロセッサの外部にある第５番目のクロックドメインとして扱い、それは常にフルスピードで作動している。
【００１８】
ドメイン間の境界を選択する際、我々は、（ａ）異なるパイプライン機能を分離する役目を果たしたキュー構造が既に存在したか、又は（ｂ）比較的に少ない機能間通信があったポイントを明らかにすることを試みた。図１のアーキテクチャ１００の中で示されている我々の４つの選択ドメインは、フロントエンド１１０（命令キャッシュ１１２、フェッチユニット１１４、並びに分岐予測、リネーム、及びディスパッチ１１６を含む）と、整数演算／エクセキュート１２０（整数演算キュー１２２と、整数算術論理演算ユニット及びレジスタファイル１２４と、を含む）と、浮動小数点演算／エクセキュート１３０（浮動小数点演算キュー１３２と、浮動小数点算術論理演算ユニット及びレジスタファイル１３４と、を含む）と、ロード／ストア・演算／エクセキュート１４０（ロード／ストア・ユニット１４２と、Ｌ１Ｄキャッシュ１４４と、フロントエンド１１０のキャッシュ１１２及び主記憶インターフェース１５０と通信するＬ２キャッシュ１４６と、を含む）と、を備える。我々は当初、別個のロード／ストア及び整数ドメインを実装することによる性能インパクトについて関心を持っていたが、追加的同期ペナルティが性能を著しく低下させないことを発見した。さらに、我々は、リネーム／ディスパッチから命令フェッチを分離することからは省エネ効果がないことを発見したので、これらのドメイン間の同期化オーバヘッドを除去するために、それらの部分を単一のフェッチ／リネーム／ディスパッチドメインへと統合した。最後に、同じタイプのエクセキューションユニット（例えば整数ユニット）は、これらのユニット中のバイパスとレジスタファイルのデータパスを同期させる高いコストを回避するために、１つのドメインへと一体化された。これらの区分化の結果、マシンのパイプライン構成への明確な変更はなかった。我々はまた、このように区分することが、ＭＣＤプロセッサについての物理的に実現可能な基本設計になるだろうと考える。
【００１９】
ＭＣＤプロセッサの主要な欠点は、ドメイン間同期による性能オーバヘッドである。このセクションにおいては、我々は、この同期を行なうのに必要な回路構成について議論する。我々は、そのパフォーマンスコストをモデル化する方法について、下記で議論する。
【００２０】
いくつかの同期スキームは、クロックの位相関係と相対的周波数とを制限し、それによってハードウェア・アービトレーションの必要性をなくす（非特許文献２７）。不幸なことに、これらのスキームは、周波数のあり得べき選択肢に対して、重要な制限を課す。加えて、クロックの位相関係を制御する必要性は、大局的なクロックによる同期化が必要であることを意味する。我々の設計は、全く知られていない位相関係を備えた独立したクロックに関連したオーバヘッドを、特に認識する。我々は、このオーバヘッドがＭＣＤプロセッサにおいては避けられないと考える：当該設計を動機づける要因のうちの１つは、従来の全体的なクロック分配が今後は一層困難になるだろうという認識である。
【００２１】
整数、浮動小数点、及びロード／ストアのドメイン内の演算キュー（ロード／ストア・ユニット内のロード／ストア・キュー）は、フロントエンド・ドメインのリオーダバッファ（ＲＯＢ：Ｒｅｏｒｄｅｒ  Ｂｕｆｆｅｒ）とともに、従来のプロセッサのフロントエンドとバックエンドとを分離する役目を果たす。これらのキューをドメイン間同期ポイントとして選択することは、（下記に述べられるように）キューがフルでもエンプティーでもない場合は常に同期化コストを隠蔽するという長所を有する。
【００２２】
我々がドメイン間通信に使用する一般的なキュー構造が図２において示される。フルフラグのアサートは生産者に対してフラグがディアサートされる（フル・バー（フルの否定）となる）まで生産者がキューにもはや書き込むことができないということを示し、アサートされた場合のエンプティーフラグは消費者がキューから読むべき有効なデータがないことを示す。消費者は、再び読み出す前に、エンプティーがディアサートされるまで待つ。
【００２３】
このインターフェースに関するフルハンドシェークプロトコルの使用は、書き込みすぎてキューがオーバランし又は空の（エンプティーな）キューから読み出すことを回避するために、生産者／消費者に対して各操作後にフル／エンプティーフラグをチェックすることを求める。この要求は、インターフェースを著しく遅くし、それによって性能を低下させる。もっと正確に言えば、我々は、ライト（信号）とリード（信号）がキューをオーバフロー又はアンダフローすることなくすべてのクロックサイクルで生じるように、フル及びエンプティーのフラグが十分に前もって生成されると考える。  換言すれば、フルフラグは、最後に残っているキューエントリがちょうど書き込まれた時に各々のサイクルでのライトのバーストが（生産者によってフルフラグのアサートが認識されることにより）終わるように、十分に早く生成される。類似した状況はキューの消費者サイドに存在する。もっとも、我々が後で議論するように、我々の特定のキューはこの点に関して異なる。このスキームは特定状況下ではキューを有効活用しないことに帰し得る、という点に注意が必要である。たとえば、フルフラグのアサートを伝えるライト信号がバーストの端部にあれば、次に生産者がキューに書き込むべきデータを有しているときには、（フルフラグがアサートされているであろうから）キューにエンプティーだけれども使用できないエントリが存在するであろう。
【００２４】
キューの非有効活用を回避するために、我々は、キューエントリの当初数が完全に利用されるようにするために、最悪ケースの状況下でライト信号をバッファするための超過キューエントリを想定する。当該ＭＣＤ設計において、該最悪ケースの状況は、生産者が最大周波数（ｍａｘ＿ｆｒｅｑ）  で作動し、  消費者が最小周波数（ｍｉｎ＿ｆｒｅｑ）で作動する場合に生じる。異なるクロックドメインからのキューのヘッドとテイルのポインタを、フル及びエンプティーフラグを生成するために比較する必要があるので、更に複雑となる。これらの状況の下で、また、生産者がフル信号を認識するための追加的なサイクルを仮定すると、（ｍａｘ＿ｆｒｅｑ／ｍｉｎ＿ｆｒｅｑ）＋１の追加的なエントリが必要になる。我々の結果は、これら追加エントリのパフォーマンス上の利点及びエネルギーコストを説明しない。
【００２５】
各インターフェースに対する完全に独立したクロックでさえ、キュー構造は一定の状況の下で読み書きするためにフルスピードで作動することができる。この並列性は、同時的な読取り及び書込みサイクルが異なるＳＲＡＭセルへ許容されるデュアルポートのＳＲＡＭ構造を必要とする。インターフェースがフルとエンプティーのフラグに関連したプロトコルに従うように設計されている限り、キュー構造は同一のＳＲＡＭセルへ同時に読み書きすることをサポートしなくてよい。キューがフルでない限り（上記のように）、生産者はクロックｗ（図３）のすべての立ち上りエッジでデータを書き続けることができる。同様に、キューがエンプティーでない限り、消費者はクロックのすべての立ち上りエッジで読み続けることができる。したがって、新しく書き込まれたエントリは同期ピリオドの後まで消費者によって認識されないであろうが、両インターフェースはキューが部分的にフルな限りフルスピードで作動する。一旦キューがフルになれば、キューのフル・バー（フルの否定）の状態は、読み取りインターフェース上のキューから読まれているデータのみから導かれ得る。このイベントが生じる場合、リードドメインのキューポインタは、フルをディアサートするために、ライトドメインのクロック（クロックｗ）と同期が取られなければならない。類似した非同期遅延が、エンプティーであるキューへの書込みによるエンプティー・バー（エンプティーの否定）条件の生成によって生じる。
【００２６】
我々が同期ポイントとして使用するキューの多くは、上に述べられたのとは異なるインターフェースを有している。演算キューについては、たとえば、各エントリは、エントリがリード（イシュー）されるべきかどうかを判断するためにスケジューラが使用する、有効（Ｖａｌｉｄ）及び準備完了（Ｒｅａｄｙ）フラグを有している。計画されたスケジューラは、キュー内の有効及び準備完了のエントリ数を超えて発行しないであろう。しかしながら、同期により、スケジューラが新しく書き込まれたキューデータを認識する前に遅延が存在するということに注意が必要である。クロックドメイン・インターフェースの行き来に関連した遅延は、以下の関数である：
（ａ）信号がデスティネーションで首尾よくラッチされるために、ソースとデスティネーションのクロック間で必要となる最小時間を意味する、クロックアービトレーション回路の同期時間Ｔｓ。我々は、ソース及びデスティネーションのクロックエッジがソースで生成された信号がデスティネーションで首尾よくクロックすることができるように十分に離れている（最低、Ｔｓ）かどうかを検知する、シェーグレン及びマイヤーズによって展開された（非特許文献２８）、アービトレーション回路及び同期回路を想定する。デスティネーションクロックはこれらの状況の下でのみイネーブルされる。我々は、最高周波数のピリオドの３０％のＴｓを仮定する。
（ｂ）インターフェースクロックの周波数比率。
（ｃ）インターフェースクロックの相対的なフェーズ。
【００２７】
この遅延は、ソースクロックＦ１とデスティネーションクロックＦ２を示すタイミングチャート（図４）を検討することにより、より良く理解され得る。キューは初めにエンプティーであるとする。データは、Ｆ１の立上りエッジ（エッジ１）でキューに書き込まれる。データは、次のＦ２の立上りエッジで直ちにキューから読み出され得る。Ｔ≦Ｔｓである場合、データが読み出され得ることとなる最先は、１Ｆ２周期期間後（エッジ３）である。この超過遅延は、同期による性能劣化の１つの根源を表わす。Ｔの値は、クロックソースの相対的なジターに加えてＦＩとＦ２の相対的周波数とフェーズによっても決定され、時間が経つにつれて頻繁に変わり得る。同期化コストは、ＴとＴｓの関係、及び程度は低いがＴｓの大きさ、によってコントロールされる。類似した状況は、上記議論におけるエンプティーをフルに、エッジ１をエッジ２に、エッジ３をエッジ４に置換することで、キューがフルな場合に存在する。
【００２８】
下記に述べる我々のシミュレータは、ドメイン間オーバヘッドを正確に説明する。
【００２９】
我々のシミュレーションのテストベッドは、Ｗａｔｔｃｈ（非特許文献５）の電力評価エクステンションを備えたＳｉｍｐｌｅＳｃａｌａｒツールセット（非特許文献６）に基づく。元々のＳｉｍｐｌｅＳｃａｌａｒモデルは集中化されたレジスタ・アップデート・ユニット（ＲＵＵ：Ｒｅｇｉｓｔｅｒ  Ｕｐｄａｔｅ  Ｕｎｉｔ）を使用してアウトオブオーダ実行をサポートする（非特許文献２９）。我々は、このストラクチャを、Ａｌｐｈａ２１２６４マイクロプロセッサのマイクロアーキテクチャ（非特許文献２０）にもっと近接してモデルするために、修正した。具体的には、我々は、ＲＵＵを、別個のリオーダバッファ（ＲＯＢ）、演算キュー及び物理レジスタファイルストラクチャに分けた。我々のシミュレーション・パラメータの概要が表１に示されている。
【００３０】
【表１】
2006518064.tif 000003
【００３１】
我々は、ＭｅｄｉａＢｅｎｃｈ、Ｏｌｄｅｎ及びＳＰＥＣ２０００ベンチマークスイートから、計算向け、メモリ向け及びマルチメディアのアプリケーションの混合を選んだ。表２は、シミュレートされた命令のウィンドウとともに使用されるベンチマークを示す。我々は、ａｄｐｃｍ、ｅｐｉｃ、及びｇ７２１のエンコード及びデコードフェーズについて、並びにｍｅｓａのｍｉｐｍａｐ、ｏｓｄｅｍｏ、及びｔｅｘｇｅｎフェーズについての一体化された統計を示す。
【００３２】
【表２】
2006518064.tif 000004
【００３３】
ベースラインプロセッサとして、我々は、近く投入されるＴＳＭＣの低電力０．１μｍプロセスＣＬ０１０ＬＰ（非特許文献３０）に基づいて、１ＧＨｚクロックで１．２Ｖ供給電圧を想定する。ダイナミックな電圧及び周波数スケーリングを備えた構成について、我々は、１ＧＨｚから２５０ＭＨｚまでの線形範囲を測る３２個の周波数ポイントを想定する。これらの周波数ポイントに対応するのは、１．２Ｖから０．６５Ｖまでの直線的な電圧範囲である。Ｗａｔｔｃｈにおいて、Ｗａｔｔｃｈが２．０Ｖの供給電圧を想定するので、我々は、２．０−１．０８３３Ｖの範囲を使用することにより１．２−０．６５Ｖの電圧範囲の影響をシミュレートする。供給電圧がスレショルド電圧に比例して積極的にスケーリングされ続けるときの将来世代における電圧範囲の圧縮（ｃｏｍｐｒｅｓｓｉｏｎ）を反映して、我々の電圧範囲はＸＳｃａｌｅのそれ（１．６５−０．７５Ｖ）よりタイトである。加えて、周波数範囲の最大幅は、電圧範囲の最大幅の２倍である。我々が下記で実証するように、これらの要因は、従来のダイナミックな電圧及び周波数スケーリングで達成することができる節約電力量を制限する。
【００３４】
我々は、ダイナミックな電圧及び周波数スケーリングに関して２つのモデルを想定する。すなわち、ＸＳｃａｌｅモデルとＴｒａｎｓｍｅｔａモデルであり、これらはそれぞれの会社から公表された情報（非特許文献１０、１３）に基づく。これら両モデルに関し、我々は、所望電圧が周波数を増加させるよりも前に最初に達せられていなければならない一方で、より低い周波数及び電圧に移行する場合に周波数変化が直ちに伝えられ得ると想定する。Ｔｒａｎｓｍｅｔａモデルについては、我々は、１ステップ当たり２０μｓの電圧調整時間で２８．６ｍＶ間隔の、合計３２個の別個の電圧段階を想定する。周波数変化は、再ロックするためのＰＬＬを必要とする。それを行うまで、ドメインは使用されていないままである。我々は、ＰＬＬを、平均時間１５μｓで１０−２０μｓの範囲のノーマルに分散されたロック回路としてモデル化する。ＸＳｃａｌｅモデルについては、我々は、電圧が変化すると直ちに周波数変化が生じる、つまり、電圧が変化されるのに合わせて周波数も追従して変化される、と想定する。ＰＬＬを待っている使用されていないドメインがあるため、ペナルティは全くない。すなわち、回路は該変化を通って実行する。滑らかな変化に近づけるために、我々は、ある段階から次の段階へ移行するのに０．１７１８μｓ必要な、各２．８６ｍＶの３２０段階を使用する。全電圧範囲を横断するには、Ｔｒａｎｓｍｅｔａモデルでは６４０μｓ、ＸＳｃａｌｅモデルでは５５μｓが必要である。
【００３５】
プロセッサ再構成の決定（時間、周波数及び電圧の選択）は、静的分析、オンライン統計、又はフィードバックに基づいたプロファイリングから集められた情報を使用することにより、ハードウェア、ソフトウェア又はその２つの一定の組合せにおいて、原則的になされる。当座の研究目的のために、我々は、アルゴリズムがどのようなものであるかということを必ずしも決めないで、幾つかの高品質管理アルゴリズムで達成されるかもしれないエネルギー節約を明らかにすることを試みた。より具体的には、我々は、アプリケーションの全速実行の際に集められたトレースを分析するオフラインツールを使用して、実行時間を著しく増加させることなく、該実行の様々の部分の間に様々のドメインによって使用されたに違いない最小の周波数及び電圧を測定することを試みた。これら周波数及び電圧−並びにそれらが適用されたに違いない時間−のリストは、その後、エネルギーとパフォーマンスの正確な評価を得るために、第２コースのダイナミックなスケーリングランにおいて我々のプロセッサシミュレータへフィードバックされる。
【００３６】
この実験方法が現実的なオンライン制御アルゴリズムによって達成されるであろう利点を過大評価又は過小評価するのかは、不明確である：我々のフィードバックに基づいたシステムは原則として将来の知識を使用できるが、それは最適であると証明されているわけではない：良好のオンライン戦略が、考え得るところではより良く振舞うのかもしれない。該方法が提供するものは、存在することの証明である：我々の分析ツールによって選択された周波数及び電圧によって、下記に述べられるエネルギー節約を実現できることが予期されよう。
【００３７】
続く２つのサブセクションはそれぞれ、再構成ポイントを選択するために使用される、我々のマルチクロックドメインシミュレータ及び分析ツールについて記述する。
【００３８】
マルチクロックドメインの欠点は、あるドメインで生成され他のドメインで必要とされるデータがドメインの境界を横断しなければいけないという点であり、これはセクション２において記述されたような同期コストを潜在的に招来する。同期コストを正確にモデルするために、我々は、クロックにおける変動である独立ジターをサイクル毎にモデル化することによって、各ドメインを動作させるクロックが独立であるという事実を説明する。我々のモデルは、平均が０であるジターの正規分布を想定する。標準偏差は１１０ｐｓであり、１００ｐｓの外部の位相同期回路（ＰＬＬ）ジターと（利用可能なＩＣの調査に基づいている）、内部ＰＬＬによる１０ｐｓとから成る。これらの値は、共通の外部１００ＭＨｚクロック源から生成された１ＧＨｚのオンチップクロックを想定する。外部クロックの共通使用にもかかわらず、局所的クロック源が独立であるので、個々のドメイン内のクロックスキューは、ドメイン間ペナルティを計算する際の要因でない。
【００３９】
我々のシミュレータは、スケーリングファクターとジター値に基づいて、サイクル毎にドメインクロックの全ての関係を追跡する。最初に、全てのクロックは、それらのスタート時間に関してランダム化される。あるドメインにおける次のクロックパルスの時間を決定するために、ドメインサイクル時間がスタート時間に加えられ、そのサイクルについてのジター（それは正の値かもしれないしあるいは負の値かもしれない）が該分配から得られ、この合計に加えられる。全てのドメインについてこの計算をサイクル毎に行なうことによって、全てのクロックエッジ間の関係が追跡される。このようにして、我々はＴ＞Ｔｓの関係の崩れ又はドメイン間のクロック周波数差により、同期コストを正確に説明することができる。
【００４０】
すべての構成について、我々は、すべての回路は、使用されていない時にはクロックがゲートされている（クロックゲーテッドされている）ものと想定する。我々は、すべてのチップラッチに対して低スキューのクロックを供給する従来のグローバルクロック分配ツリーがないことによる、（削減されたスキューに起因する）電力節減やクロック周波数アドバンテージを、現段階では評価しない。
【００４１】
所与のアプリケーションにおけるダイナミックスケーリングに対する時間及び値を選択するために、我々の再構成ツールは、アプリケーションを該シミュレータ上で最高速度で実行することで始まる。この初期動作中に、我々は、すべての原始的イベント（単一クロックドメインにおけるハードウェアによって単一命令のために行なわれる時間的に連続するオペレーション）のトレースと、これらイベント間の機能的依存及びデータ依存のトレースとを収集する。たとえば、メモリ命令（ロード／ストア）は５つのイベントに分割される。すなわち、フェッチ、ディスパッチ、アドレス計算、メモリアクセス、及びコミットの５つのイベントに分割される。データ依存は、これらのイベントを経時的にリンクする。機能依存は、各イベントを、同一のハードウェアユニットを使用するところの（異なる命令における）前後のイベントにリンクする。追加的機能依存は、フェッチキュー、発行キュー及びリオーダバッファのような、サイズが限定された構造を捕捉する。フェッチキューにおいては、たとえば、ｋがキューのサイズである場合、イベントｎはイベントｎ−ｋに依存する。
【００４２】
我々は、５０Ｋサイクル間隔毎の依存有向非循環グラフ（ＤＡＧ：ｄｉｒｅｃｔｅｄ  ａｃｙｃｌｉｃ  ｇｒａｐｈ）を構築するために、トレース情報を使用する。（この間隔の長さは、ＤＡＧが我々のシミュレーションサーバ上でキャッシュに入る最大となるべく選択された。）一旦ＤＡＧが構築されたならば、我々は２つの更なる分析フェーズを経る。第１フェーズは、入力としてＤＡＧを使用し、そのワークを１つの間隔に閉じ込める。その目的は、アプリケーションのクリティカル実行パス上にない個々のイベントを、あたかもより低い周波数で命令毎に実行されたかのように、「ストレッチする」（スケールする）ことである。最終フェーズは、第１フェーズからの要約統計を使用して、複数の間隔を、それぞれに関して一様なクロック周波数により、より大きな連続する期間へクラスタする。
【００４３】
依存ＤＡＧにおけるイベントが２つ以上の入射矢印を有している場合、常に、ある矢印がクリティカルパスを構成し、他の矢印が「スラック」を有しているであろう−実際にそうであろう。このスラックは、直前のオペレーションが余裕をもって終わったことを意味する。イベントの出射矢印のすべてがスラックを有している場合、我々には、当該イベントをより低い周波数及び電圧で行なうことによりエネルギーを節約するための（０コストスケーリングを想定する）機会がある。ＤＡＧの中の各イベントについて、我々は、Ｗａｔｔｃｈにおけるパラメータによって測定されているような、デフォルト値が対応するクロックドメインの相対的な電力消費量に基づく電力因子を関連づけて考える。我々がイベントをストレッチする場合、我々はその電力因子を相応してスケールする。計算は、相関的な方式に基づいて、すなわちエネルギーがクロック周波数の２乗に比例するという仮定に基づいてなされる。我々の再構成ツールのストレッチするフェーズは、スラックとスケールエッジをできるだけ一様に分配するために、「シェーカ」アルゴリズムを使用する。ＳｉｍｐｌｅＳｃａｌａｒが、任意の実際のプロセッサと同様に、依存及びハザードの影響を受け易いイベントをできるだけ早く実行するので、スラックは元の実行トレースの非クリティカルパスの端部に常に現われる。そのシェーカアルゴリズムは、５０Ｋサイクル間隔の端部でそのようにして始まり、ＤＡＧを通って後方にワークする。出射エッジがすべてスラックを有しているイベントにそれが遭遇すると、該シェーカは、そのイベントの電力因子が、グラフ内の任意のイベントの最大電力を僅かに下回るように最初にセットされた一定の閾値を越えるかどうかチェックする。もしそうであれば（これが高電力のイベントであれば）、該シェーカは、それが利用可能なスラックをすべて消費するか又はその電力因子が現在の閾値を下回るまで、該イベントをスケールする。スラックが残っていると、該イベントはそのうち動かされ、その結果、可能な限りのスラックがその入射エッジに移動される。それがＤＡＧの始まりに達したとき、該シェーカは、方向を転じて少しだけその電力閾値を弱め、高電力のイベントをスケールしスラックを出射エッジに動かしながら、ＤＡＧを通って新しいパスを前にする。それは、ＤＡＧ上を前と後ろに行ったり来たりしてその電力閾値を毎回引き下げるそのプロセスを、利用可能なスラックがすべて消費されるか、又はスラックエッジに隣接するすべてのイベントが当初の周波数の４分の１までスケールダウンされるまで繰り返す。所与の５０Ｋのサイクル間隔について作業を終えると、該シェーカは、各クロックドメインの要約ヒストグラムを構築する。各ヒストグラムは、ＸＳｃａｌｅモデルの３２０個の周波数段階（当該２つのモデルに関する段階の最高数である）の各々について、その周波数で又はその周波数近くで作動するためにスケールされた、該ドメイン及び間隔での該イベントについてのサイクル総数を示す。
【００４４】
不幸なことに、イベント間の依存に関してフロントエンドのビヘイビアを捕捉するのが困難であることが判明する。たとえば、浮動小数点ドメインにおける加算の開始及び終了間の時間と異なり、フェッチとディスパッチとの間の時間は一定数のサイクルでない。加えて、手動で選択された再構成ポイントでの実験は、フロントのスケーリングが他のドメインをスケーリングした場合程に有益であることが滅多にないことを示唆した。そこで、我々は、フロントを安定した１ＧＨｚで実行し、他の３つのドメインにおけるイベントについてのみ当該シェーカアルゴリズムを適用することにした。フロントエンドがチップエネルギーの合計の２０％を典型的には占めるので、この選択は、我々が得るであろうエネルギー改善が残りの８０％からもたらされるに相違ないことを示唆する。フロントエンドについて取り組む将来の試みは、ここで報告されるよりも大きな節約を与えるであろう。
【００４５】
我々のオフライン分析ツールの最後のクラスタリングフェーズは、同時的な命令に基づいて周波数が変化できないことを認識する。それはまた、一定の性能劣化を可能にする。シェーカによって生成されたヒストグラムを使用して、我々は、各クロックドメインと間隔について、ドメインがその作業をｄパーセント（ここに、ｄは当該分析に対するパラメータである。）の時間遅延なく終えることを可能にする最小周波数ｆを計算する。より具体的には、我々は、（Ｔｒａｎｓｍｅｔａに関する３２個の可能な値とＸＳｃａｌｅに関する３２０個の可能な値とから）周波数を、それらのイベントを選択された周波数で実行するのに必要な余分な時間の、ヒストグラムのより高いビン内のすべてのイベントに対する合計が、該間隔の長さのｄパーセントよりも小さいか又は等しくなるように選択する。この計算は近似の必要による。それは、ドメイン内のＩＬＰを無視する：すなわち、それは、同一ドメイン内の別々のイベントの遅延が蓄積作用を有するであろうと想定する。同時に、それはドメイン間の殆どの依存を無視する：すなわち、それは、異なるドメインのイベントの遅延が独立するであろうと想定する。この規則の例外として、我々は、ロード／ストア・ドメインのイベントを、整数ドメインのヒストグラムに加える。この特別のケースは、メモリ動作が高い場合に、実行アドレス計算が迅速に生じることを保証する。殆どのアプリケーションについて、該所要時間遅延評価は、合理的正確性があることが判明する：図５−図７及び図８Ａ−図９Ｂは、ｄと概略的に一致する（ＭＣＤベースラインに対する）性能劣化を示す。
【００４６】
シェーカアルゴリズムは再構成が同時的で自由であると想定するのに対して、クラスタリングアルゴリズムは再構成時間及びコストをモデル化しなければならない。所与のドメインの各隣接した組の間隔について、それは、ヒストグラムをビン毎に併合し、我々がより大きな一体化された間隔を単一周波数で実行することを可能にする最小周波数を計算する。Ｔｒａｎｓｍｅｔａ電力モデルについては、我々は、遅すぎるイベント（ｔｏｏ−ｓｌｏｗ  ｅｖｅｎｔ）の時間遅延と間隔境界で再構成するのに必要な時間との合計が、実行時間の合計のｄパーセントを超過しないことを要求する。それが１つの再構成を除去するので、Ｔｒａｎｓｍｅｔａモデル下の間隔の併合は、我々が一体化された間隔をより低い周波数及び電圧で実行することを往々に可能とし、これによってエネルギーが節約される。ＸＳｃａｌｅモデル下の併合の殆どは、隣接する間隔が同一の又は同一に近い目標周波数を有している場合に生じる。クラスタリングアルゴリズムは、併合を、エネルギーの見地から有益な限り反復的に行ない続ける。
【００４７】
併合を終えた場合、クラスタリングアルゴリズムは、目標時間で目標周波数及び電圧に達するために、再構成が開始されなければならない時間を計算する。たとえば、利用可能な間隔より（電圧を下げるか上げる時間のため）長くかかる周波数の大きな振動により再構成が可能でない場合、再構成は回避される。Ｔｒａｎｓｍｅｔａモデルにおける遷移は１電圧レベル当たり２０μｓを要するので、短い間隔を大きな周波数変化に適応させることができなくなる。当該アルゴリズムは、アプリケーションが種々のドメインの周波数及び電圧の変化を有益に要求することができた時を明示するログファイルを書き込むことにより、その作業を終える。このファイルはその後、第２のダイナミックな構成ランでプロセッサシミュレータによって読み取られる。
【００４８】
このセクションにおいて、我々は、ＭＣＤマイクロアーキテクチャの性能、エネルギー、及びエネルギー遅延積を、従来の単一にクロックされたシステムのそれらと比較する。ベースライン構成は、ダイナミックな電圧又は周波数スケーリングのない、単一クロックの１ＧＨｚのＡｌｐｈａ２１２６４に類似のシステムである。そのベースラインＭＣＤ構成は、上記で述べられたように４つのクロックドメインへ分割されるが、全てのクロックの周波数は１ＧＨｚに静的にセットされる。この構成は、ドメイン間同期の性能及びエネルギーコストを計量するのに役立つ。ダイナミック１％及びダイナミック５％構成は、それらが各クロックドメイン内のダイナミックな電圧及び周波数スケーリングをサポートするという点を除き、ベースラインＭＣＤと同一である。そのダイナミック１％の場合のために、我々のオフライン再構成ツールのクラスタリングフェーズは、１％の性能劣化のターゲット（ベースラインＭＣＤのそれを凌ぐ）を使用し；ダイナミックな５％の場合のために、それは、５％のターゲットを使用する。最後に、大局的構成は、該ベースライン構成を、その単一の電圧及び周波数のダイナミックスケーリングを加味することによってモデル化し、マルチクロックドメインの利点を計量する役目をする。
【００４９】
該大局的場合についての周波数は、ダイナミック５％構成の全体的性能劣化と等しくなるようにセットされ、その電圧は相応して小さくされる。大局のエネルギー節減は、削減された周波数及び電圧値を使用してＳｉｍｐｌｅＳｃａｌａｒ及びＷａｔｔｃｈの下で各アプリケーションを実行することにより計算される。このアプローチは、同一レベルの性能劣化の下で、ＭＣＤアプローチのエネルギー節減が、従来の電圧及び周波数スケーリングのそれと比較されることを可能にする。我々は、該大局的構成のエネルギー結果の正確性チェックを、該Ｗａｔｔｃｈ結果を、電圧比率の２乗に比例してスケールされた該ベースライン構成の該エネルギーの単純な計算と比較することにより行ない、該結果が２％以内に収まることを発見した。
【００５０】
図５、図６及び図７は、電圧及び周波数スケーリングのＸＳｃａｌｅモデル下における、ベースラインＭＣＤ、該ベースライン構成に関するダイナミック１％構成、ダイナミック５％構成、及び大局的構成の、性能劣化、エネルギー節減及びエネルギー×遅延変化を示す。Ｔｒａｎｓｍｅｔａモデルは、ＸＳｃａｌｅモデルに比べて遥かに有望でない結果をもたらした。Ｔｒａｎｓｍｅｔａモデル下ではＰＬＬを再ロックするのに約１５μｓが必要となるので、再構成は、ＸＳｃａｌｅモデルの下での再構成と比べると有益であることが滅多になく、エネルギー改善の程度は遥かに小さい。我々は、ＸＳｃａｌｅの結果についてより詳細に議論した後、ＴｒａｎｓｍｅｔａとＸＳｃａｌｅのモデルの比較に戻ることにする。
【００５１】
電圧又は周波数スケーリングのないマルチクロックドメインを単に使用する該ベースラインＭＣＤ設計は、１．５％の平均エネルギーコストとともに、４％未満の平均性能劣化を示す。エネルギー遅延積に関して示された結果は、−ａｄｐｃｍについて１０％、−全体として５％に近づく。該アルゴリズムによってもたらされるオーバヘッドのすべては、このベースラインＭＣＤのオーバヘッドに直接に付け加わるということに注意されたい。たとえば、平均的ダイナミック５％の性能オーバヘッドは、約１０％又は凡そベースラインＭＣＤに加えて５％の該目標劣化が付与されたときに期待されるであろうもの、である。
【００５２】
我々の２番目の観察は、該大局的アプローチの全体的なエネルギー節減が、その性能劣化に類似しており、１６個のベンチマークに亘って平均すると１２％未満となる、ということである。周波数及び電圧の両方が同じパーセンテージだけ線形的に削減された場合、性能は周波数とともに線形的に減少するが、エネルギーは電圧とともに２乗的に減少するので、この結果は幾分直観に反している。しかしながら、我々のモデルでは、周波数の４重の変化（１ＧＨｚから２５０ＭＨｚまで）が、電圧の２重未満の変化となる（Ｗａｔｔｃｈにおいて２．０Ｖから１．０８３３Ｖとしてモデルされたような、１．２Ｖから０．６５Ｖまで）ことを思い出されたい。上記で議論したように、この相違は、電圧がスレショルド電圧に対してスケールダウンされ、且つ周波数がスケールアップされたように、連綿と続くプロセス世代における周波数範囲に対する電圧範囲の圧縮によるものである。電圧カーブの傾斜は周波数カーブの傾斜と比べると、電圧削減のエネルギー上の２乗効果を大幅に縮小しつつ、非常に緩やかとなった。
【００５３】
該ＭＣＤアプローチは、対照的に、該ベースライン構成に対して、比較的マイナーな全体的性能劣化とともに、顕著なエネルギー及びエネルギー×遅延の改善を達成する。たとえば、ダイナミック５％構成は、ベースライン構成と比べると、ＸＳｃａｌｅモデル下で１６個のベンチマークに亘って１０％未満の性能劣化を招来する一方で、平均して２７％の全体的エネルギーの縮小及び２０％のエネルギー×遅延の改善を達成する。エネルギー節約を犠牲にして性能劣化をより厳格に抑えようとするダイナミック１％アルゴリズムは、このゴールを達成するために多くのエネルギー節約をトレードオフし、およそ１３％のエネルギー×遅延の改善に帰着する。そうではあるが、これは、該大局的アプローチで得られた３％のエネルギー×遅延改善を、尚も遥かに超えている。
【００５４】
いくつかの場合において、レイテンシをキャッシュミスの背後に隠蔽する機会は、実際の性能劣化を、該ダイナミックアルゴリズムによって選択された周波数から予期されるであろうものに比べて著しく小さくすることを可能にする。特に、Ｌ１データキャッシュミスに関連するスラックは、我々の再構成ツールが整数及び浮動小数点ドメインを全体的性能に顕著な影響を与えることなくスケールすることを、これらのドメインの利用が高い場合でさえ、しばしば可能とする（利用可能なＩＬＰがミスレイテンシを完全に隠蔽するには十分ではないという事実による）。第２レベルキャッシュが同一ドメイン内にあるので、ロード／ストア・ドメインは、ミスにできるだけ迅速に仕えるために、もちろん高周波で作動し続けなければならない（我々が多くのレベル−２キャッシュを同様に有する場合は別）。ミスの影響は、ｇｃｃにおいてみることができる（ダイナミック１％）。キャッシュミス割合は高く（１２．５％）、整数ドメインの平均周波数は約９２０ＭＨｚまで落ちるが、トータルでの性能劣化は１％未満である。
【００５５】
対照的に、分岐予測ミスは、ダイナミックなスケーリングをする機会を提供しない。すなわち、分岐を分析するために展開された依存鎖は、整数ドメイン、そして時にはロード／ストア・ドメインの重要な周波数縮小を、排除する。高い分岐予測ミス割合を伴うアプリケーションは、周波数の減少に従って性能劣化を示すであろう。この効果はｓｗｉｍで見ることができる。エネルギー節約は、性能劣化をかろうじて超える。（ここでもまた、浮動小数点ドメインは、高利用のために高周波のままでいなければならない。）
【００５６】
該ダイナミックアルゴリズムは、ｇ７２１における大局的電圧スケーリングに関して最も貧弱に機能する。これは、整数及びロード／ストア・ドメインの高利用、低キャッシュミス割合、低分岐誤予測割合、及び高ベースラインＭＣＤオーバヘッドという、程よくバランスがとられた命令ミックスを備えた整数ベンチマークである。そのＩＰＣは比較的高く（２超）、整数及びロード／ストア・ドメインはこれを保持するために最高速度近くで動作しなければならない。浮動小数点ドメインは勿論２５０ＭＨｚまでスケールバックされ得るが、他のドメインにおける高動作レベルのため、結果として生じるエネルギー節約は、他の整数アプリケーションの殆どにおけるそれと比べると、プロセッサエネルギー全体の僅かでしかない。
【００５７】
図５−７をＴｒａｎｓｍｅｔａスケーリングモデルの下での対応する結果（ここでは示されていない）と比較することで、我々は、ＸＳｃａｌｅモデルによって我々が所与のレベルの性能劣化に関し著しく高いエネルギー節約を達成することができることを知った。この結果の理由は図８Ａ及び図８Ｂにおいて図示されており、これらは、１％の目標性能劣化とともに、我々の再構成ツールによってａｒｔベンチマークの３０ｍｓの間隔について選択された周波数設定を示す。図８Ａ及び図８Ｂを比較する際には、ＸＳｃａｌｅモデル（図８Ｂ）の下では、我々が、より多くの振動数を変化させることができ、かつそれらの変化を広範囲の周波数に及ぼすことができる、という点に注意されたい。特に、ａｒｔは浮動小数点に集中的なアプリケーションであるが、そこには我々が浮動小数点ドメインを安全にスケールバックする際の多くの命令間隔がある。その１０−２０μｓのＰＬＬ再ロックペナルティがあるため、Ｔｒａｎｓｍｅｔａモデルは、我々がこの比較的短期間のビヘイビアを捕捉することを可能にしない。
【００５８】
図９Ａ及び図９Ｂは、Ｔｒａｎｓｍｅｔａ及びＸＳｃａｌｅの両モデル下で、全１６個のアプリケーションにおける我々のオフライン再構成ツールによって選択された間隔についての要約統計を示す。それらの図は、Ｔｒａｎｓｍｅｔａ及びＸＳｃａｌｅの再構成データに対するダイナミック５％構成について、そのオフラインツールによって選択された間隔での要約統計をそれぞれ示す。四角い棒は、整数、ロード・ストア、及び浮動小数点のドメインについて、１００万命令当りに必要となる再構成の数を示す。その棒の上にあるポイントは、それらのドメインについて選択された平均周波数を示す。「エラーバー」は、これが示された場合、ドメインについてのダイナミック周波数の範囲を示す。整数、ロード・ストア、及び浮動小数点のドメインについて選択された平均周波数は、その２つのグラフにおいて類似しているが、再構成の総数はＴｒａｎｓｍｅｔａモデル下で遥かに少なく、周波数範囲はより狭い。
【００５９】
図８Ａ乃至図９Ｂはすべて、異なるクロックドメインにおいて異なる周波数を使用する値を図示する。つまり、これらの周波数を独立して制御することによって、我々は、それほど性能クリティカルでないドメインを積極的にスケールする一方で、性能に対してクリティカルなドメインにおいて必要周波数を維持することができる。浮動小数点ドメインは特に、少なからぬ数の浮動小数点演算を含んでいる幾つかのアプリケーションを含め、多くのアプリケーションにおいて最低の利用可能な周波数にスケールバックされ得る。しかしながら、クロック・ゲーティングのため、浮動小数点ドメインは多くの場合整数プログラムにとってエネルギー散逸の最大の源ではないということに注意が必要である。すなわち、整数ドメインは多くの場合最大のソースであり、したがって、そのドメイン電圧を適度に調節することでさえかなりのエネルギー節約をもたらす。さらに、ダイナミックスケーリングがスタティックな電力をも引き下げることが予期されるものの、我々はエネルギー節約への対応する寄与を計量していない。（クリティカルなプロセッサ状態を保存／回復するための適切なサポートが付与されたならば）ダイナミック電圧ゲーティングは追加的な節約を達成するかもしれないし、将来の研究にとって有望なアベニューと映るかもしれない。
【００６０】
いくつかのメーカー、特にインテル（非特許文献２１）とＴｒａｎｓｍｅｔａ（非特許文献１６）は、大局的でダイナミックな周波数及び電圧のスケーリングが可能なプロセッサを開発した。最小動作電圧が周波数にほぼ比例し、電力が電圧の２乗にほぼ比例するので、このダイナミックなスケーリングは、プロセッサが全体として過剰設計されているリアルタイムの制約を備えたアプリケーションにおける重要な恩恵となり得る：たとえば動画のレンダリング。マルクレスク（非特許文献２３）及びスウ等（非特許文献１８）は、キャッシュミスをトリガーとして使用する性能の最小ロスにより、チップ全体のダイナミック電圧の使用を評価した（非特許文献２３）。他の研究（非特許文献７、２６）もまた、エネルギーを節約するために、プログラム内のスケジューリング・スラックを活用するように異なるスピードで静的に動くパイプライン又は機能ユニットへ命令を導くことに関心を抱くようになった。我々の貢献は、マルチクロックドメインを備えたマイクロプロセッサが、現行のアプリケーション・フェーズのクリティカルパスに大きく寄与していないドメインの周波数及び電圧を引き下げることにより、性能に重大な影響を与えることなく、様々の異なるアプリケーション上の電力消費量を削減する機会を提供するということを、実証することである。
【００６１】
ゴヴィル等（非特許文献１５）及びウィーサー等（非特許文献３１）は、プロセッサの利用に基づいてＣＰＵスピードを調節するための、間隔ベースのストラテジーについて述べる。その目的は、タスク完了時間を著しく遅らせることなくプロセッサを１００％利用された状態にしておくことを試みることにより、エネルギー消費を引き下げることである。直前の間隔での利用に基づいた履歴は、作業量を予測し、これによって作業残りのない最大利用がされるようにスピードを調節するために使用される。ペリン等（非特許文献２５）は、リアルタイム及びマルチメディアのアプリケーションに対して類似した原理を適用する。同様にヒューズ等（非特許文献１９）は、ミスされたフレームデッドラインを低い割合で許容しつつプロセッサのグローバルな電圧及び周波数をダイナミックに変化させるために、フレームベースのマルチメディアアプリケーションについての命令数予測を使用する。ベロッサ（非特許文献２、３）は、冷却及び電池寿命の両目的ためにエネルギー消費を制御するべく、エネルギー使用パターンをすべてのプロセスに関連させるスキームについて述べる。プロセス・プライオリティに加えてキャッシュ及びメモリのビヘイビアも、該エネルギー制御法を働かせるために、入力として使用される。ベニーニ等（非特許文献４）は、システム活動を監視し、システム電力を司るＯＳモジュールに対して情報を提供するシステムを示す。彼らは、ディスクを低電力モードとするために用いられた閾値アイドル時間のセットの仕方を実証するために、このモニタリングシステムを使用する。我々の研究は、アプリケーションのクリティカルパス上にないプロセッサの部分のみを遅くすることを我々が試みる点で異なるものである。
【００６２】
フィールズ等（非特許文献１２）は、我々のものに類似した依存グラフを使用するが、アプリケーションのクリティカルパスを明らかにするために、そのグラフは性急に構築されている。彼らの目的は、クラスタ化されたアーキテクチャにおいて指令している命令を改善し、クリティカルな命令に対してのみ選択的にそれを適用することにより予測値を改善することである。我々は、非クリティカルなプログラムパスを遅くするために、我々のオフライングラフを用いる。リー等（非特許文献２２）は、プログラムとマシンの両方が完全に調整可能であると想定して、エネルギー消費の理論的下限を探究する。すべてのハードウェアコンポーネントにおいて等しいエネルギー散逸を想定して、彼らは、すべてのコンポーネント上にバランスの取られた負荷を備えたプログラムが、大きく加重されたプログラムよりも少ないエネルギーを消費することを示す。
【００６３】
チルダーズ等（非特許文献９）は、ＩＰＣとクロック周波数とをトレードすることを提案する。ユーザは（ＭＩＰＳで表現された）システムから特定の質のサービスを要求し、プロセッサは、ＩＰＣをモニターして周波数及び電圧を相応して調節するために、間隔ベースの方法を使用する。彼らの研究において、高ＩＰＣのプロセスは低クロック周波数で動作し、低ＩＰＣのプロセスは高クロック周波数で動作するであろうが、これは、幾つかのアプリケーションに対して要求されるところに反する（例えば、低ＩＰＣが高いミス割合による場合）。我々の技術は、最小エネルギーで最大性能を提供するために、全くの反対を達成するように機能する。
【００６４】
本発明の好ましい実施形態は上述されたが、当該技術に対して技術知識を有し本開示を精査した者は、本発明の範囲内において他の実施形態が実現可能であることを認識するであろう。たとえば、数値及び製作技術は、制限するためのものでなく説明のためのものである。また、４つのドメインが開示されたが、それよりも多い又は少ない数のドメインとともに、異なる数のドメイン間境界によって、プロセッサを実装することも可能である。その他の可能な本発明の変形は、上記に示されている。したがって、本発明は、添付された特許請求の範囲によってのみ制限されるものとして解釈されなければならない。
【図面の簡単な説明】
【００６５】
【図１】図１は、マルチクロックドメインを有するプロセッサのブロック図を示すものである。
【図２】図２は、キュー構造を示すものである。
【図３】図３は、フルフラグを示すものである。
【図４】図４は、同期するタイミングを示すものである。
【図５】図５は、性能劣化の結果を示すものである。
【図６】図６は、エネルギー節約の結果を示すものである。
【図７】図７は、エネルギー遅延の改善結果を示すものである。
【図８Ａ】図８Ａ（及び図８Ｂ）は、Ｔｒａｎｓｍｅｔａ及びＸＳｃａｌｅに関するダイナミック１％構成のための我々のオフラインアルゴリズムによって生成された、ａｒｔについての周波数変化を、それぞれ示すものである。
【図８Ｂ】（図８Ａ及び）図８Ｂは、Ｔｒａｎｓｍｅｔａ及びＸＳｃａｌｅに関するダイナミック１％構成のための我々のオフラインアルゴリズムによって生成された、ａｒｔについての周波数変化を、それぞれ示すものである。
【図９Ａ】図９Ａ（及び図９Ｂ）は、Ｔｒａｎｓｍｅｔａ及びＸＳｃａｌｅの再構成データに関するダイナミック５％構成のためのオフラインツールによって選択された間隔についての要約統計を、それぞれ示すものである。
【図９Ｂ】（図９Ａ及び）図９Ｂは、Ｔｒａｎｓｍｅｔａ及びＸＳｃａｌｅの再構成データに関するダイナミック５％構成のためのオフラインツールによって選択された間隔についての要約統計を、それぞれ示すものである。
【符号の説明】
【００６６】
１１０  フロントエンド（複数のドメインの１つ）
１２０  整数演算／エクセキュート（複数のドメインの１つ）
１３０  浮動小数点演算／エクセキュート（複数のドメインの１つ）
１４０  ロード／ストア・演算／エクセキュート（複数のドメインの１つ）
１５０  メインメモリ（複数のドメインの１つ）
【図１】
2006518064.tif 000005
【図２】
2006518064.tif 000006
【図３】
2006518064.tif 000007
【図４】
2006518064.tif 000008
【図５】
2006518064.tif 000009
【図６】
2006518064.tif 000010
【図７】
2006518064.tif 000011
【図８Ａ】
2006518064.tif 000012
【図８Ｂ】
2006518064.tif 000013
【図９Ａ】
2006518064.tif 000014
【図９Ｂ】
2006518064.tif 000015
【手続補正書】
【提出日】平成17年2月7日(2005.2.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のクロックドメインを有するマイクロプロセッサであって、
複数のドメインと、
該複数のドメインの各々について、そのドメインのためのクロック信号を、該複数のドメインの内の他のものについて生成されたクロック信号の周波数から独立してダイナミックに変化可能な周波数で、別々に生成するクロックと、
該複数のドメインの各々について、該複数のドメインの内の前記他のものに対して適用された電圧から独立してダイナミックに変化可能な電圧を受け取る電圧入力と、
を備えたことを特徴とするマイクロプロセッサ。
【請求項２】
前記クロックの各々は位相同期回路を備え、
外部で生成されたクロック信号を受信し、該外部で生成されたクロック信号を前記位相同期回路の各々に対して供給する手段を更に備えたことを特徴とする請求項１記載のマイクロプロセッサ。
【請求項３】
少なくとも４つの前記ドメインがあることを特徴とする請求項１記載のマイクロプロセッサ。
【請求項４】
該ドメインの１つにおいて処理する際のスラックを測定し、該スラックを削減するために該ドメインの前記１つにおけるクロック周波数及び電圧を削減するようにプログラムされたことを特徴とする請求項１記載のマイクロプロセッサ。
【請求項５】
該ドメインの少なくとも２つの間のコミュニケーションのためのキューを更に備えたことを特徴とする請求項１記載のマイクロプロセッサ。
【請求項６】
該キューはフルフラグ及びエンプティーフラグを有し、
該フルフラグがアサートされている場合に該フルフラグがディアサートされるまで該キューに対する書込みを防止し、該エンプティーフラグがアサートされている場合に該エンプティーフラグがディアサートされるまで該キューからの読込みを防止するようにプログラムされたことを特徴とする請求項５記載のマイクロプロセッサ。
【請求項７】
該キューはデュアルポートのＳＲＡＭとして実装されていることを特徴とする請求項６記載のマイクロプロセッサ。
【請求項８】
マイクロプロセッサを作動させる方法であって、
（ａ）該マイクロプロセッサに複数のドメインを提供するステップと、
（ｂ）該ドメインの各々をあるクロック周波数で別々にクロッキングするステップと、
（ｃ）該ドメインの各々に対して別々にある電圧を適用するステップと、
（ｄ）各ドメインが相互に非同期で動作する一方で、各ドメインが同期して動作するように該マイクロプロセッサを作動させるステップと、
（ｅ）該複数のドメインの各々におけるクロック周波数及び電圧を、該複数のドメインの内の他のものにおけるクロック周波数及び電圧から独立してダイナミックにコントロールするステップと、
を備えたことを特徴とするマイクロプロセッサを作動させる方法。
【請求項９】
ステップ（ｅ）は、
（ｉ）該ドメインの１つにおける処理時のスラックを測定するステップと、
（ｉｉ）該スラックを削減するために、該ドメインの前記１つにおけるクロック周波数及び電圧を削減するステップと、
を備えたことを特徴とする請求項８記載の方法。
【請求項１０】
ステップ（ｄ）は、該ドメインの少なくとも２つの間のコミュニケーションのためのキューを提供するステップを備えたことを特徴とする請求項８記載の方法。
【請求項１１】
該キューはフルフラグ及びエンプティーフラグを有し、
ステップ（ｄ）は、
該フルフラグがアサートされている場合に該フルフラグがディアサートされるまで該キューに対する書込みを防止するステップと、
該エンプティーフラグがアサートされている場合に該エンプティーフラグがディアサートされるまで該キューからの読込みを防止するステップと、
を更に備えたことを特徴とする請求項１０記載の方法。
【請求項１２】
少なくとも４つの前記ドメインがあることを特徴とする請求項８記載の方法。
【国際調査報告】
2006518064.tif 000016