JP3857052B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP3857052B2
JP3857052B2 JP2000558452A JP2000558452A JP3857052B2 JP 3857052 B2 JP3857052 B2 JP 3857052B2 JP 2000558452 A JP2000558452 A JP 2000558452A JP 2000558452 A JP2000558452 A JP 2000558452A JP 3857052 B2 JP3857052 B2 JP 3857052B2
Authority
JP
Japan
Prior art keywords
clock
circuit
power supply
supplied
supply voltage
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.)
Expired - Fee Related
Application number
JP2000558452A
Other languages
English (en)
Inventor
英雄 前島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Application granted granted Critical
Publication of JP3857052B2 publication Critical patent/JP3857052B2/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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Description

技術分野
本発明は、消費電力を増大しないで特定の回路ブロックを高速に動作できるマイクロプロセッサに関する。
背景技術
従来からもマイクロプロセッサの消費電力を下げる技術がいろいろ提案されている。例えば特開平8−272579号明細書「可変クロック発生装置」に見られるように、従来技術の多くは、マイクロプロセッサ内の複数のユニットの内、高速動作を必要としないユニットに供給するクロックの周波数を下げることにより消費電力を低減しようとしている。マイクロプロセッサの多くはCMOS回路で構成されているため、クロック周波数を低減することはCMOS回路が動作する割合(活性化率)を下げることになる。したがって、その方法は消費電力の低減に効果的である。
近年、マルチメディア分野の進展が著しく、それに適したマイクロプロセッサが要求されている。このような用途のマイクロプロセッサには、グラフィックスや画像処理のような複雑な処理を高速に実行できることが要求され、近年マイクロプロセッサのマシーンクロックも増大する方向にある。このため消費電力が増大するので、マイクロプロセッサでは消費電力の低減が重要課題である。
とくに最近では、たとえば、デジタルTVやゲーム機用のマイクロプロセッサのように、一般家庭などに普及していくマイクロプロセッサが多くなっている。このような用途に使用されるマイクロプロセッサには、低コスト化のために安価なパッケージを使用できること、また、無風状態での使用に耐えることが要求期待される。これらの期待に応えるには、マイクロプロセッサの消費電力が低いことがとくに必要である。
このように、マイクロプロセッサには、とくに、マルチメディア分野に使用するマイクロプロセッサには、高性能かつ低消費電力のマイクロプロセッサへの市場ニーズが高まっている。しかし、従来技術は、マイクロプロセッサの消費電力を低減できるが、その消費電力の低減と性能向上を同時に満たすことを考慮していない。
本発明の目的は、上記の問題を解決し、消費電力を増大しないで性能のを向上できるマイクロプロセッサを提供することである。
発明の開示
本発明では、特定の回路ブロックの動作速度をより高速なものに変更できるように、マイクロプロセッサに含まれる複数の回路ブロックの各々に、値が異なる複数の電源電圧を切り換えて供給し、周波数が異なる複数のクロックを切り換えて供給する。以下では周波数が高いクロックを高速なクロックと呼ぶことがある。
マイクロプロセッサの多くはCMOS回路により構成される。一般にCMOS回路等の論理回路の動作可能な最大周波数は、その回路に供給される電源電圧にほぼ比例して大きくなる。したがって、CMOS回路をより高速のクロックで駆動するためには、より高い電源電圧を供給する必要がある。このために本発明では複数の電源電圧を使用する。上記複数のクロックの内の最大周波数を有する最高速クロックは、上記複数の電源電圧の内の最大電源電圧が供給された回路ブロックで使用可能な周波数を有し、上記最高速クロックより低速のいずれかのクロックは、上記最大電源電圧より低いいずれかの電源電圧が供給された回路ブロックでも使用可能な周波数を有するように、上記複数のクロックの周波数および上記複数の電源電圧の値が選ばれる。上記最大の電源電圧が供給される回路ブロックは、その電源電圧が供給された状態で正常に動作可能なように、その電源電圧に対する耐圧を有する回路素子から構成される。
本発明では、マイクロプロセッサの高速化を実現するだけでなく、消費電力も低減する。一般に、CMOS回路等の論理回路の消費電力は、その回路の動作周波数に比例し、そこに供給される電源電圧の自乗に比例する。したがって、本発明では、上記最大電源電圧と最高速クロックを同時に供給する回路ブロックの数を制限している。
より具体的には、本発明では、
各回路ブロックに値が異なる複数の電源電圧を切り換えて供給するための電源供給回路と、
各回路ブロックに周波数が異なる複数のクロックを切り換えて供給するためのクロック供給回路と、
上記電源供給回路と上記クロック供給回路に、各回路ブロックに供給するクロックの切り換えとその回路ブロックに供給する電源電圧の切り替えを指示する制御回路とが設けられる。
上記制御回路は、いずれかの回路ブロックに上記最高速クロックと上記最大電源電圧を供給したときには、少なくとも一つの他の回路ブロックには、上記最高速クロックより低速のいずれかのクロックと上記最大電源電圧より低い電源電圧を供給する。
さらに具体的には、上記複数の回路ブロックの内、少なくとも一つの回路ブロックに供給するクロックを、その回路ブロックにそれまで供給していたクロックより高速のクロックへの切り替えるときには、他の少なくとも一つの回路ブロックに供給するクロックを、その回路ブロックにそれまで供給していたクロックよりも低速のクロックへ切り替えられる。
こうして上記一つの回路ブロックの動作速度を増大したときに生じる消費電力の増大を、上記他の回路ブロックの消費電力の減少により償い、マイクロプロセッサ全体としての消費電力が所定の限界消費電力以下に抑える。
このような、ある回路ブロックへ供給するクロックの高速化と同時に他の回路ブロックに供給するクロックの低速化を併用することは、いろいろの態様で使用できる。
たとえば、ある回路ブロックを定常動作状態よりも高速に動作させることができる。その回路ブロックに定常動作状態で供給されるクロックより高速のクロックを供給すればよい。必要であれば、その回路ブロックに供給する電源電圧も増大する。たとえば、そのより高速なクロックが上記最高速クロックであるときには、その回路ブロックに上記最高の電源電圧を供給する。こうしてその回路ブロックの動作速度を増大する。このときに、いずれかの他の回路ブロックに供給するクロックを、定常動作状態で当該他の回路ブロックに供給されるクロックより低速なクロックに変更する。
あるいは、上記最高速クロックより低速のクロックで駆動されているいずれかの回路ブロックを上記最高速クロックで駆動することができる。このとき、他のいずれかの回路ブロックのクロックをより低速なものに変更する。たとえば、それまで上記最高速クロックが供給されていた他の回路ブロックがある場合には、当該回路ブロックに供給するクロックをより低速のクロックに変更する。
発明を実施するための最良の形態
以下、本発明に係るマイクロプロセッサを図面に示した実施の形態を参照してさらに詳細に説明する。なお、以下においては、同じ参照番号は同じものもしくは類似のものを表わすものとする。また、第2の実施の形態以降においては、第1の実施の形態との相違点を主に説明するに止める。
<発明の実施の形態1>
図1に示すように、マイクロプロセッサ1200は、単一の大規模集積回路(LSI)上に構成され、記憶制御ユニット104、中央処理装置(CPU)105、浮動小数点演算ユニット(FPU)106、周辺入出力ユニット107等の複数の機能ユニットと電源・クロック制御ユニット101を有する。これらのユニットは、それぞれ一つの回路ブロックにより構成されているが、実際には、いずれかの機能ユニットが複数の回路ブロックにより構成されてもよく、また、複数の機能ユニットに属する回路が同じ一つの回路ブロックに含まれてもよい。上記ユニット101、104〜107は、データバス110、アドレスバス111および図示しない制御バスでもって互いに接続されている。なお、このマイクロプロセッサ1200には、RAM(ランダム・アクセス・メモリ)、ROM(リード・オンリー・メモリ)等の他のメモリユニットも上記複数のバスに接続されているが、ここでは簡単化のためにこれらのメモリユニットは図示せず、その動作も説明しない。これらのメモリユニットは、複雑なタイミングで動作するので、それらへ供給する電源電圧とクロックは変化させない。他の機能ユニットが設けられていてもよいことは言うまでもない。
記憶制御ユニット104は、図示しないRAMに対するキャッシュメモリ(図示せず)を内蔵し、RAMに対するアクセス要求をそのキャッシュメモリに対して実行し、アクセス対象のデータがそのキャッシュメモリにないときには、RAMに対してアクセスする回路(図示せず)を含む。さらに、記憶制御ユニット104には、バス110,111に対するバスアービタ(図示せず)も設けられる。なお、後に説明するように、バス110,111を使用する異なる機能ユニットが異なるクロックで駆動される。しかし、それぞれのユニットがそれらのバスへのデータの送出タイミングあるいはそれらのバスからのデータの受信タイミングを決めるので、これらのバスの利用に関してはとくに問題は生じない。
周辺入出力ユニット107は、図示しない外部の周辺装置とCPU105との間でデータの転送を行う。
本実施の形態では、これらの機能ユニット104〜107に、動作クロックとして複数の、ここでは3つの、周波数が異なるクロックCLK−a、CLK−b、CLK−cがクロック線115a〜115cを介して同時に供給される。ここではクロックCLK−aは最も周波数が高い最高速のクロックであり、クロックCLK−bはそれより低い周波数を有する中間速のクロックであり、クロックCLK−cは最も低い周波数を有する低速のクロックである。電源・クロック制御ユニット101には、これらの3つのクロックを発生するクロック分配回路103が設けられている。さらに、全機能ユニットには、電源電圧として、複数の、ここでは2つの値が異なる電源電圧VH、VLが電源配線116a、116bを介して同時に供給される。
各機能ユニットには、後に説明するように、クロック切り換え回路(402(図7))と電源切り換え回路(401(図7))と同じ回路が設けられ、それぞれは、その機能ユニットに供給された3つのクロックと2つの電源電圧から、その機能ユニットが使用する一つのクロックおよび一つの電源電圧をそれぞれ選択する。本実施の形態では上記クロック分配回路103と各機能ユニットに設けられたクロック切り換え回路が本発明で使用するクロック供給回路を実現する。また、各機能ユニットに設けられた電源切り換え回路が本発明で使用するクロック供給回路を実現する。
CPU105には、後に詳しく説明するように、動作環境制御回路503(図3)が設けられている。この回路はCPU105内で動作環境変更命令が実行されたときに、動作環境制御信号ENV(112)を生成し、電源・クロック制御ユニット101に供給する。この信号ENV(112)は、基本的には、各機能ユニットが使用するクロックと電源電圧とを各機能ユニット毎に選択可能にする情報を含んでいる。
電源・クロック制御ユニット101には消費電力制御回路102がさらに設けられている。この回路102は、動作環境制御信号ENV(112)に応答して、4つの機能ユニット104〜107のそれぞれにおいて使用するクロックと電源電圧の選択を制御する4つの電源・クロック切り換え信号113aから113dを生成し、それぞれの機能ユニットのクロック切り換え回路(402(図7))と電源切り換え回路(401(図7))に供給する。こうして、動作環境制御回路503(図3)と消費電力制御回路102が、各機能ユニットのクロック切り換え回路と電源切り換え回路を制御して、その機能ユニットが使用する電源電圧とクロックを、各機能ユニットごとに変更する制御回路として機能する。
本実施の形態では、定常動作状態では、全ての機能ユニットは、中間速のクロックCLK−bを使用すると仮定している。したがって、このクロックCLK−bは、定常動作状態で使用するクロックで、このクロックCLK−bはこのマイクロプロセッサの正規あるいは基準のクロックであるとも言える。このクロックにより、定常状態での動作速度あるいは正規の動作速度が実現される。最高速のクロックCLK−aは、クロックCLK−bにより実現可能な動作速度よりも高速な動作速度を実現するために使用される。本発明は、消費電力の低減だけでなく、動作の高速化も図る。クロックCLK−aはこの高速化のために使用される。低速のクロックCLK−cは、電力消費を低減することを目的として低速動作を実行させるのに使用される。
なお、機能ユニットの構造によっては、各クロックたとえばクロックCLK−aと周波数が同じで位相が異なる他のクロックも必要な場合もある。本実施の形態でもそのような他のクロックを使用可能であるが、そのような他のクロックは、クロックCLK−aと同じと見なし、別に図示あるいは説明しない。
低い電源電圧VLは、定常動作時に使用する電源電圧である。この電源電圧はこのマイクロプロセッサの正規あるいは基準の電源電圧であるとも言える。この電源電圧は上記クロックCLK−bまたはクロックCLK−cを使用する機能ユニットで使用される。高い電源電圧VHは、電源電圧VLで実現できる定常動作より高速動作を実現するために使用される。
一般にCMOS回路の動作可能な最大周波数は、その回路に供給される電源電圧にほぼ比例して大きくなる。したがって、CMOS回路により高速の動作をさせるには、より高い電源電圧を供給する必要がある。このような高い電源電圧が供給される回路ブロックは、その電源電圧が供給された状態で正常に動作可能なように、その電源電圧に対する耐圧を有する回路素子から構成される。
本実施の形態でも、マイクロプロセッサは、CMOS回路により構成されていると仮定する。高い電源電圧VHは、各機能ユニット内の回路を最高速クロックCLK−aに応答可能にする値を有するように定められる。この電源電圧VHは、ある機能ユニットが最高速クロックCLK−aに応答して高速動作をするときにその機能ユニットにより使用される。電源電圧VLは、各機能ユニット内の回路をクロックCLK−bに応答可能にするに必要な値を有する電源電圧である。この電源電圧VLは、ある機能ユニットがクロックCLK−bに応答して定常動作をするときにその機能ユニットにより使用される。この実施の形態では、この電源電圧VLは、その機能ユニットがクロックCLK−cに応答して低速動作をするときにも使用される。
このように本発明では、回路ブロック用に用意された複数のクロックの内、最高速のクロックをいずれかの回路ブロックに供給するときに、回路ブロック用に用意された複数の電源電圧の内の最大の電源電圧をその回路ブロックに供給する。逆に、いずれかの回路ブロックに上記複数の電源電圧の内、上記最大電源電圧より低い電源電圧を供給するときには、上記複数のクロックの内、上記最高速のクロックより低速のクロックを供給する。
本発明では、マイクロプロセッサの高速化を実現するだけでなく、消費電力も低減する。したがって、各回路ブロックが使用するクロックと電源電圧を選択するときに、これらの二つの要件を満たすように、この選択動作が制御される。一般に、CMOS回路の消費電力は、その回路の動作周波数に比例し、そこに供給される電源電圧の自乗に比例する。したがって、全ての回路ブロックに上記最高速のクロックCLK−aと最大電圧VHを供給した場合、マイクロプロセッサの消費電力は、定常動作の場合(今の例では、全ての回路ブロックに中間のクロックCLK−bと低い電源電圧VLを供給した場合)よりはるかに増大する。
しかし、実際にはマイクロプロセッサが実行するプログラムの処理速度を増大するには、全ての回路ブロックを同時に高速化させる必要がない場合がある。したがって、本発明では、全ての回路ブロックを同時に高速に動作させるのではなく、プログラムの処理の高速化に寄与するいずれか一つまたは複数の回路ブロックを選択的に高速動作させる。そのために、それらの回路ブロックが使用するクロックと電源電圧を増大する。図1の場合には、上記最高速のクロックCLK−aと高い電源電圧VHを使用させる。
このような動作だけでは、定常動作状態よりは、マイクロプロセッサの消費電力は増大する。したがって、本発明では、いずれかの回路ブロックの動作クロックを増大するときには、他の回路ブロックの動作クロックを下げるようにする。これによりマイクロプロセッサ全体の消費電力を、予めマイクロプロセッサに対して定められた限界消費電力を超えないようにする。図1の場合には、具体的には、他の機能ユニットが使用するクロックを定常動作時のクロックCLK−bから省電力用のクロックCLK−cに変更する。こうして、クロックCLK−aを使用した機能ユニットの消費電力の増大を、クロックCLK−cを使用した機能ユニットの消費電力の減少により償う。
このように、本発明では、複数の回路ブロックのいずれか一つに与えるクロックあるいはクロックと電源電圧とを、より高速なクロックあるいはそのクロックとそのクロックのためのより高い電源電圧に変えるときには、上記複数の回路ブロックの内の少なくも一つの他の回路ブロックに供給しているクロックをより低速のクロックに変える。
なお、従来技術を適用したマイクロプロセッサの場合には、いずれかの機能ユニットに供給するクロックの周波数を低下させることにより、その機能ユニットでの消費電力が変化する、特定の機能ユニットの性能は向上しない。すなわち、従来技術では、定常動作状態では全ての機能ユニットを一定のクロックで動作させ、その後いずれかの機能ユニット、例えば、CPUとFPUの両方の処理性能を低下させてもよい状態になった場合には、これらの二つの機能ユニットに供給するクロックの周波数を定常動作時より低減する。この結果、マイクロプロセッサの電力は大幅に低下する。また、CPUのみ処理性能を低下させてもよい場合には、CPUのクロックの周波数のみを低下させる。この場合でも定常動作時より消費電力が低下する。この従来技術にはある機能ユニットの消費電力を低減するために、その機能ユニットの性能を低下しているだけである。定常動作時より高い動作速度でいずれかの機能ユニットを動作させるという技術はない。したがって、定常動作時に使用するクロックより周波数が高いクロックを使用するあるいはそれに合わせて定常動作時に使用する電源電圧より高い電源電圧を使用するという技術もない。
以下、本実施の形態をさらに詳細に説明する。図2に示すように、電源・クロック制御ユニット101内のクロック分配回路103は、発振器800、分周回路802からなる一般的な構成である。発振器800から出力される元のクロック801を分周回路802に入力し、これを必要に応じて分周することでクロックCLK−a〜クロックCLK−cを作り出す。
図3に示すように、CPU105には、CPU本来の処理を実行するための命令処理回路500の他に、クロック切り換え回路502と電源切り換え回路501とが新たに設けられている。命令処理回路500内に動作環境制御回路503とラッチ504とが新たに設けられている。
本実施の形態では実行中のプログラム内に動作環境を変更するための命令が新たに設けられる。この命令は、特定のオペレーションコードとオペランドを有し、オペランドではこのマイクロプロセッサで実現する複数の動作環境を指定する。各動作環境は、各機能ユニットに与えるクロックと電源電圧の異なる組み合わせの一つを表す。本実施の形態では後述するように4つの動作環境を用いる。したがって、このオペランドは2ビットからなる。動作環境制御回路503は、この命令を解読すると、その2ビットのオペランドをラッチ504に出力する。ラッチ504に保持された2ビットのオペランドは、動作環境制御信号ENV(112)として電源・クロック制御ユニット101内の消費電力制御回路102に送出され、この消費電力制御回路102は、この信号112に応答してマイクロプロセッサの動作環境を変更する。その動作は後述する。
なお、命令処理回路500には、以下に説明するように種々の命令を実行するための種々の回路の他に整数演算回路および一群の内部レジスタを含むが、これらの回路は簡単化のために図示していない。命令処理回路500は、実行すべき命令を図示しないROMもしくはRAMから読み出すためのメモリアクセス命令を記憶制御ユニット104に、アドレスバス111、図示しない制御バスを使用して送出し、記憶制御ユニット104内の図示しないキャッシュメモリあるいは図示しないRAMもしくはROMからその命令が読み出されたときに、その命令を解読し、その命令の実行を制御する。解読された命令が図示しないROMまたはRAMに対するデータアクセス命令であるときには、メモリアクセス要求を記憶制御ユニット104にデータバス110、アドレスバス111、図示しない制御バスを使用して送る。解読された命令が整数演算命令であるときには、命令処理回路500内の整数演算回路(図示せず)によりその命令が要求する演算を実行させる。解読された命令が浮動小数点演算命令であるときは、その命令をFPU106に送り、このユニットによりその命令を実行させる。その命令が周辺入出力ユニット107を使用する命令であるときも同様にして、その命令を周辺入出力ユニット107に送る。
図4に示すように、電源・クロック制御ユニット101内の消費電力制御回路102は、電力制御マップメモリ600を有する。本メモリは、電源・クロック切り換え信号113a〜113dを生成する情報を含む電力制御マップを記憶する回路であり、本実施の形態では、この回路はROMで構成される。このROMは、動作環境制御信号ENV(112)が採りうる複数の値をアドレスとする複数の記憶位置の各々に、それぞれの動作環境制御信号ENV(112)の値に対応する一組の電源・クロック切り換え信号113a〜113dを記憶する。電源・クロック切り換え信号113a〜113dはそれぞれ記憶制御ユニット104、CPU105、FPU106、周辺入出力ユニット107に供給される電源・クロック切り換え信号である。なお、電力制御マップメモリ600に代えて同じような信号を生成できるゲート回路を使用してもよい。
本実施の形態ではたとえば動作環境制御信号ENV(112)を2ビット(d1、d0)とし、電源・クロック切り換え信号113a〜113dの各々を3ビット(p、c1、c0)とする。図5に電力制御マップメモリ600の内容を示す。pビットは電源選択ビットで、pは電源電圧の選択を指示するためのビットで、p=0が通常電源電圧(VL)、p=1が高い電源電圧(VH)の選択を示す。また、(c1,c0)は、クロック選択ビットで、以下のように、使用するクロックの選択を指示する。
(c1、c0)=(0、0) 中間速クロックCLK−b
(c1、c0)=(0、1) 低速クロックCLK−c
(c1、c0)=(1、0) 最高速クロックCLK−a
なお(c1、c0)=(1、1)は使用されない。
本実施の形態では、次の4つの動作モードを使用する。
(A)全機能ユニット:定常動作
ここでは図1のマイクロプロセッサの全機能ユニットは、定常動作状態では中間速のクロックCLK−bと低い電源電圧VLで駆動されると仮定する。このときには、(d1、d0)=(0、0)である。このモードでは図5から分かるように、電源・クロック切り換え信号113a〜cはいずれも(0、0、0)となる。この動作モードは、マイクロプロセッサを電源オンしたときまたは、下記のモードの動作が終了し、このモードを使用することを指定する動作環境変更命令が実行されたときに使用される。
このときのマイクロプロセッサ全体の限界消費電力は、パッケージ、冷却条件などから決定され、マイクロプロセッサを構成する機能ユニットをどのように動作させるかに拘わらず、マイクロプロセッサ全体の消費電力がこの限界消費電力を越えないように、マイクロプロセッサを設計する必要がある。以下では簡単化のために、供給するクロックと電源電圧を切り替える機能ユニット104〜107における消費電力のみを議論する。これらのユニットにおける消費電力あるいはこれらのユニットに対する限界消費電力をあたかもマイクロプロセッサ全体の消費電力あるいはマイクロプロセッサ全体に対する限界消費電力として議論する。
このモードの時のマイクロプロセッサの消費電力Pは、図6の区間Aに示すように、図に点線で示す限界消費電力を越えないように定められている。たとえば、マイクロプロセッサの限界消費電力は2.1wattで、低い電源電圧VL=2.0v、中間速クロックCLK−bは200MHzで、この定常動作時の消費電力はたとえば2.0wattであると仮定する。記憶制御ユニット104、CPU105、FPU106、周辺入出力ユニット107が定常動作状態で消費する消費電力の割合をそれぞれ0.15,0.3,0.3,0.25と仮定する。すなわち、定常動作状態では、これらの機能ユニットでの消費電力はそれぞれ0.3,0.6,0.6,0.5wattである。
(B)FPU:高速動作
ここではFPU105と記憶制御ユニット104に最高速のクロックCLK−aと高い電源電圧VHを供給し、これらの機能ユニットを高速動作させる。CPU105と周辺入出力ユニット107には低速のクロックCLK−cと低い電源電圧VLを供給し、低速動作をさせる。
このときには、(d1、d0)=(0、1)である。このモードでは図5から分かるように、記憶制御ユニット104とFPU106に対する電源・クロック切り換え信号113a、113cがいずれも(1、1、0)となる。CPU105に対する電源・クロック切り換え信号113bと周辺入出力ユニット107に対する電源・クロック切り換え信号113dは(0、0、1)となる。
このモードは、たとえばCPU105が実行するプログラム部分の命令の多くが、FPU106を使用する命令であるときに使用される。このモードでは、CPU105と周辺入出力ユニット107が使用するクロックを低いクロックに変更した結果、これらの機能ユニットの動作速度が遅くなるが、そのことがプログラムの処理速度に影響がなければ、この後者の機能ユニットの動作速度の低下は問題にならない。逆に、そのように動作速度の低下がプログラムの処理速度に影響を実質的に与えないような機能ユニットを選ぶ必要があり、このような選択はプログラムによっては可能である。元々FPU106の性能向上を行なう必要があるプログラム部分を実行する場合、そのプログラム部分によるCPU105の使用頻度は低く、したがって、CPU105の回路の活性化率は低い。したがって、CPU105の低速動作は、このこれらのマイクロプロセッサ全体の処理性能へ大きな影響を与えないと考えられる。
図1の場合、後に説明するように、いずれかの機能ユニットのクロックを変化させるときには、CPU105が実行するプログラムの中に、特定の命令を含ませ、CPU105がこの命令を解読したときに、上記クロックの変更が行われる。
このモードで、記憶制御ユニット104も高速動作させるのは、これらの命令をより高速に図示しないRAMまたはROMもしくは記憶制御ユニット104内の図示しないキャッシュメモリより高速に読み出し、さらにそれらの命令が使用するデータをRAMまたはROMもしくは図示しないキャッシュメモリから高速に読み出すかあるいはその命令の実行結果データをそれらのメモリに高速に書き込むためである。
定常動作モードからこのモードに変更するときには、FPU106のクロックの周波数と電源電圧が定常モードの時のそれらより増大することになる。この結果生じるFPU106の性能Sは、図6の区間Bに示すように、最高の性能となる。一方、CPU105と周辺入出力ユニット107に供給するクロックの周波数が下げられる。このように、定常動作モードより、FPU106を高速に動作させる場合、FPU106を高速動作させたことにより生じる消費電力の増加を、CPU105と周辺入出力ユニット107を低速動作をさせることにより償っていると言える。
本実施の形態では、CPU105と周辺入出力ユニット107が使用する電源電圧は下げないで、CPU105と周辺入出力ユニット107が使用するクロックを、動作環境変更前に使用していた通常のクロックCLK−bから低速のクロック115cに切り換えることで、CPU105と周辺入出力ユニット107の低消費電力化を達成する。これによりマイクロプロセッサ全体としての消費電力が、限界電力を超えないようにする。
したがって、最高速クロックCLK−a、低速クロックCLK−cの周波数は、クロックCLK−bに代えてクロックCLK−cを使用する機能ユニットにおける消費電力の低下が、クロックCLK−bに代えてクロックCLK−aを使用する機能ユニットでの消費電力の増大を償うことが出来るように定める。
たとえば、最高速クロックCLK−aは250MHz、低速クロックCLK−cは50MHz、高い電源電圧VHは2.5vと仮定する。この動作モードでは、記憶制御ユニット104の消費電力は0.585watt、FPU106での消費電力は1.758watt、CPU105の消費電力は0.15watt、周辺入出力ユニット107の消費電力は0.125wattとなり、これらの合計は、2.03wattとなる。したがって、この動作モードでも、図6の区間Bに示すように、マイクロプロセッサの消費電力は、上記定常動作時の消費電力2.0wattより少し増大するが、限界消費電力2.1wattよりは小さく抑えられる。
(C)CPU:高速動作
ここではCPU105と記憶制御ユニット104に最高速のクロックCLK−aと高い電源電圧VHを供給し、これらの機能ユニットを高速動作させる。FPU106と周辺入出力ユニット107には低速のクロックCLK−cと低い電源電圧VLを供給し、低速動作をさせ、る。
このときには、(d1、d0)=(1、0)である。このモードでは図5から分かるように、記憶制御ユニット104とCPU105に対する電源・クロック切り換え信号113a、113cがいずれも(1、1、0)となる。FPU106と周辺入出力ユニット107に対する電源・クロック切り換え信号113cは(0、0、1)となる。
したがって、定常動作モードからこのモードに変更するときには、CPU105のクロックの周波数と電源電圧が定常モードの時のそれらより増大することになる。それに伴いFPU106と周辺入出力ユニット107のクロックの周波数が下げられるのはFPUを高速に動作させる前述の動作モードの場合と同じである。
したがって、本実施の形態は、ある機能ユニットを定常動作状態より高速に動作させるときに、他の機能ユニットに定常動作状態よりも低速な動作をさせる考えることができる。また、FPUを高速に動作させる前述の動作モードから、本動作モードに変更した場合には、CPU105のクロックの周波数が増大された。したがって、本実施の形態は、このような場合には他の機能ユニットたとえばFPU106のクロックの周波数を下げたと考えることもできる。また、FPUを高速に動作させる前述の動作モードから、本動作モードに変更した場合には、CPU105に供給するクロックを最高速クロックに変化し、そこに供給される電源電圧が最大電源電圧に変化されたことになる。したがって、本実施の形態は、このような場合に、最高速のクロックと最大電源電圧をすでに供給されている他の機能ユニット、たとえばFPU106のクロックの周波数と電源電圧をより低速のクロックとより低い電源電圧に変化したと考えることもできる。
このモードは、たとえばCPU105が実行するプログラム部分の命令の多くが、CPU105内の図示しない整数演算回路を使用する命令であるときに使用される。CPU105を高速動作させたことにより生じる消費電力の増加を、FPU106を低速動作をさせることにより償っている。このモードは、このモードを指定する動作環境変更命令が実行されたときに使用される。このモードで、記憶制御ユニット104も高速動作させる理由は、モードBの場合と同じである。
(D)全機能ユニット:省電力動作
ここでは、全ての機能ユニットを低速クロックCLK−cと低い電源電圧VLで動作させる。このときには、(d1、d0)=(1、1)である。このモードでは図5から分かるように、電源・クロック切り換え信号113a〜cはいずれも(0、0、1)となる。このモードは、たとえば実行中のプログラムがCPU105、FPU106での処理をそれほど必要としないとき、たとえば、外部からのデータの入力待ちのときに使用される。このモードも、このモードを指定する動作環境変更命令が実行されたときに使用される。なお、この省電力動作モードから、他の動作モードに動作モードが変更するときには、省電力モードの時より高速に動作させられる機能ユニットはあるが、いずれの機能ユニットの動作も低速になることはない。したがって、この時には本発明は適用されていない。これは、省電力動作モードは、消費電力が最小の動作モードであり、動作モードを他のいずれの動作モードに変更しても、いずれかの機能ユニットの消費電力を低減する必要がないからである。このような動作モードの変更には本発明を適用しなくてよいのは当然である。
機能ユニット104〜107は、電源・クロック切り換え信号113a〜113dに応答するために以下のように構成されている。
図7に示すように、FPU106には、浮動小数点演算を実行する浮動小数点演算回路400の他に、クロック切り換え回路402と電源切り換え回路401とが新たに設けられている。
クロック切り換え回路402は、消費電力制御回路102から供給される電源・クロック切り換え信号113cに応答して、クロック分配回路103から線115a〜115cを介して供給される3つのクロックCLK−a〜クロックCLK−cの内、このユニットが使用する1つのクロックを選択する。クロック切り換え回路402は、たとえば図8に示すように、3つのクロック115a〜115cの選択を行なうためのANDゲート1100、1101、1102、ORゲート1104及びNANDゲート1103から成る。3ビットの電源・クロック切り換え信号113cの内の2ビット(c1、c0)がそれぞれ(0、0)、(0、1)、(1、0)であるときに、中間即クロックCLK−b、低速クロックCLK−c、最高速クロックCLK−aを選択し、線405を介してFPU106内の浮動小数点演算回路400に供給する。
電源切り換え回路401は、電源・クロック切り換え信号113cに応答して、電源配線116a、116bを介して供給される2つの電源電圧VH、VLの内、このユニット106が使用する電源電圧を選択する。電源切り換え回路401は、たとえば図9に示すように、2つの電源VH、VLを切り換えるためのMOSスイッチ1000、1001と、これらを駆動するバッファ回路1002、1003から成り、3ビットの電源・クロック切り換え信号113cの内のpビットが0または1のときにそれぞれ電源電圧VL、VHを選択する。選ばれた電源電圧は電源配線404によりFPU106内の浮動小数点演算回路400に電源を供給する。
電源切り換え回路401とクロック切り換え回路402は、いずれもFPU106内に設けられ、その内部の浮動小数点演算回路400に電源電圧とクロックを供給するが、これらの回路は、実質的にFPU106に電源電圧とクロックを供給すると考えることが出来る。また、これらの回路401、402はFPU106の外に設けられていても良い。したがって、本明細書では、これらの回路が、FPU106に電源電圧とクロックを供給する回路である呼ぶことがある。このことは他の機能ユニットについても同じである。
図3に示したように、CPU105には、命令処理回路500の他に、電源切り換え回路501とクロック切り換え回路502が設けられている。これらの回路501、502は、図9、8に示した電源切り換え回路401とクロック切り換え回路402と同じ回路であり、電源・クロック切り換え信号113bに応答する。記憶制御ユニット104にも、FPU106内のクロック切り換え回路402と電源切り換え回路401と同じ構造を有し、電源・クロック切り換え信号113dに応答する回路(図示せず)が設けられる。周辺入出力ユニット107にもFPU106内のクロック切り換え回路402と電源切り換え回路401と同じ構造を有し、電源・クロック切り換え信号113aに応答する回路(図示せず)が設けられる。
マイクロプロセッサ1200への給電は、たとえば図10に示すように、外部より2つの電源電圧VH、VLを電源配線116a、116bを介して直接各機能ユニット101、104〜107に供給すればよい。また、図11に示すように、マイクロプロセッサ1201に、外部より一つの電源電圧たとえばVHを供給し、変圧回路1202により他の電源電圧VLを発生させてもよい。
本実施の形態によれば、プログラムにより特定の機能ユニットたとえば浮動小数点演算ユニットに高速性能が要求されたときに、その機能ユニットに供給するクロックの周波数を高め、それにより、その機能ユニットをより高性能に動作させる。一方、この高性能動作によって生じる消費電力の増加を他の機能ユニットに供給するクロックの周波数を低減することにより償い、マイクロプロセッサ全体の消費電力は、予め設定した消費電力を越えないようにしている。
<発明の実施の形態2>
本実施の形態では消費電力制御回路102内の電力制御マップメモリ600がRAMにより構成され、これにより電力制御マップメモリ600内の制御情報がソフトウェアにより更新でき、多様な制御を可能となる。
図12に示すように、RAMにより構成された電力制御マップメモリ6000手前にマルチプレクサ1300が配置される。CPU105が実行するプログラム内に、電力制御マップメモリ600を書き換える命令を設け、CPU105内に、この命令を解読し、ソース選択信号1302を生成し、この命令が指定するマップアドレス1301とマップ更新データ1303を出力する回路を設ける。
マルチプレクサ1300は、ソース選択信号1302が供給されないときには、実施の形態1と同じように、動作環境制御信号ENV(112)を選択して電力制御マップメモリ600から一組の電源・クロック切り換え信号113a〜113dを読み出す。ソース選択信号1302が供給されたときには、マルチプレクサ1300は、マップアドレス1301を選択し、電力制御マップメモリ600に書き込みアドレスとして供給し、マップ更新データ1303の書き込みを指示する。こうして、電力制御マップメモリ600プログラムにより所望の内容に書き換えることができる。
<発明の実施の形態3>
以上の実施の形態で示したマイクロプロセッサは、汎用のマイクロプロセッサであったが、とくにマルチメディア向けのマイクロプロセッサでは、FPUに代えて、グラフィックスや画像処理のような特殊な処理を実行する一つまたは複数の機能ユニットが使用される。これらの機能ユニットを高速に動作させるために、以上に説明した技術が適用できる。これらの特殊な処理は一般に処理時間が長い。したがって、それぞれの処理を実行する間、それぞれの処理を実行する機能ユニットを高速に動作させることがマイクロプロセッサの処理速度の向上に有効である。それでいて、マイクロプロセッサ全体の消費電力を限界消費電力以下に抑えることが出来る。
<変形例>
以上のいくつかの実施の形態の変形例がいくつかすでに以上の説明の中に記載された。また、以下にはいくつかの他の変形例を記載する。本発明は、以上の実施の形態に限られるのではなく、これらの変形例および他の変形例を含むいろいろの変形例によっても実現可能であることはいうまでもない。
(1)実施の形態1では周辺入出力ユニット107は定常動作か省電力動作しかしなかった。しかし、このユニットに高速動作をさせることもできる。たとえば、この周辺入出力ユニット107としてモデム用の周辺入出力ユニットを使用するときには、この機能ユニットを高速動作させることが望ましいことがある。
(2)実施の形態1では、クロック生成回路103が全機能ユニットに共通に設けられ、全機能ユニットに複数のクロックを複数の共通のクロック線を介して同時に供給している。各機能ユニット内にクロック切り換え回路が設けられた。しかし、これに代えて電源・クロック制御ユニット内に各機能ユニット用のクロック切り換え回路を設け、ここで各機能ユニットに供給すべきクロックを選択させ、選択されたクロックを、その機能ユニット用に設けられたクロック線を介して供給することもできる。あるいは複数の機能ユニットに設けた共通のクロック切り換え回路により、それぞれの機能ユニット用のクロックを別々に出力させることもできる。このような構造の回路も、本発明では、各機能ユニット毎に、クロックを切り換える回路と考える。
実施の形態1では、全機能ユニットに全クロックを供給する信号線を使用したが、本変形例では、各機能ユニットに対応して一つのクロック信号線のみを使用すればよい。したがって、クロック信号線が占めるチップ面積は少なくできる可能性がある。
同様に、実施の形態1では、全機能ユニットに複数の電源電圧が複数の共通の電源配線を介して同時に供給し、各機能ユニットに電源切り換え回路を設けている。これに代えて、上記クロック切り換え回路の変形例と同様に電源電圧の切り換え回路を構成できる。本発明では、このような構造の電源切り換え回路も、各機能ユニット毎に電源電圧を切り換える回路と考える。
電源切り換え回路は、大電流の切替を必要とするので、他の回路に供給する電源電圧が変動する恐れがある。したがって、この回路を、各機能ユニットの外部、とくにチップ周辺部に設ける方が望ましいことがある。同様に、クロック切り替え回路も各機能ユニットの外部とくにチップ周辺部に設けることが望ましい場合もある。
(3)実施の形態1では、定常動作時には全機能ユニットが同じクロックと同じ電源電圧でもって動作した。しかし、本発明は、この場合に限らず、定常動作の時に、いずれかの機能ユニットに供給されるクロックあるいはクロックと電源電圧が他の機能ユニットに供給されるクロックあるいはクロックと電源電圧とは異なっていてもよい。
すなわち、定常動作の時に、いずれかの機能ユニットに供給されるクロックが他の機能ユニットに供給されるクロックより低速のクロックであってもよい。たとえば、定常動作時にはFPU106あるいは周辺入出力ユニット107のみ低速クロックCLK−cを供給し、省電力動作を実行させ、他の機能ユニットには中間即のクロックCLK−bと低い電源電圧VLを供給しても良い。このときに、FPU106を中間速クロックCLK−bまたは最高速クロックCLK−aで動作させるときに、他の機能ユニットたとえばCPU105に供給するクロックをより低速のクロックCLK−cに変更すればよい。
また、定常動作の時に、いずれかの機能ユニットに供給されるクロックが他の機能ユニットに供給されるクロックより高速のクロックが供給されてもよい。たとえば、定常動作時にはCPU105のみに最高速クロックCLK−aと最高電源電圧VHを供給し、高速動作を実行させ、他の機能ユニットには、中間即のクロックCLK−bと低い電源電圧VLを供給しても良い。このときに、FPU106を最高速クロックCLK−aと最高電源電圧VHで動作させるときには、たとえばCPU105に供給するクロックをより低速のクロックCLK−bまたはクロックCLK−cに変更すればよい。
(4)本発明は実施の形態1で使用した3つクロックより多いクロックを使用する場合にも適用できるのは言うまでもない。さらに、本発明は実施の形態1で使用した2つ電源電圧より多い電源電圧を使用する場合にも適用できるのは言うまでもない。しかし、この場合でも、いずれかの機能ユニットに最高速クロック使用するときには、最大電源電圧を使用し、最大の電源電圧より小さい電源電圧を使用するときには、最高速クロックより低速のクロック使用する。
(5)実施の形態1では、いずれかの機能ユニットを定常動作状態から最高速動作状態に変更する場合に、本発明に従って、他の機能ユニットの動作速度を低減した。しかし、より多数のクロックと電源電圧が使用される場合において、いずれかの機能ユニットのクロックを最高速でないクロックからそれより高速であるが最高速でないクロックに変更する場合において、最高速のクロックより低速のクロックが供給されている他の機能ユニットのクロックを、より低速のクロックに変更し、それによりマイクロプロセッサ全体の消費電力が限界消費電力を超えないようにすることもできる。
(6)以上の実施の形態では、省電力動作では、各機能ユニットには定常動作時と同じ電源電圧を与え、クロックのみをより低速のクロックに変更した。しかし、この場合、電源電圧として、省電力用の電源電圧を用意し、これを省電力動作をさせる機能ユニットに供給することもできる。この方法を採れば、省電力動作する各機能ユニットの消費電力はさらに低減される。
(7)本発明は実施の形態1で用いた4つの動作モードと異なる複数の動作モードを使用する場合にもあるいはこれらの4つの動作モードに他の動作モードを追加する場合にも適用できるのは言うまでもない。
(8)実施の形態1では各機能ユニットが一つの回路ブロックにより実現されているマイクロプロセッサの例であるが、本発明は、より一般には複数の回路ブロックに区分されているマイクロプロセッサに適用できる。また、一つの回路ブロックの全体が同じクロックと同じ電源電圧で駆動される必要はなく、その一部が他と異なるクロックと電源電圧で駆動されてもよい。
(9)実施の形態1では、いずれかの機能ユニットに供給するクロックを中間速クロックCLK−bから低速クロックCLK−cに変更するときは、電源電圧は低い電源電圧VLのままとした。しかし、これに代えて、低速クロック用のさらに低い電源電圧を用意し、低速クロックCLK−cを使用するときに、電源電圧をこのさらに低い電源電圧に変更することもできる。この方法では、低速クロックCLK−cを供給された回路ブロックの消費電力はさらに低減できる利点がある。但し、実施の形態1よりも必要な電源配線の数が増大する。また、各回路ブロックへ供給する電源電圧の切り替え回数が増大する。
(10)本発明はCMOSからなるマイクロプロセッサに限定されるのではなく、他の種類の回路たとえばBiCMOS回路からなるマイクロプロセッサにも適用できるのは言うまでもない。
(11)実施の形態1では、定常動作状態では、全機能ユニットに低い電源電圧VLと中間速クロックCLK−bを供給し、いずれかの機能ユニットを最高速で動作させたいときに、その機能ユニットに最高速クロックCLK−aと最大電源電圧VHとを供給した。しかし、低い電源電圧は使用しないで、定常動作状態では、全機能ユニットに高い電源電圧VHと、中間速クロックCLK−bを供給する方法も考えられる。
(12)実施の形態1では、図示しないRAM、ROMという特定の回路ブロックに供給するクロックと電源電圧は常に一定の周波数と電圧を有していた。本発明は、このように一部の回路ブロックに供給されるクロックの周波数が変化されない場合でも、他の複数の回路ブロックに供給されるクロックの周波数がそれぞれの回路ブロックごとに変更される場合にも適用できる。もちろん全ての回路ブロックについて、それぞれに供給するクロックの周波数が変更される場合にも本発明は適用できる。同様に、いずれかの回路ブロックに供給されるクロックの周波数が、他のいずれかの回路ブロックに供給されるクロックの周波数とは同一であるという条件を満たしながら変更される場合にも本発明は適用できる。本発明では、マイクロプロセッサ内の全ての回路ブロックの内の少なくとも複数の回路ブロックに供給するクロックをそれぞれの回路ブロックごとに変更するクロック供給回路を使用すればよい。言い換えると、このように一部の回路ブロックに供給するクロックの周波数をそれぞれの回路ブロックごとに変更するクロック供給回路を使用する限り、そのクロック供給回路は、マイクロプロセッサ内の複数の回路ブロック毎に、異なる周波数のクロックを切り替えて供給する回路と考えることができる。以上のことは電源電圧供給回路についても同じであり、一部の回路ブロックに供給する電源電圧の値をそれぞれの回路ブロックごとに変更する電源電圧供給回路を使用する限り、その電源電圧供給回路は、マイクロプロセッサ内の複数の回路ブロック毎に、異なる値の電源電圧を切り替えて供給する回路と考えることができる。
以上に詳述したごとく、本発明によれば、特定の回路ブロックを高速で動作でき、それでいてマイクロプロセッサ全体の消費電力が一定の限界消費電力を超えないマイクロプロセッサが得られる。
【図面の簡単な説明】
図1は、本発明の一実施の形態によるマイクロプロセッサの概略ブロック図である。
図2は、図1の装置で本発明を好適に実施するためのクロック分配回路の概略ブロック図である。
図3は、図1の装置で本発明を好適に実施するための中央処理装置の概略ブロック図である。
図4は、図1の装置で本発明を好適に実施するための消費電力制御回路の概略ブロック図である。
図5は、図5の装置に含まれた電力制御マップメモリの内容を示した図であるである。
図6は、図1のマイクロプロセッサでの消費電力と処理速度の変化を例示する図である。
図7は、図1の装置で本発明を好適に実施するための浮動小数点演算ユニットの構成を示す図である。
図8は、本発明の一実施の形態におけるクロック切り換え回路の概略ブロック図である。
図9は、本発明の一実施の形態における電源切り換え回路の概略ブロック図である。
図10は、本発明の一実施の形態での電源供給手段の概略ブロック図である。
図11は、本発明の一実施の形態で使用できる他の電源供給手段の構成を示した図である。
図12は、本発明の他の実施の形態での消費電力制御回路の構成を示した図である。

Claims (28)

  1. 複数の回路ブロックと、
    各回路ブロックに値が異なる複数の電源電圧を切り換えて供給するための電源供給回路と、
    各回路ブロックに周波数が異なる複数のクロックを切り換えて供給するためのクロック供給回路と、
    上記電源供給回路と上記クロック供給回路に、各回路ブロックに供給するクロックの切り換えとその回路ブロックに供給する電源電圧の切り替えを指示する制御回路とを有し、
    上記複数のクロックの内の最大周波数を有する最高速クロックは、上記複数の電源電圧の内の最大電源電圧が供給された回路ブロックで使用可能であり、
    上記最高速クロックより低速のいずれかのクロックは、上記最大電源電圧より低いいずれかの電源電圧が供給された回路ブロックでも使用可能であり、
    上記制御回路は、いずれかの回路ブロックに上記最高速クロックと上記最大電源電圧を供給したときには、少なくとも一つの他の回路ブロックには、上記最高速クロックより低速のいずれかのクロックと上記最大電源電圧より低い電源電圧を供給するマイクロプロセッサ。
  2. 上記制御回路は、上記複数の回路ブロックの内、少なくとも一つの回路ブロックに供給するクロックを、その回路ブロックにそれまで供給していたクロックより高速のクロックへの切り替えるのを上記クロック供給回路に指示するときには、他の少なくとも一つの回路ブロックに供給するクロックを、その回路ブロックにそれまで供給していたクロックよりも低速のクロックへ切り替えるように、上記クロック供給回路に指示する請求の範囲1記載のマイクロプロセッサ。
  3. 上記制御回路は、上記他の一つの回路ブロックに供給するクロックを上記より低速のクロックに切り替えるときには、その切り替え前に上記他の一つの回路ブロックに供給していた電源電圧を、上記クロックの切り替え後も引き続き上記他の一つの回路ブロックに供給させるように上記電源供給回路を制御する請求の範囲第2項記載のマイクロプロセッサ。
  4. 上記制御回路は、上記他の一つの回路ブロックに供給するクロックを上記より低速のクロックに切り替えるときには、上記他の一つの回路ブロックに供給する電源電圧を、その切り替え前に上記他の一つの回路ブロックに供給していた電源電圧より低い電源電圧に切り替えることを上記電源供給回路に指示する請求の範囲第2項記載のマイクロプロセッサ。
  5. 上記制御回路は、上記他の少なくとも一つの回路ブロックに供給するクロックを上記より低速のクロックへ切り替えるとの上記指示を、上記一つの回路ブロックに供給すべき上記より高速なクロックが、定常動作状態でその回路ブロックに供給されるクロックより高速のクロックであるときに実行し、
    上記他の少なくとも一つの回路ブロックに供給すべき上記より低速のクロックは、定常動作状態で上記他の一つの回路ブロックに供給されるクロックより低速なクロックである請求の範囲第2項記載のマイクロプロセッサ。
  6. 上記制御回路は、定常動作状態では、上記複数の回路ブロックに、上記最高速クロックより低速のクロックと上記最大電源電圧より低い電源電圧を供給するように上記クロック供給回路と上記電源供給回路を制御し、
    上記複数の回路ブロックの一つが上記より高速なクロックが供給される上記一つの回路ブロックとして使用可能であり、
    上記複数の回路ブロックの一つが、上記より低速なクロックが供給される上記他の一つの回路ブロックとして使用可能である請求の範囲第5項記載のマイクロプロセッサ。
  7. 上記制御回路は、定常動作状態では、上記複数の回路ブロックの内の少なくとも一つに、上記最高速のクロックと上記最大電源電圧を供給し、上記複数の回路ブロックの内の少なくとも一つには上記最高速クロックより低速のクロックと上記最大電源電圧より低い電源電圧を供給するように上記クロック供給回路と上記電源供給回路を制御し、
    定常動作状態で上記最高速クロックより低速のクロックが供給される上記少なくとも一つの他の回路ブロックが、上記より高速なクロックが供給される上記一つの回路ブロックとして使用可能であり、
    定常動作時に上記最高速のクロックが供給される上記少なくとも一つの他の回路ブロックが、上記より低速なクロックが供給される上記他の一つの回路ブロックとして使用可能である請求の範囲第5項記載のマイクロプロセッサ。
  8. 上記制御回路は、上記他の一つの回路ブロックに供給するクロックを上記より低速のクロックに切り替えるときには、定常動作時に上記他の一つの回路ブロックに供給していた電源電圧を、上記クロックの切り替え後も引き続き上記他の一つの回路ブロックに供給させるように上記電源供給回路を制御する請求の範囲第5項記載のマイクロプロセッサ。
  9. 上記制御回路は、上記他の一つの回路ブロックに供給するクロックを上記より低速のクロックに切り替えるときには、上記他の一つの回路ブロックに供給する電源電圧を、定常動作時に上記他の一つの回路ブロックに供給していた電源電圧より低い電源電圧に切り替えることを上記電源供給回路に指示する請求の範囲第5項記載のマイクロプロセッサ。
  10. 上記制御回路は、上記より低速のクロックへの切り替えの指示を、上記一つの回路ブロックに供給すべき上記より高速なクロックが上記最高速クロックであるときに実行する請求の範囲第2項記載のマイクロプロセッサ。
  11. 上記制御回路は、上記他の一つの回路ブロックに供給するクロックを上記より低速のクロックに切り替えるときには、その切り替え前に上記他の一つの回路ブロックに供給していた電源電圧を、上記クロックの切り替え後も引き続き上記他の一つの回路ブロックに供給させるように上記電源供給回路を制御する請求の範囲第10項記載のマイクロプロセッサ。
  12. 上記制御回路は、上記他の一つの回路ブロックに供給するクロックを上記より低速のクロックに切り替えるときには、上記他の一つの回路ブロックに供給する電源電圧を、その切り替え前に上記他の一つの回路ブロックに供給していた電源電圧より低い電源電圧に切り替えることを上記電源供給回路に指示する請求の範囲第10項記載のマイクロプロセッサ。
  13. 上記制御回路は、上記マイクロプロセッサで実行中のプログラム内に設けられた、クロックと電源電圧を切り替えるための特定の命令に応答して、その命令が指定するクロックと電源電圧を切り替えるための情報に基づいて、上記複数の回路ブロックの内、そこに供給すべきクロックと電源電圧の少なくとも一方を切り替えるべき少なくとも一つの回路ブロックと、クロックと電源電圧の少なくとも一方の切り替え後の値を指示する変更信号を生成し、その変更信号を上記クロック供給回路と上記電源供給回路に供給する回路を有する請求の範囲第2項記載のマイクロプロセッサ。
  14. 上記変更信号は、それぞれ上記複数の回路ブロックの一つに供給すべきクロックと電源電圧を指示する一組の変更信号からなる請求の範囲第13項記載のマイクロプロセッサ。
  15. 上記制御回路は、複数組の変更信号を記憶するメモリと、
    上記特定の命令が指定する上記切り替えのための情報に基づいて上記メモリから一組の変更信号を読み出し、上記電源供給回路と上記クロック供給回路に供給する回路とを有し、
    各組の変更信号は、それぞれ上記複数の回路ブロックの一つに供給すべきクロックと電源電圧を指示する一組の変更信号からなる請求の範囲第14項記載のマイクロプロセッサ。
  16. 上記メモリは電気的に書き換え可能なメモリからなり、
    上記制御回路は、特定の書き換え命令に応答して、上記メモリに記憶された上記複数組の更新信号を書き換える回路を有する請求の範囲第15項記載のマイクロプロセッサ。
  17. 上記クロック供給回路は、
    上記複数の回路ブロックに共通に設けられ、上記複数のクロックを発生するクロック発生回路と、
    それぞれ一つの回路ブロックに対応して設けられ、それぞれ上記クロック発生回路により発生された上記複数のクロックの一つを選択し、対応する回路ブロックに供給するための複数のクロック切り換え回路を有する請求の範囲第2項記載のマイクロプロセッサ。
  18. 上記クロック発生回路により発生された上記複数のクロックを上記複数の回路ブロックに転送するための複数のクロック信号線をさらに有し、
    上記複数のクロック切り換え回路の各々は、対応する回路ブロック内に設けられ、上記複数のクロック信号線上の上記複数のクロックの一つを選択する回路からなる請求の範囲第17項記載のマイクロプロセッサ。
  19. 上記複数のクロック切り換え回路は、
    上記複数の回路ブロックの外部に位置し、上記マイクロプロセッサの周辺部に近い位置に設けられている請求の範囲第17項記載のマイクロプロセッサ。
  20. 上記電源供給回路は、
    上記複数の回路ブロックに共通に設けられ、それぞれ上記複数の電源電圧を供給するための複数の電源配線と、
    それぞれ一つの回路ブロックに対応して設けられ、それぞれ上記複数の電源配線上の複数の電源電圧の一つを選択し、上記対応する回路ブロックに供給するための複数の電源切り替え回路とを有する請求の範囲第2項記載のマイクロプロセッサ。
  21. 上記複数の電源配線は、上記複数の回路ブロックの近傍まで延在し、
    上記複数の電源切り替え回路は、それぞれ対応する回路ブロック内に設けられている請求の範囲第20項記載のマイクロプロセッサ。
  22. 上記複数の電源切り替え回路は、上記複数の回路ブロックの外部に位置し、上記マイクロプロセッサの周辺部に近い位置に設けられている請求の範囲第20項記載のマイクロプロセッサ。
  23. 上記複数の電源電圧を、上記マイクロプロセッサの外部から上記複数の電源配線に供給する手段をさらに有する請求の範囲第20項記載のマイクロプロセッサ。
  24. 電圧変換回路と、
    上記複数の電源電圧の一つを上記マイクロプロセッサの外部から上記電圧変換回路および上記複数の電源配線の一方に供給する手段をさらに有し、
    上記電圧変換回路は、上記一つの電源電圧から上記複数の電源電圧の内の他方の電源電圧を発生し、上記複数の電源配線の内の他方に供給する請求の範囲第20項記載のマイクロプロセッサ。
  25. 複数の回路ブロックと、
    各回路ブロックに値が異なる複数の電源電圧を切り換えて供給するための電源供給回路と、
    各回路ブロックに周波数が異なる複数のクロックを切り換えて供給するためのクロック供給回路と、
    各回路ブロックに供給するクロックの切り換えとその回路ブロックに供給する電源電圧の切り替えを一定の条件下で上記電源供給回路と上記クロック供給回路に指示する制御回路とを有し、
    上記制御回路は、定常動作時には、上記複数の回路ブロックの内の所定の複数の回路ブロックに、上記複数のクロックの内の最大周波数を有する最高速クロックより低速のクロックと上記最大電源電圧より低い電源電圧を供給し、その後上記所定の複数の回路ブロックの内、最高速で動作させるべき少なくとも一つの回路ブロックに上記最高速クロックと上記最大電源電圧を供給するように上記電源供給回路と上記クロック供給回路を制御するマイクロプロセッサ。
  26. 複数の回路ブロックと、
    各回路ブロックに値が異なる複数の電源電圧を切り換えて供給するための電源供給回路と、
    各回路ブロックに周波数が異なる複数のクロックを切り換えて供給するためのクロック供給回路と、
    上記電源供給回路と上記クロック供給回路に、各回路ブロックに供給するクロックの切り換えとその回路ブロックに供給する電源電圧の切り替えを一定の条件下で指示する制御回路とを有し、
    上記制御回路は、
    上記複数の回路ブロックの内の第1の回路ブロックに供給するクロックと電源電圧より高速のクロックおよび高い電源電圧を、上記複数の回路ブロックの内の第2の回路ブロックに供給する第1のモードと、上記第1の回路ブロックに供給するクロックと電源電圧と同じクロックおよび電源電圧を上記第2の回路ブロックに供給する第2のモードと、上記第1の回路ブロックに供給するクロックと電源電圧より低速のクロックおよび低い電源電圧を上記第2の回路ブロックに供給する第3のモードを切り替えて上記クロック供給回路と上記電源供給回路に指示可能であるマイクロプロセッサ。
  27. 上記第1の回路ブロックは、中央処理ユニットを構成するための回路ブロックである請求の範囲第26項記載のマイクロプロセッサ。
  28. 上記第2の回路ブロックは、浮動小数点演算ユニットを構成するための回路ブロックである請求の範囲第27項記載のマイクロプロセッサ。
JP2000558452A 1998-07-02 1998-07-02 マイクロプロセッサ Expired - Fee Related JP3857052B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1998/002985 WO2000002118A1 (en) 1998-07-02 1998-07-02 Microprocessor

Publications (1)

Publication Number Publication Date
JP3857052B2 true JP3857052B2 (ja) 2006-12-13

Family

ID=14208546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000558452A Expired - Fee Related JP3857052B2 (ja) 1998-07-02 1998-07-02 マイクロプロセッサ

Country Status (3)

Country Link
US (1) US6789207B1 (ja)
JP (1) JP3857052B2 (ja)
WO (1) WO2000002118A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817743B2 (en) 2011-09-06 2017-11-14 Nec Platforms, Ltd. Maintenance apparatus of electronic device, maintenance method of electronic device, and non-transitory computer readable medium storing program

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4640880B2 (ja) * 2000-07-14 2011-03-02 国立大学法人東京工業大学 マイクロプロセッサシステム
KR20020014534A (ko) * 2000-08-18 2002-02-25 박종섭 저전력 오디오 프로세서
US6766460B1 (en) 2000-08-23 2004-07-20 Koninklijke Philips Electronics N.V. System and method for power management in a Java accelerator environment
JP3880310B2 (ja) 2000-12-01 2007-02-14 シャープ株式会社 半導体集積回路
JP3884914B2 (ja) 2001-01-30 2007-02-21 株式会社ルネサステクノロジ 半導体装置
AU2002327599A1 (en) * 2001-08-29 2003-03-18 Analog Devices, Inc. Generic serial port architecture and system
JP2003099252A (ja) * 2001-09-26 2003-04-04 Pacific Design Kk データ処理装置およびその制御方法
US20040003301A1 (en) * 2002-06-28 2004-01-01 Nguyen Don J. Methods and apparatus to control processor performance to regulate heat generation
GB2395625B (en) * 2002-11-20 2005-01-12 Toshiba Res Europ Ltd Reduced power consumption signal processing methods and apparatus
US6948017B2 (en) * 2002-12-18 2005-09-20 International Business Machines Corporation Method and apparatus having dynamically scalable clock domains for selectively interconnecting subsystems on a synchronous bus
EP1623349B1 (en) 2003-05-07 2018-01-24 Conversant Intellectual Property Management Inc. Managing power on integrated circuits using power islands
US7137021B2 (en) * 2003-05-15 2006-11-14 International Business Machines Corporation Power saving in FPU with gated power based on opcodes and data
US20050046400A1 (en) * 2003-05-21 2005-03-03 Efraim Rotem Controlling operation of a voltage supply according to the activity of a multi-core integrated circuit component or of multiple IC components
CN1802622A (zh) * 2003-06-10 2006-07-12 皇家飞利浦电子股份有限公司 具有可再配置的电源和/或时钟频率域的嵌入式计算系统
JP4860104B2 (ja) * 2003-10-09 2012-01-25 日本電気株式会社 情報処理装置
JP4341542B2 (ja) * 2004-12-15 2009-10-07 セイコーエプソン株式会社 情報処理装置および情報処理方法
JP4617879B2 (ja) * 2004-12-28 2011-01-26 セイコーエプソン株式会社 情報処理装置および情報処理方法
JP4341594B2 (ja) * 2005-06-30 2009-10-07 セイコーエプソン株式会社 情報処理装置及び電力制御方法をコンピュータに実行させるためのプログラム
JP4839936B2 (ja) * 2006-04-12 2011-12-21 セイコーエプソン株式会社 情報処理装置及び情報処理方法
JP4839938B2 (ja) * 2006-04-14 2011-12-21 セイコーエプソン株式会社 情報処理装置及び情報処理方法
US7562245B1 (en) * 2006-06-09 2009-07-14 Vivante Corporation Single chip 3D and 2D graphics processor with embedded memory and multiple levels of power controls
JP2006318513A (ja) * 2006-09-04 2006-11-24 Renesas Technology Corp 半導体装置
KR100852188B1 (ko) 2007-02-27 2008-08-13 삼성전자주식회사 동적 전압 스케일링 시스템 및 방법
JP2007251181A (ja) * 2007-03-26 2007-09-27 Nec Corp 半導体集積回路
JP2009140304A (ja) 2007-12-07 2009-06-25 Sony Corp 半導体チップ
JP5152785B2 (ja) * 2008-01-28 2013-02-27 ソニーオプティアーク株式会社 周辺機器、周辺機器の動作方法、電子機器システム
US8145923B2 (en) * 2008-02-20 2012-03-27 Xilinx, Inc. Circuit for and method of minimizing power consumption in an integrated circuit device
JP2010072897A (ja) * 2008-09-18 2010-04-02 Nec Electronics Corp クロック供給装置
US9223383B2 (en) 2012-12-21 2015-12-29 Advanced Micro Devices, Inc. Guardband reduction for multi-core data processor
US9360918B2 (en) 2012-12-21 2016-06-07 Advanced Micro Devices, Inc. Power control for multi-core data processor
US11320853B2 (en) 2016-03-14 2022-05-03 Sharp Nec Display Solutions, Ltd. Image transmission apparatus, image transmission system, and method of controlling image transmission apparatus

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3701493A1 (de) * 1987-01-20 1988-07-28 Nixdorf Computer Ag Schaltungsanordnung zum verteilen elektrischer speiseleistung auf mehrere funktionseinheiten
JP3082175B2 (ja) 1991-07-04 2000-08-28 セイコーエプソン株式会社 情報処理装置
EP0632360A1 (en) * 1993-06-29 1995-01-04 Xerox Corporation Reducing computer power consumption by dynamic voltage and frequency variation
US5493684A (en) * 1994-04-06 1996-02-20 Advanced Micro Devices Power management architecture including a power management messaging bus for conveying an encoded activity signal for optimal flexibility
JPH08152945A (ja) * 1994-11-28 1996-06-11 Nec Corp 消費電力管理装置
JP2846270B2 (ja) 1995-03-28 1999-01-13 株式会社野村総合研究所 複数のウィンドゥを表示するコンピュータにおける新着情報表示装置
JPH09251334A (ja) 1996-03-18 1997-09-22 Hitachi Ltd 消費電力制御方式
JPH10198455A (ja) * 1997-01-14 1998-07-31 Mitsubishi Electric Corp 消費電力制御方式及び方法
US6223080B1 (en) * 1998-04-29 2001-04-24 Medtronic, Inc. Power consumption reduction in medical devices employing multiple digital signal processors and different supply voltages
JP4008583B2 (ja) * 1998-07-22 2007-11-14 株式会社沖データ 電子機器
US6477654B1 (en) * 1999-04-06 2002-11-05 International Business Machines Corporation Managing VT for reduced power using power setting commands in the instruction stream

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817743B2 (en) 2011-09-06 2017-11-14 Nec Platforms, Ltd. Maintenance apparatus of electronic device, maintenance method of electronic device, and non-transitory computer readable medium storing program

Also Published As

Publication number Publication date
WO2000002118A1 (en) 2000-01-13
US6789207B1 (en) 2004-09-07

Similar Documents

Publication Publication Date Title
JP3857052B2 (ja) マイクロプロセッサ
JP4801100B2 (ja) スタック型レジスタファイルの一部分をシャットダウンすることによる電力低減
JP3505018B2 (ja) 半導体集積回路
US6639455B2 (en) Semiconductor integrated circuit device
CA1091355A (en) Microprocessor system
JP6092649B2 (ja) 演算装置、アレイ型演算装置およびその制御方法、情報処理システム
US7805620B2 (en) Highly energy-efficient processor employing dynamic voltage scaling
JPH0969063A (ja) 低電力メモリシステム
EP3759713B1 (en) Dynamic memory power management
JP4806509B2 (ja) 種々の動作モードを具備する集積回路およびそのための方法
JP2000235796A (ja) 半導体装置
JP3467631B2 (ja) ロジックlsi
US6381705B1 (en) Method and device for reducing current consumption of a microcontroller
US5442775A (en) Two clock microprocessor design with stall
JP2001202155A (ja) 低消費電力処理装置
JPH0934867A (ja) マイクロコンピュータ
KR0184633B1 (ko) 씨피유코어
JP4838458B2 (ja) 半導体装置
JP2004326330A (ja) キャッシュメモリ、及びキャッシュメモリの電力削減方法
JPH11212863A (ja) 命令メモリ回路
JP3119618B2 (ja) データ処理装置
JP2002244761A (ja) 半導体集積回路
JP2000066759A (ja) クロック制御回路
JPH11306073A (ja) 情報処理装置
JP6130949B1 (ja) メモリシステムおよびプロセッサシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060324

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: 20060829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060913

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: 20090922

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees