JP2007521538A - 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ - Google Patents

要求駆動型クロック・スロットリング電力低減を用いるプロセッサ Download PDF

Info

Publication number
JP2007521538A
JP2007521538A JP2005509229A JP2005509229A JP2007521538A JP 2007521538 A JP2007521538 A JP 2007521538A JP 2005509229 A JP2005509229 A JP 2005509229A JP 2005509229 A JP2005509229 A JP 2005509229A JP 2007521538 A JP2007521538 A JP 2007521538A
Authority
JP
Japan
Prior art keywords
unit
clock
stall
bit
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005509229A
Other languages
English (en)
Other versions
JP4524251B2 (ja
JP2007521538A5 (ja
Inventor
ボーズ、プラディップ
シトロン、ダニエル、エム
クック、ピーター、ダブリュ
エマ、フィリップ、ジー
ジェイコブソン、ハンス、エム
クドバ、プラブハカル、エヌ
シュスター、スタンレー、イー
リバース、ジュード、エイ
ジュバン、ビクター、ブイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority claimed from PCT/US2003/026531 external-priority patent/WO2005031565A1/en
Publication of JP2007521538A publication Critical patent/JP2007521538A/ja
Publication of JP2007521538A5 publication Critical patent/JP2007521538A5/ja
Application granted granted Critical
Publication of JP4524251B2 publication Critical patent/JP4524251B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • 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/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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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)
  • Advance Control (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Microcomputers (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)

Abstract

【課題】 感知できるほどの性能損失なしでプロセッサの電力消費を低減させること。
【解決手段】 スカラ・プロセッサ又はスーパースカラ・プロセッサのような同期式集積回路である。回路コンポーネント又はユニットが、共通システム・クロックによってクロック駆動され、該共通システム・クロックに同期される。クロック駆動ユニットの少なくとも2つが、多数のレジスタ・ステージ、例えばパイプライン・ステージを含む。クロック駆動ユニット内のローカル・クロック生成装置が、共通システム・クロック及び1つ又はそれ以上の他のユニットからのストール状態を組み合わせ、レジスタ・クロック周波数を上下に調整する。
【選択図】 図2

Description

本発明は、一般に、複数のクロック駆動されたコンポーネント又はユニットからなるマイクロプロセッサ又はシステムにおける電力消費の低減及び制御に関する。
半導体技術及びチップ製造の進歩により、オンチップ・クロック周波数、単一チップ上のトランジスタの数、及びダイ・サイズ自体が着実に増大し、これに対応してチップ供給電圧も増加してきている。一般的に、クロック駆動された所定のユニットが消費する電力は、その内部で切り換わる周波数と共に直線的に増加する。したがって、チップ供給電圧の減少にもかかわらず、チップ電力消費も同様に増大している。このチップ電力の増大の当然の結果として、チップ・レベル及びシステム・レベルの両方において、冷却及びパッケージング・コストが増大することになる。バッテリ寿命が重要であるシステム(例えば、手持ち式、携帯型、及びモバイル・システム)の末端部分においては、性能を許容できないレベルまで低下させることなく正味エネルギーを減少させることが重要である。したがって、マイクロプロセッサの電力損失の増大が、将来の性能向上のための主な障害になってきている。
スカラ・プロセッサは、一度に1つの命令をフェッチし、発行/実行する。こうした命令の各々は、スカラ・データ・オペランド上で動作する。こうしたオペランドの各々は、単一の又はアトミックなデータ値又は数である。スカラ・プロセッサ内のパイプライン化は、シングル・イシュー・パラダイムを保持しながら、並行処理として知られるもの、すなわち所定のクロック・サイクルにおける多数の命令の処理をもたらす。
スーパースカラ・プロセッサは、所定のマシン・サイクルにおいて多数の命令をフェッチし、発行し、実行することができる。さらに、通常、各々の命令のフェッチ、発行、及び実行経路はパイプライン化され、さらなる並行処理を可能にする。スーパースカラ・プロセッサの例には、IBM Corporation社からのPower/PowerPCプロセッサ、Intel Corporation社からのThe Pentium Pro(P6)プロセッサ・ファミリー、Sun Microsystems社からのthe Ultrasparcプロセッサ、Hewlett Packard Company(HP)社からのthe PA−RISCプロセッサ、及びerstwhile Compaq Corporation(現在はHP社と併合された)からのAlphaプロセッサ・ファミリーが含まれる。
典型的な形では、ベクトル・プロセッサは、パイプライン化され、単一のアーキテクチャ・ステップ又は命令におけるアレイ全体の数について1つの演算を実行することができる。例えば、単一の命令は、アレイAの各エントリをアレイBの対応するエントリに付加し、その結果をアレイCの対応するエントリ内に格納することができる。ベクトル命令は、通常、基本的なスカラ命令の組の延長としてサポートされる。大きいアプリケーション内でベクトル化できるそれらのコード・セクションだけが、ベクトル・エンジン上で実行される。ベクトル・エンジンは、単一のパイプライン型実行ユニットとすることができ、或いは異なるデータについて同じ命令を同時に実行する多数の同一実行ユニットを有する、アレイ又は単一命令の多数データ(SIMD)マシンとして組織化することができる。例えば、一般的に、Crayスーパーコンピュータは、ベクトル・プロセッサである。
同期クロック式プロセッサ又はシステムは、該システムを含む全てのユニット又はコンポーネントを駆動する単一のグローバル・マスター・クロックを有する。場合によっては、クロックのレシオ導関数が、主又はマスター・クロック周波数より速いか又は遅い特定のサブユニットを循環させることができる。通常は、設計により、こうしたクロック決定が統計的に予め定められ、予め設定される。例えば、Intel Pentium4プロセッサは、表面上、ダブル・ポンピング又はウェーブ・パイプラインとして当該技術分野において周知のものを用いて、チップ・マスター・クロックの2倍速い整数パイプをクロック駆動する。こうしたクロック倍速化技術は、プロセッサの実行速度及び性能を増大させるものである。しかしながら、バス及びオフチップ・メモリ速度は、プロセッサ・コンピューティング論理コアに追いつかなかった。したがって、最先端の技術を用いたプロセッサは、主プロセッサのクロック周波数の整数分の一である周波数で作動するオフチップ・バス及びキャッシュを有する。通常、これらのクロック作動周波数は、システム設計中に固定される。これは、現世代のプロセッサ複合体が、多数のクロック速度をもつことができるためである。場合によっては、プロセッサと外部バス又はメモリとの間の何らかの性能の不一致を軽減するために、より高性能のマシンにおいてダブル・ポンピング及びウェーブ・パイプラインが用いられる。
非特許文献1は、再生時に、すなわち特定のチップ領域、コンポーネント、又はラッチを供給するローカル・クロック・バッファ(LCB)内で、クロックを使用不可にすることができる同期クロック・ゲーティングを用いる電力低減について説明する。より粗いレベルの制御において、クロックは、機能上の境界に沿ってゲート制御される。より細かいレベルの制御において、クロックは、個々のラッチにおいてゲート制御される。例えば、非特許文献2は、各サイクルにおいてディスパッチされ、実行される命令に基づいてクロックを異なる実行ユニットにゲート制御することを教示する。
粗い粒子のユニット・レベルのクロック・ゲーティングは、プロセッサが、一連の特定の機能クラスの命令、例えば、整数のみ又は浮動小数点のみの命令を実行する場合に有利である。入力作業負荷が、プロセッサが整数コードのみを見るというものであるとき、浮動小数点ユニットへのクロック再生装置を使用不可にすることができる。同様に、浮動小数点のみの演算の際に、整数ユニットへのクロックを使用不可にすることができる。このことにより、相当量のチップ電力を節約することができる。粗いアイドル制御は、通常、連続的な命令を通したソフトウェアを用いて、又はアイドル期間を検出するためのハードウェアを用いて、局所的に行われる。通常、細かいアイドル制御は、無効なデータ又は重要度が低いデータの不必要な伝搬を回避することによって、命令のデコード中に局所的にも行われる。起点の初期点から下流のステージ又はユニットへのゲーティング制御情報の原因となるフローは、フィード・フォワード・フローと呼ばれている。こうした流路は、明白なバックワード・フローを有するループを含むことができるが、原因・結果情報フローは、依然として、フィード・フォワード・プロセスであると考えられる。このように、粗いアイドル制御及び細かいアイドル制御の両方が自動的にトリガされ、フィード・フォワードされる。
他方、フィード・フォワード・フローを調整するために下流のパイプラインのストール信号を用いることにより、フィードバック制御システムが構成される。ここで、制御情報のフローは、下流の「結果」から上流の「原因」までのものである。粗い及び細かいストール制御は、主として、パイプライン型プロセッサにおける有効なストール・データの上書きを防止するために用いられるが、こうした機構を用いて、電力消費を節約することもできる。例えば、非特許文献3は、同期パイプラインにおける電力低減のための細かい粒子のストール伝搬機構を提案しており、これは、先に参照した非特許文献2におけるような、「有効」ビットを用いるクロック・ゲーティングのより従来型の細かい粒子のフィード・フォワード機構を補完するものである。非特許文献4も参照されたい。しかしながら、非特許文献3におけるように、刊行された細かい粒子のストール・ゲーティング(フィードバック)機構は、本発明におけるような情報のフロー速度(クロック又はバス帯域スロットリングを介する)を制御するために用いられない。
アドレス指定する必要がある粗いアイドル制御から少なくとも2つの問題が生じる。第1に、大きな過渡電流の低下及び増大は、オンチップ供給電圧における許容できないレベルの誘電(Ldi/dt)ノイズをもたらすことがある。第2に、正しい機能演算を維持するために処理を断続的にゲート制御するために、オーバーヘッド・サイクルが必要とされる。作業負荷におけるより細かい粒子の相変化のためにゲート制御モードと使用可能モードとの間の切り換えを頻繁に行いすぎると、許容できない性能への影響がもたらされる。
さらに、先端技術の細かいアイドル制御は、例えば、データ無効条件又は重要度が低いオペランド条件に基づいて、ステージ・レベルのクロック・ゲーティングをパイプライン化するための局所的に生成されたゲート信号又は条件に依存している。これらの最先端の手法は、予測又は予想ベースでゲーティング信号を生成するものではない。したがって、ゲート信号をアサーションの前に利用可能にし、エラーのないクロック・ゲーティング演算のための適切な期間アサートしなければならないので、タイミング要件が重要になることが多い。非特許文献5は、これらの制約により、設計タイミング分析がどのように著しく複雑になり、さらにクロック周波数性能が低下されるかを説明する。
基本制御機構がフィード・フォワード(原因・結果フロー)式であろうと又はフィードバック(結果・原因フロー)に基づいていようと、最先端のクロック・ゲーティング技術は、粗いものであっても細かいものであっても、空間制御専用でもある。これは、マシンの領域又は他の場所における一時的動作又は履歴に関係なく、影響される領域における冗長クロッキングを排除するために、利用情報が用いられるためである。下流(消費者)のユニット及びステージ(例えば、実行パイプ又は発行キュー)における動作状態及びイベントは、非隣接領域(例えば、命令フェッチ又はディスパッチ・ユニット)における上流(製造者)のクロッキング又は情報フロー速度を調整するようにフィードバックされない。同様に、上流の製造者領域における動作状態及びイベントは、下流の消費者クロッキング又は情報フロー速度を調整するようにフィード・フォワードされない。また、ゲーティング・オフ・クロック信号は、典型的には全か無であり、ここで、クロック信号は使用可能にされるか否かのいずれかである。
2001年6月12日にSproch他に付与された、「Method and System for Pipe Stage Gating Within an Operating Pipelined Circuit for Power Saving」という名称の米国特許第6,247,1342号明細書 Rabasy、Jan M.及びPedram、ed.著、Low Power Design Methodologies(Kluwer Academic Publishers、1996年) Georsa他著、A2.2W、80MHz、superscalar RISC microprocessor、IEEE Journal of Solid State Circuits、vol.29、no.12、1994年12月、pp.1440−1454 Jacobson他著、「Synchronous interlocked pipeline」、IEEE ASYNC−2002 conference、2002年4月 Gowan他著、「Power considerations in the design of the Alpha 21264 microcessor」、予稿集、1998 ACM/IEEE Design Automation Conference、pp.726−731(1998年6月) Gowan,M.K.、Biro,L.L.及びJackson,D.B.、Power considerations in the design of the Alpha 21264 microcessor、Proc.1998 ACM/IEEE Design Automation Conference、pp.726−731(1998年6月) Ohnishi,M.、Yamada,A.、Noda,H.及びKambe,T.著、「Method of Redundant Clocking Detection and Power Reduction at the Rt Level Design」、Proc.Symp.On Low Power Electronics and Design(ISLPED)、1997年、pp.131−136
このように、性能(オーバーヘッド)の低下を招くことなく、下にある回路に対する大きな電流/電圧の揺れがなく、細かい粒子の空間及び一時的粒度で作動できる接続されたパイプライン化ユニットのための改善されたクロック制御に対する必要性がある。
感知できるほどの性能損失なしでプロセッサの電力消費を低減させることが、本発明の目的である。
本発明は、スカラ・プロセッサ又はスーパースカラ・プロセッサのような同期式集積回路である。回路コンポーネント又はユニットが、共通のシステム・クロックによってクロック制御され、該共通システム・クロックに同期される。クロック制御されるユニットの少なくとも2つが、例えば、パイプライン・ステージのような多数のレジスタ・ステージを含む。クロック駆動ユニットの各々におけるローカル・クロック生成装置が、共通システム・クロック及び1つ又はそれ以上の他のユニットからのストール状態を組み合わせてレジスタのクロック周波数を上下に調整する。
以下の及び他の目的、態様、並びに利点は、図面を参照して、本発明の例証となる実施形態の以下の詳細な説明からより良く理解されるであろう。
ここで図をより具体的に参照すると、図1は、典型的な最先端のパイプライン・スカラ・プロセッサ100及び対応する命令タイミング・ダイアグラムの高レベル・ブロック図を示す。主機能データ経路は、通常、命令ユニット(Iユニット)102及び実行ユニット(Eユニット)104と呼ばれる2つの主コンポーネント又はユニットに分けられる。Iユニット102及びEユニット104内の多くの詳細なサブユニット並びに例えば分岐予測論理のような機能論理は、本発明の説明に密接な関係がないので、こうしたプロセッサ100におけるクロック制御全体の説明を明確にするために省略される。この例のプロセッサ100は、ユニット、サブユニット、又は内部に含まれる付随する格納リソースの冗長クロッキングを防止するためのクロック・ゲーティングを含まない、パイプライン化されたスカラ設計を表す。
ユニット102、104の一方又は両方によりアクセスされるオンチップ格納部は、レジスタ・ファイル(REGファイル)106、命令キャッシュ(Iキャッシュ)108、及びデータ・キャッシュ(Dキャッシュ)110を含む。REGファイル106は、一般に、ユニット102、104の両方からアクセスできる共有リソースであり、したがって、別個のエンティティとして扱われる。Iキャッシュ108は、Iユニット・パイプのステージを終了させる第1のものであり、したがって、Iユニット102の一部と考えられる。Dキャッシュ110は、通常、Eユニット104のみからアクセス可能であるので、該Eユニット104の一部として扱われる。2つの別個のローカル・クロック・バッファ(LCB)112、114が、各々共通の同期クロック115を増幅し、これをユニット102、104の対応するものに分散させる。各々のユニット102、104は、入力キュー116I、116E及びパイプ118I、118Eを含む。任意に、Iユニット102及びEユニット104内に、共通システム・クロックのより細かい粒子分散、増幅、及び制御のために、LCB112、114のさらなる階層があってもよい。
この例の場合、コンピュータ・プログラムの命令は、Iキャッシュ108すなわちIユニット・パイプの第1ステージ内に含まれる。典型的には、Iキャッシュ・ミスを引き起こし得る種々の条件において、Iキャッシュ108は、プロセッサ・サイクルの変数をストールさせることができる。このストールは、前の命令転送ステージすなわち命令メモリ階層のより低いレベルにおけるミスの影響を暗黙的に吸収する。
同期クロック、パイプラインにおけるストールとは関係なく、LCB112、114を通して各ユニットを連続的に駆動する。スイッチング容量の変調及びパターン・ビットのばらつきが、非常にわずかな範囲ながらも電力消費を変化させる。その結果、プログラム実行の最初から最後までの各クロック時間にわたって、およそ同じ量のエネルギー(ここでは、正規化されたエネルギー単位で表される)が費やされる。このように、節電技術、特に本発明による節電方法を用いることによって、相当なエネルギーを節約することができる。
粗いアイドル制御は、命令の組のアーキテクチャ内に含まれる特別の命令を挿入するコンパイラによって、コード生成中に合成することができ、代替的に、これらの命令は、例えば、特別の割り込みの処理時又は特定のコンテキストスイッチ時に、オペレーティング・システムによって動的に発行することができる。最も粗い制御レベルにおいて、特別のスリープ・タイプの命令又はコマンドを発行することができ、この特別のスリープ・コマンドは、一定時間チップの選択された部分に対してクロックを停止させる使用不可信号を生成することができる。この同じ特別のスリープ・コマンドを用いて、命令フェッチ・プロセスを使用不可にすることができる。同様に、使用不可信号が否定されるとき又はスリープ期間後に暗黙のウェークアップが開始するか、或いは明示的な非同期割り込みを用いてウェークアップを達成することができる。当該技術分野において公知のように、種々の電力切断モードには、種々のレベルのLCB階層において選択的に使用不可にされたクロック分散ツリーを提供することができる(例えば、ナップ、ドーズ、又はスリープ)。次のより細かいレベルの粒度において、コンパイラは、該コンパイラが統計的に計算段階を予測できるときはいつでも、特別の命令を挿入し、クロックを所定のユニット、例えば不動小数点ユニットにゲートオフし始めることが可能である。
自己検出機構を含ませることができ、ユニットがアイドル状態であることが分かったときはいつでも、該ユニットがそれぞれのクロックを一定時間使用不可にすることが可能になる。ハードウェアにおいては、プロセッサにおける局所化されたアイドル期間を検出するように論理を設計することができる。次に、検出により、アイドリング領域の一部又は全てについてクロック使用不可化をトリガすることができる。使用不可にされたユニット又はスリープ・ユニットによって受け取られた新しい作業に基づいて、ウェークアップが同様に自動開始される。
より細かいアイドル制御の場合には、動的に定められた信号が、ローカル・クロックをサイクル毎にゲート制御する。例えば、スーパースカラ・マシンのようなプロセッサは、命令時にデコードを決定し、次の実行サイクル中に機能ユニット・パイプをクロック・ゲート制御することができる。このことは、「順序正しい」発行機構を有するプロセッサにおいて良好に働くので、明らかにかつ十分早めに、すなわちデコード時又はディスパッチ時に、ゲート制御決定をなすことができる。命令のクラス情報がエントリごとのベースで中央発行キュー内に保存される場合には、故障している発行キューについても発行時にこうしたゲート信号を生成することができる。
いずれかのパイプライン化されたデータ経路において、冗長クロッキングを動的に検出し、例えば、論理パイプラインに沿ってデータ有効フラグ又はビットを伝搬することを選択的に防止することができる。このデータ有効フラグは、サイクルにおいて生成されたデータが有効であるときにだけ設定される。次いで、各論理ステージについてのデータ有効フラグを、ステージの出力ラッチの設定を可能にするクロックとして用いることができる。このように、無効なデータは、細かい粒子の有効ビット・ベースのパイプライン・ステージ・レベルのクロック・ゲーティングと呼ぶことができるものにおいて、次のパイプライン・ステージを通して不必要にクロック駆動されない。
特許文献1は、第1のステージの論理による従来のサイクル計算におけるパイプラインにおいて変化しない、新しく受信した重要度が低いオペランドとして識別する論理を有するプロセッサを教示する。こうした重要度が低いものとしての不変性の条件信号の検出を用いて、クロックを第1のステージに、続いて次のステージに使用不可にすることができる。
非特許文献6は、様々な種類の冗長ラッチ・クロッキングを防止するためのより精巧な他のアイドル検出機構について説明する。
粗いものであろうと細かいものであろうと、これらの最先端のアイドル制御機構は、上述のように自動的にトリガされ、空間又はフィード・フォワードされ、すなわちゲーティング条件又は信号は、ユニットのアイドリング又は無効状態の検出に基づいて局所的に生成され、不必要なサイクル毎のクロック及びこうした無効なビット又はアイドル状態ビットの存在下でのデータ伝搬を回避する。ユニットは、領域又は機能ユニット全体とすることができ、或いは、パイプライン・ステージ・ラッチの組とすることもできる。
対照的に、第1の実施形態において、要求駆動型クロック・スロットリング、実行ユニット(Eユニット)を用いて調整可能に作動する命令ユニット(Iユニット)を有する、パイプライン化されたスカラ・プロセッサが、2つのユニット間に製造者・消費者関係を確立する。製造者のIユニットは、実行ユニットが受信できるより速くない速度で処理するために、準備が完了したデータ使用可能命令を実行ユニットに送る。各々のユニットは、少なくとも1ビットの情報を有する動作状態レジスタを維持する。この実施形態において、Iユニット−Eユニットの対は、共通の同期クロックによってクロック駆動される。しかしながら、各ユニットについてのクロックは、ユニット間を通過したローカル・ユニット動作情報に基づいて局所的に修正され、制御される。各ユニットについてのローカル・クロック制御は、ローカル・ユニット及び遠隔ユニットの両方すなわち両方のユニットからの動作状態情報の関数である。
図2は、全く同じに表記された図1のものと同一の要素を有する、本発明による要求駆動型又は動作駆動型電力制御式スカラ・プロセッサ120の好ましい実施形態間の高レベルの例を示す。この実施形態において、各々の処理ユニット122、124は、ユニットの動作レベルを監視する動作監視・クロック制御論理126、128を含む。簡単な実施形態において、単一の動作状態ビット130は、ストール/非ストール状態を意味するストール・ビットである。Eユニット124がストール状態(現在の又は近い将来の)を感知したとき、該Eユニット124は、ストール・ビット130をアサートする。ストール・ビット130は、IユニットのクロックすなわちCLK−I132のクロック速度を下方調整し、Iユニット122をスロットル・ダウン)し、Eユニット124への命令速度を効果的に減少(又はカットオフ)させるために用いられる。制御の粒度によって、Eユニットの動作状態又はストール・ビット130は、それぞれのクロック、例えばEユニット124内の134を調整することができる。Eユニット124のストールが終了すると、CLK−I132は、その通常のクロック速度までスロットルされる。同様に、Iユニット122がストール状態(例えば、Iキャッシュ108のミス)に遭遇したとき、Iパイプ118Iが空であり、よってEユニット124、Iパイプの空のビット136について何も有していない幾つかのサイクルを用いて、CLK−E138を下方調整し、節電する。動作監視・クロック制御論理126、128のこのスロットル・アップ/ダウン能力は、多数の異なる方法を用いて実施することができ、その幾つかの例が以下に提供される。
したがって、例えば、各ユニットのクロックは、一度に1パイプライン・ステージずつ段階的に停止させることができる。同様に、ゲーティング条件が終了すると、ユニットのクロックが一度に1つのパイプライン・ステージだけ段階的に戻る。制御論理は、有効な情報を失うことなく、インターフェース論理の付加、バッファリング、又はエネルギーの無駄使いであるパイプラインの保持及び再循環なしに、各ユニットのクロックのタイムリーな段階的廃止又は段階的導入を可能にする。代替的に、ユニットのクロック周波数を遅くするか又は減少させて、節電することができる。また、引き続き、必要な場合/必要に応じてクロックを遅くして停止させることもできる。
図3は、ゲート制御シフト・レジスタ(GCSR)150が、システム・クロック115をIパイプ118Iの個々のステージ152に送ることを可能にする、動作監視・クロック制御論理一時停止回路の第1の例を示す。GCSR150は、クロック駆動された1ビット・フリップ・フロップ154の1ビット線形シフト・レジスタであり、1つが各I−PIPEステージ152に対応する。システム・クロック115は、ANDゲート156の1つにおいてGCSR150の各ビットにより各々において論理積演算され、ANDゲート出力としてのシステム・クロック115を、まとめてI−CLK158として対応するIパイプ・ステージ152に選択的に送る。通常、この例において、Eユニットのストールが検出されないとき、ストール・ビット130は、低いままであり、インバータ160によって逆にされる。GCSR150内に全て1を用いる場合、Iパイプ118Iは、フルスロットルである。したがって、ANDゲート156は、I−CLK158のような修正されていないシステム・クロック115を、各々が該システム・クロック115と同一のIパイプ・ステージ152の各々に送る。Eユニットのストール・ビット130が0のままである限り、1がGCSR150にシフトされ、これによりIパイプ118Iがフルスロットルに維持される。
この例において、Eユニットの動作監視・クロック制御論理(それぞれ図2の124及び128)は、近い将来のストール状態を感知したとき、Eユニットのストール・ビット130をアサートする。インバータ160によって逆にされたストール・ビット130は、0からGCSR150までを示し、次のシステム・クロック・サイクルにおいて該GCSR150にシフトされる。同じサイクルにおいて、GCSR150内に及び該GCSR150を通して0を同期的にシフトさせながら、第1のIパイプ・ステージすなわち図2のIキャッシュからのIパイプ・ステージを使用不可にし、Iパイプ181Iへのデータ入力を停止させる。ストール・ビット130がアサートされる限り、システムのクロック・サイクルごとに1回、0がGCSR150内にシフトされる。続いて、各々のゼロは、この例においては左から右に波及するANDゲートの連続するものを通してシステム・クロックを送ることができない状態にする。このように、Iパイプ・クロック158の1ステージが、左から右に一度にゲートオフされる。したがって、ストール・ビット130をアサートする前に、有効なIパイプ・エントリがIパイプ118Iを通してEユニットに続く。Iパイプ118I内の有効な情報を失うことを回避するために、少なくとも使用可能なEユニット・バッファ(キュー116E)空間がIパイプ118I内の有効なエントリの数と等しいときに、ストール・ビット130をアサートしなければならない。したがって、少なくとも使用可能なEユニット・バッファ(キュー116E)空間がIパイプ118I内の有効なエントリの数と等しいときに、ストール・ビット130をアサートしなければならない。極端な場合、後者は、単にIパイプ118Iの長さに等しい。したがって、保守的な設計において、利用可能な(自由な)キュー・エントリの数がIパイプ・ステージの数に等しくなる程度まで、Eユニットのキュー116Eが一杯になるときはいつも、Eユニット124がストール・ビット130をアサートする。従来の細かい粒子のステージ・レベルのクロック・ゲーティングにおけるように、Eユニット・キュー116E内の空のエントリ又は無効なエントリは、エントリごとの有効ビット(節電のために)を用いてゲート制御されると推定される。
同様に、ストール・ビット130が0に戻るとき、すなわちEユニットの動作が所定のレベルより下に戻ったことを検出したとき、逆の増加すなわちスロットル・アップ動作が生じる。ストール・ビット130が低いことにより、有効な入力データをIパイプ118Iにシフトした状態で、1のGCSR150へのシフトが同時にレジュームされる。したがって、連続する次のシステム・クロック・サイクルによって、I−CLK158がステージごとにIパイプ118Iに対して使用可能にされ、該Iパイプ118Iは、通常の作動をレジュームし、データをフルスロットルでEユニット124に送る。ステージごとにI−CLK158のオフ/オンをゲート制御することにより、大きな電流の揺れが防止され、これにより供給電圧におけるLdi/dtノイズの影響が最小になる。
図4は、オンデマンド型I−CLKスロットリングのための本発明の好ましい実施形態による図3の一時停止回路の代わりに用いることができる又はこれと共に含ませることができるスローダウン回路170の第2の例を示す。スローダウン回路170は、全く同じに表記された共有又は共通の要素を有する図3の一時停止回路にほぼ類似している。スロー選択172が、フリップ・フロップ/1ビット・トグル・カウンタ174及びANDゲート176の逆の組の入力の両方に提供される。スロー選択ビット172が高いときすなわちアサートされるとき、ANDゲート176は、システム・クロック115をクロックの1ビット・カウンタ174に選択的に送る。スロー選択GCSR178は、最終ステージの出力180が全てのANDゲート182に送られる点を除いて、図3のGCSR150にほぼ類似している。ANDゲート182は、図3のANDゲート156の一時停止選択機能を提供する3つの入力ANDゲートとすることができる。したがって、ANDゲート182は、最終ステージの出力180を、システム・クロック115及びGCSR(この例においては図示されない図3の130)からの対応するステージ出力と組み合わせることができる。ANDゲート182の個々の出力は、対応するIパイプ118Iのステージをクロック駆動する。
この実施形態において、Iユニットのクロック周波数は、スロー選択172に応答してスロットル・ダウン(アップ)させることができる。Eユニットは、スロー選択172をアサート(ディアサート)することによって、該Eユニット内の要求を減速させる(高める)Iユニットに警告する。さらに、1つ又はそれ以上のサイクルについて、I−CLK158を完全に一時停止する上述の特徴を保持することができ、図3を参照して上述されたように、一時停止は、Eユニット・キューがほぼ一杯であるときにトリガされ、よってGCSR150から対応する個々のANDゲート182への出力を使用不可にする。上述のように、I−CLK158は、Eユニットのアクティブ・キューの長さが、所定のしきい値より下に減少したときに再始動する。
通常の作動条件において、スロー選択172は低いものであり、1ビット制御カウントに、GCSR178への連続的な高いシフトを出力させる。したがって、通常、GCSR178は、全て1を含み、システム・クロック115は、修正されていないものをIパイプ・ステージ152に送る。ANDゲート176は、スロー選択172がアサートされ、例えばストールに起因するEユニット内の要求スローダウンを知らせるとき、1ビット制御カウンタが切り替わるのを防止する。逆の組の入力に対するスロー選択174が上昇し、ANDゲート176がシステム・クロック115を送るとき、1ビット制御カウンタ174が解放される。1ビット制御カウンタ174は、0と1の交互シーケンスをGCSR178に送るのを切り替え始める。この交互パターンがGCSR178を通して伝搬すると、ANDゲート182へのI−CLK制御が代替クロック・サイクルにおいて使用可能及び使用不能にされる。効果的に、このことにより、I−CLK158として提供される主システム・クロック周波数が半分になる。
図5は、個々のGCSRステージの出力が対応する個々のANDゲート182に送られる、図3及び図4の実施形態の変形を示す。作動は、ほぼ図4に類似しているが、最終I−PIPEのクロック・スロットリングの点で異なる。スロットル(速度ダウン)段階中、定常状態の作動のもとで、Iパイプの代替的なステージが、有効にシステム・クロック周波数の半分において、所定のシステム・クロック・サイクルでクロック駆動される。有効ビット(V)が、各Iパイプ・ステージ内にほんの一例として示される。こうした有効ビットは、通常、図1乃至図5の例のIパイプ、Eパイプ、Iキュー及びEキュー構造体内に存在する。上流のIユニットの有効ビットは、Eユニット内に下流側に伝搬され、従来のフィード・フォワード・スキームに従って、細かい粒子のステージ・レベルのクロック・ゲーティングが付加的な電力を節約することを可能にする。この例において、パイプライン・ステージ毎の有効ビットは、ローカル・ステージ・レベルのクロックを合成するAND構造体のために付加的なゲーティングを提供する。本実施形態の特定のIパイプ・クロック構成は、スロットル(速度ダウン)モード中にIパイプ・ステージ内の有効データに上書きするのを防止するために、下にある回路(図示せず)を必要とし、例えば、ステージの間又は各ラッチ・ステージのマスター部分とスレーブ部分との間の予備の中間プレースホルダ・ラッチにより、情報の格納を二倍にすることが可能になる。
図6及び図7は、図3の断面に対応するスカラIパイプ118Iのさらに詳細な更に別の例190と、対応するタイミング・ダイアグラムとを示す。各々のIパイプ・ステージ152は、レジスタ・ステージ192によって入出力がひとまとめにされている。この例において、GCSRラッチ154の各々は、2ステージのラッチであり、本質的に、単一ビットの直列入力並列出力レジスタである。2ステージのラッチ154は、第1のステージ・ラッチ194及び第2のステージ・ラッチ196を含む。第1のステージ・ラッチ194は、レジスタ・ステージ192内のラッチと同一である。第2のステージ・ラッチ196は、第1のステージ・ラッチ194のものから負のクロック極性を用いて使用可能にされる。したがって、例えば、クロックの立ち上がり端において第1のステージ・ラッチ194がクロック駆動された状態で、クロック立下り端において第2のステージ・ラッチ196がクロック駆動され、有効な入力がIクロック・ドライバ156に提供されることを確実にする。図3乃至図5を参照し、図6においてここで述べられたように、Iクロック・ドライバ156は、ANDゲートであり、ANDゲートとして機能する。しかしながら、必要に応じて、各々のANDゲート156は、二相のクロック・ドライバとすることができるクロック・ドライバを含むことができる。入力ブロック198は、特定のタイプの選択された一時停止/スロー制御論理のための適切なクロック制御論理を提供する。したがって、図3の例において、入力ブロック198は、この第1のステージについて、インバータ160及びラッチ154の第1のステージ194を含む。同様に、図4及び図5の例の場合、入力ブロック130は、ラッチ174及びANDゲート176を含む。
図8は、本発明をパイプライン式スーパースカラ・プロセッサ200に適用する例を示す。このスーパースカラ・プロセッサ200は、Iユニット202及びEユニット220を含む。Iユニット202は、命令キャッシュ(Iキャッシュ)204、命令フェッチ・ユニット(IFU)及び分岐ユニット(BRU)の両方を含む組み合わせられたIFU/BRU(206)、ディスパッチ・ユニット(DPU)208、完了ユニット(CMU)210、及び分岐履歴テーブル(BHT)及び分岐ターゲット・アドレス・キャッシュ(BTAC)を含む分岐アドレス・ユニット214を含む。さらに、Iユニット202は、監視・クロック制御論理216を含む。これらのユニット204、206、208、210及び214は、対応する公知のこうしたユニットとほぼ同じように作動するが、監視・クロック制御論理216によって以下に述べられるように、本発明に従ってクロック駆動される。
通常、IFU/BRU206のIFUは、サイクル毎にIキャッシュ204からの命令をフェッチする。フェッチ帯域幅(fetch_bw)(従来技術において、プロセッサは、サイクル毎にフェッチされる命令の最大数として固定される)は、監視・クロック制御論理216によって実行中に調整することができる。IFUは、利用可能な空きスペースに従って、フェッチ・キュー(FETCH_Q)内のフェッチされた命令をIFU/BRU206内に配置する。IFU内の命令フェッチ・アドレス・レジスタ(IFAR)は、命令フェッチを案内し、各サイクルのはじめに次のフェッチ・アドレスを提供する。IFUは、各サイクルについての次のフェッチ・アドレスの各々を、(a)前のサイクルのFETCH_Qにフェッチされた命令の数を考慮するために十分にインクリメントされた、前のサイクルのIFAR値である次の順次アドレス、(b)前のサイクルにおいて取られるべき、解決される又は予測される分岐命令ターゲット、又は(c)前に予測を誤ったと判断された後の、分岐命令の正しく解決されたフェッチ・アドレスのうちの1つに設定する。分岐・命令フェッチ・アドレス予測ハードウェア206は、分岐履歴テーブル(BHT)及び分岐ターゲット・アドレス・キャッシュ(BTAC)を含み、命令フェッチ・プロセスを案内する。対応する固定帯域幅のパラメータ(fetch_bw又はdisp_bw)によって定められるような、各々のアクティブ・フェッチ(又はディスパッチ)サイクルにおいて、通常、一定数の命令がフェッチ(又はディスパッチ)される。しかしながら、スローダウン/一時停止が必要であることをEユニット220が示すとき、好ましい実施形態のプロセッサ(この例においては200)が、上述のクロック・スロットリングに加えて、fetch_bw及び/又はdisp_bwの各々の値を動的に調整する。
Eユニットからのスローダウン/一時停止(又はその逆の速度アップ/継続)信号は、該Eユニット内で生成され、監視される状態信号の組み合わせ関数として合成される。こうした状態信号は、(a)発行キューFXQ229、LSQ232、FPQ240及びVXQ246が一杯であるか空いているかの表示、(b)Dキャッシュ238のヒット・イベント又はミス・イベント、(c)Eユニットの内部共有バス・トラフィック輻輳又はその欠如(例えば、完了ユニット240に完了情報を伝えるために単一バスを共有(及びアービトレート)することができる)、又は(d)分岐の予測ミス又は他の形態の推測ミスのために生成された実行パイプ・フラッシュ又は再発行条件を含むことができる。プロセッサ分岐命令は、この例のFXUパイプにおいて実行することができる。しかしながら、代替的に、分岐命令を実行するために、別個の並行BRUパイプが存在してもよい。
Eユニットからのスローダウン/一時停止信号をアサートすることは、I−CLKの一方又は両方をスロットルすることによりIユニット・パイプライン流量をスロットルし、クロックを調整することなく、関連するIユニット・バス帯域幅をスロット及び/又は狭窄し、例えば、所定のアクセスにおいて、Iキャッシュからフェッチされたデータを受け取るラインの半分を使用不可にすることによって、fetch_bwを効果的に半分にすることができる。このように、スロットルされた帯域幅モードで節電するために、通常のエントリ数の半分が、命令バッファ(IFU206内の)にある。一般に、フェッチ帯域幅は、下流のEユニットのスローダウン/一時停止が示す重大度によって、ゼロまでといったように、通常モードの何分の一までもスロットルさせることができる。同様に、ディスパッチ・バス帯域幅(disp_bw)をスロットルさせて節電し、必要に応じて又は示されるように、より少ない命令を消費Eユニットの実行パイプにディスパッチすることができる。
Eユニット220は、固定小数点実行ユニット(FXU)222、ロード・ストア・ユニット(LSU)224、浮動小数点実行ユニット(FPU)226、及びベクトル・マルチメディア実行ユニット(VMXU)228を含む。FXU222は、固定小数点キュー229及び固定小数点ユニット実行ユニット・パイプ230を含む。LSU224は、ロード・ストア・キュー232及びロード・ストア・ユニット・パイプ234を含む。FXU222及びLSU224の両方とも、汎用レジスタ236と通信する。LSU224は、データ・キャッシュ238との通信を提供する。FPU226は、固定小数点キュー240及び固定小数点ユニット・パイプ242、並びに固定小数点レジスタ及びリネーム・バッファ244を含む。LSU224は、固定小数点リネーム・バッファ244とも通信する。VMXU228は、ベクトル拡張キュー246及びベクトル・マルチメディア拡張ユニット・パイプ248を含む。
ユニット229、230、232、234、236、238、240、242、246、248の各々は、以下に述べられるように本発明に従ってクロック駆動されるが、対応する公知のこうしたユニットとほぼ同一に作動する。いずれかの一般的な最先端のスーパースカラ・プロセッサと同様に、FXU222及びFPU226における動作は、所定の作業負荷実行段階中に相互排除的であることが極めて多い。この好ましい実施形態のプロセッサ200は、FPU226がアクティブであるとき及びその逆のときに、FXU222のローカル・クロックを使用不可にするか又はスローダウンさせることができる。さらに、この好ましい実施形態のプロセッサ200は、LSU224及びFPU226が互いにクロック速度を一時停止/遅くすることを可能にする。これらのユニット内の細かい粒子の要求駆動型クロック・スロットリング・モードは、既に説明されたユニット相互のより粗い粒子のモードに付加されるものである。
上記の好ましいスカラ・プロセッサの例と同様に、Eユニット220内のこれらの2つのユニット224、226は、直接データフロー経路の生産者・消費者関係を有するものではなく、すなわちLSU224とFPU226との間に情報の直接フローが存在しない。これらの2つのユニット224、226の間の通信は、データ・キャッシュ/メモリ及び浮動小数点レジスタ・ファイル244を介して間接的に行われる。典型的には、FPUパイプライン242は、幾つかのステージを有し(例えば、現代のギガヘルツ範囲のプロセッサにおいては6−8のステージ)、典型的なLSU実行パイプ234は、2−4ステージである。このため、現在のプロセッサが多数のレジスタ・リネーム・バッファを有することから、LSUパイプ234は、Dキャッシュ238のヒット段階中に実質的にFPUパイプ242より前に稼動する傾向がある。他方、クラスター化されたDキャッシュ238のミス段階中に、有効なLSU経路の待ち時間が劇的に増大することがある。一連の迅速ミスがDキャッシュ238をストールさせる場合、LSU発行キュー232が一杯になり、そのことが上流の製造者をストールさせることがある。このことは、上流のリソースの動作駆動型の細かい粒子の一時的クロック・ゲーティング又はFPU226のローカル・クロック・スロットリングを用いる本発明によって利用される。
図9は、Eユニット220のLSU224及びFPU226のより詳細な例を示す。この実施形態において、LSUイベント/動作状態モニタ論理250が、種々のLSUキューの利用を監視し、LSU226についての動作状態を得る。この例において、LSUキューは、ロード・ストア・キュー(LSQ)232、保留ロード・キュー(PLQ)252、及び保留ストア・キュー(PSQ)254、並びにDキャッシュ236を含む。Dキャッシュ236が監視され、キャッシュ・ミス・イベントが記録される。これらの4つのユニット232、236、252、254は、単に例として選択されるものであり、より少ない又はより多いキュー及びイベントを監視できることが理解される。この例の場合、LSUイベント/動作状態モニタ論理250は、この例においてFPU226に送られる出力ストール・ビット256をアサートする。より細かい制御が望まれる場合には、1組のストール・ビットを用いることができる。Iユニット202に対する制御及びIFU又はDISPATCHユニット206のためのクロック制御のために、ストール・ビット256を送ることができる。
例として、LSU動作状態モニタ論理出力ストール・ビット256及びFPUの出力258の両方を最初に用いて、動作状態モニタストール260がディアサートされ、LSU224及びFPU226の両方において通常のフルスロットル動作がもたらされる。FPU動作状態モニタストール・ビット258がアサートされる場合、例えば、FPQ内の利用度が高いために、LSU動作状態ストール・ビット256がアサートされないままになる。LSU動作状態ストール・ビット256がスロットル・ダウンされ、FPU226が、キャッシュ・ヒット段階のためにFPU226より先のLSU224に追いつくことが可能になる。逆に、LSU動作状態ストール・ビット256がアサートされたとき、FPU動作状態ストール・ビット258がアサートされないままである間、FPUのローカル・クロックがスロットダウンされる。LSU及びFPUのストール・ビットの両方が一緒にアサート/ディアサートされた場合、Eユニット220又はIユニット202内のいずれかの場所の他の状態条件によって、LSU及びFPUのローカル・クロックの両方が、スロットル・ダウンされるか又は同じ周波数まで加速される。
有利なことに、本発明は、他のプロセッサ又はシステム・ユニットにおける動作/非動作に応答して、ユニット又はユニット内のコンピュータを選択的にスローダウンし、加速し、又はゲートオフする、すなわち本発明は、種々のクロック制御粒度を有する。各々のユニットの局所的クロック制御は、動作と、データフロー方向に対して前方及び後方の両方に流れる情報とから取り出される。全か無かの従来技術のクロック・ゲーティングの代わりに、好ましい実施形態の適応クロック制御をフィード・フォワード及びフィードバック制御の両方に用いて、任意の帯域幅スロットリングを有するより柔軟に生成されたクロック・スロットリング機構を提供することができる。
このように、従来技術のパイプライン・ユニットのゲートオフにおいて失われ得る保留情報が、ユニット・キューにおいて適切なサイズを有する電流を維持する。ユニットは、種々のユニット内の動作に関係する情報によって動的に制御される。要求の減少を示す他のユニットにおける動作レベルに応答して、所定のコンポーネント内のクロック速度が段階的に下方に調整されるか、さらにゼロまで減少される。ユニット要求が通常に戻ったことを監視された動作レベルが示すとき、特定のコンポーネントにおけるクロック速度が、同じく段階的にその元の通常レベルまで回復される。1つ又はそれ以上のコンポーネントにおいて、ローカル・クロック速度が下方に調整される間、正味システム電力消費が比例して減少する。各々のコンポーネントのクロック速度は、タイムリーに、かつ、予測した方法で調整され、速度変更を行うハードウェア制御により、例えば、オーバーヘッド・ストール又は廃棄された命令の再計算からの感知できるほどの性能の損失はもたらされない。従来技術のプロセッサにおいてこうした損失から被る性能ペナルティは、ほぼゼロまで減少される。
周波数の下降又は上昇を調整するためのクロック速度スロットリングの段階的方法は、従来のクロック・ゲーティング方法と比較して、優れた(すなわち、より良好な)電流の揺れ(di/dt)特性を保証するものである。したがって、クロッキング速度の段階的減少又は増大によって、誘導性ノイズが最小にされる。その結果、好ましい実施形態のシステムは、感知できるほどの性能損失なしに、著しく少ない電力を消費する。感知できるほどの(アーキテクチャ上の)性能損失(例えば、サイクル又はIPC毎の命令)なしに、かつ、重要な付加的ハードウェアを必要とすることなく、平均電力が減少される。最大電力損失及び温度限界に忠実であることが厳しく求められる場合、本発明は、性能損失をわずかな所定の時間窓に制限しながら、電力消費をうまく制御し、通常の作動条件を維持し、迅速に通常に戻すことができる。
動的動作レベルの個々のシステム・コンポーネントは、チップ又はシステム全体にわたって伝搬される単一の同期クロックのフレームワーク内の他のコンポーネントに対するクロック速度を用いて監視される。さらに、局所的にクロック駆動される非同期(又は自動時刻指定式)ユニットを有する同期システム又はプロセッサ、或いはグローバルな非同期制御のもとで多数の同期クロック範囲を有するマルチクロック同期システムと違って、本発明は、非同期を維持するために、別個にクロック駆動されるコンポーネント間の「ハンドシェイキング」プロトコルを必要としない。付加的に、本発明は、種々のコンポーネントにおけるクロック速度を動的に調整し、通常、従来の粗い粒子のクロック・ゲーティング方法に関連した誘電ノイズを最小にする。
本発明は、幾つかの(例示的な)好ましい実施形態に関して説明されたが、当業者であれば、本発明が、添付された特許請求の範囲の精神及び範囲内で修正をなし得ることを理解するであろう。
典型的な最先端のパイプライン化スカラ・プロセッサの例及び対応する命令タイミング図を示す。 本発明による、好ましい実施形態の要求駆動型又は動作駆動電力制御スカラ・プロセッサの高レベルの例を示す。 ゲート制御シフト・レジスタ(GCSR)により、システム・クロックをI−PIPEの個々のステージに通すことが可能にある、動作監視・クロック制御論理一時停止回路の第1の例を示す。 オンデマンド式I−CLKスロットリングのための、本発明の好ましい実施形態による図3の一時停止回路の代わりに用いることができるか又は該図3の一時停止回路と共に含ませることができる、スローダウン回路の第2の例を示す。 個々のGCSRステージ出力が対応する個々のANDゲートに送られる、図3及び図4の実施形態の変形を示す。 図3の断面に対応するスカラIパイプの更に別の例をより詳細に示す。 図3の断面に対応するスカラIパイプの更に別の例をより詳細に示す。 本発明をパイプライン・スーパースカラ・プロセッサに適用する例を示す。 図8におけるようなEユニットのLSU及びFPUのより詳細な例を示す。
符号の説明
100:プロセッサ
102、122:命令ユニット
104、124、220:実行ユニット
108:命令キャッシュ
110、238:データ・キャッシュ
115:システム・クロック
120:スカラ・プロセッサ
126、128:動作監視・クロック制御論理
130:ストール・ビット
150、178:ゲート制御シフト・レジスタ
156、176、182:ANDゲート
174:1ビット・カウンタ
200:スーパースカラ・プロセッサ
216:監視・クロック制御論理

Claims (33)

  1. 共通のシステム・クロックと、
    前記共通システム・クロックに同期された複数のクロック駆動ユニットであって、そのうちの少なくとも2つについての各々が、
    複数のレジスタ・ステージと、
    前記共通システム・クロック及びストール状態を受け取り、前記ストール状態に応答して前記複数のレジスタのクロック周波数を調整するローカル・クロック生成装置と
    を備える、クロック駆動ユニットと
    を備える同期式集積回路。
  2. 前記ローカル・クロック生成装置が複数の単一ビット・カウンタを含むゲート制御シフト・レジスタ(GCSR)を備える、請求項1に記載の同期式集積回路。
  3. 前記ローカル・クロック生成装置は、前記複数の単一ビット・カウンタの1つから出力を受け取ること、及び、前記出力を前記システム・クロックと組み合わせてレジスタ・ステージ・クロックを生成することを、その各々が行う、複数のローカル・クロック・ドライバをさらに備える、請求項2に記載の同期式集積回路。
  4. 前記複数のレジスタ・ステージがレジスタ・パイプラインのステージであり、前記GCSRは、各パイプライン・ステージについて前記複数の単一ビット・カウンタの1つを含む、請求項3に記載の同期式集積回路。
  5. 前記集積回路がスカラ・プロセッサであり、少なくとも2つのクロック駆動ユニットが、前記スカラ・プロセッサ内にIユニット及びEユニットを備え、前記Iユニットはストール状態を前記Eユニットに提供し、Eユニットはストール状態を前記Iユニットに提供する、請求項4に記載の同期式集積回路。
  6. 前記スカラ・プロセッサが、
    前記Eユニットと通信するデータ・キャッシュと、
    前記Iユニット及び前記Eユニットと通信するレジスタ・ファイルと
    をさらに備え、
    前記Iユニットは、Iキャッシュと、前記Iキャッシュからデータを受け取るIキューと、前記Iキューからデータを受け取るIパイプとを備え、
    前記Eユニットは、前記Iパイプからデータを受け取るEキューと、前記Eキューからデータを受け取るEパイプとを備える、請求項5に記載の同期式集積回路。
  7. 前記Iユニット及び前記Eユニットの各々において、前記GCSRのそれぞれにおける出力が、前記複数のクロック・ドライバのうちの対応する1つにおいて前記システム・クロックと組み合わされ、該複数のクロック・ドライバの各々は、対応するパイプライン・ステージを個々にゲート制御する、請求項6に記載の同期式集積回路。
  8. ストール状態ビットが前記GCSRの第1のステージに提供される、請求項7に記載の同期式集積回路。
  9. ストール状態ビットが1ビット・カウンタに提供され、前記1ビット・カウンタは、前記ストール状態ビットがアサートされなければ設定状態に保持され、前記ストール状態ビットがアサートされたときにカウントを行い、前記1ビット・カウンタの出力は前記GCSRの第1のステージに提供される、請求項7に記載の同期式集積回路。
  10. 前記GCSRの最後の出力が、前記複数のクロック・ドライバの各々において前記システム・クロックと組み合わされ、ストール状態ビットが1ビット・カウンタに提供され、前記1ビット・カウンタは、前記ストール状態ビットがアサートされなければ設定状態に保持され、前記ストール状態ビットがアサートされたときにカウントを行い、前記1ビット・カウンタの出力は該GCSRの第1のステージに提供される、請求項6に記載の同期式集積回路。
  11. 前記スカラ・プロセッサがスーパースカラ・プロセッサであり、前記Iユニットは、前記Eユニットから前記ストール状態ビットに応答してIキャッシュ・フェッチ帯域幅をさらに調整する、請求項5に記載の集積回路。
  12. 前記Eユニットが、
    前記Iユニットから命令を受け取り、汎用レジスタ/リネーム・バッファ・ユニットと通信する固定小数点ユニットと、
    前記Iユニットから命令を受け取り、前記汎用レジスタ/リネーム・バッファ・ユニット及びデータ・キャッシュと通信するロード・ストア・ユニットと、
    前記Iユニットから命令を受け取り、浮動小数点レジスタ/リネーム・バッファ・ユニットと通信する浮動小数点ユニットであって、前記ロード・ストア・ユニットは前記浮動小数点レジスタ/リネーム・バッファ・ユニットとさらに通信し、前記ロード・ストア・ユニットはストール状態を前記浮動小数点ユニットに提供し、前記浮動小数点ユニットはストール状態を前記ロード・ストア・ユニットに提供する、浮動小数点ユニットと、
    前記Iユニットから命令を受け取り、前記Iユニット内の完了ユニットと通信するベクトル・マルチメディア拡張ユニットと
    を備える、請求項11に記載の同期式集積回路。
  13. 前記Iユニットが、
    Iキャッシュと、
    前記Iキャッシュから命令を受け取る命令フェッチ・ユニット/分岐ユニット(IFU/BRU)と、
    前記IFU/BRUから命令を受け取り、受け取った前記命令を前記Eユニットに提供する、ディスパッチ・ユニットと
    をさらに備える、請求項11に記載の同期式集積回路。
  14. 前記GCSRの各々における各ステージからの出力が、前記システム・クロックと組み合わされ、対応するパイプライン・ステージを個々にゲート制御する、請求項12に記載の同期式集積回路。
  15. ストール状態ビットが前記GCSRの第1のステージに提供される、請求項14に記載の同期式集積回路。
  16. 前記GCSRの各々において、ストール状態ビットが1ビット・カウンタに提供され、前記1ビット・カウンタは、前記1ビット・カウンタがアサートされなければ設定状態に保持され、前記ストール状態ビットがアサートされときにカウントを行い、前記1ビット・カウンタの出力は前記GCSRの各々の第1のステージに提供される、請求項14に記載の同期式集積回路。
  17. 前記GCSRの最後の出力が、前記複数のクロック・ドライバの各々において前記システム・クロックと組み合わされ、ストール状態ビットが1ビット・カウンタに提供され、前記1ビット・カウンタは、前記ストール状態ビットがアサートされなければ設定状態に保持され、前記ストール状態ビットがアサートされたときにカウントを行い、前記1ビット・カウンタの出力は前記GCSRの第1のステージに提供される、請求項14に記載の同期式集積回路。
  18. 共通のシステム・クロックと、
    前記システム・クロックによってクロック駆動されるIユニットと、
    前記システム・クロックによってクロック駆動され、前記Iユニットと通信状態にあるEユニットと
    を備え、
    前記Iユニット及び前記Eユニットの各々は、
    複数のレジスタ・ステージと、
    前記共通システム・クロック及びストール状態を受け取り、前記ストール状態に応答して前記複数のレジスタのクロック周波数を調整するローカル・クロック生成装置であって、前記Iユニットがストール状態を前記Eユニットに提供し、前記Eユニットがストール状態を前記Iユニットに提供する、ローカル・クロック生成装置と
    を備える、スカラ・プロセッサ。
  19. 前記ローカル・クロック生成装置が、
    複数の単一ビット・カウンタを含むゲート制御シフト・レジスタ(GCSR)と、
    その各々が、前記複数の単一ビット・カウンタの1つから出力を受け取り、前記出力を前記システム・クロックと組み合わせてレジスタ・ステージ・クロックを生成する、複数のローカル・クロック・ドライバと
    を備える、請求項18に記載のスカラ・プロセッサ。
  20. 前記複数のレジスタ・ステージがレジスタ・パイプラインのステージであり、前記GCSRが各パイプライン・ステージについて1つの単一ビット・カウンタを含む、請求項19に記載のスカラ・プロセッサ。
  21. 前記Eユニットと通信するデータ・キャッシュと、
    前記Iユニット及び前記Eユニットと通信するレジスタ・ファイルと、
    Iキャッシュと、前記Iキャッシュからデータを受け取るIキューと、前記Iキューからデータを受け取るIパイプと、を備えるIユニットと、
    前記Iパイプからデータを受け取るEキューと、前記Eキューからデータを受け取るEパイプと、を備えるEユニットと
    をさらに備える、請求項20に記載のスカラ・プロセッサ。
  22. 前記Iユニット及び前記Eユニットの各々は、前記GCSRの出力を、前記複数のクロック・ドライバのうちの対応する1つにおいて、前記システム・クロックと組み合わされ、前記複数のクロック・ドライバの各々は、対応するパイプライン・ステージを個々にゲート制御する、請求項21に記載のスカラ・プロセッサ。
  23. ストール状態ビットが前記GCSRの第1のステージに提供される、請求項22に記載のスカラ・プロセッサ。
  24. ストール状態ビットが1ビット・カウンタに提供され、前記1ビット・カウンタは、前記ストール状態ビットがアサートされなければ設定状態に保持され、前記ストール状態ビットがアサートされたときにカウントを行い、前記1ビット・カウンタの出力は前記GCSRの第1のステージに提供される、請求項22に記載のスカラ・プロセッサ。
  25. 前記GCSRの最後の出力が前記複数のクロック・ドライバの各々において前記システム・クロックと組み合わされ、ストール状態ビットが1ビット・カウンタに提供され、前記1ビット・カウンタは、前記ストール状態ビットがアサートされなければ設定状態に保持され、前記ストール状態ビットがアサートされたときにカウントを行い、前記1ビット・カウンタの出力は前記GCSRの第1のステージに提供される、請求項21に記載のスカラ・プロセッサ。
  26. 共通のシステム・クロックと、
    前記システム・クロックによってクロック駆動されるIユニットであって、
    Iキャッシュと、
    前記Iキャッシュから命令を受け取る命令フェッチ・ユニット/分岐ユニット(IFU/BRU)と、
    前記IFU/BRUから命令を受け取り、実行のために受け取った前記命令を送るディスパッチ・ユニットと
    を備えるIユニットと、
    前記システム・クロックによってクロック駆動されるEユニットであって、
    前記Iユニットから命令を受け取り、汎用レジスタ/リネーム・バッファ・ユニットと通信する固定小数点ユニットと、
    前記Iユニットから命令を受け取り、前記汎用レジスタ/リネーム・バッファ・ユニット及びデータ・キャッシュと通信するロード・ストア・ユニット(LSU)と、
    前記Iユニットから命令を受け取り、浮動小数点レジスタ/リネーム・バッファ・ユニットと通信する浮動小数点ユニット(FPU)であって、前記ロード・ストア・ユニットは前記浮動小数点レジスタ/リネーム・バッファ・ユニットとさらに通信し、前記ロード・ストア・ユニットはストール状態を該浮動小数点ユニットに提供し、前記浮動小数点ユニットはストール状態を前記ロード・ストア・ユニットに提供する、浮動小数点ユニットと、
    前記Iユニットから命令を受け取り、前記Iユニット内の完了ユニットと通信するベクトル・マルチメディア拡張ユニットと
    を備えるEユニットと、
    前記LSU及び前記FPUの各々内にあって、前記共通システム・クロックとストール状態とを受け取り、前記ストール状態に応答してユニット・レジスタのクロック周波数を調整するローカル・クロック生成装置と
    を備える、スーパースカラ・プロセッサ。
  27. 前記ストール状態がユニット・レベルの動作を示す、請求項26に記載のスーパースカラ・プロセッサ。
  28. 前記IユニットがEユニットのストール状態に応答してフェッチ帯域幅を調整する、請求項27に記載のスーパースカラ・プロセッサ。
  29. 集積回路チップ・コンポーネントに対するローカル・クロックのローカル周波数を制御する方法であって、
    チップ・コンポーネントの動作レベルを監視するステップと、
    第2のコンポーネントにおける動作レベルがしきい値レベルを越えているという表示に応答して、第1のコンポーネントの前記ローカル周波数のクロックを調整するステップと
    を有する方法。
  30. 前記第2のコンポーネントにおける前記動作レベルが、前記しきい値レベルより上に上がった場合に、前記ローカル・クロックが一時停止される、請求項29に記載の方法。
  31. 前記第2のコンポーネントにおける前記動作レベルが、前記しきい値レベルより上に上がった場合に、前記クロックの周波数が半分になる、請求項29に記載の方法。
  32. 前記動作レベルが第2のしきい値レベルより上に上がった場合に、前記クロックが一時停止される、請求項31に記載の方法。
  33. 前記動作レベルが前記しきい値レベルより下に下がった場合に、前記ローカル・クロックが通常の作動周波数に戻る、請求項29に記載の方法。
JP2005509229A 2003-08-26 2003-08-26 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ Expired - Fee Related JP4524251B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2003/026531 WO2005031565A1 (en) 2002-07-02 2003-08-26 Processor with demand-driven clock throttling for power reduction

Publications (3)

Publication Number Publication Date
JP2007521538A true JP2007521538A (ja) 2007-08-02
JP2007521538A5 JP2007521538A5 (ja) 2009-07-30
JP4524251B2 JP4524251B2 (ja) 2010-08-11

Family

ID=37390854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005509229A Expired - Fee Related JP4524251B2 (ja) 2003-08-26 2003-08-26 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ

Country Status (5)

Country Link
EP (1) EP1658560B1 (ja)
JP (1) JP4524251B2 (ja)
CN (1) CN100399262C (ja)
AT (1) ATE433581T1 (ja)
DE (1) DE60327953D1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140502A (ja) * 2007-12-05 2009-06-25 Internatl Business Mach Corp <Ibm> プロセッサ、プロセッサを動作させる方法、および情報処理システム
WO2011024330A1 (ja) * 2009-08-24 2011-03-03 パナソニック株式会社 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法
JP5311234B2 (ja) * 2008-04-09 2013-10-09 日本電気株式会社 計算機システムとその動作方法
JP2014048972A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 処理装置、情報処理装置、及び消費電力管理方法
JP2014059761A (ja) * 2012-09-18 2014-04-03 Fujitsu Ltd 半導体集積回路及びコンパイラ

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129286B (zh) * 2010-01-15 2013-04-24 炬力集成电路设计有限公司 实时时钟电路及包含实时时钟电路的芯片和数码设备
CN104102327B (zh) * 2014-07-28 2017-02-15 联想(北京)有限公司 一种工作处理器的控制电路和电子设备
US20170090508A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Method and apparatus for effective clock scaling at exposed cache stalls
CN112712829B (zh) * 2019-10-24 2024-07-02 珠海格力电器股份有限公司 一种跨时钟域的寄存器读写电路及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242953A (ja) * 1993-02-02 1994-09-02 Internatl Business Mach Corp <Ibm> データ・プロセッサ
JPH0744265A (ja) * 1993-08-03 1995-02-14 Nec Corp パイプライン処理回路
JPH10312222A (ja) * 1997-05-13 1998-11-24 Seiko Epson Corp マイクロコンピュータ及び電子機器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2762670B2 (ja) * 1990-03-30 1998-06-04 松下電器産業株式会社 データ処理装置
US5987620A (en) * 1997-09-19 1999-11-16 Thang Tran Method and apparatus for a self-timed and self-enabled distributed clock
US6263448B1 (en) * 1997-10-10 2001-07-17 Rambus Inc. Power control system for synchronous memory device
US6112297A (en) * 1998-02-10 2000-08-29 International Business Machines Corporation Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution
US6990598B2 (en) * 2001-03-21 2006-01-24 Gallitzin Allegheny Llc Low power reconfigurable systems and methods

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242953A (ja) * 1993-02-02 1994-09-02 Internatl Business Mach Corp <Ibm> データ・プロセッサ
JPH0744265A (ja) * 1993-08-03 1995-02-14 Nec Corp パイプライン処理回路
JPH10312222A (ja) * 1997-05-13 1998-11-24 Seiko Epson Corp マイクロコンピュータ及び電子機器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140502A (ja) * 2007-12-05 2009-06-25 Internatl Business Mach Corp <Ibm> プロセッサ、プロセッサを動作させる方法、および情報処理システム
JP5311234B2 (ja) * 2008-04-09 2013-10-09 日本電気株式会社 計算機システムとその動作方法
WO2011024330A1 (ja) * 2009-08-24 2011-03-03 パナソニック株式会社 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法
JP2014048972A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 処理装置、情報処理装置、及び消費電力管理方法
JP2014059761A (ja) * 2012-09-18 2014-04-03 Fujitsu Ltd 半導体集積回路及びコンパイラ

Also Published As

Publication number Publication date
DE60327953D1 (de) 2009-07-23
CN100399262C (zh) 2008-07-02
EP1658560B1 (en) 2009-06-10
JP4524251B2 (ja) 2010-08-11
EP1658560A1 (en) 2006-05-24
ATE433581T1 (de) 2009-06-15
CN1864130A (zh) 2006-11-15

Similar Documents

Publication Publication Date Title
US7076681B2 (en) Processor with demand-driven clock throttling power reduction
JP3845642B2 (ja) ユニット電力調整機構を備えた集積回路装置
US7739537B2 (en) Multiple clock domain microprocessor
US5996083A (en) Microprocessor having software controllable power consumption
Iyer et al. Power efficiency of voltage scaling in multiple clock, multiple voltage cores
US5539681A (en) Circuitry and method for reducing power consumption within an electronic circuit
Folegnani et al. Energy-effective issue logic
US8051315B2 (en) Power throttling apparatus
US6289465B1 (en) System and method for power optimization in parallel units
US20040064752A1 (en) Method and apparatus for reducing clock frequency during low workload periods
US6971038B2 (en) Clock gating of sub-circuits within a processor execution unit responsive to instruction latency counter within processor issue circuit
JP2001521215A (ja) マルチスレッド式プロセッサでスレッド切替えイベントを選択するための方法および装置
JP2009505279A (ja) 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法
JP4524251B2 (ja) 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ
JP2000322403A (ja) 電力削減のための複数の等価機能ユニットの制御
JP2001022582A (ja) 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
JP2023544004A (ja) 動的に構成可能なオーバープロビジョニングされたマイクロプロセッサ
US7120915B1 (en) Thread switch circuit design and signal encoding for vertical threading
KR20060107508A (ko) 전력 감소를 위한 요구-구동형 클록 스로틀링 기능을 갖는프로세서
Gary Low-power microprocessor design
Sasaki et al. Dynamic instruction cascading on gals microprocessors
TW200411565A (en) Processor with demand-driven clock throttling power reduction
Rajamani et al. High performance and alleviated hot-spot problem in processor frontend with enhanced instruction fetch bandwidth utilization
Sato et al. Simultaneous Dynamic and Static Power Reduction Utilizing Power Heterogeneous Functional Units
Eswaran et al. All-domain fine grain dynamic speed/voltage scaling for GALS processors

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090521

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20090521

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090521

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090728

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees