(58)【調査した分野】(Int.Cl.,DB名)
前記変更された電力レベルを、前記第1持続区間に連続する第2持続区間で維持させる段階をさらに含むことを特徴とする請求項1から9のいずれかに記載の動的電力レベルスケーリング方法。
【発明を実施するための形態】
【0031】
本文に開示されている本発明の実施形態に対して、特定の構造的乃至機能的説明は単に本発明の実施形態を説明するための目的として例示されたものであり、本発明の実施形態は多様な形態で実施され、本文に説明された実施形態に限定されると解釈されてはいけない。
【0032】
本発明は多様な変更を加えることができ、色々な形態を有することができるところ、特定実施形態を図面に例示して本文に詳細に説明する。しかし、これは本発明を特定の開示形態に対して限定しようとするのではなく、本発明の思想及び技術範囲に含まれるすべての変更、均等物ないし代替物を含むこととして理解されなければならない。
【0033】
第1、第2などの用語は多様な構成要素を説明するのに使われることができるが、前記構成要素は前記用語によって限定されてはいけない。前記用語は1つの構成要素を他の構成要素から区別する目的として使われることができる。例えば、本発明の権利範囲から離脱せず第1構成要素は第2構成要素と命名されることができ、同様に第2構成要素も第1構成要素と命名されることができる。
【0034】
ある構成要素が他の構成要素に「接続されて」あるまたは「接続されて」あると言及された場合には、その他の構成要素に直接的に接続されていたりまたは、接続されていたりすることもできるが、中間に他の構成要素が存在することもできると理解されるべきである。反面、どんな構成要素が他の構成要素に「直接接続されて」あるまたは「直接接続されて」あると言及された場合には、中間に他の構成要素が存在しないことと理解されるべきである。構成要素の間の関係を説明する他の表現、すなわち「〜間に」と「すぐに〜間に」または「〜に隣接する」と「〜に直接隣接する」等も同じように解釈されるべきである。
【0035】
本明細書で使った用語は単に特定の実施形態を説明するために使われたことで、本発明を限定しようとする意図ではない。単数の表現は文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書で、「含む」または「有する」等の用語は明細書上に記載された特徴、数字、段階、動作、構成要素、部品または、これを組み合わせたのが存在するということを指定しようとすることであって、1つまたは、それ以上の他の特徴や数字、段階、動作、構成要素、部品または、これを組み合わせたものなどの存在または、付加の可能性を、予め排除しないことと理解されるべきである。
【0036】
また、別に定義しない限り、技術的或いは科学的用語を含んで、ここにおいて使用される全ての用語は本発明が属する技術分野で通常の知識を有する者であれば、一般的に理解されることと同一な意味を有する。一般的に使用される辞書において定義する用語と同じ用語は関連技術の文脈上に有する意味と一致する意味を有することと理解されるべきで、本明細書において明白に定義しない限り、理想的或いは形式的な意味として解釈しない。
【0037】
以下、添付図面を参照して、本発明の望ましい実施形態をより詳細に説明する。図面上の同じ構成要素に対しては同じ参照符号を使って同じ構成要素に対して重複した説明は省略する。
【0038】
図1は本発明の一実施形態に係る動的電圧周波数スケーリング方法を示すフローチャートである。
【0039】
図1を参照すると、本発明の一実施形態に係る動的電圧周波数スケーリング方法は、第1持続区間で単位区間ごとにマイクロプロセッサの単位作業負荷率(unit workload rate)を計算(S110)し、マイクロプロセッサの単位作業負荷率に基づいて単位作業負荷率の変化量を計算(S120)し、単位作業負荷率の変化量に基づいて第1持続区間の長さを指数的(exponentially)に変更(S130)することができる。以後、第1持続区間でマイクロプロセッサの単位作業負荷率を累積することによってマイクロプロセッサの区間作業負荷率(period workload rate)を計算(S140)し、マイクロプロセッサの区間作業負荷率に基づいてマイクロプロセッサの電力レベルを変更(S150)し、第2持続区間でマイクロプロセッサの変更された電力レベルを維持(S160)することができる。
【0040】
一般的に、動的電圧周波数スケーリング(Dynamic Voltage Frequency Scaling:DVFS)方法は、マイクロプロセッサの作業負荷率に基づいてマイクロプロセッサの電力レベル(すなわち、動作電圧または、動作周波数)を動的に変化させる方法のことである。すなわち、マイクロプロセッサの現在の作業負荷率に基づいて、マイクロプロセッサの未来電力レベルを予測することである。このような電力レベル予測は、第1持続区間での区間作業負荷率が第2持続区間での区間作業負荷率と同様であることを仮定して形成される。具体的に、動的電圧周波数スケーリング方法は、第1持続区間でマイクロプロセッサの区間作業負荷率に比べてマイクロプロセッサの電力レベルが低いと判断される場合、マイクロプロセッサの電力レベルを増加させることによって第2持続区間でマイクロプロセッサの性能低下を防ぐことができ、第1持続区間でマイクロプロセッサの区間作業負荷率に比べてマイクロプロセッサの電力レベルが高いと判断される場合、マイクロプロセッサの電力レベルを減少させることによって第2持続区間でマイクロプロセッサの不必要な電力消費を防ぐことができる。しかし、従来の動的電圧周波数スケーリング方法では、持続区間の長さが固定されたり、または、線形的に変更されたりするため、持続区間の長さがマイクロプロセッサの動作状態を反映することができないという問題点がある。
【0041】
これにより、本発明の一実施形態に係る動的電圧周波数スケーリング方法は、第1持続区間で単位区間ごとにマイクロプロセッサの単位作業負荷率を計算(S110)し、第1持続区間でマイクロプロセッサの単位作業負荷率を累積することによってマイクロプロセッサの区間作業負荷率を計算(S140)し、マイクロプロセッサの区間作業負荷率に基づいてマイクロプロセッサの電力レベルを変更(S150)することができる。また、第2持続区間ではマイクロプロセッサの変更された電力レベルを維持(S160)することができる。この時、本発明の一実施形態に係る動的電圧周波数スケーリング方法は、第1持続区間で単位区間ごとに単位作業負荷率の変化量が計算(S120)されると、このような単位作業負荷率の変化量に基づいて第1持続区間を指数的に続けて変更(S130)することができる。一実施形態において、マイクロプロセッサの単位作業負荷率は単位区間でマイクロプロセッサが遂行できる最大作業量に対するマイクロプロセッサが遂行した作業量の比率として定義することができ、マイクロプロセッサの区間作業負荷率は持続区間でマイクロプロセッサが遂行できる最大作業量に対しマイクロプロセッサが遂行した作業量の比率として定義することができる。以下、本発明の一実施形態に係る動的電圧周波数スケーリング方法を具体的に説明する。
【0042】
マイクロプロセッサの単位作業負荷率は第1持続区間で単位区間ごとに計算(S110)されることができる。ここで、第1持続区間の長さは、マイクロプロセッサの単位作業負荷率の変化量によって継続的に変更される可変的な値であり、単位区間の長さはシステム、または、使用者によって決められる固定された値である。例えば、単位区間はシステムで発生するシステムティック(system tick)に基づいて決定されることができる。一実施形態において、単位区間ごとにマイクロプロセッサのアクティブ区間及びアイドル区間が計算されると、アクティブ区間及びアイドル区間に基づいてマイクロプロセッサの単位作業負荷率が計算される。アクティブ区間はマイクロプロセッサにメインクロック信号が印加される区間に対応でき、アイドル区間はマイクロプロセッサにメインクロック信号が印加されない区間に対応することができる。アクティブ区間及びアイドル区間はリナックス(linux)、ウィンドウズ(windows)のような運営体制(Operating System)によって決定できる。実施形態によって、運営体制がマイクロプロセッサのアイドル区間を決めれば、マイクロプロセッサのアクティブ区間は単位区間でアイドル区間を除いた区間に決定される。
【0043】
第1持続区間で単位区間ごとにマイクロプロセッサの単位作業負荷率が計算(S120)されると、単位作業負荷率の変化量が計算(S130)できる。具体的に、単位作業負荷率の変化量は、第n+1単位区間での単位作業負荷率で第n単位区間での単位作業負荷率を抜いた値に対応することができる。このように、単位作業負荷率の変化量が次々と計算(S120)されると、第1持続区間の長さは単位作業負荷率の変化量に基づいて指数的に変更(S130)される。この時、第1持続区間の長さはそれぞれの変化量に基づいて変更されるが、使用者の設定によって一部変化量にだけ基づいて変更されることもある。例えば、奇数番目または、偶数番目の変化量に基づいて変更されることがある。一実施形態において、第1持続区間の長さは、単位作業負荷率の変化量が安定基準値より大きければ第1持続区間の長さを指数的に増加させ、単位作業負荷率の変化量が安定基準値より小さければ第1持続区間の長さを指数的に減少させ、単位作業負荷率の変化量が安定基準値と同一であれば、第1持続区間の長さを維持させる。この時、安定基準値はシステムにより決定される値であり、システムに求められる条件により使用者によって多様に決定することができる。
【0044】
第1持続区間で単位区間ごとにマイクロプロセッサの単位作業負荷率が計算(S120)されると、単位作業負荷率の変化量が計算(S130)できる。具体的に、単位作業負荷率の変化量は、第n+1単位区間での単位作業負荷率で第n単位区間での単位作業負荷率を抜いた値に対応することができる。このように、単位作業負荷率の変化量が次々と計算(S120)されると、第1持続区間の長さは単位作業負荷率の変化量に基づいて指数的に変更(S130)される。この時、第1持続区間の長さはそれぞれの変化量に基づいて変更されるが、使用者の設定によって一部変化量にだけ基づいて変更されることもある。例えば、奇数番目または、偶数番目の変化量に基づいて変更されることがある。一実施形態において、第1持続区間の長さは、単位作業負荷率の変化量が安定基準値より大きければ第1持続区間の長さを指数的に
減少させ、単位作業負荷率の変化量が安定基準値より小さければ第1持続区間の長さを指数的に
増加させ、単位作業負荷率の変化量が安定基準値と同一であれば、第1持続区間の長さを維持させる。この時、安定基準値はシステムにより決定される値であり、システムに求められる条件により使用者によって多様に決定することができる。
【0045】
マイクロプロセッサの区間作業負荷率は、第1持続区間でマイクロプロセッサの単位作業負荷率を累積することによって計算(S140)することができる。一実施形態において、マイクロプロセッサの単位作業負荷率は加重値が適用される方式で累積される。例えば、マイクロプロセッサの区間作業負荷率を計算することにおいて直前の単位作業負荷率には大きい加重値を付与し、その前の単位作業負荷率には小さい加重値を与えることができる。ただし、移動通信端末機などのようなモバイルシステムでは、マイクロプロセッサの区間作業負荷率を計算することにおいてマイクロプロセッサの単位作業負荷率に加重値を付与することがモバイルシステム全体に大きい負担を与えられるため、マイクロプロセッサの単位作業負荷率に加重値を付与するのはシステムの性能によって選択的に遂行される。また、マイクロプロセッサの単位作業負荷率に付与される加重値もシステムの性能によって多様に決定される。
【0046】
マイクロプロセッサの電力レベルはマイクロプロセッサが電力を消費する程度を示すものであり、マイクロプロセッサの動作周波数または、動作電圧に対応する。従って、マイクロプロセッサの電力レベルが大きいということはマイクロプロセッサの動作周波数または、動作電圧が大きいということを意味する。例えば、マイクロプロセッサが同じアプリケーションを遂行する場合に、マイクロプロセッサの電力レベル(すなわち、動作周波数または、動作電圧)が大きいほど、消費電力は増加し、マイクロプロセッサの作業速度は速くなる。従って、マイクロプロセッサの区間作業負荷率に比べて高い周波数のクロック信号、または、高い電源電圧をマイクロプロセッサに供給するのはマイクロプロセッサの電力消費を不必要に増加させる原因となる。一方、マイクロプロセッサの動作周波数と動作電圧は互いに関連しているため、マイクロプロセッサの動作周波数が増加すればマイクロプロセッサの動作電圧が大きくなり、マイクロプロセッサの動作周波数が減少すればマイクロプロセッサの動作電圧が小さくなる。
【0047】
マイクロプロセッサの電力レベルはマイクロプロセッサの区間作業負荷率に基づいて変更(S150)される。マイクロプロセッサの電力レベルは、マイクロプロセッサの区間作業負荷率がアップ基準値より大きければ増加し、マイクロプロセッサの区間作業負荷率がダウン基準値より小さければ減少し、アップ基準値とダウン基準値の間であれば、そのまま維持される。一実施形態で、マイクロプロセッサの電力レベル変更は、離散的な(discrete)電力レベルのうち1つを選択する方式で遂行されるが、それぞれの電力レベルは1つの電力レベルが他の1つの電力レベルの2倍に対応する。例えば、マイクロプロセッサの電力レベル変更は、離散的な電力レベルに対して電力レベルが段階的に増加または減少する方式で遂行される。すなわち、マイクロプロセッサの電力レベル変更が500MHz、250MHz、125MHzのような離散的な動作周波数に対して動作周波数が段階的に増加または、減少させる方式で遂行される。このような離散的な電力レベルの個数、数値などはマイクロプロセッサの機能、種類などによって多様に変更される。他の実施形態で、マイクロプロセッサの電力レベル変更は連続的な電力レベルに対して電力レベルが増加または減少する方式で遂行することもできる。マイクロプロセッサの動作周波数が増加することによって、内部の論理素子が十分なスイッチング速度を確保できるようにマイクロプロセッサの動作電圧も増加する必要があるので、マイクロプロセッサの電力レベル変更はマイクロプロセッサの動作周波数と動作電圧が共に変更される方式で遂行することもできる。
【0048】
マイクロプロセッサの変更された電力レベルは第1持続区間に連続する第2持続区間で維持(S160)することができる。第2持続区間も第1持続区間と同様に、第2持続区間で継続的に計算される単位作業負荷率の変化量によって指数的に続けて変更される。実施形態によって、本発明の一実施形態に係る動的電圧周波数スケーリング方法は、マイクロプロセッサの変更された電力レベルを第2持続区間で維持することが適合でないと判断される場合(例えば、オーバーシュートまたはアンダーシュートが過度に発生する場合)には外部コマンドに基づいてマイクロプロセッサの変更された電力レベルを予め設定された電力レベルに変更したり、または、予め設定された値ほど増減させたりすることができる。また、本発明の一実施形態に係る動的電圧周波数スケーリング方法は、マイクロプロセッサがアプリケーションを遂行することにおいて求められる条件によって第1持続区間の長さを予め設定された長さに変更したり、または、予め設定された値ほど増加させたりすることができる。このように、本発明の一実施形態に係る動的電圧周波数スケーリング方法は、第1持続区間で単位区間ごとに単位作業負荷率の変化量に基づいて第1持続区間の長さを指数的に変更(S130)することによって、第2持続区間でのマイクロプロセッサの電力レベルを比較的正確に予測でき、不必要な電力レベル変更に伴うマイクロプロセッサの性能低下及び電力消費も減少させることができる。
【0049】
図2は
図1の動的電圧周波数スケーリング方法で持続区間を説明するための図面である。
【0050】
図2を参照すれば、第1持続区間は第1時点T(n−1)で第2時点T(n)までの区間に対応でき、第2持続区間は第2時点T(n)で第3時点T(n+1)までの区間に対応することができる。上述した通り、第1持続区間は第1持続区間で単位作業負荷率の変化量に基づいて指数的に続けて変更することができ、第2持続区間は第2持続区間で単位作業負荷率の変化量に基づいて指数的に続けて変更することができる。すなわち、第1及び第2持続区間は固定された値でなく、マイクロプロセッサの動作状態によって指数的に変更される値である。従って、第1ないし第3時点T(n−1)、T(n)、T(n+1)は時間が経つにつれてそれぞれ変更される。
【0051】
図1の動的電圧周波数スケーリング方法は、第1持続区間での区間作業負荷率に基づいて第2持続区間でのマイクロプロセッサの電力レベルを決めることができる。すなわち、マイクロプロセッサの電力レベル変更は、第1持続区間での区間作業負荷率が第2持続区間での区間作業負荷率と同様であるとの仮定の下に形成される。一実施形態において、
図1の動的電圧周波数スケーリング方法は、第1持続区間での区間適業負荷率に基づいて第1持続区間でのマイクロプロセッサの電力レベルを段階的に増加または、減少させる方式で第2持続区間でのマイクロプロセッサの電力レベルを決めることができる。従来の動的電圧周波数スケーリング方法では、持続区間の長さが固定されたり線形的に変更されたりするため、持続区間の長さが該当持続区間でのマイクロプロセッサの動作状態を正確に反映できないという問題点がある。従って、従来の動的電圧周波数スケーリング方法は時間が経つにつれてマイクロプロセッサの全体作業負荷率の変化を観察するのに適した面があるが、持続区間が相対的に長い場合にはマイクロプロセッサの未来電力レベルを間違って予測する場合が多く、持続区間が相対的に短い場合には不必要な電力レベル変更によってシステムに負担を与える場合が多い。
【0052】
これにより、
図1の動的電圧周波数スケーリング方法は、第1持続区間で単位区間ごとにマイクロプロセッサの単位作業負荷率を計算し、単位作業負荷率の変化量に基づいて第1持続区間の長さを指数的に続けて変更することができる。従って、
図1の動的電圧周波数スケーリング方法は、第1持続区間でマイクロプロセッサの動作状態が急変する場合、第1持続区間の長さを指数的に減少させ、第2持続区間でのマイクロプロセッサの電力レベルを正確に予測でき、第1持続区間でのマイクロプロセッサの動作状態が一定の場合、第1持続区間の長さを指数的に増加させ、不必要な電力レベル変更に伴うマイクロプロセッサの性能低下及び電力消費を減少させることができる。特に、
図1の動的電圧周波数スケーリング方法は、第1持続区間の長さを指数的に変更するため、第1持続区間の長さを線形的に変更する場合に比べて、マイクロプロセッサの動作状態に対する高い反応性を確保することができる。さらに、
図1の動的電圧周波数スケーリング方法は、持続区間の長さが対応持続区間でマイクロプロセッサの動作状態を正確に反映できない場合に、外部コマンドに基づいて該当持続区間の長さを予め設定された長さに変更したり、または、予め設定された値ほど増加または、減少させたりすることができる。
【0053】
図1の動的電圧周波数スケーリング方法は、第1持続区間の長さと第1持続区間内の単位区間の和が同一になる時点、すなわち、第1持続区間が終了する時点で、第1持続区間での区間作業負荷率に基づいて第2持続区間でのマイクロプロセッサの電力レベル(すなわち、動作周波数または、動作電圧)を決めることができる。以後、
図1の動的電圧周波数スケーリング方法は、第1持続区間で決定されたマイクロプロセッサの電力レベルを第2持続区間で維持して、第2持続区間の長さと第2持続区間内の単位区間の和が同一になる時点、すなわち、第2持続区間が終了する時点で、第2持続区間での区間作業負荷率に基づいて第3持続区間でのマイクロプロセッサの電力レベルを決めることができる。このように、
図1の動的電圧周波数スケーリング方法は、マイクロプロセッサの動作状態に基づいて該当持続区間の長さを適応的(adaptive)に変更させることができる。ただし、マイクロプロセッサの電力レベルがマイクロプロセッサに実際求められる電力レベルと違った場合には、
図1の動的電圧周波数スケーリング方法は、外部コマンドに基づいてマイクロプロセッサの電力レベルを予め設定された電力レベルに変更したり、または、予め設定された値ほど増加または、減少させたりすることもできる。
【0054】
図3は
図1の動的電圧周波数スケーリング方法で単位作業負荷率が計算されること例を示すフローチャートである。
【0055】
図3を参照すれば、
図1の動的電圧周波数スケーリング方法は、単位区間ごとにマイクロプロセッサのアクティブ区間を計算(S220)し、単位区間ごとにマイクロプロセッサのアイドル区間を計算(S240)し、アクティブ区間及びアイドル区間に基づいて単位作業負荷率を推定(S260)することによって、マイクロプロセッサの単位作業負荷率を計算することができる。一実施形態において、単位作業負荷率の計算は下記の[式1]を利用して求めることができる。
【0057】
「前記式で、UWRは単位作業負荷率を示し、UTは単位区間を示し、ATは単位区間でのアクティブ区間を示し、ITは単位区間でのアイドル区間を示す。」
上述した通り、マイクロプロセッサのアクティブ区間は、マイクロプロセッサにメインクロック信号が印加される区間に対応でき、マイクロプロセッサのアイドル区間は、マイクロプロセッサにメインクロック信号が印加されない区間に対応することができる。例えば、アクティブ区間は移動通信端末機のトラフィックモード(traffice mode)及び待機モード(standby mode)に対応でき、アイドル区間はスリープモード(sleep mode)に対応することができる。このようなアクティブ区間とアイドル区間は運営体制によって決定されるが、運営体制はシステムの動作必要性に基づいてマイクロプロセッサをアクティブ区間、または、アイドル区間に直ちに転換させることができる。マイクロプロセッサに印加されるメインクロック信号の周波数はマイクロプロセッサの動作周波数に対応することができる。一方、[式1]は例示的なものとして、マイクロプロセッサの性能及び求められる条件によって多様に修正及び変更されることができる。
【0058】
図4は
図3の単位作業負荷率計算を説明するためのグラフである。
【0059】
図4を参照すれば、
図1の動的電圧周波数スケーリング方法は、第1アクティブ区間AT1及び第1アイドル区間IT1に基づいて第1単位作業負荷率を計算でき、第2アクティブ区間AT2及び第2アイドル区間IT2に基づいて第2単位作業負荷率を計算することができる。具体的に、第1単位作業負荷率はUWR1=(UT1−IT1)/UT1=AT1/UT1で計算されることができ、第2単位作業負荷率はUWR2=(UT2−IT2)/UT2=AT2/UT2で計算されることができる。
図4に示された通り、第1単位区間UT1の長さと第2単位区間UT2の長さは固定された値として相互同一である。一方、第1単位作業負荷率と第2単位作業負荷率が計算されることによって、第1単位作業負荷率と第2単位作業負荷率との間の単位作業負荷率の変化量が計算されることができる。すなわち、単位作業負荷率の変化量は、dUWR=(UWR2−UWR1)=(AT2−AT1)/UTであってもよい。このような方式で、単位作業負荷率の変化量は持続区間が終了する時点まで継続的に計算され、持続区間は単位作業負荷率の変化量に基づいて継続的に変更することができる。この時、持続区間の長さはそれぞれの単位作業負荷率の変化量に基づいて変更することができるが、上述した通り、使用者の設定によって一部単位作業負荷率の変化量にだけ基づいて変更されることもできる。
【0060】
図5は
図1の動的電圧周波数スケーリング方法で持続区間の長さが変更される一例を示すフローチャートである。
【0061】
図5を参照すれば、
図1の動的電圧周波数スケーリング方法は、単位作業負荷率の変化量と安定基準値を比較(S310)して、その比較結果によって持続区間の長さを変更することができる。
図1の動的電圧周波数スケーリング方法は、単位作業負荷率の変化量が安定基準値より大きい値なのかを判断(S320)して、単位作業負荷率の変化量が安定基準値より大きければ、持続区間の長さを指数的に増加(S330)させる。また、単位作業負荷率の変化量が安定基準値より小さい値なのかを判断S340して、単位作業負荷率の変化量が安定基準値より小さければ、持続区間の長さを指数的に減少(S350)させる。さらに、単位作業負荷率の変化量が安定基準値と同一であれば持続区間の長さを維持(S360)させる。一方、持続区間の長さは、予め設定された最大区間の長さと予め設定された最小区間の長さとの間で変更されることがある。一実施形態において、持続区間の長さの変更は下の[式2]を利用して形成することができる。
【0063】
図5を参照すれば、
図1の動的電圧周波数スケーリング方法は、単位作業負荷率の変化量と安定基準値を比較(S310)して、その比較結果によって持続区間の長さを変更することができる。
図1の動的電圧周波数スケーリング方法は、単位作業負荷率の変化量が安定基準値より大きい値なのかを判断(S320)して、単位作業負荷率の変化量が安定基準値より大きければ、持続区間の長さを指数的に
減少(S330)させる。また、単位作業負荷率の変化量が安定基準値より小さい値なのかを判断S340して、単位作業負荷率の変化量が安定基準値より小さければ、持続区間の長さを指数的に
増加(S350)させる。さらに、単位作業負荷率の変化量が安定基準値と同一であれば持続区間の長さを維持(S360)させる。一方、持続区間の長さは、予め設定された最大区間の長さと予め設定された最小区間の長さとの間で変更されることがある。一実施形態において、持続区間の長さの変更は下の[式2]を利用して形成することができる。
【0064】
図6は
図5の持続区間の長さの変更を説明するためのグラフである。
【0065】
図6を参照すれば、
図1の動的電圧周波数スケーリング方法は、持続区間で持続区間の長さを継続的に変更することができる。従来の動的電圧周波数スケーリング方法は持続区間の長さが固定されていたり線形的に変更されていたりするため、マイクロプロセッサの動作状態を正確に反映することができなかった反面、
図1の動的電圧周波数スケーリング方法は単位区間UT1、...、UTnごとに単位作業負荷率を計算し、このような単位作業負荷率の変化量に基づいて持続区間の長さを指数的に続けて変更することによって、マイクロプロセッサの動作状態を正確に反映することができる。上述した通り、単位区間UT1、...、UTnの長さは固定された値として相互同一である。
図6に示された通り、
図1の動的電圧周波数スケーリング方法は単位区間UT1、...、UTnごとに単位作業負荷率を計算し、このような単位作業負荷率の変化量に基づいて持続区間の長さを指数的に続けて変更することによって、マイクロプロセッサの動作状態に対する高い反応性を確保することができる。
図1の動的電圧周波数スケーリング方法は、持続区間で単位作業負荷率の変化量に基づいて持続区間の長さを指数的に続けて変更して、単位区間UT1、...、UTnの長さの和が持続区間の長さと同一になる持続区間の終了時点でマイクロプロセッサの電力レベルを変更することができる。
【0066】
上述した通り、
図1の動的電圧周波数スケーリング方法は、単位作業負荷率の変化量が大きい場合には、マイクロプロセッサの動作状態を正確に反映するために、持続区間の長さを指数的に減少
(S330)させることができ、単位作業負荷率の変化量が小さい場合には、不必要な電力レベル変更に伴うマイクロプロセッサの性能低下及び電力消費を減少させるために、持続区間を指数的に増加
(S350)させることができる。このように、
図1の動的電圧周波数スケーリング方法は、持続区間でマイクロプロセッサの動作状態に基づいて該当持続区間の長さを適応的に変更することによって動的電圧周波数スケーリングを最適に遂行することができる。一方、[式2]は例示的なものとして、マイクロプロセッサの性能及び求められる条件により多様に修正及び変更される。
【0067】
図7を参照すれば、
図1の動的電圧周波数スケーリング方法は、区間作業負荷率をアップ基準値及びダウン基準値と比較(S410)し、その比較結果によってマイクロプロセッサの電力レベルを変更することができる。ここで、マイクロプロセッサの区間作業負荷率は持続区間でマイクロプロセッサの単位作業負荷率を累積した値に対応することができる。
図1の動的電圧周波数スケーリング方法は区間作業負荷率がアップ基準値より大きい値なのかを判断(S420)して、区間作業負荷率がアップ基準値より大きければ、マイクロプロセッサの電力レベルを増加(S430)させる。また、区間作業負荷率がダウン基準値より小さい値なのかを判断(S440)して、区間作業負荷率がダウン基準値より小さければ、マイクロプロセッサの電力レベルを減少(S450)させる。さらに、区間作業負荷率がアップ基準値とダウン基準値の間であれば、マイクロプロセッサの電力レベルを維持(S460)させる。マイクロプロセッサの電力レベルは予め設定された最大電力レベルと予め設定された最小電力レベルの間で変更されることができる。一実施形態で、マイクロプロセッサの電力レベル変更は複数の離散的な電力レベルに対して電力レベルを段階的に増加または、減少させる方式で遂行されることができる。例えば、マイクロプロセッサの電力レベル変更は500MHz、250MHz、125MHzのような離散的な動作周波数に対して動作周波数が段階的に増加または減少する方式で形成することができる。このような離散的な電力レベルの個数、数値などはマイクロプロセッサの機能、種類などによって多様に変更されることができる。
【0068】
一方、マイクロプロセッサの区間作業負荷率の計算は持続区間でマイクロプロセッサの単位作業負荷率を累積することによって行うことができる。一実施形態で、マイクロプロセッサの区間作業負荷率の計算は、最近の単位作業負荷率に大きい加重値Cを付与して、以前の単位作業負荷率には小さい加重値Cを付与する方式からなることができる。一実施形態で、マイクロプロセッサの区間作業負荷率の計算は下記の[式3]を利用して行うことができる。
【0070】
「前記式で、PWRは区間作業負荷率を示し、UWRxはx番目の単位作業負荷率を示し、Cは加重値を示し、第1持続区間はn個の単位区間の和に対応する。」
ただし、マイクロプロセッサの単位作業負荷率に加重値を付与するのはシステムに大きな負担として作用する場合もあるため、システムの性能によって選択的に遂行される。従って、[式3]で加重値Cはマイクロプロセッサの機能、種類などによって多様に決定されることができる。例えば、移動通信端末機などと同じモバイルシステムでは単位作業負荷率に加重値Cを付与することがシステムに大きな負担として作用する場合があるため、加重値Cを0に設定することによってマイクロプロセッサの単位作業負荷率に加重値が付与されないようにすることができる。一方、[式3]は例示的なものとして、マイクロプロセッサの性能及び求められる条件によって多様に修正及び変更することができる。
【0071】
図8は
図7の電力レベル変更を説明するためのグラフである。
【0072】
図8を参照すれば、
図1の動的電圧周波数スケーリング方法は、複数の離散的な電力レベルに対して電力レベルを段階的に増加または、減少させる方式でマイクロプロセッサの電力レベルを変更することができる。また、複数の離散的な電力レベルは1つの電力レベルが他の1つの電力レベルの2倍に対応させることができる。例えば、第3レベルLEVEL3は第2レベルLEVEL2の2倍に対応し、第2レベルLEVEL2は第1レベルLEVEL1の2倍に対応する。説明の便宜のために、第n持続区間は第n時点T(n)で第n+1時点T(n+1)までと定義する。例えば、
図1の動的電圧周波数スケーリング方法は、第1持続区間での区間作業負荷率がアップ基準値より大きければ、マイクロプロセッサの電力レベルを第1レベルLEVEL1で第2レベルLEVEL2に増加させることができる。また、第3持続区間での区間作業負荷率がダウン基準値より小さければ、マイクロプロセッサの電力レベルを第3レベルLEVEL3で、第2レベルLEVEL2で減少させることができる。さらに、第5持続区間での区間作業負荷率がアップ基準値とダウン基準値の間であれば、第6持続区間でのマイクロプロセッサの電力レベルは第3レベルLEVEL3で維持させることができる。このように、
図1の動的電圧周波数スケーリング方法は、第n持続区間での区間作業負荷率をアップ基準値及びダウン基準値と比較することによって、第n+1持続区間でのマイクロプロセッサの電力レベルを決めることができる。
【0073】
図9は
図1の動的電圧周波数スケーリング方法で外部コマンドに基づいてマイクロプロセッサの電力レベルが変更される一例を示すフローチャートである。
【0074】
図9を参照すれば、
図1の動的電圧周波数スケーリング方法は、持続区間でマイクロプロセッサの電力レベルを維持(S520)し、外部コマンドが入力S540されると、マイクロプロセッサの電力レベルを予め設定された電力レベルに変更(S560)することができる。
図1の動的電圧周波数スケーリング方法は、第n持続区間でのマイクロプロセッサの区間作業負荷率に基づいて第n+1持続区間でのマイクロプロセッサの電力レベルを予測するものであるので、予測されたマイクロプロセッサの電力レベルはマイクロプロセッサに実際求められる電力レベルと異なる。このような場合、
図1の動的電圧周波数スケーリング方法は、外部コマンドに基づいてマイクロプロセッサの電力レベルを予め設定された電力レベルに変更(S560)することによって、マイクロプロセッサの電力レベルをマイクロプロセッサに実際求められる電力レベルに作ることができる。一実施形態で、予め設定された電力レベルは離散的な電力レベルで、外部コマンドに基づいて1つの電力レベルが選択される。他の実施形態で、予め設定された電力レベルは予め設定された最大電力レベルまたは、予め設定された最小電力レベルであってもよい。実施形態に係り、外部コマンドはマイクロプロセッサの変更された電力レベルをどのくらいの間維持させるのかに関する情報を含むことができる。
【0075】
図10は
図9の電力レベル変更を説明するためのグラフである。
【0076】
図10を参照すれば、
図1の動的電圧周波数スケーリング方法は、マイクロプロセッサの電力レベルを維持し、第1外部コマンドCOMMAND1、または、第2外部コマンドCOMMAND2が入力されると、マイクロプロセッサの電力レベルを予め設定された第1レベルPD LEVEL1、または、予め設定された第2レベルPD LEVEL2に変更することができる。説明の便宜のために、第n持続区間は第n時点T(n)で第n+1時点T(n+1)までと定義する。例えば、
図1の動的電圧周波数スケーリング方法は、第2持続区間でのマイクロプロセッサの区間作業負荷率に基づいて第3持続区間でのマイクロプロセッサの電力レベルが第3レベルLEVEL3に決定されると、第3持続区間でマイクロプロセッサの電力レベルを第3レベルLEVEL3で維持することができる。しかし、第3持続区間でのマイクロプロセッサの電力レベルが第3持続区間で実際求められる電力レベルに比べて小さいと判断される場合、
図1の動的電圧周波数スケーリング方法は、第1外部コマンドCOMMAND1に基づいて、第3持続区間でのマイクロプロセッサの電力レベルを予め設定された第1レベルPD LEVEL1に変更することができる。同様に、第4持続区間でのマイクロプロセッサの区間作業負荷率に基づいて、第5持続区間でのマイクロプロセッサの電力レベルが第3レベルLEVEL3に決定されれば、第5持続区間でマイクロプロセッサの電力レベルを第3レベルLEVEL3で維持することができる。しかし、第5持続区間でのマイクロプロセッサの電力レベルが第5持続区間で実際求められる電力レベルに比べて大きいと判断される場合、
図1の動的電圧周波数スケーリング方法は第2外部コマンドCOMMAND2に基づいて第5持続区間でのマイクロプロセッサの電力レベルを予め設定された第2レベルPD LEVEL2に変更することができる。
図10ではマイクロプロセッサの変更された電力レベルが該当持続区間の終了時点まで維持されると示されているが、これは1つの例示として多様に設計変更することができる。
【0077】
図11は
図1の動的電圧周波数スケーリング方法で外部コマンドに基づいてマイクロプロセッサの電力レベルが変更される他の形態を示すフローチャートである。
【0078】
図11を参照すれば、
図1の動的電圧周波数スケーリング方法は、持続区間でマイクロプロセッサの電力レベルを維持(S620)し、外部コマンドが入力(S640)されると、マイクロプロセッサの電力レベルを予め設定された値ほど増加または、減少(S660)させることができる。
図1の動的電圧周波数スケーリング方法は、第n持続区間でのマイクロプロセッサの区間作業負荷率に基づいて第n+1持続区間でのマイクロプロセッサの電力レベルを予測するため、予測されたマイクロプロセッサの電力レベルはマイクロプロセッサに実際求められる電力レベルと異なる。このような場合、
図1の動的電圧周波数スケーリング方法は、外部コマンドに基づいてマイクロプロセッサの電力レベルを予め設定された値ほど増加、または、減少(S660)させることによって、マイクロプロセッサの電力レベルをマイクロプロセッサに実際求められる電力レベルにすることができる。実施形態に係り、外部コマンドはマイクロプロセッサの変更された電力レベルをどのくらいの間維持させるのかに関する情報を含むことができる。
【0079】
図12は
図11の電力レベル変更を説明するためのグラフである。
【0080】
図12を参照すれば、
図1の動的電圧周波数スケーリング方法は、マイクロプロセッサの電力レベルを維持し、第1外部コマンドCOMMAND1または、第2外部コマンドCOMMAND2が入力されると、マイクロプロセッサの電力レベルを予め設定されたレベルだけに増加または、減少させることができる。説明の便宜のために、第n持続区間は第n時点T(n)で第n+1時点T(n+1)までと定義する。
図1の動的電圧周波数スケーリング方法は、第2持続区間でのマイクロプロセッサの区間作業負荷率に基づいて第3持続区間でのマイクロプロセッサの電力レベルが第3レベルLEVEL3に決定されれば、第3持続区間でマイクロプロセッサの電力レベルを第3レベルLEVEL3で維持することができる。しかし、第3持続区間でのマイクロプロセッサの電力レベルが第3持続区間で実際求められる電力レベルに比べて小さいと判断される場合、
図1の動的電圧周波数スケーリング方法は第1外部コマンドCOMMAND1に基づいて第3持続区間でのマイクロプロセッサの電力レベルを予め設定された値ほど増加させることができる。同様に、第4持続区間でのマイクロプロセッサの区間作業負荷率に基づいて第5持続区間でのマイクロプロセッサの電力レベルが第3レベルLEVEL3に決定されると、第5持続区間でマイクロプロセッサの電力レベルを第3レベルLEVEL3で維持することができる。しかし、第5持続区間でのマイクロプロセッサの電力レベルが第5持続区間で実際求められる電力レベルに比べて大きいと判断される場合、
図1の動的電圧周波数スケーリング方法は、第2外部コマンドCOMMAND2に基づいて第5持続区間でのマイクロプロセッサの電力レベルを予め設定された値ほど減少させることができる。
図12ではマイクロプロセッサの変更された電力レベルが該当持続区間の終了時点まで維持されると示されているが、これは1つの例示として多様に設計変更することができる。
【0081】
図13は
図1の動的電圧周波数スケーリング方法で外部コマンドに基づいて持続区間の長さが変更される一例を示すフローチャートである。
【0082】
図13を参照すれば、
図1の動的電圧周波数スケーリング方法は、持続区間の長さを単位区間ごとに継続的に変更(S720)し、外部コマンドが入力(S740)されると、持続区間の長さを予め設定された長さに変更(S760)することができる。上述した通り、
図1の動的電圧周波数スケーリング方法はマイクロプロセッサの動作状態が急変する場合に持続区間の長さを指数的に減少させ、マイクロプロセッサの動作状態が一定の場合に持続区間の長さを指数的に増加させることによって、持続区間でのマイクロプロセッサの動作状態に基づいて該当持続区間の長さを指数的に変更することができる。しかし、マイクロプロセッサがアプリケーションなどを遂行することにおいて求められる条件によってマイクロプロセッサの動作状態が一定でも持続区間の長さを減少させたり、マイクロプロセッサの動作状態が急変しても持続区間の長さを増加させたりする必要がある。このような場合、
図1の動的電圧周波数スケーリング方法は外部コマンドに基づいて持続区間の長さを予め設定された長さに変更(S760)することによって、アプリケーションなどを遂行するということにおいて求められる条件を満たすことができる。一実施形態で、予め設定された長さは予め設定された最大長さまたは、予め設定された最小長さであってもよい。実施形態によって、外部コマンドは変更された持続区間の長さをどのくらいの間維持させるのかに関する情報を含むことができる。
【0083】
図14は
図13の持続区間長さ変更を説明するためのグラフである。
【0084】
図14を参照すれば、
図1の動的電圧周波数スケーリング方法は、マイクロプロセッサの単位作業負荷率の変化量に基づいて持続区間の長さを変更して、外部コマンドCOMMANDが入力されれば、持続区間の長さを予め設定された長さPD LNGTHに変更することができる。例えば、
図1の動的電圧周波数スケーリング方法は、第3単位区間UT3で外部コマンドCOMMANDが入力されれば、持続区間の長さを予め設定された長さPD LENGTHに変更し、単位区間UT1、...、UTnの長さの和が予め設定された長さ PD LENGTHと同じになる持続区間の終了時点でマイクロプロセッサの電力レベルを変更することができる。
図14では変更された持続区間の長さが持続区間の終了時点まで維持されることが示されているが、これは1つの例示として多様に設計変更されることができる。実施形態に係り、予め設定された長さPD LENGTHは予め設定された最大長さまたは、予め設定された最小長さであってもよい。
【0085】
図15は
図1の動的電圧周波数スケーリング方法で外部コマンドに基づいて持続区間の長さが変更される他の例を示すフローチャートである。
【0086】
図15を参照すれば、
図1の動的電圧周波数スケーリング方法は、持続区間の長さを単位区間ごとに継続的に変更(S820)し、外部コマンドが入力(S840)されれば、持続区間の長さを予め設定された値ほど増加または、減少(S860)させることができる。上述した通り、
図1の動的電圧周波数スケーリング方法は、マイクロプロセッサの動作状態が急変すれば持続区間の長さを指数的に減少させ、マイクロプロセッサの動作状態が一定であれば持続区間の長さを指数的に増加させることによって、持続区間でのマイクロプロセッサの動作状態に基づいて該当持続区間の長さを指数的に変更することができる。しかし、マイクロプロセッサがアプリケーションなどを遂行することにおいて求められる条件によってマイクロプロセッサの動作状態が一定でも持続区間の長さを減少させたり、マイクロプロセッサの動作状態が急変しても持続区間の長さを増加させたりする必要がある。このような場合に、
図1の動的電圧周波数スケーリング方法は外部コマンドに基づいて持続区間の長さを予め設定された値ほど増加または、減少(S860)させることによってアプリケーションなどを遂行することにおいて求められる条件を満たすことができる。実施形態に係り、外部コマンドは変更された持続区間の長さをどのくらいの間維持させるのかに関する情報を含むことができる。
【0087】
図16は
図15の持続区間の長さ変更を説明するためのグラフである。
【0088】
図16を参照すれば、
図1の動的電圧周波数スケーリング方法は、マイクロプロセッサの単位作業負荷率の変化量に基づいて持続区間の長さを変更し、外部コマンドCOMMANDが入力されれば、持続区間の長さを予め設定された値だけに減少または、増加させることができる。例えば、
図1の動的電圧周波数スケーリング方法は第3単位区間UT3で外部コマンドCOMMANDが入力されれば、持続区間の長さを予め設定された値だけに減少させ、単位区間UT1、...、UTnの長さの和が予め設定された値だけに減少した持続区間の長さと同じになる持続区間の終了時点でマイクロプロセッサの電力レベルを変更することができる。
図16では変更された持続区間の長さが持続区間の終了時点まで維持されることとして示されているが、これは1つの例示として多様に設計変更される。
【0089】
図17は
図1の動的電圧周波数スケーリング方法を遂行する電力管理装置の一例を示すブロック図である。
【0090】
図17を参照すれば、電力管理装置100は作業負荷検出部110、電力管理部120及び電圧−クロック供給部130を含むことによって、マイクロプロセッサ210の電力レベルを管理することができる。このような電力管理装置100は移動通信端末機などの電子機器または、電子機器の内部に含まれる別途の装置であってもよい。
図17には示されていないが、電力管理装置100は、システムティックのような周期的な信号を発生するためのシステムタイマー及び外部コマンドや周期的な信号などのような特定信号を制御するためのコントローラなどをさらに含むことができる。
【0091】
マイクロプロセッサ210は、中央処理ユニットCPU、デジタル信号処理器DSP、マイクロコントローラなどであってもよく、電子機器内部で特定タスクtaskを遂行することができる。マイクロプロセッサ210は、電力管理装置100の電圧−クロック供給部130から供給されるメインクロック信号MCLK及びメイン電源電圧MVDDが入力され、メインクロック信号MCLKに同期して動作することができる。一実施形態で、マイクロプロセッサ210は、アクティブ区間ATPでメインクロック信号MCLKの入力を受けることができ、アイドル区間ITPでメインクロック信号MCLKが入力されないことがある。上述した通り、アクティブ区間ATP及びアイドル区間ITPは運営体制によって決定されることができ、運営体制がアイドル区間ITPを決めれば、アクティブ区間ATPは単位区間でアイドル区間ITPを除いた区間に決定されることができる。メインクロック信号MCLKの周波数は、マイクロプロセッサ210の動作周波数に相応することができ、メイン電源電圧MVDDはマイクロプロセッサ210の動作電圧に相応することができる。
【0092】
作業負荷検出部110は、マイクロプロセッサ210の動作状態をモニタリングすることによって、マイクロプロセッサ210の単位作業負荷率UWR及び持続区間の長さDPLを電力管理部120に出力することができる。具体的に、作業負荷検出部110は、単位区間ごとにマイクロプロセッサ210からアクティブ区間ATP及びアイドル区間ITPに対する情報を入力され、このようなアクティブ区間ATP及びアイドル区間ITPに基づいてマイクロプロセッサ210の単位作業負荷率UWRを次々と計算することができる。また、作業負荷検出部110は、単位作業負荷率の変化量dUWRに基づいて持続区間の長さDPLを指数的に続けて変更することができる。実施形態に係り、作業負荷検出部110は、外部コマンドに基づいて持続区間の長さDPLを予め設定された長さに変更、または、予め設定された値ほど増減させることができる。ただし、持続区間の長さDPLを変更することに対しては前記で具体的に説明したので、重複する説明を省略する。以後、作業負荷検出部110は持続区間の長さDPLが該当持続区間内の単位区間の和と同一になる持続区間の終了時点で持続区間の長さDPLを電力管理部120に出力することができる。
【0093】
電力管理部120は、作業負荷検出部110から次々と入力される単位作業負荷率UWR及び持続区間の終了時点で入力される持続区間の長さDPLに基づいてマイクロプロセッサ210の区間作業負荷率PWRを計算することができ、このような区間作業負荷率PWRに基づいてマイクロプロセッサ210の電力レベルを変更するためのレベル制御信号LCTRを電圧−クロック供給部130に出力することができる。電力管理部120は、
図17に示されている通り、マイクロプロセッサ210の外部に別途のハードウェアで具現される物理的な構成要素であってもよく、他の構成要素に少なくとも一部分が統合された形態で具現されることもできる。例えば、電力管理部120はマイクロプロセッサ210の一部であってもよく、少なくとも一部分がソフトウェアで具現される電力管理プログラムであってもよい。一実施形態で、電力管理部120は、マイクロプロセッサ210の単位作業負荷率UWRに加重値を適用する方式でマイクロプロセッサ210の区間作業負荷率PWRを計算することができ、このような区間作業負荷率PWRをアップ基準値及びダウン基準値と比較することによって、マイクロプロセッサ210の電力レベルを増加、または、減少させるためのレベル制御信号LCTRを生成することができる。実施形態に係り、電力管理部120は外部コマンドに基づいてマイクロプロセッサ210の電力レベルを予め設定された電力レベルに変更、または、予め設定された値ほど増減させるためのレベル制御信号LCTRを生成することができる。ただし、マイクロプロセッサ210の電力レベルを変更することに対しては、前記で具体的に説明したので、重複した説明を省略する。以後、電力管理部120は生成されたレベル制御信号LCTRを電圧−クロック供給部130に出力することができる。
【0094】
電圧−クロック供給部130は、電力管理部120から出力されるレベル制御信号LCTRを入力され、マイクロプロセッサ210に供給されるメインクロック信号MCLKの周波数または、メイン電源電圧MVDDを調節することができる。上述した通り、メインクロック信号MCLKの周波数はマイクロプロセッサ210の動作周波数に相応することができ、メイン電源電圧MVDDはマイクロプロセッサ210の動作電圧に相応することができる。実施形態に係り、メインクロック信号MCLKの周波数とメイン電源電圧MVDDは共に調節されることができる。例えば、メインクロック信号MCLKの周波数が大きくなると、メイン電源電圧MVDDも大きくなる。このように、電力管理装置100は作業負荷検出部110、電力管理部120及び電圧−クロック供給部130を含むことによって、マイクロプロセッサ210の動作状態が急変する場合に持続区間を指数的に減少させることによってマイクロプロセッサ210の電力レベルを正確に予測することができ、マイクロプロセッサ210の動作状態が一定の場合には持続区間を指数的に増加させることによって、不必要な電力レベル変更に伴うマイクロプロセッサ210の性能低下及び電力消費を防止することができる。
【0095】
図18は
図17の電力管理装置に含まれる電力管理部の一例を示すブロック図である。
【0096】
図18を参照すれば、電力管理部120は、計算部121、比較部122及びステートマシン123を含むことができる。
図18には示されていないが、電力管理部120は、持続区間の長さDPLによって相異する個数の単位作業負荷率UWRを累積するために、計算部121の複数のバッファ41、42、43、44、複数の増幅器51、52、53、54、55及び複数の加算器61、62、63、64の個数を選択するための選択部をさらに含むことができる。
【0097】
計算部121は、作業部下検出部110から持続区間で単位区間ごとに次々と入力される単位作業負荷率UWRを該当持続区間で累積することによって、マイクロプロセッサ210の区間作業負荷率PWRを計算することができる。この時、持続区間の長さDPLは固定された値ではなく、単位作業負荷率の変化量dUWRに基づいて指数的に続けて変更されるので、それぞれの持続区間別に相異することもある。従って、計算部121で累積する単位作業負荷率UWRの個数もそれぞれの持続区間別に相異することができる。例えば、第1持続区間でマイクロプロセッサ210の区間作業負荷率PWRは、4つの単位作業負荷率UWRが累積することによって計算される反面、第2持続区間でマイクロプロセッサ210の区間作業負荷率PWRは、2つの単位作業負荷率UWRが累積することによって計算することができる。一実施形態で、計算部121は単位作業負荷率UWRに加重値を適用することによって区間作業負荷率PWRを計算することができる。
【0098】
一実施形態で、計算部121は、複数のバッファ41、42、43、44、複数の増幅器51、52、53、54、55、複数の加算器61、62、63、64及び除算器71を含むことができる。複数のバッファ41、42、43、44は任意の保存手段であってもよく、例えば、レジスタまたは定められたアドレスに相応するメモリの特定空間などであってもよい。複数のバッファ41、42、43、44は、直列接続されて前端から出力される単位作業負荷率Ukを保存し、一定の遅延時間経過後、次の順番の単位作業負荷率Uk+1として後段に出力する遅延期で具現される。従って、作業部下検出部110から入力された単位作業負荷率UWRは時間が過ぎるにつれて複数のバッファ41、42、43、44を経て第1段の単位作業負荷率U1で第k段の単位作業負荷率Ukに変更される。このような複数のバッファ41、42、43、44はラッチ(latch)で具現され、この場合シフトレジスタとしての機能を遂行することができる。
【0099】
複数の増幅器51、52、53、54、55は、複数のバッファ41、42、43、44の各段の単位作業負荷率U1、...、Ukを増幅して出力することができる。複数の増幅器51、52、53、54、55の利得(gain)は全部同一であってもよく、相異させて設定することもできる。これは、最近の単位作業負荷率UWRがマイクロプロセッサ210の現在の作業負荷率を最も適合に反映しているためである。一実施形態で、最近の単位作業負荷率UWRであるほどより大きい加重値を適用するために、最初の増幅器51の利得が最も大きく、後段でますます利得が順次減少して最後の増幅器56の利益が一番小さく設定される。これは[式3]を参照して説明されるが、最近の単位作業負荷率U1には大きい加重値を付与し、ずっと前の単位作業負荷率Ukには小さい加重値を付与するものでる。複数の加算器61、62、63、64は、前端の出力と各増幅器の出力を合算して出力することができる。各加算器は前端の増幅器の出力を全部合算する機能を遂行する。除算器71は最後の増幅器64の出力を増幅器51、52、53、54、55の利益の合で分けて区間作業負荷率PWRを出力することができる。
【0100】
比較部122は、マイクロプロセッサ210の区間作業負荷率PWRをアップ基準値Ru及びダウン基準値Rdとそれぞれ比較して、マイクロプロセッサ210の電力レベル上昇または、電力レベル下降を示す比較信号CMPを発生することができる。一実施形態で、比較部122は、第1比較器81及び第2比較器82を含むことができる。第1比較器81は、区間作業負荷率PWRとアップ基準値Ruを比較して、区間作業負荷率PWRがアップ基準値Ruより大きい場合活性化する第1比較信号CMP1を出力することができる。第2比較器82は、区間作業負荷率PWRとダウン基準値Rdを比較して、区間作業負荷率PWRがダウン基準値Rdより小さい場合、活性化する第2比較信号CMP2を出力することができる。
【0101】
第1及び第2比較信号CMP1、CMP2は、ステートマシン123に保存され、ステートマシン123は出力制御信号LCTR_OUTに応答して、レベル制御信号LCTRを電圧−クロック供給部130で出力する。例えば、レベル制御信号LCTRはレベル上昇信号LV_UP及びレベル下降信号LV_DNを含むことができる。レベル上昇信号LV_UPが活性化した場合には電力レベルが上昇されることを示し、レベル下降信号LV_UPが活性化した場合には電力レベルが下降されることを示す。レベル上昇信号LV_UP及びレベル下降信号LV_DNはパルス(pulse)形態で活性化することができる。一方、電力管理部120がソフトウェア的に具現される場合にはステートマシン123はマイクロプロセッサ210内部、または、外部のレジスタであってもよい。実施形態によって、ステートマシン123は省略可能で、ステートマシン120が省略された場合には第1及び第2比較信号CMP1、CMP2が直接電圧−クロック供給部130にレベル制御信号LCTRとして提供されることができる。
【0102】
図19は
図17の電力管理装置に含まれる電圧−クロック供給部の一例を示すブロック図である。
【0103】
図19を参照すれば、電圧−クロック供給部130は電圧制御部131及びクロック制御部134を含むことができる。
【0104】
電圧制御部130は、基準電圧発生器132及びレギュレータ133を含むことができる。この場合、電力管理部120から提供されたレベル制御信号LCTRは、基準電圧発生器132で入力され、基準電圧発生器132は、レベル制御信号LCTRに相応するように基準電圧を調節してレギュレータ133に提供することができる。レギュレータ133は、前記調節された基準電圧とフィードバックされるメイン電源電圧MVDDを比較してレベル制御信号LCTRに相応する大きさのメイン電源電圧MVDDをマイクロプロセッサ210に提供することができる。クロック制御部134は、
図19に示された通り、位相固定ループPLLの形態で具現される。この場合、電力管理部120から提供されたレベル制御信号LCTRは周波数分周期139で入力され、周波数分周期139はレベル制御信号LCTRに相応する分周比によってメインクロック信号MCLKを分周して出力する。位相/周波数検出器135は、基準クロック信号RCLKと分周されたクロック信号を比較してアップ/ダウン信号を発生し、チャージポンプ136はアップ/ダウン信号に基づいて制御電圧を発生する。電圧−制御発振器138はループフィルタ137によって、フィルタリングされた制御電圧に応答してメインクロック信号MCLKを発生してマイクロプロセッサ210に提供する。このように、電力レベルの変更のためのレベル制御信号LCTRを利用して基準電圧発生器132の出力及び/または、分周器139の分周比を調節する方式でマイクロプロセッサ210に提供されるメイン電源電圧MVDD及び/または、メインクロック信号MCLKの周波数を調節することができる。ただし、これは一つの例示として、電圧−クロック供給部130は多様に設計変更されることができる。
【0105】
図20は
図17の電力管理装置を含む電子機器の一例を示すブロック図である。
【0106】
図20を参照すれば、電子機器200は、マイクロプロセッサ210、メモリ装置220、保存装置230、入出力装置240、電源装置250及び電力管理装置100を含む。
図20には示されていないが、電子機器200はビデオカード、サウンドカード、メモリカード、USB装置とデータ通信を遂行、または、他の電子機器と通信を遂行するための複数のポートをさらに含むことができる。電子機器200は、コンピュータ、ノートブック、デジタルカメラ、ビデオカメラ、携帯電話、スマートフォン、PMP(potable multimedia player;PMP)、PDA(personal digital assistant;PDA)、MP3プレーヤ、車両用ナビゲーションなどであってもよい。
【0107】
マイクロプロセッサ210は、中央処理ユニット、デジタル信号処理ユニット、マイクロコントローラなどであてもよく、電子機器200内部で特定タスクを遂行できる。このために、マイクロプロセッサ210は周辺構成要素相互接続(peripheral component interconnect、PCI)バスのような拡張バスに接続されることができる。一方、マイクロプロセッサ210は、電力管理装置100からメインクロック信号MCLK及びメイン電源電圧MVDDが入力され、メインクロック信号MCLKに同期して動作させることができる。電力管理装置100はマイクロプロセッサ210に対し動的電圧周波数スケーリングDVFSを遂行することができる。このために、電力管理装置100は、作業部下検出部110、電力管理部120及び電圧−クロック供給部130を含むことができる。上述した通り、電力管理装置100は、マイクロプロセッサ210の動作状態が急変する場合に、持続区間を指数的に減少させることによってマイクロプロセッサ210の電力レベルを正確に予測することができ、マイクロプロセッサ210の動作状態が一定の場合には、持続区間を指数的に増加させることによって、不必要な電力レベル変更に伴うマイクロプロセッサ210の性能低下及び電力消費を防止することができる。
【0108】
マイクロプロセッサ210は、少なくとも一つ以上のメモリ装置220、少なくとも一つ以上の保存装置230及び少なくとも一つ以上の入出力装置240等を制御することができる。少なくとも一つ以上のメモリ装置220は、アドレスバス、制御バス及び/または、データバスを通じてマイクロプロセッサ210に接続されることができる。例えば、少なくとも一つ以上のメモリ装置220は、動的ランダムアクセスメモリ(Dynamic Random Access Memory;DRAM)、静的ランダムアクセスメモリ(Static Random Access Memory;SRAM)、またはEPROM(Erasable Programmable Read−Only Memory;EPROM)、EEPROM(Electrically Erasable Programmable Read−Only Memory;EEPROM)及びフラッシュメモリ装置(flash memory device)などのような非揮発性メモリ装置であってもよい。少なくとも一つ以上の保存装置230はソリードステートドライブ(solid state drive)、ハードディスクドライブ及びシーディーロム(CD−ROM)などのような保存装置であってもよい。少なくとも一つ以上の入出力装置240は、キーボード、キーパッド、タッチパッド、マウスなどのような入力装置及びプリンタ、ディスプレイ、スピーカなどのような出力装置であってもよい。電源装置250は、電子機器200に求められる動作電圧を供給することができる。
【0109】
以上、本発明の実施形態を参照して動作電圧周波数スケーリング方法及びこれを遂行する電力管理装置に対し説明したが、前記で説明された数式、グラフ、構造などは例示的なものとして、本発明の技術的思想を離れない範囲において該当技術分野で通常の知識を有する者によって多様に修正及び変更されることができる。
【0110】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特徴請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。