JP2005196430A - 半導体装置および半導体装置の電源電圧/クロック周波数制御方法 - Google Patents

半導体装置および半導体装置の電源電圧/クロック周波数制御方法 Download PDF

Info

Publication number
JP2005196430A
JP2005196430A JP2004001605A JP2004001605A JP2005196430A JP 2005196430 A JP2005196430 A JP 2005196430A JP 2004001605 A JP2004001605 A JP 2004001605A JP 2004001605 A JP2004001605 A JP 2004001605A JP 2005196430 A JP2005196430 A JP 2005196430A
Authority
JP
Japan
Prior art keywords
value
clock frequency
load
power supply
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.)
Pending
Application number
JP2004001605A
Other languages
English (en)
Inventor
Hiroshi Nakamura
宏 中村
Masaaki Kondo
正章 近藤
Motonobu Fujita
元信 藤田
Takashi Minamitani
崇 南谷
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2004001605A priority Critical patent/JP2005196430A/ja
Priority to PCT/JP2004/011046 priority patent/WO2005066795A1/ja
Publication of JP2005196430A publication Critical patent/JP2005196430A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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

Abstract


【課題】 半導体装置において高性能および低消費電力という二つの要求の双方を満たす。
【解決手段】 演算部12、および、主記憶装置と接続されるキャッシュメモリ(L2キャッシュ)22を内部に有する半導体装置10は、キャッシュミスおよびその解消を示す情報を記憶する記憶部と、所定のタイムインターバルごとに記憶部に記憶された情報に基づき、演算部12における演算処理、および、主記憶装置とのデータ転送処理の負荷に応じて、将来のタイムインターバルにおける電源電圧およびクロック周波数を調整する電圧/クロック周波数制御部14とを備える。
【選択図】 図1

Description

本発明は、動的に電源電圧/クロック周波数を変更する半導体装置およびその電圧/クロック周波数制御方法に関する。
近年、マイクロプロセッサの低消費電力化、低消費エネルギー化は、マイクロプロセッサの設計における最も重要な課題となっている。モバイル計算機のバッテリー駆動時間の延長という要求はもちろんのこと、商用サーバ、さらには科学技術計算用途などのハイエンドのプロセッサにおいても、放熱の問題から消費電力低減は必要不可欠な課題となっている。
プロセッサ設計の際には、放熱面での消費電力の上限を定めた熱設計消費電力(Thermal Design Power:TDP)に基づいて設計する必要があるが、最近ではこのTDPがプロセッサの性能を制限する第1要因となることも珍しくない。これは、TDPを満たすために電源電圧を低くすると、プロセッサのクロック周波数を低下せざるを得ないためである。したがって、モバイル計算機から性能を重視するハイエンドのシステムに至るまで、あらゆる計算機システムにおいて低消費電力マイクロプロセッサの構成方式やそのための回路技術が重要となっている。
一方、高性能および低消費電力という二つの要求を満たすために、動的電源電圧変更(Dynamic Voltage Scaling:DVS)機能をもつプロセッサが提案されている。たとえば、インテル社のペンティアム(Pentium:登録商標)プロセッサには、SpeedStepというDVS機能が備えられている。
D. Marculescu著、"On the Use of Microarchitecture-Driven Dynamic Voltage Scaling"、第27回ISCA、"Complexity-EffectiveDesign"におけるワークショップ、2000年6月 G. Semeraro他著、"Dynamic Frequency andVoltage Control for a Multiple Clock Domain Microarchitecture"、Proc.MICOR-35、第356頁〜第367頁、2002年12月
たとえば、非特許文献1では、全てのキャッシュミスをトリガーとして、キャッシュミスが解決されるまでの間、低消費電力モードに移行する手法が提案されている。しかしながら、この手法では、演算処理と主記憶アクセスとの負荷バランスについてあまり考慮されていない。また、2段階の周波数をもつプロセッサのみを対象としており、多段階の電源電圧・クロック周波数から最適なものを選択することができないという問題点もある。
また、非特許文献2では、プロセッサチップ内を複数のクロック周波数領域に分割し、各領域の負荷バランスに基づき、それぞれのクロック周波数を最適化するプロセッサが提案されている。しかしながら、この手法では、主記憶との間のデータ転送の負荷バランスが考慮されていないという問題点があった。
本発明は、高性能および低消費電力という要求を満たす半導体装置およびその電源電圧/クロック周波数制御方法を提供することを目的とする。
本発明においては、1つのアプリケーションの実行中にプロセッサの演算処理と主記憶アクセスによるデータ転送の負荷を監視し、データ転送の負荷が大きい場合にはDVSの手法によりプロセッサの電源電圧・クロック周波数を下げることで、性能に影響を与えずに消費電力を低減させる。
より具体的には、本発明の目的は、演算部、および、主記憶装置と接続されるキャッシュメモリを内部に有する半導体装置であって、キャッシュミスおよびその解消を示す情報を記憶する記憶手段と、所定のタイムインターバルごとに前記記憶手段に記憶された情報に基づき、前記演算部における演算処理、および、主記憶装置とのデータ転送処理の負荷に応じて、将来のタイムインターバルにおける電源電圧およびクロック周波数を調整する電圧/クロック周波数制御手段とを備えたことを特徴とする半導体装置により達成される。
好ましい実施態様においては、前記電圧/クロック周波数制御手段が、キャッシュミス発生時に前記記憶手段にエントリを追加し、その解消時にエントリを削除し、かつ、前記タイムインターバル経過の際に、前記タイムインターバルにおけるエントリ数の平均値を算出し、当該平均値を、負荷を示す値とする。これは第1の実施の形態に対応する。
別の好ましい実施態様においては、前記電圧/クロック周波数制御手段が、キャッシュミス発生時に、前記記憶手段中のレジスタの値を加算し、その解消時にレジスタの値を減算し、各クロックサイクルにおけるレジスタの値を記憶手段に記憶し、かつ、前記タイムインターバル経過の際に、前記記憶手段を参照して前記タイムインターバルに含まれるクロックサイクルにおけるキャッシュミス数の分布を算出し、前記分布を示す値を、負荷を示す値とする。これは第2の実施の形態に対応する。
より好ましくは、さらに、前記記憶手段が複数のカウンタを有し、前記電圧/クロック周波数制御手段が、各クロックサイクルにおけるレジスタの値にしたがって、対応するカウンタの値をカウントアップし、かつ、前記タイムインターバル経過の際に、各カウンタの値を参照して前記キャッシュミス数の分布を算出する。
たとえば、前記記憶手段が、第1ないし第nのカウンタCnt0〜Cntnを有し、
前記電圧/クロック周波数制御手段が、各クロックサイクルにおけるレジスタの値が0、1、・・・、n以上であるときに、それぞれ,第1のカウンタないし第nのカウンタの値をカウントアップし、かつ、負荷を示す値Loadとして
Load=(Cnt0の値)×w+(Cnt1の値)×w+・・・
+(Cntnの値)×w
(ただし、W〜Wは重み)を算出してもよい。カウンタ数として、第1のカウンタCnt0〜第2のカウンタCnt2の3つのカウンタを利用しても良い。無論、それより少ないカウンタ或いは多数のカウンタを採用してもよいことは言うまでもない。
また、別の好ましい実施態様においては、前記電圧/クロック周波数制御手段が、負荷を示す値が、上限閾値を越えた場合に、電源電圧およびクロック周波数を低下させ、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数を増大させるように構成されている。
より好ましくは、電源電圧およびクロック周波数の組が複数設けられ、前記電圧/クロック周波数制御手段が、前記負荷を示す値が、上限閾値を越えた場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階低下するような電源電圧およびクロック周波数の組を選択し、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階増大するような電源電圧およびクロック周波数の組を選択するように構成されている。
また、本発明の目的は、演算部、および、主記憶装置と接続されるキャッシュメモリを内部に有する半導体装置の電源電圧およびクロック周波数を制御する方法であって、所定のタイムインターバルごとに記憶手段に記憶された情報に基づき、前記演算部における演算処理、および、主記憶装置とのデータ転送処理の負荷を算出する負荷算出ステップと、前記負荷に基づいて、将来のタイムインターバルにおける電源電圧およびクロック周波数を調整する調整ステップとを備えたことを特徴とする方法によっても達成される。
好ましい実施態様においては、前記負荷算出ステップが、キャッシュミス発生時に前記記憶手段にエントリを追加し、その解消時にエントリを削除するステップと、前記タイムインターバル経過の際に、前記タイムインターバルにおけるエントリ数の平均値を算出するステップとを有し、当該平均値を、負荷を示す値とする。
別の好ましい実施態様においては、前記負荷算出ステップが、キャッシュミス発生時に、前記記憶手段中のレジスタの値を加算し、その解消時にレジスタの値を減算するステップと、各クロックサイクルにおけるレジスタの値を前記記憶手段に記憶するステップと、前記タイムインターバル経過の際に、前記記憶手段を参照して前記タイムインターバルに含まれるクロックサイクルにおけるキャッシュミス数の分布を算出するステップとを有し、前記分布を示す値を、負荷を示す値とする。
より好ましい実施態様においては、さらに、記憶手段が複数のカウンタを有し、前記負荷算出ステップが、各クロックサイクルにおけるレジスタの値にしたがって、対応するカウンタの値をカウントアップするステップと、前記タイムインターバル経過の際に、各カウンタの値を参照して前記キャッシュミス数の分布を算出するステップとを有する。
たとえば、前記記憶手段が、第1ないし第nのカウンタCnt0〜Cntnを有し、
前記負荷算出ステップが、各クロックサイクルにおけるレジスタの値が0、1・・・、n以上であるときに、それぞれ,第1のカウンタないし第nのカウンタの値をカウントアップするステップと、負荷を示す値Loadとして
Load=(Cnt0の値)×w+(Cnt1の値)×w+・・・
+(Cntnの値)×w
(ただし、W〜Wは重み)を算出するステップとを有しているのが望ましい。
また、別の好ましい実施態様においては、前記調整ステップが、負荷を示す値が、上限閾値を越えた場合に、電源電圧およびクロック周波数を低下させ、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数を増大させるステップを有する。
より好ましくは、電源電圧およびクロック周波数の組が複数設けられ、前記調整ステップが、前記負荷を示す値が、上限閾値を越えた場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階低下するような電源電圧およびクロック周波数の組を選択し、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階増大するような電源電圧およびクロック周波数の組を選択するステップを有する。
本発明によれば、高性能および低消費電力という要求を満たす半導体装置およびその電源電圧/クロック周波数制御方法を提供することが可能となる。
以下、添付図面を参照して本発明の実施の形態について説明する。図1は、本発明の第1の実施の形態にかかる半導体装置の概略を示すブロックダイヤグラムである。本実施の形態にかかる半導体装置は、主としてプロセッサを指すが、これに限定されるものではなく、内部にキャッシュを備え、かつ、外部記憶装置との間でデータアクセスをするようなものを含む。
図1に示すように、本発明の第1の実施の形態にかかる半導体装置10は、実際の演算を実行する演算部12、電源電圧およびクロック周波数を制御する電圧/クロック周波数制御部14、キャッシュメモリ群16を有する。本実施の形態において、キャッシュメモリ群16は、一時キャッシュとしてL1命令キャッシュ(ICache)18およびL1データキャッシュ(DCache)20を有し、2次キャッシュとしてL2キャッシュ(L2Cache)22を有する。L2キャッシュ22が、メモリバスを介して外部の主記憶装置に接続される。また、この半導体装置は、ノンブロッキングキャッシュを採用しており、キャッシュミスが生じてもプロセッサが処理を実行できるようになっている。また、本実施の形態において、電圧/クロック周波数制御部14は、未解決のキャッシュミスの情報を保持するためのレジスタ(Miss
State Holding Register:MSHR)を有している。なお、MSHRは、メモリバスを介して外部の主記憶装置との転送が生じるキャッシュを制御する論理部(キャッシュ制御論理部)が保持するように構成し、キャッシュ制御論理部が、MSHRの更新を実行しても良いことは言うまでもない。この場合に、電圧/クロック周波数制御部14は、MSHRの値を参照できれば良い。
本実施の形態にかかる半導体装置の動作の詳細な説明に先立って、DVSの手法および本発明の概略について説明する。DVSは、電源駆動/バッテリー駆動の別、或いは、プロセッサのタスク処理要求の負荷などに応じて、動的にプロセッサのクロック周波数と電源電圧とを調整する手法である。バッテリー駆動時間を長くしたい、或いは、行うべきタスクが少なくプロセッサのアイドル状態が長いような場合には、プロセッサチップの電源電圧を下げて消費電力削減を狙う。
このDVSによる消費電力および性能への影響は、以下のように定式化することができる。まず、CMOS半導体のスイッチングに起因する消費電力Pは、以下の(1)式で表わすことができる。
P∝C×Vdd×f ・・・(1)
ここで、CはCMOSの負荷容量、Vddは電源電圧、fはクロック周波数である。また、CMOS半導体回路の遅延時間Dは、一般的に、(2)式で表わすことができる。
D∝Vdd/(V−Vα ・・・(2)
ここで、Vはゲート電圧、Vは閾値電圧である。また、αはトランジスタ中のキャリアの速度飽和を表わす値で典型的には1〜2の値をとる。(1)式に示すように、消費電力は電源電圧の2乗に比例するため、電源電圧を下げることで大きな消費電力削減が期待できる。しかしながら、(2)式から、電源電圧を下げると回路の遅延時間が増加してしまうため、正確な動作を保障するためには同時にクロック周波数を下げる必要がある。このようにCMOS回路では電源電圧の変更に伴い、消費電力と性能との間にトレードオフが存在する。
近年、プロセッサと主記憶との間の性能格差が深刻化しており、キャッシュミスが頻繁に生じるようなアプリケーションでは、プロセッサは多くの時間を主記憶からのデータ転送待ちに費やしている。そこで、本発明においては、DVSを用いた場合のクロック周波数低下に起因する性能のペナルティを、そのデータ転送待ち時間により隠蔽することで、性能低下を最小限に抑えつつ消費電力を削減する。
図2は、従来(DVSなし)の電源電圧制御(図2(a)と本発明にかかる電源電圧制御(図2(b))とを比較する図である。これら例では、キャッシュミスが生じた場合でもプロセッサが処理を実行し続けることができるノンブロッキングキャッシュを前提としている。また、主記憶からのデータ転送(cache miss resolve)は、同時には一つのリクエストしか実行できないと考える。
DVSなしの従来のプロセッサにおいては、キャッシュミスによるデータ待ちのストール時間が多く、効率的にプロセッサを稼動させていないことがわかる。その一方、DVSの手法を用いた場合には、主記憶間とのデータ転送処理の負荷が高い場合に、プロセッサの電源電圧およびクロック周波数を下げることでストール時間が減少し、また、消費電力を削減することができるため、効率的に処理を実行することができる。ここで、図2(b)に示すように、適切なクロック周波数を選択することができれば、性能低下は生じない。本発明では、このように性能低下を生じることを回避しつつ、電源電圧およびクロック周波数を下げることを可能にする。このためには、演算処理と主記憶アクセスとの負荷バランスを予測し、最適な電源電圧およびクロック周波数を決定する必要がある。ノンブロッキングキャッシュの場合、キャッシュミス解決のためのデータ転送中でも、プロセッサの実行が継続されるため、転送中に再び新たなキャッシュミスが生じる可能性がある。したがって、ある時点では複数のキャッシュミスが存在していることも少なくない。ここで、一般的に、キャッシュと主記憶との間のデータ転送は、同時には1つのリクエストしか処理できないため、キャッシュミスによるデータ転送要求が積み重なると、プロセッサはストールする可能性が高い、すなわち演算処理に対して、データ転送要求の負荷が高いことになる。そこで、本発明では、「同時に存在するキャッシュミスの数」の情報に基づいてDVSを実現する。以下、第1の実施の形態にかかる手法について詳細に説明する。
図3(a)に示すように、この第1の実施の形態にかかる電圧/クロック周波数制御部14は、キャッシュミスがあると(ステップ301でイエス(Yes))、MSHRにエントリを追加し(ステップ302)、キャッシュミスが解消すると(ステップ303でイエス(Yes))、MSHRからエントリを削除する(ステップ304)。各クロックサイクルで、エントリ数を累算し(ステップ305)、MSHR中に記憶しておく。また、後述するように、Tivl経過後、次のタイムインターバルでの電源電圧およびクロック周波数が決定されると、AvNumMSHRはリセットされる。
図3(b)に示すように、設定されたタイムインターバルTitvl経過後(ステップ311)、電圧/クロック周波数制御部14は、タイムインターバルTitvlに含まれるサイクル数で、累算されたエントリ数を割ることで(ステップ312)、MSHRの平均のエントリ数AvNumMSHRを得ることができる。
また、本実施の形態においては、タイムインターバルTitvlを導入し、当該タイムインターバルTitvlごとに負荷を予測している。つまり、図4に示すように、あるタイムインターバル(たとえば、Titvl1)の負荷(Load1)に基づいて、次のインターバル(Titvl2)の負荷(Load2’)を予測して、次のインターバルにおいて、それに基づく電源電圧およびクロック周波数で半導体装置を動作させる。たとえば、タイムインターバルTitvlは、10000クロックサイクルとする。無論、タイムインターバルはこの値に限定されるものではない。
ここでは、基本的には、前回のタイムインターバルでの負荷(load(N-1))が高ければ、次のタイムインターバルでの負荷(LoadN)も同様に高いと予測し、その一方、前回のタイムインターバルでの負荷(Load(N-1))が低ければ、次のタイムインターバルでの負荷(LoadN)も同様に低いと予測する。この予測ロジックについて、図5を参照して説明する。本実施の形態では、レベルが高くなるのにしたがって、電源電圧およびクロック周波数が高くなるような、電源電圧およびクロックの組を複数用意しておく。また、負荷「Load」の上限/下限の閾値TH/THが設定される。たとえば、第1の実施の形態において、TH=1.2、TH=0.8に設定しておく。無論、他の値を設定しても良いことは言うまでも無い。
なお、第1の実施の形態において、負荷「Load」として、タイムインターバルにおける平均のエントリ数AvNumMSHRが利用される。たとえば、同時に存在するキャッシュミスの数が常に「1」であった場合には、「AvNumMSHR=1」であるため、「load=1」となる。
図5に示すように、電源/クロック周波数制御部14は、「Load>TH」であると(ステップ501でイエス(Yes))、電源電圧/クロック周波数を1レベル下げる(ステップ502)。ここで、1レベル下げるとは、電源電圧およびクロック周波数の双方が1段階低くなるような、前述した電源電圧およびクロック周波数の組を選択することをいう。この場合、主記憶のアクセスの負荷が大きい(半導体装置自体の処理の負荷は小さい)ため、電源電圧およびクロック周波数を小さくできると考える。その一方、「Load<THL」であった場合(ステップ503でイエス(Yes))には、電源電圧/クロック周波数が1レベル上げられる(ステップ504)。
次に、第2の実施の形態について説明する。第1の実施の形態においては、負荷「Load」を取得するために、タイムインターバルにおける平均のエントリ数AvNumMSHRを利用したが、第2の実施の形態においては、キャッシュミスをカウントする手法を採用する。
図6に示すように、第2の実施の形態においては、L2キャッシュ(L2Cache)にキャッシュミスやライトバック(write-back)が生じたときに、レジスタRL2mの値がインクリメントされ、キャッシュミスなどが解消した(解決した)ときに、レジスタRL2mの値がデクリメントされる。また、第2の実施の形態においては、3つのカウンタCnt0〜Cnt2が設けられ、各クロックサイクルで、レジスタRL2mの値に応じてカウント値を変化させている。図7に示すように、電源/クロック周波数制御部14は、各クロックサイクルにおいて、レジスタRL2mの値を参照し(ステップ701)、その値に応じて所定のカウンタをインクリメントする(ステップ702〜ステップ705)。たとえば、カウンタRL2mの値が「1」より大きければ、カウンタCnt2がインクリメントされる(ステップ703)。また、カウンタRL2mの値が「1」、「0」であれば、カウンタCnt1、Cnt0がそれぞれインクリメントされる(ステップ704、705)。カウンタCnt0〜Cnt1により、あるタイムインターバルにおいて同時に存在したキャッシュミス数の分布を知ることができる。
第2の実施の形態にかかる電圧/クロック周波数制御部14は、タイムインターバルTitvl経過後に、カウンタCnt0〜Cnt2の値を参照して、以下の(3)式にしたがって負荷「Load」を算出する。
Load=(Cnt2)×W+(Cnt1)×W+(Cnt0)×W ・・・(3)
なお、(Cnt0)〜(Cnt2)は、それぞれ、カウンタCnt0〜Cnt2の値である。第2の実施の形態においては、W=2、W=1、W=−1としている。それぞれの重みを同じとするのであれば、W=0とするところ、ここでは、Wの重みを他よりも重くしている。これは、Cnt0がカウントされているということは、半導体装置自体が忙しくしていることを意味しており、その場合には半導体装置を高速に動かすべきであるという知見による。無論、この値(或いは値の比)は上述したものに限定されないことはいうまでもない。
第2の実施の形態においても、上述した負荷「Load」の算出後、図5に示すような電源電圧/クロック周波数の変更が実行される。第2の実施の形態において、タイムインターバルTitvlのクロックサイクル数を「10000」とすると、同時に存在するキャッシュミスの数が常に「1」であれば、「Load=10000」となる。そこで、たとえば、「TH=12000」、「TH=8000」に設定すればよい。無論、他の値をとっても良いことは言うまでもない。
第1の実施の形態および第2の実施の形態にかかる半導体装置について、シミュレーションによりベンチマークテストを行った。ベンチマークプログラムとして、2つのベクトルの内積を求めるプログラム(以下、「Vector」と称する)、および、SPEC CPU2000中のいくつかの浮動小数点プログラムを利用した。また、電源電圧/クロック周波数の組は、インテル社のペンティアム(登録商標)Mプロセッサと同様に6レベルで変更可能とした(図8参照)。
第1の実施の形態におけるパラメータの設定は以下の通りである。
itvl=10000サイクル TH=1.2 TH=0.8
また、第2の実施の形態におけるパラメータの設定は以下の通りである。
itvl=10000サイクル TH=10000 TH=6000
シミュレーションパラメータは、以下のように設定した。
フェッチサイズ(fetch size):4
b−pred.:bimodal 2Ktable
BTB:512−sets 4−way
miss b−pred.penalty:3サイクル
RUUサイズ:64
LSQサイズ:32
L1ICache:32KB 2−way、32Bline、1サイクルレイテンシ
L1DCache:32KB 4−way、32Bline、1サイクルレイテンシ
L2Cache:128KB 4−way、64Bline、10サイクルレイテンシ
バス(Bus):8B幅
メモリレイテンシ:50ns(1.6GHzでは80サイクル)
比較例においては、電源電圧1.484V、クロック周波数1.6GHzでそれぞれのプログラムを実行させた。
図9は、それぞれのプログラムを実行させたときの実行時間、および、そのときのクロック周波数の分布を示す。図中、「norm」は比較例を示し、「DPT1」、「DPT2」は、それぞれ第1の実施の形態、第2の実施の形態を示す。図9に示すように、第1の実施の形態および第2の実施の形態ではプログラムに応じて様々なクロック周波数で半導体装置が動作していることがわかる。その一方、「Vector」と「188.ammp」をのぞき、クロック周波数を下げているのにもかかわらずそれほどの性能低下が見られないことが理解できる。特に、「179.art」、および、「301.aspi(第2の実施の形態)」では、ほとんどの時間「600MHz」と低速で動作しているのにもかかわらず、あまり性能の低下がみられない。上記シミュレーションによれば、第1の実施の形態で平均4.6%の性能低下が見られ、第2の実施の形態で平均6.1%の性能低下が見られた。
また、図10は、それぞれのプログラムを実行させたときの消費エネルギーを示している。ほぼ全てのプログラムで、比較例「norm」よりも消費エネルギーが削減されていることがわかる。第1の実施の形態では平均32%、第2の実施の形態では平均46%、消費エネルギーが削減された。このように、本実施の形態によれば、大幅な消費エネルギーの低減が実現できるにもかかわらず、性能低下はわずかであることがわかった。
本実施の形態によれば、半導体装置の計算処理と主記憶間データ転送処理との負荷バランスに応じて、クロック周波数および電源電圧を最適化している。これにより、最高周波数で動作させた場合と比較して、性能低下を最小限に抑えつつ著しい消費電力の低減を実現することが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態においては、半導体装置は1次キャッシュおよび2次キャッシュを備え、半導体装置が、2次キャッシュのキャッシュミスやミスの解消を取得している。しかしながら、本発明においては、主記憶と接続されたキャッシュのキャッシュミス等の情報を取得できるような構成をとっていれば良い。
また、前記実施の形態において、半導体装置のタイムインターバルTitvlを実行するプログラムに応じて変更しても良い。プログラムによりタイムインターバルを短くしてよりきめの細かい制御をするほうが望ましい場合もある。また、閾値ThおよびThを可変としても良い。
さらに、前記実施の形態においては、前回のタイムインターバルでの負荷に基づいて今回のタイムインターバルにおけるクロック周波数および電源電圧が決定されているがこれに限定されるものではなく、決定された値を、それより後(たとえば、次回のタイムインターバル)でのクロック周波数および電源電圧として適用しても良い。
図1は、本発明の第1の実施の形態にかかる半導体装置の構成を示すブロックダイヤグラムである。 図2は、従来の電源電圧制御と本発明にかかる電源電圧制御とを比較する図である。 図3は、本実施の形態にかかる半導体装置の電圧/クロック周波数制御部にて実行される処理を示すフローチャートである。 図4は、本実施の形態にかかるタイムインターバルごとの電圧制御を説明する図である。 図5は、本実施の形態にかかる半導体装置の電圧/クロック周波数制御部にて実行される処理を示すフローチャートである。 図6は、第2の実施の形態にかかるレジスタRL2mの値の変化を説明する図である。 図7は、第2の実施の形態にかかる半導体装置の電圧/クロック周波数制御部にて実行される処理を示すフローチャートである。 図8は、シミュレーションにおけるクロック周波数および電源電圧を示す図である。 図9は、シミュレーション結果(プログラム実行時間およびそのときのクロック周波数の分布)を示す図である。 図10は、シミュレーション結果(消費エネルギー)を示す図である。
符号の説明
10 半導体装置
12 演算部
14 電圧/クロック周波数制御部
16 キャッシュメモリ群
18 L1命令キャッシュ
20 L1データキャッシュ
22 L2キャッシュ

Claims (14)

  1. 演算部、および、主記憶装置と接続されるキャッシュメモリを内部に有する半導体装置であって、
    キャッシュミスおよびその解消を示す情報を記憶する記憶手段と、
    所定のタイムインターバルごとに前記記憶手段に記憶された情報に基づき、前記演算部における演算処理、および、主記憶装置とのデータ転送処理の負荷に応じて、将来のタイムインターバルにおける電源電圧およびクロック周波数を調整する電圧/クロック周波数制御手段とを備えたことを特徴とする半導体装置。
  2. 前記電圧/クロック周波数制御手段が、キャッシュミス発生時に前記記憶手段にエントリを追加し、その解消時にエントリを削除し、かつ、前記タイムインターバル経過の際に、前記タイムインターバルにおけるエントリ数の平均値を算出し、当該平均値を、負荷を示す値とすることを特徴とする請求項1に記載の半導体装置。
  3. 前記電圧/クロック周波数制御手段が、キャッシュミス発生時に、前記記憶手段中のレジスタの値を加算し、その解消時にレジスタの値を減算し、各クロックサイクルにおけるレジスタの値を記憶手段に記憶し、かつ、前記タイムインターバル経過の際に、前記記憶手段を参照して前記タイムインターバルに含まれるクロックサイクルにおけるキャッシュミス数の分布を算出し、前記分布を示す値を、負荷を示す値とすることを特徴とする請求項1に記載の半導体装置。
  4. さらに、前記記憶手段が複数のカウンタを有し、
    前記電圧/クロック周波数制御手段が、各クロックサイクルにおけるレジスタの値にしたがって、対応するカウンタの値をカウントアップし、かつ、前記タイムインターバル経過の際に、各カウンタの値を参照して前記キャッシュミス数の分布を算出することを特徴とする請求項3に記載の半導体装置。
  5. 前記記憶手段が、第1ないし第nのカウンタCnt0〜Cntnを有し、
    前記電圧/クロック周波数制御手段が、各クロックサイクルにおけるレジスタの値が0、1、・・・、n以上であるときに、それぞれ,第1のカウンタないし第nのカウンタの値をカウントアップし、かつ、
    負荷を示す値Loadとして
    Load=(Cnt0の値)×w+(Cnt1の値)×w+・・・
    +(Cntnの値)×w
    (ただし、W〜Wは重み)
    を算出することを特徴とする請求項4に記載の半導体装置。
  6. 前記電圧/クロック周波数制御手段が、負荷を示す値が、上限閾値を越えた場合に、電源電圧およびクロック周波数を低下させ、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数を増大させるように構成されたことを特徴とする請求項1ないし5の何れか一項に記載の半導体装置。
  7. 電源電圧およびクロック周波数の組が複数設けられ、
    前記電圧/クロック周波数制御手段が、前記負荷を示す値が、上限閾値を越えた場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階低下するような電源電圧およびクロック周波数の組を選択し、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階増大するような電源電圧およびクロック周波数の組を選択するように構成されたことを特徴とする請求項6に記載の半導体装置。
  8. 演算部、および、主記憶装置と接続されるキャッシュメモリを内部に有する半導体装置の電源電圧およびクロック周波数を制御する方法であって、
    所定のタイムインターバルごとに記憶手段に記憶された情報に基づき、前記演算部における演算処理、および、主記憶装置とのデータ転送処理の負荷を算出する負荷算出ステップと、
    前記負荷に基づいて、将来のタイムインターバルにおける電源電圧およびクロック周波数を調整する調整ステップとを備えたことを特徴とする方法。
  9. 前記負荷算出ステップが、キャッシュミス発生時に前記記憶手段にエントリを追加し、その解消時にエントリを削除するステップと、
    前記タイムインターバル経過の際に、前記タイムインターバルにおけるエントリ数の平均値を算出するステップとを有し、当該平均値を、負荷を示す値とすることを特徴とする請求項8に記載の方法。
  10. 前記負荷算出ステップが、キャッシュミス発生時に、前記記憶手段中のレジスタの値を加算し、その解消時にレジスタの値を減算するステップと、
    各クロックサイクルにおけるレジスタの値を前記記憶手段に記憶するステップと、
    前記タイムインターバル経過の際に、前記記憶手段を参照して前記タイムインターバルに含まれるクロックサイクルにおけるキャッシュミス数の分布を算出するステップとを有し、前記分布を示す値を、負荷を示す値とすることを特徴とする請求項8に記載の方法。
  11. さらに、記憶手段が複数のカウンタを有し、
    前記負荷算出ステップが、各クロックサイクルにおけるレジスタの値にしたがって、対応するカウンタの値をカウントアップするステップと、
    前記タイムインターバル経過の際に、各カウンタの値を参照して前記キャッシュミス数の分布を算出するステップとを有することを特徴とする請求項10に記載の方法。
  12. 前記記憶手段が、第1ないし第nのカウンタCnt0〜Cntnを有し、
    前記負荷算出ステップが、各クロックサイクルにおけるレジスタの値が0、1・・・、n以上であるときに、それぞれ,第1のカウンタないし第nのカウンタの値をカウントアップするステップと、
    負荷を示す値Loadとして
    Load=(Cnt0の値)×w+(Cnt1の値)×w+・・・
    +(Cntnの値)×w
    (ただし、W〜Wは重み)
    を算出するステップとを有することを特徴とする請求項11に記載の方法。
  13. 前記調整ステップが、負荷を示す値が、上限閾値を越えた場合に、電源電圧およびクロック周波数を低下させ、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数を増大させるステップを有することを特徴とする請求項8ないし12の何れか一項に記載の方法。
  14. 電源電圧およびクロック周波数の組が複数設けられ、
    前記調整ステップが、前記負荷を示す値が、上限閾値を越えた場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階低下するような電源電圧およびクロック周波数の組を選択し、下限閾値より小さくなった場合に、前記電源電圧およびクロック周波数がそれぞれ所定の段階増大するような電源電圧およびクロック周波数の組を選択するステップを有することを特徴とする請求項13に記載の方法。
JP2004001605A 2004-01-07 2004-01-07 半導体装置および半導体装置の電源電圧/クロック周波数制御方法 Pending JP2005196430A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004001605A JP2005196430A (ja) 2004-01-07 2004-01-07 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
PCT/JP2004/011046 WO2005066795A1 (ja) 2004-01-07 2004-08-02 半導体装置および半導体装置の電源電圧/クロック周波数制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004001605A JP2005196430A (ja) 2004-01-07 2004-01-07 半導体装置および半導体装置の電源電圧/クロック周波数制御方法

Publications (1)

Publication Number Publication Date
JP2005196430A true JP2005196430A (ja) 2005-07-21

Family

ID=34746998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004001605A Pending JP2005196430A (ja) 2004-01-07 2004-01-07 半導体装置および半導体装置の電源電圧/クロック周波数制御方法

Country Status (2)

Country Link
JP (1) JP2005196430A (ja)
WO (1) WO2005066795A1 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008120274A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 演算能力を制御する処理装置
JP2009151768A (ja) * 2007-12-19 2009-07-09 Internatl Business Mach Corp <Ibm> キャッシュ・パフォーマンスに基づいたコンピュータ・システムに関する先制的な熱管理システム
JP2009541866A (ja) * 2006-06-29 2009-11-26 インテル コーポレイション 熱効率的な集積回路(ic)動作のためのダイ単位温度プログラミング
JP2010146474A (ja) * 2008-12-22 2010-07-01 Hitachi Ltd 半導体装置
JP2013016104A (ja) * 2011-07-06 2013-01-24 Renesas Mobile Corp 半導体装置、それを用いた無線通信端末、及びクロック周波数制御方法
JP2013529816A (ja) * 2010-06-24 2013-07-22 インテル・コーポレーション メモリデバイスの消費電力を減らす方法およびシステム
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
US8555001B2 (en) 2008-08-25 2013-10-08 Nec Corporation Cache memory, including miss status/information and a method using the same
US20140025853A1 (en) * 2012-07-19 2014-01-23 International Business Machines Corporation Computer system
JP2014507719A (ja) * 2011-09-21 2014-03-27 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアシステムエネルギー消費最適化
US9176568B2 (en) 2011-07-06 2015-11-03 Renesas Electronics Corporation Clock control and power management for semiconductor apparatus and system
CN106030453A (zh) * 2014-03-27 2016-10-12 英特尔公司 支持图形处理单元频率的动态调整的方法和装置
JP2017532686A (ja) * 2014-10-16 2017-11-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム
JP2019527890A (ja) * 2016-07-22 2019-10-03 華為技術有限公司Huawei Technologies Co.,Ltd. メモリリクエスト情報に基づきキャッシュメモリのクロック速度/電圧を設定する装置及び方法
US10948969B2 (en) 2014-10-16 2021-03-16 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
JP2022535357A (ja) * 2019-05-29 2022-08-08 芯原微電子(上海)股▲ふん▼有限公司 ピーク消費電力を制御する方法及びシステム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100561404C (zh) * 2005-12-29 2009-11-18 联想(北京)有限公司 节省处理器功耗的方法
CN114924615B (zh) * 2022-04-22 2024-02-20 龙芯中科技术股份有限公司 内存时钟调节方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JP3573957B2 (ja) * 1998-05-20 2004-10-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ
US6378081B1 (en) * 1998-10-01 2002-04-23 Gateway, Inc. Power conservation without performance reduction in a power-managed system
US6704876B1 (en) * 2000-09-26 2004-03-09 Sun Microsystems, Inc. Microprocessor speed control mechanism using power dissipation estimation based on the instruction data path
JP3880310B2 (ja) * 2000-12-01 2007-02-14 シャープ株式会社 半導体集積回路

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8461895B2 (en) 2006-06-29 2013-06-11 Intel Corporation Per die temperature programming for thermally efficient integrated circuit (IC) operation
JP2009541866A (ja) * 2006-06-29 2009-11-26 インテル コーポレイション 熱効率的な集積回路(ic)動作のためのダイ単位温度プログラミング
US8044697B2 (en) 2006-06-29 2011-10-25 Intel Corporation Per die temperature programming for thermally efficient integrated circuit (IC) operation
WO2008120274A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 演算能力を制御する処理装置
JP2009151768A (ja) * 2007-12-19 2009-07-09 Internatl Business Mach Corp <Ibm> キャッシュ・パフォーマンスに基づいたコンピュータ・システムに関する先制的な熱管理システム
US8555001B2 (en) 2008-08-25 2013-10-08 Nec Corporation Cache memory, including miss status/information and a method using the same
JP2010146474A (ja) * 2008-12-22 2010-07-01 Hitachi Ltd 半導体装置
JP2013529816A (ja) * 2010-06-24 2013-07-22 インテル・コーポレーション メモリデバイスの消費電力を減らす方法およびシステム
JP2013016104A (ja) * 2011-07-06 2013-01-24 Renesas Mobile Corp 半導体装置、それを用いた無線通信端末、及びクロック周波数制御方法
US9195260B2 (en) 2011-07-06 2015-11-24 Renesas Electronics Corporation Semiconductor device, radio communication terminal using same, and clock frequency control method
US9176568B2 (en) 2011-07-06 2015-11-03 Renesas Electronics Corporation Clock control and power management for semiconductor apparatus and system
JP2014507719A (ja) * 2011-09-21 2014-03-27 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアシステムエネルギー消費最適化
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
US20140025853A1 (en) * 2012-07-19 2014-01-23 International Business Machines Corporation Computer system
US9514084B2 (en) * 2012-07-19 2016-12-06 International Business Machines Corporation Power saving based on clock management claim of priority
CN106030453A (zh) * 2014-03-27 2016-10-12 英特尔公司 支持图形处理单元频率的动态调整的方法和装置
US10593011B2 (en) 2014-03-27 2020-03-17 Intel Corporation Methods and apparatus to support dynamic adjustment of graphics processing unit frequency
JP2017532686A (ja) * 2014-10-16 2017-11-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム
US10928882B2 (en) 2014-10-16 2021-02-23 Futurewei Technologies, Inc. Low cost, low power high performance SMP/ASMP multiple-processor system
US10948969B2 (en) 2014-10-16 2021-03-16 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
JP2019527890A (ja) * 2016-07-22 2019-10-03 華為技術有限公司Huawei Technologies Co.,Ltd. メモリリクエスト情報に基づきキャッシュメモリのクロック速度/電圧を設定する装置及び方法
JP2022535357A (ja) * 2019-05-29 2022-08-08 芯原微電子(上海)股▲ふん▼有限公司 ピーク消費電力を制御する方法及びシステム
JP7304972B2 (ja) 2019-05-29 2023-07-07 芯原微電子(上海)股▲ふん▼有限公司 ピーク消費電力を制御する方法及びシステム

Also Published As

Publication number Publication date
WO2005066795A1 (ja) 2005-07-21

Similar Documents

Publication Publication Date Title
JP2005196430A (ja) 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
US20240029488A1 (en) Power management based on frame slicing
KR101518440B1 (ko) 프로세싱 노드의 동적 성능 제어
US10013047B2 (en) Operating point management in multi-core architectures
US8510582B2 (en) Managing current and power in a computing system
US9851774B2 (en) Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase
JP6289444B2 (ja) 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP5189921B2 (ja) コンピュータの放熱システム
KR101673500B1 (ko) 캐시 제어를 위한 방법 및 장치
US8924758B2 (en) Method for SOC performance and power optimization
US8942932B2 (en) Determining transistor leakage for an integrated circuit
US20080235364A1 (en) Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
Chantem et al. Online work maximization under a peak temperature constraint
US20120297232A1 (en) Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
US8612781B2 (en) Method and apparatus for application of power density multipliers optimally in a multicore system
Salehi et al. Dynamic voltage and frequency scheduling for embedded processors considering power/performance tradeoffs
US9946319B2 (en) Setting power-state limits based on performance coupling and thermal coupling between entities in a computing device
Bashir et al. An online temperature-aware scheduling technique to avoid thermal emergencies in multiprocessor systems
JP7408650B2 (ja) ダイナミックランダムアクセスメモリランクのパワーダウンモードの投機的な終了
US20120089852A1 (en) Energy optimization techniques in a computing system
Zhang et al. Dynamic core scaling: Trading off performance and energy beyond DVFS
Ercan et al. An integrated approach to system-level cpu and memory energy efficiency on computing systems
Homayoun et al. RELOCATE: Re gister File Loc al A ccess Pat te rn Redistribution Mechanism for Power and Thermal Management in Out-of-Order Embedded Processor
Singh et al. Thermal aware power save policy for hot and cold jobs
JPH11110063A (ja) コンピュータシステム